diff --git a/FlatCAMDB.py b/AppDatabase.py
similarity index 92%
rename from FlatCAMDB.py
rename to AppDatabase.py
index eb270ee3..ea90213a 100644
--- a/FlatCAMDB.py
+++ b/AppDatabase.py
@@ -1,5 +1,5 @@
from PyQt5 import QtGui, QtCore, QtWidgets
-from flatcamGUI.GUIElements import FCTable, FCEntry, FCButton, FCDoubleSpinner, FCComboBox, FCCheckBox, FCSpinner, \
+from AppGUI.GUIElements import FCTable, FCEntry, FCButton, FCDoubleSpinner, FCComboBox, FCCheckBox, FCSpinner, \
FCTree, RadioSet, FCFileSaveDialog
from camlib import to_dict
@@ -8,8 +8,10 @@ import json
from copy import deepcopy
from datetime import datetime
+import math
+
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -655,7 +657,7 @@ class ToolsDB(QtWidgets.QWidget):
l_save=str(self.app.get_last_save_folder()),
n=_("Tools_Database"),
date=date),
- filter=filter__)
+ ext_filter=filter__)
filename = str(filename)
@@ -1030,6 +1032,7 @@ class ToolsDB2(QtWidgets.QWidget):
self.advanced_box.setTitle(_("Advanced Geo Parameters"))
self.advanced_box.setFixedWidth(250)
+ # NCC TOOL BOX
self.ncc_box = QtWidgets.QGroupBox()
self.ncc_box.setStyleSheet("""
QGroupBox
@@ -1042,6 +1045,7 @@ class ToolsDB2(QtWidgets.QWidget):
self.ncc_box.setTitle(_("NCC Parameters"))
self.ncc_box.setFixedWidth(250)
+ # PAINT TOOL BOX
self.paint_box = QtWidgets.QGroupBox()
self.paint_box.setStyleSheet("""
QGroupBox
@@ -1054,10 +1058,24 @@ class ToolsDB2(QtWidgets.QWidget):
self.paint_box.setTitle(_("Paint Parameters"))
self.paint_box.setFixedWidth(250)
+ # ISOLATION TOOL BOX
+ self.iso_box = QtWidgets.QGroupBox()
+ self.iso_box.setStyleSheet("""
+ QGroupBox
+ {
+ font-size: 16px;
+ font-weight: bold;
+ }
+ """)
+ self.iso_vlay = QtWidgets.QVBoxLayout()
+ self.iso_box.setTitle(_("Isolation Parameters"))
+ self.iso_box.setFixedWidth(250)
+
self.basic_box.setLayout(self.basic_vlay)
self.advanced_box.setLayout(self.advanced_vlay)
self.ncc_box.setLayout(self.ncc_vlay)
self.paint_box.setLayout(self.paint_vlay)
+ self.iso_box.setLayout(self.iso_vlay)
geo_vlay = QtWidgets.QVBoxLayout()
geo_vlay.addWidget(self.basic_box)
@@ -1067,6 +1085,7 @@ class ToolsDB2(QtWidgets.QWidget):
tools_vlay = QtWidgets.QVBoxLayout()
tools_vlay.addWidget(self.ncc_box)
tools_vlay.addWidget(self.paint_box)
+ tools_vlay.addWidget(self.iso_box)
tools_vlay.addStretch()
param_hlay.addLayout(geo_vlay)
@@ -1478,7 +1497,7 @@ class ToolsDB2(QtWidgets.QWidget):
self.ncc_method_combo = FCComboBox()
self.ncc_method_combo.addItems(
- [_("Standard"), _("Seed"), _("Lines")]
+ [_("Standard"), _("Seed"), _("Lines"), _("Combo")]
)
self.ncc_method_combo.setObjectName("gdb_n_method")
@@ -1621,6 +1640,101 @@ class ToolsDB2(QtWidgets.QWidget):
self.grid3.addWidget(self.pathconnect_cb, 10, 0)
self.grid3.addWidget(self.paintcontour_cb, 10, 1)
+ # ###########################################################################
+ # ############### Paint UI form #############################################
+ # ###########################################################################
+
+ self.grid4 = QtWidgets.QGridLayout()
+ self.iso_vlay.addLayout(self.grid4)
+ self.grid4.setColumnStretch(0, 0)
+ self.grid4.setColumnStretch(1, 1)
+ self.iso_vlay.addStretch()
+
+ # Passes
+ passlabel = QtWidgets.QLabel('%s:' % _('Passes'))
+ passlabel.setToolTip(
+ _("Width of the isolation gap in\n"
+ "number (integer) of tool widths.")
+ )
+ self.passes_entry = FCSpinner()
+ self.passes_entry.set_range(1, 999)
+ self.passes_entry.setObjectName("gdb_i_passes")
+
+ self.grid4.addWidget(passlabel, 0, 0)
+ self.grid4.addWidget(self.passes_entry, 0, 1)
+
+ # Overlap Entry
+ overlabel = QtWidgets.QLabel('%s:' % _('Overlap'))
+ overlabel.setToolTip(
+ _("How much (percentage) of the tool width to overlap each tool pass.")
+ )
+ self.iso_overlap_entry = FCDoubleSpinner(suffix='%')
+ self.iso_overlap_entry.set_precision(self.decimals)
+ self.iso_overlap_entry.setWrapping(True)
+ self.iso_overlap_entry.set_range(0.0000, 99.9999)
+ self.iso_overlap_entry.setSingleStep(0.1)
+ self.iso_overlap_entry.setObjectName("gdb_i_overlap")
+
+ self.grid4.addWidget(overlabel, 2, 0)
+ self.grid4.addWidget(self.iso_overlap_entry, 2, 1)
+
+ # Milling Type Radio Button
+ self.milling_type_label = QtWidgets.QLabel('%s:' % _('Milling Type'))
+ self.milling_type_label.setToolTip(
+ _("Milling type when the selected tool is of type: 'iso_op':\n"
+ "- climb / best for precision milling and to reduce tool usage\n"
+ "- conventional / useful when there is no backlash compensation")
+ )
+
+ self.milling_type_radio = RadioSet([{'label': _('Climb'), 'value': 'cl'},
+ {'label': _('Conventional'), 'value': 'cv'}])
+ self.milling_type_radio.setToolTip(
+ _("Milling type when the selected tool is of type: 'iso_op':\n"
+ "- climb / best for precision milling and to reduce tool usage\n"
+ "- conventional / useful when there is no backlash compensation")
+ )
+ self.milling_type_radio.setObjectName("gdb_i_milling_type")
+
+ self.grid4.addWidget(self.milling_type_label, 4, 0)
+ self.grid4.addWidget(self.milling_type_radio, 4, 1)
+
+ # Follow
+ self.follow_label = QtWidgets.QLabel('%s:' % _('Follow'))
+ self.follow_label.setToolTip(
+ _("Generate a 'Follow' geometry.\n"
+ "This means that it will cut through\n"
+ "the middle of the trace.")
+ )
+
+ self.follow_cb = FCCheckBox()
+ self.follow_cb.setToolTip(_("Generate a 'Follow' geometry.\n"
+ "This means that it will cut through\n"
+ "the middle of the trace."))
+ self.follow_cb.setObjectName("gdb_i_follow")
+
+ self.grid4.addWidget(self.follow_label, 6, 0)
+ self.grid4.addWidget(self.follow_cb, 6, 1)
+
+ # Isolation Type
+ self.iso_type_label = QtWidgets.QLabel('%s:' % _('Isolation Type'))
+ self.iso_type_label.setToolTip(
+ _("Choose how the isolation will be executed:\n"
+ "- 'Full' -> complete isolation of polygons\n"
+ "- 'Ext' -> will isolate only on the outside\n"
+ "- 'Int' -> will isolate only on the inside\n"
+ "'Exterior' isolation is almost always possible\n"
+ "(with the right tool) but 'Interior'\n"
+ "isolation can be done only when there is an opening\n"
+ "inside of the polygon (e.g polygon is a 'doughnut' shape).")
+ )
+ self.iso_type_radio = RadioSet([{'label': _('Full'), 'value': 'full'},
+ {'label': _('Ext'), 'value': 'ext'},
+ {'label': _('Int'), 'value': 'int'}])
+ self.iso_type_radio.setObjectName("gdb_i_iso_type")
+
+ self.grid4.addWidget(self.iso_type_label, 8, 0)
+ self.grid4.addWidget(self.iso_type_radio, 8, 1)
+
# ####################################################################
# ####################################################################
# GUI for the lower part of the window
@@ -1743,6 +1857,13 @@ class ToolsDB2(QtWidgets.QWidget):
"tools_paintmethod": self.paintmethod_combo,
"tools_pathconnect": self.pathconnect_cb,
"tools_paintcontour": self.paintcontour_cb,
+
+ # Isolation
+ "tools_iso_passes": self.passes_entry,
+ "tools_iso_overlap": self.iso_overlap_entry,
+ "tools_iso_milling_type": self.milling_type_radio,
+ "tools_iso_follow": self.follow_cb,
+ "tools_iso_isotype": self.iso_type_radio
}
self.name2option = {
@@ -1787,6 +1908,13 @@ class ToolsDB2(QtWidgets.QWidget):
'gdb_p_method': "tools_paintmethod",
'gdb_p_connect': "tools_pathconnect",
'gdb_p_contour': "tools_paintcontour",
+
+ # Isolation
+ "gdb_i_passes": "tools_iso_passes",
+ "gdb_i_overlap": "tools_iso_overlap",
+ "gdb_i_milling_type": "tools_iso_milling_type",
+ "gdb_i_follow": "tools_iso_follow",
+ "gdb_i_iso_type": "tools_iso_isotype"
}
self.current_toolid = None
@@ -1939,21 +2067,23 @@ class ToolsDB2(QtWidgets.QWidget):
if self.db_tool_dict:
self.storage_to_form(self.db_tool_dict['1'])
- # Enable GUI
+ # Enable AppGUI
self.basic_box.setEnabled(True)
self.advanced_box.setEnabled(True)
self.ncc_box.setEnabled(True)
self.paint_box.setEnabled(True)
+ self.iso_box.setEnabled(True)
self.tree_widget.setCurrentItem(self.tree_widget.topLevelItem(0))
# self.tree_widget.setFocus()
else:
- # Disable GUI
+ # Disable AppGUI
self.basic_box.setEnabled(False)
self.advanced_box.setEnabled(False)
self.ncc_box.setEnabled(False)
self.paint_box.setEnabled(False)
+ self.iso_box.setEnabled(False)
else:
self.storage_to_form(self.db_tool_dict[str(self.current_toolid)])
@@ -2006,6 +2136,13 @@ class ToolsDB2(QtWidgets.QWidget):
"tools_paintmethod": self.app.defaults["tools_paintmethod"],
"tools_pathconnect": self.app.defaults["tools_pathconnect"],
"tools_paintcontour": self.app.defaults["tools_paintcontour"],
+
+ # Isolation
+ "tools_iso_passes": int(self.app.defaults["tools_iso_passes"]),
+ "tools_iso_overlap": float(self.app.defaults["tools_iso_overlap"]),
+ "tools_iso_milling_type": self.app.defaults["tools_iso_milling_type"],
+ "tools_iso_follow": self.app.defaults["tools_iso_follow"],
+ "tools_iso_isotype": self.app.defaults["tools_iso_isotype"],
})
dict_elem = {}
@@ -2117,7 +2254,7 @@ class ToolsDB2(QtWidgets.QWidget):
l_save=str(self.app.get_last_save_folder()),
n=_("Tools_Database"),
date=date),
- filter=filter__)
+ ext_filter=filter__)
filename = str(filename)
@@ -2218,6 +2355,18 @@ class ToolsDB2(QtWidgets.QWidget):
self.app.tools_db_changed_flag = False
self.on_save_tools_db()
+ def on_calculate_tooldia(self):
+ if self.shape_combo.get_value() == 'V':
+ tip_dia = float(self.vdia_entry.get_value())
+ half_tip_angle = float(self.vangle_entry.get_value()) / 2.0
+ cut_z = float(self.cutz_entry.get_value())
+ cut_z = -cut_z if cut_z < 0 else cut_z
+
+ # calculated tool diameter so the cut_z parameter is obeyed
+ tool_dia = tip_dia + (2 * cut_z * math.tan(math.radians(half_tip_angle)))
+
+ self.dia_entry.set_value(tool_dia)
+
def ui_connect(self):
# make sure that we don't make multiple connections to the widgets
self.ui_disconnect()
@@ -2247,12 +2396,40 @@ class ToolsDB2(QtWidgets.QWidget):
if isinstance(wdg, FCSpinner) or isinstance(wdg, FCDoubleSpinner):
wdg.valueChanged.connect(self.update_storage)
+ # connect the calculate tooldia method to the controls
+ # if the tool shape is 'V' the tool dia will be calculated to obey Cut Z parameter
+ self.shape_combo.currentIndexChanged.connect(self.on_calculate_tooldia)
+ self.cutz_entry.valueChanged.connect(self.on_calculate_tooldia)
+ self.vdia_entry.valueChanged.connect(self.on_calculate_tooldia)
+ self.vangle_entry.valueChanged.connect(self.on_calculate_tooldia)
+
+
def ui_disconnect(self):
try:
self.name_entry.editingFinished.disconnect(self.update_tree_name)
except (TypeError, AttributeError):
pass
+ try:
+ self.shape_combo.currentIndexChanged.disconnect(self.on_calculate_tooldia)
+ except (TypeError, AttributeError):
+ pass
+
+ try:
+ self.cutz_entry.valueChanged.disconnect(self.on_calculate_tooldia)
+ except (TypeError, AttributeError):
+ pass
+
+ try:
+ self.vdia_entry.valueChanged.disconnect(self.on_calculate_tooldia)
+ except (TypeError, AttributeError):
+ pass
+
+ try:
+ self.vangle_entry.valueChanged.disconnect(self.on_calculate_tooldia)
+ except (TypeError, AttributeError):
+ pass
+
for key in self.form_fields:
wdg = self.form_fields[key]
@@ -2398,6 +2575,18 @@ class ToolsDB2(QtWidgets.QWidget):
elif wdg_name == "gdb_p_contour":
self.db_tool_dict[tool_id]['data']['tools_paintcontour'] = val
+ # Isolation Tool
+ elif wdg_name == "gdb_i_passes":
+ self.db_tool_dict[tool_id]['data']['tools_iso_passes'] = val
+ elif wdg_name == "gdb_i_overlap":
+ self.db_tool_dict[tool_id]['data']['tools_iso_overlap'] = val
+ elif wdg_name == "gdb_i_milling_type":
+ self.db_tool_dict[tool_id]['data']['tools_iso_milling_type'] = val
+ elif wdg_name == "gdb_i_follow":
+ self.db_tool_dict[tool_id]['data']['tools_iso_follow'] = val
+ elif wdg_name == "gdb_i_iso_type":
+ self.db_tool_dict[tool_id]['data']['tools_iso_isotype'] = val
+
self.callback_app()
def on_tool_requested_from_app(self):
diff --git a/flatcamEditors/FlatCAMExcEditor.py b/AppEditors/FlatCAMExcEditor.py
similarity index 98%
rename from flatcamEditors/FlatCAMExcEditor.py
rename to AppEditors/FlatCAMExcEditor.py
index 49dc5eb5..c5d56218 100644
--- a/flatcamEditors/FlatCAMExcEditor.py
+++ b/AppEditors/FlatCAMExcEditor.py
@@ -9,9 +9,9 @@ from PyQt5 import QtGui, QtCore, QtWidgets
from PyQt5.QtCore import Qt, QSettings
from camlib import distance, arc, FlatCAMRTreeStorage
-from flatcamGUI.GUIElements import FCEntry, FCComboBox, FCTable, FCDoubleSpinner, RadioSet, FCSpinner
-from flatcamEditors.FlatCAMGeoEditor import FCShapeTool, DrawTool, DrawToolShape, DrawToolUtilityShape, FlatCAMGeoEditor
-from flatcamParsers.ParseExcellon import Excellon
+from AppGUI.GUIElements import FCEntry, FCComboBox, FCTable, FCDoubleSpinner, RadioSet, FCSpinner
+from AppEditors.FlatCAMGeoEditor import FCShapeTool, DrawTool, DrawToolShape, DrawToolUtilityShape, FlatCAMGeoEditor
+from AppParsers.ParseExcellon import Excellon
from shapely.geometry import LineString, LinearRing, MultiLineString, Polygon, MultiPolygon, Point
import shapely.affinity as affinity
@@ -26,7 +26,7 @@ import logging
from copy import deepcopy
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -2123,7 +2123,7 @@ class FlatCAMExcEditor(QtCore.QObject):
else:
self.tool_shape = self.app.plotcanvas.new_shape_collection(layers=1)
else:
- from flatcamGUI.PlotCanvasLegacy import ShapeCollectionLegacy
+ from AppGUI.PlotCanvasLegacy import ShapeCollectionLegacy
self.shapes = ShapeCollectionLegacy(obj=self, app=self.app, name='shapes_exc_editor')
self.tool_shape = ShapeCollectionLegacy(obj=self, app=self.app, name='tool_shapes_exc_editor')
@@ -2239,7 +2239,7 @@ class FlatCAMExcEditor(QtCore.QObject):
# store the status of the editor so the Delete at object level will not work until the edit is finished
self.editor_active = False
- log.debug("Initialization of the FlatCAM Excellon Editor is finished ...")
+ log.debug("Initialization of the Excellon Editor is finished ...")
def pool_recreated(self, pool):
self.shapes.pool = pool
@@ -2312,7 +2312,7 @@ class FlatCAMExcEditor(QtCore.QObject):
tool_dia = float('%.*f' % (self.decimals, v['C']))
self.tool2tooldia[int(k)] = tool_dia
- # Init GUI
+ # Init AppGUI
self.addtool_entry.set_value(float(self.app.defaults['excellon_editor_newdia']))
self.drill_array_size_entry.set_value(int(self.app.defaults['excellon_editor_array_size']))
self.drill_axis_radio.set_value(self.app.defaults['excellon_editor_lin_dir'])
@@ -2819,10 +2819,8 @@ class FlatCAMExcEditor(QtCore.QObject):
self.tool_shape.enabled = True
# self.app.app_cursor.enabled = True
- self.app.ui.snap_max_dist_entry.setEnabled(True)
- self.app.ui.corner_snap_btn.setEnabled(True)
- self.app.ui.snap_magnet.setVisible(True)
self.app.ui.corner_snap_btn.setVisible(True)
+ self.app.ui.snap_magnet.setVisible(True)
self.app.ui.exc_editor_menu.setDisabled(False)
self.app.ui.exc_editor_menu.menuAction().setVisible(True)
@@ -2832,12 +2830,11 @@ class FlatCAMExcEditor(QtCore.QObject):
self.app.ui.exc_edit_toolbar.setDisabled(False)
self.app.ui.exc_edit_toolbar.setVisible(True)
- # self.app.ui.snap_toolbar.setDisabled(False)
+ # self.app.ui.status_toolbar.setDisabled(False)
# start with GRID toolbar activated
if self.app.ui.grid_snap_btn.isChecked() is False:
self.app.ui.grid_snap_btn.trigger()
- self.app.ui.on_grid_snap_triggered(state=True)
self.app.ui.popmenu_disable.setVisible(False)
self.app.ui.cmenu_newmenu.menuAction().setVisible(False)
@@ -2869,30 +2866,8 @@ class FlatCAMExcEditor(QtCore.QObject):
self.clear()
self.app.ui.exc_edit_toolbar.setDisabled(True)
- settings = QSettings("Open Source", "FlatCAM")
- if settings.contains("layout"):
- layout = settings.value('layout', type=str)
- if layout == 'standard':
- # self.app.ui.exc_edit_toolbar.setVisible(False)
-
- self.app.ui.snap_max_dist_entry.setEnabled(False)
- self.app.ui.corner_snap_btn.setEnabled(False)
- self.app.ui.snap_magnet.setVisible(False)
- self.app.ui.corner_snap_btn.setVisible(False)
- else:
- # self.app.ui.exc_edit_toolbar.setVisible(True)
-
- self.app.ui.snap_max_dist_entry.setEnabled(False)
- self.app.ui.corner_snap_btn.setEnabled(False)
- self.app.ui.snap_magnet.setVisible(True)
- self.app.ui.corner_snap_btn.setVisible(True)
- else:
- # self.app.ui.exc_edit_toolbar.setVisible(False)
-
- self.app.ui.snap_max_dist_entry.setEnabled(False)
- self.app.ui.corner_snap_btn.setEnabled(False)
- self.app.ui.snap_magnet.setVisible(False)
- self.app.ui.corner_snap_btn.setVisible(False)
+ self.app.ui.corner_snap_btn.setVisible(False)
+ self.app.ui.snap_magnet.setVisible(False)
# set the Editor Toolbar visibility to what was before entering in the Editor
self.app.ui.exc_edit_toolbar.setVisible(False) if self.toolbar_old_state is False \
@@ -3068,7 +3043,7 @@ class FlatCAMExcEditor(QtCore.QObject):
self.set_ui()
- # now that we hava data, create the GUI interface and add it to the Tool Tab
+ # now that we hava data, create the AppGUI interface and add it to the Tool Tab
self.build_ui(first_run=True)
# we activate this after the initial build as we don't need to see the tool been populated
@@ -3361,15 +3336,17 @@ class FlatCAMExcEditor(QtCore.QObject):
with self.app.proc_container.new(_("Creating Excellon.")):
try:
- edited_obj = self.app.new_object("excellon", outname, obj_init)
+ edited_obj = self.app.app_obj.new_object("excellon", outname, obj_init)
edited_obj.source_file = self.app.export_excellon(obj_name=edited_obj.options['name'],
local_use=edited_obj,
filename=None,
use_thread=False)
except Exception as e:
+ self.deactivate()
log.error("Error on Edited object creation: %s" % str(e))
return
+ self.deactivate()
self.app.inform.emit('[success] %s' % _("Excellon editing finished."))
def on_tool_select(self, tool):
@@ -3463,8 +3440,8 @@ class FlatCAMExcEditor(QtCore.QObject):
self.pos = (self.pos[0], self.pos[1])
if event.button == 1:
- self.app.ui.rel_position_label.setText("Dx: %.4f Dy: "
- "%.4f " % (0, 0))
+ # self.app.ui.rel_position_label.setText("Dx: %.4f Dy: "
+ # "%.4f " % (0, 0))
# Selection with left mouse button
if self.active_tool is not None and event.button == 1:
@@ -3801,18 +3778,22 @@ class FlatCAMExcEditor(QtCore.QObject):
self.snap_x = x
self.snap_y = y
- # update the position label in the infobar since the APP mouse event handlers are disconnected
- self.app.ui.position_label.setText(" X: %.4f "
- "Y: %.4f" % (x, y))
-
if self.pos is None:
self.pos = (0, 0)
self.app.dx = x - self.pos[0]
self.app.dy = y - self.pos[1]
- # update the reference position label in the infobar since the APP mouse event handlers are disconnected
- self.app.ui.rel_position_label.setText("Dx: %.4f Dy: "
- "%.4f " % (self.app.dx, self.app.dy))
+ # # update the position label in the infobar since the APP mouse event handlers are disconnected
+ self.app.ui.position_label.setText(" X: %.4f "
+ "Y: %.4f " % (x, y))
+ # # update the reference position label in the infobar since the APP mouse event handlers are disconnected
+ # self.app.ui.rel_position_label.setText("Dx: %.4f Dy: "
+ # "%.4f " % (self.app.dx, self.app.dy))
+
+ units = self.app.defaults["units"].lower()
+ self.app.plotcanvas.text_hud.text = \
+ 'Dx:\t{:<.4f} [{:s}]\nDy:\t{:<.4f} [{:s}]\n\nX: \t{:<.4f} [{:s}]\nY: \t{:<.4f} [{:s}]'.format(
+ self.app.dx, units, self.app.dy, units, x, units, y, units)
# ## Utility geometry (animated)
self.update_utility_geometry(data=(x, y))
@@ -4045,7 +4026,7 @@ class FlatCAMExcEditor(QtCore.QObject):
def select_tool(self, toolname):
"""
- Selects a drawing tool. Impacts the object and GUI.
+ Selects a drawing tool. Impacts the object and AppGUI.
:param toolname: Name of the tool.
:return: None
diff --git a/flatcamEditors/FlatCAMGeoEditor.py b/AppEditors/FlatCAMGeoEditor.py
similarity index 98%
rename from flatcamEditors/FlatCAMGeoEditor.py
rename to AppEditors/FlatCAMGeoEditor.py
index 1f10c01f..51bb53a6 100644
--- a/flatcamEditors/FlatCAMGeoEditor.py
+++ b/AppEditors/FlatCAMGeoEditor.py
@@ -15,11 +15,10 @@ from PyQt5 import QtGui, QtCore, QtWidgets
from PyQt5.QtCore import Qt, QSettings
from camlib import distance, arc, three_point_circle, Geometry, FlatCAMRTreeStorage
-from FlatCAMTool import FlatCAMTool
-from flatcamGUI.ObjectUI import RadioSet
-from flatcamGUI.GUIElements import OptionalInputSection, FCCheckBox, FCEntry, FCComboBox, FCTextAreaRich, \
- FCTable, FCDoubleSpinner, FCButton, EvalEntry2, FCInputDialog, FCTree
-from flatcamParsers.ParseFont import *
+from AppTool import AppTool
+from AppGUI.GUIElements import OptionalInputSection, FCCheckBox, FCEntry, FCComboBox, FCTextAreaRich, \
+ FCDoubleSpinner, FCButton, FCInputDialog, FCTree
+from AppParsers.ParseFont import *
from shapely.geometry import LineString, LinearRing, MultiLineString, Polygon, MultiPolygon
from shapely.ops import cascaded_union, unary_union, linemerge
@@ -34,7 +33,7 @@ from rtree import index as rtindex
from copy import deepcopy
# from vispy.io import read_png
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -42,7 +41,7 @@ if '_' not in builtins.__dict__:
_ = gettext.gettext
-class BufferSelectionTool(FlatCAMTool):
+class BufferSelectionTool(AppTool):
"""
Simple input for buffer distance.
"""
@@ -50,7 +49,7 @@ class BufferSelectionTool(FlatCAMTool):
toolName = "Buffer Selection"
def __init__(self, app, draw_app):
- FlatCAMTool.__init__(self, app)
+ AppTool.__init__(self, app)
self.draw_app = draw_app
self.decimals = app.decimals
@@ -118,12 +117,12 @@ class BufferSelectionTool(FlatCAMTool):
self.buffer_int_button.clicked.connect(self.on_buffer_int)
self.buffer_ext_button.clicked.connect(self.on_buffer_ext)
- # Init GUI
+ # Init AppGUI
self.buffer_distance_entry.set_value(0.01)
def run(self):
self.app.defaults.report_usage("Geo Editor ToolBuffer()")
- FlatCAMTool.run(self)
+ AppTool.run(self)
# if the splitter us hidden, display it
if self.app.ui.splitter.sizes()[0] == 0:
@@ -187,7 +186,7 @@ class BufferSelectionTool(FlatCAMTool):
self.app.ui.notebook.setCurrentWidget(self.app.ui.project_tab)
-class TextInputTool(FlatCAMTool):
+class TextInputTool(AppTool):
"""
Simple input for buffer distance.
"""
@@ -195,7 +194,7 @@ class TextInputTool(FlatCAMTool):
toolName = "Text Input Tool"
def __init__(self, app):
- FlatCAMTool.__init__(self, app)
+ AppTool.__init__(self, app)
self.app = app
self.text_path = []
@@ -340,7 +339,7 @@ class TextInputTool(FlatCAMTool):
def run(self):
self.app.defaults.report_usage("Geo Editor TextInputTool()")
- FlatCAMTool.run(self)
+ AppTool.run(self)
# if the splitter us hidden, display it
if self.app.ui.splitter.sizes()[0] == 0:
@@ -405,7 +404,7 @@ class TextInputTool(FlatCAMTool):
self.app.ui.notebook.setTabText(2, _("Tool"))
-class PaintOptionsTool(FlatCAMTool):
+class PaintOptionsTool(AppTool):
"""
Inputs to specify how to paint the selected polygons.
"""
@@ -413,7 +412,7 @@ class PaintOptionsTool(FlatCAMTool):
toolName = "Paint Tool"
def __init__(self, app, fcdraw):
- FlatCAMTool.__init__(self, app)
+ AppTool.__init__(self, app)
self.app = app
self.fcdraw = fcdraw
@@ -538,7 +537,7 @@ class PaintOptionsTool(FlatCAMTool):
def run(self):
self.app.defaults.report_usage("Geo Editor ToolPaint()")
- FlatCAMTool.run(self)
+ AppTool.run(self)
# if the splitter us hidden, display it
if self.app.ui.splitter.sizes()[0] == 0:
@@ -547,7 +546,7 @@ class PaintOptionsTool(FlatCAMTool):
self.app.ui.notebook.setTabText(2, _("Paint Tool"))
def set_tool_ui(self):
- # Init GUI
+ # Init AppGUI
if self.app.defaults["tools_painttooldia"]:
self.painttooldia_entry.set_value(self.app.defaults["tools_painttooldia"])
else:
@@ -599,7 +598,7 @@ class PaintOptionsTool(FlatCAMTool):
self.app.ui.splitter.setSizes([0, 1])
-class TransformEditorTool(FlatCAMTool):
+class TransformEditorTool(AppTool):
"""
Inputs to specify how to paint the selected polygons.
"""
@@ -612,7 +611,7 @@ class TransformEditorTool(FlatCAMTool):
offsetName = _("Offset")
def __init__(self, app, draw_app):
- FlatCAMTool.__init__(self, app)
+ AppTool.__init__(self, app)
self.app = app
self.draw_app = draw_app
@@ -933,7 +932,7 @@ class TransformEditorTool(FlatCAMTool):
"the 'y' in (x, y) will be used when using Flip on Y.")
)
self.flip_ref_label.setFixedWidth(50)
- self.flip_ref_entry = FCEntry("(0, 0)")
+ self.flip_ref_entry = FCEntry("0, 0")
self.flip_ref_button = FCButton()
self.flip_ref_button.set_value(_("Add"))
@@ -981,7 +980,7 @@ class TransformEditorTool(FlatCAMTool):
def run(self):
self.app.defaults.report_usage("Geo Editor Transform Tool()")
- FlatCAMTool.run(self)
+ AppTool.run(self)
self.set_tool_ui()
# if the splitter us hidden, display it
@@ -991,7 +990,7 @@ class TransformEditorTool(FlatCAMTool):
self.app.ui.notebook.setTabText(2, _("Transform Tool"))
def install(self, icon=None, separator=None, **kwargs):
- FlatCAMTool.install(self, icon, separator, shortcut='Alt+T', **kwargs)
+ AppTool.install(self, icon, separator, shortcut='Alt+T', **kwargs)
def set_tool_ui(self):
# Initialize form
@@ -1048,7 +1047,7 @@ class TransformEditorTool(FlatCAMTool):
if self.app.defaults["tools_transform_mirror_point"]:
self.flip_ref_entry.set_value(self.app.defaults["tools_transform_mirror_point"])
else:
- self.flip_ref_entry.set_value((0, 0))
+ self.flip_ref_entry.set_value("0, 0")
def template(self):
if not self.draw_app.selected:
@@ -3383,7 +3382,7 @@ class FlatCAMGeoEditor(QtCore.QObject):
self.shapes = self.app.plotcanvas.new_shape_collection(layers=1)
self.tool_shape = self.app.plotcanvas.new_shape_collection(layers=1)
else:
- from flatcamGUI.PlotCanvasLegacy import ShapeCollectionLegacy
+ from AppGUI.PlotCanvasLegacy import ShapeCollectionLegacy
self.shapes = ShapeCollectionLegacy(obj=self, app=self.app, name='shapes_geo_editor')
self.tool_shape = ShapeCollectionLegacy(obj=self, app=self.app, name='tool_shapes_geo_editor')
@@ -3467,22 +3466,32 @@ class FlatCAMGeoEditor(QtCore.QObject):
:return:
"""
try:
- self.options[opt] = float(entry.text())
+ text_value = entry.text()
+ if ',' in text_value:
+ text_value = text_value.replace(',', '.')
+ self.options[opt] = float(text_value)
except Exception as e:
+ entry.set_value(self.app.defaults[opt])
log.debug("FlatCAMGeoEditor.__init__().entry2option() --> %s" % str(e))
return
- def gridx_changed(goption, gentry):
+ def grid_changed(goption, gentry):
"""
- :param goption: String. Can be either 'global_gridx' or 'global_gridy'
- :param gentry: A GUI element which text value is read and used
+ :param goption: String. Can be either 'global_gridx' or 'global_gridy'
+ :param gentry: A GUI element which text value is read and used
:return:
"""
+ if goption not in ['global_gridx', 'global_gridy']:
+ return
+
entry2option(opt=goption, entry=gentry)
# if the grid link is checked copy the value in the GridX field to GridY
try:
- val = float(gentry.get_value())
+ text_value = gentry.text()
+ if ',' in text_value:
+ text_value = text_value.replace(',', '.')
+ val = float(text_value)
except ValueError:
return
@@ -3491,7 +3500,7 @@ class FlatCAMGeoEditor(QtCore.QObject):
self.app.ui.grid_gap_x_entry.setValidator(QtGui.QDoubleValidator())
self.app.ui.grid_gap_x_entry.textChanged.connect(
- lambda: gridx_changed("global_gridx", self.app.ui.grid_gap_x_entry))
+ lambda: grid_changed("global_gridx", self.app.ui.grid_gap_x_entry))
self.app.ui.grid_gap_y_entry.setValidator(QtGui.QDoubleValidator())
self.app.ui.grid_gap_y_entry.textChanged.connect(
@@ -3542,7 +3551,7 @@ class FlatCAMGeoEditor(QtCore.QObject):
# store the status of the editor so the Delete at object level will not work until the edit is finished
self.editor_active = False
- log.debug("Initialization of the FlatCAM Geometry Editor is finished ...")
+ log.debug("Initialization of the Geometry Editor is finished ...")
def pool_recreated(self, pool):
self.shapes.pool = pool
@@ -3559,14 +3568,14 @@ class FlatCAMGeoEditor(QtCore.QObject):
# Remove anything else in the GUI Selected Tab
self.app.ui.selected_scroll_area.takeWidget()
- # Put ourselves in the GUI Selected Tab
+ # Put ourselves in the AppGUI Selected Tab
self.app.ui.selected_scroll_area.setWidget(self.geo_edit_widget)
# Switch notebook to Selected page
self.app.ui.notebook.setCurrentWidget(self.app.ui.selected_tab)
def build_ui(self):
"""
- Build the GUI in the Selected Tab for this editor
+ Build the AppGUI in the Selected Tab for this editor
:return:
"""
@@ -3644,10 +3653,8 @@ class FlatCAMGeoEditor(QtCore.QObject):
self.tool_shape.enabled = True
self.app.app_cursor.enabled = True
- self.app.ui.snap_max_dist_entry.setEnabled(True)
- self.app.ui.corner_snap_btn.setEnabled(True)
- self.app.ui.snap_magnet.setVisible(True)
self.app.ui.corner_snap_btn.setVisible(True)
+ self.app.ui.snap_magnet.setVisible(True)
self.app.ui.geo_editor_menu.setDisabled(False)
self.app.ui.geo_editor_menu.menuAction().setVisible(True)
@@ -3658,7 +3665,7 @@ class FlatCAMGeoEditor(QtCore.QObject):
self.app.ui.geo_edit_toolbar.setDisabled(False)
self.app.ui.geo_edit_toolbar.setVisible(True)
- self.app.ui.snap_toolbar.setDisabled(False)
+ self.app.ui.status_toolbar.setDisabled(False)
self.app.ui.popmenu_disable.setVisible(False)
self.app.ui.cmenu_newmenu.menuAction().setVisible(False)
@@ -3675,7 +3682,7 @@ class FlatCAMGeoEditor(QtCore.QObject):
self.item_selected.connect(self.on_geo_elem_selected)
- # ## GUI Events
+ # ## AppGUI Events
self.tw.itemSelectionChanged.connect(self.on_tree_selection_change)
# self.tw.keyPressed.connect(self.app.ui.keyPressEvent)
# self.tw.customContextMenuRequested.connect(self.on_menu_request)
@@ -3703,27 +3710,8 @@ class FlatCAMGeoEditor(QtCore.QObject):
self.app.ui.geo_edit_toolbar.setDisabled(True)
settings = QSettings("Open Source", "FlatCAM")
- if settings.contains("layout"):
- layout = settings.value('layout', type=str)
- if layout == 'standard':
- # self.app.ui.geo_edit_toolbar.setVisible(False)
-
- self.app.ui.snap_max_dist_entry.setEnabled(False)
- self.app.ui.corner_snap_btn.setEnabled(False)
- self.app.ui.snap_magnet.setVisible(False)
- self.app.ui.corner_snap_btn.setVisible(False)
- else:
- # self.app.ui.geo_edit_toolbar.setVisible(True)
-
- self.app.ui.snap_max_dist_entry.setEnabled(False)
- self.app.ui.corner_snap_btn.setEnabled(False)
- else:
- # self.app.ui.geo_edit_toolbar.setVisible(False)
-
- self.app.ui.snap_magnet.setVisible(False)
- self.app.ui.corner_snap_btn.setVisible(False)
- self.app.ui.snap_max_dist_entry.setEnabled(False)
- self.app.ui.corner_snap_btn.setEnabled(False)
+ self.app.ui.corner_snap_btn.setVisible(False)
+ self.app.ui.snap_magnet.setVisible(False)
# set the Editor Toolbar visibility to what was before entering in the Editor
self.app.ui.geo_edit_toolbar.setVisible(False) if self.toolbar_old_state is False \
@@ -3757,7 +3745,7 @@ class FlatCAMGeoEditor(QtCore.QObject):
pass
try:
- # ## GUI Events
+ # ## AppGUI Events
self.tw.itemSelectionChanged.disconnect(self.on_tree_selection_change)
# self.tw.keyPressed.connect(self.app.ui.keyPressEvent)
# self.tw.customContextMenuRequested.connect(self.on_menu_request)
@@ -4100,7 +4088,6 @@ class FlatCAMGeoEditor(QtCore.QObject):
# start with GRID toolbar activated
if self.app.ui.grid_snap_btn.isChecked() is False:
self.app.ui.grid_snap_btn.trigger()
- self.app.ui.on_grid_snap_triggered(state=True)
def on_buffer_tool(self):
buff_tool = BufferSelectionTool(self.app, self)
@@ -4148,9 +4135,11 @@ class FlatCAMGeoEditor(QtCore.QObject):
# make sure that the cursor shape is enabled/disabled, too
if self.options['grid_snap'] is True:
+ self.app.inform[str, bool].emit(_("Grid Snap enabled."), False)
self.app.app_cursor.enabled = True
else:
self.app.app_cursor.enabled = False
+ self.app.inform[str, bool].emit(_("Grid Snap disabled."), False)
def on_canvas_click(self, event):
"""
@@ -4173,8 +4162,8 @@ class FlatCAMGeoEditor(QtCore.QObject):
self.pos = (self.pos[0], self.pos[1])
if event.button == 1:
- self.app.ui.rel_position_label.setText("Dx: %.4f Dy: "
- "%.4f " % (0, 0))
+ # self.app.ui.rel_position_label.setText("Dx: %.4f Dy: "
+ # "%.4f " % (0, 0))
modifiers = QtWidgets.QApplication.keyboardModifiers()
# If the SHIFT key is pressed when LMB is clicked then the coordinates are copied to clipboard
@@ -4261,18 +4250,23 @@ class FlatCAMGeoEditor(QtCore.QObject):
self.snap_y = y
self.app.mouse = [x, y]
- # update the position label in the infobar since the APP mouse event handlers are disconnected
- self.app.ui.position_label.setText(" X: %.4f "
- "Y: %.4f" % (x, y))
-
if self.pos is None:
self.pos = (0, 0)
self.app.dx = x - self.pos[0]
self.app.dy = y - self.pos[1]
- # update the reference position label in the infobar since the APP mouse event handlers are disconnected
- self.app.ui.rel_position_label.setText("Dx: %.4f Dy: "
- "%.4f " % (self.app.dx, self.app.dy))
+ # # update the position label in the infobar since the APP mouse event handlers are disconnected
+ self.app.ui.position_label.setText(" X: %.4f "
+ "Y: %.4f " % (x, y))
+ #
+ # # update the reference position label in the infobar since the APP mouse event handlers are disconnected
+ # self.app.ui.rel_position_label.setText("Dx: %.4f Dy: "
+ # "%.4f " % (self.app.dx, self.app.dy))
+
+ units = self.app.defaults["units"].lower()
+ self.app.plotcanvas.text_hud.text = \
+ 'Dx:\t{:<.4f} [{:s}]\nDy:\t{:<.4f} [{:s}]\n\nX: \t{:<.4f} [{:s}]\nY: \t{:<.4f} [{:s}]'.format(
+ self.app.dx, units, self.app.dy, units, x, units, y, units)
if event.button == 1 and event_is_dragging and isinstance(self.active_tool, FCEraser):
pass
@@ -4665,7 +4659,7 @@ class FlatCAMGeoEditor(QtCore.QObject):
def select_tool(self, toolname):
"""
- Selects a drawing tool. Impacts the object and GUI.
+ Selects a drawing tool. Impacts the object and AppGUI.
:param toolname: Name of the tool.
:return: None
@@ -4750,8 +4744,8 @@ class FlatCAMGeoEditor(QtCore.QObject):
Transfers the geometry tool shape buffer to the selected geometry
object. The geometry already in the object are removed.
- :param fcgeometry: GeometryObject
- :return: None
+ :param fcgeometry: GeometryObject
+ :return: None
"""
if self.multigeo_tool:
fcgeometry.tools[self.multigeo_tool]['solid_geometry'] = []
@@ -4776,6 +4770,8 @@ class FlatCAMGeoEditor(QtCore.QObject):
new_geo = linemerge(new_geo)
fcgeometry.solid_geometry.append(new_geo)
+ self.deactivate()
+
def update_options(self, obj):
if self.paint_tooldia:
obj.options['cnctooldia'] = deepcopy(str(self.paint_tooldia))
diff --git a/flatcamEditors/FlatCAMGrbEditor.py b/AppEditors/FlatCAMGrbEditor.py
similarity index 98%
rename from flatcamEditors/FlatCAMGrbEditor.py
rename to AppEditors/FlatCAMGrbEditor.py
index 9aa85c78..70f386fa 100644
--- a/flatcamEditors/FlatCAMGrbEditor.py
+++ b/AppEditors/FlatCAMGrbEditor.py
@@ -14,15 +14,13 @@ import shapely.affinity as affinity
from vispy.geometry import Rect
-import threading
-import time
from copy import copy, deepcopy
import logging
from camlib import distance, arc, three_point_circle
-from flatcamGUI.GUIElements import FCEntry, FCComboBox, FCTable, FCDoubleSpinner, FCSpinner, RadioSet, \
+from AppGUI.GUIElements import FCEntry, FCComboBox, FCTable, FCDoubleSpinner, FCSpinner, RadioSet, \
EvalEntry2, FCInputDialog, FCButton, OptionalInputSection, FCCheckBox
-from FlatCAMTool import FlatCAMTool
+from AppTool import AppTool
import numpy as np
from numpy.linalg import norm as numpy_norm
@@ -32,7 +30,7 @@ import math
# import pngcanvas
import traceback
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -1086,15 +1084,6 @@ class FCRegion(FCShapeTool):
self.draw_app.app.inform.emit('[success] %s' % _("Done."))
- def clean_up(self):
- self.draw_app.selected = []
- self.draw_app.apertures_table.clearSelection()
- self.draw_app.plot_all()
- try:
- self.draw_app.app.jump_signal.disconnect()
- except (TypeError, AttributeError):
- pass
-
def on_key(self, key):
# Jump to coords
if key == QtCore.Qt.Key_J or key == 'J':
@@ -1160,16 +1149,36 @@ class FCRegion(FCShapeTool):
return msg
+ def clean_up(self):
+ self.draw_app.selected = []
+ self.draw_app.apertures_table.clearSelection()
+ self.draw_app.plot_all()
+ try:
+ self.draw_app.app.jump_signal.disconnect()
+ except (TypeError, AttributeError):
+ pass
-class FCTrack(FCRegion):
+
+class FCTrack(FCShapeTool):
"""
Resulting type: Polygon
"""
def __init__(self, draw_app):
- FCRegion.__init__(self, draw_app)
+ DrawTool.__init__(self, draw_app)
self.name = 'track'
self.draw_app = draw_app
+ self.steps_per_circle = self.draw_app.app.defaults["gerber_circle_steps"]
+
+ size_ap = float(self.draw_app.storage_dict[self.draw_app.last_aperture_selected]['size'])
+ self.buf_val = (size_ap / 2) if size_ap > 0 else 0.0000001
+
+ self.gridx_size = float(self.draw_app.app.ui.grid_gap_x_entry.get_value())
+ self.gridy_size = float(self.draw_app.app.ui.grid_gap_y_entry.get_value())
+
+ self.temp_points = []
+
+ self. final_click = False
try:
QtGui.QGuiApplication.restoreOverrideCursor()
except Exception as e:
@@ -1183,52 +1192,23 @@ class FCTrack(FCRegion):
self.draw_app.app.inform.emit(_('Track Mode 1: 45 degrees ...'))
- def make(self):
- new_geo_el = {}
- if len(self.temp_points) == 1:
- new_geo_el['solid'] = Point(self.temp_points).buffer(self.buf_val,
- resolution=int(self.steps_per_circle / 4))
- new_geo_el['follow'] = Point(self.temp_points)
- else:
- new_geo_el['solid'] = (LineString(self.temp_points).buffer(
- self.buf_val, resolution=int(self.steps_per_circle / 4))).buffer(0)
- new_geo_el['follow'] = LineString(self.temp_points)
-
- self.geometry = DrawToolShape(new_geo_el)
-
- self.draw_app.in_action = False
- self.complete = True
-
- self.draw_app.app.jump_signal.disconnect()
-
- self.draw_app.app.inform.emit('[success] %s' % _("Done."))
-
- def clean_up(self):
- self.draw_app.selected = []
- self.draw_app.apertures_table.clearSelection()
- self.draw_app.plot_all()
- try:
- self.draw_app.app.jump_signal.disconnect()
- except (TypeError, AttributeError):
- pass
-
def click(self, point):
self.draw_app.in_action = True
- try:
- if point != self.points[-1]:
- self.points.append(point)
- except IndexError:
+
+ if not self.points:
self.points.append(point)
+ elif point != self.points[-1]:
+ self.points.append(point)
+ else:
+ return
new_geo_el = {}
if len(self.temp_points) == 1:
- new_geo_el['solid'] = Point(self.temp_points).buffer(self.buf_val,
- resolution=int(self.steps_per_circle / 4))
+ new_geo_el['solid'] = Point(self.temp_points).buffer(self.buf_val, int(self.steps_per_circle))
new_geo_el['follow'] = Point(self.temp_points)
else:
- new_geo_el['solid'] = LineString(self.temp_points).buffer(self.buf_val,
- resolution=int(self.steps_per_circle / 4))
+ new_geo_el['solid'] = LineString(self.temp_points).buffer(self.buf_val, int(self.steps_per_circle))
new_geo_el['follow'] = LineString(self.temp_points)
self.draw_app.add_gerber_shape(DrawToolShape(new_geo_el),
@@ -1241,23 +1221,25 @@ class FCTrack(FCRegion):
return ""
+ def update_grid_info(self):
+ self.gridx_size = float(self.draw_app.app.ui.grid_gap_x_entry.get_value())
+ self.gridy_size = float(self.draw_app.app.ui.grid_gap_y_entry.get_value())
+
def utility_geometry(self, data=None):
self.update_grid_info()
new_geo_el = {}
- if len(self.points) == 0:
- new_geo_el['solid'] = Point(data).buffer(self.buf_val,
- resolution=int(self.steps_per_circle / 4))
-
+ if not self.points:
+ new_geo_el['solid'] = Point(data).buffer(self.buf_val, int(self.steps_per_circle))
return DrawToolUtilityShape(new_geo_el)
- elif len(self.points) > 0:
-
- self.temp_points = [self.points[-1]]
+ else:
old_x = self.points[-1][0]
old_y = self.points[-1][1]
x = data[0]
y = data[1]
+ self.temp_points = [self.points[-1]]
+
mx = abs(round((x - old_x) / self.gridx_size))
my = abs(round((y - old_y) / self.gridy_size))
@@ -1305,14 +1287,30 @@ class FCTrack(FCRegion):
self.temp_points.append(data)
if len(self.temp_points) == 1:
- new_geo_el['solid'] = Point(self.temp_points).buffer(self.buf_val,
- resolution=int(self.steps_per_circle / 4))
+ new_geo_el['solid'] = Point(self.temp_points).buffer(self.buf_val, int(self.steps_per_circle))
return DrawToolUtilityShape(new_geo_el)
- new_geo_el['solid'] = LineString(self.temp_points).buffer(self.buf_val,
- resolution=int(self.steps_per_circle / 4))
+ new_geo_el['solid'] = LineString(self.temp_points).buffer(self.buf_val, int(self.steps_per_circle))
return DrawToolUtilityShape(new_geo_el)
+ def make(self):
+ new_geo_el = {}
+ if len(self.temp_points) == 1:
+ new_geo_el['solid'] = Point(self.temp_points).buffer(self.buf_val, int(self.steps_per_circle))
+ new_geo_el['follow'] = Point(self.temp_points)
+ else:
+ new_geo_el['solid'] = LineString(self.temp_points).buffer(self.buf_val, int(self.steps_per_circle))
+ new_geo_el['solid'] = new_geo_el['solid'].buffer(0) # try to clean the geometry
+ new_geo_el['follow'] = LineString(self.temp_points)
+
+ self.geometry = DrawToolShape(new_geo_el)
+
+ self.draw_app.in_action = False
+ self.complete = True
+
+ self.draw_app.app.jump_signal.disconnect()
+ self.draw_app.app.inform.emit('[success] %s' % _("Done."))
+
def on_key(self, key):
if key == 'Backspace' or key == QtCore.Qt.Key_Backspace:
if len(self.points) > 0:
@@ -1405,6 +1403,15 @@ class FCTrack(FCRegion):
return msg
+ def clean_up(self):
+ self.draw_app.selected = []
+ self.draw_app.apertures_table.clearSelection()
+ self.draw_app.plot_all()
+ try:
+ self.draw_app.app.jump_signal.disconnect()
+ except (TypeError, AttributeError):
+ pass
+
class FCDisc(FCShapeTool):
"""
@@ -2955,7 +2962,7 @@ class FlatCAMGrbEditor(QtCore.QObject):
# this var will store the state of the toolbar before starting the editor
self.toolbar_old_state = False
- # Init GUI
+ # Init AppGUI
self.apdim_lbl.hide()
self.apdim_entry.hide()
self.gerber_obj = None
@@ -2967,7 +2974,7 @@ class FlatCAMGrbEditor(QtCore.QObject):
self.tool_shape = self.canvas.new_shape_collection(layers=1)
self.ma_annotation = self.canvas.new_text_group()
else:
- from flatcamGUI.PlotCanvasLegacy import ShapeCollectionLegacy
+ from AppGUI.PlotCanvasLegacy import ShapeCollectionLegacy
self.shapes = ShapeCollectionLegacy(obj=self, app=self.app, name='shapes_grb_editor')
self.tool_shape = ShapeCollectionLegacy(obj=self, app=self.app, name='tool_shapes_grb_editor')
self.ma_annotation = ShapeCollectionLegacy(
@@ -3110,7 +3117,7 @@ class FlatCAMGrbEditor(QtCore.QObject):
self.complete = True
self.set_ui()
- log.debug("Initialization of the FlatCAM Gerber Editor is finished ...")
+ log.debug("Initialization of the Gerber Editor is finished ...")
def pool_recreated(self, pool):
self.shapes.pool = pool
@@ -3139,7 +3146,7 @@ class FlatCAMGrbEditor(QtCore.QObject):
tt_aperture = self.sorted_apcode[i]
self.tid2apcode[i + 1] = tt_aperture
- # Init GUI
+ # Init AppGUI
self.buffer_distance_entry.set_value(self.app.defaults["gerber_editor_buff_f"])
self.scale_factor_entry.set_value(self.app.defaults["gerber_editor_scale_f"])
@@ -3685,10 +3692,8 @@ class FlatCAMGrbEditor(QtCore.QObject):
self.shapes.enabled = True
self.tool_shape.enabled = True
- self.app.ui.snap_max_dist_entry.setEnabled(True)
- self.app.ui.corner_snap_btn.setEnabled(True)
- self.app.ui.snap_magnet.setVisible(True)
self.app.ui.corner_snap_btn.setVisible(True)
+ self.app.ui.snap_magnet.setVisible(True)
self.app.ui.grb_editor_menu.setDisabled(False)
self.app.ui.grb_editor_menu.menuAction().setVisible(True)
@@ -3698,12 +3703,11 @@ class FlatCAMGrbEditor(QtCore.QObject):
self.app.ui.grb_edit_toolbar.setDisabled(False)
self.app.ui.grb_edit_toolbar.setVisible(True)
- # self.app.ui.snap_toolbar.setDisabled(False)
+ # self.app.ui.status_toolbar.setDisabled(False)
# start with GRID toolbar activated
if self.app.ui.grid_snap_btn.isChecked() is False:
self.app.ui.grid_snap_btn.trigger()
- self.app.ui.on_grid_snap_triggered(state=True)
# adjust the visibility of some of the canvas context menu
self.app.ui.popmenu_edit.setVisible(False)
@@ -3736,29 +3740,8 @@ class FlatCAMGrbEditor(QtCore.QObject):
self.app.ui.grb_edit_toolbar.setDisabled(True)
settings = QSettings("Open Source", "FlatCAM")
- if settings.contains("layout"):
- layout = settings.value('layout', type=str)
- if layout == 'standard':
- # self.app.ui.exc_edit_toolbar.setVisible(False)
-
- self.app.ui.snap_max_dist_entry.setEnabled(False)
- self.app.ui.corner_snap_btn.setEnabled(False)
- self.app.ui.snap_magnet.setVisible(False)
- self.app.ui.corner_snap_btn.setVisible(False)
- else:
- # self.app.ui.exc_edit_toolbar.setVisible(True)
-
- self.app.ui.snap_max_dist_entry.setEnabled(False)
- self.app.ui.corner_snap_btn.setEnabled(False)
- self.app.ui.snap_magnet.setVisible(True)
- self.app.ui.corner_snap_btn.setVisible(True)
- else:
- # self.app.ui.exc_edit_toolbar.setVisible(False)
-
- self.app.ui.snap_max_dist_entry.setEnabled(False)
- self.app.ui.corner_snap_btn.setEnabled(False)
- self.app.ui.snap_magnet.setVisible(False)
- self.app.ui.corner_snap_btn.setVisible(False)
+ self.app.ui.corner_snap_btn.setVisible(False)
+ self.app.ui.snap_magnet.setVisible(False)
# set the Editor Toolbar visibility to what was before entering in the Editor
self.app.ui.grb_edit_toolbar.setVisible(False) if self.toolbar_old_state is False \
@@ -4210,7 +4193,7 @@ class FlatCAMGrbEditor(QtCore.QObject):
def on_multiprocessing_finished(self):
self.app.proc_container.update_view_text(' %s' % _("Setting up the UI"))
- self.app.inform.emit('[success] %s.' % _("Adding geometry finished. Preparing the GUI"))
+ self.app.inform.emit('[success] %s.' % _("Adding geometry finished. Preparing the AppGUI"))
self.set_ui()
self.build_ui(first_run=True)
self.plot_all()
@@ -4245,6 +4228,7 @@ class FlatCAMGrbEditor(QtCore.QObject):
new_grb_name = self.edited_obj_name + "_edit"
self.app.worker_task.emit({'fcn': self.new_edited_gerber, 'params': [new_grb_name, self.storage_dict]})
+ # self.new_edited_gerber(new_grb_name, self.storage_dict)
@staticmethod
def update_options(obj):
@@ -4266,9 +4250,10 @@ class FlatCAMGrbEditor(QtCore.QObject):
"""
Creates a new Gerber object for the edited Gerber. Thread-safe.
- :param outname: Name of the resulting object. None causes the name to be that of the file.
- :type outname: str
- :param aperture_storage: a dictionary that holds all the objects geometry
+ :param outname: Name of the resulting object. None causes the name to be that of the file.
+ :type outname: str
+ :param aperture_storage: a dictionary that holds all the objects geometry
+ :type aperture_storage: dict
:return: None
"""
@@ -4360,26 +4345,27 @@ class FlatCAMGrbEditor(QtCore.QObject):
self.app.inform.emit('[ERROR_NOTCL] %s' %
_("There are no Aperture definitions in the file. Aborting Gerber creation."))
except Exception:
- msg = '[ERROR] %s' % \
- _("An internal error has occurred. See shell.\n")
+ msg = '[ERROR] %s' % _("An internal error has occurred. See shell.\n")
msg += traceback.format_exc()
app_obj.inform.emit(msg)
raise
+
grb_obj.source_file = self.app.export_gerber(obj_name=out_name, filename=None,
local_use=grb_obj, use_thread=False)
with self.app.proc_container.new(_("Creating Gerber.")):
try:
- self.app.new_object("gerber", outname, obj_init)
+ self.app.app_obj.new_object("gerber", outname, obj_init)
except Exception as e:
log.error("Error on Edited object creation: %s" % str(e))
# make sure to clean the previous results
self.results = []
return
- self.app.inform.emit('[success] %s' % _("Done. Gerber editing finished."))
# make sure to clean the previous results
self.results = []
+ self.deactivate_grb_editor()
+ self.app.inform.emit('[success] %s' % _("Done. Gerber editing finished."))
def on_tool_select(self, tool):
"""
@@ -4537,8 +4523,8 @@ class FlatCAMGrbEditor(QtCore.QObject):
self.pos = (self.pos[0], self.pos[1])
if event.button == 1:
- self.app.ui.rel_position_label.setText("Dx: %.4f Dy: "
- "%.4f " % (0, 0))
+ # self.app.ui.rel_position_label.setText("Dx: %.4f Dy: "
+ # "%.4f " % (0, 0))
# Selection with left mouse button
if self.active_tool is not None:
@@ -4550,8 +4536,7 @@ class FlatCAMGrbEditor(QtCore.QObject):
self.app.defaults["global_point_clipboard_format"] %
(self.decimals, self.pos[0], self.decimals, self.pos[1])
)
- self.app.inform.emit('[success] %s' %
- _("Coordinates copied to clipboard."))
+ self.app.inform.emit('[success] %s' % _("Coordinates copied to clipboard."))
return
# Dispatch event to active_tool
@@ -4562,6 +4547,7 @@ class FlatCAMGrbEditor(QtCore.QObject):
if self.current_storage is not None:
self.on_grb_shape_complete(self.current_storage)
self.build_ui()
+
# MS: always return to the Select Tool if modifier key is not pressed
# else return to the current tool
key_modifier = QtWidgets.QApplication.keyboardModifiers()
@@ -4569,6 +4555,7 @@ class FlatCAMGrbEditor(QtCore.QObject):
modifier_to_use = Qt.ControlModifier
else:
modifier_to_use = Qt.ShiftModifier
+
# if modifier key is pressed then we add to the selected list the current shape but if it's already
# in the selected list, we removed it. Therefore first click selects, second deselects.
if key_modifier == modifier_to_use:
@@ -4629,12 +4616,14 @@ class FlatCAMGrbEditor(QtCore.QObject):
# if right click on canvas and the active tool need to be finished (like Path or Polygon)
# right mouse click will finish the action
if isinstance(self.active_tool, FCShapeTool):
- self.active_tool.click(self.app.geo_editor.snap(self.x, self.y))
- self.active_tool.make()
+ if isinstance(self.active_tool, FCTrack):
+ self.active_tool.make()
+ else:
+ self.active_tool.click(self.app.geo_editor.snap(self.x, self.y))
+ self.active_tool.make()
if self.active_tool.complete:
self.on_grb_shape_complete()
- self.app.inform.emit('[success] %s' %
- _("Done."))
+ self.app.inform.emit('[success] %s' % _("Done."))
# MS: always return to the Select Tool if modifier key is not pressed
# else return to the current tool but not for FCTrack
@@ -4774,18 +4763,23 @@ class FlatCAMGrbEditor(QtCore.QObject):
self.app.mouse = [x, y]
- # update the position label in the infobar since the APP mouse event handlers are disconnected
- self.app.ui.position_label.setText(" X: %.4f "
- "Y: %.4f" % (x, y))
-
if self.pos is None:
self.pos = (0, 0)
self.app.dx = x - self.pos[0]
self.app.dy = y - self.pos[1]
- # update the reference position label in the infobar since the APP mouse event handlers are disconnected
- self.app.ui.rel_position_label.setText("Dx: %.4f Dy: "
- "%.4f " % (self.app.dx, self.app.dy))
+ # # update the position label in the infobar since the APP mouse event handlers are disconnected
+ self.app.ui.position_label.setText(" X: %.4f "
+ "Y: %.4f " % (x, y))
+ #
+ # # update the reference position label in the infobar since the APP mouse event handlers are disconnected
+ # self.app.ui.rel_position_label.setText("Dx: %.4f Dy: "
+ # "%.4f " % (self.app.dx, self.app.dy))
+
+ units = self.app.defaults["units"].lower()
+ self.app.plotcanvas.text_hud.text = \
+ 'Dx:\t{:<.4f} [{:s}]\nDy:\t{:<.4f} [{:s}]\n\nX: \t{:<.4f} [{:s}]\nY: \t{:<.4f} [{:s}]'.format(
+ self.app.dx, units, self.app.dy, units, x, units, y, units)
self.update_utility_geometry(data=(x, y))
@@ -5032,7 +5026,7 @@ class FlatCAMGrbEditor(QtCore.QObject):
def select_tool(self, toolname):
"""
- Selects a drawing tool. Impacts the object and GUI.
+ Selects a drawing tool. Impacts the object and AppGUI.
:param toolname: Name of the tool.
:return: None
@@ -5298,7 +5292,7 @@ class FlatCAMGrbEditor(QtCore.QObject):
self.app.ui.notebook.setCurrentWidget(self.app.ui.selected_tab)
-class TransformEditorTool(FlatCAMTool):
+class TransformEditorTool(AppTool):
"""
Inputs to specify how to paint the selected polygons.
"""
@@ -5311,7 +5305,7 @@ class TransformEditorTool(FlatCAMTool):
offsetName = _("Offset")
def __init__(self, app, draw_app):
- FlatCAMTool.__init__(self, app)
+ AppTool.__init__(self, app)
self.app = app
self.draw_app = draw_app
@@ -5633,7 +5627,7 @@ class TransformEditorTool(FlatCAMTool):
"the 'y' in (x, y) will be used when using Flip on Y.")
)
self.flip_ref_label.setMinimumWidth(50)
- self.flip_ref_entry = EvalEntry2("(0, 0)")
+ self.flip_ref_entry = FCEntry()
self.flip_ref_entry.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter)
# self.flip_ref_entry.setFixedWidth(60)
@@ -5697,13 +5691,13 @@ class TransformEditorTool(FlatCAMTool):
except AttributeError:
pass
- FlatCAMTool.run(self)
+ AppTool.run(self)
self.set_tool_ui()
self.app.ui.notebook.setTabText(2, _("Transform Tool"))
def install(self, icon=None, separator=None, **kwargs):
- FlatCAMTool.install(self, icon, separator, shortcut='Alt+T', **kwargs)
+ AppTool.install(self, icon, separator, shortcut='Alt+T', **kwargs)
def set_tool_ui(self):
# Initialize form
@@ -5760,7 +5754,7 @@ class TransformEditorTool(FlatCAMTool):
if self.app.defaults["tools_transform_mirror_point"]:
self.flip_ref_entry.set_value(self.app.defaults["tools_transform_mirror_point"])
else:
- self.flip_ref_entry.set_value((0, 0))
+ self.flip_ref_entry.set_value("0, 0")
def template(self):
if not self.draw_app.selected:
diff --git a/flatcamEditors/FlatCAMTextEditor.py b/AppEditors/FlatCAMTextEditor.py
similarity index 98%
rename from flatcamEditors/FlatCAMTextEditor.py
rename to AppEditors/FlatCAMTextEditor.py
index 92641258..21c8aa7e 100644
--- a/flatcamEditors/FlatCAMTextEditor.py
+++ b/AppEditors/FlatCAMTextEditor.py
@@ -5,7 +5,7 @@
# MIT Licence #
# ##########################################################
-from flatcamGUI.GUIElements import FCFileSaveDialog, FCEntry, FCTextAreaExtended, FCTextAreaLineNumber
+from AppGUI.GUIElements import FCFileSaveDialog, FCEntry, FCTextAreaExtended, FCTextAreaLineNumber
from PyQt5 import QtPrintSupport, QtWidgets, QtCore, QtGui
from reportlab.platypus import SimpleDocTemplate, Paragraph
@@ -15,7 +15,7 @@ from reportlab.lib.units import inch, mm
# from io import StringIO
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -214,10 +214,10 @@ class TextEditor(QtWidgets.QWidget):
filename = str(FCFileSaveDialog.get_saved_filename(
caption=_("Export Code ..."),
directory=self.app.defaults["global_last_folder"] + '/' + str(obj_name),
- filter=_filter_
+ ext_filter=_filter_
)[0])
except TypeError:
- filename = str(FCFileSaveDialog.get_saved_filename(caption=_("Export Code ..."), filter=_filter_)[0])
+ filename = str(FCFileSaveDialog.get_saved_filename(caption=_("Export Code ..."), ext_filter=_filter_)[0])
if filename == "":
self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled."))
diff --git a/flatcamEditors/__init__.py b/AppEditors/__init__.py
similarity index 100%
rename from flatcamEditors/__init__.py
rename to AppEditors/__init__.py
diff --git a/flatcamGUI/GUIElements.py b/AppGUI/GUIElements.py
similarity index 90%
rename from flatcamGUI/GUIElements.py
rename to AppGUI/GUIElements.py
index 4771c5e6..a7829719 100644
--- a/flatcamGUI/GUIElements.py
+++ b/AppGUI/GUIElements.py
@@ -20,9 +20,10 @@ from copy import copy
import re
import logging
import html
+import sys
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
log = logging.getLogger('base')
@@ -569,9 +570,13 @@ class FCEntry3(FCEntry):
class EvalEntry(QtWidgets.QLineEdit):
- def __init__(self, parent=None):
+ def __init__(self, border_color=None, parent=None):
super(EvalEntry, self).__init__(parent)
self.readyToEdit = True
+
+ if border_color:
+ self.setStyleSheet("QLineEdit {border: 1px solid %s;}" % border_color)
+
self.editingFinished.connect(self.on_edit_finished)
def on_edit_finished(self):
@@ -598,7 +603,6 @@ class EvalEntry(QtWidgets.QLineEdit):
def get_value(self):
raw = str(self.text()).strip(' ')
- evaled = 0.0
try:
evaled = eval(raw)
except Exception as e:
@@ -638,7 +642,7 @@ class EvalEntry2(QtWidgets.QLineEdit):
def get_value(self):
raw = str(self.text()).strip(' ')
- evaled = 0.0
+
try:
evaled = eval(raw)
except Exception as e:
@@ -655,6 +659,30 @@ class EvalEntry2(QtWidgets.QLineEdit):
return QtCore.QSize(EDIT_SIZE_HINT, default_hint_size.height())
+class NumericalEvalEntry(EvalEntry):
+ """
+ Will evaluate the input and return a value. Accepts only float numbers and formulas using the operators: /,*,+,-,%
+ """
+ def __init__(self, border_color=None):
+ super().__init__(border_color=border_color)
+
+ regex = QtCore.QRegExp("[0-9\/\*\+\-\%\.\s]*")
+ validator = QtGui.QRegExpValidator(regex, self)
+ self.setValidator(validator)
+
+
+class NumericalEvalTupleEntry(FCEntry):
+ """
+ Will evaluate the input and return a value. Accepts only float numbers and formulas using the operators: /,*,+,-,%
+ """
+ def __init__(self, border_color=None):
+ super().__init__(border_color=border_color)
+
+ regex = QtCore.QRegExp("[0-9\/\*\+\-\%\.\s\,]*")
+ validator = QtGui.QRegExpValidator(regex, self)
+ self.setValidator(validator)
+
+
class FCSpinner(QtWidgets.QSpinBox):
returnPressed = QtCore.pyqtSignal()
@@ -683,6 +711,8 @@ class FCSpinner(QtWidgets.QSpinBox):
self.setAlignment(align_val)
self.prev_readyToEdit = True
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Ignored, QtWidgets.QSizePolicy.Preferred)
+ self.setSizePolicy(sizePolicy)
def eventFilter(self, object, event):
if event.type() == QtCore.QEvent.MouseButtonPress and self.prev_readyToEdit is True:
@@ -815,6 +845,8 @@ class FCDoubleSpinner(QtWidgets.QDoubleSpinBox):
self.setAlignment(align_val)
self.prev_readyToEdit = True
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Ignored, QtWidgets.QSizePolicy.Preferred)
+ self.setSizePolicy(sizePolicy)
def on_edit_finished(self):
self.clearFocus()
@@ -1336,7 +1368,8 @@ class FCComboBox(QtWidgets.QComboBox):
return str(self.currentText())
def set_value(self, val):
- self.setCurrentIndex(self.findText(str(val)))
+ idx = self.findText(str(val))
+ self.setCurrentIndex(idx)
@property
def is_last(self):
@@ -1480,9 +1513,11 @@ class FCDetachableTab(QtWidgets.QTabWidget):
From here:
https://stackoverflow.com/questions/47267195/in-pyqt4-is-it-possible-to-detach-tabs-from-a-qtabwidget
"""
+ tab_detached = QtCore.pyqtSignal(str)
+ tab_attached = QtCore.pyqtSignal(str)
def __init__(self, protect=None, protect_by_name=None, parent=None):
- super().__init__()
+ super().__init__(parent=parent)
self.tabBar = self.FCTabBar(self)
self.tabBar.onMoveTabSignal.connect(self.moveTab)
@@ -1619,7 +1654,7 @@ class FCDetachableTab(QtWidgets.QTabWidget):
self.insertTab(toIndex, widget, icon, text)
self.setCurrentIndex(toIndex)
- @pyqtSlot(int, QtCore.QPoint)
+ # @pyqtSlot(int, QtCore.QPoint)
def detachTab(self, index, point):
"""
Detach the tab by removing it's contents and placing them in
@@ -1656,6 +1691,8 @@ class FCDetachableTab(QtWidgets.QTabWidget):
# Create a reference to maintain access to the detached tab
self.detachedTabs[name] = detachedTab
+ self.tab_detached.emit(name)
+
def attachTab(self, contentWidget, name, icon, insertAt=None):
"""
Re-attach the tab by removing the content from the DetachedTab window,
@@ -1668,11 +1705,11 @@ class FCDetachableTab(QtWidgets.QTabWidget):
:return:
"""
+ old_name = name
+
# Make the content widget a child of this widget
contentWidget.setParent(self)
- # Remove the reference
- del self.detachedTabs[name]
# make sure that we strip the 'FlatCAM' part of the detached name otherwise the tab name will be too long
name = name.partition(' ')[2]
@@ -1712,6 +1749,9 @@ class FCDetachableTab(QtWidgets.QTabWidget):
else:
index = self.insertTab(insert_index, contentWidget, icon, name)
+ obj_name = contentWidget.objectName()
+ self.tab_attached.emit(obj_name)
+
# on reattaching the tab if protect is true then the closure button is not added
if self.protect_tab is True:
self.protectTab(index)
@@ -1727,6 +1767,14 @@ class FCDetachableTab(QtWidgets.QTabWidget):
if index > -1:
self.setCurrentIndex(insert_index) if self.use_old_index else self.setCurrentIndex(index)
+ # Remove the reference
+ # Unix-like OS's crash with segmentation fault after this. FOr whatever reason, they loose reference
+ if sys.platform == 'win32':
+ try:
+ del self.detachedTabs[old_name]
+ except KeyError:
+ pass
+
def removeTabByName(self, name):
"""
Remove the tab with the given name, even if it is detached
@@ -2179,11 +2227,14 @@ class OptionalHideInputSection:
"""
Associates the a checkbox with a set of inputs.
- :param cb: Checkbox that enables the optional inputs.
- :param optinputs: List of widgets that are optional.
- :param logic: When True the logic is normal, when False the logic is in reverse
- It means that for logic=True, when the checkbox is checked the widgets are Enabled, and
- for logic=False, when the checkbox is checked the widgets are Disabled
+ :param cb: Checkbox that enables the optional inputs.
+ :type cb: QtWidgets.QCheckBox
+ :param optinputs: List of widgets that are optional.
+ :type optinputs: list
+ :param logic: When True the logic is normal, when False the logic is in reverse
+ It means that for logic=True, when the checkbox is checked the widgets are Enabled, and
+ for logic=False, when the checkbox is checked the widgets are Disabled
+ :type logic: bool
:return:
"""
assert isinstance(cb, FCCheckBox), \
@@ -2215,6 +2266,7 @@ class OptionalHideInputSection:
class FCTable(QtWidgets.QTableWidget):
drag_drop_sig = QtCore.pyqtSignal()
+ lost_focus = QtCore.pyqtSignal()
def __init__(self, drag_drop=False, protected_rows=None, parent=None):
super(FCTable, self).__init__(parent)
@@ -2278,6 +2330,10 @@ class FCTable(QtWidgets.QTableWidget):
else:
QtWidgets.QTableWidget.mousePressEvent(self, event)
+ def focusOutEvent(self, event):
+ self.lost_focus.emit()
+ super().focusOutEvent(event)
+
def setupContextMenu(self):
self.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu)
@@ -2449,7 +2505,8 @@ class SpinBoxDelegate(QtWidgets.QItemDelegate):
def updateEditorGeometry(self, editor, option, index):
editor.setGeometry(option.rect)
- def setDecimals(self, spinbox, digits):
+ @staticmethod
+ def setDecimals(spinbox, digits):
spinbox.setDecimals(digits)
@@ -2497,7 +2554,7 @@ class DialogBoxRadio(QtWidgets.QDialog):
:param title: string with the window title
:param label: string with the message inside the dialog box
"""
- super(DialogBoxRadio, self).__init__()
+ super(DialogBoxRadio, self).__init__(parent=parent)
if initial_text is None:
self.location = str((0, 0))
else:
@@ -2740,9 +2797,12 @@ class MyCompleter(QCompleter):
insertText = QtCore.pyqtSignal(str)
def __init__(self, parent=None):
- QCompleter.__init__(self)
+ QCompleter.__init__(self, parent=parent)
self.setCompletionMode(QCompleter.PopupCompletion)
self.highlighted.connect(self.setHighlighted)
+
+ self.lastSelected = ''
+
# self.popup().installEventFilter(self)
# def eventFilter(self, obj, event):
@@ -2898,9 +2958,9 @@ class FCFileSaveDialog(QtWidgets.QFileDialog):
super(FCFileSaveDialog, self).__init__(*args)
@staticmethod
- def get_saved_filename(parent=None, caption='', directory='', filter='', initialFilter=''):
+ def get_saved_filename(parent=None, caption='', directory='', ext_filter='', initialFilter=''):
filename, _filter = QtWidgets.QFileDialog.getSaveFileName(parent=parent, caption=caption,
- directory=directory, filter=filter,
+ directory=directory, filter=ext_filter,
initialFilter=initialFilter)
filename = str(filename)
@@ -2916,6 +2976,225 @@ class FCFileSaveDialog(QtWidgets.QFileDialog):
return filename, _filter
+class FCDock(QtWidgets.QDockWidget):
+
+ def __init__(self, *args, **kwargs):
+ super(FCDock, self).__init__(*args)
+ self.close_callback = kwargs["close_callback"] if "close_callback" in kwargs else None
+
+ def closeEvent(self, event: QtGui.QCloseEvent) -> None:
+ self.close_callback()
+ super().closeEvent(event)
+
+ def show(self) -> None:
+ if self.isFloating():
+ self.setFloating(False)
+ super().show()
+
+
+class FlatCAMActivityView(QtWidgets.QWidget):
+ """
+ This class create and control the activity icon displayed in the App status bar
+ """
+
+ def __init__(self, app, parent=None):
+ super().__init__(parent=parent)
+
+ self.app = app
+
+ if self.app.defaults["global_activity_icon"] == "Ball green":
+ icon = self.app.resource_location + '/active_2_static.png'
+ movie = self.app.resource_location + "/active_2.gif"
+ elif self.app.defaults["global_activity_icon"] == "Ball black":
+ icon = self.app.resource_location + '/active_static.png'
+ movie = self.app.resource_location + "/active.gif"
+ elif self.app.defaults["global_activity_icon"] == "Arrow green":
+ icon = self.app.resource_location + '/active_3_static.png'
+ movie = self.app.resource_location + "/active_3.gif"
+ elif self.app.defaults["global_activity_icon"] == "Eclipse green":
+ icon = self.app.resource_location + '/active_4_static.png'
+ movie = self.app.resource_location + "/active_4.gif"
+ else:
+ icon = self.app.resource_location + '/active_static.png'
+ movie = self.app.resource_location + "/active.gif"
+
+ self.setMinimumWidth(200)
+ self.movie_path = movie
+ self.icon_path = icon
+
+ self.icon = FCLabel(self)
+ self.icon.setGeometry(0, 0, 16, 12)
+ self.movie = QtGui.QMovie(self.movie_path)
+
+ self.icon.setMovie(self.movie)
+ # self.movie.start()
+
+ layout = QtWidgets.QHBoxLayout()
+ layout.setContentsMargins(5, 0, 5, 0)
+ layout.setAlignment(QtCore.Qt.AlignLeft)
+ self.setLayout(layout)
+
+ layout.addWidget(self.icon)
+ self.text = QtWidgets.QLabel(self)
+ self.text.setText(_("Idle."))
+ self.icon.setPixmap(QtGui.QPixmap(self.icon_path))
+
+ layout.addWidget(self.text)
+
+ self.icon.clicked.connect(self.app.on_toolbar_replot)
+
+ def set_idle(self):
+ self.movie.stop()
+ self.text.setText(_("Idle."))
+
+ def set_busy(self, msg, no_movie=None):
+ if no_movie is not True:
+ self.icon.setMovie(self.movie)
+ self.movie.start()
+ self.text.setText(msg)
+
+
+class FlatCAMInfoBar(QtWidgets.QWidget):
+ """
+ This class create a place to display the App messages in the Status Bar
+ """
+
+ def __init__(self, parent=None, app=None):
+ super(FlatCAMInfoBar, self).__init__(parent=parent)
+
+ self.app = app
+
+ self.icon = QtWidgets.QLabel(self)
+ self.icon.setGeometry(0, 0, 12, 12)
+ self.pmap = QtGui.QPixmap(self.app.resource_location + '/graylight12.png')
+ self.icon.setPixmap(self.pmap)
+
+ self.lock_pmaps = False
+
+ layout = QtWidgets.QHBoxLayout()
+ layout.setContentsMargins(5, 0, 5, 0)
+ self.setLayout(layout)
+
+ layout.addWidget(self.icon)
+
+ self.text = QtWidgets.QLabel(self)
+ self.text.setText(_("Application started ..."))
+ self.text.setToolTip(_("Hello!"))
+
+ layout.addWidget(self.text)
+ layout.addStretch()
+
+ def set_text_(self, text, color=None):
+ self.text.setText(text)
+ self.text.setToolTip(text)
+ if color:
+ self.text.setStyleSheet('color: %s' % str(color))
+
+ def set_status(self, text, level="info"):
+ level = str(level)
+
+ if self.lock_pmaps is not True:
+ self.pmap.fill()
+ if level == "ERROR" or level == "ERROR_NOTCL":
+ self.pmap = QtGui.QPixmap(self.app.resource_location + '/redlight12.png')
+ elif level.lower() == "success":
+ self.pmap = QtGui.QPixmap(self.app.resource_location + '/greenlight12.png')
+ elif level == "WARNING" or level == "WARNING_NOTCL":
+ self.pmap = QtGui.QPixmap(self.app.resource_location + '/yellowlight12.png')
+ elif level.lower() == "selected":
+ self.pmap = QtGui.QPixmap(self.app.resource_location + '/bluelight12.png')
+ else:
+ self.pmap = QtGui.QPixmap(self.app.resource_location + '/graylight12.png')
+
+ try:
+ self.set_text_(text)
+ self.icon.setPixmap(self.pmap)
+ except Exception as e:
+ log.debug("FlatCAMInfoBar.set_status() --> %s" % str(e))
+
+
+class FlatCAMSystemTray(QtWidgets.QSystemTrayIcon):
+ """
+ This class create the Sys Tray icon for the app
+ """
+
+ def __init__(self, app, icon, headless=None, parent=None):
+ # QtWidgets.QSystemTrayIcon.__init__(self, icon, parent)
+ super().__init__(icon, parent=parent)
+ self.app = app
+
+ menu = QtWidgets.QMenu(parent)
+
+ menu_runscript = QtWidgets.QAction(QtGui.QIcon(self.app.resource_location + '/script14.png'),
+ '%s' % _('Run Script ...'), self)
+ menu_runscript.setToolTip(
+ _("Will run the opened Tcl Script thus\n"
+ "enabling the automation of certain\n"
+ "functions of FlatCAM.")
+ )
+ menu.addAction(menu_runscript)
+
+ menu.addSeparator()
+
+ if headless is None:
+ self.menu_open = menu.addMenu(QtGui.QIcon(self.app.resource_location + '/folder32_bis.png'), _('Open'))
+
+ # Open Project ...
+ menu_openproject = QtWidgets.QAction(QtGui.QIcon(self.app.resource_location + '/folder16.png'),
+ _('Open Project ...'), self)
+ self.menu_open.addAction(menu_openproject)
+ self.menu_open.addSeparator()
+
+ # Open Gerber ...
+ menu_opengerber = QtWidgets.QAction(QtGui.QIcon(self.app.resource_location + '/flatcam_icon24.png'),
+ _('Open &Gerber ...\tCtrl+G'), self)
+ self.menu_open.addAction(menu_opengerber)
+
+ # Open Excellon ...
+ menu_openexcellon = QtWidgets.QAction(QtGui.QIcon(self.app.resource_location + '/open_excellon32.png'),
+ _('Open &Excellon ...\tCtrl+E'), self)
+ self.menu_open.addAction(menu_openexcellon)
+
+ # Open G-Code ...
+ menu_opengcode = QtWidgets.QAction(QtGui.QIcon(self.app.resource_location + '/code.png'),
+ _('Open G-&Code ...'), self)
+ self.menu_open.addAction(menu_opengcode)
+
+ self.menu_open.addSeparator()
+
+ menu_openproject.triggered.connect(self.app.on_file_openproject)
+ menu_opengerber.triggered.connect(self.app.on_fileopengerber)
+ menu_openexcellon.triggered.connect(self.app.on_fileopenexcellon)
+ menu_opengcode.triggered.connect(self.app.on_fileopengcode)
+
+ exitAction = menu.addAction(_("Exit"))
+ exitAction.setIcon(QtGui.QIcon(self.app.resource_location + '/power16.png'))
+ self.setContextMenu(menu)
+
+ menu_runscript.triggered.connect(lambda: self.app.on_filerunscript(
+ silent=True if self.app.cmd_line_headless == 1 else False))
+
+ exitAction.triggered.connect(self.app.final_save)
+
+
+def message_dialog(title, message, kind="info", parent=None):
+ """
+ Builds and show a custom QMessageBox to be used in FlatCAM.
+
+ :param title: title of the QMessageBox
+ :param message: message to be displayed
+ :param kind: type of QMessageBox; will display a specific icon.
+ :param parent: parent
+ :return: None
+ """
+ icon = {"info": QtWidgets.QMessageBox.Information,
+ "warning": QtWidgets.QMessageBox.Warning,
+ "error": QtWidgets.QMessageBox.Critical}[str(kind)]
+ dlg = QtWidgets.QMessageBox(icon, title, message, parent=parent)
+ dlg.setText(message)
+ dlg.exec_()
+
+
def rreplace(s, old, new, occurrence):
"""
Credits go here:
diff --git a/flatcamGUI/FlatCAMGUI.py b/AppGUI/MainGUI.py
similarity index 89%
rename from flatcamGUI/FlatCAMGUI.py
rename to AppGUI/MainGUI.py
index b6d20c35..6423ae8f 100644
--- a/flatcamGUI/FlatCAMGUI.py
+++ b/AppGUI/MainGUI.py
@@ -12,28 +12,28 @@
# ##########################################################
import platform
-from flatcamGUI.GUIElements import *
-from flatcamGUI.preferences import settings
-from flatcamGUI.preferences.cncjob.CNCJobPreferencesUI import CNCJobPreferencesUI
-from flatcamGUI.preferences.excellon.ExcellonPreferencesUI import ExcellonPreferencesUI
-from flatcamGUI.preferences.general.GeneralPreferencesUI import GeneralPreferencesUI
-from flatcamGUI.preferences.geometry.GeometryPreferencesUI import GeometryPreferencesUI
-from flatcamGUI.preferences.gerber.GerberPreferencesUI import GerberPreferencesUI
-from flatcamEditors.FlatCAMGeoEditor import FCShapeTool
+from AppGUI.GUIElements import *
+from AppGUI.preferences import settings
+from AppGUI.preferences.cncjob.CNCJobPreferencesUI import CNCJobPreferencesUI
+from AppGUI.preferences.excellon.ExcellonPreferencesUI import ExcellonPreferencesUI
+from AppGUI.preferences.general.GeneralPreferencesUI import GeneralPreferencesUI
+from AppGUI.preferences.geometry.GeometryPreferencesUI import GeometryPreferencesUI
+from AppGUI.preferences.gerber.GerberPreferencesUI import GerberPreferencesUI
+from AppEditors.FlatCAMGeoEditor import FCShapeTool
from matplotlib.backend_bases import KeyEvent as mpl_key_event
import webbrowser
-from flatcamGUI.preferences.tools.Tools2PreferencesUI import Tools2PreferencesUI
-from flatcamGUI.preferences.tools.ToolsPreferencesUI import ToolsPreferencesUI
-from flatcamGUI.preferences.utilities.UtilPreferencesUI import UtilPreferencesUI
-from flatcamObjects.ObjectCollection import KeySensitiveListView
+from AppGUI.preferences.tools.Tools2PreferencesUI import Tools2PreferencesUI
+from AppGUI.preferences.tools.ToolsPreferencesUI import ToolsPreferencesUI
+from AppGUI.preferences.utilities.UtilPreferencesUI import UtilPreferencesUI
+from AppObjects.ObjectCollection import KeySensitiveListView
import subprocess
import os
import sys
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -41,13 +41,13 @@ if '_' not in builtins.__dict__:
_ = gettext.gettext
-class FlatCAMGUI(QtWidgets.QMainWindow):
+class MainGUI(QtWidgets.QMainWindow):
# Emitted when persistent window geometry needs to be retained
geom_update = QtCore.pyqtSignal(int, int, int, int, int, name='geomUpdate')
final_save = QtCore.pyqtSignal(name='saveBeforeExit')
def __init__(self, app):
- super(FlatCAMGUI, self).__init__()
+ super(MainGUI, self).__init__()
self.app = app
self.decimals = self.app.decimals
@@ -58,17 +58,6 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
# ############ BUILDING THE GUI IS EXECUTED HERE ########################
# #######################################################################
- # #######################################################################
- # ####################### TCL Shell DOCK ################################
- # #######################################################################
- self.shell_dock = QtWidgets.QDockWidget("FlatCAM TCL Shell")
- self.shell_dock.setObjectName('Shell_DockWidget')
- self.shell_dock.setAllowedAreas(QtCore.Qt.AllDockWidgetAreas)
- self.shell_dock.setFeatures(QtWidgets.QDockWidget.DockWidgetMovable |
- QtWidgets.QDockWidget.DockWidgetFloatable |
- QtWidgets.QDockWidget.DockWidgetClosable)
- self.addDockWidget(QtCore.Qt.BottomDockWidgetArea, self.shell_dock)
-
# #######################################################################
# ###################### Menu BUILDING ##################################
# #######################################################################
@@ -200,9 +189,9 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
self.menufilerunscript = QtWidgets.QAction(
QtGui.QIcon(self.app.resource_location + '/script16.png'), '%s\tShift+S' % _('Run Script ...'), self)
self.menufilerunscript.setToolTip(
- _("Will run the opened Tcl Script thus\n"
- "enabling the automation of certain\n"
- "functions of FlatCAM.")
+ _("Will run the opened Tcl Script thus\n"
+ "enabling the automation of certain\n"
+ "functions of FlatCAM.")
)
self.menufile_scripting.addAction(self.menufilenewscript)
self.menufile_scripting.addAction(self.menufileopenscript)
@@ -265,9 +254,9 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
self.menufileexportexcellon = QtWidgets.QAction(
QtGui.QIcon(self.app.resource_location + '/drill32.png'), _('Export &Excellon ...'), self)
self.menufileexportexcellon.setToolTip(
- _("Will export an Excellon Object as Excellon file,\n"
- "the coordinates format, the file units and zeros\n"
- "are set in Preferences -> Excellon Export.")
+ _("Will export an Excellon Object as Excellon file,\n"
+ "the coordinates format, the file units and zeros\n"
+ "are set in Preferences -> Excellon Export.")
)
self.menufileexport.addAction(self.menufileexportexcellon)
@@ -344,16 +333,16 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
self.menuedit_convertjoin = self.menuedit_convert.addAction(
QtGui.QIcon(self.app.resource_location + '/join16.png'), _('&Join Geo/Gerber/Exc -> Geo'))
self.menuedit_convertjoin.setToolTip(
- _("Merge a selection of objects, which can be of type:\n"
- "- Gerber\n"
- "- Excellon\n"
- "- Geometry\n"
- "into a new combo Geometry object.")
+ _("Merge a selection of objects, which can be of type:\n"
+ "- Gerber\n"
+ "- Excellon\n"
+ "- Geometry\n"
+ "into a new combo Geometry object.")
)
self.menuedit_convertjoinexc = self.menuedit_convert.addAction(
QtGui.QIcon(self.app.resource_location + '/join16.png'), _('Join Excellon(s) -> Excellon'))
self.menuedit_convertjoinexc.setToolTip(
- _("Merge a selection of Excellon objects into a new combo Excellon object.")
+ _("Merge a selection of Excellon objects into a new combo Excellon object.")
)
self.menuedit_convertjoingrb = self.menuedit_convert.addAction(
QtGui.QIcon(self.app.resource_location + '/join16.png'), _('Join Gerber(s) -> Gerber'))
@@ -365,14 +354,14 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
self.menuedit_convert_sg2mg = self.menuedit_convert.addAction(
QtGui.QIcon(self.app.resource_location + '/convert24.png'), _('Convert Single to MultiGeo'))
self.menuedit_convert_sg2mg.setToolTip(
- _("Will convert a Geometry object from single_geometry type\n"
- "to a multi_geometry type.")
+ _("Will convert a Geometry object from single_geometry type\n"
+ "to a multi_geometry type.")
)
self.menuedit_convert_mg2sg = self.menuedit_convert.addAction(
QtGui.QIcon(self.app.resource_location + '/convert24.png'), _('Convert Multi to SingleGeo'))
self.menuedit_convert_mg2sg.setToolTip(
- _("Will convert a Geometry object from multi_geometry type\n"
- "to a single_geometry type.")
+ _("Will convert a Geometry object from multi_geometry type\n"
+ "to a single_geometry type.")
)
# Separator
self.menuedit_convert.addSeparator()
@@ -488,11 +477,13 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
self.menuview_toggle_grid = self.menuview.addAction(
QtGui.QIcon(self.app.resource_location + '/grid32.png'), _("&Toggle Grid Snap\tG"))
self.menuview_toggle_grid_lines = self.menuview.addAction(
- QtGui.QIcon(self.app.resource_location + '/grid32.png'), _("&Toggle Grid Lines\tAlt+G"))
+ QtGui.QIcon(self.app.resource_location + '/grid_lines32.png'), _("&Toggle Grid Lines\tAlt+G"))
self.menuview_toggle_axis = self.menuview.addAction(
QtGui.QIcon(self.app.resource_location + '/axis32.png'), _("&Toggle Axis\tShift+G"))
self.menuview_toggle_workspace = self.menuview.addAction(
QtGui.QIcon(self.app.resource_location + '/workspace24.png'), _("Toggle Workspace\tShift+W"))
+ self.menuview_toggle_hud = self.menuview.addAction(
+ QtGui.QIcon(self.app.resource_location + '/hud_32.png'), _("Toggle HUD\tAlt+M"))
# ########################################################################
# ########################## Objects # ###################################
@@ -541,6 +532,12 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
QtGui.QIcon(self.app.resource_location + '/shortcuts24.png'), _('Shortcuts List\tF3'))
self.menuhelp_videohelp = self.menuhelp.addAction(
QtGui.QIcon(self.app.resource_location + '/youtube32.png'), _('YouTube Channel\tF4'))
+
+ self.menuhelp.addSeparator()
+
+ self.menuhelp_readme = self.menuhelp.addAction(
+ QtGui.QIcon(self.app.resource_location + '/warning.png'), _('ReadMe?'))
+
self.menuhelp_about = self.menuhelp.addAction(
QtGui.QIcon(self.app.resource_location + '/about32.png'), _('About FlatCAM'))
@@ -767,7 +764,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
self.setCentralWidget(self.splitter)
# self.notebook = QtWidgets.QTabWidget()
- self.notebook = FCDetachableTab(protect=True)
+ self.notebook = FCDetachableTab(protect=True, parent=self)
self.notebook.setTabsClosable(False)
self.notebook.useOldIndex(True)
@@ -787,9 +784,9 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
self.toolbarfile.setObjectName('File_TB')
self.addToolBar(self.toolbarfile)
- self.toolbargeo = QtWidgets.QToolBar(_('Edit Toolbar'))
- self.toolbargeo.setObjectName('Edit_TB')
- self.addToolBar(self.toolbargeo)
+ self.toolbaredit = QtWidgets.QToolBar(_('Edit Toolbar'))
+ self.toolbaredit.setObjectName('Edit_TB')
+ self.addToolBar(self.toolbaredit)
self.toolbarview = QtWidgets.QToolBar(_('View Toolbar'))
self.toolbarview.setObjectName('View_TB')
@@ -817,17 +814,15 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
self.grb_edit_toolbar.setObjectName('GrbEditor_TB')
self.addToolBar(self.grb_edit_toolbar)
- self.snap_toolbar = QtWidgets.QToolBar(_('Grid Toolbar'))
- self.snap_toolbar.setObjectName('Snap_TB')
- self.addToolBar(self.snap_toolbar)
-
- flat_settings = QSettings("Open Source", "FlatCAM")
- if flat_settings.contains("layout"):
- layout = flat_settings.value('layout', type=str)
- if layout == 'compact':
- self.removeToolBar(self.snap_toolbar)
- self.snap_toolbar.setMaximumHeight(30)
- self.splitter_left.addWidget(self.snap_toolbar)
+ self.status_toolbar = QtWidgets.QToolBar(_('Grid Toolbar'))
+ self.status_toolbar.setObjectName('Snap_TB')
+ # self.addToolBar(self.status_toolbar)
+ self.status_toolbar.setStyleSheet(
+ """
+ QToolBar { padding: 0; }
+ QToolBar QToolButton { padding: -2; margin: -2; }
+ """
+ )
# ########################################################################
# ########################## File Toolbar# ###############################
@@ -845,37 +840,30 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
# ########################################################################
# ########################## Edit Toolbar# ###############################
# ########################################################################
- self.newgeo_btn = self.toolbargeo.addAction(
- QtGui.QIcon(self.app.resource_location + '/new_file_geo32.png'), _("New Blank Geometry"))
- self.newgrb_btn = self.toolbargeo.addAction(
- QtGui.QIcon(self.app.resource_location + '/new_file_grb32.png'), _("New Blank Gerber"))
- self.newexc_btn = self.toolbargeo.addAction(
- QtGui.QIcon(self.app.resource_location + '/new_file_exc32.png'), _("New Blank Excellon"))
- self.toolbargeo.addSeparator()
- self.editgeo_btn = self.toolbargeo.addAction(
+ self.editgeo_btn = self.toolbaredit.addAction(
QtGui.QIcon(self.app.resource_location + '/edit_file32.png'), _("Editor"))
- self.update_obj_btn = self.toolbargeo.addAction(
+ self.update_obj_btn = self.toolbaredit.addAction(
QtGui.QIcon(self.app.resource_location + '/close_edit_file32.png'), _("Save Object and close the Editor")
)
- self.toolbargeo.addSeparator()
- self.copy_btn = self.toolbargeo.addAction(
+ self.toolbaredit.addSeparator()
+ self.copy_btn = self.toolbaredit.addAction(
QtGui.QIcon(self.app.resource_location + '/copy_file32.png'), _("Copy"))
- self.delete_btn = self.toolbargeo.addAction(
- QtGui.QIcon(self.app.resource_location + '/delete_file32.png'), _("&Delete"))
- self.toolbargeo.addSeparator()
- self.distance_btn = self.toolbargeo.addAction(
+ self.delete_btn = self.toolbaredit.addAction(
+ QtGui.QIcon(self.app.resource_location + '/trash32.png'), _("&Delete"))
+ self.toolbaredit.addSeparator()
+ self.distance_btn = self.toolbaredit.addAction(
QtGui.QIcon(self.app.resource_location + '/distance32.png'), _("Distance Tool"))
- self.distance_min_btn = self.toolbargeo.addAction(
+ self.distance_min_btn = self.toolbaredit.addAction(
QtGui.QIcon(self.app.resource_location + '/distance_min32.png'), _("Distance Min Tool"))
- self.origin_btn = self.toolbargeo.addAction(
+ self.origin_btn = self.toolbaredit.addAction(
QtGui.QIcon(self.app.resource_location + '/origin32.png'), _('Set Origin'))
- self.move2origin_btn = self.toolbargeo.addAction(
+ self.move2origin_btn = self.toolbaredit.addAction(
QtGui.QIcon(self.app.resource_location + '/origin2_32.png'), _('Move to Origin'))
- self.jmp_btn = self.toolbargeo.addAction(
+ self.jmp_btn = self.toolbaredit.addAction(
QtGui.QIcon(self.app.resource_location + '/jump_to16.png'), _('Jump to Location'))
- self.locate_btn = self.toolbargeo.addAction(
+ self.locate_btn = self.toolbaredit.addAction(
QtGui.QIcon(self.app.resource_location + '/locate32.png'), _('Locate in Object'))
# ########################################################################
@@ -922,6 +910,8 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
QtGui.QIcon(self.app.resource_location + '/ncc16.png'), _("NCC Tool"))
self.paint_btn = self.toolbartools.addAction(
QtGui.QIcon(self.app.resource_location + '/paint20_1.png'), _("Paint Tool"))
+ self.isolation_btn = self.toolbartools.addAction(
+ QtGui.QIcon(self.app.resource_location + '/iso_16.png'), _("Isolation Tool"))
self.toolbartools.addSeparator()
self.panelize_btn = self.toolbartools.addAction(
@@ -956,6 +946,10 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
QtGui.QIcon(self.app.resource_location + '/punch32.png'), _("Punch Gerber Tool"))
self.invert_btn = self.toolbartools.addAction(
QtGui.QIcon(self.app.resource_location + '/invert32.png'), _("Invert Gerber Tool"))
+ self.corners_tool_btn = self.toolbartools.addAction(
+ QtGui.QIcon(self.app.resource_location + '/corners_32.png'), _("Corner Markers Tool"))
+ self.etch_btn = self.toolbartools.addAction(
+ QtGui.QIcon(self.app.resource_location + '/etch_32.png'), _("Etch Compensation Tool"))
# ########################################################################
# ########################## Excellon Editor Toolbar# ####################
@@ -1083,34 +1077,60 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
# ########################################################################
# Snap GRID toolbar is always active to facilitate usage of measurements done on GRID
- self.grid_snap_btn = self.snap_toolbar.addAction(
+ self.grid_snap_btn = self.status_toolbar.addAction(
QtGui.QIcon(self.app.resource_location + '/grid32.png'), _('Snap to grid'))
self.grid_gap_x_entry = FCEntry2()
self.grid_gap_x_entry.setMaximumWidth(70)
self.grid_gap_x_entry.setToolTip(_("Grid X snapping distance"))
- self.snap_toolbar.addWidget(self.grid_gap_x_entry)
+ self.status_toolbar.addWidget(self.grid_gap_x_entry)
+
+ self.status_toolbar.addWidget(QtWidgets.QLabel(" "))
+ self.grid_gap_link_cb = FCCheckBox()
+ self.grid_gap_link_cb.setToolTip(_("When active, value on Grid_X\n"
+ "is copied to the Grid_Y value."))
+ self.status_toolbar.addWidget(self.grid_gap_link_cb)
+ self.status_toolbar.addWidget(QtWidgets.QLabel(" "))
self.grid_gap_y_entry = FCEntry2()
self.grid_gap_y_entry.setMaximumWidth(70)
self.grid_gap_y_entry.setToolTip(_("Grid Y snapping distance"))
- self.snap_toolbar.addWidget(self.grid_gap_y_entry)
+ self.status_toolbar.addWidget(self.grid_gap_y_entry)
- self.grid_space_label = QtWidgets.QLabel(" ")
- self.snap_toolbar.addWidget(self.grid_space_label)
- self.grid_gap_link_cb = FCCheckBox()
- self.grid_gap_link_cb.setToolTip(_("When active, value on Grid_X\n"
- "is copied to the Grid_Y value."))
- self.snap_toolbar.addWidget(self.grid_gap_link_cb)
+ self.status_toolbar.addWidget(QtWidgets.QLabel(" "))
+ self.axis_status_label = FCLabel()
+ self.axis_status_label.setToolTip(_("Toggle the display of axis on canvas"))
+ self.axis_status_label.setPixmap(QtGui.QPixmap(self.app.resource_location + '/axis16.png'))
+ self.status_toolbar.addWidget(self.axis_status_label)
+ self.status_toolbar.addWidget(QtWidgets.QLabel(" "))
+
+ self.shell_status_label = FCLabel()
+ self.shell_status_label.setToolTip(_("Command Line"))
+ self.shell_status_label.setPixmap(QtGui.QPixmap(self.app.resource_location + '/shell20.png'))
+ self.status_toolbar.addWidget(self.shell_status_label)
self.ois_grid = OptionalInputSection(self.grid_gap_link_cb, [self.grid_gap_y_entry], logic=False)
- self.corner_snap_btn = self.snap_toolbar.addAction(
+ self.corner_snap_btn = self.status_toolbar.addAction(
QtGui.QIcon(self.app.resource_location + '/corner32.png'), _('Snap to corner'))
self.snap_max_dist_entry = FCEntry()
self.snap_max_dist_entry.setMaximumWidth(70)
self.snap_max_dist_entry.setToolTip(_("Max. magnet distance"))
- self.snap_magnet = self.snap_toolbar.addWidget(self.snap_max_dist_entry)
+ self.snap_magnet = self.status_toolbar.addWidget(self.snap_max_dist_entry)
+
+ self.corner_snap_btn.setVisible(False)
+ self.snap_magnet.setVisible(False)
+
+ # #######################################################################
+ # ####################### TCL Shell DOCK ################################
+ # #######################################################################
+ self.shell_dock = FCDock("FlatCAM TCL Shell", close_callback=self.toggle_shell_ui)
+ self.shell_dock.setObjectName('Shell_DockWidget')
+ self.shell_dock.setAllowedAreas(QtCore.Qt.AllDockWidgetAreas)
+ self.shell_dock.setFeatures(QtWidgets.QDockWidget.DockWidgetMovable |
+ QtWidgets.QDockWidget.DockWidgetFloatable |
+ QtWidgets.QDockWidget.DockWidgetClosable)
+ self.addDockWidget(QtCore.Qt.BottomDockWidgetArea, self.shell_dock)
# ########################################################################
# ########################## Notebook # ##################################
@@ -1174,7 +1194,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
# ########################################################################
# ########################## PLOT AREA Tab # #############################
# ########################################################################
- self.plot_tab_area = FCDetachableTab2(protect=False, protect_by_name=[_('Plot Area')])
+ self.plot_tab_area = FCDetachableTab2(protect=False, protect_by_name=[_('Plot Area')], parent=self)
self.plot_tab_area.useOldIndex(True)
self.right_lay.addWidget(self.plot_tab_area)
@@ -1353,17 +1373,2331 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
# ########################################################################
# #################### SHORTCUT LIST AREA Tab # ##########################
# ########################################################################
- self.shortcuts_tab = QtWidgets.QWidget()
+ self.shortcuts_tab = ShortcutsTab()
+
+ # ########################################################################
+ # ########################## PLOT AREA CONTEXT MENU # ###################
+ # ########################################################################
+ self.popMenu = FCMenu()
+
+ self.popmenu_disable = self.popMenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/disable32.png'), _("Toggle Visibility"))
+ self.popmenu_panel_toggle = self.popMenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/notebook16.png'), _("Toggle Panel"))
+
+ self.popMenu.addSeparator()
+ self.cmenu_newmenu = self.popMenu.addMenu(
+ QtGui.QIcon(self.app.resource_location + '/file32.png'), _("New"))
+ self.popmenu_new_geo = self.cmenu_newmenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/new_file_geo16.png'), _("Geometry"))
+ self.popmenu_new_grb = self.cmenu_newmenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/new_file_grb16.png'), "Gerber")
+ self.popmenu_new_exc = self.cmenu_newmenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/new_file_exc16.png'), _("Excellon"))
+ self.cmenu_newmenu.addSeparator()
+ self.popmenu_new_prj = self.cmenu_newmenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/file16.png'), _("Project"))
+ self.popMenu.addSeparator()
+
+ self.cmenu_gridmenu = self.popMenu.addMenu(
+ QtGui.QIcon(self.app.resource_location + '/grid32_menu.png'), _("Grids"))
+
+ self.cmenu_viewmenu = self.popMenu.addMenu(
+ QtGui.QIcon(self.app.resource_location + '/view64.png'), _("View"))
+ self.zoomfit = self.cmenu_viewmenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/zoom_fit32.png'), _("Zoom Fit"))
+ self.clearplot = self.cmenu_viewmenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/clear_plot32.png'), _("Clear Plot"))
+ self.replot = self.cmenu_viewmenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/replot32.png'), _("Replot"))
+ self.popMenu.addSeparator()
+
+ self.g_editor_cmenu = self.popMenu.addMenu(
+ QtGui.QIcon(self.app.resource_location + '/draw32.png'), _("Geo Editor"))
+ self.draw_line = self.g_editor_cmenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/path32.png'), _("Path"))
+ self.draw_rect = self.g_editor_cmenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/rectangle32.png'), _("Rectangle"))
+ self.g_editor_cmenu.addSeparator()
+ self.draw_circle = self.g_editor_cmenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/circle32.png'), _("Circle"))
+ self.draw_poly = self.g_editor_cmenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/polygon32.png'), _("Polygon"))
+ self.draw_arc = self.g_editor_cmenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/arc32.png'), _("Arc"))
+ self.g_editor_cmenu.addSeparator()
+
+ self.draw_text = self.g_editor_cmenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/text32.png'), _("Text"))
+ self.draw_buffer = self.g_editor_cmenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/buffer16-2.png'), _("Buffer"))
+ self.draw_paint = self.g_editor_cmenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/paint20_1.png'), _("Paint"))
+ self.draw_eraser = self.g_editor_cmenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/eraser26.png'), _("Eraser"))
+ self.g_editor_cmenu.addSeparator()
+
+ self.draw_union = self.g_editor_cmenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/union32.png'), _("Union"))
+ self.draw_intersect = self.g_editor_cmenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/intersection32.png'), _("Intersection"))
+ self.draw_substract = self.g_editor_cmenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/subtract32.png'), _("Subtraction"))
+ self.draw_cut = self.g_editor_cmenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/cutpath32.png'), _("Cut"))
+ self.draw_transform = self.g_editor_cmenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/transform.png'), _("Transformations"))
+
+ self.g_editor_cmenu.addSeparator()
+ self.draw_move = self.g_editor_cmenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/move32.png'), _("Move"))
+
+ self.grb_editor_cmenu = self.popMenu.addMenu(
+ QtGui.QIcon(self.app.resource_location + '/draw32.png'), _("Gerber Editor"))
+ self.grb_draw_pad = self.grb_editor_cmenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/aperture32.png'), _("Pad"))
+ self.grb_draw_pad_array = self.grb_editor_cmenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/padarray32.png'), _("Pad Array"))
+ self.grb_editor_cmenu.addSeparator()
+
+ self.grb_draw_track = self.grb_editor_cmenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/track32.png'), _("Track"))
+ self.grb_draw_region = self.grb_editor_cmenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/polygon32.png'), _("Region"))
+ self.grb_draw_poligonize = self.grb_editor_cmenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/poligonize32.png'), _("Poligonize"))
+ self.grb_draw_semidisc = self.grb_editor_cmenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/semidisc32.png'), _("SemiDisc"))
+ self.grb_draw_disc = self.grb_editor_cmenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/disc32.png'), _("Disc"))
+ self.grb_editor_cmenu.addSeparator()
+
+ self.grb_draw_buffer = self.grb_editor_cmenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/buffer16-2.png'), _("Buffer"))
+ self.grb_draw_scale = self.grb_editor_cmenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/scale32.png'), _("Scale"))
+ self.grb_draw_markarea = self.grb_editor_cmenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/markarea32.png'), _("Mark Area"))
+ self.grb_draw_eraser = self.grb_editor_cmenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/eraser26.png'), _("Eraser"))
+ self.grb_editor_cmenu.addSeparator()
+
+ self.grb_draw_transformations = self.grb_editor_cmenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/transform.png'), _("Transformations"))
+
+ self.e_editor_cmenu = self.popMenu.addMenu(
+ QtGui.QIcon(self.app.resource_location + '/drill32.png'), _("Exc Editor"))
+ self.drill = self.e_editor_cmenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/drill32.png'), _("Add Drill"))
+ self.drill_array = self.e_editor_cmenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/addarray32.png'), _("Add Drill Array"))
+ self.e_editor_cmenu.addSeparator()
+ self.slot = self.e_editor_cmenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/slot26.png'), _("Add Slot"))
+ self.slot_array = self.e_editor_cmenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/slot_array26.png'), _("Add Slot Array"))
+ self.e_editor_cmenu.addSeparator()
+ self.drill_resize = self.e_editor_cmenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/resize16.png'), _("Resize Drill"))
+
+ self.popMenu.addSeparator()
+ self.popmenu_copy = self.popMenu.addAction(QtGui.QIcon(self.app.resource_location + '/copy32.png'), _("Copy"))
+ self.popmenu_delete = self.popMenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/delete32.png'), _("Delete"))
+ self.popmenu_edit = self.popMenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/edit32.png'), _("Edit"))
+ self.popmenu_save = self.popMenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/floppy32.png'), _("Close Editor"))
+ self.popmenu_save.setVisible(False)
+ self.popMenu.addSeparator()
+
+ self.popmenu_move = self.popMenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/move32.png'), _("Move"))
+ self.popmenu_properties = self.popMenu.addAction(
+ QtGui.QIcon(self.app.resource_location + '/properties32.png'), _("Properties"))
+
+ # ########################################################################
+ # ########################## INFO BAR # ##################################
+ # ########################################################################
+ self.infobar = self.statusBar()
+ self.fcinfo = FlatCAMInfoBar(app=self.app)
+ self.infobar.addWidget(self.fcinfo, stretch=1)
+
+ # self.rel_position_label = QtWidgets.QLabel(
+ # "Dx: 0.0000 Dy: 0.0000 ")
+ # self.rel_position_label.setMinimumWidth(110)
+ # self.rel_position_label.setToolTip(_("Relative measurement.\nReference is last click position"))
+ # self.infobar.addWidget(self.rel_position_label)
+ #
+ self.position_label = QtWidgets.QLabel(" X: 0.0000 Y: 0.0000 ")
+ self.position_label.setMinimumWidth(110)
+ self.position_label.setToolTip(_("Absolute measurement.\n"
+ "Reference is (X=0, Y= 0) position"))
+ self.infobar.addWidget(self.position_label)
+
+ self.status_toolbar.setMaximumHeight(24)
+ self.infobar.addWidget(self.status_toolbar)
+
+ self.hud_label = FCLabel("H")
+ self.hud_label.setToolTip(_("HUD (Heads up display)"))
+ self.hud_label.setMargin(2)
+ self.infobar.addWidget(self.hud_label)
+
+ self.wplace_label = FCLabel("A4")
+ self.wplace_label.setToolTip(_("Draw a delimiting rectangle on canvas.\n"
+ "The purpose is to illustrate the limits for our work.")
+ )
+ self.wplace_label.setMargin(2)
+ self.infobar.addWidget(self.wplace_label)
+
+ self.units_label = QtWidgets.QLabel("[mm]")
+ self.units_label.setToolTip(_("Application units"))
+ self.units_label.setMargin(2)
+ self.infobar.addWidget(self.units_label)
+
+ # disabled
+ # self.progress_bar = QtWidgets.QProgressBar()
+ # self.progress_bar.setMinimum(0)
+ # self.progress_bar.setMaximum(100)
+ # infobar.addWidget(self.progress_bar)
+
+ # ########################################################################
+ # ########################## SET GUI Elements # ##########################
+ # ########################################################################
+ self.app_icon = QtGui.QIcon()
+ self.app_icon.addFile(self.app.resource_location + '/flatcam_icon16.png', QtCore.QSize(16, 16))
+ self.app_icon.addFile(self.app.resource_location + '/flatcam_icon24.png', QtCore.QSize(24, 24))
+ self.app_icon.addFile(self.app.resource_location + '/flatcam_icon32.png', QtCore.QSize(32, 32))
+ self.app_icon.addFile(self.app.resource_location + '/flatcam_icon48.png', QtCore.QSize(48, 48))
+ self.app_icon.addFile(self.app.resource_location + '/flatcam_icon128.png', QtCore.QSize(128, 128))
+ self.app_icon.addFile(self.app.resource_location + '/flatcam_icon256.png', QtCore.QSize(256, 256))
+ self.setWindowIcon(self.app_icon)
+
+ self.setGeometry(100, 100, 1024, 650)
+ self.setWindowTitle('FlatCAM %s %s - %s' %
+ (self.app.version,
+ ('BETA' if self.app.beta else ''),
+ platform.architecture()[0])
+ )
+
+ self.filename = ""
+ self.units = ""
+ self.setAcceptDrops(True)
+
+ # ########################################################################
+ # ########################## Build GUI # #################################
+ # ########################################################################
+ self.grid_snap_btn.setCheckable(True)
+ self.corner_snap_btn.setCheckable(True)
+ self.update_obj_btn.setEnabled(False)
+ # start with GRID activated
+ self.grid_snap_btn.trigger()
+
+ self.g_editor_cmenu.menuAction().setVisible(False)
+ self.grb_editor_cmenu.menuAction().setVisible(False)
+ self.e_editor_cmenu.menuAction().setVisible(False)
+
+ # ########################################################################
+ # ######################## BUILD PREFERENCES #############################
+ # ########################################################################
+ self.general_defaults_form = GeneralPreferencesUI(decimals=self.decimals)
+ self.gerber_defaults_form = GerberPreferencesUI(decimals=self.decimals)
+ self.excellon_defaults_form = ExcellonPreferencesUI(decimals=self.decimals)
+ self.geometry_defaults_form = GeometryPreferencesUI(decimals=self.decimals)
+ self.cncjob_defaults_form = CNCJobPreferencesUI(decimals=self.decimals)
+ self.tools_defaults_form = ToolsPreferencesUI(decimals=self.decimals)
+ self.tools2_defaults_form = Tools2PreferencesUI(decimals=self.decimals)
+ self.util_defaults_form = UtilPreferencesUI(decimals=self.decimals)
+
+ QtWidgets.qApp.installEventFilter(self)
+
+ # ########################################################################
+ # ################## RESTORE THE TOOLBAR STATE from file #################
+ # ########################################################################
+ flat_settings = QSettings("Open Source", "FlatCAM")
+ if flat_settings.contains("saved_gui_state"):
+ saved_gui_state = flat_settings.value('saved_gui_state')
+ self.restoreState(saved_gui_state)
+ log.debug("MainGUI.__init__() --> UI state restored from QSettings.")
+
+ self.corner_snap_btn.setVisible(False)
+ self.snap_magnet.setVisible(False)
+
+ if flat_settings.contains("layout"):
+ layout = flat_settings.value('layout', type=str)
+ self.exc_edit_toolbar.setDisabled(True)
+ self.geo_edit_toolbar.setDisabled(True)
+ self.grb_edit_toolbar.setDisabled(True)
+
+ log.debug("MainGUI.__init__() --> UI layout restored from QSettings. Layout = %s" % str(layout))
+ else:
+ self.exc_edit_toolbar.setDisabled(True)
+ self.geo_edit_toolbar.setDisabled(True)
+ self.grb_edit_toolbar.setDisabled(True)
+
+ flat_settings.setValue('layout', "standard")
+ # This will write the setting to the platform specific storage.
+ del flat_settings
+ log.debug("MainGUI.__init__() --> UI layout restored from defaults. QSettings set to 'standard'")
+
+ # construct the Toolbar Lock menu entry to the context menu of the QMainWindow
+ self.lock_action = QtWidgets.QAction()
+ self.lock_action.setText(_("Lock Toolbars"))
+ self.lock_action.setCheckable(True)
+
+ qsettings = QSettings("Open Source", "FlatCAM")
+ if qsettings.contains("toolbar_lock"):
+ lock_val = settings.value('toolbar_lock')
+ if lock_val == 'true':
+ lock_state = True
+ self.lock_action.setChecked(True)
+ else:
+
+ lock_state = False
+ self.lock_action.setChecked(False)
+ else:
+ lock_state = False
+ qsettings.setValue('toolbar_lock', lock_state)
+
+ # This will write the setting to the platform specific storage.
+ del qsettings
+
+ self.lock_toolbar(lock=lock_state)
+
+ self.lock_action.triggered[bool].connect(self.lock_toolbar)
+
+ self.pref_open_button.clicked.connect(self.on_preferences_open_folder)
+ self.clear_btn.clicked.connect(self.on_gui_clear)
+
+ self.wplace_label.clicked.connect(self.app.on_workspace_toggle)
+ self.shell_status_label.clicked.connect(self.toggle_shell_ui)
+
+ # to be used in the future
+ # self.plot_tab_area.tab_attached.connect(lambda x: print(x))
+ # self.plot_tab_area.tab_detached.connect(lambda x: print(x))
+
+ # restore the toolbar view
+ self.restore_toolbar_view()
+
+ # restore the GUI geometry
+ self.restore_main_win_geom()
+
+ # %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ # %%%%%%%%%%%%%%%%% GUI Building FINISHED %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ # %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+ # Variable to store the status of the fullscreen event
+ self.toggle_fscreen = False
+ self.x_pos = None
+ self.y_pos = None
+ self.width = None
+ self.height = None
+
+ self.geom_update[int, int, int, int, int].connect(self.save_geometry)
+ self.final_save.connect(self.app.final_save)
+
+ def save_geometry(self, x, y, width, height, notebook_width):
+ """
+ Will save the application geometry and positions in the defaults dicitionary to be restored at the next
+ launch of the application.
+
+ :param x: X position of the main window
+ :param y: Y position of the main window
+ :param width: width of the main window
+ :param height: height of the main window
+ :param notebook_width: the notebook width is adjustable so it get saved here, too.
+
+ :return: None
+ """
+ self.app.defaults["global_def_win_x"] = x
+ self.app.defaults["global_def_win_y"] = y
+ self.app.defaults["global_def_win_w"] = width
+ self.app.defaults["global_def_win_h"] = height
+ self.app.defaults["global_def_notebook_width"] = notebook_width
+ self.app.preferencesUiManager.save_defaults()
+
+ def restore_main_win_geom(self):
+ try:
+ self.setGeometry(self.app.defaults["global_def_win_x"],
+ self.app.defaults["global_def_win_y"],
+ self.app.defaults["global_def_win_w"],
+ self.app.defaults["global_def_win_h"])
+ self.splitter.setSizes([self.app.defaults["global_def_notebook_width"], 0])
+ except KeyError as e:
+ log.debug("AppGUI.MainGUI.restore_main_win_geom() --> %s" % str(e))
+
+ def restore_toolbar_view(self):
+ """
+ Some toolbars may be hidden by user and here we restore the state of the toolbars visibility that
+ was saved in the defaults dictionary.
+
+ :return: None
+ """
+ tb = self.app.defaults["global_toolbar_view"]
+
+ if tb & 1:
+ self.toolbarfile.setVisible(True)
+ else:
+ self.toolbarfile.setVisible(False)
+
+ if tb & 2:
+ self.toolbaredit.setVisible(True)
+ else:
+ self.toolbaredit.setVisible(False)
+
+ if tb & 4:
+ self.toolbarview.setVisible(True)
+ else:
+ self.toolbarview.setVisible(False)
+
+ if tb & 8:
+ self.toolbartools.setVisible(True)
+ else:
+ self.toolbartools.setVisible(False)
+
+ if tb & 16:
+ self.exc_edit_toolbar.setVisible(True)
+ else:
+ self.exc_edit_toolbar.setVisible(False)
+
+ if tb & 32:
+ self.geo_edit_toolbar.setVisible(True)
+ else:
+ self.geo_edit_toolbar.setVisible(False)
+
+ if tb & 64:
+ self.grb_edit_toolbar.setVisible(True)
+ else:
+ self.grb_edit_toolbar.setVisible(False)
+
+ # if tb & 128:
+ # self.ui.status_toolbar.setVisible(True)
+ # else:
+ # self.ui.status_toolbar.setVisible(False)
+
+ # Grid Toolbar is always active now
+ self.status_toolbar.setVisible(True)
+
+ if tb & 256:
+ self.toolbarshell.setVisible(True)
+ else:
+ self.toolbarshell.setVisible(False)
+
+ def eventFilter(self, obj, event):
+ """
+ Filter the ToolTips display based on a Preferences setting
+
+ :param obj:
+ :param event: QT event to filter
+ :return:
+ """
+ if self.app.defaults["global_toggle_tooltips"] is False:
+ if event.type() == QtCore.QEvent.ToolTip:
+ return True
+ else:
+ return False
+
+ return False
+
+ def on_preferences_open_folder(self):
+ """
+ Will open an Explorer window set to the folder path where the FlatCAM preferences files are usually saved.
+
+ :return: None
+ """
+
+ if sys.platform == 'win32':
+ subprocess.Popen('explorer %s' % self.app.data_path)
+ elif sys.platform == 'darwin':
+ os.system('open "%s"' % self.app.data_path)
+ else:
+ subprocess.Popen(['xdg-open', self.app.data_path])
+ self.app.inform.emit('[success] %s' % _("FlatCAM Preferences Folder opened."))
+
+ def on_gui_clear(self):
+ theme_settings = QtCore.QSettings("Open Source", "FlatCAM")
+ theme_settings.setValue('theme', 'white')
+
+ del theme_settings
+
+ resource_loc = self.app.resource_location
+
+ msgbox = QtWidgets.QMessageBox()
+ msgbox.setText(_("Are you sure you want to delete the GUI Settings? \n"))
+ msgbox.setWindowTitle(_("Clear GUI Settings"))
+ msgbox.setWindowIcon(QtGui.QIcon(resource_loc + '/trash32.png'))
+ msgbox.setIcon(QtWidgets.QMessageBox.Question)
+
+ bt_yes = msgbox.addButton(_('Yes'), QtWidgets.QMessageBox.YesRole)
+ bt_no = msgbox.addButton(_('No'), QtWidgets.QMessageBox.NoRole)
+
+ msgbox.setDefaultButton(bt_no)
+ msgbox.exec_()
+ response = msgbox.clickedButton()
+
+ if response == bt_yes:
+ qsettings = QSettings("Open Source", "FlatCAM")
+ for key in qsettings.allKeys():
+ qsettings.remove(key)
+ # This will write the setting to the platform specific storage.
+ del qsettings
+
+ def populate_toolbars(self):
+ """
+ Will populate the App Toolbars with their actions
+
+ :return: None
+ """
+
+ # ########################################################################
+ # ## File Toolbar # ##
+ # ########################################################################
+ self.file_open_gerber_btn = self.toolbarfile.addAction(
+ QtGui.QIcon(self.app.resource_location + '/flatcam_icon32.png'), _("Open Gerber"))
+ self.file_open_excellon_btn = self.toolbarfile.addAction(
+ QtGui.QIcon(self.app.resource_location + '/drill32.png'), _("Open Excellon"))
+ self.toolbarfile.addSeparator()
+ self.file_open_btn = self.toolbarfile.addAction(
+ QtGui.QIcon(self.app.resource_location + '/folder32.png'), _("Open project"))
+ self.file_save_btn = self.toolbarfile.addAction(
+ QtGui.QIcon(self.app.resource_location + '/project_save32.png'), _("Save project"))
+
+ # ########################################################################
+ # ## Edit Toolbar # ##
+ # ########################################################################
+ self.editgeo_btn = self.toolbaredit.addAction(
+ QtGui.QIcon(self.app.resource_location + '/edit32.png'), _("Editor"))
+ self.update_obj_btn = self.toolbaredit.addAction(
+ QtGui.QIcon(self.app.resource_location + '/close_edit_file32.png'),
+ _("Save Object and close the Editor")
+ )
+
+ self.toolbaredit.addSeparator()
+ self.copy_btn = self.toolbaredit.addAction(
+ QtGui.QIcon(self.app.resource_location + '/copy_file32.png'), _("Copy"))
+ self.delete_btn = self.toolbaredit.addAction(
+ QtGui.QIcon(self.app.resource_location + '/trash32.png'), _("&Delete"))
+ self.toolbaredit.addSeparator()
+ self.distance_btn = self.toolbaredit.addAction(
+ QtGui.QIcon(self.app.resource_location + '/distance32.png'), _("Distance Tool"))
+ self.distance_min_btn = self.toolbaredit.addAction(
+ QtGui.QIcon(self.app.resource_location + '/distance_min32.png'), _("Distance Min Tool"))
+ self.origin_btn = self.toolbaredit.addAction(
+ QtGui.QIcon(self.app.resource_location + '/origin32.png'), _('Set Origin'))
+ self.move2origin_btn = self.toolbaredit.addAction(
+ QtGui.QIcon(self.app.resource_location + '/origin2_32.png'), _('Move to Origin'))
+ self.jmp_btn = self.toolbaredit.addAction(
+ QtGui.QIcon(self.app.resource_location + '/jump_to16.png'), _('Jump to Location'))
+ self.locate_btn = self.toolbaredit.addAction(
+ QtGui.QIcon(self.app.resource_location + '/locate32.png'), _('Locate in Object'))
+
+ # ########################################################################
+ # ########################## View Toolbar# ###############################
+ # ########################################################################
+ self.replot_btn = self.toolbarview.addAction(
+ QtGui.QIcon(self.app.resource_location + '/replot32.png'), _("&Replot"))
+ self.clear_plot_btn = self.toolbarview.addAction(
+ QtGui.QIcon(self.app.resource_location + '/clear_plot32.png'), _("&Clear plot"))
+ self.zoom_in_btn = self.toolbarview.addAction(
+ QtGui.QIcon(self.app.resource_location + '/zoom_in32.png'), _("Zoom In"))
+ self.zoom_out_btn = self.toolbarview.addAction(
+ QtGui.QIcon(self.app.resource_location + '/zoom_out32.png'), _("Zoom Out"))
+ self.zoom_fit_btn = self.toolbarview.addAction(
+ QtGui.QIcon(self.app.resource_location + '/zoom_fit32.png'), _("Zoom Fit"))
+
+ # ########################################################################
+ # ########################## Shell Toolbar# ##############################
+ # ########################################################################
+ self.shell_btn = self.toolbarshell.addAction(
+ QtGui.QIcon(self.app.resource_location + '/shell32.png'), _("&Command Line"))
+ self.new_script_btn = self.toolbarshell.addAction(
+ QtGui.QIcon(self.app.resource_location + '/script_new24.png'), _('New Script ...'))
+ self.open_script_btn = self.toolbarshell.addAction(
+ QtGui.QIcon(self.app.resource_location + '/open_script32.png'), _('Open Script ...'))
+ self.run_script_btn = self.toolbarshell.addAction(
+ QtGui.QIcon(self.app.resource_location + '/script16.png'), _('Run Script ...'))
+
+ # #########################################################################
+ # ######################### Tools Toolbar #################################
+ # #########################################################################
+ self.dblsided_btn = self.toolbartools.addAction(
+ QtGui.QIcon(self.app.resource_location + '/doubleside32.png'), _("2Sided Tool"))
+ self.align_btn = self.toolbartools.addAction(
+ QtGui.QIcon(self.app.resource_location + '/align32.png'), _("Align Objects Tool"))
+ self.extract_btn = self.toolbartools.addAction(
+ QtGui.QIcon(self.app.resource_location + '/extract_drill32.png'), _("Extract Drills Tool"))
+
+ self.cutout_btn = self.toolbartools.addAction(
+ QtGui.QIcon(self.app.resource_location + '/cut16_bis.png'), _("&Cutout Tool"))
+ self.ncc_btn = self.toolbartools.addAction(
+ QtGui.QIcon(self.app.resource_location + '/ncc16.png'), _("NCC Tool"))
+ self.paint_btn = self.toolbartools.addAction(
+ QtGui.QIcon(self.app.resource_location + '/paint20_1.png'), _("Paint Tool"))
+ self.isolation_btn = self.toolbartools.addAction(
+ QtGui.QIcon(self.app.resource_location + '/iso_16.png'), _("Isolation Tool"))
+ self.toolbartools.addSeparator()
+
+ self.panelize_btn = self.toolbartools.addAction(
+ QtGui.QIcon(self.app.resource_location + '/panelize32.png'), _("Panel Tool"))
+ self.film_btn = self.toolbartools.addAction(
+ QtGui.QIcon(self.app.resource_location + '/film16.png'), _("Film Tool"))
+ self.solder_btn = self.toolbartools.addAction(
+ QtGui.QIcon(self.app.resource_location + '/solderpastebis32.png'), _("SolderPaste Tool"))
+ self.sub_btn = self.toolbartools.addAction(
+ QtGui.QIcon(self.app.resource_location + '/sub32.png'), _("Subtract Tool"))
+ self.rules_btn = self.toolbartools.addAction(
+ QtGui.QIcon(self.app.resource_location + '/rules32.png'), _("Rules Tool"))
+ self.optimal_btn = self.toolbartools.addAction(
+ QtGui.QIcon(self.app.resource_location + '/open_excellon32.png'), _("Optimal Tool"))
+
+ self.toolbartools.addSeparator()
+
+ self.calculators_btn = self.toolbartools.addAction(
+ QtGui.QIcon(self.app.resource_location + '/calculator24.png'), _("Calculators Tool"))
+ self.transform_btn = self.toolbartools.addAction(
+ QtGui.QIcon(self.app.resource_location + '/transform.png'), _("Transform Tool"))
+ self.qrcode_btn = self.toolbartools.addAction(
+ QtGui.QIcon(self.app.resource_location + '/qrcode32.png'), _("QRCode Tool"))
+ self.copperfill_btn = self.toolbartools.addAction(
+ QtGui.QIcon(self.app.resource_location + '/copperfill32.png'), _("Copper Thieving Tool"))
+
+ self.fiducials_btn = self.toolbartools.addAction(
+ QtGui.QIcon(self.app.resource_location + '/fiducials_32.png'), _("Fiducials Tool"))
+ self.cal_btn = self.toolbartools.addAction(
+ QtGui.QIcon(self.app.resource_location + '/calibrate_32.png'), _("Calibration Tool"))
+ self.punch_btn = self.toolbartools.addAction(
+ QtGui.QIcon(self.app.resource_location + '/punch32.png'), _("Punch Gerber Tool"))
+ self.invert_btn = self.toolbartools.addAction(
+ QtGui.QIcon(self.app.resource_location + '/invert32.png'), _("Invert Gerber Tool"))
+ self.corners_tool_btn = self.toolbartools.addAction(
+ QtGui.QIcon(self.app.resource_location + '/corners_32.png'), _("Corner Markers Tool"))
+ self.etch_btn = self.toolbartools.addAction(
+ QtGui.QIcon(self.app.resource_location + '/etch_32.png'), _("Etch Compensation Tool"))
+
+ # ########################################################################
+ # ## Excellon Editor Toolbar # ##
+ # ########################################################################
+ self.select_drill_btn = self.exc_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/pointer32.png'), _("Select"))
+ self.add_drill_btn = self.exc_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/plus16.png'), _('Add Drill Hole'))
+ self.add_drill_array_btn = self.exc_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/addarray16.png'), _('Add Drill Hole Array'))
+ self.resize_drill_btn = self.exc_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/resize16.png'), _('Resize Drill'))
+ self.add_slot_btn = self.exc_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/slot26.png'), _('Add Slot'))
+ self.add_slot_array_btn = self.exc_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/slot_array26.png'), _('Add Slot Array'))
+ self.exc_edit_toolbar.addSeparator()
+
+ self.copy_drill_btn = self.exc_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/copy32.png'), _('Copy Drill'))
+ self.delete_drill_btn = self.exc_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/trash32.png'), _("Delete Drill"))
+
+ self.exc_edit_toolbar.addSeparator()
+ self.move_drill_btn = self.exc_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/move32.png'), _("Move Drill"))
+
+ # ########################################################################
+ # ## Geometry Editor Toolbar # ##
+ # ########################################################################
+ self.geo_select_btn = self.geo_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/pointer32.png'), _("Select 'Esc'"))
+ self.geo_add_circle_btn = self.geo_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/circle32.png'), _('Add Circle'))
+ self.geo_add_arc_btn = self.geo_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/arc32.png'), _('Add Arc'))
+ self.geo_add_rectangle_btn = self.geo_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/rectangle32.png'), _('Add Rectangle'))
+
+ self.geo_edit_toolbar.addSeparator()
+ self.geo_add_path_btn = self.geo_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/path32.png'), _('Add Path'))
+ self.geo_add_polygon_btn = self.geo_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/polygon32.png'), _('Add Polygon'))
+ self.geo_edit_toolbar.addSeparator()
+ self.geo_add_text_btn = self.geo_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/text32.png'), _('Add Text'))
+ self.geo_add_buffer_btn = self.geo_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/buffer16-2.png'), _('Add Buffer'))
+ self.geo_add_paint_btn = self.geo_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/paint20_1.png'), _('Paint Shape'))
+ self.geo_eraser_btn = self.geo_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/eraser26.png'), _('Eraser'))
+
+ self.geo_edit_toolbar.addSeparator()
+ self.geo_union_btn = self.geo_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/union32.png'), _('Polygon Union'))
+ self.geo_explode_btn = self.geo_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/explode32.png'), _('Polygon Explode'))
+
+ self.geo_intersection_btn = self.geo_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/intersection32.png'), _('Polygon Intersection'))
+ self.geo_subtract_btn = self.geo_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/subtract32.png'), _('Polygon Subtraction'))
+
+ self.geo_edit_toolbar.addSeparator()
+ self.geo_cutpath_btn = self.geo_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/cutpath32.png'), _('Cut Path'))
+ self.geo_copy_btn = self.geo_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/copy32.png'), _("Copy Objects"))
+ self.geo_delete_btn = self.geo_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/trash32.png'), _("Delete Shape"))
+ self.geo_transform_btn = self.geo_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/transform.png'), _("Transformations"))
+
+ self.geo_edit_toolbar.addSeparator()
+ self.geo_move_btn = self.geo_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/move32.png'), _("Move Objects"))
+
+ # ########################################################################
+ # ## Gerber Editor Toolbar # ##
+ # ########################################################################
+ self.grb_select_btn = self.grb_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/pointer32.png'), _("Select"))
+ self.grb_add_pad_btn = self.grb_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/aperture32.png'), _("Add Pad"))
+ self.add_pad_ar_btn = self.grb_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/padarray32.png'), _('Add Pad Array'))
+ self.grb_add_track_btn = self.grb_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/track32.png'), _("Add Track"))
+ self.grb_add_region_btn = self.grb_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/polygon32.png'), _("Add Region"))
+ self.grb_convert_poly_btn = self.grb_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/poligonize32.png'), _("Poligonize"))
+
+ self.grb_add_semidisc_btn = self.grb_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/semidisc32.png'), _("SemiDisc"))
+ self.grb_add_disc_btn = self.grb_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/disc32.png'), _("Disc"))
+ self.grb_edit_toolbar.addSeparator()
+
+ self.aperture_buffer_btn = self.grb_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/buffer16-2.png'), _('Buffer'))
+ self.aperture_scale_btn = self.grb_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/scale32.png'), _('Scale'))
+ self.aperture_markarea_btn = self.grb_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/markarea32.png'), _('Mark Area'))
+ self.aperture_eraser_btn = self.grb_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/eraser26.png'), _('Eraser'))
+
+ self.grb_edit_toolbar.addSeparator()
+ self.aperture_copy_btn = self.grb_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/copy32.png'), _("Copy"))
+ self.aperture_delete_btn = self.grb_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/trash32.png'), _("Delete"))
+ self.grb_transform_btn = self.grb_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/transform.png'), _("Transformations"))
+ self.grb_edit_toolbar.addSeparator()
+ self.aperture_move_btn = self.grb_edit_toolbar.addAction(
+ QtGui.QIcon(self.app.resource_location + '/move32.png'), _("Move"))
+
+ self.corner_snap_btn.setVisible(False)
+ self.snap_magnet.setVisible(False)
+
+ qsettings = QSettings("Open Source", "FlatCAM")
+ if qsettings.contains("layout"):
+ layout = qsettings.value('layout', type=str)
+
+ # on 'minimal' layout only some toolbars are active
+ if layout != 'minimal':
+ self.exc_edit_toolbar.setVisible(True)
+ self.exc_edit_toolbar.setDisabled(True)
+ self.geo_edit_toolbar.setVisible(True)
+ self.geo_edit_toolbar.setDisabled(True)
+ self.grb_edit_toolbar.setVisible(True)
+ self.grb_edit_toolbar.setDisabled(True)
+
+ def keyPressEvent(self, event):
+ """
+ Key event handler for the entire app.
+ Some of the key events are also treated locally in the FlatCAM editors
+
+ :param event: QT event
+ :return:
+ """
+ modifiers = QtWidgets.QApplication.keyboardModifiers()
+ active = self.app.collection.get_active()
+ selected = self.app.collection.get_selected()
+ names_list = self.app.collection.get_names()
+
+ matplotlib_key_flag = False
+
+ # events out of the self.app.collection view (it's about Project Tab) are of type int
+ if type(event) is int:
+ key = event
+ # events from the GUI are of type QKeyEvent
+ elif type(event) == QtGui.QKeyEvent:
+ key = event.key()
+ elif isinstance(event, mpl_key_event): # MatPlotLib key events are trickier to interpret than the rest
+ matplotlib_key_flag = True
+
+ key = event.key
+ key = QtGui.QKeySequence(key)
+
+ # check for modifiers
+ key_string = key.toString().lower()
+ if '+' in key_string:
+ mod, __, key_text = key_string.rpartition('+')
+ if mod.lower() == 'ctrl':
+ modifiers = QtCore.Qt.ControlModifier
+ elif mod.lower() == 'alt':
+ modifiers = QtCore.Qt.AltModifier
+ elif mod.lower() == 'shift':
+ modifiers = QtCore.Qt.ShiftModifier
+ else:
+ modifiers = QtCore.Qt.NoModifier
+ key = QtGui.QKeySequence(key_text)
+
+ # events from Vispy are of type KeyEvent
+ else:
+ key = event.key
+
+ if self.app.call_source == 'app':
+ # CTRL + ALT
+ if modifiers == QtCore.Qt.ControlModifier | QtCore.Qt.AltModifier:
+ if key == QtCore.Qt.Key_X:
+ self.app.abort_all_tasks()
+ return
+ # CTRL + SHIFT
+ if modifiers == QtCore.Qt.ControlModifier | QtCore.Qt.ShiftModifier:
+ if key == QtCore.Qt.Key_S:
+ self.app.on_file_saveprojectas()
+ return
+ # CTRL
+ elif modifiers == QtCore.Qt.ControlModifier:
+ # Select All
+ if key == QtCore.Qt.Key_A:
+ self.app.on_selectall()
+
+ # Copy an FlatCAM object
+ if key == QtCore.Qt.Key_C:
+ widget_name = self.plot_tab_area.currentWidget().objectName()
+ if widget_name == 'database_tab':
+ # Tools DB saved, update flag
+ self.app.tools_db_changed_flag = True
+ self.app.tools_db_tab.on_tool_copy()
+ return
+
+ self.app.on_copy_command()
+
+ # Copy an FlatCAM object
+ if key == QtCore.Qt.Key_D:
+ self.app.on_tools_database()
+
+ # Open Excellon file
+ if key == QtCore.Qt.Key_E:
+ self.app.on_fileopenexcellon(signal=None)
+
+ # Open Gerber file
+ if key == QtCore.Qt.Key_G:
+ widget_name = self.plot_tab_area.currentWidget().objectName()
+ if 'editor' in widget_name.lower():
+ self.app.goto_text_line()
+ else:
+ self.app.on_fileopengerber(signal=None)
+
+ # Distance Tool
+ if key == QtCore.Qt.Key_M:
+ self.app.distance_tool.run()
+
+ # Create New Project
+ if key == QtCore.Qt.Key_N:
+ self.app.on_file_new_click()
+
+ # Open Project
+ if key == QtCore.Qt.Key_O:
+ self.app.on_file_openproject(signal=None)
+
+ # Open Project
+ if key == QtCore.Qt.Key_P:
+ self.app.on_file_save_objects_pdf(use_thread=True)
+
+ # PDF Import
+ if key == QtCore.Qt.Key_Q:
+ self.app.pdf_tool.run()
+
+ # Save Project
+ if key == QtCore.Qt.Key_S:
+ widget_name = self.plot_tab_area.currentWidget().objectName()
+ if widget_name == 'preferences_tab':
+ self.app.preferencesUiManager.on_save_button(save_to_file=False)
+ return
+
+ if widget_name == 'database_tab':
+ # Tools DB saved, update flag
+ self.app.tools_db_changed_flag = False
+ self.app.tools_db_tab.on_save_tools_db()
+ return
+
+ self.app.on_file_saveproject()
+
+ # Toggle Plot Area
+ if key == QtCore.Qt.Key_F10 or key == 'F10':
+ self.on_toggle_plotarea()
+
+ return
+ # SHIFT
+ elif modifiers == QtCore.Qt.ShiftModifier:
+
+ # Copy Object Name
+ if key == QtCore.Qt.Key_C:
+ self.app.on_copy_name()
+
+ # Toggle Code Editor
+ if key == QtCore.Qt.Key_E:
+ self.app.on_toggle_code_editor()
+
+ # Toggle axis
+ if key == QtCore.Qt.Key_G:
+ self.app.plotcanvas.on_toggle_axis()
+
+ # Toggle HUD (Heads-Up Display)
+ if key == QtCore.Qt.Key_H:
+ self.app.plotcanvas.on_toggle_hud()
+ # Locate in Object
+ if key == QtCore.Qt.Key_J:
+ self.app.on_locate(obj=self.app.collection.get_active())
+
+ # Run Distance Minimum Tool
+ if key == QtCore.Qt.Key_M:
+ self.app.distance_min_tool.run()
+ return
+
+ # Open Preferences Window
+ if key == QtCore.Qt.Key_P:
+ self.app.on_preferences()
+ return
+
+ # Rotate Object by 90 degree CCW
+ if key == QtCore.Qt.Key_R:
+ self.app.on_rotate(silent=True, preset=-float(self.app.defaults['tools_transform_rotate']))
+ return
+
+ # Run a Script
+ if key == QtCore.Qt.Key_S:
+ self.app.on_filerunscript()
+ return
+
+ # Toggle Workspace
+ if key == QtCore.Qt.Key_W:
+ self.app.on_workspace_toggle()
+ return
+
+ # Skew on X axis
+ if key == QtCore.Qt.Key_X:
+ self.app.on_skewx()
+ return
+
+ # Skew on Y axis
+ if key == QtCore.Qt.Key_Y:
+ self.app.on_skewy()
+ return
+ # ALT
+ elif modifiers == QtCore.Qt.AltModifier:
+ # Eanble all plots
+ if key == Qt.Key_1:
+ self.app.enable_all_plots()
+
+ # Disable all plots
+ if key == Qt.Key_2:
+ self.app.disable_all_plots()
+
+ # Disable all other plots
+ if key == Qt.Key_3:
+ self.app.disable_other_plots()
+
+ # Align in Object Tool
+ if key == QtCore.Qt.Key_A:
+ self.app.align_objects_tool.run(toggle=True)
+
+ # Calculator Tool
+ if key == QtCore.Qt.Key_C:
+ self.app.calculator_tool.run(toggle=True)
+
+ # 2-Sided PCB Tool
+ if key == QtCore.Qt.Key_D:
+ self.app.dblsidedtool.run(toggle=True)
+ return
+
+ # Extract Drills Tool
+ if key == QtCore.Qt.Key_E:
+ # self.app.cal_exc_tool.run(toggle=True)
+ self.app.edrills_tool.run(toggle=True)
+ return
+
+ # Fiducials Tool
+ if key == QtCore.Qt.Key_F:
+ self.app.fiducial_tool.run(toggle=True)
+ return
+
+ # Toggle Grid lines
+ if key == QtCore.Qt.Key_G:
+ self.app.plotcanvas.on_toggle_grid_lines()
+ return
+
+ # Punch Gerber Tool
+ if key == QtCore.Qt.Key_H:
+ self.app.punch_tool.run(toggle=True)
+
+ # Isolation Tool
+ if key == QtCore.Qt.Key_I:
+ self.app.isolation_tool.run(toggle=True)
+
+ # Copper Thieving Tool
+ if key == QtCore.Qt.Key_J:
+ self.app.copper_thieving_tool.run(toggle=True)
+ return
+
+ # Solder Paste Dispensing Tool
+ if key == QtCore.Qt.Key_K:
+ self.app.paste_tool.run(toggle=True)
+ return
+
+ # Film Tool
+ if key == QtCore.Qt.Key_L:
+ self.app.film_tool.run(toggle=True)
+ return
+
+ # Corner Markers Tool
+ if key == QtCore.Qt.Key_M:
+ self.app.corners_tool.run(toggle=True)
+ return
+
+ # Non-Copper Clear Tool
+ if key == QtCore.Qt.Key_N:
+ self.app.ncclear_tool.run(toggle=True)
+ return
+
+ # Optimal Tool
+ if key == QtCore.Qt.Key_O:
+ self.app.optimal_tool.run(toggle=True)
+ return
+
+ # Paint Tool
+ if key == QtCore.Qt.Key_P:
+ self.app.paint_tool.run(toggle=True)
+ return
+
+ # QRCode Tool
+ if key == QtCore.Qt.Key_Q:
+ self.app.qrcode_tool.run()
+ return
+
+ # Rules Tool
+ if key == QtCore.Qt.Key_R:
+ self.app.rules_tool.run(toggle=True)
+ return
+
+ # View Source Object Content
+ if key == QtCore.Qt.Key_S:
+ self.app.on_view_source()
+ return
+
+ # Transformation Tool
+ if key == QtCore.Qt.Key_T:
+ self.app.transform_tool.run(toggle=True)
+ return
+
+ # Substract Tool
+ if key == QtCore.Qt.Key_W:
+ self.app.sub_tool.run(toggle=True)
+ return
+
+ # Cutout Tool
+ if key == QtCore.Qt.Key_X:
+ self.app.cutout_tool.run(toggle=True)
+ return
+
+ # Panelize Tool
+ if key == QtCore.Qt.Key_Z:
+ self.app.panelize_tool.run(toggle=True)
+ return
+
+ # Toggle Fullscreen
+ if key == QtCore.Qt.Key_F10 or key == 'F10':
+ self.on_fullscreen()
+ return
+ # NO MODIFIER
+ elif modifiers == QtCore.Qt.NoModifier:
+ # Open Manual
+ if key == QtCore.Qt.Key_F1 or key == 'F1':
+ webbrowser.open(self.app.manual_url)
+
+ # Show shortcut list
+ if key == QtCore.Qt.Key_F3 or key == 'F3':
+ self.app.on_shortcut_list()
+
+ # Open Video Help
+ if key == QtCore.Qt.Key_F4 or key == 'F4':
+ webbrowser.open(self.app.video_url)
+
+ # Open Video Help
+ if key == QtCore.Qt.Key_F5 or key == 'F5':
+ self.app.plot_all()
+
+ # Switch to Project Tab
+ if key == QtCore.Qt.Key_1:
+ self.app.on_select_tab('project')
+
+ # Switch to Selected Tab
+ if key == QtCore.Qt.Key_2:
+ self.app.on_select_tab('selected')
+
+ # Switch to Tool Tab
+ if key == QtCore.Qt.Key_3:
+ self.app.on_select_tab('tool')
+
+ # Delete from PyQt
+ # It's meant to make a difference between delete objects and delete tools in
+ # Geometry Selected tool table
+ if key == QtCore.Qt.Key_Delete and matplotlib_key_flag is False:
+ widget_name = self.plot_tab_area.currentWidget().objectName()
+ if widget_name == 'database_tab':
+ # Tools DB saved, update flag
+ self.app.tools_db_changed_flag = True
+ self.app.tools_db_tab.on_tool_delete()
+ return
+
+ self.app.on_delete_keypress()
+
+ # Delete from canvas
+ if key == 'Delete':
+ # Delete via the application to
+ # ensure cleanup of the AppGUI
+ if active:
+ active.app.on_delete()
+
+ # Escape = Deselect All
+ if key == QtCore.Qt.Key_Escape or key == 'Escape':
+ self.app.on_deselect_all()
+
+ # if in full screen, exit to normal view
+ if self.toggle_fscreen is True:
+ self.on_fullscreen(disable=True)
+
+ # try to disconnect the slot from Set Origin
+ try:
+ self.app.plotcanvas.graph_event_disconnect('mouse_press', self.app.on_set_zero_click)
+ except TypeError:
+ pass
+ self.app.inform.emit("")
+
+ # Space = Toggle Active/Inactive
+ if key == QtCore.Qt.Key_Space:
+ for select in selected:
+ select.ui.plot_cb.toggle()
+ self.app.collection.update_view()
+ self.app.delete_selection_shape()
+
+ # Select the object in the Tree above the current one
+ if key == QtCore.Qt.Key_Up:
+ # make sure it works only for the Project Tab who is an instance of KeySensitiveListView
+ focused_wdg = QtWidgets.QApplication.focusWidget()
+ if isinstance(focused_wdg, KeySensitiveListView):
+ self.app.collection.set_all_inactive()
+ if active is None:
+ return
+ active_name = active.options['name']
+ active_index = names_list.index(active_name)
+ if active_index == 0:
+ self.app.collection.set_active(names_list[-1])
+ else:
+ self.app.collection.set_active(names_list[active_index - 1])
+
+ # Select the object in the Tree below the current one
+ if key == QtCore.Qt.Key_Down:
+ # make sure it works only for the Project Tab who is an instance of KeySensitiveListView
+ focused_wdg = QtWidgets.QApplication.focusWidget()
+ if isinstance(focused_wdg, KeySensitiveListView):
+ self.app.collection.set_all_inactive()
+ if active is None:
+ return
+ active_name = active.options['name']
+ active_index = names_list.index(active_name)
+ if active_index == len(names_list) - 1:
+ self.app.collection.set_active(names_list[0])
+ else:
+ self.app.collection.set_active(names_list[active_index + 1])
+
+ # New Geometry
+ if key == QtCore.Qt.Key_B:
+ self.app.app_obj.new_gerber_object()
+
+ # New Geometry
+ if key == QtCore.Qt.Key_D:
+ self.app.new_document_object()
+
+ # Copy Object Name
+ if key == QtCore.Qt.Key_E:
+ self.app.object2editor()
+
+ # Grid toggle
+ if key == QtCore.Qt.Key_G:
+ self.app.ui.grid_snap_btn.trigger()
+
+ # Jump to coords
+ if key == QtCore.Qt.Key_J:
+ self.app.on_jump_to()
+
+ # New Excellon
+ if key == QtCore.Qt.Key_L:
+ self.app.app_obj.new_excellon_object()
+
+ # Move tool toggle
+ if key == QtCore.Qt.Key_M:
+ self.app.move_tool.toggle()
+
+ # New Geometry
+ if key == QtCore.Qt.Key_N:
+ self.app.app_obj.new_geometry_object()
+
+ # Set Origin
+ if key == QtCore.Qt.Key_O:
+ self.app.on_set_origin()
+ return
+
+ # Properties Tool
+ if key == QtCore.Qt.Key_P:
+ self.app.properties_tool.run()
+ return
+
+ # Change Units
+ if key == QtCore.Qt.Key_Q:
+ # if self.app.defaults["units"] == 'MM':
+ # self.app.ui.general_defaults_form.general_app_group.units_radio.set_value("IN")
+ # else:
+ # self.app.ui.general_defaults_form.general_app_group.units_radio.set_value("MM")
+ # self.app.on_toggle_units(no_pref=True)
+ self.app.on_toggle_units_click()
+
+ # Rotate Object by 90 degree CW
+ if key == QtCore.Qt.Key_R:
+ self.app.on_rotate(silent=True, preset=self.app.defaults['tools_transform_rotate'])
+
+ # Shell toggle
+ if key == QtCore.Qt.Key_S:
+ self.toggle_shell_ui()
+
+ # Add a Tool from shortcut
+ if key == QtCore.Qt.Key_T:
+ widget_name = self.plot_tab_area.currentWidget().objectName()
+ if widget_name == 'database_tab':
+ # Tools DB saved, update flag
+ self.app.tools_db_changed_flag = True
+ self.app.tools_db_tab.on_tool_add()
+ return
+
+ self.app.on_tool_add_keypress()
+
+ # Zoom Fit
+ if key == QtCore.Qt.Key_V:
+ self.app.on_zoom_fit()
+
+ # Mirror on X the selected object(s)
+ if key == QtCore.Qt.Key_X:
+ self.app.on_flipx()
+
+ # Mirror on Y the selected object(s)
+ if key == QtCore.Qt.Key_Y:
+ self.app.on_flipy()
+
+ # Zoom In
+ if key == QtCore.Qt.Key_Equal:
+ self.app.plotcanvas.zoom(1 / self.app.defaults['global_zoom_ratio'], self.app.mouse)
+
+ # Zoom Out
+ if key == QtCore.Qt.Key_Minus:
+ self.app.plotcanvas.zoom(self.app.defaults['global_zoom_ratio'], self.app.mouse)
+
+ # toggle display of Notebook area
+ if key == QtCore.Qt.Key_QuoteLeft:
+ self.on_toggle_notebook()
+
+ return
+ elif self.app.call_source == 'geo_editor':
+ # CTRL
+ if modifiers == QtCore.Qt.ControlModifier:
+ # save (update) the current geometry and return to the App
+ if key == QtCore.Qt.Key_S or key == 'S':
+ self.app.editor2object()
+ return
+
+ # toggle the measurement tool
+ if key == QtCore.Qt.Key_M or key == 'M':
+ self.app.distance_tool.run()
+ return
+
+ # Cut Action Tool
+ if key == QtCore.Qt.Key_X or key == 'X':
+ if self.app.geo_editor.get_selected() is not None:
+ self.app.geo_editor.cutpath()
+ else:
+ msg = _('Please first select a geometry item to be cutted\n'
+ 'then select the geometry item that will be cutted\n'
+ 'out of the first item. In the end press ~X~ key or\n'
+ 'the toolbar button.')
+
+ messagebox = QtWidgets.QMessageBox()
+ messagebox.setText(msg)
+ messagebox.setWindowTitle(_("Warning"))
+ messagebox.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/warning.png'))
+ messagebox.setIcon(QtWidgets.QMessageBox.Question)
+
+ messagebox.setStandardButtons(QtWidgets.QMessageBox.Ok)
+ messagebox.setDefaultButton(QtWidgets.QMessageBox.Ok)
+ messagebox.exec_()
+ return
+ # SHIFT
+ elif modifiers == QtCore.Qt.ShiftModifier:
+ # Run Distance Minimum Tool
+ if key == QtCore.Qt.Key_M or key == 'M':
+ self.app.distance_min_tool.run()
+ return
+
+ # Skew on X axis
+ if key == QtCore.Qt.Key_X or key == 'X':
+ self.app.geo_editor.transform_tool.on_skewx_key()
+ return
+
+ # Skew on Y axis
+ if key == QtCore.Qt.Key_Y or key == 'Y':
+ self.app.geo_editor.transform_tool.on_skewy_key()
+ return
+ # ALT
+ elif modifiers == QtCore.Qt.AltModifier:
+
+ # Transformation Tool
+ if key == QtCore.Qt.Key_R or key == 'R':
+ self.app.geo_editor.select_tool('transform')
+ return
+
+ # Offset on X axis
+ if key == QtCore.Qt.Key_X or key == 'X':
+ self.app.geo_editor.transform_tool.on_offx_key()
+ return
+
+ # Offset on Y axis
+ if key == QtCore.Qt.Key_Y or key == 'Y':
+ self.app.geo_editor.transform_tool.on_offy_key()
+ return
+ # NO MODIFIER
+ elif modifiers == QtCore.Qt.NoModifier:
+ # toggle display of Notebook area
+ if key == QtCore.Qt.Key_QuoteLeft or key == '`':
+ self.on_toggle_notebook()
+
+ # Finish the current action. Use with tools that do not
+ # complete automatically, like a polygon or path.
+ if key == QtCore.Qt.Key_Enter or key == 'Enter':
+ if isinstance(self.app.geo_editor.active_tool, FCShapeTool):
+ if self.app.geo_editor.active_tool.name == 'rotate':
+ self.app.geo_editor.active_tool.make()
+
+ if self.app.geo_editor.active_tool.complete:
+ self.app.geo_editor.on_shape_complete()
+ self.app.inform.emit('[success] %s' % _("Done."))
+ # automatically make the selection tool active after completing current action
+ self.app.geo_editor.select_tool('select')
+ return
+ else:
+ self.app.geo_editor.active_tool.click(
+ self.app.geo_editor.snap(self.app.geo_editor.x, self.app.geo_editor.y))
+
+ self.app.geo_editor.active_tool.make()
+
+ if self.app.geo_editor.active_tool.complete:
+ self.app.geo_editor.on_shape_complete()
+ self.app.inform.emit('[success] %s' % _("Done."))
+ # automatically make the selection tool active after completing current action
+ self.app.geo_editor.select_tool('select')
+
+ # Abort the current action
+ if key == QtCore.Qt.Key_Escape or key == 'Escape':
+ # self.on_tool_select("select")
+ self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled."))
+
+ self.app.geo_editor.delete_utility_geometry()
+
+ self.app.geo_editor.active_tool.clean_up()
+
+ self.app.geo_editor.select_tool('select')
+
+ # hide the notebook
+ self.app.ui.splitter.setSizes([0, 1])
+ return
+
+ # Delete selected object
+ if key == QtCore.Qt.Key_Delete or key == 'Delete':
+ self.app.geo_editor.delete_selected()
+ self.app.geo_editor.replot()
+
+ # Rotate
+ if key == QtCore.Qt.Key_Space or key == 'Space':
+ self.app.geo_editor.transform_tool.on_rotate_key()
+
+ # Zoom Out
+ if key == QtCore.Qt.Key_Minus or key == '-':
+ self.app.plotcanvas.zoom(1 / self.app.defaults['global_zoom_ratio'],
+ [self.app.geo_editor.snap_x, self.app.geo_editor.snap_y])
+
+ # Zoom In
+ if key == QtCore.Qt.Key_Equal or key == '=':
+ self.app.plotcanvas.zoom(self.app.defaults['global_zoom_ratio'],
+ [self.app.geo_editor.snap_x, self.app.geo_editor.snap_y])
+
+ # Switch to Project Tab
+ if key == QtCore.Qt.Key_1 or key == '1':
+ self.app.on_select_tab('project')
+
+ # Switch to Selected Tab
+ if key == QtCore.Qt.Key_2 or key == '2':
+ self.app.on_select_tab('selected')
+
+ # Switch to Tool Tab
+ if key == QtCore.Qt.Key_3 or key == '3':
+ self.app.on_select_tab('tool')
+
+ # Grid Snap
+ if key == QtCore.Qt.Key_G or key == 'G':
+ self.app.ui.grid_snap_btn.trigger()
+
+ # make sure that the cursor shape is enabled/disabled, too
+ if self.app.geo_editor.options['grid_snap'] is True:
+ self.app.app_cursor.enabled = True
+ else:
+ self.app.app_cursor.enabled = False
+
+ # Corner Snap
+ if key == QtCore.Qt.Key_K or key == 'K':
+ self.app.geo_editor.on_corner_snap()
+
+ if key == QtCore.Qt.Key_V or key == 'V':
+ self.app.on_zoom_fit()
+
+ # we do this so we can reuse the following keys while inside a Tool
+ # the above keys are general enough so were left outside
+ if self.app.geo_editor.active_tool is not None and self.geo_select_btn.isChecked() is False:
+ response = self.app.geo_editor.active_tool.on_key(key=key)
+ if response is not None:
+ self.app.inform.emit(response)
+ else:
+ # Arc Tool
+ if key == QtCore.Qt.Key_A or key == 'A':
+ self.app.geo_editor.select_tool('arc')
+
+ # Buffer
+ if key == QtCore.Qt.Key_B or key == 'B':
+ self.app.geo_editor.select_tool('buffer')
+
+ # Copy
+ if key == QtCore.Qt.Key_C or key == 'C':
+ self.app.geo_editor.on_copy_click()
+
+ # Substract Tool
+ if key == QtCore.Qt.Key_E or key == 'E':
+ if self.app.geo_editor.get_selected() is not None:
+ self.app.geo_editor.intersection()
+ else:
+ msg = _("Please select geometry items \n"
+ "on which to perform Intersection Tool.")
+
+ messagebox = QtWidgets.QMessageBox()
+ messagebox.setText(msg)
+ messagebox.setWindowTitle(_("Warning"))
+ messagebox.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/warning.png'))
+ messagebox.setIcon(QtWidgets.QMessageBox.Warning)
+
+ messagebox.setStandardButtons(QtWidgets.QMessageBox.Ok)
+ messagebox.setDefaultButton(QtWidgets.QMessageBox.Ok)
+ messagebox.exec_()
+
+ # Paint
+ if key == QtCore.Qt.Key_I or key == 'I':
+ self.app.geo_editor.select_tool('paint')
+
+ # Jump to coords
+ if key == QtCore.Qt.Key_J or key == 'J':
+ self.app.on_jump_to()
+
+ # Move
+ if key == QtCore.Qt.Key_M or key == 'M':
+ self.app.geo_editor.on_move_click()
+
+ # Polygon Tool
+ if key == QtCore.Qt.Key_N or key == 'N':
+ self.app.geo_editor.select_tool('polygon')
+
+ # Circle Tool
+ if key == QtCore.Qt.Key_O or key == 'O':
+ self.app.geo_editor.select_tool('circle')
+
+ # Path Tool
+ if key == QtCore.Qt.Key_P or key == 'P':
+ self.app.geo_editor.select_tool('path')
+
+ # Rectangle Tool
+ if key == QtCore.Qt.Key_R or key == 'R':
+ self.app.geo_editor.select_tool('rectangle')
+
+ # Substract Tool
+ if key == QtCore.Qt.Key_S or key == 'S':
+ if self.app.geo_editor.get_selected() is not None:
+ self.app.geo_editor.subtract()
+ else:
+ msg = _(
+ "Please select geometry items \n"
+ "on which to perform Substraction Tool.")
+
+ messagebox = QtWidgets.QMessageBox()
+ messagebox.setText(msg)
+ messagebox.setWindowTitle(_("Warning"))
+ messagebox.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/warning.png'))
+ messagebox.setIcon(QtWidgets.QMessageBox.Warning)
+
+ messagebox.setStandardButtons(QtWidgets.QMessageBox.Ok)
+ messagebox.setDefaultButton(QtWidgets.QMessageBox.Ok)
+ messagebox.exec_()
+
+ # Add Text Tool
+ if key == QtCore.Qt.Key_T or key == 'T':
+ self.app.geo_editor.select_tool('text')
+
+ # Substract Tool
+ if key == QtCore.Qt.Key_U or key == 'U':
+ if self.app.geo_editor.get_selected() is not None:
+ self.app.geo_editor.union()
+ else:
+ msg = _("Please select geometry items \n"
+ "on which to perform union.")
+
+ messagebox = QtWidgets.QMessageBox()
+ messagebox.setText(msg)
+ messagebox.setWindowTitle(_("Warning"))
+ messagebox.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/warning.png'))
+ messagebox.setIcon(QtWidgets.QMessageBox.Warning)
+
+ messagebox.setStandardButtons(QtWidgets.QMessageBox.Ok)
+ messagebox.setDefaultButton(QtWidgets.QMessageBox.Ok)
+ messagebox.exec_()
+
+ # Flip on X axis
+ if key == QtCore.Qt.Key_X or key == 'X':
+ self.app.geo_editor.transform_tool.on_flipx()
+ return
+
+ # Flip on Y axis
+ if key == QtCore.Qt.Key_Y or key == 'Y':
+ self.app.geo_editor.transform_tool.on_flipy()
+ return
+
+ # Show Shortcut list
+ if key == 'F3':
+ self.app.on_shortcut_list()
+ elif self.app.call_source == 'grb_editor':
+ # CTRL
+ if modifiers == QtCore.Qt.ControlModifier:
+ # Eraser Tool
+ if key == QtCore.Qt.Key_E or key == 'E':
+ self.app.grb_editor.on_eraser()
+ return
+
+ # save (update) the current geometry and return to the App
+ if key == QtCore.Qt.Key_S or key == 'S':
+ self.app.editor2object()
+ return
+
+ # toggle the measurement tool
+ if key == QtCore.Qt.Key_M or key == 'M':
+ self.app.distance_tool.run()
+ return
+ # SHIFT
+ elif modifiers == QtCore.Qt.ShiftModifier:
+ # Run Distance Minimum Tool
+ if key == QtCore.Qt.Key_M or key == 'M':
+ self.app.distance_min_tool.run()
+ return
+ # ALT
+ elif modifiers == QtCore.Qt.AltModifier:
+ # Mark Area Tool
+ if key == QtCore.Qt.Key_A or key == 'A':
+ self.app.grb_editor.on_markarea()
+ return
+
+ # Poligonize Tool
+ if key == QtCore.Qt.Key_N or key == 'N':
+ self.app.grb_editor.on_poligonize()
+ return
+ # Transformation Tool
+ if key == QtCore.Qt.Key_R or key == 'R':
+ self.app.grb_editor.on_transform()
+ return
+ # NO MODIFIER
+ elif modifiers == QtCore.Qt.NoModifier:
+ # Abort the current action
+ if key == QtCore.Qt.Key_Escape or key == 'Escape':
+ # self.on_tool_select("select")
+ self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled."))
+
+ self.app.grb_editor.delete_utility_geometry()
+
+ # self.app.grb_editor.plot_all()
+ self.app.grb_editor.active_tool.clean_up()
+ self.app.grb_editor.select_tool('select')
+ return
+
+ # Delete selected object if delete key event comes out of canvas
+ if key == 'Delete':
+ self.app.grb_editor.launched_from_shortcuts = True
+ if self.app.grb_editor.selected:
+ self.app.grb_editor.delete_selected()
+ self.app.grb_editor.plot_all()
+ else:
+ self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled. Nothing selected to delete."))
+ return
+
+ # Delete aperture in apertures table if delete key event comes from the Selected Tab
+ if key == QtCore.Qt.Key_Delete:
+ self.app.grb_editor.launched_from_shortcuts = True
+ self.app.grb_editor.on_aperture_delete()
+ return
+
+ if key == QtCore.Qt.Key_Minus or key == '-':
+ self.app.grb_editor.launched_from_shortcuts = True
+ self.app.plotcanvas.zoom(1 / self.app.defaults['global_zoom_ratio'],
+ [self.app.grb_editor.snap_x, self.app.grb_editor.snap_y])
+ return
+
+ if key == QtCore.Qt.Key_Equal or key == '=':
+ self.app.grb_editor.launched_from_shortcuts = True
+ self.app.plotcanvas.zoom(self.app.defaults['global_zoom_ratio'],
+ [self.app.grb_editor.snap_x, self.app.grb_editor.snap_y])
+ return
+
+ # toggle display of Notebook area
+ if key == QtCore.Qt.Key_QuoteLeft or key == '`':
+ self.app.grb_editor.launched_from_shortcuts = True
+ self.on_toggle_notebook()
+ return
+
+ # Rotate
+ if key == QtCore.Qt.Key_Space or key == 'Space':
+ self.app.grb_editor.transform_tool.on_rotate_key()
+
+ # Switch to Project Tab
+ if key == QtCore.Qt.Key_1 or key == '1':
+ self.app.grb_editor.launched_from_shortcuts = True
+ self.app.on_select_tab('project')
+ return
+
+ # Switch to Selected Tab
+ if key == QtCore.Qt.Key_2 or key == '2':
+ self.app.grb_editor.launched_from_shortcuts = True
+ self.app.on_select_tab('selected')
+ return
+
+ # Switch to Tool Tab
+ if key == QtCore.Qt.Key_3 or key == '3':
+ self.app.grb_editor.launched_from_shortcuts = True
+ self.app.on_select_tab('tool')
+ return
+
+ # we do this so we can reuse the following keys while inside a Tool
+ # the above keys are general enough so were left outside
+ if self.app.grb_editor.active_tool is not None and self.grb_select_btn.isChecked() is False:
+ response = self.app.grb_editor.active_tool.on_key(key=key)
+ if response is not None:
+ self.app.inform.emit(response)
+ else:
+ # Add Array of pads
+ if key == QtCore.Qt.Key_A or key == 'A':
+ self.app.grb_editor.launched_from_shortcuts = True
+ self.app.inform.emit("Click on target point.")
+ self.app.ui.add_pad_ar_btn.setChecked(True)
+
+ self.app.grb_editor.x = self.app.mouse[0]
+ self.app.grb_editor.y = self.app.mouse[1]
+
+ self.app.grb_editor.select_tool('array')
+ return
+
+ # Scale Tool
+ if key == QtCore.Qt.Key_B or key == 'B':
+ self.app.grb_editor.launched_from_shortcuts = True
+ self.app.grb_editor.select_tool('buffer')
+ return
+
+ # Copy
+ if key == QtCore.Qt.Key_C or key == 'C':
+ self.app.grb_editor.launched_from_shortcuts = True
+ if self.app.grb_editor.selected:
+ self.app.inform.emit(_("Click on target point."))
+ self.app.ui.aperture_copy_btn.setChecked(True)
+ self.app.grb_editor.on_tool_select('copy')
+ self.app.grb_editor.active_tool.set_origin(
+ (self.app.grb_editor.snap_x, self.app.grb_editor.snap_y))
+ else:
+ self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled. Nothing selected to copy."))
+ return
+
+ # Add Disc Tool
+ if key == QtCore.Qt.Key_D or key == 'D':
+ self.app.grb_editor.launched_from_shortcuts = True
+ self.app.grb_editor.select_tool('disc')
+ return
+
+ # Add SemiDisc Tool
+ if key == QtCore.Qt.Key_E or key == 'E':
+ self.app.grb_editor.launched_from_shortcuts = True
+ self.app.grb_editor.select_tool('semidisc')
+ return
+
+ # Grid Snap
+ if key == QtCore.Qt.Key_G or key == 'G':
+ self.app.grb_editor.launched_from_shortcuts = True
+ # make sure that the cursor shape is enabled/disabled, too
+ if self.app.grb_editor.options['grid_snap'] is True:
+ self.app.app_cursor.enabled = False
+ else:
+ self.app.app_cursor.enabled = True
+ self.app.ui.grid_snap_btn.trigger()
+ return
+
+ # Jump to coords
+ if key == QtCore.Qt.Key_J or key == 'J':
+ self.app.on_jump_to()
+
+ # Corner Snap
+ if key == QtCore.Qt.Key_K or key == 'K':
+ self.app.grb_editor.launched_from_shortcuts = True
+ self.app.ui.corner_snap_btn.trigger()
+ return
+
+ # Move
+ if key == QtCore.Qt.Key_M or key == 'M':
+ self.app.grb_editor.launched_from_shortcuts = True
+ if self.app.grb_editor.selected:
+ self.app.inform.emit(_("Click on target point."))
+ self.app.ui.aperture_move_btn.setChecked(True)
+ self.app.grb_editor.on_tool_select('move')
+ self.app.grb_editor.active_tool.set_origin(
+ (self.app.grb_editor.snap_x, self.app.grb_editor.snap_y))
+ else:
+ self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled. Nothing selected to move."))
+ return
+
+ # Add Region Tool
+ if key == QtCore.Qt.Key_N or key == 'N':
+ self.app.grb_editor.launched_from_shortcuts = True
+ self.app.grb_editor.select_tool('region')
+ return
+
+ # Add Pad Tool
+ if key == QtCore.Qt.Key_P or key == 'P':
+ self.app.grb_editor.launched_from_shortcuts = True
+ self.app.inform.emit(_("Click on target point."))
+ self.app.ui.add_pad_ar_btn.setChecked(True)
+
+ self.app.grb_editor.x = self.app.mouse[0]
+ self.app.grb_editor.y = self.app.mouse[1]
+
+ self.app.grb_editor.select_tool('pad')
+ return
+
+ # Scale Tool
+ if key == QtCore.Qt.Key_S or key == 'S':
+ self.app.grb_editor.launched_from_shortcuts = True
+ self.app.grb_editor.select_tool('scale')
+ return
+
+ # Add Track
+ if key == QtCore.Qt.Key_T or key == 'T':
+ self.app.grb_editor.launched_from_shortcuts = True
+ # ## Current application units in Upper Case
+ self.app.grb_editor.select_tool('track')
+ return
+
+ # Zoom fit
+ if key == QtCore.Qt.Key_V or key == 'V':
+ self.app.grb_editor.launched_from_shortcuts = True
+ self.app.grb_editor.on_zoom_fit()
+ return
+
+ # Show Shortcut list
+ if key == QtCore.Qt.Key_F3 or key == 'F3':
+ self.app.on_shortcut_list()
+ return
+ elif self.app.call_source == 'exc_editor':
+ # CTRL
+ if modifiers == QtCore.Qt.ControlModifier:
+ # save (update) the current geometry and return to the App
+ if key == QtCore.Qt.Key_S or key == 'S':
+ self.app.editor2object()
+ return
+
+ # toggle the measurement tool
+ if key == QtCore.Qt.Key_M or key == 'M':
+ self.app.distance_tool.run()
+ return
+ # SHIFT
+ elif modifiers == QtCore.Qt.ShiftModifier:
+ # Run Distance Minimum Tool
+ if key == QtCore.Qt.Key_M or key == 'M':
+ self.app.distance_min_tool.run()
+ return
+ # ALT
+ elif modifiers == QtCore.Qt.AltModifier:
+ pass
+ # NO MODIFIER
+ elif modifiers == QtCore.Qt.NoModifier:
+ # Abort the current action
+ if key == QtCore.Qt.Key_Escape or key == 'Escape':
+ self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled."))
+
+ self.app.exc_editor.delete_utility_geometry()
+
+ self.app.exc_editor.active_tool.clean_up()
+
+ self.app.exc_editor.select_tool('drill_select')
+ return
+
+ # Delete selected object if delete key event comes out of canvas
+ if key == 'Delete':
+ self.app.exc_editor.launched_from_shortcuts = True
+ if self.app.exc_editor.selected:
+ self.app.exc_editor.delete_selected()
+ self.app.exc_editor.replot()
+ else:
+ self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled. Nothing selected to delete."))
+ return
+
+ # Delete tools in tools table if delete key event comes from the Selected Tab
+ if key == QtCore.Qt.Key_Delete:
+ self.app.exc_editor.launched_from_shortcuts = True
+ self.app.exc_editor.on_tool_delete()
+ return
+
+ if key == QtCore.Qt.Key_Minus or key == '-':
+ self.app.exc_editor.launched_from_shortcuts = True
+ self.app.plotcanvas.zoom(1 / self.app.defaults['global_zoom_ratio'],
+ [self.app.exc_editor.snap_x, self.app.exc_editor.snap_y])
+ return
+
+ if key == QtCore.Qt.Key_Equal or key == '=':
+ self.app.exc_editor.launched_from_shortcuts = True
+ self.app.plotcanvas.zoom(self.app.defaults['global_zoom_ratio'],
+ [self.app.exc_editor.snap_x, self.app.exc_editor.snap_y])
+ return
+
+ # toggle display of Notebook area
+ if key == QtCore.Qt.Key_QuoteLeft or key == '`':
+ self.app.exc_editor.launched_from_shortcuts = True
+ self.on_toggle_notebook()
+ return
+
+ # Switch to Project Tab
+ if key == QtCore.Qt.Key_1 or key == '1':
+ self.app.exc_editor.launched_from_shortcuts = True
+ self.app.on_select_tab('project')
+ return
+
+ # Switch to Selected Tab
+ if key == QtCore.Qt.Key_2 or key == '2':
+ self.app.exc_editor.launched_from_shortcuts = True
+ self.app.on_select_tab('selected')
+ return
+
+ # Switch to Tool Tab
+ if key == QtCore.Qt.Key_3 or key == '3':
+ self.app.exc_editor.launched_from_shortcuts = True
+ self.app.on_select_tab('tool')
+ return
+
+ # Grid Snap
+ if key == QtCore.Qt.Key_G or key == 'G':
+ self.app.exc_editor.launched_from_shortcuts = True
+ # make sure that the cursor shape is enabled/disabled, too
+ if self.app.exc_editor.options['grid_snap'] is True:
+ self.app.app_cursor.enabled = False
+ else:
+ self.app.app_cursor.enabled = True
+ self.app.ui.grid_snap_btn.trigger()
+ return
+
+ # Corner Snap
+ if key == QtCore.Qt.Key_K or key == 'K':
+ self.app.exc_editor.launched_from_shortcuts = True
+ self.app.ui.corner_snap_btn.trigger()
+ return
+
+ # Zoom Fit
+ if key == QtCore.Qt.Key_V or key == 'V':
+ self.app.exc_editor.launched_from_shortcuts = True
+ self.app.on_zoom_fit()
+ return
+
+ # Add Slot Hole Tool
+ if key == QtCore.Qt.Key_W or key == 'W':
+ self.app.exc_editor.launched_from_shortcuts = True
+ self.app.inform.emit(_("Click on target point."))
+ self.app.ui.add_slot_btn.setChecked(True)
+
+ self.app.exc_editor.x = self.app.mouse[0]
+ self.app.exc_editor.y = self.app.mouse[1]
+
+ self.app.exc_editor.select_tool('slot_add')
+ return
+
+ # Propagate to tool
+
+ # Show Shortcut list
+ if key == QtCore.Qt.Key_F3 or key == 'F3':
+ self.app.on_shortcut_list()
+ return
+
+ # we do this so we can reuse the following keys while inside a Tool
+ # the above keys are general enough so were left outside
+ if self.app.exc_editor.active_tool is not None and self.select_drill_btn.isChecked() is False:
+ response = self.app.exc_editor.active_tool.on_key(key=key)
+ if response is not None:
+ self.app.inform.emit(response)
+ else:
+ # Add Array of Drill Hole Tool
+ if key == QtCore.Qt.Key_A or key == 'A':
+ self.app.exc_editor.launched_from_shortcuts = True
+ self.app.inform.emit("Click on target point.")
+ self.app.ui.add_drill_array_btn.setChecked(True)
+
+ self.app.exc_editor.x = self.app.mouse[0]
+ self.app.exc_editor.y = self.app.mouse[1]
+
+ self.app.exc_editor.select_tool('drill_array')
+ return
+
+ # Copy
+ if key == QtCore.Qt.Key_C or key == 'C':
+ self.app.exc_editor.launched_from_shortcuts = True
+ if self.app.exc_editor.selected:
+ self.app.inform.emit(_("Click on target point."))
+ self.app.ui.copy_drill_btn.setChecked(True)
+ self.app.exc_editor.on_tool_select('drill_copy')
+ self.app.exc_editor.active_tool.set_origin(
+ (self.app.exc_editor.snap_x, self.app.exc_editor.snap_y))
+ else:
+ self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled. Nothing selected to copy."))
+ return
+
+ # Add Drill Hole Tool
+ if key == QtCore.Qt.Key_D or key == 'D':
+ self.app.exc_editor.launched_from_shortcuts = True
+ self.app.inform.emit(_("Click on target point."))
+ self.app.ui.add_drill_btn.setChecked(True)
+
+ self.app.exc_editor.x = self.app.mouse[0]
+ self.app.exc_editor.y = self.app.mouse[1]
+
+ self.app.exc_editor.select_tool('drill_add')
+ return
+
+ # Jump to coords
+ if key == QtCore.Qt.Key_J or key == 'J':
+ self.app.on_jump_to()
+
+ # Move
+ if key == QtCore.Qt.Key_M or key == 'M':
+ self.app.exc_editor.launched_from_shortcuts = True
+ if self.app.exc_editor.selected:
+ self.app.inform.emit(_("Click on target point."))
+ self.app.ui.move_drill_btn.setChecked(True)
+ self.app.exc_editor.on_tool_select('drill_move')
+ self.app.exc_editor.active_tool.set_origin(
+ (self.app.exc_editor.snap_x, self.app.exc_editor.snap_y))
+ else:
+ self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled. Nothing selected to move."))
+ return
+
+ # Add Array of Slots Hole Tool
+ if key == QtCore.Qt.Key_Q or key == 'Q':
+ self.app.exc_editor.launched_from_shortcuts = True
+ self.app.inform.emit("Click on target point.")
+ self.app.ui.add_slot_array_btn.setChecked(True)
+
+ self.app.exc_editor.x = self.app.mouse[0]
+ self.app.exc_editor.y = self.app.mouse[1]
+
+ self.app.exc_editor.select_tool('slot_array')
+ return
+
+ # Resize Tool
+ if key == QtCore.Qt.Key_R or key == 'R':
+ self.app.exc_editor.launched_from_shortcuts = True
+ self.app.exc_editor.select_tool('drill_resize')
+ return
+
+ # Add Tool
+ if key == QtCore.Qt.Key_T or key == 'T':
+ self.app.exc_editor.launched_from_shortcuts = True
+ # ## Current application units in Upper Case
+ self.units = self.general_defaults_form.general_app_group.units_radio.get_value().upper()
+ tool_add_popup = FCInputDialog(title=_("New Tool ..."),
+ text='%s:' % _('Enter a Tool Diameter'),
+ min=0.0000, max=99.9999, decimals=4)
+ tool_add_popup.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/letter_t_32.png'))
+
+ val, ok = tool_add_popup.get_value()
+ if ok:
+ self.app.exc_editor.on_tool_add(tooldia=val)
+ formated_val = '%.*f' % (self.decimals, float(val))
+ self.app.inform.emit(
+ '[success] %s: %s %s' % (_("Added new tool with dia"), formated_val, str(self.units))
+ )
+ else:
+ self.app.inform.emit('[WARNING_NOTCL] %s' % _("Adding Tool cancelled ..."))
+ return
+ elif self.app.call_source == 'measurement':
+ if modifiers == QtCore.Qt.ControlModifier:
+ pass
+ elif modifiers == QtCore.Qt.AltModifier:
+ pass
+ elif modifiers == QtCore.Qt.ShiftModifier:
+ pass
+ # NO MODIFIER
+ elif modifiers == QtCore.Qt.NoModifier:
+ if key == QtCore.Qt.Key_Escape or key == 'Escape':
+ # abort the measurement action
+ self.app.distance_tool.deactivate_measure_tool()
+ self.app.inform.emit(_("Distance Tool exit..."))
+ return
+
+ if key == QtCore.Qt.Key_G or key == 'G':
+ self.app.ui.grid_snap_btn.trigger()
+ return
+
+ # Jump to coords
+ if key == QtCore.Qt.Key_J or key == 'J':
+ self.app.on_jump_to()
+ elif self.app.call_source == 'qrcode_tool':
+ # CTRL + ALT
+ if modifiers == QtCore.Qt.ControlModifier | QtCore.Qt.AltModifier:
+ if key == QtCore.Qt.Key_X:
+ self.app.abort_all_tasks()
+ return
+
+ elif modifiers == QtCore.Qt.ControlModifier:
+ pass
+ elif modifiers == QtCore.Qt.ShiftModifier:
+ pass
+ elif modifiers == QtCore.Qt.AltModifier:
+ pass
+ # NO MODIFIER
+ elif modifiers == QtCore.Qt.NoModifier:
+ # Escape = Deselect All
+ if key == QtCore.Qt.Key_Escape or key == 'Escape':
+ self.app.qrcode_tool.on_exit()
+
+ # Grid toggle
+ if key == QtCore.Qt.Key_G:
+ self.app.ui.grid_snap_btn.trigger()
+
+ # Jump to coords
+ if key == QtCore.Qt.Key_J:
+ self.app.on_jump_to()
+ elif self.app.call_source == 'copper_thieving_tool':
+ # CTRL + ALT
+ if modifiers == QtCore.Qt.ControlModifier | QtCore.Qt.AltModifier:
+ if key == QtCore.Qt.Key_X:
+ self.app.abort_all_tasks()
+ return
+ elif modifiers == QtCore.Qt.ControlModifier:
+ pass
+ elif modifiers == QtCore.Qt.ShiftModifier:
+ pass
+ elif modifiers == QtCore.Qt.AltModifier:
+ pass
+ # NO MODIFIER
+ elif modifiers == QtCore.Qt.NoModifier:
+ # Escape = Deselect All
+ if key == QtCore.Qt.Key_Escape or key == 'Escape':
+ self.app.copperfill_tool.on_exit()
+
+ # Grid toggle
+ if key == QtCore.Qt.Key_G:
+ self.app.ui.grid_snap_btn.trigger()
+
+ # Jump to coords
+ if key == QtCore.Qt.Key_J:
+ self.app.on_jump_to()
+ elif self.app.call_source == 'geometry':
+ if modifiers == QtCore.Qt.ControlModifier:
+ pass
+ elif modifiers == QtCore.Qt.AltModifier:
+ pass
+ elif modifiers == QtCore.Qt.ShiftModifier:
+ pass
+ # NO MODIFIER
+ elif modifiers == QtCore.Qt.NoModifier:
+ if key == QtCore.Qt.Key_Escape or key == 'Escape':
+ sel_obj = self.app.collection.get_active()
+ assert sel_obj.kind == 'geometry' or sel_obj.kind == 'excellon', \
+ "Expected a Geometry or Excellon Object, got %s" % type(sel_obj)
+
+ sel_obj.area_disconnect()
+ return
+
+ if key == QtCore.Qt.Key_G or key == 'G':
+ self.app.ui.grid_snap_btn.trigger()
+ return
+
+ # Jump to coords
+ if key == QtCore.Qt.Key_J or key == 'J':
+ self.app.on_jump_to()
+
+ def createPopupMenu(self):
+ menu = super().createPopupMenu()
+
+ menu.addSeparator()
+ menu.addAction(self.lock_action)
+ return menu
+
+ def lock_toolbar(self, lock=False):
+ """
+ Used to (un)lock the toolbars of the app.
+
+ :param lock: boolean, will lock all toolbars in place when set True
+ :return: None
+ """
+
+ if lock:
+ for widget in self.children():
+ if isinstance(widget, QtWidgets.QToolBar):
+ widget.setMovable(False)
+ else:
+ for widget in self.children():
+ if isinstance(widget, QtWidgets.QToolBar):
+ widget.setMovable(True)
+
+ def dragEnterEvent(self, event):
+ if event.mimeData().hasUrls:
+ event.accept()
+ else:
+ event.ignore()
+
+ def dragMoveEvent(self, event):
+ if event.mimeData().hasUrls:
+ event.accept()
+ else:
+ event.ignore()
+
+ def dropEvent(self, event):
+ if event.mimeData().hasUrls:
+ event.setDropAction(QtCore.Qt.CopyAction)
+ event.accept()
+ for url in event.mimeData().urls():
+ self.filename = str(url.toLocalFile())
+
+ if self.filename == "":
+ self.app.inform.emit("Cancelled.")
+ else:
+ extension = self.filename.lower().rpartition('.')[-1]
+
+ if extension in self.app.grb_list:
+ self.app.worker_task.emit({'fcn': self.app.open_gerber,
+ 'params': [self.filename]})
+ else:
+ event.ignore()
+
+ if extension in self.app.exc_list:
+ self.app.worker_task.emit({'fcn': self.app.open_excellon,
+ 'params': [self.filename]})
+ else:
+ event.ignore()
+
+ if extension in self.app.gcode_list:
+ self.app.worker_task.emit({'fcn': self.app.open_gcode,
+ 'params': [self.filename]})
+ else:
+ event.ignore()
+
+ if extension in self.app.svg_list:
+ object_type = 'geometry'
+ self.app.worker_task.emit({'fcn': self.app.import_svg,
+ 'params': [self.filename, object_type, None]})
+
+ if extension in self.app.dxf_list:
+ object_type = 'geometry'
+ self.app.worker_task.emit({'fcn': self.app.import_dxf,
+ 'params': [self.filename, object_type, None]})
+
+ if extension in self.app.pdf_list:
+ self.app.pdf_tool.periodic_check(1000)
+ self.app.worker_task.emit({'fcn': self.app.pdf_tool.open_pdf,
+ 'params': [self.filename]})
+
+ if extension in self.app.prj_list:
+ # self.app.open_project() is not Thread Safe
+ self.app.open_project(self.filename)
+
+ if extension in self.app.conf_list:
+ self.app.open_config_file(self.filename)
+ else:
+ event.ignore()
+ else:
+ event.ignore()
+
+ def closeEvent(self, event):
+ if self.app.save_in_progress:
+ self.app.inform.emit('[WARNING_NOTCL] %s' % _("Application is saving the project. Please wait ..."))
+ else:
+ grect = self.geometry()
+
+ # self.splitter.sizes()[0] is actually the size of the "notebook"
+ if not self.isMaximized():
+ self.geom_update.emit(grect.x(), grect.y(), grect.width(), grect.height(), self.splitter.sizes()[0])
+
+ self.final_save.emit()
+ event.ignore()
+
+ def on_fullscreen(self, disable=False):
+ """
+
+ :param disable:
+ :return:
+ """
+ flags = self.windowFlags()
+ if self.toggle_fscreen is False and disable is False:
+ # self.ui.showFullScreen()
+ self.setWindowFlags(flags | Qt.FramelessWindowHint)
+ a = self.geometry()
+ self.x_pos = a.x()
+ self.y_pos = a.y()
+ self.width = a.width()
+ self.height = a.height()
+
+ # set new geometry to full desktop rect
+ # Subtracting and adding the pixels below it's hack to bypass a bug in Qt5 and OpenGL that made that a
+ # window drawn with OpenGL in fullscreen will not show any other windows on top which means that menus and
+ # everything else will not work without this hack. This happen in Windows.
+ # https://bugreports.qt.io/browse/QTBUG-41309
+ desktop = QtWidgets.QApplication.desktop()
+ screen = desktop.screenNumber(QtGui.QCursor.pos())
+
+ rec = desktop.screenGeometry(screen)
+ x = rec.x() - 1
+ y = rec.y() - 1
+ h = rec.height() + 2
+ w = rec.width() + 2
+ self.setGeometry(x, y, w, h)
+ self.show()
+
+ # hide all Toolbars
+ for tb in self.findChildren(QtWidgets.QToolBar):
+ tb.setVisible(False)
+ self.status_toolbar.setVisible(True) # This Toolbar is always visible so restore it
+
+ self.splitter.setSizes([0, 1])
+ self.toggle_fscreen = True
+ elif self.toggle_fscreen is True or disable is True:
+ self.setWindowFlags(flags & ~Qt.FramelessWindowHint)
+ self.setGeometry(self.x_pos, self.y_pos, self.width, self.height)
+ self.showNormal()
+ self.restore_toolbar_view()
+ self.toggle_fscreen = False
+
+ def on_toggle_plotarea(self):
+ """
+
+ :return:
+ """
+ try:
+ name = self.plot_tab_area.widget(0).objectName()
+ except AttributeError:
+ self.plot_tab_area.addTab(self.plot_tab, "Plot Area")
+ # remove the close button from the Plot Area tab (first tab index = 0) as this one will always be ON
+ self.plot_tab_area.protectTab(0)
+ return
+
+ if name != 'plotarea_tab':
+ self.plot_tab_area.insertTab(0, self.plot_tab, "Plot Area")
+ # remove the close button from the Plot Area tab (first tab index = 0) as this one will always be ON
+ self.plot_tab_area.protectTab(0)
+ else:
+ self.plot_tab_area.closeTab(0)
+
+ def on_toggle_notebook(self):
+ """
+
+ :return:
+ """
+ if self.splitter.sizes()[0] == 0:
+ self.splitter.setSizes([1, 1])
+ self.menu_toggle_nb.setChecked(True)
+ else:
+ self.splitter.setSizes([0, 1])
+ self.menu_toggle_nb.setChecked(False)
+
+ def on_toggle_grid(self):
+ """
+
+ :return:
+ """
+ self.grid_snap_btn.trigger()
+
+ def toggle_shell_ui(self):
+ """
+ Toggle shell dock: if is visible close it, if it is closed then open it
+
+ :return: None
+ """
+
+ if self.shell_dock.isVisible():
+ self.shell_dock.hide()
+ self.app.plotcanvas.native.setFocus()
+ self.shell_status_label.setStyleSheet("")
+ self.app.inform[str, bool].emit(_("Shell disabled."), False)
+ else:
+ self.shell_dock.show()
+ self.shell_status_label.setStyleSheet("""
+ QLabel
+ {
+ color: black;
+ background-color: lightcoral;
+ }
+ """)
+ self.app.inform[str, bool].emit(_("Shell enabled."), False)
+
+ # I want to take the focus and give it to the Tcl Shell when the Tcl Shell is run
+ # self.shell._edit.setFocus()
+ QtCore.QTimer.singleShot(0, lambda: self.shell_dock.widget()._edit.setFocus())
+
+ # HACK - simulate a mouse click - alternative
+ # no_km = QtCore.Qt.KeyboardModifier(QtCore.Qt.NoModifier) # no KB modifier
+ # pos = QtCore.QPoint((self.shell._edit.width() - 40), (self.shell._edit.height() - 2))
+ # e = QtGui.QMouseEvent(QtCore.QEvent.MouseButtonPress, pos, QtCore.Qt.LeftButton, QtCore.Qt.LeftButton,
+ # no_km)
+ # QtWidgets.qApp.sendEvent(self.shell._edit, e)
+ # f = QtGui.QMouseEvent(QtCore.QEvent.MouseButtonRelease, pos, QtCore.Qt.LeftButton, QtCore.Qt.LeftButton,
+ # no_km)
+ # QtWidgets.qApp.sendEvent(self.shell._edit, f)
+
+
+class ShortcutsTab(QtWidgets.QWidget):
+
+ def __init__(self):
+ super(ShortcutsTab, self).__init__()
+
self.sh_tab_layout = QtWidgets.QVBoxLayout()
self.sh_tab_layout.setContentsMargins(2, 2, 2, 2)
- self.shortcuts_tab.setLayout(self.sh_tab_layout)
+ self.setLayout(self.sh_tab_layout)
self.sh_hlay = QtWidgets.QHBoxLayout()
- self.sh_title = QtWidgets.QTextEdit(
- _('Shortcut Key List'))
+
+ self.sh_title = QtWidgets.QTextEdit(_('Shortcut Key List'))
self.sh_title.setTextInteractionFlags(QtCore.Qt.NoTextInteraction)
self.sh_title.setFrameStyle(QtWidgets.QFrame.NoFrame)
self.sh_title.setMaximumHeight(30)
+
font = self.sh_title.font()
font.setPointSize(12)
self.sh_title.setFont(font)
@@ -1372,7 +3706,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
self.sh_tab_layout.addLayout(self.sh_hlay)
self.app_sh_msg = (
- '''General Shortcut list
+ '''%s
@@ -1591,6 +3925,16 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
| Alt+E |
%s |
+
+
+ | Alt+F |
+ %s |
+
+
+
+ | Alt+G |
+ %s |
+
| Alt+H |
%s |
@@ -1611,6 +3955,10 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
Alt+L |
%s |
+
+ | Alt+M |
+ %s |
+
| Alt+N |
%s |
@@ -1636,7 +3984,19 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
%s |
- | Alt+U |
+ Alt+T |
+ %s |
+
+
+ | Alt+W |
+ %s |
+
+
+ | Alt+X |
+ %s |
+
+
+ | Alt+Z |
%s |
@@ -1715,50 +4075,53 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
''' %
- (
- _("SHOW SHORTCUT LIST"), _("Switch to Project Tab"), _("Switch to Selected Tab"),
- _("Switch to Tool Tab"),
- _("New Gerber"), _("Edit Object (if selected)"), _("Grid On/Off"), _("Jump to Coordinates"),
- _("New Excellon"), _("Move Obj"), _("New Geometry"), _("Set Origin"), _("Change Units"),
- _("Open Properties Tool"), _("Rotate by 90 degree CW"), _("Shell Toggle"),
- _("Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)"), _("Zoom Fit"),
- _("Flip on X_axis"), _("Flip on Y_axis"), _("Zoom Out"), _("Zoom In"),
+ (
+ _("General Shortcut list"),
+ _("SHOW SHORTCUT LIST"), _("Switch to Project Tab"), _("Switch to Selected Tab"),
+ _("Switch to Tool Tab"),
+ _("New Gerber"), _("Edit Object (if selected)"), _("Grid On/Off"), _("Jump to Coordinates"),
+ _("New Excellon"), _("Move Obj"), _("New Geometry"), _("Set Origin"), _("Change Units"),
+ _("Open Properties Tool"), _("Rotate by 90 degree CW"), _("Shell Toggle"),
+ _("Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)"), _("Zoom Fit"),
+ _("Flip on X_axis"), _("Flip on Y_axis"), _("Zoom Out"), _("Zoom In"),
- # CTRL section
- _("Select All"), _("Copy Obj"), _("Open Tools Database"),
- _("Open Excellon File"), _("Open Gerber File"), _("Distance Tool"), _("New Project"),
- _("Open Project"), _("Print (PDF)"), _("PDF Import Tool"), _("Save Project"), _("Toggle Plot Area"),
+ # CTRL section
+ _("Select All"), _("Copy Obj"), _("Open Tools Database"),
+ _("Open Excellon File"), _("Open Gerber File"), _("Distance Tool"), _("New Project"),
+ _("Open Project"), _("Print (PDF)"), _("PDF Import Tool"), _("Save Project"), _("Toggle Plot Area"),
- # SHIFT section
- _("Copy Obj_Name"),
- _("Toggle Code Editor"), _("Toggle the axis"), _("Locate in Object"), _("Distance Minimum Tool"),
- _("Open Preferences Window"),
- _("Rotate by 90 degree CCW"), _("Run a Script"), _("Toggle the workspace"), _("Skew on X axis"),
- _("Skew on Y axis"),
+ # SHIFT section
+ _("Copy Obj_Name"),
+ _("Toggle Code Editor"), _("Toggle the axis"), _("Locate in Object"), _("Distance Minimum Tool"),
+ _("Open Preferences Window"),
+ _("Rotate by 90 degree CCW"), _("Run a Script"), _("Toggle the workspace"), _("Skew on X axis"),
+ _("Skew on Y axis"),
- # ALT section
- _("Align Objects Tool"), _("Calculators Tool"), _("2-Sided PCB Tool"), _("Transformations Tool"),
- _("Punch Gerber Tool"), _("Extract Drills Tool"), _("Fiducials Tool"),
- _("Solder Paste Dispensing Tool"),
- _("Film PCB Tool"), _("Non-Copper Clearing Tool"), _("Optimal Tool"),
- _("Paint Area Tool"), _("QRCode Tool"), _("Rules Check Tool"),
- _("View File Source"),
- _("Cutout PCB Tool"), _("Enable all Plots"), _("Disable all Plots"), _("Disable Non-selected Plots"),
- _("Toggle Full Screen"),
+ # ALT section
+ _("Align Objects Tool"), _("Calculators Tool"), _("2-Sided PCB Tool"), _("Extract Drills Tool"),
+ _("Fiducials Tool"), _("Toggle Grid Lines"),
+ _("Punch Gerber Tool"), _("Isolation Tool"), _("Copper Thieving Tool"),
+ _("Solder Paste Dispensing Tool"),
+ _("Film PCB Tool"), _("Corner Markers Tool"), _("Non-Copper Clearing Tool"), _("Optimal Tool"),
+ _("Paint Area Tool"), _("QRCode Tool"), _("Rules Check Tool"),
+ _("View File Source"), _("Transformations Tool"),
+ _("Subtract Tool"), _("Cutout PCB Tool"), _("Panelize PCB"),
+ _("Enable all Plots"), _("Disable all Plots"), _("Disable Non-selected Plots"),
+ _("Toggle Full Screen"),
- # CTRL + ALT section
- _("Abort current task (gracefully)"),
+ # CTRL + ALT section
+ _("Abort current task (gracefully)"),
- # CTRL + SHIFT section
- _("Save Project As"),
- _("Paste Special. Will convert a Windows path style to the one required in Tcl Shell"),
+ # CTRL + SHIFT section
+ _("Save Project As"),
+ _("Paste Special. Will convert a Windows path style to the one required in Tcl Shell"),
- # F keys section
- _("Open Online Manual"),
- _("Open Online Tutorials"), _("Refresh Plots"), _("Delete Object"), _("Alternate: Delete Tool"),
- _("(left to Key_1)Toggle Notebook Area (Left Side)"), _("En(Dis)able Obj Plot"),
- _("Deselects all objects")
- )
+ # F keys section
+ _("Open Online Manual"),
+ _("Open Online Tutorials"), _("Refresh Plots"), _("Delete Object"), _("Alternate: Delete Tool"),
+ _("(left to Key_1)Toggle Notebook Area (Left Side)"), _("En(Dis)able Obj Plot"),
+ _("Deselects all objects")
+ )
)
self.sh_app = QtWidgets.QTextEdit()
@@ -2152,2308 +4515,4 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
self.sh_editor.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
self.sh_hlay.addWidget(self.sh_editor)
- # ########################################################################
- # ########################## PLOT AREA CONTEXT MENU # ###################
- # ########################################################################
- self.popMenu = FCMenu()
-
- self.popmenu_disable = self.popMenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/disable32.png'), _("Toggle Visibility"))
- self.popmenu_panel_toggle = self.popMenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/notebook16.png'), _("Toggle Panel"))
-
- self.popMenu.addSeparator()
- self.cmenu_newmenu = self.popMenu.addMenu(
- QtGui.QIcon(self.app.resource_location + '/file32.png'), _("New"))
- self.popmenu_new_geo = self.cmenu_newmenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/new_geo32_bis.png'), _("Geometry"))
- self.popmenu_new_grb = self.cmenu_newmenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/flatcam_icon32.png'), "Gerber")
- self.popmenu_new_exc = self.cmenu_newmenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/new_exc32.png'), _("Excellon"))
- self.cmenu_newmenu.addSeparator()
- self.popmenu_new_prj = self.cmenu_newmenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/file16.png'), _("Project"))
- self.popMenu.addSeparator()
-
- self.cmenu_gridmenu = self.popMenu.addMenu(
- QtGui.QIcon(self.app.resource_location + '/grid32_menu.png'), _("Grids"))
-
- self.cmenu_viewmenu = self.popMenu.addMenu(
- QtGui.QIcon(self.app.resource_location + '/view64.png'), _("View"))
- self.zoomfit = self.cmenu_viewmenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/zoom_fit32.png'), _("Zoom Fit"))
- self.clearplot = self.cmenu_viewmenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/clear_plot32.png'), _("Clear Plot"))
- self.replot = self.cmenu_viewmenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/replot32.png'), _("Replot"))
- self.popMenu.addSeparator()
-
- self.g_editor_cmenu = self.popMenu.addMenu(
- QtGui.QIcon(self.app.resource_location + '/draw32.png'), _("Geo Editor"))
- self.draw_line = self.g_editor_cmenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/path32.png'), _("Path"))
- self.draw_rect = self.g_editor_cmenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/rectangle32.png'), _("Rectangle"))
- self.g_editor_cmenu.addSeparator()
- self.draw_circle = self.g_editor_cmenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/circle32.png'), _("Circle"))
- self.draw_poly = self.g_editor_cmenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/polygon32.png'), _("Polygon"))
- self.draw_arc = self.g_editor_cmenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/arc32.png'), _("Arc"))
- self.g_editor_cmenu.addSeparator()
-
- self.draw_text = self.g_editor_cmenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/text32.png'), _("Text"))
- self.draw_buffer = self.g_editor_cmenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/buffer16-2.png'), _("Buffer"))
- self.draw_paint = self.g_editor_cmenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/paint20_1.png'), _("Paint"))
- self.draw_eraser = self.g_editor_cmenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/eraser26.png'), _("Eraser"))
- self.g_editor_cmenu.addSeparator()
-
- self.draw_union = self.g_editor_cmenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/union32.png'), _("Union"))
- self.draw_intersect = self.g_editor_cmenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/intersection32.png'), _("Intersection"))
- self.draw_substract = self.g_editor_cmenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/subtract32.png'), _("Subtraction"))
- self.draw_cut = self.g_editor_cmenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/cutpath32.png'), _("Cut"))
- self.draw_transform = self.g_editor_cmenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/transform.png'), _("Transformations"))
-
- self.g_editor_cmenu.addSeparator()
- self.draw_move = self.g_editor_cmenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/move32.png'), _("Move"))
-
- self.grb_editor_cmenu = self.popMenu.addMenu(
- QtGui.QIcon(self.app.resource_location + '/draw32.png'), _("Gerber Editor"))
- self.grb_draw_pad = self.grb_editor_cmenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/aperture32.png'), _("Pad"))
- self.grb_draw_pad_array = self.grb_editor_cmenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/padarray32.png'), _("Pad Array"))
- self.grb_editor_cmenu.addSeparator()
-
- self.grb_draw_track = self.grb_editor_cmenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/track32.png'), _("Track"))
- self.grb_draw_region = self.grb_editor_cmenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/polygon32.png'), _("Region"))
- self.grb_draw_poligonize = self.grb_editor_cmenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/poligonize32.png'), _("Poligonize"))
- self.grb_draw_semidisc = self.grb_editor_cmenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/semidisc32.png'), _("SemiDisc"))
- self.grb_draw_disc = self.grb_editor_cmenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/disc32.png'), _("Disc"))
- self.grb_editor_cmenu.addSeparator()
-
- self.grb_draw_buffer = self.grb_editor_cmenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/buffer16-2.png'), _("Buffer"))
- self.grb_draw_scale = self.grb_editor_cmenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/scale32.png'), _("Scale"))
- self.grb_draw_markarea = self.grb_editor_cmenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/markarea32.png'), _("Mark Area"))
- self.grb_draw_eraser = self.grb_editor_cmenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/eraser26.png'), _("Eraser"))
- self.grb_editor_cmenu.addSeparator()
-
- self.grb_draw_transformations = self.grb_editor_cmenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/transform.png'), _("Transformations"))
-
- self.e_editor_cmenu = self.popMenu.addMenu(
- QtGui.QIcon(self.app.resource_location + '/drill32.png'), _("Exc Editor"))
- self.drill = self.e_editor_cmenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/drill32.png'), _("Add Drill"))
- self.drill_array = self.e_editor_cmenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/addarray32.png'), _("Add Drill Array"))
- self.e_editor_cmenu.addSeparator()
- self.slot = self.e_editor_cmenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/slot26.png'), _("Add Slot"))
- self.slot_array = self.e_editor_cmenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/slot_array26.png'), _("Add Slot Array"))
- self.e_editor_cmenu.addSeparator()
- self.drill_resize = self.e_editor_cmenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/resize16.png'), _("Resize Drill"))
-
- self.popMenu.addSeparator()
- self.popmenu_copy = self.popMenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/copy32.png'), _("Copy"))
- self.popmenu_delete = self.popMenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/delete32.png'), _("Delete"))
- self.popmenu_edit = self.popMenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/edit32.png'), _("Edit"))
- self.popmenu_save = self.popMenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/floppy32.png'), _("Close Editor"))
- self.popmenu_save.setVisible(False)
- self.popMenu.addSeparator()
-
- self.popmenu_move = self.popMenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/move32.png'), _("Move"))
- self.popmenu_properties = self.popMenu.addAction(
- QtGui.QIcon(self.app.resource_location + '/properties32.png'), _("Properties"))
-
- # ########################################################################
- # ########################## INFO BAR # ##################################
- # ########################################################################
- self.infobar = self.statusBar()
- self.fcinfo = FlatCAMInfoBar(app=self.app)
- self.infobar.addWidget(self.fcinfo, stretch=1)
-
- self.snap_infobar_label = FCLabel()
- self.snap_infobar_label.setPixmap(QtGui.QPixmap(self.app.resource_location + '/snap_16.png'))
- self.infobar.addWidget(self.snap_infobar_label)
-
- self.rel_position_label = QtWidgets.QLabel(
- "Dx: 0.0000 Dy: 0.0000 ")
- self.rel_position_label.setMinimumWidth(110)
- self.rel_position_label.setToolTip(_("Relative measurement.\nReference is last click position"))
- self.infobar.addWidget(self.rel_position_label)
-
- self.position_label = QtWidgets.QLabel(
- " X: 0.0000 Y: 0.0000")
- self.position_label.setMinimumWidth(110)
- self.position_label.setToolTip(_("Absolute measurement.\nReference is (X=0, Y= 0) position"))
- self.infobar.addWidget(self.position_label)
-
- self.units_label = QtWidgets.QLabel("[in]")
- self.units_label.setMargin(2)
- self.infobar.addWidget(self.units_label)
-
- # disabled
- # self.progress_bar = QtWidgets.QProgressBar()
- # self.progress_bar.setMinimum(0)
- # self.progress_bar.setMaximum(100)
- # infobar.addWidget(self.progress_bar)
-
- # ########################################################################
- # ########################## SET GUI Elements # ##########################
- # ########################################################################
- self.app_icon = QtGui.QIcon()
- self.app_icon.addFile(self.app.resource_location + '/flatcam_icon16.png', QtCore.QSize(16, 16))
- self.app_icon.addFile(self.app.resource_location + '/flatcam_icon24.png', QtCore.QSize(24, 24))
- self.app_icon.addFile(self.app.resource_location + '/flatcam_icon32.png', QtCore.QSize(32, 32))
- self.app_icon.addFile(self.app.resource_location + '/flatcam_icon48.png', QtCore.QSize(48, 48))
- self.app_icon.addFile(self.app.resource_location + '/flatcam_icon128.png', QtCore.QSize(128, 128))
- self.app_icon.addFile(self.app.resource_location + '/flatcam_icon256.png', QtCore.QSize(256, 256))
- self.setWindowIcon(self.app_icon)
-
- self.setGeometry(100, 100, 1024, 650)
- self.setWindowTitle('FlatCAM %s %s - %s' %
- (self.app.version,
- ('BETA' if self.app.beta else ''),
- platform.architecture()[0])
- )
-
- self.filename = ""
- self.units = ""
- self.setAcceptDrops(True)
-
- # ########################################################################
- # ########################## Build GUI # #################################
- # ########################################################################
- self.grid_snap_btn.setCheckable(True)
- self.corner_snap_btn.setCheckable(True)
- self.update_obj_btn.setEnabled(False)
- # start with GRID activated
- self.grid_snap_btn.trigger()
-
- self.g_editor_cmenu.menuAction().setVisible(False)
- self.grb_editor_cmenu.menuAction().setVisible(False)
- self.e_editor_cmenu.menuAction().setVisible(False)
-
- # ########################################################################
- # ######################## BUILD PREFERENCES #############################
- # ########################################################################
- self.general_defaults_form = GeneralPreferencesUI(decimals=self.decimals)
- self.gerber_defaults_form = GerberPreferencesUI(decimals=self.decimals)
- self.excellon_defaults_form = ExcellonPreferencesUI(decimals=self.decimals)
- self.geometry_defaults_form = GeometryPreferencesUI(decimals=self.decimals)
- self.cncjob_defaults_form = CNCJobPreferencesUI(decimals=self.decimals)
- self.tools_defaults_form = ToolsPreferencesUI(decimals=self.decimals)
- self.tools2_defaults_form = Tools2PreferencesUI(decimals=self.decimals)
- self.util_defaults_form = UtilPreferencesUI(decimals=self.decimals)
-
- QtWidgets.qApp.installEventFilter(self)
-
- # ########################################################################
- # ################## RESTORE THE TOOLBAR STATE from file #################
- # ########################################################################
- flat_settings = QSettings("Open Source", "FlatCAM")
- if flat_settings.contains("saved_gui_state"):
- saved_gui_state = flat_settings.value('saved_gui_state')
- self.restoreState(saved_gui_state)
- log.debug("FlatCAMGUI.__init__() --> UI state restored from QSettings.")
-
- if flat_settings.contains("layout"):
- layout = flat_settings.value('layout', type=str)
- self.exc_edit_toolbar.setDisabled(True)
- self.geo_edit_toolbar.setDisabled(True)
- self.grb_edit_toolbar.setDisabled(True)
-
- if layout == 'standard':
- self.corner_snap_btn.setVisible(False)
- self.snap_magnet.setVisible(False)
- else:
- self.snap_magnet.setVisible(True)
- self.corner_snap_btn.setVisible(True)
- self.snap_magnet.setDisabled(True)
- self.corner_snap_btn.setDisabled(True)
- log.debug("FlatCAMGUI.__init__() --> UI layout restored from QSettings. Layout = %s" % str(layout))
- else:
- self.exc_edit_toolbar.setDisabled(True)
- self.geo_edit_toolbar.setDisabled(True)
- self.grb_edit_toolbar.setDisabled(True)
-
- self.corner_snap_btn.setVisible(False)
- self.snap_magnet.setVisible(False)
-
- flat_settings.setValue('layout', "standard")
- # This will write the setting to the platform specific storage.
- del flat_settings
- log.debug("FlatCAMGUI.__init__() --> UI layout restored from defaults. QSettings set to 'standard'")
-
- # construct the Toolbar Lock menu entry to the context menu of the QMainWindow
- self.lock_action = QtWidgets.QAction()
- self.lock_action.setText(_("Lock Toolbars"))
- self.lock_action.setCheckable(True)
-
- qsettings = QSettings("Open Source", "FlatCAM")
- if qsettings.contains("toolbar_lock"):
- lock_val = settings.value('toolbar_lock')
- if lock_val == 'true':
- lock_state = True
- self.lock_action.setChecked(True)
- else:
-
- lock_state = False
- self.lock_action.setChecked(False)
- else:
- lock_state = False
- qsettings.setValue('toolbar_lock', lock_state)
-
- # This will write the setting to the platform specific storage.
- del qsettings
-
- self.lock_toolbar(lock=lock_state)
- self.on_grid_snap_triggered(state=True)
-
- self.lock_action.triggered[bool].connect(self.lock_toolbar)
-
- self.pref_open_button.clicked.connect(self.on_preferences_open_folder)
- self.clear_btn.clicked.connect(self.on_gui_clear)
- self.grid_snap_btn.triggered.connect(self.on_grid_snap_triggered)
- self.snap_infobar_label.clicked.connect(self.on_grid_icon_snap_clicked)
-
- # %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- # %%%%%%%%%%%%%%%%% GUI Building FINISHED %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- # %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
- def on_grid_snap_triggered(self, state):
- """
-
- :param state: A parameter with the state of the grid, boolean
-
- :return:
- """
- if state:
- self.snap_infobar_label.setPixmap(QtGui.QPixmap(self.app.resource_location + '/snap_filled_16.png'))
- else:
- self.snap_infobar_label.setPixmap(QtGui.QPixmap(self.app.resource_location + '/snap_16.png'))
-
- self.snap_infobar_label.clicked_state = state
-
- def on_grid_icon_snap_clicked(self):
- """
- Slot called by clicking a GUI element, in this case a FCLabel
-
- :return:
- """
- if isinstance(self.sender(), FCLabel):
- self.grid_snap_btn.trigger()
-
- def eventFilter(self, obj, event):
- """
- Filter the ToolTips display based on a Preferences setting
-
- :param obj:
- :param event: QT event to filter
- :return:
- """
- if self.app.defaults["global_toggle_tooltips"] is False:
- if event.type() == QtCore.QEvent.ToolTip:
- return True
- else:
- return False
-
- return False
-
- def on_preferences_open_folder(self):
- """
- Will open an Explorer window set to the folder path where the FlatCAM preferences files are usually saved.
-
- :return: None
- """
-
- if sys.platform == 'win32':
- subprocess.Popen('explorer %s' % self.app.data_path)
- elif sys.platform == 'darwin':
- os.system('open "%s"' % self.app.data_path)
- else:
- subprocess.Popen(['xdg-open', self.app.data_path])
- self.app.inform.emit('[success] %s' % _("FlatCAM Preferences Folder opened."))
-
- def on_gui_clear(self):
- theme_settings = QtCore.QSettings("Open Source", "FlatCAM")
- theme_settings.setValue('theme', 'white')
-
- del theme_settings
-
- resource_loc = self.app.resource_location
-
- msgbox = QtWidgets.QMessageBox()
- msgbox.setText(_("Are you sure you want to delete the GUI Settings? \n"))
- msgbox.setWindowTitle(_("Clear GUI Settings"))
- msgbox.setWindowIcon(QtGui.QIcon(resource_loc + '/trash32.png'))
- bt_yes = msgbox.addButton(_('Yes'), QtWidgets.QMessageBox.YesRole)
- bt_no = msgbox.addButton(_('No'), QtWidgets.QMessageBox.NoRole)
-
- msgbox.setDefaultButton(bt_no)
- msgbox.exec_()
- response = msgbox.clickedButton()
-
- if response == bt_yes:
- qsettings = QSettings("Open Source", "FlatCAM")
- for key in qsettings.allKeys():
- qsettings.remove(key)
- # This will write the setting to the platform specific storage.
- del qsettings
-
- def populate_toolbars(self):
- """
- Will populate the App Toolbars with their actions
-
- :return: None
- """
-
- # ########################################################################
- # ## File Toolbar # ##
- # ########################################################################
- self.file_open_gerber_btn = self.toolbarfile.addAction(
- QtGui.QIcon(self.app.resource_location + '/flatcam_icon32.png'), _("Open Gerber"))
- self.file_open_excellon_btn = self.toolbarfile.addAction(
- QtGui.QIcon(self.app.resource_location + '/drill32.png'), _("Open Excellon"))
- self.toolbarfile.addSeparator()
- self.file_open_btn = self.toolbarfile.addAction(
- QtGui.QIcon(self.app.resource_location + '/folder32.png'), _("Open project"))
- self.file_save_btn = self.toolbarfile.addAction(
- QtGui.QIcon(self.app.resource_location + '/project_save32.png'), _("Save project"))
-
- # ########################################################################
- # ## Edit Toolbar # ##
- # ########################################################################
- self.newgeo_btn = self.toolbargeo.addAction(
- QtGui.QIcon(self.app.resource_location + '/new_file_geo32.png'), _("New Blank Geometry"))
- self.newgrb_btn = self.toolbargeo.addAction(
- QtGui.QIcon(self.app.resource_location + '/new_file_grb32.png'), _("New Blank Gerber"))
- self.newexc_btn = self.toolbargeo.addAction(
- QtGui.QIcon(self.app.resource_location + '/new_file_exc32.png'), _("New Blank Excellon"))
- self.toolbargeo.addSeparator()
- self.editgeo_btn = self.toolbargeo.addAction(
- QtGui.QIcon(self.app.resource_location + '/edit32.png'), _("Editor"))
- self.update_obj_btn = self.toolbargeo.addAction(
- QtGui.QIcon(self.app.resource_location + '/close_edit_file32.png'),
- _("Save Object and close the Editor")
- )
-
- self.toolbargeo.addSeparator()
- self.copy_btn = self.toolbargeo.addAction(
- QtGui.QIcon(self.app.resource_location + '/copy_file32.png'), _("Copy"))
- self.delete_btn = self.toolbargeo.addAction(
- QtGui.QIcon(self.app.resource_location + '/delete_file32.png'), _("&Delete"))
- self.toolbargeo.addSeparator()
- self.distance_btn = self.toolbargeo.addAction(
- QtGui.QIcon(self.app.resource_location + '/distance32.png'), _("Distance Tool"))
- self.distance_min_btn = self.toolbargeo.addAction(
- QtGui.QIcon(self.app.resource_location + '/distance_min32.png'), _("Distance Min Tool"))
- self.origin_btn = self.toolbargeo.addAction(
- QtGui.QIcon(self.app.resource_location + '/origin32.png'), _('Set Origin'))
- self.jmp_btn = self.toolbargeo.addAction(
- QtGui.QIcon(self.app.resource_location + '/jump_to16.png'), _('Jump to Location'))
- self.locate_btn = self.toolbargeo.addAction(
- QtGui.QIcon(self.app.resource_location + '/locate32.png'), _('Locate in Object'))
-
- # ########################################################################
- # ########################## View Toolbar# ###############################
- # ########################################################################
- self.replot_btn = self.toolbarview.addAction(
- QtGui.QIcon(self.app.resource_location + '/replot32.png'), _("&Replot"))
- self.clear_plot_btn = self.toolbarview.addAction(
- QtGui.QIcon(self.app.resource_location + '/clear_plot32.png'), _("&Clear plot"))
- self.zoom_in_btn = self.toolbarview.addAction(
- QtGui.QIcon(self.app.resource_location + '/zoom_in32.png'), _("Zoom In"))
- self.zoom_out_btn = self.toolbarview.addAction(
- QtGui.QIcon(self.app.resource_location + '/zoom_out32.png'), _("Zoom Out"))
- self.zoom_fit_btn = self.toolbarview.addAction(
- QtGui.QIcon(self.app.resource_location + '/zoom_fit32.png'), _("Zoom Fit"))
-
- # ########################################################################
- # ########################## Shell Toolbar# ##############################
- # ########################################################################
- self.shell_btn = self.toolbarshell.addAction(
- QtGui.QIcon(self.app.resource_location + '/shell32.png'), _("&Command Line"))
- self.new_script_btn = self.toolbarshell.addAction(
- QtGui.QIcon(self.app.resource_location + '/script_new24.png'), _('New Script ...'))
- self.open_script_btn = self.toolbarshell.addAction(
- QtGui.QIcon(self.app.resource_location + '/open_script32.png'), _('Open Script ...'))
- self.run_script_btn = self.toolbarshell.addAction(
- QtGui.QIcon(self.app.resource_location + '/script16.png'), _('Run Script ...'))
-
- # #########################################################################
- # ######################### Tools Toolbar #################################
- # #########################################################################
- self.dblsided_btn = self.toolbartools.addAction(
- QtGui.QIcon(self.app.resource_location + '/doubleside32.png'), _("2Sided Tool"))
- self.align_btn = self.toolbartools.addAction(
- QtGui.QIcon(self.app.resource_location + '/align32.png'), _("Align Objects Tool"))
- self.extract_btn = self.toolbartools.addAction(
- QtGui.QIcon(self.app.resource_location + '/extract_drill32.png'), _("Extract Drills Tool"))
-
- self.cutout_btn = self.toolbartools.addAction(
- QtGui.QIcon(self.app.resource_location + '/cut16_bis.png'), _("&Cutout Tool"))
- self.ncc_btn = self.toolbartools.addAction(
- QtGui.QIcon(self.app.resource_location + '/ncc16.png'), _("NCC Tool"))
- self.paint_btn = self.toolbartools.addAction(
- QtGui.QIcon(self.app.resource_location + '/paint20_1.png'), _("Paint Tool"))
- self.toolbartools.addSeparator()
-
- self.panelize_btn = self.toolbartools.addAction(
- QtGui.QIcon(self.app.resource_location + '/panelize32.png'), _("Panel Tool"))
- self.film_btn = self.toolbartools.addAction(
- QtGui.QIcon(self.app.resource_location + '/film16.png'), _("Film Tool"))
- self.solder_btn = self.toolbartools.addAction(
- QtGui.QIcon(self.app.resource_location + '/solderpastebis32.png'), _("SolderPaste Tool"))
- self.sub_btn = self.toolbartools.addAction(
- QtGui.QIcon(self.app.resource_location + '/sub32.png'), _("Subtract Tool"))
- self.rules_btn = self.toolbartools.addAction(
- QtGui.QIcon(self.app.resource_location + '/rules32.png'), _("Rules Tool"))
- self.optimal_btn = self.toolbartools.addAction(
- QtGui.QIcon(self.app.resource_location + '/open_excellon32.png'), _("Optimal Tool"))
-
- self.toolbartools.addSeparator()
-
- self.calculators_btn = self.toolbartools.addAction(
- QtGui.QIcon(self.app.resource_location + '/calculator24.png'), _("Calculators Tool"))
- self.transform_btn = self.toolbartools.addAction(
- QtGui.QIcon(self.app.resource_location + '/transform.png'), _("Transform Tool"))
- self.qrcode_btn = self.toolbartools.addAction(
- QtGui.QIcon(self.app.resource_location + '/qrcode32.png'), _("QRCode Tool"))
- self.copperfill_btn = self.toolbartools.addAction(
- QtGui.QIcon(self.app.resource_location + '/copperfill32.png'), _("Copper Thieving Tool"))
-
- self.fiducials_btn = self.toolbartools.addAction(
- QtGui.QIcon(self.app.resource_location + '/fiducials_32.png'), _("Fiducials Tool"))
- self.cal_btn = self.toolbartools.addAction(
- QtGui.QIcon(self.app.resource_location + '/calibrate_32.png'), _("Calibration Tool"))
- self.punch_btn = self.toolbartools.addAction(
- QtGui.QIcon(self.app.resource_location + '/punch32.png'), _("Punch Gerber Tool"))
- self.invert_btn = self.toolbartools.addAction(
- QtGui.QIcon(self.app.resource_location + '/invert32.png'), _("Invert Gerber Tool"))
-
- # ########################################################################
- # ## Excellon Editor Toolbar # ##
- # ########################################################################
- self.select_drill_btn = self.exc_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/pointer32.png'), _("Select"))
- self.add_drill_btn = self.exc_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/plus16.png'), _('Add Drill Hole'))
- self.add_drill_array_btn = self.exc_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/addarray16.png'), _('Add Drill Hole Array'))
- self.resize_drill_btn = self.exc_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/resize16.png'), _('Resize Drill'))
- self.add_slot_btn = self.exc_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/slot26.png'), _('Add Slot'))
- self.add_slot_array_btn = self.exc_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/slot_array26.png'), _('Add Slot Array'))
- self.exc_edit_toolbar.addSeparator()
-
- self.copy_drill_btn = self.exc_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/copy32.png'), _('Copy Drill'))
- self.delete_drill_btn = self.exc_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/trash32.png'), _("Delete Drill"))
-
- self.exc_edit_toolbar.addSeparator()
- self.move_drill_btn = self.exc_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/move32.png'), _("Move Drill"))
-
- # ########################################################################
- # ## Geometry Editor Toolbar # ##
- # ########################################################################
- self.geo_select_btn = self.geo_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/pointer32.png'), _("Select 'Esc'"))
- self.geo_add_circle_btn = self.geo_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/circle32.png'), _('Add Circle'))
- self.geo_add_arc_btn = self.geo_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/arc32.png'), _('Add Arc'))
- self.geo_add_rectangle_btn = self.geo_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/rectangle32.png'), _('Add Rectangle'))
-
- self.geo_edit_toolbar.addSeparator()
- self.geo_add_path_btn = self.geo_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/path32.png'), _('Add Path'))
- self.geo_add_polygon_btn = self.geo_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/polygon32.png'), _('Add Polygon'))
- self.geo_edit_toolbar.addSeparator()
- self.geo_add_text_btn = self.geo_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/text32.png'), _('Add Text'))
- self.geo_add_buffer_btn = self.geo_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/buffer16-2.png'), _('Add Buffer'))
- self.geo_add_paint_btn = self.geo_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/paint20_1.png'), _('Paint Shape'))
- self.geo_eraser_btn = self.geo_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/eraser26.png'), _('Eraser'))
-
- self.geo_edit_toolbar.addSeparator()
- self.geo_union_btn = self.geo_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/union32.png'), _('Polygon Union'))
- self.geo_explode_btn = self.geo_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/explode32.png'), _('Polygon Explode'))
-
- self.geo_intersection_btn = self.geo_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/intersection32.png'), _('Polygon Intersection'))
- self.geo_subtract_btn = self.geo_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/subtract32.png'), _('Polygon Subtraction'))
-
- self.geo_edit_toolbar.addSeparator()
- self.geo_cutpath_btn = self.geo_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/cutpath32.png'), _('Cut Path'))
- self.geo_copy_btn = self.geo_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/copy32.png'), _("Copy Objects"))
- self.geo_delete_btn = self.geo_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/trash32.png'), _("Delete Shape"))
- self.geo_transform_btn = self.geo_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/transform.png'), _("Transformations"))
-
- self.geo_edit_toolbar.addSeparator()
- self.geo_move_btn = self.geo_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/move32.png'), _("Move Objects"))
-
- # ########################################################################
- # ## Gerber Editor Toolbar # ##
- # ########################################################################
- self.grb_select_btn = self.grb_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/pointer32.png'), _("Select"))
- self.grb_add_pad_btn = self.grb_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/aperture32.png'), _("Add Pad"))
- self.add_pad_ar_btn = self.grb_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/padarray32.png'), _('Add Pad Array'))
- self.grb_add_track_btn = self.grb_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/track32.png'), _("Add Track"))
- self.grb_add_region_btn = self.grb_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/polygon32.png'), _("Add Region"))
- self.grb_convert_poly_btn = self.grb_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/poligonize32.png'), _("Poligonize"))
-
- self.grb_add_semidisc_btn = self.grb_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/semidisc32.png'), _("SemiDisc"))
- self.grb_add_disc_btn = self.grb_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/disc32.png'), _("Disc"))
- self.grb_edit_toolbar.addSeparator()
-
- self.aperture_buffer_btn = self.grb_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/buffer16-2.png'), _('Buffer'))
- self.aperture_scale_btn = self.grb_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/scale32.png'), _('Scale'))
- self.aperture_markarea_btn = self.grb_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/markarea32.png'), _('Mark Area'))
- self.aperture_eraser_btn = self.grb_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/eraser26.png'), _('Eraser'))
-
- self.grb_edit_toolbar.addSeparator()
- self.aperture_copy_btn = self.grb_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/copy32.png'), _("Copy"))
- self.aperture_delete_btn = self.grb_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/trash32.png'), _("Delete"))
- self.grb_transform_btn = self.grb_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/transform.png'), _("Transformations"))
- self.grb_edit_toolbar.addSeparator()
- self.aperture_move_btn = self.grb_edit_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/move32.png'), _("Move"))
-
- # ########################################################################
- # ## Snap Toolbar # ##
- # ########################################################################
-
- # Snap GRID toolbar is always active to facilitate usage of measurements done on GRID
- # self.addToolBar(self.snap_toolbar)
- self.grid_snap_btn = self.snap_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/grid32.png'), _('Snap to grid'))
- self.grid_gap_x_entry = FCEntry2()
- self.grid_gap_x_entry.setMaximumWidth(70)
- self.grid_gap_x_entry.setToolTip(_("Grid X snapping distance"))
- self.snap_toolbar.addWidget(self.grid_gap_x_entry)
-
- self.grid_gap_y_entry = FCEntry2()
- self.grid_gap_y_entry.setMaximumWidth(70)
- self.grid_gap_y_entry.setToolTip(_("Grid Y snapping distance"))
- self.snap_toolbar.addWidget(self.grid_gap_y_entry)
-
- self.grid_space_label = QtWidgets.QLabel(" ")
- self.snap_toolbar.addWidget(self.grid_space_label)
- self.grid_gap_link_cb = FCCheckBox()
- self.grid_gap_link_cb.setToolTip(_("When active, value on Grid_X\n"
- "is copied to the Grid_Y value."))
- self.snap_toolbar.addWidget(self.grid_gap_link_cb)
-
- self.ois_grid = OptionalInputSection(self.grid_gap_link_cb, [self.grid_gap_y_entry], logic=False)
-
- self.corner_snap_btn = self.snap_toolbar.addAction(
- QtGui.QIcon(self.app.resource_location + '/corner32.png'), _('Snap to corner'))
-
- self.snap_max_dist_entry = FCEntry()
- self.snap_max_dist_entry.setMaximumWidth(70)
- self.snap_max_dist_entry.setToolTip(_("Max. magnet distance"))
- self.snap_magnet = self.snap_toolbar.addWidget(self.snap_max_dist_entry)
-
- self.grid_snap_btn.setCheckable(True)
- self.corner_snap_btn.setCheckable(True)
- self.update_obj_btn.setEnabled(False)
- # start with GRID activated
- self.grid_snap_btn.trigger()
-
- qsettings = QSettings("Open Source", "FlatCAM")
- if qsettings.contains("layout"):
- layout = qsettings.value('layout', type=str)
-
- if layout == 'standard':
- self.corner_snap_btn.setVisible(False)
- self.snap_magnet.setVisible(False)
- else:
- self.corner_snap_btn.setVisible(True)
- self.snap_magnet.setVisible(True)
- self.corner_snap_btn.setDisabled(True)
- self.snap_magnet.setDisabled(True)
-
- # on 'minimal' layout only some toolbars are active
- if layout != 'minimal':
- self.exc_edit_toolbar.setVisible(True)
- self.exc_edit_toolbar.setDisabled(True)
- self.geo_edit_toolbar.setVisible(True)
- self.geo_edit_toolbar.setDisabled(True)
- self.grb_edit_toolbar.setVisible(True)
- self.grb_edit_toolbar.setDisabled(True)
-
- def keyPressEvent(self, event):
- """
- Key event handler for the entire app.
- Some of the key events are also treated locally in the FlatCAM editors
-
- :param event: QT event
- :return:
- """
- modifiers = QtWidgets.QApplication.keyboardModifiers()
- active = self.app.collection.get_active()
- selected = self.app.collection.get_selected()
- names_list = self.app.collection.get_names()
-
- matplotlib_key_flag = False
-
- # events out of the self.app.collection view (it's about Project Tab) are of type int
- if type(event) is int:
- key = event
- # events from the GUI are of type QKeyEvent
- elif type(event) == QtGui.QKeyEvent:
- key = event.key()
- elif isinstance(event, mpl_key_event): # MatPlotLib key events are trickier to interpret than the rest
- matplotlib_key_flag = True
-
- key = event.key
- key = QtGui.QKeySequence(key)
-
- # check for modifiers
- key_string = key.toString().lower()
- if '+' in key_string:
- mod, __, key_text = key_string.rpartition('+')
- if mod.lower() == 'ctrl':
- modifiers = QtCore.Qt.ControlModifier
- elif mod.lower() == 'alt':
- modifiers = QtCore.Qt.AltModifier
- elif mod.lower() == 'shift':
- modifiers = QtCore.Qt.ShiftModifier
- else:
- modifiers = QtCore.Qt.NoModifier
- key = QtGui.QKeySequence(key_text)
-
- # events from Vispy are of type KeyEvent
- else:
- key = event.key
-
- if self.app.call_source == 'app':
- # CTRL + ALT
- if modifiers == QtCore.Qt.ControlModifier | QtCore.Qt.AltModifier:
- if key == QtCore.Qt.Key_X:
- self.app.abort_all_tasks()
- return
- # CTRL + SHIFT
- if modifiers == QtCore.Qt.ControlModifier | QtCore.Qt.ShiftModifier:
- if key == QtCore.Qt.Key_S:
- self.app.on_file_saveprojectas()
- return
- # CTRL
- elif modifiers == QtCore.Qt.ControlModifier:
- # Select All
- if key == QtCore.Qt.Key_A:
- self.app.on_selectall()
-
- # Copy an FlatCAM object
- if key == QtCore.Qt.Key_C:
- widget_name = self.plot_tab_area.currentWidget().objectName()
- if widget_name == 'database_tab':
- # Tools DB saved, update flag
- self.app.tools_db_changed_flag = True
- self.app.tools_db_tab.on_tool_copy()
- return
-
- self.app.on_copy_command()
-
- # Copy an FlatCAM object
- if key == QtCore.Qt.Key_D:
- self.app.on_tools_database()
-
- # Open Excellon file
- if key == QtCore.Qt.Key_E:
- self.app.on_fileopenexcellon(signal=None)
-
- # Open Gerber file
- if key == QtCore.Qt.Key_G:
- widget_name = self.plot_tab_area.currentWidget().objectName()
- if 'editor' in widget_name.lower():
- self.app.goto_text_line()
- else:
- self.app.on_fileopengerber(signal=None)
-
- # Distance Tool
- if key == QtCore.Qt.Key_M:
- self.app.distance_tool.run()
-
- # Create New Project
- if key == QtCore.Qt.Key_N:
- self.app.on_file_new_click()
-
- # Open Project
- if key == QtCore.Qt.Key_O:
- self.app.on_file_openproject()
-
- # Open Project
- if key == QtCore.Qt.Key_P:
- self.app.on_file_save_objects_pdf(use_thread=True)
-
- # PDF Import
- if key == QtCore.Qt.Key_Q:
- self.app.pdf_tool.run()
-
- # Save Project
- if key == QtCore.Qt.Key_S:
- widget_name = self.plot_tab_area.currentWidget().objectName()
- if widget_name == 'preferences_tab':
- self.app.preferencesUiManager.on_save_button(save_to_file=False)
- return
-
- if widget_name == 'database_tab':
- # Tools DB saved, update flag
- self.app.tools_db_changed_flag = False
- self.app.tools_db_tab.on_save_tools_db()
- return
-
- self.app.on_file_saveproject()
-
- # Toggle Plot Area
- if key == QtCore.Qt.Key_F10 or key == 'F10':
- self.app.on_toggle_plotarea()
-
- return
- # SHIFT
- elif modifiers == QtCore.Qt.ShiftModifier:
-
- # Copy Object Name
- if key == QtCore.Qt.Key_C:
- self.app.on_copy_name()
-
- # Toggle Code Editor
- if key == QtCore.Qt.Key_E:
- self.app.on_toggle_code_editor()
-
- # Toggle axis
- if key == QtCore.Qt.Key_G:
- self.app.on_toggle_axis()
-
- # Locate in Object
- if key == QtCore.Qt.Key_J:
- self.app.on_locate(obj=self.app.collection.get_active())
-
- # Run Distance Minimum Tool
- if key == QtCore.Qt.Key_M:
- self.app.distance_min_tool.run()
- return
-
- # Open Preferences Window
- if key == QtCore.Qt.Key_P:
- self.app.on_preferences()
- return
-
- # Rotate Object by 90 degree CCW
- if key == QtCore.Qt.Key_R:
- self.app.on_rotate(silent=True, preset=-float(self.app.defaults['tools_transform_rotate']))
- return
-
- # Run a Script
- if key == QtCore.Qt.Key_S:
- self.app.on_filerunscript()
- return
-
- # Toggle Workspace
- if key == QtCore.Qt.Key_W:
- self.app.on_workspace_toggle()
- return
-
- # Skew on X axis
- if key == QtCore.Qt.Key_X:
- self.app.on_skewx()
- return
-
- # Skew on Y axis
- if key == QtCore.Qt.Key_Y:
- self.app.on_skewy()
- return
- # ALT
- elif modifiers == QtCore.Qt.AltModifier:
- # Eanble all plots
- if key == Qt.Key_1:
- self.app.enable_all_plots()
-
- # Disable all plots
- if key == Qt.Key_2:
- self.app.disable_all_plots()
-
- # Disable all other plots
- if key == Qt.Key_3:
- self.app.disable_other_plots()
-
- # Align in Object Tool
- if key == QtCore.Qt.Key_A:
- self.app.align_objects_tool.run(toggle=True)
-
- # Calculator Tool
- if key == QtCore.Qt.Key_C:
- self.app.calculator_tool.run(toggle=True)
-
- # 2-Sided PCB Tool
- if key == QtCore.Qt.Key_D:
- self.app.dblsidedtool.run(toggle=True)
- return
-
- # Calibration Tool
- if key == QtCore.Qt.Key_E:
- self.app.cal_exc_tool.run(toggle=True)
- return
-
- # Copper Thieving Tool
- if key == QtCore.Qt.Key_F:
- self.app.copper_thieving_tool.run(toggle=True)
- return
-
- # Toggle Grid lines
- if key == QtCore.Qt.Key_G:
- self.app.on_toggle_grid_lines()
- return
-
- # Align in Object Tool
- if key == QtCore.Qt.Key_H:
- self.app.punch_tool.run(toggle=True)
-
- # Extract Drills Tool
- if key == QtCore.Qt.Key_I:
- self.app.edrills_tool.run(toggle=True)
-
- # Fiducials Tool
- if key == QtCore.Qt.Key_J:
- self.app.fiducial_tool.run(toggle=True)
- return
-
- # Solder Paste Dispensing Tool
- if key == QtCore.Qt.Key_K:
- self.app.paste_tool.run(toggle=True)
- return
-
- # Film Tool
- if key == QtCore.Qt.Key_L:
- self.app.film_tool.run(toggle=True)
- return
-
- # Non-Copper Clear Tool
- if key == QtCore.Qt.Key_N:
- self.app.ncclear_tool.run(toggle=True)
- return
-
- # Optimal Tool
- if key == QtCore.Qt.Key_O:
- self.app.optimal_tool.run(toggle=True)
- return
-
- # Paint Tool
- if key == QtCore.Qt.Key_P:
- self.app.paint_tool.run(toggle=True)
- return
-
- # QRCode Tool
- if key == QtCore.Qt.Key_Q:
- self.app.qrcode_tool.run()
- return
-
- # Rules Tool
- if key == QtCore.Qt.Key_R:
- self.app.rules_tool.run(toggle=True)
- return
-
- # View Source Object Content
- if key == QtCore.Qt.Key_S:
- self.app.on_view_source()
- return
-
- # Transformation Tool
- if key == QtCore.Qt.Key_T:
- self.app.transform_tool.run(toggle=True)
- return
-
- # Substract Tool
- if key == QtCore.Qt.Key_W:
- self.app.sub_tool.run(toggle=True)
- return
-
- # Cutout Tool
- if key == QtCore.Qt.Key_X:
- self.app.cutout_tool.run(toggle=True)
- return
-
- # Panelize Tool
- if key == QtCore.Qt.Key_Z:
- self.app.panelize_tool.run(toggle=True)
- return
-
- # Toggle Fullscreen
- if key == QtCore.Qt.Key_F10 or key == 'F10':
- self.app.on_fullscreen()
- return
- # NO MODIFIER
- elif modifiers == QtCore.Qt.NoModifier:
- # Open Manual
- if key == QtCore.Qt.Key_F1 or key == 'F1':
- webbrowser.open(self.app.manual_url)
-
- # Show shortcut list
- if key == QtCore.Qt.Key_F3 or key == 'F3':
- self.app.on_shortcut_list()
-
- # Open Video Help
- if key == QtCore.Qt.Key_F4 or key == 'F4':
- webbrowser.open(self.app.video_url)
-
- # Open Video Help
- if key == QtCore.Qt.Key_F5 or key == 'F5':
- self.app.plot_all()
-
- # Switch to Project Tab
- if key == QtCore.Qt.Key_1:
- self.app.on_select_tab('project')
-
- # Switch to Selected Tab
- if key == QtCore.Qt.Key_2:
- self.app.on_select_tab('selected')
-
- # Switch to Tool Tab
- if key == QtCore.Qt.Key_3:
- self.app.on_select_tab('tool')
-
- # Delete from PyQt
- # It's meant to make a difference between delete objects and delete tools in
- # Geometry Selected tool table
- if key == QtCore.Qt.Key_Delete and matplotlib_key_flag is False:
- widget_name = self.plot_tab_area.currentWidget().objectName()
- if widget_name == 'database_tab':
- # Tools DB saved, update flag
- self.app.tools_db_changed_flag = True
- self.app.tools_db_tab.on_tool_delete()
- return
-
- self.app.on_delete_keypress()
-
- # Delete from canvas
- if key == 'Delete':
- # Delete via the application to
- # ensure cleanup of the GUI
- if active:
- active.app.on_delete()
-
- # Escape = Deselect All
- if key == QtCore.Qt.Key_Escape or key == 'Escape':
- self.app.on_deselect_all()
-
- # if in full screen, exit to normal view
- if self.app.toggle_fscreen is True:
- self.app.on_fullscreen(disable=True)
-
- # try to disconnect the slot from Set Origin
- try:
- self.app.plotcanvas.graph_event_disconnect('mouse_press', self.app.on_set_zero_click)
- except TypeError:
- pass
- self.app.inform.emit("")
-
- # Space = Toggle Active/Inactive
- if key == QtCore.Qt.Key_Space:
- for select in selected:
- select.ui.plot_cb.toggle()
- self.app.collection.update_view()
- self.app.delete_selection_shape()
-
- # Select the object in the Tree above the current one
- if key == QtCore.Qt.Key_Up:
- # make sure it works only for the Project Tab who is an instance of KeySensitiveListView
- focused_wdg = QtWidgets.QApplication.focusWidget()
- if isinstance(focused_wdg, KeySensitiveListView):
- self.app.collection.set_all_inactive()
- if active is None:
- return
- active_name = active.options['name']
- active_index = names_list.index(active_name)
- if active_index == 0:
- self.app.collection.set_active(names_list[-1])
- else:
- self.app.collection.set_active(names_list[active_index-1])
-
- # Select the object in the Tree below the current one
- if key == QtCore.Qt.Key_Down:
- # make sure it works only for the Project Tab who is an instance of KeySensitiveListView
- focused_wdg = QtWidgets.QApplication.focusWidget()
- if isinstance(focused_wdg, KeySensitiveListView):
- self.app.collection.set_all_inactive()
- if active is None:
- return
- active_name = active.options['name']
- active_index = names_list.index(active_name)
- if active_index == len(names_list) - 1:
- self.app.collection.set_active(names_list[0])
- else:
- self.app.collection.set_active(names_list[active_index+1])
-
- # New Geometry
- if key == QtCore.Qt.Key_B:
- self.app.new_gerber_object()
-
- # New Geometry
- if key == QtCore.Qt.Key_D:
- self.app.new_document_object()
-
- # Copy Object Name
- if key == QtCore.Qt.Key_E:
- self.app.object2editor()
-
- # Grid toggle
- if key == QtCore.Qt.Key_G:
- self.app.ui.grid_snap_btn.trigger()
-
- # Jump to coords
- if key == QtCore.Qt.Key_J:
- self.app.on_jump_to()
-
- # New Excellon
- if key == QtCore.Qt.Key_L:
- self.app.new_excellon_object()
-
- # Move tool toggle
- if key == QtCore.Qt.Key_M:
- self.app.move_tool.toggle()
-
- # New Geometry
- if key == QtCore.Qt.Key_N:
- self.app.new_geometry_object()
-
- # Set Origin
- if key == QtCore.Qt.Key_O:
- self.app.on_set_origin()
- return
-
- # Properties Tool
- if key == QtCore.Qt.Key_P:
- self.app.properties_tool.run()
- return
-
- # Change Units
- if key == QtCore.Qt.Key_Q:
- # if self.app.defaults["units"] == 'MM':
- # self.app.ui.general_defaults_form.general_app_group.units_radio.set_value("IN")
- # else:
- # self.app.ui.general_defaults_form.general_app_group.units_radio.set_value("MM")
- # self.app.on_toggle_units(no_pref=True)
- self.app.on_toggle_units_click()
-
- # Rotate Object by 90 degree CW
- if key == QtCore.Qt.Key_R:
- self.app.on_rotate(silent=True, preset=self.app.defaults['tools_transform_rotate'])
-
- # Shell toggle
- if key == QtCore.Qt.Key_S:
- self.app.toggle_shell()
-
- # Add a Tool from shortcut
- if key == QtCore.Qt.Key_T:
- widget_name = self.plot_tab_area.currentWidget().objectName()
- if widget_name == 'database_tab':
- # Tools DB saved, update flag
- self.app.tools_db_changed_flag = True
- self.app.tools_db_tab.on_tool_add()
- return
-
- self.app.on_tool_add_keypress()
-
- # Zoom Fit
- if key == QtCore.Qt.Key_V:
- self.app.on_zoom_fit(None)
-
- # Mirror on X the selected object(s)
- if key == QtCore.Qt.Key_X:
- self.app.on_flipx()
-
- # Mirror on Y the selected object(s)
- if key == QtCore.Qt.Key_Y:
- self.app.on_flipy()
-
- # Zoom In
- if key == QtCore.Qt.Key_Equal:
- self.app.plotcanvas.zoom(1 / self.app.defaults['global_zoom_ratio'], self.app.mouse)
-
- # Zoom Out
- if key == QtCore.Qt.Key_Minus:
- self.app.plotcanvas.zoom(self.app.defaults['global_zoom_ratio'], self.app.mouse)
-
- # toggle display of Notebook area
- if key == QtCore.Qt.Key_QuoteLeft:
- self.app.on_toggle_notebook()
-
- return
- elif self.app.call_source == 'geo_editor':
- # CTRL
- if modifiers == QtCore.Qt.ControlModifier:
- # save (update) the current geometry and return to the App
- if key == QtCore.Qt.Key_S or key == 'S':
- self.app.editor2object()
- return
-
- # toggle the measurement tool
- if key == QtCore.Qt.Key_M or key == 'M':
- self.app.distance_tool.run()
- return
-
- # Cut Action Tool
- if key == QtCore.Qt.Key_X or key == 'X':
- if self.app.geo_editor.get_selected() is not None:
- self.app.geo_editor.cutpath()
- else:
- msg = _('Please first select a geometry item to be cutted\n'
- 'then select the geometry item that will be cutted\n'
- 'out of the first item. In the end press ~X~ key or\n'
- 'the toolbar button.')
-
- messagebox = QtWidgets.QMessageBox()
- messagebox.setText(msg)
- messagebox.setWindowTitle(_("Warning"))
- messagebox.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/warning.png'))
- messagebox.setStandardButtons(QtWidgets.QMessageBox.Ok)
- messagebox.setDefaultButton(QtWidgets.QMessageBox.Ok)
- messagebox.exec_()
- return
- # SHIFT
- elif modifiers == QtCore.Qt.ShiftModifier:
- # Run Distance Minimum Tool
- if key == QtCore.Qt.Key_M or key == 'M':
- self.app.distance_min_tool.run()
- return
-
- # Skew on X axis
- if key == QtCore.Qt.Key_X or key == 'X':
- self.app.geo_editor.transform_tool.on_skewx_key()
- return
-
- # Skew on Y axis
- if key == QtCore.Qt.Key_Y or key == 'Y':
- self.app.geo_editor.transform_tool.on_skewy_key()
- return
- # ALT
- elif modifiers == QtCore.Qt.AltModifier:
-
- # Transformation Tool
- if key == QtCore.Qt.Key_R or key == 'R':
- self.app.geo_editor.select_tool('transform')
- return
-
- # Offset on X axis
- if key == QtCore.Qt.Key_X or key == 'X':
- self.app.geo_editor.transform_tool.on_offx_key()
- return
-
- # Offset on Y axis
- if key == QtCore.Qt.Key_Y or key == 'Y':
- self.app.geo_editor.transform_tool.on_offy_key()
- return
- # NO MODIFIER
- elif modifiers == QtCore.Qt.NoModifier:
- # toggle display of Notebook area
- if key == QtCore.Qt.Key_QuoteLeft or key == '`':
- self.app.on_toggle_notebook()
-
- # Finish the current action. Use with tools that do not
- # complete automatically, like a polygon or path.
- if key == QtCore.Qt.Key_Enter or key == 'Enter':
- if isinstance(self.app.geo_editor.active_tool, FCShapeTool):
- if self.app.geo_editor.active_tool.name == 'rotate':
- self.app.geo_editor.active_tool.make()
-
- if self.app.geo_editor.active_tool.complete:
- self.app.geo_editor.on_shape_complete()
- self.app.inform.emit('[success] %s' % _("Done."))
- # automatically make the selection tool active after completing current action
- self.app.geo_editor.select_tool('select')
- return
- else:
- self.app.geo_editor.active_tool.click(
- self.app.geo_editor.snap(self.app.geo_editor.x, self.app.geo_editor.y))
-
- self.app.geo_editor.active_tool.make()
-
- if self.app.geo_editor.active_tool.complete:
- self.app.geo_editor.on_shape_complete()
- self.app.inform.emit('[success] %s' % _("Done."))
- # automatically make the selection tool active after completing current action
- self.app.geo_editor.select_tool('select')
-
- # Abort the current action
- if key == QtCore.Qt.Key_Escape or key == 'Escape':
- # self.on_tool_select("select")
- self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled."))
-
- self.app.geo_editor.delete_utility_geometry()
-
- self.app.geo_editor.active_tool.clean_up()
-
- self.app.geo_editor.select_tool('select')
-
- # hide the notebook
- self.app.ui.splitter.setSizes([0, 1])
- return
-
- # Delete selected object
- if key == QtCore.Qt.Key_Delete or key == 'Delete':
- self.app.geo_editor.delete_selected()
- self.app.geo_editor.replot()
-
- # Rotate
- if key == QtCore.Qt.Key_Space or key == 'Space':
- self.app.geo_editor.transform_tool.on_rotate_key()
-
- # Zoom Out
- if key == QtCore.Qt.Key_Minus or key == '-':
- self.app.plotcanvas.zoom(1 / self.app.defaults['global_zoom_ratio'],
- [self.app.geo_editor.snap_x, self.app.geo_editor.snap_y])
-
- # Zoom In
- if key == QtCore.Qt.Key_Equal or key == '=':
- self.app.plotcanvas.zoom(self.app.defaults['global_zoom_ratio'],
- [self.app.geo_editor.snap_x, self.app.geo_editor.snap_y])
-
- # Switch to Project Tab
- if key == QtCore.Qt.Key_1 or key == '1':
- self.app.on_select_tab('project')
-
- # Switch to Selected Tab
- if key == QtCore.Qt.Key_2 or key == '2':
- self.app.on_select_tab('selected')
-
- # Switch to Tool Tab
- if key == QtCore.Qt.Key_3 or key == '3':
- self.app.on_select_tab('tool')
-
- # Grid Snap
- if key == QtCore.Qt.Key_G or key == 'G':
- self.app.ui.grid_snap_btn.trigger()
-
- # make sure that the cursor shape is enabled/disabled, too
- if self.app.geo_editor.options['grid_snap'] is True:
- self.app.app_cursor.enabled = True
- else:
- self.app.app_cursor.enabled = False
-
- # Corner Snap
- if key == QtCore.Qt.Key_K or key == 'K':
- self.app.geo_editor.on_corner_snap()
-
- if key == QtCore.Qt.Key_V or key == 'V':
- self.app.on_zoom_fit(None)
-
- # we do this so we can reuse the following keys while inside a Tool
- # the above keys are general enough so were left outside
- if self.app.geo_editor.active_tool is not None and self.geo_select_btn.isChecked() is False:
- response = self.app.geo_editor.active_tool.on_key(key=key)
- if response is not None:
- self.app.inform.emit(response)
- else:
- # Arc Tool
- if key == QtCore.Qt.Key_A or key == 'A':
- self.app.geo_editor.select_tool('arc')
-
- # Buffer
- if key == QtCore.Qt.Key_B or key == 'B':
- self.app.geo_editor.select_tool('buffer')
-
- # Copy
- if key == QtCore.Qt.Key_C or key == 'C':
- self.app.geo_editor.on_copy_click()
-
- # Substract Tool
- if key == QtCore.Qt.Key_E or key == 'E':
- if self.app.geo_editor.get_selected() is not None:
- self.app.geo_editor.intersection()
- else:
- msg = _("Please select geometry items \n"
- "on which to perform Intersection Tool.")
-
- messagebox = QtWidgets.QMessageBox()
- messagebox.setText(msg)
- messagebox.setWindowTitle(_("Warning"))
- messagebox.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/warning.png'))
- messagebox.setStandardButtons(QtWidgets.QMessageBox.Ok)
- messagebox.setDefaultButton(QtWidgets.QMessageBox.Ok)
- messagebox.exec_()
-
- # Paint
- if key == QtCore.Qt.Key_I or key == 'I':
- self.app.geo_editor.select_tool('paint')
-
- # Jump to coords
- if key == QtCore.Qt.Key_J or key == 'J':
- self.app.on_jump_to()
-
- # Move
- if key == QtCore.Qt.Key_M or key == 'M':
- self.app.geo_editor.on_move_click()
-
- # Polygon Tool
- if key == QtCore.Qt.Key_N or key == 'N':
- self.app.geo_editor.select_tool('polygon')
-
- # Circle Tool
- if key == QtCore.Qt.Key_O or key == 'O':
- self.app.geo_editor.select_tool('circle')
-
- # Path Tool
- if key == QtCore.Qt.Key_P or key == 'P':
- self.app.geo_editor.select_tool('path')
-
- # Rectangle Tool
- if key == QtCore.Qt.Key_R or key == 'R':
- self.app.geo_editor.select_tool('rectangle')
-
- # Substract Tool
- if key == QtCore.Qt.Key_S or key == 'S':
- if self.app.geo_editor.get_selected() is not None:
- self.app.geo_editor.subtract()
- else:
- msg = _(
- "Please select geometry items \n"
- "on which to perform Substraction Tool.")
-
- messagebox = QtWidgets.QMessageBox()
- messagebox.setText(msg)
- messagebox.setWindowTitle(_("Warning"))
- messagebox.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/warning.png'))
- messagebox.setStandardButtons(QtWidgets.QMessageBox.Ok)
- messagebox.setDefaultButton(QtWidgets.QMessageBox.Ok)
- messagebox.exec_()
-
- # Add Text Tool
- if key == QtCore.Qt.Key_T or key == 'T':
- self.app.geo_editor.select_tool('text')
-
- # Substract Tool
- if key == QtCore.Qt.Key_U or key == 'U':
- if self.app.geo_editor.get_selected() is not None:
- self.app.geo_editor.union()
- else:
- msg = _("Please select geometry items \n"
- "on which to perform union.")
-
- messagebox = QtWidgets.QMessageBox()
- messagebox.setText(msg)
- messagebox.setWindowTitle(_("Warning"))
- messagebox.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/warning.png'))
- messagebox.setStandardButtons(QtWidgets.QMessageBox.Ok)
- messagebox.setDefaultButton(QtWidgets.QMessageBox.Ok)
- messagebox.exec_()
-
- # Flip on X axis
- if key == QtCore.Qt.Key_X or key == 'X':
- self.app.geo_editor.transform_tool.on_flipx()
- return
-
- # Flip on Y axis
- if key == QtCore.Qt.Key_Y or key == 'Y':
- self.app.geo_editor.transform_tool.on_flipy()
- return
-
- # Show Shortcut list
- if key == 'F3':
- self.app.on_shortcut_list()
- elif self.app.call_source == 'grb_editor':
- # CTRL
- if modifiers == QtCore.Qt.ControlModifier:
- # Eraser Tool
- if key == QtCore.Qt.Key_E or key == 'E':
- self.app.grb_editor.on_eraser()
- return
-
- # save (update) the current geometry and return to the App
- if key == QtCore.Qt.Key_S or key == 'S':
- self.app.editor2object()
- return
-
- # toggle the measurement tool
- if key == QtCore.Qt.Key_M or key == 'M':
- self.app.distance_tool.run()
- return
- # SHIFT
- elif modifiers == QtCore.Qt.ShiftModifier:
- # Run Distance Minimum Tool
- if key == QtCore.Qt.Key_M or key == 'M':
- self.app.distance_min_tool.run()
- return
- # ALT
- elif modifiers == QtCore.Qt.AltModifier:
- # Mark Area Tool
- if key == QtCore.Qt.Key_A or key == 'A':
- self.app.grb_editor.on_markarea()
- return
-
- # Poligonize Tool
- if key == QtCore.Qt.Key_N or key == 'N':
- self.app.grb_editor.on_poligonize()
- return
- # Transformation Tool
- if key == QtCore.Qt.Key_R or key == 'R':
- self.app.grb_editor.on_transform()
- return
- # NO MODIFIER
- elif modifiers == QtCore.Qt.NoModifier:
- # Abort the current action
- if key == QtCore.Qt.Key_Escape or key == 'Escape':
- # self.on_tool_select("select")
- self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled."))
-
- self.app.grb_editor.delete_utility_geometry()
-
- # self.app.grb_editor.plot_all()
- self.app.grb_editor.active_tool.clean_up()
- self.app.grb_editor.select_tool('select')
- return
-
- # Delete selected object if delete key event comes out of canvas
- if key == 'Delete':
- self.app.grb_editor.launched_from_shortcuts = True
- if self.app.grb_editor.selected:
- self.app.grb_editor.delete_selected()
- self.app.grb_editor.plot_all()
- else:
- self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled. Nothing selected to delete."))
- return
-
- # Delete aperture in apertures table if delete key event comes from the Selected Tab
- if key == QtCore.Qt.Key_Delete:
- self.app.grb_editor.launched_from_shortcuts = True
- self.app.grb_editor.on_aperture_delete()
- return
-
- if key == QtCore.Qt.Key_Minus or key == '-':
- self.app.grb_editor.launched_from_shortcuts = True
- self.app.plotcanvas.zoom(1 / self.app.defaults['global_zoom_ratio'],
- [self.app.grb_editor.snap_x, self.app.grb_editor.snap_y])
- return
-
- if key == QtCore.Qt.Key_Equal or key == '=':
- self.app.grb_editor.launched_from_shortcuts = True
- self.app.plotcanvas.zoom(self.app.defaults['global_zoom_ratio'],
- [self.app.grb_editor.snap_x, self.app.grb_editor.snap_y])
- return
-
- # toggle display of Notebook area
- if key == QtCore.Qt.Key_QuoteLeft or key == '`':
- self.app.grb_editor.launched_from_shortcuts = True
- self.app.on_toggle_notebook()
- return
-
- # Rotate
- if key == QtCore.Qt.Key_Space or key == 'Space':
- self.app.grb_editor.transform_tool.on_rotate_key()
-
- # Switch to Project Tab
- if key == QtCore.Qt.Key_1 or key == '1':
- self.app.grb_editor.launched_from_shortcuts = True
- self.app.on_select_tab('project')
- return
-
- # Switch to Selected Tab
- if key == QtCore.Qt.Key_2 or key == '2':
- self.app.grb_editor.launched_from_shortcuts = True
- self.app.on_select_tab('selected')
- return
-
- # Switch to Tool Tab
- if key == QtCore.Qt.Key_3 or key == '3':
- self.app.grb_editor.launched_from_shortcuts = True
- self.app.on_select_tab('tool')
- return
-
- # we do this so we can reuse the following keys while inside a Tool
- # the above keys are general enough so were left outside
- if self.app.grb_editor.active_tool is not None and self.grb_select_btn.isChecked() is False:
- response = self.app.grb_editor.active_tool.on_key(key=key)
- if response is not None:
- self.app.inform.emit(response)
- else:
- # Add Array of pads
- if key == QtCore.Qt.Key_A or key == 'A':
- self.app.grb_editor.launched_from_shortcuts = True
- self.app.inform.emit("Click on target point.")
- self.app.ui.add_pad_ar_btn.setChecked(True)
-
- self.app.grb_editor.x = self.app.mouse[0]
- self.app.grb_editor.y = self.app.mouse[1]
-
- self.app.grb_editor.select_tool('array')
- return
-
- # Scale Tool
- if key == QtCore.Qt.Key_B or key == 'B':
- self.app.grb_editor.launched_from_shortcuts = True
- self.app.grb_editor.select_tool('buffer')
- return
-
- # Copy
- if key == QtCore.Qt.Key_C or key == 'C':
- self.app.grb_editor.launched_from_shortcuts = True
- if self.app.grb_editor.selected:
- self.app.inform.emit(_("Click on target point."))
- self.app.ui.aperture_copy_btn.setChecked(True)
- self.app.grb_editor.on_tool_select('copy')
- self.app.grb_editor.active_tool.set_origin(
- (self.app.grb_editor.snap_x, self.app.grb_editor.snap_y))
- else:
- self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled. Nothing selected to copy."))
- return
-
- # Add Disc Tool
- if key == QtCore.Qt.Key_D or key == 'D':
- self.app.grb_editor.launched_from_shortcuts = True
- self.app.grb_editor.select_tool('disc')
- return
-
- # Add SemiDisc Tool
- if key == QtCore.Qt.Key_E or key == 'E':
- self.app.grb_editor.launched_from_shortcuts = True
- self.app.grb_editor.select_tool('semidisc')
- return
-
- # Grid Snap
- if key == QtCore.Qt.Key_G or key == 'G':
- self.app.grb_editor.launched_from_shortcuts = True
- # make sure that the cursor shape is enabled/disabled, too
- if self.app.grb_editor.options['grid_snap'] is True:
- self.app.app_cursor.enabled = False
- else:
- self.app.app_cursor.enabled = True
- self.app.ui.grid_snap_btn.trigger()
- return
-
- # Jump to coords
- if key == QtCore.Qt.Key_J or key == 'J':
- self.app.on_jump_to()
-
- # Corner Snap
- if key == QtCore.Qt.Key_K or key == 'K':
- self.app.grb_editor.launched_from_shortcuts = True
- self.app.ui.corner_snap_btn.trigger()
- return
-
- # Move
- if key == QtCore.Qt.Key_M or key == 'M':
- self.app.grb_editor.launched_from_shortcuts = True
- if self.app.grb_editor.selected:
- self.app.inform.emit(_("Click on target point."))
- self.app.ui.aperture_move_btn.setChecked(True)
- self.app.grb_editor.on_tool_select('move')
- self.app.grb_editor.active_tool.set_origin(
- (self.app.grb_editor.snap_x, self.app.grb_editor.snap_y))
- else:
- self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled. Nothing selected to move."))
- return
-
- # Add Region Tool
- if key == QtCore.Qt.Key_N or key == 'N':
- self.app.grb_editor.launched_from_shortcuts = True
- self.app.grb_editor.select_tool('region')
- return
-
- # Add Pad Tool
- if key == QtCore.Qt.Key_P or key == 'P':
- self.app.grb_editor.launched_from_shortcuts = True
- self.app.inform.emit(_("Click on target point."))
- self.app.ui.add_pad_ar_btn.setChecked(True)
-
- self.app.grb_editor.x = self.app.mouse[0]
- self.app.grb_editor.y = self.app.mouse[1]
-
- self.app.grb_editor.select_tool('pad')
- return
-
- # Scale Tool
- if key == QtCore.Qt.Key_S or key == 'S':
- self.app.grb_editor.launched_from_shortcuts = True
- self.app.grb_editor.select_tool('scale')
- return
-
- # Add Track
- if key == QtCore.Qt.Key_T or key == 'T':
- self.app.grb_editor.launched_from_shortcuts = True
- # ## Current application units in Upper Case
- self.app.grb_editor.select_tool('track')
- return
-
- # Zoom fit
- if key == QtCore.Qt.Key_V or key == 'V':
- self.app.grb_editor.launched_from_shortcuts = True
- self.app.grb_editor.on_zoom_fit()
- return
-
- # Show Shortcut list
- if key == QtCore.Qt.Key_F3 or key == 'F3':
- self.app.on_shortcut_list()
- return
- elif self.app.call_source == 'exc_editor':
- # CTRL
- if modifiers == QtCore.Qt.ControlModifier:
- # save (update) the current geometry and return to the App
- if key == QtCore.Qt.Key_S or key == 'S':
- self.app.editor2object()
- return
-
- # toggle the measurement tool
- if key == QtCore.Qt.Key_M or key == 'M':
- self.app.distance_tool.run()
- return
- # SHIFT
- elif modifiers == QtCore.Qt.ShiftModifier:
- # Run Distance Minimum Tool
- if key == QtCore.Qt.Key_M or key == 'M':
- self.app.distance_min_tool.run()
- return
- # ALT
- elif modifiers == QtCore.Qt.AltModifier:
- pass
- # NO MODIFIER
- elif modifiers == QtCore.Qt.NoModifier:
- # Abort the current action
- if key == QtCore.Qt.Key_Escape or key == 'Escape':
- self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled."))
-
- self.app.exc_editor.delete_utility_geometry()
-
- self.app.exc_editor.active_tool.clean_up()
-
- self.app.exc_editor.select_tool('drill_select')
- return
-
- # Delete selected object if delete key event comes out of canvas
- if key == 'Delete':
- self.app.exc_editor.launched_from_shortcuts = True
- if self.app.exc_editor.selected:
- self.app.exc_editor.delete_selected()
- self.app.exc_editor.replot()
- else:
- self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled. Nothing selected to delete."))
- return
-
- # Delete tools in tools table if delete key event comes from the Selected Tab
- if key == QtCore.Qt.Key_Delete:
- self.app.exc_editor.launched_from_shortcuts = True
- self.app.exc_editor.on_tool_delete()
- return
-
- if key == QtCore.Qt.Key_Minus or key == '-':
- self.app.exc_editor.launched_from_shortcuts = True
- self.app.plotcanvas.zoom(1 / self.app.defaults['global_zoom_ratio'],
- [self.app.exc_editor.snap_x, self.app.exc_editor.snap_y])
- return
-
- if key == QtCore.Qt.Key_Equal or key == '=':
- self.app.exc_editor.launched_from_shortcuts = True
- self.app.plotcanvas.zoom(self.app.defaults['global_zoom_ratio'],
- [self.app.exc_editor.snap_x, self.app.exc_editor.snap_y])
- return
-
- # toggle display of Notebook area
- if key == QtCore.Qt.Key_QuoteLeft or key == '`':
- self.app.exc_editor.launched_from_shortcuts = True
- self.app.on_toggle_notebook()
- return
-
- # Switch to Project Tab
- if key == QtCore.Qt.Key_1 or key == '1':
- self.app.exc_editor.launched_from_shortcuts = True
- self.app.on_select_tab('project')
- return
-
- # Switch to Selected Tab
- if key == QtCore.Qt.Key_2 or key == '2':
- self.app.exc_editor.launched_from_shortcuts = True
- self.app.on_select_tab('selected')
- return
-
- # Switch to Tool Tab
- if key == QtCore.Qt.Key_3 or key == '3':
- self.app.exc_editor.launched_from_shortcuts = True
- self.app.on_select_tab('tool')
- return
-
- # Grid Snap
- if key == QtCore.Qt.Key_G or key == 'G':
- self.app.exc_editor.launched_from_shortcuts = True
- # make sure that the cursor shape is enabled/disabled, too
- if self.app.exc_editor.options['grid_snap'] is True:
- self.app.app_cursor.enabled = False
- else:
- self.app.app_cursor.enabled = True
- self.app.ui.grid_snap_btn.trigger()
- return
-
- # Corner Snap
- if key == QtCore.Qt.Key_K or key == 'K':
- self.app.exc_editor.launched_from_shortcuts = True
- self.app.ui.corner_snap_btn.trigger()
- return
-
- # Zoom Fit
- if key == QtCore.Qt.Key_V or key == 'V':
- self.app.exc_editor.launched_from_shortcuts = True
- self.app.on_zoom_fit(None)
- return
-
- # Add Slot Hole Tool
- if key == QtCore.Qt.Key_W or key == 'W':
- self.app.exc_editor.launched_from_shortcuts = True
- self.app.inform.emit(_("Click on target point."))
- self.app.ui.add_slot_btn.setChecked(True)
-
- self.app.exc_editor.x = self.app.mouse[0]
- self.app.exc_editor.y = self.app.mouse[1]
-
- self.app.exc_editor.select_tool('slot_add')
- return
-
- # Propagate to tool
-
- # Show Shortcut list
- if key == QtCore.Qt.Key_F3 or key == 'F3':
- self.app.on_shortcut_list()
- return
-
- # we do this so we can reuse the following keys while inside a Tool
- # the above keys are general enough so were left outside
- if self.app.exc_editor.active_tool is not None and self.select_drill_btn.isChecked() is False:
- response = self.app.exc_editor.active_tool.on_key(key=key)
- if response is not None:
- self.app.inform.emit(response)
- else:
- # Add Array of Drill Hole Tool
- if key == QtCore.Qt.Key_A or key == 'A':
- self.app.exc_editor.launched_from_shortcuts = True
- self.app.inform.emit("Click on target point.")
- self.app.ui.add_drill_array_btn.setChecked(True)
-
- self.app.exc_editor.x = self.app.mouse[0]
- self.app.exc_editor.y = self.app.mouse[1]
-
- self.app.exc_editor.select_tool('drill_array')
- return
-
- # Copy
- if key == QtCore.Qt.Key_C or key == 'C':
- self.app.exc_editor.launched_from_shortcuts = True
- if self.app.exc_editor.selected:
- self.app.inform.emit(_("Click on target point."))
- self.app.ui.copy_drill_btn.setChecked(True)
- self.app.exc_editor.on_tool_select('drill_copy')
- self.app.exc_editor.active_tool.set_origin(
- (self.app.exc_editor.snap_x, self.app.exc_editor.snap_y))
- else:
- self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled. Nothing selected to copy."))
- return
-
- # Add Drill Hole Tool
- if key == QtCore.Qt.Key_D or key == 'D':
- self.app.exc_editor.launched_from_shortcuts = True
- self.app.inform.emit(_("Click on target point."))
- self.app.ui.add_drill_btn.setChecked(True)
-
- self.app.exc_editor.x = self.app.mouse[0]
- self.app.exc_editor.y = self.app.mouse[1]
-
- self.app.exc_editor.select_tool('drill_add')
- return
-
- # Jump to coords
- if key == QtCore.Qt.Key_J or key == 'J':
- self.app.on_jump_to()
-
- # Move
- if key == QtCore.Qt.Key_M or key == 'M':
- self.app.exc_editor.launched_from_shortcuts = True
- if self.app.exc_editor.selected:
- self.app.inform.emit(_("Click on target point."))
- self.app.ui.move_drill_btn.setChecked(True)
- self.app.exc_editor.on_tool_select('drill_move')
- self.app.exc_editor.active_tool.set_origin(
- (self.app.exc_editor.snap_x, self.app.exc_editor.snap_y))
- else:
- self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled. Nothing selected to move."))
- return
-
- # Add Array of Slots Hole Tool
- if key == QtCore.Qt.Key_Q or key == 'Q':
- self.app.exc_editor.launched_from_shortcuts = True
- self.app.inform.emit("Click on target point.")
- self.app.ui.add_slot_array_btn.setChecked(True)
-
- self.app.exc_editor.x = self.app.mouse[0]
- self.app.exc_editor.y = self.app.mouse[1]
-
- self.app.exc_editor.select_tool('slot_array')
- return
-
- # Resize Tool
- if key == QtCore.Qt.Key_R or key == 'R':
- self.app.exc_editor.launched_from_shortcuts = True
- self.app.exc_editor.select_tool('drill_resize')
- return
-
- # Add Tool
- if key == QtCore.Qt.Key_T or key == 'T':
- self.app.exc_editor.launched_from_shortcuts = True
- # ## Current application units in Upper Case
- self.units = self.general_defaults_form.general_app_group.units_radio.get_value().upper()
- tool_add_popup = FCInputDialog(title=_("New Tool ..."),
- text='%s:' % _('Enter a Tool Diameter'),
- min=0.0000, max=99.9999, decimals=4)
- tool_add_popup.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/letter_t_32.png'))
-
- val, ok = tool_add_popup.get_value()
- if ok:
- self.app.exc_editor.on_tool_add(tooldia=val)
- formated_val = '%.*f' % (self.decimals, float(val))
- self.app.inform.emit(
- '[success] %s: %s %s' % (_("Added new tool with dia"), formated_val, str(self.units))
- )
- else:
- self.app.inform.emit('[WARNING_NOTCL] %s' % _("Adding Tool cancelled ..."))
- return
- elif self.app.call_source == 'measurement':
- if modifiers == QtCore.Qt.ControlModifier:
- pass
- elif modifiers == QtCore.Qt.AltModifier:
- pass
- elif modifiers == QtCore.Qt.ShiftModifier:
- pass
- # NO MODIFIER
- elif modifiers == QtCore.Qt.NoModifier:
- if key == QtCore.Qt.Key_Escape or key == 'Escape':
- # abort the measurement action
- self.app.distance_tool.deactivate_measure_tool()
- self.app.inform.emit(_("Distance Tool exit..."))
- return
-
- if key == QtCore.Qt.Key_G or key == 'G':
- self.app.ui.grid_snap_btn.trigger()
- return
-
- # Jump to coords
- if key == QtCore.Qt.Key_J or key == 'J':
- self.app.on_jump_to()
- elif self.app.call_source == 'qrcode_tool':
- # CTRL + ALT
- if modifiers == QtCore.Qt.ControlModifier | QtCore.Qt.AltModifier:
- if key == QtCore.Qt.Key_X:
- self.app.abort_all_tasks()
- return
-
- elif modifiers == QtCore.Qt.ControlModifier:
- pass
- elif modifiers == QtCore.Qt.ShiftModifier:
- pass
- elif modifiers == QtCore.Qt.AltModifier:
- pass
- # NO MODIFIER
- elif modifiers == QtCore.Qt.NoModifier:
- # Escape = Deselect All
- if key == QtCore.Qt.Key_Escape or key == 'Escape':
- self.app.qrcode_tool.on_exit()
-
- # Grid toggle
- if key == QtCore.Qt.Key_G:
- self.app.ui.grid_snap_btn.trigger()
-
- # Jump to coords
- if key == QtCore.Qt.Key_J:
- self.app.on_jump_to()
- elif self.app.call_source == 'copper_thieving_tool':
- # CTRL + ALT
- if modifiers == QtCore.Qt.ControlModifier | QtCore.Qt.AltModifier:
- if key == QtCore.Qt.Key_X:
- self.app.abort_all_tasks()
- return
- elif modifiers == QtCore.Qt.ControlModifier:
- pass
- elif modifiers == QtCore.Qt.ShiftModifier:
- pass
- elif modifiers == QtCore.Qt.AltModifier:
- pass
- # NO MODIFIER
- elif modifiers == QtCore.Qt.NoModifier:
- # Escape = Deselect All
- if key == QtCore.Qt.Key_Escape or key == 'Escape':
- self.app.copperfill_tool.on_exit()
-
- # Grid toggle
- if key == QtCore.Qt.Key_G:
- self.app.ui.grid_snap_btn.trigger()
-
- # Jump to coords
- if key == QtCore.Qt.Key_J:
- self.app.on_jump_to()
- elif self.app.call_source == 'geometry':
- if modifiers == QtCore.Qt.ControlModifier:
- pass
- elif modifiers == QtCore.Qt.AltModifier:
- pass
- elif modifiers == QtCore.Qt.ShiftModifier:
- pass
- # NO MODIFIER
- elif modifiers == QtCore.Qt.NoModifier:
- if key == QtCore.Qt.Key_Escape or key == 'Escape':
- sel_obj = self.app.collection.get_active()
- assert sel_obj.kind == 'geometry', "Expected a Geometry Object, got %s" % type(sel_obj)
-
- sel_obj.area_disconnect()
- return
-
- if key == QtCore.Qt.Key_G or key == 'G':
- self.app.ui.grid_snap_btn.trigger()
- return
-
- # Jump to coords
- if key == QtCore.Qt.Key_J or key == 'J':
- self.app.on_jump_to()
-
- def createPopupMenu(self):
- menu = super().createPopupMenu()
-
- menu.addSeparator()
- menu.addAction(self.lock_action)
- return menu
-
- def lock_toolbar(self, lock=False):
- """
- Used to (un)lock the toolbars of the app.
-
- :param lock: boolean, will lock all toolbars in place when set True
- :return: None
- """
-
- if lock:
- for widget in self.children():
- if isinstance(widget, QtWidgets.QToolBar):
- widget.setMovable(False)
- else:
- for widget in self.children():
- if isinstance(widget, QtWidgets.QToolBar):
- widget.setMovable(True)
-
- def dragEnterEvent(self, event):
- if event.mimeData().hasUrls:
- event.accept()
- else:
- event.ignore()
-
- def dragMoveEvent(self, event):
- if event.mimeData().hasUrls:
- event.accept()
- else:
- event.ignore()
-
- def dropEvent(self, event):
- if event.mimeData().hasUrls:
- event.setDropAction(QtCore.Qt.CopyAction)
- event.accept()
- for url in event.mimeData().urls():
- self.filename = str(url.toLocalFile())
-
- if self.filename == "":
- self.app.inform.emit("Cancelled.")
- else:
- extension = self.filename.lower().rpartition('.')[-1]
-
- if extension in self.app.grb_list:
- self.app.worker_task.emit({'fcn': self.app.open_gerber,
- 'params': [self.filename]})
- else:
- event.ignore()
-
- if extension in self.app.exc_list:
- self.app.worker_task.emit({'fcn': self.app.open_excellon,
- 'params': [self.filename]})
- else:
- event.ignore()
-
- if extension in self.app.gcode_list:
- self.app.worker_task.emit({'fcn': self.app.open_gcode,
- 'params': [self.filename]})
- else:
- event.ignore()
-
- if extension in self.app.svg_list:
- object_type = 'geometry'
- self.app.worker_task.emit({'fcn': self.app.import_svg,
- 'params': [self.filename, object_type, None]})
-
- if extension in self.app.dxf_list:
- object_type = 'geometry'
- self.app.worker_task.emit({'fcn': self.app.import_dxf,
- 'params': [self.filename, object_type, None]})
-
- if extension in self.app.pdf_list:
- self.app.pdf_tool.periodic_check(1000)
- self.app.worker_task.emit({'fcn': self.app.pdf_tool.open_pdf,
- 'params': [self.filename]})
-
- if extension in self.app.prj_list:
- # self.app.open_project() is not Thread Safe
- self.app.open_project(self.filename)
-
- if extension in self.app.conf_list:
- self.app.open_config_file(self.filename)
- else:
- event.ignore()
- else:
- event.ignore()
-
- def closeEvent(self, event):
- if self.app.save_in_progress:
- self.app.inform.emit('[WARNING_NOTCL] %s' % _("Application is saving the project. Please wait ..."))
- else:
- grect = self.geometry()
-
- # self.splitter.sizes()[0] is actually the size of the "notebook"
- if not self.isMaximized():
- self.geom_update.emit(grect.x(), grect.y(), grect.width(), grect.height(), self.splitter.sizes()[0])
-
- self.final_save.emit()
- event.ignore()
-
-
-class FlatCAMActivityView(QtWidgets.QWidget):
- """
- This class create and control the activity icon displayed in the App status bar
- """
-
- def __init__(self, app, parent=None):
- super().__init__(parent=parent)
-
- self.app = app
-
- if self.app.defaults["global_activity_icon"] == "Ball green":
- icon = self.app.resource_location + '/active_2_static.png'
- movie = self.app.resource_location + "/active_2.gif"
- elif self.app.defaults["global_activity_icon"] == "Ball black":
- icon = self.app.resource_location + '/active_static.png'
- movie = self.app.resource_location + "/active.gif"
- elif self.app.defaults["global_activity_icon"] == "Arrow green":
- icon = self.app.resource_location + '/active_3_static.png'
- movie = self.app.resource_location + "/active_3.gif"
- elif self.app.defaults["global_activity_icon"] == "Eclipse green":
- icon = self.app.resource_location + '/active_4_static.png'
- movie = self.app.resource_location + "/active_4.gif"
- else:
- icon = self.app.resource_location + '/active_static.png'
- movie = self.app.resource_location + "/active.gif"
-
- self.setMinimumWidth(200)
- self.movie_path = movie
- self.icon_path = icon
-
- self.icon = QtWidgets.QLabel(self)
- self.icon.setGeometry(0, 0, 16, 12)
- self.movie = QtGui.QMovie(self.movie_path)
-
- self.icon.setMovie(self.movie)
- # self.movie.start()
-
- layout = QtWidgets.QHBoxLayout()
- layout.setContentsMargins(5, 0, 5, 0)
- layout.setAlignment(QtCore.Qt.AlignLeft)
- self.setLayout(layout)
-
- layout.addWidget(self.icon)
- self.text = QtWidgets.QLabel(self)
- self.text.setText(_("Idle."))
- self.icon.setPixmap(QtGui.QPixmap(self.icon_path))
-
- layout.addWidget(self.text)
-
- def set_idle(self):
- self.movie.stop()
- self.text.setText(_("Idle."))
-
- def set_busy(self, msg, no_movie=None):
- if no_movie is not True:
- self.icon.setMovie(self.movie)
- self.movie.start()
- self.text.setText(msg)
-
-
-class FlatCAMInfoBar(QtWidgets.QWidget):
- """
- This class create a place to display the App messages in the Status Bar
- """
-
- def __init__(self, parent=None, app=None):
- super(FlatCAMInfoBar, self).__init__(parent=parent)
-
- self.app = app
-
- self.icon = QtWidgets.QLabel(self)
- self.icon.setGeometry(0, 0, 12, 12)
- self.pmap = QtGui.QPixmap(self.app.resource_location + '/graylight12.png')
- self.icon.setPixmap(self.pmap)
-
- layout = QtWidgets.QHBoxLayout()
- layout.setContentsMargins(5, 0, 5, 0)
- self.setLayout(layout)
-
- layout.addWidget(self.icon)
-
- self.text = QtWidgets.QLabel(self)
- self.text.setText(_("Application started ..."))
- self.text.setToolTip(_("Hello!"))
-
- layout.addWidget(self.text)
-
- layout.addStretch()
-
- def set_text_(self, text, color=None):
- self.text.setText(text)
- self.text.setToolTip(text)
- if color:
- self.text.setStyleSheet('color: %s' % str(color))
-
- def set_status(self, text, level="info"):
- level = str(level)
-
- self.pmap.fill()
- if level == "ERROR" or level == "ERROR_NOTCL":
- self.pmap = QtGui.QPixmap(self.app.resource_location + '/redlight12.png')
- elif level.lower() == "success":
- self.pmap = QtGui.QPixmap(self.app.resource_location + '/greenlight12.png')
- elif level == "WARNING" or level == "WARNING_NOTCL":
- self.pmap = QtGui.QPixmap(self.app.resource_location + '/yellowlight12.png')
- elif level.lower() == "selected":
- self.pmap = QtGui.QPixmap(self.app.resource_location + '/bluelight12.png')
- else:
- self.pmap = QtGui.QPixmap(self.app.resource_location + '/graylight12.png')
-
- try:
- self.set_text_(text)
- self.icon.setPixmap(self.pmap)
- except Exception as e:
- log.debug("FlatCAMInfoBar.set_status() --> %s" % str(e))
-
-
-class FlatCAMSystemTray(QtWidgets.QSystemTrayIcon):
- """
- This class create the Sys Tray icon for the app
- """
-
- def __init__(self, app, icon, headless=None, parent=None):
- # QtWidgets.QSystemTrayIcon.__init__(self, icon, parent)
- super().__init__(icon, parent=parent)
- self.app = app
-
- menu = QtWidgets.QMenu(parent)
-
- menu_runscript = QtWidgets.QAction(QtGui.QIcon(self.app.resource_location + '/script14.png'),
- '%s' % _('Run Script ...'), self)
- menu_runscript.setToolTip(
- _("Will run the opened Tcl Script thus\n"
- "enabling the automation of certain\n"
- "functions of FlatCAM.")
- )
- menu.addAction(menu_runscript)
-
- menu.addSeparator()
-
- if headless is None:
- self.menu_open = menu.addMenu(QtGui.QIcon(self.app.resource_location + '/folder32_bis.png'), _('Open'))
-
- # Open Project ...
- menu_openproject = QtWidgets.QAction(QtGui.QIcon(self.app.resource_location + '/folder16.png'),
- _('Open Project ...'), self)
- self.menu_open.addAction(menu_openproject)
- self.menu_open.addSeparator()
-
- # Open Gerber ...
- menu_opengerber = QtWidgets.QAction(QtGui.QIcon(self.app.resource_location + '/flatcam_icon24.png'),
- _('Open &Gerber ...\tCtrl+G'), self)
- self.menu_open.addAction(menu_opengerber)
-
- # Open Excellon ...
- menu_openexcellon = QtWidgets.QAction(QtGui.QIcon(self.app.resource_location + '/open_excellon32.png'),
- _('Open &Excellon ...\tCtrl+E'), self)
- self.menu_open.addAction(menu_openexcellon)
-
- # Open G-Code ...
- menu_opengcode = QtWidgets.QAction(QtGui.QIcon(self.app.resource_location + '/code.png'),
- _('Open G-&Code ...'), self)
- self.menu_open.addAction(menu_opengcode)
-
- self.menu_open.addSeparator()
-
- menu_openproject.triggered.connect(self.app.on_file_openproject)
- menu_opengerber.triggered.connect(self.app.on_fileopengerber)
- menu_openexcellon.triggered.connect(self.app.on_fileopenexcellon)
- menu_opengcode.triggered.connect(self.app.on_fileopengcode)
-
- exitAction = menu.addAction(_("Exit"))
- exitAction.setIcon(QtGui.QIcon(self.app.resource_location + '/power16.png'))
- self.setContextMenu(menu)
-
- menu_runscript.triggered.connect(lambda: self.app.on_filerunscript(
- silent=True if self.app.cmd_line_headless == 1 else False))
-
- exitAction.triggered.connect(self.app.final_save)
-
# end of file
diff --git a/flatcamGUI/ObjectUI.py b/AppGUI/ObjectUI.py
similarity index 85%
rename from flatcamGUI/ObjectUI.py
rename to AppGUI/ObjectUI.py
index c5dacb42..4c1f7abd 100644
--- a/flatcamGUI/ObjectUI.py
+++ b/AppGUI/ObjectUI.py
@@ -11,11 +11,11 @@
# Date: 3/10/2019 #
# ##########################################################
-from flatcamGUI.GUIElements import *
+from AppGUI.GUIElements import *
import sys
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -114,7 +114,7 @@ class ObjectUI(QtWidgets.QWidget):
self.common_grid.addWidget(self.transform_label, 2, 0, 1, 2)
# ### Scale ####
- self.scale_entry = FCEntry()
+ self.scale_entry = NumericalEvalEntry(border_color='#0069A9')
self.scale_entry.set_value(1.0)
self.scale_entry.setToolTip(
_("Factor by which to multiply\n"
@@ -132,7 +132,7 @@ class ObjectUI(QtWidgets.QWidget):
self.common_grid.addWidget(self.scale_button, 3, 1)
# ### Offset ####
- self.offsetvector_entry = EvalEntry2()
+ self.offsetvector_entry = NumericalEvalTupleEntry(border_color='#0069A9')
self.offsetvector_entry.setText("(0.0, 0.0)")
self.offsetvector_entry.setToolTip(
_("Amount by which to move the object\n"
@@ -153,17 +153,20 @@ class ObjectUI(QtWidgets.QWidget):
def confirmation_message(self, accepted, minval, maxval):
if accepted is False:
- self.app.inform.emit('[WARNING_NOTCL] %s: [%.*f, %.*f]' %
- (_("Edited value is out of range"), self.decimals, minval, self.decimals, maxval))
+ self.app.inform[str, bool].emit('[WARNING_NOTCL] %s: [%.*f, %.*f]' % (_("Edited value is out of range"),
+ self.decimals,
+ minval,
+ self.decimals,
+ maxval), False)
else:
- self.app.inform.emit('[success] %s' % _("Edited value is within limits."))
+ self.app.inform[str, bool].emit('[success] %s' % _("Edited value is within limits."), False)
def confirmation_message_int(self, accepted, minval, maxval):
if accepted is False:
- self.app.inform.emit('[WARNING_NOTCL] %s: [%d, %d]' %
- (_("Edited value is out of range"), minval, maxval))
+ self.app.inform[str, bool].emit('[WARNING_NOTCL] %s: [%d, %d]' %
+ (_("Edited value is out of range"), minval, maxval), False)
else:
- self.app.inform.emit('[success] %s' % _("Edited value is within limits."))
+ self.app.inform[str, bool].emit('[success] %s' % _("Edited value is within limits."), False)
class GerberObjectUI(ObjectUI):
@@ -205,27 +208,37 @@ class GerberObjectUI(ObjectUI):
self.multicolored_cb.setMinimumWidth(55)
grid0.addWidget(self.multicolored_cb, 0, 2)
- # Plot CB
- self.plot_cb = FCCheckBox('%s' % _("Plot"))
- # self.plot_cb.setLayoutDirection(QtCore.Qt.RightToLeft)
- self.plot_cb.setToolTip(_("Plot (show) this object."))
-
- grid0.addWidget(self.plot_cb, 1, 0, 1, 2)
-
# ## Object name
self.name_hlay = QtWidgets.QHBoxLayout()
- self.custom_box.addLayout(self.name_hlay)
+ grid0.addLayout(self.name_hlay, 1, 0, 1, 3)
+
name_label = QtWidgets.QLabel("%s:" % _("Name"))
self.name_entry = FCEntry()
self.name_entry.setFocusPolicy(QtCore.Qt.StrongFocus)
self.name_hlay.addWidget(name_label)
self.name_hlay.addWidget(self.name_entry)
+ # Plot CB
+ self.plot_lbl = FCLabel('%s:' % _("Plot"))
+ self.plot_lbl.setToolTip(_("Plot (show) this object."))
+ self.plot_cb = FCCheckBox()
+
+ grid0.addWidget(self.plot_lbl, 2, 0)
+ grid0.addWidget(self.plot_cb, 2, 1)
+
+ # generate follow
+ self.follow_cb = FCCheckBox('%s' % _("Follow"))
+ self.follow_cb.setToolTip(_("Generate a 'Follow' geometry.\n"
+ "This means that it will cut through\n"
+ "the middle of the trace."))
+ self.follow_cb.setMinimumWidth(55)
+ grid0.addWidget(self.follow_cb, 2, 2)
+
hlay_plot = QtWidgets.QHBoxLayout()
self.custom_box.addLayout(hlay_plot)
# ### Gerber Apertures ####
- self.apertures_table_label = QtWidgets.QLabel('%s:' % _('Apertures'))
+ self.apertures_table_label = QtWidgets.QLabel('%s:' % _('Apertures'))
self.apertures_table_label.setToolTip(
_("Apertures Table for the Gerber Object.")
)
@@ -282,254 +295,7 @@ class GerberObjectUI(ObjectUI):
# start with apertures table hidden
self.apertures_table.setVisible(False)
- separator_line = QtWidgets.QFrame()
- separator_line.setFrameShape(QtWidgets.QFrame.HLine)
- separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
- self.custom_box.addWidget(separator_line)
-
- # Isolation Routing
- self.isolation_routing_label = QtWidgets.QLabel("%s" % _("Isolation Routing"))
- self.isolation_routing_label.setToolTip(
- _("Create a Geometry object with\n"
- "toolpaths to cut outside polygons.")
- )
- self.custom_box.addWidget(self.isolation_routing_label)
-
- # ###########################################
- # ########## NEW GRID #######################
- # ###########################################
-
- grid1 = QtWidgets.QGridLayout()
- self.custom_box.addLayout(grid1)
- grid1.setColumnStretch(0, 0)
- grid1.setColumnStretch(1, 1)
- grid1.setColumnStretch(2, 1)
-
- # Tool Type
- self.tool_type_label = QtWidgets.QLabel('%s:' % _('Tool Type'))
- self.tool_type_label.setToolTip(
- _("Choose which tool to use for Gerber isolation:\n"
- "'Circular' or 'V-shape'.\n"
- "When the 'V-shape' is selected then the tool\n"
- "diameter will depend on the chosen cut depth.")
- )
- self.tool_type_radio = RadioSet([{'label': _('Circular'), 'value': 'circular'},
- {'label': _('V-Shape'), 'value': 'v'}])
-
- grid1.addWidget(self.tool_type_label, 0, 0)
- grid1.addWidget(self.tool_type_radio, 0, 1, 1, 2)
-
- # Tip Dia
- self.tipdialabel = QtWidgets.QLabel('%s:' % _('V-Tip Dia'))
- self.tipdialabel.setToolTip(
- _("The tip diameter for V-Shape Tool")
- )
- self.tipdia_spinner = FCDoubleSpinner(callback=self.confirmation_message)
- self.tipdia_spinner.set_range(-99.9999, 99.9999)
- self.tipdia_spinner.set_precision(self.decimals)
- self.tipdia_spinner.setSingleStep(0.1)
- self.tipdia_spinner.setWrapping(True)
- grid1.addWidget(self.tipdialabel, 1, 0)
- grid1.addWidget(self.tipdia_spinner, 1, 1, 1, 2)
-
- # Tip Angle
- self.tipanglelabel = QtWidgets.QLabel('%s:' % _('V-Tip Angle'))
- self.tipanglelabel.setToolTip(
- _("The tip angle for V-Shape Tool.\n"
- "In degree.")
- )
- self.tipangle_spinner = FCDoubleSpinner(callback=self.confirmation_message)
- self.tipangle_spinner.set_range(1, 180)
- self.tipangle_spinner.set_precision(self.decimals)
- self.tipangle_spinner.setSingleStep(5)
- self.tipangle_spinner.setWrapping(True)
- grid1.addWidget(self.tipanglelabel, 2, 0)
- grid1.addWidget(self.tipangle_spinner, 2, 1, 1, 2)
-
- # Cut Z
- self.cutzlabel = QtWidgets.QLabel('%s:' % _('Cut Z'))
- self.cutzlabel.setToolTip(
- _("Cutting depth (negative)\n"
- "below the copper surface.")
- )
- self.cutz_spinner = FCDoubleSpinner(callback=self.confirmation_message)
- self.cutz_spinner.set_range(-9999.9999, 0.0000)
- self.cutz_spinner.set_precision(self.decimals)
- self.cutz_spinner.setSingleStep(0.1)
- self.cutz_spinner.setWrapping(True)
- grid1.addWidget(self.cutzlabel, 3, 0)
- grid1.addWidget(self.cutz_spinner, 3, 1, 1, 2)
-
- # Tool diameter
- tdlabel = QtWidgets.QLabel('%s:' % _('Tool dia'))
- tdlabel.setToolTip(
- _("Diameter of the cutting tool.\n"
- "If you want to have an isolation path\n"
- "inside the actual shape of the Gerber\n"
- "feature, use a negative value for\n"
- "this parameter.")
- )
- tdlabel.setMinimumWidth(90)
- self.iso_tool_dia_entry = FCDoubleSpinner(callback=self.confirmation_message)
- self.iso_tool_dia_entry.set_range(-9999.9999, 9999.9999)
- self.iso_tool_dia_entry.set_precision(self.decimals)
- self.iso_tool_dia_entry.setSingleStep(0.1)
-
- grid1.addWidget(tdlabel, 4, 0)
- grid1.addWidget(self.iso_tool_dia_entry, 4, 1, 1, 2)
-
- # Number of Passes
- passlabel = QtWidgets.QLabel('%s:' % _('# Passes'))
- passlabel.setToolTip(
- _("Width of the isolation gap in\n"
- "number (integer) of tool widths.")
- )
- passlabel.setMinimumWidth(90)
- self.iso_width_entry = FCSpinner(callback=self.confirmation_message_int)
- self.iso_width_entry.set_range(1, 999)
-
- grid1.addWidget(passlabel, 5, 0)
- grid1.addWidget(self.iso_width_entry, 5, 1, 1, 2)
-
- # Pass overlap
- overlabel = QtWidgets.QLabel('%s:' % _('Pass overlap'))
- overlabel.setToolTip(
- _("How much (percentage) of the tool width to overlap each tool pass.")
- )
- overlabel.setMinimumWidth(90)
- self.iso_overlap_entry = FCDoubleSpinner(suffix='%', callback=self.confirmation_message)
- self.iso_overlap_entry.set_precision(self.decimals)
- self.iso_overlap_entry.setWrapping(True)
- self.iso_overlap_entry.set_range(0.0000, 99.9999)
- self.iso_overlap_entry.setSingleStep(0.1)
- grid1.addWidget(overlabel, 6, 0)
- grid1.addWidget(self.iso_overlap_entry, 6, 1, 1, 2)
-
- # Milling Type Radio Button
- self.milling_type_label = QtWidgets.QLabel('%s:' % _('Milling Type'))
- self.milling_type_label.setToolTip(
- _("Milling type:\n"
- "- climb / best for precision milling and to reduce tool usage\n"
- "- conventional / useful when there is no backlash compensation")
- )
- self.milling_type_radio = RadioSet([{'label': _('Climb'), 'value': 'cl'},
- {'label': _('Conventional'), 'value': 'cv'}])
- grid1.addWidget(self.milling_type_label, 7, 0)
- grid1.addWidget(self.milling_type_radio, 7, 1, 1, 2)
-
- # combine all passes CB
- self.combine_passes_cb = FCCheckBox(label=_('Combine'))
- self.combine_passes_cb.setToolTip(
- _("Combine all passes into one object")
- )
-
- # generate follow
- self.follow_cb = FCCheckBox(label=_('"Follow"'))
- self.follow_cb.setToolTip(_("Generate a 'Follow' geometry.\n"
- "This means that it will cut through\n"
- "the middle of the trace."))
- grid1.addWidget(self.combine_passes_cb, 8, 0)
-
- # avoid an area from isolation
- self.except_cb = FCCheckBox(label=_('Except'))
- grid1.addWidget(self.follow_cb, 8, 1)
-
- self.except_cb.setToolTip(_("When the isolation geometry is generated,\n"
- "by checking this, the area of the object below\n"
- "will be subtracted from the isolation geometry."))
- grid1.addWidget(self.except_cb, 8, 2)
-
- # ## Form Layout
- form_layout = QtWidgets.QFormLayout()
- grid1.addLayout(form_layout, 9, 0, 1, 3)
-
- # ################################################
- # ##### Type of object to be excepted ############
- # ################################################
- self.type_obj_combo = FCComboBox()
- self.type_obj_combo.addItems([_("Gerber"), _("Geometry")])
-
- # we get rid of item1 ("Excellon") as it is not suitable
- # self.type_obj_combo.view().setRowHidden(1, True)
- self.type_obj_combo.setItemIcon(0, QtGui.QIcon(self.resource_loc + "/flatcam_icon16.png"))
- self.type_obj_combo.setItemIcon(1, QtGui.QIcon(self.resource_loc + "/geometry16.png"))
-
- self.type_obj_combo_label = QtWidgets.QLabel('%s:' % _("Obj Type"))
- self.type_obj_combo_label.setToolTip(
- _("Specify the type of object to be excepted from isolation.\n"
- "It can be of type: Gerber or Geometry.\n"
- "What is selected here will dictate the kind\n"
- "of objects that will populate the 'Object' combobox.")
- )
- # self.type_obj_combo_label.setMinimumWidth(60)
- form_layout.addRow(self.type_obj_combo_label, self.type_obj_combo)
-
- # ################################################
- # ##### The object to be excepted ################
- # ################################################
- self.obj_combo = FCComboBox()
-
- self.obj_label = QtWidgets.QLabel('%s:' % _("Object"))
- self.obj_label.setToolTip(_("Object whose area will be removed from isolation geometry."))
-
- form_layout.addRow(self.obj_label, self.obj_combo)
-
- # ---------------------------------------------- #
- # --------- Isolation scope -------------------- #
- # ---------------------------------------------- #
- self.iso_scope_label = QtWidgets.QLabel('%s:' % _('Scope'))
- self.iso_scope_label.setToolTip(
- _("Isolation scope. Choose what to isolate:\n"
- "- 'All' -> Isolate all the polygons in the object\n"
- "- 'Selection' -> Isolate a selection of polygons.")
- )
- self.iso_scope_radio = RadioSet([{'label': _('All'), 'value': 'all'},
- {'label': _('Selection'), 'value': 'single'}])
-
- grid1.addWidget(self.iso_scope_label, 10, 0)
- grid1.addWidget(self.iso_scope_radio, 10, 1, 1, 2)
-
- # ---------------------------------------------- #
- # --------- Isolation type -------------------- #
- # ---------------------------------------------- #
- self.iso_type_label = QtWidgets.QLabel('%s:' % _('Isolation Type'))
- self.iso_type_label.setToolTip(
- _("Choose how the isolation will be executed:\n"
- "- 'Full' -> complete isolation of polygons\n"
- "- 'Ext' -> will isolate only on the outside\n"
- "- 'Int' -> will isolate only on the inside\n"
- "'Exterior' isolation is almost always possible\n"
- "(with the right tool) but 'Interior'\n"
- "isolation can be done only when there is an opening\n"
- "inside of the polygon (e.g polygon is a 'doughnut' shape).")
- )
- self.iso_type_radio = RadioSet([{'label': _('Full'), 'value': 'full'},
- {'label': _('Ext'), 'value': 'ext'},
- {'label': _('Int'), 'value': 'int'}])
-
- grid1.addWidget(self.iso_type_label, 11, 0)
- grid1.addWidget(self.iso_type_radio, 11, 1, 1, 2)
-
- self.generate_iso_button = QtWidgets.QPushButton("%s" % _("Generate Isolation Geometry"))
- self.generate_iso_button.setStyleSheet("""
- QPushButton
- {
- font-weight: bold;
- }
- """)
- self.generate_iso_button.setToolTip(
- _("Create a Geometry object with toolpaths to cut \n"
- "isolation outside, inside or on both sides of the\n"
- "object. For a Gerber object outside means outside\n"
- "of the Gerber feature and inside means inside of\n"
- "the Gerber feature, if possible at all. This means\n"
- "that only if the Gerber feature has openings inside, they\n"
- "will be isolated. If what is wanted is to cut isolation\n"
- "inside the actual Gerber feature, use a negative tool\n"
- "diameter above.")
- )
- grid1.addWidget(self.generate_iso_button, 12, 0, 1, 3)
-
+ # Buffer Geometry
self.create_buffer_button = QtWidgets.QPushButton(_('Buffer Solid Geometry'))
self.create_buffer_button.setToolTip(
_("This button is shown only when the Gerber file\n"
@@ -537,19 +303,12 @@ class GerberObjectUI(ObjectUI):
"Clicking this will create the buffered geometry\n"
"required for isolation.")
)
- grid1.addWidget(self.create_buffer_button, 13, 0, 1, 3)
+ self.custom_box.addWidget(self.create_buffer_button)
- self.ohis_iso = OptionalHideInputSection(
- self.except_cb,
- [self.type_obj_combo, self.type_obj_combo_label, self.obj_combo, self.obj_label],
- logic=True
- )
-
- separator_line2 = QtWidgets.QFrame()
- separator_line2.setFrameShape(QtWidgets.QFrame.HLine)
- separator_line2.setFrameShadow(QtWidgets.QFrame.Sunken)
- grid1.addWidget(separator_line2, 14, 0, 1, 3)
- # grid1.addWidget(QtWidgets.QLabel(''), 15, 0)
+ separator_line = QtWidgets.QFrame()
+ separator_line.setFrameShape(QtWidgets.QFrame.HLine)
+ separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
+ self.custom_box.addWidget(separator_line)
# ###########################################
# ########## NEW GRID #######################
@@ -563,14 +322,21 @@ class GerberObjectUI(ObjectUI):
self.tool_lbl = QtWidgets.QLabel('%s' % _("TOOLS"))
grid2.addWidget(self.tool_lbl, 0, 0, 1, 2)
- # ## Clear non-copper regions
- self.clearcopper_label = QtWidgets.QLabel("%s" % _("Clear N-copper"))
- self.clearcopper_label.setToolTip(
+ # Isolation Tool - will create isolation paths around the copper features
+ self.iso_button = QtWidgets.QPushButton(_('Isolation Routing'))
+ self.iso_button.setToolTip(
_("Create a Geometry object with\n"
- "toolpaths to cut all non-copper regions.")
+ "toolpaths to cut around polygons.")
)
- self.clearcopper_label.setMinimumWidth(90)
+ self.iso_button.setStyleSheet("""
+ QPushButton
+ {
+ font-weight: bold;
+ }
+ """)
+ grid2.addWidget(self.iso_button, 1, 0, 1, 2)
+ # ## Clear non-copper regions
self.generate_ncc_button = QtWidgets.QPushButton(_('NCC Tool'))
self.generate_ncc_button.setToolTip(
_("Create the Geometry Object\n"
@@ -582,17 +348,9 @@ class GerberObjectUI(ObjectUI):
font-weight: bold;
}
""")
- grid2.addWidget(self.clearcopper_label, 1, 0)
- grid2.addWidget(self.generate_ncc_button, 1, 1)
+ grid2.addWidget(self.generate_ncc_button, 2, 0, 1, 2)
# ## Board cutout
- self.board_cutout_label = QtWidgets.QLabel("%s" % _("Board cutout"))
- self.board_cutout_label.setToolTip(
- _("Create toolpaths to cut around\n"
- "the PCB and separate it from\n"
- "the original board.")
- )
-
self.generate_cutout_button = QtWidgets.QPushButton(_('Cutout Tool'))
self.generate_cutout_button.setToolTip(
_("Generate the geometry for\n"
@@ -604,13 +362,12 @@ class GerberObjectUI(ObjectUI):
font-weight: bold;
}
""")
- grid2.addWidget(self.board_cutout_label, 2, 0)
- grid2.addWidget(self.generate_cutout_button, 2, 1)
+ grid2.addWidget(self.generate_cutout_button, 3, 0, 1, 2)
separator_line = QtWidgets.QFrame()
separator_line.setFrameShape(QtWidgets.QFrame.HLine)
separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
- grid2.addWidget(separator_line, 3, 0, 1, 2)
+ grid2.addWidget(separator_line, 4, 0, 1, 2)
# ## Non-copper regions
self.noncopper_label = QtWidgets.QLabel("%s" % _("Non-copper regions"))
@@ -622,7 +379,7 @@ class GerberObjectUI(ObjectUI):
"copper from a specified region.")
)
- grid2.addWidget(self.noncopper_label, 4, 0, 1, 2)
+ grid2.addWidget(self.noncopper_label, 5, 0, 1, 2)
# Margin
bmlabel = QtWidgets.QLabel('%s:' % _('Boundary Margin'))
@@ -638,8 +395,8 @@ class GerberObjectUI(ObjectUI):
self.noncopper_margin_entry.set_precision(self.decimals)
self.noncopper_margin_entry.setSingleStep(0.1)
- grid2.addWidget(bmlabel, 5, 0)
- grid2.addWidget(self.noncopper_margin_entry, 5, 1)
+ grid2.addWidget(bmlabel, 6, 0)
+ grid2.addWidget(self.noncopper_margin_entry, 6, 1)
# Rounded corners
self.noncopper_rounded_cb = FCCheckBox(label=_("Rounded Geo"))
@@ -649,13 +406,13 @@ class GerberObjectUI(ObjectUI):
self.noncopper_rounded_cb.setMinimumWidth(90)
self.generate_noncopper_button = QtWidgets.QPushButton(_('Generate Geo'))
- grid2.addWidget(self.noncopper_rounded_cb, 6, 0)
- grid2.addWidget(self.generate_noncopper_button, 6, 1)
+ grid2.addWidget(self.noncopper_rounded_cb, 7, 0)
+ grid2.addWidget(self.generate_noncopper_button, 7, 1)
separator_line1 = QtWidgets.QFrame()
separator_line1.setFrameShape(QtWidgets.QFrame.HLine)
separator_line1.setFrameShadow(QtWidgets.QFrame.Sunken)
- grid2.addWidget(separator_line1, 7, 0, 1, 2)
+ grid2.addWidget(separator_line1, 8, 0, 1, 2)
# ## Bounding box
self.boundingbox_label = QtWidgets.QLabel('%s' % _('Bounding Box'))
@@ -664,7 +421,7 @@ class GerberObjectUI(ObjectUI):
"Square shape.")
)
- grid2.addWidget(self.boundingbox_label, 8, 0, 1, 2)
+ grid2.addWidget(self.boundingbox_label, 9, 0, 1, 2)
bbmargin = QtWidgets.QLabel('%s:' % _('Boundary Margin'))
bbmargin.setToolTip(
@@ -677,8 +434,8 @@ class GerberObjectUI(ObjectUI):
self.bbmargin_entry.set_precision(self.decimals)
self.bbmargin_entry.setSingleStep(0.1)
- grid2.addWidget(bbmargin, 9, 0)
- grid2.addWidget(self.bbmargin_entry, 9, 1)
+ grid2.addWidget(bbmargin, 10, 0)
+ grid2.addWidget(self.bbmargin_entry, 10, 1)
self.bbrounded_cb = FCCheckBox(label=_("Rounded Geo"))
self.bbrounded_cb.setToolTip(
@@ -693,8 +450,8 @@ class GerberObjectUI(ObjectUI):
self.generate_bb_button.setToolTip(
_("Generate the Geometry object.")
)
- grid2.addWidget(self.bbrounded_cb, 10, 0)
- grid2.addWidget(self.generate_bb_button, 10, 1)
+ grid2.addWidget(self.bbrounded_cb, 11, 0)
+ grid2.addWidget(self.generate_bb_button, 11, 1)
class ExcellonObjectUI(ObjectUI):
@@ -723,22 +480,38 @@ class ExcellonObjectUI(ObjectUI):
parent=parent,
app=self.app)
- # ### Plot options ####
- hlay_plot = QtWidgets.QHBoxLayout()
- self.custom_box.addLayout(hlay_plot)
+ # Plot options
+ grid_h = QtWidgets.QGridLayout()
+ grid_h.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter)
+ self.custom_box.addLayout(grid_h)
+ grid_h.setColumnStretch(0, 0)
+ grid_h.setColumnStretch(1, 1)
self.plot_options_label = QtWidgets.QLabel("%s:" % _("Plot Options"))
+ self.plot_options_label.setMinimumWidth(90)
+
+ grid_h.addWidget(self.plot_options_label, 0, 0)
+
+ # Solid CB
self.solid_cb = FCCheckBox(label=_('Solid'))
self.solid_cb.setToolTip(
_("Solid circles.")
)
- hlay_plot.addWidget(self.plot_options_label)
- hlay_plot.addStretch()
- hlay_plot.addWidget(self.solid_cb)
+ self.solid_cb.setMinimumWidth(50)
+ grid_h.addWidget(self.solid_cb, 0, 1)
+
+ # Multicolored CB
+ self.multicolored_cb = FCCheckBox(label=_('Multi-Color'))
+ self.multicolored_cb.setToolTip(
+ _("Draw polygons in different colors.")
+ )
+ self.multicolored_cb.setMinimumWidth(55)
+ grid_h.addWidget(self.multicolored_cb, 0, 2)
# ## Object name
self.name_hlay = QtWidgets.QHBoxLayout()
- self.custom_box.addLayout(self.name_hlay)
+ grid_h.addLayout(self.name_hlay, 1, 0, 1, 3)
+
name_label = QtWidgets.QLabel("%s:" % _("Name"))
self.name_entry = FCEntry()
self.name_entry.setFocusPolicy(QtCore.Qt.StrongFocus)
@@ -1292,10 +1065,112 @@ class ExcellonObjectUI(ObjectUI):
self.grid5.addWidget(pp_geo_label, 16, 0)
self.grid5.addWidget(self.pp_geo_name_cb, 16, 1)
+ # ------------------------------------------------------------------------------------------------------------
+ # ------------------------- EXCLUSION AREAS ------------------------------------------------------------------
+ # ------------------------------------------------------------------------------------------------------------
+
+ # Exclusion Areas
+ self.exclusion_cb = FCCheckBox('%s' % _("Add exclusion areas"))
+ self.exclusion_cb.setToolTip(
+ _(
+ "Include exclusion areas.\n"
+ "In those areas the travel of the tools\n"
+ "is forbidden."
+ )
+ )
+ self.grid5.addWidget(self.exclusion_cb, 20, 0, 1, 2)
+
+ self.exclusion_frame = QtWidgets.QFrame()
+ self.exclusion_frame.setContentsMargins(0, 0, 0, 0)
+ self.grid5.addWidget(self.exclusion_frame, 22, 0, 1, 2)
+
+ self.exclusion_box = QtWidgets.QVBoxLayout()
+ self.exclusion_box.setContentsMargins(0, 0, 0, 0)
+ self.exclusion_frame.setLayout(self.exclusion_box)
+
+ self.exclusion_table = FCTable()
+ self.exclusion_box.addWidget(self.exclusion_table)
+ self.exclusion_table.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustToContents)
+
+ self.exclusion_table.setColumnCount(4)
+ self.exclusion_table.setColumnWidth(0, 20)
+ self.exclusion_table.setHorizontalHeaderLabels(['#', _('Object'), _('Strategy'), _('Over Z')])
+
+ self.exclusion_table.horizontalHeaderItem(0).setToolTip(_("This is the Area ID."))
+ self.exclusion_table.horizontalHeaderItem(1).setToolTip(
+ _("Type of the object where the exclusion area was added."))
+ self.exclusion_table.horizontalHeaderItem(2).setToolTip(
+ _("The strategy used for exclusion area. Go around the exclusion areas or over it."))
+ self.exclusion_table.horizontalHeaderItem(3).setToolTip(
+ _("If the strategy is to go over the area then this is the height at which the tool will go to avoid the "
+ "exclusion area."))
+
+ self.exclusion_table.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)
+
+ grid_a1 = QtWidgets.QGridLayout()
+ grid_a1.setColumnStretch(0, 0)
+ grid_a1.setColumnStretch(1, 1)
+ self.exclusion_box.addLayout(grid_a1)
+
+ # Chose Strategy
+ self.strategy_label = FCLabel('%s:' % _("Strategy"))
+ self.strategy_label.setToolTip(_("The strategy followed when encountering an exclusion area.\n"
+ "Can be:\n"
+ "- Over -> when encountering the area, the tool will go to a set height\n"
+ "- Around -> will avoid the exclusion area by going around the area"))
+ self.strategy_radio = RadioSet([{'label': _('Over'), 'value': 'over'},
+ {'label': _('Around'), 'value': 'around'}])
+
+ grid_a1.addWidget(self.strategy_label, 1, 0)
+ grid_a1.addWidget(self.strategy_radio, 1, 1)
+
+ # Over Z
+ self.over_z_label = FCLabel('%s:' % _("Over Z"))
+ self.over_z_label.setToolTip(_("The height Z to which the tool will rise in order to avoid\n"
+ "an interdiction area."))
+ self.over_z_entry = FCDoubleSpinner()
+ self.over_z_entry.set_range(0.000, 9999.9999)
+ self.over_z_entry.set_precision(self.decimals)
+
+ grid_a1.addWidget(self.over_z_label, 2, 0)
+ grid_a1.addWidget(self.over_z_entry, 2, 1)
+
+ # Button Add Area
+ self.add_area_button = QtWidgets.QPushButton(_('Add area:'))
+ self.add_area_button.setToolTip(_("Add an Exclusion Area."))
+
+ # Area Selection shape
+ self.area_shape_radio = RadioSet([{'label': _("Square"), 'value': 'square'},
+ {'label': _("Polygon"), 'value': 'polygon'}])
+ self.area_shape_radio.setToolTip(
+ _("The kind of selection shape used for area selection.")
+ )
+
+ grid_a1.addWidget(self.add_area_button, 4, 0)
+ grid_a1.addWidget(self.area_shape_radio, 4, 1)
+
+ h_lay_1 = QtWidgets.QHBoxLayout()
+ self.exclusion_box.addLayout(h_lay_1)
+
+ # Button Delete All Areas
+ self.delete_area_button = QtWidgets.QPushButton(_('Delete All'))
+ self.delete_area_button.setToolTip(_("Delete all exclusion areas."))
+
+ # Button Delete Selected Areas
+ self.delete_sel_area_button = QtWidgets.QPushButton(_('Delete Selected'))
+ self.delete_sel_area_button.setToolTip(_("Delete all exclusion areas that are selected in the table."))
+
+ h_lay_1.addWidget(self.delete_area_button)
+ h_lay_1.addWidget(self.delete_sel_area_button)
+
+ self.ois_exclusion_exc = OptionalHideInputSection(self.exclusion_cb, [self.exclusion_frame])
+ # -------------------------- EXCLUSION AREAS END -------------------------------------------------------------
+ # ------------------------------------------------------------------------------------------------------------
+
separator_line = QtWidgets.QFrame()
separator_line.setFrameShape(QtWidgets.QFrame.HLine)
separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
- self.grid5.addWidget(separator_line, 17, 0, 1, 2)
+ self.grid5.addWidget(separator_line, 25, 0, 1, 2)
# #################################################################
# ################# GRID LAYOUT 6 ###############################
@@ -1312,7 +1187,7 @@ class ExcellonObjectUI(ObjectUI):
"for custom selection of tools."
))
- self.grid6.addWidget(QtWidgets.QLabel(''), 1, 0, 1, 3)
+ # self.grid6.addWidget(QtWidgets.QLabel(''), 1, 0, 1, 3)
self.grid6.addWidget(warning_lbl, 2, 0, 1, 3)
self.generate_cnc_button = QtWidgets.QPushButton(_('Generate CNCJob object'))
@@ -1423,12 +1298,28 @@ class GeometryObjectUI(ObjectUI):
)
# Plot options
+ grid_header = QtWidgets.QGridLayout()
+ grid_header.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter)
+ self.custom_box.addLayout(grid_header)
+ grid_header.setColumnStretch(0, 0)
+ grid_header.setColumnStretch(1, 1)
+
self.plot_options_label = QtWidgets.QLabel("%s:" % _("Plot Options"))
- self.custom_box.addWidget(self.plot_options_label)
+ self.plot_options_label.setMinimumWidth(90)
+
+ grid_header.addWidget(self.plot_options_label, 0, 0)
+
+ # Multicolored CB
+ self.multicolored_cb = FCCheckBox(label=_('Multi-Color'))
+ self.multicolored_cb.setToolTip(
+ _("Draw polygons in different colors.")
+ )
+ self.multicolored_cb.setMinimumWidth(55)
+ grid_header.addWidget(self.multicolored_cb, 0, 2)
# ## Object name
self.name_hlay = QtWidgets.QHBoxLayout()
- self.custom_box.addLayout(self.name_hlay)
+ grid_header.addLayout(self.name_hlay, 1, 0, 1, 3)
name_label = QtWidgets.QLabel("%s:" % _("Name"))
self.name_entry = FCEntry()
@@ -1592,19 +1483,24 @@ class GeometryObjectUI(ObjectUI):
grid1.addWidget(self.addtool_entry_lbl, 3, 0)
grid1.addWidget(self.addtool_entry, 3, 1)
+ bhlay = QtWidgets.QHBoxLayout()
+
self.addtool_btn = QtWidgets.QPushButton(_('Add'))
self.addtool_btn.setToolTip(
_("Add a new tool to the Tool Table\n"
- "with the specified diameter.")
+ "with the diameter specified above.")
)
- grid1.addWidget(self.addtool_btn, 4, 0, 1, 2)
self.addtool_from_db_btn = QtWidgets.QPushButton(_('Add from DB'))
self.addtool_from_db_btn.setToolTip(
_("Add a new tool to the Tool Table\n"
"from the Tool DataBase.")
)
- grid1.addWidget(self.addtool_from_db_btn, 7, 0, 1, 2)
+
+ bhlay.addWidget(self.addtool_btn)
+ bhlay.addWidget(self.addtool_from_db_btn)
+
+ grid1.addLayout(bhlay, 5, 0, 1, 2)
separator_line = QtWidgets.QFrame()
separator_line.setFrameShape(QtWidgets.QFrame.HLine)
@@ -1652,10 +1548,10 @@ class GeometryObjectUI(ObjectUI):
# ################# GRID LAYOUT 3 ###############################
# #################################################################
- grid3 = QtWidgets.QGridLayout()
- grid3.setColumnStretch(0, 0)
- grid3.setColumnStretch(1, 1)
- self.geo_param_box.addLayout(grid3)
+ self.grid3 = QtWidgets.QGridLayout()
+ self.grid3.setColumnStretch(0, 0)
+ self.grid3.setColumnStretch(1, 1)
+ self.geo_param_box.addLayout(self.grid3)
# ### Tools Data ## ##
self.tool_data_label = QtWidgets.QLabel(
@@ -1666,7 +1562,7 @@ class GeometryObjectUI(ObjectUI):
"Each tool store it's own set of such data."
)
)
- grid3.addWidget(self.tool_data_label, 0, 0, 1, 2)
+ self.grid3.addWidget(self.tool_data_label, 0, 0, 1, 2)
# Tip Dia
self.tipdialabel = QtWidgets.QLabel('%s:' % _('V-Tip Dia'))
@@ -1680,8 +1576,8 @@ class GeometryObjectUI(ObjectUI):
self.tipdia_entry.set_range(0.00001, 9999.9999)
self.tipdia_entry.setSingleStep(0.1)
- grid3.addWidget(self.tipdialabel, 1, 0)
- grid3.addWidget(self.tipdia_entry, 1, 1)
+ self.grid3.addWidget(self.tipdialabel, 1, 0)
+ self.grid3.addWidget(self.tipdia_entry, 1, 1)
# Tip Angle
self.tipanglelabel = QtWidgets.QLabel('%s:' % _('V-Tip Angle'))
@@ -1696,8 +1592,8 @@ class GeometryObjectUI(ObjectUI):
self.tipangle_entry.set_range(1.0, 180.0)
self.tipangle_entry.setSingleStep(1)
- grid3.addWidget(self.tipanglelabel, 2, 0)
- grid3.addWidget(self.tipangle_entry, 2, 1)
+ self.grid3.addWidget(self.tipanglelabel, 2, 0)
+ self.grid3.addWidget(self.tipangle_entry, 2, 1)
# Cut Z
self.cutzlabel = QtWidgets.QLabel('%s:' % _('Cut Z'))
@@ -1717,8 +1613,8 @@ class GeometryObjectUI(ObjectUI):
self.cutz_entry.setSingleStep(0.1)
- grid3.addWidget(self.cutzlabel, 3, 0)
- grid3.addWidget(self.cutz_entry, 3, 1)
+ self.grid3.addWidget(self.cutzlabel, 3, 0)
+ self.grid3.addWidget(self.cutz_entry, 3, 1)
# Multi-pass
self.mpass_cb = FCCheckBox('%s:' % _("Multi-Depth"))
@@ -1743,8 +1639,8 @@ class GeometryObjectUI(ObjectUI):
)
self.ois_mpass_geo = OptionalInputSection(self.mpass_cb, [self.maxdepth_entry])
- grid3.addWidget(self.mpass_cb, 4, 0)
- grid3.addWidget(self.maxdepth_entry, 4, 1)
+ self.grid3.addWidget(self.mpass_cb, 4, 0)
+ self.grid3.addWidget(self.maxdepth_entry, 4, 1)
# Travel Z
self.travelzlabel = QtWidgets.QLabel('%s:' % _('Travel Z'))
@@ -1762,8 +1658,8 @@ class GeometryObjectUI(ObjectUI):
self.travelz_entry.setSingleStep(0.1)
- grid3.addWidget(self.travelzlabel, 5, 0)
- grid3.addWidget(self.travelz_entry, 5, 1)
+ self.grid3.addWidget(self.travelzlabel, 5, 0)
+ self.grid3.addWidget(self.travelz_entry, 5, 1)
# Feedrate X-Y
self.frlabel = QtWidgets.QLabel('%s:' % _('Feedrate X-Y'))
@@ -1776,8 +1672,8 @@ class GeometryObjectUI(ObjectUI):
self.cncfeedrate_entry.set_range(0, 99999.9999)
self.cncfeedrate_entry.setSingleStep(0.1)
- grid3.addWidget(self.frlabel, 10, 0)
- grid3.addWidget(self.cncfeedrate_entry, 10, 1)
+ self.grid3.addWidget(self.frlabel, 10, 0)
+ self.grid3.addWidget(self.cncfeedrate_entry, 10, 1)
# Feedrate Z (Plunge)
self.frzlabel = QtWidgets.QLabel('%s:' % _('Feedrate Z'))
@@ -1791,8 +1687,8 @@ class GeometryObjectUI(ObjectUI):
self.feedrate_z_entry.set_range(0, 99999.9999)
self.feedrate_z_entry.setSingleStep(0.1)
- grid3.addWidget(self.frzlabel, 11, 0)
- grid3.addWidget(self.feedrate_z_entry, 11, 1)
+ self.grid3.addWidget(self.frzlabel, 11, 0)
+ self.grid3.addWidget(self.feedrate_z_entry, 11, 1)
# Feedrate rapids
self.fr_rapidlabel = QtWidgets.QLabel('%s:' % _('Feedrate Rapids'))
@@ -1808,8 +1704,8 @@ class GeometryObjectUI(ObjectUI):
self.feedrate_rapid_entry.set_range(0, 99999.9999)
self.feedrate_rapid_entry.setSingleStep(0.1)
- grid3.addWidget(self.fr_rapidlabel, 12, 0)
- grid3.addWidget(self.feedrate_rapid_entry, 12, 1)
+ self.grid3.addWidget(self.fr_rapidlabel, 12, 0)
+ self.grid3.addWidget(self.feedrate_rapid_entry, 12, 1)
# default values is to hide
self.fr_rapidlabel.hide()
self.feedrate_rapid_entry.hide()
@@ -1834,8 +1730,8 @@ class GeometryObjectUI(ObjectUI):
"meet with last cut, we generate an\n"
"extended cut over the first cut section.")
)
- grid3.addWidget(self.extracut_cb, 13, 0)
- grid3.addWidget(self.e_cut_entry, 13, 1)
+ self.grid3.addWidget(self.extracut_cb, 13, 0)
+ self.grid3.addWidget(self.e_cut_entry, 13, 1)
# Spindlespeed
self.spindle_label = QtWidgets.QLabel('%s:' % _('Spindle speed'))
@@ -1850,8 +1746,8 @@ class GeometryObjectUI(ObjectUI):
self.cncspindlespeed_entry.set_range(0, 1000000)
self.cncspindlespeed_entry.set_step(100)
- grid3.addWidget(self.spindle_label, 14, 0)
- grid3.addWidget(self.cncspindlespeed_entry, 14, 1)
+ self.grid3.addWidget(self.spindle_label, 14, 0)
+ self.grid3.addWidget(self.cncspindlespeed_entry, 14, 1)
# Dwell
self.dwell_cb = FCCheckBox('%s:' % _('Dwell'))
@@ -1871,8 +1767,8 @@ class GeometryObjectUI(ObjectUI):
)
self.ois_dwell_geo = OptionalInputSection(self.dwell_cb, [self.dwelltime_entry])
- grid3.addWidget(self.dwell_cb, 15, 0)
- grid3.addWidget(self.dwelltime_entry, 15, 1)
+ self.grid3.addWidget(self.dwell_cb, 15, 0)
+ self.grid3.addWidget(self.dwelltime_entry, 15, 1)
# Probe depth
self.pdepth_label = QtWidgets.QLabel('%s:' % _("Probe Z depth"))
@@ -1885,8 +1781,8 @@ class GeometryObjectUI(ObjectUI):
self.pdepth_entry.set_range(-9999.9999, 9999.9999)
self.pdepth_entry.setSingleStep(0.1)
- grid3.addWidget(self.pdepth_label, 17, 0)
- grid3.addWidget(self.pdepth_entry, 17, 1)
+ self.grid3.addWidget(self.pdepth_label, 17, 0)
+ self.grid3.addWidget(self.pdepth_entry, 17, 1)
self.pdepth_label.hide()
self.pdepth_entry.setVisible(False)
@@ -1901,8 +1797,8 @@ class GeometryObjectUI(ObjectUI):
self.feedrate_probe_entry.set_range(0.0, 9999.9999)
self.feedrate_probe_entry.setSingleStep(0.1)
- grid3.addWidget(self.feedrate_probe_label, 18, 0)
- grid3.addWidget(self.feedrate_probe_entry, 18, 1)
+ self.grid3.addWidget(self.feedrate_probe_label, 18, 0)
+ self.grid3.addWidget(self.feedrate_probe_entry, 18, 1)
self.feedrate_probe_label.hide()
self.feedrate_probe_entry.setVisible(False)
@@ -2024,8 +1920,12 @@ class GeometryObjectUI(ObjectUI):
# grid4.addWidget(QtWidgets.QLabel(''), 12, 0, 1, 2)
+ # ------------------------------------------------------------------------------------------------------------
+ # ------------------------- EXCLUSION AREAS ------------------------------------------------------------------
+ # ------------------------------------------------------------------------------------------------------------
+
# Exclusion Areas
- self.exclusion_cb = FCCheckBox('%s:' % _("Exclusion areas"))
+ self.exclusion_cb = FCCheckBox('%s' % _("Add exclusion areas"))
self.exclusion_cb.setToolTip(
_(
"Include exclusion areas.\n"
@@ -2035,9 +1935,6 @@ class GeometryObjectUI(ObjectUI):
)
grid4.addWidget(self.exclusion_cb, 12, 0, 1, 2)
- # ------------------------------------------------------------------------------------------------------------
- # ------------------------- EXCLUSION AREAS ------------------------------------------------------------------
- # ------------------------------------------------------------------------------------------------------------
self.exclusion_frame = QtWidgets.QFrame()
self.exclusion_frame.setContentsMargins(0, 0, 0, 0)
grid4.addWidget(self.exclusion_frame, 14, 0, 1, 2)
@@ -2046,35 +1943,29 @@ class GeometryObjectUI(ObjectUI):
self.exclusion_box.setContentsMargins(0, 0, 0, 0)
self.exclusion_frame.setLayout(self.exclusion_box)
- h_lay = QtWidgets.QHBoxLayout()
- self.exclusion_box.addLayout(h_lay)
+ self.exclusion_table = FCTable()
+ self.exclusion_box.addWidget(self.exclusion_table)
+ self.exclusion_table.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustToContents)
- # Button Add Area
- self.add_area_button = QtWidgets.QPushButton(_('Add area'))
- self.add_area_button.setToolTip(_("Add an Exclusion Area."))
- h_lay.addWidget(self.add_area_button)
+ self.exclusion_table.setColumnCount(4)
+ self.exclusion_table.setColumnWidth(0, 20)
+ self.exclusion_table.setHorizontalHeaderLabels(['#', _('Object'), _('Strategy'), _('Over Z')])
- # Button Delete Area
- self.delete_area_button = QtWidgets.QPushButton(_('Clear areas'))
- self.delete_area_button.setToolTip(_("Delete all exclusion areas."))
- h_lay.addWidget(self.delete_area_button)
+ self.exclusion_table.horizontalHeaderItem(0).setToolTip(_("This is the Area ID."))
+ self.exclusion_table.horizontalHeaderItem(1).setToolTip(
+ _("Type of the object where the exclusion area was added."))
+ self.exclusion_table.horizontalHeaderItem(2).setToolTip(
+ _("The strategy used for exclusion area. Go around the exclusion areas or over it."))
+ self.exclusion_table.horizontalHeaderItem(3).setToolTip(
+ _("If the strategy is to go over the area then this is the height at which the tool will go to avoid the "
+ "exclusion area."))
- grid_l = QtWidgets.QGridLayout()
- grid_l.setColumnStretch(0, 0)
- grid_l.setColumnStretch(1, 1)
- self.exclusion_box.addLayout(grid_l)
+ self.exclusion_table.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)
- # Area Selection shape
- self.area_shape_label = QtWidgets.QLabel('%s:' % _("Shape"))
- self.area_shape_label.setToolTip(
- _("The kind of selection shape used for area selection.")
- )
-
- self.area_shape_radio = RadioSet([{'label': _("Square"), 'value': 'square'},
- {'label': _("Polygon"), 'value': 'polygon'}])
-
- grid_l.addWidget(self.area_shape_label, 0, 0)
- grid_l.addWidget(self.area_shape_radio, 0, 1)
+ grid_a1 = QtWidgets.QGridLayout()
+ grid_a1.setColumnStretch(0, 0)
+ grid_a1.setColumnStretch(1, 1)
+ self.exclusion_box.addLayout(grid_a1)
# Chose Strategy
self.strategy_label = FCLabel('%s:' % _("Strategy"))
@@ -2085,8 +1976,8 @@ class GeometryObjectUI(ObjectUI):
self.strategy_radio = RadioSet([{'label': _('Over'), 'value': 'over'},
{'label': _('Around'), 'value': 'around'}])
- grid_l.addWidget(self.strategy_label, 1, 0)
- grid_l.addWidget(self.strategy_radio, 1, 1)
+ grid_a1.addWidget(self.strategy_label, 1, 0)
+ grid_a1.addWidget(self.strategy_radio, 1, 1)
# Over Z
self.over_z_label = FCLabel('%s:' % _("Over Z"))
@@ -2096,12 +1987,45 @@ class GeometryObjectUI(ObjectUI):
self.over_z_entry.set_range(0.000, 9999.9999)
self.over_z_entry.set_precision(self.decimals)
- grid_l.addWidget(self.over_z_label, 2, 0)
- grid_l.addWidget(self.over_z_entry, 2, 1)
+ grid_a1.addWidget(self.over_z_label, 2, 0)
+ grid_a1.addWidget(self.over_z_entry, 2, 1)
+ # Button Add Area
+ self.add_area_button = QtWidgets.QPushButton(_('Add area:'))
+ self.add_area_button.setToolTip(_("Add an Exclusion Area."))
+
+ # Area Selection shape
+ self.area_shape_radio = RadioSet([{'label': _("Square"), 'value': 'square'},
+ {'label': _("Polygon"), 'value': 'polygon'}])
+ self.area_shape_radio.setToolTip(
+ _("The kind of selection shape used for area selection.")
+ )
+
+ grid_a1.addWidget(self.add_area_button, 4, 0)
+ grid_a1.addWidget(self.area_shape_radio, 4, 1)
+
+ h_lay_1 = QtWidgets.QHBoxLayout()
+ self.exclusion_box.addLayout(h_lay_1)
+
+ # Button Delete All Areas
+ self.delete_area_button = QtWidgets.QPushButton(_('Delete All'))
+ self.delete_area_button.setToolTip(_("Delete all exclusion areas."))
+
+ # Button Delete Selected Areas
+ self.delete_sel_area_button = QtWidgets.QPushButton(_('Delete Selected'))
+ self.delete_sel_area_button.setToolTip(_("Delete all exclusion areas that are selected in the table."))
+
+ h_lay_1.addWidget(self.delete_area_button)
+ h_lay_1.addWidget(self.delete_sel_area_button)
+
+ self.ois_exclusion_geo = OptionalHideInputSection(self.exclusion_cb, [self.exclusion_frame])
# -------------------------- EXCLUSION AREAS END -------------------------------------------------------------
# ------------------------------------------------------------------------------------------------------------
- self.ois_exclusion_geo = OptionalInputSection(self.exclusion_cb, [self.exclusion_frame])
+
+ separator_line2 = QtWidgets.QFrame()
+ separator_line2.setFrameShape(QtWidgets.QFrame.HLine)
+ separator_line2.setFrameShadow(QtWidgets.QFrame.Sunken)
+ grid4.addWidget(separator_line2, 15, 0, 1, 2)
warning_lbl = QtWidgets.QLabel(
_(
@@ -2109,7 +2033,7 @@ class GeometryObjectUI(ObjectUI):
"Click the # header to select all, or Ctrl + LMB\n"
"for custom selection of tools."
))
- grid4.addWidget(warning_lbl, 15, 0, 1, 2)
+ grid4.addWidget(warning_lbl, 16, 0, 1, 2)
# Button
self.generate_cnc_button = QtWidgets.QPushButton(_('Generate CNCJob object'))
diff --git a/flatcamGUI/PlotCanvas.py b/AppGUI/PlotCanvas.py
similarity index 69%
rename from flatcamGUI/PlotCanvas.py
rename to AppGUI/PlotCanvas.py
index de7a7028..6f7cdc9f 100644
--- a/flatcamGUI/PlotCanvas.py
+++ b/AppGUI/PlotCanvas.py
@@ -8,13 +8,21 @@
from PyQt5 import QtCore
import logging
-from flatcamGUI.VisPyCanvas import VisPyCanvas, Color
-from flatcamGUI.VisPyVisuals import ShapeGroup, ShapeCollection, TextCollection, TextGroup, Cursor
-from vispy.scene.visuals import InfiniteLine, Line
+from AppGUI.VisPyCanvas import VisPyCanvas, Color
+from AppGUI.VisPyVisuals import ShapeGroup, ShapeCollection, TextCollection, TextGroup, Cursor
+from vispy.scene.visuals import InfiniteLine, Line, Rectangle, Text
+
+import gettext
+import AppTranslation as fcTranslate
+import builtins
import numpy as np
from vispy.geometry import Rect
+fcTranslate.apply_language('strings')
+if '_' not in builtins.__dict__:
+ _ = gettext.gettext
+
log = logging.getLogger('base')
@@ -54,8 +62,12 @@ class PlotCanvas(QtCore.QObject, VisPyCanvas):
if theme == 'white':
self.line_color = (0.3, 0.0, 0.0, 1.0)
+ self.rect_hud_color = Color('#0000FF10')
+ self.text_hud_color = 'black'
else:
self.line_color = (0.4, 0.4, 0.4, 1.0)
+ self.rect_hud_color = Color('#80808040')
+ self.text_hud_color = 'white'
# workspace lines; I didn't use the rectangle because I didn't want to add another VisPy Node,
# which might decrease performance
@@ -129,11 +141,6 @@ class PlotCanvas(QtCore.QObject, VisPyCanvas):
self.h_line = InfiniteLine(pos=0, color=(0.70, 0.3, 0.3, 0.8), vertical=False,
parent=self.view.scene)
- # draw a rectangle made out of 4 lines on the canvas to serve as a hint for the work area
- # all CNC have a limited workspace
- if self.fcapp.defaults['global_workspace'] is True:
- self.draw_workspace(workspace_size=self.fcapp.defaults["global_workspaceT"])
-
self.line_parent = None
if self.fcapp.defaults["global_cursor_color_enabled"]:
c_color = Color(self.fcapp.defaults["global_cursor_color"]).rgba
@@ -146,13 +153,61 @@ class PlotCanvas(QtCore.QObject, VisPyCanvas):
self.cursor_h_line = InfiniteLine(pos=None, color=c_color, vertical=False,
parent=self.line_parent)
+ # font size
+ qsettings = QtCore.QSettings("Open Source", "FlatCAM")
+ if qsettings.contains("hud_font_size"):
+ fsize = qsettings.value('hud_font_size', type=int)
+ else:
+ fsize = 8
+
+ # units
+ units = self.fcapp.defaults["units"].lower()
+
+ # coordinates and anchors
+ height = fsize * 11 # 90. Constant 11 is something that works
+ width = height * 2 # width is double the height = it is something that works
+ center_x = (width / 2) + 5
+ center_y = (height / 2) + 5
+
+ # text
+ self.text_hud = Text('', color=self.text_hud_color, pos=(10, center_y), method='gpu', anchor_x='left',
+ parent=None)
+ self.text_hud.font_size = fsize
+ self.text_hud.text = 'Dx:\t%s [%s]\nDy:\t%s [%s]\n\nX: \t%s [%s]\nY: \t%s [%s]' % \
+ ('0.0000', units, '0.0000', units, '0.0000', units, '0.0000', units)
+
+ # rectangle
+ self.rect_hud = Rectangle(center=(center_x, center_y), width=width, height=height, radius=[5, 5, 5, 5],
+ border_color=self.rect_hud_color, color=self.rect_hud_color, parent=None)
+ self.rect_hud.set_gl_state(depth_test=False)
+
+ # draw a rectangle made out of 4 lines on the canvas to serve as a hint for the work area
+ # all CNC have a limited workspace
+ if self.fcapp.defaults['global_workspace'] is True:
+ self.draw_workspace(workspace_size=self.fcapp.defaults["global_workspaceT"])
+
+ # HUD Display
+ self.hud_enabled = False
+
+ # enable the HUD if it is activated in FlatCAM Preferences
+ if self.fcapp.defaults['global_hud'] is True:
+ self.on_toggle_hud(state=True)
+
+ # Axis Display
+ self.axis_enabled = True
+
+ # enable Axis
+ self.on_toggle_axis(state=True)
+
+ # enable Grid lines
+ self.grid_lines_enabled = True
+
self.shape_collections = []
self.shape_collection = self.new_shape_collection()
self.fcapp.pool_recreated.connect(self.on_pool_recreated)
self.text_collection = self.new_text_collection()
- # TODO: Should be setting to show/hide CNC job annotations (global or per object)
self.text_collection.enabled = True
self.c = None
@@ -163,6 +218,76 @@ class PlotCanvas(QtCore.QObject, VisPyCanvas):
self.graph_event_connect('mouse_wheel', self.on_mouse_scroll)
+ def on_toggle_axis(self, signal=None, state=None):
+ if state is None:
+ state = not self.axis_enabled
+
+ if state:
+ self.axis_enabled = True
+ self.v_line.parent = self.view.scene
+ self.h_line.parent = self.view.scene
+ self.fcapp.ui.axis_status_label.setStyleSheet("""
+ QLabel
+ {
+ color: black;
+ background-color: peachpuff;
+ }
+ """)
+ self.fcapp.inform[str, bool].emit(_("Axis enabled."), False)
+ else:
+ self.axis_enabled = False
+ self.v_line.parent = None
+ self.h_line.parent = None
+ self.fcapp.ui.axis_status_label.setStyleSheet("")
+ self.fcapp.inform[str, bool].emit(_("Axis disabled."), False)
+
+ def on_toggle_hud(self, signal=None, state=None):
+ if state is None:
+ state = not self.hud_enabled
+
+ if state:
+ self.hud_enabled = True
+ self.rect_hud.parent = self.view
+ self.text_hud.parent = self.view
+ self.fcapp.defaults['global_hud'] = True
+ self.fcapp.ui.hud_label.setStyleSheet("""
+ QLabel
+ {
+ color: black;
+ background-color: lightblue;
+ }
+ """)
+ self.fcapp.inform[str, bool].emit(_("HUD enabled."), False)
+
+ else:
+ self.hud_enabled = False
+ self.rect_hud.parent = None
+ self.text_hud.parent = None
+ self.fcapp.defaults['global_hud'] = False
+ self.fcapp.ui.hud_label.setStyleSheet("")
+ self.fcapp.inform[str, bool].emit(_("HUD disabled."), False)
+
+ def on_toggle_grid_lines(self):
+ state = not self.grid_lines_enabled
+
+ if state:
+ self.grid_lines_enabled = True
+ self.grid.parent = self.view.scene
+ self.fcapp.inform[str, bool].emit(_("Grid enabled."), False)
+ else:
+ self.grid_lines_enabled = False
+ self.grid.parent = None
+ self.fcapp.inform[str, bool].emit(_("Grid disabled."), False)
+
+ # HACK: enabling/disabling the cursor seams to somehow update the shapes on screen
+ # - perhaps is a bug in VisPy implementation
+ if self.fcapp.grid_status():
+ self.fcapp.app_cursor.enabled = False
+ self.fcapp.app_cursor.enabled = True
+ else:
+ self.fcapp.app_cursor.enabled = True
+ self.fcapp.app_cursor.enabled = False
+
def draw_workspace(self, workspace_size):
"""
Draw a rectangular shape on canvas to specify our valid workspace.
@@ -183,17 +308,30 @@ class PlotCanvas(QtCore.QObject, VisPyCanvas):
a = np.array([(0, 0), (dims[0], 0), (dims[0], dims[1]), (0, dims[1])])
- if not self.workspace_line:
- self.workspace_line = Line(pos=np.array((a[0], a[1], a[2], a[3], a[0])), color=(0.70, 0.3, 0.3, 0.7),
- antialias=True, method='agg', parent=self.view.scene)
- else:
- self.workspace_line.parent = self.view.scene
+ # if not self.workspace_line:
+ # self.workspace_line = Line(pos=np.array((a[0], a[1], a[2], a[3], a[0])), color=(0.70, 0.3, 0.3, 0.7),
+ # antialias=True, method='agg', parent=self.view.scene)
+ # else:
+ # self.workspace_line.parent = self.view.scene
+ self.workspace_line = Line(pos=np.array((a[0], a[1], a[2], a[3], a[0])), color=(0.70, 0.3, 0.3, 0.7),
+ antialias=True, method='agg', parent=self.view.scene)
+
+ self.fcapp.ui.wplace_label.set_value(workspace_size[:3])
+ self.fcapp.ui.wplace_label.setToolTip(workspace_size)
+ self.fcapp.ui.wplace_label.setStyleSheet("""
+ QLabel
+ {
+ color: black;
+ background-color: lightgreen;
+ }
+ """)
def delete_workspace(self):
try:
self.workspace_line.parent = None
except Exception:
pass
+ self.fcapp.ui.wplace_label.setStyleSheet("")
# redraw the workspace lines on the plot by re adding them to the parent view.scene
def restore_workspace(self):
@@ -287,6 +425,7 @@ class PlotCanvas(QtCore.QObject, VisPyCanvas):
def on_mouse_scroll(self, event):
# key modifiers
modifiers = event.modifiers
+
pan_delta_x = self.fcapp.defaults["global_gridx"]
pan_delta_y = self.fcapp.defaults["global_gridy"]
curr_pos = event.pos
diff --git a/flatcamGUI/PlotCanvasLegacy.py b/AppGUI/PlotCanvasLegacy.py
similarity index 84%
rename from flatcamGUI/PlotCanvasLegacy.py
rename to AppGUI/PlotCanvasLegacy.py
index df9c8231..47cd24c0 100644
--- a/flatcamGUI/PlotCanvasLegacy.py
+++ b/AppGUI/PlotCanvasLegacy.py
@@ -19,8 +19,10 @@ from shapely.geometry import Polygon, LineString, LinearRing
from copy import deepcopy
import logging
+import numpy as np
+
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
# Prevent conflict with Qt5 and above.
@@ -29,13 +31,13 @@ mpl_use("Qt5Agg")
from matplotlib.figure import Figure
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.lines import Line2D
+from matplotlib.offsetbox import AnchoredText
# from matplotlib.widgets import Cursor
fcTranslate.apply_language('strings')
if '_' not in builtins.__dict__:
_ = gettext.gettext
-
log = logging.getLogger('base')
@@ -45,9 +47,9 @@ class CanvasCache(QtCore.QObject):
Case story #1:
1) No objects in the project.
- 2) Object is created (new_object() emits object_created(obj)).
+ 2) Object is created (app_obj.new_object() emits object_created(obj)).
on_object_created() adds (i) object to collection and emits
- (ii) new_object_available() then calls (iii) object.plot()
+ (ii) app_obj.new_object_available() then calls (iii) object.plot()
3) object.plot() creates axes if necessary on
app.collection.figure. Then plots on it.
4) Plots on a cache-size canvas (in background).
@@ -113,7 +115,7 @@ class CanvasCache(QtCore.QObject):
# Continue to update the cache.
- # def on_new_object_available(self):
+ # def on_app_obj.new_object_available(self):
#
# log.debug("A new object is available. Should plot it!")
@@ -147,9 +149,13 @@ class PlotCanvasLegacy(QtCore.QObject):
if self.app.defaults['global_theme'] == 'white':
theme_color = '#FFFFFF'
tick_color = '#000000'
+ self.rect_hud_color = '#0000FF10'
+ self.text_hud_color = '#000000'
else:
theme_color = '#000000'
tick_color = '#FFFFFF'
+ self.rect_hud_color = '#80808040'
+ self.text_hud_color = '#FFFFFF'
# workspace lines; I didn't use the rectangle because I didn't want to add another VisPy Node,
# which might decrease performance
@@ -295,14 +301,163 @@ class PlotCanvasLegacy(QtCore.QObject):
# signal is the mouse is dragging
self.is_dragging = False
+ self.mouse_press_pos = None
+
# signal if there is a doubleclick
self.is_dblclk = False
+ self.hud_enabled = False
+ self.text_hud = self.Thud(plotcanvas=self)
+
+ # enable Grid lines
+ self.grid_lines_enabled = True
+
# draw a rectangle made out of 4 lines on the canvas to serve as a hint for the work area
# all CNC have a limited workspace
if self.app.defaults['global_workspace'] is True:
self.draw_workspace(workspace_size=self.app.defaults["global_workspaceT"])
+ if self.app.defaults['global_hud'] is True:
+ self.on_toggle_hud(state=True)
+
+ # Axis Display
+ self.axis_enabled = True
+
+ # enable Axis
+ self.on_toggle_axis(state=True)
+
+ def on_toggle_axis(self, signal=None, state=None):
+ if state is None:
+ state = not self.axis_enabled
+
+ if state:
+ self.axis_enabled = True
+ if self.h_line not in self.axes.lines and self.v_line not in self.axes.lines:
+ self.h_line = self.axes.axhline(color=(0.70, 0.3, 0.3), linewidth=2)
+ self.v_line = self.axes.axvline(color=(0.70, 0.3, 0.3), linewidth=2)
+ self.app.ui.axis_status_label.setStyleSheet("""
+ QLabel
+ {
+ color: black;
+ background-color: peachpuff;
+ }
+ """)
+ self.app.inform[str, bool].emit(_("Axis enabled."), False)
+ else:
+ self.axis_enabled = False
+ if self.h_line in self.axes.lines and self.v_line in self.axes.lines:
+ self.axes.lines.remove(self.h_line)
+ self.axes.lines.remove(self.v_line)
+ self.app.ui.axis_status_label.setStyleSheet("")
+ self.app.inform[str, bool].emit(_("Axis disabled."), False)
+
+ self.canvas.draw()
+
+ def on_toggle_hud(self, signal=None, state=None):
+ if state is None:
+ state = not self.hud_enabled
+
+ if state:
+ self.hud_enabled = True
+ self.text_hud.add_artist()
+ self.app.defaults['global_hud'] = True
+
+ self.app.ui.hud_label.setStyleSheet("""
+ QLabel
+ {
+ color: black;
+ background-color: lightblue;
+ }
+ """)
+ self.app.inform[str, bool].emit(_("HUD enabled."), False)
+ else:
+ self.hud_enabled = False
+ self.text_hud.remove_artist()
+ self.app.defaults['global_hud'] = False
+ self.app.ui.hud_label.setStyleSheet("")
+ self.app.inform[str, bool].emit(_("HUD disabled."), False)
+
+ self.canvas.draw()
+
+ class Thud(QtCore.QObject):
+ text_changed = QtCore.pyqtSignal(str)
+
+ def __init__(self, plotcanvas):
+ super().__init__()
+
+ self.p = plotcanvas
+ units = self.p.app.defaults['units']
+ self._text = 'Dx: %s [%s]\nDy: %s [%s]\n\nX: %s [%s]\nY: %s [%s]' % \
+ ('0.0000', units, '0.0000', units, '0.0000', units, '0.0000', units)
+
+ # set font size
+ qsettings = QtCore.QSettings("Open Source", "FlatCAM")
+ if qsettings.contains("hud_font_size"):
+ # I multiply with 2.5 because this seems to be the difference between the value taken by the VisPy (3D)
+ # and Matplotlib (Legacy2D FlatCAM graphic engine)
+ fsize = int(qsettings.value('hud_font_size', type=int) * 2.5)
+ else:
+ fsize = 20
+
+ self.hud_holder = AnchoredText(self._text, prop=dict(size=fsize), frameon=True, loc='upper left')
+ self.hud_holder.patch.set_boxstyle("round,pad=0.,rounding_size=0.2")
+
+ fc_color = self.p.rect_hud_color[:-2]
+ fc_alpha = int(self.p.rect_hud_color[-2:], 16) / 255
+ text_color = self.p.text_hud_color
+
+ self.hud_holder.patch.set_facecolor(fc_color)
+ self.hud_holder.patch.set_alpha(fc_alpha)
+ self.hud_holder.patch.set_edgecolor((0, 0, 0, 0))
+
+ self. hud_holder.txt._text.set_color(color=text_color)
+ self.text_changed.connect(self.on_text_changed)
+
+ @property
+ def text(self):
+ return self._text
+
+ @text.setter
+ def text(self, val):
+ self.text_changed.emit(val)
+ self._text = val
+
+ def on_text_changed(self, txt):
+ try:
+ txt = txt.replace('\t', ' ')
+ self.hud_holder.txt.set_text(txt)
+ self.p.canvas.draw()
+ except Exception:
+ pass
+
+ def add_artist(self):
+ if self.hud_holder not in self.p.axes.artists:
+ self.p.axes.add_artist(self.hud_holder)
+
+ def remove_artist(self):
+ if self.hud_holder in self.p.axes.artists:
+ self.p.axes.artists.remove(self.hud_holder)
+
+ def on_toggle_grid_lines(self):
+ state = not self.grid_lines_enabled
+
+ if state:
+ self.grid_lines_enabled = True
+ self.axes.grid(True)
+ try:
+ self.canvas.draw()
+ except IndexError:
+ pass
+ self.app.inform[str, bool].emit(_("Grid enabled."), False)
+ else:
+ self.grid_lines_enabled = False
+ self.axes.grid(False)
+ try:
+ self.canvas.draw()
+ except IndexError:
+ pass
+ self.app.inform[str, bool].emit(_("Grid disabled."), False)
+
def draw_workspace(self, workspace_size):
"""
Draw a rectangular shape on canvas to specify our valid workspace.
@@ -329,12 +484,23 @@ class PlotCanvasLegacy(QtCore.QObject):
self.axes.add_line(self.workspace_line)
self.canvas.draw()
+ self.app.ui.wplace_label.set_value(workspace_size[:3])
+ self.app.ui.wplace_label.setToolTip(workspace_size)
+ self.fcapp.ui.wplace_label.setStyleSheet("""
+ QLabel
+ {
+ color: black;
+ background-color: lightgreen;
+ }
+ """)
+
def delete_workspace(self):
try:
self.axes.lines.remove(self.workspace_line)
self.canvas.draw()
except Exception:
pass
+ self.fcapp.ui.wplace_label.setStyleSheet("")
def graph_event_connect(self, event_name, callback):
"""
@@ -423,7 +589,7 @@ class PlotCanvasLegacy(QtCore.QObject):
if self.big_cursor is False:
try:
- x, y = self.app.geo_editor.snap(x_pos, y_pos)
+ x, y = self.snap(x_pos, y_pos)
# Pointer (snapped)
# The size of the cursor is multiplied by 1.65 because that value made the cursor similar with the
@@ -456,7 +622,7 @@ class PlotCanvasLegacy(QtCore.QObject):
pass
self.canvas.draw_idle()
- self.canvas.blit(self.axes.bbox)
+ self.canvas.blit(self.axes.bbox)
def clear_cursor(self, state):
if state is True:
@@ -781,6 +947,7 @@ class PlotCanvasLegacy(QtCore.QObject):
def on_mouse_press(self, event):
self.is_dragging = True
+ self.mouse_press_pos = (event.x, event.y)
# Check for middle mouse button press
if self.app.defaults["global_pan_button"] == '2':
@@ -806,7 +973,11 @@ class PlotCanvasLegacy(QtCore.QObject):
def on_mouse_release(self, event):
- self.is_dragging = False
+ mouse_release_pos = (event.x, event.y)
+ delta = 0.05
+
+ if abs(self.distance(self.mouse_press_pos, mouse_release_pos)) < delta:
+ self.is_dragging = False
# Check for middle mouse button release to complete pan procedure
# Check for middle mouse button press
@@ -858,7 +1029,7 @@ class PlotCanvasLegacy(QtCore.QObject):
self.canvas.draw_idle()
# #### Temporary place-holder for cached update #####
- self.update_screen_request.emit([0, 0, 0, 0, 0])
+ # self.update_screen_request.emit([0, 0, 0, 0, 0])
if self.app.defaults["global_cursor_color_enabled"] is True:
self.draw_cursor(x_pos=x, y_pos=y, color=self.app.cursor_color_3D)
@@ -910,6 +1081,59 @@ class PlotCanvasLegacy(QtCore.QObject):
return width / xpx, height / ypx
+ def snap(self, x, y):
+ """
+ Adjusts coordinates to snap settings.
+
+ :param x: Input coordinate X
+ :param y: Input coordinate Y
+ :return: Snapped (x, y)
+ """
+
+ snap_x, snap_y = (x, y)
+ snap_distance = np.Inf
+
+ # ### Grid snap
+ if self.app.grid_status():
+ if self.app.defaults["global_gridx"] != 0:
+ try:
+ snap_x_ = round(x / float(self.app.defaults["global_gridx"])) * \
+ float(self.app.defaults["global_gridx"])
+ except TypeError:
+ snap_x_ = x
+ else:
+ snap_x_ = x
+
+ # If the Grid_gap_linked on Grid Toolbar is checked then the snap distance on GridY entry will be ignored
+ # and it will use the snap distance from GridX entry
+ if self.app.ui.grid_gap_link_cb.isChecked():
+ if self.app.defaults["global_gridx"] != 0:
+ try:
+ snap_y_ = round(y / float(self.app.defaults["global_gridx"])) * \
+ float(self.app.defaults["global_gridx"])
+ except TypeError:
+ snap_y_ = y
+ else:
+ snap_y_ = y
+ else:
+ if self.app.defaults["global_gridy"] != 0:
+ try:
+ snap_y_ = round(y / float(self.app.defaults["global_gridy"])) * \
+ float(self.app.defaults["global_gridy"])
+ except TypeError:
+ snap_y_ = y
+ else:
+ snap_y_ = y
+ nearest_grid_distance = self.distance((x, y), (snap_x_, snap_y_))
+ if nearest_grid_distance < snap_distance:
+ snap_x, snap_y = (snap_x_, snap_y_)
+
+ return snap_x, snap_y
+
+ @staticmethod
+ def distance(pt1, pt2):
+ return np.sqrt((pt1[0] - pt2[0]) ** 2 + (pt1[1] - pt2[1]) ** 2)
+
class FakeCursor(QtCore.QObject):
"""
@@ -948,10 +1172,10 @@ class ShapeCollectionLegacy:
"""
:param obj: This is the object to which the shapes collection is attached and for
- which it will have to draw shapes
+ which it will have to draw shapes
:param app: This is the FLatCAM.App usually, needed because we have to access attributes there
:param name: This is the name given to the Matplotlib axes; it needs to be unique due of
- Matplotlib requurements
+ Matplotlib requurements
:param annotation_job: Make this True if the job needed is just for annotation
:param linewidth: THe width of the line (outline where is the case)
"""
diff --git a/flatcamGUI/VisPyCanvas.py b/AppGUI/VisPyCanvas.py
similarity index 99%
rename from flatcamGUI/VisPyCanvas.py
rename to AppGUI/VisPyCanvas.py
index 7d7efe13..aa55675f 100644
--- a/flatcamGUI/VisPyCanvas.py
+++ b/AppGUI/VisPyCanvas.py
@@ -13,6 +13,7 @@ import numpy as np
import vispy.scene as scene
from vispy.scene.cameras.base_camera import BaseCamera
+# from vispy.scene.widgets import Widget as VisPyWidget
from vispy.color import Color
import time
diff --git a/flatcamGUI/VisPyData/data/fonts/opensans-regular.ttf b/AppGUI/VisPyData/data/fonts/opensans-regular.ttf
similarity index 100%
rename from flatcamGUI/VisPyData/data/fonts/opensans-regular.ttf
rename to AppGUI/VisPyData/data/fonts/opensans-regular.ttf
diff --git a/flatcamGUI/VisPyData/data/freetype/freetype253.dll b/AppGUI/VisPyData/data/freetype/freetype253.dll
similarity index 100%
rename from flatcamGUI/VisPyData/data/freetype/freetype253.dll
rename to AppGUI/VisPyData/data/freetype/freetype253.dll
diff --git a/flatcamGUI/VisPyData/data/freetype/freetype253_x64.dll b/AppGUI/VisPyData/data/freetype/freetype253_x64.dll
similarity index 100%
rename from flatcamGUI/VisPyData/data/freetype/freetype253_x64.dll
rename to AppGUI/VisPyData/data/freetype/freetype253_x64.dll
diff --git a/flatcamGUI/VisPyPatches.py b/AppGUI/VisPyPatches.py
similarity index 100%
rename from flatcamGUI/VisPyPatches.py
rename to AppGUI/VisPyPatches.py
diff --git a/flatcamGUI/VisPyTesselators.py b/AppGUI/VisPyTesselators.py
similarity index 100%
rename from flatcamGUI/VisPyTesselators.py
rename to AppGUI/VisPyTesselators.py
diff --git a/flatcamGUI/VisPyVisuals.py b/AppGUI/VisPyVisuals.py
similarity index 99%
rename from flatcamGUI/VisPyVisuals.py
rename to AppGUI/VisPyVisuals.py
index 9cf81e54..3796f759 100644
--- a/flatcamGUI/VisPyVisuals.py
+++ b/AppGUI/VisPyVisuals.py
@@ -13,7 +13,7 @@ from vispy.color import Color
from shapely.geometry import Polygon, LineString, LinearRing
import threading
import numpy as np
-from flatcamGUI.VisPyTesselators import GLUTess
+from AppGUI.VisPyTesselators import GLUTess
class FlatCAMLineVisual(LineVisual):
diff --git a/flatcamGUI/__init__.py b/AppGUI/__init__.py
similarity index 100%
rename from flatcamGUI/__init__.py
rename to AppGUI/__init__.py
diff --git a/flatcamGUI/preferences/OptionsGroupUI.py b/AppGUI/preferences/OptionsGroupUI.py
similarity index 100%
rename from flatcamGUI/preferences/OptionsGroupUI.py
rename to AppGUI/preferences/OptionsGroupUI.py
diff --git a/flatcamGUI/preferences/PreferencesUIManager.py b/AppGUI/preferences/PreferencesUIManager.py
similarity index 80%
rename from flatcamGUI/preferences/PreferencesUIManager.py
rename to AppGUI/preferences/PreferencesUIManager.py
index 14fa8762..a712c127 100644
--- a/flatcamGUI/preferences/PreferencesUIManager.py
+++ b/AppGUI/preferences/PreferencesUIManager.py
@@ -5,7 +5,7 @@ from defaults import FlatCAMDefaults
import logging
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -29,7 +29,7 @@ class PreferencesUIManager:
:param defaults: a dictionary storage where all the application settings are stored
:param data_path: a path to the file where all the preferences are stored for persistence
- :param ui: reference to the FlatCAMGUI class which constructs the UI
+ :param ui: reference to the MainGUI class which constructs the UI
:param inform: a pyqtSignal used to display information's in the StatusBar of the GUI
"""
@@ -43,7 +43,7 @@ class PreferencesUIManager:
self.preferences_changed_flag = False
# when adding entries here read the comments in the method found below named:
- # def new_object(self, kind, name, initialize, active=True, fit=True, plot=True)
+ # def app_obj.new_object(self, kind, name, initialize, active=True, fit=True, plot=True)
self.defaults_form_fields = {
# General App
"decimals_inch": self.ui.general_defaults_form.general_app_group.precision_inch_entry,
@@ -127,12 +127,6 @@ class PreferencesUIManager:
"gerber_plot_line": self.ui.gerber_defaults_form.gerber_gen_group.pl_color_entry,
# Gerber Options
- "gerber_isotooldia": self.ui.gerber_defaults_form.gerber_opt_group.iso_tool_dia_entry,
- "gerber_isopasses": self.ui.gerber_defaults_form.gerber_opt_group.iso_width_entry,
- "gerber_isooverlap": self.ui.gerber_defaults_form.gerber_opt_group.iso_overlap_entry,
- "gerber_combine_passes": self.ui.gerber_defaults_form.gerber_opt_group.combine_passes_cb,
- "gerber_iso_scope": self.ui.gerber_defaults_form.gerber_opt_group.iso_scope_radio,
- "gerber_milling_type": self.ui.gerber_defaults_form.gerber_opt_group.milling_type_radio,
"gerber_noncoppermargin": self.ui.gerber_defaults_form.gerber_opt_group.noncopper_margin_entry,
"gerber_noncopperrounded": self.ui.gerber_defaults_form.gerber_opt_group.noncopper_rounded_cb,
"gerber_bboxmargin": self.ui.gerber_defaults_form.gerber_opt_group.bbmargin_entry,
@@ -143,12 +137,6 @@ class PreferencesUIManager:
# "gerber_aperture_scale_factor": self.ui.gerber_defaults_form.gerber_adv_opt_group.scale_aperture_entry,
# "gerber_aperture_buffer_factor": self.ui.gerber_defaults_form.gerber_adv_opt_group.buffer_aperture_entry,
"gerber_follow": self.ui.gerber_defaults_form.gerber_adv_opt_group.follow_cb,
- "gerber_tool_type": self.ui.gerber_defaults_form.gerber_adv_opt_group.tool_type_radio,
- "gerber_vtipdia": self.ui.gerber_defaults_form.gerber_adv_opt_group.tipdia_spinner,
- "gerber_vtipangle": self.ui.gerber_defaults_form.gerber_adv_opt_group.tipangle_spinner,
- "gerber_vcutz": self.ui.gerber_defaults_form.gerber_adv_opt_group.cutz_spinner,
- "gerber_iso_type": self.ui.gerber_defaults_form.gerber_adv_opt_group.iso_type_radio,
-
"gerber_buffering": self.ui.gerber_defaults_form.gerber_adv_opt_group.buffering_radio,
"gerber_simplification": self.ui.gerber_defaults_form.gerber_adv_opt_group.simplify_cb,
"gerber_simp_tolerance": self.ui.gerber_defaults_form.gerber_adv_opt_group.simplification_tol_spinner,
@@ -180,6 +168,7 @@ class PreferencesUIManager:
# Excellon General
"excellon_plot": self.ui.excellon_defaults_form.excellon_gen_group.plot_cb,
"excellon_solid": self.ui.excellon_defaults_form.excellon_gen_group.solid_cb,
+ "excellon_multicolored": self.ui.excellon_defaults_form.excellon_gen_group.multicolored_cb,
"excellon_format_upper_in":
self.ui.excellon_defaults_form.excellon_gen_group.excellon_format_upper_in_entry,
"excellon_format_lower_in":
@@ -221,31 +210,31 @@ class PreferencesUIManager:
"excellon_gcode_type": self.ui.excellon_defaults_form.excellon_opt_group.excellon_gcode_type_radio,
# Excellon Advanced Options
- "excellon_offset": self.ui.excellon_defaults_form.excellon_adv_opt_group.offset_entry,
- "excellon_toolchangexy": self.ui.excellon_defaults_form.excellon_adv_opt_group.toolchangexy_entry,
- "excellon_startz": self.ui.excellon_defaults_form.excellon_adv_opt_group.estartz_entry,
- "excellon_feedrate_rapid": self.ui.excellon_defaults_form.excellon_adv_opt_group.feedrate_rapid_entry,
- "excellon_z_pdepth": self.ui.excellon_defaults_form.excellon_adv_opt_group.pdepth_entry,
- "excellon_feedrate_probe": self.ui.excellon_defaults_form.excellon_adv_opt_group.feedrate_probe_entry,
- "excellon_spindledir": self.ui.excellon_defaults_form.excellon_adv_opt_group.spindledir_radio,
- "excellon_f_plunge": self.ui.excellon_defaults_form.excellon_adv_opt_group.fplunge_cb,
- "excellon_f_retract": self.ui.excellon_defaults_form.excellon_adv_opt_group.fretract_cb,
+ "excellon_offset": self.ui.excellon_defaults_form.excellon_adv_opt_group.offset_entry,
+ "excellon_toolchangexy": self.ui.excellon_defaults_form.excellon_adv_opt_group.toolchangexy_entry,
+ "excellon_startz": self.ui.excellon_defaults_form.excellon_adv_opt_group.estartz_entry,
+ "excellon_feedrate_rapid": self.ui.excellon_defaults_form.excellon_adv_opt_group.feedrate_rapid_entry,
+ "excellon_z_pdepth": self.ui.excellon_defaults_form.excellon_adv_opt_group.pdepth_entry,
+ "excellon_feedrate_probe": self.ui.excellon_defaults_form.excellon_adv_opt_group.feedrate_probe_entry,
+ "excellon_spindledir": self.ui.excellon_defaults_form.excellon_adv_opt_group.spindledir_radio,
+ "excellon_f_plunge": self.ui.excellon_defaults_form.excellon_adv_opt_group.fplunge_cb,
+ "excellon_f_retract": self.ui.excellon_defaults_form.excellon_adv_opt_group.fretract_cb,
# Excellon Export
- "excellon_exp_units": self.ui.excellon_defaults_form.excellon_exp_group.excellon_units_radio,
- "excellon_exp_format": self.ui.excellon_defaults_form.excellon_exp_group.format_radio,
- "excellon_exp_integer": self.ui.excellon_defaults_form.excellon_exp_group.format_whole_entry,
- "excellon_exp_decimals": self.ui.excellon_defaults_form.excellon_exp_group.format_dec_entry,
- "excellon_exp_zeros": self.ui.excellon_defaults_form.excellon_exp_group.zeros_radio,
- "excellon_exp_slot_type": self.ui.excellon_defaults_form.excellon_exp_group.slot_type_radio,
+ "excellon_exp_units": self.ui.excellon_defaults_form.excellon_exp_group.excellon_units_radio,
+ "excellon_exp_format": self.ui.excellon_defaults_form.excellon_exp_group.format_radio,
+ "excellon_exp_integer": self.ui.excellon_defaults_form.excellon_exp_group.format_whole_entry,
+ "excellon_exp_decimals": self.ui.excellon_defaults_form.excellon_exp_group.format_dec_entry,
+ "excellon_exp_zeros": self.ui.excellon_defaults_form.excellon_exp_group.zeros_radio,
+ "excellon_exp_slot_type": self.ui.excellon_defaults_form.excellon_exp_group.slot_type_radio,
# Excellon Editor
- "excellon_editor_sel_limit": self.ui.excellon_defaults_form.excellon_editor_group.sel_limit_entry,
- "excellon_editor_newdia": self.ui.excellon_defaults_form.excellon_editor_group.addtool_entry,
- "excellon_editor_array_size": self.ui.excellon_defaults_form.excellon_editor_group.drill_array_size_entry,
- "excellon_editor_lin_dir": self.ui.excellon_defaults_form.excellon_editor_group.drill_axis_radio,
- "excellon_editor_lin_pitch": self.ui.excellon_defaults_form.excellon_editor_group.drill_pitch_entry,
- "excellon_editor_lin_angle": self.ui.excellon_defaults_form.excellon_editor_group.drill_angle_entry,
+ "excellon_editor_sel_limit": self.ui.excellon_defaults_form.excellon_editor_group.sel_limit_entry,
+ "excellon_editor_newdia": self.ui.excellon_defaults_form.excellon_editor_group.addtool_entry,
+ "excellon_editor_array_size": self.ui.excellon_defaults_form.excellon_editor_group.drill_array_size_entry,
+ "excellon_editor_lin_dir": self.ui.excellon_defaults_form.excellon_editor_group.drill_axis_radio,
+ "excellon_editor_lin_pitch": self.ui.excellon_defaults_form.excellon_editor_group.drill_pitch_entry,
+ "excellon_editor_lin_angle": self.ui.excellon_defaults_form.excellon_editor_group.drill_angle_entry,
"excellon_editor_circ_dir": self.ui.excellon_defaults_form.excellon_editor_group.drill_circular_dir_radio,
"excellon_editor_circ_angle":
self.ui.excellon_defaults_form.excellon_editor_group.drill_circular_angle_entry,
@@ -270,94 +259,117 @@ class PreferencesUIManager:
self.ui.excellon_defaults_form.excellon_editor_group.slot_array_circular_angle_entry,
# Geometry General
- "geometry_plot": self.ui.geometry_defaults_form.geometry_gen_group.plot_cb,
- "geometry_circle_steps": self.ui.geometry_defaults_form.geometry_gen_group.circle_steps_entry,
- "geometry_cnctooldia": self.ui.geometry_defaults_form.geometry_gen_group.cnctooldia_entry,
- "geometry_plot_line": self.ui.geometry_defaults_form.geometry_gen_group.line_color_entry,
+ "geometry_plot": self.ui.geometry_defaults_form.geometry_gen_group.plot_cb,
+ "geometry_multicolored": self.ui.geometry_defaults_form.geometry_gen_group.multicolored_cb,
+ "geometry_circle_steps": self.ui.geometry_defaults_form.geometry_gen_group.circle_steps_entry,
+ "geometry_cnctooldia": self.ui.geometry_defaults_form.geometry_gen_group.cnctooldia_entry,
+ "geometry_plot_line": self.ui.geometry_defaults_form.geometry_gen_group.line_color_entry,
# Geometry Options
- "geometry_cutz": self.ui.geometry_defaults_form.geometry_opt_group.cutz_entry,
- "geometry_travelz": self.ui.geometry_defaults_form.geometry_opt_group.travelz_entry,
- "geometry_feedrate": self.ui.geometry_defaults_form.geometry_opt_group.cncfeedrate_entry,
- "geometry_feedrate_z": self.ui.geometry_defaults_form.geometry_opt_group.feedrate_z_entry,
- "geometry_spindlespeed": self.ui.geometry_defaults_form.geometry_opt_group.cncspindlespeed_entry,
- "geometry_dwell": self.ui.geometry_defaults_form.geometry_opt_group.dwell_cb,
- "geometry_dwelltime": self.ui.geometry_defaults_form.geometry_opt_group.dwelltime_entry,
- "geometry_ppname_g": self.ui.geometry_defaults_form.geometry_opt_group.pp_geometry_name_cb,
- "geometry_toolchange": self.ui.geometry_defaults_form.geometry_opt_group.toolchange_cb,
- "geometry_toolchangez": self.ui.geometry_defaults_form.geometry_opt_group.toolchangez_entry,
- "geometry_endz": self.ui.geometry_defaults_form.geometry_opt_group.endz_entry,
- "geometry_endxy": self.ui.geometry_defaults_form.geometry_opt_group.endxy_entry,
- "geometry_depthperpass": self.ui.geometry_defaults_form.geometry_opt_group.depthperpass_entry,
- "geometry_multidepth": self.ui.geometry_defaults_form.geometry_opt_group.multidepth_cb,
+ "geometry_cutz": self.ui.geometry_defaults_form.geometry_opt_group.cutz_entry,
+ "geometry_travelz": self.ui.geometry_defaults_form.geometry_opt_group.travelz_entry,
+ "geometry_feedrate": self.ui.geometry_defaults_form.geometry_opt_group.cncfeedrate_entry,
+ "geometry_feedrate_z": self.ui.geometry_defaults_form.geometry_opt_group.feedrate_z_entry,
+ "geometry_spindlespeed": self.ui.geometry_defaults_form.geometry_opt_group.cncspindlespeed_entry,
+ "geometry_dwell": self.ui.geometry_defaults_form.geometry_opt_group.dwell_cb,
+ "geometry_dwelltime": self.ui.geometry_defaults_form.geometry_opt_group.dwelltime_entry,
+ "geometry_ppname_g": self.ui.geometry_defaults_form.geometry_opt_group.pp_geometry_name_cb,
+ "geometry_toolchange": self.ui.geometry_defaults_form.geometry_opt_group.toolchange_cb,
+ "geometry_toolchangez": self.ui.geometry_defaults_form.geometry_opt_group.toolchangez_entry,
+ "geometry_endz": self.ui.geometry_defaults_form.geometry_opt_group.endz_entry,
+ "geometry_endxy": self.ui.geometry_defaults_form.geometry_opt_group.endxy_entry,
+ "geometry_depthperpass": self.ui.geometry_defaults_form.geometry_opt_group.depthperpass_entry,
+ "geometry_multidepth": self.ui.geometry_defaults_form.geometry_opt_group.multidepth_cb,
# Geometry Advanced Options
- "geometry_toolchangexy": self.ui.geometry_defaults_form.geometry_adv_opt_group.toolchangexy_entry,
- "geometry_startz": self.ui.geometry_defaults_form.geometry_adv_opt_group.gstartz_entry,
- "geometry_feedrate_rapid": self.ui.geometry_defaults_form.geometry_adv_opt_group.feedrate_rapid_entry,
- "geometry_extracut": self.ui.geometry_defaults_form.geometry_adv_opt_group.extracut_cb,
+ "geometry_toolchangexy": self.ui.geometry_defaults_form.geometry_adv_opt_group.toolchangexy_entry,
+ "geometry_startz": self.ui.geometry_defaults_form.geometry_adv_opt_group.gstartz_entry,
+ "geometry_feedrate_rapid": self.ui.geometry_defaults_form.geometry_adv_opt_group.feedrate_rapid_entry,
+ "geometry_extracut": self.ui.geometry_defaults_form.geometry_adv_opt_group.extracut_cb,
"geometry_extracut_length": self.ui.geometry_defaults_form.geometry_adv_opt_group.e_cut_entry,
- "geometry_z_pdepth": self.ui.geometry_defaults_form.geometry_adv_opt_group.pdepth_entry,
- "geometry_feedrate_probe": self.ui.geometry_defaults_form.geometry_adv_opt_group.feedrate_probe_entry,
- "geometry_spindledir": self.ui.geometry_defaults_form.geometry_adv_opt_group.spindledir_radio,
- "geometry_f_plunge": self.ui.geometry_defaults_form.geometry_adv_opt_group.fplunge_cb,
- "geometry_segx": self.ui.geometry_defaults_form.geometry_adv_opt_group.segx_entry,
- "geometry_segy": self.ui.geometry_defaults_form.geometry_adv_opt_group.segy_entry,
- "geometry_area_exclusion": self.ui.geometry_defaults_form.geometry_adv_opt_group.exclusion_cb,
- "geometry_area_shape": self.ui.geometry_defaults_form.geometry_adv_opt_group.area_shape_radio,
- "geometry_area_strategy": self.ui.geometry_defaults_form.geometry_adv_opt_group.strategy_radio,
- "geometry_area_overz": self.ui.geometry_defaults_form.geometry_adv_opt_group.over_z_entry,
+ "geometry_z_pdepth": self.ui.geometry_defaults_form.geometry_adv_opt_group.pdepth_entry,
+ "geometry_feedrate_probe": self.ui.geometry_defaults_form.geometry_adv_opt_group.feedrate_probe_entry,
+ "geometry_spindledir": self.ui.geometry_defaults_form.geometry_adv_opt_group.spindledir_radio,
+ "geometry_f_plunge": self.ui.geometry_defaults_form.geometry_adv_opt_group.fplunge_cb,
+ "geometry_segx": self.ui.geometry_defaults_form.geometry_adv_opt_group.segx_entry,
+ "geometry_segy": self.ui.geometry_defaults_form.geometry_adv_opt_group.segy_entry,
+ "geometry_area_exclusion": self.ui.geometry_defaults_form.geometry_adv_opt_group.exclusion_cb,
+ "geometry_area_shape": self.ui.geometry_defaults_form.geometry_adv_opt_group.area_shape_radio,
+ "geometry_area_strategy": self.ui.geometry_defaults_form.geometry_adv_opt_group.strategy_radio,
+ "geometry_area_overz": self.ui.geometry_defaults_form.geometry_adv_opt_group.over_z_entry,
# Geometry Editor
- "geometry_editor_sel_limit": self.ui.geometry_defaults_form.geometry_editor_group.sel_limit_entry,
- "geometry_editor_milling_type": self.ui.geometry_defaults_form.geometry_editor_group.milling_type_radio,
+ "geometry_editor_sel_limit": self.ui.geometry_defaults_form.geometry_editor_group.sel_limit_entry,
+ "geometry_editor_milling_type": self.ui.geometry_defaults_form.geometry_editor_group.milling_type_radio,
# CNCJob General
- "cncjob_plot": self.ui.cncjob_defaults_form.cncjob_gen_group.plot_cb,
- "cncjob_plot_kind": self.ui.cncjob_defaults_form.cncjob_gen_group.cncplot_method_radio,
- "cncjob_annotation": self.ui.cncjob_defaults_form.cncjob_gen_group.annotation_cb,
+ "cncjob_plot": self.ui.cncjob_defaults_form.cncjob_gen_group.plot_cb,
+ "cncjob_plot_kind": self.ui.cncjob_defaults_form.cncjob_gen_group.cncplot_method_radio,
+ "cncjob_annotation": self.ui.cncjob_defaults_form.cncjob_gen_group.annotation_cb,
- "cncjob_tooldia": self.ui.cncjob_defaults_form.cncjob_gen_group.tooldia_entry,
- "cncjob_coords_type": self.ui.cncjob_defaults_form.cncjob_gen_group.coords_type_radio,
- "cncjob_coords_decimals": self.ui.cncjob_defaults_form.cncjob_gen_group.coords_dec_entry,
- "cncjob_fr_decimals": self.ui.cncjob_defaults_form.cncjob_gen_group.fr_dec_entry,
- "cncjob_steps_per_circle": self.ui.cncjob_defaults_form.cncjob_gen_group.steps_per_circle_entry,
- "cncjob_line_ending": self.ui.cncjob_defaults_form.cncjob_gen_group.line_ending_cb,
- "cncjob_plot_line": self.ui.cncjob_defaults_form.cncjob_gen_group.line_color_entry,
- "cncjob_plot_fill": self.ui.cncjob_defaults_form.cncjob_gen_group.fill_color_entry,
- "cncjob_travel_line": self.ui.cncjob_defaults_form.cncjob_gen_group.tline_color_entry,
- "cncjob_travel_fill": self.ui.cncjob_defaults_form.cncjob_gen_group.tfill_color_entry,
+ "cncjob_tooldia": self.ui.cncjob_defaults_form.cncjob_gen_group.tooldia_entry,
+ "cncjob_coords_type": self.ui.cncjob_defaults_form.cncjob_gen_group.coords_type_radio,
+ "cncjob_coords_decimals": self.ui.cncjob_defaults_form.cncjob_gen_group.coords_dec_entry,
+ "cncjob_fr_decimals": self.ui.cncjob_defaults_form.cncjob_gen_group.fr_dec_entry,
+ "cncjob_steps_per_circle": self.ui.cncjob_defaults_form.cncjob_gen_group.steps_per_circle_entry,
+ "cncjob_line_ending": self.ui.cncjob_defaults_form.cncjob_gen_group.line_ending_cb,
+ "cncjob_plot_line": self.ui.cncjob_defaults_form.cncjob_gen_group.line_color_entry,
+ "cncjob_plot_fill": self.ui.cncjob_defaults_form.cncjob_gen_group.fill_color_entry,
+ "cncjob_travel_line": self.ui.cncjob_defaults_form.cncjob_gen_group.tline_color_entry,
+ "cncjob_travel_fill": self.ui.cncjob_defaults_form.cncjob_gen_group.tfill_color_entry,
# CNC Job Options
- "cncjob_prepend": self.ui.cncjob_defaults_form.cncjob_opt_group.prepend_text,
- "cncjob_append": self.ui.cncjob_defaults_form.cncjob_opt_group.append_text,
+ "cncjob_prepend": self.ui.cncjob_defaults_form.cncjob_opt_group.prepend_text,
+ "cncjob_append": self.ui.cncjob_defaults_form.cncjob_opt_group.append_text,
# CNC Job Advanced Options
- "cncjob_toolchange_macro": self.ui.cncjob_defaults_form.cncjob_adv_opt_group.toolchange_text,
- "cncjob_toolchange_macro_enable": self.ui.cncjob_defaults_form.cncjob_adv_opt_group.toolchange_cb,
- "cncjob_annotation_fontsize": self.ui.cncjob_defaults_form.cncjob_adv_opt_group.annotation_fontsize_sp,
+ "cncjob_toolchange_macro": self.ui.cncjob_defaults_form.cncjob_adv_opt_group.toolchange_text,
+ "cncjob_toolchange_macro_enable": self.ui.cncjob_defaults_form.cncjob_adv_opt_group.toolchange_cb,
+ "cncjob_annotation_fontsize": self.ui.cncjob_defaults_form.cncjob_adv_opt_group.annotation_fontsize_sp,
"cncjob_annotation_fontcolor": self.ui.cncjob_defaults_form.cncjob_adv_opt_group.annotation_fontcolor_entry,
+ # Isolation Routing Tool
+ "tools_iso_tooldia": self.ui.tools_defaults_form.tools_iso_group.tool_dia_entry,
+ "tools_iso_order": self.ui.tools_defaults_form.tools_iso_group.order_radio,
+ "tools_iso_tool_type": self.ui.tools_defaults_form.tools_iso_group.tool_type_radio,
+ "tools_iso_tool_vtipdia": self.ui.tools_defaults_form.tools_iso_group.tipdia_entry,
+ "tools_iso_tool_vtipangle": self.ui.tools_defaults_form.tools_iso_group.tipangle_entry,
+ "tools_iso_tool_cutz": self.ui.tools_defaults_form.tools_iso_group.cutz_entry,
+ "tools_iso_newdia": self.ui.tools_defaults_form.tools_iso_group.newdia_entry,
+
+ "tools_iso_passes": self.ui.tools_defaults_form.tools_iso_group.passes_entry,
+ "tools_iso_overlap": self.ui.tools_defaults_form.tools_iso_group.overlap_entry,
+ "tools_iso_milling_type": self.ui.tools_defaults_form.tools_iso_group.milling_type_radio,
+ "tools_iso_follow": self.ui.tools_defaults_form.tools_iso_group.follow_cb,
+ "tools_iso_isotype": self.ui.tools_defaults_form.tools_iso_group.iso_type_radio,
+
+ "tools_iso_rest": self.ui.tools_defaults_form.tools_iso_group.rest_cb,
+ "tools_iso_combine_passes": self.ui.tools_defaults_form.tools_iso_group.combine_passes_cb,
+ "tools_iso_isoexcept": self.ui.tools_defaults_form.tools_iso_group.except_cb,
+ "tools_iso_selection": self.ui.tools_defaults_form.tools_iso_group.select_combo,
+ "tools_iso_area_shape": self.ui.tools_defaults_form.tools_iso_group.area_shape_radio,
+ "tools_iso_plotting": self.ui.tools_defaults_form.tools_iso_group.plotting_radio,
+
# NCC Tool
- "tools_ncctools": self.ui.tools_defaults_form.tools_ncc_group.ncc_tool_dia_entry,
- "tools_nccorder": self.ui.tools_defaults_form.tools_ncc_group.ncc_order_radio,
- "tools_nccoverlap": self.ui.tools_defaults_form.tools_ncc_group.ncc_overlap_entry,
- "tools_nccmargin": self.ui.tools_defaults_form.tools_ncc_group.ncc_margin_entry,
- "tools_nccmethod": self.ui.tools_defaults_form.tools_ncc_group.ncc_method_combo,
- "tools_nccconnect": self.ui.tools_defaults_form.tools_ncc_group.ncc_connect_cb,
- "tools_ncccontour": self.ui.tools_defaults_form.tools_ncc_group.ncc_contour_cb,
- "tools_nccrest": self.ui.tools_defaults_form.tools_ncc_group.ncc_rest_cb,
- "tools_ncc_offset_choice": self.ui.tools_defaults_form.tools_ncc_group.ncc_choice_offset_cb,
- "tools_ncc_offset_value": self.ui.tools_defaults_form.tools_ncc_group.ncc_offset_spinner,
- "tools_nccref": self.ui.tools_defaults_form.tools_ncc_group.select_combo,
- "tools_ncc_area_shape": self.ui.tools_defaults_form.tools_ncc_group.area_shape_radio,
- "tools_ncc_plotting": self.ui.tools_defaults_form.tools_ncc_group.ncc_plotting_radio,
- "tools_nccmilling_type": self.ui.tools_defaults_form.tools_ncc_group.milling_type_radio,
- "tools_ncctool_type": self.ui.tools_defaults_form.tools_ncc_group.tool_type_radio,
- "tools_ncccutz": self.ui.tools_defaults_form.tools_ncc_group.cutz_entry,
- "tools_ncctipdia": self.ui.tools_defaults_form.tools_ncc_group.tipdia_entry,
- "tools_ncctipangle": self.ui.tools_defaults_form.tools_ncc_group.tipangle_entry,
- "tools_nccnewdia": self.ui.tools_defaults_form.tools_ncc_group.newdia_entry,
+ "tools_ncctools": self.ui.tools_defaults_form.tools_ncc_group.ncc_tool_dia_entry,
+ "tools_nccorder": self.ui.tools_defaults_form.tools_ncc_group.ncc_order_radio,
+ "tools_nccoverlap": self.ui.tools_defaults_form.tools_ncc_group.ncc_overlap_entry,
+ "tools_nccmargin": self.ui.tools_defaults_form.tools_ncc_group.ncc_margin_entry,
+ "tools_nccmethod": self.ui.tools_defaults_form.tools_ncc_group.ncc_method_combo,
+ "tools_nccconnect": self.ui.tools_defaults_form.tools_ncc_group.ncc_connect_cb,
+ "tools_ncccontour": self.ui.tools_defaults_form.tools_ncc_group.ncc_contour_cb,
+ "tools_nccrest": self.ui.tools_defaults_form.tools_ncc_group.ncc_rest_cb,
+ "tools_ncc_offset_choice": self.ui.tools_defaults_form.tools_ncc_group.ncc_choice_offset_cb,
+ "tools_ncc_offset_value": self.ui.tools_defaults_form.tools_ncc_group.ncc_offset_spinner,
+ "tools_nccref": self.ui.tools_defaults_form.tools_ncc_group.select_combo,
+ "tools_ncc_area_shape": self.ui.tools_defaults_form.tools_ncc_group.area_shape_radio,
+ "tools_nccmilling_type": self.ui.tools_defaults_form.tools_ncc_group.milling_type_radio,
+ "tools_ncctool_type": self.ui.tools_defaults_form.tools_ncc_group.tool_type_radio,
+ "tools_ncccutz": self.ui.tools_defaults_form.tools_ncc_group.cutz_entry,
+ "tools_ncctipdia": self.ui.tools_defaults_form.tools_ncc_group.tipdia_entry,
+ "tools_ncctipangle": self.ui.tools_defaults_form.tools_ncc_group.tipangle_entry,
+ "tools_nccnewdia": self.ui.tools_defaults_form.tools_ncc_group.newdia_entry,
+ "tools_ncc_plotting": self.ui.tools_defaults_form.tools_ncc_group.plotting_radio,
# CutOut Tool
"tools_cutouttooldia": self.ui.tools_defaults_form.tools_cutout_group.cutout_tooldia_entry,
@@ -467,6 +479,12 @@ class PreferencesUIManager:
"tools_solderpaste_pp": self.ui.tools_defaults_form.tools_solderpaste_group.pp_combo,
"tools_sub_close_paths": self.ui.tools_defaults_form.tools_sub_group.close_paths_cb,
+ # Corner Markers Tool
+
+ "tools_corners_thickness": self.ui.tools_defaults_form.tools_corners_group.thick_entry,
+ "tools_corners_length": self.ui.tools_defaults_form.tools_corners_group.l_entry,
+ "tools_corners_margin": self.ui.tools_defaults_form.tools_corners_group.margin_entry,
+
# #######################################################################################################
# ########################################## TOOLS 2 ####################################################
# #######################################################################################################
@@ -650,7 +668,7 @@ class PreferencesUIManager:
def show_preferences_gui(self):
"""
- Called to initialize and show the Preferences GUI
+ Called to initialize and show the Preferences AppGUI
:return: None
"""
@@ -913,7 +931,51 @@ class PreferencesUIManager:
# make sure we update the self.current_defaults dict used to undo changes to self.defaults
self.defaults.current_defaults.update(self.defaults)
- if save_to_file:
+ # deal with theme change
+ theme_settings = QtCore.QSettings("Open Source", "FlatCAM")
+ if theme_settings.contains("theme"):
+ theme = theme_settings.value('theme', type=str)
+ else:
+ theme = 'white'
+
+ should_restart = False
+ theme_new_val = self.ui.general_defaults_form.general_gui_group.theme_radio.get_value()
+
+ ge = self.defaults["global_graphic_engine"]
+ ge_val = self.ui.general_defaults_form.general_app_group.ge_radio.get_value()
+
+ if theme_new_val != theme or ge != ge_val:
+ msgbox = QtWidgets.QMessageBox()
+ msgbox.setText(_("Are you sure you want to continue?"))
+ msgbox.setWindowTitle(_("Application restart"))
+ msgbox.setWindowIcon(QtGui.QIcon(self.ui.app.resource_location + '/warning.png'))
+ msgbox.setIcon(QtWidgets.QMessageBox.Question)
+
+ bt_yes = msgbox.addButton(_('Yes'), QtWidgets.QMessageBox.YesRole)
+ msgbox.addButton(_('Cancel'), QtWidgets.QMessageBox.NoRole)
+
+ msgbox.setDefaultButton(bt_yes)
+ msgbox.exec_()
+ response = msgbox.clickedButton()
+
+ if theme_new_val != theme:
+ if response == bt_yes:
+ theme_settings.setValue('theme', theme_new_val)
+
+ # This will write the setting to the platform specific storage.
+ del theme_settings
+
+ should_restart = True
+ else:
+ self.ui.general_defaults_form.general_gui_group.theme_radio.set_value(theme)
+ else:
+ if response == bt_yes:
+ self.defaults["global_graphic_engine"] = ge_val
+ should_restart = True
+ else:
+ self.ui.general_defaults_form.general_app_group.ge_radio.set_value(ge)
+
+ if save_to_file or should_restart is True:
self.save_defaults(silent=False)
# load the defaults so they are updated into the app
self.defaults.load(filename=os.path.join(self.data_path, 'current_defaults.FlatConfig'))
@@ -935,6 +997,10 @@ class PreferencesUIManager:
tb_fsize = self.ui.general_defaults_form.general_app_set_group.textbox_font_size_spinner.get_value()
settgs.setValue('textbox_font_size', tb_fsize)
+ # save the HUD font size
+ hud_fsize = self.ui.general_defaults_form.general_app_set_group.hud_font_size_spinner.get_value()
+ settgs.setValue('hud_font_size', hud_fsize)
+
settgs.setValue(
'machinist',
1 if self.ui.general_defaults_form.general_app_set_group.machinist_cb.get_value() else 0
@@ -951,6 +1017,9 @@ class PreferencesUIManager:
self.ui.plot_tab_area.closeTab(idx)
break
+ if should_restart is True:
+ self.ui.app.on_app_restart()
+
def on_pref_close_button(self):
# Preferences saved, update flag
self.preferences_changed_flag = False
@@ -1000,6 +1069,7 @@ class PreferencesUIManager:
:return: None
"""
self.defaults.report_usage("save_defaults")
+ log.debug("App.PreferencesUIManager.save_defaults()")
if data_path is None:
data_path = self.data_path
@@ -1036,7 +1106,7 @@ class PreferencesUIManager:
if self.ui.toolbarfile.isVisible():
tb_status += 1
- if self.ui.toolbargeo.isVisible():
+ if self.ui.toolbaredit.isVisible():
tb_status += 2
if self.ui.toolbarview.isVisible():
@@ -1054,7 +1124,7 @@ class PreferencesUIManager:
if self.ui.grb_edit_toolbar.isVisible():
tb_status += 64
- if self.ui.snap_toolbar.isVisible():
+ if self.ui.status_toolbar.isVisible():
tb_status += 128
if self.ui.toolbarshell.isVisible():
@@ -1118,6 +1188,7 @@ class PreferencesUIManager:
"Do you want to save the Preferences?"))
msgbox.setWindowTitle(_("Save Preferences"))
msgbox.setWindowIcon(QtGui.QIcon(self.ui.app.resource_location + '/save_as.png'))
+ msgbox.setIcon(QtWidgets.QMessageBox.Question)
bt_yes = msgbox.addButton(_('Yes'), QtWidgets.QMessageBox.YesRole)
msgbox.addButton(_('No'), QtWidgets.QMessageBox.NoRole)
diff --git a/flatcamGUI/preferences/__init__.py b/AppGUI/preferences/__init__.py
similarity index 79%
rename from flatcamGUI/preferences/__init__.py
rename to AppGUI/preferences/__init__.py
index 620fbb59..193fef34 100644
--- a/flatcamGUI/preferences/__init__.py
+++ b/AppGUI/preferences/__init__.py
@@ -1,6 +1,6 @@
-from flatcamGUI.GUIElements import *
+from AppGUI.GUIElements import *
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
diff --git a/flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py b/AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py
similarity index 97%
rename from flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py
rename to AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py
index 8d7a1cf0..f4809915 100644
--- a/flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py
+++ b/AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py
@@ -1,10 +1,10 @@
from PyQt5 import QtWidgets, QtGui, QtCore
from PyQt5.QtCore import QSettings, Qt
-from flatcamGUI.GUIElements import FCTextArea, FCCheckBox, FCComboBox, FCSpinner, FCEntry
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.GUIElements import FCTextArea, FCCheckBox, FCComboBox, FCSpinner, FCEntry
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
diff --git a/flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py b/AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py
similarity index 98%
rename from flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py
rename to AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py
index 66276e23..467b6330 100644
--- a/flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py
+++ b/AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py
@@ -1,10 +1,10 @@
from PyQt5 import QtWidgets, QtCore, QtGui
from PyQt5.QtCore import QSettings
-from flatcamGUI.GUIElements import FCCheckBox, RadioSet, FCSpinner, FCDoubleSpinner, FCEntry
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.GUIElements import FCCheckBox, RadioSet, FCSpinner, FCDoubleSpinner, FCEntry
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
diff --git a/flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py b/AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py
similarity index 94%
rename from flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py
rename to AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py
index c8eb7e66..5dab3cff 100644
--- a/flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py
+++ b/AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py
@@ -1,11 +1,11 @@
from PyQt5 import QtWidgets, QtGui
from PyQt5.QtCore import QSettings
-from flatcamGUI.GUIElements import FCTextArea
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.GUIElements import FCTextArea
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
diff --git a/flatcamGUI/preferences/cncjob/CNCJobPreferencesUI.py b/AppGUI/preferences/cncjob/CNCJobPreferencesUI.py
similarity index 77%
rename from flatcamGUI/preferences/cncjob/CNCJobPreferencesUI.py
rename to AppGUI/preferences/cncjob/CNCJobPreferencesUI.py
index cc9a7e32..79760423 100644
--- a/flatcamGUI/preferences/cncjob/CNCJobPreferencesUI.py
+++ b/AppGUI/preferences/cncjob/CNCJobPreferencesUI.py
@@ -1,8 +1,8 @@
from PyQt5 import QtWidgets
-from flatcamGUI.preferences.cncjob.CNCJobAdvOptPrefGroupUI import CNCJobAdvOptPrefGroupUI
-from flatcamGUI.preferences.cncjob.CNCJobOptPrefGroupUI import CNCJobOptPrefGroupUI
-from flatcamGUI.preferences.cncjob.CNCJobGenPrefGroupUI import CNCJobGenPrefGroupUI
+from AppGUI.preferences.cncjob.CNCJobAdvOptPrefGroupUI import CNCJobAdvOptPrefGroupUI
+from AppGUI.preferences.cncjob.CNCJobOptPrefGroupUI import CNCJobOptPrefGroupUI
+from AppGUI.preferences.cncjob.CNCJobGenPrefGroupUI import CNCJobGenPrefGroupUI
class CNCJobPreferencesUI(QtWidgets.QWidget):
diff --git a/flatcamGUI/preferences/cncjob/__init__.py b/AppGUI/preferences/cncjob/__init__.py
similarity index 100%
rename from flatcamGUI/preferences/cncjob/__init__.py
rename to AppGUI/preferences/cncjob/__init__.py
diff --git a/flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py b/AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py
similarity index 94%
rename from flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py
rename to AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py
index a63998f9..dd267816 100644
--- a/flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py
+++ b/AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py
@@ -1,10 +1,10 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
-from flatcamGUI.GUIElements import FCDoubleSpinner, FCEntry, FloatEntry, RadioSet, FCCheckBox
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.GUIElements import FCDoubleSpinner, RadioSet, FCCheckBox, NumericalEvalTupleEntry, NumericalEvalEntry
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -60,7 +60,7 @@ class ExcellonAdvOptPrefGroupUI(OptionsGroupUI):
toolchange_xy_label.setToolTip(
_("Toolchange X,Y position.")
)
- self.toolchangexy_entry = FCEntry()
+ self.toolchangexy_entry = NumericalEvalTupleEntry(border_color='#0069A9')
grid1.addWidget(toolchange_xy_label, 1, 0)
grid1.addWidget(self.toolchangexy_entry, 1, 1)
@@ -71,7 +71,7 @@ class ExcellonAdvOptPrefGroupUI(OptionsGroupUI):
_("Height of the tool just after start.\n"
"Delete the value if you don't need this feature.")
)
- self.estartz_entry = FloatEntry()
+ self.estartz_entry = NumericalEvalEntry(border_color='#0069A9')
grid1.addWidget(startzlabel, 2, 0)
grid1.addWidget(self.estartz_entry, 2, 1)
diff --git a/flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py b/AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py
similarity index 98%
rename from flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py
rename to AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py
index 5b04cf2f..25f38aea 100644
--- a/flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py
+++ b/AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py
@@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
-from flatcamGUI.GUIElements import FCSpinner, FCDoubleSpinner, RadioSet
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.GUIElements import FCSpinner, FCDoubleSpinner, RadioSet
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
diff --git a/flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py b/AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py
similarity index 97%
rename from flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py
rename to AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py
index db2e922a..4cab1c6e 100644
--- a/flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py
+++ b/AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py
@@ -1,10 +1,10 @@
from PyQt5 import QtWidgets, QtCore
from PyQt5.QtCore import QSettings
-from flatcamGUI.GUIElements import RadioSet, FCSpinner
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.GUIElements import RadioSet, FCSpinner
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
diff --git a/flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py b/AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py
similarity index 76%
rename from flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py
rename to AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py
index 06d4dfc7..174568a2 100644
--- a/flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py
+++ b/AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py
@@ -3,10 +3,10 @@ import platform
from PyQt5 import QtWidgets, QtCore, QtGui
from PyQt5.QtCore import QSettings
-from flatcamGUI.GUIElements import FCCheckBox, FCSpinner, RadioSet, FCEntry
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.GUIElements import FCCheckBox, FCSpinner, RadioSet, FCEntry
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -36,22 +36,31 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI):
grid1 = QtWidgets.QGridLayout()
self.layout.addLayout(grid1)
+ # Plot CB
self.plot_cb = FCCheckBox(label=_('Plot'))
self.plot_cb.setToolTip(
"Plot (show) this object."
)
grid1.addWidget(self.plot_cb, 0, 0)
+ # Solid CB
self.solid_cb = FCCheckBox(label=_('Solid'))
self.solid_cb.setToolTip(
"Plot as solid circles."
)
grid1.addWidget(self.solid_cb, 0, 1)
+ # Multicolored CB
+ self.multicolored_cb = FCCheckBox(label='%s' % _('M-Color'))
+ self.multicolored_cb.setToolTip(
+ _("Draw polygons in different colors.")
+ )
+ grid1.addWidget(self.multicolored_cb, 0, 2)
+
separator_line = QtWidgets.QFrame()
separator_line.setFrameShape(QtWidgets.QFrame.HLine)
separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
- grid1.addWidget(separator_line, 1, 0, 1, 2)
+ grid1.addWidget(separator_line, 1, 0, 1, 3)
grid2 = QtWidgets.QGridLayout()
self.layout.addLayout(grid2)
@@ -341,6 +350,12 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI):
# Load the defaults values into the Excellon Format and Excellon Zeros fields
self.excellon_defaults_button.clicked.connect(self.on_excellon_defaults_button)
+ # Make sure that when the Excellon loading parameters are changed, the change is reflected in the
+ # Export Excellon parameters.
+ self.update_excellon_cb.stateChanged.connect(self.on_update_exc_export)
+
+ # call it once to make sure it is updated at startup
+ self.on_update_exc_export(state=self.app.defaults["excellon_update"])
def optimization_selection(self):
if self.excellon_optimization_radio.get_value() == 'M':
@@ -413,3 +428,105 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI):
self.app.preferencesUiManager.defaults_form_fields["excellon_format_upper_mm"].set_value('3')
self.app.preferencesUiManager.defaults_form_fields["excellon_zeros"].set_value('L')
self.app.preferencesUiManager.defaults_form_fields["excellon_units"].set_value('INCH')
+
+ def on_update_exc_export(self, state):
+ """
+ This is handling the update of Excellon Export parameters based on the ones in the Excellon General but only
+ if the update_excellon_cb checkbox is checked
+
+ :param state: state of the checkbox whose signals is tied to his slot
+ :return:
+ """
+ if state:
+ # first try to disconnect
+ try:
+ self.excellon_format_upper_in_entry.returnPressed.disconnect(self.on_excellon_format_changed)
+ except TypeError:
+ pass
+ try:
+ self.excellon_format_lower_in_entry.returnPressed.disconnect(self.on_excellon_format_changed)
+ except TypeError:
+ pass
+ try:
+ self.excellon_format_upper_mm_entry.returnPressed.disconnect(self.on_excellon_format_changed)
+ except TypeError:
+ pass
+ try:
+ self.excellon_format_lower_mm_entry.returnPressed.disconnect(self.on_excellon_format_changed)
+ except TypeError:
+ pass
+
+ try:
+ self.excellon_zeros_radio.activated_custom.disconnect(self.on_excellon_zeros_changed)
+ except TypeError:
+ pass
+ try:
+ self.excellon_units_radio.activated_custom.disconnect(self.on_excellon_zeros_changed)
+ except TypeError:
+ pass
+
+ # the connect them
+ self.excellon_format_upper_in_entry.returnPressed.connect(self.on_excellon_format_changed)
+ self.excellon_format_lower_in_entry.returnPressed.connect(self.on_excellon_format_changed)
+ self.excellon_format_upper_mm_entry.returnPressed.connect(self.on_excellon_format_changed)
+ self.excellon_format_lower_mm_entry.returnPressed.connect(self.on_excellon_format_changed)
+ self.excellon_zeros_radio.activated_custom.connect(self.on_excellon_zeros_changed)
+ self.excellon_units_radio.activated_custom.connect(self.on_excellon_units_changed)
+ else:
+ # disconnect the signals
+ try:
+ self.excellon_format_upper_in_entry.returnPressed.disconnect(self.on_excellon_format_changed)
+ except TypeError:
+ pass
+ try:
+ self.excellon_format_lower_in_entry.returnPressed.disconnect(self.on_excellon_format_changed)
+ except TypeError:
+ pass
+ try:
+ self.excellon_format_upper_mm_entry.returnPressed.disconnect(self.on_excellon_format_changed)
+ except TypeError:
+ pass
+ try:
+ self.excellon_format_lower_mm_entry.returnPressed.disconnect(self.on_excellon_format_changed)
+ except TypeError:
+ pass
+
+ try:
+ self.excellon_zeros_radio.activated_custom.disconnect(self.on_excellon_zeros_changed)
+ except TypeError:
+ pass
+ try:
+ self.excellon_units_radio.activated_custom.disconnect(self.on_excellon_zeros_changed)
+ except TypeError:
+ pass
+
+ def on_excellon_format_changed(self):
+ """
+ Slot activated when the user changes the Excellon format values in Preferences -> Excellon -> Excellon General
+ :return: None
+ """
+ if self.excellon_units_radio.get_value().upper() == 'METRIC':
+ self.app.ui.excellon_defaults_form.excellon_exp_group.format_whole_entry.set_value(
+ self.excellon_format_upper_mm_entry.get_value())
+ self.app.ui.excellon_defaults_form.excellon_exp_group.format_dec_entry.set_value(
+ self.excellon_format_lower_mm_entry.get_value())
+ else:
+ self.app.ui.excellon_defaults_form.excellon_exp_group.format_whole_entry.set_value(
+ self.excellon_format_upper_in_entry.get_value())
+ self.app.ui.excellon_defaults_form.excellon_exp_group.format_dec_entry.set_value(
+ self.excellon_format_lower_in_entry.get_value())
+
+ def on_excellon_zeros_changed(self, val):
+ """
+ Slot activated when the user changes the Excellon zeros values in Preferences -> Excellon -> Excellon General
+ :return: None
+ """
+ self.app.ui.excellon_defaults_form.excellon_exp_group.zeros_radio.set_value(val + 'Z')
+
+ def on_excellon_units_changed(self, val):
+ """
+ Slot activated when the user changes the Excellon unit values in Preferences -> Excellon -> Excellon General
+ :return: None
+ """
+ self.app.ui.excellon_defaults_form.excellon_exp_group.excellon_units_radio.set_value(val)
+ self.on_excellon_format_changed()
diff --git a/flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py b/AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py
similarity index 96%
rename from flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py
rename to AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py
index cdc6ce5e..93aec0b3 100644
--- a/flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py
+++ b/AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py
@@ -1,12 +1,12 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import Qt, QSettings
-from flatcamGUI.GUIElements import RadioSet, FCDoubleSpinner, FCCheckBox, FCEntry, FCSpinner, OptionalInputSection, \
- FCComboBox
-from flatcamGUI.preferences import machinist_setting
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.GUIElements import RadioSet, FCDoubleSpinner, FCCheckBox, FCEntry, FCSpinner, OptionalInputSection, \
+ FCComboBox, NumericalEvalTupleEntry
+from AppGUI.preferences import machinist_setting
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -198,7 +198,7 @@ class ExcellonOptPrefGroupUI(OptionsGroupUI):
"If no value is entered then there is no move\n"
"on X,Y plane at the end of the job.")
)
- self.endxy_entry = FCEntry()
+ self.endxy_entry = NumericalEvalTupleEntry(border_color='#0069A9')
grid2.addWidget(endmove_xy_label, 9, 0)
grid2.addWidget(self.endxy_entry, 9, 1)
diff --git a/flatcamGUI/preferences/excellon/ExcellonPreferencesUI.py b/AppGUI/preferences/excellon/ExcellonPreferencesUI.py
similarity index 75%
rename from flatcamGUI/preferences/excellon/ExcellonPreferencesUI.py
rename to AppGUI/preferences/excellon/ExcellonPreferencesUI.py
index b3d6d165..dd1305d9 100644
--- a/flatcamGUI/preferences/excellon/ExcellonPreferencesUI.py
+++ b/AppGUI/preferences/excellon/ExcellonPreferencesUI.py
@@ -1,14 +1,14 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
-from flatcamGUI.preferences.excellon.ExcellonEditorPrefGroupUI import ExcellonEditorPrefGroupUI
-from flatcamGUI.preferences.excellon.ExcellonExpPrefGroupUI import ExcellonExpPrefGroupUI
-from flatcamGUI.preferences.excellon.ExcellonAdvOptPrefGroupUI import ExcellonAdvOptPrefGroupUI
-from flatcamGUI.preferences.excellon.ExcellonOptPrefGroupUI import ExcellonOptPrefGroupUI
-from flatcamGUI.preferences.excellon.ExcellonGenPrefGroupUI import ExcellonGenPrefGroupUI
+from AppGUI.preferences.excellon.ExcellonEditorPrefGroupUI import ExcellonEditorPrefGroupUI
+from AppGUI.preferences.excellon.ExcellonExpPrefGroupUI import ExcellonExpPrefGroupUI
+from AppGUI.preferences.excellon.ExcellonAdvOptPrefGroupUI import ExcellonAdvOptPrefGroupUI
+from AppGUI.preferences.excellon.ExcellonOptPrefGroupUI import ExcellonOptPrefGroupUI
+from AppGUI.preferences.excellon.ExcellonGenPrefGroupUI import ExcellonGenPrefGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -31,7 +31,7 @@ class ExcellonPreferencesUI(QtWidgets.QWidget):
self.decimals = decimals
self.excellon_gen_group = ExcellonGenPrefGroupUI(decimals=self.decimals)
- self.excellon_gen_group.setMinimumWidth(220)
+ self.excellon_gen_group.setMinimumWidth(240)
self.excellon_opt_group = ExcellonOptPrefGroupUI(decimals=self.decimals)
self.excellon_opt_group.setMinimumWidth(290)
self.excellon_exp_group = ExcellonExpPrefGroupUI(decimals=self.decimals)
diff --git a/flatcamGUI/preferences/excellon/__init__.py b/AppGUI/preferences/excellon/__init__.py
similarity index 100%
rename from flatcamGUI/preferences/excellon/__init__.py
rename to AppGUI/preferences/excellon/__init__.py
diff --git a/flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py b/AppGUI/preferences/general/GeneralAPPSetGroupUI.py
similarity index 94%
rename from flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py
rename to AppGUI/preferences/general/GeneralAPPSetGroupUI.py
index 3daff809..a056c200 100644
--- a/flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py
+++ b/AppGUI/preferences/general/GeneralAPPSetGroupUI.py
@@ -1,13 +1,13 @@
from PyQt5 import QtCore, QtWidgets, QtGui
from PyQt5.QtCore import QSettings
-from flatcamGUI.GUIElements import FCDoubleSpinner, FCCheckBox, FCComboBox, RadioSet, OptionalInputSection, FCSpinner, \
+from AppGUI.GUIElements import FCDoubleSpinner, FCCheckBox, FCComboBox, RadioSet, OptionalInputSection, FCSpinner, \
FCEntry
-from flatcamGUI.preferences import settings
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.preferences import settings
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -177,14 +177,6 @@ class GeneralAPPSetGroupUI(OptionsGroupUI):
{'label': _('Landscape'), 'value': 'l'},
], stretch=False)
- self.wks = OptionalInputSection(self.workspace_cb,
- [
- self.workspace_type_lbl,
- self.wk_cb,
- self.wk_orientation_label,
- self.wk_orientation_radio
- ])
-
grid0.addWidget(self.wk_orientation_label, 8, 0)
grid0.addWidget(self.wk_orientation_radio, 8, 1)
@@ -201,7 +193,7 @@ class GeneralAPPSetGroupUI(OptionsGroupUI):
self.notebook_font_size_label = QtWidgets.QLabel('%s:' % _('Notebook'))
self.notebook_font_size_label.setToolTip(
_("This sets the font size for the elements found in the Notebook.\n"
- "The notebook is the collapsible area in the left side of the GUI,\n"
+ "The notebook is the collapsible area in the left side of the AppGUI,\n"
"and include the Project, Selected and Tool tabs.")
)
@@ -240,7 +232,7 @@ class GeneralAPPSetGroupUI(OptionsGroupUI):
# TextBox Font Size
self.textbox_font_size_label = QtWidgets.QLabel('%s:' % _('Textbox'))
self.textbox_font_size_label.setToolTip(
- _("This sets the font size for the Textbox GUI\n"
+ _("This sets the font size for the Textbox AppGUI\n"
"elements that are used in FlatCAM.")
)
@@ -257,10 +249,29 @@ class GeneralAPPSetGroupUI(OptionsGroupUI):
grid0.addWidget(self.textbox_font_size_label, 13, 0)
grid0.addWidget(self.textbox_font_size_spinner, 13, 1)
+ # HUD Font Size
+ self.hud_font_size_label = QtWidgets.QLabel('%s:' % _('HUD'))
+ self.hud_font_size_label.setToolTip(
+ _("This sets the font size for the Heads Up Display.")
+ )
+
+ self.hud_font_size_spinner = FCSpinner()
+ self.hud_font_size_spinner.set_range(8, 40)
+ self.hud_font_size_spinner.setWrapping(True)
+
+ qsettings = QSettings("Open Source", "FlatCAM")
+ if qsettings.contains("hud_font_size"):
+ self.hud_font_size_spinner.set_value(settings.value('hud_font_size', type=int))
+ else:
+ self.hud_font_size_spinner.set_value(8)
+
+ grid0.addWidget(self.hud_font_size_label, 14, 0)
+ grid0.addWidget(self.hud_font_size_spinner, 14, 1)
+
separator_line = QtWidgets.QFrame()
separator_line.setFrameShape(QtWidgets.QFrame.HLine)
separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
- grid0.addWidget(separator_line, 14, 0, 1, 2)
+ grid0.addWidget(separator_line, 16, 0, 1, 2)
# -----------------------------------------------------------
# -------------- MOUSE SETTINGS -----------------------------
diff --git a/flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py b/AppGUI/preferences/general/GeneralAppPrefGroupUI.py
similarity index 97%
rename from flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py
rename to AppGUI/preferences/general/GeneralAppPrefGroupUI.py
index 7f238b5f..81d99b7d 100644
--- a/flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py
+++ b/AppGUI/preferences/general/GeneralAppPrefGroupUI.py
@@ -3,12 +3,12 @@ import sys
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
-from flatcamGUI.GUIElements import RadioSet, FCSpinner, FCCheckBox, FCComboBox, FCButton, OptionalInputSection, \
+from AppGUI.GUIElements import RadioSet, FCSpinner, FCCheckBox, FCComboBox, FCButton, OptionalInputSection, \
FCDoubleSpinner
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -380,12 +380,11 @@ class GeneralAppPrefGroupUI(OptionsGroupUI):
def on_toggle_shell_from_settings(self, state):
"""
- Toggle shell: if is visible close it, if it is closed then open it
+ Toggle shell ui: if is visible close it, if it is closed then open it
+
:return: None
"""
- self.app.defaults.report_usage("on_toggle_shell_from_settings()")
-
if state is True:
if not self.app.ui.shell_dock.isVisible():
self.app.ui.shell_dock.show()
diff --git a/flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py b/AppGUI/preferences/general/GeneralGUIPrefGroupUI.py
similarity index 93%
rename from flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py
rename to AppGUI/preferences/general/GeneralGUIPrefGroupUI.py
index 94044c27..67dabc55 100644
--- a/flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py
+++ b/AppGUI/preferences/general/GeneralGUIPrefGroupUI.py
@@ -1,11 +1,11 @@
from PyQt5 import QtWidgets, QtCore, QtGui
from PyQt5.QtCore import QSettings, Qt
-from flatcamGUI.GUIElements import RadioSet, FCCheckBox, FCButton, FCComboBox, FCEntry, FCSpinner
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.GUIElements import RadioSet, FCCheckBox, FCButton, FCComboBox, FCEntry, FCSpinner
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -56,13 +56,13 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI):
)
grid0.addWidget(self.gray_icons_cb, 1, 0, 1, 3)
- self.theme_button = FCButton(_("Apply Theme"))
- self.theme_button.setToolTip(
- _("Select a theme for FlatCAM.\n"
- "It will theme the plot area.\n"
- "The application will restart after change.")
- )
- grid0.addWidget(self.theme_button, 2, 0, 1, 3)
+ # self.theme_button = FCButton(_("Apply Theme"))
+ # self.theme_button.setToolTip(
+ # _("Select a theme for FlatCAM.\n"
+ # "It will theme the plot area.\n"
+ # "The application will restart after change.")
+ # )
+ # grid0.addWidget(self.theme_button, 2, 0, 1, 3)
separator_line = QtWidgets.QFrame()
separator_line.setFrameShape(QtWidgets.QFrame.HLine)
@@ -381,8 +381,6 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI):
self.layout.addStretch()
- self.theme_button.clicked.connect(self.on_theme_change)
-
# #############################################################################
# ############################# GUI COLORS SIGNALS ############################
# #############################################################################
@@ -418,16 +416,6 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI):
self.layout_combo.activated.connect(self.on_layout)
- def on_theme_change(self):
- val = self.theme_radio.get_value()
- qsettings = QSettings("Open Source", "FlatCAM")
- qsettings.setValue('theme', val)
-
- # This will write the setting to the platform specific storage.
- del qsettings
-
- self.app.on_app_restart()
-
@staticmethod
def handle_style(style):
# set current style
@@ -659,14 +647,13 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI):
# first remove the toolbars:
try:
self.app.ui.removeToolBar(self.app.ui.toolbarfile)
- self.app.ui.removeToolBar(self.app.ui.toolbargeo)
+ self.app.ui.removeToolBar(self.app.ui.toolbaredit)
self.app.ui.removeToolBar(self.app.ui.toolbarview)
self.app.ui.removeToolBar(self.app.ui.toolbarshell)
self.app.ui.removeToolBar(self.app.ui.toolbartools)
self.app.ui.removeToolBar(self.app.ui.exc_edit_toolbar)
self.app.ui.removeToolBar(self.app.ui.geo_edit_toolbar)
self.app.ui.removeToolBar(self.app.ui.grb_edit_toolbar)
- self.app.ui.removeToolBar(self.app.ui.snap_toolbar)
self.app.ui.removeToolBar(self.app.ui.toolbarshell)
except Exception:
pass
@@ -677,9 +664,9 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI):
self.app.ui.toolbarfile.setObjectName('File_TB')
self.app.ui.addToolBar(Qt.LeftToolBarArea, self.app.ui.toolbarfile)
- self.app.ui.toolbargeo = QtWidgets.QToolBar('Edit Toolbar')
- self.app.ui.toolbargeo.setObjectName('Edit_TB')
- self.app.ui.addToolBar(Qt.LeftToolBarArea, self.app.ui.toolbargeo)
+ self.app.ui.toolbaredit = QtWidgets.QToolBar('Edit Toolbar')
+ self.app.ui.toolbaredit.setObjectName('Edit_TB')
+ self.app.ui.addToolBar(Qt.LeftToolBarArea, self.app.ui.toolbaredit)
self.app.ui.toolbarshell = QtWidgets.QToolBar('Shell Toolbar')
self.app.ui.toolbarshell.setObjectName('Shell_TB')
@@ -709,22 +696,15 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI):
self.app.ui.exc_edit_toolbar.setObjectName('ExcEditor_TB')
self.app.ui.addToolBar(Qt.RightToolBarArea, self.app.ui.exc_edit_toolbar)
- self.app.ui.snap_toolbar = QtWidgets.QToolBar('Grid Toolbar')
- self.app.ui.snap_toolbar.setObjectName('Snap_TB')
- self.app.ui.snap_toolbar.setMaximumHeight(30)
- self.app.ui.splitter_left.addWidget(self.app.ui.snap_toolbar)
-
- self.app.ui.corner_snap_btn.setVisible(True)
- self.app.ui.snap_magnet.setVisible(True)
else:
# ## TOOLBAR INSTALLATION # ##
self.app.ui.toolbarfile = QtWidgets.QToolBar('File Toolbar')
self.app.ui.toolbarfile.setObjectName('File_TB')
self.app.ui.addToolBar(self.app.ui.toolbarfile)
- self.app.ui.toolbargeo = QtWidgets.QToolBar('Edit Toolbar')
- self.app.ui.toolbargeo.setObjectName('Edit_TB')
- self.app.ui.addToolBar(self.app.ui.toolbargeo)
+ self.app.ui.toolbaredit = QtWidgets.QToolBar('Edit Toolbar')
+ self.app.ui.toolbaredit.setObjectName('Edit_TB')
+ self.app.ui.addToolBar(self.app.ui.toolbaredit)
self.app.ui.toolbarview = QtWidgets.QToolBar('View Toolbar')
self.app.ui.toolbarview.setObjectName('View_TB')
@@ -755,18 +735,9 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI):
self.app.ui.grb_edit_toolbar.setObjectName('GrbEditor_TB')
self.app.ui.addToolBar(self.app.ui.grb_edit_toolbar)
- self.app.ui.snap_toolbar = QtWidgets.QToolBar('Grid Toolbar')
- self.app.ui.snap_toolbar.setObjectName('Snap_TB')
- # self.app.ui.snap_toolbar.setMaximumHeight(30)
- self.app.ui.addToolBar(self.app.ui.snap_toolbar)
-
- self.app.ui.corner_snap_btn.setVisible(False)
- self.app.ui.snap_magnet.setVisible(False)
-
if current_layout == 'minimal':
self.app.ui.toolbarview.setVisible(False)
self.app.ui.toolbarshell.setVisible(False)
- self.app.ui.snap_toolbar.setVisible(False)
self.app.ui.geo_edit_toolbar.setVisible(False)
self.app.ui.grb_edit_toolbar.setVisible(False)
self.app.ui.exc_edit_toolbar.setVisible(False)
@@ -779,7 +750,9 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI):
self.app.connect_toolbar_signals()
self.app.ui.grid_snap_btn.setChecked(True)
- self.app.ui.on_grid_snap_triggered(state=True)
+
+ self.app.ui.corner_snap_btn.setVisible(False)
+ self.app.ui.snap_magnet.setVisible(False)
self.app.ui.grid_gap_x_entry.setText(str(self.app.defaults["global_gridx"]))
self.app.ui.grid_gap_y_entry.setText(str(self.app.defaults["global_gridy"]))
diff --git a/flatcamGUI/preferences/general/GeneralPreferencesUI.py b/AppGUI/preferences/general/GeneralPreferencesUI.py
similarity index 80%
rename from flatcamGUI/preferences/general/GeneralPreferencesUI.py
rename to AppGUI/preferences/general/GeneralPreferencesUI.py
index 46636438..45ccf191 100644
--- a/flatcamGUI/preferences/general/GeneralPreferencesUI.py
+++ b/AppGUI/preferences/general/GeneralPreferencesUI.py
@@ -1,12 +1,12 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
-from flatcamGUI.preferences.general.GeneralAppPrefGroupUI import GeneralAppPrefGroupUI
-from flatcamGUI.preferences.general.GeneralAPPSetGroupUI import GeneralAPPSetGroupUI
-from flatcamGUI.preferences.general.GeneralGUIPrefGroupUI import GeneralGUIPrefGroupUI
+from AppGUI.preferences.general.GeneralAppPrefGroupUI import GeneralAppPrefGroupUI
+from AppGUI.preferences.general.GeneralAPPSetGroupUI import GeneralAPPSetGroupUI
+from AppGUI.preferences.general.GeneralGUIPrefGroupUI import GeneralGUIPrefGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
diff --git a/flatcamGUI/preferences/general/__init__.py b/AppGUI/preferences/general/__init__.py
similarity index 100%
rename from flatcamGUI/preferences/general/__init__.py
rename to AppGUI/preferences/general/__init__.py
diff --git a/flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py b/AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py
similarity index 90%
rename from flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py
rename to AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py
index 7ade9b90..f122186c 100644
--- a/flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py
+++ b/AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py
@@ -1,11 +1,12 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
-from flatcamGUI.GUIElements import FCEntry, FloatEntry, FCDoubleSpinner, FCCheckBox, RadioSet, FCLabel
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.GUIElements import FCDoubleSpinner, FCCheckBox, RadioSet, FCLabel, NumericalEvalTupleEntry, \
+ NumericalEvalEntry
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -46,8 +47,9 @@ class GeometryAdvOptPrefGroupUI(OptionsGroupUI):
toolchange_xy_label.setToolTip(
_("Toolchange X,Y position.")
)
+ self.toolchangexy_entry = NumericalEvalTupleEntry(border_color='#0069A9')
+
grid1.addWidget(toolchange_xy_label, 1, 0)
- self.toolchangexy_entry = FCEntry()
grid1.addWidget(self.toolchangexy_entry, 1, 1)
# Start move Z
@@ -56,8 +58,9 @@ class GeometryAdvOptPrefGroupUI(OptionsGroupUI):
_("Height of the tool just after starting the work.\n"
"Delete the value if you don't need this feature.")
)
+ self.gstartz_entry = NumericalEvalEntry(border_color='#0069A9')
+
grid1.addWidget(startzlabel, 2, 0)
- self.gstartz_entry = FloatEntry()
grid1.addWidget(self.gstartz_entry, 2, 1)
# Feedrate rapids
@@ -186,6 +189,11 @@ class GeometryAdvOptPrefGroupUI(OptionsGroupUI):
grid1.addWidget(segy_label, 11, 0)
grid1.addWidget(self.segy_entry, 11, 1)
+ separator_line = QtWidgets.QFrame()
+ separator_line.setFrameShape(QtWidgets.QFrame.HLine)
+ separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
+ grid1.addWidget(separator_line, 12, 0, 1, 2)
+
# -----------------------------
# --- Area Exclusion ----------
# -----------------------------
@@ -195,10 +203,10 @@ class GeometryAdvOptPrefGroupUI(OptionsGroupUI):
"Those parameters are available only for\n"
"Advanced App. Level.")
)
- grid1.addWidget(self.adv_label, 12, 0, 1, 2)
+ grid1.addWidget(self.adv_label, 13, 0, 1, 2)
# Exclusion Area CB
- self.exclusion_cb = FCCheckBox('%s:' % _("Exclusion areas"))
+ self.exclusion_cb = FCCheckBox('%s' % _("Exclusion areas"))
self.exclusion_cb.setToolTip(
_(
"Include exclusion areas.\n"
@@ -206,7 +214,7 @@ class GeometryAdvOptPrefGroupUI(OptionsGroupUI):
"is forbidden."
)
)
- grid1.addWidget(self.exclusion_cb, 13, 0, 1, 2)
+ grid1.addWidget(self.exclusion_cb, 14, 0, 1, 2)
# Area Selection shape
self.area_shape_label = QtWidgets.QLabel('%s:' % _("Shape"))
@@ -217,8 +225,8 @@ class GeometryAdvOptPrefGroupUI(OptionsGroupUI):
self.area_shape_radio = RadioSet([{'label': _("Square"), 'value': 'square'},
{'label': _("Polygon"), 'value': 'polygon'}])
- grid1.addWidget(self.area_shape_label, 14, 0)
- grid1.addWidget(self.area_shape_radio, 14, 1)
+ grid1.addWidget(self.area_shape_label, 15, 0)
+ grid1.addWidget(self.area_shape_radio, 15, 1)
# Chose Strategy
self.strategy_label = FCLabel('%s:' % _("Strategy"))
@@ -229,8 +237,8 @@ class GeometryAdvOptPrefGroupUI(OptionsGroupUI):
self.strategy_radio = RadioSet([{'label': _('Over'), 'value': 'over'},
{'label': _('Around'), 'value': 'around'}])
- grid1.addWidget(self.strategy_label, 15, 0)
- grid1.addWidget(self.strategy_radio, 15, 1)
+ grid1.addWidget(self.strategy_label, 16, 0)
+ grid1.addWidget(self.strategy_radio, 16, 1)
# Over Z
self.over_z_label = FCLabel('%s:' % _("Over Z"))
diff --git a/flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py b/AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py
similarity index 93%
rename from flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py
rename to AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py
index 9c5204ab..1ac42f42 100644
--- a/flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py
+++ b/AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py
@@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
-from flatcamGUI.GUIElements import FCSpinner, RadioSet
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.GUIElements import FCSpinner, RadioSet
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
diff --git a/flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py b/AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py
similarity index 89%
rename from flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py
rename to AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py
index 60479236..dd4f77ac 100644
--- a/flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py
+++ b/AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py
@@ -1,11 +1,11 @@
from PyQt5 import QtWidgets, QtCore, QtGui
from PyQt5.QtCore import QSettings
-from flatcamGUI.GUIElements import FCCheckBox, FCSpinner, FCEntry
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.GUIElements import FCCheckBox, FCSpinner, FCEntry
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -31,12 +31,22 @@ class GeometryGenPrefGroupUI(OptionsGroupUI):
self.plot_options_label = QtWidgets.QLabel("%s:" % _("Plot Options"))
self.layout.addWidget(self.plot_options_label)
+ plot_hlay = QtWidgets.QHBoxLayout()
+ self.layout.addLayout((plot_hlay))
+
# Plot CB
self.plot_cb = FCCheckBox(label=_('Plot'))
self.plot_cb.setToolTip(
_("Plot (show) this object.")
)
- self.layout.addWidget(self.plot_cb)
+ plot_hlay.addWidget(self.plot_cb)
+
+ # Multicolored CB
+ self.multicolored_cb = FCCheckBox(label=_('M-Color'))
+ self.multicolored_cb.setToolTip(
+ _("Draw polygons in different colors.")
+ )
+ plot_hlay.addWidget(self.multicolored_cb)
grid0 = QtWidgets.QGridLayout()
self.layout.addLayout(grid0)
diff --git a/flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py b/AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py
similarity index 96%
rename from flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py
rename to AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py
index c2e0f6e2..ebbe0c34 100644
--- a/flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py
+++ b/AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py
@@ -1,12 +1,13 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import Qt, QSettings
-from flatcamGUI.GUIElements import FCDoubleSpinner, FCCheckBox, OptionalInputSection, FCEntry, FCSpinner, FCComboBox
-from flatcamGUI.preferences import machinist_setting
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.GUIElements import FCDoubleSpinner, FCCheckBox, OptionalInputSection, FCSpinner, FCComboBox, \
+ NumericalEvalTupleEntry
+from AppGUI.preferences import machinist_setting
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -176,7 +177,7 @@ class GeometryOptPrefGroupUI(OptionsGroupUI):
"If no value is entered then there is no move\n"
"on X,Y plane at the end of the job.")
)
- self.endxy_entry = FCEntry()
+ self.endxy_entry = NumericalEvalTupleEntry(border_color='#0069A9')
grid1.addWidget(endmove_xy_label, 7, 0)
grid1.addWidget(self.endxy_entry, 7, 1)
diff --git a/flatcamGUI/preferences/geometry/GeometryPreferencesUI.py b/AppGUI/preferences/geometry/GeometryPreferencesUI.py
similarity index 77%
rename from flatcamGUI/preferences/geometry/GeometryPreferencesUI.py
rename to AppGUI/preferences/geometry/GeometryPreferencesUI.py
index cf906d61..fd1709ef 100644
--- a/flatcamGUI/preferences/geometry/GeometryPreferencesUI.py
+++ b/AppGUI/preferences/geometry/GeometryPreferencesUI.py
@@ -1,13 +1,13 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
-from flatcamGUI.preferences.geometry.GeometryEditorPrefGroupUI import GeometryEditorPrefGroupUI
-from flatcamGUI.preferences.geometry.GeometryAdvOptPrefGroupUI import GeometryAdvOptPrefGroupUI
-from flatcamGUI.preferences.geometry.GeometryOptPrefGroupUI import GeometryOptPrefGroupUI
-from flatcamGUI.preferences.geometry.GeometryGenPrefGroupUI import GeometryGenPrefGroupUI
+from AppGUI.preferences.geometry.GeometryEditorPrefGroupUI import GeometryEditorPrefGroupUI
+from AppGUI.preferences.geometry.GeometryAdvOptPrefGroupUI import GeometryAdvOptPrefGroupUI
+from AppGUI.preferences.geometry.GeometryOptPrefGroupUI import GeometryOptPrefGroupUI
+from AppGUI.preferences.geometry.GeometryGenPrefGroupUI import GeometryGenPrefGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
diff --git a/flatcamGUI/preferences/geometry/__init__.py b/AppGUI/preferences/geometry/__init__.py
similarity index 100%
rename from flatcamGUI/preferences/geometry/__init__.py
rename to AppGUI/preferences/geometry/__init__.py
diff --git a/flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py b/AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py
similarity index 52%
rename from flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py
rename to AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py
index 20376bfd..7080b81d 100644
--- a/flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py
+++ b/AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py
@@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
-from flatcamGUI.GUIElements import FCCheckBox, RadioSet, FCDoubleSpinner, FCSpinner, OptionalInputSection
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.GUIElements import FCCheckBox, RadioSet, FCDoubleSpinner, FCSpinner, OptionalInputSection
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -63,85 +63,6 @@ class GerberAdvOptPrefGroupUI(OptionsGroupUI):
separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
grid0.addWidget(separator_line, 2, 0, 1, 2)
- # Tool Type
- self.tool_type_label = QtWidgets.QLabel('%s' % _('Tool Type'))
- self.tool_type_label.setToolTip(
- _("Choose which tool to use for Gerber isolation:\n"
- "'Circular' or 'V-shape'.\n"
- "When the 'V-shape' is selected then the tool\n"
- "diameter will depend on the chosen cut depth.")
- )
- self.tool_type_radio = RadioSet([{'label': 'Circular', 'value': 'circular'},
- {'label': 'V-Shape', 'value': 'v'}])
-
- grid0.addWidget(self.tool_type_label, 3, 0)
- grid0.addWidget(self.tool_type_radio, 3, 1, 1, 2)
-
- # Tip Dia
- self.tipdialabel = QtWidgets.QLabel('%s:' % _('V-Tip Dia'))
- self.tipdialabel.setToolTip(
- _("The tip diameter for V-Shape Tool")
- )
- self.tipdia_spinner = FCDoubleSpinner()
- self.tipdia_spinner.set_precision(self.decimals)
- self.tipdia_spinner.set_range(-99.9999, 99.9999)
- self.tipdia_spinner.setSingleStep(0.1)
- self.tipdia_spinner.setWrapping(True)
- grid0.addWidget(self.tipdialabel, 4, 0)
- grid0.addWidget(self.tipdia_spinner, 4, 1, 1, 2)
-
- # Tip Angle
- self.tipanglelabel = QtWidgets.QLabel('%s:' % _('V-Tip Angle'))
- self.tipanglelabel.setToolTip(
- _("The tip angle for V-Shape Tool.\n"
- "In degree.")
- )
- self.tipangle_spinner = FCSpinner()
- self.tipangle_spinner.set_range(1, 180)
- self.tipangle_spinner.set_step(5)
- self.tipangle_spinner.setWrapping(True)
- grid0.addWidget(self.tipanglelabel, 5, 0)
- grid0.addWidget(self.tipangle_spinner, 5, 1, 1, 2)
-
- # Cut Z
- self.cutzlabel = QtWidgets.QLabel('%s:' % _('Cut Z'))
- self.cutzlabel.setToolTip(
- _("Cutting depth (negative)\n"
- "below the copper surface.")
- )
- self.cutz_spinner = FCDoubleSpinner()
- self.cutz_spinner.set_precision(self.decimals)
- self.cutz_spinner.set_range(-99.9999, 0.0000)
- self.cutz_spinner.setSingleStep(0.1)
- self.cutz_spinner.setWrapping(True)
-
- grid0.addWidget(self.cutzlabel, 6, 0)
- grid0.addWidget(self.cutz_spinner, 6, 1, 1, 2)
-
- # Isolation Type
- self.iso_type_label = QtWidgets.QLabel('%s:' % _('Isolation Type'))
- self.iso_type_label.setToolTip(
- _("Choose how the isolation will be executed:\n"
- "- 'Full' -> complete isolation of polygons\n"
- "- 'Ext' -> will isolate only on the outside\n"
- "- 'Int' -> will isolate only on the inside\n"
- "'Exterior' isolation is almost always possible\n"
- "(with the right tool) but 'Interior'\n"
- "isolation can be done only when there is an opening\n"
- "inside of the polygon (e.g polygon is a 'doughnut' shape).")
- )
- self.iso_type_radio = RadioSet([{'label': _('Full'), 'value': 'full'},
- {'label': _('Exterior'), 'value': 'ext'},
- {'label': _('Interior'), 'value': 'int'}])
-
- grid0.addWidget(self.iso_type_label, 7, 0,)
- grid0.addWidget(self.iso_type_radio, 7, 1, 1, 2)
-
- separator_line = QtWidgets.QFrame()
- separator_line.setFrameShape(QtWidgets.QFrame.HLine)
- separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
- grid0.addWidget(separator_line, 8, 0, 1, 2)
-
# Buffering Type
buffering_label = QtWidgets.QLabel('%s:' % _('Buffering'))
buffering_label.setToolTip(
diff --git a/flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py b/AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py
similarity index 97%
rename from flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py
rename to AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py
index 3ba0da99..aee22e96 100644
--- a/flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py
+++ b/AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py
@@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
-from flatcamGUI.GUIElements import FCSpinner, FCDoubleSpinner, FCComboBox, FCEntry, RadioSet
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.GUIElements import FCSpinner, FCDoubleSpinner, FCComboBox, FCEntry, RadioSet, NumericalEvalTupleEntry
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -109,8 +109,9 @@ class GerberEditorPrefGroupUI(OptionsGroupUI):
"The value of the diameter has to use the dot decimals separator.\n"
"Valid values: 0.3, 1.0")
)
+ self.adddim_entry = NumericalEvalTupleEntry(border_color='#0069A9')
+
grid0.addWidget(self.adddim_label, 5, 0)
- self.adddim_entry = FCEntry()
grid0.addWidget(self.adddim_entry, 5, 1)
self.grb_array_linear_label = QtWidgets.QLabel('%s:' % _('Linear Pad Array'))
diff --git a/flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py b/AppGUI/preferences/gerber/GerberExpPrefGroupUI.py
similarity index 96%
rename from flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py
rename to AppGUI/preferences/gerber/GerberExpPrefGroupUI.py
index 01729dc5..edd41b45 100644
--- a/flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py
+++ b/AppGUI/preferences/gerber/GerberExpPrefGroupUI.py
@@ -1,11 +1,11 @@
from PyQt5 import QtWidgets, QtCore
from PyQt5.QtCore import QSettings
-from flatcamGUI.GUIElements import RadioSet, FCSpinner
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.GUIElements import RadioSet, FCSpinner
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
diff --git a/flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py b/AppGUI/preferences/gerber/GerberGenPrefGroupUI.py
similarity index 97%
rename from flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py
rename to AppGUI/preferences/gerber/GerberGenPrefGroupUI.py
index 6f52fe45..68cfed57 100644
--- a/flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py
+++ b/AppGUI/preferences/gerber/GerberGenPrefGroupUI.py
@@ -1,11 +1,11 @@
from PyQt5 import QtWidgets, QtCore, QtGui
from PyQt5.QtCore import QSettings
-from flatcamGUI.GUIElements import FCCheckBox, FCSpinner, RadioSet, FCEntry
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.GUIElements import FCCheckBox, FCSpinner, RadioSet, FCEntry
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -34,26 +34,26 @@ class GerberGenPrefGroupUI(OptionsGroupUI):
grid0 = QtWidgets.QGridLayout()
self.layout.addLayout(grid0)
+ # Plot CB
+ self.plot_cb = FCCheckBox(label='%s' % _('Plot'))
+ self.plot_options_label.setToolTip(
+ _("Plot (show) this object.")
+ )
+ grid0.addWidget(self.plot_cb, 0, 0)
+
# Solid CB
self.solid_cb = FCCheckBox(label='%s' % _('Solid'))
self.solid_cb.setToolTip(
_("Solid color polygons.")
)
- grid0.addWidget(self.solid_cb, 0, 0)
+ grid0.addWidget(self.solid_cb, 0, 1)
# Multicolored CB
self.multicolored_cb = FCCheckBox(label='%s' % _('M-Color'))
self.multicolored_cb.setToolTip(
_("Draw polygons in different colors.")
)
- grid0.addWidget(self.multicolored_cb, 0, 1)
-
- # Plot CB
- self.plot_cb = FCCheckBox(label='%s' % _('Plot'))
- self.plot_options_label.setToolTip(
- _("Plot (show) this object.")
- )
- grid0.addWidget(self.plot_cb, 0, 2)
+ grid0.addWidget(self.multicolored_cb, 0, 2)
# Number of circle steps for circular aperture linear approximation
self.circle_steps_label = QtWidgets.QLabel('%s:' % _("Circle Steps"))
diff --git a/AppGUI/preferences/gerber/GerberOptPrefGroupUI.py b/AppGUI/preferences/gerber/GerberOptPrefGroupUI.py
new file mode 100644
index 00000000..c619a3c1
--- /dev/null
+++ b/AppGUI/preferences/gerber/GerberOptPrefGroupUI.py
@@ -0,0 +1,100 @@
+from PyQt5 import QtWidgets
+from PyQt5.QtCore import QSettings
+
+from AppGUI.GUIElements import FCDoubleSpinner, FCSpinner, RadioSet, FCCheckBox, FCComboBox
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
+
+import gettext
+import AppTranslation as fcTranslate
+import builtins
+
+fcTranslate.apply_language('strings')
+if '_' not in builtins.__dict__:
+ _ = gettext.gettext
+
+settings = QSettings("Open Source", "FlatCAM")
+if settings.contains("machinist"):
+ machinist_setting = settings.value('machinist', type=int)
+else:
+ machinist_setting = 0
+
+
+class GerberOptPrefGroupUI(OptionsGroupUI):
+ def __init__(self, decimals=4, parent=None):
+ # OptionsGroupUI.__init__(self, "Gerber Options Preferences", parent=parent)
+ super(GerberOptPrefGroupUI, self).__init__(self, parent=parent)
+
+ self.decimals = decimals
+
+ self.setTitle(str(_("Gerber Options")))
+
+ # ## Clear non-copper regions
+ self.clearcopper_label = QtWidgets.QLabel("%s:" % _("Non-copper regions"))
+ self.clearcopper_label.setToolTip(
+ _("Create polygons covering the\n"
+ "areas without copper on the PCB.\n"
+ "Equivalent to the inverse of this\n"
+ "object. Can be used to remove all\n"
+ "copper from a specified region.")
+ )
+ self.layout.addWidget(self.clearcopper_label)
+
+ grid1 = QtWidgets.QGridLayout()
+ self.layout.addLayout(grid1)
+
+ # Margin
+ bmlabel = QtWidgets.QLabel('%s:' % _('Boundary Margin'))
+ bmlabel.setToolTip(
+ _("Specify the edge of the PCB\n"
+ "by drawing a box around all\n"
+ "objects with this minimum\n"
+ "distance.")
+ )
+ grid1.addWidget(bmlabel, 0, 0)
+ self.noncopper_margin_entry = FCDoubleSpinner()
+ self.noncopper_margin_entry.set_precision(self.decimals)
+ self.noncopper_margin_entry.setSingleStep(0.1)
+ self.noncopper_margin_entry.set_range(-9999, 9999)
+ grid1.addWidget(self.noncopper_margin_entry, 0, 1)
+
+ # Rounded corners
+ self.noncopper_rounded_cb = FCCheckBox(label=_("Rounded Geo"))
+ self.noncopper_rounded_cb.setToolTip(
+ _("Resulting geometry will have rounded corners.")
+ )
+ grid1.addWidget(self.noncopper_rounded_cb, 1, 0, 1, 2)
+
+ separator_line = QtWidgets.QFrame()
+ separator_line.setFrameShape(QtWidgets.QFrame.HLine)
+ separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
+ grid1.addWidget(separator_line, 2, 0, 1, 2)
+
+ # ## Bounding box
+ self.boundingbox_label = QtWidgets.QLabel('%s:' % _('Bounding Box'))
+ self.layout.addWidget(self.boundingbox_label)
+
+ grid2 = QtWidgets.QGridLayout()
+ self.layout.addLayout(grid2)
+
+ bbmargin = QtWidgets.QLabel('%s:' % _('Boundary Margin'))
+ bbmargin.setToolTip(
+ _("Distance of the edges of the box\n"
+ "to the nearest polygon.")
+ )
+ self.bbmargin_entry = FCDoubleSpinner()
+ self.bbmargin_entry.set_precision(self.decimals)
+ self.bbmargin_entry.setSingleStep(0.1)
+ self.bbmargin_entry.set_range(-9999, 9999)
+
+ grid2.addWidget(bbmargin, 0, 0)
+ grid2.addWidget(self.bbmargin_entry, 0, 1)
+
+ self.bbrounded_cb = FCCheckBox(label='%s' % _("Rounded Geo"))
+ self.bbrounded_cb.setToolTip(
+ _("If the bounding box is \n"
+ "to have rounded corners\n"
+ "their radius is equal to\n"
+ "the margin.")
+ )
+ grid2.addWidget(self.bbrounded_cb, 1, 0, 1, 2)
+ self.layout.addStretch()
diff --git a/flatcamGUI/preferences/gerber/GerberPreferencesUI.py b/AppGUI/preferences/gerber/GerberPreferencesUI.py
similarity index 77%
rename from flatcamGUI/preferences/gerber/GerberPreferencesUI.py
rename to AppGUI/preferences/gerber/GerberPreferencesUI.py
index f9d9f8aa..cee2a54c 100644
--- a/flatcamGUI/preferences/gerber/GerberPreferencesUI.py
+++ b/AppGUI/preferences/gerber/GerberPreferencesUI.py
@@ -1,14 +1,14 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
-from flatcamGUI.preferences.gerber.GerberEditorPrefGroupUI import GerberEditorPrefGroupUI
-from flatcamGUI.preferences.gerber.GerberExpPrefGroupUI import GerberExpPrefGroupUI
-from flatcamGUI.preferences.gerber.GerberAdvOptPrefGroupUI import GerberAdvOptPrefGroupUI
-from flatcamGUI.preferences.gerber.GerberOptPrefGroupUI import GerberOptPrefGroupUI
-from flatcamGUI.preferences.gerber.GerberGenPrefGroupUI import GerberGenPrefGroupUI
+from AppGUI.preferences.gerber.GerberEditorPrefGroupUI import GerberEditorPrefGroupUI
+from AppGUI.preferences.gerber.GerberExpPrefGroupUI import GerberExpPrefGroupUI
+from AppGUI.preferences.gerber.GerberAdvOptPrefGroupUI import GerberAdvOptPrefGroupUI
+from AppGUI.preferences.gerber.GerberOptPrefGroupUI import GerberOptPrefGroupUI
+from AppGUI.preferences.gerber.GerberGenPrefGroupUI import GerberGenPrefGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -44,6 +44,7 @@ class GerberPreferencesUI(QtWidgets.QWidget):
self.vlay = QtWidgets.QVBoxLayout()
self.vlay.addWidget(self.gerber_opt_group)
self.vlay.addWidget(self.gerber_exp_group)
+ self.vlay.addStretch()
self.layout.addWidget(self.gerber_gen_group)
self.layout.addLayout(self.vlay)
diff --git a/flatcamGUI/preferences/gerber/__init__.py b/AppGUI/preferences/gerber/__init__.py
similarity index 100%
rename from flatcamGUI/preferences/gerber/__init__.py
rename to AppGUI/preferences/gerber/__init__.py
diff --git a/flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py b/AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py
similarity index 98%
rename from flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py
rename to AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py
index a3b6c0c2..7ec00a3c 100644
--- a/flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py
+++ b/AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py
@@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
-from flatcamGUI.GUIElements import FCSpinner, FCDoubleSpinner, RadioSet
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.GUIElements import FCSpinner, FCDoubleSpinner, RadioSet
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
diff --git a/flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py b/AppGUI/preferences/tools/Tools2CalPrefGroupUI.py
similarity index 94%
rename from flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py
rename to AppGUI/preferences/tools/Tools2CalPrefGroupUI.py
index 35b6fb1d..04d54387 100644
--- a/flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py
+++ b/AppGUI/preferences/tools/Tools2CalPrefGroupUI.py
@@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
-from flatcamGUI.GUIElements import RadioSet, FCDoubleSpinner, FCCheckBox, FCEntry
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.GUIElements import RadioSet, FCDoubleSpinner, FCCheckBox, NumericalEvalTupleEntry
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -116,7 +116,7 @@ class Tools2CalPrefGroupUI(OptionsGroupUI):
"(x, y) point will be used,")
)
- self.toolchange_xy_entry = FCEntry()
+ self.toolchange_xy_entry = NumericalEvalTupleEntry(border_color='#0069A9')
grid_lay.addWidget(toolchangexy_lbl, 7, 0)
grid_lay.addWidget(self.toolchange_xy_entry, 7, 1, 1, 2)
diff --git a/flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py b/AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py
similarity index 97%
rename from flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py
rename to AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py
index 89a104ea..410bb655 100644
--- a/flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py
+++ b/AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py
@@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
-from flatcamGUI.GUIElements import FCCheckBox, RadioSet, FCDoubleSpinner
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.GUIElements import FCCheckBox, RadioSet, FCDoubleSpinner
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
diff --git a/flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py b/AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py
similarity index 96%
rename from flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py
rename to AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py
index 32b5fdfe..77ff939c 100644
--- a/flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py
+++ b/AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py
@@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
-from flatcamGUI.GUIElements import FCDoubleSpinner, RadioSet
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.GUIElements import FCDoubleSpinner, RadioSet
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
diff --git a/flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py b/AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py
similarity index 93%
rename from flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py
rename to AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py
index a063fb32..f7bb9f17 100644
--- a/flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py
+++ b/AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py
@@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
-from flatcamGUI.GUIElements import FCDoubleSpinner, RadioSet
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.GUIElements import FCDoubleSpinner, RadioSet
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
diff --git a/flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py b/AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py
similarity index 91%
rename from flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py
rename to AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py
index 283ddf2e..6524d439 100644
--- a/flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py
+++ b/AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py
@@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
-from flatcamGUI.GUIElements import FCSpinner
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.GUIElements import FCSpinner
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
diff --git a/flatcamGUI/preferences/tools/Tools2PreferencesUI.py b/AppGUI/preferences/tools/Tools2PreferencesUI.py
similarity index 76%
rename from flatcamGUI/preferences/tools/Tools2PreferencesUI.py
rename to AppGUI/preferences/tools/Tools2PreferencesUI.py
index 01ed4def..5101fc37 100644
--- a/flatcamGUI/preferences/tools/Tools2PreferencesUI.py
+++ b/AppGUI/preferences/tools/Tools2PreferencesUI.py
@@ -1,18 +1,18 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
-from flatcamGUI.preferences.tools.Tools2InvertPrefGroupUI import Tools2InvertPrefGroupUI
-from flatcamGUI.preferences.tools.Tools2PunchGerberPrefGroupUI import Tools2PunchGerberPrefGroupUI
-from flatcamGUI.preferences.tools.Tools2EDrillsPrefGroupUI import Tools2EDrillsPrefGroupUI
-from flatcamGUI.preferences.tools.Tools2CalPrefGroupUI import Tools2CalPrefGroupUI
-from flatcamGUI.preferences.tools.Tools2FiducialsPrefGroupUI import Tools2FiducialsPrefGroupUI
-from flatcamGUI.preferences.tools.Tools2CThievingPrefGroupUI import Tools2CThievingPrefGroupUI
-from flatcamGUI.preferences.tools.Tools2QRCodePrefGroupUI import Tools2QRCodePrefGroupUI
-from flatcamGUI.preferences.tools.Tools2OptimalPrefGroupUI import Tools2OptimalPrefGroupUI
-from flatcamGUI.preferences.tools.Tools2RulesCheckPrefGroupUI import Tools2RulesCheckPrefGroupUI
+from AppGUI.preferences.tools.Tools2InvertPrefGroupUI import Tools2InvertPrefGroupUI
+from AppGUI.preferences.tools.Tools2PunchGerberPrefGroupUI import Tools2PunchGerberPrefGroupUI
+from AppGUI.preferences.tools.Tools2EDrillsPrefGroupUI import Tools2EDrillsPrefGroupUI
+from AppGUI.preferences.tools.Tools2CalPrefGroupUI import Tools2CalPrefGroupUI
+from AppGUI.preferences.tools.Tools2FiducialsPrefGroupUI import Tools2FiducialsPrefGroupUI
+from AppGUI.preferences.tools.Tools2CThievingPrefGroupUI import Tools2CThievingPrefGroupUI
+from AppGUI.preferences.tools.Tools2QRCodePrefGroupUI import Tools2QRCodePrefGroupUI
+from AppGUI.preferences.tools.Tools2OptimalPrefGroupUI import Tools2OptimalPrefGroupUI
+from AppGUI.preferences.tools.Tools2RulesCheckPrefGroupUI import Tools2RulesCheckPrefGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
diff --git a/flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py b/AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py
similarity index 97%
rename from flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py
rename to AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py
index a9a3a304..073d4a68 100644
--- a/flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py
+++ b/AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py
@@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
-from flatcamGUI.GUIElements import FCCheckBox, RadioSet, FCDoubleSpinner
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.GUIElements import FCCheckBox, RadioSet, FCDoubleSpinner
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
diff --git a/flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py b/AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py
similarity index 75%
rename from flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py
rename to AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py
index 5c22863b..04f7c605 100644
--- a/flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py
+++ b/AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py
@@ -1,11 +1,11 @@
-from PyQt5 import QtWidgets, QtCore
+from PyQt5 import QtWidgets, QtCore, QtGui
from PyQt5.QtCore import Qt, QSettings
-from flatcamGUI.GUIElements import FCSpinner, RadioSet, FCTextArea, FCEntry
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.GUIElements import FCSpinner, RadioSet, FCTextArea, FCEntry
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -205,3 +205,67 @@ class Tools2QRCodePrefGroupUI(OptionsGroupUI):
grid_lay.addWidget(self.sel_limit_label, 11, 0)
grid_lay.addWidget(self.sel_limit_entry, 11, 1)
# self.layout.addStretch()
+
+ # QRCode Tool
+ self.fill_color_entry.editingFinished.connect(self.on_qrcode_fill_color_entry)
+ self.fill_color_button.clicked.connect(self.on_qrcode_fill_color_button)
+ self.back_color_entry.editingFinished.connect(self.on_qrcode_back_color_entry)
+ self.back_color_button.clicked.connect(self.on_qrcode_back_color_button)
+
+ def on_qrcode_fill_color_entry(self):
+ self.app.defaults['tools_qrcode_fill_color'] = self.fill_color_entry.get_value()
+ self.fill_color_button.setStyleSheet(
+ "background-color:%s;"
+ "border-color: dimgray" % str(self.defaults['tools_qrcode_fill_color'])
+ )
+
+ def on_qrcode_fill_color_button(self):
+ current_color = QtGui.QColor(self.app.defaults['tools_qrcode_fill_color'])
+
+ c_dialog = QtWidgets.QColorDialog()
+ fill_color = c_dialog.getColor(initial=current_color)
+
+ if fill_color.isValid() is False:
+ return
+
+ # if new color is different then mark that the Preferences are changed
+ if fill_color != current_color:
+ self.app.preferencesUiManager.on_preferences_edited()
+
+ self.fill_color_button.setStyleSheet(
+ "background-color:%s;"
+ "border-color: dimgray" % str(fill_color.name())
+ )
+
+ new_val_sel = str(fill_color.name())
+ self.fill_color_entry.set_value(new_val_sel)
+ self.app.defaults['tools_qrcode_fill_color'] = new_val_sel
+
+ def on_qrcode_back_color_entry(self):
+ self.app.defaults['tools_qrcode_back_color'] = self.back_color_entry.get_value()
+ self.back_color_button.setStyleSheet(
+ "background-color:%s;"
+ "border-color: dimgray" % str(self.defaults['tools_qrcode_back_color'])
+ )
+
+ def on_qrcode_back_color_button(self):
+ current_color = QtGui.QColor(self.app.defaults['tools_qrcode_back_color'])
+
+ c_dialog = QtWidgets.QColorDialog()
+ back_color = c_dialog.getColor(initial=current_color)
+
+ if back_color.isValid() is False:
+ return
+
+ # if new color is different then mark that the Preferences are changed
+ if back_color != current_color:
+ self.app.preferencesUiManager.on_preferences_edited()
+
+ self.back_color_button.setStyleSheet(
+ "background-color:%s;"
+ "border-color: dimgray" % str(back_color.name())
+ )
+
+ new_val_sel = str(back_color.name())
+ self.back_color_entry.set_value(new_val_sel)
+ self.app.defaults['tools_qrcode_back_color'] = new_val_sel
diff --git a/flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py b/AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py
similarity index 98%
rename from flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py
rename to AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py
index 4aba7caa..cc049d41 100644
--- a/flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py
+++ b/AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py
@@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
-from flatcamGUI.GUIElements import FCCheckBox, FCDoubleSpinner
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.GUIElements import FCCheckBox, FCDoubleSpinner
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
diff --git a/flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py b/AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py
similarity index 95%
rename from flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py
rename to AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py
index c7e17bc7..4f9174f8 100644
--- a/flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py
+++ b/AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py
@@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
-from flatcamGUI.GUIElements import FCDoubleSpinner, RadioSet
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.GUIElements import FCDoubleSpinner, RadioSet
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
diff --git a/flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py b/AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py
similarity index 97%
rename from flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py
rename to AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py
index df9a31fd..f1d8cec9 100644
--- a/flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py
+++ b/AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py
@@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
-from flatcamGUI.GUIElements import FCDoubleSpinner
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.GUIElements import FCDoubleSpinner
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
diff --git a/AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py b/AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py
new file mode 100644
index 00000000..559eea86
--- /dev/null
+++ b/AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py
@@ -0,0 +1,81 @@
+from PyQt5 import QtWidgets
+from PyQt5.QtCore import QSettings
+
+from AppGUI.GUIElements import FCDoubleSpinner
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
+
+import gettext
+import AppTranslation as fcTranslate
+import builtins
+
+fcTranslate.apply_language('strings')
+if '_' not in builtins.__dict__:
+ _ = gettext.gettext
+
+settings = QSettings("Open Source", "FlatCAM")
+if settings.contains("machinist"):
+ machinist_setting = settings.value('machinist', type=int)
+else:
+ machinist_setting = 0
+
+
+class ToolsCornersPrefGroupUI(OptionsGroupUI):
+ def __init__(self, decimals=4, parent=None):
+ # OptionsGroupUI.__init__(self, "Calculators Tool Options", parent=parent)
+ super(ToolsCornersPrefGroupUI, self).__init__(self, parent=parent)
+
+ self.setTitle(str(_("Corner Markers Options")))
+ self.decimals = decimals
+
+ grid0 = QtWidgets.QGridLayout()
+ grid0.setColumnStretch(0, 0)
+ grid0.setColumnStretch(1, 1)
+ self.layout.addLayout(grid0)
+
+ self.param_label = QtWidgets.QLabel('%s:' % _('Parameters'))
+ self.param_label.setToolTip(
+ _("Parameters used for this tool.")
+ )
+ grid0.addWidget(self.param_label, 0, 0, 1, 2)
+
+ # Thickness #
+ self.thick_label = QtWidgets.QLabel('%s:' % _("Thickness"))
+ self.thick_label.setToolTip(
+ _("The thickness of the line that makes the corner marker.")
+ )
+ self.thick_entry = FCDoubleSpinner()
+ self.thick_entry.set_range(0.0000, 9.9999)
+ self.thick_entry.set_precision(self.decimals)
+ self.thick_entry.setWrapping(True)
+ self.thick_entry.setSingleStep(10 ** -self.decimals)
+
+ grid0.addWidget(self.thick_label, 1, 0)
+ grid0.addWidget(self.thick_entry, 1, 1)
+
+ # Length #
+ self.l_label = QtWidgets.QLabel('%s:' % _("Length"))
+ self.l_label.setToolTip(
+ _("The length of the line that makes the corner marker.")
+ )
+ self.l_entry = FCDoubleSpinner()
+ self.l_entry.set_range(-9999.9999, 9999.9999)
+ self.l_entry.set_precision(self.decimals)
+ self.l_entry.setSingleStep(10 ** -self.decimals)
+
+ # Margin #
+ self.margin_label = QtWidgets.QLabel('%s:' % _("Margin"))
+ self.margin_label.setToolTip(
+ _("Bounding box margin.")
+ )
+ self.margin_entry = FCDoubleSpinner()
+ self.margin_entry.set_range(-9999.9999, 9999.9999)
+ self.margin_entry.set_precision(self.decimals)
+ self.margin_entry.setSingleStep(0.1)
+
+ grid0.addWidget(self.margin_label, 2, 0)
+ grid0.addWidget(self.margin_entry, 2, 1)
+
+ grid0.addWidget(self.l_label, 4, 0)
+ grid0.addWidget(self.l_entry, 4, 1)
+
+ self.layout.addStretch()
diff --git a/flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py b/AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py
similarity index 96%
rename from flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py
rename to AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py
index 308c74c4..4e690474 100644
--- a/flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py
+++ b/AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py
@@ -1,12 +1,12 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
-from flatcamGUI.GUIElements import FCDoubleSpinner, FCCheckBox, RadioSet, FCComboBox
-from flatcamGUI.preferences import machinist_setting
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.GUIElements import FCDoubleSpinner, FCCheckBox, RadioSet, FCComboBox
+from AppGUI.preferences import machinist_setting
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
diff --git a/flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py b/AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py
similarity index 89%
rename from flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py
rename to AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py
index 17e994c5..346126ca 100644
--- a/flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py
+++ b/AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py
@@ -1,11 +1,11 @@
-from PyQt5 import QtWidgets, QtCore
+from PyQt5 import QtWidgets, QtCore, QtGui
from PyQt5.QtCore import Qt, QSettings
-from flatcamGUI.GUIElements import RadioSet, FCEntry, FCDoubleSpinner, FCCheckBox, FCComboBox
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.GUIElements import RadioSet, FCEntry, FCDoubleSpinner, FCCheckBox, FCComboBox
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -314,3 +314,35 @@ class ToolsFilmPrefGroupUI(OptionsGroupUI):
grid0.addWidget(self.pagesize_combo, 17, 1)
self.layout.addStretch()
+
+ # Film Tool
+ self.film_color_entry.editingFinished.connect(self.on_film_color_entry)
+ self.film_color_button.clicked.connect(self.on_film_color_button)
+
+ def on_film_color_entry(self):
+ self.app.defaults['tools_film_color'] = self.film_color_entry.get_value()
+ self.film_color_button.setStyleSheet(
+ "background-color:%s;"
+ "border-color: dimgray" % str(self.defaults['tools_film_color'])
+ )
+
+ def on_film_color_button(self):
+ current_color = QtGui.QColor(self.app.defaults['tools_film_color'])
+
+ c_dialog = QtWidgets.QColorDialog()
+ film_color = c_dialog.getColor(initial=current_color)
+
+ if film_color.isValid() is False:
+ return
+
+ # if new color is different then mark that the Preferences are changed
+ if film_color != current_color:
+ self.app.preferencesUiManager.on_preferences_edited()
+
+ self.film_color_button.setStyleSheet(
+ "background-color:%s;"
+ "border-color: dimgray" % str(film_color.name())
+ )
+ new_val_sel = str(film_color.name())
+ self.film_color_entry.set_value(new_val_sel)
+ self.app.defaults['tools_film_color'] = new_val_sel
diff --git a/AppGUI/preferences/tools/ToolsISOPrefGroupUI.py b/AppGUI/preferences/tools/ToolsISOPrefGroupUI.py
new file mode 100644
index 00000000..4fc52ebd
--- /dev/null
+++ b/AppGUI/preferences/tools/ToolsISOPrefGroupUI.py
@@ -0,0 +1,319 @@
+from PyQt5 import QtWidgets
+from PyQt5.QtCore import QSettings
+
+from AppGUI.GUIElements import RadioSet, FCDoubleSpinner, FCComboBox, FCCheckBox, FCSpinner, NumericalEvalTupleEntry
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
+
+import gettext
+import AppTranslation as fcTranslate
+import builtins
+
+fcTranslate.apply_language('strings')
+if '_' not in builtins.__dict__:
+ _ = gettext.gettext
+
+settings = QSettings("Open Source", "FlatCAM")
+if settings.contains("machinist"):
+ machinist_setting = settings.value('machinist', type=int)
+else:
+ machinist_setting = 0
+
+
+class ToolsISOPrefGroupUI(OptionsGroupUI):
+ def __init__(self, decimals=4, parent=None):
+ super(ToolsISOPrefGroupUI, self).__init__(self, parent=parent)
+
+ self.setTitle(str(_("Isolation Tool Options")))
+ self.decimals = decimals
+
+ # ## Clear non-copper regions
+ self.iso_label = QtWidgets.QLabel("%s:" % _("Parameters"))
+ self.iso_label.setToolTip(
+ _("Create a Geometry object with\n"
+ "toolpaths to cut around polygons.")
+ )
+ self.layout.addWidget(self.iso_label)
+
+ grid0 = QtWidgets.QGridLayout()
+ self.layout.addLayout(grid0)
+
+ # Tool Dias
+ isotdlabel = QtWidgets.QLabel('%s:' % _('Tools Dia'))
+ isotdlabel.setToolTip(
+ _("Diameters of the tools, separated by comma.\n"
+ "The value of the diameter has to use the dot decimals separator.\n"
+ "Valid values: 0.3, 1.0")
+ )
+ self.tool_dia_entry = NumericalEvalTupleEntry(border_color='#0069A9')
+ self.tool_dia_entry.setPlaceholderText(_("Comma separated values"))
+
+ grid0.addWidget(isotdlabel, 0, 0)
+ grid0.addWidget(self.tool_dia_entry, 0, 1, 1, 2)
+
+ # Tool order Radio Button
+ self.order_label = QtWidgets.QLabel('%s:' % _('Tool order'))
+ self.order_label.setToolTip(_("This set the way that the tools in the tools table are used.\n"
+ "'No' --> means that the used order is the one in the tool table\n"
+ "'Forward' --> means that the tools will be ordered from small to big\n"
+ "'Reverse' --> means that the tools will ordered from big to small\n\n"
+ "WARNING: using rest machining will automatically set the order\n"
+ "in reverse and disable this control."))
+
+ self.order_radio = RadioSet([{'label': _('No'), 'value': 'no'},
+ {'label': _('Forward'), 'value': 'fwd'},
+ {'label': _('Reverse'), 'value': 'rev'}])
+
+ grid0.addWidget(self.order_label, 1, 0)
+ grid0.addWidget(self.order_radio, 1, 1, 1, 2)
+
+ # Tool Type Radio Button
+ self.tool_type_label = QtWidgets.QLabel('%s:' % _('Tool Type'))
+ self.tool_type_label.setToolTip(
+ _("Default tool type:\n"
+ "- 'V-shape'\n"
+ "- Circular")
+ )
+
+ self.tool_type_radio = RadioSet([{'label': _('V-shape'), 'value': 'V'},
+ {'label': _('Circular'), 'value': 'C1'}])
+ self.tool_type_radio.setToolTip(
+ _("Default tool type:\n"
+ "- 'V-shape'\n"
+ "- Circular")
+ )
+
+ grid0.addWidget(self.tool_type_label, 2, 0)
+ grid0.addWidget(self.tool_type_radio, 2, 1, 1, 2)
+
+ # Tip Dia
+ self.tipdialabel = QtWidgets.QLabel('%s:' % _('V-Tip Dia'))
+ self.tipdialabel.setToolTip(
+ _("The tip diameter for V-Shape Tool"))
+ self.tipdia_entry = FCDoubleSpinner()
+ self.tipdia_entry.set_precision(self.decimals)
+ self.tipdia_entry.set_range(0, 1000)
+ self.tipdia_entry.setSingleStep(0.1)
+
+ grid0.addWidget(self.tipdialabel, 3, 0)
+ grid0.addWidget(self.tipdia_entry, 3, 1, 1, 2)
+
+ # Tip Angle
+ self.tipanglelabel = QtWidgets.QLabel('%s:' % _('V-Tip Angle'))
+ self.tipanglelabel.setToolTip(
+ _("The tip angle for V-Shape Tool.\n"
+ "In degrees."))
+ self.tipangle_entry = FCDoubleSpinner()
+ self.tipangle_entry.set_precision(self.decimals)
+ self.tipangle_entry.set_range(1, 180)
+ self.tipangle_entry.setSingleStep(5)
+ self.tipangle_entry.setWrapping(True)
+
+ grid0.addWidget(self.tipanglelabel, 4, 0)
+ grid0.addWidget(self.tipangle_entry, 4, 1, 1, 2)
+
+ # Cut Z entry
+ cutzlabel = QtWidgets.QLabel('%s:' % _('Cut Z'))
+ cutzlabel.setToolTip(
+ _("Depth of cut into material. Negative value.\n"
+ "In FlatCAM units.")
+ )
+ self.cutz_entry = FCDoubleSpinner()
+ self.cutz_entry.set_precision(self.decimals)
+ self.cutz_entry.set_range(-9999.9999, 0.0000)
+ self.cutz_entry.setSingleStep(0.1)
+
+ self.cutz_entry.setToolTip(
+ _("Depth of cut into material. Negative value.\n"
+ "In FlatCAM units.")
+ )
+
+ grid0.addWidget(cutzlabel, 5, 0)
+ grid0.addWidget(self.cutz_entry, 5, 1, 1, 2)
+
+ # New Diameter
+ self.newdialabel = QtWidgets.QLabel('%s:' % _('New Dia'))
+ self.newdialabel.setToolTip(
+ _("Diameter for the new tool to add in the Tool Table.\n"
+ "If the tool is V-shape type then this value is automatically\n"
+ "calculated from the other parameters.")
+ )
+ self.newdia_entry = FCDoubleSpinner()
+ self.newdia_entry.set_precision(self.decimals)
+ self.newdia_entry.set_range(0.0001, 9999.9999)
+ self.newdia_entry.setSingleStep(0.1)
+
+ grid0.addWidget(self.newdialabel, 6, 0)
+ grid0.addWidget(self.newdia_entry, 6, 1, 1, 2)
+
+ separator_line = QtWidgets.QFrame()
+ separator_line.setFrameShape(QtWidgets.QFrame.HLine)
+ separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
+ grid0.addWidget(separator_line, 7, 0, 1, 3)
+
+ # Passes
+ passlabel = QtWidgets.QLabel('%s:' % _('Passes'))
+ passlabel.setToolTip(
+ _("Width of the isolation gap in\n"
+ "number (integer) of tool widths.")
+ )
+ self.passes_entry = FCSpinner()
+ self.passes_entry.set_range(1, 999)
+ self.passes_entry.setObjectName("i_passes")
+
+ grid0.addWidget(passlabel, 8, 0)
+ grid0.addWidget(self.passes_entry, 8, 1, 1, 2)
+
+ # Overlap Entry
+ overlabel = QtWidgets.QLabel('%s:' % _('Overlap'))
+ overlabel.setToolTip(
+ _("How much (percentage) of the tool width to overlap each tool pass.")
+ )
+ self.overlap_entry = FCDoubleSpinner(suffix='%')
+ self.overlap_entry.set_precision(self.decimals)
+ self.overlap_entry.setWrapping(True)
+ self.overlap_entry.set_range(0.0000, 99.9999)
+ self.overlap_entry.setSingleStep(0.1)
+ self.overlap_entry.setObjectName("i_overlap")
+
+ grid0.addWidget(overlabel, 9, 0)
+ grid0.addWidget(self.overlap_entry, 9, 1, 1, 2)
+
+ # Milling Type Radio Button
+ self.milling_type_label = QtWidgets.QLabel('%s:' % _('Milling Type'))
+ self.milling_type_label.setToolTip(
+ _("Milling type when the selected tool is of type: 'iso_op':\n"
+ "- climb / best for precision milling and to reduce tool usage\n"
+ "- conventional / useful when there is no backlash compensation")
+ )
+
+ self.milling_type_radio = RadioSet([{'label': _('Climb'), 'value': 'cl'},
+ {'label': _('Conventional'), 'value': 'cv'}])
+ self.milling_type_radio.setToolTip(
+ _("Milling type when the selected tool is of type: 'iso_op':\n"
+ "- climb / best for precision milling and to reduce tool usage\n"
+ "- conventional / useful when there is no backlash compensation")
+ )
+
+ grid0.addWidget(self.milling_type_label, 10, 0)
+ grid0.addWidget(self.milling_type_radio, 10, 1, 1, 2)
+
+ # Follow
+ self.follow_label = QtWidgets.QLabel('%s:' % _('Follow'))
+ self.follow_label.setToolTip(
+ _("Generate a 'Follow' geometry.\n"
+ "This means that it will cut through\n"
+ "the middle of the trace.")
+ )
+
+ self.follow_cb = FCCheckBox()
+ self.follow_cb.setToolTip(_("Generate a 'Follow' geometry.\n"
+ "This means that it will cut through\n"
+ "the middle of the trace."))
+ self.follow_cb.setObjectName("i_follow")
+
+ grid0.addWidget(self.follow_label, 11, 0)
+ grid0.addWidget(self.follow_cb, 11, 1, 1, 2)
+
+ # Isolation Type
+ self.iso_type_label = QtWidgets.QLabel('%s:' % _('Isolation Type'))
+ self.iso_type_label.setToolTip(
+ _("Choose how the isolation will be executed:\n"
+ "- 'Full' -> complete isolation of polygons\n"
+ "- 'Ext' -> will isolate only on the outside\n"
+ "- 'Int' -> will isolate only on the inside\n"
+ "'Exterior' isolation is almost always possible\n"
+ "(with the right tool) but 'Interior'\n"
+ "isolation can be done only when there is an opening\n"
+ "inside of the polygon (e.g polygon is a 'doughnut' shape).")
+ )
+ self.iso_type_radio = RadioSet([{'label': _('Full'), 'value': 'full'},
+ {'label': _('Ext'), 'value': 'ext'},
+ {'label': _('Int'), 'value': 'int'}])
+ self.iso_type_radio.setObjectName("i_type")
+
+ grid0.addWidget(self.iso_type_label, 12, 0)
+ grid0.addWidget(self.iso_type_radio, 12, 1, 1, 2)
+
+ separator_line = QtWidgets.QFrame()
+ separator_line.setFrameShape(QtWidgets.QFrame.HLine)
+ separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
+ grid0.addWidget(separator_line, 13, 0, 1, 3)
+
+ # Rest machining CheckBox
+ self.rest_cb = FCCheckBox('%s' % _("Rest"))
+ self.rest_cb.setObjectName("i_rest_machining")
+ self.rest_cb.setToolTip(
+ _("If checked, use 'rest machining'.\n"
+ "Basically it will isolate outside PCB features,\n"
+ "using the biggest tool and continue with the next tools,\n"
+ "from bigger to smaller, to isolate the copper features that\n"
+ "could not be cleared by previous tool, until there is\n"
+ "no more copper features to isolate or there are no more tools.\n"
+ "If not checked, use the standard algorithm.")
+ )
+
+ grid0.addWidget(self.rest_cb, 17, 0)
+
+ # Combine All Passes
+ self.combine_passes_cb = FCCheckBox(label=_('Combine'))
+ self.combine_passes_cb.setToolTip(
+ _("Combine all passes into one object")
+ )
+ self.combine_passes_cb.setObjectName("i_combine")
+
+ grid0.addWidget(self.combine_passes_cb, 17, 1)
+
+ # Exception Areas
+ self.except_cb = FCCheckBox(label=_('Except'))
+ self.except_cb.setToolTip(_("When the isolation geometry is generated,\n"
+ "by checking this, the area of the object below\n"
+ "will be subtracted from the isolation geometry."))
+ self.except_cb.setObjectName("i_except")
+ grid0.addWidget(self.except_cb, 17, 2)
+
+ # Isolation Scope
+ self.select_label = QtWidgets.QLabel('%s:' % _("Selection"))
+ self.select_label.setToolTip(
+ _("Isolation scope. Choose what to isolate:\n"
+ "- 'All' -> Isolate all the polygons in the object\n"
+ "- 'Selection' -> Isolate a selection of polygons.\n"
+ "- 'Reference Object' - will process the area specified by another object.")
+ )
+ self.select_combo = FCComboBox()
+ self.select_combo.addItems(
+ [_("All"), _("Area Selection"), _("Polygon Selection"), _("Reference Object")]
+ )
+ self.select_combo.setObjectName("i_selection")
+
+ grid0.addWidget(self.select_label, 20, 0)
+ grid0.addWidget(self.select_combo, 20, 1, 1, 2)
+
+ # Area Shape
+ self.area_shape_label = QtWidgets.QLabel('%s:' % _("Shape"))
+ self.area_shape_label.setToolTip(
+ _("The kind of selection shape used for area selection.")
+ )
+
+ self.area_shape_radio = RadioSet([{'label': _("Square"), 'value': 'square'},
+ {'label': _("Polygon"), 'value': 'polygon'}])
+
+ grid0.addWidget(self.area_shape_label, 21, 0)
+ grid0.addWidget(self.area_shape_radio, 21, 1, 1, 2)
+
+ separator_line = QtWidgets.QFrame()
+ separator_line.setFrameShape(QtWidgets.QFrame.HLine)
+ separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
+ grid0.addWidget(separator_line, 22, 0, 1, 3)
+
+ # ## Plotting type
+ self.plotting_radio = RadioSet([{'label': _('Normal'), 'value': 'normal'},
+ {"label": _("Progressive"), "value": "progressive"}])
+ plotting_label = QtWidgets.QLabel('%s:' % _("Plotting"))
+ plotting_label.setToolTip(
+ _("- 'Normal' - normal plotting, done at the end of the job\n"
+ "- 'Progressive' - each shape is plotted after it is generated")
+ )
+ grid0.addWidget(plotting_label, 23, 0)
+ grid0.addWidget(self.plotting_radio, 23, 1, 1, 2)
+
+ self.layout.addStretch()
diff --git a/flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py b/AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py
similarity index 94%
rename from flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py
rename to AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py
index 00ec96cb..28c300da 100644
--- a/flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py
+++ b/AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py
@@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
-from flatcamGUI.GUIElements import FCEntry, RadioSet, FCDoubleSpinner, FCComboBox, FCCheckBox
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.GUIElements import RadioSet, FCDoubleSpinner, FCComboBox, FCCheckBox, NumericalEvalTupleEntry
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -45,7 +45,7 @@ class ToolsNCCPrefGroupUI(OptionsGroupUI):
"Valid values: 0.3, 1.0")
)
grid0.addWidget(ncctdlabel, 0, 0)
- self.ncc_tool_dia_entry = FCEntry(border_color='#0069A9')
+ self.ncc_tool_dia_entry = NumericalEvalTupleEntry(border_color='#0069A9')
self.ncc_tool_dia_entry.setPlaceholderText(_("Comma separated values"))
grid0.addWidget(self.ncc_tool_dia_entry, 0, 1)
@@ -227,7 +227,7 @@ class ToolsNCCPrefGroupUI(OptionsGroupUI):
# ], orientation='vertical', stretch=False)
self.ncc_method_combo = FCComboBox()
self.ncc_method_combo.addItems(
- [_("Standard"), _("Seed"), _("Lines")]
+ [_("Standard"), _("Seed"), _("Lines"), _("Combo")]
)
grid0.addWidget(methodlabel, 12, 0)
@@ -285,7 +285,7 @@ class ToolsNCCPrefGroupUI(OptionsGroupUI):
grid0.addWidget(separator_line, 16, 0, 1, 2)
# Rest machining CheckBox
- self.ncc_rest_cb = FCCheckBox('%s' % _("Rest Machining"))
+ self.ncc_rest_cb = FCCheckBox('%s' % _("Rest"))
self.ncc_rest_cb.setToolTip(
_("If checked, use 'rest machining'.\n"
"Basically it will clear copper outside PCB features,\n"
@@ -336,14 +336,14 @@ class ToolsNCCPrefGroupUI(OptionsGroupUI):
grid0.addWidget(separator_line, 20, 0, 1, 2)
# ## Plotting type
- self.ncc_plotting_radio = RadioSet([{'label': _('Normal'), 'value': 'normal'},
- {"label": _("Progressive"), "value": "progressive"}])
- plotting_label = QtWidgets.QLabel('%s:' % _("NCC Plotting"))
+ self.plotting_radio = RadioSet([{'label': _('Normal'), 'value': 'normal'},
+ {"label": _("Progressive"), "value": "progressive"}])
+ plotting_label = QtWidgets.QLabel('%s:' % _("Plotting"))
plotting_label.setToolTip(
- _("- 'Normal' - normal plotting, done at the end of the NCC job\n"
- "- 'Progressive' - after each shape is generated it will be plotted.")
+ _("- 'Normal' - normal plotting, done at the end of the job\n"
+ "- 'Progressive' - each shape is plotted after it is generated")
)
grid0.addWidget(plotting_label, 21, 0)
- grid0.addWidget(self.ncc_plotting_radio, 21, 1)
+ grid0.addWidget(self.plotting_radio, 21, 1)
self.layout.addStretch()
diff --git a/flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py b/AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py
similarity index 95%
rename from flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py
rename to AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py
index a86b270b..9634ebb7 100644
--- a/flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py
+++ b/AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py
@@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
-from flatcamGUI.GUIElements import FCEntry, RadioSet, FCDoubleSpinner, FCComboBox, FCCheckBox
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.GUIElements import RadioSet, FCDoubleSpinner, FCComboBox, FCCheckBox, NumericalEvalTupleEntry
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -53,7 +53,7 @@ class ToolsPaintPrefGroupUI(OptionsGroupUI):
)
grid0.addWidget(ptdlabel, 0, 0)
- self.painttooldia_entry = FCEntry(border_color='#0069A9')
+ self.painttooldia_entry = NumericalEvalTupleEntry(border_color='#0069A9')
self.painttooldia_entry.setPlaceholderText(_("Comma separated values"))
grid0.addWidget(self.painttooldia_entry, 0, 1)
@@ -241,8 +241,8 @@ class ToolsPaintPrefGroupUI(OptionsGroupUI):
separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
grid0.addWidget(separator_line, 13, 0, 1, 2)
- self.rest_cb = FCCheckBox('%s' % _("Rest Machining"))
- self.rest_cb.setObjectName(_("Rest Machining"))
+ self.rest_cb = FCCheckBox('%s' % _("Rest"))
+ self.rest_cb.setObjectName(_("Rest"))
self.rest_cb.setToolTip(
_("If checked, use 'rest machining'.\n"
"Basically it will clear copper outside PCB features,\n"
@@ -277,7 +277,7 @@ class ToolsPaintPrefGroupUI(OptionsGroupUI):
# )
self.selectmethod_combo = FCComboBox()
self.selectmethod_combo.addItems(
- [_("Polygon Selection"), _("Area Selection"), _("All Polygons"), _("Reference Object")]
+ [_("Polygon Selection"), _("Area Selection"), _("All"), _("Reference Object")]
)
grid0.addWidget(selectlabel, 15, 0)
@@ -302,10 +302,10 @@ class ToolsPaintPrefGroupUI(OptionsGroupUI):
# ## Plotting type
self.paint_plotting_radio = RadioSet([{'label': _('Normal'), 'value': 'normal'},
{"label": _("Progressive"), "value": "progressive"}])
- plotting_label = QtWidgets.QLabel('%s:' % _("Paint Plotting"))
+ plotting_label = QtWidgets.QLabel('%s:' % _("Plotting"))
plotting_label.setToolTip(
- _("- 'Normal' - normal plotting, done at the end of the Paint job\n"
- "- 'Progressive' - after each shape is generated it will be plotted.")
+ _("- 'Normal' - normal plotting, done at the end of the job\n"
+ "- 'Progressive' - each shape is plotted after it is generated")
)
grid0.addWidget(plotting_label, 20, 0)
grid0.addWidget(self.paint_plotting_radio, 20, 1)
diff --git a/flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py b/AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py
similarity index 96%
rename from flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py
rename to AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py
index df791742..f217ec00 100644
--- a/flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py
+++ b/AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py
@@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
-from flatcamGUI.GUIElements import FCDoubleSpinner, FCSpinner, RadioSet, FCCheckBox
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.GUIElements import FCDoubleSpinner, FCSpinner, RadioSet, FCCheckBox
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
diff --git a/flatcamGUI/preferences/tools/ToolsPreferencesUI.py b/AppGUI/preferences/tools/ToolsPreferencesUI.py
similarity index 66%
rename from flatcamGUI/preferences/tools/ToolsPreferencesUI.py
rename to AppGUI/preferences/tools/ToolsPreferencesUI.py
index dc3061a8..9d30c9b9 100644
--- a/flatcamGUI/preferences/tools/ToolsPreferencesUI.py
+++ b/AppGUI/preferences/tools/ToolsPreferencesUI.py
@@ -1,19 +1,22 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
-from flatcamGUI.preferences.tools.ToolsSubPrefGroupUI import ToolsSubPrefGroupUI
-from flatcamGUI.preferences.tools.ToolsSolderpastePrefGroupUI import ToolsSolderpastePrefGroupUI
-from flatcamGUI.preferences.tools.ToolsTransformPrefGroupUI import ToolsTransformPrefGroupUI
-from flatcamGUI.preferences.tools.ToolsCalculatorsPrefGroupUI import ToolsCalculatorsPrefGroupUI
-from flatcamGUI.preferences.tools.ToolsPanelizePrefGroupUI import ToolsPanelizePrefGroupUI
-from flatcamGUI.preferences.tools.ToolsFilmPrefGroupUI import ToolsFilmPrefGroupUI
-from flatcamGUI.preferences.tools.ToolsPaintPrefGroupUI import ToolsPaintPrefGroupUI
-from flatcamGUI.preferences.tools.Tools2sidedPrefGroupUI import Tools2sidedPrefGroupUI
-from flatcamGUI.preferences.tools.ToolsCutoutPrefGroupUI import ToolsCutoutPrefGroupUI
-from flatcamGUI.preferences.tools.ToolsNCCPrefGroupUI import ToolsNCCPrefGroupUI
+from AppGUI.preferences.tools.ToolsSubPrefGroupUI import ToolsSubPrefGroupUI
+from AppGUI.preferences.tools.ToolsSolderpastePrefGroupUI import ToolsSolderpastePrefGroupUI
+from AppGUI.preferences.tools.ToolsCornersPrefGroupUI import ToolsCornersPrefGroupUI
+from AppGUI.preferences.tools.ToolsTransformPrefGroupUI import ToolsTransformPrefGroupUI
+from AppGUI.preferences.tools.ToolsCalculatorsPrefGroupUI import ToolsCalculatorsPrefGroupUI
+from AppGUI.preferences.tools.ToolsPanelizePrefGroupUI import ToolsPanelizePrefGroupUI
+from AppGUI.preferences.tools.ToolsFilmPrefGroupUI import ToolsFilmPrefGroupUI
+from AppGUI.preferences.tools.Tools2sidedPrefGroupUI import Tools2sidedPrefGroupUI
+
+from AppGUI.preferences.tools.ToolsCutoutPrefGroupUI import ToolsCutoutPrefGroupUI
+from AppGUI.preferences.tools.ToolsNCCPrefGroupUI import ToolsNCCPrefGroupUI
+from AppGUI.preferences.tools.ToolsPaintPrefGroupUI import ToolsPaintPrefGroupUI
+from AppGUI.preferences.tools.ToolsISOPrefGroupUI import ToolsISOPrefGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -35,6 +38,9 @@ class ToolsPreferencesUI(QtWidgets.QWidget):
self.setLayout(self.layout)
self.decimals = decimals
+ self.tools_iso_group = ToolsISOPrefGroupUI(decimals=self.decimals)
+ self.tools_iso_group.setMinimumWidth(220)
+
self.tools_ncc_group = ToolsNCCPrefGroupUI(decimals=self.decimals)
self.tools_ncc_group.setMinimumWidth(220)
@@ -62,6 +68,9 @@ class ToolsPreferencesUI(QtWidgets.QWidget):
self.tools_solderpaste_group = ToolsSolderpastePrefGroupUI(decimals=self.decimals)
self.tools_solderpaste_group.setMinimumWidth(200)
+ self.tools_corners_group = ToolsCornersPrefGroupUI(decimals=self.decimals)
+ self.tools_corners_group.setMinimumWidth(200)
+
self.tools_sub_group = ToolsSubPrefGroupUI(decimals=self.decimals)
self.tools_sub_group.setMinimumWidth(200)
@@ -71,7 +80,7 @@ class ToolsPreferencesUI(QtWidgets.QWidget):
self.vlay1 = QtWidgets.QVBoxLayout()
self.vlay1.addWidget(self.tools_paint_group)
- self.vlay1.addWidget(self.tools_panelize_group)
+ self.vlay1.addWidget(self.tools_iso_group)
self.vlay2 = QtWidgets.QVBoxLayout()
self.vlay2.addWidget(self.tools_transform_group)
@@ -84,6 +93,8 @@ class ToolsPreferencesUI(QtWidgets.QWidget):
self.vlay4 = QtWidgets.QVBoxLayout()
self.vlay4.addWidget(self.tools_solderpaste_group)
+ self.vlay4.addWidget(self.tools_corners_group)
+ self.vlay4.addWidget(self.tools_panelize_group)
self.layout.addLayout(self.vlay)
self.layout.addLayout(self.vlay1)
diff --git a/flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py b/AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py
similarity index 96%
rename from flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py
rename to AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py
index c1f60821..832b76d9 100644
--- a/flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py
+++ b/AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py
@@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
-from flatcamGUI.GUIElements import FCEntry, FCDoubleSpinner, FCSpinner, FCComboBox
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.GUIElements import FCDoubleSpinner, FCSpinner, FCComboBox, NumericalEvalTupleEntry
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -45,7 +45,7 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI):
"The value of the diameter has to use the dot decimals separator.\n"
"Valid values: 0.3, 1.0")
)
- self.nozzle_tool_dia_entry = FCEntry()
+ self.nozzle_tool_dia_entry = NumericalEvalTupleEntry(border_color='#0069A9')
grid0.addWidget(nozzletdlabel, 0, 0)
grid0.addWidget(self.nozzle_tool_dia_entry, 0, 1)
@@ -130,7 +130,7 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI):
grid0.addWidget(self.z_toolchange_entry, 6, 1)
# X,Y Toolchange location
- self.xy_toolchange_entry = FCEntry()
+ self.xy_toolchange_entry = NumericalEvalTupleEntry(border_color='#0069A9')
self.xy_toolchange_label = QtWidgets.QLabel('%s:' % _("Toolchange X-Y"))
self.xy_toolchange_label.setToolTip(
_("The X,Y location for tool (nozzle) change.\n"
diff --git a/flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py b/AppGUI/preferences/tools/ToolsSubPrefGroupUI.py
similarity index 88%
rename from flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py
rename to AppGUI/preferences/tools/ToolsSubPrefGroupUI.py
index ff9430e1..2cc78d87 100644
--- a/flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py
+++ b/AppGUI/preferences/tools/ToolsSubPrefGroupUI.py
@@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
-from flatcamGUI.GUIElements import FCCheckBox
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.GUIElements import FCCheckBox
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
diff --git a/flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py b/AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py
similarity index 97%
rename from flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py
rename to AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py
index 60a8bf24..cecff2bf 100644
--- a/flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py
+++ b/AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py
@@ -1,11 +1,11 @@
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings
-from flatcamGUI.GUIElements import FCDoubleSpinner, FCCheckBox, EvalEntry2
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.GUIElements import FCDoubleSpinner, FCCheckBox, NumericalEvalTupleEntry
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -191,7 +191,7 @@ class ToolsTransformPrefGroupUI(OptionsGroupUI):
"The 'x' in (x, y) will be used when using Flip on X and\n"
"the 'y' in (x, y) will be used when using Flip on Y and")
)
- self.flip_ref_entry = EvalEntry2("(0, 0)")
+ self.flip_ref_entry = NumericalEvalTupleEntry(border_color='#0069A9')
grid0.addWidget(self.flip_ref_label, 14, 0, 1, 2)
grid0.addWidget(self.flip_ref_entry, 15, 0, 1, 2)
diff --git a/flatcamGUI/preferences/tools/__init__.py b/AppGUI/preferences/tools/__init__.py
similarity index 100%
rename from flatcamGUI/preferences/tools/__init__.py
rename to AppGUI/preferences/tools/__init__.py
diff --git a/flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py b/AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py
similarity index 94%
rename from flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py
rename to AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py
index fd138091..4f491f49 100644
--- a/flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py
+++ b/AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py
@@ -1,11 +1,11 @@
from PyQt5 import QtWidgets, QtGui
from PyQt5.QtCore import QSettings
-from flatcamGUI.GUIElements import FCButton, FCTextArea, FCEntry
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.GUIElements import FCButton, FCTextArea, FCEntry
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
diff --git a/flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py b/AppGUI/preferences/utilities/FAExcPrefGroupUI.py
similarity index 95%
rename from flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py
rename to AppGUI/preferences/utilities/FAExcPrefGroupUI.py
index 18a3b971..4cdd89f7 100644
--- a/flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py
+++ b/AppGUI/preferences/utilities/FAExcPrefGroupUI.py
@@ -1,11 +1,11 @@
from PyQt5 import QtWidgets, QtGui
from PyQt5.QtCore import QSettings
-from flatcamGUI.GUIElements import VerticalScrollArea, FCButton, FCTextArea, FCEntry
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.GUIElements import VerticalScrollArea, FCButton, FCTextArea, FCEntry
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
diff --git a/flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py b/AppGUI/preferences/utilities/FAGcoPrefGroupUI.py
similarity index 94%
rename from flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py
rename to AppGUI/preferences/utilities/FAGcoPrefGroupUI.py
index 2ac1a1b9..9c367ed5 100644
--- a/flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py
+++ b/AppGUI/preferences/utilities/FAGcoPrefGroupUI.py
@@ -1,11 +1,11 @@
from PyQt5 import QtWidgets, QtGui
from PyQt5.QtCore import QSettings
-from flatcamGUI.GUIElements import FCButton, FCTextArea, FCEntry
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.GUIElements import FCButton, FCTextArea, FCEntry
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
diff --git a/flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py b/AppGUI/preferences/utilities/FAGrbPrefGroupUI.py
similarity index 94%
rename from flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py
rename to AppGUI/preferences/utilities/FAGrbPrefGroupUI.py
index 480fdb39..70e0aa78 100644
--- a/flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py
+++ b/AppGUI/preferences/utilities/FAGrbPrefGroupUI.py
@@ -1,11 +1,11 @@
from PyQt5 import QtWidgets, QtGui
from PyQt5.QtCore import QSettings
-from flatcamGUI.GUIElements import FCButton, FCTextArea, FCEntry
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.GUIElements import FCButton, FCTextArea, FCEntry
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
diff --git a/flatcamGUI/preferences/utilities/UtilPreferencesUI.py b/AppGUI/preferences/utilities/UtilPreferencesUI.py
similarity index 76%
rename from flatcamGUI/preferences/utilities/UtilPreferencesUI.py
rename to AppGUI/preferences/utilities/UtilPreferencesUI.py
index ae9e2110..e227c924 100644
--- a/flatcamGUI/preferences/utilities/UtilPreferencesUI.py
+++ b/AppGUI/preferences/utilities/UtilPreferencesUI.py
@@ -1,9 +1,9 @@
from PyQt5 import QtWidgets
-from flatcamGUI.preferences.utilities.AutoCompletePrefGroupUI import AutoCompletePrefGroupUI
-from flatcamGUI.preferences.utilities.FAGrbPrefGroupUI import FAGrbPrefGroupUI
-from flatcamGUI.preferences.utilities.FAGcoPrefGroupUI import FAGcoPrefGroupUI
-from flatcamGUI.preferences.utilities.FAExcPrefGroupUI import FAExcPrefGroupUI
+from AppGUI.preferences.utilities.AutoCompletePrefGroupUI import AutoCompletePrefGroupUI
+from AppGUI.preferences.utilities.FAGrbPrefGroupUI import FAGrbPrefGroupUI
+from AppGUI.preferences.utilities.FAGcoPrefGroupUI import FAGcoPrefGroupUI
+from AppGUI.preferences.utilities.FAExcPrefGroupUI import FAExcPrefGroupUI
class UtilPreferencesUI(QtWidgets.QWidget):
diff --git a/flatcamGUI/preferences/utilities/__init__.py b/AppGUI/preferences/utilities/__init__.py
similarity index 100%
rename from flatcamGUI/preferences/utilities/__init__.py
rename to AppGUI/preferences/utilities/__init__.py
diff --git a/AppObjects/AppObject.py b/AppObjects/AppObject.py
new file mode 100644
index 00000000..05fcbfa0
--- /dev/null
+++ b/AppObjects/AppObject.py
@@ -0,0 +1,394 @@
+# ###########################################################
+# FlatCAM: 2D Post-processing for Manufacturing #
+# http://flatcam.org #
+# Author: Juan Pablo Caram (c) #
+# Date: 2/5/2014 #
+# MIT Licence #
+# Modified by Marius Stanciu (2020) #
+# ###########################################################
+
+from PyQt5 import QtCore
+from AppObjects.ObjectCollection import *
+from AppObjects.FlatCAMCNCJob import CNCJobObject
+from AppObjects.FlatCAMDocument import DocumentObject
+from AppObjects.FlatCAMExcellon import ExcellonObject
+from AppObjects.FlatCAMGeometry import GeometryObject
+from AppObjects.FlatCAMGerber import GerberObject
+from AppObjects.FlatCAMScript import ScriptObject
+
+import time
+import traceback
+
+# FlatCAM Translation
+import gettext
+import AppTranslation as fcTranslate
+import builtins
+
+fcTranslate.apply_language('strings')
+if '_' not in builtins.__dict__:
+ _ = gettext.gettext
+
+
+class AppObject(QtCore.QObject):
+
+ # Emitted by app_obj.new_object() and passes the new object as argument, plot flag.
+ # on_object_created() adds the object to the collection, plots on appropriate flag
+ # and emits app_obj.new_object_available.
+ object_created = QtCore.pyqtSignal(object, bool, bool)
+
+ # Emitted when a object has been changed (like scaled, mirrored)
+ object_changed = QtCore.pyqtSignal(object)
+
+ # Emitted after object has been plotted.
+ # Calls 'on_zoom_fit' method to fit object in scene view in main thread to prevent drawing glitches.
+ object_plotted = QtCore.pyqtSignal(object)
+
+ plots_updated = QtCore.pyqtSignal()
+
+ def __init__(self, app):
+ super(AppObject, self).__init__()
+ self.app = app
+ self.inform = app.inform
+
+ # signals that are emitted when object state changes
+ self.object_created.connect(self.on_object_created)
+ self.object_changed.connect(self.on_object_changed)
+ self.object_plotted.connect(self.on_object_plotted)
+ self.plots_updated.connect(self.app.on_plots_updated)
+
+ def new_object(self, kind, name, initialize, plot=True, autoselected=True):
+ """
+ Creates a new specialized FlatCAMObj and attaches it to the application,
+ this is, updates the GUI accordingly, any other records and plots it.
+ This method is thread-safe.
+
+ Notes:
+ * If the name is in use, the self.collection will modify it
+ when appending it to the collection. There is no need to handle
+ name conflicts here.
+
+ :param kind: The kind of object to create. One of 'gerber', 'excellon', 'cncjob' and 'geometry'.
+ :type kind: str
+ :param name: Name for the object.
+ :type name: str
+ :param initialize: Function to run after creation of the object but before it is attached to the application.
+ The function is called with 2 parameters: the new object and the App instance.
+ :type initialize: function
+ :param plot: If to plot the resulting object
+ :param autoselected: if the resulting object is autoselected in the Project tab and therefore in the
+ self.collection
+ :return: None
+ :rtype: None
+ """
+
+ log.debug("AppObject.new_object()")
+ obj_plot = plot
+ obj_autoselected = autoselected
+
+ t0 = time.time() # Debug
+
+ # ## Create object
+ classdict = {
+ "gerber": GerberObject,
+ "excellon": ExcellonObject,
+ "cncjob": CNCJobObject,
+ "geometry": GeometryObject,
+ "script": ScriptObject,
+ "document": DocumentObject
+ }
+
+ log.debug("Calling object constructor...")
+
+ # Object creation/instantiation
+ obj = classdict[kind](name)
+
+ obj.units = self.app.options["units"]
+
+ # IMPORTANT
+ # The key names in defaults and options dictionary's are not random:
+ # they have to have in name first the type of the object (geometry, excellon, cncjob and gerber) or how it's
+ # called here, the 'kind' followed by an underline. Above the App default values from self.defaults are
+ # copied to self.options. After that, below, depending on the type of
+ # object that is created, it will strip the name of the object and the underline (if the original key was
+ # let's say "excellon_toolchange", it will strip the excellon_) and to the obj.options the key will become
+ # "toolchange"
+
+ for option in self.app.options:
+ if option.find(kind + "_") == 0:
+ oname = option[len(kind) + 1:]
+ obj.options[oname] = self.app.options[option]
+
+ obj.isHovering = False
+ obj.notHovering = True
+
+ # Initialize as per user request
+ # User must take care to implement initialize
+ # in a thread-safe way as is is likely that we
+ # have been invoked in a separate thread.
+ t1 = time.time()
+ log.debug("%f seconds before initialize()." % (t1 - t0))
+ try:
+ return_value = initialize(obj, self.app)
+ except Exception as e:
+ msg = '[ERROR_NOTCL] %s' % _("An internal error has occurred. See shell.\n")
+ msg += _("Object ({kind}) failed because: {error} \n\n").format(kind=kind, error=str(e))
+ msg += traceback.format_exc()
+ self.app.inform.emit(msg)
+ return "fail"
+
+ t2 = time.time()
+ log.debug("%f seconds executing initialize()." % (t2 - t1))
+
+ if return_value == 'fail':
+ log.debug("Object (%s) parsing and/or geometry creation failed." % kind)
+ return "fail"
+
+ # Check units and convert if necessary
+ # This condition CAN be true because initialize() can change obj.units
+ if self.app.options["units"].upper() != obj.units.upper():
+ self.app.inform.emit('%s: %s' % (_("Converting units to "), self.app.options["units"]))
+ obj.convert_units(self.app.options["units"])
+ t3 = time.time()
+ log.debug("%f seconds converting units." % (t3 - t2))
+
+ # Create the bounding box for the object and then add the results to the obj.options
+ # But not for Scripts or for Documents
+ if kind != 'document' and kind != 'script':
+ try:
+ xmin, ymin, xmax, ymax = obj.bounds()
+ obj.options['xmin'] = xmin
+ obj.options['ymin'] = ymin
+ obj.options['xmax'] = xmax
+ obj.options['ymax'] = ymax
+ except Exception as e:
+ log.warning("AppObject.new_object() -> The object has no bounds properties. %s" % str(e))
+ return "fail"
+
+ try:
+ if kind == 'excellon':
+ obj.fill_color = self.app.defaults["excellon_plot_fill"]
+ obj.outline_color = self.app.defaults["excellon_plot_line"]
+
+ if kind == 'gerber':
+ obj.fill_color = self.app.defaults["gerber_plot_fill"]
+ obj.outline_color = self.app.defaults["gerber_plot_line"]
+ except Exception as e:
+ log.warning("AppObject.new_object() -> setting colors error. %s" % str(e))
+
+ # update the KeyWords list with the name of the file
+ self.app.myKeywords.append(obj.options['name'])
+
+ log.debug("Moving new object back to main thread.")
+
+ # Move the object to the main thread and let the app know that it is available.
+ obj.moveToThread(self.app.main_thread)
+ self.object_created.emit(obj, obj_plot, obj_autoselected)
+
+ return obj
+
+ def new_excellon_object(self):
+ """
+ Creates a new, blank Excellon object.
+
+ :return: None
+ """
+
+ self.new_object('excellon', 'new_exc', lambda x, y: None, plot=False)
+
+ def new_geometry_object(self):
+ """
+ Creates a new, blank and single-tool Geometry object.
+
+ :return: None
+ """
+
+ def initialize(obj, app):
+ obj.multitool = False
+
+ self.new_object('geometry', 'new_geo', initialize, plot=False)
+
+ def new_gerber_object(self):
+ """
+ Creates a new, blank Gerber object.
+
+ :return: None
+ """
+
+ def initialize(grb_obj, app):
+ grb_obj.multitool = False
+ grb_obj.source_file = []
+ grb_obj.multigeo = False
+ grb_obj.follow = False
+ grb_obj.apertures = {}
+ grb_obj.solid_geometry = []
+
+ try:
+ grb_obj.options['xmin'] = 0
+ grb_obj.options['ymin'] = 0
+ grb_obj.options['xmax'] = 0
+ grb_obj.options['ymax'] = 0
+ except KeyError:
+ pass
+
+ self.new_object('gerber', 'new_grb', initialize, plot=False)
+
+ def new_script_object(self):
+ """
+ Creates a new, blank TCL Script object.
+
+ :return: None
+ """
+
+ # commands_list = "# AddCircle, AddPolygon, AddPolyline, AddRectangle, AlignDrill, " \
+ # "AlignDrillGrid, Bbox, Bounds, ClearShell, CopperClear,\n" \
+ # "# Cncjob, Cutout, Delete, Drillcncjob, ExportDXF, ExportExcellon, ExportGcode,\n" \
+ # "# ExportGerber, ExportSVG, Exteriors, Follow, GeoCutout, GeoUnion, GetNames,\n" \
+ # "# GetSys, ImportSvg, Interiors, Isolate, JoinExcellon, JoinGeometry, " \
+ # "ListSys, MillDrills,\n" \
+ # "# MillSlots, Mirror, New, NewExcellon, NewGeometry, NewGerber, Nregions, " \
+ # "Offset, OpenExcellon, OpenGCode, OpenGerber, OpenProject,\n" \
+ # "# Options, Paint, Panelize, PlotAl, PlotObjects, SaveProject, " \
+ # "SaveSys, Scale, SetActive, SetSys, SetOrigin, Skew, SubtractPoly,\n" \
+ # "# SubtractRectangle, Version, WriteGCode\n"
+
+ new_source_file = '# %s\n' % _('CREATE A NEW FLATCAM TCL SCRIPT') + \
+ '# %s:\n' % _('TCL Tutorial is here') + \
+ '# https://www.tcl.tk/man/tcl8.5/tutorial/tcltutorial.html\n' + '\n\n' + \
+ '# %s:\n' % _("FlatCAM commands list")
+ new_source_file += '# %s\n\n' % _("Type >help< followed by Run Code for a list of FlatCAM Tcl Commands "
+ "(displayed in Tcl Shell).")
+
+ def initialize(obj, app):
+ obj.source_file = deepcopy(new_source_file)
+
+ outname = 'new_script'
+ self.new_object('script', outname, initialize, plot=False)
+
+ def new_document_object(self):
+ """
+ Creates a new, blank Document object.
+
+ :return: None
+ """
+
+ def initialize(obj, app):
+ obj.source_file = ""
+
+ self.new_object('document', 'new_document', initialize, plot=False)
+
+ def on_object_created(self, obj, plot, auto_select):
+ """
+ Event callback for object creation.
+ It will add the new object to the collection. After that it will plot the object in a threaded way
+
+ :param obj: The newly created FlatCAM object.
+ :param plot: if the newly create object t obe plotted
+ :param auto_select: if the newly created object to be autoselected after creation
+ :return: None
+ """
+ t0 = time.time() # DEBUG
+ log.debug("on_object_created()")
+
+ # The Collection might change the name if there is a collision
+ self.app.collection.append(obj)
+
+ # after adding the object to the collection always update the list of objects that are in the collection
+ self.app.all_objects_list = self.app.collection.get_list()
+
+ # self.app.inform.emit('[selected] %s created & selected: %s' %
+ # (str(obj.kind).capitalize(), str(obj.options['name'])))
+ if obj.kind == 'gerber':
+ self.app.inform.emit('[selected] {kind} {tx}: {name}'.format(
+ kind=obj.kind.capitalize(),
+ color='green',
+ name=str(obj.options['name']), tx=_("created/selected"))
+ )
+ elif obj.kind == 'excellon':
+ self.app.inform.emit('[selected] {kind} {tx}: {name}'.format(
+ kind=obj.kind.capitalize(),
+ color='brown',
+ name=str(obj.options['name']), tx=_("created/selected"))
+ )
+ elif obj.kind == 'cncjob':
+ self.app.inform.emit('[selected] {kind} {tx}: {name}'.format(
+ kind=obj.kind.capitalize(),
+ color='blue',
+ name=str(obj.options['name']), tx=_("created/selected"))
+ )
+ elif obj.kind == 'geometry':
+ self.app.inform.emit('[selected] {kind} {tx}: {name}'.format(
+ kind=obj.kind.capitalize(),
+ color='red',
+ name=str(obj.options['name']), tx=_("created/selected"))
+ )
+ elif obj.kind == 'script':
+ self.app.inform.emit('[selected] {kind} {tx}: {name}'.format(
+ kind=obj.kind.capitalize(),
+ color='orange',
+ name=str(obj.options['name']), tx=_("created/selected"))
+ )
+ elif obj.kind == 'document':
+ self.app.inform.emit('[selected] {kind} {tx}: {name}'.format(
+ kind=obj.kind.capitalize(),
+ color='darkCyan',
+ name=str(obj.options['name']), tx=_("created/selected"))
+ )
+
+ # update the SHELL auto-completer model with the name of the new object
+ self.app.shell._edit.set_model_data(self.app.myKeywords)
+
+ if auto_select:
+ # select the just opened object but deselect the previous ones
+ self.app.collection.set_all_inactive()
+ self.app.collection.set_active(obj.options["name"])
+ else:
+ self.app.collection.set_all_inactive()
+
+ # here it is done the object plotting
+ def task(t_obj):
+ with self.app.proc_container.new(_("Plotting")):
+ if t_obj.kind == 'cncjob':
+ t_obj.plot(kind=self.app.defaults["cncjob_plot_kind"])
+ else:
+ t_obj.plot()
+
+ t1 = time.time() # DEBUG
+ log.debug("%f seconds adding object and plotting." % (t1 - t0))
+ self.object_plotted.emit(t_obj)
+
+ # Send to worker
+ # self.worker.add_task(worker_task, [self])
+ if plot is True:
+ self.app.worker_task.emit({'fcn': task, 'params': [obj]})
+
+ def on_object_changed(self, obj):
+ """
+ Called whenever the geometry of the object was changed in some way.
+ This require the update of it's bounding values so it can be the selected on canvas.
+ Update the bounding box data from obj.options
+
+ :param obj: the object that was changed
+ :return: None
+ """
+
+ try:
+ xmin, ymin, xmax, ymax = obj.bounds()
+ except TypeError:
+ return
+ obj.options['xmin'] = xmin
+ obj.options['ymin'] = ymin
+ obj.options['xmax'] = xmax
+ obj.options['ymax'] = ymax
+
+ log.debug("Object changed, updating the bounding box data on self.options")
+ # delete the old selection shape
+ self.app.delete_selection_shape()
+ self.app.should_we_save = True
+
+ def on_object_plotted(self):
+ """
+ Callback called whenever the plotted object needs to be fit into the viewport (canvas)
+
+ :return: None
+ """
+ self.app.on_zoom_fit()
diff --git a/flatcamObjects/FlatCAMCNCJob.py b/AppObjects/FlatCAMCNCJob.py
similarity index 97%
rename from flatcamObjects/FlatCAMCNCJob.py
rename to AppObjects/FlatCAMCNCJob.py
index c9a47076..f0fe0765 100644
--- a/flatcamObjects/FlatCAMCNCJob.py
+++ b/AppObjects/FlatCAMCNCJob.py
@@ -14,8 +14,8 @@ from copy import deepcopy
from io import StringIO
from datetime import datetime
-from flatcamEditors.FlatCAMTextEditor import TextEditor
-from flatcamObjects.FlatCAMObj import *
+from AppEditors.FlatCAMTextEditor import TextEditor
+from AppObjects.FlatCAMObj import *
from camlib import CNCjob
@@ -24,7 +24,7 @@ import sys
import math
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -506,10 +506,10 @@ class CNCJobObject(FlatCAMObj, CNCjob):
filename, _f = FCFileSaveDialog.get_saved_filename(
caption=_("Export Machine Code ..."),
directory=dir_file_to_save,
- filter=_filter_
+ ext_filter=_filter_
)
except TypeError:
- filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export Machine Code ..."), filter=_filter_)
+ filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export Machine Code ..."), ext_filter=_filter_)
filename = str(filename)
@@ -564,7 +564,7 @@ class CNCJobObject(FlatCAMObj, CNCjob):
# delete the absolute and relative position and messages in the infobar
self.app.ui.position_label.setText("")
- self.app.ui.rel_position_label.setText("")
+ # self.app.ui.rel_position_label.setText("")
# first clear previous text in text editor (if any)
self.gcode_editor_tab.code_editor.clear()
@@ -989,7 +989,6 @@ class CNCJobObject(FlatCAMObj, CNCjob):
for key in self.cnc_tools:
ppg = self.cnc_tools[key]['data']['ppname_g']
if 'toolchange_custom' not in str(ppg).lower():
- print(ppg)
if self.ui.toolchange_cb.get_value():
self.ui.toolchange_cb.set_value(False)
self.app.inform.emit('[WARNING_NOTCL] %s' %
@@ -1107,7 +1106,7 @@ class CNCJobObject(FlatCAMObj, CNCjob):
except ValueError:
# we may have a tuple with only one element and a comma
dia_plot = [float(el) for el in self.options["tooldia"].split(',') if el != ''][0]
- self.plot2(dia_plot, obj=self, visible=visible, kind=kind)
+ self.plot2(tooldia=dia_plot, obj=self, visible=visible, kind=kind)
else:
# multiple tools usage
if self.cnc_tools:
@@ -1117,12 +1116,16 @@ class CNCJobObject(FlatCAMObj, CNCjob):
self.plot2(tooldia=tooldia, obj=self, visible=visible, gcode_parsed=gcode_parsed, kind=kind)
# TODO: until the gcode parsed will be stored on each Excellon tool this will not get executed
- if self.exc_cnc_tools:
- for tooldia_key in self.exc_cnc_tools:
- tooldia = float('%.*f' % (self.decimals, float(tooldia_key)))
- # gcode_parsed = self.cnc_tools[tooldia_key]['gcode_parsed']
- gcode_parsed = self.gcode_parsed
- self.plot2(tooldia=tooldia, obj=self, visible=visible, gcode_parsed=gcode_parsed, kind=kind)
+ # I do this so the travel lines thickness will reflect the tool diameter
+ # may work only for objects created within the app and not Gcode imported from elsewhere for which we
+ # don't know the origin
+ if self.origin_kind == "excellon":
+ if self.exc_cnc_tools:
+ for tooldia_key in self.exc_cnc_tools:
+ tooldia = float('%.*f' % (self.decimals, float(tooldia_key)))
+ # gcode_parsed = self.exc_cnc_tools[tooldia_key]['gcode_parsed']
+ gcode_parsed = self.gcode_parsed
+ self.plot2(tooldia=tooldia, obj=self, visible=visible, gcode_parsed=gcode_parsed, kind=kind)
self.shapes.redraw()
except (ObjectDeleted, AttributeError):
diff --git a/flatcamObjects/FlatCAMDocument.py b/AppObjects/FlatCAMDocument.py
similarity index 95%
rename from flatcamObjects/FlatCAMDocument.py
rename to AppObjects/FlatCAMDocument.py
index 5f33b73a..c9aadca9 100644
--- a/flatcamObjects/FlatCAMDocument.py
+++ b/AppObjects/FlatCAMDocument.py
@@ -10,11 +10,11 @@
# File modified by: Marius Stanciu #
# ##########################################################
-from flatcamEditors.FlatCAMTextEditor import TextEditor
-from flatcamObjects.FlatCAMObj import *
+from AppEditors.FlatCAMTextEditor import TextEditor
+from AppObjects.FlatCAMObj import *
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -284,6 +284,27 @@ class DocumentObject(FlatCAMObj):
self.ui.sel_color_entry.set_value(new_val)
self.app.defaults['document_sel_color'] = new_val
+ def mirror(self, axis, point):
+ pass
+
+ def offset(self, vect):
+ pass
+
+ def rotate(self, angle, point):
+ pass
+
+ def scale(self, xfactor, yfactor=None, point=None):
+ pass
+
+ def skew(self, angle_x, angle_y, point):
+ pass
+
+ def buffer(self, distance, join, factor=None):
+ pass
+
+ def bounds(self, flatten=False):
+ return None, None, None, None
+
def to_dict(self):
"""
Returns a representation of the object as a dictionary.
diff --git a/flatcamObjects/FlatCAMExcellon.py b/AppObjects/FlatCAMExcellon.py
similarity index 81%
rename from flatcamObjects/FlatCAMExcellon.py
rename to AppObjects/FlatCAMExcellon.py
index 79020ab1..71ce705c 100644
--- a/flatcamObjects/FlatCAMExcellon.py
+++ b/AppObjects/FlatCAMExcellon.py
@@ -15,13 +15,14 @@ from shapely.geometry import Point, LineString
from copy import deepcopy
-from flatcamParsers.ParseExcellon import Excellon
-from flatcamObjects.FlatCAMObj import *
+from AppParsers.ParseExcellon import Excellon
+from AppObjects.FlatCAMObj import *
import itertools
+import numpy as np
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -31,7 +32,7 @@ if '_' not in builtins.__dict__:
class ExcellonObject(FlatCAMObj, Excellon):
"""
- Represents Excellon/Drill code.
+ Represents Excellon/Drill code. An object stored in the FlatCAM objects collection (a dict)
"""
ui_type = ExcellonObjectUI
@@ -50,6 +51,7 @@ class ExcellonObject(FlatCAMObj, Excellon):
self.options.update({
"plot": True,
"solid": False,
+ "multicolored": False,
"operation": "drill",
"milling_type": "drills",
@@ -125,6 +127,10 @@ class ExcellonObject(FlatCAMObj, Excellon):
self.outline_color = self.app.defaults['excellon_plot_line']
self.alpha_level = 'bf'
+ # store here the state of the exclusion checkbox state to be restored after building the UI
+ # TODO add this in the sel.app.defaults dict and in Preferences
+ self.exclusion_area_cb_is_checked = False
+
# Attributes to be included in serialization
# Always append to it because it carries contents
# from predecessors.
@@ -142,9 +148,11 @@ class ExcellonObject(FlatCAMObj, Excellon):
If only one object is in exc_list parameter then this function will copy that object in the exc_final
- :param exc_list: List or one object of ExcellonObject Objects to join.
- :param exc_final: Destination ExcellonObject object.
- :return: None
+ :param exc_list: List or one object of ExcellonObject Objects to join.
+ :type exc_list: list
+ :param exc_final: Destination ExcellonObject object.
+ :type exc_final: class
+ :return: None
"""
if decimals is None:
@@ -312,8 +320,23 @@ class ExcellonObject(FlatCAMObj, Excellon):
exc_final.create_geometry()
def build_ui(self):
+ """
+ Will (re)build the Excellon UI updating it (the tool table)
+
+ :return: None
+ :rtype:
+ """
FlatCAMObj.build_ui(self)
+ # Area Exception - exclusion shape added signal
+ # first disconnect it from any other object
+ try:
+ self.app.exc_areas.e_shape_modified.disconnect()
+ except (TypeError, AttributeError):
+ pass
+ # then connect it to the current build_ui() method
+ self.app.exc_areas.e_shape_modified.connect(self.update_exclusion_table)
+
self.units = self.app.defaults['units'].upper()
for row in range(self.ui.tools_table.rowCount()):
@@ -514,6 +537,58 @@ class ExcellonObject(FlatCAMObj, Excellon):
"%s: %s" % (_('Parameters for'), _("Multiple Tools"))
)
+ # Build Exclusion Areas section
+ e_len = len(self.app.exc_areas.exclusion_areas_storage)
+ self.ui.exclusion_table.setRowCount(e_len)
+
+ area_id = 0
+
+ for area in range(e_len):
+ area_id += 1
+
+ area_dict = self.app.exc_areas.exclusion_areas_storage[area]
+
+ area_id_item = QtWidgets.QTableWidgetItem('%d' % int(area_id))
+ area_id_item.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled)
+ self.ui.exclusion_table.setItem(area, 0, area_id_item) # Area id
+
+ object_item = QtWidgets.QTableWidgetItem('%s' % area_dict["obj_type"])
+ object_item.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled)
+ self.ui.exclusion_table.setItem(area, 1, object_item) # Origin Object
+
+ strategy_item = QtWidgets.QTableWidgetItem('%s' % area_dict["strategy"])
+ strategy_item.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled)
+ self.ui.exclusion_table.setItem(area, 2, strategy_item) # Strategy
+
+ overz_item = QtWidgets.QTableWidgetItem('%s' % area_dict["overz"])
+ overz_item.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled)
+ self.ui.exclusion_table.setItem(area, 3, overz_item) # Over Z
+
+ self.ui.exclusion_table.resizeColumnsToContents()
+ self.ui.exclusion_table.resizeRowsToContents()
+
+ area_vheader = self.ui.exclusion_table.verticalHeader()
+ area_vheader.hide()
+ self.ui.exclusion_table.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
+
+ area_hheader = self.ui.exclusion_table.horizontalHeader()
+ area_hheader.setMinimumSectionSize(10)
+ area_hheader.setDefaultSectionSize(70)
+
+ area_hheader.setSectionResizeMode(0, QtWidgets.QHeaderView.Fixed)
+ area_hheader.resizeSection(0, 20)
+ area_hheader.setSectionResizeMode(1, QtWidgets.QHeaderView.Stretch)
+ area_hheader.setSectionResizeMode(2, QtWidgets.QHeaderView.ResizeToContents)
+ area_hheader.setSectionResizeMode(3, QtWidgets.QHeaderView.ResizeToContents)
+
+ # area_hheader.setStretchLastSection(True)
+ self.ui.exclusion_table.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
+
+ self.ui.exclusion_table.setColumnWidth(0, 20)
+
+ self.ui.exclusion_table.setMinimumHeight(self.ui.exclusion_table.getHeight())
+ self.ui.exclusion_table.setMaximumHeight(self.ui.exclusion_table.getHeight())
+
self.ui_connect()
def set_ui(self, ui):
@@ -521,9 +596,9 @@ class ExcellonObject(FlatCAMObj, Excellon):
Configures the user interface for this object.
Connects options to form fields.
- :param ui: User interface object.
- :type ui: ExcellonObjectUI
- :return: None
+ :param ui: User interface object.
+ :type ui: ExcellonObjectUI
+ :return: None
"""
FlatCAMObj.set_ui(self, ui)
@@ -534,6 +609,7 @@ class ExcellonObject(FlatCAMObj, Excellon):
self.form_fields.update({
"plot": self.ui.plot_cb,
"solid": self.ui.solid_cb,
+ "multicolored": self.ui.multicolored_cb,
"operation": self.ui.operation_radio,
"milling_type": self.ui.milling_type_radio,
@@ -567,7 +643,11 @@ class ExcellonObject(FlatCAMObj, Excellon):
"ppname_g": self.ui.pp_geo_name_cb,
"z_pdepth": self.ui.pdepth_entry,
"feedrate_probe": self.ui.feedrate_probe_entry,
- # "gcode_type": self.ui.excellon_gcode_type_radio
+ # "gcode_type": self.ui.excellon_gcode_type_radio,
+ "area_exclusion": self.ui.exclusion_cb,
+ "area_shape": self.ui.area_shape_radio,
+ "area_strategy": self.ui.strategy_radio,
+ "area_overz": self.ui.over_z_entry,
})
self.name2option = {
@@ -628,12 +708,24 @@ class ExcellonObject(FlatCAMObj, Excellon):
assert isinstance(self.ui, ExcellonObjectUI), \
"Expected a ExcellonObjectUI, got %s" % type(self.ui)
+
self.ui.plot_cb.stateChanged.connect(self.on_plot_cb_click)
self.ui.solid_cb.stateChanged.connect(self.on_solid_cb_click)
+ self.ui.multicolored_cb.stateChanged.connect(self.on_multicolored_cb_click)
+
self.ui.generate_cnc_button.clicked.connect(self.on_create_cncjob_button_click)
self.ui.generate_milling_button.clicked.connect(self.on_generate_milling_button_click)
self.ui.generate_milling_slots_button.clicked.connect(self.on_generate_milling_slots_button_click)
+ # Exclusion areas signals
+ self.ui.exclusion_table.horizontalHeader().sectionClicked.connect(self.exclusion_table_toggle_all)
+ self.ui.exclusion_table.lost_focus.connect(self.clear_selection)
+ self.ui.exclusion_table.itemClicked.connect(self.draw_sel_shape)
+ self.ui.add_area_button.clicked.connect(self.on_add_area_click)
+ self.ui.delete_area_button.clicked.connect(self.on_clear_area_click)
+ self.ui.delete_sel_area_button.clicked.connect(self.on_delete_sel_areas)
+ self.ui.strategy_radio.activated_custom.connect(self.on_strategy)
+
self.on_operation_type(val='drill')
self.ui.operation_radio.activated_custom.connect(self.on_operation_type)
@@ -650,6 +742,12 @@ class ExcellonObject(FlatCAMObj, Excellon):
self.ui.operation_radio.setEnabled(False)
def ui_connect(self):
+ """
+ Will connect all signals in the Excellon UI that needs to be connected
+
+ :return: None
+ :rtype:
+ """
# selective plotting
for row in range(self.ui.tools_table.rowCount() - 2):
@@ -672,6 +770,12 @@ class ExcellonObject(FlatCAMObj, Excellon):
current_widget.returnPressed.connect(self.form_to_storage)
def ui_disconnect(self):
+ """
+ Will disconnect all signals in the Excellon UI that needs to be disconnected
+
+ :return: None
+ :rtype:
+ """
# selective plotting
for row in range(self.ui.tools_table.rowCount()):
try:
@@ -714,6 +818,12 @@ class ExcellonObject(FlatCAMObj, Excellon):
pass
def on_row_selection_change(self):
+ """
+ Called when the user clicks on a row in Tools Table
+
+ :return: None
+ :rtype:
+ """
self.ui_disconnect()
sel_rows = []
@@ -764,6 +874,14 @@ class ExcellonObject(FlatCAMObj, Excellon):
self.ui_connect()
def storage_to_form(self, dict_storage):
+ """
+ Will update the GUI with data from the "storage" in this case the dict self.tools
+
+ :param dict_storage: A dictionary holding the data relevant for gnerating Gcode from Excellon
+ :type dict_storage: dict
+ :return: None
+ :rtype:
+ """
for form_key in self.form_fields:
for storage_key in dict_storage:
if form_key == storage_key and form_key not in \
@@ -775,6 +893,12 @@ class ExcellonObject(FlatCAMObj, Excellon):
pass
def form_to_storage(self):
+ """
+ Will update the 'storage' attribute which is the dict self.tools with data collected from GUI
+
+ :return: None
+ :rtype:
+ """
if self.ui.tools_table.rowCount() == 0:
# there is no tool in tool table so we can't save the GUI elements values to storage
return
@@ -803,6 +927,14 @@ class ExcellonObject(FlatCAMObj, Excellon):
self.ui_connect()
def on_operation_type(self, val):
+ """
+ Called by a RadioSet activated_custom signal
+
+ :param val: Parameter passes by the signal that called this method
+ :type val: str
+ :return: None
+ :rtype:
+ """
if val == 'mill':
self.ui.mill_type_label.show()
self.ui.milling_type_radio.show()
@@ -831,10 +963,10 @@ class ExcellonObject(FlatCAMObj, Excellon):
def get_selected_tools_list(self):
"""
Returns the keys to the self.tools dictionary corresponding
- to the selections on the tool list in the GUI.
+ to the selections on the tool list in the AppGUI.
- :return: List of tools.
- :rtype: list
+ :return: List of tools.
+ :rtype: list
"""
return [str(x.text()) for x in self.ui.tools_table.selectedItems()]
@@ -843,8 +975,8 @@ class ExcellonObject(FlatCAMObj, Excellon):
"""
Returns a list of lists, each list in the list is made out of row elements
- :return: List of table_tools items.
- :rtype: list
+ :return: List of table_tools items.
+ :rtype: list
"""
table_tools_items = []
for x in self.ui.tools_table.selectedItems():
@@ -872,7 +1004,21 @@ class ExcellonObject(FlatCAMObj, Excellon):
def export_excellon(self, whole, fract, e_zeros=None, form='dec', factor=1, slot_type='routing'):
"""
Returns two values, first is a boolean , if 1 then the file has slots and second contain the Excellon code
- :return: has_slots and Excellon_code
+
+ :param whole: Integer part digits
+ :type whole: int
+ :param fract: Fractional part digits
+ :type fract: int
+ :param e_zeros: Excellon zeros suppression: LZ or TZ
+ :type e_zeros: str
+ :param form: Excellon format: 'dec',
+ :type form: str
+ :param factor: Conversion factor
+ :type factor: float
+ :param slot_type: How to treat slots: "routing" or "drilling"
+ :type slot_type: str
+ :return: A tuple: (has_slots, Excellon_code) -> (bool, str)
+ :rtype: tuple
"""
excellon_code = ''
@@ -1039,13 +1185,25 @@ class ExcellonObject(FlatCAMObj, Excellon):
def generate_milling_drills(self, tools=None, outname=None, tooldia=None, plot=False, use_thread=False):
"""
+ Will generate an Geometry Object allowing to cut a drill hole instead of drilling it.
+
Note: This method is a good template for generic operations as
it takes it's options from parameters or otherwise from the
object's options and returns a (success, msg) tuple as feedback
for shell operations.
- :return: Success/failure condition tuple (bool, str).
- :rtype: tuple
+ :param tools: A list of tools where the drills are to be milled or a string: "all"
+ :type tools:
+ :param outname: the name of the resulting Geometry object
+ :type outname: str
+ :param tooldia: the tool diameter to be used in creation of the milling path (Geometry Object)
+ :type tooldia: float
+ :param plot: if to plot the resulting object
+ :type plot: bool
+ :param use_thread: if to use threading for creation of the Geometry object
+ :type use_thread: bool
+ :return: Success/failure condition tuple (bool, str).
+ :rtype: tuple
"""
# Get the tools from the list. These are keys
@@ -1088,6 +1246,15 @@ class ExcellonObject(FlatCAMObj, Excellon):
return False, "Error: Milling tool is larger than hole."
def geo_init(geo_obj, app_obj):
+ """
+
+ :param geo_obj: New object
+ :type geo_obj: GeometryObject
+ :param app_obj: App
+ :type app_obj: FlatCAMApp.App
+ :return:
+ :rtype:
+ """
assert geo_obj.kind == 'geometry', "Initializer expected a GeometryObject, got %s" % type(geo_obj)
# ## Add properties to the object
@@ -1100,7 +1267,7 @@ class ExcellonObject(FlatCAMObj, Excellon):
geo_obj.options['Tools_in_use'] = tool_table_items
geo_obj.options['type'] = 'Excellon Geometry'
geo_obj.options["cnctooldia"] = str(tooldia)
-
+ geo_obj.options["multidepth"] = self.options["multidepth"]
geo_obj.solid_geometry = []
# in case that the tool used has the same diameter with the hole, and since the maximum resolution
@@ -1115,9 +1282,10 @@ class ExcellonObject(FlatCAMObj, Excellon):
else:
geo_obj.solid_geometry.append(
Point(hole['point']).buffer(buffer_value).exterior)
+
if use_thread:
- def geo_thread(app_obj):
- app_obj.new_object("geometry", outname, geo_init, plot=plot)
+ def geo_thread(a_obj):
+ a_obj.app_obj.new_object("geometry", outname, geo_init, plot=plot)
# Create a promise with the new name
self.app.collection.promise(outname)
@@ -1125,19 +1293,31 @@ class ExcellonObject(FlatCAMObj, Excellon):
# Send to worker
self.app.worker_task.emit({'fcn': geo_thread, 'params': [self.app]})
else:
- self.app.new_object("geometry", outname, geo_init, plot=plot)
+ self.app.app_obj.new_object("geometry", outname, geo_init, plot=plot)
return True, ""
- def generate_milling_slots(self, tools=None, outname=None, tooldia=None, plot=True, use_thread=False):
+ def generate_milling_slots(self, tools=None, outname=None, tooldia=None, plot=False, use_thread=False):
"""
+ Will generate an Geometry Object allowing to cut/mill a slot hole.
+
Note: This method is a good template for generic operations as
it takes it's options from parameters or otherwise from the
object's options and returns a (success, msg) tuple as feedback
for shell operations.
- :return: Success/failure condition tuple (bool, str).
- :rtype: tuple
+ :param tools: A list of tools where the drills are to be milled or a string: "all"
+ :type tools:
+ :param outname: the name of the resulting Geometry object
+ :type outname: str
+ :param tooldia: the tool diameter to be used in creation of the milling path (Geometry Object)
+ :type tooldia: float
+ :param plot: if to plot the resulting object
+ :type plot: bool
+ :param use_thread: if to use threading for creation of the Geometry object
+ :type use_thread: bool
+ :return: Success/failure condition tuple (bool, str).
+ :rtype: tuple
"""
# Get the tools from the list. These are keys
@@ -1178,7 +1358,7 @@ class ExcellonObject(FlatCAMObj, Excellon):
return False, "Error: Milling tool is larger than hole."
def geo_init(geo_obj, app_obj):
- assert geo_obj.kind == 'geometry' "Initializer expected a GeometryObject, got %s" % type(geo_obj)
+ assert geo_obj.kind == 'geometry', "Initializer expected a GeometryObject, got %s" % type(geo_obj)
# ## Add properties to the object
@@ -1190,7 +1370,7 @@ class ExcellonObject(FlatCAMObj, Excellon):
geo_obj.options['Tools_in_use'] = tool_table_items
geo_obj.options['type'] = 'Excellon Geometry'
geo_obj.options["cnctooldia"] = str(tooldia)
-
+ geo_obj.options["multidepth"] = self.options["multidepth"]
geo_obj.solid_geometry = []
# in case that the tool used has the same diameter with the hole, and since the maximum resolution
@@ -1220,8 +1400,8 @@ class ExcellonObject(FlatCAMObj, Excellon):
geo_obj.solid_geometry.append(poly)
if use_thread:
- def geo_thread(app_obj):
- app_obj.new_object("geometry", outname + '_slot', geo_init, plot=plot)
+ def geo_thread(a_obj):
+ a_obj.app_obj.new_object("geometry", outname + '_slot', geo_init, plot=plot)
# Create a promise with the new name
self.app.collection.promise(outname)
@@ -1229,7 +1409,7 @@ class ExcellonObject(FlatCAMObj, Excellon):
# Send to worker
self.app.worker_task.emit({'fcn': geo_thread, 'params': [self.app]})
else:
- self.app.new_object("geometry", outname + '_slot', geo_init, plot=plot)
+ self.app.app_obj.new_object("geometry", outname + '_slot', geo_init, plot=plot)
return True, ""
@@ -1237,13 +1417,13 @@ class ExcellonObject(FlatCAMObj, Excellon):
self.app.defaults.report_usage("excellon_on_create_milling_drills button")
self.read_form()
- self.generate_milling_drills(use_thread=False)
+ self.generate_milling_drills(use_thread=False, plot=True)
def on_generate_milling_slots_button_click(self, *args):
self.app.defaults.report_usage("excellon_on_create_milling_slots_button")
self.read_form()
- self.generate_milling_slots(use_thread=False)
+ self.generate_milling_slots(use_thread=False, plot=True)
def on_pp_changed(self):
current_pp = self.ui.pp_excellon_name_cb.get_value()
@@ -1363,7 +1543,7 @@ class ExcellonObject(FlatCAMObj, Excellon):
job_name = self.options["name"] + "_cnc"
pp_excellon_name = self.options["ppname_e"]
- # Object initialization function for app.new_object()
+ # Object initialization function for app.app_obj.new_object()
def job_init(job_obj, app_obj):
assert job_obj.kind == 'cncjob', "Initializer expected a CNCJobObject, got %s" % type(job_obj)
@@ -1426,9 +1606,9 @@ class ExcellonObject(FlatCAMObj, Excellon):
job_obj.create_geometry()
# To be run in separate thread
- def job_thread(app_obj):
+ def job_thread(a_obj):
with self.app.proc_container.new(_("Generating CNC Code")):
- app_obj.new_object("cncjob", job_name, job_init)
+ a_obj.app_obj.new_object("cncjob", job_name, job_init)
# Create promise for the new name.
self.app.collection.promise(job_name)
@@ -1466,12 +1646,122 @@ class ExcellonObject(FlatCAMObj, Excellon):
# self.options['startz'] = float(self.options['startz']) * factor
# self.options['endz'] = float(self.options['endz']) * factor
+ def on_add_area_click(self):
+ shape_button = self.ui.area_shape_radio
+ overz_button = self.ui.over_z_entry
+ strategy_radio = self.ui.strategy_radio
+ cnc_button = self.ui.generate_cnc_button
+ solid_geo = self.solid_geometry
+ obj_type = self.kind
+
+ self.app.exc_areas.on_add_area_click(
+ shape_button=shape_button, overz_button=overz_button, cnc_button=cnc_button, strategy_radio=strategy_radio,
+ solid_geo=solid_geo, obj_type=obj_type)
+
+ def on_clear_area_click(self):
+ if not self.app.exc_areas.exclusion_areas_storage:
+ self.app.inform.emit("[WARNING_NOTCL] %s" % _("Delete failed. There are no exclusion areas to delete."))
+ return
+
+ self.app.exc_areas.on_clear_area_click()
+ self.app.exc_areas.e_shape_modified.emit()
+
+ def on_delete_sel_areas(self):
+ sel_model = self.ui.exclusion_table.selectionModel()
+ sel_indexes = sel_model.selectedIndexes()
+
+ # it will iterate over all indexes which means all items in all columns too but I'm interested only on rows
+ # so the duplicate rows will not be added
+ sel_rows = set()
+ for idx in sel_indexes:
+ sel_rows.add(idx.row())
+
+ if not sel_rows:
+ self.app.inform.emit("[WARNING_NOTCL] %s" % _("Delete failed. Nothing is selected."))
+ return
+
+ self.app.exc_areas.delete_sel_shapes(idxs=list(sel_rows))
+ self.app.exc_areas.e_shape_modified.emit()
+
+ def draw_sel_shape(self):
+ sel_model = self.ui.exclusion_table.selectionModel()
+ sel_indexes = sel_model.selectedIndexes()
+
+ # it will iterate over all indexes which means all items in all columns too but I'm interested only on rows
+ sel_rows = set()
+ for idx in sel_indexes:
+ sel_rows.add(idx.row())
+
+ self.delete_sel_shape()
+
+ if self.app.is_legacy is False:
+ face = self.app.defaults['global_sel_fill'][:-2] + str(hex(int(0.2 * 255)))[2:]
+ outline = self.app.defaults['global_sel_line'][:-2] + str(hex(int(0.8 * 255)))[2:]
+ else:
+ face = self.app.defaults['global_sel_fill'][:-2] + str(hex(int(0.4 * 255)))[2:]
+ outline = self.app.defaults['global_sel_line'][:-2] + str(hex(int(1.0 * 255)))[2:]
+
+ for row in sel_rows:
+ sel_rect = self.app.exc_areas.exclusion_areas_storage[row]['shape']
+ self.app.move_tool.sel_shapes.add(sel_rect, color=outline, face_color=face, update=True, layer=0,
+ tolerance=None)
+ if self.app.is_legacy is True:
+ self.app.move_tool.sel_shapes.redraw()
+
+ def clear_selection(self):
+ self.app.delete_selection_shape()
+ # self.ui.exclusion_table.clearSelection()
+
+ def delete_sel_shape(self):
+ self.app.delete_selection_shape()
+
+ def update_exclusion_table(self):
+ self.exclusion_area_cb_is_checked = True if self.ui.exclusion_cb.isChecked() else False
+
+ self.build_ui()
+ self.ui.exclusion_cb.set_value(self.exclusion_area_cb_is_checked)
+
+ def on_strategy(self, val):
+ if val == 'around':
+ self.ui.over_z_label.setDisabled(True)
+ self.ui.over_z_entry.setDisabled(True)
+ else:
+ self.ui.over_z_label.setDisabled(False)
+ self.ui.over_z_entry.setDisabled(False)
+
+ def exclusion_table_toggle_all(self):
+ """
+ will toggle the selection of all rows in Exclusion Areas table
+
+ :return:
+ """
+ sel_model = self.ui.exclusion_table.selectionModel()
+ sel_indexes = sel_model.selectedIndexes()
+
+ # it will iterate over all indexes which means all items in all columns too but I'm interested only on rows
+ sel_rows = set()
+ for idx in sel_indexes:
+ sel_rows.add(idx.row())
+
+ if sel_rows:
+ self.ui.exclusion_table.clearSelection()
+ self.delete_sel_shape()
+ else:
+ self.ui.exclusion_table.selectAll()
+ self.draw_sel_shape()
+
def on_solid_cb_click(self, *args):
if self.muted_ui:
return
self.read_form_item('solid')
self.plot()
+ def on_multicolored_cb_click(self, *args):
+ if self.muted_ui:
+ return
+ self.read_form_item('multicolored')
+ self.plot()
+
def on_plot_cb_click(self, *args):
if self.muted_ui:
return
@@ -1545,6 +1835,27 @@ class ExcellonObject(FlatCAMObj, Excellon):
if not FlatCAMObj.plot(self):
return
+ if self.app.is_legacy is False:
+ def random_color():
+ r_color = np.random.rand(4)
+ r_color[3] = 1
+ return r_color
+ else:
+ def random_color():
+ while True:
+ r_color = np.random.rand(4)
+ r_color[3] = 1
+
+ new_color = '#'
+ for idx in range(len(r_color)):
+ new_color += '%x' % int(r_color[idx] * 255)
+ # do it until a valid color is generated
+ # a valid color has the # symbol, another 6 chars for the color and the last 2 chars for alpha
+ # for a total of 9 chars
+ if len(new_color) == 9:
+ break
+ return new_color
+
# try:
# # Plot Excellon (All polygons?)
# if self.options["solid"]:
@@ -1576,12 +1887,26 @@ class ExcellonObject(FlatCAMObj, Excellon):
try:
# Plot Excellon (All polygons?)
if self.options["solid"]:
- for geo in self.solid_geometry:
- self.add_shape(shape=geo,
- color=self.outline_color,
- face_color=self.fill_color,
- visible=visible,
- layer=2)
+ # for geo in self.solid_geometry:
+ # self.add_shape(shape=geo,
+ # color=self.outline_color,
+ # face_color=random_color() if self.options['multicolored'] else self.fill_color,
+ # visible=visible,
+ # layer=2)
+
+ # plot polygons for each tool separately
+ for tool in self.tools:
+ # set the color here so we have one color for each tool
+ geo_color = random_color()
+
+ # tool is a dict also
+ for geo in self.tools[tool]["solid_geometry"]:
+ self.add_shape(shape=geo,
+ color=geo_color if self.options['multicolored'] else self.outline_color,
+ face_color=geo_color if self.options['multicolored'] else self.fill_color,
+ visible=visible,
+ layer=2)
+
else:
for geo in self.solid_geometry:
self.add_shape(shape=geo.exterior, color='red', visible=visible)
diff --git a/flatcamObjects/FlatCAMGeometry.py b/AppObjects/FlatCAMGeometry.py
similarity index 89%
rename from flatcamObjects/FlatCAMGeometry.py
rename to AppObjects/FlatCAMGeometry.py
index f4d0554f..cdb4b9ad 100644
--- a/flatcamObjects/FlatCAMGeometry.py
+++ b/AppObjects/FlatCAMGeometry.py
@@ -15,8 +15,7 @@ import shapely.affinity as affinity
from camlib import Geometry
-from flatcamObjects.FlatCAMObj import *
-import FlatCAMTool
+from AppObjects.FlatCAMObj import *
import ezdxf
import math
@@ -25,7 +24,7 @@ from copy import deepcopy
import traceback
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -53,6 +52,7 @@ class GeometryObject(FlatCAMObj, Geometry):
self.options.update({
"plot": True,
+ "multicolored": False,
"cutz": -0.002,
"vtipdia": 0.1,
"vtipangle": 30,
@@ -151,17 +151,9 @@ class GeometryObject(FlatCAMObj, Geometry):
self.param_fields = {}
- # Event signals disconnect id holders
- self.mr = None
- self.mm = None
- self.kp = None
-
- # variables to be used in area exclusion
- self.cursor_pos = (0, 0)
- self.exclusion_areas_list = []
- self.first_click = False
- self.points = []
- self.poly_drawn = False
+ # store here the state of the exclusion checkbox state to be restored after building the UI
+ # TODO add this in the sel.app.defaults dict and in Preferences
+ self.exclusion_area_cb_is_checked = False
# Attributes to be included in serialization
# Always append to it because it carries contents
@@ -172,6 +164,15 @@ class GeometryObject(FlatCAMObj, Geometry):
self.ui_disconnect()
FlatCAMObj.build_ui(self)
+ # Area Exception - exclusion shape added signal
+ # first disconnect it from any other object
+ try:
+ self.app.exc_areas.e_shape_modified.disconnect()
+ except (TypeError, AttributeError):
+ pass
+ # then connect it to the current build_ui() method
+ self.app.exc_areas.e_shape_modified.connect(self.update_exclusion_table)
+
self.units = self.app.defaults['units']
tool_idx = 0
@@ -192,7 +193,6 @@ class GeometryObject(FlatCAMObj, Geometry):
# For INCH the decimals should be no more than 3. There are no tools under 10mils.
dia_item = QtWidgets.QTableWidgetItem('%.*f' % (self.decimals, float(tooluid_value['tooldia'])))
-
dia_item.setFlags(QtCore.Qt.ItemIsEnabled)
offset_item = FCComboBox()
@@ -305,6 +305,63 @@ class GeometryObject(FlatCAMObj, Geometry):
self.set_tool_offset_visibility(selected_row)
+ # -----------------------------
+ # Build Exclusion Areas section
+ # -----------------------------
+ e_len = len(self.app.exc_areas.exclusion_areas_storage)
+ self.ui.exclusion_table.setRowCount(e_len)
+
+ area_id = 0
+
+ for area in range(e_len):
+ area_id += 1
+
+ area_dict = self.app.exc_areas.exclusion_areas_storage[area]
+
+ area_id_item = QtWidgets.QTableWidgetItem('%d' % int(area_id))
+ area_id_item.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled)
+ self.ui.exclusion_table.setItem(area, 0, area_id_item) # Area id
+
+ object_item = QtWidgets.QTableWidgetItem('%s' % area_dict["obj_type"])
+ object_item.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled)
+ self.ui.exclusion_table.setItem(area, 1, object_item) # Origin Object
+
+ strategy_item = QtWidgets.QTableWidgetItem('%s' % area_dict["strategy"])
+ strategy_item.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled)
+ self.ui.exclusion_table.setItem(area, 2, strategy_item) # Strategy
+
+ overz_item = QtWidgets.QTableWidgetItem('%s' % area_dict["overz"])
+ overz_item.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled)
+ self.ui.exclusion_table.setItem(area, 3, overz_item) # Over Z
+
+ self.ui.exclusion_table.resizeColumnsToContents()
+ self.ui.exclusion_table.resizeRowsToContents()
+
+ area_vheader = self.ui.exclusion_table.verticalHeader()
+ area_vheader.hide()
+ self.ui.exclusion_table.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
+
+ area_hheader = self.ui.exclusion_table.horizontalHeader()
+ area_hheader.setMinimumSectionSize(10)
+ area_hheader.setDefaultSectionSize(70)
+
+ area_hheader.setSectionResizeMode(0, QtWidgets.QHeaderView.Fixed)
+ area_hheader.resizeSection(0, 20)
+ area_hheader.setSectionResizeMode(1, QtWidgets.QHeaderView.Stretch)
+ area_hheader.setSectionResizeMode(2, QtWidgets.QHeaderView.ResizeToContents)
+ area_hheader.setSectionResizeMode(3, QtWidgets.QHeaderView.ResizeToContents)
+
+ # area_hheader.setStretchLastSection(True)
+ self.ui.exclusion_table.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
+
+ self.ui.exclusion_table.setColumnWidth(0, 20)
+
+ self.ui.exclusion_table.setMinimumHeight(self.ui.exclusion_table.getHeight())
+ self.ui.exclusion_table.setMaximumHeight(self.ui.exclusion_table.getHeight())
+
+ # End Build Exclusion Areas
+ # -----------------------------
+
# HACK: for whatever reasons the name in Selected tab is reverted to the original one after a successful rename
# done in the collection view but only for Geometry objects. Perhaps some references remains. Should be fixed.
self.ui.name_entry.set_value(self.options['name'])
@@ -340,6 +397,7 @@ class GeometryObject(FlatCAMObj, Geometry):
self.form_fields.update({
"plot": self.ui.plot_cb,
+ "multicolored": self.ui.multicolored_cb,
"cutz": self.ui.cutz_entry,
"vtipdia": self.ui.tipdia_entry,
"vtipangle": self.ui.tipangle_entry,
@@ -363,7 +421,7 @@ class GeometryObject(FlatCAMObj, Geometry):
"endxy": self.ui.endxy_entry,
"cnctooldia": self.ui.addtool_entry,
"area_exclusion": self.ui.exclusion_cb,
- "area_shape":self.ui.area_shape_radio,
+ "area_shape": self.ui.area_shape_radio,
"area_strategy": self.ui.strategy_radio,
"area_overz": self.ui.over_z_entry,
})
@@ -535,6 +593,8 @@ class GeometryObject(FlatCAMObj, Geometry):
self.ui.extracut_cb.toggled.connect(lambda state: self.ui.e_cut_entry.setDisabled(not state))
self.ui.plot_cb.stateChanged.connect(self.on_plot_cb_click)
+ self.ui.multicolored_cb.stateChanged.connect(self.on_multicolored_cb_click)
+
self.ui.generate_cnc_button.clicked.connect(self.on_generatecnc_button_click)
self.ui.paint_tool_button.clicked.connect(lambda: self.app.paint_tool.run(toggle=False))
self.ui.generate_ncc_button.clicked.connect(lambda: self.app.ncclear_tool.run(toggle=False))
@@ -547,8 +607,14 @@ class GeometryObject(FlatCAMObj, Geometry):
self.ui.apply_param_to_all.clicked.connect(self.on_apply_param_to_all_clicked)
self.ui.cutz_entry.returnPressed.connect(self.on_cut_z_changed)
+ # Exclusion areas signals
+ self.ui.exclusion_table.horizontalHeader().sectionClicked.connect(self.exclusion_table_toggle_all)
+ self.ui.exclusion_table.lost_focus.connect(self.clear_selection)
+ self.ui.exclusion_table.itemClicked.connect(self.draw_sel_shape)
self.ui.add_area_button.clicked.connect(self.on_add_area_click)
self.ui.delete_area_button.clicked.connect(self.on_clear_area_click)
+ self.ui.delete_sel_area_button.clicked.connect(self.on_delete_sel_areas)
+ self.ui.strategy_radio.activated_custom.connect(self.on_strategy)
def on_cut_z_changed(self):
self.old_cutz = self.ui.cutz_entry.get_value()
@@ -595,8 +661,7 @@ class GeometryObject(FlatCAMObj, Geometry):
self.ui.tool_offset_entry.get_value().replace(',', '.')
)
except ValueError:
- self.app.inform.emit('[ERROR_NOTCL] %s' %
- _("Wrong value format entered, use a number."))
+ self.app.inform.emit('[ERROR_NOTCL] %s' % _("Wrong value format entered, use a number."))
return
def ui_connect(self):
@@ -604,6 +669,7 @@ class GeometryObject(FlatCAMObj, Geometry):
# changes in geometry UI
for i in self.param_fields:
current_widget = self.param_fields[i]
+
if isinstance(current_widget, FCCheckBox):
current_widget.stateChanged.connect(self.gui_form_to_storage)
elif isinstance(current_widget, FCComboBox):
@@ -874,7 +940,7 @@ class GeometryObject(FlatCAMObj, Geometry):
self.ui_connect()
self.build_ui()
- # if there is no tool left in the Tools Table, enable the parameters GUI
+ # if there is no tool left in the Tools Table, enable the parameters AppGUI
if self.ui.geo_tools_table.rowCount() != 0:
self.ui.geo_param_frame.setDisabled(False)
@@ -950,7 +1016,7 @@ class GeometryObject(FlatCAMObj, Geometry):
self.ui_connect()
self.build_ui()
- # if there is no tool left in the Tools Table, enable the parameters GUI
+ # if there is no tool left in the Tools Table, enable the parameters AppGUI
if self.ui.geo_tools_table.rowCount() != 0:
self.ui.geo_param_frame.setDisabled(False)
@@ -1131,7 +1197,7 @@ class GeometryObject(FlatCAMObj, Geometry):
obj_active.options['xmax'] = 0
obj_active.options['ymax'] = 0
- # if there is no tool left in the Tools Table, disable the parameters GUI
+ # if there is no tool left in the Tools Table, disable the parameters AppGUI
if self.ui.geo_tools_table.rowCount() == 0:
self.ui.geo_param_frame.setDisabled(True)
@@ -1149,8 +1215,7 @@ class GeometryObject(FlatCAMObj, Geometry):
"- 'V-tip Angle' -> angle at the tip of the tool\n"
"- 'V-tip Dia' -> diameter at the tip of the tool \n"
"- Tool Dia -> 'Dia' column found in the Tool Table\n"
- "NB: a value of zero means that Tool Dia = 'V-tip Dia'"
- )
+ "NB: a value of zero means that Tool Dia = 'V-tip Dia'")
)
self.ui.cutz_entry.setToolTip(
_("Disabled because the tool is V-shape.\n"
@@ -1159,8 +1224,7 @@ class GeometryObject(FlatCAMObj, Geometry):
"- 'V-tip Angle' -> angle at the tip of the tool\n"
"- 'V-tip Dia' -> diameter at the tip of the tool \n"
"- Tool Dia -> 'Dia' column found in the Tool Table\n"
- "NB: a value of zero means that Tool Dia = 'V-tip Dia'"
- )
+ "NB: a value of zero means that Tool Dia = 'V-tip Dia'")
)
self.update_cutz()
@@ -1172,8 +1236,7 @@ class GeometryObject(FlatCAMObj, Geometry):
self.ui.cutz_entry.setDisabled(False)
self.ui.cutzlabel.setToolTip(
_("Cutting depth (negative)\n"
- "below the copper surface."
- )
+ "below the copper surface.")
)
self.ui.cutz_entry.setToolTip('')
@@ -1328,16 +1391,18 @@ class GeometryObject(FlatCAMObj, Geometry):
self.ui_connect()
def gui_form_to_storage(self):
+ self.ui_disconnect()
+
if self.ui.geo_tools_table.rowCount() == 0:
# there is no tool in tool table so we can't save the GUI elements values to storage
log.debug("GeometryObject.gui_form_to_storage() --> no tool in Tools Table, aborting.")
return
- self.ui_disconnect()
widget_changed = self.sender()
try:
widget_idx = self.ui.grid3.indexOf(widget_changed)
- except Exception:
+ except Exception as e:
+ log.debug("GeometryObject.gui_form_to_storage() -- wdg index -> %s" % str(e))
return
# those are the indexes for the V-Tip Dia and V-Tip Angle, if edited calculate the new Cut Z
@@ -1690,15 +1755,11 @@ class GeometryObject(FlatCAMObj, Geometry):
The actual work is done by the target CNCJobObject object's
`generate_from_geometry_2()` method.
- :param tools_dict: a dictionary that holds the whole data needed to create the Gcode
- (including the solid_geometry)
-
- :param tools_in_use: the tools that are used, needed by some preprocessors
- :type list of lists, each list in the list is made out of row elements of tools table from GUI
-
:param outname:
- :param tools_dict:
- :param tools_in_use:
+ :param tools_dict: a dictionary that holds the whole data needed to create the Gcode
+ (including the solid_geometry)
+ :param tools_in_use: the tools that are used, needed by some preprocessors
+ :type tools_in_use list of lists, each list in the list is made out of row elements of tools table from AppGUI
:param segx: number of segments on the X axis, for auto-levelling
:param segy: number of segments on the Y axis, for auto-levelling
:param plot: if True the generated object will be plotted; if False will not be plotted
@@ -1728,7 +1789,7 @@ class GeometryObject(FlatCAMObj, Geometry):
self.app.inform.emit(msg)
return
- # Object initialization function for app.new_object()
+ # Object initialization function for app.app_obj.new_object()
# RUNNING ON SEPARATE THREAD!
def job_init_single_geometry(job_obj, app_obj):
log.debug("Creating a CNCJob out of a single-geometry")
@@ -1742,7 +1803,7 @@ class GeometryObject(FlatCAMObj, Geometry):
# count the tools
tool_cnt = 0
- dia_cnc_dict = {}
+ # dia_cnc_dict = {}
# this turn on the FlatCAMCNCJob plot for multiple tools
job_obj.multitool = True
@@ -1868,7 +1929,7 @@ class GeometryObject(FlatCAMObj, Geometry):
})
dia_cnc_dict.clear()
- # Object initialization function for app.new_object()
+ # Object initialization function for app.app_obj.new_object()
# RUNNING ON SEPARATE THREAD!
def job_init_multi_geometry(job_obj, app_obj):
log.debug("Creating a CNCJob out of a multi-geometry")
@@ -1882,7 +1943,7 @@ class GeometryObject(FlatCAMObj, Geometry):
# count the tools
tool_cnt = 0
- dia_cnc_dict = {}
+ # dia_cnc_dict = {}
# this turn on the FlatCAMCNCJob plot for multiple tools
job_obj.multitool = True
@@ -2022,15 +2083,15 @@ class GeometryObject(FlatCAMObj, Geometry):
if use_thread:
# To be run in separate thread
- def job_thread(app_obj):
+ def job_thread(a_obj):
if self.multigeo is False:
with self.app.proc_container.new(_("Generating CNC Code")):
- if app_obj.new_object("cncjob", outname, job_init_single_geometry, plot=plot) != 'fail':
- app_obj.inform.emit('[success] %s: %s' % (_("CNCjob created"), outname))
+ if a_obj.app_obj.new_object("cncjob", outname, job_init_single_geometry, plot=plot) != 'fail':
+ a_obj.inform.emit('[success] %s: %s' % (_("CNCjob created"), outname))
else:
with self.app.proc_container.new(_("Generating CNC Code")):
- if app_obj.new_object("cncjob", outname, job_init_multi_geometry) != 'fail':
- app_obj.inform.emit('[success] %s: %s' % (_("CNCjob created"), outname))
+ if a_obj.app_obj.new_object("cncjob", outname, job_init_multi_geometry) != 'fail':
+ a_obj.inform.emit('[success] %s: %s' % (_("CNCjob created"), outname))
# Create a promise with the name
self.app.collection.promise(outname)
@@ -2038,25 +2099,17 @@ class GeometryObject(FlatCAMObj, Geometry):
self.app.worker_task.emit({'fcn': job_thread, 'params': [self.app]})
else:
if self.solid_geometry:
- self.app.new_object("cncjob", outname, job_init_single_geometry, plot=plot)
+ self.app.app_obj.new_object("cncjob", outname, job_init_single_geometry, plot=plot)
else:
- self.app.new_object("cncjob", outname, job_init_multi_geometry, plot=plot)
+ self.app.app_obj.new_object("cncjob", outname, job_init_multi_geometry, plot=plot)
- def generatecncjob(
- self, outname=None,
- dia=None, offset=None,
- z_cut=None, z_move=None,
- feedrate=None, feedrate_z=None, feedrate_rapid=None,
- spindlespeed=None, dwell=None, dwelltime=None,
- multidepth=None, depthperpass=None,
- toolchange=None, toolchangez=None, toolchangexy=None,
- extracut=None, extracut_length=None, startz=None, endz=None,
- pp=None,
- segx=None, segy=None,
- use_thread=True,
- plot=True):
+ def generatecncjob(self, outname=None, dia=None, offset=None, z_cut=None, z_move=None,
+ feedrate=None, feedrate_z=None, feedrate_rapid=None, spindlespeed=None, dwell=None, dwelltime=None,
+ multidepth=None, dpp=None, toolchange=None, toolchangez=None, toolchangexy=None,
+ extracut=None, extracut_length=None, startz=None, endz=None, endxy=None, pp=None, segx=None, segy=None,
+ use_thread=True, plot=True):
"""
- Only used for TCL Command.
+ Only used by the TCL Command Cncjob.
Creates a CNCJob out of this Geometry object. The actual
work is done by the target camlib.CNCjob
`generate_from_geometry_2()` method.
@@ -2073,14 +2126,17 @@ class GeometryObject(FlatCAMObj, Geometry):
:param dwell:
:param dwelltime:
:param multidepth:
- :param depthperpass:
+ :param dpp: Depth for each pass when multidepth parameter is True
:param toolchange:
:param toolchangez:
- :param toolchangexy:
+ :param toolchangexy: A sequence ox X,Y coordinates: a 2-length tuple or a string.
+ Coordinates in X,Y plane for the Toolchange event
:param extracut:
:param extracut_length:
:param startz:
:param endz:
+ :param endxy: A sequence ox X,Y coordinates: a 2-length tuple or a string.
+ Coordinates in X, Y plane for the last move after ending the job.
:param pp: Name of the preprocessor
:param segx:
:param segy:
@@ -2100,7 +2156,7 @@ class GeometryObject(FlatCAMObj, Geometry):
feedrate_rapid = feedrate_rapid if feedrate_rapid is not None else float(self.options["feedrate_rapid"])
multidepth = multidepth if multidepth is not None else self.options["multidepth"]
- depthperpass = depthperpass if depthperpass is not None else float(self.options["depthperpass"])
+ depthperpass = dpp if dpp is not None else float(self.options["depthperpass"])
segx = segx if segx is not None else float(self.app.defaults['geometry_segx'])
segy = segy if segy is not None else float(self.app.defaults['geometry_segy'])
@@ -2110,10 +2166,21 @@ class GeometryObject(FlatCAMObj, Geometry):
startz = startz if startz is not None else self.options["startz"]
endz = endz if endz is not None else float(self.options["endz"])
- endxy = self.options["endxy"]
+
+ endxy = endxy if endxy else self.options["endxy"]
+ if isinstance(endxy, str):
+ endxy = re.sub('[()\[\]]', '', endxy)
+ if endxy and endxy != '':
+ endxy = [float(eval(a)) for a in endxy.split(",")]
toolchangez = toolchangez if toolchangez else float(self.options["toolchangez"])
+
toolchangexy = toolchangexy if toolchangexy else self.options["toolchangexy"]
+ if isinstance(toolchangexy, str):
+ toolchangexy = re.sub('[()\[\]]', '', toolchangexy)
+ if toolchangexy and toolchangexy != '':
+ toolchangexy = [float(eval(a)) for a in toolchangexy.split(",")]
+
toolchange = toolchange if toolchange else self.options["toolchange"]
offset = offset if offset else 0.0
@@ -2125,7 +2192,7 @@ class GeometryObject(FlatCAMObj, Geometry):
ppname_g = pp if pp else self.options["ppname_g"]
- # Object initialization function for app.new_object()
+ # Object initialization function for app.app_obj.new_object()
# RUNNING ON SEPARATE THREAD!
def job_init(job_obj, app_obj):
assert job_obj.kind == 'cncjob', "Initializer expected a CNCJobObject, got %s" % type(job_obj)
@@ -2174,7 +2241,7 @@ class GeometryObject(FlatCAMObj, Geometry):
# To be run in separate thread
def job_thread(app_obj):
with self.app.proc_container.new(_("Generating CNC Code")):
- app_obj.new_object("cncjob", outname, job_init, plot=plot)
+ app_obj.app_obj.new_object("cncjob", outname, job_init, plot=plot)
app_obj.inform.emit('[success] %s: %s' % (_("CNCjob created")), outname)
# Create a promise with the name
@@ -2182,7 +2249,7 @@ class GeometryObject(FlatCAMObj, Geometry):
# Send to worker
self.app.worker_task.emit({'fcn': job_thread, 'params': [self.app]})
else:
- self.app.new_object("cncjob", outname, job_init, plot=plot)
+ self.app.app_obj.new_object("cncjob", outname, job_init, plot=plot)
# def on_plot_cb_click(self, *args):
# if self.muted_ui:
@@ -2469,6 +2536,110 @@ class GeometryObject(FlatCAMObj, Geometry):
return factor
+ def on_add_area_click(self):
+ shape_button = self.ui.area_shape_radio
+ overz_button = self.ui.over_z_entry
+ strategy_radio = self.ui.strategy_radio
+ cnc_button = self.ui.generate_cnc_button
+ solid_geo = self.solid_geometry
+ obj_type = self.kind
+
+ self.app.exc_areas.on_add_area_click(
+ shape_button=shape_button, overz_button=overz_button, cnc_button=cnc_button, strategy_radio=strategy_radio,
+ solid_geo=solid_geo, obj_type=obj_type)
+
+ def on_clear_area_click(self):
+ if not self.app.exc_areas.exclusion_areas_storage:
+ self.app.inform.emit("[WARNING_NOTCL] %s" % _("Delete failed. There are no exclusion areas to delete."))
+ return
+
+ self.app.exc_areas.on_clear_area_click()
+ self.app.exc_areas.e_shape_modified.emit()
+
+ def on_delete_sel_areas(self):
+ sel_model = self.ui.exclusion_table.selectionModel()
+ sel_indexes = sel_model.selectedIndexes()
+
+ # it will iterate over all indexes which means all items in all columns too but I'm interested only on rows
+ # so the duplicate rows will not be added
+ sel_rows = set()
+ for idx in sel_indexes:
+ sel_rows.add(idx.row())
+
+ if not sel_rows:
+ self.app.inform.emit("[WARNING_NOTCL] %s" % _("Delete failed. Nothing is selected."))
+ return
+
+ self.app.exc_areas.delete_sel_shapes(idxs=list(sel_rows))
+ self.app.exc_areas.e_shape_modified.emit()
+
+ def draw_sel_shape(self):
+ sel_model = self.ui.exclusion_table.selectionModel()
+ sel_indexes = sel_model.selectedIndexes()
+
+ # it will iterate over all indexes which means all items in all columns too but I'm interested only on rows
+ sel_rows = set()
+ for idx in sel_indexes:
+ sel_rows.add(idx.row())
+
+ self.delete_sel_shape()
+
+ if self.app.is_legacy is False:
+ face = self.app.defaults['global_sel_fill'][:-2] + str(hex(int(0.2 * 255)))[2:]
+ outline = self.app.defaults['global_sel_line'][:-2] + str(hex(int(0.8 * 255)))[2:]
+ else:
+ face = self.app.defaults['global_sel_fill'][:-2] + str(hex(int(0.4 * 255)))[2:]
+ outline = self.app.defaults['global_sel_line'][:-2] + str(hex(int(1.0 * 255)))[2:]
+
+ for row in sel_rows:
+ sel_rect = self.app.exc_areas.exclusion_areas_storage[row]['shape']
+ self.app.move_tool.sel_shapes.add(sel_rect, color=outline, face_color=face, update=True, layer=0,
+ tolerance=None)
+ if self.app.is_legacy is True:
+ self.app.move_tool.sel_shapes.redraw()
+
+ def clear_selection(self):
+ self.app.delete_selection_shape()
+ # self.ui.exclusion_table.clearSelection()
+
+ def delete_sel_shape(self):
+ self.app.delete_selection_shape()
+
+ def update_exclusion_table(self):
+ self.exclusion_area_cb_is_checked = True if self.ui.exclusion_cb.isChecked() else False
+
+ self.build_ui()
+ self.ui.exclusion_cb.set_value(self.exclusion_area_cb_is_checked)
+
+ def on_strategy(self, val):
+ if val == 'around':
+ self.ui.over_z_label.setDisabled(True)
+ self.ui.over_z_entry.setDisabled(True)
+ else:
+ self.ui.over_z_label.setDisabled(False)
+ self.ui.over_z_entry.setDisabled(False)
+
+ def exclusion_table_toggle_all(self):
+ """
+ will toggle the selection of all rows in Exclusion Areas table
+
+ :return:
+ """
+ sel_model = self.ui.exclusion_table.selectionModel()
+ sel_indexes = sel_model.selectedIndexes()
+
+ # it will iterate over all indexes which means all items in all columns too but I'm interested only on rows
+ sel_rows = set()
+ for idx in sel_indexes:
+ sel_rows.add(idx.row())
+
+ if sel_rows:
+ self.ui.exclusion_table.clearSelection()
+ self.delete_sel_shape()
+ else:
+ self.ui.exclusion_table.selectAll()
+ self.draw_sel_shape()
+
def plot_element(self, element, color=None, visible=None):
if color is None:
@@ -2498,6 +2669,27 @@ class GeometryObject(FlatCAMObj, Geometry):
if not FlatCAMObj.plot(self):
return
+ if self.app.is_legacy is False:
+ def random_color():
+ r_color = np.random.rand(4)
+ r_color[3] = 1
+ return r_color
+ else:
+ def random_color():
+ while True:
+ r_color = np.random.rand(4)
+ r_color[3] = 1
+
+ new_color = '#'
+ for idx in range(len(r_color)):
+ new_color += '%x' % int(r_color[idx] * 255)
+ # do it until a valid color is generated
+ # a valid color has the # symbol, another 6 chars for the color and the last 2 chars for alpha
+ # for a total of 9 chars
+ if len(new_color) == 9:
+ break
+ return new_color
+
try:
# plot solid geometries found as members of self.tools attribute dict
# for MultiGeo
@@ -2505,7 +2697,8 @@ class GeometryObject(FlatCAMObj, Geometry):
for tooluid_key in self.tools:
solid_geometry = self.tools[tooluid_key]['solid_geometry']
self.plot_element(solid_geometry, visible=visible,
- color=self.app.defaults["geometry_plot_line"])
+ color=random_color() if self.options['multicolored']
+ else self.app.defaults["geometry_plot_line"])
else:
# plot solid geometry that may be an direct attribute of the geometry object
# for SingleGeo
@@ -2573,218 +2766,11 @@ class GeometryObject(FlatCAMObj, Geometry):
self.ui.plot_cb.setChecked(True)
self.ui_connect()
- def on_add_area_click(self):
- self.app.inform.emit('[WARNING_NOTCL] %s' % _("Click the start point of the area."))
- self.app.call_source = 'geometry'
-
- if self.app.is_legacy is False:
- self.app.plotcanvas.graph_event_disconnect('mouse_press', self.app.on_mouse_click_over_plot)
- self.app.plotcanvas.graph_event_disconnect('mouse_move', self.app.on_mouse_move_over_plot)
- self.app.plotcanvas.graph_event_disconnect('mouse_release', self.app.on_mouse_click_release_over_plot)
- else:
- self.app.plotcanvas.graph_event_disconnect(self.app.mp)
- self.app.plotcanvas.graph_event_disconnect(self.app.mm)
- self.app.plotcanvas.graph_event_disconnect(self.app.mr)
-
- self.mr = self.app.plotcanvas.graph_event_connect('mouse_release', self.on_mouse_release)
- self.mm = self.app.plotcanvas.graph_event_connect('mouse_move', self.on_mouse_move)
- # self.kp = self.app.plotcanvas.graph_event_connect('key_press', self.on_key_press)
-
- # To be called after clicking on the plot.
- def on_mouse_release(self, event):
- if self.app.is_legacy is False:
- event_pos = event.pos
- # event_is_dragging = event.is_dragging
- right_button = 2
- else:
- event_pos = (event.xdata, event.ydata)
- # event_is_dragging = self.app.plotcanvas.is_dragging
- right_button = 3
-
- event_pos = self.app.plotcanvas.translate_coords(event_pos)
- if self.app.grid_status():
- curr_pos = self.app.geo_editor.snap(event_pos[0], event_pos[1])
- else:
- curr_pos = (event_pos[0], event_pos[1])
-
- x1, y1 = curr_pos[0], curr_pos[1]
-
- shape_type = self.ui.area_shape_radio.get_value()
-
- # do clear area only for left mouse clicks
- if event.button == 1:
- if shape_type == "square":
- if self.first_click is False:
- self.first_click = True
- self.app.inform.emit('[WARNING_NOTCL] %s' % _("Click the end point of the area."))
-
- self.cursor_pos = self.app.plotcanvas.translate_coords(event_pos)
- if self.app.grid_status():
- self.cursor_pos = self.app.geo_editor.snap(event_pos[0], event_pos[1])
- else:
- self.app.inform.emit(_("Zone added. Click to start adding next zone or right click to finish."))
- self.app.delete_selection_shape()
-
- x0, y0 = self.cursor_pos[0], self.cursor_pos[1]
-
- pt1 = (x0, y0)
- pt2 = (x1, y0)
- pt3 = (x1, y1)
- pt4 = (x0, y1)
-
- new_rectangle = Polygon([pt1, pt2, pt3, pt4])
- self.exclusion_areas_list.append(new_rectangle)
-
- # add a temporary shape on canvas
- FlatCAMTool.FlatCAMTool.draw_tool_selection_shape(self, old_coords=(x0, y0), coords=(x1, y1))
-
- self.first_click = False
- return
- else:
- self.points.append((x1, y1))
-
- if len(self.points) > 1:
- self.poly_drawn = True
- self.app.inform.emit(_("Click on next Point or click right mouse button to complete ..."))
-
- return ""
- elif event.button == right_button and self.mouse_is_dragging is False:
-
- shape_type = self.ui.area_shape_radio.get_value()
-
- if shape_type == "square":
- self.first_click = False
- else:
- # if we finish to add a polygon
- if self.poly_drawn is True:
- try:
- # try to add the point where we last clicked if it is not already in the self.points
- last_pt = (x1, y1)
- if last_pt != self.points[-1]:
- self.points.append(last_pt)
- except IndexError:
- pass
-
- # we need to add a Polygon and a Polygon can be made only from at least 3 points
- if len(self.points) > 2:
- FlatCAMTool.FlatCAMTool.delete_moving_selection_shape(self)
- pol = Polygon(self.points)
- # do not add invalid polygons even if they are drawn by utility geometry
- if pol.is_valid:
- self.exclusion_areas_list.append(pol)
- FlatCAMTool.FlatCAMTool.draw_selection_shape_polygon(self, points=self.points)
- self.app.inform.emit(
- _("Zone added. Click to start adding next zone or right click to finish."))
-
- self.points = []
- self.poly_drawn = False
- return
-
- FlatCAMTool.FlatCAMTool.delete_tool_selection_shape(self)
-
- if self.app.is_legacy is False:
- self.app.plotcanvas.graph_event_disconnect('mouse_release', self.on_mouse_release)
- self.app.plotcanvas.graph_event_disconnect('mouse_move', self.on_mouse_move)
- # self.app.plotcanvas.graph_event_disconnect('key_press', self.on_key_press)
- else:
- self.app.plotcanvas.graph_event_disconnect(self.mr)
- self.app.plotcanvas.graph_event_disconnect(self.mm)
- # self.app.plotcanvas.graph_event_disconnect(self.kp)
-
- self.app.mp = self.app.plotcanvas.graph_event_connect('mouse_press',
- self.app.on_mouse_click_over_plot)
- self.app.mm = self.app.plotcanvas.graph_event_connect('mouse_move',
- self.app.on_mouse_move_over_plot)
- self.app.mr = self.app.plotcanvas.graph_event_connect('mouse_release',
- self.app.on_mouse_click_release_over_plot)
-
- self.app.call_source = 'app'
-
- if len(self.exclusion_areas_list) == 0:
- return
-
- def area_disconnect(self):
- if self.app.is_legacy is False:
- self.app.plotcanvas.graph_event_disconnect('mouse_release', self.on_mouse_release)
- self.app.plotcanvas.graph_event_disconnect('mouse_move', self.on_mouse_move)
- else:
- self.app.plotcanvas.graph_event_disconnect(self.mr)
- self.app.plotcanvas.graph_event_disconnect(self.mm)
- self.app.plotcanvas.graph_event_disconnect(self.kp)
-
- self.app.mp = self.app.plotcanvas.graph_event_connect('mouse_press',
- self.app.on_mouse_click_over_plot)
- self.app.mm = self.app.plotcanvas.graph_event_connect('mouse_move',
- self.app.on_mouse_move_over_plot)
- self.app.mr = self.app.plotcanvas.graph_event_connect('mouse_release',
- self.app.on_mouse_click_release_over_plot)
- self.points = []
- self.poly_drawn = False
- self.exclusion_areas_list = []
-
- FlatCAMTool.FlatCAMTool.delete_moving_selection_shape(self)
- FlatCAMTool.FlatCAMTool.delete_tool_selection_shape(self)
-
- self.app.call_source = "app"
- self.app.inform.emit("[WARNING_NOTCL] %s" % _("Cancelled. Area exclusion drawing was interrupted."))
-
- # called on mouse move
- def on_mouse_move(self, event):
- shape_type = self.ui.area_shape_radio.get_value()
-
- if self.app.is_legacy is False:
- event_pos = event.pos
- event_is_dragging = event.is_dragging
- # right_button = 2
- else:
- event_pos = (event.xdata, event.ydata)
- event_is_dragging = self.app.plotcanvas.is_dragging
- # right_button = 3
-
- curr_pos = self.app.plotcanvas.translate_coords(event_pos)
-
- # detect mouse dragging motion
- if event_is_dragging is True:
- self.mouse_is_dragging = True
- else:
- self.mouse_is_dragging = False
-
- # update the cursor position
- if self.app.grid_status():
- # Update cursor
- curr_pos = self.app.geo_editor.snap(curr_pos[0], curr_pos[1])
-
- self.app.app_cursor.set_data(np.asarray([(curr_pos[0], curr_pos[1])]),
- symbol='++', edge_color=self.app.cursor_color_3D,
- edge_width=self.app.defaults["global_cursor_width"],
- size=self.app.defaults["global_cursor_size"])
-
- # update the positions on status bar
- self.app.ui.position_label.setText(" X: %.4f "
- "Y: %.4f" % (curr_pos[0], curr_pos[1]))
- if self.cursor_pos is None:
- self.cursor_pos = (0, 0)
-
- self.app.dx = curr_pos[0] - float(self.cursor_pos[0])
- self.app.dy = curr_pos[1] - float(self.cursor_pos[1])
- self.app.ui.rel_position_label.setText("Dx: %.4f Dy: "
- "%.4f " % (self.app.dx, self.app.dy))
-
- # draw the utility geometry
- if shape_type == "square":
- if self.first_click:
- self.app.delete_selection_shape()
- self.app.draw_moving_selection_shape(old_coords=(self.cursor_pos[0], self.cursor_pos[1]),
- coords=(curr_pos[0], curr_pos[1]))
- else:
- FlatCAMTool.FlatCAMTool.delete_moving_selection_shape(self)
- FlatCAMTool.FlatCAMTool.draw_moving_selection_shape_poly(
- self, points=self.points, data=(curr_pos[0], curr_pos[1]))
-
- def on_clear_area_click(self):
- self.exclusion_areas_list = []
- FlatCAMTool.FlatCAMTool.delete_moving_selection_shape(self)
- self.app.delete_selection_shape()
+ def on_multicolored_cb_click(self, *args):
+ if self.muted_ui:
+ return
+ self.read_form_item('multicolored')
+ self.plot()
@staticmethod
def merge(geo_list, geo_final, multigeo=None):
diff --git a/flatcamObjects/FlatCAMGerber.py b/AppObjects/FlatCAMGerber.py
similarity index 63%
rename from flatcamObjects/FlatCAMGerber.py
rename to AppObjects/FlatCAMGerber.py
index e3c80f71..592f5b47 100644
--- a/flatcamObjects/FlatCAMGerber.py
+++ b/AppObjects/FlatCAMGerber.py
@@ -14,15 +14,15 @@
from shapely.geometry import Point, Polygon, MultiPolygon, MultiLineString, LineString, LinearRing
from shapely.ops import cascaded_union
-from flatcamParsers.ParseGerber import Gerber
-from flatcamObjects.FlatCAMObj import *
+from AppParsers.ParseGerber import Gerber
+from AppObjects.FlatCAMObj import *
import math
import numpy as np
from copy import deepcopy
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -115,23 +115,12 @@ class GerberObject(FlatCAMObj, Gerber):
"plot": True,
"multicolored": False,
"solid": False,
- "tool_type": 'circular',
- "vtipdia": 0.1,
- "vtipangle": 30,
- "vcutz": -0.05,
- "isotooldia": 0.016,
- "isopasses": 1,
- "isooverlap": 15,
- "milling_type": "cl",
- "combine_passes": True,
"noncoppermargin": 0.0,
"noncopperrounded": False,
"bboxmargin": 0.0,
"bboxrounded": False,
"aperture_display": False,
"follow": False,
- "iso_scope": 'all',
- "iso_type": 'full'
})
# type of isolation: 0 = exteriors, 1 = interiors, 2 = complete isolation (both interiors and exteriors)
@@ -197,88 +186,44 @@ class GerberObject(FlatCAMObj, Gerber):
"plot": self.ui.plot_cb,
"multicolored": self.ui.multicolored_cb,
"solid": self.ui.solid_cb,
- "tool_type": self.ui.tool_type_radio,
- "vtipdia": self.ui.tipdia_spinner,
- "vtipangle": self.ui.tipangle_spinner,
- "vcutz": self.ui.cutz_spinner,
- "isotooldia": self.ui.iso_tool_dia_entry,
- "isopasses": self.ui.iso_width_entry,
- "isooverlap": self.ui.iso_overlap_entry,
- "milling_type": self.ui.milling_type_radio,
- "combine_passes": self.ui.combine_passes_cb,
"noncoppermargin": self.ui.noncopper_margin_entry,
"noncopperrounded": self.ui.noncopper_rounded_cb,
"bboxmargin": self.ui.bbmargin_entry,
"bboxrounded": self.ui.bbrounded_cb,
"aperture_display": self.ui.aperture_table_visibility_cb,
- "follow": self.ui.follow_cb,
- "iso_scope": self.ui.iso_scope_radio,
- "iso_type": self.ui.iso_type_radio
+ "follow": self.ui.follow_cb
})
# Fill form fields only on object create
self.to_form()
assert isinstance(self.ui, GerberObjectUI)
+
self.ui.plot_cb.stateChanged.connect(self.on_plot_cb_click)
self.ui.solid_cb.stateChanged.connect(self.on_solid_cb_click)
self.ui.multicolored_cb.stateChanged.connect(self.on_multicolored_cb_click)
- self.ui.generate_iso_button.clicked.connect(self.on_iso_button_click)
+
+ # Tools
+ self.ui.iso_button.clicked.connect(self.app.isolation_tool.run)
self.ui.generate_ncc_button.clicked.connect(self.app.ncclear_tool.run)
self.ui.generate_cutout_button.clicked.connect(self.app.cutout_tool.run)
+
self.ui.generate_bb_button.clicked.connect(self.on_generatebb_button_click)
self.ui.generate_noncopper_button.clicked.connect(self.on_generatenoncopper_button_click)
self.ui.aperture_table_visibility_cb.stateChanged.connect(self.on_aperture_table_visibility_change)
self.ui.follow_cb.stateChanged.connect(self.on_follow_cb_click)
- # set the model for the Area Exception comboboxes
- self.ui.obj_combo.setModel(self.app.collection)
- self.ui.obj_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
- self.ui.obj_combo.is_last = True
- self.ui.obj_combo.obj_type = {
- _("Gerber"): "Gerber", _("Geometry"): "Geometry"
- }[self.ui.type_obj_combo.get_value()]
- self.on_type_obj_index_changed()
-
- self.ui.type_obj_combo.currentIndexChanged.connect(self.on_type_obj_index_changed)
-
- self.ui.tool_type_radio.activated_custom.connect(self.on_tool_type_change)
- # establish visibility for the GUI elements found in the slot function
- self.ui.tool_type_radio.activated_custom.emit(self.options['tool_type'])
-
# Show/Hide Advanced Options
if self.app.defaults["global_app_level"] == 'b':
self.ui.level.setText('%s' % _('Basic'))
- self.options['tool_type'] = 'circular'
-
- self.ui.tool_type_label.hide()
- self.ui.tool_type_radio.hide()
-
- # override the Preferences Value; in Basic mode the Tool Type is always Circular ('C1')
- self.ui.tool_type_radio.set_value('circular')
-
- self.ui.tipdialabel.hide()
- self.ui.tipdia_spinner.hide()
- self.ui.tipanglelabel.hide()
- self.ui.tipangle_spinner.hide()
- self.ui.cutzlabel.hide()
- self.ui.cutz_spinner.hide()
self.ui.apertures_table_label.hide()
self.ui.aperture_table_visibility_cb.hide()
- self.ui.milling_type_label.hide()
- self.ui.milling_type_radio.hide()
- self.ui.iso_type_label.hide()
- self.ui.iso_type_radio.hide()
self.ui.follow_cb.hide()
- self.ui.except_cb.setChecked(False)
- self.ui.except_cb.hide()
+
else:
self.ui.level.setText('%s' % _('Advanced'))
- self.ui.tipdia_spinner.valueChanged.connect(self.on_calculate_tooldia)
- self.ui.tipangle_spinner.valueChanged.connect(self.on_calculate_tooldia)
- self.ui.cutz_spinner.valueChanged.connect(self.on_calculate_tooldia)
if self.app.defaults["gerber_buffering"] == 'no':
self.ui.create_buffer_button.show()
@@ -296,58 +241,6 @@ class GerberObject(FlatCAMObj, Gerber):
self.build_ui()
self.units_found = self.app.defaults['units']
- def on_calculate_tooldia(self):
- try:
- tdia = float(self.ui.tipdia_spinner.get_value())
- except Exception:
- return
- try:
- dang = float(self.ui.tipangle_spinner.get_value())
- except Exception:
- return
- try:
- cutz = float(self.ui.cutz_spinner.get_value())
- except Exception:
- return
-
- cutz *= -1
- if cutz < 0:
- cutz *= -1
-
- half_tip_angle = dang / 2
-
- tool_diameter = tdia + (2 * cutz * math.tan(math.radians(half_tip_angle)))
- self.ui.iso_tool_dia_entry.set_value(tool_diameter)
-
- def on_type_obj_index_changed(self):
- val = self.ui.type_obj_combo.get_value()
- obj_type = {"Gerber": 0, "Geometry": 2}[val]
- self.ui.obj_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex()))
- self.ui.obj_combo.setCurrentIndex(0)
- self.ui.obj_combo.obj_type = {_("Gerber"): "Gerber", _("Geometry"): "Geometry"}[val]
-
- def on_tool_type_change(self, state):
- if state == 'circular':
- self.ui.tipdialabel.hide()
- self.ui.tipdia_spinner.hide()
- self.ui.tipanglelabel.hide()
- self.ui.tipangle_spinner.hide()
- self.ui.cutzlabel.hide()
- self.ui.cutz_spinner.hide()
- self.ui.iso_tool_dia_entry.setDisabled(False)
- # update the value in the self.iso_tool_dia_entry once this is selected
- self.ui.iso_tool_dia_entry.set_value(self.options['isotooldia'])
- else:
- self.ui.tipdialabel.show()
- self.ui.tipdia_spinner.show()
- self.ui.tipanglelabel.show()
- self.ui.tipangle_spinner.show()
- self.ui.cutzlabel.show()
- self.ui.cutz_spinner.show()
- self.ui.iso_tool_dia_entry.setDisabled(True)
- # update the value in the self.iso_tool_dia_entry once this is selected
- self.on_calculate_tooldia()
-
def build_ui(self):
FlatCAMObj.build_ui(self)
@@ -530,7 +423,7 @@ class GerberObject(FlatCAMObj, Gerber):
return "fail"
geo_obj.solid_geometry = non_copper
- self.app.new_object("geometry", name, geo_init)
+ self.app.app_obj.new_object("geometry", name, geo_init)
def on_generatebb_button_click(self, *args):
self.app.defaults.report_usage("gerber_on_generatebb_button")
@@ -556,523 +449,7 @@ class GerberObject(FlatCAMObj, Gerber):
return "fail"
geo_obj.solid_geometry = bounding_box
- self.app.new_object("geometry", name, geo_init)
-
- def on_iso_button_click(self, *args):
-
- obj = self.app.collection.get_active()
-
- self.iso_type = 2
- if self.ui.iso_type_radio.get_value() == 'ext':
- self.iso_type = 0
- if self.ui.iso_type_radio.get_value() == 'int':
- self.iso_type = 1
-
- def worker_task(iso_obj, app_obj):
- with self.app.proc_container.new(_("Isolating...")):
- if self.ui.follow_cb.get_value() is True:
- iso_obj.follow_geo()
- # in the end toggle the visibility of the origin object so we can see the generated Geometry
- iso_obj.ui.plot_cb.toggle()
- else:
- app_obj.defaults.report_usage("gerber_on_iso_button")
- self.read_form()
-
- iso_scope = 'all' if self.ui.iso_scope_radio.get_value() == 'all' else 'single'
- self.isolate_handler(iso_type=self.iso_type, iso_scope=iso_scope)
-
- self.app.worker_task.emit({'fcn': worker_task, 'params': [obj, self.app]})
-
- def follow_geo(self, outname=None):
- """
- Creates a geometry object "following" the gerber paths.
-
- :return: None
- """
-
- # default_name = self.options["name"] + "_follow"
- # follow_name = outname or default_name
-
- if outname is None:
- follow_name = self.options["name"] + "_follow"
- else:
- follow_name = outname
-
- def follow_init(follow_obj, app):
- # Propagate options
- follow_obj.options["cnctooldia"] = str(self.options["isotooldia"])
- follow_obj.solid_geometry = self.follow_geometry
-
- # TODO: Do something if this is None. Offer changing name?
- try:
- self.app.new_object("geometry", follow_name, follow_init)
- except Exception as e:
- return "Operation failed: %s" % str(e)
-
- def isolate_handler(self, iso_type, iso_scope):
-
- if iso_scope == 'all':
- self.isolate(iso_type=iso_type)
- else:
- # disengage the grid snapping since it may be hard to click on polygons with grid snapping on
- if self.app.ui.grid_snap_btn.isChecked():
- self.grid_status_memory = True
- self.app.ui.grid_snap_btn.trigger()
- else:
- self.grid_status_memory = False
-
- self.mr = self.app.plotcanvas.graph_event_connect('mouse_release', self.on_mouse_click_release)
-
- if self.app.is_legacy is False:
- self.app.plotcanvas.graph_event_disconnect('mouse_release', self.app.on_mouse_click_release_over_plot)
- else:
- self.app.plotcanvas.graph_event_disconnect(self.app.mr)
-
- self.app.inform.emit('[WARNING_NOTCL] %s' % _("Click on a polygon to isolate it."))
-
- def on_mouse_click_release(self, event):
- if self.app.is_legacy is False:
- event_pos = event.pos
- right_button = 2
- self.app.event_is_dragging = self.app.event_is_dragging
- else:
- event_pos = (event.xdata, event.ydata)
- right_button = 3
- self.app.event_is_dragging = self.app.ui.popMenu.mouse_is_panning
-
- try:
- x = float(event_pos[0])
- y = float(event_pos[1])
- except TypeError:
- return
-
- event_pos = (x, y)
- curr_pos = self.app.plotcanvas.translate_coords(event_pos)
- if self.app.grid_status():
- curr_pos = self.app.geo_editor.snap(curr_pos[0], curr_pos[1])
- else:
- curr_pos = (curr_pos[0], curr_pos[1])
-
- if event.button == 1:
- clicked_poly = self.find_polygon(point=(curr_pos[0], curr_pos[1]))
-
- if self.app.selection_type is not None:
- self.selection_area_handler(self.app.pos, curr_pos, self.app.selection_type)
- self.app.selection_type = None
- elif clicked_poly:
- if clicked_poly not in self.poly_dict.values():
- shape_id = self.app.tool_shapes.add(tolerance=self.drawing_tolerance, layer=0, shape=clicked_poly,
- color=self.app.defaults['global_sel_draw_color'] + 'AF',
- face_color=self.app.defaults['global_sel_draw_color'] + 'AF',
- visible=True)
- self.poly_dict[shape_id] = clicked_poly
- self.app.inform.emit(
- '%s: %d. %s' % (_("Added polygon"), int(len(self.poly_dict)),
- _("Click to add next polygon or right click to start isolation."))
- )
- else:
- try:
- for k, v in list(self.poly_dict.items()):
- if v == clicked_poly:
- self.app.tool_shapes.remove(k)
- self.poly_dict.pop(k)
- break
- except TypeError:
- return
- self.app.inform.emit(
- '%s. %s' % (_("Removed polygon"),
- _("Click to add/remove next polygon or right click to start isolation."))
- )
-
- self.app.tool_shapes.redraw()
- else:
- self.app.inform.emit(_("No polygon detected under click position."))
- elif event.button == right_button and self.app.event_is_dragging is False:
- # restore the Grid snapping if it was active before
- if self.grid_status_memory is True:
- self.app.ui.grid_snap_btn.trigger()
-
- if self.app.is_legacy is False:
- self.app.plotcanvas.graph_event_disconnect('mouse_release', self.on_mouse_click_release)
- else:
- self.app.plotcanvas.graph_event_disconnect(self.mr)
-
- self.app.mr = self.app.plotcanvas.graph_event_connect('mouse_release',
- self.app.on_mouse_click_release_over_plot)
-
- self.app.tool_shapes.clear(update=True)
-
- if self.poly_dict:
- poly_list = deepcopy(list(self.poly_dict.values()))
- self.isolate(iso_type=self.iso_type, geometry=poly_list)
- self.poly_dict.clear()
- else:
- self.app.inform.emit('[ERROR_NOTCL] %s' % _("List of single polygons is empty. Aborting."))
-
- def selection_area_handler(self, start_pos, end_pos, sel_type):
- """
- :param start_pos: mouse position when the selection LMB click was done
- :param end_pos: mouse position when the left mouse button is released
- :param sel_type: if True it's a left to right selection (enclosure), if False it's a 'touch' selection
- :return:
- """
- poly_selection = Polygon([start_pos, (end_pos[0], start_pos[1]), end_pos, (start_pos[0], end_pos[1])])
-
- # delete previous selection shape
- self.app.delete_selection_shape()
-
- added_poly_count = 0
- try:
- for geo in self.solid_geometry:
- if geo not in self.poly_dict.values():
- if sel_type is True:
- if geo.within(poly_selection):
- shape_id = self.app.tool_shapes.add(tolerance=self.drawing_tolerance, layer=0,
- shape=geo,
- color=self.app.defaults['global_sel_draw_color'] + 'AF',
- face_color=self.app.defaults[
- 'global_sel_draw_color'] + 'AF',
- visible=True)
- self.poly_dict[shape_id] = geo
- added_poly_count += 1
- else:
- if poly_selection.intersects(geo):
- shape_id = self.app.tool_shapes.add(tolerance=self.drawing_tolerance, layer=0,
- shape=geo,
- color=self.app.defaults['global_sel_draw_color'] + 'AF',
- face_color=self.app.defaults[
- 'global_sel_draw_color'] + 'AF',
- visible=True)
- self.poly_dict[shape_id] = geo
- added_poly_count += 1
- except TypeError:
- if self.solid_geometry not in self.poly_dict.values():
- if sel_type is True:
- if self.solid_geometry.within(poly_selection):
- shape_id = self.app.tool_shapes.add(tolerance=self.drawing_tolerance, layer=0,
- shape=self.solid_geometry,
- color=self.app.defaults['global_sel_draw_color'] + 'AF',
- face_color=self.app.defaults[
- 'global_sel_draw_color'] + 'AF',
- visible=True)
- self.poly_dict[shape_id] = self.solid_geometry
- added_poly_count += 1
- else:
- if poly_selection.intersects(self.solid_geometry):
- shape_id = self.app.tool_shapes.add(tolerance=self.drawing_tolerance, layer=0,
- shape=self.solid_geometry,
- color=self.app.defaults['global_sel_draw_color'] + 'AF',
- face_color=self.app.defaults[
- 'global_sel_draw_color'] + 'AF',
- visible=True)
- self.poly_dict[shape_id] = self.solid_geometry
- added_poly_count += 1
-
- if added_poly_count > 0:
- self.app.tool_shapes.redraw()
- self.app.inform.emit(
- '%s: %d. %s' % (_("Added polygon"),
- int(added_poly_count),
- _("Click to add next polygon or right click to start isolation."))
- )
- else:
- self.app.inform.emit(_("No polygon in selection."))
-
- def isolate(self, iso_type=None, geometry=None, dia=None, passes=None, overlap=None, outname=None, combine=None,
- milling_type=None, follow=None, plot=True):
- """
- Creates an isolation routing geometry object in the project.
-
- :param iso_type: type of isolation to be done: 0 = exteriors, 1 = interiors and 2 = both
- :param geometry: specific geometry to isolate
- :param dia: Tool diameter
- :param passes: Number of tool widths to cut
- :param overlap: Overlap between passes in fraction of tool diameter
- :param outname: Base name of the output object
- :param combine: Boolean: if to combine passes in one resulting object in case of multiple passes
- :param milling_type: type of milling: conventional or climbing
- :param follow: Boolean: if to generate a 'follow' geometry
- :param plot: Boolean: if to plot the resulting geometry object
- :return: None
- """
-
- if geometry is None:
- work_geo = self.follow_geometry if follow is True else self.solid_geometry
- else:
- work_geo = geometry
-
- if dia is None:
- dia = float(self.options["isotooldia"])
-
- if passes is None:
- passes = int(self.options["isopasses"])
-
- if overlap is None:
- overlap = float(self.options["isooverlap"])
-
- overlap /= 100.0
-
- combine = self.options["combine_passes"] if combine is None else bool(combine)
-
- if milling_type is None:
- milling_type = self.options["milling_type"]
-
- if iso_type is None:
- iso_t = 2
- else:
- iso_t = iso_type
-
- base_name = self.options["name"]
-
- if combine:
- if outname is None:
- if self.iso_type == 0:
- iso_name = base_name + "_ext_iso"
- elif self.iso_type == 1:
- iso_name = base_name + "_int_iso"
- else:
- iso_name = base_name + "_iso"
- else:
- iso_name = outname
-
- def iso_init(geo_obj, app_obj):
- # Propagate options
- geo_obj.options["cnctooldia"] = str(self.options["isotooldia"])
- geo_obj.tool_type = self.ui.tool_type_radio.get_value().upper()
-
- geo_obj.solid_geometry = []
-
- # transfer the Cut Z and Vtip and VAngle values in case that we use the V-Shape tool in Gerber UI
- if self.ui.tool_type_radio.get_value() == 'v':
- new_cutz = self.ui.cutz_spinner.get_value()
- new_vtipdia = self.ui.tipdia_spinner.get_value()
- new_vtipangle = self.ui.tipangle_spinner.get_value()
- tool_type = 'V'
- else:
- new_cutz = self.app.defaults['geometry_cutz']
- new_vtipdia = self.app.defaults['geometry_vtipdia']
- new_vtipangle = self.app.defaults['geometry_vtipangle']
- tool_type = 'C1'
-
- # store here the default data for Geometry Data
- default_data = {}
- default_data.update({
- "name": iso_name,
- "plot": self.app.defaults['geometry_plot'],
- "cutz": new_cutz,
- "vtipdia": new_vtipdia,
- "vtipangle": new_vtipangle,
- "travelz": self.app.defaults['geometry_travelz'],
- "feedrate": self.app.defaults['geometry_feedrate'],
- "feedrate_z": self.app.defaults['geometry_feedrate_z'],
- "feedrate_rapid": self.app.defaults['geometry_feedrate_rapid'],
- "dwell": self.app.defaults['geometry_dwell'],
- "dwelltime": self.app.defaults['geometry_dwelltime'],
- "multidepth": self.app.defaults['geometry_multidepth'],
- "ppname_g": self.app.defaults['geometry_ppname_g'],
- "depthperpass": self.app.defaults['geometry_depthperpass'],
- "extracut": self.app.defaults['geometry_extracut'],
- "extracut_length": self.app.defaults['geometry_extracut_length'],
- "toolchange": self.app.defaults['geometry_toolchange'],
- "toolchangez": self.app.defaults['geometry_toolchangez'],
- "endz": self.app.defaults['geometry_endz'],
- "spindlespeed": self.app.defaults['geometry_spindlespeed'],
- "toolchangexy": self.app.defaults['geometry_toolchangexy'],
- "startz": self.app.defaults['geometry_startz']
- })
-
- geo_obj.tools = {}
- geo_obj.tools['1'] = {}
- geo_obj.tools.update({
- '1': {
- 'tooldia': float(self.options["isotooldia"]),
- 'offset': 'Path',
- 'offset_value': 0.0,
- 'type': _('Rough'),
- 'tool_type': tool_type,
- 'data': default_data,
- 'solid_geometry': geo_obj.solid_geometry
- }
- })
-
- for nr_pass in range(passes):
- iso_offset = dia * ((2 * nr_pass + 1) / 2.0) - (nr_pass * overlap * dia)
-
- # if milling type is climb then the move is counter-clockwise around features
- mill_dir = 1 if milling_type == 'cl' else 0
- geom = self.generate_envelope(iso_offset, mill_dir, geometry=work_geo, env_iso_type=iso_t,
- follow=follow, nr_passes=nr_pass)
-
- if geom == 'fail':
- app_obj.inform.emit('[ERROR_NOTCL] %s' % _("Isolation geometry could not be generated."))
- return 'fail'
- geo_obj.solid_geometry.append(geom)
-
- # update the geometry in the tools
- geo_obj.tools['1']['solid_geometry'] = geo_obj.solid_geometry
-
- # detect if solid_geometry is empty and this require list flattening which is "heavy"
- # or just looking in the lists (they are one level depth) and if any is not empty
- # proceed with object creation, if there are empty and the number of them is the length
- # of the list then we have an empty solid_geometry which should raise a Custom Exception
- empty_cnt = 0
- if not isinstance(geo_obj.solid_geometry, list) and \
- not isinstance(geo_obj.solid_geometry, MultiPolygon):
- geo_obj.solid_geometry = [geo_obj.solid_geometry]
-
- for g in geo_obj.solid_geometry:
- if g:
- break
- else:
- empty_cnt += 1
-
- if empty_cnt == len(geo_obj.solid_geometry):
- raise ValidationError("Empty Geometry", None)
- else:
- app_obj.inform.emit('[success] %s" %s' % (_("Isolation geometry created"), geo_obj.options["name"]))
-
- # even if combine is checked, one pass is still single-geo
- geo_obj.multigeo = True if passes > 1 else False
-
- # ############################################################
- # ########## AREA SUBTRACTION ################################
- # ############################################################
- if self.ui.except_cb.get_value():
- self.app.proc_container.update_view_text(' %s' % _("Subtracting Geo"))
- geo_obj.solid_geometry = self.area_subtraction(geo_obj.solid_geometry)
-
- # TODO: Do something if this is None. Offer changing name?
- self.app.new_object("geometry", iso_name, iso_init, plot=plot)
- else:
- for i in range(passes):
-
- offset = dia * ((2 * i + 1) / 2.0) - (i * overlap * dia)
- if passes > 1:
- if outname is None:
- if self.iso_type == 0:
- iso_name = base_name + "_ext_iso" + str(i + 1)
- elif self.iso_type == 1:
- iso_name = base_name + "_int_iso" + str(i + 1)
- else:
- iso_name = base_name + "_iso" + str(i + 1)
- else:
- iso_name = outname
- else:
- if outname is None:
- if self.iso_type == 0:
- iso_name = base_name + "_ext_iso"
- elif self.iso_type == 1:
- iso_name = base_name + "_int_iso"
- else:
- iso_name = base_name + "_iso"
- else:
- iso_name = outname
-
- def iso_init(geo_obj, app_obj):
- # Propagate options
- geo_obj.options["cnctooldia"] = str(self.options["isotooldia"])
- if self.ui.tool_type_radio.get_value() == 'v':
- geo_obj.tool_type = 'V'
- else:
- geo_obj.tool_type = 'C1'
-
- # if milling type is climb then the move is counter-clockwise around features
- mill_dir = 1 if milling_type == 'cl' else 0
- geom = self.generate_envelope(offset, mill_dir, geometry=work_geo, env_iso_type=iso_t,
- follow=follow,
- nr_passes=i)
-
- if geom == 'fail':
- app_obj.inform.emit('[ERROR_NOTCL] %s' % _("Isolation geometry could not be generated."))
- return 'fail'
-
- geo_obj.solid_geometry = geom
-
- # transfer the Cut Z and Vtip and VAngle values in case that we use the V-Shape tool in Gerber UI
- # even if the resulting geometry is not multigeo we add the tools dict which will hold the data
- # required to be transfered to the Geometry object
- if self.ui.tool_type_radio.get_value() == 'v':
- new_cutz = self.ui.cutz_spinner.get_value()
- new_vtipdia = self.ui.tipdia_spinner.get_value()
- new_vtipangle = self.ui.tipangle_spinner.get_value()
- tool_type = 'V'
- else:
- new_cutz = self.app.defaults['geometry_cutz']
- new_vtipdia = self.app.defaults['geometry_vtipdia']
- new_vtipangle = self.app.defaults['geometry_vtipangle']
- tool_type = 'C1'
-
- # store here the default data for Geometry Data
- default_data = {}
- default_data.update({
- "name": iso_name,
- "plot": self.app.defaults['geometry_plot'],
- "cutz": new_cutz,
- "vtipdia": new_vtipdia,
- "vtipangle": new_vtipangle,
- "travelz": self.app.defaults['geometry_travelz'],
- "feedrate": self.app.defaults['geometry_feedrate'],
- "feedrate_z": self.app.defaults['geometry_feedrate_z'],
- "feedrate_rapid": self.app.defaults['geometry_feedrate_rapid'],
- "dwell": self.app.defaults['geometry_dwell'],
- "dwelltime": self.app.defaults['geometry_dwelltime'],
- "multidepth": self.app.defaults['geometry_multidepth'],
- "ppname_g": self.app.defaults['geometry_ppname_g'],
- "depthperpass": self.app.defaults['geometry_depthperpass'],
- "extracut": self.app.defaults['geometry_extracut'],
- "extracut_length": self.app.defaults['geometry_extracut_length'],
- "toolchange": self.app.defaults['geometry_toolchange'],
- "toolchangez": self.app.defaults['geometry_toolchangez'],
- "endz": self.app.defaults['geometry_endz'],
- "spindlespeed": self.app.defaults['geometry_spindlespeed'],
- "toolchangexy": self.app.defaults['geometry_toolchangexy'],
- "startz": self.app.defaults['geometry_startz']
- })
-
- geo_obj.tools = {}
- geo_obj.tools['1'] = {}
- geo_obj.tools.update({
- '1': {
- 'tooldia': float(self.options["isotooldia"]),
- 'offset': 'Path',
- 'offset_value': 0.0,
- 'type': _('Rough'),
- 'tool_type': tool_type,
- 'data': default_data,
- 'solid_geometry': geo_obj.solid_geometry
- }
- })
-
- # detect if solid_geometry is empty and this require list flattening which is "heavy"
- # or just looking in the lists (they are one level depth) and if any is not empty
- # proceed with object creation, if there are empty and the number of them is the length
- # of the list then we have an empty solid_geometry which should raise a Custom Exception
- empty_cnt = 0
- if not isinstance(geo_obj.solid_geometry, list):
- geo_obj.solid_geometry = [geo_obj.solid_geometry]
-
- for g in geo_obj.solid_geometry:
- if g:
- break
- else:
- empty_cnt += 1
-
- if empty_cnt == len(geo_obj.solid_geometry):
- raise ValidationError("Empty Geometry", None)
- else:
- app_obj.inform.emit('[success] %s: %s' %
- (_("Isolation geometry created"), geo_obj.options["name"]))
- geo_obj.multigeo = False
-
- # ############################################################
- # ########## AREA SUBTRACTION ################################
- # ############################################################
- if self.ui.except_cb.get_value():
- self.app.proc_container.update_view_text(' %s' % _("Subtracting Geo"))
- geo_obj.solid_geometry = self.area_subtraction(geo_obj.solid_geometry)
-
- # TODO: Do something if this is None. Offer changing name?
- self.app.new_object("geometry", iso_name, iso_init, plot=plot)
+ self.app.app_obj.new_object("geometry", name, geo_init)
def generate_envelope(self, offset, invert, geometry=None, env_iso_type=2, follow=None, nr_passes=0):
# isolation_geometry produces an envelope that is going on the left of the geometry
@@ -1114,64 +491,28 @@ class GerberObject(FlatCAMObj, Gerber):
return 'fail'
return geom
- def area_subtraction(self, geo, subtractor_geo=None):
+ def follow_geo(self, outname=None):
"""
- Subtracts the subtractor_geo (if present else self.solid_geometry) from the geo
+ Creates a geometry object "following" the gerber paths.
- :param geo: target geometry from which to subtract
- :param subtractor_geo: geometry that acts as subtractor
- :return:
+ :return: None
"""
- new_geometry = []
- target_geo = geo
- if subtractor_geo:
- sub_union = cascaded_union(subtractor_geo)
+ if outname is None:
+ follow_name = self.options["name"] + "_follow"
else:
- name = self.ui.obj_combo.currentText()
- subtractor_obj = self.app.collection.get_by_name(name)
- sub_union = cascaded_union(subtractor_obj.solid_geometry)
+ follow_name = outname
+ def follow_init(follow_obj, app):
+ # Propagate options
+ follow_obj.options["cnctooldia"] = str(self.options["isotooldia"])
+ follow_obj.solid_geometry = self.follow_geometry
+
+ # TODO: Do something if this is None. Offer changing name?
try:
- for geo_elem in target_geo:
- if isinstance(geo_elem, Polygon):
- for ring in self.poly2rings(geo_elem):
- new_geo = ring.difference(sub_union)
- if new_geo and not new_geo.is_empty:
- new_geometry.append(new_geo)
- elif isinstance(geo_elem, MultiPolygon):
- for poly in geo_elem:
- for ring in self.poly2rings(poly):
- new_geo = ring.difference(sub_union)
- if new_geo and not new_geo.is_empty:
- new_geometry.append(new_geo)
- elif isinstance(geo_elem, LineString):
- new_geo = geo_elem.difference(sub_union)
- if new_geo:
- if not new_geo.is_empty:
- new_geometry.append(new_geo)
- elif isinstance(geo_elem, MultiLineString):
- for line_elem in geo_elem:
- new_geo = line_elem.difference(sub_union)
- if new_geo and not new_geo.is_empty:
- new_geometry.append(new_geo)
- except TypeError:
- if isinstance(target_geo, Polygon):
- for ring in self.poly2rings(target_geo):
- new_geo = ring.difference(sub_union)
- if new_geo:
- if not new_geo.is_empty:
- new_geometry.append(new_geo)
- elif isinstance(target_geo, LineString):
- new_geo = target_geo.difference(sub_union)
- if new_geo and not new_geo.is_empty:
- new_geometry.append(new_geo)
- elif isinstance(target_geo, MultiLineString):
- for line_elem in target_geo:
- new_geo = line_elem.difference(sub_union)
- if new_geo and not new_geo.is_empty:
- new_geometry.append(new_geo)
- return new_geometry
+ self.app.app_obj.new_object("geometry", follow_name, follow_init)
+ except Exception as e:
+ return "Operation failed: %s" % str(e)
def on_plot_cb_click(self, *args):
if self.muted_ui:
diff --git a/flatcamObjects/FlatCAMObj.py b/AppObjects/FlatCAMObj.py
similarity index 92%
rename from flatcamObjects/FlatCAMObj.py
rename to AppObjects/FlatCAMObj.py
index 94108cc9..7c292aec 100644
--- a/flatcamObjects/FlatCAMObj.py
+++ b/AppObjects/FlatCAMObj.py
@@ -12,15 +12,15 @@
import inspect # TODO: For debugging only.
-from flatcamGUI.ObjectUI import *
+from AppGUI.ObjectUI import *
-from FlatCAMCommon import LoudDict
-from flatcamGUI.PlotCanvasLegacy import ShapeCollectionLegacy
+from Common import LoudDict
+from AppGUI.PlotCanvasLegacy import ShapeCollectionLegacy
import sys
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -43,7 +43,7 @@ class ValidationError(Exception):
class FlatCAMObj(QtCore.QObject):
"""
Base type of objects handled in FlatCAM. These become interactive
- in the GUI, can be plotted, and their options can be modified
+ in the AppGUI, can be plotted, and their options can be modified
by the user in their respective forms.
"""
@@ -186,11 +186,9 @@ class FlatCAMObj(QtCore.QObject):
def build_ui(self):
"""
- Sets up the UI/form for this object. Show the UI
- in the App.
+ Sets up the UI/form for this object. Show the UI in the App.
:return: None
- :rtype: None
"""
self.muted_ui = True
@@ -247,14 +245,14 @@ class FlatCAMObj(QtCore.QObject):
self.app.proc_container.update_view_text('')
with self.app.proc_container.new('%s...' % _("Plotting")):
self.plot()
- self.app.object_changed.emit(self)
+ self.app.app_obj.object_changed.emit(self)
self.app.worker_task.emit({'fcn': worker_task, 'params': []})
def on_scale_button_click(self):
self.read_form()
try:
- factor = float(eval(self.ui.scale_entry.get_value()))
+ factor = float(self.ui.scale_entry.get_value())
except Exception as e:
self.app.inform.emit('[ERROR_NOTCL] %s' % _("Scaling could not be executed."))
log.debug("FlatCAMObj.on_scale_button_click() -- %s" % str(e))
@@ -278,7 +276,7 @@ class FlatCAMObj(QtCore.QObject):
self.app.proc_container.update_view_text('')
with self.app.proc_container.new('%s...' % _("Plotting")):
self.plot()
- self.app.object_changed.emit(self)
+ self.app.app_obj.object_changed.emit(self)
self.app.worker_task.emit({'fcn': worker_task, 'params': []})
@@ -294,7 +292,7 @@ class FlatCAMObj(QtCore.QObject):
self.app.proc_container.update_view_text('')
with self.app.proc_container.new('%s...' % _("Plotting")):
self.plot()
- self.app.object_changed.emit(self)
+ self.app.app_obj.object_changed.emit(self)
self.app.worker_task.emit({'fcn': worker_task, 'params': []})
@@ -308,8 +306,8 @@ class FlatCAMObj(QtCore.QObject):
for option in self.options:
try:
self.set_form_item(option)
- except Exception:
- self.app.log.warning("Unexpected error:", sys.exc_info())
+ except Exception as err:
+ self.app.log.warning("Unexpected error: %s" % str(sys.exc_info()), str(err))
def read_form(self):
"""
@@ -323,7 +321,7 @@ class FlatCAMObj(QtCore.QObject):
try:
self.read_form_item(option)
except Exception:
- self.app.log.warning("Unexpected error:", sys.exc_info())
+ self.app.log.warning("Unexpected error: %s" % str(sys.exc_info()))
def set_form_item(self, option):
"""
@@ -374,7 +372,7 @@ class FlatCAMObj(QtCore.QObject):
def plot_task():
with self.app.proc_container.new('%s...' % _("Plotting")):
self.plot()
- self.app.object_changed.emit(self)
+ self.app.app_obj.object_changed.emit(self)
self.app.worker_task.emit({'fcn': plot_task, 'params': []})
@@ -461,20 +459,20 @@ class FlatCAMObj(QtCore.QObject):
def visible(self, value, threaded=True):
log.debug("FlatCAMObj.visible()")
- def worker_task(app_obj):
- self.shapes.visible = value
-
- if self.app.is_legacy is False:
- # Not all object types has annotations
- try:
- self.annotation.visible = value
- except Exception:
- pass
-
- if threaded is False:
- worker_task(app_obj=self.app)
+ # self.shapes.visible = value # maybe this is slower in VisPy? use enabled property?
+ if self.shapes.visible is True:
+ if value is False:
+ self.shapes.visible = False
else:
- self.app.worker_task.emit({'fcn': worker_task, 'params': [self]})
+ if value is True:
+ self.shapes.visible = True
+
+ if self.app.is_legacy is False:
+ # Not all object types has annotations
+ try:
+ self.annotation.visible = value
+ except Exception:
+ pass
@property
def drawing_tolerance(self):
diff --git a/flatcamObjects/FlatCAMScript.py b/AppObjects/FlatCAMScript.py
similarity index 90%
rename from flatcamObjects/FlatCAMScript.py
rename to AppObjects/FlatCAMScript.py
index 946f578f..93892715 100644
--- a/flatcamObjects/FlatCAMScript.py
+++ b/AppObjects/FlatCAMScript.py
@@ -10,16 +10,16 @@
# File modified by: Marius Stanciu #
# ##########################################################
-from flatcamEditors.FlatCAMTextEditor import TextEditor
-from flatcamObjects.FlatCAMObj import *
-from flatcamGUI.ObjectUI import *
+from AppEditors.FlatCAMTextEditor import TextEditor
+from AppObjects.FlatCAMObj import *
+from AppGUI.ObjectUI import *
import tkinter as tk
import sys
from copy import deepcopy
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -183,7 +183,13 @@ class ScriptObject(FlatCAMObj):
if self.app.ui.shell_dock.isHidden():
self.app.ui.shell_dock.show()
- self.script_code = deepcopy(self.script_editor_tab.code_editor.toPlainText())
+ self.app.shell.open_processing() # Disables input box.
+
+ # make sure that the pixmaps are not updated when running this as they will crash
+ # TODO find why the pixmaps load crash when run from this object (perhaps another thread?)
+ self.app.ui.fcinfo.lock_pmaps = True
+
+ self.script_code = self.script_editor_tab.code_editor.toPlainText()
old_line = ''
for tcl_command_line in self.script_code.splitlines():
@@ -202,8 +208,6 @@ class ScriptObject(FlatCAMObj):
# execute the actual Tcl command
try:
- self.app.shell.open_processing() # Disables input box.
-
result = self.app.shell.tcl.eval(str(new_command))
if result != 'None':
self.app.shell.append_output(result + '\n')
@@ -220,6 +224,7 @@ class ScriptObject(FlatCAMObj):
log.error("Exec command Exception: %s\n" % result)
self.app.shell.append_error('ERROR: %s\n '% result)
+ self.app.ui.fcinfo.lock_pmaps = False
self.app.shell.close_processing()
def on_autocomplete_changed(self, state):
@@ -228,6 +233,27 @@ class ScriptObject(FlatCAMObj):
else:
self.script_editor_tab.code_editor.completer_enable = False
+ def mirror(self, axis, point):
+ pass
+
+ def offset(self, vect):
+ pass
+
+ def rotate(self, angle, point):
+ pass
+
+ def scale(self, xfactor, yfactor=None, point=None):
+ pass
+
+ def skew(self, angle_x, angle_y, point):
+ pass
+
+ def buffer(self, distance, join, factor=None):
+ pass
+
+ def bounds(self, flatten=False):
+ return None, None, None, None
+
def to_dict(self):
"""
Returns a representation of the object as a dictionary.
diff --git a/flatcamObjects/ObjectCollection.py b/AppObjects/ObjectCollection.py
similarity index 79%
rename from flatcamObjects/ObjectCollection.py
rename to AppObjects/ObjectCollection.py
index ee1cf933..477eb0e6 100644
--- a/flatcamObjects/ObjectCollection.py
+++ b/AppObjects/ObjectCollection.py
@@ -16,13 +16,13 @@ from PyQt5.QtCore import Qt, QSettings
from PyQt5.QtGui import QColor
# from PyQt5.QtCore import QModelIndex
-from flatcamObjects.FlatCAMObj import FlatCAMObj
-from flatcamObjects.FlatCAMCNCJob import CNCJobObject
-from flatcamObjects.FlatCAMDocument import DocumentObject
-from flatcamObjects.FlatCAMExcellon import ExcellonObject
-from flatcamObjects.FlatCAMGeometry import GeometryObject
-from flatcamObjects.FlatCAMGerber import GerberObject
-from flatcamObjects.FlatCAMScript import ScriptObject
+from AppObjects.FlatCAMObj import FlatCAMObj
+from AppObjects.FlatCAMCNCJob import CNCJobObject
+from AppObjects.FlatCAMDocument import DocumentObject
+from AppObjects.FlatCAMExcellon import ExcellonObject
+from AppObjects.FlatCAMGeometry import GeometryObject
+from AppObjects.FlatCAMGerber import GerberObject
+from AppObjects.FlatCAMScript import ScriptObject
import inspect # TODO: Remove
@@ -32,7 +32,7 @@ from copy import deepcopy
from numpy import Inf
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -50,12 +50,13 @@ class KeySensitiveListView(QtWidgets.QTreeView):
def __init__(self, app, parent=None):
super(KeySensitiveListView, self).__init__(parent)
self.setHeaderHidden(True)
- self.setEditTriggers(QtWidgets.QTreeView.SelectedClicked)
+ # self.setEditTriggers(QtWidgets.QTreeView.SelectedClicked) # allow Edit on Tree
+ self.setEditTriggers(QtWidgets.QTreeView.NoEditTriggers)
# self.setRootIsDecorated(False)
# self.setExpandsOnDoubleClick(False)
- # Enable dragging and dropping onto the GUI
+ # Enable dragging and dropping onto the AppGUI
self.setAcceptDrops(True)
self.filename = ""
self.app = app
@@ -334,6 +335,8 @@ class ObjectCollection(QtCore.QAbstractItemModel):
self.click_modifier = None
self.update_list_signal.connect(self.on_update_list_signal)
+ self.view.activated.connect(self.on_row_activated)
+ self.item_selected.connect(self.on_row_selected)
def promise(self, obj_name):
log.debug("Object %s has been promised." % obj_name)
@@ -382,8 +385,9 @@ class ObjectCollection(QtCore.QAbstractItemModel):
if type(obj) != GeometryObject:
self.app.ui.menuprojectgeneratecnc.setVisible(False)
- if type(obj) != GeometryObject and type(obj) != ExcellonObject and type(obj) != GerberObject:
- self.app.ui.menuprojectedit.setVisible(False)
+ # if type(obj) != GeometryObject and type(obj) != ExcellonObject and type(obj) != GerberObject or \
+ # type(obj) != CNCJobObject:
+ # self.app.ui.menuprojectedit.setVisible(False)
if type(obj) != GerberObject and type(obj) != ExcellonObject and type(obj) != CNCJobObject:
self.app.ui.menuprojectviewsource.setVisible(False)
if type(obj) != GerberObject and type(obj) != GeometryObject and type(obj) != ExcellonObject and \
@@ -550,7 +554,7 @@ class ObjectCollection(QtCore.QAbstractItemModel):
while name in self.get_names():
# ## Create a new name
# Ends with number?
- log.debug("new_object(): Object name (%s) exists, changing." % name)
+ log.debug("app_obj.new_object(): Object name (%s) exists, changing." % name)
match = re.search(r'(.*[^\d])?(\d+)$', name)
if match: # Yes: Increment the number!
base = match.group(1) or ''
@@ -596,8 +600,8 @@ class ObjectCollection(QtCore.QAbstractItemModel):
"""
Gets a list of the names of all objects in the collection.
- :return: List of names.
- :rtype: list
+ :return: List of names.
+ :rtype: list
"""
# log.debug(str(inspect.stack()[1][3]) + " --> OC.get_names()")
@@ -985,7 +989,7 @@ class ObjectCollection(QtCore.QAbstractItemModel):
def get_list(self):
"""
- Will return a list of all objects currently opened.
+ Will return a list of all objects currently opened. Except FlatCAMScript and FlatCAMDocuments
:return:
"""
@@ -998,3 +1002,199 @@ class ObjectCollection(QtCore.QAbstractItemModel):
def update_view(self):
self.dataChanged.emit(QtCore.QModelIndex(), QtCore.QModelIndex())
+
+ def on_row_activated(self, index):
+ if index.isValid():
+ if index.internalPointer().parent_item != self.root_item:
+ self.app.ui.notebook.setCurrentWidget(self.app.ui.selected_tab)
+ self.on_item_activated(index)
+
+ def on_row_selected(self, obj_name):
+ """
+ This is a special string; when received it will make all Menu -> Objects entries unchecked
+ It mean we clicked outside of the items and deselected all
+
+ :param obj_name:
+ :return:
+ """
+ if obj_name == 'none':
+ for act in self.app.ui.menuobjects.actions():
+ act.setChecked(False)
+ return
+
+ # get the name of the selected objects and add them to a list
+ name_list = []
+ for obj in self.get_selected():
+ name_list.append(obj.options['name'])
+
+ # set all actions as unchecked but the ones selected make them checked
+ for act in self.app.ui.menuobjects.actions():
+ act.setChecked(False)
+ if act.text() in name_list:
+ act.setChecked(True)
+
+ def on_collection_updated(self, obj, state, old_name):
+ """
+ Create a menu from the object loaded in the collection.
+
+ :param obj: object that was changed (added, deleted, renamed)
+ :param state: what was done with the object. Can be: added, deleted, delete_all, renamed
+ :param old_name: the old name of the object before the action that triggered this slot happened
+ :return: None
+ """
+ icon_files = {
+ "gerber": self.app.resource_location + "/flatcam_icon16.png",
+ "excellon": self.app.resource_location + "/drill16.png",
+ "cncjob": self.app.resource_location + "/cnc16.png",
+ "geometry": self.app.resource_location + "/geometry16.png",
+ "script": self.app.resource_location + "/script_new16.png",
+ "document": self.app.resource_location + "/notes16_1.png"
+ }
+
+ if state == 'append':
+ for act in self.app.ui.menuobjects.actions():
+ try:
+ act.triggered.disconnect()
+ except TypeError:
+ pass
+ self.app.ui.menuobjects.clear()
+
+ gerber_list = []
+ exc_list = []
+ cncjob_list = []
+ geo_list = []
+ script_list = []
+ doc_list = []
+
+ for name in self.get_names():
+ obj_named = self.get_by_name(name)
+ if obj_named.kind == 'gerber':
+ gerber_list.append(name)
+ elif obj_named.kind == 'excellon':
+ exc_list.append(name)
+ elif obj_named.kind == 'cncjob':
+ cncjob_list.append(name)
+ elif obj_named.kind == 'geometry':
+ geo_list.append(name)
+ elif obj_named.kind == 'script':
+ script_list.append(name)
+ elif obj_named.kind == 'document':
+ doc_list.append(name)
+
+ def add_act(o_name):
+ obj_for_icon = self.get_by_name(o_name)
+ add_action = QtWidgets.QAction(parent=self.app.ui.menuobjects)
+ add_action.setCheckable(True)
+ add_action.setText(o_name)
+ add_action.setIcon(QtGui.QIcon(icon_files[obj_for_icon.kind]))
+ add_action.triggered.connect(
+ lambda: self.set_active(o_name) if add_action.isChecked() is True else
+ self.set_inactive(o_name))
+ self.app.ui.menuobjects.addAction(add_action)
+
+ for name in gerber_list:
+ add_act(name)
+ self.app.ui.menuobjects.addSeparator()
+
+ for name in exc_list:
+ add_act(name)
+ self.app.ui.menuobjects.addSeparator()
+
+ for name in cncjob_list:
+ add_act(name)
+ self.app.ui.menuobjects.addSeparator()
+
+ for name in geo_list:
+ add_act(name)
+ self.app.ui.menuobjects.addSeparator()
+
+ for name in script_list:
+ add_act(name)
+ self.app.ui.menuobjects.addSeparator()
+
+ for name in doc_list:
+ add_act(name)
+
+ self.app.ui.menuobjects.addSeparator()
+ self.app.ui.menuobjects_selall = self.app.ui.menuobjects.addAction(
+ QtGui.QIcon(self.app.resource_location + '/select_all.png'),
+ _('Select All')
+ )
+ self.app.ui.menuobjects_unselall = self.app.ui.menuobjects.addAction(
+ QtGui.QIcon(self.app.resource_location + '/deselect_all32.png'),
+ _('Deselect All')
+ )
+ self.app.ui.menuobjects_selall.triggered.connect(lambda: self.on_objects_selection(True))
+ self.app.ui.menuobjects_unselall.triggered.connect(lambda: self.on_objects_selection(False))
+
+ elif state == 'delete':
+ for act in self.app.ui.menuobjects.actions():
+ if act.text() == obj.options['name']:
+ try:
+ act.triggered.disconnect()
+ except TypeError:
+ pass
+ self.app.ui.menuobjects.removeAction(act)
+ break
+ elif state == 'rename':
+ for act in self.app.ui.menuobjects.actions():
+ if act.text() == old_name:
+ add_action = QtWidgets.QAction(parent=self.app.ui.menuobjects)
+ add_action.setText(obj.options['name'])
+ add_action.setIcon(QtGui.QIcon(icon_files[obj.kind]))
+ add_action.triggered.connect(
+ lambda: self.set_active(obj.options['name']) if add_action.isChecked() is True else
+ self.set_inactive(obj.options['name']))
+
+ self.app.ui.menuobjects.insertAction(act, add_action)
+
+ try:
+ act.triggered.disconnect()
+ except TypeError:
+ pass
+ self.app.ui.menuobjects.removeAction(act)
+ break
+ elif state == 'delete_all':
+ for act in self.app.ui.menuobjects.actions():
+ try:
+ act.triggered.disconnect()
+ except TypeError:
+ pass
+ self.app.ui.menuobjects.clear()
+
+ self.app.ui.menuobjects.addSeparator()
+ self.app.ui.menuobjects_selall = self.app.ui.menuobjects.addAction(
+ QtGui.QIcon(self.app.resource_location + '/select_all.png'),
+ _('Select All')
+ )
+ self.app.ui.menuobjects_unselall = self.app.ui.menuobjects.addAction(
+ QtGui.QIcon(self.app.resource_location + '/deselect_all32.png'),
+ _('Deselect All')
+ )
+ self.app.ui.menuobjects_selall.triggered.connect(lambda: self.on_objects_selection(True))
+ self.app.ui.menuobjects_unselall.triggered.connect(lambda: self.on_objects_selection(False))
+
+ def on_objects_selection(self, on_off):
+ obj_list = self.get_names()
+
+ if on_off is True:
+ self.set_all_active()
+ for act in self.app.ui.menuobjects.actions():
+ try:
+ act.setChecked(True)
+ except Exception:
+ pass
+ if obj_list:
+ self.app.inform[str, bool].emit('[selected] %s' % _("All objects are selected."), False)
+ else:
+ self.set_all_inactive()
+ for act in self.app.ui.menuobjects.actions():
+ try:
+ act.setChecked(False)
+ except Exception:
+ pass
+
+ if obj_list:
+ self.app.inform[str, bool].emit('%s' % _("Objects selection is cleared."), False)
+ else:
+ self.app.inform[str, bool].emit('', False)
diff --git a/flatcamObjects/__init__.py b/AppObjects/__init__.py
similarity index 100%
rename from flatcamObjects/__init__.py
rename to AppObjects/__init__.py
diff --git a/flatcamParsers/ParseDXF.py b/AppParsers/ParseDXF.py
similarity index 99%
rename from flatcamParsers/ParseDXF.py
rename to AppParsers/ParseDXF.py
index d3d482fd..698e87b8 100644
--- a/flatcamParsers/ParseDXF.py
+++ b/AppParsers/ParseDXF.py
@@ -12,8 +12,8 @@ import logging
log = logging.getLogger('base2')
-from flatcamParsers.ParseFont import *
-from flatcamParsers.ParseDXF_Spline import *
+from AppParsers.ParseFont import *
+from AppParsers.ParseDXF_Spline import *
def distance(pt1, pt2):
diff --git a/flatcamParsers/ParseDXF_Spline.py b/AppParsers/ParseDXF_Spline.py
similarity index 100%
rename from flatcamParsers/ParseDXF_Spline.py
rename to AppParsers/ParseDXF_Spline.py
diff --git a/flatcamParsers/ParseExcellon.py b/AppParsers/ParseExcellon.py
similarity index 98%
rename from flatcamParsers/ParseExcellon.py
rename to AppParsers/ParseExcellon.py
index 07930005..fbf1bb6f 100644
--- a/flatcamParsers/ParseExcellon.py
+++ b/AppParsers/ParseExcellon.py
@@ -6,7 +6,7 @@
# MIT Licence #
# ########################################################## ##
-from camlib import Geometry
+from camlib import Geometry, grace
import shapely.affinity as affinity
from shapely.geometry import Point, LineString
@@ -17,8 +17,7 @@ import logging
import traceback
from copy import deepcopy
-import FlatCAMTranslation as fcTranslate
-from FlatCAMCommon import GracefulException as grace
+# import AppTranslation as fcTranslate
import gettext
import builtins
@@ -967,7 +966,7 @@ class Excellon(Geometry):
:return: None
"""
- log.debug("flatcamParsers.ParseExcellon.Excellon.create_geometry()")
+ log.debug("AppParsers.ParseExcellon.Excellon.create_geometry()")
self.solid_geometry = []
try:
# clear the solid_geometry in self.tools
@@ -982,7 +981,7 @@ class Excellon(Geometry):
_("Excellon.create_geometry() -> a drill location was skipped "
"due of not having a tool associated.\n"
"Check the resulting GCode."))
- log.debug("flatcamParsers.ParseExcellon.Excellon.create_geometry() -> a drill location was skipped "
+ log.debug("AppParsers.ParseExcellon.Excellon.create_geometry() -> a drill location was skipped "
"due of not having a tool associated")
continue
tooldia = self.tools[drill['tool']]['C']
@@ -1006,7 +1005,7 @@ class Excellon(Geometry):
self.tools[tool_in_slots]['solid_geometry'].append(poly)
self.tools[tool_in_slots]['data'] = deepcopy(self.default_data)
except Exception as e:
- log.debug("flatcamParsers.ParseExcellon.Excellon.create_geometry() -> "
+ log.debug("AppParsers.ParseExcellon.Excellon.create_geometry() -> "
"Excellon geometry creation failed due of ERROR: %s" % str(e))
return "fail"
@@ -1018,10 +1017,10 @@ class Excellon(Geometry):
:param flatten: No used
"""
- log.debug("flatcamParsers.ParseExcellon.Excellon.bounds()")
+ log.debug("AppParsers.ParseExcellon.Excellon.bounds()")
if self.solid_geometry is None or not self.tools:
- log.debug("flatcamParsers.ParseExcellon.Excellon -> solid_geometry is None")
+ log.debug("AppParsers.ParseExcellon.Excellon -> solid_geometry is None")
return 0, 0, 0, 0
def bounds_rec(obj):
@@ -1069,7 +1068,7 @@ class Excellon(Geometry):
This function first convert to the the units found in the Excellon file but it converts tools that
are not there yet so it has no effect other than it signal that the units are the ones in the file.
- On object creation, in new_object(), true conversion is done because this is done at the end of the
+ On object creation, in app_obj.new_object(), true conversion is done because this is done at the end of the
Excellon file parsing, the tools are inside and self.tools is really converted from the units found
inside the file to the FlatCAM units.
@@ -1092,7 +1091,7 @@ class Excellon(Geometry):
else:
log.error("Unsupported units: %s" % str(obj_units))
factor = 1.0
- log.debug("flatcamParsers.ParseExcellon.Excellon.convert_units() --> Factor: %s" % str(factor))
+ log.debug("AppParsers.ParseExcellon.Excellon.convert_units() --> Factor: %s" % str(factor))
self.units = obj_units
self.scale(factor, factor)
@@ -1118,7 +1117,7 @@ class Excellon(Geometry):
:return: None
:rtype: None
"""
- log.debug("flatcamParsers.ParseExcellon.Excellon.scale()")
+ log.debug("AppParsers.ParseExcellon.Excellon.scale()")
if yfactor is None:
yfactor = xfactor
@@ -1183,7 +1182,7 @@ class Excellon(Geometry):
:type vect: tuple
:return: None
"""
- log.debug("flatcamParsers.ParseExcellon.Excellon.offset()")
+ log.debug("AppParsers.ParseExcellon.Excellon.offset()")
dx, dy = vect
@@ -1243,7 +1242,7 @@ class Excellon(Geometry):
:type point: list
:return: None
"""
- log.debug("flatcamParsers.ParseExcellon.Excellon.mirror()")
+ log.debug("AppParsers.ParseExcellon.Excellon.mirror()")
px, py = point
xscale, yscale = {"X": (1.0, -1.0), "Y": (-1.0, 1.0)}[axis]
@@ -1309,7 +1308,7 @@ class Excellon(Geometry):
See shapely manual for more information:
http://toblerity.org/shapely/manual.html#affine-transformations
"""
- log.debug("flatcamParsers.ParseExcellon.Excellon.skew()")
+ log.debug("AppParsers.ParseExcellon.Excellon.skew()")
if angle_x is None:
angle_x = 0.0
@@ -1396,7 +1395,7 @@ class Excellon(Geometry):
:param point: tuple of coordinates (x, y)
:return: None
"""
- log.debug("flatcamParsers.ParseExcellon.Excellon.rotate()")
+ log.debug("AppParsers.ParseExcellon.Excellon.rotate()")
if angle == 0:
return
@@ -1479,7 +1478,7 @@ class Excellon(Geometry):
:param join: The type of line joint used by the shapely buffer method: round, square, bevel
:return: None
"""
- log.debug("flatcamParsers.ParseExcellon.Excellon.buffer()")
+ log.debug("AppParsers.ParseExcellon.Excellon.buffer()")
if distance == 0:
return
diff --git a/flatcamParsers/ParseFont.py b/AppParsers/ParseFont.py
similarity index 99%
rename from flatcamParsers/ParseFont.py
rename to AppParsers/ParseFont.py
index cb09a862..7fa2b0d0 100644
--- a/flatcamParsers/ParseFont.py
+++ b/AppParsers/ParseFont.py
@@ -22,7 +22,7 @@ from fontTools import ttLib
import logging
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
diff --git a/flatcamParsers/ParseGerber.py b/AppParsers/ParseGerber.py
similarity index 99%
rename from flatcamParsers/ParseGerber.py
rename to AppParsers/ParseGerber.py
index 57ba4d49..73e0b939 100644
--- a/flatcamParsers/ParseGerber.py
+++ b/AppParsers/ParseGerber.py
@@ -1,5 +1,5 @@
from PyQt5 import QtWidgets
-from camlib import Geometry, arc, arc_angle, ApertureMacro
+from camlib import Geometry, arc, arc_angle, ApertureMacro, grace
import numpy as np
import re
@@ -14,9 +14,8 @@ import shapely.affinity as affinity
from shapely.geometry import box as shply_box, Polygon, LineString, Point, MultiPolygon
from lxml import etree as ET
-from flatcamParsers.ParseSVG import svgparselength, getsvggeo
-from FlatCAMCommon import GracefulException as grace
-import FlatCAMTranslation as fcTranslate
+from AppParsers.ParseSVG import svgparselength, getsvggeo
+import AppTranslation as fcTranslate
import gettext
import builtins
@@ -1477,7 +1476,7 @@ class Gerber(Geometry):
sol_geo_length = 1
try:
- if buff_length == 0 and sol_geo_length in [0, 1]:
+ if buff_length == 0 and sol_geo_length in [0, 1] and self.solid_geometry.area == 0:
log.error("Object is not Gerber file or empty. Aborting Object creation.")
return 'fail'
except TypeError as e:
@@ -1763,7 +1762,7 @@ class Gerber(Geometry):
:return: None
"""
- log.debug("flatcamParsers.ParseGerber.Gerber.import_svg()")
+ log.debug("AppParsers.ParseGerber.Gerber.import_svg()")
# Parse into list of shapely objects
svg_tree = ET.parse(filename)
@@ -2389,7 +2388,7 @@ class Gerber(Geometry):
geo_p = shply_box(minx, miny, maxx, maxy)
new_geo_el['solid'] = geo_p
else:
- log.debug("flatcamParsers.ParseGerber.Gerber.buffer() --> "
+ log.debug("AppParsers.ParseGerber.Gerber.buffer() --> "
"ap type not supported")
else:
new_geo_el['solid'] = geo_el['follow'].buffer(
diff --git a/flatcamParsers/ParseHPGL2.py b/AppParsers/ParseHPGL2.py
similarity index 99%
rename from flatcamParsers/ParseHPGL2.py
rename to AppParsers/ParseHPGL2.py
index a90a3184..200453b0 100644
--- a/flatcamParsers/ParseHPGL2.py
+++ b/AppParsers/ParseHPGL2.py
@@ -6,7 +6,7 @@
# MIT Licence #
# ############################################################
-from camlib import arc, three_point_circle
+from camlib import arc, three_point_circle, grace
import numpy as np
import re
@@ -18,8 +18,7 @@ import sys
from shapely.ops import unary_union
from shapely.geometry import LineString, Point
-from FlatCAMCommon import GracefulException as grace
-import FlatCAMTranslation as fcTranslate
+# import AppTranslation as fcTranslate
import gettext
import builtins
diff --git a/flatcamTools/ToolPDF.py b/AppParsers/ParsePDF.py
similarity index 77%
rename from flatcamTools/ToolPDF.py
rename to AppParsers/ParsePDF.py
index a21e0f7a..3022e519 100644
--- a/flatcamTools/ToolPDF.py
+++ b/AppParsers/ParsePDF.py
@@ -5,50 +5,27 @@
# MIT Licence #
# ##########################################################
-from PyQt5 import QtWidgets, QtCore
+from PyQt5 import QtCore
-from FlatCAMTool import FlatCAMTool
-from FlatCAMCommon import GracefulException as grace
+from Common import GracefulException as grace
-from shapely.geometry import Point, Polygon, LineString, MultiPolygon
-from shapely.ops import unary_union
+from shapely.geometry import Polygon, LineString, MultiPolygon
from copy import copy, deepcopy
import numpy as np
-
-import zlib
import re
-import time
import logging
-import traceback
-
-import gettext
-import FlatCAMTranslation as fcTranslate
-import builtins
-
-fcTranslate.apply_language('strings')
-if '_' not in builtins.__dict__:
- _ = gettext.gettext
log = logging.getLogger('base')
-class ToolPDF(FlatCAMTool):
- """
- Parse a PDF file.
- Reference here: https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/pdf_reference_archives/PDFReference.pdf
- Return a list of geometries
- """
- toolName = _("PDF Import Tool")
+class PdfParser(QtCore.QObject):
def __init__(self, app):
- FlatCAMTool.__init__(self, app)
+ super().__init__()
self.app = app
- self.decimals = self.app.decimals
self.step_per_circles = self.app.defaults["gerber_circle_steps"]
- self.stream_re = re.compile(b'.*?FlateDecode.*?stream(.*?)endstream', re.S)
-
# detect stroke color change; it means a new object to be created
self.stroke_color_re = re.compile(r'^\s*(\d+\.?\d*) (\d+\.?\d*) (\d+\.?\d*)\s*RG$')
@@ -110,75 +87,12 @@ class ToolPDF(FlatCAMTool):
# (each sublist has 2 lists each having 2 elements: first is offset like:
# offset_geo = [off_x, off_y], second element is scale list with 2 elements, like: scale_geo = [sc_x, sc_yy])
self.gs['transform'] = []
- self.gs['line_width'] = [] # each element is a float
-
- self.pdf_decompressed = {}
-
- # key = file name and extension
- # value is a dict to store the parsed content of the PDF
- self.pdf_parsed = {}
-
- # QTimer for periodic check
- self.check_thread = QtCore.QTimer()
-
- # Every time a parser is started we add a promise; every time a parser finished we remove a promise
- # when empty we start the layer rendering
- self.parsing_promises = []
+ self.gs['line_width'] = [] # each element is a float
# conversion factor to INCH
self.point_to_unit_factor = 0.01388888888
- def run(self, toggle=True):
- self.app.defaults.report_usage("ToolPDF()")
-
- self.set_tool_ui()
- self.on_open_pdf_click()
-
- def install(self, icon=None, separator=None, **kwargs):
- FlatCAMTool.install(self, icon, separator, shortcut='Ctrl+Q', **kwargs)
-
- def set_tool_ui(self):
- pass
-
- def on_open_pdf_click(self):
- """
- File menu callback for opening an PDF file.
-
- :return: None
- """
-
- self.app.defaults.report_usage("ToolPDF.on_open_pdf_click()")
- self.app.log.debug("ToolPDF.on_open_pdf_click()")
-
- _filter_ = "Adobe PDF Files (*.pdf);;" \
- "All Files (*.*)"
-
- try:
- filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Open PDF"),
- directory=self.app.get_last_folder(),
- filter=_filter_)
- except TypeError:
- filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Open PDF"), filter=_filter_)
-
- if len(filenames) == 0:
- 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)
-
- for filename in filenames:
- if filename != '':
- self.app.worker_task.emit({'fcn': self.open_pdf,
- 'params': [filename]})
-
- def open_pdf(self, filename):
- short_name = filename.split('/')[-1].split('\\')[-1]
- self.parsing_promises.append(short_name)
- self.pdf_parsed[short_name] = {}
- self.pdf_parsed[short_name]['pdf'] = {}
- self.pdf_parsed[short_name]['filename'] = filename
-
- self.pdf_decompressed[short_name] = ''
+ def parse_pdf(self, pdf_content):
# the UNITS in PDF files are points and here we set the factor to convert them to real units (either MM or INCH)
if self.app.defaults['units'].upper() == 'MM':
@@ -188,260 +102,14 @@ class ToolPDF(FlatCAMTool):
# 1 inch = 72 points => 1 point = 1 / 72 = 0.01388888888 inch
self.point_to_unit_factor = 1 / 72
- if self.app.abort_flag:
- # graceful abort requested by the user
- raise grace
-
- with self.app.proc_container.new(_("Parsing PDF file ...")):
- with open(filename, "rb") as f:
- pdf = f.read()
-
- stream_nr = 0
- for s in re.findall(self.stream_re, pdf):
- if self.app.abort_flag:
- # graceful abort requested by the user
- raise grace
-
- stream_nr += 1
- log.debug(" PDF STREAM: %d\n" % stream_nr)
- s = s.strip(b'\r\n')
- try:
- self.pdf_decompressed[short_name] += (zlib.decompress(s).decode('UTF-8') + '\r\n')
- except Exception as e:
- log.debug("ToolPDF.open_pdf().obj_init() --> %s" % str(e))
-
- self.pdf_parsed[short_name]['pdf'] = self.parse_pdf(pdf_content=self.pdf_decompressed[short_name])
- # we used it, now we delete it
- self.pdf_decompressed[short_name] = ''
-
- # removal from list is done in a multithreaded way therefore not always the removal can be done
- # try to remove until it's done
- try:
- while True:
- self.parsing_promises.remove(short_name)
- time.sleep(0.1)
- except Exception as e:
- log.debug("ToolPDF.open_pdf() --> %s" % str(e))
- self.app.inform.emit('[success] %s: %s' % (_("Opened"), str(filename)))
-
- def layer_rendering_as_excellon(self, filename, ap_dict, layer_nr):
- outname = filename.split('/')[-1].split('\\')[-1] + "_%s" % str(layer_nr)
-
- # store the points here until reconstitution:
- # keys are diameters and values are list of (x,y) coords
- points = {}
-
- def obj_init(exc_obj, app_obj):
- clear_geo = [geo_el['clear'] for geo_el in ap_dict['0']['geometry']]
-
- for geo in clear_geo:
- xmin, ymin, xmax, ymax = geo.bounds
- center = (((xmax - xmin) / 2) + xmin, ((ymax - ymin) / 2) + ymin)
-
- # for drill bits, even in INCH, it's enough 3 decimals
- correction_factor = 0.974
- dia = (xmax - xmin) * correction_factor
- dia = round(dia, 3)
- if dia in points:
- points[dia].append(center)
- else:
- points[dia] = [center]
-
- sorted_dia = sorted(points.keys())
-
- name_tool = 0
- for dia in sorted_dia:
- name_tool += 1
-
- # create tools dictionary
- spec = {"C": dia, 'solid_geometry': []}
- exc_obj.tools[str(name_tool)] = spec
-
- # create drill list of dictionaries
- for dia_points in points:
- if dia == dia_points:
- for pt in points[dia_points]:
- exc_obj.drills.append({'point': Point(pt), 'tool': str(name_tool)})
- break
-
- ret = exc_obj.create_geometry()
- if ret == 'fail':
- log.debug("Could not create geometry for Excellon object.")
- return "fail"
- for tool in exc_obj.tools:
- if exc_obj.tools[tool]['solid_geometry']:
- return
- 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] %s' %
- _('Open PDF file failed.'))
- return
- # Register recent file
- self.app.file_opened.emit("excellon", filename)
- # GUI feedback
- 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)
-
- def obj_init(grb_obj):
-
- grb_obj.apertures = ap_dict
-
- poly_buff = []
- follow_buf = []
- for ap in grb_obj.apertures:
- for k in grb_obj.apertures[ap]:
- if k == 'geometry':
- for geo_el in ap_dict[ap][k]:
- if 'solid' in geo_el:
- poly_buff.append(geo_el['solid'])
- if 'follow' in geo_el:
- follow_buf.append(geo_el['follow'])
- poly_buff = unary_union(poly_buff)
-
- if '0' in grb_obj.apertures:
- global_clear_geo = []
- if 'geometry' in grb_obj.apertures['0']:
- for geo_el in ap_dict['0']['geometry']:
- if 'clear' in geo_el:
- global_clear_geo.append(geo_el['clear'])
-
- if global_clear_geo:
- solid = []
- for apid in grb_obj.apertures:
- if 'geometry' in grb_obj.apertures[apid]:
- for elem in grb_obj.apertures[apid]['geometry']:
- if 'solid' in elem:
- solid_geo = deepcopy(elem['solid'])
- for clear_geo in global_clear_geo:
- # Make sure that the clear_geo is within the solid_geo otherwise we loose
- # the solid_geometry. We want for clear_geometry just to cut into solid_geometry
- # not to delete it
- if clear_geo.within(solid_geo):
- solid_geo = solid_geo.difference(clear_geo)
- if solid_geo.is_empty:
- solid_geo = elem['solid']
- try:
- for poly in solid_geo:
- solid.append(poly)
- except TypeError:
- solid.append(solid_geo)
- poly_buff = deepcopy(MultiPolygon(solid))
-
- follow_buf = unary_union(follow_buf)
-
- try:
- poly_buff = poly_buff.buffer(0.0000001)
- except ValueError:
- pass
- try:
- poly_buff = poly_buff.buffer(-0.0000001)
- except ValueError:
- pass
-
- grb_obj.solid_geometry = deepcopy(poly_buff)
- grb_obj.follow_geometry = deepcopy(follow_buf)
-
- with self.app.proc_container.new(_("Rendering PDF layer #%d ...") % int(layer_nr)):
-
- ret = self.app.new_object('gerber', outname, obj_init, autoselected=False)
- if ret == 'fail':
- 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] %s: %s' % (_("Rendered"), outname))
-
- def periodic_check(self, check_period):
- """
- This function starts an QTimer and it will periodically check if parsing was done
-
- :param check_period: time at which to check periodically if all plots finished to be plotted
- :return:
- """
-
- # self.plot_thread = threading.Thread(target=lambda: self.check_plot_finished(check_period))
- # self.plot_thread.start()
- log.debug("ToolPDF --> Periodic Check started.")
-
- try:
- self.check_thread.stop()
- except TypeError:
- pass
-
- self.check_thread.setInterval(check_period)
- try:
- self.check_thread.timeout.disconnect(self.periodic_check_handler)
- except (TypeError, AttributeError):
- pass
-
- self.check_thread.timeout.connect(self.periodic_check_handler)
- self.check_thread.start(QtCore.QThread.HighPriority)
-
- def periodic_check_handler(self):
- """
- If the parsing worker finished then start multithreaded rendering
- :return:
- """
- # log.debug("checking parsing --> %s" % str(self.parsing_promises))
-
- try:
- if not self.parsing_promises:
- self.check_thread.stop()
- # parsing finished start the layer rendering
- if self.pdf_parsed:
- obj_to_delete = []
- for object_name in self.pdf_parsed:
- if self.app.abort_flag:
- # graceful abort requested by the user
- raise grace
-
- filename = deepcopy(self.pdf_parsed[object_name]['filename'])
- pdf_content = deepcopy(self.pdf_parsed[object_name]['pdf'])
- obj_to_delete.append(object_name)
- for k in pdf_content:
- if self.app.abort_flag:
- # graceful abort requested by the user
- raise grace
-
- ap_dict = pdf_content[k]
- if ap_dict:
- layer_nr = k
- if k == 0:
- self.app.worker_task.emit({'fcn': self.layer_rendering_as_excellon,
- 'params': [filename, ap_dict, layer_nr]})
- else:
- self.app.worker_task.emit({'fcn': self.layer_rendering_as_gerber,
- 'params': [filename, ap_dict, layer_nr]})
- # delete the object already processed so it will not be processed again for other objects
- # that were opened at the same time; like in drag & drop on GUI
- for obj_name in obj_to_delete:
- if obj_name in self.pdf_parsed:
- self.pdf_parsed.pop(obj_name)
-
- log.debug("ToolPDF --> Periodic check finished.")
- except Exception:
- traceback.print_exc()
-
- def parse_pdf(self, pdf_content):
path = {}
- path['lines'] = [] # it's a list of lines subpaths
- path['bezier'] = [] # it's a list of bezier arcs subpaths
+ path['lines'] = [] # it's a list of lines subpaths
+ path['bezier'] = [] # it's a list of bezier arcs subpaths
path['rectangle'] = [] # it's a list of rectangle subpaths
subpath = {}
- subpath['lines'] = [] # it's a list of points
- subpath['bezier'] = [] # it's a list of sublists each like this [start, c1, c2, stop]
+ subpath['lines'] = [] # it's a list of points
+ subpath['bezier'] = [] # it's a list of sublists each like this [start, c1, c2, stop]
subpath['rectangle'] = [] # it's a list of sublists of points
# store the start point (when 'm' command is encountered)
@@ -503,7 +171,7 @@ class ToolPDF(FlatCAMTool):
if match:
color = [float(match.group(1)), float(match.group(2)), float(match.group(3))]
log.debug(
- "ToolPDF.parse_pdf() --> STROKE Color change on line: %s --> RED=%f GREEN=%f BLUE=%f" %
+ "parse_pdf() --> STROKE Color change on line: %s --> RED=%f GREEN=%f BLUE=%f" %
(line_nr, color[0], color[1], color[2]))
if color[0] == old_color[0] and color[1] == old_color[1] and color[2] == old_color[2]:
@@ -526,7 +194,7 @@ class ToolPDF(FlatCAMTool):
if match:
fill_color = [float(match.group(1)), float(match.group(2)), float(match.group(3))]
log.debug(
- "ToolPDF.parse_pdf() --> FILL Color change on line: %s --> RED=%f GREEN=%f BLUE=%f" %
+ "parse_pdf() --> FILL Color change on line: %s --> RED=%f GREEN=%f BLUE=%f" %
(line_nr, fill_color[0], fill_color[1], fill_color[2]))
# if the color is white we are seeing 'clear_geometry' that can't be seen. It may be that those
# geometries are actually holes from which we can make an Excellon file
@@ -545,7 +213,7 @@ class ToolPDF(FlatCAMTool):
# sometimes they combine save_to_graphics_stack with the transformation on the same line
if match.group(1) == 'q':
log.debug(
- "ToolPDF.parse_pdf() --> Save to GS found on line: %s --> offset=[%f, %f] ||| scale=[%f, %f]" %
+ "parse_pdf() --> Save to GS found on line: %s --> offset=[%f, %f] ||| scale=[%f, %f]" %
(line_nr, offset_geo[0], offset_geo[1], scale_geo[0], scale_geo[1]))
self.gs['transform'].append(deepcopy([offset_geo, scale_geo]))
@@ -555,7 +223,7 @@ class ToolPDF(FlatCAMTool):
if (float(match.group(3)) == 0 and float(match.group(4)) == 0) and \
(float(match.group(6)) != 0 or float(match.group(7)) != 0):
log.debug(
- "ToolPDF.parse_pdf() --> OFFSET transformation found on line: %s --> %s" % (line_nr, pline))
+ "parse_pdf() --> OFFSET transformation found on line: %s --> %s" % (line_nr, pline))
offset_geo[0] += float(match.group(6))
offset_geo[1] += float(match.group(7))
@@ -564,7 +232,7 @@ class ToolPDF(FlatCAMTool):
# transformation = SCALING
if float(match.group(2)) != 1 and float(match.group(5)) != 1:
log.debug(
- "ToolPDF.parse_pdf() --> SCALE transformation found on line: %s --> %s" % (line_nr, pline))
+ "parse_pdf() --> SCALE transformation found on line: %s --> %s" % (line_nr, pline))
scale_geo[0] *= float(match.group(2))
scale_geo[1] *= float(match.group(5))
@@ -576,7 +244,7 @@ class ToolPDF(FlatCAMTool):
match = self.save_gs_re.search(pline)
if match:
log.debug(
- "ToolPDF.parse_pdf() --> Save to GS found on line: %s --> offset=[%f, %f] ||| scale=[%f, %f]" %
+ "parse_pdf() --> Save to GS found on line: %s --> offset=[%f, %f] ||| scale=[%f, %f]" %
(line_nr, offset_geo[0], offset_geo[1], scale_geo[0], scale_geo[1]))
self.gs['transform'].append(deepcopy([offset_geo, scale_geo]))
self.gs['line_width'].append(deepcopy(size))
@@ -590,18 +258,18 @@ class ToolPDF(FlatCAMTool):
scale_geo = restored_transform[1]
except IndexError:
# nothing to remove
- log.debug("ToolPDF.parse_pdf() --> Nothing to restore")
+ log.debug("parse_pdf() --> Nothing to restore")
pass
try:
size = self.gs['line_width'].pop(-1)
except IndexError:
- log.debug("ToolPDF.parse_pdf() --> Nothing to restore")
+ log.debug("parse_pdf() --> Nothing to restore")
# nothing to remove
pass
log.debug(
- "ToolPDF.parse_pdf() --> Restore from GS found on line: %s --> "
+ "parse_pdf() --> Restore from GS found on line: %s --> "
"restored_offset=[%f, %f] ||| restored_scale=[%f, %f]" %
(line_nr, offset_geo[0], offset_geo[1], scale_geo[0], scale_geo[1]))
# log.debug("Restored Offset= [%f, %f]" % (offset_geo[0], offset_geo[1]))
@@ -712,9 +380,9 @@ class ToolPDF(FlatCAMTool):
width = (float(match.group(3)) + offset_geo[0]) * self.point_to_unit_factor * scale_geo[0]
height = (float(match.group(4)) + offset_geo[1]) * self.point_to_unit_factor * scale_geo[1]
pt1 = (x, y)
- pt2 = (x+width, y)
- pt3 = (x+width, y+height)
- pt4 = (x, y+height)
+ pt2 = (x + width, y)
+ pt3 = (x + width, y + height)
+ pt4 = (x, y + height)
subpath['rectangle'] += [pt1, pt2, pt3, pt4, pt1]
current_point = pt1
continue
@@ -948,7 +616,8 @@ class ToolPDF(FlatCAMTool):
geo += self.bezier_to_points(start=b[0], c1=b[1], c2=b[2], stop=b[3])
# close the subpath if it was not closed already
if close_subpath is False:
- geo.append(geo[0])
+ new_g = geo[0]
+ geo.append(new_g)
try:
geo_el = Polygon(geo).buffer(0.0000001, resolution=self.step_per_circles)
path_geo.append(geo_el)
diff --git a/flatcamParsers/ParseSVG.py b/AppParsers/ParseSVG.py
similarity index 99%
rename from flatcamParsers/ParseSVG.py
rename to AppParsers/ParseSVG.py
index a36e4770..713d50f1 100644
--- a/flatcamParsers/ParseSVG.py
+++ b/AppParsers/ParseSVG.py
@@ -27,7 +27,7 @@ from shapely.geometry import LineString, LinearRing, MultiLineString
from shapely.affinity import skew, affine_transform, rotate
import numpy as np
-from flatcamParsers.ParseFont import *
+from AppParsers.ParseFont import *
log = logging.getLogger('base2')
diff --git a/flatcamParsers/__init__.py b/AppParsers/__init__.py
similarity index 100%
rename from flatcamParsers/__init__.py
rename to AppParsers/__init__.py
diff --git a/FlatCAMPool.py b/AppPool.py
similarity index 100%
rename from FlatCAMPool.py
rename to AppPool.py
diff --git a/FlatCAMPostProc.py b/AppPreProcessor.py
similarity index 93%
rename from FlatCAMPostProc.py
rename to AppPreProcessor.py
index 15991d80..4ae297f7 100644
--- a/FlatCAMPostProc.py
+++ b/AppPreProcessor.py
@@ -19,10 +19,10 @@ log = logging.getLogger('base')
preprocessors = {}
-class ABCPostProcRegister(ABCMeta):
+class ABCPreProcRegister(ABCMeta):
# handles preprocessors registration on instantiation
def __new__(cls, clsname, bases, attrs):
- newclass = super(ABCPostProcRegister, cls).__new__(cls, clsname, bases, attrs)
+ newclass = super(ABCPreProcRegister, cls).__new__(cls, clsname, bases, attrs)
if object not in bases:
if newclass.__name__ in preprocessors:
log.warning('Preprocessor %s has been overriden' % newclass.__name__)
@@ -30,7 +30,7 @@ class ABCPostProcRegister(ABCMeta):
return newclass
-class FlatCAMPostProc(object, metaclass=ABCPostProcRegister):
+class PreProc(object, metaclass=ABCPreProcRegister):
@abstractmethod
def start_code(self, p):
pass
@@ -76,7 +76,7 @@ class FlatCAMPostProc(object, metaclass=ABCPostProcRegister):
pass
-class FlatCAMPostProc_Tools(object, metaclass=ABCPostProcRegister):
+class AppPreProcTools(object, metaclass=ABCPreProcRegister):
@abstractmethod
def start_code(self, p):
pass
diff --git a/FlatCAMProcess.py b/AppProcess.py
similarity index 98%
rename from FlatCAMProcess.py
rename to AppProcess.py
index e225f83e..313e8581 100644
--- a/FlatCAMProcess.py
+++ b/AppProcess.py
@@ -6,12 +6,12 @@
# MIT Licence #
# ##########################################################
-from flatcamGUI.FlatCAMGUI import FlatCAMActivityView
+from AppGUI.GUIElements import FlatCAMActivityView
from PyQt5 import QtCore
import weakref
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
diff --git a/FlatCAMTool.py b/AppTool.py
similarity index 69%
rename from FlatCAMTool.py
rename to AppTool.py
index 3b7f8d0f..f288cdf0 100644
--- a/FlatCAMTool.py
+++ b/AppTool.py
@@ -6,13 +6,12 @@
# MIT Licence #
# ########################################################## ##
-from PyQt5 import QtGui, QtCore, QtWidgets, QtWidgets
-from PyQt5.QtCore import Qt
+from PyQt5 import QtCore, QtWidgets
from shapely.geometry import Polygon, LineString
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -20,22 +19,23 @@ if '_' not in builtins.__dict__:
_ = gettext.gettext
-class FlatCAMTool(QtWidgets.QWidget):
+class AppTool(QtWidgets.QWidget):
toolName = "FlatCAM Generic Tool"
def __init__(self, app, parent=None):
"""
- :param app: The application this tool will run in.
- :type app: App
- :param parent: Qt Parent
- :return: FlatCAMTool
+ :param app: The application this tool will run in.
+ :type app: App_Main.App
+ :param parent: Qt Parent
+ :return: AppTool
"""
- self.app = app
- self.decimals = app.decimals
-
QtWidgets.QWidget.__init__(self, parent)
+
+ self.app = app
+ self.decimals = self.app.decimals
+
# self.setSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Maximum)
self.layout = QtWidgets.QVBoxLayout()
@@ -87,10 +87,10 @@ class FlatCAMTool(QtWidgets.QWidget):
if self.app.tool_tab_locked is True:
return
- # Remove anything else in the GUI
+ # Remove anything else in the AppGUI
self.app.ui.tool_scroll_area.takeWidget()
- # Put ourself in the GUI
+ # Put ourself in the AppGUI
self.app.ui.tool_scroll_area.setWidget(self)
# Switch notebook to tool page
@@ -110,6 +110,11 @@ class FlatCAMTool(QtWidgets.QWidget):
:return:
"""
+ if 'shapes_storage' in kwargs:
+ s_storage = kwargs['shapes_storage']
+ else:
+ s_storage = self.app.tool_shapes
+
if 'color' in kwargs:
color = kwargs['color']
else:
@@ -139,10 +144,9 @@ class FlatCAMTool(QtWidgets.QWidget):
color_t = face_color[:-2] + str(hex(int(face_alpha * 255)))[2:]
- self.app.tool_shapes.add(sel_rect, color=color, face_color=color_t, update=True,
- layer=0, tolerance=None)
+ s_storage.add(sel_rect, color=color, face_color=color_t, update=True, layer=0, tolerance=None)
if self.app.is_legacy is True:
- self.app.tool_shapes.redraw()
+ s_storage.redraw()
def draw_selection_shape_polygon(self, points, **kwargs):
"""
@@ -151,6 +155,12 @@ class FlatCAMTool(QtWidgets.QWidget):
:param kwargs:
:return:
"""
+
+ if 'shapes_storage' in kwargs:
+ s_storage = kwargs['shapes_storage']
+ else:
+ s_storage = self.app.tool_shapes
+
if 'color' in kwargs:
color = kwargs['color']
else:
@@ -165,6 +175,7 @@ class FlatCAMTool(QtWidgets.QWidget):
face_alpha = kwargs['face_alpha']
else:
face_alpha = 0.3
+
if len(points) < 3:
sel_rect = LineString(points)
else:
@@ -175,14 +186,24 @@ class FlatCAMTool(QtWidgets.QWidget):
color_t = face_color[:-2] + str(hex(int(face_alpha * 255)))[2:]
- self.app.tool_shapes.add(sel_rect, color=color, face_color=color_t, update=True,
- layer=0, tolerance=None)
+ s_storage.add(sel_rect, color=color, face_color=color_t, update=True, layer=0, tolerance=None)
if self.app.is_legacy is True:
- self.app.tool_shapes.redraw()
+ s_storage.redraw()
- def delete_tool_selection_shape(self):
- self.app.tool_shapes.clear()
- self.app.tool_shapes.redraw()
+ def delete_tool_selection_shape(self, **kwargs):
+ """
+
+ :param kwargs:
+ :return:
+ """
+
+ if 'shapes_storage' in kwargs:
+ s_storage = kwargs['shapes_storage']
+ else:
+ s_storage = self.app.tool_shapes
+
+ s_storage.clear()
+ s_storage.redraw()
def draw_moving_selection_shape_poly(self, points, data, **kwargs):
"""
@@ -192,6 +213,12 @@ class FlatCAMTool(QtWidgets.QWidget):
:param kwargs:
:return:
"""
+
+ if 'shapes_storage' in kwargs:
+ s_storage = kwargs['shapes_storage']
+ else:
+ s_storage = self.app.move_tool.sel_shapes
+
if 'color' in kwargs:
color = kwargs['color']
else:
@@ -226,37 +253,49 @@ class FlatCAMTool(QtWidgets.QWidget):
color_t_error = "#00000000"
if geo.is_valid and not geo.is_empty:
- self.app.move_tool.sel_shapes.add(geo, color=color, face_color=color_t, update=True,
- layer=0, tolerance=None)
+ s_storage.add(geo, color=color, face_color=color_t, update=True, layer=0, tolerance=None)
elif not geo.is_valid:
- self.app.move_tool.sel_shapes.add(geo, color="red", face_color=color_t_error, update=True,
- layer=0, tolerance=None)
+ s_storage.add(geo, color="red", face_color=color_t_error, update=True, layer=0, tolerance=None)
if self.app.is_legacy is True:
- self.app.move_tool.sel_shapes.redraw()
+ s_storage.redraw()
- def delete_moving_selection_shape(self):
- self.app.move_tool.sel_shapes.clear()
- self.app.move_tool.sel_shapes.redraw()
+ def delete_moving_selection_shape(self, **kwargs):
+ """
+
+ :param kwargs:
+ :return:
+ """
+
+ if 'shapes_storage' in kwargs:
+ s_storage = kwargs['shapes_storage']
+ else:
+ s_storage = self.app.move_tool.sel_shapes
+
+ s_storage.clear()
+ s_storage.redraw()
def confirmation_message(self, accepted, minval, maxval):
if accepted is False:
- self.app.inform.emit('[WARNING_NOTCL] %s: [%.*f, %.*f]' %
- (_("Edited value is out of range"), self.decimals, minval, self.decimals, maxval))
+ self.app.inform[str, bool].emit('[WARNING_NOTCL] %s: [%.*f, %.*f]' % (_("Edited value is out of range"),
+ self.decimals,
+ minval,
+ self.decimals,
+ maxval), False)
else:
- self.app.inform.emit('[success] %s' % _("Edited value is within limits."))
+ self.app.inform[str, bool].emit('[success] %s' % _("Edited value is within limits."), False)
def confirmation_message_int(self, accepted, minval, maxval):
if accepted is False:
- self.app.inform.emit('[WARNING_NOTCL] %s: [%d, %d]' %
- (_("Edited value is out of range"), minval, maxval))
+ self.app.inform[str, bool].emit('[WARNING_NOTCL] %s: [%d, %d]' %
+ (_("Edited value is out of range"), minval, maxval), False)
else:
- self.app.inform.emit('[success] %s' % _("Edited value is within limits."))
+ self.app.inform[str, bool].emit('[success] %s' % _("Edited value is within limits."), False)
def sizeHint(self):
"""
I've overloaded this just in case I will need to make changes in the future to enforce dimensions
:return:
"""
- default_hint_size = super(FlatCAMTool, self).sizeHint()
+ default_hint_size = super(AppTool, self).sizeHint()
return QtCore.QSize(default_hint_size.width(), default_hint_size.height())
diff --git a/flatcamTools/ToolAlignObjects.py b/AppTools/ToolAlignObjects.py
similarity index 98%
rename from flatcamTools/ToolAlignObjects.py
rename to AppTools/ToolAlignObjects.py
index 33b9611c..35e956c4 100644
--- a/flatcamTools/ToolAlignObjects.py
+++ b/AppTools/ToolAlignObjects.py
@@ -5,10 +5,10 @@
# MIT Licence #
# ##########################################################
-from PyQt5 import QtWidgets, QtGui, QtCore
-from FlatCAMTool import FlatCAMTool
+from PyQt5 import QtWidgets, QtCore
+from AppTool import AppTool
-from flatcamGUI.GUIElements import FCComboBox, RadioSet
+from AppGUI.GUIElements import FCComboBox, RadioSet
import math
@@ -16,7 +16,7 @@ from shapely.geometry import Point
from shapely.affinity import translate
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
import logging
@@ -27,12 +27,12 @@ if '_' not in builtins.__dict__:
log = logging.getLogger('base')
-class AlignObjects(FlatCAMTool):
+class AlignObjects(AppTool):
toolName = _("Align Objects")
def __init__(self, app):
- FlatCAMTool.__init__(self, app)
+ AppTool.__init__(self, app)
self.app = app
self.decimals = app.decimals
@@ -238,13 +238,13 @@ class AlignObjects(FlatCAMTool):
if self.app.ui.splitter.sizes()[0] == 0:
self.app.ui.splitter.setSizes([1, 1])
- FlatCAMTool.run(self)
+ AppTool.run(self)
self.set_tool_ui()
self.app.ui.notebook.setTabText(2, _("Align Tool"))
def install(self, icon=None, separator=None, **kwargs):
- FlatCAMTool.install(self, icon, separator, shortcut='Alt+A', **kwargs)
+ AppTool.install(self, icon, separator, shortcut='Alt+A', **kwargs)
def set_tool_ui(self):
self.reset_fields()
diff --git a/flatcamTools/ToolCalculators.py b/AppTools/ToolCalculators.py
similarity index 98%
rename from flatcamTools/ToolCalculators.py
rename to AppTools/ToolCalculators.py
index 4b1bbbb1..08edc27d 100644
--- a/flatcamTools/ToolCalculators.py
+++ b/AppTools/ToolCalculators.py
@@ -6,12 +6,12 @@
# ##########################################################
from PyQt5 import QtWidgets
-from FlatCAMTool import FlatCAMTool
-from flatcamGUI.GUIElements import FCSpinner, FCDoubleSpinner, FCEntry
+from AppTool import AppTool
+from AppGUI.GUIElements import FCSpinner, FCDoubleSpinner, FCEntry
import math
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -19,7 +19,7 @@ if '_' not in builtins.__dict__:
_ = gettext.gettext
-class ToolCalculator(FlatCAMTool):
+class ToolCalculator(AppTool):
toolName = _("Calculators")
v_shapeName = _("V-Shape Tool Calculator")
@@ -27,7 +27,7 @@ class ToolCalculator(FlatCAMTool):
eplateName = _("ElectroPlating Calculator")
def __init__(self, app):
- FlatCAMTool.__init__(self, app)
+ AppTool.__init__(self, app)
self.app = app
self.decimals = self.app.decimals
@@ -292,14 +292,14 @@ class ToolCalculator(FlatCAMTool):
if self.app.ui.splitter.sizes()[0] == 0:
self.app.ui.splitter.setSizes([1, 1])
- FlatCAMTool.run(self)
+ AppTool.run(self)
self.set_tool_ui()
self.app.ui.notebook.setTabText(2, _("Calc. Tool"))
def install(self, icon=None, separator=None, **kwargs):
- FlatCAMTool.install(self, icon, separator, shortcut='Alt+C', **kwargs)
+ AppTool.install(self, icon, separator, shortcut='Alt+C', **kwargs)
def set_tool_ui(self):
self.units = self.app.defaults['units'].upper()
diff --git a/flatcamTools/ToolCalibration.py b/AppTools/ToolCalibration.py
similarity index 98%
rename from flatcamTools/ToolCalibration.py
rename to AppTools/ToolCalibration.py
index 98b487cf..b808f00c 100644
--- a/flatcamTools/ToolCalibration.py
+++ b/AppTools/ToolCalibration.py
@@ -7,10 +7,10 @@
from PyQt5 import QtWidgets, QtCore, QtGui
-from FlatCAMTool import FlatCAMTool
-from flatcamGUI.GUIElements import FCDoubleSpinner, EvalEntry, FCCheckBox, OptionalInputSection, FCEntry
-from flatcamGUI.GUIElements import FCTable, FCComboBox, RadioSet
-from flatcamEditors.FlatCAMTextEditor import TextEditor
+from AppTool import AppTool
+from AppGUI.GUIElements import FCDoubleSpinner, EvalEntry, FCCheckBox, OptionalInputSection, FCEntry
+from AppGUI.GUIElements import FCTable, FCComboBox, RadioSet
+from AppEditors.FlatCAMTextEditor import TextEditor
from shapely.geometry import Point
from shapely.geometry.base import *
@@ -22,7 +22,7 @@ import logging
from copy import deepcopy
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -32,12 +32,12 @@ if '_' not in builtins.__dict__:
log = logging.getLogger('base')
-class ToolCalibration(FlatCAMTool):
+class ToolCalibration(AppTool):
toolName = _("Calibration Tool")
def __init__(self, app):
- FlatCAMTool.__init__(self, app)
+ AppTool.__init__(self, app)
self.app = app
self.canvas = self.app.plotcanvas
@@ -752,14 +752,14 @@ class ToolCalibration(FlatCAMTool):
if self.app.ui.splitter.sizes()[0] == 0:
self.app.ui.splitter.setSizes([1, 1])
- FlatCAMTool.run(self)
+ AppTool.run(self)
self.set_tool_ui()
self.app.ui.notebook.setTabText(2, _("Calibration Tool"))
def install(self, icon=None, separator=None, **kwargs):
- FlatCAMTool.install(self, icon, separator, shortcut='Alt+E', **kwargs)
+ AppTool.install(self, icon, separator, shortcut='Alt+E', **kwargs)
def set_tool_ui(self):
self.units = self.app.defaults['units'].upper()
@@ -1069,7 +1069,7 @@ class ToolCalibration(FlatCAMTool):
# delete the absolute and relative position and messages in the infobar
self.app.ui.position_label.setText("")
- self.app.ui.rel_position_label.setText("")
+ # self.app.ui.rel_position_label.setText("")
# first clear previous text in text editor (if any)
self.gcode_editor_tab.code_editor.clear()
@@ -1352,11 +1352,11 @@ class ToolCalibration(FlatCAMTool):
try:
if obj.kind.lower() == 'excellon':
- self.app.new_object("excellon", str(obj_name), initialize_excellon)
+ self.app.app_obj.new_object("excellon", str(obj_name), initialize_excellon)
elif obj.kind.lower() == 'gerber':
- self.app.new_object("gerber", str(obj_name), initialize_gerber)
+ self.app.app_obj.new_object("gerber", str(obj_name), initialize_gerber)
elif obj.kind.lower() == 'geometry':
- self.app.new_object("geometry", str(obj_name), initialize_geometry)
+ self.app.app_obj.new_object("geometry", str(obj_name), initialize_geometry)
except Exception as e:
log.debug("ToolCalibration.new_calibrated_object() --> %s" % str(e))
return "Operation failed: %s" % str(e)
diff --git a/flatcamTools/ToolCopperThieving.py b/AppTools/ToolCopperThieving.py
similarity index 98%
rename from flatcamTools/ToolCopperThieving.py
rename to AppTools/ToolCopperThieving.py
index d6fd310a..20e35cd0 100644
--- a/flatcamTools/ToolCopperThieving.py
+++ b/AppTools/ToolCopperThieving.py
@@ -7,9 +7,9 @@
from PyQt5 import QtWidgets, QtCore
-from FlatCAMCommon import GracefulException as grace
-from FlatCAMTool import FlatCAMTool
-from flatcamGUI.GUIElements import FCDoubleSpinner, RadioSet, FCEntry, FCComboBox
+from camlib import grace
+from AppTool import AppTool
+from AppGUI.GUIElements import FCDoubleSpinner, RadioSet, FCEntry, FCComboBox
import shapely.geometry.base as base
from shapely.ops import cascaded_union, unary_union
@@ -23,7 +23,7 @@ import numpy as np
from collections import Iterable
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -33,13 +33,13 @@ if '_' not in builtins.__dict__:
log = logging.getLogger('base')
-class ToolCopperThieving(FlatCAMTool):
+class ToolCopperThieving(AppTool):
work_finished = QtCore.pyqtSignal()
toolName = _("Copper Thieving Tool")
def __init__(self, app):
- FlatCAMTool.__init__(self, app)
+ AppTool.__init__(self, app)
self.app = app
self.canvas = self.app.plotcanvas
@@ -561,14 +561,14 @@ class ToolCopperThieving(FlatCAMTool):
if self.app.ui.splitter.sizes()[0] == 0:
self.app.ui.splitter.setSizes([1, 1])
- FlatCAMTool.run(self)
+ AppTool.run(self)
self.set_tool_ui()
self.app.ui.notebook.setTabText(2, _("Copper Thieving Tool"))
def install(self, icon=None, separator=None, **kwargs):
- FlatCAMTool.install(self, icon, separator, shortcut='Alt+F', **kwargs)
+ AppTool.install(self, icon, separator, shortcut='Alt+J', **kwargs)
def set_tool_ui(self):
self.units = self.app.defaults['units']
@@ -910,16 +910,22 @@ class ToolCopperThieving(FlatCAMTool):
edge_width=self.app.defaults["global_cursor_width"],
size=self.app.defaults["global_cursor_size"])
- # update the positions on status bar
- self.app.ui.position_label.setText(" X: %.4f "
- "Y: %.4f" % (curr_pos[0], curr_pos[1]))
if self.cursor_pos is None:
self.cursor_pos = (0, 0)
self.app.dx = curr_pos[0] - float(self.cursor_pos[0])
self.app.dy = curr_pos[1] - float(self.cursor_pos[1])
- self.app.ui.rel_position_label.setText("Dx: %.4f Dy: "
- "%.4f " % (self.app.dx, self.app.dy))
+
+ # # update the positions on status bar
+ self.app.ui.position_label.setText(" X: %.4f "
+ "Y: %.4f " % (curr_pos[0], curr_pos[1]))
+ # self.app.ui.rel_position_label.setText("Dx: %.4f Dy: "
+ # "%.4f " % (self.app.dx, self.app.dy))
+
+ units = self.app.defaults["units"].lower()
+ self.app.plotcanvas.text_hud.text = \
+ 'Dx:\t{:<.4f} [{:s}]\nDy:\t{:<.4f} [{:s}]\n\nX: \t{:<.4f} [{:s}]\nY: \t{:<.4f} [{:s}]'.format(
+ self.app.dx, units, self.app.dy, units, curr_pos[0], units, curr_pos[1], units)
# draw the utility geometry
if self.first_click:
@@ -1468,7 +1474,7 @@ class ToolCopperThieving(FlatCAMTool):
obj_name, separatpr, obj_extension = self.sm_object.options['name'].rpartition('.')
name = '%s_%s.%s' % (obj_name, 'plating_mask', obj_extension)
- self.app.new_object('gerber', name, obj_init, autoselected=False)
+ self.app.app_obj.new_object('gerber', name, obj_init, autoselected=False)
# Register recent file
self.app.file_opened.emit("gerber", name)
diff --git a/AppTools/ToolCorners.py b/AppTools/ToolCorners.py
new file mode 100644
index 00000000..e91652b2
--- /dev/null
+++ b/AppTools/ToolCorners.py
@@ -0,0 +1,440 @@
+# ##########################################################
+# FlatCAM: 2D Post-processing for Manufacturing #
+# File Author: Marius Adrian Stanciu (c) #
+# Date: 5/17/2020 #
+# MIT Licence #
+# ##########################################################
+
+from PyQt5 import QtWidgets, QtCore
+
+from AppTool import AppTool
+from AppGUI.GUIElements import FCDoubleSpinner, FCCheckBox, FCComboBox, FCButton
+
+from shapely.geometry import MultiPolygon, LineString
+
+from copy import deepcopy
+import logging
+
+import gettext
+import AppTranslation as fcTranslate
+import builtins
+
+fcTranslate.apply_language('strings')
+if '_' not in builtins.__dict__:
+ _ = gettext.gettext
+
+log = logging.getLogger('base')
+
+
+class ToolCorners(AppTool):
+
+ toolName = _("Corner Markers Tool")
+
+ def __init__(self, app):
+ AppTool.__init__(self, app)
+
+ self.app = app
+ self.canvas = self.app.plotcanvas
+
+ self.decimals = self.app.decimals
+ self.units = ''
+
+ # ## Title
+ title_label = QtWidgets.QLabel("%s" % self.toolName)
+ title_label.setStyleSheet("""
+ QLabel
+ {
+ font-size: 16px;
+ font-weight: bold;
+ }
+ """)
+ self.layout.addWidget(title_label)
+ self.layout.addWidget(QtWidgets.QLabel(''))
+
+ # Gerber object #
+ self.object_label = QtWidgets.QLabel('%s:' % _("GERBER"))
+ self.object_label.setToolTip(
+ _("The Gerber object that to which will be added corner markers.")
+ )
+ self.object_combo = FCComboBox()
+ self.object_combo.setModel(self.app.collection)
+ self.object_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
+ self.object_combo.is_last = True
+ self.object_combo.obj_type = "Gerber"
+
+ self.layout.addWidget(self.object_label)
+ self.layout.addWidget(self.object_combo)
+
+ separator_line = QtWidgets.QFrame()
+ separator_line.setFrameShape(QtWidgets.QFrame.HLine)
+ separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
+ self.layout.addWidget(separator_line)
+
+ self.points_label = QtWidgets.QLabel('%s:' % _('Locations'))
+ self.points_label.setToolTip(
+ _("Locations where to place corner markers.")
+ )
+ self.layout.addWidget(self.points_label)
+
+ # BOTTOM LEFT
+ self.bl_cb = FCCheckBox(_("Bottom Left"))
+ self.layout.addWidget(self.bl_cb)
+
+ # BOTTOM RIGHT
+ self.br_cb = FCCheckBox(_("Bottom Right"))
+ self.layout.addWidget(self.br_cb)
+
+ # TOP LEFT
+ self.tl_cb = FCCheckBox(_("Top Left"))
+ self.layout.addWidget(self.tl_cb)
+
+ # TOP RIGHT
+ self.tr_cb = FCCheckBox(_("Top Right"))
+ self.layout.addWidget(self.tr_cb)
+
+ separator_line = QtWidgets.QFrame()
+ separator_line.setFrameShape(QtWidgets.QFrame.HLine)
+ separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
+ self.layout.addWidget(separator_line)
+
+ # Toggle ALL
+ self.toggle_all_cb = FCCheckBox(_("Toggle ALL"))
+ self.layout.addWidget(self.toggle_all_cb)
+
+ separator_line = QtWidgets.QFrame()
+ separator_line.setFrameShape(QtWidgets.QFrame.HLine)
+ separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
+ self.layout.addWidget(separator_line)
+
+ # ## Grid Layout
+ grid_lay = QtWidgets.QGridLayout()
+ self.layout.addLayout(grid_lay)
+ grid_lay.setColumnStretch(0, 0)
+ grid_lay.setColumnStretch(1, 1)
+
+ self.param_label = QtWidgets.QLabel('%s:' % _('Parameters'))
+ self.param_label.setToolTip(
+ _("Parameters used for this tool.")
+ )
+ grid_lay.addWidget(self.param_label, 0, 0, 1, 2)
+
+ # Thickness #
+ self.thick_label = QtWidgets.QLabel('%s:' % _("Thickness"))
+ self.thick_label.setToolTip(
+ _("The thickness of the line that makes the corner marker.")
+ )
+ self.thick_entry = FCDoubleSpinner(callback=self.confirmation_message)
+ self.thick_entry.set_range(0.0000, 9.9999)
+ self.thick_entry.set_precision(self.decimals)
+ self.thick_entry.setWrapping(True)
+ self.thick_entry.setSingleStep(10 ** -self.decimals)
+
+ grid_lay.addWidget(self.thick_label, 1, 0)
+ grid_lay.addWidget(self.thick_entry, 1, 1)
+
+ # Length #
+ self.l_label = QtWidgets.QLabel('%s:' % _("Length"))
+ self.l_label.setToolTip(
+ _("The length of the line that makes the corner marker.")
+ )
+ self.l_entry = FCDoubleSpinner(callback=self.confirmation_message)
+ self.l_entry.set_range(-9999.9999, 9999.9999)
+ self.l_entry.set_precision(self.decimals)
+ self.l_entry.setSingleStep(10 ** -self.decimals)
+
+ grid_lay.addWidget(self.l_label, 2, 0)
+ grid_lay.addWidget(self.l_entry, 2, 1)
+
+ # Margin #
+ self.margin_label = QtWidgets.QLabel('%s:' % _("Margin"))
+ self.margin_label.setToolTip(
+ _("Bounding box margin.")
+ )
+ self.margin_entry = FCDoubleSpinner(callback=self.confirmation_message)
+ self.margin_entry.set_range(-9999.9999, 9999.9999)
+ self.margin_entry.set_precision(self.decimals)
+ self.margin_entry.setSingleStep(0.1)
+
+ grid_lay.addWidget(self.margin_label, 3, 0)
+ grid_lay.addWidget(self.margin_entry, 3, 1)
+
+ separator_line_2 = QtWidgets.QFrame()
+ separator_line_2.setFrameShape(QtWidgets.QFrame.HLine)
+ separator_line_2.setFrameShadow(QtWidgets.QFrame.Sunken)
+ grid_lay.addWidget(separator_line_2, 4, 0, 1, 2)
+
+ # ## Insert Corner Marker
+ self.add_marker_button = FCButton(_("Add Marker"))
+ self.add_marker_button.setToolTip(
+ _("Will add corner markers to the selected Gerber file.")
+ )
+ self.add_marker_button.setStyleSheet("""
+ QPushButton
+ {
+ font-weight: bold;
+ }
+ """)
+ grid_lay.addWidget(self.add_marker_button, 11, 0, 1, 2)
+
+ self.layout.addStretch()
+
+ # ## Reset Tool
+ self.reset_button = QtWidgets.QPushButton(_("Reset Tool"))
+ self.reset_button.setToolTip(
+ _("Will reset the tool parameters.")
+ )
+ self.reset_button.setStyleSheet("""
+ QPushButton
+ {
+ font-weight: bold;
+ }
+ """)
+ self.layout.addWidget(self.reset_button)
+
+ # Objects involved in Copper thieving
+ self.grb_object = None
+
+ # store the flattened geometry here:
+ self.flat_geometry = []
+
+ # Tool properties
+ self.fid_dia = None
+
+ self.grb_steps_per_circle = self.app.defaults["gerber_circle_steps"]
+
+ # SIGNALS
+ self.add_marker_button.clicked.connect(self.add_markers)
+ self.toggle_all_cb.toggled.connect(self.on_toggle_all)
+
+ def run(self, toggle=True):
+ self.app.defaults.report_usage("ToolCorners()")
+
+ if toggle:
+ # if the splitter is hidden, display it, else hide it but only if the current widget is the same
+ if self.app.ui.splitter.sizes()[0] == 0:
+ self.app.ui.splitter.setSizes([1, 1])
+ else:
+ try:
+ if self.app.ui.tool_scroll_area.widget().objectName() == self.toolName:
+ # if tab is populated with the tool but it does not have the focus, focus on it
+ if not self.app.ui.notebook.currentWidget() is self.app.ui.tool_tab:
+ # focus on Tool Tab
+ self.app.ui.notebook.setCurrentWidget(self.app.ui.tool_tab)
+ else:
+ self.app.ui.splitter.setSizes([0, 1])
+ except AttributeError:
+ pass
+ else:
+ if self.app.ui.splitter.sizes()[0] == 0:
+ self.app.ui.splitter.setSizes([1, 1])
+
+ AppTool.run(self)
+
+ self.set_tool_ui()
+
+ self.app.ui.notebook.setTabText(2, _("Corners Tool"))
+
+ def install(self, icon=None, separator=None, **kwargs):
+ AppTool.install(self, icon, separator, shortcut='Alt+M', **kwargs)
+
+ def set_tool_ui(self):
+ self.units = self.app.defaults['units']
+ self.thick_entry.set_value(self.app.defaults["tools_corners_thickness"])
+ self.l_entry.set_value(float(self.app.defaults["tools_corners_length"]))
+ self.margin_entry.set_value(float(self.app.defaults["tools_corners_margin"]))
+ self.toggle_all_cb.set_value(False)
+
+ def on_toggle_all(self, val):
+ self.bl_cb.set_value(val)
+ self.br_cb.set_value(val)
+ self.tl_cb.set_value(val)
+ self.tr_cb.set_value(val)
+
+ def add_markers(self):
+ self.app.call_source = "corners_tool"
+ tl_state = self.tl_cb.get_value()
+ tr_state = self.tr_cb.get_value()
+ bl_state = self.bl_cb.get_value()
+ br_state = self.br_cb.get_value()
+
+ # get the Gerber object on which the corner marker will be inserted
+ selection_index = self.object_combo.currentIndex()
+ model_index = self.app.collection.index(selection_index, 0, self.object_combo.rootModelIndex())
+
+ try:
+ self.grb_object = model_index.internalPointer().obj
+ except Exception as e:
+ log.debug("ToolCorners.add_markers() --> %s" % str(e))
+ self.app.inform.emit('[WARNING_NOTCL] %s' % _("There is no Gerber object loaded ..."))
+ return
+
+ xmin, ymin, xmax, ymax = self.grb_object.bounds()
+ points = {}
+ if tl_state:
+ points['tl'] = (xmin, ymax)
+ if tr_state:
+ points['tr'] = (xmax, ymax)
+ if bl_state:
+ points['bl'] = (xmin, ymin)
+ if br_state:
+ points['br'] = (xmax, ymin)
+
+ self.add_corners_geo(points, g_obj=self.grb_object)
+
+ self.grb_object.source_file = self.app.export_gerber(obj_name=self.grb_object.options['name'],
+ filename=None,
+ local_use=self.grb_object, use_thread=False)
+ self.on_exit()
+
+ def add_corners_geo(self, points_storage, g_obj):
+ """
+ Add geometry to the solid_geometry of the copper Gerber object
+
+ :param points_storage: a dictionary holding the points where to add corners
+ :param g_obj: the Gerber object where to add the geometry
+ :return: None
+ """
+
+ line_thickness = self.thick_entry.get_value()
+ line_length = self.l_entry.get_value()
+ margin = self.margin_entry.get_value()
+
+ geo_list = []
+
+ if not points_storage:
+ self.app.inform.emit("[ERROR_NOTCL] %s." % _("Please select at least a location"))
+ return
+
+ for key in points_storage:
+ if key == 'tl':
+ pt = points_storage[key]
+ x = pt[0] - margin - line_thickness / 2.0
+ y = pt[1] + margin + line_thickness / 2.0
+ line_geo_hor = LineString([
+ (x, y), (x + line_length, y)
+ ])
+ line_geo_vert = LineString([
+ (x, y), (x, y - line_length)
+ ])
+ geo_list.append(line_geo_hor)
+ geo_list.append(line_geo_vert)
+ if key == 'tr':
+ pt = points_storage[key]
+ x = pt[0] + margin + line_thickness / 2.0
+ y = pt[1] + margin + line_thickness / 2.0
+ line_geo_hor = LineString([
+ (x, y), (x - line_length, y)
+ ])
+ line_geo_vert = LineString([
+ (x, y), (x, y - line_length)
+ ])
+ geo_list.append(line_geo_hor)
+ geo_list.append(line_geo_vert)
+ if key == 'bl':
+ pt = points_storage[key]
+ x = pt[0] - margin - line_thickness / 2.0
+ y = pt[1] - margin - line_thickness / 2.0
+ line_geo_hor = LineString([
+ (x, y), (x + line_length, y)
+ ])
+ line_geo_vert = LineString([
+ (x, y), (x, y + line_length)
+ ])
+ geo_list.append(line_geo_hor)
+ geo_list.append(line_geo_vert)
+ if key == 'br':
+ pt = points_storage[key]
+ x = pt[0] + margin + line_thickness / 2.0
+ y = pt[1] - margin - line_thickness / 2.0
+ line_geo_hor = LineString([
+ (x, y), (x - line_length, y)
+ ])
+ line_geo_vert = LineString([
+ (x, y), (x, y + line_length)
+ ])
+ geo_list.append(line_geo_hor)
+ geo_list.append(line_geo_vert)
+
+ aperture_found = None
+ for ap_id, ap_val in g_obj.apertures.items():
+ if ap_val['type'] == 'C' and ap_val['size'] == line_thickness:
+ aperture_found = ap_id
+ break
+
+ geo_buff_list = []
+ if aperture_found:
+ for geo in geo_list:
+ geo_buff = geo.buffer(line_thickness / 2.0, resolution=self.grb_steps_per_circle, join_style=2)
+ geo_buff_list.append(geo_buff)
+
+ dict_el = {}
+ dict_el['follow'] = geo
+ dict_el['solid'] = geo_buff
+ g_obj.apertures[aperture_found]['geometry'].append(deepcopy(dict_el))
+ else:
+ ap_keys = list(g_obj.apertures.keys())
+ if ap_keys:
+ new_apid = str(int(max(ap_keys)) + 1)
+ else:
+ new_apid = '10'
+
+ g_obj.apertures[new_apid] = {}
+ g_obj.apertures[new_apid]['type'] = 'C'
+ g_obj.apertures[new_apid]['size'] = line_thickness
+ g_obj.apertures[new_apid]['geometry'] = []
+
+ for geo in geo_list:
+ geo_buff = geo.buffer(line_thickness / 2.0, resolution=self.grb_steps_per_circle, join_style=3)
+ geo_buff_list.append(geo_buff)
+
+ dict_el = {}
+ dict_el['follow'] = geo
+ dict_el['solid'] = geo_buff
+ g_obj.apertures[new_apid]['geometry'].append(deepcopy(dict_el))
+
+ s_list = []
+ if g_obj.solid_geometry:
+ try:
+ for poly in g_obj.solid_geometry:
+ s_list.append(poly)
+ except TypeError:
+ s_list.append(g_obj.solid_geometry)
+
+ geo_buff_list = MultiPolygon(geo_buff_list)
+ geo_buff_list = geo_buff_list.buffer(0)
+ for poly in geo_buff_list:
+ s_list.append(poly)
+ g_obj.solid_geometry = MultiPolygon(s_list)
+
+ def replot(self, obj, run_thread=True):
+ def worker_task():
+ with self.app.proc_container.new('%s...' % _("Plotting")):
+ obj.plot()
+
+ if run_thread:
+ self.app.worker_task.emit({'fcn': worker_task, 'params': []})
+ else:
+ worker_task()
+
+ def on_exit(self):
+ # plot the object
+ try:
+ self.replot(obj=self.grb_object)
+ except (AttributeError, TypeError):
+ return
+
+ # update the bounding box values
+ try:
+ a, b, c, d = self.grb_object.bounds()
+ self.grb_object.options['xmin'] = a
+ self.grb_object.options['ymin'] = b
+ self.grb_object.options['xmax'] = c
+ self.grb_object.options['ymax'] = d
+ except Exception as e:
+ log.debug("ToolCorners.on_exit() copper_obj bounds error --> %s" % str(e))
+
+ # reset the variables
+ self.grb_object = None
+
+ self.app.call_source = "app"
+ self.app.inform.emit('[success] %s' % _("Corners Tool exit."))
diff --git a/flatcamTools/ToolCutOut.py b/AppTools/ToolCutOut.py
similarity index 97%
rename from flatcamTools/ToolCutOut.py
rename to AppTools/ToolCutOut.py
index 67295b90..97a31975 100644
--- a/flatcamTools/ToolCutOut.py
+++ b/AppTools/ToolCutOut.py
@@ -6,8 +6,8 @@
# ##########################################################
from PyQt5 import QtWidgets, QtGui, QtCore
-from FlatCAMTool import FlatCAMTool
-from flatcamGUI.GUIElements import FCDoubleSpinner, FCCheckBox, RadioSet, FCComboBox, OptionalInputSection, FCButton
+from AppTool import AppTool
+from AppGUI.GUIElements import FCDoubleSpinner, FCCheckBox, RadioSet, FCComboBox, OptionalInputSection, FCButton
from shapely.geometry import box, MultiPolygon, Polygon, LineString, LinearRing
from shapely.ops import cascaded_union, unary_union
@@ -20,7 +20,7 @@ from copy import deepcopy
import math
import logging
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -36,12 +36,12 @@ else:
machinist_setting = 0
-class CutOut(FlatCAMTool):
+class CutOut(AppTool):
toolName = _("Cutout PCB")
def __init__(self, app):
- FlatCAMTool.__init__(self, app)
+ AppTool.__init__(self, app)
self.app = app
self.canvas = app.plotcanvas
@@ -434,13 +434,13 @@ class CutOut(FlatCAMTool):
if self.app.ui.splitter.sizes()[0] == 0:
self.app.ui.splitter.setSizes([1, 1])
- FlatCAMTool.run(self)
+ AppTool.run(self)
self.set_tool_ui()
self.app.ui.notebook.setTabText(2, _("Cutout Tool"))
def install(self, icon=None, separator=None, **kwargs):
- FlatCAMTool.install(self, icon, separator, shortcut='Alt+X', **kwargs)
+ AppTool.install(self, icon, separator, shortcut='Alt+X', **kwargs)
def set_tool_ui(self):
self.reset_fields()
@@ -501,6 +501,13 @@ class CutOut(FlatCAMTool):
"tools_paintmethod": self.app.defaults["tools_paintmethod"],
"tools_pathconnect": self.app.defaults["tools_pathconnect"],
"tools_paintcontour": self.app.defaults["tools_paintcontour"],
+
+ # Isolation Tool
+ "tools_iso_passes": self.app.defaults["tools_iso_passes"],
+ "tools_iso_overlap": self.app.defaults["tools_iso_overlap"],
+ "tools_iso_milling_type": self.app.defaults["tools_iso_milling_type"],
+ "tools_iso_follow": self.app.defaults["tools_iso_follow"],
+ "tools_iso_isotype": self.app.defaults["tools_iso_isotype"],
})
def on_freeform_cutout(self):
@@ -700,7 +707,7 @@ class CutOut(FlatCAMTool):
geo_obj.tools[1]['data']['depthperpass'] = self.maxdepth_entry.get_value()
outname = cutout_obj.options["name"] + "_cutout"
- self.app.new_object('geometry', outname, geo_init)
+ self.app.app_obj.new_object('geometry', outname, geo_init)
cutout_obj.plot()
self.app.inform.emit('[success] %s' % _("Any form CutOut operation finished."))
@@ -896,7 +903,7 @@ class CutOut(FlatCAMTool):
geo_obj.tools[1]['data']['depthperpass'] = self.maxdepth_entry.get_value()
outname = cutout_obj.options["name"] + "_cutout"
- ret = self.app.new_object('geometry', outname, geo_init)
+ ret = self.app.app_obj.new_object('geometry', outname, geo_init)
if ret != 'fail':
# cutout_obj.plot()
@@ -912,7 +919,7 @@ class CutOut(FlatCAMTool):
if 0 in {self.cutting_dia}:
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."
+ return
self.cutting_gapsize = float(self.gapsize.get_value())
@@ -923,7 +930,7 @@ class CutOut(FlatCAMTool):
except Exception as e:
log.debug("CutOut.on_manual_cutout() --> %s" % str(e))
self.app.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Could not retrieve Geometry object"), name))
- return "Could not retrieve object: %s" % name
+ return
if self.app.is_legacy is False:
self.app.plotcanvas.graph_event_disconnect('key_press', self.app.ui.keyPressEvent)
@@ -1056,7 +1063,7 @@ class CutOut(FlatCAMTool):
geo_obj.tools[1]['data']['depthperpass'] = self.maxdepth_entry.get_value()
outname = cutout_obj.options["name"] + "_cutout"
- self.app.new_object('geometry', outname, geo_init)
+ self.app.app_obj.new_object('geometry', outname, geo_init)
def cutting_geo(self, pos):
self.cutting_dia = float(self.dia.get_value())
@@ -1306,10 +1313,10 @@ class CutOut(FlatCAMTool):
This only operates on the paths in the original geometry,
i.e. it converts polygons into paths.
- :param x0: x coord for lower left vertice of the polygon.
- :param y0: y coord for lower left vertice of the polygon.
- :param x1: x coord for upper right vertice of the polygon.
- :param y1: y coord for upper right vertice of the polygon.
+ :param x0: x coord for lower left vertex of the polygon.
+ :param y0: y coord for lower left vertex of the polygon.
+ :param x1: x coord for upper right vertex of the polygon.
+ :param y1: y coord for upper right vertex of the polygon.
:param solid_geo: Geometry from which to substract. If none, use the solid_geomety property of the object
:return: none
@@ -1367,6 +1374,7 @@ def flatten(geometry):
def recursive_bounds(geometry):
"""
+ Return the bounds of the biggest bounding box in geometry, one that include all.
:param geometry: a iterable object that holds geometry
:return: Returns coordinates of rectangular bounds of geometry: (xmin, ymin, xmax, ymax).
diff --git a/flatcamTools/ToolDblSided.py b/AppTools/ToolDblSided.py
similarity index 98%
rename from flatcamTools/ToolDblSided.py
rename to AppTools/ToolDblSided.py
index 2aed9a3f..23bb781f 100644
--- a/flatcamTools/ToolDblSided.py
+++ b/AppTools/ToolDblSided.py
@@ -1,8 +1,8 @@
from PyQt5 import QtWidgets, QtCore
-from FlatCAMTool import FlatCAMTool
-from flatcamGUI.GUIElements import RadioSet, FCDoubleSpinner, EvalEntry, FCEntry, FCButton, FCComboBox
+from AppTool import AppTool
+from AppGUI.GUIElements import RadioSet, FCDoubleSpinner, EvalEntry, FCEntry, FCButton, FCComboBox
from numpy import Inf
@@ -11,7 +11,7 @@ from shapely import affinity
import logging
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -21,12 +21,12 @@ if '_' not in builtins.__dict__:
log = logging.getLogger('base')
-class DblSidedTool(FlatCAMTool):
+class DblSidedTool(AppTool):
toolName = _("2-Sided PCB")
def __init__(self, app):
- FlatCAMTool.__init__(self, app)
+ AppTool.__init__(self, app)
self.decimals = self.app.decimals
# ## Title
@@ -511,7 +511,7 @@ class DblSidedTool(FlatCAMTool):
self.drill_values = ""
def install(self, icon=None, separator=None, **kwargs):
- FlatCAMTool.install(self, icon, separator, shortcut='Alt+D', **kwargs)
+ AppTool.install(self, icon, separator, shortcut='Alt+D', **kwargs)
def run(self, toggle=True):
self.app.defaults.report_usage("Tool2Sided()")
@@ -535,7 +535,7 @@ class DblSidedTool(FlatCAMTool):
if self.app.ui.splitter.sizes()[0] == 0:
self.app.ui.splitter.setSizes([1, 1])
- FlatCAMTool.run(self)
+ AppTool.run(self)
self.set_tool_ui()
self.app.ui.notebook.setTabText(2, _("2-Sided Tool"))
@@ -643,7 +643,7 @@ class DblSidedTool(FlatCAMTool):
obj_inst.source_file = app_inst.export_excellon(obj_name=obj_inst.options['name'], local_use=obj_inst,
filename=None, use_thread=False)
- self.app.new_object("excellon", "Alignment Drills", obj_init)
+ self.app.app_obj.new_object("excellon", "Alignment Drills", obj_init)
self.drill_values = ''
self.app.inform.emit('[success] %s' % _("Excellon object with alignment drills created..."))
@@ -686,7 +686,7 @@ class DblSidedTool(FlatCAMTool):
py = 0.5 * (ymin + ymax)
fcobj.mirror(axis, [px, py])
- self.app.object_changed.emit(fcobj)
+ self.app.app_obj.object_changed.emit(fcobj)
fcobj.plot()
self.app.inform.emit('[success] Gerber %s %s...' % (str(fcobj.options['name']), _("was mirrored")))
@@ -730,7 +730,7 @@ class DblSidedTool(FlatCAMTool):
py = 0.5 * (ymin + ymax)
fcobj.mirror(axis, [px, py])
- self.app.object_changed.emit(fcobj)
+ self.app.app_obj.object_changed.emit(fcobj)
fcobj.plot()
self.app.inform.emit('[success] Excellon %s %s...' % (str(fcobj.options['name']), _("was mirrored")))
@@ -767,7 +767,7 @@ class DblSidedTool(FlatCAMTool):
py = 0.5 * (ymin + ymax)
fcobj.mirror(axis, [px, py])
- self.app.object_changed.emit(fcobj)
+ self.app.app_obj.object_changed.emit(fcobj)
fcobj.plot()
self.app.inform.emit('[success] Geometry %s %s...' % (str(fcobj.options['name']), _("was mirrored")))
diff --git a/flatcamTools/ToolDistance.py b/AppTools/ToolDistance.py
similarity index 91%
rename from flatcamTools/ToolDistance.py
rename to AppTools/ToolDistance.py
index ea62c64e..6798ae8e 100644
--- a/flatcamTools/ToolDistance.py
+++ b/AppTools/ToolDistance.py
@@ -7,15 +7,15 @@
from PyQt5 import QtWidgets, QtCore
-from FlatCAMTool import FlatCAMTool
-from flatcamGUI.VisPyVisuals import *
-from flatcamGUI.GUIElements import FCEntry, FCButton, FCCheckBox
+from AppTool import AppTool
+from AppGUI.VisPyVisuals import *
+from AppGUI.GUIElements import FCEntry, FCButton, FCCheckBox
from shapely.geometry import Point, MultiLineString, Polygon
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
from camlib import FlatCAMRTreeStorage
-from flatcamEditors.FlatCAMGeoEditor import DrawToolShape
+from AppEditors.FlatCAMGeoEditor import DrawToolShape
from copy import copy
import math
@@ -30,12 +30,12 @@ if '_' not in builtins.__dict__:
log = logging.getLogger('base')
-class Distance(FlatCAMTool):
+class Distance(AppTool):
toolName = _("Distance Tool")
def __init__(self, app):
- FlatCAMTool.__init__(self, app)
+ AppTool.__init__(self, app)
self.app = app
self.decimals = self.app.decimals
@@ -170,11 +170,13 @@ class Distance(FlatCAMTool):
# store here if the snap button was clicked
self.snap_toggled = None
+ self.mouse_is_dragging = False
+
# VisPy visuals
if self.app.is_legacy is False:
self.sel_shapes = ShapeCollection(parent=self.app.plotcanvas.view.scene, layers=1)
else:
- from flatcamGUI.PlotCanvasLegacy import ShapeCollectionLegacy
+ from AppGUI.PlotCanvasLegacy import ShapeCollectionLegacy
self.sel_shapes = ShapeCollectionLegacy(obj=self, app=self.app, name='measurement')
self.measure_btn.clicked.connect(self.activate_measure_tool)
@@ -206,13 +208,13 @@ class Distance(FlatCAMTool):
self.deactivate_measure_tool()
def install(self, icon=None, separator=None, **kwargs):
- FlatCAMTool.install(self, icon, separator, shortcut='Ctrl+M', **kwargs)
+ AppTool.install(self, icon, separator, shortcut='Ctrl+M', **kwargs)
def set_tool_ui(self):
- # Remove anything else in the GUI
+ # Remove anything else in the AppGUI
self.app.ui.tool_scroll_area.takeWidget()
- # Put ourselves in the GUI
+ # Put ourselves in the AppGUI
self.app.ui.tool_scroll_area.setWidget(self)
# Switch notebook to tool page
@@ -392,12 +394,16 @@ class Distance(FlatCAMTool):
# are used for panning on the canvas
log.debug("Distance Tool --> mouse click release")
- if event.button == 1:
- if self.app.is_legacy is False:
- event_pos = event.pos
- else:
- event_pos = (event.xdata, event.ydata)
+ if self.app.is_legacy is False:
+ event_pos = event.pos
+ right_button = 2
+ event_is_dragging = self.mouse_is_dragging
+ else:
+ event_pos = (event.xdata, event.ydata)
+ right_button = 3
+ event_is_dragging = self.app.plotcanvas.is_dragging
+ if event.button == 1:
pos_canvas = self.canvas.translate_coords(event_pos)
if self.snap_center_cb.get_value() is False:
@@ -469,15 +475,18 @@ class Distance(FlatCAMTool):
# Reset here the relative coordinates so there is a new reference on the click position
if self.rel_point1 is None:
- self.app.ui.rel_position_label.setText("Dx: %.*f Dy: "
- "%.*f " %
- (self.decimals, 0.0, self.decimals, 0.0))
+ # self.app.ui.rel_position_label.setText("Dx: %.*f Dy: "
+ # "%.*f " %
+ # (self.decimals, 0.0, self.decimals, 0.0))
self.rel_point1 = pos
else:
self.rel_point2 = copy(self.rel_point1)
self.rel_point1 = pos
self.calculate_distance(pos=pos)
+ elif event.button == right_button and event_is_dragging is False:
+ self.deactivate_measure_tool()
+ self.app.inform.emit(_("Distance Tool cancelled."))
def calculate_distance(self, pos):
if len(self.points) == 1:
@@ -510,11 +519,11 @@ class Distance(FlatCAMTool):
pass
self.total_distance_entry.set_value('%.*f' % (self.decimals, abs(d)))
- self.app.ui.rel_position_label.setText(
- "Dx: {} Dy: {} ".format(
- '%.*f' % (self.decimals, pos[0]), '%.*f' % (self.decimals, pos[1])
- )
- )
+ # self.app.ui.rel_position_label.setText(
+ # "Dx: {} Dy: {} ".format(
+ # '%.*f' % (self.decimals, pos[0]), '%.*f' % (self.decimals, pos[1])
+ # )
+ # )
self.tool_done = True
self.deactivate_measure_tool()
@@ -522,6 +531,7 @@ class Distance(FlatCAMTool):
try: # May fail in case mouse not within axes
if self.app.is_legacy is False:
event_pos = event.pos
+ self.mouse_is_dragging = event.is_dragging
else:
event_pos = (event.xdata, event.ydata)
@@ -550,6 +560,11 @@ class Distance(FlatCAMTool):
)
)
+ units = self.app.defaults["units"].lower()
+ self.app.plotcanvas.text_hud.text = \
+ 'Dx:\t{:<.4f} [{:s}]\nDy:\t{:<.4f} [{:s}]\n\nX: \t{:<.4f} [{:s}]\nY: \t{:<.4f} [{:s}]'.format(
+ 0.0000, units, 0.0000, units, pos[0], units, pos[1], units)
+
if self.rel_point1 is not None:
dx = pos[0] - float(self.rel_point1[0])
dy = pos[1] - float(self.rel_point1[1])
@@ -557,11 +572,11 @@ class Distance(FlatCAMTool):
dx = pos[0]
dy = pos[1]
- self.app.ui.rel_position_label.setText(
- "Dx: {} Dy: {} ".format(
- '%.*f' % (self.decimals, dx), '%.*f' % (self.decimals, dy)
- )
- )
+ # self.app.ui.rel_position_label.setText(
+ # "Dx: {} Dy: {} ".format(
+ # '%.*f' % (self.decimals, dx), '%.*f' % (self.decimals, dy)
+ # )
+ # )
# update utility geometry
if len(self.points) == 1:
@@ -578,7 +593,7 @@ class Distance(FlatCAMTool):
except Exception as e:
log.debug("Distance.on_mouse_move_meas() --> %s" % str(e))
self.app.ui.position_label.setText("")
- self.app.ui.rel_position_label.setText("")
+ # self.app.ui.rel_position_label.setText("")
def utility_geometry(self, pos):
# first delete old shape
diff --git a/flatcamTools/ToolDistanceMin.py b/AppTools/ToolDistanceMin.py
similarity index 97%
rename from flatcamTools/ToolDistanceMin.py
rename to AppTools/ToolDistanceMin.py
index dc4369ea..0e932863 100644
--- a/flatcamTools/ToolDistanceMin.py
+++ b/AppTools/ToolDistanceMin.py
@@ -6,9 +6,8 @@
# ##########################################################
from PyQt5 import QtWidgets, QtCore
-from FlatCAMTool import FlatCAMTool
-from flatcamGUI.VisPyVisuals import *
-from flatcamGUI.GUIElements import FCEntry
+from AppTool import AppTool
+from AppGUI.GUIElements import FCEntry
from shapely.ops import nearest_points
from shapely.geometry import Point, MultiPolygon
@@ -17,7 +16,7 @@ from shapely.ops import cascaded_union
import math
import logging
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -27,12 +26,12 @@ if '_' not in builtins.__dict__:
log = logging.getLogger('base')
-class DistanceMin(FlatCAMTool):
+class DistanceMin(AppTool):
toolName = _("Minimum Distance Tool")
def __init__(self, app):
- FlatCAMTool.__init__(self, app)
+ AppTool.__init__(self, app)
self.app = app
self.canvas = self.app.plotcanvas
@@ -155,13 +154,13 @@ class DistanceMin(FlatCAMTool):
_("Select two objects and no more, to measure the distance between them ..."))
def install(self, icon=None, separator=None, **kwargs):
- FlatCAMTool.install(self, icon, separator, shortcut='Shift+M', **kwargs)
+ AppTool.install(self, icon, separator, shortcut='Shift+M', **kwargs)
def set_tool_ui(self):
- # Remove anything else in the GUI
+ # Remove anything else in the AppGUI
self.app.ui.tool_scroll_area.takeWidget()
- # Put oneself in the GUI
+ # Put oneself in the AppGUI
self.app.ui.tool_scroll_area.setWidget(self)
# Switch notebook to tool page
diff --git a/AppTools/ToolEtchCompensation.py b/AppTools/ToolEtchCompensation.py
new file mode 100644
index 00000000..9318ca39
--- /dev/null
+++ b/AppTools/ToolEtchCompensation.py
@@ -0,0 +1,449 @@
+# ##########################################################
+# FlatCAM: 2D Post-processing for Manufacturing #
+# File Author: Marius Adrian Stanciu (c) #
+# Date: 2/14/2020 #
+# MIT Licence #
+# ##########################################################
+
+from PyQt5 import QtWidgets, QtCore
+
+from AppTool import AppTool
+from AppGUI.GUIElements import FCButton, FCDoubleSpinner, RadioSet, FCComboBox, NumericalEvalEntry, FCEntry
+
+from shapely.ops import unary_union
+
+from copy import deepcopy
+import math
+
+import logging
+import gettext
+import AppTranslation as fcTranslate
+import builtins
+
+fcTranslate.apply_language('strings')
+if '_' not in builtins.__dict__:
+ _ = gettext.gettext
+
+log = logging.getLogger('base')
+
+
+class ToolEtchCompensation(AppTool):
+
+ toolName = _("Etch Compensation Tool")
+
+ def __init__(self, app):
+ self.app = app
+ self.decimals = self.app.decimals
+
+ AppTool.__init__(self, app)
+
+ self.tools_frame = QtWidgets.QFrame()
+ self.tools_frame.setContentsMargins(0, 0, 0, 0)
+ self.layout.addWidget(self.tools_frame)
+ self.tools_box = QtWidgets.QVBoxLayout()
+ self.tools_box.setContentsMargins(0, 0, 0, 0)
+ self.tools_frame.setLayout(self.tools_box)
+
+ # Title
+ title_label = QtWidgets.QLabel("%s" % self.toolName)
+ title_label.setStyleSheet("""
+ QLabel
+ {
+ font-size: 16px;
+ font-weight: bold;
+ }
+ """)
+ self.tools_box.addWidget(title_label)
+
+ # Grid Layout
+ grid0 = QtWidgets.QGridLayout()
+ grid0.setColumnStretch(0, 0)
+ grid0.setColumnStretch(1, 1)
+ self.tools_box.addLayout(grid0)
+
+ grid0.addWidget(QtWidgets.QLabel(''), 0, 0, 1, 2)
+
+ # Target Gerber Object
+ self.gerber_combo = FCComboBox()
+ self.gerber_combo.setModel(self.app.collection)
+ self.gerber_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
+ self.gerber_combo.is_last = True
+ self.gerber_combo.obj_type = "Gerber"
+
+ self.gerber_label = QtWidgets.QLabel('%s:' % _("GERBER"))
+ self.gerber_label.setToolTip(
+ _("Gerber object that will be inverted.")
+ )
+
+ grid0.addWidget(self.gerber_label, 1, 0, 1, 2)
+ grid0.addWidget(self.gerber_combo, 2, 0, 1, 2)
+
+ grid0.addWidget(QtWidgets.QLabel(""), 3, 0, 1, 2)
+
+ self.util_label = QtWidgets.QLabel("%s:" % _("Utilities"))
+ self.util_label.setToolTip('%s.' % _("Conversion utilities"))
+
+ grid0.addWidget(self.util_label, 4, 0, 1, 2)
+
+ # Oz to um conversion
+ self.oz_um_label = QtWidgets.QLabel('%s:' % _('Oz to Microns'))
+ self.oz_um_label.setToolTip(
+ _("Will convert from oz thickness to microns [um].\n"
+ "Can use formulas with operators: /, *, +, -, %, .\n"
+ "The real numbers use the dot decimals separator.")
+ )
+ grid0.addWidget(self.oz_um_label, 5, 0, 1, 2)
+
+ hlay_1 = QtWidgets.QHBoxLayout()
+
+ self.oz_entry = NumericalEvalEntry(border_color='#0069A9')
+ self.oz_entry.setPlaceholderText(_("Oz value"))
+ self.oz_to_um_entry = FCEntry()
+ self.oz_to_um_entry.setPlaceholderText(_("Microns value"))
+ self.oz_to_um_entry.setReadOnly(True)
+
+ hlay_1.addWidget(self.oz_entry)
+ hlay_1.addWidget(self.oz_to_um_entry)
+ grid0.addLayout(hlay_1, 6, 0, 1, 2)
+
+ # Mils to um conversion
+ self.mils_um_label = QtWidgets.QLabel('%s:' % _('Mils to Microns'))
+ self.mils_um_label.setToolTip(
+ _("Will convert from mils to microns [um].\n"
+ "Can use formulas with operators: /, *, +, -, %, .\n"
+ "The real numbers use the dot decimals separator.")
+ )
+ grid0.addWidget(self.mils_um_label, 7, 0, 1, 2)
+
+ hlay_2 = QtWidgets.QHBoxLayout()
+
+ self.mils_entry = NumericalEvalEntry(border_color='#0069A9')
+ self.mils_entry.setPlaceholderText(_("Mils value"))
+ self.mils_to_um_entry = FCEntry()
+ self.mils_to_um_entry.setPlaceholderText(_("Microns value"))
+ self.mils_to_um_entry.setReadOnly(True)
+
+ hlay_2.addWidget(self.mils_entry)
+ hlay_2.addWidget(self.mils_to_um_entry)
+ grid0.addLayout(hlay_2, 8, 0, 1, 2)
+
+ grid0.addWidget(QtWidgets.QLabel(""), 9, 0, 1, 2)
+
+ self.param_label = QtWidgets.QLabel("%s:" % _("Parameters"))
+ self.param_label.setToolTip('%s.' % _("Parameters for this tool"))
+
+ grid0.addWidget(self.param_label, 10, 0, 1, 2)
+
+ # Thickness
+ self.thick_label = QtWidgets.QLabel('%s:' % _('Copper Thickness'))
+ self.thick_label.setToolTip(
+ _("The thickness of the copper foil.\n"
+ "In microns [um].")
+ )
+ self.thick_entry = FCDoubleSpinner(callback=self.confirmation_message)
+ self.thick_entry.set_precision(self.decimals)
+ self.thick_entry.set_range(0.0000, 9999.9999)
+ self.thick_entry.setObjectName(_("Thickness"))
+
+ grid0.addWidget(self.thick_label, 12, 0)
+ grid0.addWidget(self.thick_entry, 12, 1)
+
+ self.ratio_label = QtWidgets.QLabel('%s:' % _("Ratio"))
+ self.ratio_label.setToolTip(
+ _("The ratio of lateral etch versus depth etch.\n"
+ "Can be:\n"
+ "- custom -> the user will enter a custom value\n"
+ "- preselection -> value which depends on a selection of etchants")
+ )
+ self.ratio_radio = RadioSet([
+ {'label': _('Etch Factor'), 'value': 'factor'},
+ {'label': _('Etchants list'), 'value': 'etch_list'},
+ {'label': _('Manual offset'), 'value': 'manual'}
+ ], orientation='vertical', stretch=False)
+
+ grid0.addWidget(self.ratio_label, 14, 0, 1, 2)
+ grid0.addWidget(self.ratio_radio, 16, 0, 1, 2)
+
+ # Etchants
+ self.etchants_label = QtWidgets.QLabel('%s:' % _('Etchants'))
+ self.etchants_label.setToolTip(
+ _("A list of etchants.")
+ )
+ self.etchants_combo = FCComboBox(callback=self.confirmation_message)
+ self.etchants_combo.setObjectName(_("Etchants"))
+ self.etchants_combo.addItems(["CuCl2", "Fe3Cl"])
+
+ grid0.addWidget(self.etchants_label, 18, 0)
+ grid0.addWidget(self.etchants_combo, 18, 1)
+
+ # Etch Factor
+ self.factor_label = QtWidgets.QLabel('%s:' % _('Etch factor'))
+ self.factor_label.setToolTip(
+ _("The ratio between depth etch and lateral etch .\n"
+ "Accepts real numbers and formulas using the operators: /,*,+,-,%")
+ )
+ self.factor_entry = NumericalEvalEntry(border_color='#0069A9')
+ self.factor_entry.setPlaceholderText(_("Real number or formula"))
+ self.factor_entry.setObjectName(_("Etch_factor"))
+
+ grid0.addWidget(self.factor_label, 19, 0)
+ grid0.addWidget(self.factor_entry, 19, 1)
+
+ # Manual Offset
+ self.offset_label = QtWidgets.QLabel('%s:' % _('Offset'))
+ self.offset_label.setToolTip(
+ _("Value with which to increase or decrease (buffer)\n"
+ "the copper features. In microns [um].")
+ )
+ self.offset_entry = FCDoubleSpinner(callback=self.confirmation_message)
+ self.offset_entry.set_precision(self.decimals)
+ self.offset_entry.set_range(-9999.9999, 9999.9999)
+ self.offset_entry.setObjectName(_("Offset"))
+
+ grid0.addWidget(self.offset_label, 20, 0)
+ grid0.addWidget(self.offset_entry, 20, 1)
+
+ # Hide the Etchants and Etch factor
+ self.etchants_label.hide()
+ self.etchants_combo.hide()
+ self.factor_label.hide()
+ self.factor_entry.hide()
+ self.offset_label.hide()
+ self.offset_entry.hide()
+
+ separator_line = QtWidgets.QFrame()
+ separator_line.setFrameShape(QtWidgets.QFrame.HLine)
+ separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
+ grid0.addWidget(separator_line, 22, 0, 1, 2)
+
+ self.compensate_btn = FCButton(_('Compensate'))
+ self.compensate_btn.setToolTip(
+ _("Will increase the copper features thickness to compensate the lateral etch.")
+ )
+ self.compensate_btn.setStyleSheet("""
+ QPushButton
+ {
+ font-weight: bold;
+ }
+ """)
+ grid0.addWidget(self.compensate_btn, 24, 0, 1, 2)
+
+ self.tools_box.addStretch()
+
+ # ## Reset Tool
+ self.reset_button = QtWidgets.QPushButton(_("Reset Tool"))
+ self.reset_button.setToolTip(
+ _("Will reset the tool parameters.")
+ )
+ self.reset_button.setStyleSheet("""
+ QPushButton
+ {
+ font-weight: bold;
+ }
+ """)
+ self.tools_box.addWidget(self.reset_button)
+
+ self.compensate_btn.clicked.connect(self.on_compensate)
+ self.reset_button.clicked.connect(self.set_tool_ui)
+ self.ratio_radio.activated_custom.connect(self.on_ratio_change)
+
+ self.oz_entry.textChanged.connect(self.on_oz_conversion)
+ self.mils_entry.textChanged.connect(self.on_mils_conversion)
+
+ def install(self, icon=None, separator=None, **kwargs):
+ AppTool.install(self, icon, separator, shortcut='', **kwargs)
+
+ def run(self, toggle=True):
+ self.app.defaults.report_usage("ToolEtchCompensation()")
+ log.debug("ToolEtchCompensation() is running ...")
+
+ if toggle:
+ # if the splitter is hidden, display it, else hide it but only if the current widget is the same
+ if self.app.ui.splitter.sizes()[0] == 0:
+ self.app.ui.splitter.setSizes([1, 1])
+ else:
+ try:
+ if self.app.ui.tool_scroll_area.widget().objectName() == self.toolName:
+ # if tab is populated with the tool but it does not have the focus, focus on it
+ if not self.app.ui.notebook.currentWidget() is self.app.ui.tool_tab:
+ # focus on Tool Tab
+ self.app.ui.notebook.setCurrentWidget(self.app.ui.tool_tab)
+ else:
+ self.app.ui.splitter.setSizes([0, 1])
+ except AttributeError:
+ pass
+ else:
+ if self.app.ui.splitter.sizes()[0] == 0:
+ self.app.ui.splitter.setSizes([1, 1])
+
+ AppTool.run(self)
+ self.set_tool_ui()
+
+ self.app.ui.notebook.setTabText(2, _("Etch Compensation Tool"))
+
+ def set_tool_ui(self):
+ self.thick_entry.set_value(18.0)
+ self.ratio_radio.set_value('factor')
+
+ def on_ratio_change(self, val):
+ """
+ Called on activated_custom signal of the RadioSet GUI element self.radio_ratio
+
+ :param val: 'c' or 'p': 'c' means custom factor and 'p' means preselected etchants
+ :type val: str
+ :return: None
+ :rtype:
+ """
+ if val == 'factor':
+ self.etchants_label.hide()
+ self.etchants_combo.hide()
+ self.factor_label.show()
+ self.factor_entry.show()
+ self.offset_label.hide()
+ self.offset_entry.hide()
+ elif val == 'etch_list':
+ self.etchants_label.show()
+ self.etchants_combo.show()
+ self.factor_label.hide()
+ self.factor_entry.hide()
+ self.offset_label.hide()
+ self.offset_entry.hide()
+ else:
+ self.etchants_label.hide()
+ self.etchants_combo.hide()
+ self.factor_label.hide()
+ self.factor_entry.hide()
+ self.offset_label.show()
+ self.offset_entry.show()
+
+ def on_oz_conversion(self, txt):
+ try:
+ val = eval(txt)
+ # oz thickness to mils by multiplying with 1.37
+ # mils to microns by multiplying with 25.4
+ val *= 34.798
+ except Exception:
+ self.oz_to_um_entry.set_value('')
+ return
+ self.oz_to_um_entry.set_value(val, self.decimals)
+
+ def on_mils_conversion(self, txt):
+ try:
+ val = eval(txt)
+ val *= 25.4
+ except Exception:
+ self.mils_to_um_entry.set_value('')
+ return
+ self.mils_to_um_entry.set_value(val, self.decimals)
+
+ def on_compensate(self):
+ log.debug("ToolEtchCompensation.on_compensate()")
+
+ ratio_type = self.ratio_radio.get_value()
+ thickness = self.thick_entry.get_value() / 1000 # in microns
+
+ grb_circle_steps = int(self.app.defaults["gerber_circle_steps"])
+ obj_name = self.gerber_combo.currentText()
+
+ outname = obj_name + "_comp"
+
+ # Get source object.
+ try:
+ grb_obj = self.app.collection.get_by_name(obj_name)
+ except Exception as e:
+ self.app.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Could not retrieve object"), str(obj_name)))
+ return "Could not retrieve object: %s with error: %s" % (obj_name, str(e))
+
+ if grb_obj is None:
+ if obj_name == '':
+ obj_name = 'None'
+ self.app.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Object not found"), str(obj_name)))
+ return
+
+ if ratio_type == 'factor':
+ etch_factor = 1 / self.factor_entry.get_value()
+ offset = thickness / etch_factor
+ elif ratio_type == 'etch_list':
+ etchant = self.etchants_combo.get_value()
+ if etchant == "CuCl2":
+ etch_factor = 0.33
+ else:
+ etch_factor = 0.25
+ offset = thickness / etch_factor
+ else:
+ offset = self.offset_entry.get_value() / 1000 # in microns
+
+ try:
+ __ = iter(grb_obj.solid_geometry)
+ except TypeError:
+ grb_obj.solid_geometry = list(grb_obj.solid_geometry)
+
+ new_solid_geometry = []
+
+ for poly in grb_obj.solid_geometry:
+ new_solid_geometry.append(poly.buffer(offset, int(grb_circle_steps)))
+ new_solid_geometry = unary_union(new_solid_geometry)
+
+ new_options = {}
+ for opt in grb_obj.options:
+ new_options[opt] = deepcopy(grb_obj.options[opt])
+
+ new_apertures = deepcopy(grb_obj.apertures)
+
+ # update the apertures attributes (keys in the apertures dict)
+ for ap in new_apertures:
+ type = new_apertures[ap]['type']
+ for k in new_apertures[ap]:
+ if type == 'R' or type == 'O':
+ if k == 'width' or k == 'height':
+ new_apertures[ap][k] += offset
+ else:
+ if k == 'size' or k == 'width' or k == 'height':
+ new_apertures[ap][k] += offset
+
+ if k == 'geometry':
+ for geo_el in new_apertures[ap][k]:
+ if 'solid' in geo_el:
+ geo_el['solid'] = geo_el['solid'].buffer(offset, int(grb_circle_steps))
+
+ # in case of 'R' or 'O' aperture type we need to update the aperture 'size' after
+ # the 'width' and 'height' keys were updated
+ for ap in new_apertures:
+ type = new_apertures[ap]['type']
+ for k in new_apertures[ap]:
+ if type == 'R' or type == 'O':
+ if k == 'size':
+ new_apertures[ap][k] = math.sqrt(
+ new_apertures[ap]['width'] ** 2 + new_apertures[ap]['height'] ** 2)
+
+ def init_func(new_obj, app_obj):
+ """
+ Init a new object in FlatCAM Object collection
+
+ :param new_obj: New object
+ :type new_obj: ObjectCollection
+ :param app_obj: App
+ :type app_obj: App_Main.App
+ :return: None
+ :rtype:
+ """
+ new_obj.options.update(new_options)
+ new_obj.options['name'] = outname
+ new_obj.fill_color = deepcopy(grb_obj.fill_color)
+ new_obj.outline_color = deepcopy(grb_obj.outline_color)
+
+ new_obj.apertures = deepcopy(new_apertures)
+
+ new_obj.solid_geometry = deepcopy(new_solid_geometry)
+ new_obj.source_file = self.app.export_gerber(obj_name=outname, filename=None,
+ local_use=new_obj, use_thread=False)
+
+ self.app.app_obj.new_object('gerber', outname, init_func)
+
+ def reset_fields(self):
+ self.gerber_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
+
+ @staticmethod
+ def poly2rings(poly):
+ return [poly.exterior] + [interior for interior in poly.interiors]
+# end of file
diff --git a/flatcamTools/ToolExtractDrills.py b/AppTools/ToolExtractDrills.py
similarity index 98%
rename from flatcamTools/ToolExtractDrills.py
rename to AppTools/ToolExtractDrills.py
index 2c127c2b..71e8fb41 100644
--- a/flatcamTools/ToolExtractDrills.py
+++ b/AppTools/ToolExtractDrills.py
@@ -7,14 +7,14 @@
from PyQt5 import QtWidgets, QtCore
-from FlatCAMTool import FlatCAMTool
-from flatcamGUI.GUIElements import RadioSet, FCDoubleSpinner, FCCheckBox, FCComboBox
+from AppTool import AppTool
+from AppGUI.GUIElements import RadioSet, FCDoubleSpinner, FCCheckBox, FCComboBox
from shapely.geometry import Point
import logging
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -24,12 +24,12 @@ if '_' not in builtins.__dict__:
log = logging.getLogger('base')
-class ToolExtractDrills(FlatCAMTool):
+class ToolExtractDrills(AppTool):
toolName = _("Extract Drills")
def __init__(self, app):
- FlatCAMTool.__init__(self, app)
+ AppTool.__init__(self, app)
self.decimals = self.app.decimals
# ## Title
@@ -363,7 +363,7 @@ class ToolExtractDrills(FlatCAMTool):
)
def install(self, icon=None, separator=None, **kwargs):
- FlatCAMTool.install(self, icon, separator, shortcut='Alt+I', **kwargs)
+ AppTool.install(self, icon, separator, shortcut='Alt+I', **kwargs)
def run(self, toggle=True):
self.app.defaults.report_usage("Extract Drills()")
@@ -387,7 +387,7 @@ class ToolExtractDrills(FlatCAMTool):
if self.app.ui.splitter.sizes()[0] == 0:
self.app.ui.splitter.setSizes([1, 1])
- FlatCAMTool.run(self)
+ AppTool.run(self)
self.set_tool_ui()
self.app.ui.notebook.setTabText(2, _("Extract Drills Tool"))
@@ -655,7 +655,7 @@ class ToolExtractDrills(FlatCAMTool):
obj_inst.source_file = self.app.export_excellon(obj_name=outname, local_use=obj_inst, filename=None,
use_thread=False)
- self.app.new_object("excellon", outname, obj_init)
+ self.app.app_obj.new_object("excellon", outname, obj_init)
def on_hole_size_toggle(self, val):
if val == "fixed":
diff --git a/flatcamTools/ToolFiducials.py b/AppTools/ToolFiducials.py
similarity index 97%
rename from flatcamTools/ToolFiducials.py
rename to AppTools/ToolFiducials.py
index 1b3513d4..b19add63 100644
--- a/flatcamTools/ToolFiducials.py
+++ b/AppTools/ToolFiducials.py
@@ -7,8 +7,8 @@
from PyQt5 import QtWidgets, QtCore
-from FlatCAMTool import FlatCAMTool
-from flatcamGUI.GUIElements import FCDoubleSpinner, RadioSet, EvalEntry, FCTable, FCComboBox
+from AppTool import AppTool
+from AppGUI.GUIElements import FCDoubleSpinner, RadioSet, EvalEntry, FCTable, FCComboBox
from shapely.geometry import Point, Polygon, MultiPolygon, LineString
from shapely.geometry import box as box
@@ -18,7 +18,7 @@ import logging
from copy import deepcopy
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -28,12 +28,12 @@ if '_' not in builtins.__dict__:
log = logging.getLogger('base')
-class ToolFiducials(FlatCAMTool):
+class ToolFiducials(AppTool):
toolName = _("Fiducials Tool")
def __init__(self, app):
- FlatCAMTool.__init__(self, app)
+ AppTool.__init__(self, app)
self.app = app
self.canvas = self.app.plotcanvas
@@ -234,7 +234,7 @@ class ToolFiducials(FlatCAMTool):
# Line Thickness #
self.line_thickness_label = QtWidgets.QLabel('%s:' % _("Line thickness"))
self.line_thickness_label.setToolTip(
- _("Bounding box margin.")
+ _("Thickness of the line that makes the fiducial.")
)
self.line_thickness_entry = FCDoubleSpinner(callback=self.confirmation_message)
self.line_thickness_entry.set_range(0.00001, 9999.9999)
@@ -353,7 +353,8 @@ class ToolFiducials(FlatCAMTool):
self.margin_val = None
self.sec_position = None
- self.geo_steps_per_circle = 128
+
+ self.grb_steps_per_circle = self.app.defaults["gerber_circle_steps"]
self.click_points = []
@@ -388,14 +389,14 @@ class ToolFiducials(FlatCAMTool):
if self.app.ui.splitter.sizes()[0] == 0:
self.app.ui.splitter.setSizes([1, 1])
- FlatCAMTool.run(self)
+ AppTool.run(self)
self.set_tool_ui()
self.app.ui.notebook.setTabText(2, _("Fiducials Tool"))
def install(self, icon=None, separator=None, **kwargs):
- FlatCAMTool.install(self, icon, separator, shortcut='Alt+J', **kwargs)
+ AppTool.install(self, icon, separator, shortcut='Alt+F', **kwargs)
def set_tool_ui(self):
self.units = self.app.defaults['units']
@@ -471,7 +472,7 @@ class ToolFiducials(FlatCAMTool):
if self.mode_method == 'auto':
xmin, ymin, xmax, ymax = self.grb_object.bounds()
bbox = box(xmin, ymin, xmax, ymax)
- buf_bbox = bbox.buffer(self.margin_val, join_style=2)
+ buf_bbox = bbox.buffer(self.margin_val, self.grb_steps_per_circle, join_style=2)
x0, y0, x1, y1 = buf_bbox.bounds
self.click_points.append(
@@ -539,7 +540,7 @@ class ToolFiducials(FlatCAMTool):
radius = fid_size / 2.0
if fid_type == 'circular':
- geo_list = [Point(pt).buffer(radius) for pt in points_list]
+ geo_list = [Point(pt).buffer(radius, self.grb_steps_per_circle) for pt in points_list]
aperture_found = None
for ap_id, ap_val in g_obj.apertures.items():
@@ -604,8 +605,8 @@ class ToolFiducials(FlatCAMTool):
geo_buff_list = []
if aperture_found:
for geo in geo_list:
- geo_buff_h = geo[0].buffer(line_thickness / 2.0)
- geo_buff_v = geo[1].buffer(line_thickness / 2.0)
+ geo_buff_h = geo[0].buffer(line_thickness / 2.0, self.grb_steps_per_circle)
+ geo_buff_v = geo[1].buffer(line_thickness / 2.0, self.grb_steps_per_circle)
geo_buff_list.append(geo_buff_h)
geo_buff_list.append(geo_buff_v)
@@ -629,8 +630,8 @@ class ToolFiducials(FlatCAMTool):
g_obj.apertures[new_apid]['geometry'] = []
for geo in geo_list:
- geo_buff_h = geo[0].buffer(line_thickness / 2.0)
- geo_buff_v = geo[1].buffer(line_thickness / 2.0)
+ geo_buff_h = geo[0].buffer(line_thickness / 2.0, self.grb_steps_per_circle)
+ geo_buff_v = geo[1].buffer(line_thickness / 2.0, self.grb_steps_per_circle)
geo_buff_list.append(geo_buff_h)
geo_buff_list.append(geo_buff_v)
diff --git a/flatcamTools/ToolFilm.py b/AppTools/ToolFilm.py
similarity index 94%
rename from flatcamTools/ToolFilm.py
rename to AppTools/ToolFilm.py
index f386f0e8..9da564da 100644
--- a/flatcamTools/ToolFilm.py
+++ b/AppTools/ToolFilm.py
@@ -5,10 +5,10 @@
# MIT Licence #
# ##########################################################
-from PyQt5 import QtGui, QtCore, QtWidgets
+from PyQt5 import QtCore, QtWidgets
-from FlatCAMTool import FlatCAMTool
-from flatcamGUI.GUIElements import RadioSet, FCDoubleSpinner, FCCheckBox, \
+from AppTool import AppTool
+from AppGUI.GUIElements import RadioSet, FCDoubleSpinner, FCCheckBox, \
OptionalHideInputSection, OptionalInputSection, FCComboBox, FCFileSaveDialog
from copy import deepcopy
@@ -27,7 +27,7 @@ from lxml import etree as ET
from io import StringIO
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -37,12 +37,12 @@ if '_' not in builtins.__dict__:
log = logging.getLogger('base')
-class Film(FlatCAMTool):
+class Film(AppTool):
toolName = _("Film PCB")
def __init__(self, app):
- FlatCAMTool.__init__(self, app)
+ AppTool.__init__(self, app)
self.decimals = self.app.decimals
@@ -65,13 +65,8 @@ class Film(FlatCAMTool):
grid0.setColumnStretch(1, 1)
# Type of object for which to create the film
- self.tf_type_obj_combo = FCComboBox()
- self.tf_type_obj_combo.addItems([_("Gerber"), _("Geometry")])
-
- # we get rid of item1 ("Excellon") as it is not suitable for creating film
- # self.tf_type_obj_combo.view().setRowHidden(1, True)
- self.tf_type_obj_combo.setItemIcon(0, QtGui.QIcon(self.app.resource_location + "/flatcam_icon16.png"))
- self.tf_type_obj_combo.setItemIcon(1, QtGui.QIcon(self.app.resource_location + "/geometry16.png"))
+ self.tf_type_obj_combo = RadioSet([{'label': _('Gerber'), 'value': 'grb'},
+ {'label': _('Geometry'), 'value': 'geo'}])
self.tf_type_obj_combo_label = QtWidgets.QLabel('%s:' % _("Object Type"))
self.tf_type_obj_combo_label.setToolTip(
@@ -89,26 +84,12 @@ class Film(FlatCAMTool):
self.tf_object_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
self.tf_object_combo.is_last = True
- self.tf_object_label = QtWidgets.QLabel('%s:' % _("Film Object"))
- self.tf_object_label.setToolTip(
- _("Object for which to create the film.")
- )
- grid0.addWidget(self.tf_object_label, 1, 0)
- grid0.addWidget(self.tf_object_combo, 1, 1)
+ grid0.addWidget(self.tf_object_combo, 1, 0, 1, 2)
# Type of Box Object to be used as an envelope for film creation
# Within this we can create negative
- self.tf_type_box_combo = FCComboBox()
- self.tf_type_box_combo.addItems([_("Gerber"), _("Geometry")])
-
- # self.tf_type_box_combo.addItem("Gerber")
- # self.tf_type_box_combo.addItem("Excellon")
- # self.tf_type_box_combo.addItem("Geometry")
-
- # we get rid of item1 ("Excellon") as it is not suitable for box when creating film
- # self.tf_type_box_combo.view().setRowHidden(1, True)
- self.tf_type_box_combo.setItemIcon(0, QtGui.QIcon(self.app.resource_location + "/flatcam_icon16.png"))
- self.tf_type_box_combo.setItemIcon(1, QtGui.QIcon(self.app.resource_location + "/geometry16.png"))
+ self.tf_type_box_combo = RadioSet([{'label': _('Gerber'), 'value': 'grb'},
+ {'label': _('Geometry'), 'value': 'geo'}])
self.tf_type_box_combo_label = QtWidgets.QLabel(_("Box Type:"))
self.tf_type_box_combo_label.setToolTip(
@@ -126,17 +107,19 @@ class Film(FlatCAMTool):
self.tf_box_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
self.tf_box_combo.is_last = True
- self.tf_box_combo_label = QtWidgets.QLabel('%s:' % _("Box Object"))
- self.tf_box_combo_label.setToolTip(
- _("The actual object that is used as container for the\n "
- "selected object for which we create the film.\n"
- "Usually it is the PCB outline but it can be also the\n"
- "same object for which the film is created.")
- )
- grid0.addWidget(self.tf_box_combo_label, 3, 0)
- grid0.addWidget(self.tf_box_combo, 3, 1)
+ # self.tf_box_combo_label = QtWidgets.QLabel('%s:' % _("Box Object"))
+ # self.tf_box_combo_label.setToolTip(
+ # _("The actual object that is used as container for the\n "
+ # "selected object for which we create the film.\n"
+ # "Usually it is the PCB outline but it can be also the\n"
+ # "same object for which the film is created.")
+ # )
+ grid0.addWidget(self.tf_box_combo, 3, 0, 1, 2)
- grid0.addWidget(QtWidgets.QLabel(''), 4, 0)
+ separator_line = QtWidgets.QFrame()
+ separator_line.setFrameShape(QtWidgets.QFrame.HLine)
+ separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
+ grid0.addWidget(separator_line, 4, 0, 1, 2)
self.film_adj_label = QtWidgets.QLabel('%s' % _("Film Adjustments"))
self.film_adj_label.setToolTip(
@@ -533,28 +516,28 @@ class Film(FlatCAMTool):
# ## Signals
self.film_object_button.clicked.connect(self.on_film_creation)
- self.tf_type_obj_combo.currentIndexChanged.connect(self.on_type_obj_index_changed)
- self.tf_type_box_combo.currentIndexChanged.connect(self.on_type_box_index_changed)
+ self.tf_type_obj_combo.activated_custom.connect(self.on_type_obj_index_changed)
+ self.tf_type_box_combo.activated_custom.connect(self.on_type_box_index_changed)
self.film_type.activated_custom.connect(self.on_film_type)
self.source_punch.activated_custom.connect(self.on_punch_source)
self.file_type_radio.activated_custom.connect(self.on_file_type)
self.reset_button.clicked.connect(self.set_tool_ui)
- def on_type_obj_index_changed(self):
- obj_type = self.tf_type_obj_combo.currentIndex()
+ def on_type_obj_index_changed(self, val):
+ obj_type = 2 if val == 'geo' else 0
self.tf_object_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex()))
self.tf_object_combo.setCurrentIndex(0)
self.tf_object_combo.obj_type = {
- _("Gerber"): "Gerber", _("Geometry"): "Geometry"
+ "grb": "gerber", "geo": "geometry"
}[self.tf_type_obj_combo.get_value()]
- def on_type_box_index_changed(self):
- obj_type = self.tf_type_box_combo.currentIndex()
+ def on_type_box_index_changed(self, val):
+ obj_type = 2 if val == 'geo' else 0
self.tf_box_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex()))
self.tf_box_combo.setCurrentIndex(0)
self.tf_box_combo.obj_type = {
- _("Gerber"): "Gerber", _("Geometry"): "Geometry"
+ "grb": "gerber", "geo": "geometry"
}[self.tf_type_obj_combo.get_value()]
def run(self, toggle=True):
@@ -579,14 +562,14 @@ class Film(FlatCAMTool):
if self.app.ui.splitter.sizes()[0] == 0:
self.app.ui.splitter.setSizes([1, 1])
- FlatCAMTool.run(self)
+ AppTool.run(self)
self.set_tool_ui()
self.app.ui.notebook.setTabText(2, _("Film Tool"))
def install(self, icon=None, separator=None, **kwargs):
- FlatCAMTool.install(self, icon, separator, shortcut='Alt+L', **kwargs)
+ AppTool.install(self, icon, separator, shortcut='Alt+L', **kwargs)
def set_tool_ui(self):
self.reset_fields()
@@ -618,9 +601,11 @@ class Film(FlatCAMTool):
self.orientation_radio.set_value(self.app.defaults["tools_film_orientation"])
self.pagesize_combo.set_value(self.app.defaults["tools_film_pagesize"])
+ self.tf_type_obj_combo.set_value('grb')
+ self.tf_type_box_combo.set_value('grb')
# run once to update the obj_type attribute in the FCCombobox so the last object is showed in cb
- self.on_type_obj_index_changed()
- self.on_type_box_index_changed()
+ self.on_type_obj_index_changed(val='grb')
+ self.on_type_box_index_changed(val='grb')
def on_film_type(self, val):
type_of_film = val
@@ -659,7 +644,7 @@ class Film(FlatCAMTool):
self.exc_label.show()
self.exc_combo.show()
- if val == 'pad' and self.tf_type_obj_combo.currentText() == 'Geometry':
+ if val == 'pad' and self.tf_type_obj_combo.get_value() == 'geo':
self.source_punch.set_value('exc')
self.app.inform.emit('[WARNING_NOTCL] %s' % _("Using the Pad center does not work on Geometry objects. "
"Only a Gerber object has pads."))
@@ -744,7 +729,7 @@ class Film(FlatCAMTool):
filename, _f = FCFileSaveDialog.get_saved_filename(
caption=_("Export positive film"),
directory=self.app.get_last_save_folder() + '/' + name + '_film',
- filter=filter_ext)
+ ext_filter=filter_ext)
except TypeError:
filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export positive film"))
@@ -790,7 +775,7 @@ class Film(FlatCAMTool):
new_obj.solid_geometry = deepcopy(punched_solid_geometry)
outname = name + "_punched"
- self.app.new_object('gerber', outname, init_func)
+ self.app.app_obj.new_object('gerber', outname, init_func)
self.generate_positive_normal_film(outname, boxname, factor=factor, ftype=ftype)
else:
@@ -841,7 +826,7 @@ class Film(FlatCAMTool):
new_obj.solid_geometry = deepcopy(punched_solid_geometry)
outname = name + "_punched"
- self.app.new_object('gerber', outname, init_func)
+ self.app.app_obj.new_object('gerber', outname, init_func)
self.generate_positive_normal_film(outname, boxname, factor=factor, ftype=ftype)
@@ -890,7 +875,7 @@ class Film(FlatCAMTool):
filename, _f = FCFileSaveDialog.get_saved_filename(
caption=_("Export negative film"),
directory=self.app.get_last_save_folder() + '/' + name + '_film',
- filter=filter_ext)
+ ext_filter=filter_ext)
except TypeError:
filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export negative film"))
diff --git a/flatcamTools/ToolImage.py b/AppTools/ToolImage.py
similarity index 96%
rename from flatcamTools/ToolImage.py
rename to AppTools/ToolImage.py
index 6a077a0d..5d520c78 100644
--- a/flatcamTools/ToolImage.py
+++ b/AppTools/ToolImage.py
@@ -7,11 +7,11 @@
from PyQt5 import QtGui, QtWidgets
-from FlatCAMTool import FlatCAMTool
-from flatcamGUI.GUIElements import RadioSet, FCComboBox, FCSpinner
+from AppTool import AppTool
+from AppGUI.GUIElements import RadioSet, FCComboBox, FCSpinner
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -19,12 +19,12 @@ if '_' not in builtins.__dict__:
_ = gettext.gettext
-class ToolImage(FlatCAMTool):
+class ToolImage(AppTool):
toolName = _("Image as Object")
def __init__(self, app):
- FlatCAMTool.__init__(self, app)
+ AppTool.__init__(self, app)
self.app = app
self.decimals = self.app.decimals
@@ -176,13 +176,13 @@ class ToolImage(FlatCAMTool):
if self.app.ui.splitter.sizes()[0] == 0:
self.app.ui.splitter.setSizes([1, 1])
- FlatCAMTool.run(self)
+ AppTool.run(self)
self.set_tool_ui()
self.app.ui.notebook.setTabText(2, _("Image Tool"))
def install(self, icon=None, separator=None, **kwargs):
- FlatCAMTool.install(self, icon, separator, **kwargs)
+ AppTool.install(self, icon, separator, **kwargs)
def set_tool_ui(self):
# ## Initialize form
@@ -288,7 +288,7 @@ class ToolImage(FlatCAMTool):
name = outname or filename.split('/')[-1].split('\\')[-1]
units = self.app.defaults['units']
- self.app.new_object(obj_type, name, obj_init)
+ self.app.app_obj.new_object(obj_type, name, obj_init)
# Register recent file
self.app.file_opened.emit("image", filename)
diff --git a/flatcamTools/ToolInvertGerber.py b/AppTools/ToolInvertGerber.py
similarity index 95%
rename from flatcamTools/ToolInvertGerber.py
rename to AppTools/ToolInvertGerber.py
index b1329882..b97ec269 100644
--- a/flatcamTools/ToolInvertGerber.py
+++ b/AppTools/ToolInvertGerber.py
@@ -7,8 +7,8 @@
from PyQt5 import QtWidgets, QtCore
-from FlatCAMTool import FlatCAMTool
-from flatcamGUI.GUIElements import FCButton, FCDoubleSpinner, RadioSet, FCComboBox
+from AppTool import AppTool
+from AppGUI.GUIElements import FCButton, FCDoubleSpinner, RadioSet, FCComboBox
from shapely.geometry import box
@@ -16,7 +16,7 @@ from copy import deepcopy
import logging
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -26,7 +26,7 @@ if '_' not in builtins.__dict__:
log = logging.getLogger('base')
-class ToolInvertGerber(FlatCAMTool):
+class ToolInvertGerber(AppTool):
toolName = _("Invert Gerber Tool")
@@ -34,7 +34,7 @@ class ToolInvertGerber(FlatCAMTool):
self.app = app
self.decimals = self.app.decimals
- FlatCAMTool.__init__(self, app)
+ AppTool.__init__(self, app)
self.tools_frame = QtWidgets.QFrame()
self.tools_frame.setContentsMargins(0, 0, 0, 0)
@@ -153,7 +153,7 @@ class ToolInvertGerber(FlatCAMTool):
self.reset_button.clicked.connect(self.set_tool_ui)
def install(self, icon=None, separator=None, **kwargs):
- FlatCAMTool.install(self, icon, separator, shortcut='', **kwargs)
+ AppTool.install(self, icon, separator, shortcut='', **kwargs)
def run(self, toggle=True):
self.app.defaults.report_usage("ToolInvertGerber()")
@@ -178,7 +178,7 @@ class ToolInvertGerber(FlatCAMTool):
if self.app.ui.splitter.sizes()[0] == 0:
self.app.ui.splitter.setSizes([1, 1])
- FlatCAMTool.run(self)
+ AppTool.run(self)
self.set_tool_ui()
self.app.ui.notebook.setTabText(2, _("Invert Tool"))
@@ -228,6 +228,11 @@ class ToolInvertGerber(FlatCAMTool):
for poly in grb_obj.solid_geometry:
new_solid_geometry = new_solid_geometry.difference(poly)
+ try:
+ __ = iter(new_solid_geometry)
+ except TypeError:
+ new_solid_geometry = [new_solid_geometry]
+
new_options = {}
for opt in grb_obj.options:
new_options[opt] = deepcopy(grb_obj.options[opt])
@@ -278,9 +283,6 @@ class ToolInvertGerber(FlatCAMTool):
new_el['follow'] = new_solid_geometry.exterior
new_apertures['0']['geometry'].append(new_el)
- for td in new_apertures:
- print(td, new_apertures[td])
-
def init_func(new_obj, app_obj):
new_obj.options.update(new_options)
new_obj.options['name'] = outname
@@ -293,7 +295,7 @@ class ToolInvertGerber(FlatCAMTool):
new_obj.source_file = self.app.export_gerber(obj_name=outname, filename=None,
local_use=new_obj, use_thread=False)
- self.app.new_object('gerber', outname, init_func)
+ self.app.app_obj.new_object('gerber', outname, init_func)
def reset_fields(self):
self.gerber_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
diff --git a/AppTools/ToolIsolation.py b/AppTools/ToolIsolation.py
new file mode 100644
index 00000000..de7f8593
--- /dev/null
+++ b/AppTools/ToolIsolation.py
@@ -0,0 +1,2979 @@
+# ##########################################################
+# FlatCAM: 2D Post-processing for Manufacturing #
+# File by: Marius Adrian Stanciu (c) #
+# Date: 5/25/2020 #
+# License: MIT Licence #
+# ##########################################################
+
+from PyQt5 import QtWidgets, QtCore, QtGui
+
+from AppTool import AppTool
+from AppGUI.GUIElements import FCCheckBox, FCDoubleSpinner, RadioSet, FCTable, FCInputDialog, FCButton, \
+ FCComboBox, OptionalHideInputSection, FCSpinner
+from AppParsers.ParseGerber import Gerber
+
+from copy import deepcopy
+
+import numpy as np
+import math
+
+from shapely.ops import cascaded_union
+from shapely.geometry import MultiPolygon, Polygon, MultiLineString, LineString, LinearRing
+
+from matplotlib.backend_bases import KeyEvent as mpl_key_event
+
+import logging
+import gettext
+import AppTranslation as fcTranslate
+import builtins
+
+fcTranslate.apply_language('strings')
+if '_' not in builtins.__dict__:
+ _ = gettext.gettext
+
+log = logging.getLogger('base')
+
+
+class ToolIsolation(AppTool, Gerber):
+ toolName = _("Isolation Tool")
+
+ def __init__(self, app):
+ self.app = app
+ self.decimals = self.app.decimals
+
+ AppTool.__init__(self, app)
+ Gerber.__init__(self, steps_per_circle=self.app.defaults["gerber_circle_steps"])
+
+ self.tools_frame = QtWidgets.QFrame()
+ self.tools_frame.setContentsMargins(0, 0, 0, 0)
+ self.layout.addWidget(self.tools_frame)
+ self.tools_box = QtWidgets.QVBoxLayout()
+ self.tools_box.setContentsMargins(0, 0, 0, 0)
+ self.tools_frame.setLayout(self.tools_box)
+
+ self.title_box = QtWidgets.QHBoxLayout()
+ self.tools_box.addLayout(self.title_box)
+
+ # ## Title
+ title_label = QtWidgets.QLabel("%s" % self.toolName)
+ title_label.setStyleSheet("""
+ QLabel
+ {
+ font-size: 16px;
+ font-weight: bold;
+ }
+ """)
+ title_label.setToolTip(
+ _("Create a Geometry object with\n"
+ "toolpaths to cut around polygons.")
+ )
+
+ self.title_box.addWidget(title_label)
+
+ # App Level label
+ self.level = QtWidgets.QLabel("")
+ self.level.setToolTip(
+ _(
+ "BASIC is suitable for a beginner. Many parameters\n"
+ "are hidden from the user in this mode.\n"
+ "ADVANCED mode will make available all parameters.\n\n"
+ "To change the application LEVEL, go to:\n"
+ "Edit -> Preferences -> General and check:\n"
+ "'APP. LEVEL' radio button."
+ )
+ )
+ self.level.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter)
+ self.title_box.addWidget(self.level)
+
+ # Grid Layout
+ grid0 = QtWidgets.QGridLayout()
+ grid0.setColumnStretch(0, 0)
+ grid0.setColumnStretch(1, 1)
+ self.tools_box.addLayout(grid0)
+
+ self.obj_combo_label = QtWidgets.QLabel('%s:' % _("GERBER"))
+ self.obj_combo_label.setToolTip(
+ _("Gerber object for isolation routing.")
+ )
+
+ grid0.addWidget(self.obj_combo_label, 0, 0, 1, 2)
+
+ # ################################################
+ # ##### The object to be copper cleaned ##########
+ # ################################################
+ self.object_combo = FCComboBox()
+ self.object_combo.setModel(self.app.collection)
+ self.object_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
+ # self.object_combo.setCurrentIndex(1)
+ self.object_combo.is_last = True
+
+ grid0.addWidget(self.object_combo, 1, 0, 1, 2)
+
+ separator_line = QtWidgets.QFrame()
+ separator_line.setFrameShape(QtWidgets.QFrame.HLine)
+ separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
+ grid0.addWidget(separator_line, 2, 0, 1, 2)
+
+ # ### Tools ## ##
+ self.tools_table_label = QtWidgets.QLabel('%s' % _('Tools Table'))
+ self.tools_table_label.setToolTip(
+ _("Tools pool from which the algorithm\n"
+ "will pick the ones used for copper clearing.")
+ )
+ grid0.addWidget(self.tools_table_label, 3, 0, 1, 2)
+
+ self.tools_table = FCTable()
+ grid0.addWidget(self.tools_table, 4, 0, 1, 2)
+
+ self.tools_table.setColumnCount(4)
+ # 3rd column is reserved (and hidden) for the tool ID
+ self.tools_table.setHorizontalHeaderLabels(['#', _('Diameter'), _('TT'), ''])
+ self.tools_table.setColumnHidden(3, True)
+ self.tools_table.setSortingEnabled(False)
+ # self.tools_table.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)
+
+ self.tools_table.horizontalHeaderItem(0).setToolTip(
+ _("This is the Tool Number.\n"
+ "Non copper clearing will start with the tool with the biggest \n"
+ "diameter, continuing until there are no more tools.\n"
+ "Only tools that create Isolation geometry will still be present\n"
+ "in the resulting geometry. This is because with some tools\n"
+ "this function will not be able to create painting geometry.")
+ )
+ self.tools_table.horizontalHeaderItem(1).setToolTip(
+ _("Tool Diameter. It's value (in current FlatCAM units)\n"
+ "is the cut width into the material."))
+
+ self.tools_table.horizontalHeaderItem(2).setToolTip(
+ _("The Tool Type (TT) can be:\n"
+ "- Circular with 1 ... 4 teeth -> it is informative only. Being circular,\n"
+ "the cut width in material is exactly the tool diameter.\n"
+ "- Ball -> informative only and make reference to the Ball type endmill.\n"
+ "- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI form\n"
+ "and enable two additional UI form fields in the resulting geometry: V-Tip Dia and\n"
+ "V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter such\n"
+ "as the cut width into material will be equal with the value in the Tool Diameter\n"
+ "column of this table.\n"
+ "Choosing the 'V-Shape' Tool Type automatically will select the Operation Type\n"
+ "in the resulting geometry as Isolation."))
+
+ grid1 = QtWidgets.QGridLayout()
+ grid1.setColumnStretch(0, 0)
+ grid1.setColumnStretch(1, 1)
+ self.tools_box.addLayout(grid1)
+
+ # Tool order
+ self.order_label = QtWidgets.QLabel('%s:' % _('Tool order'))
+ self.order_label.setToolTip(_("This set the way that the tools in the tools table are used.\n"
+ "'No' --> means that the used order is the one in the tool table\n"
+ "'Forward' --> means that the tools will be ordered from small to big\n"
+ "'Reverse' --> means that the tools will ordered from big to small\n\n"
+ "WARNING: using rest machining will automatically set the order\n"
+ "in reverse and disable this control."))
+
+ self.order_radio = RadioSet([{'label': _('No'), 'value': 'no'},
+ {'label': _('Forward'), 'value': 'fwd'},
+ {'label': _('Reverse'), 'value': 'rev'}])
+
+ grid1.addWidget(self.order_label, 1, 0)
+ grid1.addWidget(self.order_radio, 1, 1)
+
+ separator_line = QtWidgets.QFrame()
+ separator_line.setFrameShape(QtWidgets.QFrame.HLine)
+ separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
+ grid1.addWidget(separator_line, 2, 0, 1, 2)
+
+ # #############################################################
+ # ############### Tool selection ##############################
+ # #############################################################
+
+ self.grid3 = QtWidgets.QGridLayout()
+ self.grid3.setColumnStretch(0, 0)
+ self.grid3.setColumnStretch(1, 1)
+ self.tools_box.addLayout(self.grid3)
+
+ self.tool_sel_label = QtWidgets.QLabel('%s' % _("New Tool"))
+ self.grid3.addWidget(self.tool_sel_label, 1, 0, 1, 2)
+
+ # Tool Type Radio Button
+ self.tool_type_label = QtWidgets.QLabel('%s:' % _('Tool Type'))
+ self.tool_type_label.setToolTip(
+ _("Default tool type:\n"
+ "- 'V-shape'\n"
+ "- Circular")
+ )
+
+ self.tool_type_radio = RadioSet([{'label': _('V-shape'), 'value': 'V'},
+ {'label': _('Circular'), 'value': 'C1'}])
+ self.tool_type_radio.setToolTip(
+ _("Default tool type:\n"
+ "- 'V-shape'\n"
+ "- Circular")
+ )
+ self.tool_type_radio.setObjectName("i_tool_type")
+
+ self.grid3.addWidget(self.tool_type_label, 2, 0)
+ self.grid3.addWidget(self.tool_type_radio, 2, 1)
+
+ # Tip Dia
+ self.tipdialabel = QtWidgets.QLabel('%s:' % _('V-Tip Dia'))
+ self.tipdialabel.setToolTip(
+ _("The tip diameter for V-Shape Tool"))
+ self.tipdia_entry = FCDoubleSpinner(callback=self.confirmation_message)
+ self.tipdia_entry.set_precision(self.decimals)
+ self.tipdia_entry.set_range(0.0000, 9999.9999)
+ self.tipdia_entry.setSingleStep(0.1)
+ self.tipdia_entry.setObjectName("i_vtipdia")
+
+ self.grid3.addWidget(self.tipdialabel, 3, 0)
+ self.grid3.addWidget(self.tipdia_entry, 3, 1)
+
+ # Tip Angle
+ self.tipanglelabel = QtWidgets.QLabel('%s:' % _('V-Tip Angle'))
+ self.tipanglelabel.setToolTip(
+ _("The tip angle for V-Shape Tool.\n"
+ "In degree."))
+ self.tipangle_entry = FCDoubleSpinner(callback=self.confirmation_message)
+ self.tipangle_entry.set_precision(self.decimals)
+ self.tipangle_entry.set_range(0.0000, 180.0000)
+ self.tipangle_entry.setSingleStep(5)
+ self.tipangle_entry.setObjectName("i_vtipangle")
+
+ self.grid3.addWidget(self.tipanglelabel, 4, 0)
+ self.grid3.addWidget(self.tipangle_entry, 4, 1)
+
+ # Cut Z entry
+ cutzlabel = QtWidgets.QLabel('%s:' % _('Cut Z'))
+ cutzlabel.setToolTip(
+ _("Depth of cut into material. Negative value.\n"
+ "In FlatCAM units.")
+ )
+ self.cutz_entry = FCDoubleSpinner(callback=self.confirmation_message)
+ self.cutz_entry.set_precision(self.decimals)
+ self.cutz_entry.set_range(-99999.9999, 0.0000)
+ self.cutz_entry.setObjectName("i_vcutz")
+
+ self.grid3.addWidget(cutzlabel, 5, 0)
+ self.grid3.addWidget(self.cutz_entry, 5, 1)
+
+ # ### Tool Diameter ####
+ self.addtool_entry_lbl = QtWidgets.QLabel('%s:' % _('Tool Dia'))
+ self.addtool_entry_lbl.setToolTip(
+ _("Diameter for the new tool to add in the Tool Table.\n"
+ "If the tool is V-shape type then this value is automatically\n"
+ "calculated from the other parameters.")
+ )
+ self.addtool_entry = FCDoubleSpinner(callback=self.confirmation_message)
+ self.addtool_entry.set_precision(self.decimals)
+ self.addtool_entry.set_range(0.000, 9999.9999)
+ self.addtool_entry.setObjectName("i_new_tooldia")
+
+ self.grid3.addWidget(self.addtool_entry_lbl, 6, 0)
+ self.grid3.addWidget(self.addtool_entry, 6, 1)
+
+ bhlay = QtWidgets.QHBoxLayout()
+
+ self.addtool_btn = QtWidgets.QPushButton(_('Add'))
+ self.addtool_btn.setToolTip(
+ _("Add a new tool to the Tool Table\n"
+ "with the diameter specified above.")
+ )
+
+ self.addtool_from_db_btn = QtWidgets.QPushButton(_('Add from DB'))
+ self.addtool_from_db_btn.setToolTip(
+ _("Add a new tool to the Tool Table\n"
+ "from the Tool DataBase.")
+ )
+
+ bhlay.addWidget(self.addtool_btn)
+ bhlay.addWidget(self.addtool_from_db_btn)
+
+ self.grid3.addLayout(bhlay, 7, 0, 1, 2)
+
+ separator_line = QtWidgets.QFrame()
+ separator_line.setFrameShape(QtWidgets.QFrame.HLine)
+ separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
+ self.grid3.addWidget(separator_line, 8, 0, 1, 2)
+
+ self.deltool_btn = QtWidgets.QPushButton(_('Delete'))
+ self.deltool_btn.setToolTip(
+ _("Delete a selection of tools in the Tool Table\n"
+ "by first selecting a row(s) in the Tool Table.")
+ )
+ self.grid3.addWidget(self.deltool_btn, 9, 0, 1, 2)
+
+ # self.grid3.addWidget(QtWidgets.QLabel(''), 10, 0, 1, 2)
+
+ separator_line = QtWidgets.QFrame()
+ separator_line.setFrameShape(QtWidgets.QFrame.HLine)
+ separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
+ self.grid3.addWidget(separator_line, 11, 0, 1, 2)
+
+ self.tool_data_label = QtWidgets.QLabel(
+ "%s: %s %d" % (_('Parameters for'), _("Tool"), int(1)))
+ self.tool_data_label.setToolTip(
+ _(
+ "The data used for creating GCode.\n"
+ "Each tool store it's own set of such data."
+ )
+ )
+ self.grid3.addWidget(self.tool_data_label, 12, 0, 1, 2)
+
+ # Passes
+ passlabel = QtWidgets.QLabel('%s:' % _('Passes'))
+ passlabel.setToolTip(
+ _("Width of the isolation gap in\n"
+ "number (integer) of tool widths.")
+ )
+ self.passes_entry = FCSpinner(callback=self.confirmation_message_int)
+ self.passes_entry.set_range(1, 999)
+ self.passes_entry.setObjectName("i_passes")
+
+ self.grid3.addWidget(passlabel, 13, 0)
+ self.grid3.addWidget(self.passes_entry, 13, 1)
+
+ # Overlap Entry
+ overlabel = QtWidgets.QLabel('%s:' % _('Overlap'))
+ overlabel.setToolTip(
+ _("How much (percentage) of the tool width to overlap each tool pass.")
+ )
+ self.iso_overlap_entry = FCDoubleSpinner(suffix='%', callback=self.confirmation_message)
+ self.iso_overlap_entry.set_precision(self.decimals)
+ self.iso_overlap_entry.setWrapping(True)
+ self.iso_overlap_entry.set_range(0.0000, 99.9999)
+ self.iso_overlap_entry.setSingleStep(0.1)
+ self.iso_overlap_entry.setObjectName("i_overlap")
+
+ self.grid3.addWidget(overlabel, 14, 0)
+ self.grid3.addWidget(self.iso_overlap_entry, 14, 1)
+
+ # Milling Type Radio Button
+ self.milling_type_label = QtWidgets.QLabel('%s:' % _('Milling Type'))
+ self.milling_type_label.setToolTip(
+ _("Milling type when the selected tool is of type: 'iso_op':\n"
+ "- climb / best for precision milling and to reduce tool usage\n"
+ "- conventional / useful when there is no backlash compensation")
+ )
+
+ self.milling_type_radio = RadioSet([{'label': _('Climb'), 'value': 'cl'},
+ {'label': _('Conventional'), 'value': 'cv'}])
+ self.milling_type_radio.setToolTip(
+ _("Milling type when the selected tool is of type: 'iso_op':\n"
+ "- climb / best for precision milling and to reduce tool usage\n"
+ "- conventional / useful when there is no backlash compensation")
+ )
+ self.milling_type_radio.setObjectName("i_milling_type")
+
+ self.grid3.addWidget(self.milling_type_label, 15, 0)
+ self.grid3.addWidget(self.milling_type_radio, 15, 1)
+
+ # Follow
+ self.follow_label = QtWidgets.QLabel('%s:' % _('Follow'))
+ self.follow_label.setToolTip(
+ _("Generate a 'Follow' geometry.\n"
+ "This means that it will cut through\n"
+ "the middle of the trace.")
+ )
+
+ self.follow_cb = FCCheckBox()
+ self.follow_cb.setToolTip(_("Generate a 'Follow' geometry.\n"
+ "This means that it will cut through\n"
+ "the middle of the trace."))
+ self.follow_cb.setObjectName("i_follow")
+
+ self.grid3.addWidget(self.follow_label, 16, 0)
+ self.grid3.addWidget(self.follow_cb, 16, 1)
+
+ # Isolation Type
+ self.iso_type_label = QtWidgets.QLabel('%s:' % _('Isolation Type'))
+ self.iso_type_label.setToolTip(
+ _("Choose how the isolation will be executed:\n"
+ "- 'Full' -> complete isolation of polygons\n"
+ "- 'Ext' -> will isolate only on the outside\n"
+ "- 'Int' -> will isolate only on the inside\n"
+ "'Exterior' isolation is almost always possible\n"
+ "(with the right tool) but 'Interior'\n"
+ "isolation can be done only when there is an opening\n"
+ "inside of the polygon (e.g polygon is a 'doughnut' shape).")
+ )
+ self.iso_type_radio = RadioSet([{'label': _('Full'), 'value': 'full'},
+ {'label': _('Ext'), 'value': 'ext'},
+ {'label': _('Int'), 'value': 'int'}])
+ self.iso_type_radio.setObjectName("i_iso_type")
+
+ self.grid3.addWidget(self.iso_type_label, 17, 0)
+ self.grid3.addWidget(self.iso_type_radio, 17, 1)
+
+ separator_line = QtWidgets.QFrame()
+ separator_line.setFrameShape(QtWidgets.QFrame.HLine)
+ separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
+ self.grid3.addWidget(separator_line, 18, 0, 1, 2)
+
+ self.apply_param_to_all = FCButton(_("Apply parameters to all tools"))
+ self.apply_param_to_all.setToolTip(
+ _("The parameters in the current form will be applied\n"
+ "on all the tools from the Tool Table.")
+ )
+ self.grid3.addWidget(self.apply_param_to_all, 22, 0, 1, 2)
+
+ separator_line = QtWidgets.QFrame()
+ separator_line.setFrameShape(QtWidgets.QFrame.HLine)
+ separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
+ self.grid3.addWidget(separator_line, 23, 0, 1, 2)
+
+ # General Parameters
+ self.gen_param_label = QtWidgets.QLabel('%s' % _("Common Parameters"))
+ self.gen_param_label.setToolTip(
+ _("Parameters that are common for all tools.")
+ )
+ self.grid3.addWidget(self.gen_param_label, 24, 0, 1, 2)
+
+ # Rest Machining
+ self.rest_cb = FCCheckBox('%s' % _("Rest"))
+ self.rest_cb.setObjectName("i_rest")
+ self.rest_cb.setToolTip(
+ _("If checked, use 'rest machining'.\n"
+ "Basically it will isolate outside PCB features,\n"
+ "using the biggest tool and continue with the next tools,\n"
+ "from bigger to smaller, to isolate the copper features that\n"
+ "could not be cleared by previous tool, until there is\n"
+ "no more copper features to isolate or there are no more tools.\n"
+ "If not checked, use the standard algorithm.")
+ )
+
+ self.grid3.addWidget(self.rest_cb, 25, 0)
+
+ # Combine All Passes
+ self.combine_passes_cb = FCCheckBox(label=_('Combine'))
+ self.combine_passes_cb.setToolTip(
+ _("Combine all passes into one object")
+ )
+ self.combine_passes_cb.setObjectName("i_combine")
+
+ self.grid3.addWidget(self.combine_passes_cb, 25, 1)
+
+ # Exception Areas
+ self.except_cb = FCCheckBox(label=_('Except'))
+ self.except_cb.setToolTip(_("When the isolation geometry is generated,\n"
+ "by checking this, the area of the object below\n"
+ "will be subtracted from the isolation geometry."))
+ self.except_cb.setObjectName("i_except")
+ self.grid3.addWidget(self.except_cb, 27, 0)
+
+ # Type of object to be excepted
+ self.type_excobj_radio = RadioSet([{'label': _("Geometry"), 'value': 'geometry'},
+ {'label': _("Gerber"), 'value': 'gerber'}])
+ self.type_excobj_radio.setToolTip(
+ _("Specify the type of object to be excepted from isolation.\n"
+ "It can be of type: Gerber or Geometry.\n"
+ "What is selected here will dictate the kind\n"
+ "of objects that will populate the 'Object' combobox.")
+ )
+
+ self.grid3.addWidget(self.type_excobj_radio, 27, 1)
+
+ # The object to be excepted
+ self.exc_obj_combo = FCComboBox()
+ self.exc_obj_combo.setToolTip(_("Object whose area will be removed from isolation geometry."))
+
+ # set the model for the Area Exception comboboxes
+ self.exc_obj_combo.setModel(self.app.collection)
+ self.exc_obj_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
+ self.exc_obj_combo.is_last = True
+ self.exc_obj_combo.obj_type = self.type_excobj_radio.get_value()
+
+ self.grid3.addWidget(self.exc_obj_combo, 29, 0, 1, 2)
+
+ self.e_ois = OptionalHideInputSection(self.except_cb,
+ [
+ self.type_excobj_radio,
+ self.exc_obj_combo
+ ])
+
+ # Isolation Scope
+ self.select_label = QtWidgets.QLabel('%s:' % _("Selection"))
+ self.select_label.setToolTip(
+ _("Isolation scope. Choose what to isolate:\n"
+ "- 'All' -> Isolate all the polygons in the object\n"
+ "- 'Selection' -> Isolate a selection of polygons.\n"
+ "- 'Reference Object' - will process the area specified by another object.")
+ )
+ self.select_combo = FCComboBox()
+ self.select_combo.addItems(
+ [_("All"), _("Area Selection"), _("Polygon Selection"), _("Reference Object")]
+ )
+ self.select_combo.setObjectName("i_selection")
+
+ self.grid3.addWidget(self.select_label, 30, 0)
+ self.grid3.addWidget(self.select_combo, 30, 1)
+
+ self.reference_combo_type_label = QtWidgets.QLabel('%s:' % _("Ref. Type"))
+ self.reference_combo_type_label.setToolTip(
+ _("The type of FlatCAM object to be used as non copper clearing reference.\n"
+ "It can be Gerber, Excellon or Geometry.")
+ )
+ self.reference_combo_type = FCComboBox()
+ self.reference_combo_type.addItems([_("Gerber"), _("Excellon"), _("Geometry")])
+
+ self.grid3.addWidget(self.reference_combo_type_label, 31, 0)
+ self.grid3.addWidget(self.reference_combo_type, 31, 1)
+
+ self.reference_combo_label = QtWidgets.QLabel('%s:' % _("Ref. Object"))
+ self.reference_combo_label.setToolTip(
+ _("The FlatCAM object to be used as non copper clearing reference.")
+ )
+ self.reference_combo = FCComboBox()
+ self.reference_combo.setModel(self.app.collection)
+ self.reference_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
+ self.reference_combo.is_last = True
+
+ self.grid3.addWidget(self.reference_combo_label, 32, 0)
+ self.grid3.addWidget(self.reference_combo, 32, 1)
+
+ self.reference_combo.hide()
+ self.reference_combo_label.hide()
+ self.reference_combo_type.hide()
+ self.reference_combo_type_label.hide()
+
+ # Area Selection shape
+ self.area_shape_label = QtWidgets.QLabel('%s:' % _("Shape"))
+ self.area_shape_label.setToolTip(
+ _("The kind of selection shape used for area selection.")
+ )
+
+ self.area_shape_radio = RadioSet([{'label': _("Square"), 'value': 'square'},
+ {'label': _("Polygon"), 'value': 'polygon'}])
+
+ self.grid3.addWidget(self.area_shape_label, 33, 0)
+ self.grid3.addWidget(self.area_shape_radio, 33, 1)
+
+ self.area_shape_label.hide()
+ self.area_shape_radio.hide()
+
+ separator_line = QtWidgets.QFrame()
+ separator_line.setFrameShape(QtWidgets.QFrame.HLine)
+ separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
+ self.grid3.addWidget(separator_line, 34, 0, 1, 2)
+
+ self.generate_iso_button = QtWidgets.QPushButton("%s" % _("Generate Isolation Geometry"))
+ self.generate_iso_button.setStyleSheet("""
+ QPushButton
+ {
+ font-weight: bold;
+ }
+ """)
+ self.generate_iso_button.setToolTip(
+ _("Create a Geometry object with toolpaths to cut \n"
+ "isolation outside, inside or on both sides of the\n"
+ "object. For a Gerber object outside means outside\n"
+ "of the Gerber feature and inside means inside of\n"
+ "the Gerber feature, if possible at all. This means\n"
+ "that only if the Gerber feature has openings inside, they\n"
+ "will be isolated. If what is wanted is to cut isolation\n"
+ "inside the actual Gerber feature, use a negative tool\n"
+ "diameter above.")
+ )
+ self.tools_box.addWidget(self.generate_iso_button)
+
+ self.create_buffer_button = QtWidgets.QPushButton(_('Buffer Solid Geometry'))
+ self.create_buffer_button.setToolTip(
+ _("This button is shown only when the Gerber file\n"
+ "is loaded without buffering.\n"
+ "Clicking this will create the buffered geometry\n"
+ "required for isolation.")
+ )
+ self.tools_box.addWidget(self.create_buffer_button)
+
+ self.tools_box.addStretch()
+
+ # ## Reset Tool
+ self.reset_button = QtWidgets.QPushButton(_("Reset Tool"))
+ self.reset_button.setToolTip(
+ _("Will reset the tool parameters.")
+ )
+ self.reset_button.setStyleSheet("""
+ QPushButton
+ {
+ font-weight: bold;
+ }
+ """)
+ self.tools_box.addWidget(self.reset_button)
+ # ############################ FINSIHED GUI ###################################
+ # #############################################################################
+
+ # #############################################################################
+ # ###################### Setup CONTEXT MENU ###################################
+ # #############################################################################
+ self.tools_table.setupContextMenu()
+ self.tools_table.addContextMenu(
+ _("Add"), self.on_add_tool_by_key, icon=QtGui.QIcon(self.app.resource_location + "/plus16.png")
+ )
+ self.tools_table.addContextMenu(
+ _("Add from DB"), self.on_add_tool_by_key, icon=QtGui.QIcon(self.app.resource_location + "/plus16.png")
+ )
+ self.tools_table.addContextMenu(
+ _("Delete"), lambda:
+ self.on_tool_delete(rows_to_delete=None, all_tools=None),
+ icon=QtGui.QIcon(self.app.resource_location + "/delete32.png")
+ )
+
+ # #############################################################################
+ # ########################## VARIABLES ########################################
+ # #############################################################################
+ self.units = ''
+ self.iso_tools = {}
+ self.tooluid = 0
+
+ # store here the default data for Geometry Data
+ self.default_data = {}
+
+ self.obj_name = ""
+ self.grb_obj = None
+
+ self.sel_rect = []
+
+ self.first_click = False
+ self.cursor_pos = None
+ self.mouse_is_dragging = False
+
+ # store here the points for the "Polygon" area selection shape
+ self.points = []
+
+ # set this as True when in middle of drawing a "Polygon" area selection shape
+ # it is made False by first click to signify that the shape is complete
+ self.poly_drawn = False
+
+ self.mm = None
+ self.mr = None
+ self.kp = None
+
+ # store geometry from Polygon selection
+ self.poly_dict = {}
+
+ self.grid_status_memory = self.app.ui.grid_snap_btn.isChecked()
+
+ # store here the state of the combine_cb GUI element
+ # used when the rest machining is toggled
+ self.old_combine_state = None
+
+ # store here solid_geometry when there are tool with isolation job
+ self.solid_geometry = []
+
+ self.tool_type_item_options = []
+
+ self.grb_circle_steps = int(self.app.defaults["gerber_circle_steps"])
+
+ self.tooldia = None
+
+ # multiprocessing
+ self.pool = self.app.pool
+ self.results = []
+
+ # disconnect flags
+ self.area_sel_disconnect_flag = False
+ self.poly_sel_disconnect_flag = False
+
+ self.form_fields = {
+ "tools_iso_passes": self.passes_entry,
+ "tools_iso_overlap": self.iso_overlap_entry,
+ "tools_iso_milling_type": self.milling_type_radio,
+ "tools_iso_combine": self.combine_passes_cb,
+ "tools_iso_follow": self.follow_cb,
+ "tools_iso_isotype": self.iso_type_radio
+ }
+
+ self.name2option = {
+ "i_passes": "tools_iso_passes",
+ "i_overlap": "tools_iso_overlap",
+ "i_milling_type": "tools_iso_milling_type",
+ "i_combine": "tools_iso_combine",
+ "i_follow": "tools_iso_follow",
+ "i_iso_type": "tools_iso_isotype"
+ }
+
+ self.old_tool_dia = None
+
+ # #############################################################################
+ # ############################ SIGNALS ########################################
+ # #############################################################################
+ self.addtool_btn.clicked.connect(self.on_tool_add)
+ self.addtool_entry.returnPressed.connect(self.on_tooldia_updated)
+ self.deltool_btn.clicked.connect(self.on_tool_delete)
+
+ self.tipdia_entry.returnPressed.connect(self.on_calculate_tooldia)
+ self.tipangle_entry.returnPressed.connect(self.on_calculate_tooldia)
+ self.cutz_entry.returnPressed.connect(self.on_calculate_tooldia)
+
+ self.reference_combo_type.currentIndexChanged.connect(self.on_reference_combo_changed)
+ self.select_combo.currentIndexChanged.connect(self.on_toggle_reference)
+
+ self.rest_cb.stateChanged.connect(self.on_rest_machining_check)
+ self.order_radio.activated_custom[str].connect(self.on_order_changed)
+
+ self.type_excobj_radio.activated_custom.connect(self.on_type_excobj_index_changed)
+ self.apply_param_to_all.clicked.connect(self.on_apply_param_to_all_clicked)
+ self.addtool_from_db_btn.clicked.connect(self.on_tool_add_from_db_clicked)
+
+ self.generate_iso_button.clicked.connect(self.on_iso_button_click)
+ self.reset_button.clicked.connect(self.set_tool_ui)
+
+ # Cleanup on Graceful exit (CTRL+ALT+X combo key)
+ self.app.cleanup.connect(self.reset_usage)
+
+ def on_type_excobj_index_changed(self, val):
+ obj_type = 0 if val == 'gerber' else 2
+ self.exc_obj_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex()))
+ self.exc_obj_combo.setCurrentIndex(0)
+ self.exc_obj_combo.obj_type = {
+ "gerber": "Gerber", "geometry": "Geometry"
+ }[self.type_excobj_radio.get_value()]
+
+ def install(self, icon=None, separator=None, **kwargs):
+ AppTool.install(self, icon, separator, shortcut='Alt+I', **kwargs)
+
+ def run(self, toggle=True):
+ self.app.defaults.report_usage("ToolIsolation()")
+ log.debug("ToolIsolation().run() was launched ...")
+
+ if toggle:
+ # if the splitter is hidden, display it, else hide it but only if the current widget is the same
+ if self.app.ui.splitter.sizes()[0] == 0:
+ self.app.ui.splitter.setSizes([1, 1])
+ else:
+ try:
+ if self.app.ui.tool_scroll_area.widget().objectName() == self.toolName:
+ # if tab is populated with the tool but it does not have the focus, focus on it
+ if not self.app.ui.notebook.currentWidget() is self.app.ui.tool_tab:
+ # focus on Tool Tab
+ self.app.ui.notebook.setCurrentWidget(self.app.ui.tool_tab)
+ else:
+ self.app.ui.splitter.setSizes([0, 1])
+ except AttributeError:
+ pass
+ else:
+ if self.app.ui.splitter.sizes()[0] == 0:
+ self.app.ui.splitter.setSizes([1, 1])
+
+ AppTool.run(self)
+ self.set_tool_ui()
+
+ # reset those objects on a new run
+ self.grb_obj = None
+ self.obj_name = ''
+
+ self.build_ui()
+ self.app.ui.notebook.setTabText(2, _("Isolation Tool"))
+
+ def set_tool_ui(self):
+ self.units = self.app.defaults['units'].upper()
+ self.old_tool_dia = self.app.defaults["tools_iso_newdia"]
+
+ # try to select in the Gerber combobox the active object
+ try:
+ selected_obj = self.app.collection.get_active()
+ if selected_obj.kind == 'gerber':
+ current_name = selected_obj.options['name']
+ self.object_combo.set_value(current_name)
+ except Exception:
+ pass
+
+ app_mode = self.app.defaults["global_app_level"]
+
+ # Show/Hide Advanced Options
+ if app_mode == 'b':
+ self.level.setText('%s' % _('Basic'))
+
+ # override the Preferences Value; in Basic mode the Tool Type is always Circular ('C1')
+ self.tool_type_radio.set_value('C1')
+ self.tool_type_label.hide()
+ self.tool_type_radio.hide()
+
+ self.milling_type_label.hide()
+ self.milling_type_radio.hide()
+
+ self.iso_type_label.hide()
+ self.iso_type_radio.set_value('full')
+ self.iso_type_radio.hide()
+
+ self.follow_cb.set_value(False)
+ self.follow_cb.hide()
+ self.follow_label.hide()
+
+ self.rest_cb.set_value(False)
+ self.rest_cb.hide()
+
+ self.except_cb.set_value(False)
+ self.except_cb.hide()
+
+ self.select_combo.setCurrentIndex(0)
+ self.select_combo.hide()
+ self.select_label.hide()
+ else:
+ self.level.setText('%s' % _('Advanced'))
+
+ self.tool_type_radio.set_value(self.app.defaults["tools_iso_tool_type"])
+ self.tool_type_label.show()
+ self.tool_type_radio.show()
+
+ self.milling_type_label.show()
+ self.milling_type_radio.show()
+
+ self.iso_type_label.show()
+ self.iso_type_radio.set_value(self.app.defaults["tools_iso_isotype"])
+ self.iso_type_radio.show()
+
+ self.follow_cb.set_value(self.app.defaults["tools_iso_follow"])
+ self.follow_cb.show()
+ self.follow_label.show()
+
+ self.rest_cb.set_value(self.app.defaults["tools_iso_rest"])
+ self.rest_cb.show()
+
+ self.except_cb.set_value(self.app.defaults["tools_iso_isoexcept"])
+ self.except_cb.show()
+
+ self.select_combo.set_value(self.app.defaults["tools_iso_selection"])
+ self.select_combo.show()
+ self.select_label.show()
+
+ if self.app.defaults["gerber_buffering"] == 'no':
+ self.create_buffer_button.show()
+ try:
+ self.create_buffer_button.clicked.disconnect(self.on_generate_buffer)
+ except TypeError:
+ pass
+ self.create_buffer_button.clicked.connect(self.on_generate_buffer)
+ else:
+ self.create_buffer_button.hide()
+
+ self.tools_frame.show()
+
+ self.type_excobj_radio.set_value('gerber')
+
+ # run those once so the obj_type attribute is updated for the FCComboboxes
+ # so the last loaded object is displayed
+ self.on_type_excobj_index_changed(val="gerber")
+ self.on_reference_combo_changed()
+
+ self.order_radio.set_value(self.app.defaults["tools_iso_order"])
+ self.passes_entry.set_value(self.app.defaults["tools_iso_passes"])
+ self.iso_overlap_entry.set_value(self.app.defaults["tools_iso_overlap"])
+ self.milling_type_radio.set_value(self.app.defaults["tools_iso_milling_type"])
+ self.combine_passes_cb.set_value(self.app.defaults["tools_iso_combine_passes"])
+ self.area_shape_radio.set_value(self.app.defaults["tools_iso_area_shape"])
+
+ self.cutz_entry.set_value(self.app.defaults["tools_iso_tool_cutz"])
+ self.tool_type_radio.set_value(self.app.defaults["tools_iso_tool_type"])
+ self.tipdia_entry.set_value(self.app.defaults["tools_iso_tool_vtipdia"])
+ self.tipangle_entry.set_value(self.app.defaults["tools_iso_tool_vtipangle"])
+ self.addtool_entry.set_value(self.app.defaults["tools_iso_newdia"])
+
+ self.on_tool_type(val=self.tool_type_radio.get_value())
+
+ loaded_obj = self.app.collection.get_by_name(self.object_combo.get_value())
+ if loaded_obj:
+ outname = loaded_obj.options['name']
+ else:
+ outname = ''
+
+ # init the working variables
+ self.default_data.clear()
+ self.default_data = {
+ "name": outname + '_iso',
+ "plot": self.app.defaults["geometry_plot"],
+ "cutz": float(self.cutz_entry.get_value()),
+ "vtipdia": float(self.tipdia_entry.get_value()),
+ "vtipangle": float(self.tipangle_entry.get_value()),
+ "travelz": self.app.defaults["geometry_travelz"],
+ "feedrate": self.app.defaults["geometry_feedrate"],
+ "feedrate_z": self.app.defaults["geometry_feedrate_z"],
+ "feedrate_rapid": self.app.defaults["geometry_feedrate_rapid"],
+ "dwell": self.app.defaults["geometry_dwell"],
+ "dwelltime": self.app.defaults["geometry_dwelltime"],
+ "multidepth": self.app.defaults["geometry_multidepth"],
+ "ppname_g": self.app.defaults["geometry_ppname_g"],
+ "depthperpass": self.app.defaults["geometry_depthperpass"],
+ "extracut": self.app.defaults["geometry_extracut"],
+ "extracut_length": self.app.defaults["geometry_extracut_length"],
+ "toolchange": self.app.defaults["geometry_toolchange"],
+ "toolchangez": self.app.defaults["geometry_toolchangez"],
+ "endz": self.app.defaults["geometry_endz"],
+ "endxy": self.app.defaults["geometry_endxy"],
+
+ "spindlespeed": self.app.defaults["geometry_spindlespeed"],
+ "toolchangexy": self.app.defaults["geometry_toolchangexy"],
+ "startz": self.app.defaults["geometry_startz"],
+
+ "area_exclusion": self.app.defaults["geometry_area_exclusion"],
+ "area_shape": self.app.defaults["geometry_area_shape"],
+ "area_strategy": self.app.defaults["geometry_area_strategy"],
+ "area_overz": float(self.app.defaults["geometry_area_overz"]),
+
+ "tools_iso_passes": self.app.defaults["tools_iso_passes"],
+ "tools_iso_overlap": self.app.defaults["tools_iso_overlap"],
+ "tools_iso_milling_type": self.app.defaults["tools_iso_milling_type"],
+ "tools_iso_follow": self.app.defaults["tools_iso_follow"],
+ "tools_iso_isotype": self.app.defaults["tools_iso_isotype"],
+
+ "tools_iso_rest": self.app.defaults["tools_iso_rest"],
+ "tools_iso_combine_passes": self.app.defaults["tools_iso_combine_passes"],
+ "tools_iso_isoexcept": self.app.defaults["tools_iso_isoexcept"],
+ "tools_iso_selection": self.app.defaults["tools_iso_selection"],
+ "tools_iso_area_shape": self.app.defaults["tools_iso_area_shape"]
+ }
+
+ try:
+ dias = [float(self.app.defaults["tools_iso_tooldia"])]
+ except (ValueError, TypeError):
+ dias = [float(eval(dia)) for dia in self.app.defaults["tools_iso_tooldia"].split(",") if dia != '']
+
+ if not dias:
+ log.error("At least one tool diameter needed. Verify in Edit -> Preferences -> TOOLS -> Isolation Tools.")
+ return
+
+ self.tooluid = 0
+
+ self.iso_tools.clear()
+ for tool_dia in dias:
+ self.tooluid += 1
+ self.iso_tools.update({
+ int(self.tooluid): {
+ 'tooldia': float('%.*f' % (self.decimals, tool_dia)),
+ 'offset': 'Path',
+ 'offset_value': 0.0,
+ 'type': 'Iso',
+ 'tool_type': self.tool_type_radio.get_value(),
+ 'data': deepcopy(self.default_data),
+ 'solid_geometry': []
+ }
+ })
+
+ self.obj_name = ""
+ self.grb_obj = None
+
+ self.tool_type_item_options = ["C1", "C2", "C3", "C4", "B", "V"]
+ self.units = self.app.defaults['units'].upper()
+
+ def build_ui(self):
+ self.ui_disconnect()
+
+ # updated units
+ self.units = self.app.defaults['units'].upper()
+
+ sorted_tools = []
+ for k, v in self.iso_tools.items():
+ sorted_tools.append(float('%.*f' % (self.decimals, float(v['tooldia']))))
+
+ order = self.order_radio.get_value()
+ if order == 'fwd':
+ sorted_tools.sort(reverse=False)
+ elif order == 'rev':
+ sorted_tools.sort(reverse=True)
+ else:
+ pass
+
+ n = len(sorted_tools)
+ self.tools_table.setRowCount(n)
+ tool_id = 0
+
+ for tool_sorted in sorted_tools:
+ for tooluid_key, tooluid_value in self.iso_tools.items():
+ if float('%.*f' % (self.decimals, tooluid_value['tooldia'])) == tool_sorted:
+ tool_id += 1
+ id_ = QtWidgets.QTableWidgetItem('%d' % int(tool_id))
+ id_.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled)
+ row_no = tool_id - 1
+ self.tools_table.setItem(row_no, 0, id_) # Tool name/id
+
+ # Make sure that the drill diameter when in MM is with no more than 2 decimals
+ # There are no drill bits in MM with more than 2 decimals diameter
+ # For INCH the decimals should be no more than 4. There are no drills under 10mils
+ dia = QtWidgets.QTableWidgetItem('%.*f' % (self.decimals, tooluid_value['tooldia']))
+
+ dia.setFlags(QtCore.Qt.ItemIsEnabled)
+
+ tool_type_item = FCComboBox()
+ tool_type_item.addItems(self.tool_type_item_options)
+
+ # tool_type_item.setStyleSheet('background-color: rgb(255,255,255)')
+ idx = tool_type_item.findText(tooluid_value['tool_type'])
+ tool_type_item.setCurrentIndex(idx)
+
+ tool_uid_item = QtWidgets.QTableWidgetItem(str(int(tooluid_key)))
+
+ self.tools_table.setItem(row_no, 1, dia) # Diameter
+ self.tools_table.setCellWidget(row_no, 2, tool_type_item)
+
+ # ## REMEMBER: THIS COLUMN IS HIDDEN IN OBJECTUI.PY # ##
+ self.tools_table.setItem(row_no, 3, tool_uid_item) # Tool unique ID
+
+ # make the diameter column editable
+ for row in range(tool_id):
+ self.tools_table.item(row, 1).setFlags(
+ QtCore.Qt.ItemIsEditable | QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled)
+
+ # all the tools are selected by default
+ self.tools_table.selectColumn(0)
+ #
+ self.tools_table.resizeColumnsToContents()
+ self.tools_table.resizeRowsToContents()
+
+ vertical_header = self.tools_table.verticalHeader()
+ vertical_header.hide()
+ self.tools_table.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
+
+ horizontal_header = self.tools_table.horizontalHeader()
+ horizontal_header.setMinimumSectionSize(10)
+ horizontal_header.setSectionResizeMode(0, QtWidgets.QHeaderView.Fixed)
+ horizontal_header.resizeSection(0, 20)
+ horizontal_header.setSectionResizeMode(1, QtWidgets.QHeaderView.Stretch)
+
+ # self.tools_table.setSortingEnabled(True)
+ # sort by tool diameter
+ # self.tools_table.sortItems(1)
+
+ self.tools_table.setMinimumHeight(self.tools_table.getHeight())
+ self.tools_table.setMaximumHeight(self.tools_table.getHeight())
+
+ self.ui_connect()
+
+ # set the text on tool_data_label after loading the object
+ sel_rows = []
+ sel_items = self.tools_table.selectedItems()
+ for it in sel_items:
+ sel_rows.append(it.row())
+ if len(sel_rows) > 1:
+ self.tool_data_label.setText(
+ "%s: %s" % (_('Parameters for'), _("Multiple Tools"))
+ )
+
+ def ui_connect(self):
+ self.tools_table.itemChanged.connect(self.on_tool_edit)
+
+ # rows selected
+ self.tools_table.clicked.connect(self.on_row_selection_change)
+ self.tools_table.horizontalHeader().sectionClicked.connect(self.on_row_selection_change)
+
+ for row in range(self.tools_table.rowCount()):
+ try:
+ self.tools_table.cellWidget(row, 2).currentIndexChanged.connect(self.on_tooltable_cellwidget_change)
+ except AttributeError:
+ pass
+
+ self.tool_type_radio.activated_custom.connect(self.on_tool_type)
+
+ for opt in self.form_fields:
+ current_widget = self.form_fields[opt]
+ if isinstance(current_widget, FCCheckBox):
+ current_widget.stateChanged.connect(self.form_to_storage)
+ if isinstance(current_widget, RadioSet):
+ current_widget.activated_custom.connect(self.form_to_storage)
+ elif isinstance(current_widget, FCDoubleSpinner) or isinstance(current_widget, FCSpinner):
+ current_widget.returnPressed.connect(self.form_to_storage)
+ elif isinstance(current_widget, FCComboBox):
+ current_widget.currentIndexChanged.connect(self.form_to_storage)
+
+ self.rest_cb.stateChanged.connect(self.on_rest_machining_check)
+ self.order_radio.activated_custom[str].connect(self.on_order_changed)
+
+ def ui_disconnect(self):
+
+ try:
+ # if connected, disconnect the signal from the slot on item_changed as it creates issues
+ self.tools_table.itemChanged.disconnect()
+ except (TypeError, AttributeError):
+ pass
+
+ try:
+ # if connected, disconnect the signal from the slot on item_changed as it creates issues
+ self.tool_type_radio.activated_custom.disconnect()
+ except (TypeError, AttributeError):
+ pass
+
+ for row in range(self.tools_table.rowCount()):
+
+ try:
+ self.tools_table.cellWidget(row, 2).currentIndexChanged.disconnect()
+ except (TypeError, AttributeError):
+ pass
+
+ for opt in self.form_fields:
+ current_widget = self.form_fields[opt]
+ if isinstance(current_widget, FCCheckBox):
+ try:
+ current_widget.stateChanged.disconnect(self.form_to_storage)
+ except (TypeError, ValueError):
+ pass
+ if isinstance(current_widget, RadioSet):
+ try:
+ current_widget.activated_custom.disconnect(self.form_to_storage)
+ except (TypeError, ValueError):
+ pass
+ elif isinstance(current_widget, FCDoubleSpinner) or isinstance(current_widget, FCSpinner):
+ try:
+ current_widget.returnPressed.disconnect(self.form_to_storage)
+ except (TypeError, ValueError):
+ pass
+ elif isinstance(current_widget, FCComboBox):
+ try:
+ current_widget.currentIndexChanged.disconnect(self.form_to_storage)
+ except (TypeError, ValueError):
+ pass
+
+ try:
+ self.rest_cb.stateChanged.disconnect()
+ except (TypeError, ValueError):
+ pass
+ try:
+ self.order_radio.activated_custom[str].disconnect()
+ except (TypeError, ValueError):
+ pass
+
+ # rows selected
+ try:
+ self.tools_table.clicked.disconnect()
+ except (TypeError, AttributeError):
+ pass
+ try:
+ self.tools_table.horizontalHeader().sectionClicked.disconnect()
+ except (TypeError, AttributeError):
+ pass
+
+ def on_row_selection_change(self):
+ self.blockSignals(True)
+
+ sel_rows = [it.row() for it in self.tools_table.selectedItems()]
+ # sel_rows = sorted(set(index.row() for index in self.tools_table.selectedIndexes()))
+
+ if not sel_rows:
+ sel_rows = [0]
+
+ for current_row in sel_rows:
+ # populate the form with the data from the tool associated with the row parameter
+ try:
+ item = self.tools_table.item(current_row, 3)
+ if item is not None:
+ tooluid = int(item.text())
+ else:
+ return
+ except Exception as e:
+ log.debug("Tool missing. Add a tool in the Tool Table. %s" % str(e))
+ return
+
+ # update the QLabel that shows for which Tool we have the parameters in the UI form
+ if len(sel_rows) == 1:
+ cr = current_row + 1
+ self.tool_data_label.setText(
+ "%s: %s %d" % (_('Parameters for'), _("Tool"), cr)
+ )
+ try:
+ # set the form with data from the newly selected tool
+ for tooluid_key, tooluid_value in list(self.iso_tools.items()):
+ if int(tooluid_key) == tooluid:
+ for key, value in tooluid_value.items():
+ if key == 'data':
+ form_value_storage = tooluid_value[key]
+ self.storage_to_form(form_value_storage)
+ except Exception as e:
+ log.debug("ToolIsolation ---> update_ui() " + str(e))
+ else:
+ self.tool_data_label.setText(
+ "%s: %s" % (_('Parameters for'), _("Multiple Tools"))
+ )
+
+ self.blockSignals(False)
+
+ def storage_to_form(self, dict_storage):
+ for form_key in self.form_fields:
+ for storage_key in dict_storage:
+ if form_key == storage_key:
+ try:
+ self.form_fields[form_key].set_value(dict_storage[form_key])
+ except Exception as e:
+ log.debug("ToolIsolation.storage_to_form() --> %s" % str(e))
+ pass
+
+ def form_to_storage(self):
+ if self.tools_table.rowCount() == 0:
+ # there is no tool in tool table so we can't save the GUI elements values to storage
+ return
+
+ self.blockSignals(True)
+
+ widget_changed = self.sender()
+ wdg_objname = widget_changed.objectName()
+ option_changed = self.name2option[wdg_objname]
+
+ # row = self.tools_table.currentRow()
+ rows = sorted(set(index.row() for index in self.tools_table.selectedIndexes()))
+ for row in rows:
+ if row < 0:
+ row = 0
+ tooluid_item = int(self.tools_table.item(row, 3).text())
+
+ for tooluid_key, tooluid_val in self.iso_tools.items():
+ if int(tooluid_key) == tooluid_item:
+ new_option_value = self.form_fields[option_changed].get_value()
+ if option_changed in tooluid_val:
+ tooluid_val[option_changed] = new_option_value
+ if option_changed in tooluid_val['data']:
+ tooluid_val['data'][option_changed] = new_option_value
+
+ self.blockSignals(False)
+
+ def on_apply_param_to_all_clicked(self):
+ if self.tools_table.rowCount() == 0:
+ # there is no tool in tool table so we can't save the GUI elements values to storage
+ log.debug("ToolIsolation.on_apply_param_to_all_clicked() --> no tool in Tools Table, aborting.")
+ return
+
+ self.blockSignals(True)
+
+ row = self.tools_table.currentRow()
+ if row < 0:
+ row = 0
+
+ tooluid_item = int(self.tools_table.item(row, 3).text())
+ temp_tool_data = {}
+
+ for tooluid_key, tooluid_val in self.iso_tools.items():
+ if int(tooluid_key) == tooluid_item:
+ # this will hold the 'data' key of the self.tools[tool] dictionary that corresponds to
+ # the current row in the tool table
+ temp_tool_data = tooluid_val['data']
+ break
+
+ for tooluid_key, tooluid_val in self.iso_tools.items():
+ tooluid_val['data'] = deepcopy(temp_tool_data)
+
+ self.app.inform.emit('[success] %s' % _("Current Tool parameters were applied to all tools."))
+ self.blockSignals(False)
+
+ def on_add_tool_by_key(self):
+ tool_add_popup = FCInputDialog(title='%s...' % _("New Tool"),
+ text='%s:' % _('Enter a Tool Diameter'),
+ min=0.0001, max=9999.9999, decimals=self.decimals)
+ tool_add_popup.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/letter_t_32.png'))
+
+ val, ok = tool_add_popup.get_value()
+ if ok:
+ if float(val) == 0:
+ self.app.inform.emit('[WARNING_NOTCL] %s' %
+ _("Please enter a tool diameter with non-zero value, in Float format."))
+ return
+ self.on_tool_add(dia=float(val))
+ else:
+ self.app.inform.emit('[WARNING_NOTCL] %s...' % _("Adding Tool cancelled"))
+
+ def on_tooldia_updated(self):
+ if self.tool_type_radio.get_value() == 'C1':
+ self.old_tool_dia = self.addtool_entry.get_value()
+
+ def on_reference_combo_changed(self):
+ obj_type = self.reference_combo_type.currentIndex()
+ self.reference_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex()))
+ self.reference_combo.setCurrentIndex(0)
+ self.reference_combo.obj_type = {
+ _("Gerber"): "Gerber", _("Excellon"): "Excellon", _("Geometry"): "Geometry"
+ }[self.reference_combo_type.get_value()]
+
+ def on_toggle_reference(self):
+ val = self.select_combo.get_value()
+
+ if val == _("All"):
+ self.reference_combo.hide()
+ self.reference_combo_label.hide()
+ self.reference_combo_type.hide()
+ self.reference_combo_type_label.hide()
+ self.area_shape_label.hide()
+ self.area_shape_radio.hide()
+
+ # disable rest-machining for area painting
+ self.rest_cb.setDisabled(False)
+ elif val == _("Area Selection"):
+ self.reference_combo.hide()
+ self.reference_combo_label.hide()
+ self.reference_combo_type.hide()
+ self.reference_combo_type_label.hide()
+ self.area_shape_label.show()
+ self.area_shape_radio.show()
+
+ # disable rest-machining for area isolation
+ self.rest_cb.set_value(False)
+ self.rest_cb.setDisabled(True)
+ elif val == _("Polygon Selection"):
+ self.reference_combo.hide()
+ self.reference_combo_label.hide()
+ self.reference_combo_type.hide()
+ self.reference_combo_type_label.hide()
+ self.area_shape_label.hide()
+ self.area_shape_radio.hide()
+ else:
+ self.reference_combo.show()
+ self.reference_combo_label.show()
+ self.reference_combo_type.show()
+ self.reference_combo_type_label.show()
+ self.area_shape_label.hide()
+ self.area_shape_radio.hide()
+
+ # disable rest-machining for area painting
+ self.rest_cb.setDisabled(False)
+
+ def on_order_changed(self, order):
+ if order != 'no':
+ self.build_ui()
+
+ def on_rest_machining_check(self, state):
+ if state:
+ self.order_radio.set_value('rev')
+ self.order_label.setDisabled(True)
+ self.order_radio.setDisabled(True)
+
+ self.old_combine_state = self.combine_passes_cb.get_value()
+ self.combine_passes_cb.set_value(True)
+ self.combine_passes_cb.setDisabled(True)
+ else:
+ self.order_label.setDisabled(False)
+ self.order_radio.setDisabled(False)
+
+ self.combine_passes_cb.set_value(self.old_combine_state)
+ self.combine_passes_cb.setDisabled(False)
+
+ def on_tooltable_cellwidget_change(self):
+ cw = self.sender()
+ assert isinstance(cw, QtWidgets.QComboBox), \
+ "Expected a QtWidgets.QComboBox, got %s" % isinstance(cw, QtWidgets.QComboBox)
+
+ cw_index = self.tools_table.indexAt(cw.pos())
+ cw_row = cw_index.row()
+ cw_col = cw_index.column()
+
+ current_uid = int(self.tools_table.item(cw_row, 3).text())
+
+ # if the sender is in the column with index 2 then we update the tool_type key
+ if cw_col == 2:
+ tt = cw.currentText()
+ typ = 'Iso' if tt == 'V' else "Rough"
+
+ self.iso_tools[current_uid].update({
+ 'type': typ,
+ 'tool_type': tt,
+ })
+
+ def on_tool_type(self, val):
+ if val == 'V':
+ self.addtool_entry_lbl.setDisabled(True)
+ self.addtool_entry.setDisabled(True)
+ self.tipdialabel.show()
+ self.tipdia_entry.show()
+ self.tipanglelabel.show()
+ self.tipangle_entry.show()
+
+ self.on_calculate_tooldia()
+ else:
+ self.addtool_entry_lbl.setDisabled(False)
+ self.addtool_entry.setDisabled(False)
+ self.tipdialabel.hide()
+ self.tipdia_entry.hide()
+ self.tipanglelabel.hide()
+ self.tipangle_entry.hide()
+
+ self.addtool_entry.set_value(self.old_tool_dia)
+
+ def on_calculate_tooldia(self):
+ if self.tool_type_radio.get_value() == 'V':
+ tip_dia = float(self.tipdia_entry.get_value())
+ tip_angle = float(self.tipangle_entry.get_value()) / 2.0
+ cut_z = float(self.cutz_entry.get_value())
+ cut_z = -cut_z if cut_z < 0 else cut_z
+
+ # calculated tool diameter so the cut_z parameter is obeyed
+ tool_dia = tip_dia + (2 * cut_z * math.tan(math.radians(tip_angle)))
+
+ # update the default_data so it is used in the iso_tools dict
+ self.default_data.update({
+ "vtipdia": tip_dia,
+ "vtipangle": (tip_angle * 2),
+ })
+
+ self.addtool_entry.set_value(tool_dia)
+
+ return tool_dia
+ else:
+ return float(self.addtool_entry.get_value())
+
+ def on_tool_add(self, dia=None, muted=None):
+ self.blockSignals(True)
+
+ self.units = self.app.defaults['units'].upper()
+
+ if dia:
+ tool_dia = dia
+ else:
+ tool_dia = self.on_calculate_tooldia()
+ if tool_dia is None:
+ self.build_ui()
+ self.app.inform.emit('[WARNING_NOTCL] %s' % _("Please enter a tool diameter to add, in Float format."))
+ return
+
+ tool_dia = float('%.*f' % (self.decimals, tool_dia))
+
+ if tool_dia == 0:
+ 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
+ tool_uid_list = []
+ for tooluid_key in self.iso_tools:
+ tool_uid_item = int(tooluid_key)
+ tool_uid_list.append(tool_uid_item)
+
+ # find maximum from the temp_uid, add 1 and this is the new 'tooluid'
+ if not tool_uid_list:
+ max_uid = 0
+ else:
+ max_uid = max(tool_uid_list)
+ self.tooluid = int(max_uid + 1)
+
+ tool_dias = []
+ for k, v in self.iso_tools.items():
+ for tool_v in v.keys():
+ if tool_v == 'tooldia':
+ tool_dias.append(float('%.*f' % (self.decimals, (v[tool_v]))))
+
+ if float('%.*f' % (self.decimals, tool_dia)) in tool_dias:
+ if muted is None:
+ self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled. Tool already in Tool Table."))
+ # self.tools_table.itemChanged.connect(self.on_tool_edit)
+ self.blockSignals(False)
+
+ return
+ else:
+ if muted is None:
+ self.app.inform.emit('[success] %s' % _("New tool added to Tool Table."))
+ self.iso_tools.update({
+ int(self.tooluid): {
+ 'tooldia': float('%.*f' % (self.decimals, tool_dia)),
+ 'offset': 'Path',
+ 'offset_value': 0.0,
+ 'type': 'Iso',
+ 'tool_type': self.tool_type_radio.get_value(),
+ 'data': deepcopy(self.default_data),
+ 'solid_geometry': []
+ }
+ })
+
+ self.blockSignals(False)
+ self.build_ui()
+
+ def on_tool_edit(self):
+ self.blockSignals(True)
+
+ old_tool_dia = ''
+ tool_dias = []
+ for k, v in self.iso_tools.items():
+ for tool_v in v.keys():
+ if tool_v == 'tooldia':
+ tool_dias.append(float('%.*f' % (self.decimals, v[tool_v])))
+
+ for row in range(self.tools_table.rowCount()):
+
+ try:
+ new_tool_dia = float(self.tools_table.item(row, 1).text())
+ except ValueError:
+ # try to convert comma to decimal point. if it's still not working error message and return
+ try:
+ new_tool_dia = float(self.tools_table.item(row, 1).text().replace(',', '.'))
+ except ValueError:
+ self.app.inform.emit('[ERROR_NOTCL] %s' % _("Wrong value format entered, use a number."))
+ self.blockSignals(False)
+ 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.iso_tools[tooluid]['tooldia'] = new_tool_dia
+ self.app.inform.emit('[success] %s' % _("Tool from Tool Table was edited."))
+ self.blockSignals(False)
+ self.build_ui()
+ return
+ else:
+ # identify the old tool_dia and restore the text in tool table
+ for k, v in self.iso_tools.items():
+ if k == tooluid:
+ old_tool_dia = v['tooldia']
+ break
+ restore_dia_item = self.tools_table.item(row, 1)
+ restore_dia_item.setText(str(old_tool_dia))
+ self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled. "
+ "New diameter value is already in the Tool Table."))
+ self.blockSignals(False)
+ self.build_ui()
+
+ def on_tool_delete(self, rows_to_delete=None, all_tools=None):
+ """
+ Will delete a tool in the tool table
+
+ :param rows_to_delete: which rows to delete; can be a list
+ :param all_tools: delete all tools in the tool table
+ :return:
+ """
+ self.blockSignals(True)
+
+ deleted_tools_list = []
+
+ if all_tools:
+ self.iso_tools.clear()
+ self.blockSignals(False)
+ self.build_ui()
+ return
+
+ if rows_to_delete:
+ try:
+ for row in rows_to_delete:
+ tooluid_del = int(self.tools_table.item(row, 3).text())
+ deleted_tools_list.append(tooluid_del)
+ except TypeError:
+ tooluid_del = int(self.tools_table.item(rows_to_delete, 3).text())
+ deleted_tools_list.append(tooluid_del)
+
+ for t in deleted_tools_list:
+ self.iso_tools.pop(t, None)
+
+ self.blockSignals(False)
+ self.build_ui()
+ return
+
+ try:
+ if self.tools_table.selectedItems():
+ for row_sel in self.tools_table.selectedItems():
+ row = row_sel.row()
+ if row < 0:
+ continue
+ tooluid_del = int(self.tools_table.item(row, 3).text())
+ deleted_tools_list.append(tooluid_del)
+
+ for t in deleted_tools_list:
+ self.iso_tools.pop(t, None)
+
+ except AttributeError:
+ self.app.inform.emit('[WARNING_NOTCL] %s' % _("Delete failed. Select a tool to delete."))
+ self.blockSignals(False)
+ return
+ except Exception as e:
+ log.debug(str(e))
+
+ self.app.inform.emit('[success] %s' % _("Tool(s) deleted from Tool Table."))
+ self.blockSignals(False)
+ self.build_ui()
+
+ def on_generate_buffer(self):
+ self.app.inform.emit('[WARNING_NOTCL] %s...' % _("Buffering solid geometry"))
+
+ self.obj_name = self.object_combo.currentText()
+
+ # Get source object.
+ try:
+ self.grb_obj = self.app.collection.get_by_name(self.obj_name)
+ except Exception as e:
+ self.app.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Could not retrieve object"), str(self.obj_name)))
+ return "Could not retrieve object: %s with error: %s" % (self.obj_name, str(e))
+
+ if self.grb_obj is None:
+ self.app.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Object not found"), str(self.obj_name)))
+ return
+
+ def buffer_task():
+ with self.app.proc_container.new('%s...' % _("Buffering")):
+ if isinstance(self.grb_obj.solid_geometry, list):
+ self.grb_obj.solid_geometry = MultiPolygon(self.grb_obj.solid_geometry)
+
+ self.grb_obj.solid_geometry = self.grb_obj.solid_geometry.buffer(0.0000001)
+ self.grb_obj.solid_geometry = self.grb_obj.solid_geometry.buffer(-0.0000001)
+ self.app.inform.emit('[success] %s.' % _("Done"))
+ self.grb_obj.plot_single_object.emit()
+
+ self.app.worker_task.emit({'fcn': buffer_task, 'params': []})
+
+ def on_iso_button_click(self):
+
+ self.obj_name = self.object_combo.currentText()
+
+ # Get source object.
+ try:
+ self.grb_obj = self.app.collection.get_by_name(self.obj_name)
+ except Exception as e:
+ self.app.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Could not retrieve object"), str(self.obj_name)))
+ return "Could not retrieve object: %s with error: %s" % (self.obj_name, str(e))
+
+ if self.grb_obj is None:
+ self.app.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Object not found"), str(self.obj_name)))
+ return
+
+ def worker_task(iso_obj):
+ with self.app.proc_container.new(_("Isolating...")):
+ self.isolate_handler(iso_obj)
+
+ self.app.worker_task.emit({'fcn': worker_task, 'params': [self.grb_obj]})
+
+ def follow_geo(self, followed_obj, outname):
+ """
+ Creates a geometry object "following" the gerber paths.
+
+ :param followed_obj: Gerber object for which to generate the follow geometry
+ :type followed_obj: AppObjects.FlatCAMGerber.GerberObject
+ :param outname: Nme of the resulting Geometry object
+ :type outname: str
+ :return: None
+ """
+
+ def follow_init(follow_obj, app_obj):
+ # Propagate options
+ follow_obj.options["cnctooldia"] = str(tooldia)
+ follow_obj.solid_geometry = self.grb_obj.follow_geometry
+
+ # in the end toggle the visibility of the origin object so we can see the generated Geometry
+ followed_obj.ui.plot_cb.set_value(False)
+ follow_name = outname
+
+ for tool in self.iso_tools:
+ tooldia = self.iso_tools[tool]['tooldia']
+ new_name = "%s_%.*f" % (follow_name, self.decimals, tooldia)
+
+ follow_state = self.iso_tools[tool]['data']['tools_iso_follow']
+ if follow_state:
+ ret = self.app.app_obj.new_object("geometry", new_name, follow_init)
+ if ret == 'fail':
+ self.app.inform.emit("[ERROR_NOTCL] %s: %.*f" % (
+ _("Failed to create Follow Geometry with tool diameter"), self.decimals, tooldia))
+ else:
+ self.app.inform.emit("[success] %s: %.*f" % (
+ _("Follow Geometry was created with tool diameter"), self.decimals, tooldia))
+
+ def isolate_handler(self, isolated_obj):
+ """
+ Creates a geometry object with paths around the gerber features.
+
+ :param isolated_obj: Gerber object for which to generate the isolating routing geometry
+ :type isolated_obj: AppObjects.FlatCAMGerber.GerberObject
+ :return: None
+ """
+ selection = self.select_combo.get_value()
+
+ if selection == _("All"):
+ self.isolate(isolated_obj=isolated_obj)
+ elif selection == _("Area Selection"):
+ self.app.inform.emit('[WARNING_NOTCL] %s' % _("Click the start point of the area."))
+
+ if self.app.is_legacy is False:
+ self.app.plotcanvas.graph_event_disconnect('mouse_press', self.app.on_mouse_click_over_plot)
+ self.app.plotcanvas.graph_event_disconnect('mouse_move', self.app.on_mouse_move_over_plot)
+ self.app.plotcanvas.graph_event_disconnect('mouse_release', self.app.on_mouse_click_release_over_plot)
+ else:
+ self.app.plotcanvas.graph_event_disconnect(self.app.mp)
+ self.app.plotcanvas.graph_event_disconnect(self.app.mm)
+ self.app.plotcanvas.graph_event_disconnect(self.app.mr)
+
+ self.mr = self.app.plotcanvas.graph_event_connect('mouse_release', self.on_mouse_release)
+ self.mm = self.app.plotcanvas.graph_event_connect('mouse_move', self.on_mouse_move)
+ self.kp = self.app.plotcanvas.graph_event_connect('key_press', self.on_key_press)
+
+ # disconnect flags
+ self.area_sel_disconnect_flag = True
+
+ elif selection == _("Polygon Selection"):
+ # disengage the grid snapping since it may be hard to click on polygons with grid snapping on
+ if self.app.ui.grid_snap_btn.isChecked():
+ self.grid_status_memory = True
+ self.app.ui.grid_snap_btn.trigger()
+ else:
+ self.grid_status_memory = False
+
+ self.mr = self.app.plotcanvas.graph_event_connect('mouse_release', self.on_poly_mouse_click_release)
+ self.kp = self.app.plotcanvas.graph_event_connect('key_press', self.on_key_press)
+
+ if self.app.is_legacy is False:
+ self.app.plotcanvas.graph_event_disconnect('mouse_release',
+ self.app.on_mouse_click_release_over_plot)
+ else:
+ self.app.plotcanvas.graph_event_disconnect(self.app.mr)
+
+ # disconnect flags
+ self.poly_sel_disconnect_flag = True
+
+ self.app.inform.emit('[WARNING_NOTCL] %s' % _("Click on a polygon to isolate it."))
+ elif selection == _("Reference Object"):
+ ref_obj = self.app.collection.get_by_name(self.reference_combo.get_value())
+ ref_geo = cascaded_union(ref_obj.solid_geometry)
+ use_geo = cascaded_union(isolated_obj.solid_geometry).difference(ref_geo)
+ self.isolate(isolated_obj=isolated_obj, geometry=use_geo)
+
+ def isolate(self, isolated_obj, geometry=None, limited_area=None, plot=True):
+ """
+ Creates an isolation routing geometry object in the project.
+
+ :param isolated_obj: Gerber object for which to generate the isolating routing geometry
+ :type isolated_obj: AppObjects.FlatCAMGerber.GerberObject
+ :param geometry: specific geometry to isolate
+ :type geometry: List of Shapely polygon
+ :param limited_area: if not None isolate only this area
+ :type limited_area: Shapely Polygon or a list of them
+ :param plot: if to plot the resulting geometry object
+ :type plot: bool
+ :return: None
+ """
+
+ combine = self.combine_passes_cb.get_value()
+ tools_storage = self.iso_tools
+
+ # update the Common Parameters valuse in the self.iso_tools
+ for tool_iso in self.iso_tools:
+ for key in self.iso_tools[tool_iso]:
+ if key == 'data':
+ self.iso_tools[tool_iso][key]["tools_iso_rest"] = self.rest_cb.get_value()
+ self.iso_tools[tool_iso][key]["tools_iso_combine_passes"] = combine
+ self.iso_tools[tool_iso][key]["tools_iso_isoexcept"] = self.except_cb.get_value()
+ self.iso_tools[tool_iso][key]["tools_iso_selection"] = self.select_combo.get_value()
+ self.iso_tools[tool_iso][key]["tools_iso_area_shape"] = self.area_shape_radio.get_value()
+
+ if combine:
+ if self.rest_cb.get_value():
+ self.combined_rest(iso_obj=isolated_obj, iso2geo=geometry, tools_storage=tools_storage,
+ lim_area=limited_area, plot=plot)
+ else:
+ self.combined_normal(iso_obj=isolated_obj, iso2geo=geometry, tools_storage=tools_storage,
+ lim_area=limited_area, plot=plot)
+
+ else:
+ for tool in tools_storage:
+ tool_data = tools_storage[tool]['data']
+ to_follow = tool_data['tools_iso_follow']
+
+ work_geo = geometry
+ if work_geo is None:
+ work_geo = isolated_obj.follow_geometry if to_follow else isolated_obj.solid_geometry
+
+ iso_t = {
+ 'ext': 0,
+ 'int': 1,
+ 'full': 2
+ }[tool_data['tools_iso_isotype']]
+
+ passes = tool_data['tools_iso_passes']
+ overlap = tool_data['tools_iso_overlap']
+ overlap /= 100.0
+
+ milling_type = tool_data['tools_iso_milling_type']
+
+ iso_except = self.except_cb.get_value()
+
+ for i in range(passes):
+ tool_dia = tools_storage[tool]['tooldia']
+ tool_type = tools_storage[tool]['tool_type']
+
+ iso_offset = tool_dia * ((2 * i + 1) / 2.0000001) - (i * overlap * tool_dia)
+ outname = "%s_%.*f" % (isolated_obj.options["name"], self.decimals, float(tool_dia))
+
+ if passes > 1:
+ iso_name = outname + "_iso" + str(i + 1)
+ if iso_t == 0:
+ iso_name = outname + "_ext_iso" + str(i + 1)
+ elif iso_t == 1:
+ iso_name = outname + "_int_iso" + str(i + 1)
+ else:
+ iso_name = outname + "_iso"
+ if iso_t == 0:
+ iso_name = outname + "_ext_iso"
+ elif iso_t == 1:
+ iso_name = outname + "_int_iso"
+
+ # if milling type is climb then the move is counter-clockwise around features
+ mill_dir = 1 if milling_type == 'cl' else 0
+
+ iso_geo = self.generate_envelope(iso_offset, mill_dir, geometry=work_geo, env_iso_type=iso_t,
+ follow=to_follow, nr_passes=i)
+ if iso_geo == 'fail':
+ self.app.inform.emit(
+ '[ERROR_NOTCL] %s' % _("Isolation geometry could not be generated."))
+ continue
+
+ # ############################################################
+ # ########## AREA SUBTRACTION ################################
+ # ############################################################
+ if iso_except:
+ self.app.proc_container.update_view_text(' %s' % _("Subtracting Geo"))
+ iso_geo = self.area_subtraction(iso_geo)
+
+ if limited_area:
+ self.app.proc_container.update_view_text(' %s' % _("Intersecting Geo"))
+ iso_geo = self.area_intersection(iso_geo, intersection_geo=limited_area)
+
+ tool_data.update({
+ "name": iso_name,
+ })
+
+ def iso_init(geo_obj, fc_obj):
+ # Propagate options
+ geo_obj.options["cnctooldia"] = str(tool_dia)
+ geo_obj.solid_geometry = deepcopy(iso_geo)
+
+ # ############################################################
+ # ########## AREA SUBTRACTION ################################
+ # ############################################################
+ if self.except_cb.get_value():
+ self.app.proc_container.update_view_text(' %s' % _("Subtracting Geo"))
+ geo_obj.solid_geometry = self.area_subtraction(geo_obj.solid_geometry)
+
+ geo_obj.tools = {}
+ geo_obj.tools['1'] = {}
+ geo_obj.tools.update({
+ '1': {
+ 'tooldia': float(tool_dia),
+ 'offset': 'Path',
+ 'offset_value': 0.0,
+ 'type': _('Rough'),
+ 'tool_type': tool_type,
+ 'data': tool_data,
+ 'solid_geometry': geo_obj.solid_geometry
+ }
+ })
+
+ # detect if solid_geometry is empty and this require list flattening which is "heavy"
+ # or just looking in the lists (they are one level depth) and if any is not empty
+ # proceed with object creation, if there are empty and the number of them is the length
+ # of the list then we have an empty solid_geometry which should raise a Custom Exception
+ empty_cnt = 0
+ if not isinstance(geo_obj.solid_geometry, list):
+ geo_obj.solid_geometry = [geo_obj.solid_geometry]
+
+ for g in geo_obj.solid_geometry:
+ if g:
+ break
+ else:
+ empty_cnt += 1
+
+ if empty_cnt == len(geo_obj.solid_geometry):
+ fc_obj.inform.emit('[ERROR_NOTCL] %s: %s' % (
+ _("Empty Geometry in"), geo_obj.options["name"]))
+ return 'fail'
+ else:
+ fc_obj.inform.emit('[success] %s: %s' %
+ (_("Isolation geometry created"), geo_obj.options["name"]))
+ geo_obj.multigeo = False
+
+ self.app.app_obj.new_object("geometry", iso_name, iso_init, plot=plot)
+
+ def combined_rest(self, iso_obj, iso2geo, tools_storage, lim_area, plot=True):
+ """
+
+ :param iso_obj: the isolated Gerber object
+ :type iso_obj: AppObjects.FlatCAMGerber.GerberObject
+ :param iso2geo: specific geometry to isolate
+ :type iso2geo: list of Shapely Polygon
+ :param tools_storage: a dictionary that holds the tools and geometry
+ :type tools_storage: dict
+ :param lim_area: if not None restrict isolation to this area
+ :type lim_area: Shapely Polygon or a list of them
+ :param plot: if to plot the resulting geometry object
+ :type plot: bool
+ :return: Isolated solid geometry
+ :rtype:
+ """
+
+ log.debug("ToolIsolation.combine_rest()")
+
+ total_solid_geometry = []
+
+ iso_name = iso_obj.options["name"] + '_iso_rest'
+ work_geo = iso_obj.solid_geometry if iso2geo is None else iso2geo
+
+ sorted_tools = []
+ for k, v in self.iso_tools.items():
+ sorted_tools.append(float('%.*f' % (self.decimals, float(v['tooldia']))))
+
+ order = self.order_radio.get_value()
+ if order == 'fwd':
+ sorted_tools.sort(reverse=False)
+ elif order == 'rev':
+ sorted_tools.sort(reverse=True)
+ else:
+ pass
+
+ for sorted_tool in sorted_tools:
+ for tool in tools_storage:
+ if float('%.*f' % (self.decimals, tools_storage[tool]['tooldia'])) == sorted_tool:
+
+ tool_dia = tools_storage[tool]['tooldia']
+ tool_type = tools_storage[tool]['tool_type']
+ tool_data = tools_storage[tool]['data']
+
+ iso_t = {
+ 'ext': 0,
+ 'int': 1,
+ 'full': 2
+ }[tool_data['tools_iso_isotype']]
+
+ passes = tool_data['tools_iso_passes']
+ overlap = tool_data['tools_iso_overlap']
+ overlap /= 100.0
+
+ milling_type = tool_data['tools_iso_milling_type']
+ # if milling type is climb then the move is counter-clockwise around features
+ mill_dir = True if milling_type == 'cl' else False
+
+ iso_except = self.except_cb.get_value()
+
+ outname = "%s_%.*f" % (iso_obj.options["name"], self.decimals, float(tool_dia))
+
+ internal_name = outname + "_iso"
+ if iso_t == 0:
+ internal_name = outname + "_ext_iso"
+ elif iso_t == 1:
+ internal_name = outname + "_int_iso"
+
+ tool_data.update({
+ "name": internal_name,
+ })
+
+ solid_geo, work_geo = self.generate_rest_geometry(geometry=work_geo, tooldia=tool_dia,
+ passes=passes, overlap=overlap, invert=mill_dir,
+ env_iso_type=iso_t)
+
+ # ############################################################
+ # ########## AREA SUBTRACTION ################################
+ # ############################################################
+ if iso_except:
+ self.app.proc_container.update_view_text(' %s' % _("Subtracting Geo"))
+ solid_geo = self.area_subtraction(solid_geo)
+
+ if lim_area:
+ self.app.proc_container.update_view_text(' %s' % _("Intersecting Geo"))
+ solid_geo = self.area_intersection(solid_geo, intersection_geo=lim_area)
+
+ tools_storage.update({
+ tool: {
+ 'tooldia': float(tool_dia),
+ 'offset': 'Path',
+ 'offset_value': 0.0,
+ 'type': _('Rough'),
+ 'tool_type': tool_type,
+ 'data': tool_data,
+ 'solid_geometry': deepcopy(solid_geo)
+ }
+ })
+
+ total_solid_geometry += solid_geo
+
+ # if the geometry is all isolated
+ if not work_geo:
+ break
+
+ def iso_init(geo_obj, app_obj):
+ geo_obj.options["cnctooldia"] = str(tool_dia)
+
+ geo_obj.tools = dict(tools_storage)
+ geo_obj.solid_geometry = total_solid_geometry
+ # even if combine is checked, one pass is still single-geo
+
+ # remove the tools that have no geometry
+ for geo_tool in list(geo_obj.tools.keys()):
+ if not geo_obj.tools[geo_tool]['solid_geometry']:
+ geo_obj.tools.pop(geo_tool, None)
+
+ if len(tools_storage) > 1:
+ geo_obj.multigeo = True
+ else:
+ for ky in tools_storage.keys():
+ passes_no = float(tools_storage[ky]['data']['tools_iso_passes'])
+ geo_obj.multigeo = True if passes_no > 1 else False
+ break
+
+ # detect if solid_geometry is empty and this require list flattening which is "heavy"
+ # or just looking in the lists (they are one level depth) and if any is not empty
+ # proceed with object creation, if there are empty and the number of them is the length
+ # of the list then we have an empty solid_geometry which should raise a Custom Exception
+ empty_cnt = 0
+ if not isinstance(geo_obj.solid_geometry, list) and \
+ not isinstance(geo_obj.solid_geometry, MultiPolygon):
+ geo_obj.solid_geometry = [geo_obj.solid_geometry]
+
+ for g in geo_obj.solid_geometry:
+ if g:
+ break
+ else:
+ empty_cnt += 1
+
+ if empty_cnt == len(geo_obj.solid_geometry):
+ app_obj.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Empty Geometry in"), geo_obj.options["name"]))
+ return 'fail'
+ else:
+ app_obj.inform.emit('[success] %s: %s' % (_("Isolation geometry created"), geo_obj.options["name"]))
+
+ self.app.app_obj.new_object("geometry", iso_name, iso_init, plot=plot)
+
+ # the tools are finished but the isolation is not finished therefore it failed
+ if work_geo:
+ self.app.inform.emit("[WARNING] %s" % _("Partial failure. The geometry was processed with all tools.\n"
+ "But there are still un-isolated geometry elements. "
+ "Try to include a tool with smaller diameter."))
+ self.app.shell_message(msg=_("The following are coordinates for the copper features "
+ "that could not be isolated:"))
+ msg = ''
+ for geo in work_geo:
+ pt = geo.representative_point()
+ coords = '(%s, %s), ' % (str(pt.x), str(pt.y))
+ msg += coords
+ self.app.shell_message(msg=msg)
+
+ def combined_normal(self, iso_obj, iso2geo, tools_storage, lim_area, plot=True):
+ """
+
+ :param iso_obj: the isolated Gerber object
+ :type iso_obj: AppObjects.FlatCAMGerber.GerberObject
+ :param iso2geo: specific geometry to isolate
+ :type iso2geo: list of Shapely Polygon
+ :param tools_storage: a dictionary that holds the tools and geometry
+ :type tools_storage: dict
+ :param lim_area: if not None restrict isolation to this area
+ :type lim_area: Shapely Polygon or a list of them
+ :param plot: if to plot the resulting geometry object
+ :type plot: bool
+ :return: Isolated solid geometry
+ :rtype:
+ """
+ log.debug("ToolIsolation.combined_normal()")
+
+ total_solid_geometry = []
+
+ iso_name = iso_obj.options["name"] + '_iso_combined'
+ geometry = iso2geo
+
+ for tool in tools_storage:
+ tool_dia = tools_storage[tool]['tooldia']
+ tool_type = tools_storage[tool]['tool_type']
+ tool_data = tools_storage[tool]['data']
+
+ to_follow = tool_data['tools_iso_follow']
+
+ # TODO what to do when the iso2geo param is not None but the Follow cb is checked
+ # for the case when limited area is used .... the follow geo should be clipped too
+ work_geo = geometry
+ if work_geo is None:
+ work_geo = iso_obj.follow_geometry if to_follow else iso_obj.solid_geometry
+
+ iso_t = {
+ 'ext': 0,
+ 'int': 1,
+ 'full': 2
+ }[tool_data['tools_iso_isotype']]
+
+ passes = tool_data['tools_iso_passes']
+ overlap = tool_data['tools_iso_overlap']
+ overlap /= 100.0
+
+ milling_type = tool_data['tools_iso_milling_type']
+
+ iso_except = self.except_cb.get_value()
+
+ outname = "%s_%.*f" % (iso_obj.options["name"], self.decimals, float(tool_dia))
+
+ internal_name = outname + "_iso"
+ if iso_t == 0:
+ internal_name = outname + "_ext_iso"
+ elif iso_t == 1:
+ internal_name = outname + "_int_iso"
+
+ tool_data.update({
+ "name": internal_name,
+ })
+
+ solid_geo = []
+ for nr_pass in range(passes):
+ iso_offset = tool_dia * ((2 * nr_pass + 1) / 2.0000001) - (nr_pass * overlap * tool_dia)
+
+ # if milling type is climb then the move is counter-clockwise around features
+ mill_dir = 1 if milling_type == 'cl' else 0
+
+ iso_geo = self.generate_envelope(iso_offset, mill_dir, geometry=work_geo, env_iso_type=iso_t,
+ follow=to_follow, nr_passes=nr_pass)
+ if iso_geo == 'fail':
+ self.app.inform.emit('[ERROR_NOTCL] %s' % _("Isolation geometry could not be generated."))
+ continue
+ try:
+ for geo in iso_geo:
+ solid_geo.append(geo)
+ except TypeError:
+ solid_geo.append(iso_geo)
+
+ # ############################################################
+ # ########## AREA SUBTRACTION ################################
+ # ############################################################
+ if iso_except:
+ self.app.proc_container.update_view_text(' %s' % _("Subtracting Geo"))
+ solid_geo = self.area_subtraction(solid_geo)
+
+ if lim_area:
+ self.app.proc_container.update_view_text(' %s' % _("Intersecting Geo"))
+ solid_geo = self.area_intersection(solid_geo, intersection_geo=lim_area)
+
+ tools_storage.update({
+ tool: {
+ 'tooldia': float(tool_dia),
+ 'offset': 'Path',
+ 'offset_value': 0.0,
+ 'type': _('Rough'),
+ 'tool_type': tool_type,
+ 'data': tool_data,
+ 'solid_geometry': deepcopy(solid_geo)
+ }
+ })
+
+ total_solid_geometry += solid_geo
+
+ def iso_init(geo_obj, app_obj):
+ geo_obj.options["cnctooldia"] = str(tool_dia)
+
+ geo_obj.tools = dict(tools_storage)
+ geo_obj.solid_geometry = total_solid_geometry
+ # even if combine is checked, one pass is still single-geo
+
+ if len(tools_storage) > 1:
+ geo_obj.multigeo = True
+ else:
+ if to_follow:
+ geo_obj.multigeo = False
+ else:
+ passes_no = 1
+ for ky in tools_storage.keys():
+ passes_no = float(tools_storage[ky]['data']['tools_iso_passes'])
+ geo_obj.multigeo = True if passes_no > 1 else False
+ break
+ geo_obj.multigeo = True if passes_no > 1 else False
+
+ # detect if solid_geometry is empty and this require list flattening which is "heavy"
+ # or just looking in the lists (they are one level depth) and if any is not empty
+ # proceed with object creation, if there are empty and the number of them is the length
+ # of the list then we have an empty solid_geometry which should raise a Custom Exception
+ empty_cnt = 0
+ if not isinstance(geo_obj.solid_geometry, list) and \
+ not isinstance(geo_obj.solid_geometry, MultiPolygon):
+ geo_obj.solid_geometry = [geo_obj.solid_geometry]
+
+ for g in geo_obj.solid_geometry:
+ if g:
+ break
+ else:
+ empty_cnt += 1
+
+ if empty_cnt == len(geo_obj.solid_geometry):
+ app_obj.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Empty Geometry in"), geo_obj.options["name"]))
+ return 'fail'
+ else:
+ app_obj.inform.emit('[success] %s: %s' % (_("Isolation geometry created"), geo_obj.options["name"]))
+
+ self.app.app_obj.new_object("geometry", iso_name, iso_init, plot=plot)
+
+ def area_subtraction(self, geo, subtraction_geo=None):
+ """
+ Subtracts the subtraction_geo (if present else self.solid_geometry) from the geo
+
+ :param geo: target geometry from which to subtract
+ :param subtraction_geo: geometry that acts as subtraction geo
+ :return:
+ """
+ new_geometry = []
+ target_geo = geo
+
+ if subtraction_geo:
+ sub_union = cascaded_union(subtraction_geo)
+ else:
+ name = self.exc_obj_combo.currentText()
+ subtractor_obj = self.app.collection.get_by_name(name)
+ sub_union = cascaded_union(subtractor_obj.solid_geometry)
+
+ try:
+ for geo_elem in target_geo:
+ if isinstance(geo_elem, Polygon):
+ for ring in self.poly2rings(geo_elem):
+ new_geo = ring.difference(sub_union)
+ if new_geo and not new_geo.is_empty:
+ new_geometry.append(new_geo)
+ elif isinstance(geo_elem, MultiPolygon):
+ for poly in geo_elem:
+ for ring in self.poly2rings(poly):
+ new_geo = ring.difference(sub_union)
+ if new_geo and not new_geo.is_empty:
+ new_geometry.append(new_geo)
+ elif isinstance(geo_elem, LineString) or isinstance(geo_elem, LinearRing):
+ new_geo = geo_elem.difference(sub_union)
+ if new_geo:
+ if not new_geo.is_empty:
+ new_geometry.append(new_geo)
+ elif isinstance(geo_elem, MultiLineString):
+ for line_elem in geo_elem:
+ new_geo = line_elem.difference(sub_union)
+ if new_geo and not new_geo.is_empty:
+ new_geometry.append(new_geo)
+ except TypeError:
+ if isinstance(target_geo, Polygon):
+ for ring in self.poly2rings(target_geo):
+ new_geo = ring.difference(sub_union)
+ if new_geo:
+ if not new_geo.is_empty:
+ new_geometry.append(new_geo)
+ elif isinstance(target_geo, LineString) or isinstance(target_geo, LinearRing):
+ new_geo = target_geo.difference(sub_union)
+ if new_geo and not new_geo.is_empty:
+ new_geometry.append(new_geo)
+ elif isinstance(target_geo, MultiLineString):
+ for line_elem in target_geo:
+ new_geo = line_elem.difference(sub_union)
+ if new_geo and not new_geo.is_empty:
+ new_geometry.append(new_geo)
+ return new_geometry
+
+ def area_intersection(self, geo, intersection_geo=None):
+ """
+ Return the intersection geometry between geo and intersection_geo
+
+ :param geo: target geometry
+ :param intersection_geo: second geometry
+ :return:
+ """
+ new_geometry = []
+ target_geo = geo
+
+ intersect_union = cascaded_union(intersection_geo)
+
+ try:
+ for geo_elem in target_geo:
+ if isinstance(geo_elem, Polygon):
+ for ring in self.poly2rings(geo_elem):
+ new_geo = ring.intersection(intersect_union)
+ if new_geo and not new_geo.is_empty:
+ new_geometry.append(new_geo)
+ elif isinstance(geo_elem, MultiPolygon):
+ for poly in geo_elem:
+ for ring in self.poly2rings(poly):
+ new_geo = ring.intersection(intersect_union)
+ if new_geo and not new_geo.is_empty:
+ new_geometry.append(new_geo)
+ elif isinstance(geo_elem, LineString) or isinstance(geo_elem, LinearRing):
+ new_geo = geo_elem.intersection(intersect_union)
+ if new_geo:
+ if not new_geo.is_empty:
+ new_geometry.append(new_geo)
+ elif isinstance(geo_elem, MultiLineString):
+ for line_elem in geo_elem:
+ new_geo = line_elem.intersection(intersect_union)
+ if new_geo and not new_geo.is_empty:
+ new_geometry.append(new_geo)
+ except TypeError:
+ if isinstance(target_geo, Polygon):
+ for ring in self.poly2rings(target_geo):
+ new_geo = ring.intersection(intersect_union)
+ if new_geo:
+ if not new_geo.is_empty:
+ new_geometry.append(new_geo)
+ elif isinstance(target_geo, LineString) or isinstance(target_geo, LinearRing):
+ new_geo = target_geo.intersection(intersect_union)
+ if new_geo and not new_geo.is_empty:
+ new_geometry.append(new_geo)
+ elif isinstance(target_geo, MultiLineString):
+ for line_elem in target_geo:
+ new_geo = line_elem.intersection(intersect_union)
+ if new_geo and not new_geo.is_empty:
+ new_geometry.append(new_geo)
+ return new_geometry
+
+ def on_poly_mouse_click_release(self, event):
+ if self.app.is_legacy is False:
+ event_pos = event.pos
+ right_button = 2
+ self.app.event_is_dragging = self.app.event_is_dragging
+ else:
+ event_pos = (event.xdata, event.ydata)
+ right_button = 3
+ self.app.event_is_dragging = self.app.ui.popMenu.mouse_is_panning
+
+ try:
+ x = float(event_pos[0])
+ y = float(event_pos[1])
+ except TypeError:
+ return
+
+ event_pos = (x, y)
+ curr_pos = self.app.plotcanvas.translate_coords(event_pos)
+ if self.app.grid_status():
+ curr_pos = self.app.geo_editor.snap(curr_pos[0], curr_pos[1])
+ else:
+ curr_pos = (curr_pos[0], curr_pos[1])
+
+ if event.button == 1:
+ clicked_poly = self.find_polygon(point=(curr_pos[0], curr_pos[1]), geoset=self.grb_obj.solid_geometry)
+
+ if self.app.selection_type is not None:
+ self.selection_area_handler(self.app.pos, curr_pos, self.app.selection_type)
+ self.app.selection_type = None
+ elif clicked_poly:
+ if clicked_poly not in self.poly_dict.values():
+ shape_id = self.app.tool_shapes.add(tolerance=self.drawing_tolerance, layer=0, shape=clicked_poly,
+ color=self.app.defaults['global_sel_draw_color'] + 'AF',
+ face_color=self.app.defaults['global_sel_draw_color'] + 'AF',
+ visible=True)
+ self.poly_dict[shape_id] = clicked_poly
+ self.app.inform.emit(
+ '%s: %d. %s' % (_("Added polygon"), int(len(self.poly_dict)),
+ _("Click to add next polygon or right click to start isolation."))
+ )
+ else:
+ try:
+ for k, v in list(self.poly_dict.items()):
+ if v == clicked_poly:
+ self.app.tool_shapes.remove(k)
+ self.poly_dict.pop(k)
+ break
+ except TypeError:
+ return
+ self.app.inform.emit(
+ '%s. %s' % (_("Removed polygon"),
+ _("Click to add/remove next polygon or right click to start isolation."))
+ )
+
+ self.app.tool_shapes.redraw()
+ else:
+ self.app.inform.emit(_("No polygon detected under click position."))
+ elif event.button == right_button and self.app.event_is_dragging is False:
+ # restore the Grid snapping if it was active before
+ if self.grid_status_memory is True:
+ self.app.ui.grid_snap_btn.trigger()
+
+ if self.app.is_legacy is False:
+ self.app.plotcanvas.graph_event_disconnect('mouse_release', self.on_poly_mouse_click_release)
+ self.app.plotcanvas.graph_event_disconnect('key_press', self.on_key_pres)
+ else:
+ self.app.plotcanvas.graph_event_disconnect(self.mr)
+ self.app.plotcanvas.graph_event_disconnect(self.kp)
+
+ self.app.mr = self.app.plotcanvas.graph_event_connect('mouse_release',
+ self.app.on_mouse_click_release_over_plot)
+
+ # disconnect flags
+ self.poly_sel_disconnect_flag = False
+
+ self.app.tool_shapes.clear(update=True)
+
+ if self.poly_dict:
+ poly_list = deepcopy(list(self.poly_dict.values()))
+ self.isolate(isolated_obj=self.grb_obj, geometry=poly_list)
+ self.poly_dict.clear()
+ else:
+ self.app.inform.emit('[ERROR_NOTCL] %s' % _("List of single polygons is empty. Aborting."))
+
+ def selection_area_handler(self, start_pos, end_pos, sel_type):
+ """
+ :param start_pos: mouse position when the selection LMB click was done
+ :param end_pos: mouse position when the left mouse button is released
+ :param sel_type: if True it's a left to right selection (enclosure), if False it's a 'touch' selection
+ :return:
+ """
+ poly_selection = Polygon([start_pos, (end_pos[0], start_pos[1]), end_pos, (start_pos[0], end_pos[1])])
+
+ # delete previous selection shape
+ self.app.delete_selection_shape()
+
+ added_poly_count = 0
+ try:
+ for geo in self.solid_geometry:
+ if geo not in self.poly_dict.values():
+ if sel_type is True:
+ if geo.within(poly_selection):
+ shape_id = self.app.tool_shapes.add(tolerance=self.drawing_tolerance, layer=0,
+ shape=geo,
+ color=self.app.defaults['global_sel_draw_color'] + 'AF',
+ face_color=self.app.defaults[
+ 'global_sel_draw_color'] + 'AF',
+ visible=True)
+ self.poly_dict[shape_id] = geo
+ added_poly_count += 1
+ else:
+ if poly_selection.intersects(geo):
+ shape_id = self.app.tool_shapes.add(tolerance=self.drawing_tolerance, layer=0,
+ shape=geo,
+ color=self.app.defaults['global_sel_draw_color'] + 'AF',
+ face_color=self.app.defaults[
+ 'global_sel_draw_color'] + 'AF',
+ visible=True)
+ self.poly_dict[shape_id] = geo
+ added_poly_count += 1
+ except TypeError:
+ if self.solid_geometry not in self.poly_dict.values():
+ if sel_type is True:
+ if self.solid_geometry.within(poly_selection):
+ shape_id = self.app.tool_shapes.add(tolerance=self.drawing_tolerance, layer=0,
+ shape=self.solid_geometry,
+ color=self.app.defaults['global_sel_draw_color'] + 'AF',
+ face_color=self.app.defaults[
+ 'global_sel_draw_color'] + 'AF',
+ visible=True)
+ self.poly_dict[shape_id] = self.solid_geometry
+ added_poly_count += 1
+ else:
+ if poly_selection.intersects(self.solid_geometry):
+ shape_id = self.app.tool_shapes.add(tolerance=self.drawing_tolerance, layer=0,
+ shape=self.solid_geometry,
+ color=self.app.defaults['global_sel_draw_color'] + 'AF',
+ face_color=self.app.defaults[
+ 'global_sel_draw_color'] + 'AF',
+ visible=True)
+ self.poly_dict[shape_id] = self.solid_geometry
+ added_poly_count += 1
+
+ if added_poly_count > 0:
+ self.app.tool_shapes.redraw()
+ self.app.inform.emit(
+ '%s: %d. %s' % (_("Added polygon"),
+ int(added_poly_count),
+ _("Click to add next polygon or right click to start isolation."))
+ )
+ else:
+ self.app.inform.emit(_("No polygon in selection."))
+
+ # To be called after clicking on the plot.
+ def on_mouse_release(self, event):
+ if self.app.is_legacy is False:
+ event_pos = event.pos
+ # event_is_dragging = event.is_dragging
+ right_button = 2
+ else:
+ event_pos = (event.xdata, event.ydata)
+ # event_is_dragging = self.app.plotcanvas.is_dragging
+ right_button = 3
+
+ event_pos = self.app.plotcanvas.translate_coords(event_pos)
+ if self.app.grid_status():
+ curr_pos = self.app.geo_editor.snap(event_pos[0], event_pos[1])
+ else:
+ curr_pos = (event_pos[0], event_pos[1])
+
+ x1, y1 = curr_pos[0], curr_pos[1]
+
+ shape_type = self.area_shape_radio.get_value()
+
+ # do clear area only for left mouse clicks
+ if event.button == 1:
+ if shape_type == "square":
+ if self.first_click is False:
+ self.first_click = True
+ 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():
+ self.cursor_pos = self.app.geo_editor.snap(event_pos[0], event_pos[1])
+ else:
+ self.app.inform.emit(_("Zone added. Click to start adding next zone or right click to finish."))
+ self.app.delete_selection_shape()
+
+ x0, y0 = self.cursor_pos[0], self.cursor_pos[1]
+
+ pt1 = (x0, y0)
+ pt2 = (x1, y0)
+ pt3 = (x1, y1)
+ pt4 = (x0, y1)
+
+ new_rectangle = Polygon([pt1, pt2, pt3, pt4])
+ self.sel_rect.append(new_rectangle)
+
+ # add a temporary shape on canvas
+ self.draw_tool_selection_shape(old_coords=(x0, y0), coords=(x1, y1))
+
+ self.first_click = False
+ return
+ else:
+ self.points.append((x1, y1))
+
+ if len(self.points) > 1:
+ self.poly_drawn = True
+ self.app.inform.emit(_("Click on next Point or click right mouse button to complete ..."))
+
+ return ""
+ elif event.button == right_button and self.mouse_is_dragging is False:
+
+ shape_type = self.area_shape_radio.get_value()
+
+ if shape_type == "square":
+ self.first_click = False
+ else:
+ # if we finish to add a polygon
+ if self.poly_drawn is True:
+ try:
+ # try to add the point where we last clicked if it is not already in the self.points
+ last_pt = (x1, y1)
+ if last_pt != self.points[-1]:
+ self.points.append(last_pt)
+ except IndexError:
+ pass
+
+ # we need to add a Polygon and a Polygon can be made only from at least 3 points
+ if len(self.points) > 2:
+ self.delete_moving_selection_shape()
+ pol = Polygon(self.points)
+ # do not add invalid polygons even if they are drawn by utility geometry
+ if pol.is_valid:
+ self.sel_rect.append(pol)
+ self.draw_selection_shape_polygon(points=self.points)
+ self.app.inform.emit(
+ _("Zone added. Click to start adding next zone or right click to finish."))
+
+ self.points = []
+ self.poly_drawn = False
+ return
+
+ self.delete_tool_selection_shape()
+
+ if self.app.is_legacy is False:
+ self.app.plotcanvas.graph_event_disconnect('mouse_release', self.on_mouse_release)
+ self.app.plotcanvas.graph_event_disconnect('mouse_move', self.on_mouse_move)
+ self.app.plotcanvas.graph_event_disconnect('key_press', self.on_key_press)
+ else:
+ self.app.plotcanvas.graph_event_disconnect(self.mr)
+ self.app.plotcanvas.graph_event_disconnect(self.mm)
+ self.app.plotcanvas.graph_event_disconnect(self.kp)
+
+ self.app.mp = self.app.plotcanvas.graph_event_connect('mouse_press',
+ self.app.on_mouse_click_over_plot)
+ self.app.mm = self.app.plotcanvas.graph_event_connect('mouse_move',
+ self.app.on_mouse_move_over_plot)
+ self.app.mr = self.app.plotcanvas.graph_event_connect('mouse_release',
+ self.app.on_mouse_click_release_over_plot)
+
+ # disconnect flags
+ self.area_sel_disconnect_flag = False
+
+ if len(self.sel_rect) == 0:
+ return
+
+ self.sel_rect = cascaded_union(self.sel_rect)
+ self.isolate(isolated_obj=self.grb_obj, limited_area=self.sel_rect, plot=True)
+ self.sel_rect = []
+
+ # called on mouse move
+ def on_mouse_move(self, event):
+ shape_type = self.area_shape_radio.get_value()
+
+ if self.app.is_legacy is False:
+ event_pos = event.pos
+ event_is_dragging = event.is_dragging
+ # right_button = 2
+ else:
+ event_pos = (event.xdata, event.ydata)
+ event_is_dragging = self.app.plotcanvas.is_dragging
+ # right_button = 3
+
+ curr_pos = self.app.plotcanvas.translate_coords(event_pos)
+
+ # detect mouse dragging motion
+ if event_is_dragging is True:
+ self.mouse_is_dragging = True
+ else:
+ self.mouse_is_dragging = False
+
+ # update the cursor position
+ if self.app.grid_status():
+ # Update cursor
+ curr_pos = self.app.geo_editor.snap(curr_pos[0], curr_pos[1])
+
+ self.app.app_cursor.set_data(np.asarray([(curr_pos[0], curr_pos[1])]),
+ symbol='++', edge_color=self.app.cursor_color_3D,
+ edge_width=self.app.defaults["global_cursor_width"],
+ size=self.app.defaults["global_cursor_size"])
+
+ if self.cursor_pos is None:
+ self.cursor_pos = (0, 0)
+
+ self.app.dx = curr_pos[0] - float(self.cursor_pos[0])
+ self.app.dy = curr_pos[1] - float(self.cursor_pos[1])
+
+ # # update the positions on status bar
+ self.app.ui.position_label.setText(" X: %.4f "
+ "Y: %.4f " % (curr_pos[0], curr_pos[1]))
+ # self.app.ui.rel_position_label.setText("Dx: %.4f Dy: "
+ # "%.4f " % (self.app.dx, self.app.dy))
+
+ units = self.app.defaults["units"].lower()
+ self.app.plotcanvas.text_hud.text = \
+ 'Dx:\t{:<.4f} [{:s}]\nDy:\t{:<.4f} [{:s}]\n\nX: \t{:<.4f} [{:s}]\nY: \t{:<.4f} [{:s}]'.format(
+ self.app.dx, units, self.app.dy, units, curr_pos[0], units, curr_pos[1], units)
+
+ # draw the utility geometry
+ if shape_type == "square":
+ if self.first_click:
+ self.app.delete_selection_shape()
+ self.app.draw_moving_selection_shape(old_coords=(self.cursor_pos[0], self.cursor_pos[1]),
+ coords=(curr_pos[0], curr_pos[1]))
+ else:
+ self.delete_moving_selection_shape()
+ self.draw_moving_selection_shape_poly(points=self.points, data=(curr_pos[0], curr_pos[1]))
+
+ def on_key_press(self, event):
+ # modifiers = QtWidgets.QApplication.keyboardModifiers()
+ # matplotlib_key_flag = False
+
+ # events out of the self.app.collection view (it's about Project Tab) are of type int
+ if type(event) is int:
+ key = event
+ # events from the GUI are of type QKeyEvent
+ elif type(event) == QtGui.QKeyEvent:
+ key = event.key()
+ elif isinstance(event, mpl_key_event): # MatPlotLib key events are trickier to interpret than the rest
+ # matplotlib_key_flag = True
+
+ key = event.key
+ key = QtGui.QKeySequence(key)
+
+ # check for modifiers
+ key_string = key.toString().lower()
+ if '+' in key_string:
+ mod, __, key_text = key_string.rpartition('+')
+ if mod.lower() == 'ctrl':
+ # modifiers = QtCore.Qt.ControlModifier
+ pass
+ elif mod.lower() == 'alt':
+ # modifiers = QtCore.Qt.AltModifier
+ pass
+ elif mod.lower() == 'shift':
+ # modifiers = QtCore.Qt.ShiftModifier
+ pass
+ else:
+ # modifiers = QtCore.Qt.NoModifier
+ pass
+ key = QtGui.QKeySequence(key_text)
+
+ # events from Vispy are of type KeyEvent
+ else:
+ key = event.key
+
+ if key == QtCore.Qt.Key_Escape or key == 'Escape':
+
+ if self.area_sel_disconnect_flag is True:
+ if self.app.is_legacy is False:
+ self.app.plotcanvas.graph_event_disconnect('mouse_release', self.on_mouse_release)
+ self.app.plotcanvas.graph_event_disconnect('mouse_move', self.on_mouse_move)
+ self.app.plotcanvas.graph_event_disconnect('key_press', self.on_key_press)
+ else:
+ self.app.plotcanvas.graph_event_disconnect(self.mr)
+ self.app.plotcanvas.graph_event_disconnect(self.mm)
+ self.app.plotcanvas.graph_event_disconnect(self.kp)
+
+ self.app.mp = self.app.plotcanvas.graph_event_connect('mouse_press',
+ self.app.on_mouse_click_over_plot)
+ self.app.mm = self.app.plotcanvas.graph_event_connect('mouse_move',
+ self.app.on_mouse_move_over_plot)
+ self.app.mr = self.app.plotcanvas.graph_event_connect('mouse_release',
+ self.app.on_mouse_click_release_over_plot)
+
+ if self.poly_sel_disconnect_flag is False:
+ # restore the Grid snapping if it was active before
+ if self.grid_status_memory is True:
+ self.app.ui.grid_snap_btn.trigger()
+
+ if self.app.is_legacy is False:
+ self.app.plotcanvas.graph_event_disconnect('mouse_release', self.on_poly_mouse_click_release)
+ self.app.plotcanvas.graph_event_disconnect('key_press', self.on_key_pres)
+ else:
+ self.app.plotcanvas.graph_event_disconnect(self.mr)
+ self.app.plotcanvas.graph_event_disconnect(self.kp)
+
+ self.app.mr = self.app.plotcanvas.graph_event_connect('mouse_release',
+ self.app.on_mouse_click_release_over_plot)
+
+ self.points = []
+ self.poly_drawn = False
+ self.delete_moving_selection_shape()
+ self.delete_tool_selection_shape()
+
+ @staticmethod
+ def poly2rings(poly):
+ return [poly.exterior] + [interior for interior in poly.interiors]
+
+ @staticmethod
+ def poly2ext(poly):
+ return [poly.exterior]
+
+ @staticmethod
+ def poly2ints(poly):
+ return [interior for interior in poly.interiors]
+
+ def generate_envelope(self, offset, invert, geometry=None, env_iso_type=2, follow=None, nr_passes=0):
+ """
+ Isolation_geometry produces an envelope that is going on the left of the geometry
+ (the copper features). To leave the least amount of burrs on the features
+ the tool needs to travel on the right side of the features (this is called conventional milling)
+ the first pass is the one cutting all of the features, so it needs to be reversed
+ the other passes overlap preceding ones and cut the left over copper. It is better for them
+ to cut on the right side of the left over copper i.e on the left side of the features.
+
+ :param offset: Offset distance to be passed to the obj.isolation_geometry() method
+ :type offset: float
+ :param invert: If to invert the direction of geometry (CW to CCW or reverse)
+ :type invert: int
+ :param geometry: Shapely Geometry for which t ogenerate envelope
+ :type geometry:
+ :param env_iso_type: type of isolation, can be 0 = exteriors or 1 = interiors or 2 = both (complete)
+ :type env_iso_type: int
+ :param follow: If the kind of isolation is a "follow" one
+ :type follow: bool
+ :param nr_passes: Number of passes
+ :type nr_passes: int
+ :return: The buffered geometry
+ :rtype: MultiPolygon or Polygon
+ """
+
+ if follow:
+ geom = self.grb_obj.isolation_geometry(offset, geometry=geometry, follow=follow)
+ return geom
+ else:
+ try:
+ geom = self.grb_obj.isolation_geometry(offset, geometry=geometry, iso_type=env_iso_type,
+ passes=nr_passes)
+ except Exception as e:
+ log.debug('ToolIsolation.generate_envelope() --> %s' % str(e))
+ return 'fail'
+
+ if invert:
+ try:
+ pl = []
+ for p in geom:
+ if p is not None:
+ if isinstance(p, Polygon):
+ pl.append(Polygon(p.exterior.coords[::-1], p.interiors))
+ elif isinstance(p, LinearRing):
+ pl.append(Polygon(p.coords[::-1]))
+ geom = MultiPolygon(pl)
+ except TypeError:
+ if isinstance(geom, Polygon) and geom is not None:
+ geom = Polygon(geom.exterior.coords[::-1], geom.interiors)
+ elif isinstance(geom, LinearRing) and geom is not None:
+ geom = Polygon(geom.coords[::-1])
+ else:
+ log.debug("ToolIsolation.generate_envelope() Error --> Unexpected Geometry %s" %
+ type(geom))
+ except Exception as e:
+ log.debug("ToolIsolation.generate_envelope() Error --> %s" % str(e))
+ return 'fail'
+ return geom
+
+ @staticmethod
+ def generate_rest_geometry(geometry, tooldia, passes, overlap, invert, env_iso_type=2):
+ """
+ Will try to isolate the geometry and return a tuple made of list of paths made through isolation
+ and a list of Shapely Polygons that could not be isolated
+
+ :param geometry: A list of Shapely Polygons to be isolated
+ :type geometry: list
+ :param tooldia: The tool diameter used to do the isolation
+ :type tooldia: float
+ :param passes: Number of passes that will made the isolation
+ :type passes: int
+ :param overlap: How much to overlap the previous pass; in percentage [0.00, 99.99]%
+ :type overlap: float
+ :param invert: If to invert the direction of the resulting isolated geometries
+ :type invert: bool
+ :param env_iso_type: can be either 0 = keep exteriors or 1 = keep interiors or 2 = keep all paths
+ :type env_iso_type: int
+ :return: Tuple made from list of isolating paths and list of not isolated Polygons
+ :rtype: tuple
+ """
+
+ isolated_geo = []
+ not_isolated_geo = []
+
+ work_geo = []
+
+ for idx, geo in enumerate(geometry):
+ good_pass_iso = []
+ start_idx = idx + 1
+
+ for nr_pass in range(passes):
+ iso_offset = tooldia * ((2 * nr_pass + 1) / 2.0) - (nr_pass * overlap * tooldia)
+ buf_chek = iso_offset * 2
+ check_geo = geo.buffer(buf_chek)
+
+ intersect_flag = False
+ # find if current pass for current geo is valid (no intersection with other geos))
+ for geo_search_idx in range(idx):
+ if check_geo.intersects(geometry[geo_search_idx]):
+ intersect_flag = True
+ break
+
+ if intersect_flag is False:
+ for geo_search_idx in range(start_idx, len(geometry)):
+ if check_geo.intersects(geometry[geo_search_idx]):
+ intersect_flag = True
+ break
+
+ # if we had an intersection do nothing, else add the geo to the good pass isolations
+ if intersect_flag is False:
+ good_pass_iso.append(geo.buffer(iso_offset))
+
+ if good_pass_iso:
+ work_geo += good_pass_iso
+ else:
+ not_isolated_geo.append(geo)
+
+ if invert:
+ try:
+ pl = []
+ for p in work_geo:
+ if p is not None:
+ if isinstance(p, Polygon):
+ pl.append(Polygon(p.exterior.coords[::-1], p.interiors))
+ elif isinstance(p, LinearRing):
+ pl.append(Polygon(p.coords[::-1]))
+ work_geo = MultiPolygon(pl)
+ except TypeError:
+ if isinstance(work_geo, Polygon) and work_geo is not None:
+ work_geo = [Polygon(work_geo.exterior.coords[::-1], work_geo.interiors)]
+ elif isinstance(work_geo, LinearRing) and work_geo is not None:
+ work_geo = [Polygon(work_geo.coords[::-1])]
+ else:
+ log.debug("ToolIsolation.generate_rest_geometry() Error --> Unexpected Geometry %s" %
+ type(work_geo))
+ except Exception as e:
+ log.debug("ToolIsolation.generate_rest_geometry() Error --> %s" % str(e))
+ return 'fail', 'fail'
+
+ if env_iso_type == 0: # exterior
+ for geo in work_geo:
+ isolated_geo.append(geo.exterior)
+ elif env_iso_type == 1: # interiors
+ for geo in work_geo:
+ isolated_geo += [interior for interior in geo.interiors]
+ else: # exterior + interiors
+ for geo in work_geo:
+ isolated_geo += [geo.exterior] + [interior for interior in geo.interiors]
+
+ return isolated_geo, not_isolated_geo
+
+ def on_iso_tool_add_from_db_executed(self, tool):
+ """
+ Here add the tool from DB in the selected geometry object
+ :return:
+ """
+ tool_from_db = deepcopy(tool)
+
+ res = self.on_tool_from_db_inserted(tool=tool_from_db)
+
+ for idx in range(self.app.ui.plot_tab_area.count()):
+ if self.app.ui.plot_tab_area.tabText(idx) == _("Tools Database"):
+ wdg = self.app.ui.plot_tab_area.widget(idx)
+ wdg.deleteLater()
+ self.app.ui.plot_tab_area.removeTab(idx)
+
+ if res == 'fail':
+ return
+ self.app.inform.emit('[success] %s' % _("Tool from DB added in Tool Table."))
+
+ # select last tool added
+ toolid = res
+ for row in range(self.tools_table.rowCount()):
+ if int(self.tools_table.item(row, 3).text()) == toolid:
+ self.tools_table.selectRow(row)
+ self.on_row_selection_change()
+
+ def on_tool_from_db_inserted(self, tool):
+ """
+ Called from the Tools DB object through a App method when adding a tool from Tools Database
+ :param tool: a dict with the tool data
+ :return: None
+ """
+
+ self.ui_disconnect()
+ self.units = self.app.defaults['units'].upper()
+
+ tooldia = float(tool['tooldia'])
+
+ # construct a list of all 'tooluid' in the self.tools
+ tool_uid_list = []
+ for tooluid_key in self.iso_tools:
+ tool_uid_item = int(tooluid_key)
+ tool_uid_list.append(tool_uid_item)
+
+ # find maximum from the temp_uid, add 1 and this is the new 'tooluid'
+ if not tool_uid_list:
+ max_uid = 0
+ else:
+ max_uid = max(tool_uid_list)
+ tooluid = max_uid + 1
+
+ tooldia = float('%.*f' % (self.decimals, tooldia))
+
+ tool_dias = []
+ for k, v in self.iso_tools.items():
+ for tool_v in v.keys():
+ if tool_v == 'tooldia':
+ tool_dias.append(float('%.*f' % (self.decimals, (v[tool_v]))))
+
+ if float('%.*f' % (self.decimals, tooldia)) in tool_dias:
+ self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled. Tool already in Tool Table."))
+ self.ui_connect()
+ return 'fail'
+
+ self.iso_tools.update({
+ tooluid: {
+ 'tooldia': float('%.*f' % (self.decimals, tooldia)),
+ 'offset': tool['offset'],
+ 'offset_value': tool['offset_value'],
+ 'type': tool['type'],
+ 'tool_type': tool['tool_type'],
+ 'data': deepcopy(tool['data']),
+ 'solid_geometry': []
+ }
+ })
+
+ self.iso_tools[tooluid]['data']['name'] = '_iso'
+
+ self.app.inform.emit('[success] %s' % _("New tool added to Tool Table."))
+
+ self.ui_connect()
+ self.build_ui()
+
+ # if self.tools_table.rowCount() != 0:
+ # self.param_frame.setDisabled(False)
+
+ def on_tool_add_from_db_clicked(self):
+ """
+ Called when the user wants to add a new tool from Tools Database. It will create the Tools Database object
+ and display the Tools Database tab in the form needed for the Tool adding
+ :return: None
+ """
+
+ # if the Tools Database is already opened focus on it
+ for idx in range(self.app.ui.plot_tab_area.count()):
+ if self.app.ui.plot_tab_area.tabText(idx) == _("Tools Database"):
+ self.app.ui.plot_tab_area.setCurrentWidget(self.app.tools_db_tab)
+ break
+ self.app.on_tools_database(source='iso')
+ self.app.tools_db_tab.ok_to_add = True
+ self.app.tools_db_tab.buttons_frame.hide()
+ self.app.tools_db_tab.add_tool_from_db.show()
+ self.app.tools_db_tab.cancel_tool_from_db.show()
+
+ def reset_fields(self):
+ self.object_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
+
+ def reset_usage(self):
+ self.obj_name = ""
+ self.grb_obj = None
+
+ self.first_click = False
+ self.cursor_pos = None
+ self.mouse_is_dragging = False
+
+ prog_plot = True if self.app.defaults["tools_iso_plotting"] == 'progressive' else False
+ if prog_plot:
+ self.temp_shapes.clear(update=True)
+
+ self.sel_rect = []
diff --git a/flatcamTools/ToolMove.py b/AppTools/ToolMove.py
similarity index 97%
rename from flatcamTools/ToolMove.py
rename to AppTools/ToolMove.py
index 18d6a6e0..e02fed57 100644
--- a/flatcamTools/ToolMove.py
+++ b/AppTools/ToolMove.py
@@ -6,13 +6,13 @@
# ##########################################################
from PyQt5 import QtWidgets, QtCore
-from FlatCAMTool import FlatCAMTool
-from flatcamGUI.VisPyVisuals import *
+from AppTool import AppTool
+from AppGUI.VisPyVisuals import *
from copy import copy
import logging
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -22,13 +22,13 @@ if '_' not in builtins.__dict__:
log = logging.getLogger('base')
-class ToolMove(FlatCAMTool):
+class ToolMove(AppTool):
toolName = _("Move")
replot_signal = QtCore.pyqtSignal(list)
def __init__(self, app):
- FlatCAMTool.__init__(self, app)
+ AppTool.__init__(self, app)
self.app = app
self.decimals = self.app.decimals
@@ -50,7 +50,7 @@ class ToolMove(FlatCAMTool):
if self.app.is_legacy is False:
self.sel_shapes = ShapeCollection(parent=self.app.plotcanvas.view.scene, layers=1)
else:
- from flatcamGUI.PlotCanvasLegacy import ShapeCollectionLegacy
+ from AppGUI.PlotCanvasLegacy import ShapeCollectionLegacy
self.sel_shapes = ShapeCollectionLegacy(obj=self, app=self.app, name="move")
self.mm = None
@@ -60,7 +60,7 @@ class ToolMove(FlatCAMTool):
self.replot_signal[list].connect(self.replot)
def install(self, icon=None, separator=None, **kwargs):
- FlatCAMTool.install(self, icon, separator, shortcut='M', **kwargs)
+ AppTool.install(self, icon, separator, shortcut='M', **kwargs)
def run(self, toggle):
self.app.defaults.report_usage("ToolMove()")
diff --git a/flatcamTools/ToolNCC.py b/AppTools/ToolNCC.py
similarity index 90%
rename from flatcamTools/ToolNCC.py
rename to AppTools/ToolNCC.py
index 01b879b9..c1aa6551 100644
--- a/flatcamTools/ToolNCC.py
+++ b/AppTools/ToolNCC.py
@@ -7,12 +7,12 @@
from PyQt5 import QtWidgets, QtCore, QtGui
-from FlatCAMTool import FlatCAMTool
-from flatcamGUI.GUIElements import FCCheckBox, FCDoubleSpinner, RadioSet, FCTable, FCInputDialog, FCButton,\
+from AppTool import AppTool
+from AppGUI.GUIElements import FCCheckBox, FCDoubleSpinner, RadioSet, FCTable, FCInputDialog, FCButton,\
FCComboBox, OptionalInputSection
-from flatcamParsers.ParseGerber import Gerber
+from AppParsers.ParseGerber import Gerber
-from FlatCAMCommon import GracefulException as grace
+from camlib import grace
from copy import deepcopy
@@ -27,7 +27,7 @@ from matplotlib.backend_bases import KeyEvent as mpl_key_event
import logging
import traceback
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -37,7 +37,7 @@ if '_' not in builtins.__dict__:
log = logging.getLogger('base')
-class NonCopperClear(FlatCAMTool, Gerber):
+class NonCopperClear(AppTool, Gerber):
toolName = _("Non-Copper Clearing")
@@ -45,7 +45,7 @@ class NonCopperClear(FlatCAMTool, Gerber):
self.app = app
self.decimals = self.app.decimals
- FlatCAMTool.__init__(self, app)
+ AppTool.__init__(self, app)
Gerber.__init__(self, steps_per_circle=self.app.defaults["gerber_circle_steps"])
self.tools_frame = QtWidgets.QFrame()
@@ -428,7 +428,7 @@ class NonCopperClear(FlatCAMTool, Gerber):
self.ncc_method_combo = FCComboBox()
self.ncc_method_combo.addItems(
- [_("Standard"), _("Seed"), _("Lines")]
+ [_("Standard"), _("Seed"), _("Lines"), _("Combo")]
)
self.ncc_method_combo.setObjectName("n_method")
@@ -509,7 +509,7 @@ class NonCopperClear(FlatCAMTool, Gerber):
self.grid3.addWidget(self.gen_param_label, 24, 0, 1, 2)
# Rest Machining
- self.ncc_rest_cb = FCCheckBox('%s' % _("Rest Machining"))
+ self.ncc_rest_cb = FCCheckBox('%s' % _("Rest"))
self.ncc_rest_cb.setObjectName("n_rest_machining")
self.ncc_rest_cb.setToolTip(
@@ -936,7 +936,7 @@ class NonCopperClear(FlatCAMTool, Gerber):
self.app.inform.emit('[WARNING_NOTCL] %s...' % _("Adding Tool cancelled"))
def install(self, icon=None, separator=None, **kwargs):
- FlatCAMTool.install(self, icon, separator, shortcut='Alt+N', **kwargs)
+ AppTool.install(self, icon, separator, shortcut='Alt+N', **kwargs)
def run(self, toggle=True):
self.app.defaults.report_usage("ToolNonCopperClear()")
@@ -961,7 +961,7 @@ class NonCopperClear(FlatCAMTool, Gerber):
if self.app.ui.splitter.sizes()[0] == 0:
self.app.ui.splitter.setSizes([1, 1])
- FlatCAMTool.run(self)
+ AppTool.run(self)
self.set_tool_ui()
# reset those objects on a new run
@@ -1603,10 +1603,11 @@ class NonCopperClear(FlatCAMTool, Gerber):
self.app.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Object not found"), str(self.obj_name)))
return
- # use the selected tools in the tool table; get diameters for non-copper clear
+ # use the selected tools in the tool table; get diameters for isolation
self.iso_dia_list = []
# use the selected tools in the tool table; get diameters for non-copper clear
self.ncc_dia_list = []
+
if self.tools_table.selectedItems():
for x in self.tools_table.selectedItems():
try:
@@ -1620,10 +1621,12 @@ class NonCopperClear(FlatCAMTool, Gerber):
"use a number."))
continue
- if self.op_radio.get_value() == _("Isolation"):
- self.iso_dia_list.append(self.tooldia)
- else:
- self.ncc_dia_list.append(self.tooldia)
+ for uid_k, uid_v in self.ncc_tools.items():
+ if round(uid_v['tooldia'], self.decimals) == round(self.tooldia, self.decimals):
+ if uid_v['data']['tools_nccoperation'] == "iso":
+ self.iso_dia_list.append(self.tooldia)
+ else:
+ self.ncc_dia_list.append(self.tooldia)
else:
self.app.inform.emit('[ERROR_NOTCL] %s' % _("No selected tools in Tool Table."))
return
@@ -1825,16 +1828,22 @@ class NonCopperClear(FlatCAMTool, Gerber):
edge_width=self.app.defaults["global_cursor_width"],
size=self.app.defaults["global_cursor_size"])
- # update the positions on status bar
- self.app.ui.position_label.setText(" X: %.4f "
- "Y: %.4f" % (curr_pos[0], curr_pos[1]))
if self.cursor_pos is None:
self.cursor_pos = (0, 0)
self.app.dx = curr_pos[0] - float(self.cursor_pos[0])
self.app.dy = curr_pos[1] - float(self.cursor_pos[1])
- self.app.ui.rel_position_label.setText("Dx: %.4f Dy: "
- "%.4f " % (self.app.dx, self.app.dy))
+
+ # # update the positions on status bar
+ self.app.ui.position_label.setText(" X: %.4f "
+ "Y: %.4f " % (curr_pos[0], curr_pos[1]))
+ # self.app.ui.rel_position_label.setText("Dx: %.4f Dy: "
+ # "%.4f " % (self.app.dx, self.app.dy))
+
+ units = self.app.defaults["units"].lower()
+ self.app.plotcanvas.text_hud.text = \
+ 'Dx:\t{:<.4f} [{:s}]\nDy:\t{:<.4f} [{:s}]\n\nX: \t{:<.4f} [{:s}]\nY: \t{:<.4f} [{:s}]'.format(
+ self.app.dx, units, self.app.dy, units, curr_pos[0], units, curr_pos[1], units)
# draw the utility geometry
if shape_type == "square":
@@ -1905,13 +1914,15 @@ class NonCopperClear(FlatCAMTool, Gerber):
self.delete_moving_selection_shape()
self.delete_tool_selection_shape()
- def envelope_object(self, ncc_obj, ncc_select, box_obj=None):
+ def calculate_bounding_box(self, ncc_obj, ncc_select, box_obj=None):
"""
+ Will return a geometry that dictate the total extent of the area to be copper cleared
- :param ncc_obj:
- :param box_obj:
- :param ncc_select:
- :return:
+ :param ncc_obj: The object to be copper cleared
+ :param box_obj: The object whose geometry will be used as delimitation for copper clearing - if selected
+ :param ncc_select: String that choose what kind of reference to be used for copper clearing extent
+ :return: The geometry that surrounds the area to be cleared and the kind of object from which the
+ geometry originated (string: "gerber", "geometry" or None)
"""
box_kind = box_obj.kind if box_obj is not None else None
@@ -1929,7 +1940,7 @@ class NonCopperClear(FlatCAMTool, Gerber):
env_obj = cascaded_union(geo_n)
env_obj = env_obj.convex_hull
except Exception as e:
- log.debug("NonCopperClear.envelope_object() 'itself' --> %s" % str(e))
+ log.debug("NonCopperClear.calculate_bounding_box() 'itself' --> %s" % str(e))
self.app.inform.emit('[ERROR_NOTCL] %s' % _("No object available."))
return None
elif ncc_select == _("Area Selection"):
@@ -1960,12 +1971,12 @@ class NonCopperClear(FlatCAMTool, Gerber):
return env_obj, box_kind
- def envelope_object_to_tool_bounding_box(self, env_obj, box_kind, ncc_select, ncc_margin):
+ def apply_margin_to_bounding_box(self, bbox, box_kind, ncc_select, ncc_margin):
"""
Prepare non-copper polygons.
- Create the bounding box area from which the copper features will be subtracted
+ Apply a margin to the bounding box area from which the copper features will be subtracted
- :param env_obj: the Geometry to be used as bounding box after applying the ncc_margin
+ :param bbox: the Geometry to be used as bounding box after applying the ncc_margin
:param box_kind: "geometry" or "gerber"
:param ncc_select: the kind of area to be copper cleared
:param ncc_margin: the margin around the area to be copper cleared
@@ -1975,44 +1986,44 @@ class NonCopperClear(FlatCAMTool, Gerber):
log.debug("NCC Tool. Preparing non-copper polygons.")
self.app.inform.emit(_("NCC Tool. Preparing non-copper polygons."))
- if env_obj is None:
- log.debug("NonCopperClear.envelope_object_to_tool_bounding_box() --> The object is None")
+ if bbox is None:
+ log.debug("NonCopperClear.apply_margin_to_bounding_box() --> The object is None")
return 'fail'
- bounding_box = None
+ new_bounding_box = None
if ncc_select == _('Itself'):
try:
- bounding_box = env_obj.buffer(distance=ncc_margin, join_style=base.JOIN_STYLE.mitre)
+ new_bounding_box = bbox.buffer(distance=ncc_margin, join_style=base.JOIN_STYLE.mitre)
except Exception as e:
- log.debug("NonCopperClear.envelope_object_to_tool_bounding_box() 'itself' --> %s" % str(e))
+ log.debug("NonCopperClear.apply_margin_to_bounding_box() 'itself' --> %s" % str(e))
self.app.inform.emit('[ERROR_NOTCL] %s' % _("No object available."))
return 'fail'
elif ncc_select == _("Area Selection"):
geo_buff_list = []
- for poly in env_obj:
+ for poly in bbox:
if self.app.abort_flag:
# graceful abort requested by the user
raise grace
geo_buff_list.append(poly.buffer(distance=ncc_margin, join_style=base.JOIN_STYLE.mitre))
- bounding_box = cascaded_union(geo_buff_list)
+ new_bounding_box = cascaded_union(geo_buff_list)
elif ncc_select == _("Reference Object"):
if box_kind == 'geometry':
geo_buff_list = []
- for poly in env_obj:
+ for poly in bbox:
if self.app.abort_flag:
# graceful abort requested by the user
raise grace
geo_buff_list.append(poly.buffer(distance=ncc_margin, join_style=base.JOIN_STYLE.mitre))
- bounding_box = cascaded_union(geo_buff_list)
+ new_bounding_box = cascaded_union(geo_buff_list)
elif box_kind == 'gerber':
- bounding_box = env_obj.buffer(distance=ncc_margin, join_style=base.JOIN_STYLE.mitre)
+ new_bounding_box = bbox.buffer(distance=ncc_margin, join_style=base.JOIN_STYLE.mitre)
else:
self.app.inform.emit('[ERROR_NOTCL] %s' % _("The reference object type is not supported."))
return 'fail'
log.debug("NCC Tool. Finished non-copper polygons.")
- return bounding_box
+ return new_bounding_box
def get_tool_empty_area(self, name, ncc_obj, geo_obj, isotooldia, has_offset, ncc_offset, ncc_margin,
bounding_box, tools_storage):
@@ -2066,6 +2077,7 @@ class NonCopperClear(FlatCAMTool, Gerber):
# unfortunately for this function to work time efficient,
# if the Gerber was loaded without buffering then it require the buffering now.
+ # TODO 'buffering status' should be a property of the object not the project property
if self.app.defaults['gerber_buffering'] == 'no':
self.solid_geometry = ncc_obj.solid_geometry.buffer(0)
else:
@@ -2083,81 +2095,84 @@ class NonCopperClear(FlatCAMTool, Gerber):
isolated_geo = self.generate_envelope(tool_iso / 2, 0)
if isolated_geo == 'fail':
- self.app.inform.emit('[ERROR_NOTCL] %s' % _("Isolation geometry could not be generated."))
- else:
- if ncc_margin < tool_iso:
- self.app.inform.emit('[WARNING_NOTCL] %s' % _("Isolation geometry is broken. Margin is less "
- "than isolation tool diameter."))
- try:
- for geo_elem in isolated_geo:
- # provide the app with a way to process the GUI events when in a blocking loop
- QtWidgets.QApplication.processEvents()
+ self.app.inform.emit('[ERROR_NOTCL] %s %s' %
+ (_("Isolation geometry could not be generated."), str(tool_iso)))
+ continue
- if self.app.abort_flag:
- # graceful abort requested by the user
- raise grace
+ if ncc_margin < tool_iso:
+ self.app.inform.emit('[WARNING_NOTCL] %s' % _("Isolation geometry is broken. Margin is less "
+ "than isolation tool diameter."))
+ try:
+ for geo_elem in isolated_geo:
+ # provide the app with a way to process the GUI events when in a blocking loop
+ QtWidgets.QApplication.processEvents()
- if isinstance(geo_elem, Polygon):
- for ring in self.poly2rings(geo_elem):
+ if self.app.abort_flag:
+ # graceful abort requested by the user
+ raise grace
+
+ if isinstance(geo_elem, Polygon):
+ for ring in self.poly2rings(geo_elem):
+ new_geo = ring.intersection(bounding_box)
+ if new_geo and not new_geo.is_empty:
+ new_geometry.append(new_geo)
+ elif isinstance(geo_elem, MultiPolygon):
+ for poly in geo_elem:
+ for ring in self.poly2rings(poly):
new_geo = ring.intersection(bounding_box)
if new_geo and not new_geo.is_empty:
new_geometry.append(new_geo)
- elif isinstance(geo_elem, MultiPolygon):
- for poly in geo_elem:
- for ring in self.poly2rings(poly):
- new_geo = ring.intersection(bounding_box)
- if new_geo and not new_geo.is_empty:
- new_geometry.append(new_geo)
- elif isinstance(geo_elem, LineString):
- new_geo = geo_elem.intersection(bounding_box)
- if new_geo:
- if not new_geo.is_empty:
- new_geometry.append(new_geo)
- elif isinstance(geo_elem, MultiLineString):
- for line_elem in geo_elem:
- new_geo = line_elem.intersection(bounding_box)
- if new_geo and not new_geo.is_empty:
- new_geometry.append(new_geo)
- except TypeError:
- if isinstance(isolated_geo, Polygon):
- for ring in self.poly2rings(isolated_geo):
- new_geo = ring.intersection(bounding_box)
- if new_geo:
- if not new_geo.is_empty:
- new_geometry.append(new_geo)
- elif isinstance(isolated_geo, LineString):
- new_geo = isolated_geo.intersection(bounding_box)
- if new_geo and not new_geo.is_empty:
- new_geometry.append(new_geo)
- elif isinstance(isolated_geo, MultiLineString):
- for line_elem in isolated_geo:
+ elif isinstance(geo_elem, LineString):
+ new_geo = geo_elem.intersection(bounding_box)
+ if new_geo:
+ if not new_geo.is_empty:
+ new_geometry.append(new_geo)
+ elif isinstance(geo_elem, MultiLineString):
+ for line_elem in geo_elem:
new_geo = line_elem.intersection(bounding_box)
if new_geo and not new_geo.is_empty:
new_geometry.append(new_geo)
+ except TypeError:
+ if isinstance(isolated_geo, Polygon):
+ for ring in self.poly2rings(isolated_geo):
+ new_geo = ring.intersection(bounding_box)
+ if new_geo:
+ if not new_geo.is_empty:
+ new_geometry.append(new_geo)
+ elif isinstance(isolated_geo, LineString):
+ new_geo = isolated_geo.intersection(bounding_box)
+ if new_geo and not new_geo.is_empty:
+ new_geometry.append(new_geo)
+ elif isinstance(isolated_geo, MultiLineString):
+ for line_elem in isolated_geo:
+ new_geo = line_elem.intersection(bounding_box)
+ if new_geo and not new_geo.is_empty:
+ new_geometry.append(new_geo)
- # a MultiLineString geometry element will show that the isolation is broken for this tool
- for geo_e in new_geometry:
- if type(geo_e) == MultiLineString:
- warning_flag += 1
- break
+ # a MultiLineString geometry element will show that the isolation is broken for this tool
+ for geo_e in new_geometry:
+ if type(geo_e) == MultiLineString:
+ warning_flag += 1
+ break
- current_uid = 0
- for k, v in tools_storage.items():
- if float('%.*f' % (self.decimals, v['tooldia'])) == float('%.*f' % (self.decimals,
- tool_iso)):
- current_uid = int(k)
- # add the solid_geometry to the current too in self.paint_tools dictionary
- # and then reset the temporary list that stored that solid_geometry
- v['solid_geometry'] = deepcopy(new_geometry)
- v['data']['name'] = name
- break
- geo_obj.tools[current_uid] = dict(tools_storage[current_uid])
+ current_uid = 0
+ for k, v in tools_storage.items():
+ if float('%.*f' % (self.decimals, v['tooldia'])) == float('%.*f' % (self.decimals,
+ tool_iso)):
+ current_uid = int(k)
+ # add the solid_geometry to the current too in self.paint_tools dictionary
+ # and then reset the temporary list that stored that solid_geometry
+ v['solid_geometry'] = deepcopy(new_geometry)
+ v['data']['name'] = name
+ break
+ geo_obj.tools[current_uid] = dict(tools_storage[current_uid])
sol_geo = cascaded_union(isolated_geo)
if has_offset is True:
self.app.inform.emit('[WARNING_NOTCL] %s ...' % _("Buffering"))
sol_geo = sol_geo.buffer(distance=ncc_offset)
self.app.inform.emit('[success] %s ...' % _("Buffering finished"))
+
empty = self.get_ncc_empty_area(target=sol_geo, boundary=bounding_box)
if empty == 'fail':
return 'fail'
@@ -2192,28 +2207,98 @@ class NonCopperClear(FlatCAMTool, Gerber):
return empty, warning_flag
- def clear_copper(self, ncc_obj,
- sel_obj=None,
- ncctooldia=None,
- isotooldia=None,
- outname=None,
- order=None,
- tools_storage=None,
- run_threaded=True):
+ def clear_polygon_worker(self, pol, tooldia, ncc_method, ncc_overlap, ncc_connect, ncc_contour, prog_plot):
+
+ cp = None
+
+ if ncc_method == _("Standard"):
+ try:
+ cp = self.clear_polygon(pol, tooldia,
+ steps_per_circle=self.grb_circle_steps,
+ overlap=ncc_overlap, contour=ncc_contour,
+ connect=ncc_connect,
+ prog_plot=prog_plot)
+ except grace:
+ return "fail"
+ except Exception as ee:
+ log.debug("NonCopperClear.clear_polygon_worker() Standard --> %s" % str(ee))
+ elif ncc_method == _("Seed"):
+ try:
+ cp = self.clear_polygon2(pol, tooldia,
+ steps_per_circle=self.grb_circle_steps,
+ overlap=ncc_overlap, contour=ncc_contour,
+ connect=ncc_connect,
+ prog_plot=prog_plot)
+ except grace:
+ return "fail"
+ except Exception as ee:
+ log.debug("NonCopperClear.clear_polygon_worker() Seed --> %s" % str(ee))
+ elif ncc_method == _("Lines"):
+ try:
+ cp = self.clear_polygon3(pol, tooldia,
+ steps_per_circle=self.grb_circle_steps,
+ overlap=ncc_overlap, contour=ncc_contour,
+ connect=ncc_connect,
+ prog_plot=prog_plot)
+ except grace:
+ return "fail"
+ except Exception as ee:
+ log.debug("NonCopperClear.clear_polygon_worker() Lines --> %s" % str(ee))
+ elif ncc_method == _("Combo"):
+ try:
+ self.app.inform.emit(_("Clearing polygon with method: lines."))
+ cp = self.clear_polygon3(pol, tooldia,
+ steps_per_circle=self.grb_circle_steps,
+ overlap=ncc_overlap, contour=ncc_contour,
+ connect=ncc_connect,
+ prog_plot=prog_plot)
+
+ if cp and cp.objects:
+ pass
+ else:
+ self.app.inform.emit(_("Failed. Clearing polygon with method: seed."))
+ cp = self.clear_polygon2(pol, tooldia,
+ steps_per_circle=self.grb_circle_steps,
+ overlap=ncc_overlap, contour=ncc_contour,
+ connect=ncc_connect,
+ prog_plot=prog_plot)
+ if cp and cp.objects:
+ pass
+ else:
+ self.app.inform.emit(_("Failed. Clearing polygon with method: standard."))
+ cp = self.clear_polygon(pol, tooldia,
+ steps_per_circle=self.grb_circle_steps,
+ overlap=ncc_overlap, contour=ncc_contour,
+ connect=ncc_connect,
+ prog_plot=prog_plot)
+ except grace:
+ return "fail"
+ except Exception as ee:
+ log.debug("NonCopperClear.clear_polygon_worker() Combo --> %s" % str(ee))
+
+ if cp and cp.objects:
+ return list(cp.get_objects())
+ else:
+ self.app.inform.emit('[ERROR_NOTCL] %s' % _('Geometry could not be cleared completely'))
+ return None
+
+ def clear_copper(self, ncc_obj, sel_obj=None, ncctooldia=None, isotooldia=None, outname=None, order=None,
+ tools_storage=None, run_threaded=True):
"""
Clear the excess copper from the entire object.
- :param ncc_obj: ncc cleared object
+ :param ncc_obj: ncc cleared object
:param sel_obj:
- :param ncctooldia: a tuple or single element made out of diameters of the tools to be used to ncc clear
- :param isotooldia: a tuple or single element made out of diameters of the tools to be used for isolation
- :param outname: name of the resulting object
- :param order:
- :param tools_storage: whether to use the current tools_storage self.ncc_tools or a different one.
- Usage of the different one is related to when this function is called from a TcL command.
+ :param ncctooldia: a tuple or single element made out of diameters of the tools to be used to ncc clear
+ :param isotooldia: a tuple or single element made out of diameters of the tools to be used for isolation
+ :param outname: name of the resulting object
+ :param order: Tools order
+ :param tools_storage: whether to use the current tools_storage self.ncc_tools or a different one.
+ Usage of the different one is related to when this function is called
+ from a TcL command.
- :param run_threaded: If True the method will be run in a threaded way suitable for GUI usage; if False it will
- run non-threaded for TclShell usage
+ :param run_threaded: If True the method will be run in a threaded way suitable for GUI usage; if False
+ it will run non-threaded for TclShell usage
:return:
"""
log.debug("Executing the handler ...")
@@ -2224,9 +2309,9 @@ class NonCopperClear(FlatCAMTool, Gerber):
self.app.proc_container.view.set_busy(_("Non-Copper clearing ..."))
QtWidgets.QApplication.processEvents()
- # #####################################################################
- # ####### Read the parameters #########################################
- # #####################################################################
+ # ######################################################################################################
+ # ######################### Read the parameters ########################################################
+ # ######################################################################################################
units = self.app.defaults['units']
order = order if order else self.ncc_order_radio.get_value()
@@ -2240,22 +2325,25 @@ class NonCopperClear(FlatCAMTool, Gerber):
# ######################################################################################################
# # Read the tooldia parameter and create a sorted list out them - they may be more than one diameter ##
# ######################################################################################################
- sorted_tools = []
+ sorted_clear_tools = []
if ncctooldia is not None:
try:
- sorted_tools = [float(eval(dia)) for dia in ncctooldia.split(",") if dia != '']
+ sorted_clear_tools = [float(eval(dia)) for dia in ncctooldia.split(",") if dia != '']
except AttributeError:
if not isinstance(ncctooldia, list):
- sorted_tools = [float(ncctooldia)]
+ sorted_clear_tools = [float(ncctooldia)]
else:
- sorted_tools = ncctooldia
+ sorted_clear_tools = ncctooldia
else:
# for row in range(self.tools_table.rowCount()):
# if self.tools_table.cellWidget(row, 1).currentText() == 'clear_op':
- # sorted_tools.append(float(self.tools_table.item(row, 1).text()))
+ # sorted_clear_tools.append(float(self.tools_table.item(row, 1).text()))
for tooluid in self.ncc_tools:
if self.ncc_tools[tooluid]['data']['tools_nccoperation'] == 'clear':
- sorted_tools.append(self.ncc_tools[tooluid]['tooldia'])
+ sorted_clear_tools.append(self.ncc_tools[tooluid]['tooldia'])
+
+ if not sorted_clear_tools:
+ return 'fail'
# ########################################################################################################
# set the name for the future Geometry object
@@ -2263,76 +2351,75 @@ class NonCopperClear(FlatCAMTool, Gerber):
# ########################################################################################################
name = outname if outname is not None else self.obj_name + "_ncc"
- # ##########################################################################################
- # Initializes the new geometry object ######################################################
- # ##########################################################################################
+ # ########################################################################################################
+ # ######### #####Initializes the new geometry object #####################################################
+ # ########################################################################################################
def gen_clear_area(geo_obj, app_obj):
- assert geo_obj.kind == 'geometry', \
- "Initializer expected a GeometryObject, got %s" % type(geo_obj)
+ log.debug("NCC Tool. Normal copper clearing task started.")
+ self.app.inform.emit(_("NCC Tool. Finished non-copper polygons. Normal copper clearing task started."))
# provide the app with a way to process the GUI events when in a blocking loop
if not run_threaded:
QtWidgets.QApplication.processEvents()
- log.debug("NCC Tool. Normal copper clearing task started.")
- self.app.inform.emit(_("NCC Tool. Finished non-copper polygons. Normal copper clearing task started."))
-
# a flag to signal that the isolation is broken by the bounding box in 'area' and 'box' cases
# will store the number of tools for which the isolation is broken
warning_flag = 0
+ tool = None
+
if order == 'fwd':
- sorted_tools.sort(reverse=False)
+ sorted_clear_tools.sort(reverse=False)
elif order == 'rev':
- sorted_tools.sort(reverse=True)
+ sorted_clear_tools.sort(reverse=True)
else:
pass
cleared_geo = []
- # Already cleared area
- cleared = MultiPolygon()
-
- # flag for polygons not cleared
- app_obj.poly_not_cleared = False
+ cleared = MultiPolygon() # Already cleared area
+ app_obj.poly_not_cleared = False # flag for polygons not cleared
# Generate area for each tool
- offset = sum(sorted_tools)
+ offset = sum(sorted_clear_tools)
current_uid = int(1)
- try:
- tool = eval(self.app.defaults["tools_ncctools"])[0]
- except TypeError:
- tool = eval(self.app.defaults["tools_ncctools"])
+ # try:
+ # tool = eval(self.app.defaults["tools_ncctools"])[0]
+ # except TypeError:
+ # tool = eval(self.app.defaults["tools_ncctools"])
if ncc_select == _("Reference Object"):
- env_obj, box_obj_kind = self.envelope_object(ncc_obj=ncc_obj, box_obj=sel_obj, ncc_select=ncc_select)
+ bbox_geo, bbox_kind = self.calculate_bounding_box(
+ ncc_obj=ncc_obj, box_obj=sel_obj, ncc_select=ncc_select)
else:
- env_obj, box_obj_kind = self.envelope_object(ncc_obj=ncc_obj, ncc_select=ncc_select)
+ bbox_geo, bbox_kind = self.calculate_bounding_box(ncc_obj=ncc_obj, ncc_select=ncc_select)
- if env_obj is None and box_obj_kind is None:
+ if bbox_geo is None and bbox_kind is None:
self.app.inform.emit("[ERROR_NOTCL] %s" % _("NCC Tool failed creating bounding box."))
return "fail"
- # COPPER CLEARING #
- for tool in sorted_tools:
+ # COPPER CLEARING with tools marked for CLEAR#
+ for tool in sorted_clear_tools:
log.debug("Starting geometry processing for tool: %s" % str(tool))
if self.app.abort_flag:
# graceful abort requested by the user
raise grace
# provide the app with a way to process the GUI events when in a blocking loop
- QtWidgets.QApplication.processEvents()
+ if not run_threaded:
+ QtWidgets.QApplication.processEvents()
app_obj.inform.emit('[success] %s = %s%s %s' % (
_('NCC Tool clearing with tool diameter'), str(tool), units.lower(), _('started.'))
)
app_obj.proc_container.update_view_text(' %d%%' % 0)
- tool_uid = 0
+ tool_uid = 0 # find the current tool_uid
for k, v in self.ncc_tools.items():
if float('%.*f' % (self.decimals, v['tooldia'])) == float('%.*f' % (self.decimals, tool)):
tool_uid = int(k)
break
+ # parameters that are particular to the current tool
ncc_overlap = float(self.ncc_tools[tool_uid]["data"]["tools_nccoverlap"]) / 100.0
ncc_margin = float(self.ncc_tools[tool_uid]["data"]["tools_nccmargin"])
ncc_method = self.ncc_tools[tool_uid]["data"]["tools_nccmethod"]
@@ -2341,21 +2428,18 @@ class NonCopperClear(FlatCAMTool, Gerber):
has_offset = self.ncc_tools[tool_uid]["data"]["tools_ncc_offset_choice"]
ncc_offset = float(self.ncc_tools[tool_uid]["data"]["tools_ncc_offset_value"])
- cleared_geo[:] = []
-
# Get remaining tools offset
offset -= (tool - 1e-12)
# Bounding box for current tool
- bbox = self.envelope_object_to_tool_bounding_box(env_obj=env_obj, box_kind=box_obj_kind,
- ncc_select=ncc_select, ncc_margin=ncc_margin)
+ bbox = self.apply_margin_to_bounding_box(bbox=bbox_geo, box_kind=bbox_kind,
+ ncc_select=ncc_select, ncc_margin=ncc_margin)
# Area to clear
empty, warning_flag = self.get_tool_empty_area(name=name, ncc_obj=ncc_obj, geo_obj=geo_obj,
- isotooldia=isotooldia,
+ isotooldia=isotooldia, ncc_margin=ncc_margin,
has_offset=has_offset, ncc_offset=ncc_offset,
- ncc_margin=ncc_margin, tools_storage=tools_storage,
- bounding_box=bbox)
+ tools_storage=tools_storage, bounding_box=bbox)
area = empty.buffer(-offset)
try:
@@ -2364,7 +2448,7 @@ class NonCopperClear(FlatCAMTool, Gerber):
continue
# Transform area to MultiPolygon
- if type(area) is Polygon:
+ if isinstance(area, Polygon):
area = MultiPolygon([area])
# variables to display the percentage of work done
@@ -2373,12 +2457,14 @@ class NonCopperClear(FlatCAMTool, Gerber):
old_disp_number = 0
log.warning("Total number of polygons to be cleared. %s" % str(geo_len))
+ cleared_geo[:] = []
if area.geoms:
if len(area.geoms) > 0:
pol_nr = 0
for p in area.geoms:
# provide the app with a way to process the GUI events when in a blocking loop
- QtWidgets.QApplication.processEvents()
+ if not run_threaded:
+ QtWidgets.QApplication.processEvents()
if self.app.abort_flag:
# graceful abort requested by the user
@@ -2388,72 +2474,40 @@ class NonCopperClear(FlatCAMTool, Gerber):
p = p.buffer(0)
if p is not None and p.is_valid:
- poly_processed = []
+ poly_failed = 0
try:
for pol in p:
if pol is not None and isinstance(pol, Polygon):
- if ncc_method == _("Standard"):
- cp = self.clear_polygon(pol, tool,
- self.grb_circle_steps,
- overlap=ncc_overlap, contour=ncc_contour,
- connect=ncc_connect,
- prog_plot=prog_plot)
- elif ncc_method == _("Seed"):
- cp = self.clear_polygon2(pol, tool,
- self.grb_circle_steps,
- overlap=ncc_overlap, contour=ncc_contour,
- connect=ncc_connect,
- prog_plot=prog_plot)
+ res = self.clear_polygon_worker(pol=pol, tooldia=tool,
+ ncc_method=ncc_method,
+ ncc_overlap=ncc_overlap,
+ ncc_connect=ncc_connect,
+ ncc_contour=ncc_contour,
+ prog_plot=prog_plot)
+ if res is not None:
+ cleared_geo += res
else:
- cp = self.clear_polygon3(pol, tool,
- self.grb_circle_steps,
- overlap=ncc_overlap, contour=ncc_contour,
- connect=ncc_connect,
- prog_plot=prog_plot)
- if cp:
- cleared_geo += list(cp.get_objects())
- poly_processed.append(True)
- else:
- poly_processed.append(False)
- log.warning("Polygon in MultiPolygon can not be cleared.")
+ poly_failed += 1
else:
- log.warning("Geo in Iterable can not be cleared because it is not Polygon. "
- "It is: %s" % str(type(pol)))
+ log.warning("Expected geo is a Polygon. Instead got a %s" % str(type(pol)))
except TypeError:
if isinstance(p, Polygon):
- if ncc_method == _("Standard"):
- cp = self.clear_polygon(p, tool, self.grb_circle_steps,
- overlap=ncc_overlap, contour=ncc_contour,
- connect=ncc_connect,
- prog_plot=prog_plot)
- elif ncc_method == _("Seed"):
- cp = self.clear_polygon2(p, tool, self.grb_circle_steps,
- overlap=ncc_overlap, contour=ncc_contour,
- connect=ncc_connect,
- prog_plot=prog_plot)
+ res = self.clear_polygon_worker(pol=p, tooldia=tool,
+ ncc_method=ncc_method,
+ ncc_overlap=ncc_overlap,
+ ncc_connect=ncc_connect,
+ ncc_contour=ncc_contour,
+ prog_plot=prog_plot)
+ if res is not None:
+ cleared_geo += res
else:
- cp = self.clear_polygon3(p, tool, self.grb_circle_steps,
- overlap=ncc_overlap, contour=ncc_contour,
- connect=ncc_connect,
- prog_plot=prog_plot)
- if cp:
- cleared_geo += list(cp.get_objects())
- poly_processed.append(True)
- else:
- poly_processed.append(False)
- log.warning("Polygon can not be cleared.")
+ poly_failed += 1
else:
- log.warning("Geo can not be cleared because it is: %s" % str(type(p)))
+ log.warning("Expected geo is a Polygon. Instead got a %s" % str(type(p)))
- p_cleared = poly_processed.count(True)
- p_not_cleared = poly_processed.count(False)
-
- if p_not_cleared:
+ if poly_failed > 0:
app_obj.poly_not_cleared = True
- if p_cleared == 0:
- continue
-
pol_nr += 1
disp_number = int(np.interp(pol_nr, [0, geo_len], [0, 100]))
# log.debug("Polygons cleared: %d" % pol_nr)
@@ -2463,11 +2517,10 @@ class NonCopperClear(FlatCAMTool, Gerber):
old_disp_number = disp_number
# log.debug("Polygons cleared: %d. Percentage done: %d%%" % (pol_nr, disp_number))
- # check if there is a geometry at all in the cleared geometry
+ # check if there is a geometry at all in the cleared geometry
if cleared_geo:
- # Overall cleared area
- cleared = empty.buffer(-offset * (1 + ncc_overlap)).buffer(-tool / 1.999999).buffer(
- tool / 1.999999)
+ cleared = empty.buffer(-offset * (1 + ncc_overlap)) # Overall cleared area
+ cleared = cleared.buffer(-tool / 1.999999).buffer(tool / 1.999999)
# clean-up cleared geo
cleared = cleared.buffer(0)
@@ -2487,7 +2540,6 @@ class NonCopperClear(FlatCAMTool, Gerber):
geo_obj.tools[current_uid] = dict(tools_storage[current_uid])
else:
log.debug("There are no geometries in the cleared polygon.")
-
# clean the progressive plotted shapes if it was used
if self.app.defaults["tools_ncc_plotting"] == 'progressive':
self.temp_shapes.clear(update=True)
@@ -2569,7 +2621,7 @@ class NonCopperClear(FlatCAMTool, Gerber):
# will store the number of tools for which the isolation is broken
warning_flag = 0
- sorted_tools.sort(reverse=True)
+ sorted_clear_tools.sort(reverse=True)
cleared_geo = []
cleared_by_last_tool = []
@@ -2584,9 +2636,10 @@ class NonCopperClear(FlatCAMTool, Gerber):
app_obj.poly_not_cleared = True
if ncc_select == _("Reference Object"):
- env_obj, box_obj_kind = self.envelope_object(ncc_obj=ncc_obj, box_obj=sel_obj, ncc_select=ncc_select)
+ env_obj, box_obj_kind = self.calculate_bounding_box(
+ ncc_obj=ncc_obj, box_obj=sel_obj, ncc_select=ncc_select)
else:
- env_obj, box_obj_kind = self.envelope_object(ncc_obj=ncc_obj, ncc_select=ncc_select)
+ env_obj, box_obj_kind = self.calculate_bounding_box(ncc_obj=ncc_obj, ncc_select=ncc_select)
if env_obj is None and box_obj_kind is None:
self.app.inform.emit("[ERROR_NOTCL] %s" % _("NCC Tool failed creating bounding box."))
@@ -2596,7 +2649,7 @@ class NonCopperClear(FlatCAMTool, Gerber):
app_obj.inform.emit("NCC Tool. Calculate 'empty' area.")
# Generate area for each tool
- while sorted_tools:
+ while sorted_clear_tools:
log.debug("Starting geometry processing for tool: %s" % str(tool))
if self.app.abort_flag:
# graceful abort requested by the user
@@ -2610,7 +2663,7 @@ class NonCopperClear(FlatCAMTool, Gerber):
)
app_obj.proc_container.update_view_text(' %d%%' % 0)
- tool = sorted_tools.pop(0)
+ tool = sorted_clear_tools.pop(0)
tool_uid = 0
for k, v in self.ncc_tools.items():
@@ -2630,8 +2683,8 @@ class NonCopperClear(FlatCAMTool, Gerber):
cleared_geo[:] = []
# Bounding box for current tool
- bbox = self.envelope_object_to_tool_bounding_box(env_obj=env_obj, box_kind=box_obj_kind,
- ncc_select=ncc_select, ncc_margin=ncc_margin)
+ bbox = self.apply_margin_to_bounding_box(bbox=env_obj, box_kind=box_obj_kind,
+ ncc_select=ncc_select, ncc_margin=ncc_margin)
# Area to clear
empty, warning_flag = self.get_tool_empty_area(name=name, ncc_obj=ncc_obj, geo_obj=geo_obj,
@@ -2835,12 +2888,12 @@ class NonCopperClear(FlatCAMTool, Gerber):
# ###########################################################################################
# Create the Job function and send it to the worker to be processed in another thread #######
# ###########################################################################################
- def job_thread(app_obj):
+ def job_thread(a_obj):
try:
if rest_machining_choice is True:
- app_obj.new_object("geometry", name, gen_clear_area_rest)
+ a_obj.app_obj.new_object("geometry", name, gen_clear_area_rest)
else:
- app_obj.new_object("geometry", name, gen_clear_area)
+ a_obj.app_obj.new_object("geometry", name, gen_clear_area)
except grace:
if run_threaded:
proc.done()
@@ -2854,7 +2907,7 @@ class NonCopperClear(FlatCAMTool, Gerber):
if run_threaded:
proc.done()
else:
- app_obj.proc_container.view.set_idle()
+ a_obj.proc_container.view.set_idle()
# focus on Selected Tab
self.app.ui.notebook.setCurrentWidget(self.app.ui.selected_tab)
@@ -2868,48 +2921,34 @@ class NonCopperClear(FlatCAMTool, Gerber):
else:
job_thread(app_obj=self.app)
- def clear_copper_tcl(self, ncc_obj,
- sel_obj=None,
- ncctooldia=None,
- isotooldia=None,
- margin=None,
- has_offset=None,
- offset=None,
- select_method=None,
- outname=None,
- overlap=None,
- connect=None,
- contour=None,
- order=None,
- method=None,
- rest=None,
- tools_storage=None,
- plot=True,
- run_threaded=False):
+ def clear_copper_tcl(self, ncc_obj, sel_obj=None, ncctooldia=None, isotooldia=None, margin=None, has_offset=None,
+ offset=None, select_method=None, outname=None, overlap=None, connect=None, contour=None,
+ order=None, method=None, rest=None, tools_storage=None, plot=True, run_threaded=False):
"""
Clear the excess copper from the entire object. To be used only in a TCL command.
- :param ncc_obj: ncc cleared object
+ :param ncc_obj: ncc cleared object
:param sel_obj:
- :param ncctooldia: a tuple or single element made out of diameters of the tools to be used to ncc clear
- :param isotooldia: a tuple or single element made out of diameters of the tools to be used for isolation
- :param overlap: value by which the paths will overlap
- :param order: if the tools are ordered and how
- :param select_method: if to do ncc on the whole object, on an defined area or on an area defined by
- another object
- :param has_offset: True if an offset is needed
- :param offset: distance from the copper features where the copper clearing is stopping
- :param margin: a border around cleared area
- :param outname: name of the resulting object
- :param connect: Connect lines to avoid tool lifts.
- :param contour: Paint around the edges.
- :param method: choice out of 'seed', 'normal', 'lines'
- :param rest: True if to use rest-machining
- :param tools_storage: whether to use the current tools_storage self.ncc_tools or a different one.
- Usage of the different one is related to when this function is called from a TcL command.
- :param plot: if True after the job is finished the result will be plotted, else it will not.
- :param run_threaded: If True the method will be run in a threaded way suitable for GUI usage; if False it will
- run non-threaded for TclShell usage
+ :param ncctooldia: a tuple or single element made out of diameters of the tools to be used to ncc clear
+ :param isotooldia: a tuple or single element made out of diameters of the tools to be used for isolation
+ :param overlap: value by which the paths will overlap
+ :param order: if the tools are ordered and how
+ :param select_method: if to do ncc on the whole object, on an defined area or on an area defined by
+ another object
+ :param has_offset: True if an offset is needed
+ :param offset: distance from the copper features where the copper clearing is stopping
+ :param margin: a border around cleared area
+ :param outname: name of the resulting object
+ :param connect: Connect lines to avoid tool lifts.
+ :param contour: Clear around the edges.
+ :param method: choice out of 'seed', 'normal', 'lines'
+ :param rest: True if to use rest-machining
+ :param tools_storage: whether to use the current tools_storage self.ncc_tools or a different one.
+ Usage of the different one is related to when this function is called from a
+ TcL command.
+ :param plot: if True after the job is finished the result will be plotted, else it will not.
+ :param run_threaded: If True the method will be run in a threaded way suitable for GUI usage;
+ if False it will run non-threaded for TclShell usage
:return:
"""
if run_threaded:
@@ -2957,6 +2996,9 @@ class NonCopperClear(FlatCAMTool, Gerber):
else:
sorted_tools = ncctooldia
+ if not sorted_tools:
+ return 'fail'
+
# ##############################################################################################################
# Prepare non-copper polygons. Create the bounding box area from which the copper features will be subtracted ##
# ##############################################################################################################
@@ -3835,9 +3877,9 @@ class NonCopperClear(FlatCAMTool, Gerber):
def job_thread(app_obj):
try:
if rest_machining_choice is True:
- app_obj.new_object("geometry", name, gen_clear_area_rest, plot=plot)
+ app_obj.app_obj.new_object("geometry", name, gen_clear_area_rest, plot=plot)
else:
- app_obj.new_object("geometry", name, gen_clear_area, plot=plot)
+ app_obj.app_obj.new_object("geometry", name, gen_clear_area, plot=plot)
except grace:
if run_threaded:
proc.done()
@@ -3870,6 +3912,11 @@ class NonCopperClear(FlatCAMTool, Gerber):
Returns the complement of target geometry within
the given boundary polygon. If not specified, it defaults to
the rectangular bounding box of target geometry.
+
+ :param target: The geometry that is to be 'inverted'
+ :param boundary: A polygon that surrounds the entire solid geometry and from which we subtract in order to
+ create a "negative" geometry (geometry to be emptied of copper)
+ :return:
"""
if isinstance(target, Polygon):
geo_len = 1
@@ -3882,6 +3929,7 @@ class NonCopperClear(FlatCAMTool, Gerber):
boundary = target.envelope
else:
boundary = boundary
+
try:
ret_val = boundary.difference(target)
except Exception:
@@ -3889,10 +3937,10 @@ class NonCopperClear(FlatCAMTool, Gerber):
for el in target:
# provide the app with a way to process the GUI events when in a blocking loop
QtWidgets.QApplication.processEvents()
-
if self.app.abort_flag:
# graceful abort requested by the user
raise grace
+
boundary = boundary.difference(el)
pol_nr += 1
disp_number = int(np.interp(pol_nr, [0, geo_len], [0, 100]))
diff --git a/flatcamTools/ToolOptimal.py b/AppTools/ToolOptimal.py
similarity index 98%
rename from flatcamTools/ToolOptimal.py
rename to AppTools/ToolOptimal.py
index de46045e..1733edc6 100644
--- a/flatcamTools/ToolOptimal.py
+++ b/AppTools/ToolOptimal.py
@@ -7,9 +7,9 @@
from PyQt5 import QtWidgets, QtCore, QtGui
-from FlatCAMTool import FlatCAMTool
-from flatcamGUI.GUIElements import OptionalHideInputSection, FCTextArea, FCEntry, FCSpinner, FCCheckBox, FCComboBox
-from FlatCAMCommon import GracefulException as grace
+from AppTool import AppTool
+from AppGUI.GUIElements import OptionalHideInputSection, FCTextArea, FCEntry, FCSpinner, FCCheckBox, FCComboBox
+from camlib import grace
from shapely.geometry import MultiPolygon
from shapely.ops import nearest_points
@@ -18,7 +18,7 @@ import numpy as np
import logging
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -28,7 +28,7 @@ if '_' not in builtins.__dict__:
log = logging.getLogger('base')
-class ToolOptimal(FlatCAMTool):
+class ToolOptimal(AppTool):
toolName = _("Optimal Tool")
@@ -36,7 +36,7 @@ class ToolOptimal(FlatCAMTool):
update_sec_distances = QtCore.pyqtSignal(dict)
def __init__(self, app):
- FlatCAMTool.__init__(self, app)
+ AppTool.__init__(self, app)
self.units = self.app.defaults['units'].upper()
self.decimals = self.app.decimals
@@ -277,7 +277,7 @@ class ToolOptimal(FlatCAMTool):
self.reset_button.clicked.connect(self.set_tool_ui)
def install(self, icon=None, separator=None, **kwargs):
- FlatCAMTool.install(self, icon, separator, shortcut='Alt+O', **kwargs)
+ AppTool.install(self, icon, separator, shortcut='Alt+O', **kwargs)
def run(self, toggle=True):
self.app.defaults.report_usage("ToolOptimal()")
@@ -301,7 +301,7 @@ class ToolOptimal(FlatCAMTool):
if self.app.ui.splitter.sizes()[0] == 0:
self.app.ui.splitter.setSizes([1, 1])
- FlatCAMTool.run(self)
+ AppTool.run(self)
self.set_tool_ui()
self.app.ui.notebook.setTabText(2, _("Optimal Tool"))
diff --git a/AppTools/ToolPDF.py b/AppTools/ToolPDF.py
new file mode 100644
index 00000000..59f4f7a6
--- /dev/null
+++ b/AppTools/ToolPDF.py
@@ -0,0 +1,361 @@
+# ##########################################################
+# FlatCAM: 2D Post-processing for Manufacturing #
+# File Author: Marius Adrian Stanciu (c) #
+# Date: 4/23/2019 #
+# MIT Licence #
+# ##########################################################
+
+from PyQt5 import QtWidgets, QtCore
+
+from AppTool import AppTool
+
+from AppParsers.ParsePDF import PdfParser, grace
+from shapely.geometry import Point, MultiPolygon
+from shapely.ops import unary_union
+
+from copy import deepcopy
+
+import zlib
+import re
+import time
+import logging
+import traceback
+
+import gettext
+import AppTranslation as fcTranslate
+import builtins
+
+fcTranslate.apply_language('strings')
+if '_' not in builtins.__dict__:
+ _ = gettext.gettext
+
+log = logging.getLogger('base')
+
+
+class ToolPDF(AppTool):
+ """
+ Parse a PDF file.
+ Reference here: https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/pdf_reference_archives/PDFReference.pdf
+ Return a list of geometries
+ """
+ toolName = _("PDF Import Tool")
+
+ def __init__(self, app):
+ AppTool.__init__(self, app)
+ self.app = app
+ self.decimals = self.app.decimals
+
+ self.stream_re = re.compile(b'.*?FlateDecode.*?stream(.*?)endstream', re.S)
+
+ self.pdf_decompressed = {}
+
+ # key = file name and extension
+ # value is a dict to store the parsed content of the PDF
+ self.pdf_parsed = {}
+
+ # QTimer for periodic check
+ self.check_thread = QtCore.QTimer()
+
+ # Every time a parser is started we add a promise; every time a parser finished we remove a promise
+ # when empty we start the layer rendering
+ self.parsing_promises = []
+
+ self.parser = PdfParser(app=self.app)
+
+ def run(self, toggle=True):
+ self.app.defaults.report_usage("ToolPDF()")
+
+ self.set_tool_ui()
+ self.on_open_pdf_click()
+
+ def install(self, icon=None, separator=None, **kwargs):
+ AppTool.install(self, icon, separator, shortcut='Ctrl+Q', **kwargs)
+
+ def set_tool_ui(self):
+ pass
+
+ def on_open_pdf_click(self):
+ """
+ File menu callback for opening an PDF file.
+
+ :return: None
+ """
+
+ self.app.defaults.report_usage("ToolPDF.on_open_pdf_click()")
+ self.app.log.debug("ToolPDF.on_open_pdf_click()")
+
+ _filter_ = "Adobe PDF Files (*.pdf);;" \
+ "All Files (*.*)"
+
+ try:
+ filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Open PDF"),
+ directory=self.app.get_last_folder(),
+ filter=_filter_)
+ except TypeError:
+ filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Open PDF"), filter=_filter_)
+
+ if len(filenames) == 0:
+ 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)
+
+ for filename in filenames:
+ if filename != '':
+ self.app.worker_task.emit({'fcn': self.open_pdf,
+ 'params': [filename]})
+
+ def open_pdf(self, filename):
+ short_name = filename.split('/')[-1].split('\\')[-1]
+ self.parsing_promises.append(short_name)
+
+ self.pdf_parsed[short_name] = {}
+ self.pdf_parsed[short_name]['pdf'] = {}
+ self.pdf_parsed[short_name]['filename'] = filename
+
+ self.pdf_decompressed[short_name] = ''
+
+ if self.app.abort_flag:
+ # graceful abort requested by the user
+ raise grace
+
+ with self.app.proc_container.new(_("Parsing PDF file ...")):
+ with open(filename, "rb") as f:
+ pdf = f.read()
+
+ stream_nr = 0
+ for s in re.findall(self.stream_re, pdf):
+ if self.app.abort_flag:
+ # graceful abort requested by the user
+ raise grace
+
+ stream_nr += 1
+ log.debug("PDF STREAM: %d\n" % stream_nr)
+ s = s.strip(b'\r\n')
+ try:
+ self.pdf_decompressed[short_name] += (zlib.decompress(s).decode('UTF-8') + '\r\n')
+ except Exception as e:
+ self.app.inform.emit('[ERROR_NOTCL] %s: %s\n%s' % (_("Failed to open"), str(filename), str(e)))
+ log.debug("ToolPDF.open_pdf().obj_init() --> %s" % str(e))
+ return
+
+ self.pdf_parsed[short_name]['pdf'] = self.parser.parse_pdf(pdf_content=self.pdf_decompressed[short_name])
+ # we used it, now we delete it
+ self.pdf_decompressed[short_name] = ''
+
+ # removal from list is done in a multithreaded way therefore not always the removal can be done
+ # try to remove until it's done
+ try:
+ while True:
+ self.parsing_promises.remove(short_name)
+ time.sleep(0.1)
+ except Exception as e:
+ log.debug("ToolPDF.open_pdf() --> %s" % str(e))
+ self.app.inform.emit('[success] %s: %s' % (_("Opened"), str(filename)))
+
+ def layer_rendering_as_excellon(self, filename, ap_dict, layer_nr):
+ outname = filename.split('/')[-1].split('\\')[-1] + "_%s" % str(layer_nr)
+
+ # store the points here until reconstitution:
+ # keys are diameters and values are list of (x,y) coords
+ points = {}
+
+ def obj_init(exc_obj, app_obj):
+ clear_geo = [geo_el['clear'] for geo_el in ap_dict['0']['geometry']]
+
+ for geo in clear_geo:
+ xmin, ymin, xmax, ymax = geo.bounds
+ center = (((xmax - xmin) / 2) + xmin, ((ymax - ymin) / 2) + ymin)
+
+ # for drill bits, even in INCH, it's enough 3 decimals
+ correction_factor = 0.974
+ dia = (xmax - xmin) * correction_factor
+ dia = round(dia, 3)
+ if dia in points:
+ points[dia].append(center)
+ else:
+ points[dia] = [center]
+
+ sorted_dia = sorted(points.keys())
+
+ name_tool = 0
+ for dia in sorted_dia:
+ name_tool += 1
+
+ # create tools dictionary
+ spec = {"C": dia, 'solid_geometry': []}
+ exc_obj.tools[str(name_tool)] = spec
+
+ # create drill list of dictionaries
+ for dia_points in points:
+ if dia == dia_points:
+ for pt in points[dia_points]:
+ exc_obj.drills.append({'point': Point(pt), 'tool': str(name_tool)})
+ break
+
+ ret = exc_obj.create_geometry()
+ if ret == 'fail':
+ log.debug("Could not create geometry for Excellon object.")
+ return "fail"
+ for tool in exc_obj.tools:
+ if exc_obj.tools[tool]['solid_geometry']:
+ return
+ 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.app_obj.new_object("excellon", outname, obj_init, autoselected=False)
+ if ret_val == 'fail':
+ 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] %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)
+
+ def obj_init(grb_obj, app_obj):
+
+ grb_obj.apertures = ap_dict
+
+ poly_buff = []
+ follow_buf = []
+ for ap in grb_obj.apertures:
+ for k in grb_obj.apertures[ap]:
+ if k == 'geometry':
+ for geo_el in ap_dict[ap][k]:
+ if 'solid' in geo_el:
+ poly_buff.append(geo_el['solid'])
+ if 'follow' in geo_el:
+ follow_buf.append(geo_el['follow'])
+ poly_buff = unary_union(poly_buff)
+
+ if '0' in grb_obj.apertures:
+ global_clear_geo = []
+ if 'geometry' in grb_obj.apertures['0']:
+ for geo_el in ap_dict['0']['geometry']:
+ if 'clear' in geo_el:
+ global_clear_geo.append(geo_el['clear'])
+
+ if global_clear_geo:
+ solid = []
+ for apid in grb_obj.apertures:
+ if 'geometry' in grb_obj.apertures[apid]:
+ for elem in grb_obj.apertures[apid]['geometry']:
+ if 'solid' in elem:
+ solid_geo = deepcopy(elem['solid'])
+ for clear_geo in global_clear_geo:
+ # Make sure that the clear_geo is within the solid_geo otherwise we loose
+ # the solid_geometry. We want for clear_geometry just to cut into solid_geometry
+ # not to delete it
+ if clear_geo.within(solid_geo):
+ solid_geo = solid_geo.difference(clear_geo)
+ if solid_geo.is_empty:
+ solid_geo = elem['solid']
+ try:
+ for poly in solid_geo:
+ solid.append(poly)
+ except TypeError:
+ solid.append(solid_geo)
+ poly_buff = deepcopy(MultiPolygon(solid))
+
+ follow_buf = unary_union(follow_buf)
+
+ try:
+ poly_buff = poly_buff.buffer(0.0000001)
+ except ValueError:
+ pass
+ try:
+ poly_buff = poly_buff.buffer(-0.0000001)
+ except ValueError:
+ pass
+
+ grb_obj.solid_geometry = deepcopy(poly_buff)
+ grb_obj.follow_geometry = deepcopy(follow_buf)
+
+ with self.app.proc_container.new(_("Rendering PDF layer #%d ...") % int(layer_nr)):
+
+ ret = self.app.app_obj.new_object('gerber', outname, obj_init, autoselected=False)
+ if ret == 'fail':
+ 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] %s: %s' % (_("Rendered"), outname))
+
+ def periodic_check(self, check_period):
+ """
+ This function starts an QTimer and it will periodically check if parsing was done
+
+ :param check_period: time at which to check periodically if all plots finished to be plotted
+ :return:
+ """
+
+ # self.plot_thread = threading.Thread(target=lambda: self.check_plot_finished(check_period))
+ # self.plot_thread.start()
+ log.debug("ToolPDF --> Periodic Check started.")
+
+ try:
+ self.check_thread.stop()
+ except TypeError:
+ pass
+
+ self.check_thread.setInterval(check_period)
+ try:
+ self.check_thread.timeout.disconnect(self.periodic_check_handler)
+ except (TypeError, AttributeError):
+ pass
+
+ self.check_thread.timeout.connect(self.periodic_check_handler)
+ self.check_thread.start(QtCore.QThread.HighPriority)
+
+ def periodic_check_handler(self):
+ """
+ If the parsing worker finished then start multithreaded rendering
+ :return:
+ """
+ # log.debug("checking parsing --> %s" % str(self.parsing_promises))
+
+ try:
+ if not self.parsing_promises:
+ self.check_thread.stop()
+ log.debug("PDF --> start rendering")
+ # parsing finished start the layer rendering
+ if self.pdf_parsed:
+ obj_to_delete = []
+ for object_name in self.pdf_parsed:
+ if self.app.abort_flag:
+ # graceful abort requested by the user
+ raise grace
+
+ filename = deepcopy(self.pdf_parsed[object_name]['filename'])
+ pdf_content = deepcopy(self.pdf_parsed[object_name]['pdf'])
+ obj_to_delete.append(object_name)
+ for k in pdf_content:
+ if self.app.abort_flag:
+ # graceful abort requested by the user
+ raise grace
+
+ ap_dict = pdf_content[k]
+ print(k, ap_dict)
+ if ap_dict:
+ layer_nr = k
+ if k == 0:
+ self.app.worker_task.emit({'fcn': self.layer_rendering_as_excellon,
+ 'params': [filename, ap_dict, layer_nr]})
+ else:
+ self.app.worker_task.emit({'fcn': self.layer_rendering_as_gerber,
+ 'params': [filename, ap_dict, layer_nr]})
+ # delete the object already processed so it will not be processed again for other objects
+ # that were opened at the same time; like in drag & drop on AppGUI
+ for obj_name in obj_to_delete:
+ if obj_name in self.pdf_parsed:
+ self.pdf_parsed.pop(obj_name)
+
+ log.debug("ToolPDF --> Periodic check finished.")
+ except Exception:
+ traceback.print_exc()
diff --git a/flatcamTools/ToolPaint.py b/AppTools/ToolPaint.py
similarity index 98%
rename from flatcamTools/ToolPaint.py
rename to AppTools/ToolPaint.py
index 4dda2d36..b2b68625 100644
--- a/flatcamTools/ToolPaint.py
+++ b/AppTools/ToolPaint.py
@@ -8,13 +8,12 @@
from PyQt5 import QtWidgets, QtGui, QtCore
from PyQt5.QtCore import Qt
-from FlatCAMTool import FlatCAMTool
+from AppTool import AppTool
from copy import deepcopy
# from ObjectCollection import *
-from flatcamParsers.ParseGerber import Gerber
-from camlib import Geometry, FlatCAMRTreeStorage
-from flatcamGUI.GUIElements import FCTable, FCDoubleSpinner, FCCheckBox, FCInputDialog, RadioSet, FCButton, FCComboBox
-from FlatCAMCommon import GracefulException as grace
+from AppParsers.ParseGerber import Gerber
+from camlib import Geometry, FlatCAMRTreeStorage, grace
+from AppGUI.GUIElements import FCTable, FCDoubleSpinner, FCCheckBox, FCInputDialog, RadioSet, FCButton, FCComboBox
from shapely.geometry import base, Polygon, MultiPolygon, LinearRing, Point
from shapely.ops import cascaded_union, unary_union, linemerge
@@ -28,7 +27,7 @@ import traceback
import logging
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -38,7 +37,7 @@ if '_' not in builtins.__dict__:
log = logging.getLogger('base')
-class ToolPaint(FlatCAMTool, Gerber):
+class ToolPaint(AppTool, Gerber):
toolName = _("Paint Tool")
@@ -46,7 +45,7 @@ class ToolPaint(FlatCAMTool, Gerber):
self.app = app
self.decimals = self.app.decimals
- FlatCAMTool.__init__(self, app)
+ AppTool.__init__(self, app)
Geometry.__init__(self, geo_steps_per_circle=self.app.defaults["geometry_circle_steps"])
# ## Title
@@ -439,7 +438,7 @@ class ToolPaint(FlatCAMTool, Gerber):
)
grid4.addWidget(self.gen_param_label, 15, 0, 1, 2)
- self.rest_cb = FCCheckBox('%s' % _("Rest Machining"))
+ self.rest_cb = FCCheckBox('%s' % _("Rest"))
self.rest_cb.setObjectName('p_rest_machining')
self.rest_cb.setToolTip(
_("If checked, use 'rest machining'.\n"
@@ -483,7 +482,7 @@ class ToolPaint(FlatCAMTool, Gerber):
self.selectmethod_combo = FCComboBox()
self.selectmethod_combo.addItems(
- [_("Polygon Selection"), _("Area Selection"), _("All Polygons"), _("Reference Object")]
+ [_("Polygon Selection"), _("Area Selection"), _("All"), _("Reference Object")]
)
self.selectmethod_combo.setObjectName('p_selection')
@@ -707,7 +706,7 @@ class ToolPaint(FlatCAMTool, Gerber):
}[self.reference_type_combo.get_value()]
def install(self, icon=None, separator=None, **kwargs):
- FlatCAMTool.install(self, icon, separator, shortcut='Alt+P', **kwargs)
+ AppTool.install(self, icon, separator, shortcut='Alt+P', **kwargs)
def run(self, toggle=True):
self.app.defaults.report_usage("ToolPaint()")
@@ -732,7 +731,7 @@ class ToolPaint(FlatCAMTool, Gerber):
if self.app.ui.splitter.sizes()[0] == 0:
self.app.ui.splitter.setSizes([1, 1])
- FlatCAMTool.run(self)
+ AppTool.run(self)
self.set_tool_ui()
self.app.ui.notebook.setTabText(2, _("Paint Tool"))
@@ -1424,7 +1423,7 @@ class ToolPaint(FlatCAMTool, Gerber):
self.app.inform.emit('[ERROR_NOTCL] %s' % _("No selected tools in Tool Table."))
return
- if self.select_method == _("All Polygons"):
+ if self.select_method == _("All"):
self.paint_poly_all(self.paint_obj,
tooldia=self.tooldia_list,
outname=self.o_name)
@@ -1724,16 +1723,22 @@ class ToolPaint(FlatCAMTool, Gerber):
edge_width=self.app.defaults["global_cursor_width"],
size=self.app.defaults["global_cursor_size"])
- # update the positions on status bar
- self.app.ui.position_label.setText(" X: %.4f "
- "Y: %.4f" % (curr_pos[0], curr_pos[1]))
if self.cursor_pos is None:
self.cursor_pos = (0, 0)
self.app.dx = curr_pos[0] - float(self.cursor_pos[0])
self.app.dy = curr_pos[1] - float(self.cursor_pos[1])
- self.app.ui.rel_position_label.setText("Dx: %.4f Dy: "
- "%.4f " % (self.app.dx, self.app.dy))
+
+ # # update the positions on status bar
+ self.app.ui.position_label.setText(" X: %.4f "
+ "Y: %.4f " % (curr_pos[0], curr_pos[1]))
+ # self.app.ui.rel_position_label.setText("Dx: %.4f Dy: "
+ # "%.4f " % (self.app.dx, self.app.dy))
+
+ units = self.app.defaults["units"].lower()
+ self.app.plotcanvas.text_hud.text = \
+ 'Dx:\t{:<.4f} [{:s}]\nDy:\t{:<.4f} [{:s}]\n\nX: \t{:<.4f} [{:s}]\nY: \t{:<.4f} [{:s}]'.format(
+ self.app.dx, units, self.app.dy, units, curr_pos[0], units, curr_pos[1], units)
# draw the utility geometry
if shape_type == "square":
@@ -2309,7 +2314,7 @@ class ToolPaint(FlatCAMTool, Gerber):
def job_thread(app_obj):
try:
- ret = app_obj.new_object("geometry", name, job_init, plot=plot)
+ ret = app_obj.app_obj.new_object("geometry", name, job_init, plot=plot)
except grace:
proc.done()
return
@@ -2817,9 +2822,9 @@ class ToolPaint(FlatCAMTool, Gerber):
def job_thread(app_obj):
try:
if self.rest_cb.isChecked():
- ret = app_obj.new_object("geometry", name, gen_paintarea_rest_machining, plot=plot)
+ ret = app_obj.app_obj.new_object("geometry", name, gen_paintarea_rest_machining, plot=plot)
else:
- ret = app_obj.new_object("geometry", name, gen_paintarea, plot=plot)
+ ret = app_obj.app_obj.new_object("geometry", name, gen_paintarea, plot=plot)
except grace:
proc.done()
return
@@ -3314,9 +3319,9 @@ class ToolPaint(FlatCAMTool, Gerber):
def job_thread(app_obj):
try:
if self.rest_cb.isChecked():
- ret = app_obj.new_object("geometry", name, gen_paintarea_rest_machining, plot=plot)
+ ret = app_obj.app_obj.new_object("geometry", name, gen_paintarea_rest_machining, plot=plot)
else:
- ret = app_obj.new_object("geometry", name, gen_paintarea, plot=plot)
+ ret = app_obj.app_obj.new_object("geometry", name, gen_paintarea, plot=plot)
except grace:
proc.done()
return
diff --git a/flatcamTools/ToolPanelize.py b/AppTools/ToolPanelize.py
similarity index 96%
rename from flatcamTools/ToolPanelize.py
rename to AppTools/ToolPanelize.py
index 8995da05..be41ba5e 100644
--- a/flatcamTools/ToolPanelize.py
+++ b/AppTools/ToolPanelize.py
@@ -6,10 +6,11 @@
# ##########################################################
from PyQt5 import QtWidgets, QtGui, QtCore
-from FlatCAMTool import FlatCAMTool
+from AppTool import AppTool
+
+from AppGUI.GUIElements import FCSpinner, FCDoubleSpinner, RadioSet, FCCheckBox, OptionalInputSection, FCComboBox
+from camlib import grace
-from flatcamGUI.GUIElements import FCSpinner, FCDoubleSpinner, RadioSet, FCCheckBox, OptionalInputSection, FCComboBox
-from FlatCAMCommon import GracefulException as grace
from copy import deepcopy
import numpy as np
@@ -18,7 +19,7 @@ from shapely.ops import unary_union
from shapely.geometry import LineString
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
import logging
@@ -29,14 +30,14 @@ if '_' not in builtins.__dict__:
log = logging.getLogger('base')
-class Panelize(FlatCAMTool):
+class Panelize(AppTool):
toolName = _("Panelize PCB")
def __init__(self, app):
self.decimals = app.decimals
- FlatCAMTool.__init__(self, app)
+ AppTool.__init__(self, app)
# ## Title
title_label = QtWidgets.QLabel("%s" % self.toolName)
@@ -49,8 +50,6 @@ class Panelize(FlatCAMTool):
""")
self.layout.addWidget(title_label)
- self.layout.addWidget(QtWidgets.QLabel(''))
-
self.object_label = QtWidgets.QLabel('%s:' % _("Source Object"))
self.object_label.setToolTip(
_("Specify the type of object to be panelized\n"
@@ -90,7 +89,6 @@ class Panelize(FlatCAMTool):
"be duplicated in an array of rows and columns.")
)
form_layout_0.addRow(self.object_combo)
- form_layout_0.addRow(QtWidgets.QLabel(""))
# Form Layout
form_layout = QtWidgets.QFormLayout()
@@ -142,7 +140,11 @@ class Panelize(FlatCAMTool):
"selected object that is to be panelized.")
)
form_layout.addRow(self.box_combo)
- form_layout.addRow(QtWidgets.QLabel(""))
+
+ separator_line = QtWidgets.QFrame()
+ separator_line.setFrameShape(QtWidgets.QFrame.HLine)
+ separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
+ form_layout.addRow(separator_line)
panel_data_label = QtWidgets.QLabel("%s:" % _("Panel Data"))
panel_data_label.setToolTip(
@@ -198,7 +200,11 @@ class Panelize(FlatCAMTool):
_("Number of rows of the desired panel")
)
form_layout.addRow(self.rows_label, self.rows)
- form_layout.addRow(QtWidgets.QLabel(""))
+
+ separator_line = QtWidgets.QFrame()
+ separator_line.setFrameShape(QtWidgets.QFrame.HLine)
+ separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
+ form_layout.addRow(separator_line)
# Type of resulting Panel object
self.panel_type_radio = RadioSet([{'label': _('Gerber'), 'value': 'gerber'},
@@ -248,6 +254,11 @@ class Panelize(FlatCAMTool):
self.constrain_sel = OptionalInputSection(
self.constrain_cb, [self.x_width_lbl, self.x_width_entry, self.y_height_lbl, self.y_height_entry])
+ separator_line = QtWidgets.QFrame()
+ separator_line.setFrameShape(QtWidgets.QFrame.HLine)
+ separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
+ form_layout.addRow(separator_line)
+
# Buttons
self.panelize_object_button = QtWidgets.QPushButton(_("Panelize Object"))
self.panelize_object_button.setToolTip(
@@ -316,13 +327,13 @@ class Panelize(FlatCAMTool):
if self.app.ui.splitter.sizes()[0] == 0:
self.app.ui.splitter.setSizes([1, 1])
- FlatCAMTool.run(self)
+ AppTool.run(self)
self.set_tool_ui()
self.app.ui.notebook.setTabText(2, _("Panel. Tool"))
def install(self, icon=None, separator=None, **kwargs):
- FlatCAMTool.install(self, icon, separator, shortcut='Alt+Z', **kwargs)
+ AppTool.install(self, icon, separator, shortcut='Alt+Z', **kwargs)
def set_tool_ui(self):
self.reset_fields()
@@ -784,9 +795,9 @@ class Panelize(FlatCAMTool):
self.app.inform.emit('%s: %d' % (_("Generating panel... Spawning copies"), (int(rows * columns))))
if panel_source_obj.kind == 'excellon':
- self.app.new_object("excellon", self.outname, job_init_excellon, plot=True, autoselected=True)
+ self.app.app_obj.new_object("excellon", self.outname, job_init_excellon, plot=True, autoselected=True)
else:
- self.app.new_object(panel_type, self.outname, job_init_geometry, plot=True, autoselected=True)
+ self.app.app_obj.new_object(panel_type, self.outname, job_init_geometry, plot=True, autoselected=True)
if self.constrain_flag is False:
self.app.inform.emit('[success] %s' % _("Panel done..."))
diff --git a/flatcamTools/ToolPcbWizard.py b/AppTools/ToolPcbWizard.py
similarity index 97%
rename from flatcamTools/ToolPcbWizard.py
rename to AppTools/ToolPcbWizard.py
index 47d3a196..a9fc6075 100644
--- a/flatcamTools/ToolPcbWizard.py
+++ b/AppTools/ToolPcbWizard.py
@@ -7,8 +7,8 @@
from PyQt5 import QtWidgets, QtCore
-from FlatCAMTool import FlatCAMTool
-from flatcamGUI.GUIElements import RadioSet, FCSpinner, FCButton, FCTable
+from AppTool import AppTool
+from AppGUI.GUIElements import RadioSet, FCSpinner, FCButton, FCTable
import re
import os
@@ -16,7 +16,7 @@ from datetime import datetime
from io import StringIO
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -24,14 +24,14 @@ if '_' not in builtins.__dict__:
_ = gettext.gettext
-class PcbWizard(FlatCAMTool):
+class PcbWizard(AppTool):
file_loaded = QtCore.pyqtSignal(str, str)
toolName = _("PcbWizard Import Tool")
def __init__(self, app):
- FlatCAMTool.__init__(self, app)
+ AppTool.__init__(self, app)
self.app = app
self.decimals = self.app.decimals
@@ -191,13 +191,13 @@ class PcbWizard(FlatCAMTool):
if self.app.ui.splitter.sizes()[0] == 0:
self.app.ui.splitter.setSizes([1, 1])
- FlatCAMTool.run(self)
+ AppTool.run(self)
self.set_tool_ui()
self.app.ui.notebook.setTabText(2, _("PCBWizard Tool"))
def install(self, icon=None, separator=None, **kwargs):
- FlatCAMTool.install(self, icon, separator, **kwargs)
+ AppTool.install(self, icon, separator, **kwargs)
def set_tool_ui(self):
self.units = 'INCH'
@@ -452,7 +452,7 @@ class PcbWizard(FlatCAMTool):
# Object name
name = self.outname
- ret_val = self.app.new_object("excellon", name, obj_init, autoselected=False)
+ ret_val = self.app.app_obj.new_object("excellon", name, obj_init, autoselected=False)
if ret_val == 'fail':
self.app.inform.emit('[ERROR_NOTCL] %s' % _('Import Excellon file failed.'))
return
diff --git a/flatcamTools/ToolProperties.py b/AppTools/ToolProperties.py
similarity index 98%
rename from flatcamTools/ToolProperties.py
rename to AppTools/ToolProperties.py
index e1cc1c25..59d73a8c 100644
--- a/flatcamTools/ToolProperties.py
+++ b/AppTools/ToolProperties.py
@@ -6,8 +6,8 @@
# ##########################################################
from PyQt5 import QtGui, QtCore, QtWidgets
-from FlatCAMTool import FlatCAMTool
-from flatcamGUI.GUIElements import FCTree
+from AppTool import AppTool
+from AppGUI.GUIElements import FCTree
from shapely.geometry import MultiPolygon, Polygon
from shapely.ops import cascaded_union
@@ -17,7 +17,7 @@ import math
import logging
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -27,13 +27,13 @@ if '_' not in builtins.__dict__:
log = logging.getLogger('base')
-class Properties(FlatCAMTool):
+class Properties(AppTool):
toolName = _("Properties")
calculations_finished = QtCore.pyqtSignal(float, float, float, float, float, object)
def __init__(self, app):
- FlatCAMTool.__init__(self, app)
+ AppTool.__init__(self, app)
self.setSizePolicy(QtWidgets.QSizePolicy.Ignored, QtWidgets.QSizePolicy.Ignored)
@@ -97,13 +97,13 @@ class Properties(FlatCAMTool):
if self.app.ui.splitter.sizes()[0] == 0:
self.app.ui.splitter.setSizes([1, 1])
- FlatCAMTool.run(self)
+ AppTool.run(self)
self.set_tool_ui()
self.properties()
def install(self, icon=None, separator=None, **kwargs):
- FlatCAMTool.install(self, icon, separator, shortcut='P', **kwargs)
+ AppTool.install(self, icon, separator, shortcut='P', **kwargs)
def set_tool_ui(self):
# this reset the TreeWidget
diff --git a/flatcamTools/ToolPunchGerber.py b/AppTools/ToolPunchGerber.py
similarity index 94%
rename from flatcamTools/ToolPunchGerber.py
rename to AppTools/ToolPunchGerber.py
index f0c6a9e3..819d9407 100644
--- a/flatcamTools/ToolPunchGerber.py
+++ b/AppTools/ToolPunchGerber.py
@@ -7,15 +7,15 @@
from PyQt5 import QtCore, QtWidgets
-from FlatCAMTool import FlatCAMTool
-from flatcamGUI.GUIElements import RadioSet, FCDoubleSpinner, FCCheckBox, FCComboBox
+from AppTool import AppTool
+from AppGUI.GUIElements import RadioSet, FCDoubleSpinner, FCCheckBox, FCComboBox
from copy import deepcopy
import logging
from shapely.geometry import MultiPolygon, Point
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -25,12 +25,12 @@ if '_' not in builtins.__dict__:
log = logging.getLogger('base')
-class ToolPunchGerber(FlatCAMTool):
+class ToolPunchGerber(AppTool):
toolName = _("Punch Gerber")
def __init__(self, app):
- FlatCAMTool.__init__(self, app)
+ AppTool.__init__(self, app)
self.decimals = self.app.decimals
@@ -418,14 +418,14 @@ class ToolPunchGerber(FlatCAMTool):
if self.app.ui.splitter.sizes()[0] == 0:
self.app.ui.splitter.setSizes([1, 1])
- FlatCAMTool.run(self)
+ AppTool.run(self)
self.set_tool_ui()
self.app.ui.notebook.setTabText(2, _("Punch Tool"))
def install(self, icon=None, separator=None, **kwargs):
- FlatCAMTool.install(self, icon, separator, shortcut='Alt+H', **kwargs)
+ AppTool.install(self, icon, separator, shortcut='Alt+H', **kwargs)
def set_tool_ui(self):
self.reset_fields()
@@ -591,7 +591,7 @@ class ToolPunchGerber(FlatCAMTool):
new_obj.source_file = self.app.export_gerber(obj_name=outname, filename=None,
local_use=new_obj, use_thread=False)
- self.app.new_object('gerber', outname, init_func)
+ self.app.app_obj.new_object('gerber', outname, init_func)
elif punch_method == 'fixed':
punch_size = float(self.dia_entry.get_value())
@@ -599,32 +599,31 @@ class ToolPunchGerber(FlatCAMTool):
self.app.inform.emit('[WARNING_NOTCL] %s' % _("The value of the fixed diameter is 0.0. Aborting."))
return 'fail'
+ fail_msg = _("Could not generate punched hole Gerber because the punch hole size is bigger than"
+ " some of the apertures in the Gerber object.")
+
punching_geo = []
for apid in grb_obj.apertures:
if grb_obj.apertures[apid]['type'] == 'C' and self.circular_cb.get_value():
- if punch_size >= float(grb_obj.apertures[apid]['size']):
- self.app.inform.emit('[ERROR_NOTCL] %s' %
- _("Could not generate punched hole Gerber because the punch hole size"
- " is bigger than some of the apertures in the Gerber object."))
- return 'fail'
- else:
- for elem in grb_obj.apertures[apid]['geometry']:
- if 'follow' in elem:
- if isinstance(elem['follow'], Point):
- punching_geo.append(elem['follow'].buffer(punch_size / 2))
+ for elem in grb_obj.apertures[apid]['geometry']:
+ if 'follow' in elem:
+ if isinstance(elem['follow'], Point):
+ if punch_size >= float(grb_obj.apertures[apid]['size']):
+ self.app.inform.emit('[ERROR_NOTCL] %s' % fail_msg)
+ return 'fail'
+ punching_geo.append(elem['follow'].buffer(punch_size / 2))
elif grb_obj.apertures[apid]['type'] == 'R':
- if punch_size >= float(grb_obj.apertures[apid]['width']) or \
- punch_size >= float(grb_obj.apertures[apid]['height']):
- self.app.inform.emit('[ERROR_NOTCL] %s' %
- _("Could not generate punched hole Gerber because the punch hole size"
- " is bigger than some of the apertures in the Gerber object."))
- return 'fail'
- elif round(float(grb_obj.apertures[apid]['width']), self.decimals) == \
+
+ if round(float(grb_obj.apertures[apid]['width']), self.decimals) == \
round(float(grb_obj.apertures[apid]['height']), self.decimals) and \
self.square_cb.get_value():
for elem in grb_obj.apertures[apid]['geometry']:
if 'follow' in elem:
if isinstance(elem['follow'], Point):
+ if punch_size >= float(grb_obj.apertures[apid]['width']) or \
+ punch_size >= float(grb_obj.apertures[apid]['height']):
+ self.app.inform.emit('[ERROR_NOTCL] %s' % fail_msg)
+ return 'fail'
punching_geo.append(elem['follow'].buffer(punch_size / 2))
elif round(float(grb_obj.apertures[apid]['width']), self.decimals) != \
round(float(grb_obj.apertures[apid]['height']), self.decimals) and \
@@ -632,16 +631,26 @@ class ToolPunchGerber(FlatCAMTool):
for elem in grb_obj.apertures[apid]['geometry']:
if 'follow' in elem:
if isinstance(elem['follow'], Point):
+ if punch_size >= float(grb_obj.apertures[apid]['width']) or \
+ punch_size >= float(grb_obj.apertures[apid]['height']):
+ self.app.inform.emit('[ERROR_NOTCL] %s' % fail_msg)
+ return 'fail'
punching_geo.append(elem['follow'].buffer(punch_size / 2))
elif grb_obj.apertures[apid]['type'] == 'O' and self.oblong_cb.get_value():
for elem in grb_obj.apertures[apid]['geometry']:
if 'follow' in elem:
if isinstance(elem['follow'], Point):
+ if punch_size >= float(grb_obj.apertures[apid]['size']):
+ self.app.inform.emit('[ERROR_NOTCL] %s' % fail_msg)
+ return 'fail'
punching_geo.append(elem['follow'].buffer(punch_size / 2))
elif grb_obj.apertures[apid]['type'] not in ['C', 'R', 'O'] and self.other_cb.get_value():
for elem in grb_obj.apertures[apid]['geometry']:
if 'follow' in elem:
if isinstance(elem['follow'], Point):
+ if punch_size >= float(grb_obj.apertures[apid]['size']):
+ self.app.inform.emit('[ERROR_NOTCL] %s' % fail_msg)
+ return 'fail'
punching_geo.append(elem['follow'].buffer(punch_size / 2))
punching_geo = MultiPolygon(punching_geo)
@@ -705,7 +714,7 @@ class ToolPunchGerber(FlatCAMTool):
new_obj.source_file = self.app.export_gerber(obj_name=outname, filename=None,
local_use=new_obj, use_thread=False)
- self.app.new_object('gerber', outname, init_func)
+ self.app.app_obj.new_object('gerber', outname, init_func)
elif punch_method == 'ring':
circ_r_val = self.circular_ring_entry.get_value()
oblong_r_val = self.oblong_ring_entry.get_value()
@@ -847,7 +856,7 @@ class ToolPunchGerber(FlatCAMTool):
new_obj.source_file = self.app.export_gerber(obj_name=outname, filename=None,
local_use=new_obj, use_thread=False)
- self.app.new_object('gerber', outname, init_func)
+ self.app.app_obj.new_object('gerber', outname, init_func)
elif punch_method == 'prop':
prop_factor = self.factor_entry.get_value() / 100.0
@@ -986,7 +995,7 @@ class ToolPunchGerber(FlatCAMTool):
new_obj.source_file = self.app.export_gerber(obj_name=outname, filename=None,
local_use=new_obj, use_thread=False)
- self.app.new_object('gerber', outname, init_func)
+ self.app.app_obj.new_object('gerber', outname, init_func)
def reset_fields(self):
self.gerber_object_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
diff --git a/flatcamTools/ToolQRCode.py b/AppTools/ToolQRCode.py
similarity index 98%
rename from flatcamTools/ToolQRCode.py
rename to AppTools/ToolQRCode.py
index 8d54fedd..28ea7c9f 100644
--- a/flatcamTools/ToolQRCode.py
+++ b/AppTools/ToolQRCode.py
@@ -8,9 +8,9 @@
from PyQt5 import QtWidgets, QtCore, QtGui
from PyQt5.QtCore import Qt
-from FlatCAMTool import FlatCAMTool
-from flatcamGUI.GUIElements import RadioSet, FCTextArea, FCSpinner, FCEntry, FCCheckBox, FCComboBox, FCFileSaveDialog
-from flatcamParsers.ParseSVG import *
+from AppTool import AppTool
+from AppGUI.GUIElements import RadioSet, FCTextArea, FCSpinner, FCEntry, FCCheckBox, FCComboBox, FCFileSaveDialog
+from AppParsers.ParseSVG import *
from shapely.geometry.base import *
from shapely.ops import unary_union
@@ -28,7 +28,7 @@ import qrcode.image.pil
from lxml import etree as ET
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -38,12 +38,12 @@ if '_' not in builtins.__dict__:
log = logging.getLogger('base')
-class QRCode(FlatCAMTool):
+class QRCode(AppTool):
toolName = _("QRCode Tool")
def __init__(self, app):
- FlatCAMTool.__init__(self, app)
+ AppTool.__init__(self, app)
self.app = app
self.canvas = self.app.plotcanvas
@@ -375,14 +375,14 @@ class QRCode(FlatCAMTool):
if self.app.ui.splitter.sizes()[0] == 0:
self.app.ui.splitter.setSizes([1, 1])
- FlatCAMTool.run(self)
+ AppTool.run(self)
self.set_tool_ui()
self.app.ui.notebook.setTabText(2, _("QRCode Tool"))
def install(self, icon=None, separator=None, **kwargs):
- FlatCAMTool.install(self, icon, separator, shortcut='Alt+Q', **kwargs)
+ AppTool.install(self, icon, separator, shortcut='Alt+Q', **kwargs)
def set_tool_ui(self):
self.units = self.app.defaults['units']
@@ -781,9 +781,9 @@ class QRCode(FlatCAMTool):
filename, _f = FCFileSaveDialog.get_saved_filename(
caption=_("Export PNG"),
directory=self.app.get_last_save_folder() + '/' + str(name) + '_png',
- filter=_filter)
+ ext_filter=_filter)
except TypeError:
- filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export PNG"), filter=_filter)
+ filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export PNG"), ext_filter=_filter)
filename = str(filename)
@@ -828,9 +828,9 @@ class QRCode(FlatCAMTool):
filename, _f = FCFileSaveDialog.get_saved_filename(
caption=_("Export SVG"),
directory=self.app.get_last_save_folder() + '/' + str(name) + '_svg',
- filter=_filter)
+ ext_filter=_filter)
except TypeError:
- filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export SVG"), filter=_filter)
+ filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export SVG"), ext_filter=_filter)
filename = str(filename)
diff --git a/flatcamTools/ToolRulesCheck.py b/AppTools/ToolRulesCheck.py
similarity index 98%
rename from flatcamTools/ToolRulesCheck.py
rename to AppTools/ToolRulesCheck.py
index fe07b683..ee32824c 100644
--- a/flatcamTools/ToolRulesCheck.py
+++ b/AppTools/ToolRulesCheck.py
@@ -7,18 +7,18 @@
from PyQt5 import QtWidgets
-from FlatCAMTool import FlatCAMTool
-from flatcamGUI.GUIElements import FCDoubleSpinner, FCCheckBox, OptionalInputSection, FCComboBox
+from AppTool import AppTool
+from AppGUI.GUIElements import FCDoubleSpinner, FCCheckBox, OptionalInputSection, FCComboBox
from copy import deepcopy
-from FlatCAMPool import *
+from AppPool import *
# from os import getpid
from shapely.ops import nearest_points
from shapely.geometry import MultiPolygon, Polygon
import logging
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -28,7 +28,7 @@ if '_' not in builtins.__dict__:
log = logging.getLogger('base')
-class RulesCheck(FlatCAMTool):
+class RulesCheck(AppTool):
toolName = _("Check Rules")
@@ -37,7 +37,7 @@ class RulesCheck(FlatCAMTool):
def __init__(self, app):
self.decimals = app.decimals
- FlatCAMTool.__init__(self, app)
+ AppTool.__init__(self, app)
# ## Title
title_label = QtWidgets.QLabel("%s" % self.toolName)
@@ -610,13 +610,13 @@ class RulesCheck(FlatCAMTool):
if self.app.ui.splitter.sizes()[0] == 0:
self.app.ui.splitter.setSizes([1, 1])
- FlatCAMTool.run(self)
+ AppTool.run(self)
self.set_tool_ui()
self.app.ui.notebook.setTabText(2, _("Rules Tool"))
def install(self, icon=None, separator=None, **kwargs):
- FlatCAMTool.install(self, icon, separator, shortcut='Alt+R', **kwargs)
+ AppTool.install(self, icon, separator, shortcut='Alt+R', **kwargs)
def set_tool_ui(self):
@@ -951,7 +951,7 @@ class RulesCheck(FlatCAMTool):
geo = geo_el['solid']
pt = geo.representative_point()
points_list.append((pt.x, pt.y))
- except Exception as e:
+ except Exception:
# An exception will be raised for the 'size' key in case of apertures of type AM (macro) which does
# not have the size key
pass
@@ -1137,7 +1137,7 @@ class RulesCheck(FlatCAMTool):
copper_list.append(elem_dict)
copper_name_2 = self.copper_b_object.currentText()
- if copper_name_2 !='' and self.copper_b_cb.get_value():
+ if copper_name_2 != '' and self.copper_b_cb.get_value():
elem_dict = {}
elem_dict['name'] = deepcopy(copper_name_2)
elem_dict['apertures'] = deepcopy(self.app.collection.get_by_name(copper_name_2).apertures)
@@ -1363,12 +1363,12 @@ class RulesCheck(FlatCAMTool):
top_dict['apertures'] = deepcopy(self.app.collection.get_by_name(silk_top).apertures)
silk_bottom = self.ss_b_object.currentText()
- if silk_bottom != '' and self.ss_b_cb.get_value():
+ if silk_bottom != '' and self.ss_b_cb.get_value():
bottom_dict['name'] = deepcopy(silk_bottom)
bottom_dict['apertures'] = deepcopy(self.app.collection.get_by_name(silk_bottom).apertures)
copper_outline = self.outline_object.currentText()
- if copper_outline != '' and self.out_cb.get_value():
+ if copper_outline != '' and self.out_cb.get_value():
outline_dict['name'] = deepcopy(copper_outline)
outline_dict['apertures'] = deepcopy(self.app.collection.get_by_name(copper_outline).apertures)
@@ -1421,7 +1421,7 @@ class RulesCheck(FlatCAMTool):
if self.sm_t_cb.get_value():
solder_obj = self.sm_t_object.currentText()
- if solder_obj != '':
+ if solder_obj != '':
sm_dict['name'] = deepcopy(solder_obj)
sm_dict['apertures'] = deepcopy(self.app.collection.get_by_name(solder_obj).apertures)
@@ -1431,7 +1431,7 @@ class RulesCheck(FlatCAMTool):
_("TOP -> Minimum Solder Mask Sliver"))))
if self.sm_b_cb.get_value():
solder_obj = self.sm_b_object.currentText()
- if solder_obj != '':
+ if solder_obj != '':
sm_dict['name'] = deepcopy(solder_obj)
sm_dict['apertures'] = deepcopy(self.app.collection.get_by_name(solder_obj).apertures)
@@ -1625,7 +1625,7 @@ class RulesCheck(FlatCAMTool):
new_obj.source_file = txt
new_obj.read_only = True
- self.app.new_object('document', name='Rules Check results', initialize=init, plot=False)
+ self.app.app_obj.new_object('document', name='Rules_check_results', initialize=init, plot=False)
def reset_fields(self):
# self.object_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
diff --git a/flatcamTools/ToolShell.py b/AppTools/ToolShell.py
similarity index 95%
rename from flatcamTools/ToolShell.py
rename to AppTools/ToolShell.py
index f68a9da4..246ffd24 100644
--- a/flatcamTools/ToolShell.py
+++ b/AppTools/ToolShell.py
@@ -10,7 +10,7 @@
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QTextCursor
from PyQt5.QtWidgets import QVBoxLayout, QWidget
-from flatcamGUI.GUIElements import _BrowserTextEdit, _ExpandableTextEdit
+from AppGUI.GUIElements import _BrowserTextEdit, _ExpandableTextEdit
import html
import sys
import traceback
@@ -19,7 +19,7 @@ import tkinter as tk
import tclCommands
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -267,6 +267,7 @@ class FCShell(TermWidget):
self.app = app
self.tcl_commands_storage = {}
+ self.tcl = None
self.init_tcl()
@@ -345,11 +346,11 @@ class FCShell(TermWidget):
def is_command_complete(self, text):
- def skipQuotes(txt):
- quote = txt[0]
- text_val = txt[1:]
- endIndex = str(text_val).index(quote)
- return text[endIndex:]
+ # def skipQuotes(txt):
+ # quote = txt[0]
+ # text_val = txt[1:]
+ # endIndex = str(text_val).index(quote)
+ # return text[endIndex:]
# I'm disabling this because I need to be able to load paths that have spaces by
# enclosing them in quotes --- Marius Stanciu
@@ -371,10 +372,10 @@ class FCShell(TermWidget):
Handles input from the shell. See FlatCAMApp.setup_shell for shell commands.
Also handles execution in separated threads
- :param text: FlatCAM TclCommand with parameters
- :param no_echo: If True it will not try to print to the Shell because most likely the shell is hidden and it
- will create crashes of the _Expandable_Edit widget
- :return: output if there was any
+ :param text: FlatCAM TclCommand with parameters
+ :param no_echo: If True it will not try to print to the Shell because most likely the shell is hidden and it
+ will create crashes of the _Expandable_Edit widget
+ :return: output if there was any
"""
self.app.defaults.report_usage('exec_command')
@@ -404,12 +405,11 @@ class FCShell(TermWidget):
self.append_output(result + '\n')
except tk.TclError as e:
-
# This will display more precise answer if something in TCL shell fails
result = self.tcl.eval("set errorInfo")
- self.app.log.error("Exec command Exception: %s" % (result + '\n'))
+ self.app.log.error("Exception on Tcl Command execution: %s" % (result + '\n'))
if no_echo is False:
- self.append_error('ERROR: ' + result + '\n')
+ self.append_error('ERROR Report: ' + result + '\n')
# Show error in console and just return or in test raise exception
if reraise:
raise e
diff --git a/flatcamTools/ToolSolderPaste.py b/AppTools/ToolSolderPaste.py
similarity index 98%
rename from flatcamTools/ToolSolderPaste.py
rename to AppTools/ToolSolderPaste.py
index 93cb4744..b2b3ed99 100644
--- a/flatcamTools/ToolSolderPaste.py
+++ b/AppTools/ToolSolderPaste.py
@@ -5,13 +5,13 @@
# MIT Licence #
# ##########################################################
-from FlatCAMTool import FlatCAMTool
-from FlatCAMCommon import LoudDict
-from flatcamGUI.GUIElements import FCComboBox, FCEntry, FCTable, \
+from AppTool import AppTool
+from Common import LoudDict
+from AppGUI.GUIElements import FCComboBox, FCEntry, FCTable, \
FCInputDialog, FCDoubleSpinner, FCSpinner, FCFileSaveDialog
-from FlatCAMApp import log
+from App_Main import log
from camlib import distance
-from flatcamEditors.FlatCAMTextEditor import TextEditor
+from AppEditors.FlatCAMTextEditor import TextEditor
from PyQt5 import QtGui, QtCore, QtWidgets
from PyQt5.QtCore import Qt
@@ -25,7 +25,7 @@ import traceback
from io import StringIO
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -33,11 +33,11 @@ if '_' not in builtins.__dict__:
_ = gettext.gettext
-class SolderPaste(FlatCAMTool):
+class SolderPaste(AppTool):
toolName = _("Solder Paste Tool")
def __init__(self, app):
- FlatCAMTool.__init__(self, app)
+ AppTool.__init__(self, app)
# Number of decimals to be used for tools/nozzles in this FlatCAM Tool
self.decimals = self.app.decimals
@@ -546,14 +546,14 @@ class SolderPaste(FlatCAMTool):
if self.app.ui.splitter.sizes()[0] == 0:
self.app.ui.splitter.setSizes([1, 1])
- FlatCAMTool.run(self)
+ AppTool.run(self)
self.set_tool_ui()
self.build_ui()
self.app.ui.notebook.setTabText(2, _("SolderPaste Tool"))
def install(self, icon=None, separator=None, **kwargs):
- FlatCAMTool.install(self, icon, separator, shortcut='Alt+K', **kwargs)
+ AppTool.install(self, icon, separator, shortcut='Alt+K', **kwargs)
def on_add_tool_by_key(self):
tool_add_popup = FCInputDialog(title='%s...' % _("New Tool"),
@@ -1257,7 +1257,7 @@ class SolderPaste(FlatCAMTool):
if use_thread:
def job_thread(app_obj):
try:
- app_obj.new_object("geometry", name + "_solderpaste", geo_init)
+ app_obj.app_obj.new_object("geometry", name + "_solderpaste", geo_init)
except Exception as e:
log.error("SolderPaste.on_create_geo() --> %s" % str(e))
proc.done()
@@ -1271,7 +1271,7 @@ class SolderPaste(FlatCAMTool):
# Background
self.app.worker_task.emit({'fcn': job_thread, 'params': [self.app]})
else:
- self.app.new_object("geometry", name + "_solderpaste", geo_init)
+ self.app.app_obj.new_object("geometry", name + "_solderpaste", geo_init)
def on_create_gcode_click(self, signal):
"""
@@ -1331,7 +1331,7 @@ class SolderPaste(FlatCAMTool):
self.app.inform.emit(msg)
return
- # Object initialization function for app.new_object()
+ # Object initialization function for app.app_obj.new_object()
# RUNNING ON SEPARATE THREAD!
def job_init(job_obj):
assert job_obj.kind == 'cncjob', \
@@ -1388,7 +1388,7 @@ class SolderPaste(FlatCAMTool):
# To be run in separate thread
def job_thread(app_obj):
with self.app.proc_container.new("Generating CNC Code"):
- if app_obj.new_object("cncjob", name, job_init) != 'fail':
+ if app_obj.app_obj.new_object("cncjob", name, job_init) != 'fail':
app_obj.inform.emit('[success] [success] %s: %s' %
(_("ToolSolderPaste CNCjob created"), name))
# Create a promise with the name
@@ -1396,7 +1396,7 @@ class SolderPaste(FlatCAMTool):
# Send to worker
self.app.worker_task.emit({'fcn': job_thread, 'params': [self.app]})
else:
- self.app.new_object("cncjob", name, job_init)
+ self.app.app_obj.new_object("cncjob", name, job_init)
def on_view_gcode(self):
"""
@@ -1493,10 +1493,11 @@ class SolderPaste(FlatCAMTool):
filename, _f = FCFileSaveDialog.get_saved_filename(
caption=_("Export GCode ..."),
directory=dir_file_to_save,
- filter=_filter_
+ ext_filter=_filter_
)
except TypeError:
- filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export Machine Code ..."), filter=_filter_)
+ filename, _f = FCFileSaveDialog.get_saved_filename(
+ caption=_("Export Machine Code ..."), ext_filter=_filter_)
if filename == '':
self.app.inform.emit('[WARNING_NOTCL] %s' %
diff --git a/flatcamTools/ToolSub.py b/AppTools/ToolSub.py
similarity index 78%
rename from flatcamTools/ToolSub.py
rename to AppTools/ToolSub.py
index 5409fa76..9c5e1457 100644
--- a/flatcamTools/ToolSub.py
+++ b/AppTools/ToolSub.py
@@ -7,8 +7,8 @@
from PyQt5 import QtWidgets, QtCore
-from FlatCAMTool import FlatCAMTool
-from flatcamGUI.GUIElements import FCCheckBox, FCButton, FCComboBox
+from AppTool import AppTool
+from AppGUI.GUIElements import FCCheckBox, FCButton, FCComboBox
from shapely.geometry import Polygon, MultiPolygon, MultiLineString, LineString
from shapely.ops import cascaded_union
@@ -18,7 +18,7 @@ from copy import deepcopy
import time
import logging
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -28,17 +28,22 @@ if '_' not in builtins.__dict__:
log = logging.getLogger('base')
-class ToolSub(FlatCAMTool):
+class ToolSub(AppTool):
job_finished = QtCore.pyqtSignal(bool)
+ # the string param is the outname and the list is a list of tuples each being formed from the new_aperture_geometry
+ # list and the second element is also a list with possible geometry that needs to be added to the '0' aperture
+ # meaning geometry that was deformed
+ aperture_processing_finished = QtCore.pyqtSignal(str, list)
+
toolName = _("Subtract Tool")
def __init__(self, app):
self.app = app
self.decimals = self.app.decimals
- FlatCAMTool.__init__(self, app)
+ AppTool.__init__(self, app)
self.tools_frame = QtWidgets.QFrame()
self.tools_frame.setContentsMargins(0, 0, 0, 0)
@@ -218,22 +223,18 @@ class ToolSub(FlatCAMTool):
self.sub_union = []
- try:
- self.intersect_btn.clicked.disconnect(self.on_grb_intersection_click)
- except (TypeError, AttributeError):
- pass
- self.intersect_btn.clicked.connect(self.on_grb_intersection_click)
+ # multiprocessing
+ self.pool = self.app.pool
+ self.results = []
- try:
- self.intersect_geo_btn.clicked.disconnect()
- except (TypeError, AttributeError):
- pass
+ self.intersect_btn.clicked.connect(self.on_grb_intersection_click)
self.intersect_geo_btn.clicked.connect(self.on_geo_intersection_click)
self.job_finished.connect(self.on_job_finished)
+ self.aperture_processing_finished.connect(self.new_gerber_object)
self.reset_button.clicked.connect(self.set_tool_ui)
def install(self, icon=None, separator=None, **kwargs):
- FlatCAMTool.install(self, icon, separator, shortcut='Alt+W', **kwargs)
+ AppTool.install(self, icon, separator, shortcut='Alt+W', **kwargs)
def run(self, toggle=True):
self.app.defaults.report_usage("ToolSub()")
@@ -257,7 +258,7 @@ class ToolSub(FlatCAMTool):
if self.app.ui.splitter.sizes()[0] == 0:
self.app.ui.splitter.setSizes([1, 1])
- FlatCAMTool.run(self)
+ AppTool.run(self)
self.set_tool_ui()
self.app.ui.notebook.setTabText(2, _("Sub Tool"))
@@ -310,138 +311,141 @@ class ToolSub(FlatCAMTool):
# crate the new_apertures dict structure
for apid in self.target_grb_obj.apertures:
self.new_apertures[apid] = {}
- self.new_apertures[apid]['type'] = 'C'
- self.new_apertures[apid]['size'] = self.target_grb_obj.apertures[apid]['size']
- self.new_apertures[apid]['geometry'] = []
+ for key in self.target_grb_obj.apertures[apid]:
+ if key == 'geometry':
+ self.new_apertures[apid]['geometry'] = []
+ else:
+ self.new_apertures[apid][key] = self.target_grb_obj.apertures[apid][key]
- geo_solid_union_list = []
- geo_follow_union_list = []
- geo_clear_union_list = []
+ def worker_job(app_obj):
+ for apid in self.target_grb_obj.apertures:
+ target_geo = self.target_grb_obj.apertures[apid]['geometry']
- for apid1 in self.sub_grb_obj.apertures:
- if 'geometry' in self.sub_grb_obj.apertures[apid1]:
- for elem in self.sub_grb_obj.apertures[apid1]['geometry']:
- if 'solid' in elem:
- geo_solid_union_list.append(elem['solid'])
- if 'follow' in elem:
- geo_follow_union_list.append(elem['follow'])
- if 'clear' in elem:
- geo_clear_union_list.append(elem['clear'])
+ sub_geometry = {}
+ sub_geometry['solid'] = []
+ sub_geometry['clear'] = []
+ for s_apid in self.sub_grb_obj.apertures:
+ for s_el in self.sub_grb_obj.apertures[s_apid]['geometry']:
+ if "solid" in s_el:
+ sub_geometry['solid'].append(s_el["solid"])
+ if "clear" in s_el:
+ sub_geometry['clear'].append(s_el["clear"])
- self.app.inform.emit('%s' % _("Processing geometry from Subtractor Gerber object."))
- self.sub_solid_union = cascaded_union(geo_solid_union_list)
- self.sub_follow_union = cascaded_union(geo_follow_union_list)
- self.sub_clear_union = cascaded_union(geo_clear_union_list)
+ self.results.append(
+ self.pool.apply_async(self.aperture_intersection, args=(apid, target_geo, sub_geometry))
+ )
- # add the promises
- for apid in self.target_grb_obj.apertures:
- self.promises.append(apid)
+ output = []
+ for p in self.results:
+ res = p.get()
+ output.append(res)
+ app_obj.inform.emit('%s: %s...' % (_("Finished parsing geometry for aperture"), str(res[0])))
- # start the QTimer to check for promises with 0.5 second period check
- self.periodic_check(500, reset=True)
+ app_obj.inform.emit("%s" % _("Subtraction aperture processing finished."))
- for apid in self.target_grb_obj.apertures:
- geo = self.target_grb_obj.apertures[apid]['geometry']
- self.app.worker_task.emit({'fcn': self.aperture_intersection, 'params': [apid, geo]})
+ outname = self.target_gerber_combo.currentText() + '_sub'
+ self.aperture_processing_finished.emit(outname, output)
- def aperture_intersection(self, apid, geo):
- new_geometry = []
+ self.app.worker_task.emit({'fcn': worker_job, 'params': [self.app]})
- log.debug("Working on promise: %s" % str(apid))
+ @staticmethod
+ def aperture_intersection(apid, target_geo, sub_geometry):
+ """
- with self.app.proc_container.new('%s: %s...' % (_("Parsing geometry for aperture"), str(apid))):
+ :param apid: the aperture id for which we process geometry
+ :type apid: str
+ :param target_geo: the geometry list that holds the geometry from which we subtract
+ :type target_geo: list
+ :param sub_geometry: the apertures dict that holds all the geometry that is subtracted
+ :type sub_geometry: dict
+ :return: (apid, unaffected_geometry lsit, affected_geometry list)
+ :rtype: tuple
+ """
- for geo_el in geo:
- new_el = {}
+ unafected_geo = []
+ affected_geo = []
- if 'solid' in geo_el:
- work_geo = geo_el['solid']
- if self.sub_solid_union:
- if work_geo.intersects(self.sub_solid_union):
- new_geo = work_geo.difference(self.sub_solid_union)
- new_geo = new_geo.buffer(0)
- if new_geo:
- if not new_geo.is_empty:
- new_el['solid'] = new_geo
- else:
- new_el['solid'] = work_geo
- else:
- new_el['solid'] = work_geo
- else:
- new_el['solid'] = work_geo
- else:
- new_el['solid'] = work_geo
+ is_modified = False
+ for geo_el in target_geo:
+ new_geo_el = {}
+ if "solid" in geo_el:
+ for sub_solid_geo in sub_geometry["solid"]:
+ if geo_el["solid"].intersects(sub_solid_geo):
+ new_geo = geo_el["solid"].difference(sub_solid_geo)
+ if not new_geo.is_empty:
+ geo_el["solid"] = new_geo
+ is_modified = True
- if 'follow' in geo_el:
- work_geo = geo_el['follow']
- if self.sub_follow_union:
- if work_geo.intersects(self.sub_follow_union):
- new_geo = work_geo.difference(self.sub_follow_union)
- new_geo = new_geo.buffer(0)
- if new_geo:
- if not new_geo.is_empty:
- new_el['follow'] = new_geo
- else:
- new_el['follow'] = work_geo
- else:
- new_el['follow'] = work_geo
- else:
- new_el['follow'] = work_geo
- else:
- new_el['follow'] = work_geo
+ new_geo_el["solid"] = deepcopy(geo_el["solid"])
- if 'clear' in geo_el:
- work_geo = geo_el['clear']
- if self.sub_clear_union:
- if work_geo.intersects(self.sub_clear_union):
- new_geo = work_geo.difference(self.sub_clear_union)
- new_geo = new_geo.buffer(0)
- if new_geo:
- if not new_geo.is_empty:
- new_el['clear'] = new_geo
- else:
- new_el['clear'] = work_geo
- else:
- new_el['clear'] = work_geo
- else:
- new_el['clear'] = work_geo
- else:
- new_el['clear'] = work_geo
+ if "clear" in geo_el:
+ for sub_solid_geo in sub_geometry["clear"]:
+ if geo_el["clear"].intersects(sub_solid_geo):
+ new_geo = geo_el["clear"].difference(sub_solid_geo)
+ if not new_geo.is_empty:
+ geo_el["clear"] = new_geo
+ is_modified = True
- new_geometry.append(deepcopy(new_el))
+ new_geo_el["clear"] = deepcopy(geo_el["clear"])
- self.app.inform.emit('%s: %s...' % (_("Finished parsing geometry for aperture"), str(apid)))
+ if is_modified:
+ affected_geo.append(new_geo_el)
+ else:
+ unafected_geo.append(geo_el)
- if new_geometry:
- while not self.new_apertures[apid]['geometry']:
- self.new_apertures[apid]['geometry'] = deepcopy(new_geometry)
- time.sleep(0.5)
+ return apid, unafected_geo, affected_geo
- while True:
- # removal from list is done in a multithreaded way therefore not always the removal can be done
- # so we keep trying until it's done
- if apid not in self.promises:
- break
+ def new_gerber_object(self, outname, output):
+ """
- self.promises.remove(apid)
- time.sleep(0.5)
-
- log.debug("Promise fulfilled: %s" % str(apid))
-
- def new_gerber_object(self, outname):
+ :param outname: name for the new Gerber object
+ :type outname: str
+ :param output: a list made of tuples in format:
+ (aperture id in the target Gerber, unaffected_geometry list, affected_geometry list)
+ :type output: list
+ :return:
+ :rtype:
+ """
def obj_init(grb_obj, app_obj):
grb_obj.apertures = deepcopy(self.new_apertures)
+ if '0' not in grb_obj.apertures:
+ grb_obj.apertures['0'] = {}
+ grb_obj.apertures['0']['type'] = 'REG'
+ grb_obj.apertures['0']['size'] = 0.0
+ grb_obj.apertures['0']['geometry'] = []
+
+ for apid, apid_val in list(grb_obj.apertures.items()):
+ for t in output:
+ new_apid = t[0]
+ if apid == new_apid:
+ surving_geo = t[1]
+ modified_geo = t[2]
+ if surving_geo:
+ apid_val['geometry'] = deepcopy(surving_geo)
+ else:
+ grb_obj.apertures.pop(apid, None)
+
+ if modified_geo:
+ grb_obj.apertures['0']['geometry'] += modified_geo
+
+ # delete the '0' aperture if it has no geometry
+ if not grb_obj.apertures['0']['geometry']:
+ grb_obj.apertures.pop('0', None)
+
poly_buff = []
follow_buff = []
- for ap in self.new_apertures:
- for elem in self.new_apertures[ap]['geometry']:
- poly_buff.append(elem['solid'])
- follow_buff.append(elem['follow'])
+ for ap in grb_obj.apertures:
+ for elem in grb_obj.apertures[ap]['geometry']:
+ if 'solid' in elem:
+ solid_geo = elem['solid']
+ poly_buff.append(solid_geo)
+ if 'follow' in elem:
+ follow_buff.append(elem['follow'])
- work_poly_buff = cascaded_union(poly_buff)
+ work_poly_buff = MultiPolygon(poly_buff)
try:
poly_buff = work_poly_buff.buffer(0.0000001)
except ValueError:
@@ -454,25 +458,22 @@ class ToolSub(FlatCAMTool):
grb_obj.solid_geometry = deepcopy(poly_buff)
grb_obj.follow_geometry = deepcopy(follow_buff)
+ grb_obj.source_file = self.app.export_gerber(obj_name=outname, filename=None,
+ local_use=grb_obj, use_thread=False)
with self.app.proc_container.new(_("Generating new object ...")):
- ret = self.app.new_object('gerber', outname, obj_init, autoselected=False)
+ ret = self.app.app_obj.new_object('gerber', outname, obj_init, autoselected=False)
if ret == 'fail':
- self.app.inform.emit('[ERROR_NOTCL] %s' %
- _('Generating new object failed.'))
+ self.app.inform.emit('[ERROR_NOTCL] %s' % _('Generating new object failed.'))
return
# GUI feedback
- self.app.inform.emit('[success] %s: %s' %
- (_("Created"), outname))
+ self.app.inform.emit('[success] %s: %s' % (_("Created"), outname))
# cleanup
self.new_apertures.clear()
self.new_solid_geometry[:] = []
- try:
- self.sub_union[:] = []
- except TypeError:
- self.sub_union = []
+ self.results = []
def on_geo_intersection_click(self):
# reset previous values
@@ -659,7 +660,7 @@ class ToolSub(FlatCAMTool):
geo_obj.multigeo = False
with self.app.proc_container.new(_("Generating new object ...")):
- ret = self.app.new_object('geometry', outname, obj_init, autoselected=False)
+ ret = self.app.app_obj.new_object('geometry', outname, obj_init, autoselected=False)
if ret == 'fail':
self.app.inform.emit('[ERROR_NOTCL] %s' %
_('Generating new object failed.'))
@@ -739,11 +740,9 @@ class ToolSub(FlatCAMTool):
outname = self.target_geo_combo.currentText() + '_sub'
# intersection jobs finished, start the creation of solid_geometry
- self.app.worker_task.emit({'fcn': self.new_geo_object,
- 'params': [outname]})
+ self.app.worker_task.emit({'fcn': self.new_geo_object, 'params': [outname]})
else:
- self.app.inform.emit('[ERROR_NOTCL] %s' %
- _('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/AppTools/ToolTransform.py
similarity index 97%
rename from flatcamTools/ToolTransform.py
rename to AppTools/ToolTransform.py
index 1db4fb93..41e6ff91 100644
--- a/flatcamTools/ToolTransform.py
+++ b/AppTools/ToolTransform.py
@@ -6,11 +6,11 @@
# ##########################################################
from PyQt5 import QtWidgets
-from FlatCAMTool import FlatCAMTool
-from flatcamGUI.GUIElements import FCDoubleSpinner, FCCheckBox, FCButton, OptionalInputSection, EvalEntry2
+from AppTool import AppTool
+from AppGUI.GUIElements import FCDoubleSpinner, FCCheckBox, FCButton, OptionalInputSection, FCEntry
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -18,7 +18,7 @@ if '_' not in builtins.__dict__:
_ = gettext.gettext
-class ToolTransform(FlatCAMTool):
+class ToolTransform(AppTool):
toolName = _("Object Transform")
rotateName = _("Rotate")
@@ -29,7 +29,7 @@ class ToolTransform(FlatCAMTool):
bufferName = _("Buffer")
def __init__(self, app):
- FlatCAMTool.__init__(self, app)
+ AppTool.__init__(self, app)
self.decimals = self.app.decimals
# ## Title
@@ -300,7 +300,7 @@ class ToolTransform(FlatCAMTool):
"The 'x' in (x, y) will be used when using Flip on X and\n"
"the 'y' in (x, y) will be used when using Flip on Y.")
)
- self.flip_ref_entry = EvalEntry2("(0, 0)")
+ self.flip_ref_entry = FCEntry()
# self.flip_ref_entry.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter)
# self.flip_ref_entry.setFixedWidth(70)
@@ -454,13 +454,13 @@ class ToolTransform(FlatCAMTool):
if self.app.ui.splitter.sizes()[0] == 0:
self.app.ui.splitter.setSizes([1, 1])
- FlatCAMTool.run(self)
+ AppTool.run(self)
self.set_tool_ui()
self.app.ui.notebook.setTabText(2, _("Transform Tool"))
def install(self, icon=None, separator=None, **kwargs):
- FlatCAMTool.install(self, icon, separator, shortcut='Alt+T', **kwargs)
+ AppTool.install(self, icon, separator, shortcut='Alt+T', **kwargs)
def set_tool_ui(self):
self.rotate_button.set_value(_("Rotate"))
@@ -533,7 +533,7 @@ class ToolTransform(FlatCAMTool):
if self.app.defaults["tools_transform_mirror_point"]:
self.flip_ref_entry.set_value(self.app.defaults["tools_transform_mirror_point"])
else:
- self.flip_ref_entry.set_value((0, 0))
+ self.flip_ref_entry.set_value("0, 0")
if self.app.defaults["tools_transform_buffer_dis"]:
self.buffer_entry.set_value(self.app.defaults["tools_transform_buffer_dis"])
@@ -702,7 +702,7 @@ class ToolTransform(FlatCAMTool):
self.app.inform.emit(_("CNCJob objects can't be rotated."))
else:
sel_obj.rotate(-num, point=(px, py))
- self.app.object_changed.emit(sel_obj)
+ self.app.app_obj.object_changed.emit(sel_obj)
# add information to the object that it was changed and how much
sel_obj.options['rotate'] = num
@@ -776,7 +776,7 @@ class ToolTransform(FlatCAMTool):
else:
sel_obj.options['mirror_x'] = True
self.app.inform.emit('[success] %s...' % _('Flip on the X axis done'))
- self.app.object_changed.emit(sel_obj)
+ self.app.app_obj.object_changed.emit(sel_obj)
sel_obj.plot()
except Exception as e:
self.app.inform.emit('[ERROR_NOTCL] %s %s, %s.' %
@@ -825,7 +825,7 @@ class ToolTransform(FlatCAMTool):
sel_obj.skew(0, num, point=(xminimal, yminimal))
# add information to the object that it was changed and how much
sel_obj.options['skew_y'] = num
- self.app.object_changed.emit(sel_obj)
+ self.app.app_obj.object_changed.emit(sel_obj)
sel_obj.plot()
self.app.inform.emit('[success] %s %s %s...' % (_('Skew on the'), str(axis), _("axis done")))
except Exception as e:
@@ -878,7 +878,7 @@ class ToolTransform(FlatCAMTool):
# add information to the object that it was changed and how much
sel_obj.options['scale_x'] = xfactor
sel_obj.options['scale_y'] = yfactor
- self.app.object_changed.emit(sel_obj)
+ self.app.app_obj.object_changed.emit(sel_obj)
sel_obj.plot()
self.app.inform.emit('[success] %s %s %s...' % (_('Scale on the'), str(axis), _('axis done')))
@@ -908,7 +908,7 @@ class ToolTransform(FlatCAMTool):
sel_obj.offset((0, num))
# add information to the object that it was changed and how much
sel_obj.options['offset_y'] = num
- self.app.object_changed.emit(sel_obj)
+ self.app.app_obj.object_changed.emit(sel_obj)
sel_obj.plot()
self.app.inform.emit('[success] %s %s %s...' % (_('Offset on the'), str(axis), _('axis done')))
@@ -942,7 +942,7 @@ class ToolTransform(FlatCAMTool):
elif sel_obj.kind.lower() == 'geometry':
sel_obj.buffer(value, join, factor)
- self.app.object_changed.emit(sel_obj)
+ self.app.app_obj.object_changed.emit(sel_obj)
sel_obj.plot()
self.app.inform.emit('[success] %s...' % _('Buffer done'))
diff --git a/AppTools/__init__.py b/AppTools/__init__.py
new file mode 100644
index 00000000..e2699a42
--- /dev/null
+++ b/AppTools/__init__.py
@@ -0,0 +1,45 @@
+
+from AppTools.ToolCalculators import ToolCalculator
+from AppTools.ToolCalibration import ToolCalibration
+
+from AppTools.ToolDblSided import DblSidedTool
+from AppTools.ToolExtractDrills import ToolExtractDrills
+from AppTools.ToolAlignObjects import AlignObjects
+
+from AppTools.ToolFilm import Film
+
+from AppTools.ToolImage import ToolImage
+
+from AppTools.ToolDistance import Distance
+from AppTools.ToolDistanceMin import DistanceMin
+
+from AppTools.ToolMove import ToolMove
+
+from AppTools.ToolCutOut import CutOut
+from AppTools.ToolNCC import NonCopperClear
+from AppTools.ToolPaint import ToolPaint
+from AppTools.ToolIsolation import ToolIsolation
+
+from AppTools.ToolOptimal import ToolOptimal
+
+from AppTools.ToolPanelize import Panelize
+from AppTools.ToolPcbWizard import PcbWizard
+from AppTools.ToolPDF import ToolPDF
+from AppTools.ToolProperties import Properties
+
+from AppTools.ToolQRCode import QRCode
+from AppTools.ToolRulesCheck import RulesCheck
+
+from AppTools.ToolCopperThieving import ToolCopperThieving
+from AppTools.ToolFiducials import ToolFiducials
+
+from AppTools.ToolShell import FCShell
+from AppTools.ToolSolderPaste import SolderPaste
+from AppTools.ToolSub import ToolSub
+
+from AppTools.ToolTransform import ToolTransform
+from AppTools.ToolPunchGerber import ToolPunchGerber
+
+from AppTools.ToolInvertGerber import ToolInvertGerber
+from AppTools.ToolCorners import ToolCorners
+from AppTools.ToolEtchCompensation import ToolEtchCompensation
\ No newline at end of file
diff --git a/FlatCAMTranslation.py b/AppTranslation.py
similarity index 98%
rename from FlatCAMTranslation.py
rename to AppTranslation.py
index 4e8edbf3..8101d72e 100644
--- a/FlatCAMTranslation.py
+++ b/AppTranslation.py
@@ -106,6 +106,8 @@ def on_language_apply_click(app, restart=False):
(_("Are you sure do you want to change the current language to"), name.capitalize()))
msgbox.setWindowTitle(_("Apply Language ..."))
msgbox.setWindowIcon(QtGui.QIcon(resource_loc + '/language32.png'))
+ msgbox.setIcon(QtWidgets.QMessageBox.Question)
+
bt_yes = msgbox.addButton(_("Yes"), QtWidgets.QMessageBox.YesRole)
bt_no = msgbox.addButton(_("No"), QtWidgets.QMessageBox.NoRole)
@@ -186,8 +188,7 @@ def restart_program(app, ask=None):
# try to quit the Socket opened by ArgsThread class
try:
- app.new_launch.thread_exit = True
- app.new_launch.listener.close()
+ app.new_launch.stop.emit()
except Exception as err:
log.debug("FlatCAMTranslation.restart_program() --> %s" % str(err))
@@ -204,6 +205,8 @@ def restart_program(app, ask=None):
"Do you want to Save the project?"))
msgbox.setWindowTitle(_("Save changes"))
msgbox.setWindowIcon(QtGui.QIcon(resource_loc + '/save_as.png'))
+ msgbox.setIcon(QtWidgets.QMessageBox.Question)
+
bt_yes = msgbox.addButton(_('Yes'), QtWidgets.QMessageBox.YesRole)
bt_no = msgbox.addButton(_('No'), QtWidgets.QMessageBox.NoRole)
diff --git a/FlatCAMWorker.py b/AppWorker.py
similarity index 100%
rename from FlatCAMWorker.py
rename to AppWorker.py
diff --git a/FlatCAMWorkerStack.py b/AppWorkerStack.py
similarity index 97%
rename from FlatCAMWorkerStack.py
rename to AppWorkerStack.py
index 3ce56011..fc8cd6d2 100644
--- a/FlatCAMWorkerStack.py
+++ b/AppWorkerStack.py
@@ -1,5 +1,5 @@
from PyQt5 import QtCore
-from FlatCAMWorker import Worker
+from AppWorker import Worker
import multiprocessing
diff --git a/FlatCAMApp.py b/App_Main.py
similarity index 85%
rename from FlatCAMApp.py
rename to App_Main.py
index 274752a9..c708399b 100644
--- a/FlatCAMApp.py
+++ b/App_Main.py
@@ -4,6 +4,7 @@
# Author: Juan Pablo Caram (c) #
# Date: 2/5/2014 #
# MIT Licence #
+# Modified by Marius Stanciu (2019) #
# ###########################################################
import urllib.request
@@ -13,14 +14,13 @@ import urllib.error
import getopt
import random
import simplejson as json
-import lzma
import shutil
+import lzma
from datetime import datetime
import time
import ctypes
import traceback
-from PyQt5.QtCore import pyqtSlot, Qt
from shapely.geometry import Point, MultiPolygon
from io import StringIO
@@ -42,58 +42,58 @@ import socket
# ################################### Imports part of FlatCAM #############################################
# ####################################################################################################################
-# Diverse
-from FlatCAMCommon import LoudDict, color_variant
-from FlatCAMBookmark import BookmarkManager
-from FlatCAMDB import ToolsDB2
+# Various
+from Common import LoudDict
+from Common import color_variant
+from Common import ExclusionAreas
+
+from Bookmark import BookmarkManager
+from AppDatabase import ToolsDB2
from vispy.gloo.util import _screenshot
from vispy.io import write_png
-# FlatCAM Objects
+# FlatCAM defaults (preferences)
from defaults import FlatCAMDefaults
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
-from flatcamGUI.preferences.PreferencesUIManager import PreferencesUIManager
-from flatcamObjects.ObjectCollection import *
-from flatcamObjects.FlatCAMObj import FlatCAMObj
-from flatcamObjects.FlatCAMCNCJob import CNCJobObject
-from flatcamObjects.FlatCAMDocument import DocumentObject
-from flatcamObjects.FlatCAMExcellon import ExcellonObject
-from flatcamObjects.FlatCAMGeometry import GeometryObject
-from flatcamObjects.FlatCAMGerber import GerberObject
-from flatcamObjects.FlatCAMScript import ScriptObject
+
+# FlatCAM Objects
+from AppGUI.preferences.OptionsGroupUI import OptionsGroupUI
+from AppGUI.preferences.PreferencesUIManager import PreferencesUIManager
+from AppObjects.ObjectCollection import *
+from AppObjects.FlatCAMObj import FlatCAMObj
+from AppObjects.AppObject import AppObject
# FlatCAM Parsing files
-from flatcamParsers.ParseExcellon import Excellon
-from flatcamParsers.ParseGerber import Gerber
+from AppParsers.ParseExcellon import Excellon
+from AppParsers.ParseGerber import Gerber
from camlib import to_dict, dict2obj, ET, ParseError, Geometry, CNCjob
-# FlatCAM GUI
-from flatcamGUI.PlotCanvas import *
-from flatcamGUI.PlotCanvasLegacy import *
-from flatcamGUI.FlatCAMGUI import *
-from flatcamGUI.GUIElements import FCFileSaveDialog
+# FlatCAM AppGUI
+from AppGUI.PlotCanvas import *
+from AppGUI.PlotCanvasLegacy import *
+from AppGUI.MainGUI import *
+from AppGUI.GUIElements import FCFileSaveDialog, message_dialog, FlatCAMSystemTray
# FlatCAM Pre-processors
-from FlatCAMPostProc import load_preprocessors
+from AppPreProcessor import load_preprocessors
-# FlatCAM Editors
-from flatcamEditors.FlatCAMGeoEditor import FlatCAMGeoEditor
-from flatcamEditors.FlatCAMExcEditor import FlatCAMExcEditor
-from flatcamEditors.FlatCAMGrbEditor import FlatCAMGrbEditor
-from flatcamEditors.FlatCAMTextEditor import TextEditor
-from flatcamParsers.ParseHPGL2 import HPGL2
+# FlatCAM AppEditors
+from AppEditors.FlatCAMGeoEditor import FlatCAMGeoEditor
+from AppEditors.FlatCAMExcEditor import FlatCAMExcEditor
+from AppEditors.FlatCAMGrbEditor import FlatCAMGrbEditor
+from AppEditors.FlatCAMTextEditor import TextEditor
+from AppParsers.ParseHPGL2 import HPGL2
# FlatCAM Workers
-from FlatCAMProcess import *
-from FlatCAMWorkerStack import WorkerStack
+from AppProcess import *
+from AppWorkerStack import WorkerStack
# FlatCAM Tools
-from flatcamTools import *
+from AppTools import *
# FlatCAM Translation
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
if sys.platform == 'win32':
@@ -107,7 +107,7 @@ if '_' not in builtins.__dict__:
class App(QtCore.QObject):
"""
- The main application class. The constructor starts the GUI.
+ The main application class. The constructor starts the GUI and all other classes used by the program.
"""
# ###############################################################################################################
@@ -204,7 +204,7 @@ class App(QtCore.QObject):
# Inform the user
# Handled by:
# * App.info() --> Print on the status bar
- inform = QtCore.pyqtSignal(str)
+ inform = QtCore.pyqtSignal([str], [str, bool])
app_quit = QtCore.pyqtSignal()
@@ -227,20 +227,6 @@ class App(QtCore.QObject):
# Percentage of progress
progress = QtCore.pyqtSignal(int)
- plots_updated = QtCore.pyqtSignal()
-
- # Emitted by new_object() and passes the new object as argument, plot flag.
- # on_object_created() adds the object to the collection, plots on appropriate flag
- # and emits new_object_available.
- object_created = QtCore.pyqtSignal(object, bool, bool)
-
- # Emitted when a object has been changed (like scaled, mirrored)
- object_changed = QtCore.pyqtSignal(object)
-
- # Emitted after object has been plotted.
- # Calls 'on_zoom_fit' method to fit object in scene view in main thread to prevent drawing glitches.
- object_plotted = QtCore.pyqtSignal(object)
-
# Emitted when a new object has been added or deleted from/to the collection
object_status_changed = QtCore.pyqtSignal(object, str, str)
@@ -285,6 +271,8 @@ class App(QtCore.QObject):
:rtype: App
"""
+ super().__init__()
+
App.log.info("FlatCAM Starting...")
self.main_thread = QtWidgets.QApplication.instance().thread()
@@ -303,7 +291,7 @@ class App(QtCore.QObject):
self.new_launch.start.emit()
# ############################################################################################################
- # # ######################################## OS-specific #####################################################
+ # ########################################## OS-specific #####################################################
# ############################################################################################################
portable = False
@@ -415,13 +403,12 @@ class App(QtCore.QObject):
json.dump([], fp)
fp.close()
- # Application directory. CHDIR to it. Otherwise, trying to load
- # GUI icons will fail as their path is relative.
+ # Application directory. CHDIR to it. Otherwise, trying to load GUI icons will fail as their path is relative.
# This will fail under cx_freeze ...
self.app_home = os.path.dirname(os.path.realpath(__file__))
- App.log.debug("Application path is " + self.app_home)
- App.log.debug("Started in " + os.getcwd())
+ log.debug("Application path is " + self.app_home)
+ log.debug("Started in " + os.getcwd())
# cx_freeze workaround
if os.path.isfile(self.app_home):
@@ -465,7 +452,6 @@ class App(QtCore.QObject):
# ###########################################################################################################
# ###################################### Setting the Splash Screen ##########################################
# ###########################################################################################################
-
splash_settings = QSettings("Open Source", "FlatCAM")
if splash_settings.contains("splash_screen"):
show_splash = splash_settings.value("splash_screen")
@@ -504,10 +490,6 @@ class App(QtCore.QObject):
self.FC_light_blue = '#a5a5ffbf'
self.FC_dark_blue = '#0000ffbf'
- QtCore.QObject.__init__(self)
-
- self.ui = FlatCAMGUI(self)
-
theme_settings = QtCore.QSettings("Open Source", "FlatCAM")
if theme_settings.contains("theme"):
theme = theme_settings.value('theme', type=str)
@@ -522,14 +504,10 @@ class App(QtCore.QObject):
else:
self.cursor_color_3D = 'gray'
- self.ui.geom_update[int, int, int, int, int].connect(self.save_geometry)
- self.ui.final_save.connect(self.final_save)
+ # update the defaults dict with the setting in QSetting
+ self.defaults['global_theme'] = theme
- # restore the toolbar view
- self.restore_toolbar_view()
-
- # restore the GUI geometry
- self.restore_main_win_geom()
+ self.ui = MainGUI(self)
# set FlatCAM units in the Status bar
self.set_screen_units(self.defaults['units'])
@@ -543,52 +521,15 @@ class App(QtCore.QObject):
self.save_project_auto_update()
self.autosave_timer.timeout.connect(self.save_project_auto)
- # ###########################################################################################################
- # ##################################### UPDATE PREFERENCES GUI FORMS ########################################
- # ###########################################################################################################
-
- self.preferencesUiManager = PreferencesUIManager(defaults=self.defaults, data_path=self.data_path, ui=self.ui,
- inform=self.inform)
- self.preferencesUiManager.defaults_write_form()
-
- # When the self.defaults dictionary changes will update the Preferences GUI forms
- self.defaults.set_change_callback(self.on_defaults_dict_change)
-
- # ###########################################################################################################
- # ##################################### FIRST RUN SECTION ###################################################
- # ################################ It's done only once after install #####################################
- # ###########################################################################################################
-
- if self.defaults["first_run"] is True:
-
- # ONLY AT FIRST STARTUP INIT THE GUI LAYOUT TO 'COMPACT'
- initial_lay = 'minimal'
- self.ui.general_defaults_form.general_gui_group.on_layout(lay=initial_lay)
-
- # Set the combobox in Preferences to the current layout
- idx = self.ui.general_defaults_form.general_gui_group.layout_combo.findText(initial_lay)
- self.ui.general_defaults_form.general_gui_group.layout_combo.setCurrentIndex(idx)
-
- # after the first run, this object should be False
- self.defaults["first_run"] = False
- self.preferencesUiManager.save_defaults(silent=True)
-
- # ###########################################################################################################
- # ############################################ Data #########################################################
- # ###########################################################################################################
-
- self.recent = []
- self.recent_projects = []
-
- self.clipboard = QtWidgets.QApplication.clipboard()
-
- self.project_filename = None
- self.toggle_units_ignore = False
-
# ###########################################################################################################
# #################################### LOAD PREPROCESSORS ###################################################
# ###########################################################################################################
+ # ----------------------------------------- WARNING --------------------------------------------------------
+ # Preprocessors need to be loaded before the Preferences Manager builds the Preferences
+ # That's because the number of preprocessors can vary and here the comboboxes are populated
+ # -----------------------------------------------------------------------------------------------------------
+
# a dictionary that have as keys the name of the preprocessor files and the value is the class from
# the preprocessor file
self.preprocessors = load_preprocessors(self)
@@ -621,6 +562,46 @@ class App(QtCore.QObject):
self.ui.excellon_defaults_form.excellon_opt_group.pp_excellon_name_cb.addItem(name)
+ # ###########################################################################################################
+ # ##################################### UPDATE PREFERENCES GUI FORMS ########################################
+ # ###########################################################################################################
+
+ self.preferencesUiManager = PreferencesUIManager(defaults=self.defaults, data_path=self.data_path, ui=self.ui,
+ inform=self.inform)
+ self.preferencesUiManager.defaults_write_form()
+
+ # When the self.defaults dictionary changes will update the Preferences GUI forms
+ self.defaults.set_change_callback(self.on_defaults_dict_change)
+
+ # ###########################################################################################################
+ # ##################################### FIRST RUN SECTION ###################################################
+ # ################################ It's done only once after install #####################################
+ # ###########################################################################################################
+ if self.defaults["first_run"] is True:
+ # ONLY AT FIRST STARTUP INIT THE GUI LAYOUT TO 'COMPACT'
+ initial_lay = 'minimal'
+ self.ui.general_defaults_form.general_gui_group.on_layout(lay=initial_lay)
+
+ # Set the combobox in Preferences to the current layout
+ idx = self.ui.general_defaults_form.general_gui_group.layout_combo.findText(initial_lay)
+ self.ui.general_defaults_form.general_gui_group.layout_combo.setCurrentIndex(idx)
+
+ # after the first run, this object should be False
+ self.defaults["first_run"] = False
+ self.preferencesUiManager.save_defaults(silent=True)
+
+ # ###########################################################################################################
+ # ############################################ Data #########################################################
+ # ###########################################################################################################
+
+ self.recent = []
+ self.recent_projects = []
+
+ self.clipboard = QtWidgets.QApplication.clipboard()
+
+ self.project_filename = None
+ self.toggle_units_ignore = False
+
# ###########################################################################################################
# ########################################## LOAD LANGUAGES ################################################
# ###########################################################################################################
@@ -675,9 +656,11 @@ class App(QtCore.QObject):
# #################################### SETUP OBJECT COLLECTION ##############################################
# ###########################################################################################################
- self.collection = ObjectCollection(self)
+ self.collection = ObjectCollection(app=self)
self.ui.project_tab_layout.addWidget(self.collection.view)
+ self.app_obj = AppObject(app=self)
+
# ### Adjust tabs width ## ##
# self.collection.view.setMinimumWidth(self.ui.options_scroll_area.widget().sizeHint().width() +
# self.ui.options_scroll_area.verticalScrollBar().sizeHint().width())
@@ -774,18 +757,14 @@ class App(QtCore.QObject):
# ########################################## Custom signals ################################################
# signal for displaying messages in status bar
- self.inform.connect(self.info)
+ self.inform[str].connect(self.info)
+ self.inform[str, bool].connect(self.info)
+
# signal to be called when the app is quiting
self.app_quit.connect(self.quit_application, type=Qt.QueuedConnection)
- self.message.connect(self.message_dialog)
+ self.message.connect(lambda: message_dialog(parent=self.ui))
# self.progress.connect(self.set_progress_bar)
- # signals that are emitted when object state changes
- self.object_created.connect(self.on_object_created)
- self.object_changed.connect(self.on_object_changed)
- self.object_plotted.connect(self.on_object_plotted)
- self.plots_updated.connect(self.on_plots_updated)
-
# signals emitted when file state change
self.file_opened.connect(self.register_recent)
self.file_opened.connect(lambda kind, filename: self.register_folder(filename))
@@ -794,10 +773,10 @@ class App(QtCore.QObject):
# ########################################## Standard signals ###############################################
# ### Menu
self.ui.menufilenewproject.triggered.connect(self.on_file_new_click)
- self.ui.menufilenewgeo.triggered.connect(self.new_geometry_object)
- self.ui.menufilenewgrb.triggered.connect(self.new_gerber_object)
- self.ui.menufilenewexc.triggered.connect(self.new_excellon_object)
- self.ui.menufilenewdoc.triggered.connect(self.new_document_object)
+ self.ui.menufilenewgeo.triggered.connect(self.app_obj.new_geometry_object)
+ self.ui.menufilenewgrb.triggered.connect(self.app_obj.new_gerber_object)
+ self.ui.menufilenewexc.triggered.connect(self.app_obj.new_excellon_object)
+ self.ui.menufilenewdoc.triggered.connect(self.app_obj.new_document_object)
self.ui.menufileopengerber.triggered.connect(self.on_fileopengerber)
self.ui.menufileopenexcellon.triggered.connect(self.on_fileopenexcellon)
@@ -889,18 +868,21 @@ class App(QtCore.QObject):
self.ui.menuview_replot.triggered.connect(self.plot_all)
self.ui.menuview_toggle_code_editor.triggered.connect(self.on_toggle_code_editor)
- self.ui.menuview_toggle_fscreen.triggered.connect(self.on_fullscreen)
- self.ui.menuview_toggle_parea.triggered.connect(self.on_toggle_plotarea)
- self.ui.menuview_toggle_notebook.triggered.connect(self.on_toggle_notebook)
- self.ui.menu_toggle_nb.triggered.connect(self.on_toggle_notebook)
- self.ui.menuview_toggle_grid.triggered.connect(self.on_toggle_grid)
- self.ui.menuview_toggle_grid_lines.triggered.connect(self.on_toggle_grid_lines)
- self.ui.menuview_toggle_axis.triggered.connect(self.on_toggle_axis)
+ self.ui.menuview_toggle_fscreen.triggered.connect(self.ui.on_fullscreen)
+ self.ui.menuview_toggle_parea.triggered.connect(self.ui.on_toggle_plotarea)
+ self.ui.menuview_toggle_notebook.triggered.connect(self.ui.on_toggle_notebook)
+ self.ui.menu_toggle_nb.triggered.connect(self.ui.on_toggle_notebook)
+ self.ui.menuview_toggle_grid.triggered.connect(self.ui.on_toggle_grid)
self.ui.menuview_toggle_workspace.triggered.connect(self.on_workspace_toggle)
- self.ui.menutoolshell.triggered.connect(self.toggle_shell)
+ self.ui.menuview_toggle_grid_lines.triggered.connect(self.plotcanvas.on_toggle_grid_lines)
+ self.ui.menuview_toggle_axis.triggered.connect(self.plotcanvas.on_toggle_axis)
+ self.ui.menuview_toggle_hud.triggered.connect(self.plotcanvas.on_toggle_hud)
+
+ self.ui.menutoolshell.triggered.connect(self.ui.toggle_shell_ui)
self.ui.menuhelp_about.triggered.connect(self.on_about)
+ self.ui.menuhelp_readme.triggered.connect(self.on_readme)
self.ui.menuhelp_manual.triggered.connect(lambda: webbrowser.open(self.manual_url))
self.ui.menuhelp_report_bug.triggered.connect(lambda: webbrowser.open(self.bug_report_url))
self.ui.menuhelp_exc_spec.triggered.connect(lambda: webbrowser.open(self.excellon_spec_url))
@@ -933,11 +915,11 @@ class App(QtCore.QObject):
# Context Menu
self.ui.popmenu_disable.triggered.connect(lambda: self.toggle_plots(self.collection.get_selected()))
- self.ui.popmenu_panel_toggle.triggered.connect(self.on_toggle_notebook)
+ self.ui.popmenu_panel_toggle.triggered.connect(self.ui.on_toggle_notebook)
- self.ui.popmenu_new_geo.triggered.connect(self.new_geometry_object)
- self.ui.popmenu_new_grb.triggered.connect(self.new_gerber_object)
- self.ui.popmenu_new_exc.triggered.connect(self.new_excellon_object)
+ self.ui.popmenu_new_geo.triggered.connect(self.app_obj.new_geometry_object)
+ self.ui.popmenu_new_grb.triggered.connect(self.app_obj.new_gerber_object)
+ self.ui.popmenu_new_exc.triggered.connect(self.app_obj.new_excellon_object)
self.ui.popmenu_new_prj.triggered.connect(self.on_file_new)
self.ui.zoomfit.triggered.connect(self.on_zoom_fit)
@@ -975,43 +957,15 @@ class App(QtCore.QObject):
# ###########################################################################################################
# ######################################## GUI SETTINGS SIGNALS #############################################
# ###########################################################################################################
- self.ui.general_defaults_form.general_app_group.ge_radio.activated_custom.connect(self.on_app_restart)
self.ui.general_defaults_form.general_app_set_group.cursor_radio.activated_custom.connect(self.on_cursor_type)
# ######################################## Tools related signals ############################################
- # Film Tool
- self.ui.tools_defaults_form.tools_film_group.film_color_entry.editingFinished.connect(
- self.on_film_color_entry)
- self.ui.tools_defaults_form.tools_film_group.film_color_button.clicked.connect(
- self.on_film_color_button)
-
- # QRCode Tool
- self.ui.tools2_defaults_form.tools2_qrcode_group.fill_color_entry.editingFinished.connect(
- self.on_qrcode_fill_color_entry)
- self.ui.tools2_defaults_form.tools2_qrcode_group.fill_color_button.clicked.connect(
- self.on_qrcode_fill_color_button)
- self.ui.tools2_defaults_form.tools2_qrcode_group.back_color_entry.editingFinished.connect(
- self.on_qrcode_back_color_entry)
- self.ui.tools2_defaults_form.tools2_qrcode_group.back_color_button.clicked.connect(
- self.on_qrcode_back_color_button)
# portability changed signal
self.ui.general_defaults_form.general_app_group.portability_cb.stateChanged.connect(self.on_portable_checked)
# Object list
- self.collection.view.activated.connect(self.on_row_activated)
- self.collection.item_selected.connect(self.on_row_selected)
-
- self.object_status_changed.connect(self.on_collection_updated)
-
- # Make sure that when the Excellon loading parameters are changed, the change is reflected in the
- # Export Excellon parameters.
- self.ui.excellon_defaults_form.excellon_gen_group.update_excellon_cb.stateChanged.connect(
- self.on_update_exc_export
- )
-
- # call it once to make sure it is updated at startup
- self.on_update_exc_export(state=self.defaults["excellon_update"])
+ self.object_status_changed.connect(self.collection.on_collection_updated)
# when there are arguments at application startup this get launched
self.args_at_startup[list].connect(self.on_startup_args)
@@ -1068,6 +1022,15 @@ class App(QtCore.QObject):
self.ui.util_defaults_form.kw_group.del_btn.clicked.connect(
lambda: self.del_extension(ext_type='keyword'))
+ # ###########################################################################################################
+ # ########################################### GUI SIGNALS ###################################################
+ # ###########################################################################################################
+ self.ui.hud_label.clicked.connect(self.plotcanvas.on_toggle_hud)
+ self.ui.axis_status_label.clicked.connect(self.plotcanvas.on_toggle_axis)
+
+ # ###########################################################################################################
+ # ####################################### VARIOUS SIGNALS ###################################################
+ # ###########################################################################################################
# connect the abort_all_tasks related slots to the related signals
self.proc_container.idle_flag.connect(self.app_is_idle)
@@ -1087,7 +1050,7 @@ class App(QtCore.QObject):
# ########################################## Other setups ###################################################
# ###########################################################################################################
- # to use for tools like Distance tool who depends on the event sources who are changed inside the Editors
+ # to use for tools like Distance tool who depends on the event sources who are changed inside the AppEditors
# depending on from where those tools are called different actions can be done
self.call_source = 'app'
@@ -1365,10 +1328,13 @@ class App(QtCore.QObject):
self.rules_tool = None
self.sub_tool = None
self.move_tool = None
+
self.cutout_tool = None
self.ncclear_tool = None
- self.optimal_tool = None
self.paint_tool = None
+ self.isolation_tool = None
+
+ self.optimal_tool = None
self.transform_tool = None
self.properties_tool = None
self.pdf_tool = None
@@ -1382,12 +1348,14 @@ class App(QtCore.QObject):
self.align_objects_tool = None
self.punch_tool = None
self.invert_tool = None
+ self.corners_tool = None
+ self.etch_tool = None
# always install tools only after the shell is initialized because the self.inform.emit() depends on shell
try:
self.install_tools()
except AttributeError as e:
- log.debug("App.__init__() install tools() --> %s" % str(e))
+ log.debug("App.__init__() install_tools() --> %s" % str(e))
# ###########################################################################################################
# ############################################ SETUP RECENT ITEMS ###########################################
@@ -1483,15 +1451,6 @@ class App(QtCore.QObject):
# holds the key modifier if pressed (CTRL, SHIFT or ALT)
self.key_modifiers = None
- # Variable to hold the status of the axis
- self.toggle_axis = True
-
- # Variable to hold the status of the grid lines
- self.toggle_grid_lines = True
-
- # Variable to store the status of the fullscreen event
- self.toggle_fscreen = False
-
# Variable to store the status of the code editor
self.toggle_codeeditor = False
@@ -1562,7 +1521,7 @@ class App(QtCore.QObject):
except AttributeError:
self.tool_shapes = None
else:
- from flatcamGUI.PlotCanvasLegacy import ShapeCollectionLegacy
+ from AppGUI.PlotCanvasLegacy import ShapeCollectionLegacy
self.tool_shapes = ShapeCollectionLegacy(obj=self, app=self, name="tool")
# used in the delayed shutdown self.start_delayed_quit() method
@@ -1598,6 +1557,11 @@ class App(QtCore.QObject):
self.ui.excellon_defaults_form.excellon_gen_group.excellon_optimization_radio.set_value('T')
self.ui.excellon_defaults_form.excellon_gen_group.excellon_optimization_radio.setDisabled(True)
+ # ###########################################################################################################
+ # ########################################### EXCLUSION AREAS ###############################################
+ # ###########################################################################################################
+ self.exc_areas = ExclusionAreas(app=self)
+
# ###########################################################################################################
# ##################################### Finished the CONSTRUCTOR ############################################
# ###########################################################################################################
@@ -1712,7 +1676,7 @@ class App(QtCore.QObject):
try:
shutil.copytree(from_path, to_path)
except FileNotFoundError:
- from_new_path = os.path.dirname(os.path.realpath(__file__)) + '\\flatcamGUI\\VisPyData\\data'
+ from_new_path = os.path.dirname(os.path.realpath(__file__)) + '\\AppGUI\\VisPyData\\data'
shutil.copytree(from_new_path, to_path)
def on_startup_args(self, args, silent=False):
@@ -1947,6 +1911,10 @@ class App(QtCore.QObject):
self.paint_tool.install(icon=QtGui.QIcon(self.resource_location + '/paint16.png'), pos=self.ui.menutool,
before=self.sub_tool.menuAction, separator=True)
+ self.isolation_tool = ToolIsolation(self)
+ self.isolation_tool.install(icon=QtGui.QIcon(self.resource_location + '/iso_16.png'), pos=self.ui.menutool,
+ before=self.sub_tool.menuAction, separator=True)
+
self.copper_thieving_tool = ToolCopperThieving(self)
self.copper_thieving_tool.install(icon=QtGui.QIcon(self.resource_location + '/copperfill32.png'),
pos=self.ui.menutool)
@@ -1965,6 +1933,12 @@ class App(QtCore.QObject):
self.invert_tool = ToolInvertGerber(self)
self.invert_tool.install(icon=QtGui.QIcon(self.resource_location + '/invert32.png'), pos=self.ui.menutool)
+ self.corners_tool = ToolCorners(self)
+ self.corners_tool.install(icon=QtGui.QIcon(self.resource_location + '/corners_32.png'), pos=self.ui.menutool)
+
+ self.etch_tool = ToolEtchCompensation(self)
+ self.etch_tool.install(icon=QtGui.QIcon(self.resource_location + '/etch_32.png'), pos=self.ui.menutool)
+
self.transform_tool = ToolTransform(self)
self.transform_tool.install(icon=QtGui.QIcon(self.resource_location + '/transform.png'),
pos=self.ui.menuoptions, separator=True)
@@ -2030,7 +2004,7 @@ class App(QtCore.QObject):
# re-add the TCL Shell action to the Tools menu and reconnect it to ist slot function
self.ui.menutoolshell = self.ui.menutool.addAction(QtGui.QIcon(self.resource_location + '/shell16.png'),
'&Command Line\tS')
- self.ui.menutoolshell.triggered.connect(self.toggle_shell)
+ self.ui.menutoolshell.triggered.connect(self.ui.toggle_shell_ui)
# third install all of them
try:
@@ -2053,21 +2027,22 @@ class App(QtCore.QObject):
"""
# Toolbar
+
+ # File Toolbar Signals
# self.ui.file_new_btn.triggered.connect(self.on_file_new)
self.ui.file_open_btn.triggered.connect(self.on_file_openproject)
self.ui.file_save_btn.triggered.connect(self.on_file_saveproject)
self.ui.file_open_gerber_btn.triggered.connect(self.on_fileopengerber)
self.ui.file_open_excellon_btn.triggered.connect(self.on_fileopenexcellon)
+ # View Toolbar Signals
self.ui.clear_plot_btn.triggered.connect(self.clear_plots)
self.ui.replot_btn.triggered.connect(self.plot_all)
self.ui.zoom_fit_btn.triggered.connect(self.on_zoom_fit)
self.ui.zoom_in_btn.triggered.connect(lambda: self.plotcanvas.zoom(1 / 1.5))
self.ui.zoom_out_btn.triggered.connect(lambda: self.plotcanvas.zoom(1.5))
- self.ui.newgeo_btn.triggered.connect(self.new_geometry_object)
- self.ui.newgrb_btn.triggered.connect(self.new_gerber_object)
- self.ui.newexc_btn.triggered.connect(self.new_excellon_object)
+ # Edit Toolbar Signals
self.ui.editgeo_btn.triggered.connect(self.object2editor)
self.ui.update_obj_btn.triggered.connect(lambda: self.editor2object())
self.ui.copy_btn.triggered.connect(self.on_copy_command)
@@ -2081,7 +2056,8 @@ class App(QtCore.QObject):
self.ui.jmp_btn.triggered.connect(self.on_jump_to)
self.ui.locate_btn.triggered.connect(lambda: self.on_locate(obj=self.collection.get_active()))
- self.ui.shell_btn.triggered.connect(self.toggle_shell)
+ # Scripting Toolbar Signals
+ self.ui.shell_btn.triggered.connect(self.ui.toggle_shell_ui)
self.ui.new_script_btn.triggered.connect(self.on_filenewscript)
self.ui.open_script_btn.triggered.connect(self.on_fileopenscript)
self.ui.run_script_btn.triggered.connect(self.on_filerunscript)
@@ -2095,6 +2071,7 @@ class App(QtCore.QObject):
self.ui.cutout_btn.triggered.connect(lambda: self.cutout_tool.run(toggle=True))
self.ui.ncc_btn.triggered.connect(lambda: self.ncclear_tool.run(toggle=True))
self.ui.paint_btn.triggered.connect(lambda: self.paint_tool.run(toggle=True))
+ self.ui.isolation_btn.triggered.connect(lambda: self.isolation_tool.run(toggle=True))
self.ui.panelize_btn.triggered.connect(lambda: self.panelize_tool.run(toggle=True))
self.ui.film_btn.triggered.connect(lambda: self.film_tool.run(toggle=True))
@@ -2110,25 +2087,27 @@ class App(QtCore.QObject):
self.ui.fiducials_btn.triggered.connect(lambda: self.fiducial_tool.run(toggle=True))
self.ui.punch_btn.triggered.connect(lambda: self.punch_tool.run(toggle=True))
self.ui.invert_btn.triggered.connect(lambda: self.invert_tool.run(toggle=True))
+ self.ui.corners_tool_btn.triggered.connect(lambda: self.corners_tool.run(toggle=True))
+ self.ui.etch_btn.triggered.connect(lambda: self.etch_tool.run(toggle=True))
def object2editor(self):
"""
- Send the current Geometry or Excellon object (if any) into the it's editor.
+ Send the current Geometry, Gerber, Excellon object or CNCJob (if any) into the it's editor.
:return: None
"""
self.defaults.report_usage("object2editor()")
- # disable the objects menu as it may interfere with the Editors
+ # disable the objects menu as it may interfere with the AppEditors
self.ui.menuobjects.setDisabled(True)
edited_object = self.collection.get_active()
if isinstance(edited_object, GerberObject) or isinstance(edited_object, GeometryObject) or \
- isinstance(edited_object, ExcellonObject):
+ isinstance(edited_object, ExcellonObject) or isinstance(edited_object, CNCJobObject):
pass
else:
- self.inform.emit('[WARNING_NOTCL] %s' % _("Select a Geometry, Gerber or Excellon Object to edit."))
+ self.inform.emit('[WARNING_NOTCL] %s' % _("Select a Geometry, Gerber, Excellon or CNCJob Object to edit."))
return
if isinstance(edited_object, GeometryObject):
@@ -2192,6 +2171,14 @@ class App(QtCore.QObject):
edited_object.ui_build = False
edited_object.build_aperture_storage = False
+ elif isinstance(edited_object, CNCJobObject):
+
+ if self.ui.splitter.sizes()[0] == 0:
+ self.ui.splitter.setSizes([1, 1])
+
+ edited_object.on_edit_code_click()
+ return
+
# make sure that we can't select another object while in Editor Mode:
# self.collection.view.setSelectionMode(QtWidgets.QAbstractItemView.NoSelection)
self.ui.project_frame.setDisabled(True)
@@ -2225,6 +2212,7 @@ class App(QtCore.QObject):
msgbox.setText(_("Do you want to save the edited object?"))
msgbox.setWindowTitle(_("Close Editor"))
msgbox.setWindowIcon(QtGui.QIcon(self.resource_location + '/save_as.png'))
+ msgbox.setIcon(QtWidgets.QMessageBox.Question)
bt_yes = msgbox.addButton(_('Yes'), QtWidgets.QMessageBox.YesRole)
bt_no = msgbox.addButton(_('No'), QtWidgets.QMessageBox.NoRole)
@@ -2242,14 +2230,11 @@ class App(QtCore.QObject):
if isinstance(edited_obj, GeometryObject):
obj_type = "Geometry"
- if cleanup is None:
- self.geo_editor.update_fcgeometry(edited_obj)
- # self.geo_editor.update_options(edited_obj)
-
- self.geo_editor.deactivate()
+ self.geo_editor.update_fcgeometry(edited_obj)
+ # self.geo_editor.update_options(edited_obj)
# restore GUI to the Selected TAB
- # Remove anything else in the GUI
+ # Remove anything else in the AppGUI
self.ui.tool_scroll_area.takeWidget()
# update the geo object options so it is including the bounding box values
@@ -2264,21 +2249,19 @@ class App(QtCore.QObject):
log.debug("App.editor2object() --> Geometry --> %s" % str(e))
edited_obj.build_ui()
+ edited_obj.plot()
self.inform.emit('[success] %s' % _("Editor exited. Editor content saved."))
elif isinstance(edited_obj, GerberObject):
obj_type = "Gerber"
- if cleanup is None:
- self.grb_editor.update_fcgerber()
- self.grb_editor.update_options(edited_obj)
- self.grb_editor.deactivate_grb_editor()
+ self.grb_editor.update_fcgerber()
+ # self.grb_editor.update_options(edited_obj)
# delete the old object (the source object) if it was an empty one
try:
if len(edited_obj.solid_geometry) == 0:
old_name = edited_obj.options['name']
- self.collection.set_active(old_name)
- self.collection.delete_active()
+ self.collection.delete_by_name(old_name)
except TypeError:
# if the solid_geometry is a single Polygon the len() will not work
# in any case, falling here means that we have something in the solid_geometry, even if only
@@ -2288,19 +2271,16 @@ class App(QtCore.QObject):
self.inform.emit('[success] %s' % _("Editor exited. Editor content saved."))
# restore GUI to the Selected TAB
- # Remove anything else in the GUI
+ # Remove anything else in the AppGUI
self.ui.selected_scroll_area.takeWidget()
elif isinstance(edited_obj, ExcellonObject):
obj_type = "Excellon"
- if cleanup is None:
- self.exc_editor.update_fcexcellon(edited_obj)
- # self.exc_editor.update_options(edited_obj)
-
- self.exc_editor.deactivate()
+ self.exc_editor.update_fcexcellon(edited_obj)
+ # self.exc_editor.update_options(edited_obj)
# restore GUI to the Selected TAB
- # Remove anything else in the GUI
+ # Remove anything else in the AppGUI
self.ui.tool_scroll_area.takeWidget()
# delete the old object (the source object) if it was an empty one
@@ -2326,6 +2306,7 @@ class App(QtCore.QObject):
if isinstance(edited_obj, GeometryObject):
self.geo_editor.deactivate()
edited_obj.build_ui()
+ edited_obj.plot()
elif isinstance(edited_obj, GerberObject):
self.grb_editor.deactivate_grb_editor()
edited_obj.build_ui()
@@ -2342,7 +2323,7 @@ class App(QtCore.QObject):
# edited_obj.set_ui(edited_obj.ui_type(decimals=self.decimals))
# edited_obj.build_ui()
# Switch notebook to Selected page
- self.ui.notebook.setCurrentWidget(self.ui.selected_tab)
+ # self.ui.notebook.setCurrentWidget(self.ui.selected_tab)
else:
if isinstance(edited_obj, GeometryObject):
self.geo_editor.deactivate()
@@ -2362,7 +2343,7 @@ class App(QtCore.QObject):
# restore the call_source to app
self.call_source = 'app'
- edited_obj.plot()
+ # edited_obj.plot()
self.ui.plot_tab_area.setTabText(0, "Plot Area")
self.ui.plot_tab_area.protectTab(0)
@@ -2389,12 +2370,17 @@ class App(QtCore.QObject):
loc = os.path.dirname(__file__)
return loc
- def info(self, msg):
+ @QtCore.pyqtSlot(str)
+ @QtCore.pyqtSlot(str, bool)
+ def info(self, msg, shell_echo=True):
"""
Informs the user. Normally on the status bar, optionally
also on the shell.
- :param msg: Text to write.
+ :param msg: Text to write.
+ :type msg: str
+ :param shell_echo: Control if to display the message msg in the Shell
+ :type shell_echo: bool
:return: None
"""
@@ -2405,88 +2391,35 @@ class App(QtCore.QObject):
msg_ = match.group(2)
self.ui.fcinfo.set_status(str(msg_), level=level)
- if level.lower() == "error":
- self.shell_message(msg, error=True, show=True)
- elif level.lower() == "warning":
- self.shell_message(msg, warning=True, show=True)
+ if shell_echo is True:
+ if level.lower() == "error":
+ self.shell_message(msg, error=True, show=True)
+ elif level.lower() == "warning":
+ self.shell_message(msg, warning=True, show=True)
- elif level.lower() == "error_notcl":
- self.shell_message(msg, error=True, show=False)
+ elif level.lower() == "error_notcl":
+ self.shell_message(msg, error=True, show=False)
- elif level.lower() == "warning_notcl":
- self.shell_message(msg, warning=True, show=False)
+ elif level.lower() == "warning_notcl":
+ self.shell_message(msg, warning=True, show=False)
- elif level.lower() == "success":
- self.shell_message(msg, success=True, show=False)
+ elif level.lower() == "success":
+ self.shell_message(msg, success=True, show=False)
- elif level.lower() == "selected":
- self.shell_message(msg, selected=True, show=False)
+ elif level.lower() == "selected":
+ self.shell_message(msg, selected=True, show=False)
- else:
- self.shell_message(msg, show=False)
+ else:
+ self.shell_message(msg, show=False)
else:
self.ui.fcinfo.set_status(str(msg), level="info")
# make sure that if the message is to clear the infobar with a space
# is not printed over and over on the shell
- if msg != '':
+ if msg != '' and shell_echo is True:
self.shell_message(msg)
- def restore_toolbar_view(self):
- """
- Some toolbars may be hidden by user and here we restore the state of the toolbars visibility that
- was saved in the defaults dictionary.
-
- :return: None
- """
- tb = self.defaults["global_toolbar_view"]
-
- if tb & 1:
- self.ui.toolbarfile.setVisible(True)
- else:
- self.ui.toolbarfile.setVisible(False)
-
- if tb & 2:
- self.ui.toolbargeo.setVisible(True)
- else:
- self.ui.toolbargeo.setVisible(False)
-
- if tb & 4:
- self.ui.toolbarview.setVisible(True)
- else:
- self.ui.toolbarview.setVisible(False)
-
- if tb & 8:
- self.ui.toolbartools.setVisible(True)
- else:
- self.ui.toolbartools.setVisible(False)
-
- if tb & 16:
- self.ui.exc_edit_toolbar.setVisible(True)
- else:
- self.ui.exc_edit_toolbar.setVisible(False)
-
- if tb & 32:
- self.ui.geo_edit_toolbar.setVisible(True)
- else:
- self.ui.geo_edit_toolbar.setVisible(False)
-
- if tb & 64:
- self.ui.grb_edit_toolbar.setVisible(True)
- else:
- self.ui.grb_edit_toolbar.setVisible(False)
-
- if tb & 128:
- self.ui.snap_toolbar.setVisible(True)
- else:
- self.ui.snap_toolbar.setVisible(False)
-
- if tb & 256:
- self.ui.toolbarshell.setVisible(True)
- else:
- self.ui.toolbarshell.setVisible(False)
-
def on_import_preferences(self):
"""
Loads the application default settings from a saved file into
@@ -2538,10 +2471,11 @@ class App(QtCore.QObject):
filename, _f = FCFileSaveDialog.get_saved_filename(
caption=_("Export FlatCAM Preferences"),
directory=self.data_path + '/preferences_' + date,
- filter=filter__
+ ext_filter=filter__
)
except TypeError:
- filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export FlatCAM Preferences"), filter=filter__)
+ filename, _f = FCFileSaveDialog.get_saved_filename(
+ caption=_("Export FlatCAM Preferences"), ext_filter=filter__)
filename = str(filename)
if filename == "":
self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled."))
@@ -2577,16 +2511,16 @@ class App(QtCore.QObject):
self.date = self.date.replace(' ', '_')
filter__ = "HTML File .html (*.html);;TXT File .txt (*.txt);;All Files (*.*)"
- path_to_save = self.defaults["global_last_save_folder"] if\
+ path_to_save = self.defaults["global_last_save_folder"] if \
self.defaults["global_last_save_folder"] is not None else self.data_path
try:
filename, _f = FCFileSaveDialog.get_saved_filename(
caption=_("Save to file"),
directory=path_to_save + '/file_' + self.date,
- filter=filter__
+ ext_filter=filter__
)
except TypeError:
- filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save to file"), filter=filter__)
+ filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save to file"), ext_filter=filter__)
filename = str(filename)
@@ -2628,52 +2562,6 @@ class App(QtCore.QObject):
self.inform.emit('[success] %s: %s' % (_("Exported file to"), filename))
- def save_geometry(self, x, y, width, height, notebook_width):
- """
- Will save the application geometry and positions in the defaults discitionary to be restored at the next
- launch of the application.
-
- :param x: X position of the main window
- :param y: Y position of the main window
- :param width: width of the main window
- :param height: height of the main window
- :param notebook_width: the notebook width is adjustable so it get saved here, too.
-
- :return: None
- """
- self.defaults["global_def_win_x"] = x
- self.defaults["global_def_win_y"] = y
- self.defaults["global_def_win_w"] = width
- self.defaults["global_def_win_h"] = height
- self.defaults["global_def_notebook_width"] = notebook_width
- self.preferencesUiManager.save_defaults()
-
- def restore_main_win_geom(self):
- try:
- self.ui.setGeometry(self.defaults["global_def_win_x"],
- self.defaults["global_def_win_y"],
- self.defaults["global_def_win_w"],
- self.defaults["global_def_win_h"])
- self.ui.splitter.setSizes([self.defaults["global_def_notebook_width"], 0])
- except KeyError as e:
- log.debug("App.restore_main_win_geom() --> %s" % str(e))
-
- def message_dialog(self, title, message, kind="info"):
- """
- Builds and show a custom QMessageBox to be used in FlatCAM.
-
- :param title: title of the QMessageBox
- :param message: message to be displayed
- :param kind: type of QMessageBox; will display a specific icon.
- :return:
- """
- icon = {"info": QtWidgets.QMessageBox.Information,
- "warning": QtWidgets.QMessageBox.Warning,
- "error": QtWidgets.QMessageBox.Critical}[str(kind)]
- dlg = QtWidgets.QMessageBox(icon, title, message, parent=self.ui)
- dlg.setText(message)
- dlg.exec_()
-
def register_recent(self, kind, filename):
"""
Will register the files opened into record dictionaries. The FlatCAM projects has it's own
@@ -2729,344 +2617,6 @@ class App(QtCore.QObject):
# Re-build the recent items menu
self.setup_recent_items()
- def new_object(self, kind, name, initialize, plot=True, autoselected=True):
- """
- Creates a new specialized FlatCAMObj and attaches it to the application,
- this is, updates the GUI accordingly, any other records and plots it.
- This method is thread-safe.
-
- Notes:
- * If the name is in use, the self.collection will modify it
- when appending it to the collection. There is no need to handle
- name conflicts here.
-
- :param kind: The kind of object to create. One of 'gerber', 'excellon', 'cncjob' and 'geometry'.
- :type kind: str
- :param name: Name for the object.
- :type name: str
- :param initialize: Function to run after creation of the object but before it is attached to the application.
- The function is called with 2 parameters: the new object and the App instance.
- :type initialize: function
- :param plot: If to plot the resulting object
- :param autoselected: if the resulting object is autoselected in the Project tab and therefore in the
- self.collection
- :return: None
- :rtype: None
- """
-
- App.log.debug("new_object()")
- obj_plot = plot
- obj_autoselected = autoselected
-
- t0 = time.time() # Debug
-
- # ## Create object
- classdict = {
- "gerber": GerberObject,
- "excellon": ExcellonObject,
- "cncjob": CNCJobObject,
- "geometry": GeometryObject,
- "script": ScriptObject,
- "document": DocumentObject
- }
-
- App.log.debug("Calling object constructor...")
-
- # Object creation/instantiation
- obj = classdict[kind](name)
-
- obj.units = self.options["units"]
-
- # IMPORTANT
- # The key names in defaults and options dictionary's are not random:
- # they have to have in name first the type of the object (geometry, excellon, cncjob and gerber) or how it's
- # called here, the 'kind' followed by an underline. Above the App default values from self.defaults are
- # copied to self.options. After that, below, depending on the type of
- # object that is created, it will strip the name of the object and the underline (if the original key was
- # let's say "excellon_toolchange", it will strip the excellon_) and to the obj.options the key will become
- # "toolchange"
-
- for option in self.options:
- if option.find(kind + "_") == 0:
- oname = option[len(kind) + 1:]
- obj.options[oname] = self.options[option]
-
- obj.isHovering = False
- obj.notHovering = True
-
- # Initialize as per user request
- # User must take care to implement initialize
- # in a thread-safe way as is is likely that we
- # have been invoked in a separate thread.
- t1 = time.time()
- self.log.debug("%f seconds before initialize()." % (t1 - t0))
- try:
- return_value = initialize(obj, self)
- except Exception as e:
- msg = '[ERROR_NOTCL] %s' % _("An internal error has occurred. See shell.\n")
- msg += _("Object ({kind}) failed because: {error} \n\n").format(kind=kind, error=str(e))
- msg += traceback.format_exc()
- self.inform.emit(msg)
- return "fail"
-
- t2 = time.time()
- self.log.debug("%f seconds executing initialize()." % (t2 - t1))
-
- if return_value == 'fail':
- log.debug("Object (%s) parsing and/or geometry creation failed." % kind)
- return "fail"
-
- # Check units and convert if necessary
- # This condition CAN be true because initialize() can change obj.units
- if self.options["units"].upper() != obj.units.upper():
- self.inform.emit('%s: %s' % (_("Converting units to "), self.options["units"]))
- obj.convert_units(self.options["units"])
- t3 = time.time()
- self.log.debug("%f seconds converting units." % (t3 - t2))
-
- # Create the bounding box for the object and then add the results to the obj.options
- # But not for Scripts or for Documents
- if kind != 'document' and kind != 'script':
- try:
- xmin, ymin, xmax, ymax = obj.bounds()
- obj.options['xmin'] = xmin
- obj.options['ymin'] = ymin
- obj.options['xmax'] = xmax
- obj.options['ymax'] = ymax
- except Exception as e:
- log.warning("App.new_object() -> The object has no bounds properties. %s" % str(e))
- return "fail"
-
- try:
- if kind == 'excellon':
- obj.fill_color = self.defaults["excellon_plot_fill"]
- obj.outline_color = self.defaults["excellon_plot_line"]
-
- if kind == 'gerber':
- obj.fill_color = self.defaults["gerber_plot_fill"]
- obj.outline_color = self.defaults["gerber_plot_line"]
- except Exception as e:
- log.warning("App.new_object() -> setting colors error. %s" % str(e))
-
- # update the KeyWords list with the name of the file
- self.myKeywords.append(obj.options['name'])
-
- log.debug("Moving new object back to main thread.")
-
- # Move the object to the main thread and let the app know that it is available.
- obj.moveToThread(self.main_thread)
- self.object_created.emit(obj, obj_plot, obj_autoselected)
-
- return obj
-
- def new_excellon_object(self):
- """
- Creates a new, blank Excellon object.
-
- :return: None
- """
- self.defaults.report_usage("new_excellon_object()")
-
- self.new_object('excellon', 'new_exc', lambda x, y: None, plot=False)
-
- def new_geometry_object(self):
- """
- Creates a new, blank and single-tool Geometry object.
-
- :return: None
- """
- self.defaults.report_usage("new_geometry_object()")
-
- def initialize(obj, app):
- obj.multitool = False
-
- self.new_object('geometry', 'new_geo', initialize, plot=False)
-
- def new_gerber_object(self):
- """
- Creates a new, blank Gerber object.
-
- :return: None
- """
- self.defaults.report_usage("new_gerber_object()")
-
- def initialize(grb_obj, app):
- grb_obj.multitool = False
- grb_obj.source_file = []
- grb_obj.multigeo = False
- grb_obj.follow = False
- grb_obj.apertures = {}
- grb_obj.solid_geometry = []
-
- try:
- grb_obj.options['xmin'] = 0
- grb_obj.options['ymin'] = 0
- grb_obj.options['xmax'] = 0
- grb_obj.options['ymax'] = 0
- except KeyError:
- pass
-
- self.new_object('gerber', 'new_grb', initialize, plot=False)
-
- def new_script_object(self):
- """
- Creates a new, blank TCL Script object.
-
- :return: None
- """
- self.defaults.report_usage("new_script_object()")
-
- # commands_list = "# AddCircle, AddPolygon, AddPolyline, AddRectangle, AlignDrill, " \
- # "AlignDrillGrid, Bbox, Bounds, ClearShell, CopperClear,\n" \
- # "# Cncjob, Cutout, Delete, Drillcncjob, ExportDXF, ExportExcellon, ExportGcode,\n" \
- # "# ExportGerber, ExportSVG, Exteriors, Follow, GeoCutout, GeoUnion, GetNames,\n" \
- # "# GetSys, ImportSvg, Interiors, Isolate, JoinExcellon, JoinGeometry, " \
- # "ListSys, MillDrills,\n" \
- # "# MillSlots, Mirror, New, NewExcellon, NewGeometry, NewGerber, Nregions, " \
- # "Offset, OpenExcellon, OpenGCode, OpenGerber, OpenProject,\n" \
- # "# Options, Paint, Panelize, PlotAl, PlotObjects, SaveProject, " \
- # "SaveSys, Scale, SetActive, SetSys, SetOrigin, Skew, SubtractPoly,\n" \
- # "# SubtractRectangle, Version, WriteGCode\n"
-
- new_source_file = '# %s\n' % _('CREATE A NEW FLATCAM TCL SCRIPT') + \
- '# %s:\n' % _('TCL Tutorial is here') + \
- '# https://www.tcl.tk/man/tcl8.5/tutorial/tcltutorial.html\n' + '\n\n' + \
- '# %s:\n' % _("FlatCAM commands list")
- new_source_file += '# %s\n\n' % _("Type >help< followed by Run Code for a list of FlatCAM Tcl Commands "
- "(displayed in Tcl Shell).")
-
- def initialize(obj, app):
- obj.source_file = deepcopy(new_source_file)
-
- outname = 'new_script'
- self.new_object('script', outname, initialize, plot=False)
-
- def new_document_object(self):
- """
- Creates a new, blank Document object.
-
- :return: None
- """
- self.defaults.report_usage("new_document_object()")
-
- def initialize(obj, app):
- obj.source_file = ""
-
- self.new_object('document', 'new_document', initialize, plot=False)
-
- def on_object_created(self, obj, plot, auto_select):
- """
- Event callback for object creation.
- It will add the new object to the collection. After that it will plot the object in a threaded way
-
- :param obj: The newly created FlatCAM object.
- :param plot: if the newly create object t obe plotted
- :param auto_select: if the newly created object to be autoselected after creation
- :return: None
- """
- t0 = time.time() # DEBUG
- self.log.debug("on_object_created()")
-
- # The Collection might change the name if there is a collision
- self.collection.append(obj)
-
- # after adding the object to the collection always update the list of objects that are in the collection
- self.all_objects_list = self.collection.get_list()
-
- # self.inform.emit('[selected] %s created & selected: %s' %
- # (str(obj.kind).capitalize(), str(obj.options['name'])))
- if obj.kind == 'gerber':
- self.inform.emit('[selected] {kind} {tx}: {name}'.format(
- kind=obj.kind.capitalize(),
- color='green',
- name=str(obj.options['name']), tx=_("created/selected"))
- )
- elif obj.kind == 'excellon':
- self.inform.emit('[selected] {kind} {tx}: {name}'.format(
- kind=obj.kind.capitalize(),
- color='brown',
- name=str(obj.options['name']), tx=_("created/selected"))
- )
- elif obj.kind == 'cncjob':
- self.inform.emit('[selected] {kind} {tx}: {name}'.format(
- kind=obj.kind.capitalize(),
- color='blue',
- name=str(obj.options['name']), tx=_("created/selected"))
- )
- elif obj.kind == 'geometry':
- self.inform.emit('[selected] {kind} {tx}: {name}'.format(
- kind=obj.kind.capitalize(),
- color='red',
- name=str(obj.options['name']), tx=_("created/selected"))
- )
- elif obj.kind == 'script':
- self.inform.emit('[selected] {kind} {tx}: {name}'.format(
- kind=obj.kind.capitalize(),
- color='orange',
- name=str(obj.options['name']), tx=_("created/selected"))
- )
- elif obj.kind == 'document':
- self.inform.emit('[selected] {kind} {tx}: {name}'.format(
- kind=obj.kind.capitalize(),
- color='darkCyan',
- name=str(obj.options['name']), tx=_("created/selected"))
- )
-
- # update the SHELL auto-completer model with the name of the new object
- self.shell._edit.set_model_data(self.myKeywords)
-
- if auto_select:
- # select the just opened object but deselect the previous ones
- self.collection.set_all_inactive()
- self.collection.set_active(obj.options["name"])
- else:
- self.collection.set_all_inactive()
-
- # here it is done the object plotting
- def worker_task(t_obj):
- with self.proc_container.new(_("Plotting")):
- if isinstance(t_obj, CNCJobObject):
- t_obj.plot(kind=self.defaults["cncjob_plot_kind"])
- else:
- t_obj.plot()
- t1 = time.time() # DEBUG
- self.log.debug("%f seconds adding object and plotting." % (t1 - t0))
- self.object_plotted.emit(t_obj)
-
- # Send to worker
- # self.worker.add_task(worker_task, [self])
- if plot is True:
- self.worker_task.emit({'fcn': worker_task, 'params': [obj]})
-
- def on_object_changed(self, obj):
- """
- Called whenever the geometry of the object was changed in some way.
- This require the update of it's bounding values so it can be the selected on canvas.
- Update the bounding box data from obj.options
-
- :param obj: the object that was changed
- :return: None
- """
-
- xmin, ymin, xmax, ymax = obj.bounds()
- obj.options['xmin'] = xmin
- obj.options['ymin'] = ymin
- obj.options['xmax'] = xmax
- obj.options['ymax'] = ymax
-
- log.debug("Object changed, updating the bounding box data on self.options")
- # delete the old selection shape
- self.delete_selection_shape()
- self.should_we_save = True
-
- def on_object_plotted(self):
- """
- Callback called whenever the plotted object needs to be fit into the viewport (canvas)
-
- :return: None
- """
- self.on_zoom_fit(None)
-
def on_about(self):
"""
Displays the "about" dialog found in the Menu --> Help.
@@ -3251,7 +2801,7 @@ class App(QtCore.QObject):
self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % _("E-mail")), 0, 2)
self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Juan Pablo Caram"), 1, 0)
- self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Program Author"), 1, 1)
+ self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % _("Program Author")), 1, 1)
self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "<>"), 1, 2)
self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Denis Hayrullin"), 2, 0)
self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Kamil Sopko"), 3, 0)
@@ -3347,7 +2897,7 @@ class App(QtCore.QObject):
self.translator_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Italian"), 4, 0)
self.translator_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Golfetto Massimiliano"), 4, 1)
self.translator_grid_lay.addWidget(QtWidgets.QLabel('%s' % " "), 4, 2)
- self.translator_grid_lay.addWidget(QtWidgets.QLabel('%s' % "pcb@golfetto.eu"), 4, 3)
+ self.translator_grid_lay.addWidget(QtWidgets.QLabel('%s' % ""), 4, 3)
self.translator_grid_lay.addWidget(QtWidgets.QLabel('%s' % "German"), 5, 0)
self.translator_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Marius Stanciu (Google-Tr)"), 5, 1)
@@ -3384,6 +2934,83 @@ class App(QtCore.QObject):
AboutDialog(app=self, parent=self.ui).exec_()
+ def on_readme(self):
+ class AboutDialog(QtWidgets.QDialog):
+ def __init__(self, app, parent=None):
+ QtWidgets.QDialog.__init__(self, parent)
+
+ self.app = app
+
+ open_source_link = "Open Source"
+ new_features_link = "new features"
+
+ bugs_link = "report bugs"
+ donation_link = "donation"
+
+ # Icon and title
+ self.setWindowIcon(parent.app_icon)
+ self.setWindowTitle(_("Important Information's"))
+ self.resize(720, 330)
+
+ logo = QtWidgets.QLabel()
+ logo.setPixmap(QtGui.QPixmap(self.app.resource_location + '/contribute256.png'))
+
+ content = QtWidgets.QLabel(
+ "This program is %s and free in a very wide meaning of the word.
"
+ "Yet it cannot evolve without contributions.
"
+ "If you want to see this application evolve and grow, or if you make money with it,
"
+ "you can contribute to the development yourself by:
"
+ ""
+ "- adding %s through a Pull Request on the Bitbucket repository
"
+ "- %s by providing the steps required to reproduce the bug
"
+ "- or by making a %s.
"
+ "
"
+ "There are no strings attached.
"
+ "You don't have to make a %s, and it is totally optional but:"
+ ""
+ "- it will be welcomed with joy 👍
"
+ "- it will give me a reason to continue 😁
"
+ "
" %
+ (open_source_link, new_features_link, bugs_link, donation_link, donation_link)
+ )
+ content.setOpenExternalLinks(True)
+ closebtn = QtWidgets.QPushButton(_("Close"))
+
+ # layouts
+ layout1 = QtWidgets.QVBoxLayout()
+ self.setLayout(layout1)
+
+ pal = QtGui.QPalette()
+ pal.setColor(QtGui.QPalette.Background, Qt.white)
+
+ self.grid_lay = QtWidgets.QGridLayout()
+ self.grid_lay.setHorizontalSpacing(20)
+ self.grid_lay.setColumnStretch(0, 0)
+ self.grid_lay.setColumnStretch(1, 1)
+
+ content_widget = QtWidgets.QWidget()
+ content_widget.setLayout(self.grid_lay)
+ scroll_area = QtWidgets.QScrollArea()
+ scroll_area.setWidget(content_widget)
+ scroll_area.setWidgetResizable(True)
+ scroll_area.setFrameShape(QtWidgets.QFrame.NoFrame)
+ scroll_area.setPalette(pal)
+
+ self.grid_lay.addWidget(logo, 0, 0)
+ self.grid_lay.addWidget(content, 0, 1)
+ layout1.addWidget(scroll_area)
+
+ layout2 = QtWidgets.QHBoxLayout()
+ layout1.addLayout(layout2)
+ layout2.addStretch()
+ layout2.addWidget(closebtn)
+
+ closebtn.clicked.connect(self.accept)
+
+ AboutDialog(app=self, parent=self.ui).exec_()
+
def install_bookmarks(self, book_dict=None):
"""
Install the bookmarks actions in the Help menu -> Bookmarks
@@ -3465,7 +3092,7 @@ class App(QtCore.QObject):
# delete the absolute and relative position and messages in the infobar
self.ui.position_label.setText("")
- self.ui.rel_position_label.setText("")
+ # self.ui.rel_position_label.setText("")
# Switch plot_area to preferences page
self.ui.plot_tab_area.setCurrentWidget(self.book_dialog_tab)
@@ -3481,6 +3108,8 @@ class App(QtCore.QObject):
msgbox.setWindowTitle(_("Alternative website"))
msgbox.setWindowIcon(QtGui.QIcon(self.resource_location + '/globe16.png'))
+ msgbox.setIcon(QtWidgets.QMessageBox.Question)
+
bt_yes = msgbox.addButton(_('Close'), QtWidgets.QMessageBox.YesRole)
msgbox.setDefaultButton(bt_yes)
@@ -3515,6 +3144,8 @@ class App(QtCore.QObject):
"Do you want to Save the project?"))
msgbox.setWindowTitle(_("Save changes"))
msgbox.setWindowIcon(QtGui.QIcon(self.resource_location + '/save_as.png'))
+ msgbox.setIcon(QtWidgets.QMessageBox.Question)
+
bt_yes = msgbox.addButton(_('Yes'), QtWidgets.QMessageBox.YesRole)
bt_no = msgbox.addButton(_('No'), QtWidgets.QMessageBox.NoRole)
bt_cancel = msgbox.addButton(_('Cancel'), QtWidgets.QMessageBox.RejectRole)
@@ -3574,6 +3205,11 @@ class App(QtCore.QObject):
'textbox_font_size',
self.ui.general_defaults_form.general_app_set_group.textbox_font_size_spinner.get_value()
)
+ stgs.setValue(
+ 'hud_font_size',
+ self.ui.general_defaults_form.general_app_set_group.hud_font_size_spinner.get_value()
+ )
+
stgs.setValue('toolbar_lock', self.ui.lock_action.isChecked())
stgs.setValue(
'machinist',
@@ -3587,14 +3223,13 @@ class App(QtCore.QObject):
# try to quit the Socket opened by ArgsThread class
try:
- self.new_launch.thread_exit = True
- self.new_launch.listener.close()
+ self.new_launch.stop.emit()
except Exception as err:
log.debug("App.quit_application() --> %s" % str(err))
# try to quit the QThread that run ArgsThread class
try:
- self.th.terminate()
+ self.th.quit()
except Exception as e:
log.debug("App.quit_application() --> %s" % str(e))
@@ -3615,7 +3250,6 @@ class App(QtCore.QObject):
@staticmethod
def kill_app():
- # QtCore.QCoreApplication.quit()
QtWidgets.qApp.quit()
# When the main event loop is not started yet in which case the qApp.quit() will do nothing
# we use the following command
@@ -4034,7 +3668,7 @@ class App(QtCore.QObject):
for v in geo_obj.tools.values():
v['data']['name'] = obj_name_multi
- self.new_object("geometry", obj_name_multi, initialize)
+ self.app_obj.new_object("geometry", obj_name_multi, initialize)
else:
def initialize(geo_obj, app):
GeometryObject.merge(geo_list=objs, geo_final=geo_obj, multigeo=False)
@@ -4044,7 +3678,7 @@ class App(QtCore.QObject):
for v in geo_obj.tools.values():
v['data']['name'] = obj_name_single
- self.new_object("geometry", obj_name_single, initialize)
+ self.app_obj.new_object("geometry", obj_name_single, initialize)
self.should_we_save = True
@@ -4073,7 +3707,7 @@ class App(QtCore.QObject):
ExcellonObject.merge(exc_list=objs, exc_final=exc_obj, decimals=self.decimals)
app.inform.emit('[success] %s.' % _("Excellon merging finished"))
- self.new_object("excellon", 'Combo_Excellon', initialize)
+ self.app_obj.new_object("excellon", 'Combo_Excellon', initialize)
self.should_we_save = True
def on_edit_join_grb(self):
@@ -4101,7 +3735,7 @@ class App(QtCore.QObject):
GerberObject.merge(grb_list=objs, grb_final=grb_obj)
app.inform.emit('[success] %s.' % _("Gerber merging finished"))
- self.new_object("gerber", 'Combo_Gerber', initialize)
+ self.app_obj.new_object("gerber", 'Combo_Gerber', initialize)
self.should_we_save = True
def on_convert_singlegeo_to_multigeo(self):
@@ -4235,13 +3869,14 @@ class App(QtCore.QObject):
# If option is the same, then ignore
if new_units == self.defaults["units"].upper():
- self.log.debug("on_toggle_units(): Same as defaults, so ignoring.")
+ self.log.debug("on_toggle_units(): Same as previous, ignoring.")
return
- # Options to scale
- dimensions = ['gerber_isotooldia', 'gerber_noncoppermargin', 'gerber_bboxmargin',
- "gerber_editor_newsize", "gerber_editor_lin_pitch", "gerber_editor_buff_f", "gerber_vtipdia",
- "gerber_vcutz", "gerber_editor_newdim", "gerber_editor_ma_low",
+ # Keys in self.defaults for which to scale their values
+ dimensions = ['tools_iso_tooldia', 'gerber_noncoppermargin', 'gerber_bboxmargin',
+ "gerber_editor_newsize", "gerber_editor_lin_pitch", "gerber_editor_buff_f",
+ "tools_iso_tool_vtipdia",
+ "tools_iso_tool_cutz", "gerber_editor_newdim", "gerber_editor_ma_low",
"gerber_editor_ma_high",
'excellon_cutz', 'excellon_travelz', "excellon_toolchangexy", 'excellon_offset',
@@ -4312,149 +3947,62 @@ class App(QtCore.QObject):
def scale_defaults(sfactor):
for dim in dimensions:
-
- if dim == 'gerber_editor_newdim':
- if self.defaults["gerber_editor_newdim"] is None or self.defaults["gerber_editor_newdim"] == '':
- continue
- coordinates = self.defaults["gerber_editor_newdim"].split(",")
- coords_xy = [float(eval(a)) for a in coordinates if a != '']
- coords_xy[0] *= sfactor
- coords_xy[1] *= sfactor
- self.defaults['gerber_editor_newdim'] = "%.*f, %.*f" % (self.decimals, coords_xy[0],
- self.decimals, coords_xy[1])
- if dim == 'excellon_toolchangexy':
- if self.defaults["excellon_toolchangexy"] is None or self.defaults["excellon_toolchangexy"] == '':
- continue
- coordinates = self.defaults["excellon_toolchangexy"].split(",")
- coords_xy = [float(eval(a)) for a in coordinates if a != '']
- coords_xy[0] *= sfactor
- coords_xy[1] *= sfactor
- self.defaults['excellon_toolchangexy'] = "%.*f, %.*f" % (self.decimals, coords_xy[0],
- self.decimals, coords_xy[1])
- elif dim == 'geometry_toolchangexy':
- if self.defaults["geometry_toolchangexy"] is None or self.defaults["geometry_toolchangexy"] == '':
- continue
- coordinates = self.defaults["geometry_toolchangexy"].split(",")
- coords_xy = [float(eval(a)) for a in coordinates if a != '']
- coords_xy[0] *= sfactor
- coords_xy[1] *= sfactor
- self.defaults['geometry_toolchangexy'] = "%.*f, %.*f" % (self.decimals, coords_xy[0],
- self.decimals, coords_xy[1])
- elif dim == 'excellon_endxy':
- if self.defaults["excellon_endxy"] is None or self.defaults["excellon_endxy"] == '':
+ if dim in [
+ 'gerber_editor_newdim', 'excellon_toolchangexy', 'geometry_toolchangexy', 'excellon_endxy',
+ 'geometry_endxy', 'tools_solderpaste_xy_toolchange', 'tools_cal_toolchange_xy',
+ 'tools_transform_mirror_point'
+ ]:
+ if self.defaults[dim] is None or self.defaults[dim] == '':
continue
- coordinates = self.defaults["excellon_endxy"].split(",")
- end_coords_xy = [float(eval(a)) for a in coordinates if a != '']
- end_coords_xy[0] *= sfactor
- end_coords_xy[1] *= sfactor
- self.defaults['excellon_endxy'] = "%.*f, %.*f" % (self.decimals, end_coords_xy[0],
- self.decimals, end_coords_xy[1])
- elif dim == 'geometry_endxy':
- if self.defaults["geometry_endxy"] is None or self.defaults["geometry_endxy"] == '':
- continue
- coordinates = self.defaults["geometry_endxy"].split(",")
- end_coords_xy = [float(eval(a)) for a in coordinates if a != '']
- end_coords_xy[0] *= sfactor
- end_coords_xy[1] *= sfactor
- self.defaults['geometry_endxy'] = "%.*f, %.*f" % (self.decimals, end_coords_xy[0],
- self.decimals, end_coords_xy[1])
+ try:
+ coordinates = self.defaults[dim].split(",")
+ coords_xy = [float(eval(a)) for a in coordinates if a != '']
+ coords_xy[0] *= sfactor
+ coords_xy[1] *= sfactor
+ self.defaults[dim] = "%.*f, %.*f" % (
+ self.decimals, coords_xy[0], self.decimals, coords_xy[1])
+ except Exception as e:
+ log.debug("App.on_toggle_units.scale_defaults() --> 'string tuples': %s" % str(e))
- elif dim == 'geometry_cnctooldia':
- if self.defaults["geometry_cnctooldia"] is None or self.defaults["geometry_cnctooldia"] == '':
+ elif dim in [
+ 'geometry_cnctooldia', 'tools_ncctools', 'tools_solderpaste_tools'
+ ]:
+ if self.defaults[dim] is None or self.defaults[dim] == '':
continue
- if type(self.defaults["geometry_cnctooldia"]) is float:
- tools_diameters = [self.defaults["geometry_cnctooldia"]]
- else:
+
+ try:
+ self.defaults[dim] = float(self.defaults[dim])
+ tools_diameters = [self.defaults[dim]]
+ except ValueError:
try:
- tools_string = self.defaults["geometry_cnctooldia"].split(",")
+ tools_string = self.defaults[dim].split(",")
tools_diameters = [eval(a) for a in tools_string if a != '']
except Exception as e:
log.debug("App.on_toggle_units().scale_options() --> %s" % str(e))
continue
- self.defaults['geometry_cnctooldia'] = ''
- for t in range(len(tools_diameters)):
- tools_diameters[t] *= sfactor
- self.defaults['geometry_cnctooldia'] += "%.*f," % (self.decimals, tools_diameters[t])
- elif dim == 'tools_ncctools':
- if self.defaults["tools_ncctools"] is None or self.defaults["tools_ncctools"] == '':
- continue
- if type(self.defaults["tools_ncctools"]) == float:
- ncctools = [self.defaults["tools_ncctools"]]
+ self.defaults[dim] = ''
+ td_len = len(tools_diameters)
+ if td_len > 1:
+ for t in range(td_len):
+ tools_diameters[t] *= sfactor
+ self.defaults[dim] += "%.*f," % (self.decimals, tools_diameters[t])
else:
- try:
- tools_string = self.defaults["tools_ncctools"].split(",")
- ncctools = [eval(a) for a in tools_string if a != '']
- except Exception as e:
- log.debug("App.on_toggle_units().scale_options() --> %s" % str(e))
- continue
+ tools_diameters[0] *= sfactor
+ self.defaults[dim] += "%.*f" % (self.decimals, tools_diameters[0])
- self.defaults['tools_ncctools'] = ''
- for t in range(len(ncctools)):
- ncctools[t] *= sfactor
- self.defaults['tools_ncctools'] += "%.*f," % (self.decimals, ncctools[t])
- elif dim == 'tools_solderpaste_tools':
- if self.defaults["tools_solderpaste_tools"] is None or \
- self.defaults["tools_solderpaste_tools"] == '':
- continue
- if type(self.defaults["tools_solderpaste_tools"]) == float:
- sptools = [self.defaults["tools_solderpaste_tools"]]
- else:
- try:
- tools_string = self.defaults["tools_solderpaste_tools"].split(",")
- sptools = [eval(a) for a in tools_string if a != '']
- except Exception as e:
- log.debug("App.on_toggle_units().scale_options() --> %s" % str(e))
- continue
-
- self.defaults['tools_solderpaste_tools'] = ""
- for t in range(len(sptools)):
- sptools[t] *= sfactor
- self.defaults['tools_solderpaste_tools'] += "%.*f," % (self.decimals, sptools[t])
- elif dim == 'tools_solderpaste_xy_toolchange':
- if self.defaults["tools_solderpaste_xy_toolchange"] is None or \
- self.defaults["tools_solderpaste_xy_toolchange"] == '':
- continue
+ elif dim in ['global_gridx', 'global_gridy']:
+ # format the number of decimals to the one specified in self.decimals
try:
- coordinates = self.defaults["tools_solderpaste_xy_toolchange"].split(",")
- sp_coords = [float(eval(a)) for a in coordinates if a != '']
- sp_coords[0] *= sfactor
- sp_coords[1] *= sfactor
- self.defaults['tools_solderpaste_xy_toolchange'] = "%.*f, %.*f" % (self.decimals, sp_coords[0],
- self.decimals, sp_coords[1])
+ val = float(self.defaults[dim]) * sfactor
except Exception as e:
- log.debug("App.on_toggle_units().scale_options() --> %s" % str(e))
+ log.debug('App.on_toggle_units().scale_defaults() --> %s' % str(e))
continue
- elif dim == 'tools_cal_toolchange_xy':
- if self.defaults["tools_cal_toolchange_xy"] is None or \
- self.defaults["tools_cal_toolchange_xy"] == '':
- continue
- coordinates = self.defaults["tools_cal_toolchange_xy"].split(",")
- end_coords_xy = [float(eval(a)) for a in coordinates if a != '']
- end_coords_xy[0] *= sfactor
- end_coords_xy[1] *= sfactor
- self.defaults['tools_cal_toolchange_xy'] = "%.*f, %.*f" % (self.decimals, end_coords_xy[0],
- self.decimals, end_coords_xy[1])
- elif dim == 'global_gridx' or dim == 'global_gridy':
- if new_units == 'IN':
- try:
- val = float(self.defaults[dim]) * sfactor
- except Exception as e:
- log.debug('App.on_toggle_units().scale_defaults() --> %s' % str(e))
- continue
-
- self.defaults[dim] = float('%.*f' % (self.decimals, val))
- else:
- try:
- val = float(self.defaults[dim]) * sfactor
- except Exception as e:
- log.debug('App.on_toggle_units().scale_defaults() --> %s' % str(e))
- continue
-
- self.defaults[dim] = float('%.*f' % (self.decimals, val))
+ self.defaults[dim] = float('%.*f' % (self.decimals, val))
else:
+ # the number of decimals for the rest is kept unchanged
if self.defaults[dim]:
try:
val = float(self.defaults[dim]) * sfactor
@@ -4471,6 +4019,8 @@ class App(QtCore.QObject):
msgbox = QtWidgets.QMessageBox()
msgbox.setWindowTitle(_("Toggle Units"))
msgbox.setWindowIcon(QtGui.QIcon(self.resource_location + '/toggle_units32.png'))
+ msgbox.setIcon(QtWidgets.QMessageBox.Question)
+
msgbox.setText(_("Changing the units of the project\n"
"will scale all objects.\n\n"
"Do you want to continue?"))
@@ -4497,7 +4047,7 @@ class App(QtCore.QObject):
obj.convert_units(new_units)
# make that the properties stored in the object are also updated
- self.object_changed.emit(obj)
+ self.app_obj.object_changed.emit(obj)
# rebuild the object UI
obj.build_ui()
@@ -4517,10 +4067,11 @@ class App(QtCore.QObject):
# replot all objects
self.plot_all()
+
# set the status labels to reflect the current FlatCAM units
self.set_screen_units(new_units)
- # signal to the app that we changed the object properties and it shoud save the project
+ # signal to the app that we changed the object properties and it should save the project
self.should_we_save = True
self.inform.emit('[success] %s: %s' % (_("Converted units to"), new_units))
@@ -4549,373 +4100,6 @@ class App(QtCore.QObject):
self.ui.grid_gap_x_entry.set_value(val_x, decimals=self.decimals)
self.ui.grid_gap_y_entry.set_value(val_y, decimals=self.decimals)
- def on_fullscreen(self, disable=False):
- self.defaults.report_usage("on_fullscreen()")
-
- flags = self.ui.windowFlags()
- if self.toggle_fscreen is False and disable is False:
- # self.ui.showFullScreen()
- self.ui.setWindowFlags(flags | Qt.FramelessWindowHint)
- a = self.ui.geometry()
- self.x_pos = a.x()
- self.y_pos = a.y()
- self.width = a.width()
- self.height = a.height()
-
- # set new geometry to full desktop rect
- # Subtracting and adding the pixels below it's hack to bypass a bug in Qt5 and OpenGL that made that a
- # window drawn with OpenGL in fullscreen will not show any other windows on top which means that menus and
- # everything else will not work without this hack. This happen in Windows.
- # https://bugreports.qt.io/browse/QTBUG-41309
- desktop = QtWidgets.QApplication.desktop()
- screen = desktop.screenNumber(QtGui.QCursor.pos())
-
- rec = desktop.screenGeometry(screen)
- x = rec.x() - 1
- y = rec.y() - 1
- h = rec.height() + 2
- w = rec.width() + 2
- self.ui.setGeometry(x, y, w, h)
- self.ui.show()
-
- for tb in self.ui.findChildren(QtWidgets.QToolBar):
- tb.setVisible(False)
- self.ui.splitter_left.setVisible(False)
- self.toggle_fscreen = True
- elif self.toggle_fscreen is True or disable is True:
- self.ui.setWindowFlags(flags & ~Qt.FramelessWindowHint)
- self.ui.setGeometry(self.x_pos, self.y_pos, self.width, self.height)
- self.ui.showNormal()
- self.restore_toolbar_view()
- self.ui.splitter_left.setVisible(True)
- self.toggle_fscreen = False
-
- def on_toggle_plotarea(self):
- self.defaults.report_usage("on_toggle_plotarea()")
-
- try:
- name = self.ui.plot_tab_area.widget(0).objectName()
- except AttributeError:
- self.ui.plot_tab_area.addTab(self.ui.plot_tab, "Plot Area")
- # remove the close button from the Plot Area tab (first tab index = 0) as this one will always be ON
- self.ui.plot_tab_area.protectTab(0)
- return
-
- if name != 'plotarea_tab':
- self.ui.plot_tab_area.insertTab(0, self.ui.plot_tab, "Plot Area")
- # remove the close button from the Plot Area tab (first tab index = 0) as this one will always be ON
- self.ui.plot_tab_area.protectTab(0)
- else:
- self.ui.plot_tab_area.closeTab(0)
-
- def on_toggle_notebook(self):
- if self.ui.splitter.sizes()[0] == 0:
- self.ui.splitter.setSizes([1, 1])
- self.ui.menu_toggle_nb.setChecked(True)
- else:
- self.ui.splitter.setSizes([0, 1])
- self.ui.menu_toggle_nb.setChecked(False)
-
- def on_toggle_axis(self):
- self.defaults.report_usage("on_toggle_axis()")
-
- if self.toggle_axis is False:
- if self.is_legacy is False:
- self.plotcanvas.v_line = InfiniteLine(pos=0, color=(0.70, 0.3, 0.3, 1.0), vertical=True,
- parent=self.plotcanvas.view.scene)
-
- self.plotcanvas.h_line = InfiniteLine(pos=0, color=(0.70, 0.3, 0.3, 1.0), vertical=False,
- parent=self.plotcanvas.view.scene)
- else:
- if self.plotcanvas.h_line not in self.plotcanvas.axes.lines and \
- self.plotcanvas.v_line not in self.plotcanvas.axes.lines:
- self.plotcanvas.h_line = self.plotcanvas.axes.axhline(color=(0.70, 0.3, 0.3), linewidth=2)
- self.plotcanvas.v_line = self.plotcanvas.axes.axvline(color=(0.70, 0.3, 0.3), linewidth=2)
- self.plotcanvas.canvas.draw()
-
- self.toggle_axis = True
- else:
- if self.is_legacy is False:
- self.plotcanvas.v_line.parent = None
- self.plotcanvas.h_line.parent = None
- else:
- if self.plotcanvas.h_line in self.plotcanvas.axes.lines and \
- self.plotcanvas.v_line in self.plotcanvas.axes.lines:
- self.plotcanvas.axes.lines.remove(self.plotcanvas.h_line)
- self.plotcanvas.axes.lines.remove(self.plotcanvas.v_line)
- self.plotcanvas.canvas.draw()
- self.toggle_axis = False
-
- def on_toggle_grid(self):
- self.defaults.report_usage("on_toggle_grid()")
-
- self.ui.grid_snap_btn.trigger()
- self.ui.on_grid_snap_triggered(state=True)
-
- def on_toggle_grid_lines(self):
- self.defaults.report_usage("on_toggle_grd_lines()")
-
- tt_settings = QtCore.QSettings("Open Source", "FlatCAM")
- if tt_settings.contains("theme"):
- theme = tt_settings.value('theme', type=str)
- else:
- theme = 'white'
-
- if self.toggle_grid_lines is False:
- if self.is_legacy is False:
- if theme == 'white':
- self.plotcanvas.grid._grid_color_fn['color'] = Color('dimgray').rgba
- else:
- self.plotcanvas.grid._grid_color_fn['color'] = Color('#dededeff').rgba
- else:
- self.plotcanvas.axes.grid(True)
- try:
- self.plotcanvas.canvas.draw()
- except IndexError:
- pass
- pass
- self.toggle_grid_lines = True
- else:
- if self.is_legacy is False:
- if theme == 'white':
- self.plotcanvas.grid._grid_color_fn['color'] = Color('#ffffffff').rgba
- else:
- self.plotcanvas.grid._grid_color_fn['color'] = Color('#000000FF').rgba
- else:
- self.plotcanvas.axes.grid(False)
- try:
- self.plotcanvas.canvas.draw()
- except IndexError:
- pass
- self.toggle_grid_lines = False
-
- if self.is_legacy is False:
- # HACK: enabling/disabling the cursor seams to somehow update the shapes on screen
- # - perhaps is a bug in VisPy implementation
- if self.grid_status() is True:
- self.app_cursor.enabled = False
- self.app_cursor.enabled = True
- else:
- self.app_cursor.enabled = True
- self.app_cursor.enabled = False
-
- def on_update_exc_export(self, state):
- """
- This is handling the update of Excellon Export parameters based on the ones in the Excellon General but only
- if the update_excellon_cb checkbox is checked
-
- :param state: state of the checkbox whose signals is tied to his slot
- :return:
- """
- if state:
- # first try to disconnect
- try:
- self.ui.excellon_defaults_form.excellon_gen_group.excellon_format_upper_in_entry.returnPressed. \
- disconnect(self.on_excellon_format_changed)
- except TypeError:
- pass
- try:
- self.ui.excellon_defaults_form.excellon_gen_group.excellon_format_lower_in_entry.returnPressed. \
- disconnect(self.on_excellon_format_changed)
- except TypeError:
- pass
- try:
- self.ui.excellon_defaults_form.excellon_gen_group.excellon_format_upper_mm_entry.returnPressed. \
- disconnect(self.on_excellon_format_changed)
- except TypeError:
- pass
- try:
- self.ui.excellon_defaults_form.excellon_gen_group.excellon_format_lower_mm_entry.returnPressed. \
- disconnect(self.on_excellon_format_changed)
- except TypeError:
- pass
-
- try:
- self.ui.excellon_defaults_form.excellon_gen_group.excellon_zeros_radio.activated_custom. \
- disconnect(self.on_excellon_zeros_changed)
- except TypeError:
- pass
- try:
- self.ui.excellon_defaults_form.excellon_gen_group.excellon_units_radio.activated_custom. \
- disconnect(self.on_excellon_zeros_changed)
- except TypeError:
- pass
-
- # the connect them
- self.ui.excellon_defaults_form.excellon_gen_group.excellon_format_upper_in_entry.returnPressed.connect(
- self.on_excellon_format_changed)
- self.ui.excellon_defaults_form.excellon_gen_group.excellon_format_lower_in_entry.returnPressed.connect(
- self.on_excellon_format_changed)
- self.ui.excellon_defaults_form.excellon_gen_group.excellon_format_upper_mm_entry.returnPressed.connect(
- self.on_excellon_format_changed)
- self.ui.excellon_defaults_form.excellon_gen_group.excellon_format_lower_mm_entry.returnPressed.connect(
- self.on_excellon_format_changed)
- self.ui.excellon_defaults_form.excellon_gen_group.excellon_zeros_radio.activated_custom.connect(
- self.on_excellon_zeros_changed)
- self.ui.excellon_defaults_form.excellon_gen_group.excellon_units_radio.activated_custom.connect(
- self.on_excellon_units_changed)
- else:
- # disconnect the signals
- try:
- self.ui.excellon_defaults_form.excellon_gen_group.excellon_format_upper_in_entry.returnPressed. \
- disconnect(self.on_excellon_format_changed)
- except TypeError:
- pass
- try:
- self.ui.excellon_defaults_form.excellon_gen_group.excellon_format_lower_in_entry.returnPressed. \
- disconnect(self.on_excellon_format_changed)
- except TypeError:
- pass
- try:
- self.ui.excellon_defaults_form.excellon_gen_group.excellon_format_upper_mm_entry.returnPressed. \
- disconnect(self.on_excellon_format_changed)
- except TypeError:
- pass
- try:
- self.ui.excellon_defaults_form.excellon_gen_group.excellon_format_lower_mm_entry.returnPressed. \
- disconnect(self.on_excellon_format_changed)
- except TypeError:
- pass
-
- try:
- self.ui.excellon_defaults_form.excellon_gen_group.excellon_zeros_radio.activated_custom. \
- disconnect(self.on_excellon_zeros_changed)
- except TypeError:
- pass
- try:
- self.ui.excellon_defaults_form.excellon_gen_group.excellon_units_radio.activated_custom. \
- disconnect(self.on_excellon_zeros_changed)
- except TypeError:
- pass
-
- def on_excellon_format_changed(self):
- """
- Slot activated when the user changes the Excellon format values in Preferences -> Excellon -> Excellon General
- :return: None
- """
- if self.ui.excellon_defaults_form.excellon_gen_group.excellon_units_radio.get_value().upper() == 'METRIC':
- self.ui.excellon_defaults_form.excellon_exp_group.format_whole_entry.set_value(
- self.ui.excellon_defaults_form.excellon_gen_group.excellon_format_upper_mm_entry.get_value()
- )
- self.ui.excellon_defaults_form.excellon_exp_group.format_dec_entry.set_value(
- self.ui.excellon_defaults_form.excellon_gen_group.excellon_format_lower_mm_entry.get_value()
- )
- else:
- self.ui.excellon_defaults_form.excellon_exp_group.format_whole_entry.set_value(
- self.ui.excellon_defaults_form.excellon_gen_group.excellon_format_upper_in_entry.get_value()
- )
- self.ui.excellon_defaults_form.excellon_exp_group.format_dec_entry.set_value(
- self.ui.excellon_defaults_form.excellon_gen_group.excellon_format_lower_in_entry.get_value()
- )
-
- def on_excellon_zeros_changed(self):
- """
- Slot activated when the user changes the Excellon zeros values in Preferences -> Excellon -> Excellon General
- :return: None
- """
- self.ui.excellon_defaults_form.excellon_exp_group.zeros_radio.set_value(
- self.ui.excellon_defaults_form.excellon_gen_group.excellon_zeros_radio.get_value() + 'Z'
- )
-
- def on_excellon_units_changed(self):
- """
- Slot activated when the user changes the Excellon unit values in Preferences -> Excellon -> Excellon General
- :return: None
- """
- self.ui.excellon_defaults_form.excellon_exp_group.excellon_units_radio.set_value(
- self.ui.excellon_defaults_form.excellon_gen_group.excellon_units_radio.get_value()
- )
- self.on_excellon_format_changed()
-
- def on_film_color_entry(self):
- self.defaults['tools_film_color'] = \
- self.ui.tools_defaults_form.tools_film_group.film_color_entry.get_value()
- self.ui.tools_defaults_form.tools_film_group.film_color_button.setStyleSheet(
- "background-color:%s;"
- "border-color: dimgray" % str(self.defaults['tools_film_color'])
- )
-
- def on_film_color_button(self):
- current_color = QtGui.QColor(self.defaults['tools_film_color'])
-
- c_dialog = QtWidgets.QColorDialog()
- film_color = c_dialog.getColor(initial=current_color)
-
- if film_color.isValid() is False:
- return
-
- # if new color is different then mark that the Preferences are changed
- if film_color != current_color:
- self.preferencesUiManager.on_preferences_edited()
-
- self.ui.tools_defaults_form.tools_film_group.film_color_button.setStyleSheet(
- "background-color:%s;"
- "border-color: dimgray" % str(film_color.name())
- )
- new_val_sel = str(film_color.name())
- self.ui.tools_defaults_form.tools_film_group.film_color_entry.set_value(new_val_sel)
- self.defaults['tools_film_color'] = new_val_sel
-
- def on_qrcode_fill_color_entry(self):
- self.defaults['tools_qrcode_fill_color'] = \
- self.ui.tools2_defaults_form.tools2_qrcode_group.fill_color_entry.get_value()
- self.ui.tools2_defaults_form.tools2_qrcode_group.fill_color_button.setStyleSheet(
- "background-color:%s;"
- "border-color: dimgray" % str(self.defaults['tools_qrcode_fill_color'])
- )
-
- def on_qrcode_fill_color_button(self):
- current_color = QtGui.QColor(self.defaults['tools_qrcode_fill_color'])
-
- c_dialog = QtWidgets.QColorDialog()
- fill_color = c_dialog.getColor(initial=current_color)
-
- if fill_color.isValid() is False:
- return
-
- # if new color is different then mark that the Preferences are changed
- if fill_color != current_color:
- self.preferencesUiManager.on_preferences_edited()
-
- self.ui.tools2_defaults_form.tools2_qrcode_group.fill_color_button.setStyleSheet(
- "background-color:%s;"
- "border-color: dimgray" % str(fill_color.name())
- )
-
- new_val_sel = str(fill_color.name())
- self.ui.tools2_defaults_form.tools2_qrcode_group.fill_color_entry.set_value(new_val_sel)
- self.defaults['tools_qrcode_fill_color'] = new_val_sel
-
- def on_qrcode_back_color_entry(self):
- self.defaults['tools_qrcode_back_color'] = \
- self.ui.tools2_defaults_form.tools2_qrcode_group.back_color_entry.get_value()
- self.ui.tools2_defaults_form.tools2_qrcode_group.back_color_button.setStyleSheet(
- "background-color:%s;"
- "border-color: dimgray" % str(self.defaults['tools_qrcode_back_color'])
- )
-
- def on_qrcode_back_color_button(self):
- current_color = QtGui.QColor(self.defaults['tools_qrcode_back_color'])
-
- c_dialog = QtWidgets.QColorDialog()
- back_color = c_dialog.getColor(initial=current_color)
-
- if back_color.isValid() is False:
- return
-
- # if new color is different then mark that the Preferences are changed
- if back_color != current_color:
- self.preferencesUiManager.on_preferences_edited()
-
- self.ui.tools2_defaults_form.tools2_qrcode_group.back_color_button.setStyleSheet(
- "background-color:%s;"
- "border-color: dimgray" % str(back_color.name())
- )
-
- new_val_sel = str(back_color.name())
- self.ui.tools2_defaults_form.tools2_qrcode_group.back_color_entry.set_value(new_val_sel)
- self.defaults['tools_qrcode_back_color'] = new_val_sel
-
def on_tab_rmb_click(self, checked):
self.ui.notebook.set_detachable(val=checked)
self.defaults["global_tabs_detachable"] = checked
@@ -4946,16 +4130,18 @@ class App(QtCore.QObject):
def on_workspace_modified(self):
# self.save_defaults(silent=True)
- if self.is_legacy is True:
- self.plotcanvas.delete_workspace()
+
+ self.plotcanvas.delete_workspace()
self.preferencesUiManager.defaults_read_form()
self.plotcanvas.draw_workspace(workspace_size=self.defaults['global_workspaceT'])
def on_workspace(self):
if self.ui.general_defaults_form.general_app_set_group.workspace_cb.get_value():
self.plotcanvas.draw_workspace(workspace_size=self.defaults['global_workspaceT'])
+ self.inform[str, bool].emit(_("Workspace enabled."), False)
else:
self.plotcanvas.delete_workspace()
+ self.inform[str, bool].emit(_("Workspace disabled."), False)
self.preferencesUiManager.defaults_read_form()
# self.save_defaults(silent=True)
@@ -4965,6 +4151,7 @@ class App(QtCore.QObject):
self.ui.general_defaults_form.general_app_set_group.workspace_cb.stateChanged.disconnect(self.on_workspace)
except TypeError:
pass
+
self.ui.general_defaults_form.general_app_set_group.workspace_cb.set_value(state)
self.ui.general_defaults_form.general_app_set_group.workspace_cb.stateChanged.connect(self.on_workspace)
self.on_workspace()
@@ -5022,6 +4209,8 @@ class App(QtCore.QObject):
"Go to Preferences -> General - Show Advanced Options."))
msgbox.setWindowTitle("Tool adding ...")
msgbox.setWindowIcon(QtGui.QIcon(self.resource_location + '/warning.png'))
+ msgbox.setIcon(QtWidgets.QMessageBox.Warning)
+
bt_ok = msgbox.addButton(_('Ok'), QtWidgets.QMessageBox.AcceptRole)
msgbox.setDefaultButton(bt_ok)
@@ -5068,6 +4257,10 @@ class App(QtCore.QObject):
# and only if the tool is Solder Paste Dispensing Tool
elif tool_widget == self.paste_tool.toolName:
self.paste_tool.on_tool_delete()
+
+ # and only if the tool is Isolation Tool
+ elif tool_widget == self.isolation_tool.toolName:
+ self.isolation_tool.on_tool_delete()
else:
self.on_delete()
@@ -5096,6 +4289,8 @@ class App(QtCore.QObject):
msgbox = QtWidgets.QMessageBox()
msgbox.setWindowTitle(_("Delete objects"))
msgbox.setWindowIcon(QtGui.QIcon(self.resource_location + '/deleteshape32.png'))
+ msgbox.setIcon(QtWidgets.QMessageBox.Question)
+
# msgbox.setText("%s" % _("Change project units ..."))
msgbox.setText(_("Are you sure you want to permanently delete\n"
"the selected objects?"))
@@ -5115,13 +4310,13 @@ class App(QtCore.QObject):
for obj_active in self.collection.get_selected():
# if the deleted object is GerberObject then make sure to delete the possible mark shapes
- if isinstance(obj_active, GerberObject):
+ if obj_active.kind == 'gerber':
for el in obj_active.mark_shapes:
obj_active.mark_shapes[el].clear(update=True)
obj_active.mark_shapes[el].enabled = False
# obj_active.mark_shapes[el] = None
del el
- elif isinstance(obj_active, CNCJobObject):
+ elif obj_active.kind == 'cncjob':
try:
obj_active.text_col.enabled = False
del obj_active.text_col
@@ -5135,9 +4330,13 @@ class App(QtCore.QObject):
while self.collection.get_selected():
self.delete_first_selected()
- self.inform.emit('%s...' % _("Object(s) deleted"))
# make sure that the selection shape is deleted, too
self.delete_selection_shape()
+
+ # if there are no longer objects delete also the exclusion areas shapes
+ if not self.collection.get_list():
+ self.exc_areas.clear_shapes()
+ self.inform.emit('%s...' % _("Object(s) deleted"))
else:
self.inform.emit('[ERROR_NOTCL] %s' % _("Failed. No object(s) selected..."))
else:
@@ -5224,7 +4423,7 @@ class App(QtCore.QObject):
for obj in obj_list:
obj.offset((x, y))
- self.object_changed.emit(obj)
+ self.app_obj.object_changed.emit(obj)
# Update the object bounding box options
a, b, c, d = obj.bounds()
@@ -5261,7 +4460,7 @@ class App(QtCore.QObject):
self.should_we_save = True
return
- if event.button == 1:
+ if event is not None and event.button == 1:
if self.is_legacy is False:
event_pos = event.pos
else:
@@ -5312,7 +4511,7 @@ class App(QtCore.QObject):
for obj in obj_list:
obj.offset((-x, -y))
- self.object_changed.emit(obj)
+ self.app_obj.object_changed.emit(obj)
# Update the object bounding box options
a, b, c, d = obj.bounds()
@@ -5451,14 +4650,20 @@ class App(QtCore.QObject):
edge_width=self.defaults["global_cursor_width"],
size=self.defaults["global_cursor_size"])
- # Set the position label
- self.ui.position_label.setText(" X: %.4f "
- "Y: %.4f" % (location[0], location[1]))
# Set the relative position label
dx = location[0] - float(self.rel_point1[0])
dy = location[1] - float(self.rel_point1[1])
- self.ui.rel_position_label.setText("Dx: %.4f Dy: "
- "%.4f " % (dx, dy))
+ self.ui.position_label.setText(" X: %.4f "
+ "Y: %.4f " % (location[0], location[1]))
+ # # Set the position label
+ #
+ # self.ui.rel_position_label.setText("Dx: %.4f Dy: "
+ # "%.4f " % (dx, dy))
+
+ units = self.defaults["units"].lower()
+ self.plotcanvas.text_hud.text = \
+ 'Dx:\t{:<.4f} [{:s}]\nDy:\t{:<.4f} [{:s}]\n\nX: \t{:<.4f} [{:s}]\nY: \t{:<.4f} [{:s}]'.format(
+ dx, units, dy, units, location[0], units, location[1], units)
self.inform.emit('[success] %s' % _("Done."))
return location
@@ -5600,14 +4805,19 @@ class App(QtCore.QObject):
edge_width=self.defaults["global_cursor_width"],
size=self.defaults["global_cursor_size"])
- # Set the position label
- self.ui.position_label.setText(" X: %.4f "
- "Y: %.4f" % (location[0], location[1]))
# Set the relative position label
self.dx = location[0] - float(self.rel_point1[0])
self.dy = location[1] - float(self.rel_point1[1])
- self.ui.rel_position_label.setText("Dx: %.4f Dy: "
- "%.4f " % (self.dx, self.dy))
+ # Set the position label
+ self.ui.position_label.setText(" X: %.4f "
+ "Y: %.4f " % (location[0], location[1]))
+ # self.ui.rel_position_label.setText("Dx: %.4f Dy: "
+ # "%.4f " % (self.dx, self.dy))
+
+ units = self.defaults["units"].lower()
+ self.plotcanvas.text_hud.text = \
+ 'Dx:\t{:<.4f} [{:s}]\nDy:\t{:<.4f} [{:s}]\n\nX: \t{:<.4f} [{:s}]\nY: \t{:<.4f} [{:s}]'.format(
+ self.dx, units, self.dy, units, location[0], units, location[1], units)
self.inform.emit('[success] %s' % _("Done."))
return location
@@ -5620,6 +4830,16 @@ class App(QtCore.QObject):
self.defaults.report_usage("on_copy_command()")
def initialize(obj_init, app):
+ """
+
+ :param obj_init: the new object
+ :type obj_init: class
+ :param app: An instance of the App class
+ :type app: App
+ :return: None
+ :rtype:
+ """
+
obj_init.solid_geometry = deepcopy(obj.solid_geometry)
try:
obj_init.follow_geometry = deepcopy(obj.follow_geometry)
@@ -5664,15 +4884,15 @@ class App(QtCore.QObject):
try:
if isinstance(obj, ExcellonObject):
- self.new_object("excellon", str(obj_name) + "_copy", initialize_excellon)
+ self.app_obj.new_object("excellon", str(obj_name) + "_copy", initialize_excellon)
elif isinstance(obj, GerberObject):
- self.new_object("gerber", str(obj_name) + "_copy", initialize)
+ self.app_obj.new_object("gerber", str(obj_name) + "_copy", initialize)
elif isinstance(obj, GeometryObject):
- self.new_object("geometry", str(obj_name) + "_copy", initialize)
+ self.app_obj.new_object("geometry", str(obj_name) + "_copy", initialize)
elif isinstance(obj, ScriptObject):
- self.new_object("script", str(obj_name) + "_copy", initialize_script)
+ self.app_obj.new_object("script", str(obj_name) + "_copy", initialize_script)
elif isinstance(obj, DocumentObject):
- self.new_object("document", str(obj_name) + "_copy", initialize_document)
+ self.app_obj.new_object("document", str(obj_name) + "_copy", initialize_document)
except Exception as e:
return "Operation failed: %s" % str(e)
@@ -5713,11 +4933,11 @@ class App(QtCore.QObject):
obj_name = obj.options["name"]
try:
if isinstance(obj, ExcellonObject):
- self.new_object("excellon", str(obj_name) + custom_name, initialize_excellon)
+ self.app_obj.new_object("excellon", str(obj_name) + custom_name, initialize_excellon)
elif isinstance(obj, GerberObject):
- self.new_object("gerber", str(obj_name) + custom_name, initialize_gerber)
+ self.app_obj.new_object("gerber", str(obj_name) + custom_name, initialize_gerber)
elif isinstance(obj, GeometryObject):
- self.new_object("geometry", str(obj_name) + custom_name, initialize_geometry)
+ self.app_obj.new_object("geometry", str(obj_name) + custom_name, initialize_geometry)
except Exception as er:
return "Operation failed: %s" % str(er)
@@ -5784,9 +5004,9 @@ class App(QtCore.QObject):
try:
if isinstance(obj, ExcellonObject):
- self.new_object("geometry", str(obj_name) + "_conv", initialize_excellon)
+ self.app_obj.new_object("geometry", str(obj_name) + "_conv", initialize_excellon)
else:
- self.new_object("geometry", str(obj_name) + "_conv", initialize)
+ self.app_obj.new_object("geometry", str(obj_name) + "_conv", initialize)
except Exception as e:
return "Operation failed: %s" % str(e)
@@ -5862,9 +5082,9 @@ class App(QtCore.QObject):
try:
if isinstance(obj, ExcellonObject):
- self.new_object("gerber", str(obj_name) + "_conv", initialize_excellon)
+ self.app_obj.new_object("gerber", str(obj_name) + "_conv", initialize_excellon)
elif isinstance(obj, GeometryObject):
- self.new_object("gerber", str(obj_name) + "_conv", initialize_geometry)
+ self.app_obj.new_object("gerber", str(obj_name) + "_conv", initialize_geometry)
else:
log.warning("App.convert_any2gerber --> This is no vaild object for conversion.")
@@ -5917,7 +5137,7 @@ class App(QtCore.QObject):
# delete the absolute and relative position and messages in the infobar
self.ui.position_label.setText("")
- self.ui.rel_position_label.setText("")
+ # self.ui.rel_position_label.setText("")
# Switch plot_area to preferences page
self.ui.plot_tab_area.setCurrentWidget(self.ui.preferences_tab)
@@ -6003,7 +5223,13 @@ class App(QtCore.QObject):
callback_on_edited=self.on_tools_db_edited,
callback_on_tool_request=self.paint_tool.on_paint_tool_add_from_db_executed
)
-
+ elif source == 'iso':
+ self.tools_db_tab = ToolsDB2(
+ app=self,
+ parent=self.ui,
+ callback_on_edited=self.on_tools_db_edited,
+ callback_on_tool_request=self.isolation_tool.on_iso_tool_add_from_db_executed
+ )
# add the tab if it was closed
try:
self.ui.plot_tab_area.addTab(self.tools_db_tab, _("Tools Database"))
@@ -6014,7 +5240,7 @@ class App(QtCore.QObject):
# delete the absolute and relative position and messages in the infobar
self.ui.position_label.setText("")
- self.ui.rel_position_label.setText("")
+ # self.ui.rel_position_label.setText("")
# Switch plot_area to preferences page
self.ui.plot_tab_area.setCurrentWidget(self.tools_db_tab)
@@ -6030,7 +5256,7 @@ class App(QtCore.QObject):
:return:
"""
- self.inform.emit('[WARNING_NOTCL] %s' % _("Tools in Tools Database edited but not saved."))
+ self.inform[str, bool].emit('[WARNING_NOTCL] %s' % _("Tools in Tools Database edited but not saved."), False)
for idx in range(self.ui.plot_tab_area.count()):
if self.ui.plot_tab_area.tabText(idx) == _("Tools Database"):
@@ -6048,9 +5274,19 @@ class App(QtCore.QObject):
tool_from_db = deepcopy(tool)
obj = self.collection.get_active()
- if isinstance(obj, GeometryObject):
+ if obj.kind == 'geometry':
obj.on_tool_from_db_inserted(tool=tool_from_db)
+ # close the tab and delete it
+ for idx in range(self.ui.plot_tab_area.count()):
+ if self.ui.plot_tab_area.tabText(idx) == _("Tools Database"):
+ wdg = self.ui.plot_tab_area.widget(idx)
+ wdg.deleteLater()
+ self.ui.plot_tab_area.removeTab(idx)
+ self.inform.emit('[success] %s' % _("Tool from DB added in Tool Table."))
+ elif obj.kind == 'gerber':
+ self.isolation_tool.on_tool_from_db_inserted(tool=tool_from_db)
+
# close the tab and delete it
for idx in range(self.ui.plot_tab_area.count()):
if self.ui.plot_tab_area.tabText(idx) == _("Tools Database"):
@@ -6081,6 +5317,7 @@ class App(QtCore.QObject):
"Do you want to update the Tools Database?"))
msgbox.setWindowTitle(_("Save Tools Database"))
msgbox.setWindowIcon(QtGui.QIcon(self.resource_location + '/save_as.png'))
+ msgbox.setIcon(QtWidgets.QMessageBox.Question)
bt_yes = msgbox.addButton(_('Yes'), QtWidgets.QMessageBox.YesRole)
msgbox.addButton(_('No'), QtWidgets.QMessageBox.NoRole)
@@ -6156,7 +5393,7 @@ class App(QtCore.QObject):
for obj in obj_list:
obj.mirror('X', [px, py])
obj.plot()
- self.object_changed.emit(obj)
+ self.app_obj.object_changed.emit(obj)
self.inform.emit('[success] %s' %
_("Flip on Y axis done."))
except Exception as e:
@@ -6204,7 +5441,7 @@ class App(QtCore.QObject):
for obj in obj_list:
obj.mirror('Y', [px, py])
obj.plot()
- self.object_changed.emit(obj)
+ self.app_obj.object_changed.emit(obj)
self.inform.emit('[success] %s' %
_("Flip on X axis done."))
except Exception as e:
@@ -6260,9 +5497,8 @@ class App(QtCore.QObject):
for sel_obj in obj_list:
sel_obj.rotate(-float(num), point=(px, py))
sel_obj.plot()
- self.object_changed.emit(sel_obj)
- self.inform.emit('[success] %s' %
- _("Rotation done."))
+ self.app_obj.object_changed.emit(sel_obj)
+ self.inform.emit('[success] %s' % _("Rotation done."))
except Exception as e:
self.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Rotation movement was not executed."), str(e)))
return
@@ -6281,8 +5517,7 @@ class App(QtCore.QObject):
yminlist = []
if not obj_list:
- self.inform.emit('[WARNING_NOTCL] %s' %
- _("No object selected to Skew/Shear on X axis."))
+ self.inform.emit('[WARNING_NOTCL] %s' % _("No object selected to Skew/Shear on X axis."))
else:
skewxbox = FCInputDialog(title=_("Transform"), text=_("Enter the Angle value:"),
min=-360, max=360, decimals=4,
@@ -6302,9 +5537,8 @@ class App(QtCore.QObject):
for obj in obj_list:
obj.skew(num, 0, point=(xminimal, yminimal))
obj.plot()
- self.object_changed.emit(obj)
- self.inform.emit('[success] %s' %
- _("Skew on X axis done."))
+ self.app_obj.object_changed.emit(obj)
+ self.inform.emit('[success] %s' % _("Skew on X axis done."))
def on_skewy(self):
"""
@@ -6320,8 +5554,7 @@ class App(QtCore.QObject):
yminlist = []
if not obj_list:
- self.inform.emit('[WARNING_NOTCL] %s' %
- _("No object selected to Skew/Shear on Y axis."))
+ self.inform.emit('[WARNING_NOTCL] %s' % _("No object selected to Skew/Shear on Y axis."))
else:
skewybox = FCInputDialog(title=_("Transform"), text=_("Enter the Angle value:"),
min=-360, max=360, decimals=4,
@@ -6341,9 +5574,8 @@ class App(QtCore.QObject):
for obj in obj_list:
obj.skew(0, num, point=(xminimal, yminimal))
obj.plot()
- self.object_changed.emit(obj)
- self.inform.emit('[success] %s' %
- _("Skew on Y axis done."))
+ self.app_obj.object_changed.emit(obj)
+ self.inform.emit('[success] %s' % _("Skew on Y axis done."))
def on_plots_updated(self):
"""
@@ -6357,7 +5589,7 @@ class App(QtCore.QObject):
else:
self.plotcanvas.auto_adjust_axes()
- self.on_zoom_fit(None)
+ self.on_zoom_fit()
self.collection.update_view()
# self.inform.emit(_("Plots updated ..."))
@@ -6368,7 +5600,6 @@ class App(QtCore.QObject):
:return: None
"""
- self.defaults.report_usage("on_toolbar_replot")
self.log.debug("on_toolbar_replot()")
try:
@@ -6379,207 +5610,8 @@ class App(QtCore.QObject):
self.plot_all()
- def on_row_activated(self, index):
- if index.isValid():
- if index.internalPointer().parent_item != self.collection.root_item:
- self.ui.notebook.setCurrentWidget(self.ui.selected_tab)
- self.collection.on_item_activated(index)
-
- def on_row_selected(self, obj_name):
- """
- This is a special string; when received it will make all Menu -> Objects entries unchecked
- It mean we clicked outside of the items and deselected all
-
- :param obj_name:
- :return:
- """
- if obj_name == 'none':
- for act in self.ui.menuobjects.actions():
- act.setChecked(False)
- return
-
- # get the name of the selected objects and add them to a list
- name_list = []
- for obj in self.collection.get_selected():
- name_list.append(obj.options['name'])
-
- # set all actions as unchecked but the ones selected make them checked
- for act in self.ui.menuobjects.actions():
- act.setChecked(False)
- if act.text() in name_list:
- act.setChecked(True)
-
- def on_collection_updated(self, obj, state, old_name):
- """
- Create a menu from the object loaded in the collection.
-
- :param obj: object that was changed (added, deleted, renamed)
- :param state: what was done with the object. Can be: added, deleted, delete_all, renamed
- :param old_name: the old name of the object before the action that triggered this slot happened
- :return: None
- """
- icon_files = {
- "gerber": self.resource_location + "/flatcam_icon16.png",
- "excellon": self.resource_location + "/drill16.png",
- "cncjob": self.resource_location + "/cnc16.png",
- "geometry": self.resource_location + "/geometry16.png",
- "script": self.resource_location + "/script_new16.png",
- "document": self.resource_location + "/notes16_1.png"
- }
-
- if state == 'append':
- for act in self.ui.menuobjects.actions():
- try:
- act.triggered.disconnect()
- except TypeError:
- pass
- self.ui.menuobjects.clear()
-
- gerber_list = []
- exc_list = []
- cncjob_list = []
- geo_list = []
- script_list = []
- doc_list = []
-
- for name in self.collection.get_names():
- obj_named = self.collection.get_by_name(name)
- if obj_named.kind == 'gerber':
- gerber_list.append(name)
- elif obj_named.kind == 'excellon':
- exc_list.append(name)
- elif obj_named.kind == 'cncjob':
- cncjob_list.append(name)
- elif obj_named.kind == 'geometry':
- geo_list.append(name)
- elif obj_named.kind == 'script':
- script_list.append(name)
- elif obj_named.kind == 'document':
- doc_list.append(name)
-
- def add_act(o_name):
- obj_for_icon = self.collection.get_by_name(o_name)
- add_action = QtWidgets.QAction(parent=self.ui.menuobjects)
- add_action.setCheckable(True)
- add_action.setText(o_name)
- add_action.setIcon(QtGui.QIcon(icon_files[obj_for_icon.kind]))
- add_action.triggered.connect(
- lambda: self.collection.set_active(o_name) if add_action.isChecked() is True else
- self.collection.set_inactive(o_name))
- self.ui.menuobjects.addAction(add_action)
-
- for name in gerber_list:
- add_act(name)
- self.ui.menuobjects.addSeparator()
-
- for name in exc_list:
- add_act(name)
- self.ui.menuobjects.addSeparator()
-
- for name in cncjob_list:
- add_act(name)
- self.ui.menuobjects.addSeparator()
-
- for name in geo_list:
- add_act(name)
- self.ui.menuobjects.addSeparator()
-
- for name in script_list:
- add_act(name)
- self.ui.menuobjects.addSeparator()
-
- for name in doc_list:
- add_act(name)
-
- self.ui.menuobjects.addSeparator()
- self.ui.menuobjects_selall = self.ui.menuobjects.addAction(
- QtGui.QIcon(self.resource_location + '/select_all.png'),
- _('Select All')
- )
- self.ui.menuobjects_unselall = self.ui.menuobjects.addAction(
- QtGui.QIcon(self.resource_location + '/deselect_all32.png'),
- _('Deselect All')
- )
- self.ui.menuobjects_selall.triggered.connect(lambda: self.on_objects_selection(True))
- self.ui.menuobjects_unselall.triggered.connect(lambda: self.on_objects_selection(False))
-
- elif state == 'delete':
- for act in self.ui.menuobjects.actions():
- if act.text() == obj.options['name']:
- try:
- act.triggered.disconnect()
- except TypeError:
- pass
- self.ui.menuobjects.removeAction(act)
- break
- elif state == 'rename':
- for act in self.ui.menuobjects.actions():
- if act.text() == old_name:
- add_action = QtWidgets.QAction(parent=self.ui.menuobjects)
- add_action.setText(obj.options['name'])
- add_action.setIcon(QtGui.QIcon(icon_files[obj.kind]))
- add_action.triggered.connect(
- lambda: self.collection.set_active(obj.options['name']) if add_action.isChecked() is True else
- self.collection.set_inactive(obj.options['name']))
-
- self.ui.menuobjects.insertAction(act, add_action)
-
- try:
- act.triggered.disconnect()
- except TypeError:
- pass
- self.ui.menuobjects.removeAction(act)
- break
- elif state == 'delete_all':
- for act in self.ui.menuobjects.actions():
- try:
- act.triggered.disconnect()
- except TypeError:
- pass
- self.ui.menuobjects.clear()
-
- self.ui.menuobjects.addSeparator()
- self.ui.menuobjects_selall = self.ui.menuobjects.addAction(
- QtGui.QIcon(self.resource_location + '/select_all.png'),
- _('Select All')
- )
- self.ui.menuobjects_unselall = self.ui.menuobjects.addAction(
- QtGui.QIcon(self.resource_location + '/deselect_all32.png'),
- _('Deselect All')
- )
- self.ui.menuobjects_selall.triggered.connect(lambda: self.on_objects_selection(True))
- self.ui.menuobjects_unselall.triggered.connect(lambda: self.on_objects_selection(False))
-
- def on_objects_selection(self, on_off):
- obj_list = self.collection.get_names()
-
- if on_off is True:
- self.collection.set_all_active()
- for act in self.ui.menuobjects.actions():
- try:
- act.setChecked(True)
- except Exception:
- pass
- if obj_list:
- self.inform.emit('[selected] %s' % _("All objects are selected."))
- else:
- self.collection.set_all_inactive()
- for act in self.ui.menuobjects.actions():
- try:
- act.setChecked(False)
- except Exception:
- pass
-
- if obj_list:
- self.inform.emit('%s' % _("Objects selection is cleared."))
- else:
- self.inform.emit('')
-
def grid_status(self):
- if self.ui.grid_snap_btn.isChecked():
- return True
- else:
- return False
+ return True if self.ui.grid_snap_btn.isChecked() else False
def populate_cmenu_grids(self):
units = self.defaults['units'].lower()
@@ -6635,14 +5667,11 @@ class App(QtCore.QObject):
else:
if val not in self.defaults["global_grid_context_menu"][str(units)]:
self.defaults["global_grid_context_menu"][str(units)].append(val)
- self.inform.emit('[success] %s...' %
- _("New Grid added"))
+ self.inform.emit('[success] %s...' % _("New Grid added"))
else:
- self.inform.emit('[WARNING_NOTCL] %s...' %
- _("Grid already exists"))
+ self.inform.emit('[WARNING_NOTCL] %s...' % _("Grid already exists"))
else:
- self.inform.emit('[WARNING_NOTCL] %s...' %
- _("Adding New Grid cancelled"))
+ self.inform.emit('[WARNING_NOTCL] %s...' % _("Adding New Grid cancelled"))
def on_grid_delete(self):
# ## Current application units in lower Case
@@ -6663,14 +5692,11 @@ class App(QtCore.QObject):
try:
self.defaults["global_grid_context_menu"][str(units)].remove(val)
except ValueError:
- self.inform.emit('[ERROR_NOTCL]%s...' %
- _(" Grid Value does not exist"))
+ self.inform.emit('[ERROR_NOTCL]%s...' % _(" Grid Value does not exist"))
return
- self.inform.emit('[success] %s...' %
- _("Grid Value deleted"))
+ self.inform.emit('[success] %s...' % _("Grid Value deleted"))
else:
- self.inform.emit('[WARNING_NOTCL] %s...' %
- _("Delete Grid value cancelled"))
+ self.inform.emit('[WARNING_NOTCL] %s...' % _("Delete Grid value cancelled"))
def on_shortcut_list(self):
self.defaults.report_usage("on_shortcut_list()")
@@ -6680,7 +5706,7 @@ class App(QtCore.QObject):
# delete the absolute and relative position and messages in the infobar
self.ui.position_label.setText("")
- self.ui.rel_position_label.setText("")
+ # self.ui.rel_position_label.setText("")
# Switch plot_area to preferences page
self.ui.plot_tab_area.setCurrentWidget(self.ui.shortcuts_tab)
@@ -6811,6 +5837,9 @@ class App(QtCore.QObject):
try: # May fail in case mouse not within axes
pos_canvas = self.plotcanvas.translate_coords(event_pos)
+ if pos_canvas[0] is None or pos_canvas[1] is None:
+ return
+
if self.grid_status():
pos = self.geo_editor.snap(pos_canvas[0], pos_canvas[1])
@@ -6822,13 +5851,19 @@ class App(QtCore.QObject):
else:
pos = (pos_canvas[0], pos_canvas[1])
- self.ui.position_label.setText(" X: %.4f "
- "Y: %.4f" % (pos[0], pos[1]))
-
self.dx = pos[0] - float(self.rel_point1[0])
self.dy = pos[1] - float(self.rel_point1[1])
- self.ui.rel_position_label.setText("Dx: %.4f Dy: "
- "%.4f " % (self.dx, self.dy))
+
+ self.ui.position_label.setText(" X: %.4f "
+ "Y: %.4f " % (pos[0], pos[1]))
+ # self.ui.rel_position_label.setText("Dx: %.4f Dy: "
+ # "%.4f " % (self.dx, self.dy))
+
+ units = self.defaults["units"].lower()
+ self.plotcanvas.text_hud.text = \
+ 'Dx:\t{:<.4f} [{:s}]\nDy:\t{:<.4f} [{:s}]\n\nX: \t{:<.4f} [{:s}]\nY: \t{:<.4f} [{:s}]'.format(
+ self.dx, units, self.dy, units, pos[0], units, pos[1], units)
+
self.mouse = [pos[0], pos[1]]
# if the mouse is moved and the LMB is clicked then the action is a selection
@@ -6846,7 +5881,7 @@ class App(QtCore.QObject):
else:
self.selection_type = None
- # hover effect - enabled in Preferences -> General -> GUI Settings
+ # hover effect - enabled in Preferences -> General -> AppGUI Settings
if self.defaults['global_hover']:
for obj in self.collection.get_list():
try:
@@ -6877,9 +5912,10 @@ class App(QtCore.QObject):
# In this case poly_obj creation (see above) will fail
pass
- except Exception:
+ except Exception as e:
+ log.debug("App.on_mouse_move_over_plot() - rel_point1 is not None -> %s" % str(e))
self.ui.position_label.setText("")
- self.ui.rel_position_label.setText("")
+ # self.ui.rel_position_label.setText("")
self.mouse = None
def on_mouse_click_release_over_plot(self, event):
@@ -7044,7 +6080,7 @@ class App(QtCore.QObject):
for obj in self.all_objects_list:
# ScriptObject and DocumentObject objects can't be selected
- if isinstance(obj, ScriptObject) or isinstance(obj, DocumentObject):
+ if obj.kind == 'script' or obj.kind == 'document':
continue
if key == 'multisel' and obj.options['name'] in self.objects_under_the_click_list:
@@ -7073,7 +6109,7 @@ class App(QtCore.QObject):
curr_sel_obj.selection_shape_drawn = True
elif curr_sel_obj.options['name'] not in self.objects_under_the_click_list:
- self.on_objects_selection(False)
+ self.collection.on_objects_selection(False)
self.delete_selection_shape()
curr_sel_obj.selection_shape_drawn = False
@@ -7091,7 +6127,7 @@ class App(QtCore.QObject):
self.draw_selection_shape(curr_sel_obj)
curr_sel_obj.selection_shape_drawn = True
else:
- self.on_objects_selection(False)
+ self.collection.on_objects_selection(False)
self.delete_selection_shape()
if self.call_source != 'app':
@@ -7133,7 +6169,7 @@ class App(QtCore.QObject):
else:
# deselect everything
- self.on_objects_selection(False)
+ self.collection.on_objects_selection(False)
# delete the possible selection box around a possible selected object
self.delete_selection_shape()
@@ -7342,6 +6378,8 @@ class App(QtCore.QObject):
"Do you want to Save the project?"))
msgbox.setWindowTitle(_("Save changes"))
msgbox.setWindowIcon(QtGui.QIcon(self.resource_location + '/save_as.png'))
+ msgbox.setIcon(QtWidgets.QMessageBox.Question)
+
bt_yes = msgbox.addButton(_('Yes'), QtWidgets.QMessageBox.YesRole)
bt_no = msgbox.addButton(_('No'), QtWidgets.QMessageBox.NoRole)
bt_cancel = msgbox.addButton(_('Cancel'), QtWidgets.QMessageBox.RejectRole)
@@ -7405,6 +6443,9 @@ class App(QtCore.QObject):
except AttributeError:
pass
+ # delete the exclusion areas
+ self.exc_areas.clear_shapes()
+
# tcl needs to be reinitialized, otherwise old shell variables etc remains
self.shell.init_tcl()
@@ -7429,7 +6470,7 @@ class App(QtCore.QObject):
# Init FlatCAMTools
self.init_tools()
- # Try to close all tabs in the PlotArea but only if the GUI is active (CLI is None)
+ # Try to close all tabs in the PlotArea but only if the AppGUI is active (CLI is None)
if cli is None:
# we need to go in reverse because once we remove a tab then the index changes
# meaning that removing the first tab (idx = 0) then the tab at former idx = 1 will assume idx = 0
@@ -7724,6 +6765,8 @@ class App(QtCore.QObject):
self.inform.emit('[WARNING_NOTCL] %s' % _("No object selected."))
msg = _("Please Select a Geometry object to export")
msgbox = QtWidgets.QMessageBox()
+ msgbox.setIcon(QtWidgets.QMessageBox.Warning)
+
msgbox.setInformativeText(msg)
bt_ok = msgbox.addButton(_('Ok'), QtWidgets.QMessageBox.AcceptRole)
msgbox.setDefaultButton(bt_ok)
@@ -7738,6 +6781,8 @@ class App(QtCore.QObject):
msg = '[ERROR_NOTCL] %s' % \
_("Only Geometry, Gerber and CNCJob objects can be used.")
msgbox = QtWidgets.QMessageBox()
+ msgbox.setIcon(QtWidgets.QMessageBox.Warning)
+
msgbox.setInformativeText(msg)
bt_ok = msgbox.addButton(_('Ok'), QtWidgets.QMessageBox.AcceptRole)
msgbox.setDefaultButton(bt_ok)
@@ -7751,9 +6796,9 @@ class App(QtCore.QObject):
filename, _f = FCFileSaveDialog.get_saved_filename(
caption=_("Export SVG"),
directory=self.get_last_save_folder() + '/' + str(name) + '_svg',
- filter=_filter)
+ ext_filter=_filter)
except TypeError:
- filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export SVG"), filter=_filter)
+ filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export SVG"), ext_filter=_filter)
filename = str(filename)
@@ -7774,8 +6819,9 @@ class App(QtCore.QObject):
self.date = ''.join(c for c in self.date if c not in ':-')
self.date = self.date.replace(' ', '_')
+ data = None
if self.is_legacy is False:
- image = _screenshot()
+ image = _screenshot(alpha=None)
data = np.asarray(image)
if not data.ndim == 3 and data.shape[-1] in (3, 4):
self.inform.emit('[[WARNING_NOTCL]] %s' % _('Data must be a 3D array with last dimension 3 or 4'))
@@ -7786,9 +6832,9 @@ class App(QtCore.QObject):
filename, _f = FCFileSaveDialog.get_saved_filename(
caption=_("Export PNG Image"),
directory=self.get_last_save_folder() + '/png_' + self.date,
- filter=filter_)
+ ext_filter=filter_)
except TypeError:
- filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export PNG Image"), filter=filter_)
+ filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export PNG Image"), ext_filter=filter_)
filename = str(filename)
@@ -7831,9 +6877,9 @@ class App(QtCore.QObject):
filename, _f = FCFileSaveDialog.get_saved_filename(
caption="Save Gerber source file",
directory=self.get_last_save_folder() + '/' + name,
- filter=_filter)
+ ext_filter=_filter)
except TypeError:
- filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save Gerber source file"), filter=_filter)
+ filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save Gerber source file"), ext_filter=_filter)
filename = str(filename)
@@ -7872,9 +6918,9 @@ class App(QtCore.QObject):
filename, _f = FCFileSaveDialog.get_saved_filename(
caption="Save Script source file",
directory=self.get_last_save_folder() + '/' + name,
- filter=_filter)
+ ext_filter=_filter)
except TypeError:
- filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save Script source file"), filter=_filter)
+ filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save Script source file"), ext_filter=_filter)
filename = str(filename)
@@ -7913,9 +6959,10 @@ class App(QtCore.QObject):
filename, _f = FCFileSaveDialog.get_saved_filename(
caption="Save Document source file",
directory=self.get_last_save_folder() + '/' + name,
- filter=_filter)
+ ext_filter=_filter)
except TypeError:
- filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save Document source file"), filter=_filter)
+ filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save Document source file"),
+ ext_filter=_filter)
filename = str(filename)
@@ -7954,9 +7001,10 @@ class App(QtCore.QObject):
filename, _f = FCFileSaveDialog.get_saved_filename(
caption=_("Save Excellon source file"),
directory=self.get_last_save_folder() + '/' + name,
- filter=_filter)
+ ext_filter=_filter)
except TypeError:
- filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save Excellon source file"), filter=_filter)
+ filename, _f = FCFileSaveDialog.get_saved_filename(
+ caption=_("Save Excellon source file"), ext_filter=_filter)
filename = str(filename)
@@ -7995,9 +7043,9 @@ class App(QtCore.QObject):
filename, _f = FCFileSaveDialog.get_saved_filename(
caption=_("Export Excellon"),
directory=self.get_last_save_folder() + '/' + name,
- filter=_filter)
+ ext_filter=_filter)
except TypeError:
- filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export Excellon"), filter=_filter)
+ filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export Excellon"), ext_filter=_filter)
filename = str(filename)
@@ -8039,9 +7087,9 @@ class App(QtCore.QObject):
filename, _f = FCFileSaveDialog.get_saved_filename(
caption=_("Export Gerber"),
directory=self.get_last_save_folder() + '/' + name,
- filter=_filter_)
+ ext_filter=_filter_)
except TypeError:
- filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export Gerber"), filter=_filter_)
+ filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export Gerber"), ext_filter=_filter_)
filename = str(filename)
@@ -8071,6 +7119,8 @@ class App(QtCore.QObject):
self.inform.emit('[WARNING_NOTCL] %s' % _("No object selected."))
msg = _("Please Select a Geometry object to export")
msgbox = QtWidgets.QMessageBox()
+ msgbox.setIcon(QtWidgets.QMessageBox.Warning)
+
msgbox.setInformativeText(msg)
bt_ok = msgbox.addButton(_('Ok'), QtWidgets.QMessageBox.AcceptRole)
msgbox.setDefaultButton(bt_ok)
@@ -8081,6 +7131,8 @@ class App(QtCore.QObject):
if not isinstance(obj, GeometryObject):
msg = '[ERROR_NOTCL] %s' % _("Only Geometry objects can be used.")
msgbox = QtWidgets.QMessageBox()
+ msgbox.setIcon(QtWidgets.QMessageBox.Warning)
+
msgbox.setInformativeText(msg)
bt_ok = msgbox.addButton(_('Ok'), QtWidgets.QMessageBox.AcceptRole)
msgbox.setDefaultButton(bt_ok)
@@ -8095,9 +7147,9 @@ class App(QtCore.QObject):
filename, _f = FCFileSaveDialog.get_saved_filename(
caption=_("Export DXF"),
directory=self.get_last_save_folder() + '/' + name,
- filter=_filter_)
+ ext_filter=_filter_)
except TypeError:
- filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export DXF"), filter=_filter_)
+ filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export DXF"), ext_filter=_filter_)
filename = str(filename)
@@ -8186,7 +7238,7 @@ class App(QtCore.QObject):
# delete the absolute and relative position and messages in the infobar
self.ui.position_label.setText("")
- self.ui.rel_position_label.setText("")
+ # self.ui.rel_position_label.setText("")
# first clear previous text in text editor (if any)
self.text_editor_tab.code_editor.clear()
@@ -8237,7 +7289,7 @@ class App(QtCore.QObject):
# delete the absolute and relative position and messages in the infobar
self.ui.position_label.setText("")
- self.ui.rel_position_label.setText("")
+ # self.ui.rel_position_label.setText("")
# first clear previous text in text editor (if any)
self.source_editor_tab.code_editor.clear()
@@ -8352,8 +7404,6 @@ class App(QtCore.QObject):
Will create a new script file and open it in the Code Editor
:param silent: if True will not display status messages
- :param name: if specified will be the name of the new script
- :param text: pass a source file to the newly created script to be loaded in it
:return: None
"""
if silent is False:
@@ -8361,9 +7411,9 @@ class App(QtCore.QObject):
# delete the absolute and relative position and messages in the infobar
self.ui.position_label.setText("")
- self.ui.rel_position_label.setText("")
+ # self.ui.rel_position_label.setText("")
- self.new_script_object()
+ self.app_obj.new_script_object()
# script_text = script_obj.source_file
#
@@ -8549,10 +7599,10 @@ class App(QtCore.QObject):
caption=_("Save Project As ..."),
directory='{l_save}/{proj}_{date}'.format(l_save=str(self.get_last_save_folder()), date=self.date,
proj=_("Project")),
- filter=filter_
+ ext_filter=filter_
)
except TypeError:
- filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save Project As ..."), filter=filter_)
+ filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save Project As ..."), ext_filter=filter_)
filename = str(filename)
@@ -8604,10 +7654,10 @@ class App(QtCore.QObject):
directory='{l_save}/{obj_name}_{date}'.format(l_save=str(self.get_last_save_folder()),
obj_name=obj_name,
date=self.date),
- filter=filter_
+ ext_filter=filter_
)
except TypeError:
- filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save Object as PDF ..."), filter=filter_)
+ filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save Object as PDF ..."), ext_filter=filter_)
filename = str(filename)
@@ -9284,7 +8334,7 @@ class App(QtCore.QObject):
# Object name
name = outname or filename.split('/')[-1].split('\\')[-1]
- ret = self.new_object(obj_type, name, obj_init, autoselected=False, plot=plot)
+ ret = self.app_obj.new_object(obj_type, name, obj_init, autoselected=False, plot=plot)
if ret == 'fail':
self.inform.emit('[ERROR_NOTCL]%s' % _('Import failed.'))
@@ -9293,7 +8343,7 @@ class App(QtCore.QObject):
# Register recent file
self.file_opened.emit("svg", filename)
- # GUI feedback
+ # AppGUI feedback
self.inform.emit('[success] %s: %s' % (_("Opened"), filename))
def import_dxf(self, filename, geo_type='geometry', outname=None, plot=True):
@@ -9330,7 +8380,7 @@ class App(QtCore.QObject):
# Object name
name = outname or filename.split('/')[-1].split('\\')[-1]
- ret = self.new_object(obj_type, name, obj_init, autoselected=False, plot=plot)
+ ret = self.app_obj.new_object(obj_type, name, obj_init, autoselected=False, plot=plot)
if ret == 'fail':
self.inform.emit('[ERROR_NOTCL]%s' % _('Import failed.'))
@@ -9339,7 +8389,7 @@ class App(QtCore.QObject):
# Register recent file
self.file_opened.emit("dxf", filename)
- # GUI feedback
+ # AppGUI feedback
self.inform.emit('[success] %s: %s' % (_("Opened"), filename))
def open_gerber(self, filename, outname=None, plot=True, from_tcl=False):
@@ -9391,11 +8441,11 @@ class App(QtCore.QObject):
name = outname or filename.split('/')[-1].split('\\')[-1]
# # ## Object creation # ##
- ret_val = self.new_object("gerber", name, obj_init, autoselected=False, plot=plot)
+ ret_val = self.app_obj.new_object("gerber", name, obj_init, autoselected=False, plot=plot)
if ret_val == 'fail':
if from_tcl:
filename = self.defaults['global_tcl_path'] + '/' + name
- ret_val = self.new_object("gerber", name, obj_init, autoselected=False, plot=plot)
+ ret_val = self.app_obj.new_object("gerber", name, obj_init, autoselected=False, plot=plot)
if ret_val == 'fail':
self.inform.emit('[ERROR_NOTCL]%s' % _('Open Gerber failed. Probable not a Gerber file.'))
return 'fail'
@@ -9403,7 +8453,7 @@ class App(QtCore.QObject):
# Register recent file
self.file_opened.emit("gerber", filename)
- # GUI feedback
+ # AppGUI feedback
self.inform.emit('[success] %s: %s' % (_("Opened"), filename))
def open_excellon(self, filename, outname=None, plot=True, from_tcl=False):
@@ -9457,11 +8507,11 @@ class App(QtCore.QObject):
with self.proc_container.new(_("Opening Excellon.")):
# Object name
name = outname or filename.split('/')[-1].split('\\')[-1]
- ret_val = self.new_object("excellon", name, obj_init, autoselected=False, plot=plot)
+ ret_val = self.app_obj.new_object("excellon", name, obj_init, autoselected=False, plot=plot)
if ret_val == 'fail':
if from_tcl:
filename = self.defaults['global_tcl_path'] + '/' + name
- ret_val = self.new_object("excellon", name, obj_init, autoselected=False, plot=plot)
+ ret_val = self.app_obj.new_object("excellon", name, obj_init, autoselected=False, plot=plot)
if ret_val == 'fail':
self.inform.emit('[ERROR_NOTCL] %s' %
_('Open Excellon file failed. Probable not an Excellon file.'))
@@ -9470,7 +8520,7 @@ class App(QtCore.QObject):
# Register recent file
self.file_opened.emit("excellon", filename)
- # GUI feedback
+ # AppGUI feedback
self.inform.emit('[success] %s: %s' % (_("Opened"), filename))
def open_gcode(self, filename, outname=None, force_parsing=None, plot=True, from_tcl=False):
@@ -9520,11 +8570,11 @@ class App(QtCore.QObject):
name = outname or filename.split('/')[-1].split('\\')[-1]
# New object creation and file processing
- ret_val = self.new_object("cncjob", name, obj_init, autoselected=False, plot=plot)
+ ret_val = self.app_obj.new_object("cncjob", name, obj_init, autoselected=False, plot=plot)
if ret_val == 'fail':
if from_tcl:
filename = self.defaults['global_tcl_path'] + '/' + name
- ret_val = self.new_object("cncjob", name, obj_init, autoselected=False, plot=plot)
+ ret_val = self.app_obj.new_object("cncjob", name, obj_init, autoselected=False, plot=plot)
if ret_val == 'fail':
self.inform.emit('[ERROR_NOTCL] %s' %
_("Failed to create CNCJob Object. Probable not a GCode file. "
@@ -9536,7 +8586,7 @@ class App(QtCore.QObject):
# Register recent file
self.file_opened.emit("cncjob", filename)
- # GUI feedback
+ # AppGUI feedback
self.inform.emit('[success] %s: %s' % (_("Opened"), filename))
def open_hpgl2(self, filename, outname=None):
@@ -9593,7 +8643,7 @@ class App(QtCore.QObject):
name = outname or filename.split('/')[-1].split('\\')[-1]
# # ## Object creation # ##
- ret = self.new_object("geometry", name, obj_init, autoselected=False)
+ ret = self.app_obj.new_object("geometry", name, obj_init, autoselected=False)
if ret == 'fail':
self.inform.emit('[ERROR_NOTCL]%s' % _(' Open HPGL2 failed. Probable not a HPGL2 file.'))
return 'fail'
@@ -9601,7 +8651,7 @@ class App(QtCore.QObject):
# Register recent file
self.file_opened.emit("geometry", filename)
- # GUI feedback
+ # AppGUI feedback
self.inform.emit('[success] %s: %s' % (_("Opened"), filename))
def open_script(self, filename, outname=None, silent=False):
@@ -9647,10 +8697,10 @@ class App(QtCore.QObject):
script_name = outname or filename.split('/')[-1].split('\\')[-1]
# Object creation
- ret_val = self.new_object("script", script_name, obj_init, autoselected=False, plot=False)
+ ret_val = self.app_obj.new_object("script", script_name, obj_init, autoselected=False, plot=False)
if ret_val == 'fail':
filename = self.defaults['global_tcl_path'] + '/' + script_name
- ret_val = self.new_object("script", script_name, obj_init, autoselected=False, plot=False)
+ ret_val = self.app_obj.new_object("script", script_name, obj_init, autoselected=False, plot=False)
if ret_val == 'fail':
self.inform.emit('[ERROR_NOTCL]%s' % _('Failed to open TCL Script.'))
return 'fail'
@@ -9658,7 +8708,7 @@ class App(QtCore.QObject):
# Register recent file
self.file_opened.emit("script", filename)
- # GUI feedback
+ # AppGUI feedback
self.inform.emit('[success] %s: %s' % (_("Opened"), filename))
def open_config_file(self, filename, run_from_arg=None):
@@ -9713,7 +8763,7 @@ class App(QtCore.QObject):
2) Registers the file as recently opened.
3) Calls on_file_new()
4) Updates options
- 5) Calls new_object() with the object's from_dict() as init method.
+ 5) Calls app_obj.new_object() with the object's from_dict() as init method.
6) Calls plot_all() if plot=True
:param filename: Name of the file from which to load.
@@ -9815,7 +8865,7 @@ class App(QtCore.QObject):
)
)
- self.new_object(obj['kind'], obj['options']['name'], obj_init, plot=plot)
+ self.app_obj.new_object(obj['kind'], obj['options']['name'], obj_init, plot=plot)
except Exception as e:
print('App.open_project() --> ' + str(e))
@@ -9834,23 +8884,25 @@ class App(QtCore.QObject):
App.log.debug(" **************** Finished PROJECT loading... **************** ")
- def plot_all(self, fit_view=True, use_thread=True):
+ def plot_all(self, fit_view=True, muted=False, use_thread=True):
"""
Re-generates all plots from all objects.
:param fit_view: if True will plot the objects and will adjust the zoom to fit all plotted objects into view
+ :param muted: if True don't print messages
:param use_thread: if True will use threading for plotting the objects
:return: None
"""
self.log.debug("Plot_all()")
- self.inform.emit('[success] %s...' % _("Redrawing all objects"))
+ if muted is not True:
+ self.inform.emit('[success] %s...' % _("Redrawing all objects"))
for plot_obj in self.collection.get_list():
def worker_task(obj):
with self.proc_container.new("Plotting"):
obj.plot(kind=self.defaults["cncjob_plot_kind"])
if fit_view is True:
- self.object_plotted.emit(obj)
+ self.app_obj.object_plotted.emit(obj)
if use_thread is True:
# Send to worker
@@ -10085,11 +9137,11 @@ class App(QtCore.QObject):
# Loat/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG
# file into
# FlatCAM using either the menu's, toolbars, key shortcuts or
- # even dragging and dropping the files on the GUI.
+ # even dragging and dropping the files on the AppGUI.
#
# You can also load a FlatCAM project by double clicking on the project file, drag &
# drop of the
- # file into the FLATCAM GUI or through the menu/toolbar links offered within the app.
+ # file into the FLATCAM AppGUI or through the menu/toolbar links offered within the app.
#
# Once an object is available in the Project Tab, by selecting it
# and then
@@ -10148,9 +9200,9 @@ class App(QtCore.QObject):
s1=_("The normal flow when working in FlatCAM is the following:"),
s2=_("Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into FlatCAM "
"using either the toolbars, key shortcuts or even dragging and dropping the "
- "files on the GUI."),
+ "files on the AppGUI."),
s3=_("You can also load a FlatCAM project by double clicking on the project file, "
- "drag and drop of the file into the FLATCAM GUI or through the menu (or toolbar) "
+ "drag and drop of the file into the FLATCAM AppGUI or through the menu (or toolbar) "
"actions offered within the app."),
s4=_("Once an object is available in the Project Tab, by selecting it and then focusing "
"on SELECTED TAB (more simpler is to double click the object name in the Project Tab, "
@@ -10219,8 +9271,8 @@ class App(QtCore.QObject):
# no_stats dict; just so it won't break things on website
no_ststs_dict = {}
no_ststs_dict["global_ststs"] = {}
- full_url = App.version_url + "?s=" + str(self.defaults['global_serial']) + "&v=" + str(self.version) + \
- "&os=" + str(self.os) + "&" + urllib.parse.urlencode(no_ststs_dict["global_ststs"])
+ full_url = App.version_url + "?s=" + str(self.defaults['global_serial']) + "&v=" + str(self.version)
+ full_url += "&os=" + str(self.os) + "&" + urllib.parse.urlencode(no_ststs_dict["global_ststs"])
App.log.debug("Checking for updates @ %s" % full_url)
# ## Get the data
@@ -10323,13 +9375,12 @@ class App(QtCore.QObject):
# will use the default Matplotlib axes
self.hover_shapes = ShapeCollectionLegacy(obj=self, app=self, name='hover')
- def on_zoom_fit(self, event):
+ def on_zoom_fit(self):
"""
Callback for zoom-fit request. This can be either from the corresponding
toolbar button or the '1' key when the canvas is focused. Calls ``self.adjust_axes()``
with axes limits from the geometry bounds of all objects.
- :param event: Ignored.
:return: None
"""
if self.is_legacy is False:
@@ -10435,8 +9486,6 @@ class App(QtCore.QObject):
self.worker_task.emit({'fcn': worker_task, 'params': [objects]})
- # self.plots_updated.emit()
-
def disable_plots(self, objects):
"""
Disables plots
@@ -10475,7 +9524,6 @@ class App(QtCore.QObject):
except Exception as e:
log.debug("App.disable_plots() --> %s" % str(e))
- # self.plots_updated.emit()
def worker_task(objs):
with self.proc_container.new(_("Disabling plots ...")):
for plot_obj in objs:
@@ -10506,7 +9554,7 @@ class App(QtCore.QObject):
obj.options['plot'] = True
else:
obj.options['plot'] = False
- self.plots_updated.emit()
+ self.app_obj.plots_updated.emit()
def clear_plots(self):
"""
@@ -10809,44 +9857,16 @@ class App(QtCore.QObject):
self.preferencesUiManager.defaults_read_form()
self.options.update(self.defaults)
- def toggle_shell(self):
- """
- Toggle shell: if is visible close it, if it is closed then open it
- :return: None
- """
-
- self.defaults.report_usage("toggle_shell()")
-
- if self.ui.shell_dock.isVisible():
- self.ui.shell_dock.hide()
- self.plotcanvas.native.setFocus()
- else:
- self.ui.shell_dock.show()
-
- # I want to take the focus and give it to the Tcl Shell when the Tcl Shell is run
- # self.shell._edit.setFocus()
- QtCore.QTimer.singleShot(0, lambda: self.ui.shell_dock.widget()._edit.setFocus())
-
- # HACK - simulate a mouse click - alternative
- # no_km = QtCore.Qt.KeyboardModifier(QtCore.Qt.NoModifier) # no KB modifier
- # pos = QtCore.QPoint((self.shell._edit.width() - 40), (self.shell._edit.height() - 2))
- # e = QtGui.QMouseEvent(QtCore.QEvent.MouseButtonPress, pos, QtCore.Qt.LeftButton, QtCore.Qt.LeftButton,
- # no_km)
- # QtWidgets.qApp.sendEvent(self.shell._edit, e)
- # f = QtGui.QMouseEvent(QtCore.QEvent.MouseButtonRelease, pos, QtCore.Qt.LeftButton, QtCore.Qt.LeftButton,
- # no_km)
- # QtWidgets.qApp.sendEvent(self.shell._edit, f)
-
def shell_message(self, msg, show=False, error=False, warning=False, success=False, selected=False):
"""
Shows a message on the FlatCAM Shell
- :param msg: Message to display.
- :param show: Opens the shell.
- :param error: Shows the message as an error.
- :param warning: Shows the message as an warning.
- :param success: Shows the message as an success.
- :param selected: Indicate that something was selected on canvas
+ :param msg: Message to display.
+ :param show: Opens the shell.
+ :param error: Shows the message as an error.
+ :param warning: Shows the message as an warning.
+ :param success: Shows the message as an success.
+ :param selected: Indicate that something was selected on canvas
:return: None
"""
if show:
@@ -10869,6 +9889,7 @@ class App(QtCore.QObject):
class ArgsThread(QtCore.QObject):
open_signal = pyqtSignal(list)
start = pyqtSignal()
+ stop = pyqtSignal()
if sys.platform == 'win32':
address = (r'\\.\pipe\NPtest', 'AF_PIPE')
@@ -10881,6 +9902,7 @@ class ArgsThread(QtCore.QObject):
self.thread_exit = False
self.start.connect(self.run)
+ self.stop.connect(self.close_listener)
def my_loop(self, address):
try:
@@ -10924,4 +9946,9 @@ class ArgsThread(QtCore.QObject):
def run(self):
self.my_loop(self.address)
+ @pyqtSlot()
+ def close_listener(self):
+ self.thread_exit = True
+ self.listener.close()
+
# end of file
diff --git a/FlatCAMBookmark.py b/Bookmark.py
similarity index 98%
rename from FlatCAMBookmark.py
rename to Bookmark.py
index b9884fe2..ebdb2404 100644
--- a/FlatCAMBookmark.py
+++ b/Bookmark.py
@@ -1,5 +1,5 @@
from PyQt5 import QtGui, QtCore, QtWidgets
-from flatcamGUI.GUIElements import FCTable, FCEntry, FCButton, FCFileSaveDialog
+from AppGUI.GUIElements import FCTable, FCEntry, FCButton, FCFileSaveDialog
import sys
import webbrowser
@@ -7,7 +7,7 @@ import webbrowser
from copy import deepcopy
from datetime import datetime
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -292,7 +292,7 @@ class BookmarkManager(QtWidgets.QWidget):
l_save=str(self.app.get_last_save_folder()),
n=_("Bookmarks"),
date=date),
- filter=filter__)
+ ext_filter=filter__)
filename = str(filename)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 17a2795b..1dac8877 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,222 @@ CHANGELOG for FlatCAM beta
=================================================
+30.05.2020
+
+- made confirmation messages for the values that are modified not to be printed in the Shell
+- Isolation Tool: working on the Rest machining: almost there, perhaps I will use multiprocessing
+- Isolation Tool: removed the tools that have empty geometry in case of rest machining
+- Isolation Tool: solved some naming issues
+- Isolation Tool: updated the tools dict with the common parameters value on isolating
+- Fixed a recent change that made the edited Geometry objects in the Geometry Editor not to be plotted after saving changes
+- modified the Tool Database such that when a tool shape is selected as 'V' any change in the Vdia or Vangle or CutZ parameters will update the tool diameter value
+- In Tool Isolation made sure that the use of ESC key while some processes are active will disconnect the mouse events that may be connected, correctly
+- optimized the Gerber UI
+- added a Multi-color checkbox for the Geometry UI (will color differently tool geometry when the geometry is multitool)
+- added a Multi-color checkbox for the Excellon UI (this way colors for each tool are easier to differentiate especially when the diameter is close)
+- made the Shell Dock always show docked
+- fixed NCC Tool behavior when selecting tools for Isolation operation
+
+29.05.2020
+
+- fixed the Tool Isolation when using the 'follow' parameter
+- in Isolation Tool when the Rest machining is checked the combine parameter is set True automatically because the rest machining concept make sense only when all tools are used together
+- some changes in the UI; added in the status bar an icon to control the Shell Dock
+- clicking on the activity icon will replot all objects
+- optimized UI in Tool Isolation
+- overloaded the App inform signal to allow not printing to shell if a second bool parameter is given; modified some GUI messages to use this feature
+- fixed the shell status label status on shell dock close from close button
+- refactored some methods from App class and moved them to plotcanvas (plotcanvaslegacy) class
+- added an label with icon in the status bar, clicking it will toggle (show status) of the X-Y axis on cavnas
+- optimized the UI, added to status bar an icon to toggle the axis
+- updated the Etch Compensation Tool by adding a new possibility to compensate the lateral etch (manual value)
+- updated the Etch Compensation Tool such that the resulting Gerber object will have the apertures attributes ('size', 'width', 'height') updated to the changes
+
+28.05.2020
+
+- made the visibility change (when using the Spacebar key in Project Tab) to be not threaded and to use the enabled property of the ShapesCollection which should be faster
+- updated the Tool Database class to have the Isolation Tool data
+- Isolation Tool - made to work the adding of tools from database
+- fixed some issues related to using the new Numerical... GUI elements
+- fixed issues in the Tool Subtract
+- remade Tool Subtract to use multiprocessing when processing geometry
+- the resulting Gerber file from Tool Subtract has now the attribute source_file populated
+
+27.05.2020
+
+- working on Isolation Tool: made to work the Isolation with multiple tools without rest machining
+
+26.05.2020
+
+- working on Isolation Tool: made to work the tool parameters data to GUI and GUI to data
+- Isolation Tool: reworked the GUI
+- if there is a Gerber object selected then in Isolation Tool the Gerber object combobox will show that object name as current
+- made the Project Tree items not editable by clicking on selected Tree items (the object rename can still be done in the Selected tab)
+- working on Isolation Tool: added a Preferences section in Edit -> Preferences and updated their usage within the Isolation tool
+- fixed milling drills not plotting the resulting Geometry object
+- all tuple entries in the Preferences UI are now protected against letter entry
+- all entries in the Preferences UI that have numerical entry are protected now against letters
+- cleaned the Preferences UI in the Gerber area
+- minor UI changes
+
+25.05.2020
+
+- updated the GUI fields for the Scale and Offset in the Object UI to allow only numeric values and operators in the list [/,*,+,-], spaces, dots and comma
+- modified the Etch Compensation Tool and added conversion utilities from Oz thickenss and mils to microns
+- added a Toggle All checkbox to Corner Markers Tool
+- added an Icon to the MessageBox that asks for saving if the user try to close the app and there is some unsaved work
+- changed and added some icons
+- fixed the Shortcuts Tab to reflect the actual current shortcut keys
+- started to work on moving the Isolation Routing from the Gerber Object UI to it's own tool
+- created a new tool: Isolation Routing Tool: work in progress
+- some fixes in NCC Tool
+- added a dialog in Menu -> Help -> ReadMe?
+
+24.05.2020
+
+- changes some icons
+- added a new GUI element which is a evaluated LineEdit that accepts only float numbers and /,*,+,-,% chars
+- finished the Etch Compensation Tool
+- fixed unreliable work of Gerber Editor and optimized the App.editor2object() method
+- updated the Gerber parser such that it will parse correctly Gerber files that have only one solid polygon inside with multiple clear polygons (like those generated by the Invert Tool)
+- fixed a small bug in the Geometry UI that made updating the storage from GUI not to work
+- some small changes in Gerber Editor
+
+23.05.2020
+
+- fixed a issue when testing for Exclusion areas overlap over the Geometry object solid_geometry
+
+22.05.2020
+
+- fixed the algorithm for calculating closest points in the Exclusion areas
+- added the Exclusion zones processing to Geometry GCode generation
+
+21.05.2020
+
+- added the Exclusion zones processing to Excellon GCode generation
+- fixed a non frequent plotting problem for CNCJob objects made out of Excellon objects
+
+19.05.2020
+
+- updated the Italian language (translation incomplete)
+- updated all the language strings to the latest changes; updated the POT file
+- fixed a possible malfunction in Tool Punch Gerber
+
+18.05.2020
+
+- fixed the PDF Tool when importing as Gerber objects
+- moved all the parsing out of the PDF Tool to a new file ParsePDF in the flatcamParsers folder
+- trying to fix the pixmap load crash when running a FlatCAMScript
+- made the workspace label in the status bar clickable and also added a status bar message on status toggle for workspace
+- modified the GUI for Film and Panelize Tools
+- moved some of the GUI related methods from FlatCAMApp.App to the flatcamGUI.MainGUI class
+- moved Shortcuts Tab creation in it's own class
+- renamed classes to have shorter names and grouped
+- removed reference to postprocessors and replaced it with preprocessors
+- more refactoring class names
+- moved some of the methods from the App class to the ObjectCollection class
+- moved all the new_object related methods in their own class AppObjects.AppObject
+- more refactoring; solved some issues introduced by the refactoring
+- solved a circular import
+- updated the language translation files to the latest changes (no translation)
+- working on a new Tool: Etch Compensation Tool -> installed the tool and created the GUI and class template
+- moved more methods out of App_Main class
+- added confirmation messages for toggle of HUD, Grid, Grid Snap, Axis
+- added icon in status bar for HUD; clicking on it will toggle the HUD (heads up display)
+- fixes due of recent changes
+- fixed issue #417
+
+17.05.2020
+
+- added new FlatCAM Tool: Corner Markers Tool which will add line markers in the selected corners of the bounding box of the targeted Gerber object
+- added a menu entry in Menu -> View for Toggle HUD
+- solved the issue with the GUI in the Notebook being expanded too much in width due of the FCDoubleSpinner and FCSpinner sizeHint by setting the sizePolicy to Ignored value
+- fixed the workspace being always A4
+- added a label in the status bar to show if the workplace is active and what size it is
+- now the Edit command (either from Menu Edit ->Edit Object) or through the shortcut key (E key) or project tab context menu works also for the CNCJob objects (will open a text Editor with the GCode)
+- fixed the object collection methods that return a list of objects or names of objects such that they have a parameter now to allow adding to those lists (or not) for the objects of type Script or Document. Thus fixing some of the Tcl commands such Set Origin
+- reverted the previous changes to object collection; it is better to create empty methods in FlatCAMScript and FlatCAMDocument objects
+
+16.05.2020
+
+- worked on the NCC Tool; added a new clear method named 'Combo' which will go through all methods until the clear is done
+- added a Preferences parameter for font size used in HUD
+
+13.05.2020
+
+- updated the French translation strings, made by @micmac (Michel)
+
+12.05.2020
+
+- fixed recent issues introduced in Tcl command Drillcncjob
+- updated the Cncjob to use the 'endxy' parameter which dictates the x,y position at the end of the job
+- now the Tcl commands Drillcncjob and Cncjob can use the toolchangexy and endxy parameters with or without parenthesis (but no spaces allowed)
+- modified the Tcl command Paint "single" parameter. Now it's value is a tuple with the x,y coordinates of the single polygon to be painted.
+- the HUD display state is now persistent between app restarts
+- updated the Distance Tool such that the right click of the mouse will cancel the tool unless it was a panning move
+- modified the PlotCanvasLegacy to decide if there is a mouse drag based on the distance between the press event position and the release event position. If the distance is smaller than a delta distance then it is not a drag move.
+
+11.05.2020
+
+- removed the labels in status bar that display X,Y positions and replaced it with a HUD display on canvas (combo key SHIFT+H) will toggle the display of the HUD
+- made the HUD work in Legacy2D mode
+- fixed situation when the mouse cursor is outside of the canvas and no therefore returning None values
+- remade the Snap Toolbar presence; now it is always active and situated in the Status Bar
+- Snap Toolbar is now visible in Fullscreen
+- in Fullscreen now the Notebook is available but it will be hidden on Fullscreen launch
+- fixed some minor issues (in the HUD added a separating line, missing an icon in toolbars on first launch)
+- made sure that the corner snap buttons are shown only in Editors
+- changed the HUD color when using Dark theme
+- fix issue in Legacy2D graphic mode where the snap function was not accessible when the PlotCanvasLegacy class was created
+- modified the HUD in Legacy2D when using Dark Theme to use different colors
+- modified how the graphic engine change act in Preferences: now only by clicking Apply(or Save) the change will happen. And there is also a message asking for confirmation
+- re-added the position labels in the status bar; they will be useful if HUD is Off (Altium does the same :) so learn from the best)
+- fixed the Tcl command Cncjob: there was a problem reported as issue #416. The command did not work due of the dpp parameter
+- modified the Tcl command Cncjob such that if some of the parameters are not used then the default values will be used (set with set_sys)
+- modified the Tcl command Drillcncjob to use the defaults when some of the parameters are not used
+
+10.05.2020
+
+- fixed the problem with using comma as decimal separator in Grid Snap fields
+
+9.05.2020
+
+- modified the GUI for Exclusion areas; now the shapes are displayed in a Table where they can be selected and deleted. Modification applied for Geometry Objects only (for now).
+- fixed an error when converting units, error that acted when in those fields that accept lists of tools only one tool was added
+- finished the GUI for exclusion areas both in the Excellon and Geometry Objects. Need to think if to make it visible only in Advanced Mode
+
+8.05.2020
+
+- added a parameter to the FlatCAMDefaults class, whenever a value in the self.defaults dict change it will call a callback function and send to it the modified key
+- optimized and fixed some issues in the self.on_toggle_units() method
+- the Exclusion areas will have all the orange color but the color of the outline will differ according to the type of the object from where it was added (cosmetic use only as the Exclusion areas will be applied globally)
+- removed the Apply theme button in the Preferences; it is now replaced by the more general buttons (either Save or Apply)
+- added a confirmation/warning message when applying a new theme
+
+7.05.2020
+
+- added a fix so the app close is now clean, with exit code 0 as set
+- added the ability to add exclusion areas from the Excellon object too. Now there is a difference in color to differentiate from which type of object the exclusion areas were added but they all serve the same purpose
+
+6.05.2020
+
+- wip in adding Exclusion areas in Geometry object; each Geometry object has now a storage for shapes (exclusion shapes, should I make them more general?)
+- changed the above: too many shapes collections and the performance will go down. Created a class ExclusionAreas that holds all the require properties and the Object UI elements will connect to it's methods. This way I can apply this feature to Excellon object too (who is a special type of Geometry Object)
+- handled the New project event and the object deletion (when all objects are deleted then the exclusion areas will be deleted too)
+- solved issue with new parameter end_xy when it is None
+- solved issue with applying theme and not making the change in the Preferences UI. In Preferences UI the theme radio is always Light (white)
+- now the annotations will invert the selected color in the Preferences, when selecting Dark theme
+
+5.05.2020
+
+- fixed an issue that made the preprocessors combo boxes in Preferences not to load and display the saved value fro the file
+- some PEP8 corrections
+
+4.05.2020
+
+- in detachable tabs, Linux loose the reference of the detached tab and on close of the detachable tabs will gave a 'segmentation fault' error. Solved it by not deleting the reference in case of Unix-like systems
+- some strings added to translation strings
+
3.05.2020
- small changes to allow making the x86 installer that is made from a Python 3.5 run FlatCAM beta
@@ -24,7 +240,7 @@ CHANGELOG for FlatCAM beta
2.05.2020
- changed the icons for the grid snap in the status bar
-- moved some of the methods from FlatCAMApp.App to flatcamGUI.FlatCAMGUI class
+- moved some of the methods from FlatCAMApp.App to flatcamGUI.MainGUI class
- fixed bug in Gerber Editor in which the units conversion wasn't calculated correct
- fixed bug in Gerber Editor in which the QThread that is started on object edit was not stopped at clean up stage
- fixed bug in Gerber Editor that kept all the apertures (including the geometry) of a previously edited object that was not saved after edit
@@ -1292,7 +1508,7 @@ CHANGELOG for FlatCAM beta
- optimized Rules Check Tool so it runs faster when doing Copper 2 Copper rule
- small GUI changes in Optimal Tool and in Film Tool
- some PEP8 corrections
-- some code annotations to make it easier to navigate in the FlatCAMGUI.py
+- some code annotations to make it easier to navigate in the MainGUI.py
- fixed exit FullScreen with Escape key
- added a new menu category in the MenuBar named 'Objects'. It will hold the objects found in the Project tab. Useful when working in FullScreen
- disabled a log.debug in ObjectColection.get_by_name()
@@ -2731,7 +2947,7 @@ CHANGELOG for FlatCAM beta
- fix for issue #262: when doing Edit-> Save & Close Editor on a Geometry that is not generated through first entering into an Editor, the geometry disappear
- finished preparing for internationalization for the files: camlib and objectCollection
- fixed tools shortcuts not working anymore due of the new toggle parameter for the .run().
-- finished preparing for internationalization for the files: FlatCAMEditor, FlatCAMGUI
+- finished preparing for internationalization for the files: FlatCAMEditor, MainGUI
- finished preparing for internationalization for the files: FlatCAMObj, ObjectUI
- sorted the languages in the Preferences combobox
@@ -3053,7 +3269,7 @@ CHANGELOG for FlatCAM beta
- fixed the name self-insert in save dialog file for GCode; added protection in case the save path is None
- fixed FlatCAM crash when trying to make drills GCode out of a file that have only slots.
- changed the messages for Units Conversion
-- all key shortcuts work across the entire application; moved all the shortcuts definitions in FlatCAMGUI.keyPressEvent()
+- all key shortcuts work across the entire application; moved all the shortcuts definitions in MainGUI.keyPressEvent()
- renamed the theme to layout because it is really a layout change
- added plot kind for CNC Job in the App Preferences
- combined the geocutout and cutout_any TCL commands - work in progress
@@ -3574,7 +3790,7 @@ For now they are used only for Excellon objects who do have toolchange events
- fixed a reported bug generated by a typo for feedrate_z object in camlib.py. Because of that, the project could not be saved.
- fixed a G01 usage (should be G1) in Marlin preprocessor.
-- changed the position of the Tool Dia entry in the Object UI and in FlatCAMGUI
+- changed the position of the Tool Dia entry in the Object UI and in MainGUI
- fixed issues in the installer
30.10.2018
@@ -4134,7 +4350,7 @@ still copper leftovers.
- modified generate_milling method which had issues from the Python3 port (it could not sort the tools due of dict to dict comparison no longer possible).
- modified the 'default' preprocessor in order to include a space between the value of Xcoord and the following Y
- made optional the using of threads for the milling command; by default it is OFF (False) because in the current configuration it creates issues when it is using threads
-- modified the Panelize function and Tcl command Panelize. It was having issues due to multithreading (kept trying to modify a dictionary in redraw() method)and automatically selecting the last created object (feature introduced by me). I've added a parameter to the new_object method, named autoselected (by default it is True) and in the panelize method I initialized it with False.
+- modified the Panelize function and Tcl command Panelize. It was having issues due to multithreading (kept trying to modify a dictionary in redraw() method)and automatically selecting the last created object (feature introduced by me). I've added a parameter to the app_obj.new_object method, named autoselected (by default it is True) and in the panelize method I initialized it with False.
By initializing the plot parameter with False for the temporary objects, I have increased dramatically the generation speed of the panel because now the temporary object are no longer ploted which consumed time.
- replaced log.warn() with log.warning() in camlib.py. Reason: deprecated
- fixed the issue that the "Defaults" button was having no effect when clicked and Options Combo was in Project Options
diff --git a/Common.py b/Common.py
new file mode 100644
index 00000000..03574b86
--- /dev/null
+++ b/Common.py
@@ -0,0 +1,854 @@
+# ##########################################################
+# FlatCAM: 2D Post-processing for Manufacturing #
+# http://flatcam.org #
+# Author: Juan Pablo Caram (c) #
+# Date: 2/5/2014 #
+# MIT Licence #
+# ##########################################################
+
+# ##########################################################
+# File Modified (major mod): Marius Adrian Stanciu #
+# Date: 11/4/2019 #
+# ##########################################################
+from PyQt5 import QtCore
+
+from shapely.geometry import Polygon, Point, LineString
+from shapely.ops import unary_union
+
+from AppGUI.VisPyVisuals import ShapeCollection
+from AppTool import AppTool
+
+from copy import deepcopy
+
+import numpy as np
+
+import gettext
+import AppTranslation as fcTranslate
+import builtins
+
+fcTranslate.apply_language('strings')
+if '_' not in builtins.__dict__:
+ _ = gettext.gettext
+
+
+class GracefulException(Exception):
+ """
+ Graceful Exception raised when the user is requesting to cancel the current threaded task
+ """
+ def __init__(self):
+ super().__init__()
+
+ def __str__(self):
+ return '\n\n%s' % _("The user requested a graceful exit of the current task.")
+
+
+class LoudDict(dict):
+ """
+ A Dictionary with a callback for item changes.
+ """
+
+ def __init__(self, *args, **kwargs):
+ dict.__init__(self, *args, **kwargs)
+ self.callback = lambda x: None
+
+ def __setitem__(self, key, value):
+ """
+ Overridden __setitem__ method. Will emit 'changed(QString)' if the item was changed, with key as parameter.
+ """
+ if key in self and self.__getitem__(key) == value:
+ return
+
+ dict.__setitem__(self, key, value)
+ self.callback(key)
+
+ def update(self, *args, **kwargs):
+ if len(args) > 1:
+ raise TypeError("update expected at most 1 arguments, got %d" % len(args))
+ other = dict(*args, **kwargs)
+ for key in other:
+ self[key] = other[key]
+
+ def set_change_callback(self, callback):
+ """
+ Assigns a function as callback on item change. The callback
+ will receive the key of the object that was changed.
+
+ :param callback: Function to call on item change.
+ :type callback: func
+ :return: None
+ """
+
+ self.callback = callback
+
+
+class FCSignal:
+ """
+ Taken from here: https://blog.abstractfactory.io/dynamic-signals-in-pyqt/
+ """
+
+ def __init__(self):
+ self.__subscribers = []
+
+ def emit(self, *args, **kwargs):
+ for subs in self.__subscribers:
+ subs(*args, **kwargs)
+
+ def connect(self, func):
+ self.__subscribers.append(func)
+
+ def disconnect(self, func):
+ try:
+ self.__subscribers.remove(func)
+ except ValueError:
+ print('Warning: function %s not removed '
+ 'from signal %s' % (func, self))
+
+
+def color_variant(hex_color, bright_factor=1):
+ """
+ Takes a color in HEX format #FF00FF and produces a lighter or darker variant
+
+ :param hex_color: color to change
+ :type hex_color: str
+ :param bright_factor: factor to change the color brightness [0 ... 1]
+ :type bright_factor: float
+ :return: Modified color
+ :rtype: str
+ """
+
+ if len(hex_color) != 7:
+ print("Color is %s, but needs to be in #FF00FF format. Returning original color." % hex_color)
+ return hex_color
+
+ if bright_factor > 1.0:
+ bright_factor = 1.0
+ if bright_factor < 0.0:
+ bright_factor = 0.0
+
+ rgb_hex = [hex_color[x:x + 2] for x in [1, 3, 5]]
+ new_rgb = []
+ for hex_value in rgb_hex:
+ # adjust each color channel and turn it into a INT suitable as argument for hex()
+ mod_color = round(int(hex_value, 16) * bright_factor)
+ # make sure that each color channel has two digits without the 0x prefix
+ mod_color_hex = str(hex(mod_color)[2:]).zfill(2)
+ new_rgb.append(mod_color_hex)
+
+ return "#" + "".join([i for i in new_rgb])
+
+
+class ExclusionAreas(QtCore.QObject):
+ """
+ Functionality for adding Exclusion Areas for the Excellon and Geometry FlatCAM Objects
+ """
+ e_shape_modified = QtCore.pyqtSignal()
+
+ def __init__(self, app):
+ super().__init__()
+
+ self.app = app
+
+ # Storage for shapes, storage that can be used by FlatCAm tools for utility geometry
+ # VisPy visuals
+ if self.app.is_legacy is False:
+ try:
+ self.exclusion_shapes = ShapeCollection(parent=self.app.plotcanvas.view.scene, layers=1)
+ except AttributeError:
+ self.exclusion_shapes = None
+ else:
+ from AppGUI.PlotCanvasLegacy import ShapeCollectionLegacy
+ self.exclusion_shapes = ShapeCollectionLegacy(obj=self, app=self.app, name="exclusion")
+
+ # Event signals disconnect id holders
+ self.mr = None
+ self.mm = None
+ self.kp = None
+
+ # variables to be used in area exclusion
+ self.cursor_pos = (0, 0)
+ self.first_click = False
+ self.points = []
+ self.poly_drawn = False
+
+ '''
+ Here we store the exclusion shapes and some other information's
+ Each list element is a dictionary with the format:
+
+ {
+ "obj_type": string ("excellon" or "geometry") <- self.obj_type
+ "shape": Shapely polygon
+ "strategy": string ("over" or "around") <- self.strategy_button
+ "overz": float <- self.over_z_button
+ }
+ '''
+ self.exclusion_areas_storage = []
+
+ self.mouse_is_dragging = False
+
+ self.solid_geometry = []
+ self.obj_type = None
+
+ self.shape_type_button = None
+ self.over_z_button = None
+ self.strategy_button = None
+ self.cnc_button = None
+
+ def on_add_area_click(self, shape_button, overz_button, strategy_radio, cnc_button, solid_geo, obj_type):
+ """
+
+ :param shape_button: a FCButton that has the value for the shape
+ :param overz_button: a FCDoubleSpinner that holds the Over Z value
+ :param strategy_radio: a RadioSet button with the strategy_button value
+ :param cnc_button: a FCButton in Object UI that when clicked the CNCJob is created
+ We have a reference here so we can change the color signifying that exclusion areas are
+ available.
+ :param solid_geo: reference to the object solid geometry for which we add exclusion areas
+ :param obj_type: Type of FlatCAM object that called this method. String: "excellon" or "geometry"
+ :type obj_type: str
+ :return: None
+ """
+ self.app.inform.emit('[WARNING_NOTCL] %s' % _("Click the start point of the area."))
+ self.app.call_source = 'geometry'
+
+ self.shape_type_button = shape_button
+
+ # TODO use the self.app.defaults when made general (not in Geo object Pref UI)
+ # self.shape_type_button.set_value('square')
+
+ self.over_z_button = overz_button
+ self.strategy_button = strategy_radio
+ self.cnc_button = cnc_button
+
+ self.solid_geometry = solid_geo
+ self.obj_type = obj_type
+
+ if self.app.is_legacy is False:
+ self.app.plotcanvas.graph_event_disconnect('mouse_press', self.app.on_mouse_click_over_plot)
+ self.app.plotcanvas.graph_event_disconnect('mouse_move', self.app.on_mouse_move_over_plot)
+ self.app.plotcanvas.graph_event_disconnect('mouse_release', self.app.on_mouse_click_release_over_plot)
+ else:
+ self.app.plotcanvas.graph_event_disconnect(self.app.mp)
+ self.app.plotcanvas.graph_event_disconnect(self.app.mm)
+ self.app.plotcanvas.graph_event_disconnect(self.app.mr)
+
+ self.mr = self.app.plotcanvas.graph_event_connect('mouse_release', self.on_mouse_release)
+ self.mm = self.app.plotcanvas.graph_event_connect('mouse_move', self.on_mouse_move)
+ # self.kp = self.app.plotcanvas.graph_event_connect('key_press', self.on_key_press)
+
+ # To be called after clicking on the plot.
+ def on_mouse_release(self, event):
+ """
+ Called on mouse click release.
+
+ :param event: Mouse event
+ :type event:
+ :return: None
+ :rtype:
+ """
+ if self.app.is_legacy is False:
+ event_pos = event.pos
+ # event_is_dragging = event.is_dragging
+ right_button = 2
+ else:
+ event_pos = (event.xdata, event.ydata)
+ # event_is_dragging = self.app.plotcanvas.is_dragging
+ right_button = 3
+
+ event_pos = self.app.plotcanvas.translate_coords(event_pos)
+ if self.app.grid_status():
+ curr_pos = self.app.geo_editor.snap(event_pos[0], event_pos[1])
+ else:
+ curr_pos = (event_pos[0], event_pos[1])
+
+ x1, y1 = curr_pos[0], curr_pos[1]
+
+ # shape_type_button = self.ui.area_shape_radio.get_value()
+
+ # do clear area only for left mouse clicks
+ if event.button == 1:
+ if self.shape_type_button.get_value() == "square":
+ if self.first_click is False:
+ self.first_click = True
+ self.app.inform.emit('[WARNING_NOTCL] %s' % _("Click the end point of the area."))
+
+ self.cursor_pos = self.app.plotcanvas.translate_coords(event_pos)
+ if self.app.grid_status():
+ self.cursor_pos = self.app.geo_editor.snap(event_pos[0], event_pos[1])
+ else:
+ self.app.inform.emit(_("Zone added. Click to start adding next zone or right click to finish."))
+ self.app.delete_selection_shape()
+
+ x0, y0 = self.cursor_pos[0], self.cursor_pos[1]
+
+ pt1 = (x0, y0)
+ pt2 = (x1, y0)
+ pt3 = (x1, y1)
+ pt4 = (x0, y1)
+
+ new_rectangle = Polygon([pt1, pt2, pt3, pt4])
+
+ # {
+ # "obj_type": string("excellon" or "geometry") < - self.obj_type
+ # "shape": Shapely polygon
+ # "strategy_button": string("over" or "around") < - self.strategy_button
+ # "overz": float < - self.over_z_button
+ # }
+ new_el = {
+ "obj_type": self.obj_type,
+ "shape": new_rectangle,
+ "strategy": self.strategy_button.get_value(),
+ "overz": self.over_z_button.get_value()
+ }
+ self.exclusion_areas_storage.append(new_el)
+
+ if self.obj_type == 'excellon':
+ color = "#FF7400"
+ face_color = "#FF7400BF"
+ else:
+ color = "#098a8f"
+ face_color = "#FF7400BF"
+
+ # add a temporary shape on canvas
+ AppTool.draw_tool_selection_shape(
+ self, old_coords=(x0, y0), coords=(x1, y1),
+ color=color,
+ face_color=face_color,
+ shapes_storage=self.exclusion_shapes)
+
+ self.first_click = False
+ return
+ else:
+ self.points.append((x1, y1))
+
+ if len(self.points) > 1:
+ self.poly_drawn = True
+ self.app.inform.emit(_("Click on next Point or click right mouse button to complete ..."))
+
+ return ""
+ elif event.button == right_button and self.mouse_is_dragging is False:
+
+ shape_type = self.shape_type_button.get_value()
+
+ if shape_type == "square":
+ self.first_click = False
+ else:
+ # if we finish to add a polygon
+ if self.poly_drawn is True:
+ try:
+ # try to add the point where we last clicked if it is not already in the self.points
+ last_pt = (x1, y1)
+ if last_pt != self.points[-1]:
+ self.points.append(last_pt)
+ except IndexError:
+ pass
+
+ # we need to add a Polygon and a Polygon can be made only from at least 3 points
+ if len(self.points) > 2:
+ AppTool.delete_moving_selection_shape(self)
+ pol = Polygon(self.points)
+ # do not add invalid polygons even if they are drawn by utility geometry
+ if pol.is_valid:
+ """
+ {
+ "obj_type": string("excellon" or "geometry") < - self.obj_type
+ "shape": Shapely polygon
+ "strategy": string("over" or "around") < - self.strategy_button
+ "overz": float < - self.over_z_button
+ }
+ """
+ new_el = {
+ "obj_type": self.obj_type,
+ "shape": pol,
+ "strategy": self.strategy_button.get_value(),
+ "overz": self.over_z_button.get_value()
+ }
+ self.exclusion_areas_storage.append(new_el)
+
+ if self.obj_type == 'excellon':
+ color = "#FF7400"
+ face_color = "#FF7400BF"
+ else:
+ color = "#098a8f"
+ face_color = "#FF7400BF"
+
+ AppTool.draw_selection_shape_polygon(
+ self, points=self.points,
+ color=color,
+ face_color=face_color,
+ shapes_storage=self.exclusion_shapes)
+ self.app.inform.emit(
+ _("Zone added. Click to start adding next zone or right click to finish."))
+
+ self.points = []
+ self.poly_drawn = False
+ return
+
+ # AppTool.delete_tool_selection_shape(self, shapes_storage=self.exclusion_shapes)
+
+ if self.app.is_legacy is False:
+ self.app.plotcanvas.graph_event_disconnect('mouse_release', self.on_mouse_release)
+ self.app.plotcanvas.graph_event_disconnect('mouse_move', self.on_mouse_move)
+ # self.app.plotcanvas.graph_event_disconnect('key_press', self.on_key_press)
+ else:
+ self.app.plotcanvas.graph_event_disconnect(self.mr)
+ self.app.plotcanvas.graph_event_disconnect(self.mm)
+ # self.app.plotcanvas.graph_event_disconnect(self.kp)
+
+ self.app.mp = self.app.plotcanvas.graph_event_connect('mouse_press',
+ self.app.on_mouse_click_over_plot)
+ self.app.mm = self.app.plotcanvas.graph_event_connect('mouse_move',
+ self.app.on_mouse_move_over_plot)
+ self.app.mr = self.app.plotcanvas.graph_event_connect('mouse_release',
+ self.app.on_mouse_click_release_over_plot)
+
+ self.app.call_source = 'app'
+
+ if len(self.exclusion_areas_storage) == 0:
+ return
+
+ # since the exclusion areas should apply to all objects in the app collection, this check is limited to
+ # only the current object therefore it will not guarantee success
+ self.app.inform.emit("%s" % _("Exclusion areas added. Checking overlap with the object geometry ..."))
+ for el in self.exclusion_areas_storage:
+ if el["shape"].intersects(unary_union(self.solid_geometry)):
+ self.on_clear_area_click()
+ self.app.inform.emit(
+ "[ERROR_NOTCL] %s" % _("Failed. Exclusion areas intersects the object geometry ..."))
+ return
+
+ self.app.inform.emit(
+ "[success] %s" % _("Exclusion areas added."))
+ self.cnc_button.setStyleSheet("""
+ QPushButton
+ {
+ font-weight: bold;
+ color: orange;
+ }
+ """)
+ self.cnc_button.setToolTip(
+ '%s %s' % (_("Generate the CNC Job object."), _("With Exclusion areas."))
+ )
+
+ self.e_shape_modified.emit()
+
+ def area_disconnect(self):
+ """
+ Will do the cleanup. Will disconnect the mouse events for the custom handlers in this class and initialize
+ certain class attributes.
+
+ :return: None
+ :rtype:
+ """
+ if self.app.is_legacy is False:
+ self.app.plotcanvas.graph_event_disconnect('mouse_release', self.on_mouse_release)
+ self.app.plotcanvas.graph_event_disconnect('mouse_move', self.on_mouse_move)
+ else:
+ self.app.plotcanvas.graph_event_disconnect(self.mr)
+ self.app.plotcanvas.graph_event_disconnect(self.mm)
+ self.app.plotcanvas.graph_event_disconnect(self.kp)
+
+ self.app.mp = self.app.plotcanvas.graph_event_connect('mouse_press',
+ self.app.on_mouse_click_over_plot)
+ self.app.mm = self.app.plotcanvas.graph_event_connect('mouse_move',
+ self.app.on_mouse_move_over_plot)
+ self.app.mr = self.app.plotcanvas.graph_event_connect('mouse_release',
+ self.app.on_mouse_click_release_over_plot)
+ self.points = []
+ self.poly_drawn = False
+ self.exclusion_areas_storage = []
+
+ AppTool.delete_moving_selection_shape(self)
+ # AppTool.delete_tool_selection_shape(self, shapes_storage=self.exclusion_shapes)
+
+ self.app.call_source = "app"
+ self.app.inform.emit("[WARNING_NOTCL] %s" % _("Cancelled. Area exclusion drawing was interrupted."))
+
+ def on_mouse_move(self, event):
+ """
+ Called on mouse move
+
+ :param event: mouse event
+ :type event:
+ :return: None
+ :rtype:
+ """
+ shape_type = self.shape_type_button.get_value()
+
+ if self.app.is_legacy is False:
+ event_pos = event.pos
+ event_is_dragging = event.is_dragging
+ # right_button = 2
+ else:
+ event_pos = (event.xdata, event.ydata)
+ event_is_dragging = self.app.plotcanvas.is_dragging
+ # right_button = 3
+
+ curr_pos = self.app.plotcanvas.translate_coords(event_pos)
+
+ # detect mouse dragging motion
+ if event_is_dragging is True:
+ self.mouse_is_dragging = True
+ else:
+ self.mouse_is_dragging = False
+
+ # update the cursor position
+ if self.app.grid_status():
+ # Update cursor
+ curr_pos = self.app.geo_editor.snap(curr_pos[0], curr_pos[1])
+
+ self.app.app_cursor.set_data(np.asarray([(curr_pos[0], curr_pos[1])]),
+ symbol='++', edge_color=self.app.cursor_color_3D,
+ edge_width=self.app.defaults["global_cursor_width"],
+ size=self.app.defaults["global_cursor_size"])
+
+ # update the positions on status bar
+ if self.cursor_pos is None:
+ self.cursor_pos = (0, 0)
+
+ self.app.dx = curr_pos[0] - float(self.cursor_pos[0])
+ self.app.dy = curr_pos[1] - float(self.cursor_pos[1])
+ self.app.ui.position_label.setText(" X: %.4f "
+ "Y: %.4f " % (curr_pos[0], curr_pos[1]))
+ # self.app.ui.rel_position_label.setText("Dx: %.4f Dy: "
+ # "%.4f " % (self.app.dx, self.app.dy))
+
+ units = self.app.defaults["units"].lower()
+ self.app.plotcanvas.text_hud.text = \
+ 'Dx:\t{:<.4f} [{:s}]\nDy:\t{:<.4f} [{:s}]\n\nX: \t{:<.4f} [{:s}]\nY: \t{:<.4f} [{:s}]'.format(
+ self.app.dx, units, self.app.dy, units, curr_pos[0], units, curr_pos[1], units)
+
+ if self.obj_type == 'excellon':
+ color = "#FF7400"
+ face_color = "#FF7400BF"
+ else:
+ color = "#098a8f"
+ face_color = "#FF7400BF"
+
+ # draw the utility geometry
+ if shape_type == "square":
+ if self.first_click:
+ self.app.delete_selection_shape()
+
+ self.app.draw_moving_selection_shape(old_coords=(self.cursor_pos[0], self.cursor_pos[1]),
+ color=color,
+ face_color=face_color,
+ coords=(curr_pos[0], curr_pos[1]))
+ else:
+ AppTool.delete_moving_selection_shape(self)
+ AppTool.draw_moving_selection_shape_poly(
+ self, points=self.points,
+ color=color,
+ face_color=face_color,
+ data=(curr_pos[0], curr_pos[1]))
+
+ def on_clear_area_click(self):
+ """
+ Slot for clicking the button for Deleting all the Exclusion areas.
+
+ :return: None
+ :rtype:
+ """
+ self.clear_shapes()
+
+ # restore the default StyleSheet
+ self.cnc_button.setStyleSheet("")
+ # update the StyleSheet
+ self.cnc_button.setStyleSheet("""
+ QPushButton
+ {
+ font-weight: bold;
+ }
+ """)
+ self.cnc_button.setToolTip('%s' % _("Generate the CNC Job object."))
+
+ def clear_shapes(self):
+ """
+ Will delete all the Exclusion areas; will delete on canvas any possible selection box for the Exclusion areas.
+
+ :return: None
+ :rtype:
+ """
+ self.exclusion_areas_storage.clear()
+ AppTool.delete_moving_selection_shape(self)
+ self.app.delete_selection_shape()
+ AppTool.delete_tool_selection_shape(self, shapes_storage=self.exclusion_shapes)
+ self.app.inform.emit('%s' % _("All exclusion zones deleted."))
+
+ def delete_sel_shapes(self, idxs):
+ """
+
+ :param idxs: list of indexes in self.exclusion_areas_storage list to be deleted
+ :type idxs: list
+ :return: None
+ """
+
+ # delete all plotted shapes
+ AppTool.delete_tool_selection_shape(self, shapes_storage=self.exclusion_shapes)
+
+ # delete shapes
+ for idx in sorted(idxs, reverse=True):
+ del self.exclusion_areas_storage[idx]
+
+ # re-add what's left after deletion in first step
+ if self.obj_type == 'excellon':
+ color = "#FF7400"
+ face_color = "#FF7400BF"
+ else:
+ color = "#098a8f"
+ face_color = "#FF7400BF"
+
+ face_alpha = 0.3
+ color_t = face_color[:-2] + str(hex(int(face_alpha * 255)))[2:]
+
+ for geo_el in self.exclusion_areas_storage:
+ if isinstance(geo_el['shape'], Polygon):
+ self.exclusion_shapes.add(
+ geo_el['shape'], color=color, face_color=color_t, update=True, layer=0, tolerance=None)
+ if self.app.is_legacy is True:
+ self.exclusion_shapes.redraw()
+
+ if self.exclusion_areas_storage:
+ self.app.inform.emit('[success] %s' % _("Selected exclusion zones deleted."))
+ else:
+ # restore the default StyleSheet
+ self.cnc_button.setStyleSheet("")
+ # update the StyleSheet
+ self.cnc_button.setStyleSheet("""
+ QPushButton
+ {
+ font-weight: bold;
+ }
+ """)
+ self.cnc_button.setToolTip('%s' % _("Generate the CNC Job object."))
+
+ self.app.inform.emit('%s' % _("All exclusion zones deleted."))
+
+ def travel_coordinates(self, start_point, end_point, tooldia):
+ """
+ WIll create a path the go around the exclusion areas on the shortest path when travelling (at a Z above the
+ material).
+
+ :param start_point: X,Y coordinates for the start point of the travel line
+ :type start_point: tuple
+ :param end_point: X,Y coordinates for the destination point of the travel line
+ :type end_point: tuple
+ :param tooldia: THe tool diameter used and which generates the travel lines
+ :type tooldia float
+ :return: A list of x,y tuples that describe the avoiding path
+ :rtype: list
+ """
+
+ ret_list = []
+
+ # Travel lines: rapids. Should not pass through Exclusion areas
+ travel_line = LineString([start_point, end_point])
+ origin_point = Point(start_point)
+
+ buffered_storage = []
+ # add a little something to the half diameter, to make sure that we really don't enter in the exclusion zones
+ buffered_distance = (tooldia / 2.0) + (0.1 if self.app.defaults['units'] == 'MM' else 0.00393701)
+
+ for area in self.exclusion_areas_storage:
+ new_area = deepcopy(area)
+ new_area['shape'] = area['shape'].buffer(buffered_distance, join_style=2)
+ buffered_storage.append(new_area)
+
+ # sort the Exclusion areas from the closest to the start_point to the farthest
+ tmp = []
+ for area in buffered_storage:
+ dist = Point(start_point).distance(area['shape'])
+ tmp.append((dist, area))
+ tmp.sort(key=lambda k: k[0])
+
+ sorted_area_storage = [k[1] for k in tmp]
+
+ # process the ordered exclusion areas list
+ for area in sorted_area_storage:
+ outline = area['shape'].exterior
+ if travel_line.intersects(outline):
+ intersection_pts = travel_line.intersection(outline)
+
+ if isinstance(intersection_pts, Point):
+ # it's just a touch, continue
+ continue
+
+ entry_pt = nearest_point(origin_point, intersection_pts)
+ exit_pt = farthest_point(origin_point, intersection_pts)
+
+ if area['strategy'] == 'around':
+ full_vertex_points = [Point(x) for x in list(outline.coords)]
+
+ # the last coordinate in outline, a LinearRing, is the closing one
+ # therefore a duplicate of the first one; discard it
+ vertex_points = full_vertex_points[:-1]
+
+ # dist_from_entry = [(entry_pt.distance(vt), vertex_points.index(vt)) for vt in vertex_points]
+ # closest_point_entry = nsmallest(1, dist_from_entry, key=lambda x: x[0])
+ # start_idx = closest_point_entry[0][1]
+ #
+ # dist_from_exit = [(exit_pt.distance(vt), vertex_points.index(vt)) for vt in vertex_points]
+ # closest_point_exit = nsmallest(1, dist_from_exit, key=lambda x: x[0])
+ # end_idx = closest_point_exit[0][1]
+
+ # pts_line_entry = None
+ # pts_line_exit = None
+ # for i in range(len(full_vertex_points)):
+ # try:
+ # line = LineString(
+ # [
+ # (full_vertex_points[i].x, full_vertex_points[i].y),
+ # (full_vertex_points[i + 1].x, full_vertex_points[i + 1].y)
+ # ]
+ # )
+ # except IndexError:
+ # continue
+ #
+ # if entry_pt.within(line) or entry_pt.equals(Point(line.coords[0])) or \
+ # entry_pt.equals(Point(line.coords[1])):
+ # pts_line_entry = [Point(x) for x in line.coords]
+ #
+ # if exit_pt.within(line) or exit_pt.equals(Point(line.coords[0])) or \
+ # exit_pt.equals(Point(line.coords[1])):
+ # pts_line_exit = [Point(x) for x in line.coords]
+ #
+ # closest_point_entry = nearest_point(entry_pt, pts_line_entry)
+ # start_idx = vertex_points.index(closest_point_entry)
+ #
+ # closest_point_exit = nearest_point(exit_pt, pts_line_exit)
+ # end_idx = vertex_points.index(closest_point_exit)
+
+ # find all vertexes for which a line from start_point does not cross the Exclusion area polygon
+ # the same for end_point
+ # we don't need closest points for which the path leads to crosses of the Exclusion area
+
+ close_start_points = []
+ close_end_points = []
+ for i in range(len(vertex_points)):
+ try:
+ start_line = LineString(
+ [
+ start_point,
+ (vertex_points[i].x, vertex_points[i].y)
+ ]
+ )
+ end_line = LineString(
+ [
+ end_point,
+ (vertex_points[i].x, vertex_points[i].y)
+ ]
+ )
+ except IndexError:
+ continue
+
+ if not start_line.crosses(area['shape']):
+ close_start_points.append(vertex_points[i])
+ if not end_line.crosses(area['shape']):
+ close_end_points.append(vertex_points[i])
+
+ closest_point_entry = nearest_point(entry_pt, close_start_points)
+ closest_point_exit = nearest_point(exit_pt, close_end_points)
+
+ start_idx = vertex_points.index(closest_point_entry)
+ end_idx = vertex_points.index(closest_point_exit)
+
+ # calculate possible paths: one clockwise the other counterclockwise on the exterior of the
+ # exclusion area outline (Polygon.exterior)
+ vp_len = len(vertex_points)
+ if end_idx > start_idx:
+ path_1 = vertex_points[start_idx:(end_idx + 1)]
+ path_2 = [vertex_points[start_idx]]
+ idx = start_idx
+ for __ in range(vp_len):
+ idx = idx - 1 if idx > 0 else (vp_len - 1)
+ path_2.append(vertex_points[idx])
+ if idx == end_idx:
+ break
+ else:
+ path_1 = vertex_points[end_idx:(start_idx + 1)]
+ path_2 = [vertex_points[end_idx]]
+ idx = end_idx
+ for __ in range(vp_len):
+ idx = idx - 1 if idx > 0 else (vp_len - 1)
+ path_2.append(vertex_points[idx])
+ if idx == start_idx:
+ break
+ path_1.reverse()
+ path_2.reverse()
+
+ # choose the one with the lesser length
+ length_path_1 = 0
+ for i in range(len(path_1)):
+ try:
+ length_path_1 += path_1[i].distance(path_1[i + 1])
+ except IndexError:
+ pass
+
+ length_path_2 = 0
+ for i in range(len(path_2)):
+ try:
+ length_path_2 += path_2[i].distance(path_2[i + 1])
+ except IndexError:
+ pass
+
+ path = path_1 if length_path_1 < length_path_2 else path_2
+
+ # transform the list of Points into a list of Points coordinates
+ path_coords = [[None, (p.x, p.y)] for p in path]
+ ret_list += path_coords
+
+ else:
+ path_coords = [[float(area['overz']), (entry_pt.x, entry_pt.y)], [None, (exit_pt.x, exit_pt.y)]]
+ ret_list += path_coords
+
+ # create a new LineString to test again for possible other Exclusion zones
+ last_pt_in_path = path_coords[-1][1]
+ travel_line = LineString([last_pt_in_path, end_point])
+
+ ret_list.append([None, end_point])
+ return ret_list
+
+
+def farthest_point(origin, points_list):
+ """
+ Calculate the farthest Point in a list from another Point
+
+ :param origin: Reference Point
+ :type origin: Point
+ :param points_list: List of Points or a MultiPoint
+ :type points_list: list
+ :return: Farthest Point
+ :rtype: Point
+ """
+ old_dist = 0
+ fartherst_pt = None
+
+ for pt in points_list:
+ dist = abs(origin.distance(pt))
+ if dist >= old_dist:
+ fartherst_pt = pt
+ old_dist = dist
+
+ return fartherst_pt
+
+
+def nearest_point(origin, points_list):
+ """
+ Calculate the nearest Point in a list from another Point
+
+ :param origin: Reference Point
+ :type origin: Point
+ :param points_list: List of Points or a MultiPoint
+ :type points_list: list
+ :return: Nearest Point
+ :rtype: Point
+ """
+ old_dist = np.Inf
+ nearest_pt = None
+
+ for pt in points_list:
+ dist = abs(origin.distance(pt))
+ if dist <= old_dist:
+ nearest_pt = pt
+ old_dist = dist
+
+ return nearest_pt
diff --git a/FlatCAM.py b/FlatCAM.py
index 3875f0f3..17b56c29 100644
--- a/FlatCAM.py
+++ b/FlatCAM.py
@@ -3,8 +3,8 @@ import os
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSettings, Qt
-from FlatCAMApp import App
-from flatcamGUI import VisPyPatches
+from App_Main import App
+from AppGUI import VisPyPatches
from multiprocessing import freeze_support
# import copyreg
diff --git a/FlatCAMCommon.py b/FlatCAMCommon.py
deleted file mode 100644
index 952ed0cd..00000000
--- a/FlatCAMCommon.py
+++ /dev/null
@@ -1,121 +0,0 @@
-# ##########################################################
-# FlatCAM: 2D Post-processing for Manufacturing #
-# http://flatcam.org #
-# Author: Juan Pablo Caram (c) #
-# Date: 2/5/2014 #
-# MIT Licence #
-# ##########################################################
-
-# ##########################################################
-# File Modified (major mod): Marius Adrian Stanciu #
-# Date: 11/4/2019 #
-# ##########################################################
-
-import gettext
-import FlatCAMTranslation as fcTranslate
-import builtins
-
-fcTranslate.apply_language('strings')
-if '_' not in builtins.__dict__:
- _ = gettext.gettext
-
-
-class GracefulException(Exception):
- # Graceful Exception raised when the user is requesting to cancel the current threaded task
- def __init__(self):
- super().__init__()
-
- def __str__(self):
- return '\n\n%s' % _("The user requested a graceful exit of the current task.")
-
-
-class LoudDict(dict):
- """
- A Dictionary with a callback for item changes.
- """
-
- def __init__(self, *args, **kwargs):
- dict.__init__(self, *args, **kwargs)
- self.callback = lambda x: None
-
- def __setitem__(self, key, value):
- """
- Overridden __setitem__ method. Will emit 'changed(QString)' if the item was changed, with key as parameter.
- """
- if key in self and self.__getitem__(key) == value:
- return
-
- dict.__setitem__(self, key, value)
- self.callback(key)
-
- def update(self, *args, **kwargs):
- if len(args) > 1:
- raise TypeError("update expected at most 1 arguments, got %d" % len(args))
- other = dict(*args, **kwargs)
- for key in other:
- self[key] = other[key]
-
- def set_change_callback(self, callback):
- """
- Assigns a function as callback on item change. The callback
- will receive the key of the object that was changed.
-
- :param callback: Function to call on item change.
- :type callback: func
- :return: None
- """
-
- self.callback = callback
-
-
-class FCSignal:
- """
- Taken from here: https://blog.abstractfactory.io/dynamic-signals-in-pyqt/
- """
-
- def __init__(self):
- self.__subscribers = []
-
- def emit(self, *args, **kwargs):
- for subs in self.__subscribers:
- subs(*args, **kwargs)
-
- def connect(self, func):
- self.__subscribers.append(func)
-
- def disconnect(self, func):
- try:
- self.__subscribers.remove(func)
- except ValueError:
- print('Warning: function %s not removed '
- 'from signal %s' % (func, self))
-
-
-def color_variant(hex_color, bright_factor=1):
- """
- Takes a color in HEX format #FF00FF and produces a lighter or darker variant
-
- :param hex_color: color to change
- :param bright_factor: factor to change the color brightness [0 ... 1]
- :return: modified color
- """
-
- if len(hex_color) != 7:
- print("Color is %s, but needs to be in #FF00FF format. Returning original color." % hex_color)
- return hex_color
-
- if bright_factor > 1.0:
- bright_factor = 1.0
- if bright_factor < 0.0:
- bright_factor = 0.0
-
- rgb_hex = [hex_color[x:x + 2] for x in [1, 3, 5]]
- new_rgb = []
- for hex_value in rgb_hex:
- # adjust each color channel and turn it into a INT suitable as argument for hex()
- mod_color = round(int(hex_value, 16) * bright_factor)
- # make sure that each color channel has two digits without the 0x prefix
- mod_color_hex = str(hex(mod_color)[2:]).zfill(2)
- new_rgb.append(mod_color_hex)
-
- return "#" + "".join([i for i in new_rgb])
diff --git a/Utils/vispy_example.py b/Utils/vispy_example.py
new file mode 100644
index 00000000..980d2b10
--- /dev/null
+++ b/Utils/vispy_example.py
@@ -0,0 +1,195 @@
+from PyQt5.QtGui import QPalette
+from PyQt5 import QtCore, QtWidgets
+
+import vispy.scene as scene
+from vispy.scene.visuals import Rectangle, Text
+from vispy.color import Color
+
+import sys
+
+
+class VisPyCanvas(scene.SceneCanvas):
+
+ def __init__(self, config=None):
+ super().__init__(config=config, keys=None)
+
+ self.unfreeze()
+
+ # Colors used by the Scene
+ theme_color = Color('#FFFFFF')
+ tick_color = Color('#000000')
+ back_color = str(QPalette().color(QPalette.Window).name())
+
+ # Central Widget Colors
+ self.central_widget.bgcolor = back_color
+ self.central_widget.border_color = back_color
+
+ self.grid_widget = self.central_widget.add_grid(margin=10)
+ self.grid_widget.spacing = 0
+
+ # TOP Padding
+ top_padding = self.grid_widget.add_widget(row=0, col=0, col_span=2)
+ top_padding.height_max = 0
+
+ # RIGHT Padding
+ right_padding = self.grid_widget.add_widget(row=0, col=2, row_span=2)
+ right_padding.width_max = 0
+
+ # X Axis
+ self.xaxis = scene.AxisWidget(
+ orientation='bottom', axis_color=tick_color, text_color=tick_color,
+ font_size=8, axis_width=1,
+ anchors=['center', 'bottom']
+ )
+ self.xaxis.height_max = 30
+ self.grid_widget.add_widget(self.xaxis, row=2, col=1)
+
+ # Y Axis
+ self.yaxis = scene.AxisWidget(
+ orientation='left', axis_color=tick_color, text_color=tick_color,
+ font_size=8, axis_width=1
+ )
+ self.yaxis.width_max = 55
+ self.grid_widget.add_widget(self.yaxis, row=1, col=0)
+
+ # View & Camera
+ self.view = self.grid_widget.add_view(row=1, col=1, border_color=tick_color,
+ bgcolor=theme_color)
+ self.view.camera = scene.PanZoomCamera(aspect=1, rect=(-25, -25, 150, 150))
+
+ self.xaxis.link_view(self.view)
+ self.yaxis.link_view(self.view)
+
+ self.grid = scene.GridLines(parent=self.view.scene, color='dimgray')
+ self.grid.set_gl_state(depth_test=False)
+
+ self.rect = Rectangle(center=(65,30), color=Color('#0000FF10'), border_color=Color('#0000FF10'),
+ width=120, height=50, radius=[5, 5, 5, 5], parent=self.view)
+ self.rect.set_gl_state(depth_test=False)
+
+ self.text = Text('', parent=self.view, color='black', pos=(5, 30), method='gpu', anchor_x='left')
+ self.text.font_size = 8
+ self.text.text = 'Coordinates:\nX: %s\nY: %s' % ('0.0000', '0.0000')
+
+ self.freeze()
+
+ # self.measure_fps()
+
+
+class PlotCanvas(QtCore.QObject):
+
+ def __init__(self, container, my_app):
+ """
+ The constructor configures the VisPy figure that
+ will contain all plots, creates the base axes and connects
+ events to the plotting area.
+
+ :param container: The parent container in which to draw plots.
+ :rtype: PlotCanvas
+ """
+
+ super().__init__()
+
+ # VisPyCanvas instance
+ self.vispy_canvas = VisPyCanvas()
+
+ self.vispy_canvas.unfreeze()
+
+ self.my_app = my_app
+
+ # Parent container
+ self.container = container
+
+ #
+ self.vispy_canvas.create_native()
+ self.vispy_canvas.native.setParent(self.my_app.ui)
+
+ #
+ self.container.addWidget(self.vispy_canvas.native)
+
+ # add two Infinite Lines to act as markers for the X,Y axis
+ self.v_line = scene.visuals.InfiniteLine(
+ pos=0, color=(0.0, 0.0, 1.0, 0.3), vertical=True,
+ parent=self.vispy_canvas.view.scene)
+
+ self.h_line = scene.visuals.InfiniteLine(
+ pos=0, color=(0.00, 0.0, 1.0, 0.3), vertical=False,
+ parent=self.vispy_canvas.view.scene)
+
+ self.vispy_canvas.freeze()
+
+ def event_connect(self, event, callback):
+ getattr(self.vispy_canvas.events, event).connect(callback)
+
+ def event_disconnect(self, event, callback):
+ getattr(self.vispy_canvas.events, event).disconnect(callback)
+
+ def translate_coords(self, pos):
+ """
+ Translate pixels to canvas units.
+ """
+ tr = self.vispy_canvas.grid.get_transform('canvas', 'visual')
+ return tr.map(pos)
+
+
+class MyGui(QtWidgets.QMainWindow):
+
+ def __init__(self):
+ super().__init__()
+
+ self.setWindowTitle("VisPy Test")
+
+ # add Menubar
+ self.menu = self.menuBar()
+ self.menufile = self.menu.addMenu("File")
+ self.menuedit = self.menu.addMenu("Edit")
+ self.menufhelp = self.menu.addMenu("Help")
+
+ # add a Toolbar
+ self.file_toolbar = QtWidgets.QToolBar("File Toolbar")
+ self.addToolBar(self.file_toolbar)
+ self.button = self.file_toolbar.addAction("Open")
+
+ # add Central Widget
+ self.c_widget = QtWidgets.QWidget()
+ self.central_layout = QtWidgets.QVBoxLayout()
+ self.c_widget.setLayout(self.central_layout)
+ self.setCentralWidget(self.c_widget)
+
+ # add InfoBar
+ # self.infobar = self.statusBar()
+ # self.position_label = QtWidgets.QLabel("Position: X: 0.0000\tY: 0.0000")
+ # self.infobar.addWidget(self.position_label)
+
+
+class MyApp(QtCore.QObject):
+
+ def __init__(self):
+ super().__init__()
+
+ self.ui = MyGui()
+ self.plot = PlotCanvas(container=self.ui.central_layout, my_app=self)
+
+ self.ui.show()
+
+ self.plot.event_connect(event="mouse_move", callback=self.on_mouse_move)
+
+ def on_mouse_move(self, event):
+ cursor_pos = event.pos
+
+ pos_canvas = self.plot.translate_coords(cursor_pos)
+
+ # we don't need all the info in the tuple returned by the translate_coords()
+ # only first 2 elements
+ pos_canvas = [pos_canvas[0], pos_canvas[1]]
+ self.ui.position_label.setText("Position: X: %.4f\tY: %.4f" % (pos_canvas[0], pos_canvas[1]))
+ # pos_text = 'Coordinates: \nX: {:<7.4f}\nY: {:<7.4f}'.format(pos_canvas[0], pos_canvas[1])
+ pos_text = 'Coordinates: \nX: {:<.4f}\nY: {:<.4f}'.format(pos_canvas[0], pos_canvas[1])
+ self.plot.vispy_canvas.text.text = pos_text
+
+
+if __name__ == '__main__':
+ app = QtWidgets.QApplication(sys.argv)
+
+ m_app = MyApp()
+ sys.exit(app.exec_())
diff --git a/assets/linux/flatcam-beta.desktop b/assets/linux/flatcam-beta.desktop
old mode 100644
new mode 100755
diff --git a/assets/resources/axis16.png b/assets/resources/axis16.png
new file mode 100644
index 00000000..56aef433
Binary files /dev/null and b/assets/resources/axis16.png differ
diff --git a/assets/resources/contribute256.png b/assets/resources/contribute256.png
new file mode 100644
index 00000000..dd1bc479
Binary files /dev/null and b/assets/resources/contribute256.png differ
diff --git a/assets/resources/corners_32.png b/assets/resources/corners_32.png
new file mode 100644
index 00000000..b9f87261
Binary files /dev/null and b/assets/resources/corners_32.png differ
diff --git a/assets/resources/dark_resources/contribute256.png b/assets/resources/dark_resources/contribute256.png
new file mode 100644
index 00000000..ab1739dd
Binary files /dev/null and b/assets/resources/dark_resources/contribute256.png differ
diff --git a/assets/resources/dark_resources/corners_32.png b/assets/resources/dark_resources/corners_32.png
new file mode 100644
index 00000000..c5ad0f00
Binary files /dev/null and b/assets/resources/dark_resources/corners_32.png differ
diff --git a/assets/resources/dark_resources/etch_32.png b/assets/resources/dark_resources/etch_32.png
new file mode 100644
index 00000000..2f06671b
Binary files /dev/null and b/assets/resources/dark_resources/etch_32.png differ
diff --git a/assets/resources/dark_resources/iso_16.png b/assets/resources/dark_resources/iso_16.png
new file mode 100644
index 00000000..6d0ee71f
Binary files /dev/null and b/assets/resources/dark_resources/iso_16.png differ
diff --git a/assets/resources/dark_resources/panelize32.png b/assets/resources/dark_resources/panelize32.png
index aa3479b2..ff5ff124 100644
Binary files a/assets/resources/dark_resources/panelize32.png and b/assets/resources/dark_resources/panelize32.png differ
diff --git a/assets/resources/etch_32.png b/assets/resources/etch_32.png
new file mode 100644
index 00000000..dd70dd74
Binary files /dev/null and b/assets/resources/etch_32.png differ
diff --git a/assets/resources/grid32.png b/assets/resources/grid32.png
index 9cb197bf..b2d7ca1b 100644
Binary files a/assets/resources/grid32.png and b/assets/resources/grid32.png differ
diff --git a/assets/resources/grid_lines32.png b/assets/resources/grid_lines32.png
new file mode 100644
index 00000000..d2be39cd
Binary files /dev/null and b/assets/resources/grid_lines32.png differ
diff --git a/assets/resources/hud_32.png b/assets/resources/hud_32.png
new file mode 100644
index 00000000..5ea627f7
Binary files /dev/null and b/assets/resources/hud_32.png differ
diff --git a/assets/resources/iso_16.png b/assets/resources/iso_16.png
new file mode 100644
index 00000000..48db1e65
Binary files /dev/null and b/assets/resources/iso_16.png differ
diff --git a/assets/resources/panelize32.png b/assets/resources/panelize32.png
index ea74ef36..5445781c 100644
Binary files a/assets/resources/panelize32.png and b/assets/resources/panelize32.png differ
diff --git a/assets/resources/shell20.png b/assets/resources/shell20.png
new file mode 100644
index 00000000..299cabf4
Binary files /dev/null and b/assets/resources/shell20.png differ
diff --git a/camlib.py b/camlib.py
index f4dff415..2f134b84 100644
--- a/camlib.py
+++ b/camlib.py
@@ -39,21 +39,20 @@ from shapely.geometry import shape
from descartes.patch import PolygonPatch
# ---------------------------------------
-import collections
from collections import Iterable
import rasterio
from rasterio.features import shapes
import ezdxf
-from FlatCAMCommon import GracefulException as grace
+from Common import GracefulException as grace
-# TODO: Commented for FlatCAM packaging with cx_freeze
+# Commented for FlatCAM packaging with cx_freeze
# from scipy.spatial import KDTree, Delaunay
# from scipy.spatial import Delaunay
-from flatcamParsers.ParseSVG import *
-from flatcamParsers.ParseDXF import *
+from AppParsers.ParseSVG import *
+from AppParsers.ParseDXF import *
if platform.architecture()[0] == '64bit':
from ortools.constraint_solver import pywrapcp
@@ -62,7 +61,7 @@ if platform.architecture()[0] == '64bit':
import logging
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
@@ -249,7 +248,7 @@ class ApertureMacro:
pol, dia, x, y = ApertureMacro.default2zero(4, mods)
- return {"pol": int(pol), "geometry": Point(x, y).buffer(dia/2)}
+ return {"pol": int(pol), "geometry": Point(x, y).buffer(dia / 2)}
@staticmethod
def make_vectorline(mods):
@@ -262,7 +261,7 @@ class ApertureMacro:
pol, width, xs, ys, xe, ye, angle = ApertureMacro.default2zero(7, mods)
line = LineString([(xs, ys), (xe, ye)])
- box = line.buffer(width/2, cap_style=2)
+ box = line.buffer(width / 2, cap_style=2)
box_rotated = affinity.rotate(box, angle, origin=(0, 0))
return {"pol": int(pol), "geometry": box_rotated}
@@ -278,7 +277,7 @@ class ApertureMacro:
pol, width, height, x, y, angle = ApertureMacro.default2zero(6, mods)
- box = shply_box(x-width/2, y-height/2, x+width/2, y+height/2)
+ box = shply_box(x - width / 2, y - height / 2, x + width / 2, y + height / 2)
box_rotated = affinity.rotate(box, angle, origin=(0, 0))
return {"pol": int(pol), "geometry": box_rotated}
@@ -294,7 +293,7 @@ class ApertureMacro:
pol, width, height, x, y, angle = ApertureMacro.default2zero(6, mods)
- box = shply_box(x, y, x+width, y+height)
+ box = shply_box(x, y, x + width, y + height)
box_rotated = affinity.rotate(box, angle, origin=(0, 0))
return {"pol": int(pol), "geometry": box_rotated}
@@ -309,12 +308,12 @@ class ApertureMacro:
pol = mods[0]
n = mods[1]
- points = [(0, 0)]*(n+1)
+ points = [(0, 0)] * (n + 1)
- for i in range(n+1):
- points[i] = mods[2*i + 2:2*i + 4]
+ for i in range(n + 1):
+ points[i] = mods[2 * i + 2:2 * i + 4]
- angle = mods[2*n + 4]
+ angle = mods[2 * n + 4]
poly = Polygon(points)
poly_rotated = affinity.rotate(poly, angle, origin=(0, 0))
@@ -333,11 +332,11 @@ class ApertureMacro:
"""
pol, nverts, x, y, dia, angle = ApertureMacro.default2zero(6, mods)
- points = [(0, 0)]*nverts
+ points = [(0, 0)] * nverts
for i in range(nverts):
- points[i] = (x + 0.5 * dia * np.cos(2*np.pi * i/nverts),
- y + 0.5 * dia * np.sin(2*np.pi * i/nverts))
+ points[i] = (x + 0.5 * dia * np.cos(2 * np.pi * i / nverts),
+ y + 0.5 * dia * np.sin(2 * np.pi * i / nverts))
poly = Polygon(points)
poly_rotated = affinity.rotate(poly, angle, origin=(0, 0))
@@ -358,9 +357,9 @@ class ApertureMacro:
x, y, dia, thickness, gap, nrings, cross_th, cross_len, angle = ApertureMacro.default2zero(9, mods)
- r = dia/2 - thickness/2
- result = Point((x, y)).buffer(r).exterior.buffer(thickness/2.0)
- ring = Point((x, y)).buffer(r).exterior.buffer(thickness/2.0) # Need a copy!
+ r = dia / 2 - thickness / 2
+ result = Point((x, y)).buffer(r).exterior.buffer(thickness / 2.0)
+ ring = Point((x, y)).buffer(r).exterior.buffer(thickness / 2.0) # Need a copy!
i = 1 # Number of rings created so far
@@ -370,13 +369,13 @@ class ApertureMacro:
r -= thickness + gap
if r <= 0:
break
- ring = Point((x, y)).buffer(r).exterior.buffer(thickness/2.0)
+ ring = Point((x, y)).buffer(r).exterior.buffer(thickness / 2.0)
result = cascaded_union([result, ring])
i += 1
# ## Crosshair
- hor = LineString([(x - cross_len, y), (x + cross_len, y)]).buffer(cross_th/2.0, cap_style=2)
- ver = LineString([(x, y-cross_len), (x, y + cross_len)]).buffer(cross_th/2.0, cap_style=2)
+ hor = LineString([(x - cross_len, y), (x + cross_len, y)]).buffer(cross_th / 2.0, cap_style=2)
+ ver = LineString([(x, y - cross_len), (x, y + cross_len)]).buffer(cross_th / 2.0, cap_style=2)
result = cascaded_union([result, hor, ver])
return {"pol": 1, "geometry": result}
@@ -394,9 +393,9 @@ class ApertureMacro:
x, y, dout, din, t, angle = ApertureMacro.default2zero(6, mods)
- ring = Point((x, y)).buffer(dout/2.0).difference(Point((x, y)).buffer(din/2.0))
- hline = LineString([(x - dout/2.0, y), (x + dout/2.0, y)]).buffer(t/2.0, cap_style=3)
- vline = LineString([(x, y - dout/2.0), (x, y + dout/2.0)]).buffer(t/2.0, cap_style=3)
+ ring = Point((x, y)).buffer(dout / 2.0).difference(Point((x, y)).buffer(din / 2.0))
+ hline = LineString([(x - dout / 2.0, y), (x + dout / 2.0, y)]).buffer(t / 2.0, cap_style=3)
+ vline = LineString([(x, y - dout / 2.0), (x, y + dout / 2.0)]).buffer(t / 2.0, cap_style=3)
thermal = ring.difference(hline.union(vline))
return {"pol": 1, "geometry": thermal}
@@ -502,7 +501,7 @@ class Geometry(object):
if self.app.is_legacy is False:
self.temp_shapes = self.app.plotcanvas.new_shape_group()
else:
- from flatcamGUI.PlotCanvasLegacy import ShapeCollectionLegacy
+ from AppGUI.PlotCanvasLegacy import ShapeCollectionLegacy
self.temp_shapes = ShapeCollectionLegacy(obj=self, app=self.app, name='camlib.geometry')
def plot_temp_shapes(self, element, color='red'):
@@ -587,7 +586,8 @@ class Geometry(object):
return
def is_empty(self):
- if isinstance(self.solid_geometry, BaseGeometry):
+ if isinstance(self.solid_geometry, BaseGeometry) or isinstance(self.solid_geometry, Polygon) or \
+ isinstance(self.solid_geometry, MultiPolygon):
return self.solid_geometry.is_empty
if isinstance(self.solid_geometry, list):
@@ -920,14 +920,16 @@ class Geometry(object):
Creates contours around geometry at a given
offset distance.
- :param offset: Offset distance.
- :type offset: float
- :param iso_type: type of isolation, can be 0 = exteriors or 1 = interiors or 2 = both (complete)
- :param corner: type of corner for the isolation: 0 = round; 1 = square; 2= beveled (line that connects the ends)
- :param follow: whether the geometry to be isolated is a follow_geometry
- :param passes: current pass out of possible multiple passes for which the isolation is done
- :return: The buffered geometry.
- :rtype: Shapely.MultiPolygon or Shapely.Polygon
+ :param offset: Offset distance.
+ :type offset: float
+ :param geometry The geometry to work with
+ :param iso_type: type of isolation, can be 0 = exteriors or 1 = interiors or 2 = both (complete)
+ :param corner: type of corner for the isolation:
+ 0 = round; 1 = square; 2= beveled (line that connects the ends)
+ :param follow: whether the geometry to be isolated is a follow_geometry
+ :param passes: current pass out of possible multiple passes for which the isolation is done
+ :return: The buffered geometry.
+ :rtype: Shapely.MultiPolygon or Shapely.Polygon
"""
if self.app.abort_flag:
@@ -963,6 +965,8 @@ class Geometry(object):
corner_type = 1 if corner is None else corner
geo_iso.append(pol.buffer(offset, int(self.geo_steps_per_circle), join_style=corner_type))
pol_nr += 1
+
+ # activity view update
disp_number = int(np.interp(pol_nr, [0, geo_len], [0, 100]))
if old_disp_number < disp_number <= 100:
@@ -1102,15 +1106,17 @@ class Geometry(object):
"""
Imports shapes from an IMAGE file into the object's geometry.
- :param filename: Path to the IMAGE file.
- :type filename: str
- :param flip: Flip the object vertically.
- :type flip: bool
- :param units: FlatCAM units
- :param dpi: dots per inch on the imported image
- :param mode: how to import the image: as 'black' or 'color'
- :param mask: level of detail for the import
- :return: None
+ :param filename: Path to the IMAGE file.
+ :type filename: str
+ :param flip: Flip the object vertically.
+ :type flip: bool
+ :param units: FlatCAM units
+ :type units: str
+ :param dpi: dots per inch on the imported image
+ :param mode: how to import the image: as 'black' or 'color'
+ :type mode: str
+ :param mask: level of detail for the import
+ :return: None
"""
if mask is None:
mask = [128, 128, 128, 128]
@@ -1194,7 +1200,7 @@ class Geometry(object):
return 0
bounds = self.bounds()
return bounds[2] - bounds[0], bounds[3] - bounds[1]
-
+
def get_empty_area(self, boundary=None):
"""
Returns the complement of self.solid_geometry within
@@ -1886,6 +1892,7 @@ class Geometry(object):
# ## Index first and last points in paths
def get_pts(o):
return [o.coords[0], o.coords[-1]]
+
#
# storage = FlatCAMRTreeStorage()
# storage.get_points = get_pts
@@ -1982,10 +1989,10 @@ class Geometry(object):
the geometry appropriately. This call ``scale()``. Don't call
it again in descendents.
- :param units: "IN" or "MM"
- :type units: str
- :return: Scaling factor resulting from unit change.
- :rtype: float
+ :param obj_units: "IN" or "MM"
+ :type obj_units: str
+ :return: Scaling factor resulting from unit change.
+ :rtype: float
"""
if obj_units.upper() == self.units.upper():
@@ -2013,8 +2020,8 @@ class Geometry(object):
Returns a representation of the object as a dictionary.
Attributes to include are listed in ``self.ser_attrs``.
- :return: A dictionary-encoded copy of the object.
- :rtype: dict
+ :return: A dictionary-encoded copy of the object.
+ :rtype: dict
"""
d = {}
for attr in self.ser_attrs:
@@ -2030,9 +2037,9 @@ class Geometry(object):
be present. Use only for deserializing saved
objects.
- :param d: Dictionary of attributes to set in the object.
- :type d: dict
- :return: None
+ :param d: Dictionary of attributes to set in the object.
+ :type d: dict
+ :return: None
"""
for attr in self.ser_attrs:
setattr(self, attr, d[attr])
@@ -2432,7 +2439,7 @@ class CNCjob(Geometry):
pp_geometry_name='default', pp_excellon_name='default',
depthpercut=0.1, z_pdepth=-0.02,
spindlespeed=None, spindledir='CW', dwell=True, dwelltime=1000,
- toolchangez=0.787402, toolchange_xy=[0.0, 0.0],
+ toolchangez=0.787402, toolchange_xy='0.0,0.0',
endz=2.0, endxy='',
segx=None,
segy=None,
@@ -2441,7 +2448,8 @@ class CNCjob(Geometry):
self.decimals = self.app.decimals
# Used when parsing G-code arcs
- self.steps_per_circle = int(self.app.defaults['cncjob_steps_per_circle'])
+ self.steps_per_circle = steps_per_circle if steps_per_circle is not None else \
+ int(self.app.defaults['cncjob_steps_per_circle'])
Geometry.__init__(self, geo_steps_per_circle=self.steps_per_circle)
@@ -2547,9 +2555,23 @@ class CNCjob(Geometry):
@property
def postdata(self):
+ """
+ This will return all the attributes of the class in the form of a dictionary
+
+ :return: Class attributes
+ :rtype: dict
+ """
return self.__dict__
def convert_units(self, units):
+ """
+ Will convert the parameters in the class that are relevant, from metric to imperial and reverse
+
+ :param units: FlatCAM units
+ :type units: str
+ :return: conversion factor
+ :rtype: float
+ """
log.debug("camlib.CNCJob.convert_units()")
factor = Geometry.convert_units(self, units)
@@ -2570,6 +2592,17 @@ class CNCjob(Geometry):
return self.doformat2(fun, **kwargs) + "\n"
def doformat2(self, fun, **kwargs):
+ """
+ This method will call one of the current preprocessor methods having as parameters all the attributes of
+ current class to which will add the kwargs parameters
+
+ :param fun: One of the methods inside the preprocessor classes which get loaded here in the 'p' object
+ :type fun: class 'function'
+ :param kwargs: keyword args which will update attributes of the current class
+ :type kwargs: dict
+ :return: Gcode line
+ :rtype: str
+ """
attributes = AttrDict()
attributes.update(self.postdata)
attributes.update(kwargs)
@@ -2581,6 +2614,16 @@ class CNCjob(Geometry):
return ''
def parse_custom_toolchange_code(self, data):
+ """
+ Will parse a text and get a toolchange sequence in text format suitable to be included in a Gcode file.
+ The '%' symbol is used to surround class variables name and must be removed in the returned string.
+ After that, the class variables (attributes) are replaced with the current values. The result is returned.
+
+ :param data: Toolchange sequence
+ :type data: str
+ :return: Processed toolchange sequence
+ :rtype: str
+ """
text = data
match_list = self.re_toolchange_custom.findall(text)
@@ -2612,6 +2655,13 @@ class CNCjob(Geometry):
[2, 3], [2, 4], [3, 4], [3, 3], [3, 2], [3, 1], [3, 0], [4, 0], [4, 1], [4, 2], [4, 3], [4, 4]]
>>> optimized_travelling_salesman([[0,0],[10,0],[6,0]])
[[0, 0], [6, 0], [10, 0]]
+
+ :param points: List of tuples with x, y coordinates
+ :type points: list
+ :param start: a tuple with a x,y coordinates of the start point
+ :type start: tuple
+ :return: List of points ordered in a optimized way
+ :rtype: list
"""
if start is None:
@@ -2627,16 +2677,17 @@ class CNCjob(Geometry):
def generate_from_excellon_by_tool(self, exobj, tools="all", use_ui=False):
"""
- Creates gcode for this object from an Excellon object
+ Creates Gcode for this object from an Excellon object
for the specified tools.
- :param exobj: Excellon object to process
- :type exobj: Excellon
- :param tools: Comma separated tool names
- :type: tools: str
- :param use_ui: Bool, if True the method will use parameters set in UI
- :return: None
- :rtype: None
+ :param exobj: Excellon object to process
+ :type exobj: Excellon
+ :param tools: Comma separated tool names
+ :type tools: str
+ :param use_ui: if True the method will use parameters set in UI
+ :type use_ui: bool
+ :return: None
+ :rtype: None
"""
# create a local copy of the exobj.drills so it can be used for creating drill CCode geometry
@@ -2667,8 +2718,12 @@ class CNCjob(Geometry):
if self.xy_toolchange == '':
self.xy_toolchange = None
else:
- self.xy_toolchange = [float(eval(a)) for a in self.xy_toolchange.split(",") if self.xy_toolchange != '']
- if self.xy_toolchange and len(self.xy_toolchange) < 2:
+ self.xy_toolchange = re.sub('[()\[\]]', '', str(self.xy_toolchange)) if self.xy_toolchange else None
+
+ if self.xy_toolchange and self.xy_toolchange != '':
+ self.xy_toolchange = [float(eval(a)) for a in self.xy_toolchange.split(",")]
+
+ if self.xy_toolchange and len(self.xy_toolchange) != 2:
self.app.inform.emit('[ERROR]%s' %
_("The Toolchange X,Y field in Edit -> Preferences has to be "
"in the format (x, y) \nbut now there is only one value, not two. "))
@@ -2677,7 +2732,11 @@ class CNCjob(Geometry):
log.debug("camlib.CNCJob.generate_from_excellon_by_tool() --> %s" % str(e))
pass
- self.xy_end = [float(eval(a)) for a in self.xy_end.split(",") if self.xy_end != '']
+ self.xy_end = re.sub('[()\[\]]', '', str(self.xy_end)) if self.xy_end else None
+
+ if self.xy_end and self.xy_end != '':
+ self.xy_end = [float(eval(a)) for a in self.xy_end.split(",")]
+
if self.xy_end and len(self.xy_end) < 2:
self.app.inform.emit('[ERROR] %s' % _("The End Move X,Y field in Edit -> Preferences has to be "
"in the format (x, y) but now there is only one value, not two."))
@@ -2689,7 +2748,7 @@ class CNCjob(Geometry):
log.debug("Creating CNC Job from Excellon...")
# Tools
-
+
# sort the tools list by the second item in tuple (here we have a dict with diameter of the tool)
# so we actually are sorting the tools by diameter
# sorted_tools = sorted(exobj.tools.items(), key=lambda t1: t1['C'])
@@ -2700,7 +2759,7 @@ class CNCjob(Geometry):
sorted_tools = sorted(sort, key=lambda t1: t1[1])
if tools == "all":
- tools = [i[0] for i in sorted_tools] # we get a array of ordered tools
+ tools = [i[0] for i in sorted_tools] # we get a array of ordered tools
log.debug("Tools 'all' and sorted are: %s" % str(tools))
else:
selected_tools = [x.strip() for x in tools.split(",")] # we strip spaces and also separate the tools by ','
@@ -2769,7 +2828,7 @@ class CNCjob(Geometry):
self.app.inform.emit(_("Creating a list of points to drill..."))
- # Points (Group by tool)
+ # Points (Group by tool): a dictionary of shapely Point geo elements grouped by tool number
points = {}
for drill in exobj.drills:
if self.app.abort_flag:
@@ -2784,6 +2843,17 @@ class CNCjob(Geometry):
# log.debug("Found %d drills." % len(points))
+ # check if there are drill points in the exclusion areas.
+ # If we find any within the exclusion areas return 'fail'
+ for tool in points:
+ for pt in points[tool]:
+ for area in self.app.exc_areas.exclusion_areas_storage:
+ pt_buf = pt.buffer(exobj.tools[tool]['C'] / 2.0)
+ if pt_buf.within(area['shape']) or pt_buf.intersects(area['shape']):
+ self.app.inform.emit("[ERROR_NOTCL] %s" % _("Failed. Drill points inside the exclusion zones."))
+ return 'fail'
+
+ # this holds the resulting GCode
self.gcode = []
self.f_plunge = self.app.defaults["excellon_f_plunge"]
@@ -3004,7 +3074,7 @@ class CNCjob(Geometry):
)
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- # APPLY Offset only when using the GUI, for TclCommand this will create an error
+ # APPLY Offset only when using the AppGUI, for TclCommand this will create an error
# because the values for Z offset are created in build_ui()
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
try:
@@ -3031,7 +3101,41 @@ class CNCjob(Geometry):
locx = locations[k][0]
locy = locations[k][1]
- gcode += self.doformat(p.rapid_code, x=locx, y=locy)
+ travels = self.app.exc_areas.travel_coordinates(start_point=(self.oldx, self.oldy),
+ end_point=(locx, locy),
+ tooldia=current_tooldia)
+ prev_z = None
+ for travel in travels:
+ locx = travel[1][0]
+ locy = travel[1][1]
+
+ if travel[0] is not None:
+ # move to next point
+ gcode += self.doformat(p.rapid_code, x=locx, y=locy)
+
+ # raise to safe Z (travel[0]) each time because safe Z may be different
+ self.z_move = travel[0]
+ gcode += self.doformat(p.lift_code, x=locx, y=locy)
+
+ # restore z_move
+ self.z_move = exobj.tools[tool]['data']['travelz']
+ else:
+ if prev_z is not None:
+ # move to next point
+ gcode += self.doformat(p.rapid_code, x=locx, y=locy)
+
+ # we assume that previously the z_move was altered therefore raise to
+ # the travel_z (z_move)
+ self.z_move = exobj.tools[tool]['data']['travelz']
+ gcode += self.doformat(p.lift_code, x=locx, y=locy)
+ else:
+ # move to next point
+ gcode += self.doformat(p.rapid_code, x=locx, y=locy)
+
+ # store prev_z
+ prev_z = travel[0]
+
+ # gcode += self.doformat(p.rapid_code, x=locx, y=locy)
if self.multidepth and abs(self.z_cut) > abs(self.z_depthpercut):
doc = deepcopy(self.z_cut)
@@ -3101,7 +3205,7 @@ class CNCjob(Geometry):
raise grace
self.tool = tool
- self.postdata['toolC']=exobj.tools[tool]["C"]
+ self.postdata['toolC'] = exobj.tools[tool]["C"]
self.tooldia = exobj.tools[tool]["C"]
if self.use_ui:
@@ -3223,7 +3327,7 @@ class CNCjob(Geometry):
)
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- # APPLY Offset only when using the GUI, for TclCommand this will create an error
+ # APPLY Offset only when using the AppGUI, for TclCommand this will create an error
# because the values for Z offset are created in build_ui()
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
try:
@@ -3249,7 +3353,41 @@ class CNCjob(Geometry):
locx = locations[k][0]
locy = locations[k][1]
- gcode += self.doformat(p.rapid_code, x=locx, y=locy)
+ travels = self.app.exc_areas.travel_coordinates(start_point=(self.oldx, self.oldy),
+ end_point=(locx, locy),
+ tooldia=current_tooldia)
+ prev_z = None
+ for travel in travels:
+ locx = travel[1][0]
+ locy = travel[1][1]
+
+ if travel[0] is not None:
+ # move to next point
+ gcode += self.doformat(p.rapid_code, x=locx, y=locy)
+
+ # raise to safe Z (travel[0]) each time because safe Z may be different
+ self.z_move = travel[0]
+ gcode += self.doformat(p.lift_code, x=locx, y=locy)
+
+ # restore z_move
+ self.z_move = exobj.tools[tool]['data']['travelz']
+ else:
+ if prev_z is not None:
+ # move to next point
+ gcode += self.doformat(p.rapid_code, x=locx, y=locy)
+
+ # we assume that previously the z_move was altered therefore raise to
+ # the travel_z (z_move)
+ self.z_move = exobj.tools[tool]['data']['travelz']
+ gcode += self.doformat(p.lift_code, x=locx, y=locy)
+ else:
+ # move to next point
+ gcode += self.doformat(p.rapid_code, x=locx, y=locy)
+
+ # store prev_z
+ prev_z = travel[0]
+
+ # gcode += self.doformat(p.rapid_code, x=locx, y=locy)
if self.multidepth and abs(self.z_cut) > abs(self.z_depthpercut):
doc = deepcopy(self.z_cut)
@@ -3387,7 +3525,7 @@ class CNCjob(Geometry):
)
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- # APPLY Offset only when using the GUI, for TclCommand this will create an error
+ # APPLY Offset only when using the AppGUI, for TclCommand this will create an error
# because the values for Z offset are created in build_ui()
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
try:
@@ -3418,7 +3556,41 @@ class CNCjob(Geometry):
locx = point[0]
locy = point[1]
- gcode += self.doformat(p.rapid_code, x=locx, y=locy)
+ travels = self.app.exc_areas.travel_coordinates(start_point=(self.oldx, self.oldy),
+ end_point=(locx, locy),
+ tooldia=current_tooldia)
+ prev_z = None
+ for travel in travels:
+ locx = travel[1][0]
+ locy = travel[1][1]
+
+ if travel[0] is not None:
+ # move to next point
+ gcode += self.doformat(p.rapid_code, x=locx, y=locy)
+
+ # raise to safe Z (travel[0]) each time because safe Z may be different
+ self.z_move = travel[0]
+ gcode += self.doformat(p.lift_code, x=locx, y=locy)
+
+ # restore z_move
+ self.z_move = exobj.tools[tool]['data']['travelz']
+ else:
+ if prev_z is not None:
+ # move to next point
+ gcode += self.doformat(p.rapid_code, x=locx, y=locy)
+
+ # we assume that previously the z_move was altered therefore raise to
+ # the travel_z (z_move)
+ self.z_move = exobj.tools[tool]['data']['travelz']
+ gcode += self.doformat(p.lift_code, x=locx, y=locy)
+ else:
+ # move to next point
+ gcode += self.doformat(p.rapid_code, x=locx, y=locy)
+
+ # store prev_z
+ prev_z = travel[0]
+
+ # gcode += self.doformat(p.rapid_code, x=locx, y=locy)
if self.multidepth and abs(self.z_cut) > abs(self.z_depthpercut):
doc = deepcopy(self.z_cut)
@@ -3577,7 +3749,11 @@ class CNCjob(Geometry):
self.startz = float(startz) if startz is not None else None
self.z_end = float(endz) if endz is not None else None
- self.xy_end = [float(eval(a)) for a in endxy.split(",") if endxy != '']
+ self.xy_end = re.sub('[()\[\]]', '', str(endxy)) if endxy else None
+
+ if self.xy_end and self.xy_end != '':
+ self.xy_end = [float(eval(a)) for a in self.xy_end.split(",")]
+
if self.xy_end and len(self.xy_end) < 2:
self.app.inform.emit('[ERROR] %s' % _("The End Move X,Y field in Edit -> Preferences has to be "
"in the format (x, y) but now there is only one value, not two."))
@@ -3595,7 +3771,11 @@ class CNCjob(Geometry):
if toolchangexy == '':
self.xy_toolchange = None
else:
- self.xy_toolchange = [float(eval(a)) for a in toolchangexy.split(",")]
+ self.xy_toolchange = re.sub('[()\[\]]', '', str(toolchangexy)) if toolchangexy else None
+
+ if self.xy_toolchange and self.xy_toolchange != '':
+ self.xy_toolchange = [float(eval(a)) for a in self.xy_toolchange.split(",")]
+
if len(self.xy_toolchange) < 2:
self.app.inform.emit('[ERROR] %s' % _("The Toolchange X,Y field in Edit -> Preferences has to be "
"in the format (x, y) \n"
@@ -3693,7 +3873,7 @@ class CNCjob(Geometry):
self.gcode = self.doformat(p.start_code)
- self.gcode += self.doformat(p.feedrate_code) # sets the feed rate
+ self.gcode += self.doformat(p.feedrate_code) # sets the feed rate
if toolchange is False:
self.gcode += self.doformat(p.lift_code, x=0, y=0) # Move (up) to travel height
@@ -3707,19 +3887,19 @@ class CNCjob(Geometry):
self.gcode += self.doformat(p.toolchange_code)
if 'laser' not in self.pp_geometry_name:
- self.gcode += self.doformat(p.spindle_code) # Spindle start
+ self.gcode += self.doformat(p.spindle_code) # Spindle start
else:
# for laser this will disable the laser
self.gcode += self.doformat(p.lift_code, x=self.oldx, y=self.oldy) # Move (up) to travel height
if self.dwell is True:
- self.gcode += self.doformat(p.dwell_code) # Dwell time
+ self.gcode += self.doformat(p.dwell_code) # Dwell time
else:
if 'laser' not in self.pp_geometry_name:
self.gcode += self.doformat(p.spindle_code) # Spindle start
if self.dwell is True:
- self.gcode += self.doformat(p.dwell_code) # Dwell time
+ self.gcode += self.doformat(p.dwell_code) # Dwell time
total_travel = 0.0
total_cut = 0.0
@@ -3766,7 +3946,9 @@ class CNCjob(Geometry):
# calculate the cut distance
total_cut = total_cut + geo.length
- self.gcode += self.create_gcode_single_pass(geo, extracut, extracut_length, tolerance,
+ self.gcode += self.create_gcode_single_pass(geo, current_tooldia, extracut, extracut_length,
+ tolerance,
+ z_move=z_move, postproc=p,
old_point=current_pt)
# --------- Multi-pass ---------
@@ -3781,14 +3963,16 @@ class CNCjob(Geometry):
total_cut += (geo.length * nr_cuts)
- self.gcode += self.create_gcode_multi_pass(geo, extracut, extracut_length, tolerance,
- postproc=p, old_point=current_pt)
+ self.gcode += self.create_gcode_multi_pass(geo, current_tooldia, extracut, extracut_length,
+ tolerance,
+ z_move=z_move, postproc=p,
+ old_point=current_pt)
# calculate the total distance
total_travel = total_travel + abs(distance(pt1=current_pt, pt2=pt))
current_pt = geo.coords[-1]
- pt, geo = storage.nearest(current_pt) # Next
+ pt, geo = storage.nearest(current_pt) # Next
disp_number = int(np.interp(path_count, [0, geo_len], [0, 100]))
if old_disp_number < disp_number <= 100:
@@ -3959,10 +4143,16 @@ class CNCjob(Geometry):
self.dwell = dwell
self.dwelltime = float(dwelltime) if dwelltime is not None else self.app.defaults["geometry_dwelltime"]
- self.startz = float(startz) if startz is not None else self.app.defaults["geometry_startz"]
+ self.startz = float(startz) if startz is not None and startz != '' else self.app.defaults["geometry_startz"]
+
self.z_end = float(endz) if endz is not None else self.app.defaults["geometry_endz"]
- self.xy_end = endxy if endxy != '' else self.app.defaults["geometry_endxy"]
- self.xy_end = [float(eval(a)) for a in self.xy_end.split(",") if self.xy_end != '']
+
+ self.xy_end = endxy if endxy != '' and endxy else self.app.defaults["geometry_endxy"]
+ self.xy_end = re.sub('[()\[\]]', '', str(self.xy_end)) if self.xy_end else None
+
+ if self.xy_end is not None and self.xy_end != '':
+ self.xy_end = [float(eval(a)) for a in self.xy_end.split(",")]
+
if self.xy_end and len(self.xy_end) < 2:
self.app.inform.emit('[ERROR] %s' % _("The End Move X,Y field in Edit -> Preferences has to be "
"in the format (x, y) but now there is only one value, not two."))
@@ -3978,7 +4168,11 @@ class CNCjob(Geometry):
if toolchangexy == '':
self.xy_toolchange = None
else:
- self.xy_toolchange = [float(eval(a)) for a in toolchangexy.split(",")]
+ self.xy_toolchange = re.sub('[()\[\]]', '', str(toolchangexy)) if self.xy_toolchange else None
+
+ if self.xy_toolchange and self.xy_toolchange != '':
+ self.xy_toolchange = [float(eval(a)) for a in self.xy_toolchange.split(",")]
+
if len(self.xy_toolchange) < 2:
self.app.inform.emit(
'[ERROR] %s' %
@@ -4074,20 +4268,24 @@ class CNCjob(Geometry):
# this is the tool diameter, it is used as such to accommodate the preprocessor who need the tool diameter
# given under the name 'toolC'
+ # this is a fancy way of adding a class attribute (which should be added in the __init__ method) without doing
+ # it there :)
self.postdata['toolC'] = self.tooldia
# Initial G-Code
self.pp_geometry = self.app.preprocessors[self.pp_geometry_name]
+
+ # the 'p' local attribute is a reference to the current preprocessor class
p = self.pp_geometry
self.oldx = 0.0
self.oldy = 0.0
self.gcode = self.doformat(p.start_code)
-
- self.gcode += self.doformat(p.feedrate_code) # sets the feed rate
+ self.gcode += self.doformat(p.feedrate_code) # sets the feed rate
if toolchange is False:
+ # all the x and y parameters in self.doformat() are used only by some preprocessors not by all
self.gcode += self.doformat(p.lift_code, x=self.oldx, y=self.oldy) # Move (up) to travel height
self.gcode += self.doformat(p.startz_code, x=self.oldx, y=self.oldy)
@@ -4099,19 +4297,19 @@ class CNCjob(Geometry):
self.gcode += self.doformat(p.toolchange_code)
if 'laser' not in self.pp_geometry_name:
- self.gcode += self.doformat(p.spindle_code) # Spindle start
+ self.gcode += self.doformat(p.spindle_code) # Spindle start
else:
# for laser this will disable the laser
self.gcode += self.doformat(p.lift_code, x=self.oldx, y=self.oldy) # Move (up) to travel height
if self.dwell is True:
- self.gcode += self.doformat(p.dwell_code) # Dwell time
+ self.gcode += self.doformat(p.dwell_code) # Dwell time
else:
if 'laser' not in self.pp_geometry_name:
self.gcode += self.doformat(p.spindle_code) # Spindle start
if self.dwell is True:
- self.gcode += self.doformat(p.dwell_code) # Dwell time
+ self.gcode += self.doformat(p.dwell_code) # Dwell time
total_travel = 0.0
total_cut = 0.0
@@ -4135,6 +4333,9 @@ class CNCjob(Geometry):
path_count = 0
current_pt = (0, 0)
pt, geo = storage.nearest(current_pt)
+
+ # when nothing is left in the storage a StopIteration exception will be raised therefore stopping
+ # the whole process including the infinite loop while True below.
try:
while True:
if self.app.abort_flag:
@@ -4155,7 +4356,9 @@ class CNCjob(Geometry):
if not multidepth:
# calculate the cut distance
total_cut += geo.length
- self.gcode += self.create_gcode_single_pass(geo, extracut, self.extracut_length, tolerance,
+ self.gcode += self.create_gcode_single_pass(geo, current_tooldia, extracut, self.extracut_length,
+ tolerance,
+ z_move=z_move, postproc=p,
old_point=current_pt)
# --------- Multi-pass ---------
@@ -4170,8 +4373,10 @@ class CNCjob(Geometry):
total_cut += (geo.length * nr_cuts)
- self.gcode += self.create_gcode_multi_pass(geo, extracut, self.extracut_length, tolerance,
- postproc=p, old_point=current_pt)
+ self.gcode += self.create_gcode_multi_pass(geo, current_tooldia, extracut, self.extracut_length,
+ tolerance,
+ z_move=z_move, postproc=p,
+ old_point=current_pt)
# calculate the travel distance
total_travel += abs(distance(pt1=current_pt, pt2=pt))
@@ -4179,6 +4384,7 @@ class CNCjob(Geometry):
pt, geo = storage.nearest(current_pt) # Next
+ # update the activity counter (lower left side of the app, status bar)
disp_number = int(np.interp(path_count, [0, geo_len], [0, 100]))
if old_disp_number < disp_number <= 100:
self.app.proc_container.update_view_text(' %d%%' % disp_number)
@@ -4393,27 +4599,76 @@ class CNCjob(Geometry):
gcode += self.doformat(p.lift_code)
return gcode
- def create_gcode_single_pass(self, geometry, extracut, extracut_length, tolerance, old_point=(0, 0)):
+ def create_gcode_single_pass(self, geometry, cdia, extracut, extracut_length, tolerance, z_move, postproc,
+ old_point=(0, 0)):
+ """
# G-code. Note: self.linear2gcode() and self.point2gcode() will lower and raise the tool every time.
+ :param geometry: A Shapely Geometry (LineString or LinearRing) which is the path to be cut
+ :type geometry: LineString, LinearRing
+ :param cdia: Tool diameter
+ :type cdia: float
+ :param extracut: Will add an extra cut over the point where start of the cut is met with the end cut
+ :type extracut: bool
+ :param extracut_length: The length of the extra cut: half before the meeting point, half after
+ :type extracut_length: float
+ :param tolerance: Tolerance used to simplify the paths (making them mre rough)
+ :type tolerance: float
+ :param z_move: Travel Z
+ :type z_move: float
+ :param postproc: Preprocessor class
+ :type postproc: class
+ :param old_point: Previous point
+ :type old_point: tuple
+ :return: Gcode
+ :rtype: str
+ """
+ # p = postproc
+
if type(geometry) == LineString or type(geometry) == LinearRing:
if extracut is False:
- gcode_single_pass = self.linear2gcode(geometry, tolerance=tolerance, old_point=old_point)
+ gcode_single_pass = self.linear2gcode(geometry, z_move=z_move, dia=cdia, tolerance=tolerance,
+ old_point=old_point)
else:
if geometry.is_ring:
gcode_single_pass = self.linear2gcode_extra(geometry, extracut_length, tolerance=tolerance,
+ z_move=z_move, dia=cdia,
old_point=old_point)
else:
- gcode_single_pass = self.linear2gcode(geometry, tolerance=tolerance, old_point=old_point)
+ gcode_single_pass = self.linear2gcode(geometry, tolerance=tolerance, z_move=z_move, dia=cdia,
+ old_point=old_point)
elif type(geometry) == Point:
- gcode_single_pass = self.point2gcode(geometry)
+ gcode_single_pass = self.point2gcode(geometry, dia=cdia, z_move=z_move, old_point=old_point)
else:
log.warning("G-code generation not implemented for %s" % (str(type(geometry))))
return
return gcode_single_pass
- def create_gcode_multi_pass(self, geometry, extracut, extracut_length, tolerance, postproc, old_point=(0, 0)):
+ def create_gcode_multi_pass(self, geometry, cdia, extracut, extracut_length, tolerance, postproc, z_move,
+ old_point=(0, 0)):
+ """
+
+ :param geometry: A Shapely Geometry (LineString or LinearRing) which is the path to be cut
+ :type geometry: LineString, LinearRing
+ :param cdia: Tool diameter
+ :type cdia: float
+ :param extracut: Will add an extra cut over the point where start of the cut is met with the end cut
+ :type extracut: bool
+ :param extracut_length: The length of the extra cut: half before the meeting point, half after
+ :type extracut_length: float
+ :param tolerance: Tolerance used to simplify the paths (making them mre rough)
+ :type tolerance: float
+ :param postproc: Preprocessor class
+ :type postproc: class
+ :param z_move: Travel Z
+ :type z_move: float
+ :param old_point: Previous point
+ :type old_point: tuple
+ :return: Gcode
+ :rtype: str
+ """
+ p = postproc
gcode_multi_pass = ''
@@ -4443,18 +4698,20 @@ class CNCjob(Geometry):
if type(geometry) == LineString or type(geometry) == LinearRing:
if extracut is False:
gcode_multi_pass += self.linear2gcode(geometry, tolerance=tolerance, z_cut=depth, up=False,
- old_point=old_point)
+ z_move=z_move, dia=cdia, old_point=old_point)
else:
if geometry.is_ring:
gcode_multi_pass += self.linear2gcode_extra(geometry, extracut_length, tolerance=tolerance,
- z_cut=depth, up=False, old_point=old_point)
+ dia=cdia, z_move=z_move, z_cut=depth, up=False,
+ old_point=old_point)
else:
gcode_multi_pass += self.linear2gcode(geometry, tolerance=tolerance, z_cut=depth, up=False,
+ dia=cdia, z_move=z_move,
old_point=old_point)
# Ignore multi-pass for points.
elif type(geometry) == Point:
- gcode_multi_pass += self.point2gcode(geometry, old_point=old_point)
+ gcode_multi_pass += self.point2gcode(geometry, dia=cdia, z_move=z_move, old_point=old_point)
break # Ignoring ...
else:
log.warning("G-code generation not implemented for %s" % (str(type(geometry))))
@@ -4470,7 +4727,7 @@ class CNCjob(Geometry):
geometry.coords = list(geometry.coords)[::-1]
# Lift the tool
- gcode_multi_pass += self.doformat(postproc.lift_code, x=old_point[0], y=old_point[1])
+ gcode_multi_pass += self.doformat(p.lift_code, x=old_point[0], y=old_point[1])
return gcode_multi_pass
def codes_split(self, gline):
@@ -4478,8 +4735,10 @@ class CNCjob(Geometry):
Parses a line of G-Code such as "G01 X1234 Y987" into
a dictionary: {'G': 1.0, 'X': 1234.0, 'Y': 987.0}
- :param gline: G-Code line string
- :return: Dictionary with parsed line.
+ :param gline: G-Code line string
+ :type gline: str
+ :return: Dictionary with parsed line.
+ :rtype: dict
"""
command = {}
@@ -4548,12 +4807,24 @@ class CNCjob(Geometry):
G-Code parser (from self.gcode). Generates dictionary with
single-segment LineString's and "kind" indicating cut or travel,
fast or feedrate speed.
+
+ Will return a dict in the format:
+ {
+ "geom": LineString(path),
+ "kind": kind
+ }
+ where kind can be either ["C", "F"] # T=travel, C=cut, F=fast, S=slow
+
+ :param force_parsing:
+ :type force_parsing:
+ :return:
+ :rtype: dict
"""
kind = ["C", "F"] # T=travel, C=cut, F=fast, S=slow
# Results go here
- geometry = []
+ geometry = []
# Last known instruction
current = {'X': 0.0, 'Y': 0.0, 'Z': 0.0, 'G': 0}
@@ -4561,15 +4832,25 @@ class CNCjob(Geometry):
# Current path: temporary storage until tool is
# lifted or lowered.
if self.toolchange_xy_type == "excellon":
- if self.app.defaults["excellon_toolchangexy"] == '':
+ if self.app.defaults["excellon_toolchangexy"] == '' or self.app.defaults["excellon_toolchangexy"] is None:
pos_xy = (0, 0)
else:
- pos_xy = [float(eval(a)) for a in self.app.defaults["excellon_toolchangexy"].split(",")]
+ pos_xy = self.app.defaults["excellon_toolchangexy"]
+ try:
+ pos_xy = [float(eval(a)) for a in pos_xy.split(",")]
+ except Exception:
+ if len(pos_xy) != 2:
+ pos_xy = (0, 0)
else:
- if self.app.defaults["geometry_toolchangexy"] == '':
+ if self.app.defaults["geometry_toolchangexy"] == '' or self.app.defaults["geometry_toolchangexy"] is None:
pos_xy = (0, 0)
else:
- pos_xy = [float(eval(a)) for a in self.app.defaults["geometry_toolchangexy"].split(",")]
+ pos_xy = self.app.defaults["geometry_toolchangexy"]
+ try:
+ pos_xy = [float(eval(a)) for a in pos_xy.split(",")]
+ except Exception:
+ if len(pos_xy) != 2:
+ pos_xy = (0, 0)
path = [pos_xy]
# path = [(0, 0)]
@@ -4636,7 +4917,7 @@ class CNCjob(Geometry):
kind = ['C', 'F']
geometry.append(
{
- "geom": Point(current_drill_point_coords).buffer(dia/2.0).exterior,
+ "geom": Point(current_drill_point_coords).buffer(dia / 2.0).exterior,
"kind": kind
}
)
@@ -4644,14 +4925,14 @@ class CNCjob(Geometry):
if 'G' in gobj:
current['G'] = int(gobj['G'])
-
+
if 'X' in gobj or 'Y' in gobj:
if 'X' in gobj:
x = gobj['X']
# current['X'] = x
else:
x = current['X']
-
+
if 'Y' in gobj:
y = gobj['Y']
else:
@@ -4670,7 +4951,7 @@ class CNCjob(Geometry):
arcdir = [None, None, "cw", "ccw"]
if current['G'] in [2, 3]: # arc
center = [gobj['I'] + current['X'], gobj['J'] + current['Y']]
- radius = np.sqrt(gobj['I']**2 + gobj['J']**2)
+ radius = np.sqrt(gobj['I'] ** 2 + gobj['J'] ** 2)
start = np.arctan2(-gobj['J'], -gobj['I'])
stop = np.arctan2(-center[1] + y, -center[0] + x)
path += arc(center, radius, start, stop, arcdir[current['G']], int(self.steps_per_circle))
@@ -4737,16 +5018,28 @@ class CNCjob(Geometry):
"""
Plots the G-code job onto the given axes.
- :param tooldia: Tool diameter.
- :param dpi: Not used!
- :param margin: Not used!
- :param color: Color specification.
- :param alpha: Transparency specification.
- :param tool_tolerance: Tolerance when drawing the toolshape.
- :param obj
- :param visible
- :param kind
- :return: None
+ :param tooldia: Tool diameter.
+ :type tooldia: float
+ :param dpi: Not used!
+ :type dpi: float
+ :param margin: Not used!
+ :type margin: float
+ :param gcode_parsed: Parsed Gcode
+ :type gcode_parsed: str
+ :param color: Color specification.
+ :type color: str
+ :param alpha: Transparency specification.
+ :type alpha: dict
+ :param tool_tolerance: Tolerance when drawing the toolshape.
+ :type tool_tolerance: float
+ :param obj: The object for whih to plot
+ :type obj: class
+ :param visible: Visibility status
+ :type visible: bool
+ :param kind: Can be: "travel", "cut", "all"
+ :type kind: str
+ :return: None
+ :rtype:
"""
# units = self.app.ui.general_defaults_form.general_app_group.units_radio.get_value().upper()
@@ -4799,14 +5092,27 @@ class CNCjob(Geometry):
# plot the geometry of Excellon objects
if self.origin_kind == 'excellon':
try:
- poly = Polygon(geo['geom'])
- except ValueError:
- # if the geos are travel lines it will enter into Exception
- poly = geo['geom'].buffer(distance=(tooldia / 1.99999999), resolution=self.steps_per_circle)
+ if geo['kind'][0] == 'T':
+ # if the geos are travel lines it will enter into Exception
+ poly = geo['geom'].buffer(distance=(tooldia / 1.99999999),
+ resolution=self.steps_per_circle)
+ else:
+ poly = Polygon(geo['geom'])
+
poly = poly.simplify(tool_tolerance)
except Exception:
# deal here with unexpected plot errors due of LineStrings not valid
continue
+
+ # try:
+ # poly = Polygon(geo['geom'])
+ # except ValueError:
+ # # if the geos are travel lines it will enter into Exception
+ # poly = geo['geom'].buffer(distance=(tooldia / 1.99999999), resolution=self.steps_per_circle)
+ # poly = poly.simplify(tool_tolerance)
+ # except Exception:
+ # # deal here with unexpected plot errors due of LineStrings not valid
+ # continue
else:
# plot the geometry of any objects other than Excellon
poly = geo['geom'].buffer(distance=(tooldia / 1.99999999), resolution=self.steps_per_circle)
@@ -4864,102 +5170,43 @@ class CNCjob(Geometry):
if geo['kind'][0] == 'C':
obj.add_shape(shape=poly, color=color['C'][1], face_color=color['C'][0],
visible=visible, layer=1)
- # current_x = gcode_parsed[0]['geom'].coords[0][0]
- # current_y = gcode_parsed[0]['geom'].coords[0][1]
- # old_pos = (
- # current_x,
- # current_y
- # )
- #
- # for geo in gcode_parsed:
- # if geo['kind'][0] == 'T':
- # current_position = (
- # geo['geom'].coords[0][0] + old_pos[0],
- # geo['geom'].coords[0][1] + old_pos[1]
- # )
- # if current_position not in pos:
- # pos.append(current_position)
- # path_num += 1
- # text.append(str(path_num))
- #
- # delta = (
- # geo['geom'].coords[-1][0] - geo['geom'].coords[0][0],
- # geo['geom'].coords[-1][1] - geo['geom'].coords[0][1]
- # )
- # current_position = (
- # current_position[0] + geo['geom'].coords[-1][0],
- # current_position[1] + geo['geom'].coords[-1][1]
- # )
- # if current_position not in pos:
- # pos.append(current_position)
- # path_num += 1
- # text.append(str(path_num))
- #
- # # plot the geometry of Excellon objects
- # if self.origin_kind == 'excellon':
- # if isinstance(geo['geom'], Point):
- # # if geo is Point
- # current_position = (
- # current_position[0] + geo['geom'].x,
- # current_position[1] + geo['geom'].y
- # )
- # poly = Polygon(Point(current_position))
- # elif isinstance(geo['geom'], LineString):
- # # if the geos are travel lines (LineStrings)
- # new_line_pts = []
- # old_line_pos = deepcopy(current_position)
- # for p in list(geo['geom'].coords):
- # current_position = (
- # current_position[0] + p[0],
- # current_position[1] + p[1]
- # )
- # new_line_pts.append(current_position)
- # old_line_pos = p
- # new_line = LineString(new_line_pts)
- #
- # poly = new_line.buffer(distance=(tooldia / 1.99999999), resolution=self.steps_per_circle)
- # poly = poly.simplify(tool_tolerance)
- # else:
- # # plot the geometry of any objects other than Excellon
- # new_line_pts = []
- # old_line_pos = deepcopy(current_position)
- # for p in list(geo['geom'].coords):
- # current_position = (
- # current_position[0] + p[0],
- # current_position[1] + p[1]
- # )
- # new_line_pts.append(current_position)
- # old_line_pos = p
- # new_line = LineString(new_line_pts)
- #
- # poly = new_line.buffer(distance=(tooldia / 1.99999999), resolution=self.steps_per_circle)
- # poly = poly.simplify(tool_tolerance)
- #
- # old_pos = deepcopy(current_position)
- #
- # if kind == 'all':
- # obj.add_shape(shape=poly, color=color[geo['kind'][0]][1], face_color=color[geo['kind'][0]][0],
- # visible=visible, layer=1 if geo['kind'][0] == 'C' else 2)
- # elif kind == 'travel':
- # if geo['kind'][0] == 'T':
- # obj.add_shape(shape=poly, color=color['T'][1], face_color=color['T'][0],
- # visible=visible, layer=2)
- # elif kind == 'cut':
- # if geo['kind'][0] == 'C':
- # obj.add_shape(shape=poly, color=color['C'][1], face_color=color['C'][0],
- # visible=visible, layer=1)
try:
- obj.annotation.set(text=text, pos=pos, visible=obj.options['plot'],
- font_size=self.app.defaults["cncjob_annotation_fontsize"],
- color=self.app.defaults["cncjob_annotation_fontcolor"])
- except Exception:
- pass
+ if self.app.defaults['global_theme'] == 'white':
+ obj.annotation.set(text=text, pos=pos, visible=obj.options['plot'],
+ font_size=self.app.defaults["cncjob_annotation_fontsize"],
+ color=self.app.defaults["cncjob_annotation_fontcolor"])
+ else:
+ # invert the color
+ old_color = self.app.defaults["cncjob_annotation_fontcolor"].lower()
+ new_color = ''
+ code = {}
+ l1 = "#;0123456789abcdef"
+ l2 = "#;fedcba9876543210"
+ for i in range(len(l1)):
+ code[l1[i]] = l2[i]
+
+ for x in range(len(old_color)):
+ new_color += code[old_color[x]]
+
+ obj.annotation.set(text=text, pos=pos, visible=obj.options['plot'],
+ font_size=self.app.defaults["cncjob_annotation_fontsize"],
+ color=new_color)
+ except Exception as e:
+ log.debug("CNCJob.plot2() --> annotations --> %s" % str(e))
def create_geometry(self):
- self.app.inform.emit('%s: %s' % (_("Unifying Geometry from parsed Geometry segments"),
- str(len(self.gcode_parsed))))
+ """
+ It is used by the Excellon objects. Will create the solid_geometry which will be an attribute of the
+ Excellon object class.
+
+ :return: List of Shapely geometry elements
+ :rtype: list
+ """
+
# TODO: This takes forever. Too much data?
+ # self.app.inform.emit('%s: %s' % (_("Unifying Geometry from parsed Geometry segments"),
+ # str(len(self.gcode_parsed))))
# self.solid_geometry = cascaded_union([geo['geom'] for geo in self.gcode_parsed])
# This is much faster but not so nice to look at as you can see different segments of the geometry
@@ -4967,10 +5214,15 @@ class CNCjob(Geometry):
return self.solid_geometry
- # code snippet added by Lei Zheng in a rejected pull request on FlatCAM https://bitbucket.org/realthunder/
def segment(self, coords):
"""
- break long linear lines to make it more auto level friendly
+ Break long linear lines to make it more auto level friendly.
+ Code snippet added by Lei Zheng in a rejected pull request on FlatCAM https://bitbucket.org/realthunder/
+
+ :param coords: List of coordinates tuples
+ :type coords: list
+ :return: A path; list with the multiple coordinates breaking a line.
+ :rtype: list
"""
if len(coords) < 2 or self.segx <= 0 and self.segy <= 0:
@@ -5022,7 +5274,7 @@ class CNCjob(Geometry):
return path
- def linear2gcode(self, linear, tolerance=0, down=True, up=True, z_cut=None, z_move=None, zdownrate=None,
+ def linear2gcode(self, linear, dia, tolerance=0, down=True, up=True, z_cut=None, z_move=None, zdownrate=None,
feedrate=None, feedrate_z=None, feedrate_rapid=None, cont=False, old_point=(0, 0)):
"""
@@ -5030,6 +5282,8 @@ class CNCjob(Geometry):
:param linear: The path to cut along.
:type: Shapely.LinearRing or Shapely.Linear String
+ :param dia: The tool diameter that is going on the path
+ :type dia: float
:param tolerance: All points in the simplified object will be within the
tolerance distance of the original geometry.
:type tolerance: float
@@ -5089,7 +5343,42 @@ class CNCjob(Geometry):
# Move fast to 1st point
if not cont:
- gcode += self.doformat(p.rapid_code, x=first_x, y=first_y) # Move to first point
+ current_tooldia = dia
+ travels = self.app.exc_areas.travel_coordinates(start_point=(old_point[0], old_point[1]),
+ end_point=(first_x, first_y),
+ tooldia=current_tooldia)
+ prev_z = None
+ for travel in travels:
+ locx = travel[1][0]
+ locy = travel[1][1]
+
+ if travel[0] is not None:
+ # move to next point
+ gcode += self.doformat(p.rapid_code, x=locx, y=locy)
+
+ # raise to safe Z (travel[0]) each time because safe Z may be different
+ self.z_move = travel[0]
+ gcode += self.doformat(p.lift_code, x=locx, y=locy)
+
+ # restore z_move
+ self.z_move = z_move
+ else:
+ if prev_z is not None:
+ # move to next point
+ gcode += self.doformat(p.rapid_code, x=locx, y=locy)
+
+ # we assume that previously the z_move was altered therefore raise to
+ # the travel_z (z_move)
+ self.z_move = z_move
+ gcode += self.doformat(p.lift_code, x=locx, y=locy)
+ else:
+ # move to next point
+ gcode += self.doformat(p.rapid_code, x=locx, y=locy)
+
+ # store prev_z
+ prev_z = travel[0]
+
+ # gcode += self.doformat(p.rapid_code, x=first_x, y=first_y) # Move to first point
# Move down to cutting depth
if down:
@@ -5128,7 +5417,7 @@ class CNCjob(Geometry):
gcode += self.doformat(p.lift_code, x=prev_x, y=prev_y, z_move=z_move) # Stop cutting
return gcode
- def linear2gcode_extra(self, linear, extracut_length, tolerance=0, down=True, up=True,
+ def linear2gcode_extra(self, linear, dia, extracut_length, tolerance=0, down=True, up=True,
z_cut=None, z_move=None, zdownrate=None,
feedrate=None, feedrate_z=None, feedrate_rapid=None, cont=False, old_point=(0, 0)):
"""
@@ -5137,6 +5426,8 @@ class CNCjob(Geometry):
:param linear: The path to cut along.
:type: Shapely.LinearRing or Shapely.Linear String
+ :param dia: The tool diameter that is going on the path
+ :type dia: float
:param extracut_length: how much to cut extra over the first point at the end of the path
:param tolerance: All points in the simplified object will be within the
tolerance distance of the original geometry.
@@ -5196,7 +5487,42 @@ class CNCjob(Geometry):
# Move fast to 1st point
if not cont:
- gcode += self.doformat(p.rapid_code, x=first_x, y=first_y) # Move to first point
+ current_tooldia = dia
+ travels = self.app.exc_areas.travel_coordinates(start_point=(old_point[0], old_point[1]),
+ end_point=(first_x, first_y),
+ tooldia=current_tooldia)
+ prev_z = None
+ for travel in travels:
+ locx = travel[1][0]
+ locy = travel[1][1]
+
+ if travel[0] is not None:
+ # move to next point
+ gcode += self.doformat(p.rapid_code, x=locx, y=locy)
+
+ # raise to safe Z (travel[0]) each time because safe Z may be different
+ self.z_move = travel[0]
+ gcode += self.doformat(p.lift_code, x=locx, y=locy)
+
+ # restore z_move
+ self.z_move = z_move
+ else:
+ if prev_z is not None:
+ # move to next point
+ gcode += self.doformat(p.rapid_code, x=locx, y=locy)
+
+ # we assume that previously the z_move was altered therefore raise to
+ # the travel_z (z_move)
+ self.z_move = z_move
+ gcode += self.doformat(p.lift_code, x=locx, y=locy)
+ else:
+ # move to next point
+ gcode += self.doformat(p.rapid_code, x=locx, y=locy)
+
+ # store prev_z
+ prev_z = travel[0]
+
+ # gcode += self.doformat(p.rapid_code, x=first_x, y=first_y) # Move to first point
# Move down to cutting depth
if down:
@@ -5362,7 +5688,20 @@ class CNCjob(Geometry):
return gcode
- def point2gcode(self, point, old_point=(0, 0)):
+ def point2gcode(self, point, dia, z_move=None, old_point=(0, 0)):
+ """
+
+ :param point: A Shapely Point
+ :type point: Point
+ :param dia: The tool diameter that is going on the path
+ :type dia: float
+ :param z_move: Travel Z
+ :type z_move: float
+ :param old_point: Old point coordinates from which we moved to the 'point'
+ :type old_point: tuple
+ :return: G-code to cut on the Point feature.
+ :rtype: str
+ """
gcode = ""
if self.app.abort_flag:
@@ -5386,7 +5725,42 @@ class CNCjob(Geometry):
first_x = path[0][0]
first_y = path[0][1]
- gcode += self.doformat(p.linear_code, x=first_x, y=first_y) # Move to first point
+ current_tooldia = dia
+ travels = self.app.exc_areas.travel_coordinates(start_point=(old_point[0], old_point[1]),
+ end_point=(first_x, first_y),
+ tooldia=current_tooldia)
+ prev_z = None
+ for travel in travels:
+ locx = travel[1][0]
+ locy = travel[1][1]
+
+ if travel[0] is not None:
+ # move to next point
+ gcode += self.doformat(p.rapid_code, x=locx, y=locy)
+
+ # raise to safe Z (travel[0]) each time because safe Z may be different
+ self.z_move = travel[0]
+ gcode += self.doformat(p.lift_code, x=locx, y=locy)
+
+ # restore z_move
+ self.z_move = z_move
+ else:
+ if prev_z is not None:
+ # move to next point
+ gcode += self.doformat(p.rapid_code, x=locx, y=locy)
+
+ # we assume that previously the z_move was altered therefore raise to
+ # the travel_z (z_move)
+ self.z_move = z_move
+ gcode += self.doformat(p.lift_code, x=locx, y=locy)
+ else:
+ # move to next point
+ gcode += self.doformat(p.rapid_code, x=locx, y=locy)
+
+ # store prev_z
+ prev_z = travel[0]
+
+ # gcode += self.doformat(p.linear_code, x=first_x, y=first_y) # Move to first point
if self.z_feedrate is not None:
gcode += self.doformat(p.z_feedrate_code)
@@ -5402,8 +5776,10 @@ class CNCjob(Geometry):
"""
Exports the CNC Job as a SVG Element
- :scale_factor: float
- :return: SVG Element string
+ :param scale_stroke_factor: A factor to scale the SVG geometry
+ :type scale_stroke_factor: float
+ :return: SVG Element string
+ :rtype: str
"""
# scale_factor is a multiplication factor for the SVG stroke-width used within shapely's svg export
# If not specified then try and use the tool diameter
@@ -5423,6 +5799,9 @@ class CNCjob(Geometry):
# This way we can add different formatting / colors to both
cuts = []
travels = []
+ cutsgeom = ''
+ travelsgeom = ''
+
for g in self.gcode_parsed:
if self.app.abort_flag:
# graceful abort requested by the user
@@ -5460,10 +5839,12 @@ class CNCjob(Geometry):
def bounds(self, flatten=None):
"""
- Returns coordinates of rectangular bounds
- of geometry: (xmin, ymin, xmax, ymax).
+ Returns coordinates of rectangular bounds of geometry: (xmin, ymin, xmax, ymax).
:param flatten: Not used, it is here for compatibility with base class method
+ :type flatten: bool
+ :return: Bounding values in format (xmin, ymin, xmax, ymax)
+ :rtype: tuple
"""
log.debug("camlib.CNCJob.bounds()")
@@ -5592,7 +5973,7 @@ class CNCjob(Geometry):
new_nr = float(nr) * xfactor
# replace the updated string
line = line.replace(nr, ('%.*f' % (self.app.defaults["cncjob_coords_decimals"], new_nr))
- )
+ )
# this scales all the X and Y and Z and F values and also the Tool Dia in the toolchange message
if header_stop is True:
@@ -5993,9 +6374,9 @@ def arc(center, radius, start, stop, direction, steps_per_circ):
stop += 2 * np.pi
if direction == "cw" and stop >= start:
stop -= 2 * np.pi
-
+
angle = abs(stop - start)
-
+
# angle = stop-start
steps = max([int(np.ceil(angle / (2 * np.pi) * steps_per_circ)), 2])
delta_angle = da_sign[direction] * angle * 1.0 / steps
@@ -6578,7 +6959,6 @@ class FlatCAMRTreeStorage(FlatCAMRTree):
tidx = super(FlatCAMRTreeStorage, self).nearest(pt)
return (tidx.bbox[0], tidx.bbox[1]), self.objects[tidx.object]
-
# class myO:
# def __init__(self, coords):
# self.coords = coords
diff --git a/defaults.py b/defaults.py
index ffd84874..833563cb 100644
--- a/defaults.py
+++ b/defaults.py
@@ -2,16 +2,16 @@ import os
import stat
import sys
from copy import deepcopy
-from FlatCAMCommon import LoudDict
+from Common import LoudDict
from camlib import to_dict, CNCjob, Geometry
import simplejson
import logging
import gettext
-import FlatCAMTranslation as fcTranslate
+import AppTranslation as fcTranslate
import builtins
-from flatcamParsers.ParseExcellon import Excellon
-from flatcamParsers.ParseGerber import Gerber
+from AppParsers.ParseExcellon import Excellon
+from AppParsers.ParseGerber import Gerber
fcTranslate.apply_language('strings')
if '_' not in builtins.__dict__:
@@ -43,6 +43,7 @@ class FlatCAMDefaults:
# General
"global_graphic_engine": '3D',
+ "global_hud": True,
"global_app_level": 'b',
"global_portable": False,
"global_language": 'English',
@@ -171,12 +172,6 @@ class FlatCAMDefaults:
"All Files (*.*)",
# Gerber Options
- "gerber_isotooldia": 0.1,
- "gerber_isopasses": 1,
- "gerber_isooverlap": 10,
- "gerber_milling_type": "cl",
- "gerber_combine_passes": False,
- "gerber_iso_scope": 'all',
"gerber_noncoppermargin": 0.1,
"gerber_noncopperrounded": False,
"gerber_bboxmargin": 0.1,
@@ -187,11 +182,6 @@ class FlatCAMDefaults:
"gerber_aperture_scale_factor": 1.0,
"gerber_aperture_buffer_factor": 0.0,
"gerber_follow": False,
- "gerber_tool_type": 'circular',
- "gerber_vtipdia": 0.1,
- "gerber_vtipangle": 30,
- "gerber_vcutz": -0.05,
- "gerber_iso_type": "full",
"gerber_buffering": "full",
"gerber_simplification": False,
"gerber_simp_tolerance": 0.0005,
@@ -222,6 +212,7 @@ class FlatCAMDefaults:
# Excellon General
"excellon_plot": True,
"excellon_solid": True,
+ "excellon_multicolored": False,
"excellon_format_upper_in": 2,
"excellon_format_lower_in": 4,
"excellon_format_upper_mm": 3,
@@ -263,6 +254,10 @@ class FlatCAMDefaults:
"excellon_tooldia": 0.8,
"excellon_slot_tooldia": 1.8,
"excellon_gcode_type": "drills",
+ "excellon_area_exclusion": False,
+ "excellon_area_shape": "polygon",
+ "excellon_area_strategy": "over",
+ "excellon_area_overz": 1.0,
# Excellon Advanced Options
"excellon_offset": 0.0,
@@ -306,6 +301,7 @@ class FlatCAMDefaults:
# Geometry General
"geometry_plot": True,
+ "geometry_multicolored": False,
"geometry_circle_steps": 64,
"geometry_cnctooldia": "2.4",
"geometry_plot_line": "#FF0000",
@@ -386,6 +382,28 @@ class FlatCAMDefaults:
"cncjob_annotation_fontsize": 9,
"cncjob_annotation_fontcolor": '#990000',
+ # Isolation Routing Tool
+ "tools_iso_tooldia": "0.1",
+ "tools_iso_order": 'rev',
+ "tools_iso_tool_type": 'C1',
+ "tools_iso_tool_vtipdia": 0.1,
+ "tools_iso_tool_vtipangle": 30,
+ "tools_iso_tool_cutz": -0.05,
+ "tools_iso_newdia": 0.1,
+
+ "tools_iso_passes": 1,
+ "tools_iso_overlap": 10,
+ "tools_iso_milling_type": "cl",
+ "tools_iso_follow": False,
+ "tools_iso_isotype": "full",
+
+ "tools_iso_rest": False,
+ "tools_iso_combine_passes": False,
+ "tools_iso_isoexcept": False,
+ "tools_iso_selection": _("All"),
+ "tools_iso_area_shape": "square",
+ "tools_iso_plotting": 'normal',
+
# NCC Tool
"tools_ncctools": "1.0, 0.5",
"tools_nccorder": 'rev',
@@ -400,13 +418,13 @@ class FlatCAMDefaults:
"tools_ncc_offset_value": 0.0000,
"tools_nccref": _('Itself'),
"tools_ncc_area_shape": "square",
- "tools_ncc_plotting": 'normal',
"tools_nccmilling_type": 'cl',
"tools_ncctool_type": 'C1',
"tools_ncccutz": -0.05,
"tools_ncctipdia": 0.1,
"tools_ncctipangle": 30,
"tools_nccnewdia": 0.1,
+ "tools_ncc_plotting": 'normal',
# Cutout Tool
"tools_cutouttooldia": 2.4,
@@ -425,7 +443,7 @@ class FlatCAMDefaults:
"tools_paintoverlap": 20,
"tools_paintmargin": 0.0,
"tools_paintmethod": _("Seed"),
- "tools_selectmethod": _("All Polygons"),
+ "tools_selectmethod": _("All"),
"tools_paint_area_shape": "square",
"tools_pathconnect": True,
"tools_paintcontour": True,
@@ -491,7 +509,7 @@ class FlatCAMDefaults:
"tools_transform_offset_x": 0.0,
"tools_transform_offset_y": 0.0,
"tools_transform_mirror_reference": False,
- "tools_transform_mirror_point": (0, 0),
+ "tools_transform_mirror_point": "0.0, 0.0",
"tools_transform_buffer_dis": 0.0,
"tools_transform_buffer_factor": 100.0,
"tools_transform_buffer_corner": True,
@@ -520,6 +538,12 @@ class FlatCAMDefaults:
# Distance Tool
"tools_dist_snap_center": False,
+ # Corner Markers Tool
+
+ "tools_corners_thickness": 0.1,
+ "tools_corners_length": 3.0,
+ "tools_corners_margin": 0.0,
+
# ########################################################################################################
# ################################ TOOLS 2 ###############################################################
# ########################################################################################################
@@ -693,13 +717,19 @@ class FlatCAMDefaults:
except Exception as e:
log.error("save_factory_defaults() -> %s" % str(e))
- def __init__(self):
+ def __init__(self, callback=lambda x: None):
+ """
+
+ :param callback: A method called each time that one of the values are changed in the self.defaults LouDict
+ """
self.defaults = LoudDict()
self.defaults.update(self.factory_defaults)
self.current_defaults = {} # copy used for restoring after cancelled prefs changes
self.current_defaults.update(self.factory_defaults)
self.old_defaults_found = False
+ self.defaults.set_change_callback(callback)
+
# #### Pass-through to the defaults LoudDict #####
def __len__(self):
return self.defaults.__len__()
diff --git a/flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py b/flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py
deleted file mode 100644
index 404f17ba..00000000
--- a/flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py
+++ /dev/null
@@ -1,187 +0,0 @@
-from PyQt5 import QtWidgets
-from PyQt5.QtCore import QSettings
-
-from flatcamGUI.GUIElements import FCDoubleSpinner, FCSpinner, RadioSet, FCCheckBox
-from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
-
-import gettext
-import FlatCAMTranslation as fcTranslate
-import builtins
-
-fcTranslate.apply_language('strings')
-if '_' not in builtins.__dict__:
- _ = gettext.gettext
-
-settings = QSettings("Open Source", "FlatCAM")
-if settings.contains("machinist"):
- machinist_setting = settings.value('machinist', type=int)
-else:
- machinist_setting = 0
-
-
-class GerberOptPrefGroupUI(OptionsGroupUI):
- def __init__(self, decimals=4, parent=None):
- # OptionsGroupUI.__init__(self, "Gerber Options Preferences", parent=parent)
- super(GerberOptPrefGroupUI, self).__init__(self, parent=parent)
-
- self.decimals = decimals
-
- self.setTitle(str(_("Gerber Options")))
-
- # ## Isolation Routing
- self.isolation_routing_label = QtWidgets.QLabel("%s:" % _("Isolation Routing"))
- self.isolation_routing_label.setToolTip(
- _("Create a Geometry object with\n"
- "toolpaths to cut outside polygons.")
- )
- self.layout.addWidget(self.isolation_routing_label)
-
- # Cutting Tool Diameter
- grid0 = QtWidgets.QGridLayout()
- self.layout.addLayout(grid0)
-
- tdlabel = QtWidgets.QLabel('%s:' % _('Tool dia'))
- tdlabel.setToolTip(
- _("Diameter of the cutting tool.")
- )
- grid0.addWidget(tdlabel, 0, 0)
- self.iso_tool_dia_entry = FCDoubleSpinner()
- self.iso_tool_dia_entry.set_precision(self.decimals)
- self.iso_tool_dia_entry.setSingleStep(0.1)
- self.iso_tool_dia_entry.set_range(-9999, 9999)
-
- grid0.addWidget(self.iso_tool_dia_entry, 0, 1)
-
- # Nr of passes
- passlabel = QtWidgets.QLabel('%s:' % _('# Passes'))
- passlabel.setToolTip(
- _("Width of the isolation gap in\n"
- "number (integer) of tool widths.")
- )
- self.iso_width_entry = FCSpinner()
- self.iso_width_entry.set_range(1, 999)
-
- grid0.addWidget(passlabel, 1, 0)
- grid0.addWidget(self.iso_width_entry, 1, 1)
-
- # Pass overlap
- overlabel = QtWidgets.QLabel('%s:' % _('Pass overlap'))
- overlabel.setToolTip(
- _("How much (percentage) of the tool width to overlap each tool pass.")
- )
- self.iso_overlap_entry = FCDoubleSpinner(suffix='%')
- self.iso_overlap_entry.set_precision(self.decimals)
- self.iso_overlap_entry.setWrapping(True)
- self.iso_overlap_entry.setRange(0.0000, 99.9999)
- self.iso_overlap_entry.setSingleStep(0.1)
-
- grid0.addWidget(overlabel, 2, 0)
- grid0.addWidget(self.iso_overlap_entry, 2, 1)
-
- # Isolation Scope
- self.iso_scope_label = QtWidgets.QLabel('%s:' % _('Scope'))
- self.iso_scope_label.setToolTip(
- _("Isolation scope. Choose what to isolate:\n"
- "- 'All' -> Isolate all the polygons in the object\n"
- "- 'Selection' -> Isolate a selection of polygons.")
- )
- self.iso_scope_radio = RadioSet([{'label': _('All'), 'value': 'all'},
- {'label': _('Selection'), 'value': 'single'}])
-
- grid0.addWidget(self.iso_scope_label, 3, 0)
- grid0.addWidget(self.iso_scope_radio, 3, 1, 1, 2)
-
- # Milling Type
- milling_type_label = QtWidgets.QLabel('%s:' % _('Milling Type'))
- milling_type_label.setToolTip(
- _("Milling type:\n"
- "- climb / best for precision milling and to reduce tool usage\n"
- "- conventional / useful when there is no backlash compensation")
- )
- grid0.addWidget(milling_type_label, 4, 0)
- self.milling_type_radio = RadioSet([{'label': _('Climb'), 'value': 'cl'},
- {'label': _('Conventional'), 'value': 'cv'}])
- grid0.addWidget(self.milling_type_radio, 4, 1)
-
- # Combine passes
- self.combine_passes_cb = FCCheckBox(label=_('Combine Passes'))
- self.combine_passes_cb.setToolTip(
- _("Combine all passes into one object")
- )
- grid0.addWidget(self.combine_passes_cb, 5, 0, 1, 2)
-
- separator_line = QtWidgets.QFrame()
- separator_line.setFrameShape(QtWidgets.QFrame.HLine)
- separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
- grid0.addWidget(separator_line, 6, 0, 1, 2)
-
- # ## Clear non-copper regions
- self.clearcopper_label = QtWidgets.QLabel("%s:" % _("Non-copper regions"))
- self.clearcopper_label.setToolTip(
- _("Create polygons covering the\n"
- "areas without copper on the PCB.\n"
- "Equivalent to the inverse of this\n"
- "object. Can be used to remove all\n"
- "copper from a specified region.")
- )
- self.layout.addWidget(self.clearcopper_label)
-
- grid1 = QtWidgets.QGridLayout()
- self.layout.addLayout(grid1)
-
- # Margin
- bmlabel = QtWidgets.QLabel('%s:' % _('Boundary Margin'))
- bmlabel.setToolTip(
- _("Specify the edge of the PCB\n"
- "by drawing a box around all\n"
- "objects with this minimum\n"
- "distance.")
- )
- grid1.addWidget(bmlabel, 0, 0)
- self.noncopper_margin_entry = FCDoubleSpinner()
- self.noncopper_margin_entry.set_precision(self.decimals)
- self.noncopper_margin_entry.setSingleStep(0.1)
- self.noncopper_margin_entry.set_range(-9999, 9999)
- grid1.addWidget(self.noncopper_margin_entry, 0, 1)
-
- # Rounded corners
- self.noncopper_rounded_cb = FCCheckBox(label=_("Rounded Geo"))
- self.noncopper_rounded_cb.setToolTip(
- _("Resulting geometry will have rounded corners.")
- )
- grid1.addWidget(self.noncopper_rounded_cb, 1, 0, 1, 2)
-
- separator_line = QtWidgets.QFrame()
- separator_line.setFrameShape(QtWidgets.QFrame.HLine)
- separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
- grid1.addWidget(separator_line, 2, 0, 1, 2)
-
- # ## Bounding box
- self.boundingbox_label = QtWidgets.QLabel('%s:' % _('Bounding Box'))
- self.layout.addWidget(self.boundingbox_label)
-
- grid2 = QtWidgets.QGridLayout()
- self.layout.addLayout(grid2)
-
- bbmargin = QtWidgets.QLabel('%s:' % _('Boundary Margin'))
- bbmargin.setToolTip(
- _("Distance of the edges of the box\n"
- "to the nearest polygon.")
- )
- self.bbmargin_entry = FCDoubleSpinner()
- self.bbmargin_entry.set_precision(self.decimals)
- self.bbmargin_entry.setSingleStep(0.1)
- self.bbmargin_entry.set_range(-9999, 9999)
-
- grid2.addWidget(bbmargin, 0, 0)
- grid2.addWidget(self.bbmargin_entry, 0, 1)
-
- self.bbrounded_cb = FCCheckBox(label='%s' % _("Rounded Geo"))
- self.bbrounded_cb.setToolTip(
- _("If the bounding box is \n"
- "to have rounded corners\n"
- "their radius is equal to\n"
- "the margin.")
- )
- grid2.addWidget(self.bbrounded_cb, 1, 0, 1, 2)
- self.layout.addStretch()
diff --git a/flatcamTools/__init__.py b/flatcamTools/__init__.py
deleted file mode 100644
index bdd7e58b..00000000
--- a/flatcamTools/__init__.py
+++ /dev/null
@@ -1,43 +0,0 @@
-import sys
-
-from flatcamTools.ToolCalculators import ToolCalculator
-from flatcamTools.ToolCalibration import ToolCalibration
-from flatcamTools.ToolCutOut import CutOut
-
-from flatcamTools.ToolDblSided import DblSidedTool
-from flatcamTools.ToolExtractDrills import ToolExtractDrills
-from flatcamTools.ToolAlignObjects import AlignObjects
-
-from flatcamTools.ToolFilm import Film
-
-from flatcamTools.ToolImage import ToolImage
-
-from flatcamTools.ToolDistance import Distance
-from flatcamTools.ToolDistanceMin import DistanceMin
-
-from flatcamTools.ToolMove import ToolMove
-
-from flatcamTools.ToolNCC import NonCopperClear
-from flatcamTools.ToolPaint import ToolPaint
-
-from flatcamTools.ToolOptimal import ToolOptimal
-
-from flatcamTools.ToolPanelize import Panelize
-from flatcamTools.ToolPcbWizard import PcbWizard
-from flatcamTools.ToolPDF import ToolPDF
-from flatcamTools.ToolProperties import Properties
-
-from flatcamTools.ToolQRCode import QRCode
-from flatcamTools.ToolRulesCheck import RulesCheck
-
-from flatcamTools.ToolCopperThieving import ToolCopperThieving
-from flatcamTools.ToolFiducials import ToolFiducials
-
-from flatcamTools.ToolShell import FCShell
-from flatcamTools.ToolSolderPaste import SolderPaste
-from flatcamTools.ToolSub import ToolSub
-
-from flatcamTools.ToolTransform import ToolTransform
-from flatcamTools.ToolPunchGerber import ToolPunchGerber
-
-from flatcamTools.ToolInvertGerber import ToolInvertGerber
diff --git a/locale/de/LC_MESSAGES/strings.mo b/locale/de/LC_MESSAGES/strings.mo
index 22400a33..6b860729 100644
Binary files a/locale/de/LC_MESSAGES/strings.mo and b/locale/de/LC_MESSAGES/strings.mo differ
diff --git a/locale/de/LC_MESSAGES/strings.po b/locale/de/LC_MESSAGES/strings.po
index 17d6af72..b8e0d53e 100644
--- a/locale/de/LC_MESSAGES/strings.po
+++ b/locale/de/LC_MESSAGES/strings.po
@@ -1,15 +1,15 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
-"POT-Creation-Date: 2020-05-03 15:59+0300\n"
-"PO-Revision-Date: 2020-05-03 16:02+0300\n"
+"POT-Creation-Date: 2020-05-19 02:25+0300\n"
+"PO-Revision-Date: 2020-05-19 02:25+0300\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 2.2.4\n"
+"X-Generator: Poedit 2.3.1\n"
"X-Poedit-Basepath: ../../..\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Poedit-SearchPath-0: .\n"
@@ -17,17 +17,16911 @@ msgstr ""
"X-Poedit-SearchPathExcluded-1: doc\n"
"X-Poedit-SearchPathExcluded-2: tests\n"
-#: FlatCAMApp.py:491
+#: AppDatabase.py:86
+msgid "Add Geometry Tool in DB"
+msgstr "Geometriewerkzeug in DB hinzufügen"
+
+#: AppDatabase.py:88 AppDatabase.py:1643
+msgid ""
+"Add a new tool in the Tools Database.\n"
+"It will be used in the Geometry UI.\n"
+"You can edit it after it is added."
+msgstr ""
+"Fügen Sie der Werkzeugdatenbank ein neues Werkzeug hinzu\n"
+"Es wird in der Geometrie-Benutzeroberfläche verwendet.\n"
+"Danach können Sie es modifizieren."
+
+#: AppDatabase.py:102 AppDatabase.py:1657
+msgid "Delete Tool from DB"
+msgstr "Werkzeug aus DB löschen"
+
+#: AppDatabase.py:104 AppDatabase.py:1659
+msgid "Remove a selection of tools in the Tools Database."
+msgstr "Eine Auswahl von Werkzeugen aus der Werkzeugdatenbank entfernen."
+
+#: AppDatabase.py:108 AppDatabase.py:1663
+msgid "Export DB"
+msgstr "DB exportieren"
+
+#: AppDatabase.py:110 AppDatabase.py:1665
+msgid "Save the Tools Database to a custom text file."
+msgstr "Werkzeugdatenbank als Textdatei speichern."
+
+#: AppDatabase.py:114 AppDatabase.py:1669
+msgid "Import DB"
+msgstr "Importieren Sie DB"
+
+#: AppDatabase.py:116 AppDatabase.py:1671
+msgid "Load the Tools Database information's from a custom text file."
+msgstr "Werkzeugdatenbank aus einer Textdatei importieren."
+
+#: AppDatabase.py:120 AppDatabase.py:1681
+msgid "Add Tool from Tools DB"
+msgstr "Werkzeug aus Werkzeugdatenbank hinzufügen"
+
+#: AppDatabase.py:122 AppDatabase.py:1683
+msgid ""
+"Add a new tool in the Tools Table of the\n"
+"active Geometry object after selecting a tool\n"
+"in the Tools Database."
+msgstr ""
+"Fügen Sie ein neues Werkzeug in die Werkzeugtabelle der\n"
+"aktiven Geometrie hinzu, nachdem Sie das Werkzeug in\n"
+"der Werkzeugdatenbank ausgewählt haben."
+
+#: AppDatabase.py:128 AppDatabase.py:1689 AppGUI/MainGUI.py:1347
+#: AppGUI/preferences/PreferencesUIManager.py:942 App_Main.py:2203
+#: App_Main.py:3054 App_Main.py:3928 App_Main.py:4279 App_Main.py:6338
+msgid "Cancel"
+msgstr "Abbrechen"
+
+#: AppDatabase.py:158 AppDatabase.py:833 AppDatabase.py:1087
+msgid "Tool Name"
+msgstr "Werkzeugname"
+
+#: AppDatabase.py:159 AppDatabase.py:835 AppDatabase.py:1100
+#: AppEditors/FlatCAMExcEditor.py:1604 AppGUI/ObjectUI.py:1447
+#: AppGUI/ObjectUI.py:1685
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:132
+#: AppTools/ToolNCC.py:278 AppTools/ToolNCC.py:287 AppTools/ToolPaint.py:260
+msgid "Tool Dia"
+msgstr "Werkzeugdurchm"
+
+#: AppDatabase.py:160 AppDatabase.py:837 AppDatabase.py:1281
+#: AppGUI/ObjectUI.py:1660
+msgid "Tool Offset"
+msgstr "Werkzeugversatz"
+
+#: AppDatabase.py:161 AppDatabase.py:839 AppDatabase.py:1298
+msgid "Custom Offset"
+msgstr "Selbstdefinierter Werkzeugversatz"
+
+#: AppDatabase.py:162 AppDatabase.py:841 AppDatabase.py:1265
+#: AppGUI/ObjectUI.py:309
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:67
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:53
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:62
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:72 AppTools/ToolNCC.py:213
+#: AppTools/ToolNCC.py:227 AppTools/ToolPaint.py:195
+msgid "Tool Type"
+msgstr "Werkzeugtyp"
+
+#: AppDatabase.py:163 AppDatabase.py:843 AppDatabase.py:1113
+msgid "Tool Shape"
+msgstr "Werkzeugform"
+
+#: AppDatabase.py:164 AppDatabase.py:846 AppDatabase.py:1129
+#: AppGUI/ObjectUI.py:350 AppGUI/ObjectUI.py:900 AppGUI/ObjectUI.py:1805
+#: AppGUI/ObjectUI.py:2466
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:93
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:48
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:107
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:78
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:58
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:105
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:113
+#: AppTools/ToolCalculators.py:114 AppTools/ToolCutOut.py:138
+#: AppTools/ToolNCC.py:260 AppTools/ToolNCC.py:268 AppTools/ToolPaint.py:242
+msgid "Cut Z"
+msgstr "Schnitttiefe Z"
+
+#: AppDatabase.py:165 AppDatabase.py:848 AppDatabase.py:1143
+msgid "MultiDepth"
+msgstr "Mehrfache Durchgänge"
+
+# Abbrev. unclear: Depth Per Pass?
+# Perhaps better not translate
+#: AppDatabase.py:166 AppDatabase.py:850 AppDatabase.py:1156
+msgid "DPP"
+msgstr "DPP"
+
+#: AppDatabase.py:167 AppDatabase.py:852 AppDatabase.py:1312
+msgid "V-Dia"
+msgstr "V-Durchm."
+
+#: AppDatabase.py:168 AppDatabase.py:854 AppDatabase.py:1326
+msgid "V-Angle"
+msgstr "Winkel der V-Form"
+
+#: AppDatabase.py:169 AppDatabase.py:856 AppDatabase.py:1170
+#: AppGUI/ObjectUI.py:946 AppGUI/ObjectUI.py:1852
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:134
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:101
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:61
+#: AppObjects/FlatCAMExcellon.py:1396 AppObjects/FlatCAMGeometry.py:1660
+#: AppTools/ToolCalibration.py:74
+msgid "Travel Z"
+msgstr "Bewegungshöhe Z (Travel)"
+
+# I think this is FeedRate XY
+#: AppDatabase.py:170 AppDatabase.py:858
+msgid "FR"
+msgstr "Vorschub (XY)"
+
+#: AppDatabase.py:171 AppDatabase.py:860
+msgid "FR Z"
+msgstr "Vorschub (Z)"
+
+#: AppDatabase.py:172 AppDatabase.py:862 AppDatabase.py:1340
+msgid "FR Rapids"
+msgstr "Vorschub ohne Last"
+
+#: AppDatabase.py:173 AppDatabase.py:864 AppDatabase.py:1213
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:222
+msgid "Spindle Speed"
+msgstr "Drehgeschwindigkeit"
+
+#: AppDatabase.py:174 AppDatabase.py:866 AppDatabase.py:1228
+#: AppGUI/ObjectUI.py:1064 AppGUI/ObjectUI.py:1959
+msgid "Dwell"
+msgstr "Warten zum Beschleunigen"
+
+#: AppDatabase.py:175 AppDatabase.py:868 AppDatabase.py:1241
+msgid "Dwelltime"
+msgstr "Wartezeit zum Beschleunigen"
+
+#: AppDatabase.py:176 AppDatabase.py:870 AppGUI/ObjectUI.py:2116
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:257
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:254
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:237
+#: AppTools/ToolSolderPaste.py:335
+msgid "Preprocessor"
+msgstr "Postprozessor"
+
+#: AppDatabase.py:177 AppDatabase.py:872 AppDatabase.py:1356
+msgid "ExtraCut"
+msgstr "Zusätzlicher Schnitt"
+
+#: AppDatabase.py:178 AppDatabase.py:874 AppDatabase.py:1371
+msgid "E-Cut Length"
+msgstr "Extra Schnittlänge"
+
+#: AppDatabase.py:179 AppDatabase.py:876
+msgid "Toolchange"
+msgstr "Werkzeugwechsel"
+
+#: AppDatabase.py:180 AppDatabase.py:878
+msgid "Toolchange XY"
+msgstr "Werkzeugwechsel XY"
+
+#: AppDatabase.py:181 AppDatabase.py:880
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:160
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:131
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:98
+#: AppTools/ToolCalibration.py:111
+msgid "Toolchange Z"
+msgstr "Werkzeugwechsel Z"
+
+#: AppDatabase.py:182 AppDatabase.py:882 AppGUI/ObjectUI.py:1193
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:69
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:54
+msgid "Start Z"
+msgstr "Start Z"
+
+#: AppDatabase.py:183 AppDatabase.py:885
+msgid "End Z"
+msgstr "Ende Z"
+
+#: AppDatabase.py:187
+msgid "Tool Index."
+msgstr "Werkzeugverzeichnis."
+
+#: AppDatabase.py:189 AppDatabase.py:1089
+msgid ""
+"Tool name.\n"
+"This is not used in the app, it's function\n"
+"is to serve as a note for the user."
+msgstr ""
+"Werkzeugname\n"
+"Wird in der App nicht verwendet,\n"
+"sondern dient als Kommentar für den Nutzer."
+
+#: AppDatabase.py:193 AppDatabase.py:1102
+msgid "Tool Diameter."
+msgstr "Werkzeugdurchmesser."
+
+#: AppDatabase.py:195 AppDatabase.py:1283
+msgid ""
+"Tool Offset.\n"
+"Can be of a few types:\n"
+"Path = zero offset\n"
+"In = offset inside by half of tool diameter\n"
+"Out = offset outside by half of tool diameter\n"
+"Custom = custom offset using the Custom Offset value"
+msgstr ""
+"Werkzeug Offest.\n"
+"Folgende Typen sind erlaubt:\n"
+"Path: kein Offset\n"
+"In: Offset einen halben Werkzeugdurchmesser innerhalb.\n"
+"Out: Offset einen halben Werkzeugdurchmesser ausserhalb\n"
+"Custom: selbstdefinierter Wert im Feld \"Selbstdefinierter Offset\""
+
+#: AppDatabase.py:202 AppDatabase.py:1300
+msgid ""
+"Custom Offset.\n"
+"A value to be used as offset from the current path."
+msgstr ""
+"Selbstdefinierter Offset.\n"
+"Ein Wert der als Offset zum aktellen Pfad hinzugefügt wird."
+
+#: AppDatabase.py:205 AppDatabase.py:1267
+msgid ""
+"Tool Type.\n"
+"Can be:\n"
+"Iso = isolation cut\n"
+"Rough = rough cut, low feedrate, multiple passes\n"
+"Finish = finishing cut, high feedrate"
+msgstr ""
+"Werkzeugart.\n"
+"Erlaubt sind:\n"
+"Iso: Isolationsschnitte\n"
+"Rough: Roughen, um viel Material abzutragen, geringer Vorschub, viele "
+"Durchgänge\n"
+"Finish: Finishing, hoher Vorschub"
+
+#: AppDatabase.py:211 AppDatabase.py:1115
+msgid ""
+"Tool Shape. \n"
+"Can be:\n"
+"C1 ... C4 = circular tool with x flutes\n"
+"B = ball tip milling tool\n"
+"V = v-shape milling tool"
+msgstr ""
+"Werkzeugform.\n"
+"Erlaubt sind:\n"
+"C1 … C4: Runde Form mit x Schneiden\n"
+"B: Kugelförmig\n"
+"V: V-Förmig"
+
+#: AppDatabase.py:217 AppDatabase.py:1131
+msgid ""
+"Cutting Depth.\n"
+"The depth at which to cut into material."
+msgstr ""
+"Schneidtiefe.\n"
+"Eindringtiefe in das Material."
+
+# MultiDepth is hard to translate, cause it is somewhat artificial. If you need to abbreviate perhaps "MehrfDurchg" could suffice, but stays ugly.
+#: AppDatabase.py:220 AppDatabase.py:1145
+msgid ""
+"Multi Depth.\n"
+"Selecting this will allow cutting in multiple passes,\n"
+"each pass adding a DPP parameter depth."
+msgstr ""
+"Mehrfache Durchgänge.\n"
+"Wenn ausgewählt wird der Schnitt in mehreren Stufen\n"
+"durchgeführt. Die Schnitttiefe jedes Schnittes ist in DPP angegeben."
+
+#: AppDatabase.py:224 AppDatabase.py:1158
+msgid ""
+"DPP. Depth per Pass.\n"
+"The value used to cut into material on each pass."
+msgstr ""
+"DPP: Tiefe pro Schnitt. Definiert die einzelne Schnitttiefe in mehrfachen "
+"Durchgängen."
+
+#: AppDatabase.py:227 AppDatabase.py:1314
+msgid ""
+"V-Dia.\n"
+"Diameter of the tip for V-Shape Tools."
+msgstr ""
+"V-Durchmesser.\n"
+"Durchmesser der Spitze eines V-Förmigen Werkzeugs."
+
+# Typo in english? V-Angle, missing n?
+#: AppDatabase.py:230 AppDatabase.py:1328
+msgid ""
+"V-Agle.\n"
+"Angle at the tip for the V-Shape Tools."
+msgstr ""
+"V-Winkel.\n"
+"Öffnungswinkel an der Spitze eine V-Förmigen Werkzeugs."
+
+#: AppDatabase.py:233 AppDatabase.py:1172
+msgid ""
+"Clearance Height.\n"
+"Height at which the milling bit will travel between cuts,\n"
+"above the surface of the material, avoiding all fixtures."
+msgstr ""
+"Freilauf Höhe.\n"
+"Die Höhe in der das Fräswerkzeug sich zwischen den Schnitten \n"
+"frei bewegen kann ohne auf Hindernisse zu stossen."
+
+#: AppDatabase.py:237
+msgid ""
+"FR. Feedrate\n"
+"The speed on XY plane used while cutting into material."
+msgstr ""
+"FR: Feedrate\n"
+"Geschwindkeit beim fräsen. Angegeben in cm pro Minute."
+
+#: AppDatabase.py:240
+msgid ""
+"FR Z. Feedrate Z\n"
+"The speed on Z plane."
+msgstr ""
+"FR Z: Feedrate Z:\n"
+"Geschwindigkeit beim Fräsen in Z-Richtung."
+
+#: AppDatabase.py:243 AppDatabase.py:1342
+msgid ""
+"FR Rapids. Feedrate Rapids\n"
+"Speed used while moving as fast as possible.\n"
+"This is used only by some devices that can't use\n"
+"the G0 g-code command. Mostly 3D printers."
+msgstr ""
+"FR Rapids: Feedrate ohne Last\n"
+"Geschwindigkeit die ohne Last gefahren werden kann.\n"
+"Wird benutzt bei Geräten die das G0 Kommando nicht \n"
+"unterstützen (oft 3D Drucker)."
+
+#: AppDatabase.py:248 AppDatabase.py:1215
+msgid ""
+"Spindle Speed.\n"
+"If it's left empty it will not be used.\n"
+"The speed of the spindle in RPM."
+msgstr ""
+"Drehzahl.\n"
+"Drehzahl des Fräsmotors in U/min.\n"
+"Wird nicht benutzt, wenn leer."
+
+#: AppDatabase.py:252 AppDatabase.py:1230
+msgid ""
+"Dwell.\n"
+"Check this if a delay is needed to allow\n"
+"the spindle motor to reach it's set speed."
+msgstr ""
+"Verweilen.\n"
+"Überprüfen Sie dies, wenn eine Verzögerung erforderlich ist\n"
+"Der Spindelmotor erreicht die eingestellte Drehzahl."
+
+#: AppDatabase.py:256 AppDatabase.py:1243
+msgid ""
+"Dwell Time.\n"
+"A delay used to allow the motor spindle reach it's set speed."
+msgstr ""
+"Verweilzeit.\n"
+"Eine Verzögerung, mit der die Motorspindel ihre eingestellte Drehzahl "
+"erreicht."
+
+#: AppDatabase.py:259
+msgid ""
+"Preprocessor.\n"
+"A selection of files that will alter the generated G-code\n"
+"to fit for a number of use cases."
+msgstr ""
+"Präprozessor.\n"
+"Diese Dateien werden den erzeugten G-Code modifizieren\n"
+"um eine große Anzahl Anwendungsmöglichkeiten zu unterstützen."
+
+#: AppDatabase.py:263 AppDatabase.py:1358
+msgid ""
+"Extra Cut.\n"
+"If checked, after a isolation is finished an extra cut\n"
+"will be added where the start and end of isolation meet\n"
+"such as that this point is covered by this extra cut to\n"
+"ensure a complete isolation."
+msgstr ""
+"Zusatzschnitt.\n"
+"Wenn gewählt, wird nach dem Isolationsschnitt ein Zusatzschnitt\n"
+"durchgeführt, um Start und Endpunkt definitiv zu verbinden und \n"
+"so eine vollständige Isolation zu gewährleisten."
+
+#: AppDatabase.py:269 AppDatabase.py:1373
+msgid ""
+"Extra Cut length.\n"
+"If checked, after a isolation is finished an extra cut\n"
+"will be added where the start and end of isolation meet\n"
+"such as that this point is covered by this extra cut to\n"
+"ensure a complete isolation. This is the length of\n"
+"the extra cut."
+msgstr ""
+"Zusatzschnitt.\n"
+"Wenn gewählt, wird nach dem Isolationsschnitt ein Zusatzschnitt\n"
+"durchgeführt, um Start und Endpunkt definitiv zu verbinden und \n"
+"so eine vollständige Isolation zu gewährleisten."
+
+#: AppDatabase.py:276
+msgid ""
+"Toolchange.\n"
+"It will create a toolchange event.\n"
+"The kind of toolchange is determined by\n"
+"the preprocessor file."
+msgstr ""
+"Werkzeugwechsel.\n"
+"Löst ein Werkzeugwechselereignis aus.\n"
+"Die Art wie der Werkzeugwechsel durchgeführt wird\n"
+"hängt vom gewählten Präprozessor ab."
+
+#: AppDatabase.py:281
+msgid ""
+"Toolchange XY.\n"
+"A set of coordinates in the format (x, y).\n"
+"Will determine the cartesian position of the point\n"
+"where the tool change event take place."
+msgstr ""
+"Werkzeugwechsel XY\n"
+"Ein Satz von Koordinaten im Format (x,y).\n"
+"An der Position dieses Punktes wird ein \n"
+"Werkzeugwechselereignis ausgelöst."
+
+# Is this really the height of where a toolchange event takes place or is it the position of where to go to for being able to change the tool?
+#: AppDatabase.py:286
+msgid ""
+"Toolchange Z.\n"
+"The position on Z plane where the tool change event take place."
+msgstr ""
+"Werkzeugwechsel Z.\n"
+"Die Position in der Z Ebene an der ein Werkzeugwechselereignis ausgelöst "
+"wird."
+
+#: AppDatabase.py:289
+msgid ""
+"Start Z.\n"
+"If it's left empty it will not be used.\n"
+"A position on Z plane to move immediately after job start."
+msgstr ""
+"Start Z.\n"
+"Nicht benutzt wenn leer.\n"
+"Die Z-Position die zum Start angefahren wird."
+
+#: AppDatabase.py:293
+msgid ""
+"End Z.\n"
+"A position on Z plane to move immediately after job stop."
+msgstr ""
+"End Z.\n"
+"Die Z-Position die bei Beendigung des Jobs angefahren wird."
+
+#: AppDatabase.py:305 AppDatabase.py:682 AppDatabase.py:716 AppDatabase.py:1898
+#: AppDatabase.py:2144 AppDatabase.py:2178
+msgid "Could not load Tools DB file."
+msgstr "Werkzeugdatenbank konnte nicht geladen werden."
+
+#: AppDatabase.py:313 AppDatabase.py:724 AppDatabase.py:1906
+#: AppDatabase.py:2186
+msgid "Failed to parse Tools DB file."
+msgstr "Formatfehler beim Einlesen der Werkzeugdatenbank."
+
+#: AppDatabase.py:316 AppDatabase.py:727 AppDatabase.py:1909
+#: AppDatabase.py:2189
+msgid "Loaded FlatCAM Tools DB from"
+msgstr "Geladene FlatCAM Tools DB von"
+
+#: AppDatabase.py:322 AppDatabase.py:1823
+msgid "Add to DB"
+msgstr "Hinzufügen"
+
+#: AppDatabase.py:324 AppDatabase.py:1826
+msgid "Copy from DB"
+msgstr "Von Datenbank kopieren"
+
+#: AppDatabase.py:326 AppDatabase.py:1829
+msgid "Delete from DB"
+msgstr "Aus Datenbank löschen"
+
+#: AppDatabase.py:603 AppDatabase.py:2044
+msgid "Tool added to DB."
+msgstr "Werkzeug wurde zur Werkzeugdatenbank hinzugefügt."
+
+#: AppDatabase.py:624 AppDatabase.py:2077
+msgid "Tool copied from Tools DB."
+msgstr "Das Werkzeug wurde aus der Werkzeugdatenbank kopiert."
+
+#: AppDatabase.py:642 AppDatabase.py:2104
+msgid "Tool removed from Tools DB."
+msgstr "Werkzeug wurde aus der Werkzeugdatenbank gelöscht."
+
+#: AppDatabase.py:653 AppDatabase.py:2115
+msgid "Export Tools Database"
+msgstr "Werkzeugdatenbank exportieren"
+
+#: AppDatabase.py:656 AppDatabase.py:2118
+msgid "Tools_Database"
+msgstr "Werkzeugdatenbank"
+
+#: AppDatabase.py:663 AppDatabase.py:709 AppDatabase.py:2125
+#: AppDatabase.py:2171 AppEditors/FlatCAMExcEditor.py:1023
+#: AppEditors/FlatCAMExcEditor.py:1091 AppEditors/FlatCAMTextEditor.py:223
+#: AppGUI/MainGUI.py:2690 AppGUI/MainGUI.py:2906 AppGUI/MainGUI.py:3121
+#: AppObjects/ObjectCollection.py:126 AppTools/ToolFilm.py:739
+#: AppTools/ToolFilm.py:885 AppTools/ToolImage.py:247 AppTools/ToolMove.py:269
+#: AppTools/ToolPcbWizard.py:301 AppTools/ToolPcbWizard.py:324
+#: AppTools/ToolQRCode.py:791 AppTools/ToolQRCode.py:838 App_Main.py:1694
+#: App_Main.py:2430 App_Main.py:2465 App_Main.py:2512 App_Main.py:3991
+#: App_Main.py:6529 App_Main.py:6566 App_Main.py:6608 App_Main.py:6637
+#: App_Main.py:6678 App_Main.py:6703 App_Main.py:6755 App_Main.py:6790
+#: App_Main.py:6835 App_Main.py:6876 App_Main.py:6917 App_Main.py:6958
+#: App_Main.py:6999 App_Main.py:7043 App_Main.py:7099 App_Main.py:7131
+#: App_Main.py:7163 App_Main.py:7394 App_Main.py:7432 App_Main.py:7475
+#: App_Main.py:7552 App_Main.py:7607 Bookmark.py:300 Bookmark.py:342
+msgid "Cancelled."
+msgstr "Abgebrochen."
+
+#: AppDatabase.py:671 AppDatabase.py:2133 AppEditors/FlatCAMTextEditor.py:276
+#: AppObjects/FlatCAMCNCJob.py:959 AppTools/ToolFilm.py:1016
+#: AppTools/ToolFilm.py:1197 AppTools/ToolSolderPaste.py:1534 App_Main.py:2520
+#: App_Main.py:7851 App_Main.py:7899 App_Main.py:8024 App_Main.py:8160
+#: Bookmark.py:308
+msgid ""
+"Permission denied, saving not possible.\n"
+"Most likely another app is holding the file open and not accessible."
+msgstr ""
+"Berechtigung verweigert, Speichern nicht möglich.\n"
+"Wahrscheinlich hält eine andere App die Datei offen oder ist geschützt."
+
+#: AppDatabase.py:693 AppDatabase.py:696 AppDatabase.py:748 AppDatabase.py:2155
+#: AppDatabase.py:2158 AppDatabase.py:2211
+msgid "Failed to write Tools DB to file."
+msgstr "Fehler beim Schreiben der Werkzeugdatenbank in eine Datei."
+
+#: AppDatabase.py:699 AppDatabase.py:2161
+msgid "Exported Tools DB to"
+msgstr "Werkzeugdatenbank wurde exportiert nach"
+
+#: AppDatabase.py:706 AppDatabase.py:2168
+msgid "Import FlatCAM Tools DB"
+msgstr "Import der FlatCAM-Werkzeugdatenbank"
+
+#: AppDatabase.py:738 AppDatabase.py:913 AppDatabase.py:2200
+#: AppDatabase.py:2418 AppObjects/FlatCAMGeometry.py:947
+#: AppTools/ToolNCC.py:4015 AppTools/ToolNCC.py:4099 AppTools/ToolPaint.py:3558
+#: AppTools/ToolPaint.py:3643 App_Main.py:5172 App_Main.py:5200
+#: App_Main.py:5227 App_Main.py:5247
+msgid "Tools Database"
+msgstr "Werkzeugdatenbank"
+
+#: AppDatabase.py:752 AppDatabase.py:2215
+msgid "Saved Tools DB."
+msgstr "Datenbank der gespeicherten Werkzeuge."
+
+#: AppDatabase.py:899 AppDatabase.py:2405
+msgid "No Tool/row selected in the Tools Database table"
+msgstr ""
+"Gescheitert. Kein Werkzeug (keine Spalte) in der Werkzeugtabelle ausgewählt"
+
+#: AppDatabase.py:917 AppDatabase.py:2422
+msgid "Cancelled adding tool from DB."
+msgstr "Hinzufügen aus der Datenbank wurde abgebrochen."
+
+#: AppDatabase.py:1018
+msgid "Basic Geo Parameters"
+msgstr "Grundlegende Geoparameter"
+
+#: AppDatabase.py:1030
+msgid "Advanced Geo Parameters"
+msgstr "Erweiterte Geoparameter"
+
+#: AppDatabase.py:1042
+msgid "NCC Parameters"
+msgstr "NCC-Parameter"
+
+#: AppDatabase.py:1054
+msgid "Paint Parameters"
+msgstr "Lackparameter"
+
+#: AppDatabase.py:1185 AppGUI/ObjectUI.py:967 AppGUI/ObjectUI.py:1871
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:185
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:148
+#: AppTools/ToolSolderPaste.py:253
+msgid "Feedrate X-Y"
+msgstr "Vorschub X-Y"
+
+#: AppDatabase.py:1187
+msgid ""
+"Feedrate X-Y. Feedrate\n"
+"The speed on XY plane used while cutting into material."
+msgstr ""
+"Vorschub X-Y. Vorschubgeschwindigkeit\n"
+"Die Geschwindigkeit in der XY-Ebene, die beim Schneiden in Material "
+"verwendet wird."
+
+#: AppDatabase.py:1199 AppGUI/ObjectUI.py:982 AppGUI/ObjectUI.py:1885
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:207
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:200
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:161
+#: AppTools/ToolSolderPaste.py:265
+msgid "Feedrate Z"
+msgstr "Vorschub Z"
+
+#: AppDatabase.py:1201
+msgid ""
+"Feedrate Z\n"
+"The speed on Z plane."
+msgstr ""
+"Vorschub Z.\n"
+"Die Geschwindigkeit in der Z-Ebene."
+
+#: AppDatabase.py:1399 AppGUI/ObjectUI.py:845
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:46
+#: AppTools/ToolNCC.py:341
+msgid "Operation"
+msgstr "Operation"
+
+#: AppDatabase.py:1401 AppTools/ToolNCC.py:343
+msgid ""
+"The 'Operation' can be:\n"
+"- Isolation -> will ensure that the non-copper clearing is always complete.\n"
+"If it's not successful then the non-copper clearing will fail, too.\n"
+"- Clear -> the regular non-copper clearing."
+msgstr ""
+"Die 'Operation' kann sein:\n"
+"- Isolierung-> stellt sicher, dass das Löschen ohne Kupfer immer "
+"abgeschlossen ist.\n"
+"Wenn dies nicht erfolgreich ist, schlägt auch das Löschen ohne Kupfer fehl.\n"
+"- Klären-> das reguläre Nicht-Kupfer-löschen."
+
+#: AppDatabase.py:1408 AppEditors/FlatCAMGrbEditor.py:2740
+#: AppGUI/GUIElements.py:2604 AppTools/ToolNCC.py:350
+msgid "Clear"
+msgstr "Klären"
+
+#: AppDatabase.py:1409 AppTools/ToolNCC.py:351 AppTools/ToolNCC.py:1624
+msgid "Isolation"
+msgstr "Isolation"
+
+#: AppDatabase.py:1417 AppGUI/ObjectUI.py:409 AppGUI/ObjectUI.py:867
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:62
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:56
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:95
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:137 AppTools/ToolNCC.py:359
+msgid "Milling Type"
+msgstr "Fräsart"
+
+#: AppDatabase.py:1419 AppDatabase.py:1427
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:139
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:147 AppTools/ToolNCC.py:361
+#: AppTools/ToolNCC.py:369
+msgid ""
+"Milling type when the selected tool is of type: 'iso_op':\n"
+"- climb / best for precision milling and to reduce tool usage\n"
+"- conventional / useful when there is no backlash compensation"
+msgstr ""
+"Frästyp, wenn das ausgewählte Werkzeug vom Typ 'iso_op' ist:\n"
+"- Besteigung / am besten zum Präzisionsfräsen und zur Reduzierung des "
+"Werkzeugverbrauchs\n"
+"- konventionell / nützlich, wenn kein Spielausgleich vorhanden ist"
+
+#: AppDatabase.py:1424 AppGUI/ObjectUI.py:415
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:62
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:102
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:144 AppTools/ToolNCC.py:366
+msgid "Climb"
+msgstr "Steigen"
+
+# Cannot translate without context.
+#: AppDatabase.py:1425 AppGUI/ObjectUI.py:416
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:63
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:103
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:145 AppTools/ToolNCC.py:367
+msgid "Conventional"
+msgstr "Konventionell"
+
+#: AppDatabase.py:1437 AppDatabase.py:1546 AppEditors/FlatCAMGeoEditor.py:450
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:182
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:163
+#: AppTools/ToolNCC.py:382 AppTools/ToolPaint.py:328
+msgid "Overlap"
+msgstr "Überlappung"
+
+# Double
+#: AppDatabase.py:1439 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:184
+#: AppTools/ToolNCC.py:384
+msgid ""
+"How much (percentage) of the tool width to overlap each tool pass.\n"
+"Adjust the value starting with lower values\n"
+"and increasing it if areas that should be cleared are still \n"
+"not cleared.\n"
+"Lower values = faster processing, faster execution on CNC.\n"
+"Higher values = slow processing and slow execution on CNC\n"
+"due of too many paths."
+msgstr ""
+"Wie viel (Prozent) der Werkzeugbreite, um jeden Werkzeugdurchlauf zu "
+"überlappen.\n"
+"Passen Sie den Wert beginnend mit niedrigeren Werten an\n"
+"und es zu erhöhen, wenn noch Bereiche sind, die geräumt werden sollen\n"
+"ungeklärt.\n"
+"Niedrigere Werte = schnellere Verarbeitung, schnellere Ausführung auf CNC.\n"
+"Höhere Werte = langsame Verarbeitung und langsame Ausführung auf CNC\n"
+"wegen zu vieler Wege."
+
+#: AppDatabase.py:1458 AppDatabase.py:1567 AppEditors/FlatCAMGeoEditor.py:470
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:72
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:229
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:59
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:45
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:53
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:66
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:183
+#: AppTools/ToolCopperThieving.py:111 AppTools/ToolCopperThieving.py:362
+#: AppTools/ToolCorners.py:140 AppTools/ToolCutOut.py:190
+#: AppTools/ToolFiducials.py:172 AppTools/ToolInvertGerber.py:88
+#: AppTools/ToolInvertGerber.py:96 AppTools/ToolNCC.py:403
+#: AppTools/ToolPaint.py:349
+msgid "Margin"
+msgstr "Marge"
+
+#: AppDatabase.py:1460
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:74
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:61
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:68
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204
+#: AppTools/ToolCopperThieving.py:113 AppTools/ToolCorners.py:142
+#: AppTools/ToolFiducials.py:174 AppTools/ToolNCC.py:405
+msgid "Bounding box margin."
+msgstr "Begrenzungsrahmenrand."
+
+#: AppDatabase.py:1471 AppDatabase.py:1582 AppEditors/FlatCAMGeoEditor.py:484
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:105
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:198
+#: AppTools/ToolExtractDrills.py:128 AppTools/ToolNCC.py:416
+#: AppTools/ToolPaint.py:364 AppTools/ToolPunchGerber.py:139
+msgid "Method"
+msgstr "Methode"
+
+#: AppDatabase.py:1473 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:217
+#: AppTools/ToolNCC.py:418
+msgid ""
+"Algorithm for copper clearing:\n"
+"- Standard: Fixed step inwards.\n"
+"- Seed-based: Outwards from seed.\n"
+"- Line-based: Parallel lines."
+msgstr ""
+"Algorithmus zur Kupferreinigung:\n"
+"- Standard: Schritt nach innen behoben.\n"
+"- Samenbasiert: Aus dem Samen heraus.\n"
+"- Linienbasiert: Parallele Linien."
+
+#: AppDatabase.py:1481 AppDatabase.py:1596 AppEditors/FlatCAMGeoEditor.py:498
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
+#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2212 AppTools/ToolNCC.py:2739
+#: AppTools/ToolNCC.py:2771 AppTools/ToolPaint.py:389
+#: AppTools/ToolPaint.py:1839 tclCommands/TclCommandCopperClear.py:126
+#: tclCommands/TclCommandCopperClear.py:134 tclCommands/TclCommandPaint.py:125
+msgid "Standard"
+msgstr "Standard"
+
+#: AppDatabase.py:1481 AppDatabase.py:1596 AppEditors/FlatCAMGeoEditor.py:498
+#: AppEditors/FlatCAMGeoEditor.py:568 AppEditors/FlatCAMGeoEditor.py:5146
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
+#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2223 AppTools/ToolNCC.py:2745
+#: AppTools/ToolNCC.py:2777 AppTools/ToolPaint.py:389
+#: AppTools/ToolPaint.py:1853 defaults.py:400 defaults.py:432
+#: tclCommands/TclCommandCopperClear.py:128
+#: tclCommands/TclCommandCopperClear.py:136 tclCommands/TclCommandPaint.py:127
+msgid "Seed"
+msgstr "Keim"
+
+#: AppDatabase.py:1481 AppDatabase.py:1596 AppEditors/FlatCAMGeoEditor.py:498
+#: AppEditors/FlatCAMGeoEditor.py:5150
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
+#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2234 AppTools/ToolPaint.py:389
+#: AppTools/ToolPaint.py:698 AppTools/ToolPaint.py:1867
+#: tclCommands/TclCommandCopperClear.py:130 tclCommands/TclCommandPaint.py:129
+msgid "Lines"
+msgstr "Linien"
+
+#: AppDatabase.py:1481 AppDatabase.py:1596
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
+#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2245 AppTools/ToolPaint.py:389
+#: AppTools/ToolPaint.py:2032 tclCommands/TclCommandPaint.py:133
+msgid "Combo"
+msgstr "Combo"
+
+#: AppDatabase.py:1489 AppDatabase.py:1607
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:237
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:224
+#: AppTools/ToolNCC.py:439 AppTools/ToolPaint.py:400
+msgid "Connect"
+msgstr "Verbinden"
+
+#: AppDatabase.py:1493 AppDatabase.py:1610 AppEditors/FlatCAMGeoEditor.py:507
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:239
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:226
+#: AppTools/ToolNCC.py:443 AppTools/ToolPaint.py:403
+msgid ""
+"Draw lines between resulting\n"
+"segments to minimize tool lifts."
+msgstr ""
+"Zeichnen Sie Linien zwischen den Ergebnissen\n"
+"Segmente, um Werkzeuglifte zu minimieren."
+
+#: AppDatabase.py:1499 AppDatabase.py:1614
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:246
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:232
+#: AppTools/ToolNCC.py:449 AppTools/ToolPaint.py:407
+msgid "Contour"
+msgstr "Kontur"
+
+#: AppDatabase.py:1503 AppDatabase.py:1617 AppEditors/FlatCAMGeoEditor.py:517
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:248
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:234
+#: AppTools/ToolNCC.py:453 AppTools/ToolPaint.py:410
+msgid ""
+"Cut around the perimeter of the polygon\n"
+"to trim rough edges."
+msgstr ""
+"Schneiden Sie um den Umfang des Polygons herum\n"
+"Ecken und Kanten schneiden."
+
+#: AppDatabase.py:1509 AppEditors/FlatCAMGeoEditor.py:611
+#: AppEditors/FlatCAMGrbEditor.py:5289 AppGUI/ObjectUI.py:143
+#: AppGUI/ObjectUI.py:1599 AppGUI/ObjectUI.py:2456
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:255
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:142
+#: AppTools/ToolNCC.py:459 AppTools/ToolTransform.py:28
+msgid "Offset"
+msgstr "Versatz"
+
+#: AppDatabase.py:1513 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:257
+#: AppTools/ToolNCC.py:463
+msgid ""
+"If used, it will add an offset to the copper features.\n"
+"The copper clearing will finish to a distance\n"
+"from the copper features.\n"
+"The value can be between 0 and 10 FlatCAM units."
+msgstr ""
+"Bei Verwendung wird den Kupferelementen ein Offset hinzugefügt.\n"
+"Die Kupferreinigung wird bis zu einer gewissen Entfernung enden\n"
+"von den Kupfermerkmalen.\n"
+"Der Wert kann zwischen 0 und 10 FlatCAM-Einheiten liegen."
+
+# 3rd Time
+#: AppDatabase.py:1548 AppEditors/FlatCAMGeoEditor.py:452
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:165
+#: AppTools/ToolPaint.py:330
+msgid ""
+"How much (percentage) of the tool width to overlap each tool pass.\n"
+"Adjust the value starting with lower values\n"
+"and increasing it if areas that should be painted are still \n"
+"not painted.\n"
+"Lower values = faster processing, faster execution on CNC.\n"
+"Higher values = slow processing and slow execution on CNC\n"
+"due of too many paths."
+msgstr ""
+"Wie viel (Prozent) der Werkzeugbreite, um jeden Werkzeugdurchlauf zu "
+"überlappen.\n"
+"Passen Sie den Wert beginnend mit niedrigeren Werten an\n"
+"und erhöhen, wenn Bereiche, die gestrichen werden sollen, noch vorhanden "
+"sind\n"
+"nicht gemalt.\n"
+"Niedrigere Werte = schnellere Verarbeitung, schnellere Ausführung auf CNC.\n"
+"Höhere Werte = langsame Verarbeitung und langsame Ausführung auf CNC\n"
+"wegen zu vieler Wege."
+
+#: AppDatabase.py:1569 AppEditors/FlatCAMGeoEditor.py:472
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:185
+#: AppTools/ToolPaint.py:351
+msgid ""
+"Distance by which to avoid\n"
+"the edges of the polygon to\n"
+"be painted."
+msgstr ""
+"Entfernung, um die es zu vermeiden ist\n"
+"die Kanten des Polygons bis\n"
+"gemalt werden."
+
+#: AppDatabase.py:1584 AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:200
+#: AppTools/ToolPaint.py:366
+msgid ""
+"Algorithm for painting:\n"
+"- Standard: Fixed step inwards.\n"
+"- Seed-based: Outwards from seed.\n"
+"- Line-based: Parallel lines.\n"
+"- Laser-lines: Active only for Gerber objects.\n"
+"Will create lines that follow the traces.\n"
+"- Combo: In case of failure a new method will be picked from the above\n"
+"in the order specified."
+msgstr ""
+"Algorithmus zum Malen:\n"
+"- Standard: Schritt nach innen behoben.\n"
+"- Samenbasiert: Aus dem Samen heraus.\n"
+"- Linienbasiert: Parallele Linien.\n"
+"- Laserlinien: Nur für Gerber-Objekte aktiv.\n"
+"Erstellt Linien, die den Spuren folgen.\n"
+"- Combo: Im Fehlerfall wird eine neue Methode aus den oben genannten "
+"ausgewählt\n"
+"in der angegebenen Reihenfolge."
+
+#: AppDatabase.py:1596 AppDatabase.py:1598
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
+#: AppTools/ToolPaint.py:389 AppTools/ToolPaint.py:391
+#: AppTools/ToolPaint.py:692 AppTools/ToolPaint.py:697
+#: AppTools/ToolPaint.py:1881 tclCommands/TclCommandPaint.py:131
+msgid "Laser_lines"
+msgstr "LaserlinienLinien"
+
+#: AppDatabase.py:1641
+msgid "Add Tool in DB"
+msgstr "Werkzeug in DB hinzufügen"
+
+#: AppDatabase.py:1675
+msgid "Save DB"
+msgstr "Speichern DB"
+
+#: AppDatabase.py:1677
+msgid "Save the Tools Database information's."
+msgstr "Speichern Sie die Tools-Datenbankinformationen."
+
+#: AppEditors/FlatCAMExcEditor.py:50 AppEditors/FlatCAMExcEditor.py:74
+#: AppEditors/FlatCAMExcEditor.py:168 AppEditors/FlatCAMExcEditor.py:385
+#: AppEditors/FlatCAMExcEditor.py:589 AppEditors/FlatCAMGrbEditor.py:241
+#: AppEditors/FlatCAMGrbEditor.py:248
+msgid "Click to place ..."
+msgstr "Klicken um zu platzieren ..."
+
+#: AppEditors/FlatCAMExcEditor.py:58
+msgid "To add a drill first select a tool"
+msgstr "Um einen Bohrer hinzuzufügen, wählen Sie zuerst ein Werkzeug aus"
+
+#: AppEditors/FlatCAMExcEditor.py:122
+msgid "Done. Drill added."
+msgstr "Erledigt. Bohrer hinzugefügt."
+
+#: AppEditors/FlatCAMExcEditor.py:176
+msgid "To add an Drill Array first select a tool in Tool Table"
+msgstr ""
+"Um ein Bohr-Array hinzuzufügen, wählen Sie zunächst ein Werkzeug in der "
+"Werkzeugtabelle aus"
+
+#: AppEditors/FlatCAMExcEditor.py:192 AppEditors/FlatCAMExcEditor.py:415
+#: AppEditors/FlatCAMExcEditor.py:636 AppEditors/FlatCAMExcEditor.py:1151
+#: AppEditors/FlatCAMExcEditor.py:1178 AppEditors/FlatCAMGrbEditor.py:471
+#: AppEditors/FlatCAMGrbEditor.py:1935 AppEditors/FlatCAMGrbEditor.py:1965
+msgid "Click on target location ..."
+msgstr "Klicken Sie auf den Zielort ..."
+
+#: AppEditors/FlatCAMExcEditor.py:211
+msgid "Click on the Drill Circular Array Start position"
+msgstr "Klicken Sie auf die Startposition des Bohrkreis-Arrays"
+
+#: AppEditors/FlatCAMExcEditor.py:233 AppEditors/FlatCAMExcEditor.py:677
+#: AppEditors/FlatCAMGrbEditor.py:516
+msgid "The value is not Float. Check for comma instead of dot separator."
+msgstr ""
+"Der Wert ist nicht Real. Überprüfen Sie das Komma anstelle des Trennzeichens."
+
+#: AppEditors/FlatCAMExcEditor.py:237
+msgid "The value is mistyped. Check the value"
+msgstr "Der Wert ist falsch geschrieben. Überprüfen Sie den Wert"
+
+#: AppEditors/FlatCAMExcEditor.py:336
+msgid "Too many drills for the selected spacing angle."
+msgstr "Zu viele Bohrer für den ausgewählten Abstandswinkel."
+
+#: AppEditors/FlatCAMExcEditor.py:354
+msgid "Done. Drill Array added."
+msgstr "Erledigt. Bohrfeld hinzugefügt."
+
+#: AppEditors/FlatCAMExcEditor.py:394
+msgid "To add a slot first select a tool"
+msgstr "Um einen Steckplatz hinzuzufügen, wählen Sie zunächst ein Werkzeug aus"
+
+#: AppEditors/FlatCAMExcEditor.py:454 AppEditors/FlatCAMExcEditor.py:461
+#: AppEditors/FlatCAMExcEditor.py:742 AppEditors/FlatCAMExcEditor.py:749
+msgid "Value is missing or wrong format. Add it and retry."
+msgstr ""
+"Wert fehlt oder falsches Format. Fügen Sie es hinzu und versuchen Sie es "
+"erneut."
+
+#: AppEditors/FlatCAMExcEditor.py:559
+msgid "Done. Adding Slot completed."
+msgstr "Erledigt. Das Hinzufügen des Slots ist abgeschlossen."
+
+#: AppEditors/FlatCAMExcEditor.py:597
+msgid "To add an Slot Array first select a tool in Tool Table"
+msgstr ""
+"Um ein Schlitze-Array hinzuzufügen, wählen Sie zunächst ein Werkzeug in der "
+"Werkzeugtabelle aus"
+
+#: AppEditors/FlatCAMExcEditor.py:655
+msgid "Click on the Slot Circular Array Start position"
+msgstr "Klicken Sie auf die kreisförmige Startposition des Arrays"
+
+#: AppEditors/FlatCAMExcEditor.py:680 AppEditors/FlatCAMGrbEditor.py:519
+msgid "The value is mistyped. Check the value."
+msgstr "Der Wert ist falsch geschrieben. Überprüfen Sie den Wert."
+
+#: AppEditors/FlatCAMExcEditor.py:859
+msgid "Too many Slots for the selected spacing angle."
+msgstr "Zu viele Slots für den ausgewählten Abstandswinkel."
+
+#: AppEditors/FlatCAMExcEditor.py:882
+msgid "Done. Slot Array added."
+msgstr "Erledigt. Schlitze Array hinzugefügt."
+
+#: AppEditors/FlatCAMExcEditor.py:904
+msgid "Click on the Drill(s) to resize ..."
+msgstr "Klicken Sie auf die Bohrer, um die Größe zu ändern ..."
+
+#: AppEditors/FlatCAMExcEditor.py:934
+msgid "Resize drill(s) failed. Please enter a diameter for resize."
+msgstr ""
+"Die Größe der Bohrer ist fehlgeschlagen. Bitte geben Sie einen Durchmesser "
+"für die Größenänderung ein."
+
+#: AppEditors/FlatCAMExcEditor.py:1112
+msgid "Done. Drill/Slot Resize completed."
+msgstr "Getan. Bohrer / Schlitz Größenänderung abgeschlossen."
+
+#: AppEditors/FlatCAMExcEditor.py:1115
+msgid "Cancelled. No drills/slots selected for resize ..."
+msgstr "Abgebrochen. Keine Bohrer / Schlitze für Größenänderung ausgewählt ..."
+
+#: AppEditors/FlatCAMExcEditor.py:1153 AppEditors/FlatCAMGrbEditor.py:1937
+msgid "Click on reference location ..."
+msgstr "Klicken Sie auf die Referenzposition ..."
+
+#: AppEditors/FlatCAMExcEditor.py:1210
+msgid "Done. Drill(s) Move completed."
+msgstr "Erledigt. Bohrer Bewegen abgeschlossen."
+
+#: AppEditors/FlatCAMExcEditor.py:1318
+msgid "Done. Drill(s) copied."
+msgstr "Erledigt. Bohrer kopiert."
+
+#: AppEditors/FlatCAMExcEditor.py:1557
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:26
+msgid "Excellon Editor"
+msgstr "Excellon Editor"
+
+#: AppEditors/FlatCAMExcEditor.py:1564 AppEditors/FlatCAMGrbEditor.py:2460
+msgid "Name:"
+msgstr "Name:"
+
+#: AppEditors/FlatCAMExcEditor.py:1570 AppGUI/ObjectUI.py:761
+#: AppGUI/ObjectUI.py:1567 AppTools/ToolNCC.py:120 AppTools/ToolPaint.py:114
+#: AppTools/ToolSolderPaste.py:74
+msgid "Tools Table"
+msgstr "Werkzeugtabelle"
+
+#: AppEditors/FlatCAMExcEditor.py:1572 AppGUI/ObjectUI.py:763
+msgid ""
+"Tools in this Excellon object\n"
+"when are used for drilling."
+msgstr ""
+"Werkzeuge in diesem Excellon-Objekt\n"
+"Wann werden zum Bohren verwendet."
+
+#: AppEditors/FlatCAMExcEditor.py:1584 AppEditors/FlatCAMExcEditor.py:3041
+#: AppGUI/ObjectUI.py:781 AppObjects/FlatCAMExcellon.py:1177
+#: AppObjects/FlatCAMExcellon.py:1268 AppObjects/FlatCAMExcellon.py:1453
+#: AppTools/ToolNCC.py:132 AppTools/ToolPaint.py:127
+#: AppTools/ToolPcbWizard.py:76 AppTools/ToolProperties.py:416
+#: AppTools/ToolProperties.py:476 AppTools/ToolSolderPaste.py:85
+#: tclCommands/TclCommandDrillcncjob.py:195
+msgid "Diameter"
+msgstr "Durchmesser"
+
+#: AppEditors/FlatCAMExcEditor.py:1592
+msgid "Add/Delete Tool"
+msgstr "Werkzeug hinzufügen / löschen"
+
+#: AppEditors/FlatCAMExcEditor.py:1594
+msgid ""
+"Add/Delete a tool to the tool list\n"
+"for this Excellon object."
+msgstr ""
+"Werkzeug zur Werkzeugliste hinzufügen / löschen\n"
+"für dieses Excellon-Objekt."
+
+#: AppEditors/FlatCAMExcEditor.py:1606 AppGUI/ObjectUI.py:1687
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:57
+msgid "Diameter for the new tool"
+msgstr "Durchmesser für das neue Werkzeug"
+
+#: AppEditors/FlatCAMExcEditor.py:1616
+msgid "Add Tool"
+msgstr "Werkzeug hinzufügen"
+
+#: AppEditors/FlatCAMExcEditor.py:1618
+msgid ""
+"Add a new tool to the tool list\n"
+"with the diameter specified above."
+msgstr ""
+"Fügen Sie der Werkzeugliste ein neues Werkzeug hinzu\n"
+"mit dem oben angegebenen Durchmesser."
+
+#: AppEditors/FlatCAMExcEditor.py:1630
+msgid "Delete Tool"
+msgstr "Werkzeug löschen"
+
+#: AppEditors/FlatCAMExcEditor.py:1632
+msgid ""
+"Delete a tool in the tool list\n"
+"by selecting a row in the tool table."
+msgstr ""
+"Löschen Sie ein Werkzeug in der Werkzeugliste\n"
+"indem Sie eine Zeile in der Werkzeugtabelle auswählen."
+
+#: AppEditors/FlatCAMExcEditor.py:1650 AppGUI/MainGUI.py:4311
+msgid "Resize Drill(s)"
+msgstr "Größe der Bohrer ändern"
+
+#: AppEditors/FlatCAMExcEditor.py:1652
+msgid "Resize a drill or a selection of drills."
+msgstr "Ändern Sie die Größe eines Bohrers oder einer Auswahl von Bohrern."
+
+#: AppEditors/FlatCAMExcEditor.py:1659
+msgid "Resize Dia"
+msgstr "Durchmesser ändern"
+
+#: AppEditors/FlatCAMExcEditor.py:1661
+msgid "Diameter to resize to."
+msgstr "Durchmesser zur Größenänderung."
+
+#: AppEditors/FlatCAMExcEditor.py:1672
+msgid "Resize"
+msgstr "Größe ändern"
+
+#: AppEditors/FlatCAMExcEditor.py:1674
+msgid "Resize drill(s)"
+msgstr "Bohrer verkleinern"
+
+#: AppEditors/FlatCAMExcEditor.py:1699 AppGUI/MainGUI.py:1473
+#: AppGUI/MainGUI.py:4310
+msgid "Add Drill Array"
+msgstr "Bohrer-Array hinzufügen"
+
+#: AppEditors/FlatCAMExcEditor.py:1701
+msgid "Add an array of drills (linear or circular array)"
+msgstr ""
+"Hinzufügen eines Arrays von Bohrern (lineares oder kreisförmiges Array)"
+
+#: AppEditors/FlatCAMExcEditor.py:1707
+msgid ""
+"Select the type of drills array to create.\n"
+"It can be Linear X(Y) or Circular"
+msgstr ""
+"Wählen Sie den Typ des zu erstellenden Bohrfelds aus.\n"
+"Es kann lineares X (Y) oder rund sein"
+
+#: AppEditors/FlatCAMExcEditor.py:1710 AppEditors/FlatCAMExcEditor.py:1924
+#: AppEditors/FlatCAMGrbEditor.py:2773
+msgid "Linear"
+msgstr "Linear"
+
+#: AppEditors/FlatCAMExcEditor.py:1711 AppEditors/FlatCAMExcEditor.py:1925
+#: AppEditors/FlatCAMGrbEditor.py:2774 AppGUI/ObjectUI.py:316
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:52
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:149
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:107
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:52
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:151
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:70
+#: AppTools/ToolExtractDrills.py:78 AppTools/ToolExtractDrills.py:201
+#: AppTools/ToolFiducials.py:220 AppTools/ToolNCC.py:221
+#: AppTools/ToolPaint.py:203 AppTools/ToolPunchGerber.py:89
+#: AppTools/ToolPunchGerber.py:229
+msgid "Circular"
+msgstr "Kreisförmig"
+
+#: AppEditors/FlatCAMExcEditor.py:1719
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:68
+msgid "Nr of drills"
+msgstr "Anzahl der Bohrer"
+
+#: AppEditors/FlatCAMExcEditor.py:1720
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:70
+msgid "Specify how many drills to be in the array."
+msgstr "Geben Sie an, wie viele Drills im Array enthalten sein sollen."
+
+#: AppEditors/FlatCAMExcEditor.py:1738 AppEditors/FlatCAMExcEditor.py:1788
+#: AppEditors/FlatCAMExcEditor.py:1860 AppEditors/FlatCAMExcEditor.py:1953
+#: AppEditors/FlatCAMExcEditor.py:2004 AppEditors/FlatCAMGrbEditor.py:1571
+#: AppEditors/FlatCAMGrbEditor.py:2802 AppEditors/FlatCAMGrbEditor.py:2851
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:178
+msgid "Direction"
+msgstr "Richtung"
+
+#: AppEditors/FlatCAMExcEditor.py:1740 AppEditors/FlatCAMExcEditor.py:1955
+#: AppEditors/FlatCAMGrbEditor.py:2804
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:86
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:234
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:122
+msgid ""
+"Direction on which the linear array is oriented:\n"
+"- 'X' - horizontal axis \n"
+"- 'Y' - vertical axis or \n"
+"- 'Angle' - a custom angle for the array inclination"
+msgstr ""
+"Richtung, auf die das lineare Array ausgerichtet ist:\n"
+"- 'X' - horizontale Achse\n"
+"- 'Y' - vertikale Achse oder\n"
+"- 'Winkel' - ein benutzerdefinierter Winkel für die Neigung des Arrays"
+
+#: AppEditors/FlatCAMExcEditor.py:1747 AppEditors/FlatCAMExcEditor.py:1869
+#: AppEditors/FlatCAMExcEditor.py:1962 AppEditors/FlatCAMGrbEditor.py:2811
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:92
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:187
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:240
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:128
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:208
+#: AppTools/ToolFilm.py:239
+msgid "X"
+msgstr "X"
+
+#: AppEditors/FlatCAMExcEditor.py:1748 AppEditors/FlatCAMExcEditor.py:1870
+#: AppEditors/FlatCAMExcEditor.py:1963 AppEditors/FlatCAMGrbEditor.py:2812
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:93
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:188
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:241
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:129
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:209
+#: AppTools/ToolFilm.py:240
+msgid "Y"
+msgstr "Y"
+
+#: AppEditors/FlatCAMExcEditor.py:1749 AppEditors/FlatCAMExcEditor.py:1766
+#: AppEditors/FlatCAMExcEditor.py:1800 AppEditors/FlatCAMExcEditor.py:1871
+#: AppEditors/FlatCAMExcEditor.py:1875 AppEditors/FlatCAMExcEditor.py:1964
+#: AppEditors/FlatCAMExcEditor.py:1982 AppEditors/FlatCAMExcEditor.py:2016
+#: AppEditors/FlatCAMGrbEditor.py:2813 AppEditors/FlatCAMGrbEditor.py:2830
+#: AppEditors/FlatCAMGrbEditor.py:2866
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:94
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:113
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:189
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:194
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:242
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:263
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:130
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:148
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:53
+#: AppTools/ToolDistance.py:120 AppTools/ToolDistanceMin.py:68
+#: AppTools/ToolTransform.py:60
+msgid "Angle"
+msgstr "Winkel"
+
+#: AppEditors/FlatCAMExcEditor.py:1753 AppEditors/FlatCAMExcEditor.py:1968
+#: AppEditors/FlatCAMGrbEditor.py:2817
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:100
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:248
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:136
+msgid "Pitch"
+msgstr "Abstand"
+
+#: AppEditors/FlatCAMExcEditor.py:1755 AppEditors/FlatCAMExcEditor.py:1970
+#: AppEditors/FlatCAMGrbEditor.py:2819
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:102
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:250
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:138
+msgid "Pitch = Distance between elements of the array."
+msgstr "Abstand = Abstand zwischen Elementen des Arrays."
+
+#: AppEditors/FlatCAMExcEditor.py:1768 AppEditors/FlatCAMExcEditor.py:1984
+msgid ""
+"Angle at which the linear array is placed.\n"
+"The precision is of max 2 decimals.\n"
+"Min value is: -360 degrees.\n"
+"Max value is: 360.00 degrees."
+msgstr ""
+"Winkel, bei dem das lineare Feld platziert wird.\n"
+"Die Genauigkeit beträgt maximal 2 Dezimalstellen.\n"
+"Der Mindestwert beträgt -360 Grad.\n"
+"Maximalwert ist: 360.00 Grad."
+
+#: AppEditors/FlatCAMExcEditor.py:1789 AppEditors/FlatCAMExcEditor.py:2005
+#: AppEditors/FlatCAMGrbEditor.py:2853
+msgid ""
+"Direction for circular array.Can be CW = clockwise or CCW = counter "
+"clockwise."
+msgstr ""
+"Richtung für kreisförmige Anordnung. Kann CW = Uhrzeigersinn oder CCW = "
+"Gegenuhrzeigersinn sein."
+
+#: AppEditors/FlatCAMExcEditor.py:1796 AppEditors/FlatCAMExcEditor.py:2012
+#: AppEditors/FlatCAMGrbEditor.py:2861
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:129
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:136
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:286
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:142
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:170
+msgid "CW"
+msgstr "CW"
+
+#: AppEditors/FlatCAMExcEditor.py:1797 AppEditors/FlatCAMExcEditor.py:2013
+#: AppEditors/FlatCAMGrbEditor.py:2862
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:130
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:137
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:287
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:143
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:171
+msgid "CCW"
+msgstr "CCW"
+
+#: AppEditors/FlatCAMExcEditor.py:1801 AppEditors/FlatCAMExcEditor.py:2017
+#: AppEditors/FlatCAMGrbEditor.py:2868
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:115
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:145
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:265
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:295
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:150
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:179
+msgid "Angle at which each element in circular array is placed."
+msgstr ""
+"Winkel, um den jedes Element in einer kreisförmigen Anordnung platziert wird."
+
+#: AppEditors/FlatCAMExcEditor.py:1835
+msgid "Slot Parameters"
+msgstr "Schlitze-Parameter"
+
+#: AppEditors/FlatCAMExcEditor.py:1837
+msgid ""
+"Parameters for adding a slot (hole with oval shape)\n"
+"either single or as an part of an array."
+msgstr ""
+"Parameter zum Hinzufügen eines Schlitzes (Loch mit ovaler Form)\n"
+"entweder einzeln oder als Teil eines Arrays."
+
+#: AppEditors/FlatCAMExcEditor.py:1846
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:56
+#: AppTools/ToolCorners.py:127 AppTools/ToolProperties.py:559
+msgid "Length"
+msgstr "Länge"
+
+#: AppEditors/FlatCAMExcEditor.py:1848
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:164
+msgid "Length = The length of the slot."
+msgstr "Länge = Die Länge des Schlitzes."
+
+#: AppEditors/FlatCAMExcEditor.py:1862
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:180
+msgid ""
+"Direction on which the slot is oriented:\n"
+"- 'X' - horizontal axis \n"
+"- 'Y' - vertical axis or \n"
+"- 'Angle' - a custom angle for the slot inclination"
+msgstr ""
+"Richtung, in die der Steckplatz ausgerichtet ist:\n"
+"- 'X' - horizontale Achse\n"
+"- 'Y' - vertikale Achse oder\n"
+"- 'Winkel' - Ein benutzerdefinierter Winkel für die Schlitzneigung"
+
+#: AppEditors/FlatCAMExcEditor.py:1877
+msgid ""
+"Angle at which the slot is placed.\n"
+"The precision is of max 2 decimals.\n"
+"Min value is: -360 degrees.\n"
+"Max value is: 360.00 degrees."
+msgstr ""
+"Winkel, in dem der Schlitz platziert ist.\n"
+"Die Genauigkeit beträgt maximal 2 Dezimalstellen.\n"
+"Der Mindestwert beträgt: -360 Grad.\n"
+"Maximaler Wert ist: 360.00 Grad."
+
+#: AppEditors/FlatCAMExcEditor.py:1910
+msgid "Slot Array Parameters"
+msgstr "Schlitzes Array-Parameter"
+
+#: AppEditors/FlatCAMExcEditor.py:1912
+msgid "Parameters for the array of slots (linear or circular array)"
+msgstr ""
+"Parameter für das Array von Schlitzes (lineares oder kreisförmiges Array)"
+
+#: AppEditors/FlatCAMExcEditor.py:1921
+msgid ""
+"Select the type of slot array to create.\n"
+"It can be Linear X(Y) or Circular"
+msgstr ""
+"Wählen Sie den Typ des zu erstellenden Slot-Arrays.\n"
+"Es kann ein lineares X (Y) oder ein kreisförmiges sein"
+
+#: AppEditors/FlatCAMExcEditor.py:1933
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:219
+msgid "Nr of slots"
+msgstr "Anzahl der Slots"
+
+#: AppEditors/FlatCAMExcEditor.py:1934
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:221
+msgid "Specify how many slots to be in the array."
+msgstr "Geben Sie an, wie viele Steckplätze sich im Array befinden sollen."
+
+#: AppEditors/FlatCAMExcEditor.py:2452 AppObjects/FlatCAMExcellon.py:423
+msgid "Total Drills"
+msgstr "Bohrungen insgesamt"
+
+#: AppEditors/FlatCAMExcEditor.py:2484 AppObjects/FlatCAMExcellon.py:454
+msgid "Total Slots"
+msgstr "Schlitz insgesamt"
+
+#: AppEditors/FlatCAMExcEditor.py:2559 AppEditors/FlatCAMGeoEditor.py:1075
+#: AppEditors/FlatCAMGeoEditor.py:1116 AppEditors/FlatCAMGeoEditor.py:1144
+#: AppEditors/FlatCAMGeoEditor.py:1172 AppEditors/FlatCAMGeoEditor.py:1216
+#: AppEditors/FlatCAMGeoEditor.py:1251 AppEditors/FlatCAMGeoEditor.py:1279
+#: AppObjects/FlatCAMGeometry.py:656 AppObjects/FlatCAMGeometry.py:1090
+#: AppObjects/FlatCAMGeometry.py:1830 AppObjects/FlatCAMGeometry.py:2480
+#: AppTools/ToolNCC.py:1498 AppTools/ToolPaint.py:1248
+#: AppTools/ToolPaint.py:1419 AppTools/ToolSolderPaste.py:883
+#: AppTools/ToolSolderPaste.py:956
+msgid "Wrong value format entered, use a number."
+msgstr "Falsches Wertformat eingegeben, eine Zahl verwenden."
+
+#: AppEditors/FlatCAMExcEditor.py:2570
+msgid ""
+"Tool already in the original or actual tool list.\n"
+"Save and reedit Excellon if you need to add this tool. "
+msgstr ""
+"Werkzeug bereits in der ursprünglichen oder tatsächlichen Werkzeugliste.\n"
+"Speichern Sie Excellon und bearbeiten Sie es erneut, wenn Sie dieses Tool "
+"hinzufügen müssen. "
+
+#: AppEditors/FlatCAMExcEditor.py:2579 AppGUI/MainGUI.py:3318
+msgid "Added new tool with dia"
+msgstr "Neues Werkzeug mit Durchmesser hinzugefügt"
+
+#: AppEditors/FlatCAMExcEditor.py:2612
+msgid "Select a tool in Tool Table"
+msgstr "Wählen Sie ein Werkzeug in der Werkzeugtabelle aus"
+
+#: AppEditors/FlatCAMExcEditor.py:2642
+msgid "Deleted tool with diameter"
+msgstr "Gelöschtes Werkzeug mit Durchmesser"
+
+#: AppEditors/FlatCAMExcEditor.py:2790
+msgid "Done. Tool edit completed."
+msgstr "Erledigt. Werkzeugbearbeitung abgeschlossen."
+
+#: AppEditors/FlatCAMExcEditor.py:3327
+msgid "There are no Tools definitions in the file. Aborting Excellon creation."
+msgstr ""
+"Die Datei enthält keine Werkzeugdefinitionen. Abbruch der Excellon-"
+"Erstellung."
+
+#: AppEditors/FlatCAMExcEditor.py:3331
+msgid "An internal error has ocurred. See Shell.\n"
+msgstr ""
+"Ein interner Fehler ist aufgetreten. Siehe Shell.\n"
+"\n"
+
+#: AppEditors/FlatCAMExcEditor.py:3336
+msgid "Creating Excellon."
+msgstr "Excellon erstellen."
+
+#: AppEditors/FlatCAMExcEditor.py:3348
+msgid "Excellon editing finished."
+msgstr "Excellon-Bearbeitung abgeschlossen."
+
+#: AppEditors/FlatCAMExcEditor.py:3365
+msgid "Cancelled. There is no Tool/Drill selected"
+msgstr "Abgebrochen. Es ist kein Werkzeug / Bohrer ausgewählt"
+
+#: AppEditors/FlatCAMExcEditor.py:3599 AppEditors/FlatCAMExcEditor.py:3607
+#: AppEditors/FlatCAMGeoEditor.py:4343 AppEditors/FlatCAMGeoEditor.py:4357
+#: AppEditors/FlatCAMGrbEditor.py:1085 AppEditors/FlatCAMGrbEditor.py:1202
+#: AppEditors/FlatCAMGrbEditor.py:1488 AppEditors/FlatCAMGrbEditor.py:1757
+#: AppEditors/FlatCAMGrbEditor.py:4595 AppEditors/FlatCAMGrbEditor.py:4610
+#: AppGUI/MainGUI.py:2671 AppGUI/MainGUI.py:2683
+#: AppTools/ToolAlignObjects.py:393 AppTools/ToolAlignObjects.py:415
+#: App_Main.py:4649 App_Main.py:4803
+msgid "Done."
+msgstr "Fertig."
+
+#: AppEditors/FlatCAMExcEditor.py:3982
+msgid "Done. Drill(s) deleted."
+msgstr "Erledigt. Bohrer gelöscht."
+
+#: AppEditors/FlatCAMExcEditor.py:4055 AppEditors/FlatCAMExcEditor.py:4065
+#: AppEditors/FlatCAMGrbEditor.py:5041
+msgid "Click on the circular array Center position"
+msgstr "Klicken Sie auf die kreisförmige Anordnung in der Mitte"
+
+#: AppEditors/FlatCAMGeoEditor.py:84
+msgid "Buffer distance:"
+msgstr "Pufferabstand:"
+
+#: AppEditors/FlatCAMGeoEditor.py:85
+msgid "Buffer corner:"
+msgstr "Pufferecke:"
+
+#: AppEditors/FlatCAMGeoEditor.py:87
+msgid ""
+"There are 3 types of corners:\n"
+" - 'Round': the corner is rounded for exterior buffer.\n"
+" - 'Square': the corner is met in a sharp angle for exterior buffer.\n"
+" - 'Beveled': the corner is a line that directly connects the features "
+"meeting in the corner"
+msgstr ""
+"Es gibt 3 Arten von Ecken:\n"
+"- 'Rund': Die Ecke wird für den Außenpuffer abgerundet.\n"
+"- 'Quadrat:' Die Ecke wird für den äußeren Puffer in einem spitzen Winkel "
+"getroffen.\n"
+"- 'Abgeschrägt:' Die Ecke ist eine Linie, die die Features, die sich in der "
+"Ecke treffen, direkt verbindet"
+
+#: AppEditors/FlatCAMGeoEditor.py:93 AppEditors/FlatCAMGrbEditor.py:2629
+msgid "Round"
+msgstr "Runden"
+
+#: AppEditors/FlatCAMGeoEditor.py:94 AppEditors/FlatCAMGrbEditor.py:2630
+#: AppGUI/ObjectUI.py:1370 AppGUI/ObjectUI.py:2204
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:217
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:68
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:175
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:68
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:177
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:143
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:291
+#: AppTools/ToolExtractDrills.py:94 AppTools/ToolExtractDrills.py:227
+#: AppTools/ToolNCC.py:583 AppTools/ToolPaint.py:526
+#: AppTools/ToolPunchGerber.py:105 AppTools/ToolPunchGerber.py:255
+#: AppTools/ToolQRCode.py:198
+msgid "Square"
+msgstr "Quadrat"
+
+#: AppEditors/FlatCAMGeoEditor.py:95 AppEditors/FlatCAMGrbEditor.py:2631
+msgid "Beveled"
+msgstr "Abgeschrägt"
+
+#: AppEditors/FlatCAMGeoEditor.py:102
+msgid "Buffer Interior"
+msgstr "Pufferinnenraum"
+
+#: AppEditors/FlatCAMGeoEditor.py:104
+msgid "Buffer Exterior"
+msgstr "Puffer außen"
+
+#: AppEditors/FlatCAMGeoEditor.py:110
+msgid "Full Buffer"
+msgstr "Voller Puffer"
+
+#: AppEditors/FlatCAMGeoEditor.py:131 AppEditors/FlatCAMGeoEditor.py:3016
+#: AppGUI/MainGUI.py:4220
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:190
+msgid "Buffer Tool"
+msgstr "Pufferwerkzeug"
+
+#: AppEditors/FlatCAMGeoEditor.py:143 AppEditors/FlatCAMGeoEditor.py:160
+#: AppEditors/FlatCAMGeoEditor.py:177 AppEditors/FlatCAMGeoEditor.py:3035
+#: AppEditors/FlatCAMGeoEditor.py:3063 AppEditors/FlatCAMGeoEditor.py:3091
+#: AppEditors/FlatCAMGrbEditor.py:5094
+msgid "Buffer distance value is missing or wrong format. Add it and retry."
+msgstr ""
+"Pufferabstandswert fehlt oder falsches Format. Fügen Sie es hinzu und "
+"versuchen Sie es erneut."
+
+#: AppEditors/FlatCAMGeoEditor.py:241
+msgid "Font"
+msgstr "Schrift"
+
+#: AppEditors/FlatCAMGeoEditor.py:322 AppGUI/MainGUI.py:1411
+msgid "Text"
+msgstr "Text"
+
+#: AppEditors/FlatCAMGeoEditor.py:348
+msgid "Text Tool"
+msgstr "Textwerkzeug"
+
+#: AppEditors/FlatCAMGeoEditor.py:404 AppGUI/MainGUI.py:513
+#: AppGUI/MainGUI.py:1158 AppGUI/ObjectUI.py:818 AppGUI/ObjectUI.py:1764
+#: AppObjects/FlatCAMExcellon.py:821 AppObjects/FlatCAMExcellon.py:1163
+#: AppObjects/FlatCAMGeometry.py:816 AppTools/ToolNCC.py:331
+#: AppTools/ToolNCC.py:797 AppTools/ToolPaint.py:313 AppTools/ToolPaint.py:766
+msgid "Tool"
+msgstr "Werkzeug"
+
+#: AppEditors/FlatCAMGeoEditor.py:438 AppGUI/ObjectUI.py:364
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:43
+msgid "Tool dia"
+msgstr "Werkzeugdurchmesser"
+
+#: AppEditors/FlatCAMGeoEditor.py:440
+msgid "Diameter of the tool to be used in the operation."
+msgstr "Durchmesser des im Betrieb zu verwendenden Werkzeugs."
+
+#: AppEditors/FlatCAMGeoEditor.py:486
+msgid ""
+"Algorithm to paint the polygons:\n"
+"- Standard: Fixed step inwards.\n"
+"- Seed-based: Outwards from seed.\n"
+"- Line-based: Parallel lines."
+msgstr ""
+"Algorithmus zum Malen der Polygone:\n"
+"- Standard: Schritt nach innen behoben.\n"
+"- Samenbasiert: Aus dem Samen heraus.\n"
+"- Linienbasiert: Parallele Linien."
+
+#: AppEditors/FlatCAMGeoEditor.py:505
+msgid "Connect:"
+msgstr "Verbinden:"
+
+#: AppEditors/FlatCAMGeoEditor.py:515
+msgid "Contour:"
+msgstr "Kontur:"
+
+#: AppEditors/FlatCAMGeoEditor.py:528 AppGUI/MainGUI.py:1415
+msgid "Paint"
+msgstr "Malen"
+
+#: AppEditors/FlatCAMGeoEditor.py:546 AppGUI/MainGUI.py:917
+#: AppGUI/MainGUI.py:1910 AppGUI/ObjectUI.py:2269 AppTools/ToolPaint.py:42
+#: AppTools/ToolPaint.py:737
+msgid "Paint Tool"
+msgstr "Werkzeug Malen"
+
+#: AppEditors/FlatCAMGeoEditor.py:582 AppEditors/FlatCAMGeoEditor.py:1054
+#: AppEditors/FlatCAMGeoEditor.py:3023 AppEditors/FlatCAMGeoEditor.py:3051
+#: AppEditors/FlatCAMGeoEditor.py:3079 AppEditors/FlatCAMGeoEditor.py:4496
+#: AppEditors/FlatCAMGrbEditor.py:5745
+msgid "Cancelled. No shape selected."
+msgstr "Abgebrochen. Keine Form ausgewählt."
+
+#: AppEditors/FlatCAMGeoEditor.py:595 AppEditors/FlatCAMGeoEditor.py:3041
+#: AppEditors/FlatCAMGeoEditor.py:3069 AppEditors/FlatCAMGeoEditor.py:3097
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:59
+#: AppTools/ToolProperties.py:117 AppTools/ToolProperties.py:162
+msgid "Tools"
+msgstr "Werkzeuge"
+
+#: AppEditors/FlatCAMGeoEditor.py:606 AppEditors/FlatCAMGeoEditor.py:990
+#: AppEditors/FlatCAMGrbEditor.py:5284 AppEditors/FlatCAMGrbEditor.py:5681
+#: AppGUI/MainGUI.py:938 AppGUI/MainGUI.py:1931 AppTools/ToolTransform.py:460
+msgid "Transform Tool"
+msgstr "Werkzeug Umwandeln"
+
+#: AppEditors/FlatCAMGeoEditor.py:607 AppEditors/FlatCAMGeoEditor.py:672
+#: AppEditors/FlatCAMGrbEditor.py:5285 AppEditors/FlatCAMGrbEditor.py:5350
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:45
+#: AppTools/ToolTransform.py:24 AppTools/ToolTransform.py:466
+msgid "Rotate"
+msgstr "Drehen"
+
+#: AppEditors/FlatCAMGeoEditor.py:608 AppEditors/FlatCAMGrbEditor.py:5286
+#: AppTools/ToolTransform.py:25
+msgid "Skew/Shear"
+msgstr "Neigung/Schere"
+
+#: AppEditors/FlatCAMGeoEditor.py:609 AppEditors/FlatCAMGrbEditor.py:2678
+#: AppEditors/FlatCAMGrbEditor.py:5287 AppGUI/MainGUI.py:1060
+#: AppGUI/MainGUI.py:1458 AppGUI/MainGUI.py:2053 AppGUI/MainGUI.py:4432
+#: AppGUI/ObjectUI.py:125
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:95
+#: AppTools/ToolTransform.py:26
+msgid "Scale"
+msgstr "Skalieren"
+
+#: AppEditors/FlatCAMGeoEditor.py:610 AppEditors/FlatCAMGrbEditor.py:5288
+#: AppTools/ToolTransform.py:27
+msgid "Mirror (Flip)"
+msgstr "Spiegeln (Flip)"
+
+#: AppEditors/FlatCAMGeoEditor.py:624 AppEditors/FlatCAMGrbEditor.py:5302
+#: AppGUI/MainGUI.py:849 AppGUI/MainGUI.py:1844
+msgid "Editor"
+msgstr "Editor"
+
+#: AppEditors/FlatCAMGeoEditor.py:656 AppEditors/FlatCAMGrbEditor.py:5334
+msgid "Angle:"
+msgstr "Winkel:"
+
+#: AppEditors/FlatCAMGeoEditor.py:658 AppEditors/FlatCAMGrbEditor.py:5336
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:55
+#: AppTools/ToolTransform.py:62
+msgid ""
+"Angle for Rotation action, in degrees.\n"
+"Float number between -360 and 359.\n"
+"Positive numbers for CW motion.\n"
+"Negative numbers for CCW motion."
+msgstr ""
+"Drehwinkel in Grad.\n"
+"Float-Nummer zwischen -360 und 359.\n"
+"Positive Zahlen für CW-Bewegung.\n"
+"Negative Zahlen für CCW-Bewegung."
+
+#: AppEditors/FlatCAMGeoEditor.py:674 AppEditors/FlatCAMGrbEditor.py:5352
+msgid ""
+"Rotate the selected shape(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected shapes."
+msgstr ""
+"Die ausgewählten Formen drehen.\n"
+"Der Bezugspunkt ist die Mitte von\n"
+"der Begrenzungsrahmen für alle ausgewählten Formen."
+
+#: AppEditors/FlatCAMGeoEditor.py:697 AppEditors/FlatCAMGrbEditor.py:5375
+msgid "Angle X:"
+msgstr "Winkel X:"
+
+#: AppEditors/FlatCAMGeoEditor.py:699 AppEditors/FlatCAMGeoEditor.py:719
+#: AppEditors/FlatCAMGrbEditor.py:5377 AppEditors/FlatCAMGrbEditor.py:5397
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:74
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:88
+#: AppTools/ToolCalibration.py:505 AppTools/ToolCalibration.py:518
+msgid ""
+"Angle for Skew action, in degrees.\n"
+"Float number between -360 and 359."
+msgstr ""
+"Winkel für die Schräglage in Grad.\n"
+"Float-Nummer zwischen -360 und 359."
+
+#: AppEditors/FlatCAMGeoEditor.py:710 AppEditors/FlatCAMGrbEditor.py:5388
+#: AppTools/ToolTransform.py:467
+msgid "Skew X"
+msgstr "Neigung X"
+
+#: AppEditors/FlatCAMGeoEditor.py:712 AppEditors/FlatCAMGeoEditor.py:732
+#: AppEditors/FlatCAMGrbEditor.py:5390 AppEditors/FlatCAMGrbEditor.py:5410
+msgid ""
+"Skew/shear the selected shape(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected shapes."
+msgstr ""
+"Schrägstellung/Scherung der ausgewählten Form(en).\n"
+"Der Bezugspunkt ist die Mitte von\n"
+"der Begrenzungsrahmen für alle ausgewählten Formen."
+
+#: AppEditors/FlatCAMGeoEditor.py:717 AppEditors/FlatCAMGrbEditor.py:5395
+msgid "Angle Y:"
+msgstr "Winkel Y:"
+
+#: AppEditors/FlatCAMGeoEditor.py:730 AppEditors/FlatCAMGrbEditor.py:5408
+#: AppTools/ToolTransform.py:468
+msgid "Skew Y"
+msgstr "Neigung Y"
+
+#: AppEditors/FlatCAMGeoEditor.py:758 AppEditors/FlatCAMGrbEditor.py:5436
+msgid "Factor X:"
+msgstr "Faktor X:"
+
+#: AppEditors/FlatCAMGeoEditor.py:760 AppEditors/FlatCAMGrbEditor.py:5438
+#: AppTools/ToolCalibration.py:469
+msgid "Factor for Scale action over X axis."
+msgstr "Faktor für die Skalierungsaktion über der X-Achse."
+
+#: AppEditors/FlatCAMGeoEditor.py:770 AppEditors/FlatCAMGrbEditor.py:5448
+#: AppTools/ToolTransform.py:469
+msgid "Scale X"
+msgstr "Maßstab X"
+
+#: AppEditors/FlatCAMGeoEditor.py:772 AppEditors/FlatCAMGeoEditor.py:791
+#: AppEditors/FlatCAMGrbEditor.py:5450 AppEditors/FlatCAMGrbEditor.py:5469
+msgid ""
+"Scale the selected shape(s).\n"
+"The point of reference depends on \n"
+"the Scale reference checkbox state."
+msgstr ""
+"Skalieren Sie die ausgewählten Formen.\n"
+"Der Bezugspunkt hängt von ab\n"
+"das Kontrollkästchen Skalenreferenz."
+
+#: AppEditors/FlatCAMGeoEditor.py:777 AppEditors/FlatCAMGrbEditor.py:5455
+msgid "Factor Y:"
+msgstr "Faktor Y:"
+
+#: AppEditors/FlatCAMGeoEditor.py:779 AppEditors/FlatCAMGrbEditor.py:5457
+#: AppTools/ToolCalibration.py:481
+msgid "Factor for Scale action over Y axis."
+msgstr "Faktor für die Skalierungsaktion über der Y-Achse."
+
+#: AppEditors/FlatCAMGeoEditor.py:789 AppEditors/FlatCAMGrbEditor.py:5467
+#: AppTools/ToolTransform.py:470
+msgid "Scale Y"
+msgstr "Maßstab Y"
+
+#: AppEditors/FlatCAMGeoEditor.py:798 AppEditors/FlatCAMGrbEditor.py:5476
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:124
+#: AppTools/ToolTransform.py:189
+msgid "Link"
+msgstr "Verknüpfung"
+
+#: AppEditors/FlatCAMGeoEditor.py:800 AppEditors/FlatCAMGrbEditor.py:5478
+msgid ""
+"Scale the selected shape(s)\n"
+"using the Scale Factor X for both axis."
+msgstr ""
+"Skalieren der ausgewählten Form (en)\n"
+"Verwenden des Skalierungsfaktors X für beide Achsen."
+
+#: AppEditors/FlatCAMGeoEditor.py:806 AppEditors/FlatCAMGrbEditor.py:5484
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:132
+#: AppTools/ToolTransform.py:196
+msgid "Scale Reference"
+msgstr "Skalenreferenz"
+
+#: AppEditors/FlatCAMGeoEditor.py:808 AppEditors/FlatCAMGrbEditor.py:5486
+msgid ""
+"Scale the selected shape(s)\n"
+"using the origin reference when checked,\n"
+"and the center of the biggest bounding box\n"
+"of the selected shapes when unchecked."
+msgstr ""
+"Skalieren der ausgewählten Form (en)\n"
+"unter Verwendung der Ursprungsreferenz, wenn geprüft\n"
+"und die Mitte der größten Begrenzungsbox\n"
+"der ausgewählten Formen, wenn nicht markiert."
+
+#: AppEditors/FlatCAMGeoEditor.py:836 AppEditors/FlatCAMGrbEditor.py:5515
+msgid "Value X:"
+msgstr "Wert X:"
+
+#: AppEditors/FlatCAMGeoEditor.py:838 AppEditors/FlatCAMGrbEditor.py:5517
+msgid "Value for Offset action on X axis."
+msgstr "Wert für die Offset-Aktion auf der X-Achse."
+
+#: AppEditors/FlatCAMGeoEditor.py:848 AppEditors/FlatCAMGrbEditor.py:5527
+#: AppTools/ToolTransform.py:473
+msgid "Offset X"
+msgstr "Versatz X"
+
+#: AppEditors/FlatCAMGeoEditor.py:850 AppEditors/FlatCAMGeoEditor.py:870
+#: AppEditors/FlatCAMGrbEditor.py:5529 AppEditors/FlatCAMGrbEditor.py:5549
+msgid ""
+"Offset the selected shape(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected shapes.\n"
+msgstr ""
+"Versetzt die ausgewählten Formen.\n"
+"Der Bezugspunkt ist die Mitte von\n"
+"der Begrenzungsrahmen für alle ausgewählten Formen.\n"
+
+#: AppEditors/FlatCAMGeoEditor.py:856 AppEditors/FlatCAMGrbEditor.py:5535
+msgid "Value Y:"
+msgstr "Wert Y:"
+
+#: AppEditors/FlatCAMGeoEditor.py:858 AppEditors/FlatCAMGrbEditor.py:5537
+msgid "Value for Offset action on Y axis."
+msgstr "Wert für die Offset-Aktion auf der Y-Achse."
+
+#: AppEditors/FlatCAMGeoEditor.py:868 AppEditors/FlatCAMGrbEditor.py:5547
+#: AppTools/ToolTransform.py:474
+msgid "Offset Y"
+msgstr "Versatz Y"
+
+#: AppEditors/FlatCAMGeoEditor.py:899 AppEditors/FlatCAMGrbEditor.py:5578
+#: AppTools/ToolTransform.py:475
+msgid "Flip on X"
+msgstr "Flip auf X"
+
+#: AppEditors/FlatCAMGeoEditor.py:901 AppEditors/FlatCAMGeoEditor.py:908
+#: AppEditors/FlatCAMGrbEditor.py:5580 AppEditors/FlatCAMGrbEditor.py:5587
+msgid ""
+"Flip the selected shape(s) over the X axis.\n"
+"Does not create a new shape."
+msgstr ""
+"Kippen Sie die ausgewählte Form (en) über die X-Achse.\n"
+"Erzeugt keine neue Form."
+
+#: AppEditors/FlatCAMGeoEditor.py:906 AppEditors/FlatCAMGrbEditor.py:5585
+#: AppTools/ToolTransform.py:476
+msgid "Flip on Y"
+msgstr "Flip auf Y"
+
+#: AppEditors/FlatCAMGeoEditor.py:914 AppEditors/FlatCAMGrbEditor.py:5593
+msgid "Ref Pt"
+msgstr "Ref. Pt"
+
+#: AppEditors/FlatCAMGeoEditor.py:916 AppEditors/FlatCAMGrbEditor.py:5595
+msgid ""
+"Flip the selected shape(s)\n"
+"around the point in Point Entry Field.\n"
+"\n"
+"The point coordinates can be captured by\n"
+"left click on canvas together with pressing\n"
+"SHIFT key. \n"
+"Then click Add button to insert coordinates.\n"
+"Or enter the coords in format (x, y) in the\n"
+"Point Entry field and click Flip on X(Y)"
+msgstr ""
+"Die ausgewählten Formen umdrehen\n"
+"um den Punkt im Eingabefeld.\n"
+"\n"
+"Die Punktkoordinaten können mit erfasst werden\n"
+"Klicken Sie mit der linken Maustaste auf die Leinwand\n"
+"Shift Taste.\n"
+"Klicken Sie dann auf die Schaltfläche Hinzufügen, um die Koordinaten "
+"einzufügen.\n"
+"Oder geben Sie die Koordinaten im Format (x, y) in ein\n"
+"Punkt-Eingabefeld und klicken Sie auf X (Y) drehen"
+
+#: AppEditors/FlatCAMGeoEditor.py:928 AppEditors/FlatCAMGrbEditor.py:5607
+msgid "Point:"
+msgstr "Punkt:"
+
+#: AppEditors/FlatCAMGeoEditor.py:930 AppEditors/FlatCAMGrbEditor.py:5609
+#: AppTools/ToolTransform.py:299
+msgid ""
+"Coordinates in format (x, y) used as reference for mirroring.\n"
+"The 'x' in (x, y) will be used when using Flip on X and\n"
+"the 'y' in (x, y) will be used when using Flip on Y."
+msgstr ""
+"Koordinaten im Format (x, y), die als Referenz für die Spiegelung verwendet "
+"werden.\n"
+"Das 'x' in (x, y) wird verwendet, wenn Sie bei X und\n"
+"Das 'y' in (x, y) wird verwendet, wenn Flip auf Y verwendet wird."
+
+#: AppEditors/FlatCAMGeoEditor.py:938 AppEditors/FlatCAMGrbEditor.py:2581
+#: AppEditors/FlatCAMGrbEditor.py:5619 AppGUI/ObjectUI.py:1697
+#: AppTools/ToolDblSided.py:192 AppTools/ToolDblSided.py:425
+#: AppTools/ToolNCC.py:294 AppTools/ToolNCC.py:631 AppTools/ToolPaint.py:276
+#: AppTools/ToolPaint.py:675 AppTools/ToolSolderPaste.py:122
+#: AppTools/ToolSolderPaste.py:597 AppTools/ToolTransform.py:478
+#: App_Main.py:5593
+msgid "Add"
+msgstr "Hinzufügen"
+
+#: AppEditors/FlatCAMGeoEditor.py:940 AppEditors/FlatCAMGrbEditor.py:5621
+#: AppTools/ToolTransform.py:309
+msgid ""
+"The point coordinates can be captured by\n"
+"left click on canvas together with pressing\n"
+"SHIFT key. Then click Add button to insert."
+msgstr ""
+"Die Punktkoordinaten können mit erfasst werden\n"
+"Klicken Sie mit der linken Maustaste auf die Leinwand\n"
+"Shift Taste. Klicken Sie dann auf die Schaltfläche Hinzufügen, um sie "
+"einzufügen."
+
+#: AppEditors/FlatCAMGeoEditor.py:1303 AppEditors/FlatCAMGrbEditor.py:5929
+msgid "No shape selected. Please Select a shape to rotate!"
+msgstr "Keine Form ausgewählt Bitte wählen Sie eine Form zum Drehen aus!"
+
+#: AppEditors/FlatCAMGeoEditor.py:1306 AppEditors/FlatCAMGrbEditor.py:5932
+#: AppTools/ToolTransform.py:679
+msgid "Appying Rotate"
+msgstr "Anwenden Drehen"
+
+#: AppEditors/FlatCAMGeoEditor.py:1332 AppEditors/FlatCAMGrbEditor.py:5964
+msgid "Done. Rotate completed."
+msgstr "Erledigt. Drehen abgeschlossen."
+
+#: AppEditors/FlatCAMGeoEditor.py:1334
+msgid "Rotation action was not executed"
+msgstr "Rotationsaktion wurde nicht ausgeführt"
+
+#: AppEditors/FlatCAMGeoEditor.py:1353 AppEditors/FlatCAMGrbEditor.py:5983
+msgid "No shape selected. Please Select a shape to flip!"
+msgstr "Keine Form ausgewählt. Bitte wählen Sie eine Form zum Kippen!"
+
+#: AppEditors/FlatCAMGeoEditor.py:1356 AppEditors/FlatCAMGrbEditor.py:5986
+#: AppTools/ToolTransform.py:728
+msgid "Applying Flip"
+msgstr "Flip anwenden"
+
+#: AppEditors/FlatCAMGeoEditor.py:1385 AppEditors/FlatCAMGrbEditor.py:6024
+#: AppTools/ToolTransform.py:769
+msgid "Flip on the Y axis done"
+msgstr "Spiegeln Sie die Y-Achse bereit"
+
+#: AppEditors/FlatCAMGeoEditor.py:1389 AppEditors/FlatCAMGrbEditor.py:6033
+#: AppTools/ToolTransform.py:778
+msgid "Flip on the X axis done"
+msgstr "Spiegeln Sie die X-Achse bereit"
+
+#: AppEditors/FlatCAMGeoEditor.py:1397
+msgid "Flip action was not executed"
+msgstr "Spiegeln-Aktion wurde nicht ausgeführt"
+
+#: AppEditors/FlatCAMGeoEditor.py:1415 AppEditors/FlatCAMGrbEditor.py:6053
+msgid "No shape selected. Please Select a shape to shear/skew!"
+msgstr ""
+"Keine Form ausgewählt. Bitte wählen Sie eine Form zum Scheren / "
+"Schrägstellen!"
+
+#: AppEditors/FlatCAMGeoEditor.py:1418 AppEditors/FlatCAMGrbEditor.py:6056
+#: AppTools/ToolTransform.py:801
+msgid "Applying Skew"
+msgstr "Schräglauf anwenden"
+
+#: AppEditors/FlatCAMGeoEditor.py:1441 AppEditors/FlatCAMGrbEditor.py:6090
+msgid "Skew on the X axis done"
+msgstr "Schrägstellung auf der X-Achse erfolgt"
+
+#: AppEditors/FlatCAMGeoEditor.py:1443 AppEditors/FlatCAMGrbEditor.py:6092
+msgid "Skew on the Y axis done"
+msgstr "Schrägstellung auf der Y-Achse erfolgt"
+
+#: AppEditors/FlatCAMGeoEditor.py:1446
+msgid "Skew action was not executed"
+msgstr "Die Versatzaktion wurde nicht ausgeführt"
+
+#: AppEditors/FlatCAMGeoEditor.py:1468 AppEditors/FlatCAMGrbEditor.py:6114
+msgid "No shape selected. Please Select a shape to scale!"
+msgstr "Keine Form ausgewählt. Bitte wählen Sie eine zu skalierende Form!"
+
+#: AppEditors/FlatCAMGeoEditor.py:1471 AppEditors/FlatCAMGrbEditor.py:6117
+#: AppTools/ToolTransform.py:847
+msgid "Applying Scale"
+msgstr "Maßstab anwenden"
+
+#: AppEditors/FlatCAMGeoEditor.py:1503 AppEditors/FlatCAMGrbEditor.py:6154
+msgid "Scale on the X axis done"
+msgstr "Skalieren auf der X-Achse erledigt"
+
+#: AppEditors/FlatCAMGeoEditor.py:1505 AppEditors/FlatCAMGrbEditor.py:6156
+msgid "Scale on the Y axis done"
+msgstr "Skalieren auf der Y-Achse erledigt"
+
+#: AppEditors/FlatCAMGeoEditor.py:1507
+msgid "Scale action was not executed"
+msgstr "Skalierungsaktion wurde nicht ausgeführt"
+
+#: AppEditors/FlatCAMGeoEditor.py:1522 AppEditors/FlatCAMGrbEditor.py:6173
+msgid "No shape selected. Please Select a shape to offset!"
+msgstr "Keine Form ausgewählt. Bitte wählen Sie eine zu versetzende Form!"
+
+#: AppEditors/FlatCAMGeoEditor.py:1525 AppEditors/FlatCAMGrbEditor.py:6176
+#: AppTools/ToolTransform.py:897
+msgid "Applying Offset"
+msgstr "Offsetdruck anwenden"
+
+#: AppEditors/FlatCAMGeoEditor.py:1535 AppEditors/FlatCAMGrbEditor.py:6197
+msgid "Offset on the X axis done"
+msgstr "Versatz auf der X-Achse erfolgt"
+
+#: AppEditors/FlatCAMGeoEditor.py:1537 AppEditors/FlatCAMGrbEditor.py:6199
+msgid "Offset on the Y axis done"
+msgstr "Versatz auf der Y-Achse erfolgt"
+
+#: AppEditors/FlatCAMGeoEditor.py:1540
+msgid "Offset action was not executed"
+msgstr "Offsetaktion wurde nicht ausgeführt"
+
+#: AppEditors/FlatCAMGeoEditor.py:1544 AppEditors/FlatCAMGrbEditor.py:6206
+msgid "Rotate ..."
+msgstr "Drehen ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:1545 AppEditors/FlatCAMGeoEditor.py:1600
+#: AppEditors/FlatCAMGeoEditor.py:1617 AppEditors/FlatCAMGrbEditor.py:6207
+#: AppEditors/FlatCAMGrbEditor.py:6256 AppEditors/FlatCAMGrbEditor.py:6271
+msgid "Enter an Angle Value (degrees)"
+msgstr "Geben Sie einen Winkelwert (Grad) ein"
+
+#: AppEditors/FlatCAMGeoEditor.py:1554 AppEditors/FlatCAMGrbEditor.py:6215
+msgid "Geometry shape rotate done"
+msgstr "Geometrieform drehen fertig"
+
+#: AppEditors/FlatCAMGeoEditor.py:1558 AppEditors/FlatCAMGrbEditor.py:6218
+msgid "Geometry shape rotate cancelled"
+msgstr "Geometrieform drehen abgebrochen"
+
+#: AppEditors/FlatCAMGeoEditor.py:1563 AppEditors/FlatCAMGrbEditor.py:6223
+msgid "Offset on X axis ..."
+msgstr "Versatz auf der X-Achse ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:1564 AppEditors/FlatCAMGeoEditor.py:1583
+#: AppEditors/FlatCAMGrbEditor.py:6224 AppEditors/FlatCAMGrbEditor.py:6241
+msgid "Enter a distance Value"
+msgstr "Geben Sie einen Abstandswert ein"
+
+#: AppEditors/FlatCAMGeoEditor.py:1573 AppEditors/FlatCAMGrbEditor.py:6232
+msgid "Geometry shape offset on X axis done"
+msgstr "Geometrieformversatz auf der X-Achse erfolgt"
+
+#: AppEditors/FlatCAMGeoEditor.py:1577 AppEditors/FlatCAMGrbEditor.py:6235
+msgid "Geometry shape offset X cancelled"
+msgstr "[WARNING_NOTCL] Geometrieformversatz X abgebrochen"
+
+#: AppEditors/FlatCAMGeoEditor.py:1582 AppEditors/FlatCAMGrbEditor.py:6240
+msgid "Offset on Y axis ..."
+msgstr "Versatz auf der Y-Achse ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:1592 AppEditors/FlatCAMGrbEditor.py:6249
+msgid "Geometry shape offset on Y axis done"
+msgstr "Geometrieformversatz auf Y-Achse erfolgt"
+
+#: AppEditors/FlatCAMGeoEditor.py:1596
+msgid "Geometry shape offset on Y axis canceled"
+msgstr "Geometrieformversatz auf Y-Achse erfolgt"
+
+#: AppEditors/FlatCAMGeoEditor.py:1599 AppEditors/FlatCAMGrbEditor.py:6255
+msgid "Skew on X axis ..."
+msgstr "Neigung auf der X-Achse ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:1609 AppEditors/FlatCAMGrbEditor.py:6264
+msgid "Geometry shape skew on X axis done"
+msgstr "Geometrieformversatz auf X-Achse"
+
+#: AppEditors/FlatCAMGeoEditor.py:1613
+msgid "Geometry shape skew on X axis canceled"
+msgstr "Geometrieformversatz auf X-Achse"
+
+#: AppEditors/FlatCAMGeoEditor.py:1616 AppEditors/FlatCAMGrbEditor.py:6270
+msgid "Skew on Y axis ..."
+msgstr "Neigung auf der Y-Achse ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:1626 AppEditors/FlatCAMGrbEditor.py:6279
+msgid "Geometry shape skew on Y axis done"
+msgstr "Geometrieformversatz auf Y-Achse erfolgt"
+
+#: AppEditors/FlatCAMGeoEditor.py:1630
+msgid "Geometry shape skew on Y axis canceled"
+msgstr "Geometrieformversatz auf Y-Achse erfolgt"
+
+#: AppEditors/FlatCAMGeoEditor.py:2007 AppEditors/FlatCAMGeoEditor.py:2078
+#: AppEditors/FlatCAMGrbEditor.py:1435 AppEditors/FlatCAMGrbEditor.py:1513
+msgid "Click on Center point ..."
+msgstr "Klicken Sie auf Mittelpunkt."
+
+#: AppEditors/FlatCAMGeoEditor.py:2020 AppEditors/FlatCAMGrbEditor.py:1445
+msgid "Click on Perimeter point to complete ..."
+msgstr "Klicken Sie auf Umfangspunkt, um den Vorgang abzuschließen."
+
+#: AppEditors/FlatCAMGeoEditor.py:2052
+msgid "Done. Adding Circle completed."
+msgstr "Erledigt. Hinzufügen des Kreises abgeschlossen."
+
+#: AppEditors/FlatCAMGeoEditor.py:2106 AppEditors/FlatCAMGrbEditor.py:1546
+msgid "Click on Start point ..."
+msgstr "Klicken Sie auf Startpunkt ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2108 AppEditors/FlatCAMGrbEditor.py:1548
+msgid "Click on Point3 ..."
+msgstr "Klicken Sie auf Punkt3 ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2110 AppEditors/FlatCAMGrbEditor.py:1550
+msgid "Click on Stop point ..."
+msgstr "Klicken Sie auf Haltepunkt ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2115 AppEditors/FlatCAMGrbEditor.py:1555
+msgid "Click on Stop point to complete ..."
+msgstr "Klicken Sie auf Stopp, um den Vorgang abzuschließen."
+
+#: AppEditors/FlatCAMGeoEditor.py:2117 AppEditors/FlatCAMGrbEditor.py:1557
+msgid "Click on Point2 to complete ..."
+msgstr "Klicken Sie auf Punkt2, um den Vorgang abzuschließen."
+
+#: AppEditors/FlatCAMGeoEditor.py:2119 AppEditors/FlatCAMGrbEditor.py:1559
+msgid "Click on Center point to complete ..."
+msgstr "Klicken Sie auf Mittelpunkt, um den Vorgang abzuschließen."
+
+#: AppEditors/FlatCAMGeoEditor.py:2131
+#, python-format
+msgid "Direction: %s"
+msgstr "Richtung: %s"
+
+#: AppEditors/FlatCAMGeoEditor.py:2145 AppEditors/FlatCAMGrbEditor.py:1585
+msgid "Mode: Start -> Stop -> Center. Click on Start point ..."
+msgstr "Modus: Start -> Stopp -> Zentrieren. Klicken Sie auf Startpunkt ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2148 AppEditors/FlatCAMGrbEditor.py:1588
+msgid "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..."
+msgstr "Modus: Punkt 1 -> Punkt 3 -> Punkt 2. Klicken Sie auf Punkt1 ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2151 AppEditors/FlatCAMGrbEditor.py:1591
+msgid "Mode: Center -> Start -> Stop. Click on Center point ..."
+msgstr "Modus: Mitte -> Start -> Stopp. Klicken Sie auf Mittelpunkt."
+
+#: AppEditors/FlatCAMGeoEditor.py:2292
+msgid "Done. Arc completed."
+msgstr "Erledigt. Arc abgeschlossen."
+
+#: AppEditors/FlatCAMGeoEditor.py:2323 AppEditors/FlatCAMGeoEditor.py:2396
+msgid "Click on 1st corner ..."
+msgstr "Klicken Sie auf die 1. Ecke ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2335
+msgid "Click on opposite corner to complete ..."
+msgstr ""
+"Klicken Sie auf die gegenüberliegende Ecke, um den Vorgang abzuschließen."
+
+#: AppEditors/FlatCAMGeoEditor.py:2365
+msgid "Done. Rectangle completed."
+msgstr "Erledigt. Rechteck fertiggestellt."
+
+#: AppEditors/FlatCAMGeoEditor.py:2409 AppTools/ToolNCC.py:1734
+#: AppTools/ToolPaint.py:1627 Common.py:303
+msgid "Click on next Point or click right mouse button to complete ..."
+msgstr ""
+"Klicken Sie auf den nächsten Punkt oder klicken Sie mit der rechten "
+"Maustaste, um den Vorgang abzuschließen."
+
+#: AppEditors/FlatCAMGeoEditor.py:2440
+msgid "Done. Polygon completed."
+msgstr "Erledigt. Polygon fertiggestellt."
+
+#: AppEditors/FlatCAMGeoEditor.py:2454 AppEditors/FlatCAMGeoEditor.py:2519
+#: AppEditors/FlatCAMGrbEditor.py:1111 AppEditors/FlatCAMGrbEditor.py:1322
+msgid "Backtracked one point ..."
+msgstr "Einen Punkt zurückverfolgt ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2497
+msgid "Done. Path completed."
+msgstr "Getan. Pfad abgeschlossen."
+
+#: AppEditors/FlatCAMGeoEditor.py:2656
+msgid "No shape selected. Select a shape to explode"
+msgstr "Keine Form ausgewählt. Wählen Sie eine Form zum Auflösen aus"
+
+#: AppEditors/FlatCAMGeoEditor.py:2689
+msgid "Done. Polygons exploded into lines."
+msgstr "Getan. Polygone explodierten in Linien."
+
+#: AppEditors/FlatCAMGeoEditor.py:2721
+msgid "MOVE: No shape selected. Select a shape to move"
+msgstr "Bewegen: Keine Form ausgewählt. Wähle eine Form zum Bewegen aus"
+
+#: AppEditors/FlatCAMGeoEditor.py:2724 AppEditors/FlatCAMGeoEditor.py:2744
+msgid " MOVE: Click on reference point ..."
+msgstr " Bewegen: Referenzpunkt anklicken ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2729
+msgid " Click on destination point ..."
+msgstr " Klicken Sie auf den Zielpunkt ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2769
+msgid "Done. Geometry(s) Move completed."
+msgstr "Erledigt. Geometrie(n) Bewegung abgeschlossen."
+
+#: AppEditors/FlatCAMGeoEditor.py:2902
+msgid "Done. Geometry(s) Copy completed."
+msgstr "Erledigt. Geometrie(n) Kopieren abgeschlossen."
+
+#: AppEditors/FlatCAMGeoEditor.py:2933 AppEditors/FlatCAMGrbEditor.py:897
+msgid "Click on 1st point ..."
+msgstr "Klicken Sie auf den 1. Punkt ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2957
+msgid ""
+"Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. "
+"Error"
+msgstr ""
+"Schrift wird nicht unterstützt. Es werden nur Regular, Bold, Italic und "
+"BoldItalic unterstützt. Error"
+
+#: AppEditors/FlatCAMGeoEditor.py:2965
+msgid "No text to add."
+msgstr "Kein Text zum Hinzufügen."
+
+#: AppEditors/FlatCAMGeoEditor.py:2975
+msgid " Done. Adding Text completed."
+msgstr " Erledigt. Hinzufügen von Text abgeschlossen."
+
+#: AppEditors/FlatCAMGeoEditor.py:3012
+msgid "Create buffer geometry ..."
+msgstr "Puffergeometrie erstellen ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:3047 AppEditors/FlatCAMGrbEditor.py:5138
+msgid "Done. Buffer Tool completed."
+msgstr "Erledigt. Pufferwerkzeug abgeschlossen."
+
+#: AppEditors/FlatCAMGeoEditor.py:3075
+msgid "Done. Buffer Int Tool completed."
+msgstr "Erledigt. Innenpufferwerkzeug abgeschlossen."
+
+#: AppEditors/FlatCAMGeoEditor.py:3103
+msgid "Done. Buffer Ext Tool completed."
+msgstr "Erledigt. Außenpufferwerkzeug abgeschlossen."
+
+#: AppEditors/FlatCAMGeoEditor.py:3152 AppEditors/FlatCAMGrbEditor.py:2151
+msgid "Select a shape to act as deletion area ..."
+msgstr "Wählen Sie eine Form als Löschbereich aus ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:3154 AppEditors/FlatCAMGeoEditor.py:3180
+#: AppEditors/FlatCAMGeoEditor.py:3186 AppEditors/FlatCAMGrbEditor.py:2153
+msgid "Click to pick-up the erase shape..."
+msgstr "Klicken Sie, um die Löschform aufzunehmen ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:3190 AppEditors/FlatCAMGrbEditor.py:2212
+msgid "Click to erase ..."
+msgstr "Klicken zum Löschen ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:3219 AppEditors/FlatCAMGrbEditor.py:2245
+msgid "Done. Eraser tool action completed."
+msgstr "Erledigt. Radiergummi-Aktion abgeschlossen."
+
+#: AppEditors/FlatCAMGeoEditor.py:3269
+msgid "Create Paint geometry ..."
+msgstr "Malen geometrie erstellen ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:3282 AppEditors/FlatCAMGrbEditor.py:2408
+msgid "Shape transformations ..."
+msgstr "Formtransformationen ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:3338
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:27
+msgid "Geometry Editor"
+msgstr "Geo-Editor"
+
+#: AppEditors/FlatCAMGeoEditor.py:3344 AppEditors/FlatCAMGrbEditor.py:2486
+#: AppEditors/FlatCAMGrbEditor.py:3943 AppGUI/ObjectUI.py:263
+#: AppGUI/ObjectUI.py:1599 AppGUI/ObjectUI.py:2456 AppTools/ToolCutOut.py:95
+msgid "Type"
+msgstr "Typ"
+
+#: AppEditors/FlatCAMGeoEditor.py:3344 AppGUI/ObjectUI.py:218
+#: AppGUI/ObjectUI.py:742 AppGUI/ObjectUI.py:1535 AppGUI/ObjectUI.py:2365
+#: AppGUI/ObjectUI.py:2669 AppGUI/ObjectUI.py:2736
+#: AppTools/ToolCalibration.py:234 AppTools/ToolFiducials.py:73
+msgid "Name"
+msgstr "Name"
+
+#: AppEditors/FlatCAMGeoEditor.py:3596
+msgid "Ring"
+msgstr "Ring"
+
+#: AppEditors/FlatCAMGeoEditor.py:3598
+msgid "Line"
+msgstr "Linie"
+
+#: AppEditors/FlatCAMGeoEditor.py:3600 AppGUI/MainGUI.py:1405
+#: AppGUI/ObjectUI.py:1371 AppGUI/ObjectUI.py:2205
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:218
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:328
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:292
+#: AppTools/ToolNCC.py:584 AppTools/ToolPaint.py:527
+msgid "Polygon"
+msgstr "Polygon"
+
+#: AppEditors/FlatCAMGeoEditor.py:3602
+msgid "Multi-Line"
+msgstr "Mehrzeilig"
+
+#: AppEditors/FlatCAMGeoEditor.py:3604
+msgid "Multi-Polygon"
+msgstr "Multi-Polygon"
+
+#: AppEditors/FlatCAMGeoEditor.py:3611
+msgid "Geo Elem"
+msgstr "Geoelement"
+
+#: AppEditors/FlatCAMGeoEditor.py:4064
+msgid "Editing MultiGeo Geometry, tool"
+msgstr "Bearbeiten von MultiGeo Geometry, Werkzeug"
+
+#: AppEditors/FlatCAMGeoEditor.py:4066
+msgid "with diameter"
+msgstr "mit Durchmesser"
+
+#: AppEditors/FlatCAMGeoEditor.py:4138
+#, fuzzy
+#| msgid "Workspace Settings"
+msgid "Grid snap enabled."
+msgstr "Arbeitsbereichseinstellungen"
+
+#: AppEditors/FlatCAMGeoEditor.py:4142
+#, fuzzy
+#| msgid "Grid X snapping distance"
+msgid "Grid snap disabled."
+msgstr "Raster X Fangdistanz"
+
+#: AppEditors/FlatCAMGeoEditor.py:4503 AppGUI/MainGUI.py:3000
+#: AppGUI/MainGUI.py:3046 AppGUI/MainGUI.py:3064 AppGUI/MainGUI.py:3208
+#: AppGUI/MainGUI.py:3247 AppGUI/MainGUI.py:3259 AppGUI/MainGUI.py:3276
+msgid "Click on target point."
+msgstr "Klicken Sie auf den Zielpunkt."
+
+#: AppEditors/FlatCAMGeoEditor.py:4817 AppEditors/FlatCAMGeoEditor.py:4852
+msgid "A selection of at least 2 geo items is required to do Intersection."
+msgstr ""
+"Eine Auswahl von mindestens 2 Geo-Elementen ist erforderlich, um die "
+"Kreuzung durchzuführen."
+
+#: AppEditors/FlatCAMGeoEditor.py:4938 AppEditors/FlatCAMGeoEditor.py:5042
+msgid ""
+"Negative buffer value is not accepted. Use Buffer interior to generate an "
+"'inside' shape"
+msgstr ""
+"Negativer Pufferwert wird nicht akzeptiert. Verwenden Sie den "
+"Pufferinnenraum, um eine Innenform zu erzeugen"
+
+#: AppEditors/FlatCAMGeoEditor.py:4948 AppEditors/FlatCAMGeoEditor.py:5001
+#: AppEditors/FlatCAMGeoEditor.py:5051
+msgid "Nothing selected for buffering."
+msgstr "Nichts ist für die Pufferung ausgewählt."
+
+#: AppEditors/FlatCAMGeoEditor.py:4953 AppEditors/FlatCAMGeoEditor.py:5005
+#: AppEditors/FlatCAMGeoEditor.py:5056
+msgid "Invalid distance for buffering."
+msgstr "Ungültige Entfernung zum Puffern."
+
+#: AppEditors/FlatCAMGeoEditor.py:4977 AppEditors/FlatCAMGeoEditor.py:5076
+msgid "Failed, the result is empty. Choose a different buffer value."
+msgstr ""
+"Fehlgeschlagen, das Ergebnis ist leer. Wählen Sie einen anderen Pufferwert."
+
+#: AppEditors/FlatCAMGeoEditor.py:4988
+msgid "Full buffer geometry created."
+msgstr "Volle Puffergeometrie erstellt."
+
+#: AppEditors/FlatCAMGeoEditor.py:4994
+msgid "Negative buffer value is not accepted."
+msgstr "Negativer Pufferwert wird nicht akzeptiert."
+
+#: AppEditors/FlatCAMGeoEditor.py:5025
+msgid "Failed, the result is empty. Choose a smaller buffer value."
+msgstr ""
+"Fehlgeschlagen, das Ergebnis ist leer. Wählen Sie einen kleineren Pufferwert."
+
+#: AppEditors/FlatCAMGeoEditor.py:5035
+msgid "Interior buffer geometry created."
+msgstr "Innere Puffergeometrie erstellt."
+
+#: AppEditors/FlatCAMGeoEditor.py:5086
+msgid "Exterior buffer geometry created."
+msgstr "Außenpuffergeometrie erstellt."
+
+#: AppEditors/FlatCAMGeoEditor.py:5092
+#, python-format
+msgid "Could not do Paint. Overlap value has to be less than 100%%."
+msgstr "Konnte nicht Malen. Der Überlappungswert muss kleiner als 100 %% sein."
+
+#: AppEditors/FlatCAMGeoEditor.py:5099
+msgid "Nothing selected for painting."
+msgstr "Nichts zum Malen ausgewählt."
+
+#: AppEditors/FlatCAMGeoEditor.py:5105
+msgid "Invalid value for"
+msgstr "Ungültiger Wert für"
+
+#: AppEditors/FlatCAMGeoEditor.py:5164
+msgid ""
+"Could not do Paint. Try a different combination of parameters. Or a "
+"different method of Paint"
+msgstr ""
+"Konnte nicht malen. Probieren Sie eine andere Kombination von Parametern "
+"aus. Oder eine andere Malmethode"
+
+#: AppEditors/FlatCAMGeoEditor.py:5175
+msgid "Paint done."
+msgstr "Malen fertig."
+
+#: AppEditors/FlatCAMGrbEditor.py:211
+msgid "To add an Pad first select a aperture in Aperture Table"
+msgstr ""
+"Um ein Pad hinzuzufügen, wählen Sie zunächst eine Blende in der Aperture "
+"Table aus"
+
+#: AppEditors/FlatCAMGrbEditor.py:218 AppEditors/FlatCAMGrbEditor.py:418
+msgid "Aperture size is zero. It needs to be greater than zero."
+msgstr "Die Größe der Blende ist Null. Es muss größer als Null sein."
+
+#: AppEditors/FlatCAMGrbEditor.py:371 AppEditors/FlatCAMGrbEditor.py:684
+msgid ""
+"Incompatible aperture type. Select an aperture with type 'C', 'R' or 'O'."
+msgstr ""
+"Inkompatibler Blendentyp. Wählen Sie eine Blende mit dem Typ 'C', 'R' oder "
+"'O'."
+
+#: AppEditors/FlatCAMGrbEditor.py:383
+msgid "Done. Adding Pad completed."
+msgstr "Erledigt. Hinzufügen von Pad abgeschlossen."
+
+#: AppEditors/FlatCAMGrbEditor.py:410
+msgid "To add an Pad Array first select a aperture in Aperture Table"
+msgstr ""
+"Um ein Pad-Array hinzuzufügen, wählen Sie zunächst eine Blende in der "
+"Aperture-Tabelle aus"
+
+#: AppEditors/FlatCAMGrbEditor.py:490
+msgid "Click on the Pad Circular Array Start position"
+msgstr "Klicken Sie auf die Startposition des Pad-Kreis-Arrays"
+
+#: AppEditors/FlatCAMGrbEditor.py:710
+msgid "Too many Pads for the selected spacing angle."
+msgstr "Zu viele Pad für den ausgewählten Abstandswinkel."
+
+#: AppEditors/FlatCAMGrbEditor.py:733
+msgid "Done. Pad Array added."
+msgstr "Erledigt. Pad Array hinzugefügt."
+
+#: AppEditors/FlatCAMGrbEditor.py:758
+msgid "Select shape(s) and then click ..."
+msgstr "Wählen Sie die Form (en) aus und klicken Sie dann auf ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:770
+msgid "Failed. Nothing selected."
+msgstr "Gescheitert. Nichts ausgewählt."
+
+#: AppEditors/FlatCAMGrbEditor.py:786
+msgid ""
+"Failed. Poligonize works only on geometries belonging to the same aperture."
+msgstr ""
+"Gescheitert. Poligonize funktioniert nur bei Geometrien, die zur selben "
+"Apertur gehören."
+
+#: AppEditors/FlatCAMGrbEditor.py:840
+msgid "Done. Poligonize completed."
+msgstr "Erledigt. Poligonize abgeschlossen."
+
+#: AppEditors/FlatCAMGrbEditor.py:895 AppEditors/FlatCAMGrbEditor.py:1128
+#: AppEditors/FlatCAMGrbEditor.py:1152
+msgid "Corner Mode 1: 45 degrees ..."
+msgstr "Eckmodus 1: 45 Grad ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:907 AppEditors/FlatCAMGrbEditor.py:1237
+msgid "Click on next Point or click Right mouse button to complete ..."
+msgstr ""
+"Klicken Sie auf den nächsten Punkt oder klicken Sie mit der rechten "
+"Maustaste, um den Vorgang abzuschließen."
+
+#: AppEditors/FlatCAMGrbEditor.py:1116 AppEditors/FlatCAMGrbEditor.py:1149
+msgid "Corner Mode 2: Reverse 45 degrees ..."
+msgstr "Eckmodus 2: 45 Grad umkehren ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1119 AppEditors/FlatCAMGrbEditor.py:1146
+msgid "Corner Mode 3: 90 degrees ..."
+msgstr "Eckmodus 3: 90 Grad ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1122 AppEditors/FlatCAMGrbEditor.py:1143
+msgid "Corner Mode 4: Reverse 90 degrees ..."
+msgstr "Eckmodus 4: Um 90 Grad umkehren ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1125 AppEditors/FlatCAMGrbEditor.py:1140
+msgid "Corner Mode 5: Free angle ..."
+msgstr "Eckmodus 5: Freiwinkel ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1182 AppEditors/FlatCAMGrbEditor.py:1358
+#: AppEditors/FlatCAMGrbEditor.py:1397
+msgid "Track Mode 1: 45 degrees ..."
+msgstr "Spurmodus 1: 45 Grad ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1338 AppEditors/FlatCAMGrbEditor.py:1392
+msgid "Track Mode 2: Reverse 45 degrees ..."
+msgstr "Spurmodus 2: 45 Grad umkehren ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1343 AppEditors/FlatCAMGrbEditor.py:1387
+msgid "Track Mode 3: 90 degrees ..."
+msgstr "Spurmodus 3: 90 Grad ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1348 AppEditors/FlatCAMGrbEditor.py:1382
+msgid "Track Mode 4: Reverse 90 degrees ..."
+msgstr "Spurmodus 4: Um 90 Grad umkehren ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1353 AppEditors/FlatCAMGrbEditor.py:1377
+msgid "Track Mode 5: Free angle ..."
+msgstr "Spurmodus 5: Freiwinkel ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1778
+msgid "Scale the selected Gerber apertures ..."
+msgstr "Skalieren Sie die ausgewählten Gerber-Öffnungen ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1820
+msgid "Buffer the selected apertures ..."
+msgstr "Die ausgewählten Öffnungen puffern ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1862
+msgid "Mark polygon areas in the edited Gerber ..."
+msgstr "Markiere Polygonbereiche im bearbeiteten Gerber ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1928
+msgid "Nothing selected to move"
+msgstr "Nichts zum Bewegen ausgewählt"
+
+#: AppEditors/FlatCAMGrbEditor.py:2053
+msgid "Done. Apertures Move completed."
+msgstr "Erledigt. Öffnungsbewegung abgeschlossen."
+
+#: AppEditors/FlatCAMGrbEditor.py:2135
+msgid "Done. Apertures copied."
+msgstr "Erledigt. Blende kopiert."
+
+#: AppEditors/FlatCAMGrbEditor.py:2453 AppGUI/MainGUI.py:1436
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:27
+msgid "Gerber Editor"
+msgstr "Gerber-Editor"
+
+#: AppEditors/FlatCAMGrbEditor.py:2473 AppGUI/ObjectUI.py:228
+#: AppTools/ToolProperties.py:159
+msgid "Apertures"
+msgstr "Öffnungen"
+
+#: AppEditors/FlatCAMGrbEditor.py:2475 AppGUI/ObjectUI.py:230
+msgid "Apertures Table for the Gerber Object."
+msgstr "Blendentabelle für das Gerberobjekt."
+
+#: AppEditors/FlatCAMGrbEditor.py:2486 AppEditors/FlatCAMGrbEditor.py:3943
+#: AppGUI/ObjectUI.py:263
+msgid "Code"
+msgstr "Code"
+
+#: AppEditors/FlatCAMGrbEditor.py:2486 AppEditors/FlatCAMGrbEditor.py:3943
+#: AppGUI/ObjectUI.py:263
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:103
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43
+#: AppTools/ToolCopperThieving.py:261 AppTools/ToolCopperThieving.py:301
+#: AppTools/ToolFiducials.py:156
+msgid "Size"
+msgstr "Größe"
+
+#: AppEditors/FlatCAMGrbEditor.py:2486 AppEditors/FlatCAMGrbEditor.py:3943
+#: AppGUI/ObjectUI.py:263
+msgid "Dim"
+msgstr "Maße"
+
+#: AppEditors/FlatCAMGrbEditor.py:2491 AppGUI/ObjectUI.py:267
+msgid "Index"
+msgstr "Index"
+
+#: AppEditors/FlatCAMGrbEditor.py:2493 AppEditors/FlatCAMGrbEditor.py:2522
+#: AppGUI/ObjectUI.py:269
+msgid "Aperture Code"
+msgstr "Öffnungscode"
+
+#: AppEditors/FlatCAMGrbEditor.py:2495 AppGUI/ObjectUI.py:271
+msgid "Type of aperture: circular, rectangle, macros etc"
+msgstr "Öffnungsart: kreisförmig, rechteckig, Makros usw"
+
+#: AppEditors/FlatCAMGrbEditor.py:2497 AppGUI/ObjectUI.py:273
+msgid "Aperture Size:"
+msgstr "Öffnungsgröße:"
+
+#: AppEditors/FlatCAMGrbEditor.py:2499 AppGUI/ObjectUI.py:275
+msgid ""
+"Aperture Dimensions:\n"
+" - (width, height) for R, O type.\n"
+" - (dia, nVertices) for P type"
+msgstr ""
+"Blendenmaße:\n"
+" - (Breite, Höhe) für R, O-Typ.\n"
+" - (dia, nVertices) für P-Typ"
+
+#: AppEditors/FlatCAMGrbEditor.py:2523
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:58
+msgid "Code for the new aperture"
+msgstr "Code für die neue Blende"
+
+#: AppEditors/FlatCAMGrbEditor.py:2532
+msgid "Aperture Size"
+msgstr "Öffnungsgröße"
+
+#: AppEditors/FlatCAMGrbEditor.py:2534
+msgid ""
+"Size for the new aperture.\n"
+"If aperture type is 'R' or 'O' then\n"
+"this value is automatically\n"
+"calculated as:\n"
+"sqrt(width**2 + height**2)"
+msgstr ""
+"Größe für die neue Blende.\n"
+"Wenn der Blendentyp 'R' oder 'O' ist, dann\n"
+"Dieser Wert wird automatisch übernommen\n"
+"berechnet als:\n"
+"Quadrat (Breite ** 2 + Höhe ** 2)"
+
+#: AppEditors/FlatCAMGrbEditor.py:2548
+msgid "Aperture Type"
+msgstr "Blendentyp"
+
+#: AppEditors/FlatCAMGrbEditor.py:2550
+msgid ""
+"Select the type of new aperture. Can be:\n"
+"C = circular\n"
+"R = rectangular\n"
+"O = oblong"
+msgstr ""
+"Wählen Sie den Typ der neuen Blende. Kann sein:\n"
+"C = kreisförmig\n"
+"R = rechteckig\n"
+"O = länglich"
+
+#: AppEditors/FlatCAMGrbEditor.py:2561
+msgid "Aperture Dim"
+msgstr "Öffnungsmaße"
+
+#: AppEditors/FlatCAMGrbEditor.py:2563
+msgid ""
+"Dimensions for the new aperture.\n"
+"Active only for rectangular apertures (type R).\n"
+"The format is (width, height)"
+msgstr ""
+"Abmessungen für die neue Blende.\n"
+"Aktiv nur für rechteckige Öffnungen (Typ R).\n"
+"Das Format ist (Breite, Höhe)"
+
+#: AppEditors/FlatCAMGrbEditor.py:2572
+msgid "Add/Delete Aperture"
+msgstr "Blende hinzufügen / löschen"
+
+#: AppEditors/FlatCAMGrbEditor.py:2574
+msgid "Add/Delete an aperture in the aperture table"
+msgstr "Eine Blende in der Blendentabelle hinzufügen / löschen"
+
+#: AppEditors/FlatCAMGrbEditor.py:2583
+msgid "Add a new aperture to the aperture list."
+msgstr "Fügen Sie der Blendenliste eine neue Blende hinzu."
+
+#: AppEditors/FlatCAMGrbEditor.py:2586 AppEditors/FlatCAMGrbEditor.py:2734
+#: AppGUI/MainGUI.py:753 AppGUI/MainGUI.py:1071 AppGUI/MainGUI.py:1487
+#: AppGUI/MainGUI.py:2063 AppGUI/MainGUI.py:4433 AppGUI/ObjectUI.py:1725
+#: AppObjects/FlatCAMGeometry.py:556 AppTools/ToolNCC.py:316
+#: AppTools/ToolNCC.py:637 AppTools/ToolPaint.py:298 AppTools/ToolPaint.py:681
+#: AppTools/ToolSolderPaste.py:128 AppTools/ToolSolderPaste.py:600
+#: App_Main.py:5595
+msgid "Delete"
+msgstr "Löschen"
+
+#: AppEditors/FlatCAMGrbEditor.py:2588
+msgid "Delete a aperture in the aperture list"
+msgstr "Löschen Sie eine Blende in der Blendenliste"
+
+#: AppEditors/FlatCAMGrbEditor.py:2605
+msgid "Buffer Aperture"
+msgstr "Pufferblende"
+
+#: AppEditors/FlatCAMGrbEditor.py:2607
+msgid "Buffer a aperture in the aperture list"
+msgstr "Puffern Sie eine Blende in der Blendenliste"
+
+#: AppEditors/FlatCAMGrbEditor.py:2620
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:194
+msgid "Buffer distance"
+msgstr "Pufferabstand"
+
+#: AppEditors/FlatCAMGrbEditor.py:2621
+msgid "Buffer corner"
+msgstr "Pufferecke"
+
+#: AppEditors/FlatCAMGrbEditor.py:2623
+msgid ""
+"There are 3 types of corners:\n"
+" - 'Round': the corner is rounded.\n"
+" - 'Square': the corner is met in a sharp angle.\n"
+" - 'Beveled': the corner is a line that directly connects the features "
+"meeting in the corner"
+msgstr ""
+"Es gibt 3 Arten von Ecken:\n"
+"- 'Kreis': Die Ecke ist abgerundet.\n"
+"- 'Quadrat:' Die Ecke wird in einem spitzen Winkel getroffen.\n"
+"- 'Abgeschrägt:' Die Ecke ist eine Linie, die die Features, die sich in der "
+"Ecke treffen, direkt verbindet"
+
+#: AppEditors/FlatCAMGrbEditor.py:2638 AppGUI/MainGUI.py:1058
+#: AppGUI/MainGUI.py:1413 AppGUI/MainGUI.py:1456 AppGUI/MainGUI.py:2051
+#: AppGUI/MainGUI.py:4430
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:200
+#: AppTools/ToolTransform.py:29
+msgid "Buffer"
+msgstr "Puffer"
+
+#: AppEditors/FlatCAMGrbEditor.py:2653
+msgid "Scale Aperture"
+msgstr "Skalenöffnung"
+
+#: AppEditors/FlatCAMGrbEditor.py:2655
+msgid "Scale a aperture in the aperture list"
+msgstr "Skalieren Sie eine Blende in der Blendenliste"
+
+#: AppEditors/FlatCAMGrbEditor.py:2663
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:209
+msgid "Scale factor"
+msgstr "Skalierungsfaktor"
+
+#: AppEditors/FlatCAMGrbEditor.py:2665
+msgid ""
+"The factor by which to scale the selected aperture.\n"
+"Values can be between 0.0000 and 999.9999"
+msgstr ""
+"Der Faktor, um den die ausgewählte Blende skaliert werden soll.\n"
+"Die Werte können zwischen 0,0000 und 999,9999 liegen"
+
+#: AppEditors/FlatCAMGrbEditor.py:2693
+msgid "Mark polygons"
+msgstr "Polygone markieren"
+
+#: AppEditors/FlatCAMGrbEditor.py:2695
+msgid "Mark the polygon areas."
+msgstr "Markieren Sie die Polygonbereiche."
+
+#: AppEditors/FlatCAMGrbEditor.py:2703
+msgid "Area UPPER threshold"
+msgstr "Flächenobergrenze"
+
+#: AppEditors/FlatCAMGrbEditor.py:2705
+msgid ""
+"The threshold value, all areas less than this are marked.\n"
+"Can have a value between 0.0000 and 9999.9999"
+msgstr ""
+"Der Schwellenwert, alle Bereiche, die darunter liegen, sind markiert.\n"
+"Kann einen Wert zwischen 0,0000 und 9999,9999 haben"
+
+#: AppEditors/FlatCAMGrbEditor.py:2712
+msgid "Area LOWER threshold"
+msgstr "Bereichsuntergrenze"
+
+#: AppEditors/FlatCAMGrbEditor.py:2714
+msgid ""
+"The threshold value, all areas more than this are marked.\n"
+"Can have a value between 0.0000 and 9999.9999"
+msgstr ""
+"Mit dem Schwellwert sind alle Bereiche gekennzeichnet, die darüber "
+"hinausgehen.\n"
+"Kann einen Wert zwischen 0,0000 und 9999,9999 haben"
+
+#: AppEditors/FlatCAMGrbEditor.py:2728
+msgid "Mark"
+msgstr "Kennzeichen"
+
+#: AppEditors/FlatCAMGrbEditor.py:2730
+msgid "Mark the polygons that fit within limits."
+msgstr "Markieren Sie die Polygone, die in Grenzen passen."
+
+#: AppEditors/FlatCAMGrbEditor.py:2736
+msgid "Delete all the marked polygons."
+msgstr "Löschen Sie alle markierten Polygone."
+
+#: AppEditors/FlatCAMGrbEditor.py:2742
+msgid "Clear all the markings."
+msgstr "Alle Markierungen entfernen."
+
+#: AppEditors/FlatCAMGrbEditor.py:2762 AppGUI/MainGUI.py:1043
+#: AppGUI/MainGUI.py:2036 AppGUI/MainGUI.py:4430
+msgid "Add Pad Array"
+msgstr "Pad-Array hinzufügen"
+
+#: AppEditors/FlatCAMGrbEditor.py:2764
+msgid "Add an array of pads (linear or circular array)"
+msgstr "Hinzufügen eines Arrays von Pads (lineares oder kreisförmiges Array)"
+
+#: AppEditors/FlatCAMGrbEditor.py:2770
+msgid ""
+"Select the type of pads array to create.\n"
+"It can be Linear X(Y) or Circular"
+msgstr ""
+"Wählen Sie den zu erstellenden Pad-Array-Typ aus.\n"
+"Es kann lineares X (Y) oder rund sein"
+
+#: AppEditors/FlatCAMGrbEditor.py:2781
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:95
+msgid "Nr of pads"
+msgstr "Anzahl der Pads"
+
+#: AppEditors/FlatCAMGrbEditor.py:2783
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:97
+msgid "Specify how many pads to be in the array."
+msgstr "Geben Sie an, wie viele Pads sich im Array befinden sollen."
+
+#: AppEditors/FlatCAMGrbEditor.py:2832
+msgid ""
+"Angle at which the linear array is placed.\n"
+"The precision is of max 2 decimals.\n"
+"Min value is: -359.99 degrees.\n"
+"Max value is: 360.00 degrees."
+msgstr ""
+"Winkel, bei dem das lineare Array platziert wird.\n"
+"Die Genauigkeit beträgt maximal 2 Dezimalstellen.\n"
+"Der Mindestwert beträgt -359,99 Grad.\n"
+"Maximalwert ist: 360.00 Grad."
+
+#: AppEditors/FlatCAMGrbEditor.py:3326 AppEditors/FlatCAMGrbEditor.py:3330
+msgid "Aperture code value is missing or wrong format. Add it and retry."
+msgstr ""
+"Blendencodewert fehlt oder falsches Format. Fügen Sie es hinzu und versuchen "
+"Sie es erneut."
+
+#: AppEditors/FlatCAMGrbEditor.py:3366
+msgid ""
+"Aperture dimensions value is missing or wrong format. Add it in format "
+"(width, height) and retry."
+msgstr ""
+"Wert für Blendenmaße fehlt oder falsches Format. Fügen Sie es im Format "
+"(Breite, Höhe) hinzu und versuchen Sie es erneut."
+
+#: AppEditors/FlatCAMGrbEditor.py:3379
+msgid "Aperture size value is missing or wrong format. Add it and retry."
+msgstr ""
+"Der Wert für die Blendengröße fehlt oder das Format ist falsch. Fügen Sie es "
+"hinzu und versuchen Sie es erneut."
+
+#: AppEditors/FlatCAMGrbEditor.py:3390
+msgid "Aperture already in the aperture table."
+msgstr "Blende bereits in der Blendentabelle."
+
+#: AppEditors/FlatCAMGrbEditor.py:3397
+msgid "Added new aperture with code"
+msgstr "Neue Blende mit Code hinzugefügt"
+
+#: AppEditors/FlatCAMGrbEditor.py:3429
+msgid " Select an aperture in Aperture Table"
+msgstr " Wählen Sie in Blende Table eine Blende aus"
+
+#: AppEditors/FlatCAMGrbEditor.py:3437
+msgid "Select an aperture in Aperture Table -->"
+msgstr "Wählen Sie in Blende Table eine Blende aus -->"
+
+#: AppEditors/FlatCAMGrbEditor.py:3451
+msgid "Deleted aperture with code"
+msgstr "Blende mit Code gelöscht"
+
+#: AppEditors/FlatCAMGrbEditor.py:3519
+msgid "Dimensions need two float values separated by comma."
+msgstr "Bemaßungen benötigen zwei durch Komma getrennte Gleitkommawerte."
+
+#: AppEditors/FlatCAMGrbEditor.py:3528
+msgid "Dimensions edited."
+msgstr "Abmessungen bearbeitet."
+
+#: AppEditors/FlatCAMGrbEditor.py:4058
+msgid "Loading Gerber into Editor"
+msgstr "Gerber File wird in den Editor geladen"
+
+#: AppEditors/FlatCAMGrbEditor.py:4186
+msgid "Setting up the UI"
+msgstr "UI wird initialisiert"
+
+#: AppEditors/FlatCAMGrbEditor.py:4187
+#, fuzzy
+#| msgid "Adding geometry finished. Preparing the GUI"
+msgid "Adding geometry finished. Preparing the AppGUI"
+msgstr "Geometrie wurde hinzugefügt. User Interface wird vorbereitet"
+
+#: AppEditors/FlatCAMGrbEditor.py:4196
+msgid "Finished loading the Gerber object into the editor."
+msgstr "Gerber-Objekte wurde in den Editor geladen."
+
+#: AppEditors/FlatCAMGrbEditor.py:4335
+msgid ""
+"There are no Aperture definitions in the file. Aborting Gerber creation."
+msgstr ""
+"Die Datei enthält keine Aperture-Definitionen. Abbruch der Gerber-Erstellung."
+
+#: AppEditors/FlatCAMGrbEditor.py:4338 AppObjects/AppObject.py:133
+#: AppObjects/FlatCAMGeometry.py:1775 AppParsers/ParseExcellon.py:896
+#: AppTools/ToolPcbWizard.py:432 App_Main.py:8369 App_Main.py:8433
+#: App_Main.py:8564 App_Main.py:8629 App_Main.py:9281
+msgid "An internal error has occurred. See shell.\n"
+msgstr "Ein interner Fehler ist aufgetreten. Siehe Shell.\n"
+
+#: AppEditors/FlatCAMGrbEditor.py:4345
+msgid "Creating Gerber."
+msgstr "Gerber erstellen."
+
+#: AppEditors/FlatCAMGrbEditor.py:4354
+msgid "Done. Gerber editing finished."
+msgstr "Erledigt. Gerber-Bearbeitung beendet."
+
+#: AppEditors/FlatCAMGrbEditor.py:4372
+msgid "Cancelled. No aperture is selected"
+msgstr "Abgebrochen. Es ist keine Blende ausgewählt"
+
+#: AppEditors/FlatCAMGrbEditor.py:4527 App_Main.py:5921
+msgid "Coordinates copied to clipboard."
+msgstr "Koordinaten in die Zwischenablage kopiert."
+
+#: AppEditors/FlatCAMGrbEditor.py:4970
+msgid "Failed. No aperture geometry is selected."
+msgstr "Gescheitert. Es ist keine Aperturgeometrie ausgewählt."
+
+#: AppEditors/FlatCAMGrbEditor.py:4979 AppEditors/FlatCAMGrbEditor.py:5250
+msgid "Done. Apertures geometry deleted."
+msgstr "Fertig. Blendengeometrie gelöscht."
+
+#: AppEditors/FlatCAMGrbEditor.py:5122
+msgid "No aperture to buffer. Select at least one aperture and try again."
+msgstr ""
+"Keine Blende zum Puffern Wählen Sie mindestens eine Blende und versuchen Sie "
+"es erneut."
+
+#: AppEditors/FlatCAMGrbEditor.py:5134
+msgid "Failed."
+msgstr "Gescheitert."
+
+#: AppEditors/FlatCAMGrbEditor.py:5153
+msgid "Scale factor value is missing or wrong format. Add it and retry."
+msgstr ""
+"Der Skalierungsfaktor ist nicht vorhanden oder das Format ist falsch. Fügen "
+"Sie es hinzu und versuchen Sie es erneut."
+
+#: AppEditors/FlatCAMGrbEditor.py:5185
+msgid "No aperture to scale. Select at least one aperture and try again."
+msgstr ""
+"Keine zu skalierende Blende Wählen Sie mindestens eine Blende und versuchen "
+"Sie es erneut."
+
+#: AppEditors/FlatCAMGrbEditor.py:5201
+msgid "Done. Scale Tool completed."
+msgstr "Erledigt. Skalierungswerkzeug abgeschlossen."
+
+#: AppEditors/FlatCAMGrbEditor.py:5239
+msgid "Polygons marked."
+msgstr "Polygone markiert."
+
+#: AppEditors/FlatCAMGrbEditor.py:5242
+msgid "No polygons were marked. None fit within the limits."
+msgstr "Es wurden keine Polygone markiert. Keiner passt in die Grenzen."
+
+#: AppEditors/FlatCAMGrbEditor.py:5966
+msgid "Rotation action was not executed."
+msgstr "Rotationsaktion wurde nicht ausgeführt."
+
+#: AppEditors/FlatCAMGrbEditor.py:6037 App_Main.py:5354 App_Main.py:5402
+msgid "Flip action was not executed."
+msgstr "Flip-Aktion wurde nicht ausgeführt."
+
+#: AppEditors/FlatCAMGrbEditor.py:6094
+msgid "Skew action was not executed."
+msgstr "Die Versatzaktion wurde nicht ausgeführt."
+
+#: AppEditors/FlatCAMGrbEditor.py:6159
+msgid "Scale action was not executed."
+msgstr "Skalierungsaktion wurde nicht ausgeführt."
+
+#: AppEditors/FlatCAMGrbEditor.py:6202
+msgid "Offset action was not executed."
+msgstr "Offsetaktion wurde nicht ausgeführt."
+
+#: AppEditors/FlatCAMGrbEditor.py:6252
+msgid "Geometry shape offset Y cancelled"
+msgstr "Geometrieform-Versatz Y abgebrochen"
+
+#: AppEditors/FlatCAMGrbEditor.py:6267
+msgid "Geometry shape skew X cancelled"
+msgstr "Geometrieformverzerren X abgebrochen"
+
+#: AppEditors/FlatCAMGrbEditor.py:6282
+msgid "Geometry shape skew Y cancelled"
+msgstr "Geometrieformverzerren Y abgebrochen"
+
+#: AppEditors/FlatCAMTextEditor.py:74
+msgid "Print Preview"
+msgstr "Druckvorschau"
+
+#: AppEditors/FlatCAMTextEditor.py:75
+msgid "Open a OS standard Preview Print window."
+msgstr ""
+"Öffnen Sie ein Standardfenster für die Druckvorschau des Betriebssystems."
+
+#: AppEditors/FlatCAMTextEditor.py:78
+msgid "Print Code"
+msgstr "Code drucken"
+
+#: AppEditors/FlatCAMTextEditor.py:79
+msgid "Open a OS standard Print window."
+msgstr "Öffnen Sie ein Betriebssystem-Standard-Druckfenster."
+
+#: AppEditors/FlatCAMTextEditor.py:81
+msgid "Find in Code"
+msgstr "Im Code suchen"
+
+#: AppEditors/FlatCAMTextEditor.py:82
+msgid "Will search and highlight in yellow the string in the Find box."
+msgstr "Sucht und hebt die Zeichenfolge im Feld Suchen gelb hervor."
+
+#: AppEditors/FlatCAMTextEditor.py:86
+msgid "Find box. Enter here the strings to be searched in the text."
+msgstr ""
+"Suchfeld. Geben Sie hier die Zeichenfolgen ein, nach denen im Text gesucht "
+"werden soll."
+
+#: AppEditors/FlatCAMTextEditor.py:88
+msgid "Replace With"
+msgstr "Ersetzen mit"
+
+#: AppEditors/FlatCAMTextEditor.py:89
+msgid ""
+"Will replace the string from the Find box with the one in the Replace box."
+msgstr ""
+"Ersetzt die Zeichenfolge aus dem Feld Suchen durch die Zeichenfolge aus dem "
+"Feld Ersetzen."
+
+#: AppEditors/FlatCAMTextEditor.py:93
+msgid "String to replace the one in the Find box throughout the text."
+msgstr ""
+"Zeichenfolge, die die Zeichenfolge im Feld Suchen im gesamten Text ersetzt."
+
+#: AppEditors/FlatCAMTextEditor.py:95 AppGUI/ObjectUI.py:486
+#: AppGUI/ObjectUI.py:2349 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:54
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:88
+msgid "All"
+msgstr "Alles"
+
+#: AppEditors/FlatCAMTextEditor.py:96
+msgid ""
+"When checked it will replace all instances in the 'Find' box\n"
+"with the text in the 'Replace' box.."
+msgstr ""
+"Wenn diese Option aktiviert ist, werden alle Instanzen im Feld \"Suchen\" "
+"ersetzt\n"
+"mit dem Text im Feld \"Ersetzen\" .."
+
+#: AppEditors/FlatCAMTextEditor.py:99
+msgid "Copy All"
+msgstr "Kopiere alles"
+
+#: AppEditors/FlatCAMTextEditor.py:100
+msgid "Will copy all the text in the Code Editor to the clipboard."
+msgstr "Kopiert den gesamten Text im Code-Editor in die Zwischenablage."
+
+#: AppEditors/FlatCAMTextEditor.py:103
+msgid "Open Code"
+msgstr "Code öffnen"
+
+#: AppEditors/FlatCAMTextEditor.py:104
+msgid "Will open a text file in the editor."
+msgstr "Öffnet eine Textdatei im Editor."
+
+#: AppEditors/FlatCAMTextEditor.py:106
+msgid "Save Code"
+msgstr "Code speichern"
+
+#: AppEditors/FlatCAMTextEditor.py:107
+msgid "Will save the text in the editor into a file."
+msgstr "Speichert den Text im Editor in einer Datei."
+
+#: AppEditors/FlatCAMTextEditor.py:109
+msgid "Run Code"
+msgstr "Code ausführen"
+
+#: AppEditors/FlatCAMTextEditor.py:110
+msgid "Will run the TCL commands found in the text file, one by one."
+msgstr "Führt die in der Textdatei enthaltenen TCL-Befehle nacheinander aus."
+
+#: AppEditors/FlatCAMTextEditor.py:184
+msgid "Open file"
+msgstr "Datei öffnen"
+
+#: AppEditors/FlatCAMTextEditor.py:215 AppEditors/FlatCAMTextEditor.py:220
+msgid "Export Code ..."
+msgstr "Code exportieren ..."
+
+#: AppEditors/FlatCAMTextEditor.py:272 AppObjects/FlatCAMCNCJob.py:955
+#: AppTools/ToolSolderPaste.py:1530
+msgid "No such file or directory"
+msgstr "Keine solche Datei oder Ordner"
+
+#: AppEditors/FlatCAMTextEditor.py:284 AppObjects/FlatCAMCNCJob.py:969
+msgid "Saved to"
+msgstr "Gespeichert in"
+
+#: AppEditors/FlatCAMTextEditor.py:334
+msgid "Code Editor content copied to clipboard ..."
+msgstr "Code Editor Inhalt in die Zwischenablage kopiert ..."
+
+#: AppGUI/GUIElements.py:2540
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:180
+#: AppTools/ToolDblSided.py:173 AppTools/ToolDblSided.py:388
+#: AppTools/ToolFilm.py:202
+msgid "Reference"
+msgstr "Referenz"
+
+#: AppGUI/GUIElements.py:2542
+msgid ""
+"The reference can be:\n"
+"- Absolute -> the reference point is point (0,0)\n"
+"- Relative -> the reference point is the mouse position before Jump"
+msgstr ""
+"Die Referenz kann sein:\n"
+"- Absolut -> Der Bezugspunkt ist Punkt (0,0)\n"
+"- Relativ -> Der Referenzpunkt ist die Mausposition vor dem Sprung"
+
+#: AppGUI/GUIElements.py:2547
+msgid "Abs"
+msgstr "Abs"
+
+#: AppGUI/GUIElements.py:2548
+msgid "Relative"
+msgstr "Relativ"
+
+#: AppGUI/GUIElements.py:2558
+msgid "Location"
+msgstr "Ort"
+
+#: AppGUI/GUIElements.py:2560
+msgid ""
+"The Location value is a tuple (x,y).\n"
+"If the reference is Absolute then the Jump will be at the position (x,y).\n"
+"If the reference is Relative then the Jump will be at the (x,y) distance\n"
+"from the current mouse location point."
+msgstr ""
+"Der Standortwert ist ein Tupel (x, y).\n"
+"Wenn die Referenz Absolut ist, befindet sich der Sprung an der Position (x, "
+"y).\n"
+"Wenn die Referenz relativ ist, befindet sich der Sprung in der Entfernung "
+"(x, y)\n"
+"vom aktuellen Mausstandort aus."
+
+#: AppGUI/GUIElements.py:2600
+msgid "Save Log"
+msgstr "Protokoll speichern"
+
+#: AppGUI/GUIElements.py:2610 App_Main.py:2657 App_Main.py:3018
+msgid "Close"
+msgstr "Schließen"
+
+#: AppGUI/GUIElements.py:2619 AppTools/ToolShell.py:278
+msgid "Type >help< to get started"
+msgstr "Geben Sie> help Excellon Export."
+msgstr ""
+"Exportieren Exportiert ein Excellon-Objekt als Excellon-Datei.\n"
+"Das Koordinatenformat, die Dateieinheiten und Nullen\n"
+"werden in den Einstellungen -> Excellon Export.Excellon eingestellt ..."
+
+#: AppGUI/MainGUI.py:275
+msgid "Export &Gerber ..."
+msgstr "Gerber exportieren ..."
+
+#: AppGUI/MainGUI.py:277
+msgid ""
+"Will export an Gerber Object as Gerber file,\n"
+"the coordinates format, the file units and zeros\n"
+"are set in Preferences -> Gerber Export."
+msgstr ""
+"Exportiert ein Gerber-Objekt als Gerber-Datei.\n"
+"das Koordinatenformat, die Dateieinheiten und Nullen\n"
+"werden in den Einstellungen -> Gerber Export eingestellt."
+
+#: AppGUI/MainGUI.py:287
+msgid "Backup"
+msgstr "Sicherungskopie"
+
+#: AppGUI/MainGUI.py:292
+msgid "Import Preferences from file ..."
+msgstr "Einstellungen aus Datei importieren ..."
+
+#: AppGUI/MainGUI.py:298
+msgid "Export Preferences to file ..."
+msgstr "Einstellungen in Datei exportieren ..."
+
+#: AppGUI/MainGUI.py:306 AppGUI/preferences/PreferencesUIManager.py:1176
+msgid "Save Preferences"
+msgstr "Einstellungen speichern"
+
+#: AppGUI/MainGUI.py:312 AppGUI/MainGUI.py:4022
+msgid "Print (PDF)"
+msgstr "Drucken (PDF)"
+
+#: AppGUI/MainGUI.py:320
+msgid "E&xit"
+msgstr "Ausgang"
+
+#: AppGUI/MainGUI.py:328 AppGUI/MainGUI.py:749 AppGUI/MainGUI.py:1489
+msgid "Edit"
+msgstr "Bearbeiten"
+
+#: AppGUI/MainGUI.py:332
+msgid "Edit Object\tE"
+msgstr "Objekt bearbeiten\tE"
+
+#: AppGUI/MainGUI.py:334
+msgid "Close Editor\tCtrl+S"
+msgstr "Schließen Sie Editor\tSTRG+S"
+
+#: AppGUI/MainGUI.py:343
+msgid "Conversion"
+msgstr "Umwandlung"
+
+#: AppGUI/MainGUI.py:345
+msgid "&Join Geo/Gerber/Exc -> Geo"
+msgstr "Geo/Gerber/Exc -> Geo zusammenfassen"
+
+#: AppGUI/MainGUI.py:347
+msgid ""
+"Merge a selection of objects, which can be of type:\n"
+"- Gerber\n"
+"- Excellon\n"
+"- Geometry\n"
+"into a new combo Geometry object."
+msgstr ""
+"Zusammenführen einer Auswahl von Objekten, die vom Typ sein können:\n"
+"- Gerber\n"
+"- Excellon\n"
+"- Geometrie\n"
+"in ein neues Geometrieobjekt kombinieren."
+
+#: AppGUI/MainGUI.py:354
+msgid "Join Excellon(s) -> Excellon"
+msgstr "Excellon(s) -> Excellon zusammenfassen"
+
+#: AppGUI/MainGUI.py:356
+msgid "Merge a selection of Excellon objects into a new combo Excellon object."
+msgstr ""
+"Fassen Sie eine Auswahl von Excellon-Objekten in einem neuen Excellon-Objekt "
+"zusammen."
+
+#: AppGUI/MainGUI.py:359
+msgid "Join Gerber(s) -> Gerber"
+msgstr "Gerber(s) -> Gerber zusammenfassen"
+
+#: AppGUI/MainGUI.py:361
+msgid "Merge a selection of Gerber objects into a new combo Gerber object."
+msgstr ""
+"Mischen Sie eine Auswahl von Gerber-Objekten in ein neues Gerber-"
+"Kombinationsobjekt."
+
+#: AppGUI/MainGUI.py:366
+msgid "Convert Single to MultiGeo"
+msgstr "Konvertieren Sie Single in MultiGeo"
+
+#: AppGUI/MainGUI.py:368
+msgid ""
+"Will convert a Geometry object from single_geometry type\n"
+"to a multi_geometry type."
+msgstr ""
+"Konvertiert ein Geometrieobjekt vom Typ single_geometry\n"
+"zu einem multi_geometry-Typ."
+
+#: AppGUI/MainGUI.py:372
+msgid "Convert Multi to SingleGeo"
+msgstr "Konvertieren Sie Multi in SingleGeo"
+
+#: AppGUI/MainGUI.py:374
+msgid ""
+"Will convert a Geometry object from multi_geometry type\n"
+"to a single_geometry type."
+msgstr ""
+"Konvertiert ein Geometrieobjekt vom Typ multi_geometry\n"
+"zu einem single_geometry-Typ."
+
+#: AppGUI/MainGUI.py:381
+msgid "Convert Any to Geo"
+msgstr "Konvertieren Sie Any zu Geo"
+
+#: AppGUI/MainGUI.py:384
+msgid "Convert Any to Gerber"
+msgstr "Konvertieren Sie Any zu Gerber"
+
+#: AppGUI/MainGUI.py:390
+msgid "&Copy\tCtrl+C"
+msgstr "Kopieren\tSTRG+C"
+
+#: AppGUI/MainGUI.py:395
+msgid "&Delete\tDEL"
+msgstr "Löschen\tDEL"
+
+#: AppGUI/MainGUI.py:400
+msgid "Se&t Origin\tO"
+msgstr "Ursprung festlegen\tO"
+
+#: AppGUI/MainGUI.py:402
+msgid "Move to Origin\tShift+O"
+msgstr "Zum Ursprung wechseln\tShift+O"
+
+#: AppGUI/MainGUI.py:405
+msgid "Jump to Location\tJ"
+msgstr "Zum Ort springen\tJ"
+
+#: AppGUI/MainGUI.py:407
+msgid "Locate in Object\tShift+J"
+msgstr "Suchen Sie im Objekt\tShift+J"
+
+#: AppGUI/MainGUI.py:412
+msgid "Toggle Units\tQ"
+msgstr "Einheiten umschalten\tQ"
+
+#: AppGUI/MainGUI.py:414
+msgid "&Select All\tCtrl+A"
+msgstr "Alles auswählen\tSTRG+A"
+
+#: AppGUI/MainGUI.py:419
+msgid "&Preferences\tShift+P"
+msgstr "Einstellungen\tShift+P"
+
+#: AppGUI/MainGUI.py:425 AppTools/ToolProperties.py:155
+msgid "Options"
+msgstr "Optionen"
+
+#: AppGUI/MainGUI.py:427
+msgid "&Rotate Selection\tShift+(R)"
+msgstr "Auswahl drehen\tShift+(R)"
+
+#: AppGUI/MainGUI.py:432
+msgid "&Skew on X axis\tShift+X"
+msgstr "Neigung auf der X-Achse\tShift+X"
+
+#: AppGUI/MainGUI.py:434
+msgid "S&kew on Y axis\tShift+Y"
+msgstr "Neigung auf der Y-Achse\tShift+Y"
+
+#: AppGUI/MainGUI.py:439
+msgid "Flip on &X axis\tX"
+msgstr "X-Achse kippen\tX"
+
+#: AppGUI/MainGUI.py:441
+msgid "Flip on &Y axis\tY"
+msgstr "Y-Achse kippen\tY"
+
+#: AppGUI/MainGUI.py:446
+msgid "View source\tAlt+S"
+msgstr "Quelltext anzeigen\tAlt+S"
+
+#: AppGUI/MainGUI.py:448
+msgid "Tools DataBase\tCtrl+D"
+msgstr "Werkzeugdatenbank\tSTRG+D"
+
+#: AppGUI/MainGUI.py:455 AppGUI/MainGUI.py:1386
+msgid "View"
+msgstr "Aussicht"
+
+#: AppGUI/MainGUI.py:457
+msgid "Enable all plots\tAlt+1"
+msgstr "Alle Diagramme aktivieren\tAlt+1"
+
+#: AppGUI/MainGUI.py:459
+msgid "Disable all plots\tAlt+2"
+msgstr "Alle Diagramme deaktivieren\tAlt+2"
+
+#: AppGUI/MainGUI.py:461
+msgid "Disable non-selected\tAlt+3"
+msgstr "Nicht ausgewählte Diagramme deaktivieren\tAlt+3"
+
+#: AppGUI/MainGUI.py:465
+msgid "&Zoom Fit\tV"
+msgstr "Passed zoomen\tV"
+
+#: AppGUI/MainGUI.py:467
+msgid "&Zoom In\t="
+msgstr "Hineinzoomen\t="
+
+#: AppGUI/MainGUI.py:469
+msgid "&Zoom Out\t-"
+msgstr "Rauszoomen\t-"
+
+#: AppGUI/MainGUI.py:474
+msgid "Redraw All\tF5"
+msgstr "Alles neu zeichnen\tF5"
+
+#: AppGUI/MainGUI.py:478
+msgid "Toggle Code Editor\tShift+E"
+msgstr "Code-Editor umschalten\tShift+E"
+
+#: AppGUI/MainGUI.py:481
+msgid "&Toggle FullScreen\tAlt+F10"
+msgstr "FullScreen umschalten\tAlt+F10"
+
+#: AppGUI/MainGUI.py:483
+msgid "&Toggle Plot Area\tCtrl+F10"
+msgstr "Plotbereich umschalten\tSTRG+F10"
+
+#: AppGUI/MainGUI.py:485
+msgid "&Toggle Project/Sel/Tool\t`"
+msgstr "Projekt/Auswahl/Werkzeug umschalten\t`"
+
+#: AppGUI/MainGUI.py:489
+msgid "&Toggle Grid Snap\tG"
+msgstr "Schaltet den Rasterfang ein\tG"
+
+#: AppGUI/MainGUI.py:491
+msgid "&Toggle Grid Lines\tAlt+G"
+msgstr "Gitterlinien umschalten\tAlt+G"
+
+#: AppGUI/MainGUI.py:493
+msgid "&Toggle Axis\tShift+G"
+msgstr "Achse umschalten\tShift+G"
+
+#: AppGUI/MainGUI.py:495
+msgid "Toggle Workspace\tShift+W"
+msgstr "Arbeitsbereich umschalten\tShift+W"
+
+#: AppGUI/MainGUI.py:497
+#, fuzzy
+#| msgid "Toggle Units"
+msgid "Toggle HUD\tAlt+M"
+msgstr "Einheiten wechseln"
+
+#: AppGUI/MainGUI.py:502
+msgid "Objects"
+msgstr "Objekte"
+
+#: AppGUI/MainGUI.py:505 AppGUI/MainGUI.py:4020
+#: AppObjects/ObjectCollection.py:1120 AppObjects/ObjectCollection.py:1167
+msgid "Select All"
+msgstr "Select All"
+
+#: AppGUI/MainGUI.py:507 AppObjects/ObjectCollection.py:1124
+#: AppObjects/ObjectCollection.py:1171
+msgid "Deselect All"
+msgstr "Alle abwählen"
+
+#: AppGUI/MainGUI.py:516
+msgid "&Command Line\tS"
+msgstr "Befehlszeile\tS"
+
+#: AppGUI/MainGUI.py:521
+msgid "Help"
+msgstr "Hilfe"
+
+#: AppGUI/MainGUI.py:523
+msgid "Online Help\tF1"
+msgstr "Onlinehilfe\tF1"
+
+#: AppGUI/MainGUI.py:526 Bookmark.py:293
+msgid "Bookmarks"
+msgstr "Lesezeichen"
+
+#: AppGUI/MainGUI.py:529 App_Main.py:2989 App_Main.py:2998
+msgid "Bookmarks Manager"
+msgstr "Lesezeichen verwalten"
+
+#: AppGUI/MainGUI.py:533
+msgid "Report a bug"
+msgstr "Einen Fehler melden"
+
+#: AppGUI/MainGUI.py:536
+msgid "Excellon Specification"
+msgstr "Excellon-Spezifikation"
+
+#: AppGUI/MainGUI.py:538
+msgid "Gerber Specification"
+msgstr "Gerber-Spezifikation"
+
+#: AppGUI/MainGUI.py:543
+msgid "Shortcuts List\tF3"
+msgstr "Tastenkürzel Liste\tF3"
+
+#: AppGUI/MainGUI.py:545
+msgid "YouTube Channel\tF4"
+msgstr "Youtube Kanal\tF4"
+
+#: AppGUI/MainGUI.py:547 App_Main.py:2624
+msgid "About FlatCAM"
+msgstr "Über FlatCAM"
+
+#: AppGUI/MainGUI.py:556
+msgid "Add Circle\tO"
+msgstr "Kreis hinzufügen\tO"
+
+#: AppGUI/MainGUI.py:559
+msgid "Add Arc\tA"
+msgstr "Bogen hinzufügen\tA"
+
+#: AppGUI/MainGUI.py:562
+msgid "Add Rectangle\tR"
+msgstr "Rechteck hinzufügen\tR"
+
+#: AppGUI/MainGUI.py:565
+msgid "Add Polygon\tN"
+msgstr "Polygon hinzufügen\tN"
+
+#: AppGUI/MainGUI.py:568
+msgid "Add Path\tP"
+msgstr "Pfad hinzufügen\tP"
+
+#: AppGUI/MainGUI.py:571
+msgid "Add Text\tT"
+msgstr "Text hinzufügen\tT"
+
+#: AppGUI/MainGUI.py:574
+msgid "Polygon Union\tU"
+msgstr "Polygon-Vereinigung\tU"
+
+#: AppGUI/MainGUI.py:576
+msgid "Polygon Intersection\tE"
+msgstr "Polygonschnitt\tE"
+
+#: AppGUI/MainGUI.py:578
+msgid "Polygon Subtraction\tS"
+msgstr "Polygon-Subtraktion\tS"
+
+#: AppGUI/MainGUI.py:582
+msgid "Cut Path\tX"
+msgstr "Pfad ausschneiden\tX"
+
+#: AppGUI/MainGUI.py:586
+msgid "Copy Geom\tC"
+msgstr "Geometrie kopieren\tC"
+
+#: AppGUI/MainGUI.py:588
+msgid "Delete Shape\tDEL"
+msgstr "Form löschen\tDEL"
+
+#: AppGUI/MainGUI.py:592 AppGUI/MainGUI.py:679
+msgid "Move\tM"
+msgstr "Bewegung\tM"
+
+#: AppGUI/MainGUI.py:594
+msgid "Buffer Tool\tB"
+msgstr "Pufferwerkzeug\tB"
+
+#: AppGUI/MainGUI.py:597
+msgid "Paint Tool\tI"
+msgstr "Malenwerkzeug\tI"
+
+#: AppGUI/MainGUI.py:600
+msgid "Transform Tool\tAlt+R"
+msgstr "Transformationswerkzeug\tAlt+R"
+
+#: AppGUI/MainGUI.py:604
+msgid "Toggle Corner Snap\tK"
+msgstr "Eckfang umschalten\tK"
+
+#: AppGUI/MainGUI.py:610
+msgid ">Excellon Editor<"
+msgstr ">Excellon Editor<"
+
+#: AppGUI/MainGUI.py:614
+msgid "Add Drill Array\tA"
+msgstr "Bohrfeld hinzufügen\tA"
+
+#: AppGUI/MainGUI.py:616
+msgid "Add Drill\tD"
+msgstr "Bohrer hinzufügen\tD"
+
+#: AppGUI/MainGUI.py:620
+msgid "Add Slot Array\tQ"
+msgstr "Steckplatz-Array hinzufügen\tQ"
+
+#: AppGUI/MainGUI.py:622
+msgid "Add Slot\tW"
+msgstr "Slot hinzufügen\tW"
+
+#: AppGUI/MainGUI.py:626
+msgid "Resize Drill(S)\tR"
+msgstr "Bohrer verkleinern\tR"
+
+#: AppGUI/MainGUI.py:629 AppGUI/MainGUI.py:673
+msgid "Copy\tC"
+msgstr "Kopieren\tC"
+
+#: AppGUI/MainGUI.py:631 AppGUI/MainGUI.py:675
+msgid "Delete\tDEL"
+msgstr "Löschen\tDEL"
+
+#: AppGUI/MainGUI.py:636
+msgid "Move Drill(s)\tM"
+msgstr "Bohrer verschieben\tM"
+
+#: AppGUI/MainGUI.py:641
+msgid ">Gerber Editor<"
+msgstr ">Gerber-Editor<"
+
+#: AppGUI/MainGUI.py:645
+msgid "Add Pad\tP"
+msgstr "Pad hinzufügen\tP"
+
+#: AppGUI/MainGUI.py:647
+msgid "Add Pad Array\tA"
+msgstr "Pad-Array hinzufügen\tA"
+
+#: AppGUI/MainGUI.py:649
+msgid "Add Track\tT"
+msgstr "Track hinzufügen\tA"
+
+#: AppGUI/MainGUI.py:651
+msgid "Add Region\tN"
+msgstr "Region hinzufügen\tN"
+
+#: AppGUI/MainGUI.py:655
+msgid "Poligonize\tAlt+N"
+msgstr "Polygonisieren\tAlt+N"
+
+#: AppGUI/MainGUI.py:657
+msgid "Add SemiDisc\tE"
+msgstr "Halbschibe hinzufügen\tE"
+
+#: AppGUI/MainGUI.py:659
+msgid "Add Disc\tD"
+msgstr "Schibe hinzufügen\tD"
+
+#: AppGUI/MainGUI.py:661
+msgid "Buffer\tB"
+msgstr "Puffer\tB"
+
+#: AppGUI/MainGUI.py:663
+msgid "Scale\tS"
+msgstr "Skalieren\tS"
+
+#: AppGUI/MainGUI.py:665
+msgid "Mark Area\tAlt+A"
+msgstr "Bereich markieren\tAlt+A"
+
+#: AppGUI/MainGUI.py:667
+msgid "Eraser\tCtrl+E"
+msgstr "Radiergummi\tSTRG+E"
+
+#: AppGUI/MainGUI.py:669
+msgid "Transform\tAlt+R"
+msgstr "Transformationswerkzeug\tSTRG+R"
+
+#: AppGUI/MainGUI.py:696
+msgid "Enable Plot"
+msgstr "Diagramm aktivieren"
+
+#: AppGUI/MainGUI.py:698
+msgid "Disable Plot"
+msgstr "Diagramm deaktivieren"
+
+#: AppGUI/MainGUI.py:702
+msgid "Set Color"
+msgstr "Farbsatz"
+
+#: AppGUI/MainGUI.py:705 App_Main.py:9548
+msgid "Red"
+msgstr "Rote"
+
+#: AppGUI/MainGUI.py:708 App_Main.py:9550
+msgid "Blue"
+msgstr "Blau"
+
+#: AppGUI/MainGUI.py:711 App_Main.py:9553
+msgid "Yellow"
+msgstr "Gelb"
+
+#: AppGUI/MainGUI.py:714 App_Main.py:9555
+msgid "Green"
+msgstr "Grün"
+
+#: AppGUI/MainGUI.py:717 App_Main.py:9557
+msgid "Purple"
+msgstr "Lila"
+
+#: AppGUI/MainGUI.py:720 App_Main.py:9559
+msgid "Brown"
+msgstr "Braun"
+
+#: AppGUI/MainGUI.py:723 App_Main.py:9561 App_Main.py:9617
+msgid "White"
+msgstr "Weiß"
+
+#: AppGUI/MainGUI.py:726 App_Main.py:9563
+msgid "Black"
+msgstr "Schwarz"
+
+#: AppGUI/MainGUI.py:731 AppTools/ToolEtchCompensation.py:110 App_Main.py:9566
+msgid "Custom"
+msgstr "Maßgeschn."
+
+#: AppGUI/MainGUI.py:736 App_Main.py:9600
+msgid "Opacity"
+msgstr "Opazität"
+
+#: AppGUI/MainGUI.py:739 App_Main.py:9576
+msgid "Default"
+msgstr "Standard"
+
+#: AppGUI/MainGUI.py:744
+msgid "Generate CNC"
+msgstr "CNC generieren"
+
+#: AppGUI/MainGUI.py:746
+msgid "View Source"
+msgstr "Quelltext anzeigen"
+
+#: AppGUI/MainGUI.py:751 AppGUI/MainGUI.py:856 AppGUI/MainGUI.py:1069
+#: AppGUI/MainGUI.py:1485 AppGUI/MainGUI.py:1852 AppGUI/MainGUI.py:2061
+#: AppGUI/MainGUI.py:4430 AppGUI/ObjectUI.py:1719
+#: AppObjects/FlatCAMGeometry.py:553 AppTools/ToolPanelize.py:551
+#: AppTools/ToolPanelize.py:578 AppTools/ToolPanelize.py:671
+#: AppTools/ToolPanelize.py:700 AppTools/ToolPanelize.py:762
+msgid "Copy"
+msgstr "Kopieren"
+
+#: AppGUI/MainGUI.py:759 AppGUI/MainGUI.py:1498 AppTools/ToolProperties.py:31
+msgid "Properties"
+msgstr "Eigenschaften"
+
+#: AppGUI/MainGUI.py:788
+msgid "File Toolbar"
+msgstr "Dateisymbolleiste"
+
+#: AppGUI/MainGUI.py:792
+msgid "Edit Toolbar"
+msgstr "Symbolleiste bearbeiten"
+
+#: AppGUI/MainGUI.py:796
+msgid "View Toolbar"
+msgstr "Symbolleiste anzeigen"
+
+#: AppGUI/MainGUI.py:800
+msgid "Shell Toolbar"
+msgstr "Shell-Symbolleiste"
+
+#: AppGUI/MainGUI.py:804
+msgid "Tools Toolbar"
+msgstr "Werkzeugleiste"
+
+#: AppGUI/MainGUI.py:808
+msgid "Excellon Editor Toolbar"
+msgstr "Excellon Editor-Symbolleiste"
+
+#: AppGUI/MainGUI.py:814
+msgid "Geometry Editor Toolbar"
+msgstr "Geometrie Editor-Symbolleiste"
+
+#: AppGUI/MainGUI.py:818
+msgid "Gerber Editor Toolbar"
+msgstr "Gerber Editor-Symbolleiste"
+
+#: AppGUI/MainGUI.py:822
+msgid "Grid Toolbar"
+msgstr "Raster-Symbolleiste"
+
+#: AppGUI/MainGUI.py:836 AppGUI/MainGUI.py:1831 App_Main.py:6513
+#: App_Main.py:6517
+msgid "Open Gerber"
+msgstr "Gerber öffnen"
+
+#: AppGUI/MainGUI.py:838 AppGUI/MainGUI.py:1833 App_Main.py:6551
+#: App_Main.py:6555
+msgid "Open Excellon"
+msgstr "Excellon öffnen"
+
+#: AppGUI/MainGUI.py:841 AppGUI/MainGUI.py:1836
+msgid "Open project"
+msgstr "Projekt öffnen"
+
+#: AppGUI/MainGUI.py:843 AppGUI/MainGUI.py:1838
+msgid "Save project"
+msgstr "Projekt speichern"
+
+#: AppGUI/MainGUI.py:851 AppGUI/MainGUI.py:1847
+msgid "Save Object and close the Editor"
+msgstr "Speichern Sie das Objekt und schließen Sie den Editor"
+
+#: AppGUI/MainGUI.py:858 AppGUI/MainGUI.py:1854
+msgid "&Delete"
+msgstr "&Löschen"
+
+#: AppGUI/MainGUI.py:861 AppGUI/MainGUI.py:1857 AppGUI/MainGUI.py:4021
+#: AppGUI/MainGUI.py:4227 AppTools/ToolDistance.py:35
+#: AppTools/ToolDistance.py:197
+msgid "Distance Tool"
+msgstr "Entfernungswerkzeug"
+
+#: AppGUI/MainGUI.py:863 AppGUI/MainGUI.py:1859
+msgid "Distance Min Tool"
+msgstr "Werkzeug für Mindestabstand"
+
+#: AppGUI/MainGUI.py:865 AppGUI/MainGUI.py:1861 AppGUI/MainGUI.py:4014
+msgid "Set Origin"
+msgstr "Nullpunkt festlegen"
+
+#: AppGUI/MainGUI.py:867 AppGUI/MainGUI.py:1863
+msgid "Move to Origin"
+msgstr "Zum Ursprung wechseln"
+
+#: AppGUI/MainGUI.py:870 AppGUI/MainGUI.py:1865
+msgid "Jump to Location"
+msgstr "Zur Position springen\tJ"
+
+#: AppGUI/MainGUI.py:872 AppGUI/MainGUI.py:1867 AppGUI/MainGUI.py:4026
+msgid "Locate in Object"
+msgstr "Suchen Sie im Objekt"
+
+#: AppGUI/MainGUI.py:878 AppGUI/MainGUI.py:1873
+msgid "&Replot"
+msgstr "Neuzeichnen &R"
+
+#: AppGUI/MainGUI.py:880 AppGUI/MainGUI.py:1875
+msgid "&Clear plot"
+msgstr "Darstellung löschen &C"
+
+#: AppGUI/MainGUI.py:882 AppGUI/MainGUI.py:1877 AppGUI/MainGUI.py:4017
+msgid "Zoom In"
+msgstr "Hineinzoomen"
+
+#: AppGUI/MainGUI.py:884 AppGUI/MainGUI.py:1879 AppGUI/MainGUI.py:4017
+msgid "Zoom Out"
+msgstr "Rauszoomen"
+
+#: AppGUI/MainGUI.py:886 AppGUI/MainGUI.py:1388 AppGUI/MainGUI.py:1881
+#: AppGUI/MainGUI.py:4016
+msgid "Zoom Fit"
+msgstr "Passend zoomen"
+
+#: AppGUI/MainGUI.py:894 AppGUI/MainGUI.py:1887
+msgid "&Command Line"
+msgstr "Befehlszeile"
+
+#: AppGUI/MainGUI.py:906 AppGUI/MainGUI.py:1899
+msgid "2Sided Tool"
+msgstr "2Seitiges Werkzeug"
+
+#: AppGUI/MainGUI.py:908 AppGUI/MainGUI.py:1901 AppGUI/MainGUI.py:4032
+msgid "Align Objects Tool"
+msgstr "Werkzeug \"Objekte ausrichten\""
+
+#: AppGUI/MainGUI.py:910 AppGUI/MainGUI.py:1903 AppGUI/MainGUI.py:4033
+#: AppTools/ToolExtractDrills.py:393
+msgid "Extract Drills Tool"
+msgstr "Bohrer Extrahieren Werkzeug"
+
+#: AppGUI/MainGUI.py:913 AppGUI/ObjectUI.py:596 AppTools/ToolCutOut.py:440
+msgid "Cutout Tool"
+msgstr "Ausschnittwerkzeug"
+
+#: AppGUI/MainGUI.py:915 AppGUI/MainGUI.py:1908 AppGUI/ObjectUI.py:574
+#: AppGUI/ObjectUI.py:2287 AppTools/ToolNCC.py:974
+msgid "NCC Tool"
+msgstr "NCC Werkzeug"
+
+#: AppGUI/MainGUI.py:921 AppGUI/MainGUI.py:1914
+msgid "Panel Tool"
+msgstr "Platte Werkzeug"
+
+#: AppGUI/MainGUI.py:923 AppGUI/MainGUI.py:1916 AppTools/ToolFilm.py:569
+msgid "Film Tool"
+msgstr "Filmwerkzeug"
+
+#: AppGUI/MainGUI.py:925 AppGUI/MainGUI.py:1918 AppTools/ToolSolderPaste.py:553
+msgid "SolderPaste Tool"
+msgstr "Lötpaste-Werkzeug"
+
+#: AppGUI/MainGUI.py:927 AppGUI/MainGUI.py:1920 AppTools/ToolSub.py:35
+msgid "Subtract Tool"
+msgstr "Subtraktionswerkzeug"
+
+#: AppGUI/MainGUI.py:929 AppGUI/MainGUI.py:1922 AppTools/ToolRulesCheck.py:616
+msgid "Rules Tool"
+msgstr "Regelwerkzeug"
+
+#: AppGUI/MainGUI.py:931 AppGUI/MainGUI.py:1924 AppGUI/MainGUI.py:4035
+#: AppTools/ToolOptimal.py:33 AppTools/ToolOptimal.py:307
+msgid "Optimal Tool"
+msgstr "Optimierungswerkzeug"
+
+#: AppGUI/MainGUI.py:936 AppGUI/MainGUI.py:1929 AppGUI/MainGUI.py:4032
+msgid "Calculators Tool"
+msgstr "Rechnerwerkzeug"
+
+#: AppGUI/MainGUI.py:940 AppGUI/MainGUI.py:1933 AppGUI/MainGUI.py:4036
+#: AppTools/ToolQRCode.py:43 AppTools/ToolQRCode.py:382
+msgid "QRCode Tool"
+msgstr "QRCode Werkzeug"
+
+# Really don't know
+#: AppGUI/MainGUI.py:942 AppGUI/MainGUI.py:1935
+#: AppTools/ToolCopperThieving.py:39 AppTools/ToolCopperThieving.py:568
+msgid "Copper Thieving Tool"
+msgstr "Copper Thieving Werkzeug"
+
+# Really don't know
+#: AppGUI/MainGUI.py:945 AppGUI/MainGUI.py:1938 AppGUI/MainGUI.py:4033
+#: AppTools/ToolFiducials.py:33 AppTools/ToolFiducials.py:396
+msgid "Fiducials Tool"
+msgstr "Passermarken-Tool"
+
+#: AppGUI/MainGUI.py:947 AppGUI/MainGUI.py:1940 AppTools/ToolCalibration.py:37
+#: AppTools/ToolCalibration.py:759
+msgid "Calibration Tool"
+msgstr "Kalibierungswerkzeug"
+
+#: AppGUI/MainGUI.py:949 AppGUI/MainGUI.py:1942 AppGUI/MainGUI.py:4033
+msgid "Punch Gerber Tool"
+msgstr "Stanzen Sie das Gerber-Werkzeug"
+
+#: AppGUI/MainGUI.py:951 AppGUI/MainGUI.py:1944 AppTools/ToolInvertGerber.py:31
+msgid "Invert Gerber Tool"
+msgstr "Invertieren Sie das Gerber-Werkzeug"
+
+#: AppGUI/MainGUI.py:953 AppGUI/MainGUI.py:1946 AppGUI/MainGUI.py:4035
+#: AppTools/ToolCorners.py:31
+#, fuzzy
+#| msgid "Invert Gerber Tool"
+msgid "Corner Markers Tool"
+msgstr "Invertieren Sie das Gerber-Werkzeug"
+
+#: AppGUI/MainGUI.py:955 AppGUI/MainGUI.py:1948
+#: AppTools/ToolEtchCompensation.py:31
+#, fuzzy
+#| msgid "Editor Transformation Tool"
+msgid "Etch Compensation Tool"
+msgstr "Editor-Transformationstool"
+
+#: AppGUI/MainGUI.py:961 AppGUI/MainGUI.py:987 AppGUI/MainGUI.py:1039
+#: AppGUI/MainGUI.py:1954 AppGUI/MainGUI.py:2032
+msgid "Select"
+msgstr "Wählen"
+
+#: AppGUI/MainGUI.py:963 AppGUI/MainGUI.py:1956
+msgid "Add Drill Hole"
+msgstr "Bohrloch hinzufügen"
+
+#: AppGUI/MainGUI.py:965 AppGUI/MainGUI.py:1958
+msgid "Add Drill Hole Array"
+msgstr "Bohrlochfeld hinzufügen"
+
+#: AppGUI/MainGUI.py:967 AppGUI/MainGUI.py:1476 AppGUI/MainGUI.py:1962
+#: AppGUI/MainGUI.py:4312
+msgid "Add Slot"
+msgstr "Steckplatz hinzufügen"
+
+#: AppGUI/MainGUI.py:969 AppGUI/MainGUI.py:1478 AppGUI/MainGUI.py:1964
+#: AppGUI/MainGUI.py:4311
+msgid "Add Slot Array"
+msgstr "Steckplatz-Array hinzufügen"
+
+#: AppGUI/MainGUI.py:971 AppGUI/MainGUI.py:1481 AppGUI/MainGUI.py:1960
+msgid "Resize Drill"
+msgstr "Bohrergröße ändern"
+
+#: AppGUI/MainGUI.py:975 AppGUI/MainGUI.py:1968
+msgid "Copy Drill"
+msgstr "Bohrer kopieren"
+
+#: AppGUI/MainGUI.py:977 AppGUI/MainGUI.py:1970
+msgid "Delete Drill"
+msgstr "Bohrer löschen"
+
+#: AppGUI/MainGUI.py:981 AppGUI/MainGUI.py:1974
+msgid "Move Drill"
+msgstr "Bohrer bewegen"
+
+#: AppGUI/MainGUI.py:989 AppGUI/MainGUI.py:1982
+msgid "Add Circle"
+msgstr "Kreis hinzufügen"
+
+#: AppGUI/MainGUI.py:991 AppGUI/MainGUI.py:1984
+msgid "Add Arc"
+msgstr "Bogen hinzufügen"
+
+#: AppGUI/MainGUI.py:993 AppGUI/MainGUI.py:1986
+msgid "Add Rectangle"
+msgstr "Rechteck hinzufügen"
+
+#: AppGUI/MainGUI.py:997 AppGUI/MainGUI.py:1990
+msgid "Add Path"
+msgstr "Pfad hinzufügen"
+
+#: AppGUI/MainGUI.py:999 AppGUI/MainGUI.py:1992
+msgid "Add Polygon"
+msgstr "Polygon hinzufügen"
+
+#: AppGUI/MainGUI.py:1002 AppGUI/MainGUI.py:1995
+msgid "Add Text"
+msgstr "Text hinzufügen"
+
+#: AppGUI/MainGUI.py:1004 AppGUI/MainGUI.py:1997
+msgid "Add Buffer"
+msgstr "Puffer hinzufügen"
+
+#: AppGUI/MainGUI.py:1006 AppGUI/MainGUI.py:1999
+msgid "Paint Shape"
+msgstr "Malen Form"
+
+#: AppGUI/MainGUI.py:1008 AppGUI/MainGUI.py:1065 AppGUI/MainGUI.py:1417
+#: AppGUI/MainGUI.py:1462 AppGUI/MainGUI.py:2001 AppGUI/MainGUI.py:2057
+msgid "Eraser"
+msgstr "Radiergummi"
+
+#: AppGUI/MainGUI.py:1012 AppGUI/MainGUI.py:2005
+msgid "Polygon Union"
+msgstr "Polygon-Vereinigung"
+
+#: AppGUI/MainGUI.py:1014 AppGUI/MainGUI.py:2007
+msgid "Polygon Explode"
+msgstr "Polygon explodieren"
+
+#: AppGUI/MainGUI.py:1017 AppGUI/MainGUI.py:2010
+msgid "Polygon Intersection"
+msgstr "Polygonschnitt"
+
+#: AppGUI/MainGUI.py:1019 AppGUI/MainGUI.py:2012
+msgid "Polygon Subtraction"
+msgstr "Polygon-Subtraktion"
+
+#: AppGUI/MainGUI.py:1023 AppGUI/MainGUI.py:2016
+msgid "Cut Path"
+msgstr "Pfad ausschneiden"
+
+#: AppGUI/MainGUI.py:1025
+msgid "Copy Shape(s)"
+msgstr "Form kopieren"
+
+#: AppGUI/MainGUI.py:1028
+msgid "Delete Shape '-'"
+msgstr "Form löschen"
+
+#: AppGUI/MainGUI.py:1030 AppGUI/MainGUI.py:1073 AppGUI/MainGUI.py:1429
+#: AppGUI/MainGUI.py:1466 AppGUI/MainGUI.py:2022 AppGUI/MainGUI.py:2065
+#: AppGUI/ObjectUI.py:109
+msgid "Transformations"
+msgstr "Transformationen"
+
+#: AppGUI/MainGUI.py:1033
+msgid "Move Objects "
+msgstr "Objekte verschieben "
+
+#: AppGUI/MainGUI.py:1041 AppGUI/MainGUI.py:2034 AppGUI/MainGUI.py:4431
+msgid "Add Pad"
+msgstr "Pad hinzufügen"
+
+#: AppGUI/MainGUI.py:1045 AppGUI/MainGUI.py:2038 AppGUI/MainGUI.py:4432
+msgid "Add Track"
+msgstr "Track hinzufügen"
+
+#: AppGUI/MainGUI.py:1047 AppGUI/MainGUI.py:2040 AppGUI/MainGUI.py:4431
+msgid "Add Region"
+msgstr "Region hinzufügen"
+
+#: AppGUI/MainGUI.py:1049 AppGUI/MainGUI.py:1448 AppGUI/MainGUI.py:2042
+msgid "Poligonize"
+msgstr "Polygonisieren"
+
+#: AppGUI/MainGUI.py:1052 AppGUI/MainGUI.py:1450 AppGUI/MainGUI.py:2045
+msgid "SemiDisc"
+msgstr "Halbscheibe"
+
+#: AppGUI/MainGUI.py:1054 AppGUI/MainGUI.py:1452 AppGUI/MainGUI.py:2047
+msgid "Disc"
+msgstr "Scheibe"
+
+#: AppGUI/MainGUI.py:1062 AppGUI/MainGUI.py:1460 AppGUI/MainGUI.py:2055
+msgid "Mark Area"
+msgstr "Bereich markieren"
+
+#: AppGUI/MainGUI.py:1076 AppGUI/MainGUI.py:1433 AppGUI/MainGUI.py:1496
+#: AppGUI/MainGUI.py:2068 AppGUI/MainGUI.py:4431 AppTools/ToolMove.py:27
+msgid "Move"
+msgstr "Bewegung"
+
+#: AppGUI/MainGUI.py:1084
+msgid "Snap to grid"
+msgstr "Am Raster ausrichten"
+
+#: AppGUI/MainGUI.py:1087
+msgid "Grid X snapping distance"
+msgstr "Raster X Fangdistanz"
+
+#: AppGUI/MainGUI.py:1092
+msgid "Grid Y snapping distance"
+msgstr "Raster Y Fangdistanz"
+
+#: AppGUI/MainGUI.py:1098
+msgid ""
+"When active, value on Grid_X\n"
+"is copied to the Grid_Y value."
+msgstr ""
+"Wenn aktiv, Wert auf Grid_X\n"
+"wird in den Wert von Grid_Y kopiert."
+
+#: AppGUI/MainGUI.py:1105
+msgid "Snap to corner"
+msgstr "In der Ecke ausrichten"
+
+#: AppGUI/MainGUI.py:1109 AppGUI/preferences/general/GeneralAPPSetGroupUI.py:78
+msgid "Max. magnet distance"
+msgstr "Max. Magnetabstand"
+
+#: AppGUI/MainGUI.py:1134 AppGUI/MainGUI.py:1379 App_Main.py:7543
+msgid "Project"
+msgstr "Projekt"
+
+#: AppGUI/MainGUI.py:1149
+msgid "Selected"
+msgstr "Ausgewählt"
+
+#: AppGUI/MainGUI.py:1177 AppGUI/MainGUI.py:1185
+msgid "Plot Area"
+msgstr "Grundstücksfläche"
+
+#: AppGUI/MainGUI.py:1212
+msgid "General"
+msgstr "Allgemeines"
+
+#: AppGUI/MainGUI.py:1227 AppTools/ToolCopperThieving.py:74
+#: AppTools/ToolCorners.py:55 AppTools/ToolDblSided.py:64
+#: AppTools/ToolEtchCompensation.py:72 AppTools/ToolExtractDrills.py:61
+#: AppTools/ToolInvertGerber.py:72 AppTools/ToolOptimal.py:71
+#: AppTools/ToolPunchGerber.py:64
+msgid "GERBER"
+msgstr "GERBER"
+
+#: AppGUI/MainGUI.py:1237 AppTools/ToolDblSided.py:92
+msgid "EXCELLON"
+msgstr "EXCELLON"
+
+#: AppGUI/MainGUI.py:1247 AppTools/ToolDblSided.py:120
+msgid "GEOMETRY"
+msgstr "GEOMETRY"
+
+#: AppGUI/MainGUI.py:1257
+msgid "CNC-JOB"
+msgstr "CNC-Auftrag"
+
+#: AppGUI/MainGUI.py:1266 AppGUI/ObjectUI.py:563 AppGUI/ObjectUI.py:2262
+msgid "TOOLS"
+msgstr "WERKZEUGE"
+
+#: AppGUI/MainGUI.py:1275
+msgid "TOOLS 2"
+msgstr "WERKZEUGE 2"
+
+#: AppGUI/MainGUI.py:1285
+msgid "UTILITIES"
+msgstr "NUTZEN"
+
+#: AppGUI/MainGUI.py:1302
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:192
+msgid "Restore Defaults"
+msgstr "Standard wiederherstellen"
+
+#: AppGUI/MainGUI.py:1305
+msgid ""
+"Restore the entire set of default values\n"
+"to the initial values loaded after first launch."
+msgstr ""
+"Stellen Sie den gesamten Satz von Standardwerten wieder her\n"
+"auf die nach dem ersten Start geladenen Anfangswerte."
+
+#: AppGUI/MainGUI.py:1310
+msgid "Open Pref Folder"
+msgstr "Öffnen Sie den Einstellungsordner"
+
+#: AppGUI/MainGUI.py:1313
+msgid "Open the folder where FlatCAM save the preferences files."
+msgstr ""
+"Öffnen Sie den Ordner, in dem FlatCAM die Voreinstellungsdateien speichert."
+
+#: AppGUI/MainGUI.py:1317 AppGUI/MainGUI.py:1804
+msgid "Clear GUI Settings"
+msgstr "Löschen Sie die GUI-Einstellungen"
+
+#: AppGUI/MainGUI.py:1321
+msgid ""
+"Clear the GUI settings for FlatCAM,\n"
+"such as: layout, gui state, style, hdpi support etc."
+msgstr ""
+"Löschen Sie die GUI-Einstellungen für FlatCAM.\n"
+"wie zum Beispiel: Layout, GUI-Status, Stil, HDPI-Unterstützung usw."
+
+#: AppGUI/MainGUI.py:1332
+msgid "Apply"
+msgstr "Anwenden"
+
+#: AppGUI/MainGUI.py:1335
+msgid "Apply the current preferences without saving to a file."
+msgstr "Anwenden ohne zu speichern."
+
+#: AppGUI/MainGUI.py:1342
+msgid ""
+"Save the current settings in the 'current_defaults' file\n"
+"which is the file storing the working default preferences."
+msgstr ""
+"Speichern Sie die aktuellen Einstellungen in der Datei 'current_defaults'\n"
+"Dies ist die Datei, in der die Arbeitseinstellungen gespeichert sind."
+
+#: AppGUI/MainGUI.py:1350
+msgid "Will not save the changes and will close the preferences window."
+msgstr "Einstellungen werden geschlossen ohne die Änderungen zu speichern."
+
+#: AppGUI/MainGUI.py:1364
+msgid "Toggle Visibility"
+msgstr "Sichtbarkeit umschalten"
+
+#: AppGUI/MainGUI.py:1370
+msgid "New"
+msgstr "Neu"
+
+#: AppGUI/MainGUI.py:1372 AppGUI/ObjectUI.py:450
+#: AppObjects/FlatCAMGerber.py:239 AppObjects/FlatCAMGerber.py:327
+#: AppTools/ToolCalibration.py:631 AppTools/ToolCalibration.py:648
+#: AppTools/ToolCalibration.py:815 AppTools/ToolCopperThieving.py:144
+#: AppTools/ToolCopperThieving.py:158 AppTools/ToolCopperThieving.py:604
+#: AppTools/ToolCutOut.py:92 AppTools/ToolDblSided.py:226
+#: AppTools/ToolFilm.py:69 AppTools/ToolFilm.py:92 AppTools/ToolImage.py:49
+#: AppTools/ToolImage.py:271 AppTools/ToolNCC.py:95 AppTools/ToolNCC.py:558
+#: AppTools/ToolNCC.py:1300 AppTools/ToolPaint.py:501 AppTools/ToolPaint.py:705
+#: AppTools/ToolPanelize.py:116 AppTools/ToolPanelize.py:385
+#: AppTools/ToolPanelize.py:402
+msgid "Geometry"
+msgstr "Geometrie"
+
+#: AppGUI/MainGUI.py:1376
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:99
+#: AppTools/ToolAlignObjects.py:74 AppTools/ToolAlignObjects.py:110
+#: AppTools/ToolCalibration.py:197 AppTools/ToolCalibration.py:631
+#: AppTools/ToolCalibration.py:648 AppTools/ToolCalibration.py:807
+#: AppTools/ToolCalibration.py:815 AppTools/ToolCopperThieving.py:144
+#: AppTools/ToolCopperThieving.py:158 AppTools/ToolCopperThieving.py:604
+#: AppTools/ToolDblSided.py:225 AppTools/ToolFilm.py:342
+#: AppTools/ToolNCC.py:558 AppTools/ToolNCC.py:1300 AppTools/ToolPaint.py:501
+#: AppTools/ToolPaint.py:705 AppTools/ToolPanelize.py:385
+#: AppTools/ToolPunchGerber.py:149 AppTools/ToolPunchGerber.py:164
+msgid "Excellon"
+msgstr "Excellon"
+
+#: AppGUI/MainGUI.py:1383
+msgid "Grids"
+msgstr "Raster"
+
+#: AppGUI/MainGUI.py:1390
+msgid "Clear Plot"
+msgstr "Plot klar löschen"
+
+#: AppGUI/MainGUI.py:1392
+msgid "Replot"
+msgstr "Replotieren"
+
+#: AppGUI/MainGUI.py:1396
+msgid "Geo Editor"
+msgstr "Geo-Editor"
+
+#: AppGUI/MainGUI.py:1398
+msgid "Path"
+msgstr "Pfad"
+
+#: AppGUI/MainGUI.py:1400
+msgid "Rectangle"
+msgstr "Rechteck"
+
+#: AppGUI/MainGUI.py:1403
+msgid "Circle"
+msgstr "Kreis"
+
+#: AppGUI/MainGUI.py:1407
+msgid "Arc"
+msgstr "Bogen"
+
+#: AppGUI/MainGUI.py:1421
+msgid "Union"
+msgstr "Vereinigung"
+
+#: AppGUI/MainGUI.py:1423
+msgid "Intersection"
+msgstr "Überschneidung"
+
+#: AppGUI/MainGUI.py:1425
+msgid "Subtraction"
+msgstr "Subtraktion"
+
+#: AppGUI/MainGUI.py:1427 AppGUI/ObjectUI.py:2351
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:56
+msgid "Cut"
+msgstr "Schnitt"
+
+#: AppGUI/MainGUI.py:1438
+msgid "Pad"
+msgstr "Pad"
+
+#: AppGUI/MainGUI.py:1440
+msgid "Pad Array"
+msgstr "Pad-Array"
+
+#: AppGUI/MainGUI.py:1444
+msgid "Track"
+msgstr "Track"
+
+#: AppGUI/MainGUI.py:1446
+msgid "Region"
+msgstr "Region"
+
+#: AppGUI/MainGUI.py:1469
+msgid "Exc Editor"
+msgstr "Exc-Editor"
+
+#: AppGUI/MainGUI.py:1471 AppGUI/MainGUI.py:4310
+msgid "Add Drill"
+msgstr "Bohrer hinzufügen"
+
+#: AppGUI/MainGUI.py:1491 App_Main.py:2198
+msgid "Close Editor"
+msgstr "Editor schließen"
+
+#: AppGUI/MainGUI.py:1516
+msgid ""
+"Absolute measurement.\n"
+"Reference is (X=0, Y= 0) position"
+msgstr ""
+"Absolute Messung.\n"
+"Referenz ist (X = 0, Y = 0)"
+
+#: AppGUI/MainGUI.py:1523
+msgid "HUD (Heads up display)"
+msgstr ""
+
+#: AppGUI/MainGUI.py:1622
+msgid "Lock Toolbars"
+msgstr "Symbolleisten sperren"
+
+#: AppGUI/MainGUI.py:1792
+msgid "FlatCAM Preferences Folder opened."
+msgstr "FlatCAM-Einstellungsordner geöffnet."
+
+#: AppGUI/MainGUI.py:1803
+msgid "Are you sure you want to delete the GUI Settings? \n"
+msgstr "Möchten Sie die GUI-Einstellungen wirklich löschen?\n"
+
+#: AppGUI/MainGUI.py:1806 AppGUI/preferences/PreferencesUIManager.py:941
+#: AppGUI/preferences/PreferencesUIManager.py:1179 AppTranslation.py:109
+#: AppTranslation.py:206 App_Main.py:2201 App_Main.py:3052 App_Main.py:5276
+#: App_Main.py:6336
+msgid "Yes"
+msgstr "Ja"
+
+#: AppGUI/MainGUI.py:1807 AppGUI/preferences/PreferencesUIManager.py:1180
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:164
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:150
+#: AppTools/ToolNCC.py:182 AppTools/ToolPaint.py:165 AppTranslation.py:110
+#: AppTranslation.py:207 App_Main.py:2202 App_Main.py:3053 App_Main.py:5277
+#: App_Main.py:6337
+msgid "No"
+msgstr "Nein"
+
+#: AppGUI/MainGUI.py:1906
+msgid "&Cutout Tool"
+msgstr "Ausschnittwerkzeug"
+
+#: AppGUI/MainGUI.py:1980
+msgid "Select 'Esc'"
+msgstr "Wählen"
+
+#: AppGUI/MainGUI.py:2018
+msgid "Copy Objects"
+msgstr "Objekte kopieren"
+
+#: AppGUI/MainGUI.py:2020 AppGUI/MainGUI.py:4230
+msgid "Delete Shape"
+msgstr "Form löschen"
+
+#: AppGUI/MainGUI.py:2026
+msgid "Move Objects"
+msgstr "Objekte verschieben"
+
+#: AppGUI/MainGUI.py:2610
+msgid ""
+"Please first select a geometry item to be cutted\n"
+"then select the geometry item that will be cutted\n"
+"out of the first item. In the end press ~X~ key or\n"
+"the toolbar button."
+msgstr ""
+"Bitte wählen Sie zuerst ein zu schneidendes Geometrieelement aus\n"
+"Wählen Sie dann das Geometrieelement aus, das geschnitten werden soll\n"
+"aus dem ersten Artikel. Zum Schluss drücken Sie die Taste ~ X ~ oder\n"
+"die Symbolleisten-Schaltfläche."
+
+#: AppGUI/MainGUI.py:2617 AppGUI/MainGUI.py:2779 AppGUI/MainGUI.py:2824
+#: AppGUI/MainGUI.py:2844
+msgid "Warning"
+msgstr "Warnung"
+
+#: AppGUI/MainGUI.py:2774
+msgid ""
+"Please select geometry items \n"
+"on which to perform Intersection Tool."
+msgstr ""
+"Bitte wählen Sie Geometrieelemente aus\n"
+"auf dem das Verschneidungswerkzeug ausgeführt werden soll."
+
+#: AppGUI/MainGUI.py:2819
+msgid ""
+"Please select geometry items \n"
+"on which to perform Substraction Tool."
+msgstr ""
+"Bitte wählen Sie Geometrieelemente aus\n"
+"auf dem das Subtraktionswerkzeug ausgeführt werden soll."
+
+#: AppGUI/MainGUI.py:2839
+msgid ""
+"Please select geometry items \n"
+"on which to perform union."
+msgstr ""
+"Bitte wählen Sie Geometrieelemente aus\n"
+"auf dem die Polygonverbindung ausgeführt werden soll."
+
+#: AppGUI/MainGUI.py:2922 AppGUI/MainGUI.py:3137
+msgid "Cancelled. Nothing selected to delete."
+msgstr "Abgebrochen. Nichts zum Löschen ausgewählt."
+
+#: AppGUI/MainGUI.py:3006 AppGUI/MainGUI.py:3253
+msgid "Cancelled. Nothing selected to copy."
+msgstr "Abgebrochen. Nichts zum Kopieren ausgewählt."
+
+#: AppGUI/MainGUI.py:3052 AppGUI/MainGUI.py:3282
+msgid "Cancelled. Nothing selected to move."
+msgstr "Abgebrochen. Nichts ausgewählt, um sich zu bewegen."
+
+#: AppGUI/MainGUI.py:3308
+msgid "New Tool ..."
+msgstr "Neues Werkzeug ..."
+
+#: AppGUI/MainGUI.py:3309 AppTools/ToolNCC.py:924 AppTools/ToolPaint.py:849
+#: AppTools/ToolSolderPaste.py:560
+msgid "Enter a Tool Diameter"
+msgstr "Geben Sie einen Werkzeugdurchmesser ein"
+
+#: AppGUI/MainGUI.py:3321
+msgid "Adding Tool cancelled ..."
+msgstr "Tool wird hinzugefügt abgebrochen ..."
+
+#: AppGUI/MainGUI.py:3335
+msgid "Distance Tool exit..."
+msgstr "Entfernungstool beenden ..."
+
+#: AppGUI/MainGUI.py:3514 App_Main.py:3042
+msgid "Application is saving the project. Please wait ..."
+msgstr "Anwendung speichert das Projekt. Warten Sie mal ..."
+
+#: AppGUI/MainGUI.py:3649 App_Main.py:9059
+msgid "Shortcut Key List"
+msgstr " Liste der Tastenkombinationen "
+
+#: AppGUI/MainGUI.py:4010
+#, fuzzy
+#| msgid "Key Shortcut List"
+msgid "General Shortcut list"
+msgstr "Tastenkürzel Liste"
+
+#: AppGUI/MainGUI.py:4011
+msgid "SHOW SHORTCUT LIST"
+msgstr "Verknüpfungsliste anzeigen"
+
+#: AppGUI/MainGUI.py:4011
+msgid "Switch to Project Tab"
+msgstr "Wechseln Sie zur Registerkarte Projekt"
+
+#: AppGUI/MainGUI.py:4011
+msgid "Switch to Selected Tab"
+msgstr "Wechseln Sie zur ausgewählten Registerkarte"
+
+#: AppGUI/MainGUI.py:4012
+msgid "Switch to Tool Tab"
+msgstr "Wechseln Sie zur Werkzeugregisterkarte"
+
+#: AppGUI/MainGUI.py:4013
+msgid "New Gerber"
+msgstr "Neuer Gerber"
+
+#: AppGUI/MainGUI.py:4013
+msgid "Edit Object (if selected)"
+msgstr "Objekt bearbeiten (falls ausgewählt)"
+
+#: AppGUI/MainGUI.py:4013 App_Main.py:5581
+msgid "Grid On/Off"
+msgstr "Raster ein/aus"
+
+#: AppGUI/MainGUI.py:4013
+msgid "Jump to Coordinates"
+msgstr "Springe zu den Koordinaten"
+
+#: AppGUI/MainGUI.py:4014
+msgid "New Excellon"
+msgstr "Neuer Excellon"
+
+#: AppGUI/MainGUI.py:4014
+msgid "Move Obj"
+msgstr "Objekt verschieben"
+
+#: AppGUI/MainGUI.py:4014
+msgid "New Geometry"
+msgstr "Neue Geometrie"
+
+#: AppGUI/MainGUI.py:4014
+msgid "Change Units"
+msgstr "Einheiten ändern"
+
+#: AppGUI/MainGUI.py:4015
+msgid "Open Properties Tool"
+msgstr "Öffnen Sie das Eigenschaften-Tool"
+
+#: AppGUI/MainGUI.py:4015
+msgid "Rotate by 90 degree CW"
+msgstr "Um 90 Grad im Uhrzeigersinn drehen"
+
+#: AppGUI/MainGUI.py:4015
+msgid "Shell Toggle"
+msgstr "Shell umschalten"
+
+#: AppGUI/MainGUI.py:4016
+msgid ""
+"Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)"
+msgstr ""
+"Hinzufügen eines Werkzeugs (auf der Registerkarte \"Geometrie ausgewählt\" "
+"oder unter \"Werkzeuge\", \"NCC\" oder \"Werkzeuge\", \"Malen\")"
+
+#: AppGUI/MainGUI.py:4017
+msgid "Flip on X_axis"
+msgstr "Auf X-Achse spiegeln"
+
+#: AppGUI/MainGUI.py:4017
+msgid "Flip on Y_axis"
+msgstr "Auf Y-Achse spiegeln"
+
+#: AppGUI/MainGUI.py:4020
+msgid "Copy Obj"
+msgstr "Objekt kopieren"
+
+#: AppGUI/MainGUI.py:4020
+msgid "Open Tools Database"
+msgstr "Werkzeugdatenbank öffnen"
+
+#: AppGUI/MainGUI.py:4021
+msgid "Open Excellon File"
+msgstr "Öffnen Sie die Excellon-Datei"
+
+#: AppGUI/MainGUI.py:4021
+msgid "Open Gerber File"
+msgstr "Öffnen Sie die Gerber-Datei"
+
+#: AppGUI/MainGUI.py:4021
+msgid "New Project"
+msgstr "Neues Projekt"
+
+#: AppGUI/MainGUI.py:4022 App_Main.py:6626 App_Main.py:6629
+msgid "Open Project"
+msgstr "Projekt öffnen"
+
+#: AppGUI/MainGUI.py:4022 AppTools/ToolPDF.py:41
+msgid "PDF Import Tool"
+msgstr "PDF-Importwerkzeug"
+
+#: AppGUI/MainGUI.py:4022
+msgid "Save Project"
+msgstr "Projekt speichern"
+
+#: AppGUI/MainGUI.py:4022
+msgid "Toggle Plot Area"
+msgstr "Zeichenbereich umschalten0"
+
+#: AppGUI/MainGUI.py:4025
+msgid "Copy Obj_Name"
+msgstr "Kopieren Sie den Namen des Objekts"
+
+#: AppGUI/MainGUI.py:4026
+msgid "Toggle Code Editor"
+msgstr "Code-Editor umschalten"
+
+#: AppGUI/MainGUI.py:4026
+msgid "Toggle the axis"
+msgstr "Achse umschalten"
+
+#: AppGUI/MainGUI.py:4026 AppGUI/MainGUI.py:4225 AppGUI/MainGUI.py:4312
+#: AppGUI/MainGUI.py:4434
+msgid "Distance Minimum Tool"
+msgstr "Mindestabstand Werkzeug"
+
+#: AppGUI/MainGUI.py:4027
+msgid "Open Preferences Window"
+msgstr "Öffnen Sie das Einstellungsfenster"
+
+#: AppGUI/MainGUI.py:4028
+msgid "Rotate by 90 degree CCW"
+msgstr "Um 90 Grad gegen den Uhrzeigersinn drehen"
+
+#: AppGUI/MainGUI.py:4028
+msgid "Run a Script"
+msgstr "Führen Sie ein Skript aus"
+
+#: AppGUI/MainGUI.py:4028
+msgid "Toggle the workspace"
+msgstr "Arbeitsbereich umschalten"
+
+#: AppGUI/MainGUI.py:4028
+msgid "Skew on X axis"
+msgstr "Neigung auf der X-Achse"
+
+#: AppGUI/MainGUI.py:4029
+msgid "Skew on Y axis"
+msgstr "Neigung auf der Y-Achse"
+
+#: AppGUI/MainGUI.py:4032
+msgid "2-Sided PCB Tool"
+msgstr "2-seitiges PCB Werkzeug"
+
+#: AppGUI/MainGUI.py:4032
+msgid "Transformations Tool"
+msgstr "Transformations-Tool"
+
+#: AppGUI/MainGUI.py:4034
+msgid "Solder Paste Dispensing Tool"
+msgstr "Lotpasten-Dosierwerkzeug"
+
+#: AppGUI/MainGUI.py:4035
+msgid "Film PCB Tool"
+msgstr "Film PCB Werkzeug"
+
+#: AppGUI/MainGUI.py:4035
+msgid "Non-Copper Clearing Tool"
+msgstr "Nicht-Kupfer-Räumwerkzeug"
+
+#: AppGUI/MainGUI.py:4036
+msgid "Paint Area Tool"
+msgstr "Malbereichswerkzeug"
+
+#: AppGUI/MainGUI.py:4036
+msgid "Rules Check Tool"
+msgstr "Regelprüfwerkzeug"
+
+#: AppGUI/MainGUI.py:4037
+msgid "View File Source"
+msgstr "Dateiquelle anzeigen"
+
+#: AppGUI/MainGUI.py:4038
+msgid "Cutout PCB Tool"
+msgstr "Ausschnitt PCB Tool"
+
+#: AppGUI/MainGUI.py:4038
+msgid "Enable all Plots"
+msgstr "Alle Zeichnungen aktivieren"
+
+#: AppGUI/MainGUI.py:4038
+msgid "Disable all Plots"
+msgstr "Alle Zeichnungen deaktivieren"
+
+#: AppGUI/MainGUI.py:4038
+msgid "Disable Non-selected Plots"
+msgstr "Nicht ausgewählte Zeichnungen deaktiv"
+
+#: AppGUI/MainGUI.py:4039
+msgid "Toggle Full Screen"
+msgstr "Vollbild umschalten"
+
+#: AppGUI/MainGUI.py:4042
+msgid "Abort current task (gracefully)"
+msgstr "Aktuelle Aufgabe abbrechen (ordnungsgemäß)"
+
+#: AppGUI/MainGUI.py:4045
+msgid "Save Project As"
+msgstr "Projekt speichern als"
+
+#: AppGUI/MainGUI.py:4046
+msgid ""
+"Paste Special. Will convert a Windows path style to the one required in Tcl "
+"Shell"
+msgstr ""
+"Paste Special. Konvertiert einen Windows-Pfadstil in den in Tcl Shell "
+"erforderlichen"
+
+#: AppGUI/MainGUI.py:4049
+msgid "Open Online Manual"
+msgstr "Online-Handbuch öffnen"
+
+#: AppGUI/MainGUI.py:4050
+msgid "Open Online Tutorials"
+msgstr "Öffnen Sie Online-Tutorials"
+
+#: AppGUI/MainGUI.py:4050
+msgid "Refresh Plots"
+msgstr "Zeichnungen aktualisieren"
+
+#: AppGUI/MainGUI.py:4050 AppTools/ToolSolderPaste.py:509
+msgid "Delete Object"
+msgstr "Objekt löschen"
+
+#: AppGUI/MainGUI.py:4050
+msgid "Alternate: Delete Tool"
+msgstr "Alternative: Werkzeug löschen"
+
+#: AppGUI/MainGUI.py:4051
+msgid "(left to Key_1)Toggle Notebook Area (Left Side)"
+msgstr "(links neben Taste_1) Notebook-Bereich umschalten (linke Seite)"
+
+#: AppGUI/MainGUI.py:4051
+msgid "En(Dis)able Obj Plot"
+msgstr "Objektzeichnung (de)aktivieren"
+
+#: AppGUI/MainGUI.py:4052
+msgid "Deselects all objects"
+msgstr "Hebt die Auswahl aller Objekte auf"
+
+#: AppGUI/MainGUI.py:4066
+msgid "Editor Shortcut list"
+msgstr "Editor-Verknüpfungsliste"
+
+#: AppGUI/MainGUI.py:4220
+msgid "GEOMETRY EDITOR"
+msgstr "GEOMETRIE-EDITOR"
+
+#: AppGUI/MainGUI.py:4220
+msgid "Draw an Arc"
+msgstr "Zeichnen Sie einen Bogen"
+
+#: AppGUI/MainGUI.py:4220
+msgid "Copy Geo Item"
+msgstr "Geo-Objekt kopieren"
+
+#: AppGUI/MainGUI.py:4221
+msgid "Within Add Arc will toogle the ARC direction: CW or CCW"
+msgstr ""
+"Innerhalb von Bogen hinzufügen wird die ARC-Richtung getippt: CW oder CCW"
+
+#: AppGUI/MainGUI.py:4221
+msgid "Polygon Intersection Tool"
+msgstr "Werkzeug Polygonschnitt"
+
+#: AppGUI/MainGUI.py:4222
+msgid "Geo Paint Tool"
+msgstr "Geo-Malwerkzeug"
+
+#: AppGUI/MainGUI.py:4222 AppGUI/MainGUI.py:4311 AppGUI/MainGUI.py:4431
+msgid "Jump to Location (x, y)"
+msgstr "Zum Standort springen (x, y)"
+
+#: AppGUI/MainGUI.py:4222
+msgid "Toggle Corner Snap"
+msgstr "Eckfang umschalten"
+
+#: AppGUI/MainGUI.py:4222
+msgid "Move Geo Item"
+msgstr "Geo-Objekt verschieben"
+
+#: AppGUI/MainGUI.py:4223
+msgid "Within Add Arc will cycle through the ARC modes"
+msgstr "Innerhalb von Bogen hinzufügen werden die ARC-Modi durchlaufen"
+
+#: AppGUI/MainGUI.py:4223
+msgid "Draw a Polygon"
+msgstr "Zeichnen Sie ein Polygon"
+
+#: AppGUI/MainGUI.py:4223
+msgid "Draw a Circle"
+msgstr "Zeichne einen Kreis"
+
+#: AppGUI/MainGUI.py:4224
+msgid "Draw a Path"
+msgstr "Zeichne einen Pfad"
+
+#: AppGUI/MainGUI.py:4224
+msgid "Draw Rectangle"
+msgstr "Rechteck zeichnen"
+
+#: AppGUI/MainGUI.py:4224
+msgid "Polygon Subtraction Tool"
+msgstr "Polygon-Subtraktionswerkzeug"
+
+#: AppGUI/MainGUI.py:4224
+msgid "Add Text Tool"
+msgstr "Textwerkzeug hinzufügen"
+
+#: AppGUI/MainGUI.py:4225
+msgid "Polygon Union Tool"
+msgstr "Polygonverbindungswerkzeug"
+
+#: AppGUI/MainGUI.py:4225
+msgid "Flip shape on X axis"
+msgstr "Form auf der X-Achse spiegeln"
+
+#: AppGUI/MainGUI.py:4225
+msgid "Flip shape on Y axis"
+msgstr "Form auf der Y-Achse spiegeln"
+
+#: AppGUI/MainGUI.py:4226
+msgid "Skew shape on X axis"
+msgstr "Neigung auf der X-Achse"
+
+#: AppGUI/MainGUI.py:4226
+msgid "Skew shape on Y axis"
+msgstr "Neigung auf der Y-Achse"
+
+#: AppGUI/MainGUI.py:4226
+msgid "Editor Transformation Tool"
+msgstr "Editor-Transformationstool"
+
+#: AppGUI/MainGUI.py:4227
+msgid "Offset shape on X axis"
+msgstr "Versetzte Form auf der X-Achse"
+
+#: AppGUI/MainGUI.py:4227
+msgid "Offset shape on Y axis"
+msgstr "Versetzte Form auf der Y-Achse"
+
+#: AppGUI/MainGUI.py:4228 AppGUI/MainGUI.py:4314 AppGUI/MainGUI.py:4436
+msgid "Save Object and Exit Editor"
+msgstr "Objekt speichern und Editor beenden"
+
+#: AppGUI/MainGUI.py:4228
+msgid "Polygon Cut Tool"
+msgstr "Polygon-Schneidewerkzeug"
+
+#: AppGUI/MainGUI.py:4229
+msgid "Rotate Geometry"
+msgstr "Geometrie drehen"
+
+#: AppGUI/MainGUI.py:4229
+msgid "Finish drawing for certain tools"
+msgstr "Beenden Sie das Zeichnen für bestimmte Werkzeuge"
+
+#: AppGUI/MainGUI.py:4229 AppGUI/MainGUI.py:4314 AppGUI/MainGUI.py:4434
+msgid "Abort and return to Select"
+msgstr "Abbrechen und zurück zu Auswählen"
+
+#: AppGUI/MainGUI.py:4310
+msgid "EXCELLON EDITOR"
+msgstr "EXCELLON EDITOR"
+
+#: AppGUI/MainGUI.py:4310
+msgid "Copy Drill(s)"
+msgstr "Bohrer kopieren"
+
+#: AppGUI/MainGUI.py:4311
+msgid "Move Drill(s)"
+msgstr "Bohrer verschieben"
+
+#: AppGUI/MainGUI.py:4312
+msgid "Add a new Tool"
+msgstr "Fügen Sie ein neues Werkzeug hinzu"
+
+#: AppGUI/MainGUI.py:4313
+msgid "Delete Drill(s)"
+msgstr "Bohrer löschen"
+
+#: AppGUI/MainGUI.py:4313
+msgid "Alternate: Delete Tool(s)"
+msgstr "Alternative: Werkzeug (e) löschen"
+
+#: AppGUI/MainGUI.py:4430
+msgid "GERBER EDITOR"
+msgstr "GERBER EDITOR"
+
+#: AppGUI/MainGUI.py:4430
+msgid "Add Disc"
+msgstr "Fügen Sie eine Scheiben hinzu"
+
+#: AppGUI/MainGUI.py:4430
+msgid "Add SemiDisc"
+msgstr "Halbschibe hinzufügen"
+
+#: AppGUI/MainGUI.py:4432
+msgid "Within Track & Region Tools will cycle in REVERSE the bend modes"
+msgstr ""
+"Innerhalb von Track- und Region-Werkzeugen werden die Biegemodi umgekehrt"
+
+#: AppGUI/MainGUI.py:4433
+msgid "Within Track & Region Tools will cycle FORWARD the bend modes"
+msgstr ""
+"Innerhalb von Track und Region werden mit Tools die Biegemodi vorwärts "
+"durchlaufen"
+
+#: AppGUI/MainGUI.py:4434
+msgid "Alternate: Delete Apertures"
+msgstr "Alternative: Löschen Sie die Blenden"
+
+#: AppGUI/MainGUI.py:4435
+msgid "Eraser Tool"
+msgstr "Radiergummi"
+
+#: AppGUI/MainGUI.py:4436
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:220
+msgid "Mark Area Tool"
+msgstr "Bereich markieren Werkzeug"
+
+#: AppGUI/MainGUI.py:4436
+msgid "Poligonize Tool"
+msgstr "Werkzeug Polygonisieren"
+
+#: AppGUI/MainGUI.py:4436
+msgid "Transformation Tool"
+msgstr "Transformationswerkzeug"
+
+#: AppGUI/ObjectUI.py:38
+msgid "FlatCAM Object"
+msgstr "FlatCAM-Objekt"
+
+#: AppGUI/ObjectUI.py:78
+msgid ""
+"BASIC is suitable for a beginner. Many parameters\n"
+"are hidden from the user in this mode.\n"
+"ADVANCED mode will make available all parameters.\n"
+"\n"
+"To change the application LEVEL, go to:\n"
+"Edit -> Preferences -> General and check:\n"
+"'APP. LEVEL' radio button."
+msgstr ""
+"BASIC ist für Anfänger geeignet. Viele Parameter\n"
+"werden in diesem Modus für den Benutzer ausgeblendet.\n"
+"Im ADVANCED-Modus werden alle Parameter verfügbar.\n"
+"\n"
+"Um die Anwendung LEVEL zu ändern, gehen Sie zu:\n"
+"Bearbeiten -> Einstellungen -> Allgemein und überprüfen Sie:\n"
+"Optionsfeld \"Anwendungsebene\"."
+
+#: AppGUI/ObjectUI.py:111
+msgid "Geometrical transformations of the current object."
+msgstr "Geometrische Transformationen des aktuellen Objekts."
+
+#: AppGUI/ObjectUI.py:120
+msgid ""
+"Factor by which to multiply\n"
+"geometric features of this object.\n"
+"Expressions are allowed. E.g: 1/25.4"
+msgstr ""
+"Faktor, mit dem sich multiplizieren soll\n"
+"geometrische Merkmale dieses Objekts.\n"
+"Ausdrücke sind erlaubt. Zum Beispiel: 1 / 25.4"
+
+#: AppGUI/ObjectUI.py:127
+msgid "Perform scaling operation."
+msgstr "Führen Sie die Skalierung durch."
+
+#: AppGUI/ObjectUI.py:138
+msgid ""
+"Amount by which to move the object\n"
+"in the x and y axes in (x, y) format.\n"
+"Expressions are allowed. E.g: (1/3.2, 0.5*3)"
+msgstr ""
+"Betrag, um den das Objekt verschoben werden soll\n"
+"in der x- und y-Achse im (x, y) -Format.\n"
+"Ausdrücke sind erlaubt. Zum Beispiel: (1/3.2, 0.5*3)"
+
+#: AppGUI/ObjectUI.py:145
+msgid "Perform the offset operation."
+msgstr "Führen Sie den Versatzvorgang aus."
+
+#: AppGUI/ObjectUI.py:157 AppGUI/ObjectUI.py:164 AppTool.py:281 AppTool.py:287
+msgid "Edited value is out of range"
+msgstr "Der bearbeitete Wert liegt außerhalb des Bereichs"
+
+#: AppGUI/ObjectUI.py:159 AppGUI/ObjectUI.py:166 AppTool.py:283 AppTool.py:289
+msgid "Edited value is within limits."
+msgstr "Der bearbeitete Wert liegt innerhalb der Grenzen."
+
+#: AppGUI/ObjectUI.py:178
+msgid "Gerber Object"
+msgstr "Gerber-Objekt"
+
+#: AppGUI/ObjectUI.py:187 AppGUI/ObjectUI.py:730 AppGUI/ObjectUI.py:1528
+#: AppGUI/ObjectUI.py:2335 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:30
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:33
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:31
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:31
+msgid "Plot Options"
+msgstr "Diagrammoptionen"
+
+#: AppGUI/ObjectUI.py:193 AppGUI/ObjectUI.py:731
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:45
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:38
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119
+#: AppTools/ToolCopperThieving.py:191
+msgid "Solid"
+msgstr "Solide"
+
+#: AppGUI/ObjectUI.py:195 AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:40
+msgid "Solid color polygons."
+msgstr "Einfarbige Polygone."
+
+#: AppGUI/ObjectUI.py:201
+msgid "Multi-Color"
+msgstr "M-farbig"
+
+#: AppGUI/ObjectUI.py:203 AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:47
+msgid "Draw polygons in different colors."
+msgstr "Zeichnen Sie Polygone in verschiedenen Farben."
+
+#: AppGUI/ObjectUI.py:209 AppGUI/ObjectUI.py:769
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:39
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:35
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:52
+msgid "Plot"
+msgstr "Zeichn"
+
+#: AppGUI/ObjectUI.py:211 AppGUI/ObjectUI.py:771 AppGUI/ObjectUI.py:1588
+#: AppGUI/ObjectUI.py:2445 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:41
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:37
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:54
+msgid "Plot (show) this object."
+msgstr "Plotten (zeigen) dieses Objekt."
+
+#: AppGUI/ObjectUI.py:239
+msgid ""
+"Toggle the display of the Gerber Apertures Table.\n"
+"When unchecked, it will delete all mark shapes\n"
+"that are drawn on canvas."
+msgstr ""
+"Schaltet die Anzeige der Gerber-Apertur-Tabelle um.\n"
+"Wenn das Kontrollkästchen deaktiviert ist, werden alle Markierungsformen "
+"gelöscht\n"
+"das sind auf leinwand gezeichnet."
+
+#: AppGUI/ObjectUI.py:249
+msgid "Mark All"
+msgstr "Alles mark"
+
+#: AppGUI/ObjectUI.py:251
+msgid ""
+"When checked it will display all the apertures.\n"
+"When unchecked, it will delete all mark shapes\n"
+"that are drawn on canvas."
+msgstr ""
+"Wenn diese Option aktiviert ist, werden alle Öffnungen angezeigt.\n"
+"Wenn das Kontrollkästchen deaktiviert ist, werden alle Markierungsformen "
+"gelöscht\n"
+"das sind auf leinwand gezeichnet."
+
+#: AppGUI/ObjectUI.py:279
+msgid "Mark the aperture instances on canvas."
+msgstr "Markieren Sie die Blendeninstanzen auf der Leinwand."
+
+#: AppGUI/ObjectUI.py:291 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:32
+msgid "Isolation Routing"
+msgstr "Isolierungsrouting"
+
+#: AppGUI/ObjectUI.py:293 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:34
+msgid ""
+"Create a Geometry object with\n"
+"toolpaths to cut outside polygons."
+msgstr ""
+"Erstellen Sie ein Geometrieobjekt mit\n"
+"Werkzeugwege zum Schneiden von \n"
+"äußeren Polygonen."
+
+#: AppGUI/ObjectUI.py:311
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:69
+msgid ""
+"Choose which tool to use for Gerber isolation:\n"
+"'Circular' or 'V-shape'.\n"
+"When the 'V-shape' is selected then the tool\n"
+"diameter will depend on the chosen cut depth."
+msgstr ""
+"Wählen Sie das Werkzeug für die Gerber-Isolierung aus:\n"
+"\"Rund\" oder \"V-Form\".\n"
+"Wenn die 'V-Form' ausgewählt ist, dann das Werkzeug\n"
+"Der Durchmesser hängt von der gewählten Schnitttiefe ab."
+
+#: AppGUI/ObjectUI.py:317
+msgid "V-Shape"
+msgstr "V-Form"
+
+#: AppGUI/ObjectUI.py:323 AppGUI/ObjectUI.py:1774
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:81
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:72
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:78
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:85 AppTools/ToolNCC.py:233
+#: AppTools/ToolNCC.py:240 AppTools/ToolPaint.py:215
+msgid "V-Tip Dia"
+msgstr "Stichelspitzen-Durchm"
+
+#: AppGUI/ObjectUI.py:325 AppGUI/ObjectUI.py:1777
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:83
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:74
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:80 AppTools/ToolNCC.py:235
+#: AppTools/ToolPaint.py:217
+msgid "The tip diameter for V-Shape Tool"
+msgstr "Der Spitzendurchmesser für das V-Shape-Werkzeug"
+
+#: AppGUI/ObjectUI.py:336 AppGUI/ObjectUI.py:1789
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:94
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:84
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:91
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:99 AppTools/ToolNCC.py:246
+#: AppTools/ToolNCC.py:254 AppTools/ToolPaint.py:228
+msgid "V-Tip Angle"
+msgstr "Stichel-Winkel"
+
+#: AppGUI/ObjectUI.py:338 AppGUI/ObjectUI.py:1792
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:96
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:86
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:93 AppTools/ToolNCC.py:248
+#: AppTools/ToolPaint.py:230
+msgid ""
+"The tip angle for V-Shape Tool.\n"
+"In degree."
+msgstr ""
+"Der Spitzenwinkel für das Stichel-Werkzeug.\n"
+"In grad."
+
+#: AppGUI/ObjectUI.py:352 AppGUI/ObjectUI.py:1808
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:50
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:109
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61
+#: AppObjects/FlatCAMGeometry.py:1229 AppTools/ToolCutOut.py:141
+msgid ""
+"Cutting depth (negative)\n"
+"below the copper surface."
+msgstr ""
+"Schnitttiefe (negativ)\n"
+"unter der Kupferoberfläche."
+
+#: AppGUI/ObjectUI.py:366
+msgid ""
+"Diameter of the cutting tool.\n"
+"If you want to have an isolation path\n"
+"inside the actual shape of the Gerber\n"
+"feature, use a negative value for\n"
+"this parameter."
+msgstr ""
+"Durchmesser des Schneidewerkzeugs.\n"
+"Wenn Sie einen Isolationspfad haben möchten\n"
+"in der tatsächlichen Form des Gerber\n"
+"verwenden Sie einen negativen Wert für\n"
+"dieser Parameter."
+
+#: AppGUI/ObjectUI.py:382 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:56
+msgid "# Passes"
+msgstr "Durchgang"
+
+#: AppGUI/ObjectUI.py:384 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:58
+msgid ""
+"Width of the isolation gap in\n"
+"number (integer) of tool widths."
+msgstr ""
+"Breite der Isolationslücke in\n"
+"Anzahl (Ganzzahl) der Werkzeugbreiten."
+
+#: AppGUI/ObjectUI.py:395 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:68
+msgid "Pass overlap"
+msgstr "Passüberlappung"
+
+#: AppGUI/ObjectUI.py:397 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:70
+msgid "How much (percentage) of the tool width to overlap each tool pass."
+msgstr ""
+"Wie viel (Prozent) der Werkzeugbreite, um jeden Werkzeugdurchlauf zu "
+"überlappen."
+
+#: AppGUI/ObjectUI.py:411
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:58
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:97
+msgid ""
+"Milling type:\n"
+"- climb / best for precision milling and to reduce tool usage\n"
+"- conventional / useful when there is no backlash compensation"
+msgstr ""
+"Fräsart:\n"
+"- Besteigung für präzises Fräsen und zur Verringerung des "
+"Werkzeugverbrauchs\n"
+"- konventionell / nützlich, wenn kein Spielausgleich vorliegt"
+
+#: AppGUI/ObjectUI.py:421
+msgid "Combine"
+msgstr "Kombinieren"
+
+#: AppGUI/ObjectUI.py:423 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:109
+msgid "Combine all passes into one object"
+msgstr "Kombinieren Sie alle Durchgänge in einem Objekt"
+
+#: AppGUI/ObjectUI.py:427
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:43
+msgid "\"Follow\""
+msgstr "\"Folgen\""
+
+#: AppGUI/ObjectUI.py:428
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:45
+msgid ""
+"Generate a 'Follow' geometry.\n"
+"This means that it will cut through\n"
+"the middle of the trace."
+msgstr ""
+"Erzeugen Sie eine 'Follow'-Geometrie.\n"
+"Dies bedeutet, dass es durchschneiden wird\n"
+"die Mitte der Spur."
+
+#: AppGUI/ObjectUI.py:434
+msgid "Except"
+msgstr "Außer"
+
+#: AppGUI/ObjectUI.py:437
+msgid ""
+"When the isolation geometry is generated,\n"
+"by checking this, the area of the object below\n"
+"will be subtracted from the isolation geometry."
+msgstr ""
+"Wenn die Isolationsgeometrie generiert wird,\n"
+"indem Sie dies überprüfen, wird der Bereich des Objekts unten\n"
+"wird von der Isolationsgeometrie abgezogen."
+
+#: AppGUI/ObjectUI.py:450
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:97
+#: AppObjects/FlatCAMGerber.py:239 AppObjects/FlatCAMGerber.py:327
+#: AppTools/ToolAlignObjects.py:73 AppTools/ToolAlignObjects.py:109
+#: AppTools/ToolCalibration.py:196 AppTools/ToolCalibration.py:631
+#: AppTools/ToolCalibration.py:648 AppTools/ToolCalibration.py:807
+#: AppTools/ToolCalibration.py:815 AppTools/ToolCopperThieving.py:144
+#: AppTools/ToolCopperThieving.py:158 AppTools/ToolCopperThieving.py:604
+#: AppTools/ToolCutOut.py:91 AppTools/ToolDblSided.py:224
+#: AppTools/ToolFilm.py:68 AppTools/ToolFilm.py:91 AppTools/ToolImage.py:49
+#: AppTools/ToolImage.py:252 AppTools/ToolImage.py:273 AppTools/ToolNCC.py:96
+#: AppTools/ToolNCC.py:558 AppTools/ToolNCC.py:1300 AppTools/ToolPaint.py:501
+#: AppTools/ToolPaint.py:705 AppTools/ToolPanelize.py:116
+#: AppTools/ToolPanelize.py:210 AppTools/ToolPanelize.py:385
+#: AppTools/ToolPanelize.py:402
+msgid "Gerber"
+msgstr "Gerber"
+
+#: AppGUI/ObjectUI.py:457 AppTools/ToolNCC.py:86 AppTools/ToolPaint.py:79
+msgid "Obj Type"
+msgstr "Obj-Typ"
+
+#: AppGUI/ObjectUI.py:459
+msgid ""
+"Specify the type of object to be excepted from isolation.\n"
+"It can be of type: Gerber or Geometry.\n"
+"What is selected here will dictate the kind\n"
+"of objects that will populate the 'Object' combobox."
+msgstr ""
+"Geben Sie den Objekttyp an, der von der Isolation ausgenommen werden soll.\n"
+"Es kann vom Typ Gerber oder Geometrie sein.\n"
+"Was hier ausgewählt wird, bestimmt die Art\n"
+"von Objekten, die das Kombinationsfeld \"Objekt\" füllen."
+
+#: AppGUI/ObjectUI.py:472 AppGUI/ObjectUI.py:1324 AppGUI/ObjectUI.py:2158
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:48
+#: AppTools/ToolCalibration.py:186 AppTools/ToolNCC.py:109
+#: AppTools/ToolPaint.py:102 AppTools/ToolPanelize.py:98
+#: AppTools/ToolQRCode.py:78
+msgid "Object"
+msgstr "Objekt"
+
+#: AppGUI/ObjectUI.py:473
+msgid "Object whose area will be removed from isolation geometry."
+msgstr "Objekt, dessen Bereich aus der Isolationsgeometrie entfernt wird."
+
+#: AppGUI/ObjectUI.py:480 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:82
+msgid "Scope"
+msgstr "Wertebereich"
+
+#: AppGUI/ObjectUI.py:482 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:84
+msgid ""
+"Isolation scope. Choose what to isolate:\n"
+"- 'All' -> Isolate all the polygons in the object\n"
+"- 'Selection' -> Isolate a selection of polygons."
+msgstr ""
+"Isolationsmenge. Was soll isoliert werden:\n"
+"- 'Alles' -> Alle Polygone im Objekt isolieren\n"
+"- ' Auswahl' -> Eine Auswahl der polygone isolieren."
+
+#: AppGUI/ObjectUI.py:487
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:307
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:89
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:311
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:258
+#: AppTools/ToolNCC.py:539 AppTools/ToolPaint.py:455
+msgid "Selection"
+msgstr "Auswahl"
+
+#: AppGUI/ObjectUI.py:495
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:122
+msgid "Isolation Type"
+msgstr "Isolierungsart"
+
+#: AppGUI/ObjectUI.py:497
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:124
+msgid ""
+"Choose how the isolation will be executed:\n"
+"- 'Full' -> complete isolation of polygons\n"
+"- 'Ext' -> will isolate only on the outside\n"
+"- 'Int' -> will isolate only on the inside\n"
+"'Exterior' isolation is almost always possible\n"
+"(with the right tool) but 'Interior'\n"
+"isolation can be done only when there is an opening\n"
+"inside of the polygon (e.g polygon is a 'doughnut' shape)."
+msgstr ""
+"Wählen Sie, wie die Isolation ausgeführt wird:\n"
+"- Vollständig: Es werden alle Polygone isoliert\n"
+"- Ext: Die ausserhalb liegenden Polygone werden isoliert\n"
+"- Int: Die innerhalb liegenden Polygone werden isoliert\n"
+"Achtung Ext ist fast immer möglich (mit dem richtigen Werkzeug)\n"
+"wohingegen \"Int\" Isolation nur möglich ist, wenn es ein Loch \n"
+"innerhalb des Polygons gibt (also z.B. ein Torus)"
+
+#: AppGUI/ObjectUI.py:506
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:133
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:154
+msgid "Full"
+msgstr "Voll"
+
+#: AppGUI/ObjectUI.py:507
+msgid "Ext"
+msgstr "Ausserhalb"
+
+#: AppGUI/ObjectUI.py:508
+msgid "Int"
+msgstr "Innerhalb"
+
+#: AppGUI/ObjectUI.py:513
+msgid "Generate Isolation Geometry"
+msgstr "Isolationsgeometrie erzeugen"
+
+#: AppGUI/ObjectUI.py:521
+msgid ""
+"Create a Geometry object with toolpaths to cut \n"
+"isolation outside, inside or on both sides of the\n"
+"object. For a Gerber object outside means outside\n"
+"of the Gerber feature and inside means inside of\n"
+"the Gerber feature, if possible at all. This means\n"
+"that only if the Gerber feature has openings inside, they\n"
+"will be isolated. If what is wanted is to cut isolation\n"
+"inside the actual Gerber feature, use a negative tool\n"
+"diameter above."
+msgstr ""
+"Erstellen Sie ein Geometrieobjekt mit zu schneidenden Werkzeugwegen\n"
+"Isolierung außen, innen oder auf beiden Seiten des\n"
+"Objekt. Für ein Gerber-Objekt bedeutet draußen außerhalb\n"
+"der Gerber-Funktion und inside bedeutet inside\n"
+"die Gerber-Funktion, wenn überhaupt möglich. Das heisst\n"
+"Nur wenn das Gerber-Feature Öffnungen enthält, können sie\n"
+"wird isoliert werden. Wenn es darum geht, die Isolation abzuschneiden\n"
+"Verwenden Sie in der Gerber-Funktion ein negatives Werkzeug\n"
+"Durchmesser oben."
+
+#: AppGUI/ObjectUI.py:533
+msgid "Buffer Solid Geometry"
+msgstr "Festkörpergeometrie puffern"
+
+#: AppGUI/ObjectUI.py:535
+msgid ""
+"This button is shown only when the Gerber file\n"
+"is loaded without buffering.\n"
+"Clicking this will create the buffered geometry\n"
+"required for isolation."
+msgstr ""
+"Diese Schaltfläche wird nur bei der Gerber-Datei angezeigt\n"
+"wird ohne Pufferung geladen.\n"
+"Durch Klicken auf diese Schaltfläche wird die gepufferte Geometrie erstellt\n"
+"für die Isolierung erforderlich."
+
+#: AppGUI/ObjectUI.py:567
+msgid "Clear N-copper"
+msgstr "N-Kupfer löschen"
+
+#: AppGUI/ObjectUI.py:569 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:33
+msgid ""
+"Create a Geometry object with\n"
+"toolpaths to cut all non-copper regions."
+msgstr ""
+"Erstellen Sie ein Geometrieobjekt mit\n"
+"Werkzeugwege, um alle Nicht-Kupfer-Bereiche zu schneiden."
+
+#: AppGUI/ObjectUI.py:576 AppGUI/ObjectUI.py:2289 AppTools/ToolNCC.py:599
+msgid ""
+"Create the Geometry Object\n"
+"for non-copper routing."
+msgstr ""
+"Erstellen Sie das Geometrieobjekt\n"
+"für kupferfreies Routing."
+
+#: AppGUI/ObjectUI.py:589
+msgid "Board cutout"
+msgstr "Kartenausschnitt"
+
+#: AppGUI/ObjectUI.py:591 AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:34
+msgid ""
+"Create toolpaths to cut around\n"
+"the PCB and separate it from\n"
+"the original board."
+msgstr ""
+"Erstellen Sie Werkzeugwege zum Schneiden\n"
+"die PCB und trennen Sie es von\n"
+"das ursprüngliche Brett."
+
+#: AppGUI/ObjectUI.py:598
+msgid ""
+"Generate the geometry for\n"
+"the board cutout."
+msgstr ""
+"Generieren Sie die Geometrie für\n"
+"der Brettausschnitt."
+
+#: AppGUI/ObjectUI.py:616 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:119
+msgid "Non-copper regions"
+msgstr "Regionen ohne Kupfer"
+
+#: AppGUI/ObjectUI.py:618 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:121
+msgid ""
+"Create polygons covering the\n"
+"areas without copper on the PCB.\n"
+"Equivalent to the inverse of this\n"
+"object. Can be used to remove all\n"
+"copper from a specified region."
+msgstr ""
+"Erstellen Sie Polygone für die\n"
+"Bereiche ohne Kupfer auf der Leiterplatte.\n"
+"Entspricht der Umkehrung davon\n"
+"Objekt. Kann verwendet werden, um alle zu entfernen\n"
+"Kupfer aus einer bestimmten Region."
+
+#: AppGUI/ObjectUI.py:628 AppGUI/ObjectUI.py:669
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:133
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:166
+msgid "Boundary Margin"
+msgstr "Grenzmarge"
+
+#: AppGUI/ObjectUI.py:630 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:135
+msgid ""
+"Specify the edge of the PCB\n"
+"by drawing a box around all\n"
+"objects with this minimum\n"
+"distance."
+msgstr ""
+"Bestimmen Sie den Rand der Leiterplatte\n"
+"indem Sie eine Box um alle ziehen\n"
+"Objekte mit diesem Minimum\n"
+"Entfernung."
+
+#: AppGUI/ObjectUI.py:645 AppGUI/ObjectUI.py:683
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:148
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:179
+msgid "Rounded Geo"
+msgstr "Abgerundete Geo"
+
+#: AppGUI/ObjectUI.py:647 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:150
+msgid "Resulting geometry will have rounded corners."
+msgstr "Die resultierende Geometrie hat abgerundete Ecken."
+
+#: AppGUI/ObjectUI.py:651 AppGUI/ObjectUI.py:692
+#: AppTools/ToolSolderPaste.py:134
+msgid "Generate Geo"
+msgstr "Geo erzeugen"
+
+#: AppGUI/ObjectUI.py:661 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:160
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137
+#: AppTools/ToolPanelize.py:99 AppTools/ToolQRCode.py:192
+msgid "Bounding Box"
+msgstr "Begrenzungsrahmen"
+
+#: AppGUI/ObjectUI.py:663
+msgid ""
+"Create a geometry surrounding the Gerber object.\n"
+"Square shape."
+msgstr ""
+"Erstellen Sie eine Geometrie, die das Gerber-Objekt umgibt.\n"
+"Quadratische Form."
+
+#: AppGUI/ObjectUI.py:671 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:168
+msgid ""
+"Distance of the edges of the box\n"
+"to the nearest polygon."
+msgstr ""
+"Abstand der Kanten der Box\n"
+"zum nächsten Polygon."
+
+#: AppGUI/ObjectUI.py:685 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:181
+msgid ""
+"If the bounding box is \n"
+"to have rounded corners\n"
+"their radius is equal to\n"
+"the margin."
+msgstr ""
+"Wenn der Begrenzungsrahmen ist\n"
+"abgerundete Ecken haben\n"
+"ihr Radius ist gleich\n"
+"der Abstand."
+
+#: AppGUI/ObjectUI.py:694
+msgid "Generate the Geometry object."
+msgstr "Generieren Sie das Geometrieobjekt."
+
+#: AppGUI/ObjectUI.py:721
+msgid "Excellon Object"
+msgstr "Excellon-Objekt"
+
+#: AppGUI/ObjectUI.py:733
+msgid "Solid circles."
+msgstr "Feste Kreise."
+
+#: AppGUI/ObjectUI.py:781 AppGUI/ObjectUI.py:876 AppGUI/ObjectUI.py:2466
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:71
+#: AppTools/ToolProperties.py:166
+msgid "Drills"
+msgstr "Bohrer"
+
+#: AppGUI/ObjectUI.py:781 AppGUI/ObjectUI.py:877 AppGUI/ObjectUI.py:2466
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:158
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:72
+#: AppTools/ToolProperties.py:168
+msgid "Slots"
+msgstr "Schlüssel"
+
+#: AppGUI/ObjectUI.py:786
+msgid ""
+"This is the Tool Number.\n"
+"When ToolChange is checked, on toolchange event this value\n"
+"will be showed as a T1, T2 ... Tn in the Machine Code.\n"
+"\n"
+"Here the tools are selected for G-code generation."
+msgstr ""
+"Dies ist die Werkzeugnummer.\n"
+"Wenn Werkzeugwechsel aktiviert ist, wird dieser Wert beim\n"
+"Werkzeugwechselereignis angegeben\n"
+"wird als T1, T2 ... Tn im Maschinencode angezeigt.\n"
+"\n"
+"Hier werden die Werkzeuge zur G-Code-Generierung ausgewählt."
+
+#: AppGUI/ObjectUI.py:791 AppGUI/ObjectUI.py:1612 AppTools/ToolPaint.py:141
+msgid ""
+"Tool Diameter. It's value (in current FlatCAM units) \n"
+"is the cut width into the material."
+msgstr ""
+"Werkzeugdurchmesser Der Wert (in aktuellen FlatCAM-Einheiten)\n"
+"ist die Schnittbreite in das Material."
+
+#: AppGUI/ObjectUI.py:794
+msgid ""
+"The number of Drill holes. Holes that are drilled with\n"
+"a drill bit."
+msgstr ""
+"Die Anzahl der Bohrlöcher. Löcher, mit denen gebohrt wird\n"
+"ein Bohrer."
+
+#: AppGUI/ObjectUI.py:797
+msgid ""
+"The number of Slot holes. Holes that are created by\n"
+"milling them with an endmill bit."
+msgstr ""
+"Die Anzahl der Langlöcher. Löcher, die von erstellt werden\n"
+"Fräsen mit einem Schaftfräser."
+
+#: AppGUI/ObjectUI.py:800
+msgid ""
+"Toggle display of the drills for the current tool.\n"
+"This does not select the tools for G-code generation."
+msgstr ""
+"Anzeige der Bohrer für das aktuelle Werkzeug umschalten.\n"
+"Hiermit werden die Tools für die G-Code-Generierung nicht ausgewählt."
+
+#: AppGUI/ObjectUI.py:818 AppGUI/ObjectUI.py:1764
+#: AppObjects/FlatCAMExcellon.py:527 AppObjects/FlatCAMExcellon.py:805
+#: AppObjects/FlatCAMExcellon.py:821 AppObjects/FlatCAMExcellon.py:825
+#: AppObjects/FlatCAMGeometry.py:322 AppObjects/FlatCAMGeometry.py:816
+#: AppObjects/FlatCAMGeometry.py:852 AppTools/ToolNCC.py:331
+#: AppTools/ToolNCC.py:797 AppTools/ToolNCC.py:811 AppTools/ToolNCC.py:1196
+#: AppTools/ToolPaint.py:313 AppTools/ToolPaint.py:766
+#: AppTools/ToolPaint.py:778 AppTools/ToolPaint.py:1170
+msgid "Parameters for"
+msgstr "Parameter für"
+
+#: AppGUI/ObjectUI.py:821 AppGUI/ObjectUI.py:1767 AppTools/ToolNCC.py:334
+#: AppTools/ToolPaint.py:316
+msgid ""
+"The data used for creating GCode.\n"
+"Each tool store it's own set of such data."
+msgstr ""
+"Die Daten, die zum Erstellen von GCode verwendet werden.\n"
+"Jedes Werkzeug speichert seinen eigenen Satz solcher Daten."
+
+#: AppGUI/ObjectUI.py:847
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:48
+msgid ""
+"Operation type:\n"
+"- Drilling -> will drill the drills/slots associated with this tool\n"
+"- Milling -> will mill the drills/slots"
+msgstr ""
+"Betriebsart:\n"
+"- Bohren -> bohrt die mit diesem Werkzeug verbundenen Bohrer / Schlitze\n"
+"- Fräsen -> fräst die Bohrer / Schlitze"
+
+#: AppGUI/ObjectUI.py:853
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:54
+msgid "Drilling"
+msgstr "Bohren"
+
+#: AppGUI/ObjectUI.py:854
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:55
+msgid "Milling"
+msgstr "Fräsprozess"
+
+#: AppGUI/ObjectUI.py:869
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:64
+msgid ""
+"Milling type:\n"
+"- Drills -> will mill the drills associated with this tool\n"
+"- Slots -> will mill the slots associated with this tool\n"
+"- Both -> will mill both drills and mills or whatever is available"
+msgstr ""
+"Frästyp:\n"
+"- Bohrer -> fräst die mit diesem Werkzeug verbundenen Bohrer\n"
+"- Schlüssel-> fräst die diesem Tool zugeordneten Slots\n"
+"- Beide -> fräsen sowohl Bohrer als auch Fräser oder was auch immer "
+"verfügbar ist"
+
+#: AppGUI/ObjectUI.py:878
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:73
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:210
+#: AppTools/ToolFilm.py:241
+msgid "Both"
+msgstr "Both"
+
+#: AppGUI/ObjectUI.py:886
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:80
+msgid "Milling Diameter"
+msgstr "Fräsdurchmesser"
+
+#: AppGUI/ObjectUI.py:888
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:82
+msgid "The diameter of the tool who will do the milling"
+msgstr "Der Durchmesser des Werkzeugs, das das Fräsen übernimmt"
+
+#: AppGUI/ObjectUI.py:902
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:95
+msgid ""
+"Drill depth (negative)\n"
+"below the copper surface."
+msgstr ""
+"Bohrtiefe (negativ)\n"
+"unter der Kupferoberfläche."
+
+#: AppGUI/ObjectUI.py:921 AppGUI/ObjectUI.py:1826
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:113
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:68
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79
+#: AppTools/ToolCutOut.py:159
+msgid "Multi-Depth"
+msgstr "Mehrfache Tiefe"
+
+#: AppGUI/ObjectUI.py:924 AppGUI/ObjectUI.py:1829
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:116
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:71
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82
+#: AppTools/ToolCutOut.py:162
+msgid ""
+"Use multiple passes to limit\n"
+"the cut depth in each pass. Will\n"
+"cut multiple times until Cut Z is\n"
+"reached."
+msgstr ""
+"Verwenden Sie zum Begrenzen mehrere Durchgänge\n"
+"die Schnitttiefe in jedem Durchgang. Wille\n"
+"mehrmals schneiden, bis Schnitttiefe Z\n"
+"erreicht ist."
+
+#: AppGUI/ObjectUI.py:937 AppGUI/ObjectUI.py:1843
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:128
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94
+#: AppTools/ToolCutOut.py:176
+msgid "Depth of each pass (positive)."
+msgstr "Tiefe jedes Durchgangs (positiv)."
+
+#: AppGUI/ObjectUI.py:948
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:136
+msgid ""
+"Tool height when travelling\n"
+"across the XY plane."
+msgstr ""
+"Werkzeughöhe auf Reisen\n"
+"über die XY-Ebene."
+
+#: AppGUI/ObjectUI.py:969 AppGUI/ObjectUI.py:1873
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:187
+msgid ""
+"Cutting speed in the XY\n"
+"plane in units per minute"
+msgstr ""
+"Schnittgeschwindigkeit im XY\n"
+"Flugzeug in Einheiten pro Minute"
+
+#: AppGUI/ObjectUI.py:984
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:209
+msgid ""
+"Tool speed while drilling\n"
+"(in units per minute).\n"
+"So called 'Plunge' feedrate.\n"
+"This is for linear move G01."
+msgstr ""
+"Werkzeuggeschwindigkeit beim Bohren\n"
+"(in Einheiten pro Minute).\n"
+"Sogenannter Eintauchvorschub.\n"
+"Dies ist für die lineare Bewegung G01."
+
+#: AppGUI/ObjectUI.py:999 AppGUI/ObjectUI.py:1900
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:80
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:64
+msgid "Feedrate Rapids"
+msgstr "Vorschubgeschwindigkeit"
+
+#: AppGUI/ObjectUI.py:1001
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:82
+msgid ""
+"Tool speed while drilling\n"
+"(in units per minute).\n"
+"This is for the rapid move G00.\n"
+"It is useful only for Marlin,\n"
+"ignore for any other cases."
+msgstr ""
+"Werkzeuggeschwindigkeit beim Bohren\n"
+"(in Einheiten pro Minute).\n"
+"Dies ist für die schnelle Bewegung G00.\n"
+"Es ist nur für Marlin nützlich,\n"
+"für andere Fälle ignorieren."
+
+#: AppGUI/ObjectUI.py:1021 AppGUI/ObjectUI.py:1920
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:82
+msgid "Re-cut"
+msgstr "Nachschneiden"
+
+#: AppGUI/ObjectUI.py:1023 AppGUI/ObjectUI.py:1036 AppGUI/ObjectUI.py:1922
+#: AppGUI/ObjectUI.py:1934
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:84
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:96
+msgid ""
+"In order to remove possible\n"
+"copper leftovers where first cut\n"
+"meet with last cut, we generate an\n"
+"extended cut over the first cut section."
+msgstr ""
+"Um zu entfernen möglich\n"
+"Kupferreste wurden zuerst geschnitten\n"
+"Beim letzten Schnitt treffen wir einen\n"
+"verlängerter Schnitt über dem ersten Schnittabschnitt."
+
+#: AppGUI/ObjectUI.py:1049 AppGUI/ObjectUI.py:1943
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:216
+#: AppObjects/FlatCAMExcellon.py:1412 AppObjects/FlatCAMGeometry.py:1676
+msgid "Spindle speed"
+msgstr "Spulengeschwindigkeit"
+
+#: AppGUI/ObjectUI.py:1051
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:224
+msgid ""
+"Speed of the spindle\n"
+"in RPM (optional)"
+msgstr ""
+"Geschwindigkeit der Spindel\n"
+"in RPM (optional)"
+
+#: AppGUI/ObjectUI.py:1066 AppGUI/ObjectUI.py:1962
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:238
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:234
+msgid ""
+"Pause to allow the spindle to reach its\n"
+"speed before cutting."
+msgstr ""
+"Pause, damit die Spindel ihre erreichen kann\n"
+"Geschwindigkeit vor dem Schneiden."
+
+#: AppGUI/ObjectUI.py:1077 AppGUI/ObjectUI.py:1972
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:246
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:239
+msgid "Number of time units for spindle to dwell."
+msgstr "Anzahl der Zeiteinheiten, in denen die Spindel verweilen soll."
+
+#: AppGUI/ObjectUI.py:1087
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:46
+msgid "Offset Z"
+msgstr "Versatz Z"
+
+#: AppGUI/ObjectUI.py:1089
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:48
+msgid ""
+"Some drill bits (the larger ones) need to drill deeper\n"
+"to create the desired exit hole diameter due of the tip shape.\n"
+"The value here can compensate the Cut Z parameter."
+msgstr ""
+"Einige Bohrer (die größeren) müssen tiefer bohren\n"
+"um den gewünschten Austrittslochdurchmesser aufgrund der Spitzenform zu "
+"erzeugen.\n"
+"Der Wert hier kann den Parameter Cut Z ausgleichen."
+
+#: AppGUI/ObjectUI.py:1149 AppGUI/ObjectUI.py:2026 AppTools/ToolNCC.py:492
+#: AppTools/ToolPaint.py:422
+msgid "Apply parameters to all tools"
+msgstr "Parameter auf alle Werkzeuge anwenden"
+
+#: AppGUI/ObjectUI.py:1151 AppGUI/ObjectUI.py:2028 AppTools/ToolNCC.py:494
+#: AppTools/ToolPaint.py:424
+msgid ""
+"The parameters in the current form will be applied\n"
+"on all the tools from the Tool Table."
+msgstr ""
+"Die aktuell angegebenen Parameter werden allen Werkzeugen der "
+"Werkzeugtabelle zugeordnet."
+
+#: AppGUI/ObjectUI.py:1162 AppGUI/ObjectUI.py:2039 AppTools/ToolNCC.py:505
+#: AppTools/ToolPaint.py:435
+msgid "Common Parameters"
+msgstr "Allgemeine Parameter"
+
+#: AppGUI/ObjectUI.py:1164 AppGUI/ObjectUI.py:2041 AppTools/ToolNCC.py:507
+#: AppTools/ToolPaint.py:437
+msgid "Parameters that are common for all tools."
+msgstr "Parameter, die allen Werkzeugen gemeinsam sind."
+
+#: AppGUI/ObjectUI.py:1169 AppGUI/ObjectUI.py:2046
+msgid "Tool change Z"
+msgstr "Werkzeugwechsel Z"
+
+#: AppGUI/ObjectUI.py:1171
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:154
+msgid ""
+"Include tool-change sequence\n"
+"in G-Code (Pause for tool change)."
+msgstr ""
+"Werkzeugwechselfolge einbeziehen\n"
+"im G-Code (Pause für Werkzeugwechsel)."
+
+#: AppGUI/ObjectUI.py:1178 AppGUI/ObjectUI.py:2057
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:162
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:134
+msgid ""
+"Z-axis position (height) for\n"
+"tool change."
+msgstr ""
+"Z-Achsenposition (Höhe) für\n"
+"Werkzeugwechsel."
+
+#: AppGUI/ObjectUI.py:1195
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:71
+msgid ""
+"Height of the tool just after start.\n"
+"Delete the value if you don't need this feature."
+msgstr ""
+"Höhe des Werkzeugs gleich nach dem Start.\n"
+"Löschen Sie den Wert, wenn Sie diese Funktion nicht benötigen."
+
+#: AppGUI/ObjectUI.py:1204 AppGUI/ObjectUI.py:2085
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:178
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:153
+msgid "End move Z"
+msgstr "Bewegung beenden Z"
+
+#: AppGUI/ObjectUI.py:1206 AppGUI/ObjectUI.py:2087
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:180
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:155
+msgid ""
+"Height of the tool after\n"
+"the last move at the end of the job."
+msgstr ""
+"Höhe des Werkzeugs nach\n"
+"die letzte Bewegung am Ende des Jobs."
+
+#: AppGUI/ObjectUI.py:1223 AppGUI/ObjectUI.py:2104
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:195
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:173
+msgid "End move X,Y"
+msgstr "Bewegung beenden X, Y"
+
+#: AppGUI/ObjectUI.py:1225 AppGUI/ObjectUI.py:2106
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:197
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:175
+msgid ""
+"End move X,Y position. In format (x,y).\n"
+"If no value is entered then there is no move\n"
+"on X,Y plane at the end of the job."
+msgstr ""
+"Beenden Sie die X-, Y-Position. Im Format (x, y).\n"
+"Wenn kein Wert eingegeben wird, erfolgt keine Bewegung\n"
+"auf der X, Y-Ebene am Ende des Jobs."
+
+#: AppGUI/ObjectUI.py:1235 AppGUI/ObjectUI.py:1980
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:96
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:105
+msgid "Probe Z depth"
+msgstr "Sonde Z Tiefe"
+
+#: AppGUI/ObjectUI.py:1237 AppGUI/ObjectUI.py:1982
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:98
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:107
+msgid ""
+"The maximum depth that the probe is allowed\n"
+"to probe. Negative value, in current units."
+msgstr ""
+"Die maximale Tiefe, in der die Sonde zulässig ist\n"
+"zu untersuchen. Negativer Wert in aktuellen Einheiten."
+
+#: AppGUI/ObjectUI.py:1254 AppGUI/ObjectUI.py:1997
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:109
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:120
+msgid "Feedrate Probe"
+msgstr "Vorschubsonde"
+
+#: AppGUI/ObjectUI.py:1256 AppGUI/ObjectUI.py:1999
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:111
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:122
+msgid "The feedrate used while the probe is probing."
+msgstr "Der Vorschub während der Sondenmessung."
+
+#: AppGUI/ObjectUI.py:1272
+msgid "Preprocessor E"
+msgstr "Postprozessor E"
+
+#: AppGUI/ObjectUI.py:1274
+msgid ""
+"The preprocessor JSON file that dictates\n"
+"Gcode output for Excellon Objects."
+msgstr ""
+"Die diktierende Präprozessor-JSON-Datei\n"
+"Gcode-Ausgabe für Excellon-Objekte."
+
+#: AppGUI/ObjectUI.py:1284
+msgid "Preprocessor G"
+msgstr "Postprozessor G"
+
+#: AppGUI/ObjectUI.py:1286
+msgid ""
+"The preprocessor JSON file that dictates\n"
+"Gcode output for Geometry (Milling) Objects."
+msgstr ""
+"Die diktierende Präprozessor-JSON-Datei\n"
+"Gcode-Ausgabe für Geometrieobjekte (Fräsen)."
+
+#: AppGUI/ObjectUI.py:1300 AppGUI/ObjectUI.py:2134
+#, fuzzy
+#| msgid "Exclusion areas"
+msgid "Add exclusion areas"
+msgstr "Ausschlussbereiche"
+
+#: AppGUI/ObjectUI.py:1303 AppGUI/ObjectUI.py:2137
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:204
+msgid ""
+"Include exclusion areas.\n"
+"In those areas the travel of the tools\n"
+"is forbidden."
+msgstr ""
+"Ausschlussbereiche einschließen.\n"
+"In diesen Bereichen die Reise der Werkzeuge\n"
+"ist verboten."
+
+#: AppGUI/ObjectUI.py:1324 AppGUI/ObjectUI.py:1343 AppGUI/ObjectUI.py:2158
+#: AppGUI/ObjectUI.py:2177
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:224
+msgid "Strategy"
+msgstr "Strategie"
+
+#: AppGUI/ObjectUI.py:1324 AppGUI/ObjectUI.py:1355 AppGUI/ObjectUI.py:2158
+#: AppGUI/ObjectUI.py:2189
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:236
+msgid "Over Z"
+msgstr "Über Z."
+
+#: AppGUI/ObjectUI.py:1326 AppGUI/ObjectUI.py:2160
+msgid "This is the Area ID."
+msgstr ""
+
+#: AppGUI/ObjectUI.py:1328 AppGUI/ObjectUI.py:2162
+msgid "Type of the object where the exclusion area was added."
+msgstr ""
+
+#: AppGUI/ObjectUI.py:1330 AppGUI/ObjectUI.py:2164
+msgid ""
+"The strategy used for exclusion area. Go around the exclusion areas or over "
+"it."
+msgstr ""
+
+#: AppGUI/ObjectUI.py:1332 AppGUI/ObjectUI.py:2166
+msgid ""
+"If the strategy is to go over the area then this is the height at which the "
+"tool will go to avoid the exclusion area."
+msgstr ""
+
+#: AppGUI/ObjectUI.py:1344 AppGUI/ObjectUI.py:2178
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:225
+msgid ""
+"The strategy followed when encountering an exclusion area.\n"
+"Can be:\n"
+"- Over -> when encountering the area, the tool will go to a set height\n"
+"- Around -> will avoid the exclusion area by going around the area"
+msgstr ""
+"Die Strategie wurde verfolgt, wenn auf einen Ausschlussbereich gestoßen "
+"wurde.\n"
+"Kann sein:\n"
+"- Über -> Wenn Sie auf den Bereich stoßen, erreicht das Werkzeug eine "
+"festgelegte Höhe\n"
+"- Vermeiden -> vermeidet den Ausschlussbereich, indem Sie den Bereich umgehen"
+
+#: AppGUI/ObjectUI.py:1348 AppGUI/ObjectUI.py:2182
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:229
+msgid "Over"
+msgstr "Über"
+
+#: AppGUI/ObjectUI.py:1349 AppGUI/ObjectUI.py:2183
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:230
+msgid "Around"
+msgstr "Vermeiden"
+
+#: AppGUI/ObjectUI.py:1356 AppGUI/ObjectUI.py:2190
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:237
+msgid ""
+"The height Z to which the tool will rise in order to avoid\n"
+"an interdiction area."
+msgstr ""
+"Die Höhe Z, auf die das Werkzeug ansteigt, um dies zu vermeiden\n"
+"ein Verbotsbereich."
+
+#: AppGUI/ObjectUI.py:1366 AppGUI/ObjectUI.py:2200
+#, fuzzy
+#| msgid "Add area"
+msgid "Add area:"
+msgstr "Bereich hinzufügen"
+
+#: AppGUI/ObjectUI.py:1367 AppGUI/ObjectUI.py:2201
+msgid "Add an Exclusion Area."
+msgstr "Fügen Sie einen Ausschlussbereich hinzu."
+
+#: AppGUI/ObjectUI.py:1373 AppGUI/ObjectUI.py:2207
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:214
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:324
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:288
+#: AppTools/ToolNCC.py:580 AppTools/ToolPaint.py:523
+msgid "The kind of selection shape used for area selection."
+msgstr "Die Art der Auswahlform, die für die Bereichsauswahl verwendet wird."
+
+#: AppGUI/ObjectUI.py:1383 AppGUI/ObjectUI.py:2217
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:32
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:42
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:32
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:32
+msgid "Delete All"
+msgstr "Alles löschen"
+
+#: AppGUI/ObjectUI.py:1384 AppGUI/ObjectUI.py:2218
+msgid "Delete all exclusion areas."
+msgstr "Löschen Sie alle Ausschlussbereiche."
+
+#: AppGUI/ObjectUI.py:1387 AppGUI/ObjectUI.py:2221
+#, fuzzy
+#| msgid "Delete Object"
+msgid "Delete Selected"
+msgstr "Objekt löschen"
+
+#: AppGUI/ObjectUI.py:1388 AppGUI/ObjectUI.py:2222
+#, fuzzy
+#| msgid "Delete all exclusion areas."
+msgid "Delete all exclusion areas that are selected in the table."
+msgstr "Löschen Sie alle Ausschlussbereiche."
+
+#: AppGUI/ObjectUI.py:1412 AppGUI/ObjectUI.py:2238
+msgid ""
+"Add / Select at least one tool in the tool-table.\n"
+"Click the # header to select all, or Ctrl + LMB\n"
+"for custom selection of tools."
+msgstr ""
+"Hinzufügen / Auswählen mindestens eines Werkzeugs in der Werkzeugtabelle.\n"
+"Klicken Sie auf die Überschrift #, um alle auszuwählen, oder auf Strg + LMB\n"
+"zur benutzerdefinierten Auswahl von Werkzeugen."
+
+#: AppGUI/ObjectUI.py:1420 AppGUI/ObjectUI.py:2245
+msgid "Generate CNCJob object"
+msgstr "Generieren des CNC-Job-Objekts"
+
+#: AppGUI/ObjectUI.py:1422
+msgid ""
+"Generate the CNC Job.\n"
+"If milling then an additional Geometry object will be created"
+msgstr ""
+"Generieren Sie den CNC-Auftrag.\n"
+"Beim Fräsen wird ein zusätzliches Geometrieobjekt erstellt"
+
+#: AppGUI/ObjectUI.py:1439
+msgid "Milling Geometry"
+msgstr "Fräsgeometrie"
+
+#: AppGUI/ObjectUI.py:1441
+msgid ""
+"Create Geometry for milling holes.\n"
+"Select from the Tools Table above the hole dias to be\n"
+"milled. Use the # column to make the selection."
+msgstr ""
+"Erzeugen Sie eine Geometrie um Löcher zu bohren.\n"
+"Wählen Sie aus der Werkzeugtabelle oben die Durchmesser\n"
+"die gefräst werden sollen. Verwenden Sie die Spalte #, um die Auswahl zu "
+"treffen."
+
+#: AppGUI/ObjectUI.py:1449
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:296
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:45
+msgid "Diameter of the cutting tool."
+msgstr "Durchmesser des Schneidewerkzeugs."
+
+#: AppGUI/ObjectUI.py:1459
+msgid "Mill Drills"
+msgstr "Mühlenbohrer"
+
+#: AppGUI/ObjectUI.py:1461
+msgid ""
+"Create the Geometry Object\n"
+"for milling DRILLS toolpaths."
+msgstr ""
+"Erstellen Sie das Geometrieobjekt\n"
+"zum Fräsen von BOHRER-Werkzeugwegen."
+
+#: AppGUI/ObjectUI.py:1479
+msgid "Mill Slots"
+msgstr "Mühlenschlitze"
+
+#: AppGUI/ObjectUI.py:1481
+msgid ""
+"Create the Geometry Object\n"
+"for milling SLOTS toolpaths."
+msgstr ""
+"Erstellen Sie das Geometrieobjekt\n"
+"zum Fräsen von Werkzeugwegen."
+
+#: AppGUI/ObjectUI.py:1523 AppTools/ToolCutOut.py:319
+msgid "Geometry Object"
+msgstr "Geometrieobjekt"
+
+#: AppGUI/ObjectUI.py:1569
+msgid ""
+"Tools in this Geometry object used for cutting.\n"
+"The 'Offset' entry will set an offset for the cut.\n"
+"'Offset' can be inside, outside, on path (none) and custom.\n"
+"'Type' entry is only informative and it allow to know the \n"
+"intent of using the current tool. \n"
+"It can be Rough(ing), Finish(ing) or Iso(lation).\n"
+"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n"
+"ball(B), or V-Shaped(V). \n"
+"When V-shaped is selected the 'Type' entry is automatically \n"
+"set to Isolation, the CutZ parameter in the UI form is\n"
+"grayed out and Cut Z is automatically calculated from the newly \n"
+"showed UI form entries named V-Tip Dia and V-Tip Angle."
+msgstr ""
+"Werkzeuge in diesem Geometrieobjekt, die zum Schneiden verwendet werden.\n"
+"Der Eintrag 'Versatz' legt einen Versatz für den Schnitt fest.\n"
+"'Versatz' kann innen, außen, auf Pfad (keine) und benutzerdefiniert sein.\n"
+"Der Eintrag \"Typ\" ist nur informativ und ermöglicht die Kenntnis der\n"
+"Absicht, das aktuelle Werkzeug zu verwenden.\n"
+"Es kann Rough, Finish oder ISO sein.\n"
+"Der 'Werkzeugtyp' (TT) kann kreisförmig mit 1 bis 4 Zähnen (C1..C4) sein.\n"
+"Kugel (B) oder V-Form (V).\n"
+"Wenn V-förmig ausgewählt ist, wird der Eintrag \"Typ\" automatisch "
+"angezeigt\n"
+"Auf Isolation eingestellt ist der Parameter CutZ im UI-Formular\n"
+"ausgegraut und Cut Z wird automatisch aus dem neuen berechnet\n"
+"Zeigt UI-Formulareinträge mit den Namen V-Tip Dia und V-Tip Angle an."
+
+#: AppGUI/ObjectUI.py:1586 AppGUI/ObjectUI.py:2443
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:40
+msgid "Plot Object"
+msgstr "Plotobjekt"
+
+#: AppGUI/ObjectUI.py:1599 AppGUI/ObjectUI.py:2456 AppGUI/ObjectUI.py:2466
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138
+#: AppTools/ToolCopperThieving.py:221
+msgid "Dia"
+msgstr "Durchm"
+
+#: AppGUI/ObjectUI.py:1599 AppGUI/ObjectUI.py:2456 AppTools/ToolNCC.py:132
+#: AppTools/ToolPaint.py:127
+msgid "TT"
+msgstr "TT"
+
+#: AppGUI/ObjectUI.py:1606
+msgid ""
+"This is the Tool Number.\n"
+"When ToolChange is checked, on toolchange event this value\n"
+"will be showed as a T1, T2 ... Tn"
+msgstr ""
+"Dies ist die Werkzeugnummer.\n"
+"Wenn der Werkzeugwechsel aktiviert ist, wird dieser Wert beim "
+"Werkzeugwechselereignis angezeigt\n"
+"wird als T1, T2 ... Tn angezeigt"
+
+#: AppGUI/ObjectUI.py:1617
+msgid ""
+"The value for the Offset can be:\n"
+"- Path -> There is no offset, the tool cut will be done through the geometry "
+"line.\n"
+"- In(side) -> The tool cut will follow the geometry inside. It will create a "
+"'pocket'.\n"
+"- Out(side) -> The tool cut will follow the geometry line on the outside."
+msgstr ""
+"Der Wert für den Offset kann sein:\n"
+"- Pfad -> Es gibt keinen Versatz, der Werkzeugschnitt erfolgt durch die "
+"Geometrielinie.\n"
+"- In (Seite) -> Der Werkzeugschnitt folgt der Innengeometrie. Es wird eine "
+"\"Tasche\" erstellt.\n"
+"- Out (Seite) -> Der Werkzeugschnitt folgt der Geometrielinie an der "
+"Außenseite."
+
+#: AppGUI/ObjectUI.py:1624
+msgid ""
+"The (Operation) Type has only informative value. Usually the UI form "
+"values \n"
+"are choose based on the operation type and this will serve as a reminder.\n"
+"Can be 'Roughing', 'Finishing' or 'Isolation'.\n"
+"For Roughing we may choose a lower Feedrate and multiDepth cut.\n"
+"For Finishing we may choose a higher Feedrate, without multiDepth.\n"
+"For Isolation we need a lower Feedrate as it use a milling bit with a fine "
+"tip."
+msgstr ""
+"Der Typ (Operation) hat nur informativen Wert. Normalerweise bilden die "
+"Benutzeroberflächen Werte\n"
+"Die Auswahl richtet sich nach der Art des Vorgangs und dient als "
+"Erinnerung.\n"
+"Kann \"Schruppen\", \"Fertigstellen\" oder \"Isolieren\" sein.\n"
+"Für das Schruppen können wir einen niedrigeren Vorschub und einen Schnitt "
+"mit mehreren Tiefen wählen.\n"
+"Für das Finishing können wir eine höhere Vorschubgeschwindigkeit ohne "
+"Mehrfachtiefe wählen.\n"
+"Für die Isolierung benötigen wir einen niedrigeren Vorschub, da ein Fräser "
+"mit einer feinen Spitze verwendet wird."
+
+#: AppGUI/ObjectUI.py:1633
+msgid ""
+"The Tool Type (TT) can be:\n"
+"- Circular with 1 ... 4 teeth -> it is informative only. Being circular the "
+"cut width in material\n"
+"is exactly the tool diameter.\n"
+"- Ball -> informative only and make reference to the Ball type endmill.\n"
+"- V-Shape -> it will disable Z-Cut parameter in the UI form and enable two "
+"additional UI form\n"
+"fields: V-Tip Dia and V-Tip Angle. Adjusting those two values will adjust "
+"the Z-Cut parameter such\n"
+"as the cut width into material will be equal with the value in the Tool "
+"Diameter column of this table.\n"
+"Choosing the V-Shape Tool Type automatically will select the Operation Type "
+"as Isolation."
+msgstr ""
+"Der Werkzeugtyp (TT) kann sein:\n"
+"- Rundschreiben mit 1 ... 4 Zähnen -> nur informativ. Kreisförmig ist die "
+"Schnittbreite im Material\n"
+"ist genau der Werkzeugdurchmesser.\n"
+"- Ball -> nur informativ und auf den Ball-Schaftfräser verweisen.\n"
+"- V-Form -> Deaktiviert den Z-Cut-Parameter im UI-Formular und aktiviert "
+"zwei zusätzliche UI-Formulare\n"
+"Felder: V-Tip Dia und V-Tip Angle. Durch Anpassen dieser beiden Werte wird "
+"der Z-Cut-Parameter wie z\n"
+"da die Schnittbreite in Material gleich dem Wert in der Spalte "
+"Werkzeugdurchmesser dieser Tabelle ist.\n"
+"Wenn Sie den V-Form-Werkzeugtyp automatisch auswählen, wird der "
+"Operationstyp als Isolation ausgewählt."
+
+#: AppGUI/ObjectUI.py:1645
+msgid ""
+"Plot column. It is visible only for MultiGeo geometries, meaning geometries "
+"that holds the geometry\n"
+"data into the tools. For those geometries, deleting the tool will delete the "
+"geometry data also,\n"
+"so be WARNED. From the checkboxes on each row it can be enabled/disabled the "
+"plot on canvas\n"
+"for the corresponding tool."
+msgstr ""
+"Plotspalte Sie ist nur für MultiGeo-Geometrien sichtbar. Dies bedeutet, dass "
+"Geometrien die Geometrie enthalten\n"
+"Daten in die Werkzeuge. Durch das Löschen des Werkzeugs werden für diese "
+"Geometrien auch die Geometriedaten gelöscht.\n"
+"also sei WARNUNG. Über die Kontrollkästchen in jeder Zeile kann der Plot auf "
+"der Leinwand aktiviert / deaktiviert werden\n"
+"für das entsprechende Werkzeug."
+
+#: AppGUI/ObjectUI.py:1663
+msgid ""
+"The value to offset the cut when \n"
+"the Offset type selected is 'Offset'.\n"
+"The value can be positive for 'outside'\n"
+"cut and negative for 'inside' cut."
+msgstr ""
+"Der Wert, mit dem der Schnitt versetzt werden soll\n"
+"Der ausgewählte Versatztyp ist 'Versatz'.\n"
+"Der Wert kann für \"außerhalb\" positiv sein\n"
+"Cut und Negativ für \"Inside\" Cut."
+
+#: AppGUI/ObjectUI.py:1682 AppTools/ToolNCC.py:209 AppTools/ToolNCC.py:923
+#: AppTools/ToolPaint.py:191 AppTools/ToolPaint.py:848
+#: AppTools/ToolSolderPaste.py:559
+msgid "New Tool"
+msgstr "Neues Werkzeug"
+
+#: AppGUI/ObjectUI.py:1699
+msgid ""
+"Add a new tool to the Tool Table\n"
+"with the specified diameter."
+msgstr ""
+"Fügen Sie der Werkzeugtabelle ein neues Werkzeug\n"
+"mit dem oben angegebenen Durchmesser hinzu."
+
+#: AppGUI/ObjectUI.py:1704 AppTools/ToolNCC.py:300 AppTools/ToolNCC.py:634
+#: AppTools/ToolPaint.py:282 AppTools/ToolPaint.py:678
+msgid "Add from DB"
+msgstr "Aus DB hinzufügen"
+
+#: AppGUI/ObjectUI.py:1706 AppTools/ToolNCC.py:302 AppTools/ToolPaint.py:284
+msgid ""
+"Add a new tool to the Tool Table\n"
+"from the Tool DataBase."
+msgstr ""
+"Fügen Sie der Werkzeugtabelle ein neues Werkzeug aus der\n"
+"aus der Werkzeugdatenbank hinzu."
+
+#: AppGUI/ObjectUI.py:1721
+msgid ""
+"Copy a selection of tools in the Tool Table\n"
+"by first selecting a row in the Tool Table."
+msgstr ""
+"Kopieren Sie eine Auswahl von Werkzeugen in die Werkzeugtabelle\n"
+"indem Sie zuerst eine Zeile in der Werkzeugtabelle auswählen."
+
+#: AppGUI/ObjectUI.py:1727
+msgid ""
+"Delete a selection of tools in the Tool Table\n"
+"by first selecting a row in the Tool Table."
+msgstr ""
+"Löschen Sie eine Auswahl von Werkzeugen in der Werkzeugtabelle\n"
+"indem Sie zuerst eine Zeile in der Werkzeugtabelle auswählen."
+
+#: AppGUI/ObjectUI.py:1854
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:103
+msgid ""
+"Height of the tool when\n"
+"moving without cutting."
+msgstr ""
+"Höhe des Werkzeugs bei\n"
+"Bewegen ohne zu schneiden."
+
+#: AppGUI/ObjectUI.py:1887
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:202
+msgid ""
+"Cutting speed in the XY\n"
+"plane in units per minute.\n"
+"It is called also Plunge."
+msgstr ""
+"Schnittgeschwindigkeit im XY\n"
+"Flugzeug in Einheiten pro Minute.\n"
+"Es heißt auch Sturz."
+
+#: AppGUI/ObjectUI.py:1902
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:66
+msgid ""
+"Cutting speed in the XY plane\n"
+"(in units per minute).\n"
+"This is for the rapid move G00.\n"
+"It is useful only for Marlin,\n"
+"ignore for any other cases."
+msgstr ""
+"Schnittgeschwindigkeit in der XY-Ebene\n"
+"(in Einheiten pro Minute).\n"
+"Dies ist für die schnelle Bewegung G00.\n"
+"Es ist nur für Marlin nützlich,\n"
+"für andere Fälle ignorieren."
+
+#: AppGUI/ObjectUI.py:1946
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:219
+msgid ""
+"Speed of the spindle in RPM (optional).\n"
+"If LASER preprocessor is used,\n"
+"this value is the power of laser."
+msgstr ""
+"Drehzahl der Spindel in U / min (optional).\n"
+"Wenn LASER-Postprozessor verwendet wird,\n"
+"Dieser Wert ist die Leistung des Lasers."
+
+#: AppGUI/ObjectUI.py:2049
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:124
+msgid ""
+"Include tool-change sequence\n"
+"in the Machine Code (Pause for tool change)."
+msgstr ""
+"Werkzeugwechselfolge einbeziehen\n"
+"im Maschinencode (Pause für Werkzeugwechsel)."
+
+#: AppGUI/ObjectUI.py:2118
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:256
+msgid ""
+"The Preprocessor file that dictates\n"
+"the Machine Code (like GCode, RML, HPGL) output."
+msgstr ""
+"Die Postprozessor-Datei, die diktiert\n"
+"den Maschinencode (wie GCode, RML, HPGL)."
+
+#: AppGUI/ObjectUI.py:2247 Common.py:405 Common.py:520 Common.py:573
+msgid "Generate the CNC Job object."
+msgstr "Generieren Sie das CNC-Job-Objekt."
+
+#: AppGUI/ObjectUI.py:2264
+msgid "Launch Paint Tool in Tools Tab."
+msgstr "Starten Sie das Paint Werkzeug in der Registerkarte \"Tools\"."
+
+#: AppGUI/ObjectUI.py:2272 AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:35
+msgid ""
+"Creates tool paths to cover the\n"
+"whole area of a polygon (remove\n"
+"all copper). You will be asked\n"
+"to click on the desired polygon."
+msgstr ""
+"Erzeugt Werkzeugpfade zur Abdeckung\n"
+"gesamte Fläche eines Polygons (entfernen\n"
+"alles Kupfer). Du wirst gefragt\n"
+"Klicken Sie auf das gewünschte Polygon."
+
+#: AppGUI/ObjectUI.py:2327
+msgid "CNC Job Object"
+msgstr "CNC-Auftragsobjekt"
+
+#: AppGUI/ObjectUI.py:2338 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:45
+msgid "Plot kind"
+msgstr "Darstellungsart"
+
+#: AppGUI/ObjectUI.py:2341 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:47
+msgid ""
+"This selects the kind of geometries on the canvas to plot.\n"
+"Those can be either of type 'Travel' which means the moves\n"
+"above the work piece or it can be of type 'Cut',\n"
+"which means the moves that cut into the material."
+msgstr ""
+"Dadurch wird die Art der Geometrien auf der zu plottenden Leinwand "
+"ausgewählt.\n"
+"Dies kann entweder vom Typ 'Reise' sein, was die Bewegungen bedeutet\n"
+"über dem Werkstück oder es kann vom Typ 'Ausschneiden' sein,\n"
+"was bedeutet, dass die Bewegungen, die in das Material geschnitten werden."
+
+#: AppGUI/ObjectUI.py:2350 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:55
+msgid "Travel"
+msgstr "Reise"
+
+#: AppGUI/ObjectUI.py:2354 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:64
+msgid "Display Annotation"
+msgstr "Anmerkung anzeigen"
+
+#: AppGUI/ObjectUI.py:2356 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:66
+msgid ""
+"This selects if to display text annotation on the plot.\n"
+"When checked it will display numbers in order for each end\n"
+"of a travel line."
+msgstr ""
+"Hiermit wird ausgewählt, ob Textanmerkungen auf dem Plot angezeigt werden "
+"sollen.\n"
+"Wenn diese Option aktiviert ist, werden die Nummern für jedes Ende in der "
+"richtigen Reihenfolge angezeigt\n"
+"einer Reiseleitung."
+
+#: AppGUI/ObjectUI.py:2371
+msgid "Travelled dist."
+msgstr "Zurückgelegte Strecke."
+
+#: AppGUI/ObjectUI.py:2373 AppGUI/ObjectUI.py:2378
+msgid ""
+"This is the total travelled distance on X-Y plane.\n"
+"In current units."
+msgstr ""
+"Dies ist die Gesamtstrecke auf der X-Y-Ebene.\n"
+"In aktuellen Einheiten."
+
+#: AppGUI/ObjectUI.py:2383
+msgid "Estimated time"
+msgstr "Geschätzte Zeit"
+
+#: AppGUI/ObjectUI.py:2385 AppGUI/ObjectUI.py:2390
+msgid ""
+"This is the estimated time to do the routing/drilling,\n"
+"without the time spent in ToolChange events."
+msgstr ""
+"Dies ist die geschätzte Zeit für das Fräsen / Bohren.\n"
+"ohne die Zeit, die in Werkzeugwechselereignissen verbracht wird."
+
+#: AppGUI/ObjectUI.py:2425
+msgid "CNC Tools Table"
+msgstr "CNC Werkzeugtabelle"
+
+#: AppGUI/ObjectUI.py:2428
+msgid ""
+"Tools in this CNCJob object used for cutting.\n"
+"The tool diameter is used for plotting on canvas.\n"
+"The 'Offset' entry will set an offset for the cut.\n"
+"'Offset' can be inside, outside, on path (none) and custom.\n"
+"'Type' entry is only informative and it allow to know the \n"
+"intent of using the current tool. \n"
+"It can be Rough(ing), Finish(ing) or Iso(lation).\n"
+"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n"
+"ball(B), or V-Shaped(V)."
+msgstr ""
+"Werkzeuge in diesem CNCJob-Objekt, die zum Schneiden verwendet werden.\n"
+"Der Werkzeugdurchmesser wird zum Plotten auf Leinwand verwendet.\n"
+"Der Eintrag 'Versatz' legt einen Versatz für den Schnitt fest.\n"
+"'Versatz' kann innen, außen, auf Pfad (keine) und benutzerdefiniert sein.\n"
+"Der Eintrag \"Typ\" ist nur informativ und ermöglicht die Kenntnis der\n"
+"Absicht, das aktuelle Werkzeug zu verwenden.\n"
+"Es kann Schruppen, Schlichten oder Isolieren sein.\n"
+"Der 'Werkzeugtyp' (TT) kann kreisförmig mit 1 bis 4 Zähnen (C1..C4) sein.\n"
+"Kugel (B) oder V-Form (V)."
+
+#: AppGUI/ObjectUI.py:2456 AppGUI/ObjectUI.py:2467
+msgid "P"
+msgstr "P"
+
+#: AppGUI/ObjectUI.py:2477
+msgid "Update Plot"
+msgstr "Plot aktualisieren"
+
+#: AppGUI/ObjectUI.py:2479
+msgid "Update the plot."
+msgstr "Aktualisieren Sie die Darstellung."
+
+#: AppGUI/ObjectUI.py:2486
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:30
+msgid "Export CNC Code"
+msgstr "CNC-Code exportieren"
+
+#: AppGUI/ObjectUI.py:2488
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:32
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:33
+msgid ""
+"Export and save G-Code to\n"
+"make this object to a file."
+msgstr ""
+"Exportieren und speichern Sie den G-Code nach\n"
+"Machen Sie dieses Objekt in eine Datei."
+
+#: AppGUI/ObjectUI.py:2494
+msgid "Prepend to CNC Code"
+msgstr "CNC-Code voranstellen"
+
+#: AppGUI/ObjectUI.py:2496 AppGUI/ObjectUI.py:2503
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:49
+msgid ""
+"Type here any G-Code commands you would\n"
+"like to add at the beginning of the G-Code file."
+msgstr ""
+"Geben Sie hier alle G-Code-Befehle ein\n"
+"die Sie am Anfang der G-Code-Datei hinzufügen möchten."
+
+#: AppGUI/ObjectUI.py:2509
+msgid "Append to CNC Code"
+msgstr "An CNC Code anhängen"
+
+#: AppGUI/ObjectUI.py:2511 AppGUI/ObjectUI.py:2519
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:65
+msgid ""
+"Type here any G-Code commands you would\n"
+"like to append to the generated file.\n"
+"I.e.: M2 (End of program)"
+msgstr ""
+"Geben Sie hier alle G-Code-Befehle ein\n"
+"die Sie an die generierte Datei anhängen möchten.\n"
+"z.B.: M2 (Programmende)"
+
+#: AppGUI/ObjectUI.py:2533
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:38
+msgid "Toolchange G-Code"
+msgstr "Werkzeugwechsel G-Code"
+
+#: AppGUI/ObjectUI.py:2536
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:41
+msgid ""
+"Type here any G-Code commands you would\n"
+"like to be executed when Toolchange event is encountered.\n"
+"This will constitute a Custom Toolchange GCode,\n"
+"or a Toolchange Macro.\n"
+"The FlatCAM variables are surrounded by '%' symbol.\n"
+"\n"
+"WARNING: it can be used only with a preprocessor file\n"
+"that has 'toolchange_custom' in it's name and this is built\n"
+"having as template the 'Toolchange Custom' posprocessor file."
+msgstr ""
+"Geben Sie hier alle G-Code-Befehle ein\n"
+"Wird ausgeführt, wenn ein Werkzeugwechselereignis auftritt.\n"
+"Dies stellt einen benutzerdefinierten Werkzeugwechsel-GCode dar.\n"
+"oder ein Werkzeugwechsel-Makro.\n"
+"Die FlatCAM-Variablen sind vom '%'-Symbol umgeben.\n"
+"\n"
+"WARNUNG: Es kann nur mit einer Postprozessor-Datei verwendet werden\n"
+"das hat \"toolchange_custom\" im Namen und das ist gebaut\n"
+"mit der \"Toolchange Custom\" -Prozessordatei als Vorlage."
+
+#: AppGUI/ObjectUI.py:2551
+msgid ""
+"Type here any G-Code commands you would\n"
+"like to be executed when Toolchange event is encountered.\n"
+"This will constitute a Custom Toolchange GCode,\n"
+"or a Toolchange Macro.\n"
+"The FlatCAM variables are surrounded by '%' symbol.\n"
+"WARNING: it can be used only with a preprocessor file\n"
+"that has 'toolchange_custom' in it's name."
+msgstr ""
+"Geben Sie hier G-Code-Befehle ein\n"
+"die ausgeführt werden, wenn ein Werkzeugwechselereignis auftritt.\n"
+"So kann ein benutzerdefinierter Werkzeugwechsel in GCode definiert werden.\n"
+"Die FlatCAM-Variablen sind vom '%'-Symbol umgeben.\n"
+"\n"
+"WARNUNG: Ein Werkzeugwechselereignis kann nur mit einer Präprozessor-Datei "
+"verwendet werden\n"
+"die das Präfix \"toolchange_custom\" im Namen hat und nach Vorlage der \n"
+" \n"
+"\"Toolchange Custom\" -Prozessordatei erzeugt wurde."
+
+#: AppGUI/ObjectUI.py:2566
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:80
+msgid "Use Toolchange Macro"
+msgstr "Benutze das Werkzeugwechselmakro"
+
+#: AppGUI/ObjectUI.py:2568
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:82
+msgid ""
+"Check this box if you want to use\n"
+"a Custom Toolchange GCode (macro)."
+msgstr ""
+"Aktivieren Sie dieses Kontrollkästchen, wenn Sie verwenden möchten\n"
+"ein benutzerdefiniertes Werkzeug ändert GCode (Makro)."
+
+#: AppGUI/ObjectUI.py:2576
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:94
+msgid ""
+"A list of the FlatCAM variables that can be used\n"
+"in the Toolchange event.\n"
+"They have to be surrounded by the '%' symbol"
+msgstr ""
+"Eine Liste der FlatCAM-Variablen, die verwendet werden können\n"
+"im Werkzeugwechselereignis.\n"
+"Sie müssen mit dem \"%\" -Symbol umgeben sein"
+
+#: AppGUI/ObjectUI.py:2583
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:101
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:30
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:31
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:31
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:37
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:36
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:36
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:36
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:31
+#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:31
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:36
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:31
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:30
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:35
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:32
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31
+#: AppTools/ToolCopperThieving.py:89 AppTools/ToolCorners.py:106
+#: AppTools/ToolEtchCompensation.py:82 AppTools/ToolFiducials.py:149
+#: AppTools/ToolInvertGerber.py:82
+msgid "Parameters"
+msgstr "Parameters"
+
+#: AppGUI/ObjectUI.py:2586
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:106
+msgid "FlatCAM CNC parameters"
+msgstr "FlatCAM CNC-Parameter"
+
+#: AppGUI/ObjectUI.py:2587
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:111
+msgid "tool number"
+msgstr "Werkzeugnummer"
+
+#: AppGUI/ObjectUI.py:2588
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:112
+msgid "tool diameter"
+msgstr "Werkzeugdurchmesser"
+
+#: AppGUI/ObjectUI.py:2589
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:113
+msgid "for Excellon, total number of drills"
+msgstr "für Excellon die Gesamtzahl der Bohrer"
+
+#: AppGUI/ObjectUI.py:2591
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:115
+msgid "X coord for Toolchange"
+msgstr "X-Koordinate für Werkzeugwechsel"
+
+#: AppGUI/ObjectUI.py:2592
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:116
+msgid "Y coord for Toolchange"
+msgstr "Y-Koordinate für Werkzeugwechsel"
+
+#: AppGUI/ObjectUI.py:2593
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:118
+msgid "Z coord for Toolchange"
+msgstr "Z-Koordinate für Werkzeugwechsel"
+
+#: AppGUI/ObjectUI.py:2594
+msgid "depth where to cut"
+msgstr "tiefe wo zu schneiden"
+
+#: AppGUI/ObjectUI.py:2595
+msgid "height where to travel"
+msgstr "Höhe, wohin man reist"
+
+#: AppGUI/ObjectUI.py:2596
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:121
+msgid "the step value for multidepth cut"
+msgstr "der Schrittwert für den mehrstufigen Schnitt"
+
+#: AppGUI/ObjectUI.py:2598
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:123
+msgid "the value for the spindle speed"
+msgstr "der Wert für die Spindeldrehzahl"
+
+#: AppGUI/ObjectUI.py:2600
+msgid "time to dwell to allow the spindle to reach it's set RPM"
+msgstr ""
+"Zeit zum Verweilen, damit die Spindel die eingestellte Drehzahl erreicht"
+
+#: AppGUI/ObjectUI.py:2616
+msgid "View CNC Code"
+msgstr "CNC-Code anzeigen"
+
+#: AppGUI/ObjectUI.py:2618
+msgid ""
+"Opens TAB to view/modify/print G-Code\n"
+"file."
+msgstr ""
+"Öffnet die Registerkarte zum Anzeigen / Ändern / Drucken von G-Code\n"
+"Datei."
+
+#: AppGUI/ObjectUI.py:2623
+msgid "Save CNC Code"
+msgstr "CNC-Code speichern"
+
+#: AppGUI/ObjectUI.py:2625
+msgid ""
+"Opens dialog to save G-Code\n"
+"file."
+msgstr ""
+"Öffnet den Dialog zum Speichern des G-Codes\n"
+"Datei."
+
+#: AppGUI/ObjectUI.py:2659
+msgid "Script Object"
+msgstr "Skriptobjekt"
+
+#: AppGUI/ObjectUI.py:2679 AppGUI/ObjectUI.py:2753
+msgid "Auto Completer"
+msgstr "Auto-Vervollständiger"
+
+#: AppGUI/ObjectUI.py:2681
+msgid "This selects if the auto completer is enabled in the Script Editor."
+msgstr ""
+"Hiermit wird ausgewählt, ob der automatische Vervollständiger im Skript-"
+"Editor aktiviert ist."
+
+#: AppGUI/ObjectUI.py:2726
+msgid "Document Object"
+msgstr "Dokumentobjekt"
+
+#: AppGUI/ObjectUI.py:2755
+msgid "This selects if the auto completer is enabled in the Document Editor."
+msgstr ""
+"Hiermit wird ausgewählt, ob der automatische Vervollständiger im "
+"Dokumenteditor aktiviert ist."
+
+#: AppGUI/ObjectUI.py:2773
+msgid "Font Type"
+msgstr "Schriftart"
+
+#: AppGUI/ObjectUI.py:2790
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:197
+msgid "Font Size"
+msgstr "Schriftgröße"
+
+#: AppGUI/ObjectUI.py:2826
+msgid "Alignment"
+msgstr "Ausrichtung"
+
+#: AppGUI/ObjectUI.py:2831
+msgid "Align Left"
+msgstr "Linksbündig"
+
+#: AppGUI/ObjectUI.py:2836 App_Main.py:4687
+msgid "Center"
+msgstr "Center"
+
+#: AppGUI/ObjectUI.py:2841
+msgid "Align Right"
+msgstr "Rechts ausrichten"
+
+#: AppGUI/ObjectUI.py:2846
+msgid "Justify"
+msgstr "Rechtfertigen"
+
+#: AppGUI/ObjectUI.py:2853
+msgid "Font Color"
+msgstr "Schriftfarbe"
+
+#: AppGUI/ObjectUI.py:2855
+msgid "Set the font color for the selected text"
+msgstr "Stellen Sie die Schriftfarbe für den ausgewählten Text ein"
+
+#: AppGUI/ObjectUI.py:2869
+msgid "Selection Color"
+msgstr "Auswahlfarbe"
+
+#: AppGUI/ObjectUI.py:2871
+msgid "Set the selection color when doing text selection."
+msgstr "Stellen Sie die Auswahlfarbe bei der Textauswahl ein."
+
+#: AppGUI/ObjectUI.py:2885
+msgid "Tab Size"
+msgstr "Tab-Größe"
+
+#: AppGUI/ObjectUI.py:2887
+msgid "Set the tab size. In pixels. Default value is 80 pixels."
+msgstr ""
+"Stellen Sie die Größe der Registerkarte ein. In Pixeln. Der Standardwert "
+"beträgt 80 Pixel."
+
+#: AppGUI/PlotCanvasLegacy.py:1464
+msgid ""
+"Could not annotate due of a difference between the number of text elements "
+"and the number of text positions."
+msgstr ""
+"Aufgrund eines Unterschieds zwischen der Anzahl der Textelemente und der "
+"Anzahl der Textpositionen konnten keine Anmerkungen erstellt werden."
+
+#: AppGUI/preferences/PreferencesUIManager.py:911
+#: AppGUI/preferences/PreferencesUIManager.py:1002
+#: AppGUI/preferences/PreferencesUIManager.py:1026
+#: AppGUI/preferences/PreferencesUIManager.py:1132 App_Main.py:5107
+msgid "Preferences"
+msgstr "Einstellungen"
+
+#: AppGUI/preferences/PreferencesUIManager.py:917
+msgid "Preferences applied."
+msgstr "Einstellungen werden angewendet."
+
+#: AppGUI/preferences/PreferencesUIManager.py:937
+#, fuzzy
+#| msgid "Are you sure you want to delete the GUI Settings? \n"
+msgid "Are you sure you want to continue?"
+msgstr "Möchten Sie die GUI-Einstellungen wirklich löschen?\n"
+
+#: AppGUI/preferences/PreferencesUIManager.py:938
+#, fuzzy
+#| msgid "Application started ..."
+msgid "Application restart"
+msgstr "Bewerbung gestartet ..."
+
+#: AppGUI/preferences/PreferencesUIManager.py:1031
+msgid "Preferences closed without saving."
+msgstr "Einstellungen geschlossen ohne zu speichern."
+
+#: AppGUI/preferences/PreferencesUIManager.py:1043
+msgid "Preferences default values are restored."
+msgstr "Die Standardeinstellungen werden wiederhergestellt."
+
+#: AppGUI/preferences/PreferencesUIManager.py:1075 App_Main.py:2476
+#: App_Main.py:2544
+msgid "Failed to write defaults to file."
+msgstr "Fehler beim Schreiben der Voreinstellungen in die Datei."
+
+#: AppGUI/preferences/PreferencesUIManager.py:1079
+#: AppGUI/preferences/PreferencesUIManager.py:1188
+msgid "Preferences saved."
+msgstr "Einstellungen gespeichert."
+
+#: AppGUI/preferences/PreferencesUIManager.py:1129
+msgid "Preferences edited but not saved."
+msgstr "Einstellungen bearbeitet, aber nicht gespeichert."
+
+#: AppGUI/preferences/PreferencesUIManager.py:1174
+msgid ""
+"One or more values are changed.\n"
+"Do you want to save the Preferences?"
+msgstr ""
+"Ein oder mehrere Werte werden geändert.\n"
+"Möchten Sie die Einstellungen speichern?"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:27
+msgid "CNC Job Adv. Options"
+msgstr "Erw. CNC-Joboptionen"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:64
+msgid ""
+"Type here any G-Code commands you would like to be executed when Toolchange "
+"event is encountered.\n"
+"This will constitute a Custom Toolchange GCode, or a Toolchange Macro.\n"
+"The FlatCAM variables are surrounded by '%' symbol.\n"
+"WARNING: it can be used only with a preprocessor file that has "
+"'toolchange_custom' in it's name."
+msgstr ""
+"Geben Sie hier G-Code-Befehle ein, die ausgeführt werden, wenn ein "
+"Werkzeugwechselereignis auftritt.\n"
+"So kann ein benutzerdefinierter Werkzeugwechsel in GCode definiert werden.\n"
+"Die FlatCAM-Variablen sind vom '%'-Symbol umgeben.\n"
+"\n"
+"WARNUNG: Ein Werkzeugwechselereignis kann nur mit einer Präprozessor-Datei "
+"verwendet warden, die das Präfix \"toolchange_custom\" im Namen hat und nach "
+"Vorlage der \"Toolchange Custom\" -Prozessordatei erzeugt wurde."
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:119
+msgid "Z depth for the cut"
+msgstr "Z Tiefe für den Schnitt"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:120
+msgid "Z height for travel"
+msgstr "Z Höhe für die Reise"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:126
+msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM"
+msgstr ""
+"dwelltime = Zeit zum Verweilen, damit die Spindel ihre eingestellte Drehzahl "
+"erreicht"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:145
+msgid "Annotation Size"
+msgstr "Anmerkungsgröße"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:147
+msgid "The font size of the annotation text. In pixels."
+msgstr "Die Schriftgröße des Anmerkungstextes. In Pixeln."
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:157
+msgid "Annotation Color"
+msgstr "Anmerkungsfarbe"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:159
+msgid "Set the font color for the annotation texts."
+msgstr "Legen Sie die Schriftfarbe für die Anmerkungstexte fest."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:26
+msgid "CNC Job General"
+msgstr "CNC-Job Allgemein"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:77
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:47
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:59
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:45
+msgid "Circle Steps"
+msgstr "Kreisschritte"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:79
+msgid ""
+"The number of circle steps for GCode \n"
+"circle and arc shapes linear approximation."
+msgstr ""
+"Die Anzahl der Kreisschritte für GCode\n"
+"Kreis- und Bogenformen lineare Annäherung."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:88
+msgid "Travel dia"
+msgstr "Verfahrdurchm"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:90
+msgid ""
+"The width of the travel lines to be\n"
+"rendered in the plot."
+msgstr ""
+"Die Breite der Fahrlinien soll sein\n"
+"in der Handlung gerendert."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:103
+msgid "G-code Decimals"
+msgstr "G-Code-Dezimalstellen"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:106
+#: AppTools/ToolFiducials.py:74
+msgid "Coordinates"
+msgstr "Koordinaten"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:108
+msgid ""
+"The number of decimals to be used for \n"
+"the X, Y, Z coordinates in CNC code (GCODE, etc.)"
+msgstr ""
+"Die Anzahl der Dezimalstellen, für die verwendet werden soll\n"
+"die X-, Y-, Z-Koordinaten im CNC-Code (GCODE usw.)"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:119
+#: AppTools/ToolProperties.py:519
+msgid "Feedrate"
+msgstr "Vorschubgeschwindigkeit"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:121
+msgid ""
+"The number of decimals to be used for \n"
+"the Feedrate parameter in CNC code (GCODE, etc.)"
+msgstr ""
+"Die Anzahl der Dezimalstellen, für die verwendet werden soll\n"
+"der Vorschubparameter im CNC-Code (GCODE usw.)"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:132
+msgid "Coordinates type"
+msgstr "Koordinaten eingeben"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:134
+msgid ""
+"The type of coordinates to be used in Gcode.\n"
+"Can be:\n"
+"- Absolute G90 -> the reference is the origin x=0, y=0\n"
+"- Incremental G91 -> the reference is the previous position"
+msgstr ""
+"Der in Gcode zu verwendende Koordinatentyp.\n"
+"Kann sein:\n"
+"- Absolut G90 -> die Referenz ist der Ursprung x = 0, y = 0\n"
+"- Inkrementell G91 -> Die Referenz ist die vorherige Position"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:140
+msgid "Absolute G90"
+msgstr "Absolut G90"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:141
+msgid "Incremental G91"
+msgstr "Inkrementelles G91"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:151
+msgid "Force Windows style line-ending"
+msgstr "Windows Zeilenendemarkierung erzwingen"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:153
+msgid ""
+"When checked will force a Windows style line-ending\n"
+"(\\r\\n) on non-Windows OS's."
+msgstr ""
+"Wenn ausgewählt werden Zeilenendungsmarkierungen von Windows (CRLF) auch auf "
+"anderen Betriebssystemen geschrieben."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:165
+msgid "Travel Line Color"
+msgstr "Reiselinienfarbe"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:169
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:235
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:262
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:154
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:220
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:84
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:153
+#: AppTools/ToolRulesCheck.py:186
+msgid "Outline"
+msgstr "Gliederung"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:171
+msgid "Set the travel line color for plotted objects."
+msgstr "Legen Sie die Reiselinienfarbe für geplottete Objekte fest."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:186
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:252
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:279
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:170
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:237
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:170
+msgid "Fill"
+msgstr "Füll"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:188
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:254
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:281
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:172
+msgid ""
+"Set the fill color for plotted objects.\n"
+"First 6 digits are the color and the last 2\n"
+"digits are for alpha (transparency) level."
+msgstr ""
+"Legen Sie die Füllfarbe für geplottete Objekte fest.\n"
+"Die ersten 6 Ziffern sind die Farbe und die letzten 2\n"
+"Ziffern sind für Alpha (Transparenz)."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:205
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:298
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:190
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:257
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:189
+msgid "Alpha"
+msgstr "Alpha"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:207
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:300
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:191
+msgid "Set the fill transparency for plotted objects."
+msgstr "Legen Sie die Füllungstransparenz für geplottete Objekte fest."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:231
+msgid "CNCJob Object Color"
+msgstr "CNCJob-Objektfarbe"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:237
+msgid "Set the color for plotted objects."
+msgstr "Legen Sie die Farbe für geplottete Objekte fest."
+
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:27
+msgid "CNC Job Options"
+msgstr "CNC-Auftragsoptionen"
+
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:31
+msgid "Export G-Code"
+msgstr "G-Code exportieren"
+
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:47
+msgid "Prepend to G-Code"
+msgstr "Voranstellen an G-Code"
+
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:56
+msgid ""
+"Type here any G-Code commands you would like to add at the beginning of the "
+"G-Code file."
+msgstr ""
+"Geben Sie hier alle G-Code-Befehle ein\n"
+"die Sie zum Anfang der G-Code-Datei hinzufügen möchten."
+
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:63
+msgid "Append to G-Code"
+msgstr "An G-Code anhängen"
+
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:73
+msgid ""
+"Type here any G-Code commands you would like to append to the generated "
+"file.\n"
+"I.e.: M2 (End of program)"
+msgstr ""
+"Geben Sie hier alle G-Code-Befehle ein, die Sie an die generierte Datei "
+"anhängen möchten.\n"
+"Zum Beispiel: M2 (Programmende)"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:27
+msgid "Excellon Adv. Options"
+msgstr "Excellon erweiterte Optionen"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:34
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:33
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:31
+msgid "Advanced Options"
+msgstr "Erweiterte Optionen"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:36
+msgid ""
+"A list of Excellon advanced parameters.\n"
+"Those parameters are available only for\n"
+"Advanced App. Level."
+msgstr ""
+"Eine Liste der erweiterten Excellon-Parameter.\n"
+"Diese Parameter sind nur für verfügbar\n"
+"Erweiterte App. Niveau."
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:59
+msgid "Toolchange X,Y"
+msgstr "Werkzeugwechsel X, Y"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:61
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:47
+msgid "Toolchange X,Y position."
+msgstr "Werkzeugwechsel X, Y Position."
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:121
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:134
+msgid "Spindle direction"
+msgstr "Drehrichtung"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:123
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:136
+msgid ""
+"This sets the direction that the spindle is rotating.\n"
+"It can be either:\n"
+"- CW = clockwise or\n"
+"- CCW = counter clockwise"
+msgstr ""
+"Hiermit wird die Drehrichtung der Spindel eingestellt.\n"
+"Es kann entweder sein:\n"
+"- CW = im Uhrzeigersinn oder\n"
+"- CCW = gegen den Uhrzeigersinn"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:134
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:148
+msgid "Fast Plunge"
+msgstr "Schneller Sprung"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:136
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:150
+msgid ""
+"By checking this, the vertical move from\n"
+"Z_Toolchange to Z_move is done with G0,\n"
+"meaning the fastest speed available.\n"
+"WARNING: the move is done at Toolchange X,Y coords."
+msgstr ""
+"Wenn Sie dies überprüfen, bewegen Sie sich vertikal\n"
+"Z_Toolchange zu Z_move erfolgt mit G0,\n"
+"Das bedeutet die schnellste verfügbare Geschwindigkeit.\n"
+"WARNUNG: Die Verschiebung erfolgt bei Toolchange X, Y-Koordinaten."
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:143
+msgid "Fast Retract"
+msgstr "Schneller Rückzug"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:145
+msgid ""
+"Exit hole strategy.\n"
+" - When uncheked, while exiting the drilled hole the drill bit\n"
+"will travel slow, with set feedrate (G1), up to zero depth and then\n"
+"travel as fast as possible (G0) to the Z Move (travel height).\n"
+" - When checked the travel from Z cut (cut depth) to Z_move\n"
+"(travel height) is done as fast as possible (G0) in one move."
+msgstr ""
+"Verlassen Sie die Lochstrategie.\n"
+" - Ungeprüft, beim Verlassen des Bohrlochs der Bohrer\n"
+"fährt langsam, mit eingestelltem Vorschub (G1), bis zur Nulltiefe und dann\n"
+"Fahren Sie so schnell wie möglich (G0) bis Z Move (Fahrhöhe).\n"
+" - Wenn Sie den Weg von Z-Schnitt (Schnitttiefe) nach Z_Move prüfen\n"
+"(Fahrhöhe) erfolgt so schnell wie möglich (G0) in einem Zug."
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:32
+msgid "A list of Excellon Editor parameters."
+msgstr "Eine Liste der Excellon Editor-Parameter."
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:40
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:41
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:41
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:194
+msgid "Selection limit"
+msgstr "Auswahllimit"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:42
+msgid ""
+"Set the number of selected Excellon geometry\n"
+"items above which the utility geometry\n"
+"becomes just a selection rectangle.\n"
+"Increases the performance when moving a\n"
+"large number of geometric elements."
+msgstr ""
+"Stellen Sie die Anzahl der ausgewählten Excellon-Geometrien ein\n"
+"Elemente, über denen die Nutzgeometrie\n"
+"wird nur ein Auswahlrechteck.\n"
+"Erhöht die Leistung beim Bewegen von a\n"
+"große Anzahl von geometrischen Elementen."
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:55
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:117
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:123
+msgid "New Dia"
+msgstr "Neuer Durchmesser"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:80
+msgid "Linear Drill Array"
+msgstr "Linearbohrer-Array"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:84
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:232
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:120
+msgid "Linear Direction"
+msgstr "Lineare Richtung"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:126
+msgid "Circular Drill Array"
+msgstr "Rundbohrer-Array"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:130
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:280
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:164
+msgid "Circular Direction"
+msgstr "Kreisrichtung"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:132
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:282
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:166
+msgid ""
+"Direction for circular array.\n"
+"Can be CW = clockwise or CCW = counter clockwise."
+msgstr ""
+"Richtung für kreisförmige Anordnung. \n"
+"Kann CW = Uhrzeigersinn oder CCW = Gegenuhrzeigersinn sein."
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:143
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:293
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:177
+msgid "Circular Angle"
+msgstr "Kreiswinkel"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:196
+msgid ""
+"Angle at which the slot is placed.\n"
+"The precision is of max 2 decimals.\n"
+"Min value is: -359.99 degrees.\n"
+"Max value is: 360.00 degrees."
+msgstr ""
+"Winkel, in dem der Schlitz platziert ist.\n"
+"Die Genauigkeit beträgt maximal 2 Dezimalstellen.\n"
+"Der Mindestwert beträgt: -359,99 Grad.\n"
+"Maximaler Wert ist: 360.00 Grad."
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:215
+msgid "Linear Slot Array"
+msgstr "Lineare Schlitzanordnung"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:276
+msgid "Circular Slot Array"
+msgstr "Kreisschlitz-Array"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:26
+msgid "Excellon Export"
+msgstr "Excellon Export"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:30
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:31
+msgid "Export Options"
+msgstr "Exportoptionen"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:32
+msgid ""
+"The parameters set here are used in the file exported\n"
+"when using the File -> Export -> Export Excellon menu entry."
+msgstr ""
+"Die hier eingestellten Parameter werden in der exportierten Datei verwendet\n"
+"bei Verwendung des Menüeintrags Datei -> Exportieren -> Exportieren von "
+"Excellon."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:41
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:163
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:39
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:42
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:82
+#: AppTools/ToolDistance.py:56 AppTools/ToolDistanceMin.py:49
+#: AppTools/ToolPcbWizard.py:127 AppTools/ToolProperties.py:154
+msgid "Units"
+msgstr "Einheiten"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:43
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:49
+msgid "The units used in the Excellon file."
+msgstr "Die in der Excellon-Datei verwendeten Einheiten."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:46
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:87
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:173
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:47
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:87
+#: AppTools/ToolCalculators.py:61 AppTools/ToolPcbWizard.py:125
+msgid "INCH"
+msgstr "ZOLL"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:47
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:174
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:43
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:48
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:88
+#: AppTools/ToolCalculators.py:62 AppTools/ToolPcbWizard.py:126
+msgid "MM"
+msgstr "MM"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:55
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:56
+msgid "Int/Decimals"
+msgstr "Ganzzahl / Dezimalzahl"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:57
+msgid ""
+"The NC drill files, usually named Excellon files\n"
+"are files that can be found in different formats.\n"
+"Here we set the format used when the provided\n"
+"coordinates are not using period."
+msgstr ""
+"Die NC-Bohrdateien, normalerweise Excellon-Dateien genannt\n"
+"sind Dateien, die in verschiedenen Formaten vorliegen.\n"
+"Hier legen wir das verwendete Format fest\n"
+"Koordinaten verwenden keine Periode."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:69
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:95
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:124
+msgid ""
+"This numbers signify the number of digits in\n"
+"the whole part of Excellon coordinates."
+msgstr ""
+"Diese Zahlen geben die Anzahl der Ziffern in an\n"
+"der gesamte Teil der Excellon-Koordinaten."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:82
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:108
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:137
+msgid ""
+"This numbers signify the number of digits in\n"
+"the decimal part of Excellon coordinates."
+msgstr ""
+"Diese Zahlen geben die Anzahl der Ziffern in an\n"
+"der Dezimalteil der Excellon-Koordinaten."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:91
+msgid "Format"
+msgstr "Format"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:93
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:103
+msgid ""
+"Select the kind of coordinates format used.\n"
+"Coordinates can be saved with decimal point or without.\n"
+"When there is no decimal point, it is required to specify\n"
+"the number of digits for integer part and the number of decimals.\n"
+"Also it will have to be specified if LZ = leading zeros are kept\n"
+"or TZ = trailing zeros are kept."
+msgstr ""
+"Wählen Sie das verwendete Koordinatenformat aus.\n"
+"Koordinaten können mit oder ohne Dezimalpunkt gespeichert werden.\n"
+"Wenn kein Dezimalzeichen vorhanden ist, muss dies angegeben werden\n"
+"Die Anzahl der Ziffern für den ganzzahligen Teil und die Anzahl der "
+"Dezimalstellen.\n"
+"Es muss auch angegeben werden, wenn LZ = führende Nullen beibehalten werden\n"
+"oder TZ = nachfolgende Nullen bleiben erhalten."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:100
+msgid "Decimal"
+msgstr "Dezimal"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:101
+msgid "No-Decimal"
+msgstr "Keine Dezimalzahl"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:114
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:145
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:96
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:97
+msgid "Zeros"
+msgstr "Nullen"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:117
+msgid ""
+"This sets the type of Excellon zeros.\n"
+"If LZ then Leading Zeros are kept and\n"
+"Trailing Zeros are removed.\n"
+"If TZ is checked then Trailing Zeros are kept\n"
+"and Leading Zeros are removed."
+msgstr ""
+"Hiermit wird der Typ der Excellon-Nullen festgelegt.\n"
+"Wenn LZ, dann werden führende Nullen beibehalten und\n"
+"Nachgestellte Nullen werden entfernt.\n"
+"Wenn TZ aktiviert ist, werden nachfolgende Nullen beibehalten\n"
+"und führende Nullen werden entfernt."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:124
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:158
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:106
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:107
+#: AppTools/ToolPcbWizard.py:111
+msgid "LZ"
+msgstr "LZ"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:125
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:159
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:107
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:108
+#: AppTools/ToolPcbWizard.py:112
+msgid "TZ"
+msgstr "TZ"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:127
+msgid ""
+"This sets the default type of Excellon zeros.\n"
+"If LZ then Leading Zeros are kept and\n"
+"Trailing Zeros are removed.\n"
+"If TZ is checked then Trailing Zeros are kept\n"
+"and Leading Zeros are removed."
+msgstr ""
+"Hiermit wird der Standardtyp von Excellon-Nullen festgelegt.\n"
+"Wenn LZ, dann werden führende Nullen beibehalten und\n"
+"Nachgestellte Nullen werden entfernt.\n"
+"Wenn TZ aktiviert ist, werden nachfolgende Nullen beibehalten\n"
+"und führende Nullen werden entfernt."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:137
+msgid "Slot type"
+msgstr "Schlitze-Typ"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:140
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:150
+msgid ""
+"This sets how the slots will be exported.\n"
+"If ROUTED then the slots will be routed\n"
+"using M15/M16 commands.\n"
+"If DRILLED(G85) the slots will be exported\n"
+"using the Drilled slot command (G85)."
+msgstr ""
+"Hier legen Sie fest, wie die Slots exportiert werden.\n"
+"Wenn geroutet, werden die Slots geroutet\n"
+"mit M15 / M16 Befehlen.\n"
+"Beim Bohren (G85) werden die Steckplätze exportiert\n"
+"Verwenden Sie den Befehl Bohrschlitz (G85)."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:147
+msgid "Routed"
+msgstr "Geroutet"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:148
+msgid "Drilled(G85)"
+msgstr "Gebohrt (G85)"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:29
+msgid "Excellon General"
+msgstr "Excellon Allgemeines"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:62
+msgid "Excellon Format"
+msgstr "Excellon Format"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:64
+msgid ""
+"The NC drill files, usually named Excellon files\n"
+"are files that can be found in different formats.\n"
+"Here we set the format used when the provided\n"
+"coordinates are not using period.\n"
+"\n"
+"Possible presets:\n"
+"\n"
+"PROTEUS 3:3 MM LZ\n"
+"DipTrace 5:2 MM TZ\n"
+"DipTrace 4:3 MM LZ\n"
+"\n"
+"EAGLE 3:3 MM TZ\n"
+"EAGLE 4:3 MM TZ\n"
+"EAGLE 2:5 INCH TZ\n"
+"EAGLE 3:5 INCH TZ\n"
+"\n"
+"ALTIUM 2:4 INCH LZ\n"
+"Sprint Layout 2:4 INCH LZ\n"
+"KiCAD 3:5 INCH TZ"
+msgstr ""
+"Die NC-Bohrdateien, normalerweise Excellon-Dateien genannt\n"
+"sind Dateien, die in verschiedenen Formaten vorliegen.\n"
+"Hier legen wir das verwendete Format fest\n"
+"Koordinaten verwenden keine Periode.\n"
+"\n"
+"Mögliche Voreinstellungen:\n"
+"\n"
+"PROTEUS 3: 3 MM LZ\n"
+"DipTrace 5: 2 MM TZ\n"
+"DipTrace 4: 3 MM LZ\n"
+"\n"
+"Eagle 3: 3 MM TZ\n"
+"Eagle 4: 3 MM TZ\n"
+"Eagle 2: 5 ZOLL TZ\n"
+"Eagle 3: 5 ZOLL TZ\n"
+"\n"
+"ALTIUM 2: 4 ZOLL LZ\n"
+"Sprint-Layout 2: 4 ZOLL LZ\n"
+"KiCAD 3: 5 ZOLL TZ"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:88
+msgid "Default values for INCH are 2:4"
+msgstr "Die Standardwerte für ZOLL sind 2: 4"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:116
+msgid "METRIC"
+msgstr "METRISCH"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:117
+msgid "Default values for METRIC are 3:3"
+msgstr "Die Standardwerte für METRISCH sind 3: 3"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:148
+msgid ""
+"This sets the type of Excellon zeros.\n"
+"If LZ then Leading Zeros are kept and\n"
+"Trailing Zeros are removed.\n"
+"If TZ is checked then Trailing Zeros are kept\n"
+"and Leading Zeros are removed.\n"
+"\n"
+"This is used when there is no information\n"
+"stored in the Excellon file."
+msgstr ""
+"Hiermit wird der Typ der Excellon-Nullen festgelegt.\n"
+"Wenn LZ, dann werden führende Nullen beibehalten und\n"
+"Nachgestellte Nullen werden entfernt.\n"
+"Wenn TZ aktiviert ist, werden nachfolgende Nullen beibehalten\n"
+"und führende Nullen werden entfernt.\n"
+"\n"
+"Dies wird verwendet, wenn keine Informationen vorliegen\n"
+"in der Excellon-Datei gespeichert."
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:166
+msgid ""
+"This sets the default units of Excellon files.\n"
+"If it is not detected in the parsed file the value here\n"
+"will be used.Some Excellon files don't have an header\n"
+"therefore this parameter will be used."
+msgstr ""
+"Dadurch werden die Standardeinheiten von Excellon-Dateien festgelegt.\n"
+"Wird in der geparsten Datei der Wert hier nicht gefunden\n"
+"wird verwendet. Einige Excellon-Dateien haben keinen Header\n"
+"Daher wird dieser Parameter verwendet."
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:176
+msgid ""
+"This sets the units of Excellon files.\n"
+"Some Excellon files don't have an header\n"
+"therefore this parameter will be used."
+msgstr ""
+"Damit werden die Einheiten von Excellon-Dateien festgelegt.\n"
+"Einige Excellon-Dateien haben keinen Header\n"
+"Daher wird dieser Parameter verwendet."
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:184
+msgid "Update Export settings"
+msgstr "Exporteinstellungen aktual"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:201
+msgid "Excellon Optimization"
+msgstr "Optimierung der Excellons"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:204
+msgid "Algorithm:"
+msgstr "Algorithmus:"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:206
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:222
+msgid ""
+"This sets the optimization type for the Excellon drill path.\n"
+"If <> is checked then Google OR-Tools algorithm with\n"
+"MetaHeuristic Guided Local Path is used. Default search time is 3sec.\n"
+"If <> is checked then Google OR-Tools Basic algorithm is used.\n"
+"If <> is checked then Travelling Salesman algorithm is used for\n"
+"drill path optimization.\n"
+"\n"
+"If this control is disabled, then FlatCAM works in 32bit mode and it uses\n"
+"Travelling Salesman algorithm for path optimization."
+msgstr ""
+"Hiermit wird der Optimierungstyp für den Excellon-Bohrpfad festgelegt.\n"
+"Wenn << MetaHeuristic >> aktiviert ist, verwenden Sie den Google OR-Tools-"
+"Algorithmus\n"
+"Es wird ein metaHeuristisch geführter lokaler Pfad verwendet. Die "
+"Standardsuchzeit beträgt 3 Sekunden.\n"
+"Wenn << Basic >> aktiviert ist, wird der Google OR-Tools Basic-Algorithmus "
+"verwendet.\n"
+"Wenn << TSA >> markiert ist, wird der Traveling Salesman-Algorithmus für "
+"verwendet\n"
+"Bohrpfadoptimierung.\n"
+"\n"
+"Wenn dieses Steuerelement deaktiviert ist, arbeitet FlatCAM im 32-Bit-Modus "
+"und verwendet\n"
+"Travelling Salesman-Algorithmus zur Pfadoptimierung."
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:217
+msgid "MetaHeuristic"
+msgstr "MetaHeuristic"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:218
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:104
+#: AppObjects/FlatCAMExcellon.py:683 AppObjects/FlatCAMGeometry.py:561
+#: AppObjects/FlatCAMGerber.py:251
+msgid "Basic"
+msgstr "Basis"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:219
+msgid "TSA"
+msgstr "TSA"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:236
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:245
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:237
+msgid "Duration"
+msgstr "Dauer"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:239
+msgid ""
+"When OR-Tools Metaheuristic (MH) is enabled there is a\n"
+"maximum threshold for how much time is spent doing the\n"
+"path optimization. This max duration is set here.\n"
+"In seconds."
+msgstr ""
+"Wenn OR-Tools Metaheuristic (MH) aktiviert ist, wird ein angezeigt\n"
+"maximale Schwelle für die Zeit, die das\n"
+"Pfadoptimierung. Diese maximale Dauer wird hier eingestellt.\n"
+"In Sekunden."
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:258
+msgid "Excellon Object Color"
+msgstr "Excellon-Objektfarbe"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:264
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:86
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:155
+msgid "Set the line color for plotted objects."
+msgstr "Legen Sie die Linienfarbe für geplottete Objekte fest."
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:29
+msgid "Excellon Options"
+msgstr "Excellon-Optionen"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:33
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:34
+msgid "Create CNC Job"
+msgstr "CNC-Job erstellen"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:35
+msgid ""
+"Parameters used to create a CNC Job object\n"
+"for this drill object."
+msgstr ""
+"Parameter, die zum Erstellen eines CNC-Auftragsobjekts verwendet werden\n"
+"für dieses Bohrobjekt."
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:152
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:121
+msgid "Tool change"
+msgstr "Werkzeugwechsel"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:236
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:232
+msgid "Enable Dwell"
+msgstr "Verweilzeit aktivieren"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:259
+msgid ""
+"The preprocessor JSON file that dictates\n"
+"Gcode output."
+msgstr ""
+"Die Postprozessor-JSON-Datei, die diktiert\n"
+"Gcode-Ausgabe."
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:270
+msgid "Gcode"
+msgstr "Gcode"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:272
+msgid ""
+"Choose what to use for GCode generation:\n"
+"'Drills', 'Slots' or 'Both'.\n"
+"When choosing 'Slots' or 'Both', slots will be\n"
+"converted to drills."
+msgstr ""
+"Wählen Sie aus, was für die GCode-Generierung verwendet werden soll:\n"
+"'Bohrer', 'Schlüssel' oder 'Beide'.\n"
+"Wenn Sie \"Schlüssel\" oder \"Beide\" wählen, werden die Schlüssel "
+"angezeigt\n"
+"in Bohrer umgewandelt."
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:288
+msgid "Mill Holes"
+msgstr "Löcher bohren"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:290
+msgid "Create Geometry for milling holes."
+msgstr "Erstellen Sie Geometrie zum Fräsen von Löchern."
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:294
+msgid "Drill Tool dia"
+msgstr "Bohrwerkzeugs Durchm"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:305
+msgid "Slot Tool dia"
+msgstr "Schlitzwerkzeug Durchmesser"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:307
+msgid ""
+"Diameter of the cutting tool\n"
+"when milling slots."
+msgstr ""
+"Durchmesser des Schneidewerkzeugs\n"
+"beim Fräsen von Schlitzen."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:28
+msgid "App Settings"
+msgstr "App Einstellungen"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:49
+msgid "Grid Settings"
+msgstr "Rastereinstellungen"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:53
+msgid "X value"
+msgstr "X-Wert"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:55
+msgid "This is the Grid snap value on X axis."
+msgstr "Dies ist der Rasterfangwert auf der X-Achse."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:65
+msgid "Y value"
+msgstr "Y-Wert"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:67
+msgid "This is the Grid snap value on Y axis."
+msgstr "Dies ist der Rasterfangwert auf der Y-Achse."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:77
+msgid "Snap Max"
+msgstr "Fang Max"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:92
+msgid "Workspace Settings"
+msgstr "Arbeitsbereichseinstellungen"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:95
+msgid "Active"
+msgstr "Aktiv"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:97
+msgid ""
+"Draw a delimiting rectangle on canvas.\n"
+"The purpose is to illustrate the limits for our work."
+msgstr ""
+"Zeichnen Sie ein begrenzendes Rechteck auf die Leinwand.\n"
+"Ziel ist es, die Grenzen unserer Arbeit aufzuzeigen."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:105
+msgid ""
+"Select the type of rectangle to be used on canvas,\n"
+"as valid workspace."
+msgstr ""
+"Wählen Sie den Typ des Rechtecks für die Leinwand aus.\n"
+"als gültiger Arbeitsbereich."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:171
+msgid "Orientation"
+msgstr "Orientierung"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:172
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:239
+#: AppTools/ToolFilm.py:405
+msgid ""
+"Can be:\n"
+"- Portrait\n"
+"- Landscape"
+msgstr ""
+"Eines von\n"
+"- Hochformat\n"
+"- Querformat"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:176
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:243
+#: AppTools/ToolFilm.py:409
+msgid "Portrait"
+msgstr "Hochformat"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:177
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:244
+#: AppTools/ToolFilm.py:410
+msgid "Landscape"
+msgstr "Querformat"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:201
+msgid "Notebook"
+msgstr "Notizbuch"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:203
+#, fuzzy
+#| msgid ""
+#| "This sets the font size for the elements found in the Notebook.\n"
+#| "The notebook is the collapsible area in the left side of the GUI,\n"
+#| "and include the Project, Selected and Tool tabs."
+msgid ""
+"This sets the font size for the elements found in the Notebook.\n"
+"The notebook is the collapsible area in the left side of the AppGUI,\n"
+"and include the Project, Selected and Tool tabs."
+msgstr ""
+"Hiermit wird die Schriftgröße für die im Notizbuch enthaltenen Elemente "
+"festgelegt.\n"
+"Das Notizbuch ist der ausblendbare Bereich auf der linken Seite der "
+"Benutzeroberfläche.\n"
+"und schließen Sie die Registerkarten Projekt, Ausgewählt und Werkzeug ein."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:222
+msgid "Axis"
+msgstr "Achse"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:224
+msgid "This sets the font size for canvas axis."
+msgstr "Hiermit wird die Schriftgröße für die Zeichenbereichsachse festgelegt."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:241
+msgid "Textbox"
+msgstr "Textfeld"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:243
+#, fuzzy
+#| msgid ""
+#| "This sets the font size for the Textbox GUI\n"
+#| "elements that are used in FlatCAM."
+msgid ""
+"This sets the font size for the Textbox AppGUI\n"
+"elements that are used in FlatCAM."
+msgstr ""
+"Hiermit wird die Schriftgröße für die Textbox-GUI festgelegt\n"
+"Elemente, die in FlatCAM verwendet werden."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:261
+msgid "HUD"
+msgstr ""
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:263
+#, fuzzy
+#| msgid "This sets the font size for canvas axis."
+msgid "This sets the font size for the Heads Up Display."
+msgstr "Hiermit wird die Schriftgröße für die Zeichenbereichsachse festgelegt."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:288
+msgid "Mouse Settings"
+msgstr "Mauseinstellungen"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:292
+msgid "Cursor Shape"
+msgstr "Mauszeiger Form"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:294
+msgid ""
+"Choose a mouse cursor shape.\n"
+"- Small -> with a customizable size.\n"
+"- Big -> Infinite lines"
+msgstr ""
+"Wählen Sie eine Mauszeigerform.\n"
+"- Klein -> mit einer anpassbaren Größe.\n"
+"- Groß -> Unendliche Linien"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:300
+msgid "Small"
+msgstr "Klein"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:301
+msgid "Big"
+msgstr "Groß"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:308
+msgid "Cursor Size"
+msgstr "Mauszeigergröße"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:310
+msgid "Set the size of the mouse cursor, in pixels."
+msgstr "Stellen Sie die Größe des Mauszeigers in Pixel ein."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:321
+msgid "Cursor Width"
+msgstr "Mauszeiger Breite"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:323
+msgid "Set the line width of the mouse cursor, in pixels."
+msgstr "Legen Sie die Linienbreite des Mauszeigers in Pixel fest."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:334
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:341
+msgid "Cursor Color"
+msgstr "Mauszeigerfarbe"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:336
+msgid "Check this box to color mouse cursor."
+msgstr "Aktivieren Sie dieses Kontrollkästchen, um den Mauszeiger einzufärben."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:343
+msgid "Set the color of the mouse cursor."
+msgstr "Stellen Sie die Farbe des Mauszeigers ein."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:366
+msgid "Pan Button"
+msgstr "Pan-Taste"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:368
+msgid ""
+"Select the mouse button to use for panning:\n"
+"- MMB --> Middle Mouse Button\n"
+"- RMB --> Right Mouse Button"
+msgstr ""
+"Wählen Sie die Maustaste aus, die Sie zum Verschieben verwenden möchten:\n"
+"- MMB -> Mittlere Maustaste\n"
+"- RMB -> Rechte Maustaste"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:372
+msgid "MMB"
+msgstr "MMB"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:373
+msgid "RMB"
+msgstr "RMB"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:379
+msgid "Multiple Selection"
+msgstr "Mehrfachauswahl"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:381
+msgid "Select the key used for multiple selection."
+msgstr "Wählen Sie den Schlüssel für die Mehrfachauswahl aus."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:383
+msgid "CTRL"
+msgstr "STRG"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:384
+msgid "SHIFT"
+msgstr "SHIFT"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:395
+msgid "Delete object confirmation"
+msgstr "Objektbestätigung löschen"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:397
+msgid ""
+"When checked the application will ask for user confirmation\n"
+"whenever the Delete object(s) event is triggered, either by\n"
+"menu shortcut or key shortcut."
+msgstr ""
+"Wenn diese Option aktiviert ist, werden Sie von der Anwendung um eine\n"
+"Bestätigung des Benutzers gebeten Jedes Mal, wenn das Ereignis Objekt (e)\n"
+"löschen ausgelöst wird, entweder durch\n"
+"Menüverknüpfung oder Tastenkombination."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:404
+msgid "\"Open\" behavior"
+msgstr "\"Offen\" -Verhalten"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:406
+msgid ""
+"When checked the path for the last saved file is used when saving files,\n"
+"and the path for the last opened file is used when opening files.\n"
+"\n"
+"When unchecked the path for opening files is the one used last: either the\n"
+"path for saving files or the path for opening files."
+msgstr ""
+"Wenn diese Option aktiviert ist, wird beim Speichern der Dateien der Pfad "
+"für die zuletzt gespeicherte Datei verwendet.\n"
+"und der Pfad für die zuletzt geöffnete Datei wird beim Öffnen von Dateien "
+"verwendet.\n"
+"\n"
+"Wenn das Kontrollkästchen deaktiviert ist, wird der Pfad zum Öffnen der "
+"Dateien zuletzt verwendet: entweder der Pfad\n"
+"Pfad zum Speichern von Dateien oder Pfad zum Öffnen von Dateien."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:415
+msgid "Enable ToolTips"
+msgstr "QuickInfos aktivieren"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:417
+msgid ""
+"Check this box if you want to have toolTips displayed\n"
+"when hovering with mouse over items throughout the App."
+msgstr ""
+"Aktivieren Sie dieses Kontrollkästchen, wenn QuickInfos angezeigt werden "
+"sollen\n"
+"wenn Sie mit der Maus über Elemente in der App fahren."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:424
+msgid "Allow Machinist Unsafe Settings"
+msgstr "Unsichere Maschineneinstellungen erlauben"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:426
+msgid ""
+"If checked, some of the application settings will be allowed\n"
+"to have values that are usually unsafe to use.\n"
+"Like Z travel negative values or Z Cut positive values.\n"
+"It will applied at the next application start.\n"
+"<>: Don't change this unless you know what you are doing !!!"
+msgstr ""
+"Wenn gewählt werden Applikationseinstellungen erlaubt,\n"
+"die im normalen Betrieb als unsicher gelten.\n"
+"Zum Beispiel negative Werte für schnelle Z Bewegungen, oder \n"
+"Positive Z-Werte bei schneidvorgängen.\n"
+"Wird beim Nächsten Programmstart wirksam\n"
+" << ACHTUNG>>: Ändern Sie das nicht, wenn Sie nicht wissen was Sie tun!"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:438
+msgid "Bookmarks limit"
+msgstr "Lesezeichenlimit"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:440
+msgid ""
+"The maximum number of bookmarks that may be installed in the menu.\n"
+"The number of bookmarks in the bookmark manager may be greater\n"
+"but the menu will hold only so much."
+msgstr ""
+"Die maximale Anzahl von Lesezeichen, die im Menü installiert werden dürfen.\n"
+"Die Anzahl der Lesezeichen im Lesezeichen-Manager ist möglicherweise größer\n"
+"Aber das Menü wird nur so viel enthalten."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:449
+msgid "Activity Icon"
+msgstr "Aktivitätssymbol"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:451
+msgid "Select the GIF that show activity when FlatCAM is active."
+msgstr ""
+"Wählen Sie das GIF aus, das die Aktivität anzeigt, wenn FlatCAM aktiv ist."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:29
+msgid "App Preferences"
+msgstr "App-Einstellungen"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:40
+msgid ""
+"The default value for FlatCAM units.\n"
+"Whatever is selected here is set every time\n"
+"FlatCAM is started."
+msgstr ""
+"Der Standardwert für FlatCAM-Einheiten.\n"
+"Was hier ausgewählt wird, wird jedes Mal eingestellt\n"
+"FLatCAM wird gestartet."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:44
+msgid "IN"
+msgstr "ZOLL"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:50
+msgid "Precision MM"
+msgstr "Präzision in mm"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:52
+msgid ""
+"The number of decimals used throughout the application\n"
+"when the set units are in METRIC system.\n"
+"Any change here require an application restart."
+msgstr ""
+"Die Anzahl der Nachkommastellen die in der gesamten Applikation verwendet "
+"werden\n"
+"wenn das Metrische Einheitensystem verwendet wird.\n"
+"Jede Änderung erfordert einen Neustart der Applikation."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:64
+msgid "Precision INCH"
+msgstr "Präzision (Zoll)"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:66
+msgid ""
+"The number of decimals used throughout the application\n"
+"when the set units are in INCH system.\n"
+"Any change here require an application restart."
+msgstr ""
+"Die Anzahl der Nachkommastellen die in der gesamten Applikation verwendet "
+"werden\n"
+"wenn das Imperiale (Inches) Einheitensystem verwendet wird.\n"
+"Jede Änderung erfordert einen Neustart der Applikation."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:78
+msgid "Graphic Engine"
+msgstr "Grafik-Engine"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:79
+msgid ""
+"Choose what graphic engine to use in FlatCAM.\n"
+"Legacy(2D) -> reduced functionality, slow performance but enhanced "
+"compatibility.\n"
+"OpenGL(3D) -> full functionality, high performance\n"
+"Some graphic cards are too old and do not work in OpenGL(3D) mode, like:\n"
+"Intel HD3000 or older. In this case the plot area will be black therefore\n"
+"use the Legacy(2D) mode."
+msgstr ""
+"Wählen Sie aus, welche Grafik-Engine in FlatCAM verwendet werden soll.\n"
+"Legacy (2D) -> reduzierte Funktionalität, langsame Leistung, aber "
+"verbesserte Kompatibilität.\n"
+"OpenGL (3D) -> volle Funktionalität, hohe Leistung\n"
+"Einige Grafikkarten sind zu alt und funktionieren nicht im OpenGL (3D) -"
+"Modus. Beispiel:\n"
+"Intel HD3000 oder älter. In diesem Fall ist der Plotbereich daher schwarz\n"
+"Verwenden Sie den Legacy (2D) -Modus."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:85
+msgid "Legacy(2D)"
+msgstr "Legacy (2D)"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:86
+msgid "OpenGL(3D)"
+msgstr "OpenGL (3D)"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:98
+msgid "APP. LEVEL"
+msgstr "Darstellung"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:99
+msgid ""
+"Choose the default level of usage for FlatCAM.\n"
+"BASIC level -> reduced functionality, best for beginner's.\n"
+"ADVANCED level -> full functionality.\n"
+"\n"
+"The choice here will influence the parameters in\n"
+"the Selected Tab for all kinds of FlatCAM objects."
+msgstr ""
+"Wählen Sie die Standardbenutzungsstufe für FlatCAM.\n"
+"BASIC-Level -> reduzierte Funktionalität, am besten für Anfänger.\n"
+"ERWEITERTE Stufe -> volle Funktionalität.\n"
+"\n"
+"Die Auswahl hier beeinflusst die Parameter in\n"
+"Die Registerkarte Ausgewählt für alle Arten von FlatCAM-Objekten."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:105
+#: AppObjects/FlatCAMExcellon.py:696 AppObjects/FlatCAMGeometry.py:582
+#: AppObjects/FlatCAMGerber.py:278
+msgid "Advanced"
+msgstr "Erweitert"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:111
+msgid "Portable app"
+msgstr "Portable Anwendung"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:112
+msgid ""
+"Choose if the application should run as portable.\n"
+"\n"
+"If Checked the application will run portable,\n"
+"which means that the preferences files will be saved\n"
+"in the application folder, in the lib\\config subfolder."
+msgstr ""
+"Wählen Sie aus, ob die Anwendung als portabel ausgeführt werden soll.\n"
+"\n"
+"Wenn diese Option aktiviert ist, wird die Anwendung portabel ausgeführt.\n"
+"Dies bedeutet, dass die Voreinstellungsdateien gespeichert werden\n"
+"Im Anwendungsordner, im Unterordner lib \\ config."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:125
+msgid "Languages"
+msgstr "Sprachen"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:126
+msgid "Set the language used throughout FlatCAM."
+msgstr "Stellen Sie die Sprache ein, die in FlatCAM verwendet wird."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:132
+msgid "Apply Language"
+msgstr "Sprache anwend"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:133
+msgid ""
+"Set the language used throughout FlatCAM.\n"
+"The app will restart after click."
+msgstr ""
+"Stellen Sie die in FlatCAM verwendete Sprache ein.\n"
+"Die App wird nach dem Klicken neu gestartet."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:147
+msgid "Startup Settings"
+msgstr "Starteinstellungen"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:151
+msgid "Splash Screen"
+msgstr "Begrüßungsbildschirm"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:153
+msgid "Enable display of the splash screen at application startup."
+msgstr ""
+"Aktivieren Sie die Anzeige des Begrüßungsbildschirms beim Start der "
+"Anwendung."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:165
+msgid "Sys Tray Icon"
+msgstr "Systray-Symbol"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:167
+msgid "Enable display of FlatCAM icon in Sys Tray."
+msgstr "Anzeige des FlatCAM-Symbols in Systray aktivieren."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:172
+msgid "Show Shell"
+msgstr "Shell anzeigen"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:174
+msgid ""
+"Check this box if you want the shell to\n"
+"start automatically at startup."
+msgstr ""
+"Aktivieren Sie dieses Kontrollkästchen, wenn Sie die Shell verwenden "
+"möchten\n"
+"Beim Start automatisch starten."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:181
+msgid "Show Project"
+msgstr "Projekt anzeigen"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:183
+msgid ""
+"Check this box if you want the project/selected/tool tab area to\n"
+"to be shown automatically at startup."
+msgstr ""
+"Aktivieren Sie dieses Kontrollkästchen, wenn der\n"
+"Bereich Projekt / Ausgewähltes / Werkzeugregister\n"
+"angezeigt werden soll\n"
+"beim Start automatisch angezeigt werden."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:189
+msgid "Version Check"
+msgstr "Versionsprüfung"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:191
+msgid ""
+"Check this box if you want to check\n"
+"for a new version automatically at startup."
+msgstr ""
+"Aktivieren Sie dieses Kontrollkästchen,\n"
+"wenn Sie das Kontrollkästchen aktivieren möchten\n"
+"für eine neue Version automatisch beim Start."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:198
+msgid "Send Statistics"
+msgstr "Statistiken senden"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:200
+msgid ""
+"Check this box if you agree to send anonymous\n"
+"stats automatically at startup, to help improve FlatCAM."
+msgstr ""
+"Aktivieren Sie dieses Kontrollkästchen, wenn Sie der anonymen Nachricht "
+"zustimmen\n"
+"wird beim Start automatisch aktualisiert, um FlatCAM zu verbessern."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:214
+msgid "Workers number"
+msgstr "Thread Anzahl"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:216
+msgid ""
+"The number of Qthreads made available to the App.\n"
+"A bigger number may finish the jobs more quickly but\n"
+"depending on your computer speed, may make the App\n"
+"unresponsive. Can have a value between 2 and 16.\n"
+"Default value is 2.\n"
+"After change, it will be applied at next App start."
+msgstr ""
+"Die Anzahl der für die App verfügbaren Qthreads.\n"
+"Eine größere Anzahl kann die Jobs, \n"
+"anhängig von der Geschwindigkeit Ihres Computers, schneller ausführen.\n"
+"Kann einen Wert zwischen 2 und 16 haben.\n"
+"Der Standardwert ist 2.\n"
+"Nach dem Ändern wird es beim nächsten Start der App angewendet."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:230
+msgid "Geo Tolerance"
+msgstr "Geo-Toleranz"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:232
+msgid ""
+"This value can counter the effect of the Circle Steps\n"
+"parameter. Default value is 0.005.\n"
+"A lower value will increase the detail both in image\n"
+"and in Gcode for the circles, with a higher cost in\n"
+"performance. Higher value will provide more\n"
+"performance at the expense of level of detail."
+msgstr ""
+"This value can counter the effect of the Circle Steps\n"
+"parameter. Default value is 0.005.\n"
+"A lower value will increase the detail both in image\n"
+"and in Gcode for the circles, with a higher cost in\n"
+"performance. Higher value will provide more\n"
+"performance at the expense of level of detail."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:252
+msgid "Save Settings"
+msgstr "Einstellungen speichern"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:256
+msgid "Save Compressed Project"
+msgstr "Speichern Sie das komprimierte Projekt"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:258
+msgid ""
+"Whether to save a compressed or uncompressed project.\n"
+"When checked it will save a compressed FlatCAM project."
+msgstr ""
+"Gibt an, ob ein komprimiertes oder unkomprimiertes Projekt gespeichert "
+"werden soll.\n"
+"Wenn diese Option aktiviert ist, wird ein komprimiertes FlatCAM-Projekt "
+"gespeichert."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:267
+msgid "Compression"
+msgstr "Kompression"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:269
+msgid ""
+"The level of compression used when saving\n"
+"a FlatCAM project. Higher value means better compression\n"
+"but require more RAM usage and more processing time."
+msgstr ""
+"Die beim Speichern verwendete Komprimierungsstufe\n"
+"ein FlatCAM-Projekt. Ein höherer Wert bedeutet eine bessere Komprimierung\n"
+"erfordern jedoch mehr RAM-Auslastung und mehr Verarbeitungszeit."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:280
+msgid "Enable Auto Save"
+msgstr "Aktiv. Sie die auto Speicherung"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:282
+msgid ""
+"Check to enable the autosave feature.\n"
+"When enabled, the application will try to save a project\n"
+"at the set interval."
+msgstr ""
+"Aktivieren Sie diese Option, um die automatische Speicherfunktion zu "
+"aktivieren.\n"
+"Wenn diese Option aktiviert ist, versucht die Anwendung, ein Projekt zu "
+"speichern\n"
+"im eingestellten Intervall."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:292
+msgid "Interval"
+msgstr "Intervall"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:294
+msgid ""
+"Time interval for autosaving. In milliseconds.\n"
+"The application will try to save periodically but only\n"
+"if the project was saved manually at least once.\n"
+"While active, some operations may block this feature."
+msgstr ""
+"Zeitintervall für die automatische Speicherung. In Millisekunden.\n"
+"Die Anwendung versucht regelmäßig, aber nur zu speichern\n"
+"wenn das Projekt mindestens einmal manuell gespeichert wurde.\n"
+"Während der Aktivierung können einige Vorgänge diese Funktion blockieren."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:310
+msgid "Text to PDF parameters"
+msgstr "Text zu PDF-Parametern"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:312
+msgid "Used when saving text in Code Editor or in FlatCAM Document objects."
+msgstr ""
+"Wird beim Speichern von Text im Code-Editor oder in FlatCAM-Dokumentobjekten "
+"verwendet."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:321
+msgid "Top Margin"
+msgstr "Oberer Rand"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:323
+msgid "Distance between text body and the top of the PDF file."
+msgstr "Abstand zwischen Textkörper und dem oberen Rand der PDF-Datei."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:334
+msgid "Bottom Margin"
+msgstr "Unterer Rand"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:336
+msgid "Distance between text body and the bottom of the PDF file."
+msgstr "Abstand zwischen Textkörper und dem unteren Rand der PDF-Datei."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:347
+msgid "Left Margin"
+msgstr "Linker Rand"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:349
+msgid "Distance between text body and the left of the PDF file."
+msgstr "Abstand zwischen Textkörper und der linken Seite der PDF-Datei."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:360
+msgid "Right Margin"
+msgstr "Rechter Rand"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:362
+msgid "Distance between text body and the right of the PDF file."
+msgstr "Abstand zwischen Textkörper und der rechten Seite der PDF-Datei."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:26
+msgid "GUI Preferences"
+msgstr "GUI-Einstellungen"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:36
+msgid "Theme"
+msgstr "Thema"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:38
+msgid ""
+"Select a theme for FlatCAM.\n"
+"It will theme the plot area."
+msgstr ""
+"Wählen Sie ein Thema für FlatCAM.\n"
+"Es wird den Handlungsbereich thematisieren."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:43
+msgid "Light"
+msgstr "Licht"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:44
+msgid "Dark"
+msgstr "Dunkel"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:51
+msgid "Use Gray Icons"
+msgstr "Verwenden Sie graue Symbole"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:53
+msgid ""
+"Check this box to use a set of icons with\n"
+"a lighter (gray) color. To be used when a\n"
+"full dark theme is applied."
+msgstr ""
+"Aktivieren Sie dieses Kontrollkästchen, um eine Reihe von Symbolen mit zu "
+"verwenden\n"
+"eine hellere (graue) Farbe. Zu verwenden, wenn a\n"
+"Volldunkles Thema wird angewendet."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:73
+msgid "Layout"
+msgstr "Layout"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:75
+msgid ""
+"Select an layout for FlatCAM.\n"
+"It is applied immediately."
+msgstr ""
+"Wählen Sie ein Layout für FlatCAM.\n"
+"Es wird sofort angewendet."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:95
+msgid "Style"
+msgstr "Stil"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:97
+msgid ""
+"Select an style for FlatCAM.\n"
+"It will be applied at the next app start."
+msgstr ""
+"Wählen Sie einen Stil für FlatCAM.\n"
+"Es wird beim nächsten Start der App angewendet."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:111
+msgid "Activate HDPI Support"
+msgstr "Aktivieren Sie die HDPI-Unterstützung"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:113
+msgid ""
+"Enable High DPI support for FlatCAM.\n"
+"It will be applied at the next app start."
+msgstr ""
+"Aktivieren Sie die High DPI-Unterstützung für FlatCAM.\n"
+"Es wird beim nächsten Start der App angewendet."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:127
+msgid "Display Hover Shape"
+msgstr "Schwebeflugform anzeigen"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:129
+msgid ""
+"Enable display of a hover shape for FlatCAM objects.\n"
+"It is displayed whenever the mouse cursor is hovering\n"
+"over any kind of not-selected object."
+msgstr ""
+"Anzeige der Hover-Form für FlatCAM-Objekte aktivieren.\n"
+"Es wird angezeigt, wenn sich der Mauszeiger in der Maus befindet\n"
+"über jede Art von nicht ausgewähltem Objekt."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:136
+msgid "Display Selection Shape"
+msgstr "Auswahlform anzeigen"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:138
+msgid ""
+"Enable the display of a selection shape for FlatCAM objects.\n"
+"It is displayed whenever the mouse selects an object\n"
+"either by clicking or dragging mouse from left to right or\n"
+"right to left."
+msgstr ""
+"Aktivieren Sie die Anzeige einer Auswahlform für FlatCAM-Objekte.\n"
+"Es wird angezeigt, wenn die Maus ein Objekt auswählt\n"
+"entweder durch Klicken oder Ziehen der Maus von links nach rechts oder\n"
+"rechts nach links."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:151
+msgid "Left-Right Selection Color"
+msgstr "Links-Rechts-Auswahlfarbe"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:156
+msgid "Set the line color for the 'left to right' selection box."
+msgstr ""
+"Legen Sie die Linienfarbe für das Auswahlfeld \"von links nach rechts\" fest."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:172
+msgid ""
+"Set the fill color for the selection box\n"
+"in case that the selection is done from left to right.\n"
+"First 6 digits are the color and the last 2\n"
+"digits are for alpha (transparency) level."
+msgstr ""
+"Legen Sie die Füllfarbe für das Auswahlfeld fest\n"
+"falls die Auswahl von links nach rechts erfolgt.\n"
+"Die ersten 6 Ziffern sind die Farbe und die letzten 2\n"
+"Ziffern sind für Alpha (Transparenz)."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:192
+msgid "Set the fill transparency for the 'left to right' selection box."
+msgstr ""
+"Legen Sie die Füllungstransparenz für das Auswahlfeld \"von links nach rechts"
+"\" fest."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:216
+msgid "Right-Left Selection Color"
+msgstr "Rechts-Links-Auswahlfarbe"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:222
+msgid "Set the line color for the 'right to left' selection box."
+msgstr ""
+"Legen Sie die Linienfarbe für das Auswahlfeld 'von rechts nach links' fest."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:239
+msgid ""
+"Set the fill color for the selection box\n"
+"in case that the selection is done from right to left.\n"
+"First 6 digits are the color and the last 2\n"
+"digits are for alpha (transparency) level."
+msgstr ""
+"Legen Sie die Füllfarbe für das Auswahlfeld fest\n"
+"falls die Auswahl von rechts nach links erfolgt.\n"
+"Die ersten 6 Ziffern sind die Farbe und die letzten 2\n"
+"Ziffern sind für Alpha (Transparenz)."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:259
+msgid "Set the fill transparency for selection 'right to left' box."
+msgstr ""
+"Legen Sie die Füllungstransparenz für die Auswahl von rechts nach links fest."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:286
+msgid "Editor Color"
+msgstr "Editorfarbe"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:290
+msgid "Drawing"
+msgstr "Zeichnung"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:292
+msgid "Set the color for the shape."
+msgstr "Legen Sie die Farbe für die Form fest."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:309
+msgid "Set the color of the shape when selected."
+msgstr "Legt die Farbe der Form fest, wenn sie ausgewählt wird."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:332
+msgid "Project Items Color"
+msgstr "Projektelemente Farbe"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:336
+msgid "Enabled"
+msgstr "Aktiviert"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:338
+msgid "Set the color of the items in Project Tab Tree."
+msgstr "Legen Sie die Farbe der Elemente im Projektregisterbaum fest."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:352
+msgid "Disabled"
+msgstr "Deaktiviert"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:354
+msgid ""
+"Set the color of the items in Project Tab Tree,\n"
+"for the case when the items are disabled."
+msgstr ""
+"Legen Sie die Farbe der Elemente in der Projektregisterkarte fest.\n"
+"für den Fall, wenn die Elemente deaktiviert sind."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:370
+msgid "Project AutoHide"
+msgstr "Projekt autoausblenden"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:372
+msgid ""
+"Check this box if you want the project/selected/tool tab area to\n"
+"hide automatically when there are no objects loaded and\n"
+"to show whenever a new object is created."
+msgstr ""
+"Aktivieren Sie dieses Kontrollkästchen, wenn \n"
+"der Bereich Projekt / Ausgewähltes / Werkzeugregister \n"
+"angezeigt werden soll automatisch ausblenden, wenn \n"
+"keine Objekte geladen sind und anzeigen, wenn ein \n"
+"neues Objekt erstellt wird."
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:27
+msgid "Geometry Adv. Options"
+msgstr "Geometrie Erw. Optionen"
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:35
+msgid ""
+"A list of Geometry advanced parameters.\n"
+"Those parameters are available only for\n"
+"Advanced App. Level."
+msgstr ""
+"Eine Liste der erweiterten Geometrieparameter.\n"
+"Diese Parameter sind nur für verfügbar\n"
+"Erweiterte App. Niveau."
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:45
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:112
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:134
+#: AppTools/ToolCalibration.py:125 AppTools/ToolSolderPaste.py:240
+msgid "Toolchange X-Y"
+msgstr "Werkzeugwechsel X, Y"
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:56
+msgid ""
+"Height of the tool just after starting the work.\n"
+"Delete the value if you don't need this feature."
+msgstr ""
+"Höhe des Werkzeugs unmittelbar nach Beginn der Arbeit.\n"
+"Löschen Sie den Wert, wenn Sie diese Funktion nicht benötigen."
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:158
+msgid "Segment X size"
+msgstr "Segment X Größe"
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:160
+msgid ""
+"The size of the trace segment on the X axis.\n"
+"Useful for auto-leveling.\n"
+"A value of 0 means no segmentation on the X axis."
+msgstr ""
+"Die Größe des Trace-Segments auf der X-Achse.\n"
+"Nützlich für die automatische Nivellierung.\n"
+"Ein Wert von 0 bedeutet keine Segmentierung auf der X-Achse."
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:174
+msgid "Segment Y size"
+msgstr "Segment Y Größe"
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:176
+msgid ""
+"The size of the trace segment on the Y axis.\n"
+"Useful for auto-leveling.\n"
+"A value of 0 means no segmentation on the Y axis."
+msgstr ""
+"Die Größe des Trace-Segments auf der Y-Achse.\n"
+"Nützlich für die automatische Nivellierung.\n"
+"Ein Wert von 0 bedeutet keine Segmentierung auf der Y-Achse."
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:192
+msgid "Area Exclusion"
+msgstr "Gebietsausschluss"
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:194
+msgid ""
+"Area exclusion parameters.\n"
+"Those parameters are available only for\n"
+"Advanced App. Level."
+msgstr ""
+"Bereichsausschlussparameter.\n"
+"Diese Parameter sind nur für verfügbar\n"
+"Erweiterte App. Niveau."
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:201
+msgid "Exclusion areas"
+msgstr "Ausschlussbereiche"
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:212
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:322
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:286
+#: AppTools/ToolNCC.py:578 AppTools/ToolPaint.py:521
+msgid "Shape"
+msgstr "Form"
+
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:33
+msgid "A list of Geometry Editor parameters."
+msgstr "Eine Liste der Geometry Editor-Parameter."
+
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:43
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:196
+msgid ""
+"Set the number of selected geometry\n"
+"items above which the utility geometry\n"
+"becomes just a selection rectangle.\n"
+"Increases the performance when moving a\n"
+"large number of geometric elements."
+msgstr ""
+"Legen Sie die Anzahl der ausgewählten Geometrien fest\n"
+"Elemente, über denen die Nutzgeometrie\n"
+"wird nur ein Auswahlrechteck.\n"
+"Erhöht die Leistung beim Bewegen von a\n"
+"große Anzahl von geometrischen Elementen."
+
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:27
+msgid "Geometry General"
+msgstr "Geometrie Allgemein"
+
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:49
+msgid ""
+"The number of circle steps for Geometry \n"
+"circle and arc shapes linear approximation."
+msgstr ""
+"Die Anzahl der Kreisschritte für die Geometrie\n"
+"Kreis- und Bogenformen lineare Annäherung."
+
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:63
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:41
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:48
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:42
+msgid "Tools Dia"
+msgstr "Werkzeugdurchmesser"
+
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:65
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:108
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:43
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:50
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:44
+msgid ""
+"Diameters of the tools, separated by comma.\n"
+"The value of the diameter has to use the dot decimals separator.\n"
+"Valid values: 0.3, 1.0"
+msgstr ""
+"Durchmesser der Werkzeuge, durch Komma getrennt.\n"
+"Der Wert des Durchmessers muss das Punkt-Dezimal-Trennzeichen verwenden.\n"
+"Gültige Werte: 0.3, 1.0"
+
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:80
+msgid "Geometry Object Color"
+msgstr "Geometrieobjekt Farbe"
+
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:28
+msgid "Geometry Options"
+msgstr "Geometrieoptionen"
+
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:36
+msgid ""
+"Create a CNC Job object\n"
+"tracing the contours of this\n"
+"Geometry object."
+msgstr ""
+"Erstellen Sie ein CNC-Auftragsobjekt\n"
+"die Konturen davon nachzeichnen\n"
+"Geometrieobjekt."
+
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:80
+msgid "Depth/Pass"
+msgstr "Tiefe / Pass"
+
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:82
+msgid ""
+"The depth to cut on each pass,\n"
+"when multidepth is enabled.\n"
+"It has positive value although\n"
+"it is a fraction from the depth\n"
+"which has negative value."
+msgstr ""
+"Die Tiefe, die bei jedem Durchlauf geschnitten werden muss,\n"
+"Wenn Mehrere Tiefe aktiviert ist.\n"
+"Es hat zwar einen positiven Wert\n"
+"es ist ein Bruch aus der Tiefe\n"
+"was einen negativen Wert hat."
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:27
+msgid "Gerber Adv. Options"
+msgstr "Erweiterte Optionen von Gerber"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:33
+msgid ""
+"A list of Gerber advanced parameters.\n"
+"Those parameters are available only for\n"
+"Advanced App. Level."
+msgstr ""
+"Eine Liste der erweiterten Gerber-Parameter.\n"
+"Diese Parameter sind nur für verfügbar\n"
+"Fortgeschrittene Anwendungsebene."
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:52
+msgid "Table Show/Hide"
+msgstr "Tabelle anzeigen / ausblenden"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:54
+msgid ""
+"Toggle the display of the Gerber Apertures Table.\n"
+"Also, on hide, it will delete all mark shapes\n"
+"that are drawn on canvas."
+msgstr ""
+"Anzeige der Gerber-Blendentabelle umschalten.\n"
+"Beim Ausblenden werden auch alle Markierungsformen gelöscht\n"
+"das sind auf leinwand gezeichnet."
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:134
+msgid "Exterior"
+msgstr "Äußeres"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:135
+msgid "Interior"
+msgstr "Inneres"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:146
+#: AppObjects/FlatCAMGerber.py:497 AppTools/ToolCopperThieving.py:1022
+#: AppTools/ToolCopperThieving.py:1211 AppTools/ToolCopperThieving.py:1223
+#: AppTools/ToolNCC.py:2059 AppTools/ToolNCC.py:2170 AppTools/ToolNCC.py:2185
+#: AppTools/ToolNCC.py:3149 AppTools/ToolNCC.py:3254 AppTools/ToolNCC.py:3269
+#: AppTools/ToolNCC.py:3535 AppTools/ToolNCC.py:3636 AppTools/ToolNCC.py:3651
+#: camlib.py:982
+msgid "Buffering"
+msgstr "Pufferung"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:148
+msgid ""
+"Buffering type:\n"
+"- None --> best performance, fast file loading but no so good display\n"
+"- Full --> slow file loading but good visuals. This is the default.\n"
+"<>: Don't change this unless you know what you are doing !!!"
+msgstr ""
+"Puffertyp:\n"
+"- Keine -> beste Leistung, schnelles Laden von Dateien, aber keine so gute "
+"Anzeige\n"
+"- Voll -> langsames Laden von Dateien, aber gute Grafik. Dies ist die "
+"Standardeinstellung.\n"
+"<< WARNUNG >>: Ändern Sie dies nur, wenn Sie wissen, was Sie tun !!!"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:153
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:207
+#: AppTools/ToolFiducials.py:201 AppTools/ToolFilm.py:238
+#: AppTools/ToolProperties.py:452 AppTools/ToolProperties.py:455
+#: AppTools/ToolProperties.py:458 AppTools/ToolProperties.py:483
+msgid "None"
+msgstr "Keiner"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:159
+msgid "Simplify"
+msgstr "Vereinfachen"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:161
+msgid ""
+"When checked all the Gerber polygons will be\n"
+"loaded with simplification having a set tolerance.\n"
+"<>: Don't change this unless you know what you are doing !!!"
+msgstr ""
+"Wenn diese Option aktiviert ist, werden alle Gerber-Polygone angezeigt\n"
+"geladen mit Vereinfachung mit einer festgelegten Toleranz.\n"
+"<< WARNUNG >>: Ändern Sie dies nur, wenn Sie wissen, was Sie tun !!!"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:168
+msgid "Tolerance"
+msgstr "Toleranz"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:169
+msgid "Tolerance for polygon simplification."
+msgstr "Toleranz für Polygonvereinfachung."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:33
+msgid "A list of Gerber Editor parameters."
+msgstr "Eine Liste der Gerber-Editor-Parameter."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:43
+msgid ""
+"Set the number of selected Gerber geometry\n"
+"items above which the utility geometry\n"
+"becomes just a selection rectangle.\n"
+"Increases the performance when moving a\n"
+"large number of geometric elements."
+msgstr ""
+"Stellen Sie die Anzahl der ausgewählten Gerber-Geometrie ein\n"
+"Elemente, über denen die Nutzgeometrie\n"
+"wird nur ein Auswahlrechteck.\n"
+"Erhöht die Leistung beim Bewegen von a\n"
+"große Anzahl von geometrischen Elementen."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:56
+msgid "New Aperture code"
+msgstr "Neuer Blendencode"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:69
+msgid "New Aperture size"
+msgstr "Standard Blendenöffnung"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:71
+msgid "Size for the new aperture"
+msgstr "Wert für die neue Blende"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:82
+msgid "New Aperture type"
+msgstr "Neuer Blendentyp"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:84
+msgid ""
+"Type for the new aperture.\n"
+"Can be 'C', 'R' or 'O'."
+msgstr ""
+"Geben Sie für die neue Blende ein.\n"
+"Kann \"C\", \"R\" oder \"O\" sein."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:106
+msgid "Aperture Dimensions"
+msgstr "Öffnungsmaße"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:116
+msgid "Linear Pad Array"
+msgstr "Lineares Pad-Array"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:160
+msgid "Circular Pad Array"
+msgstr "Kreisschlitz-Array"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:196
+msgid "Distance at which to buffer the Gerber element."
+msgstr "Abstand, in dem das Gerber-Element gepuffert werden soll."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:205
+msgid "Scale Tool"
+msgstr "Skalierungswerk"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:211
+msgid "Factor to scale the Gerber element."
+msgstr "Faktor zum Skalieren des Gerber-Elements."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:224
+msgid "Threshold low"
+msgstr "Schwelle niedrig"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:226
+msgid "Threshold value under which the apertures are not marked."
+msgstr "Schwellenwert, unter dem die Blenden nicht markiert sind."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:236
+msgid "Threshold high"
+msgstr "Schwelle hoch"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:238
+msgid "Threshold value over which the apertures are not marked."
+msgstr "Schwellenwert, über dem die Blenden nicht markiert sind."
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:27
+msgid "Gerber Export"
+msgstr "Gerber Export"
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:33
+msgid ""
+"The parameters set here are used in the file exported\n"
+"when using the File -> Export -> Export Gerber menu entry."
+msgstr ""
+"Die hier eingestellten Parameter werden in der exportierten Datei verwendet\n"
+"bei Verwendung des Menüeintrags Datei -> Exportieren -> Gerber exportieren."
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:44
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:50
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:84
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:90
+msgid "The units used in the Gerber file."
+msgstr "Die in der Gerber-Datei verwendeten Einheiten."
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:58
+msgid ""
+"The number of digits in the whole part of the number\n"
+"and in the fractional part of the number."
+msgstr ""
+"Die Anzahl der Ziffern im gesamten Teil der Nummer\n"
+"und im Bruchteil der Zahl."
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:71
+msgid ""
+"This numbers signify the number of digits in\n"
+"the whole part of Gerber coordinates."
+msgstr ""
+"Diese Zahlen geben die Anzahl der Ziffern in an\n"
+"der ganze Teil von Gerber koordiniert."
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:87
+msgid ""
+"This numbers signify the number of digits in\n"
+"the decimal part of Gerber coordinates."
+msgstr ""
+"Diese Zahlen geben die Anzahl der Ziffern in an\n"
+"Der Dezimalteil der Gerber-Koordinaten."
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:99
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:109
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:100
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:110
+msgid ""
+"This sets the type of Gerber zeros.\n"
+"If LZ then Leading Zeros are removed and\n"
+"Trailing Zeros are kept.\n"
+"If TZ is checked then Trailing Zeros are removed\n"
+"and Leading Zeros are kept."
+msgstr ""
+"Dies legt den Typ der Gerber-Nullen fest.\n"
+"Wenn LZ, werden Leading Zeros und entfernt\n"
+"Nachgestellte Nullen werden beibehalten.\n"
+"Wenn TZ aktiviert ist, werden nachfolgende Nullen entfernt\n"
+"und führende Nullen werden beibehalten."
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:27
+msgid "Gerber General"
+msgstr "Geometrie Allgemein"
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:45
+msgid "M-Color"
+msgstr "M-farbig"
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:61
+msgid ""
+"The number of circle steps for Gerber \n"
+"circular aperture linear approximation."
+msgstr ""
+"Die Anzahl der Kreisschritte für Gerber\n"
+"lineare Approximation mit kreisförmiger Apertur."
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:73
+msgid "Default Values"
+msgstr "Standardwerte"
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:75
+msgid ""
+"Those values will be used as fallback values\n"
+"in case that they are not found in the Gerber file."
+msgstr ""
+"Diese Werte werden als Ersatzwerte verwendet\n"
+"für den Fall, dass sie nicht in der Gerber-Datei gefunden werden."
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:126
+msgid "Clean Apertures"
+msgstr "Reinigen Sie die Öffnungen"
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:128
+msgid ""
+"Will remove apertures that do not have geometry\n"
+"thus lowering the number of apertures in the Gerber object."
+msgstr ""
+"Entfernt Öffnungen ohne Geometrie\n"
+"Dadurch wird die Anzahl der Öffnungen im Gerber-Objekt verringert."
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:134
+msgid "Polarity change buffer"
+msgstr "Polaritätswechselpuffer"
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:136
+msgid ""
+"Will apply extra buffering for the\n"
+"solid geometry when we have polarity changes.\n"
+"May help loading Gerber files that otherwise\n"
+"do not load correctly."
+msgstr ""
+"Wendet zusätzliche Pufferung für das an\n"
+"Festkörpergeometrie, wenn sich die Polarität ändert.\n"
+"Kann helfen, Gerber-Dateien zu laden, die sonst\n"
+"nicht richtig laden."
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:149
+msgid "Gerber Object Color"
+msgstr "Gerber-Objektfarbe"
+
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:29
+msgid "Gerber Options"
+msgstr "Gerber-Optionen"
+
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:107
+msgid "Combine Passes"
+msgstr "Kombinieren Sie Pässe"
+
+# Don´t know Copper Thieving
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:27
+msgid "Copper Thieving Tool Options"
+msgstr "Copper Thieving Tool Optionen"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:39
+msgid ""
+"A tool to generate a Copper Thieving that can be added\n"
+"to a selected Gerber file."
+msgstr ""
+"Ein Werkzeug um Copper Thieving durchzuführen, das auf\n"
+"ein ausgewähltes Gerber File angewendet werden kann."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:47
+msgid "Number of steps (lines) used to interpolate circles."
+msgstr "Anzahl der Schritte (Linien) um Kreise zu interpolieren."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261
+#: AppTools/ToolCopperThieving.py:96 AppTools/ToolCopperThieving.py:431
+msgid "Clearance"
+msgstr "Freistellung"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:59
+msgid ""
+"This set the distance between the copper Thieving components\n"
+"(the polygon fill may be split in multiple polygons)\n"
+"and the copper traces in the Gerber file."
+msgstr ""
+"Diese Auswahl definiert den Abstand zwischen den \"Copper Thieving\" "
+"Komponenten.\n"
+"und den Kupferverbindungen im Gerber File (möglicherweise wird hierbei ein "
+"Polygon\n"
+"in mehrere aufgeteilt."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
+#: AppTools/ToolCopperThieving.py:125 AppTools/ToolNCC.py:535
+#: AppTools/ToolNCC.py:1306 AppTools/ToolNCC.py:1635 AppTools/ToolNCC.py:1928
+#: AppTools/ToolNCC.py:1992 AppTools/ToolNCC.py:3013 AppTools/ToolNCC.py:3022
+#: defaults.py:406 tclCommands/TclCommandCopperClear.py:190
+msgid "Itself"
+msgstr "Selbst"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
+#: AppTools/ToolCopperThieving.py:126 AppTools/ToolNCC.py:535
+#: AppTools/ToolNCC.py:1316 AppTools/ToolNCC.py:1648 AppTools/ToolNCC.py:1944
+#: AppTools/ToolNCC.py:1999 AppTools/ToolPaint.py:485 AppTools/ToolPaint.py:945
+#: AppTools/ToolPaint.py:1451
+msgid "Area Selection"
+msgstr "Bereichsauswahl"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
+#: AppTools/ToolCopperThieving.py:127 AppTools/ToolDblSided.py:216
+#: AppTools/ToolNCC.py:535 AppTools/ToolNCC.py:1664 AppTools/ToolNCC.py:1950
+#: AppTools/ToolNCC.py:2007 AppTools/ToolNCC.py:2383 AppTools/ToolNCC.py:2631
+#: AppTools/ToolNCC.py:3058 AppTools/ToolPaint.py:485 AppTools/ToolPaint.py:930
+#: AppTools/ToolPaint.py:1467 tclCommands/TclCommandCopperClear.py:192
+#: tclCommands/TclCommandPaint.py:166
+msgid "Reference Object"
+msgstr "Ref. Objekt"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90
+#: AppTools/ToolCopperThieving.py:129
+msgid "Reference:"
+msgstr "Referenz:"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92
+msgid ""
+"- 'Itself' - the copper Thieving extent is based on the object extent.\n"
+"- 'Area Selection' - left mouse click to start selection of the area to be "
+"filled.\n"
+"- 'Reference Object' - will do copper thieving within the area specified by "
+"another object."
+msgstr ""
+"- 'Selbst' - die 'Copper Thieving' basiert auf der Objektausdehnung.\n"
+"- 'Bereichsauswahl' - Klicken Sie mit der linken Maustaste, um den zu "
+"füllenden Bereich auszuwählen.\n"
+"- 'Referenzobjekt' - 'Copper Thieving' innerhalb des von einem anderen "
+"Objekt angegebenen Bereichs."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:76
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190
+#: AppTools/ToolCopperThieving.py:171 AppTools/ToolExtractDrills.py:102
+#: AppTools/ToolExtractDrills.py:240 AppTools/ToolPunchGerber.py:113
+#: AppTools/ToolPunchGerber.py:268
+msgid "Rectangular"
+msgstr "Rechteckig"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102
+#: AppTools/ToolCopperThieving.py:172
+msgid "Minimal"
+msgstr "Minimal"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104
+#: AppTools/ToolCopperThieving.py:174 AppTools/ToolFilm.py:94
+msgid "Box Type:"
+msgstr "Box-Typ:"
+
+# Double
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106
+#: AppTools/ToolCopperThieving.py:176
+msgid ""
+"- 'Rectangular' - the bounding box will be of rectangular shape.\n"
+"- 'Minimal' - the bounding box will be the convex hull shape."
+msgstr ""
+"- 'Rechteckig' - Der Begrenzungsrahmen hat eine rechteckige Form.\n"
+"- 'Minimal' - Der Begrenzungsrahmen ist die konvexe Rumpfform."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120
+#: AppTools/ToolCopperThieving.py:192
+msgid "Dots Grid"
+msgstr "Punktmuster"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121
+#: AppTools/ToolCopperThieving.py:193
+msgid "Squares Grid"
+msgstr "Quadratraster"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122
+#: AppTools/ToolCopperThieving.py:194
+msgid "Lines Grid"
+msgstr "Linienraster"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124
+#: AppTools/ToolCopperThieving.py:196
+msgid "Fill Type:"
+msgstr "Füllart:"
+
+# Double
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126
+#: AppTools/ToolCopperThieving.py:198
+msgid ""
+"- 'Solid' - copper thieving will be a solid polygon.\n"
+"- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n"
+"- 'Squares Grid' - the empty area will be filled with a pattern of squares.\n"
+"- 'Lines Grid' - the empty area will be filled with a pattern of lines."
+msgstr ""
+"- 'Solide' - 'Copper Thieving' wird ein solides Polygon sein.\n"
+"- 'Punktraster' - Der leere Bereich wird mit einem Punktmuster gefüllt.\n"
+"- 'Quadratraster ' - Der leere Bereich wird mit einem Quadratmuster "
+"gefüllt.\n"
+"- 'Linienraster' - Der leere Bereich wird mit einem Linienmuster gefüllt."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134
+#: AppTools/ToolCopperThieving.py:217
+msgid "Dots Grid Parameters"
+msgstr "Punktmuster Parameter"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140
+#: AppTools/ToolCopperThieving.py:223
+msgid "Dot diameter in Dots Grid."
+msgstr "Punktdurchmesser im Punktmuster."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209
+#: AppTools/ToolCopperThieving.py:234 AppTools/ToolCopperThieving.py:274
+#: AppTools/ToolCopperThieving.py:314
+msgid "Spacing"
+msgstr "Abstand"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153
+#: AppTools/ToolCopperThieving.py:236
+msgid "Distance between each two dots in Dots Grid."
+msgstr "Abstand zwischen zwei Punkten im Punktmuster."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163
+#: AppTools/ToolCopperThieving.py:257
+msgid "Squares Grid Parameters"
+msgstr "Quadratraster Parameter"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169
+#: AppTools/ToolCopperThieving.py:263
+msgid "Square side size in Squares Grid."
+msgstr "Quadratlängen im Quadratraster."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182
+#: AppTools/ToolCopperThieving.py:276
+msgid "Distance between each two squares in Squares Grid."
+msgstr "Abstand zwischen zwei Quadraten im Quadratraster."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192
+#: AppTools/ToolCopperThieving.py:297
+msgid "Lines Grid Parameters"
+msgstr "Schraffurparameter"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198
+#: AppTools/ToolCopperThieving.py:303
+msgid "Line thickness size in Lines Grid."
+msgstr "Liniendicke."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211
+#: AppTools/ToolCopperThieving.py:316
+msgid "Distance between each two lines in Lines Grid."
+msgstr "Linienabstand."
+
+# What is a Robber Bar?
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221
+#: AppTools/ToolCopperThieving.py:354
+msgid "Robber Bar Parameters"
+msgstr "Robber Bar-Parameter"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223
+#: AppTools/ToolCopperThieving.py:356
+msgid ""
+"Parameters used for the robber bar.\n"
+"Robber bar = copper border to help in pattern hole plating."
+msgstr ""
+"Parameter für die Robber Bar\n"
+"Eine Robber Bar ist ein Kupferrand bei Lochmustern."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231
+#: AppTools/ToolCopperThieving.py:364
+msgid "Bounding box margin for robber bar."
+msgstr "Begrenzungsrahmenrand der Robber Bar."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:42
+#: AppTools/ToolCopperThieving.py:375 AppTools/ToolCorners.py:113
+#: AppTools/ToolEtchCompensation.py:96
+msgid "Thickness"
+msgstr "Dicke"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244
+#: AppTools/ToolCopperThieving.py:377
+msgid "The robber bar thickness."
+msgstr "Dicke der Robber Bar."
+
+# What is pattern plating?
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254
+#: AppTools/ToolCopperThieving.py:408
+msgid "Pattern Plating Mask"
+msgstr "Musterbeschichtungsmaske"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256
+#: AppTools/ToolCopperThieving.py:410
+msgid "Generate a mask for pattern plating."
+msgstr "Erzeugen Sie eine Maske für die Musterbeschichtung."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263
+#: AppTools/ToolCopperThieving.py:433
+msgid ""
+"The distance between the possible copper thieving elements\n"
+"and/or robber bar and the actual openings in the mask."
+msgstr ""
+"Der Abstand zwischen den Copper Thieving Elementen \n"
+"und/oder der Robber Bar und den tatsächlichen Öffnungen in der Maske."
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:27
+msgid "Calibration Tool Options"
+msgstr "Kalibirierungs-Tool-Optionen"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:38
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:38
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:37
+#: AppTools/ToolCopperThieving.py:91 AppTools/ToolCorners.py:108
+#: AppTools/ToolFiducials.py:151
+msgid "Parameters used for this tool."
+msgstr "Parameter für dieses Werkzeug."
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:43
+#: AppTools/ToolCalibration.py:181
+msgid "Source Type"
+msgstr "Quellenart"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:44
+#: AppTools/ToolCalibration.py:182
+msgid ""
+"The source of calibration points.\n"
+"It can be:\n"
+"- Object -> click a hole geo for Excellon or a pad for Gerber\n"
+"- Free -> click freely on canvas to acquire the calibration points"
+msgstr ""
+"Die Quelle für Kalibrierungspunkte\n"
+"Das können sein:\n"
+"- \"Objekt\" klicken Sie auf eine Lochgeometrie oder ein Pad im Gerber\n"
+"- \"Frei\" klicken Sie frei auf der Leinwand um einen Kalibierungspunkt zu "
+"setzen"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:49
+#: AppTools/ToolCalibration.py:187
+msgid "Free"
+msgstr "Frei"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:63
+#: AppTools/ToolCalibration.py:76
+msgid "Height (Z) for travelling between the points."
+msgstr "Die Höhe (Z) für den Weg zwischen Pads."
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:75
+#: AppTools/ToolCalibration.py:88
+msgid "Verification Z"
+msgstr "Z Überprüfung"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:77
+#: AppTools/ToolCalibration.py:90
+msgid "Height (Z) for checking the point."
+msgstr "Höhe (Z) um den Punkt zu prüfen."
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:89
+#: AppTools/ToolCalibration.py:102
+msgid "Zero Z tool"
+msgstr "Z Höhen Werkzeug"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:91
+#: AppTools/ToolCalibration.py:104
+msgid ""
+"Include a sequence to zero the height (Z)\n"
+"of the verification tool."
+msgstr ""
+"Fügen sie eine Sequenz ein um die Höhe (Z)\n"
+"des Überprüfungswerkzeugs zu nullen."
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:100
+#: AppTools/ToolCalibration.py:113
+msgid "Height (Z) for mounting the verification probe."
+msgstr "Höhe (Z) zur Installation der Überprüfungssonde."
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:114
+#: AppTools/ToolCalibration.py:127
+msgid ""
+"Toolchange X,Y position.\n"
+"If no value is entered then the current\n"
+"(x, y) point will be used,"
+msgstr ""
+"Werkzeugwechsel X, Y Position.\n"
+"Wenn kein Wert eingegeben wird, wird der Strom angezeigt\n"
+"(x, y) Punkt wird verwendet,"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:125
+#: AppTools/ToolCalibration.py:153
+msgid "Second point"
+msgstr "Zweiter Punkt"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:127
+#: AppTools/ToolCalibration.py:155
+msgid ""
+"Second point in the Gcode verification can be:\n"
+"- top-left -> the user will align the PCB vertically\n"
+"- bottom-right -> the user will align the PCB horizontally"
+msgstr ""
+"Der zweite Punkt bei der Gcode-Überprüfung kann sein:\n"
+"- oben links -> Der Benutzer richtet die Leiterplatte vertikal aus\n"
+"- rechts unten -> Der Benutzer richtet die Leiterplatte horizontal aus"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:131
+#: AppTools/ToolCalibration.py:159 App_Main.py:4684
+msgid "Top-Left"
+msgstr "Oben links"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:132
+#: AppTools/ToolCalibration.py:160 App_Main.py:4685
+msgid "Bottom-Right"
+msgstr "Unten rechts"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:27
+msgid "Extract Drills Options"
+msgstr "Optionen für Bohrer extrahieren"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42
+#: AppTools/ToolExtractDrills.py:68 AppTools/ToolPunchGerber.py:75
+msgid "Processed Pads Type"
+msgstr "Verarbeitete Pads Typ"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44
+#: AppTools/ToolExtractDrills.py:70 AppTools/ToolPunchGerber.py:77
+msgid ""
+"The type of pads shape to be processed.\n"
+"If the PCB has many SMD pads with rectangular pads,\n"
+"disable the Rectangular aperture."
+msgstr ""
+"Die Art der zu verarbeitenden Pads.\n"
+"Wenn die Leiterplatte viele SMD-Pads mit rechteckigen Pads hat,\n"
+"Deaktivieren Sie die rechteckige Öffnung."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54
+#: AppTools/ToolExtractDrills.py:80 AppTools/ToolPunchGerber.py:91
+msgid "Process Circular Pads."
+msgstr "Prozessrunde Pads."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:60
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164
+#: AppTools/ToolExtractDrills.py:86 AppTools/ToolExtractDrills.py:214
+#: AppTools/ToolPunchGerber.py:97 AppTools/ToolPunchGerber.py:242
+msgid "Oblong"
+msgstr "Länglich"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62
+#: AppTools/ToolExtractDrills.py:88 AppTools/ToolPunchGerber.py:99
+msgid "Process Oblong Pads."
+msgstr "Längliche Pads verarbeiten."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70
+#: AppTools/ToolExtractDrills.py:96 AppTools/ToolPunchGerber.py:107
+msgid "Process Square Pads."
+msgstr "Quadratische Pads verarbeiten."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78
+#: AppTools/ToolExtractDrills.py:104 AppTools/ToolPunchGerber.py:115
+msgid "Process Rectangular Pads."
+msgstr "Rechteckige Pads verarbeiten."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:84
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203
+#: AppTools/ToolExtractDrills.py:110 AppTools/ToolExtractDrills.py:253
+#: AppTools/ToolProperties.py:172 AppTools/ToolPunchGerber.py:121
+#: AppTools/ToolPunchGerber.py:281
+msgid "Others"
+msgstr "Andere"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86
+#: AppTools/ToolExtractDrills.py:112 AppTools/ToolPunchGerber.py:123
+msgid "Process pads not in the categories above."
+msgstr "Prozess-Pads nicht in den oben genannten Kategorien."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:99
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125
+#: AppTools/ToolExtractDrills.py:139 AppTools/ToolExtractDrills.py:156
+#: AppTools/ToolPunchGerber.py:150 AppTools/ToolPunchGerber.py:184
+msgid "Fixed Diameter"
+msgstr "Fester Durchmesser"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:100
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142
+#: AppTools/ToolExtractDrills.py:140 AppTools/ToolExtractDrills.py:192
+#: AppTools/ToolPunchGerber.py:151 AppTools/ToolPunchGerber.py:214
+msgid "Fixed Annular Ring"
+msgstr "Fester Ring"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102
+#: AppTools/ToolExtractDrills.py:141 AppTools/ToolPunchGerber.py:152
+msgid "Proportional"
+msgstr "Proportional"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107
+#: AppTools/ToolExtractDrills.py:130
+msgid ""
+"The method for processing pads. Can be:\n"
+"- Fixed Diameter -> all holes will have a set size\n"
+"- Fixed Annular Ring -> all holes will have a set annular ring\n"
+"- Proportional -> each hole size will be a fraction of the pad size"
+msgstr ""
+"Die Methode zur Verarbeitung von Pads. Kann sein:\n"
+"- Fester Durchmesser -> Alle Löcher haben eine festgelegte Größe\n"
+"- Fester Ring -> Alle Löcher haben einen festen Ring\n"
+"- Proportional -> Jede Lochgröße ist ein Bruchteil der Padgröße"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:220
+#: AppTools/ToolExtractDrills.py:164 AppTools/ToolExtractDrills.py:285
+#: AppTools/ToolPunchGerber.py:192 AppTools/ToolPunchGerber.py:308
+#: AppTools/ToolTransform.py:357 App_Main.py:9602
+msgid "Value"
+msgstr "Wert"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135
+#: AppTools/ToolExtractDrills.py:166 AppTools/ToolPunchGerber.py:194
+msgid "Fixed hole diameter."
+msgstr "Fester Lochdurchmesser."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:142
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144
+#: AppTools/ToolExtractDrills.py:194 AppTools/ToolPunchGerber.py:216
+msgid ""
+"The size of annular ring.\n"
+"The copper sliver between the hole exterior\n"
+"and the margin of the copper pad."
+msgstr ""
+"Die Größe des Ringes.\n"
+"Das Kupfersplitter zwischen dem Loch außen\n"
+"und der Rand des Kupferkissens."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153
+#: AppTools/ToolExtractDrills.py:203 AppTools/ToolPunchGerber.py:231
+msgid "The size of annular ring for circular pads."
+msgstr "Die Größe des Ringes für kreisförmige Pads."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:164
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:166
+#: AppTools/ToolExtractDrills.py:216 AppTools/ToolPunchGerber.py:244
+msgid "The size of annular ring for oblong pads."
+msgstr "Die Größe des Ringes für längliche Pads."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:177
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:179
+#: AppTools/ToolExtractDrills.py:229 AppTools/ToolPunchGerber.py:257
+msgid "The size of annular ring for square pads."
+msgstr "Die Größe des Ringes für quadratische Pads."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:190
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:192
+#: AppTools/ToolExtractDrills.py:242 AppTools/ToolPunchGerber.py:270
+msgid "The size of annular ring for rectangular pads."
+msgstr "Die Größe des Ringes für rechteckige Pads."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:203
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:205
+#: AppTools/ToolExtractDrills.py:255 AppTools/ToolPunchGerber.py:283
+msgid "The size of annular ring for other pads."
+msgstr "Die Größe des Ringes für andere Pads."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:213
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:215
+#: AppTools/ToolExtractDrills.py:276 AppTools/ToolPunchGerber.py:299
+msgid "Proportional Diameter"
+msgstr "Proportionaler Durchmesser"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:222
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:224
+msgid "Factor"
+msgstr "Faktor"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226
+#: AppTools/ToolExtractDrills.py:287 AppTools/ToolPunchGerber.py:310
+msgid ""
+"Proportional Diameter.\n"
+"The hole diameter will be a fraction of the pad size."
+msgstr ""
+"Proportionaler Durchmesser.\n"
+"Der Lochdurchmesser beträgt einen Bruchteil der Padgröße."
+
+# I have no clue
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:27
+msgid "Fiducials Tool Options"
+msgstr "Passermarken-Werkzeugoptionen"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45
+#: AppTools/ToolFiducials.py:158
+msgid ""
+"This set the fiducial diameter if fiducial type is circular,\n"
+"otherwise is the size of the fiducial.\n"
+"The soldermask opening is double than that."
+msgstr ""
+"Dies setzt den Durchmesser der Bezugsmarke wenn die Art \n"
+"des Bezugspunktes kreisförmig ist, ansonsten die Größe des Bezugspunktes.\n"
+"Der Ausschnitt der Lötmaske ist doppelt so groß."
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73
+#: AppTools/ToolFiducials.py:186
+msgid "Auto"
+msgstr "Auto"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74
+#: AppTools/ToolFiducials.py:187
+msgid "Manual"
+msgstr "Manuell"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76
+#: AppTools/ToolFiducials.py:189
+msgid "Mode:"
+msgstr "Modus:"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:78
+msgid ""
+"- 'Auto' - automatic placement of fiducials in the corners of the bounding "
+"box.\n"
+"- 'Manual' - manual placement of fiducials."
+msgstr ""
+"- \"Auto\" Die Bezugspunkte werden automatisch in den Ecken des Umrisses "
+"platziert.\n"
+"- \"Manuell\" Die Bezugspunkte werden manuell platziert."
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86
+#: AppTools/ToolFiducials.py:199
+msgid "Up"
+msgstr "Hoch"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87
+#: AppTools/ToolFiducials.py:200
+msgid "Down"
+msgstr "Runter"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90
+#: AppTools/ToolFiducials.py:203
+msgid "Second fiducial"
+msgstr "Zweiter Bezugspunkt"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92
+#: AppTools/ToolFiducials.py:205
+msgid ""
+"The position for the second fiducial.\n"
+"- 'Up' - the order is: bottom-left, top-left, top-right.\n"
+"- 'Down' - the order is: bottom-left, bottom-right, top-right.\n"
+"- 'None' - there is no second fiducial. The order is: bottom-left, top-right."
+msgstr ""
+"Die Position des zweiten Bezugspunktes\n"
+"- \"Hoch\" Die Reihenfolge ist Unten-Links, Oben-Links, Oben-Rechts\n"
+"- \"Runter\" Die Reihenfolge ist Untern-Links, Unten-Rechts, Oben-Rechts\n"
+"- \"Keine\" Es gibt keinen zweiten Bezugspunkt, die Reihenfolge ist: Unten-"
+"Links, Oben-Rechts."
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108
+#: AppTools/ToolFiducials.py:221
+msgid "Cross"
+msgstr "Kreuzförmig"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109
+#: AppTools/ToolFiducials.py:222
+msgid "Chess"
+msgstr "Schachbrett"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112
+#: AppTools/ToolFiducials.py:224
+msgid "Fiducial Type"
+msgstr "Bezugspunktart"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114
+#: AppTools/ToolFiducials.py:226
+msgid ""
+"The type of fiducial.\n"
+"- 'Circular' - this is the regular fiducial.\n"
+"- 'Cross' - cross lines fiducial.\n"
+"- 'Chess' - chess pattern fiducial."
+msgstr ""
+"Die Art der Bezugspunkte\n"
+"\"Kreisförmig\" Der normale Bezugspunkt\n"
+"\"Kreuzförmig\" Kreuzlinienbezugspunkte\n"
+"\"Schachbrett\" Schachbrettförmige Bezugspunkte."
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123
+#: AppTools/ToolFiducials.py:235
+msgid "Line thickness"
+msgstr "Liniendicke"
+
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:27
+msgid "Invert Gerber Tool Options"
+msgstr "Invert. Sie die Gerber-Werkzeugoptionen"
+
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:33
+msgid ""
+"A tool to invert Gerber geometry from positive to negative\n"
+"and in revers."
+msgstr ""
+"Ein Werkzeug zum Konvertieren der Gerber-Geometrie von positiv nach negativ\n"
+"und umgekehrt."
+
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:47
+#: AppTools/ToolInvertGerber.py:90
+msgid ""
+"Distance by which to avoid\n"
+"the edges of the Gerber object."
+msgstr ""
+"Entfernung, um die vermieden werden muss\n"
+"die Kanten des Gerber-Objekts."
+
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:58
+#: AppTools/ToolInvertGerber.py:101
+msgid "Lines Join Style"
+msgstr "Linien verbinden Stil"
+
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:60
+#: AppTools/ToolInvertGerber.py:103
+msgid ""
+"The way that the lines in the object outline will be joined.\n"
+"Can be:\n"
+"- rounded -> an arc is added between two joining lines\n"
+"- square -> the lines meet in 90 degrees angle\n"
+"- bevel -> the lines are joined by a third line"
+msgstr ""
+"Die Art und Weise, wie die Linien in der Objektkontur verbunden werden.\n"
+"Kann sein:\n"
+"- gerundet -> zwischen zwei Verbindungslinien wird ein Bogen eingefügt\n"
+"- Quadrat -> Die Linien treffen sich in einem Winkel von 90 Grad\n"
+"- Abschrägung -> Die Linien werden durch eine dritte Linie verbunden"
+
+#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:27
+msgid "Optimal Tool Options"
+msgstr "\"Optimale\" Werkzeugoptionen"
+
+#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:33
+msgid ""
+"A tool to find the minimum distance between\n"
+"every two Gerber geometric elements"
+msgstr ""
+"Ein Werkzeug, um den Mindestabstand zwischen zu finden\n"
+"jeweils zwei Gerber geometrische Elemente"
+
+#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:48
+#: AppTools/ToolOptimal.py:78
+msgid "Precision"
+msgstr "Präzision"
+
+#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:50
+msgid "Number of decimals for the distances and coordinates in this tool."
+msgstr ""
+"Anzahl der Dezimalstellen für die Abstände und Koordinaten in diesem "
+"Werkzeug."
+
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:27
+msgid "Punch Gerber Options"
+msgstr "Stanzen Sie die Gerber-Optionen"
+
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:108
+#: AppTools/ToolPunchGerber.py:141
+msgid ""
+"The punch hole source can be:\n"
+"- Excellon Object-> the Excellon object drills center will serve as "
+"reference.\n"
+"- Fixed Diameter -> will try to use the pads center as reference adding "
+"fixed diameter holes.\n"
+"- Fixed Annular Ring -> will try to keep a set annular ring.\n"
+"- Proportional -> will make a Gerber punch hole having the diameter a "
+"percentage of the pad diameter."
+msgstr ""
+"Die Stanzlochquelle kann sein:\n"
+"- Excellon-Objekt-> Das Excellon-Objektbohrzentrum dient als Referenz.\n"
+"- Fester Durchmesser -> versucht, die Mitte der Pads als Referenz für Löcher "
+"mit festem Durchmesser zu verwenden.\n"
+"- Fixed Annular Ring -> versucht, einen festgelegten Ring zu behalten.\n"
+"- Proportional -> macht ein Gerber-Stanzloch mit dem Durchmesser zu einem "
+"Prozentsatz des Pad-Durchmessers."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:27
+msgid "QRCode Tool Options"
+msgstr "QR Code-Tooloptionen"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:33
+msgid ""
+"A tool to create a QRCode that can be inserted\n"
+"into a selected Gerber file, or it can be exported as a file."
+msgstr ""
+"Ein Werkzeug um QR Codes zu erzeugen, um diese\n"
+"in Gerber Dateien einzufügen oder als Datei zu exportieren."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45
+#: AppTools/ToolQRCode.py:100
+msgid "Version"
+msgstr "Version"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47
+#: AppTools/ToolQRCode.py:102
+msgid ""
+"QRCode version can have values from 1 (21x21 boxes)\n"
+"to 40 (177x177 boxes)."
+msgstr ""
+"Je nach QRCode Version kann 1 (21x21 Quadrate)\n"
+" bis 40 (177x177 Quadrate) angegeben werden."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58
+#: AppTools/ToolQRCode.py:113
+msgid "Error correction"
+msgstr "Fehlerausgleich"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71
+#: AppTools/ToolQRCode.py:115 AppTools/ToolQRCode.py:126
+#, python-format
+msgid ""
+"Parameter that controls the error correction used for the QR Code.\n"
+"L = maximum 7%% errors can be corrected\n"
+"M = maximum 15%% errors can be corrected\n"
+"Q = maximum 25%% errors can be corrected\n"
+"H = maximum 30%% errors can be corrected."
+msgstr ""
+"Dieser Parameter kontrolliert die Fehlertoleranz:\n"
+"L : max. 7%% Fehler können ausgeglichen werden\n"
+"M : max. 15%% Fehler können ausgeglichen werden\n"
+"Q: max. 25%% Fehler können ausgeglichen werden\n"
+"H : max. 30%% Fehler können ausgeglichen warden."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81
+#: AppTools/ToolQRCode.py:136
+msgid "Box Size"
+msgstr "Quadratgröße"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83
+#: AppTools/ToolQRCode.py:138
+msgid ""
+"Box size control the overall size of the QRcode\n"
+"by adjusting the size of each box in the code."
+msgstr ""
+"Über die Quadratgröße wird die Geamtgröße\n"
+"des QRCodes beeinflusst, da sie die Größe jedes einzelnen Quadrats "
+"spezifiziert."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94
+#: AppTools/ToolQRCode.py:149
+msgid "Border Size"
+msgstr "Randdicke"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96
+#: AppTools/ToolQRCode.py:151
+msgid ""
+"Size of the QRCode border. How many boxes thick is the border.\n"
+"Default value is 4. The width of the clearance around the QRCode."
+msgstr ""
+"Dicke des Rands des QRCodes in Anzahl von Boxen.\n"
+"Standardwert is 4. Die Breite gibt den Raum der Freistellung um den QRCode "
+"an."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107
+#: AppTools/ToolQRCode.py:162
+msgid "QRCode Data"
+msgstr "QRCode Daten"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109
+#: AppTools/ToolQRCode.py:164
+msgid "QRCode Data. Alphanumeric text to be encoded in the QRCode."
+msgstr "Beliebiger Text der in den QRCode umgerechnet werden soll."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:113
+#: AppTools/ToolQRCode.py:168
+msgid "Add here the text to be included in the QRCode..."
+msgstr "Geben Sie hier den Text in Ihrem QRCode an."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:119
+#: AppTools/ToolQRCode.py:174
+msgid "Polarity"
+msgstr "Polarität"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121
+#: AppTools/ToolQRCode.py:176
+msgid ""
+"Choose the polarity of the QRCode.\n"
+"It can be drawn in a negative way (squares are clear)\n"
+"or in a positive way (squares are opaque)."
+msgstr ""
+"Geben Sie die Polarität des QRCodes an\n"
+"Es kann entweder Negativ sein (die Boxen sind durchsichtig)\n"
+"oder Positiv (die Boxen sind undurchsichtig)."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125
+#: AppTools/ToolFilm.py:279 AppTools/ToolQRCode.py:180
+msgid "Negative"
+msgstr "Negativ"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126
+#: AppTools/ToolFilm.py:278 AppTools/ToolQRCode.py:181
+msgid "Positive"
+msgstr "Positiv"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128
+#: AppTools/ToolQRCode.py:183
+msgid ""
+"Choose the type of QRCode to be created.\n"
+"If added on a Silkscreen Gerber file the QRCode may\n"
+"be added as positive. If it is added to a Copper Gerber\n"
+"file then perhaps the QRCode can be added as negative."
+msgstr ""
+"Wählen Sie die Art des zu erzeugenden QRCodes.\n"
+"Wenn er zu ein Silkscreen Gerber file hinzugefügt werden soll\n"
+"sollte er \"Positiv\" sein, wenn sie ihn zum Copper File hinzufügen\n"
+"wollen sollte er möglichst \"Negativ\" sein."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145
+#: AppTools/ToolQRCode.py:194 AppTools/ToolQRCode.py:200
+msgid ""
+"The bounding box, meaning the empty space that surrounds\n"
+"the QRCode geometry, can have a rounded or a square shape."
+msgstr ""
+"Der Umriss um den QRCode, der die Freistellungsfläche definiert\n"
+"kann abgerundete oder scharfe Ecken haben."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:239
+#: AppTools/ToolQRCode.py:197 AppTools/ToolTransform.py:383
+msgid "Rounded"
+msgstr "Agberundet"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152
+#: AppTools/ToolQRCode.py:228
+msgid "Fill Color"
+msgstr "Boxfarbe"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154
+#: AppTools/ToolQRCode.py:230
+msgid "Set the QRCode fill color (squares color)."
+msgstr "Wählen Sie die Farbe der Boxen."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:173
+#: AppTools/ToolQRCode.py:252
+msgid "Back Color"
+msgstr "Hintergrundfarbe"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:175
+#: AppTools/ToolQRCode.py:254
+msgid "Set the QRCode background color."
+msgstr "Wählen Sie die Farbe im QRCode, die nicht von einer Box bedeckt ist."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:27
+msgid "Check Rules Tool Options"
+msgstr "Optionen des Werkzeugs 'Regeln prüfen'"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:32
+msgid ""
+"A tool to check if Gerber files are within a set\n"
+"of Manufacturing Rules."
+msgstr ""
+"Ein Tool zum Überprüfen, ob sich Gerber-Dateien innerhalb eines Satzes "
+"befinden\n"
+"von Herstellungsregeln."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:42
+#: AppTools/ToolRulesCheck.py:265 AppTools/ToolRulesCheck.py:929
+msgid "Trace Size"
+msgstr "Spurengröße"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:44
+#: AppTools/ToolRulesCheck.py:267
+msgid "This checks if the minimum size for traces is met."
+msgstr "Hiermit wird überprüft, ob die Mindestgröße für Traces erfüllt ist."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:54
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:74
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:94
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:114
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:134
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:154
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:174
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:194
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:216
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:236
+#: AppTools/ToolRulesCheck.py:277 AppTools/ToolRulesCheck.py:299
+#: AppTools/ToolRulesCheck.py:322 AppTools/ToolRulesCheck.py:345
+#: AppTools/ToolRulesCheck.py:368 AppTools/ToolRulesCheck.py:391
+#: AppTools/ToolRulesCheck.py:414 AppTools/ToolRulesCheck.py:437
+#: AppTools/ToolRulesCheck.py:462 AppTools/ToolRulesCheck.py:485
+msgid "Min value"
+msgstr "Min. Wert"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:56
+#: AppTools/ToolRulesCheck.py:279
+msgid "Minimum acceptable trace size."
+msgstr "Minimale akzeptable Trace-Größe."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:61
+#: AppTools/ToolRulesCheck.py:286 AppTools/ToolRulesCheck.py:1157
+#: AppTools/ToolRulesCheck.py:1187
+msgid "Copper to Copper clearance"
+msgstr "Mininalabstand Kupfer zu Kupfer"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:63
+#: AppTools/ToolRulesCheck.py:288
+msgid ""
+"This checks if the minimum clearance between copper\n"
+"features is met."
+msgstr ""
+"Dies überprüft, ob der Mindestabstand zwischen Kupfer\n"
+"Spuren ist erfüllt."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:76
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:96
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:116
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:136
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:156
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:176
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:238
+#: AppTools/ToolRulesCheck.py:301 AppTools/ToolRulesCheck.py:324
+#: AppTools/ToolRulesCheck.py:347 AppTools/ToolRulesCheck.py:370
+#: AppTools/ToolRulesCheck.py:393 AppTools/ToolRulesCheck.py:416
+#: AppTools/ToolRulesCheck.py:464
+msgid "Minimum acceptable clearance value."
+msgstr "Minimaler akzeptabler Abstandswert."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:81
+#: AppTools/ToolRulesCheck.py:309 AppTools/ToolRulesCheck.py:1217
+#: AppTools/ToolRulesCheck.py:1223 AppTools/ToolRulesCheck.py:1236
+#: AppTools/ToolRulesCheck.py:1243
+msgid "Copper to Outline clearance"
+msgstr "Mininalabstand Kupfer zum Rahmen"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:83
+#: AppTools/ToolRulesCheck.py:311
+msgid ""
+"This checks if the minimum clearance between copper\n"
+"features and the outline is met."
+msgstr "Überprüft den Minimalabstand zwischen Kupfer und Rand."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:101
+#: AppTools/ToolRulesCheck.py:332
+msgid "Silk to Silk Clearance"
+msgstr "Siebdruck zu siebdruck Abstand"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:103
+#: AppTools/ToolRulesCheck.py:334
+msgid ""
+"This checks if the minimum clearance between silkscreen\n"
+"features and silkscreen features is met."
+msgstr ""
+"Dies prüft, ob der Mindestabstand zwischen Siebdruck\n"
+"Objekte und Silkscreen-Objekte erfüllt ist."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:121
+#: AppTools/ToolRulesCheck.py:355 AppTools/ToolRulesCheck.py:1326
+#: AppTools/ToolRulesCheck.py:1332 AppTools/ToolRulesCheck.py:1350
+msgid "Silk to Solder Mask Clearance"
+msgstr "Siebdruck auf Lötmaske Clearance"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:123
+#: AppTools/ToolRulesCheck.py:357
+msgid ""
+"This checks if the minimum clearance between silkscreen\n"
+"features and soldermask features is met."
+msgstr ""
+"Dies prüft, ob der Mindestabstand zwischen Siebdruck\n"
+"Spuren und Lötmaskenspuren werden eingehalten."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:141
+#: AppTools/ToolRulesCheck.py:378 AppTools/ToolRulesCheck.py:1380
+#: AppTools/ToolRulesCheck.py:1386 AppTools/ToolRulesCheck.py:1400
+#: AppTools/ToolRulesCheck.py:1407
+msgid "Silk to Outline Clearance"
+msgstr "Siebdruck zur Gliederung Clearance"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:143
+#: AppTools/ToolRulesCheck.py:380
+msgid ""
+"This checks if the minimum clearance between silk\n"
+"features and the outline is met."
+msgstr ""
+"Dies prüft, ob der Mindestabstand zwischen Siebdruck\n"
+"Spuren und der Umriss ist erfüllt."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:161
+#: AppTools/ToolRulesCheck.py:401 AppTools/ToolRulesCheck.py:1418
+#: AppTools/ToolRulesCheck.py:1445
+msgid "Minimum Solder Mask Sliver"
+msgstr "Minimum Lötmaskenband"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:163
+#: AppTools/ToolRulesCheck.py:403
+msgid ""
+"This checks if the minimum clearance between soldermask\n"
+"features and soldermask features is met."
+msgstr ""
+"Hiermit wird geprüft, ob der Mindestabstand zwischen den Lötmasken "
+"eingehalten wird\n"
+"Spuren und Soldermask-Merkmale sind erfüllt."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:181
+#: AppTools/ToolRulesCheck.py:424 AppTools/ToolRulesCheck.py:1483
+#: AppTools/ToolRulesCheck.py:1489 AppTools/ToolRulesCheck.py:1505
+#: AppTools/ToolRulesCheck.py:1512
+msgid "Minimum Annular Ring"
+msgstr "Minimaler Ring"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:183
+#: AppTools/ToolRulesCheck.py:426
+msgid ""
+"This checks if the minimum copper ring left by drilling\n"
+"a hole into a pad is met."
+msgstr ""
+"Dies überprüft, ob der minimale Kupferring durch Bohren übrig bleibt\n"
+"Ein Loch in einem Pad ist getroffen."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:196
+#: AppTools/ToolRulesCheck.py:439
+msgid "Minimum acceptable ring value."
+msgstr "Minimaler akzeptabler Ringwert."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:203
+#: AppTools/ToolRulesCheck.py:449 AppTools/ToolRulesCheck.py:873
+msgid "Hole to Hole Clearance"
+msgstr "Loch zu Loch Abstand"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:205
+#: AppTools/ToolRulesCheck.py:451
+msgid ""
+"This checks if the minimum clearance between a drill hole\n"
+"and another drill hole is met."
+msgstr ""
+"Dies überprüft, ob der Mindestabstand zwischen einem Bohrloch ist\n"
+"und ein weiteres Bohrloch ist getroffen."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:218
+#: AppTools/ToolRulesCheck.py:487
+msgid "Minimum acceptable drill size."
+msgstr "Minimale zulässige Bohrergröße."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:223
+#: AppTools/ToolRulesCheck.py:472 AppTools/ToolRulesCheck.py:847
+msgid "Hole Size"
+msgstr "Lochgröße"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:225
+#: AppTools/ToolRulesCheck.py:474
+msgid ""
+"This checks if the drill holes\n"
+"sizes are above the threshold."
+msgstr ""
+"Dadurch wird geprüft, ob die Bohrlöcher vorhanden sind\n"
+"Größen liegen über der Schwelle."
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:27
+msgid "2Sided Tool Options"
+msgstr "2Seitige Werkzeugoptionen"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:33
+msgid ""
+"A tool to help in creating a double sided\n"
+"PCB using alignment holes."
+msgstr ""
+"Ein Werkzeug, das beim Erstellen eines doppelseitigen Dokuments hilft\n"
+"PCB mit Ausrichtungslöchern."
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:47
+msgid "Drill dia"
+msgstr "Bohrdurchmesser"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49
+#: AppTools/ToolDblSided.py:363 AppTools/ToolDblSided.py:368
+msgid "Diameter of the drill for the alignment holes."
+msgstr "Durchmesser des Bohrers für die Ausrichtungslöcher."
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:56
+#: AppTools/ToolDblSided.py:377
+msgid "Align Axis"
+msgstr "Achse ausrichten"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71
+#: AppTools/ToolDblSided.py:165 AppTools/ToolDblSided.py:379
+msgid "Mirror vertically (X) or horizontally (Y)."
+msgstr "Vertikal spiegeln (X) oder horizontal (Y)."
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:69
+msgid "Mirror Axis:"
+msgstr "Spiegelachse:"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:80
+#: AppTools/ToolDblSided.py:181
+msgid "Point"
+msgstr "Punkt"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:81
+#: AppTools/ToolDblSided.py:182
+msgid "Box"
+msgstr "Box"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:82
+msgid "Axis Ref"
+msgstr "Achsenreferenz"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:84
+msgid ""
+"The axis should pass through a point or cut\n"
+" a specified box (in a FlatCAM object) through \n"
+"the center."
+msgstr ""
+"Die Achse sollte einen Punkt durchlaufen oder schneiden\n"
+"eine angegebene Box (in einem FlatCAM-Objekt) durch\n"
+"das Zentrum."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:27
+msgid "Calculators Tool Options"
+msgstr "Rechner-Tool-Optionen"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31
+#: AppTools/ToolCalculators.py:25
+msgid "V-Shape Tool Calculator"
+msgstr "V-Shape-Werkzeugrechner"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:33
+msgid ""
+"Calculate the tool diameter for a given V-shape tool,\n"
+"having the tip diameter, tip angle and\n"
+"depth-of-cut as parameters."
+msgstr ""
+"Berechnen Sie den Werkzeugdurchmesser für ein gegebenes V-förmiges "
+"Werkzeug.\n"
+"mit dem Spitzendurchmesser, Spitzenwinkel und\n"
+"Schnitttiefe als Parameter."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50
+#: AppTools/ToolCalculators.py:94
+msgid "Tip Diameter"
+msgstr "Spitzendurchmesser"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52
+#: AppTools/ToolCalculators.py:102
+msgid ""
+"This is the tool tip diameter.\n"
+"It is specified by manufacturer."
+msgstr ""
+"Dies ist der Werkzeugspitzendurchmesser.\n"
+"Es wird vom Hersteller angegeben."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64
+#: AppTools/ToolCalculators.py:105
+msgid "Tip Angle"
+msgstr "Spitzenwinkel"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:66
+msgid ""
+"This is the angle on the tip of the tool.\n"
+"It is specified by manufacturer."
+msgstr ""
+"Dies ist der Winkel an der Spitze des Werkzeugs.\n"
+"Es wird vom Hersteller angegeben."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:80
+msgid ""
+"This is depth to cut into material.\n"
+"In the CNCJob object it is the CutZ parameter."
+msgstr ""
+"Dies ist die Tiefe zum Schneiden in Material.\n"
+"Im CNCJob-Objekt ist dies der Parameter CutZ."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87
+#: AppTools/ToolCalculators.py:27
+msgid "ElectroPlating Calculator"
+msgstr "Galvanikrechner"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89
+#: AppTools/ToolCalculators.py:158
+msgid ""
+"This calculator is useful for those who plate the via/pad/drill holes,\n"
+"using a method like graphite ink or calcium hypophosphite ink or palladium "
+"chloride."
+msgstr ""
+"Dieser Rechner ist nützlich für diejenigen, die die Durchgangslöcher / "
+"Bohrungen / Bohrungen\n"
+"unter Verwendung einer Methode wie Grahit-Tinte oder Calcium-Hypophosphit-"
+"Tinte oder Palladiumchlorid."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:100
+#: AppTools/ToolCalculators.py:167
+msgid "Board Length"
+msgstr "PCB Länge"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102
+#: AppTools/ToolCalculators.py:173
+msgid "This is the board length. In centimeters."
+msgstr "Dies ist die Boardlänge. In Zentimeter."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112
+#: AppTools/ToolCalculators.py:175
+msgid "Board Width"
+msgstr "PCB Breite"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114
+#: AppTools/ToolCalculators.py:181
+msgid "This is the board width.In centimeters."
+msgstr "Dies ist die Breite der Platte in Zentimetern."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119
+#: AppTools/ToolCalculators.py:183
+msgid "Current Density"
+msgstr "Stromdichte"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125
+#: AppTools/ToolCalculators.py:190
+msgid ""
+"Current density to pass through the board. \n"
+"In Amps per Square Feet ASF."
+msgstr ""
+"Stromdichte durch die Platine.\n"
+"In Ampere pro Quadratfuß ASF."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:131
+#: AppTools/ToolCalculators.py:193
+msgid "Copper Growth"
+msgstr "Kupferwachstum"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137
+#: AppTools/ToolCalculators.py:200
+msgid ""
+"How thick the copper growth is intended to be.\n"
+"In microns."
+msgstr ""
+"Wie dick soll das Kupferwachstum sein.\n"
+"In Mikrometern."
+
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:27
+#, fuzzy
+#| msgid "Gerber Options"
+msgid "Corner Markers Options"
+msgstr "Gerber-Optionen"
+
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:44
+#: AppTools/ToolCorners.py:115
+msgid "The thickness of the line that makes the corner marker."
+msgstr ""
+
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:58
+#: AppTools/ToolCorners.py:129
+msgid "The length of the line that makes the corner marker."
+msgstr ""
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:28
+msgid "Cutout Tool Options"
+msgstr "Ausschnittwerkzeug-Optionen"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43
+#: AppTools/ToolCalculators.py:123 AppTools/ToolCutOut.py:129
+msgid "Tool Diameter"
+msgstr "Werkzeugdurchm"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45
+#: AppTools/ToolCutOut.py:131
+msgid ""
+"Diameter of the tool used to cutout\n"
+"the PCB shape out of the surrounding material."
+msgstr ""
+"Durchmesser des zum Ausschneiden verwendeten Werkzeugs\n"
+"die PCB-Form aus dem umgebenden Material."
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:100
+msgid "Object kind"
+msgstr "Objektart"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102
+#: AppTools/ToolCutOut.py:77
+msgid ""
+"Choice of what kind the object we want to cutout is.
- Single: "
+"contain a single PCB Gerber outline object.
- Panel: a panel PCB "
+"Gerber object, which is made\n"
+"out of many individual PCB outlines."
+msgstr ""
+"Auswahl, welche Art von Objekt ausgeschnitten werden soll.
- Einfach "
+": Enthält ein einzelnes PCB-Gerber-Umrissobjekt.
- Panel : "
+"Ein Panel-PCB-Gerber Objekt, dass\n"
+"aus vielen einzelnen PCB-Konturen zusammengesetzt ist."
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109
+#: AppTools/ToolCutOut.py:83
+msgid "Single"
+msgstr "Einzeln"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110
+#: AppTools/ToolCutOut.py:84
+msgid "Panel"
+msgstr "Platte"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117
+#: AppTools/ToolCutOut.py:192
+msgid ""
+"Margin over bounds. A positive value here\n"
+"will make the cutout of the PCB further from\n"
+"the actual PCB border"
+msgstr ""
+"Marge über Grenzen. Ein positiver Wert hier\n"
+"macht den Ausschnitt der Leiterplatte weiter aus\n"
+"die tatsächliche PCB-Grenze"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:130
+#: AppTools/ToolCutOut.py:203
+msgid "Gap size"
+msgstr "Spaltgröße"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:132
+#: AppTools/ToolCutOut.py:205
+msgid ""
+"The size of the bridge gaps in the cutout\n"
+"used to keep the board connected to\n"
+"the surrounding material (the one \n"
+"from which the PCB is cutout)."
+msgstr ""
+"Die Größe der Brückenlücken im Ausschnitt\n"
+"verwendet, um die Platine verbunden zu halten\n"
+"das umgebende Material (das eine\n"
+"von denen die Leiterplatte ausgeschnitten ist)."
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:146
+#: AppTools/ToolCutOut.py:245
+msgid "Gaps"
+msgstr "Spalt"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:148
+msgid ""
+"Number of gaps used for the cutout.\n"
+"There can be maximum 8 bridges/gaps.\n"
+"The choices are:\n"
+"- None - no gaps\n"
+"- lr - left + right\n"
+"- tb - top + bottom\n"
+"- 4 - left + right +top + bottom\n"
+"- 2lr - 2*left + 2*right\n"
+"- 2tb - 2*top + 2*bottom\n"
+"- 8 - 2*left + 2*right +2*top + 2*bottom"
+msgstr ""
+"Anzahl der für den Ausschnitt verwendeten Brückenlücken.\n"
+"Es können maximal 8 Brücken / Lücken vorhanden sein.\n"
+"Die Wahlmöglichkeiten sind:\n"
+"- Keine - keine Lücken\n"
+"- lr \t- links + rechts\n"
+"- tb \t- oben + unten\n"
+"- 4 \t- links + rechts + oben + unten\n"
+"- 2lr \t- 2 * links + 2 * rechts\n"
+"- 2 tb \t- 2 * oben + 2 * unten\n"
+"- 8 \t- 2 * links + 2 * rechts + 2 * oben + 2 * unten"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:170
+#: AppTools/ToolCutOut.py:222
+msgid "Convex Shape"
+msgstr "Konvexe Form"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:172
+#: AppTools/ToolCutOut.py:225
+msgid ""
+"Create a convex shape surrounding the entire PCB.\n"
+"Used only if the source object type is Gerber."
+msgstr ""
+"Erstellen Sie eine konvexe Form, die die gesamte Leiterplatte umgibt.\n"
+"Wird nur verwendet, wenn der Quellobjekttyp Gerber ist."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:27
+msgid "Film Tool Options"
+msgstr "Filmwerkzeugoptionen"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:33
+msgid ""
+"Create a PCB film from a Gerber or Geometry\n"
+"FlatCAM object.\n"
+"The file is saved in SVG format."
+msgstr ""
+"Erstellen Sie einen PCB-Film aus einem Gerber oder einer Geometrie\n"
+"FlatCAM-Objekt\n"
+"Die Datei wird im SVG-Format gespeichert."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:44
+msgid "Film Type"
+msgstr "Filmtyp"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:46 AppTools/ToolFilm.py:283
+msgid ""
+"Generate a Positive black film or a Negative film.\n"
+"Positive means that it will print the features\n"
+"with black on a white canvas.\n"
+"Negative means that it will print the features\n"
+"with white on a black canvas.\n"
+"The Film format is SVG."
+msgstr ""
+"Erzeugen Sie einen positiven schwarzen Film oder einen Negativfilm.\n"
+"Positiv bedeutet, dass die Funktionen gedruckt werden\n"
+"mit schwarz auf einer weißen leinwand.\n"
+"Negativ bedeutet, dass die Features gedruckt werden\n"
+"mit weiß auf einer schwarzen leinwand.\n"
+"Das Filmformat ist SVG."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:57
+msgid "Film Color"
+msgstr "Filmfarbe"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:59
+msgid "Set the film color when positive film is selected."
+msgstr "Stellen Sie die Filmfarbe ein, wenn Positivfilm ausgewählt ist."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:82 AppTools/ToolFilm.py:299
+msgid "Border"
+msgstr "Rand"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:84 AppTools/ToolFilm.py:301
+msgid ""
+"Specify a border around the object.\n"
+"Only for negative film.\n"
+"It helps if we use as a Box Object the same \n"
+"object as in Film Object. It will create a thick\n"
+"black bar around the actual print allowing for a\n"
+"better delimitation of the outline features which are of\n"
+"white color like the rest and which may confound with the\n"
+"surroundings if not for this border."
+msgstr ""
+"Geben Sie einen Rahmen um das Objekt an.\n"
+"Nur für Negativfilm.\n"
+"Es hilft, wenn wir als Boxobjekt das gleiche verwenden\n"
+"Objekt wie in Filmobjekt. Es wird ein dickes schaffen\n"
+"schwarzer Balken um den tatsächlichen Druck, so dass a\n"
+"bessere Abgrenzung der Gliederungsmerkmale von\n"
+"weiße Farbe wie der Rest und die mit der verwechseln kann\n"
+"Umgebung, wenn nicht für diese Grenze."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:101
+#: AppTools/ToolFilm.py:266
+msgid "Scale Stroke"
+msgstr "Skalierungshub"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:103
+#: AppTools/ToolFilm.py:268
+msgid ""
+"Scale the line stroke thickness of each feature in the SVG file.\n"
+"It means that the line that envelope each SVG feature will be thicker or "
+"thinner,\n"
+"therefore the fine features may be more affected by this parameter."
+msgstr ""
+"Skalieren Sie die Strichstärke der einzelnen Features in der SVG-Datei.\n"
+"Dies bedeutet, dass die Linie, die jedes SVG-Feature einhüllt, dicker oder "
+"dünner ist.\n"
+"Daher können die Feinheiten von diesem Parameter stärker beeinflusst werden."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:110
+#: AppTools/ToolFilm.py:124
+msgid "Film Adjustments"
+msgstr "Filmeinstellungen"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:112
+#: AppTools/ToolFilm.py:126
+msgid ""
+"Sometime the printers will distort the print shape, especially the Laser "
+"types.\n"
+"This section provide the tools to compensate for the print distortions."
+msgstr ""
+"Manchmal verzerren die Drucker die Druckform, insbesondere die Lasertypen.\n"
+"In diesem Abschnitt finden Sie die Tools zum Ausgleichen der "
+"Druckverzerrungen."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:119
+#: AppTools/ToolFilm.py:133
+msgid "Scale Film geometry"
+msgstr "Filmgeometrie skalieren"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:121
+#: AppTools/ToolFilm.py:135
+msgid ""
+"A value greater than 1 will stretch the film\n"
+"while a value less than 1 will jolt it."
+msgstr ""
+"Ein Wert größer als 1 streckt den Film\n"
+"Ein Wert unter 1 ruckelt."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:131
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:103
+#: AppTools/ToolFilm.py:145 AppTools/ToolTransform.py:148
+msgid "X factor"
+msgstr "X Faktor"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:140
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:116
+#: AppTools/ToolFilm.py:154 AppTools/ToolTransform.py:168
+msgid "Y factor"
+msgstr "Y Faktor"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:150
+#: AppTools/ToolFilm.py:172
+msgid "Skew Film geometry"
+msgstr "Verzerren Sie die Filmgeometrie"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:152
+#: AppTools/ToolFilm.py:174
+msgid ""
+"Positive values will skew to the right\n"
+"while negative values will skew to the left."
+msgstr ""
+"Positive Werte werden nach rechts verschoben\n"
+"negative Werte werden nach links verschoben."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:162
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:72
+#: AppTools/ToolFilm.py:184 AppTools/ToolTransform.py:97
+msgid "X angle"
+msgstr "X Winkel"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:171
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:86
+#: AppTools/ToolFilm.py:193 AppTools/ToolTransform.py:118
+msgid "Y angle"
+msgstr "Y Winkel"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:182
+#: AppTools/ToolFilm.py:204
+msgid ""
+"The reference point to be used as origin for the skew.\n"
+"It can be one of the four points of the geometry bounding box."
+msgstr ""
+"Der Referenzpunkt, der als Ursprung für den Versatz verwendet werden soll.\n"
+"Dies kann einer der vier Punkte des Geometrie-Begrenzungsrahmens sein."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:185
+#: AppTools/ToolCorners.py:80 AppTools/ToolFiducials.py:87
+#: AppTools/ToolFilm.py:207
+msgid "Bottom Left"
+msgstr "Unten links"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:186
+#: AppTools/ToolCorners.py:88 AppTools/ToolFilm.py:208
+msgid "Top Left"
+msgstr "Oben links"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:187
+#: AppTools/ToolCorners.py:84 AppTools/ToolFilm.py:209
+msgid "Bottom Right"
+msgstr "Unten rechts"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:188
+#: AppTools/ToolFilm.py:210
+msgid "Top right"
+msgstr "Oben rechts"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196
+#: AppTools/ToolFilm.py:227
+msgid "Mirror Film geometry"
+msgstr "Spiegeln Sie die Filmgeometrie"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:198
+#: AppTools/ToolFilm.py:229
+msgid "Mirror the film geometry on the selected axis or on both."
+msgstr ""
+"Spiegeln Sie die Filmgeometrie auf der ausgewählten Achse oder auf beiden."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:212
+#: AppTools/ToolFilm.py:243
+msgid "Mirror axis"
+msgstr "Achse spiegeln"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:222
+#: AppTools/ToolFilm.py:388
+msgid "SVG"
+msgstr "SVG"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:223
+#: AppTools/ToolFilm.py:389
+msgid "PNG"
+msgstr "PNG"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:224
+#: AppTools/ToolFilm.py:390
+msgid "PDF"
+msgstr "PDF"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:227
+#: AppTools/ToolFilm.py:281 AppTools/ToolFilm.py:393
+msgid "Film Type:"
+msgstr "Filmtyp:"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:229
+#: AppTools/ToolFilm.py:395
+msgid ""
+"The file type of the saved film. Can be:\n"
+"- 'SVG' -> open-source vectorial format\n"
+"- 'PNG' -> raster image\n"
+"- 'PDF' -> portable document format"
+msgstr ""
+"Der Dateityp in dem gespeichert werden soll:\n"
+"- 'SVG' -> open-source vectorial format\n"
+"- 'PNG' -> raster image\n"
+"- 'PDF' -> portable document format"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:238
+#: AppTools/ToolFilm.py:404
+msgid "Page Orientation"
+msgstr "Seitenausrichtung"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:251
+#: AppTools/ToolFilm.py:417
+msgid "Page Size"
+msgstr "Seitengröße"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:252
+#: AppTools/ToolFilm.py:418
+msgid "A selection of standard ISO 216 page sizes."
+msgstr "Eine Auswahl von Standard ISO 216 Seitengrößen."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:27
+msgid "NCC Tool Options"
+msgstr "NCC-Tooloptionen"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:49
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:57
+msgid "Comma separated values"
+msgstr "Komma-getrennte Werte"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:55
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:63
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:64 AppTools/ToolNCC.py:215
+#: AppTools/ToolNCC.py:223 AppTools/ToolPaint.py:197 AppTools/ToolPaint.py:205
+msgid ""
+"Default tool type:\n"
+"- 'V-shape'\n"
+"- Circular"
+msgstr ""
+"Standardwerkzeugtyp:\n"
+"- \"V-Form\"\n"
+"- Rundschreiben"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:60
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:69 AppTools/ToolNCC.py:220
+#: AppTools/ToolPaint.py:202
+msgid "V-shape"
+msgstr "V-Form"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:100
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:109
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:107
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:116
+#: AppTools/ToolNCC.py:262 AppTools/ToolNCC.py:271 AppTools/ToolPaint.py:244
+#: AppTools/ToolPaint.py:253
+msgid ""
+"Depth of cut into material. Negative value.\n"
+"In FlatCAM units."
+msgstr ""
+"Schnitttiefe in Material. Negativer Wert.\n"
+"In FlatCAM-Einheiten."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:119
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:125
+#: AppTools/ToolNCC.py:280 AppTools/ToolPaint.py:262
+msgid ""
+"Diameter for the new tool to add in the Tool Table.\n"
+"If the tool is V-shape type then this value is automatically\n"
+"calculated from the other parameters."
+msgstr ""
+"Durchmesser des neuen Werkzeugs das in die Werkzeugtabelle\n"
+"aufgenommen werden soll. Wenn das Tool V-Förmig ist, wird dieser\n"
+"Wert aus den anderen Parametern berechnet."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:156
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:142
+#: AppTools/ToolNCC.py:174 AppTools/ToolPaint.py:157
+msgid "Tool order"
+msgstr "Werkzeugbestellung"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:157
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:167
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:143
+#: AppTools/ToolNCC.py:175 AppTools/ToolNCC.py:185 AppTools/ToolPaint.py:158
+#: AppTools/ToolPaint.py:168
+msgid ""
+"This set the way that the tools in the tools table are used.\n"
+"'No' --> means that the used order is the one in the tool table\n"
+"'Forward' --> means that the tools will be ordered from small to big\n"
+"'Reverse' --> means that the tools will ordered from big to small\n"
+"\n"
+"WARNING: using rest machining will automatically set the order\n"
+"in reverse and disable this control."
+msgstr ""
+"Hiermit wird festgelegt, wie die Werkzeuge in der Werkzeugtabelle verwendet "
+"werden.\n"
+"'Nein' -> bedeutet, dass die verwendete Reihenfolge die in der "
+"Werkzeugtabelle ist\n"
+"'Weiter' -> bedeutet, dass die Werkzeuge von klein nach groß sortiert "
+"werden\n"
+"'Rückwärts' -> Menus, die die Werkzeuge von groß nach klein ordnen\n"
+"\n"
+"WARNUNG: Bei Verwendung der Restbearbeitung wird die Reihenfolge automatisch "
+"festgelegt\n"
+"in umgekehrter Richtung und deaktivieren Sie diese Steuerung."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:165
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:151
+#: AppTools/ToolNCC.py:183 AppTools/ToolPaint.py:166
+msgid "Forward"
+msgstr "Vorwärts"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:166
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:152
+#: AppTools/ToolNCC.py:184 AppTools/ToolPaint.py:167
+msgid "Reverse"
+msgstr "Rückwärts"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:266
+msgid "Offset value"
+msgstr "Offsetwert"
+
+# What the hack is a FlatCAM unit??
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:268
+msgid ""
+"If used, it will add an offset to the copper features.\n"
+"The copper clearing will finish to a distance\n"
+"from the copper features.\n"
+"The value can be between 0.0 and 9999.9 FlatCAM units."
+msgstr ""
+"Bei Verwendung wird den Kupferelementen ein Offset hinzugefügt.\n"
+"Die Kupferreinigung wird bei einer gewissen Entfernung\n"
+"zu den Kupferflächen enden.\n"
+"Der Wert kann zwischen 0 und 10 FlatCAM-Einheiten liegen."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:288
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:244
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:245
+#: AppTools/ToolNCC.py:512 AppTools/ToolPaint.py:441
+msgid "Rest Machining"
+msgstr "Restbearbeitung"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:290 AppTools/ToolNCC.py:516
+msgid ""
+"If checked, use 'rest machining'.\n"
+"Basically it will clear copper outside PCB features,\n"
+"using the biggest tool and continue with the next tools,\n"
+"from bigger to smaller, to clear areas of copper that\n"
+"could not be cleared by previous tool, until there is\n"
+"no more copper to clear or there are no more tools.\n"
+"If not checked, use the standard algorithm."
+msgstr ""
+"Wenn aktiviert, verwenden Sie \"Restbearbeitung\".\n"
+"Grundsätzlich wird Kupfer außerhalb der PCB-Merkmale gelöscht.\n"
+"das größte Werkzeug verwenden und mit den nächsten Werkzeugen fortfahren,\n"
+"von größeren zu kleineren, um Kupferbereiche zu reinigen\n"
+"konnte nicht durch vorheriges Werkzeug gelöscht werden, bis es gibt\n"
+"kein kupfer mehr zum löschen oder es gibt keine werkzeuge mehr.\n"
+"Wenn nicht aktiviert, verwenden Sie den Standardalgorithmus."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:313 AppTools/ToolNCC.py:541
+msgid ""
+"Selection of area to be processed.\n"
+"- 'Itself' - the processing extent is based on the object that is "
+"processed.\n"
+" - 'Area Selection' - left mouse click to start selection of the area to be "
+"processed.\n"
+"- 'Reference Object' - will process the area specified by another object."
+msgstr ""
+"Auswahl des zu verarbeitenden Bereichs.\n"
+"- 'Selbst' - Der Verarbeitungsumfang basiert auf dem Objekt, das verarbeitet "
+"wird.\n"
+"- 'Bereichsauswahl' - Klicken Sie mit der linken Maustaste, um die Auswahl "
+"des zu verarbeitenden Bereichs zu starten.\n"
+"- 'Referenzobjekt' - verarbeitet den von einem anderen Objekt angegebenen "
+"Bereich."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:339
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303
+msgid "Normal"
+msgstr "NormalFormat"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:340
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:304
+msgid "Progressive"
+msgstr "Progressiv"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:341
+msgid "NCC Plotting"
+msgstr "NCC-Plotten"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:343
+msgid ""
+"- 'Normal' - normal plotting, done at the end of the NCC job\n"
+"- 'Progressive' - after each shape is generated it will be plotted."
+msgstr ""
+"- 'Normal' - normales Plotten am Ende des NCC-Jobs\n"
+"- 'Progressiv' - Nachdem jede Form generiert wurde, wird sie geplottet."
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:27
+msgid "Paint Tool Options"
+msgstr "Paint werkzeug-Optionen"
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:33
+msgid "Parameters:"
+msgstr "Parameter:"
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:247
+#: AppTools/ToolPaint.py:444
+msgid ""
+"If checked, use 'rest machining'.\n"
+"Basically it will clear copper outside PCB features,\n"
+"using the biggest tool and continue with the next tools,\n"
+"from bigger to smaller, to clear areas of copper that\n"
+"could not be cleared by previous tool, until there is\n"
+"no more copper to clear or there are no more tools.\n"
+"\n"
+"If not checked, use the standard algorithm."
+msgstr ""
+"Wenn aktiviert, verwenden Sie \"Restbearbeitung\".\n"
+"Grundsätzlich wird Kupfer außerhalb der PCB-Merkmale gelöscht.\n"
+"das größte Werkzeug verwenden und mit den nächsten Werkzeugen fortfahren,\n"
+"von größeren zu kleineren, um Kupferbereiche zu reinigen\n"
+"konnte nicht durch vorheriges Werkzeug gelöscht werden, bis es gibt\n"
+"kein kupfer mehr zum löschen oder es gibt keine werkzeuge mehr.\n"
+"\n"
+"Wenn nicht aktiviert, verwenden Sie den Standardalgorithmus."
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:260
+#: AppTools/ToolPaint.py:457
+msgid ""
+"Selection of area to be processed.\n"
+"- 'Polygon Selection' - left mouse click to add/remove polygons to be "
+"processed.\n"
+"- 'Area Selection' - left mouse click to start selection of the area to be "
+"processed.\n"
+"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple "
+"areas.\n"
+"- 'All Polygons' - the process will start after click.\n"
+"- 'Reference Object' - will process the area specified by another object."
+msgstr ""
+"Auswahl des zu verarbeitenden Bereichs.\n"
+"- 'Polygonauswahl' - Klicken Sie mit der linken Maustaste, um zu "
+"verarbeitende Polygone hinzuzufügen / zu entfernen.\n"
+"- 'Bereichsauswahl' - Klicken Sie mit der linken Maustaste, um die Auswahl "
+"des zu verarbeitenden Bereichs zu starten.\n"
+"Wenn Sie eine Modifizierertaste gedrückt halten (STRG oder SHIFT), können "
+"Sie mehrere Bereiche hinzufügen.\n"
+"- 'Alle Polygone' - Der Vorgang wird nach dem Klicken gestartet.\n"
+"- 'Referenzobjekt' - verarbeitet den von einem anderen Objekt angegebenen "
+"Bereich."
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
+#: AppTools/ToolPaint.py:485 AppTools/ToolPaint.py:941
+#: AppTools/ToolPaint.py:1431 tclCommands/TclCommandPaint.py:164
+msgid "Polygon Selection"
+msgstr "Polygon auswahl"
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
+#: AppTools/ToolPaint.py:485 AppTools/ToolPaint.py:1426 defaults.py:433
+#: tclCommands/TclCommandPaint.py:162
+msgid "All Polygons"
+msgstr "Alle Polygone"
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:305
+msgid "Paint Plotting"
+msgstr "Malen Sie Plotten"
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:307
+msgid ""
+"- 'Normal' - normal plotting, done at the end of the Paint job\n"
+"- 'Progressive' - after each shape is generated it will be plotted."
+msgstr ""
+"- 'Normal' - normales Plotten am Ende des Malvorgangs\n"
+"- 'Progressiv' - Nachdem jede Form generiert wurde, wird sie geplottet."
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:27
+msgid "Panelize Tool Options"
+msgstr "Panelize Werkzeugoptionen"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:33
+msgid ""
+"Create an object that contains an array of (x, y) elements,\n"
+"each element is a copy of the source object spaced\n"
+"at a X distance, Y distance of each other."
+msgstr ""
+"Erstellen Sie ein Objekt, das ein Array von (x, y) Elementen enthält.\n"
+"Jedes Element ist eine Kopie des Quellobjekts\n"
+"in einem X-Abstand, Y-Abstand voneinander."
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:50
+#: AppTools/ToolPanelize.py:165
+msgid "Spacing cols"
+msgstr "Abstandspalten"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:52
+#: AppTools/ToolPanelize.py:167
+msgid ""
+"Spacing between columns of the desired panel.\n"
+"In current units."
+msgstr ""
+"Abstand zwischen den Spalten des gewünschten Bereichs.\n"
+"In aktuellen Einheiten."
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:64
+#: AppTools/ToolPanelize.py:177
+msgid "Spacing rows"
+msgstr "Abstand Reihen"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:66
+#: AppTools/ToolPanelize.py:179
+msgid ""
+"Spacing between rows of the desired panel.\n"
+"In current units."
+msgstr ""
+"Abstand zwischen den Reihen des gewünschten Feldes.\n"
+"In aktuellen Einheiten."
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:77
+#: AppTools/ToolPanelize.py:188
+msgid "Columns"
+msgstr "Säulen"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:79
+#: AppTools/ToolPanelize.py:190
+msgid "Number of columns of the desired panel"
+msgstr "Anzahl der Spalten des gewünschten Bereichs"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:89
+#: AppTools/ToolPanelize.py:198
+msgid "Rows"
+msgstr "Reihen"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:91
+#: AppTools/ToolPanelize.py:200
+msgid "Number of rows of the desired panel"
+msgstr "Anzahl der Zeilen des gewünschten Panels"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:98
+#: AppTools/ToolPanelize.py:211
+msgid "Geo"
+msgstr "Geo"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:99
+#: AppTools/ToolPanelize.py:212
+msgid "Panel Type"
+msgstr "Panel-Typ"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:101
+msgid ""
+"Choose the type of object for the panel object:\n"
+"- Gerber\n"
+"- Geometry"
+msgstr ""
+"Wählen Sie den Objekttyp für das Panel-Objekt:\n"
+"- Gerber\n"
+"- Geometrie"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:110
+msgid "Constrain within"
+msgstr "Beschränkung innerhalb"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:112
+#: AppTools/ToolPanelize.py:224
+msgid ""
+"Area define by DX and DY within to constrain the panel.\n"
+"DX and DY values are in current units.\n"
+"Regardless of how many columns and rows are desired,\n"
+"the final panel will have as many columns and rows as\n"
+"they fit completely within selected area."
+msgstr ""
+"Bereich definieren durch DX und DY innerhalb des Panels.\n"
+"DX- und DY-Werte sind in aktuellen Einheiten angegeben.\n"
+"Unabhängig davon, wie viele Spalten und Zeilen gewünscht werden,\n"
+"Das letzte Panel enthält so viele Spalten und Zeilen wie\n"
+"Sie passen vollständig in den ausgewählten Bereich."
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:125
+#: AppTools/ToolPanelize.py:236
+msgid "Width (DX)"
+msgstr "Breite (DX)"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:127
+#: AppTools/ToolPanelize.py:238
+msgid ""
+"The width (DX) within which the panel must fit.\n"
+"In current units."
+msgstr ""
+"Die Breite (DX), in die das Panel passen muss.\n"
+"In aktuellen Einheiten."
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:138
+#: AppTools/ToolPanelize.py:247
+msgid "Height (DY)"
+msgstr "Höhe (DY)"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:140
+#: AppTools/ToolPanelize.py:249
+msgid ""
+"The height (DY)within which the panel must fit.\n"
+"In current units."
+msgstr ""
+"Die Höhe (DY), in die die Platte passen muss.\n"
+"In aktuellen Einheiten."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:27
+msgid "SolderPaste Tool Options"
+msgstr "Lötpaste-Werkzeug-Optionen"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:33
+msgid ""
+"A tool to create GCode for dispensing\n"
+"solder paste onto a PCB."
+msgstr ""
+"Ein Werkzeug zum Erstellen von GCode für die Ausgabe\n"
+"Lotpaste auf eine Leiterplatte."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:54
+msgid "New Nozzle Dia"
+msgstr "Neuer Düsendurchmesser"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:56
+#: AppTools/ToolSolderPaste.py:107
+msgid "Diameter for the new Nozzle tool to add in the Tool Table"
+msgstr ""
+"Durchmesser für das neue Düsenwerkzeug, das in die Werkzeugtabelle eingefügt "
+"werden soll"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:72
+#: AppTools/ToolSolderPaste.py:183
+msgid "Z Dispense Start"
+msgstr "Z Dosierbeginn"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:74
+#: AppTools/ToolSolderPaste.py:185
+msgid "The height (Z) when solder paste dispensing starts."
+msgstr "Die Höhe (Z) bei der Lotpastendosierung."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:85
+#: AppTools/ToolSolderPaste.py:195
+msgid "Z Dispense"
+msgstr "Z-Abgabe"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:87
+#: AppTools/ToolSolderPaste.py:197
+msgid "The height (Z) when doing solder paste dispensing."
+msgstr "Die Höhe (Z) bei der Lotpastendosierung."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:98
+#: AppTools/ToolSolderPaste.py:207
+msgid "Z Dispense Stop"
+msgstr "Z Abgabestopp"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:100
+#: AppTools/ToolSolderPaste.py:209
+msgid "The height (Z) when solder paste dispensing stops."
+msgstr "Die Höhe (Z) bei der Lotpastendosierung stoppt."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:111
+#: AppTools/ToolSolderPaste.py:219
+msgid "Z Travel"
+msgstr "Z Reise"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:113
+#: AppTools/ToolSolderPaste.py:221
+msgid ""
+"The height (Z) for travel between pads\n"
+"(without dispensing solder paste)."
+msgstr ""
+"Die Höhe (Z) für den Weg zwischen Pads\n"
+"(ohne Lotpaste zu dosieren)."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:125
+#: AppTools/ToolSolderPaste.py:232
+msgid "Z Toolchange"
+msgstr "Z Werkzeugwechsel"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:127
+#: AppTools/ToolSolderPaste.py:234
+msgid "The height (Z) for tool (nozzle) change."
+msgstr "Die Höhe (Z) für Werkzeug (Düse) ändert sich."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:136
+#: AppTools/ToolSolderPaste.py:242
+msgid ""
+"The X,Y location for tool (nozzle) change.\n"
+"The format is (x, y) where x and y are real numbers."
+msgstr ""
+"Die X, Y-Position für Werkzeug (Düse) ändert sich.\n"
+"Das Format ist (x, y), wobei x und y reelle Zahlen sind."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:150
+#: AppTools/ToolSolderPaste.py:255
+msgid "Feedrate (speed) while moving on the X-Y plane."
+msgstr "Vorschub (Geschwindigkeit) während der Bewegung auf der X-Y-Ebene."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:163
+#: AppTools/ToolSolderPaste.py:267
+msgid ""
+"Feedrate (speed) while moving vertically\n"
+"(on Z plane)."
+msgstr ""
+"Vorschub (Geschwindigkeit) bei vertikaler Bewegung\n"
+"(auf der Z-Ebene)."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:175
+#: AppTools/ToolSolderPaste.py:278
+msgid "Feedrate Z Dispense"
+msgstr "Vorschub Z Dosierung"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:177
+msgid ""
+"Feedrate (speed) while moving up vertically\n"
+"to Dispense position (on Z plane)."
+msgstr ""
+"Vorschub (Geschwindigkeit) bei vertikaler Aufwärtsbewegung\n"
+"in Ausgabeposition (in der Z-Ebene)."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:188
+#: AppTools/ToolSolderPaste.py:290
+msgid "Spindle Speed FWD"
+msgstr "Spindeldrehzahl FWD"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:190
+#: AppTools/ToolSolderPaste.py:292
+msgid ""
+"The dispenser speed while pushing solder paste\n"
+"through the dispenser nozzle."
+msgstr ""
+"Die Spendergeschwindigkeit beim Schieben der Lötpaste\n"
+"durch die Spenderdüse."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:202
+#: AppTools/ToolSolderPaste.py:303
+msgid "Dwell FWD"
+msgstr "Verweilzeit FWD"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:204
+#: AppTools/ToolSolderPaste.py:305
+msgid "Pause after solder dispensing."
+msgstr "Pause nach dem Löten."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:214
+#: AppTools/ToolSolderPaste.py:314
+msgid "Spindle Speed REV"
+msgstr "Spindeldrehzahl REV"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:216
+#: AppTools/ToolSolderPaste.py:316
+msgid ""
+"The dispenser speed while retracting solder paste\n"
+"through the dispenser nozzle."
+msgstr ""
+"Die Spendergeschwindigkeit beim Einfahren der Lötpaste\n"
+"durch die Spenderdüse."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:228
+#: AppTools/ToolSolderPaste.py:327
+msgid "Dwell REV"
+msgstr "Verweilen REV"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:230
+#: AppTools/ToolSolderPaste.py:329
+msgid ""
+"Pause after solder paste dispenser retracted,\n"
+"to allow pressure equilibrium."
+msgstr ""
+"Pause nachdem Lotpastendispenser eingefahren wurde,\n"
+"das Druckgleichgewicht zu ermöglichen."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:239
+#: AppTools/ToolSolderPaste.py:337
+msgid "Files that control the GCode generation."
+msgstr "Dateien, die die GCode-Generierung steuern."
+
+#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:27
+msgid "Substractor Tool Options"
+msgstr "Substractor-Werkzeug-Optionen"
+
+#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:33
+msgid ""
+"A tool to substract one Gerber or Geometry object\n"
+"from another of the same type."
+msgstr ""
+"Ein Werkzeug zum Subtrahieren eines Gerber- oder Geometrieobjekts\n"
+"von einem anderen des gleichen Typs."
+
+#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:38 AppTools/ToolSub.py:155
+msgid "Close paths"
+msgstr "Wege schließen"
+
+#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:39
+msgid ""
+"Checking this will close the paths cut by the Geometry substractor object."
+msgstr ""
+"Wenn Sie dies aktivieren, werden die vom Geometry-Substractor-Objekt "
+"geschnittenen Pfade geschlossen."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:27
+msgid "Transform Tool Options"
+msgstr "Umwandlungswerkzeug-Optionen"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:33
+msgid ""
+"Various transformations that can be applied\n"
+"on a FlatCAM object."
+msgstr ""
+"Verschiedene Transformationen, die angewendet werden können\n"
+"auf einem FlatCAM-Objekt."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:64
+msgid "Skew"
+msgstr "Neigung"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:105
+#: AppTools/ToolTransform.py:150
+msgid "Factor for scaling on X axis."
+msgstr "Faktor für die Skalierung auf der X-Achse."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:118
+#: AppTools/ToolTransform.py:170
+msgid "Factor for scaling on Y axis."
+msgstr "Faktor für die Skalierung auf der Y-Achse."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:126
+#: AppTools/ToolTransform.py:191
+msgid ""
+"Scale the selected object(s)\n"
+"using the Scale_X factor for both axis."
+msgstr ""
+"Skalieren Sie die ausgewählten Objekte\n"
+"Verwenden des Skalierungsfaktors X für beide Achsen."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:134
+#: AppTools/ToolTransform.py:198
+msgid ""
+"Scale the selected object(s)\n"
+"using the origin reference when checked,\n"
+"and the center of the biggest bounding box\n"
+"of the selected objects when unchecked."
+msgstr ""
+"Skalieren Sie die ausgewählten Objekte\n"
+"unter Verwendung der Ursprungsreferenz, wenn geprüft\n"
+"und die Mitte der größten Begrenzungsbox\n"
+"der ausgewählten Objekte, wenn sie nicht markiert sind."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:150
+#: AppTools/ToolTransform.py:217
+msgid "X val"
+msgstr "X-Wert"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:152
+#: AppTools/ToolTransform.py:219
+msgid "Distance to offset on X axis. In current units."
+msgstr "Abstand zum Offset auf der X-Achse. In aktuellen Einheiten."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:163
+#: AppTools/ToolTransform.py:237
+msgid "Y val"
+msgstr "Y-Wert"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:165
+#: AppTools/ToolTransform.py:239
+msgid "Distance to offset on Y axis. In current units."
+msgstr "Abstand zum Offset auf der Y-Achse. In aktuellen Einheiten."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:171
+#: AppTools/ToolDblSided.py:67 AppTools/ToolDblSided.py:95
+#: AppTools/ToolDblSided.py:125
+msgid "Mirror"
+msgstr "Spiegeln"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:175
+#: AppTools/ToolTransform.py:283
+msgid "Mirror Reference"
+msgstr "Spiegelreferenz"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:177
+#: AppTools/ToolTransform.py:285
+msgid ""
+"Flip the selected object(s)\n"
+"around the point in Point Entry Field.\n"
+"\n"
+"The point coordinates can be captured by\n"
+"left click on canvas together with pressing\n"
+"SHIFT key. \n"
+"Then click Add button to insert coordinates.\n"
+"Or enter the coords in format (x, y) in the\n"
+"Point Entry field and click Flip on X(Y)"
+msgstr ""
+"Die ausgewählten Objekte kippen\n"
+"um den Punkt im Eingabefeld.\n"
+"\n"
+"Die Punktkoordinaten können mit erfasst werden\n"
+"Klicken Sie mit der linken Maustaste auf die Leinwand\n"
+"Shift Taste.\n"
+"Klicken Sie dann auf die Schaltfläche Hinzufügen, um die Koordinaten "
+"einzufügen.\n"
+"Oder geben Sie die Koordinaten im Format (x, y) in ein\n"
+"Punkt-Eingabefeld und klicken Sie auf X (Y) drehen"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:188
+msgid "Mirror Reference point"
+msgstr "Referenzpunkt spiegeln"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:190
+msgid ""
+"Coordinates in format (x, y) used as reference for mirroring.\n"
+"The 'x' in (x, y) will be used when using Flip on X and\n"
+"the 'y' in (x, y) will be used when using Flip on Y and"
+msgstr ""
+"Koordinaten im Format (x, y), die als Referenz für die Spiegelung verwendet "
+"werden.\n"
+"Das 'x' in (x, y) wird verwendet, wenn Sie bei X und\n"
+"Das 'y' in (x, y) wird verwendet, wenn Flip auf Y und verwendet wird"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:203
+#: AppTools/ToolDistance.py:505 AppTools/ToolDistanceMin.py:286
+#: AppTools/ToolTransform.py:332
+msgid "Distance"
+msgstr "Entfernung"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:205
+#: AppTools/ToolTransform.py:334
+msgid ""
+"A positive value will create the effect of dilation,\n"
+"while a negative value will create the effect of erosion.\n"
+"Each geometry element of the object will be increased\n"
+"or decreased with the 'distance'."
+msgstr ""
+"Ein positiver Wert führt zu einem Dilatationseffekt.\n"
+"während ein negativer Wert den Effekt der Abnutzung verursacht.\n"
+"Jedes Geometrieelement des Objekts wird vergrößert\n"
+"oder mit der \"Entfernung\" verringert."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:222
+#: AppTools/ToolTransform.py:359
+msgid ""
+"A positive value will create the effect of dilation,\n"
+"while a negative value will create the effect of erosion.\n"
+"Each geometry element of the object will be increased\n"
+"or decreased to fit the 'Value'. Value is a percentage\n"
+"of the initial dimension."
+msgstr ""
+"Ein positiver Wert erzeugt den Effekt der Dilatation.\n"
+"während ein negativer Wert den Effekt der Erosion erzeugt.\n"
+"Jedes Geometrieelement des Objekts wird vergrößert\n"
+"oder verringert, um dem 'Wert' zu entsprechen. Wert ist ein Prozentsatz\n"
+"der ursprünglichen Dimension."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:241
+#: AppTools/ToolTransform.py:385
+msgid ""
+"If checked then the buffer will surround the buffered shape,\n"
+"every corner will be rounded.\n"
+"If not checked then the buffer will follow the exact geometry\n"
+"of the buffered shape."
+msgstr ""
+"Wenn diese Option aktiviert ist, umgibt der Puffer die gepufferte Form.\n"
+"Jede Ecke wird abgerundet.\n"
+"Wenn nicht markiert, folgt der Puffer der exakten Geometrie\n"
+"der gepufferten Form."
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:27
+msgid "Autocompleter Keywords"
+msgstr "Autocompleter-Schlüsselwörter"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:30
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:40
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:30
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:30
+msgid "Restore"
+msgstr "Wiederherstellen"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:31
+msgid "Restore the autocompleter keywords list to the default state."
+msgstr ""
+"Stellen Sie den Standardzustand der Autocompleter-Schlüsselwortliste wieder "
+"her."
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:33
+msgid "Delete all autocompleter keywords from the list."
+msgstr "Löschen Sie alle Autocompleter-Schlüsselwörter aus der Liste."
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:41
+msgid "Keywords list"
+msgstr "Liste der Stichwörter"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:43
+msgid ""
+"List of keywords used by\n"
+"the autocompleter in FlatCAM.\n"
+"The autocompleter is installed\n"
+"in the Code Editor and for the Tcl Shell."
+msgstr ""
+"Liste der von verwendeten Schlüsselwörter\n"
+"der Autocompleter in FlatCAM.\n"
+"Der Autocompleter ist installiert\n"
+"im Code-Editor und für die Tcl-Shell."
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:64
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:73
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:63
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:62
+msgid "Extension"
+msgstr "Erweiterung"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:65
+msgid "A keyword to be added or deleted to the list."
+msgstr ""
+"Ein Schlüsselwort, das der Liste hinzugefügt oder gelöscht werden soll."
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:73
+msgid "Add keyword"
+msgstr "Keyword hinzufügen"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:74
+msgid "Add a keyword to the list"
+msgstr "Fügen Sie der Liste ein Schlüsselwort hinzu"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:75
+msgid "Delete keyword"
+msgstr "Stichwort löschen"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:76
+msgid "Delete a keyword from the list"
+msgstr "Löschen Sie ein Schlüsselwort aus der Liste"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:27
+msgid "Excellon File associations"
+msgstr "Excellon-Dateizuordnungen"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:41
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:31
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:31
+msgid "Restore the extension list to the default state."
+msgstr "Stellen Sie den Standardzustand der Erweiterungsliste wieder her."
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:43
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:33
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:33
+msgid "Delete all extensions from the list."
+msgstr "Löschen Sie alle Erweiterungen aus der Liste."
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:51
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:41
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:41
+msgid "Extensions list"
+msgstr "Erweiterungsliste"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:53
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:43
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:43
+msgid ""
+"List of file extensions to be\n"
+"associated with FlatCAM."
+msgstr ""
+"Liste der zu verwendenden Dateierweiterungen\n"
+"im Zusammenhang mit FlatCAM."
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:74
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:64
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:63
+msgid "A file extension to be added or deleted to the list."
+msgstr "A file extension to be added or deleted to the list."
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:82
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:72
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:71
+msgid "Add Extension"
+msgstr "Erweiterung hinzufügen"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:83
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:73
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:72
+msgid "Add a file extension to the list"
+msgstr "Fügen Sie der Liste eine Dateierweiterung hinzu"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:84
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:74
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:73
+msgid "Delete Extension"
+msgstr "Erweiterung löschen"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:85
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:75
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:74
+msgid "Delete a file extension from the list"
+msgstr "Löschen Sie eine Dateierweiterung aus der Liste"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:92
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:82
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:81
+msgid "Apply Association"
+msgstr "Assoziation anwenden"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:93
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:83
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:82
+msgid ""
+"Apply the file associations between\n"
+"FlatCAM and the files with above extensions.\n"
+"They will be active after next logon.\n"
+"This work only in Windows."
+msgstr ""
+"Wenden Sie die Dateizuordnungen zwischen an\n"
+"FlatCAM und die Dateien mit den oben genannten Erweiterungen.\n"
+"Sie sind nach der nächsten Anmeldung aktiv.\n"
+"Dies funktioniert nur unter Windows."
+
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:27
+msgid "GCode File associations"
+msgstr "GCode-Dateizuordnungen"
+
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:27
+msgid "Gerber File associations"
+msgstr "Gerber Dateizuordnungen"
+
+#: AppObjects/AppObject.py:134
+#, python-brace-format
+msgid ""
+"Object ({kind}) failed because: {error} \n"
+"\n"
+msgstr ""
+"Objekt ({kind}) gescheitert weil: {error} \n"
+"\n"
+
+#: AppObjects/AppObject.py:149
+msgid "Converting units to "
+msgstr "Einheiten umrechnen in "
+
+#: AppObjects/AppObject.py:254
+msgid "CREATE A NEW FLATCAM TCL SCRIPT"
+msgstr "NEUES FLATCAL TCL SCRIPT ERZEUGEN"
+
+#: AppObjects/AppObject.py:255
+msgid "TCL Tutorial is here"
+msgstr "Das TCL Tutorial ist hier"
+
+#: AppObjects/AppObject.py:257
+msgid "FlatCAM commands list"
+msgstr "FlatCAM Befehlsliste"
+
+#: AppObjects/AppObject.py:258
+msgid ""
+"Type >help< followed by Run Code for a list of FlatCAM Tcl Commands "
+"(displayed in Tcl Shell)."
+msgstr ""
+"Geben Sie >help< gefolgt von Run Code ein, um eine Liste der FlatCAM Tcl-"
+"Befehle anzuzeigen (angezeigt in der Tcl-Shell)."
+
+#: AppObjects/AppObject.py:304 AppObjects/AppObject.py:310
+#: AppObjects/AppObject.py:316 AppObjects/AppObject.py:322
+#: AppObjects/AppObject.py:328 AppObjects/AppObject.py:334
+msgid "created/selected"
+msgstr "erstellt / ausgewählt"
+
+#: AppObjects/AppObject.py:349 AppObjects/FlatCAMObj.py:246
+#: AppObjects/FlatCAMObj.py:277 AppObjects/FlatCAMObj.py:293
+#: AppObjects/FlatCAMObj.py:373 AppTools/ToolCopperThieving.py:1487
+#: AppTools/ToolCorners.py:394 AppTools/ToolFiducials.py:810
+#: AppTools/ToolMove.py:229 AppTools/ToolQRCode.py:728 App_Main.py:4369
+msgid "Plotting"
+msgstr "Plotten"
+
+#: AppObjects/FlatCAMCNCJob.py:429 AppObjects/FlatCAMDocument.py:71
+#: AppObjects/FlatCAMScript.py:82
+msgid "Basic"
+msgstr "Basic"
+
+#: AppObjects/FlatCAMCNCJob.py:435 AppObjects/FlatCAMDocument.py:75
+#: AppObjects/FlatCAMScript.py:86
+msgid "Advanced"
+msgstr "Erweitert"
+
+#: AppObjects/FlatCAMCNCJob.py:478
+msgid "Plotting..."
+msgstr "Zeichnung..."
+
+#: AppObjects/FlatCAMCNCJob.py:507 AppObjects/FlatCAMCNCJob.py:512
+#: AppTools/ToolSolderPaste.py:1499
+msgid "Export Machine Code ..."
+msgstr "Maschinencode exportieren ..."
+
+#: AppObjects/FlatCAMCNCJob.py:517 AppTools/ToolSolderPaste.py:1503
+msgid "Export Machine Code cancelled ..."
+msgstr "Maschinencode exportieren abgebrochen ..."
+
+#: AppObjects/FlatCAMCNCJob.py:538
+msgid "Machine Code file saved to"
+msgstr "Maschinencode-Datei gespeichert in"
+
+#: AppObjects/FlatCAMCNCJob.py:548 AppObjects/FlatCAMScript.py:134
+#: App_Main.py:7205
+msgid "Loading..."
+msgstr "Wird geladen..."
+
+#: AppObjects/FlatCAMCNCJob.py:562 App_Main.py:7302
+msgid "Code Editor"
+msgstr "Code-Editor"
+
+#: AppObjects/FlatCAMCNCJob.py:599 AppTools/ToolCalibration.py:1097
+msgid "Loaded Machine Code into Code Editor"
+msgstr "Maschinencode in den Code-Editor geladen"
+
+#: AppObjects/FlatCAMCNCJob.py:740
+msgid "This CNCJob object can't be processed because it is a"
+msgstr "Dieses CNCJob-Objekt kann nicht verarbeitet werden, da es sich um ein"
+
+#: AppObjects/FlatCAMCNCJob.py:742
+msgid "CNCJob object"
+msgstr "CNCJob-Objekt"
+
+#: AppObjects/FlatCAMCNCJob.py:922
+msgid ""
+"G-code does not have a G94 code and we will not include the code in the "
+"'Prepend to GCode' text box"
+msgstr ""
+"G-Code hat keinen G94-Code und wir werden den Code nicht in das Textfeld "
+"\"Vor dem GCode\" aufnehmen"
+
+#: AppObjects/FlatCAMCNCJob.py:933
+msgid "Cancelled. The Toolchange Custom code is enabled but it's empty."
+msgstr ""
+"Abgebrochen. Der benutzerdefinierte Code zum Ändern des Werkzeugs ist "
+"aktiviert, aber er ist leer."
+
+#: AppObjects/FlatCAMCNCJob.py:938
+msgid "Toolchange G-code was replaced by a custom code."
+msgstr ""
+"Der Werkzeugwechsel-G-Code wurde durch einen benutzerdefinierten Code "
+"ersetzt."
+
+#: AppObjects/FlatCAMCNCJob.py:986 AppObjects/FlatCAMCNCJob.py:996
+msgid ""
+"The used preprocessor file has to have in it's name: 'toolchange_custom'"
+msgstr ""
+"Die verwendete Postprozessor-Datei muss im Namen enthalten sein: "
+"'toolchange_custom'"
+
+#: AppObjects/FlatCAMCNCJob.py:999
+msgid "There is no preprocessor file."
+msgstr "Es gibt keine Postprozessor-Datei."
+
+#: AppObjects/FlatCAMDocument.py:175
+msgid "Document Editor"
+msgstr "Dokumenteditor"
+
+#: AppObjects/FlatCAMExcellon.py:527 AppObjects/FlatCAMExcellon.py:825
+#: AppObjects/FlatCAMGeometry.py:322 AppObjects/FlatCAMGeometry.py:852
+#: AppTools/ToolNCC.py:811 AppTools/ToolNCC.py:1196 AppTools/ToolPaint.py:778
+#: AppTools/ToolPaint.py:1170
+msgid "Multiple Tools"
+msgstr "Mehrere Werkzeuge"
+
+#: AppObjects/FlatCAMExcellon.py:805
+msgid "No Tool Selected"
+msgstr "Kein Werkzeug ausgewählt"
+
+#: AppObjects/FlatCAMExcellon.py:1155 AppObjects/FlatCAMExcellon.py:1248
+#: AppObjects/FlatCAMExcellon.py:1435
+msgid "Please select one or more tools from the list and try again."
+msgstr ""
+"Bitte wählen Sie ein oder mehrere Werkzeuge aus der Liste aus und versuchen "
+"Sie es erneut."
+
+#: AppObjects/FlatCAMExcellon.py:1162
+msgid "Milling tool for DRILLS is larger than hole size. Cancelled."
+msgstr "Das Fräswerkzeug für BOHRER ist größer als die Lochgröße. Abgebrochen."
+
+#: AppObjects/FlatCAMExcellon.py:1177 AppObjects/FlatCAMExcellon.py:1268
+#: AppObjects/FlatCAMExcellon.py:1453 tclCommands/TclCommandDrillcncjob.py:195
+msgid "Tool_nr"
+msgstr "Werkzeugnummer"
+
+#: AppObjects/FlatCAMExcellon.py:1177 AppObjects/FlatCAMExcellon.py:1268
+#: AppObjects/FlatCAMExcellon.py:1453 tclCommands/TclCommandDrillcncjob.py:195
+msgid "Drills_Nr"
+msgstr "Bohrnummer"
+
+#: AppObjects/FlatCAMExcellon.py:1177 AppObjects/FlatCAMExcellon.py:1268
+#: AppObjects/FlatCAMExcellon.py:1453 tclCommands/TclCommandDrillcncjob.py:195
+msgid "Slots_Nr"
+msgstr "Schlitznummer"
+
+#: AppObjects/FlatCAMExcellon.py:1257
+msgid "Milling tool for SLOTS is larger than hole size. Cancelled."
+msgstr ""
+"Das Fräswerkzeug für SCHLITZ ist größer als die Lochgröße. Abgebrochen."
+
+#: AppObjects/FlatCAMExcellon.py:1361 AppObjects/FlatCAMGeometry.py:1625
+msgid "Focus Z"
+msgstr "Fokus Z"
+
+#: AppObjects/FlatCAMExcellon.py:1380 AppObjects/FlatCAMGeometry.py:1644
+msgid "Laser Power"
+msgstr "Laserleistung"
+
+#: AppObjects/FlatCAMExcellon.py:1510 AppObjects/FlatCAMGeometry.py:2077
+#: AppObjects/FlatCAMGeometry.py:2081 AppObjects/FlatCAMGeometry.py:2232
+msgid "Generating CNC Code"
+msgstr "CNC-Code generieren"
+
+#: AppObjects/FlatCAMExcellon.py:1563 AppObjects/FlatCAMGeometry.py:2542
+#, fuzzy
+#| msgid "Delete failed. Select a tool to delete."
+msgid "Delete failed. There are no exclusion areas to delete."
+msgstr "Löschen fehlgeschlagen. Wählen Sie ein Werkzeug zum Löschen aus."
+
+#: AppObjects/FlatCAMExcellon.py:1580 AppObjects/FlatCAMGeometry.py:2559
+#, fuzzy
+#| msgid "Failed. Nothing selected."
+msgid "Delete failed. Nothing is selected."
+msgstr "Gescheitert. Nichts ausgewählt."
+
+#: AppObjects/FlatCAMExcellon.py:1804 AppTools/ToolNCC.py:918
+#: AppTools/ToolPaint.py:843
+msgid "Current Tool parameters were applied to all tools."
+msgstr "Aktuelle Werkzeugparameter wurden auf alle Werkzeuge angewendet."
+
+#: AppObjects/FlatCAMGeometry.py:123 AppObjects/FlatCAMGeometry.py:1289
+#: AppObjects/FlatCAMGeometry.py:1290 AppObjects/FlatCAMGeometry.py:1299
+msgid "Iso"
+msgstr "Iso"
+
+#: AppObjects/FlatCAMGeometry.py:123 AppObjects/FlatCAMGeometry.py:515
+#: AppObjects/FlatCAMGeometry.py:911 AppObjects/FlatCAMGerber.py:891
+#: AppObjects/FlatCAMGerber.py:1039 AppTools/ToolCutOut.py:690
+#: AppTools/ToolCutOut.py:886 AppTools/ToolCutOut.py:1046
+msgid "Rough"
+msgstr "Rau"
+
+#: AppObjects/FlatCAMGeometry.py:123
+msgid "Finish"
+msgstr "Oberfläche"
+
+#: AppObjects/FlatCAMGeometry.py:550
+msgid "Add from Tool DB"
+msgstr "Werkzeug aus Werkzeugdatenbank hinzufügen"
+
+#: AppObjects/FlatCAMGeometry.py:930
+msgid "Tool added in Tool Table."
+msgstr "Werkzeug in der Werkzeugtabelle hinzugefügt."
+
+#: AppObjects/FlatCAMGeometry.py:1039 AppObjects/FlatCAMGeometry.py:1048
+msgid "Failed. Select a tool to copy."
+msgstr "Fehlgeschlagen. Wählen Sie ein Werkzeug zum Kopieren aus."
+
+#: AppObjects/FlatCAMGeometry.py:1077
+msgid "Tool was copied in Tool Table."
+msgstr "Das Werkzeug wurde in die Werkzeugtabelle kopiert."
+
+#: AppObjects/FlatCAMGeometry.py:1104
+msgid "Tool was edited in Tool Table."
+msgstr "Das Werkzeug wurde in der Werkzeugtabelle bearbeitet."
+
+#: AppObjects/FlatCAMGeometry.py:1133 AppObjects/FlatCAMGeometry.py:1142
+msgid "Failed. Select a tool to delete."
+msgstr "Gescheitert. Wählen Sie ein Werkzeug zum Löschen aus."
+
+#: AppObjects/FlatCAMGeometry.py:1166
+msgid "Tool was deleted in Tool Table."
+msgstr "Werkzeug wurde in der Werkzeugtabelle gelöscht."
+
+#: AppObjects/FlatCAMGeometry.py:1203 AppObjects/FlatCAMGeometry.py:1212
+msgid ""
+"Disabled because the tool is V-shape.\n"
+"For V-shape tools the depth of cut is\n"
+"calculated from other parameters like:\n"
+"- 'V-tip Angle' -> angle at the tip of the tool\n"
+"- 'V-tip Dia' -> diameter at the tip of the tool \n"
+"- Tool Dia -> 'Dia' column found in the Tool Table\n"
+"NB: a value of zero means that Tool Dia = 'V-tip Dia'"
+msgstr ""
+"Deaktiviert, da das Werkzeug V-förmig ist.\n"
+"Bei V-förmigen Werkzeugen beträgt die Schnitttiefe\n"
+"berechnet aus anderen Parametern wie:\n"
+"- 'V-Spitzenwinkel' -> Winkel an der Spitze des Werkzeugs\n"
+"- 'V-Spitze Durchmesser' -> Durchmesser an der Spitze des Werkzeugs\n"
+"- Werkzeugdurchmesser -> Spalte 'Durchmesser' in der Werkzeugtabelle\n"
+"NB: Ein Wert von Null bedeutet, dass Werkzeugdurchmesser = 'V-Spitze "
+"Durchmesser'"
+
+#: AppObjects/FlatCAMGeometry.py:1697
+msgid "This Geometry can't be processed because it is"
+msgstr "Diese Geometrie kann nicht verarbeitet werden, da dies der Fall ist"
+
+#: AppObjects/FlatCAMGeometry.py:1697
+msgid "geometry"
+msgstr "geometrie"
+
+#: AppObjects/FlatCAMGeometry.py:1738
+msgid "Failed. No tool selected in the tool table ..."
+msgstr "Gescheitert. Kein Werkzeug in der Werkzeugtabelle ausgewählt ..."
+
+#: AppObjects/FlatCAMGeometry.py:1836 AppObjects/FlatCAMGeometry.py:1986
+msgid ""
+"Tool Offset is selected in Tool Table but no value is provided.\n"
+"Add a Tool Offset or change the Offset Type."
+msgstr ""
+"Werkzeugversatz ist in der Werkzeugtabelle ausgewählt, es wird jedoch kein "
+"Wert angegeben.\n"
+"Fügen Sie einen Werkzeugversatz hinzu oder ändern Sie den Versatztyp."
+
+#: AppObjects/FlatCAMGeometry.py:1902 AppObjects/FlatCAMGeometry.py:2048
+msgid "G-Code parsing in progress..."
+msgstr "G-Code-Analyse läuft ..."
+
+#: AppObjects/FlatCAMGeometry.py:1904 AppObjects/FlatCAMGeometry.py:2050
+msgid "G-Code parsing finished..."
+msgstr "G-Code-Analyse beendet ..."
+
+#: AppObjects/FlatCAMGeometry.py:1912
+msgid "Finished G-Code processing"
+msgstr "G-Code-Verarbeitung abgeschlossen"
+
+#: AppObjects/FlatCAMGeometry.py:1914 AppObjects/FlatCAMGeometry.py:2062
+msgid "G-Code processing failed with error"
+msgstr "G-Code-Verarbeitung fehlgeschlagen mit Fehler"
+
+#: AppObjects/FlatCAMGeometry.py:1956 AppTools/ToolSolderPaste.py:1301
+msgid "Cancelled. Empty file, it has no geometry"
+msgstr "Abgebrochen. Leere Datei hat keine Geometrie"
+
+#: AppObjects/FlatCAMGeometry.py:2060 AppObjects/FlatCAMGeometry.py:2227
+msgid "Finished G-Code processing..."
+msgstr "Fertige G-Code Verarbeitung ..."
+
+#: AppObjects/FlatCAMGeometry.py:2079 AppObjects/FlatCAMGeometry.py:2083
+#: AppObjects/FlatCAMGeometry.py:2234
+msgid "CNCjob created"
+msgstr "CNCjob erstellt"
+
+#: AppObjects/FlatCAMGeometry.py:2265 AppObjects/FlatCAMGeometry.py:2274
+#: AppParsers/ParseGerber.py:1866 AppParsers/ParseGerber.py:1876
+msgid "Scale factor has to be a number: integer or float."
+msgstr ""
+"Der Skalierungsfaktor muss eine Zahl sein: Ganzzahl oder Fließkommazahl."
+
+#: AppObjects/FlatCAMGeometry.py:2337
+msgid "Geometry Scale done."
+msgstr "Geometrie Skalierung fertig."
+
+#: AppObjects/FlatCAMGeometry.py:2354 AppParsers/ParseGerber.py:1992
+msgid ""
+"An (x,y) pair of values are needed. Probable you entered only one value in "
+"the Offset field."
+msgstr ""
+"Ein (x, y) Wertepaar wird benötigt. Wahrscheinlich haben Sie im Feld Offset "
+"nur einen Wert eingegeben."
+
+#: AppObjects/FlatCAMGeometry.py:2410
+msgid "Geometry Offset done."
+msgstr "Geometrie Offset fertig."
+
+#: AppObjects/FlatCAMGeometry.py:2439
+msgid ""
+"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, "
+"y)\n"
+"but now there is only one value, not two."
+msgstr ""
+"Das Werkzeugwechsel X, Y Feld in Bearbeiten -> Einstellungen muss im Format "
+"(x, y) sein\n"
+"Aber jetzt gibt es nur einen Wert, nicht zwei."
+
+#: AppObjects/FlatCAMGerber.py:494
+msgid "Buffering solid geometry"
+msgstr "Festkörpergeometrie puffern"
+
+#: AppObjects/FlatCAMGerber.py:503
+msgid "Done"
+msgstr "Fertig"
+
+#: AppObjects/FlatCAMGerber.py:529 AppObjects/FlatCAMGerber.py:555
+msgid "Operation could not be done."
+msgstr "Operation konnte nicht durchgeführt werden."
+
+#: AppObjects/FlatCAMGerber.py:572
+msgid "Isolating..."
+msgstr "Isolieren ..."
+
+#: AppObjects/FlatCAMGerber.py:631
+msgid "Click on a polygon to isolate it."
+msgstr "Klicken Sie auf ein Plozgon um es zu isolieren."
+
+#: AppObjects/FlatCAMGerber.py:670 AppObjects/FlatCAMGerber.py:774
+#: AppTools/ToolPaint.py:1515
+msgid "Added polygon"
+msgstr "Polygon hinzugefügt"
+
+#: AppObjects/FlatCAMGerber.py:671 AppObjects/FlatCAMGerber.py:776
+msgid "Click to add next polygon or right click to start isolation."
+msgstr ""
+"Klicken Sie, um das nächste Polygon hinzuzufügen, oder klicken Sie mit der "
+"rechten Maustaste, um den Isolationsvorgang zu beginnen."
+
+#: AppObjects/FlatCAMGerber.py:683 AppTools/ToolPaint.py:1529
+msgid "Removed polygon"
+msgstr "Polygon entfernt"
+
+# nearly the same as before? What good is this?
+#: AppObjects/FlatCAMGerber.py:684
+msgid "Click to add/remove next polygon or right click to start isolation."
+msgstr ""
+"Klicken Sie, um das nächste Polygon hinzuzufügen oder zu entfernen, oder "
+"klicken Sie mit der rechten Maustaste, um den Isolationsvorgang zu beginnen."
+
+#: AppObjects/FlatCAMGerber.py:689 AppTools/ToolPaint.py:1535
+msgid "No polygon detected under click position."
+msgstr "Kein Polygon an der Stelle an die geklickt wurde."
+
+#: AppObjects/FlatCAMGerber.py:710 AppTools/ToolPaint.py:1564
+msgid "List of single polygons is empty. Aborting."
+msgstr "Liste der Einzelpolygone ist leer. Vorgang wird abgebrochen."
+
+#: AppObjects/FlatCAMGerber.py:779
+msgid "No polygon in selection."
+msgstr "Kein Polygon in der Auswahl."
+
+#: AppObjects/FlatCAMGerber.py:907 AppObjects/FlatCAMGerber.py:986
+#: AppTools/ToolNCC.py:2097 AppTools/ToolNCC.py:3183 AppTools/ToolNCC.py:3562
+msgid "Isolation geometry could not be generated."
+msgstr "Isolationsgeometrie konnte nicht generiert werden."
+
+#: AppObjects/FlatCAMGerber.py:932 AppObjects/FlatCAMGerber.py:1064
+msgid "Isolation geometry created"
+msgstr "Isolationsgeometrie erstellt"
+
+#: AppObjects/FlatCAMGerber.py:941 AppObjects/FlatCAMGerber.py:1071
+msgid "Subtracting Geo"
+msgstr "Geo subtrahieren"
+
+#: AppObjects/FlatCAMGerber.py:1396
+msgid "Plotting Apertures"
+msgstr "Plotten Apertures"
+
+#: AppObjects/FlatCAMObj.py:232
+msgid "Name changed from"
+msgstr "Name geändert von"
+
+#: AppObjects/FlatCAMObj.py:232
+msgid "to"
+msgstr "zu"
+
+#: AppObjects/FlatCAMObj.py:243
+msgid "Offsetting..."
+msgstr "Offset hinzufügen ..."
+
+#: AppObjects/FlatCAMObj.py:257 AppObjects/FlatCAMObj.py:262
+msgid "Scaling could not be executed."
+msgstr "Skalierungsaktion wurde nicht ausgeführt."
+
+#: AppObjects/FlatCAMObj.py:266 AppObjects/FlatCAMObj.py:274
+msgid "Scale done."
+msgstr "Skalieren Sie fertig."
+
+#: AppObjects/FlatCAMObj.py:272
+msgid "Scaling..."
+msgstr "Skalierung ..."
+
+#: AppObjects/FlatCAMObj.py:290
+msgid "Skewing..."
+msgstr "Verziehen..."
+
+#: AppObjects/FlatCAMScript.py:163
+msgid "Script Editor"
+msgstr "Script Editor"
+
+#: AppObjects/ObjectCollection.py:513
+#, python-brace-format
+msgid "Object renamed from {old} to {new}"
+msgstr "Objekt umbenannt von {old} zu {new}"
+
+#: AppObjects/ObjectCollection.py:925 AppObjects/ObjectCollection.py:931
+#: AppObjects/ObjectCollection.py:937 AppObjects/ObjectCollection.py:943
+#: AppObjects/ObjectCollection.py:949 AppObjects/ObjectCollection.py:955
+#: App_Main.py:6158 App_Main.py:6164 App_Main.py:6170 App_Main.py:6176
+msgid "selected"
+msgstr "ausgewählt"
+
+#: AppObjects/ObjectCollection.py:986
+msgid "Cause of error"
+msgstr "Fehlerursache"
+
+#: AppObjects/ObjectCollection.py:1187
+msgid "All objects are selected."
+msgstr "Alle Objekte werden ausgewählt."
+
+#: AppObjects/ObjectCollection.py:1197
+msgid "Objects selection is cleared."
+msgstr "Die Objektauswahl wird gelöscht."
+
+#: AppParsers/ParseExcellon.py:315
+msgid "This is GCODE mark"
+msgstr "Dies ist die GCODE-Marke"
+
+#: AppParsers/ParseExcellon.py:432
+msgid ""
+"No tool diameter info's. See shell.\n"
+"A tool change event: T"
+msgstr ""
+"Keine Angaben zum Werkzeugdurchmesser. Siehe Shell.\n"
+"Ein Werkzeugwechselereignis: T"
+
+#: AppParsers/ParseExcellon.py:435
+msgid ""
+"was found but the Excellon file have no informations regarding the tool "
+"diameters therefore the application will try to load it by using some 'fake' "
+"diameters.\n"
+"The user needs to edit the resulting Excellon object and change the "
+"diameters to reflect the real diameters."
+msgstr ""
+"wurde gefunden, aber die Excellon-Datei enthält keine Informationen zu den "
+"Werkzeugdurchmessern. Daher wird die Anwendung versuchen, diese mit Hilfe "
+"einiger gefälschter Durchmesser zu laden.\n"
+"Der Benutzer muss das resultierende Excellon-Objekt bearbeiten und die "
+"Durchmesser so ändern, dass sie den tatsächlichen Durchmessern entsprechen."
+
+#: AppParsers/ParseExcellon.py:899
+msgid ""
+"Excellon Parser error.\n"
+"Parsing Failed. Line"
+msgstr ""
+"Excellon-Parser-Fehler.\n"
+"Analyse fehlgeschlagen. Linie"
+
+#: AppParsers/ParseExcellon.py:981
+msgid ""
+"Excellon.create_geometry() -> a drill location was skipped due of not having "
+"a tool associated.\n"
+"Check the resulting GCode."
+msgstr ""
+"Excellon.create_geometry () -> Eine Bohrposition wurde übersprungen, da kein "
+"Werkzeug zugeordnet ist.\n"
+"Überprüfen Sie den resultierenden GCode."
+
+#: AppParsers/ParseFont.py:303
+msgid "Font not supported, try another one."
+msgstr "Schriftart wird nicht unterstützt, versuchen Sie es mit einer anderen."
+
+#: AppParsers/ParseGerber.py:425
+msgid "Gerber processing. Parsing"
+msgstr "Gerber-Verarbeitung. Parsing"
+
+#: AppParsers/ParseGerber.py:425 AppParsers/ParseHPGL2.py:181
+msgid "lines"
+msgstr "Linien"
+
+#: AppParsers/ParseGerber.py:1001 AppParsers/ParseGerber.py:1101
+#: AppParsers/ParseHPGL2.py:274 AppParsers/ParseHPGL2.py:288
+#: AppParsers/ParseHPGL2.py:307 AppParsers/ParseHPGL2.py:331
+#: AppParsers/ParseHPGL2.py:366
+msgid "Coordinates missing, line ignored"
+msgstr "Koordinaten fehlen, Zeile wird ignoriert"
+
+#: AppParsers/ParseGerber.py:1003 AppParsers/ParseGerber.py:1103
+msgid "GERBER file might be CORRUPT. Check the file !!!"
+msgstr "Die GERBER-Datei könnte CORRUPT sein. Überprüfen Sie die Datei !!!"
+
+#: AppParsers/ParseGerber.py:1057
+msgid ""
+"Region does not have enough points. File will be processed but there are "
+"parser errors. Line number"
+msgstr ""
+"Region hat nicht genug Punkte. Die Datei wird verarbeitet, es treten jedoch "
+"Parserfehler auf. Linien Nummer"
+
+#: AppParsers/ParseGerber.py:1487 AppParsers/ParseHPGL2.py:401
+msgid "Gerber processing. Joining polygons"
+msgstr "Gerber-Verarbeitung. Polygone verbinden"
+
+#: AppParsers/ParseGerber.py:1504
+msgid "Gerber processing. Applying Gerber polarity."
+msgstr "Gerber-Verarbeitung. Anwenden der Gerber-Polarität."
+
+#: AppParsers/ParseGerber.py:1564
+msgid "Gerber Line"
+msgstr "Gerber Linie"
+
+#: AppParsers/ParseGerber.py:1564
+msgid "Gerber Line Content"
+msgstr "Gerber-Zeileninhalt"
+
+#: AppParsers/ParseGerber.py:1566
+msgid "Gerber Parser ERROR"
+msgstr "Gerber-Parser FEHLER"
+
+#: AppParsers/ParseGerber.py:1956
+msgid "Gerber Scale done."
+msgstr "Gerber-Skalierung erfolgt."
+
+#: AppParsers/ParseGerber.py:2048
+msgid "Gerber Offset done."
+msgstr "Gerber Offset fertig."
+
+#: AppParsers/ParseGerber.py:2124
+msgid "Gerber Mirror done."
+msgstr "Gerber Spiegel fertig."
+
+#: AppParsers/ParseGerber.py:2198
+msgid "Gerber Skew done."
+msgstr "Gerber-Versatz fertig."
+
+#: AppParsers/ParseGerber.py:2260
+msgid "Gerber Rotate done."
+msgstr "Gerber drehen fertig."
+
+#: AppParsers/ParseGerber.py:2417
+msgid "Gerber Buffer done."
+msgstr "Gerber Buffer fertig."
+
+#: AppParsers/ParseHPGL2.py:181
+msgid "HPGL2 processing. Parsing"
+msgstr "HPGL2 -Verarbeitung. Parsing"
+
+#: AppParsers/ParseHPGL2.py:413
+msgid "HPGL2 Line"
+msgstr "HPGL2-Linie"
+
+#: AppParsers/ParseHPGL2.py:413
+msgid "HPGL2 Line Content"
+msgstr "HPGL2-Zeileninhalt"
+
+#: AppParsers/ParseHPGL2.py:414
+msgid "HPGL2 Parser ERROR"
+msgstr "HPGL2 -Parser FEHLER"
+
+#: AppProcess.py:172
+msgid "processes running."
+msgstr "laufende Prozesse."
+
+#: AppTools/ToolAlignObjects.py:32
+msgid "Align Objects"
+msgstr "Objekte ausrichten"
+
+#: AppTools/ToolAlignObjects.py:61
+msgid "MOVING object"
+msgstr "BEWEGLICHES Objekt"
+
+#: AppTools/ToolAlignObjects.py:65
+msgid ""
+"Specify the type of object to be aligned.\n"
+"It can be of type: Gerber or Excellon.\n"
+"The selection here decide the type of objects that will be\n"
+"in the Object combobox."
+msgstr ""
+"Geben Sie den Objekttyp an, der ausgerichtet werden soll.\n"
+"Es kann vom Typ sein: Gerber oder Excellon.\n"
+"Die Auswahl hier entscheidet über die Art der Objekte, die sein werden\n"
+"in der Objekt-Combobox."
+
+#: AppTools/ToolAlignObjects.py:86
+msgid "Object to be aligned."
+msgstr "Zu ausrichtendes Objekt."
+
+#: AppTools/ToolAlignObjects.py:98
+msgid "TARGET object"
+msgstr "ZIEL-Objekt"
+
+#: AppTools/ToolAlignObjects.py:100
+msgid ""
+"Specify the type of object to be aligned to.\n"
+"It can be of type: Gerber or Excellon.\n"
+"The selection here decide the type of objects that will be\n"
+"in the Object combobox."
+msgstr ""
+"Geben Sie den Objekttyp an, an dem ausgerichtet werden soll.\n"
+"Es kann vom Typ sein: Gerber oder Excellon.\n"
+"Die Auswahl hier entscheidet über die Art der Objekte, die sein werden\n"
+"in der Objekt-Combobox."
+
+#: AppTools/ToolAlignObjects.py:122
+msgid "Object to be aligned to. Aligner."
+msgstr "Objekt, an dem ausgerichtet werden soll. Aligner."
+
+#: AppTools/ToolAlignObjects.py:135
+msgid "Alignment Type"
+msgstr "AusrichtungstypAusrichtung"
+
+#: AppTools/ToolAlignObjects.py:137
+msgid ""
+"The type of alignment can be:\n"
+"- Single Point -> it require a single point of sync, the action will be a "
+"translation\n"
+"- Dual Point -> it require two points of sync, the action will be "
+"translation followed by rotation"
+msgstr ""
+"Die Art der Ausrichtung kann sein:\n"
+"- Einzelpunkt -> Es ist ein einzelner Synchronisierungspunkt erforderlich. "
+"Die Aktion ist eine Übersetzung\n"
+"- Doppelpunkt -> Es sind zwei Synchronisierungspunkte erforderlich. Die "
+"Aktion wird verschoben und anschließend gedreht"
+
+#: AppTools/ToolAlignObjects.py:143
+msgid "Single Point"
+msgstr "Einziger Punkt"
+
+#: AppTools/ToolAlignObjects.py:144
+msgid "Dual Point"
+msgstr "Doppelpunkt"
+
+#: AppTools/ToolAlignObjects.py:159
+msgid "Align Object"
+msgstr "Objekt ausrichten"
+
+#: AppTools/ToolAlignObjects.py:161
+msgid ""
+"Align the specified object to the aligner object.\n"
+"If only one point is used then it assumes translation.\n"
+"If tho points are used it assume translation and rotation."
+msgstr ""
+"Richten Sie das angegebene Objekt am Aligner-Objekt aus.\n"
+"Wenn nur ein Punkt verwendet wird, wird eine Übersetzung vorausgesetzt.\n"
+"Wenn diese Punkte verwendet werden, wird eine Translation und Rotation "
+"angenommen."
+
+#: AppTools/ToolAlignObjects.py:176 AppTools/ToolCalculators.py:246
+#: AppTools/ToolCalibration.py:683 AppTools/ToolCopperThieving.py:484
+#: AppTools/ToolCorners.py:173 AppTools/ToolCutOut.py:362
+#: AppTools/ToolDblSided.py:471 AppTools/ToolEtchCompensation.py:136
+#: AppTools/ToolExtractDrills.py:310 AppTools/ToolFiducials.py:318
+#: AppTools/ToolFilm.py:503 AppTools/ToolInvertGerber.py:140
+#: AppTools/ToolNCC.py:612 AppTools/ToolOptimal.py:237
+#: AppTools/ToolPaint.py:555 AppTools/ToolPanelize.py:280
+#: AppTools/ToolPunchGerber.py:339 AppTools/ToolQRCode.py:314
+#: AppTools/ToolRulesCheck.py:516 AppTools/ToolSolderPaste.py:473
+#: AppTools/ToolSub.py:176 AppTools/ToolTransform.py:398
+msgid "Reset Tool"
+msgstr "Reset Werkzeug"
+
+#: AppTools/ToolAlignObjects.py:178 AppTools/ToolCalculators.py:248
+#: AppTools/ToolCalibration.py:685 AppTools/ToolCopperThieving.py:486
+#: AppTools/ToolCorners.py:175 AppTools/ToolCutOut.py:364
+#: AppTools/ToolDblSided.py:473 AppTools/ToolEtchCompensation.py:138
+#: AppTools/ToolExtractDrills.py:312 AppTools/ToolFiducials.py:320
+#: AppTools/ToolFilm.py:505 AppTools/ToolInvertGerber.py:142
+#: AppTools/ToolNCC.py:614 AppTools/ToolOptimal.py:239
+#: AppTools/ToolPaint.py:557 AppTools/ToolPanelize.py:282
+#: AppTools/ToolPunchGerber.py:341 AppTools/ToolQRCode.py:316
+#: AppTools/ToolRulesCheck.py:518 AppTools/ToolSolderPaste.py:475
+#: AppTools/ToolSub.py:178 AppTools/ToolTransform.py:400
+msgid "Will reset the tool parameters."
+msgstr "Wird die Werkzeugeinstellungen zurücksetzen."
+
+#: AppTools/ToolAlignObjects.py:244
+msgid "Align Tool"
+msgstr "Ausrichten Werkzeug"
+
+#: AppTools/ToolAlignObjects.py:289
+msgid "There is no aligned FlatCAM object selected..."
+msgstr "Es ist kein ausgerichtetes FlatCAM-Objekt ausgewählt ..."
+
+#: AppTools/ToolAlignObjects.py:299
+msgid "There is no aligner FlatCAM object selected..."
+msgstr "Es ist kein Aligner FlatCAM-Objekt ausgewählt ..."
+
+#: AppTools/ToolAlignObjects.py:325 AppTools/ToolAlignObjects.py:385
+msgid "First Point"
+msgstr "Erster Punkt"
+
+#: AppTools/ToolAlignObjects.py:325 AppTools/ToolAlignObjects.py:400
+msgid "Click on the START point."
+msgstr "Klicken Sie auf den START-Punkt."
+
+#: AppTools/ToolAlignObjects.py:380 AppTools/ToolCalibration.py:920
+msgid "Cancelled by user request."
+msgstr "Auf Benutzerwunsch storniert."
+
+#: AppTools/ToolAlignObjects.py:385 AppTools/ToolAlignObjects.py:407
+msgid "Click on the DESTINATION point."
+msgstr "Klicken Sie auf den Punkt ZIEL."
+
+#: AppTools/ToolAlignObjects.py:385 AppTools/ToolAlignObjects.py:400
+#: AppTools/ToolAlignObjects.py:407
+msgid "Or right click to cancel."
+msgstr "Oder klicken Sie mit der rechten Maustaste, um abzubrechen."
+
+#: AppTools/ToolAlignObjects.py:400 AppTools/ToolAlignObjects.py:407
+#: AppTools/ToolFiducials.py:111
+msgid "Second Point"
+msgstr "Zweiter Punkt"
+
+#: AppTools/ToolCalculators.py:24
+msgid "Calculators"
+msgstr "Rechner"
+
+#: AppTools/ToolCalculators.py:26
+msgid "Units Calculator"
+msgstr "Einheitenrechner"
+
+#: AppTools/ToolCalculators.py:70
+msgid "Here you enter the value to be converted from INCH to MM"
+msgstr ""
+"Hier geben Sie den Wert ein, der von Zoll in Metrik konvertiert werden soll"
+
+#: AppTools/ToolCalculators.py:75
+msgid "Here you enter the value to be converted from MM to INCH"
+msgstr ""
+"Hier geben Sie den Wert ein, der von Metrik in Zoll konvertiert werden soll"
+
+#: AppTools/ToolCalculators.py:111
+msgid ""
+"This is the angle of the tip of the tool.\n"
+"It is specified by manufacturer."
+msgstr ""
+"Dies ist der Winkel der Werkzeugspitze.\n"
+"Es wird vom Hersteller angegeben."
+
+#: AppTools/ToolCalculators.py:120
+msgid ""
+"This is the depth to cut into the material.\n"
+"In the CNCJob is the CutZ parameter."
+msgstr ""
+"Dies ist die Tiefe, in die das Material geschnitten werden soll.\n"
+"Im CNCJob befindet sich der Parameter CutZ."
+
+#: AppTools/ToolCalculators.py:128
+msgid ""
+"This is the tool diameter to be entered into\n"
+"FlatCAM Gerber section.\n"
+"In the CNCJob section it is called >Tool dia<."
+msgstr ""
+"Dies ist der Werkzeugdurchmesser, in den eingegeben werden soll\n"
+"FlatCAM-Gerber-Bereich.\n"
+"Im CNCJob-Bereich heißt es >Werkzeugdurchmesser<."
+
+#: AppTools/ToolCalculators.py:139 AppTools/ToolCalculators.py:235
+msgid "Calculate"
+msgstr "Berechnung"
+
+#: AppTools/ToolCalculators.py:142
+msgid ""
+"Calculate either the Cut Z or the effective tool diameter,\n"
+" depending on which is desired and which is known. "
+msgstr ""
+"Berechnen Sie entweder die Schnitttiefe Z oder den effektiven "
+"Werkzeugdurchmesser.\n"
+" je nachdem was gewünscht wird und was bekannt ist. "
+
+#: AppTools/ToolCalculators.py:205
+msgid "Current Value"
+msgstr "Aktueller Wert"
+
+#: AppTools/ToolCalculators.py:212
+msgid ""
+"This is the current intensity value\n"
+"to be set on the Power Supply. In Amps."
+msgstr ""
+"Dies ist der aktuelle Intensitätswert\n"
+"am Netzteil einstellen. In Ampere."
+
+#: AppTools/ToolCalculators.py:216
+msgid "Time"
+msgstr "Zeit"
+
+#: AppTools/ToolCalculators.py:223
+msgid ""
+"This is the calculated time required for the procedure.\n"
+"In minutes."
+msgstr ""
+"Dies ist die berechnete Zeit, die für das Verfahren benötigt wird.\n"
+"In Minuten."
+
+#: AppTools/ToolCalculators.py:238
+msgid ""
+"Calculate the current intensity value and the procedure time,\n"
+"depending on the parameters above"
+msgstr ""
+"Berechnen Sie den aktuellen Intensitätswert und die Eingriffszeit,\n"
+"abhängig von den obigen Parametern"
+
+#: AppTools/ToolCalculators.py:299
+msgid "Calc. Tool"
+msgstr "Rechner-Tool"
+
+#: AppTools/ToolCalibration.py:67
+msgid "GCode Parameters"
+msgstr "GCode-Parameter"
+
+#: AppTools/ToolCalibration.py:69
+msgid "Parameters used when creating the GCode in this tool."
+msgstr "Verwendete Parameter zum Erzeugen des GCodes mit diesem Wwerkzeug."
+
+#: AppTools/ToolCalibration.py:173
+msgid "STEP 1: Acquire Calibration Points"
+msgstr "Schritt 1: Kalibrierungspunkte erzeugen"
+
+#: AppTools/ToolCalibration.py:175
+msgid ""
+"Pick four points by clicking on canvas.\n"
+"Those four points should be in the four\n"
+"(as much as possible) corners of the object."
+msgstr ""
+"Wählen Sie vier Punkte aus, indem Sie auf die Leinwand klicken.\n"
+"Diese vier Punkte sollten in den vier sein\n"
+"(so viel wie möglich) Ecken des Objekts."
+
+#: AppTools/ToolCalibration.py:193 AppTools/ToolFilm.py:71
+#: AppTools/ToolImage.py:54 AppTools/ToolPanelize.py:77
+#: AppTools/ToolProperties.py:177
+msgid "Object Type"
+msgstr "Objekttyp"
+
+#: AppTools/ToolCalibration.py:210
+msgid "Source object selection"
+msgstr "Auswahl des Quellobjekts"
+
+#: AppTools/ToolCalibration.py:212
+msgid "FlatCAM Object to be used as a source for reference points."
+msgstr "Das FlatCAM-Objekt, das als Referenzpunkt verwendet werden soll."
+
+#: AppTools/ToolCalibration.py:218
+msgid "Calibration Points"
+msgstr "Kalibrierungspunkte"
+
+#: AppTools/ToolCalibration.py:220
+msgid ""
+"Contain the expected calibration points and the\n"
+"ones measured."
+msgstr ""
+"Enthalten die erwarteten Kalibrierungspunkte sowie\n"
+"die gemessenen."
+
+#: AppTools/ToolCalibration.py:235 AppTools/ToolSub.py:76
+#: AppTools/ToolSub.py:131
+msgid "Target"
+msgstr "Ziel"
+
+#: AppTools/ToolCalibration.py:236
+msgid "Found Delta"
+msgstr "Gefundener Unterschied"
+
+#: AppTools/ToolCalibration.py:248
+msgid "Bot Left X"
+msgstr "Unten links X"
+
+#: AppTools/ToolCalibration.py:257
+msgid "Bot Left Y"
+msgstr "Unten links Y"
+
+#: AppTools/ToolCalibration.py:275
+msgid "Bot Right X"
+msgstr "Unten rechts X"
+
+#: AppTools/ToolCalibration.py:285
+msgid "Bot Right Y"
+msgstr "Unten rechts Y"
+
+#: AppTools/ToolCalibration.py:300
+msgid "Top Left X"
+msgstr "Oben links X"
+
+#: AppTools/ToolCalibration.py:309
+msgid "Top Left Y"
+msgstr "Oben links Y"
+
+#: AppTools/ToolCalibration.py:324
+msgid "Top Right X"
+msgstr "Oben rechts X"
+
+#: AppTools/ToolCalibration.py:334
+msgid "Top Right Y"
+msgstr "Oben rechts Y"
+
+#: AppTools/ToolCalibration.py:367
+msgid "Get Points"
+msgstr "Punkte einholen"
+
+#: AppTools/ToolCalibration.py:369
+msgid ""
+"Pick four points by clicking on canvas if the source choice\n"
+"is 'free' or inside the object geometry if the source is 'object'.\n"
+"Those four points should be in the four squares of\n"
+"the object."
+msgstr ""
+"Wählen Sie vier Punkte indem Sie auf die Leinwand klicken (Freier Modus).\n"
+"Oder wählen Sie ein Objekt (Objekt Modus)\n"
+"Diese vier Punkte sollten in vier unterschiedlichen Quadranten des Objektes "
+"sein."
+
+#: AppTools/ToolCalibration.py:390
+msgid "STEP 2: Verification GCode"
+msgstr "Schritt 2: Überprüfung des GCodes"
+
+#: AppTools/ToolCalibration.py:392 AppTools/ToolCalibration.py:405
+msgid ""
+"Generate GCode file to locate and align the PCB by using\n"
+"the four points acquired above.\n"
+"The points sequence is:\n"
+"- first point -> set the origin\n"
+"- second point -> alignment point. Can be: top-left or bottom-right.\n"
+"- third point -> check point. Can be: top-left or bottom-right.\n"
+"- forth point -> final verification point. Just for evaluation."
+msgstr ""
+"Erstellen Sie eine GCode-Datei, um die Leiterplatte mithilfe von zu "
+"lokalisieren und auszurichten\n"
+"die vier oben erworbenen Punkte.\n"
+"Die Punktesequenz ist:\n"
+"- erster Punkt -> Ursprung einstellen\n"
+"- zweiter Punkt -> Ausrichtungspunkt. Kann sein: oben links oder unten "
+"rechts.\n"
+"- dritter Punkt -> Kontrollpunkt. Kann sein: oben links oder unten rechts.\n"
+"- vierter Punkt -> letzter Verifizierungspunkt. Nur zur Bewertung."
+
+#: AppTools/ToolCalibration.py:403 AppTools/ToolSolderPaste.py:348
+msgid "Generate GCode"
+msgstr "GCode generieren"
+
+#: AppTools/ToolCalibration.py:429
+msgid "STEP 3: Adjustments"
+msgstr "Schritt 3: Anpassungen"
+
+#: AppTools/ToolCalibration.py:431 AppTools/ToolCalibration.py:440
+msgid ""
+"Calculate Scale and Skew factors based on the differences (delta)\n"
+"found when checking the PCB pattern. The differences must be filled\n"
+"in the fields Found (Delta)."
+msgstr ""
+"Berechne die Skalierungs und Verzerrungsfaktoren basierend auf dem Delta\n"
+"das bei der Platinenüberprüfung gefunden wurde. Dieses Delta muss den "
+"Feldern\n"
+"eingetragen warden."
+
+#: AppTools/ToolCalibration.py:438
+msgid "Calculate Factors"
+msgstr "Berechne Faktoren"
+
+#: AppTools/ToolCalibration.py:460
+msgid "STEP 4: Adjusted GCode"
+msgstr "Schritt 4 Angepasster GCode"
+
+#: AppTools/ToolCalibration.py:462
+msgid ""
+"Generate verification GCode file adjusted with\n"
+"the factors above."
+msgstr ""
+"Erzeuge den GCode mit den zuvor gefundenen\n"
+"Faktoren."
+
+#: AppTools/ToolCalibration.py:467
+msgid "Scale Factor X:"
+msgstr "Skalierungsfaktor X:"
+
+#: AppTools/ToolCalibration.py:479
+msgid "Scale Factor Y:"
+msgstr "Skalierungsfaktor Y:"
+
+#: AppTools/ToolCalibration.py:491
+msgid "Apply Scale Factors"
+msgstr "Skalierungen anwenden"
+
+#: AppTools/ToolCalibration.py:493
+msgid "Apply Scale factors on the calibration points."
+msgstr "Anwenden der Skalierungsfaktoren auf die Kalibrierungspunkte."
+
+#: AppTools/ToolCalibration.py:503
+msgid "Skew Angle X:"
+msgstr "Verzerrungs-Winkel X:"
+
+#: AppTools/ToolCalibration.py:516
+msgid "Skew Angle Y:"
+msgstr "Verzerrungs-Winkel Y:"
+
+#: AppTools/ToolCalibration.py:529
+msgid "Apply Skew Factors"
+msgstr "Schrägstellung anwenden"
+
+#: AppTools/ToolCalibration.py:531
+msgid "Apply Skew factors on the calibration points."
+msgstr "Anwenden der Verzerrungswinkel auf die Bezugspunkte."
+
+#: AppTools/ToolCalibration.py:600
+msgid "Generate Adjusted GCode"
+msgstr "Angepassten Überprüfungs-GCode generieren"
+
+#: AppTools/ToolCalibration.py:602
+msgid ""
+"Generate verification GCode file adjusted with\n"
+"the factors set above.\n"
+"The GCode parameters can be readjusted\n"
+"before clicking this button."
+msgstr ""
+"Bestätigungs-GCode-Datei erstellen angepasst mit\n"
+"die oben genannten Faktoren.\n"
+"Die GCode-Parameter können neu eingestellt werden\n"
+"bevor Sie auf diese Schaltfläche klicken."
+
+#: AppTools/ToolCalibration.py:623
+msgid "STEP 5: Calibrate FlatCAM Objects"
+msgstr "Schritt 5: Kalibrieren der FlatCAM Objekte"
+
+#: AppTools/ToolCalibration.py:625
+msgid ""
+"Adjust the FlatCAM objects\n"
+"with the factors determined and verified above."
+msgstr ""
+"Anpassen der FlatCAM Objekte\n"
+"mit den zuvor bestimmten und überprüften Faktoren."
+
+#: AppTools/ToolCalibration.py:637
+msgid "Adjusted object type"
+msgstr "Angepasster Objekttyp"
+
+#: AppTools/ToolCalibration.py:638
+msgid "Type of the FlatCAM Object to be adjusted."
+msgstr "Art des FlatCAM Objektes das angepasst wird."
+
+#: AppTools/ToolCalibration.py:651
+msgid "Adjusted object selection"
+msgstr "Objektauswahl angepasst"
+
+#: AppTools/ToolCalibration.py:653
+msgid "The FlatCAM Object to be adjusted."
+msgstr "Das FlatCAM Objekt das angepasst werden muss."
+
+#: AppTools/ToolCalibration.py:660
+msgid "Calibrate"
+msgstr "Kalibrieren"
+
+#: AppTools/ToolCalibration.py:662
+msgid ""
+"Adjust (scale and/or skew) the objects\n"
+"with the factors determined above."
+msgstr ""
+"Anpassen (Skalieren und/oder Verzerren) der Objekte\n"
+"anhand der zuvor gefundenen Faktoren."
+
+#: AppTools/ToolCalibration.py:770 AppTools/ToolCalibration.py:771
+msgid "Origin"
+msgstr "Ursprung"
+
+#: AppTools/ToolCalibration.py:800
+msgid "Tool initialized"
+msgstr "Werkzeug eingerichtet"
+
+#: AppTools/ToolCalibration.py:838
+msgid "There is no source FlatCAM object selected..."
+msgstr "Es is kein FlatCAM Objekt ausgewählt."
+
+#: AppTools/ToolCalibration.py:859
+msgid "Get First calibration point. Bottom Left..."
+msgstr "Lese ersten Kalibrierungspunkt (Unten Links)"
+
+#: AppTools/ToolCalibration.py:926
+msgid "Get Second calibration point. Bottom Right (Top Left)..."
+msgstr "Zweiter Kalibrierungspunkt abrufen. Unten rechts (oben links) ..."
+
+#: AppTools/ToolCalibration.py:930
+msgid "Get Third calibration point. Top Left (Bottom Right)..."
+msgstr ""
+"Holen Sie sich den dritten Kalibrierungspunkt. Oben links unten rechts)..."
+
+#: AppTools/ToolCalibration.py:934
+msgid "Get Forth calibration point. Top Right..."
+msgstr "Lese vierten Kalibrierungspunkt (Oben Rechts)"
+
+#: AppTools/ToolCalibration.py:938
+msgid "Done. All four points have been acquired."
+msgstr "Erledigt, alle vier Punkte wurden gelesen."
+
+#: AppTools/ToolCalibration.py:969
+msgid "Verification GCode for FlatCAM Calibration Tool"
+msgstr "Überprüfungs GCode des FlatCAM Kalibrierungstools"
+
+#: AppTools/ToolCalibration.py:981 AppTools/ToolCalibration.py:1067
+msgid "Gcode Viewer"
+msgstr "GCode Anzeige"
+
+#: AppTools/ToolCalibration.py:997
+msgid "Cancelled. Four points are needed for GCode generation."
+msgstr "Abgebrochen. Es werden vier Punkte zur GCode Erzeugung benötigt."
+
+#: AppTools/ToolCalibration.py:1253 AppTools/ToolCalibration.py:1349
+msgid "There is no FlatCAM object selected..."
+msgstr "Es ist kein FlatCAM Objekt ausgewählt."
+
+#: AppTools/ToolCopperThieving.py:76 AppTools/ToolFiducials.py:261
+msgid "Gerber Object to which will be added a copper thieving."
+msgstr "Dem Gerber Objekt wird ein Copper Thieving hinzugefügt."
+
+# Double
+#: AppTools/ToolCopperThieving.py:98
+msgid ""
+"This set the distance between the copper thieving components\n"
+"(the polygon fill may be split in multiple polygons)\n"
+"and the copper traces in the Gerber file."
+msgstr ""
+"Diese Auswahl definiert den Abstand zwischen den \"Copper Thieving\" "
+"Komponenten.\n"
+"und den Kupferverbindungen im Gerber File (möglicherweise wird hierbei ein "
+"Polygon\n"
+"in mehrere aufgeteilt."
+
+# Double
+#: AppTools/ToolCopperThieving.py:131
+msgid ""
+"- 'Itself' - the copper thieving extent is based on the object extent.\n"
+"- 'Area Selection' - left mouse click to start selection of the area to be "
+"filled.\n"
+"- 'Reference Object' - will do copper thieving within the area specified by "
+"another object."
+msgstr ""
+"- 'Selbst' - die 'Copper Thieving' Ausdehnung basiert auf der "
+"Objektausdehnung.\n"
+"- 'Bereichsauswahl' - Klicken Sie mit der linken Maustaste, um den zu "
+"füllenden Bereich auszuwählen.\n"
+"- 'Referenzobjekt' - 'Copper Thieving' innerhalb des von einem anderen "
+"Objekt angegebenen Bereichs."
+
+#: AppTools/ToolCopperThieving.py:138 AppTools/ToolNCC.py:552
+#: AppTools/ToolPaint.py:495
+msgid "Ref. Type"
+msgstr "Ref. Typ"
+
+#: AppTools/ToolCopperThieving.py:140
+msgid ""
+"The type of FlatCAM object to be used as copper thieving reference.\n"
+"It can be Gerber, Excellon or Geometry."
+msgstr ""
+"Der Typ des FlatCAM-Objekts, das Copper Thieving-Referenz verwendet werden "
+"soll.\n"
+"Es kann Gerber, Excellon oder Geometry sein."
+
+#: AppTools/ToolCopperThieving.py:149 AppTools/ToolNCC.py:562
+#: AppTools/ToolPaint.py:505
+msgid "Ref. Object"
+msgstr "Ref. Objekt"
+
+#: AppTools/ToolCopperThieving.py:151 AppTools/ToolNCC.py:564
+#: AppTools/ToolPaint.py:507
+msgid "The FlatCAM object to be used as non copper clearing reference."
+msgstr ""
+"Das FlatCAM-Objekt, das als Nicht-Kupfer-Clearing-Referenz verwendet werden "
+"soll."
+
+# Double
+#: AppTools/ToolCopperThieving.py:327
+msgid "Insert Copper thieving"
+msgstr "'Coper Thieving' einsetzen"
+
+# Double
+#: AppTools/ToolCopperThieving.py:329
+msgid ""
+"Will add a polygon (may be split in multiple parts)\n"
+"that will surround the actual Gerber traces at a certain distance."
+msgstr ""
+"Fügt ein Polygon hinzu (kann in mehrere Teile geteilt werden)\n"
+"das wird die eigentlichen Gerber-Spuren in einem gewissen Abstand umgeben."
+
+# Double
+#: AppTools/ToolCopperThieving.py:388
+msgid "Insert Robber Bar"
+msgstr "'Robber Bar' einsetzen"
+
+# Double
+#: AppTools/ToolCopperThieving.py:390
+msgid ""
+"Will add a polygon with a defined thickness\n"
+"that will surround the actual Gerber object\n"
+"at a certain distance.\n"
+"Required when doing holes pattern plating."
+msgstr ""
+"Fügt ein Polygon mit einer definierten Dicke hinzu\n"
+"das wird das eigentliche Gerber-Objekt umgeben\n"
+"in einem bestimmten Abstand.\n"
+"Erforderlich für die Lochmusterbeschichtung."
+
+#: AppTools/ToolCopperThieving.py:414
+msgid "Select Soldermask object"
+msgstr "Lötmaskenobjekt auswählen"
+
+#: AppTools/ToolCopperThieving.py:416
+msgid ""
+"Gerber Object with the soldermask.\n"
+"It will be used as a base for\n"
+"the pattern plating mask."
+msgstr ""
+"Das Gerber Objekt mit der Lötmaske\n"
+"Wird als Basis verwendet."
+
+#: AppTools/ToolCopperThieving.py:445
+msgid "Plated area"
+msgstr "Beschichtetes Areal"
+
+#: AppTools/ToolCopperThieving.py:447
+msgid ""
+"The area to be plated by pattern plating.\n"
+"Basically is made from the openings in the plating mask.\n"
+"\n"
+"<> - the calculated area is actually a bit larger\n"
+"due of the fact that the soldermask openings are by design\n"
+"a bit larger than the copper pads, and this area is\n"
+"calculated from the soldermask openings."
+msgstr ""
+"Das zu beschichtende Areal.\n"
+"Generell wird es durch die Öffnungen in der Beschichtungsmaske erzeugt.\n"
+"\n"
+"ACHTUNG: das berechnete Areal ist etwas größer da die Lötmaskenöffnungen\n"
+"etwas größer als die Pads sind, und dieses Areal aus der Lötmaske berechnet "
+"wird."
+
+#: AppTools/ToolCopperThieving.py:458
+msgid "mm"
+msgstr "mm"
+
+#: AppTools/ToolCopperThieving.py:460
+msgid "in"
+msgstr "in"
+
+#: AppTools/ToolCopperThieving.py:467
+msgid "Generate pattern plating mask"
+msgstr "Generieren der Beschichtungsmaske"
+
+#: AppTools/ToolCopperThieving.py:469
+msgid ""
+"Will add to the soldermask gerber geometry\n"
+"the geometries of the copper thieving and/or\n"
+"the robber bar if those were generated."
+msgstr ""
+"Wird die Lötmaske des Copper Thivings und/oder der \n"
+"Robber Bar zu der Gerber Geometrie hinzufügen, sofern\n"
+"diese erzeugt worden sind."
+
+#: AppTools/ToolCopperThieving.py:625 AppTools/ToolCopperThieving.py:650
+msgid "Lines Grid works only for 'itself' reference ..."
+msgstr "Schraffur geht nur bei \"Selbst\" Referenz ..."
+
+#: AppTools/ToolCopperThieving.py:636
+msgid "Solid fill selected."
+msgstr "Vollständige Füllung gewählt."
+
+#: AppTools/ToolCopperThieving.py:641
+msgid "Dots grid fill selected."
+msgstr "Punktmusterfüllung gewählt."
+
+#: AppTools/ToolCopperThieving.py:646
+msgid "Squares grid fill selected."
+msgstr "Quadratfüllung gewählt."
+
+#: AppTools/ToolCopperThieving.py:667 AppTools/ToolCopperThieving.py:749
+#: AppTools/ToolCopperThieving.py:1351 AppTools/ToolCorners.py:251
+#: AppTools/ToolDblSided.py:657 AppTools/ToolExtractDrills.py:436
+#: AppTools/ToolFiducials.py:467 AppTools/ToolFiducials.py:744
+#: AppTools/ToolOptimal.py:342 AppTools/ToolPunchGerber.py:512
+#: AppTools/ToolQRCode.py:426
+msgid "There is no Gerber object loaded ..."
+msgstr "Es ist kein Gerber-Objekt geladen ..."
+
+#: AppTools/ToolCopperThieving.py:680 AppTools/ToolCopperThieving.py:1279
+msgid "Append geometry"
+msgstr "Geometrie angehängt"
+
+#: AppTools/ToolCopperThieving.py:724 AppTools/ToolCopperThieving.py:1312
+#: AppTools/ToolCopperThieving.py:1465
+msgid "Append source file"
+msgstr "Fügen Sie die Quelldatei an"
+
+# Don`t know what a Copper Thieving Tool would do hence hard to translate
+#: AppTools/ToolCopperThieving.py:732 AppTools/ToolCopperThieving.py:1320
+msgid "Copper Thieving Tool done."
+msgstr "'Copper Thieving' Werkzeug fertig."
+
+#: AppTools/ToolCopperThieving.py:759 AppTools/ToolCopperThieving.py:792
+#: AppTools/ToolCutOut.py:519 AppTools/ToolCutOut.py:724
+#: AppTools/ToolEtchCompensation.py:208 AppTools/ToolInvertGerber.py:208
+#: AppTools/ToolNCC.py:1599 AppTools/ToolNCC.py:1641 AppTools/ToolNCC.py:1670
+#: AppTools/ToolPaint.py:1473 AppTools/ToolPanelize.py:423
+#: AppTools/ToolPanelize.py:437 AppTools/ToolSub.py:294 AppTools/ToolSub.py:307
+#: AppTools/ToolSub.py:498 AppTools/ToolSub.py:513
+#: tclCommands/TclCommandCopperClear.py:97 tclCommands/TclCommandPaint.py:99
+msgid "Could not retrieve object"
+msgstr "Objekt konnte nicht abgerufen werden"
+
+#: AppTools/ToolCopperThieving.py:769 AppTools/ToolNCC.py:1649 Common.py:200
+msgid "Click the start point of the area."
+msgstr "Klicken Sie auf den Startpunkt des Bereichs."
+
+#: AppTools/ToolCopperThieving.py:820
+msgid "Click the end point of the filling area."
+msgstr "Klicken Sie auf den Endpunkt des Ausfüllbereichs."
+
+#: AppTools/ToolCopperThieving.py:826 AppTools/ToolNCC.py:1711
+#: AppTools/ToolNCC.py:1763 AppTools/ToolPaint.py:1605
+#: AppTools/ToolPaint.py:1656 Common.py:256 Common.py:356
+msgid "Zone added. Click to start adding next zone or right click to finish."
+msgstr ""
+"Zone hinzugefügt. Klicken Sie, um die nächste Zone hinzuzufügen, oder "
+"klicken Sie mit der rechten Maustaste, um den Vorgang abzuschließen."
+
+#: AppTools/ToolCopperThieving.py:948 AppTools/ToolCopperThieving.py:952
+#: AppTools/ToolCopperThieving.py:1013
+msgid "Thieving"
+msgstr "Diebstahl"
+
+#: AppTools/ToolCopperThieving.py:959
+msgid "Copper Thieving Tool started. Reading parameters."
+msgstr "Copper Thieving Tool gestartet. Parameter lesen."
+
+#: AppTools/ToolCopperThieving.py:984
+msgid "Copper Thieving Tool. Preparing isolation polygons."
+msgstr "Copper Thieving-Tool. Vorbereitung von isolierenden Polygonen."
+
+#: AppTools/ToolCopperThieving.py:1029
+msgid "Copper Thieving Tool. Preparing areas to fill with copper."
+msgstr "Copper Thieving Tool: Areale zur Kupferfüllung vorbereiten."
+
+#: AppTools/ToolCopperThieving.py:1040 AppTools/ToolOptimal.py:349
+#: AppTools/ToolPanelize.py:810 AppTools/ToolRulesCheck.py:1127
+msgid "Working..."
+msgstr "Arbeiten..."
+
+#: AppTools/ToolCopperThieving.py:1067
+msgid "Geometry not supported for bounding box"
+msgstr "Geometrie für Umriss nicht unterstützt"
+
+#: AppTools/ToolCopperThieving.py:1073 AppTools/ToolNCC.py:1942
+#: AppTools/ToolNCC.py:1997 AppTools/ToolNCC.py:3038 AppTools/ToolPaint.py:3385
+msgid "No object available."
+msgstr "Kein Objekt vorhanden."
+
+#: AppTools/ToolCopperThieving.py:1110 AppTools/ToolNCC.py:1967
+#: AppTools/ToolNCC.py:2020 AppTools/ToolNCC.py:3080
+msgid "The reference object type is not supported."
+msgstr "Der Referenzobjekttyp wird nicht unterstützt."
+
+#: AppTools/ToolCopperThieving.py:1115
+msgid "Copper Thieving Tool. Appending new geometry and buffering."
+msgstr "Copper Thieving Tool. Füge neue Geometrie an und puffere sie."
+
+#: AppTools/ToolCopperThieving.py:1131
+msgid "Create geometry"
+msgstr "Geometrie erstellen"
+
+#: AppTools/ToolCopperThieving.py:1331 AppTools/ToolCopperThieving.py:1335
+msgid "P-Plating Mask"
+msgstr "P-Beschichtungsmaske"
+
+#: AppTools/ToolCopperThieving.py:1357
+msgid "Append PP-M geometry"
+msgstr "PPM Geometrie hinzufügen"
+
+#: AppTools/ToolCopperThieving.py:1483
+msgid "Generating Pattern Plating Mask done."
+msgstr "Erzeugen der PPM abgeschlossen."
+
+#: AppTools/ToolCopperThieving.py:1555
+msgid "Copper Thieving Tool exit."
+msgstr "Copper Thieving Tool verlassen."
+
+#: AppTools/ToolCorners.py:57
+#, fuzzy
+#| msgid "Gerber Object to which will be added a copper thieving."
+msgid "The Gerber object that to which will be added corner markers."
+msgstr "Dem Gerber Objekt wird ein Copper Thieving hinzugefügt."
+
+#: AppTools/ToolCorners.py:73
+#, fuzzy
+#| msgid "Location"
+msgid "Locations"
+msgstr "Ort"
+
+#: AppTools/ToolCorners.py:75
+msgid "Locations where to place corner markers."
+msgstr ""
+
+#: AppTools/ToolCorners.py:92 AppTools/ToolFiducials.py:99
+msgid "Top Right"
+msgstr "Oben rechts"
+
+#: AppTools/ToolCorners.py:158
+#, fuzzy
+#| msgid "Add area"
+msgid "Add Marker"
+msgstr "Bereich hinzufügen"
+
+#: AppTools/ToolCorners.py:160
+msgid "Will add corner markers to the selected Gerber file."
+msgstr ""
+
+#: AppTools/ToolCorners.py:225
+#, fuzzy
+#| msgid "QRCode Tool"
+msgid "Corners Tool"
+msgstr "QRCode Werkzeug"
+
+#: AppTools/ToolCorners.py:288
+msgid "Please select at least a location"
+msgstr ""
+
+#: AppTools/ToolCorners.py:423
+#, fuzzy
+#| msgid "Copper Thieving Tool exit."
+msgid "Corners Tool exit."
+msgstr "Copper Thieving Tool verlassen."
+
+#: AppTools/ToolCutOut.py:41
+msgid "Cutout PCB"
+msgstr "Ausschnitt PCB"
+
+#: AppTools/ToolCutOut.py:69 AppTools/ToolPanelize.py:53
+msgid "Source Object"
+msgstr "Quellobjekt"
+
+#: AppTools/ToolCutOut.py:70
+msgid "Object to be cutout"
+msgstr "Auszuschneidendes Objekt"
+
+#: AppTools/ToolCutOut.py:75
+msgid "Kind"
+msgstr "Typ"
+
+#: AppTools/ToolCutOut.py:97
+msgid ""
+"Specify the type of object to be cutout.\n"
+"It can be of type: Gerber or Geometry.\n"
+"What is selected here will dictate the kind\n"
+"of objects that will populate the 'Object' combobox."
+msgstr ""
+"Geben Sie den Objekttyp an, der ausgeschnitten werden soll.\n"
+"Es kann vom Typ sein: Gerber oder Geometrie.\n"
+"Was hier ausgewählt wird, bestimmt die Art\n"
+"von Objekten, die die Combobox 'Object' füllen."
+
+#: AppTools/ToolCutOut.py:121
+msgid "Tool Parameters"
+msgstr "Werkzeugparameter"
+
+#: AppTools/ToolCutOut.py:238
+msgid "A. Automatic Bridge Gaps"
+msgstr "A. Automatische Brückenlücken"
+
+#: AppTools/ToolCutOut.py:240
+msgid "This section handle creation of automatic bridge gaps."
+msgstr "Dieser Abschnitt behandelt die Erstellung automatischer Brückenlücken."
+
+#: AppTools/ToolCutOut.py:247
+msgid ""
+"Number of gaps used for the Automatic cutout.\n"
+"There can be maximum 8 bridges/gaps.\n"
+"The choices are:\n"
+"- None - no gaps\n"
+"- lr - left + right\n"
+"- tb - top + bottom\n"
+"- 4 - left + right +top + bottom\n"
+"- 2lr - 2*left + 2*right\n"
+"- 2tb - 2*top + 2*bottom\n"
+"- 8 - 2*left + 2*right +2*top + 2*bottom"
+msgstr ""
+"Anzahl der Lücken, die für den automatischen Ausschnitt verwendet werden.\n"
+"Es können maximal 8 Brücken / Lücken vorhanden sein.\n"
+"Die Wahlmöglichkeiten sind:\n"
+"- Keine - keine Lücken\n"
+"- lr \t- links + rechts\n"
+"- tb \t- oben + unten\n"
+"- 4 \t- links + rechts + oben + unten\n"
+"- 2lr \t- 2 * links + 2 * rechts\n"
+"- 2 tb \t- 2 * oben + 2 * unten\n"
+"- 8 \t- 2 * links + 2 * rechts + 2 * oben + 2 * unten"
+
+#: AppTools/ToolCutOut.py:269
+msgid "Generate Freeform Geometry"
+msgstr "Freiform Geometrie erzeugen"
+
+#: AppTools/ToolCutOut.py:271
+msgid ""
+"Cutout the selected object.\n"
+"The cutout shape can be of any shape.\n"
+"Useful when the PCB has a non-rectangular shape."
+msgstr ""
+"Schneiden Sie das ausgewählte Objekt aus.\n"
+"Die Ausschnittform kann eine beliebige Form haben.\n"
+"Nützlich, wenn die Leiterplatte eine nicht rechteckige Form hat."
+
+#: AppTools/ToolCutOut.py:283
+msgid "Generate Rectangular Geometry"
+msgstr "Rechteck Geometrie erzeugen"
+
+#: AppTools/ToolCutOut.py:285
+msgid ""
+"Cutout the selected object.\n"
+"The resulting cutout shape is\n"
+"always a rectangle shape and it will be\n"
+"the bounding box of the Object."
+msgstr ""
+"Schneiden Sie das ausgewählte Objekt aus.\n"
+"Die resultierende Ausschnittform ist\n"
+"immer eine rechteckige Form und es wird sein\n"
+"der Begrenzungsrahmen des Objekts."
+
+#: AppTools/ToolCutOut.py:304
+msgid "B. Manual Bridge Gaps"
+msgstr "B. Manuelle Brückenlücken"
+
+#: AppTools/ToolCutOut.py:306
+msgid ""
+"This section handle creation of manual bridge gaps.\n"
+"This is done by mouse clicking on the perimeter of the\n"
+"Geometry object that is used as a cutout object. "
+msgstr ""
+"In diesem Abschnitt wird die Erstellung manueller Brückenlücken behandelt.\n"
+"Dies geschieht durch einen Mausklick auf den Umfang des\n"
+"Geometrieobjekt, das als Ausschnittobjekt verwendet wird. "
+
+#: AppTools/ToolCutOut.py:321
+msgid "Geometry object used to create the manual cutout."
+msgstr "Geometrieobjekt zum Erstellen des manuellen Ausschnitts."
+
+#: AppTools/ToolCutOut.py:328
+msgid "Generate Manual Geometry"
+msgstr "Manuelle Geometrie erzeugen"
+
+#: AppTools/ToolCutOut.py:330
+msgid ""
+"If the object to be cutout is a Gerber\n"
+"first create a Geometry that surrounds it,\n"
+"to be used as the cutout, if one doesn't exist yet.\n"
+"Select the source Gerber file in the top object combobox."
+msgstr ""
+"Wenn das auszuschneidende Objekt ein Gerber ist\n"
+"erstelle eine Geometrie, die sie umgibt,\n"
+"als Ausschnitt verwendet werden, falls noch nicht vorhanden.\n"
+"Wählen Sie in der oberen Objekt-Combobox die Quell-Gerber-Datei aus."
+
+#: AppTools/ToolCutOut.py:343
+msgid "Manual Add Bridge Gaps"
+msgstr "Manuelles Hinzufügen von Brückenlücken"
+
+#: AppTools/ToolCutOut.py:345
+msgid ""
+"Use the left mouse button (LMB) click\n"
+"to create a bridge gap to separate the PCB from\n"
+"the surrounding material.\n"
+"The LMB click has to be done on the perimeter of\n"
+"the Geometry object used as a cutout geometry."
+msgstr ""
+"Klicken Sie mit der linken Maustaste (LMB)\n"
+"Erstellen einer Brückenlücke, um die Leiterplatte von zu trennen\n"
+"das umgebende Material.\n"
+"Der LMB-Klick muss am Umfang von erfolgen\n"
+"das Geometrieobjekt, das als Ausschnittsgeometrie verwendet wird."
+
+#: AppTools/ToolCutOut.py:524
+msgid ""
+"There is no object selected for Cutout.\n"
+"Select one and try again."
+msgstr ""
+"Es ist kein Objekt für den Ausschnitt ausgewählt.\n"
+"Wählen Sie eine aus und versuchen Sie es erneut."
+
+#: AppTools/ToolCutOut.py:530 AppTools/ToolCutOut.py:733
+#: AppTools/ToolCutOut.py:914 AppTools/ToolCutOut.py:996
+#: tclCommands/TclCommandGeoCutout.py:184
+msgid "Tool Diameter is zero value. Change it to a positive real number."
+msgstr ""
+"Werkzeugdurchmesser ist Nullwert. Ändern Sie es in eine positive reelle Zahl."
+
+#: AppTools/ToolCutOut.py:544 AppTools/ToolCutOut.py:748
+msgid "Number of gaps value is missing. Add it and retry."
+msgstr ""
+"Der Wert für die Anzahl der Lücken fehlt. Fügen Sie es hinzu und versuchen "
+"Sie es erneut."
+
+#: AppTools/ToolCutOut.py:549 AppTools/ToolCutOut.py:752
+msgid ""
+"Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. "
+"Fill in a correct value and retry. "
+msgstr ""
+"Der Lückenwert kann nur einer der folgenden Werte sein: \"Keine\", \"lr\", "
+"\"tb\", \"2lr\", \"2tb\", 4 oder 8. Geben Sie einen korrekten Wert ein und "
+"wiederholen Sie den Vorgang. "
+
+#: AppTools/ToolCutOut.py:554 AppTools/ToolCutOut.py:758
+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 ""
+"Bei einer Multi-Geo-Geometrie können keine Ausschnitte vorgenommen werden.\n"
+"Optional kann diese Multi-Geo-Geometrie in Single-Geo-Geometrie konvertiert "
+"werden.\n"
+"und danach Cutout durchführen."
+
+#: AppTools/ToolCutOut.py:706 AppTools/ToolCutOut.py:903
+msgid "Any form CutOut operation finished."
+msgstr "Jede Form CutOut-Operation ist abgeschlossen."
+
+#: AppTools/ToolCutOut.py:728 AppTools/ToolEtchCompensation.py:214
+#: AppTools/ToolInvertGerber.py:214 AppTools/ToolNCC.py:1603
+#: AppTools/ToolPaint.py:1396 AppTools/ToolPanelize.py:428
+#: tclCommands/TclCommandBbox.py:71 tclCommands/TclCommandNregions.py:71
+msgid "Object not found"
+msgstr "Objekt nicht gefunden"
+
+#: AppTools/ToolCutOut.py:872
+msgid "Rectangular cutout with negative margin is not possible."
+msgstr "Ein rechteckiger Ausschnitt mit negativem Rand ist nicht möglich."
+
+#: AppTools/ToolCutOut.py:908
+msgid ""
+"Click on the selected geometry object perimeter to create a bridge gap ..."
+msgstr ""
+"Klicken Sie auf den ausgewählten Umfang des Geometrieobjekts, um eine "
+"Brückenlücke zu erstellen ..."
+
+#: AppTools/ToolCutOut.py:925 AppTools/ToolCutOut.py:951
+msgid "Could not retrieve Geometry object"
+msgstr "Geometrieobjekt konnte nicht abgerufen werden"
+
+#: AppTools/ToolCutOut.py:956
+msgid "Geometry object for manual cutout not found"
+msgstr "Geometrieobjekt für manuellen Ausschnitt nicht gefunden"
+
+#: AppTools/ToolCutOut.py:966
+msgid "Added manual Bridge Gap."
+msgstr "Manuelle Brückenlücke hinzugefügt."
+
+#: AppTools/ToolCutOut.py:978
+msgid "Could not retrieve Gerber object"
+msgstr "Gerber-Objekt konnte nicht abgerufen werden"
+
+#: AppTools/ToolCutOut.py:983
+msgid ""
+"There is no Gerber object selected for Cutout.\n"
+"Select one and try again."
+msgstr ""
+"Es ist kein Gerber-Objekt für den Ausschnitt ausgewählt.\n"
+"Wählen Sie eine aus und versuchen Sie es erneut."
+
+#: AppTools/ToolCutOut.py:989
+msgid ""
+"The selected object has to be of Gerber type.\n"
+"Select a Gerber file and try again."
+msgstr ""
+"Das ausgewählte Objekt muss vom Typ Gerber sein.\n"
+"Wählen Sie eine Gerber-Datei aus und versuchen Sie es erneut."
+
+#: AppTools/ToolCutOut.py:1024
+msgid "Geometry not supported for cutout"
+msgstr "Geometrie für Ausschnitt nicht unterstützt"
+
+#: AppTools/ToolCutOut.py:1099
+msgid "Making manual bridge gap..."
+msgstr "Manuelle Brückenlücke herstellen ..."
+
+#: AppTools/ToolDblSided.py:26
+msgid "2-Sided PCB"
+msgstr "2-seitige PCB"
+
+#: AppTools/ToolDblSided.py:52
+msgid "Mirror Operation"
+msgstr "Spiegelbetrieb"
+
+#: AppTools/ToolDblSided.py:53
+msgid "Objects to be mirrored"
+msgstr "Zu spiegelnde Objekte"
+
+#: AppTools/ToolDblSided.py:65
+msgid "Gerber to be mirrored"
+msgstr "Zu spiegelndes Gerber"
+
+#: AppTools/ToolDblSided.py:69 AppTools/ToolDblSided.py:97
+#: AppTools/ToolDblSided.py:127
+msgid ""
+"Mirrors (flips) the specified object around \n"
+"the specified axis. Does not create a new \n"
+"object, but modifies it."
+msgstr ""
+"Spiegelt das angegebene Objekt um\n"
+"die angegebene Achse. Erstellt kein neues\n"
+"Objekt, ändert es aber."
+
+#: AppTools/ToolDblSided.py:93
+msgid "Excellon Object to be mirrored."
+msgstr "Zu spiegelndes Excellon-Objekt."
+
+#: AppTools/ToolDblSided.py:122
+msgid "Geometry Obj to be mirrored."
+msgstr "Geometrie-Objekt, das gespiegelt werden soll."
+
+#: AppTools/ToolDblSided.py:158
+msgid "Mirror Parameters"
+msgstr "Spiegelparameter"
+
+#: AppTools/ToolDblSided.py:159
+msgid "Parameters for the mirror operation"
+msgstr "Parameter für die Spiegeloperation"
+
+#: AppTools/ToolDblSided.py:164
+msgid "Mirror Axis"
+msgstr "Spiegelachse"
+
+#: AppTools/ToolDblSided.py:175
+msgid ""
+"The coordinates used as reference for the mirror operation.\n"
+"Can be:\n"
+"- Point -> a set of coordinates (x,y) around which the object is mirrored\n"
+"- Box -> a set of coordinates (x, y) obtained from the center of the\n"
+"bounding box of another object selected below"
+msgstr ""
+"Die Koordinaten, die als Referenz für die Spiegeloperation verwendet "
+"werden.\n"
+"Kann sein:\n"
+"- Punkt -> eine Reihe von Koordinaten (x, y), um die das Objekt gespiegelt "
+"wird\n"
+"- Box -> ein Satz von Koordinaten (x, y), die aus der Mitte des erhalten "
+"werden\n"
+"Begrenzungsrahmen eines anderen unten ausgewählten Objekts"
+
+#: AppTools/ToolDblSided.py:189
+msgid "Point coordinates"
+msgstr "Punktkoordinaten"
+
+#: AppTools/ToolDblSided.py:194
+msgid ""
+"Add the coordinates in format (x, y) through which the mirroring "
+"axis\n"
+" selected in 'MIRROR AXIS' pass.\n"
+"The (x, y) coordinates are captured by pressing SHIFT key\n"
+"and left mouse button click on canvas or you can enter the coordinates "
+"manually."
+msgstr ""
+"Fügen Sie die Koordinaten im Format (x, y) hinzu, durch die die "
+"Spiegelungsachse verläuft\n"
+"ausgewählt im Pass 'Spiegelachse'.\n"
+"Die (x, y) -Koordinaten werden durch Drücken der SHIFT erfasst\n"
+"und klicken Sie mit der linken Maustaste auf die Leinwand oder Sie können "
+"die Koordinaten manuell eingeben."
+
+#: AppTools/ToolDblSided.py:218
+msgid ""
+"It can be of type: Gerber or Excellon or Geometry.\n"
+"The coordinates of the center of the bounding box are used\n"
+"as reference for mirror operation."
+msgstr ""
+"Es kann vom Typ sein: Gerber oder Excellon oder Geometrie.\n"
+"Die Koordinaten der Mitte des Begrenzungsrahmens werden verwendet\n"
+"als Referenz für den Spiegelbetrieb."
+
+#: AppTools/ToolDblSided.py:252
+msgid "Bounds Values"
+msgstr "Grenzen Werte"
+
+#: AppTools/ToolDblSided.py:254
+msgid ""
+"Select on canvas the object(s)\n"
+"for which to calculate bounds values."
+msgstr ""
+"Wählen Sie auf der Leinwand die Objekte aus.\n"
+"für die Grenzwerte berechnet werden sollen."
+
+#: AppTools/ToolDblSided.py:264
+msgid "X min"
+msgstr "X min"
+
+#: AppTools/ToolDblSided.py:266 AppTools/ToolDblSided.py:280
+msgid "Minimum location."
+msgstr "Mindeststandort."
+
+#: AppTools/ToolDblSided.py:278
+msgid "Y min"
+msgstr "Y min"
+
+#: AppTools/ToolDblSided.py:292
+msgid "X max"
+msgstr "X max"
+
+#: AppTools/ToolDblSided.py:294 AppTools/ToolDblSided.py:308
+msgid "Maximum location."
+msgstr "Maximaler Standort."
+
+#: AppTools/ToolDblSided.py:306
+msgid "Y max"
+msgstr "Y max"
+
+#: AppTools/ToolDblSided.py:317
+msgid "Center point coordinates"
+msgstr "Mittelpunktskoordinaten"
+
+#: AppTools/ToolDblSided.py:319
+msgid "Centroid"
+msgstr "Schwerpunkt"
+
+#: AppTools/ToolDblSided.py:321
+msgid ""
+"The center point location for the rectangular\n"
+"bounding shape. Centroid. Format is (x, y)."
+msgstr ""
+"Die Mittelpunktposition für das Rechteck\n"
+"begrenzende Form. Centroid. Das Format ist (x, y)."
+
+#: AppTools/ToolDblSided.py:330
+msgid "Calculate Bounds Values"
+msgstr "Berechnen Sie Grenzwerte"
+
+#: AppTools/ToolDblSided.py:332
+msgid ""
+"Calculate the enveloping rectangular shape coordinates,\n"
+"for the selection of objects.\n"
+"The envelope shape is parallel with the X, Y axis."
+msgstr ""
+"Berechnen Sie die einhüllenden rechteckigen Formkoordinaten,\n"
+"zur Auswahl von Objekten.\n"
+"Die Hüllkurvenform verläuft parallel zur X- und Y-Achse."
+
+#: AppTools/ToolDblSided.py:352
+msgid "PCB Alignment"
+msgstr "PCB-Ausrichtung"
+
+#: AppTools/ToolDblSided.py:354 AppTools/ToolDblSided.py:456
+msgid ""
+"Creates an Excellon Object containing the\n"
+"specified alignment holes and their mirror\n"
+"images."
+msgstr ""
+"Erstellt ein Excellon-Objekt, das das enthält\n"
+"spezifizierte Ausrichtungslöcher und deren Spiegel\n"
+"Bilder."
+
+#: AppTools/ToolDblSided.py:361
+msgid "Drill Diameter"
+msgstr "Bohrdurchmesser"
+
+#: AppTools/ToolDblSided.py:390 AppTools/ToolDblSided.py:397
+msgid ""
+"The reference point used to create the second alignment drill\n"
+"from the first alignment drill, by doing mirror.\n"
+"It can be modified in the Mirror Parameters -> Reference section"
+msgstr ""
+"Der Referenzpunkt, der zum Erstellen des zweiten Ausrichtungsbohrers "
+"verwendet wird\n"
+"vom ersten Ausrichtungsbohrer durch Spiegeln.\n"
+"Sie kann im Abschnitt Spiegelparameter -> Referenz geändert werden"
+
+#: AppTools/ToolDblSided.py:410
+msgid "Alignment Drill Coordinates"
+msgstr "Ausrichtungsbohrkoordinaten"
+
+#: AppTools/ToolDblSided.py:412
+msgid ""
+"Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For "
+"each set of (x, y) coordinates\n"
+"entered here, a pair of drills will be created:\n"
+"\n"
+"- one drill at the coordinates from the field\n"
+"- one drill in mirror position over the axis selected above in the 'Align "
+"Axis'."
+msgstr ""
+"Ausrichtungslöcher (x1, y1), (x2, y2), ... auf einer Seite der Spiegelachse. "
+"Für jeden Satz von (x, y) Koordinaten\n"
+"Hier wird ein Paar Bohrer erstellt:\n"
+"\n"
+"- Ein Bohrer an den Koordinaten vom Feld\n"
+"- Ein Bohrer in Spiegelposition über der oben in 'Achse ausrichten' "
+"ausgewählten Achse."
+
+#: AppTools/ToolDblSided.py:420
+msgid "Drill coordinates"
+msgstr "Bohrkoordinaten"
+
+#: AppTools/ToolDblSided.py:427
+msgid ""
+"Add alignment drill holes coordinates in the format: (x1, y1), (x2, "
+"y2), ... \n"
+"on one side of the alignment axis.\n"
+"\n"
+"The coordinates set can be obtained:\n"
+"- press SHIFT key and left mouse clicking on canvas. Then click Add.\n"
+"- press SHIFT key and left mouse clicking on canvas. Then Ctrl+V in the "
+"field.\n"
+"- press SHIFT key and left mouse clicking on canvas. Then RMB click in the "
+"field and click Paste.\n"
+"- by entering the coords manually in the format: (x1, y1), (x2, y2), ..."
+msgstr ""
+"Fügen Sie Koordinaten für Ausrichtungsbohrungen im folgenden Format hinzu: "
+"(x1, y1), (x2, y2), ...\n"
+"auf einer Seite der Ausrichtungsachse.\n"
+"\n"
+"Die eingestellten Koordinaten erhalten Sie:\n"
+"- Drücken Sie die SHIFT-taste und klicken Sie mit der linken Maustaste auf "
+"die Leinwand. Klicken Sie dann auf Hinzufügen.\n"
+"- Drücken Sie die SHIFT-tasteund klicken Sie mit der linken Maustaste auf "
+"die Leinwand. Dann Strg + V im Feld.\n"
+"- Drücken Sie die SHIFT-tasteund klicken Sie mit der linken Maustaste auf "
+"die Leinwand. Klicken Sie dann in das Feld und dann auf Einfügen.\n"
+"- durch manuelle Eingabe der Koordinaten im Format: (x1, y1), (x2, y2), ..."
+
+#: AppTools/ToolDblSided.py:442
+msgid "Delete Last"
+msgstr "Letzte löschen"
+
+#: AppTools/ToolDblSided.py:444
+msgid "Delete the last coordinates tuple in the list."
+msgstr "Delete the last coordinates tuple in the list."
+
+#: AppTools/ToolDblSided.py:454
+msgid "Create Excellon Object"
+msgstr "Excellon-Objekt erstellen"
+
+#: AppTools/ToolDblSided.py:541
+msgid "2-Sided Tool"
+msgstr "2-seitiges Werkzeug"
+
+#: AppTools/ToolDblSided.py:581
+msgid ""
+"'Point' reference is selected and 'Point' coordinates are missing. Add them "
+"and retry."
+msgstr ""
+"'Point'-Referenz ist ausgewählt und' Point'-Koordinaten fehlen. Fügen Sie "
+"sie hinzu und versuchen Sie es erneut."
+
+#: AppTools/ToolDblSided.py:600
+msgid "There is no Box reference object loaded. Load one and retry."
+msgstr ""
+"Es ist kein Box-Referenzobjekt geladen. Laden Sie einen und versuchen Sie es "
+"erneut."
+
+#: AppTools/ToolDblSided.py:612
+msgid "No value or wrong format in Drill Dia entry. Add it and retry."
+msgstr ""
+"Kein Wert oder falsches Format im Eintrag Bohrdurchmesser. Fügen Sie es "
+"hinzu und versuchen Sie es erneut."
+
+#: AppTools/ToolDblSided.py:623
+msgid "There are no Alignment Drill Coordinates to use. Add them and retry."
+msgstr ""
+"Es sind keine Ausrichtungsbohrkoordinaten vorhanden. Fügen Sie sie hinzu und "
+"versuchen Sie es erneut."
+
+#: AppTools/ToolDblSided.py:648
+msgid "Excellon object with alignment drills created..."
+msgstr "Excellon-Objekt mit Ausrichtungsbohrern erstellt ..."
+
+#: AppTools/ToolDblSided.py:661 AppTools/ToolDblSided.py:704
+#: AppTools/ToolDblSided.py:748
+msgid "Only Gerber, Excellon and Geometry objects can be mirrored."
+msgstr "Nur Gerber-, Excellon- und Geometrie-Objekte können gespiegelt werden."
+
+#: AppTools/ToolDblSided.py:671 AppTools/ToolDblSided.py:715
+msgid ""
+"There are no Point coordinates in the Point field. Add coords and try "
+"again ..."
+msgstr ""
+"Das Punktfeld enthält keine Punktkoordinaten. Fügen Sie Coords hinzu und "
+"versuchen Sie es erneut ..."
+
+#: AppTools/ToolDblSided.py:681 AppTools/ToolDblSided.py:725
+#: AppTools/ToolDblSided.py:762
+msgid "There is no Box object loaded ..."
+msgstr "Es ist kein Box-Objekt geladen ..."
+
+#: AppTools/ToolDblSided.py:691 AppTools/ToolDblSided.py:735
+#: AppTools/ToolDblSided.py:772
+msgid "was mirrored"
+msgstr "wurde gespiegelt"
+
+#: AppTools/ToolDblSided.py:700 AppTools/ToolPunchGerber.py:533
+msgid "There is no Excellon object loaded ..."
+msgstr "Es ist kein Excellon-Objekt geladen ..."
+
+#: AppTools/ToolDblSided.py:744
+msgid "There is no Geometry object loaded ..."
+msgstr "Es wurde kein Geometrieobjekt geladen ..."
+
+#: AppTools/ToolDblSided.py:818 App_Main.py:4322 App_Main.py:4477
+msgid "Failed. No object(s) selected..."
+msgstr "Gescheitert. Kein Objekt ausgewählt ..."
+
+#: AppTools/ToolDistance.py:57 AppTools/ToolDistanceMin.py:50
+msgid "Those are the units in which the distance is measured."
+msgstr "Dies sind die Einheiten, in denen die Entfernung gemessen wird."
+
+#: AppTools/ToolDistance.py:58 AppTools/ToolDistanceMin.py:51
+msgid "METRIC (mm)"
+msgstr "METRISCH (mm)"
+
+#: AppTools/ToolDistance.py:58 AppTools/ToolDistanceMin.py:51
+msgid "INCH (in)"
+msgstr "ZOLL (in)"
+
+#: AppTools/ToolDistance.py:64
+msgid "Snap to center"
+msgstr "Zur Mitte einrasten"
+
+#: AppTools/ToolDistance.py:66
+msgid ""
+"Mouse cursor will snap to the center of the pad/drill\n"
+"when it is hovering over the geometry of the pad/drill."
+msgstr ""
+"Der Mauszeiger rastet in der Mitte des Pads / Bohrers ein\n"
+"wenn es über der Geometrie des Pads / Bohrers schwebt."
+
+#: AppTools/ToolDistance.py:76
+msgid "Start Coords"
+msgstr "Starten Sie Koords"
+
+#: AppTools/ToolDistance.py:77 AppTools/ToolDistance.py:82
+msgid "This is measuring Start point coordinates."
+msgstr "Dies ist das Messen von Startpunktkoordinaten."
+
+#: AppTools/ToolDistance.py:87
+msgid "Stop Coords"
+msgstr "Stoppen Sie Koords"
+
+#: AppTools/ToolDistance.py:88 AppTools/ToolDistance.py:93
+msgid "This is the measuring Stop point coordinates."
+msgstr "Dies ist die Messpunkt-Koordinate."
+
+#: AppTools/ToolDistance.py:98 AppTools/ToolDistanceMin.py:62
+msgid "Dx"
+msgstr "Dx"
+
+#: AppTools/ToolDistance.py:99 AppTools/ToolDistance.py:104
+#: AppTools/ToolDistanceMin.py:63 AppTools/ToolDistanceMin.py:92
+msgid "This is the distance measured over the X axis."
+msgstr "Dies ist der Abstand, der über die X-Achse gemessen wird."
+
+#: AppTools/ToolDistance.py:109 AppTools/ToolDistanceMin.py:65
+msgid "Dy"
+msgstr "Dy"
+
+#: AppTools/ToolDistance.py:110 AppTools/ToolDistance.py:115
+#: AppTools/ToolDistanceMin.py:66 AppTools/ToolDistanceMin.py:97
+msgid "This is the distance measured over the Y axis."
+msgstr "Dies ist die über die Y-Achse gemessene Entfernung."
+
+#: AppTools/ToolDistance.py:121 AppTools/ToolDistance.py:126
+#: AppTools/ToolDistanceMin.py:69 AppTools/ToolDistanceMin.py:102
+msgid "This is orientation angle of the measuring line."
+msgstr "Dies ist der Orientierungswinkel der Messlinie."
+
+#: AppTools/ToolDistance.py:131 AppTools/ToolDistanceMin.py:71
+msgid "DISTANCE"
+msgstr "ENTFERNUNG"
+
+#: AppTools/ToolDistance.py:132 AppTools/ToolDistance.py:137
+msgid "This is the point to point Euclidian distance."
+msgstr "Dies ist die Punkt-zu-Punkt-Euklidische Entfernung."
+
+#: AppTools/ToolDistance.py:142 AppTools/ToolDistance.py:339
+#: AppTools/ToolDistanceMin.py:114
+msgid "Measure"
+msgstr "Messen"
+
+#: AppTools/ToolDistance.py:274
+msgid "Working"
+msgstr "Arbeiten"
+
+#: AppTools/ToolDistance.py:279
+msgid "MEASURING: Click on the Start point ..."
+msgstr "MESSEN: Klicken Sie auf den Startpunkt ..."
+
+#: AppTools/ToolDistance.py:389
+msgid "Distance Tool finished."
+msgstr "Distanzwerkzeug fertig."
+
+#: AppTools/ToolDistance.py:461
+msgid "Pads overlapped. Aborting."
+msgstr "Pads überlappen sich. Abbruch."
+
+#: AppTools/ToolDistance.py:489
+#, fuzzy
+#| msgid "Distance Tool finished."
+msgid "Distance Tool cancelled."
+msgstr "Distanzwerkzeug fertig."
+
+#: AppTools/ToolDistance.py:494
+msgid "MEASURING: Click on the Destination point ..."
+msgstr "MESSEN: Klicken Sie auf den Zielpunkt ..."
+
+#: AppTools/ToolDistance.py:503 AppTools/ToolDistanceMin.py:284
+msgid "MEASURING"
+msgstr "MESSUNG"
+
+#: AppTools/ToolDistance.py:504 AppTools/ToolDistanceMin.py:285
+msgid "Result"
+msgstr "Ergebnis"
+
+#: AppTools/ToolDistanceMin.py:31 AppTools/ToolDistanceMin.py:143
+msgid "Minimum Distance Tool"
+msgstr "Werkzeug für minimalen Abstand"
+
+#: AppTools/ToolDistanceMin.py:54
+msgid "First object point"
+msgstr "Erster Objektpunkt"
+
+#: AppTools/ToolDistanceMin.py:55 AppTools/ToolDistanceMin.py:80
+msgid ""
+"This is first object point coordinates.\n"
+"This is the start point for measuring distance."
+msgstr ""
+"Dies sind erste Objektpunktkoordinaten.\n"
+"Dies ist der Startpunkt für die Entfernungsmessung."
+
+#: AppTools/ToolDistanceMin.py:58
+msgid "Second object point"
+msgstr "Zweiter Objektpunkt"
+
+#: AppTools/ToolDistanceMin.py:59 AppTools/ToolDistanceMin.py:86
+msgid ""
+"This is second object point coordinates.\n"
+"This is the end point for measuring distance."
+msgstr ""
+"Dies sind die Koordinaten des zweiten Objektpunkts.\n"
+"Dies ist der Endpunkt für die Entfernungsmessung."
+
+#: AppTools/ToolDistanceMin.py:72 AppTools/ToolDistanceMin.py:107
+msgid "This is the point to point Euclidean distance."
+msgstr "Dies ist die euklidische Distanz von Punkt zu Punkt."
+
+#: AppTools/ToolDistanceMin.py:74
+msgid "Half Point"
+msgstr "Halber Punkt"
+
+#: AppTools/ToolDistanceMin.py:75 AppTools/ToolDistanceMin.py:112
+msgid "This is the middle point of the point to point Euclidean distance."
+msgstr "Dies ist der Mittelpunkt der euklidischen Distanz von Punkt zu Punkt."
+
+#: AppTools/ToolDistanceMin.py:117
+msgid "Jump to Half Point"
+msgstr "Springe zum halben Punkt"
+
+#: AppTools/ToolDistanceMin.py:154
+msgid ""
+"Select two objects and no more, to measure the distance between them ..."
+msgstr ""
+"Wählen Sie zwei und nicht mehr Objekte aus, um den Abstand zwischen ihnen zu "
+"messen ..."
+
+#: AppTools/ToolDistanceMin.py:195 AppTools/ToolDistanceMin.py:216
+#: AppTools/ToolDistanceMin.py:225 AppTools/ToolDistanceMin.py:246
+msgid "Select two objects and no more. Currently the selection has objects: "
+msgstr ""
+"Wählen Sie zwei Objekte und nicht mehr. Derzeit hat die Auswahl Objekte: "
+
+#: AppTools/ToolDistanceMin.py:293
+msgid "Objects intersects or touch at"
+msgstr "Objekte schneiden sich oder berühren sich"
+
+#: AppTools/ToolDistanceMin.py:299
+msgid "Jumped to the half point between the two selected objects"
+msgstr "Sprang zum halben Punkt zwischen den beiden ausgewählten Objekten"
+
+#: AppTools/ToolEtchCompensation.py:74 AppTools/ToolInvertGerber.py:74
+msgid "Gerber object that will be inverted."
+msgstr "Gerber-Objekt, das invertiert wird."
+
+#: AppTools/ToolEtchCompensation.py:83 AppTools/ToolInvertGerber.py:83
+msgid "Parameters for this tool"
+msgstr "Parameter für dieses Werkzeug"
+
+#: AppTools/ToolEtchCompensation.py:88
+#, fuzzy
+#| msgid "Thickness"
+msgid "Copper Thickness"
+msgstr "Dicke"
+
+#: AppTools/ToolEtchCompensation.py:90
+#, fuzzy
+#| msgid ""
+#| "How thick the copper growth is intended to be.\n"
+#| "In microns."
+msgid ""
+"The thickness of the copper foil.\n"
+"In microns [um]."
+msgstr ""
+"Wie dick soll das Kupferwachstum sein.\n"
+"In Mikrometern."
+
+#: AppTools/ToolEtchCompensation.py:101
+#, fuzzy
+#| msgid "Location"
+msgid "Ratio"
+msgstr "Ort"
+
+#: AppTools/ToolEtchCompensation.py:103
+msgid ""
+"The ratio of lateral etch versus depth etch.\n"
+"Can be:\n"
+"- custom -> the user will enter a custom value\n"
+"- preselection -> value which depends on a selection of etchants"
+msgstr ""
+
+#: AppTools/ToolEtchCompensation.py:109
+#, fuzzy
+#| msgid "Selection"
+msgid "PreSelection"
+msgstr "Auswahl"
+
+#: AppTools/ToolEtchCompensation.py:121
+msgid "Compensate"
+msgstr ""
+
+#: AppTools/ToolEtchCompensation.py:123
+msgid ""
+"Will increase the copper features thickness to compensate the lateral etch."
+msgstr ""
+
+#: AppTools/ToolEtchCompensation.py:181 AppTools/ToolInvertGerber.py:184
+msgid "Invert Tool"
+msgstr "Invertiert Werkzeug"
+
+#: AppTools/ToolExtractDrills.py:29 AppTools/ToolExtractDrills.py:295
+msgid "Extract Drills"
+msgstr "Bohrer extrahieren"
+
+#: AppTools/ToolExtractDrills.py:62
+msgid "Gerber from which to extract drill holes"
+msgstr "Gerber, aus dem Bohrlöcher gezogen werden sollen"
+
+#: AppTools/ToolExtractDrills.py:297
+msgid "Extract drills from a given Gerber file."
+msgstr "Extrahieren Sie Bohrer aus einer bestimmten Gerber-Datei."
+
+#: AppTools/ToolExtractDrills.py:478 AppTools/ToolExtractDrills.py:563
+#: AppTools/ToolExtractDrills.py:648
+msgid "No drills extracted. Try different parameters."
+msgstr "Keine Bohrer extrahiert. Probieren Sie verschiedene Parameter aus."
+
+#: AppTools/ToolFiducials.py:56
+msgid "Fiducials Coordinates"
+msgstr "Bezugspunktkoordinaten"
+
+#: AppTools/ToolFiducials.py:58
+msgid ""
+"A table with the fiducial points coordinates,\n"
+"in the format (x, y)."
+msgstr ""
+"Eine Tabelle der Bezugspunkte mit Koordinaten \n"
+"im Format (x,z)"
+
+#: AppTools/ToolFiducials.py:191
+msgid ""
+"- 'Auto' - automatic placement of fiducials in the corners of the bounding "
+"box.\n"
+" - 'Manual' - manual placement of fiducials."
+msgstr ""
+"\"Auto\" Die Bezugspunkte werden automatisch in den Ecken des Umrisses "
+"platziert.\n"
+"\"Manuell\" Die Bezugspunkte werden manuell platziert."
+
+#: AppTools/ToolFiducials.py:237
+msgid "Thickness of the line that makes the fiducial."
+msgstr ""
+
+#: AppTools/ToolFiducials.py:259
+msgid "Copper Gerber"
+msgstr "Gerber (Kupfer) öffnen"
+
+#: AppTools/ToolFiducials.py:268
+msgid "Add Fiducial"
+msgstr "Bezugspunkt hinzufügen"
+
+#: AppTools/ToolFiducials.py:270
+msgid "Will add a polygon on the copper layer to serve as fiducial."
+msgstr "Fügt ein Polygon auf die Kupferschicht als Bezugspunkt hinzu."
+
+#: AppTools/ToolFiducials.py:286
+msgid "Soldermask Gerber"
+msgstr "Lötpastenmaske Gerber"
+
+#: AppTools/ToolFiducials.py:288
+msgid "The Soldermask Gerber object."
+msgstr "Lötpastenmaske Gerber-Objekt."
+
+#: AppTools/ToolFiducials.py:300
+msgid "Add Soldermask Opening"
+msgstr "Lotpastenmaske Öffnung hinzufügen"
+
+#: AppTools/ToolFiducials.py:302
+msgid ""
+"Will add a polygon on the soldermask layer\n"
+"to serve as fiducial opening.\n"
+"The diameter is always double of the diameter\n"
+"for the copper fiducial."
+msgstr ""
+"Fügt ein Polygon zur Lötpastenschicht hinzu, \n"
+"welches als Öffnungs-Bezugspunkt dient.\n"
+"Der Durchmesser ist immer doppelt so groß\n"
+"wie der Kupfer Bezugspunkt."
+
+#: AppTools/ToolFiducials.py:517
+msgid "Click to add first Fiducial. Bottom Left..."
+msgstr "Klicken um den ersten Bezugspunkt unten links hinzuzufügen..."
+
+#: AppTools/ToolFiducials.py:781
+msgid "Click to add the last fiducial. Top Right..."
+msgstr "Klicken um den letzten Bezugspunkt oben rechts hinzuzufügen..."
+
+#: AppTools/ToolFiducials.py:786
+msgid "Click to add the second fiducial. Top Left or Bottom Right..."
+msgstr ""
+"Klicken um den zweiten Bezugspunkt oben links oder unten rechts "
+"hinzuzufügen..."
+
+#: AppTools/ToolFiducials.py:789 AppTools/ToolFiducials.py:798
+msgid "Done. All fiducials have been added."
+msgstr "Fertig. Alle Bezugspunkte hinzugefügt."
+
+#: AppTools/ToolFiducials.py:875
+msgid "Fiducials Tool exit."
+msgstr "Bezugspunkttool beenden."
+
+#: AppTools/ToolFilm.py:42
+msgid "Film PCB"
+msgstr "Film PCB"
+
+#: AppTools/ToolFilm.py:73
+msgid ""
+"Specify the type of object for which to create the film.\n"
+"The object can be of type: Gerber or Geometry.\n"
+"The selection here decide the type of objects that will be\n"
+"in the Film Object combobox."
+msgstr ""
+"Geben Sie den Objekttyp an, für den der Film erstellt werden soll.\n"
+"Das Objekt kann vom Typ sein: Gerber oder Geometrie.\n"
+"Die Auswahl hier bestimmt den Objekttyp\n"
+"im Filmobjekt-Kombinationsfeld."
+
+#: AppTools/ToolFilm.py:96
+msgid ""
+"Specify the type of object to be used as an container for\n"
+"film creation. It can be: Gerber or Geometry type.The selection here decide "
+"the type of objects that will be\n"
+"in the Box Object combobox."
+msgstr ""
+"Geben Sie den Objekttyp an, für den ein Container verwendet werden soll\n"
+"Filmschaffung. Es kann sein: Gerber- oder Geometrietyp. Die Auswahl hier "
+"bestimmt den Objekttyp\n"
+"im Kombinationsfeld Box-Objekt."
+
+#: AppTools/ToolFilm.py:256
+msgid "Film Parameters"
+msgstr "Film-Parameter"
+
+#: AppTools/ToolFilm.py:317
+msgid "Punch drill holes"
+msgstr "Löcher stanzen"
+
+#: AppTools/ToolFilm.py:318
+msgid ""
+"When checked the generated film will have holes in pads when\n"
+"the generated film is positive. This is done to help drilling,\n"
+"when done manually."
+msgstr ""
+"Wenn diese Option aktiviert ist, weist der erzeugte Film Löcher in den Pads "
+"auf\n"
+"Der erzeugte Film ist positiv. Dies geschieht, um das Bohren zu "
+"erleichtern.\n"
+"wenn manuell erledigt."
+
+#: AppTools/ToolFilm.py:336
+msgid "Source"
+msgstr "Quelle"
+
+#: AppTools/ToolFilm.py:338
+msgid ""
+"The punch hole source can be:\n"
+"- Excellon -> an Excellon holes center will serve as reference.\n"
+"- Pad Center -> will try to use the pads center as reference."
+msgstr ""
+"Die Stanzlochquelle kann sein:\n"
+"- Excellon -> Ein Excellon-Lochzentrum dient als Referenz.\n"
+"- Pad-Mitte -> wird versuchen, die Pad-Mitte als Referenz zu verwenden."
+
+#: AppTools/ToolFilm.py:343
+msgid "Pad center"
+msgstr "Pad-Mitte"
+
+#: AppTools/ToolFilm.py:348
+msgid "Excellon Obj"
+msgstr "Excellon-Objekt"
+
+#: AppTools/ToolFilm.py:350
+msgid ""
+"Remove the geometry of Excellon from the Film to create the holes in pads."
+msgstr ""
+"Entfernen Sie die Geometrie von Excellon aus dem Film, um die Löcher in den "
+"Pads zu erzeugen."
+
+#: AppTools/ToolFilm.py:364
+msgid "Punch Size"
+msgstr "Lochergröße"
+
+#: AppTools/ToolFilm.py:365
+msgid "The value here will control how big is the punch hole in the pads."
+msgstr "Der Wert hier bestimmt, wie groß das Loch in den Pads ist."
+
+#: AppTools/ToolFilm.py:485
+msgid "Save Film"
+msgstr "Film speichern"
+
+#: AppTools/ToolFilm.py:487
+msgid ""
+"Create a Film for the selected object, within\n"
+"the specified box. Does not create a new \n"
+" FlatCAM object, but directly save it in the\n"
+"selected format."
+msgstr ""
+"Erstellen Sie einen Film für das ausgewählte Objekt\n"
+"die angegebene Box Erstellt kein neues\n"
+" FlatCAM-Objekt, speichern Sie es jedoch direkt im \n"
+"gewähltem Format."
+
+#: AppTools/ToolFilm.py:649
+msgid ""
+"Using the Pad center does not work on Geometry objects. Only a Gerber object "
+"has pads."
+msgstr ""
+"Die Verwendung der Pad-Mitte funktioniert nicht bei Geometrieobjekten. Nur "
+"ein Gerber-Objekt hat Pads."
+
+#: AppTools/ToolFilm.py:659
+msgid "No FlatCAM object selected. Load an object for Film and retry."
+msgstr ""
+"Kein FlatCAM-Objekt ausgewählt. Laden Sie ein Objekt für Film und versuchen "
+"Sie es erneut."
+
+#: AppTools/ToolFilm.py:666
+msgid "No FlatCAM object selected. Load an object for Box and retry."
+msgstr ""
+"Kein FlatCAM-Objekt ausgewählt. Laden Sie ein Objekt für Box und versuchen "
+"Sie es erneut."
+
+#: AppTools/ToolFilm.py:670
+msgid "No FlatCAM object selected."
+msgstr "Kein FlatCAM-Objekt ausgewählt."
+
+#: AppTools/ToolFilm.py:681
+msgid "Generating Film ..."
+msgstr "Film wird erstellt ..."
+
+#: AppTools/ToolFilm.py:730 AppTools/ToolFilm.py:734
+msgid "Export positive film"
+msgstr "Film positiv exportieren"
+
+#: AppTools/ToolFilm.py:767
+msgid ""
+"No Excellon object selected. Load an object for punching reference and retry."
+msgstr ""
+"Kein Excellon-Objekt ausgewählt. Laden Sie ein Objekt zum Stanzen der "
+"Referenz und versuchen Sie es erneut."
+
+#: AppTools/ToolFilm.py:791
+msgid ""
+" Could not generate punched hole film because the punch hole sizeis bigger "
+"than some of the apertures in the Gerber object."
+msgstr ""
+" Es konnte kein Lochfilm erzeugt werden, da die Lochgröße größer ist als "
+"einige der Öffnungen im Gerber-Objekt."
+
+#: AppTools/ToolFilm.py:803
+msgid ""
+"Could not generate punched hole film because the punch hole sizeis bigger "
+"than some of the apertures in the Gerber object."
+msgstr ""
+"Es konnte kein Lochfilm erzeugt werden, da die Lochgröße größer ist als "
+"einige der Öffnungen im Gerber-Objekt."
+
+#: AppTools/ToolFilm.py:821
+msgid ""
+"Could not generate punched hole film because the newly created object "
+"geometry is the same as the one in the source object geometry..."
+msgstr ""
+"Lochfolie konnte nicht generiert werden, da die neu erstellte "
+"Objektgeometrie mit der in der Quellobjektgeometrie übereinstimmt ..."
+
+#: AppTools/ToolFilm.py:876 AppTools/ToolFilm.py:880
+msgid "Export negative film"
+msgstr "Exportieren negativ Film"
+
+#: AppTools/ToolFilm.py:941 AppTools/ToolFilm.py:1124
+#: AppTools/ToolPanelize.py:441
+msgid "No object Box. Using instead"
+msgstr "Keine Objektbox. Verwenden Sie stattdessen"
+
+#: AppTools/ToolFilm.py:1057 AppTools/ToolFilm.py:1237
+msgid "Film file exported to"
+msgstr "Film-Datei exportiert nach"
+
+#: AppTools/ToolFilm.py:1060 AppTools/ToolFilm.py:1240
+msgid "Generating Film ... Please wait."
+msgstr "Film wird erstellt ... Bitte warten Sie."
+
+#: AppTools/ToolImage.py:24
+msgid "Image as Object"
+msgstr "Bild als Objekt"
+
+#: AppTools/ToolImage.py:33
+msgid "Image to PCB"
+msgstr "Bild auf PCB"
+
+#: AppTools/ToolImage.py:56
+msgid ""
+"Specify the type of object to create from the image.\n"
+"It can be of type: Gerber or Geometry."
+msgstr ""
+"Geben Sie den Objekttyp an, der aus dem Bild erstellt werden soll.\n"
+"Es kann vom Typ sein: Gerber oder Geometrie."
+
+#: AppTools/ToolImage.py:65
+msgid "DPI value"
+msgstr "DPI-Wert"
+
+#: AppTools/ToolImage.py:66
+msgid "Specify a DPI value for the image."
+msgstr "Geben Sie einen DPI-Wert für das Bild an."
+
+#: AppTools/ToolImage.py:72
+msgid "Level of detail"
+msgstr "Detaillierungsgrad"
+
+#: AppTools/ToolImage.py:81
+msgid "Image type"
+msgstr "Bildtyp"
+
+#: AppTools/ToolImage.py:83
+msgid ""
+"Choose a method for the image interpretation.\n"
+"B/W means a black & white image. Color means a colored image."
+msgstr ""
+"Wählen Sie eine Methode für die Bildinterpretation.\n"
+"B / W steht für ein Schwarzweißbild. Farbe bedeutet ein farbiges Bild."
+
+#: AppTools/ToolImage.py:92 AppTools/ToolImage.py:107 AppTools/ToolImage.py:120
+#: AppTools/ToolImage.py:133
+msgid "Mask value"
+msgstr "Maskenwert"
+
+#: AppTools/ToolImage.py:94
+msgid ""
+"Mask for monochrome image.\n"
+"Takes values between [0 ... 255].\n"
+"Decides the level of details to include\n"
+"in the resulting geometry.\n"
+"0 means no detail and 255 means everything \n"
+"(which is totally black)."
+msgstr ""
+"Maske für ein Schwarzweißbild.\n"
+"Nimmt Werte zwischen [0 ... 255] an.\n"
+"Legt fest, wie viel Details enthalten sind\n"
+"in der resultierenden Geometrie.\n"
+"0 bedeutet kein Detail und 255 bedeutet alles\n"
+"(das ist total schwarz)."
+
+#: AppTools/ToolImage.py:109
+msgid ""
+"Mask for RED color.\n"
+"Takes values between [0 ... 255].\n"
+"Decides the level of details to include\n"
+"in the resulting geometry."
+msgstr ""
+"Maske für rote Farbe.\n"
+"Nimmt Werte zwischen [0 ... 255] an.\n"
+"Legt fest, wie viel Details enthalten sind\n"
+"in der resultierenden Geometrie."
+
+#: AppTools/ToolImage.py:122
+msgid ""
+"Mask for GREEN color.\n"
+"Takes values between [0 ... 255].\n"
+"Decides the level of details to include\n"
+"in the resulting geometry."
+msgstr ""
+"Maske für GRÜNE Farbe.\n"
+"Nimmt Werte zwischen [0 ... 255] an.\n"
+"Legt fest, wie viel Details enthalten sind\n"
+"in der resultierenden Geometrie."
+
+#: AppTools/ToolImage.py:135
+msgid ""
+"Mask for BLUE color.\n"
+"Takes values between [0 ... 255].\n"
+"Decides the level of details to include\n"
+"in the resulting geometry."
+msgstr ""
+"Maske für BLAUE Farbe.\n"
+"Nimmt Werte zwischen [0 ... 255] an.\n"
+"Legt fest, wie viel Details enthalten sind\n"
+"in der resultierenden Geometrie."
+
+#: AppTools/ToolImage.py:143
+msgid "Import image"
+msgstr "Bild importieren"
+
+#: AppTools/ToolImage.py:145
+msgid "Open a image of raster type and then import it in FlatCAM."
+msgstr "Öffnen Sie ein Bild vom Raster-Typ und importieren Sie es in FlatCAM."
+
+#: AppTools/ToolImage.py:182
+msgid "Image Tool"
+msgstr "Bildwerkzeug"
+
+#: AppTools/ToolImage.py:234 AppTools/ToolImage.py:237
+msgid "Import IMAGE"
+msgstr "BILD importieren"
+
+#: AppTools/ToolImage.py:277 App_Main.py:8264 App_Main.py:8311
+msgid ""
+"Not supported type is picked as parameter. Only Geometry and Gerber are "
+"supported"
+msgstr ""
+"Nicht unterstützte Art wird als Parameter ausgewählt. Nur Geometrie und "
+"Gerber werden unterstützt"
+
+#: AppTools/ToolImage.py:285
+msgid "Importing Image"
+msgstr "Bild importieren"
+
+#: AppTools/ToolImage.py:297 AppTools/ToolPDF.py:154 App_Main.py:8289
+#: App_Main.py:8335 App_Main.py:8399 App_Main.py:8466 App_Main.py:8532
+#: App_Main.py:8597 App_Main.py:8654
+msgid "Opened"
+msgstr "Geöffnet"
+
+#: AppTools/ToolInvertGerber.py:123
+msgid "Invert Gerber"
+msgstr "Gerber umkehren"
+
+#: AppTools/ToolInvertGerber.py:125
+msgid ""
+"Will invert the Gerber object: areas that have copper\n"
+"will be empty of copper and previous empty area will be\n"
+"filled with copper."
+msgstr ""
+"Invertiert das Gerber-Objekt: Bereiche mit Kupfer\n"
+"wird leer von Kupfer sein und der vorherige leere Bereich wird leer sein\n"
+"mit Kupfer gefüllt."
+
+#: AppTools/ToolMove.py:102
+msgid "MOVE: Click on the Start point ..."
+msgstr "Verschieben: Klicke auf den Startpunkt ..."
+
+#: AppTools/ToolMove.py:113
+msgid "Cancelled. No object(s) to move."
+msgstr "Abgebrochen. Keine Objekte zum Bewegen."
+
+#: AppTools/ToolMove.py:140
+msgid "MOVE: Click on the Destination point ..."
+msgstr "Verschieben: Klicken Sie auf den Zielpunkt ..."
+
+#: AppTools/ToolMove.py:163
+msgid "Moving..."
+msgstr "Ziehen um..."
+
+#: AppTools/ToolMove.py:166
+msgid "No object(s) selected."
+msgstr "Keine Objekte ausgewählt."
+
+#: AppTools/ToolMove.py:221
+msgid "Error when mouse left click."
+msgstr "Fehler beim Klicken mit der linken Maustaste."
+
+#: AppTools/ToolNCC.py:42
+msgid "Non-Copper Clearing"
+msgstr "Nicht-Kupfer-Clearing"
+
+#: AppTools/ToolNCC.py:88
+msgid ""
+"Specify the type of object to be cleared of excess copper.\n"
+"It can be of type: Gerber or Geometry.\n"
+"What is selected here will dictate the kind\n"
+"of objects that will populate the 'Object' combobox."
+msgstr ""
+"Geben Sie den Objekttyp an, der von überschüssigem Kupfer befreit werden "
+"soll.\n"
+"Es kann vom Typ Gerber oder Geometrie sein.\n"
+"Was hier ausgewählt wird, bestimmt die Art\n"
+"von Objekten, die das Kombinationsfeld \"Objekt\" füllen."
+
+#: AppTools/ToolNCC.py:110
+msgid "Object to be cleared of excess copper."
+msgstr "Objekt, das von überschüssigem Kupfer befreit werden soll."
+
+#: AppTools/ToolNCC.py:122
+msgid ""
+"Tools pool from which the algorithm\n"
+"will pick the ones used for copper clearing."
+msgstr ""
+"Toolspool aus dem der Algorithmus\n"
+"wählt die für die Kupferreinigung verwendeten aus."
+
+#: AppTools/ToolNCC.py:138
+msgid ""
+"This is the Tool Number.\n"
+"Non copper clearing will start with the tool with the biggest \n"
+"diameter, continuing until there are no more tools.\n"
+"Only tools that create NCC clearing geometry will still be present\n"
+"in the resulting geometry. This is because with some tools\n"
+"this function will not be able to create painting geometry."
+msgstr ""
+"Dies ist die Werkzeugnummer.\n"
+"Das Nicht-Kupfer-Clearing beginnt mit dem Werkzeug mit dem größten\n"
+"Durchmesser, weiter, bis keine Werkzeuge mehr vorhanden sind.\n"
+"Es sind nur noch Werkzeuge vorhanden, die eine NCC-Clearing-Geometrie "
+"erstellen\n"
+"in der resultierenden Geometrie. Dies liegt daran, dass mit einigen Tools\n"
+"Diese Funktion kann keine Malgeometrie erstellen."
+
+#: AppTools/ToolNCC.py:146
+msgid ""
+"Tool Diameter. It's value (in current FlatCAM units)\n"
+"is the cut width into the material."
+msgstr ""
+"Werkzeugdurchmesser. Wert (in aktuellen FlatCAM-Einheiten)\n"
+"ist die Schnittbreite in das Material."
+
+#: AppTools/ToolNCC.py:150
+msgid ""
+"The Tool Type (TT) can be:\n"
+"- Circular with 1 ... 4 teeth -> it is informative only. Being circular,\n"
+"the cut width in material is exactly the tool diameter.\n"
+"- Ball -> informative only and make reference to the Ball type endmill.\n"
+"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI "
+"form\n"
+"and enable two additional UI form fields in the resulting geometry: V-Tip "
+"Dia and\n"
+"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter "
+"such\n"
+"as the cut width into material will be equal with the value in the Tool "
+"Diameter\n"
+"column of this table.\n"
+"Choosing the 'V-Shape' Tool Type automatically will select the Operation "
+"Type\n"
+"in the resulting geometry as Isolation."
+msgstr ""
+"Der Werkzeugtyp (TT) kann sein:\n"
+"- Rundschreiben mit 1 ... 4 Zähnen -> nur informativ. Rundschreiben,\n"
+"Die Schnittbreite im Material entspricht genau dem Werkzeugdurchmesser.\n"
+"- Ball -> nur informativ und auf den Ball-Schaftfräser verweisen.\n"
+"- V-Form -> Deaktiviert den Z-Cut-Parameter in der resultierenden Geometrie-"
+"UI-Form\n"
+"und aktivieren Sie zwei zusätzliche UI-Formularfelder in der resultierenden "
+"Geometrie: V-Tip Dia und\n"
+"V-Tip-Winkel. Durch Anpassen dieser beiden Werte wird der Z-Cut-Parameter "
+"wie z\n"
+"da die Schnittbreite in Material gleich dem Wert im Werkzeugdurchmesser ist\n"
+"Spalte dieser Tabelle.\n"
+"Durch automatische Auswahl des Werkzeugtyps \"V-Form\" wird der "
+"Operationstyp ausgewählt\n"
+"in der resultierenden Geometrie als Isolation."
+
+#: AppTools/ToolNCC.py:296 AppTools/ToolPaint.py:278
+msgid ""
+"Add a new tool to the Tool Table\n"
+"with the diameter specified above."
+msgstr ""
+"Fügen Sie der Werkzeugtabelle ein neues Werkzeug hinzu\n"
+"mit dem oben angegebenen Durchmesser."
+
+#: AppTools/ToolNCC.py:318 AppTools/ToolPaint.py:300
+#: AppTools/ToolSolderPaste.py:130
+msgid ""
+"Delete a selection of tools in the Tool Table\n"
+"by first selecting a row(s) in the Tool Table."
+msgstr ""
+"Löschen Sie eine Auswahl von Werkzeugen in der Werkzeugtabelle\n"
+"indem Sie zuerst eine oder mehrere Zeilen in der Werkzeugtabelle auswählen."
+
+#: AppTools/ToolNCC.py:554
+msgid ""
+"The type of FlatCAM object to be used as non copper clearing reference.\n"
+"It can be Gerber, Excellon or Geometry."
+msgstr ""
+"Der Typ des FlatCAM-Objekts, das als nicht aus Kupfer stammende Clearing-"
+"Referenz verwendet werden soll.\n"
+"Es kann Gerber, Excellon oder Geometry sein."
+
+#: AppTools/ToolNCC.py:597 AppTools/ToolPaint.py:536
+msgid "Generate Geometry"
+msgstr "Geometrie erzeugen"
+
+#: AppTools/ToolNCC.py:932 AppTools/ToolNCC.py:1431 AppTools/ToolPaint.py:857
+#: AppTools/ToolSolderPaste.py:568 AppTools/ToolSolderPaste.py:893
+#: App_Main.py:4190
+msgid "Please enter a tool diameter with non-zero value, in Float format."
+msgstr ""
+"Bitte geben Sie einen Werkzeugdurchmesser ungleich Null im Float-Format ein."
+
+#: AppTools/ToolNCC.py:936 AppTools/ToolPaint.py:861
+#: AppTools/ToolSolderPaste.py:572 App_Main.py:4194
+msgid "Adding Tool cancelled"
+msgstr "Addierwerkzeug abgebrochen"
+
+#: AppTools/ToolNCC.py:1425 AppTools/ToolPaint.py:1183
+#: AppTools/ToolSolderPaste.py:888
+msgid "Please enter a tool diameter to add, in Float format."
+msgstr ""
+"Bitte geben Sie einen hinzuzufügenden Werkzeugdurchmesser im Float-Format "
+"ein."
+
+#: AppTools/ToolNCC.py:1456 AppTools/ToolNCC.py:4065 AppTools/ToolPaint.py:1207
+#: AppTools/ToolPaint.py:3608 AppTools/ToolSolderPaste.py:917
+msgid "Cancelled. Tool already in Tool Table."
+msgstr "Abgebrochen. Werkzeug bereits in der Werkzeugtabelle."
+
+#: AppTools/ToolNCC.py:1463 AppTools/ToolNCC.py:4082 AppTools/ToolPaint.py:1212
+#: AppTools/ToolPaint.py:3625
+msgid "New tool added to Tool Table."
+msgstr "Neues Werkzeug zur Werkzeugtabelle hinzugefügt."
+
+#: AppTools/ToolNCC.py:1507 AppTools/ToolPaint.py:1256
+msgid "Tool from Tool Table was edited."
+msgstr "Werkzeug aus Werkzeugtabelle wurde bearbeitet."
+
+#: AppTools/ToolNCC.py:1519 AppTools/ToolPaint.py:1268
+#: AppTools/ToolSolderPaste.py:978
+msgid "Cancelled. New diameter value is already in the Tool Table."
+msgstr ""
+"Abgebrochen. Der neue Durchmesserwert befindet sich bereits in der "
+"Werkzeugtabelle."
+
+#: AppTools/ToolNCC.py:1571 AppTools/ToolPaint.py:1366
+msgid "Delete failed. Select a tool to delete."
+msgstr "Löschen fehlgeschlagen. Wählen Sie ein Werkzeug zum Löschen aus."
+
+#: AppTools/ToolNCC.py:1577 AppTools/ToolPaint.py:1372
+msgid "Tool(s) deleted from Tool Table."
+msgstr "Werkzeug(e) aus der Werkzeugtabelle gelöscht."
+
+#: AppTools/ToolNCC.py:1620
+msgid "Wrong Tool Dia value format entered, use a number."
+msgstr "Falsches Werkzeug Dia-Wertformat eingegeben, verwenden Sie eine Zahl."
+
+#: AppTools/ToolNCC.py:1629 AppTools/ToolPaint.py:1423
+msgid "No selected tools in Tool Table."
+msgstr "Keine ausgewählten Werkzeuge in der Werkzeugtabelle."
+
+#: AppTools/ToolNCC.py:1705 AppTools/ToolPaint.py:1599
+msgid "Click the end point of the paint area."
+msgstr "Klicken Sie auf den Endpunkt des Malbereichs."
+
+#: AppTools/ToolNCC.py:1985 AppTools/ToolNCC.py:3010
+msgid "NCC Tool. Preparing non-copper polygons."
+msgstr "NCC-Tool. Vorbereitung von kupferfreien Polygonen."
+
+#: AppTools/ToolNCC.py:2044 AppTools/ToolNCC.py:3138
+msgid "NCC Tool. Calculate 'empty' area."
+msgstr "NCC-Tool. Berechnen Sie die \"leere\" Fläche."
+
+#: AppTools/ToolNCC.py:2063 AppTools/ToolNCC.py:2172 AppTools/ToolNCC.py:2187
+#: AppTools/ToolNCC.py:3151 AppTools/ToolNCC.py:3256 AppTools/ToolNCC.py:3271
+#: AppTools/ToolNCC.py:3537 AppTools/ToolNCC.py:3638 AppTools/ToolNCC.py:3653
+msgid "Buffering finished"
+msgstr "Pufferung beendet"
+
+#: AppTools/ToolNCC.py:2071 AppTools/ToolNCC.py:2194 AppTools/ToolNCC.py:3159
+#: AppTools/ToolNCC.py:3278 AppTools/ToolNCC.py:3544 AppTools/ToolNCC.py:3660
+msgid "Could not get the extent of the area to be non copper cleared."
+msgstr ""
+"Die Ausdehnung des nicht kupferhaltigen Bereichs konnte nicht gelöscht "
+"werden."
+
+#: AppTools/ToolNCC.py:2101 AppTools/ToolNCC.py:2180 AppTools/ToolNCC.py:3186
+#: AppTools/ToolNCC.py:3263 AppTools/ToolNCC.py:3564 AppTools/ToolNCC.py:3645
+msgid ""
+"Isolation geometry is broken. Margin is less than isolation tool diameter."
+msgstr ""
+"Die Isolationsgeometrie ist gebrochen. Der Rand ist kleiner als der "
+"Durchmesser des Isolationswerkzeugs."
+
+#: AppTools/ToolNCC.py:2197 AppTools/ToolNCC.py:3282 AppTools/ToolNCC.py:3663
+msgid "The selected object is not suitable for copper clearing."
+msgstr "Das ausgewählte Objekt ist nicht zum Löschen von Kupfer geeignet."
+
+#: AppTools/ToolNCC.py:2204 AppTools/ToolNCC.py:3289
+msgid "NCC Tool. Finished calculation of 'empty' area."
+msgstr "NCC-Tool. Berechnung der 'leeren' Fläche beendet."
+
+#: AppTools/ToolNCC.py:2247
+#, fuzzy
+#| msgid "Painting polygon with method: lines."
+msgid "Clearing polygon with method: lines."
+msgstr "Polygon mit Methode malen: Linien."
+
+#: AppTools/ToolNCC.py:2257
+#, fuzzy
+#| msgid "Failed. Painting polygon with method: seed."
+msgid "Failed. Clearing polygon with method: seed."
+msgstr "Gescheitert. Polygon mit Methode malen: Same."
+
+#: AppTools/ToolNCC.py:2266
+#, fuzzy
+#| msgid "Failed. Painting polygon with method: standard."
+msgid "Failed. Clearing polygon with method: standard."
+msgstr "Gescheitert. Polygon mit Methode malen: Standard."
+
+#: AppTools/ToolNCC.py:2280
+#, fuzzy
+#| msgid "Geometry could not be painted completely"
+msgid "Geometry could not be cleared completely"
+msgstr "Geometrie konnte nicht vollständig gemalt werden"
+
+#: AppTools/ToolNCC.py:2305 AppTools/ToolNCC.py:2307 AppTools/ToolNCC.py:2962
+#: AppTools/ToolNCC.py:2964
+msgid "Non-Copper clearing ..."
+msgstr "Nicht-Kupfer-Clearing ..."
+
+#: AppTools/ToolNCC.py:2354 AppTools/ToolNCC.py:3106
+msgid ""
+"NCC Tool. Finished non-copper polygons. Normal copper clearing task started."
+msgstr ""
+"NCC-Tool. Fertige kupferfreie Polygone. Normale Kupferentfernungsaufgabe "
+"gestartet."
+
+#: AppTools/ToolNCC.py:2390 AppTools/ToolNCC.py:2638
+msgid "NCC Tool failed creating bounding box."
+msgstr "Das NCC-Tool konnte keinen Begrenzungsrahmen erstellen."
+
+#: AppTools/ToolNCC.py:2405 AppTools/ToolNCC.py:2655 AppTools/ToolNCC.py:3302
+#: AppTools/ToolNCC.py:3688
+msgid "NCC Tool clearing with tool diameter"
+msgstr "Das NCC-Werkzeug wird mit dem Werkzeugdurchmesser gelöscht"
+
+#: AppTools/ToolNCC.py:2405 AppTools/ToolNCC.py:2655 AppTools/ToolNCC.py:3302
+#: AppTools/ToolNCC.py:3688
+msgid "started."
+msgstr "gestartet."
+
+#: AppTools/ToolNCC.py:2563 AppTools/ToolNCC.py:3463
+msgid ""
+"There is no NCC 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 ""
+"Die Datei enthält keine NCC-Geometrie.\n"
+"In der Regel bedeutet dies, dass der Werkzeugdurchmesser für die lackierte "
+"Geometrie zu groß ist.\n"
+"Ändern Sie die Malparameter und versuchen Sie es erneut."
+
+#: AppTools/ToolNCC.py:2572 AppTools/ToolNCC.py:3472
+msgid "NCC Tool clear all done."
+msgstr "NCC Tool löschen alles erledigt."
+
+#: AppTools/ToolNCC.py:2575 AppTools/ToolNCC.py:3475
+msgid "NCC Tool clear all done but the copper features isolation is broken for"
+msgstr ""
+"Das NCC-Tool löscht alles, aber die Isolierung der Kupfermerkmale ist "
+"unterbrochen"
+
+#: AppTools/ToolNCC.py:2577 AppTools/ToolNCC.py:2863 AppTools/ToolNCC.py:3477
+#: AppTools/ToolNCC.py:3860
+msgid "tools"
+msgstr "Werkzeuge"
+
+#: AppTools/ToolNCC.py:2859 AppTools/ToolNCC.py:3856
+msgid "NCC Tool Rest Machining clear all done."
+msgstr "Die Bearbeitung der NCC-Werkzeugablagen ist abgeschlossen."
+
+#: AppTools/ToolNCC.py:2862 AppTools/ToolNCC.py:3859
+msgid ""
+"NCC Tool Rest Machining clear all done but the copper features isolation is "
+"broken for"
+msgstr ""
+"Die Bearbeitung der NCC-Werkzeugablagen ist abgeschlossen, die Isolierung "
+"der Kupferelemente ist jedoch unterbrochen"
+
+#: AppTools/ToolNCC.py:2974
+msgid "NCC Tool started. Reading parameters."
+msgstr "NCC Tool gestartet. Parameter lesen."
+
+#: AppTools/ToolNCC.py:3958
+msgid ""
+"Try to use the Buffering Type = Full in Preferences -> Gerber General. "
+"Reload the Gerber file after this change."
+msgstr ""
+"Versuchen Sie, den Puffertyp = Voll in Einstellungen -> Allgemein zu "
+"verwenden. Laden Sie die Gerber-Datei nach dieser Änderung neu."
+
+#: AppTools/ToolNCC.py:4022 AppTools/ToolPaint.py:3565 App_Main.py:5251
+msgid "Tool from DB added in Tool Table."
+msgstr "Werkzeug aus Werkzeugdatenbank zur Werkzeugtabelle hinzugefügt."
+
+#: AppTools/ToolOptimal.py:79
+msgid "Number of decimals kept for found distances."
+msgstr "Anzahl der Dezimalstellen für gefundene Entfernungen."
+
+#: AppTools/ToolOptimal.py:87
+msgid "Minimum distance"
+msgstr "Mindestabstand"
+
+#: AppTools/ToolOptimal.py:88
+msgid "Display minimum distance between copper features."
+msgstr "Zeigt den Mindestabstand zwischen Kupferelementen an."
+
+#: AppTools/ToolOptimal.py:92
+msgid "Determined"
+msgstr "Entschlossen"
+
+#: AppTools/ToolOptimal.py:106
+msgid "Occurring"
+msgstr "Vorkommen"
+
+#: AppTools/ToolOptimal.py:107
+msgid "How many times this minimum is found."
+msgstr "Wie oft wird dieses Minimum gefunden."
+
+#: AppTools/ToolOptimal.py:113
+msgid "Minimum points coordinates"
+msgstr "Minimale Punktkoordinaten"
+
+#: AppTools/ToolOptimal.py:114 AppTools/ToolOptimal.py:120
+msgid "Coordinates for points where minimum distance was found."
+msgstr "Koordinaten für Punkte, an denen der Mindestabstand gefunden wurde."
+
+#: AppTools/ToolOptimal.py:133 AppTools/ToolOptimal.py:209
+msgid "Jump to selected position"
+msgstr "Zur ausgewählten Position springen"
+
+#: AppTools/ToolOptimal.py:135 AppTools/ToolOptimal.py:211
+msgid ""
+"Select a position in the Locations text box and then\n"
+"click this button."
+msgstr ""
+"Wählen Sie eine Position im Textfeld Standorte und dann\n"
+"Klicken Sie auf diese Schaltfläche."
+
+#: AppTools/ToolOptimal.py:143
+msgid "Other distances"
+msgstr "Andere Entfernungen"
+
+#: AppTools/ToolOptimal.py:144
+msgid ""
+"Will display other distances in the Gerber file ordered from\n"
+"the minimum to the maximum, not including the absolute minimum."
+msgstr ""
+"Zeigt andere Entfernungen in der von bestellten Gerber-Datei an\n"
+"das Minimum bis zum Maximum, ohne das absolute Minimum."
+
+#: AppTools/ToolOptimal.py:149
+msgid "Other distances points coordinates"
+msgstr "Andere Entfernungen Punkte Koordinaten"
+
+#: AppTools/ToolOptimal.py:150 AppTools/ToolOptimal.py:164
+#: AppTools/ToolOptimal.py:171 AppTools/ToolOptimal.py:188
+#: AppTools/ToolOptimal.py:195
+msgid ""
+"Other distances and the coordinates for points\n"
+"where the distance was found."
+msgstr ""
+"Andere Entfernungen und die Koordinaten für Punkte\n"
+"wo die Entfernung gefunden wurde."
+
+#: AppTools/ToolOptimal.py:163
+msgid "Gerber distances"
+msgstr "Gerber Entfernungen"
+
+#: AppTools/ToolOptimal.py:187
+msgid "Points coordinates"
+msgstr "Punktkoordinaten"
+
+#: AppTools/ToolOptimal.py:219
+msgid "Find Minimum"
+msgstr "Minimum finden"
+
+#: AppTools/ToolOptimal.py:221
+msgid ""
+"Calculate the minimum distance between copper features,\n"
+"this will allow the determination of the right tool to\n"
+"use for isolation or copper clearing."
+msgstr ""
+"Berechnen Sie den Mindestabstand zwischen Kupferelementen.\n"
+"Dies ermöglicht die Bestimmung des richtigen Werkzeugs\n"
+"Verwendung zur Isolierung oder zum Löschen von Kupfer."
+
+#: AppTools/ToolOptimal.py:346
+msgid "Only Gerber objects can be evaluated."
+msgstr "Es können nur Gerber-Objekte ausgewertet werden."
+
+#: AppTools/ToolOptimal.py:352
+msgid ""
+"Optimal Tool. Started to search for the minimum distance between copper "
+"features."
+msgstr "Optimierer. Sucht Minimalabstand zwischen Kupferbereichen."
+
+#: AppTools/ToolOptimal.py:362
+msgid "Optimal Tool. Parsing geometry for aperture"
+msgstr "Optimales Werkzeug. Analysegeometrie für Blende"
+
+#: AppTools/ToolOptimal.py:373
+msgid "Optimal Tool. Creating a buffer for the object geometry."
+msgstr "Optimales Werkzeug. Erstellen eines Puffers für die Objektgeometrie."
+
+#: AppTools/ToolOptimal.py:383
+msgid ""
+"The Gerber object has one Polygon as geometry.\n"
+"There are no distances between geometry elements to be found."
+msgstr ""
+"Das Gerber-Objekt hat ein Polygon als Geometrie.\n"
+"Es sind keine Abstände zwischen Geometrieelementen zu finden."
+
+#: AppTools/ToolOptimal.py:388
+msgid ""
+"Optimal Tool. Finding the distances between each two elements. Iterations"
+msgstr ""
+"Optimales Werkzeug. Finden der Abstände zwischen jeweils zwei Elementen. "
+"Iterationen"
+
+#: AppTools/ToolOptimal.py:423
+msgid "Optimal Tool. Finding the minimum distance."
+msgstr "Optimales Werkzeug. Den Mindestabstand finden."
+
+#: AppTools/ToolOptimal.py:439
+msgid "Optimal Tool. Finished successfully."
+msgstr "Optimales Werkzeug. Erfolgreich beendet."
+
+#: AppTools/ToolPDF.py:91 AppTools/ToolPDF.py:95
+msgid "Open PDF"
+msgstr "PDF öffnen"
+
+#: AppTools/ToolPDF.py:98
+msgid "Open PDF cancelled"
+msgstr "PDF öffnen abgebrochen"
+
+#: AppTools/ToolPDF.py:122
+msgid "Parsing PDF file ..."
+msgstr "PDF-Datei wird analysiert ..."
+
+#: AppTools/ToolPDF.py:138 App_Main.py:8497
+msgid "Failed to open"
+msgstr "Gescheitert zu öffnen"
+
+#: AppTools/ToolPDF.py:203 AppTools/ToolPcbWizard.py:445 App_Main.py:8446
+msgid "No geometry found in file"
+msgstr "Keine Geometrie in der Datei gefunden"
+
+#: AppTools/ToolPDF.py:206 AppTools/ToolPDF.py:279
+#, python-format
+msgid "Rendering PDF layer #%d ..."
+msgstr "PDF-Ebene rendern #%d ..."
+
+#: AppTools/ToolPDF.py:210 AppTools/ToolPDF.py:283
+msgid "Open PDF file failed."
+msgstr "Öffnen der PDF-Datei fehlgeschlagen."
+
+#: AppTools/ToolPDF.py:215 AppTools/ToolPDF.py:288
+msgid "Rendered"
+msgstr "Gerendert"
+
+#: AppTools/ToolPaint.py:81
+msgid ""
+"Specify the type of object to be painted.\n"
+"It can be of type: Gerber or Geometry.\n"
+"What is selected here will dictate the kind\n"
+"of objects that will populate the 'Object' combobox."
+msgstr ""
+"Geben Sie den Objekttyp an, der gemalt werden soll.\n"
+"Es kann vom Typ Gerber oder Geometrie sein.\n"
+"Was hier ausgewählt wird, bestimmt die Art\n"
+"von Objekten, die das Kombinationsfeld \"Objekt\" füllen."
+
+#: AppTools/ToolPaint.py:103
+msgid "Object to be painted."
+msgstr "Gegenstand gemalt werden."
+
+#: AppTools/ToolPaint.py:116
+msgid ""
+"Tools pool from which the algorithm\n"
+"will pick the ones used for painting."
+msgstr ""
+"Toolspool aus dem der Algorithmus\n"
+"wählt die zum Malen verwendeten aus."
+
+#: AppTools/ToolPaint.py:133
+msgid ""
+"This is the Tool Number.\n"
+"Painting will start with the tool with the biggest diameter,\n"
+"continuing until there are no more tools.\n"
+"Only tools that create painting geometry will still be present\n"
+"in the resulting geometry. This is because with some tools\n"
+"this function will not be able to create painting geometry."
+msgstr ""
+"Dies ist die Werkzeugnummer.\n"
+"Das Malen beginnt mit dem Werkzeug mit dem größten Durchmesser.\n"
+"fortsetzen, bis es keine Werkzeuge mehr gibt.\n"
+"Es sind nur noch Werkzeuge vorhanden, die eine Malgeometrie erstellen\n"
+"in der resultierenden Geometrie. Dies liegt daran, dass mit einigen Tools\n"
+"Diese Funktion kann keine Malgeometrie erstellen."
+
+#: AppTools/ToolPaint.py:145
+msgid ""
+"The Tool Type (TT) can be:\n"
+"- Circular -> it is informative only. Being circular,\n"
+"the cut width in material is exactly the tool diameter.\n"
+"- Ball -> informative only and make reference to the Ball type endmill.\n"
+"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI "
+"form\n"
+"and enable two additional UI form fields in the resulting geometry: V-Tip "
+"Dia and\n"
+"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter "
+"such\n"
+"as the cut width into material will be equal with the value in the Tool "
+"Diameter\n"
+"column of this table.\n"
+"Choosing the 'V-Shape' Tool Type automatically will select the Operation "
+"Type\n"
+"in the resulting geometry as Isolation."
+msgstr ""
+"Der Werkzeugtyp (TT) kann sein:\n"
+"- Rundschreiben mit 1 ... 4 Zähnen -> nur informativ. Rundschreiben,\n"
+"Die Schnittbreite im Material entspricht genau dem Werkzeugdurchmesser.\n"
+"- Ball -> nur informativ und auf den Ball-Schaftfräser verweisen.\n"
+"- V-Form -> Deaktiviert den Z-Cut-Parameter in der resultierenden Geometrie-"
+"UI-Form\n"
+"und aktivieren Sie zwei zusätzliche UI-Formularfelder in der resultierenden "
+"Geometrie: V-Tip Dia und\n"
+"V-Tip-Winkel. Durch Anpassen dieser beiden Werte wird der Z-Cut-Parameter "
+"wie z\n"
+"da die Schnittbreite in Material gleich dem Wert im Werkzeugdurchmesser ist\n"
+"Spalte dieser Tabelle.\n"
+"Durch automatische Auswahl des Werkzeugtyps \"V-Form\" wird der "
+"Operationstyp ausgewählt\n"
+"in der resultierenden Geometrie als Isolation."
+
+#: AppTools/ToolPaint.py:497
+msgid ""
+"The type of FlatCAM object to be used as paint reference.\n"
+"It can be Gerber, Excellon or Geometry."
+msgstr ""
+"Der Typ des FlatCAM-Objekts, das als Malreferenz verwendet werden soll.\n"
+"Es kann Gerber, Excellon oder Geometry sein."
+
+#: AppTools/ToolPaint.py:538
+msgid ""
+"- 'Area Selection' - left mouse click to start selection of the area to be "
+"painted.\n"
+"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple "
+"areas.\n"
+"- 'All Polygons' - the Paint will start after click.\n"
+"- 'Reference Object' - will do non copper clearing within the area\n"
+"specified by another object."
+msgstr ""
+"- 'Bereichsauswahl' - Klicken Sie mit der linken Maustaste, um den Bereich "
+"auszuwählen, der gemalt werden soll.\n"
+"Wenn Sie eine Änderungstaste gedrückt halten (STRG oder UMSCHALTTASTE), "
+"können Sie mehrere Bereiche hinzufügen.\n"
+"- 'Alle Polygone' - Der Malvorgang wird nach dem Klicken gestartet.\n"
+"- 'Referenzobjekt' - löscht nicht kupferne Objekte innerhalb des Bereichs\n"
+"von einem anderen Objekt angegeben."
+
+#: AppTools/ToolPaint.py:1392
+#, python-format
+msgid "Could not retrieve object: %s"
+msgstr "Objekt konnte nicht abgerufen werden: %s"
+
+#: AppTools/ToolPaint.py:1402
+msgid "Can't do Paint on MultiGeo geometries"
+msgstr "Auf MultiGeo-Geometrien kann nicht gemalt werden"
+
+#: AppTools/ToolPaint.py:1432
+msgid "Click on a polygon to paint it."
+msgstr "Klicken Sie auf ein Polygon um es auszufüllen."
+
+#: AppTools/ToolPaint.py:1452
+msgid "Click the start point of the paint area."
+msgstr "Klicken Sie auf den Startpunkt des Malbereichs."
+
+#: AppTools/ToolPaint.py:1517
+msgid "Click to add next polygon or right click to start painting."
+msgstr ""
+"Klicken Sie, um die nächste Zone hinzuzufügen, oder klicken Sie mit der "
+"rechten Maustaste um mit dem Ausfüllen zu beginnen."
+
+#: AppTools/ToolPaint.py:1530
+msgid "Click to add/remove next polygon or right click to start painting."
+msgstr ""
+"Klicken Sie, um die nächste Zone hinzuzufügen oder zu löschen, oder klicken "
+"Sie mit der rechten Maustaste, um den Vorgang abzuschließen."
+
+#: AppTools/ToolPaint.py:2034
+msgid "Painting polygon with method: lines."
+msgstr "Polygon mit Methode malen: Linien."
+
+#: AppTools/ToolPaint.py:2046
+msgid "Failed. Painting polygon with method: seed."
+msgstr "Gescheitert. Polygon mit Methode malen: Same."
+
+#: AppTools/ToolPaint.py:2057
+msgid "Failed. Painting polygon with method: standard."
+msgstr "Gescheitert. Polygon mit Methode malen: Standard."
+
+#: AppTools/ToolPaint.py:2073
+msgid "Geometry could not be painted completely"
+msgstr "Geometrie konnte nicht vollständig gemalt werden"
+
+#: AppTools/ToolPaint.py:2102 AppTools/ToolPaint.py:2105
+#: AppTools/ToolPaint.py:2113 AppTools/ToolPaint.py:2416
+#: AppTools/ToolPaint.py:2419 AppTools/ToolPaint.py:2427
+#: AppTools/ToolPaint.py:2915 AppTools/ToolPaint.py:2918
+#: AppTools/ToolPaint.py:2924
+msgid "Paint Tool."
+msgstr "Malwerkzeug."
+
+#: AppTools/ToolPaint.py:2102 AppTools/ToolPaint.py:2105
+#: AppTools/ToolPaint.py:2113
+msgid "Normal painting polygon task started."
+msgstr "Normale Zeichenpolygonaufgabe gestartet."
+
+#: AppTools/ToolPaint.py:2103 AppTools/ToolPaint.py:2417
+#: AppTools/ToolPaint.py:2916
+msgid "Buffering geometry..."
+msgstr "Geometrie puffern..."
+
+#: AppTools/ToolPaint.py:2125 AppTools/ToolPaint.py:2434
+#: AppTools/ToolPaint.py:2932
+msgid "No polygon found."
+msgstr "Kein Polygon gefunden."
+
+#: AppTools/ToolPaint.py:2155
+msgid "Painting polygon..."
+msgstr "Polygon malen ..."
+
+#: AppTools/ToolPaint.py:2165 AppTools/ToolPaint.py:2480
+#: AppTools/ToolPaint.py:2670 AppTools/ToolPaint.py:2978
+#: AppTools/ToolPaint.py:3157
+msgid "Painting with tool diameter = "
+msgstr "Lackieren mit Werkzeugdurchmesser = "
+
+#: AppTools/ToolPaint.py:2166 AppTools/ToolPaint.py:2481
+#: AppTools/ToolPaint.py:2671 AppTools/ToolPaint.py:2979
+#: AppTools/ToolPaint.py:3158
+msgid "started"
+msgstr "gestartet"
+
+#: AppTools/ToolPaint.py:2191 AppTools/ToolPaint.py:2507
+#: AppTools/ToolPaint.py:2697 AppTools/ToolPaint.py:3005
+#: AppTools/ToolPaint.py:3184
+msgid "Margin parameter too big. Tool is not used"
+msgstr "Randparameter zu groß. Werkzeug wird nicht verwendet"
+
+#: AppTools/ToolPaint.py:2249 AppTools/ToolPaint.py:2576
+#: AppTools/ToolPaint.py:2754 AppTools/ToolPaint.py:3068
+#: AppTools/ToolPaint.py:3246
+msgid ""
+"Could not do Paint. Try a different combination of parameters. Or a "
+"different strategy of paint"
+msgstr ""
+"Konnte nicht malen. Probieren Sie eine andere Kombination von Parametern "
+"aus. Oder eine andere Strategie der Farbe"
+
+#: AppTools/ToolPaint.py:2306 AppTools/ToolPaint.py:2642
+#: AppTools/ToolPaint.py:2811 AppTools/ToolPaint.py:3129
+#: AppTools/ToolPaint.py:3308
+msgid ""
+"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 ""
+"Die Datei enthält keine Malgeometrie.\n"
+"Normalerweise bedeutet dies, dass der Werkzeugdurchmesser für die lackierte "
+"Geometrie zu groß ist.\n"
+"Ändern Sie die Malparameter und versuchen Sie es erneut."
+
+#: AppTools/ToolPaint.py:2329
+msgid "Paint Single failed."
+msgstr "Das Malen eines einzelnen Polygons ist fehlgeschlagen."
+
+#: AppTools/ToolPaint.py:2335
+msgid "Paint Single Done."
+msgstr "Malen Sie Single Done."
+
+#: AppTools/ToolPaint.py:2337 AppTools/ToolPaint.py:2847
+#: AppTools/ToolPaint.py:3344
+msgid "Polygon Paint started ..."
+msgstr "Polygonfarbe gestartet ..."
+
+#: AppTools/ToolPaint.py:2416 AppTools/ToolPaint.py:2419
+#: AppTools/ToolPaint.py:2427
+msgid "Paint all polygons task started."
+msgstr "Malen Sie alle Polygone Aufgabe gestartet."
+
+#: AppTools/ToolPaint.py:2458 AppTools/ToolPaint.py:2956
+msgid "Painting polygons..."
+msgstr "Polygone malen ..."
+
+#: AppTools/ToolPaint.py:2651
+msgid "Paint All Done."
+msgstr "Malen Sie alles fertig."
+
+#: AppTools/ToolPaint.py:2820 AppTools/ToolPaint.py:3317
+msgid "Paint All with Rest-Machining done."
+msgstr "Malen Sie alles mit Restbearbeitung."
+
+#: AppTools/ToolPaint.py:2839
+msgid "Paint All failed."
+msgstr "Malen Alle Polygone sind fehlgeschlagen."
+
+#: AppTools/ToolPaint.py:2845
+msgid "Paint Poly All Done."
+msgstr "Malen Sie alle Polygone fertig."
+
+#: AppTools/ToolPaint.py:2915 AppTools/ToolPaint.py:2918
+#: AppTools/ToolPaint.py:2924
+msgid "Painting area task started."
+msgstr "Malbereichsaufgabe gestartet."
+
+#: AppTools/ToolPaint.py:3138
+msgid "Paint Area Done."
+msgstr "Lackierbereich fertig."
+
+#: AppTools/ToolPaint.py:3336
+msgid "Paint Area failed."
+msgstr "Lackierbereich fehlgeschlagen."
+
+#: AppTools/ToolPaint.py:3342
+msgid "Paint Poly Area Done."
+msgstr "Lackierbereich fertig."
+
+#: AppTools/ToolPanelize.py:35
+msgid "Panelize PCB"
+msgstr "Panelisierung PCB"
+
+#: AppTools/ToolPanelize.py:55
+msgid ""
+"Specify the type of object to be panelized\n"
+"It can be of type: Gerber, Excellon or Geometry.\n"
+"The selection here decide the type of objects that will be\n"
+"in the Object combobox."
+msgstr ""
+"Geben Sie den Typ des Objekts an, für das ein Panel erstellt werden soll\n"
+"Es kann vom Typ sein: Gerber, Excellon oder Geometrie.\n"
+"Die Auswahl hier bestimmt den Objekttyp\n"
+"im Objekt-Kombinationsfeld."
+
+#: AppTools/ToolPanelize.py:88
+msgid ""
+"Object to be panelized. This means that it will\n"
+"be duplicated in an array of rows and columns."
+msgstr ""
+"Objekt, das in Panels gesetzt werden soll. Dies bedeutet, dass es wird\n"
+"in einem Array von Zeilen und Spalten dupliziert werden."
+
+#: AppTools/ToolPanelize.py:100
+msgid "Penelization Reference"
+msgstr "Penelisierungshinweis"
+
+#: AppTools/ToolPanelize.py:102
+msgid ""
+"Choose the reference for panelization:\n"
+"- Object = the bounding box of a different object\n"
+"- Bounding Box = the bounding box of the object to be panelized\n"
+"\n"
+"The reference is useful when doing panelization for more than one\n"
+"object. The spacings (really offsets) will be applied in reference\n"
+"to this reference object therefore maintaining the panelized\n"
+"objects in sync."
+msgstr ""
+"Wählen Sie die Referenz für die Panelisierung:\n"
+"- Objekt = der Begrenzungsrahmen eines anderen Objekts\n"
+"- Begrenzungsrahmen = Der Begrenzungsrahmen des zu verkleidenden Objekts\n"
+"\n"
+"Diese Referenz ist nützlich, wenn Sie Panels für mehr als einen erstellen\n"
+"Objekt. Die Abstände (wirklich Versätze) werden als Referenz angewendet\n"
+"Zu diesem Referenzobjekt gehört daher die Beibehaltung der getäfelten\n"
+"Objekte synchronisieren."
+
+#: AppTools/ToolPanelize.py:123
+msgid "Box Type"
+msgstr "Box-Typ"
+
+#: AppTools/ToolPanelize.py:125
+msgid ""
+"Specify the type of object to be used as an container for\n"
+"panelization. It can be: Gerber or Geometry type.\n"
+"The selection here decide the type of objects that will be\n"
+"in the Box Object combobox."
+msgstr ""
+"Geben Sie den Objekttyp an, für den ein Container verwendet werden soll\n"
+"Panelisierung. Es kann sein: Gerber oder Geometrietyp.\n"
+"Die Auswahl hier bestimmt den Objekttyp\n"
+"im Kombinationsfeld Box-Objekt."
+
+#: AppTools/ToolPanelize.py:139
+msgid ""
+"The actual object that is used as container for the\n"
+" selected object that is to be panelized."
+msgstr ""
+"Das eigentliche Objekt, für das ein Container verwendet wird\n"
+"ausgewähltes Objekt, das in Panelisiert werden soll."
+
+#: AppTools/ToolPanelize.py:149
+msgid "Panel Data"
+msgstr "Paneldaten"
+
+#: AppTools/ToolPanelize.py:151
+msgid ""
+"This informations will shape the resulting panel.\n"
+"The number of rows and columns will set how many\n"
+"duplicates of the original geometry will be generated.\n"
+"\n"
+"The spacings will set the distance between any two\n"
+"elements of the panel array."
+msgstr ""
+"Diese Informationen formen das resultierende Panel.\n"
+"Die Anzahl der Zeilen und Spalten legt fest, wie viele\n"
+"Duplikate der ursprünglichen Geometrie werden generiert.\n"
+"\n"
+"Die Abstände bestimmen den Abstand zwischen zwei Elementen\n"
+"Elemente des Panel-Arrays."
+
+#: AppTools/ToolPanelize.py:214
+msgid ""
+"Choose the type of object for the panel object:\n"
+"- Geometry\n"
+"- Gerber"
+msgstr ""
+"Wählen Sie den Objekttyp für das Panel-Objekt:\n"
+"- Geometrie\n"
+"- Gerber"
+
+#: AppTools/ToolPanelize.py:222
+msgid "Constrain panel within"
+msgstr "Panel einschränken innerhalb"
+
+#: AppTools/ToolPanelize.py:263
+msgid "Panelize Object"
+msgstr "Panelize Objekt"
+
+#: AppTools/ToolPanelize.py:265 AppTools/ToolRulesCheck.py:501
+msgid ""
+"Panelize the specified object around the specified box.\n"
+"In other words it creates multiple copies of the source object,\n"
+"arranged in a 2D array of rows and columns."
+msgstr ""
+"Das angegebene Objekt um das angegebene Feld einteilen.\n"
+"Mit anderen Worten, es erstellt mehrere Kopien des Quellobjekts,\n"
+"in einem 2D-Array von Zeilen und Spalten angeordnet."
+
+#: AppTools/ToolPanelize.py:333
+msgid "Panel. Tool"
+msgstr "Platte Werkzeug"
+
+#: AppTools/ToolPanelize.py:468
+msgid "Columns or Rows are zero value. Change them to a positive integer."
+msgstr ""
+"Spalten oder Zeilen haben den Wert Null. Ändern Sie sie in eine positive "
+"Ganzzahl."
+
+#: AppTools/ToolPanelize.py:505
+msgid "Generating panel ... "
+msgstr "Panel wird erstellt ... "
+
+#: AppTools/ToolPanelize.py:788
+msgid "Generating panel ... Adding the Gerber code."
+msgstr "Panel wird generiert ... Hinzufügen des Gerber-Codes."
+
+#: AppTools/ToolPanelize.py:796
+msgid "Generating panel... Spawning copies"
+msgstr "Panel wird erstellt ... Kopien werden erstellt"
+
+#: AppTools/ToolPanelize.py:803
+msgid "Panel done..."
+msgstr "Panel fertig ..."
+
+#: AppTools/ToolPanelize.py:806
+#, python-brace-format
+msgid ""
+"{text} Too big for the constrain area. Final panel has {col} columns and "
+"{row} rows"
+msgstr ""
+"{text} Zu groß für den Einschränkungsbereich. Das letzte Panel enthält {col} "
+"Spalten und {row} Zeilen"
+
+#: AppTools/ToolPanelize.py:815
+msgid "Panel created successfully."
+msgstr "Panel erfolgreich erstellt."
+
+#: AppTools/ToolPcbWizard.py:31
+msgid "PcbWizard Import Tool"
+msgstr "PCBWizard Werkzeug importieren"
+
+#: AppTools/ToolPcbWizard.py:40
+msgid "Import 2-file Excellon"
+msgstr "Importieren Sie 2-Datei-Excellon"
+
+#: AppTools/ToolPcbWizard.py:51
+msgid "Load files"
+msgstr "Dateien laden"
+
+#: AppTools/ToolPcbWizard.py:57
+msgid "Excellon file"
+msgstr "Excellon-Datei"
+
+#: AppTools/ToolPcbWizard.py:59
+msgid ""
+"Load the Excellon file.\n"
+"Usually it has a .DRL extension"
+msgstr ""
+"Laden Sie die Excellon-Datei.\n"
+"Normalerweise hat es die Erweiterung .DRL"
+
+#: AppTools/ToolPcbWizard.py:65
+msgid "INF file"
+msgstr "INF-Datei"
+
+#: AppTools/ToolPcbWizard.py:67
+msgid "Load the INF file."
+msgstr "Laden Sie die INF-Datei."
+
+#: AppTools/ToolPcbWizard.py:79
+msgid "Tool Number"
+msgstr "Werkzeugnummer"
+
+#: AppTools/ToolPcbWizard.py:81
+msgid "Tool diameter in file units."
+msgstr "Werkzeugdurchmesser in Feileneinheiten."
+
+#: AppTools/ToolPcbWizard.py:87
+msgid "Excellon format"
+msgstr "Excellon format"
+
+#: AppTools/ToolPcbWizard.py:95
+msgid "Int. digits"
+msgstr "Ganzzahlige Ziffern"
+
+#: AppTools/ToolPcbWizard.py:97
+msgid "The number of digits for the integral part of the coordinates."
+msgstr "Die Anzahl der Ziffern für den integralen Teil der Koordinaten."
+
+#: AppTools/ToolPcbWizard.py:104
+msgid "Frac. digits"
+msgstr "Nachkommastellen"
+
+#: AppTools/ToolPcbWizard.py:106
+msgid "The number of digits for the fractional part of the coordinates."
+msgstr "Die Anzahl der Stellen für den gebrochenen Teil der Koordinaten."
+
+#: AppTools/ToolPcbWizard.py:113
+msgid "No Suppression"
+msgstr "Keine Unterdrück"
+
+#: AppTools/ToolPcbWizard.py:114
+msgid "Zeros supp."
+msgstr "Nullunterdrück."
+
+#: AppTools/ToolPcbWizard.py:116
+msgid ""
+"The type of zeros suppression used.\n"
+"Can be of type:\n"
+"- LZ = leading zeros are kept\n"
+"- TZ = trailing zeros are kept\n"
+"- No Suppression = no zero suppression"
+msgstr ""
+"Die Art der Unterdrückung von Nullen.\n"
+"Kann vom Typ sein:\n"
+"- LZ = führende Nullen werden beibehalten\n"
+"- TZ = nachfolgende Nullen bleiben erhalten\n"
+"- Keine Unterdrückung = keine Nullunterdrückung"
+
+#: AppTools/ToolPcbWizard.py:129
+msgid ""
+"The type of units that the coordinates and tool\n"
+"diameters are using. Can be INCH or MM."
+msgstr ""
+"Die Art der Einheiten, die die Koordinaten und das Werkzeug haben\n"
+"Durchmesser verwenden. Kann INCH oder MM sein."
+
+#: AppTools/ToolPcbWizard.py:136
+msgid "Import Excellon"
+msgstr "Excellon importieren"
+
+#: AppTools/ToolPcbWizard.py:138
+msgid ""
+"Import in FlatCAM an Excellon file\n"
+"that store it's information's in 2 files.\n"
+"One usually has .DRL extension while\n"
+"the other has .INF extension."
+msgstr ""
+"Importieren Sie in FlatCAM eine Excellon-Datei\n"
+"das speichert seine Informationen in 2 Dateien.\n"
+"Normalerweise hat man eine .DRL-Erweiterung\n"
+"der andere hat die Erweiterung .INF."
+
+#: AppTools/ToolPcbWizard.py:197
+msgid "PCBWizard Tool"
+msgstr "PCBWizard Werkzeug"
+
+#: AppTools/ToolPcbWizard.py:291 AppTools/ToolPcbWizard.py:295
+msgid "Load PcbWizard Excellon file"
+msgstr "PcbWizard Excellon-Datei laden"
+
+#: AppTools/ToolPcbWizard.py:314 AppTools/ToolPcbWizard.py:318
+msgid "Load PcbWizard INF file"
+msgstr "Laden Sie die PcbWizard INF-Datei"
+
+#: AppTools/ToolPcbWizard.py:366
+msgid ""
+"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 ""
+"Die INF-Datei enthält keine Werkzeugtabelle.\n"
+"Versuchen Sie, die Excellon-Datei über Datei -> Öffnen -> Excellon zu "
+"öffnen\n"
+"und bearbeiten Sie die Bohrerdurchmesser manuell."
+
+#: AppTools/ToolPcbWizard.py:387
+msgid "PcbWizard .INF file loaded."
+msgstr "PcbWizard-INF-Datei wurde geladen."
+
+#: AppTools/ToolPcbWizard.py:392
+msgid "Main PcbWizard Excellon file loaded."
+msgstr "Haupt-PcbWizard Excellon-Datei geladen."
+
+#: AppTools/ToolPcbWizard.py:424 App_Main.py:8424
+msgid "This is not Excellon file."
+msgstr "Dies ist keine Excellon-Datei."
+
+#: AppTools/ToolPcbWizard.py:427
+msgid "Cannot parse file"
+msgstr "Datei kann nicht analysiert werden"
+
+#: AppTools/ToolPcbWizard.py:450
+msgid "Importing Excellon."
+msgstr "Excellon importieren."
+
+#: AppTools/ToolPcbWizard.py:457
+msgid "Import Excellon file failed."
+msgstr "Import der Excellon-Datei ist fehlgeschlagen."
+
+#: AppTools/ToolPcbWizard.py:464
+msgid "Imported"
+msgstr "Importiert"
+
+#: AppTools/ToolPcbWizard.py:467
+msgid "Excellon merging is in progress. Please wait..."
+msgstr "Das Zusammenführen von Excellons ist im Gange. Warten Sie mal..."
+
+#: AppTools/ToolPcbWizard.py:469
+msgid "The imported Excellon file is empty."
+msgstr "Die importierte Excellon-Datei ist Keine."
+
+#: AppTools/ToolProperties.py:116 App_Main.py:4664 App_Main.py:6718
+#: App_Main.py:6813 App_Main.py:6854 App_Main.py:6895 App_Main.py:6936
+#: App_Main.py:6977 App_Main.py:7021 App_Main.py:7065 App_Main.py:7585
+#: App_Main.py:7589
+msgid "No object selected."
+msgstr "Kein Objekt ausgewählt."
+
+#: AppTools/ToolProperties.py:131
+msgid "Object Properties are displayed."
+msgstr "Objekteigenschaften werden angezeigt."
+
+#: AppTools/ToolProperties.py:136
+msgid "Properties Tool"
+msgstr "Eigenschaftenwerkzeug"
+
+#: AppTools/ToolProperties.py:150
+msgid "TYPE"
+msgstr "TYP"
+
+#: AppTools/ToolProperties.py:151
+msgid "NAME"
+msgstr "NAME"
+
+#: AppTools/ToolProperties.py:153
+msgid "Dimensions"
+msgstr "Dimensionen"
+
+#: AppTools/ToolProperties.py:181
+msgid "Geo Type"
+msgstr "Geo-Typ"
+
+#: AppTools/ToolProperties.py:184
+msgid "Single-Geo"
+msgstr "Einzehln Geo"
+
+#: AppTools/ToolProperties.py:185
+msgid "Multi-Geo"
+msgstr "Mehrfache Geo"
+
+#: AppTools/ToolProperties.py:196
+msgid "Calculating dimensions ... Please wait."
+msgstr "Bemaßung wird berechnet ... Bitte warten."
+
+#: AppTools/ToolProperties.py:339 AppTools/ToolProperties.py:343
+#: AppTools/ToolProperties.py:345
+msgid "Inch"
+msgstr "Zoll"
+
+#: AppTools/ToolProperties.py:339 AppTools/ToolProperties.py:344
+#: AppTools/ToolProperties.py:346
+msgid "Metric"
+msgstr "Metrisch"
+
+#: AppTools/ToolProperties.py:421 AppTools/ToolProperties.py:486
+msgid "Drills number"
+msgstr "Bohrernummer"
+
+#: AppTools/ToolProperties.py:422 AppTools/ToolProperties.py:488
+msgid "Slots number"
+msgstr "Slotnummer"
+
+#: AppTools/ToolProperties.py:424
+msgid "Drills total number:"
+msgstr "Gesamtzahl Bohrer:"
+
+#: AppTools/ToolProperties.py:425
+msgid "Slots total number:"
+msgstr "Gesamtzahl der slots:"
+
+#: AppTools/ToolProperties.py:452 AppTools/ToolProperties.py:455
+#: AppTools/ToolProperties.py:458 AppTools/ToolProperties.py:483
+msgid "Present"
+msgstr "Vorhanden"
+
+#: AppTools/ToolProperties.py:453 AppTools/ToolProperties.py:484
+msgid "Solid Geometry"
+msgstr "Festkörpergeometrie"
+
+#: AppTools/ToolProperties.py:456
+msgid "GCode Text"
+msgstr "GCode Text"
+
+#: AppTools/ToolProperties.py:459
+msgid "GCode Geometry"
+msgstr "GCode Geometrie"
+
+#: AppTools/ToolProperties.py:462
+msgid "Data"
+msgstr "Daten"
+
+#: AppTools/ToolProperties.py:495
+msgid "Depth of Cut"
+msgstr "Tiefe des Schnitts"
+
+#: AppTools/ToolProperties.py:507
+msgid "Clearance Height"
+msgstr "Freilaufhöhe"
+
+#: AppTools/ToolProperties.py:539
+msgid "Routing time"
+msgstr "Berechnungszeit"
+
+#: AppTools/ToolProperties.py:546
+msgid "Travelled distance"
+msgstr "Zurückgelegte Strecke"
+
+#: AppTools/ToolProperties.py:564
+msgid "Width"
+msgstr "Breite"
+
+#: AppTools/ToolProperties.py:570 AppTools/ToolProperties.py:578
+msgid "Box Area"
+msgstr "Feld Bereich"
+
+#: AppTools/ToolProperties.py:573 AppTools/ToolProperties.py:581
+msgid "Convex_Hull Area"
+msgstr "Konvexer Rumpfbereich"
+
+#: AppTools/ToolProperties.py:588 AppTools/ToolProperties.py:591
+msgid "Copper Area"
+msgstr "Kupferareal"
+
+#: AppTools/ToolPunchGerber.py:30 AppTools/ToolPunchGerber.py:323
+msgid "Punch Gerber"
+msgstr "Schlag Gerber"
+
+#: AppTools/ToolPunchGerber.py:65
+msgid "Gerber into which to punch holes"
+msgstr "Gerber, in den Löcher gestanzt werden können"
+
+#: AppTools/ToolPunchGerber.py:85
+msgid "ALL"
+msgstr "ALLE"
+
+#: AppTools/ToolPunchGerber.py:166
+msgid ""
+"Remove the geometry of Excellon from the Gerber to create the holes in pads."
+msgstr ""
+"Entfernen Sie die Geometrie von Excellon aus dem Gerber, um die Löcher in "
+"den Pads zu erstellen."
+
+#: AppTools/ToolPunchGerber.py:325
+msgid ""
+"Create a Gerber object from the selected object, within\n"
+"the specified box."
+msgstr ""
+"Erstellen Sie innerhalb des ausgewählten Objekts ein Gerber-Objekt\n"
+"das angegebene Feld."
+
+#: AppTools/ToolPunchGerber.py:425
+msgid "Punch Tool"
+msgstr "Stanzwerkzeug"
+
+#: AppTools/ToolPunchGerber.py:599
+msgid "The value of the fixed diameter is 0.0. Aborting."
+msgstr "Der Wert des festen Durchmessers beträgt 0,0. Abbruch."
+
+#: AppTools/ToolPunchGerber.py:602
+msgid ""
+"Could not generate punched hole Gerber because the punch hole size is bigger "
+"than some of the apertures in the Gerber object."
+msgstr ""
+"Stanzloch Gerber konnte nicht generiert werden, da die Stanzlochgröße größer "
+"ist als einige der Öffnungen im Gerber-Objekt."
+
+#: AppTools/ToolPunchGerber.py:665
+msgid ""
+"Could not generate punched hole Gerber because the newly created object "
+"geometry is the same as the one in the source object geometry..."
+msgstr ""
+"Stanzloch Gerber konnte nicht generiert werden, da die neu erstellte "
+"Objektgeometrie mit der in der Quellobjektgeometrie übereinstimmt ..."
+
+#: AppTools/ToolQRCode.py:80
+msgid "Gerber Object to which the QRCode will be added."
+msgstr "Gerber-Objekt zu dem der QRCode hinzugefügt wird."
+
+#: AppTools/ToolQRCode.py:93
+msgid "QRCode Parameters"
+msgstr "QRCode Parameter"
+
+#: AppTools/ToolQRCode.py:95
+msgid "The parameters used to shape the QRCode."
+msgstr "Parameter zum Aussehen des QRCodes."
+
+#: AppTools/ToolQRCode.py:207
+msgid "Export QRCode"
+msgstr "QRCode exportieren"
+
+#: AppTools/ToolQRCode.py:209
+msgid ""
+"Show a set of controls allowing to export the QRCode\n"
+"to a SVG file or an PNG file."
+msgstr ""
+"Zeigt einen Satz von Bedienelementen um den QRCode\n"
+"in eine SVG oder ein PNG File zu exportieren."
+
+#: AppTools/ToolQRCode.py:248
+msgid "Transparent back color"
+msgstr "Transparente Hintergrundfarbe"
+
+#: AppTools/ToolQRCode.py:273
+msgid "Export QRCode SVG"
+msgstr "QRCode als SVG exportieren"
+
+#: AppTools/ToolQRCode.py:275
+msgid "Export a SVG file with the QRCode content."
+msgstr "Export als SVG Code mit dem QRCode Inhalt."
+
+#: AppTools/ToolQRCode.py:286
+msgid "Export QRCode PNG"
+msgstr "G-Code als PNG exportieren"
+
+#: AppTools/ToolQRCode.py:288
+msgid "Export a PNG image file with the QRCode content."
+msgstr "Exportiert den QRCode als PNG Datei."
+
+#: AppTools/ToolQRCode.py:299
+msgid "Insert QRCode"
+msgstr "QRCode einfügen"
+
+#: AppTools/ToolQRCode.py:301
+msgid "Create the QRCode object."
+msgstr "Erzeugen des QRCode Objektes."
+
+#: AppTools/ToolQRCode.py:415 AppTools/ToolQRCode.py:750
+#: AppTools/ToolQRCode.py:799
+msgid "Cancelled. There is no QRCode Data in the text box."
+msgstr "Abgebrochen. Es befindet sich kein QRCode im Feld."
+
+#: AppTools/ToolQRCode.py:434
+msgid "Generating QRCode geometry"
+msgstr "QRCode Geometrie erzeugen"
+
+#: AppTools/ToolQRCode.py:474
+msgid "Click on the Destination point ..."
+msgstr "Klicken Sie auf den Zielpunkt ..."
+
+#: AppTools/ToolQRCode.py:589
+msgid "QRCode Tool done."
+msgstr "QRCode Tool fertig."
+
+#: AppTools/ToolQRCode.py:782 AppTools/ToolQRCode.py:786
+msgid "Export PNG"
+msgstr "PNG exportieren"
+
+#: AppTools/ToolQRCode.py:829 AppTools/ToolQRCode.py:833 App_Main.py:6746
+#: App_Main.py:6750
+msgid "Export SVG"
+msgstr "SVG exportieren"
+
+#: AppTools/ToolRulesCheck.py:33
+msgid "Check Rules"
+msgstr "Überprüfen Sie die Regeln"
+
+#: AppTools/ToolRulesCheck.py:61
+msgid "Gerber Files"
+msgstr "Gerber-Dateien"
+
+#: AppTools/ToolRulesCheck.py:63
+msgid "Gerber objects for which to check rules."
+msgstr "Gerber-Objekte, für die Regeln überprüft werden sollen."
+
+#: AppTools/ToolRulesCheck.py:78
+msgid "Top"
+msgstr "Oberst"
+
+#: AppTools/ToolRulesCheck.py:80
+msgid "The Top Gerber Copper object for which rules are checked."
+msgstr "Das Top Gerber Copper-Objekt, für das Regeln überprüft werden."
+
+#: AppTools/ToolRulesCheck.py:96
+msgid "Bottom"
+msgstr "Unterseite"
+
+#: AppTools/ToolRulesCheck.py:98
+msgid "The Bottom Gerber Copper object for which rules are checked."
+msgstr "Das untere Gerber Copper-Objekt, für das Regeln überprüft werden."
+
+#: AppTools/ToolRulesCheck.py:114
+msgid "SM Top"
+msgstr "SM Oberst"
+
+#: AppTools/ToolRulesCheck.py:116
+msgid "The Top Gerber Solder Mask object for which rules are checked."
+msgstr "Das oberste Gerber-Lötmaskenobjekt, für das Regeln überprüft werden."
+
+#: AppTools/ToolRulesCheck.py:132
+msgid "SM Bottom"
+msgstr "SM unten"
+
+#: AppTools/ToolRulesCheck.py:134
+msgid "The Bottom Gerber Solder Mask object for which rules are checked."
+msgstr "Das untere Gerber-Lötmaskenobjekt, für das Regeln überprüft werden."
+
+#: AppTools/ToolRulesCheck.py:150
+msgid "Silk Top"
+msgstr "Siebdruck Oben"
+
+#: AppTools/ToolRulesCheck.py:152
+msgid "The Top Gerber Silkscreen object for which rules are checked."
+msgstr "Das oberste Gerber-Siebdruck-Objekt, für das Regeln überprüft werden."
+
+#: AppTools/ToolRulesCheck.py:168
+msgid "Silk Bottom"
+msgstr "Siebdruck unten"
+
+#: AppTools/ToolRulesCheck.py:170
+msgid "The Bottom Gerber Silkscreen object for which rules are checked."
+msgstr "Das untere Gerber-Siebdruck-Objekt, für das Regeln überprüft werden."
+
+#: AppTools/ToolRulesCheck.py:188
+msgid "The Gerber Outline (Cutout) object for which rules are checked."
+msgstr ""
+"Das Gerber-Gliederungsobjekt (Ausschnitt), für das Regeln überprüft werden."
+
+#: AppTools/ToolRulesCheck.py:199
+msgid "Excellon Objects"
+msgstr "Excellon-Objekte"
+
+#: AppTools/ToolRulesCheck.py:201
+msgid "Excellon objects for which to check rules."
+msgstr "Excellon-Objekte, für die Regeln überprüft werden sollen."
+
+#: AppTools/ToolRulesCheck.py:213
+msgid "Excellon 1"
+msgstr "Excellon 1"
+
+#: AppTools/ToolRulesCheck.py:215
+msgid ""
+"Excellon object for which to check rules.\n"
+"Holds the plated holes or a general Excellon file content."
+msgstr ""
+"Excellon-Objekt, für das Regeln überprüft werden sollen.\n"
+"Enthält die plattierten Löcher oder einen allgemeinen Excellon-Dateiinhalt."
+
+#: AppTools/ToolRulesCheck.py:232
+msgid "Excellon 2"
+msgstr "Excellon 2"
+
+#: AppTools/ToolRulesCheck.py:234
+msgid ""
+"Excellon object for which to check rules.\n"
+"Holds the non-plated holes."
+msgstr ""
+"Excellon-Objekt, für das Regeln überprüft werden sollen.\n"
+"Hält die nicht plattierten Löcher."
+
+#: AppTools/ToolRulesCheck.py:247
+msgid "All Rules"
+msgstr "Alle Regeln"
+
+#: AppTools/ToolRulesCheck.py:249
+msgid "This check/uncheck all the rules below."
+msgstr ""
+"Hiermit können Sie alle unten aufgeführten Regeln aktivieren / deaktivieren."
+
+#: AppTools/ToolRulesCheck.py:499
+msgid "Run Rules Check"
+msgstr "Führen Sie die Regelprüfung durch"
+
+#: AppTools/ToolRulesCheck.py:1158 AppTools/ToolRulesCheck.py:1218
+#: AppTools/ToolRulesCheck.py:1255 AppTools/ToolRulesCheck.py:1327
+#: AppTools/ToolRulesCheck.py:1381 AppTools/ToolRulesCheck.py:1419
+#: AppTools/ToolRulesCheck.py:1484
+msgid "Value is not valid."
+msgstr "Wert ist ungültig."
+
+#: AppTools/ToolRulesCheck.py:1172
+msgid "TOP -> Copper to Copper clearance"
+msgstr "TOP -> Kupfer zu Kupfer Abstand"
+
+#: AppTools/ToolRulesCheck.py:1183
+msgid "BOTTOM -> Copper to Copper clearance"
+msgstr "UNTEN -> Kupfer zu Kupfer Abstand"
+
+#: AppTools/ToolRulesCheck.py:1188 AppTools/ToolRulesCheck.py:1282
+#: AppTools/ToolRulesCheck.py:1446
+msgid ""
+"At least one Gerber object has to be selected for this rule but none is "
+"selected."
+msgstr ""
+"Für diese Regel muss mindestens ein Gerber-Objekt ausgewählt sein, aber "
+"keines."
+
+#: AppTools/ToolRulesCheck.py:1224
+msgid ""
+"One of the copper Gerber objects or the Outline Gerber object is not valid."
+msgstr ""
+"Eines der Kupfer-Gerber-Objekte oder das Umriss-Gerber-Objekt ist ungültig."
+
+#: AppTools/ToolRulesCheck.py:1237 AppTools/ToolRulesCheck.py:1401
+msgid ""
+"Outline Gerber object presence is mandatory for this rule but it is not "
+"selected."
+msgstr ""
+"Das Vorhandensein von Gerber-Objekten ist für diese Regel obligatorisch, "
+"jedoch nicht ausgewählt."
+
+#: AppTools/ToolRulesCheck.py:1254 AppTools/ToolRulesCheck.py:1281
+msgid "Silk to Silk clearance"
+msgstr "Siebdruck zu siebdruck freiheit"
+
+#: AppTools/ToolRulesCheck.py:1267
+msgid "TOP -> Silk to Silk clearance"
+msgstr "TOP -> Siebdruck zu Siebdruck Abstand"
+
+#: AppTools/ToolRulesCheck.py:1277
+msgid "BOTTOM -> Silk to Silk clearance"
+msgstr "UNTEN -> Abstand von Siebdruck zu Siebdruck"
+
+#: AppTools/ToolRulesCheck.py:1333
+msgid "One or more of the Gerber objects is not valid."
+msgstr "Eines oder mehrere der Gerber-Objekte sind ungültig."
+
+#: AppTools/ToolRulesCheck.py:1341
+msgid "TOP -> Silk to Solder Mask Clearance"
+msgstr "TOP -> Abstand von Siebdruck zu Lötmaske"
+
+#: AppTools/ToolRulesCheck.py:1347
+msgid "BOTTOM -> Silk to Solder Mask Clearance"
+msgstr "UNTEN -> Abstand von Siebdruck zu Lötmaske"
+
+#: AppTools/ToolRulesCheck.py:1351
+msgid ""
+"Both Silk and Solder Mask Gerber objects has to be either both Top or both "
+"Bottom."
+msgstr ""
+"Sowohl Siebdruck- als auch Lötmasken-Gerber-Objekte müssen entweder beide "
+"oben oder beide unten sein."
+
+#: AppTools/ToolRulesCheck.py:1387
+msgid ""
+"One of the Silk Gerber objects or the Outline Gerber object is not valid."
+msgstr ""
+"Eines der Siebdruck-Gerber-Objekte oder das Gliederung-Gerber-Objekt ist "
+"ungültig."
+
+#: AppTools/ToolRulesCheck.py:1431
+msgid "TOP -> Minimum Solder Mask Sliver"
+msgstr "TOP -> Minimum Lötmaskenband"
+
+#: AppTools/ToolRulesCheck.py:1441
+msgid "BOTTOM -> Minimum Solder Mask Sliver"
+msgstr "UNTEN-> Minimum Lötmaskenband"
+
+#: AppTools/ToolRulesCheck.py:1490
+msgid "One of the Copper Gerber objects or the Excellon objects is not valid."
+msgstr ""
+"Eines der Kupfer-Gerber-Objekte oder der Excellon-Objekte ist ungültig."
+
+#: AppTools/ToolRulesCheck.py:1506
+msgid ""
+"Excellon object presence is mandatory for this rule but none is selected."
+msgstr ""
+"Das Vorhandensein von Excellon-Objekten ist für diese Regel obligatorisch, "
+"es ist jedoch keine ausgewählt."
+
+#: AppTools/ToolRulesCheck.py:1579 AppTools/ToolRulesCheck.py:1592
+#: AppTools/ToolRulesCheck.py:1603 AppTools/ToolRulesCheck.py:1616
+msgid "STATUS"
+msgstr "STATUS"
+
+#: AppTools/ToolRulesCheck.py:1582 AppTools/ToolRulesCheck.py:1606
+msgid "FAILED"
+msgstr "GESCHEITERT"
+
+#: AppTools/ToolRulesCheck.py:1595 AppTools/ToolRulesCheck.py:1619
+msgid "PASSED"
+msgstr "BESTANDEN"
+
+#: AppTools/ToolRulesCheck.py:1596 AppTools/ToolRulesCheck.py:1620
+msgid "Violations: There are no violations for the current rule."
+msgstr "Verstöße: Für die aktuelle Regel gibt es keine Verstöße."
+
+#: AppTools/ToolShell.py:74 AppTools/ToolShell.py:76
+msgid "...processing..."
+msgstr "...wird bearbeitet..."
+
+#: AppTools/ToolSolderPaste.py:37
+msgid "Solder Paste Tool"
+msgstr "Lötpaste-Werkzeug"
+
+#: AppTools/ToolSolderPaste.py:69
+msgid "Gerber Solder paste object. "
+msgstr "Gerber Lötpastenobjekt. "
+
+#: AppTools/ToolSolderPaste.py:76
+msgid ""
+"Tools pool from which the algorithm\n"
+"will pick the ones used for dispensing solder paste."
+msgstr ""
+"Toolspool aus dem der Algorithmus\n"
+"wählt die für die Lotpaste verwendeten aus."
+
+#: AppTools/ToolSolderPaste.py:91
+msgid ""
+"This is the Tool Number.\n"
+"The solder dispensing will start with the tool with the biggest \n"
+"diameter, continuing until there are no more Nozzle tools.\n"
+"If there are no longer tools but there are still pads not covered\n"
+" with solder paste, the app will issue a warning message box."
+msgstr ""
+"Dies ist die Werkzeugnummer.\n"
+"Die Lotdosierung beginnt mit dem Werkzeug mit dem größten\n"
+"Durchmesser, weiter, bis keine Düsenwerkzeuge mehr vorhanden sind.\n"
+"Wenn keine Werkzeuge mehr vorhanden sind, sind aber noch keine Pads "
+"vorhanden\n"
+"Mit Lötpaste gibt die App eine Warnmeldung aus."
+
+#: AppTools/ToolSolderPaste.py:98
+msgid ""
+"Nozzle tool Diameter. It's value (in current FlatCAM units)\n"
+"is the width of the solder paste dispensed."
+msgstr ""
+"Düsenwerkzeug Durchmesser. Der Wert (in aktuellen FlatCAM-Einheiten)\n"
+"ist die Breite der Lotpaste."
+
+#: AppTools/ToolSolderPaste.py:105
+msgid "New Nozzle Tool"
+msgstr "Neues Düsenwerkzeug"
+
+#: AppTools/ToolSolderPaste.py:124
+msgid ""
+"Add a new nozzle tool to the Tool Table\n"
+"with the diameter specified above."
+msgstr ""
+"Fügen Sie der Werkzeugtabelle ein neues Düsenwerkzeug hinzu\n"
+"mit dem oben angegebenen Durchmesser."
+
+#: AppTools/ToolSolderPaste.py:136
+msgid "Generate solder paste dispensing geometry."
+msgstr "Generieren Sie Lotpastendispensiergeometrie."
+
+#: AppTools/ToolSolderPaste.py:155
+msgid "STEP 1"
+msgstr "SCHRITT 1"
+
+#: AppTools/ToolSolderPaste.py:157
+msgid ""
+"First step is to select a number of nozzle tools for usage\n"
+"and then optionally modify the GCode parameters below."
+msgstr ""
+"Zunächst müssen Sie eine Reihe von Düsenwerkzeugen auswählen\n"
+"und ändern Sie dann optional die GCode-Parameter."
+
+#: AppTools/ToolSolderPaste.py:160
+msgid ""
+"Select tools.\n"
+"Modify parameters."
+msgstr ""
+"Werkzeuge auswählen.\n"
+"Parameter ändern."
+
+#: AppTools/ToolSolderPaste.py:280
+msgid ""
+"Feedrate (speed) while moving up vertically\n"
+" to Dispense position (on Z plane)."
+msgstr ""
+"Vorschub (Geschwindigkeit) bei vertikaler Bewegung\n"
+" zur Ausgabeposition (auf der Z-Ebene)."
+
+#: AppTools/ToolSolderPaste.py:350
+msgid ""
+"Generate GCode for Solder Paste dispensing\n"
+"on PCB pads."
+msgstr ""
+"Generieren Sie GCode für die Lotpastendosierung\n"
+"auf PCB-Pads."
+
+#: AppTools/ToolSolderPaste.py:371
+msgid "STEP 2"
+msgstr "SCHRITT 2"
+
+#: AppTools/ToolSolderPaste.py:373
+msgid ""
+"Second step is to create a solder paste dispensing\n"
+"geometry out of an Solder Paste Mask Gerber file."
+msgstr ""
+"Der zweite Schritt ist das Erstellen einer Lotpastendispensierung\n"
+"Geometrie aus einer Lotpastenmaske-Gerber-Datei."
+
+#: AppTools/ToolSolderPaste.py:390
+msgid "Geo Result"
+msgstr "Geo-Ergebnis"
+
+#: AppTools/ToolSolderPaste.py:392
+msgid ""
+"Geometry Solder Paste object.\n"
+"The name of the object has to end in:\n"
+"'_solderpaste' as a protection."
+msgstr ""
+"Geometrie Lötpaste Objekt einfügen.\n"
+"Der Name des Objekts muss auf enden:\n"
+"'_solderpaste' als Schutz."
+
+#: AppTools/ToolSolderPaste.py:401
+msgid "STEP 3"
+msgstr "SCHRITT 3"
+
+#: AppTools/ToolSolderPaste.py:403
+msgid ""
+"Third step is to select a solder paste dispensing geometry,\n"
+"and then generate a CNCJob object.\n"
+"\n"
+"REMEMBER: if you want to create a CNCJob with new parameters,\n"
+"first you need to generate a geometry with those new params,\n"
+"and only after that you can generate an updated CNCJob."
+msgstr ""
+"Der dritte Schritt ist die Auswahl einer Lotpastendosiergeometrie.\n"
+"und generieren Sie dann ein CNCJob-Objekt.\n"
+"\n"
+"HINWEIS: Wenn Sie einen CNCJob mit neuen Parametern erstellen möchten,\n"
+"Zuerst müssen Sie eine Geometrie mit diesen neuen Parametern generieren.\n"
+"und erst danach können Sie einen aktualisierten CNCJob erstellen."
+
+#: AppTools/ToolSolderPaste.py:424
+msgid "CNC Result"
+msgstr "CNC-Ergebnis"
+
+#: AppTools/ToolSolderPaste.py:426
+msgid ""
+"CNCJob Solder paste object.\n"
+"In order to enable the GCode save section,\n"
+"the name of the object has to end in:\n"
+"'_solderpaste' as a protection."
+msgstr ""
+"CNCJob Lotpastenobjekt.\n"
+"Um den GCode-Speicherbereich zu aktivieren,\n"
+"Der Name des Objekts muss auf enden:\n"
+"'_solderpaste' als Schutz."
+
+#: AppTools/ToolSolderPaste.py:436
+msgid "View GCode"
+msgstr "GCode anzeigen"
+
+#: AppTools/ToolSolderPaste.py:438
+msgid ""
+"View the generated GCode for Solder Paste dispensing\n"
+"on PCB pads."
+msgstr ""
+"Zeigen Sie den generierten GCode für die Lotpastendosierung an\n"
+"auf PCB-Pads."
+
+#: AppTools/ToolSolderPaste.py:448
+msgid "Save GCode"
+msgstr "Speichern Sie GCode"
+
+#: AppTools/ToolSolderPaste.py:450
+msgid ""
+"Save the generated GCode for Solder Paste dispensing\n"
+"on PCB pads, to a file."
+msgstr ""
+"Speichern Sie den generierten GCode für die Lotpastendosierung\n"
+"auf PCB-Pads zu einer Datei."
+
+#: AppTools/ToolSolderPaste.py:460
+msgid "STEP 4"
+msgstr "SCHRITT 4"
+
+#: AppTools/ToolSolderPaste.py:462
+msgid ""
+"Fourth step (and last) is to select a CNCJob made from \n"
+"a solder paste dispensing geometry, and then view/save it's GCode."
+msgstr ""
+"Vierter Schritt (und letzter Schritt) ist die Auswahl eines CNCJobs aus\n"
+"eine Lotpastendispensiergeometrie und dann den GCode anzeigen / speichern."
+
+#: AppTools/ToolSolderPaste.py:922
+msgid "New Nozzle tool added to Tool Table."
+msgstr "Neues Düsenwerkzeug zur Werkzeugtabelle hinzugefügt."
+
+#: AppTools/ToolSolderPaste.py:965
+msgid "Nozzle tool from Tool Table was edited."
+msgstr "Das Düsenwerkzeug aus der Werkzeugtabelle wurde bearbeitet."
+
+#: AppTools/ToolSolderPaste.py:1024
+msgid "Delete failed. Select a Nozzle tool to delete."
+msgstr "Löschen fehlgeschlagen. Wählen Sie ein Düsenwerkzeug zum Löschen aus."
+
+#: AppTools/ToolSolderPaste.py:1030
+msgid "Nozzle tool(s) deleted from Tool Table."
+msgstr "Düsenwerkzeug (e) aus der Werkzeugtabelle gelöscht."
+
+#: AppTools/ToolSolderPaste.py:1086
+msgid "No SolderPaste mask Gerber object loaded."
+msgstr "Keine Lötpastenmaske Gerber-Objekt geladen."
+
+#: AppTools/ToolSolderPaste.py:1104
+msgid "Creating Solder Paste dispensing geometry."
+msgstr "Erstellen einer Lotpastenspendergeometrie."
+
+#: AppTools/ToolSolderPaste.py:1117
+msgid "No Nozzle tools in the tool table."
+msgstr "Nein Düsenwerkzeuge in der Werkzeugtabelle."
+
+#: AppTools/ToolSolderPaste.py:1243
+msgid "Cancelled. Empty file, it has no geometry..."
+msgstr "Abgebrochen. Leere Datei hat keine Geometrie ..."
+
+#: AppTools/ToolSolderPaste.py:1246
+msgid "Solder Paste geometry generated successfully"
+msgstr "Lotpastengeometrie erfolgreich generiert"
+
+#: AppTools/ToolSolderPaste.py:1253
+msgid "Some or all pads have no solder due of inadequate nozzle diameters..."
+msgstr ""
+"Einige oder alle Pads haben wegen unzureichender Düsendurchmesser keine "
+"Lötstellen ..."
+
+#: AppTools/ToolSolderPaste.py:1267
+msgid "Generating Solder Paste dispensing geometry..."
+msgstr "Lötpasten-Dosiergeometrie erzeugen ..."
+
+#: AppTools/ToolSolderPaste.py:1287
+msgid "There is no Geometry object available."
+msgstr "Es ist kein Geometrieobjekt verfügbar."
+
+#: AppTools/ToolSolderPaste.py:1292
+msgid "This Geometry can't be processed. NOT a solder_paste_tool geometry."
+msgstr ""
+"Diese Geometrie kann nicht verarbeitet werden. KEINE Geometrie "
+"\"Lötpaste_Tool\"."
+
+#: AppTools/ToolSolderPaste.py:1328
+msgid "An internal error has ocurred. See shell.\n"
+msgstr "Ein interner Fehler ist aufgetreten. Siehe Konsole.\n"
+
+#: AppTools/ToolSolderPaste.py:1393
+msgid "ToolSolderPaste CNCjob created"
+msgstr "Werkzeuglötpaste CNC-Auftrag erstellt"
+
+#: AppTools/ToolSolderPaste.py:1412
+msgid "SP GCode Editor"
+msgstr "SP GCode-Editor"
+
+#: AppTools/ToolSolderPaste.py:1424 AppTools/ToolSolderPaste.py:1429
+#: AppTools/ToolSolderPaste.py:1484
+msgid ""
+"This CNCJob object can't be processed. NOT a solder_paste_tool CNCJob object."
+msgstr ""
+"Dieses CNCJob-Objekt kann nicht verarbeitet werden. KEIN lot_paste_tool "
+"CNCJob Objekt."
+
+#: AppTools/ToolSolderPaste.py:1454
+msgid "No Gcode in the object"
+msgstr "Kein Gcode im Objekt"
+
+#: AppTools/ToolSolderPaste.py:1494
+msgid "Export GCode ..."
+msgstr "GCode exportieren ..."
+
+#: AppTools/ToolSolderPaste.py:1542
+msgid "Solder paste dispenser GCode file saved to"
+msgstr "Lotpastenspender GCode-Datei gespeichert in"
+
+#: AppTools/ToolSub.py:65
+msgid "Gerber Objects"
+msgstr "Gerber-Objekte"
+
+#: AppTools/ToolSub.py:78
+msgid ""
+"Gerber object from which to subtract\n"
+"the subtractor Gerber object."
+msgstr ""
+"Gerber-Objekt, von dem subtrahiert werden soll\n"
+"der Subtrahierer Gerber Objekt."
+
+#: AppTools/ToolSub.py:91 AppTools/ToolSub.py:146
+msgid "Subtractor"
+msgstr "Subtraktor"
+
+#: AppTools/ToolSub.py:93
+msgid ""
+"Gerber object that will be subtracted\n"
+"from the target Gerber object."
+msgstr ""
+"Gerber-Objekt, das abgezogen wird\n"
+"vom Zielobjekt Gerber."
+
+#: AppTools/ToolSub.py:100
+msgid "Subtract Gerber"
+msgstr "Gerber abziehen"
+
+#: AppTools/ToolSub.py:102
+msgid ""
+"Will remove the area occupied by the subtractor\n"
+"Gerber from the Target Gerber.\n"
+"Can be used to remove the overlapping silkscreen\n"
+"over the soldermask."
+msgstr ""
+"Entfernt den vom Subtrahierer belegten Bereich\n"
+"Gerber vom Target Gerber.\n"
+"Kann verwendet werden, um den überlappenden Siebdruck zu entfernen\n"
+"über der Lötmaske."
+
+#: AppTools/ToolSub.py:120
+msgid "Geometry Objects"
+msgstr "Geometrieobjekte"
+
+#: AppTools/ToolSub.py:133
+msgid ""
+"Geometry object from which to subtract\n"
+"the subtractor Geometry object."
+msgstr ""
+"Geometrieobjekt, von dem subtrahiert werden soll\n"
+"das Subtrahierer-Geometrieobjekt."
+
+#: AppTools/ToolSub.py:148
+msgid ""
+"Geometry object that will be subtracted\n"
+"from the target Geometry object."
+msgstr ""
+"Geometrieobjekt, das subtrahiert wird\n"
+"aus dem Zielobjekt Geometrie."
+
+#: AppTools/ToolSub.py:156
+msgid ""
+"Checking this will close the paths cut by the Geometry subtractor object."
+msgstr ""
+"Wenn Sie dies aktivieren, werden die vom Geometrie-Subtrahierer-Objekt "
+"geschnittenen Pfade geschlossen."
+
+#: AppTools/ToolSub.py:159
+msgid "Subtract Geometry"
+msgstr "Geometrie subtrahieren"
+
+#: AppTools/ToolSub.py:161
+msgid ""
+"Will remove the area occupied by the subtractor\n"
+"Geometry from the Target Geometry."
+msgstr ""
+"Entfernt den vom Subtrahierer belegten Bereich\n"
+"Geometrie aus der Zielgeometrie."
+
+#: AppTools/ToolSub.py:263
+msgid "Sub Tool"
+msgstr "Sub. Werkzeug"
+
+#: AppTools/ToolSub.py:284 AppTools/ToolSub.py:489
+msgid "No Target object loaded."
+msgstr "Kein Zielobjekt geladen."
+
+#: AppTools/ToolSub.py:287
+msgid "Loading geometry from Gerber objects."
+msgstr "Lade Geometrien aus Gerber Objekten."
+
+#: AppTools/ToolSub.py:299 AppTools/ToolSub.py:504
+msgid "No Subtractor object loaded."
+msgstr "Es wurde kein Subtrahiererobjekt geladen."
+
+# Whatever a Subtractor Gerber is, could not translate
+#: AppTools/ToolSub.py:331
+msgid "Processing geometry from Subtractor Gerber object."
+msgstr "Verarbeite Geomtrie des Subtractor Gerber Objekts."
+
+#: AppTools/ToolSub.py:352
+msgid "Parsing geometry for aperture"
+msgstr "Analysegeometrie für Blende"
+
+# whatever aperture means here....
+#: AppTools/ToolSub.py:413
+msgid "Finished parsing geometry for aperture"
+msgstr "Einlesen der aperture Geometrie fertiggestellt"
+
+#: AppTools/ToolSub.py:458 AppTools/ToolSub.py:661
+msgid "Generating new object ..."
+msgstr "Neues Objekt erzeugen ..."
+
+#: AppTools/ToolSub.py:462 AppTools/ToolSub.py:665 AppTools/ToolSub.py:746
+msgid "Generating new object failed."
+msgstr "Das Generieren eines neuen Objekts ist fehlgeschlagen."
+
+#: AppTools/ToolSub.py:467 AppTools/ToolSub.py:671
+msgid "Created"
+msgstr "Erstellt"
+
+#: AppTools/ToolSub.py:518
+msgid "Currently, the Subtractor geometry cannot be of type Multigeo."
+msgstr "Derzeit kann die Subtrahierergeometrie nicht vom Typ Multi-Geo sein."
+
+#: AppTools/ToolSub.py:563
+msgid "Parsing solid_geometry ..."
+msgstr "Analyse von solid_geometry ..."
+
+#: AppTools/ToolSub.py:565
+msgid "Parsing solid_geometry for tool"
+msgstr "Analysieren der solid_geometry für das Werkzeug"
+
+#: AppTools/ToolTransform.py:23
+msgid "Object Transform"
+msgstr "Objekttransformation"
+
+#: AppTools/ToolTransform.py:78
+msgid ""
+"Rotate the selected object(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected objects."
+msgstr ""
+"Drehen Sie die ausgewählten Objekte.\n"
+"Der Bezugspunkt ist die Mitte von\n"
+"der Begrenzungsrahmen für alle ausgewählten Objekte."
+
+#: AppTools/ToolTransform.py:99 AppTools/ToolTransform.py:120
+msgid ""
+"Angle for Skew action, in degrees.\n"
+"Float number between -360 and 360."
+msgstr ""
+"Winkel für Schrägstellung in Grad.\n"
+"Gleitkommazahl zwischen -360 und 360."
+
+#: AppTools/ToolTransform.py:109 AppTools/ToolTransform.py:130
+msgid ""
+"Skew/shear the selected object(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected objects."
+msgstr ""
+"Schrägstellung / Scherung der ausgewählten Objekte.\n"
+"Der Bezugspunkt ist die Mitte von\n"
+"der Begrenzungsrahmen für alle ausgewählten Objekte."
+
+#: AppTools/ToolTransform.py:159 AppTools/ToolTransform.py:179
+msgid ""
+"Scale the selected object(s).\n"
+"The point of reference depends on \n"
+"the Scale reference checkbox state."
+msgstr ""
+"Skalieren Sie die ausgewählten Objekte.\n"
+"Der Bezugspunkt hängt von ab\n"
+"das Kontrollkästchen Skalenreferenz."
+
+#: AppTools/ToolTransform.py:228 AppTools/ToolTransform.py:248
+msgid ""
+"Offset the selected object(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected objects.\n"
+msgstr ""
+"Versetzt die ausgewählten Objekte.\n"
+"Der Bezugspunkt ist die Mitte von\n"
+"der Begrenzungsrahmen für alle ausgewählten Objekte.\n"
+
+#: AppTools/ToolTransform.py:268 AppTools/ToolTransform.py:273
+msgid "Flip the selected object(s) over the X axis."
+msgstr "Drehen Sie die ausgewählten Objekte über die X-Achse."
+
+#: AppTools/ToolTransform.py:297
+msgid "Ref. Point"
+msgstr "Anhaltspunkt"
+
+#: AppTools/ToolTransform.py:348
+msgid ""
+"Create the buffer effect on each geometry,\n"
+"element from the selected object, using the distance."
+msgstr ""
+"Erstellen Sie den Puffereffekt für jede Geometrie.\n"
+"Element aus dem ausgewählten Objekt unter Verwendung des Abstands."
+
+#: AppTools/ToolTransform.py:374
+msgid ""
+"Create the buffer effect on each geometry,\n"
+"element from the selected object, using the factor."
+msgstr ""
+"Erstellen Sie den Puffereffekt für jede Geometrie.\n"
+"Element aus dem ausgewählten Objekt unter Verwendung des Faktors."
+
+#: AppTools/ToolTransform.py:479
+msgid "Buffer D"
+msgstr "Puffer E"
+
+#: AppTools/ToolTransform.py:480
+msgid "Buffer F"
+msgstr "Puffer F"
+
+#: AppTools/ToolTransform.py:557
+msgid "Rotate transformation can not be done for a value of 0."
+msgstr ""
+"Bei einem Wert von 0 kann keine Rotationstransformation durchgeführt werden."
+
+#: AppTools/ToolTransform.py:596 AppTools/ToolTransform.py:619
+msgid "Scale transformation can not be done for a factor of 0 or 1."
+msgstr ""
+"Eine Skalentransformation kann für einen Faktor von 0 oder 1 nicht "
+"durchgeführt werden."
+
+#: AppTools/ToolTransform.py:634 AppTools/ToolTransform.py:644
+msgid "Offset transformation can not be done for a value of 0."
+msgstr ""
+"Bei einem Wert von 0 kann keine Offset-Transformation durchgeführt werden."
+
+#: AppTools/ToolTransform.py:676
+msgid "No object selected. Please Select an object to rotate!"
+msgstr "Kein Objekt ausgewählt. Bitte wählen Sie ein Objekt zum Drehen aus!"
+
+#: AppTools/ToolTransform.py:702
+msgid "CNCJob objects can't be rotated."
+msgstr "CNCJob-Objekte können nicht gedreht werden."
+
+#: AppTools/ToolTransform.py:710
+msgid "Rotate done"
+msgstr "Fertig drehen"
+
+#: AppTools/ToolTransform.py:713 AppTools/ToolTransform.py:783
+#: AppTools/ToolTransform.py:833 AppTools/ToolTransform.py:887
+#: AppTools/ToolTransform.py:917 AppTools/ToolTransform.py:953
+msgid "Due of"
+msgstr "Aufgrund von"
+
+#: AppTools/ToolTransform.py:713 AppTools/ToolTransform.py:783
+#: AppTools/ToolTransform.py:833 AppTools/ToolTransform.py:887
+#: AppTools/ToolTransform.py:917 AppTools/ToolTransform.py:953
+msgid "action was not executed."
+msgstr "Aktion wurde nicht ausgeführt."
+
+#: AppTools/ToolTransform.py:725
+msgid "No object selected. Please Select an object to flip"
+msgstr "Kein Objekt ausgewählt. Bitte wählen Sie ein Objekt aus"
+
+#: AppTools/ToolTransform.py:758
+msgid "CNCJob objects can't be mirrored/flipped."
+msgstr "CNCJob-Objekte können nicht gespiegelt / gespiegelt werden."
+
+#: AppTools/ToolTransform.py:793
+msgid "Skew transformation can not be done for 0, 90 and 180 degrees."
+msgstr ""
+"Die Neigungstransformation kann nicht für 0, 90 und 180 Grad durchgeführt "
+"werden."
+
+#: AppTools/ToolTransform.py:798
+msgid "No object selected. Please Select an object to shear/skew!"
+msgstr ""
+"Kein Objekt ausgewählt. Bitte wählen Sie ein Objekt zum Scheren / Schrägen!"
+
+#: AppTools/ToolTransform.py:818
+msgid "CNCJob objects can't be skewed."
+msgstr "CNCJob-Objekte können nicht verzerrt werden."
+
+#: AppTools/ToolTransform.py:830
+msgid "Skew on the"
+msgstr "Schräg auf die"
+
+#: AppTools/ToolTransform.py:830 AppTools/ToolTransform.py:884
+#: AppTools/ToolTransform.py:914
+msgid "axis done"
+msgstr "Achse fertig"
+
+#: AppTools/ToolTransform.py:844
+msgid "No object selected. Please Select an object to scale!"
+msgstr "Kein Objekt ausgewählt. Bitte wählen Sie ein Objekt zum Skalieren!"
+
+#: AppTools/ToolTransform.py:875
+msgid "CNCJob objects can't be scaled."
+msgstr "CNCJob-Objekte können nicht skaliert werden."
+
+#: AppTools/ToolTransform.py:884
+msgid "Scale on the"
+msgstr "Skalieren Sie auf der"
+
+#: AppTools/ToolTransform.py:894
+msgid "No object selected. Please Select an object to offset!"
+msgstr "Kein Objekt ausgewählt. Bitte wählen Sie ein Objekt zum Versetzen aus!"
+
+#: AppTools/ToolTransform.py:901
+msgid "CNCJob objects can't be offset."
+msgstr "CNCJob-Objekte können nicht versetzt werden."
+
+#: AppTools/ToolTransform.py:914
+msgid "Offset on the"
+msgstr "Offset auf dem"
+
+#: AppTools/ToolTransform.py:924
+msgid "No object selected. Please Select an object to buffer!"
+msgstr "Kein Objekt ausgewählt. Bitte wählen Sie ein Objekt zum Puffern aus!"
+
+#: AppTools/ToolTransform.py:927
+msgid "Applying Buffer"
+msgstr "Anwenden von Puffer"
+
+#: AppTools/ToolTransform.py:931
+msgid "CNCJob objects can't be buffered."
+msgstr "CNCJob-Objekte können nicht gepuffert werden."
+
+#: AppTools/ToolTransform.py:948
+msgid "Buffer done"
+msgstr "Puffer fertig"
+
+#: AppTranslation.py:104
+msgid "The application will restart."
+msgstr "Die Anwendung wird neu gestartet."
+
+#: AppTranslation.py:106
+msgid "Are you sure do you want to change the current language to"
+msgstr "Möchten Sie die aktuelle Sprache wirklich in ändern"
+
+#: AppTranslation.py:107
+msgid "Apply Language ..."
+msgstr "Sprache anwenden ..."
+
+#: AppTranslation.py:201 App_Main.py:3047
+msgid ""
+"There are files/objects modified in FlatCAM. \n"
+"Do you want to Save the project?"
+msgstr ""
+"In FlatCAM wurden Dateien / Objekte geändert.\n"
+"Möchten Sie das Projekt speichern?"
+
+#: AppTranslation.py:204 App_Main.py:3050 App_Main.py:6334
+msgid "Save changes"
+msgstr "Änderungen speichern"
+
+#: App_Main.py:477
msgid "FlatCAM is initializing ..."
msgstr "FlatCAM wird initialisiert ..."
-#: FlatCAMApp.py:639
+#: App_Main.py:620
msgid "Could not find the Language files. The App strings are missing."
msgstr ""
"Die Sprachdateien konnten nicht gefunden werden. Die App-Zeichenfolgen "
"fehlen."
-#: FlatCAMApp.py:709
+#: App_Main.py:692
msgid ""
"FlatCAM is initializing ...\n"
"Canvas initialization started."
@@ -35,7 +16929,7 @@ msgstr ""
"FlatCAM wird initialisiert ...\n"
"Die Canvas-Initialisierung wurde gestartet."
-#: FlatCAMApp.py:729
+#: App_Main.py:712
msgid ""
"FlatCAM is initializing ...\n"
"Canvas initialization started.\n"
@@ -45,64 +16939,45 @@ msgstr ""
"Die Canvas-Initialisierung wurde gestartet.\n"
"Canvas-Initialisierung abgeschlossen in"
-#: FlatCAMApp.py:1593 FlatCAMApp.py:7451
+#: App_Main.py:1542 App_Main.py:6445
msgid "New Project - Not saved"
msgstr "Neues Projekt - Nicht gespeichert"
-#: FlatCAMApp.py:1689
+#: App_Main.py:1643
msgid ""
"Found old default preferences files. Please reboot the application to update."
msgstr ""
"Alte Einstellungsdatei gefunden. Bitte starten Sie Flatcam neu um die "
"Einstellungen zu aktualisieren."
-#: FlatCAMApp.py:1740 FlatCAMApp.py:2512 FlatCAMApp.py:2547 FlatCAMApp.py:2594
-#: FlatCAMApp.py:4540 FlatCAMApp.py:7535 FlatCAMApp.py:7572 FlatCAMApp.py:7614
-#: FlatCAMApp.py:7643 FlatCAMApp.py:7684 FlatCAMApp.py:7709 FlatCAMApp.py:7761
-#: FlatCAMApp.py:7796 FlatCAMApp.py:7841 FlatCAMApp.py:7882 FlatCAMApp.py:7923
-#: FlatCAMApp.py:7964 FlatCAMApp.py:8005 FlatCAMApp.py:8049 FlatCAMApp.py:8105
-#: FlatCAMApp.py:8137 FlatCAMApp.py:8169 FlatCAMApp.py:8402 FlatCAMApp.py:8440
-#: FlatCAMApp.py:8483 FlatCAMApp.py:8560 FlatCAMApp.py:8615
-#: FlatCAMBookmark.py:300 FlatCAMBookmark.py:342 FlatCAMDB.py:663
-#: FlatCAMDB.py:709 FlatCAMDB.py:2125 FlatCAMDB.py:2171
-#: flatcamEditors/FlatCAMExcEditor.py:1023
-#: flatcamEditors/FlatCAMExcEditor.py:1091
-#: flatcamEditors/FlatCAMTextEditor.py:223 flatcamGUI/FlatCAMGUI.py:3443
-#: flatcamGUI/FlatCAMGUI.py:3659 flatcamGUI/FlatCAMGUI.py:3874
-#: flatcamObjects/ObjectCollection.py:126 flatcamTools/ToolFilm.py:754
-#: flatcamTools/ToolFilm.py:900 flatcamTools/ToolImage.py:247
-#: flatcamTools/ToolMove.py:269 flatcamTools/ToolPcbWizard.py:301
-#: flatcamTools/ToolPcbWizard.py:324 flatcamTools/ToolQRCode.py:791
-#: flatcamTools/ToolQRCode.py:838
-msgid "Cancelled."
-msgstr "Abgebrochen."
-
-#: FlatCAMApp.py:1756
+#: App_Main.py:1710
msgid "Open Config file failed."
msgstr "Öffnen der Config-Datei ist fehlgeschlagen."
-#: FlatCAMApp.py:1771
+#: App_Main.py:1725
msgid "Open Script file failed."
msgstr "Open Script-Datei ist fehlgeschlagen."
-#: FlatCAMApp.py:1797
+#: App_Main.py:1751
msgid "Open Excellon file failed."
msgstr "Öffnen der Excellon-Datei fehlgeschlagen."
-#: FlatCAMApp.py:1810
+#: App_Main.py:1764
msgid "Open GCode file failed."
msgstr "Öffnen der GCode-Datei fehlgeschlagen."
-#: FlatCAMApp.py:1823
+#: App_Main.py:1777
msgid "Open Gerber file failed."
msgstr "Öffnen der Gerber-Datei fehlgeschlagen."
-#: FlatCAMApp.py:2131
-msgid "Select a Geometry, Gerber or Excellon Object to edit."
+#: App_Main.py:2095
+#, fuzzy
+#| msgid "Select a Geometry, Gerber or Excellon Object to edit."
+msgid "Select a Geometry, Gerber, Excellon or CNCJob Object to edit."
msgstr ""
"Wählen Sie ein zu bearbeitendes Geometrie-, Gerber- oder Excellon-Objekt aus."
-#: FlatCAMApp.py:2146
+#: App_Main.py:2110
msgid ""
"Simultaneous editing of tools geometry in a MultiGeo Geometry is not "
"possible.\n"
@@ -112,199 +16987,93 @@ msgstr ""
"Geometrie ist nicht möglich.\n"
"Bearbeiten Sie jeweils nur eine Geometrie."
-#: FlatCAMApp.py:2204
+#: App_Main.py:2176
msgid "Editor is activated ..."
msgstr "Editor wurde aktiviert ..."
-#: FlatCAMApp.py:2225
+#: App_Main.py:2197
msgid "Do you want to save the edited object?"
msgstr "Möchten Sie das bearbeitete Objekt speichern?"
-#: FlatCAMApp.py:2226 flatcamGUI/FlatCAMGUI.py:2288
-msgid "Close Editor"
-msgstr "Editor schließen"
-
-#: FlatCAMApp.py:2229 FlatCAMApp.py:3518 FlatCAMApp.py:6085 FlatCAMApp.py:7345
-#: FlatCAMTranslation.py:109 FlatCAMTranslation.py:207
-#: flatcamGUI/FlatCAMGUI.py:2519
-#: flatcamGUI/preferences/PreferencesUIManager.py:1122
-msgid "Yes"
-msgstr "Ja"
-
-#: FlatCAMApp.py:2230 FlatCAMApp.py:3519 FlatCAMApp.py:6086 FlatCAMApp.py:7346
-#: FlatCAMTranslation.py:110 FlatCAMTranslation.py:208
-#: flatcamGUI/FlatCAMGUI.py:2520
-#: flatcamGUI/preferences/PreferencesUIManager.py:1123
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:164
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:150
-#: flatcamTools/ToolNCC.py:182 flatcamTools/ToolPaint.py:166
-msgid "No"
-msgstr "Nein"
-
-#: FlatCAMApp.py:2231 FlatCAMApp.py:3520 FlatCAMApp.py:4478 FlatCAMApp.py:5103
-#: FlatCAMApp.py:7347 FlatCAMDB.py:128 FlatCAMDB.py:1689
-#: flatcamGUI/FlatCAMGUI.py:1347
-msgid "Cancel"
-msgstr "Abbrechen"
-
-#: FlatCAMApp.py:2263
+#: App_Main.py:2235
msgid "Object empty after edit."
msgstr "Das Objekt ist nach der Bearbeitung leer."
-#: FlatCAMApp.py:2267 FlatCAMApp.py:2288 FlatCAMApp.py:2310
+#: App_Main.py:2239 App_Main.py:2260 App_Main.py:2282
msgid "Editor exited. Editor content saved."
msgstr "Editor beendet. Editorinhalt gespeichert."
-#: FlatCAMApp.py:2314 FlatCAMApp.py:2337 FlatCAMApp.py:2355
+#: App_Main.py:2286 App_Main.py:2309 App_Main.py:2327
msgid "Select a Gerber, Geometry or Excellon Object to update."
msgstr ""
"Wählen Sie ein Gerber-, Geometrie- oder Excellon-Objekt zum Aktualisieren "
"aus."
-#: FlatCAMApp.py:2317
+#: App_Main.py:2289
msgid "is updated, returning to App..."
msgstr "wurde aktualisiert..."
-#: FlatCAMApp.py:2324
+#: App_Main.py:2296
msgid "Editor exited. Editor content was not saved."
msgstr "Editor beendet. Der Inhalt des Editors wurde nicht gespeichert."
-#: FlatCAMApp.py:2504 FlatCAMApp.py:2508
+#: App_Main.py:2422 App_Main.py:2426
msgid "Import FlatCAM Preferences"
msgstr "FlatCAM-Voreinstellungen importieren"
-#: FlatCAMApp.py:2519
+#: App_Main.py:2437
msgid "Imported Defaults from"
msgstr "Voreinstellungen wurden importiert von"
-#: FlatCAMApp.py:2539 FlatCAMApp.py:2544
+#: App_Main.py:2457 App_Main.py:2462
msgid "Export FlatCAM Preferences"
msgstr "FlatCAM-Voreinstellungen exportieren"
-#: FlatCAMApp.py:2558 FlatCAMApp.py:2626
-#: flatcamGUI/preferences/PreferencesUIManager.py:1018
-msgid "Failed to write defaults to file."
-msgstr "Fehler beim Schreiben der Voreinstellungen in die Datei."
-
-#: FlatCAMApp.py:2564
+#: App_Main.py:2482
msgid "Exported preferences to"
msgstr "Exportierte Einstellungen nach"
-#: FlatCAMApp.py:2584 FlatCAMApp.py:2589
+#: App_Main.py:2502 App_Main.py:2507
msgid "Save to file"
msgstr "Speichern unter"
-#: FlatCAMApp.py:2602 FlatCAMApp.py:8859 FlatCAMApp.py:8907 FlatCAMApp.py:9032
-#: FlatCAMApp.py:9168 FlatCAMBookmark.py:308 FlatCAMDB.py:671 FlatCAMDB.py:2133
-#: flatcamEditors/FlatCAMTextEditor.py:276 flatcamObjects/FlatCAMCNCJob.py:959
-#: flatcamTools/ToolFilm.py:1031 flatcamTools/ToolFilm.py:1212
-#: flatcamTools/ToolSolderPaste.py:1534
-msgid ""
-"Permission denied, saving not possible.\n"
-"Most likely another app is holding the file open and not accessible."
-msgstr ""
-"Berechtigung verweigert, Speichern nicht möglich.\n"
-"Wahrscheinlich hält eine andere App die Datei offen oder ist geschützt."
-
-#: FlatCAMApp.py:2613
+#: App_Main.py:2531
msgid "Could not load the file."
msgstr "Die Datei konnte nicht geladen werden."
-#: FlatCAMApp.py:2629
+#: App_Main.py:2547
msgid "Exported file to"
msgstr "Exportierte Datei nach"
-#: FlatCAMApp.py:2712
+#: App_Main.py:2584
msgid "Failed to open recent files file for writing."
msgstr "Fehler beim Öffnen der zuletzt geöffneten Datei zum Schreiben."
-#: FlatCAMApp.py:2723
+#: App_Main.py:2595
msgid "Failed to open recent projects file for writing."
msgstr "Fehler beim Öffnen der letzten Projektdatei zum Schreiben."
-#: FlatCAMApp.py:2806 FlatCAMApp.py:9377 FlatCAMApp.py:9441 FlatCAMApp.py:9572
-#: FlatCAMApp.py:9637 FlatCAMApp.py:10287
-#: flatcamEditors/FlatCAMGrbEditor.py:4364
-#: flatcamObjects/FlatCAMGeometry.py:1725 flatcamParsers/ParseExcellon.py:897
-#: flatcamTools/ToolPcbWizard.py:432
-msgid "An internal error has occurred. See shell.\n"
-msgstr "Ein interner Fehler ist aufgetreten. Siehe Shell.\n"
-
-#: FlatCAMApp.py:2807
-#, python-brace-format
-msgid ""
-"Object ({kind}) failed because: {error} \n"
-"\n"
-msgstr ""
-"Objekt ({kind}) gescheitert weil: {error} \n"
-"\n"
-
-#: FlatCAMApp.py:2822
-msgid "Converting units to "
-msgstr "Einheiten umrechnen in "
-
-#: FlatCAMApp.py:2931
-msgid "CREATE A NEW FLATCAM TCL SCRIPT"
-msgstr "NEUES FLATCAL TCL SCRIPT ERZEUGEN"
-
-#: FlatCAMApp.py:2932
-msgid "TCL Tutorial is here"
-msgstr "Das TCL Tutorial ist hier"
-
-#: FlatCAMApp.py:2934
-msgid "FlatCAM commands list"
-msgstr "FlatCAM Befehlsliste"
-
-#: FlatCAMApp.py:2935
-msgid ""
-"Type >help< followed by Run Code for a list of FlatCAM Tcl Commands "
-"(displayed in Tcl Shell)."
-msgstr ""
-"Geben Sie >help< gefolgt von Run Code ein, um eine Liste der FlatCAM Tcl-"
-"Befehle anzuzeigen (angezeigt in der Tcl-Shell)."
-
-#: FlatCAMApp.py:2982 FlatCAMApp.py:2988 FlatCAMApp.py:2994 FlatCAMApp.py:3000
-#: FlatCAMApp.py:3006 FlatCAMApp.py:3012
-msgid "created/selected"
-msgstr "erstellt / ausgewählt"
-
-#: FlatCAMApp.py:3027 FlatCAMApp.py:5189 flatcamObjects/FlatCAMObj.py:248
-#: flatcamObjects/FlatCAMObj.py:279 flatcamObjects/FlatCAMObj.py:295
-#: flatcamObjects/FlatCAMObj.py:375 flatcamTools/ToolCopperThieving.py:1481
-#: flatcamTools/ToolFiducials.py:809 flatcamTools/ToolMove.py:229
-#: flatcamTools/ToolQRCode.py:728
-msgid "Plotting"
-msgstr "Plotten"
-
-#: FlatCAMApp.py:3090 flatcamGUI/FlatCAMGUI.py:545
-msgid "About FlatCAM"
-msgstr "Über FlatCAM"
-
-#: FlatCAMApp.py:3116
+#: App_Main.py:2650
msgid "2D Computer-Aided Printed Circuit Board Manufacturing"
msgstr "2D-Computer-Aided-Printed-Circuit-Board-Herstellung"
-#: FlatCAMApp.py:3117
+#: App_Main.py:2651
msgid "Development"
msgstr "Entwicklung"
-#: FlatCAMApp.py:3118
+#: App_Main.py:2652
msgid "DOWNLOAD"
msgstr "HERUNTERLADEN"
-#: FlatCAMApp.py:3119
+#: App_Main.py:2653
msgid "Issue tracker"
msgstr "Problem Tracker"
-#: FlatCAMApp.py:3123 FlatCAMApp.py:3484 flatcamGUI/GUIElements.py:2583
-msgid "Close"
-msgstr "Schließen"
-
-#: FlatCAMApp.py:3138
+#: App_Main.py:2672
msgid "Licensed under the MIT license"
msgstr "Lizenziert unter der MIT-Lizenz"
-#: FlatCAMApp.py:3147
+#: App_Main.py:2681
msgid ""
"Permission is hereby granted, free of charge, to any person obtaining a "
"copy\n"
@@ -359,7 +17128,7 @@ msgstr ""
"ZUSAMMENHANG MIT DER\n"
" SOFTWARE ODER SONSTIGER VERWENDUNG DER SOFTWARE ENTSTANDEN."
-#: FlatCAMApp.py:3169
+#: App_Main.py:2703
msgid ""
"Some of the icons used are from the following sources:
Icons by
Freepik"
@@ -376,59 +17145,59 @@ msgstr ""
"oNline Web FontsoNline Web Fonts"
-#: FlatCAMApp.py:3202
+#: App_Main.py:2736
msgid "Splash"
msgstr "Begrüßungsbildschirm"
-#: FlatCAMApp.py:3208
+#: App_Main.py:2742
msgid "Programmers"
msgstr "Programmierer"
-#: FlatCAMApp.py:3214
+#: App_Main.py:2748
msgid "Translators"
msgstr "Übersetzer"
-#: FlatCAMApp.py:3220
+#: App_Main.py:2754
msgid "License"
msgstr "Lizenz"
-#: FlatCAMApp.py:3226
+#: App_Main.py:2760
msgid "Attributions"
msgstr "Zuschreibungen"
-#: FlatCAMApp.py:3249
+#: App_Main.py:2783
msgid "Programmer"
msgstr "Programmierer"
-#: FlatCAMApp.py:3250
+#: App_Main.py:2784
msgid "Status"
msgstr "Status"
-#: FlatCAMApp.py:3251 FlatCAMApp.py:3331
+#: App_Main.py:2785 App_Main.py:2865
msgid "E-mail"
msgstr "Email"
-#: FlatCAMApp.py:3259
+#: App_Main.py:2788
+msgid "Program Author"
+msgstr "Programmautor"
+
+#: App_Main.py:2793
msgid "BETA Maintainer >= 2019"
msgstr "Betreuer >= 2019"
-#: FlatCAMApp.py:3328
+#: App_Main.py:2862
msgid "Language"
msgstr "Sprache"
-#: FlatCAMApp.py:3329
+#: App_Main.py:2863
msgid "Translator"
msgstr "Übersetzer"
-#: FlatCAMApp.py:3330
+#: App_Main.py:2864
msgid "Corrections"
msgstr "Korrekturen"
-#: FlatCAMApp.py:3455 FlatCAMApp.py:3464 flatcamGUI/FlatCAMGUI.py:527
-msgid "Bookmarks Manager"
-msgstr "Lesezeichen verwalten"
-
-#: FlatCAMApp.py:3475
+#: App_Main.py:3009
msgid ""
"This entry will resolve to another website if:\n"
"\n"
@@ -448,48 +17217,32 @@ msgstr ""
"Wenn Sie keine Informationen zu FlatCAM beta erhalten können\n"
"Verwenden Sie den Link zum YouTube-Kanal im Menü Hilfe."
-#: FlatCAMApp.py:3482
+#: App_Main.py:3016
msgid "Alternative website"
msgstr "Alternative Website"
-#: FlatCAMApp.py:3508 flatcamGUI/FlatCAMGUI.py:4267
-msgid "Application is saving the project. Please wait ..."
-msgstr "Anwendung speichert das Projekt. Warten Sie mal ..."
-
-#: FlatCAMApp.py:3513 FlatCAMTranslation.py:202
-msgid ""
-"There are files/objects modified in FlatCAM. \n"
-"Do you want to Save the project?"
-msgstr ""
-"In FlatCAM wurden Dateien / Objekte geändert.\n"
-"Möchten Sie das Projekt speichern?"
-
-#: FlatCAMApp.py:3516 FlatCAMApp.py:7343 FlatCAMTranslation.py:205
-msgid "Save changes"
-msgstr "Änderungen speichern"
-
-#: FlatCAMApp.py:3778
+#: App_Main.py:3315
msgid "Selected Excellon file extensions registered with FlatCAM."
msgstr ""
"Ausgewählte Excellon-Dateierweiterungen, die bei FlatCAM registriert sind."
-#: FlatCAMApp.py:3800
+#: App_Main.py:3337
msgid "Selected GCode file extensions registered with FlatCAM."
msgstr ""
"Ausgewählte GCode-Dateierweiterungen, die bei FlatCAM registriert sind."
-#: FlatCAMApp.py:3822
+#: App_Main.py:3359
msgid "Selected Gerber file extensions registered with FlatCAM."
msgstr ""
"Ausgewählte Gerber-Dateierweiterungen, die bei FlatCAM registriert sind."
-#: FlatCAMApp.py:4010 FlatCAMApp.py:4069 FlatCAMApp.py:4097
+#: App_Main.py:3547 App_Main.py:3606 App_Main.py:3634
msgid "At least two objects are required for join. Objects currently selected"
msgstr ""
"Zum Verbinden sind mindestens zwei Objekte erforderlich. Derzeit ausgewählte "
"Objekte"
-#: FlatCAMApp.py:4019
+#: App_Main.py:3556
msgid ""
"Failed join. The Geometry objects are of different types.\n"
"At least one is MultiGeo type and the other is SingleGeo type. A possibility "
@@ -507,52 +17260,52 @@ msgstr ""
"und das Ergebnis entspricht möglicherweise nicht dem, was erwartet wurde.\n"
"Überprüfen Sie den generierten GCODE."
-#: FlatCAMApp.py:4031 FlatCAMApp.py:4041
+#: App_Main.py:3568 App_Main.py:3578
msgid "Geometry merging finished"
msgstr "Zusammenführung der Geometrien beendet"
-#: FlatCAMApp.py:4064
+#: App_Main.py:3601
msgid "Failed. Excellon joining works only on Excellon objects."
msgstr ""
"Gescheitert. Die Zusammenfügung von Excellon funktioniert nur bei Excellon-"
"Objekten."
-#: FlatCAMApp.py:4074
+#: App_Main.py:3611
msgid "Excellon merging finished"
msgstr "Excellon-Bearbeitung abgeschlossen"
-#: FlatCAMApp.py:4092
+#: App_Main.py:3629
msgid "Failed. Gerber joining works only on Gerber objects."
msgstr ""
"Gescheitert. Das Zusammenfügen für Gerber-Objekte funktioniert nur bei "
"Gerber-Objekten."
-#: FlatCAMApp.py:4102
+#: App_Main.py:3639
msgid "Gerber merging finished"
msgstr "Erledigt. Gerber-Bearbeitung beendet"
-#: FlatCAMApp.py:4122 FlatCAMApp.py:4159
+#: App_Main.py:3659 App_Main.py:3696
msgid "Failed. Select a Geometry Object and try again."
msgstr ""
"Gescheitert. Wählen Sie ein Geometrieobjekt aus und versuchen Sie es erneut."
-#: FlatCAMApp.py:4126 FlatCAMApp.py:4164
+#: App_Main.py:3663 App_Main.py:3701
msgid "Expected a GeometryObject, got"
msgstr "Erwartet ein GeometryObject, bekam"
-#: FlatCAMApp.py:4141
+#: App_Main.py:3678
msgid "A Geometry object was converted to MultiGeo type."
msgstr "Ein Geometrieobjekt wurde in den MultiGeo-Typ konvertiert."
-#: FlatCAMApp.py:4179
+#: App_Main.py:3716
msgid "A Geometry object was converted to SingleGeo type."
msgstr "Ein Geometrieobjekt wurde in den SingleGeo-Typ konvertiert."
-#: FlatCAMApp.py:4472
+#: App_Main.py:3922
msgid "Toggle Units"
msgstr "Einheiten wechseln"
-#: FlatCAMApp.py:4474
+#: App_Main.py:3924
msgid ""
"Changing the units of the project\n"
"will scale all objects.\n"
@@ -564,32 +17317,68 @@ msgstr ""
"aller Objekte entsprechend skaliert.\n"
"Wollen Sie Fortsetzen?"
-#: FlatCAMApp.py:4477 FlatCAMApp.py:5025 FlatCAMApp.py:5102 FlatCAMApp.py:7728
-#: FlatCAMApp.py:7742 FlatCAMApp.py:8075 FlatCAMApp.py:8085
+#: App_Main.py:3927 App_Main.py:4201 App_Main.py:4278 App_Main.py:6722
+#: App_Main.py:6736 App_Main.py:7069 App_Main.py:7079
msgid "Ok"
msgstr "Ok"
-#: FlatCAMApp.py:4526
+#: App_Main.py:3977
msgid "Converted units to"
msgstr "Einheiten wurden umgerechnet in"
-#: FlatCAMApp.py:4928
+#: App_Main.py:4019
+#, fuzzy
+#| msgid "All plots enabled."
+msgid "Axis enabled."
+msgstr "Alle Diagramme aktiviert."
+
+#: App_Main.py:4031
+#, fuzzy
+#| msgid "All plots disabled."
+msgid "Axis disabled."
+msgstr "Alle Diagramme sind deaktiviert."
+
+#: App_Main.py:4039
+#, fuzzy
+#| msgid "Disabled"
+msgid "HUD disabled."
+msgstr "Deaktiviert"
+
+#: App_Main.py:4041
+#, fuzzy
+#| msgid "Enabled"
+msgid "HUD enabled."
+msgstr "Aktiviert"
+
+#: App_Main.py:4065
+#, fuzzy
+#| msgid "Workspace Settings"
+msgid "Grid enabled."
+msgstr "Arbeitsbereichseinstellungen"
+
+#: App_Main.py:4080
+#, fuzzy
+#| msgid "Workspace Settings"
+msgid "Grid disabled."
+msgstr "Arbeitsbereichseinstellungen"
+
+#: App_Main.py:4101
msgid "Detachable Tabs"
msgstr "Abnehmbare Laschen"
-#: FlatCAMApp.py:5014 flatcamTools/ToolNCC.py:932 flatcamTools/ToolNCC.py:1431
-#: flatcamTools/ToolPaint.py:858 flatcamTools/ToolSolderPaste.py:568
-#: flatcamTools/ToolSolderPaste.py:893
-msgid "Please enter a tool diameter with non-zero value, in Float format."
-msgstr ""
-"Bitte geben Sie einen Werkzeugdurchmesser ungleich Null im Float-Format ein."
+#: App_Main.py:4130
+#, fuzzy
+#| msgid "Workspace Settings"
+msgid "Workspace enabled."
+msgstr "Arbeitsbereichseinstellungen"
-#: FlatCAMApp.py:5018 flatcamTools/ToolNCC.py:936 flatcamTools/ToolPaint.py:862
-#: flatcamTools/ToolSolderPaste.py:572
-msgid "Adding Tool cancelled"
-msgstr "Addierwerkzeug abgebrochen"
+#: App_Main.py:4133
+#, fuzzy
+#| msgid "Workspace Settings"
+msgid "Workspace disabled."
+msgstr "Arbeitsbereichseinstellungen"
-#: FlatCAMApp.py:5021
+#: App_Main.py:4197
msgid ""
"Adding Tool works only when Advanced is checked.\n"
"Go to Preferences -> General - Show Advanced Options."
@@ -598,11 +17387,11 @@ msgstr ""
"ist.\n"
"Gehen Sie zu Einstellungen -> Allgemein - Erweiterte Optionen anzeigen."
-#: FlatCAMApp.py:5097
+#: App_Main.py:4273
msgid "Delete objects"
msgstr "Objekte löschen"
-#: FlatCAMApp.py:5100
+#: App_Main.py:4276
msgid ""
"Are you sure you want to permanently delete\n"
"the selected objects?"
@@ -610,153 +17399,92 @@ msgstr ""
"Möchten Sie die ausgewählten Objekte\n"
"wirklich dauerhaft löschen?"
-#: FlatCAMApp.py:5138
+#: App_Main.py:4314
msgid "Object(s) deleted"
msgstr "Objekt (e) gelöscht"
-#: FlatCAMApp.py:5142 FlatCAMApp.py:5297 flatcamTools/ToolDblSided.py:818
-msgid "Failed. No object(s) selected..."
-msgstr "Gescheitert. Kein Objekt ausgewählt ..."
-
-#: FlatCAMApp.py:5144
+#: App_Main.py:4324
msgid "Save the work in Editor and try again ..."
msgstr "Speichern Sie den Editor und versuchen Sie es erneut ..."
-#: FlatCAMApp.py:5173
+#: App_Main.py:4353
msgid "Object deleted"
msgstr "Objekt (e) gelöscht"
-#: FlatCAMApp.py:5200
+#: App_Main.py:4380
msgid "Click to set the origin ..."
msgstr "Klicken Sie hier, um den Ursprung festzulegen ..."
-#: FlatCAMApp.py:5222
+#: App_Main.py:4402
msgid "Setting Origin..."
msgstr "Ursprung setzten ..."
-#: FlatCAMApp.py:5235 FlatCAMApp.py:5337
+#: App_Main.py:4415 App_Main.py:4517
msgid "Origin set"
msgstr "Ursprung gesetzt"
-#: FlatCAMApp.py:5252
+#: App_Main.py:4432
msgid "Origin coordinates specified but incomplete."
msgstr "Ursprungskoordinaten angegeben, aber unvollständig."
-#: FlatCAMApp.py:5293
+#: App_Main.py:4473
msgid "Moving to Origin..."
msgstr "Umzug zum Ursprung ..."
-#: FlatCAMApp.py:5374
+#: App_Main.py:4554
msgid "Jump to ..."
msgstr "Springen zu ..."
-#: FlatCAMApp.py:5375
+#: App_Main.py:4555
msgid "Enter the coordinates in format X,Y:"
msgstr "Geben Sie die Koordinaten im Format X, Y ein:"
-#: FlatCAMApp.py:5385
+#: App_Main.py:4565
msgid "Wrong coordinates. Enter coordinates in format: X,Y"
msgstr "Falsche Koordinaten. Koordinaten im Format eingeben: X, Y"
-#: FlatCAMApp.py:5463 FlatCAMApp.py:5612
-#: flatcamEditors/FlatCAMExcEditor.py:3624
-#: flatcamEditors/FlatCAMExcEditor.py:3632
-#: flatcamEditors/FlatCAMGeoEditor.py:4349
-#: flatcamEditors/FlatCAMGeoEditor.py:4363
-#: flatcamEditors/FlatCAMGrbEditor.py:1087
-#: flatcamEditors/FlatCAMGrbEditor.py:1204
-#: flatcamEditors/FlatCAMGrbEditor.py:1490
-#: flatcamEditors/FlatCAMGrbEditor.py:1759
-#: flatcamEditors/FlatCAMGrbEditor.py:4622
-#: flatcamEditors/FlatCAMGrbEditor.py:4637 flatcamGUI/FlatCAMGUI.py:3424
-#: flatcamGUI/FlatCAMGUI.py:3436 flatcamTools/ToolAlignObjects.py:393
-#: flatcamTools/ToolAlignObjects.py:415
-msgid "Done."
-msgstr "Fertig."
-
-#: FlatCAMApp.py:5478 FlatCAMApp.py:7724 FlatCAMApp.py:7819 FlatCAMApp.py:7860
-#: FlatCAMApp.py:7901 FlatCAMApp.py:7942 FlatCAMApp.py:7983 FlatCAMApp.py:8027
-#: FlatCAMApp.py:8071 FlatCAMApp.py:8593 FlatCAMApp.py:8597
-#: flatcamTools/ToolProperties.py:116
-msgid "No object selected."
-msgstr "Kein Objekt ausgewählt."
-
-#: FlatCAMApp.py:5497
+#: App_Main.py:4683
msgid "Bottom-Left"
msgstr "Unten links"
-#: FlatCAMApp.py:5498 flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:131
-#: flatcamTools/ToolCalibration.py:159
-msgid "Top-Left"
-msgstr "Oben links"
-
-#: FlatCAMApp.py:5499 flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:132
-#: flatcamTools/ToolCalibration.py:160
-msgid "Bottom-Right"
-msgstr "Unten rechts"
-
-#: FlatCAMApp.py:5500
+#: App_Main.py:4686
msgid "Top-Right"
msgstr "Oben rechts"
-#: FlatCAMApp.py:5501 flatcamGUI/ObjectUI.py:2706
-msgid "Center"
-msgstr "Center"
-
-#: FlatCAMApp.py:5521
+#: App_Main.py:4707
msgid "Locate ..."
msgstr "Lokalisieren ..."
-#: FlatCAMApp.py:5779 FlatCAMApp.py:5856
+#: App_Main.py:4970 App_Main.py:5047
msgid "No object is selected. Select an object and try again."
msgstr ""
"Es ist kein Objekt ausgewählt. Wählen Sie ein Objekt und versuchen Sie es "
"erneut."
-#: FlatCAMApp.py:5882
+#: App_Main.py:5073
msgid ""
"Aborting. The current task will be gracefully closed as soon as possible..."
msgstr ""
"Abbrechen. Die aktuelle Aufgabe wird so schnell wie möglich ordnungsgemäß "
"abgeschlossen ..."
-#: FlatCAMApp.py:5888
+#: App_Main.py:5079
msgid "The current task was gracefully closed on user request..."
msgstr ""
"Die aktuelle Aufgabe wurde auf Benutzeranforderung ordnungsgemäß "
"geschlossen ..."
-#: FlatCAMApp.py:5916 flatcamGUI/preferences/PreferencesUIManager.py:905
-#: flatcamGUI/preferences/PreferencesUIManager.py:949
-#: flatcamGUI/preferences/PreferencesUIManager.py:970
-#: flatcamGUI/preferences/PreferencesUIManager.py:1075
-msgid "Preferences"
-msgstr "Einstellungen"
-
-#: FlatCAMApp.py:5981 FlatCAMApp.py:6009 FlatCAMApp.py:6036 FlatCAMApp.py:6056
-#: FlatCAMDB.py:738 FlatCAMDB.py:913 FlatCAMDB.py:2200 FlatCAMDB.py:2418
-#: flatcamObjects/FlatCAMGeometry.py:890 flatcamTools/ToolNCC.py:3963
-#: flatcamTools/ToolNCC.py:4047 flatcamTools/ToolPaint.py:3553
-#: flatcamTools/ToolPaint.py:3638
-msgid "Tools Database"
-msgstr "Werkzeugdatenbank"
-
-#: FlatCAMApp.py:6033
+#: App_Main.py:5224
msgid "Tools in Tools Database edited but not saved."
msgstr "Werkzeugdatenbank geschlossen ohne zu speichern."
-#: FlatCAMApp.py:6060 flatcamTools/ToolNCC.py:3970
-#: flatcamTools/ToolPaint.py:3560
-msgid "Tool from DB added in Tool Table."
-msgstr "Werkzeug aus Werkzeugdatenbank zur Werkzeugtabelle hinzugefügt."
-
-#: FlatCAMApp.py:6062
+#: App_Main.py:5253
msgid "Adding tool from DB is not allowed for this object."
msgstr ""
"Das Hinzufügen von Werkzeugen aus der Datenbank ist für dieses Objekt nicht "
"zulässig."
-#: FlatCAMApp.py:6080
+#: App_Main.py:5271
msgid ""
"One or more Tools are edited.\n"
"Do you want to update the Tools Database?"
@@ -764,175 +17492,113 @@ msgstr ""
"Ein oder mehrere Werkzeuge wurden geändert.\n"
"Möchten Sie die Werkzeugdatenbank aktualisieren?"
-#: FlatCAMApp.py:6082
+#: App_Main.py:5273
msgid "Save Tools Database"
msgstr "Werkzeugdatenbank speichern"
-#: FlatCAMApp.py:6135
+#: App_Main.py:5326
msgid "No object selected to Flip on Y axis."
msgstr "Kein Objekt ausgewählt, um auf der Y-Achse zu spiegeln."
-#: FlatCAMApp.py:6161
+#: App_Main.py:5352
msgid "Flip on Y axis done."
msgstr "Y-Achse spiegeln fertig."
-#: FlatCAMApp.py:6163 FlatCAMApp.py:6211
-#: flatcamEditors/FlatCAMGrbEditor.py:6059
-msgid "Flip action was not executed."
-msgstr "Flip-Aktion wurde nicht ausgeführt."
-
-#: FlatCAMApp.py:6183
+#: App_Main.py:5374
msgid "No object selected to Flip on X axis."
msgstr "Es wurde kein Objekt zum Spiegeln auf der X-Achse ausgewählt."
-#: FlatCAMApp.py:6209
+#: App_Main.py:5400
msgid "Flip on X axis done."
msgstr "Flip on X axis done."
-#: FlatCAMApp.py:6231
+#: App_Main.py:5422
msgid "No object selected to Rotate."
msgstr "Es wurde kein Objekt zum Drehen ausgewählt."
-#: FlatCAMApp.py:6234 FlatCAMApp.py:6287 FlatCAMApp.py:6326
+#: App_Main.py:5425 App_Main.py:5476 App_Main.py:5513
msgid "Transform"
msgstr "Verwandeln"
-#: FlatCAMApp.py:6234 FlatCAMApp.py:6287 FlatCAMApp.py:6326
+#: App_Main.py:5425 App_Main.py:5476 App_Main.py:5513
msgid "Enter the Angle value:"
msgstr "Geben Sie den Winkelwert ein:"
-#: FlatCAMApp.py:6265
+#: App_Main.py:5455
msgid "Rotation done."
msgstr "Rotation abgeschlossen."
-#: FlatCAMApp.py:6267
+#: App_Main.py:5457
msgid "Rotation movement was not executed."
msgstr "Drehbewegung wurde nicht ausgeführt."
-#: FlatCAMApp.py:6285
+#: App_Main.py:5474
msgid "No object selected to Skew/Shear on X axis."
msgstr "Auf der X-Achse wurde kein Objekt zum Neigen / Schneiden ausgewählt."
-#: FlatCAMApp.py:6307
+#: App_Main.py:5495
msgid "Skew on X axis done."
msgstr "Neigung auf der X-Achse."
-#: FlatCAMApp.py:6324
+#: App_Main.py:5511
msgid "No object selected to Skew/Shear on Y axis."
msgstr "Kein Objekt für Neigung / Schneiden auf der Y-Achse ausgewählt."
-#: FlatCAMApp.py:6346
+#: App_Main.py:5532
msgid "Skew on Y axis done."
msgstr "Neigung auf der Y-Achse."
-#: FlatCAMApp.py:6497 FlatCAMApp.py:6544 flatcamGUI/FlatCAMGUI.py:503
-#: flatcamGUI/FlatCAMGUI.py:1728
-msgid "Select All"
-msgstr "Select All"
-
-#: FlatCAMApp.py:6501 FlatCAMApp.py:6548 flatcamGUI/FlatCAMGUI.py:505
-msgid "Deselect All"
-msgstr "Alle abwählen"
-
-#: FlatCAMApp.py:6564
-msgid "All objects are selected."
-msgstr "Alle Objekte werden ausgewählt."
-
-#: FlatCAMApp.py:6574
-msgid "Objects selection is cleared."
-msgstr "Die Objektauswahl wird gelöscht."
-
-#: FlatCAMApp.py:6594 flatcamGUI/FlatCAMGUI.py:1721
-msgid "Grid On/Off"
-msgstr "Raster ein/aus"
-
-#: FlatCAMApp.py:6606 flatcamEditors/FlatCAMGeoEditor.py:939
-#: flatcamEditors/FlatCAMGrbEditor.py:2583
-#: flatcamEditors/FlatCAMGrbEditor.py:5641 flatcamGUI/ObjectUI.py:1595
-#: flatcamTools/ToolDblSided.py:192 flatcamTools/ToolDblSided.py:425
-#: flatcamTools/ToolNCC.py:294 flatcamTools/ToolNCC.py:631
-#: flatcamTools/ToolPaint.py:277 flatcamTools/ToolPaint.py:676
-#: flatcamTools/ToolSolderPaste.py:122 flatcamTools/ToolSolderPaste.py:597
-#: flatcamTools/ToolTransform.py:478
-msgid "Add"
-msgstr "Hinzufügen"
-
-#: FlatCAMApp.py:6608 flatcamEditors/FlatCAMGrbEditor.py:2588
-#: flatcamEditors/FlatCAMGrbEditor.py:2736 flatcamGUI/FlatCAMGUI.py:751
-#: flatcamGUI/FlatCAMGUI.py:1074 flatcamGUI/FlatCAMGUI.py:2141
-#: flatcamGUI/FlatCAMGUI.py:2284 flatcamGUI/FlatCAMGUI.py:2777
-#: flatcamGUI/ObjectUI.py:1623 flatcamObjects/FlatCAMGeometry.py:505
-#: flatcamTools/ToolNCC.py:316 flatcamTools/ToolNCC.py:637
-#: flatcamTools/ToolPaint.py:299 flatcamTools/ToolPaint.py:682
-#: flatcamTools/ToolSolderPaste.py:128 flatcamTools/ToolSolderPaste.py:600
-msgid "Delete"
-msgstr "Löschen"
-
-#: FlatCAMApp.py:6624
+#: App_Main.py:5611
msgid "New Grid ..."
msgstr "Neues Raster ..."
-#: FlatCAMApp.py:6625
+#: App_Main.py:5612
msgid "Enter a Grid Value:"
msgstr "Geben Sie einen Rasterwert ein:"
-#: FlatCAMApp.py:6633 FlatCAMApp.py:6660
+#: App_Main.py:5620 App_Main.py:5644
msgid "Please enter a grid value with non-zero value, in Float format."
msgstr ""
"Bitte geben Sie im Float-Format einen Rasterwert mit einem Wert ungleich "
"Null ein."
-#: FlatCAMApp.py:6639
+#: App_Main.py:5625
msgid "New Grid added"
msgstr "Neues Raster"
-#: FlatCAMApp.py:6642
+#: App_Main.py:5627
msgid "Grid already exists"
msgstr "Netz existiert bereits"
-#: FlatCAMApp.py:6645
+#: App_Main.py:5629
msgid "Adding New Grid cancelled"
msgstr "Neues Netz wurde abgebrochen"
-#: FlatCAMApp.py:6667
+#: App_Main.py:5650
msgid " Grid Value does not exist"
msgstr " Rasterwert existiert nicht"
-#: FlatCAMApp.py:6670
+#: App_Main.py:5652
msgid "Grid Value deleted"
msgstr "Rasterwert gelöscht"
-#: FlatCAMApp.py:6673
+#: App_Main.py:5654
msgid "Delete Grid value cancelled"
msgstr "Rasterwert löschen abgebrochen"
-#: FlatCAMApp.py:6679
+#: App_Main.py:5660
msgid "Key Shortcut List"
msgstr "Tastenkürzel Liste"
-#: FlatCAMApp.py:6713
+#: App_Main.py:5694
msgid " No object selected to copy it's name"
msgstr " Kein Objekt zum Kopieren des Namens ausgewählt"
-#: FlatCAMApp.py:6717
+#: App_Main.py:5698
msgid "Name copied on clipboard ..."
msgstr "Name in Zwischenablage kopiert ..."
-#: FlatCAMApp.py:6930 flatcamEditors/FlatCAMGrbEditor.py:4554
-msgid "Coordinates copied to clipboard."
-msgstr "Koordinaten in die Zwischenablage kopiert."
-
-#: FlatCAMApp.py:7167 FlatCAMApp.py:7173 FlatCAMApp.py:7179 FlatCAMApp.py:7185
-#: flatcamObjects/ObjectCollection.py:922
-#: flatcamObjects/ObjectCollection.py:928
-#: flatcamObjects/ObjectCollection.py:934
-#: flatcamObjects/ObjectCollection.py:940
-#: flatcamObjects/ObjectCollection.py:946
-#: flatcamObjects/ObjectCollection.py:952
-msgid "selected"
-msgstr "ausgewählt"
-
-#: FlatCAMApp.py:7340
+#: App_Main.py:6331
msgid ""
"There are files/objects opened in FlatCAM.\n"
"Creating a New project will delete them.\n"
@@ -942,17 +17608,12 @@ msgstr ""
"Wenn Sie ein neues Projekt erstellen, werden diese gelöscht.\n"
"Möchten Sie das Projekt speichern?"
-#: FlatCAMApp.py:7361
+#: App_Main.py:6352
msgid "New Project created"
msgstr "Neues Projekt erstellt"
-#: FlatCAMApp.py:7519 FlatCAMApp.py:7523 flatcamGUI/FlatCAMGUI.py:836
-#: flatcamGUI/FlatCAMGUI.py:2544
-msgid "Open Gerber"
-msgstr "Gerber öffnen"
-
-#: FlatCAMApp.py:7528 FlatCAMApp.py:7565 FlatCAMApp.py:7607 FlatCAMApp.py:7677
-#: FlatCAMApp.py:8462 FlatCAMApp.py:9675 FlatCAMApp.py:9737
+#: App_Main.py:6522 App_Main.py:6559 App_Main.py:6601 App_Main.py:6671
+#: App_Main.py:7454 App_Main.py:8667 App_Main.py:8729
msgid ""
"Canvas initialization started.\n"
"Canvas initialization finished in"
@@ -960,351 +17621,296 @@ msgstr ""
"Die Canvas-Initialisierung wurde gestartet.\n"
"Canvas-Initialisierung abgeschlossen in"
-#: FlatCAMApp.py:7530
+#: App_Main.py:6524
msgid "Opening Gerber file."
msgstr "Gerber-Datei öffnen."
-#: FlatCAMApp.py:7557 FlatCAMApp.py:7561 flatcamGUI/FlatCAMGUI.py:838
-#: flatcamGUI/FlatCAMGUI.py:2546
-msgid "Open Excellon"
-msgstr "Excellon öffnen"
-
-#: FlatCAMApp.py:7567
+#: App_Main.py:6561
msgid "Opening Excellon file."
msgstr "Excellon-Datei öffnen."
-#: FlatCAMApp.py:7598 FlatCAMApp.py:7602
+#: App_Main.py:6592 App_Main.py:6596
msgid "Open G-Code"
msgstr "G-Code öffnen"
-#: FlatCAMApp.py:7609
+#: App_Main.py:6603
msgid "Opening G-Code file."
msgstr "Öffnen der G-Code-Datei."
-#: FlatCAMApp.py:7632 FlatCAMApp.py:7635 flatcamGUI/FlatCAMGUI.py:1730
-msgid "Open Project"
-msgstr "Projekt öffnen"
-
-#: FlatCAMApp.py:7668 FlatCAMApp.py:7672
+#: App_Main.py:6662 App_Main.py:6666
msgid "Open HPGL2"
msgstr "HPGL2 öffnen"
-#: FlatCAMApp.py:7679
+#: App_Main.py:6673
msgid "Opening HPGL2 file."
msgstr "HPGL2-Datei öffnen."
-#: FlatCAMApp.py:7702 FlatCAMApp.py:7705
+#: App_Main.py:6696 App_Main.py:6699
msgid "Open Configuration File"
msgstr "Einstellungsdatei öffne"
-#: FlatCAMApp.py:7725 FlatCAMApp.py:8072
+#: App_Main.py:6719 App_Main.py:7066
msgid "Please Select a Geometry object to export"
msgstr "Bitte wählen Sie ein Geometrieobjekt zum Exportieren aus"
-#: FlatCAMApp.py:7739
+#: App_Main.py:6733
msgid "Only Geometry, Gerber and CNCJob objects can be used."
msgstr "Es können nur Geometrie-, Gerber- und CNCJob-Objekte verwendet werden."
-#: FlatCAMApp.py:7752 FlatCAMApp.py:7756 flatcamTools/ToolQRCode.py:829
-#: flatcamTools/ToolQRCode.py:833
-msgid "Export SVG"
-msgstr "SVG exportieren"
-
-#: FlatCAMApp.py:7781
+#: App_Main.py:6775
msgid "Data must be a 3D array with last dimension 3 or 4"
msgstr "Daten müssen ein 3D-Array mit der letzten Dimension 3 oder 4 sein"
-#: FlatCAMApp.py:7787 FlatCAMApp.py:7791
+#: App_Main.py:6781 App_Main.py:6785
msgid "Export PNG Image"
msgstr "PNG-Bild exportieren"
-#: FlatCAMApp.py:7824 FlatCAMApp.py:8032
+#: App_Main.py:6818 App_Main.py:7026
msgid "Failed. Only Gerber objects can be saved as Gerber files..."
msgstr ""
"Fehlgeschlagen. Nur Gerber-Objekte können als Gerber-Dateien gespeichert "
"werden ..."
-#: FlatCAMApp.py:7836
+#: App_Main.py:6830
msgid "Save Gerber source file"
msgstr "Gerber-Quelldatei speichern"
-#: FlatCAMApp.py:7865
+#: App_Main.py:6859
msgid "Failed. Only Script objects can be saved as TCL Script files..."
msgstr ""
"Gescheitert. Nur Skriptobjekte können als TCL-Skriptdateien gespeichert "
"werden ..."
-#: FlatCAMApp.py:7877
+#: App_Main.py:6871
msgid "Save Script source file"
msgstr "Speichern Sie die Quelldatei des Skripts"
-#: FlatCAMApp.py:7906
+#: App_Main.py:6900
msgid "Failed. Only Document objects can be saved as Document files..."
msgstr ""
"Gescheitert. Nur Dokumentobjekte können als Dokumentdateien gespeichert "
"werden ..."
-#: FlatCAMApp.py:7918
+#: App_Main.py:6912
msgid "Save Document source file"
msgstr "Speichern Sie die Quelldatei des Dokuments"
-#: FlatCAMApp.py:7947 FlatCAMApp.py:7988 FlatCAMApp.py:8945
+#: App_Main.py:6941 App_Main.py:6982 App_Main.py:7937
msgid "Failed. Only Excellon objects can be saved as Excellon files..."
msgstr ""
"Fehlgeschlagen. Nur Excellon-Objekte können als Excellon-Dateien gespeichert "
"werden ..."
-#: FlatCAMApp.py:7955 FlatCAMApp.py:7959
+#: App_Main.py:6949 App_Main.py:6953
msgid "Save Excellon source file"
msgstr "Speichern Sie die Excellon-Quelldatei"
-#: FlatCAMApp.py:7996 FlatCAMApp.py:8000
+#: App_Main.py:6990 App_Main.py:6994
msgid "Export Excellon"
msgstr "Excellon exportieren"
-#: FlatCAMApp.py:8040 FlatCAMApp.py:8044
+#: App_Main.py:7034 App_Main.py:7038
msgid "Export Gerber"
msgstr "Gerber exportieren"
-#: FlatCAMApp.py:8082
+#: App_Main.py:7076
msgid "Only Geometry objects can be used."
msgstr "Es können nur Geometrieobjekte verwendet werden."
-#: FlatCAMApp.py:8096 FlatCAMApp.py:8100
+#: App_Main.py:7090 App_Main.py:7094
msgid "Export DXF"
msgstr "DXF exportieren"
-#: FlatCAMApp.py:8125 FlatCAMApp.py:8128
+#: App_Main.py:7119 App_Main.py:7122
msgid "Import SVG"
msgstr "SVG importieren"
-#: FlatCAMApp.py:8156 FlatCAMApp.py:8160
+#: App_Main.py:7150 App_Main.py:7154
msgid "Import DXF"
msgstr "Importieren Sie DXF"
-#: FlatCAMApp.py:8210
+#: App_Main.py:7204
msgid "Viewing the source code of the selected object."
msgstr "Anzeigen des Quellcodes des ausgewählten Objekts."
-#: FlatCAMApp.py:8211 flatcamObjects/FlatCAMCNCJob.py:548
-#: flatcamObjects/FlatCAMScript.py:134
-msgid "Loading..."
-msgstr "Wird geladen..."
-
-#: FlatCAMApp.py:8217 FlatCAMApp.py:8221
+#: App_Main.py:7211 App_Main.py:7215
msgid "Select an Gerber or Excellon file to view it's source file."
msgstr ""
"Wählen Sie eine Gerber- oder Excellon-Datei aus, um die Quelldatei "
"anzuzeigen."
-#: FlatCAMApp.py:8235
+#: App_Main.py:7229
msgid "Source Editor"
msgstr "Quelleditor"
-#: FlatCAMApp.py:8275 FlatCAMApp.py:8282
+#: App_Main.py:7269 App_Main.py:7276
msgid "There is no selected object for which to see it's source file code."
msgstr ""
"Es gibt kein ausgewähltes Objekt, für das man seinen Quelldateien sehen kann."
-#: FlatCAMApp.py:8294
+#: App_Main.py:7288
msgid "Failed to load the source code for the selected object"
msgstr "Fehler beim Laden des Quellcodes für das ausgewählte Objekt"
-#: FlatCAMApp.py:8308 flatcamObjects/FlatCAMCNCJob.py:562
-msgid "Code Editor"
-msgstr "Code-Editor"
-
-#: FlatCAMApp.py:8330
+#: App_Main.py:7324
msgid "Go to Line ..."
msgstr "Gehe zur Linie ..."
-#: FlatCAMApp.py:8331
+#: App_Main.py:7325
msgid "Line:"
msgstr "Linie:"
-#: FlatCAMApp.py:8360
+#: App_Main.py:7352
msgid "New TCL script file created in Code Editor."
msgstr "Neue TCL-Skriptdatei, die im Code-Editor erstellt wurde."
-#: FlatCAMApp.py:8396 FlatCAMApp.py:8398 FlatCAMApp.py:8434 FlatCAMApp.py:8436
+#: App_Main.py:7388 App_Main.py:7390 App_Main.py:7426 App_Main.py:7428
msgid "Open TCL script"
msgstr "Öffnen Sie das TCL-Skript"
-#: FlatCAMApp.py:8464
+#: App_Main.py:7456
msgid "Executing ScriptObject file."
msgstr "Ausführen der ScriptObject-Datei."
-#: FlatCAMApp.py:8472 FlatCAMApp.py:8475
+#: App_Main.py:7464 App_Main.py:7467
msgid "Run TCL script"
msgstr "Führen Sie das TCL-Skript aus"
-#: FlatCAMApp.py:8498
+#: App_Main.py:7490
msgid "TCL script file opened in Code Editor and executed."
msgstr "TCL-Skriptdatei im Code-Editor geöffnet und ausgeführt."
-#: FlatCAMApp.py:8549 FlatCAMApp.py:8555
+#: App_Main.py:7541 App_Main.py:7547
msgid "Save Project As ..."
msgstr "Projekt speichern als ..."
-#: FlatCAMApp.py:8551 flatcamGUI/FlatCAMGUI.py:1134
-#: flatcamGUI/FlatCAMGUI.py:2176
-msgid "Project"
-msgstr "Projekt"
-
-#: FlatCAMApp.py:8590
+#: App_Main.py:7582
msgid "FlatCAM objects print"
msgstr "FlatCAM-Objekte werden gedruckt"
-#: FlatCAMApp.py:8603 FlatCAMApp.py:8610
+#: App_Main.py:7595 App_Main.py:7602
msgid "Save Object as PDF ..."
msgstr "Objekt als PDF speichern ..."
-#: FlatCAMApp.py:8619
+#: App_Main.py:7611
msgid "Printing PDF ... Please wait."
msgstr "PDF wird gedruckt ... Bitte warten."
-#: FlatCAMApp.py:8798
+#: App_Main.py:7790
msgid "PDF file saved to"
msgstr "PDF-Datei gespeichert in"
-#: FlatCAMApp.py:8823
+#: App_Main.py:7815
msgid "Exporting SVG"
msgstr "SVG exportieren"
-#: FlatCAMApp.py:8866
+#: App_Main.py:7858
msgid "SVG file exported to"
msgstr "SVG-Datei exportiert nach"
-#: FlatCAMApp.py:8892
+#: App_Main.py:7884
msgid ""
"Save cancelled because source file is empty. Try to export the Gerber file."
msgstr ""
"Speichern abgebrochen, da die Quelldatei leer ist. Versuchen Sie einen "
"Export der Gerber Datei."
-#: FlatCAMApp.py:9039
+#: App_Main.py:8031
msgid "Excellon file exported to"
msgstr "Excellon-Datei exportiert nach"
-#: FlatCAMApp.py:9048
+#: App_Main.py:8040
msgid "Exporting Excellon"
msgstr "Excellon exportieren"
-#: FlatCAMApp.py:9053 FlatCAMApp.py:9060
+#: App_Main.py:8045 App_Main.py:8052
msgid "Could not export Excellon file."
msgstr "Excellon-Datei konnte nicht exportiert werden."
-#: FlatCAMApp.py:9175
+#: App_Main.py:8167
msgid "Gerber file exported to"
msgstr "Gerberdatei exportiert nach"
-#: FlatCAMApp.py:9183
+#: App_Main.py:8175
msgid "Exporting Gerber"
msgstr "Gerber exportieren"
-#: FlatCAMApp.py:9188 FlatCAMApp.py:9195
+#: App_Main.py:8180 App_Main.py:8187
msgid "Could not export Gerber file."
msgstr "Gerber-Datei konnte nicht exportiert werden."
-#: FlatCAMApp.py:9230
+#: App_Main.py:8222
msgid "DXF file exported to"
msgstr "DXF-Datei exportiert nach"
-#: FlatCAMApp.py:9236
+#: App_Main.py:8228
msgid "Exporting DXF"
msgstr "DXF exportieren"
-#: FlatCAMApp.py:9241 FlatCAMApp.py:9248
+#: App_Main.py:8233 App_Main.py:8240
msgid "Could not export DXF file."
msgstr "DXF-Datei konnte nicht exportiert werden."
-#: FlatCAMApp.py:9272 FlatCAMApp.py:9319 flatcamTools/ToolImage.py:277
-msgid ""
-"Not supported type is picked as parameter. Only Geometry and Gerber are "
-"supported"
-msgstr ""
-"Nicht unterstützte Art wird als Parameter ausgewählt. Nur Geometrie und "
-"Gerber werden unterstützt"
-
-#: FlatCAMApp.py:9282
+#: App_Main.py:8274
msgid "Importing SVG"
msgstr "SVG importieren"
-#: FlatCAMApp.py:9290 FlatCAMApp.py:9336
+#: App_Main.py:8282 App_Main.py:8328
msgid "Import failed."
msgstr "Import fehlgeschlagen."
-#: FlatCAMApp.py:9297 FlatCAMApp.py:9343 FlatCAMApp.py:9407 FlatCAMApp.py:9474
-#: FlatCAMApp.py:9540 FlatCAMApp.py:9605 FlatCAMApp.py:9662
-#: flatcamTools/ToolImage.py:297 flatcamTools/ToolPDF.py:225
-msgid "Opened"
-msgstr "Geöffnet"
-
-#: FlatCAMApp.py:9328
+#: App_Main.py:8320
msgid "Importing DXF"
msgstr "DXF importieren"
-#: FlatCAMApp.py:9369 FlatCAMApp.py:9564 FlatCAMApp.py:9629
+#: App_Main.py:8361 App_Main.py:8556 App_Main.py:8621
msgid "Failed to open file"
msgstr "Datei konnte nicht geöffnet werden"
-#: FlatCAMApp.py:9372 FlatCAMApp.py:9567 FlatCAMApp.py:9632
+#: App_Main.py:8364 App_Main.py:8559 App_Main.py:8624
msgid "Failed to parse file"
msgstr "Datei konnte nicht analysiert werden"
-#: FlatCAMApp.py:9384
+#: App_Main.py:8376
msgid "Object is not Gerber file or empty. Aborting object creation."
msgstr ""
"Objekt ist keine Gerberdatei oder leer. Objekterstellung wird abgebrochen."
-#: FlatCAMApp.py:9389
+#: App_Main.py:8381
msgid "Opening Gerber"
msgstr "Gerber öffnen"
-#: FlatCAMApp.py:9400
+#: App_Main.py:8392
msgid "Open Gerber failed. Probable not a Gerber file."
msgstr "Open Gerber ist fehlgeschlagen. Wahrscheinlich keine Gerber-Datei."
-#: FlatCAMApp.py:9432 flatcamTools/ToolPcbWizard.py:424
-msgid "This is not Excellon file."
-msgstr "Dies ist keine Excellon-Datei."
-
-#: FlatCAMApp.py:9436
+#: App_Main.py:8428
msgid "Cannot open file"
msgstr "Kann Datei nicht öffnen"
-#: FlatCAMApp.py:9454 flatcamTools/ToolPDF.py:275
-#: flatcamTools/ToolPcbWizard.py:445
-msgid "No geometry found in file"
-msgstr "Keine Geometrie in der Datei gefunden"
-
-#: FlatCAMApp.py:9457
+#: App_Main.py:8449
msgid "Opening Excellon."
msgstr "Eröffnung Excellon."
-#: FlatCAMApp.py:9467
+#: App_Main.py:8459
msgid "Open Excellon file failed. Probable not an Excellon file."
msgstr ""
"Die Excellon-Datei konnte nicht geöffnet werden. Wahrscheinlich keine "
"Excellon-Datei."
-#: FlatCAMApp.py:9499
+#: App_Main.py:8491
msgid "Reading GCode file"
msgstr "GCode-Datei wird gelesen"
-#: FlatCAMApp.py:9505
-msgid "Failed to open"
-msgstr "Gescheitert zu öffnen"
-
-#: FlatCAMApp.py:9512
+#: App_Main.py:8504
msgid "This is not GCODE"
msgstr "Dies ist kein GCODE"
-#: FlatCAMApp.py:9517
+#: App_Main.py:8509
msgid "Opening G-Code."
msgstr "G-Code öffnen."
-#: FlatCAMApp.py:9530
+#: App_Main.py:8522
msgid ""
"Failed to create CNCJob Object. Probable not a GCode file. Try to load it "
"from File menu.\n"
@@ -1316,127 +17922,133 @@ msgstr ""
"Der Versuch, ein FlatCAM CNCJob-Objekt aus einer G-Code-Datei zu erstellen, "
"ist während der Verarbeitung fehlgeschlagen"
-#: FlatCAMApp.py:9586
+#: App_Main.py:8578
msgid "Object is not HPGL2 file or empty. Aborting object creation."
msgstr ""
"Objekt ist keine HPGL2-Datei oder leer. Objekterstellung wird abgebrochen."
-#: FlatCAMApp.py:9591
+#: App_Main.py:8583
msgid "Opening HPGL2"
msgstr "HPGL2 öffnen"
-#: FlatCAMApp.py:9598
+#: App_Main.py:8590
msgid " Open HPGL2 failed. Probable not a HPGL2 file."
msgstr " HPGL2 öffnen ist fehlgeschlagen. Wahrscheinlich keine HPGL2-Datei."
-#: FlatCAMApp.py:9624
+#: App_Main.py:8616
msgid "TCL script file opened in Code Editor."
msgstr "TCL-Skriptdatei im Code-Editor geöffnet."
-#: FlatCAMApp.py:9644
+#: App_Main.py:8636
msgid "Opening TCL Script..."
msgstr "TCL-Skript wird geöffnet ..."
-#: FlatCAMApp.py:9655
+#: App_Main.py:8647
msgid "Failed to open TCL Script."
msgstr "TCL-Skript konnte nicht geöffnet werden."
-#: FlatCAMApp.py:9677
+#: App_Main.py:8669
msgid "Opening FlatCAM Config file."
msgstr "Öffnen der FlatCAM Config-Datei."
-#: FlatCAMApp.py:9705
+#: App_Main.py:8697
msgid "Failed to open config file"
msgstr "Fehler beim Öffnen der Konfigurationsdatei"
-#: FlatCAMApp.py:9734
+#: App_Main.py:8726
msgid "Loading Project ... Please Wait ..."
msgstr "Projekt wird geladen ... Bitte warten ..."
-#: FlatCAMApp.py:9739
+#: App_Main.py:8731
msgid "Opening FlatCAM Project file."
msgstr "Öffnen der FlatCAM-Projektdatei."
-#: FlatCAMApp.py:9754 FlatCAMApp.py:9758 FlatCAMApp.py:9775
+#: App_Main.py:8746 App_Main.py:8750 App_Main.py:8767
msgid "Failed to open project file"
msgstr "Projektdatei konnte nicht geöffnet werden"
-#: FlatCAMApp.py:9812
+#: App_Main.py:8804
msgid "Loading Project ... restoring"
msgstr "Projekt wird geladen ... wird wiederhergestellt"
-#: FlatCAMApp.py:9822
+#: App_Main.py:8814
msgid "Project loaded from"
msgstr "Projekt geladen von"
-#: FlatCAMApp.py:9846
+#: App_Main.py:8840
msgid "Redrawing all objects"
msgstr "Alle Objekte neu zeichnen"
-#: FlatCAMApp.py:9934
+#: App_Main.py:8928
msgid "Failed to load recent item list."
msgstr "Fehler beim Laden der letzten Elementliste."
-#: FlatCAMApp.py:9941
+#: App_Main.py:8935
msgid "Failed to parse recent item list."
msgstr "Liste der letzten Artikel konnte nicht analysiert werden."
-#: FlatCAMApp.py:9951
+#: App_Main.py:8945
msgid "Failed to load recent projects item list."
msgstr "Fehler beim Laden der Artikelliste der letzten Projekte."
-#: FlatCAMApp.py:9958
+#: App_Main.py:8952
msgid "Failed to parse recent project item list."
msgstr ""
"Fehler beim Analysieren der Liste der zuletzt verwendeten Projektelemente."
-#: FlatCAMApp.py:10019
+#: App_Main.py:9013
msgid "Clear Recent projects"
msgstr "Letzte Projekte löschen"
-#: FlatCAMApp.py:10043
+#: App_Main.py:9037
msgid "Clear Recent files"
msgstr "Letzte Dateien löschen"
-#: FlatCAMApp.py:10065 flatcamGUI/FlatCAMGUI.py:1363
-msgid "
Shortcut Key List"
-msgstr "
Liste der Tastenkombinationen "
-
-#: FlatCAMApp.py:10145
+#: App_Main.py:9139
msgid "Selected Tab - Choose an Item from Project Tab"
msgstr ""
"Ausgewählte Registerkarte - Wählen Sie ein Element auf der Registerkarte "
"\"Projekt\" aus"
-#: FlatCAMApp.py:10146
+#: App_Main.py:9140
msgid "Details"
msgstr "Einzelheiten"
-#: FlatCAMApp.py:10148
+#: App_Main.py:9142
msgid "The normal flow when working in FlatCAM is the following:"
msgstr "Der normale Ablauf beim Arbeiten in FlatCAM ist der folgende:"
-#: FlatCAMApp.py:10149
+#: App_Main.py:9143
+#, fuzzy
+#| msgid ""
+#| "Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into "
+#| "FlatCAM using either the toolbars, key shortcuts or even dragging and "
+#| "dropping the files on the GUI."
msgid ""
"Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into "
"FlatCAM using either the toolbars, key shortcuts or even dragging and "
-"dropping the files on the GUI."
+"dropping the files on the AppGUI."
msgstr ""
"Laden / Importieren Sie eine Gerber-, Excellon-, Gcode-, DXF-, Rasterbild- "
"oder SVG-Datei mithilfe der Symbolleisten, Tastenkombinationen oder durch "
"Ziehen und Ablegen der Dateien auf der GUI in FlatCAM."
-#: FlatCAMApp.py:10152
+#: App_Main.py:9146
+#, fuzzy
+#| msgid ""
+#| "You can also load a FlatCAM project by double clicking on the project "
+#| "file, drag and drop of the file into the FLATCAM GUI or through the menu "
+#| "(or toolbar) actions offered within the app."
msgid ""
"You can also load a FlatCAM project by double clicking on the project file, "
-"drag and drop of the file into the FLATCAM GUI or through the menu (or "
+"drag and drop of the file into the FLATCAM AppGUI or through the menu (or "
"toolbar) actions offered within the app."
msgstr ""
"Sie können ein FlatCAM-Projekt auch laden, indem Sie auf die Projektdatei "
"doppelklicken, sie per Drag & Drop in die FLATCAM-Benutzeroberfläche ziehen "
"oder über die in der App angebotenen Menü- (oder Symbolleisten-) Aktionen."
-#: FlatCAMApp.py:10155
+#: App_Main.py:9149
msgid ""
"Once an object is available in the Project Tab, by selecting it and then "
"focusing on SELECTED TAB (more simpler is to double click the object name in "
@@ -1449,7 +18061,7 @@ msgstr ""
"AUSGEWÄHLTES TAB mit den Objekteigenschaften entsprechend der Art "
"aktualisiert: Gerber, Excellon-, Geometrie- oder CNCJob-Objekt."
-#: FlatCAMApp.py:10159
+#: App_Main.py:9153
msgid ""
"If the selection of the object is done on the canvas by single click "
"instead, and the SELECTED TAB is in focus, again the object properties will "
@@ -1464,7 +18076,7 @@ msgstr ""
"doppelklicken, um das Ausgewählte Registerkarte zu öffnen und es zu füllen, "
"selbst wenn es unscharf war."
-#: FlatCAMApp.py:10163
+#: App_Main.py:9157
msgid ""
"You can change the parameters in this screen and the flow direction is like "
"this:"
@@ -1472,7 +18084,7 @@ msgstr ""
"Sie können die Parameter in diesem Bildschirm ändern und die Flussrichtung "
"ist wie folgt:"
-#: FlatCAMApp.py:10164
+#: App_Main.py:9158
msgid ""
"Gerber/Excellon Object --> Change Parameter --> Generate Geometry --> "
"Geometry Object --> Add tools (change param in Selected Tab) --> Generate "
@@ -1485,7 +18097,7 @@ msgstr ""
"überprüfen (über CNC bearbeiten) Code) und / oder GCode anhängen / "
"voranstellen (ebenfalls in Ausgewählte Registerkarte) -> GCode speichern."
-#: FlatCAMApp.py:10168
+#: App_Main.py:9162
msgid ""
"A list of key shortcuts is available through an menu entry in Help --> "
"Shortcuts List or through its own key shortcut:
F3."
@@ -1494,33 +18106,33 @@ msgstr ""
"der Hilfe -> Liste der Tastenkombinationen oder über eine eigene "
"Tastenkombination:
F3."
-#: FlatCAMApp.py:10232
+#: App_Main.py:9226
msgid "Failed checking for latest version. Could not connect."
msgstr ""
"Fehler bei der Suche nach der neuesten Version. Konnte keine Verbindung "
"herstellen."
-#: FlatCAMApp.py:10239
+#: App_Main.py:9233
msgid "Could not parse information about latest version."
msgstr "Informationen zur neuesten Version konnten nicht analysiert werden."
-#: FlatCAMApp.py:10249
+#: App_Main.py:9243
msgid "FlatCAM is up to date!"
msgstr "FlatCAM ist auf dem neuesten Version!"
-#: FlatCAMApp.py:10254
+#: App_Main.py:9248
msgid "Newer Version Available"
msgstr "Neuere Version verfügbar"
-#: FlatCAMApp.py:10256
+#: App_Main.py:9250
msgid "There is a newer version of FlatCAM available for download:"
msgstr "Es gibt eine neuere Version von FlatCAM zum Download:"
-#: FlatCAMApp.py:10260
+#: App_Main.py:9254
msgid "info"
msgstr "Info"
-#: FlatCAMApp.py:10288
+#: App_Main.py:9282
msgid ""
"OpenGL canvas initialization failed. HW or HW configuration not supported."
"Change the graphic engine to Legacy(2D) in Edit -> Preferences -> General "
@@ -1532,129 +18144,75 @@ msgstr ""
"Einstellungen -> Registerkarte Allgemein in Legacy (2D).\n"
"\n"
-#: FlatCAMApp.py:10367
+#: App_Main.py:9360
msgid "All plots disabled."
msgstr "Alle Diagramme sind deaktiviert."
-#: FlatCAMApp.py:10374
+#: App_Main.py:9367
msgid "All non selected plots disabled."
msgstr "Alle nicht ausgewählten Diagramme sind deaktiviert."
-#: FlatCAMApp.py:10381
+#: App_Main.py:9374
msgid "All plots enabled."
msgstr "Alle Diagramme aktiviert."
-#: FlatCAMApp.py:10387
+#: App_Main.py:9380
msgid "Selected plots enabled..."
msgstr "Ausgewählte Diagramme aktiviert ..."
-#: FlatCAMApp.py:10395
+#: App_Main.py:9388
msgid "Selected plots disabled..."
msgstr "Ausgewählte Diagramme deaktiviert ..."
-#: FlatCAMApp.py:10428
+#: App_Main.py:9421
msgid "Enabling plots ..."
msgstr "Diagramm aktivieren..."
-#: FlatCAMApp.py:10480
+#: App_Main.py:9470
msgid "Disabling plots ..."
msgstr "Diagramm deaktivieren..."
-#: FlatCAMApp.py:10503
+#: App_Main.py:9493
msgid "Working ..."
msgstr "Arbeiten ..."
-#: FlatCAMApp.py:10558 flatcamGUI/FlatCAMGUI.py:703
-msgid "Red"
-msgstr "Rote"
-
-#: FlatCAMApp.py:10560 flatcamGUI/FlatCAMGUI.py:706
-msgid "Blue"
-msgstr "Blau"
-
-#: FlatCAMApp.py:10563 flatcamGUI/FlatCAMGUI.py:709
-msgid "Yellow"
-msgstr "Gelb"
-
-#: FlatCAMApp.py:10565 flatcamGUI/FlatCAMGUI.py:712
-msgid "Green"
-msgstr "Grün"
-
-#: FlatCAMApp.py:10567 flatcamGUI/FlatCAMGUI.py:715
-msgid "Purple"
-msgstr "Lila"
-
-#: FlatCAMApp.py:10569 flatcamGUI/FlatCAMGUI.py:718
-msgid "Brown"
-msgstr "Braun"
-
-#: FlatCAMApp.py:10571 FlatCAMApp.py:10627 flatcamGUI/FlatCAMGUI.py:721
-msgid "White"
-msgstr "Weiß"
-
-#: FlatCAMApp.py:10573 flatcamGUI/FlatCAMGUI.py:724
-msgid "Black"
-msgstr "Schwarz"
-
-#: FlatCAMApp.py:10576 flatcamGUI/FlatCAMGUI.py:729
-msgid "Custom"
-msgstr "Maßgeschn."
-
-#: FlatCAMApp.py:10586 flatcamGUI/FlatCAMGUI.py:737
-msgid "Default"
-msgstr "Standard"
-
-#: FlatCAMApp.py:10610 flatcamGUI/FlatCAMGUI.py:734
-msgid "Opacity"
-msgstr "Opazität"
-
-#: FlatCAMApp.py:10612
+#: App_Main.py:9602
msgid "Set alpha level ..."
msgstr "Alpha-Level einstellen ..."
-#: FlatCAMApp.py:10612
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:220
-#: flatcamTools/ToolExtractDrills.py:164 flatcamTools/ToolExtractDrills.py:285
-#: flatcamTools/ToolPunchGerber.py:192 flatcamTools/ToolPunchGerber.py:308
-#: flatcamTools/ToolTransform.py:357
-msgid "Value"
-msgstr "Wert"
-
-#: FlatCAMApp.py:10666
+#: App_Main.py:9656
msgid "Saving FlatCAM Project"
msgstr "FlatCAM-Projekt speichern"
-#: FlatCAMApp.py:10687 FlatCAMApp.py:10723
+#: App_Main.py:9677 App_Main.py:9713
msgid "Project saved to"
msgstr "Projekt gespeichert in"
-#: FlatCAMApp.py:10694
+#: App_Main.py:9684
msgid "The object is used by another application."
msgstr "Das Objekt wird von einer anderen Anwendung verwendet."
-#: FlatCAMApp.py:10708
+#: App_Main.py:9698
msgid "Failed to verify project file"
msgstr "Fehler beim Überprüfen der Projektdatei"
-#: FlatCAMApp.py:10708 FlatCAMApp.py:10716 FlatCAMApp.py:10726
+#: App_Main.py:9698 App_Main.py:9706 App_Main.py:9716
msgid "Retry to save it."
msgstr "Versuchen Sie erneut, es zu speichern."
-#: FlatCAMApp.py:10716 FlatCAMApp.py:10726
+#: App_Main.py:9706 App_Main.py:9716
msgid "Failed to parse saved project file"
msgstr "Fehler beim Parsen der Projektdatei"
-#: FlatCAMBookmark.py:57 FlatCAMBookmark.py:84
+#: Bookmark.py:57 Bookmark.py:84
msgid "Title"
msgstr "Titel"
-#: FlatCAMBookmark.py:58 FlatCAMBookmark.py:88
+#: Bookmark.py:58 Bookmark.py:88
msgid "Web Link"
msgstr "Weblink"
-#: FlatCAMBookmark.py:62
+#: Bookmark.py:62
msgid ""
"Index.\n"
"The rows in gray color will populate the Bookmarks menu.\n"
@@ -1664,7 +18222,7 @@ msgstr ""
"Die grauen Zeilen füllen das Lesezeichen-Menü.\n"
"Die Anzahl der grauen Zeilen wird in den Einstellungen festgelegt."
-#: FlatCAMBookmark.py:66
+#: Bookmark.py:66
msgid ""
"Description of the link that is set as an menu action.\n"
"Try to keep it short because it is installed as a menu item."
@@ -1672,1106 +18230,186 @@ msgstr ""
"Beschreibung des Links, der als Menüaktion festgelegt wird.\n"
"Versuchen Sie es kurz zu halten, da es als Menüelement installiert ist."
-#: FlatCAMBookmark.py:69
+#: Bookmark.py:69
msgid "Web Link. E.g: https://your_website.org "
msgstr "Weblink. ZB: https://your_website.org "
-#: FlatCAMBookmark.py:78
+#: Bookmark.py:78
msgid "New Bookmark"
msgstr "Neues Lesezeichen"
-#: FlatCAMBookmark.py:97
+#: Bookmark.py:97
msgid "Add Entry"
msgstr "Eintrag hinzufügen"
-#: FlatCAMBookmark.py:98
+#: Bookmark.py:98
msgid "Remove Entry"
msgstr "Eintrag entfernen"
-#: FlatCAMBookmark.py:99
+#: Bookmark.py:99
msgid "Export List"
msgstr "Liste exportieren"
-#: FlatCAMBookmark.py:100
+#: Bookmark.py:100
msgid "Import List"
msgstr "Liste importieren"
-#: FlatCAMBookmark.py:190
+#: Bookmark.py:190
msgid "Title entry is empty."
msgstr "Kein Titel eingegeben."
-#: FlatCAMBookmark.py:199
+#: Bookmark.py:199
msgid "Web link entry is empty."
msgstr "Keine Internetadresse angegeben."
-#: FlatCAMBookmark.py:207
+#: Bookmark.py:207
msgid "Either the Title or the Weblink already in the table."
msgstr ""
"Entweder Titel oder Internetadresse sind bereits in der Tabelle vorhanden."
-#: FlatCAMBookmark.py:227
+#: Bookmark.py:227
msgid "Bookmark added."
msgstr "Lesezeichen verwalten."
-#: FlatCAMBookmark.py:244
+#: Bookmark.py:244
msgid "This bookmark can not be removed"
msgstr "Dieses Lesezeichen kann nicht entfernt werden"
-#: FlatCAMBookmark.py:275
+#: Bookmark.py:275
msgid "Bookmark removed."
msgstr "Lesezeichen entfernt."
-#: FlatCAMBookmark.py:290
+#: Bookmark.py:290
msgid "Export FlatCAM Bookmarks"
msgstr "Export der FlatCAM-Lesezeichen"
-#: FlatCAMBookmark.py:293 flatcamGUI/FlatCAMGUI.py:524
-msgid "Bookmarks"
-msgstr "Lesezeichen"
-
-#: FlatCAMBookmark.py:319 FlatCAMBookmark.py:349
+#: Bookmark.py:319 Bookmark.py:349
msgid "Could not load bookmarks file."
msgstr "Die Lesezeichen-Datei konnte nicht geladen werden."
-#: FlatCAMBookmark.py:329
+#: Bookmark.py:329
msgid "Failed to write bookmarks to file."
msgstr "Fehler beim Schreiben der Lesezeichen in die Datei."
-#: FlatCAMBookmark.py:331
+#: Bookmark.py:331
msgid "Exported bookmarks to"
msgstr "Exportierte Lesezeichen nach"
-#: FlatCAMBookmark.py:337
+#: Bookmark.py:337
msgid "Import FlatCAM Bookmarks"
msgstr "Importieren Sie FlatCAM-Lesezeichen"
-#: FlatCAMBookmark.py:356
+#: Bookmark.py:356
msgid "Imported Bookmarks from"
msgstr "Importierte Lesezeichen von"
-#: FlatCAMCommon.py:29
+#: Common.py:37
msgid "The user requested a graceful exit of the current task."
msgstr ""
"Der Benutzer hat einen ordnungsgemäßen Abschluss der aktuellen Aufgabe "
"angefordert."
-#: FlatCAMDB.py:86
-msgid "Add Geometry Tool in DB"
-msgstr "Geometriewerkzeug in DB hinzufügen"
+#: Common.py:250
+msgid "Click the end point of the area."
+msgstr "Klicken Sie auf den Endpunkt des Bereichs."
-#: FlatCAMDB.py:88 FlatCAMDB.py:1643
-msgid ""
-"Add a new tool in the Tools Database.\n"
-"It will be used in the Geometry UI.\n"
-"You can edit it after it is added."
+#: Common.py:386
+msgid "Exclusion areas added. Checking overlap with the object geometry ..."
msgstr ""
-"Fügen Sie der Werkzeugdatenbank ein neues Werkzeug hinzu\n"
-"Es wird in der Geometrie-Benutzeroberfläche verwendet.\n"
-"Danach können Sie es modifizieren."
-#: FlatCAMDB.py:102 FlatCAMDB.py:1657
-msgid "Delete Tool from DB"
-msgstr "Werkzeug aus DB löschen"
-
-#: FlatCAMDB.py:104 FlatCAMDB.py:1659
-msgid "Remove a selection of tools in the Tools Database."
-msgstr "Eine Auswahl von Werkzeugen aus der Werkzeugdatenbank entfernen."
-
-#: FlatCAMDB.py:108 FlatCAMDB.py:1663
-msgid "Export DB"
-msgstr "DB exportieren"
-
-#: FlatCAMDB.py:110 FlatCAMDB.py:1665
-msgid "Save the Tools Database to a custom text file."
-msgstr "Werkzeugdatenbank als Textdatei speichern."
-
-#: FlatCAMDB.py:114 FlatCAMDB.py:1669
-msgid "Import DB"
-msgstr "Importieren Sie DB"
-
-#: FlatCAMDB.py:116 FlatCAMDB.py:1671
-msgid "Load the Tools Database information's from a custom text file."
-msgstr "Werkzeugdatenbank aus einer Textdatei importieren."
-
-#: FlatCAMDB.py:120 FlatCAMDB.py:1681
-msgid "Add Tool from Tools DB"
-msgstr "Werkzeug aus Werkzeugdatenbank hinzufügen"
-
-#: FlatCAMDB.py:122 FlatCAMDB.py:1683
-msgid ""
-"Add a new tool in the Tools Table of the\n"
-"active Geometry object after selecting a tool\n"
-"in the Tools Database."
+#: Common.py:392
+msgid "Failed. Exclusion areas intersects the object geometry ..."
msgstr ""
-"Fügen Sie ein neues Werkzeug in die Werkzeugtabelle der\n"
-"aktiven Geometrie hinzu, nachdem Sie das Werkzeug in\n"
-"der Werkzeugdatenbank ausgewählt haben."
-#: FlatCAMDB.py:158 FlatCAMDB.py:833 FlatCAMDB.py:1087
-msgid "Tool Name"
-msgstr "Werkzeugname"
-
-#: FlatCAMDB.py:159 FlatCAMDB.py:835 FlatCAMDB.py:1100
-#: flatcamEditors/FlatCAMExcEditor.py:1604 flatcamGUI/ObjectUI.py:1345
-#: flatcamGUI/ObjectUI.py:1583
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:132
-#: flatcamTools/ToolNCC.py:278 flatcamTools/ToolNCC.py:287
-#: flatcamTools/ToolPaint.py:261
-msgid "Tool Dia"
-msgstr "Werkzeugdurchm"
-
-#: FlatCAMDB.py:160 FlatCAMDB.py:837 FlatCAMDB.py:1281
-#: flatcamGUI/ObjectUI.py:1558
-msgid "Tool Offset"
-msgstr "Werkzeugversatz"
-
-#: FlatCAMDB.py:161 FlatCAMDB.py:839 FlatCAMDB.py:1298
-msgid "Custom Offset"
-msgstr "Selbstdefinierter Werkzeugversatz"
-
-#: FlatCAMDB.py:162 FlatCAMDB.py:841 FlatCAMDB.py:1265
-#: flatcamGUI/ObjectUI.py:309
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:67
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:53
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:62
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:72
-#: flatcamTools/ToolNCC.py:213 flatcamTools/ToolNCC.py:227
-#: flatcamTools/ToolPaint.py:196
-msgid "Tool Type"
-msgstr "Werkzeugtyp"
-
-#: FlatCAMDB.py:163 FlatCAMDB.py:843 FlatCAMDB.py:1113
-msgid "Tool Shape"
-msgstr "Werkzeugform"
-
-#: FlatCAMDB.py:164 FlatCAMDB.py:846 FlatCAMDB.py:1129
-#: flatcamGUI/ObjectUI.py:350 flatcamGUI/ObjectUI.py:900
-#: flatcamGUI/ObjectUI.py:1703 flatcamGUI/ObjectUI.py:2336
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:93
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:48
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:107
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:78
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:58
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:105
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:113
-#: flatcamTools/ToolCalculators.py:114 flatcamTools/ToolCutOut.py:138
-#: flatcamTools/ToolNCC.py:260 flatcamTools/ToolNCC.py:268
-#: flatcamTools/ToolPaint.py:243
-msgid "Cut Z"
-msgstr "Schnitttiefe Z"
-
-#: FlatCAMDB.py:165 FlatCAMDB.py:848 FlatCAMDB.py:1143
-msgid "MultiDepth"
-msgstr "Mehrfache Durchgänge"
-
-# Abbrev. unclear: Depth Per Pass?
-# Perhaps better not translate
-#: FlatCAMDB.py:166 FlatCAMDB.py:850 FlatCAMDB.py:1156
-msgid "DPP"
-msgstr "DPP"
-
-#: FlatCAMDB.py:167 FlatCAMDB.py:852 FlatCAMDB.py:1312
-msgid "V-Dia"
-msgstr "V-Durchm."
-
-#: FlatCAMDB.py:168 FlatCAMDB.py:854 FlatCAMDB.py:1326
-msgid "V-Angle"
-msgstr "Winkel der V-Form"
-
-#: FlatCAMDB.py:169 FlatCAMDB.py:856 FlatCAMDB.py:1170
-#: flatcamGUI/ObjectUI.py:946 flatcamGUI/ObjectUI.py:1750
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:134
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:101
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:61
-#: flatcamObjects/FlatCAMExcellon.py:1316
-#: flatcamObjects/FlatCAMGeometry.py:1606 flatcamTools/ToolCalibration.py:74
-msgid "Travel Z"
-msgstr "Bewegungshöhe Z (Travel)"
-
-# I think this is FeedRate XY
-#: FlatCAMDB.py:170 FlatCAMDB.py:858
-msgid "FR"
-msgstr "Vorschub (XY)"
-
-#: FlatCAMDB.py:171 FlatCAMDB.py:860
-msgid "FR Z"
-msgstr "Vorschub (Z)"
-
-#: FlatCAMDB.py:172 FlatCAMDB.py:862 FlatCAMDB.py:1340
-msgid "FR Rapids"
-msgstr "Vorschub ohne Last"
-
-#: FlatCAMDB.py:173 FlatCAMDB.py:864 FlatCAMDB.py:1213
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:222
-msgid "Spindle Speed"
-msgstr "Drehgeschwindigkeit"
-
-#: FlatCAMDB.py:174 FlatCAMDB.py:866 FlatCAMDB.py:1228
-#: flatcamGUI/ObjectUI.py:1064 flatcamGUI/ObjectUI.py:1857
-msgid "Dwell"
-msgstr "Warten zum Beschleunigen"
-
-#: FlatCAMDB.py:175 FlatCAMDB.py:868 FlatCAMDB.py:1241
-msgid "Dwelltime"
-msgstr "Wartezeit zum Beschleunigen"
-
-#: FlatCAMDB.py:176 FlatCAMDB.py:870 flatcamGUI/ObjectUI.py:2014
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:257
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:254
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:237
-#: flatcamTools/ToolSolderPaste.py:335
-msgid "Preprocessor"
-msgstr "Postprozessor"
-
-#: FlatCAMDB.py:177 FlatCAMDB.py:872 FlatCAMDB.py:1356
-msgid "ExtraCut"
-msgstr "Zusätzlicher Schnitt"
-
-#: FlatCAMDB.py:178 FlatCAMDB.py:874 FlatCAMDB.py:1371
-msgid "E-Cut Length"
-msgstr "Extra Schnittlänge"
-
-#: FlatCAMDB.py:179 FlatCAMDB.py:876
-msgid "Toolchange"
-msgstr "Werkzeugwechsel"
-
-#: FlatCAMDB.py:180 FlatCAMDB.py:878
-msgid "Toolchange XY"
-msgstr "Werkzeugwechsel XY"
-
-#: FlatCAMDB.py:181 FlatCAMDB.py:880
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:160
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:131
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:98
-#: flatcamTools/ToolCalibration.py:111
-msgid "Toolchange Z"
-msgstr "Werkzeugwechsel Z"
-
-#: FlatCAMDB.py:182 FlatCAMDB.py:882 flatcamGUI/ObjectUI.py:1193
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:69
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:54
-msgid "Start Z"
-msgstr "Start Z"
-
-#: FlatCAMDB.py:183 FlatCAMDB.py:885
-msgid "End Z"
-msgstr "Ende Z"
-
-#: FlatCAMDB.py:187
-msgid "Tool Index."
-msgstr "Werkzeugverzeichnis."
-
-#: FlatCAMDB.py:189 FlatCAMDB.py:1089
-msgid ""
-"Tool name.\n"
-"This is not used in the app, it's function\n"
-"is to serve as a note for the user."
-msgstr ""
-"Werkzeugname\n"
-"Wird in der App nicht verwendet,\n"
-"sondern dient als Kommentar für den Nutzer."
-
-#: FlatCAMDB.py:193 FlatCAMDB.py:1102
-msgid "Tool Diameter."
-msgstr "Werkzeugdurchmesser."
-
-#: FlatCAMDB.py:195 FlatCAMDB.py:1283
-msgid ""
-"Tool Offset.\n"
-"Can be of a few types:\n"
-"Path = zero offset\n"
-"In = offset inside by half of tool diameter\n"
-"Out = offset outside by half of tool diameter\n"
-"Custom = custom offset using the Custom Offset value"
-msgstr ""
-"Werkzeug Offest.\n"
-"Folgende Typen sind erlaubt:\n"
-"Path: kein Offset\n"
-"In: Offset einen halben Werkzeugdurchmesser innerhalb.\n"
-"Out: Offset einen halben Werkzeugdurchmesser ausserhalb\n"
-"Custom: selbstdefinierter Wert im Feld \"Selbstdefinierter Offset\""
-
-#: FlatCAMDB.py:202 FlatCAMDB.py:1300
-msgid ""
-"Custom Offset.\n"
-"A value to be used as offset from the current path."
-msgstr ""
-"Selbstdefinierter Offset.\n"
-"Ein Wert der als Offset zum aktellen Pfad hinzugefügt wird."
-
-#: FlatCAMDB.py:205 FlatCAMDB.py:1267
-msgid ""
-"Tool Type.\n"
-"Can be:\n"
-"Iso = isolation cut\n"
-"Rough = rough cut, low feedrate, multiple passes\n"
-"Finish = finishing cut, high feedrate"
-msgstr ""
-"Werkzeugart.\n"
-"Erlaubt sind:\n"
-"Iso: Isolationsschnitte\n"
-"Rough: Roughen, um viel Material abzutragen, geringer Vorschub, viele "
-"Durchgänge\n"
-"Finish: Finishing, hoher Vorschub"
-
-#: FlatCAMDB.py:211 FlatCAMDB.py:1115
-msgid ""
-"Tool Shape. \n"
-"Can be:\n"
-"C1 ... C4 = circular tool with x flutes\n"
-"B = ball tip milling tool\n"
-"V = v-shape milling tool"
-msgstr ""
-"Werkzeugform.\n"
-"Erlaubt sind:\n"
-"C1 … C4: Runde Form mit x Schneiden\n"
-"B: Kugelförmig\n"
-"V: V-Förmig"
-
-#: FlatCAMDB.py:217 FlatCAMDB.py:1131
-msgid ""
-"Cutting Depth.\n"
-"The depth at which to cut into material."
-msgstr ""
-"Schneidtiefe.\n"
-"Eindringtiefe in das Material."
-
-# MultiDepth is hard to translate, cause it is somewhat artificial. If you need to abbreviate perhaps "MehrfDurchg" could suffice, but stays ugly.
-#: FlatCAMDB.py:220 FlatCAMDB.py:1145
-msgid ""
-"Multi Depth.\n"
-"Selecting this will allow cutting in multiple passes,\n"
-"each pass adding a DPP parameter depth."
-msgstr ""
-"Mehrfache Durchgänge.\n"
-"Wenn ausgewählt wird der Schnitt in mehreren Stufen\n"
-"durchgeführt. Die Schnitttiefe jedes Schnittes ist in DPP angegeben."
-
-#: FlatCAMDB.py:224 FlatCAMDB.py:1158
-msgid ""
-"DPP. Depth per Pass.\n"
-"The value used to cut into material on each pass."
-msgstr ""
-"DPP: Tiefe pro Schnitt. Definiert die einzelne Schnitttiefe in mehrfachen "
-"Durchgängen."
-
-#: FlatCAMDB.py:227 FlatCAMDB.py:1314
-msgid ""
-"V-Dia.\n"
-"Diameter of the tip for V-Shape Tools."
-msgstr ""
-"V-Durchmesser.\n"
-"Durchmesser der Spitze eines V-Förmigen Werkzeugs."
-
-# Typo in english? V-Angle, missing n?
-#: FlatCAMDB.py:230 FlatCAMDB.py:1328
-msgid ""
-"V-Agle.\n"
-"Angle at the tip for the V-Shape Tools."
-msgstr ""
-"V-Winkel.\n"
-"Öffnungswinkel an der Spitze eine V-Förmigen Werkzeugs."
-
-#: FlatCAMDB.py:233 FlatCAMDB.py:1172
-msgid ""
-"Clearance Height.\n"
-"Height at which the milling bit will travel between cuts,\n"
-"above the surface of the material, avoiding all fixtures."
-msgstr ""
-"Freilauf Höhe.\n"
-"Die Höhe in der das Fräswerkzeug sich zwischen den Schnitten \n"
-"frei bewegen kann ohne auf Hindernisse zu stossen."
-
-#: FlatCAMDB.py:237
-msgid ""
-"FR. Feedrate\n"
-"The speed on XY plane used while cutting into material."
-msgstr ""
-"FR: Feedrate\n"
-"Geschwindkeit beim fräsen. Angegeben in cm pro Minute."
-
-#: FlatCAMDB.py:240
-msgid ""
-"FR Z. Feedrate Z\n"
-"The speed on Z plane."
-msgstr ""
-"FR Z: Feedrate Z:\n"
-"Geschwindigkeit beim Fräsen in Z-Richtung."
-
-#: FlatCAMDB.py:243 FlatCAMDB.py:1342
-msgid ""
-"FR Rapids. Feedrate Rapids\n"
-"Speed used while moving as fast as possible.\n"
-"This is used only by some devices that can't use\n"
-"the G0 g-code command. Mostly 3D printers."
-msgstr ""
-"FR Rapids: Feedrate ohne Last\n"
-"Geschwindigkeit die ohne Last gefahren werden kann.\n"
-"Wird benutzt bei Geräten die das G0 Kommando nicht \n"
-"unterstützen (oft 3D Drucker)."
-
-#: FlatCAMDB.py:248 FlatCAMDB.py:1215
-msgid ""
-"Spindle Speed.\n"
-"If it's left empty it will not be used.\n"
-"The speed of the spindle in RPM."
-msgstr ""
-"Drehzahl.\n"
-"Drehzahl des Fräsmotors in U/min.\n"
-"Wird nicht benutzt, wenn leer."
-
-#: FlatCAMDB.py:252 FlatCAMDB.py:1230
-msgid ""
-"Dwell.\n"
-"Check this if a delay is needed to allow\n"
-"the spindle motor to reach it's set speed."
-msgstr ""
-"Verweilen.\n"
-"Überprüfen Sie dies, wenn eine Verzögerung erforderlich ist\n"
-"Der Spindelmotor erreicht die eingestellte Drehzahl."
-
-#: FlatCAMDB.py:256 FlatCAMDB.py:1243
-msgid ""
-"Dwell Time.\n"
-"A delay used to allow the motor spindle reach it's set speed."
-msgstr ""
-"Verweilzeit.\n"
-"Eine Verzögerung, mit der die Motorspindel ihre eingestellte Drehzahl "
-"erreicht."
-
-#: FlatCAMDB.py:259
-msgid ""
-"Preprocessor.\n"
-"A selection of files that will alter the generated G-code\n"
-"to fit for a number of use cases."
-msgstr ""
-"Präprozessor.\n"
-"Diese Dateien werden den erzeugten G-Code modifizieren\n"
-"um eine große Anzahl Anwendungsmöglichkeiten zu unterstützen."
-
-#: FlatCAMDB.py:263 FlatCAMDB.py:1358
-msgid ""
-"Extra Cut.\n"
-"If checked, after a isolation is finished an extra cut\n"
-"will be added where the start and end of isolation meet\n"
-"such as that this point is covered by this extra cut to\n"
-"ensure a complete isolation."
-msgstr ""
-"Zusatzschnitt.\n"
-"Wenn gewählt, wird nach dem Isolationsschnitt ein Zusatzschnitt\n"
-"durchgeführt, um Start und Endpunkt definitiv zu verbinden und \n"
-"so eine vollständige Isolation zu gewährleisten."
-
-#: FlatCAMDB.py:269 FlatCAMDB.py:1373
-msgid ""
-"Extra Cut length.\n"
-"If checked, after a isolation is finished an extra cut\n"
-"will be added where the start and end of isolation meet\n"
-"such as that this point is covered by this extra cut to\n"
-"ensure a complete isolation. This is the length of\n"
-"the extra cut."
-msgstr ""
-"Zusatzschnitt.\n"
-"Wenn gewählt, wird nach dem Isolationsschnitt ein Zusatzschnitt\n"
-"durchgeführt, um Start und Endpunkt definitiv zu verbinden und \n"
-"so eine vollständige Isolation zu gewährleisten."
-
-#: FlatCAMDB.py:276
-msgid ""
-"Toolchange.\n"
-"It will create a toolchange event.\n"
-"The kind of toolchange is determined by\n"
-"the preprocessor file."
-msgstr ""
-"Werkzeugwechsel.\n"
-"Löst ein Werkzeugwechselereignis aus.\n"
-"Die Art wie der Werkzeugwechsel durchgeführt wird\n"
-"hängt vom gewählten Präprozessor ab."
-
-#: FlatCAMDB.py:281
-msgid ""
-"Toolchange XY.\n"
-"A set of coordinates in the format (x, y).\n"
-"Will determine the cartesian position of the point\n"
-"where the tool change event take place."
-msgstr ""
-"Werkzeugwechsel XY\n"
-"Ein Satz von Koordinaten im Format (x,y).\n"
-"An der Position dieses Punktes wird ein \n"
-"Werkzeugwechselereignis ausgelöst."
-
-# Is this really the height of where a toolchange event takes place or is it the position of where to go to for being able to change the tool?
-#: FlatCAMDB.py:286
-msgid ""
-"Toolchange Z.\n"
-"The position on Z plane where the tool change event take place."
-msgstr ""
-"Werkzeugwechsel Z.\n"
-"Die Position in der Z Ebene an der ein Werkzeugwechselereignis ausgelöst "
-"wird."
-
-#: FlatCAMDB.py:289
-msgid ""
-"Start Z.\n"
-"If it's left empty it will not be used.\n"
-"A position on Z plane to move immediately after job start."
-msgstr ""
-"Start Z.\n"
-"Nicht benutzt wenn leer.\n"
-"Die Z-Position die zum Start angefahren wird."
-
-#: FlatCAMDB.py:293
-msgid ""
-"End Z.\n"
-"A position on Z plane to move immediately after job stop."
-msgstr ""
-"End Z.\n"
-"Die Z-Position die bei Beendigung des Jobs angefahren wird."
-
-#: FlatCAMDB.py:305 FlatCAMDB.py:682 FlatCAMDB.py:716 FlatCAMDB.py:1898
-#: FlatCAMDB.py:2144 FlatCAMDB.py:2178
-msgid "Could not load Tools DB file."
-msgstr "Werkzeugdatenbank konnte nicht geladen werden."
-
-#: FlatCAMDB.py:313 FlatCAMDB.py:724 FlatCAMDB.py:1906 FlatCAMDB.py:2186
-msgid "Failed to parse Tools DB file."
-msgstr "Formatfehler beim Einlesen der Werkzeugdatenbank."
-
-#: FlatCAMDB.py:316 FlatCAMDB.py:727 FlatCAMDB.py:1909 FlatCAMDB.py:2189
-msgid "Loaded FlatCAM Tools DB from"
-msgstr "Geladene FlatCAM Tools DB von"
-
-#: FlatCAMDB.py:322 FlatCAMDB.py:1823
-msgid "Add to DB"
-msgstr "Hinzufügen"
-
-#: FlatCAMDB.py:324 FlatCAMDB.py:1826
-msgid "Copy from DB"
-msgstr "Von Datenbank kopieren"
-
-#: FlatCAMDB.py:326 FlatCAMDB.py:1829
-msgid "Delete from DB"
-msgstr "Aus Datenbank löschen"
-
-#: FlatCAMDB.py:603 FlatCAMDB.py:2044
-msgid "Tool added to DB."
-msgstr "Werkzeug wurde zur Werkzeugdatenbank hinzugefügt."
-
-#: FlatCAMDB.py:624 FlatCAMDB.py:2077
-msgid "Tool copied from Tools DB."
-msgstr "Das Werkzeug wurde aus der Werkzeugdatenbank kopiert."
-
-#: FlatCAMDB.py:642 FlatCAMDB.py:2104
-msgid "Tool removed from Tools DB."
-msgstr "Werkzeug wurde aus der Werkzeugdatenbank gelöscht."
-
-#: FlatCAMDB.py:653 FlatCAMDB.py:2115
-msgid "Export Tools Database"
-msgstr "Werkzeugdatenbank exportieren"
-
-#: FlatCAMDB.py:656 FlatCAMDB.py:2118
-msgid "Tools_Database"
-msgstr "Werkzeugdatenbank"
-
-#: FlatCAMDB.py:693 FlatCAMDB.py:696 FlatCAMDB.py:748 FlatCAMDB.py:2155
-#: FlatCAMDB.py:2158 FlatCAMDB.py:2211
-msgid "Failed to write Tools DB to file."
-msgstr "Fehler beim Schreiben der Werkzeugdatenbank in eine Datei."
-
-#: FlatCAMDB.py:699 FlatCAMDB.py:2161
-msgid "Exported Tools DB to"
-msgstr "Werkzeugdatenbank wurde exportiert nach"
-
-#: FlatCAMDB.py:706 FlatCAMDB.py:2168
-msgid "Import FlatCAM Tools DB"
-msgstr "Import der FlatCAM-Werkzeugdatenbank"
-
-#: FlatCAMDB.py:752 FlatCAMDB.py:2215
-msgid "Saved Tools DB."
-msgstr "Datenbank der gespeicherten Werkzeuge."
-
-#: FlatCAMDB.py:899 FlatCAMDB.py:2405
-msgid "No Tool/row selected in the Tools Database table"
-msgstr ""
-"Gescheitert. Kein Werkzeug (keine Spalte) in der Werkzeugtabelle ausgewählt"
-
-#: FlatCAMDB.py:917 FlatCAMDB.py:2422
-msgid "Cancelled adding tool from DB."
-msgstr "Hinzufügen aus der Datenbank wurde abgebrochen."
-
-#: FlatCAMDB.py:1018
-msgid "Basic Geo Parameters"
-msgstr "Grundlegende Geoparameter"
-
-#: FlatCAMDB.py:1030
-msgid "Advanced Geo Parameters"
-msgstr "Erweiterte Geoparameter"
-
-#: FlatCAMDB.py:1042
-msgid "NCC Parameters"
-msgstr "NCC-Parameter"
-
-#: FlatCAMDB.py:1054
-msgid "Paint Parameters"
-msgstr "Lackparameter"
-
-#: FlatCAMDB.py:1185 flatcamGUI/ObjectUI.py:967 flatcamGUI/ObjectUI.py:1769
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:185
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:148
-#: flatcamTools/ToolSolderPaste.py:253
-msgid "Feedrate X-Y"
-msgstr "Vorschub X-Y"
-
-#: FlatCAMDB.py:1187
-msgid ""
-"Feedrate X-Y. Feedrate\n"
-"The speed on XY plane used while cutting into material."
-msgstr ""
-"Vorschub X-Y. Vorschubgeschwindigkeit\n"
-"Die Geschwindigkeit in der XY-Ebene, die beim Schneiden in Material "
-"verwendet wird."
-
-#: FlatCAMDB.py:1199 flatcamGUI/ObjectUI.py:982 flatcamGUI/ObjectUI.py:1783
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:207
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:200
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:161
-#: flatcamTools/ToolSolderPaste.py:265
-msgid "Feedrate Z"
-msgstr "Vorschub Z"
-
-#: FlatCAMDB.py:1201
-msgid ""
-"Feedrate Z\n"
-"The speed on Z plane."
-msgstr ""
-"Vorschub Z.\n"
-"Die Geschwindigkeit in der Z-Ebene."
-
-#: FlatCAMDB.py:1399 flatcamGUI/ObjectUI.py:845
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:46
-#: flatcamTools/ToolNCC.py:341
-msgid "Operation"
-msgstr "Operation"
-
-#: FlatCAMDB.py:1401 flatcamTools/ToolNCC.py:343
-msgid ""
-"The 'Operation' can be:\n"
-"- Isolation -> will ensure that the non-copper clearing is always complete.\n"
-"If it's not successful then the non-copper clearing will fail, too.\n"
-"- Clear -> the regular non-copper clearing."
-msgstr ""
-"Die 'Operation' kann sein:\n"
-"- Isolierung-> stellt sicher, dass das Löschen ohne Kupfer immer "
-"abgeschlossen ist.\n"
-"Wenn dies nicht erfolgreich ist, schlägt auch das Löschen ohne Kupfer fehl.\n"
-"- Klären-> das reguläre Nicht-Kupfer-löschen."
-
-#: FlatCAMDB.py:1408 flatcamEditors/FlatCAMGrbEditor.py:2742
-#: flatcamGUI/GUIElements.py:2577 flatcamTools/ToolNCC.py:350
-msgid "Clear"
-msgstr "Klären"
-
-#: FlatCAMDB.py:1409 flatcamTools/ToolNCC.py:351 flatcamTools/ToolNCC.py:1623
-msgid "Isolation"
-msgstr "Isolation"
-
-#: FlatCAMDB.py:1417 flatcamGUI/ObjectUI.py:409 flatcamGUI/ObjectUI.py:867
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:62
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:56
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:95
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:137
-#: flatcamTools/ToolNCC.py:359
-msgid "Milling Type"
-msgstr "Fräsart"
-
-#: FlatCAMDB.py:1419 FlatCAMDB.py:1427
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:139
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:147
-#: flatcamTools/ToolNCC.py:361 flatcamTools/ToolNCC.py:369
-msgid ""
-"Milling type when the selected tool is of type: 'iso_op':\n"
-"- climb / best for precision milling and to reduce tool usage\n"
-"- conventional / useful when there is no backlash compensation"
-msgstr ""
-"Frästyp, wenn das ausgewählte Werkzeug vom Typ 'iso_op' ist:\n"
-"- Besteigung / am besten zum Präzisionsfräsen und zur Reduzierung des "
-"Werkzeugverbrauchs\n"
-"- konventionell / nützlich, wenn kein Spielausgleich vorhanden ist"
-
-#: FlatCAMDB.py:1424 flatcamGUI/ObjectUI.py:415
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:62
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:102
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:144
-#: flatcamTools/ToolNCC.py:366
-msgid "Climb"
-msgstr "Steigen"
-
-# Cannot translate without context.
-#: FlatCAMDB.py:1425 flatcamGUI/ObjectUI.py:416
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:63
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:103
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:145
-#: flatcamTools/ToolNCC.py:367
-msgid "Conventional"
-msgstr "Konventionell"
-
-#: FlatCAMDB.py:1437 FlatCAMDB.py:1546 flatcamEditors/FlatCAMGeoEditor.py:451
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:182
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:163
-#: flatcamTools/ToolNCC.py:382 flatcamTools/ToolPaint.py:329
-msgid "Overlap"
-msgstr "Überlappung"
-
-# Double
-#: FlatCAMDB.py:1439 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:184
-#: flatcamTools/ToolNCC.py:384
-msgid ""
-"How much (percentage) of the tool width to overlap each tool pass.\n"
-"Adjust the value starting with lower values\n"
-"and increasing it if areas that should be cleared are still \n"
-"not cleared.\n"
-"Lower values = faster processing, faster execution on CNC.\n"
-"Higher values = slow processing and slow execution on CNC\n"
-"due of too many paths."
-msgstr ""
-"Wie viel (Prozent) der Werkzeugbreite, um jeden Werkzeugdurchlauf zu "
-"überlappen.\n"
-"Passen Sie den Wert beginnend mit niedrigeren Werten an\n"
-"und es zu erhöhen, wenn noch Bereiche sind, die geräumt werden sollen\n"
-"ungeklärt.\n"
-"Niedrigere Werte = schnellere Verarbeitung, schnellere Ausführung auf CNC.\n"
-"Höhere Werte = langsame Verarbeitung und langsame Ausführung auf CNC\n"
-"wegen zu vieler Wege."
-
-#: FlatCAMDB.py:1458 FlatCAMDB.py:1567 flatcamEditors/FlatCAMGeoEditor.py:471
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:72
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:229
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:59
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:45
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:53
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:183
-#: flatcamTools/ToolCopperThieving.py:111
-#: flatcamTools/ToolCopperThieving.py:362 flatcamTools/ToolCutOut.py:190
-#: flatcamTools/ToolFiducials.py:172 flatcamTools/ToolInvertGerber.py:88
-#: flatcamTools/ToolInvertGerber.py:96 flatcamTools/ToolNCC.py:403
-#: flatcamTools/ToolPaint.py:350
-msgid "Margin"
-msgstr "Marge"
-
-#: FlatCAMDB.py:1460
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:74
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:61
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204
-#: flatcamTools/ToolCopperThieving.py:113 flatcamTools/ToolFiducials.py:174
-#: flatcamTools/ToolFiducials.py:237 flatcamTools/ToolNCC.py:405
-msgid "Bounding box margin."
-msgstr "Begrenzungsrahmenrand."
-
-#: FlatCAMDB.py:1471 FlatCAMDB.py:1582 flatcamEditors/FlatCAMGeoEditor.py:485
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:105
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:198
-#: flatcamTools/ToolExtractDrills.py:128 flatcamTools/ToolNCC.py:416
-#: flatcamTools/ToolPaint.py:365 flatcamTools/ToolPunchGerber.py:139
-msgid "Method"
-msgstr "Methode"
-
-#: FlatCAMDB.py:1473 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:217
-#: flatcamTools/ToolNCC.py:418
-msgid ""
-"Algorithm for copper clearing:\n"
-"- Standard: Fixed step inwards.\n"
-"- Seed-based: Outwards from seed.\n"
-"- Line-based: Parallel lines."
-msgstr ""
-"Algorithmus zur Kupferreinigung:\n"
-"- Standard: Schritt nach innen behoben.\n"
-"- Samenbasiert: Aus dem Samen heraus.\n"
-"- Linienbasiert: Parallele Linien."
-
-#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 flatcamEditors/FlatCAMGeoEditor.py:499
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
-#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolNCC.py:2395
-#: flatcamTools/ToolNCC.py:2424 flatcamTools/ToolNCC.py:2693
-#: flatcamTools/ToolNCC.py:2725 flatcamTools/ToolPaint.py:390
-#: flatcamTools/ToolPaint.py:1834 tclCommands/TclCommandCopperClear.py:126
-#: tclCommands/TclCommandCopperClear.py:134 tclCommands/TclCommandPaint.py:125
-msgid "Standard"
-msgstr "Standard"
-
-#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 defaults.py:395 defaults.py:427
-#: flatcamEditors/FlatCAMGeoEditor.py:499
-#: flatcamEditors/FlatCAMGeoEditor.py:569
-#: flatcamEditors/FlatCAMGeoEditor.py:5152
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
-#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolNCC.py:2401
-#: flatcamTools/ToolNCC.py:2429 flatcamTools/ToolNCC.py:2699
-#: flatcamTools/ToolNCC.py:2731 flatcamTools/ToolPaint.py:390
-#: flatcamTools/ToolPaint.py:1848 tclCommands/TclCommandCopperClear.py:128
-#: tclCommands/TclCommandCopperClear.py:136 tclCommands/TclCommandPaint.py:127
-msgid "Seed"
-msgstr "Keim"
-
-#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 flatcamEditors/FlatCAMGeoEditor.py:499
-#: flatcamEditors/FlatCAMGeoEditor.py:5156
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
-#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolPaint.py:390
-#: flatcamTools/ToolPaint.py:699 flatcamTools/ToolPaint.py:1862
-#: tclCommands/TclCommandCopperClear.py:130 tclCommands/TclCommandPaint.py:129
-msgid "Lines"
-msgstr "Linien"
-
-#: FlatCAMDB.py:1489 FlatCAMDB.py:1607
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:237
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:224
-#: flatcamTools/ToolNCC.py:439 flatcamTools/ToolPaint.py:401
-msgid "Connect"
-msgstr "Verbinden"
-
-#: FlatCAMDB.py:1493 FlatCAMDB.py:1610 flatcamEditors/FlatCAMGeoEditor.py:508
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:239
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:226
-#: flatcamTools/ToolNCC.py:443 flatcamTools/ToolPaint.py:404
-msgid ""
-"Draw lines between resulting\n"
-"segments to minimize tool lifts."
-msgstr ""
-"Zeichnen Sie Linien zwischen den Ergebnissen\n"
-"Segmente, um Werkzeuglifte zu minimieren."
-
-#: FlatCAMDB.py:1499 FlatCAMDB.py:1614
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:246
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:232
-#: flatcamTools/ToolNCC.py:449 flatcamTools/ToolPaint.py:408
-msgid "Contour"
-msgstr "Kontur"
-
-#: FlatCAMDB.py:1503 FlatCAMDB.py:1617 flatcamEditors/FlatCAMGeoEditor.py:518
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:248
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:234
-#: flatcamTools/ToolNCC.py:453 flatcamTools/ToolPaint.py:411
-msgid ""
-"Cut around the perimeter of the polygon\n"
-"to trim rough edges."
-msgstr ""
-"Schneiden Sie um den Umfang des Polygons herum\n"
-"Ecken und Kanten schneiden."
-
-#: FlatCAMDB.py:1509 flatcamEditors/FlatCAMGeoEditor.py:612
-#: flatcamEditors/FlatCAMGrbEditor.py:5311 flatcamGUI/ObjectUI.py:143
-#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:255
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:142
-#: flatcamTools/ToolNCC.py:459 flatcamTools/ToolTransform.py:28
-msgid "Offset"
-msgstr "Versatz"
-
-#: FlatCAMDB.py:1513 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:257
-#: flatcamTools/ToolNCC.py:463
-msgid ""
-"If used, it will add an offset to the copper features.\n"
-"The copper clearing will finish to a distance\n"
-"from the copper features.\n"
-"The value can be between 0 and 10 FlatCAM units."
-msgstr ""
-"Bei Verwendung wird den Kupferelementen ein Offset hinzugefügt.\n"
-"Die Kupferreinigung wird bis zu einer gewissen Entfernung enden\n"
-"von den Kupfermerkmalen.\n"
-"Der Wert kann zwischen 0 und 10 FlatCAM-Einheiten liegen."
-
-# 3rd Time
-#: FlatCAMDB.py:1548 flatcamEditors/FlatCAMGeoEditor.py:453
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:165
-#: flatcamTools/ToolPaint.py:331
-msgid ""
-"How much (percentage) of the tool width to overlap each tool pass.\n"
-"Adjust the value starting with lower values\n"
-"and increasing it if areas that should be painted are still \n"
-"not painted.\n"
-"Lower values = faster processing, faster execution on CNC.\n"
-"Higher values = slow processing and slow execution on CNC\n"
-"due of too many paths."
-msgstr ""
-"Wie viel (Prozent) der Werkzeugbreite, um jeden Werkzeugdurchlauf zu "
-"überlappen.\n"
-"Passen Sie den Wert beginnend mit niedrigeren Werten an\n"
-"und erhöhen, wenn Bereiche, die gestrichen werden sollen, noch vorhanden "
-"sind\n"
-"nicht gemalt.\n"
-"Niedrigere Werte = schnellere Verarbeitung, schnellere Ausführung auf CNC.\n"
-"Höhere Werte = langsame Verarbeitung und langsame Ausführung auf CNC\n"
-"wegen zu vieler Wege."
-
-#: FlatCAMDB.py:1569 flatcamEditors/FlatCAMGeoEditor.py:473
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:185
-#: flatcamTools/ToolPaint.py:352
-msgid ""
-"Distance by which to avoid\n"
-"the edges of the polygon to\n"
-"be painted."
-msgstr ""
-"Entfernung, um die es zu vermeiden ist\n"
-"die Kanten des Polygons bis\n"
-"gemalt werden."
-
-#: FlatCAMDB.py:1584 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:200
-#: flatcamTools/ToolPaint.py:367
-msgid ""
-"Algorithm for painting:\n"
-"- Standard: Fixed step inwards.\n"
-"- Seed-based: Outwards from seed.\n"
-"- Line-based: Parallel lines.\n"
-"- Laser-lines: Active only for Gerber objects.\n"
-"Will create lines that follow the traces.\n"
-"- Combo: In case of failure a new method will be picked from the above\n"
-"in the order specified."
-msgstr ""
-"Algorithmus zum Malen:\n"
-"- Standard: Schritt nach innen behoben.\n"
-"- Samenbasiert: Aus dem Samen heraus.\n"
-"- Linienbasiert: Parallele Linien.\n"
-"- Laserlinien: Nur für Gerber-Objekte aktiv.\n"
-"Erstellt Linien, die den Spuren folgen.\n"
-"- Combo: Im Fehlerfall wird eine neue Methode aus den oben genannten "
-"ausgewählt\n"
-"in der angegebenen Reihenfolge."
-
-#: FlatCAMDB.py:1596 FlatCAMDB.py:1598
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
-#: flatcamTools/ToolPaint.py:390 flatcamTools/ToolPaint.py:392
-#: flatcamTools/ToolPaint.py:693 flatcamTools/ToolPaint.py:698
-#: flatcamTools/ToolPaint.py:1876 tclCommands/TclCommandPaint.py:131
-msgid "Laser_lines"
-msgstr "LaserlinienLinien"
-
-#: FlatCAMDB.py:1596 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
-#: flatcamTools/ToolPaint.py:390 flatcamTools/ToolPaint.py:2027
-#: tclCommands/TclCommandPaint.py:133
-msgid "Combo"
-msgstr "Combo"
-
-#: FlatCAMDB.py:1641
-msgid "Add Tool in DB"
-msgstr "Werkzeug in DB hinzufügen"
-
-#: FlatCAMDB.py:1675
-msgid "Save DB"
-msgstr "Speichern DB"
-
-#: FlatCAMDB.py:1677
-msgid "Save the Tools Database information's."
-msgstr "Speichern Sie die Tools-Datenbankinformationen."
-
-#: FlatCAMProcess.py:172
-msgid "processes running."
-msgstr "laufende Prozesse."
-
-#: FlatCAMTool.py:245 FlatCAMTool.py:252 flatcamGUI/ObjectUI.py:157
-#: flatcamGUI/ObjectUI.py:164
-msgid "Edited value is out of range"
-msgstr "Der bearbeitete Wert liegt außerhalb des Bereichs"
-
-#: FlatCAMTool.py:247 FlatCAMTool.py:254 flatcamGUI/ObjectUI.py:159
-#: flatcamGUI/ObjectUI.py:166
-msgid "Edited value is within limits."
-msgstr "Der bearbeitete Wert liegt innerhalb der Grenzen."
-
-#: FlatCAMTranslation.py:104
-msgid "The application will restart."
-msgstr "Die Anwendung wird neu gestartet."
-
-#: FlatCAMTranslation.py:106
-msgid "Are you sure do you want to change the current language to"
-msgstr "Möchten Sie die aktuelle Sprache wirklich in ändern"
-
-#: FlatCAMTranslation.py:107
-msgid "Apply Language ..."
-msgstr "Sprache anwenden ..."
+#: Common.py:396
+#, fuzzy
+#| msgid "Exclusion areas"
+msgid "Exclusion areas added."
+msgstr "Ausschlussbereiche"
+
+#: Common.py:405
+#, fuzzy
+#| msgid "Exclusion areas"
+msgid "With Exclusion areas."
+msgstr "Ausschlussbereiche"
+
+#: Common.py:435
+msgid "Cancelled. Area exclusion drawing was interrupted."
+msgstr "Abgebrochen. Die Bereichsausschlusszeichnung wurde unterbrochen."
+
+#: Common.py:527 Common.py:575
+#, fuzzy
+#| msgid "All objects are selected."
+msgid "All exclusion zones deleted."
+msgstr "Alle Objekte werden ausgewählt."
+
+#: Common.py:562
+#, fuzzy
+#| msgid "Delete all exclusion areas."
+msgid "Selected exclusion zones deleted."
+msgstr "Löschen Sie alle Ausschlussbereiche."
#: assets/linux/flatcam-beta.desktop:3
msgid "FlatCAM Beta"
msgstr "FlatCAM Beta"
-#: assets/linux/flatcam-beta.desktop:7
-msgid "./assets/icon.png"
-msgstr "./assets/icon.png"
-
#: assets/linux/flatcam-beta.desktop:8
msgid "G-Code from GERBERS"
msgstr "G-Code von GERBERS"
-#: camlib.py:597
+#: camlib.py:596
msgid "self.solid_geometry is neither BaseGeometry or list."
msgstr "self.solid_geometry ist weder BaseGeometry noch eine Liste."
-#: camlib.py:970
+#: camlib.py:971
msgid "Pass"
msgstr "Pass"
-#: camlib.py:981 flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:146
-#: flatcamObjects/FlatCAMGerber.py:497 flatcamTools/ToolCopperThieving.py:1016
-#: flatcamTools/ToolCopperThieving.py:1205
-#: flatcamTools/ToolCopperThieving.py:1217 flatcamTools/ToolNCC.py:2050
-#: flatcamTools/ToolNCC.py:2158 flatcamTools/ToolNCC.py:2172
-#: flatcamTools/ToolNCC.py:3103 flatcamTools/ToolNCC.py:3208
-#: flatcamTools/ToolNCC.py:3223 flatcamTools/ToolNCC.py:3489
-#: flatcamTools/ToolNCC.py:3590 flatcamTools/ToolNCC.py:3605
-msgid "Buffering"
-msgstr "Pufferung"
-
-#: camlib.py:990
+#: camlib.py:991
msgid "Get Exteriors"
msgstr "Holen Sie sich das Äußere"
-#: camlib.py:993
+#: camlib.py:994
msgid "Get Interiors"
msgstr "Holen Sie sich Innenräume"
-#: camlib.py:2172
+#: camlib.py:2174
msgid "Object was mirrored"
msgstr "Objekt wurde gespiegelt"
-#: camlib.py:2174
+#: camlib.py:2176
msgid "Failed to mirror. No object selected"
msgstr "Spiegelung fehlgeschlagen Kein Objekt ausgewählt"
-#: camlib.py:2239
+#: camlib.py:2241
msgid "Object was rotated"
msgstr "Objekt wurde gedreht"
-#: camlib.py:2241
+#: camlib.py:2243
msgid "Failed to rotate. No object selected"
msgstr "Fehler beim Drehen. Kein Objekt ausgewählt"
-#: camlib.py:2307
+#: camlib.py:2309
msgid "Object was skewed"
msgstr "Objekt war schief"
-#: camlib.py:2309
+#: camlib.py:2311
msgid "Failed to skew. No object selected"
msgstr "Fehler beim Neigen Kein Objekt ausgewählt"
-#: camlib.py:2385
+#: camlib.py:2387
msgid "Object was buffered"
msgstr "Objekt wurde gepuffert"
-#: camlib.py:2387
+#: camlib.py:2389
msgid "Failed to buffer. No object selected"
msgstr "Fehler beim Puffern. Kein Objekt ausgewählt"
-#: camlib.py:2594
+#: camlib.py:2597
msgid "There is no such parameter"
msgstr "Es gibt keinen solchen Parameter"
-#: camlib.py:2654 camlib.py:2887 camlib.py:3116 camlib.py:3338
+#: camlib.py:2657 camlib.py:2898 camlib.py:3127 camlib.py:3349
msgid ""
"The Cut Z parameter has positive value. It is the depth value to drill into "
"material.\n"
@@ -2786,14 +18424,14 @@ msgstr ""
"einen negativen Wert. \n"
"Überprüfen Sie den resultierenden CNC-Code (Gcode usw.)."
-#: camlib.py:2662 camlib.py:2897 camlib.py:3126 camlib.py:3348 camlib.py:3631
-#: camlib.py:4017
+#: camlib.py:2665 camlib.py:2908 camlib.py:3137 camlib.py:3359 camlib.py:3650
+#: camlib.py:4045
msgid "The Cut Z parameter is zero. There will be no cut, skipping file"
msgstr ""
"Der Parameter Cut Z ist Null. Es wird kein Schnitt ausgeführt, und die Datei "
"wird übersprungen"
-#: camlib.py:2673 camlib.py:3985
+#: camlib.py:2680 camlib.py:4013
msgid ""
"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, "
"y) \n"
@@ -2803,7 +18441,7 @@ msgstr ""
"(x, y) sein\n"
"Aber jetzt gibt es nur einen Wert, nicht zwei. "
-#: camlib.py:2682 camlib.py:3582 camlib.py:3967
+#: camlib.py:2693 camlib.py:3597 camlib.py:3991
msgid ""
"The End Move X,Y field in Edit -> Preferences has to be in the format (x, y) "
"but now there is only one value, not two."
@@ -2811,31 +18449,31 @@ msgstr ""
"Das Feld Endverschiebung X, Y unter Bearbeiten -> Einstellungen muss das "
"Format (x, y) haben, aber jetzt gibt es nur einen Wert, nicht zwei."
-#: camlib.py:2770
+#: camlib.py:2781
msgid "Creating a list of points to drill..."
msgstr "Erstellen einer Liste von Punkten zum Bohren ..."
-#: camlib.py:2860 camlib.py:3729 camlib.py:4121
+#: camlib.py:2871 camlib.py:3748 camlib.py:4149
msgid "Starting G-Code"
msgstr "G-Code starten"
-#: camlib.py:3001 camlib.py:3220 camlib.py:3384 camlib.py:3742 camlib.py:4132
+#: camlib.py:3012 camlib.py:3231 camlib.py:3395 camlib.py:3761 camlib.py:4160
msgid "Starting G-Code for tool with diameter"
msgstr "Start-G-Code für Werkzeug mit Durchmesser"
-#: camlib.py:3084 camlib.py:3302 camlib.py:3470
+#: camlib.py:3095 camlib.py:3313 camlib.py:3481
msgid "G91 coordinates not implemented"
msgstr "G91 Koordinaten nicht implementiert"
-#: camlib.py:3090 camlib.py:3309 camlib.py:3475
+#: camlib.py:3101 camlib.py:3320 camlib.py:3486
msgid "The loaded Excellon file has no drills"
msgstr "Die geladene Excellon-Datei hat keine Bohrer"
-#: camlib.py:3498
+#: camlib.py:3509
msgid "Finished G-Code generation..."
msgstr "Fertige G-Code-Generierung ..."
-#: camlib.py:3600
+#: camlib.py:3619
msgid ""
"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, "
"y) \n"
@@ -2845,7 +18483,7 @@ msgstr ""
"das Format (x, y) haben.\n"
"Aber jetzt gibt es nur einen Wert, nicht zwei."
-#: camlib.py:3614 camlib.py:4000
+#: camlib.py:3633 camlib.py:4028
msgid ""
"Cut_Z parameter is None or zero. Most likely a bad combinations of other "
"parameters."
@@ -2853,7 +18491,7 @@ msgstr ""
"Der Parameter Cut_Z ist None oder Null. Höchstwahrscheinlich eine schlechte "
"Kombination anderer Parameter."
-#: camlib.py:3623 camlib.py:4009
+#: camlib.py:3642 camlib.py:4037
msgid ""
"The Cut Z parameter has positive value. It is the depth value to cut into "
"material.\n"
@@ -2868,11 +18506,11 @@ msgstr ""
"einen negativen Wert. \n"
"Überprüfen Sie den resultierenden CNC-Code (Gcode usw.)."
-#: camlib.py:3636 camlib.py:4023
+#: camlib.py:3655 camlib.py:4051
msgid "Travel Z parameter is None or zero."
msgstr "Der Parameter für den Travel Z ist Kein oder Null."
-#: camlib.py:3641 camlib.py:4028
+#: camlib.py:3660 camlib.py:4056
msgid ""
"The Travel Z parameter has negative value. It is the height value to travel "
"between cuts.\n"
@@ -2886,36 +18524,36 @@ msgstr ""
"einen Tippfehler handelt, konvertiert die App den Wert in einen positiven "
"Wert. Überprüfen Sie den resultierenden CNC-Code (Gcode usw.)."
-#: camlib.py:3649 camlib.py:4036
+#: camlib.py:3668 camlib.py:4064
msgid "The Z Travel parameter is zero. This is dangerous, skipping file"
msgstr ""
"Der Parameter Z-Weg ist Null. Dies ist gefährlich, da die %s Datei "
"übersprungen wird"
-#: camlib.py:3668 camlib.py:4059
+#: camlib.py:3687 camlib.py:4087
msgid "Indexing geometry before generating G-Code..."
msgstr "Indizierung der Geometrie vor dem Generieren von G-Code ..."
-#: camlib.py:3812 camlib.py:4201
+#: camlib.py:3831 camlib.py:4229
msgid "Finished G-Code generation"
msgstr "Fertige G-Code-Generierung"
-#: camlib.py:3812
+#: camlib.py:3831
msgid "paths traced"
msgstr "Pfade verfolgt"
-#: camlib.py:3862
+#: camlib.py:3881
msgid "Expected a Geometry, got"
msgstr "Erwartet eine Geometrie, erhalten"
-#: camlib.py:3869
+#: camlib.py:3888
msgid ""
"Trying to generate a CNC Job from a Geometry object without solid_geometry."
msgstr ""
"Der Versuch, einen CNC-Auftrag aus einem Geometrieobjekt ohne solid_geometry "
"zu generieren."
-#: camlib.py:3910
+#: camlib.py:3929
msgid ""
"The Tool Offset value is too negative to use for the current_geometry.\n"
"Raise the value (in module) and try again."
@@ -2924,15709 +18562,46 @@ msgstr ""
"Geometrie verwendet zu werden.\n"
"Erhöhen Sie den Wert (im Modul) und versuchen Sie es erneut."
-#: camlib.py:4201
+#: camlib.py:4229
msgid " paths traced."
msgstr " Pfade verfolgt."
-#: camlib.py:4229
+#: camlib.py:4257
msgid "There is no tool data in the SolderPaste geometry."
msgstr "In der SolderPaste-Geometrie sind keine Werkzeugdaten vorhanden."
-#: camlib.py:4318
+#: camlib.py:4346
msgid "Finished SolderPaste G-Code generation"
msgstr "Fertige G-Code-Generierung für Lötpaste"
-#: camlib.py:4318
+#: camlib.py:4346
msgid "paths traced."
msgstr "paths traced."
-#: camlib.py:4578
+#: camlib.py:4606
msgid "Parsing GCode file. Number of lines"
msgstr "Analysieren der GCode-Datei. Anzahl der Zeilen"
-#: camlib.py:4685
+#: camlib.py:4713
msgid "Creating Geometry from the parsed GCode file. "
msgstr "Erstellen von Geometrie aus der analysierten GCode-Datei. "
-#: camlib.py:4828 camlib.py:5118 camlib.py:5229 camlib.py:5385
+#: camlib.py:4856 camlib.py:5079 camlib.py:5190 camlib.py:5346
msgid "G91 coordinates not implemented ..."
msgstr "G91 Koordinaten nicht implementiert ..."
-#: camlib.py:4960
+#: camlib.py:4921
msgid "Unifying Geometry from parsed Geometry segments"
msgstr "Vereinheitlichen von Geometrie aus analysierten Geometriesegmenten"
-#: defaults.py:401
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
-#: flatcamTools/ToolCopperThieving.py:125 flatcamTools/ToolNCC.py:535
-#: flatcamTools/ToolNCC.py:1306 flatcamTools/ToolNCC.py:1634
-#: flatcamTools/ToolNCC.py:1919 flatcamTools/ToolNCC.py:1983
-#: flatcamTools/ToolNCC.py:2967 flatcamTools/ToolNCC.py:2976
-#: tclCommands/TclCommandCopperClear.py:190
-msgid "Itself"
-msgstr "Selbst"
-
-#: defaults.py:428 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
-#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:1427
-#: tclCommands/TclCommandPaint.py:162
-msgid "All Polygons"
-msgstr "Alle Polygone"
-
-#: defaults.py:739
+#: defaults.py:756
msgid "Could not load defaults file."
msgstr "Voreinstellungen konnte nicht geladen werden."
-#: defaults.py:752
+#: defaults.py:769
msgid "Failed to parse defaults file."
msgstr "Fehler beim Einlesen der Voreinstellungen."
-#: flatcamEditors/FlatCAMExcEditor.py:50 flatcamEditors/FlatCAMExcEditor.py:74
-#: flatcamEditors/FlatCAMExcEditor.py:168
-#: flatcamEditors/FlatCAMExcEditor.py:385
-#: flatcamEditors/FlatCAMExcEditor.py:589
-#: flatcamEditors/FlatCAMGrbEditor.py:243
-#: flatcamEditors/FlatCAMGrbEditor.py:250
-msgid "Click to place ..."
-msgstr "Klicken um zu platzieren ..."
-
-#: flatcamEditors/FlatCAMExcEditor.py:58
-msgid "To add a drill first select a tool"
-msgstr "Um einen Bohrer hinzuzufügen, wählen Sie zuerst ein Werkzeug aus"
-
-#: flatcamEditors/FlatCAMExcEditor.py:122
-msgid "Done. Drill added."
-msgstr "Erledigt. Bohrer hinzugefügt."
-
-#: flatcamEditors/FlatCAMExcEditor.py:176
-msgid "To add an Drill Array first select a tool in Tool Table"
-msgstr ""
-"Um ein Bohr-Array hinzuzufügen, wählen Sie zunächst ein Werkzeug in der "
-"Werkzeugtabelle aus"
-
-#: flatcamEditors/FlatCAMExcEditor.py:192
-#: flatcamEditors/FlatCAMExcEditor.py:415
-#: flatcamEditors/FlatCAMExcEditor.py:636
-#: flatcamEditors/FlatCAMExcEditor.py:1151
-#: flatcamEditors/FlatCAMExcEditor.py:1178
-#: flatcamEditors/FlatCAMGrbEditor.py:473
-#: flatcamEditors/FlatCAMGrbEditor.py:1937
-#: flatcamEditors/FlatCAMGrbEditor.py:1967
-msgid "Click on target location ..."
-msgstr "Klicken Sie auf den Zielort ..."
-
-#: flatcamEditors/FlatCAMExcEditor.py:211
-msgid "Click on the Drill Circular Array Start position"
-msgstr "Klicken Sie auf die Startposition des Bohrkreis-Arrays"
-
-#: flatcamEditors/FlatCAMExcEditor.py:233
-#: flatcamEditors/FlatCAMExcEditor.py:677
-#: flatcamEditors/FlatCAMGrbEditor.py:518
-msgid "The value is not Float. Check for comma instead of dot separator."
-msgstr ""
-"Der Wert ist nicht Real. Überprüfen Sie das Komma anstelle des Trennzeichens."
-
-#: flatcamEditors/FlatCAMExcEditor.py:237
-msgid "The value is mistyped. Check the value"
-msgstr "Der Wert ist falsch geschrieben. Überprüfen Sie den Wert"
-
-#: flatcamEditors/FlatCAMExcEditor.py:336
-msgid "Too many drills for the selected spacing angle."
-msgstr "Zu viele Bohrer für den ausgewählten Abstandswinkel."
-
-#: flatcamEditors/FlatCAMExcEditor.py:354
-msgid "Done. Drill Array added."
-msgstr "Erledigt. Bohrfeld hinzugefügt."
-
-#: flatcamEditors/FlatCAMExcEditor.py:394
-msgid "To add a slot first select a tool"
-msgstr "Um einen Steckplatz hinzuzufügen, wählen Sie zunächst ein Werkzeug aus"
-
-#: flatcamEditors/FlatCAMExcEditor.py:454
-#: flatcamEditors/FlatCAMExcEditor.py:461
-#: flatcamEditors/FlatCAMExcEditor.py:742
-#: flatcamEditors/FlatCAMExcEditor.py:749
-msgid "Value is missing or wrong format. Add it and retry."
-msgstr ""
-"Wert fehlt oder falsches Format. Fügen Sie es hinzu und versuchen Sie es "
-"erneut."
-
-#: flatcamEditors/FlatCAMExcEditor.py:559
-msgid "Done. Adding Slot completed."
-msgstr "Erledigt. Das Hinzufügen des Slots ist abgeschlossen."
-
-#: flatcamEditors/FlatCAMExcEditor.py:597
-msgid "To add an Slot Array first select a tool in Tool Table"
-msgstr ""
-"Um ein Schlitze-Array hinzuzufügen, wählen Sie zunächst ein Werkzeug in der "
-"Werkzeugtabelle aus"
-
-#: flatcamEditors/FlatCAMExcEditor.py:655
-msgid "Click on the Slot Circular Array Start position"
-msgstr "Klicken Sie auf die kreisförmige Startposition des Arrays"
-
-#: flatcamEditors/FlatCAMExcEditor.py:680
-#: flatcamEditors/FlatCAMGrbEditor.py:521
-msgid "The value is mistyped. Check the value."
-msgstr "Der Wert ist falsch geschrieben. Überprüfen Sie den Wert."
-
-#: flatcamEditors/FlatCAMExcEditor.py:859
-msgid "Too many Slots for the selected spacing angle."
-msgstr "Zu viele Slots für den ausgewählten Abstandswinkel."
-
-#: flatcamEditors/FlatCAMExcEditor.py:882
-msgid "Done. Slot Array added."
-msgstr "Erledigt. Schlitze Array hinzugefügt."
-
-#: flatcamEditors/FlatCAMExcEditor.py:904
-msgid "Click on the Drill(s) to resize ..."
-msgstr "Klicken Sie auf die Bohrer, um die Größe zu ändern ..."
-
-#: flatcamEditors/FlatCAMExcEditor.py:934
-msgid "Resize drill(s) failed. Please enter a diameter for resize."
-msgstr ""
-"Die Größe der Bohrer ist fehlgeschlagen. Bitte geben Sie einen Durchmesser "
-"für die Größenänderung ein."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1112
-msgid "Done. Drill/Slot Resize completed."
-msgstr "Getan. Bohrer / Schlitz Größenänderung abgeschlossen."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1115
-msgid "Cancelled. No drills/slots selected for resize ..."
-msgstr "Abgebrochen. Keine Bohrer / Schlitze für Größenänderung ausgewählt ..."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1153
-#: flatcamEditors/FlatCAMGrbEditor.py:1939
-msgid "Click on reference location ..."
-msgstr "Klicken Sie auf die Referenzposition ..."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1210
-msgid "Done. Drill(s) Move completed."
-msgstr "Erledigt. Bohrer Bewegen abgeschlossen."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1318
-msgid "Done. Drill(s) copied."
-msgstr "Erledigt. Bohrer kopiert."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1557
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:26
-msgid "Excellon Editor"
-msgstr "Excellon Editor"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1564
-#: flatcamEditors/FlatCAMGrbEditor.py:2462
-msgid "Name:"
-msgstr "Name:"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1570 flatcamGUI/ObjectUI.py:761
-#: flatcamGUI/ObjectUI.py:1465 flatcamTools/ToolNCC.py:120
-#: flatcamTools/ToolPaint.py:115 flatcamTools/ToolSolderPaste.py:74
-msgid "Tools Table"
-msgstr "Werkzeugtabelle"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1572 flatcamGUI/ObjectUI.py:763
-msgid ""
-"Tools in this Excellon object\n"
-"when are used for drilling."
-msgstr ""
-"Werkzeuge in diesem Excellon-Objekt\n"
-"Wann werden zum Bohren verwendet."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1584
-#: flatcamEditors/FlatCAMExcEditor.py:3066 flatcamGUI/ObjectUI.py:781
-#: flatcamObjects/FlatCAMExcellon.py:1098
-#: flatcamObjects/FlatCAMExcellon.py:1188
-#: flatcamObjects/FlatCAMExcellon.py:1373 flatcamTools/ToolNCC.py:132
-#: flatcamTools/ToolPaint.py:128 flatcamTools/ToolPcbWizard.py:76
-#: flatcamTools/ToolProperties.py:416 flatcamTools/ToolProperties.py:476
-#: flatcamTools/ToolSolderPaste.py:85 tclCommands/TclCommandDrillcncjob.py:193
-msgid "Diameter"
-msgstr "Durchmesser"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1592
-msgid "Add/Delete Tool"
-msgstr "Werkzeug hinzufügen / löschen"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1594
-msgid ""
-"Add/Delete a tool to the tool list\n"
-"for this Excellon object."
-msgstr ""
-"Werkzeug zur Werkzeugliste hinzufügen / löschen\n"
-"für dieses Excellon-Objekt."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1606 flatcamGUI/ObjectUI.py:1585
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:57
-msgid "Diameter for the new tool"
-msgstr "Durchmesser für das neue Werkzeug"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1616
-msgid "Add Tool"
-msgstr "Werkzeug hinzufügen"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1618
-msgid ""
-"Add a new tool to the tool list\n"
-"with the diameter specified above."
-msgstr ""
-"Fügen Sie der Werkzeugliste ein neues Werkzeug hinzu\n"
-"mit dem oben angegebenen Durchmesser."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1630
-msgid "Delete Tool"
-msgstr "Werkzeug löschen"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1632
-msgid ""
-"Delete a tool in the tool list\n"
-"by selecting a row in the tool table."
-msgstr ""
-"Löschen Sie ein Werkzeug in der Werkzeugliste\n"
-"indem Sie eine Zeile in der Werkzeugtabelle auswählen."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1650 flatcamGUI/FlatCAMGUI.py:2019
-msgid "Resize Drill(s)"
-msgstr "Größe der Bohrer ändern"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1652
-msgid "Resize a drill or a selection of drills."
-msgstr "Ändern Sie die Größe eines Bohrers oder einer Auswahl von Bohrern."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1659
-msgid "Resize Dia"
-msgstr "Durchmesser ändern"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1661
-msgid "Diameter to resize to."
-msgstr "Durchmesser zur Größenänderung."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1672
-msgid "Resize"
-msgstr "Größe ändern"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1674
-msgid "Resize drill(s)"
-msgstr "Bohrer verkleinern"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1699 flatcamGUI/FlatCAMGUI.py:2018
-#: flatcamGUI/FlatCAMGUI.py:2270
-msgid "Add Drill Array"
-msgstr "Bohrer-Array hinzufügen"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1701
-msgid "Add an array of drills (linear or circular array)"
-msgstr ""
-"Hinzufügen eines Arrays von Bohrern (lineares oder kreisförmiges Array)"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1707
-msgid ""
-"Select the type of drills array to create.\n"
-"It can be Linear X(Y) or Circular"
-msgstr ""
-"Wählen Sie den Typ des zu erstellenden Bohrfelds aus.\n"
-"Es kann lineares X (Y) oder rund sein"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1710
-#: flatcamEditors/FlatCAMExcEditor.py:1924
-#: flatcamEditors/FlatCAMGrbEditor.py:2775
-msgid "Linear"
-msgstr "Linear"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1711
-#: flatcamEditors/FlatCAMExcEditor.py:1925
-#: flatcamEditors/FlatCAMGrbEditor.py:2776 flatcamGUI/ObjectUI.py:316
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:52
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:149
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:107
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:52
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:151
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:70
-#: flatcamTools/ToolExtractDrills.py:78 flatcamTools/ToolExtractDrills.py:201
-#: flatcamTools/ToolFiducials.py:220 flatcamTools/ToolNCC.py:221
-#: flatcamTools/ToolPaint.py:204 flatcamTools/ToolPunchGerber.py:89
-#: flatcamTools/ToolPunchGerber.py:229
-msgid "Circular"
-msgstr "Kreisförmig"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1719
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:68
-msgid "Nr of drills"
-msgstr "Anzahl der Bohrer"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1720
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:70
-msgid "Specify how many drills to be in the array."
-msgstr "Geben Sie an, wie viele Drills im Array enthalten sein sollen."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1738
-#: flatcamEditors/FlatCAMExcEditor.py:1788
-#: flatcamEditors/FlatCAMExcEditor.py:1860
-#: flatcamEditors/FlatCAMExcEditor.py:1953
-#: flatcamEditors/FlatCAMExcEditor.py:2004
-#: flatcamEditors/FlatCAMGrbEditor.py:1573
-#: flatcamEditors/FlatCAMGrbEditor.py:2804
-#: flatcamEditors/FlatCAMGrbEditor.py:2853
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:178
-msgid "Direction"
-msgstr "Richtung"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1740
-#: flatcamEditors/FlatCAMExcEditor.py:1955
-#: flatcamEditors/FlatCAMGrbEditor.py:2806
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:86
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:234
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:122
-msgid ""
-"Direction on which the linear array is oriented:\n"
-"- 'X' - horizontal axis \n"
-"- 'Y' - vertical axis or \n"
-"- 'Angle' - a custom angle for the array inclination"
-msgstr ""
-"Richtung, auf die das lineare Array ausgerichtet ist:\n"
-"- 'X' - horizontale Achse\n"
-"- 'Y' - vertikale Achse oder\n"
-"- 'Winkel' - ein benutzerdefinierter Winkel für die Neigung des Arrays"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1747
-#: flatcamEditors/FlatCAMExcEditor.py:1869
-#: flatcamEditors/FlatCAMExcEditor.py:1962
-#: flatcamEditors/FlatCAMGrbEditor.py:2813
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:92
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:187
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:240
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:128
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:208
-#: flatcamTools/ToolFilm.py:256
-msgid "X"
-msgstr "X"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1748
-#: flatcamEditors/FlatCAMExcEditor.py:1870
-#: flatcamEditors/FlatCAMExcEditor.py:1963
-#: flatcamEditors/FlatCAMGrbEditor.py:2814
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:93
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:188
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:241
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:129
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:209
-#: flatcamTools/ToolFilm.py:257
-msgid "Y"
-msgstr "Y"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1749
-#: flatcamEditors/FlatCAMExcEditor.py:1766
-#: flatcamEditors/FlatCAMExcEditor.py:1800
-#: flatcamEditors/FlatCAMExcEditor.py:1871
-#: flatcamEditors/FlatCAMExcEditor.py:1875
-#: flatcamEditors/FlatCAMExcEditor.py:1964
-#: flatcamEditors/FlatCAMExcEditor.py:1982
-#: flatcamEditors/FlatCAMExcEditor.py:2016
-#: flatcamEditors/FlatCAMGrbEditor.py:2815
-#: flatcamEditors/FlatCAMGrbEditor.py:2832
-#: flatcamEditors/FlatCAMGrbEditor.py:2868
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:94
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:113
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:189
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:194
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:242
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:263
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:130
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:148
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:53
-#: flatcamTools/ToolDistance.py:120 flatcamTools/ToolDistanceMin.py:69
-#: flatcamTools/ToolTransform.py:60
-msgid "Angle"
-msgstr "Winkel"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1753
-#: flatcamEditors/FlatCAMExcEditor.py:1968
-#: flatcamEditors/FlatCAMGrbEditor.py:2819
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:100
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:248
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:136
-msgid "Pitch"
-msgstr "Abstand"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1755
-#: flatcamEditors/FlatCAMExcEditor.py:1970
-#: flatcamEditors/FlatCAMGrbEditor.py:2821
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:102
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:250
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:138
-msgid "Pitch = Distance between elements of the array."
-msgstr "Abstand = Abstand zwischen Elementen des Arrays."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1768
-#: flatcamEditors/FlatCAMExcEditor.py:1984
-msgid ""
-"Angle at which the linear array is placed.\n"
-"The precision is of max 2 decimals.\n"
-"Min value is: -360 degrees.\n"
-"Max value is: 360.00 degrees."
-msgstr ""
-"Winkel, bei dem das lineare Feld platziert wird.\n"
-"Die Genauigkeit beträgt maximal 2 Dezimalstellen.\n"
-"Der Mindestwert beträgt -360 Grad.\n"
-"Maximalwert ist: 360.00 Grad."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1789
-#: flatcamEditors/FlatCAMExcEditor.py:2005
-#: flatcamEditors/FlatCAMGrbEditor.py:2855
-msgid ""
-"Direction for circular array.Can be CW = clockwise or CCW = counter "
-"clockwise."
-msgstr ""
-"Richtung für kreisförmige Anordnung. Kann CW = Uhrzeigersinn oder CCW = "
-"Gegenuhrzeigersinn sein."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1796
-#: flatcamEditors/FlatCAMExcEditor.py:2012
-#: flatcamEditors/FlatCAMGrbEditor.py:2863
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:129
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:136
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:286
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:142
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:170
-msgid "CW"
-msgstr "CW"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1797
-#: flatcamEditors/FlatCAMExcEditor.py:2013
-#: flatcamEditors/FlatCAMGrbEditor.py:2864
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:130
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:137
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:287
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:143
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:171
-msgid "CCW"
-msgstr "CCW"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1801
-#: flatcamEditors/FlatCAMExcEditor.py:2017
-#: flatcamEditors/FlatCAMGrbEditor.py:2870
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:115
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:145
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:265
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:295
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:150
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:179
-msgid "Angle at which each element in circular array is placed."
-msgstr ""
-"Winkel, um den jedes Element in einer kreisförmigen Anordnung platziert wird."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1835
-msgid "Slot Parameters"
-msgstr "Schlitze-Parameter"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1837
-msgid ""
-"Parameters for adding a slot (hole with oval shape)\n"
-"either single or as an part of an array."
-msgstr ""
-"Parameter zum Hinzufügen eines Schlitzes (Loch mit ovaler Form)\n"
-"entweder einzeln oder als Teil eines Arrays."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1846
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162
-#: flatcamTools/ToolProperties.py:559
-msgid "Length"
-msgstr "Länge"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1848
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:164
-msgid "Length = The length of the slot."
-msgstr "Länge = Die Länge des Schlitzes."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1862
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:180
-msgid ""
-"Direction on which the slot is oriented:\n"
-"- 'X' - horizontal axis \n"
-"- 'Y' - vertical axis or \n"
-"- 'Angle' - a custom angle for the slot inclination"
-msgstr ""
-"Richtung, in die der Steckplatz ausgerichtet ist:\n"
-"- 'X' - horizontale Achse\n"
-"- 'Y' - vertikale Achse oder\n"
-"- 'Winkel' - Ein benutzerdefinierter Winkel für die Schlitzneigung"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1877
-msgid ""
-"Angle at which the slot is placed.\n"
-"The precision is of max 2 decimals.\n"
-"Min value is: -360 degrees.\n"
-"Max value is: 360.00 degrees."
-msgstr ""
-"Winkel, in dem der Schlitz platziert ist.\n"
-"Die Genauigkeit beträgt maximal 2 Dezimalstellen.\n"
-"Der Mindestwert beträgt: -360 Grad.\n"
-"Maximaler Wert ist: 360.00 Grad."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1910
-msgid "Slot Array Parameters"
-msgstr "Schlitzes Array-Parameter"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1912
-msgid "Parameters for the array of slots (linear or circular array)"
-msgstr ""
-"Parameter für das Array von Schlitzes (lineares oder kreisförmiges Array)"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1921
-msgid ""
-"Select the type of slot array to create.\n"
-"It can be Linear X(Y) or Circular"
-msgstr ""
-"Wählen Sie den Typ des zu erstellenden Slot-Arrays.\n"
-"Es kann ein lineares X (Y) oder ein kreisförmiges sein"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1933
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:219
-msgid "Nr of slots"
-msgstr "Anzahl der Slots"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1934
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:221
-msgid "Specify how many slots to be in the array."
-msgstr "Geben Sie an, wie viele Steckplätze sich im Array befinden sollen."
-
-#: flatcamEditors/FlatCAMExcEditor.py:2452
-#: flatcamObjects/FlatCAMExcellon.py:410
-msgid "Total Drills"
-msgstr "Bohrungen insgesamt"
-
-#: flatcamEditors/FlatCAMExcEditor.py:2484
-#: flatcamObjects/FlatCAMExcellon.py:441
-msgid "Total Slots"
-msgstr "Schlitz insgesamt"
-
-#: flatcamEditors/FlatCAMExcEditor.py:2559
-#: flatcamEditors/FlatCAMGeoEditor.py:1076
-#: flatcamEditors/FlatCAMGeoEditor.py:1117
-#: flatcamEditors/FlatCAMGeoEditor.py:1145
-#: flatcamEditors/FlatCAMGeoEditor.py:1173
-#: flatcamEditors/FlatCAMGeoEditor.py:1217
-#: flatcamEditors/FlatCAMGeoEditor.py:1252
-#: flatcamEditors/FlatCAMGeoEditor.py:1280
-#: flatcamObjects/FlatCAMGeometry.py:599 flatcamObjects/FlatCAMGeometry.py:1033
-#: flatcamObjects/FlatCAMGeometry.py:1780
-#: flatcamObjects/FlatCAMGeometry.py:2424 flatcamTools/ToolNCC.py:1498
-#: flatcamTools/ToolPaint.py:1249 flatcamTools/ToolPaint.py:1420
-#: flatcamTools/ToolSolderPaste.py:883 flatcamTools/ToolSolderPaste.py:956
-msgid "Wrong value format entered, use a number."
-msgstr "Falsches Wertformat eingegeben, eine Zahl verwenden."
-
-#: flatcamEditors/FlatCAMExcEditor.py:2570
-msgid ""
-"Tool already in the original or actual tool list.\n"
-"Save and reedit Excellon if you need to add this tool. "
-msgstr ""
-"Werkzeug bereits in der ursprünglichen oder tatsächlichen Werkzeugliste.\n"
-"Speichern Sie Excellon und bearbeiten Sie es erneut, wenn Sie dieses Tool "
-"hinzufügen müssen. "
-
-#: flatcamEditors/FlatCAMExcEditor.py:2579 flatcamGUI/FlatCAMGUI.py:4071
-msgid "Added new tool with dia"
-msgstr "Neues Werkzeug mit Durchmesser hinzugefügt"
-
-#: flatcamEditors/FlatCAMExcEditor.py:2612
-msgid "Select a tool in Tool Table"
-msgstr "Wählen Sie ein Werkzeug in der Werkzeugtabelle aus"
-
-#: flatcamEditors/FlatCAMExcEditor.py:2642
-msgid "Deleted tool with diameter"
-msgstr "Gelöschtes Werkzeug mit Durchmesser"
-
-#: flatcamEditors/FlatCAMExcEditor.py:2790
-msgid "Done. Tool edit completed."
-msgstr "Erledigt. Werkzeugbearbeitung abgeschlossen."
-
-#: flatcamEditors/FlatCAMExcEditor.py:3352
-msgid "There are no Tools definitions in the file. Aborting Excellon creation."
-msgstr ""
-"Die Datei enthält keine Werkzeugdefinitionen. Abbruch der Excellon-"
-"Erstellung."
-
-#: flatcamEditors/FlatCAMExcEditor.py:3356
-msgid "An internal error has ocurred. See Shell.\n"
-msgstr ""
-"Ein interner Fehler ist aufgetreten. Siehe Shell.\n"
-"\n"
-
-#: flatcamEditors/FlatCAMExcEditor.py:3361
-msgid "Creating Excellon."
-msgstr "Excellon erstellen."
-
-#: flatcamEditors/FlatCAMExcEditor.py:3373
-msgid "Excellon editing finished."
-msgstr "Excellon-Bearbeitung abgeschlossen."
-
-#: flatcamEditors/FlatCAMExcEditor.py:3390
-msgid "Cancelled. There is no Tool/Drill selected"
-msgstr "Abgebrochen. Es ist kein Werkzeug / Bohrer ausgewählt"
-
-#: flatcamEditors/FlatCAMExcEditor.py:4003
-msgid "Done. Drill(s) deleted."
-msgstr "Erledigt. Bohrer gelöscht."
-
-#: flatcamEditors/FlatCAMExcEditor.py:4076
-#: flatcamEditors/FlatCAMExcEditor.py:4086
-#: flatcamEditors/FlatCAMGrbEditor.py:5063
-msgid "Click on the circular array Center position"
-msgstr "Klicken Sie auf die kreisförmige Anordnung in der Mitte"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:85
-msgid "Buffer distance:"
-msgstr "Pufferabstand:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:86
-msgid "Buffer corner:"
-msgstr "Pufferecke:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:88
-msgid ""
-"There are 3 types of corners:\n"
-" - 'Round': the corner is rounded for exterior buffer.\n"
-" - 'Square': the corner is met in a sharp angle for exterior buffer.\n"
-" - 'Beveled': the corner is a line that directly connects the features "
-"meeting in the corner"
-msgstr ""
-"Es gibt 3 Arten von Ecken:\n"
-"- 'Rund': Die Ecke wird für den Außenpuffer abgerundet.\n"
-"- 'Quadrat:' Die Ecke wird für den äußeren Puffer in einem spitzen Winkel "
-"getroffen.\n"
-"- 'Abgeschrägt:' Die Ecke ist eine Linie, die die Features, die sich in der "
-"Ecke treffen, direkt verbindet"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:94
-#: flatcamEditors/FlatCAMGrbEditor.py:2631
-msgid "Round"
-msgstr "Runden"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:95
-#: flatcamEditors/FlatCAMGrbEditor.py:2632 flatcamGUI/ObjectUI.py:2073
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:217
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:68
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:175
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:68
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:177
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:143
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:291
-#: flatcamTools/ToolExtractDrills.py:94 flatcamTools/ToolExtractDrills.py:227
-#: flatcamTools/ToolNCC.py:583 flatcamTools/ToolPaint.py:527
-#: flatcamTools/ToolPunchGerber.py:105 flatcamTools/ToolPunchGerber.py:255
-#: flatcamTools/ToolQRCode.py:198
-msgid "Square"
-msgstr "Quadrat"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:96
-#: flatcamEditors/FlatCAMGrbEditor.py:2633
-msgid "Beveled"
-msgstr "Abgeschrägt"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:103
-msgid "Buffer Interior"
-msgstr "Pufferinnenraum"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:105
-msgid "Buffer Exterior"
-msgstr "Puffer außen"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:111
-msgid "Full Buffer"
-msgstr "Voller Puffer"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:132
-#: flatcamEditors/FlatCAMGeoEditor.py:3017 flatcamGUI/FlatCAMGUI.py:1928
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:190
-msgid "Buffer Tool"
-msgstr "Pufferwerkzeug"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:144
-#: flatcamEditors/FlatCAMGeoEditor.py:161
-#: flatcamEditors/FlatCAMGeoEditor.py:178
-#: flatcamEditors/FlatCAMGeoEditor.py:3036
-#: flatcamEditors/FlatCAMGeoEditor.py:3064
-#: flatcamEditors/FlatCAMGeoEditor.py:3092
-#: flatcamEditors/FlatCAMGrbEditor.py:5116
-msgid "Buffer distance value is missing or wrong format. Add it and retry."
-msgstr ""
-"Pufferabstandswert fehlt oder falsches Format. Fügen Sie es hinzu und "
-"versuchen Sie es erneut."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:242
-msgid "Font"
-msgstr "Schrift"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:323 flatcamGUI/FlatCAMGUI.py:2208
-msgid "Text"
-msgstr "Text"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:349
-msgid "Text Tool"
-msgstr "Textwerkzeug"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:405 flatcamGUI/FlatCAMGUI.py:511
-#: flatcamGUI/FlatCAMGUI.py:1158 flatcamGUI/ObjectUI.py:818
-#: flatcamGUI/ObjectUI.py:1662 flatcamObjects/FlatCAMExcellon.py:742
-#: flatcamObjects/FlatCAMExcellon.py:1084 flatcamObjects/FlatCAMGeometry.py:759
-#: flatcamTools/ToolNCC.py:331 flatcamTools/ToolNCC.py:797
-#: flatcamTools/ToolPaint.py:314 flatcamTools/ToolPaint.py:767
-msgid "Tool"
-msgstr "Werkzeug"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:439 flatcamGUI/ObjectUI.py:364
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:43
-msgid "Tool dia"
-msgstr "Werkzeugdurchmesser"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:441
-msgid "Diameter of the tool to be used in the operation."
-msgstr "Durchmesser des im Betrieb zu verwendenden Werkzeugs."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:487
-msgid ""
-"Algorithm to paint the polygons:\n"
-"- Standard: Fixed step inwards.\n"
-"- Seed-based: Outwards from seed.\n"
-"- Line-based: Parallel lines."
-msgstr ""
-"Algorithmus zum Malen der Polygone:\n"
-"- Standard: Schritt nach innen behoben.\n"
-"- Samenbasiert: Aus dem Samen heraus.\n"
-"- Linienbasiert: Parallele Linien."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:506
-msgid "Connect:"
-msgstr "Verbinden:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:516
-msgid "Contour:"
-msgstr "Kontur:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:529 flatcamGUI/FlatCAMGUI.py:2212
-msgid "Paint"
-msgstr "Malen"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:547 flatcamGUI/FlatCAMGUI.py:924
-#: flatcamGUI/FlatCAMGUI.py:2628 flatcamGUI/ObjectUI.py:2139
-#: flatcamTools/ToolPaint.py:43 flatcamTools/ToolPaint.py:738
-msgid "Paint Tool"
-msgstr "Werkzeug Malen"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:583
-#: flatcamEditors/FlatCAMGeoEditor.py:1055
-#: flatcamEditors/FlatCAMGeoEditor.py:3024
-#: flatcamEditors/FlatCAMGeoEditor.py:3052
-#: flatcamEditors/FlatCAMGeoEditor.py:3080
-#: flatcamEditors/FlatCAMGeoEditor.py:4502
-#: flatcamEditors/FlatCAMGrbEditor.py:5767
-msgid "Cancelled. No shape selected."
-msgstr "Abgebrochen. Keine Form ausgewählt."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:596
-#: flatcamEditors/FlatCAMGeoEditor.py:3042
-#: flatcamEditors/FlatCAMGeoEditor.py:3070
-#: flatcamEditors/FlatCAMGeoEditor.py:3098
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:59
-#: flatcamTools/ToolProperties.py:117 flatcamTools/ToolProperties.py:162
-msgid "Tools"
-msgstr "Werkzeuge"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:607
-#: flatcamEditors/FlatCAMGeoEditor.py:991
-#: flatcamEditors/FlatCAMGrbEditor.py:5306
-#: flatcamEditors/FlatCAMGrbEditor.py:5703 flatcamGUI/FlatCAMGUI.py:945
-#: flatcamGUI/FlatCAMGUI.py:2649 flatcamTools/ToolTransform.py:460
-msgid "Transform Tool"
-msgstr "Werkzeug Umwandeln"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:608
-#: flatcamEditors/FlatCAMGeoEditor.py:673
-#: flatcamEditors/FlatCAMGrbEditor.py:5307
-#: flatcamEditors/FlatCAMGrbEditor.py:5372
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:45
-#: flatcamTools/ToolTransform.py:24 flatcamTools/ToolTransform.py:466
-msgid "Rotate"
-msgstr "Drehen"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:609
-#: flatcamEditors/FlatCAMGrbEditor.py:5308 flatcamTools/ToolTransform.py:25
-msgid "Skew/Shear"
-msgstr "Neigung/Schere"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:610
-#: flatcamEditors/FlatCAMGrbEditor.py:2680
-#: flatcamEditors/FlatCAMGrbEditor.py:5309 flatcamGUI/FlatCAMGUI.py:1063
-#: flatcamGUI/FlatCAMGUI.py:2140 flatcamGUI/FlatCAMGUI.py:2255
-#: flatcamGUI/FlatCAMGUI.py:2767 flatcamGUI/ObjectUI.py:125
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:95
-#: flatcamTools/ToolTransform.py:26
-msgid "Scale"
-msgstr "Skalieren"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:611
-#: flatcamEditors/FlatCAMGrbEditor.py:5310 flatcamTools/ToolTransform.py:27
-msgid "Mirror (Flip)"
-msgstr "Spiegeln (Flip)"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:625
-#: flatcamEditors/FlatCAMGrbEditor.py:5324 flatcamGUI/FlatCAMGUI.py:856
-#: flatcamGUI/FlatCAMGUI.py:2564
-msgid "Editor"
-msgstr "Editor"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:657
-#: flatcamEditors/FlatCAMGrbEditor.py:5356
-msgid "Angle:"
-msgstr "Winkel:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:659
-#: flatcamEditors/FlatCAMGrbEditor.py:5358
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:55
-#: flatcamTools/ToolTransform.py:62
-msgid ""
-"Angle for Rotation action, in degrees.\n"
-"Float number between -360 and 359.\n"
-"Positive numbers for CW motion.\n"
-"Negative numbers for CCW motion."
-msgstr ""
-"Drehwinkel in Grad.\n"
-"Float-Nummer zwischen -360 und 359.\n"
-"Positive Zahlen für CW-Bewegung.\n"
-"Negative Zahlen für CCW-Bewegung."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:675
-#: flatcamEditors/FlatCAMGrbEditor.py:5374
-msgid ""
-"Rotate the selected shape(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected shapes."
-msgstr ""
-"Die ausgewählten Formen drehen.\n"
-"Der Bezugspunkt ist die Mitte von\n"
-"der Begrenzungsrahmen für alle ausgewählten Formen."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:698
-#: flatcamEditors/FlatCAMGrbEditor.py:5397
-msgid "Angle X:"
-msgstr "Winkel X:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:700
-#: flatcamEditors/FlatCAMGeoEditor.py:720
-#: flatcamEditors/FlatCAMGrbEditor.py:5399
-#: flatcamEditors/FlatCAMGrbEditor.py:5419
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:74
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:88
-#: flatcamTools/ToolCalibration.py:505 flatcamTools/ToolCalibration.py:518
-msgid ""
-"Angle for Skew action, in degrees.\n"
-"Float number between -360 and 359."
-msgstr ""
-"Winkel für die Schräglage in Grad.\n"
-"Float-Nummer zwischen -360 und 359."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:711
-#: flatcamEditors/FlatCAMGrbEditor.py:5410 flatcamTools/ToolTransform.py:467
-msgid "Skew X"
-msgstr "Neigung X"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:713
-#: flatcamEditors/FlatCAMGeoEditor.py:733
-#: flatcamEditors/FlatCAMGrbEditor.py:5412
-#: flatcamEditors/FlatCAMGrbEditor.py:5432
-msgid ""
-"Skew/shear the selected shape(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected shapes."
-msgstr ""
-"Schrägstellung/Scherung der ausgewählten Form(en).\n"
-"Der Bezugspunkt ist die Mitte von\n"
-"der Begrenzungsrahmen für alle ausgewählten Formen."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:718
-#: flatcamEditors/FlatCAMGrbEditor.py:5417
-msgid "Angle Y:"
-msgstr "Winkel Y:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:731
-#: flatcamEditors/FlatCAMGrbEditor.py:5430 flatcamTools/ToolTransform.py:468
-msgid "Skew Y"
-msgstr "Neigung Y"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:759
-#: flatcamEditors/FlatCAMGrbEditor.py:5458
-msgid "Factor X:"
-msgstr "Faktor X:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:761
-#: flatcamEditors/FlatCAMGrbEditor.py:5460 flatcamTools/ToolCalibration.py:469
-msgid "Factor for Scale action over X axis."
-msgstr "Faktor für die Skalierungsaktion über der X-Achse."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:771
-#: flatcamEditors/FlatCAMGrbEditor.py:5470 flatcamTools/ToolTransform.py:469
-msgid "Scale X"
-msgstr "Maßstab X"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:773
-#: flatcamEditors/FlatCAMGeoEditor.py:792
-#: flatcamEditors/FlatCAMGrbEditor.py:5472
-#: flatcamEditors/FlatCAMGrbEditor.py:5491
-msgid ""
-"Scale the selected shape(s).\n"
-"The point of reference depends on \n"
-"the Scale reference checkbox state."
-msgstr ""
-"Skalieren Sie die ausgewählten Formen.\n"
-"Der Bezugspunkt hängt von ab\n"
-"das Kontrollkästchen Skalenreferenz."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:778
-#: flatcamEditors/FlatCAMGrbEditor.py:5477
-msgid "Factor Y:"
-msgstr "Faktor Y:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:780
-#: flatcamEditors/FlatCAMGrbEditor.py:5479 flatcamTools/ToolCalibration.py:481
-msgid "Factor for Scale action over Y axis."
-msgstr "Faktor für die Skalierungsaktion über der Y-Achse."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:790
-#: flatcamEditors/FlatCAMGrbEditor.py:5489 flatcamTools/ToolTransform.py:470
-msgid "Scale Y"
-msgstr "Maßstab Y"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:799
-#: flatcamEditors/FlatCAMGrbEditor.py:5498
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:124
-#: flatcamTools/ToolTransform.py:189
-msgid "Link"
-msgstr "Verknüpfung"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:801
-#: flatcamEditors/FlatCAMGrbEditor.py:5500
-msgid ""
-"Scale the selected shape(s)\n"
-"using the Scale Factor X for both axis."
-msgstr ""
-"Skalieren der ausgewählten Form (en)\n"
-"Verwenden des Skalierungsfaktors X für beide Achsen."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:807
-#: flatcamEditors/FlatCAMGrbEditor.py:5506
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:132
-#: flatcamTools/ToolTransform.py:196
-msgid "Scale Reference"
-msgstr "Skalenreferenz"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:809
-#: flatcamEditors/FlatCAMGrbEditor.py:5508
-msgid ""
-"Scale the selected shape(s)\n"
-"using the origin reference when checked,\n"
-"and the center of the biggest bounding box\n"
-"of the selected shapes when unchecked."
-msgstr ""
-"Skalieren der ausgewählten Form (en)\n"
-"unter Verwendung der Ursprungsreferenz, wenn geprüft\n"
-"und die Mitte der größten Begrenzungsbox\n"
-"der ausgewählten Formen, wenn nicht markiert."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:837
-#: flatcamEditors/FlatCAMGrbEditor.py:5537
-msgid "Value X:"
-msgstr "Wert X:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:839
-#: flatcamEditors/FlatCAMGrbEditor.py:5539
-msgid "Value for Offset action on X axis."
-msgstr "Wert für die Offset-Aktion auf der X-Achse."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:849
-#: flatcamEditors/FlatCAMGrbEditor.py:5549 flatcamTools/ToolTransform.py:473
-msgid "Offset X"
-msgstr "Versatz X"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:851
-#: flatcamEditors/FlatCAMGeoEditor.py:871
-#: flatcamEditors/FlatCAMGrbEditor.py:5551
-#: flatcamEditors/FlatCAMGrbEditor.py:5571
-msgid ""
-"Offset the selected shape(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected shapes.\n"
-msgstr ""
-"Versetzt die ausgewählten Formen.\n"
-"Der Bezugspunkt ist die Mitte von\n"
-"der Begrenzungsrahmen für alle ausgewählten Formen.\n"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:857
-#: flatcamEditors/FlatCAMGrbEditor.py:5557
-msgid "Value Y:"
-msgstr "Wert Y:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:859
-#: flatcamEditors/FlatCAMGrbEditor.py:5559
-msgid "Value for Offset action on Y axis."
-msgstr "Wert für die Offset-Aktion auf der Y-Achse."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:869
-#: flatcamEditors/FlatCAMGrbEditor.py:5569 flatcamTools/ToolTransform.py:474
-msgid "Offset Y"
-msgstr "Versatz Y"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:900
-#: flatcamEditors/FlatCAMGrbEditor.py:5600 flatcamTools/ToolTransform.py:475
-msgid "Flip on X"
-msgstr "Flip auf X"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:902
-#: flatcamEditors/FlatCAMGeoEditor.py:909
-#: flatcamEditors/FlatCAMGrbEditor.py:5602
-#: flatcamEditors/FlatCAMGrbEditor.py:5609
-msgid ""
-"Flip the selected shape(s) over the X axis.\n"
-"Does not create a new shape."
-msgstr ""
-"Kippen Sie die ausgewählte Form (en) über die X-Achse.\n"
-"Erzeugt keine neue Form."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:907
-#: flatcamEditors/FlatCAMGrbEditor.py:5607 flatcamTools/ToolTransform.py:476
-msgid "Flip on Y"
-msgstr "Flip auf Y"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:915
-#: flatcamEditors/FlatCAMGrbEditor.py:5615
-msgid "Ref Pt"
-msgstr "Ref. Pt"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:917
-#: flatcamEditors/FlatCAMGrbEditor.py:5617
-msgid ""
-"Flip the selected shape(s)\n"
-"around the point in Point Entry Field.\n"
-"\n"
-"The point coordinates can be captured by\n"
-"left click on canvas together with pressing\n"
-"SHIFT key. \n"
-"Then click Add button to insert coordinates.\n"
-"Or enter the coords in format (x, y) in the\n"
-"Point Entry field and click Flip on X(Y)"
-msgstr ""
-"Die ausgewählten Formen umdrehen\n"
-"um den Punkt im Eingabefeld.\n"
-"\n"
-"Die Punktkoordinaten können mit erfasst werden\n"
-"Klicken Sie mit der linken Maustaste auf die Leinwand\n"
-"Shift Taste.\n"
-"Klicken Sie dann auf die Schaltfläche Hinzufügen, um die Koordinaten "
-"einzufügen.\n"
-"Oder geben Sie die Koordinaten im Format (x, y) in ein\n"
-"Punkt-Eingabefeld und klicken Sie auf X (Y) drehen"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:929
-#: flatcamEditors/FlatCAMGrbEditor.py:5629
-msgid "Point:"
-msgstr "Punkt:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:931
-#: flatcamEditors/FlatCAMGrbEditor.py:5631 flatcamTools/ToolTransform.py:299
-msgid ""
-"Coordinates in format (x, y) used as reference for mirroring.\n"
-"The 'x' in (x, y) will be used when using Flip on X and\n"
-"the 'y' in (x, y) will be used when using Flip on Y."
-msgstr ""
-"Koordinaten im Format (x, y), die als Referenz für die Spiegelung verwendet "
-"werden.\n"
-"Das 'x' in (x, y) wird verwendet, wenn Sie bei X und\n"
-"Das 'y' in (x, y) wird verwendet, wenn Flip auf Y verwendet wird."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:941
-#: flatcamEditors/FlatCAMGrbEditor.py:5643 flatcamTools/ToolTransform.py:309
-msgid ""
-"The point coordinates can be captured by\n"
-"left click on canvas together with pressing\n"
-"SHIFT key. Then click Add button to insert."
-msgstr ""
-"Die Punktkoordinaten können mit erfasst werden\n"
-"Klicken Sie mit der linken Maustaste auf die Leinwand\n"
-"Shift Taste. Klicken Sie dann auf die Schaltfläche Hinzufügen, um sie "
-"einzufügen."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1304
-#: flatcamEditors/FlatCAMGrbEditor.py:5951
-msgid "No shape selected. Please Select a shape to rotate!"
-msgstr "Keine Form ausgewählt Bitte wählen Sie eine Form zum Drehen aus!"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1307
-#: flatcamEditors/FlatCAMGrbEditor.py:5954 flatcamTools/ToolTransform.py:679
-msgid "Appying Rotate"
-msgstr "Anwenden Drehen"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1333
-#: flatcamEditors/FlatCAMGrbEditor.py:5986
-msgid "Done. Rotate completed."
-msgstr "Erledigt. Drehen abgeschlossen."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1335
-msgid "Rotation action was not executed"
-msgstr "Rotationsaktion wurde nicht ausgeführt"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1354
-#: flatcamEditors/FlatCAMGrbEditor.py:6005
-msgid "No shape selected. Please Select a shape to flip!"
-msgstr "Keine Form ausgewählt. Bitte wählen Sie eine Form zum Kippen!"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1357
-#: flatcamEditors/FlatCAMGrbEditor.py:6008 flatcamTools/ToolTransform.py:728
-msgid "Applying Flip"
-msgstr "Flip anwenden"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1386
-#: flatcamEditors/FlatCAMGrbEditor.py:6046 flatcamTools/ToolTransform.py:769
-msgid "Flip on the Y axis done"
-msgstr "Spiegeln Sie die Y-Achse bereit"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1390
-#: flatcamEditors/FlatCAMGrbEditor.py:6055 flatcamTools/ToolTransform.py:778
-msgid "Flip on the X axis done"
-msgstr "Spiegeln Sie die X-Achse bereit"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1398
-msgid "Flip action was not executed"
-msgstr "Spiegeln-Aktion wurde nicht ausgeführt"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1416
-#: flatcamEditors/FlatCAMGrbEditor.py:6075
-msgid "No shape selected. Please Select a shape to shear/skew!"
-msgstr ""
-"Keine Form ausgewählt. Bitte wählen Sie eine Form zum Scheren / "
-"Schrägstellen!"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1419
-#: flatcamEditors/FlatCAMGrbEditor.py:6078 flatcamTools/ToolTransform.py:801
-msgid "Applying Skew"
-msgstr "Schräglauf anwenden"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1442
-#: flatcamEditors/FlatCAMGrbEditor.py:6112
-msgid "Skew on the X axis done"
-msgstr "Schrägstellung auf der X-Achse erfolgt"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1444
-#: flatcamEditors/FlatCAMGrbEditor.py:6114
-msgid "Skew on the Y axis done"
-msgstr "Schrägstellung auf der Y-Achse erfolgt"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1447
-msgid "Skew action was not executed"
-msgstr "Die Versatzaktion wurde nicht ausgeführt"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1469
-#: flatcamEditors/FlatCAMGrbEditor.py:6136
-msgid "No shape selected. Please Select a shape to scale!"
-msgstr "Keine Form ausgewählt. Bitte wählen Sie eine zu skalierende Form!"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1472
-#: flatcamEditors/FlatCAMGrbEditor.py:6139 flatcamTools/ToolTransform.py:847
-msgid "Applying Scale"
-msgstr "Maßstab anwenden"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1504
-#: flatcamEditors/FlatCAMGrbEditor.py:6176
-msgid "Scale on the X axis done"
-msgstr "Skalieren auf der X-Achse erledigt"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1506
-#: flatcamEditors/FlatCAMGrbEditor.py:6178
-msgid "Scale on the Y axis done"
-msgstr "Skalieren auf der Y-Achse erledigt"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1508
-msgid "Scale action was not executed"
-msgstr "Skalierungsaktion wurde nicht ausgeführt"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1523
-#: flatcamEditors/FlatCAMGrbEditor.py:6195
-msgid "No shape selected. Please Select a shape to offset!"
-msgstr "Keine Form ausgewählt. Bitte wählen Sie eine zu versetzende Form!"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1526
-#: flatcamEditors/FlatCAMGrbEditor.py:6198 flatcamTools/ToolTransform.py:897
-msgid "Applying Offset"
-msgstr "Offsetdruck anwenden"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1536
-#: flatcamEditors/FlatCAMGrbEditor.py:6219
-msgid "Offset on the X axis done"
-msgstr "Versatz auf der X-Achse erfolgt"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1538
-#: flatcamEditors/FlatCAMGrbEditor.py:6221
-msgid "Offset on the Y axis done"
-msgstr "Versatz auf der Y-Achse erfolgt"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1541
-msgid "Offset action was not executed"
-msgstr "Offsetaktion wurde nicht ausgeführt"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1545
-#: flatcamEditors/FlatCAMGrbEditor.py:6228
-msgid "Rotate ..."
-msgstr "Drehen ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1546
-#: flatcamEditors/FlatCAMGeoEditor.py:1601
-#: flatcamEditors/FlatCAMGeoEditor.py:1618
-#: flatcamEditors/FlatCAMGrbEditor.py:6229
-#: flatcamEditors/FlatCAMGrbEditor.py:6278
-#: flatcamEditors/FlatCAMGrbEditor.py:6293
-msgid "Enter an Angle Value (degrees)"
-msgstr "Geben Sie einen Winkelwert (Grad) ein"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1555
-#: flatcamEditors/FlatCAMGrbEditor.py:6237
-msgid "Geometry shape rotate done"
-msgstr "Geometrieform drehen fertig"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1559
-#: flatcamEditors/FlatCAMGrbEditor.py:6240
-msgid "Geometry shape rotate cancelled"
-msgstr "Geometrieform drehen abgebrochen"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1564
-#: flatcamEditors/FlatCAMGrbEditor.py:6245
-msgid "Offset on X axis ..."
-msgstr "Versatz auf der X-Achse ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1565
-#: flatcamEditors/FlatCAMGeoEditor.py:1584
-#: flatcamEditors/FlatCAMGrbEditor.py:6246
-#: flatcamEditors/FlatCAMGrbEditor.py:6263
-msgid "Enter a distance Value"
-msgstr "Geben Sie einen Abstandswert ein"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1574
-#: flatcamEditors/FlatCAMGrbEditor.py:6254
-msgid "Geometry shape offset on X axis done"
-msgstr "Geometrieformversatz auf der X-Achse erfolgt"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1578
-#: flatcamEditors/FlatCAMGrbEditor.py:6257
-msgid "Geometry shape offset X cancelled"
-msgstr "[WARNING_NOTCL] Geometrieformversatz X abgebrochen"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1583
-#: flatcamEditors/FlatCAMGrbEditor.py:6262
-msgid "Offset on Y axis ..."
-msgstr "Versatz auf der Y-Achse ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1593
-#: flatcamEditors/FlatCAMGrbEditor.py:6271
-msgid "Geometry shape offset on Y axis done"
-msgstr "Geometrieformversatz auf Y-Achse erfolgt"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1597
-msgid "Geometry shape offset on Y axis canceled"
-msgstr "Geometrieformversatz auf Y-Achse erfolgt"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1600
-#: flatcamEditors/FlatCAMGrbEditor.py:6277
-msgid "Skew on X axis ..."
-msgstr "Neigung auf der X-Achse ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1610
-#: flatcamEditors/FlatCAMGrbEditor.py:6286
-msgid "Geometry shape skew on X axis done"
-msgstr "Geometrieformversatz auf X-Achse"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1614
-msgid "Geometry shape skew on X axis canceled"
-msgstr "Geometrieformversatz auf X-Achse"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1617
-#: flatcamEditors/FlatCAMGrbEditor.py:6292
-msgid "Skew on Y axis ..."
-msgstr "Neigung auf der Y-Achse ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1627
-#: flatcamEditors/FlatCAMGrbEditor.py:6301
-msgid "Geometry shape skew on Y axis done"
-msgstr "Geometrieformversatz auf Y-Achse erfolgt"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1631
-msgid "Geometry shape skew on Y axis canceled"
-msgstr "Geometrieformversatz auf Y-Achse erfolgt"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2008
-#: flatcamEditors/FlatCAMGeoEditor.py:2079
-#: flatcamEditors/FlatCAMGrbEditor.py:1437
-#: flatcamEditors/FlatCAMGrbEditor.py:1515
-msgid "Click on Center point ..."
-msgstr "Klicken Sie auf Mittelpunkt."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2021
-#: flatcamEditors/FlatCAMGrbEditor.py:1447
-msgid "Click on Perimeter point to complete ..."
-msgstr "Klicken Sie auf Umfangspunkt, um den Vorgang abzuschließen."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2053
-msgid "Done. Adding Circle completed."
-msgstr "Erledigt. Hinzufügen des Kreises abgeschlossen."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2107
-#: flatcamEditors/FlatCAMGrbEditor.py:1548
-msgid "Click on Start point ..."
-msgstr "Klicken Sie auf Startpunkt ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2109
-#: flatcamEditors/FlatCAMGrbEditor.py:1550
-msgid "Click on Point3 ..."
-msgstr "Klicken Sie auf Punkt3 ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2111
-#: flatcamEditors/FlatCAMGrbEditor.py:1552
-msgid "Click on Stop point ..."
-msgstr "Klicken Sie auf Haltepunkt ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2116
-#: flatcamEditors/FlatCAMGrbEditor.py:1557
-msgid "Click on Stop point to complete ..."
-msgstr "Klicken Sie auf Stopp, um den Vorgang abzuschließen."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2118
-#: flatcamEditors/FlatCAMGrbEditor.py:1559
-msgid "Click on Point2 to complete ..."
-msgstr "Klicken Sie auf Punkt2, um den Vorgang abzuschließen."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2120
-#: flatcamEditors/FlatCAMGrbEditor.py:1561
-msgid "Click on Center point to complete ..."
-msgstr "Klicken Sie auf Mittelpunkt, um den Vorgang abzuschließen."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2132
-#, python-format
-msgid "Direction: %s"
-msgstr "Richtung: %s"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2146
-#: flatcamEditors/FlatCAMGrbEditor.py:1587
-msgid "Mode: Start -> Stop -> Center. Click on Start point ..."
-msgstr "Modus: Start -> Stopp -> Zentrieren. Klicken Sie auf Startpunkt ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2149
-#: flatcamEditors/FlatCAMGrbEditor.py:1590
-msgid "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..."
-msgstr "Modus: Punkt 1 -> Punkt 3 -> Punkt 2. Klicken Sie auf Punkt1 ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2152
-#: flatcamEditors/FlatCAMGrbEditor.py:1593
-msgid "Mode: Center -> Start -> Stop. Click on Center point ..."
-msgstr "Modus: Mitte -> Start -> Stopp. Klicken Sie auf Mittelpunkt."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2293
-msgid "Done. Arc completed."
-msgstr "Erledigt. Arc abgeschlossen."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2324
-#: flatcamEditors/FlatCAMGeoEditor.py:2397
-msgid "Click on 1st corner ..."
-msgstr "Klicken Sie auf die 1. Ecke ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2336
-msgid "Click on opposite corner to complete ..."
-msgstr ""
-"Klicken Sie auf die gegenüberliegende Ecke, um den Vorgang abzuschließen."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2366
-msgid "Done. Rectangle completed."
-msgstr "Erledigt. Rechteck fertiggestellt."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2410
-#: flatcamObjects/FlatCAMGeometry.py:2648 flatcamTools/ToolNCC.py:1733
-#: flatcamTools/ToolPaint.py:1628
-msgid "Click on next Point or click right mouse button to complete ..."
-msgstr ""
-"Klicken Sie auf den nächsten Punkt oder klicken Sie mit der rechten "
-"Maustaste, um den Vorgang abzuschließen."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2441
-msgid "Done. Polygon completed."
-msgstr "Erledigt. Polygon fertiggestellt."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2455
-#: flatcamEditors/FlatCAMGeoEditor.py:2520
-#: flatcamEditors/FlatCAMGrbEditor.py:1113
-#: flatcamEditors/FlatCAMGrbEditor.py:1324
-msgid "Backtracked one point ..."
-msgstr "Einen Punkt zurückverfolgt ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2498
-msgid "Done. Path completed."
-msgstr "Getan. Pfad abgeschlossen."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2657
-msgid "No shape selected. Select a shape to explode"
-msgstr "Keine Form ausgewählt. Wählen Sie eine Form zum Auflösen aus"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2690
-msgid "Done. Polygons exploded into lines."
-msgstr "Getan. Polygone explodierten in Linien."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2722
-msgid "MOVE: No shape selected. Select a shape to move"
-msgstr "Bewegen: Keine Form ausgewählt. Wähle eine Form zum Bewegen aus"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2725
-#: flatcamEditors/FlatCAMGeoEditor.py:2745
-msgid " MOVE: Click on reference point ..."
-msgstr " Bewegen: Referenzpunkt anklicken ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2730
-msgid " Click on destination point ..."
-msgstr " Klicken Sie auf den Zielpunkt ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2770
-msgid "Done. Geometry(s) Move completed."
-msgstr "Erledigt. Geometrie(n) Bewegung abgeschlossen."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2903
-msgid "Done. Geometry(s) Copy completed."
-msgstr "Erledigt. Geometrie(n) Kopieren abgeschlossen."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2934
-#: flatcamEditors/FlatCAMGrbEditor.py:899
-msgid "Click on 1st point ..."
-msgstr "Klicken Sie auf den 1. Punkt ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2958
-msgid ""
-"Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. "
-"Error"
-msgstr ""
-"Schrift wird nicht unterstützt. Es werden nur Regular, Bold, Italic und "
-"BoldItalic unterstützt. Error"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2966
-msgid "No text to add."
-msgstr "Kein Text zum Hinzufügen."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2976
-msgid " Done. Adding Text completed."
-msgstr " Erledigt. Hinzufügen von Text abgeschlossen."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3013
-msgid "Create buffer geometry ..."
-msgstr "Puffergeometrie erstellen ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3048
-#: flatcamEditors/FlatCAMGrbEditor.py:5160
-msgid "Done. Buffer Tool completed."
-msgstr "Erledigt. Pufferwerkzeug abgeschlossen."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3076
-msgid "Done. Buffer Int Tool completed."
-msgstr "Erledigt. Innenpufferwerkzeug abgeschlossen."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3104
-msgid "Done. Buffer Ext Tool completed."
-msgstr "Erledigt. Außenpufferwerkzeug abgeschlossen."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3153
-#: flatcamEditors/FlatCAMGrbEditor.py:2153
-msgid "Select a shape to act as deletion area ..."
-msgstr "Wählen Sie eine Form als Löschbereich aus ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3155
-#: flatcamEditors/FlatCAMGeoEditor.py:3181
-#: flatcamEditors/FlatCAMGeoEditor.py:3187
-#: flatcamEditors/FlatCAMGrbEditor.py:2155
-msgid "Click to pick-up the erase shape..."
-msgstr "Klicken Sie, um die Löschform aufzunehmen ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3191
-#: flatcamEditors/FlatCAMGrbEditor.py:2214
-msgid "Click to erase ..."
-msgstr "Klicken zum Löschen ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3220
-#: flatcamEditors/FlatCAMGrbEditor.py:2247
-msgid "Done. Eraser tool action completed."
-msgstr "Erledigt. Radiergummi-Aktion abgeschlossen."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3270
-msgid "Create Paint geometry ..."
-msgstr "Malen geometrie erstellen ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3283
-#: flatcamEditors/FlatCAMGrbEditor.py:2410
-msgid "Shape transformations ..."
-msgstr "Formtransformationen ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3339
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:27
-msgid "Geometry Editor"
-msgstr "Geo-Editor"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3345
-#: flatcamEditors/FlatCAMGrbEditor.py:2488
-#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263
-#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326
-#: flatcamTools/ToolCutOut.py:95
-msgid "Type"
-msgstr "Typ"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3345 flatcamGUI/ObjectUI.py:218
-#: flatcamGUI/ObjectUI.py:742 flatcamGUI/ObjectUI.py:1433
-#: flatcamGUI/ObjectUI.py:2235 flatcamGUI/ObjectUI.py:2539
-#: flatcamGUI/ObjectUI.py:2606 flatcamTools/ToolCalibration.py:234
-#: flatcamTools/ToolFiducials.py:73
-msgid "Name"
-msgstr "Name"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3587
-msgid "Ring"
-msgstr "Ring"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3589
-msgid "Line"
-msgstr "Linie"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3591 flatcamGUI/FlatCAMGUI.py:2202
-#: flatcamGUI/ObjectUI.py:2074
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:218
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:328
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:292
-#: flatcamTools/ToolNCC.py:584 flatcamTools/ToolPaint.py:528
-msgid "Polygon"
-msgstr "Polygon"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3593
-msgid "Multi-Line"
-msgstr "Mehrzeilig"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3595
-msgid "Multi-Polygon"
-msgstr "Multi-Polygon"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3602
-msgid "Geo Elem"
-msgstr "Geoelement"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4076
-msgid "Editing MultiGeo Geometry, tool"
-msgstr "Bearbeiten von MultiGeo Geometry, Werkzeug"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4078
-msgid "with diameter"
-msgstr "mit Durchmesser"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4509 flatcamGUI/FlatCAMGUI.py:3753
-#: flatcamGUI/FlatCAMGUI.py:3799 flatcamGUI/FlatCAMGUI.py:3817
-#: flatcamGUI/FlatCAMGUI.py:3961 flatcamGUI/FlatCAMGUI.py:4000
-#: flatcamGUI/FlatCAMGUI.py:4012 flatcamGUI/FlatCAMGUI.py:4029
-msgid "Click on target point."
-msgstr "Klicken Sie auf den Zielpunkt."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4823
-#: flatcamEditors/FlatCAMGeoEditor.py:4858
-msgid "A selection of at least 2 geo items is required to do Intersection."
-msgstr ""
-"Eine Auswahl von mindestens 2 Geo-Elementen ist erforderlich, um die "
-"Kreuzung durchzuführen."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4944
-#: flatcamEditors/FlatCAMGeoEditor.py:5048
-msgid ""
-"Negative buffer value is not accepted. Use Buffer interior to generate an "
-"'inside' shape"
-msgstr ""
-"Negativer Pufferwert wird nicht akzeptiert. Verwenden Sie den "
-"Pufferinnenraum, um eine Innenform zu erzeugen"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4954
-#: flatcamEditors/FlatCAMGeoEditor.py:5007
-#: flatcamEditors/FlatCAMGeoEditor.py:5057
-msgid "Nothing selected for buffering."
-msgstr "Nichts ist für die Pufferung ausgewählt."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4959
-#: flatcamEditors/FlatCAMGeoEditor.py:5011
-#: flatcamEditors/FlatCAMGeoEditor.py:5062
-msgid "Invalid distance for buffering."
-msgstr "Ungültige Entfernung zum Puffern."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4983
-#: flatcamEditors/FlatCAMGeoEditor.py:5082
-msgid "Failed, the result is empty. Choose a different buffer value."
-msgstr ""
-"Fehlgeschlagen, das Ergebnis ist leer. Wählen Sie einen anderen Pufferwert."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4994
-msgid "Full buffer geometry created."
-msgstr "Volle Puffergeometrie erstellt."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5000
-msgid "Negative buffer value is not accepted."
-msgstr "Negativer Pufferwert wird nicht akzeptiert."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5031
-msgid "Failed, the result is empty. Choose a smaller buffer value."
-msgstr ""
-"Fehlgeschlagen, das Ergebnis ist leer. Wählen Sie einen kleineren Pufferwert."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5041
-msgid "Interior buffer geometry created."
-msgstr "Innere Puffergeometrie erstellt."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5092
-msgid "Exterior buffer geometry created."
-msgstr "Außenpuffergeometrie erstellt."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5098
-#, python-format
-msgid "Could not do Paint. Overlap value has to be less than 100%%."
-msgstr "Konnte nicht Malen. Der Überlappungswert muss kleiner als 100 %% sein."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5105
-msgid "Nothing selected for painting."
-msgstr "Nichts zum Malen ausgewählt."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5111
-msgid "Invalid value for"
-msgstr "Ungültiger Wert für"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5170
-msgid ""
-"Could not do Paint. Try a different combination of parameters. Or a "
-"different method of Paint"
-msgstr ""
-"Konnte nicht malen. Probieren Sie eine andere Kombination von Parametern "
-"aus. Oder eine andere Malmethode"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5181
-msgid "Paint done."
-msgstr "Malen fertig."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:213
-msgid "To add an Pad first select a aperture in Aperture Table"
-msgstr ""
-"Um ein Pad hinzuzufügen, wählen Sie zunächst eine Blende in der Aperture "
-"Table aus"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:220
-#: flatcamEditors/FlatCAMGrbEditor.py:420
-msgid "Aperture size is zero. It needs to be greater than zero."
-msgstr "Die Größe der Blende ist Null. Es muss größer als Null sein."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:373
-#: flatcamEditors/FlatCAMGrbEditor.py:686
-msgid ""
-"Incompatible aperture type. Select an aperture with type 'C', 'R' or 'O'."
-msgstr ""
-"Inkompatibler Blendentyp. Wählen Sie eine Blende mit dem Typ 'C', 'R' oder "
-"'O'."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:385
-msgid "Done. Adding Pad completed."
-msgstr "Erledigt. Hinzufügen von Pad abgeschlossen."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:412
-msgid "To add an Pad Array first select a aperture in Aperture Table"
-msgstr ""
-"Um ein Pad-Array hinzuzufügen, wählen Sie zunächst eine Blende in der "
-"Aperture-Tabelle aus"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:492
-msgid "Click on the Pad Circular Array Start position"
-msgstr "Klicken Sie auf die Startposition des Pad-Kreis-Arrays"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:712
-msgid "Too many Pads for the selected spacing angle."
-msgstr "Zu viele Pad für den ausgewählten Abstandswinkel."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:735
-msgid "Done. Pad Array added."
-msgstr "Erledigt. Pad Array hinzugefügt."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:760
-msgid "Select shape(s) and then click ..."
-msgstr "Wählen Sie die Form (en) aus und klicken Sie dann auf ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:772
-msgid "Failed. Nothing selected."
-msgstr "Gescheitert. Nichts ausgewählt."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:788
-msgid ""
-"Failed. Poligonize works only on geometries belonging to the same aperture."
-msgstr ""
-"Gescheitert. Poligonize funktioniert nur bei Geometrien, die zur selben "
-"Apertur gehören."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:842
-msgid "Done. Poligonize completed."
-msgstr "Erledigt. Poligonize abgeschlossen."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:897
-#: flatcamEditors/FlatCAMGrbEditor.py:1130
-#: flatcamEditors/FlatCAMGrbEditor.py:1154
-msgid "Corner Mode 1: 45 degrees ..."
-msgstr "Eckmodus 1: 45 Grad ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:909
-#: flatcamEditors/FlatCAMGrbEditor.py:1239
-msgid "Click on next Point or click Right mouse button to complete ..."
-msgstr ""
-"Klicken Sie auf den nächsten Punkt oder klicken Sie mit der rechten "
-"Maustaste, um den Vorgang abzuschließen."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1118
-#: flatcamEditors/FlatCAMGrbEditor.py:1151
-msgid "Corner Mode 2: Reverse 45 degrees ..."
-msgstr "Eckmodus 2: 45 Grad umkehren ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1121
-#: flatcamEditors/FlatCAMGrbEditor.py:1148
-msgid "Corner Mode 3: 90 degrees ..."
-msgstr "Eckmodus 3: 90 Grad ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1124
-#: flatcamEditors/FlatCAMGrbEditor.py:1145
-msgid "Corner Mode 4: Reverse 90 degrees ..."
-msgstr "Eckmodus 4: Um 90 Grad umkehren ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1127
-#: flatcamEditors/FlatCAMGrbEditor.py:1142
-msgid "Corner Mode 5: Free angle ..."
-msgstr "Eckmodus 5: Freiwinkel ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1184
-#: flatcamEditors/FlatCAMGrbEditor.py:1360
-#: flatcamEditors/FlatCAMGrbEditor.py:1399
-msgid "Track Mode 1: 45 degrees ..."
-msgstr "Spurmodus 1: 45 Grad ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1340
-#: flatcamEditors/FlatCAMGrbEditor.py:1394
-msgid "Track Mode 2: Reverse 45 degrees ..."
-msgstr "Spurmodus 2: 45 Grad umkehren ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1345
-#: flatcamEditors/FlatCAMGrbEditor.py:1389
-msgid "Track Mode 3: 90 degrees ..."
-msgstr "Spurmodus 3: 90 Grad ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1350
-#: flatcamEditors/FlatCAMGrbEditor.py:1384
-msgid "Track Mode 4: Reverse 90 degrees ..."
-msgstr "Spurmodus 4: Um 90 Grad umkehren ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1355
-#: flatcamEditors/FlatCAMGrbEditor.py:1379
-msgid "Track Mode 5: Free angle ..."
-msgstr "Spurmodus 5: Freiwinkel ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1780
-msgid "Scale the selected Gerber apertures ..."
-msgstr "Skalieren Sie die ausgewählten Gerber-Öffnungen ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1822
-msgid "Buffer the selected apertures ..."
-msgstr "Die ausgewählten Öffnungen puffern ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1864
-msgid "Mark polygon areas in the edited Gerber ..."
-msgstr "Markiere Polygonbereiche im bearbeiteten Gerber ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1930
-msgid "Nothing selected to move"
-msgstr "Nichts zum Bewegen ausgewählt"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2055
-msgid "Done. Apertures Move completed."
-msgstr "Erledigt. Öffnungsbewegung abgeschlossen."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2137
-msgid "Done. Apertures copied."
-msgstr "Erledigt. Blende kopiert."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2455 flatcamGUI/FlatCAMGUI.py:2233
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:27
-msgid "Gerber Editor"
-msgstr "Gerber-Editor"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2475 flatcamGUI/ObjectUI.py:228
-#: flatcamTools/ToolProperties.py:159
-msgid "Apertures"
-msgstr "Öffnungen"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2477 flatcamGUI/ObjectUI.py:230
-msgid "Apertures Table for the Gerber Object."
-msgstr "Blendentabelle für das Gerberobjekt."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2488
-#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263
-msgid "Code"
-msgstr "Code"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2488
-#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:103
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43
-#: flatcamTools/ToolCopperThieving.py:261
-#: flatcamTools/ToolCopperThieving.py:301 flatcamTools/ToolFiducials.py:156
-msgid "Size"
-msgstr "Größe"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2488
-#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263
-msgid "Dim"
-msgstr "Maße"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2493 flatcamGUI/ObjectUI.py:267
-msgid "Index"
-msgstr "Index"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2495
-#: flatcamEditors/FlatCAMGrbEditor.py:2524 flatcamGUI/ObjectUI.py:269
-msgid "Aperture Code"
-msgstr "Öffnungscode"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2497 flatcamGUI/ObjectUI.py:271
-msgid "Type of aperture: circular, rectangle, macros etc"
-msgstr "Öffnungsart: kreisförmig, rechteckig, Makros usw"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2499 flatcamGUI/ObjectUI.py:273
-msgid "Aperture Size:"
-msgstr "Öffnungsgröße:"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2501 flatcamGUI/ObjectUI.py:275
-msgid ""
-"Aperture Dimensions:\n"
-" - (width, height) for R, O type.\n"
-" - (dia, nVertices) for P type"
-msgstr ""
-"Blendenmaße:\n"
-" - (Breite, Höhe) für R, O-Typ.\n"
-" - (dia, nVertices) für P-Typ"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2525
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:58
-msgid "Code for the new aperture"
-msgstr "Code für die neue Blende"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2534
-msgid "Aperture Size"
-msgstr "Öffnungsgröße"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2536
-msgid ""
-"Size for the new aperture.\n"
-"If aperture type is 'R' or 'O' then\n"
-"this value is automatically\n"
-"calculated as:\n"
-"sqrt(width**2 + height**2)"
-msgstr ""
-"Größe für die neue Blende.\n"
-"Wenn der Blendentyp 'R' oder 'O' ist, dann\n"
-"Dieser Wert wird automatisch übernommen\n"
-"berechnet als:\n"
-"Quadrat (Breite ** 2 + Höhe ** 2)"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2550
-msgid "Aperture Type"
-msgstr "Blendentyp"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2552
-msgid ""
-"Select the type of new aperture. Can be:\n"
-"C = circular\n"
-"R = rectangular\n"
-"O = oblong"
-msgstr ""
-"Wählen Sie den Typ der neuen Blende. Kann sein:\n"
-"C = kreisförmig\n"
-"R = rechteckig\n"
-"O = länglich"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2563
-msgid "Aperture Dim"
-msgstr "Öffnungsmaße"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2565
-msgid ""
-"Dimensions for the new aperture.\n"
-"Active only for rectangular apertures (type R).\n"
-"The format is (width, height)"
-msgstr ""
-"Abmessungen für die neue Blende.\n"
-"Aktiv nur für rechteckige Öffnungen (Typ R).\n"
-"Das Format ist (Breite, Höhe)"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2574
-msgid "Add/Delete Aperture"
-msgstr "Blende hinzufügen / löschen"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2576
-msgid "Add/Delete an aperture in the aperture table"
-msgstr "Eine Blende in der Blendentabelle hinzufügen / löschen"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2585
-msgid "Add a new aperture to the aperture list."
-msgstr "Fügen Sie der Blendenliste eine neue Blende hinzu."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2590
-msgid "Delete a aperture in the aperture list"
-msgstr "Löschen Sie eine Blende in der Blendenliste"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2607
-msgid "Buffer Aperture"
-msgstr "Pufferblende"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2609
-msgid "Buffer a aperture in the aperture list"
-msgstr "Puffern Sie eine Blende in der Blendenliste"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2622
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:194
-msgid "Buffer distance"
-msgstr "Pufferabstand"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2623
-msgid "Buffer corner"
-msgstr "Pufferecke"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2625
-msgid ""
-"There are 3 types of corners:\n"
-" - 'Round': the corner is rounded.\n"
-" - 'Square': the corner is met in a sharp angle.\n"
-" - 'Beveled': the corner is a line that directly connects the features "
-"meeting in the corner"
-msgstr ""
-"Es gibt 3 Arten von Ecken:\n"
-"- 'Kreis': Die Ecke ist abgerundet.\n"
-"- 'Quadrat:' Die Ecke wird in einem spitzen Winkel getroffen.\n"
-"- 'Abgeschrägt:' Die Ecke ist eine Linie, die die Features, die sich in der "
-"Ecke treffen, direkt verbindet"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2640 flatcamGUI/FlatCAMGUI.py:1061
-#: flatcamGUI/FlatCAMGUI.py:2138 flatcamGUI/FlatCAMGUI.py:2210
-#: flatcamGUI/FlatCAMGUI.py:2253 flatcamGUI/FlatCAMGUI.py:2765
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:200
-#: flatcamTools/ToolTransform.py:29
-msgid "Buffer"
-msgstr "Puffer"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2655
-msgid "Scale Aperture"
-msgstr "Skalenöffnung"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2657
-msgid "Scale a aperture in the aperture list"
-msgstr "Skalieren Sie eine Blende in der Blendenliste"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2665
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:209
-msgid "Scale factor"
-msgstr "Skalierungsfaktor"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2667
-msgid ""
-"The factor by which to scale the selected aperture.\n"
-"Values can be between 0.0000 and 999.9999"
-msgstr ""
-"Der Faktor, um den die ausgewählte Blende skaliert werden soll.\n"
-"Die Werte können zwischen 0,0000 und 999,9999 liegen"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2695
-msgid "Mark polygons"
-msgstr "Polygone markieren"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2697
-msgid "Mark the polygon areas."
-msgstr "Markieren Sie die Polygonbereiche."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2705
-msgid "Area UPPER threshold"
-msgstr "Flächenobergrenze"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2707
-msgid ""
-"The threshold value, all areas less than this are marked.\n"
-"Can have a value between 0.0000 and 9999.9999"
-msgstr ""
-"Der Schwellenwert, alle Bereiche, die darunter liegen, sind markiert.\n"
-"Kann einen Wert zwischen 0,0000 und 9999,9999 haben"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2714
-msgid "Area LOWER threshold"
-msgstr "Bereichsuntergrenze"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2716
-msgid ""
-"The threshold value, all areas more than this are marked.\n"
-"Can have a value between 0.0000 and 9999.9999"
-msgstr ""
-"Mit dem Schwellwert sind alle Bereiche gekennzeichnet, die darüber "
-"hinausgehen.\n"
-"Kann einen Wert zwischen 0,0000 und 9999,9999 haben"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2730
-msgid "Mark"
-msgstr "Kennzeichen"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2732
-msgid "Mark the polygons that fit within limits."
-msgstr "Markieren Sie die Polygone, die in Grenzen passen."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2738
-msgid "Delete all the marked polygons."
-msgstr "Löschen Sie alle markierten Polygone."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2744
-msgid "Clear all the markings."
-msgstr "Alle Markierungen entfernen."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2764 flatcamGUI/FlatCAMGUI.py:1046
-#: flatcamGUI/FlatCAMGUI.py:2138 flatcamGUI/FlatCAMGUI.py:2750
-msgid "Add Pad Array"
-msgstr "Pad-Array hinzufügen"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2766
-msgid "Add an array of pads (linear or circular array)"
-msgstr "Hinzufügen eines Arrays von Pads (lineares oder kreisförmiges Array)"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2772
-msgid ""
-"Select the type of pads array to create.\n"
-"It can be Linear X(Y) or Circular"
-msgstr ""
-"Wählen Sie den zu erstellenden Pad-Array-Typ aus.\n"
-"Es kann lineares X (Y) oder rund sein"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2783
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:95
-msgid "Nr of pads"
-msgstr "Anzahl der Pads"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2785
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:97
-msgid "Specify how many pads to be in the array."
-msgstr "Geben Sie an, wie viele Pads sich im Array befinden sollen."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2834
-msgid ""
-"Angle at which the linear array is placed.\n"
-"The precision is of max 2 decimals.\n"
-"Min value is: -359.99 degrees.\n"
-"Max value is: 360.00 degrees."
-msgstr ""
-"Winkel, bei dem das lineare Array platziert wird.\n"
-"Die Genauigkeit beträgt maximal 2 Dezimalstellen.\n"
-"Der Mindestwert beträgt -359,99 Grad.\n"
-"Maximalwert ist: 360.00 Grad."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3328
-#: flatcamEditors/FlatCAMGrbEditor.py:3332
-msgid "Aperture code value is missing or wrong format. Add it and retry."
-msgstr ""
-"Blendencodewert fehlt oder falsches Format. Fügen Sie es hinzu und versuchen "
-"Sie es erneut."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3368
-msgid ""
-"Aperture dimensions value is missing or wrong format. Add it in format "
-"(width, height) and retry."
-msgstr ""
-"Wert für Blendenmaße fehlt oder falsches Format. Fügen Sie es im Format "
-"(Breite, Höhe) hinzu und versuchen Sie es erneut."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3381
-msgid "Aperture size value is missing or wrong format. Add it and retry."
-msgstr ""
-"Der Wert für die Blendengröße fehlt oder das Format ist falsch. Fügen Sie es "
-"hinzu und versuchen Sie es erneut."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3392
-msgid "Aperture already in the aperture table."
-msgstr "Blende bereits in der Blendentabelle."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3399
-msgid "Added new aperture with code"
-msgstr "Neue Blende mit Code hinzugefügt"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3431
-msgid " Select an aperture in Aperture Table"
-msgstr " Wählen Sie in Blende Table eine Blende aus"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3439
-msgid "Select an aperture in Aperture Table -->"
-msgstr "Wählen Sie in Blende Table eine Blende aus -->"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3453
-msgid "Deleted aperture with code"
-msgstr "Blende mit Code gelöscht"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3521
-msgid "Dimensions need two float values separated by comma."
-msgstr "Bemaßungen benötigen zwei durch Komma getrennte Gleitkommawerte."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3530
-msgid "Dimensions edited."
-msgstr "Abmessungen bearbeitet."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4084
-msgid "Loading Gerber into Editor"
-msgstr "Gerber File wird in den Editor geladen"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4212
-msgid "Setting up the UI"
-msgstr "UI wird initialisiert"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4213
-msgid "Adding geometry finished. Preparing the GUI"
-msgstr "Geometrie wurde hinzugefügt. User Interface wird vorbereitet"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4222
-msgid "Finished loading the Gerber object into the editor."
-msgstr "Gerber-Objekte wurde in den Editor geladen."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4361
-msgid ""
-"There are no Aperture definitions in the file. Aborting Gerber creation."
-msgstr ""
-"Die Datei enthält keine Aperture-Definitionen. Abbruch der Gerber-Erstellung."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4371
-msgid "Creating Gerber."
-msgstr "Gerber erstellen."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4380
-msgid "Done. Gerber editing finished."
-msgstr "Erledigt. Gerber-Bearbeitung beendet."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4398
-msgid "Cancelled. No aperture is selected"
-msgstr "Abgebrochen. Es ist keine Blende ausgewählt"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4992
-msgid "Failed. No aperture geometry is selected."
-msgstr "Gescheitert. Es ist keine Aperturgeometrie ausgewählt."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5001
-#: flatcamEditors/FlatCAMGrbEditor.py:5272
-msgid "Done. Apertures geometry deleted."
-msgstr "Fertig. Blendengeometrie gelöscht."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5144
-msgid "No aperture to buffer. Select at least one aperture and try again."
-msgstr ""
-"Keine Blende zum Puffern Wählen Sie mindestens eine Blende und versuchen Sie "
-"es erneut."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5156
-msgid "Failed."
-msgstr "Gescheitert."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5175
-msgid "Scale factor value is missing or wrong format. Add it and retry."
-msgstr ""
-"Der Skalierungsfaktor ist nicht vorhanden oder das Format ist falsch. Fügen "
-"Sie es hinzu und versuchen Sie es erneut."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5207
-msgid "No aperture to scale. Select at least one aperture and try again."
-msgstr ""
-"Keine zu skalierende Blende Wählen Sie mindestens eine Blende und versuchen "
-"Sie es erneut."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5223
-msgid "Done. Scale Tool completed."
-msgstr "Erledigt. Skalierungswerkzeug abgeschlossen."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5261
-msgid "Polygons marked."
-msgstr "Polygone markiert."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5264
-msgid "No polygons were marked. None fit within the limits."
-msgstr "Es wurden keine Polygone markiert. Keiner passt in die Grenzen."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5988
-msgid "Rotation action was not executed."
-msgstr "Rotationsaktion wurde nicht ausgeführt."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:6116
-msgid "Skew action was not executed."
-msgstr "Die Versatzaktion wurde nicht ausgeführt."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:6181
-msgid "Scale action was not executed."
-msgstr "Skalierungsaktion wurde nicht ausgeführt."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:6224
-msgid "Offset action was not executed."
-msgstr "Offsetaktion wurde nicht ausgeführt."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:6274
-msgid "Geometry shape offset Y cancelled"
-msgstr "Geometrieform-Versatz Y abgebrochen"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:6289
-msgid "Geometry shape skew X cancelled"
-msgstr "Geometrieformverzerren X abgebrochen"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:6304
-msgid "Geometry shape skew Y cancelled"
-msgstr "Geometrieformverzerren Y abgebrochen"
-
-#: flatcamEditors/FlatCAMTextEditor.py:74
-msgid "Print Preview"
-msgstr "Druckvorschau"
-
-#: flatcamEditors/FlatCAMTextEditor.py:75
-msgid "Open a OS standard Preview Print window."
-msgstr ""
-"Öffnen Sie ein Standardfenster für die Druckvorschau des Betriebssystems."
-
-#: flatcamEditors/FlatCAMTextEditor.py:78
-msgid "Print Code"
-msgstr "Code drucken"
-
-#: flatcamEditors/FlatCAMTextEditor.py:79
-msgid "Open a OS standard Print window."
-msgstr "Öffnen Sie ein Betriebssystem-Standard-Druckfenster."
-
-#: flatcamEditors/FlatCAMTextEditor.py:81
-msgid "Find in Code"
-msgstr "Im Code suchen"
-
-#: flatcamEditors/FlatCAMTextEditor.py:82
-msgid "Will search and highlight in yellow the string in the Find box."
-msgstr "Sucht und hebt die Zeichenfolge im Feld Suchen gelb hervor."
-
-#: flatcamEditors/FlatCAMTextEditor.py:86
-msgid "Find box. Enter here the strings to be searched in the text."
-msgstr ""
-"Suchfeld. Geben Sie hier die Zeichenfolgen ein, nach denen im Text gesucht "
-"werden soll."
-
-#: flatcamEditors/FlatCAMTextEditor.py:88
-msgid "Replace With"
-msgstr "Ersetzen mit"
-
-#: flatcamEditors/FlatCAMTextEditor.py:89
-msgid ""
-"Will replace the string from the Find box with the one in the Replace box."
-msgstr ""
-"Ersetzt die Zeichenfolge aus dem Feld Suchen durch die Zeichenfolge aus dem "
-"Feld Ersetzen."
-
-#: flatcamEditors/FlatCAMTextEditor.py:93
-msgid "String to replace the one in the Find box throughout the text."
-msgstr ""
-"Zeichenfolge, die die Zeichenfolge im Feld Suchen im gesamten Text ersetzt."
-
-#: flatcamEditors/FlatCAMTextEditor.py:95 flatcamGUI/ObjectUI.py:486
-#: flatcamGUI/ObjectUI.py:2219
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:54
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:88
-msgid "All"
-msgstr "Alles"
-
-#: flatcamEditors/FlatCAMTextEditor.py:96
-msgid ""
-"When checked it will replace all instances in the 'Find' box\n"
-"with the text in the 'Replace' box.."
-msgstr ""
-"Wenn diese Option aktiviert ist, werden alle Instanzen im Feld \"Suchen\" "
-"ersetzt\n"
-"mit dem Text im Feld \"Ersetzen\" .."
-
-#: flatcamEditors/FlatCAMTextEditor.py:99
-msgid "Copy All"
-msgstr "Kopiere alles"
-
-#: flatcamEditors/FlatCAMTextEditor.py:100
-msgid "Will copy all the text in the Code Editor to the clipboard."
-msgstr "Kopiert den gesamten Text im Code-Editor in die Zwischenablage."
-
-#: flatcamEditors/FlatCAMTextEditor.py:103
-msgid "Open Code"
-msgstr "Code öffnen"
-
-#: flatcamEditors/FlatCAMTextEditor.py:104
-msgid "Will open a text file in the editor."
-msgstr "Öffnet eine Textdatei im Editor."
-
-#: flatcamEditors/FlatCAMTextEditor.py:106
-msgid "Save Code"
-msgstr "Code speichern"
-
-#: flatcamEditors/FlatCAMTextEditor.py:107
-msgid "Will save the text in the editor into a file."
-msgstr "Speichert den Text im Editor in einer Datei."
-
-#: flatcamEditors/FlatCAMTextEditor.py:109
-msgid "Run Code"
-msgstr "Code ausführen"
-
-#: flatcamEditors/FlatCAMTextEditor.py:110
-msgid "Will run the TCL commands found in the text file, one by one."
-msgstr "Führt die in der Textdatei enthaltenen TCL-Befehle nacheinander aus."
-
-#: flatcamEditors/FlatCAMTextEditor.py:184
-msgid "Open file"
-msgstr "Datei öffnen"
-
-#: flatcamEditors/FlatCAMTextEditor.py:215
-#: flatcamEditors/FlatCAMTextEditor.py:220
-msgid "Export Code ..."
-msgstr "Code exportieren ..."
-
-#: flatcamEditors/FlatCAMTextEditor.py:272 flatcamObjects/FlatCAMCNCJob.py:955
-#: flatcamTools/ToolSolderPaste.py:1530
-msgid "No such file or directory"
-msgstr "Keine solche Datei oder Ordner"
-
-#: flatcamEditors/FlatCAMTextEditor.py:284 flatcamObjects/FlatCAMCNCJob.py:969
-msgid "Saved to"
-msgstr "Gespeichert in"
-
-#: flatcamEditors/FlatCAMTextEditor.py:334
-msgid "Code Editor content copied to clipboard ..."
-msgstr "Code Editor Inhalt in die Zwischenablage kopiert ..."
-
-#: flatcamGUI/FlatCAMGUI.py:78 flatcamGUI/FlatCAMGUI.py:80
-#: flatcamGUI/FlatCAMGUI.py:2163
-msgid "Toggle Panel"
-msgstr "Panel umschalten"
-
-#: flatcamGUI/FlatCAMGUI.py:90
-msgid "File"
-msgstr "Datei"
-
-#: flatcamGUI/FlatCAMGUI.py:95
-msgid "&New Project ...\tCtrl+N"
-msgstr "&Neues Projekt ...\\STRG+N"
-
-#: flatcamGUI/FlatCAMGUI.py:97
-msgid "Will create a new, blank project"
-msgstr "Erzeugt ein neues leeres Projekt"
-
-#: flatcamGUI/FlatCAMGUI.py:102
-msgid "&New"
-msgstr "&Neu"
-
-#: flatcamGUI/FlatCAMGUI.py:106
-msgid "Geometry\tN"
-msgstr "Geometrie\tN"
-
-#: flatcamGUI/FlatCAMGUI.py:108
-msgid "Will create a new, empty Geometry Object."
-msgstr "Erzeugt ein neues, leeres Geometrieobjekt."
-
-#: flatcamGUI/FlatCAMGUI.py:111
-msgid "Gerber\tB"
-msgstr "Gerber\tB"
-
-#: flatcamGUI/FlatCAMGUI.py:113
-msgid "Will create a new, empty Gerber Object."
-msgstr "Erzeugt ein neues, leeres Gerber-Objekt."
-
-#: flatcamGUI/FlatCAMGUI.py:116
-msgid "Excellon\tL"
-msgstr "Excellon\tL"
-
-#: flatcamGUI/FlatCAMGUI.py:118
-msgid "Will create a new, empty Excellon Object."
-msgstr "Erzeugt ein neues, leeres Excellon-Objekt."
-
-#: flatcamGUI/FlatCAMGUI.py:123
-msgid "Document\tD"
-msgstr "Dokumentieren\tD"
-
-#: flatcamGUI/FlatCAMGUI.py:125
-msgid "Will create a new, empty Document Object."
-msgstr "Erstellt ein neues, leeres Dokumentobjekt."
-
-#: flatcamGUI/FlatCAMGUI.py:129 flatcamGUI/FlatCAMGUI.py:4420
-#: flatcamTools/ToolPcbWizard.py:62 flatcamTools/ToolPcbWizard.py:69
-msgid "Open"
-msgstr "Öffnen"
-
-#: flatcamGUI/FlatCAMGUI.py:134
-msgid "Open &Project ..."
-msgstr "&Projekt öffnen..."
-
-#: flatcamGUI/FlatCAMGUI.py:140 flatcamGUI/FlatCAMGUI.py:4430
-msgid "Open &Gerber ...\tCtrl+G"
-msgstr "&Gerber öffnen...\\STRG+G"
-
-#: flatcamGUI/FlatCAMGUI.py:145 flatcamGUI/FlatCAMGUI.py:4435
-msgid "Open &Excellon ...\tCtrl+E"
-msgstr "&Excellon öffnen...\\STRG+E"
-
-#: flatcamGUI/FlatCAMGUI.py:150 flatcamGUI/FlatCAMGUI.py:4440
-msgid "Open G-&Code ..."
-msgstr "G-&Code öffnen..."
-
-#: flatcamGUI/FlatCAMGUI.py:157
-msgid "Open Config ..."
-msgstr "Config öffnen..."
-
-#: flatcamGUI/FlatCAMGUI.py:162
-msgid "Recent projects"
-msgstr "Letzte Projekte"
-
-#: flatcamGUI/FlatCAMGUI.py:164
-msgid "Recent files"
-msgstr "Neueste Dateien"
-
-#: flatcamGUI/FlatCAMGUI.py:167 flatcamGUI/FlatCAMGUI.py:753
-#: flatcamGUI/FlatCAMGUI.py:1339
-msgid "Save"
-msgstr "Speichern"
-
-#: flatcamGUI/FlatCAMGUI.py:171
-msgid "&Save Project ...\tCtrl+S"
-msgstr "Projekt speichern ...\\STRG+S"
-
-#: flatcamGUI/FlatCAMGUI.py:176
-msgid "Save Project &As ...\tCtrl+Shift+S"
-msgstr "Projekt speichern als ...\\STRG+Shift+S"
-
-#: flatcamGUI/FlatCAMGUI.py:191
-msgid "Scripting"
-msgstr "Scripting"
-
-#: flatcamGUI/FlatCAMGUI.py:195 flatcamGUI/FlatCAMGUI.py:903
-#: flatcamGUI/FlatCAMGUI.py:2607
-msgid "New Script ..."
-msgstr "Neues Skript ..."
-
-#: flatcamGUI/FlatCAMGUI.py:197 flatcamGUI/FlatCAMGUI.py:905
-#: flatcamGUI/FlatCAMGUI.py:2609
-msgid "Open Script ..."
-msgstr "Skript öffnen ..."
-
-#: flatcamGUI/FlatCAMGUI.py:199
-msgid "Open Example ..."
-msgstr "Beispiel öffnen ..."
-
-#: flatcamGUI/FlatCAMGUI.py:201 flatcamGUI/FlatCAMGUI.py:907
-#: flatcamGUI/FlatCAMGUI.py:2611 flatcamGUI/FlatCAMGUI.py:4409
-msgid "Run Script ..."
-msgstr "Skript ausführen ..."
-
-#: flatcamGUI/FlatCAMGUI.py:203 flatcamGUI/FlatCAMGUI.py:4411
-msgid ""
-"Will run the opened Tcl Script thus\n"
-"enabling the automation of certain\n"
-"functions of FlatCAM."
-msgstr ""
-"Das geöffnete Tcl-Skript wird ausgeführt.\n"
-"Ermöglichung der Automatisierung bestimmter\n"
-"Funktionen von FlatCAM."
-
-#: flatcamGUI/FlatCAMGUI.py:218
-msgid "Import"
-msgstr "Importieren"
-
-#: flatcamGUI/FlatCAMGUI.py:220
-msgid "&SVG as Geometry Object ..."
-msgstr "&SVG als Geometrieobjekt ..."
-
-#: flatcamGUI/FlatCAMGUI.py:223
-msgid "&SVG as Gerber Object ..."
-msgstr "&SVG als Gerberobjekt ..."
-
-#: flatcamGUI/FlatCAMGUI.py:228
-msgid "&DXF as Geometry Object ..."
-msgstr "&DXF als Geometrieobjekt ..."
-
-#: flatcamGUI/FlatCAMGUI.py:231
-msgid "&DXF as Gerber Object ..."
-msgstr "&DXF als Gerberobjekt ..."
-
-#: flatcamGUI/FlatCAMGUI.py:235
-msgid "HPGL2 as Geometry Object ..."
-msgstr "HPGL2 als Geometrieobjekt ..."
-
-#: flatcamGUI/FlatCAMGUI.py:241
-msgid "Export"
-msgstr "Exportieren"
-
-#: flatcamGUI/FlatCAMGUI.py:245
-msgid "Export &SVG ..."
-msgstr "SVG exportieren ..."
-
-#: flatcamGUI/FlatCAMGUI.py:249
-msgid "Export DXF ..."
-msgstr "DXF exportieren ..."
-
-#: flatcamGUI/FlatCAMGUI.py:255
-msgid "Export &PNG ..."
-msgstr "PNG exportieren ..."
-
-#: flatcamGUI/FlatCAMGUI.py:257
-msgid ""
-"Will export an image in PNG format,\n"
-"the saved image will contain the visual \n"
-"information currently in FlatCAM Plot Area."
-msgstr ""
-"Exportiert ein Bild im PNG-Format,\n"
-"Das gespeicherte Bild enthält die\n"
-"Bildinformationen des FlatCAM-Plotbereiches."
-
-#: flatcamGUI/FlatCAMGUI.py:266
-msgid "Export &Excellon ..."
-msgstr "Excellon exportieren ..."
-
-#: flatcamGUI/FlatCAMGUI.py:268
-msgid ""
-"Will export an Excellon Object as Excellon file,\n"
-"the coordinates format, the file units and zeros\n"
-"are set in Preferences -> Excellon Export."
-msgstr ""
-"Exportieren Exportiert ein Excellon-Objekt als Excellon-Datei.\n"
-"Das Koordinatenformat, die Dateieinheiten und Nullen\n"
-"werden in den Einstellungen -> Excellon Export.Excellon eingestellt ..."
-
-#: flatcamGUI/FlatCAMGUI.py:275
-msgid "Export &Gerber ..."
-msgstr "Gerber exportieren ..."
-
-#: flatcamGUI/FlatCAMGUI.py:277
-msgid ""
-"Will export an Gerber Object as Gerber file,\n"
-"the coordinates format, the file units and zeros\n"
-"are set in Preferences -> Gerber Export."
-msgstr ""
-"Exportiert ein Gerber-Objekt als Gerber-Datei.\n"
-"das Koordinatenformat, die Dateieinheiten und Nullen\n"
-"werden in den Einstellungen -> Gerber Export eingestellt."
-
-#: flatcamGUI/FlatCAMGUI.py:287
-msgid "Backup"
-msgstr "Sicherungskopie"
-
-#: flatcamGUI/FlatCAMGUI.py:292
-msgid "Import Preferences from file ..."
-msgstr "Einstellungen aus Datei importieren ..."
-
-#: flatcamGUI/FlatCAMGUI.py:298
-msgid "Export Preferences to file ..."
-msgstr "Einstellungen in Datei exportieren ..."
-
-#: flatcamGUI/FlatCAMGUI.py:306
-#: flatcamGUI/preferences/PreferencesUIManager.py:1119
-msgid "Save Preferences"
-msgstr "Einstellungen speichern"
-
-#: flatcamGUI/FlatCAMGUI.py:312 flatcamGUI/FlatCAMGUI.py:1730
-msgid "Print (PDF)"
-msgstr "Drucken (PDF)"
-
-#: flatcamGUI/FlatCAMGUI.py:320
-msgid "E&xit"
-msgstr "Ausgang"
-
-#: flatcamGUI/FlatCAMGUI.py:328 flatcamGUI/FlatCAMGUI.py:747
-#: flatcamGUI/FlatCAMGUI.py:2286
-msgid "Edit"
-msgstr "Bearbeiten"
-
-#: flatcamGUI/FlatCAMGUI.py:332
-msgid "Edit Object\tE"
-msgstr "Objekt bearbeiten\tE"
-
-#: flatcamGUI/FlatCAMGUI.py:334
-msgid "Close Editor\tCtrl+S"
-msgstr "Schließen Sie Editor\tSTRG+S"
-
-#: flatcamGUI/FlatCAMGUI.py:343
-msgid "Conversion"
-msgstr "Umwandlung"
-
-#: flatcamGUI/FlatCAMGUI.py:345
-msgid "&Join Geo/Gerber/Exc -> Geo"
-msgstr "Geo/Gerber/Exc -> Geo zusammenfassen"
-
-#: flatcamGUI/FlatCAMGUI.py:347
-msgid ""
-"Merge a selection of objects, which can be of type:\n"
-"- Gerber\n"
-"- Excellon\n"
-"- Geometry\n"
-"into a new combo Geometry object."
-msgstr ""
-"Zusammenführen einer Auswahl von Objekten, die vom Typ sein können:\n"
-"- Gerber\n"
-"- Excellon\n"
-"- Geometrie\n"
-"in ein neues Geometrieobjekt kombinieren."
-
-#: flatcamGUI/FlatCAMGUI.py:354
-msgid "Join Excellon(s) -> Excellon"
-msgstr "Excellon(s) -> Excellon zusammenfassen"
-
-#: flatcamGUI/FlatCAMGUI.py:356
-msgid "Merge a selection of Excellon objects into a new combo Excellon object."
-msgstr ""
-"Fassen Sie eine Auswahl von Excellon-Objekten in einem neuen Excellon-Objekt "
-"zusammen."
-
-#: flatcamGUI/FlatCAMGUI.py:359
-msgid "Join Gerber(s) -> Gerber"
-msgstr "Gerber(s) -> Gerber zusammenfassen"
-
-#: flatcamGUI/FlatCAMGUI.py:361
-msgid "Merge a selection of Gerber objects into a new combo Gerber object."
-msgstr ""
-"Mischen Sie eine Auswahl von Gerber-Objekten in ein neues Gerber-"
-"Kombinationsobjekt."
-
-#: flatcamGUI/FlatCAMGUI.py:366
-msgid "Convert Single to MultiGeo"
-msgstr "Konvertieren Sie Single in MultiGeo"
-
-#: flatcamGUI/FlatCAMGUI.py:368
-msgid ""
-"Will convert a Geometry object from single_geometry type\n"
-"to a multi_geometry type."
-msgstr ""
-"Konvertiert ein Geometrieobjekt vom Typ single_geometry\n"
-"zu einem multi_geometry-Typ."
-
-#: flatcamGUI/FlatCAMGUI.py:372
-msgid "Convert Multi to SingleGeo"
-msgstr "Konvertieren Sie Multi in SingleGeo"
-
-#: flatcamGUI/FlatCAMGUI.py:374
-msgid ""
-"Will convert a Geometry object from multi_geometry type\n"
-"to a single_geometry type."
-msgstr ""
-"Konvertiert ein Geometrieobjekt vom Typ multi_geometry\n"
-"zu einem single_geometry-Typ."
-
-#: flatcamGUI/FlatCAMGUI.py:381
-msgid "Convert Any to Geo"
-msgstr "Konvertieren Sie Any zu Geo"
-
-#: flatcamGUI/FlatCAMGUI.py:384
-msgid "Convert Any to Gerber"
-msgstr "Konvertieren Sie Any zu Gerber"
-
-#: flatcamGUI/FlatCAMGUI.py:390
-msgid "&Copy\tCtrl+C"
-msgstr "Kopieren\tSTRG+C"
-
-#: flatcamGUI/FlatCAMGUI.py:395
-msgid "&Delete\tDEL"
-msgstr "Löschen\tDEL"
-
-#: flatcamGUI/FlatCAMGUI.py:400
-msgid "Se&t Origin\tO"
-msgstr "Ursprung festlegen\tO"
-
-#: flatcamGUI/FlatCAMGUI.py:402
-msgid "Move to Origin\tShift+O"
-msgstr "Zum Ursprung wechseln\tShift+O"
-
-#: flatcamGUI/FlatCAMGUI.py:405
-msgid "Jump to Location\tJ"
-msgstr "Zum Ort springen\tJ"
-
-#: flatcamGUI/FlatCAMGUI.py:407
-msgid "Locate in Object\tShift+J"
-msgstr "Suchen Sie im Objekt\tShift+J"
-
-#: flatcamGUI/FlatCAMGUI.py:412
-msgid "Toggle Units\tQ"
-msgstr "Einheiten umschalten\tQ"
-
-#: flatcamGUI/FlatCAMGUI.py:414
-msgid "&Select All\tCtrl+A"
-msgstr "Alles auswählen\tSTRG+A"
-
-#: flatcamGUI/FlatCAMGUI.py:419
-msgid "&Preferences\tShift+P"
-msgstr "Einstellungen\tShift+P"
-
-#: flatcamGUI/FlatCAMGUI.py:425 flatcamTools/ToolProperties.py:155
-msgid "Options"
-msgstr "Optionen"
-
-#: flatcamGUI/FlatCAMGUI.py:427
-msgid "&Rotate Selection\tShift+(R)"
-msgstr "Auswahl drehen\tShift+(R)"
-
-#: flatcamGUI/FlatCAMGUI.py:432
-msgid "&Skew on X axis\tShift+X"
-msgstr "Neigung auf der X-Achse\tShift+X"
-
-#: flatcamGUI/FlatCAMGUI.py:434
-msgid "S&kew on Y axis\tShift+Y"
-msgstr "Neigung auf der Y-Achse\tShift+Y"
-
-#: flatcamGUI/FlatCAMGUI.py:439
-msgid "Flip on &X axis\tX"
-msgstr "X-Achse kippen\tX"
-
-#: flatcamGUI/FlatCAMGUI.py:441
-msgid "Flip on &Y axis\tY"
-msgstr "Y-Achse kippen\tY"
-
-#: flatcamGUI/FlatCAMGUI.py:446
-msgid "View source\tAlt+S"
-msgstr "Quelltext anzeigen\tAlt+S"
-
-#: flatcamGUI/FlatCAMGUI.py:448
-msgid "Tools DataBase\tCtrl+D"
-msgstr "Werkzeugdatenbank\tSTRG+D"
-
-#: flatcamGUI/FlatCAMGUI.py:455 flatcamGUI/FlatCAMGUI.py:2183
-msgid "View"
-msgstr "Aussicht"
-
-#: flatcamGUI/FlatCAMGUI.py:457
-msgid "Enable all plots\tAlt+1"
-msgstr "Alle Diagramme aktivieren\tAlt+1"
-
-#: flatcamGUI/FlatCAMGUI.py:459
-msgid "Disable all plots\tAlt+2"
-msgstr "Alle Diagramme deaktivieren\tAlt+2"
-
-#: flatcamGUI/FlatCAMGUI.py:461
-msgid "Disable non-selected\tAlt+3"
-msgstr "Nicht ausgewählte Diagramme deaktivieren\tAlt+3"
-
-#: flatcamGUI/FlatCAMGUI.py:465
-msgid "&Zoom Fit\tV"
-msgstr "Passed zoomen\tV"
-
-#: flatcamGUI/FlatCAMGUI.py:467
-msgid "&Zoom In\t="
-msgstr "Hineinzoomen\t="
-
-#: flatcamGUI/FlatCAMGUI.py:469
-msgid "&Zoom Out\t-"
-msgstr "Rauszoomen\t-"
-
-#: flatcamGUI/FlatCAMGUI.py:474
-msgid "Redraw All\tF5"
-msgstr "Alles neu zeichnen\tF5"
-
-#: flatcamGUI/FlatCAMGUI.py:478
-msgid "Toggle Code Editor\tShift+E"
-msgstr "Code-Editor umschalten\tShift+E"
-
-#: flatcamGUI/FlatCAMGUI.py:481
-msgid "&Toggle FullScreen\tAlt+F10"
-msgstr "FullScreen umschalten\tAlt+F10"
-
-#: flatcamGUI/FlatCAMGUI.py:483
-msgid "&Toggle Plot Area\tCtrl+F10"
-msgstr "Plotbereich umschalten\tSTRG+F10"
-
-#: flatcamGUI/FlatCAMGUI.py:485
-msgid "&Toggle Project/Sel/Tool\t`"
-msgstr "Projekt/Auswahl/Werkzeug umschalten\t`"
-
-#: flatcamGUI/FlatCAMGUI.py:489
-msgid "&Toggle Grid Snap\tG"
-msgstr "Schaltet den Rasterfang ein\tG"
-
-#: flatcamGUI/FlatCAMGUI.py:491
-msgid "&Toggle Grid Lines\tAlt+G"
-msgstr "Gitterlinien umschalten\tAlt+G"
-
-#: flatcamGUI/FlatCAMGUI.py:493
-msgid "&Toggle Axis\tShift+G"
-msgstr "Achse umschalten\tShift+G"
-
-#: flatcamGUI/FlatCAMGUI.py:495
-msgid "Toggle Workspace\tShift+W"
-msgstr "Arbeitsbereich umschalten\tShift+W"
-
-#: flatcamGUI/FlatCAMGUI.py:500
-msgid "Objects"
-msgstr "Objekte"
-
-#: flatcamGUI/FlatCAMGUI.py:514
-msgid "&Command Line\tS"
-msgstr "Befehlszeile\tS"
-
-#: flatcamGUI/FlatCAMGUI.py:519
-msgid "Help"
-msgstr "Hilfe"
-
-#: flatcamGUI/FlatCAMGUI.py:521
-msgid "Online Help\tF1"
-msgstr "Onlinehilfe\tF1"
-
-#: flatcamGUI/FlatCAMGUI.py:531
-msgid "Report a bug"
-msgstr "Einen Fehler melden"
-
-#: flatcamGUI/FlatCAMGUI.py:534
-msgid "Excellon Specification"
-msgstr "Excellon-Spezifikation"
-
-#: flatcamGUI/FlatCAMGUI.py:536
-msgid "Gerber Specification"
-msgstr "Gerber-Spezifikation"
-
-#: flatcamGUI/FlatCAMGUI.py:541
-msgid "Shortcuts List\tF3"
-msgstr "Tastenkürzel Liste\tF3"
-
-#: flatcamGUI/FlatCAMGUI.py:543
-msgid "YouTube Channel\tF4"
-msgstr "Youtube Kanal\tF4"
-
-#: flatcamGUI/FlatCAMGUI.py:554
-msgid "Add Circle\tO"
-msgstr "Kreis hinzufügen\tO"
-
-#: flatcamGUI/FlatCAMGUI.py:557
-msgid "Add Arc\tA"
-msgstr "Bogen hinzufügen\tA"
-
-#: flatcamGUI/FlatCAMGUI.py:560
-msgid "Add Rectangle\tR"
-msgstr "Rechteck hinzufügen\tR"
-
-#: flatcamGUI/FlatCAMGUI.py:563
-msgid "Add Polygon\tN"
-msgstr "Polygon hinzufügen\tN"
-
-#: flatcamGUI/FlatCAMGUI.py:566
-msgid "Add Path\tP"
-msgstr "Pfad hinzufügen\tP"
-
-#: flatcamGUI/FlatCAMGUI.py:569
-msgid "Add Text\tT"
-msgstr "Text hinzufügen\tT"
-
-#: flatcamGUI/FlatCAMGUI.py:572
-msgid "Polygon Union\tU"
-msgstr "Polygon-Vereinigung\tU"
-
-#: flatcamGUI/FlatCAMGUI.py:574
-msgid "Polygon Intersection\tE"
-msgstr "Polygonschnitt\tE"
-
-#: flatcamGUI/FlatCAMGUI.py:576
-msgid "Polygon Subtraction\tS"
-msgstr "Polygon-Subtraktion\tS"
-
-#: flatcamGUI/FlatCAMGUI.py:580
-msgid "Cut Path\tX"
-msgstr "Pfad ausschneiden\tX"
-
-#: flatcamGUI/FlatCAMGUI.py:584
-msgid "Copy Geom\tC"
-msgstr "Geometrie kopieren\tC"
-
-#: flatcamGUI/FlatCAMGUI.py:586
-msgid "Delete Shape\tDEL"
-msgstr "Form löschen\tDEL"
-
-#: flatcamGUI/FlatCAMGUI.py:590 flatcamGUI/FlatCAMGUI.py:677
-msgid "Move\tM"
-msgstr "Bewegung\tM"
-
-#: flatcamGUI/FlatCAMGUI.py:592
-msgid "Buffer Tool\tB"
-msgstr "Pufferwerkzeug\tB"
-
-#: flatcamGUI/FlatCAMGUI.py:595
-msgid "Paint Tool\tI"
-msgstr "Malenwerkzeug\tI"
-
-#: flatcamGUI/FlatCAMGUI.py:598
-msgid "Transform Tool\tAlt+R"
-msgstr "Transformationswerkzeug\tAlt+R"
-
-#: flatcamGUI/FlatCAMGUI.py:602
-msgid "Toggle Corner Snap\tK"
-msgstr "Eckfang umschalten\tK"
-
-#: flatcamGUI/FlatCAMGUI.py:608
-msgid ">Excellon Editor<"
-msgstr ">Excellon Editor<"
-
-#: flatcamGUI/FlatCAMGUI.py:612
-msgid "Add Drill Array\tA"
-msgstr "Bohrfeld hinzufügen\tA"
-
-#: flatcamGUI/FlatCAMGUI.py:614
-msgid "Add Drill\tD"
-msgstr "Bohrer hinzufügen\tD"
-
-#: flatcamGUI/FlatCAMGUI.py:618
-msgid "Add Slot Array\tQ"
-msgstr "Steckplatz-Array hinzufügen\tQ"
-
-#: flatcamGUI/FlatCAMGUI.py:620
-msgid "Add Slot\tW"
-msgstr "Slot hinzufügen\tW"
-
-#: flatcamGUI/FlatCAMGUI.py:624
-msgid "Resize Drill(S)\tR"
-msgstr "Bohrer verkleinern\tR"
-
-#: flatcamGUI/FlatCAMGUI.py:627 flatcamGUI/FlatCAMGUI.py:671
-msgid "Copy\tC"
-msgstr "Kopieren\tC"
-
-#: flatcamGUI/FlatCAMGUI.py:629 flatcamGUI/FlatCAMGUI.py:673
-msgid "Delete\tDEL"
-msgstr "Löschen\tDEL"
-
-#: flatcamGUI/FlatCAMGUI.py:634
-msgid "Move Drill(s)\tM"
-msgstr "Bohrer verschieben\tM"
-
-#: flatcamGUI/FlatCAMGUI.py:639
-msgid ">Gerber Editor<"
-msgstr ">Gerber-Editor<"
-
-#: flatcamGUI/FlatCAMGUI.py:643
-msgid "Add Pad\tP"
-msgstr "Pad hinzufügen\tP"
-
-#: flatcamGUI/FlatCAMGUI.py:645
-msgid "Add Pad Array\tA"
-msgstr "Pad-Array hinzufügen\tA"
-
-#: flatcamGUI/FlatCAMGUI.py:647
-msgid "Add Track\tT"
-msgstr "Track hinzufügen\tA"
-
-#: flatcamGUI/FlatCAMGUI.py:649
-msgid "Add Region\tN"
-msgstr "Region hinzufügen\tN"
-
-#: flatcamGUI/FlatCAMGUI.py:653
-msgid "Poligonize\tAlt+N"
-msgstr "Polygonisieren\tAlt+N"
-
-#: flatcamGUI/FlatCAMGUI.py:655
-msgid "Add SemiDisc\tE"
-msgstr "Halbschibe hinzufügen\tE"
-
-#: flatcamGUI/FlatCAMGUI.py:657
-msgid "Add Disc\tD"
-msgstr "Schibe hinzufügen\tD"
-
-#: flatcamGUI/FlatCAMGUI.py:659
-msgid "Buffer\tB"
-msgstr "Puffer\tB"
-
-#: flatcamGUI/FlatCAMGUI.py:661
-msgid "Scale\tS"
-msgstr "Skalieren\tS"
-
-#: flatcamGUI/FlatCAMGUI.py:663
-msgid "Mark Area\tAlt+A"
-msgstr "Bereich markieren\tAlt+A"
-
-#: flatcamGUI/FlatCAMGUI.py:665
-msgid "Eraser\tCtrl+E"
-msgstr "Radiergummi\tSTRG+E"
-
-#: flatcamGUI/FlatCAMGUI.py:667
-msgid "Transform\tAlt+R"
-msgstr "Transformationswerkzeug\tSTRG+R"
-
-#: flatcamGUI/FlatCAMGUI.py:694
-msgid "Enable Plot"
-msgstr "Diagramm aktivieren"
-
-#: flatcamGUI/FlatCAMGUI.py:696
-msgid "Disable Plot"
-msgstr "Diagramm deaktivieren"
-
-#: flatcamGUI/FlatCAMGUI.py:700
-msgid "Set Color"
-msgstr "Farbsatz"
-
-#: flatcamGUI/FlatCAMGUI.py:742
-msgid "Generate CNC"
-msgstr "CNC generieren"
-
-#: flatcamGUI/FlatCAMGUI.py:744
-msgid "View Source"
-msgstr "Quelltext anzeigen"
-
-#: flatcamGUI/FlatCAMGUI.py:749 flatcamGUI/FlatCAMGUI.py:863
-#: flatcamGUI/FlatCAMGUI.py:1072 flatcamGUI/FlatCAMGUI.py:2138
-#: flatcamGUI/FlatCAMGUI.py:2282 flatcamGUI/FlatCAMGUI.py:2572
-#: flatcamGUI/FlatCAMGUI.py:2775 flatcamGUI/ObjectUI.py:1617
-#: flatcamObjects/FlatCAMGeometry.py:502 flatcamTools/ToolPanelize.py:540
-#: flatcamTools/ToolPanelize.py:567 flatcamTools/ToolPanelize.py:660
-#: flatcamTools/ToolPanelize.py:689 flatcamTools/ToolPanelize.py:751
-msgid "Copy"
-msgstr "Kopieren"
-
-#: flatcamGUI/FlatCAMGUI.py:757 flatcamGUI/FlatCAMGUI.py:2295
-#: flatcamTools/ToolProperties.py:31
-msgid "Properties"
-msgstr "Eigenschaften"
-
-#: flatcamGUI/FlatCAMGUI.py:786
-msgid "File Toolbar"
-msgstr "Dateisymbolleiste"
-
-#: flatcamGUI/FlatCAMGUI.py:790
-msgid "Edit Toolbar"
-msgstr "Symbolleiste bearbeiten"
-
-#: flatcamGUI/FlatCAMGUI.py:794
-msgid "View Toolbar"
-msgstr "Symbolleiste anzeigen"
-
-#: flatcamGUI/FlatCAMGUI.py:798
-msgid "Shell Toolbar"
-msgstr "Shell-Symbolleiste"
-
-#: flatcamGUI/FlatCAMGUI.py:802
-msgid "Tools Toolbar"
-msgstr "Werkzeugleiste"
-
-#: flatcamGUI/FlatCAMGUI.py:806
-msgid "Excellon Editor Toolbar"
-msgstr "Excellon Editor-Symbolleiste"
-
-#: flatcamGUI/FlatCAMGUI.py:812
-msgid "Geometry Editor Toolbar"
-msgstr "Geometrie Editor-Symbolleiste"
-
-#: flatcamGUI/FlatCAMGUI.py:816
-msgid "Gerber Editor Toolbar"
-msgstr "Gerber Editor-Symbolleiste"
-
-#: flatcamGUI/FlatCAMGUI.py:820
-msgid "Grid Toolbar"
-msgstr "Raster-Symbolleiste"
-
-#: flatcamGUI/FlatCAMGUI.py:841 flatcamGUI/FlatCAMGUI.py:2549
-msgid "Open project"
-msgstr "Projekt öffnen"
-
-#: flatcamGUI/FlatCAMGUI.py:843 flatcamGUI/FlatCAMGUI.py:2551
-msgid "Save project"
-msgstr "Projekt speichern"
-
-#: flatcamGUI/FlatCAMGUI.py:849 flatcamGUI/FlatCAMGUI.py:2557
-msgid "New Blank Geometry"
-msgstr "Neue Geometrie erstellen"
-
-#: flatcamGUI/FlatCAMGUI.py:851 flatcamGUI/FlatCAMGUI.py:2559
-msgid "New Blank Gerber"
-msgstr "Neues Gerber erstellen"
-
-#: flatcamGUI/FlatCAMGUI.py:853 flatcamGUI/FlatCAMGUI.py:2561
-msgid "New Blank Excellon"
-msgstr "Neuen Excellon erstellen"
-
-#: flatcamGUI/FlatCAMGUI.py:858 flatcamGUI/FlatCAMGUI.py:2567
-msgid "Save Object and close the Editor"
-msgstr "Speichern Sie das Objekt und schließen Sie den Editor"
-
-#: flatcamGUI/FlatCAMGUI.py:865 flatcamGUI/FlatCAMGUI.py:2574
-msgid "&Delete"
-msgstr "&Löschen"
-
-#: flatcamGUI/FlatCAMGUI.py:868 flatcamGUI/FlatCAMGUI.py:1729
-#: flatcamGUI/FlatCAMGUI.py:1935 flatcamGUI/FlatCAMGUI.py:2577
-#: flatcamTools/ToolDistance.py:35 flatcamTools/ToolDistance.py:195
-msgid "Distance Tool"
-msgstr "Entfernungswerkzeug"
-
-#: flatcamGUI/FlatCAMGUI.py:870 flatcamGUI/FlatCAMGUI.py:2579
-msgid "Distance Min Tool"
-msgstr "Werkzeug für Mindestabstand"
-
-#: flatcamGUI/FlatCAMGUI.py:872 flatcamGUI/FlatCAMGUI.py:1722
-#: flatcamGUI/FlatCAMGUI.py:2581
-msgid "Set Origin"
-msgstr "Nullpunkt festlegen"
-
-#: flatcamGUI/FlatCAMGUI.py:874
-msgid "Move to Origin"
-msgstr "Zum Ursprung wechseln"
-
-#: flatcamGUI/FlatCAMGUI.py:877 flatcamGUI/FlatCAMGUI.py:2583
-msgid "Jump to Location"
-msgstr "Zur Position springen\tJ"
-
-#: flatcamGUI/FlatCAMGUI.py:879 flatcamGUI/FlatCAMGUI.py:1734
-#: flatcamGUI/FlatCAMGUI.py:2585
-msgid "Locate in Object"
-msgstr "Suchen Sie im Objekt"
-
-#: flatcamGUI/FlatCAMGUI.py:885 flatcamGUI/FlatCAMGUI.py:2591
-msgid "&Replot"
-msgstr "Neuzeichnen &R"
-
-#: flatcamGUI/FlatCAMGUI.py:887 flatcamGUI/FlatCAMGUI.py:2593
-msgid "&Clear plot"
-msgstr "Darstellung löschen &C"
-
-#: flatcamGUI/FlatCAMGUI.py:889 flatcamGUI/FlatCAMGUI.py:1725
-#: flatcamGUI/FlatCAMGUI.py:2595
-msgid "Zoom In"
-msgstr "Hineinzoomen"
-
-#: flatcamGUI/FlatCAMGUI.py:891 flatcamGUI/FlatCAMGUI.py:1725
-#: flatcamGUI/FlatCAMGUI.py:2597
-msgid "Zoom Out"
-msgstr "Rauszoomen"
-
-#: flatcamGUI/FlatCAMGUI.py:893 flatcamGUI/FlatCAMGUI.py:1724
-#: flatcamGUI/FlatCAMGUI.py:2185 flatcamGUI/FlatCAMGUI.py:2599
-msgid "Zoom Fit"
-msgstr "Passend zoomen"
-
-#: flatcamGUI/FlatCAMGUI.py:901 flatcamGUI/FlatCAMGUI.py:2605
-msgid "&Command Line"
-msgstr "Befehlszeile"
-
-#: flatcamGUI/FlatCAMGUI.py:913 flatcamGUI/FlatCAMGUI.py:2617
-msgid "2Sided Tool"
-msgstr "2Seitiges Werkzeug"
-
-#: flatcamGUI/FlatCAMGUI.py:915 flatcamGUI/FlatCAMGUI.py:1740
-#: flatcamGUI/FlatCAMGUI.py:2619
-msgid "Align Objects Tool"
-msgstr "Werkzeug \"Objekte ausrichten\""
-
-#: flatcamGUI/FlatCAMGUI.py:917 flatcamGUI/FlatCAMGUI.py:1741
-#: flatcamGUI/FlatCAMGUI.py:2621 flatcamTools/ToolExtractDrills.py:393
-msgid "Extract Drills Tool"
-msgstr "Bohrer Extrahieren Werkzeug"
-
-#: flatcamGUI/FlatCAMGUI.py:920 flatcamGUI/ObjectUI.py:596
-#: flatcamTools/ToolCutOut.py:440
-msgid "Cutout Tool"
-msgstr "Ausschnittwerkzeug"
-
-#: flatcamGUI/FlatCAMGUI.py:922 flatcamGUI/FlatCAMGUI.py:2626
-#: flatcamGUI/ObjectUI.py:574 flatcamGUI/ObjectUI.py:2157
-#: flatcamTools/ToolNCC.py:974
-msgid "NCC Tool"
-msgstr "NCC Werkzeug"
-
-#: flatcamGUI/FlatCAMGUI.py:928 flatcamGUI/FlatCAMGUI.py:2632
-msgid "Panel Tool"
-msgstr "Platte Werkzeug"
-
-#: flatcamGUI/FlatCAMGUI.py:930 flatcamGUI/FlatCAMGUI.py:2634
-#: flatcamTools/ToolFilm.py:586
-msgid "Film Tool"
-msgstr "Filmwerkzeug"
-
-#: flatcamGUI/FlatCAMGUI.py:932 flatcamGUI/FlatCAMGUI.py:2636
-#: flatcamTools/ToolSolderPaste.py:553
-msgid "SolderPaste Tool"
-msgstr "Lötpaste-Werkzeug"
-
-#: flatcamGUI/FlatCAMGUI.py:934 flatcamGUI/FlatCAMGUI.py:2638
-#: flatcamTools/ToolSub.py:35
-msgid "Subtract Tool"
-msgstr "Subtraktionswerkzeug"
-
-#: flatcamGUI/FlatCAMGUI.py:936 flatcamGUI/FlatCAMGUI.py:2640
-#: flatcamTools/ToolRulesCheck.py:616
-msgid "Rules Tool"
-msgstr "Regelwerkzeug"
-
-#: flatcamGUI/FlatCAMGUI.py:938 flatcamGUI/FlatCAMGUI.py:1743
-#: flatcamGUI/FlatCAMGUI.py:2642 flatcamTools/ToolOptimal.py:33
-#: flatcamTools/ToolOptimal.py:307
-msgid "Optimal Tool"
-msgstr "Optimierungswerkzeug"
-
-#: flatcamGUI/FlatCAMGUI.py:943 flatcamGUI/FlatCAMGUI.py:1740
-#: flatcamGUI/FlatCAMGUI.py:2647
-msgid "Calculators Tool"
-msgstr "Rechnerwerkzeug"
-
-#: flatcamGUI/FlatCAMGUI.py:947 flatcamGUI/FlatCAMGUI.py:1744
-#: flatcamGUI/FlatCAMGUI.py:2651 flatcamTools/ToolQRCode.py:43
-#: flatcamTools/ToolQRCode.py:382
-msgid "QRCode Tool"
-msgstr "QRCode Werkzeug"
-
-# Really don't know
-#: flatcamGUI/FlatCAMGUI.py:949 flatcamGUI/FlatCAMGUI.py:2653
-#: flatcamTools/ToolCopperThieving.py:39 flatcamTools/ToolCopperThieving.py:568
-msgid "Copper Thieving Tool"
-msgstr "Copper Thieving Werkzeug"
-
-# Really don't know
-#: flatcamGUI/FlatCAMGUI.py:952 flatcamGUI/FlatCAMGUI.py:1741
-#: flatcamGUI/FlatCAMGUI.py:2656 flatcamTools/ToolFiducials.py:33
-#: flatcamTools/ToolFiducials.py:395
-msgid "Fiducials Tool"
-msgstr "Passermarken-Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:954 flatcamGUI/FlatCAMGUI.py:2658
-#: flatcamTools/ToolCalibration.py:37 flatcamTools/ToolCalibration.py:759
-msgid "Calibration Tool"
-msgstr "Kalibierungswerkzeug"
-
-#: flatcamGUI/FlatCAMGUI.py:956 flatcamGUI/FlatCAMGUI.py:1741
-#: flatcamGUI/FlatCAMGUI.py:2660
-msgid "Punch Gerber Tool"
-msgstr "Stanzen Sie das Gerber-Werkzeug"
-
-#: flatcamGUI/FlatCAMGUI.py:958 flatcamGUI/FlatCAMGUI.py:2662
-#: flatcamTools/ToolInvertGerber.py:31
-msgid "Invert Gerber Tool"
-msgstr "Invertieren Sie das Gerber-Werkzeug"
-
-#: flatcamGUI/FlatCAMGUI.py:964 flatcamGUI/FlatCAMGUI.py:990
-#: flatcamGUI/FlatCAMGUI.py:1042 flatcamGUI/FlatCAMGUI.py:2668
-#: flatcamGUI/FlatCAMGUI.py:2746
-msgid "Select"
-msgstr "Wählen"
-
-#: flatcamGUI/FlatCAMGUI.py:966 flatcamGUI/FlatCAMGUI.py:2670
-msgid "Add Drill Hole"
-msgstr "Bohrloch hinzufügen"
-
-#: flatcamGUI/FlatCAMGUI.py:968 flatcamGUI/FlatCAMGUI.py:2672
-msgid "Add Drill Hole Array"
-msgstr "Bohrlochfeld hinzufügen"
-
-#: flatcamGUI/FlatCAMGUI.py:970 flatcamGUI/FlatCAMGUI.py:2020
-#: flatcamGUI/FlatCAMGUI.py:2273 flatcamGUI/FlatCAMGUI.py:2676
-msgid "Add Slot"
-msgstr "Steckplatz hinzufügen"
-
-#: flatcamGUI/FlatCAMGUI.py:972 flatcamGUI/FlatCAMGUI.py:2019
-#: flatcamGUI/FlatCAMGUI.py:2275 flatcamGUI/FlatCAMGUI.py:2678
-msgid "Add Slot Array"
-msgstr "Steckplatz-Array hinzufügen"
-
-#: flatcamGUI/FlatCAMGUI.py:974 flatcamGUI/FlatCAMGUI.py:2278
-#: flatcamGUI/FlatCAMGUI.py:2674
-msgid "Resize Drill"
-msgstr "Bohrergröße ändern"
-
-#: flatcamGUI/FlatCAMGUI.py:978 flatcamGUI/FlatCAMGUI.py:2682
-msgid "Copy Drill"
-msgstr "Bohrer kopieren"
-
-#: flatcamGUI/FlatCAMGUI.py:980 flatcamGUI/FlatCAMGUI.py:2684
-msgid "Delete Drill"
-msgstr "Bohrer löschen"
-
-#: flatcamGUI/FlatCAMGUI.py:984 flatcamGUI/FlatCAMGUI.py:2688
-msgid "Move Drill"
-msgstr "Bohrer bewegen"
-
-#: flatcamGUI/FlatCAMGUI.py:992 flatcamGUI/FlatCAMGUI.py:2696
-msgid "Add Circle"
-msgstr "Kreis hinzufügen"
-
-#: flatcamGUI/FlatCAMGUI.py:994 flatcamGUI/FlatCAMGUI.py:2698
-msgid "Add Arc"
-msgstr "Bogen hinzufügen"
-
-#: flatcamGUI/FlatCAMGUI.py:996 flatcamGUI/FlatCAMGUI.py:2700
-msgid "Add Rectangle"
-msgstr "Rechteck hinzufügen"
-
-#: flatcamGUI/FlatCAMGUI.py:1000 flatcamGUI/FlatCAMGUI.py:2704
-msgid "Add Path"
-msgstr "Pfad hinzufügen"
-
-#: flatcamGUI/FlatCAMGUI.py:1002 flatcamGUI/FlatCAMGUI.py:2706
-msgid "Add Polygon"
-msgstr "Polygon hinzufügen"
-
-#: flatcamGUI/FlatCAMGUI.py:1005 flatcamGUI/FlatCAMGUI.py:2709
-msgid "Add Text"
-msgstr "Text hinzufügen"
-
-#: flatcamGUI/FlatCAMGUI.py:1007 flatcamGUI/FlatCAMGUI.py:2711
-msgid "Add Buffer"
-msgstr "Puffer hinzufügen"
-
-#: flatcamGUI/FlatCAMGUI.py:1009 flatcamGUI/FlatCAMGUI.py:2713
-msgid "Paint Shape"
-msgstr "Malen Form"
-
-#: flatcamGUI/FlatCAMGUI.py:1011 flatcamGUI/FlatCAMGUI.py:1068
-#: flatcamGUI/FlatCAMGUI.py:2214 flatcamGUI/FlatCAMGUI.py:2259
-#: flatcamGUI/FlatCAMGUI.py:2715 flatcamGUI/FlatCAMGUI.py:2771
-msgid "Eraser"
-msgstr "Radiergummi"
-
-#: flatcamGUI/FlatCAMGUI.py:1015 flatcamGUI/FlatCAMGUI.py:2719
-msgid "Polygon Union"
-msgstr "Polygon-Vereinigung"
-
-#: flatcamGUI/FlatCAMGUI.py:1017 flatcamGUI/FlatCAMGUI.py:2721
-msgid "Polygon Explode"
-msgstr "Polygon explodieren"
-
-#: flatcamGUI/FlatCAMGUI.py:1020 flatcamGUI/FlatCAMGUI.py:2724
-msgid "Polygon Intersection"
-msgstr "Polygonschnitt"
-
-#: flatcamGUI/FlatCAMGUI.py:1022 flatcamGUI/FlatCAMGUI.py:2726
-msgid "Polygon Subtraction"
-msgstr "Polygon-Subtraktion"
-
-#: flatcamGUI/FlatCAMGUI.py:1026 flatcamGUI/FlatCAMGUI.py:2730
-msgid "Cut Path"
-msgstr "Pfad ausschneiden"
-
-#: flatcamGUI/FlatCAMGUI.py:1028
-msgid "Copy Shape(s)"
-msgstr "Form kopieren"
-
-#: flatcamGUI/FlatCAMGUI.py:1031
-msgid "Delete Shape '-'"
-msgstr "Form löschen"
-
-#: flatcamGUI/FlatCAMGUI.py:1033 flatcamGUI/FlatCAMGUI.py:1076
-#: flatcamGUI/FlatCAMGUI.py:2226 flatcamGUI/FlatCAMGUI.py:2263
-#: flatcamGUI/FlatCAMGUI.py:2736 flatcamGUI/FlatCAMGUI.py:2779
-#: flatcamGUI/ObjectUI.py:109
-msgid "Transformations"
-msgstr "Transformationen"
-
-#: flatcamGUI/FlatCAMGUI.py:1036
-msgid "Move Objects "
-msgstr "Objekte verschieben "
-
-#: flatcamGUI/FlatCAMGUI.py:1044 flatcamGUI/FlatCAMGUI.py:2139
-#: flatcamGUI/FlatCAMGUI.py:2748
-msgid "Add Pad"
-msgstr "Pad hinzufügen"
-
-#: flatcamGUI/FlatCAMGUI.py:1048 flatcamGUI/FlatCAMGUI.py:2140
-#: flatcamGUI/FlatCAMGUI.py:2752
-msgid "Add Track"
-msgstr "Track hinzufügen"
-
-#: flatcamGUI/FlatCAMGUI.py:1050 flatcamGUI/FlatCAMGUI.py:2139
-#: flatcamGUI/FlatCAMGUI.py:2754
-msgid "Add Region"
-msgstr "Region hinzufügen"
-
-#: flatcamGUI/FlatCAMGUI.py:1052 flatcamGUI/FlatCAMGUI.py:2245
-#: flatcamGUI/FlatCAMGUI.py:2756
-msgid "Poligonize"
-msgstr "Polygonisieren"
-
-#: flatcamGUI/FlatCAMGUI.py:1055 flatcamGUI/FlatCAMGUI.py:2247
-#: flatcamGUI/FlatCAMGUI.py:2759
-msgid "SemiDisc"
-msgstr "Halbscheibe"
-
-#: flatcamGUI/FlatCAMGUI.py:1057 flatcamGUI/FlatCAMGUI.py:2249
-#: flatcamGUI/FlatCAMGUI.py:2761
-msgid "Disc"
-msgstr "Scheibe"
-
-#: flatcamGUI/FlatCAMGUI.py:1065 flatcamGUI/FlatCAMGUI.py:2257
-#: flatcamGUI/FlatCAMGUI.py:2769
-msgid "Mark Area"
-msgstr "Bereich markieren"
-
-#: flatcamGUI/FlatCAMGUI.py:1079 flatcamGUI/FlatCAMGUI.py:2139
-#: flatcamGUI/FlatCAMGUI.py:2230 flatcamGUI/FlatCAMGUI.py:2293
-#: flatcamGUI/FlatCAMGUI.py:2782 flatcamTools/ToolMove.py:27
-msgid "Move"
-msgstr "Bewegung"
-
-#: flatcamGUI/FlatCAMGUI.py:1087 flatcamGUI/FlatCAMGUI.py:2791
-msgid "Snap to grid"
-msgstr "Am Raster ausrichten"
-
-#: flatcamGUI/FlatCAMGUI.py:1090 flatcamGUI/FlatCAMGUI.py:2794
-msgid "Grid X snapping distance"
-msgstr "Raster X Fangdistanz"
-
-#: flatcamGUI/FlatCAMGUI.py:1095 flatcamGUI/FlatCAMGUI.py:2799
-msgid "Grid Y snapping distance"
-msgstr "Raster Y Fangdistanz"
-
-#: flatcamGUI/FlatCAMGUI.py:1101 flatcamGUI/FlatCAMGUI.py:2805
-msgid ""
-"When active, value on Grid_X\n"
-"is copied to the Grid_Y value."
-msgstr ""
-"Wenn aktiv, Wert auf Grid_X\n"
-"wird in den Wert von Grid_Y kopiert."
-
-#: flatcamGUI/FlatCAMGUI.py:1108 flatcamGUI/FlatCAMGUI.py:2812
-msgid "Snap to corner"
-msgstr "In der Ecke ausrichten"
-
-#: flatcamGUI/FlatCAMGUI.py:1112 flatcamGUI/FlatCAMGUI.py:2816
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:78
-msgid "Max. magnet distance"
-msgstr "Max. Magnetabstand"
-
-#: flatcamGUI/FlatCAMGUI.py:1149
-msgid "Selected"
-msgstr "Ausgewählt"
-
-#: flatcamGUI/FlatCAMGUI.py:1177 flatcamGUI/FlatCAMGUI.py:1185
-msgid "Plot Area"
-msgstr "Grundstücksfläche"
-
-#: flatcamGUI/FlatCAMGUI.py:1212
-msgid "General"
-msgstr "Allgemeines"
-
-#: flatcamGUI/FlatCAMGUI.py:1227 flatcamTools/ToolCopperThieving.py:74
-#: flatcamTools/ToolDblSided.py:64 flatcamTools/ToolExtractDrills.py:61
-#: flatcamTools/ToolInvertGerber.py:72 flatcamTools/ToolOptimal.py:71
-#: flatcamTools/ToolPunchGerber.py:64
-msgid "GERBER"
-msgstr "GERBER"
-
-#: flatcamGUI/FlatCAMGUI.py:1237 flatcamTools/ToolDblSided.py:92
-msgid "EXCELLON"
-msgstr "EXCELLON"
-
-#: flatcamGUI/FlatCAMGUI.py:1247 flatcamTools/ToolDblSided.py:120
-msgid "GEOMETRY"
-msgstr "GEOMETRY"
-
-#: flatcamGUI/FlatCAMGUI.py:1257
-msgid "CNC-JOB"
-msgstr "CNC-Auftrag"
-
-#: flatcamGUI/FlatCAMGUI.py:1266 flatcamGUI/ObjectUI.py:563
-#: flatcamGUI/ObjectUI.py:2132
-msgid "TOOLS"
-msgstr "WERKZEUGE"
-
-#: flatcamGUI/FlatCAMGUI.py:1275
-msgid "TOOLS 2"
-msgstr "WERKZEUGE 2"
-
-#: flatcamGUI/FlatCAMGUI.py:1285
-msgid "UTILITIES"
-msgstr "NUTZEN"
-
-#: flatcamGUI/FlatCAMGUI.py:1302
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:192
-msgid "Restore Defaults"
-msgstr "Standard wiederherstellen"
-
-#: flatcamGUI/FlatCAMGUI.py:1305
-msgid ""
-"Restore the entire set of default values\n"
-"to the initial values loaded after first launch."
-msgstr ""
-"Stellen Sie den gesamten Satz von Standardwerten wieder her\n"
-"auf die nach dem ersten Start geladenen Anfangswerte."
-
-#: flatcamGUI/FlatCAMGUI.py:1310
-msgid "Open Pref Folder"
-msgstr "Öffnen Sie den Einstellungsordner"
-
-#: flatcamGUI/FlatCAMGUI.py:1313
-msgid "Open the folder where FlatCAM save the preferences files."
-msgstr ""
-"Öffnen Sie den Ordner, in dem FlatCAM die Voreinstellungsdateien speichert."
-
-#: flatcamGUI/FlatCAMGUI.py:1317 flatcamGUI/FlatCAMGUI.py:2517
-msgid "Clear GUI Settings"
-msgstr "Löschen Sie die GUI-Einstellungen"
-
-#: flatcamGUI/FlatCAMGUI.py:1321
-msgid ""
-"Clear the GUI settings for FlatCAM,\n"
-"such as: layout, gui state, style, hdpi support etc."
-msgstr ""
-"Löschen Sie die GUI-Einstellungen für FlatCAM.\n"
-"wie zum Beispiel: Layout, GUI-Status, Stil, HDPI-Unterstützung usw."
-
-#: flatcamGUI/FlatCAMGUI.py:1332
-msgid "Apply"
-msgstr "Anwenden"
-
-#: flatcamGUI/FlatCAMGUI.py:1335
-msgid "Apply the current preferences without saving to a file."
-msgstr "Anwenden ohne zu speichern."
-
-#: flatcamGUI/FlatCAMGUI.py:1342
-msgid ""
-"Save the current settings in the 'current_defaults' file\n"
-"which is the file storing the working default preferences."
-msgstr ""
-"Speichern Sie die aktuellen Einstellungen in der Datei 'current_defaults'\n"
-"Dies ist die Datei, in der die Arbeitseinstellungen gespeichert sind."
-
-#: flatcamGUI/FlatCAMGUI.py:1350
-msgid "Will not save the changes and will close the preferences window."
-msgstr "Einstellungen werden geschlossen ohne die Änderungen zu speichern."
-
-#: flatcamGUI/FlatCAMGUI.py:1719
-msgid "SHOW SHORTCUT LIST"
-msgstr "Verknüpfungsliste anzeigen"
-
-#: flatcamGUI/FlatCAMGUI.py:1719
-msgid "Switch to Project Tab"
-msgstr "Wechseln Sie zur Registerkarte Projekt"
-
-#: flatcamGUI/FlatCAMGUI.py:1719
-msgid "Switch to Selected Tab"
-msgstr "Wechseln Sie zur ausgewählten Registerkarte"
-
-#: flatcamGUI/FlatCAMGUI.py:1720
-msgid "Switch to Tool Tab"
-msgstr "Wechseln Sie zur Werkzeugregisterkarte"
-
-#: flatcamGUI/FlatCAMGUI.py:1721
-msgid "New Gerber"
-msgstr "Neuer Gerber"
-
-#: flatcamGUI/FlatCAMGUI.py:1721
-msgid "Edit Object (if selected)"
-msgstr "Objekt bearbeiten (falls ausgewählt)"
-
-#: flatcamGUI/FlatCAMGUI.py:1721
-msgid "Jump to Coordinates"
-msgstr "Springe zu den Koordinaten"
-
-#: flatcamGUI/FlatCAMGUI.py:1722
-msgid "New Excellon"
-msgstr "Neuer Excellon"
-
-#: flatcamGUI/FlatCAMGUI.py:1722
-msgid "Move Obj"
-msgstr "Objekt verschieben"
-
-#: flatcamGUI/FlatCAMGUI.py:1722
-msgid "New Geometry"
-msgstr "Neue Geometrie"
-
-#: flatcamGUI/FlatCAMGUI.py:1722
-msgid "Change Units"
-msgstr "Einheiten ändern"
-
-#: flatcamGUI/FlatCAMGUI.py:1723
-msgid "Open Properties Tool"
-msgstr "Öffnen Sie das Eigenschaften-Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1723
-msgid "Rotate by 90 degree CW"
-msgstr "Um 90 Grad im Uhrzeigersinn drehen"
-
-#: flatcamGUI/FlatCAMGUI.py:1723
-msgid "Shell Toggle"
-msgstr "Shell umschalten"
-
-#: flatcamGUI/FlatCAMGUI.py:1724
-msgid ""
-"Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)"
-msgstr ""
-"Hinzufügen eines Werkzeugs (auf der Registerkarte \"Geometrie ausgewählt\" "
-"oder unter \"Werkzeuge\", \"NCC\" oder \"Werkzeuge\", \"Malen\")"
-
-#: flatcamGUI/FlatCAMGUI.py:1725
-msgid "Flip on X_axis"
-msgstr "Auf X-Achse spiegeln"
-
-#: flatcamGUI/FlatCAMGUI.py:1725
-msgid "Flip on Y_axis"
-msgstr "Auf Y-Achse spiegeln"
-
-#: flatcamGUI/FlatCAMGUI.py:1728
-msgid "Copy Obj"
-msgstr "Objekt kopieren"
-
-#: flatcamGUI/FlatCAMGUI.py:1728
-msgid "Open Tools Database"
-msgstr "Werkzeugdatenbank öffnen"
-
-#: flatcamGUI/FlatCAMGUI.py:1729
-msgid "Open Excellon File"
-msgstr "Öffnen Sie die Excellon-Datei"
-
-#: flatcamGUI/FlatCAMGUI.py:1729
-msgid "Open Gerber File"
-msgstr "Öffnen Sie die Gerber-Datei"
-
-#: flatcamGUI/FlatCAMGUI.py:1729
-msgid "New Project"
-msgstr "Neues Projekt"
-
-#: flatcamGUI/FlatCAMGUI.py:1730 flatcamTools/ToolPDF.py:42
-msgid "PDF Import Tool"
-msgstr "PDF-Importwerkzeug"
-
-#: flatcamGUI/FlatCAMGUI.py:1730
-msgid "Save Project"
-msgstr "Projekt speichern"
-
-#: flatcamGUI/FlatCAMGUI.py:1730
-msgid "Toggle Plot Area"
-msgstr "Zeichenbereich umschalten0"
-
-#: flatcamGUI/FlatCAMGUI.py:1733
-msgid "Copy Obj_Name"
-msgstr "Kopieren Sie den Namen des Objekts"
-
-#: flatcamGUI/FlatCAMGUI.py:1734
-msgid "Toggle Code Editor"
-msgstr "Code-Editor umschalten"
-
-#: flatcamGUI/FlatCAMGUI.py:1734
-msgid "Toggle the axis"
-msgstr "Achse umschalten"
-
-#: flatcamGUI/FlatCAMGUI.py:1734 flatcamGUI/FlatCAMGUI.py:1933
-#: flatcamGUI/FlatCAMGUI.py:2020 flatcamGUI/FlatCAMGUI.py:2142
-msgid "Distance Minimum Tool"
-msgstr "Mindestabstand Werkzeug"
-
-#: flatcamGUI/FlatCAMGUI.py:1735
-msgid "Open Preferences Window"
-msgstr "Öffnen Sie das Einstellungsfenster"
-
-#: flatcamGUI/FlatCAMGUI.py:1736
-msgid "Rotate by 90 degree CCW"
-msgstr "Um 90 Grad gegen den Uhrzeigersinn drehen"
-
-#: flatcamGUI/FlatCAMGUI.py:1736
-msgid "Run a Script"
-msgstr "Führen Sie ein Skript aus"
-
-#: flatcamGUI/FlatCAMGUI.py:1736
-msgid "Toggle the workspace"
-msgstr "Arbeitsbereich umschalten"
-
-#: flatcamGUI/FlatCAMGUI.py:1736
-msgid "Skew on X axis"
-msgstr "Neigung auf der X-Achse"
-
-#: flatcamGUI/FlatCAMGUI.py:1737
-msgid "Skew on Y axis"
-msgstr "Neigung auf der Y-Achse"
-
-#: flatcamGUI/FlatCAMGUI.py:1740
-msgid "2-Sided PCB Tool"
-msgstr "2-seitiges PCB Werkzeug"
-
-#: flatcamGUI/FlatCAMGUI.py:1740
-msgid "Transformations Tool"
-msgstr "Transformations-Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1742
-msgid "Solder Paste Dispensing Tool"
-msgstr "Lotpasten-Dosierwerkzeug"
-
-#: flatcamGUI/FlatCAMGUI.py:1743
-msgid "Film PCB Tool"
-msgstr "Film PCB Werkzeug"
-
-#: flatcamGUI/FlatCAMGUI.py:1743
-msgid "Non-Copper Clearing Tool"
-msgstr "Nicht-Kupfer-Räumwerkzeug"
-
-#: flatcamGUI/FlatCAMGUI.py:1744
-msgid "Paint Area Tool"
-msgstr "Malbereichswerkzeug"
-
-#: flatcamGUI/FlatCAMGUI.py:1744
-msgid "Rules Check Tool"
-msgstr "Regelprüfwerkzeug"
-
-#: flatcamGUI/FlatCAMGUI.py:1745
-msgid "View File Source"
-msgstr "Dateiquelle anzeigen"
-
-#: flatcamGUI/FlatCAMGUI.py:1746
-msgid "Cutout PCB Tool"
-msgstr "Ausschnitt PCB Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1746
-msgid "Enable all Plots"
-msgstr "Alle Zeichnungen aktivieren"
-
-#: flatcamGUI/FlatCAMGUI.py:1746
-msgid "Disable all Plots"
-msgstr "Alle Zeichnungen deaktivieren"
-
-#: flatcamGUI/FlatCAMGUI.py:1746
-msgid "Disable Non-selected Plots"
-msgstr "Nicht ausgewählte Zeichnungen deaktiv"
-
-#: flatcamGUI/FlatCAMGUI.py:1747
-msgid "Toggle Full Screen"
-msgstr "Vollbild umschalten"
-
-#: flatcamGUI/FlatCAMGUI.py:1750
-msgid "Abort current task (gracefully)"
-msgstr "Aktuelle Aufgabe abbrechen (ordnungsgemäß)"
-
-#: flatcamGUI/FlatCAMGUI.py:1753
-msgid "Save Project As"
-msgstr "Projekt speichern als"
-
-#: flatcamGUI/FlatCAMGUI.py:1754
-msgid ""
-"Paste Special. Will convert a Windows path style to the one required in Tcl "
-"Shell"
-msgstr ""
-"Paste Special. Konvertiert einen Windows-Pfadstil in den in Tcl Shell "
-"erforderlichen"
-
-#: flatcamGUI/FlatCAMGUI.py:1757
-msgid "Open Online Manual"
-msgstr "Online-Handbuch öffnen"
-
-#: flatcamGUI/FlatCAMGUI.py:1758
-msgid "Open Online Tutorials"
-msgstr "Öffnen Sie Online-Tutorials"
-
-#: flatcamGUI/FlatCAMGUI.py:1758
-msgid "Refresh Plots"
-msgstr "Zeichnungen aktualisieren"
-
-#: flatcamGUI/FlatCAMGUI.py:1758 flatcamTools/ToolSolderPaste.py:509
-msgid "Delete Object"
-msgstr "Objekt löschen"
-
-#: flatcamGUI/FlatCAMGUI.py:1758
-msgid "Alternate: Delete Tool"
-msgstr "Alternative: Werkzeug löschen"
-
-#: flatcamGUI/FlatCAMGUI.py:1759
-msgid "(left to Key_1)Toggle Notebook Area (Left Side)"
-msgstr "(links neben Taste_1) Notebook-Bereich umschalten (linke Seite)"
-
-#: flatcamGUI/FlatCAMGUI.py:1759
-msgid "En(Dis)able Obj Plot"
-msgstr "Objektzeichnung (de)aktivieren"
-
-#: flatcamGUI/FlatCAMGUI.py:1760
-msgid "Deselects all objects"
-msgstr "Hebt die Auswahl aller Objekte auf"
-
-#: flatcamGUI/FlatCAMGUI.py:1774
-msgid "Editor Shortcut list"
-msgstr "Editor-Verknüpfungsliste"
-
-#: flatcamGUI/FlatCAMGUI.py:1928
-msgid "GEOMETRY EDITOR"
-msgstr "GEOMETRIE-EDITOR"
-
-#: flatcamGUI/FlatCAMGUI.py:1928
-msgid "Draw an Arc"
-msgstr "Zeichnen Sie einen Bogen"
-
-#: flatcamGUI/FlatCAMGUI.py:1928
-msgid "Copy Geo Item"
-msgstr "Geo-Objekt kopieren"
-
-#: flatcamGUI/FlatCAMGUI.py:1929
-msgid "Within Add Arc will toogle the ARC direction: CW or CCW"
-msgstr ""
-"Innerhalb von Bogen hinzufügen wird die ARC-Richtung getippt: CW oder CCW"
-
-#: flatcamGUI/FlatCAMGUI.py:1929
-msgid "Polygon Intersection Tool"
-msgstr "Werkzeug Polygonschnitt"
-
-#: flatcamGUI/FlatCAMGUI.py:1930
-msgid "Geo Paint Tool"
-msgstr "Geo-Malwerkzeug"
-
-#: flatcamGUI/FlatCAMGUI.py:1930 flatcamGUI/FlatCAMGUI.py:2019
-#: flatcamGUI/FlatCAMGUI.py:2139
-msgid "Jump to Location (x, y)"
-msgstr "Zum Standort springen (x, y)"
-
-#: flatcamGUI/FlatCAMGUI.py:1930
-msgid "Toggle Corner Snap"
-msgstr "Eckfang umschalten"
-
-#: flatcamGUI/FlatCAMGUI.py:1930
-msgid "Move Geo Item"
-msgstr "Geo-Objekt verschieben"
-
-#: flatcamGUI/FlatCAMGUI.py:1931
-msgid "Within Add Arc will cycle through the ARC modes"
-msgstr "Innerhalb von Bogen hinzufügen werden die ARC-Modi durchlaufen"
-
-#: flatcamGUI/FlatCAMGUI.py:1931
-msgid "Draw a Polygon"
-msgstr "Zeichnen Sie ein Polygon"
-
-#: flatcamGUI/FlatCAMGUI.py:1931
-msgid "Draw a Circle"
-msgstr "Zeichne einen Kreis"
-
-#: flatcamGUI/FlatCAMGUI.py:1932
-msgid "Draw a Path"
-msgstr "Zeichne einen Pfad"
-
-#: flatcamGUI/FlatCAMGUI.py:1932
-msgid "Draw Rectangle"
-msgstr "Rechteck zeichnen"
-
-#: flatcamGUI/FlatCAMGUI.py:1932
-msgid "Polygon Subtraction Tool"
-msgstr "Polygon-Subtraktionswerkzeug"
-
-#: flatcamGUI/FlatCAMGUI.py:1932
-msgid "Add Text Tool"
-msgstr "Textwerkzeug hinzufügen"
-
-#: flatcamGUI/FlatCAMGUI.py:1933
-msgid "Polygon Union Tool"
-msgstr "Polygonverbindungswerkzeug"
-
-#: flatcamGUI/FlatCAMGUI.py:1933
-msgid "Flip shape on X axis"
-msgstr "Form auf der X-Achse spiegeln"
-
-#: flatcamGUI/FlatCAMGUI.py:1933
-msgid "Flip shape on Y axis"
-msgstr "Form auf der Y-Achse spiegeln"
-
-#: flatcamGUI/FlatCAMGUI.py:1934
-msgid "Skew shape on X axis"
-msgstr "Neigung auf der X-Achse"
-
-#: flatcamGUI/FlatCAMGUI.py:1934
-msgid "Skew shape on Y axis"
-msgstr "Neigung auf der Y-Achse"
-
-#: flatcamGUI/FlatCAMGUI.py:1934
-msgid "Editor Transformation Tool"
-msgstr "Editor-Transformationstool"
-
-#: flatcamGUI/FlatCAMGUI.py:1935
-msgid "Offset shape on X axis"
-msgstr "Versetzte Form auf der X-Achse"
-
-#: flatcamGUI/FlatCAMGUI.py:1935
-msgid "Offset shape on Y axis"
-msgstr "Versetzte Form auf der Y-Achse"
-
-#: flatcamGUI/FlatCAMGUI.py:1936 flatcamGUI/FlatCAMGUI.py:2022
-#: flatcamGUI/FlatCAMGUI.py:2144
-msgid "Save Object and Exit Editor"
-msgstr "Objekt speichern und Editor beenden"
-
-#: flatcamGUI/FlatCAMGUI.py:1936
-msgid "Polygon Cut Tool"
-msgstr "Polygon-Schneidewerkzeug"
-
-#: flatcamGUI/FlatCAMGUI.py:1937
-msgid "Rotate Geometry"
-msgstr "Geometrie drehen"
-
-#: flatcamGUI/FlatCAMGUI.py:1937
-msgid "Finish drawing for certain tools"
-msgstr "Beenden Sie das Zeichnen für bestimmte Werkzeuge"
-
-#: flatcamGUI/FlatCAMGUI.py:1937 flatcamGUI/FlatCAMGUI.py:2022
-#: flatcamGUI/FlatCAMGUI.py:2142
-msgid "Abort and return to Select"
-msgstr "Abbrechen und zurück zu Auswählen"
-
-#: flatcamGUI/FlatCAMGUI.py:1938 flatcamGUI/FlatCAMGUI.py:2734
-msgid "Delete Shape"
-msgstr "Form löschen"
-
-#: flatcamGUI/FlatCAMGUI.py:2018
-msgid "EXCELLON EDITOR"
-msgstr "EXCELLON EDITOR"
-
-#: flatcamGUI/FlatCAMGUI.py:2018
-msgid "Copy Drill(s)"
-msgstr "Bohrer kopieren"
-
-#: flatcamGUI/FlatCAMGUI.py:2018 flatcamGUI/FlatCAMGUI.py:2268
-msgid "Add Drill"
-msgstr "Bohrer hinzufügen"
-
-#: flatcamGUI/FlatCAMGUI.py:2019
-msgid "Move Drill(s)"
-msgstr "Bohrer verschieben"
-
-#: flatcamGUI/FlatCAMGUI.py:2020
-msgid "Add a new Tool"
-msgstr "Fügen Sie ein neues Werkzeug hinzu"
-
-#: flatcamGUI/FlatCAMGUI.py:2021
-msgid "Delete Drill(s)"
-msgstr "Bohrer löschen"
-
-#: flatcamGUI/FlatCAMGUI.py:2021
-msgid "Alternate: Delete Tool(s)"
-msgstr "Alternative: Werkzeug (e) löschen"
-
-#: flatcamGUI/FlatCAMGUI.py:2138
-msgid "GERBER EDITOR"
-msgstr "GERBER EDITOR"
-
-#: flatcamGUI/FlatCAMGUI.py:2138
-msgid "Add Disc"
-msgstr "Fügen Sie eine Scheiben hinzu"
-
-#: flatcamGUI/FlatCAMGUI.py:2138
-msgid "Add SemiDisc"
-msgstr "Halbschibe hinzufügen"
-
-#: flatcamGUI/FlatCAMGUI.py:2140
-msgid "Within Track & Region Tools will cycle in REVERSE the bend modes"
-msgstr ""
-"Innerhalb von Track- und Region-Werkzeugen werden die Biegemodi umgekehrt"
-
-#: flatcamGUI/FlatCAMGUI.py:2141
-msgid "Within Track & Region Tools will cycle FORWARD the bend modes"
-msgstr ""
-"Innerhalb von Track und Region werden mit Tools die Biegemodi vorwärts "
-"durchlaufen"
-
-#: flatcamGUI/FlatCAMGUI.py:2142
-msgid "Alternate: Delete Apertures"
-msgstr "Alternative: Löschen Sie die Blenden"
-
-#: flatcamGUI/FlatCAMGUI.py:2143
-msgid "Eraser Tool"
-msgstr "Radiergummi"
-
-#: flatcamGUI/FlatCAMGUI.py:2144
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:220
-msgid "Mark Area Tool"
-msgstr "Bereich markieren Werkzeug"
-
-#: flatcamGUI/FlatCAMGUI.py:2144
-msgid "Poligonize Tool"
-msgstr "Werkzeug Polygonisieren"
-
-#: flatcamGUI/FlatCAMGUI.py:2144
-msgid "Transformation Tool"
-msgstr "Transformationswerkzeug"
-
-#: flatcamGUI/FlatCAMGUI.py:2161
-msgid "Toggle Visibility"
-msgstr "Sichtbarkeit umschalten"
-
-#: flatcamGUI/FlatCAMGUI.py:2167
-msgid "New"
-msgstr "Neu"
-
-#: flatcamGUI/FlatCAMGUI.py:2169 flatcamGUI/ObjectUI.py:450
-#: flatcamObjects/FlatCAMGerber.py:239 flatcamObjects/FlatCAMGerber.py:327
-#: flatcamTools/ToolCalibration.py:631 flatcamTools/ToolCalibration.py:648
-#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144
-#: flatcamTools/ToolCopperThieving.py:158
-#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolCutOut.py:92
-#: flatcamTools/ToolDblSided.py:226 flatcamTools/ToolFilm.py:69
-#: flatcamTools/ToolFilm.py:102 flatcamTools/ToolFilm.py:549
-#: flatcamTools/ToolFilm.py:557 flatcamTools/ToolImage.py:49
-#: flatcamTools/ToolImage.py:271 flatcamTools/ToolNCC.py:95
-#: flatcamTools/ToolNCC.py:558 flatcamTools/ToolNCC.py:1300
-#: flatcamTools/ToolPaint.py:502 flatcamTools/ToolPaint.py:706
-#: flatcamTools/ToolPanelize.py:118 flatcamTools/ToolPanelize.py:374
-#: flatcamTools/ToolPanelize.py:391
-msgid "Geometry"
-msgstr "Geometrie"
-
-#: flatcamGUI/FlatCAMGUI.py:2173
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:99
-#: flatcamTools/ToolAlignObjects.py:74 flatcamTools/ToolAlignObjects.py:110
-#: flatcamTools/ToolCalibration.py:197 flatcamTools/ToolCalibration.py:631
-#: flatcamTools/ToolCalibration.py:648 flatcamTools/ToolCalibration.py:807
-#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144
-#: flatcamTools/ToolCopperThieving.py:158
-#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolDblSided.py:225
-#: flatcamTools/ToolFilm.py:359 flatcamTools/ToolNCC.py:558
-#: flatcamTools/ToolNCC.py:1300 flatcamTools/ToolPaint.py:502
-#: flatcamTools/ToolPaint.py:706 flatcamTools/ToolPanelize.py:374
-#: flatcamTools/ToolPunchGerber.py:149 flatcamTools/ToolPunchGerber.py:164
-msgid "Excellon"
-msgstr "Excellon"
-
-#: flatcamGUI/FlatCAMGUI.py:2180
-msgid "Grids"
-msgstr "Raster"
-
-#: flatcamGUI/FlatCAMGUI.py:2187
-msgid "Clear Plot"
-msgstr "Plot klar löschen"
-
-#: flatcamGUI/FlatCAMGUI.py:2189
-msgid "Replot"
-msgstr "Replotieren"
-
-#: flatcamGUI/FlatCAMGUI.py:2193
-msgid "Geo Editor"
-msgstr "Geo-Editor"
-
-#: flatcamGUI/FlatCAMGUI.py:2195
-msgid "Path"
-msgstr "Pfad"
-
-#: flatcamGUI/FlatCAMGUI.py:2197
-msgid "Rectangle"
-msgstr "Rechteck"
-
-#: flatcamGUI/FlatCAMGUI.py:2200
-msgid "Circle"
-msgstr "Kreis"
-
-#: flatcamGUI/FlatCAMGUI.py:2204
-msgid "Arc"
-msgstr "Bogen"
-
-#: flatcamGUI/FlatCAMGUI.py:2218
-msgid "Union"
-msgstr "Vereinigung"
-
-#: flatcamGUI/FlatCAMGUI.py:2220
-msgid "Intersection"
-msgstr "Überschneidung"
-
-#: flatcamGUI/FlatCAMGUI.py:2222
-msgid "Subtraction"
-msgstr "Subtraktion"
-
-#: flatcamGUI/FlatCAMGUI.py:2224 flatcamGUI/ObjectUI.py:2221
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:56
-msgid "Cut"
-msgstr "Schnitt"
-
-#: flatcamGUI/FlatCAMGUI.py:2235
-msgid "Pad"
-msgstr "Pad"
-
-#: flatcamGUI/FlatCAMGUI.py:2237
-msgid "Pad Array"
-msgstr "Pad-Array"
-
-#: flatcamGUI/FlatCAMGUI.py:2241
-msgid "Track"
-msgstr "Track"
-
-#: flatcamGUI/FlatCAMGUI.py:2243
-msgid "Region"
-msgstr "Region"
-
-#: flatcamGUI/FlatCAMGUI.py:2266
-msgid "Exc Editor"
-msgstr "Exc-Editor"
-
-#: flatcamGUI/FlatCAMGUI.py:2311
-msgid ""
-"Relative measurement.\n"
-"Reference is last click position"
-msgstr ""
-"Relative Messung\n"
-"Referenz ist Position des letzten Klicks"
-
-#: flatcamGUI/FlatCAMGUI.py:2317
-msgid ""
-"Absolute measurement.\n"
-"Reference is (X=0, Y= 0) position"
-msgstr ""
-"Absolute Messung.\n"
-"Referenz ist (X = 0, Y = 0)"
-
-#: flatcamGUI/FlatCAMGUI.py:2419
-msgid "Lock Toolbars"
-msgstr "Symbolleisten sperren"
-
-#: flatcamGUI/FlatCAMGUI.py:2505
-msgid "FlatCAM Preferences Folder opened."
-msgstr "FlatCAM-Einstellungsordner geöffnet."
-
-#: flatcamGUI/FlatCAMGUI.py:2516
-msgid "Are you sure you want to delete the GUI Settings? \n"
-msgstr "Möchten Sie die GUI-Einstellungen wirklich löschen?\n"
-
-#: flatcamGUI/FlatCAMGUI.py:2624
-msgid "&Cutout Tool"
-msgstr "Ausschnittwerkzeug"
-
-#: flatcamGUI/FlatCAMGUI.py:2694
-msgid "Select 'Esc'"
-msgstr "Wählen"
-
-#: flatcamGUI/FlatCAMGUI.py:2732
-msgid "Copy Objects"
-msgstr "Objekte kopieren"
-
-#: flatcamGUI/FlatCAMGUI.py:2740
-msgid "Move Objects"
-msgstr "Objekte verschieben"
-
-#: flatcamGUI/FlatCAMGUI.py:3363
-msgid ""
-"Please first select a geometry item to be cutted\n"
-"then select the geometry item that will be cutted\n"
-"out of the first item. In the end press ~X~ key or\n"
-"the toolbar button."
-msgstr ""
-"Bitte wählen Sie zuerst ein zu schneidendes Geometrieelement aus\n"
-"Wählen Sie dann das Geometrieelement aus, das geschnitten werden soll\n"
-"aus dem ersten Artikel. Zum Schluss drücken Sie die Taste ~ X ~ oder\n"
-"die Symbolleisten-Schaltfläche."
-
-#: flatcamGUI/FlatCAMGUI.py:3370 flatcamGUI/FlatCAMGUI.py:3532
-#: flatcamGUI/FlatCAMGUI.py:3577 flatcamGUI/FlatCAMGUI.py:3597
-msgid "Warning"
-msgstr "Warnung"
-
-#: flatcamGUI/FlatCAMGUI.py:3527
-msgid ""
-"Please select geometry items \n"
-"on which to perform Intersection Tool."
-msgstr ""
-"Bitte wählen Sie Geometrieelemente aus\n"
-"auf dem das Verschneidungswerkzeug ausgeführt werden soll."
-
-#: flatcamGUI/FlatCAMGUI.py:3572
-msgid ""
-"Please select geometry items \n"
-"on which to perform Substraction Tool."
-msgstr ""
-"Bitte wählen Sie Geometrieelemente aus\n"
-"auf dem das Subtraktionswerkzeug ausgeführt werden soll."
-
-#: flatcamGUI/FlatCAMGUI.py:3592
-msgid ""
-"Please select geometry items \n"
-"on which to perform union."
-msgstr ""
-"Bitte wählen Sie Geometrieelemente aus\n"
-"auf dem die Polygonverbindung ausgeführt werden soll."
-
-#: flatcamGUI/FlatCAMGUI.py:3675 flatcamGUI/FlatCAMGUI.py:3890
-msgid "Cancelled. Nothing selected to delete."
-msgstr "Abgebrochen. Nichts zum Löschen ausgewählt."
-
-#: flatcamGUI/FlatCAMGUI.py:3759 flatcamGUI/FlatCAMGUI.py:4006
-msgid "Cancelled. Nothing selected to copy."
-msgstr "Abgebrochen. Nichts zum Kopieren ausgewählt."
-
-#: flatcamGUI/FlatCAMGUI.py:3805 flatcamGUI/FlatCAMGUI.py:4035
-msgid "Cancelled. Nothing selected to move."
-msgstr "Abgebrochen. Nichts ausgewählt, um sich zu bewegen."
-
-#: flatcamGUI/FlatCAMGUI.py:4061
-msgid "New Tool ..."
-msgstr "Neues Werkzeug ..."
-
-#: flatcamGUI/FlatCAMGUI.py:4062 flatcamTools/ToolNCC.py:924
-#: flatcamTools/ToolPaint.py:850 flatcamTools/ToolSolderPaste.py:560
-msgid "Enter a Tool Diameter"
-msgstr "Geben Sie einen Werkzeugdurchmesser ein"
-
-#: flatcamGUI/FlatCAMGUI.py:4074
-msgid "Adding Tool cancelled ..."
-msgstr "Tool wird hinzugefügt abgebrochen ..."
-
-#: flatcamGUI/FlatCAMGUI.py:4088
-msgid "Distance Tool exit..."
-msgstr "Entfernungstool beenden ..."
-
-#: flatcamGUI/FlatCAMGUI.py:4323 flatcamGUI/FlatCAMGUI.py:4330
-msgid "Idle."
-msgstr "Untätig."
-
-#: flatcamGUI/FlatCAMGUI.py:4361
-msgid "Application started ..."
-msgstr "Bewerbung gestartet ..."
-
-#: flatcamGUI/FlatCAMGUI.py:4362
-msgid "Hello!"
-msgstr "Hello!"
-
-#: flatcamGUI/FlatCAMGUI.py:4424
-msgid "Open Project ..."
-msgstr "Offenes Projekt ..."
-
-#: flatcamGUI/FlatCAMGUI.py:4450
-msgid "Exit"
-msgstr "Ausgang"
-
-#: flatcamGUI/GUIElements.py:2513
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:180
-#: flatcamTools/ToolDblSided.py:173 flatcamTools/ToolDblSided.py:388
-#: flatcamTools/ToolFilm.py:219
-msgid "Reference"
-msgstr "Referenz"
-
-#: flatcamGUI/GUIElements.py:2515
-msgid ""
-"The reference can be:\n"
-"- Absolute -> the reference point is point (0,0)\n"
-"- Relative -> the reference point is the mouse position before Jump"
-msgstr ""
-"Die Referenz kann sein:\n"
-"- Absolut -> Der Bezugspunkt ist Punkt (0,0)\n"
-"- Relativ -> Der Referenzpunkt ist die Mausposition vor dem Sprung"
-
-#: flatcamGUI/GUIElements.py:2520
-msgid "Abs"
-msgstr "Abs"
-
-#: flatcamGUI/GUIElements.py:2521
-msgid "Relative"
-msgstr "Relativ"
-
-#: flatcamGUI/GUIElements.py:2531
-msgid "Location"
-msgstr "Ort"
-
-#: flatcamGUI/GUIElements.py:2533
-msgid ""
-"The Location value is a tuple (x,y).\n"
-"If the reference is Absolute then the Jump will be at the position (x,y).\n"
-"If the reference is Relative then the Jump will be at the (x,y) distance\n"
-"from the current mouse location point."
-msgstr ""
-"Der Standortwert ist ein Tupel (x, y).\n"
-"Wenn die Referenz Absolut ist, befindet sich der Sprung an der Position (x, "
-"y).\n"
-"Wenn die Referenz relativ ist, befindet sich der Sprung in der Entfernung "
-"(x, y)\n"
-"vom aktuellen Mausstandort aus."
-
-#: flatcamGUI/GUIElements.py:2573
-msgid "Save Log"
-msgstr "Protokoll speichern"
-
-#: flatcamGUI/GUIElements.py:2592 flatcamTools/ToolShell.py:278
-msgid "Type >help< to get started"
-msgstr "Geben Sie> help
Preferences -> General and check:\n"
-"'APP. LEVEL' radio button."
-msgstr ""
-"BASIC ist für Anfänger geeignet. Viele Parameter\n"
-"werden in diesem Modus für den Benutzer ausgeblendet.\n"
-"Im ADVANCED-Modus werden alle Parameter verfügbar.\n"
-"\n"
-"Um die Anwendung LEVEL zu ändern, gehen Sie zu:\n"
-"Bearbeiten -> Einstellungen -> Allgemein und überprüfen Sie:\n"
-"Optionsfeld \"Anwendungsebene\"."
-
-#: flatcamGUI/ObjectUI.py:111
-msgid "Geometrical transformations of the current object."
-msgstr "Geometrische Transformationen des aktuellen Objekts."
-
-#: flatcamGUI/ObjectUI.py:120
-msgid ""
-"Factor by which to multiply\n"
-"geometric features of this object.\n"
-"Expressions are allowed. E.g: 1/25.4"
-msgstr ""
-"Faktor, mit dem sich multiplizieren soll\n"
-"geometrische Merkmale dieses Objekts.\n"
-"Ausdrücke sind erlaubt. Zum Beispiel: 1 / 25.4"
-
-#: flatcamGUI/ObjectUI.py:127
-msgid "Perform scaling operation."
-msgstr "Führen Sie die Skalierung durch."
-
-#: flatcamGUI/ObjectUI.py:138
-msgid ""
-"Amount by which to move the object\n"
-"in the x and y axes in (x, y) format.\n"
-"Expressions are allowed. E.g: (1/3.2, 0.5*3)"
-msgstr ""
-"Betrag, um den das Objekt verschoben werden soll\n"
-"in der x- und y-Achse im (x, y) -Format.\n"
-"Ausdrücke sind erlaubt. Zum Beispiel: (1/3.2, 0.5*3)"
-
-#: flatcamGUI/ObjectUI.py:145
-msgid "Perform the offset operation."
-msgstr "Führen Sie den Versatzvorgang aus."
-
-#: flatcamGUI/ObjectUI.py:178
-msgid "Gerber Object"
-msgstr "Gerber-Objekt"
-
-#: flatcamGUI/ObjectUI.py:187 flatcamGUI/ObjectUI.py:730
-#: flatcamGUI/ObjectUI.py:1426 flatcamGUI/ObjectUI.py:2205
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:30
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:33
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:31
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:31
-msgid "Plot Options"
-msgstr "Diagrammoptionen"
-
-#: flatcamGUI/ObjectUI.py:193 flatcamGUI/ObjectUI.py:731
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:45
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:38
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119
-#: flatcamTools/ToolCopperThieving.py:191
-msgid "Solid"
-msgstr "Solide"
-
-#: flatcamGUI/ObjectUI.py:195
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:40
-msgid "Solid color polygons."
-msgstr "Einfarbige Polygone."
-
-#: flatcamGUI/ObjectUI.py:201
-msgid "Multi-Color"
-msgstr "M-farbig"
-
-#: flatcamGUI/ObjectUI.py:203
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:47
-msgid "Draw polygons in different colors."
-msgstr "Zeichnen Sie Polygone in verschiedenen Farben."
-
-#: flatcamGUI/ObjectUI.py:209 flatcamGUI/ObjectUI.py:769
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:39
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:35
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:52
-msgid "Plot"
-msgstr "Zeichn"
-
-#: flatcamGUI/ObjectUI.py:211 flatcamGUI/ObjectUI.py:771
-#: flatcamGUI/ObjectUI.py:1486 flatcamGUI/ObjectUI.py:2315
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:41
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:37
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:54
-msgid "Plot (show) this object."
-msgstr "Plotten (zeigen) dieses Objekt."
-
-#: flatcamGUI/ObjectUI.py:239
-msgid ""
-"Toggle the display of the Gerber Apertures Table.\n"
-"When unchecked, it will delete all mark shapes\n"
-"that are drawn on canvas."
-msgstr ""
-"Schaltet die Anzeige der Gerber-Apertur-Tabelle um.\n"
-"Wenn das Kontrollkästchen deaktiviert ist, werden alle Markierungsformen "
-"gelöscht\n"
-"das sind auf leinwand gezeichnet."
-
-#: flatcamGUI/ObjectUI.py:249
-msgid "Mark All"
-msgstr "Alles mark"
-
-#: flatcamGUI/ObjectUI.py:251
-msgid ""
-"When checked it will display all the apertures.\n"
-"When unchecked, it will delete all mark shapes\n"
-"that are drawn on canvas."
-msgstr ""
-"Wenn diese Option aktiviert ist, werden alle Öffnungen angezeigt.\n"
-"Wenn das Kontrollkästchen deaktiviert ist, werden alle Markierungsformen "
-"gelöscht\n"
-"das sind auf leinwand gezeichnet."
-
-#: flatcamGUI/ObjectUI.py:279
-msgid "Mark the aperture instances on canvas."
-msgstr "Markieren Sie die Blendeninstanzen auf der Leinwand."
-
-#: flatcamGUI/ObjectUI.py:291
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:32
-msgid "Isolation Routing"
-msgstr "Isolierungsrouting"
-
-#: flatcamGUI/ObjectUI.py:293
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:34
-msgid ""
-"Create a Geometry object with\n"
-"toolpaths to cut outside polygons."
-msgstr ""
-"Erstellen Sie ein Geometrieobjekt mit\n"
-"Werkzeugwege zum Schneiden von \n"
-"äußeren Polygonen."
-
-#: flatcamGUI/ObjectUI.py:311
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:69
-msgid ""
-"Choose which tool to use for Gerber isolation:\n"
-"'Circular' or 'V-shape'.\n"
-"When the 'V-shape' is selected then the tool\n"
-"diameter will depend on the chosen cut depth."
-msgstr ""
-"Wählen Sie das Werkzeug für die Gerber-Isolierung aus:\n"
-"\"Rund\" oder \"V-Form\".\n"
-"Wenn die 'V-Form' ausgewählt ist, dann das Werkzeug\n"
-"Der Durchmesser hängt von der gewählten Schnitttiefe ab."
-
-#: flatcamGUI/ObjectUI.py:317
-msgid "V-Shape"
-msgstr "V-Form"
-
-#: flatcamGUI/ObjectUI.py:323 flatcamGUI/ObjectUI.py:1672
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:81
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:72
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:78
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:85
-#: flatcamTools/ToolNCC.py:233 flatcamTools/ToolNCC.py:240
-#: flatcamTools/ToolPaint.py:216
-msgid "V-Tip Dia"
-msgstr "Stichelspitzen-Durchm"
-
-#: flatcamGUI/ObjectUI.py:325 flatcamGUI/ObjectUI.py:1675
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:83
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:74
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:80
-#: flatcamTools/ToolNCC.py:235 flatcamTools/ToolPaint.py:218
-msgid "The tip diameter for V-Shape Tool"
-msgstr "Der Spitzendurchmesser für das V-Shape-Werkzeug"
-
-#: flatcamGUI/ObjectUI.py:336 flatcamGUI/ObjectUI.py:1687
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:94
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:84
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:91
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:99
-#: flatcamTools/ToolNCC.py:246 flatcamTools/ToolNCC.py:254
-#: flatcamTools/ToolPaint.py:229
-msgid "V-Tip Angle"
-msgstr "Stichel-Winkel"
-
-#: flatcamGUI/ObjectUI.py:338 flatcamGUI/ObjectUI.py:1690
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:96
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:86
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:93
-#: flatcamTools/ToolNCC.py:248 flatcamTools/ToolPaint.py:231
-msgid ""
-"The tip angle for V-Shape Tool.\n"
-"In degree."
-msgstr ""
-"Der Spitzenwinkel für das Stichel-Werkzeug.\n"
-"In grad."
-
-#: flatcamGUI/ObjectUI.py:352 flatcamGUI/ObjectUI.py:1706
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:50
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:109
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61
-#: flatcamObjects/FlatCAMGeometry.py:1174 flatcamTools/ToolCutOut.py:141
-msgid ""
-"Cutting depth (negative)\n"
-"below the copper surface."
-msgstr ""
-"Schnitttiefe (negativ)\n"
-"unter der Kupferoberfläche."
-
-#: flatcamGUI/ObjectUI.py:366
-msgid ""
-"Diameter of the cutting tool.\n"
-"If you want to have an isolation path\n"
-"inside the actual shape of the Gerber\n"
-"feature, use a negative value for\n"
-"this parameter."
-msgstr ""
-"Durchmesser des Schneidewerkzeugs.\n"
-"Wenn Sie einen Isolationspfad haben möchten\n"
-"in der tatsächlichen Form des Gerber\n"
-"verwenden Sie einen negativen Wert für\n"
-"dieser Parameter."
-
-#: flatcamGUI/ObjectUI.py:382
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:56
-msgid "# Passes"
-msgstr "Durchgang"
-
-#: flatcamGUI/ObjectUI.py:384
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:58
-msgid ""
-"Width of the isolation gap in\n"
-"number (integer) of tool widths."
-msgstr ""
-"Breite der Isolationslücke in\n"
-"Anzahl (Ganzzahl) der Werkzeugbreiten."
-
-#: flatcamGUI/ObjectUI.py:395
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:68
-msgid "Pass overlap"
-msgstr "Passüberlappung"
-
-#: flatcamGUI/ObjectUI.py:397
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:70
-msgid "How much (percentage) of the tool width to overlap each tool pass."
-msgstr ""
-"Wie viel (Prozent) der Werkzeugbreite, um jeden Werkzeugdurchlauf zu "
-"überlappen."
-
-#: flatcamGUI/ObjectUI.py:411
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:58
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:97
-msgid ""
-"Milling type:\n"
-"- climb / best for precision milling and to reduce tool usage\n"
-"- conventional / useful when there is no backlash compensation"
-msgstr ""
-"Fräsart:\n"
-"- Besteigung für präzises Fräsen und zur Verringerung des "
-"Werkzeugverbrauchs\n"
-"- konventionell / nützlich, wenn kein Spielausgleich vorliegt"
-
-#: flatcamGUI/ObjectUI.py:421
-msgid "Combine"
-msgstr "Kombinieren"
-
-#: flatcamGUI/ObjectUI.py:423
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:109
-msgid "Combine all passes into one object"
-msgstr "Kombinieren Sie alle Durchgänge in einem Objekt"
-
-#: flatcamGUI/ObjectUI.py:427
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:43
-msgid "\"Follow\""
-msgstr "\"Folgen\""
-
-#: flatcamGUI/ObjectUI.py:428
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:45
-msgid ""
-"Generate a 'Follow' geometry.\n"
-"This means that it will cut through\n"
-"the middle of the trace."
-msgstr ""
-"Erzeugen Sie eine 'Follow'-Geometrie.\n"
-"Dies bedeutet, dass es durchschneiden wird\n"
-"die Mitte der Spur."
-
-#: flatcamGUI/ObjectUI.py:434
-msgid "Except"
-msgstr "Außer"
-
-#: flatcamGUI/ObjectUI.py:437
-msgid ""
-"When the isolation geometry is generated,\n"
-"by checking this, the area of the object below\n"
-"will be subtracted from the isolation geometry."
-msgstr ""
-"Wenn die Isolationsgeometrie generiert wird,\n"
-"indem Sie dies überprüfen, wird der Bereich des Objekts unten\n"
-"wird von der Isolationsgeometrie abgezogen."
-
-#: flatcamGUI/ObjectUI.py:450
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:97
-#: flatcamObjects/FlatCAMGerber.py:239 flatcamObjects/FlatCAMGerber.py:327
-#: flatcamTools/ToolAlignObjects.py:73 flatcamTools/ToolAlignObjects.py:109
-#: flatcamTools/ToolCalibration.py:196 flatcamTools/ToolCalibration.py:631
-#: flatcamTools/ToolCalibration.py:648 flatcamTools/ToolCalibration.py:807
-#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144
-#: flatcamTools/ToolCopperThieving.py:158
-#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolCutOut.py:91
-#: flatcamTools/ToolDblSided.py:224 flatcamTools/ToolFilm.py:69
-#: flatcamTools/ToolFilm.py:102 flatcamTools/ToolFilm.py:549
-#: flatcamTools/ToolFilm.py:557 flatcamTools/ToolImage.py:49
-#: flatcamTools/ToolImage.py:252 flatcamTools/ToolImage.py:273
-#: flatcamTools/ToolNCC.py:96 flatcamTools/ToolNCC.py:558
-#: flatcamTools/ToolNCC.py:1300 flatcamTools/ToolPaint.py:502
-#: flatcamTools/ToolPaint.py:706 flatcamTools/ToolPanelize.py:118
-#: flatcamTools/ToolPanelize.py:204 flatcamTools/ToolPanelize.py:374
-#: flatcamTools/ToolPanelize.py:391
-msgid "Gerber"
-msgstr "Gerber"
-
-#: flatcamGUI/ObjectUI.py:457 flatcamTools/ToolNCC.py:86
-#: flatcamTools/ToolPaint.py:80
-msgid "Obj Type"
-msgstr "Obj-Typ"
-
-#: flatcamGUI/ObjectUI.py:459
-msgid ""
-"Specify the type of object to be excepted from isolation.\n"
-"It can be of type: Gerber or Geometry.\n"
-"What is selected here will dictate the kind\n"
-"of objects that will populate the 'Object' combobox."
-msgstr ""
-"Geben Sie den Objekttyp an, der von der Isolation ausgenommen werden soll.\n"
-"Es kann vom Typ Gerber oder Geometrie sein.\n"
-"Was hier ausgewählt wird, bestimmt die Art\n"
-"von Objekten, die das Kombinationsfeld \"Objekt\" füllen."
-
-#: flatcamGUI/ObjectUI.py:472
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:48
-#: flatcamTools/ToolCalibration.py:186 flatcamTools/ToolNCC.py:109
-#: flatcamTools/ToolPaint.py:103 flatcamTools/ToolPanelize.py:100
-#: flatcamTools/ToolQRCode.py:78
-msgid "Object"
-msgstr "Objekt"
-
-#: flatcamGUI/ObjectUI.py:473
-msgid "Object whose area will be removed from isolation geometry."
-msgstr "Objekt, dessen Bereich aus der Isolationsgeometrie entfernt wird."
-
-#: flatcamGUI/ObjectUI.py:480
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:82
-msgid "Scope"
-msgstr "Wertebereich"
-
-#: flatcamGUI/ObjectUI.py:482
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:84
-msgid ""
-"Isolation scope. Choose what to isolate:\n"
-"- 'All' -> Isolate all the polygons in the object\n"
-"- 'Selection' -> Isolate a selection of polygons."
-msgstr ""
-"Isolationsmenge. Was soll isoliert werden:\n"
-"- 'Alles' -> Alle Polygone im Objekt isolieren\n"
-"- ' Auswahl' -> Eine Auswahl der polygone isolieren."
-
-#: flatcamGUI/ObjectUI.py:487
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:307
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:89
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:311
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:258
-#: flatcamTools/ToolNCC.py:539 flatcamTools/ToolPaint.py:456
-msgid "Selection"
-msgstr "Auswahl"
-
-#: flatcamGUI/ObjectUI.py:495
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:122
-msgid "Isolation Type"
-msgstr "Isolierungsart"
-
-#: flatcamGUI/ObjectUI.py:497
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:124
-msgid ""
-"Choose how the isolation will be executed:\n"
-"- 'Full' -> complete isolation of polygons\n"
-"- 'Ext' -> will isolate only on the outside\n"
-"- 'Int' -> will isolate only on the inside\n"
-"'Exterior' isolation is almost always possible\n"
-"(with the right tool) but 'Interior'\n"
-"isolation can be done only when there is an opening\n"
-"inside of the polygon (e.g polygon is a 'doughnut' shape)."
-msgstr ""
-"Wählen Sie, wie die Isolation ausgeführt wird:\n"
-"- Vollständig: Es werden alle Polygone isoliert\n"
-"- Ext: Die ausserhalb liegenden Polygone werden isoliert\n"
-"- Int: Die innerhalb liegenden Polygone werden isoliert\n"
-"Achtung Ext ist fast immer möglich (mit dem richtigen Werkzeug)\n"
-"wohingegen \"Int\" Isolation nur möglich ist, wenn es ein Loch \n"
-"innerhalb des Polygons gibt (also z.B. ein Torus)"
-
-#: flatcamGUI/ObjectUI.py:506
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:133
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:154
-msgid "Full"
-msgstr "Voll"
-
-#: flatcamGUI/ObjectUI.py:507
-msgid "Ext"
-msgstr "Ausserhalb"
-
-#: flatcamGUI/ObjectUI.py:508
-msgid "Int"
-msgstr "Innerhalb"
-
-#: flatcamGUI/ObjectUI.py:513
-msgid "Generate Isolation Geometry"
-msgstr "Isolationsgeometrie erzeugen"
-
-#: flatcamGUI/ObjectUI.py:521
-msgid ""
-"Create a Geometry object with toolpaths to cut \n"
-"isolation outside, inside or on both sides of the\n"
-"object. For a Gerber object outside means outside\n"
-"of the Gerber feature and inside means inside of\n"
-"the Gerber feature, if possible at all. This means\n"
-"that only if the Gerber feature has openings inside, they\n"
-"will be isolated. If what is wanted is to cut isolation\n"
-"inside the actual Gerber feature, use a negative tool\n"
-"diameter above."
-msgstr ""
-"Erstellen Sie ein Geometrieobjekt mit zu schneidenden Werkzeugwegen\n"
-"Isolierung außen, innen oder auf beiden Seiten des\n"
-"Objekt. Für ein Gerber-Objekt bedeutet draußen außerhalb\n"
-"der Gerber-Funktion und inside bedeutet inside\n"
-"die Gerber-Funktion, wenn überhaupt möglich. Das heisst\n"
-"Nur wenn das Gerber-Feature Öffnungen enthält, können sie\n"
-"wird isoliert werden. Wenn es darum geht, die Isolation abzuschneiden\n"
-"Verwenden Sie in der Gerber-Funktion ein negatives Werkzeug\n"
-"Durchmesser oben."
-
-#: flatcamGUI/ObjectUI.py:533
-msgid "Buffer Solid Geometry"
-msgstr "Festkörpergeometrie puffern"
-
-#: flatcamGUI/ObjectUI.py:535
-msgid ""
-"This button is shown only when the Gerber file\n"
-"is loaded without buffering.\n"
-"Clicking this will create the buffered geometry\n"
-"required for isolation."
-msgstr ""
-"Diese Schaltfläche wird nur bei der Gerber-Datei angezeigt\n"
-"wird ohne Pufferung geladen.\n"
-"Durch Klicken auf diese Schaltfläche wird die gepufferte Geometrie erstellt\n"
-"für die Isolierung erforderlich."
-
-#: flatcamGUI/ObjectUI.py:567
-msgid "Clear N-copper"
-msgstr "N-Kupfer löschen"
-
-#: flatcamGUI/ObjectUI.py:569
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:33
-msgid ""
-"Create a Geometry object with\n"
-"toolpaths to cut all non-copper regions."
-msgstr ""
-"Erstellen Sie ein Geometrieobjekt mit\n"
-"Werkzeugwege, um alle Nicht-Kupfer-Bereiche zu schneiden."
-
-#: flatcamGUI/ObjectUI.py:576 flatcamGUI/ObjectUI.py:2159
-#: flatcamTools/ToolNCC.py:599
-msgid ""
-"Create the Geometry Object\n"
-"for non-copper routing."
-msgstr ""
-"Erstellen Sie das Geometrieobjekt\n"
-"für kupferfreies Routing."
-
-#: flatcamGUI/ObjectUI.py:589
-msgid "Board cutout"
-msgstr "Kartenausschnitt"
-
-#: flatcamGUI/ObjectUI.py:591
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:34
-msgid ""
-"Create toolpaths to cut around\n"
-"the PCB and separate it from\n"
-"the original board."
-msgstr ""
-"Erstellen Sie Werkzeugwege zum Schneiden\n"
-"die PCB und trennen Sie es von\n"
-"das ursprüngliche Brett."
-
-#: flatcamGUI/ObjectUI.py:598
-msgid ""
-"Generate the geometry for\n"
-"the board cutout."
-msgstr ""
-"Generieren Sie die Geometrie für\n"
-"der Brettausschnitt."
-
-#: flatcamGUI/ObjectUI.py:616
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:119
-msgid "Non-copper regions"
-msgstr "Regionen ohne Kupfer"
-
-#: flatcamGUI/ObjectUI.py:618
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:121
-msgid ""
-"Create polygons covering the\n"
-"areas without copper on the PCB.\n"
-"Equivalent to the inverse of this\n"
-"object. Can be used to remove all\n"
-"copper from a specified region."
-msgstr ""
-"Erstellen Sie Polygone für die\n"
-"Bereiche ohne Kupfer auf der Leiterplatte.\n"
-"Entspricht der Umkehrung davon\n"
-"Objekt. Kann verwendet werden, um alle zu entfernen\n"
-"Kupfer aus einer bestimmten Region."
-
-#: flatcamGUI/ObjectUI.py:628 flatcamGUI/ObjectUI.py:669
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:133
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:166
-msgid "Boundary Margin"
-msgstr "Grenzmarge"
-
-#: flatcamGUI/ObjectUI.py:630
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:135
-msgid ""
-"Specify the edge of the PCB\n"
-"by drawing a box around all\n"
-"objects with this minimum\n"
-"distance."
-msgstr ""
-"Bestimmen Sie den Rand der Leiterplatte\n"
-"indem Sie eine Box um alle ziehen\n"
-"Objekte mit diesem Minimum\n"
-"Entfernung."
-
-#: flatcamGUI/ObjectUI.py:645 flatcamGUI/ObjectUI.py:683
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:148
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:179
-msgid "Rounded Geo"
-msgstr "Abgerundete Geo"
-
-#: flatcamGUI/ObjectUI.py:647
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:150
-msgid "Resulting geometry will have rounded corners."
-msgstr "Die resultierende Geometrie hat abgerundete Ecken."
-
-#: flatcamGUI/ObjectUI.py:651 flatcamGUI/ObjectUI.py:692
-#: flatcamTools/ToolSolderPaste.py:134
-msgid "Generate Geo"
-msgstr "Geo erzeugen"
-
-#: flatcamGUI/ObjectUI.py:661
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:160
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137
-#: flatcamTools/ToolPanelize.py:101 flatcamTools/ToolQRCode.py:192
-msgid "Bounding Box"
-msgstr "Begrenzungsrahmen"
-
-#: flatcamGUI/ObjectUI.py:663
-msgid ""
-"Create a geometry surrounding the Gerber object.\n"
-"Square shape."
-msgstr ""
-"Erstellen Sie eine Geometrie, die das Gerber-Objekt umgibt.\n"
-"Quadratische Form."
-
-#: flatcamGUI/ObjectUI.py:671
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:168
-msgid ""
-"Distance of the edges of the box\n"
-"to the nearest polygon."
-msgstr ""
-"Abstand der Kanten der Box\n"
-"zum nächsten Polygon."
-
-#: flatcamGUI/ObjectUI.py:685
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:181
-msgid ""
-"If the bounding box is \n"
-"to have rounded corners\n"
-"their radius is equal to\n"
-"the margin."
-msgstr ""
-"Wenn der Begrenzungsrahmen ist\n"
-"abgerundete Ecken haben\n"
-"ihr Radius ist gleich\n"
-"der Abstand."
-
-#: flatcamGUI/ObjectUI.py:694
-msgid "Generate the Geometry object."
-msgstr "Generieren Sie das Geometrieobjekt."
-
-#: flatcamGUI/ObjectUI.py:721
-msgid "Excellon Object"
-msgstr "Excellon-Objekt"
-
-#: flatcamGUI/ObjectUI.py:733
-msgid "Solid circles."
-msgstr "Feste Kreise."
-
-#: flatcamGUI/ObjectUI.py:781 flatcamGUI/ObjectUI.py:876
-#: flatcamGUI/ObjectUI.py:2336
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:71
-#: flatcamTools/ToolProperties.py:166
-msgid "Drills"
-msgstr "Bohrer"
-
-#: flatcamGUI/ObjectUI.py:781 flatcamGUI/ObjectUI.py:877
-#: flatcamGUI/ObjectUI.py:2336
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:158
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:72
-#: flatcamTools/ToolProperties.py:168
-msgid "Slots"
-msgstr "Schlüssel"
-
-#: flatcamGUI/ObjectUI.py:786
-msgid ""
-"This is the Tool Number.\n"
-"When ToolChange is checked, on toolchange event this value\n"
-"will be showed as a T1, T2 ... Tn in the Machine Code.\n"
-"\n"
-"Here the tools are selected for G-code generation."
-msgstr ""
-"Dies ist die Werkzeugnummer.\n"
-"Wenn Werkzeugwechsel aktiviert ist, wird dieser Wert beim\n"
-"Werkzeugwechselereignis angegeben\n"
-"wird als T1, T2 ... Tn im Maschinencode angezeigt.\n"
-"\n"
-"Hier werden die Werkzeuge zur G-Code-Generierung ausgewählt."
-
-#: flatcamGUI/ObjectUI.py:791 flatcamGUI/ObjectUI.py:1510
-#: flatcamTools/ToolPaint.py:142
-msgid ""
-"Tool Diameter. It's value (in current FlatCAM units) \n"
-"is the cut width into the material."
-msgstr ""
-"Werkzeugdurchmesser Der Wert (in aktuellen FlatCAM-Einheiten)\n"
-"ist die Schnittbreite in das Material."
-
-#: flatcamGUI/ObjectUI.py:794
-msgid ""
-"The number of Drill holes. Holes that are drilled with\n"
-"a drill bit."
-msgstr ""
-"Die Anzahl der Bohrlöcher. Löcher, mit denen gebohrt wird\n"
-"ein Bohrer."
-
-#: flatcamGUI/ObjectUI.py:797
-msgid ""
-"The number of Slot holes. Holes that are created by\n"
-"milling them with an endmill bit."
-msgstr ""
-"Die Anzahl der Langlöcher. Löcher, die von erstellt werden\n"
-"Fräsen mit einem Schaftfräser."
-
-#: flatcamGUI/ObjectUI.py:800
-msgid ""
-"Toggle display of the drills for the current tool.\n"
-"This does not select the tools for G-code generation."
-msgstr ""
-"Anzeige der Bohrer für das aktuelle Werkzeug umschalten.\n"
-"Hiermit werden die Tools für die G-Code-Generierung nicht ausgewählt."
-
-#: flatcamGUI/ObjectUI.py:818 flatcamGUI/ObjectUI.py:1662
-#: flatcamObjects/FlatCAMExcellon.py:514 flatcamObjects/FlatCAMExcellon.py:726
-#: flatcamObjects/FlatCAMExcellon.py:742 flatcamObjects/FlatCAMExcellon.py:746
-#: flatcamObjects/FlatCAMGeometry.py:323 flatcamObjects/FlatCAMGeometry.py:759
-#: flatcamObjects/FlatCAMGeometry.py:795 flatcamTools/ToolNCC.py:331
-#: flatcamTools/ToolNCC.py:797 flatcamTools/ToolNCC.py:811
-#: flatcamTools/ToolNCC.py:1196 flatcamTools/ToolPaint.py:314
-#: flatcamTools/ToolPaint.py:767 flatcamTools/ToolPaint.py:779
-#: flatcamTools/ToolPaint.py:1171
-msgid "Parameters for"
-msgstr "Parameter für"
-
-#: flatcamGUI/ObjectUI.py:821 flatcamGUI/ObjectUI.py:1665
-#: flatcamTools/ToolNCC.py:334 flatcamTools/ToolPaint.py:317
-msgid ""
-"The data used for creating GCode.\n"
-"Each tool store it's own set of such data."
-msgstr ""
-"Die Daten, die zum Erstellen von GCode verwendet werden.\n"
-"Jedes Werkzeug speichert seinen eigenen Satz solcher Daten."
-
-#: flatcamGUI/ObjectUI.py:847
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:48
-msgid ""
-"Operation type:\n"
-"- Drilling -> will drill the drills/slots associated with this tool\n"
-"- Milling -> will mill the drills/slots"
-msgstr ""
-"Betriebsart:\n"
-"- Bohren -> bohrt die mit diesem Werkzeug verbundenen Bohrer / Schlitze\n"
-"- Fräsen -> fräst die Bohrer / Schlitze"
-
-#: flatcamGUI/ObjectUI.py:853
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:54
-msgid "Drilling"
-msgstr "Bohren"
-
-#: flatcamGUI/ObjectUI.py:854
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:55
-msgid "Milling"
-msgstr "Fräsprozess"
-
-#: flatcamGUI/ObjectUI.py:869
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:64
-msgid ""
-"Milling type:\n"
-"- Drills -> will mill the drills associated with this tool\n"
-"- Slots -> will mill the slots associated with this tool\n"
-"- Both -> will mill both drills and mills or whatever is available"
-msgstr ""
-"Frästyp:\n"
-"- Bohrer -> fräst die mit diesem Werkzeug verbundenen Bohrer\n"
-"- Schlüssel-> fräst die diesem Tool zugeordneten Slots\n"
-"- Beide -> fräsen sowohl Bohrer als auch Fräser oder was auch immer "
-"verfügbar ist"
-
-#: flatcamGUI/ObjectUI.py:878
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:73
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:210
-#: flatcamTools/ToolFilm.py:258
-msgid "Both"
-msgstr "Both"
-
-#: flatcamGUI/ObjectUI.py:886
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:80
-msgid "Milling Diameter"
-msgstr "Fräsdurchmesser"
-
-#: flatcamGUI/ObjectUI.py:888
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:82
-msgid "The diameter of the tool who will do the milling"
-msgstr "Der Durchmesser des Werkzeugs, das das Fräsen übernimmt"
-
-#: flatcamGUI/ObjectUI.py:902
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:95
-msgid ""
-"Drill depth (negative)\n"
-"below the copper surface."
-msgstr ""
-"Bohrtiefe (negativ)\n"
-"unter der Kupferoberfläche."
-
-#: flatcamGUI/ObjectUI.py:921 flatcamGUI/ObjectUI.py:1724
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:113
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:68
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79
-#: flatcamTools/ToolCutOut.py:159
-msgid "Multi-Depth"
-msgstr "Mehrfache Tiefe"
-
-#: flatcamGUI/ObjectUI.py:924 flatcamGUI/ObjectUI.py:1727
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:116
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:71
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82
-#: flatcamTools/ToolCutOut.py:162
-msgid ""
-"Use multiple passes to limit\n"
-"the cut depth in each pass. Will\n"
-"cut multiple times until Cut Z is\n"
-"reached."
-msgstr ""
-"Verwenden Sie zum Begrenzen mehrere Durchgänge\n"
-"die Schnitttiefe in jedem Durchgang. Wille\n"
-"mehrmals schneiden, bis Schnitttiefe Z\n"
-"erreicht ist."
-
-#: flatcamGUI/ObjectUI.py:937 flatcamGUI/ObjectUI.py:1741
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:128
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94
-#: flatcamTools/ToolCutOut.py:176
-msgid "Depth of each pass (positive)."
-msgstr "Tiefe jedes Durchgangs (positiv)."
-
-#: flatcamGUI/ObjectUI.py:948
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:136
-msgid ""
-"Tool height when travelling\n"
-"across the XY plane."
-msgstr ""
-"Werkzeughöhe auf Reisen\n"
-"über die XY-Ebene."
-
-#: flatcamGUI/ObjectUI.py:969 flatcamGUI/ObjectUI.py:1771
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:187
-msgid ""
-"Cutting speed in the XY\n"
-"plane in units per minute"
-msgstr ""
-"Schnittgeschwindigkeit im XY\n"
-"Flugzeug in Einheiten pro Minute"
-
-#: flatcamGUI/ObjectUI.py:984
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:209
-msgid ""
-"Tool speed while drilling\n"
-"(in units per minute).\n"
-"So called 'Plunge' feedrate.\n"
-"This is for linear move G01."
-msgstr ""
-"Werkzeuggeschwindigkeit beim Bohren\n"
-"(in Einheiten pro Minute).\n"
-"Sogenannter Eintauchvorschub.\n"
-"Dies ist für die lineare Bewegung G01."
-
-#: flatcamGUI/ObjectUI.py:999 flatcamGUI/ObjectUI.py:1798
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:80
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:64
-msgid "Feedrate Rapids"
-msgstr "Vorschubgeschwindigkeit"
-
-#: flatcamGUI/ObjectUI.py:1001
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:82
-msgid ""
-"Tool speed while drilling\n"
-"(in units per minute).\n"
-"This is for the rapid move G00.\n"
-"It is useful only for Marlin,\n"
-"ignore for any other cases."
-msgstr ""
-"Werkzeuggeschwindigkeit beim Bohren\n"
-"(in Einheiten pro Minute).\n"
-"Dies ist für die schnelle Bewegung G00.\n"
-"Es ist nur für Marlin nützlich,\n"
-"für andere Fälle ignorieren."
-
-#: flatcamGUI/ObjectUI.py:1021 flatcamGUI/ObjectUI.py:1818
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:82
-msgid "Re-cut"
-msgstr "Nachschneiden"
-
-#: flatcamGUI/ObjectUI.py:1023 flatcamGUI/ObjectUI.py:1036
-#: flatcamGUI/ObjectUI.py:1820 flatcamGUI/ObjectUI.py:1832
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:84
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:96
-msgid ""
-"In order to remove possible\n"
-"copper leftovers where first cut\n"
-"meet with last cut, we generate an\n"
-"extended cut over the first cut section."
-msgstr ""
-"Um zu entfernen möglich\n"
-"Kupferreste wurden zuerst geschnitten\n"
-"Beim letzten Schnitt treffen wir einen\n"
-"verlängerter Schnitt über dem ersten Schnittabschnitt."
-
-#: flatcamGUI/ObjectUI.py:1049 flatcamGUI/ObjectUI.py:1841
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:216
-#: flatcamObjects/FlatCAMExcellon.py:1332
-#: flatcamObjects/FlatCAMGeometry.py:1622
-msgid "Spindle speed"
-msgstr "Spulengeschwindigkeit"
-
-#: flatcamGUI/ObjectUI.py:1051
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:224
-msgid ""
-"Speed of the spindle\n"
-"in RPM (optional)"
-msgstr ""
-"Geschwindigkeit der Spindel\n"
-"in RPM (optional)"
-
-#: flatcamGUI/ObjectUI.py:1066 flatcamGUI/ObjectUI.py:1860
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:238
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:234
-msgid ""
-"Pause to allow the spindle to reach its\n"
-"speed before cutting."
-msgstr ""
-"Pause, damit die Spindel ihre erreichen kann\n"
-"Geschwindigkeit vor dem Schneiden."
-
-#: flatcamGUI/ObjectUI.py:1077 flatcamGUI/ObjectUI.py:1870
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:246
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:239
-msgid "Number of time units for spindle to dwell."
-msgstr "Anzahl der Zeiteinheiten, in denen die Spindel verweilen soll."
-
-#: flatcamGUI/ObjectUI.py:1087
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:46
-msgid "Offset Z"
-msgstr "Versatz Z"
-
-#: flatcamGUI/ObjectUI.py:1089
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:48
-msgid ""
-"Some drill bits (the larger ones) need to drill deeper\n"
-"to create the desired exit hole diameter due of the tip shape.\n"
-"The value here can compensate the Cut Z parameter."
-msgstr ""
-"Einige Bohrer (die größeren) müssen tiefer bohren\n"
-"um den gewünschten Austrittslochdurchmesser aufgrund der Spitzenform zu "
-"erzeugen.\n"
-"Der Wert hier kann den Parameter Cut Z ausgleichen."
-
-#: flatcamGUI/ObjectUI.py:1149 flatcamGUI/ObjectUI.py:1924
-#: flatcamTools/ToolNCC.py:492 flatcamTools/ToolPaint.py:423
-msgid "Apply parameters to all tools"
-msgstr "Parameter auf alle Werkzeuge anwenden"
-
-#: flatcamGUI/ObjectUI.py:1151 flatcamGUI/ObjectUI.py:1926
-#: flatcamTools/ToolNCC.py:494 flatcamTools/ToolPaint.py:425
-msgid ""
-"The parameters in the current form will be applied\n"
-"on all the tools from the Tool Table."
-msgstr ""
-"Die aktuell angegebenen Parameter werden allen Werkzeugen der "
-"Werkzeugtabelle zugeordnet."
-
-#: flatcamGUI/ObjectUI.py:1162 flatcamGUI/ObjectUI.py:1937
-#: flatcamTools/ToolNCC.py:505 flatcamTools/ToolPaint.py:436
-msgid "Common Parameters"
-msgstr "Allgemeine Parameter"
-
-#: flatcamGUI/ObjectUI.py:1164 flatcamGUI/ObjectUI.py:1939
-#: flatcamTools/ToolNCC.py:507 flatcamTools/ToolPaint.py:438
-msgid "Parameters that are common for all tools."
-msgstr "Parameter, die allen Werkzeugen gemeinsam sind."
-
-#: flatcamGUI/ObjectUI.py:1169 flatcamGUI/ObjectUI.py:1944
-msgid "Tool change Z"
-msgstr "Werkzeugwechsel Z"
-
-#: flatcamGUI/ObjectUI.py:1171
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:154
-msgid ""
-"Include tool-change sequence\n"
-"in G-Code (Pause for tool change)."
-msgstr ""
-"Werkzeugwechselfolge einbeziehen\n"
-"im G-Code (Pause für Werkzeugwechsel)."
-
-#: flatcamGUI/ObjectUI.py:1178 flatcamGUI/ObjectUI.py:1955
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:162
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:134
-msgid ""
-"Z-axis position (height) for\n"
-"tool change."
-msgstr ""
-"Z-Achsenposition (Höhe) für\n"
-"Werkzeugwechsel."
-
-#: flatcamGUI/ObjectUI.py:1195
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:71
-msgid ""
-"Height of the tool just after start.\n"
-"Delete the value if you don't need this feature."
-msgstr ""
-"Höhe des Werkzeugs gleich nach dem Start.\n"
-"Löschen Sie den Wert, wenn Sie diese Funktion nicht benötigen."
-
-#: flatcamGUI/ObjectUI.py:1204 flatcamGUI/ObjectUI.py:1983
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:178
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:153
-msgid "End move Z"
-msgstr "Bewegung beenden Z"
-
-#: flatcamGUI/ObjectUI.py:1206 flatcamGUI/ObjectUI.py:1985
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:180
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:155
-msgid ""
-"Height of the tool after\n"
-"the last move at the end of the job."
-msgstr ""
-"Höhe des Werkzeugs nach\n"
-"die letzte Bewegung am Ende des Jobs."
-
-#: flatcamGUI/ObjectUI.py:1223 flatcamGUI/ObjectUI.py:2002
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:195
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:173
-msgid "End move X,Y"
-msgstr "Bewegung beenden X, Y"
-
-#: flatcamGUI/ObjectUI.py:1225 flatcamGUI/ObjectUI.py:2004
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:197
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:175
-msgid ""
-"End move X,Y position. In format (x,y).\n"
-"If no value is entered then there is no move\n"
-"on X,Y plane at the end of the job."
-msgstr ""
-"Beenden Sie die X-, Y-Position. Im Format (x, y).\n"
-"Wenn kein Wert eingegeben wird, erfolgt keine Bewegung\n"
-"auf der X, Y-Ebene am Ende des Jobs."
-
-#: flatcamGUI/ObjectUI.py:1235 flatcamGUI/ObjectUI.py:1878
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:96
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:105
-msgid "Probe Z depth"
-msgstr "Sonde Z Tiefe"
-
-#: flatcamGUI/ObjectUI.py:1237 flatcamGUI/ObjectUI.py:1880
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:98
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:107
-msgid ""
-"The maximum depth that the probe is allowed\n"
-"to probe. Negative value, in current units."
-msgstr ""
-"Die maximale Tiefe, in der die Sonde zulässig ist\n"
-"zu untersuchen. Negativer Wert in aktuellen Einheiten."
-
-#: flatcamGUI/ObjectUI.py:1254 flatcamGUI/ObjectUI.py:1895
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:109
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:120
-msgid "Feedrate Probe"
-msgstr "Vorschubsonde"
-
-#: flatcamGUI/ObjectUI.py:1256 flatcamGUI/ObjectUI.py:1897
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:111
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:122
-msgid "The feedrate used while the probe is probing."
-msgstr "Der Vorschub während der Sondenmessung."
-
-#: flatcamGUI/ObjectUI.py:1272
-msgid "Preprocessor E"
-msgstr "Postprozessor E"
-
-#: flatcamGUI/ObjectUI.py:1274
-msgid ""
-"The preprocessor JSON file that dictates\n"
-"Gcode output for Excellon Objects."
-msgstr ""
-"Die diktierende Präprozessor-JSON-Datei\n"
-"Gcode-Ausgabe für Excellon-Objekte."
-
-#: flatcamGUI/ObjectUI.py:1284
-msgid "Preprocessor G"
-msgstr "Postprozessor G"
-
-#: flatcamGUI/ObjectUI.py:1286
-msgid ""
-"The preprocessor JSON file that dictates\n"
-"Gcode output for Geometry (Milling) Objects."
-msgstr ""
-"Die diktierende Präprozessor-JSON-Datei\n"
-"Gcode-Ausgabe für Geometrieobjekte (Fräsen)."
-
-#: flatcamGUI/ObjectUI.py:1310 flatcamGUI/ObjectUI.py:2108
-msgid ""
-"Add / Select at least one tool in the tool-table.\n"
-"Click the # header to select all, or Ctrl + LMB\n"
-"for custom selection of tools."
-msgstr ""
-"Hinzufügen / Auswählen mindestens eines Werkzeugs in der Werkzeugtabelle.\n"
-"Klicken Sie auf die Überschrift #, um alle auszuwählen, oder auf Strg + LMB\n"
-"zur benutzerdefinierten Auswahl von Werkzeugen."
-
-#: flatcamGUI/ObjectUI.py:1318 flatcamGUI/ObjectUI.py:2115
-msgid "Generate CNCJob object"
-msgstr "Generieren des CNC-Job-Objekts"
-
-#: flatcamGUI/ObjectUI.py:1320
-msgid ""
-"Generate the CNC Job.\n"
-"If milling then an additional Geometry object will be created"
-msgstr ""
-"Generieren Sie den CNC-Auftrag.\n"
-"Beim Fräsen wird ein zusätzliches Geometrieobjekt erstellt"
-
-#: flatcamGUI/ObjectUI.py:1337
-msgid "Milling Geometry"
-msgstr "Fräsgeometrie"
-
-#: flatcamGUI/ObjectUI.py:1339
-msgid ""
-"Create Geometry for milling holes.\n"
-"Select from the Tools Table above the hole dias to be\n"
-"milled. Use the # column to make the selection."
-msgstr ""
-"Erzeugen Sie eine Geometrie um Löcher zu bohren.\n"
-"Wählen Sie aus der Werkzeugtabelle oben die Durchmesser\n"
-"die gefräst werden sollen. Verwenden Sie die Spalte #, um die Auswahl zu "
-"treffen."
-
-#: flatcamGUI/ObjectUI.py:1347
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:296
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:45
-msgid "Diameter of the cutting tool."
-msgstr "Durchmesser des Schneidewerkzeugs."
-
-#: flatcamGUI/ObjectUI.py:1357
-msgid "Mill Drills"
-msgstr "Mühlenbohrer"
-
-#: flatcamGUI/ObjectUI.py:1359
-msgid ""
-"Create the Geometry Object\n"
-"for milling DRILLS toolpaths."
-msgstr ""
-"Erstellen Sie das Geometrieobjekt\n"
-"zum Fräsen von BOHRER-Werkzeugwegen."
-
-#: flatcamGUI/ObjectUI.py:1377
-msgid "Mill Slots"
-msgstr "Mühlenschlitze"
-
-#: flatcamGUI/ObjectUI.py:1379
-msgid ""
-"Create the Geometry Object\n"
-"for milling SLOTS toolpaths."
-msgstr ""
-"Erstellen Sie das Geometrieobjekt\n"
-"zum Fräsen von Werkzeugwegen."
-
-#: flatcamGUI/ObjectUI.py:1421 flatcamTools/ToolCutOut.py:319
-msgid "Geometry Object"
-msgstr "Geometrieobjekt"
-
-#: flatcamGUI/ObjectUI.py:1467
-msgid ""
-"Tools in this Geometry object used for cutting.\n"
-"The 'Offset' entry will set an offset for the cut.\n"
-"'Offset' can be inside, outside, on path (none) and custom.\n"
-"'Type' entry is only informative and it allow to know the \n"
-"intent of using the current tool. \n"
-"It can be Rough(ing), Finish(ing) or Iso(lation).\n"
-"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n"
-"ball(B), or V-Shaped(V). \n"
-"When V-shaped is selected the 'Type' entry is automatically \n"
-"set to Isolation, the CutZ parameter in the UI form is\n"
-"grayed out and Cut Z is automatically calculated from the newly \n"
-"showed UI form entries named V-Tip Dia and V-Tip Angle."
-msgstr ""
-"Werkzeuge in diesem Geometrieobjekt, die zum Schneiden verwendet werden.\n"
-"Der Eintrag 'Versatz' legt einen Versatz für den Schnitt fest.\n"
-"'Versatz' kann innen, außen, auf Pfad (keine) und benutzerdefiniert sein.\n"
-"Der Eintrag \"Typ\" ist nur informativ und ermöglicht die Kenntnis der\n"
-"Absicht, das aktuelle Werkzeug zu verwenden.\n"
-"Es kann Rough, Finish oder ISO sein.\n"
-"Der 'Werkzeugtyp' (TT) kann kreisförmig mit 1 bis 4 Zähnen (C1..C4) sein.\n"
-"Kugel (B) oder V-Form (V).\n"
-"Wenn V-förmig ausgewählt ist, wird der Eintrag \"Typ\" automatisch "
-"angezeigt\n"
-"Auf Isolation eingestellt ist der Parameter CutZ im UI-Formular\n"
-"ausgegraut und Cut Z wird automatisch aus dem neuen berechnet\n"
-"Zeigt UI-Formulareinträge mit den Namen V-Tip Dia und V-Tip Angle an."
-
-#: flatcamGUI/ObjectUI.py:1484 flatcamGUI/ObjectUI.py:2313
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:40
-msgid "Plot Object"
-msgstr "Plotobjekt"
-
-#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326
-#: flatcamGUI/ObjectUI.py:2336
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138
-#: flatcamTools/ToolCopperThieving.py:221
-msgid "Dia"
-msgstr "Durchm"
-
-#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326
-#: flatcamTools/ToolNCC.py:132 flatcamTools/ToolPaint.py:128
-msgid "TT"
-msgstr "TT"
-
-#: flatcamGUI/ObjectUI.py:1504
-msgid ""
-"This is the Tool Number.\n"
-"When ToolChange is checked, on toolchange event this value\n"
-"will be showed as a T1, T2 ... Tn"
-msgstr ""
-"Dies ist die Werkzeugnummer.\n"
-"Wenn der Werkzeugwechsel aktiviert ist, wird dieser Wert beim "
-"Werkzeugwechselereignis angezeigt\n"
-"wird als T1, T2 ... Tn angezeigt"
-
-#: flatcamGUI/ObjectUI.py:1515
-msgid ""
-"The value for the Offset can be:\n"
-"- Path -> There is no offset, the tool cut will be done through the geometry "
-"line.\n"
-"- In(side) -> The tool cut will follow the geometry inside. It will create a "
-"'pocket'.\n"
-"- Out(side) -> The tool cut will follow the geometry line on the outside."
-msgstr ""
-"Der Wert für den Offset kann sein:\n"
-"- Pfad -> Es gibt keinen Versatz, der Werkzeugschnitt erfolgt durch die "
-"Geometrielinie.\n"
-"- In (Seite) -> Der Werkzeugschnitt folgt der Innengeometrie. Es wird eine "
-"\"Tasche\" erstellt.\n"
-"- Out (Seite) -> Der Werkzeugschnitt folgt der Geometrielinie an der "
-"Außenseite."
-
-#: flatcamGUI/ObjectUI.py:1522
-msgid ""
-"The (Operation) Type has only informative value. Usually the UI form "
-"values \n"
-"are choose based on the operation type and this will serve as a reminder.\n"
-"Can be 'Roughing', 'Finishing' or 'Isolation'.\n"
-"For Roughing we may choose a lower Feedrate and multiDepth cut.\n"
-"For Finishing we may choose a higher Feedrate, without multiDepth.\n"
-"For Isolation we need a lower Feedrate as it use a milling bit with a fine "
-"tip."
-msgstr ""
-"Der Typ (Operation) hat nur informativen Wert. Normalerweise bilden die "
-"Benutzeroberflächen Werte\n"
-"Die Auswahl richtet sich nach der Art des Vorgangs und dient als "
-"Erinnerung.\n"
-"Kann \"Schruppen\", \"Fertigstellen\" oder \"Isolieren\" sein.\n"
-"Für das Schruppen können wir einen niedrigeren Vorschub und einen Schnitt "
-"mit mehreren Tiefen wählen.\n"
-"Für das Finishing können wir eine höhere Vorschubgeschwindigkeit ohne "
-"Mehrfachtiefe wählen.\n"
-"Für die Isolierung benötigen wir einen niedrigeren Vorschub, da ein Fräser "
-"mit einer feinen Spitze verwendet wird."
-
-#: flatcamGUI/ObjectUI.py:1531
-msgid ""
-"The Tool Type (TT) can be:\n"
-"- Circular with 1 ... 4 teeth -> it is informative only. Being circular the "
-"cut width in material\n"
-"is exactly the tool diameter.\n"
-"- Ball -> informative only and make reference to the Ball type endmill.\n"
-"- V-Shape -> it will disable Z-Cut parameter in the UI form and enable two "
-"additional UI form\n"
-"fields: V-Tip Dia and V-Tip Angle. Adjusting those two values will adjust "
-"the Z-Cut parameter such\n"
-"as the cut width into material will be equal with the value in the Tool "
-"Diameter column of this table.\n"
-"Choosing the V-Shape Tool Type automatically will select the Operation Type "
-"as Isolation."
-msgstr ""
-"Der Werkzeugtyp (TT) kann sein:\n"
-"- Rundschreiben mit 1 ... 4 Zähnen -> nur informativ. Kreisförmig ist die "
-"Schnittbreite im Material\n"
-"ist genau der Werkzeugdurchmesser.\n"
-"- Ball -> nur informativ und auf den Ball-Schaftfräser verweisen.\n"
-"- V-Form -> Deaktiviert den Z-Cut-Parameter im UI-Formular und aktiviert "
-"zwei zusätzliche UI-Formulare\n"
-"Felder: V-Tip Dia und V-Tip Angle. Durch Anpassen dieser beiden Werte wird "
-"der Z-Cut-Parameter wie z\n"
-"da die Schnittbreite in Material gleich dem Wert in der Spalte "
-"Werkzeugdurchmesser dieser Tabelle ist.\n"
-"Wenn Sie den V-Form-Werkzeugtyp automatisch auswählen, wird der "
-"Operationstyp als Isolation ausgewählt."
-
-#: flatcamGUI/ObjectUI.py:1543
-msgid ""
-"Plot column. It is visible only for MultiGeo geometries, meaning geometries "
-"that holds the geometry\n"
-"data into the tools. For those geometries, deleting the tool will delete the "
-"geometry data also,\n"
-"so be WARNED. From the checkboxes on each row it can be enabled/disabled the "
-"plot on canvas\n"
-"for the corresponding tool."
-msgstr ""
-"Plotspalte Sie ist nur für MultiGeo-Geometrien sichtbar. Dies bedeutet, dass "
-"Geometrien die Geometrie enthalten\n"
-"Daten in die Werkzeuge. Durch das Löschen des Werkzeugs werden für diese "
-"Geometrien auch die Geometriedaten gelöscht.\n"
-"also sei WARNUNG. Über die Kontrollkästchen in jeder Zeile kann der Plot auf "
-"der Leinwand aktiviert / deaktiviert werden\n"
-"für das entsprechende Werkzeug."
-
-#: flatcamGUI/ObjectUI.py:1561
-msgid ""
-"The value to offset the cut when \n"
-"the Offset type selected is 'Offset'.\n"
-"The value can be positive for 'outside'\n"
-"cut and negative for 'inside' cut."
-msgstr ""
-"Der Wert, mit dem der Schnitt versetzt werden soll\n"
-"Der ausgewählte Versatztyp ist 'Versatz'.\n"
-"Der Wert kann für \"außerhalb\" positiv sein\n"
-"Cut und Negativ für \"Inside\" Cut."
-
-#: flatcamGUI/ObjectUI.py:1580 flatcamTools/ToolNCC.py:209
-#: flatcamTools/ToolNCC.py:923 flatcamTools/ToolPaint.py:192
-#: flatcamTools/ToolPaint.py:849 flatcamTools/ToolSolderPaste.py:559
-msgid "New Tool"
-msgstr "Neues Werkzeug"
-
-#: flatcamGUI/ObjectUI.py:1597
-msgid ""
-"Add a new tool to the Tool Table\n"
-"with the specified diameter."
-msgstr ""
-"Fügen Sie der Werkzeugtabelle ein neues Werkzeug\n"
-"mit dem oben angegebenen Durchmesser hinzu."
-
-#: flatcamGUI/ObjectUI.py:1602 flatcamTools/ToolNCC.py:300
-#: flatcamTools/ToolNCC.py:634 flatcamTools/ToolPaint.py:283
-#: flatcamTools/ToolPaint.py:679
-msgid "Add from DB"
-msgstr "Aus DB hinzufügen"
-
-#: flatcamGUI/ObjectUI.py:1604 flatcamTools/ToolNCC.py:302
-#: flatcamTools/ToolPaint.py:285
-msgid ""
-"Add a new tool to the Tool Table\n"
-"from the Tool DataBase."
-msgstr ""
-"Fügen Sie der Werkzeugtabelle ein neues Werkzeug aus der\n"
-"aus der Werkzeugdatenbank hinzu."
-
-#: flatcamGUI/ObjectUI.py:1619
-msgid ""
-"Copy a selection of tools in the Tool Table\n"
-"by first selecting a row in the Tool Table."
-msgstr ""
-"Kopieren Sie eine Auswahl von Werkzeugen in die Werkzeugtabelle\n"
-"indem Sie zuerst eine Zeile in der Werkzeugtabelle auswählen."
-
-#: flatcamGUI/ObjectUI.py:1625
-msgid ""
-"Delete a selection of tools in the Tool Table\n"
-"by first selecting a row in the Tool Table."
-msgstr ""
-"Löschen Sie eine Auswahl von Werkzeugen in der Werkzeugtabelle\n"
-"indem Sie zuerst eine Zeile in der Werkzeugtabelle auswählen."
-
-#: flatcamGUI/ObjectUI.py:1752
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:103
-msgid ""
-"Height of the tool when\n"
-"moving without cutting."
-msgstr ""
-"Höhe des Werkzeugs bei\n"
-"Bewegen ohne zu schneiden."
-
-#: flatcamGUI/ObjectUI.py:1785
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:202
-msgid ""
-"Cutting speed in the XY\n"
-"plane in units per minute.\n"
-"It is called also Plunge."
-msgstr ""
-"Schnittgeschwindigkeit im XY\n"
-"Flugzeug in Einheiten pro Minute.\n"
-"Es heißt auch Sturz."
-
-#: flatcamGUI/ObjectUI.py:1800
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:66
-msgid ""
-"Cutting speed in the XY plane\n"
-"(in units per minute).\n"
-"This is for the rapid move G00.\n"
-"It is useful only for Marlin,\n"
-"ignore for any other cases."
-msgstr ""
-"Schnittgeschwindigkeit in der XY-Ebene\n"
-"(in Einheiten pro Minute).\n"
-"Dies ist für die schnelle Bewegung G00.\n"
-"Es ist nur für Marlin nützlich,\n"
-"für andere Fälle ignorieren."
-
-#: flatcamGUI/ObjectUI.py:1844
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:219
-msgid ""
-"Speed of the spindle in RPM (optional).\n"
-"If LASER preprocessor is used,\n"
-"this value is the power of laser."
-msgstr ""
-"Drehzahl der Spindel in U / min (optional).\n"
-"Wenn LASER-Postprozessor verwendet wird,\n"
-"Dieser Wert ist die Leistung des Lasers."
-
-#: flatcamGUI/ObjectUI.py:1947
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:124
-msgid ""
-"Include tool-change sequence\n"
-"in the Machine Code (Pause for tool change)."
-msgstr ""
-"Werkzeugwechselfolge einbeziehen\n"
-"im Maschinencode (Pause für Werkzeugwechsel)."
-
-#: flatcamGUI/ObjectUI.py:2016
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:256
-msgid ""
-"The Preprocessor file that dictates\n"
-"the Machine Code (like GCode, RML, HPGL) output."
-msgstr ""
-"Die Postprozessor-Datei, die diktiert\n"
-"den Maschinencode (wie GCode, RML, HPGL)."
-
-#: flatcamGUI/ObjectUI.py:2028
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:201
-msgid "Exclusion areas"
-msgstr "Ausschlussbereiche"
-
-#: flatcamGUI/ObjectUI.py:2031
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:204
-msgid ""
-"Include exclusion areas.\n"
-"In those areas the travel of the tools\n"
-"is forbidden."
-msgstr ""
-"Ausschlussbereiche einschließen.\n"
-"In diesen Bereichen die Reise der Werkzeuge\n"
-"ist verboten."
-
-#: flatcamGUI/ObjectUI.py:2053
-msgid "Add area"
-msgstr "Bereich hinzufügen"
-
-#: flatcamGUI/ObjectUI.py:2054
-msgid "Add an Exclusion Area."
-msgstr "Fügen Sie einen Ausschlussbereich hinzu."
-
-#: flatcamGUI/ObjectUI.py:2058
-msgid "Clear areas"
-msgstr "Bereiche löschen"
-
-#: flatcamGUI/ObjectUI.py:2059
-msgid "Delete all exclusion areas."
-msgstr "Löschen Sie alle Ausschlussbereiche."
-
-#: flatcamGUI/ObjectUI.py:2068
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:212
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:322
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:286
-#: flatcamTools/ToolNCC.py:578 flatcamTools/ToolPaint.py:522
-msgid "Shape"
-msgstr "Form"
-
-#: flatcamGUI/ObjectUI.py:2070
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:214
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:324
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:288
-#: flatcamTools/ToolNCC.py:580 flatcamTools/ToolPaint.py:524
-msgid "The kind of selection shape used for area selection."
-msgstr "Die Art der Auswahlform, die für die Bereichsauswahl verwendet wird."
-
-#: flatcamGUI/ObjectUI.py:2080
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:224
-msgid "Strategy"
-msgstr "Strategie"
-
-#: flatcamGUI/ObjectUI.py:2081
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:225
-msgid ""
-"The strategy followed when encountering an exclusion area.\n"
-"Can be:\n"
-"- Over -> when encountering the area, the tool will go to a set height\n"
-"- Around -> will avoid the exclusion area by going around the area"
-msgstr ""
-"Die Strategie wurde verfolgt, wenn auf einen Ausschlussbereich gestoßen "
-"wurde.\n"
-"Kann sein:\n"
-"- Über -> Wenn Sie auf den Bereich stoßen, erreicht das Werkzeug eine "
-"festgelegte Höhe\n"
-"- Vermeiden -> vermeidet den Ausschlussbereich, indem Sie den Bereich umgehen"
-
-#: flatcamGUI/ObjectUI.py:2085
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:229
-msgid "Over"
-msgstr "Über"
-
-#: flatcamGUI/ObjectUI.py:2086
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:230
-msgid "Around"
-msgstr "Vermeiden"
-
-#: flatcamGUI/ObjectUI.py:2092
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:236
-msgid "Over Z"
-msgstr "Über Z."
-
-#: flatcamGUI/ObjectUI.py:2093
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:237
-msgid ""
-"The height Z to which the tool will rise in order to avoid\n"
-"an interdiction area."
-msgstr ""
-"Die Höhe Z, auf die das Werkzeug ansteigt, um dies zu vermeiden\n"
-"ein Verbotsbereich."
-
-#: flatcamGUI/ObjectUI.py:2117
-msgid "Generate the CNC Job object."
-msgstr "Generieren Sie das CNC-Job-Objekt."
-
-#: flatcamGUI/ObjectUI.py:2134
-msgid "Launch Paint Tool in Tools Tab."
-msgstr "Starten Sie das Paint Werkzeug in der Registerkarte \"Tools\"."
-
-#: flatcamGUI/ObjectUI.py:2142
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:35
-msgid ""
-"Creates tool paths to cover the\n"
-"whole area of a polygon (remove\n"
-"all copper). You will be asked\n"
-"to click on the desired polygon."
-msgstr ""
-"Erzeugt Werkzeugpfade zur Abdeckung\n"
-"gesamte Fläche eines Polygons (entfernen\n"
-"alles Kupfer). Du wirst gefragt\n"
-"Klicken Sie auf das gewünschte Polygon."
-
-#: flatcamGUI/ObjectUI.py:2197
-msgid "CNC Job Object"
-msgstr "CNC-Auftragsobjekt"
-
-#: flatcamGUI/ObjectUI.py:2208
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:45
-msgid "Plot kind"
-msgstr "Darstellungsart"
-
-#: flatcamGUI/ObjectUI.py:2211
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:47
-msgid ""
-"This selects the kind of geometries on the canvas to plot.\n"
-"Those can be either of type 'Travel' which means the moves\n"
-"above the work piece or it can be of type 'Cut',\n"
-"which means the moves that cut into the material."
-msgstr ""
-"Dadurch wird die Art der Geometrien auf der zu plottenden Leinwand "
-"ausgewählt.\n"
-"Dies kann entweder vom Typ 'Reise' sein, was die Bewegungen bedeutet\n"
-"über dem Werkstück oder es kann vom Typ 'Ausschneiden' sein,\n"
-"was bedeutet, dass die Bewegungen, die in das Material geschnitten werden."
-
-#: flatcamGUI/ObjectUI.py:2220
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:55
-msgid "Travel"
-msgstr "Reise"
-
-#: flatcamGUI/ObjectUI.py:2224
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:64
-msgid "Display Annotation"
-msgstr "Anmerkung anzeigen"
-
-#: flatcamGUI/ObjectUI.py:2226
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:66
-msgid ""
-"This selects if to display text annotation on the plot.\n"
-"When checked it will display numbers in order for each end\n"
-"of a travel line."
-msgstr ""
-"Hiermit wird ausgewählt, ob Textanmerkungen auf dem Plot angezeigt werden "
-"sollen.\n"
-"Wenn diese Option aktiviert ist, werden die Nummern für jedes Ende in der "
-"richtigen Reihenfolge angezeigt\n"
-"einer Reiseleitung."
-
-#: flatcamGUI/ObjectUI.py:2241
-msgid "Travelled dist."
-msgstr "Zurückgelegte Strecke."
-
-#: flatcamGUI/ObjectUI.py:2243 flatcamGUI/ObjectUI.py:2248
-msgid ""
-"This is the total travelled distance on X-Y plane.\n"
-"In current units."
-msgstr ""
-"Dies ist die Gesamtstrecke auf der X-Y-Ebene.\n"
-"In aktuellen Einheiten."
-
-#: flatcamGUI/ObjectUI.py:2253
-msgid "Estimated time"
-msgstr "Geschätzte Zeit"
-
-#: flatcamGUI/ObjectUI.py:2255 flatcamGUI/ObjectUI.py:2260
-msgid ""
-"This is the estimated time to do the routing/drilling,\n"
-"without the time spent in ToolChange events."
-msgstr ""
-"Dies ist die geschätzte Zeit für das Fräsen / Bohren.\n"
-"ohne die Zeit, die in Werkzeugwechselereignissen verbracht wird."
-
-#: flatcamGUI/ObjectUI.py:2295
-msgid "CNC Tools Table"
-msgstr "CNC Werkzeugtabelle"
-
-#: flatcamGUI/ObjectUI.py:2298
-msgid ""
-"Tools in this CNCJob object used for cutting.\n"
-"The tool diameter is used for plotting on canvas.\n"
-"The 'Offset' entry will set an offset for the cut.\n"
-"'Offset' can be inside, outside, on path (none) and custom.\n"
-"'Type' entry is only informative and it allow to know the \n"
-"intent of using the current tool. \n"
-"It can be Rough(ing), Finish(ing) or Iso(lation).\n"
-"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n"
-"ball(B), or V-Shaped(V)."
-msgstr ""
-"Werkzeuge in diesem CNCJob-Objekt, die zum Schneiden verwendet werden.\n"
-"Der Werkzeugdurchmesser wird zum Plotten auf Leinwand verwendet.\n"
-"Der Eintrag 'Versatz' legt einen Versatz für den Schnitt fest.\n"
-"'Versatz' kann innen, außen, auf Pfad (keine) und benutzerdefiniert sein.\n"
-"Der Eintrag \"Typ\" ist nur informativ und ermöglicht die Kenntnis der\n"
-"Absicht, das aktuelle Werkzeug zu verwenden.\n"
-"Es kann Schruppen, Schlichten oder Isolieren sein.\n"
-"Der 'Werkzeugtyp' (TT) kann kreisförmig mit 1 bis 4 Zähnen (C1..C4) sein.\n"
-"Kugel (B) oder V-Form (V)."
-
-#: flatcamGUI/ObjectUI.py:2326 flatcamGUI/ObjectUI.py:2337
-msgid "P"
-msgstr "P"
-
-#: flatcamGUI/ObjectUI.py:2347
-msgid "Update Plot"
-msgstr "Plot aktualisieren"
-
-#: flatcamGUI/ObjectUI.py:2349
-msgid "Update the plot."
-msgstr "Aktualisieren Sie die Darstellung."
-
-#: flatcamGUI/ObjectUI.py:2356
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:30
-msgid "Export CNC Code"
-msgstr "CNC-Code exportieren"
-
-#: flatcamGUI/ObjectUI.py:2358
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:32
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:33
-msgid ""
-"Export and save G-Code to\n"
-"make this object to a file."
-msgstr ""
-"Exportieren und speichern Sie den G-Code nach\n"
-"Machen Sie dieses Objekt in eine Datei."
-
-#: flatcamGUI/ObjectUI.py:2364
-msgid "Prepend to CNC Code"
-msgstr "CNC-Code voranstellen"
-
-#: flatcamGUI/ObjectUI.py:2366 flatcamGUI/ObjectUI.py:2373
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:49
-msgid ""
-"Type here any G-Code commands you would\n"
-"like to add at the beginning of the G-Code file."
-msgstr ""
-"Geben Sie hier alle G-Code-Befehle ein\n"
-"die Sie am Anfang der G-Code-Datei hinzufügen möchten."
-
-#: flatcamGUI/ObjectUI.py:2379
-msgid "Append to CNC Code"
-msgstr "An CNC Code anhängen"
-
-#: flatcamGUI/ObjectUI.py:2381 flatcamGUI/ObjectUI.py:2389
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:65
-msgid ""
-"Type here any G-Code commands you would\n"
-"like to append to the generated file.\n"
-"I.e.: M2 (End of program)"
-msgstr ""
-"Geben Sie hier alle G-Code-Befehle ein\n"
-"die Sie an die generierte Datei anhängen möchten.\n"
-"z.B.: M2 (Programmende)"
-
-#: flatcamGUI/ObjectUI.py:2403
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:38
-msgid "Toolchange G-Code"
-msgstr "Werkzeugwechsel G-Code"
-
-#: flatcamGUI/ObjectUI.py:2406
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:41
-msgid ""
-"Type here any G-Code commands you would\n"
-"like to be executed when Toolchange event is encountered.\n"
-"This will constitute a Custom Toolchange GCode,\n"
-"or a Toolchange Macro.\n"
-"The FlatCAM variables are surrounded by '%' symbol.\n"
-"\n"
-"WARNING: it can be used only with a preprocessor file\n"
-"that has 'toolchange_custom' in it's name and this is built\n"
-"having as template the 'Toolchange Custom' posprocessor file."
-msgstr ""
-"Geben Sie hier alle G-Code-Befehle ein\n"
-"Wird ausgeführt, wenn ein Werkzeugwechselereignis auftritt.\n"
-"Dies stellt einen benutzerdefinierten Werkzeugwechsel-GCode dar.\n"
-"oder ein Werkzeugwechsel-Makro.\n"
-"Die FlatCAM-Variablen sind vom '%'-Symbol umgeben.\n"
-"\n"
-"WARNUNG: Es kann nur mit einer Postprozessor-Datei verwendet werden\n"
-"das hat \"toolchange_custom\" im Namen und das ist gebaut\n"
-"mit der \"Toolchange Custom\" -Prozessordatei als Vorlage."
-
-#: flatcamGUI/ObjectUI.py:2421
-msgid ""
-"Type here any G-Code commands you would\n"
-"like to be executed when Toolchange event is encountered.\n"
-"This will constitute a Custom Toolchange GCode,\n"
-"or a Toolchange Macro.\n"
-"The FlatCAM variables are surrounded by '%' symbol.\n"
-"WARNING: it can be used only with a preprocessor file\n"
-"that has 'toolchange_custom' in it's name."
-msgstr ""
-"Geben Sie hier G-Code-Befehle ein\n"
-"die ausgeführt werden, wenn ein Werkzeugwechselereignis auftritt.\n"
-"So kann ein benutzerdefinierter Werkzeugwechsel in GCode definiert werden.\n"
-"Die FlatCAM-Variablen sind vom '%'-Symbol umgeben.\n"
-"\n"
-"WARNUNG: Ein Werkzeugwechselereignis kann nur mit einer Präprozessor-Datei "
-"verwendet werden\n"
-"die das Präfix \"toolchange_custom\" im Namen hat und nach Vorlage der \n"
-" \n"
-"\"Toolchange Custom\" -Prozessordatei erzeugt wurde."
-
-#: flatcamGUI/ObjectUI.py:2436
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:80
-msgid "Use Toolchange Macro"
-msgstr "Benutze das Werkzeugwechselmakro"
-
-#: flatcamGUI/ObjectUI.py:2438
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:82
-msgid ""
-"Check this box if you want to use\n"
-"a Custom Toolchange GCode (macro)."
-msgstr ""
-"Aktivieren Sie dieses Kontrollkästchen, wenn Sie verwenden möchten\n"
-"ein benutzerdefiniertes Werkzeug ändert GCode (Makro)."
-
-#: flatcamGUI/ObjectUI.py:2446
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:94
-msgid ""
-"A list of the FlatCAM variables that can be used\n"
-"in the Toolchange event.\n"
-"They have to be surrounded by the '%' symbol"
-msgstr ""
-"Eine Liste der FlatCAM-Variablen, die verwendet werden können\n"
-"im Werkzeugwechselereignis.\n"
-"Sie müssen mit dem \"%\" -Symbol umgeben sein"
-
-#: flatcamGUI/ObjectUI.py:2453
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:101
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:30
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:31
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:37
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:36
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:36
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:36
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:36
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:30
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:32
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31
-#: flatcamTools/ToolCopperThieving.py:89 flatcamTools/ToolFiducials.py:149
-#: flatcamTools/ToolInvertGerber.py:82
-msgid "Parameters"
-msgstr "Parameters"
-
-#: flatcamGUI/ObjectUI.py:2456
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:106
-msgid "FlatCAM CNC parameters"
-msgstr "FlatCAM CNC-Parameter"
-
-#: flatcamGUI/ObjectUI.py:2457
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:111
-msgid "tool number"
-msgstr "Werkzeugnummer"
-
-#: flatcamGUI/ObjectUI.py:2458
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:112
-msgid "tool diameter"
-msgstr "Werkzeugdurchmesser"
-
-#: flatcamGUI/ObjectUI.py:2459
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:113
-msgid "for Excellon, total number of drills"
-msgstr "für Excellon die Gesamtzahl der Bohrer"
-
-#: flatcamGUI/ObjectUI.py:2461
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:115
-msgid "X coord for Toolchange"
-msgstr "X-Koordinate für Werkzeugwechsel"
-
-#: flatcamGUI/ObjectUI.py:2462
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:116
-msgid "Y coord for Toolchange"
-msgstr "Y-Koordinate für Werkzeugwechsel"
-
-#: flatcamGUI/ObjectUI.py:2463
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:118
-msgid "Z coord for Toolchange"
-msgstr "Z-Koordinate für Werkzeugwechsel"
-
-#: flatcamGUI/ObjectUI.py:2464
-msgid "depth where to cut"
-msgstr "tiefe wo zu schneiden"
-
-#: flatcamGUI/ObjectUI.py:2465
-msgid "height where to travel"
-msgstr "Höhe, wohin man reist"
-
-#: flatcamGUI/ObjectUI.py:2466
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:121
-msgid "the step value for multidepth cut"
-msgstr "der Schrittwert für den mehrstufigen Schnitt"
-
-#: flatcamGUI/ObjectUI.py:2468
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:123
-msgid "the value for the spindle speed"
-msgstr "der Wert für die Spindeldrehzahl"
-
-#: flatcamGUI/ObjectUI.py:2470
-msgid "time to dwell to allow the spindle to reach it's set RPM"
-msgstr ""
-"Zeit zum Verweilen, damit die Spindel die eingestellte Drehzahl erreicht"
-
-#: flatcamGUI/ObjectUI.py:2486
-msgid "View CNC Code"
-msgstr "CNC-Code anzeigen"
-
-#: flatcamGUI/ObjectUI.py:2488
-msgid ""
-"Opens TAB to view/modify/print G-Code\n"
-"file."
-msgstr ""
-"Öffnet die Registerkarte zum Anzeigen / Ändern / Drucken von G-Code\n"
-"Datei."
-
-#: flatcamGUI/ObjectUI.py:2493
-msgid "Save CNC Code"
-msgstr "CNC-Code speichern"
-
-#: flatcamGUI/ObjectUI.py:2495
-msgid ""
-"Opens dialog to save G-Code\n"
-"file."
-msgstr ""
-"Öffnet den Dialog zum Speichern des G-Codes\n"
-"Datei."
-
-#: flatcamGUI/ObjectUI.py:2529
-msgid "Script Object"
-msgstr "Skriptobjekt"
-
-#: flatcamGUI/ObjectUI.py:2549 flatcamGUI/ObjectUI.py:2623
-msgid "Auto Completer"
-msgstr "Auto-Vervollständiger"
-
-#: flatcamGUI/ObjectUI.py:2551
-msgid "This selects if the auto completer is enabled in the Script Editor."
-msgstr ""
-"Hiermit wird ausgewählt, ob der automatische Vervollständiger im Skript-"
-"Editor aktiviert ist."
-
-#: flatcamGUI/ObjectUI.py:2596
-msgid "Document Object"
-msgstr "Dokumentobjekt"
-
-#: flatcamGUI/ObjectUI.py:2625
-msgid "This selects if the auto completer is enabled in the Document Editor."
-msgstr ""
-"Hiermit wird ausgewählt, ob der automatische Vervollständiger im "
-"Dokumenteditor aktiviert ist."
-
-#: flatcamGUI/ObjectUI.py:2643
-msgid "Font Type"
-msgstr "Schriftart"
-
-#: flatcamGUI/ObjectUI.py:2660
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:197
-msgid "Font Size"
-msgstr "Schriftgröße"
-
-#: flatcamGUI/ObjectUI.py:2696
-msgid "Alignment"
-msgstr "Ausrichtung"
-
-#: flatcamGUI/ObjectUI.py:2701
-msgid "Align Left"
-msgstr "Linksbündig"
-
-#: flatcamGUI/ObjectUI.py:2711
-msgid "Align Right"
-msgstr "Rechts ausrichten"
-
-#: flatcamGUI/ObjectUI.py:2716
-msgid "Justify"
-msgstr "Rechtfertigen"
-
-#: flatcamGUI/ObjectUI.py:2723
-msgid "Font Color"
-msgstr "Schriftfarbe"
-
-#: flatcamGUI/ObjectUI.py:2725
-msgid "Set the font color for the selected text"
-msgstr "Stellen Sie die Schriftfarbe für den ausgewählten Text ein"
-
-#: flatcamGUI/ObjectUI.py:2739
-msgid "Selection Color"
-msgstr "Auswahlfarbe"
-
-#: flatcamGUI/ObjectUI.py:2741
-msgid "Set the selection color when doing text selection."
-msgstr "Stellen Sie die Auswahlfarbe bei der Textauswahl ein."
-
-#: flatcamGUI/ObjectUI.py:2755
-msgid "Tab Size"
-msgstr "Tab-Größe"
-
-#: flatcamGUI/ObjectUI.py:2757
-msgid "Set the tab size. In pixels. Default value is 80 pixels."
-msgstr ""
-"Stellen Sie die Größe der Registerkarte ein. In Pixeln. Der Standardwert "
-"beträgt 80 Pixel."
-
-#: flatcamGUI/PlotCanvasLegacy.py:1299
-msgid ""
-"Could not annotate due of a difference between the number of text elements "
-"and the number of text positions."
-msgstr ""
-"Aufgrund eines Unterschieds zwischen der Anzahl der Textelemente und der "
-"Anzahl der Textpositionen konnten keine Anmerkungen erstellt werden."
-
-#: flatcamGUI/preferences/PreferencesUIManager.py:911
-msgid "Preferences applied."
-msgstr "Einstellungen werden angewendet."
-
-#: flatcamGUI/preferences/PreferencesUIManager.py:975
-msgid "Preferences closed without saving."
-msgstr "Einstellungen geschlossen ohne zu speichern."
-
-#: flatcamGUI/preferences/PreferencesUIManager.py:987
-msgid "Preferences default values are restored."
-msgstr "Die Standardeinstellungen werden wiederhergestellt."
-
-#: flatcamGUI/preferences/PreferencesUIManager.py:1022
-#: flatcamGUI/preferences/PreferencesUIManager.py:1131
-msgid "Preferences saved."
-msgstr "Einstellungen gespeichert."
-
-#: flatcamGUI/preferences/PreferencesUIManager.py:1072
-msgid "Preferences edited but not saved."
-msgstr "Einstellungen bearbeitet, aber nicht gespeichert."
-
-#: flatcamGUI/preferences/PreferencesUIManager.py:1117
-msgid ""
-"One or more values are changed.\n"
-"Do you want to save the Preferences?"
-msgstr ""
-"Ein oder mehrere Werte werden geändert.\n"
-"Möchten Sie die Einstellungen speichern?"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:27
-msgid "CNC Job Adv. Options"
-msgstr "Erw. CNC-Joboptionen"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:64
-msgid ""
-"Type here any G-Code commands you would like to be executed when Toolchange "
-"event is encountered.\n"
-"This will constitute a Custom Toolchange GCode, or a Toolchange Macro.\n"
-"The FlatCAM variables are surrounded by '%' symbol.\n"
-"WARNING: it can be used only with a preprocessor file that has "
-"'toolchange_custom' in it's name."
-msgstr ""
-"Geben Sie hier G-Code-Befehle ein, die ausgeführt werden, wenn ein "
-"Werkzeugwechselereignis auftritt.\n"
-"So kann ein benutzerdefinierter Werkzeugwechsel in GCode definiert werden.\n"
-"Die FlatCAM-Variablen sind vom '%'-Symbol umgeben.\n"
-"\n"
-"WARNUNG: Ein Werkzeugwechselereignis kann nur mit einer Präprozessor-Datei "
-"verwendet warden, die das Präfix \"toolchange_custom\" im Namen hat und nach "
-"Vorlage der \"Toolchange Custom\" -Prozessordatei erzeugt wurde."
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:119
-msgid "Z depth for the cut"
-msgstr "Z Tiefe für den Schnitt"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:120
-msgid "Z height for travel"
-msgstr "Z Höhe für die Reise"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:126
-msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM"
-msgstr ""
-"dwelltime = Zeit zum Verweilen, damit die Spindel ihre eingestellte Drehzahl "
-"erreicht"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:145
-msgid "Annotation Size"
-msgstr "Anmerkungsgröße"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:147
-msgid "The font size of the annotation text. In pixels."
-msgstr "Die Schriftgröße des Anmerkungstextes. In Pixeln."
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:157
-msgid "Annotation Color"
-msgstr "Anmerkungsfarbe"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:159
-msgid "Set the font color for the annotation texts."
-msgstr "Legen Sie die Schriftfarbe für die Anmerkungstexte fest."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:26
-msgid "CNC Job General"
-msgstr "CNC-Job Allgemein"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:77
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:47
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:59
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:45
-msgid "Circle Steps"
-msgstr "Kreisschritte"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:79
-msgid ""
-"The number of circle steps for GCode \n"
-"circle and arc shapes linear approximation."
-msgstr ""
-"Die Anzahl der Kreisschritte für GCode\n"
-"Kreis- und Bogenformen lineare Annäherung."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:88
-msgid "Travel dia"
-msgstr "Verfahrdurchm"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:90
-msgid ""
-"The width of the travel lines to be\n"
-"rendered in the plot."
-msgstr ""
-"Die Breite der Fahrlinien soll sein\n"
-"in der Handlung gerendert."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:103
-msgid "G-code Decimals"
-msgstr "G-Code-Dezimalstellen"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:106
-#: flatcamTools/ToolFiducials.py:74
-msgid "Coordinates"
-msgstr "Koordinaten"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:108
-msgid ""
-"The number of decimals to be used for \n"
-"the X, Y, Z coordinates in CNC code (GCODE, etc.)"
-msgstr ""
-"Die Anzahl der Dezimalstellen, für die verwendet werden soll\n"
-"die X-, Y-, Z-Koordinaten im CNC-Code (GCODE usw.)"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:119
-#: flatcamTools/ToolProperties.py:519
-msgid "Feedrate"
-msgstr "Vorschubgeschwindigkeit"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:121
-msgid ""
-"The number of decimals to be used for \n"
-"the Feedrate parameter in CNC code (GCODE, etc.)"
-msgstr ""
-"Die Anzahl der Dezimalstellen, für die verwendet werden soll\n"
-"der Vorschubparameter im CNC-Code (GCODE usw.)"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:132
-msgid "Coordinates type"
-msgstr "Koordinaten eingeben"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:134
-msgid ""
-"The type of coordinates to be used in Gcode.\n"
-"Can be:\n"
-"- Absolute G90 -> the reference is the origin x=0, y=0\n"
-"- Incremental G91 -> the reference is the previous position"
-msgstr ""
-"Der in Gcode zu verwendende Koordinatentyp.\n"
-"Kann sein:\n"
-"- Absolut G90 -> die Referenz ist der Ursprung x = 0, y = 0\n"
-"- Inkrementell G91 -> Die Referenz ist die vorherige Position"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:140
-msgid "Absolute G90"
-msgstr "Absolut G90"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:141
-msgid "Incremental G91"
-msgstr "Inkrementelles G91"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:151
-msgid "Force Windows style line-ending"
-msgstr "Windows Zeilenendemarkierung erzwingen"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:153
-msgid ""
-"When checked will force a Windows style line-ending\n"
-"(\\r\\n) on non-Windows OS's."
-msgstr ""
-"Wenn ausgewählt werden Zeilenendungsmarkierungen von Windows (CRLF) auch auf "
-"anderen Betriebssystemen geschrieben."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:165
-msgid "Travel Line Color"
-msgstr "Reiselinienfarbe"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:169
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:235
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:262
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:154
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:220
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:84
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:153
-#: flatcamTools/ToolRulesCheck.py:186
-msgid "Outline"
-msgstr "Gliederung"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:171
-msgid "Set the travel line color for plotted objects."
-msgstr "Legen Sie die Reiselinienfarbe für geplottete Objekte fest."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:186
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:252
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:279
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:170
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:237
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:170
-msgid "Fill"
-msgstr "Füll"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:188
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:254
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:281
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:172
-msgid ""
-"Set the fill color for plotted objects.\n"
-"First 6 digits are the color and the last 2\n"
-"digits are for alpha (transparency) level."
-msgstr ""
-"Legen Sie die Füllfarbe für geplottete Objekte fest.\n"
-"Die ersten 6 Ziffern sind die Farbe und die letzten 2\n"
-"Ziffern sind für Alpha (Transparenz)."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:205
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:298
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:190
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:257
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:189
-msgid "Alpha"
-msgstr "Alpha"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:207
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:300
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:191
-msgid "Set the fill transparency for plotted objects."
-msgstr "Legen Sie die Füllungstransparenz für geplottete Objekte fest."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:231
-msgid "CNCJob Object Color"
-msgstr "CNCJob-Objektfarbe"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:237
-msgid "Set the color for plotted objects."
-msgstr "Legen Sie die Farbe für geplottete Objekte fest."
-
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:27
-msgid "CNC Job Options"
-msgstr "CNC-Auftragsoptionen"
-
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:31
-msgid "Export G-Code"
-msgstr "G-Code exportieren"
-
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:47
-msgid "Prepend to G-Code"
-msgstr "Voranstellen an G-Code"
-
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:56
-msgid ""
-"Type here any G-Code commands you would like to add at the beginning of the "
-"G-Code file."
-msgstr ""
-"Geben Sie hier alle G-Code-Befehle ein\n"
-"die Sie zum Anfang der G-Code-Datei hinzufügen möchten."
-
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:63
-msgid "Append to G-Code"
-msgstr "An G-Code anhängen"
-
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:73
-msgid ""
-"Type here any G-Code commands you would like to append to the generated "
-"file.\n"
-"I.e.: M2 (End of program)"
-msgstr ""
-"Geben Sie hier alle G-Code-Befehle ein, die Sie an die generierte Datei "
-"anhängen möchten.\n"
-"Zum Beispiel: M2 (Programmende)"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:27
-msgid "Excellon Adv. Options"
-msgstr "Excellon erweiterte Optionen"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:34
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:33
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:31
-msgid "Advanced Options"
-msgstr "Erweiterte Optionen"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:36
-msgid ""
-"A list of Excellon advanced parameters.\n"
-"Those parameters are available only for\n"
-"Advanced App. Level."
-msgstr ""
-"Eine Liste der erweiterten Excellon-Parameter.\n"
-"Diese Parameter sind nur für verfügbar\n"
-"Erweiterte App. Niveau."
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:59
-msgid "Toolchange X,Y"
-msgstr "Werkzeugwechsel X, Y"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:61
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:47
-msgid "Toolchange X,Y position."
-msgstr "Werkzeugwechsel X, Y Position."
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:121
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:134
-msgid "Spindle direction"
-msgstr "Drehrichtung"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:123
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:136
-msgid ""
-"This sets the direction that the spindle is rotating.\n"
-"It can be either:\n"
-"- CW = clockwise or\n"
-"- CCW = counter clockwise"
-msgstr ""
-"Hiermit wird die Drehrichtung der Spindel eingestellt.\n"
-"Es kann entweder sein:\n"
-"- CW = im Uhrzeigersinn oder\n"
-"- CCW = gegen den Uhrzeigersinn"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:134
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:148
-msgid "Fast Plunge"
-msgstr "Schneller Sprung"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:136
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:150
-msgid ""
-"By checking this, the vertical move from\n"
-"Z_Toolchange to Z_move is done with G0,\n"
-"meaning the fastest speed available.\n"
-"WARNING: the move is done at Toolchange X,Y coords."
-msgstr ""
-"Wenn Sie dies überprüfen, bewegen Sie sich vertikal\n"
-"Z_Toolchange zu Z_move erfolgt mit G0,\n"
-"Das bedeutet die schnellste verfügbare Geschwindigkeit.\n"
-"WARNUNG: Die Verschiebung erfolgt bei Toolchange X, Y-Koordinaten."
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:143
-msgid "Fast Retract"
-msgstr "Schneller Rückzug"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:145
-msgid ""
-"Exit hole strategy.\n"
-" - When uncheked, while exiting the drilled hole the drill bit\n"
-"will travel slow, with set feedrate (G1), up to zero depth and then\n"
-"travel as fast as possible (G0) to the Z Move (travel height).\n"
-" - When checked the travel from Z cut (cut depth) to Z_move\n"
-"(travel height) is done as fast as possible (G0) in one move."
-msgstr ""
-"Verlassen Sie die Lochstrategie.\n"
-" - Ungeprüft, beim Verlassen des Bohrlochs der Bohrer\n"
-"fährt langsam, mit eingestelltem Vorschub (G1), bis zur Nulltiefe und dann\n"
-"Fahren Sie so schnell wie möglich (G0) bis Z Move (Fahrhöhe).\n"
-" - Wenn Sie den Weg von Z-Schnitt (Schnitttiefe) nach Z_Move prüfen\n"
-"(Fahrhöhe) erfolgt so schnell wie möglich (G0) in einem Zug."
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:32
-msgid "A list of Excellon Editor parameters."
-msgstr "Eine Liste der Excellon Editor-Parameter."
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:40
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:41
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:41
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:194
-msgid "Selection limit"
-msgstr "Auswahllimit"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:42
-msgid ""
-"Set the number of selected Excellon geometry\n"
-"items above which the utility geometry\n"
-"becomes just a selection rectangle.\n"
-"Increases the performance when moving a\n"
-"large number of geometric elements."
-msgstr ""
-"Stellen Sie die Anzahl der ausgewählten Excellon-Geometrien ein\n"
-"Elemente, über denen die Nutzgeometrie\n"
-"wird nur ein Auswahlrechteck.\n"
-"Erhöht die Leistung beim Bewegen von a\n"
-"große Anzahl von geometrischen Elementen."
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:55
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:117
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:123
-msgid "New Dia"
-msgstr "Neuer Durchmesser"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:80
-msgid "Linear Drill Array"
-msgstr "Linearbohrer-Array"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:84
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:232
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:120
-msgid "Linear Direction"
-msgstr "Lineare Richtung"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:126
-msgid "Circular Drill Array"
-msgstr "Rundbohrer-Array"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:130
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:280
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:164
-msgid "Circular Direction"
-msgstr "Kreisrichtung"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:132
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:282
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:166
-msgid ""
-"Direction for circular array.\n"
-"Can be CW = clockwise or CCW = counter clockwise."
-msgstr ""
-"Richtung für kreisförmige Anordnung. \n"
-"Kann CW = Uhrzeigersinn oder CCW = Gegenuhrzeigersinn sein."
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:143
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:293
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:177
-msgid "Circular Angle"
-msgstr "Kreiswinkel"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:196
-msgid ""
-"Angle at which the slot is placed.\n"
-"The precision is of max 2 decimals.\n"
-"Min value is: -359.99 degrees.\n"
-"Max value is: 360.00 degrees."
-msgstr ""
-"Winkel, in dem der Schlitz platziert ist.\n"
-"Die Genauigkeit beträgt maximal 2 Dezimalstellen.\n"
-"Der Mindestwert beträgt: -359,99 Grad.\n"
-"Maximaler Wert ist: 360.00 Grad."
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:215
-msgid "Linear Slot Array"
-msgstr "Lineare Schlitzanordnung"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:276
-msgid "Circular Slot Array"
-msgstr "Kreisschlitz-Array"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:26
-msgid "Excellon Export"
-msgstr "Excellon Export"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:30
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:31
-msgid "Export Options"
-msgstr "Exportoptionen"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:32
-msgid ""
-"The parameters set here are used in the file exported\n"
-"when using the File -> Export -> Export Excellon menu entry."
-msgstr ""
-"Die hier eingestellten Parameter werden in der exportierten Datei verwendet\n"
-"bei Verwendung des Menüeintrags Datei -> Exportieren -> Exportieren von "
-"Excellon."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:41
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:163
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:39
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:42
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:82
-#: flatcamTools/ToolDistance.py:56 flatcamTools/ToolDistanceMin.py:50
-#: flatcamTools/ToolPcbWizard.py:127 flatcamTools/ToolProperties.py:154
-msgid "Units"
-msgstr "Einheiten"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:43
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:49
-msgid "The units used in the Excellon file."
-msgstr "Die in der Excellon-Datei verwendeten Einheiten."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:46
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:87
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:173
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:47
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:87
-#: flatcamTools/ToolCalculators.py:61 flatcamTools/ToolPcbWizard.py:125
-msgid "INCH"
-msgstr "ZOLL"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:47
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:174
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:43
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:48
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:88
-#: flatcamTools/ToolCalculators.py:62 flatcamTools/ToolPcbWizard.py:126
-msgid "MM"
-msgstr "MM"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:55
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:56
-msgid "Int/Decimals"
-msgstr "Ganzzahl / Dezimalzahl"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:57
-msgid ""
-"The NC drill files, usually named Excellon files\n"
-"are files that can be found in different formats.\n"
-"Here we set the format used when the provided\n"
-"coordinates are not using period."
-msgstr ""
-"Die NC-Bohrdateien, normalerweise Excellon-Dateien genannt\n"
-"sind Dateien, die in verschiedenen Formaten vorliegen.\n"
-"Hier legen wir das verwendete Format fest\n"
-"Koordinaten verwenden keine Periode."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:69
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:95
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:124
-msgid ""
-"This numbers signify the number of digits in\n"
-"the whole part of Excellon coordinates."
-msgstr ""
-"Diese Zahlen geben die Anzahl der Ziffern in an\n"
-"der gesamte Teil der Excellon-Koordinaten."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:82
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:108
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:137
-msgid ""
-"This numbers signify the number of digits in\n"
-"the decimal part of Excellon coordinates."
-msgstr ""
-"Diese Zahlen geben die Anzahl der Ziffern in an\n"
-"der Dezimalteil der Excellon-Koordinaten."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:91
-msgid "Format"
-msgstr "Format"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:93
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:103
-msgid ""
-"Select the kind of coordinates format used.\n"
-"Coordinates can be saved with decimal point or without.\n"
-"When there is no decimal point, it is required to specify\n"
-"the number of digits for integer part and the number of decimals.\n"
-"Also it will have to be specified if LZ = leading zeros are kept\n"
-"or TZ = trailing zeros are kept."
-msgstr ""
-"Wählen Sie das verwendete Koordinatenformat aus.\n"
-"Koordinaten können mit oder ohne Dezimalpunkt gespeichert werden.\n"
-"Wenn kein Dezimalzeichen vorhanden ist, muss dies angegeben werden\n"
-"Die Anzahl der Ziffern für den ganzzahligen Teil und die Anzahl der "
-"Dezimalstellen.\n"
-"Es muss auch angegeben werden, wenn LZ = führende Nullen beibehalten werden\n"
-"oder TZ = nachfolgende Nullen bleiben erhalten."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:100
-msgid "Decimal"
-msgstr "Dezimal"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:101
-msgid "No-Decimal"
-msgstr "Keine Dezimalzahl"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:114
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:145
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:96
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:97
-msgid "Zeros"
-msgstr "Nullen"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:117
-msgid ""
-"This sets the type of Excellon zeros.\n"
-"If LZ then Leading Zeros are kept and\n"
-"Trailing Zeros are removed.\n"
-"If TZ is checked then Trailing Zeros are kept\n"
-"and Leading Zeros are removed."
-msgstr ""
-"Hiermit wird der Typ der Excellon-Nullen festgelegt.\n"
-"Wenn LZ, dann werden führende Nullen beibehalten und\n"
-"Nachgestellte Nullen werden entfernt.\n"
-"Wenn TZ aktiviert ist, werden nachfolgende Nullen beibehalten\n"
-"und führende Nullen werden entfernt."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:124
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:158
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:106
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:107
-#: flatcamTools/ToolPcbWizard.py:111
-msgid "LZ"
-msgstr "LZ"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:125
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:159
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:107
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:108
-#: flatcamTools/ToolPcbWizard.py:112
-msgid "TZ"
-msgstr "TZ"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:127
-msgid ""
-"This sets the default type of Excellon zeros.\n"
-"If LZ then Leading Zeros are kept and\n"
-"Trailing Zeros are removed.\n"
-"If TZ is checked then Trailing Zeros are kept\n"
-"and Leading Zeros are removed."
-msgstr ""
-"Hiermit wird der Standardtyp von Excellon-Nullen festgelegt.\n"
-"Wenn LZ, dann werden führende Nullen beibehalten und\n"
-"Nachgestellte Nullen werden entfernt.\n"
-"Wenn TZ aktiviert ist, werden nachfolgende Nullen beibehalten\n"
-"und führende Nullen werden entfernt."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:137
-msgid "Slot type"
-msgstr "Schlitze-Typ"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:140
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:150
-msgid ""
-"This sets how the slots will be exported.\n"
-"If ROUTED then the slots will be routed\n"
-"using M15/M16 commands.\n"
-"If DRILLED(G85) the slots will be exported\n"
-"using the Drilled slot command (G85)."
-msgstr ""
-"Hier legen Sie fest, wie die Slots exportiert werden.\n"
-"Wenn geroutet, werden die Slots geroutet\n"
-"mit M15 / M16 Befehlen.\n"
-"Beim Bohren (G85) werden die Steckplätze exportiert\n"
-"Verwenden Sie den Befehl Bohrschlitz (G85)."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:147
-msgid "Routed"
-msgstr "Geroutet"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:148
-msgid "Drilled(G85)"
-msgstr "Gebohrt (G85)"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:29
-msgid "Excellon General"
-msgstr "Excellon Allgemeines"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:62
-msgid "Excellon Format"
-msgstr "Excellon Format"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:64
-msgid ""
-"The NC drill files, usually named Excellon files\n"
-"are files that can be found in different formats.\n"
-"Here we set the format used when the provided\n"
-"coordinates are not using period.\n"
-"\n"
-"Possible presets:\n"
-"\n"
-"PROTEUS 3:3 MM LZ\n"
-"DipTrace 5:2 MM TZ\n"
-"DipTrace 4:3 MM LZ\n"
-"\n"
-"EAGLE 3:3 MM TZ\n"
-"EAGLE 4:3 MM TZ\n"
-"EAGLE 2:5 INCH TZ\n"
-"EAGLE 3:5 INCH TZ\n"
-"\n"
-"ALTIUM 2:4 INCH LZ\n"
-"Sprint Layout 2:4 INCH LZ\n"
-"KiCAD 3:5 INCH TZ"
-msgstr ""
-"Die NC-Bohrdateien, normalerweise Excellon-Dateien genannt\n"
-"sind Dateien, die in verschiedenen Formaten vorliegen.\n"
-"Hier legen wir das verwendete Format fest\n"
-"Koordinaten verwenden keine Periode.\n"
-"\n"
-"Mögliche Voreinstellungen:\n"
-"\n"
-"PROTEUS 3: 3 MM LZ\n"
-"DipTrace 5: 2 MM TZ\n"
-"DipTrace 4: 3 MM LZ\n"
-"\n"
-"Eagle 3: 3 MM TZ\n"
-"Eagle 4: 3 MM TZ\n"
-"Eagle 2: 5 ZOLL TZ\n"
-"Eagle 3: 5 ZOLL TZ\n"
-"\n"
-"ALTIUM 2: 4 ZOLL LZ\n"
-"Sprint-Layout 2: 4 ZOLL LZ\n"
-"KiCAD 3: 5 ZOLL TZ"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:88
-msgid "Default values for INCH are 2:4"
-msgstr "Die Standardwerte für ZOLL sind 2: 4"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:116
-msgid "METRIC"
-msgstr "METRISCH"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:117
-msgid "Default values for METRIC are 3:3"
-msgstr "Die Standardwerte für METRISCH sind 3: 3"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:148
-msgid ""
-"This sets the type of Excellon zeros.\n"
-"If LZ then Leading Zeros are kept and\n"
-"Trailing Zeros are removed.\n"
-"If TZ is checked then Trailing Zeros are kept\n"
-"and Leading Zeros are removed.\n"
-"\n"
-"This is used when there is no information\n"
-"stored in the Excellon file."
-msgstr ""
-"Hiermit wird der Typ der Excellon-Nullen festgelegt.\n"
-"Wenn LZ, dann werden führende Nullen beibehalten und\n"
-"Nachgestellte Nullen werden entfernt.\n"
-"Wenn TZ aktiviert ist, werden nachfolgende Nullen beibehalten\n"
-"und führende Nullen werden entfernt.\n"
-"\n"
-"Dies wird verwendet, wenn keine Informationen vorliegen\n"
-"in der Excellon-Datei gespeichert."
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:166
-msgid ""
-"This sets the default units of Excellon files.\n"
-"If it is not detected in the parsed file the value here\n"
-"will be used.Some Excellon files don't have an header\n"
-"therefore this parameter will be used."
-msgstr ""
-"Dadurch werden die Standardeinheiten von Excellon-Dateien festgelegt.\n"
-"Wird in der geparsten Datei der Wert hier nicht gefunden\n"
-"wird verwendet. Einige Excellon-Dateien haben keinen Header\n"
-"Daher wird dieser Parameter verwendet."
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:176
-msgid ""
-"This sets the units of Excellon files.\n"
-"Some Excellon files don't have an header\n"
-"therefore this parameter will be used."
-msgstr ""
-"Damit werden die Einheiten von Excellon-Dateien festgelegt.\n"
-"Einige Excellon-Dateien haben keinen Header\n"
-"Daher wird dieser Parameter verwendet."
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:184
-msgid "Update Export settings"
-msgstr "Exporteinstellungen aktual"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:201
-msgid "Excellon Optimization"
-msgstr "Optimierung der Excellons"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:204
-msgid "Algorithm:"
-msgstr "Algorithmus:"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:206
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:222
-msgid ""
-"This sets the optimization type for the Excellon drill path.\n"
-"If <> is checked then Google OR-Tools algorithm with\n"
-"MetaHeuristic Guided Local Path is used. Default search time is 3sec.\n"
-"If <> is checked then Google OR-Tools Basic algorithm is used.\n"
-"If <> is checked then Travelling Salesman algorithm is used for\n"
-"drill path optimization.\n"
-"\n"
-"If this control is disabled, then FlatCAM works in 32bit mode and it uses\n"
-"Travelling Salesman algorithm for path optimization."
-msgstr ""
-"Hiermit wird der Optimierungstyp für den Excellon-Bohrpfad festgelegt.\n"
-"Wenn << MetaHeuristic >> aktiviert ist, verwenden Sie den Google OR-Tools-"
-"Algorithmus\n"
-"Es wird ein metaHeuristisch geführter lokaler Pfad verwendet. Die "
-"Standardsuchzeit beträgt 3 Sekunden.\n"
-"Wenn << Basic >> aktiviert ist, wird der Google OR-Tools Basic-Algorithmus "
-"verwendet.\n"
-"Wenn << TSA >> markiert ist, wird der Traveling Salesman-Algorithmus für "
-"verwendet\n"
-"Bohrpfadoptimierung.\n"
-"\n"
-"Wenn dieses Steuerelement deaktiviert ist, arbeitet FlatCAM im 32-Bit-Modus "
-"und verwendet\n"
-"Travelling Salesman-Algorithmus zur Pfadoptimierung."
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:217
-msgid "MetaHeuristic"
-msgstr "MetaHeuristic"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:218
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:104
-#: flatcamObjects/FlatCAMExcellon.py:614 flatcamObjects/FlatCAMGeometry.py:510
-#: flatcamObjects/FlatCAMGerber.py:251
-msgid "Basic"
-msgstr "Basis"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:219
-msgid "TSA"
-msgstr "TSA"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:236
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:245
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:237
-msgid "Duration"
-msgstr "Dauer"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:239
-msgid ""
-"When OR-Tools Metaheuristic (MH) is enabled there is a\n"
-"maximum threshold for how much time is spent doing the\n"
-"path optimization. This max duration is set here.\n"
-"In seconds."
-msgstr ""
-"Wenn OR-Tools Metaheuristic (MH) aktiviert ist, wird ein angezeigt\n"
-"maximale Schwelle für die Zeit, die das\n"
-"Pfadoptimierung. Diese maximale Dauer wird hier eingestellt.\n"
-"In Sekunden."
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:258
-msgid "Excellon Object Color"
-msgstr "Excellon-Objektfarbe"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:264
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:86
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:155
-msgid "Set the line color for plotted objects."
-msgstr "Legen Sie die Linienfarbe für geplottete Objekte fest."
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:29
-msgid "Excellon Options"
-msgstr "Excellon-Optionen"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:33
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:34
-msgid "Create CNC Job"
-msgstr "CNC-Job erstellen"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:35
-msgid ""
-"Parameters used to create a CNC Job object\n"
-"for this drill object."
-msgstr ""
-"Parameter, die zum Erstellen eines CNC-Auftragsobjekts verwendet werden\n"
-"für dieses Bohrobjekt."
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:152
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:121
-msgid "Tool change"
-msgstr "Werkzeugwechsel"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:236
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:232
-msgid "Enable Dwell"
-msgstr "Verweilzeit aktivieren"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:259
-msgid ""
-"The preprocessor JSON file that dictates\n"
-"Gcode output."
-msgstr ""
-"Die Postprozessor-JSON-Datei, die diktiert\n"
-"Gcode-Ausgabe."
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:270
-msgid "Gcode"
-msgstr "Gcode"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:272
-msgid ""
-"Choose what to use for GCode generation:\n"
-"'Drills', 'Slots' or 'Both'.\n"
-"When choosing 'Slots' or 'Both', slots will be\n"
-"converted to drills."
-msgstr ""
-"Wählen Sie aus, was für die GCode-Generierung verwendet werden soll:\n"
-"'Bohrer', 'Schlüssel' oder 'Beide'.\n"
-"Wenn Sie \"Schlüssel\" oder \"Beide\" wählen, werden die Schlüssel "
-"angezeigt\n"
-"in Bohrer umgewandelt."
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:288
-msgid "Mill Holes"
-msgstr "Löcher bohren"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:290
-msgid "Create Geometry for milling holes."
-msgstr "Erstellen Sie Geometrie zum Fräsen von Löchern."
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:294
-msgid "Drill Tool dia"
-msgstr "Bohrwerkzeugs Durchm"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:305
-msgid "Slot Tool dia"
-msgstr "Schlitzwerkzeug Durchmesser"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:307
-msgid ""
-"Diameter of the cutting tool\n"
-"when milling slots."
-msgstr ""
-"Durchmesser des Schneidewerkzeugs\n"
-"beim Fräsen von Schlitzen."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:28
-msgid "App Settings"
-msgstr "App Einstellungen"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:49
-msgid "Grid Settings"
-msgstr "Rastereinstellungen"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:53
-msgid "X value"
-msgstr "X-Wert"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:55
-msgid "This is the Grid snap value on X axis."
-msgstr "Dies ist der Rasterfangwert auf der X-Achse."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:65
-msgid "Y value"
-msgstr "Y-Wert"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:67
-msgid "This is the Grid snap value on Y axis."
-msgstr "Dies ist der Rasterfangwert auf der Y-Achse."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:77
-msgid "Snap Max"
-msgstr "Fang Max"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:92
-msgid "Workspace Settings"
-msgstr "Arbeitsbereichseinstellungen"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:95
-msgid "Active"
-msgstr "Aktiv"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:97
-msgid ""
-"Draw a delimiting rectangle on canvas.\n"
-"The purpose is to illustrate the limits for our work."
-msgstr ""
-"Zeichnen Sie ein begrenzendes Rechteck auf die Leinwand.\n"
-"Ziel ist es, die Grenzen unserer Arbeit aufzuzeigen."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:105
-msgid ""
-"Select the type of rectangle to be used on canvas,\n"
-"as valid workspace."
-msgstr ""
-"Wählen Sie den Typ des Rechtecks für die Leinwand aus.\n"
-"als gültiger Arbeitsbereich."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:171
-msgid "Orientation"
-msgstr "Orientierung"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:172
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:239
-#: flatcamTools/ToolFilm.py:422
-msgid ""
-"Can be:\n"
-"- Portrait\n"
-"- Landscape"
-msgstr ""
-"Eines von\n"
-"- Hochformat\n"
-"- Querformat"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:176
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:243
-#: flatcamTools/ToolFilm.py:426
-msgid "Portrait"
-msgstr "Hochformat"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:177
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:244
-#: flatcamTools/ToolFilm.py:427
-msgid "Landscape"
-msgstr "Querformat"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:201
-msgid "Notebook"
-msgstr "Notizbuch"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:203
-msgid ""
-"This sets the font size for the elements found in the Notebook.\n"
-"The notebook is the collapsible area in the left side of the GUI,\n"
-"and include the Project, Selected and Tool tabs."
-msgstr ""
-"Hiermit wird die Schriftgröße für die im Notizbuch enthaltenen Elemente "
-"festgelegt.\n"
-"Das Notizbuch ist der ausblendbare Bereich auf der linken Seite der "
-"Benutzeroberfläche.\n"
-"und schließen Sie die Registerkarten Projekt, Ausgewählt und Werkzeug ein."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:222
-msgid "Axis"
-msgstr "Achse"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:224
-msgid "This sets the font size for canvas axis."
-msgstr "Hiermit wird die Schriftgröße für die Zeichenbereichsachse festgelegt."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:241
-msgid "Textbox"
-msgstr "Textfeld"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:243
-msgid ""
-"This sets the font size for the Textbox GUI\n"
-"elements that are used in FlatCAM."
-msgstr ""
-"Hiermit wird die Schriftgröße für die Textbox-GUI festgelegt\n"
-"Elemente, die in FlatCAM verwendet werden."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:269
-msgid "Mouse Settings"
-msgstr "Mauseinstellungen"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:273
-msgid "Cursor Shape"
-msgstr "Mauszeiger Form"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:275
-msgid ""
-"Choose a mouse cursor shape.\n"
-"- Small -> with a customizable size.\n"
-"- Big -> Infinite lines"
-msgstr ""
-"Wählen Sie eine Mauszeigerform.\n"
-"- Klein -> mit einer anpassbaren Größe.\n"
-"- Groß -> Unendliche Linien"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:281
-msgid "Small"
-msgstr "Klein"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:282
-msgid "Big"
-msgstr "Groß"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:289
-msgid "Cursor Size"
-msgstr "Mauszeigergröße"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:291
-msgid "Set the size of the mouse cursor, in pixels."
-msgstr "Stellen Sie die Größe des Mauszeigers in Pixel ein."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:302
-msgid "Cursor Width"
-msgstr "Mauszeiger Breite"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:304
-msgid "Set the line width of the mouse cursor, in pixels."
-msgstr "Legen Sie die Linienbreite des Mauszeigers in Pixel fest."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:315
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:322
-msgid "Cursor Color"
-msgstr "Mauszeigerfarbe"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:317
-msgid "Check this box to color mouse cursor."
-msgstr "Aktivieren Sie dieses Kontrollkästchen, um den Mauszeiger einzufärben."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:324
-msgid "Set the color of the mouse cursor."
-msgstr "Stellen Sie die Farbe des Mauszeigers ein."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:347
-msgid "Pan Button"
-msgstr "Pan-Taste"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:349
-msgid ""
-"Select the mouse button to use for panning:\n"
-"- MMB --> Middle Mouse Button\n"
-"- RMB --> Right Mouse Button"
-msgstr ""
-"Wählen Sie die Maustaste aus, die Sie zum Verschieben verwenden möchten:\n"
-"- MMB -> Mittlere Maustaste\n"
-"- RMB -> Rechte Maustaste"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:353
-msgid "MMB"
-msgstr "MMB"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:354
-msgid "RMB"
-msgstr "RMB"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:360
-msgid "Multiple Selection"
-msgstr "Mehrfachauswahl"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:362
-msgid "Select the key used for multiple selection."
-msgstr "Wählen Sie den Schlüssel für die Mehrfachauswahl aus."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:364
-msgid "CTRL"
-msgstr "STRG"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:365
-msgid "SHIFT"
-msgstr "SHIFT"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:376
-msgid "Delete object confirmation"
-msgstr "Objektbestätigung löschen"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:378
-msgid ""
-"When checked the application will ask for user confirmation\n"
-"whenever the Delete object(s) event is triggered, either by\n"
-"menu shortcut or key shortcut."
-msgstr ""
-"Wenn diese Option aktiviert ist, werden Sie von der Anwendung um eine\n"
-"Bestätigung des Benutzers gebeten Jedes Mal, wenn das Ereignis Objekt (e)\n"
-"löschen ausgelöst wird, entweder durch\n"
-"Menüverknüpfung oder Tastenkombination."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:385
-msgid "\"Open\" behavior"
-msgstr "\"Offen\" -Verhalten"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:387
-msgid ""
-"When checked the path for the last saved file is used when saving files,\n"
-"and the path for the last opened file is used when opening files.\n"
-"\n"
-"When unchecked the path for opening files is the one used last: either the\n"
-"path for saving files or the path for opening files."
-msgstr ""
-"Wenn diese Option aktiviert ist, wird beim Speichern der Dateien der Pfad "
-"für die zuletzt gespeicherte Datei verwendet.\n"
-"und der Pfad für die zuletzt geöffnete Datei wird beim Öffnen von Dateien "
-"verwendet.\n"
-"\n"
-"Wenn das Kontrollkästchen deaktiviert ist, wird der Pfad zum Öffnen der "
-"Dateien zuletzt verwendet: entweder der Pfad\n"
-"Pfad zum Speichern von Dateien oder Pfad zum Öffnen von Dateien."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:396
-msgid "Enable ToolTips"
-msgstr "QuickInfos aktivieren"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:398
-msgid ""
-"Check this box if you want to have toolTips displayed\n"
-"when hovering with mouse over items throughout the App."
-msgstr ""
-"Aktivieren Sie dieses Kontrollkästchen, wenn QuickInfos angezeigt werden "
-"sollen\n"
-"wenn Sie mit der Maus über Elemente in der App fahren."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:405
-msgid "Allow Machinist Unsafe Settings"
-msgstr "Unsichere Maschineneinstellungen erlauben"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:407
-msgid ""
-"If checked, some of the application settings will be allowed\n"
-"to have values that are usually unsafe to use.\n"
-"Like Z travel negative values or Z Cut positive values.\n"
-"It will applied at the next application start.\n"
-"<>: Don't change this unless you know what you are doing !!!"
-msgstr ""
-"Wenn gewählt werden Applikationseinstellungen erlaubt,\n"
-"die im normalen Betrieb als unsicher gelten.\n"
-"Zum Beispiel negative Werte für schnelle Z Bewegungen, oder \n"
-"Positive Z-Werte bei schneidvorgängen.\n"
-"Wird beim Nächsten Programmstart wirksam\n"
-" << ACHTUNG>>: Ändern Sie das nicht, wenn Sie nicht wissen was Sie tun!"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:419
-msgid "Bookmarks limit"
-msgstr "Lesezeichenlimit"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:421
-msgid ""
-"The maximum number of bookmarks that may be installed in the menu.\n"
-"The number of bookmarks in the bookmark manager may be greater\n"
-"but the menu will hold only so much."
-msgstr ""
-"Die maximale Anzahl von Lesezeichen, die im Menü installiert werden dürfen.\n"
-"Die Anzahl der Lesezeichen im Lesezeichen-Manager ist möglicherweise größer\n"
-"Aber das Menü wird nur so viel enthalten."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:430
-msgid "Activity Icon"
-msgstr "Aktivitätssymbol"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:432
-msgid "Select the GIF that show activity when FlatCAM is active."
-msgstr ""
-"Wählen Sie das GIF aus, das die Aktivität anzeigt, wenn FlatCAM aktiv ist."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:29
-msgid "App Preferences"
-msgstr "App-Einstellungen"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:40
-msgid ""
-"The default value for FlatCAM units.\n"
-"Whatever is selected here is set every time\n"
-"FlatCAM is started."
-msgstr ""
-"Der Standardwert für FlatCAM-Einheiten.\n"
-"Was hier ausgewählt wird, wird jedes Mal eingestellt\n"
-"FLatCAM wird gestartet."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:44
-msgid "IN"
-msgstr "ZOLL"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:50
-msgid "Precision MM"
-msgstr "Präzision in mm"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:52
-msgid ""
-"The number of decimals used throughout the application\n"
-"when the set units are in METRIC system.\n"
-"Any change here require an application restart."
-msgstr ""
-"Die Anzahl der Nachkommastellen die in der gesamten Applikation verwendet "
-"werden\n"
-"wenn das Metrische Einheitensystem verwendet wird.\n"
-"Jede Änderung erfordert einen Neustart der Applikation."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:64
-msgid "Precision INCH"
-msgstr "Präzision (Zoll)"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:66
-msgid ""
-"The number of decimals used throughout the application\n"
-"when the set units are in INCH system.\n"
-"Any change here require an application restart."
-msgstr ""
-"Die Anzahl der Nachkommastellen die in der gesamten Applikation verwendet "
-"werden\n"
-"wenn das Imperiale (Inches) Einheitensystem verwendet wird.\n"
-"Jede Änderung erfordert einen Neustart der Applikation."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:78
-msgid "Graphic Engine"
-msgstr "Grafik-Engine"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:79
-msgid ""
-"Choose what graphic engine to use in FlatCAM.\n"
-"Legacy(2D) -> reduced functionality, slow performance but enhanced "
-"compatibility.\n"
-"OpenGL(3D) -> full functionality, high performance\n"
-"Some graphic cards are too old and do not work in OpenGL(3D) mode, like:\n"
-"Intel HD3000 or older. In this case the plot area will be black therefore\n"
-"use the Legacy(2D) mode."
-msgstr ""
-"Wählen Sie aus, welche Grafik-Engine in FlatCAM verwendet werden soll.\n"
-"Legacy (2D) -> reduzierte Funktionalität, langsame Leistung, aber "
-"verbesserte Kompatibilität.\n"
-"OpenGL (3D) -> volle Funktionalität, hohe Leistung\n"
-"Einige Grafikkarten sind zu alt und funktionieren nicht im OpenGL (3D) -"
-"Modus. Beispiel:\n"
-"Intel HD3000 oder älter. In diesem Fall ist der Plotbereich daher schwarz\n"
-"Verwenden Sie den Legacy (2D) -Modus."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:85
-msgid "Legacy(2D)"
-msgstr "Legacy (2D)"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:86
-msgid "OpenGL(3D)"
-msgstr "OpenGL (3D)"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:98
-msgid "APP. LEVEL"
-msgstr "Darstellung"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:99
-msgid ""
-"Choose the default level of usage for FlatCAM.\n"
-"BASIC level -> reduced functionality, best for beginner's.\n"
-"ADVANCED level -> full functionality.\n"
-"\n"
-"The choice here will influence the parameters in\n"
-"the Selected Tab for all kinds of FlatCAM objects."
-msgstr ""
-"Wählen Sie die Standardbenutzungsstufe für FlatCAM.\n"
-"BASIC-Level -> reduzierte Funktionalität, am besten für Anfänger.\n"
-"ERWEITERTE Stufe -> volle Funktionalität.\n"
-"\n"
-"Die Auswahl hier beeinflusst die Parameter in\n"
-"Die Registerkarte Ausgewählt für alle Arten von FlatCAM-Objekten."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:105
-#: flatcamObjects/FlatCAMExcellon.py:627 flatcamObjects/FlatCAMGeometry.py:531
-#: flatcamObjects/FlatCAMGerber.py:278
-msgid "Advanced"
-msgstr "Erweitert"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:111
-msgid "Portable app"
-msgstr "Portable Anwendung"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:112
-msgid ""
-"Choose if the application should run as portable.\n"
-"\n"
-"If Checked the application will run portable,\n"
-"which means that the preferences files will be saved\n"
-"in the application folder, in the lib\\config subfolder."
-msgstr ""
-"Wählen Sie aus, ob die Anwendung als portabel ausgeführt werden soll.\n"
-"\n"
-"Wenn diese Option aktiviert ist, wird die Anwendung portabel ausgeführt.\n"
-"Dies bedeutet, dass die Voreinstellungsdateien gespeichert werden\n"
-"Im Anwendungsordner, im Unterordner lib \\ config."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:125
-msgid "Languages"
-msgstr "Sprachen"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:126
-msgid "Set the language used throughout FlatCAM."
-msgstr "Stellen Sie die Sprache ein, die in FlatCAM verwendet wird."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:132
-msgid "Apply Language"
-msgstr "Sprache anwend"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:133
-msgid ""
-"Set the language used throughout FlatCAM.\n"
-"The app will restart after click."
-msgstr ""
-"Stellen Sie die in FlatCAM verwendete Sprache ein.\n"
-"Die App wird nach dem Klicken neu gestartet."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:147
-msgid "Startup Settings"
-msgstr "Starteinstellungen"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:151
-msgid "Splash Screen"
-msgstr "Begrüßungsbildschirm"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:153
-msgid "Enable display of the splash screen at application startup."
-msgstr ""
-"Aktivieren Sie die Anzeige des Begrüßungsbildschirms beim Start der "
-"Anwendung."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:165
-msgid "Sys Tray Icon"
-msgstr "Systray-Symbol"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:167
-msgid "Enable display of FlatCAM icon in Sys Tray."
-msgstr "Anzeige des FlatCAM-Symbols in Systray aktivieren."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:172
-msgid "Show Shell"
-msgstr "Shell anzeigen"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:174
-msgid ""
-"Check this box if you want the shell to\n"
-"start automatically at startup."
-msgstr ""
-"Aktivieren Sie dieses Kontrollkästchen, wenn Sie die Shell verwenden "
-"möchten\n"
-"Beim Start automatisch starten."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:181
-msgid "Show Project"
-msgstr "Projekt anzeigen"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:183
-msgid ""
-"Check this box if you want the project/selected/tool tab area to\n"
-"to be shown automatically at startup."
-msgstr ""
-"Aktivieren Sie dieses Kontrollkästchen, wenn der\n"
-"Bereich Projekt / Ausgewähltes / Werkzeugregister\n"
-"angezeigt werden soll\n"
-"beim Start automatisch angezeigt werden."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:189
-msgid "Version Check"
-msgstr "Versionsprüfung"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:191
-msgid ""
-"Check this box if you want to check\n"
-"for a new version automatically at startup."
-msgstr ""
-"Aktivieren Sie dieses Kontrollkästchen,\n"
-"wenn Sie das Kontrollkästchen aktivieren möchten\n"
-"für eine neue Version automatisch beim Start."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:198
-msgid "Send Statistics"
-msgstr "Statistiken senden"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:200
-msgid ""
-"Check this box if you agree to send anonymous\n"
-"stats automatically at startup, to help improve FlatCAM."
-msgstr ""
-"Aktivieren Sie dieses Kontrollkästchen, wenn Sie der anonymen Nachricht "
-"zustimmen\n"
-"wird beim Start automatisch aktualisiert, um FlatCAM zu verbessern."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:214
-msgid "Workers number"
-msgstr "Thread Anzahl"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:216
-msgid ""
-"The number of Qthreads made available to the App.\n"
-"A bigger number may finish the jobs more quickly but\n"
-"depending on your computer speed, may make the App\n"
-"unresponsive. Can have a value between 2 and 16.\n"
-"Default value is 2.\n"
-"After change, it will be applied at next App start."
-msgstr ""
-"Die Anzahl der für die App verfügbaren Qthreads.\n"
-"Eine größere Anzahl kann die Jobs, \n"
-"anhängig von der Geschwindigkeit Ihres Computers, schneller ausführen.\n"
-"Kann einen Wert zwischen 2 und 16 haben.\n"
-"Der Standardwert ist 2.\n"
-"Nach dem Ändern wird es beim nächsten Start der App angewendet."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:230
-msgid "Geo Tolerance"
-msgstr "Geo-Toleranz"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:232
-msgid ""
-"This value can counter the effect of the Circle Steps\n"
-"parameter. Default value is 0.005.\n"
-"A lower value will increase the detail both in image\n"
-"and in Gcode for the circles, with a higher cost in\n"
-"performance. Higher value will provide more\n"
-"performance at the expense of level of detail."
-msgstr ""
-"This value can counter the effect of the Circle Steps\n"
-"parameter. Default value is 0.005.\n"
-"A lower value will increase the detail both in image\n"
-"and in Gcode for the circles, with a higher cost in\n"
-"performance. Higher value will provide more\n"
-"performance at the expense of level of detail."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:252
-msgid "Save Settings"
-msgstr "Einstellungen speichern"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:256
-msgid "Save Compressed Project"
-msgstr "Speichern Sie das komprimierte Projekt"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:258
-msgid ""
-"Whether to save a compressed or uncompressed project.\n"
-"When checked it will save a compressed FlatCAM project."
-msgstr ""
-"Gibt an, ob ein komprimiertes oder unkomprimiertes Projekt gespeichert "
-"werden soll.\n"
-"Wenn diese Option aktiviert ist, wird ein komprimiertes FlatCAM-Projekt "
-"gespeichert."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:267
-msgid "Compression"
-msgstr "Kompression"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:269
-msgid ""
-"The level of compression used when saving\n"
-"a FlatCAM project. Higher value means better compression\n"
-"but require more RAM usage and more processing time."
-msgstr ""
-"Die beim Speichern verwendete Komprimierungsstufe\n"
-"ein FlatCAM-Projekt. Ein höherer Wert bedeutet eine bessere Komprimierung\n"
-"erfordern jedoch mehr RAM-Auslastung und mehr Verarbeitungszeit."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:280
-msgid "Enable Auto Save"
-msgstr "Aktiv. Sie die auto Speicherung"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:282
-msgid ""
-"Check to enable the autosave feature.\n"
-"When enabled, the application will try to save a project\n"
-"at the set interval."
-msgstr ""
-"Aktivieren Sie diese Option, um die automatische Speicherfunktion zu "
-"aktivieren.\n"
-"Wenn diese Option aktiviert ist, versucht die Anwendung, ein Projekt zu "
-"speichern\n"
-"im eingestellten Intervall."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:292
-msgid "Interval"
-msgstr "Intervall"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:294
-msgid ""
-"Time interval for autosaving. In milliseconds.\n"
-"The application will try to save periodically but only\n"
-"if the project was saved manually at least once.\n"
-"While active, some operations may block this feature."
-msgstr ""
-"Zeitintervall für die automatische Speicherung. In Millisekunden.\n"
-"Die Anwendung versucht regelmäßig, aber nur zu speichern\n"
-"wenn das Projekt mindestens einmal manuell gespeichert wurde.\n"
-"Während der Aktivierung können einige Vorgänge diese Funktion blockieren."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:310
-msgid "Text to PDF parameters"
-msgstr "Text zu PDF-Parametern"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:312
-msgid "Used when saving text in Code Editor or in FlatCAM Document objects."
-msgstr ""
-"Wird beim Speichern von Text im Code-Editor oder in FlatCAM-Dokumentobjekten "
-"verwendet."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:321
-msgid "Top Margin"
-msgstr "Oberer Rand"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:323
-msgid "Distance between text body and the top of the PDF file."
-msgstr "Abstand zwischen Textkörper und dem oberen Rand der PDF-Datei."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:334
-msgid "Bottom Margin"
-msgstr "Unterer Rand"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:336
-msgid "Distance between text body and the bottom of the PDF file."
-msgstr "Abstand zwischen Textkörper und dem unteren Rand der PDF-Datei."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:347
-msgid "Left Margin"
-msgstr "Linker Rand"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:349
-msgid "Distance between text body and the left of the PDF file."
-msgstr "Abstand zwischen Textkörper und der linken Seite der PDF-Datei."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:360
-msgid "Right Margin"
-msgstr "Rechter Rand"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:362
-msgid "Distance between text body and the right of the PDF file."
-msgstr "Abstand zwischen Textkörper und der rechten Seite der PDF-Datei."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:26
-msgid "GUI Preferences"
-msgstr "GUI-Einstellungen"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:36
-msgid "Theme"
-msgstr "Thema"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:38
-msgid ""
-"Select a theme for FlatCAM.\n"
-"It will theme the plot area."
-msgstr ""
-"Wählen Sie ein Thema für FlatCAM.\n"
-"Es wird den Handlungsbereich thematisieren."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:43
-msgid "Light"
-msgstr "Licht"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:44
-msgid "Dark"
-msgstr "Dunkel"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:51
-msgid "Use Gray Icons"
-msgstr "Verwenden Sie graue Symbole"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:53
-msgid ""
-"Check this box to use a set of icons with\n"
-"a lighter (gray) color. To be used when a\n"
-"full dark theme is applied."
-msgstr ""
-"Aktivieren Sie dieses Kontrollkästchen, um eine Reihe von Symbolen mit zu "
-"verwenden\n"
-"eine hellere (graue) Farbe. Zu verwenden, wenn a\n"
-"Volldunkles Thema wird angewendet."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:59
-msgid "Apply Theme"
-msgstr "Thema anwenden"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:61
-msgid ""
-"Select a theme for FlatCAM.\n"
-"It will theme the plot area.\n"
-"The application will restart after change."
-msgstr ""
-"Wählen Sie ein Thema für FlatCAM.\n"
-"Es wird den Handlungsbereich thematisieren.\n"
-"Die Anwendung wird nach der Änderung neu gestartet."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:73
-msgid "Layout"
-msgstr "Layout"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:75
-msgid ""
-"Select an layout for FlatCAM.\n"
-"It is applied immediately."
-msgstr ""
-"Wählen Sie ein Layout für FlatCAM.\n"
-"Es wird sofort angewendet."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:95
-msgid "Style"
-msgstr "Stil"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:97
-msgid ""
-"Select an style for FlatCAM.\n"
-"It will be applied at the next app start."
-msgstr ""
-"Wählen Sie einen Stil für FlatCAM.\n"
-"Es wird beim nächsten Start der App angewendet."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:111
-msgid "Activate HDPI Support"
-msgstr "Aktivieren Sie die HDPI-Unterstützung"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:113
-msgid ""
-"Enable High DPI support for FlatCAM.\n"
-"It will be applied at the next app start."
-msgstr ""
-"Aktivieren Sie die High DPI-Unterstützung für FlatCAM.\n"
-"Es wird beim nächsten Start der App angewendet."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:127
-msgid "Display Hover Shape"
-msgstr "Schwebeflugform anzeigen"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:129
-msgid ""
-"Enable display of a hover shape for FlatCAM objects.\n"
-"It is displayed whenever the mouse cursor is hovering\n"
-"over any kind of not-selected object."
-msgstr ""
-"Anzeige der Hover-Form für FlatCAM-Objekte aktivieren.\n"
-"Es wird angezeigt, wenn sich der Mauszeiger in der Maus befindet\n"
-"über jede Art von nicht ausgewähltem Objekt."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:136
-msgid "Display Selection Shape"
-msgstr "Auswahlform anzeigen"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:138
-msgid ""
-"Enable the display of a selection shape for FlatCAM objects.\n"
-"It is displayed whenever the mouse selects an object\n"
-"either by clicking or dragging mouse from left to right or\n"
-"right to left."
-msgstr ""
-"Aktivieren Sie die Anzeige einer Auswahlform für FlatCAM-Objekte.\n"
-"Es wird angezeigt, wenn die Maus ein Objekt auswählt\n"
-"entweder durch Klicken oder Ziehen der Maus von links nach rechts oder\n"
-"rechts nach links."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:151
-msgid "Left-Right Selection Color"
-msgstr "Links-Rechts-Auswahlfarbe"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:156
-msgid "Set the line color for the 'left to right' selection box."
-msgstr ""
-"Legen Sie die Linienfarbe für das Auswahlfeld \"von links nach rechts\" fest."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:172
-msgid ""
-"Set the fill color for the selection box\n"
-"in case that the selection is done from left to right.\n"
-"First 6 digits are the color and the last 2\n"
-"digits are for alpha (transparency) level."
-msgstr ""
-"Legen Sie die Füllfarbe für das Auswahlfeld fest\n"
-"falls die Auswahl von links nach rechts erfolgt.\n"
-"Die ersten 6 Ziffern sind die Farbe und die letzten 2\n"
-"Ziffern sind für Alpha (Transparenz)."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:192
-msgid "Set the fill transparency for the 'left to right' selection box."
-msgstr ""
-"Legen Sie die Füllungstransparenz für das Auswahlfeld \"von links nach rechts"
-"\" fest."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:216
-msgid "Right-Left Selection Color"
-msgstr "Rechts-Links-Auswahlfarbe"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:222
-msgid "Set the line color for the 'right to left' selection box."
-msgstr ""
-"Legen Sie die Linienfarbe für das Auswahlfeld 'von rechts nach links' fest."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:239
-msgid ""
-"Set the fill color for the selection box\n"
-"in case that the selection is done from right to left.\n"
-"First 6 digits are the color and the last 2\n"
-"digits are for alpha (transparency) level."
-msgstr ""
-"Legen Sie die Füllfarbe für das Auswahlfeld fest\n"
-"falls die Auswahl von rechts nach links erfolgt.\n"
-"Die ersten 6 Ziffern sind die Farbe und die letzten 2\n"
-"Ziffern sind für Alpha (Transparenz)."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:259
-msgid "Set the fill transparency for selection 'right to left' box."
-msgstr ""
-"Legen Sie die Füllungstransparenz für die Auswahl von rechts nach links fest."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:286
-msgid "Editor Color"
-msgstr "Editorfarbe"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:290
-msgid "Drawing"
-msgstr "Zeichnung"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:292
-msgid "Set the color for the shape."
-msgstr "Legen Sie die Farbe für die Form fest."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:309
-msgid "Set the color of the shape when selected."
-msgstr "Legt die Farbe der Form fest, wenn sie ausgewählt wird."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:332
-msgid "Project Items Color"
-msgstr "Projektelemente Farbe"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:336
-msgid "Enabled"
-msgstr "Aktiviert"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:338
-msgid "Set the color of the items in Project Tab Tree."
-msgstr "Legen Sie die Farbe der Elemente im Projektregisterbaum fest."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:352
-msgid "Disabled"
-msgstr "Deaktiviert"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:354
-msgid ""
-"Set the color of the items in Project Tab Tree,\n"
-"for the case when the items are disabled."
-msgstr ""
-"Legen Sie die Farbe der Elemente in der Projektregisterkarte fest.\n"
-"für den Fall, wenn die Elemente deaktiviert sind."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:370
-msgid "Project AutoHide"
-msgstr "Projekt autoausblenden"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:372
-msgid ""
-"Check this box if you want the project/selected/tool tab area to\n"
-"hide automatically when there are no objects loaded and\n"
-"to show whenever a new object is created."
-msgstr ""
-"Aktivieren Sie dieses Kontrollkästchen, wenn \n"
-"der Bereich Projekt / Ausgewähltes / Werkzeugregister \n"
-"angezeigt werden soll automatisch ausblenden, wenn \n"
-"keine Objekte geladen sind und anzeigen, wenn ein \n"
-"neues Objekt erstellt wird."
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:27
-msgid "Geometry Adv. Options"
-msgstr "Geometrie Erw. Optionen"
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:35
-msgid ""
-"A list of Geometry advanced parameters.\n"
-"Those parameters are available only for\n"
-"Advanced App. Level."
-msgstr ""
-"Eine Liste der erweiterten Geometrieparameter.\n"
-"Diese Parameter sind nur für verfügbar\n"
-"Erweiterte App. Niveau."
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:45
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:112
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:134
-#: flatcamTools/ToolCalibration.py:125 flatcamTools/ToolSolderPaste.py:240
-msgid "Toolchange X-Y"
-msgstr "Werkzeugwechsel X, Y"
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:56
-msgid ""
-"Height of the tool just after starting the work.\n"
-"Delete the value if you don't need this feature."
-msgstr ""
-"Höhe des Werkzeugs unmittelbar nach Beginn der Arbeit.\n"
-"Löschen Sie den Wert, wenn Sie diese Funktion nicht benötigen."
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:158
-msgid "Segment X size"
-msgstr "Segment X Größe"
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:160
-msgid ""
-"The size of the trace segment on the X axis.\n"
-"Useful for auto-leveling.\n"
-"A value of 0 means no segmentation on the X axis."
-msgstr ""
-"Die Größe des Trace-Segments auf der X-Achse.\n"
-"Nützlich für die automatische Nivellierung.\n"
-"Ein Wert von 0 bedeutet keine Segmentierung auf der X-Achse."
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:174
-msgid "Segment Y size"
-msgstr "Segment Y Größe"
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:176
-msgid ""
-"The size of the trace segment on the Y axis.\n"
-"Useful for auto-leveling.\n"
-"A value of 0 means no segmentation on the Y axis."
-msgstr ""
-"Die Größe des Trace-Segments auf der Y-Achse.\n"
-"Nützlich für die automatische Nivellierung.\n"
-"Ein Wert von 0 bedeutet keine Segmentierung auf der Y-Achse."
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:192
-msgid "Area Exclusion"
-msgstr "Gebietsausschluss"
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:194
-msgid ""
-"Area exclusion parameters.\n"
-"Those parameters are available only for\n"
-"Advanced App. Level."
-msgstr ""
-"Bereichsausschlussparameter.\n"
-"Diese Parameter sind nur für verfügbar\n"
-"Erweiterte App. Niveau."
-
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:33
-msgid "A list of Geometry Editor parameters."
-msgstr "Eine Liste der Geometry Editor-Parameter."
-
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:43
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:196
-msgid ""
-"Set the number of selected geometry\n"
-"items above which the utility geometry\n"
-"becomes just a selection rectangle.\n"
-"Increases the performance when moving a\n"
-"large number of geometric elements."
-msgstr ""
-"Legen Sie die Anzahl der ausgewählten Geometrien fest\n"
-"Elemente, über denen die Nutzgeometrie\n"
-"wird nur ein Auswahlrechteck.\n"
-"Erhöht die Leistung beim Bewegen von a\n"
-"große Anzahl von geometrischen Elementen."
-
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:27
-msgid "Geometry General"
-msgstr "Geometrie Allgemein"
-
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:49
-msgid ""
-"The number of circle steps for Geometry \n"
-"circle and arc shapes linear approximation."
-msgstr ""
-"Die Anzahl der Kreisschritte für die Geometrie\n"
-"Kreis- und Bogenformen lineare Annäherung."
-
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:63
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:41
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:48
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:42
-msgid "Tools Dia"
-msgstr "Werkzeugdurchmesser"
-
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:65
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:108
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:43
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:50
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:44
-msgid ""
-"Diameters of the tools, separated by comma.\n"
-"The value of the diameter has to use the dot decimals separator.\n"
-"Valid values: 0.3, 1.0"
-msgstr ""
-"Durchmesser der Werkzeuge, durch Komma getrennt.\n"
-"Der Wert des Durchmessers muss das Punkt-Dezimal-Trennzeichen verwenden.\n"
-"Gültige Werte: 0.3, 1.0"
-
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:80
-msgid "Geometry Object Color"
-msgstr "Geometrieobjekt Farbe"
-
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:28
-msgid "Geometry Options"
-msgstr "Geometrieoptionen"
-
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:36
-msgid ""
-"Create a CNC Job object\n"
-"tracing the contours of this\n"
-"Geometry object."
-msgstr ""
-"Erstellen Sie ein CNC-Auftragsobjekt\n"
-"die Konturen davon nachzeichnen\n"
-"Geometrieobjekt."
-
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:80
-msgid "Depth/Pass"
-msgstr "Tiefe / Pass"
-
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:82
-msgid ""
-"The depth to cut on each pass,\n"
-"when multidepth is enabled.\n"
-"It has positive value although\n"
-"it is a fraction from the depth\n"
-"which has negative value."
-msgstr ""
-"Die Tiefe, die bei jedem Durchlauf geschnitten werden muss,\n"
-"Wenn Mehrere Tiefe aktiviert ist.\n"
-"Es hat zwar einen positiven Wert\n"
-"es ist ein Bruch aus der Tiefe\n"
-"was einen negativen Wert hat."
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:27
-msgid "Gerber Adv. Options"
-msgstr "Erweiterte Optionen von Gerber"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:33
-msgid ""
-"A list of Gerber advanced parameters.\n"
-"Those parameters are available only for\n"
-"Advanced App. Level."
-msgstr ""
-"Eine Liste der erweiterten Gerber-Parameter.\n"
-"Diese Parameter sind nur für verfügbar\n"
-"Fortgeschrittene Anwendungsebene."
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:52
-msgid "Table Show/Hide"
-msgstr "Tabelle anzeigen / ausblenden"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:54
-msgid ""
-"Toggle the display of the Gerber Apertures Table.\n"
-"Also, on hide, it will delete all mark shapes\n"
-"that are drawn on canvas."
-msgstr ""
-"Anzeige der Gerber-Blendentabelle umschalten.\n"
-"Beim Ausblenden werden auch alle Markierungsformen gelöscht\n"
-"das sind auf leinwand gezeichnet."
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:134
-msgid "Exterior"
-msgstr "Äußeres"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:135
-msgid "Interior"
-msgstr "Inneres"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:148
-msgid ""
-"Buffering type:\n"
-"- None --> best performance, fast file loading but no so good display\n"
-"- Full --> slow file loading but good visuals. This is the default.\n"
-"<>: Don't change this unless you know what you are doing !!!"
-msgstr ""
-"Puffertyp:\n"
-"- Keine -> beste Leistung, schnelles Laden von Dateien, aber keine so gute "
-"Anzeige\n"
-"- Voll -> langsames Laden von Dateien, aber gute Grafik. Dies ist die "
-"Standardeinstellung.\n"
-"<< WARNUNG >>: Ändern Sie dies nur, wenn Sie wissen, was Sie tun !!!"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:153
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:207
-#: flatcamTools/ToolFiducials.py:201 flatcamTools/ToolFilm.py:255
-#: flatcamTools/ToolProperties.py:452 flatcamTools/ToolProperties.py:455
-#: flatcamTools/ToolProperties.py:458 flatcamTools/ToolProperties.py:483
-msgid "None"
-msgstr "Keiner"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:159
-msgid "Simplify"
-msgstr "Vereinfachen"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:161
-msgid ""
-"When checked all the Gerber polygons will be\n"
-"loaded with simplification having a set tolerance.\n"
-"<>: Don't change this unless you know what you are doing !!!"
-msgstr ""
-"Wenn diese Option aktiviert ist, werden alle Gerber-Polygone angezeigt\n"
-"geladen mit Vereinfachung mit einer festgelegten Toleranz.\n"
-"<< WARNUNG >>: Ändern Sie dies nur, wenn Sie wissen, was Sie tun !!!"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:168
-msgid "Tolerance"
-msgstr "Toleranz"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:169
-msgid "Tolerance for polygon simplification."
-msgstr "Toleranz für Polygonvereinfachung."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:33
-msgid "A list of Gerber Editor parameters."
-msgstr "Eine Liste der Gerber-Editor-Parameter."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:43
-msgid ""
-"Set the number of selected Gerber geometry\n"
-"items above which the utility geometry\n"
-"becomes just a selection rectangle.\n"
-"Increases the performance when moving a\n"
-"large number of geometric elements."
-msgstr ""
-"Stellen Sie die Anzahl der ausgewählten Gerber-Geometrie ein\n"
-"Elemente, über denen die Nutzgeometrie\n"
-"wird nur ein Auswahlrechteck.\n"
-"Erhöht die Leistung beim Bewegen von a\n"
-"große Anzahl von geometrischen Elementen."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:56
-msgid "New Aperture code"
-msgstr "Neuer Blendencode"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:69
-msgid "New Aperture size"
-msgstr "Standard Blendenöffnung"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:71
-msgid "Size for the new aperture"
-msgstr "Wert für die neue Blende"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:82
-msgid "New Aperture type"
-msgstr "Neuer Blendentyp"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:84
-msgid ""
-"Type for the new aperture.\n"
-"Can be 'C', 'R' or 'O'."
-msgstr ""
-"Geben Sie für die neue Blende ein.\n"
-"Kann \"C\", \"R\" oder \"O\" sein."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:106
-msgid "Aperture Dimensions"
-msgstr "Öffnungsmaße"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:116
-msgid "Linear Pad Array"
-msgstr "Lineares Pad-Array"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:160
-msgid "Circular Pad Array"
-msgstr "Kreisschlitz-Array"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:196
-msgid "Distance at which to buffer the Gerber element."
-msgstr "Abstand, in dem das Gerber-Element gepuffert werden soll."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:205
-msgid "Scale Tool"
-msgstr "Skalierungswerk"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:211
-msgid "Factor to scale the Gerber element."
-msgstr "Faktor zum Skalieren des Gerber-Elements."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:224
-msgid "Threshold low"
-msgstr "Schwelle niedrig"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:226
-msgid "Threshold value under which the apertures are not marked."
-msgstr "Schwellenwert, unter dem die Blenden nicht markiert sind."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:236
-msgid "Threshold high"
-msgstr "Schwelle hoch"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:238
-msgid "Threshold value over which the apertures are not marked."
-msgstr "Schwellenwert, über dem die Blenden nicht markiert sind."
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:27
-msgid "Gerber Export"
-msgstr "Gerber Export"
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:33
-msgid ""
-"The parameters set here are used in the file exported\n"
-"when using the File -> Export -> Export Gerber menu entry."
-msgstr ""
-"Die hier eingestellten Parameter werden in der exportierten Datei verwendet\n"
-"bei Verwendung des Menüeintrags Datei -> Exportieren -> Gerber exportieren."
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:44
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:50
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:84
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:90
-msgid "The units used in the Gerber file."
-msgstr "Die in der Gerber-Datei verwendeten Einheiten."
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:58
-msgid ""
-"The number of digits in the whole part of the number\n"
-"and in the fractional part of the number."
-msgstr ""
-"Die Anzahl der Ziffern im gesamten Teil der Nummer\n"
-"und im Bruchteil der Zahl."
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:71
-msgid ""
-"This numbers signify the number of digits in\n"
-"the whole part of Gerber coordinates."
-msgstr ""
-"Diese Zahlen geben die Anzahl der Ziffern in an\n"
-"der ganze Teil von Gerber koordiniert."
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:87
-msgid ""
-"This numbers signify the number of digits in\n"
-"the decimal part of Gerber coordinates."
-msgstr ""
-"Diese Zahlen geben die Anzahl der Ziffern in an\n"
-"Der Dezimalteil der Gerber-Koordinaten."
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:99
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:109
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:100
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:110
-msgid ""
-"This sets the type of Gerber zeros.\n"
-"If LZ then Leading Zeros are removed and\n"
-"Trailing Zeros are kept.\n"
-"If TZ is checked then Trailing Zeros are removed\n"
-"and Leading Zeros are kept."
-msgstr ""
-"Dies legt den Typ der Gerber-Nullen fest.\n"
-"Wenn LZ, werden Leading Zeros und entfernt\n"
-"Nachgestellte Nullen werden beibehalten.\n"
-"Wenn TZ aktiviert ist, werden nachfolgende Nullen entfernt\n"
-"und führende Nullen werden beibehalten."
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:27
-msgid "Gerber General"
-msgstr "Geometrie Allgemein"
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:45
-msgid "M-Color"
-msgstr "M-farbig"
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:61
-msgid ""
-"The number of circle steps for Gerber \n"
-"circular aperture linear approximation."
-msgstr ""
-"Die Anzahl der Kreisschritte für Gerber\n"
-"lineare Approximation mit kreisförmiger Apertur."
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:73
-msgid "Default Values"
-msgstr "Standardwerte"
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:75
-msgid ""
-"Those values will be used as fallback values\n"
-"in case that they are not found in the Gerber file."
-msgstr ""
-"Diese Werte werden als Ersatzwerte verwendet\n"
-"für den Fall, dass sie nicht in der Gerber-Datei gefunden werden."
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:126
-msgid "Clean Apertures"
-msgstr "Reinigen Sie die Öffnungen"
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:128
-msgid ""
-"Will remove apertures that do not have geometry\n"
-"thus lowering the number of apertures in the Gerber object."
-msgstr ""
-"Entfernt Öffnungen ohne Geometrie\n"
-"Dadurch wird die Anzahl der Öffnungen im Gerber-Objekt verringert."
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:134
-msgid "Polarity change buffer"
-msgstr "Polaritätswechselpuffer"
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:136
-msgid ""
-"Will apply extra buffering for the\n"
-"solid geometry when we have polarity changes.\n"
-"May help loading Gerber files that otherwise\n"
-"do not load correctly."
-msgstr ""
-"Wendet zusätzliche Pufferung für das an\n"
-"Festkörpergeometrie, wenn sich die Polarität ändert.\n"
-"Kann helfen, Gerber-Dateien zu laden, die sonst\n"
-"nicht richtig laden."
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:149
-msgid "Gerber Object Color"
-msgstr "Gerber-Objektfarbe"
-
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:29
-msgid "Gerber Options"
-msgstr "Gerber-Optionen"
-
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:107
-msgid "Combine Passes"
-msgstr "Kombinieren Sie Pässe"
-
-# Don´t know Copper Thieving
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:27
-msgid "Copper Thieving Tool Options"
-msgstr "Copper Thieving Tool Optionen"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:39
-msgid ""
-"A tool to generate a Copper Thieving that can be added\n"
-"to a selected Gerber file."
-msgstr ""
-"Ein Werkzeug um Copper Thieving durchzuführen, das auf\n"
-"ein ausgewähltes Gerber File angewendet werden kann."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:47
-msgid "Number of steps (lines) used to interpolate circles."
-msgstr "Anzahl der Schritte (Linien) um Kreise zu interpolieren."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261
-#: flatcamTools/ToolCopperThieving.py:96 flatcamTools/ToolCopperThieving.py:431
-msgid "Clearance"
-msgstr "Freistellung"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:59
-msgid ""
-"This set the distance between the copper Thieving components\n"
-"(the polygon fill may be split in multiple polygons)\n"
-"and the copper traces in the Gerber file."
-msgstr ""
-"Diese Auswahl definiert den Abstand zwischen den \"Copper Thieving\" "
-"Komponenten.\n"
-"und den Kupferverbindungen im Gerber File (möglicherweise wird hierbei ein "
-"Polygon\n"
-"in mehrere aufgeteilt."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
-#: flatcamTools/ToolCopperThieving.py:126 flatcamTools/ToolNCC.py:535
-#: flatcamTools/ToolNCC.py:1316 flatcamTools/ToolNCC.py:1647
-#: flatcamTools/ToolNCC.py:1935 flatcamTools/ToolNCC.py:1990
-#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:946
-#: flatcamTools/ToolPaint.py:1452
-msgid "Area Selection"
-msgstr "Bereichsauswahl"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
-#: flatcamTools/ToolCopperThieving.py:127 flatcamTools/ToolDblSided.py:216
-#: flatcamTools/ToolNCC.py:535 flatcamTools/ToolNCC.py:1663
-#: flatcamTools/ToolNCC.py:1941 flatcamTools/ToolNCC.py:1998
-#: flatcamTools/ToolNCC.py:2306 flatcamTools/ToolNCC.py:2586
-#: flatcamTools/ToolNCC.py:3012 flatcamTools/ToolPaint.py:486
-#: flatcamTools/ToolPaint.py:931 flatcamTools/ToolPaint.py:1468
-#: tclCommands/TclCommandCopperClear.py:192 tclCommands/TclCommandPaint.py:166
-msgid "Reference Object"
-msgstr "Ref. Objekt"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90
-#: flatcamTools/ToolCopperThieving.py:129
-msgid "Reference:"
-msgstr "Referenz:"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92
-msgid ""
-"- 'Itself' - the copper Thieving extent is based on the object extent.\n"
-"- 'Area Selection' - left mouse click to start selection of the area to be "
-"filled.\n"
-"- 'Reference Object' - will do copper thieving within the area specified by "
-"another object."
-msgstr ""
-"- 'Selbst' - die 'Copper Thieving' basiert auf der Objektausdehnung.\n"
-"- 'Bereichsauswahl' - Klicken Sie mit der linken Maustaste, um den zu "
-"füllenden Bereich auszuwählen.\n"
-"- 'Referenzobjekt' - 'Copper Thieving' innerhalb des von einem anderen "
-"Objekt angegebenen Bereichs."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:76
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190
-#: flatcamTools/ToolCopperThieving.py:171 flatcamTools/ToolExtractDrills.py:102
-#: flatcamTools/ToolExtractDrills.py:240 flatcamTools/ToolPunchGerber.py:113
-#: flatcamTools/ToolPunchGerber.py:268
-msgid "Rectangular"
-msgstr "Rechteckig"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102
-#: flatcamTools/ToolCopperThieving.py:172
-msgid "Minimal"
-msgstr "Minimal"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104
-#: flatcamTools/ToolCopperThieving.py:174 flatcamTools/ToolFilm.py:113
-msgid "Box Type:"
-msgstr "Box-Typ:"
-
-# Double
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106
-#: flatcamTools/ToolCopperThieving.py:176
-msgid ""
-"- 'Rectangular' - the bounding box will be of rectangular shape.\n"
-"- 'Minimal' - the bounding box will be the convex hull shape."
-msgstr ""
-"- 'Rechteckig' - Der Begrenzungsrahmen hat eine rechteckige Form.\n"
-"- 'Minimal' - Der Begrenzungsrahmen ist die konvexe Rumpfform."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120
-#: flatcamTools/ToolCopperThieving.py:192
-msgid "Dots Grid"
-msgstr "Punktmuster"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121
-#: flatcamTools/ToolCopperThieving.py:193
-msgid "Squares Grid"
-msgstr "Quadratraster"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122
-#: flatcamTools/ToolCopperThieving.py:194
-msgid "Lines Grid"
-msgstr "Linienraster"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124
-#: flatcamTools/ToolCopperThieving.py:196
-msgid "Fill Type:"
-msgstr "Füllart:"
-
-# Double
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126
-#: flatcamTools/ToolCopperThieving.py:198
-msgid ""
-"- 'Solid' - copper thieving will be a solid polygon.\n"
-"- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n"
-"- 'Squares Grid' - the empty area will be filled with a pattern of squares.\n"
-"- 'Lines Grid' - the empty area will be filled with a pattern of lines."
-msgstr ""
-"- 'Solide' - 'Copper Thieving' wird ein solides Polygon sein.\n"
-"- 'Punktraster' - Der leere Bereich wird mit einem Punktmuster gefüllt.\n"
-"- 'Quadratraster ' - Der leere Bereich wird mit einem Quadratmuster "
-"gefüllt.\n"
-"- 'Linienraster' - Der leere Bereich wird mit einem Linienmuster gefüllt."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134
-#: flatcamTools/ToolCopperThieving.py:217
-msgid "Dots Grid Parameters"
-msgstr "Punktmuster Parameter"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140
-#: flatcamTools/ToolCopperThieving.py:223
-msgid "Dot diameter in Dots Grid."
-msgstr "Punktdurchmesser im Punktmuster."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209
-#: flatcamTools/ToolCopperThieving.py:234
-#: flatcamTools/ToolCopperThieving.py:274
-#: flatcamTools/ToolCopperThieving.py:314
-msgid "Spacing"
-msgstr "Abstand"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153
-#: flatcamTools/ToolCopperThieving.py:236
-msgid "Distance between each two dots in Dots Grid."
-msgstr "Abstand zwischen zwei Punkten im Punktmuster."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163
-#: flatcamTools/ToolCopperThieving.py:257
-msgid "Squares Grid Parameters"
-msgstr "Quadratraster Parameter"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169
-#: flatcamTools/ToolCopperThieving.py:263
-msgid "Square side size in Squares Grid."
-msgstr "Quadratlängen im Quadratraster."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182
-#: flatcamTools/ToolCopperThieving.py:276
-msgid "Distance between each two squares in Squares Grid."
-msgstr "Abstand zwischen zwei Quadraten im Quadratraster."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192
-#: flatcamTools/ToolCopperThieving.py:297
-msgid "Lines Grid Parameters"
-msgstr "Schraffurparameter"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198
-#: flatcamTools/ToolCopperThieving.py:303
-msgid "Line thickness size in Lines Grid."
-msgstr "Liniendicke."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211
-#: flatcamTools/ToolCopperThieving.py:316
-msgid "Distance between each two lines in Lines Grid."
-msgstr "Linienabstand."
-
-# What is a Robber Bar?
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221
-#: flatcamTools/ToolCopperThieving.py:354
-msgid "Robber Bar Parameters"
-msgstr "Robber Bar-Parameter"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223
-#: flatcamTools/ToolCopperThieving.py:356
-msgid ""
-"Parameters used for the robber bar.\n"
-"Robber bar = copper border to help in pattern hole plating."
-msgstr ""
-"Parameter für die Robber Bar\n"
-"Eine Robber Bar ist ein Kupferrand bei Lochmustern."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231
-#: flatcamTools/ToolCopperThieving.py:364
-msgid "Bounding box margin for robber bar."
-msgstr "Begrenzungsrahmenrand der Robber Bar."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242
-#: flatcamTools/ToolCopperThieving.py:375
-msgid "Thickness"
-msgstr "Dicke"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244
-#: flatcamTools/ToolCopperThieving.py:377
-msgid "The robber bar thickness."
-msgstr "Dicke der Robber Bar."
-
-# What is pattern plating?
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254
-#: flatcamTools/ToolCopperThieving.py:408
-msgid "Pattern Plating Mask"
-msgstr "Musterbeschichtungsmaske"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256
-#: flatcamTools/ToolCopperThieving.py:410
-msgid "Generate a mask for pattern plating."
-msgstr "Erzeugen Sie eine Maske für die Musterbeschichtung."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263
-#: flatcamTools/ToolCopperThieving.py:433
-msgid ""
-"The distance between the possible copper thieving elements\n"
-"and/or robber bar and the actual openings in the mask."
-msgstr ""
-"Der Abstand zwischen den Copper Thieving Elementen \n"
-"und/oder der Robber Bar und den tatsächlichen Öffnungen in der Maske."
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:27
-msgid "Calibration Tool Options"
-msgstr "Kalibirierungs-Tool-Optionen"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:38
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:38
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38
-#: flatcamTools/ToolCopperThieving.py:91 flatcamTools/ToolFiducials.py:151
-msgid "Parameters used for this tool."
-msgstr "Parameter für dieses Werkzeug."
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:43
-#: flatcamTools/ToolCalibration.py:181
-msgid "Source Type"
-msgstr "Quellenart"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:44
-#: flatcamTools/ToolCalibration.py:182
-msgid ""
-"The source of calibration points.\n"
-"It can be:\n"
-"- Object -> click a hole geo for Excellon or a pad for Gerber\n"
-"- Free -> click freely on canvas to acquire the calibration points"
-msgstr ""
-"Die Quelle für Kalibrierungspunkte\n"
-"Das können sein:\n"
-"- \"Objekt\" klicken Sie auf eine Lochgeometrie oder ein Pad im Gerber\n"
-"- \"Frei\" klicken Sie frei auf der Leinwand um einen Kalibierungspunkt zu "
-"setzen"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:49
-#: flatcamTools/ToolCalibration.py:187
-msgid "Free"
-msgstr "Frei"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:63
-#: flatcamTools/ToolCalibration.py:76
-msgid "Height (Z) for travelling between the points."
-msgstr "Die Höhe (Z) für den Weg zwischen Pads."
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:75
-#: flatcamTools/ToolCalibration.py:88
-msgid "Verification Z"
-msgstr "Z Überprüfung"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:77
-#: flatcamTools/ToolCalibration.py:90
-msgid "Height (Z) for checking the point."
-msgstr "Höhe (Z) um den Punkt zu prüfen."
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:89
-#: flatcamTools/ToolCalibration.py:102
-msgid "Zero Z tool"
-msgstr "Z Höhen Werkzeug"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:91
-#: flatcamTools/ToolCalibration.py:104
-msgid ""
-"Include a sequence to zero the height (Z)\n"
-"of the verification tool."
-msgstr ""
-"Fügen sie eine Sequenz ein um die Höhe (Z)\n"
-"des Überprüfungswerkzeugs zu nullen."
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:100
-#: flatcamTools/ToolCalibration.py:113
-msgid "Height (Z) for mounting the verification probe."
-msgstr "Höhe (Z) zur Installation der Überprüfungssonde."
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:114
-#: flatcamTools/ToolCalibration.py:127
-msgid ""
-"Toolchange X,Y position.\n"
-"If no value is entered then the current\n"
-"(x, y) point will be used,"
-msgstr ""
-"Werkzeugwechsel X, Y Position.\n"
-"Wenn kein Wert eingegeben wird, wird der Strom angezeigt\n"
-"(x, y) Punkt wird verwendet,"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:125
-#: flatcamTools/ToolCalibration.py:153
-msgid "Second point"
-msgstr "Zweiter Punkt"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:127
-#: flatcamTools/ToolCalibration.py:155
-msgid ""
-"Second point in the Gcode verification can be:\n"
-"- top-left -> the user will align the PCB vertically\n"
-"- bottom-right -> the user will align the PCB horizontally"
-msgstr ""
-"Der zweite Punkt bei der Gcode-Überprüfung kann sein:\n"
-"- oben links -> Der Benutzer richtet die Leiterplatte vertikal aus\n"
-"- rechts unten -> Der Benutzer richtet die Leiterplatte horizontal aus"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:27
-msgid "Extract Drills Options"
-msgstr "Optionen für Bohrer extrahieren"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42
-#: flatcamTools/ToolExtractDrills.py:68 flatcamTools/ToolPunchGerber.py:75
-msgid "Processed Pads Type"
-msgstr "Verarbeitete Pads Typ"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44
-#: flatcamTools/ToolExtractDrills.py:70 flatcamTools/ToolPunchGerber.py:77
-msgid ""
-"The type of pads shape to be processed.\n"
-"If the PCB has many SMD pads with rectangular pads,\n"
-"disable the Rectangular aperture."
-msgstr ""
-"Die Art der zu verarbeitenden Pads.\n"
-"Wenn die Leiterplatte viele SMD-Pads mit rechteckigen Pads hat,\n"
-"Deaktivieren Sie die rechteckige Öffnung."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54
-#: flatcamTools/ToolExtractDrills.py:80 flatcamTools/ToolPunchGerber.py:91
-msgid "Process Circular Pads."
-msgstr "Prozessrunde Pads."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:60
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164
-#: flatcamTools/ToolExtractDrills.py:86 flatcamTools/ToolExtractDrills.py:214
-#: flatcamTools/ToolPunchGerber.py:97 flatcamTools/ToolPunchGerber.py:242
-msgid "Oblong"
-msgstr "Länglich"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62
-#: flatcamTools/ToolExtractDrills.py:88 flatcamTools/ToolPunchGerber.py:99
-msgid "Process Oblong Pads."
-msgstr "Längliche Pads verarbeiten."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70
-#: flatcamTools/ToolExtractDrills.py:96 flatcamTools/ToolPunchGerber.py:107
-msgid "Process Square Pads."
-msgstr "Quadratische Pads verarbeiten."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78
-#: flatcamTools/ToolExtractDrills.py:104 flatcamTools/ToolPunchGerber.py:115
-msgid "Process Rectangular Pads."
-msgstr "Rechteckige Pads verarbeiten."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:84
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203
-#: flatcamTools/ToolExtractDrills.py:110 flatcamTools/ToolExtractDrills.py:253
-#: flatcamTools/ToolProperties.py:172 flatcamTools/ToolPunchGerber.py:121
-#: flatcamTools/ToolPunchGerber.py:281
-msgid "Others"
-msgstr "Andere"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86
-#: flatcamTools/ToolExtractDrills.py:112 flatcamTools/ToolPunchGerber.py:123
-msgid "Process pads not in the categories above."
-msgstr "Prozess-Pads nicht in den oben genannten Kategorien."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:99
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125
-#: flatcamTools/ToolExtractDrills.py:139 flatcamTools/ToolExtractDrills.py:156
-#: flatcamTools/ToolPunchGerber.py:150 flatcamTools/ToolPunchGerber.py:184
-msgid "Fixed Diameter"
-msgstr "Fester Durchmesser"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:100
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142
-#: flatcamTools/ToolExtractDrills.py:140 flatcamTools/ToolExtractDrills.py:192
-#: flatcamTools/ToolPunchGerber.py:151 flatcamTools/ToolPunchGerber.py:214
-msgid "Fixed Annular Ring"
-msgstr "Fester Ring"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102
-#: flatcamTools/ToolExtractDrills.py:141 flatcamTools/ToolPunchGerber.py:152
-msgid "Proportional"
-msgstr "Proportional"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107
-#: flatcamTools/ToolExtractDrills.py:130
-msgid ""
-"The method for processing pads. Can be:\n"
-"- Fixed Diameter -> all holes will have a set size\n"
-"- Fixed Annular Ring -> all holes will have a set annular ring\n"
-"- Proportional -> each hole size will be a fraction of the pad size"
-msgstr ""
-"Die Methode zur Verarbeitung von Pads. Kann sein:\n"
-"- Fester Durchmesser -> Alle Löcher haben eine festgelegte Größe\n"
-"- Fester Ring -> Alle Löcher haben einen festen Ring\n"
-"- Proportional -> Jede Lochgröße ist ein Bruchteil der Padgröße"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135
-#: flatcamTools/ToolExtractDrills.py:166 flatcamTools/ToolPunchGerber.py:194
-msgid "Fixed hole diameter."
-msgstr "Fester Lochdurchmesser."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:142
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144
-#: flatcamTools/ToolExtractDrills.py:194 flatcamTools/ToolPunchGerber.py:216
-msgid ""
-"The size of annular ring.\n"
-"The copper sliver between the hole exterior\n"
-"and the margin of the copper pad."
-msgstr ""
-"Die Größe des Ringes.\n"
-"Das Kupfersplitter zwischen dem Loch außen\n"
-"und der Rand des Kupferkissens."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153
-#: flatcamTools/ToolExtractDrills.py:203 flatcamTools/ToolPunchGerber.py:231
-msgid "The size of annular ring for circular pads."
-msgstr "Die Größe des Ringes für kreisförmige Pads."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:164
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:166
-#: flatcamTools/ToolExtractDrills.py:216 flatcamTools/ToolPunchGerber.py:244
-msgid "The size of annular ring for oblong pads."
-msgstr "Die Größe des Ringes für längliche Pads."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:177
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:179
-#: flatcamTools/ToolExtractDrills.py:229 flatcamTools/ToolPunchGerber.py:257
-msgid "The size of annular ring for square pads."
-msgstr "Die Größe des Ringes für quadratische Pads."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:190
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:192
-#: flatcamTools/ToolExtractDrills.py:242 flatcamTools/ToolPunchGerber.py:270
-msgid "The size of annular ring for rectangular pads."
-msgstr "Die Größe des Ringes für rechteckige Pads."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:203
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:205
-#: flatcamTools/ToolExtractDrills.py:255 flatcamTools/ToolPunchGerber.py:283
-msgid "The size of annular ring for other pads."
-msgstr "Die Größe des Ringes für andere Pads."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:213
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:215
-#: flatcamTools/ToolExtractDrills.py:276 flatcamTools/ToolPunchGerber.py:299
-msgid "Proportional Diameter"
-msgstr "Proportionaler Durchmesser"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:222
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:224
-msgid "Factor"
-msgstr "Faktor"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226
-#: flatcamTools/ToolExtractDrills.py:287 flatcamTools/ToolPunchGerber.py:310
-msgid ""
-"Proportional Diameter.\n"
-"The hole diameter will be a fraction of the pad size."
-msgstr ""
-"Proportionaler Durchmesser.\n"
-"Der Lochdurchmesser beträgt einen Bruchteil der Padgröße."
-
-# I have no clue
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:27
-msgid "Fiducials Tool Options"
-msgstr "Passermarken-Werkzeugoptionen"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45
-#: flatcamTools/ToolFiducials.py:158
-msgid ""
-"This set the fiducial diameter if fiducial type is circular,\n"
-"otherwise is the size of the fiducial.\n"
-"The soldermask opening is double than that."
-msgstr ""
-"Dies setzt den Durchmesser der Bezugsmarke wenn die Art \n"
-"des Bezugspunktes kreisförmig ist, ansonsten die Größe des Bezugspunktes.\n"
-"Der Ausschnitt der Lötmaske ist doppelt so groß."
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73
-#: flatcamTools/ToolFiducials.py:186
-msgid "Auto"
-msgstr "Auto"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74
-#: flatcamTools/ToolFiducials.py:187
-msgid "Manual"
-msgstr "Manuell"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76
-#: flatcamTools/ToolFiducials.py:189
-msgid "Mode:"
-msgstr "Modus:"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:78
-msgid ""
-"- 'Auto' - automatic placement of fiducials in the corners of the bounding "
-"box.\n"
-"- 'Manual' - manual placement of fiducials."
-msgstr ""
-"- \"Auto\" Die Bezugspunkte werden automatisch in den Ecken des Umrisses "
-"platziert.\n"
-"- \"Manuell\" Die Bezugspunkte werden manuell platziert."
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86
-#: flatcamTools/ToolFiducials.py:199
-msgid "Up"
-msgstr "Hoch"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87
-#: flatcamTools/ToolFiducials.py:200
-msgid "Down"
-msgstr "Runter"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90
-#: flatcamTools/ToolFiducials.py:203
-msgid "Second fiducial"
-msgstr "Zweiter Bezugspunkt"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92
-#: flatcamTools/ToolFiducials.py:205
-msgid ""
-"The position for the second fiducial.\n"
-"- 'Up' - the order is: bottom-left, top-left, top-right.\n"
-"- 'Down' - the order is: bottom-left, bottom-right, top-right.\n"
-"- 'None' - there is no second fiducial. The order is: bottom-left, top-right."
-msgstr ""
-"Die Position des zweiten Bezugspunktes\n"
-"- \"Hoch\" Die Reihenfolge ist Unten-Links, Oben-Links, Oben-Rechts\n"
-"- \"Runter\" Die Reihenfolge ist Untern-Links, Unten-Rechts, Oben-Rechts\n"
-"- \"Keine\" Es gibt keinen zweiten Bezugspunkt, die Reihenfolge ist: Unten-"
-"Links, Oben-Rechts."
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108
-#: flatcamTools/ToolFiducials.py:221
-msgid "Cross"
-msgstr "Kreuzförmig"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109
-#: flatcamTools/ToolFiducials.py:222
-msgid "Chess"
-msgstr "Schachbrett"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112
-#: flatcamTools/ToolFiducials.py:224
-msgid "Fiducial Type"
-msgstr "Bezugspunktart"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114
-#: flatcamTools/ToolFiducials.py:226
-msgid ""
-"The type of fiducial.\n"
-"- 'Circular' - this is the regular fiducial.\n"
-"- 'Cross' - cross lines fiducial.\n"
-"- 'Chess' - chess pattern fiducial."
-msgstr ""
-"Die Art der Bezugspunkte\n"
-"\"Kreisförmig\" Der normale Bezugspunkt\n"
-"\"Kreuzförmig\" Kreuzlinienbezugspunkte\n"
-"\"Schachbrett\" Schachbrettförmige Bezugspunkte."
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123
-#: flatcamTools/ToolFiducials.py:235
-msgid "Line thickness"
-msgstr "Liniendicke"
-
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:27
-msgid "Invert Gerber Tool Options"
-msgstr "Invert. Sie die Gerber-Werkzeugoptionen"
-
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:33
-msgid ""
-"A tool to invert Gerber geometry from positive to negative\n"
-"and in revers."
-msgstr ""
-"Ein Werkzeug zum Konvertieren der Gerber-Geometrie von positiv nach negativ\n"
-"und umgekehrt."
-
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:47
-#: flatcamTools/ToolInvertGerber.py:90
-msgid ""
-"Distance by which to avoid\n"
-"the edges of the Gerber object."
-msgstr ""
-"Entfernung, um die vermieden werden muss\n"
-"die Kanten des Gerber-Objekts."
-
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:58
-#: flatcamTools/ToolInvertGerber.py:101
-msgid "Lines Join Style"
-msgstr "Linien verbinden Stil"
-
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:60
-#: flatcamTools/ToolInvertGerber.py:103
-msgid ""
-"The way that the lines in the object outline will be joined.\n"
-"Can be:\n"
-"- rounded -> an arc is added between two joining lines\n"
-"- square -> the lines meet in 90 degrees angle\n"
-"- bevel -> the lines are joined by a third line"
-msgstr ""
-"Die Art und Weise, wie die Linien in der Objektkontur verbunden werden.\n"
-"Kann sein:\n"
-"- gerundet -> zwischen zwei Verbindungslinien wird ein Bogen eingefügt\n"
-"- Quadrat -> Die Linien treffen sich in einem Winkel von 90 Grad\n"
-"- Abschrägung -> Die Linien werden durch eine dritte Linie verbunden"
-
-#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:27
-msgid "Optimal Tool Options"
-msgstr "\"Optimale\" Werkzeugoptionen"
-
-#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:33
-msgid ""
-"A tool to find the minimum distance between\n"
-"every two Gerber geometric elements"
-msgstr ""
-"Ein Werkzeug, um den Mindestabstand zwischen zu finden\n"
-"jeweils zwei Gerber geometrische Elemente"
-
-#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:48
-#: flatcamTools/ToolOptimal.py:78
-msgid "Precision"
-msgstr "Präzision"
-
-#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:50
-msgid "Number of decimals for the distances and coordinates in this tool."
-msgstr ""
-"Anzahl der Dezimalstellen für die Abstände und Koordinaten in diesem "
-"Werkzeug."
-
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:27
-msgid "Punch Gerber Options"
-msgstr "Stanzen Sie die Gerber-Optionen"
-
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:108
-#: flatcamTools/ToolPunchGerber.py:141
-msgid ""
-"The punch hole source can be:\n"
-"- Excellon Object-> the Excellon object drills center will serve as "
-"reference.\n"
-"- Fixed Diameter -> will try to use the pads center as reference adding "
-"fixed diameter holes.\n"
-"- Fixed Annular Ring -> will try to keep a set annular ring.\n"
-"- Proportional -> will make a Gerber punch hole having the diameter a "
-"percentage of the pad diameter."
-msgstr ""
-"Die Stanzlochquelle kann sein:\n"
-"- Excellon-Objekt-> Das Excellon-Objektbohrzentrum dient als Referenz.\n"
-"- Fester Durchmesser -> versucht, die Mitte der Pads als Referenz für Löcher "
-"mit festem Durchmesser zu verwenden.\n"
-"- Fixed Annular Ring -> versucht, einen festgelegten Ring zu behalten.\n"
-"- Proportional -> macht ein Gerber-Stanzloch mit dem Durchmesser zu einem "
-"Prozentsatz des Pad-Durchmessers."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:27
-msgid "QRCode Tool Options"
-msgstr "QR Code-Tooloptionen"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:33
-msgid ""
-"A tool to create a QRCode that can be inserted\n"
-"into a selected Gerber file, or it can be exported as a file."
-msgstr ""
-"Ein Werkzeug um QR Codes zu erzeugen, um diese\n"
-"in Gerber Dateien einzufügen oder als Datei zu exportieren."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45
-#: flatcamTools/ToolQRCode.py:100
-msgid "Version"
-msgstr "Version"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47
-#: flatcamTools/ToolQRCode.py:102
-msgid ""
-"QRCode version can have values from 1 (21x21 boxes)\n"
-"to 40 (177x177 boxes)."
-msgstr ""
-"Je nach QRCode Version kann 1 (21x21 Quadrate)\n"
-" bis 40 (177x177 Quadrate) angegeben werden."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58
-#: flatcamTools/ToolQRCode.py:113
-msgid "Error correction"
-msgstr "Fehlerausgleich"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71
-#: flatcamTools/ToolQRCode.py:115 flatcamTools/ToolQRCode.py:126
-#, python-format
-msgid ""
-"Parameter that controls the error correction used for the QR Code.\n"
-"L = maximum 7%% errors can be corrected\n"
-"M = maximum 15%% errors can be corrected\n"
-"Q = maximum 25%% errors can be corrected\n"
-"H = maximum 30%% errors can be corrected."
-msgstr ""
-"Dieser Parameter kontrolliert die Fehlertoleranz:\n"
-"L : max. 7%% Fehler können ausgeglichen werden\n"
-"M : max. 15%% Fehler können ausgeglichen werden\n"
-"Q: max. 25%% Fehler können ausgeglichen werden\n"
-"H : max. 30%% Fehler können ausgeglichen warden."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81
-#: flatcamTools/ToolQRCode.py:136
-msgid "Box Size"
-msgstr "Quadratgröße"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83
-#: flatcamTools/ToolQRCode.py:138
-msgid ""
-"Box size control the overall size of the QRcode\n"
-"by adjusting the size of each box in the code."
-msgstr ""
-"Über die Quadratgröße wird die Geamtgröße\n"
-"des QRCodes beeinflusst, da sie die Größe jedes einzelnen Quadrats "
-"spezifiziert."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94
-#: flatcamTools/ToolQRCode.py:149
-msgid "Border Size"
-msgstr "Randdicke"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96
-#: flatcamTools/ToolQRCode.py:151
-msgid ""
-"Size of the QRCode border. How many boxes thick is the border.\n"
-"Default value is 4. The width of the clearance around the QRCode."
-msgstr ""
-"Dicke des Rands des QRCodes in Anzahl von Boxen.\n"
-"Standardwert is 4. Die Breite gibt den Raum der Freistellung um den QRCode "
-"an."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107
-#: flatcamTools/ToolQRCode.py:162
-msgid "QRCode Data"
-msgstr "QRCode Daten"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109
-#: flatcamTools/ToolQRCode.py:164
-msgid "QRCode Data. Alphanumeric text to be encoded in the QRCode."
-msgstr "Beliebiger Text der in den QRCode umgerechnet werden soll."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:113
-#: flatcamTools/ToolQRCode.py:168
-msgid "Add here the text to be included in the QRCode..."
-msgstr "Geben Sie hier den Text in Ihrem QRCode an."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:119
-#: flatcamTools/ToolQRCode.py:174
-msgid "Polarity"
-msgstr "Polarität"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121
-#: flatcamTools/ToolQRCode.py:176
-msgid ""
-"Choose the polarity of the QRCode.\n"
-"It can be drawn in a negative way (squares are clear)\n"
-"or in a positive way (squares are opaque)."
-msgstr ""
-"Geben Sie die Polarität des QRCodes an\n"
-"Es kann entweder Negativ sein (die Boxen sind durchsichtig)\n"
-"oder Positiv (die Boxen sind undurchsichtig)."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125
-#: flatcamTools/ToolFilm.py:296 flatcamTools/ToolQRCode.py:180
-msgid "Negative"
-msgstr "Negativ"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126
-#: flatcamTools/ToolFilm.py:295 flatcamTools/ToolQRCode.py:181
-msgid "Positive"
-msgstr "Positiv"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128
-#: flatcamTools/ToolQRCode.py:183
-msgid ""
-"Choose the type of QRCode to be created.\n"
-"If added on a Silkscreen Gerber file the QRCode may\n"
-"be added as positive. If it is added to a Copper Gerber\n"
-"file then perhaps the QRCode can be added as negative."
-msgstr ""
-"Wählen Sie die Art des zu erzeugenden QRCodes.\n"
-"Wenn er zu ein Silkscreen Gerber file hinzugefügt werden soll\n"
-"sollte er \"Positiv\" sein, wenn sie ihn zum Copper File hinzufügen\n"
-"wollen sollte er möglichst \"Negativ\" sein."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145
-#: flatcamTools/ToolQRCode.py:194 flatcamTools/ToolQRCode.py:200
-msgid ""
-"The bounding box, meaning the empty space that surrounds\n"
-"the QRCode geometry, can have a rounded or a square shape."
-msgstr ""
-"Der Umriss um den QRCode, der die Freistellungsfläche definiert\n"
-"kann abgerundete oder scharfe Ecken haben."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:239
-#: flatcamTools/ToolQRCode.py:197 flatcamTools/ToolTransform.py:383
-msgid "Rounded"
-msgstr "Agberundet"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152
-#: flatcamTools/ToolQRCode.py:228
-msgid "Fill Color"
-msgstr "Boxfarbe"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154
-#: flatcamTools/ToolQRCode.py:230
-msgid "Set the QRCode fill color (squares color)."
-msgstr "Wählen Sie die Farbe der Boxen."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:173
-#: flatcamTools/ToolQRCode.py:252
-msgid "Back Color"
-msgstr "Hintergrundfarbe"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:175
-#: flatcamTools/ToolQRCode.py:254
-msgid "Set the QRCode background color."
-msgstr "Wählen Sie die Farbe im QRCode, die nicht von einer Box bedeckt ist."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:27
-msgid "Check Rules Tool Options"
-msgstr "Optionen des Werkzeugs 'Regeln prüfen'"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:32
-msgid ""
-"A tool to check if Gerber files are within a set\n"
-"of Manufacturing Rules."
-msgstr ""
-"Ein Tool zum Überprüfen, ob sich Gerber-Dateien innerhalb eines Satzes "
-"befinden\n"
-"von Herstellungsregeln."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:42
-#: flatcamTools/ToolRulesCheck.py:265 flatcamTools/ToolRulesCheck.py:929
-msgid "Trace Size"
-msgstr "Spurengröße"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:44
-#: flatcamTools/ToolRulesCheck.py:267
-msgid "This checks if the minimum size for traces is met."
-msgstr "Hiermit wird überprüft, ob die Mindestgröße für Traces erfüllt ist."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:54
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:74
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:94
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:114
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:134
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:154
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:174
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:194
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:216
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:236
-#: flatcamTools/ToolRulesCheck.py:277 flatcamTools/ToolRulesCheck.py:299
-#: flatcamTools/ToolRulesCheck.py:322 flatcamTools/ToolRulesCheck.py:345
-#: flatcamTools/ToolRulesCheck.py:368 flatcamTools/ToolRulesCheck.py:391
-#: flatcamTools/ToolRulesCheck.py:414 flatcamTools/ToolRulesCheck.py:437
-#: flatcamTools/ToolRulesCheck.py:462 flatcamTools/ToolRulesCheck.py:485
-msgid "Min value"
-msgstr "Min. Wert"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:56
-#: flatcamTools/ToolRulesCheck.py:279
-msgid "Minimum acceptable trace size."
-msgstr "Minimale akzeptable Trace-Größe."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:61
-#: flatcamTools/ToolRulesCheck.py:286 flatcamTools/ToolRulesCheck.py:1157
-#: flatcamTools/ToolRulesCheck.py:1187
-msgid "Copper to Copper clearance"
-msgstr "Mininalabstand Kupfer zu Kupfer"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:63
-#: flatcamTools/ToolRulesCheck.py:288
-msgid ""
-"This checks if the minimum clearance between copper\n"
-"features is met."
-msgstr ""
-"Dies überprüft, ob der Mindestabstand zwischen Kupfer\n"
-"Spuren ist erfüllt."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:76
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:96
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:116
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:136
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:156
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:176
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:238
-#: flatcamTools/ToolRulesCheck.py:301 flatcamTools/ToolRulesCheck.py:324
-#: flatcamTools/ToolRulesCheck.py:347 flatcamTools/ToolRulesCheck.py:370
-#: flatcamTools/ToolRulesCheck.py:393 flatcamTools/ToolRulesCheck.py:416
-#: flatcamTools/ToolRulesCheck.py:464
-msgid "Minimum acceptable clearance value."
-msgstr "Minimaler akzeptabler Abstandswert."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:81
-#: flatcamTools/ToolRulesCheck.py:309 flatcamTools/ToolRulesCheck.py:1217
-#: flatcamTools/ToolRulesCheck.py:1223 flatcamTools/ToolRulesCheck.py:1236
-#: flatcamTools/ToolRulesCheck.py:1243
-msgid "Copper to Outline clearance"
-msgstr "Mininalabstand Kupfer zum Rahmen"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:83
-#: flatcamTools/ToolRulesCheck.py:311
-msgid ""
-"This checks if the minimum clearance between copper\n"
-"features and the outline is met."
-msgstr "Überprüft den Minimalabstand zwischen Kupfer und Rand."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:101
-#: flatcamTools/ToolRulesCheck.py:332
-msgid "Silk to Silk Clearance"
-msgstr "Siebdruck zu siebdruck Abstand"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:103
-#: flatcamTools/ToolRulesCheck.py:334
-msgid ""
-"This checks if the minimum clearance between silkscreen\n"
-"features and silkscreen features is met."
-msgstr ""
-"Dies prüft, ob der Mindestabstand zwischen Siebdruck\n"
-"Objekte und Silkscreen-Objekte erfüllt ist."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:121
-#: flatcamTools/ToolRulesCheck.py:355 flatcamTools/ToolRulesCheck.py:1326
-#: flatcamTools/ToolRulesCheck.py:1332 flatcamTools/ToolRulesCheck.py:1350
-msgid "Silk to Solder Mask Clearance"
-msgstr "Siebdruck auf Lötmaske Clearance"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:123
-#: flatcamTools/ToolRulesCheck.py:357
-msgid ""
-"This checks if the minimum clearance between silkscreen\n"
-"features and soldermask features is met."
-msgstr ""
-"Dies prüft, ob der Mindestabstand zwischen Siebdruck\n"
-"Spuren und Lötmaskenspuren werden eingehalten."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:141
-#: flatcamTools/ToolRulesCheck.py:378 flatcamTools/ToolRulesCheck.py:1380
-#: flatcamTools/ToolRulesCheck.py:1386 flatcamTools/ToolRulesCheck.py:1400
-#: flatcamTools/ToolRulesCheck.py:1407
-msgid "Silk to Outline Clearance"
-msgstr "Siebdruck zur Gliederung Clearance"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:143
-#: flatcamTools/ToolRulesCheck.py:380
-msgid ""
-"This checks if the minimum clearance between silk\n"
-"features and the outline is met."
-msgstr ""
-"Dies prüft, ob der Mindestabstand zwischen Siebdruck\n"
-"Spuren und der Umriss ist erfüllt."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:161
-#: flatcamTools/ToolRulesCheck.py:401 flatcamTools/ToolRulesCheck.py:1418
-#: flatcamTools/ToolRulesCheck.py:1445
-msgid "Minimum Solder Mask Sliver"
-msgstr "Minimum Lötmaskenband"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:163
-#: flatcamTools/ToolRulesCheck.py:403
-msgid ""
-"This checks if the minimum clearance between soldermask\n"
-"features and soldermask features is met."
-msgstr ""
-"Hiermit wird geprüft, ob der Mindestabstand zwischen den Lötmasken "
-"eingehalten wird\n"
-"Spuren und Soldermask-Merkmale sind erfüllt."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:181
-#: flatcamTools/ToolRulesCheck.py:424 flatcamTools/ToolRulesCheck.py:1483
-#: flatcamTools/ToolRulesCheck.py:1489 flatcamTools/ToolRulesCheck.py:1505
-#: flatcamTools/ToolRulesCheck.py:1512
-msgid "Minimum Annular Ring"
-msgstr "Minimaler Ring"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:183
-#: flatcamTools/ToolRulesCheck.py:426
-msgid ""
-"This checks if the minimum copper ring left by drilling\n"
-"a hole into a pad is met."
-msgstr ""
-"Dies überprüft, ob der minimale Kupferring durch Bohren übrig bleibt\n"
-"Ein Loch in einem Pad ist getroffen."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:196
-#: flatcamTools/ToolRulesCheck.py:439
-msgid "Minimum acceptable ring value."
-msgstr "Minimaler akzeptabler Ringwert."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:203
-#: flatcamTools/ToolRulesCheck.py:449 flatcamTools/ToolRulesCheck.py:873
-msgid "Hole to Hole Clearance"
-msgstr "Loch zu Loch Abstand"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:205
-#: flatcamTools/ToolRulesCheck.py:451
-msgid ""
-"This checks if the minimum clearance between a drill hole\n"
-"and another drill hole is met."
-msgstr ""
-"Dies überprüft, ob der Mindestabstand zwischen einem Bohrloch ist\n"
-"und ein weiteres Bohrloch ist getroffen."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:218
-#: flatcamTools/ToolRulesCheck.py:487
-msgid "Minimum acceptable drill size."
-msgstr "Minimale zulässige Bohrergröße."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:223
-#: flatcamTools/ToolRulesCheck.py:472 flatcamTools/ToolRulesCheck.py:847
-msgid "Hole Size"
-msgstr "Lochgröße"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:225
-#: flatcamTools/ToolRulesCheck.py:474
-msgid ""
-"This checks if the drill holes\n"
-"sizes are above the threshold."
-msgstr ""
-"Dadurch wird geprüft, ob die Bohrlöcher vorhanden sind\n"
-"Größen liegen über der Schwelle."
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:27
-msgid "2Sided Tool Options"
-msgstr "2Seitige Werkzeugoptionen"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:33
-msgid ""
-"A tool to help in creating a double sided\n"
-"PCB using alignment holes."
-msgstr ""
-"Ein Werkzeug, das beim Erstellen eines doppelseitigen Dokuments hilft\n"
-"PCB mit Ausrichtungslöchern."
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:47
-msgid "Drill dia"
-msgstr "Bohrdurchmesser"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49
-#: flatcamTools/ToolDblSided.py:363 flatcamTools/ToolDblSided.py:368
-msgid "Diameter of the drill for the alignment holes."
-msgstr "Durchmesser des Bohrers für die Ausrichtungslöcher."
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:56
-#: flatcamTools/ToolDblSided.py:377
-msgid "Align Axis"
-msgstr "Achse ausrichten"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71
-#: flatcamTools/ToolDblSided.py:165 flatcamTools/ToolDblSided.py:379
-msgid "Mirror vertically (X) or horizontally (Y)."
-msgstr "Vertikal spiegeln (X) oder horizontal (Y)."
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:69
-msgid "Mirror Axis:"
-msgstr "Spiegelachse:"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:80
-#: flatcamTools/ToolDblSided.py:181
-msgid "Point"
-msgstr "Punkt"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:81
-#: flatcamTools/ToolDblSided.py:182
-msgid "Box"
-msgstr "Box"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:82
-msgid "Axis Ref"
-msgstr "Achsenreferenz"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:84
-msgid ""
-"The axis should pass through a point or cut\n"
-" a specified box (in a FlatCAM object) through \n"
-"the center."
-msgstr ""
-"Die Achse sollte einen Punkt durchlaufen oder schneiden\n"
-"eine angegebene Box (in einem FlatCAM-Objekt) durch\n"
-"das Zentrum."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:27
-msgid "Calculators Tool Options"
-msgstr "Rechner-Tool-Optionen"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31
-#: flatcamTools/ToolCalculators.py:25
-msgid "V-Shape Tool Calculator"
-msgstr "V-Shape-Werkzeugrechner"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:33
-msgid ""
-"Calculate the tool diameter for a given V-shape tool,\n"
-"having the tip diameter, tip angle and\n"
-"depth-of-cut as parameters."
-msgstr ""
-"Berechnen Sie den Werkzeugdurchmesser für ein gegebenes V-förmiges "
-"Werkzeug.\n"
-"mit dem Spitzendurchmesser, Spitzenwinkel und\n"
-"Schnitttiefe als Parameter."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50
-#: flatcamTools/ToolCalculators.py:94
-msgid "Tip Diameter"
-msgstr "Spitzendurchmesser"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52
-#: flatcamTools/ToolCalculators.py:102
-msgid ""
-"This is the tool tip diameter.\n"
-"It is specified by manufacturer."
-msgstr ""
-"Dies ist der Werkzeugspitzendurchmesser.\n"
-"Es wird vom Hersteller angegeben."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64
-#: flatcamTools/ToolCalculators.py:105
-msgid "Tip Angle"
-msgstr "Spitzenwinkel"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:66
-msgid ""
-"This is the angle on the tip of the tool.\n"
-"It is specified by manufacturer."
-msgstr ""
-"Dies ist der Winkel an der Spitze des Werkzeugs.\n"
-"Es wird vom Hersteller angegeben."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:80
-msgid ""
-"This is depth to cut into material.\n"
-"In the CNCJob object it is the CutZ parameter."
-msgstr ""
-"Dies ist die Tiefe zum Schneiden in Material.\n"
-"Im CNCJob-Objekt ist dies der Parameter CutZ."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87
-#: flatcamTools/ToolCalculators.py:27
-msgid "ElectroPlating Calculator"
-msgstr "Galvanikrechner"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89
-#: flatcamTools/ToolCalculators.py:158
-msgid ""
-"This calculator is useful for those who plate the via/pad/drill holes,\n"
-"using a method like graphite ink or calcium hypophosphite ink or palladium "
-"chloride."
-msgstr ""
-"Dieser Rechner ist nützlich für diejenigen, die die Durchgangslöcher / "
-"Bohrungen / Bohrungen\n"
-"unter Verwendung einer Methode wie Grahit-Tinte oder Calcium-Hypophosphit-"
-"Tinte oder Palladiumchlorid."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:100
-#: flatcamTools/ToolCalculators.py:167
-msgid "Board Length"
-msgstr "PCB Länge"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102
-#: flatcamTools/ToolCalculators.py:173
-msgid "This is the board length. In centimeters."
-msgstr "Dies ist die Boardlänge. In Zentimeter."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112
-#: flatcamTools/ToolCalculators.py:175
-msgid "Board Width"
-msgstr "PCB Breite"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114
-#: flatcamTools/ToolCalculators.py:181
-msgid "This is the board width.In centimeters."
-msgstr "Dies ist die Breite der Platte in Zentimetern."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119
-#: flatcamTools/ToolCalculators.py:183
-msgid "Current Density"
-msgstr "Stromdichte"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125
-#: flatcamTools/ToolCalculators.py:190
-msgid ""
-"Current density to pass through the board. \n"
-"In Amps per Square Feet ASF."
-msgstr ""
-"Stromdichte durch die Platine.\n"
-"In Ampere pro Quadratfuß ASF."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:131
-#: flatcamTools/ToolCalculators.py:193
-msgid "Copper Growth"
-msgstr "Kupferwachstum"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137
-#: flatcamTools/ToolCalculators.py:200
-msgid ""
-"How thick the copper growth is intended to be.\n"
-"In microns."
-msgstr ""
-"Wie dick soll das Kupferwachstum sein.\n"
-"In Mikrometern."
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:28
-msgid "Cutout Tool Options"
-msgstr "Ausschnittwerkzeug-Optionen"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43
-#: flatcamTools/ToolCalculators.py:123 flatcamTools/ToolCutOut.py:129
-msgid "Tool Diameter"
-msgstr "Werkzeugdurchm"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45
-#: flatcamTools/ToolCutOut.py:131
-msgid ""
-"Diameter of the tool used to cutout\n"
-"the PCB shape out of the surrounding material."
-msgstr ""
-"Durchmesser des zum Ausschneiden verwendeten Werkzeugs\n"
-"die PCB-Form aus dem umgebenden Material."
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:100
-msgid "Object kind"
-msgstr "Objektart"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102
-#: flatcamTools/ToolCutOut.py:77
-msgid ""
-"Choice of what kind the object we want to cutout is.
- Single: "
-"contain a single PCB Gerber outline object.
- Panel: a panel PCB "
-"Gerber object, which is made\n"
-"out of many individual PCB outlines."
-msgstr ""
-"Auswahl, welche Art von Objekt ausgeschnitten werden soll.
- Einfach "
-": Enthält ein einzelnes PCB-Gerber-Umrissobjekt.
- Panel : "
-"Ein Panel-PCB-Gerber Objekt, dass\n"
-"aus vielen einzelnen PCB-Konturen zusammengesetzt ist."
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109
-#: flatcamTools/ToolCutOut.py:83
-msgid "Single"
-msgstr "Einzeln"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110
-#: flatcamTools/ToolCutOut.py:84
-msgid "Panel"
-msgstr "Platte"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117
-#: flatcamTools/ToolCutOut.py:192
-msgid ""
-"Margin over bounds. A positive value here\n"
-"will make the cutout of the PCB further from\n"
-"the actual PCB border"
-msgstr ""
-"Marge über Grenzen. Ein positiver Wert hier\n"
-"macht den Ausschnitt der Leiterplatte weiter aus\n"
-"die tatsächliche PCB-Grenze"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:130
-#: flatcamTools/ToolCutOut.py:203
-msgid "Gap size"
-msgstr "Spaltgröße"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:132
-#: flatcamTools/ToolCutOut.py:205
-msgid ""
-"The size of the bridge gaps in the cutout\n"
-"used to keep the board connected to\n"
-"the surrounding material (the one \n"
-"from which the PCB is cutout)."
-msgstr ""
-"Die Größe der Brückenlücken im Ausschnitt\n"
-"verwendet, um die Platine verbunden zu halten\n"
-"das umgebende Material (das eine\n"
-"von denen die Leiterplatte ausgeschnitten ist)."
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:146
-#: flatcamTools/ToolCutOut.py:245
-msgid "Gaps"
-msgstr "Spalt"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:148
-msgid ""
-"Number of gaps used for the cutout.\n"
-"There can be maximum 8 bridges/gaps.\n"
-"The choices are:\n"
-"- None - no gaps\n"
-"- lr - left + right\n"
-"- tb - top + bottom\n"
-"- 4 - left + right +top + bottom\n"
-"- 2lr - 2*left + 2*right\n"
-"- 2tb - 2*top + 2*bottom\n"
-"- 8 - 2*left + 2*right +2*top + 2*bottom"
-msgstr ""
-"Anzahl der für den Ausschnitt verwendeten Brückenlücken.\n"
-"Es können maximal 8 Brücken / Lücken vorhanden sein.\n"
-"Die Wahlmöglichkeiten sind:\n"
-"- Keine - keine Lücken\n"
-"- lr \t- links + rechts\n"
-"- tb \t- oben + unten\n"
-"- 4 \t- links + rechts + oben + unten\n"
-"- 2lr \t- 2 * links + 2 * rechts\n"
-"- 2 tb \t- 2 * oben + 2 * unten\n"
-"- 8 \t- 2 * links + 2 * rechts + 2 * oben + 2 * unten"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:170
-#: flatcamTools/ToolCutOut.py:222
-msgid "Convex Shape"
-msgstr "Konvexe Form"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:172
-#: flatcamTools/ToolCutOut.py:225
-msgid ""
-"Create a convex shape surrounding the entire PCB.\n"
-"Used only if the source object type is Gerber."
-msgstr ""
-"Erstellen Sie eine konvexe Form, die die gesamte Leiterplatte umgibt.\n"
-"Wird nur verwendet, wenn der Quellobjekttyp Gerber ist."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:27
-msgid "Film Tool Options"
-msgstr "Filmwerkzeugoptionen"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:33
-msgid ""
-"Create a PCB film from a Gerber or Geometry\n"
-"FlatCAM object.\n"
-"The file is saved in SVG format."
-msgstr ""
-"Erstellen Sie einen PCB-Film aus einem Gerber oder einer Geometrie\n"
-"FlatCAM-Objekt\n"
-"Die Datei wird im SVG-Format gespeichert."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:44
-msgid "Film Type"
-msgstr "Filmtyp"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:46
-#: flatcamTools/ToolFilm.py:300
-msgid ""
-"Generate a Positive black film or a Negative film.\n"
-"Positive means that it will print the features\n"
-"with black on a white canvas.\n"
-"Negative means that it will print the features\n"
-"with white on a black canvas.\n"
-"The Film format is SVG."
-msgstr ""
-"Erzeugen Sie einen positiven schwarzen Film oder einen Negativfilm.\n"
-"Positiv bedeutet, dass die Funktionen gedruckt werden\n"
-"mit schwarz auf einer weißen leinwand.\n"
-"Negativ bedeutet, dass die Features gedruckt werden\n"
-"mit weiß auf einer schwarzen leinwand.\n"
-"Das Filmformat ist SVG."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:57
-msgid "Film Color"
-msgstr "Filmfarbe"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:59
-msgid "Set the film color when positive film is selected."
-msgstr "Stellen Sie die Filmfarbe ein, wenn Positivfilm ausgewählt ist."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:82
-#: flatcamTools/ToolFilm.py:316
-msgid "Border"
-msgstr "Rand"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:84
-#: flatcamTools/ToolFilm.py:318
-msgid ""
-"Specify a border around the object.\n"
-"Only for negative film.\n"
-"It helps if we use as a Box Object the same \n"
-"object as in Film Object. It will create a thick\n"
-"black bar around the actual print allowing for a\n"
-"better delimitation of the outline features which are of\n"
-"white color like the rest and which may confound with the\n"
-"surroundings if not for this border."
-msgstr ""
-"Geben Sie einen Rahmen um das Objekt an.\n"
-"Nur für Negativfilm.\n"
-"Es hilft, wenn wir als Boxobjekt das gleiche verwenden\n"
-"Objekt wie in Filmobjekt. Es wird ein dickes schaffen\n"
-"schwarzer Balken um den tatsächlichen Druck, so dass a\n"
-"bessere Abgrenzung der Gliederungsmerkmale von\n"
-"weiße Farbe wie der Rest und die mit der verwechseln kann\n"
-"Umgebung, wenn nicht für diese Grenze."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:101
-#: flatcamTools/ToolFilm.py:283
-msgid "Scale Stroke"
-msgstr "Skalierungshub"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:103
-#: flatcamTools/ToolFilm.py:285
-msgid ""
-"Scale the line stroke thickness of each feature in the SVG file.\n"
-"It means that the line that envelope each SVG feature will be thicker or "
-"thinner,\n"
-"therefore the fine features may be more affected by this parameter."
-msgstr ""
-"Skalieren Sie die Strichstärke der einzelnen Features in der SVG-Datei.\n"
-"Dies bedeutet, dass die Linie, die jedes SVG-Feature einhüllt, dicker oder "
-"dünner ist.\n"
-"Daher können die Feinheiten von diesem Parameter stärker beeinflusst werden."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:110
-#: flatcamTools/ToolFilm.py:141
-msgid "Film Adjustments"
-msgstr "Filmeinstellungen"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:112
-#: flatcamTools/ToolFilm.py:143
-msgid ""
-"Sometime the printers will distort the print shape, especially the Laser "
-"types.\n"
-"This section provide the tools to compensate for the print distortions."
-msgstr ""
-"Manchmal verzerren die Drucker die Druckform, insbesondere die Lasertypen.\n"
-"In diesem Abschnitt finden Sie die Tools zum Ausgleichen der "
-"Druckverzerrungen."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:119
-#: flatcamTools/ToolFilm.py:150
-msgid "Scale Film geometry"
-msgstr "Filmgeometrie skalieren"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:121
-#: flatcamTools/ToolFilm.py:152
-msgid ""
-"A value greater than 1 will stretch the film\n"
-"while a value less than 1 will jolt it."
-msgstr ""
-"Ein Wert größer als 1 streckt den Film\n"
-"Ein Wert unter 1 ruckelt."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:131
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:103
-#: flatcamTools/ToolFilm.py:162 flatcamTools/ToolTransform.py:148
-msgid "X factor"
-msgstr "X Faktor"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:140
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:116
-#: flatcamTools/ToolFilm.py:171 flatcamTools/ToolTransform.py:168
-msgid "Y factor"
-msgstr "Y Faktor"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:150
-#: flatcamTools/ToolFilm.py:189
-msgid "Skew Film geometry"
-msgstr "Verzerren Sie die Filmgeometrie"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:152
-#: flatcamTools/ToolFilm.py:191
-msgid ""
-"Positive values will skew to the right\n"
-"while negative values will skew to the left."
-msgstr ""
-"Positive Werte werden nach rechts verschoben\n"
-"negative Werte werden nach links verschoben."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:162
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:72
-#: flatcamTools/ToolFilm.py:201 flatcamTools/ToolTransform.py:97
-msgid "X angle"
-msgstr "X Winkel"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:171
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:86
-#: flatcamTools/ToolFilm.py:210 flatcamTools/ToolTransform.py:118
-msgid "Y angle"
-msgstr "Y Winkel"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:182
-#: flatcamTools/ToolFilm.py:221
-msgid ""
-"The reference point to be used as origin for the skew.\n"
-"It can be one of the four points of the geometry bounding box."
-msgstr ""
-"Der Referenzpunkt, der als Ursprung für den Versatz verwendet werden soll.\n"
-"Dies kann einer der vier Punkte des Geometrie-Begrenzungsrahmens sein."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:185
-#: flatcamTools/ToolFiducials.py:87 flatcamTools/ToolFilm.py:224
-msgid "Bottom Left"
-msgstr "Unten links"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:186
-#: flatcamTools/ToolFilm.py:225
-msgid "Top Left"
-msgstr "Oben links"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:187
-#: flatcamTools/ToolFilm.py:226
-msgid "Bottom Right"
-msgstr "Unten rechts"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:188
-#: flatcamTools/ToolFilm.py:227
-msgid "Top right"
-msgstr "Oben rechts"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196
-#: flatcamTools/ToolFilm.py:244
-msgid "Mirror Film geometry"
-msgstr "Spiegeln Sie die Filmgeometrie"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:198
-#: flatcamTools/ToolFilm.py:246
-msgid "Mirror the film geometry on the selected axis or on both."
-msgstr ""
-"Spiegeln Sie die Filmgeometrie auf der ausgewählten Achse oder auf beiden."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:212
-#: flatcamTools/ToolFilm.py:260
-msgid "Mirror axis"
-msgstr "Achse spiegeln"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:222
-#: flatcamTools/ToolFilm.py:405
-msgid "SVG"
-msgstr "SVG"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:223
-#: flatcamTools/ToolFilm.py:406
-msgid "PNG"
-msgstr "PNG"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:224
-#: flatcamTools/ToolFilm.py:407
-msgid "PDF"
-msgstr "PDF"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:227
-#: flatcamTools/ToolFilm.py:298 flatcamTools/ToolFilm.py:410
-msgid "Film Type:"
-msgstr "Filmtyp:"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:229
-#: flatcamTools/ToolFilm.py:412
-msgid ""
-"The file type of the saved film. Can be:\n"
-"- 'SVG' -> open-source vectorial format\n"
-"- 'PNG' -> raster image\n"
-"- 'PDF' -> portable document format"
-msgstr ""
-"Der Dateityp in dem gespeichert werden soll:\n"
-"- 'SVG' -> open-source vectorial format\n"
-"- 'PNG' -> raster image\n"
-"- 'PDF' -> portable document format"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:238
-#: flatcamTools/ToolFilm.py:421
-msgid "Page Orientation"
-msgstr "Seitenausrichtung"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:251
-#: flatcamTools/ToolFilm.py:434
-msgid "Page Size"
-msgstr "Seitengröße"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:252
-#: flatcamTools/ToolFilm.py:435
-msgid "A selection of standard ISO 216 page sizes."
-msgstr "Eine Auswahl von Standard ISO 216 Seitengrößen."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:27
-msgid "NCC Tool Options"
-msgstr "NCC-Tooloptionen"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:49
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:57
-msgid "Comma separated values"
-msgstr "Komma-getrennte Werte"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:55
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:63
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:64
-#: flatcamTools/ToolNCC.py:215 flatcamTools/ToolNCC.py:223
-#: flatcamTools/ToolPaint.py:198 flatcamTools/ToolPaint.py:206
-msgid ""
-"Default tool type:\n"
-"- 'V-shape'\n"
-"- Circular"
-msgstr ""
-"Standardwerkzeugtyp:\n"
-"- \"V-Form\"\n"
-"- Rundschreiben"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:60
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:69
-#: flatcamTools/ToolNCC.py:220 flatcamTools/ToolPaint.py:203
-msgid "V-shape"
-msgstr "V-Form"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:100
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:109
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:107
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:116
-#: flatcamTools/ToolNCC.py:262 flatcamTools/ToolNCC.py:271
-#: flatcamTools/ToolPaint.py:245 flatcamTools/ToolPaint.py:254
-msgid ""
-"Depth of cut into material. Negative value.\n"
-"In FlatCAM units."
-msgstr ""
-"Schnitttiefe in Material. Negativer Wert.\n"
-"In FlatCAM-Einheiten."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:119
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:125
-#: flatcamTools/ToolNCC.py:280 flatcamTools/ToolPaint.py:263
-msgid ""
-"Diameter for the new tool to add in the Tool Table.\n"
-"If the tool is V-shape type then this value is automatically\n"
-"calculated from the other parameters."
-msgstr ""
-"Durchmesser des neuen Werkzeugs das in die Werkzeugtabelle\n"
-"aufgenommen werden soll. Wenn das Tool V-Förmig ist, wird dieser\n"
-"Wert aus den anderen Parametern berechnet."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:156
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:142
-#: flatcamTools/ToolNCC.py:174 flatcamTools/ToolPaint.py:158
-msgid "Tool order"
-msgstr "Werkzeugbestellung"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:157
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:167
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:143
-#: flatcamTools/ToolNCC.py:175 flatcamTools/ToolNCC.py:185
-#: flatcamTools/ToolPaint.py:159 flatcamTools/ToolPaint.py:169
-msgid ""
-"This set the way that the tools in the tools table are used.\n"
-"'No' --> means that the used order is the one in the tool table\n"
-"'Forward' --> means that the tools will be ordered from small to big\n"
-"'Reverse' --> means that the tools will ordered from big to small\n"
-"\n"
-"WARNING: using rest machining will automatically set the order\n"
-"in reverse and disable this control."
-msgstr ""
-"Hiermit wird festgelegt, wie die Werkzeuge in der Werkzeugtabelle verwendet "
-"werden.\n"
-"'Nein' -> bedeutet, dass die verwendete Reihenfolge die in der "
-"Werkzeugtabelle ist\n"
-"'Weiter' -> bedeutet, dass die Werkzeuge von klein nach groß sortiert "
-"werden\n"
-"'Rückwärts' -> Menus, die die Werkzeuge von groß nach klein ordnen\n"
-"\n"
-"WARNUNG: Bei Verwendung der Restbearbeitung wird die Reihenfolge automatisch "
-"festgelegt\n"
-"in umgekehrter Richtung und deaktivieren Sie diese Steuerung."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:165
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:151
-#: flatcamTools/ToolNCC.py:183 flatcamTools/ToolPaint.py:167
-msgid "Forward"
-msgstr "Vorwärts"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:166
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:152
-#: flatcamTools/ToolNCC.py:184 flatcamTools/ToolPaint.py:168
-msgid "Reverse"
-msgstr "Rückwärts"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:266
-msgid "Offset value"
-msgstr "Offsetwert"
-
-# What the hack is a FlatCAM unit??
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:268
-msgid ""
-"If used, it will add an offset to the copper features.\n"
-"The copper clearing will finish to a distance\n"
-"from the copper features.\n"
-"The value can be between 0.0 and 9999.9 FlatCAM units."
-msgstr ""
-"Bei Verwendung wird den Kupferelementen ein Offset hinzugefügt.\n"
-"Die Kupferreinigung wird bei einer gewissen Entfernung\n"
-"zu den Kupferflächen enden.\n"
-"Der Wert kann zwischen 0 und 10 FlatCAM-Einheiten liegen."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:288
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:244
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:245
-#: flatcamTools/ToolNCC.py:512 flatcamTools/ToolPaint.py:442
-msgid "Rest Machining"
-msgstr "Restbearbeitung"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:290
-#: flatcamTools/ToolNCC.py:516
-msgid ""
-"If checked, use 'rest machining'.\n"
-"Basically it will clear copper outside PCB features,\n"
-"using the biggest tool and continue with the next tools,\n"
-"from bigger to smaller, to clear areas of copper that\n"
-"could not be cleared by previous tool, until there is\n"
-"no more copper to clear or there are no more tools.\n"
-"If not checked, use the standard algorithm."
-msgstr ""
-"Wenn aktiviert, verwenden Sie \"Restbearbeitung\".\n"
-"Grundsätzlich wird Kupfer außerhalb der PCB-Merkmale gelöscht.\n"
-"das größte Werkzeug verwenden und mit den nächsten Werkzeugen fortfahren,\n"
-"von größeren zu kleineren, um Kupferbereiche zu reinigen\n"
-"konnte nicht durch vorheriges Werkzeug gelöscht werden, bis es gibt\n"
-"kein kupfer mehr zum löschen oder es gibt keine werkzeuge mehr.\n"
-"Wenn nicht aktiviert, verwenden Sie den Standardalgorithmus."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:313
-#: flatcamTools/ToolNCC.py:541
-msgid ""
-"Selection of area to be processed.\n"
-"- 'Itself' - the processing extent is based on the object that is "
-"processed.\n"
-" - 'Area Selection' - left mouse click to start selection of the area to be "
-"processed.\n"
-"- 'Reference Object' - will process the area specified by another object."
-msgstr ""
-"Auswahl des zu verarbeitenden Bereichs.\n"
-"- 'Selbst' - Der Verarbeitungsumfang basiert auf dem Objekt, das verarbeitet "
-"wird.\n"
-"- 'Bereichsauswahl' - Klicken Sie mit der linken Maustaste, um die Auswahl "
-"des zu verarbeitenden Bereichs zu starten.\n"
-"- 'Referenzobjekt' - verarbeitet den von einem anderen Objekt angegebenen "
-"Bereich."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:339
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303
-msgid "Normal"
-msgstr "NormalFormat"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:340
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:304
-msgid "Progressive"
-msgstr "Progressiv"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:341
-msgid "NCC Plotting"
-msgstr "NCC-Plotten"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:343
-msgid ""
-"- 'Normal' - normal plotting, done at the end of the NCC job\n"
-"- 'Progressive' - after each shape is generated it will be plotted."
-msgstr ""
-"- 'Normal' - normales Plotten am Ende des NCC-Jobs\n"
-"- 'Progressiv' - Nachdem jede Form generiert wurde, wird sie geplottet."
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:27
-msgid "Paint Tool Options"
-msgstr "Paint werkzeug-Optionen"
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:33
-msgid "Parameters:"
-msgstr "Parameter:"
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:247
-#: flatcamTools/ToolPaint.py:445
-msgid ""
-"If checked, use 'rest machining'.\n"
-"Basically it will clear copper outside PCB features,\n"
-"using the biggest tool and continue with the next tools,\n"
-"from bigger to smaller, to clear areas of copper that\n"
-"could not be cleared by previous tool, until there is\n"
-"no more copper to clear or there are no more tools.\n"
-"\n"
-"If not checked, use the standard algorithm."
-msgstr ""
-"Wenn aktiviert, verwenden Sie \"Restbearbeitung\".\n"
-"Grundsätzlich wird Kupfer außerhalb der PCB-Merkmale gelöscht.\n"
-"das größte Werkzeug verwenden und mit den nächsten Werkzeugen fortfahren,\n"
-"von größeren zu kleineren, um Kupferbereiche zu reinigen\n"
-"konnte nicht durch vorheriges Werkzeug gelöscht werden, bis es gibt\n"
-"kein kupfer mehr zum löschen oder es gibt keine werkzeuge mehr.\n"
-"\n"
-"Wenn nicht aktiviert, verwenden Sie den Standardalgorithmus."
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:260
-#: flatcamTools/ToolPaint.py:458
-msgid ""
-"Selection of area to be processed.\n"
-"- 'Polygon Selection' - left mouse click to add/remove polygons to be "
-"processed.\n"
-"- 'Area Selection' - left mouse click to start selection of the area to be "
-"processed.\n"
-"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple "
-"areas.\n"
-"- 'All Polygons' - the process will start after click.\n"
-"- 'Reference Object' - will process the area specified by another object."
-msgstr ""
-"Auswahl des zu verarbeitenden Bereichs.\n"
-"- 'Polygonauswahl' - Klicken Sie mit der linken Maustaste, um zu "
-"verarbeitende Polygone hinzuzufügen / zu entfernen.\n"
-"- 'Bereichsauswahl' - Klicken Sie mit der linken Maustaste, um die Auswahl "
-"des zu verarbeitenden Bereichs zu starten.\n"
-"Wenn Sie eine Modifizierertaste gedrückt halten (STRG oder SHIFT), können "
-"Sie mehrere Bereiche hinzufügen.\n"
-"- 'Alle Polygone' - Der Vorgang wird nach dem Klicken gestartet.\n"
-"- 'Referenzobjekt' - verarbeitet den von einem anderen Objekt angegebenen "
-"Bereich."
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
-#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:942
-#: flatcamTools/ToolPaint.py:1432 tclCommands/TclCommandPaint.py:164
-msgid "Polygon Selection"
-msgstr "Polygon auswahl"
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:305
-msgid "Paint Plotting"
-msgstr "Malen Sie Plotten"
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:307
-msgid ""
-"- 'Normal' - normal plotting, done at the end of the Paint job\n"
-"- 'Progressive' - after each shape is generated it will be plotted."
-msgstr ""
-"- 'Normal' - normales Plotten am Ende des Malvorgangs\n"
-"- 'Progressiv' - Nachdem jede Form generiert wurde, wird sie geplottet."
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:27
-msgid "Panelize Tool Options"
-msgstr "Panelize Werkzeugoptionen"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:33
-msgid ""
-"Create an object that contains an array of (x, y) elements,\n"
-"each element is a copy of the source object spaced\n"
-"at a X distance, Y distance of each other."
-msgstr ""
-"Erstellen Sie ein Objekt, das ein Array von (x, y) Elementen enthält.\n"
-"Jedes Element ist eine Kopie des Quellobjekts\n"
-"in einem X-Abstand, Y-Abstand voneinander."
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:50
-#: flatcamTools/ToolPanelize.py:163
-msgid "Spacing cols"
-msgstr "Abstandspalten"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:52
-#: flatcamTools/ToolPanelize.py:165
-msgid ""
-"Spacing between columns of the desired panel.\n"
-"In current units."
-msgstr ""
-"Abstand zwischen den Spalten des gewünschten Bereichs.\n"
-"In aktuellen Einheiten."
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:64
-#: flatcamTools/ToolPanelize.py:175
-msgid "Spacing rows"
-msgstr "Abstand Reihen"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:66
-#: flatcamTools/ToolPanelize.py:177
-msgid ""
-"Spacing between rows of the desired panel.\n"
-"In current units."
-msgstr ""
-"Abstand zwischen den Reihen des gewünschten Feldes.\n"
-"In aktuellen Einheiten."
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:77
-#: flatcamTools/ToolPanelize.py:186
-msgid "Columns"
-msgstr "Säulen"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:79
-#: flatcamTools/ToolPanelize.py:188
-msgid "Number of columns of the desired panel"
-msgstr "Anzahl der Spalten des gewünschten Bereichs"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:89
-#: flatcamTools/ToolPanelize.py:196
-msgid "Rows"
-msgstr "Reihen"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:91
-#: flatcamTools/ToolPanelize.py:198
-msgid "Number of rows of the desired panel"
-msgstr "Anzahl der Zeilen des gewünschten Panels"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:98
-#: flatcamTools/ToolPanelize.py:205
-msgid "Geo"
-msgstr "Geo"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:99
-#: flatcamTools/ToolPanelize.py:206
-msgid "Panel Type"
-msgstr "Panel-Typ"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:101
-msgid ""
-"Choose the type of object for the panel object:\n"
-"- Gerber\n"
-"- Geometry"
-msgstr ""
-"Wählen Sie den Objekttyp für das Panel-Objekt:\n"
-"- Gerber\n"
-"- Geometrie"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:110
-msgid "Constrain within"
-msgstr "Beschränkung innerhalb"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:112
-#: flatcamTools/ToolPanelize.py:218
-msgid ""
-"Area define by DX and DY within to constrain the panel.\n"
-"DX and DY values are in current units.\n"
-"Regardless of how many columns and rows are desired,\n"
-"the final panel will have as many columns and rows as\n"
-"they fit completely within selected area."
-msgstr ""
-"Bereich definieren durch DX und DY innerhalb des Panels.\n"
-"DX- und DY-Werte sind in aktuellen Einheiten angegeben.\n"
-"Unabhängig davon, wie viele Spalten und Zeilen gewünscht werden,\n"
-"Das letzte Panel enthält so viele Spalten und Zeilen wie\n"
-"Sie passen vollständig in den ausgewählten Bereich."
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:125
-#: flatcamTools/ToolPanelize.py:230
-msgid "Width (DX)"
-msgstr "Breite (DX)"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:127
-#: flatcamTools/ToolPanelize.py:232
-msgid ""
-"The width (DX) within which the panel must fit.\n"
-"In current units."
-msgstr ""
-"Die Breite (DX), in die das Panel passen muss.\n"
-"In aktuellen Einheiten."
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:138
-#: flatcamTools/ToolPanelize.py:241
-msgid "Height (DY)"
-msgstr "Höhe (DY)"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:140
-#: flatcamTools/ToolPanelize.py:243
-msgid ""
-"The height (DY)within which the panel must fit.\n"
-"In current units."
-msgstr ""
-"Die Höhe (DY), in die die Platte passen muss.\n"
-"In aktuellen Einheiten."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:27
-msgid "SolderPaste Tool Options"
-msgstr "Lötpaste-Werkzeug-Optionen"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:33
-msgid ""
-"A tool to create GCode for dispensing\n"
-"solder paste onto a PCB."
-msgstr ""
-"Ein Werkzeug zum Erstellen von GCode für die Ausgabe\n"
-"Lotpaste auf eine Leiterplatte."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:54
-msgid "New Nozzle Dia"
-msgstr "Neuer Düsendurchmesser"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:56
-#: flatcamTools/ToolSolderPaste.py:107
-msgid "Diameter for the new Nozzle tool to add in the Tool Table"
-msgstr ""
-"Durchmesser für das neue Düsenwerkzeug, das in die Werkzeugtabelle eingefügt "
-"werden soll"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:72
-#: flatcamTools/ToolSolderPaste.py:183
-msgid "Z Dispense Start"
-msgstr "Z Dosierbeginn"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:74
-#: flatcamTools/ToolSolderPaste.py:185
-msgid "The height (Z) when solder paste dispensing starts."
-msgstr "Die Höhe (Z) bei der Lotpastendosierung."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:85
-#: flatcamTools/ToolSolderPaste.py:195
-msgid "Z Dispense"
-msgstr "Z-Abgabe"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:87
-#: flatcamTools/ToolSolderPaste.py:197
-msgid "The height (Z) when doing solder paste dispensing."
-msgstr "Die Höhe (Z) bei der Lotpastendosierung."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:98
-#: flatcamTools/ToolSolderPaste.py:207
-msgid "Z Dispense Stop"
-msgstr "Z Abgabestopp"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:100
-#: flatcamTools/ToolSolderPaste.py:209
-msgid "The height (Z) when solder paste dispensing stops."
-msgstr "Die Höhe (Z) bei der Lotpastendosierung stoppt."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:111
-#: flatcamTools/ToolSolderPaste.py:219
-msgid "Z Travel"
-msgstr "Z Reise"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:113
-#: flatcamTools/ToolSolderPaste.py:221
-msgid ""
-"The height (Z) for travel between pads\n"
-"(without dispensing solder paste)."
-msgstr ""
-"Die Höhe (Z) für den Weg zwischen Pads\n"
-"(ohne Lotpaste zu dosieren)."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:125
-#: flatcamTools/ToolSolderPaste.py:232
-msgid "Z Toolchange"
-msgstr "Z Werkzeugwechsel"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:127
-#: flatcamTools/ToolSolderPaste.py:234
-msgid "The height (Z) for tool (nozzle) change."
-msgstr "Die Höhe (Z) für Werkzeug (Düse) ändert sich."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:136
-#: flatcamTools/ToolSolderPaste.py:242
-msgid ""
-"The X,Y location for tool (nozzle) change.\n"
-"The format is (x, y) where x and y are real numbers."
-msgstr ""
-"Die X, Y-Position für Werkzeug (Düse) ändert sich.\n"
-"Das Format ist (x, y), wobei x und y reelle Zahlen sind."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:150
-#: flatcamTools/ToolSolderPaste.py:255
-msgid "Feedrate (speed) while moving on the X-Y plane."
-msgstr "Vorschub (Geschwindigkeit) während der Bewegung auf der X-Y-Ebene."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:163
-#: flatcamTools/ToolSolderPaste.py:267
-msgid ""
-"Feedrate (speed) while moving vertically\n"
-"(on Z plane)."
-msgstr ""
-"Vorschub (Geschwindigkeit) bei vertikaler Bewegung\n"
-"(auf der Z-Ebene)."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:175
-#: flatcamTools/ToolSolderPaste.py:278
-msgid "Feedrate Z Dispense"
-msgstr "Vorschub Z Dosierung"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:177
-msgid ""
-"Feedrate (speed) while moving up vertically\n"
-"to Dispense position (on Z plane)."
-msgstr ""
-"Vorschub (Geschwindigkeit) bei vertikaler Aufwärtsbewegung\n"
-"in Ausgabeposition (in der Z-Ebene)."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:188
-#: flatcamTools/ToolSolderPaste.py:290
-msgid "Spindle Speed FWD"
-msgstr "Spindeldrehzahl FWD"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:190
-#: flatcamTools/ToolSolderPaste.py:292
-msgid ""
-"The dispenser speed while pushing solder paste\n"
-"through the dispenser nozzle."
-msgstr ""
-"Die Spendergeschwindigkeit beim Schieben der Lötpaste\n"
-"durch die Spenderdüse."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:202
-#: flatcamTools/ToolSolderPaste.py:303
-msgid "Dwell FWD"
-msgstr "Verweilzeit FWD"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:204
-#: flatcamTools/ToolSolderPaste.py:305
-msgid "Pause after solder dispensing."
-msgstr "Pause nach dem Löten."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:214
-#: flatcamTools/ToolSolderPaste.py:314
-msgid "Spindle Speed REV"
-msgstr "Spindeldrehzahl REV"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:216
-#: flatcamTools/ToolSolderPaste.py:316
-msgid ""
-"The dispenser speed while retracting solder paste\n"
-"through the dispenser nozzle."
-msgstr ""
-"Die Spendergeschwindigkeit beim Einfahren der Lötpaste\n"
-"durch die Spenderdüse."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:228
-#: flatcamTools/ToolSolderPaste.py:327
-msgid "Dwell REV"
-msgstr "Verweilen REV"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:230
-#: flatcamTools/ToolSolderPaste.py:329
-msgid ""
-"Pause after solder paste dispenser retracted,\n"
-"to allow pressure equilibrium."
-msgstr ""
-"Pause nachdem Lotpastendispenser eingefahren wurde,\n"
-"das Druckgleichgewicht zu ermöglichen."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:239
-#: flatcamTools/ToolSolderPaste.py:337
-msgid "Files that control the GCode generation."
-msgstr "Dateien, die die GCode-Generierung steuern."
-
-#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:27
-msgid "Substractor Tool Options"
-msgstr "Substractor-Werkzeug-Optionen"
-
-#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:33
-msgid ""
-"A tool to substract one Gerber or Geometry object\n"
-"from another of the same type."
-msgstr ""
-"Ein Werkzeug zum Subtrahieren eines Gerber- oder Geometrieobjekts\n"
-"von einem anderen des gleichen Typs."
-
-#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:38
-#: flatcamTools/ToolSub.py:155
-msgid "Close paths"
-msgstr "Wege schließen"
-
-#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:39
-msgid ""
-"Checking this will close the paths cut by the Geometry substractor object."
-msgstr ""
-"Wenn Sie dies aktivieren, werden die vom Geometry-Substractor-Objekt "
-"geschnittenen Pfade geschlossen."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:27
-msgid "Transform Tool Options"
-msgstr "Umwandlungswerkzeug-Optionen"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:33
-msgid ""
-"Various transformations that can be applied\n"
-"on a FlatCAM object."
-msgstr ""
-"Verschiedene Transformationen, die angewendet werden können\n"
-"auf einem FlatCAM-Objekt."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:64
-msgid "Skew"
-msgstr "Neigung"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:105
-#: flatcamTools/ToolTransform.py:150
-msgid "Factor for scaling on X axis."
-msgstr "Faktor für die Skalierung auf der X-Achse."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:118
-#: flatcamTools/ToolTransform.py:170
-msgid "Factor for scaling on Y axis."
-msgstr "Faktor für die Skalierung auf der Y-Achse."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:126
-#: flatcamTools/ToolTransform.py:191
-msgid ""
-"Scale the selected object(s)\n"
-"using the Scale_X factor for both axis."
-msgstr ""
-"Skalieren Sie die ausgewählten Objekte\n"
-"Verwenden des Skalierungsfaktors X für beide Achsen."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:134
-#: flatcamTools/ToolTransform.py:198
-msgid ""
-"Scale the selected object(s)\n"
-"using the origin reference when checked,\n"
-"and the center of the biggest bounding box\n"
-"of the selected objects when unchecked."
-msgstr ""
-"Skalieren Sie die ausgewählten Objekte\n"
-"unter Verwendung der Ursprungsreferenz, wenn geprüft\n"
-"und die Mitte der größten Begrenzungsbox\n"
-"der ausgewählten Objekte, wenn sie nicht markiert sind."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:150
-#: flatcamTools/ToolTransform.py:217
-msgid "X val"
-msgstr "X-Wert"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:152
-#: flatcamTools/ToolTransform.py:219
-msgid "Distance to offset on X axis. In current units."
-msgstr "Abstand zum Offset auf der X-Achse. In aktuellen Einheiten."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:163
-#: flatcamTools/ToolTransform.py:237
-msgid "Y val"
-msgstr "Y-Wert"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:165
-#: flatcamTools/ToolTransform.py:239
-msgid "Distance to offset on Y axis. In current units."
-msgstr "Abstand zum Offset auf der Y-Achse. In aktuellen Einheiten."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:171
-#: flatcamTools/ToolDblSided.py:67 flatcamTools/ToolDblSided.py:95
-#: flatcamTools/ToolDblSided.py:125
-msgid "Mirror"
-msgstr "Spiegeln"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:175
-#: flatcamTools/ToolTransform.py:283
-msgid "Mirror Reference"
-msgstr "Spiegelreferenz"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:177
-#: flatcamTools/ToolTransform.py:285
-msgid ""
-"Flip the selected object(s)\n"
-"around the point in Point Entry Field.\n"
-"\n"
-"The point coordinates can be captured by\n"
-"left click on canvas together with pressing\n"
-"SHIFT key. \n"
-"Then click Add button to insert coordinates.\n"
-"Or enter the coords in format (x, y) in the\n"
-"Point Entry field and click Flip on X(Y)"
-msgstr ""
-"Die ausgewählten Objekte kippen\n"
-"um den Punkt im Eingabefeld.\n"
-"\n"
-"Die Punktkoordinaten können mit erfasst werden\n"
-"Klicken Sie mit der linken Maustaste auf die Leinwand\n"
-"Shift Taste.\n"
-"Klicken Sie dann auf die Schaltfläche Hinzufügen, um die Koordinaten "
-"einzufügen.\n"
-"Oder geben Sie die Koordinaten im Format (x, y) in ein\n"
-"Punkt-Eingabefeld und klicken Sie auf X (Y) drehen"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:188
-msgid "Mirror Reference point"
-msgstr "Referenzpunkt spiegeln"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:190
-msgid ""
-"Coordinates in format (x, y) used as reference for mirroring.\n"
-"The 'x' in (x, y) will be used when using Flip on X and\n"
-"the 'y' in (x, y) will be used when using Flip on Y and"
-msgstr ""
-"Koordinaten im Format (x, y), die als Referenz für die Spiegelung verwendet "
-"werden.\n"
-"Das 'x' in (x, y) wird verwendet, wenn Sie bei X und\n"
-"Das 'y' in (x, y) wird verwendet, wenn Flip auf Y und verwendet wird"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:203
-#: flatcamTools/ToolDistance.py:496 flatcamTools/ToolDistanceMin.py:287
-#: flatcamTools/ToolTransform.py:332
-msgid "Distance"
-msgstr "Entfernung"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:205
-#: flatcamTools/ToolTransform.py:334
-msgid ""
-"A positive value will create the effect of dilation,\n"
-"while a negative value will create the effect of erosion.\n"
-"Each geometry element of the object will be increased\n"
-"or decreased with the 'distance'."
-msgstr ""
-"Ein positiver Wert führt zu einem Dilatationseffekt.\n"
-"während ein negativer Wert den Effekt der Abnutzung verursacht.\n"
-"Jedes Geometrieelement des Objekts wird vergrößert\n"
-"oder mit der \"Entfernung\" verringert."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:222
-#: flatcamTools/ToolTransform.py:359
-msgid ""
-"A positive value will create the effect of dilation,\n"
-"while a negative value will create the effect of erosion.\n"
-"Each geometry element of the object will be increased\n"
-"or decreased to fit the 'Value'. Value is a percentage\n"
-"of the initial dimension."
-msgstr ""
-"Ein positiver Wert erzeugt den Effekt der Dilatation.\n"
-"während ein negativer Wert den Effekt der Erosion erzeugt.\n"
-"Jedes Geometrieelement des Objekts wird vergrößert\n"
-"oder verringert, um dem 'Wert' zu entsprechen. Wert ist ein Prozentsatz\n"
-"der ursprünglichen Dimension."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:241
-#: flatcamTools/ToolTransform.py:385
-msgid ""
-"If checked then the buffer will surround the buffered shape,\n"
-"every corner will be rounded.\n"
-"If not checked then the buffer will follow the exact geometry\n"
-"of the buffered shape."
-msgstr ""
-"Wenn diese Option aktiviert ist, umgibt der Puffer die gepufferte Form.\n"
-"Jede Ecke wird abgerundet.\n"
-"Wenn nicht markiert, folgt der Puffer der exakten Geometrie\n"
-"der gepufferten Form."
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:27
-msgid "Autocompleter Keywords"
-msgstr "Autocompleter-Schlüsselwörter"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:30
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:40
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:30
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:30
-msgid "Restore"
-msgstr "Wiederherstellen"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:31
-msgid "Restore the autocompleter keywords list to the default state."
-msgstr ""
-"Stellen Sie den Standardzustand der Autocompleter-Schlüsselwortliste wieder "
-"her."
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:32
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:42
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:32
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:32
-msgid "Delete All"
-msgstr "Alles löschen"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:33
-msgid "Delete all autocompleter keywords from the list."
-msgstr "Löschen Sie alle Autocompleter-Schlüsselwörter aus der Liste."
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:41
-msgid "Keywords list"
-msgstr "Liste der Stichwörter"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:43
-msgid ""
-"List of keywords used by\n"
-"the autocompleter in FlatCAM.\n"
-"The autocompleter is installed\n"
-"in the Code Editor and for the Tcl Shell."
-msgstr ""
-"Liste der von verwendeten Schlüsselwörter\n"
-"der Autocompleter in FlatCAM.\n"
-"Der Autocompleter ist installiert\n"
-"im Code-Editor und für die Tcl-Shell."
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:64
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:73
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:63
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:62
-msgid "Extension"
-msgstr "Erweiterung"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:65
-msgid "A keyword to be added or deleted to the list."
-msgstr ""
-"Ein Schlüsselwort, das der Liste hinzugefügt oder gelöscht werden soll."
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:73
-msgid "Add keyword"
-msgstr "Keyword hinzufügen"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:74
-msgid "Add a keyword to the list"
-msgstr "Fügen Sie der Liste ein Schlüsselwort hinzu"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:75
-msgid "Delete keyword"
-msgstr "Stichwort löschen"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:76
-msgid "Delete a keyword from the list"
-msgstr "Löschen Sie ein Schlüsselwort aus der Liste"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:27
-msgid "Excellon File associations"
-msgstr "Excellon-Dateizuordnungen"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:41
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:31
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:31
-msgid "Restore the extension list to the default state."
-msgstr "Stellen Sie den Standardzustand der Erweiterungsliste wieder her."
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:43
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:33
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:33
-msgid "Delete all extensions from the list."
-msgstr "Löschen Sie alle Erweiterungen aus der Liste."
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:51
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:41
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:41
-msgid "Extensions list"
-msgstr "Erweiterungsliste"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:53
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:43
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:43
-msgid ""
-"List of file extensions to be\n"
-"associated with FlatCAM."
-msgstr ""
-"Liste der zu verwendenden Dateierweiterungen\n"
-"im Zusammenhang mit FlatCAM."
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:74
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:64
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:63
-msgid "A file extension to be added or deleted to the list."
-msgstr "A file extension to be added or deleted to the list."
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:82
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:72
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:71
-msgid "Add Extension"
-msgstr "Erweiterung hinzufügen"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:83
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:73
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:72
-msgid "Add a file extension to the list"
-msgstr "Fügen Sie der Liste eine Dateierweiterung hinzu"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:84
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:74
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:73
-msgid "Delete Extension"
-msgstr "Erweiterung löschen"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:85
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:75
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:74
-msgid "Delete a file extension from the list"
-msgstr "Löschen Sie eine Dateierweiterung aus der Liste"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:92
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:82
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:81
-msgid "Apply Association"
-msgstr "Assoziation anwenden"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:93
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:83
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:82
-msgid ""
-"Apply the file associations between\n"
-"FlatCAM and the files with above extensions.\n"
-"They will be active after next logon.\n"
-"This work only in Windows."
-msgstr ""
-"Wenden Sie die Dateizuordnungen zwischen an\n"
-"FlatCAM und die Dateien mit den oben genannten Erweiterungen.\n"
-"Sie sind nach der nächsten Anmeldung aktiv.\n"
-"Dies funktioniert nur unter Windows."
-
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:27
-msgid "GCode File associations"
-msgstr "GCode-Dateizuordnungen"
-
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:27
-msgid "Gerber File associations"
-msgstr "Gerber Dateizuordnungen"
-
-#: flatcamObjects/FlatCAMCNCJob.py:429 flatcamObjects/FlatCAMDocument.py:71
-#: flatcamObjects/FlatCAMScript.py:82
-msgid "Basic"
-msgstr "Basic"
-
-#: flatcamObjects/FlatCAMCNCJob.py:435 flatcamObjects/FlatCAMDocument.py:75
-#: flatcamObjects/FlatCAMScript.py:86
-msgid "Advanced"
-msgstr "Erweitert"
-
-#: flatcamObjects/FlatCAMCNCJob.py:478
-msgid "Plotting..."
-msgstr "Zeichnung..."
-
-#: flatcamObjects/FlatCAMCNCJob.py:507 flatcamObjects/FlatCAMCNCJob.py:512
-#: flatcamTools/ToolSolderPaste.py:1499
-msgid "Export Machine Code ..."
-msgstr "Maschinencode exportieren ..."
-
-#: flatcamObjects/FlatCAMCNCJob.py:517 flatcamTools/ToolSolderPaste.py:1503
-msgid "Export Machine Code cancelled ..."
-msgstr "Maschinencode exportieren abgebrochen ..."
-
-#: flatcamObjects/FlatCAMCNCJob.py:538
-msgid "Machine Code file saved to"
-msgstr "Maschinencode-Datei gespeichert in"
-
-#: flatcamObjects/FlatCAMCNCJob.py:599 flatcamTools/ToolCalibration.py:1097
-msgid "Loaded Machine Code into Code Editor"
-msgstr "Maschinencode in den Code-Editor geladen"
-
-#: flatcamObjects/FlatCAMCNCJob.py:740
-msgid "This CNCJob object can't be processed because it is a"
-msgstr "Dieses CNCJob-Objekt kann nicht verarbeitet werden, da es sich um ein"
-
-#: flatcamObjects/FlatCAMCNCJob.py:742
-msgid "CNCJob object"
-msgstr "CNCJob-Objekt"
-
-#: flatcamObjects/FlatCAMCNCJob.py:922
-msgid ""
-"G-code does not have a G94 code and we will not include the code in the "
-"'Prepend to GCode' text box"
-msgstr ""
-"G-Code hat keinen G94-Code und wir werden den Code nicht in das Textfeld "
-"\"Vor dem GCode\" aufnehmen"
-
-#: flatcamObjects/FlatCAMCNCJob.py:933
-msgid "Cancelled. The Toolchange Custom code is enabled but it's empty."
-msgstr ""
-"Abgebrochen. Der benutzerdefinierte Code zum Ändern des Werkzeugs ist "
-"aktiviert, aber er ist leer."
-
-#: flatcamObjects/FlatCAMCNCJob.py:938
-msgid "Toolchange G-code was replaced by a custom code."
-msgstr ""
-"Der Werkzeugwechsel-G-Code wurde durch einen benutzerdefinierten Code "
-"ersetzt."
-
-#: flatcamObjects/FlatCAMCNCJob.py:986 flatcamObjects/FlatCAMCNCJob.py:996
-msgid ""
-"The used preprocessor file has to have in it's name: 'toolchange_custom'"
-msgstr ""
-"Die verwendete Postprozessor-Datei muss im Namen enthalten sein: "
-"'toolchange_custom'"
-
-#: flatcamObjects/FlatCAMCNCJob.py:999
-msgid "There is no preprocessor file."
-msgstr "Es gibt keine Postprozessor-Datei."
-
-#: flatcamObjects/FlatCAMDocument.py:175
-msgid "Document Editor"
-msgstr "Dokumenteditor"
-
-#: flatcamObjects/FlatCAMExcellon.py:514 flatcamObjects/FlatCAMExcellon.py:746
-#: flatcamObjects/FlatCAMGeometry.py:323 flatcamObjects/FlatCAMGeometry.py:795
-#: flatcamTools/ToolNCC.py:811 flatcamTools/ToolNCC.py:1196
-#: flatcamTools/ToolPaint.py:779 flatcamTools/ToolPaint.py:1171
-msgid "Multiple Tools"
-msgstr "Mehrere Werkzeuge"
-
-#: flatcamObjects/FlatCAMExcellon.py:726
-msgid "No Tool Selected"
-msgstr "Kein Werkzeug ausgewählt"
-
-#: flatcamObjects/FlatCAMExcellon.py:1076
-#: flatcamObjects/FlatCAMExcellon.py:1168
-#: flatcamObjects/FlatCAMExcellon.py:1355
-msgid "Please select one or more tools from the list and try again."
-msgstr ""
-"Bitte wählen Sie ein oder mehrere Werkzeuge aus der Liste aus und versuchen "
-"Sie es erneut."
-
-#: flatcamObjects/FlatCAMExcellon.py:1083
-msgid "Milling tool for DRILLS is larger than hole size. Cancelled."
-msgstr "Das Fräswerkzeug für BOHRER ist größer als die Lochgröße. Abgebrochen."
-
-#: flatcamObjects/FlatCAMExcellon.py:1098
-#: flatcamObjects/FlatCAMExcellon.py:1188
-#: flatcamObjects/FlatCAMExcellon.py:1373
-#: tclCommands/TclCommandDrillcncjob.py:193
-msgid "Tool_nr"
-msgstr "Werkzeugnummer"
-
-#: flatcamObjects/FlatCAMExcellon.py:1098
-#: flatcamObjects/FlatCAMExcellon.py:1188
-#: flatcamObjects/FlatCAMExcellon.py:1373
-#: tclCommands/TclCommandDrillcncjob.py:193
-msgid "Drills_Nr"
-msgstr "Bohrnummer"
-
-#: flatcamObjects/FlatCAMExcellon.py:1098
-#: flatcamObjects/FlatCAMExcellon.py:1188
-#: flatcamObjects/FlatCAMExcellon.py:1373
-#: tclCommands/TclCommandDrillcncjob.py:193
-msgid "Slots_Nr"
-msgstr "Schlitznummer"
-
-#: flatcamObjects/FlatCAMExcellon.py:1177
-msgid "Milling tool for SLOTS is larger than hole size. Cancelled."
-msgstr ""
-"Das Fräswerkzeug für SCHLITZ ist größer als die Lochgröße. Abgebrochen."
-
-#: flatcamObjects/FlatCAMExcellon.py:1281
-#: flatcamObjects/FlatCAMGeometry.py:1571
-msgid "Focus Z"
-msgstr "Fokus Z"
-
-#: flatcamObjects/FlatCAMExcellon.py:1300
-#: flatcamObjects/FlatCAMGeometry.py:1590
-msgid "Laser Power"
-msgstr "Laserleistung"
-
-#: flatcamObjects/FlatCAMExcellon.py:1430
-#: flatcamObjects/FlatCAMGeometry.py:2027
-#: flatcamObjects/FlatCAMGeometry.py:2031
-#: flatcamObjects/FlatCAMGeometry.py:2176
-msgid "Generating CNC Code"
-msgstr "CNC-Code generieren"
-
-#: flatcamObjects/FlatCAMExcellon.py:1620 flatcamTools/ToolNCC.py:918
-#: flatcamTools/ToolPaint.py:844
-msgid "Current Tool parameters were applied to all tools."
-msgstr "Aktuelle Werkzeugparameter wurden auf alle Werkzeuge angewendet."
-
-#: flatcamObjects/FlatCAMGeometry.py:124 flatcamObjects/FlatCAMGeometry.py:1235
-#: flatcamObjects/FlatCAMGeometry.py:1236
-#: flatcamObjects/FlatCAMGeometry.py:1245
-msgid "Iso"
-msgstr "Iso"
-
-#: flatcamObjects/FlatCAMGeometry.py:124 flatcamObjects/FlatCAMGeometry.py:464
-#: flatcamObjects/FlatCAMGeometry.py:854 flatcamObjects/FlatCAMGerber.py:891
-#: flatcamObjects/FlatCAMGerber.py:1039 flatcamTools/ToolCutOut.py:690
-#: flatcamTools/ToolCutOut.py:886 flatcamTools/ToolCutOut.py:1046
-msgid "Rough"
-msgstr "Rau"
-
-#: flatcamObjects/FlatCAMGeometry.py:124
-msgid "Finish"
-msgstr "Oberfläche"
-
-#: flatcamObjects/FlatCAMGeometry.py:499
-msgid "Add from Tool DB"
-msgstr "Werkzeug aus Werkzeugdatenbank hinzufügen"
-
-#: flatcamObjects/FlatCAMGeometry.py:873
-msgid "Tool added in Tool Table."
-msgstr "Werkzeug in der Werkzeugtabelle hinzugefügt."
-
-#: flatcamObjects/FlatCAMGeometry.py:982 flatcamObjects/FlatCAMGeometry.py:991
-msgid "Failed. Select a tool to copy."
-msgstr "Fehlgeschlagen. Wählen Sie ein Werkzeug zum Kopieren aus."
-
-#: flatcamObjects/FlatCAMGeometry.py:1020
-msgid "Tool was copied in Tool Table."
-msgstr "Das Werkzeug wurde in die Werkzeugtabelle kopiert."
-
-#: flatcamObjects/FlatCAMGeometry.py:1047
-msgid "Tool was edited in Tool Table."
-msgstr "Das Werkzeug wurde in der Werkzeugtabelle bearbeitet."
-
-#: flatcamObjects/FlatCAMGeometry.py:1076
-#: flatcamObjects/FlatCAMGeometry.py:1085
-msgid "Failed. Select a tool to delete."
-msgstr "Gescheitert. Wählen Sie ein Werkzeug zum Löschen aus."
-
-#: flatcamObjects/FlatCAMGeometry.py:1109
-msgid "Tool was deleted in Tool Table."
-msgstr "Werkzeug wurde in der Werkzeugtabelle gelöscht."
-
-#: flatcamObjects/FlatCAMGeometry.py:1146
-#: flatcamObjects/FlatCAMGeometry.py:1156
-msgid ""
-"Disabled because the tool is V-shape.\n"
-"For V-shape tools the depth of cut is\n"
-"calculated from other parameters like:\n"
-"- 'V-tip Angle' -> angle at the tip of the tool\n"
-"- 'V-tip Dia' -> diameter at the tip of the tool \n"
-"- Tool Dia -> 'Dia' column found in the Tool Table\n"
-"NB: a value of zero means that Tool Dia = 'V-tip Dia'"
-msgstr ""
-"Deaktiviert, da das Werkzeug V-förmig ist.\n"
-"Bei V-förmigen Werkzeugen beträgt die Schnitttiefe\n"
-"berechnet aus anderen Parametern wie:\n"
-"- 'V-Spitzenwinkel' -> Winkel an der Spitze des Werkzeugs\n"
-"- 'V-Spitze Durchmesser' -> Durchmesser an der Spitze des Werkzeugs\n"
-"- Werkzeugdurchmesser -> Spalte 'Durchmesser' in der Werkzeugtabelle\n"
-"NB: Ein Wert von Null bedeutet, dass Werkzeugdurchmesser = 'V-Spitze "
-"Durchmesser'"
-
-#: flatcamObjects/FlatCAMGeometry.py:1643
-msgid "This Geometry can't be processed because it is"
-msgstr "Diese Geometrie kann nicht verarbeitet werden, da dies der Fall ist"
-
-#: flatcamObjects/FlatCAMGeometry.py:1643
-msgid "geometry"
-msgstr "geometrie"
-
-#: flatcamObjects/FlatCAMGeometry.py:1684
-msgid "Failed. No tool selected in the tool table ..."
-msgstr "Gescheitert. Kein Werkzeug in der Werkzeugtabelle ausgewählt ..."
-
-#: flatcamObjects/FlatCAMGeometry.py:1786
-#: flatcamObjects/FlatCAMGeometry.py:1936
-msgid ""
-"Tool Offset is selected in Tool Table but no value is provided.\n"
-"Add a Tool Offset or change the Offset Type."
-msgstr ""
-"Werkzeugversatz ist in der Werkzeugtabelle ausgewählt, es wird jedoch kein "
-"Wert angegeben.\n"
-"Fügen Sie einen Werkzeugversatz hinzu oder ändern Sie den Versatztyp."
-
-#: flatcamObjects/FlatCAMGeometry.py:1852
-#: flatcamObjects/FlatCAMGeometry.py:1998
-msgid "G-Code parsing in progress..."
-msgstr "G-Code-Analyse läuft ..."
-
-#: flatcamObjects/FlatCAMGeometry.py:1854
-#: flatcamObjects/FlatCAMGeometry.py:2000
-msgid "G-Code parsing finished..."
-msgstr "G-Code-Analyse beendet ..."
-
-#: flatcamObjects/FlatCAMGeometry.py:1862
-msgid "Finished G-Code processing"
-msgstr "G-Code-Verarbeitung abgeschlossen"
-
-#: flatcamObjects/FlatCAMGeometry.py:1864
-#: flatcamObjects/FlatCAMGeometry.py:2012
-msgid "G-Code processing failed with error"
-msgstr "G-Code-Verarbeitung fehlgeschlagen mit Fehler"
-
-#: flatcamObjects/FlatCAMGeometry.py:1906 flatcamTools/ToolSolderPaste.py:1301
-msgid "Cancelled. Empty file, it has no geometry"
-msgstr "Abgebrochen. Leere Datei hat keine Geometrie"
-
-#: flatcamObjects/FlatCAMGeometry.py:2010
-#: flatcamObjects/FlatCAMGeometry.py:2171
-msgid "Finished G-Code processing..."
-msgstr "Fertige G-Code Verarbeitung ..."
-
-#: flatcamObjects/FlatCAMGeometry.py:2029
-#: flatcamObjects/FlatCAMGeometry.py:2033
-#: flatcamObjects/FlatCAMGeometry.py:2178
-msgid "CNCjob created"
-msgstr "CNCjob erstellt"
-
-#: flatcamObjects/FlatCAMGeometry.py:2209
-#: flatcamObjects/FlatCAMGeometry.py:2218 flatcamParsers/ParseGerber.py:1867
-#: flatcamParsers/ParseGerber.py:1877
-msgid "Scale factor has to be a number: integer or float."
-msgstr ""
-"Der Skalierungsfaktor muss eine Zahl sein: Ganzzahl oder Fließkommazahl."
-
-#: flatcamObjects/FlatCAMGeometry.py:2281
-msgid "Geometry Scale done."
-msgstr "Geometrie Skalierung fertig."
-
-#: flatcamObjects/FlatCAMGeometry.py:2298 flatcamParsers/ParseGerber.py:1993
-msgid ""
-"An (x,y) pair of values are needed. Probable you entered only one value in "
-"the Offset field."
-msgstr ""
-"Ein (x, y) Wertepaar wird benötigt. Wahrscheinlich haben Sie im Feld Offset "
-"nur einen Wert eingegeben."
-
-#: flatcamObjects/FlatCAMGeometry.py:2354
-msgid "Geometry Offset done."
-msgstr "Geometrie Offset fertig."
-
-#: flatcamObjects/FlatCAMGeometry.py:2383
-msgid ""
-"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, "
-"y)\n"
-"but now there is only one value, not two."
-msgstr ""
-"Das Werkzeugwechsel X, Y Feld in Bearbeiten -> Einstellungen muss im Format "
-"(x, y) sein\n"
-"Aber jetzt gibt es nur einen Wert, nicht zwei."
-
-#: flatcamObjects/FlatCAMGeometry.py:2577
-#: flatcamTools/ToolCopperThieving.py:769 flatcamTools/ToolNCC.py:1648
-msgid "Click the start point of the area."
-msgstr "Klicken Sie auf den Startpunkt des Bereichs."
-
-#: flatcamObjects/FlatCAMGeometry.py:2619
-msgid "Click the end point of the area."
-msgstr "Klicken Sie auf den Endpunkt des Bereichs."
-
-#: flatcamObjects/FlatCAMGeometry.py:2625
-#: flatcamObjects/FlatCAMGeometry.py:2677
-#: flatcamTools/ToolCopperThieving.py:826 flatcamTools/ToolNCC.py:1710
-#: flatcamTools/ToolNCC.py:1762 flatcamTools/ToolPaint.py:1606
-#: flatcamTools/ToolPaint.py:1657
-msgid "Zone added. Click to start adding next zone or right click to finish."
-msgstr ""
-"Zone hinzugefügt. Klicken Sie, um die nächste Zone hinzuzufügen, oder "
-"klicken Sie mit der rechten Maustaste, um den Vorgang abzuschließen."
-
-#: flatcamObjects/FlatCAMGeometry.py:2729
-msgid "Cancelled. Area exclusion drawing was interrupted."
-msgstr "Abgebrochen. Die Bereichsausschlusszeichnung wurde unterbrochen."
-
-#: flatcamObjects/FlatCAMGerber.py:494
-msgid "Buffering solid geometry"
-msgstr "Festkörpergeometrie puffern"
-
-#: flatcamObjects/FlatCAMGerber.py:503
-msgid "Done"
-msgstr "Fertig"
-
-#: flatcamObjects/FlatCAMGerber.py:529 flatcamObjects/FlatCAMGerber.py:555
-msgid "Operation could not be done."
-msgstr "Operation konnte nicht durchgeführt werden."
-
-#: flatcamObjects/FlatCAMGerber.py:572
-msgid "Isolating..."
-msgstr "Isolieren ..."
-
-#: flatcamObjects/FlatCAMGerber.py:631
-msgid "Click on a polygon to isolate it."
-msgstr "Klicken Sie auf ein Plozgon um es zu isolieren."
-
-#: flatcamObjects/FlatCAMGerber.py:670 flatcamObjects/FlatCAMGerber.py:774
-#: flatcamTools/ToolPaint.py:1516
-msgid "Added polygon"
-msgstr "Polygon hinzugefügt"
-
-#: flatcamObjects/FlatCAMGerber.py:671 flatcamObjects/FlatCAMGerber.py:776
-msgid "Click to add next polygon or right click to start isolation."
-msgstr ""
-"Klicken Sie, um das nächste Polygon hinzuzufügen, oder klicken Sie mit der "
-"rechten Maustaste, um den Isolationsvorgang zu beginnen."
-
-#: flatcamObjects/FlatCAMGerber.py:683 flatcamTools/ToolPaint.py:1530
-msgid "Removed polygon"
-msgstr "Polygon entfernt"
-
-# nearly the same as before? What good is this?
-#: flatcamObjects/FlatCAMGerber.py:684
-msgid "Click to add/remove next polygon or right click to start isolation."
-msgstr ""
-"Klicken Sie, um das nächste Polygon hinzuzufügen oder zu entfernen, oder "
-"klicken Sie mit der rechten Maustaste, um den Isolationsvorgang zu beginnen."
-
-#: flatcamObjects/FlatCAMGerber.py:689 flatcamTools/ToolPaint.py:1536
-msgid "No polygon detected under click position."
-msgstr "Kein Polygon an der Stelle an die geklickt wurde."
-
-#: flatcamObjects/FlatCAMGerber.py:710 flatcamTools/ToolPaint.py:1565
-msgid "List of single polygons is empty. Aborting."
-msgstr "Liste der Einzelpolygone ist leer. Vorgang wird abgebrochen."
-
-#: flatcamObjects/FlatCAMGerber.py:779
-msgid "No polygon in selection."
-msgstr "Kein Polygon in der Auswahl."
-
-#: flatcamObjects/FlatCAMGerber.py:907 flatcamObjects/FlatCAMGerber.py:986
-#: flatcamTools/ToolNCC.py:2086 flatcamTools/ToolNCC.py:3137
-#: flatcamTools/ToolNCC.py:3516
-msgid "Isolation geometry could not be generated."
-msgstr "Isolationsgeometrie konnte nicht generiert werden."
-
-#: flatcamObjects/FlatCAMGerber.py:932 flatcamObjects/FlatCAMGerber.py:1064
-msgid "Isolation geometry created"
-msgstr "Isolationsgeometrie erstellt"
-
-#: flatcamObjects/FlatCAMGerber.py:941 flatcamObjects/FlatCAMGerber.py:1071
-msgid "Subtracting Geo"
-msgstr "Geo subtrahieren"
-
-#: flatcamObjects/FlatCAMGerber.py:1396
-msgid "Plotting Apertures"
-msgstr "Plotten Apertures"
-
-#: flatcamObjects/FlatCAMObj.py:234
-msgid "Name changed from"
-msgstr "Name geändert von"
-
-#: flatcamObjects/FlatCAMObj.py:234
-msgid "to"
-msgstr "zu"
-
-#: flatcamObjects/FlatCAMObj.py:245
-msgid "Offsetting..."
-msgstr "Offset hinzufügen ..."
-
-#: flatcamObjects/FlatCAMObj.py:259 flatcamObjects/FlatCAMObj.py:264
-msgid "Scaling could not be executed."
-msgstr "Skalierungsaktion wurde nicht ausgeführt."
-
-#: flatcamObjects/FlatCAMObj.py:268 flatcamObjects/FlatCAMObj.py:276
-msgid "Scale done."
-msgstr "Skalieren Sie fertig."
-
-#: flatcamObjects/FlatCAMObj.py:274
-msgid "Scaling..."
-msgstr "Skalierung ..."
-
-#: flatcamObjects/FlatCAMObj.py:292
-msgid "Skewing..."
-msgstr "Verziehen..."
-
-#: flatcamObjects/FlatCAMScript.py:163
-msgid "Script Editor"
-msgstr "Script Editor"
-
-#: flatcamObjects/ObjectCollection.py:510
-#, python-brace-format
-msgid "Object renamed from {old} to {new}"
-msgstr "Objekt umbenannt von {old} zu {new}"
-
-#: flatcamObjects/ObjectCollection.py:983
-msgid "Cause of error"
-msgstr "Fehlerursache"
-
-#: flatcamParsers/ParseExcellon.py:316
-msgid "This is GCODE mark"
-msgstr "Dies ist die GCODE-Marke"
-
-#: flatcamParsers/ParseExcellon.py:433
-msgid ""
-"No tool diameter info's. See shell.\n"
-"A tool change event: T"
-msgstr ""
-"Keine Angaben zum Werkzeugdurchmesser. Siehe Shell.\n"
-"Ein Werkzeugwechselereignis: T"
-
-#: flatcamParsers/ParseExcellon.py:436
-msgid ""
-"was found but the Excellon file have no informations regarding the tool "
-"diameters therefore the application will try to load it by using some 'fake' "
-"diameters.\n"
-"The user needs to edit the resulting Excellon object and change the "
-"diameters to reflect the real diameters."
-msgstr ""
-"wurde gefunden, aber die Excellon-Datei enthält keine Informationen zu den "
-"Werkzeugdurchmessern. Daher wird die Anwendung versuchen, diese mit Hilfe "
-"einiger gefälschter Durchmesser zu laden.\n"
-"Der Benutzer muss das resultierende Excellon-Objekt bearbeiten und die "
-"Durchmesser so ändern, dass sie den tatsächlichen Durchmessern entsprechen."
-
-#: flatcamParsers/ParseExcellon.py:900
-msgid ""
-"Excellon Parser error.\n"
-"Parsing Failed. Line"
-msgstr ""
-"Excellon-Parser-Fehler.\n"
-"Analyse fehlgeschlagen. Linie"
-
-#: flatcamParsers/ParseExcellon.py:982
-msgid ""
-"Excellon.create_geometry() -> a drill location was skipped due of not having "
-"a tool associated.\n"
-"Check the resulting GCode."
-msgstr ""
-"Excellon.create_geometry () -> Eine Bohrposition wurde übersprungen, da kein "
-"Werkzeug zugeordnet ist.\n"
-"Überprüfen Sie den resultierenden GCode."
-
-#: flatcamParsers/ParseFont.py:303
-msgid "Font not supported, try another one."
-msgstr "Schriftart wird nicht unterstützt, versuchen Sie es mit einer anderen."
-
-#: flatcamParsers/ParseGerber.py:426
-msgid "Gerber processing. Parsing"
-msgstr "Gerber-Verarbeitung. Parsing"
-
-#: flatcamParsers/ParseGerber.py:426 flatcamParsers/ParseHPGL2.py:182
-msgid "lines"
-msgstr "Linien"
-
-#: flatcamParsers/ParseGerber.py:1002 flatcamParsers/ParseGerber.py:1102
-#: flatcamParsers/ParseHPGL2.py:275 flatcamParsers/ParseHPGL2.py:289
-#: flatcamParsers/ParseHPGL2.py:308 flatcamParsers/ParseHPGL2.py:332
-#: flatcamParsers/ParseHPGL2.py:367
-msgid "Coordinates missing, line ignored"
-msgstr "Koordinaten fehlen, Zeile wird ignoriert"
-
-#: flatcamParsers/ParseGerber.py:1004 flatcamParsers/ParseGerber.py:1104
-msgid "GERBER file might be CORRUPT. Check the file !!!"
-msgstr "Die GERBER-Datei könnte CORRUPT sein. Überprüfen Sie die Datei !!!"
-
-#: flatcamParsers/ParseGerber.py:1058
-msgid ""
-"Region does not have enough points. File will be processed but there are "
-"parser errors. Line number"
-msgstr ""
-"Region hat nicht genug Punkte. Die Datei wird verarbeitet, es treten jedoch "
-"Parserfehler auf. Linien Nummer"
-
-#: flatcamParsers/ParseGerber.py:1488 flatcamParsers/ParseHPGL2.py:402
-msgid "Gerber processing. Joining polygons"
-msgstr "Gerber-Verarbeitung. Polygone verbinden"
-
-#: flatcamParsers/ParseGerber.py:1505
-msgid "Gerber processing. Applying Gerber polarity."
-msgstr "Gerber-Verarbeitung. Anwenden der Gerber-Polarität."
-
-#: flatcamParsers/ParseGerber.py:1565
-msgid "Gerber Line"
-msgstr "Gerber Linie"
-
-#: flatcamParsers/ParseGerber.py:1565
-msgid "Gerber Line Content"
-msgstr "Gerber-Zeileninhalt"
-
-#: flatcamParsers/ParseGerber.py:1567
-msgid "Gerber Parser ERROR"
-msgstr "Gerber-Parser FEHLER"
-
-#: flatcamParsers/ParseGerber.py:1957
-msgid "Gerber Scale done."
-msgstr "Gerber-Skalierung erfolgt."
-
-#: flatcamParsers/ParseGerber.py:2049
-msgid "Gerber Offset done."
-msgstr "Gerber Offset fertig."
-
-#: flatcamParsers/ParseGerber.py:2125
-msgid "Gerber Mirror done."
-msgstr "Gerber Spiegel fertig."
-
-#: flatcamParsers/ParseGerber.py:2199
-msgid "Gerber Skew done."
-msgstr "Gerber-Versatz fertig."
-
-#: flatcamParsers/ParseGerber.py:2261
-msgid "Gerber Rotate done."
-msgstr "Gerber drehen fertig."
-
-#: flatcamParsers/ParseGerber.py:2418
-msgid "Gerber Buffer done."
-msgstr "Gerber Buffer fertig."
-
-#: flatcamParsers/ParseHPGL2.py:182
-msgid "HPGL2 processing. Parsing"
-msgstr "HPGL2 -Verarbeitung. Parsing"
-
-#: flatcamParsers/ParseHPGL2.py:414
-msgid "HPGL2 Line"
-msgstr "HPGL2-Linie"
-
-#: flatcamParsers/ParseHPGL2.py:414
-msgid "HPGL2 Line Content"
-msgstr "HPGL2-Zeileninhalt"
-
-#: flatcamParsers/ParseHPGL2.py:415
-msgid "HPGL2 Parser ERROR"
-msgstr "HPGL2 -Parser FEHLER"
-
-#: flatcamTools/ToolAlignObjects.py:32
-msgid "Align Objects"
-msgstr "Objekte ausrichten"
-
-#: flatcamTools/ToolAlignObjects.py:61
-msgid "MOVING object"
-msgstr "BEWEGLICHES Objekt"
-
-#: flatcamTools/ToolAlignObjects.py:65
-msgid ""
-"Specify the type of object to be aligned.\n"
-"It can be of type: Gerber or Excellon.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Object combobox."
-msgstr ""
-"Geben Sie den Objekttyp an, der ausgerichtet werden soll.\n"
-"Es kann vom Typ sein: Gerber oder Excellon.\n"
-"Die Auswahl hier entscheidet über die Art der Objekte, die sein werden\n"
-"in der Objekt-Combobox."
-
-#: flatcamTools/ToolAlignObjects.py:86
-msgid "Object to be aligned."
-msgstr "Zu ausrichtendes Objekt."
-
-#: flatcamTools/ToolAlignObjects.py:98
-msgid "TARGET object"
-msgstr "ZIEL-Objekt"
-
-#: flatcamTools/ToolAlignObjects.py:100
-msgid ""
-"Specify the type of object to be aligned to.\n"
-"It can be of type: Gerber or Excellon.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Object combobox."
-msgstr ""
-"Geben Sie den Objekttyp an, an dem ausgerichtet werden soll.\n"
-"Es kann vom Typ sein: Gerber oder Excellon.\n"
-"Die Auswahl hier entscheidet über die Art der Objekte, die sein werden\n"
-"in der Objekt-Combobox."
-
-#: flatcamTools/ToolAlignObjects.py:122
-msgid "Object to be aligned to. Aligner."
-msgstr "Objekt, an dem ausgerichtet werden soll. Aligner."
-
-#: flatcamTools/ToolAlignObjects.py:135
-msgid "Alignment Type"
-msgstr "AusrichtungstypAusrichtung"
-
-#: flatcamTools/ToolAlignObjects.py:137
-msgid ""
-"The type of alignment can be:\n"
-"- Single Point -> it require a single point of sync, the action will be a "
-"translation\n"
-"- Dual Point -> it require two points of sync, the action will be "
-"translation followed by rotation"
-msgstr ""
-"Die Art der Ausrichtung kann sein:\n"
-"- Einzelpunkt -> Es ist ein einzelner Synchronisierungspunkt erforderlich. "
-"Die Aktion ist eine Übersetzung\n"
-"- Doppelpunkt -> Es sind zwei Synchronisierungspunkte erforderlich. Die "
-"Aktion wird verschoben und anschließend gedreht"
-
-#: flatcamTools/ToolAlignObjects.py:143
-msgid "Single Point"
-msgstr "Einziger Punkt"
-
-#: flatcamTools/ToolAlignObjects.py:144
-msgid "Dual Point"
-msgstr "Doppelpunkt"
-
-#: flatcamTools/ToolAlignObjects.py:159
-msgid "Align Object"
-msgstr "Objekt ausrichten"
-
-#: flatcamTools/ToolAlignObjects.py:161
-msgid ""
-"Align the specified object to the aligner object.\n"
-"If only one point is used then it assumes translation.\n"
-"If tho points are used it assume translation and rotation."
-msgstr ""
-"Richten Sie das angegebene Objekt am Aligner-Objekt aus.\n"
-"Wenn nur ein Punkt verwendet wird, wird eine Übersetzung vorausgesetzt.\n"
-"Wenn diese Punkte verwendet werden, wird eine Translation und Rotation "
-"angenommen."
-
-#: flatcamTools/ToolAlignObjects.py:176 flatcamTools/ToolCalculators.py:246
-#: flatcamTools/ToolCalibration.py:683 flatcamTools/ToolCopperThieving.py:484
-#: flatcamTools/ToolCutOut.py:362 flatcamTools/ToolDblSided.py:471
-#: flatcamTools/ToolExtractDrills.py:310 flatcamTools/ToolFiducials.py:318
-#: flatcamTools/ToolFilm.py:520 flatcamTools/ToolInvertGerber.py:140
-#: flatcamTools/ToolNCC.py:612 flatcamTools/ToolOptimal.py:237
-#: flatcamTools/ToolPaint.py:556 flatcamTools/ToolPanelize.py:269
-#: flatcamTools/ToolPunchGerber.py:339 flatcamTools/ToolQRCode.py:314
-#: flatcamTools/ToolRulesCheck.py:516 flatcamTools/ToolSolderPaste.py:473
-#: flatcamTools/ToolSub.py:176 flatcamTools/ToolTransform.py:398
-msgid "Reset Tool"
-msgstr "Reset Werkzeug"
-
-#: flatcamTools/ToolAlignObjects.py:178 flatcamTools/ToolCalculators.py:248
-#: flatcamTools/ToolCalibration.py:685 flatcamTools/ToolCopperThieving.py:486
-#: flatcamTools/ToolCutOut.py:364 flatcamTools/ToolDblSided.py:473
-#: flatcamTools/ToolExtractDrills.py:312 flatcamTools/ToolFiducials.py:320
-#: flatcamTools/ToolFilm.py:522 flatcamTools/ToolInvertGerber.py:142
-#: flatcamTools/ToolNCC.py:614 flatcamTools/ToolOptimal.py:239
-#: flatcamTools/ToolPaint.py:558 flatcamTools/ToolPanelize.py:271
-#: flatcamTools/ToolPunchGerber.py:341 flatcamTools/ToolQRCode.py:316
-#: flatcamTools/ToolRulesCheck.py:518 flatcamTools/ToolSolderPaste.py:475
-#: flatcamTools/ToolSub.py:178 flatcamTools/ToolTransform.py:400
-msgid "Will reset the tool parameters."
-msgstr "Wird die Werkzeugeinstellungen zurücksetzen."
-
-#: flatcamTools/ToolAlignObjects.py:244
-msgid "Align Tool"
-msgstr "Ausrichten Werkzeug"
-
-#: flatcamTools/ToolAlignObjects.py:289
-msgid "There is no aligned FlatCAM object selected..."
-msgstr "Es ist kein ausgerichtetes FlatCAM-Objekt ausgewählt ..."
-
-#: flatcamTools/ToolAlignObjects.py:299
-msgid "There is no aligner FlatCAM object selected..."
-msgstr "Es ist kein Aligner FlatCAM-Objekt ausgewählt ..."
-
-#: flatcamTools/ToolAlignObjects.py:325 flatcamTools/ToolAlignObjects.py:385
-msgid "First Point"
-msgstr "Erster Punkt"
-
-#: flatcamTools/ToolAlignObjects.py:325 flatcamTools/ToolAlignObjects.py:400
-msgid "Click on the START point."
-msgstr "Klicken Sie auf den START-Punkt."
-
-#: flatcamTools/ToolAlignObjects.py:380 flatcamTools/ToolCalibration.py:920
-msgid "Cancelled by user request."
-msgstr "Auf Benutzerwunsch storniert."
-
-#: flatcamTools/ToolAlignObjects.py:385 flatcamTools/ToolAlignObjects.py:407
-msgid "Click on the DESTINATION point."
-msgstr "Klicken Sie auf den Punkt ZIEL."
-
-#: flatcamTools/ToolAlignObjects.py:385 flatcamTools/ToolAlignObjects.py:400
-#: flatcamTools/ToolAlignObjects.py:407
-msgid "Or right click to cancel."
-msgstr "Oder klicken Sie mit der rechten Maustaste, um abzubrechen."
-
-#: flatcamTools/ToolAlignObjects.py:400 flatcamTools/ToolAlignObjects.py:407
-#: flatcamTools/ToolFiducials.py:111
-msgid "Second Point"
-msgstr "Zweiter Punkt"
-
-#: flatcamTools/ToolCalculators.py:24
-msgid "Calculators"
-msgstr "Rechner"
-
-#: flatcamTools/ToolCalculators.py:26
-msgid "Units Calculator"
-msgstr "Einheitenrechner"
-
-#: flatcamTools/ToolCalculators.py:70
-msgid "Here you enter the value to be converted from INCH to MM"
-msgstr ""
-"Hier geben Sie den Wert ein, der von Zoll in Metrik konvertiert werden soll"
-
-#: flatcamTools/ToolCalculators.py:75
-msgid "Here you enter the value to be converted from MM to INCH"
-msgstr ""
-"Hier geben Sie den Wert ein, der von Metrik in Zoll konvertiert werden soll"
-
-#: flatcamTools/ToolCalculators.py:111
-msgid ""
-"This is the angle of the tip of the tool.\n"
-"It is specified by manufacturer."
-msgstr ""
-"Dies ist der Winkel der Werkzeugspitze.\n"
-"Es wird vom Hersteller angegeben."
-
-#: flatcamTools/ToolCalculators.py:120
-msgid ""
-"This is the depth to cut into the material.\n"
-"In the CNCJob is the CutZ parameter."
-msgstr ""
-"Dies ist die Tiefe, in die das Material geschnitten werden soll.\n"
-"Im CNCJob befindet sich der Parameter CutZ."
-
-#: flatcamTools/ToolCalculators.py:128
-msgid ""
-"This is the tool diameter to be entered into\n"
-"FlatCAM Gerber section.\n"
-"In the CNCJob section it is called >Tool dia<."
-msgstr ""
-"Dies ist der Werkzeugdurchmesser, in den eingegeben werden soll\n"
-"FlatCAM-Gerber-Bereich.\n"
-"Im CNCJob-Bereich heißt es >Werkzeugdurchmesser<."
-
-#: flatcamTools/ToolCalculators.py:139 flatcamTools/ToolCalculators.py:235
-msgid "Calculate"
-msgstr "Berechnung"
-
-#: flatcamTools/ToolCalculators.py:142
-msgid ""
-"Calculate either the Cut Z or the effective tool diameter,\n"
-" depending on which is desired and which is known. "
-msgstr ""
-"Berechnen Sie entweder die Schnitttiefe Z oder den effektiven "
-"Werkzeugdurchmesser.\n"
-" je nachdem was gewünscht wird und was bekannt ist. "
-
-#: flatcamTools/ToolCalculators.py:205
-msgid "Current Value"
-msgstr "Aktueller Wert"
-
-#: flatcamTools/ToolCalculators.py:212
-msgid ""
-"This is the current intensity value\n"
-"to be set on the Power Supply. In Amps."
-msgstr ""
-"Dies ist der aktuelle Intensitätswert\n"
-"am Netzteil einstellen. In Ampere."
-
-#: flatcamTools/ToolCalculators.py:216
-msgid "Time"
-msgstr "Zeit"
-
-#: flatcamTools/ToolCalculators.py:223
-msgid ""
-"This is the calculated time required for the procedure.\n"
-"In minutes."
-msgstr ""
-"Dies ist die berechnete Zeit, die für das Verfahren benötigt wird.\n"
-"In Minuten."
-
-#: flatcamTools/ToolCalculators.py:238
-msgid ""
-"Calculate the current intensity value and the procedure time,\n"
-"depending on the parameters above"
-msgstr ""
-"Berechnen Sie den aktuellen Intensitätswert und die Eingriffszeit,\n"
-"abhängig von den obigen Parametern"
-
-#: flatcamTools/ToolCalculators.py:299
-msgid "Calc. Tool"
-msgstr "Rechner-Tool"
-
-#: flatcamTools/ToolCalibration.py:67
-msgid "GCode Parameters"
-msgstr "GCode-Parameter"
-
-#: flatcamTools/ToolCalibration.py:69
-msgid "Parameters used when creating the GCode in this tool."
-msgstr "Verwendete Parameter zum Erzeugen des GCodes mit diesem Wwerkzeug."
-
-#: flatcamTools/ToolCalibration.py:173
-msgid "STEP 1: Acquire Calibration Points"
-msgstr "Schritt 1: Kalibrierungspunkte erzeugen"
-
-#: flatcamTools/ToolCalibration.py:175
-msgid ""
-"Pick four points by clicking on canvas.\n"
-"Those four points should be in the four\n"
-"(as much as possible) corners of the object."
-msgstr ""
-"Wählen Sie vier Punkte aus, indem Sie auf die Leinwand klicken.\n"
-"Diese vier Punkte sollten in den vier sein\n"
-"(so viel wie möglich) Ecken des Objekts."
-
-#: flatcamTools/ToolCalibration.py:193 flatcamTools/ToolFilm.py:76
-#: flatcamTools/ToolImage.py:54 flatcamTools/ToolPanelize.py:78
-#: flatcamTools/ToolProperties.py:177
-msgid "Object Type"
-msgstr "Objekttyp"
-
-#: flatcamTools/ToolCalibration.py:210
-msgid "Source object selection"
-msgstr "Auswahl des Quellobjekts"
-
-#: flatcamTools/ToolCalibration.py:212
-msgid "FlatCAM Object to be used as a source for reference points."
-msgstr "Das FlatCAM-Objekt, das als Referenzpunkt verwendet werden soll."
-
-#: flatcamTools/ToolCalibration.py:218
-msgid "Calibration Points"
-msgstr "Kalibrierungspunkte"
-
-#: flatcamTools/ToolCalibration.py:220
-msgid ""
-"Contain the expected calibration points and the\n"
-"ones measured."
-msgstr ""
-"Enthalten die erwarteten Kalibrierungspunkte sowie\n"
-"die gemessenen."
-
-#: flatcamTools/ToolCalibration.py:235 flatcamTools/ToolSub.py:76
-#: flatcamTools/ToolSub.py:131
-msgid "Target"
-msgstr "Ziel"
-
-#: flatcamTools/ToolCalibration.py:236
-msgid "Found Delta"
-msgstr "Gefundener Unterschied"
-
-#: flatcamTools/ToolCalibration.py:248
-msgid "Bot Left X"
-msgstr "Unten links X"
-
-#: flatcamTools/ToolCalibration.py:257
-msgid "Bot Left Y"
-msgstr "Unten links Y"
-
-#: flatcamTools/ToolCalibration.py:275
-msgid "Bot Right X"
-msgstr "Unten rechts X"
-
-#: flatcamTools/ToolCalibration.py:285
-msgid "Bot Right Y"
-msgstr "Unten rechts Y"
-
-#: flatcamTools/ToolCalibration.py:300
-msgid "Top Left X"
-msgstr "Oben links X"
-
-#: flatcamTools/ToolCalibration.py:309
-msgid "Top Left Y"
-msgstr "Oben links Y"
-
-#: flatcamTools/ToolCalibration.py:324
-msgid "Top Right X"
-msgstr "Oben rechts X"
-
-#: flatcamTools/ToolCalibration.py:334
-msgid "Top Right Y"
-msgstr "Oben rechts Y"
-
-#: flatcamTools/ToolCalibration.py:367
-msgid "Get Points"
-msgstr "Punkte einholen"
-
-#: flatcamTools/ToolCalibration.py:369
-msgid ""
-"Pick four points by clicking on canvas if the source choice\n"
-"is 'free' or inside the object geometry if the source is 'object'.\n"
-"Those four points should be in the four squares of\n"
-"the object."
-msgstr ""
-"Wählen Sie vier Punkte indem Sie auf die Leinwand klicken (Freier Modus).\n"
-"Oder wählen Sie ein Objekt (Objekt Modus)\n"
-"Diese vier Punkte sollten in vier unterschiedlichen Quadranten des Objektes "
-"sein."
-
-#: flatcamTools/ToolCalibration.py:390
-msgid "STEP 2: Verification GCode"
-msgstr "Schritt 2: Überprüfung des GCodes"
-
-#: flatcamTools/ToolCalibration.py:392 flatcamTools/ToolCalibration.py:405
-msgid ""
-"Generate GCode file to locate and align the PCB by using\n"
-"the four points acquired above.\n"
-"The points sequence is:\n"
-"- first point -> set the origin\n"
-"- second point -> alignment point. Can be: top-left or bottom-right.\n"
-"- third point -> check point. Can be: top-left or bottom-right.\n"
-"- forth point -> final verification point. Just for evaluation."
-msgstr ""
-"Erstellen Sie eine GCode-Datei, um die Leiterplatte mithilfe von zu "
-"lokalisieren und auszurichten\n"
-"die vier oben erworbenen Punkte.\n"
-"Die Punktesequenz ist:\n"
-"- erster Punkt -> Ursprung einstellen\n"
-"- zweiter Punkt -> Ausrichtungspunkt. Kann sein: oben links oder unten "
-"rechts.\n"
-"- dritter Punkt -> Kontrollpunkt. Kann sein: oben links oder unten rechts.\n"
-"- vierter Punkt -> letzter Verifizierungspunkt. Nur zur Bewertung."
-
-#: flatcamTools/ToolCalibration.py:403 flatcamTools/ToolSolderPaste.py:348
-msgid "Generate GCode"
-msgstr "GCode generieren"
-
-#: flatcamTools/ToolCalibration.py:429
-msgid "STEP 3: Adjustments"
-msgstr "Schritt 3: Anpassungen"
-
-#: flatcamTools/ToolCalibration.py:431 flatcamTools/ToolCalibration.py:440
-msgid ""
-"Calculate Scale and Skew factors based on the differences (delta)\n"
-"found when checking the PCB pattern. The differences must be filled\n"
-"in the fields Found (Delta)."
-msgstr ""
-"Berechne die Skalierungs und Verzerrungsfaktoren basierend auf dem Delta\n"
-"das bei der Platinenüberprüfung gefunden wurde. Dieses Delta muss den "
-"Feldern\n"
-"eingetragen warden."
-
-#: flatcamTools/ToolCalibration.py:438
-msgid "Calculate Factors"
-msgstr "Berechne Faktoren"
-
-#: flatcamTools/ToolCalibration.py:460
-msgid "STEP 4: Adjusted GCode"
-msgstr "Schritt 4 Angepasster GCode"
-
-#: flatcamTools/ToolCalibration.py:462
-msgid ""
-"Generate verification GCode file adjusted with\n"
-"the factors above."
-msgstr ""
-"Erzeuge den GCode mit den zuvor gefundenen\n"
-"Faktoren."
-
-#: flatcamTools/ToolCalibration.py:467
-msgid "Scale Factor X:"
-msgstr "Skalierungsfaktor X:"
-
-#: flatcamTools/ToolCalibration.py:479
-msgid "Scale Factor Y:"
-msgstr "Skalierungsfaktor Y:"
-
-#: flatcamTools/ToolCalibration.py:491
-msgid "Apply Scale Factors"
-msgstr "Skalierungen anwenden"
-
-#: flatcamTools/ToolCalibration.py:493
-msgid "Apply Scale factors on the calibration points."
-msgstr "Anwenden der Skalierungsfaktoren auf die Kalibrierungspunkte."
-
-#: flatcamTools/ToolCalibration.py:503
-msgid "Skew Angle X:"
-msgstr "Verzerrungs-Winkel X:"
-
-#: flatcamTools/ToolCalibration.py:516
-msgid "Skew Angle Y:"
-msgstr "Verzerrungs-Winkel Y:"
-
-#: flatcamTools/ToolCalibration.py:529
-msgid "Apply Skew Factors"
-msgstr "Schrägstellung anwenden"
-
-#: flatcamTools/ToolCalibration.py:531
-msgid "Apply Skew factors on the calibration points."
-msgstr "Anwenden der Verzerrungswinkel auf die Bezugspunkte."
-
-#: flatcamTools/ToolCalibration.py:600
-msgid "Generate Adjusted GCode"
-msgstr "Angepassten Überprüfungs-GCode generieren"
-
-#: flatcamTools/ToolCalibration.py:602
-msgid ""
-"Generate verification GCode file adjusted with\n"
-"the factors set above.\n"
-"The GCode parameters can be readjusted\n"
-"before clicking this button."
-msgstr ""
-"Bestätigungs-GCode-Datei erstellen angepasst mit\n"
-"die oben genannten Faktoren.\n"
-"Die GCode-Parameter können neu eingestellt werden\n"
-"bevor Sie auf diese Schaltfläche klicken."
-
-#: flatcamTools/ToolCalibration.py:623
-msgid "STEP 5: Calibrate FlatCAM Objects"
-msgstr "Schritt 5: Kalibrieren der FlatCAM Objekte"
-
-#: flatcamTools/ToolCalibration.py:625
-msgid ""
-"Adjust the FlatCAM objects\n"
-"with the factors determined and verified above."
-msgstr ""
-"Anpassen der FlatCAM Objekte\n"
-"mit den zuvor bestimmten und überprüften Faktoren."
-
-#: flatcamTools/ToolCalibration.py:637
-msgid "Adjusted object type"
-msgstr "Angepasster Objekttyp"
-
-#: flatcamTools/ToolCalibration.py:638
-msgid "Type of the FlatCAM Object to be adjusted."
-msgstr "Art des FlatCAM Objektes das angepasst wird."
-
-#: flatcamTools/ToolCalibration.py:651
-msgid "Adjusted object selection"
-msgstr "Objektauswahl angepasst"
-
-#: flatcamTools/ToolCalibration.py:653
-msgid "The FlatCAM Object to be adjusted."
-msgstr "Das FlatCAM Objekt das angepasst werden muss."
-
-#: flatcamTools/ToolCalibration.py:660
-msgid "Calibrate"
-msgstr "Kalibrieren"
-
-#: flatcamTools/ToolCalibration.py:662
-msgid ""
-"Adjust (scale and/or skew) the objects\n"
-"with the factors determined above."
-msgstr ""
-"Anpassen (Skalieren und/oder Verzerren) der Objekte\n"
-"anhand der zuvor gefundenen Faktoren."
-
-#: flatcamTools/ToolCalibration.py:770 flatcamTools/ToolCalibration.py:771
-msgid "Origin"
-msgstr "Ursprung"
-
-#: flatcamTools/ToolCalibration.py:800
-msgid "Tool initialized"
-msgstr "Werkzeug eingerichtet"
-
-#: flatcamTools/ToolCalibration.py:838
-msgid "There is no source FlatCAM object selected..."
-msgstr "Es is kein FlatCAM Objekt ausgewählt."
-
-#: flatcamTools/ToolCalibration.py:859
-msgid "Get First calibration point. Bottom Left..."
-msgstr "Lese ersten Kalibrierungspunkt (Unten Links)"
-
-#: flatcamTools/ToolCalibration.py:926
-msgid "Get Second calibration point. Bottom Right (Top Left)..."
-msgstr "Zweiter Kalibrierungspunkt abrufen. Unten rechts (oben links) ..."
-
-#: flatcamTools/ToolCalibration.py:930
-msgid "Get Third calibration point. Top Left (Bottom Right)..."
-msgstr ""
-"Holen Sie sich den dritten Kalibrierungspunkt. Oben links unten rechts)..."
-
-#: flatcamTools/ToolCalibration.py:934
-msgid "Get Forth calibration point. Top Right..."
-msgstr "Lese vierten Kalibrierungspunkt (Oben Rechts)"
-
-#: flatcamTools/ToolCalibration.py:938
-msgid "Done. All four points have been acquired."
-msgstr "Erledigt, alle vier Punkte wurden gelesen."
-
-#: flatcamTools/ToolCalibration.py:969
-msgid "Verification GCode for FlatCAM Calibration Tool"
-msgstr "Überprüfungs GCode des FlatCAM Kalibrierungstools"
-
-#: flatcamTools/ToolCalibration.py:981 flatcamTools/ToolCalibration.py:1067
-msgid "Gcode Viewer"
-msgstr "GCode Anzeige"
-
-#: flatcamTools/ToolCalibration.py:997
-msgid "Cancelled. Four points are needed for GCode generation."
-msgstr "Abgebrochen. Es werden vier Punkte zur GCode Erzeugung benötigt."
-
-#: flatcamTools/ToolCalibration.py:1253 flatcamTools/ToolCalibration.py:1349
-msgid "There is no FlatCAM object selected..."
-msgstr "Es ist kein FlatCAM Objekt ausgewählt."
-
-#: flatcamTools/ToolCopperThieving.py:76 flatcamTools/ToolFiducials.py:261
-msgid "Gerber Object to which will be added a copper thieving."
-msgstr "Dem Gerber Objekt wird ein Copper Thieving hinzugefügt."
-
-# Double
-#: flatcamTools/ToolCopperThieving.py:98
-msgid ""
-"This set the distance between the copper thieving components\n"
-"(the polygon fill may be split in multiple polygons)\n"
-"and the copper traces in the Gerber file."
-msgstr ""
-"Diese Auswahl definiert den Abstand zwischen den \"Copper Thieving\" "
-"Komponenten.\n"
-"und den Kupferverbindungen im Gerber File (möglicherweise wird hierbei ein "
-"Polygon\n"
-"in mehrere aufgeteilt."
-
-# Double
-#: flatcamTools/ToolCopperThieving.py:131
-msgid ""
-"- 'Itself' - the copper thieving extent is based on the object extent.\n"
-"- 'Area Selection' - left mouse click to start selection of the area to be "
-"filled.\n"
-"- 'Reference Object' - will do copper thieving within the area specified by "
-"another object."
-msgstr ""
-"- 'Selbst' - die 'Copper Thieving' Ausdehnung basiert auf der "
-"Objektausdehnung.\n"
-"- 'Bereichsauswahl' - Klicken Sie mit der linken Maustaste, um den zu "
-"füllenden Bereich auszuwählen.\n"
-"- 'Referenzobjekt' - 'Copper Thieving' innerhalb des von einem anderen "
-"Objekt angegebenen Bereichs."
-
-#: flatcamTools/ToolCopperThieving.py:138 flatcamTools/ToolNCC.py:552
-#: flatcamTools/ToolPaint.py:496
-msgid "Ref. Type"
-msgstr "Ref. Typ"
-
-#: flatcamTools/ToolCopperThieving.py:140
-msgid ""
-"The type of FlatCAM object to be used as copper thieving reference.\n"
-"It can be Gerber, Excellon or Geometry."
-msgstr ""
-"Der Typ des FlatCAM-Objekts, das Copper Thieving-Referenz verwendet werden "
-"soll.\n"
-"Es kann Gerber, Excellon oder Geometry sein."
-
-#: flatcamTools/ToolCopperThieving.py:149 flatcamTools/ToolNCC.py:562
-#: flatcamTools/ToolPaint.py:506
-msgid "Ref. Object"
-msgstr "Ref. Objekt"
-
-#: flatcamTools/ToolCopperThieving.py:151 flatcamTools/ToolNCC.py:564
-#: flatcamTools/ToolPaint.py:508
-msgid "The FlatCAM object to be used as non copper clearing reference."
-msgstr ""
-"Das FlatCAM-Objekt, das als Nicht-Kupfer-Clearing-Referenz verwendet werden "
-"soll."
-
-# Double
-#: flatcamTools/ToolCopperThieving.py:327
-msgid "Insert Copper thieving"
-msgstr "'Coper Thieving' einsetzen"
-
-# Double
-#: flatcamTools/ToolCopperThieving.py:329
-msgid ""
-"Will add a polygon (may be split in multiple parts)\n"
-"that will surround the actual Gerber traces at a certain distance."
-msgstr ""
-"Fügt ein Polygon hinzu (kann in mehrere Teile geteilt werden)\n"
-"das wird die eigentlichen Gerber-Spuren in einem gewissen Abstand umgeben."
-
-# Double
-#: flatcamTools/ToolCopperThieving.py:388
-msgid "Insert Robber Bar"
-msgstr "'Robber Bar' einsetzen"
-
-# Double
-#: flatcamTools/ToolCopperThieving.py:390
-msgid ""
-"Will add a polygon with a defined thickness\n"
-"that will surround the actual Gerber object\n"
-"at a certain distance.\n"
-"Required when doing holes pattern plating."
-msgstr ""
-"Fügt ein Polygon mit einer definierten Dicke hinzu\n"
-"das wird das eigentliche Gerber-Objekt umgeben\n"
-"in einem bestimmten Abstand.\n"
-"Erforderlich für die Lochmusterbeschichtung."
-
-#: flatcamTools/ToolCopperThieving.py:414
-msgid "Select Soldermask object"
-msgstr "Lötmaskenobjekt auswählen"
-
-#: flatcamTools/ToolCopperThieving.py:416
-msgid ""
-"Gerber Object with the soldermask.\n"
-"It will be used as a base for\n"
-"the pattern plating mask."
-msgstr ""
-"Das Gerber Objekt mit der Lötmaske\n"
-"Wird als Basis verwendet."
-
-#: flatcamTools/ToolCopperThieving.py:445
-msgid "Plated area"
-msgstr "Beschichtetes Areal"
-
-#: flatcamTools/ToolCopperThieving.py:447
-msgid ""
-"The area to be plated by pattern plating.\n"
-"Basically is made from the openings in the plating mask.\n"
-"\n"
-"<> - the calculated area is actually a bit larger\n"
-"due of the fact that the soldermask openings are by design\n"
-"a bit larger than the copper pads, and this area is\n"
-"calculated from the soldermask openings."
-msgstr ""
-"Das zu beschichtende Areal.\n"
-"Generell wird es durch die Öffnungen in der Beschichtungsmaske erzeugt.\n"
-"\n"
-"ACHTUNG: das berechnete Areal ist etwas größer da die Lötmaskenöffnungen\n"
-"etwas größer als die Pads sind, und dieses Areal aus der Lötmaske berechnet "
-"wird."
-
-#: flatcamTools/ToolCopperThieving.py:458
-msgid "mm"
-msgstr "mm"
-
-#: flatcamTools/ToolCopperThieving.py:460
-msgid "in"
-msgstr "in"
-
-#: flatcamTools/ToolCopperThieving.py:467
-msgid "Generate pattern plating mask"
-msgstr "Generieren der Beschichtungsmaske"
-
-#: flatcamTools/ToolCopperThieving.py:469
-msgid ""
-"Will add to the soldermask gerber geometry\n"
-"the geometries of the copper thieving and/or\n"
-"the robber bar if those were generated."
-msgstr ""
-"Wird die Lötmaske des Copper Thivings und/oder der \n"
-"Robber Bar zu der Gerber Geometrie hinzufügen, sofern\n"
-"diese erzeugt worden sind."
-
-#: flatcamTools/ToolCopperThieving.py:625
-#: flatcamTools/ToolCopperThieving.py:650
-msgid "Lines Grid works only for 'itself' reference ..."
-msgstr "Schraffur geht nur bei \"Selbst\" Referenz ..."
-
-#: flatcamTools/ToolCopperThieving.py:636
-msgid "Solid fill selected."
-msgstr "Vollständige Füllung gewählt."
-
-#: flatcamTools/ToolCopperThieving.py:641
-msgid "Dots grid fill selected."
-msgstr "Punktmusterfüllung gewählt."
-
-#: flatcamTools/ToolCopperThieving.py:646
-msgid "Squares grid fill selected."
-msgstr "Quadratfüllung gewählt."
-
-#: flatcamTools/ToolCopperThieving.py:667
-#: flatcamTools/ToolCopperThieving.py:749
-#: flatcamTools/ToolCopperThieving.py:1345 flatcamTools/ToolDblSided.py:657
-#: flatcamTools/ToolExtractDrills.py:436 flatcamTools/ToolFiducials.py:466
-#: flatcamTools/ToolFiducials.py:743 flatcamTools/ToolOptimal.py:342
-#: flatcamTools/ToolPunchGerber.py:512 flatcamTools/ToolQRCode.py:426
-msgid "There is no Gerber object loaded ..."
-msgstr "Es ist kein Gerber-Objekt geladen ..."
-
-#: flatcamTools/ToolCopperThieving.py:680
-#: flatcamTools/ToolCopperThieving.py:1273
-msgid "Append geometry"
-msgstr "Geometrie angehängt"
-
-#: flatcamTools/ToolCopperThieving.py:724
-#: flatcamTools/ToolCopperThieving.py:1306
-#: flatcamTools/ToolCopperThieving.py:1459
-msgid "Append source file"
-msgstr "Fügen Sie die Quelldatei an"
-
-# Don`t know what a Copper Thieving Tool would do hence hard to translate
-#: flatcamTools/ToolCopperThieving.py:732
-#: flatcamTools/ToolCopperThieving.py:1314
-msgid "Copper Thieving Tool done."
-msgstr "'Copper Thieving' Werkzeug fertig."
-
-#: flatcamTools/ToolCopperThieving.py:759
-#: flatcamTools/ToolCopperThieving.py:792 flatcamTools/ToolCutOut.py:519
-#: flatcamTools/ToolCutOut.py:724 flatcamTools/ToolInvertGerber.py:208
-#: flatcamTools/ToolNCC.py:1599 flatcamTools/ToolNCC.py:1640
-#: flatcamTools/ToolNCC.py:1669 flatcamTools/ToolPaint.py:1474
-#: flatcamTools/ToolPanelize.py:412 flatcamTools/ToolPanelize.py:426
-#: flatcamTools/ToolSub.py:294 flatcamTools/ToolSub.py:307
-#: flatcamTools/ToolSub.py:498 flatcamTools/ToolSub.py:513
-#: tclCommands/TclCommandCopperClear.py:97 tclCommands/TclCommandPaint.py:99
-msgid "Could not retrieve object"
-msgstr "Objekt konnte nicht abgerufen werden"
-
-#: flatcamTools/ToolCopperThieving.py:820
-msgid "Click the end point of the filling area."
-msgstr "Klicken Sie auf den Endpunkt des Ausfüllbereichs."
-
-#: flatcamTools/ToolCopperThieving.py:942
-#: flatcamTools/ToolCopperThieving.py:946
-#: flatcamTools/ToolCopperThieving.py:1007
-msgid "Thieving"
-msgstr "Diebstahl"
-
-#: flatcamTools/ToolCopperThieving.py:953
-msgid "Copper Thieving Tool started. Reading parameters."
-msgstr "Copper Thieving Tool gestartet. Parameter lesen."
-
-#: flatcamTools/ToolCopperThieving.py:978
-msgid "Copper Thieving Tool. Preparing isolation polygons."
-msgstr "Copper Thieving-Tool. Vorbereitung von isolierenden Polygonen."
-
-#: flatcamTools/ToolCopperThieving.py:1023
-msgid "Copper Thieving Tool. Preparing areas to fill with copper."
-msgstr "Copper Thieving Tool: Areale zur Kupferfüllung vorbereiten."
-
-#: flatcamTools/ToolCopperThieving.py:1034 flatcamTools/ToolOptimal.py:349
-#: flatcamTools/ToolPanelize.py:799 flatcamTools/ToolRulesCheck.py:1127
-msgid "Working..."
-msgstr "Arbeiten..."
-
-#: flatcamTools/ToolCopperThieving.py:1061
-msgid "Geometry not supported for bounding box"
-msgstr "Geometrie für Umriss nicht unterstützt"
-
-#: flatcamTools/ToolCopperThieving.py:1067 flatcamTools/ToolNCC.py:1933
-#: flatcamTools/ToolNCC.py:1988 flatcamTools/ToolNCC.py:2992
-#: flatcamTools/ToolPaint.py:3380
-msgid "No object available."
-msgstr "Kein Objekt vorhanden."
-
-#: flatcamTools/ToolCopperThieving.py:1104 flatcamTools/ToolNCC.py:1958
-#: flatcamTools/ToolNCC.py:2011 flatcamTools/ToolNCC.py:3034
-msgid "The reference object type is not supported."
-msgstr "Der Referenzobjekttyp wird nicht unterstützt."
-
-#: flatcamTools/ToolCopperThieving.py:1109
-msgid "Copper Thieving Tool. Appending new geometry and buffering."
-msgstr "Copper Thieving Tool. Füge neue Geometrie an und puffere sie."
-
-#: flatcamTools/ToolCopperThieving.py:1125
-msgid "Create geometry"
-msgstr "Geometrie erstellen"
-
-#: flatcamTools/ToolCopperThieving.py:1325
-#: flatcamTools/ToolCopperThieving.py:1329
-msgid "P-Plating Mask"
-msgstr "P-Beschichtungsmaske"
-
-#: flatcamTools/ToolCopperThieving.py:1351
-msgid "Append PP-M geometry"
-msgstr "PPM Geometrie hinzufügen"
-
-#: flatcamTools/ToolCopperThieving.py:1477
-msgid "Generating Pattern Plating Mask done."
-msgstr "Erzeugen der PPM abgeschlossen."
-
-#: flatcamTools/ToolCopperThieving.py:1549
-msgid "Copper Thieving Tool exit."
-msgstr "Copper Thieving Tool verlassen."
-
-#: flatcamTools/ToolCutOut.py:41
-msgid "Cutout PCB"
-msgstr "Ausschnitt PCB"
-
-#: flatcamTools/ToolCutOut.py:69 flatcamTools/ToolPanelize.py:54
-msgid "Source Object"
-msgstr "Quellobjekt"
-
-#: flatcamTools/ToolCutOut.py:70
-msgid "Object to be cutout"
-msgstr "Auszuschneidendes Objekt"
-
-#: flatcamTools/ToolCutOut.py:75
-msgid "Kind"
-msgstr "Typ"
-
-#: flatcamTools/ToolCutOut.py:97
-msgid ""
-"Specify the type of object to be cutout.\n"
-"It can be of type: Gerber or Geometry.\n"
-"What is selected here will dictate the kind\n"
-"of objects that will populate the 'Object' combobox."
-msgstr ""
-"Geben Sie den Objekttyp an, der ausgeschnitten werden soll.\n"
-"Es kann vom Typ sein: Gerber oder Geometrie.\n"
-"Was hier ausgewählt wird, bestimmt die Art\n"
-"von Objekten, die die Combobox 'Object' füllen."
-
-#: flatcamTools/ToolCutOut.py:121
-msgid "Tool Parameters"
-msgstr "Werkzeugparameter"
-
-#: flatcamTools/ToolCutOut.py:238
-msgid "A. Automatic Bridge Gaps"
-msgstr "A. Automatische Brückenlücken"
-
-#: flatcamTools/ToolCutOut.py:240
-msgid "This section handle creation of automatic bridge gaps."
-msgstr "Dieser Abschnitt behandelt die Erstellung automatischer Brückenlücken."
-
-#: flatcamTools/ToolCutOut.py:247
-msgid ""
-"Number of gaps used for the Automatic cutout.\n"
-"There can be maximum 8 bridges/gaps.\n"
-"The choices are:\n"
-"- None - no gaps\n"
-"- lr - left + right\n"
-"- tb - top + bottom\n"
-"- 4 - left + right +top + bottom\n"
-"- 2lr - 2*left + 2*right\n"
-"- 2tb - 2*top + 2*bottom\n"
-"- 8 - 2*left + 2*right +2*top + 2*bottom"
-msgstr ""
-"Anzahl der Lücken, die für den automatischen Ausschnitt verwendet werden.\n"
-"Es können maximal 8 Brücken / Lücken vorhanden sein.\n"
-"Die Wahlmöglichkeiten sind:\n"
-"- Keine - keine Lücken\n"
-"- lr \t- links + rechts\n"
-"- tb \t- oben + unten\n"
-"- 4 \t- links + rechts + oben + unten\n"
-"- 2lr \t- 2 * links + 2 * rechts\n"
-"- 2 tb \t- 2 * oben + 2 * unten\n"
-"- 8 \t- 2 * links + 2 * rechts + 2 * oben + 2 * unten"
-
-#: flatcamTools/ToolCutOut.py:269
-msgid "Generate Freeform Geometry"
-msgstr "Freiform Geometrie erzeugen"
-
-#: flatcamTools/ToolCutOut.py:271
-msgid ""
-"Cutout the selected object.\n"
-"The cutout shape can be of any shape.\n"
-"Useful when the PCB has a non-rectangular shape."
-msgstr ""
-"Schneiden Sie das ausgewählte Objekt aus.\n"
-"Die Ausschnittform kann eine beliebige Form haben.\n"
-"Nützlich, wenn die Leiterplatte eine nicht rechteckige Form hat."
-
-#: flatcamTools/ToolCutOut.py:283
-msgid "Generate Rectangular Geometry"
-msgstr "Rechteck Geometrie erzeugen"
-
-#: flatcamTools/ToolCutOut.py:285
-msgid ""
-"Cutout the selected object.\n"
-"The resulting cutout shape is\n"
-"always a rectangle shape and it will be\n"
-"the bounding box of the Object."
-msgstr ""
-"Schneiden Sie das ausgewählte Objekt aus.\n"
-"Die resultierende Ausschnittform ist\n"
-"immer eine rechteckige Form und es wird sein\n"
-"der Begrenzungsrahmen des Objekts."
-
-#: flatcamTools/ToolCutOut.py:304
-msgid "B. Manual Bridge Gaps"
-msgstr "B. Manuelle Brückenlücken"
-
-#: flatcamTools/ToolCutOut.py:306
-msgid ""
-"This section handle creation of manual bridge gaps.\n"
-"This is done by mouse clicking on the perimeter of the\n"
-"Geometry object that is used as a cutout object. "
-msgstr ""
-"In diesem Abschnitt wird die Erstellung manueller Brückenlücken behandelt.\n"
-"Dies geschieht durch einen Mausklick auf den Umfang des\n"
-"Geometrieobjekt, das als Ausschnittobjekt verwendet wird. "
-
-#: flatcamTools/ToolCutOut.py:321
-msgid "Geometry object used to create the manual cutout."
-msgstr "Geometrieobjekt zum Erstellen des manuellen Ausschnitts."
-
-#: flatcamTools/ToolCutOut.py:328
-msgid "Generate Manual Geometry"
-msgstr "Manuelle Geometrie erzeugen"
-
-#: flatcamTools/ToolCutOut.py:330
-msgid ""
-"If the object to be cutout is a Gerber\n"
-"first create a Geometry that surrounds it,\n"
-"to be used as the cutout, if one doesn't exist yet.\n"
-"Select the source Gerber file in the top object combobox."
-msgstr ""
-"Wenn das auszuschneidende Objekt ein Gerber ist\n"
-"erstelle eine Geometrie, die sie umgibt,\n"
-"als Ausschnitt verwendet werden, falls noch nicht vorhanden.\n"
-"Wählen Sie in der oberen Objekt-Combobox die Quell-Gerber-Datei aus."
-
-#: flatcamTools/ToolCutOut.py:343
-msgid "Manual Add Bridge Gaps"
-msgstr "Manuelles Hinzufügen von Brückenlücken"
-
-#: flatcamTools/ToolCutOut.py:345
-msgid ""
-"Use the left mouse button (LMB) click\n"
-"to create a bridge gap to separate the PCB from\n"
-"the surrounding material.\n"
-"The LMB click has to be done on the perimeter of\n"
-"the Geometry object used as a cutout geometry."
-msgstr ""
-"Klicken Sie mit der linken Maustaste (LMB)\n"
-"Erstellen einer Brückenlücke, um die Leiterplatte von zu trennen\n"
-"das umgebende Material.\n"
-"Der LMB-Klick muss am Umfang von erfolgen\n"
-"das Geometrieobjekt, das als Ausschnittsgeometrie verwendet wird."
-
-#: flatcamTools/ToolCutOut.py:524
-msgid ""
-"There is no object selected for Cutout.\n"
-"Select one and try again."
-msgstr ""
-"Es ist kein Objekt für den Ausschnitt ausgewählt.\n"
-"Wählen Sie eine aus und versuchen Sie es erneut."
-
-#: flatcamTools/ToolCutOut.py:530 flatcamTools/ToolCutOut.py:733
-#: flatcamTools/ToolCutOut.py:914 flatcamTools/ToolCutOut.py:996
-#: tclCommands/TclCommandGeoCutout.py:184
-msgid "Tool Diameter is zero value. Change it to a positive real number."
-msgstr ""
-"Werkzeugdurchmesser ist Nullwert. Ändern Sie es in eine positive reelle Zahl."
-
-#: flatcamTools/ToolCutOut.py:544 flatcamTools/ToolCutOut.py:748
-msgid "Number of gaps value is missing. Add it and retry."
-msgstr ""
-"Der Wert für die Anzahl der Lücken fehlt. Fügen Sie es hinzu und versuchen "
-"Sie es erneut."
-
-#: flatcamTools/ToolCutOut.py:549 flatcamTools/ToolCutOut.py:752
-msgid ""
-"Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. "
-"Fill in a correct value and retry. "
-msgstr ""
-"Der Lückenwert kann nur einer der folgenden Werte sein: \"Keine\", \"lr\", "
-"\"tb\", \"2lr\", \"2tb\", 4 oder 8. Geben Sie einen korrekten Wert ein und "
-"wiederholen Sie den Vorgang. "
-
-#: flatcamTools/ToolCutOut.py:554 flatcamTools/ToolCutOut.py:758
-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 ""
-"Bei einer Multi-Geo-Geometrie können keine Ausschnitte vorgenommen werden.\n"
-"Optional kann diese Multi-Geo-Geometrie in Single-Geo-Geometrie konvertiert "
-"werden.\n"
-"und danach Cutout durchführen."
-
-#: flatcamTools/ToolCutOut.py:706 flatcamTools/ToolCutOut.py:903
-msgid "Any form CutOut operation finished."
-msgstr "Jede Form CutOut-Operation ist abgeschlossen."
-
-#: flatcamTools/ToolCutOut.py:728 flatcamTools/ToolInvertGerber.py:214
-#: flatcamTools/ToolNCC.py:1603 flatcamTools/ToolPaint.py:1397
-#: flatcamTools/ToolPanelize.py:417 tclCommands/TclCommandBbox.py:71
-#: tclCommands/TclCommandNregions.py:71
-msgid "Object not found"
-msgstr "Objekt nicht gefunden"
-
-#: flatcamTools/ToolCutOut.py:872
-msgid "Rectangular cutout with negative margin is not possible."
-msgstr "Ein rechteckiger Ausschnitt mit negativem Rand ist nicht möglich."
-
-#: flatcamTools/ToolCutOut.py:908
-msgid ""
-"Click on the selected geometry object perimeter to create a bridge gap ..."
-msgstr ""
-"Klicken Sie auf den ausgewählten Umfang des Geometrieobjekts, um eine "
-"Brückenlücke zu erstellen ..."
-
-#: flatcamTools/ToolCutOut.py:925 flatcamTools/ToolCutOut.py:951
-msgid "Could not retrieve Geometry object"
-msgstr "Geometrieobjekt konnte nicht abgerufen werden"
-
-#: flatcamTools/ToolCutOut.py:956
-msgid "Geometry object for manual cutout not found"
-msgstr "Geometrieobjekt für manuellen Ausschnitt nicht gefunden"
-
-#: flatcamTools/ToolCutOut.py:966
-msgid "Added manual Bridge Gap."
-msgstr "Manuelle Brückenlücke hinzugefügt."
-
-#: flatcamTools/ToolCutOut.py:978
-msgid "Could not retrieve Gerber object"
-msgstr "Gerber-Objekt konnte nicht abgerufen werden"
-
-#: flatcamTools/ToolCutOut.py:983
-msgid ""
-"There is no Gerber object selected for Cutout.\n"
-"Select one and try again."
-msgstr ""
-"Es ist kein Gerber-Objekt für den Ausschnitt ausgewählt.\n"
-"Wählen Sie eine aus und versuchen Sie es erneut."
-
-#: flatcamTools/ToolCutOut.py:989
-msgid ""
-"The selected object has to be of Gerber type.\n"
-"Select a Gerber file and try again."
-msgstr ""
-"Das ausgewählte Objekt muss vom Typ Gerber sein.\n"
-"Wählen Sie eine Gerber-Datei aus und versuchen Sie es erneut."
-
-#: flatcamTools/ToolCutOut.py:1024
-msgid "Geometry not supported for cutout"
-msgstr "Geometrie für Ausschnitt nicht unterstützt"
-
-#: flatcamTools/ToolCutOut.py:1099
-msgid "Making manual bridge gap..."
-msgstr "Manuelle Brückenlücke herstellen ..."
-
-#: flatcamTools/ToolDblSided.py:26
-msgid "2-Sided PCB"
-msgstr "2-seitige PCB"
-
-#: flatcamTools/ToolDblSided.py:52
-msgid "Mirror Operation"
-msgstr "Spiegelbetrieb"
-
-#: flatcamTools/ToolDblSided.py:53
-msgid "Objects to be mirrored"
-msgstr "Zu spiegelnde Objekte"
-
-#: flatcamTools/ToolDblSided.py:65
-msgid "Gerber to be mirrored"
-msgstr "Zu spiegelndes Gerber"
-
-#: flatcamTools/ToolDblSided.py:69 flatcamTools/ToolDblSided.py:97
-#: flatcamTools/ToolDblSided.py:127
-msgid ""
-"Mirrors (flips) the specified object around \n"
-"the specified axis. Does not create a new \n"
-"object, but modifies it."
-msgstr ""
-"Spiegelt das angegebene Objekt um\n"
-"die angegebene Achse. Erstellt kein neues\n"
-"Objekt, ändert es aber."
-
-#: flatcamTools/ToolDblSided.py:93
-msgid "Excellon Object to be mirrored."
-msgstr "Zu spiegelndes Excellon-Objekt."
-
-#: flatcamTools/ToolDblSided.py:122
-msgid "Geometry Obj to be mirrored."
-msgstr "Geometrie-Objekt, das gespiegelt werden soll."
-
-#: flatcamTools/ToolDblSided.py:158
-msgid "Mirror Parameters"
-msgstr "Spiegelparameter"
-
-#: flatcamTools/ToolDblSided.py:159
-msgid "Parameters for the mirror operation"
-msgstr "Parameter für die Spiegeloperation"
-
-#: flatcamTools/ToolDblSided.py:164
-msgid "Mirror Axis"
-msgstr "Spiegelachse"
-
-#: flatcamTools/ToolDblSided.py:175
-msgid ""
-"The coordinates used as reference for the mirror operation.\n"
-"Can be:\n"
-"- Point -> a set of coordinates (x,y) around which the object is mirrored\n"
-"- Box -> a set of coordinates (x, y) obtained from the center of the\n"
-"bounding box of another object selected below"
-msgstr ""
-"Die Koordinaten, die als Referenz für die Spiegeloperation verwendet "
-"werden.\n"
-"Kann sein:\n"
-"- Punkt -> eine Reihe von Koordinaten (x, y), um die das Objekt gespiegelt "
-"wird\n"
-"- Box -> ein Satz von Koordinaten (x, y), die aus der Mitte des erhalten "
-"werden\n"
-"Begrenzungsrahmen eines anderen unten ausgewählten Objekts"
-
-#: flatcamTools/ToolDblSided.py:189
-msgid "Point coordinates"
-msgstr "Punktkoordinaten"
-
-#: flatcamTools/ToolDblSided.py:194
-msgid ""
-"Add the coordinates in format (x, y) through which the mirroring "
-"axis\n"
-" selected in 'MIRROR AXIS' pass.\n"
-"The (x, y) coordinates are captured by pressing SHIFT key\n"
-"and left mouse button click on canvas or you can enter the coordinates "
-"manually."
-msgstr ""
-"Fügen Sie die Koordinaten im Format (x, y) hinzu, durch die die "
-"Spiegelungsachse verläuft\n"
-"ausgewählt im Pass 'Spiegelachse'.\n"
-"Die (x, y) -Koordinaten werden durch Drücken der SHIFT erfasst\n"
-"und klicken Sie mit der linken Maustaste auf die Leinwand oder Sie können "
-"die Koordinaten manuell eingeben."
-
-#: flatcamTools/ToolDblSided.py:218
-msgid ""
-"It can be of type: Gerber or Excellon or Geometry.\n"
-"The coordinates of the center of the bounding box are used\n"
-"as reference for mirror operation."
-msgstr ""
-"Es kann vom Typ sein: Gerber oder Excellon oder Geometrie.\n"
-"Die Koordinaten der Mitte des Begrenzungsrahmens werden verwendet\n"
-"als Referenz für den Spiegelbetrieb."
-
-#: flatcamTools/ToolDblSided.py:252
-msgid "Bounds Values"
-msgstr "Grenzen Werte"
-
-#: flatcamTools/ToolDblSided.py:254
-msgid ""
-"Select on canvas the object(s)\n"
-"for which to calculate bounds values."
-msgstr ""
-"Wählen Sie auf der Leinwand die Objekte aus.\n"
-"für die Grenzwerte berechnet werden sollen."
-
-#: flatcamTools/ToolDblSided.py:264
-msgid "X min"
-msgstr "X min"
-
-#: flatcamTools/ToolDblSided.py:266 flatcamTools/ToolDblSided.py:280
-msgid "Minimum location."
-msgstr "Mindeststandort."
-
-#: flatcamTools/ToolDblSided.py:278
-msgid "Y min"
-msgstr "Y min"
-
-#: flatcamTools/ToolDblSided.py:292
-msgid "X max"
-msgstr "X max"
-
-#: flatcamTools/ToolDblSided.py:294 flatcamTools/ToolDblSided.py:308
-msgid "Maximum location."
-msgstr "Maximaler Standort."
-
-#: flatcamTools/ToolDblSided.py:306
-msgid "Y max"
-msgstr "Y max"
-
-#: flatcamTools/ToolDblSided.py:317
-msgid "Center point coordinates"
-msgstr "Mittelpunktskoordinaten"
-
-#: flatcamTools/ToolDblSided.py:319
-msgid "Centroid"
-msgstr "Schwerpunkt"
-
-#: flatcamTools/ToolDblSided.py:321
-msgid ""
-"The center point location for the rectangular\n"
-"bounding shape. Centroid. Format is (x, y)."
-msgstr ""
-"Die Mittelpunktposition für das Rechteck\n"
-"begrenzende Form. Centroid. Das Format ist (x, y)."
-
-#: flatcamTools/ToolDblSided.py:330
-msgid "Calculate Bounds Values"
-msgstr "Berechnen Sie Grenzwerte"
-
-#: flatcamTools/ToolDblSided.py:332
-msgid ""
-"Calculate the enveloping rectangular shape coordinates,\n"
-"for the selection of objects.\n"
-"The envelope shape is parallel with the X, Y axis."
-msgstr ""
-"Berechnen Sie die einhüllenden rechteckigen Formkoordinaten,\n"
-"zur Auswahl von Objekten.\n"
-"Die Hüllkurvenform verläuft parallel zur X- und Y-Achse."
-
-#: flatcamTools/ToolDblSided.py:352
-msgid "PCB Alignment"
-msgstr "PCB-Ausrichtung"
-
-#: flatcamTools/ToolDblSided.py:354 flatcamTools/ToolDblSided.py:456
-msgid ""
-"Creates an Excellon Object containing the\n"
-"specified alignment holes and their mirror\n"
-"images."
-msgstr ""
-"Erstellt ein Excellon-Objekt, das das enthält\n"
-"spezifizierte Ausrichtungslöcher und deren Spiegel\n"
-"Bilder."
-
-#: flatcamTools/ToolDblSided.py:361
-msgid "Drill Diameter"
-msgstr "Bohrdurchmesser"
-
-#: flatcamTools/ToolDblSided.py:390 flatcamTools/ToolDblSided.py:397
-msgid ""
-"The reference point used to create the second alignment drill\n"
-"from the first alignment drill, by doing mirror.\n"
-"It can be modified in the Mirror Parameters -> Reference section"
-msgstr ""
-"Der Referenzpunkt, der zum Erstellen des zweiten Ausrichtungsbohrers "
-"verwendet wird\n"
-"vom ersten Ausrichtungsbohrer durch Spiegeln.\n"
-"Sie kann im Abschnitt Spiegelparameter -> Referenz geändert werden"
-
-#: flatcamTools/ToolDblSided.py:410
-msgid "Alignment Drill Coordinates"
-msgstr "Ausrichtungsbohrkoordinaten"
-
-#: flatcamTools/ToolDblSided.py:412
-msgid ""
-"Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For "
-"each set of (x, y) coordinates\n"
-"entered here, a pair of drills will be created:\n"
-"\n"
-"- one drill at the coordinates from the field\n"
-"- one drill in mirror position over the axis selected above in the 'Align "
-"Axis'."
-msgstr ""
-"Ausrichtungslöcher (x1, y1), (x2, y2), ... auf einer Seite der Spiegelachse. "
-"Für jeden Satz von (x, y) Koordinaten\n"
-"Hier wird ein Paar Bohrer erstellt:\n"
-"\n"
-"- Ein Bohrer an den Koordinaten vom Feld\n"
-"- Ein Bohrer in Spiegelposition über der oben in 'Achse ausrichten' "
-"ausgewählten Achse."
-
-#: flatcamTools/ToolDblSided.py:420
-msgid "Drill coordinates"
-msgstr "Bohrkoordinaten"
-
-#: flatcamTools/ToolDblSided.py:427
-msgid ""
-"Add alignment drill holes coordinates in the format: (x1, y1), (x2, "
-"y2), ... \n"
-"on one side of the alignment axis.\n"
-"\n"
-"The coordinates set can be obtained:\n"
-"- press SHIFT key and left mouse clicking on canvas. Then click Add.\n"
-"- press SHIFT key and left mouse clicking on canvas. Then Ctrl+V in the "
-"field.\n"
-"- press SHIFT key and left mouse clicking on canvas. Then RMB click in the "
-"field and click Paste.\n"
-"- by entering the coords manually in the format: (x1, y1), (x2, y2), ..."
-msgstr ""
-"Fügen Sie Koordinaten für Ausrichtungsbohrungen im folgenden Format hinzu: "
-"(x1, y1), (x2, y2), ...\n"
-"auf einer Seite der Ausrichtungsachse.\n"
-"\n"
-"Die eingestellten Koordinaten erhalten Sie:\n"
-"- Drücken Sie die SHIFT-taste und klicken Sie mit der linken Maustaste auf "
-"die Leinwand. Klicken Sie dann auf Hinzufügen.\n"
-"- Drücken Sie die SHIFT-tasteund klicken Sie mit der linken Maustaste auf "
-"die Leinwand. Dann Strg + V im Feld.\n"
-"- Drücken Sie die SHIFT-tasteund klicken Sie mit der linken Maustaste auf "
-"die Leinwand. Klicken Sie dann in das Feld und dann auf Einfügen.\n"
-"- durch manuelle Eingabe der Koordinaten im Format: (x1, y1), (x2, y2), ..."
-
-#: flatcamTools/ToolDblSided.py:442
-msgid "Delete Last"
-msgstr "Letzte löschen"
-
-#: flatcamTools/ToolDblSided.py:444
-msgid "Delete the last coordinates tuple in the list."
-msgstr "Delete the last coordinates tuple in the list."
-
-#: flatcamTools/ToolDblSided.py:454
-msgid "Create Excellon Object"
-msgstr "Excellon-Objekt erstellen"
-
-#: flatcamTools/ToolDblSided.py:541
-msgid "2-Sided Tool"
-msgstr "2-seitiges Werkzeug"
-
-#: flatcamTools/ToolDblSided.py:581
-msgid ""
-"'Point' reference is selected and 'Point' coordinates are missing. Add them "
-"and retry."
-msgstr ""
-"'Point'-Referenz ist ausgewählt und' Point'-Koordinaten fehlen. Fügen Sie "
-"sie hinzu und versuchen Sie es erneut."
-
-#: flatcamTools/ToolDblSided.py:600
-msgid "There is no Box reference object loaded. Load one and retry."
-msgstr ""
-"Es ist kein Box-Referenzobjekt geladen. Laden Sie einen und versuchen Sie es "
-"erneut."
-
-#: flatcamTools/ToolDblSided.py:612
-msgid "No value or wrong format in Drill Dia entry. Add it and retry."
-msgstr ""
-"Kein Wert oder falsches Format im Eintrag Bohrdurchmesser. Fügen Sie es "
-"hinzu und versuchen Sie es erneut."
-
-#: flatcamTools/ToolDblSided.py:623
-msgid "There are no Alignment Drill Coordinates to use. Add them and retry."
-msgstr ""
-"Es sind keine Ausrichtungsbohrkoordinaten vorhanden. Fügen Sie sie hinzu und "
-"versuchen Sie es erneut."
-
-#: flatcamTools/ToolDblSided.py:648
-msgid "Excellon object with alignment drills created..."
-msgstr "Excellon-Objekt mit Ausrichtungsbohrern erstellt ..."
-
-#: flatcamTools/ToolDblSided.py:661 flatcamTools/ToolDblSided.py:704
-#: flatcamTools/ToolDblSided.py:748
-msgid "Only Gerber, Excellon and Geometry objects can be mirrored."
-msgstr "Nur Gerber-, Excellon- und Geometrie-Objekte können gespiegelt werden."
-
-#: flatcamTools/ToolDblSided.py:671 flatcamTools/ToolDblSided.py:715
-msgid ""
-"There are no Point coordinates in the Point field. Add coords and try "
-"again ..."
-msgstr ""
-"Das Punktfeld enthält keine Punktkoordinaten. Fügen Sie Coords hinzu und "
-"versuchen Sie es erneut ..."
-
-#: flatcamTools/ToolDblSided.py:681 flatcamTools/ToolDblSided.py:725
-#: flatcamTools/ToolDblSided.py:762
-msgid "There is no Box object loaded ..."
-msgstr "Es ist kein Box-Objekt geladen ..."
-
-#: flatcamTools/ToolDblSided.py:691 flatcamTools/ToolDblSided.py:735
-#: flatcamTools/ToolDblSided.py:772
-msgid "was mirrored"
-msgstr "wurde gespiegelt"
-
-#: flatcamTools/ToolDblSided.py:700 flatcamTools/ToolPunchGerber.py:533
-msgid "There is no Excellon object loaded ..."
-msgstr "Es ist kein Excellon-Objekt geladen ..."
-
-#: flatcamTools/ToolDblSided.py:744
-msgid "There is no Geometry object loaded ..."
-msgstr "Es wurde kein Geometrieobjekt geladen ..."
-
-#: flatcamTools/ToolDistance.py:57 flatcamTools/ToolDistanceMin.py:51
-msgid "Those are the units in which the distance is measured."
-msgstr "Dies sind die Einheiten, in denen die Entfernung gemessen wird."
-
-#: flatcamTools/ToolDistance.py:58 flatcamTools/ToolDistanceMin.py:52
-msgid "METRIC (mm)"
-msgstr "METRISCH (mm)"
-
-#: flatcamTools/ToolDistance.py:58 flatcamTools/ToolDistanceMin.py:52
-msgid "INCH (in)"
-msgstr "ZOLL (in)"
-
-#: flatcamTools/ToolDistance.py:64
-msgid "Snap to center"
-msgstr "Zur Mitte einrasten"
-
-#: flatcamTools/ToolDistance.py:66
-msgid ""
-"Mouse cursor will snap to the center of the pad/drill\n"
-"when it is hovering over the geometry of the pad/drill."
-msgstr ""
-"Der Mauszeiger rastet in der Mitte des Pads / Bohrers ein\n"
-"wenn es über der Geometrie des Pads / Bohrers schwebt."
-
-#: flatcamTools/ToolDistance.py:76
-msgid "Start Coords"
-msgstr "Starten Sie Koords"
-
-#: flatcamTools/ToolDistance.py:77 flatcamTools/ToolDistance.py:82
-msgid "This is measuring Start point coordinates."
-msgstr "Dies ist das Messen von Startpunktkoordinaten."
-
-#: flatcamTools/ToolDistance.py:87
-msgid "Stop Coords"
-msgstr "Stoppen Sie Koords"
-
-#: flatcamTools/ToolDistance.py:88 flatcamTools/ToolDistance.py:93
-msgid "This is the measuring Stop point coordinates."
-msgstr "Dies ist die Messpunkt-Koordinate."
-
-#: flatcamTools/ToolDistance.py:98 flatcamTools/ToolDistanceMin.py:63
-msgid "Dx"
-msgstr "Dx"
-
-#: flatcamTools/ToolDistance.py:99 flatcamTools/ToolDistance.py:104
-#: flatcamTools/ToolDistanceMin.py:64 flatcamTools/ToolDistanceMin.py:93
-msgid "This is the distance measured over the X axis."
-msgstr "Dies ist der Abstand, der über die X-Achse gemessen wird."
-
-#: flatcamTools/ToolDistance.py:109 flatcamTools/ToolDistanceMin.py:66
-msgid "Dy"
-msgstr "Dy"
-
-#: flatcamTools/ToolDistance.py:110 flatcamTools/ToolDistance.py:115
-#: flatcamTools/ToolDistanceMin.py:67 flatcamTools/ToolDistanceMin.py:98
-msgid "This is the distance measured over the Y axis."
-msgstr "Dies ist die über die Y-Achse gemessene Entfernung."
-
-#: flatcamTools/ToolDistance.py:121 flatcamTools/ToolDistance.py:126
-#: flatcamTools/ToolDistanceMin.py:70 flatcamTools/ToolDistanceMin.py:103
-msgid "This is orientation angle of the measuring line."
-msgstr "Dies ist der Orientierungswinkel der Messlinie."
-
-#: flatcamTools/ToolDistance.py:131 flatcamTools/ToolDistanceMin.py:72
-msgid "DISTANCE"
-msgstr "ENTFERNUNG"
-
-#: flatcamTools/ToolDistance.py:132 flatcamTools/ToolDistance.py:137
-msgid "This is the point to point Euclidian distance."
-msgstr "Dies ist die Punkt-zu-Punkt-Euklidische Entfernung."
-
-#: flatcamTools/ToolDistance.py:142 flatcamTools/ToolDistance.py:337
-#: flatcamTools/ToolDistanceMin.py:115
-msgid "Measure"
-msgstr "Messen"
-
-#: flatcamTools/ToolDistance.py:272
-msgid "Working"
-msgstr "Arbeiten"
-
-#: flatcamTools/ToolDistance.py:277
-msgid "MEASURING: Click on the Start point ..."
-msgstr "MESSEN: Klicken Sie auf den Startpunkt ..."
-
-#: flatcamTools/ToolDistance.py:387
-msgid "Distance Tool finished."
-msgstr "Distanzwerkzeug fertig."
-
-#: flatcamTools/ToolDistance.py:455
-msgid "Pads overlapped. Aborting."
-msgstr "Pads überlappen sich. Abbruch."
-
-#: flatcamTools/ToolDistance.py:485
-msgid "MEASURING: Click on the Destination point ..."
-msgstr "MESSEN: Klicken Sie auf den Zielpunkt ..."
-
-#: flatcamTools/ToolDistance.py:494 flatcamTools/ToolDistanceMin.py:285
-msgid "MEASURING"
-msgstr "MESSUNG"
-
-#: flatcamTools/ToolDistance.py:495 flatcamTools/ToolDistanceMin.py:286
-msgid "Result"
-msgstr "Ergebnis"
-
-#: flatcamTools/ToolDistanceMin.py:32 flatcamTools/ToolDistanceMin.py:144
-msgid "Minimum Distance Tool"
-msgstr "Werkzeug für minimalen Abstand"
-
-#: flatcamTools/ToolDistanceMin.py:55
-msgid "First object point"
-msgstr "Erster Objektpunkt"
-
-#: flatcamTools/ToolDistanceMin.py:56 flatcamTools/ToolDistanceMin.py:81
-msgid ""
-"This is first object point coordinates.\n"
-"This is the start point for measuring distance."
-msgstr ""
-"Dies sind erste Objektpunktkoordinaten.\n"
-"Dies ist der Startpunkt für die Entfernungsmessung."
-
-#: flatcamTools/ToolDistanceMin.py:59
-msgid "Second object point"
-msgstr "Zweiter Objektpunkt"
-
-#: flatcamTools/ToolDistanceMin.py:60 flatcamTools/ToolDistanceMin.py:87
-msgid ""
-"This is second object point coordinates.\n"
-"This is the end point for measuring distance."
-msgstr ""
-"Dies sind die Koordinaten des zweiten Objektpunkts.\n"
-"Dies ist der Endpunkt für die Entfernungsmessung."
-
-#: flatcamTools/ToolDistanceMin.py:73 flatcamTools/ToolDistanceMin.py:108
-msgid "This is the point to point Euclidean distance."
-msgstr "Dies ist die euklidische Distanz von Punkt zu Punkt."
-
-#: flatcamTools/ToolDistanceMin.py:75
-msgid "Half Point"
-msgstr "Halber Punkt"
-
-#: flatcamTools/ToolDistanceMin.py:76 flatcamTools/ToolDistanceMin.py:113
-msgid "This is the middle point of the point to point Euclidean distance."
-msgstr "Dies ist der Mittelpunkt der euklidischen Distanz von Punkt zu Punkt."
-
-#: flatcamTools/ToolDistanceMin.py:118
-msgid "Jump to Half Point"
-msgstr "Springe zum halben Punkt"
-
-#: flatcamTools/ToolDistanceMin.py:155
-msgid ""
-"Select two objects and no more, to measure the distance between them ..."
-msgstr ""
-"Wählen Sie zwei und nicht mehr Objekte aus, um den Abstand zwischen ihnen zu "
-"messen ..."
-
-#: flatcamTools/ToolDistanceMin.py:196 flatcamTools/ToolDistanceMin.py:217
-#: flatcamTools/ToolDistanceMin.py:226 flatcamTools/ToolDistanceMin.py:247
-msgid "Select two objects and no more. Currently the selection has objects: "
-msgstr ""
-"Wählen Sie zwei Objekte und nicht mehr. Derzeit hat die Auswahl Objekte: "
-
-#: flatcamTools/ToolDistanceMin.py:294
-msgid "Objects intersects or touch at"
-msgstr "Objekte schneiden sich oder berühren sich"
-
-#: flatcamTools/ToolDistanceMin.py:300
-msgid "Jumped to the half point between the two selected objects"
-msgstr "Sprang zum halben Punkt zwischen den beiden ausgewählten Objekten"
-
-#: flatcamTools/ToolExtractDrills.py:29 flatcamTools/ToolExtractDrills.py:295
-msgid "Extract Drills"
-msgstr "Bohrer extrahieren"
-
-#: flatcamTools/ToolExtractDrills.py:62
-msgid "Gerber from which to extract drill holes"
-msgstr "Gerber, aus dem Bohrlöcher gezogen werden sollen"
-
-#: flatcamTools/ToolExtractDrills.py:297
-msgid "Extract drills from a given Gerber file."
-msgstr "Extrahieren Sie Bohrer aus einer bestimmten Gerber-Datei."
-
-#: flatcamTools/ToolExtractDrills.py:478 flatcamTools/ToolExtractDrills.py:563
-#: flatcamTools/ToolExtractDrills.py:648
-msgid "No drills extracted. Try different parameters."
-msgstr "Keine Bohrer extrahiert. Probieren Sie verschiedene Parameter aus."
-
-#: flatcamTools/ToolFiducials.py:56
-msgid "Fiducials Coordinates"
-msgstr "Bezugspunktkoordinaten"
-
-#: flatcamTools/ToolFiducials.py:58
-msgid ""
-"A table with the fiducial points coordinates,\n"
-"in the format (x, y)."
-msgstr ""
-"Eine Tabelle der Bezugspunkte mit Koordinaten \n"
-"im Format (x,z)"
-
-#: flatcamTools/ToolFiducials.py:99
-msgid "Top Right"
-msgstr "Oben rechts"
-
-#: flatcamTools/ToolFiducials.py:191
-msgid ""
-"- 'Auto' - automatic placement of fiducials in the corners of the bounding "
-"box.\n"
-" - 'Manual' - manual placement of fiducials."
-msgstr ""
-"\"Auto\" Die Bezugspunkte werden automatisch in den Ecken des Umrisses "
-"platziert.\n"
-"\"Manuell\" Die Bezugspunkte werden manuell platziert."
-
-#: flatcamTools/ToolFiducials.py:259
-msgid "Copper Gerber"
-msgstr "Gerber (Kupfer) öffnen"
-
-#: flatcamTools/ToolFiducials.py:268
-msgid "Add Fiducial"
-msgstr "Bezugspunkt hinzufügen"
-
-#: flatcamTools/ToolFiducials.py:270
-msgid "Will add a polygon on the copper layer to serve as fiducial."
-msgstr "Fügt ein Polygon auf die Kupferschicht als Bezugspunkt hinzu."
-
-#: flatcamTools/ToolFiducials.py:286
-msgid "Soldermask Gerber"
-msgstr "Lötpastenmaske Gerber"
-
-#: flatcamTools/ToolFiducials.py:288
-msgid "The Soldermask Gerber object."
-msgstr "Lötpastenmaske Gerber-Objekt."
-
-#: flatcamTools/ToolFiducials.py:300
-msgid "Add Soldermask Opening"
-msgstr "Lotpastenmaske Öffnung hinzufügen"
-
-#: flatcamTools/ToolFiducials.py:302
-msgid ""
-"Will add a polygon on the soldermask layer\n"
-"to serve as fiducial opening.\n"
-"The diameter is always double of the diameter\n"
-"for the copper fiducial."
-msgstr ""
-"Fügt ein Polygon zur Lötpastenschicht hinzu, \n"
-"welches als Öffnungs-Bezugspunkt dient.\n"
-"Der Durchmesser ist immer doppelt so groß\n"
-"wie der Kupfer Bezugspunkt."
-
-#: flatcamTools/ToolFiducials.py:516
-msgid "Click to add first Fiducial. Bottom Left..."
-msgstr "Klicken um den ersten Bezugspunkt unten links hinzuzufügen..."
-
-#: flatcamTools/ToolFiducials.py:780
-msgid "Click to add the last fiducial. Top Right..."
-msgstr "Klicken um den letzten Bezugspunkt oben rechts hinzuzufügen..."
-
-#: flatcamTools/ToolFiducials.py:785
-msgid "Click to add the second fiducial. Top Left or Bottom Right..."
-msgstr ""
-"Klicken um den zweiten Bezugspunkt oben links oder unten rechts "
-"hinzuzufügen..."
-
-#: flatcamTools/ToolFiducials.py:788 flatcamTools/ToolFiducials.py:797
-msgid "Done. All fiducials have been added."
-msgstr "Fertig. Alle Bezugspunkte hinzugefügt."
-
-#: flatcamTools/ToolFiducials.py:874
-msgid "Fiducials Tool exit."
-msgstr "Bezugspunkttool beenden."
-
-#: flatcamTools/ToolFilm.py:42
-msgid "Film PCB"
-msgstr "Film PCB"
-
-#: flatcamTools/ToolFilm.py:78
-msgid ""
-"Specify the type of object for which to create the film.\n"
-"The object can be of type: Gerber or Geometry.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Film Object combobox."
-msgstr ""
-"Geben Sie den Objekttyp an, für den der Film erstellt werden soll.\n"
-"Das Objekt kann vom Typ sein: Gerber oder Geometrie.\n"
-"Die Auswahl hier bestimmt den Objekttyp\n"
-"im Filmobjekt-Kombinationsfeld."
-
-#: flatcamTools/ToolFilm.py:92
-msgid "Film Object"
-msgstr "Filmobjekt"
-
-#: flatcamTools/ToolFilm.py:94
-msgid "Object for which to create the film."
-msgstr "Objekt, für das der Film erstellt werden soll."
-
-#: flatcamTools/ToolFilm.py:115
-msgid ""
-"Specify the type of object to be used as an container for\n"
-"film creation. It can be: Gerber or Geometry type.The selection here decide "
-"the type of objects that will be\n"
-"in the Box Object combobox."
-msgstr ""
-"Geben Sie den Objekttyp an, für den ein Container verwendet werden soll\n"
-"Filmschaffung. Es kann sein: Gerber- oder Geometrietyp. Die Auswahl hier "
-"bestimmt den Objekttyp\n"
-"im Kombinationsfeld Box-Objekt."
-
-#: flatcamTools/ToolFilm.py:129
-msgid "Box Object"
-msgstr "Box-Objekt"
-
-#: flatcamTools/ToolFilm.py:131
-msgid ""
-"The actual object that is used as container for the\n"
-" selected object for which we create the film.\n"
-"Usually it is the PCB outline but it can be also the\n"
-"same object for which the film is created."
-msgstr ""
-"Das eigentliche Objekt, für das ein Container verwendet wird\n"
-" ausgewähltes Objekt, für das wir den Film erstellen.\n"
-"Normalerweise ist es die Leiterplattenkontur, aber es kann auch die\n"
-"das gleiche Objekt, für das der Film erstellt wurde."
-
-#: flatcamTools/ToolFilm.py:273
-msgid "Film Parameters"
-msgstr "Film-Parameter"
-
-#: flatcamTools/ToolFilm.py:334
-msgid "Punch drill holes"
-msgstr "Löcher stanzen"
-
-#: flatcamTools/ToolFilm.py:335
-msgid ""
-"When checked the generated film will have holes in pads when\n"
-"the generated film is positive. This is done to help drilling,\n"
-"when done manually."
-msgstr ""
-"Wenn diese Option aktiviert ist, weist der erzeugte Film Löcher in den Pads "
-"auf\n"
-"Der erzeugte Film ist positiv. Dies geschieht, um das Bohren zu "
-"erleichtern.\n"
-"wenn manuell erledigt."
-
-#: flatcamTools/ToolFilm.py:353
-msgid "Source"
-msgstr "Quelle"
-
-#: flatcamTools/ToolFilm.py:355
-msgid ""
-"The punch hole source can be:\n"
-"- Excellon -> an Excellon holes center will serve as reference.\n"
-"- Pad Center -> will try to use the pads center as reference."
-msgstr ""
-"Die Stanzlochquelle kann sein:\n"
-"- Excellon -> Ein Excellon-Lochzentrum dient als Referenz.\n"
-"- Pad-Mitte -> wird versuchen, die Pad-Mitte als Referenz zu verwenden."
-
-#: flatcamTools/ToolFilm.py:360
-msgid "Pad center"
-msgstr "Pad-Mitte"
-
-#: flatcamTools/ToolFilm.py:365
-msgid "Excellon Obj"
-msgstr "Excellon-Objekt"
-
-#: flatcamTools/ToolFilm.py:367
-msgid ""
-"Remove the geometry of Excellon from the Film to create the holes in pads."
-msgstr ""
-"Entfernen Sie die Geometrie von Excellon aus dem Film, um die Löcher in den "
-"Pads zu erzeugen."
-
-#: flatcamTools/ToolFilm.py:381
-msgid "Punch Size"
-msgstr "Lochergröße"
-
-#: flatcamTools/ToolFilm.py:382
-msgid "The value here will control how big is the punch hole in the pads."
-msgstr "Der Wert hier bestimmt, wie groß das Loch in den Pads ist."
-
-#: flatcamTools/ToolFilm.py:502
-msgid "Save Film"
-msgstr "Film speichern"
-
-#: flatcamTools/ToolFilm.py:504
-msgid ""
-"Create a Film for the selected object, within\n"
-"the specified box. Does not create a new \n"
-" FlatCAM object, but directly save it in the\n"
-"selected format."
-msgstr ""
-"Erstellen Sie einen Film für das ausgewählte Objekt\n"
-"die angegebene Box Erstellt kein neues\n"
-" FlatCAM-Objekt, speichern Sie es jedoch direkt im \n"
-"gewähltem Format."
-
-#: flatcamTools/ToolFilm.py:664
-msgid ""
-"Using the Pad center does not work on Geometry objects. Only a Gerber object "
-"has pads."
-msgstr ""
-"Die Verwendung der Pad-Mitte funktioniert nicht bei Geometrieobjekten. Nur "
-"ein Gerber-Objekt hat Pads."
-
-#: flatcamTools/ToolFilm.py:674
-msgid "No FlatCAM object selected. Load an object for Film and retry."
-msgstr ""
-"Kein FlatCAM-Objekt ausgewählt. Laden Sie ein Objekt für Film und versuchen "
-"Sie es erneut."
-
-#: flatcamTools/ToolFilm.py:681
-msgid "No FlatCAM object selected. Load an object for Box and retry."
-msgstr ""
-"Kein FlatCAM-Objekt ausgewählt. Laden Sie ein Objekt für Box und versuchen "
-"Sie es erneut."
-
-#: flatcamTools/ToolFilm.py:685
-msgid "No FlatCAM object selected."
-msgstr "Kein FlatCAM-Objekt ausgewählt."
-
-#: flatcamTools/ToolFilm.py:696
-msgid "Generating Film ..."
-msgstr "Film wird erstellt ..."
-
-#: flatcamTools/ToolFilm.py:745 flatcamTools/ToolFilm.py:749
-msgid "Export positive film"
-msgstr "Film positiv exportieren"
-
-#: flatcamTools/ToolFilm.py:782
-msgid ""
-"No Excellon object selected. Load an object for punching reference and retry."
-msgstr ""
-"Kein Excellon-Objekt ausgewählt. Laden Sie ein Objekt zum Stanzen der "
-"Referenz und versuchen Sie es erneut."
-
-#: flatcamTools/ToolFilm.py:806
-msgid ""
-" Could not generate punched hole film because the punch hole sizeis bigger "
-"than some of the apertures in the Gerber object."
-msgstr ""
-" Es konnte kein Lochfilm erzeugt werden, da die Lochgröße größer ist als "
-"einige der Öffnungen im Gerber-Objekt."
-
-#: flatcamTools/ToolFilm.py:818
-msgid ""
-"Could not generate punched hole film because the punch hole sizeis bigger "
-"than some of the apertures in the Gerber object."
-msgstr ""
-"Es konnte kein Lochfilm erzeugt werden, da die Lochgröße größer ist als "
-"einige der Öffnungen im Gerber-Objekt."
-
-#: flatcamTools/ToolFilm.py:836
-msgid ""
-"Could not generate punched hole film because the newly created object "
-"geometry is the same as the one in the source object geometry..."
-msgstr ""
-"Lochfolie konnte nicht generiert werden, da die neu erstellte "
-"Objektgeometrie mit der in der Quellobjektgeometrie übereinstimmt ..."
-
-#: flatcamTools/ToolFilm.py:891 flatcamTools/ToolFilm.py:895
-msgid "Export negative film"
-msgstr "Exportieren negativ Film"
-
-#: flatcamTools/ToolFilm.py:956 flatcamTools/ToolFilm.py:1139
-#: flatcamTools/ToolPanelize.py:430
-msgid "No object Box. Using instead"
-msgstr "Keine Objektbox. Verwenden Sie stattdessen"
-
-#: flatcamTools/ToolFilm.py:1072 flatcamTools/ToolFilm.py:1252
-msgid "Film file exported to"
-msgstr "Film-Datei exportiert nach"
-
-#: flatcamTools/ToolFilm.py:1075 flatcamTools/ToolFilm.py:1255
-msgid "Generating Film ... Please wait."
-msgstr "Film wird erstellt ... Bitte warten Sie."
-
-#: flatcamTools/ToolImage.py:24
-msgid "Image as Object"
-msgstr "Bild als Objekt"
-
-#: flatcamTools/ToolImage.py:33
-msgid "Image to PCB"
-msgstr "Bild auf PCB"
-
-#: flatcamTools/ToolImage.py:56
-msgid ""
-"Specify the type of object to create from the image.\n"
-"It can be of type: Gerber or Geometry."
-msgstr ""
-"Geben Sie den Objekttyp an, der aus dem Bild erstellt werden soll.\n"
-"Es kann vom Typ sein: Gerber oder Geometrie."
-
-#: flatcamTools/ToolImage.py:65
-msgid "DPI value"
-msgstr "DPI-Wert"
-
-#: flatcamTools/ToolImage.py:66
-msgid "Specify a DPI value for the image."
-msgstr "Geben Sie einen DPI-Wert für das Bild an."
-
-#: flatcamTools/ToolImage.py:72
-msgid "Level of detail"
-msgstr "Detaillierungsgrad"
-
-#: flatcamTools/ToolImage.py:81
-msgid "Image type"
-msgstr "Bildtyp"
-
-#: flatcamTools/ToolImage.py:83
-msgid ""
-"Choose a method for the image interpretation.\n"
-"B/W means a black & white image. Color means a colored image."
-msgstr ""
-"Wählen Sie eine Methode für die Bildinterpretation.\n"
-"B / W steht für ein Schwarzweißbild. Farbe bedeutet ein farbiges Bild."
-
-#: flatcamTools/ToolImage.py:92 flatcamTools/ToolImage.py:107
-#: flatcamTools/ToolImage.py:120 flatcamTools/ToolImage.py:133
-msgid "Mask value"
-msgstr "Maskenwert"
-
-#: flatcamTools/ToolImage.py:94
-msgid ""
-"Mask for monochrome image.\n"
-"Takes values between [0 ... 255].\n"
-"Decides the level of details to include\n"
-"in the resulting geometry.\n"
-"0 means no detail and 255 means everything \n"
-"(which is totally black)."
-msgstr ""
-"Maske für ein Schwarzweißbild.\n"
-"Nimmt Werte zwischen [0 ... 255] an.\n"
-"Legt fest, wie viel Details enthalten sind\n"
-"in der resultierenden Geometrie.\n"
-"0 bedeutet kein Detail und 255 bedeutet alles\n"
-"(das ist total schwarz)."
-
-#: flatcamTools/ToolImage.py:109
-msgid ""
-"Mask for RED color.\n"
-"Takes values between [0 ... 255].\n"
-"Decides the level of details to include\n"
-"in the resulting geometry."
-msgstr ""
-"Maske für rote Farbe.\n"
-"Nimmt Werte zwischen [0 ... 255] an.\n"
-"Legt fest, wie viel Details enthalten sind\n"
-"in der resultierenden Geometrie."
-
-#: flatcamTools/ToolImage.py:122
-msgid ""
-"Mask for GREEN color.\n"
-"Takes values between [0 ... 255].\n"
-"Decides the level of details to include\n"
-"in the resulting geometry."
-msgstr ""
-"Maske für GRÜNE Farbe.\n"
-"Nimmt Werte zwischen [0 ... 255] an.\n"
-"Legt fest, wie viel Details enthalten sind\n"
-"in der resultierenden Geometrie."
-
-#: flatcamTools/ToolImage.py:135
-msgid ""
-"Mask for BLUE color.\n"
-"Takes values between [0 ... 255].\n"
-"Decides the level of details to include\n"
-"in the resulting geometry."
-msgstr ""
-"Maske für BLAUE Farbe.\n"
-"Nimmt Werte zwischen [0 ... 255] an.\n"
-"Legt fest, wie viel Details enthalten sind\n"
-"in der resultierenden Geometrie."
-
-#: flatcamTools/ToolImage.py:143
-msgid "Import image"
-msgstr "Bild importieren"
-
-#: flatcamTools/ToolImage.py:145
-msgid "Open a image of raster type and then import it in FlatCAM."
-msgstr "Öffnen Sie ein Bild vom Raster-Typ und importieren Sie es in FlatCAM."
-
-#: flatcamTools/ToolImage.py:182
-msgid "Image Tool"
-msgstr "Bildwerkzeug"
-
-#: flatcamTools/ToolImage.py:234 flatcamTools/ToolImage.py:237
-msgid "Import IMAGE"
-msgstr "BILD importieren"
-
-#: flatcamTools/ToolImage.py:285
-msgid "Importing Image"
-msgstr "Bild importieren"
-
-#: flatcamTools/ToolInvertGerber.py:74
-msgid "Gerber object that will be inverted."
-msgstr "Gerber-Objekt, das invertiert wird."
-
-#: flatcamTools/ToolInvertGerber.py:83
-msgid "Parameters for this tool"
-msgstr "Parameter für dieses Werkzeug"
-
-#: flatcamTools/ToolInvertGerber.py:123
-msgid "Invert Gerber"
-msgstr "Gerber umkehren"
-
-#: flatcamTools/ToolInvertGerber.py:125
-msgid ""
-"Will invert the Gerber object: areas that have copper\n"
-"will be empty of copper and previous empty area will be\n"
-"filled with copper."
-msgstr ""
-"Invertiert das Gerber-Objekt: Bereiche mit Kupfer\n"
-"wird leer von Kupfer sein und der vorherige leere Bereich wird leer sein\n"
-"mit Kupfer gefüllt."
-
-#: flatcamTools/ToolInvertGerber.py:184
-msgid "Invert Tool"
-msgstr "Invertiert Werkzeug"
-
-#: flatcamTools/ToolMove.py:102
-msgid "MOVE: Click on the Start point ..."
-msgstr "Verschieben: Klicke auf den Startpunkt ..."
-
-#: flatcamTools/ToolMove.py:113
-msgid "Cancelled. No object(s) to move."
-msgstr "Abgebrochen. Keine Objekte zum Bewegen."
-
-#: flatcamTools/ToolMove.py:140
-msgid "MOVE: Click on the Destination point ..."
-msgstr "Verschieben: Klicken Sie auf den Zielpunkt ..."
-
-#: flatcamTools/ToolMove.py:163
-msgid "Moving..."
-msgstr "Ziehen um..."
-
-#: flatcamTools/ToolMove.py:166
-msgid "No object(s) selected."
-msgstr "Keine Objekte ausgewählt."
-
-#: flatcamTools/ToolMove.py:221
-msgid "Error when mouse left click."
-msgstr "Fehler beim Klicken mit der linken Maustaste."
-
-#: flatcamTools/ToolNCC.py:42
-msgid "Non-Copper Clearing"
-msgstr "Nicht-Kupfer-Clearing"
-
-#: flatcamTools/ToolNCC.py:88
-msgid ""
-"Specify the type of object to be cleared of excess copper.\n"
-"It can be of type: Gerber or Geometry.\n"
-"What is selected here will dictate the kind\n"
-"of objects that will populate the 'Object' combobox."
-msgstr ""
-"Geben Sie den Objekttyp an, der von überschüssigem Kupfer befreit werden "
-"soll.\n"
-"Es kann vom Typ Gerber oder Geometrie sein.\n"
-"Was hier ausgewählt wird, bestimmt die Art\n"
-"von Objekten, die das Kombinationsfeld \"Objekt\" füllen."
-
-#: flatcamTools/ToolNCC.py:110
-msgid "Object to be cleared of excess copper."
-msgstr "Objekt, das von überschüssigem Kupfer befreit werden soll."
-
-#: flatcamTools/ToolNCC.py:122
-msgid ""
-"Tools pool from which the algorithm\n"
-"will pick the ones used for copper clearing."
-msgstr ""
-"Toolspool aus dem der Algorithmus\n"
-"wählt die für die Kupferreinigung verwendeten aus."
-
-#: flatcamTools/ToolNCC.py:138
-msgid ""
-"This is the Tool Number.\n"
-"Non copper clearing will start with the tool with the biggest \n"
-"diameter, continuing until there are no more tools.\n"
-"Only tools that create NCC clearing geometry will still be present\n"
-"in the resulting geometry. This is because with some tools\n"
-"this function will not be able to create painting geometry."
-msgstr ""
-"Dies ist die Werkzeugnummer.\n"
-"Das Nicht-Kupfer-Clearing beginnt mit dem Werkzeug mit dem größten\n"
-"Durchmesser, weiter, bis keine Werkzeuge mehr vorhanden sind.\n"
-"Es sind nur noch Werkzeuge vorhanden, die eine NCC-Clearing-Geometrie "
-"erstellen\n"
-"in der resultierenden Geometrie. Dies liegt daran, dass mit einigen Tools\n"
-"Diese Funktion kann keine Malgeometrie erstellen."
-
-#: flatcamTools/ToolNCC.py:146
-msgid ""
-"Tool Diameter. It's value (in current FlatCAM units)\n"
-"is the cut width into the material."
-msgstr ""
-"Werkzeugdurchmesser. Wert (in aktuellen FlatCAM-Einheiten)\n"
-"ist die Schnittbreite in das Material."
-
-#: flatcamTools/ToolNCC.py:150
-msgid ""
-"The Tool Type (TT) can be:\n"
-"- Circular with 1 ... 4 teeth -> it is informative only. Being circular,\n"
-"the cut width in material is exactly the tool diameter.\n"
-"- Ball -> informative only and make reference to the Ball type endmill.\n"
-"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI "
-"form\n"
-"and enable two additional UI form fields in the resulting geometry: V-Tip "
-"Dia and\n"
-"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter "
-"such\n"
-"as the cut width into material will be equal with the value in the Tool "
-"Diameter\n"
-"column of this table.\n"
-"Choosing the 'V-Shape' Tool Type automatically will select the Operation "
-"Type\n"
-"in the resulting geometry as Isolation."
-msgstr ""
-"Der Werkzeugtyp (TT) kann sein:\n"
-"- Rundschreiben mit 1 ... 4 Zähnen -> nur informativ. Rundschreiben,\n"
-"Die Schnittbreite im Material entspricht genau dem Werkzeugdurchmesser.\n"
-"- Ball -> nur informativ und auf den Ball-Schaftfräser verweisen.\n"
-"- V-Form -> Deaktiviert den Z-Cut-Parameter in der resultierenden Geometrie-"
-"UI-Form\n"
-"und aktivieren Sie zwei zusätzliche UI-Formularfelder in der resultierenden "
-"Geometrie: V-Tip Dia und\n"
-"V-Tip-Winkel. Durch Anpassen dieser beiden Werte wird der Z-Cut-Parameter "
-"wie z\n"
-"da die Schnittbreite in Material gleich dem Wert im Werkzeugdurchmesser ist\n"
-"Spalte dieser Tabelle.\n"
-"Durch automatische Auswahl des Werkzeugtyps \"V-Form\" wird der "
-"Operationstyp ausgewählt\n"
-"in der resultierenden Geometrie als Isolation."
-
-#: flatcamTools/ToolNCC.py:296 flatcamTools/ToolPaint.py:279
-msgid ""
-"Add a new tool to the Tool Table\n"
-"with the diameter specified above."
-msgstr ""
-"Fügen Sie der Werkzeugtabelle ein neues Werkzeug hinzu\n"
-"mit dem oben angegebenen Durchmesser."
-
-#: flatcamTools/ToolNCC.py:318 flatcamTools/ToolPaint.py:301
-#: flatcamTools/ToolSolderPaste.py:130
-msgid ""
-"Delete a selection of tools in the Tool Table\n"
-"by first selecting a row(s) in the Tool Table."
-msgstr ""
-"Löschen Sie eine Auswahl von Werkzeugen in der Werkzeugtabelle\n"
-"indem Sie zuerst eine oder mehrere Zeilen in der Werkzeugtabelle auswählen."
-
-#: flatcamTools/ToolNCC.py:554
-msgid ""
-"The type of FlatCAM object to be used as non copper clearing reference.\n"
-"It can be Gerber, Excellon or Geometry."
-msgstr ""
-"Der Typ des FlatCAM-Objekts, das als nicht aus Kupfer stammende Clearing-"
-"Referenz verwendet werden soll.\n"
-"Es kann Gerber, Excellon oder Geometry sein."
-
-#: flatcamTools/ToolNCC.py:597 flatcamTools/ToolPaint.py:537
-msgid "Generate Geometry"
-msgstr "Geometrie erzeugen"
-
-#: flatcamTools/ToolNCC.py:1425 flatcamTools/ToolPaint.py:1184
-#: flatcamTools/ToolSolderPaste.py:888
-msgid "Please enter a tool diameter to add, in Float format."
-msgstr ""
-"Bitte geben Sie einen hinzuzufügenden Werkzeugdurchmesser im Float-Format "
-"ein."
-
-#: flatcamTools/ToolNCC.py:1456 flatcamTools/ToolNCC.py:4013
-#: flatcamTools/ToolPaint.py:1208 flatcamTools/ToolPaint.py:3603
-#: flatcamTools/ToolSolderPaste.py:917
-msgid "Cancelled. Tool already in Tool Table."
-msgstr "Abgebrochen. Werkzeug bereits in der Werkzeugtabelle."
-
-#: flatcamTools/ToolNCC.py:1463 flatcamTools/ToolNCC.py:4030
-#: flatcamTools/ToolPaint.py:1213 flatcamTools/ToolPaint.py:3620
-msgid "New tool added to Tool Table."
-msgstr "Neues Werkzeug zur Werkzeugtabelle hinzugefügt."
-
-#: flatcamTools/ToolNCC.py:1507 flatcamTools/ToolPaint.py:1257
-msgid "Tool from Tool Table was edited."
-msgstr "Werkzeug aus Werkzeugtabelle wurde bearbeitet."
-
-#: flatcamTools/ToolNCC.py:1519 flatcamTools/ToolPaint.py:1269
-#: flatcamTools/ToolSolderPaste.py:978
-msgid "Cancelled. New diameter value is already in the Tool Table."
-msgstr ""
-"Abgebrochen. Der neue Durchmesserwert befindet sich bereits in der "
-"Werkzeugtabelle."
-
-#: flatcamTools/ToolNCC.py:1571 flatcamTools/ToolPaint.py:1367
-msgid "Delete failed. Select a tool to delete."
-msgstr "Löschen fehlgeschlagen. Wählen Sie ein Werkzeug zum Löschen aus."
-
-#: flatcamTools/ToolNCC.py:1577 flatcamTools/ToolPaint.py:1373
-msgid "Tool(s) deleted from Tool Table."
-msgstr "Werkzeug(e) aus der Werkzeugtabelle gelöscht."
-
-#: flatcamTools/ToolNCC.py:1619
-msgid "Wrong Tool Dia value format entered, use a number."
-msgstr "Falsches Werkzeug Dia-Wertformat eingegeben, verwenden Sie eine Zahl."
-
-#: flatcamTools/ToolNCC.py:1628 flatcamTools/ToolPaint.py:1424
-msgid "No selected tools in Tool Table."
-msgstr "Keine ausgewählten Werkzeuge in der Werkzeugtabelle."
-
-#: flatcamTools/ToolNCC.py:1704 flatcamTools/ToolPaint.py:1600
-msgid "Click the end point of the paint area."
-msgstr "Klicken Sie auf den Endpunkt des Malbereichs."
-
-#: flatcamTools/ToolNCC.py:1976 flatcamTools/ToolNCC.py:2964
-msgid "NCC Tool. Preparing non-copper polygons."
-msgstr "NCC-Tool. Vorbereitung von kupferfreien Polygonen."
-
-#: flatcamTools/ToolNCC.py:2035 flatcamTools/ToolNCC.py:3092
-msgid "NCC Tool. Calculate 'empty' area."
-msgstr "NCC-Tool. Berechnen Sie die \"leere\" Fläche."
-
-#: flatcamTools/ToolNCC.py:2054 flatcamTools/ToolNCC.py:2160
-#: flatcamTools/ToolNCC.py:2174 flatcamTools/ToolNCC.py:3105
-#: flatcamTools/ToolNCC.py:3210 flatcamTools/ToolNCC.py:3225
-#: flatcamTools/ToolNCC.py:3491 flatcamTools/ToolNCC.py:3592
-#: flatcamTools/ToolNCC.py:3607
-msgid "Buffering finished"
-msgstr "Pufferung beendet"
-
-#: flatcamTools/ToolNCC.py:2062 flatcamTools/ToolNCC.py:2181
-#: flatcamTools/ToolNCC.py:3113 flatcamTools/ToolNCC.py:3232
-#: flatcamTools/ToolNCC.py:3498 flatcamTools/ToolNCC.py:3614
-msgid "Could not get the extent of the area to be non copper cleared."
-msgstr ""
-"Die Ausdehnung des nicht kupferhaltigen Bereichs konnte nicht gelöscht "
-"werden."
-
-#: flatcamTools/ToolNCC.py:2089 flatcamTools/ToolNCC.py:2167
-#: flatcamTools/ToolNCC.py:3140 flatcamTools/ToolNCC.py:3217
-#: flatcamTools/ToolNCC.py:3518 flatcamTools/ToolNCC.py:3599
-msgid ""
-"Isolation geometry is broken. Margin is less than isolation tool diameter."
-msgstr ""
-"Die Isolationsgeometrie ist gebrochen. Der Rand ist kleiner als der "
-"Durchmesser des Isolationswerkzeugs."
-
-#: flatcamTools/ToolNCC.py:2184 flatcamTools/ToolNCC.py:3236
-#: flatcamTools/ToolNCC.py:3617
-msgid "The selected object is not suitable for copper clearing."
-msgstr "Das ausgewählte Objekt ist nicht zum Löschen von Kupfer geeignet."
-
-#: flatcamTools/ToolNCC.py:2191 flatcamTools/ToolNCC.py:3243
-msgid "NCC Tool. Finished calculation of 'empty' area."
-msgstr "NCC-Tool. Berechnung der 'leeren' Fläche beendet."
-
-#: flatcamTools/ToolNCC.py:2222 flatcamTools/ToolNCC.py:2224
-#: flatcamTools/ToolNCC.py:2916 flatcamTools/ToolNCC.py:2918
-msgid "Non-Copper clearing ..."
-msgstr "Nicht-Kupfer-Clearing ..."
-
-#: flatcamTools/ToolNCC.py:2278 flatcamTools/ToolNCC.py:3060
-msgid ""
-"NCC Tool. Finished non-copper polygons. Normal copper clearing task started."
-msgstr ""
-"NCC-Tool. Fertige kupferfreie Polygone. Normale Kupferentfernungsaufgabe "
-"gestartet."
-
-#: flatcamTools/ToolNCC.py:2312 flatcamTools/ToolNCC.py:2592
-msgid "NCC Tool failed creating bounding box."
-msgstr "Das NCC-Tool konnte keinen Begrenzungsrahmen erstellen."
-
-#: flatcamTools/ToolNCC.py:2326 flatcamTools/ToolNCC.py:2609
-#: flatcamTools/ToolNCC.py:3256 flatcamTools/ToolNCC.py:3642
-msgid "NCC Tool clearing with tool diameter"
-msgstr "Das NCC-Werkzeug wird mit dem Werkzeugdurchmesser gelöscht"
-
-#: flatcamTools/ToolNCC.py:2326 flatcamTools/ToolNCC.py:2609
-#: flatcamTools/ToolNCC.py:3256 flatcamTools/ToolNCC.py:3642
-msgid "started."
-msgstr "gestartet."
-
-#: flatcamTools/ToolNCC.py:2518 flatcamTools/ToolNCC.py:3417
-msgid ""
-"There is no NCC 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 ""
-"Die Datei enthält keine NCC-Geometrie.\n"
-"In der Regel bedeutet dies, dass der Werkzeugdurchmesser für die lackierte "
-"Geometrie zu groß ist.\n"
-"Ändern Sie die Malparameter und versuchen Sie es erneut."
-
-#: flatcamTools/ToolNCC.py:2527 flatcamTools/ToolNCC.py:3426
-msgid "NCC Tool clear all done."
-msgstr "NCC Tool löschen alles erledigt."
-
-#: flatcamTools/ToolNCC.py:2530 flatcamTools/ToolNCC.py:3429
-msgid "NCC Tool clear all done but the copper features isolation is broken for"
-msgstr ""
-"Das NCC-Tool löscht alles, aber die Isolierung der Kupfermerkmale ist "
-"unterbrochen"
-
-#: flatcamTools/ToolNCC.py:2532 flatcamTools/ToolNCC.py:2817
-#: flatcamTools/ToolNCC.py:3431 flatcamTools/ToolNCC.py:3814
-msgid "tools"
-msgstr "Werkzeuge"
-
-#: flatcamTools/ToolNCC.py:2813 flatcamTools/ToolNCC.py:3810
-msgid "NCC Tool Rest Machining clear all done."
-msgstr "Die Bearbeitung der NCC-Werkzeugablagen ist abgeschlossen."
-
-#: flatcamTools/ToolNCC.py:2816 flatcamTools/ToolNCC.py:3813
-msgid ""
-"NCC Tool Rest Machining clear all done but the copper features isolation is "
-"broken for"
-msgstr ""
-"Die Bearbeitung der NCC-Werkzeugablagen ist abgeschlossen, die Isolierung "
-"der Kupferelemente ist jedoch unterbrochen"
-
-#: flatcamTools/ToolNCC.py:2928
-msgid "NCC Tool started. Reading parameters."
-msgstr "NCC Tool gestartet. Parameter lesen."
-
-#: flatcamTools/ToolNCC.py:3906
-msgid ""
-"Try to use the Buffering Type = Full in Preferences -> Gerber General. "
-"Reload the Gerber file after this change."
-msgstr ""
-"Versuchen Sie, den Puffertyp = Voll in Einstellungen -> Allgemein zu "
-"verwenden. Laden Sie die Gerber-Datei nach dieser Änderung neu."
-
-#: flatcamTools/ToolOptimal.py:79
-msgid "Number of decimals kept for found distances."
-msgstr "Anzahl der Dezimalstellen für gefundene Entfernungen."
-
-#: flatcamTools/ToolOptimal.py:87
-msgid "Minimum distance"
-msgstr "Mindestabstand"
-
-#: flatcamTools/ToolOptimal.py:88
-msgid "Display minimum distance between copper features."
-msgstr "Zeigt den Mindestabstand zwischen Kupferelementen an."
-
-#: flatcamTools/ToolOptimal.py:92
-msgid "Determined"
-msgstr "Entschlossen"
-
-#: flatcamTools/ToolOptimal.py:106
-msgid "Occurring"
-msgstr "Vorkommen"
-
-#: flatcamTools/ToolOptimal.py:107
-msgid "How many times this minimum is found."
-msgstr "Wie oft wird dieses Minimum gefunden."
-
-#: flatcamTools/ToolOptimal.py:113
-msgid "Minimum points coordinates"
-msgstr "Minimale Punktkoordinaten"
-
-#: flatcamTools/ToolOptimal.py:114 flatcamTools/ToolOptimal.py:120
-msgid "Coordinates for points where minimum distance was found."
-msgstr "Koordinaten für Punkte, an denen der Mindestabstand gefunden wurde."
-
-#: flatcamTools/ToolOptimal.py:133 flatcamTools/ToolOptimal.py:209
-msgid "Jump to selected position"
-msgstr "Zur ausgewählten Position springen"
-
-#: flatcamTools/ToolOptimal.py:135 flatcamTools/ToolOptimal.py:211
-msgid ""
-"Select a position in the Locations text box and then\n"
-"click this button."
-msgstr ""
-"Wählen Sie eine Position im Textfeld Standorte und dann\n"
-"Klicken Sie auf diese Schaltfläche."
-
-#: flatcamTools/ToolOptimal.py:143
-msgid "Other distances"
-msgstr "Andere Entfernungen"
-
-#: flatcamTools/ToolOptimal.py:144
-msgid ""
-"Will display other distances in the Gerber file ordered from\n"
-"the minimum to the maximum, not including the absolute minimum."
-msgstr ""
-"Zeigt andere Entfernungen in der von bestellten Gerber-Datei an\n"
-"das Minimum bis zum Maximum, ohne das absolute Minimum."
-
-#: flatcamTools/ToolOptimal.py:149
-msgid "Other distances points coordinates"
-msgstr "Andere Entfernungen Punkte Koordinaten"
-
-#: flatcamTools/ToolOptimal.py:150 flatcamTools/ToolOptimal.py:164
-#: flatcamTools/ToolOptimal.py:171 flatcamTools/ToolOptimal.py:188
-#: flatcamTools/ToolOptimal.py:195
-msgid ""
-"Other distances and the coordinates for points\n"
-"where the distance was found."
-msgstr ""
-"Andere Entfernungen und die Koordinaten für Punkte\n"
-"wo die Entfernung gefunden wurde."
-
-#: flatcamTools/ToolOptimal.py:163
-msgid "Gerber distances"
-msgstr "Gerber Entfernungen"
-
-#: flatcamTools/ToolOptimal.py:187
-msgid "Points coordinates"
-msgstr "Punktkoordinaten"
-
-#: flatcamTools/ToolOptimal.py:219
-msgid "Find Minimum"
-msgstr "Minimum finden"
-
-#: flatcamTools/ToolOptimal.py:221
-msgid ""
-"Calculate the minimum distance between copper features,\n"
-"this will allow the determination of the right tool to\n"
-"use for isolation or copper clearing."
-msgstr ""
-"Berechnen Sie den Mindestabstand zwischen Kupferelementen.\n"
-"Dies ermöglicht die Bestimmung des richtigen Werkzeugs\n"
-"Verwendung zur Isolierung oder zum Löschen von Kupfer."
-
-#: flatcamTools/ToolOptimal.py:346
-msgid "Only Gerber objects can be evaluated."
-msgstr "Es können nur Gerber-Objekte ausgewertet werden."
-
-#: flatcamTools/ToolOptimal.py:352
-msgid ""
-"Optimal Tool. Started to search for the minimum distance between copper "
-"features."
-msgstr "Optimierer. Sucht Minimalabstand zwischen Kupferbereichen."
-
-#: flatcamTools/ToolOptimal.py:362
-msgid "Optimal Tool. Parsing geometry for aperture"
-msgstr "Optimales Werkzeug. Analysegeometrie für Blende"
-
-#: flatcamTools/ToolOptimal.py:373
-msgid "Optimal Tool. Creating a buffer for the object geometry."
-msgstr "Optimales Werkzeug. Erstellen eines Puffers für die Objektgeometrie."
-
-#: flatcamTools/ToolOptimal.py:383
-msgid ""
-"The Gerber object has one Polygon as geometry.\n"
-"There are no distances between geometry elements to be found."
-msgstr ""
-"Das Gerber-Objekt hat ein Polygon als Geometrie.\n"
-"Es sind keine Abstände zwischen Geometrieelementen zu finden."
-
-#: flatcamTools/ToolOptimal.py:388
-msgid ""
-"Optimal Tool. Finding the distances between each two elements. Iterations"
-msgstr ""
-"Optimales Werkzeug. Finden der Abstände zwischen jeweils zwei Elementen. "
-"Iterationen"
-
-#: flatcamTools/ToolOptimal.py:423
-msgid "Optimal Tool. Finding the minimum distance."
-msgstr "Optimales Werkzeug. Den Mindestabstand finden."
-
-#: flatcamTools/ToolOptimal.py:439
-msgid "Optimal Tool. Finished successfully."
-msgstr "Optimales Werkzeug. Erfolgreich beendet."
-
-#: flatcamTools/ToolPDF.py:157 flatcamTools/ToolPDF.py:161
-msgid "Open PDF"
-msgstr "PDF öffnen"
-
-#: flatcamTools/ToolPDF.py:164
-msgid "Open PDF cancelled"
-msgstr "PDF öffnen abgebrochen"
-
-#: flatcamTools/ToolPDF.py:195
-msgid "Parsing PDF file ..."
-msgstr "PDF-Datei wird analysiert ..."
-
-#: flatcamTools/ToolPDF.py:278 flatcamTools/ToolPDF.py:353
-#, python-format
-msgid "Rendering PDF layer #%d ..."
-msgstr "PDF-Ebene rendern #%d ..."
-
-#: flatcamTools/ToolPDF.py:283 flatcamTools/ToolPDF.py:358
-msgid "Open PDF file failed."
-msgstr "Öffnen der PDF-Datei fehlgeschlagen."
-
-#: flatcamTools/ToolPDF.py:289 flatcamTools/ToolPDF.py:363
-msgid "Rendered"
-msgstr "Gerendert"
-
-#: flatcamTools/ToolPaint.py:82
-msgid ""
-"Specify the type of object to be painted.\n"
-"It can be of type: Gerber or Geometry.\n"
-"What is selected here will dictate the kind\n"
-"of objects that will populate the 'Object' combobox."
-msgstr ""
-"Geben Sie den Objekttyp an, der gemalt werden soll.\n"
-"Es kann vom Typ Gerber oder Geometrie sein.\n"
-"Was hier ausgewählt wird, bestimmt die Art\n"
-"von Objekten, die das Kombinationsfeld \"Objekt\" füllen."
-
-#: flatcamTools/ToolPaint.py:104
-msgid "Object to be painted."
-msgstr "Gegenstand gemalt werden."
-
-#: flatcamTools/ToolPaint.py:117
-msgid ""
-"Tools pool from which the algorithm\n"
-"will pick the ones used for painting."
-msgstr ""
-"Toolspool aus dem der Algorithmus\n"
-"wählt die zum Malen verwendeten aus."
-
-#: flatcamTools/ToolPaint.py:134
-msgid ""
-"This is the Tool Number.\n"
-"Painting will start with the tool with the biggest diameter,\n"
-"continuing until there are no more tools.\n"
-"Only tools that create painting geometry will still be present\n"
-"in the resulting geometry. This is because with some tools\n"
-"this function will not be able to create painting geometry."
-msgstr ""
-"Dies ist die Werkzeugnummer.\n"
-"Das Malen beginnt mit dem Werkzeug mit dem größten Durchmesser.\n"
-"fortsetzen, bis es keine Werkzeuge mehr gibt.\n"
-"Es sind nur noch Werkzeuge vorhanden, die eine Malgeometrie erstellen\n"
-"in der resultierenden Geometrie. Dies liegt daran, dass mit einigen Tools\n"
-"Diese Funktion kann keine Malgeometrie erstellen."
-
-#: flatcamTools/ToolPaint.py:146
-msgid ""
-"The Tool Type (TT) can be:\n"
-"- Circular -> it is informative only. Being circular,\n"
-"the cut width in material is exactly the tool diameter.\n"
-"- Ball -> informative only and make reference to the Ball type endmill.\n"
-"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI "
-"form\n"
-"and enable two additional UI form fields in the resulting geometry: V-Tip "
-"Dia and\n"
-"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter "
-"such\n"
-"as the cut width into material will be equal with the value in the Tool "
-"Diameter\n"
-"column of this table.\n"
-"Choosing the 'V-Shape' Tool Type automatically will select the Operation "
-"Type\n"
-"in the resulting geometry as Isolation."
-msgstr ""
-"Der Werkzeugtyp (TT) kann sein:\n"
-"- Rundschreiben mit 1 ... 4 Zähnen -> nur informativ. Rundschreiben,\n"
-"Die Schnittbreite im Material entspricht genau dem Werkzeugdurchmesser.\n"
-"- Ball -> nur informativ und auf den Ball-Schaftfräser verweisen.\n"
-"- V-Form -> Deaktiviert den Z-Cut-Parameter in der resultierenden Geometrie-"
-"UI-Form\n"
-"und aktivieren Sie zwei zusätzliche UI-Formularfelder in der resultierenden "
-"Geometrie: V-Tip Dia und\n"
-"V-Tip-Winkel. Durch Anpassen dieser beiden Werte wird der Z-Cut-Parameter "
-"wie z\n"
-"da die Schnittbreite in Material gleich dem Wert im Werkzeugdurchmesser ist\n"
-"Spalte dieser Tabelle.\n"
-"Durch automatische Auswahl des Werkzeugtyps \"V-Form\" wird der "
-"Operationstyp ausgewählt\n"
-"in der resultierenden Geometrie als Isolation."
-
-#: flatcamTools/ToolPaint.py:498
-msgid ""
-"The type of FlatCAM object to be used as paint reference.\n"
-"It can be Gerber, Excellon or Geometry."
-msgstr ""
-"Der Typ des FlatCAM-Objekts, das als Malreferenz verwendet werden soll.\n"
-"Es kann Gerber, Excellon oder Geometry sein."
-
-#: flatcamTools/ToolPaint.py:539
-msgid ""
-"- 'Area Selection' - left mouse click to start selection of the area to be "
-"painted.\n"
-"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple "
-"areas.\n"
-"- 'All Polygons' - the Paint will start after click.\n"
-"- 'Reference Object' - will do non copper clearing within the area\n"
-"specified by another object."
-msgstr ""
-"- 'Bereichsauswahl' - Klicken Sie mit der linken Maustaste, um den Bereich "
-"auszuwählen, der gemalt werden soll.\n"
-"Wenn Sie eine Änderungstaste gedrückt halten (STRG oder UMSCHALTTASTE), "
-"können Sie mehrere Bereiche hinzufügen.\n"
-"- 'Alle Polygone' - Der Malvorgang wird nach dem Klicken gestartet.\n"
-"- 'Referenzobjekt' - löscht nicht kupferne Objekte innerhalb des Bereichs\n"
-"von einem anderen Objekt angegeben."
-
-#: flatcamTools/ToolPaint.py:1393
-#, python-format
-msgid "Could not retrieve object: %s"
-msgstr "Objekt konnte nicht abgerufen werden: %s"
-
-#: flatcamTools/ToolPaint.py:1403
-msgid "Can't do Paint on MultiGeo geometries"
-msgstr "Auf MultiGeo-Geometrien kann nicht gemalt werden"
-
-#: flatcamTools/ToolPaint.py:1433
-msgid "Click on a polygon to paint it."
-msgstr "Klicken Sie auf ein Polygon um es auszufüllen."
-
-#: flatcamTools/ToolPaint.py:1453
-msgid "Click the start point of the paint area."
-msgstr "Klicken Sie auf den Startpunkt des Malbereichs."
-
-#: flatcamTools/ToolPaint.py:1518
-msgid "Click to add next polygon or right click to start painting."
-msgstr ""
-"Klicken Sie, um die nächste Zone hinzuzufügen, oder klicken Sie mit der "
-"rechten Maustaste um mit dem Ausfüllen zu beginnen."
-
-#: flatcamTools/ToolPaint.py:1531
-msgid "Click to add/remove next polygon or right click to start painting."
-msgstr ""
-"Klicken Sie, um die nächste Zone hinzuzufügen oder zu löschen, oder klicken "
-"Sie mit der rechten Maustaste, um den Vorgang abzuschließen."
-
-#: flatcamTools/ToolPaint.py:2029
-msgid "Painting polygon with method: lines."
-msgstr "Polygon mit Methode malen: Linien."
-
-#: flatcamTools/ToolPaint.py:2041
-msgid "Failed. Painting polygon with method: seed."
-msgstr "Gescheitert. Polygon mit Methode malen: Same."
-
-#: flatcamTools/ToolPaint.py:2052
-msgid "Failed. Painting polygon with method: standard."
-msgstr "Gescheitert. Polygon mit Methode malen: Standard."
-
-#: flatcamTools/ToolPaint.py:2068
-msgid "Geometry could not be painted completely"
-msgstr "Geometrie konnte nicht vollständig gemalt werden"
-
-#: flatcamTools/ToolPaint.py:2097 flatcamTools/ToolPaint.py:2100
-#: flatcamTools/ToolPaint.py:2108 flatcamTools/ToolPaint.py:2411
-#: flatcamTools/ToolPaint.py:2414 flatcamTools/ToolPaint.py:2422
-#: flatcamTools/ToolPaint.py:2910 flatcamTools/ToolPaint.py:2913
-#: flatcamTools/ToolPaint.py:2919
-msgid "Paint Tool."
-msgstr "Malwerkzeug."
-
-#: flatcamTools/ToolPaint.py:2097 flatcamTools/ToolPaint.py:2100
-#: flatcamTools/ToolPaint.py:2108
-msgid "Normal painting polygon task started."
-msgstr "Normale Zeichenpolygonaufgabe gestartet."
-
-#: flatcamTools/ToolPaint.py:2098 flatcamTools/ToolPaint.py:2412
-#: flatcamTools/ToolPaint.py:2911
-msgid "Buffering geometry..."
-msgstr "Geometrie puffern..."
-
-#: flatcamTools/ToolPaint.py:2120 flatcamTools/ToolPaint.py:2429
-#: flatcamTools/ToolPaint.py:2927
-msgid "No polygon found."
-msgstr "Kein Polygon gefunden."
-
-#: flatcamTools/ToolPaint.py:2150
-msgid "Painting polygon..."
-msgstr "Polygon malen ..."
-
-#: flatcamTools/ToolPaint.py:2160 flatcamTools/ToolPaint.py:2475
-#: flatcamTools/ToolPaint.py:2665 flatcamTools/ToolPaint.py:2973
-#: flatcamTools/ToolPaint.py:3152
-msgid "Painting with tool diameter = "
-msgstr "Lackieren mit Werkzeugdurchmesser = "
-
-#: flatcamTools/ToolPaint.py:2161 flatcamTools/ToolPaint.py:2476
-#: flatcamTools/ToolPaint.py:2666 flatcamTools/ToolPaint.py:2974
-#: flatcamTools/ToolPaint.py:3153
-msgid "started"
-msgstr "gestartet"
-
-#: flatcamTools/ToolPaint.py:2186 flatcamTools/ToolPaint.py:2502
-#: flatcamTools/ToolPaint.py:2692 flatcamTools/ToolPaint.py:3000
-#: flatcamTools/ToolPaint.py:3179
-msgid "Margin parameter too big. Tool is not used"
-msgstr "Randparameter zu groß. Werkzeug wird nicht verwendet"
-
-#: flatcamTools/ToolPaint.py:2244 flatcamTools/ToolPaint.py:2571
-#: flatcamTools/ToolPaint.py:2749 flatcamTools/ToolPaint.py:3063
-#: flatcamTools/ToolPaint.py:3241
-msgid ""
-"Could not do Paint. Try a different combination of parameters. Or a "
-"different strategy of paint"
-msgstr ""
-"Konnte nicht malen. Probieren Sie eine andere Kombination von Parametern "
-"aus. Oder eine andere Strategie der Farbe"
-
-#: flatcamTools/ToolPaint.py:2301 flatcamTools/ToolPaint.py:2637
-#: flatcamTools/ToolPaint.py:2806 flatcamTools/ToolPaint.py:3124
-#: flatcamTools/ToolPaint.py:3303
-msgid ""
-"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 ""
-"Die Datei enthält keine Malgeometrie.\n"
-"Normalerweise bedeutet dies, dass der Werkzeugdurchmesser für die lackierte "
-"Geometrie zu groß ist.\n"
-"Ändern Sie die Malparameter und versuchen Sie es erneut."
-
-#: flatcamTools/ToolPaint.py:2324
-msgid "Paint Single failed."
-msgstr "Das Malen eines einzelnen Polygons ist fehlgeschlagen."
-
-#: flatcamTools/ToolPaint.py:2330
-msgid "Paint Single Done."
-msgstr "Malen Sie Single Done."
-
-#: flatcamTools/ToolPaint.py:2332 flatcamTools/ToolPaint.py:2842
-#: flatcamTools/ToolPaint.py:3339
-msgid "Polygon Paint started ..."
-msgstr "Polygonfarbe gestartet ..."
-
-#: flatcamTools/ToolPaint.py:2411 flatcamTools/ToolPaint.py:2414
-#: flatcamTools/ToolPaint.py:2422
-msgid "Paint all polygons task started."
-msgstr "Malen Sie alle Polygone Aufgabe gestartet."
-
-#: flatcamTools/ToolPaint.py:2453 flatcamTools/ToolPaint.py:2951
-msgid "Painting polygons..."
-msgstr "Polygone malen ..."
-
-#: flatcamTools/ToolPaint.py:2646
-msgid "Paint All Done."
-msgstr "Malen Sie alles fertig."
-
-#: flatcamTools/ToolPaint.py:2815 flatcamTools/ToolPaint.py:3312
-msgid "Paint All with Rest-Machining done."
-msgstr "Malen Sie alles mit Restbearbeitung."
-
-#: flatcamTools/ToolPaint.py:2834
-msgid "Paint All failed."
-msgstr "Malen Alle Polygone sind fehlgeschlagen."
-
-#: flatcamTools/ToolPaint.py:2840
-msgid "Paint Poly All Done."
-msgstr "Malen Sie alle Polygone fertig."
-
-#: flatcamTools/ToolPaint.py:2910 flatcamTools/ToolPaint.py:2913
-#: flatcamTools/ToolPaint.py:2919
-msgid "Painting area task started."
-msgstr "Malbereichsaufgabe gestartet."
-
-#: flatcamTools/ToolPaint.py:3133
-msgid "Paint Area Done."
-msgstr "Lackierbereich fertig."
-
-#: flatcamTools/ToolPaint.py:3331
-msgid "Paint Area failed."
-msgstr "Lackierbereich fehlgeschlagen."
-
-#: flatcamTools/ToolPaint.py:3337
-msgid "Paint Poly Area Done."
-msgstr "Lackierbereich fertig."
-
-#: flatcamTools/ToolPanelize.py:34
-msgid "Panelize PCB"
-msgstr "Panelisierung PCB"
-
-#: flatcamTools/ToolPanelize.py:56
-msgid ""
-"Specify the type of object to be panelized\n"
-"It can be of type: Gerber, Excellon or Geometry.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Object combobox."
-msgstr ""
-"Geben Sie den Typ des Objekts an, für das ein Panel erstellt werden soll\n"
-"Es kann vom Typ sein: Gerber, Excellon oder Geometrie.\n"
-"Die Auswahl hier bestimmt den Objekttyp\n"
-"im Objekt-Kombinationsfeld."
-
-#: flatcamTools/ToolPanelize.py:89
-msgid ""
-"Object to be panelized. This means that it will\n"
-"be duplicated in an array of rows and columns."
-msgstr ""
-"Objekt, das in Panels gesetzt werden soll. Dies bedeutet, dass es wird\n"
-"in einem Array von Zeilen und Spalten dupliziert werden."
-
-#: flatcamTools/ToolPanelize.py:102
-msgid "Penelization Reference"
-msgstr "Penelisierungshinweis"
-
-#: flatcamTools/ToolPanelize.py:104
-msgid ""
-"Choose the reference for panelization:\n"
-"- Object = the bounding box of a different object\n"
-"- Bounding Box = the bounding box of the object to be panelized\n"
-"\n"
-"The reference is useful when doing panelization for more than one\n"
-"object. The spacings (really offsets) will be applied in reference\n"
-"to this reference object therefore maintaining the panelized\n"
-"objects in sync."
-msgstr ""
-"Wählen Sie die Referenz für die Panelisierung:\n"
-"- Objekt = der Begrenzungsrahmen eines anderen Objekts\n"
-"- Begrenzungsrahmen = Der Begrenzungsrahmen des zu verkleidenden Objekts\n"
-"\n"
-"Diese Referenz ist nützlich, wenn Sie Panels für mehr als einen erstellen\n"
-"Objekt. Die Abstände (wirklich Versätze) werden als Referenz angewendet\n"
-"Zu diesem Referenzobjekt gehört daher die Beibehaltung der getäfelten\n"
-"Objekte synchronisieren."
-
-#: flatcamTools/ToolPanelize.py:125
-msgid "Box Type"
-msgstr "Box-Typ"
-
-#: flatcamTools/ToolPanelize.py:127
-msgid ""
-"Specify the type of object to be used as an container for\n"
-"panelization. It can be: Gerber or Geometry type.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Box Object combobox."
-msgstr ""
-"Geben Sie den Objekttyp an, für den ein Container verwendet werden soll\n"
-"Panelisierung. Es kann sein: Gerber oder Geometrietyp.\n"
-"Die Auswahl hier bestimmt den Objekttyp\n"
-"im Kombinationsfeld Box-Objekt."
-
-#: flatcamTools/ToolPanelize.py:141
-msgid ""
-"The actual object that is used as container for the\n"
-" selected object that is to be panelized."
-msgstr ""
-"Das eigentliche Objekt, für das ein Container verwendet wird\n"
-"ausgewähltes Objekt, das in Panelisiert werden soll."
-
-#: flatcamTools/ToolPanelize.py:147
-msgid "Panel Data"
-msgstr "Paneldaten"
-
-#: flatcamTools/ToolPanelize.py:149
-msgid ""
-"This informations will shape the resulting panel.\n"
-"The number of rows and columns will set how many\n"
-"duplicates of the original geometry will be generated.\n"
-"\n"
-"The spacings will set the distance between any two\n"
-"elements of the panel array."
-msgstr ""
-"Diese Informationen formen das resultierende Panel.\n"
-"Die Anzahl der Zeilen und Spalten legt fest, wie viele\n"
-"Duplikate der ursprünglichen Geometrie werden generiert.\n"
-"\n"
-"Die Abstände bestimmen den Abstand zwischen zwei Elementen\n"
-"Elemente des Panel-Arrays."
-
-#: flatcamTools/ToolPanelize.py:208
-msgid ""
-"Choose the type of object for the panel object:\n"
-"- Geometry\n"
-"- Gerber"
-msgstr ""
-"Wählen Sie den Objekttyp für das Panel-Objekt:\n"
-"- Geometrie\n"
-"- Gerber"
-
-#: flatcamTools/ToolPanelize.py:216
-msgid "Constrain panel within"
-msgstr "Panel einschränken innerhalb"
-
-#: flatcamTools/ToolPanelize.py:252
-msgid "Panelize Object"
-msgstr "Panelize Objekt"
-
-#: flatcamTools/ToolPanelize.py:254 flatcamTools/ToolRulesCheck.py:501
-msgid ""
-"Panelize the specified object around the specified box.\n"
-"In other words it creates multiple copies of the source object,\n"
-"arranged in a 2D array of rows and columns."
-msgstr ""
-"Das angegebene Objekt um das angegebene Feld einteilen.\n"
-"Mit anderen Worten, es erstellt mehrere Kopien des Quellobjekts,\n"
-"in einem 2D-Array von Zeilen und Spalten angeordnet."
-
-#: flatcamTools/ToolPanelize.py:322
-msgid "Panel. Tool"
-msgstr "Platte Werkzeug"
-
-#: flatcamTools/ToolPanelize.py:457
-msgid "Columns or Rows are zero value. Change them to a positive integer."
-msgstr ""
-"Spalten oder Zeilen haben den Wert Null. Ändern Sie sie in eine positive "
-"Ganzzahl."
-
-#: flatcamTools/ToolPanelize.py:494
-msgid "Generating panel ... "
-msgstr "Panel wird erstellt ... "
-
-#: flatcamTools/ToolPanelize.py:777
-msgid "Generating panel ... Adding the Gerber code."
-msgstr "Panel wird generiert ... Hinzufügen des Gerber-Codes."
-
-#: flatcamTools/ToolPanelize.py:785
-msgid "Generating panel... Spawning copies"
-msgstr "Panel wird erstellt ... Kopien werden erstellt"
-
-#: flatcamTools/ToolPanelize.py:792
-msgid "Panel done..."
-msgstr "Panel fertig ..."
-
-#: flatcamTools/ToolPanelize.py:795
-#, python-brace-format
-msgid ""
-"{text} Too big for the constrain area. Final panel has {col} columns and "
-"{row} rows"
-msgstr ""
-"{text} Zu groß für den Einschränkungsbereich. Das letzte Panel enthält {col} "
-"Spalten und {row} Zeilen"
-
-#: flatcamTools/ToolPanelize.py:804
-msgid "Panel created successfully."
-msgstr "Panel erfolgreich erstellt."
-
-#: flatcamTools/ToolPcbWizard.py:31
-msgid "PcbWizard Import Tool"
-msgstr "PCBWizard Werkzeug importieren"
-
-#: flatcamTools/ToolPcbWizard.py:40
-msgid "Import 2-file Excellon"
-msgstr "Importieren Sie 2-Datei-Excellon"
-
-#: flatcamTools/ToolPcbWizard.py:51
-msgid "Load files"
-msgstr "Dateien laden"
-
-#: flatcamTools/ToolPcbWizard.py:57
-msgid "Excellon file"
-msgstr "Excellon-Datei"
-
-#: flatcamTools/ToolPcbWizard.py:59
-msgid ""
-"Load the Excellon file.\n"
-"Usually it has a .DRL extension"
-msgstr ""
-"Laden Sie die Excellon-Datei.\n"
-"Normalerweise hat es die Erweiterung .DRL"
-
-#: flatcamTools/ToolPcbWizard.py:65
-msgid "INF file"
-msgstr "INF-Datei"
-
-#: flatcamTools/ToolPcbWizard.py:67
-msgid "Load the INF file."
-msgstr "Laden Sie die INF-Datei."
-
-#: flatcamTools/ToolPcbWizard.py:79
-msgid "Tool Number"
-msgstr "Werkzeugnummer"
-
-#: flatcamTools/ToolPcbWizard.py:81
-msgid "Tool diameter in file units."
-msgstr "Werkzeugdurchmesser in Feileneinheiten."
-
-#: flatcamTools/ToolPcbWizard.py:87
-msgid "Excellon format"
-msgstr "Excellon format"
-
-#: flatcamTools/ToolPcbWizard.py:95
-msgid "Int. digits"
-msgstr "Ganzzahlige Ziffern"
-
-#: flatcamTools/ToolPcbWizard.py:97
-msgid "The number of digits for the integral part of the coordinates."
-msgstr "Die Anzahl der Ziffern für den integralen Teil der Koordinaten."
-
-#: flatcamTools/ToolPcbWizard.py:104
-msgid "Frac. digits"
-msgstr "Nachkommastellen"
-
-#: flatcamTools/ToolPcbWizard.py:106
-msgid "The number of digits for the fractional part of the coordinates."
-msgstr "Die Anzahl der Stellen für den gebrochenen Teil der Koordinaten."
-
-#: flatcamTools/ToolPcbWizard.py:113
-msgid "No Suppression"
-msgstr "Keine Unterdrück"
-
-#: flatcamTools/ToolPcbWizard.py:114
-msgid "Zeros supp."
-msgstr "Nullunterdrück."
-
-#: flatcamTools/ToolPcbWizard.py:116
-msgid ""
-"The type of zeros suppression used.\n"
-"Can be of type:\n"
-"- LZ = leading zeros are kept\n"
-"- TZ = trailing zeros are kept\n"
-"- No Suppression = no zero suppression"
-msgstr ""
-"Die Art der Unterdrückung von Nullen.\n"
-"Kann vom Typ sein:\n"
-"- LZ = führende Nullen werden beibehalten\n"
-"- TZ = nachfolgende Nullen bleiben erhalten\n"
-"- Keine Unterdrückung = keine Nullunterdrückung"
-
-#: flatcamTools/ToolPcbWizard.py:129
-msgid ""
-"The type of units that the coordinates and tool\n"
-"diameters are using. Can be INCH or MM."
-msgstr ""
-"Die Art der Einheiten, die die Koordinaten und das Werkzeug haben\n"
-"Durchmesser verwenden. Kann INCH oder MM sein."
-
-#: flatcamTools/ToolPcbWizard.py:136
-msgid "Import Excellon"
-msgstr "Excellon importieren"
-
-#: flatcamTools/ToolPcbWizard.py:138
-msgid ""
-"Import in FlatCAM an Excellon file\n"
-"that store it's information's in 2 files.\n"
-"One usually has .DRL extension while\n"
-"the other has .INF extension."
-msgstr ""
-"Importieren Sie in FlatCAM eine Excellon-Datei\n"
-"das speichert seine Informationen in 2 Dateien.\n"
-"Normalerweise hat man eine .DRL-Erweiterung\n"
-"der andere hat die Erweiterung .INF."
-
-#: flatcamTools/ToolPcbWizard.py:197
-msgid "PCBWizard Tool"
-msgstr "PCBWizard Werkzeug"
-
-#: flatcamTools/ToolPcbWizard.py:291 flatcamTools/ToolPcbWizard.py:295
-msgid "Load PcbWizard Excellon file"
-msgstr "PcbWizard Excellon-Datei laden"
-
-#: flatcamTools/ToolPcbWizard.py:314 flatcamTools/ToolPcbWizard.py:318
-msgid "Load PcbWizard INF file"
-msgstr "Laden Sie die PcbWizard INF-Datei"
-
-#: flatcamTools/ToolPcbWizard.py:366
-msgid ""
-"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 ""
-"Die INF-Datei enthält keine Werkzeugtabelle.\n"
-"Versuchen Sie, die Excellon-Datei über Datei -> Öffnen -> Excellon zu "
-"öffnen\n"
-"und bearbeiten Sie die Bohrerdurchmesser manuell."
-
-#: flatcamTools/ToolPcbWizard.py:387
-msgid "PcbWizard .INF file loaded."
-msgstr "PcbWizard-INF-Datei wurde geladen."
-
-#: flatcamTools/ToolPcbWizard.py:392
-msgid "Main PcbWizard Excellon file loaded."
-msgstr "Haupt-PcbWizard Excellon-Datei geladen."
-
-#: flatcamTools/ToolPcbWizard.py:427
-msgid "Cannot parse file"
-msgstr "Datei kann nicht analysiert werden"
-
-#: flatcamTools/ToolPcbWizard.py:450
-msgid "Importing Excellon."
-msgstr "Excellon importieren."
-
-#: flatcamTools/ToolPcbWizard.py:457
-msgid "Import Excellon file failed."
-msgstr "Import der Excellon-Datei ist fehlgeschlagen."
-
-#: flatcamTools/ToolPcbWizard.py:464
-msgid "Imported"
-msgstr "Importiert"
-
-#: flatcamTools/ToolPcbWizard.py:467
-msgid "Excellon merging is in progress. Please wait..."
-msgstr "Das Zusammenführen von Excellons ist im Gange. Warten Sie mal..."
-
-#: flatcamTools/ToolPcbWizard.py:469
-msgid "The imported Excellon file is empty."
-msgstr "Die importierte Excellon-Datei ist Keine."
-
-#: flatcamTools/ToolProperties.py:131
-msgid "Object Properties are displayed."
-msgstr "Objekteigenschaften werden angezeigt."
-
-#: flatcamTools/ToolProperties.py:136
-msgid "Properties Tool"
-msgstr "Eigenschaftenwerkzeug"
-
-#: flatcamTools/ToolProperties.py:150
-msgid "TYPE"
-msgstr "TYP"
-
-#: flatcamTools/ToolProperties.py:151
-msgid "NAME"
-msgstr "NAME"
-
-#: flatcamTools/ToolProperties.py:153
-msgid "Dimensions"
-msgstr "Dimensionen"
-
-#: flatcamTools/ToolProperties.py:181
-msgid "Geo Type"
-msgstr "Geo-Typ"
-
-#: flatcamTools/ToolProperties.py:184
-msgid "Single-Geo"
-msgstr "Einzehln Geo"
-
-#: flatcamTools/ToolProperties.py:185
-msgid "Multi-Geo"
-msgstr "Mehrfache Geo"
-
-#: flatcamTools/ToolProperties.py:196
-msgid "Calculating dimensions ... Please wait."
-msgstr "Bemaßung wird berechnet ... Bitte warten."
-
-#: flatcamTools/ToolProperties.py:339 flatcamTools/ToolProperties.py:343
-#: flatcamTools/ToolProperties.py:345
-msgid "Inch"
-msgstr "Zoll"
-
-#: flatcamTools/ToolProperties.py:339 flatcamTools/ToolProperties.py:344
-#: flatcamTools/ToolProperties.py:346
-msgid "Metric"
-msgstr "Metrisch"
-
-#: flatcamTools/ToolProperties.py:421 flatcamTools/ToolProperties.py:486
-msgid "Drills number"
-msgstr "Bohrernummer"
-
-#: flatcamTools/ToolProperties.py:422 flatcamTools/ToolProperties.py:488
-msgid "Slots number"
-msgstr "Slotnummer"
-
-#: flatcamTools/ToolProperties.py:424
-msgid "Drills total number:"
-msgstr "Gesamtzahl Bohrer:"
-
-#: flatcamTools/ToolProperties.py:425
-msgid "Slots total number:"
-msgstr "Gesamtzahl der slots:"
-
-#: flatcamTools/ToolProperties.py:452 flatcamTools/ToolProperties.py:455
-#: flatcamTools/ToolProperties.py:458 flatcamTools/ToolProperties.py:483
-msgid "Present"
-msgstr "Vorhanden"
-
-#: flatcamTools/ToolProperties.py:453 flatcamTools/ToolProperties.py:484
-msgid "Solid Geometry"
-msgstr "Festkörpergeometrie"
-
-#: flatcamTools/ToolProperties.py:456
-msgid "GCode Text"
-msgstr "GCode Text"
-
-#: flatcamTools/ToolProperties.py:459
-msgid "GCode Geometry"
-msgstr "GCode Geometrie"
-
-#: flatcamTools/ToolProperties.py:462
-msgid "Data"
-msgstr "Daten"
-
-#: flatcamTools/ToolProperties.py:495
-msgid "Depth of Cut"
-msgstr "Tiefe des Schnitts"
-
-#: flatcamTools/ToolProperties.py:507
-msgid "Clearance Height"
-msgstr "Freilaufhöhe"
-
-#: flatcamTools/ToolProperties.py:539
-msgid "Routing time"
-msgstr "Berechnungszeit"
-
-#: flatcamTools/ToolProperties.py:546
-msgid "Travelled distance"
-msgstr "Zurückgelegte Strecke"
-
-#: flatcamTools/ToolProperties.py:564
-msgid "Width"
-msgstr "Breite"
-
-#: flatcamTools/ToolProperties.py:570 flatcamTools/ToolProperties.py:578
-msgid "Box Area"
-msgstr "Feld Bereich"
-
-#: flatcamTools/ToolProperties.py:573 flatcamTools/ToolProperties.py:581
-msgid "Convex_Hull Area"
-msgstr "Konvexer Rumpfbereich"
-
-#: flatcamTools/ToolProperties.py:588 flatcamTools/ToolProperties.py:591
-msgid "Copper Area"
-msgstr "Kupferareal"
-
-#: flatcamTools/ToolPunchGerber.py:30 flatcamTools/ToolPunchGerber.py:323
-msgid "Punch Gerber"
-msgstr "Schlag Gerber"
-
-#: flatcamTools/ToolPunchGerber.py:65
-msgid "Gerber into which to punch holes"
-msgstr "Gerber, in den Löcher gestanzt werden können"
-
-#: flatcamTools/ToolPunchGerber.py:85
-msgid "ALL"
-msgstr "ALLE"
-
-#: flatcamTools/ToolPunchGerber.py:166
-msgid ""
-"Remove the geometry of Excellon from the Gerber to create the holes in pads."
-msgstr ""
-"Entfernen Sie die Geometrie von Excellon aus dem Gerber, um die Löcher in "
-"den Pads zu erstellen."
-
-#: flatcamTools/ToolPunchGerber.py:325
-msgid ""
-"Create a Gerber object from the selected object, within\n"
-"the specified box."
-msgstr ""
-"Erstellen Sie innerhalb des ausgewählten Objekts ein Gerber-Objekt\n"
-"das angegebene Feld."
-
-#: flatcamTools/ToolPunchGerber.py:425
-msgid "Punch Tool"
-msgstr "Stanzwerkzeug"
-
-#: flatcamTools/ToolPunchGerber.py:599
-msgid "The value of the fixed diameter is 0.0. Aborting."
-msgstr "Der Wert des festen Durchmessers beträgt 0,0. Abbruch."
-
-#: flatcamTools/ToolPunchGerber.py:607 flatcamTools/ToolPunchGerber.py:619
-msgid ""
-"Could not generate punched hole Gerber because the punch hole size is bigger "
-"than some of the apertures in the Gerber object."
-msgstr ""
-"Stanzloch Gerber konnte nicht generiert werden, da die Stanzlochgröße größer "
-"ist als einige der Öffnungen im Gerber-Objekt."
-
-#: flatcamTools/ToolPunchGerber.py:656
-msgid ""
-"Could not generate punched hole Gerber because the newly created object "
-"geometry is the same as the one in the source object geometry..."
-msgstr ""
-"Stanzloch Gerber konnte nicht generiert werden, da die neu erstellte "
-"Objektgeometrie mit der in der Quellobjektgeometrie übereinstimmt ..."
-
-#: flatcamTools/ToolQRCode.py:80
-msgid "Gerber Object to which the QRCode will be added."
-msgstr "Gerber-Objekt zu dem der QRCode hinzugefügt wird."
-
-#: flatcamTools/ToolQRCode.py:93
-msgid "QRCode Parameters"
-msgstr "QRCode Parameter"
-
-#: flatcamTools/ToolQRCode.py:95
-msgid "The parameters used to shape the QRCode."
-msgstr "Parameter zum Aussehen des QRCodes."
-
-#: flatcamTools/ToolQRCode.py:207
-msgid "Export QRCode"
-msgstr "QRCode exportieren"
-
-#: flatcamTools/ToolQRCode.py:209
-msgid ""
-"Show a set of controls allowing to export the QRCode\n"
-"to a SVG file or an PNG file."
-msgstr ""
-"Zeigt einen Satz von Bedienelementen um den QRCode\n"
-"in eine SVG oder ein PNG File zu exportieren."
-
-#: flatcamTools/ToolQRCode.py:248
-msgid "Transparent back color"
-msgstr "Transparente Hintergrundfarbe"
-
-#: flatcamTools/ToolQRCode.py:273
-msgid "Export QRCode SVG"
-msgstr "QRCode als SVG exportieren"
-
-#: flatcamTools/ToolQRCode.py:275
-msgid "Export a SVG file with the QRCode content."
-msgstr "Export als SVG Code mit dem QRCode Inhalt."
-
-#: flatcamTools/ToolQRCode.py:286
-msgid "Export QRCode PNG"
-msgstr "G-Code als PNG exportieren"
-
-#: flatcamTools/ToolQRCode.py:288
-msgid "Export a PNG image file with the QRCode content."
-msgstr "Exportiert den QRCode als PNG Datei."
-
-#: flatcamTools/ToolQRCode.py:299
-msgid "Insert QRCode"
-msgstr "QRCode einfügen"
-
-#: flatcamTools/ToolQRCode.py:301
-msgid "Create the QRCode object."
-msgstr "Erzeugen des QRCode Objektes."
-
-#: flatcamTools/ToolQRCode.py:415 flatcamTools/ToolQRCode.py:750
-#: flatcamTools/ToolQRCode.py:799
-msgid "Cancelled. There is no QRCode Data in the text box."
-msgstr "Abgebrochen. Es befindet sich kein QRCode im Feld."
-
-#: flatcamTools/ToolQRCode.py:434
-msgid "Generating QRCode geometry"
-msgstr "QRCode Geometrie erzeugen"
-
-#: flatcamTools/ToolQRCode.py:474
-msgid "Click on the Destination point ..."
-msgstr "Klicken Sie auf den Zielpunkt ..."
-
-#: flatcamTools/ToolQRCode.py:589
-msgid "QRCode Tool done."
-msgstr "QRCode Tool fertig."
-
-#: flatcamTools/ToolQRCode.py:782 flatcamTools/ToolQRCode.py:786
-msgid "Export PNG"
-msgstr "PNG exportieren"
-
-#: flatcamTools/ToolRulesCheck.py:33
-msgid "Check Rules"
-msgstr "Überprüfen Sie die Regeln"
-
-#: flatcamTools/ToolRulesCheck.py:61
-msgid "Gerber Files"
-msgstr "Gerber-Dateien"
-
-#: flatcamTools/ToolRulesCheck.py:63
-msgid "Gerber objects for which to check rules."
-msgstr "Gerber-Objekte, für die Regeln überprüft werden sollen."
-
-#: flatcamTools/ToolRulesCheck.py:78
-msgid "Top"
-msgstr "Oberst"
-
-#: flatcamTools/ToolRulesCheck.py:80
-msgid "The Top Gerber Copper object for which rules are checked."
-msgstr "Das Top Gerber Copper-Objekt, für das Regeln überprüft werden."
-
-#: flatcamTools/ToolRulesCheck.py:96
-msgid "Bottom"
-msgstr "Unterseite"
-
-#: flatcamTools/ToolRulesCheck.py:98
-msgid "The Bottom Gerber Copper object for which rules are checked."
-msgstr "Das untere Gerber Copper-Objekt, für das Regeln überprüft werden."
-
-#: flatcamTools/ToolRulesCheck.py:114
-msgid "SM Top"
-msgstr "SM Oberst"
-
-#: flatcamTools/ToolRulesCheck.py:116
-msgid "The Top Gerber Solder Mask object for which rules are checked."
-msgstr "Das oberste Gerber-Lötmaskenobjekt, für das Regeln überprüft werden."
-
-#: flatcamTools/ToolRulesCheck.py:132
-msgid "SM Bottom"
-msgstr "SM unten"
-
-#: flatcamTools/ToolRulesCheck.py:134
-msgid "The Bottom Gerber Solder Mask object for which rules are checked."
-msgstr "Das untere Gerber-Lötmaskenobjekt, für das Regeln überprüft werden."
-
-#: flatcamTools/ToolRulesCheck.py:150
-msgid "Silk Top"
-msgstr "Siebdruck Oben"
-
-#: flatcamTools/ToolRulesCheck.py:152
-msgid "The Top Gerber Silkscreen object for which rules are checked."
-msgstr "Das oberste Gerber-Siebdruck-Objekt, für das Regeln überprüft werden."
-
-#: flatcamTools/ToolRulesCheck.py:168
-msgid "Silk Bottom"
-msgstr "Siebdruck unten"
-
-#: flatcamTools/ToolRulesCheck.py:170
-msgid "The Bottom Gerber Silkscreen object for which rules are checked."
-msgstr "Das untere Gerber-Siebdruck-Objekt, für das Regeln überprüft werden."
-
-#: flatcamTools/ToolRulesCheck.py:188
-msgid "The Gerber Outline (Cutout) object for which rules are checked."
-msgstr ""
-"Das Gerber-Gliederungsobjekt (Ausschnitt), für das Regeln überprüft werden."
-
-#: flatcamTools/ToolRulesCheck.py:199
-msgid "Excellon Objects"
-msgstr "Excellon-Objekte"
-
-#: flatcamTools/ToolRulesCheck.py:201
-msgid "Excellon objects for which to check rules."
-msgstr "Excellon-Objekte, für die Regeln überprüft werden sollen."
-
-#: flatcamTools/ToolRulesCheck.py:213
-msgid "Excellon 1"
-msgstr "Excellon 1"
-
-#: flatcamTools/ToolRulesCheck.py:215
-msgid ""
-"Excellon object for which to check rules.\n"
-"Holds the plated holes or a general Excellon file content."
-msgstr ""
-"Excellon-Objekt, für das Regeln überprüft werden sollen.\n"
-"Enthält die plattierten Löcher oder einen allgemeinen Excellon-Dateiinhalt."
-
-#: flatcamTools/ToolRulesCheck.py:232
-msgid "Excellon 2"
-msgstr "Excellon 2"
-
-#: flatcamTools/ToolRulesCheck.py:234
-msgid ""
-"Excellon object for which to check rules.\n"
-"Holds the non-plated holes."
-msgstr ""
-"Excellon-Objekt, für das Regeln überprüft werden sollen.\n"
-"Hält die nicht plattierten Löcher."
-
-#: flatcamTools/ToolRulesCheck.py:247
-msgid "All Rules"
-msgstr "Alle Regeln"
-
-#: flatcamTools/ToolRulesCheck.py:249
-msgid "This check/uncheck all the rules below."
-msgstr ""
-"Hiermit können Sie alle unten aufgeführten Regeln aktivieren / deaktivieren."
-
-#: flatcamTools/ToolRulesCheck.py:499
-msgid "Run Rules Check"
-msgstr "Führen Sie die Regelprüfung durch"
-
-#: flatcamTools/ToolRulesCheck.py:1158 flatcamTools/ToolRulesCheck.py:1218
-#: flatcamTools/ToolRulesCheck.py:1255 flatcamTools/ToolRulesCheck.py:1327
-#: flatcamTools/ToolRulesCheck.py:1381 flatcamTools/ToolRulesCheck.py:1419
-#: flatcamTools/ToolRulesCheck.py:1484
-msgid "Value is not valid."
-msgstr "Wert ist ungültig."
-
-#: flatcamTools/ToolRulesCheck.py:1172
-msgid "TOP -> Copper to Copper clearance"
-msgstr "TOP -> Kupfer zu Kupfer Abstand"
-
-#: flatcamTools/ToolRulesCheck.py:1183
-msgid "BOTTOM -> Copper to Copper clearance"
-msgstr "UNTEN -> Kupfer zu Kupfer Abstand"
-
-#: flatcamTools/ToolRulesCheck.py:1188 flatcamTools/ToolRulesCheck.py:1282
-#: flatcamTools/ToolRulesCheck.py:1446
-msgid ""
-"At least one Gerber object has to be selected for this rule but none is "
-"selected."
-msgstr ""
-"Für diese Regel muss mindestens ein Gerber-Objekt ausgewählt sein, aber "
-"keines."
-
-#: flatcamTools/ToolRulesCheck.py:1224
-msgid ""
-"One of the copper Gerber objects or the Outline Gerber object is not valid."
-msgstr ""
-"Eines der Kupfer-Gerber-Objekte oder das Umriss-Gerber-Objekt ist ungültig."
-
-#: flatcamTools/ToolRulesCheck.py:1237 flatcamTools/ToolRulesCheck.py:1401
-msgid ""
-"Outline Gerber object presence is mandatory for this rule but it is not "
-"selected."
-msgstr ""
-"Das Vorhandensein von Gerber-Objekten ist für diese Regel obligatorisch, "
-"jedoch nicht ausgewählt."
-
-#: flatcamTools/ToolRulesCheck.py:1254 flatcamTools/ToolRulesCheck.py:1281
-msgid "Silk to Silk clearance"
-msgstr "Siebdruck zu siebdruck freiheit"
-
-#: flatcamTools/ToolRulesCheck.py:1267
-msgid "TOP -> Silk to Silk clearance"
-msgstr "TOP -> Siebdruck zu Siebdruck Abstand"
-
-#: flatcamTools/ToolRulesCheck.py:1277
-msgid "BOTTOM -> Silk to Silk clearance"
-msgstr "UNTEN -> Abstand von Siebdruck zu Siebdruck"
-
-#: flatcamTools/ToolRulesCheck.py:1333
-msgid "One or more of the Gerber objects is not valid."
-msgstr "Eines oder mehrere der Gerber-Objekte sind ungültig."
-
-#: flatcamTools/ToolRulesCheck.py:1341
-msgid "TOP -> Silk to Solder Mask Clearance"
-msgstr "TOP -> Abstand von Siebdruck zu Lötmaske"
-
-#: flatcamTools/ToolRulesCheck.py:1347
-msgid "BOTTOM -> Silk to Solder Mask Clearance"
-msgstr "UNTEN -> Abstand von Siebdruck zu Lötmaske"
-
-#: flatcamTools/ToolRulesCheck.py:1351
-msgid ""
-"Both Silk and Solder Mask Gerber objects has to be either both Top or both "
-"Bottom."
-msgstr ""
-"Sowohl Siebdruck- als auch Lötmasken-Gerber-Objekte müssen entweder beide "
-"oben oder beide unten sein."
-
-#: flatcamTools/ToolRulesCheck.py:1387
-msgid ""
-"One of the Silk Gerber objects or the Outline Gerber object is not valid."
-msgstr ""
-"Eines der Siebdruck-Gerber-Objekte oder das Gliederung-Gerber-Objekt ist "
-"ungültig."
-
-#: flatcamTools/ToolRulesCheck.py:1431
-msgid "TOP -> Minimum Solder Mask Sliver"
-msgstr "TOP -> Minimum Lötmaskenband"
-
-#: flatcamTools/ToolRulesCheck.py:1441
-msgid "BOTTOM -> Minimum Solder Mask Sliver"
-msgstr "UNTEN-> Minimum Lötmaskenband"
-
-#: flatcamTools/ToolRulesCheck.py:1490
-msgid "One of the Copper Gerber objects or the Excellon objects is not valid."
-msgstr ""
-"Eines der Kupfer-Gerber-Objekte oder der Excellon-Objekte ist ungültig."
-
-#: flatcamTools/ToolRulesCheck.py:1506
-msgid ""
-"Excellon object presence is mandatory for this rule but none is selected."
-msgstr ""
-"Das Vorhandensein von Excellon-Objekten ist für diese Regel obligatorisch, "
-"es ist jedoch keine ausgewählt."
-
-#: flatcamTools/ToolRulesCheck.py:1579 flatcamTools/ToolRulesCheck.py:1592
-#: flatcamTools/ToolRulesCheck.py:1603 flatcamTools/ToolRulesCheck.py:1616
-msgid "STATUS"
-msgstr "STATUS"
-
-#: flatcamTools/ToolRulesCheck.py:1582 flatcamTools/ToolRulesCheck.py:1606
-msgid "FAILED"
-msgstr "GESCHEITERT"
-
-#: flatcamTools/ToolRulesCheck.py:1595 flatcamTools/ToolRulesCheck.py:1619
-msgid "PASSED"
-msgstr "BESTANDEN"
-
-#: flatcamTools/ToolRulesCheck.py:1596 flatcamTools/ToolRulesCheck.py:1620
-msgid "Violations: There are no violations for the current rule."
-msgstr "Verstöße: Für die aktuelle Regel gibt es keine Verstöße."
-
-#: flatcamTools/ToolShell.py:74 flatcamTools/ToolShell.py:76
-msgid "...processing..."
-msgstr "...wird bearbeitet..."
-
-#: flatcamTools/ToolSolderPaste.py:37
-msgid "Solder Paste Tool"
-msgstr "Lötpaste-Werkzeug"
-
-#: flatcamTools/ToolSolderPaste.py:69
-msgid "Gerber Solder paste object. "
-msgstr "Gerber Lötpastenobjekt. "
-
-#: flatcamTools/ToolSolderPaste.py:76
-msgid ""
-"Tools pool from which the algorithm\n"
-"will pick the ones used for dispensing solder paste."
-msgstr ""
-"Toolspool aus dem der Algorithmus\n"
-"wählt die für die Lotpaste verwendeten aus."
-
-#: flatcamTools/ToolSolderPaste.py:91
-msgid ""
-"This is the Tool Number.\n"
-"The solder dispensing will start with the tool with the biggest \n"
-"diameter, continuing until there are no more Nozzle tools.\n"
-"If there are no longer tools but there are still pads not covered\n"
-" with solder paste, the app will issue a warning message box."
-msgstr ""
-"Dies ist die Werkzeugnummer.\n"
-"Die Lotdosierung beginnt mit dem Werkzeug mit dem größten\n"
-"Durchmesser, weiter, bis keine Düsenwerkzeuge mehr vorhanden sind.\n"
-"Wenn keine Werkzeuge mehr vorhanden sind, sind aber noch keine Pads "
-"vorhanden\n"
-"Mit Lötpaste gibt die App eine Warnmeldung aus."
-
-#: flatcamTools/ToolSolderPaste.py:98
-msgid ""
-"Nozzle tool Diameter. It's value (in current FlatCAM units)\n"
-"is the width of the solder paste dispensed."
-msgstr ""
-"Düsenwerkzeug Durchmesser. Der Wert (in aktuellen FlatCAM-Einheiten)\n"
-"ist die Breite der Lotpaste."
-
-#: flatcamTools/ToolSolderPaste.py:105
-msgid "New Nozzle Tool"
-msgstr "Neues Düsenwerkzeug"
-
-#: flatcamTools/ToolSolderPaste.py:124
-msgid ""
-"Add a new nozzle tool to the Tool Table\n"
-"with the diameter specified above."
-msgstr ""
-"Fügen Sie der Werkzeugtabelle ein neues Düsenwerkzeug hinzu\n"
-"mit dem oben angegebenen Durchmesser."
-
-#: flatcamTools/ToolSolderPaste.py:136
-msgid "Generate solder paste dispensing geometry."
-msgstr "Generieren Sie Lotpastendispensiergeometrie."
-
-#: flatcamTools/ToolSolderPaste.py:155
-msgid "STEP 1"
-msgstr "SCHRITT 1"
-
-#: flatcamTools/ToolSolderPaste.py:157
-msgid ""
-"First step is to select a number of nozzle tools for usage\n"
-"and then optionally modify the GCode parameters below."
-msgstr ""
-"Zunächst müssen Sie eine Reihe von Düsenwerkzeugen auswählen\n"
-"und ändern Sie dann optional die GCode-Parameter."
-
-#: flatcamTools/ToolSolderPaste.py:160
-msgid ""
-"Select tools.\n"
-"Modify parameters."
-msgstr ""
-"Werkzeuge auswählen.\n"
-"Parameter ändern."
-
-#: flatcamTools/ToolSolderPaste.py:280
-msgid ""
-"Feedrate (speed) while moving up vertically\n"
-" to Dispense position (on Z plane)."
-msgstr ""
-"Vorschub (Geschwindigkeit) bei vertikaler Bewegung\n"
-" zur Ausgabeposition (auf der Z-Ebene)."
-
-#: flatcamTools/ToolSolderPaste.py:350
-msgid ""
-"Generate GCode for Solder Paste dispensing\n"
-"on PCB pads."
-msgstr ""
-"Generieren Sie GCode für die Lotpastendosierung\n"
-"auf PCB-Pads."
-
-#: flatcamTools/ToolSolderPaste.py:371
-msgid "STEP 2"
-msgstr "SCHRITT 2"
-
-#: flatcamTools/ToolSolderPaste.py:373
-msgid ""
-"Second step is to create a solder paste dispensing\n"
-"geometry out of an Solder Paste Mask Gerber file."
-msgstr ""
-"Der zweite Schritt ist das Erstellen einer Lotpastendispensierung\n"
-"Geometrie aus einer Lotpastenmaske-Gerber-Datei."
-
-#: flatcamTools/ToolSolderPaste.py:390
-msgid "Geo Result"
-msgstr "Geo-Ergebnis"
-
-#: flatcamTools/ToolSolderPaste.py:392
-msgid ""
-"Geometry Solder Paste object.\n"
-"The name of the object has to end in:\n"
-"'_solderpaste' as a protection."
-msgstr ""
-"Geometrie Lötpaste Objekt einfügen.\n"
-"Der Name des Objekts muss auf enden:\n"
-"'_solderpaste' als Schutz."
-
-#: flatcamTools/ToolSolderPaste.py:401
-msgid "STEP 3"
-msgstr "SCHRITT 3"
-
-#: flatcamTools/ToolSolderPaste.py:403
-msgid ""
-"Third step is to select a solder paste dispensing geometry,\n"
-"and then generate a CNCJob object.\n"
-"\n"
-"REMEMBER: if you want to create a CNCJob with new parameters,\n"
-"first you need to generate a geometry with those new params,\n"
-"and only after that you can generate an updated CNCJob."
-msgstr ""
-"Der dritte Schritt ist die Auswahl einer Lotpastendosiergeometrie.\n"
-"und generieren Sie dann ein CNCJob-Objekt.\n"
-"\n"
-"HINWEIS: Wenn Sie einen CNCJob mit neuen Parametern erstellen möchten,\n"
-"Zuerst müssen Sie eine Geometrie mit diesen neuen Parametern generieren.\n"
-"und erst danach können Sie einen aktualisierten CNCJob erstellen."
-
-#: flatcamTools/ToolSolderPaste.py:424
-msgid "CNC Result"
-msgstr "CNC-Ergebnis"
-
-#: flatcamTools/ToolSolderPaste.py:426
-msgid ""
-"CNCJob Solder paste object.\n"
-"In order to enable the GCode save section,\n"
-"the name of the object has to end in:\n"
-"'_solderpaste' as a protection."
-msgstr ""
-"CNCJob Lotpastenobjekt.\n"
-"Um den GCode-Speicherbereich zu aktivieren,\n"
-"Der Name des Objekts muss auf enden:\n"
-"'_solderpaste' als Schutz."
-
-#: flatcamTools/ToolSolderPaste.py:436
-msgid "View GCode"
-msgstr "GCode anzeigen"
-
-#: flatcamTools/ToolSolderPaste.py:438
-msgid ""
-"View the generated GCode for Solder Paste dispensing\n"
-"on PCB pads."
-msgstr ""
-"Zeigen Sie den generierten GCode für die Lotpastendosierung an\n"
-"auf PCB-Pads."
-
-#: flatcamTools/ToolSolderPaste.py:448
-msgid "Save GCode"
-msgstr "Speichern Sie GCode"
-
-#: flatcamTools/ToolSolderPaste.py:450
-msgid ""
-"Save the generated GCode for Solder Paste dispensing\n"
-"on PCB pads, to a file."
-msgstr ""
-"Speichern Sie den generierten GCode für die Lotpastendosierung\n"
-"auf PCB-Pads zu einer Datei."
-
-#: flatcamTools/ToolSolderPaste.py:460
-msgid "STEP 4"
-msgstr "SCHRITT 4"
-
-#: flatcamTools/ToolSolderPaste.py:462
-msgid ""
-"Fourth step (and last) is to select a CNCJob made from \n"
-"a solder paste dispensing geometry, and then view/save it's GCode."
-msgstr ""
-"Vierter Schritt (und letzter Schritt) ist die Auswahl eines CNCJobs aus\n"
-"eine Lotpastendispensiergeometrie und dann den GCode anzeigen / speichern."
-
-#: flatcamTools/ToolSolderPaste.py:922
-msgid "New Nozzle tool added to Tool Table."
-msgstr "Neues Düsenwerkzeug zur Werkzeugtabelle hinzugefügt."
-
-#: flatcamTools/ToolSolderPaste.py:965
-msgid "Nozzle tool from Tool Table was edited."
-msgstr "Das Düsenwerkzeug aus der Werkzeugtabelle wurde bearbeitet."
-
-#: flatcamTools/ToolSolderPaste.py:1024
-msgid "Delete failed. Select a Nozzle tool to delete."
-msgstr "Löschen fehlgeschlagen. Wählen Sie ein Düsenwerkzeug zum Löschen aus."
-
-#: flatcamTools/ToolSolderPaste.py:1030
-msgid "Nozzle tool(s) deleted from Tool Table."
-msgstr "Düsenwerkzeug (e) aus der Werkzeugtabelle gelöscht."
-
-#: flatcamTools/ToolSolderPaste.py:1086
-msgid "No SolderPaste mask Gerber object loaded."
-msgstr "Keine Lötpastenmaske Gerber-Objekt geladen."
-
-#: flatcamTools/ToolSolderPaste.py:1104
-msgid "Creating Solder Paste dispensing geometry."
-msgstr "Erstellen einer Lotpastenspendergeometrie."
-
-#: flatcamTools/ToolSolderPaste.py:1117
-msgid "No Nozzle tools in the tool table."
-msgstr "Nein Düsenwerkzeuge in der Werkzeugtabelle."
-
-#: flatcamTools/ToolSolderPaste.py:1243
-msgid "Cancelled. Empty file, it has no geometry..."
-msgstr "Abgebrochen. Leere Datei hat keine Geometrie ..."
-
-#: flatcamTools/ToolSolderPaste.py:1246
-msgid "Solder Paste geometry generated successfully"
-msgstr "Lotpastengeometrie erfolgreich generiert"
-
-#: flatcamTools/ToolSolderPaste.py:1253
-msgid "Some or all pads have no solder due of inadequate nozzle diameters..."
-msgstr ""
-"Einige oder alle Pads haben wegen unzureichender Düsendurchmesser keine "
-"Lötstellen ..."
-
-#: flatcamTools/ToolSolderPaste.py:1267
-msgid "Generating Solder Paste dispensing geometry..."
-msgstr "Lötpasten-Dosiergeometrie erzeugen ..."
-
-#: flatcamTools/ToolSolderPaste.py:1287
-msgid "There is no Geometry object available."
-msgstr "Es ist kein Geometrieobjekt verfügbar."
-
-#: flatcamTools/ToolSolderPaste.py:1292
-msgid "This Geometry can't be processed. NOT a solder_paste_tool geometry."
-msgstr ""
-"Diese Geometrie kann nicht verarbeitet werden. KEINE Geometrie "
-"\"Lötpaste_Tool\"."
-
-#: flatcamTools/ToolSolderPaste.py:1328
-msgid "An internal error has ocurred. See shell.\n"
-msgstr "Ein interner Fehler ist aufgetreten. Siehe Konsole.\n"
-
-#: flatcamTools/ToolSolderPaste.py:1393
-msgid "ToolSolderPaste CNCjob created"
-msgstr "Werkzeuglötpaste CNC-Auftrag erstellt"
-
-#: flatcamTools/ToolSolderPaste.py:1412
-msgid "SP GCode Editor"
-msgstr "SP GCode-Editor"
-
-#: flatcamTools/ToolSolderPaste.py:1424 flatcamTools/ToolSolderPaste.py:1429
-#: flatcamTools/ToolSolderPaste.py:1484
-msgid ""
-"This CNCJob object can't be processed. NOT a solder_paste_tool CNCJob object."
-msgstr ""
-"Dieses CNCJob-Objekt kann nicht verarbeitet werden. KEIN lot_paste_tool "
-"CNCJob Objekt."
-
-#: flatcamTools/ToolSolderPaste.py:1454
-msgid "No Gcode in the object"
-msgstr "Kein Gcode im Objekt"
-
-#: flatcamTools/ToolSolderPaste.py:1494
-msgid "Export GCode ..."
-msgstr "GCode exportieren ..."
-
-#: flatcamTools/ToolSolderPaste.py:1542
-msgid "Solder paste dispenser GCode file saved to"
-msgstr "Lotpastenspender GCode-Datei gespeichert in"
-
-#: flatcamTools/ToolSub.py:65
-msgid "Gerber Objects"
-msgstr "Gerber-Objekte"
-
-#: flatcamTools/ToolSub.py:78
-msgid ""
-"Gerber object from which to subtract\n"
-"the subtractor Gerber object."
-msgstr ""
-"Gerber-Objekt, von dem subtrahiert werden soll\n"
-"der Subtrahierer Gerber Objekt."
-
-#: flatcamTools/ToolSub.py:91 flatcamTools/ToolSub.py:146
-msgid "Subtractor"
-msgstr "Subtraktor"
-
-#: flatcamTools/ToolSub.py:93
-msgid ""
-"Gerber object that will be subtracted\n"
-"from the target Gerber object."
-msgstr ""
-"Gerber-Objekt, das abgezogen wird\n"
-"vom Zielobjekt Gerber."
-
-#: flatcamTools/ToolSub.py:100
-msgid "Subtract Gerber"
-msgstr "Gerber abziehen"
-
-#: flatcamTools/ToolSub.py:102
-msgid ""
-"Will remove the area occupied by the subtractor\n"
-"Gerber from the Target Gerber.\n"
-"Can be used to remove the overlapping silkscreen\n"
-"over the soldermask."
-msgstr ""
-"Entfernt den vom Subtrahierer belegten Bereich\n"
-"Gerber vom Target Gerber.\n"
-"Kann verwendet werden, um den überlappenden Siebdruck zu entfernen\n"
-"über der Lötmaske."
-
-#: flatcamTools/ToolSub.py:120
-msgid "Geometry Objects"
-msgstr "Geometrieobjekte"
-
-#: flatcamTools/ToolSub.py:133
-msgid ""
-"Geometry object from which to subtract\n"
-"the subtractor Geometry object."
-msgstr ""
-"Geometrieobjekt, von dem subtrahiert werden soll\n"
-"das Subtrahierer-Geometrieobjekt."
-
-#: flatcamTools/ToolSub.py:148
-msgid ""
-"Geometry object that will be subtracted\n"
-"from the target Geometry object."
-msgstr ""
-"Geometrieobjekt, das subtrahiert wird\n"
-"aus dem Zielobjekt Geometrie."
-
-#: flatcamTools/ToolSub.py:156
-msgid ""
-"Checking this will close the paths cut by the Geometry subtractor object."
-msgstr ""
-"Wenn Sie dies aktivieren, werden die vom Geometrie-Subtrahierer-Objekt "
-"geschnittenen Pfade geschlossen."
-
-#: flatcamTools/ToolSub.py:159
-msgid "Subtract Geometry"
-msgstr "Geometrie subtrahieren"
-
-#: flatcamTools/ToolSub.py:161
-msgid ""
-"Will remove the area occupied by the subtractor\n"
-"Geometry from the Target Geometry."
-msgstr ""
-"Entfernt den vom Subtrahierer belegten Bereich\n"
-"Geometrie aus der Zielgeometrie."
-
-#: flatcamTools/ToolSub.py:263
-msgid "Sub Tool"
-msgstr "Sub. Werkzeug"
-
-#: flatcamTools/ToolSub.py:284 flatcamTools/ToolSub.py:489
-msgid "No Target object loaded."
-msgstr "Kein Zielobjekt geladen."
-
-#: flatcamTools/ToolSub.py:287
-msgid "Loading geometry from Gerber objects."
-msgstr "Lade Geometrien aus Gerber Objekten."
-
-#: flatcamTools/ToolSub.py:299 flatcamTools/ToolSub.py:504
-msgid "No Subtractor object loaded."
-msgstr "Es wurde kein Subtrahiererobjekt geladen."
-
-# Whatever a Subtractor Gerber is, could not translate
-#: flatcamTools/ToolSub.py:331
-msgid "Processing geometry from Subtractor Gerber object."
-msgstr "Verarbeite Geomtrie des Subtractor Gerber Objekts."
-
-#: flatcamTools/ToolSub.py:352
-msgid "Parsing geometry for aperture"
-msgstr "Analysegeometrie für Blende"
-
-# whatever aperture means here....
-#: flatcamTools/ToolSub.py:413
-msgid "Finished parsing geometry for aperture"
-msgstr "Einlesen der aperture Geometrie fertiggestellt"
-
-#: flatcamTools/ToolSub.py:458 flatcamTools/ToolSub.py:661
-msgid "Generating new object ..."
-msgstr "Neues Objekt erzeugen ..."
-
-#: flatcamTools/ToolSub.py:462 flatcamTools/ToolSub.py:665
-#: flatcamTools/ToolSub.py:746
-msgid "Generating new object failed."
-msgstr "Das Generieren eines neuen Objekts ist fehlgeschlagen."
-
-#: flatcamTools/ToolSub.py:467 flatcamTools/ToolSub.py:671
-msgid "Created"
-msgstr "Erstellt"
-
-#: flatcamTools/ToolSub.py:518
-msgid "Currently, the Subtractor geometry cannot be of type Multigeo."
-msgstr "Derzeit kann die Subtrahierergeometrie nicht vom Typ Multi-Geo sein."
-
-#: flatcamTools/ToolSub.py:563
-msgid "Parsing solid_geometry ..."
-msgstr "Analyse von solid_geometry ..."
-
-#: flatcamTools/ToolSub.py:565
-msgid "Parsing solid_geometry for tool"
-msgstr "Analysieren der solid_geometry für das Werkzeug"
-
-#: flatcamTools/ToolTransform.py:23
-msgid "Object Transform"
-msgstr "Objekttransformation"
-
-#: flatcamTools/ToolTransform.py:78
-msgid ""
-"Rotate the selected object(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected objects."
-msgstr ""
-"Drehen Sie die ausgewählten Objekte.\n"
-"Der Bezugspunkt ist die Mitte von\n"
-"der Begrenzungsrahmen für alle ausgewählten Objekte."
-
-#: flatcamTools/ToolTransform.py:99 flatcamTools/ToolTransform.py:120
-msgid ""
-"Angle for Skew action, in degrees.\n"
-"Float number between -360 and 360."
-msgstr ""
-"Winkel für Schrägstellung in Grad.\n"
-"Gleitkommazahl zwischen -360 und 360."
-
-#: flatcamTools/ToolTransform.py:109 flatcamTools/ToolTransform.py:130
-msgid ""
-"Skew/shear the selected object(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected objects."
-msgstr ""
-"Schrägstellung / Scherung der ausgewählten Objekte.\n"
-"Der Bezugspunkt ist die Mitte von\n"
-"der Begrenzungsrahmen für alle ausgewählten Objekte."
-
-#: flatcamTools/ToolTransform.py:159 flatcamTools/ToolTransform.py:179
-msgid ""
-"Scale the selected object(s).\n"
-"The point of reference depends on \n"
-"the Scale reference checkbox state."
-msgstr ""
-"Skalieren Sie die ausgewählten Objekte.\n"
-"Der Bezugspunkt hängt von ab\n"
-"das Kontrollkästchen Skalenreferenz."
-
-#: flatcamTools/ToolTransform.py:228 flatcamTools/ToolTransform.py:248
-msgid ""
-"Offset the selected object(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected objects.\n"
-msgstr ""
-"Versetzt die ausgewählten Objekte.\n"
-"Der Bezugspunkt ist die Mitte von\n"
-"der Begrenzungsrahmen für alle ausgewählten Objekte.\n"
-
-#: flatcamTools/ToolTransform.py:268 flatcamTools/ToolTransform.py:273
-msgid "Flip the selected object(s) over the X axis."
-msgstr "Drehen Sie die ausgewählten Objekte über die X-Achse."
-
-#: flatcamTools/ToolTransform.py:297
-msgid "Ref. Point"
-msgstr "Anhaltspunkt"
-
-#: flatcamTools/ToolTransform.py:348
-msgid ""
-"Create the buffer effect on each geometry,\n"
-"element from the selected object, using the distance."
-msgstr ""
-"Erstellen Sie den Puffereffekt für jede Geometrie.\n"
-"Element aus dem ausgewählten Objekt unter Verwendung des Abstands."
-
-#: flatcamTools/ToolTransform.py:374
-msgid ""
-"Create the buffer effect on each geometry,\n"
-"element from the selected object, using the factor."
-msgstr ""
-"Erstellen Sie den Puffereffekt für jede Geometrie.\n"
-"Element aus dem ausgewählten Objekt unter Verwendung des Faktors."
-
-#: flatcamTools/ToolTransform.py:479
-msgid "Buffer D"
-msgstr "Puffer E"
-
-#: flatcamTools/ToolTransform.py:480
-msgid "Buffer F"
-msgstr "Puffer F"
-
-#: flatcamTools/ToolTransform.py:557
-msgid "Rotate transformation can not be done for a value of 0."
-msgstr ""
-"Bei einem Wert von 0 kann keine Rotationstransformation durchgeführt werden."
-
-#: flatcamTools/ToolTransform.py:596 flatcamTools/ToolTransform.py:619
-msgid "Scale transformation can not be done for a factor of 0 or 1."
-msgstr ""
-"Eine Skalentransformation kann für einen Faktor von 0 oder 1 nicht "
-"durchgeführt werden."
-
-#: flatcamTools/ToolTransform.py:634 flatcamTools/ToolTransform.py:644
-msgid "Offset transformation can not be done for a value of 0."
-msgstr ""
-"Bei einem Wert von 0 kann keine Offset-Transformation durchgeführt werden."
-
-#: flatcamTools/ToolTransform.py:676
-msgid "No object selected. Please Select an object to rotate!"
-msgstr "Kein Objekt ausgewählt. Bitte wählen Sie ein Objekt zum Drehen aus!"
-
-#: flatcamTools/ToolTransform.py:702
-msgid "CNCJob objects can't be rotated."
-msgstr "CNCJob-Objekte können nicht gedreht werden."
-
-#: flatcamTools/ToolTransform.py:710
-msgid "Rotate done"
-msgstr "Fertig drehen"
-
-#: flatcamTools/ToolTransform.py:713 flatcamTools/ToolTransform.py:783
-#: flatcamTools/ToolTransform.py:833 flatcamTools/ToolTransform.py:887
-#: flatcamTools/ToolTransform.py:917 flatcamTools/ToolTransform.py:953
-msgid "Due of"
-msgstr "Aufgrund von"
-
-#: flatcamTools/ToolTransform.py:713 flatcamTools/ToolTransform.py:783
-#: flatcamTools/ToolTransform.py:833 flatcamTools/ToolTransform.py:887
-#: flatcamTools/ToolTransform.py:917 flatcamTools/ToolTransform.py:953
-msgid "action was not executed."
-msgstr "Aktion wurde nicht ausgeführt."
-
-#: flatcamTools/ToolTransform.py:725
-msgid "No object selected. Please Select an object to flip"
-msgstr "Kein Objekt ausgewählt. Bitte wählen Sie ein Objekt aus"
-
-#: flatcamTools/ToolTransform.py:758
-msgid "CNCJob objects can't be mirrored/flipped."
-msgstr "CNCJob-Objekte können nicht gespiegelt / gespiegelt werden."
-
-#: flatcamTools/ToolTransform.py:793
-msgid "Skew transformation can not be done for 0, 90 and 180 degrees."
-msgstr ""
-"Die Neigungstransformation kann nicht für 0, 90 und 180 Grad durchgeführt "
-"werden."
-
-#: flatcamTools/ToolTransform.py:798
-msgid "No object selected. Please Select an object to shear/skew!"
-msgstr ""
-"Kein Objekt ausgewählt. Bitte wählen Sie ein Objekt zum Scheren / Schrägen!"
-
-#: flatcamTools/ToolTransform.py:818
-msgid "CNCJob objects can't be skewed."
-msgstr "CNCJob-Objekte können nicht verzerrt werden."
-
-#: flatcamTools/ToolTransform.py:830
-msgid "Skew on the"
-msgstr "Schräg auf die"
-
-#: flatcamTools/ToolTransform.py:830 flatcamTools/ToolTransform.py:884
-#: flatcamTools/ToolTransform.py:914
-msgid "axis done"
-msgstr "Achse fertig"
-
-#: flatcamTools/ToolTransform.py:844
-msgid "No object selected. Please Select an object to scale!"
-msgstr "Kein Objekt ausgewählt. Bitte wählen Sie ein Objekt zum Skalieren!"
-
-#: flatcamTools/ToolTransform.py:875
-msgid "CNCJob objects can't be scaled."
-msgstr "CNCJob-Objekte können nicht skaliert werden."
-
-#: flatcamTools/ToolTransform.py:884
-msgid "Scale on the"
-msgstr "Skalieren Sie auf der"
-
-#: flatcamTools/ToolTransform.py:894
-msgid "No object selected. Please Select an object to offset!"
-msgstr "Kein Objekt ausgewählt. Bitte wählen Sie ein Objekt zum Versetzen aus!"
-
-#: flatcamTools/ToolTransform.py:901
-msgid "CNCJob objects can't be offset."
-msgstr "CNCJob-Objekte können nicht versetzt werden."
-
-#: flatcamTools/ToolTransform.py:914
-msgid "Offset on the"
-msgstr "Offset auf dem"
-
-#: flatcamTools/ToolTransform.py:924
-msgid "No object selected. Please Select an object to buffer!"
-msgstr "Kein Objekt ausgewählt. Bitte wählen Sie ein Objekt zum Puffern aus!"
-
-#: flatcamTools/ToolTransform.py:927
-msgid "Applying Buffer"
-msgstr "Anwenden von Puffer"
-
-#: flatcamTools/ToolTransform.py:931
-msgid "CNCJob objects can't be buffered."
-msgstr "CNCJob-Objekte können nicht gepuffert werden."
-
-#: flatcamTools/ToolTransform.py:948
-msgid "Buffer done"
-msgstr "Puffer fertig"
-
#: tclCommands/TclCommandBbox.py:75 tclCommands/TclCommandNregions.py:74
msgid "Expected GerberObject or GeometryObject, got"
msgstr "Erwartetes Gerber-Objekt oder Geometrie-Objekt, erhalten"
@@ -18639,7 +18614,7 @@ msgstr "Erwartete eine Liste von durch Komma getrennten Objektnamen. Bekam"
msgid "TclCommand Bounds done."
msgstr "TclCommand Bounds getan."
-#: tclCommands/TclCommandCopperClear.py:281 tclCommands/TclCommandPaint.py:277
+#: tclCommands/TclCommandCopperClear.py:281 tclCommands/TclCommandPaint.py:283
#: tclCommands/TclCommandScale.py:81
msgid "Could not retrieve box object"
msgstr "Box-Objekt konnte nicht abgerufen werden"
@@ -18662,11 +18637,11 @@ msgstr ""
"\"tb\", \"2lr\", \"2tb\", 4 oder 8."
#: tclCommands/TclCommandGeoCutout.py:301
-#: tclCommands/TclCommandGeoCutout.py:359
+#: tclCommands/TclCommandGeoCutout.py:356
msgid "Any-form Cutout operation finished."
msgstr "Alle Formularausschnitte sind abgeschlossen."
-#: tclCommands/TclCommandGeoCutout.py:365
+#: tclCommands/TclCommandGeoCutout.py:362
msgid "Cancelled. Object type is not supported."
msgstr "Abgebrochen. Der Objekttyp wird nicht unterstützt."
@@ -18682,15 +18657,15 @@ msgstr "Geben Sie help für die Verwendung ein."
msgid "Example: help open_gerber"
msgstr "Beispiel: help open_gerber"
-#: tclCommands/TclCommandPaint.py:249
-msgid "Expected -x and -y ."
-msgstr "Erwartete -x und -y ."
+#: tclCommands/TclCommandPaint.py:250 tclCommands/TclCommandPaint.py:256
+msgid "Expected a tuple value like -single 3.2,0.1."
+msgstr ""
-#: tclCommands/TclCommandPaint.py:270
+#: tclCommands/TclCommandPaint.py:276
msgid "Expected -box ."
msgstr "Erwartete -box ."
-#: tclCommands/TclCommandPaint.py:291
+#: tclCommands/TclCommandPaint.py:297
msgid ""
"None of the following args: 'box', 'single', 'all' were used.\n"
"Paint failed."
@@ -18714,7 +18689,7 @@ msgstr "Erwartet -x -y ."
msgid "Expected a pair of (x, y) coordinates. Got"
msgstr "Paar (x, y) Koordinaten erwartet. Bekam"
-#: tclCommands/TclCommandSetOrigin.py:102
+#: tclCommands/TclCommandSetOrigin.py:101
msgid "Origin set by offsetting all loaded objects with "
msgstr "Ursprung wird durch Versetzen aller geladenen Objekte mit gesetzt "
@@ -18724,6 +18699,63 @@ msgstr ""
"Kein Geometriename in args. Geben Sie einen Namen ein und versuchen Sie es "
"erneut."
+#~ msgid "./assets/icon.png"
+#~ msgstr "./assets/icon.png"
+
+#~ msgid "New Blank Geometry"
+#~ msgstr "Neue Geometrie erstellen"
+
+#~ msgid "New Blank Gerber"
+#~ msgstr "Neues Gerber erstellen"
+
+#~ msgid "New Blank Excellon"
+#~ msgstr "Neuen Excellon erstellen"
+
+#~ msgid ""
+#~ "Relative measurement.\n"
+#~ "Reference is last click position"
+#~ msgstr ""
+#~ "Relative Messung\n"
+#~ "Referenz ist Position des letzten Klicks"
+
+#~ msgid "Clear areas"
+#~ msgstr "Bereiche löschen"
+
+#~ msgid "Apply Theme"
+#~ msgstr "Thema anwenden"
+
+#~ msgid ""
+#~ "Select a theme for FlatCAM.\n"
+#~ "It will theme the plot area.\n"
+#~ "The application will restart after change."
+#~ msgstr ""
+#~ "Wählen Sie ein Thema für FlatCAM.\n"
+#~ "Es wird den Handlungsbereich thematisieren.\n"
+#~ "Die Anwendung wird nach der Änderung neu gestartet."
+
+#~ msgid "Film Object"
+#~ msgstr "Filmobjekt"
+
+#~ msgid "Object for which to create the film."
+#~ msgstr "Objekt, für das der Film erstellt werden soll."
+
+#~ msgid "Box Object"
+#~ msgstr "Box-Objekt"
+
+#~ msgid ""
+#~ "The actual object that is used as container for the\n"
+#~ " selected object for which we create the film.\n"
+#~ "Usually it is the PCB outline but it can be also the\n"
+#~ "same object for which the film is created."
+#~ msgstr ""
+#~ "Das eigentliche Objekt, für das ein Container verwendet wird\n"
+#~ " ausgewähltes Objekt, für das wir den Film erstellen.\n"
+#~ "Normalerweise ist es die Leiterplattenkontur, aber es kann auch die\n"
+#~ "das gleiche Objekt, für das der Film erstellt wurde."
+
+#~ msgid "Expected -x and -y ."
+#~ msgstr "Erwartete -x und -y ."
+
#, fuzzy
#~| msgid ""
#~| "The Tool Type (TT) can be:
- Circular with 1 ... 4 teeth -> it "
@@ -19450,9 +19482,6 @@ msgstr ""
#~ "#\n"
#~ "\n"
-#~ msgid "Program Author"
-#~ msgstr "Programmautor"
-
#~ msgid "Change project units ..."
#~ msgstr "Projekteinheiten ändern ..."
diff --git a/locale/en/LC_MESSAGES/strings.mo b/locale/en/LC_MESSAGES/strings.mo
index c1c9fd57..6be9d023 100644
Binary files a/locale/en/LC_MESSAGES/strings.mo and b/locale/en/LC_MESSAGES/strings.mo differ
diff --git a/locale/en/LC_MESSAGES/strings.po b/locale/en/LC_MESSAGES/strings.po
index aa8f50e2..e2adc2a6 100644
--- a/locale/en/LC_MESSAGES/strings.po
+++ b/locale/en/LC_MESSAGES/strings.po
@@ -5,8 +5,8 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
-"POT-Creation-Date: 2020-05-03 16:02+0300\n"
-"PO-Revision-Date: 2020-05-03 16:02+0300\n"
+"POT-Creation-Date: 2020-05-19 02:25+0300\n"
+"PO-Revision-Date: 2020-05-19 02:25+0300\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: en\n"
@@ -14,7 +14,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.2.4\n"
+"X-Generator: Poedit 2.3.1\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Poedit-Basepath: ../../..\n"
"X-Poedit-SearchPath-0: .\n"
@@ -22,182 +22,547 @@ msgstr ""
"X-Poedit-SearchPathExcluded-1: doc\n"
"X-Poedit-SearchPathExcluded-2: tests\n"
-#: FlatCAMApp.py:491
-msgid "FlatCAM is initializing ..."
-msgstr "FlatCAM is initializing ..."
+#: AppDatabase.py:86
+msgid "Add Geometry Tool in DB"
+msgstr "Add Geometry Tool in DB"
-#: FlatCAMApp.py:639
-msgid "Could not find the Language files. The App strings are missing."
-msgstr "Could not find the Language files. The App strings are missing."
-
-#: FlatCAMApp.py:709
+#: AppDatabase.py:88 AppDatabase.py:1643
msgid ""
-"FlatCAM is initializing ...\n"
-"Canvas initialization started."
+"Add a new tool in the Tools Database.\n"
+"It will be used in the Geometry UI.\n"
+"You can edit it after it is added."
msgstr ""
-"FlatCAM is initializing ...\n"
-"Canvas initialization started."
+"Add a new tool in the Tools Database.\n"
+"It will be used in the Geometry UI.\n"
+"You can edit it after it is added."
-#: FlatCAMApp.py:729
+#: AppDatabase.py:102 AppDatabase.py:1657
+msgid "Delete Tool from DB"
+msgstr "Delete Tool from DB"
+
+#: AppDatabase.py:104 AppDatabase.py:1659
+msgid "Remove a selection of tools in the Tools Database."
+msgstr "Remove a selection of tools in the Tools Database."
+
+#: AppDatabase.py:108 AppDatabase.py:1663
+msgid "Export DB"
+msgstr "Export DB"
+
+#: AppDatabase.py:110 AppDatabase.py:1665
+msgid "Save the Tools Database to a custom text file."
+msgstr "Save the Tools Database to a custom text file."
+
+#: AppDatabase.py:114 AppDatabase.py:1669
+msgid "Import DB"
+msgstr "Import DB"
+
+#: AppDatabase.py:116 AppDatabase.py:1671
+msgid "Load the Tools Database information's from a custom text file."
+msgstr "Load the Tools Database information's from a custom text file."
+
+#: AppDatabase.py:120 AppDatabase.py:1681
+msgid "Add Tool from Tools DB"
+msgstr "Add Tool from Tools DB"
+
+#: AppDatabase.py:122 AppDatabase.py:1683
msgid ""
-"FlatCAM is initializing ...\n"
-"Canvas initialization started.\n"
-"Canvas initialization finished in"
+"Add a new tool in the Tools Table of the\n"
+"active Geometry object after selecting a tool\n"
+"in the Tools Database."
msgstr ""
-"FlatCAM is initializing ...\n"
-"Canvas initialization started.\n"
-"Canvas initialization finished in"
+"Add a new tool in the Tools Table of the\n"
+"active Geometry object after selecting a tool\n"
+"in the Tools Database."
-#: FlatCAMApp.py:1593 FlatCAMApp.py:7451
-msgid "New Project - Not saved"
-msgstr "New Project - Not saved"
-
-#: FlatCAMApp.py:1689
-msgid ""
-"Found old default preferences files. Please reboot the application to update."
-msgstr ""
-"Found old default preferences files. Please reboot the application to update."
-
-#: FlatCAMApp.py:1740 FlatCAMApp.py:2512 FlatCAMApp.py:2547 FlatCAMApp.py:2594
-#: FlatCAMApp.py:4540 FlatCAMApp.py:7535 FlatCAMApp.py:7572 FlatCAMApp.py:7614
-#: FlatCAMApp.py:7643 FlatCAMApp.py:7684 FlatCAMApp.py:7709 FlatCAMApp.py:7761
-#: FlatCAMApp.py:7796 FlatCAMApp.py:7841 FlatCAMApp.py:7882 FlatCAMApp.py:7923
-#: FlatCAMApp.py:7964 FlatCAMApp.py:8005 FlatCAMApp.py:8049 FlatCAMApp.py:8105
-#: FlatCAMApp.py:8137 FlatCAMApp.py:8169 FlatCAMApp.py:8402 FlatCAMApp.py:8440
-#: FlatCAMApp.py:8483 FlatCAMApp.py:8560 FlatCAMApp.py:8615
-#: FlatCAMBookmark.py:300 FlatCAMBookmark.py:342 FlatCAMDB.py:663
-#: FlatCAMDB.py:709 FlatCAMDB.py:2125 FlatCAMDB.py:2171
-#: flatcamEditors/FlatCAMExcEditor.py:1023
-#: flatcamEditors/FlatCAMExcEditor.py:1091
-#: flatcamEditors/FlatCAMTextEditor.py:223 flatcamGUI/FlatCAMGUI.py:3443
-#: flatcamGUI/FlatCAMGUI.py:3659 flatcamGUI/FlatCAMGUI.py:3874
-#: flatcamObjects/ObjectCollection.py:126 flatcamTools/ToolFilm.py:754
-#: flatcamTools/ToolFilm.py:900 flatcamTools/ToolImage.py:247
-#: flatcamTools/ToolMove.py:269 flatcamTools/ToolPcbWizard.py:301
-#: flatcamTools/ToolPcbWizard.py:324 flatcamTools/ToolQRCode.py:791
-#: flatcamTools/ToolQRCode.py:838
-msgid "Cancelled."
-msgstr "Cancelled."
-
-#: FlatCAMApp.py:1756
-msgid "Open Config file failed."
-msgstr "Open Config file failed."
-
-#: FlatCAMApp.py:1771
-msgid "Open Script file failed."
-msgstr "Open Script file failed."
-
-#: FlatCAMApp.py:1797
-msgid "Open Excellon file failed."
-msgstr "Open Excellon file failed."
-
-#: FlatCAMApp.py:1810
-msgid "Open GCode file failed."
-msgstr "Open GCode file failed."
-
-#: FlatCAMApp.py:1823
-msgid "Open Gerber file failed."
-msgstr "Open Gerber file failed."
-
-#: FlatCAMApp.py:2131
-msgid "Select a Geometry, Gerber or Excellon Object to edit."
-msgstr "Select a Geometry, Gerber or Excellon Object to edit."
-
-#: FlatCAMApp.py:2146
-msgid ""
-"Simultaneous editing of tools geometry in a MultiGeo Geometry is not "
-"possible.\n"
-"Edit only one geometry at a time."
-msgstr ""
-"Simultaneous editing of tools geometry in a MultiGeo Geometry is not "
-"possible.\n"
-"Edit only one geometry at a time."
-
-#: FlatCAMApp.py:2204
-msgid "Editor is activated ..."
-msgstr "Editor is activated ..."
-
-#: FlatCAMApp.py:2225
-msgid "Do you want to save the edited object?"
-msgstr "Do you want to save the edited object?"
-
-#: FlatCAMApp.py:2226 flatcamGUI/FlatCAMGUI.py:2288
-msgid "Close Editor"
-msgstr "Close Editor"
-
-#: FlatCAMApp.py:2229 FlatCAMApp.py:3518 FlatCAMApp.py:6085 FlatCAMApp.py:7345
-#: FlatCAMTranslation.py:109 FlatCAMTranslation.py:207
-#: flatcamGUI/FlatCAMGUI.py:2519
-#: flatcamGUI/preferences/PreferencesUIManager.py:1122
-msgid "Yes"
-msgstr "Yes"
-
-#: FlatCAMApp.py:2230 FlatCAMApp.py:3519 FlatCAMApp.py:6086 FlatCAMApp.py:7346
-#: FlatCAMTranslation.py:110 FlatCAMTranslation.py:208
-#: flatcamGUI/FlatCAMGUI.py:2520
-#: flatcamGUI/preferences/PreferencesUIManager.py:1123
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:164
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:150
-#: flatcamTools/ToolNCC.py:182 flatcamTools/ToolPaint.py:166
-msgid "No"
-msgstr "No"
-
-#: FlatCAMApp.py:2231 FlatCAMApp.py:3520 FlatCAMApp.py:4478 FlatCAMApp.py:5103
-#: FlatCAMApp.py:7347 FlatCAMDB.py:128 FlatCAMDB.py:1689
-#: flatcamGUI/FlatCAMGUI.py:1347
+#: AppDatabase.py:128 AppDatabase.py:1689 AppGUI/MainGUI.py:1347
+#: AppGUI/preferences/PreferencesUIManager.py:942 App_Main.py:2203
+#: App_Main.py:3054 App_Main.py:3928 App_Main.py:4279 App_Main.py:6338
msgid "Cancel"
msgstr "Cancel"
-#: FlatCAMApp.py:2263
-msgid "Object empty after edit."
-msgstr "Object empty after edit."
+#: AppDatabase.py:158 AppDatabase.py:833 AppDatabase.py:1087
+msgid "Tool Name"
+msgstr "Tool Name"
-#: FlatCAMApp.py:2267 FlatCAMApp.py:2288 FlatCAMApp.py:2310
-msgid "Editor exited. Editor content saved."
-msgstr "Editor exited. Editor content saved."
+#: AppDatabase.py:159 AppDatabase.py:835 AppDatabase.py:1100
+#: AppEditors/FlatCAMExcEditor.py:1604 AppGUI/ObjectUI.py:1447
+#: AppGUI/ObjectUI.py:1685
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:132
+#: AppTools/ToolNCC.py:278 AppTools/ToolNCC.py:287 AppTools/ToolPaint.py:260
+msgid "Tool Dia"
+msgstr "Tool Dia"
-#: FlatCAMApp.py:2314 FlatCAMApp.py:2337 FlatCAMApp.py:2355
-msgid "Select a Gerber, Geometry or Excellon Object to update."
-msgstr "Select a Gerber, Geometry or Excellon Object to update."
+#: AppDatabase.py:160 AppDatabase.py:837 AppDatabase.py:1281
+#: AppGUI/ObjectUI.py:1660
+msgid "Tool Offset"
+msgstr "Tool Offset"
-#: FlatCAMApp.py:2317
-msgid "is updated, returning to App..."
-msgstr "is updated, returning to App..."
+#: AppDatabase.py:161 AppDatabase.py:839 AppDatabase.py:1298
+msgid "Custom Offset"
+msgstr "Custom Offset"
-#: FlatCAMApp.py:2324
-msgid "Editor exited. Editor content was not saved."
-msgstr "Editor exited. Editor content was not saved."
+#: AppDatabase.py:162 AppDatabase.py:841 AppDatabase.py:1265
+#: AppGUI/ObjectUI.py:309
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:67
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:53
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:62
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:72 AppTools/ToolNCC.py:213
+#: AppTools/ToolNCC.py:227 AppTools/ToolPaint.py:195
+msgid "Tool Type"
+msgstr "Tool Type"
-#: FlatCAMApp.py:2504 FlatCAMApp.py:2508
-msgid "Import FlatCAM Preferences"
-msgstr "Import FlatCAM Preferences"
+#: AppDatabase.py:163 AppDatabase.py:843 AppDatabase.py:1113
+msgid "Tool Shape"
+msgstr "Tool Shape"
-#: FlatCAMApp.py:2519
-msgid "Imported Defaults from"
-msgstr "Imported Defaults from"
+#: AppDatabase.py:164 AppDatabase.py:846 AppDatabase.py:1129
+#: AppGUI/ObjectUI.py:350 AppGUI/ObjectUI.py:900 AppGUI/ObjectUI.py:1805
+#: AppGUI/ObjectUI.py:2466
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:93
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:48
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:107
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:78
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:58
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:105
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:113
+#: AppTools/ToolCalculators.py:114 AppTools/ToolCutOut.py:138
+#: AppTools/ToolNCC.py:260 AppTools/ToolNCC.py:268 AppTools/ToolPaint.py:242
+msgid "Cut Z"
+msgstr "Cut Z"
-#: FlatCAMApp.py:2539 FlatCAMApp.py:2544
-msgid "Export FlatCAM Preferences"
-msgstr "Export FlatCAM Preferences"
+#: AppDatabase.py:165 AppDatabase.py:848 AppDatabase.py:1143
+msgid "MultiDepth"
+msgstr "MultiDepth"
-#: FlatCAMApp.py:2558 FlatCAMApp.py:2626
-#: flatcamGUI/preferences/PreferencesUIManager.py:1018
-msgid "Failed to write defaults to file."
-msgstr "Failed to write defaults to file."
+#: AppDatabase.py:166 AppDatabase.py:850 AppDatabase.py:1156
+msgid "DPP"
+msgstr "DPP"
-#: FlatCAMApp.py:2564
-msgid "Exported preferences to"
-msgstr "Exported preferences to"
+#: AppDatabase.py:167 AppDatabase.py:852 AppDatabase.py:1312
+msgid "V-Dia"
+msgstr "V-Dia"
-#: FlatCAMApp.py:2584 FlatCAMApp.py:2589
-msgid "Save to file"
-msgstr "Save to file"
+#: AppDatabase.py:168 AppDatabase.py:854 AppDatabase.py:1326
+msgid "V-Angle"
+msgstr "V-Angle"
-#: FlatCAMApp.py:2602 FlatCAMApp.py:8859 FlatCAMApp.py:8907 FlatCAMApp.py:9032
-#: FlatCAMApp.py:9168 FlatCAMBookmark.py:308 FlatCAMDB.py:671 FlatCAMDB.py:2133
-#: flatcamEditors/FlatCAMTextEditor.py:276 flatcamObjects/FlatCAMCNCJob.py:959
-#: flatcamTools/ToolFilm.py:1031 flatcamTools/ToolFilm.py:1212
-#: flatcamTools/ToolSolderPaste.py:1534
+#: AppDatabase.py:169 AppDatabase.py:856 AppDatabase.py:1170
+#: AppGUI/ObjectUI.py:946 AppGUI/ObjectUI.py:1852
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:134
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:101
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:61
+#: AppObjects/FlatCAMExcellon.py:1396 AppObjects/FlatCAMGeometry.py:1660
+#: AppTools/ToolCalibration.py:74
+msgid "Travel Z"
+msgstr "Travel Z"
+
+#: AppDatabase.py:170 AppDatabase.py:858
+msgid "FR"
+msgstr "FR"
+
+#: AppDatabase.py:171 AppDatabase.py:860
+msgid "FR Z"
+msgstr "FR Z"
+
+#: AppDatabase.py:172 AppDatabase.py:862 AppDatabase.py:1340
+msgid "FR Rapids"
+msgstr "FR Rapids"
+
+#: AppDatabase.py:173 AppDatabase.py:864 AppDatabase.py:1213
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:222
+msgid "Spindle Speed"
+msgstr "Spindle Speed"
+
+#: AppDatabase.py:174 AppDatabase.py:866 AppDatabase.py:1228
+#: AppGUI/ObjectUI.py:1064 AppGUI/ObjectUI.py:1959
+msgid "Dwell"
+msgstr "Dwell"
+
+#: AppDatabase.py:175 AppDatabase.py:868 AppDatabase.py:1241
+msgid "Dwelltime"
+msgstr "Dwelltime"
+
+#: AppDatabase.py:176 AppDatabase.py:870 AppGUI/ObjectUI.py:2116
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:257
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:254
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:237
+#: AppTools/ToolSolderPaste.py:335
+msgid "Preprocessor"
+msgstr "Preprocessor"
+
+#: AppDatabase.py:177 AppDatabase.py:872 AppDatabase.py:1356
+msgid "ExtraCut"
+msgstr "ExtraCut"
+
+#: AppDatabase.py:178 AppDatabase.py:874 AppDatabase.py:1371
+msgid "E-Cut Length"
+msgstr "E-Cut Length"
+
+#: AppDatabase.py:179 AppDatabase.py:876
+msgid "Toolchange"
+msgstr "Toolchange"
+
+#: AppDatabase.py:180 AppDatabase.py:878
+msgid "Toolchange XY"
+msgstr "Toolchange XY"
+
+#: AppDatabase.py:181 AppDatabase.py:880
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:160
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:131
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:98
+#: AppTools/ToolCalibration.py:111
+msgid "Toolchange Z"
+msgstr "Toolchange Z"
+
+#: AppDatabase.py:182 AppDatabase.py:882 AppGUI/ObjectUI.py:1193
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:69
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:54
+msgid "Start Z"
+msgstr "Start Z"
+
+#: AppDatabase.py:183 AppDatabase.py:885
+msgid "End Z"
+msgstr "End Z"
+
+#: AppDatabase.py:187
+msgid "Tool Index."
+msgstr "Tool Index."
+
+#: AppDatabase.py:189 AppDatabase.py:1089
+msgid ""
+"Tool name.\n"
+"This is not used in the app, it's function\n"
+"is to serve as a note for the user."
+msgstr ""
+"Tool name.\n"
+"This is not used in the app, it's function\n"
+"is to serve as a note for the user."
+
+#: AppDatabase.py:193 AppDatabase.py:1102
+msgid "Tool Diameter."
+msgstr "Tool Diameter."
+
+#: AppDatabase.py:195 AppDatabase.py:1283
+msgid ""
+"Tool Offset.\n"
+"Can be of a few types:\n"
+"Path = zero offset\n"
+"In = offset inside by half of tool diameter\n"
+"Out = offset outside by half of tool diameter\n"
+"Custom = custom offset using the Custom Offset value"
+msgstr ""
+"Tool Offset.\n"
+"Can be of a few types:\n"
+"Path = zero offset\n"
+"In = offset inside by half of tool diameter\n"
+"Out = offset outside by half of tool diameter\n"
+"Custom = custom offset using the Custom Offset value"
+
+#: AppDatabase.py:202 AppDatabase.py:1300
+msgid ""
+"Custom Offset.\n"
+"A value to be used as offset from the current path."
+msgstr ""
+"Custom Offset.\n"
+"A value to be used as offset from the current path."
+
+#: AppDatabase.py:205 AppDatabase.py:1267
+msgid ""
+"Tool Type.\n"
+"Can be:\n"
+"Iso = isolation cut\n"
+"Rough = rough cut, low feedrate, multiple passes\n"
+"Finish = finishing cut, high feedrate"
+msgstr ""
+"Tool Type.\n"
+"Can be:\n"
+"Iso = isolation cut\n"
+"Rough = rough cut, low feedrate, multiple passes\n"
+"Finish = finishing cut, high feedrate"
+
+#: AppDatabase.py:211 AppDatabase.py:1115
+msgid ""
+"Tool Shape. \n"
+"Can be:\n"
+"C1 ... C4 = circular tool with x flutes\n"
+"B = ball tip milling tool\n"
+"V = v-shape milling tool"
+msgstr ""
+"Tool Shape. \n"
+"Can be:\n"
+"C1 ... C4 = circular tool with x flutes\n"
+"B = ball tip milling tool\n"
+"V = v-shape milling tool"
+
+#: AppDatabase.py:217 AppDatabase.py:1131
+msgid ""
+"Cutting Depth.\n"
+"The depth at which to cut into material."
+msgstr ""
+"Cutting Depth.\n"
+"The depth at which to cut into material."
+
+#: AppDatabase.py:220 AppDatabase.py:1145
+msgid ""
+"Multi Depth.\n"
+"Selecting this will allow cutting in multiple passes,\n"
+"each pass adding a DPP parameter depth."
+msgstr ""
+"Multi Depth.\n"
+"Selecting this will allow cutting in multiple passes,\n"
+"each pass adding a DPP parameter depth."
+
+#: AppDatabase.py:224 AppDatabase.py:1158
+msgid ""
+"DPP. Depth per Pass.\n"
+"The value used to cut into material on each pass."
+msgstr ""
+"DPP. Depth per Pass.\n"
+"The value used to cut into material on each pass."
+
+#: AppDatabase.py:227 AppDatabase.py:1314
+msgid ""
+"V-Dia.\n"
+"Diameter of the tip for V-Shape Tools."
+msgstr ""
+"V-Dia.\n"
+"Diameter of the tip for V-Shape Tools."
+
+#: AppDatabase.py:230 AppDatabase.py:1328
+msgid ""
+"V-Agle.\n"
+"Angle at the tip for the V-Shape Tools."
+msgstr ""
+"V-Agle.\n"
+"Angle at the tip for the V-Shape Tools."
+
+#: AppDatabase.py:233 AppDatabase.py:1172
+msgid ""
+"Clearance Height.\n"
+"Height at which the milling bit will travel between cuts,\n"
+"above the surface of the material, avoiding all fixtures."
+msgstr ""
+"Clearance Height.\n"
+"Height at which the milling bit will travel between cuts,\n"
+"above the surface of the material, avoiding all fixtures."
+
+#: AppDatabase.py:237
+msgid ""
+"FR. Feedrate\n"
+"The speed on XY plane used while cutting into material."
+msgstr ""
+"FR. Feedrate\n"
+"The speed on XY plane used while cutting into material."
+
+#: AppDatabase.py:240
+msgid ""
+"FR Z. Feedrate Z\n"
+"The speed on Z plane."
+msgstr ""
+"FR Z. Feedrate Z\n"
+"The speed on Z plane."
+
+#: AppDatabase.py:243 AppDatabase.py:1342
+msgid ""
+"FR Rapids. Feedrate Rapids\n"
+"Speed used while moving as fast as possible.\n"
+"This is used only by some devices that can't use\n"
+"the G0 g-code command. Mostly 3D printers."
+msgstr ""
+"FR Rapids. Feedrate Rapids\n"
+"Speed used while moving as fast as possible.\n"
+"This is used only by some devices that can't use\n"
+"the G0 g-code command. Mostly 3D printers."
+
+#: AppDatabase.py:248 AppDatabase.py:1215
+msgid ""
+"Spindle Speed.\n"
+"If it's left empty it will not be used.\n"
+"The speed of the spindle in RPM."
+msgstr ""
+"Spindle Speed.\n"
+"If it's left empty it will not be used.\n"
+"The speed of the spindle in RPM."
+
+#: AppDatabase.py:252 AppDatabase.py:1230
+msgid ""
+"Dwell.\n"
+"Check this if a delay is needed to allow\n"
+"the spindle motor to reach it's set speed."
+msgstr ""
+"Dwell.\n"
+"Check this if a delay is needed to allow\n"
+"the spindle motor to reach it's set speed."
+
+#: AppDatabase.py:256 AppDatabase.py:1243
+msgid ""
+"Dwell Time.\n"
+"A delay used to allow the motor spindle reach it's set speed."
+msgstr ""
+"Dwell Time.\n"
+"A delay used to allow the motor spindle reach it's set speed."
+
+#: AppDatabase.py:259
+msgid ""
+"Preprocessor.\n"
+"A selection of files that will alter the generated G-code\n"
+"to fit for a number of use cases."
+msgstr ""
+"Preprocessor.\n"
+"A selection of files that will alter the generated G-code\n"
+"to fit for a number of use cases."
+
+#: AppDatabase.py:263 AppDatabase.py:1358
+msgid ""
+"Extra Cut.\n"
+"If checked, after a isolation is finished an extra cut\n"
+"will be added where the start and end of isolation meet\n"
+"such as that this point is covered by this extra cut to\n"
+"ensure a complete isolation."
+msgstr ""
+"Extra Cut.\n"
+"If checked, after a isolation is finished an extra cut\n"
+"will be added where the start and end of isolation meet\n"
+"such as that this point is covered by this extra cut to\n"
+"ensure a complete isolation."
+
+#: AppDatabase.py:269 AppDatabase.py:1373
+msgid ""
+"Extra Cut length.\n"
+"If checked, after a isolation is finished an extra cut\n"
+"will be added where the start and end of isolation meet\n"
+"such as that this point is covered by this extra cut to\n"
+"ensure a complete isolation. This is the length of\n"
+"the extra cut."
+msgstr ""
+"Extra Cut length.\n"
+"If checked, after a isolation is finished an extra cut\n"
+"will be added where the start and end of isolation meet\n"
+"such as that this point is covered by this extra cut to\n"
+"ensure a complete isolation. This is the length of\n"
+"the extra cut."
+
+#: AppDatabase.py:276
+msgid ""
+"Toolchange.\n"
+"It will create a toolchange event.\n"
+"The kind of toolchange is determined by\n"
+"the preprocessor file."
+msgstr ""
+"Toolchange.\n"
+"It will create a toolchange event.\n"
+"The kind of toolchange is determined by\n"
+"the preprocessor file."
+
+#: AppDatabase.py:281
+msgid ""
+"Toolchange XY.\n"
+"A set of coordinates in the format (x, y).\n"
+"Will determine the cartesian position of the point\n"
+"where the tool change event take place."
+msgstr ""
+"Toolchange XY.\n"
+"A set of coordinates in the format (x, y).\n"
+"Will determine the cartesian position of the point\n"
+"where the tool change event take place."
+
+#: AppDatabase.py:286
+msgid ""
+"Toolchange Z.\n"
+"The position on Z plane where the tool change event take place."
+msgstr ""
+"Toolchange Z.\n"
+"The position on Z plane where the tool change event take place."
+
+#: AppDatabase.py:289
+msgid ""
+"Start Z.\n"
+"If it's left empty it will not be used.\n"
+"A position on Z plane to move immediately after job start."
+msgstr ""
+"Start Z.\n"
+"If it's left empty it will not be used.\n"
+"A position on Z plane to move immediately after job start."
+
+#: AppDatabase.py:293
+msgid ""
+"End Z.\n"
+"A position on Z plane to move immediately after job stop."
+msgstr ""
+"End Z.\n"
+"A position on Z plane to move immediately after job stop."
+
+#: AppDatabase.py:305 AppDatabase.py:682 AppDatabase.py:716 AppDatabase.py:1898
+#: AppDatabase.py:2144 AppDatabase.py:2178
+msgid "Could not load Tools DB file."
+msgstr "Could not load Tools DB file."
+
+#: AppDatabase.py:313 AppDatabase.py:724 AppDatabase.py:1906
+#: AppDatabase.py:2186
+msgid "Failed to parse Tools DB file."
+msgstr "Failed to parse Tools DB file."
+
+#: AppDatabase.py:316 AppDatabase.py:727 AppDatabase.py:1909
+#: AppDatabase.py:2189
+msgid "Loaded FlatCAM Tools DB from"
+msgstr "Loaded FlatCAM Tools DB from"
+
+#: AppDatabase.py:322 AppDatabase.py:1823
+msgid "Add to DB"
+msgstr "Add to DB"
+
+#: AppDatabase.py:324 AppDatabase.py:1826
+msgid "Copy from DB"
+msgstr "Copy from DB"
+
+#: AppDatabase.py:326 AppDatabase.py:1829
+msgid "Delete from DB"
+msgstr "Delete from DB"
+
+#: AppDatabase.py:603 AppDatabase.py:2044
+msgid "Tool added to DB."
+msgstr "Tool added to DB."
+
+#: AppDatabase.py:624 AppDatabase.py:2077
+msgid "Tool copied from Tools DB."
+msgstr "Tool copied from Tools DB."
+
+#: AppDatabase.py:642 AppDatabase.py:2104
+msgid "Tool removed from Tools DB."
+msgstr "Tool removed from Tools DB."
+
+#: AppDatabase.py:653 AppDatabase.py:2115
+msgid "Export Tools Database"
+msgstr "Export Tools Database"
+
+#: AppDatabase.py:656 AppDatabase.py:2118
+msgid "Tools_Database"
+msgstr "Tools_Database"
+
+#: AppDatabase.py:663 AppDatabase.py:709 AppDatabase.py:2125
+#: AppDatabase.py:2171 AppEditors/FlatCAMExcEditor.py:1023
+#: AppEditors/FlatCAMExcEditor.py:1091 AppEditors/FlatCAMTextEditor.py:223
+#: AppGUI/MainGUI.py:2690 AppGUI/MainGUI.py:2906 AppGUI/MainGUI.py:3121
+#: AppObjects/ObjectCollection.py:126 AppTools/ToolFilm.py:739
+#: AppTools/ToolFilm.py:885 AppTools/ToolImage.py:247 AppTools/ToolMove.py:269
+#: AppTools/ToolPcbWizard.py:301 AppTools/ToolPcbWizard.py:324
+#: AppTools/ToolQRCode.py:791 AppTools/ToolQRCode.py:838 App_Main.py:1694
+#: App_Main.py:2430 App_Main.py:2465 App_Main.py:2512 App_Main.py:3991
+#: App_Main.py:6529 App_Main.py:6566 App_Main.py:6608 App_Main.py:6637
+#: App_Main.py:6678 App_Main.py:6703 App_Main.py:6755 App_Main.py:6790
+#: App_Main.py:6835 App_Main.py:6876 App_Main.py:6917 App_Main.py:6958
+#: App_Main.py:6999 App_Main.py:7043 App_Main.py:7099 App_Main.py:7131
+#: App_Main.py:7163 App_Main.py:7394 App_Main.py:7432 App_Main.py:7475
+#: App_Main.py:7552 App_Main.py:7607 Bookmark.py:300 Bookmark.py:342
+msgid "Cancelled."
+msgstr "Cancelled."
+
+#: AppDatabase.py:671 AppDatabase.py:2133 AppEditors/FlatCAMTextEditor.py:276
+#: AppObjects/FlatCAMCNCJob.py:959 AppTools/ToolFilm.py:1016
+#: AppTools/ToolFilm.py:1197 AppTools/ToolSolderPaste.py:1534 App_Main.py:2520
+#: App_Main.py:7851 App_Main.py:7899 App_Main.py:8024 App_Main.py:8160
+#: Bookmark.py:308
msgid ""
"Permission denied, saving not possible.\n"
"Most likely another app is holding the file open and not accessible."
@@ -205,31 +570,11201 @@ msgstr ""
"Permission denied, saving not possible.\n"
"Most likely another app is holding the file open and not accessible."
-#: FlatCAMApp.py:2613
-msgid "Could not load the file."
-msgstr "Could not load the file."
+#: AppDatabase.py:693 AppDatabase.py:696 AppDatabase.py:748 AppDatabase.py:2155
+#: AppDatabase.py:2158 AppDatabase.py:2211
+msgid "Failed to write Tools DB to file."
+msgstr "Failed to write Tools DB to file."
-#: FlatCAMApp.py:2629
-msgid "Exported file to"
-msgstr "Exported file to"
+#: AppDatabase.py:699 AppDatabase.py:2161
+msgid "Exported Tools DB to"
+msgstr "Exported Tools DB to"
-#: FlatCAMApp.py:2712
-msgid "Failed to open recent files file for writing."
-msgstr "Failed to open recent files file for writing."
+#: AppDatabase.py:706 AppDatabase.py:2168
+msgid "Import FlatCAM Tools DB"
+msgstr "Import FlatCAM Tools DB"
-#: FlatCAMApp.py:2723
-msgid "Failed to open recent projects file for writing."
-msgstr "Failed to open recent projects file for writing."
+#: AppDatabase.py:738 AppDatabase.py:913 AppDatabase.py:2200
+#: AppDatabase.py:2418 AppObjects/FlatCAMGeometry.py:947
+#: AppTools/ToolNCC.py:4015 AppTools/ToolNCC.py:4099 AppTools/ToolPaint.py:3558
+#: AppTools/ToolPaint.py:3643 App_Main.py:5172 App_Main.py:5200
+#: App_Main.py:5227 App_Main.py:5247
+msgid "Tools Database"
+msgstr "Tools Database"
-#: FlatCAMApp.py:2806 FlatCAMApp.py:9377 FlatCAMApp.py:9441 FlatCAMApp.py:9572
-#: FlatCAMApp.py:9637 FlatCAMApp.py:10287
-#: flatcamEditors/FlatCAMGrbEditor.py:4364
-#: flatcamObjects/FlatCAMGeometry.py:1725 flatcamParsers/ParseExcellon.py:897
-#: flatcamTools/ToolPcbWizard.py:432
+#: AppDatabase.py:752 AppDatabase.py:2215
+msgid "Saved Tools DB."
+msgstr "Saved Tools DB."
+
+#: AppDatabase.py:899 AppDatabase.py:2405
+msgid "No Tool/row selected in the Tools Database table"
+msgstr "No Tool/row selected in the Tools Database table"
+
+#: AppDatabase.py:917 AppDatabase.py:2422
+msgid "Cancelled adding tool from DB."
+msgstr "Cancelled adding tool from DB."
+
+#: AppDatabase.py:1018
+msgid "Basic Geo Parameters"
+msgstr "Basic Geo Parameters"
+
+#: AppDatabase.py:1030
+msgid "Advanced Geo Parameters"
+msgstr "Advanced Geo Parameters"
+
+#: AppDatabase.py:1042
+msgid "NCC Parameters"
+msgstr "NCC Parameters"
+
+#: AppDatabase.py:1054
+msgid "Paint Parameters"
+msgstr "Paint Parameters"
+
+#: AppDatabase.py:1185 AppGUI/ObjectUI.py:967 AppGUI/ObjectUI.py:1871
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:185
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:148
+#: AppTools/ToolSolderPaste.py:253
+msgid "Feedrate X-Y"
+msgstr "Feedrate X-Y"
+
+#: AppDatabase.py:1187
+msgid ""
+"Feedrate X-Y. Feedrate\n"
+"The speed on XY plane used while cutting into material."
+msgstr ""
+"Feedrate X-Y. Feedrate\n"
+"The speed on XY plane used while cutting into material."
+
+#: AppDatabase.py:1199 AppGUI/ObjectUI.py:982 AppGUI/ObjectUI.py:1885
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:207
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:200
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:161
+#: AppTools/ToolSolderPaste.py:265
+msgid "Feedrate Z"
+msgstr "Feedrate Z"
+
+#: AppDatabase.py:1201
+msgid ""
+"Feedrate Z\n"
+"The speed on Z plane."
+msgstr ""
+"Feedrate Z\n"
+"The speed on Z plane."
+
+#: AppDatabase.py:1399 AppGUI/ObjectUI.py:845
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:46
+#: AppTools/ToolNCC.py:341
+msgid "Operation"
+msgstr "Operation"
+
+#: AppDatabase.py:1401 AppTools/ToolNCC.py:343
+msgid ""
+"The 'Operation' can be:\n"
+"- Isolation -> will ensure that the non-copper clearing is always complete.\n"
+"If it's not successful then the non-copper clearing will fail, too.\n"
+"- Clear -> the regular non-copper clearing."
+msgstr ""
+"The 'Operation' can be:\n"
+"- Isolation -> will ensure that the non-copper clearing is always complete.\n"
+"If it's not successful then the non-copper clearing will fail, too.\n"
+"- Clear -> the regular non-copper clearing."
+
+#: AppDatabase.py:1408 AppEditors/FlatCAMGrbEditor.py:2740
+#: AppGUI/GUIElements.py:2604 AppTools/ToolNCC.py:350
+msgid "Clear"
+msgstr "Clear"
+
+#: AppDatabase.py:1409 AppTools/ToolNCC.py:351 AppTools/ToolNCC.py:1624
+msgid "Isolation"
+msgstr "Isolation"
+
+#: AppDatabase.py:1417 AppGUI/ObjectUI.py:409 AppGUI/ObjectUI.py:867
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:62
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:56
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:95
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:137 AppTools/ToolNCC.py:359
+msgid "Milling Type"
+msgstr "Milling Type"
+
+#: AppDatabase.py:1419 AppDatabase.py:1427
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:139
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:147 AppTools/ToolNCC.py:361
+#: AppTools/ToolNCC.py:369
+msgid ""
+"Milling type when the selected tool is of type: 'iso_op':\n"
+"- climb / best for precision milling and to reduce tool usage\n"
+"- conventional / useful when there is no backlash compensation"
+msgstr ""
+"Milling type when the selected tool is of type: 'iso_op':\n"
+"- climb / best for precision milling and to reduce tool usage\n"
+"- conventional / useful when there is no backlash compensation"
+
+#: AppDatabase.py:1424 AppGUI/ObjectUI.py:415
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:62
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:102
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:144 AppTools/ToolNCC.py:366
+msgid "Climb"
+msgstr "Climb"
+
+#: AppDatabase.py:1425 AppGUI/ObjectUI.py:416
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:63
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:103
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:145 AppTools/ToolNCC.py:367
+msgid "Conventional"
+msgstr "Conventional"
+
+#: AppDatabase.py:1437 AppDatabase.py:1546 AppEditors/FlatCAMGeoEditor.py:450
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:182
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:163
+#: AppTools/ToolNCC.py:382 AppTools/ToolPaint.py:328
+msgid "Overlap"
+msgstr "Overlap"
+
+#: AppDatabase.py:1439 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:184
+#: AppTools/ToolNCC.py:384
+msgid ""
+"How much (percentage) of the tool width to overlap each tool pass.\n"
+"Adjust the value starting with lower values\n"
+"and increasing it if areas that should be cleared are still \n"
+"not cleared.\n"
+"Lower values = faster processing, faster execution on CNC.\n"
+"Higher values = slow processing and slow execution on CNC\n"
+"due of too many paths."
+msgstr ""
+"How much (percentage) of the tool width to overlap each tool pass.\n"
+"Adjust the value starting with lower values\n"
+"and increasing it if areas that should be cleared are still \n"
+"not cleared.\n"
+"Lower values = faster processing, faster execution on CNC.\n"
+"Higher values = slow processing and slow execution on CNC\n"
+"due of too many paths."
+
+#: AppDatabase.py:1458 AppDatabase.py:1567 AppEditors/FlatCAMGeoEditor.py:470
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:72
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:229
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:59
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:45
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:53
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:66
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:183
+#: AppTools/ToolCopperThieving.py:111 AppTools/ToolCopperThieving.py:362
+#: AppTools/ToolCorners.py:140 AppTools/ToolCutOut.py:190
+#: AppTools/ToolFiducials.py:172 AppTools/ToolInvertGerber.py:88
+#: AppTools/ToolInvertGerber.py:96 AppTools/ToolNCC.py:403
+#: AppTools/ToolPaint.py:349
+msgid "Margin"
+msgstr "Margin"
+
+#: AppDatabase.py:1460
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:74
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:61
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:68
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204
+#: AppTools/ToolCopperThieving.py:113 AppTools/ToolCorners.py:142
+#: AppTools/ToolFiducials.py:174 AppTools/ToolNCC.py:405
+msgid "Bounding box margin."
+msgstr "Bounding box margin."
+
+#: AppDatabase.py:1471 AppDatabase.py:1582 AppEditors/FlatCAMGeoEditor.py:484
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:105
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:198
+#: AppTools/ToolExtractDrills.py:128 AppTools/ToolNCC.py:416
+#: AppTools/ToolPaint.py:364 AppTools/ToolPunchGerber.py:139
+msgid "Method"
+msgstr "Method"
+
+#: AppDatabase.py:1473 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:217
+#: AppTools/ToolNCC.py:418
+msgid ""
+"Algorithm for copper clearing:\n"
+"- Standard: Fixed step inwards.\n"
+"- Seed-based: Outwards from seed.\n"
+"- Line-based: Parallel lines."
+msgstr ""
+"Algorithm for copper clearing:\n"
+"- Standard: Fixed step inwards.\n"
+"- Seed-based: Outwards from seed.\n"
+"- Line-based: Parallel lines."
+
+#: AppDatabase.py:1481 AppDatabase.py:1596 AppEditors/FlatCAMGeoEditor.py:498
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
+#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2212 AppTools/ToolNCC.py:2739
+#: AppTools/ToolNCC.py:2771 AppTools/ToolPaint.py:389
+#: AppTools/ToolPaint.py:1839 tclCommands/TclCommandCopperClear.py:126
+#: tclCommands/TclCommandCopperClear.py:134 tclCommands/TclCommandPaint.py:125
+msgid "Standard"
+msgstr "Standard"
+
+#: AppDatabase.py:1481 AppDatabase.py:1596 AppEditors/FlatCAMGeoEditor.py:498
+#: AppEditors/FlatCAMGeoEditor.py:568 AppEditors/FlatCAMGeoEditor.py:5146
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
+#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2223 AppTools/ToolNCC.py:2745
+#: AppTools/ToolNCC.py:2777 AppTools/ToolPaint.py:389
+#: AppTools/ToolPaint.py:1853 defaults.py:400 defaults.py:432
+#: tclCommands/TclCommandCopperClear.py:128
+#: tclCommands/TclCommandCopperClear.py:136 tclCommands/TclCommandPaint.py:127
+msgid "Seed"
+msgstr "Seed"
+
+#: AppDatabase.py:1481 AppDatabase.py:1596 AppEditors/FlatCAMGeoEditor.py:498
+#: AppEditors/FlatCAMGeoEditor.py:5150
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
+#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2234 AppTools/ToolPaint.py:389
+#: AppTools/ToolPaint.py:698 AppTools/ToolPaint.py:1867
+#: tclCommands/TclCommandCopperClear.py:130 tclCommands/TclCommandPaint.py:129
+msgid "Lines"
+msgstr "Lines"
+
+#: AppDatabase.py:1481 AppDatabase.py:1596
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
+#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2245 AppTools/ToolPaint.py:389
+#: AppTools/ToolPaint.py:2032 tclCommands/TclCommandPaint.py:133
+msgid "Combo"
+msgstr "Combo"
+
+#: AppDatabase.py:1489 AppDatabase.py:1607
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:237
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:224
+#: AppTools/ToolNCC.py:439 AppTools/ToolPaint.py:400
+msgid "Connect"
+msgstr "Connect"
+
+#: AppDatabase.py:1493 AppDatabase.py:1610 AppEditors/FlatCAMGeoEditor.py:507
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:239
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:226
+#: AppTools/ToolNCC.py:443 AppTools/ToolPaint.py:403
+msgid ""
+"Draw lines between resulting\n"
+"segments to minimize tool lifts."
+msgstr ""
+"Draw lines between resulting\n"
+"segments to minimize tool lifts."
+
+#: AppDatabase.py:1499 AppDatabase.py:1614
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:246
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:232
+#: AppTools/ToolNCC.py:449 AppTools/ToolPaint.py:407
+msgid "Contour"
+msgstr "Contour"
+
+#: AppDatabase.py:1503 AppDatabase.py:1617 AppEditors/FlatCAMGeoEditor.py:517
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:248
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:234
+#: AppTools/ToolNCC.py:453 AppTools/ToolPaint.py:410
+msgid ""
+"Cut around the perimeter of the polygon\n"
+"to trim rough edges."
+msgstr ""
+"Cut around the perimeter of the polygon\n"
+"to trim rough edges."
+
+#: AppDatabase.py:1509 AppEditors/FlatCAMGeoEditor.py:611
+#: AppEditors/FlatCAMGrbEditor.py:5289 AppGUI/ObjectUI.py:143
+#: AppGUI/ObjectUI.py:1599 AppGUI/ObjectUI.py:2456
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:255
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:142
+#: AppTools/ToolNCC.py:459 AppTools/ToolTransform.py:28
+msgid "Offset"
+msgstr "Offset"
+
+#: AppDatabase.py:1513 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:257
+#: AppTools/ToolNCC.py:463
+msgid ""
+"If used, it will add an offset to the copper features.\n"
+"The copper clearing will finish to a distance\n"
+"from the copper features.\n"
+"The value can be between 0 and 10 FlatCAM units."
+msgstr ""
+"If used, it will add an offset to the copper features.\n"
+"The copper clearing will finish to a distance\n"
+"from the copper features.\n"
+"The value can be between 0 and 10 FlatCAM units."
+
+#: AppDatabase.py:1548 AppEditors/FlatCAMGeoEditor.py:452
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:165
+#: AppTools/ToolPaint.py:330
+msgid ""
+"How much (percentage) of the tool width to overlap each tool pass.\n"
+"Adjust the value starting with lower values\n"
+"and increasing it if areas that should be painted are still \n"
+"not painted.\n"
+"Lower values = faster processing, faster execution on CNC.\n"
+"Higher values = slow processing and slow execution on CNC\n"
+"due of too many paths."
+msgstr ""
+"How much (percentage) of the tool width to overlap each tool pass.\n"
+"Adjust the value starting with lower values\n"
+"and increasing it if areas that should be painted are still \n"
+"not painted.\n"
+"Lower values = faster processing, faster execution on CNC.\n"
+"Higher values = slow processing and slow execution on CNC\n"
+"due of too many paths."
+
+#: AppDatabase.py:1569 AppEditors/FlatCAMGeoEditor.py:472
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:185
+#: AppTools/ToolPaint.py:351
+msgid ""
+"Distance by which to avoid\n"
+"the edges of the polygon to\n"
+"be painted."
+msgstr ""
+"Distance by which to avoid\n"
+"the edges of the polygon to\n"
+"be painted."
+
+#: AppDatabase.py:1584 AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:200
+#: AppTools/ToolPaint.py:366
+msgid ""
+"Algorithm for painting:\n"
+"- Standard: Fixed step inwards.\n"
+"- Seed-based: Outwards from seed.\n"
+"- Line-based: Parallel lines.\n"
+"- Laser-lines: Active only for Gerber objects.\n"
+"Will create lines that follow the traces.\n"
+"- Combo: In case of failure a new method will be picked from the above\n"
+"in the order specified."
+msgstr ""
+"Algorithm for painting:\n"
+"- Standard: Fixed step inwards.\n"
+"- Seed-based: Outwards from seed.\n"
+"- Line-based: Parallel lines.\n"
+"- Laser-lines: Active only for Gerber objects.\n"
+"Will create lines that follow the traces.\n"
+"- Combo: In case of failure a new method will be picked from the above\n"
+"in the order specified."
+
+#: AppDatabase.py:1596 AppDatabase.py:1598
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
+#: AppTools/ToolPaint.py:389 AppTools/ToolPaint.py:391
+#: AppTools/ToolPaint.py:692 AppTools/ToolPaint.py:697
+#: AppTools/ToolPaint.py:1881 tclCommands/TclCommandPaint.py:131
+msgid "Laser_lines"
+msgstr "Laser_lines"
+
+#: AppDatabase.py:1641
+msgid "Add Tool in DB"
+msgstr "Add Tool in DB"
+
+#: AppDatabase.py:1675
+msgid "Save DB"
+msgstr "Save DB"
+
+#: AppDatabase.py:1677
+msgid "Save the Tools Database information's."
+msgstr "Save the Tools Database information's."
+
+#: AppEditors/FlatCAMExcEditor.py:50 AppEditors/FlatCAMExcEditor.py:74
+#: AppEditors/FlatCAMExcEditor.py:168 AppEditors/FlatCAMExcEditor.py:385
+#: AppEditors/FlatCAMExcEditor.py:589 AppEditors/FlatCAMGrbEditor.py:241
+#: AppEditors/FlatCAMGrbEditor.py:248
+msgid "Click to place ..."
+msgstr "Click to place ..."
+
+#: AppEditors/FlatCAMExcEditor.py:58
+msgid "To add a drill first select a tool"
+msgstr "To add a drill first select a tool"
+
+#: AppEditors/FlatCAMExcEditor.py:122
+msgid "Done. Drill added."
+msgstr "Done. Drill added."
+
+#: AppEditors/FlatCAMExcEditor.py:176
+msgid "To add an Drill Array first select a tool in Tool Table"
+msgstr "To add an Drill Array first select a tool in Tool Table"
+
+#: AppEditors/FlatCAMExcEditor.py:192 AppEditors/FlatCAMExcEditor.py:415
+#: AppEditors/FlatCAMExcEditor.py:636 AppEditors/FlatCAMExcEditor.py:1151
+#: AppEditors/FlatCAMExcEditor.py:1178 AppEditors/FlatCAMGrbEditor.py:471
+#: AppEditors/FlatCAMGrbEditor.py:1935 AppEditors/FlatCAMGrbEditor.py:1965
+msgid "Click on target location ..."
+msgstr "Click on target location ..."
+
+#: AppEditors/FlatCAMExcEditor.py:211
+msgid "Click on the Drill Circular Array Start position"
+msgstr "Click on the Drill Circular Array Start position"
+
+#: AppEditors/FlatCAMExcEditor.py:233 AppEditors/FlatCAMExcEditor.py:677
+#: AppEditors/FlatCAMGrbEditor.py:516
+msgid "The value is not Float. Check for comma instead of dot separator."
+msgstr "The value is not Float. Check for comma instead of dot separator."
+
+#: AppEditors/FlatCAMExcEditor.py:237
+msgid "The value is mistyped. Check the value"
+msgstr "The value is mistyped. Check the value"
+
+#: AppEditors/FlatCAMExcEditor.py:336
+msgid "Too many drills for the selected spacing angle."
+msgstr "Too many drills for the selected spacing angle."
+
+#: AppEditors/FlatCAMExcEditor.py:354
+msgid "Done. Drill Array added."
+msgstr "Done. Drill Array added."
+
+#: AppEditors/FlatCAMExcEditor.py:394
+msgid "To add a slot first select a tool"
+msgstr "To add a slot first select a tool"
+
+#: AppEditors/FlatCAMExcEditor.py:454 AppEditors/FlatCAMExcEditor.py:461
+#: AppEditors/FlatCAMExcEditor.py:742 AppEditors/FlatCAMExcEditor.py:749
+msgid "Value is missing or wrong format. Add it and retry."
+msgstr "Value is missing or wrong format. Add it and retry."
+
+#: AppEditors/FlatCAMExcEditor.py:559
+msgid "Done. Adding Slot completed."
+msgstr "Done. Adding Slot completed."
+
+#: AppEditors/FlatCAMExcEditor.py:597
+msgid "To add an Slot Array first select a tool in Tool Table"
+msgstr "To add an Slot Array first select a tool in Tool Table"
+
+#: AppEditors/FlatCAMExcEditor.py:655
+msgid "Click on the Slot Circular Array Start position"
+msgstr "Click on the Slot Circular Array Start position"
+
+#: AppEditors/FlatCAMExcEditor.py:680 AppEditors/FlatCAMGrbEditor.py:519
+msgid "The value is mistyped. Check the value."
+msgstr "The value is mistyped. Check the value."
+
+#: AppEditors/FlatCAMExcEditor.py:859
+msgid "Too many Slots for the selected spacing angle."
+msgstr "Too many Slots for the selected spacing angle."
+
+#: AppEditors/FlatCAMExcEditor.py:882
+msgid "Done. Slot Array added."
+msgstr "Done. Slot Array added."
+
+#: AppEditors/FlatCAMExcEditor.py:904
+msgid "Click on the Drill(s) to resize ..."
+msgstr "Click on the Drill(s) to resize ..."
+
+#: AppEditors/FlatCAMExcEditor.py:934
+msgid "Resize drill(s) failed. Please enter a diameter for resize."
+msgstr "Resize drill(s) failed. Please enter a diameter for resize."
+
+#: AppEditors/FlatCAMExcEditor.py:1112
+msgid "Done. Drill/Slot Resize completed."
+msgstr "Done. Drill/Slot Resize completed."
+
+#: AppEditors/FlatCAMExcEditor.py:1115
+msgid "Cancelled. No drills/slots selected for resize ..."
+msgstr "Cancelled. No drills/slots selected for resize ..."
+
+#: AppEditors/FlatCAMExcEditor.py:1153 AppEditors/FlatCAMGrbEditor.py:1937
+msgid "Click on reference location ..."
+msgstr "Click on reference location ..."
+
+#: AppEditors/FlatCAMExcEditor.py:1210
+msgid "Done. Drill(s) Move completed."
+msgstr "Done. Drill(s) Move completed."
+
+#: AppEditors/FlatCAMExcEditor.py:1318
+msgid "Done. Drill(s) copied."
+msgstr "Done. Drill(s) copied."
+
+#: AppEditors/FlatCAMExcEditor.py:1557
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:26
+msgid "Excellon Editor"
+msgstr "Excellon Editor"
+
+#: AppEditors/FlatCAMExcEditor.py:1564 AppEditors/FlatCAMGrbEditor.py:2460
+msgid "Name:"
+msgstr "Name:"
+
+#: AppEditors/FlatCAMExcEditor.py:1570 AppGUI/ObjectUI.py:761
+#: AppGUI/ObjectUI.py:1567 AppTools/ToolNCC.py:120 AppTools/ToolPaint.py:114
+#: AppTools/ToolSolderPaste.py:74
+msgid "Tools Table"
+msgstr "Tools Table"
+
+#: AppEditors/FlatCAMExcEditor.py:1572 AppGUI/ObjectUI.py:763
+msgid ""
+"Tools in this Excellon object\n"
+"when are used for drilling."
+msgstr ""
+"Tools in this Excellon object\n"
+"when are used for drilling."
+
+#: AppEditors/FlatCAMExcEditor.py:1584 AppEditors/FlatCAMExcEditor.py:3041
+#: AppGUI/ObjectUI.py:781 AppObjects/FlatCAMExcellon.py:1177
+#: AppObjects/FlatCAMExcellon.py:1268 AppObjects/FlatCAMExcellon.py:1453
+#: AppTools/ToolNCC.py:132 AppTools/ToolPaint.py:127
+#: AppTools/ToolPcbWizard.py:76 AppTools/ToolProperties.py:416
+#: AppTools/ToolProperties.py:476 AppTools/ToolSolderPaste.py:85
+#: tclCommands/TclCommandDrillcncjob.py:195
+msgid "Diameter"
+msgstr "Diameter"
+
+#: AppEditors/FlatCAMExcEditor.py:1592
+msgid "Add/Delete Tool"
+msgstr "Add/Delete Tool"
+
+#: AppEditors/FlatCAMExcEditor.py:1594
+msgid ""
+"Add/Delete a tool to the tool list\n"
+"for this Excellon object."
+msgstr ""
+"Add/Delete a tool to the tool list\n"
+"for this Excellon object."
+
+#: AppEditors/FlatCAMExcEditor.py:1606 AppGUI/ObjectUI.py:1687
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:57
+msgid "Diameter for the new tool"
+msgstr "Diameter for the new tool"
+
+#: AppEditors/FlatCAMExcEditor.py:1616
+msgid "Add Tool"
+msgstr "Add Tool"
+
+#: AppEditors/FlatCAMExcEditor.py:1618
+msgid ""
+"Add a new tool to the tool list\n"
+"with the diameter specified above."
+msgstr ""
+"Add a new tool to the tool list\n"
+"with the diameter specified above."
+
+#: AppEditors/FlatCAMExcEditor.py:1630
+msgid "Delete Tool"
+msgstr "Delete Tool"
+
+#: AppEditors/FlatCAMExcEditor.py:1632
+msgid ""
+"Delete a tool in the tool list\n"
+"by selecting a row in the tool table."
+msgstr ""
+"Delete a tool in the tool list\n"
+"by selecting a row in the tool table."
+
+#: AppEditors/FlatCAMExcEditor.py:1650 AppGUI/MainGUI.py:4311
+msgid "Resize Drill(s)"
+msgstr "Resize Drill(s)"
+
+#: AppEditors/FlatCAMExcEditor.py:1652
+msgid "Resize a drill or a selection of drills."
+msgstr "Resize a drill or a selection of drills."
+
+#: AppEditors/FlatCAMExcEditor.py:1659
+msgid "Resize Dia"
+msgstr "Resize Dia"
+
+#: AppEditors/FlatCAMExcEditor.py:1661
+msgid "Diameter to resize to."
+msgstr "Diameter to resize to."
+
+#: AppEditors/FlatCAMExcEditor.py:1672
+msgid "Resize"
+msgstr "Resize"
+
+#: AppEditors/FlatCAMExcEditor.py:1674
+msgid "Resize drill(s)"
+msgstr "Resize drill(s)"
+
+#: AppEditors/FlatCAMExcEditor.py:1699 AppGUI/MainGUI.py:1473
+#: AppGUI/MainGUI.py:4310
+msgid "Add Drill Array"
+msgstr "Add Drill Array"
+
+#: AppEditors/FlatCAMExcEditor.py:1701
+msgid "Add an array of drills (linear or circular array)"
+msgstr "Add an array of drills (linear or circular array)"
+
+#: AppEditors/FlatCAMExcEditor.py:1707
+msgid ""
+"Select the type of drills array to create.\n"
+"It can be Linear X(Y) or Circular"
+msgstr ""
+"Select the type of drills array to create.\n"
+"It can be Linear X(Y) or Circular"
+
+#: AppEditors/FlatCAMExcEditor.py:1710 AppEditors/FlatCAMExcEditor.py:1924
+#: AppEditors/FlatCAMGrbEditor.py:2773
+msgid "Linear"
+msgstr "Linear"
+
+#: AppEditors/FlatCAMExcEditor.py:1711 AppEditors/FlatCAMExcEditor.py:1925
+#: AppEditors/FlatCAMGrbEditor.py:2774 AppGUI/ObjectUI.py:316
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:52
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:149
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:107
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:52
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:151
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:70
+#: AppTools/ToolExtractDrills.py:78 AppTools/ToolExtractDrills.py:201
+#: AppTools/ToolFiducials.py:220 AppTools/ToolNCC.py:221
+#: AppTools/ToolPaint.py:203 AppTools/ToolPunchGerber.py:89
+#: AppTools/ToolPunchGerber.py:229
+msgid "Circular"
+msgstr "Circular"
+
+#: AppEditors/FlatCAMExcEditor.py:1719
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:68
+msgid "Nr of drills"
+msgstr "Nr of drills"
+
+#: AppEditors/FlatCAMExcEditor.py:1720
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:70
+msgid "Specify how many drills to be in the array."
+msgstr "Specify how many drills to be in the array."
+
+#: AppEditors/FlatCAMExcEditor.py:1738 AppEditors/FlatCAMExcEditor.py:1788
+#: AppEditors/FlatCAMExcEditor.py:1860 AppEditors/FlatCAMExcEditor.py:1953
+#: AppEditors/FlatCAMExcEditor.py:2004 AppEditors/FlatCAMGrbEditor.py:1571
+#: AppEditors/FlatCAMGrbEditor.py:2802 AppEditors/FlatCAMGrbEditor.py:2851
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:178
+msgid "Direction"
+msgstr "Direction"
+
+#: AppEditors/FlatCAMExcEditor.py:1740 AppEditors/FlatCAMExcEditor.py:1955
+#: AppEditors/FlatCAMGrbEditor.py:2804
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:86
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:234
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:122
+msgid ""
+"Direction on which the linear array is oriented:\n"
+"- 'X' - horizontal axis \n"
+"- 'Y' - vertical axis or \n"
+"- 'Angle' - a custom angle for the array inclination"
+msgstr ""
+"Direction on which the linear array is oriented:\n"
+"- 'X' - horizontal axis \n"
+"- 'Y' - vertical axis or \n"
+"- 'Angle' - a custom angle for the array inclination"
+
+#: AppEditors/FlatCAMExcEditor.py:1747 AppEditors/FlatCAMExcEditor.py:1869
+#: AppEditors/FlatCAMExcEditor.py:1962 AppEditors/FlatCAMGrbEditor.py:2811
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:92
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:187
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:240
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:128
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:208
+#: AppTools/ToolFilm.py:239
+msgid "X"
+msgstr "X"
+
+#: AppEditors/FlatCAMExcEditor.py:1748 AppEditors/FlatCAMExcEditor.py:1870
+#: AppEditors/FlatCAMExcEditor.py:1963 AppEditors/FlatCAMGrbEditor.py:2812
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:93
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:188
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:241
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:129
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:209
+#: AppTools/ToolFilm.py:240
+msgid "Y"
+msgstr "Y"
+
+#: AppEditors/FlatCAMExcEditor.py:1749 AppEditors/FlatCAMExcEditor.py:1766
+#: AppEditors/FlatCAMExcEditor.py:1800 AppEditors/FlatCAMExcEditor.py:1871
+#: AppEditors/FlatCAMExcEditor.py:1875 AppEditors/FlatCAMExcEditor.py:1964
+#: AppEditors/FlatCAMExcEditor.py:1982 AppEditors/FlatCAMExcEditor.py:2016
+#: AppEditors/FlatCAMGrbEditor.py:2813 AppEditors/FlatCAMGrbEditor.py:2830
+#: AppEditors/FlatCAMGrbEditor.py:2866
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:94
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:113
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:189
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:194
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:242
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:263
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:130
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:148
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:53
+#: AppTools/ToolDistance.py:120 AppTools/ToolDistanceMin.py:68
+#: AppTools/ToolTransform.py:60
+msgid "Angle"
+msgstr "Angle"
+
+#: AppEditors/FlatCAMExcEditor.py:1753 AppEditors/FlatCAMExcEditor.py:1968
+#: AppEditors/FlatCAMGrbEditor.py:2817
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:100
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:248
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:136
+msgid "Pitch"
+msgstr "Pitch"
+
+#: AppEditors/FlatCAMExcEditor.py:1755 AppEditors/FlatCAMExcEditor.py:1970
+#: AppEditors/FlatCAMGrbEditor.py:2819
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:102
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:250
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:138
+msgid "Pitch = Distance between elements of the array."
+msgstr "Pitch = Distance between elements of the array."
+
+#: AppEditors/FlatCAMExcEditor.py:1768 AppEditors/FlatCAMExcEditor.py:1984
+msgid ""
+"Angle at which the linear array is placed.\n"
+"The precision is of max 2 decimals.\n"
+"Min value is: -360 degrees.\n"
+"Max value is: 360.00 degrees."
+msgstr ""
+"Angle at which the linear array is placed.\n"
+"The precision is of max 2 decimals.\n"
+"Min value is: -360 degrees.\n"
+"Max value is: 360.00 degrees."
+
+#: AppEditors/FlatCAMExcEditor.py:1789 AppEditors/FlatCAMExcEditor.py:2005
+#: AppEditors/FlatCAMGrbEditor.py:2853
+msgid ""
+"Direction for circular array.Can be CW = clockwise or CCW = counter "
+"clockwise."
+msgstr ""
+"Direction for circular array.Can be CW = clockwise or CCW = counter "
+"clockwise."
+
+#: AppEditors/FlatCAMExcEditor.py:1796 AppEditors/FlatCAMExcEditor.py:2012
+#: AppEditors/FlatCAMGrbEditor.py:2861
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:129
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:136
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:286
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:142
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:170
+msgid "CW"
+msgstr "CW"
+
+#: AppEditors/FlatCAMExcEditor.py:1797 AppEditors/FlatCAMExcEditor.py:2013
+#: AppEditors/FlatCAMGrbEditor.py:2862
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:130
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:137
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:287
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:143
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:171
+msgid "CCW"
+msgstr "CCW"
+
+#: AppEditors/FlatCAMExcEditor.py:1801 AppEditors/FlatCAMExcEditor.py:2017
+#: AppEditors/FlatCAMGrbEditor.py:2868
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:115
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:145
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:265
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:295
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:150
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:179
+msgid "Angle at which each element in circular array is placed."
+msgstr "Angle at which each element in circular array is placed."
+
+#: AppEditors/FlatCAMExcEditor.py:1835
+msgid "Slot Parameters"
+msgstr "Slot Parameters"
+
+#: AppEditors/FlatCAMExcEditor.py:1837
+msgid ""
+"Parameters for adding a slot (hole with oval shape)\n"
+"either single or as an part of an array."
+msgstr ""
+"Parameters for adding a slot (hole with oval shape)\n"
+"either single or as an part of an array."
+
+#: AppEditors/FlatCAMExcEditor.py:1846
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:56
+#: AppTools/ToolCorners.py:127 AppTools/ToolProperties.py:559
+msgid "Length"
+msgstr "Length"
+
+#: AppEditors/FlatCAMExcEditor.py:1848
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:164
+msgid "Length = The length of the slot."
+msgstr "Length = The length of the slot."
+
+#: AppEditors/FlatCAMExcEditor.py:1862
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:180
+msgid ""
+"Direction on which the slot is oriented:\n"
+"- 'X' - horizontal axis \n"
+"- 'Y' - vertical axis or \n"
+"- 'Angle' - a custom angle for the slot inclination"
+msgstr ""
+"Direction on which the slot is oriented:\n"
+"- 'X' - horizontal axis \n"
+"- 'Y' - vertical axis or \n"
+"- 'Angle' - a custom angle for the slot inclination"
+
+#: AppEditors/FlatCAMExcEditor.py:1877
+msgid ""
+"Angle at which the slot is placed.\n"
+"The precision is of max 2 decimals.\n"
+"Min value is: -360 degrees.\n"
+"Max value is: 360.00 degrees."
+msgstr ""
+"Angle at which the slot is placed.\n"
+"The precision is of max 2 decimals.\n"
+"Min value is: -360 degrees.\n"
+"Max value is: 360.00 degrees."
+
+#: AppEditors/FlatCAMExcEditor.py:1910
+msgid "Slot Array Parameters"
+msgstr "Slot Array Parameters"
+
+#: AppEditors/FlatCAMExcEditor.py:1912
+msgid "Parameters for the array of slots (linear or circular array)"
+msgstr "Parameters for the array of slots (linear or circular array)"
+
+#: AppEditors/FlatCAMExcEditor.py:1921
+msgid ""
+"Select the type of slot array to create.\n"
+"It can be Linear X(Y) or Circular"
+msgstr ""
+"Select the type of slot array to create.\n"
+"It can be Linear X(Y) or Circular"
+
+#: AppEditors/FlatCAMExcEditor.py:1933
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:219
+msgid "Nr of slots"
+msgstr "Nr of slots"
+
+#: AppEditors/FlatCAMExcEditor.py:1934
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:221
+msgid "Specify how many slots to be in the array."
+msgstr "Specify how many slots to be in the array."
+
+#: AppEditors/FlatCAMExcEditor.py:2452 AppObjects/FlatCAMExcellon.py:423
+msgid "Total Drills"
+msgstr "Total Drills"
+
+#: AppEditors/FlatCAMExcEditor.py:2484 AppObjects/FlatCAMExcellon.py:454
+msgid "Total Slots"
+msgstr "Total Slots"
+
+#: AppEditors/FlatCAMExcEditor.py:2559 AppEditors/FlatCAMGeoEditor.py:1075
+#: AppEditors/FlatCAMGeoEditor.py:1116 AppEditors/FlatCAMGeoEditor.py:1144
+#: AppEditors/FlatCAMGeoEditor.py:1172 AppEditors/FlatCAMGeoEditor.py:1216
+#: AppEditors/FlatCAMGeoEditor.py:1251 AppEditors/FlatCAMGeoEditor.py:1279
+#: AppObjects/FlatCAMGeometry.py:656 AppObjects/FlatCAMGeometry.py:1090
+#: AppObjects/FlatCAMGeometry.py:1830 AppObjects/FlatCAMGeometry.py:2480
+#: AppTools/ToolNCC.py:1498 AppTools/ToolPaint.py:1248
+#: AppTools/ToolPaint.py:1419 AppTools/ToolSolderPaste.py:883
+#: AppTools/ToolSolderPaste.py:956
+msgid "Wrong value format entered, use a number."
+msgstr "Wrong value format entered, use a number."
+
+#: AppEditors/FlatCAMExcEditor.py:2570
+msgid ""
+"Tool already in the original or actual tool list.\n"
+"Save and reedit Excellon if you need to add this tool. "
+msgstr ""
+"Tool already in the original or actual tool list.\n"
+"Save and reedit Excellon if you need to add this tool. "
+
+#: AppEditors/FlatCAMExcEditor.py:2579 AppGUI/MainGUI.py:3318
+msgid "Added new tool with dia"
+msgstr "Added new tool with dia"
+
+#: AppEditors/FlatCAMExcEditor.py:2612
+msgid "Select a tool in Tool Table"
+msgstr "Select a tool in Tool Table"
+
+#: AppEditors/FlatCAMExcEditor.py:2642
+msgid "Deleted tool with diameter"
+msgstr "Deleted tool with diameter"
+
+#: AppEditors/FlatCAMExcEditor.py:2790
+msgid "Done. Tool edit completed."
+msgstr "Done. Tool edit completed."
+
+#: AppEditors/FlatCAMExcEditor.py:3327
+msgid "There are no Tools definitions in the file. Aborting Excellon creation."
+msgstr ""
+"There are no Tools definitions in the file. Aborting Excellon creation."
+
+#: AppEditors/FlatCAMExcEditor.py:3331
+msgid "An internal error has ocurred. See Shell.\n"
+msgstr "An internal error has ocurred. See Shell.\n"
+
+#: AppEditors/FlatCAMExcEditor.py:3336
+msgid "Creating Excellon."
+msgstr "Creating Excellon."
+
+#: AppEditors/FlatCAMExcEditor.py:3348
+msgid "Excellon editing finished."
+msgstr "Excellon editing finished."
+
+#: AppEditors/FlatCAMExcEditor.py:3365
+msgid "Cancelled. There is no Tool/Drill selected"
+msgstr "Cancelled. There is no Tool/Drill selected"
+
+#: AppEditors/FlatCAMExcEditor.py:3599 AppEditors/FlatCAMExcEditor.py:3607
+#: AppEditors/FlatCAMGeoEditor.py:4343 AppEditors/FlatCAMGeoEditor.py:4357
+#: AppEditors/FlatCAMGrbEditor.py:1085 AppEditors/FlatCAMGrbEditor.py:1202
+#: AppEditors/FlatCAMGrbEditor.py:1488 AppEditors/FlatCAMGrbEditor.py:1757
+#: AppEditors/FlatCAMGrbEditor.py:4595 AppEditors/FlatCAMGrbEditor.py:4610
+#: AppGUI/MainGUI.py:2671 AppGUI/MainGUI.py:2683
+#: AppTools/ToolAlignObjects.py:393 AppTools/ToolAlignObjects.py:415
+#: App_Main.py:4649 App_Main.py:4803
+msgid "Done."
+msgstr "Done."
+
+#: AppEditors/FlatCAMExcEditor.py:3982
+msgid "Done. Drill(s) deleted."
+msgstr "Done. Drill(s) deleted."
+
+#: AppEditors/FlatCAMExcEditor.py:4055 AppEditors/FlatCAMExcEditor.py:4065
+#: AppEditors/FlatCAMGrbEditor.py:5041
+msgid "Click on the circular array Center position"
+msgstr "Click on the circular array Center position"
+
+#: AppEditors/FlatCAMGeoEditor.py:84
+msgid "Buffer distance:"
+msgstr "Buffer distance:"
+
+#: AppEditors/FlatCAMGeoEditor.py:85
+msgid "Buffer corner:"
+msgstr "Buffer corner:"
+
+#: AppEditors/FlatCAMGeoEditor.py:87
+msgid ""
+"There are 3 types of corners:\n"
+" - 'Round': the corner is rounded for exterior buffer.\n"
+" - 'Square': the corner is met in a sharp angle for exterior buffer.\n"
+" - 'Beveled': the corner is a line that directly connects the features "
+"meeting in the corner"
+msgstr ""
+"There are 3 types of corners:\n"
+" - 'Round': the corner is rounded for exterior buffer.\n"
+" - 'Square': the corner is met in a sharp angle for exterior buffer.\n"
+" - 'Beveled': the corner is a line that directly connects the features "
+"meeting in the corner"
+
+#: AppEditors/FlatCAMGeoEditor.py:93 AppEditors/FlatCAMGrbEditor.py:2629
+msgid "Round"
+msgstr "Round"
+
+#: AppEditors/FlatCAMGeoEditor.py:94 AppEditors/FlatCAMGrbEditor.py:2630
+#: AppGUI/ObjectUI.py:1370 AppGUI/ObjectUI.py:2204
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:217
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:68
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:175
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:68
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:177
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:143
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:291
+#: AppTools/ToolExtractDrills.py:94 AppTools/ToolExtractDrills.py:227
+#: AppTools/ToolNCC.py:583 AppTools/ToolPaint.py:526
+#: AppTools/ToolPunchGerber.py:105 AppTools/ToolPunchGerber.py:255
+#: AppTools/ToolQRCode.py:198
+msgid "Square"
+msgstr "Square"
+
+#: AppEditors/FlatCAMGeoEditor.py:95 AppEditors/FlatCAMGrbEditor.py:2631
+msgid "Beveled"
+msgstr "Beveled"
+
+#: AppEditors/FlatCAMGeoEditor.py:102
+msgid "Buffer Interior"
+msgstr "Buffer Interior"
+
+#: AppEditors/FlatCAMGeoEditor.py:104
+msgid "Buffer Exterior"
+msgstr "Buffer Exterior"
+
+#: AppEditors/FlatCAMGeoEditor.py:110
+msgid "Full Buffer"
+msgstr "Full Buffer"
+
+#: AppEditors/FlatCAMGeoEditor.py:131 AppEditors/FlatCAMGeoEditor.py:3016
+#: AppGUI/MainGUI.py:4220
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:190
+msgid "Buffer Tool"
+msgstr "Buffer Tool"
+
+#: AppEditors/FlatCAMGeoEditor.py:143 AppEditors/FlatCAMGeoEditor.py:160
+#: AppEditors/FlatCAMGeoEditor.py:177 AppEditors/FlatCAMGeoEditor.py:3035
+#: AppEditors/FlatCAMGeoEditor.py:3063 AppEditors/FlatCAMGeoEditor.py:3091
+#: AppEditors/FlatCAMGrbEditor.py:5094
+msgid "Buffer distance value is missing or wrong format. Add it and retry."
+msgstr "Buffer distance value is missing or wrong format. Add it and retry."
+
+#: AppEditors/FlatCAMGeoEditor.py:241
+msgid "Font"
+msgstr "Font"
+
+#: AppEditors/FlatCAMGeoEditor.py:322 AppGUI/MainGUI.py:1411
+msgid "Text"
+msgstr "Text"
+
+#: AppEditors/FlatCAMGeoEditor.py:348
+msgid "Text Tool"
+msgstr "Text Tool"
+
+#: AppEditors/FlatCAMGeoEditor.py:404 AppGUI/MainGUI.py:513
+#: AppGUI/MainGUI.py:1158 AppGUI/ObjectUI.py:818 AppGUI/ObjectUI.py:1764
+#: AppObjects/FlatCAMExcellon.py:821 AppObjects/FlatCAMExcellon.py:1163
+#: AppObjects/FlatCAMGeometry.py:816 AppTools/ToolNCC.py:331
+#: AppTools/ToolNCC.py:797 AppTools/ToolPaint.py:313 AppTools/ToolPaint.py:766
+msgid "Tool"
+msgstr "Tool"
+
+#: AppEditors/FlatCAMGeoEditor.py:438 AppGUI/ObjectUI.py:364
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:43
+msgid "Tool dia"
+msgstr "Tool dia"
+
+#: AppEditors/FlatCAMGeoEditor.py:440
+msgid "Diameter of the tool to be used in the operation."
+msgstr "Diameter of the tool to be used in the operation."
+
+#: AppEditors/FlatCAMGeoEditor.py:486
+msgid ""
+"Algorithm to paint the polygons:\n"
+"- Standard: Fixed step inwards.\n"
+"- Seed-based: Outwards from seed.\n"
+"- Line-based: Parallel lines."
+msgstr ""
+"Algorithm to paint the polygons:\n"
+"- Standard: Fixed step inwards.\n"
+"- Seed-based: Outwards from seed.\n"
+"- Line-based: Parallel lines."
+
+#: AppEditors/FlatCAMGeoEditor.py:505
+msgid "Connect:"
+msgstr "Connect:"
+
+#: AppEditors/FlatCAMGeoEditor.py:515
+msgid "Contour:"
+msgstr "Contour:"
+
+#: AppEditors/FlatCAMGeoEditor.py:528 AppGUI/MainGUI.py:1415
+msgid "Paint"
+msgstr "Paint"
+
+#: AppEditors/FlatCAMGeoEditor.py:546 AppGUI/MainGUI.py:917
+#: AppGUI/MainGUI.py:1910 AppGUI/ObjectUI.py:2269 AppTools/ToolPaint.py:42
+#: AppTools/ToolPaint.py:737
+msgid "Paint Tool"
+msgstr "Paint Tool"
+
+#: AppEditors/FlatCAMGeoEditor.py:582 AppEditors/FlatCAMGeoEditor.py:1054
+#: AppEditors/FlatCAMGeoEditor.py:3023 AppEditors/FlatCAMGeoEditor.py:3051
+#: AppEditors/FlatCAMGeoEditor.py:3079 AppEditors/FlatCAMGeoEditor.py:4496
+#: AppEditors/FlatCAMGrbEditor.py:5745
+msgid "Cancelled. No shape selected."
+msgstr "Cancelled. No shape selected."
+
+#: AppEditors/FlatCAMGeoEditor.py:595 AppEditors/FlatCAMGeoEditor.py:3041
+#: AppEditors/FlatCAMGeoEditor.py:3069 AppEditors/FlatCAMGeoEditor.py:3097
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:59
+#: AppTools/ToolProperties.py:117 AppTools/ToolProperties.py:162
+msgid "Tools"
+msgstr "Tools"
+
+#: AppEditors/FlatCAMGeoEditor.py:606 AppEditors/FlatCAMGeoEditor.py:990
+#: AppEditors/FlatCAMGrbEditor.py:5284 AppEditors/FlatCAMGrbEditor.py:5681
+#: AppGUI/MainGUI.py:938 AppGUI/MainGUI.py:1931 AppTools/ToolTransform.py:460
+msgid "Transform Tool"
+msgstr "Transform Tool"
+
+#: AppEditors/FlatCAMGeoEditor.py:607 AppEditors/FlatCAMGeoEditor.py:672
+#: AppEditors/FlatCAMGrbEditor.py:5285 AppEditors/FlatCAMGrbEditor.py:5350
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:45
+#: AppTools/ToolTransform.py:24 AppTools/ToolTransform.py:466
+msgid "Rotate"
+msgstr "Rotate"
+
+#: AppEditors/FlatCAMGeoEditor.py:608 AppEditors/FlatCAMGrbEditor.py:5286
+#: AppTools/ToolTransform.py:25
+msgid "Skew/Shear"
+msgstr "Skew/Shear"
+
+#: AppEditors/FlatCAMGeoEditor.py:609 AppEditors/FlatCAMGrbEditor.py:2678
+#: AppEditors/FlatCAMGrbEditor.py:5287 AppGUI/MainGUI.py:1060
+#: AppGUI/MainGUI.py:1458 AppGUI/MainGUI.py:2053 AppGUI/MainGUI.py:4432
+#: AppGUI/ObjectUI.py:125
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:95
+#: AppTools/ToolTransform.py:26
+msgid "Scale"
+msgstr "Scale"
+
+#: AppEditors/FlatCAMGeoEditor.py:610 AppEditors/FlatCAMGrbEditor.py:5288
+#: AppTools/ToolTransform.py:27
+msgid "Mirror (Flip)"
+msgstr "Mirror (Flip)"
+
+#: AppEditors/FlatCAMGeoEditor.py:624 AppEditors/FlatCAMGrbEditor.py:5302
+#: AppGUI/MainGUI.py:849 AppGUI/MainGUI.py:1844
+msgid "Editor"
+msgstr "Editor"
+
+#: AppEditors/FlatCAMGeoEditor.py:656 AppEditors/FlatCAMGrbEditor.py:5334
+msgid "Angle:"
+msgstr "Angle:"
+
+#: AppEditors/FlatCAMGeoEditor.py:658 AppEditors/FlatCAMGrbEditor.py:5336
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:55
+#: AppTools/ToolTransform.py:62
+msgid ""
+"Angle for Rotation action, in degrees.\n"
+"Float number between -360 and 359.\n"
+"Positive numbers for CW motion.\n"
+"Negative numbers for CCW motion."
+msgstr ""
+"Angle for Rotation action, in degrees.\n"
+"Float number between -360 and 359.\n"
+"Positive numbers for CW motion.\n"
+"Negative numbers for CCW motion."
+
+#: AppEditors/FlatCAMGeoEditor.py:674 AppEditors/FlatCAMGrbEditor.py:5352
+msgid ""
+"Rotate the selected shape(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected shapes."
+msgstr ""
+"Rotate the selected shape(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected shapes."
+
+#: AppEditors/FlatCAMGeoEditor.py:697 AppEditors/FlatCAMGrbEditor.py:5375
+msgid "Angle X:"
+msgstr "Angle X:"
+
+#: AppEditors/FlatCAMGeoEditor.py:699 AppEditors/FlatCAMGeoEditor.py:719
+#: AppEditors/FlatCAMGrbEditor.py:5377 AppEditors/FlatCAMGrbEditor.py:5397
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:74
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:88
+#: AppTools/ToolCalibration.py:505 AppTools/ToolCalibration.py:518
+msgid ""
+"Angle for Skew action, in degrees.\n"
+"Float number between -360 and 359."
+msgstr ""
+"Angle for Skew action, in degrees.\n"
+"Float number between -360 and 359."
+
+#: AppEditors/FlatCAMGeoEditor.py:710 AppEditors/FlatCAMGrbEditor.py:5388
+#: AppTools/ToolTransform.py:467
+msgid "Skew X"
+msgstr "Skew X"
+
+#: AppEditors/FlatCAMGeoEditor.py:712 AppEditors/FlatCAMGeoEditor.py:732
+#: AppEditors/FlatCAMGrbEditor.py:5390 AppEditors/FlatCAMGrbEditor.py:5410
+msgid ""
+"Skew/shear the selected shape(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected shapes."
+msgstr ""
+"Skew/shear the selected shape(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected shapes."
+
+#: AppEditors/FlatCAMGeoEditor.py:717 AppEditors/FlatCAMGrbEditor.py:5395
+msgid "Angle Y:"
+msgstr "Angle Y:"
+
+#: AppEditors/FlatCAMGeoEditor.py:730 AppEditors/FlatCAMGrbEditor.py:5408
+#: AppTools/ToolTransform.py:468
+msgid "Skew Y"
+msgstr "Skew Y"
+
+#: AppEditors/FlatCAMGeoEditor.py:758 AppEditors/FlatCAMGrbEditor.py:5436
+msgid "Factor X:"
+msgstr "Factor X:"
+
+#: AppEditors/FlatCAMGeoEditor.py:760 AppEditors/FlatCAMGrbEditor.py:5438
+#: AppTools/ToolCalibration.py:469
+msgid "Factor for Scale action over X axis."
+msgstr "Factor for Scale action over X axis."
+
+#: AppEditors/FlatCAMGeoEditor.py:770 AppEditors/FlatCAMGrbEditor.py:5448
+#: AppTools/ToolTransform.py:469
+msgid "Scale X"
+msgstr "Scale X"
+
+#: AppEditors/FlatCAMGeoEditor.py:772 AppEditors/FlatCAMGeoEditor.py:791
+#: AppEditors/FlatCAMGrbEditor.py:5450 AppEditors/FlatCAMGrbEditor.py:5469
+msgid ""
+"Scale the selected shape(s).\n"
+"The point of reference depends on \n"
+"the Scale reference checkbox state."
+msgstr ""
+"Scale the selected shape(s).\n"
+"The point of reference depends on \n"
+"the Scale reference checkbox state."
+
+#: AppEditors/FlatCAMGeoEditor.py:777 AppEditors/FlatCAMGrbEditor.py:5455
+msgid "Factor Y:"
+msgstr "Factor Y:"
+
+#: AppEditors/FlatCAMGeoEditor.py:779 AppEditors/FlatCAMGrbEditor.py:5457
+#: AppTools/ToolCalibration.py:481
+msgid "Factor for Scale action over Y axis."
+msgstr "Factor for Scale action over Y axis."
+
+#: AppEditors/FlatCAMGeoEditor.py:789 AppEditors/FlatCAMGrbEditor.py:5467
+#: AppTools/ToolTransform.py:470
+msgid "Scale Y"
+msgstr "Scale Y"
+
+#: AppEditors/FlatCAMGeoEditor.py:798 AppEditors/FlatCAMGrbEditor.py:5476
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:124
+#: AppTools/ToolTransform.py:189
+msgid "Link"
+msgstr "Link"
+
+#: AppEditors/FlatCAMGeoEditor.py:800 AppEditors/FlatCAMGrbEditor.py:5478
+msgid ""
+"Scale the selected shape(s)\n"
+"using the Scale Factor X for both axis."
+msgstr ""
+"Scale the selected shape(s)\n"
+"using the Scale Factor X for both axis."
+
+#: AppEditors/FlatCAMGeoEditor.py:806 AppEditors/FlatCAMGrbEditor.py:5484
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:132
+#: AppTools/ToolTransform.py:196
+msgid "Scale Reference"
+msgstr "Scale Reference"
+
+#: AppEditors/FlatCAMGeoEditor.py:808 AppEditors/FlatCAMGrbEditor.py:5486
+msgid ""
+"Scale the selected shape(s)\n"
+"using the origin reference when checked,\n"
+"and the center of the biggest bounding box\n"
+"of the selected shapes when unchecked."
+msgstr ""
+"Scale the selected shape(s)\n"
+"using the origin reference when checked,\n"
+"and the center of the biggest bounding box\n"
+"of the selected shapes when unchecked."
+
+#: AppEditors/FlatCAMGeoEditor.py:836 AppEditors/FlatCAMGrbEditor.py:5515
+msgid "Value X:"
+msgstr "Value X:"
+
+#: AppEditors/FlatCAMGeoEditor.py:838 AppEditors/FlatCAMGrbEditor.py:5517
+msgid "Value for Offset action on X axis."
+msgstr "Value for Offset action on X axis."
+
+#: AppEditors/FlatCAMGeoEditor.py:848 AppEditors/FlatCAMGrbEditor.py:5527
+#: AppTools/ToolTransform.py:473
+msgid "Offset X"
+msgstr "Offset X"
+
+#: AppEditors/FlatCAMGeoEditor.py:850 AppEditors/FlatCAMGeoEditor.py:870
+#: AppEditors/FlatCAMGrbEditor.py:5529 AppEditors/FlatCAMGrbEditor.py:5549
+msgid ""
+"Offset the selected shape(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected shapes.\n"
+msgstr ""
+"Offset the selected shape(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected shapes.\n"
+
+#: AppEditors/FlatCAMGeoEditor.py:856 AppEditors/FlatCAMGrbEditor.py:5535
+msgid "Value Y:"
+msgstr "Value Y:"
+
+#: AppEditors/FlatCAMGeoEditor.py:858 AppEditors/FlatCAMGrbEditor.py:5537
+msgid "Value for Offset action on Y axis."
+msgstr "Value for Offset action on Y axis."
+
+#: AppEditors/FlatCAMGeoEditor.py:868 AppEditors/FlatCAMGrbEditor.py:5547
+#: AppTools/ToolTransform.py:474
+msgid "Offset Y"
+msgstr "Offset Y"
+
+#: AppEditors/FlatCAMGeoEditor.py:899 AppEditors/FlatCAMGrbEditor.py:5578
+#: AppTools/ToolTransform.py:475
+msgid "Flip on X"
+msgstr "Flip on X"
+
+#: AppEditors/FlatCAMGeoEditor.py:901 AppEditors/FlatCAMGeoEditor.py:908
+#: AppEditors/FlatCAMGrbEditor.py:5580 AppEditors/FlatCAMGrbEditor.py:5587
+msgid ""
+"Flip the selected shape(s) over the X axis.\n"
+"Does not create a new shape."
+msgstr ""
+"Flip the selected shape(s) over the X axis.\n"
+"Does not create a new shape."
+
+#: AppEditors/FlatCAMGeoEditor.py:906 AppEditors/FlatCAMGrbEditor.py:5585
+#: AppTools/ToolTransform.py:476
+msgid "Flip on Y"
+msgstr "Flip on Y"
+
+#: AppEditors/FlatCAMGeoEditor.py:914 AppEditors/FlatCAMGrbEditor.py:5593
+msgid "Ref Pt"
+msgstr "Ref Pt"
+
+#: AppEditors/FlatCAMGeoEditor.py:916 AppEditors/FlatCAMGrbEditor.py:5595
+msgid ""
+"Flip the selected shape(s)\n"
+"around the point in Point Entry Field.\n"
+"\n"
+"The point coordinates can be captured by\n"
+"left click on canvas together with pressing\n"
+"SHIFT key. \n"
+"Then click Add button to insert coordinates.\n"
+"Or enter the coords in format (x, y) in the\n"
+"Point Entry field and click Flip on X(Y)"
+msgstr ""
+"Flip the selected shape(s)\n"
+"around the point in Point Entry Field.\n"
+"\n"
+"The point coordinates can be captured by\n"
+"left click on canvas together with pressing\n"
+"SHIFT key. \n"
+"Then click Add button to insert coordinates.\n"
+"Or enter the coords in format (x, y) in the\n"
+"Point Entry field and click Flip on X(Y)"
+
+#: AppEditors/FlatCAMGeoEditor.py:928 AppEditors/FlatCAMGrbEditor.py:5607
+msgid "Point:"
+msgstr "Point:"
+
+#: AppEditors/FlatCAMGeoEditor.py:930 AppEditors/FlatCAMGrbEditor.py:5609
+#: AppTools/ToolTransform.py:299
+msgid ""
+"Coordinates in format (x, y) used as reference for mirroring.\n"
+"The 'x' in (x, y) will be used when using Flip on X and\n"
+"the 'y' in (x, y) will be used when using Flip on Y."
+msgstr ""
+"Coordinates in format (x, y) used as reference for mirroring.\n"
+"The 'x' in (x, y) will be used when using Flip on X and\n"
+"the 'y' in (x, y) will be used when using Flip on Y."
+
+#: AppEditors/FlatCAMGeoEditor.py:938 AppEditors/FlatCAMGrbEditor.py:2581
+#: AppEditors/FlatCAMGrbEditor.py:5619 AppGUI/ObjectUI.py:1697
+#: AppTools/ToolDblSided.py:192 AppTools/ToolDblSided.py:425
+#: AppTools/ToolNCC.py:294 AppTools/ToolNCC.py:631 AppTools/ToolPaint.py:276
+#: AppTools/ToolPaint.py:675 AppTools/ToolSolderPaste.py:122
+#: AppTools/ToolSolderPaste.py:597 AppTools/ToolTransform.py:478
+#: App_Main.py:5593
+msgid "Add"
+msgstr "Add"
+
+#: AppEditors/FlatCAMGeoEditor.py:940 AppEditors/FlatCAMGrbEditor.py:5621
+#: AppTools/ToolTransform.py:309
+msgid ""
+"The point coordinates can be captured by\n"
+"left click on canvas together with pressing\n"
+"SHIFT key. Then click Add button to insert."
+msgstr ""
+"The point coordinates can be captured by\n"
+"left click on canvas together with pressing\n"
+"SHIFT key. Then click Add button to insert."
+
+#: AppEditors/FlatCAMGeoEditor.py:1303 AppEditors/FlatCAMGrbEditor.py:5929
+msgid "No shape selected. Please Select a shape to rotate!"
+msgstr "No shape selected. Please Select a shape to rotate!"
+
+#: AppEditors/FlatCAMGeoEditor.py:1306 AppEditors/FlatCAMGrbEditor.py:5932
+#: AppTools/ToolTransform.py:679
+msgid "Appying Rotate"
+msgstr "Appying Rotate"
+
+#: AppEditors/FlatCAMGeoEditor.py:1332 AppEditors/FlatCAMGrbEditor.py:5964
+msgid "Done. Rotate completed."
+msgstr "Done. Rotate completed."
+
+#: AppEditors/FlatCAMGeoEditor.py:1334
+msgid "Rotation action was not executed"
+msgstr "Rotation action was not executed"
+
+#: AppEditors/FlatCAMGeoEditor.py:1353 AppEditors/FlatCAMGrbEditor.py:5983
+msgid "No shape selected. Please Select a shape to flip!"
+msgstr "No shape selected. Please Select a shape to flip!"
+
+#: AppEditors/FlatCAMGeoEditor.py:1356 AppEditors/FlatCAMGrbEditor.py:5986
+#: AppTools/ToolTransform.py:728
+msgid "Applying Flip"
+msgstr "Applying Flip"
+
+#: AppEditors/FlatCAMGeoEditor.py:1385 AppEditors/FlatCAMGrbEditor.py:6024
+#: AppTools/ToolTransform.py:769
+msgid "Flip on the Y axis done"
+msgstr "Flip on the Y axis done"
+
+#: AppEditors/FlatCAMGeoEditor.py:1389 AppEditors/FlatCAMGrbEditor.py:6033
+#: AppTools/ToolTransform.py:778
+msgid "Flip on the X axis done"
+msgstr "Flip on the X axis done"
+
+#: AppEditors/FlatCAMGeoEditor.py:1397
+msgid "Flip action was not executed"
+msgstr "Flip action was not executed"
+
+#: AppEditors/FlatCAMGeoEditor.py:1415 AppEditors/FlatCAMGrbEditor.py:6053
+msgid "No shape selected. Please Select a shape to shear/skew!"
+msgstr "No shape selected. Please Select a shape to shear/skew!"
+
+#: AppEditors/FlatCAMGeoEditor.py:1418 AppEditors/FlatCAMGrbEditor.py:6056
+#: AppTools/ToolTransform.py:801
+msgid "Applying Skew"
+msgstr "Applying Skew"
+
+#: AppEditors/FlatCAMGeoEditor.py:1441 AppEditors/FlatCAMGrbEditor.py:6090
+msgid "Skew on the X axis done"
+msgstr "Skew on the X axis done"
+
+#: AppEditors/FlatCAMGeoEditor.py:1443 AppEditors/FlatCAMGrbEditor.py:6092
+msgid "Skew on the Y axis done"
+msgstr "Skew on the Y axis done"
+
+#: AppEditors/FlatCAMGeoEditor.py:1446
+msgid "Skew action was not executed"
+msgstr "Skew action was not executed"
+
+#: AppEditors/FlatCAMGeoEditor.py:1468 AppEditors/FlatCAMGrbEditor.py:6114
+msgid "No shape selected. Please Select a shape to scale!"
+msgstr "No shape selected. Please Select a shape to scale!"
+
+#: AppEditors/FlatCAMGeoEditor.py:1471 AppEditors/FlatCAMGrbEditor.py:6117
+#: AppTools/ToolTransform.py:847
+msgid "Applying Scale"
+msgstr "Applying Scale"
+
+#: AppEditors/FlatCAMGeoEditor.py:1503 AppEditors/FlatCAMGrbEditor.py:6154
+msgid "Scale on the X axis done"
+msgstr "Scale on the X axis done"
+
+#: AppEditors/FlatCAMGeoEditor.py:1505 AppEditors/FlatCAMGrbEditor.py:6156
+msgid "Scale on the Y axis done"
+msgstr "Scale on the Y axis done"
+
+#: AppEditors/FlatCAMGeoEditor.py:1507
+msgid "Scale action was not executed"
+msgstr "Scale action was not executed"
+
+#: AppEditors/FlatCAMGeoEditor.py:1522 AppEditors/FlatCAMGrbEditor.py:6173
+msgid "No shape selected. Please Select a shape to offset!"
+msgstr "No shape selected. Please Select a shape to offset!"
+
+#: AppEditors/FlatCAMGeoEditor.py:1525 AppEditors/FlatCAMGrbEditor.py:6176
+#: AppTools/ToolTransform.py:897
+msgid "Applying Offset"
+msgstr "Applying Offset"
+
+#: AppEditors/FlatCAMGeoEditor.py:1535 AppEditors/FlatCAMGrbEditor.py:6197
+msgid "Offset on the X axis done"
+msgstr "Offset on the X axis done"
+
+#: AppEditors/FlatCAMGeoEditor.py:1537 AppEditors/FlatCAMGrbEditor.py:6199
+msgid "Offset on the Y axis done"
+msgstr "Offset on the Y axis done"
+
+#: AppEditors/FlatCAMGeoEditor.py:1540
+msgid "Offset action was not executed"
+msgstr "Offset action was not executed"
+
+#: AppEditors/FlatCAMGeoEditor.py:1544 AppEditors/FlatCAMGrbEditor.py:6206
+msgid "Rotate ..."
+msgstr "Rotate ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:1545 AppEditors/FlatCAMGeoEditor.py:1600
+#: AppEditors/FlatCAMGeoEditor.py:1617 AppEditors/FlatCAMGrbEditor.py:6207
+#: AppEditors/FlatCAMGrbEditor.py:6256 AppEditors/FlatCAMGrbEditor.py:6271
+msgid "Enter an Angle Value (degrees)"
+msgstr "Enter an Angle Value (degrees)"
+
+#: AppEditors/FlatCAMGeoEditor.py:1554 AppEditors/FlatCAMGrbEditor.py:6215
+msgid "Geometry shape rotate done"
+msgstr "Geometry shape rotate done"
+
+#: AppEditors/FlatCAMGeoEditor.py:1558 AppEditors/FlatCAMGrbEditor.py:6218
+msgid "Geometry shape rotate cancelled"
+msgstr "Geometry shape rotate cancelled"
+
+#: AppEditors/FlatCAMGeoEditor.py:1563 AppEditors/FlatCAMGrbEditor.py:6223
+msgid "Offset on X axis ..."
+msgstr "Offset on X axis ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:1564 AppEditors/FlatCAMGeoEditor.py:1583
+#: AppEditors/FlatCAMGrbEditor.py:6224 AppEditors/FlatCAMGrbEditor.py:6241
+msgid "Enter a distance Value"
+msgstr "Enter a distance Value"
+
+#: AppEditors/FlatCAMGeoEditor.py:1573 AppEditors/FlatCAMGrbEditor.py:6232
+msgid "Geometry shape offset on X axis done"
+msgstr "Geometry shape offset on X axis done"
+
+#: AppEditors/FlatCAMGeoEditor.py:1577 AppEditors/FlatCAMGrbEditor.py:6235
+msgid "Geometry shape offset X cancelled"
+msgstr "Geometry shape offset X cancelled"
+
+#: AppEditors/FlatCAMGeoEditor.py:1582 AppEditors/FlatCAMGrbEditor.py:6240
+msgid "Offset on Y axis ..."
+msgstr "Offset on Y axis ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:1592 AppEditors/FlatCAMGrbEditor.py:6249
+msgid "Geometry shape offset on Y axis done"
+msgstr "Geometry shape offset on Y axis done"
+
+#: AppEditors/FlatCAMGeoEditor.py:1596
+msgid "Geometry shape offset on Y axis canceled"
+msgstr "Geometry shape offset on Y axis canceled"
+
+#: AppEditors/FlatCAMGeoEditor.py:1599 AppEditors/FlatCAMGrbEditor.py:6255
+msgid "Skew on X axis ..."
+msgstr "Skew on X axis ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:1609 AppEditors/FlatCAMGrbEditor.py:6264
+msgid "Geometry shape skew on X axis done"
+msgstr "Geometry shape skew on X axis done"
+
+#: AppEditors/FlatCAMGeoEditor.py:1613
+msgid "Geometry shape skew on X axis canceled"
+msgstr "Geometry shape skew on X axis canceled"
+
+#: AppEditors/FlatCAMGeoEditor.py:1616 AppEditors/FlatCAMGrbEditor.py:6270
+msgid "Skew on Y axis ..."
+msgstr "Skew on Y axis ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:1626 AppEditors/FlatCAMGrbEditor.py:6279
+msgid "Geometry shape skew on Y axis done"
+msgstr "Geometry shape skew on Y axis done"
+
+#: AppEditors/FlatCAMGeoEditor.py:1630
+msgid "Geometry shape skew on Y axis canceled"
+msgstr "Geometry shape skew on Y axis canceled"
+
+#: AppEditors/FlatCAMGeoEditor.py:2007 AppEditors/FlatCAMGeoEditor.py:2078
+#: AppEditors/FlatCAMGrbEditor.py:1435 AppEditors/FlatCAMGrbEditor.py:1513
+msgid "Click on Center point ..."
+msgstr "Click on Center point ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2020 AppEditors/FlatCAMGrbEditor.py:1445
+msgid "Click on Perimeter point to complete ..."
+msgstr "Click on Perimeter point to complete ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2052
+msgid "Done. Adding Circle completed."
+msgstr "Done. Adding Circle completed."
+
+#: AppEditors/FlatCAMGeoEditor.py:2106 AppEditors/FlatCAMGrbEditor.py:1546
+msgid "Click on Start point ..."
+msgstr "Click on Start point ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2108 AppEditors/FlatCAMGrbEditor.py:1548
+msgid "Click on Point3 ..."
+msgstr "Click on Point3 ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2110 AppEditors/FlatCAMGrbEditor.py:1550
+msgid "Click on Stop point ..."
+msgstr "Click on Stop point ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2115 AppEditors/FlatCAMGrbEditor.py:1555
+msgid "Click on Stop point to complete ..."
+msgstr "Click on Stop point to complete ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2117 AppEditors/FlatCAMGrbEditor.py:1557
+msgid "Click on Point2 to complete ..."
+msgstr "Click on Point2 to complete ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2119 AppEditors/FlatCAMGrbEditor.py:1559
+msgid "Click on Center point to complete ..."
+msgstr "Click on Center point to complete ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2131
+#, python-format
+msgid "Direction: %s"
+msgstr "Direction: %s"
+
+#: AppEditors/FlatCAMGeoEditor.py:2145 AppEditors/FlatCAMGrbEditor.py:1585
+msgid "Mode: Start -> Stop -> Center. Click on Start point ..."
+msgstr "Mode: Start -> Stop -> Center. Click on Start point ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2148 AppEditors/FlatCAMGrbEditor.py:1588
+msgid "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..."
+msgstr "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2151 AppEditors/FlatCAMGrbEditor.py:1591
+msgid "Mode: Center -> Start -> Stop. Click on Center point ..."
+msgstr "Mode: Center -> Start -> Stop. Click on Center point ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2292
+msgid "Done. Arc completed."
+msgstr "Done. Arc completed."
+
+#: AppEditors/FlatCAMGeoEditor.py:2323 AppEditors/FlatCAMGeoEditor.py:2396
+msgid "Click on 1st corner ..."
+msgstr "Click on 1st corner ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2335
+msgid "Click on opposite corner to complete ..."
+msgstr "Click on opposite corner to complete ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2365
+msgid "Done. Rectangle completed."
+msgstr "Done. Rectangle completed."
+
+#: AppEditors/FlatCAMGeoEditor.py:2409 AppTools/ToolNCC.py:1734
+#: AppTools/ToolPaint.py:1627 Common.py:303
+msgid "Click on next Point or click right mouse button to complete ..."
+msgstr "Click on next Point or click right mouse button to complete ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2440
+msgid "Done. Polygon completed."
+msgstr "Done. Polygon completed."
+
+#: AppEditors/FlatCAMGeoEditor.py:2454 AppEditors/FlatCAMGeoEditor.py:2519
+#: AppEditors/FlatCAMGrbEditor.py:1111 AppEditors/FlatCAMGrbEditor.py:1322
+msgid "Backtracked one point ..."
+msgstr "Backtracked one point ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2497
+msgid "Done. Path completed."
+msgstr "Done. Path completed."
+
+#: AppEditors/FlatCAMGeoEditor.py:2656
+msgid "No shape selected. Select a shape to explode"
+msgstr "No shape selected. Select a shape to explode"
+
+#: AppEditors/FlatCAMGeoEditor.py:2689
+msgid "Done. Polygons exploded into lines."
+msgstr "Done. Polygons exploded into lines."
+
+#: AppEditors/FlatCAMGeoEditor.py:2721
+msgid "MOVE: No shape selected. Select a shape to move"
+msgstr "MOVE: No shape selected. Select a shape to move"
+
+#: AppEditors/FlatCAMGeoEditor.py:2724 AppEditors/FlatCAMGeoEditor.py:2744
+msgid " MOVE: Click on reference point ..."
+msgstr " MOVE: Click on reference point ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2729
+msgid " Click on destination point ..."
+msgstr " Click on destination point ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2769
+msgid "Done. Geometry(s) Move completed."
+msgstr "Done. Geometry(s) Move completed."
+
+#: AppEditors/FlatCAMGeoEditor.py:2902
+msgid "Done. Geometry(s) Copy completed."
+msgstr "Done. Geometry(s) Copy completed."
+
+#: AppEditors/FlatCAMGeoEditor.py:2933 AppEditors/FlatCAMGrbEditor.py:897
+msgid "Click on 1st point ..."
+msgstr "Click on 1st point ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2957
+msgid ""
+"Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. "
+"Error"
+msgstr ""
+"Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. "
+"Error"
+
+#: AppEditors/FlatCAMGeoEditor.py:2965
+msgid "No text to add."
+msgstr "No text to add."
+
+#: AppEditors/FlatCAMGeoEditor.py:2975
+msgid " Done. Adding Text completed."
+msgstr " Done. Adding Text completed."
+
+#: AppEditors/FlatCAMGeoEditor.py:3012
+msgid "Create buffer geometry ..."
+msgstr "Create buffer geometry ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:3047 AppEditors/FlatCAMGrbEditor.py:5138
+msgid "Done. Buffer Tool completed."
+msgstr "Done. Buffer Tool completed."
+
+#: AppEditors/FlatCAMGeoEditor.py:3075
+msgid "Done. Buffer Int Tool completed."
+msgstr "Done. Buffer Int Tool completed."
+
+#: AppEditors/FlatCAMGeoEditor.py:3103
+msgid "Done. Buffer Ext Tool completed."
+msgstr "Done. Buffer Ext Tool completed."
+
+#: AppEditors/FlatCAMGeoEditor.py:3152 AppEditors/FlatCAMGrbEditor.py:2151
+msgid "Select a shape to act as deletion area ..."
+msgstr "Select a shape to act as deletion area ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:3154 AppEditors/FlatCAMGeoEditor.py:3180
+#: AppEditors/FlatCAMGeoEditor.py:3186 AppEditors/FlatCAMGrbEditor.py:2153
+msgid "Click to pick-up the erase shape..."
+msgstr "Click to pick-up the erase shape..."
+
+#: AppEditors/FlatCAMGeoEditor.py:3190 AppEditors/FlatCAMGrbEditor.py:2212
+msgid "Click to erase ..."
+msgstr "Click to erase ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:3219 AppEditors/FlatCAMGrbEditor.py:2245
+msgid "Done. Eraser tool action completed."
+msgstr "Done. Eraser tool action completed."
+
+#: AppEditors/FlatCAMGeoEditor.py:3269
+msgid "Create Paint geometry ..."
+msgstr "Create Paint geometry ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:3282 AppEditors/FlatCAMGrbEditor.py:2408
+msgid "Shape transformations ..."
+msgstr "Shape transformations ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:3338
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:27
+msgid "Geometry Editor"
+msgstr "Geometry Editor"
+
+#: AppEditors/FlatCAMGeoEditor.py:3344 AppEditors/FlatCAMGrbEditor.py:2486
+#: AppEditors/FlatCAMGrbEditor.py:3943 AppGUI/ObjectUI.py:263
+#: AppGUI/ObjectUI.py:1599 AppGUI/ObjectUI.py:2456 AppTools/ToolCutOut.py:95
+msgid "Type"
+msgstr "Type"
+
+#: AppEditors/FlatCAMGeoEditor.py:3344 AppGUI/ObjectUI.py:218
+#: AppGUI/ObjectUI.py:742 AppGUI/ObjectUI.py:1535 AppGUI/ObjectUI.py:2365
+#: AppGUI/ObjectUI.py:2669 AppGUI/ObjectUI.py:2736
+#: AppTools/ToolCalibration.py:234 AppTools/ToolFiducials.py:73
+msgid "Name"
+msgstr "Name"
+
+#: AppEditors/FlatCAMGeoEditor.py:3596
+msgid "Ring"
+msgstr "Ring"
+
+#: AppEditors/FlatCAMGeoEditor.py:3598
+msgid "Line"
+msgstr "Line"
+
+#: AppEditors/FlatCAMGeoEditor.py:3600 AppGUI/MainGUI.py:1405
+#: AppGUI/ObjectUI.py:1371 AppGUI/ObjectUI.py:2205
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:218
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:328
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:292
+#: AppTools/ToolNCC.py:584 AppTools/ToolPaint.py:527
+msgid "Polygon"
+msgstr "Polygon"
+
+#: AppEditors/FlatCAMGeoEditor.py:3602
+msgid "Multi-Line"
+msgstr "Multi-Line"
+
+#: AppEditors/FlatCAMGeoEditor.py:3604
+msgid "Multi-Polygon"
+msgstr "Multi-Polygon"
+
+#: AppEditors/FlatCAMGeoEditor.py:3611
+msgid "Geo Elem"
+msgstr "Geo Elem"
+
+#: AppEditors/FlatCAMGeoEditor.py:4064
+msgid "Editing MultiGeo Geometry, tool"
+msgstr "Editing MultiGeo Geometry, tool"
+
+#: AppEditors/FlatCAMGeoEditor.py:4066
+msgid "with diameter"
+msgstr "with diameter"
+
+#: AppEditors/FlatCAMGeoEditor.py:4138
+#| msgid "Workspace enabled."
+msgid "Grid snap enabled."
+msgstr "Grid snap enabled."
+
+#: AppEditors/FlatCAMGeoEditor.py:4142
+#| msgid "Grid X snapping distance"
+msgid "Grid snap disabled."
+msgstr "Grid snap disabled."
+
+#: AppEditors/FlatCAMGeoEditor.py:4503 AppGUI/MainGUI.py:3000
+#: AppGUI/MainGUI.py:3046 AppGUI/MainGUI.py:3064 AppGUI/MainGUI.py:3208
+#: AppGUI/MainGUI.py:3247 AppGUI/MainGUI.py:3259 AppGUI/MainGUI.py:3276
+msgid "Click on target point."
+msgstr "Click on target point."
+
+#: AppEditors/FlatCAMGeoEditor.py:4817 AppEditors/FlatCAMGeoEditor.py:4852
+msgid "A selection of at least 2 geo items is required to do Intersection."
+msgstr "A selection of at least 2 geo items is required to do Intersection."
+
+#: AppEditors/FlatCAMGeoEditor.py:4938 AppEditors/FlatCAMGeoEditor.py:5042
+msgid ""
+"Negative buffer value is not accepted. Use Buffer interior to generate an "
+"'inside' shape"
+msgstr ""
+"Negative buffer value is not accepted. Use Buffer interior to generate an "
+"'inside' shape"
+
+#: AppEditors/FlatCAMGeoEditor.py:4948 AppEditors/FlatCAMGeoEditor.py:5001
+#: AppEditors/FlatCAMGeoEditor.py:5051
+msgid "Nothing selected for buffering."
+msgstr "Nothing selected for buffering."
+
+#: AppEditors/FlatCAMGeoEditor.py:4953 AppEditors/FlatCAMGeoEditor.py:5005
+#: AppEditors/FlatCAMGeoEditor.py:5056
+msgid "Invalid distance for buffering."
+msgstr "Invalid distance for buffering."
+
+#: AppEditors/FlatCAMGeoEditor.py:4977 AppEditors/FlatCAMGeoEditor.py:5076
+msgid "Failed, the result is empty. Choose a different buffer value."
+msgstr "Failed, the result is empty. Choose a different buffer value."
+
+#: AppEditors/FlatCAMGeoEditor.py:4988
+msgid "Full buffer geometry created."
+msgstr "Full buffer geometry created."
+
+#: AppEditors/FlatCAMGeoEditor.py:4994
+msgid "Negative buffer value is not accepted."
+msgstr "Negative buffer value is not accepted."
+
+#: AppEditors/FlatCAMGeoEditor.py:5025
+msgid "Failed, the result is empty. Choose a smaller buffer value."
+msgstr "Failed, the result is empty. Choose a smaller buffer value."
+
+#: AppEditors/FlatCAMGeoEditor.py:5035
+msgid "Interior buffer geometry created."
+msgstr "Interior buffer geometry created."
+
+#: AppEditors/FlatCAMGeoEditor.py:5086
+msgid "Exterior buffer geometry created."
+msgstr "Exterior buffer geometry created."
+
+#: AppEditors/FlatCAMGeoEditor.py:5092
+#, python-format
+msgid "Could not do Paint. Overlap value has to be less than 100%%."
+msgstr "Could not do Paint. Overlap value has to be less than 100%%."
+
+#: AppEditors/FlatCAMGeoEditor.py:5099
+msgid "Nothing selected for painting."
+msgstr "Nothing selected for painting."
+
+#: AppEditors/FlatCAMGeoEditor.py:5105
+msgid "Invalid value for"
+msgstr "Invalid value for"
+
+#: AppEditors/FlatCAMGeoEditor.py:5164
+msgid ""
+"Could not do Paint. Try a different combination of parameters. Or a "
+"different method of Paint"
+msgstr ""
+"Could not do Paint. Try a different combination of parameters. Or a "
+"different method of Paint"
+
+#: AppEditors/FlatCAMGeoEditor.py:5175
+msgid "Paint done."
+msgstr "Paint done."
+
+#: AppEditors/FlatCAMGrbEditor.py:211
+msgid "To add an Pad first select a aperture in Aperture Table"
+msgstr "To add an Pad first select a aperture in Aperture Table"
+
+#: AppEditors/FlatCAMGrbEditor.py:218 AppEditors/FlatCAMGrbEditor.py:418
+msgid "Aperture size is zero. It needs to be greater than zero."
+msgstr "Aperture size is zero. It needs to be greater than zero."
+
+#: AppEditors/FlatCAMGrbEditor.py:371 AppEditors/FlatCAMGrbEditor.py:684
+msgid ""
+"Incompatible aperture type. Select an aperture with type 'C', 'R' or 'O'."
+msgstr ""
+"Incompatible aperture type. Select an aperture with type 'C', 'R' or 'O'."
+
+#: AppEditors/FlatCAMGrbEditor.py:383
+msgid "Done. Adding Pad completed."
+msgstr "Done. Adding Pad completed."
+
+#: AppEditors/FlatCAMGrbEditor.py:410
+msgid "To add an Pad Array first select a aperture in Aperture Table"
+msgstr "To add an Pad Array first select a aperture in Aperture Table"
+
+#: AppEditors/FlatCAMGrbEditor.py:490
+msgid "Click on the Pad Circular Array Start position"
+msgstr "Click on the Pad Circular Array Start position"
+
+#: AppEditors/FlatCAMGrbEditor.py:710
+msgid "Too many Pads for the selected spacing angle."
+msgstr "Too many Pads for the selected spacing angle."
+
+#: AppEditors/FlatCAMGrbEditor.py:733
+msgid "Done. Pad Array added."
+msgstr "Done. Pad Array added."
+
+#: AppEditors/FlatCAMGrbEditor.py:758
+msgid "Select shape(s) and then click ..."
+msgstr "Select shape(s) and then click ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:770
+msgid "Failed. Nothing selected."
+msgstr "Failed. Nothing selected."
+
+#: AppEditors/FlatCAMGrbEditor.py:786
+msgid ""
+"Failed. Poligonize works only on geometries belonging to the same aperture."
+msgstr ""
+"Failed. Poligonize works only on geometries belonging to the same aperture."
+
+#: AppEditors/FlatCAMGrbEditor.py:840
+msgid "Done. Poligonize completed."
+msgstr "Done. Poligonize completed."
+
+#: AppEditors/FlatCAMGrbEditor.py:895 AppEditors/FlatCAMGrbEditor.py:1128
+#: AppEditors/FlatCAMGrbEditor.py:1152
+msgid "Corner Mode 1: 45 degrees ..."
+msgstr "Corner Mode 1: 45 degrees ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:907 AppEditors/FlatCAMGrbEditor.py:1237
+msgid "Click on next Point or click Right mouse button to complete ..."
+msgstr "Click on next Point or click Right mouse button to complete ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1116 AppEditors/FlatCAMGrbEditor.py:1149
+msgid "Corner Mode 2: Reverse 45 degrees ..."
+msgstr "Corner Mode 2: Reverse 45 degrees ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1119 AppEditors/FlatCAMGrbEditor.py:1146
+msgid "Corner Mode 3: 90 degrees ..."
+msgstr "Corner Mode 3: 90 degrees ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1122 AppEditors/FlatCAMGrbEditor.py:1143
+msgid "Corner Mode 4: Reverse 90 degrees ..."
+msgstr "Corner Mode 4: Reverse 90 degrees ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1125 AppEditors/FlatCAMGrbEditor.py:1140
+msgid "Corner Mode 5: Free angle ..."
+msgstr "Corner Mode 5: Free angle ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1182 AppEditors/FlatCAMGrbEditor.py:1358
+#: AppEditors/FlatCAMGrbEditor.py:1397
+msgid "Track Mode 1: 45 degrees ..."
+msgstr "Track Mode 1: 45 degrees ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1338 AppEditors/FlatCAMGrbEditor.py:1392
+msgid "Track Mode 2: Reverse 45 degrees ..."
+msgstr "Track Mode 2: Reverse 45 degrees ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1343 AppEditors/FlatCAMGrbEditor.py:1387
+msgid "Track Mode 3: 90 degrees ..."
+msgstr "Track Mode 3: 90 degrees ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1348 AppEditors/FlatCAMGrbEditor.py:1382
+msgid "Track Mode 4: Reverse 90 degrees ..."
+msgstr "Track Mode 4: Reverse 90 degrees ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1353 AppEditors/FlatCAMGrbEditor.py:1377
+msgid "Track Mode 5: Free angle ..."
+msgstr "Track Mode 5: Free angle ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1778
+msgid "Scale the selected Gerber apertures ..."
+msgstr "Scale the selected Gerber apertures ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1820
+msgid "Buffer the selected apertures ..."
+msgstr "Buffer the selected apertures ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1862
+msgid "Mark polygon areas in the edited Gerber ..."
+msgstr "Mark polygon areas in the edited Gerber ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1928
+msgid "Nothing selected to move"
+msgstr "Nothing selected to move"
+
+#: AppEditors/FlatCAMGrbEditor.py:2053
+msgid "Done. Apertures Move completed."
+msgstr "Done. Apertures Move completed."
+
+#: AppEditors/FlatCAMGrbEditor.py:2135
+msgid "Done. Apertures copied."
+msgstr "Done. Apertures copied."
+
+#: AppEditors/FlatCAMGrbEditor.py:2453 AppGUI/MainGUI.py:1436
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:27
+msgid "Gerber Editor"
+msgstr "Gerber Editor"
+
+#: AppEditors/FlatCAMGrbEditor.py:2473 AppGUI/ObjectUI.py:228
+#: AppTools/ToolProperties.py:159
+msgid "Apertures"
+msgstr "Apertures"
+
+#: AppEditors/FlatCAMGrbEditor.py:2475 AppGUI/ObjectUI.py:230
+msgid "Apertures Table for the Gerber Object."
+msgstr "Apertures Table for the Gerber Object."
+
+#: AppEditors/FlatCAMGrbEditor.py:2486 AppEditors/FlatCAMGrbEditor.py:3943
+#: AppGUI/ObjectUI.py:263
+msgid "Code"
+msgstr "Code"
+
+#: AppEditors/FlatCAMGrbEditor.py:2486 AppEditors/FlatCAMGrbEditor.py:3943
+#: AppGUI/ObjectUI.py:263
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:103
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43
+#: AppTools/ToolCopperThieving.py:261 AppTools/ToolCopperThieving.py:301
+#: AppTools/ToolFiducials.py:156
+msgid "Size"
+msgstr "Size"
+
+#: AppEditors/FlatCAMGrbEditor.py:2486 AppEditors/FlatCAMGrbEditor.py:3943
+#: AppGUI/ObjectUI.py:263
+msgid "Dim"
+msgstr "Dim"
+
+#: AppEditors/FlatCAMGrbEditor.py:2491 AppGUI/ObjectUI.py:267
+msgid "Index"
+msgstr "Index"
+
+#: AppEditors/FlatCAMGrbEditor.py:2493 AppEditors/FlatCAMGrbEditor.py:2522
+#: AppGUI/ObjectUI.py:269
+msgid "Aperture Code"
+msgstr "Aperture Code"
+
+#: AppEditors/FlatCAMGrbEditor.py:2495 AppGUI/ObjectUI.py:271
+msgid "Type of aperture: circular, rectangle, macros etc"
+msgstr "Type of aperture: circular, rectangle, macros etc"
+
+#: AppEditors/FlatCAMGrbEditor.py:2497 AppGUI/ObjectUI.py:273
+msgid "Aperture Size:"
+msgstr "Aperture Size:"
+
+#: AppEditors/FlatCAMGrbEditor.py:2499 AppGUI/ObjectUI.py:275
+msgid ""
+"Aperture Dimensions:\n"
+" - (width, height) for R, O type.\n"
+" - (dia, nVertices) for P type"
+msgstr ""
+"Aperture Dimensions:\n"
+" - (width, height) for R, O type.\n"
+" - (dia, nVertices) for P type"
+
+#: AppEditors/FlatCAMGrbEditor.py:2523
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:58
+msgid "Code for the new aperture"
+msgstr "Code for the new aperture"
+
+#: AppEditors/FlatCAMGrbEditor.py:2532
+msgid "Aperture Size"
+msgstr "Aperture Size"
+
+#: AppEditors/FlatCAMGrbEditor.py:2534
+msgid ""
+"Size for the new aperture.\n"
+"If aperture type is 'R' or 'O' then\n"
+"this value is automatically\n"
+"calculated as:\n"
+"sqrt(width**2 + height**2)"
+msgstr ""
+"Size for the new aperture.\n"
+"If aperture type is 'R' or 'O' then\n"
+"this value is automatically\n"
+"calculated as:\n"
+"sqrt(width**2 + height**2)"
+
+#: AppEditors/FlatCAMGrbEditor.py:2548
+msgid "Aperture Type"
+msgstr "Aperture Type"
+
+#: AppEditors/FlatCAMGrbEditor.py:2550
+msgid ""
+"Select the type of new aperture. Can be:\n"
+"C = circular\n"
+"R = rectangular\n"
+"O = oblong"
+msgstr ""
+"Select the type of new aperture. Can be:\n"
+"C = circular\n"
+"R = rectangular\n"
+"O = oblong"
+
+#: AppEditors/FlatCAMGrbEditor.py:2561
+msgid "Aperture Dim"
+msgstr "Aperture Dim"
+
+#: AppEditors/FlatCAMGrbEditor.py:2563
+msgid ""
+"Dimensions for the new aperture.\n"
+"Active only for rectangular apertures (type R).\n"
+"The format is (width, height)"
+msgstr ""
+"Dimensions for the new aperture.\n"
+"Active only for rectangular apertures (type R).\n"
+"The format is (width, height)"
+
+#: AppEditors/FlatCAMGrbEditor.py:2572
+msgid "Add/Delete Aperture"
+msgstr "Add/Delete Aperture"
+
+#: AppEditors/FlatCAMGrbEditor.py:2574
+msgid "Add/Delete an aperture in the aperture table"
+msgstr "Add/Delete an aperture in the aperture table"
+
+#: AppEditors/FlatCAMGrbEditor.py:2583
+msgid "Add a new aperture to the aperture list."
+msgstr "Add a new aperture to the aperture list."
+
+#: AppEditors/FlatCAMGrbEditor.py:2586 AppEditors/FlatCAMGrbEditor.py:2734
+#: AppGUI/MainGUI.py:753 AppGUI/MainGUI.py:1071 AppGUI/MainGUI.py:1487
+#: AppGUI/MainGUI.py:2063 AppGUI/MainGUI.py:4433 AppGUI/ObjectUI.py:1725
+#: AppObjects/FlatCAMGeometry.py:556 AppTools/ToolNCC.py:316
+#: AppTools/ToolNCC.py:637 AppTools/ToolPaint.py:298 AppTools/ToolPaint.py:681
+#: AppTools/ToolSolderPaste.py:128 AppTools/ToolSolderPaste.py:600
+#: App_Main.py:5595
+msgid "Delete"
+msgstr "Delete"
+
+#: AppEditors/FlatCAMGrbEditor.py:2588
+msgid "Delete a aperture in the aperture list"
+msgstr "Delete a aperture in the aperture list"
+
+#: AppEditors/FlatCAMGrbEditor.py:2605
+msgid "Buffer Aperture"
+msgstr "Buffer Aperture"
+
+#: AppEditors/FlatCAMGrbEditor.py:2607
+msgid "Buffer a aperture in the aperture list"
+msgstr "Buffer a aperture in the aperture list"
+
+#: AppEditors/FlatCAMGrbEditor.py:2620
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:194
+msgid "Buffer distance"
+msgstr "Buffer distance"
+
+#: AppEditors/FlatCAMGrbEditor.py:2621
+msgid "Buffer corner"
+msgstr "Buffer corner"
+
+#: AppEditors/FlatCAMGrbEditor.py:2623
+msgid ""
+"There are 3 types of corners:\n"
+" - 'Round': the corner is rounded.\n"
+" - 'Square': the corner is met in a sharp angle.\n"
+" - 'Beveled': the corner is a line that directly connects the features "
+"meeting in the corner"
+msgstr ""
+"There are 3 types of corners:\n"
+" - 'Round': the corner is rounded.\n"
+" - 'Square': the corner is met in a sharp angle.\n"
+" - 'Beveled': the corner is a line that directly connects the features "
+"meeting in the corner"
+
+#: AppEditors/FlatCAMGrbEditor.py:2638 AppGUI/MainGUI.py:1058
+#: AppGUI/MainGUI.py:1413 AppGUI/MainGUI.py:1456 AppGUI/MainGUI.py:2051
+#: AppGUI/MainGUI.py:4430
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:200
+#: AppTools/ToolTransform.py:29
+msgid "Buffer"
+msgstr "Buffer"
+
+#: AppEditors/FlatCAMGrbEditor.py:2653
+msgid "Scale Aperture"
+msgstr "Scale Aperture"
+
+#: AppEditors/FlatCAMGrbEditor.py:2655
+msgid "Scale a aperture in the aperture list"
+msgstr "Scale a aperture in the aperture list"
+
+#: AppEditors/FlatCAMGrbEditor.py:2663
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:209
+msgid "Scale factor"
+msgstr "Scale factor"
+
+#: AppEditors/FlatCAMGrbEditor.py:2665
+msgid ""
+"The factor by which to scale the selected aperture.\n"
+"Values can be between 0.0000 and 999.9999"
+msgstr ""
+"The factor by which to scale the selected aperture.\n"
+"Values can be between 0.0000 and 999.9999"
+
+#: AppEditors/FlatCAMGrbEditor.py:2693
+msgid "Mark polygons"
+msgstr "Mark polygons"
+
+#: AppEditors/FlatCAMGrbEditor.py:2695
+msgid "Mark the polygon areas."
+msgstr "Mark the polygon areas."
+
+#: AppEditors/FlatCAMGrbEditor.py:2703
+msgid "Area UPPER threshold"
+msgstr "Area UPPER threshold"
+
+#: AppEditors/FlatCAMGrbEditor.py:2705
+msgid ""
+"The threshold value, all areas less than this are marked.\n"
+"Can have a value between 0.0000 and 9999.9999"
+msgstr ""
+"The threshold value, all areas less than this are marked.\n"
+"Can have a value between 0.0000 and 9999.9999"
+
+#: AppEditors/FlatCAMGrbEditor.py:2712
+msgid "Area LOWER threshold"
+msgstr "Area LOWER threshold"
+
+#: AppEditors/FlatCAMGrbEditor.py:2714
+msgid ""
+"The threshold value, all areas more than this are marked.\n"
+"Can have a value between 0.0000 and 9999.9999"
+msgstr ""
+"The threshold value, all areas more than this are marked.\n"
+"Can have a value between 0.0000 and 9999.9999"
+
+#: AppEditors/FlatCAMGrbEditor.py:2728
+msgid "Mark"
+msgstr "Mark"
+
+#: AppEditors/FlatCAMGrbEditor.py:2730
+msgid "Mark the polygons that fit within limits."
+msgstr "Mark the polygons that fit within limits."
+
+#: AppEditors/FlatCAMGrbEditor.py:2736
+msgid "Delete all the marked polygons."
+msgstr "Delete all the marked polygons."
+
+#: AppEditors/FlatCAMGrbEditor.py:2742
+msgid "Clear all the markings."
+msgstr "Clear all the markings."
+
+#: AppEditors/FlatCAMGrbEditor.py:2762 AppGUI/MainGUI.py:1043
+#: AppGUI/MainGUI.py:2036 AppGUI/MainGUI.py:4430
+msgid "Add Pad Array"
+msgstr "Add Pad Array"
+
+#: AppEditors/FlatCAMGrbEditor.py:2764
+msgid "Add an array of pads (linear or circular array)"
+msgstr "Add an array of pads (linear or circular array)"
+
+#: AppEditors/FlatCAMGrbEditor.py:2770
+msgid ""
+"Select the type of pads array to create.\n"
+"It can be Linear X(Y) or Circular"
+msgstr ""
+"Select the type of pads array to create.\n"
+"It can be Linear X(Y) or Circular"
+
+#: AppEditors/FlatCAMGrbEditor.py:2781
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:95
+msgid "Nr of pads"
+msgstr "Nr of pads"
+
+#: AppEditors/FlatCAMGrbEditor.py:2783
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:97
+msgid "Specify how many pads to be in the array."
+msgstr "Specify how many pads to be in the array."
+
+#: AppEditors/FlatCAMGrbEditor.py:2832
+msgid ""
+"Angle at which the linear array is placed.\n"
+"The precision is of max 2 decimals.\n"
+"Min value is: -359.99 degrees.\n"
+"Max value is: 360.00 degrees."
+msgstr ""
+"Angle at which the linear array is placed.\n"
+"The precision is of max 2 decimals.\n"
+"Min value is: -359.99 degrees.\n"
+"Max value is: 360.00 degrees."
+
+#: AppEditors/FlatCAMGrbEditor.py:3326 AppEditors/FlatCAMGrbEditor.py:3330
+msgid "Aperture code value is missing or wrong format. Add it and retry."
+msgstr "Aperture code value is missing or wrong format. Add it and retry."
+
+#: AppEditors/FlatCAMGrbEditor.py:3366
+msgid ""
+"Aperture dimensions value is missing or wrong format. Add it in format "
+"(width, height) and retry."
+msgstr ""
+"Aperture dimensions value is missing or wrong format. Add it in format "
+"(width, height) and retry."
+
+#: AppEditors/FlatCAMGrbEditor.py:3379
+msgid "Aperture size value is missing or wrong format. Add it and retry."
+msgstr "Aperture size value is missing or wrong format. Add it and retry."
+
+#: AppEditors/FlatCAMGrbEditor.py:3390
+msgid "Aperture already in the aperture table."
+msgstr "Aperture already in the aperture table."
+
+#: AppEditors/FlatCAMGrbEditor.py:3397
+msgid "Added new aperture with code"
+msgstr "Added new aperture with code"
+
+#: AppEditors/FlatCAMGrbEditor.py:3429
+msgid " Select an aperture in Aperture Table"
+msgstr " Select an aperture in Aperture Table"
+
+#: AppEditors/FlatCAMGrbEditor.py:3437
+msgid "Select an aperture in Aperture Table -->"
+msgstr "Select an aperture in Aperture Table -->"
+
+#: AppEditors/FlatCAMGrbEditor.py:3451
+msgid "Deleted aperture with code"
+msgstr "Deleted aperture with code"
+
+#: AppEditors/FlatCAMGrbEditor.py:3519
+msgid "Dimensions need two float values separated by comma."
+msgstr "Dimensions need two float values separated by comma."
+
+#: AppEditors/FlatCAMGrbEditor.py:3528
+msgid "Dimensions edited."
+msgstr "Dimensions edited."
+
+#: AppEditors/FlatCAMGrbEditor.py:4058
+msgid "Loading Gerber into Editor"
+msgstr "Loading Gerber into Editor"
+
+#: AppEditors/FlatCAMGrbEditor.py:4186
+msgid "Setting up the UI"
+msgstr "Setting up the UI"
+
+#: AppEditors/FlatCAMGrbEditor.py:4187
+msgid "Adding geometry finished. Preparing the AppGUI"
+msgstr "Adding geometry finished. Preparing the AppGUI"
+
+#: AppEditors/FlatCAMGrbEditor.py:4196
+msgid "Finished loading the Gerber object into the editor."
+msgstr "Finished loading the Gerber object into the editor."
+
+#: AppEditors/FlatCAMGrbEditor.py:4335
+msgid ""
+"There are no Aperture definitions in the file. Aborting Gerber creation."
+msgstr ""
+"There are no Aperture definitions in the file. Aborting Gerber creation."
+
+#: AppEditors/FlatCAMGrbEditor.py:4338 AppObjects/AppObject.py:133
+#: AppObjects/FlatCAMGeometry.py:1775 AppParsers/ParseExcellon.py:896
+#: AppTools/ToolPcbWizard.py:432 App_Main.py:8369 App_Main.py:8433
+#: App_Main.py:8564 App_Main.py:8629 App_Main.py:9281
msgid "An internal error has occurred. See shell.\n"
msgstr "An internal error has occurred. See shell.\n"
-#: FlatCAMApp.py:2807
+#: AppEditors/FlatCAMGrbEditor.py:4345
+msgid "Creating Gerber."
+msgstr "Creating Gerber."
+
+#: AppEditors/FlatCAMGrbEditor.py:4354
+msgid "Done. Gerber editing finished."
+msgstr "Done. Gerber editing finished."
+
+#: AppEditors/FlatCAMGrbEditor.py:4372
+msgid "Cancelled. No aperture is selected"
+msgstr "Cancelled. No aperture is selected"
+
+#: AppEditors/FlatCAMGrbEditor.py:4527 App_Main.py:5921
+msgid "Coordinates copied to clipboard."
+msgstr "Coordinates copied to clipboard."
+
+#: AppEditors/FlatCAMGrbEditor.py:4970
+msgid "Failed. No aperture geometry is selected."
+msgstr "Failed. No aperture geometry is selected."
+
+#: AppEditors/FlatCAMGrbEditor.py:4979 AppEditors/FlatCAMGrbEditor.py:5250
+msgid "Done. Apertures geometry deleted."
+msgstr "Done. Apertures geometry deleted."
+
+#: AppEditors/FlatCAMGrbEditor.py:5122
+msgid "No aperture to buffer. Select at least one aperture and try again."
+msgstr "No aperture to buffer. Select at least one aperture and try again."
+
+#: AppEditors/FlatCAMGrbEditor.py:5134
+msgid "Failed."
+msgstr "Failed."
+
+#: AppEditors/FlatCAMGrbEditor.py:5153
+msgid "Scale factor value is missing or wrong format. Add it and retry."
+msgstr "Scale factor value is missing or wrong format. Add it and retry."
+
+#: AppEditors/FlatCAMGrbEditor.py:5185
+msgid "No aperture to scale. Select at least one aperture and try again."
+msgstr "No aperture to scale. Select at least one aperture and try again."
+
+#: AppEditors/FlatCAMGrbEditor.py:5201
+msgid "Done. Scale Tool completed."
+msgstr "Done. Scale Tool completed."
+
+#: AppEditors/FlatCAMGrbEditor.py:5239
+msgid "Polygons marked."
+msgstr "Polygons marked."
+
+#: AppEditors/FlatCAMGrbEditor.py:5242
+msgid "No polygons were marked. None fit within the limits."
+msgstr "No polygons were marked. None fit within the limits."
+
+#: AppEditors/FlatCAMGrbEditor.py:5966
+msgid "Rotation action was not executed."
+msgstr "Rotation action was not executed."
+
+#: AppEditors/FlatCAMGrbEditor.py:6037 App_Main.py:5354 App_Main.py:5402
+msgid "Flip action was not executed."
+msgstr "Flip action was not executed."
+
+#: AppEditors/FlatCAMGrbEditor.py:6094
+msgid "Skew action was not executed."
+msgstr "Skew action was not executed."
+
+#: AppEditors/FlatCAMGrbEditor.py:6159
+msgid "Scale action was not executed."
+msgstr "Scale action was not executed."
+
+#: AppEditors/FlatCAMGrbEditor.py:6202
+msgid "Offset action was not executed."
+msgstr "Offset action was not executed."
+
+#: AppEditors/FlatCAMGrbEditor.py:6252
+msgid "Geometry shape offset Y cancelled"
+msgstr "Geometry shape offset Y cancelled"
+
+#: AppEditors/FlatCAMGrbEditor.py:6267
+msgid "Geometry shape skew X cancelled"
+msgstr "Geometry shape skew X cancelled"
+
+#: AppEditors/FlatCAMGrbEditor.py:6282
+msgid "Geometry shape skew Y cancelled"
+msgstr "Geometry shape skew Y cancelled"
+
+#: AppEditors/FlatCAMTextEditor.py:74
+msgid "Print Preview"
+msgstr "Print Preview"
+
+#: AppEditors/FlatCAMTextEditor.py:75
+msgid "Open a OS standard Preview Print window."
+msgstr "Open a OS standard Preview Print window."
+
+#: AppEditors/FlatCAMTextEditor.py:78
+msgid "Print Code"
+msgstr "Print Code"
+
+#: AppEditors/FlatCAMTextEditor.py:79
+msgid "Open a OS standard Print window."
+msgstr "Open a OS standard Print window."
+
+#: AppEditors/FlatCAMTextEditor.py:81
+msgid "Find in Code"
+msgstr "Find in Code"
+
+#: AppEditors/FlatCAMTextEditor.py:82
+msgid "Will search and highlight in yellow the string in the Find box."
+msgstr "Will search and highlight in yellow the string in the Find box."
+
+#: AppEditors/FlatCAMTextEditor.py:86
+msgid "Find box. Enter here the strings to be searched in the text."
+msgstr "Find box. Enter here the strings to be searched in the text."
+
+#: AppEditors/FlatCAMTextEditor.py:88
+msgid "Replace With"
+msgstr "Replace With"
+
+#: AppEditors/FlatCAMTextEditor.py:89
+msgid ""
+"Will replace the string from the Find box with the one in the Replace box."
+msgstr ""
+"Will replace the string from the Find box with the one in the Replace box."
+
+#: AppEditors/FlatCAMTextEditor.py:93
+msgid "String to replace the one in the Find box throughout the text."
+msgstr "String to replace the one in the Find box throughout the text."
+
+#: AppEditors/FlatCAMTextEditor.py:95 AppGUI/ObjectUI.py:486
+#: AppGUI/ObjectUI.py:2349 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:54
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:88
+msgid "All"
+msgstr "All"
+
+#: AppEditors/FlatCAMTextEditor.py:96
+msgid ""
+"When checked it will replace all instances in the 'Find' box\n"
+"with the text in the 'Replace' box.."
+msgstr ""
+"When checked it will replace all instances in the 'Find' box\n"
+"with the text in the 'Replace' box.."
+
+#: AppEditors/FlatCAMTextEditor.py:99
+msgid "Copy All"
+msgstr "Copy All"
+
+#: AppEditors/FlatCAMTextEditor.py:100
+msgid "Will copy all the text in the Code Editor to the clipboard."
+msgstr "Will copy all the text in the Code Editor to the clipboard."
+
+#: AppEditors/FlatCAMTextEditor.py:103
+msgid "Open Code"
+msgstr "Open Code"
+
+#: AppEditors/FlatCAMTextEditor.py:104
+msgid "Will open a text file in the editor."
+msgstr "Will open a text file in the editor."
+
+#: AppEditors/FlatCAMTextEditor.py:106
+msgid "Save Code"
+msgstr "Save Code"
+
+#: AppEditors/FlatCAMTextEditor.py:107
+msgid "Will save the text in the editor into a file."
+msgstr "Will save the text in the editor into a file."
+
+#: AppEditors/FlatCAMTextEditor.py:109
+msgid "Run Code"
+msgstr "Run Code"
+
+#: AppEditors/FlatCAMTextEditor.py:110
+msgid "Will run the TCL commands found in the text file, one by one."
+msgstr "Will run the TCL commands found in the text file, one by one."
+
+#: AppEditors/FlatCAMTextEditor.py:184
+msgid "Open file"
+msgstr "Open file"
+
+#: AppEditors/FlatCAMTextEditor.py:215 AppEditors/FlatCAMTextEditor.py:220
+msgid "Export Code ..."
+msgstr "Export Code ..."
+
+#: AppEditors/FlatCAMTextEditor.py:272 AppObjects/FlatCAMCNCJob.py:955
+#: AppTools/ToolSolderPaste.py:1530
+msgid "No such file or directory"
+msgstr "No such file or directory"
+
+#: AppEditors/FlatCAMTextEditor.py:284 AppObjects/FlatCAMCNCJob.py:969
+msgid "Saved to"
+msgstr "Saved to"
+
+#: AppEditors/FlatCAMTextEditor.py:334
+msgid "Code Editor content copied to clipboard ..."
+msgstr "Code Editor content copied to clipboard ..."
+
+#: AppGUI/GUIElements.py:2540
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:180
+#: AppTools/ToolDblSided.py:173 AppTools/ToolDblSided.py:388
+#: AppTools/ToolFilm.py:202
+msgid "Reference"
+msgstr "Reference"
+
+#: AppGUI/GUIElements.py:2542
+msgid ""
+"The reference can be:\n"
+"- Absolute -> the reference point is point (0,0)\n"
+"- Relative -> the reference point is the mouse position before Jump"
+msgstr ""
+"The reference can be:\n"
+"- Absolute -> the reference point is point (0,0)\n"
+"- Relative -> the reference point is the mouse position before Jump"
+
+#: AppGUI/GUIElements.py:2547
+msgid "Abs"
+msgstr "Abs"
+
+#: AppGUI/GUIElements.py:2548
+msgid "Relative"
+msgstr "Relative"
+
+#: AppGUI/GUIElements.py:2558
+msgid "Location"
+msgstr "Location"
+
+#: AppGUI/GUIElements.py:2560
+msgid ""
+"The Location value is a tuple (x,y).\n"
+"If the reference is Absolute then the Jump will be at the position (x,y).\n"
+"If the reference is Relative then the Jump will be at the (x,y) distance\n"
+"from the current mouse location point."
+msgstr ""
+"The Location value is a tuple (x,y).\n"
+"If the reference is Absolute then the Jump will be at the position (x,y).\n"
+"If the reference is Relative then the Jump will be at the (x,y) distance\n"
+"from the current mouse location point."
+
+#: AppGUI/GUIElements.py:2600
+msgid "Save Log"
+msgstr "Save Log"
+
+#: AppGUI/GUIElements.py:2610 App_Main.py:2657 App_Main.py:3018
+msgid "Close"
+msgstr "Close"
+
+#: AppGUI/GUIElements.py:2619 AppTools/ToolShell.py:278
+msgid "Type >help< to get started"
+msgstr "Type >help< to get started"
+
+#: AppGUI/GUIElements.py:2990 AppGUI/GUIElements.py:2997
+msgid "Idle."
+msgstr "Idle."
+
+#: AppGUI/GUIElements.py:3030
+msgid "Application started ..."
+msgstr "Application started ..."
+
+#: AppGUI/GUIElements.py:3031
+msgid "Hello!"
+msgstr "Hello!"
+
+#: AppGUI/GUIElements.py:3078 AppGUI/MainGUI.py:201 AppGUI/MainGUI.py:900
+#: AppGUI/MainGUI.py:1893
+msgid "Run Script ..."
+msgstr "Run Script ..."
+
+#: AppGUI/GUIElements.py:3080 AppGUI/MainGUI.py:203
+msgid ""
+"Will run the opened Tcl Script thus\n"
+"enabling the automation of certain\n"
+"functions of FlatCAM."
+msgstr ""
+"Will run the opened Tcl Script thus\n"
+"enabling the automation of certain\n"
+"functions of FlatCAM."
+
+#: AppGUI/GUIElements.py:3089 AppGUI/MainGUI.py:129
+#: AppTools/ToolPcbWizard.py:62 AppTools/ToolPcbWizard.py:69
+msgid "Open"
+msgstr "Open"
+
+#: AppGUI/GUIElements.py:3093
+msgid "Open Project ..."
+msgstr "Open Project ..."
+
+#: AppGUI/GUIElements.py:3099 AppGUI/MainGUI.py:140
+msgid "Open &Gerber ...\tCtrl+G"
+msgstr "Open &Gerber ...\tCtrl+G"
+
+#: AppGUI/GUIElements.py:3104 AppGUI/MainGUI.py:145
+msgid "Open &Excellon ...\tCtrl+E"
+msgstr "Open &Excellon ...\tCtrl+E"
+
+#: AppGUI/GUIElements.py:3109 AppGUI/MainGUI.py:150
+msgid "Open G-&Code ..."
+msgstr "Open G-&Code ..."
+
+#: AppGUI/GUIElements.py:3119
+msgid "Exit"
+msgstr "Exit"
+
+#: AppGUI/MainGUI.py:78 AppGUI/MainGUI.py:80 AppGUI/MainGUI.py:1366
+msgid "Toggle Panel"
+msgstr "Toggle Panel"
+
+#: AppGUI/MainGUI.py:90
+msgid "File"
+msgstr "File"
+
+#: AppGUI/MainGUI.py:95
+msgid "&New Project ...\tCtrl+N"
+msgstr "&New Project ...\tCtrl+N"
+
+#: AppGUI/MainGUI.py:97
+msgid "Will create a new, blank project"
+msgstr "Will create a new, blank project"
+
+#: AppGUI/MainGUI.py:102
+msgid "&New"
+msgstr "&New"
+
+#: AppGUI/MainGUI.py:106
+msgid "Geometry\tN"
+msgstr "Geometry\tN"
+
+#: AppGUI/MainGUI.py:108
+msgid "Will create a new, empty Geometry Object."
+msgstr "Will create a new, empty Geometry Object."
+
+#: AppGUI/MainGUI.py:111
+msgid "Gerber\tB"
+msgstr "Gerber\tB"
+
+#: AppGUI/MainGUI.py:113
+msgid "Will create a new, empty Gerber Object."
+msgstr "Will create a new, empty Gerber Object."
+
+#: AppGUI/MainGUI.py:116
+msgid "Excellon\tL"
+msgstr "Excellon\tL"
+
+#: AppGUI/MainGUI.py:118
+msgid "Will create a new, empty Excellon Object."
+msgstr "Will create a new, empty Excellon Object."
+
+#: AppGUI/MainGUI.py:123
+msgid "Document\tD"
+msgstr "Document\tD"
+
+#: AppGUI/MainGUI.py:125
+msgid "Will create a new, empty Document Object."
+msgstr "Will create a new, empty Document Object."
+
+#: AppGUI/MainGUI.py:134
+msgid "Open &Project ..."
+msgstr "Open &Project ..."
+
+#: AppGUI/MainGUI.py:157
+msgid "Open Config ..."
+msgstr "Open Config ..."
+
+#: AppGUI/MainGUI.py:162
+msgid "Recent projects"
+msgstr "Recent projects"
+
+#: AppGUI/MainGUI.py:164
+msgid "Recent files"
+msgstr "Recent files"
+
+#: AppGUI/MainGUI.py:167 AppGUI/MainGUI.py:755 AppGUI/MainGUI.py:1339
+msgid "Save"
+msgstr "Save"
+
+#: AppGUI/MainGUI.py:171
+msgid "&Save Project ...\tCtrl+S"
+msgstr "&Save Project ...\tCtrl+S"
+
+#: AppGUI/MainGUI.py:176
+msgid "Save Project &As ...\tCtrl+Shift+S"
+msgstr "Save Project &As ...\tCtrl+Shift+S"
+
+#: AppGUI/MainGUI.py:191
+msgid "Scripting"
+msgstr "Scripting"
+
+#: AppGUI/MainGUI.py:195 AppGUI/MainGUI.py:896 AppGUI/MainGUI.py:1889
+msgid "New Script ..."
+msgstr "New Script ..."
+
+#: AppGUI/MainGUI.py:197 AppGUI/MainGUI.py:898 AppGUI/MainGUI.py:1891
+msgid "Open Script ..."
+msgstr "Open Script ..."
+
+#: AppGUI/MainGUI.py:199
+msgid "Open Example ..."
+msgstr "Open Example ..."
+
+#: AppGUI/MainGUI.py:218
+msgid "Import"
+msgstr "Import"
+
+#: AppGUI/MainGUI.py:220
+msgid "&SVG as Geometry Object ..."
+msgstr "&SVG as Geometry Object ..."
+
+#: AppGUI/MainGUI.py:223
+msgid "&SVG as Gerber Object ..."
+msgstr "&SVG as Gerber Object ..."
+
+#: AppGUI/MainGUI.py:228
+msgid "&DXF as Geometry Object ..."
+msgstr "&DXF as Geometry Object ..."
+
+#: AppGUI/MainGUI.py:231
+msgid "&DXF as Gerber Object ..."
+msgstr "&DXF as Gerber Object ..."
+
+#: AppGUI/MainGUI.py:235
+msgid "HPGL2 as Geometry Object ..."
+msgstr "HPGL2 as Geometry Object ..."
+
+#: AppGUI/MainGUI.py:241
+msgid "Export"
+msgstr "Export"
+
+#: AppGUI/MainGUI.py:245
+msgid "Export &SVG ..."
+msgstr "Export &SVG ..."
+
+#: AppGUI/MainGUI.py:249
+msgid "Export DXF ..."
+msgstr "Export DXF ..."
+
+#: AppGUI/MainGUI.py:255
+msgid "Export &PNG ..."
+msgstr "Export &PNG ..."
+
+#: AppGUI/MainGUI.py:257
+msgid ""
+"Will export an image in PNG format,\n"
+"the saved image will contain the visual \n"
+"information currently in FlatCAM Plot Area."
+msgstr ""
+"Will export an image in PNG format,\n"
+"the saved image will contain the visual \n"
+"information currently in FlatCAM Plot Area."
+
+#: AppGUI/MainGUI.py:266
+msgid "Export &Excellon ..."
+msgstr "Export &Excellon ..."
+
+#: AppGUI/MainGUI.py:268
+msgid ""
+"Will export an Excellon Object as Excellon file,\n"
+"the coordinates format, the file units and zeros\n"
+"are set in Preferences -> Excellon Export."
+msgstr ""
+"Will export an Excellon Object as Excellon file,\n"
+"the coordinates format, the file units and zeros\n"
+"are set in Preferences -> Excellon Export."
+
+#: AppGUI/MainGUI.py:275
+msgid "Export &Gerber ..."
+msgstr "Export &Gerber ..."
+
+#: AppGUI/MainGUI.py:277
+msgid ""
+"Will export an Gerber Object as Gerber file,\n"
+"the coordinates format, the file units and zeros\n"
+"are set in Preferences -> Gerber Export."
+msgstr ""
+"Will export an Gerber Object as Gerber file,\n"
+"the coordinates format, the file units and zeros\n"
+"are set in Preferences -> Gerber Export."
+
+#: AppGUI/MainGUI.py:287
+msgid "Backup"
+msgstr "Backup"
+
+#: AppGUI/MainGUI.py:292
+msgid "Import Preferences from file ..."
+msgstr "Import Preferences from file ..."
+
+#: AppGUI/MainGUI.py:298
+msgid "Export Preferences to file ..."
+msgstr "Export Preferences to file ..."
+
+#: AppGUI/MainGUI.py:306 AppGUI/preferences/PreferencesUIManager.py:1176
+msgid "Save Preferences"
+msgstr "Save Preferences"
+
+#: AppGUI/MainGUI.py:312 AppGUI/MainGUI.py:4022
+msgid "Print (PDF)"
+msgstr "Print (PDF)"
+
+#: AppGUI/MainGUI.py:320
+msgid "E&xit"
+msgstr "E&xit"
+
+#: AppGUI/MainGUI.py:328 AppGUI/MainGUI.py:749 AppGUI/MainGUI.py:1489
+msgid "Edit"
+msgstr "Edit"
+
+#: AppGUI/MainGUI.py:332
+msgid "Edit Object\tE"
+msgstr "Edit Object\tE"
+
+#: AppGUI/MainGUI.py:334
+msgid "Close Editor\tCtrl+S"
+msgstr "Close Editor\tCtrl+S"
+
+#: AppGUI/MainGUI.py:343
+msgid "Conversion"
+msgstr "Conversion"
+
+#: AppGUI/MainGUI.py:345
+msgid "&Join Geo/Gerber/Exc -> Geo"
+msgstr "&Join Geo/Gerber/Exc -> Geo"
+
+#: AppGUI/MainGUI.py:347
+msgid ""
+"Merge a selection of objects, which can be of type:\n"
+"- Gerber\n"
+"- Excellon\n"
+"- Geometry\n"
+"into a new combo Geometry object."
+msgstr ""
+"Merge a selection of objects, which can be of type:\n"
+"- Gerber\n"
+"- Excellon\n"
+"- Geometry\n"
+"into a new combo Geometry object."
+
+#: AppGUI/MainGUI.py:354
+msgid "Join Excellon(s) -> Excellon"
+msgstr "Join Excellon(s) -> Excellon"
+
+#: AppGUI/MainGUI.py:356
+msgid "Merge a selection of Excellon objects into a new combo Excellon object."
+msgstr ""
+"Merge a selection of Excellon objects into a new combo Excellon object."
+
+#: AppGUI/MainGUI.py:359
+msgid "Join Gerber(s) -> Gerber"
+msgstr "Join Gerber(s) -> Gerber"
+
+#: AppGUI/MainGUI.py:361
+msgid "Merge a selection of Gerber objects into a new combo Gerber object."
+msgstr "Merge a selection of Gerber objects into a new combo Gerber object."
+
+#: AppGUI/MainGUI.py:366
+msgid "Convert Single to MultiGeo"
+msgstr "Convert Single to MultiGeo"
+
+#: AppGUI/MainGUI.py:368
+msgid ""
+"Will convert a Geometry object from single_geometry type\n"
+"to a multi_geometry type."
+msgstr ""
+"Will convert a Geometry object from single_geometry type\n"
+"to a multi_geometry type."
+
+#: AppGUI/MainGUI.py:372
+msgid "Convert Multi to SingleGeo"
+msgstr "Convert Multi to SingleGeo"
+
+#: AppGUI/MainGUI.py:374
+msgid ""
+"Will convert a Geometry object from multi_geometry type\n"
+"to a single_geometry type."
+msgstr ""
+"Will convert a Geometry object from multi_geometry type\n"
+"to a single_geometry type."
+
+#: AppGUI/MainGUI.py:381
+msgid "Convert Any to Geo"
+msgstr "Convert Any to Geo"
+
+#: AppGUI/MainGUI.py:384
+msgid "Convert Any to Gerber"
+msgstr "Convert Any to Gerber"
+
+#: AppGUI/MainGUI.py:390
+msgid "&Copy\tCtrl+C"
+msgstr "&Copy\tCtrl+C"
+
+#: AppGUI/MainGUI.py:395
+msgid "&Delete\tDEL"
+msgstr "&Delete\tDEL"
+
+#: AppGUI/MainGUI.py:400
+msgid "Se&t Origin\tO"
+msgstr "Se&t Origin\tO"
+
+#: AppGUI/MainGUI.py:402
+msgid "Move to Origin\tShift+O"
+msgstr "Move to Origin\tShift+O"
+
+#: AppGUI/MainGUI.py:405
+msgid "Jump to Location\tJ"
+msgstr "Jump to Location\tJ"
+
+#: AppGUI/MainGUI.py:407
+msgid "Locate in Object\tShift+J"
+msgstr "Locate in Object\tShift+J"
+
+#: AppGUI/MainGUI.py:412
+msgid "Toggle Units\tQ"
+msgstr "Toggle Units\tQ"
+
+#: AppGUI/MainGUI.py:414
+msgid "&Select All\tCtrl+A"
+msgstr "&Select All\tCtrl+A"
+
+#: AppGUI/MainGUI.py:419
+msgid "&Preferences\tShift+P"
+msgstr "&Preferences\tShift+P"
+
+#: AppGUI/MainGUI.py:425 AppTools/ToolProperties.py:155
+msgid "Options"
+msgstr "Options"
+
+#: AppGUI/MainGUI.py:427
+msgid "&Rotate Selection\tShift+(R)"
+msgstr "&Rotate Selection\tShift+(R)"
+
+#: AppGUI/MainGUI.py:432
+msgid "&Skew on X axis\tShift+X"
+msgstr "&Skew on X axis\tShift+X"
+
+#: AppGUI/MainGUI.py:434
+msgid "S&kew on Y axis\tShift+Y"
+msgstr "S&kew on Y axis\tShift+Y"
+
+#: AppGUI/MainGUI.py:439
+msgid "Flip on &X axis\tX"
+msgstr "Flip on &X axis\tX"
+
+#: AppGUI/MainGUI.py:441
+msgid "Flip on &Y axis\tY"
+msgstr "Flip on &Y axis\tY"
+
+#: AppGUI/MainGUI.py:446
+msgid "View source\tAlt+S"
+msgstr "View source\tAlt+S"
+
+#: AppGUI/MainGUI.py:448
+msgid "Tools DataBase\tCtrl+D"
+msgstr "Tools DataBase\tCtrl+D"
+
+#: AppGUI/MainGUI.py:455 AppGUI/MainGUI.py:1386
+msgid "View"
+msgstr "View"
+
+#: AppGUI/MainGUI.py:457
+msgid "Enable all plots\tAlt+1"
+msgstr "Enable all plots\tAlt+1"
+
+#: AppGUI/MainGUI.py:459
+msgid "Disable all plots\tAlt+2"
+msgstr "Disable all plots\tAlt+2"
+
+#: AppGUI/MainGUI.py:461
+msgid "Disable non-selected\tAlt+3"
+msgstr "Disable non-selected\tAlt+3"
+
+#: AppGUI/MainGUI.py:465
+msgid "&Zoom Fit\tV"
+msgstr "&Zoom Fit\tV"
+
+#: AppGUI/MainGUI.py:467
+msgid "&Zoom In\t="
+msgstr "&Zoom In\t="
+
+#: AppGUI/MainGUI.py:469
+msgid "&Zoom Out\t-"
+msgstr "&Zoom Out\t-"
+
+#: AppGUI/MainGUI.py:474
+msgid "Redraw All\tF5"
+msgstr "Redraw All\tF5"
+
+#: AppGUI/MainGUI.py:478
+msgid "Toggle Code Editor\tShift+E"
+msgstr "Toggle Code Editor\tShift+E"
+
+#: AppGUI/MainGUI.py:481
+msgid "&Toggle FullScreen\tAlt+F10"
+msgstr "&Toggle FullScreen\tAlt+F10"
+
+#: AppGUI/MainGUI.py:483
+msgid "&Toggle Plot Area\tCtrl+F10"
+msgstr "&Toggle Plot Area\tCtrl+F10"
+
+#: AppGUI/MainGUI.py:485
+msgid "&Toggle Project/Sel/Tool\t`"
+msgstr "&Toggle Project/Sel/Tool\t`"
+
+#: AppGUI/MainGUI.py:489
+msgid "&Toggle Grid Snap\tG"
+msgstr "&Toggle Grid Snap\tG"
+
+#: AppGUI/MainGUI.py:491
+msgid "&Toggle Grid Lines\tAlt+G"
+msgstr "&Toggle Grid Lines\tAlt+G"
+
+#: AppGUI/MainGUI.py:493
+msgid "&Toggle Axis\tShift+G"
+msgstr "&Toggle Axis\tShift+G"
+
+#: AppGUI/MainGUI.py:495
+msgid "Toggle Workspace\tShift+W"
+msgstr "Toggle Workspace\tShift+W"
+
+#: AppGUI/MainGUI.py:497
+msgid "Toggle HUD\tAlt+M"
+msgstr "Toggle HUD\tAlt+M"
+
+#: AppGUI/MainGUI.py:502
+msgid "Objects"
+msgstr "Objects"
+
+#: AppGUI/MainGUI.py:505 AppGUI/MainGUI.py:4020
+#: AppObjects/ObjectCollection.py:1120 AppObjects/ObjectCollection.py:1167
+msgid "Select All"
+msgstr "Select All"
+
+#: AppGUI/MainGUI.py:507 AppObjects/ObjectCollection.py:1124
+#: AppObjects/ObjectCollection.py:1171
+msgid "Deselect All"
+msgstr "Deselect All"
+
+#: AppGUI/MainGUI.py:516
+msgid "&Command Line\tS"
+msgstr "&Command Line\tS"
+
+#: AppGUI/MainGUI.py:521
+msgid "Help"
+msgstr "Help"
+
+#: AppGUI/MainGUI.py:523
+msgid "Online Help\tF1"
+msgstr "Online Help\tF1"
+
+#: AppGUI/MainGUI.py:526 Bookmark.py:293
+msgid "Bookmarks"
+msgstr "Bookmarks"
+
+#: AppGUI/MainGUI.py:529 App_Main.py:2989 App_Main.py:2998
+msgid "Bookmarks Manager"
+msgstr "Bookmarks Manager"
+
+#: AppGUI/MainGUI.py:533
+msgid "Report a bug"
+msgstr "Report a bug"
+
+#: AppGUI/MainGUI.py:536
+msgid "Excellon Specification"
+msgstr "Excellon Specification"
+
+#: AppGUI/MainGUI.py:538
+msgid "Gerber Specification"
+msgstr "Gerber Specification"
+
+#: AppGUI/MainGUI.py:543
+msgid "Shortcuts List\tF3"
+msgstr "Shortcuts List\tF3"
+
+#: AppGUI/MainGUI.py:545
+msgid "YouTube Channel\tF4"
+msgstr "YouTube Channel\tF4"
+
+#: AppGUI/MainGUI.py:547 App_Main.py:2624
+msgid "About FlatCAM"
+msgstr "About FlatCAM"
+
+#: AppGUI/MainGUI.py:556
+msgid "Add Circle\tO"
+msgstr "Add Circle\tO"
+
+#: AppGUI/MainGUI.py:559
+msgid "Add Arc\tA"
+msgstr "Add Arc\tA"
+
+#: AppGUI/MainGUI.py:562
+msgid "Add Rectangle\tR"
+msgstr "Add Rectangle\tR"
+
+#: AppGUI/MainGUI.py:565
+msgid "Add Polygon\tN"
+msgstr "Add Polygon\tN"
+
+#: AppGUI/MainGUI.py:568
+msgid "Add Path\tP"
+msgstr "Add Path\tP"
+
+#: AppGUI/MainGUI.py:571
+msgid "Add Text\tT"
+msgstr "Add Text\tT"
+
+#: AppGUI/MainGUI.py:574
+msgid "Polygon Union\tU"
+msgstr "Polygon Union\tU"
+
+#: AppGUI/MainGUI.py:576
+msgid "Polygon Intersection\tE"
+msgstr "Polygon Intersection\tE"
+
+#: AppGUI/MainGUI.py:578
+msgid "Polygon Subtraction\tS"
+msgstr "Polygon Subtraction\tS"
+
+#: AppGUI/MainGUI.py:582
+msgid "Cut Path\tX"
+msgstr "Cut Path\tX"
+
+#: AppGUI/MainGUI.py:586
+msgid "Copy Geom\tC"
+msgstr "Copy Geom\tC"
+
+#: AppGUI/MainGUI.py:588
+msgid "Delete Shape\tDEL"
+msgstr "Delete Shape\tDEL"
+
+#: AppGUI/MainGUI.py:592 AppGUI/MainGUI.py:679
+msgid "Move\tM"
+msgstr "Move\tM"
+
+#: AppGUI/MainGUI.py:594
+msgid "Buffer Tool\tB"
+msgstr "Buffer Tool\tB"
+
+#: AppGUI/MainGUI.py:597
+msgid "Paint Tool\tI"
+msgstr "Paint Tool\tI"
+
+#: AppGUI/MainGUI.py:600
+msgid "Transform Tool\tAlt+R"
+msgstr "Transform Tool\tAlt+R"
+
+#: AppGUI/MainGUI.py:604
+msgid "Toggle Corner Snap\tK"
+msgstr "Toggle Corner Snap\tK"
+
+#: AppGUI/MainGUI.py:610
+msgid ">Excellon Editor<"
+msgstr ">Excellon Editor<"
+
+#: AppGUI/MainGUI.py:614
+msgid "Add Drill Array\tA"
+msgstr "Add Drill Array\tA"
+
+#: AppGUI/MainGUI.py:616
+msgid "Add Drill\tD"
+msgstr "Add Drill\tD"
+
+#: AppGUI/MainGUI.py:620
+msgid "Add Slot Array\tQ"
+msgstr "Add Slot Array\tQ"
+
+#: AppGUI/MainGUI.py:622
+msgid "Add Slot\tW"
+msgstr "Add Slot\tW"
+
+#: AppGUI/MainGUI.py:626
+msgid "Resize Drill(S)\tR"
+msgstr "Resize Drill(S)\tR"
+
+#: AppGUI/MainGUI.py:629 AppGUI/MainGUI.py:673
+msgid "Copy\tC"
+msgstr "Copy\tC"
+
+#: AppGUI/MainGUI.py:631 AppGUI/MainGUI.py:675
+msgid "Delete\tDEL"
+msgstr "Delete\tDEL"
+
+#: AppGUI/MainGUI.py:636
+msgid "Move Drill(s)\tM"
+msgstr "Move Drill(s)\tM"
+
+#: AppGUI/MainGUI.py:641
+msgid ">Gerber Editor<"
+msgstr ">Gerber Editor<"
+
+#: AppGUI/MainGUI.py:645
+msgid "Add Pad\tP"
+msgstr "Add Pad\tP"
+
+#: AppGUI/MainGUI.py:647
+msgid "Add Pad Array\tA"
+msgstr "Add Pad Array\tA"
+
+#: AppGUI/MainGUI.py:649
+msgid "Add Track\tT"
+msgstr "Add Track\tT"
+
+#: AppGUI/MainGUI.py:651
+msgid "Add Region\tN"
+msgstr "Add Region\tN"
+
+#: AppGUI/MainGUI.py:655
+msgid "Poligonize\tAlt+N"
+msgstr "Poligonize\tAlt+N"
+
+#: AppGUI/MainGUI.py:657
+msgid "Add SemiDisc\tE"
+msgstr "Add SemiDisc\tE"
+
+#: AppGUI/MainGUI.py:659
+msgid "Add Disc\tD"
+msgstr "Add Disc\tD"
+
+#: AppGUI/MainGUI.py:661
+msgid "Buffer\tB"
+msgstr "Buffer\tB"
+
+#: AppGUI/MainGUI.py:663
+msgid "Scale\tS"
+msgstr "Scale\tS"
+
+#: AppGUI/MainGUI.py:665
+msgid "Mark Area\tAlt+A"
+msgstr "Mark Area\tAlt+A"
+
+#: AppGUI/MainGUI.py:667
+msgid "Eraser\tCtrl+E"
+msgstr "Eraser\tCtrl+E"
+
+#: AppGUI/MainGUI.py:669
+msgid "Transform\tAlt+R"
+msgstr "Transform\tAlt+R"
+
+#: AppGUI/MainGUI.py:696
+msgid "Enable Plot"
+msgstr "Enable Plot"
+
+#: AppGUI/MainGUI.py:698
+msgid "Disable Plot"
+msgstr "Disable Plot"
+
+#: AppGUI/MainGUI.py:702
+msgid "Set Color"
+msgstr "Set Color"
+
+#: AppGUI/MainGUI.py:705 App_Main.py:9548
+msgid "Red"
+msgstr "Red"
+
+#: AppGUI/MainGUI.py:708 App_Main.py:9550
+msgid "Blue"
+msgstr "Blue"
+
+#: AppGUI/MainGUI.py:711 App_Main.py:9553
+msgid "Yellow"
+msgstr "Yellow"
+
+#: AppGUI/MainGUI.py:714 App_Main.py:9555
+msgid "Green"
+msgstr "Green"
+
+#: AppGUI/MainGUI.py:717 App_Main.py:9557
+msgid "Purple"
+msgstr "Purple"
+
+#: AppGUI/MainGUI.py:720 App_Main.py:9559
+msgid "Brown"
+msgstr "Brown"
+
+#: AppGUI/MainGUI.py:723 App_Main.py:9561 App_Main.py:9617
+msgid "White"
+msgstr "White"
+
+#: AppGUI/MainGUI.py:726 App_Main.py:9563
+msgid "Black"
+msgstr "Black"
+
+#: AppGUI/MainGUI.py:731 AppTools/ToolEtchCompensation.py:110 App_Main.py:9566
+msgid "Custom"
+msgstr "Custom"
+
+#: AppGUI/MainGUI.py:736 App_Main.py:9600
+msgid "Opacity"
+msgstr "Opacity"
+
+#: AppGUI/MainGUI.py:739 App_Main.py:9576
+msgid "Default"
+msgstr "Default"
+
+#: AppGUI/MainGUI.py:744
+msgid "Generate CNC"
+msgstr "Generate CNC"
+
+#: AppGUI/MainGUI.py:746
+msgid "View Source"
+msgstr "View Source"
+
+#: AppGUI/MainGUI.py:751 AppGUI/MainGUI.py:856 AppGUI/MainGUI.py:1069
+#: AppGUI/MainGUI.py:1485 AppGUI/MainGUI.py:1852 AppGUI/MainGUI.py:2061
+#: AppGUI/MainGUI.py:4430 AppGUI/ObjectUI.py:1719
+#: AppObjects/FlatCAMGeometry.py:553 AppTools/ToolPanelize.py:551
+#: AppTools/ToolPanelize.py:578 AppTools/ToolPanelize.py:671
+#: AppTools/ToolPanelize.py:700 AppTools/ToolPanelize.py:762
+msgid "Copy"
+msgstr "Copy"
+
+#: AppGUI/MainGUI.py:759 AppGUI/MainGUI.py:1498 AppTools/ToolProperties.py:31
+msgid "Properties"
+msgstr "Properties"
+
+#: AppGUI/MainGUI.py:788
+msgid "File Toolbar"
+msgstr "File Toolbar"
+
+#: AppGUI/MainGUI.py:792
+msgid "Edit Toolbar"
+msgstr "Edit Toolbar"
+
+#: AppGUI/MainGUI.py:796
+msgid "View Toolbar"
+msgstr "View Toolbar"
+
+#: AppGUI/MainGUI.py:800
+msgid "Shell Toolbar"
+msgstr "Shell Toolbar"
+
+#: AppGUI/MainGUI.py:804
+msgid "Tools Toolbar"
+msgstr "Tools Toolbar"
+
+#: AppGUI/MainGUI.py:808
+msgid "Excellon Editor Toolbar"
+msgstr "Excellon Editor Toolbar"
+
+#: AppGUI/MainGUI.py:814
+msgid "Geometry Editor Toolbar"
+msgstr "Geometry Editor Toolbar"
+
+#: AppGUI/MainGUI.py:818
+msgid "Gerber Editor Toolbar"
+msgstr "Gerber Editor Toolbar"
+
+#: AppGUI/MainGUI.py:822
+msgid "Grid Toolbar"
+msgstr "Grid Toolbar"
+
+#: AppGUI/MainGUI.py:836 AppGUI/MainGUI.py:1831 App_Main.py:6513
+#: App_Main.py:6517
+msgid "Open Gerber"
+msgstr "Open Gerber"
+
+#: AppGUI/MainGUI.py:838 AppGUI/MainGUI.py:1833 App_Main.py:6551
+#: App_Main.py:6555
+msgid "Open Excellon"
+msgstr "Open Excellon"
+
+#: AppGUI/MainGUI.py:841 AppGUI/MainGUI.py:1836
+msgid "Open project"
+msgstr "Open project"
+
+#: AppGUI/MainGUI.py:843 AppGUI/MainGUI.py:1838
+msgid "Save project"
+msgstr "Save project"
+
+#: AppGUI/MainGUI.py:851 AppGUI/MainGUI.py:1847
+msgid "Save Object and close the Editor"
+msgstr "Save Object and close the Editor"
+
+#: AppGUI/MainGUI.py:858 AppGUI/MainGUI.py:1854
+msgid "&Delete"
+msgstr "&Delete"
+
+#: AppGUI/MainGUI.py:861 AppGUI/MainGUI.py:1857 AppGUI/MainGUI.py:4021
+#: AppGUI/MainGUI.py:4227 AppTools/ToolDistance.py:35
+#: AppTools/ToolDistance.py:197
+msgid "Distance Tool"
+msgstr "Distance Tool"
+
+#: AppGUI/MainGUI.py:863 AppGUI/MainGUI.py:1859
+msgid "Distance Min Tool"
+msgstr "Distance Min Tool"
+
+#: AppGUI/MainGUI.py:865 AppGUI/MainGUI.py:1861 AppGUI/MainGUI.py:4014
+msgid "Set Origin"
+msgstr "Set Origin"
+
+#: AppGUI/MainGUI.py:867 AppGUI/MainGUI.py:1863
+msgid "Move to Origin"
+msgstr "Move to Origin"
+
+#: AppGUI/MainGUI.py:870 AppGUI/MainGUI.py:1865
+msgid "Jump to Location"
+msgstr "Jump to Location"
+
+#: AppGUI/MainGUI.py:872 AppGUI/MainGUI.py:1867 AppGUI/MainGUI.py:4026
+msgid "Locate in Object"
+msgstr "Locate in Object"
+
+#: AppGUI/MainGUI.py:878 AppGUI/MainGUI.py:1873
+msgid "&Replot"
+msgstr "&Replot"
+
+#: AppGUI/MainGUI.py:880 AppGUI/MainGUI.py:1875
+msgid "&Clear plot"
+msgstr "&Clear plot"
+
+#: AppGUI/MainGUI.py:882 AppGUI/MainGUI.py:1877 AppGUI/MainGUI.py:4017
+msgid "Zoom In"
+msgstr "Zoom In"
+
+#: AppGUI/MainGUI.py:884 AppGUI/MainGUI.py:1879 AppGUI/MainGUI.py:4017
+msgid "Zoom Out"
+msgstr "Zoom Out"
+
+#: AppGUI/MainGUI.py:886 AppGUI/MainGUI.py:1388 AppGUI/MainGUI.py:1881
+#: AppGUI/MainGUI.py:4016
+msgid "Zoom Fit"
+msgstr "Zoom Fit"
+
+#: AppGUI/MainGUI.py:894 AppGUI/MainGUI.py:1887
+msgid "&Command Line"
+msgstr "&Command Line"
+
+#: AppGUI/MainGUI.py:906 AppGUI/MainGUI.py:1899
+msgid "2Sided Tool"
+msgstr "2Sided Tool"
+
+#: AppGUI/MainGUI.py:908 AppGUI/MainGUI.py:1901 AppGUI/MainGUI.py:4032
+msgid "Align Objects Tool"
+msgstr "Align Objects Tool"
+
+#: AppGUI/MainGUI.py:910 AppGUI/MainGUI.py:1903 AppGUI/MainGUI.py:4033
+#: AppTools/ToolExtractDrills.py:393
+msgid "Extract Drills Tool"
+msgstr "Extract Drills Tool"
+
+#: AppGUI/MainGUI.py:913 AppGUI/ObjectUI.py:596 AppTools/ToolCutOut.py:440
+msgid "Cutout Tool"
+msgstr "Cutout Tool"
+
+#: AppGUI/MainGUI.py:915 AppGUI/MainGUI.py:1908 AppGUI/ObjectUI.py:574
+#: AppGUI/ObjectUI.py:2287 AppTools/ToolNCC.py:974
+msgid "NCC Tool"
+msgstr "NCC Tool"
+
+#: AppGUI/MainGUI.py:921 AppGUI/MainGUI.py:1914
+msgid "Panel Tool"
+msgstr "Panel Tool"
+
+#: AppGUI/MainGUI.py:923 AppGUI/MainGUI.py:1916 AppTools/ToolFilm.py:569
+msgid "Film Tool"
+msgstr "Film Tool"
+
+#: AppGUI/MainGUI.py:925 AppGUI/MainGUI.py:1918 AppTools/ToolSolderPaste.py:553
+msgid "SolderPaste Tool"
+msgstr "SolderPaste Tool"
+
+#: AppGUI/MainGUI.py:927 AppGUI/MainGUI.py:1920 AppTools/ToolSub.py:35
+msgid "Subtract Tool"
+msgstr "Subtract Tool"
+
+#: AppGUI/MainGUI.py:929 AppGUI/MainGUI.py:1922 AppTools/ToolRulesCheck.py:616
+msgid "Rules Tool"
+msgstr "Rules Tool"
+
+#: AppGUI/MainGUI.py:931 AppGUI/MainGUI.py:1924 AppGUI/MainGUI.py:4035
+#: AppTools/ToolOptimal.py:33 AppTools/ToolOptimal.py:307
+msgid "Optimal Tool"
+msgstr "Optimal Tool"
+
+#: AppGUI/MainGUI.py:936 AppGUI/MainGUI.py:1929 AppGUI/MainGUI.py:4032
+msgid "Calculators Tool"
+msgstr "Calculators Tool"
+
+#: AppGUI/MainGUI.py:940 AppGUI/MainGUI.py:1933 AppGUI/MainGUI.py:4036
+#: AppTools/ToolQRCode.py:43 AppTools/ToolQRCode.py:382
+msgid "QRCode Tool"
+msgstr "QRCode Tool"
+
+#: AppGUI/MainGUI.py:942 AppGUI/MainGUI.py:1935
+#: AppTools/ToolCopperThieving.py:39 AppTools/ToolCopperThieving.py:568
+msgid "Copper Thieving Tool"
+msgstr "Copper Thieving Tool"
+
+#: AppGUI/MainGUI.py:945 AppGUI/MainGUI.py:1938 AppGUI/MainGUI.py:4033
+#: AppTools/ToolFiducials.py:33 AppTools/ToolFiducials.py:396
+msgid "Fiducials Tool"
+msgstr "Fiducials Tool"
+
+#: AppGUI/MainGUI.py:947 AppGUI/MainGUI.py:1940 AppTools/ToolCalibration.py:37
+#: AppTools/ToolCalibration.py:759
+msgid "Calibration Tool"
+msgstr "Calibration Tool"
+
+#: AppGUI/MainGUI.py:949 AppGUI/MainGUI.py:1942 AppGUI/MainGUI.py:4033
+msgid "Punch Gerber Tool"
+msgstr "Punch Gerber Tool"
+
+#: AppGUI/MainGUI.py:951 AppGUI/MainGUI.py:1944 AppTools/ToolInvertGerber.py:31
+msgid "Invert Gerber Tool"
+msgstr "Invert Gerber Tool"
+
+#: AppGUI/MainGUI.py:953 AppGUI/MainGUI.py:1946 AppGUI/MainGUI.py:4035
+#: AppTools/ToolCorners.py:31
+msgid "Corner Markers Tool"
+msgstr "Corner Markers Tool"
+
+#: AppGUI/MainGUI.py:955 AppGUI/MainGUI.py:1948
+#: AppTools/ToolEtchCompensation.py:31
+#| msgid "Editor Transformation Tool"
+msgid "Etch Compensation Tool"
+msgstr "Etch Compensation Tool"
+
+#: AppGUI/MainGUI.py:961 AppGUI/MainGUI.py:987 AppGUI/MainGUI.py:1039
+#: AppGUI/MainGUI.py:1954 AppGUI/MainGUI.py:2032
+msgid "Select"
+msgstr "Select"
+
+#: AppGUI/MainGUI.py:963 AppGUI/MainGUI.py:1956
+msgid "Add Drill Hole"
+msgstr "Add Drill Hole"
+
+#: AppGUI/MainGUI.py:965 AppGUI/MainGUI.py:1958
+msgid "Add Drill Hole Array"
+msgstr "Add Drill Hole Array"
+
+#: AppGUI/MainGUI.py:967 AppGUI/MainGUI.py:1476 AppGUI/MainGUI.py:1962
+#: AppGUI/MainGUI.py:4312
+msgid "Add Slot"
+msgstr "Add Slot"
+
+#: AppGUI/MainGUI.py:969 AppGUI/MainGUI.py:1478 AppGUI/MainGUI.py:1964
+#: AppGUI/MainGUI.py:4311
+msgid "Add Slot Array"
+msgstr "Add Slot Array"
+
+#: AppGUI/MainGUI.py:971 AppGUI/MainGUI.py:1481 AppGUI/MainGUI.py:1960
+msgid "Resize Drill"
+msgstr "Resize Drill"
+
+#: AppGUI/MainGUI.py:975 AppGUI/MainGUI.py:1968
+msgid "Copy Drill"
+msgstr "Copy Drill"
+
+#: AppGUI/MainGUI.py:977 AppGUI/MainGUI.py:1970
+msgid "Delete Drill"
+msgstr "Delete Drill"
+
+#: AppGUI/MainGUI.py:981 AppGUI/MainGUI.py:1974
+msgid "Move Drill"
+msgstr "Move Drill"
+
+#: AppGUI/MainGUI.py:989 AppGUI/MainGUI.py:1982
+msgid "Add Circle"
+msgstr "Add Circle"
+
+#: AppGUI/MainGUI.py:991 AppGUI/MainGUI.py:1984
+msgid "Add Arc"
+msgstr "Add Arc"
+
+#: AppGUI/MainGUI.py:993 AppGUI/MainGUI.py:1986
+msgid "Add Rectangle"
+msgstr "Add Rectangle"
+
+#: AppGUI/MainGUI.py:997 AppGUI/MainGUI.py:1990
+msgid "Add Path"
+msgstr "Add Path"
+
+#: AppGUI/MainGUI.py:999 AppGUI/MainGUI.py:1992
+msgid "Add Polygon"
+msgstr "Add Polygon"
+
+#: AppGUI/MainGUI.py:1002 AppGUI/MainGUI.py:1995
+msgid "Add Text"
+msgstr "Add Text"
+
+#: AppGUI/MainGUI.py:1004 AppGUI/MainGUI.py:1997
+msgid "Add Buffer"
+msgstr "Add Buffer"
+
+#: AppGUI/MainGUI.py:1006 AppGUI/MainGUI.py:1999
+msgid "Paint Shape"
+msgstr "Paint Shape"
+
+#: AppGUI/MainGUI.py:1008 AppGUI/MainGUI.py:1065 AppGUI/MainGUI.py:1417
+#: AppGUI/MainGUI.py:1462 AppGUI/MainGUI.py:2001 AppGUI/MainGUI.py:2057
+msgid "Eraser"
+msgstr "Eraser"
+
+#: AppGUI/MainGUI.py:1012 AppGUI/MainGUI.py:2005
+msgid "Polygon Union"
+msgstr "Polygon Union"
+
+#: AppGUI/MainGUI.py:1014 AppGUI/MainGUI.py:2007
+msgid "Polygon Explode"
+msgstr "Polygon Explode"
+
+#: AppGUI/MainGUI.py:1017 AppGUI/MainGUI.py:2010
+msgid "Polygon Intersection"
+msgstr "Polygon Intersection"
+
+#: AppGUI/MainGUI.py:1019 AppGUI/MainGUI.py:2012
+msgid "Polygon Subtraction"
+msgstr "Polygon Subtraction"
+
+#: AppGUI/MainGUI.py:1023 AppGUI/MainGUI.py:2016
+msgid "Cut Path"
+msgstr "Cut Path"
+
+#: AppGUI/MainGUI.py:1025
+msgid "Copy Shape(s)"
+msgstr "Copy Shape(s)"
+
+#: AppGUI/MainGUI.py:1028
+msgid "Delete Shape '-'"
+msgstr "Delete Shape '-'"
+
+#: AppGUI/MainGUI.py:1030 AppGUI/MainGUI.py:1073 AppGUI/MainGUI.py:1429
+#: AppGUI/MainGUI.py:1466 AppGUI/MainGUI.py:2022 AppGUI/MainGUI.py:2065
+#: AppGUI/ObjectUI.py:109
+msgid "Transformations"
+msgstr "Transformations"
+
+#: AppGUI/MainGUI.py:1033
+msgid "Move Objects "
+msgstr "Move Objects "
+
+#: AppGUI/MainGUI.py:1041 AppGUI/MainGUI.py:2034 AppGUI/MainGUI.py:4431
+msgid "Add Pad"
+msgstr "Add Pad"
+
+#: AppGUI/MainGUI.py:1045 AppGUI/MainGUI.py:2038 AppGUI/MainGUI.py:4432
+msgid "Add Track"
+msgstr "Add Track"
+
+#: AppGUI/MainGUI.py:1047 AppGUI/MainGUI.py:2040 AppGUI/MainGUI.py:4431
+msgid "Add Region"
+msgstr "Add Region"
+
+#: AppGUI/MainGUI.py:1049 AppGUI/MainGUI.py:1448 AppGUI/MainGUI.py:2042
+msgid "Poligonize"
+msgstr "Poligonize"
+
+#: AppGUI/MainGUI.py:1052 AppGUI/MainGUI.py:1450 AppGUI/MainGUI.py:2045
+msgid "SemiDisc"
+msgstr "SemiDisc"
+
+#: AppGUI/MainGUI.py:1054 AppGUI/MainGUI.py:1452 AppGUI/MainGUI.py:2047
+msgid "Disc"
+msgstr "Disc"
+
+#: AppGUI/MainGUI.py:1062 AppGUI/MainGUI.py:1460 AppGUI/MainGUI.py:2055
+msgid "Mark Area"
+msgstr "Mark Area"
+
+#: AppGUI/MainGUI.py:1076 AppGUI/MainGUI.py:1433 AppGUI/MainGUI.py:1496
+#: AppGUI/MainGUI.py:2068 AppGUI/MainGUI.py:4431 AppTools/ToolMove.py:27
+msgid "Move"
+msgstr "Move"
+
+#: AppGUI/MainGUI.py:1084
+msgid "Snap to grid"
+msgstr "Snap to grid"
+
+#: AppGUI/MainGUI.py:1087
+msgid "Grid X snapping distance"
+msgstr "Grid X snapping distance"
+
+#: AppGUI/MainGUI.py:1092
+msgid "Grid Y snapping distance"
+msgstr "Grid Y snapping distance"
+
+#: AppGUI/MainGUI.py:1098
+msgid ""
+"When active, value on Grid_X\n"
+"is copied to the Grid_Y value."
+msgstr ""
+"When active, value on Grid_X\n"
+"is copied to the Grid_Y value."
+
+#: AppGUI/MainGUI.py:1105
+msgid "Snap to corner"
+msgstr "Snap to corner"
+
+#: AppGUI/MainGUI.py:1109 AppGUI/preferences/general/GeneralAPPSetGroupUI.py:78
+msgid "Max. magnet distance"
+msgstr "Max. magnet distance"
+
+#: AppGUI/MainGUI.py:1134 AppGUI/MainGUI.py:1379 App_Main.py:7543
+msgid "Project"
+msgstr "Project"
+
+#: AppGUI/MainGUI.py:1149
+msgid "Selected"
+msgstr "Selected"
+
+#: AppGUI/MainGUI.py:1177 AppGUI/MainGUI.py:1185
+msgid "Plot Area"
+msgstr "Plot Area"
+
+#: AppGUI/MainGUI.py:1212
+msgid "General"
+msgstr "General"
+
+#: AppGUI/MainGUI.py:1227 AppTools/ToolCopperThieving.py:74
+#: AppTools/ToolCorners.py:55 AppTools/ToolDblSided.py:64
+#: AppTools/ToolEtchCompensation.py:72 AppTools/ToolExtractDrills.py:61
+#: AppTools/ToolInvertGerber.py:72 AppTools/ToolOptimal.py:71
+#: AppTools/ToolPunchGerber.py:64
+msgid "GERBER"
+msgstr "GERBER"
+
+#: AppGUI/MainGUI.py:1237 AppTools/ToolDblSided.py:92
+msgid "EXCELLON"
+msgstr "EXCELLON"
+
+#: AppGUI/MainGUI.py:1247 AppTools/ToolDblSided.py:120
+msgid "GEOMETRY"
+msgstr "GEOMETRY"
+
+#: AppGUI/MainGUI.py:1257
+msgid "CNC-JOB"
+msgstr "CNC-JOB"
+
+#: AppGUI/MainGUI.py:1266 AppGUI/ObjectUI.py:563 AppGUI/ObjectUI.py:2262
+msgid "TOOLS"
+msgstr "TOOLS"
+
+#: AppGUI/MainGUI.py:1275
+msgid "TOOLS 2"
+msgstr "TOOLS 2"
+
+#: AppGUI/MainGUI.py:1285
+msgid "UTILITIES"
+msgstr "UTILITIES"
+
+#: AppGUI/MainGUI.py:1302
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:192
+msgid "Restore Defaults"
+msgstr "Restore Defaults"
+
+#: AppGUI/MainGUI.py:1305
+msgid ""
+"Restore the entire set of default values\n"
+"to the initial values loaded after first launch."
+msgstr ""
+"Restore the entire set of default values\n"
+"to the initial values loaded after first launch."
+
+#: AppGUI/MainGUI.py:1310
+msgid "Open Pref Folder"
+msgstr "Open Pref Folder"
+
+#: AppGUI/MainGUI.py:1313
+msgid "Open the folder where FlatCAM save the preferences files."
+msgstr "Open the folder where FlatCAM save the preferences files."
+
+#: AppGUI/MainGUI.py:1317 AppGUI/MainGUI.py:1804
+msgid "Clear GUI Settings"
+msgstr "Clear GUI Settings"
+
+#: AppGUI/MainGUI.py:1321
+msgid ""
+"Clear the GUI settings for FlatCAM,\n"
+"such as: layout, gui state, style, hdpi support etc."
+msgstr ""
+"Clear the GUI settings for FlatCAM,\n"
+"such as: layout, gui state, style, hdpi support etc."
+
+#: AppGUI/MainGUI.py:1332
+msgid "Apply"
+msgstr "Apply"
+
+#: AppGUI/MainGUI.py:1335
+msgid "Apply the current preferences without saving to a file."
+msgstr "Apply the current preferences without saving to a file."
+
+#: AppGUI/MainGUI.py:1342
+msgid ""
+"Save the current settings in the 'current_defaults' file\n"
+"which is the file storing the working default preferences."
+msgstr ""
+"Save the current settings in the 'current_defaults' file\n"
+"which is the file storing the working default preferences."
+
+#: AppGUI/MainGUI.py:1350
+msgid "Will not save the changes and will close the preferences window."
+msgstr "Will not save the changes and will close the preferences window."
+
+#: AppGUI/MainGUI.py:1364
+msgid "Toggle Visibility"
+msgstr "Toggle Visibility"
+
+#: AppGUI/MainGUI.py:1370
+msgid "New"
+msgstr "New"
+
+#: AppGUI/MainGUI.py:1372 AppGUI/ObjectUI.py:450
+#: AppObjects/FlatCAMGerber.py:239 AppObjects/FlatCAMGerber.py:327
+#: AppTools/ToolCalibration.py:631 AppTools/ToolCalibration.py:648
+#: AppTools/ToolCalibration.py:815 AppTools/ToolCopperThieving.py:144
+#: AppTools/ToolCopperThieving.py:158 AppTools/ToolCopperThieving.py:604
+#: AppTools/ToolCutOut.py:92 AppTools/ToolDblSided.py:226
+#: AppTools/ToolFilm.py:69 AppTools/ToolFilm.py:92 AppTools/ToolImage.py:49
+#: AppTools/ToolImage.py:271 AppTools/ToolNCC.py:95 AppTools/ToolNCC.py:558
+#: AppTools/ToolNCC.py:1300 AppTools/ToolPaint.py:501 AppTools/ToolPaint.py:705
+#: AppTools/ToolPanelize.py:116 AppTools/ToolPanelize.py:385
+#: AppTools/ToolPanelize.py:402
+msgid "Geometry"
+msgstr "Geometry"
+
+#: AppGUI/MainGUI.py:1376
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:99
+#: AppTools/ToolAlignObjects.py:74 AppTools/ToolAlignObjects.py:110
+#: AppTools/ToolCalibration.py:197 AppTools/ToolCalibration.py:631
+#: AppTools/ToolCalibration.py:648 AppTools/ToolCalibration.py:807
+#: AppTools/ToolCalibration.py:815 AppTools/ToolCopperThieving.py:144
+#: AppTools/ToolCopperThieving.py:158 AppTools/ToolCopperThieving.py:604
+#: AppTools/ToolDblSided.py:225 AppTools/ToolFilm.py:342
+#: AppTools/ToolNCC.py:558 AppTools/ToolNCC.py:1300 AppTools/ToolPaint.py:501
+#: AppTools/ToolPaint.py:705 AppTools/ToolPanelize.py:385
+#: AppTools/ToolPunchGerber.py:149 AppTools/ToolPunchGerber.py:164
+msgid "Excellon"
+msgstr "Excellon"
+
+#: AppGUI/MainGUI.py:1383
+msgid "Grids"
+msgstr "Grids"
+
+#: AppGUI/MainGUI.py:1390
+msgid "Clear Plot"
+msgstr "Clear Plot"
+
+#: AppGUI/MainGUI.py:1392
+msgid "Replot"
+msgstr "Replot"
+
+#: AppGUI/MainGUI.py:1396
+msgid "Geo Editor"
+msgstr "Geo Editor"
+
+#: AppGUI/MainGUI.py:1398
+msgid "Path"
+msgstr "Path"
+
+#: AppGUI/MainGUI.py:1400
+msgid "Rectangle"
+msgstr "Rectangle"
+
+#: AppGUI/MainGUI.py:1403
+msgid "Circle"
+msgstr "Circle"
+
+#: AppGUI/MainGUI.py:1407
+msgid "Arc"
+msgstr "Arc"
+
+#: AppGUI/MainGUI.py:1421
+msgid "Union"
+msgstr "Union"
+
+#: AppGUI/MainGUI.py:1423
+msgid "Intersection"
+msgstr "Intersection"
+
+#: AppGUI/MainGUI.py:1425
+msgid "Subtraction"
+msgstr "Subtraction"
+
+#: AppGUI/MainGUI.py:1427 AppGUI/ObjectUI.py:2351
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:56
+msgid "Cut"
+msgstr "Cut"
+
+#: AppGUI/MainGUI.py:1438
+msgid "Pad"
+msgstr "Pad"
+
+#: AppGUI/MainGUI.py:1440
+msgid "Pad Array"
+msgstr "Pad Array"
+
+#: AppGUI/MainGUI.py:1444
+msgid "Track"
+msgstr "Track"
+
+#: AppGUI/MainGUI.py:1446
+msgid "Region"
+msgstr "Region"
+
+#: AppGUI/MainGUI.py:1469
+msgid "Exc Editor"
+msgstr "Exc Editor"
+
+#: AppGUI/MainGUI.py:1471 AppGUI/MainGUI.py:4310
+msgid "Add Drill"
+msgstr "Add Drill"
+
+#: AppGUI/MainGUI.py:1491 App_Main.py:2198
+msgid "Close Editor"
+msgstr "Close Editor"
+
+#: AppGUI/MainGUI.py:1516
+msgid ""
+"Absolute measurement.\n"
+"Reference is (X=0, Y= 0) position"
+msgstr ""
+"Absolute measurement.\n"
+"Reference is (X=0, Y= 0) position"
+
+#: AppGUI/MainGUI.py:1523
+msgid "HUD (Heads up display)"
+msgstr "HUD (Heads up display)"
+
+#: AppGUI/MainGUI.py:1622
+msgid "Lock Toolbars"
+msgstr "Lock Toolbars"
+
+#: AppGUI/MainGUI.py:1792
+msgid "FlatCAM Preferences Folder opened."
+msgstr "FlatCAM Preferences Folder opened."
+
+#: AppGUI/MainGUI.py:1803
+msgid "Are you sure you want to delete the GUI Settings? \n"
+msgstr "Are you sure you want to delete the GUI Settings? \n"
+
+#: AppGUI/MainGUI.py:1806 AppGUI/preferences/PreferencesUIManager.py:941
+#: AppGUI/preferences/PreferencesUIManager.py:1179 AppTranslation.py:109
+#: AppTranslation.py:206 App_Main.py:2201 App_Main.py:3052 App_Main.py:5276
+#: App_Main.py:6336
+msgid "Yes"
+msgstr "Yes"
+
+#: AppGUI/MainGUI.py:1807 AppGUI/preferences/PreferencesUIManager.py:1180
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:164
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:150
+#: AppTools/ToolNCC.py:182 AppTools/ToolPaint.py:165 AppTranslation.py:110
+#: AppTranslation.py:207 App_Main.py:2202 App_Main.py:3053 App_Main.py:5277
+#: App_Main.py:6337
+msgid "No"
+msgstr "No"
+
+#: AppGUI/MainGUI.py:1906
+msgid "&Cutout Tool"
+msgstr "&Cutout Tool"
+
+#: AppGUI/MainGUI.py:1980
+msgid "Select 'Esc'"
+msgstr "Select 'Esc'"
+
+#: AppGUI/MainGUI.py:2018
+msgid "Copy Objects"
+msgstr "Copy Objects"
+
+#: AppGUI/MainGUI.py:2020 AppGUI/MainGUI.py:4230
+msgid "Delete Shape"
+msgstr "Delete Shape"
+
+#: AppGUI/MainGUI.py:2026
+msgid "Move Objects"
+msgstr "Move Objects"
+
+#: AppGUI/MainGUI.py:2610
+msgid ""
+"Please first select a geometry item to be cutted\n"
+"then select the geometry item that will be cutted\n"
+"out of the first item. In the end press ~X~ key or\n"
+"the toolbar button."
+msgstr ""
+"Please first select a geometry item to be cutted\n"
+"then select the geometry item that will be cutted\n"
+"out of the first item. In the end press ~X~ key or\n"
+"the toolbar button."
+
+#: AppGUI/MainGUI.py:2617 AppGUI/MainGUI.py:2779 AppGUI/MainGUI.py:2824
+#: AppGUI/MainGUI.py:2844
+msgid "Warning"
+msgstr "Warning"
+
+#: AppGUI/MainGUI.py:2774
+msgid ""
+"Please select geometry items \n"
+"on which to perform Intersection Tool."
+msgstr ""
+"Please select geometry items \n"
+"on which to perform Intersection Tool."
+
+#: AppGUI/MainGUI.py:2819
+msgid ""
+"Please select geometry items \n"
+"on which to perform Substraction Tool."
+msgstr ""
+"Please select geometry items \n"
+"on which to perform Substraction Tool."
+
+#: AppGUI/MainGUI.py:2839
+msgid ""
+"Please select geometry items \n"
+"on which to perform union."
+msgstr ""
+"Please select geometry items \n"
+"on which to perform union."
+
+#: AppGUI/MainGUI.py:2922 AppGUI/MainGUI.py:3137
+msgid "Cancelled. Nothing selected to delete."
+msgstr "Cancelled. Nothing selected to delete."
+
+#: AppGUI/MainGUI.py:3006 AppGUI/MainGUI.py:3253
+msgid "Cancelled. Nothing selected to copy."
+msgstr "Cancelled. Nothing selected to copy."
+
+#: AppGUI/MainGUI.py:3052 AppGUI/MainGUI.py:3282
+msgid "Cancelled. Nothing selected to move."
+msgstr "Cancelled. Nothing selected to move."
+
+#: AppGUI/MainGUI.py:3308
+msgid "New Tool ..."
+msgstr "New Tool ..."
+
+#: AppGUI/MainGUI.py:3309 AppTools/ToolNCC.py:924 AppTools/ToolPaint.py:849
+#: AppTools/ToolSolderPaste.py:560
+msgid "Enter a Tool Diameter"
+msgstr "Enter a Tool Diameter"
+
+#: AppGUI/MainGUI.py:3321
+msgid "Adding Tool cancelled ..."
+msgstr "Adding Tool cancelled ..."
+
+#: AppGUI/MainGUI.py:3335
+msgid "Distance Tool exit..."
+msgstr "Distance Tool exit..."
+
+#: AppGUI/MainGUI.py:3514 App_Main.py:3042
+msgid "Application is saving the project. Please wait ..."
+msgstr "Application is saving the project. Please wait ..."
+
+#: AppGUI/MainGUI.py:3649 App_Main.py:9059
+msgid "Shortcut Key List"
+msgstr "Shortcut Key List"
+
+#: AppGUI/MainGUI.py:4010
+msgid "General Shortcut list"
+msgstr "General Shortcut list"
+
+#: AppGUI/MainGUI.py:4011
+msgid "SHOW SHORTCUT LIST"
+msgstr "SHOW SHORTCUT LIST"
+
+#: AppGUI/MainGUI.py:4011
+msgid "Switch to Project Tab"
+msgstr "Switch to Project Tab"
+
+#: AppGUI/MainGUI.py:4011
+msgid "Switch to Selected Tab"
+msgstr "Switch to Selected Tab"
+
+#: AppGUI/MainGUI.py:4012
+msgid "Switch to Tool Tab"
+msgstr "Switch to Tool Tab"
+
+#: AppGUI/MainGUI.py:4013
+msgid "New Gerber"
+msgstr "New Gerber"
+
+#: AppGUI/MainGUI.py:4013
+msgid "Edit Object (if selected)"
+msgstr "Edit Object (if selected)"
+
+#: AppGUI/MainGUI.py:4013 App_Main.py:5581
+msgid "Grid On/Off"
+msgstr "Grid On/Off"
+
+#: AppGUI/MainGUI.py:4013
+msgid "Jump to Coordinates"
+msgstr "Jump to Coordinates"
+
+#: AppGUI/MainGUI.py:4014
+msgid "New Excellon"
+msgstr "New Excellon"
+
+#: AppGUI/MainGUI.py:4014
+msgid "Move Obj"
+msgstr "Move Obj"
+
+#: AppGUI/MainGUI.py:4014
+msgid "New Geometry"
+msgstr "New Geometry"
+
+#: AppGUI/MainGUI.py:4014
+msgid "Change Units"
+msgstr "Change Units"
+
+#: AppGUI/MainGUI.py:4015
+msgid "Open Properties Tool"
+msgstr "Open Properties Tool"
+
+#: AppGUI/MainGUI.py:4015
+msgid "Rotate by 90 degree CW"
+msgstr "Rotate by 90 degree CW"
+
+#: AppGUI/MainGUI.py:4015
+msgid "Shell Toggle"
+msgstr "Shell Toggle"
+
+#: AppGUI/MainGUI.py:4016
+msgid ""
+"Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)"
+msgstr ""
+"Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)"
+
+#: AppGUI/MainGUI.py:4017
+msgid "Flip on X_axis"
+msgstr "Flip on X_axis"
+
+#: AppGUI/MainGUI.py:4017
+msgid "Flip on Y_axis"
+msgstr "Flip on Y_axis"
+
+#: AppGUI/MainGUI.py:4020
+msgid "Copy Obj"
+msgstr "Copy Obj"
+
+#: AppGUI/MainGUI.py:4020
+msgid "Open Tools Database"
+msgstr "Open Tools Database"
+
+#: AppGUI/MainGUI.py:4021
+msgid "Open Excellon File"
+msgstr "Open Excellon File"
+
+#: AppGUI/MainGUI.py:4021
+msgid "Open Gerber File"
+msgstr "Open Gerber File"
+
+#: AppGUI/MainGUI.py:4021
+msgid "New Project"
+msgstr "New Project"
+
+#: AppGUI/MainGUI.py:4022 App_Main.py:6626 App_Main.py:6629
+msgid "Open Project"
+msgstr "Open Project"
+
+#: AppGUI/MainGUI.py:4022 AppTools/ToolPDF.py:41
+msgid "PDF Import Tool"
+msgstr "PDF Import Tool"
+
+#: AppGUI/MainGUI.py:4022
+msgid "Save Project"
+msgstr "Save Project"
+
+#: AppGUI/MainGUI.py:4022
+msgid "Toggle Plot Area"
+msgstr "Toggle Plot Area"
+
+#: AppGUI/MainGUI.py:4025
+msgid "Copy Obj_Name"
+msgstr "Copy Obj_Name"
+
+#: AppGUI/MainGUI.py:4026
+msgid "Toggle Code Editor"
+msgstr "Toggle Code Editor"
+
+#: AppGUI/MainGUI.py:4026
+msgid "Toggle the axis"
+msgstr "Toggle the axis"
+
+#: AppGUI/MainGUI.py:4026 AppGUI/MainGUI.py:4225 AppGUI/MainGUI.py:4312
+#: AppGUI/MainGUI.py:4434
+msgid "Distance Minimum Tool"
+msgstr "Distance Minimum Tool"
+
+#: AppGUI/MainGUI.py:4027
+msgid "Open Preferences Window"
+msgstr "Open Preferences Window"
+
+#: AppGUI/MainGUI.py:4028
+msgid "Rotate by 90 degree CCW"
+msgstr "Rotate by 90 degree CCW"
+
+#: AppGUI/MainGUI.py:4028
+msgid "Run a Script"
+msgstr "Run a Script"
+
+#: AppGUI/MainGUI.py:4028
+msgid "Toggle the workspace"
+msgstr "Toggle the workspace"
+
+#: AppGUI/MainGUI.py:4028
+msgid "Skew on X axis"
+msgstr "Skew on X axis"
+
+#: AppGUI/MainGUI.py:4029
+msgid "Skew on Y axis"
+msgstr "Skew on Y axis"
+
+#: AppGUI/MainGUI.py:4032
+msgid "2-Sided PCB Tool"
+msgstr "2-Sided PCB Tool"
+
+#: AppGUI/MainGUI.py:4032
+msgid "Transformations Tool"
+msgstr "Transformations Tool"
+
+#: AppGUI/MainGUI.py:4034
+msgid "Solder Paste Dispensing Tool"
+msgstr "Solder Paste Dispensing Tool"
+
+#: AppGUI/MainGUI.py:4035
+msgid "Film PCB Tool"
+msgstr "Film PCB Tool"
+
+#: AppGUI/MainGUI.py:4035
+msgid "Non-Copper Clearing Tool"
+msgstr "Non-Copper Clearing Tool"
+
+#: AppGUI/MainGUI.py:4036
+msgid "Paint Area Tool"
+msgstr "Paint Area Tool"
+
+#: AppGUI/MainGUI.py:4036
+msgid "Rules Check Tool"
+msgstr "Rules Check Tool"
+
+#: AppGUI/MainGUI.py:4037
+msgid "View File Source"
+msgstr "View File Source"
+
+#: AppGUI/MainGUI.py:4038
+msgid "Cutout PCB Tool"
+msgstr "Cutout PCB Tool"
+
+#: AppGUI/MainGUI.py:4038
+msgid "Enable all Plots"
+msgstr "Enable all Plots"
+
+#: AppGUI/MainGUI.py:4038
+msgid "Disable all Plots"
+msgstr "Disable all Plots"
+
+#: AppGUI/MainGUI.py:4038
+msgid "Disable Non-selected Plots"
+msgstr "Disable Non-selected Plots"
+
+#: AppGUI/MainGUI.py:4039
+msgid "Toggle Full Screen"
+msgstr "Toggle Full Screen"
+
+#: AppGUI/MainGUI.py:4042
+msgid "Abort current task (gracefully)"
+msgstr "Abort current task (gracefully)"
+
+#: AppGUI/MainGUI.py:4045
+msgid "Save Project As"
+msgstr "Save Project As"
+
+#: AppGUI/MainGUI.py:4046
+msgid ""
+"Paste Special. Will convert a Windows path style to the one required in Tcl "
+"Shell"
+msgstr ""
+"Paste Special. Will convert a Windows path style to the one required in Tcl "
+"Shell"
+
+#: AppGUI/MainGUI.py:4049
+msgid "Open Online Manual"
+msgstr "Open Online Manual"
+
+#: AppGUI/MainGUI.py:4050
+msgid "Open Online Tutorials"
+msgstr "Open Online Tutorials"
+
+#: AppGUI/MainGUI.py:4050
+msgid "Refresh Plots"
+msgstr "Refresh Plots"
+
+#: AppGUI/MainGUI.py:4050 AppTools/ToolSolderPaste.py:509
+msgid "Delete Object"
+msgstr "Delete Object"
+
+#: AppGUI/MainGUI.py:4050
+msgid "Alternate: Delete Tool"
+msgstr "Alternate: Delete Tool"
+
+#: AppGUI/MainGUI.py:4051
+msgid "(left to Key_1)Toggle Notebook Area (Left Side)"
+msgstr "(left to Key_1)Toggle Notebook Area (Left Side)"
+
+#: AppGUI/MainGUI.py:4051
+msgid "En(Dis)able Obj Plot"
+msgstr "En(Dis)able Obj Plot"
+
+#: AppGUI/MainGUI.py:4052
+msgid "Deselects all objects"
+msgstr "Deselects all objects"
+
+#: AppGUI/MainGUI.py:4066
+msgid "Editor Shortcut list"
+msgstr "Editor Shortcut list"
+
+#: AppGUI/MainGUI.py:4220
+msgid "GEOMETRY EDITOR"
+msgstr "GEOMETRY EDITOR"
+
+#: AppGUI/MainGUI.py:4220
+msgid "Draw an Arc"
+msgstr "Draw an Arc"
+
+#: AppGUI/MainGUI.py:4220
+msgid "Copy Geo Item"
+msgstr "Copy Geo Item"
+
+#: AppGUI/MainGUI.py:4221
+msgid "Within Add Arc will toogle the ARC direction: CW or CCW"
+msgstr "Within Add Arc will toogle the ARC direction: CW or CCW"
+
+#: AppGUI/MainGUI.py:4221
+msgid "Polygon Intersection Tool"
+msgstr "Polygon Intersection Tool"
+
+#: AppGUI/MainGUI.py:4222
+msgid "Geo Paint Tool"
+msgstr "Geo Paint Tool"
+
+#: AppGUI/MainGUI.py:4222 AppGUI/MainGUI.py:4311 AppGUI/MainGUI.py:4431
+msgid "Jump to Location (x, y)"
+msgstr "Jump to Location (x, y)"
+
+#: AppGUI/MainGUI.py:4222
+msgid "Toggle Corner Snap"
+msgstr "Toggle Corner Snap"
+
+#: AppGUI/MainGUI.py:4222
+msgid "Move Geo Item"
+msgstr "Move Geo Item"
+
+#: AppGUI/MainGUI.py:4223
+msgid "Within Add Arc will cycle through the ARC modes"
+msgstr "Within Add Arc will cycle through the ARC modes"
+
+#: AppGUI/MainGUI.py:4223
+msgid "Draw a Polygon"
+msgstr "Draw a Polygon"
+
+#: AppGUI/MainGUI.py:4223
+msgid "Draw a Circle"
+msgstr "Draw a Circle"
+
+#: AppGUI/MainGUI.py:4224
+msgid "Draw a Path"
+msgstr "Draw a Path"
+
+#: AppGUI/MainGUI.py:4224
+msgid "Draw Rectangle"
+msgstr "Draw Rectangle"
+
+#: AppGUI/MainGUI.py:4224
+msgid "Polygon Subtraction Tool"
+msgstr "Polygon Subtraction Tool"
+
+#: AppGUI/MainGUI.py:4224
+msgid "Add Text Tool"
+msgstr "Add Text Tool"
+
+#: AppGUI/MainGUI.py:4225
+msgid "Polygon Union Tool"
+msgstr "Polygon Union Tool"
+
+#: AppGUI/MainGUI.py:4225
+msgid "Flip shape on X axis"
+msgstr "Flip shape on X axis"
+
+#: AppGUI/MainGUI.py:4225
+msgid "Flip shape on Y axis"
+msgstr "Flip shape on Y axis"
+
+#: AppGUI/MainGUI.py:4226
+msgid "Skew shape on X axis"
+msgstr "Skew shape on X axis"
+
+#: AppGUI/MainGUI.py:4226
+msgid "Skew shape on Y axis"
+msgstr "Skew shape on Y axis"
+
+#: AppGUI/MainGUI.py:4226
+msgid "Editor Transformation Tool"
+msgstr "Editor Transformation Tool"
+
+#: AppGUI/MainGUI.py:4227
+msgid "Offset shape on X axis"
+msgstr "Offset shape on X axis"
+
+#: AppGUI/MainGUI.py:4227
+msgid "Offset shape on Y axis"
+msgstr "Offset shape on Y axis"
+
+#: AppGUI/MainGUI.py:4228 AppGUI/MainGUI.py:4314 AppGUI/MainGUI.py:4436
+msgid "Save Object and Exit Editor"
+msgstr "Save Object and Exit Editor"
+
+#: AppGUI/MainGUI.py:4228
+msgid "Polygon Cut Tool"
+msgstr "Polygon Cut Tool"
+
+#: AppGUI/MainGUI.py:4229
+msgid "Rotate Geometry"
+msgstr "Rotate Geometry"
+
+#: AppGUI/MainGUI.py:4229
+msgid "Finish drawing for certain tools"
+msgstr "Finish drawing for certain tools"
+
+#: AppGUI/MainGUI.py:4229 AppGUI/MainGUI.py:4314 AppGUI/MainGUI.py:4434
+msgid "Abort and return to Select"
+msgstr "Abort and return to Select"
+
+#: AppGUI/MainGUI.py:4310
+msgid "EXCELLON EDITOR"
+msgstr "EXCELLON EDITOR"
+
+#: AppGUI/MainGUI.py:4310
+msgid "Copy Drill(s)"
+msgstr "Copy Drill(s)"
+
+#: AppGUI/MainGUI.py:4311
+msgid "Move Drill(s)"
+msgstr "Move Drill(s)"
+
+#: AppGUI/MainGUI.py:4312
+msgid "Add a new Tool"
+msgstr "Add a new Tool"
+
+#: AppGUI/MainGUI.py:4313
+msgid "Delete Drill(s)"
+msgstr "Delete Drill(s)"
+
+#: AppGUI/MainGUI.py:4313
+msgid "Alternate: Delete Tool(s)"
+msgstr "Alternate: Delete Tool(s)"
+
+#: AppGUI/MainGUI.py:4430
+msgid "GERBER EDITOR"
+msgstr "GERBER EDITOR"
+
+#: AppGUI/MainGUI.py:4430
+msgid "Add Disc"
+msgstr "Add Disc"
+
+#: AppGUI/MainGUI.py:4430
+msgid "Add SemiDisc"
+msgstr "Add SemiDisc"
+
+#: AppGUI/MainGUI.py:4432
+msgid "Within Track & Region Tools will cycle in REVERSE the bend modes"
+msgstr "Within Track & Region Tools will cycle in REVERSE the bend modes"
+
+#: AppGUI/MainGUI.py:4433
+msgid "Within Track & Region Tools will cycle FORWARD the bend modes"
+msgstr "Within Track & Region Tools will cycle FORWARD the bend modes"
+
+#: AppGUI/MainGUI.py:4434
+msgid "Alternate: Delete Apertures"
+msgstr "Alternate: Delete Apertures"
+
+#: AppGUI/MainGUI.py:4435
+msgid "Eraser Tool"
+msgstr "Eraser Tool"
+
+#: AppGUI/MainGUI.py:4436
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:220
+msgid "Mark Area Tool"
+msgstr "Mark Area Tool"
+
+#: AppGUI/MainGUI.py:4436
+msgid "Poligonize Tool"
+msgstr "Poligonize Tool"
+
+#: AppGUI/MainGUI.py:4436
+msgid "Transformation Tool"
+msgstr "Transformation Tool"
+
+#: AppGUI/ObjectUI.py:38
+msgid "FlatCAM Object"
+msgstr "FlatCAM Object"
+
+#: AppGUI/ObjectUI.py:78
+msgid ""
+"BASIC is suitable for a beginner. Many parameters\n"
+"are hidden from the user in this mode.\n"
+"ADVANCED mode will make available all parameters.\n"
+"\n"
+"To change the application LEVEL, go to:\n"
+"Edit -> Preferences -> General and check:\n"
+"'APP. LEVEL' radio button."
+msgstr ""
+"BASIC is suitable for a beginner. Many parameters\n"
+"are hidden from the user in this mode.\n"
+"ADVANCED mode will make available all parameters.\n"
+"\n"
+"To change the application LEVEL, go to:\n"
+"Edit -> Preferences -> General and check:\n"
+"'APP. LEVEL' radio button."
+
+#: AppGUI/ObjectUI.py:111
+msgid "Geometrical transformations of the current object."
+msgstr "Geometrical transformations of the current object."
+
+#: AppGUI/ObjectUI.py:120
+msgid ""
+"Factor by which to multiply\n"
+"geometric features of this object.\n"
+"Expressions are allowed. E.g: 1/25.4"
+msgstr ""
+"Factor by which to multiply\n"
+"geometric features of this object.\n"
+"Expressions are allowed. E.g: 1/25.4"
+
+#: AppGUI/ObjectUI.py:127
+msgid "Perform scaling operation."
+msgstr "Perform scaling operation."
+
+#: AppGUI/ObjectUI.py:138
+msgid ""
+"Amount by which to move the object\n"
+"in the x and y axes in (x, y) format.\n"
+"Expressions are allowed. E.g: (1/3.2, 0.5*3)"
+msgstr ""
+"Amount by which to move the object\n"
+"in the x and y axes in (x, y) format.\n"
+"Expressions are allowed. E.g: (1/3.2, 0.5*3)"
+
+#: AppGUI/ObjectUI.py:145
+msgid "Perform the offset operation."
+msgstr "Perform the offset operation."
+
+#: AppGUI/ObjectUI.py:157 AppGUI/ObjectUI.py:164 AppTool.py:281 AppTool.py:287
+msgid "Edited value is out of range"
+msgstr "Edited value is out of range"
+
+#: AppGUI/ObjectUI.py:159 AppGUI/ObjectUI.py:166 AppTool.py:283 AppTool.py:289
+msgid "Edited value is within limits."
+msgstr "Edited value is within limits."
+
+#: AppGUI/ObjectUI.py:178
+msgid "Gerber Object"
+msgstr "Gerber Object"
+
+#: AppGUI/ObjectUI.py:187 AppGUI/ObjectUI.py:730 AppGUI/ObjectUI.py:1528
+#: AppGUI/ObjectUI.py:2335 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:30
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:33
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:31
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:31
+msgid "Plot Options"
+msgstr "Plot Options"
+
+#: AppGUI/ObjectUI.py:193 AppGUI/ObjectUI.py:731
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:45
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:38
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119
+#: AppTools/ToolCopperThieving.py:191
+msgid "Solid"
+msgstr "Solid"
+
+#: AppGUI/ObjectUI.py:195 AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:40
+msgid "Solid color polygons."
+msgstr "Solid color polygons."
+
+#: AppGUI/ObjectUI.py:201
+msgid "Multi-Color"
+msgstr "Multi-Color"
+
+#: AppGUI/ObjectUI.py:203 AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:47
+msgid "Draw polygons in different colors."
+msgstr "Draw polygons in different colors."
+
+#: AppGUI/ObjectUI.py:209 AppGUI/ObjectUI.py:769
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:39
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:35
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:52
+msgid "Plot"
+msgstr "Plot"
+
+#: AppGUI/ObjectUI.py:211 AppGUI/ObjectUI.py:771 AppGUI/ObjectUI.py:1588
+#: AppGUI/ObjectUI.py:2445 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:41
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:37
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:54
+msgid "Plot (show) this object."
+msgstr "Plot (show) this object."
+
+#: AppGUI/ObjectUI.py:239
+msgid ""
+"Toggle the display of the Gerber Apertures Table.\n"
+"When unchecked, it will delete all mark shapes\n"
+"that are drawn on canvas."
+msgstr ""
+"Toggle the display of the Gerber Apertures Table.\n"
+"When unchecked, it will delete all mark shapes\n"
+"that are drawn on canvas."
+
+#: AppGUI/ObjectUI.py:249
+msgid "Mark All"
+msgstr "Mark All"
+
+#: AppGUI/ObjectUI.py:251
+msgid ""
+"When checked it will display all the apertures.\n"
+"When unchecked, it will delete all mark shapes\n"
+"that are drawn on canvas."
+msgstr ""
+"When checked it will display all the apertures.\n"
+"When unchecked, it will delete all mark shapes\n"
+"that are drawn on canvas."
+
+#: AppGUI/ObjectUI.py:279
+msgid "Mark the aperture instances on canvas."
+msgstr "Mark the aperture instances on canvas."
+
+#: AppGUI/ObjectUI.py:291 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:32
+msgid "Isolation Routing"
+msgstr "Isolation Routing"
+
+#: AppGUI/ObjectUI.py:293 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:34
+msgid ""
+"Create a Geometry object with\n"
+"toolpaths to cut outside polygons."
+msgstr ""
+"Create a Geometry object with\n"
+"toolpaths to cut outside polygons."
+
+#: AppGUI/ObjectUI.py:311
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:69
+msgid ""
+"Choose which tool to use for Gerber isolation:\n"
+"'Circular' or 'V-shape'.\n"
+"When the 'V-shape' is selected then the tool\n"
+"diameter will depend on the chosen cut depth."
+msgstr ""
+"Choose which tool to use for Gerber isolation:\n"
+"'Circular' or 'V-shape'.\n"
+"When the 'V-shape' is selected then the tool\n"
+"diameter will depend on the chosen cut depth."
+
+#: AppGUI/ObjectUI.py:317
+msgid "V-Shape"
+msgstr "V-Shape"
+
+#: AppGUI/ObjectUI.py:323 AppGUI/ObjectUI.py:1774
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:81
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:72
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:78
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:85 AppTools/ToolNCC.py:233
+#: AppTools/ToolNCC.py:240 AppTools/ToolPaint.py:215
+msgid "V-Tip Dia"
+msgstr "V-Tip Dia"
+
+#: AppGUI/ObjectUI.py:325 AppGUI/ObjectUI.py:1777
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:83
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:74
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:80 AppTools/ToolNCC.py:235
+#: AppTools/ToolPaint.py:217
+msgid "The tip diameter for V-Shape Tool"
+msgstr "The tip diameter for V-Shape Tool"
+
+#: AppGUI/ObjectUI.py:336 AppGUI/ObjectUI.py:1789
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:94
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:84
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:91
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:99 AppTools/ToolNCC.py:246
+#: AppTools/ToolNCC.py:254 AppTools/ToolPaint.py:228
+msgid "V-Tip Angle"
+msgstr "V-Tip Angle"
+
+#: AppGUI/ObjectUI.py:338 AppGUI/ObjectUI.py:1792
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:96
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:86
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:93 AppTools/ToolNCC.py:248
+#: AppTools/ToolPaint.py:230
+msgid ""
+"The tip angle for V-Shape Tool.\n"
+"In degree."
+msgstr ""
+"The tip angle for V-Shape Tool.\n"
+"In degree."
+
+#: AppGUI/ObjectUI.py:352 AppGUI/ObjectUI.py:1808
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:50
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:109
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61
+#: AppObjects/FlatCAMGeometry.py:1229 AppTools/ToolCutOut.py:141
+msgid ""
+"Cutting depth (negative)\n"
+"below the copper surface."
+msgstr ""
+"Cutting depth (negative)\n"
+"below the copper surface."
+
+#: AppGUI/ObjectUI.py:366
+msgid ""
+"Diameter of the cutting tool.\n"
+"If you want to have an isolation path\n"
+"inside the actual shape of the Gerber\n"
+"feature, use a negative value for\n"
+"this parameter."
+msgstr ""
+"Diameter of the cutting tool.\n"
+"If you want to have an isolation path\n"
+"inside the actual shape of the Gerber\n"
+"feature, use a negative value for\n"
+"this parameter."
+
+#: AppGUI/ObjectUI.py:382 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:56
+msgid "# Passes"
+msgstr "# Passes"
+
+#: AppGUI/ObjectUI.py:384 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:58
+msgid ""
+"Width of the isolation gap in\n"
+"number (integer) of tool widths."
+msgstr ""
+"Width of the isolation gap in\n"
+"number (integer) of tool widths."
+
+#: AppGUI/ObjectUI.py:395 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:68
+msgid "Pass overlap"
+msgstr "Pass overlap"
+
+#: AppGUI/ObjectUI.py:397 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:70
+msgid "How much (percentage) of the tool width to overlap each tool pass."
+msgstr "How much (percentage) of the tool width to overlap each tool pass."
+
+#: AppGUI/ObjectUI.py:411
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:58
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:97
+msgid ""
+"Milling type:\n"
+"- climb / best for precision milling and to reduce tool usage\n"
+"- conventional / useful when there is no backlash compensation"
+msgstr ""
+"Milling type:\n"
+"- climb / best for precision milling and to reduce tool usage\n"
+"- conventional / useful when there is no backlash compensation"
+
+#: AppGUI/ObjectUI.py:421
+msgid "Combine"
+msgstr "Combine"
+
+#: AppGUI/ObjectUI.py:423 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:109
+msgid "Combine all passes into one object"
+msgstr "Combine all passes into one object"
+
+#: AppGUI/ObjectUI.py:427
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:43
+msgid "\"Follow\""
+msgstr "\"Follow\""
+
+#: AppGUI/ObjectUI.py:428
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:45
+msgid ""
+"Generate a 'Follow' geometry.\n"
+"This means that it will cut through\n"
+"the middle of the trace."
+msgstr ""
+"Generate a 'Follow' geometry.\n"
+"This means that it will cut through\n"
+"the middle of the trace."
+
+#: AppGUI/ObjectUI.py:434
+msgid "Except"
+msgstr "Except"
+
+#: AppGUI/ObjectUI.py:437
+msgid ""
+"When the isolation geometry is generated,\n"
+"by checking this, the area of the object below\n"
+"will be subtracted from the isolation geometry."
+msgstr ""
+"When the isolation geometry is generated,\n"
+"by checking this, the area of the object below\n"
+"will be subtracted from the isolation geometry."
+
+#: AppGUI/ObjectUI.py:450
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:97
+#: AppObjects/FlatCAMGerber.py:239 AppObjects/FlatCAMGerber.py:327
+#: AppTools/ToolAlignObjects.py:73 AppTools/ToolAlignObjects.py:109
+#: AppTools/ToolCalibration.py:196 AppTools/ToolCalibration.py:631
+#: AppTools/ToolCalibration.py:648 AppTools/ToolCalibration.py:807
+#: AppTools/ToolCalibration.py:815 AppTools/ToolCopperThieving.py:144
+#: AppTools/ToolCopperThieving.py:158 AppTools/ToolCopperThieving.py:604
+#: AppTools/ToolCutOut.py:91 AppTools/ToolDblSided.py:224
+#: AppTools/ToolFilm.py:68 AppTools/ToolFilm.py:91 AppTools/ToolImage.py:49
+#: AppTools/ToolImage.py:252 AppTools/ToolImage.py:273 AppTools/ToolNCC.py:96
+#: AppTools/ToolNCC.py:558 AppTools/ToolNCC.py:1300 AppTools/ToolPaint.py:501
+#: AppTools/ToolPaint.py:705 AppTools/ToolPanelize.py:116
+#: AppTools/ToolPanelize.py:210 AppTools/ToolPanelize.py:385
+#: AppTools/ToolPanelize.py:402
+msgid "Gerber"
+msgstr "Gerber"
+
+#: AppGUI/ObjectUI.py:457 AppTools/ToolNCC.py:86 AppTools/ToolPaint.py:79
+msgid "Obj Type"
+msgstr "Obj Type"
+
+#: AppGUI/ObjectUI.py:459
+msgid ""
+"Specify the type of object to be excepted from isolation.\n"
+"It can be of type: Gerber or Geometry.\n"
+"What is selected here will dictate the kind\n"
+"of objects that will populate the 'Object' combobox."
+msgstr ""
+"Specify the type of object to be excepted from isolation.\n"
+"It can be of type: Gerber or Geometry.\n"
+"What is selected here will dictate the kind\n"
+"of objects that will populate the 'Object' combobox."
+
+#: AppGUI/ObjectUI.py:472 AppGUI/ObjectUI.py:1324 AppGUI/ObjectUI.py:2158
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:48
+#: AppTools/ToolCalibration.py:186 AppTools/ToolNCC.py:109
+#: AppTools/ToolPaint.py:102 AppTools/ToolPanelize.py:98
+#: AppTools/ToolQRCode.py:78
+msgid "Object"
+msgstr "Object"
+
+#: AppGUI/ObjectUI.py:473
+msgid "Object whose area will be removed from isolation geometry."
+msgstr "Object whose area will be removed from isolation geometry."
+
+#: AppGUI/ObjectUI.py:480 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:82
+msgid "Scope"
+msgstr "Scope"
+
+#: AppGUI/ObjectUI.py:482 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:84
+msgid ""
+"Isolation scope. Choose what to isolate:\n"
+"- 'All' -> Isolate all the polygons in the object\n"
+"- 'Selection' -> Isolate a selection of polygons."
+msgstr ""
+"Isolation scope. Choose what to isolate:\n"
+"- 'All' -> Isolate all the polygons in the object\n"
+"- 'Selection' -> Isolate a selection of polygons."
+
+#: AppGUI/ObjectUI.py:487
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:307
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:89
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:311
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:258
+#: AppTools/ToolNCC.py:539 AppTools/ToolPaint.py:455
+msgid "Selection"
+msgstr "Selection"
+
+#: AppGUI/ObjectUI.py:495
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:122
+msgid "Isolation Type"
+msgstr "Isolation Type"
+
+#: AppGUI/ObjectUI.py:497
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:124
+msgid ""
+"Choose how the isolation will be executed:\n"
+"- 'Full' -> complete isolation of polygons\n"
+"- 'Ext' -> will isolate only on the outside\n"
+"- 'Int' -> will isolate only on the inside\n"
+"'Exterior' isolation is almost always possible\n"
+"(with the right tool) but 'Interior'\n"
+"isolation can be done only when there is an opening\n"
+"inside of the polygon (e.g polygon is a 'doughnut' shape)."
+msgstr ""
+"Choose how the isolation will be executed:\n"
+"- 'Full' -> complete isolation of polygons\n"
+"- 'Ext' -> will isolate only on the outside\n"
+"- 'Int' -> will isolate only on the inside\n"
+"'Exterior' isolation is almost always possible\n"
+"(with the right tool) but 'Interior'\n"
+"isolation can be done only when there is an opening\n"
+"inside of the polygon (e.g polygon is a 'doughnut' shape)."
+
+#: AppGUI/ObjectUI.py:506
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:133
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:154
+msgid "Full"
+msgstr "Full"
+
+#: AppGUI/ObjectUI.py:507
+msgid "Ext"
+msgstr "Ext"
+
+#: AppGUI/ObjectUI.py:508
+msgid "Int"
+msgstr "Int"
+
+#: AppGUI/ObjectUI.py:513
+msgid "Generate Isolation Geometry"
+msgstr "Generate Isolation Geometry"
+
+#: AppGUI/ObjectUI.py:521
+msgid ""
+"Create a Geometry object with toolpaths to cut \n"
+"isolation outside, inside or on both sides of the\n"
+"object. For a Gerber object outside means outside\n"
+"of the Gerber feature and inside means inside of\n"
+"the Gerber feature, if possible at all. This means\n"
+"that only if the Gerber feature has openings inside, they\n"
+"will be isolated. If what is wanted is to cut isolation\n"
+"inside the actual Gerber feature, use a negative tool\n"
+"diameter above."
+msgstr ""
+"Create a Geometry object with toolpaths to cut \n"
+"isolation outside, inside or on both sides of the\n"
+"object. For a Gerber object outside means outside\n"
+"of the Gerber feature and inside means inside of\n"
+"the Gerber feature, if possible at all. This means\n"
+"that only if the Gerber feature has openings inside, they\n"
+"will be isolated. If what is wanted is to cut isolation\n"
+"inside the actual Gerber feature, use a negative tool\n"
+"diameter above."
+
+#: AppGUI/ObjectUI.py:533
+msgid "Buffer Solid Geometry"
+msgstr "Buffer Solid Geometry"
+
+#: AppGUI/ObjectUI.py:535
+msgid ""
+"This button is shown only when the Gerber file\n"
+"is loaded without buffering.\n"
+"Clicking this will create the buffered geometry\n"
+"required for isolation."
+msgstr ""
+"This button is shown only when the Gerber file\n"
+"is loaded without buffering.\n"
+"Clicking this will create the buffered geometry\n"
+"required for isolation."
+
+#: AppGUI/ObjectUI.py:567
+msgid "Clear N-copper"
+msgstr "Clear N-copper"
+
+#: AppGUI/ObjectUI.py:569 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:33
+msgid ""
+"Create a Geometry object with\n"
+"toolpaths to cut all non-copper regions."
+msgstr ""
+"Create a Geometry object with\n"
+"toolpaths to cut all non-copper regions."
+
+#: AppGUI/ObjectUI.py:576 AppGUI/ObjectUI.py:2289 AppTools/ToolNCC.py:599
+msgid ""
+"Create the Geometry Object\n"
+"for non-copper routing."
+msgstr ""
+"Create the Geometry Object\n"
+"for non-copper routing."
+
+#: AppGUI/ObjectUI.py:589
+msgid "Board cutout"
+msgstr "Board cutout"
+
+#: AppGUI/ObjectUI.py:591 AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:34
+msgid ""
+"Create toolpaths to cut around\n"
+"the PCB and separate it from\n"
+"the original board."
+msgstr ""
+"Create toolpaths to cut around\n"
+"the PCB and separate it from\n"
+"the original board."
+
+#: AppGUI/ObjectUI.py:598
+msgid ""
+"Generate the geometry for\n"
+"the board cutout."
+msgstr ""
+"Generate the geometry for\n"
+"the board cutout."
+
+#: AppGUI/ObjectUI.py:616 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:119
+msgid "Non-copper regions"
+msgstr "Non-copper regions"
+
+#: AppGUI/ObjectUI.py:618 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:121
+msgid ""
+"Create polygons covering the\n"
+"areas without copper on the PCB.\n"
+"Equivalent to the inverse of this\n"
+"object. Can be used to remove all\n"
+"copper from a specified region."
+msgstr ""
+"Create polygons covering the\n"
+"areas without copper on the PCB.\n"
+"Equivalent to the inverse of this\n"
+"object. Can be used to remove all\n"
+"copper from a specified region."
+
+#: AppGUI/ObjectUI.py:628 AppGUI/ObjectUI.py:669
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:133
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:166
+msgid "Boundary Margin"
+msgstr "Boundary Margin"
+
+#: AppGUI/ObjectUI.py:630 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:135
+msgid ""
+"Specify the edge of the PCB\n"
+"by drawing a box around all\n"
+"objects with this minimum\n"
+"distance."
+msgstr ""
+"Specify the edge of the PCB\n"
+"by drawing a box around all\n"
+"objects with this minimum\n"
+"distance."
+
+#: AppGUI/ObjectUI.py:645 AppGUI/ObjectUI.py:683
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:148
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:179
+msgid "Rounded Geo"
+msgstr "Rounded Geo"
+
+#: AppGUI/ObjectUI.py:647 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:150
+msgid "Resulting geometry will have rounded corners."
+msgstr "Resulting geometry will have rounded corners."
+
+#: AppGUI/ObjectUI.py:651 AppGUI/ObjectUI.py:692
+#: AppTools/ToolSolderPaste.py:134
+msgid "Generate Geo"
+msgstr "Generate Geo"
+
+#: AppGUI/ObjectUI.py:661 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:160
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137
+#: AppTools/ToolPanelize.py:99 AppTools/ToolQRCode.py:192
+msgid "Bounding Box"
+msgstr "Bounding Box"
+
+#: AppGUI/ObjectUI.py:663
+msgid ""
+"Create a geometry surrounding the Gerber object.\n"
+"Square shape."
+msgstr ""
+"Create a geometry surrounding the Gerber object.\n"
+"Square shape."
+
+#: AppGUI/ObjectUI.py:671 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:168
+msgid ""
+"Distance of the edges of the box\n"
+"to the nearest polygon."
+msgstr ""
+"Distance of the edges of the box\n"
+"to the nearest polygon."
+
+#: AppGUI/ObjectUI.py:685 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:181
+msgid ""
+"If the bounding box is \n"
+"to have rounded corners\n"
+"their radius is equal to\n"
+"the margin."
+msgstr ""
+"If the bounding box is \n"
+"to have rounded corners\n"
+"their radius is equal to\n"
+"the margin."
+
+#: AppGUI/ObjectUI.py:694
+msgid "Generate the Geometry object."
+msgstr "Generate the Geometry object."
+
+#: AppGUI/ObjectUI.py:721
+msgid "Excellon Object"
+msgstr "Excellon Object"
+
+#: AppGUI/ObjectUI.py:733
+msgid "Solid circles."
+msgstr "Solid circles."
+
+#: AppGUI/ObjectUI.py:781 AppGUI/ObjectUI.py:876 AppGUI/ObjectUI.py:2466
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:71
+#: AppTools/ToolProperties.py:166
+msgid "Drills"
+msgstr "Drills"
+
+#: AppGUI/ObjectUI.py:781 AppGUI/ObjectUI.py:877 AppGUI/ObjectUI.py:2466
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:158
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:72
+#: AppTools/ToolProperties.py:168
+msgid "Slots"
+msgstr "Slots"
+
+#: AppGUI/ObjectUI.py:786
+msgid ""
+"This is the Tool Number.\n"
+"When ToolChange is checked, on toolchange event this value\n"
+"will be showed as a T1, T2 ... Tn in the Machine Code.\n"
+"\n"
+"Here the tools are selected for G-code generation."
+msgstr ""
+"This is the Tool Number.\n"
+"When ToolChange is checked, on toolchange event this value\n"
+"will be showed as a T1, T2 ... Tn in the Machine Code.\n"
+"\n"
+"Here the tools are selected for G-code generation."
+
+#: AppGUI/ObjectUI.py:791 AppGUI/ObjectUI.py:1612 AppTools/ToolPaint.py:141
+msgid ""
+"Tool Diameter. It's value (in current FlatCAM units) \n"
+"is the cut width into the material."
+msgstr ""
+"Tool Diameter. It's value (in current FlatCAM units) \n"
+"is the cut width into the material."
+
+#: AppGUI/ObjectUI.py:794
+msgid ""
+"The number of Drill holes. Holes that are drilled with\n"
+"a drill bit."
+msgstr ""
+"The number of Drill holes. Holes that are drilled with\n"
+"a drill bit."
+
+#: AppGUI/ObjectUI.py:797
+msgid ""
+"The number of Slot holes. Holes that are created by\n"
+"milling them with an endmill bit."
+msgstr ""
+"The number of Slot holes. Holes that are created by\n"
+"milling them with an endmill bit."
+
+#: AppGUI/ObjectUI.py:800
+msgid ""
+"Toggle display of the drills for the current tool.\n"
+"This does not select the tools for G-code generation."
+msgstr ""
+"Toggle display of the drills for the current tool.\n"
+"This does not select the tools for G-code generation."
+
+#: AppGUI/ObjectUI.py:818 AppGUI/ObjectUI.py:1764
+#: AppObjects/FlatCAMExcellon.py:527 AppObjects/FlatCAMExcellon.py:805
+#: AppObjects/FlatCAMExcellon.py:821 AppObjects/FlatCAMExcellon.py:825
+#: AppObjects/FlatCAMGeometry.py:322 AppObjects/FlatCAMGeometry.py:816
+#: AppObjects/FlatCAMGeometry.py:852 AppTools/ToolNCC.py:331
+#: AppTools/ToolNCC.py:797 AppTools/ToolNCC.py:811 AppTools/ToolNCC.py:1196
+#: AppTools/ToolPaint.py:313 AppTools/ToolPaint.py:766
+#: AppTools/ToolPaint.py:778 AppTools/ToolPaint.py:1170
+msgid "Parameters for"
+msgstr "Parameters for"
+
+#: AppGUI/ObjectUI.py:821 AppGUI/ObjectUI.py:1767 AppTools/ToolNCC.py:334
+#: AppTools/ToolPaint.py:316
+msgid ""
+"The data used for creating GCode.\n"
+"Each tool store it's own set of such data."
+msgstr ""
+"The data used for creating GCode.\n"
+"Each tool store it's own set of such data."
+
+#: AppGUI/ObjectUI.py:847
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:48
+msgid ""
+"Operation type:\n"
+"- Drilling -> will drill the drills/slots associated with this tool\n"
+"- Milling -> will mill the drills/slots"
+msgstr ""
+"Operation type:\n"
+"- Drilling -> will drill the drills/slots associated with this tool\n"
+"- Milling -> will mill the drills/slots"
+
+#: AppGUI/ObjectUI.py:853
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:54
+msgid "Drilling"
+msgstr "Drilling"
+
+#: AppGUI/ObjectUI.py:854
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:55
+msgid "Milling"
+msgstr "Milling"
+
+#: AppGUI/ObjectUI.py:869
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:64
+msgid ""
+"Milling type:\n"
+"- Drills -> will mill the drills associated with this tool\n"
+"- Slots -> will mill the slots associated with this tool\n"
+"- Both -> will mill both drills and mills or whatever is available"
+msgstr ""
+"Milling type:\n"
+"- Drills -> will mill the drills associated with this tool\n"
+"- Slots -> will mill the slots associated with this tool\n"
+"- Both -> will mill both drills and mills or whatever is available"
+
+#: AppGUI/ObjectUI.py:878
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:73
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:210
+#: AppTools/ToolFilm.py:241
+msgid "Both"
+msgstr "Both"
+
+#: AppGUI/ObjectUI.py:886
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:80
+msgid "Milling Diameter"
+msgstr "Milling Diameter"
+
+#: AppGUI/ObjectUI.py:888
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:82
+msgid "The diameter of the tool who will do the milling"
+msgstr "The diameter of the tool who will do the milling"
+
+#: AppGUI/ObjectUI.py:902
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:95
+msgid ""
+"Drill depth (negative)\n"
+"below the copper surface."
+msgstr ""
+"Drill depth (negative)\n"
+"below the copper surface."
+
+#: AppGUI/ObjectUI.py:921 AppGUI/ObjectUI.py:1826
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:113
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:68
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79
+#: AppTools/ToolCutOut.py:159
+msgid "Multi-Depth"
+msgstr "Multi-Depth"
+
+#: AppGUI/ObjectUI.py:924 AppGUI/ObjectUI.py:1829
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:116
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:71
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82
+#: AppTools/ToolCutOut.py:162
+msgid ""
+"Use multiple passes to limit\n"
+"the cut depth in each pass. Will\n"
+"cut multiple times until Cut Z is\n"
+"reached."
+msgstr ""
+"Use multiple passes to limit\n"
+"the cut depth in each pass. Will\n"
+"cut multiple times until Cut Z is\n"
+"reached."
+
+#: AppGUI/ObjectUI.py:937 AppGUI/ObjectUI.py:1843
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:128
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94
+#: AppTools/ToolCutOut.py:176
+msgid "Depth of each pass (positive)."
+msgstr "Depth of each pass (positive)."
+
+#: AppGUI/ObjectUI.py:948
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:136
+msgid ""
+"Tool height when travelling\n"
+"across the XY plane."
+msgstr ""
+"Tool height when travelling\n"
+"across the XY plane."
+
+#: AppGUI/ObjectUI.py:969 AppGUI/ObjectUI.py:1873
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:187
+msgid ""
+"Cutting speed in the XY\n"
+"plane in units per minute"
+msgstr ""
+"Cutting speed in the XY\n"
+"plane in units per minute"
+
+#: AppGUI/ObjectUI.py:984
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:209
+msgid ""
+"Tool speed while drilling\n"
+"(in units per minute).\n"
+"So called 'Plunge' feedrate.\n"
+"This is for linear move G01."
+msgstr ""
+"Tool speed while drilling\n"
+"(in units per minute).\n"
+"So called 'Plunge' feedrate.\n"
+"This is for linear move G01."
+
+#: AppGUI/ObjectUI.py:999 AppGUI/ObjectUI.py:1900
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:80
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:64
+msgid "Feedrate Rapids"
+msgstr "Feedrate Rapids"
+
+#: AppGUI/ObjectUI.py:1001
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:82
+msgid ""
+"Tool speed while drilling\n"
+"(in units per minute).\n"
+"This is for the rapid move G00.\n"
+"It is useful only for Marlin,\n"
+"ignore for any other cases."
+msgstr ""
+"Tool speed while drilling\n"
+"(in units per minute).\n"
+"This is for the rapid move G00.\n"
+"It is useful only for Marlin,\n"
+"ignore for any other cases."
+
+#: AppGUI/ObjectUI.py:1021 AppGUI/ObjectUI.py:1920
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:82
+msgid "Re-cut"
+msgstr "Re-cut"
+
+#: AppGUI/ObjectUI.py:1023 AppGUI/ObjectUI.py:1036 AppGUI/ObjectUI.py:1922
+#: AppGUI/ObjectUI.py:1934
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:84
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:96
+msgid ""
+"In order to remove possible\n"
+"copper leftovers where first cut\n"
+"meet with last cut, we generate an\n"
+"extended cut over the first cut section."
+msgstr ""
+"In order to remove possible\n"
+"copper leftovers where first cut\n"
+"meet with last cut, we generate an\n"
+"extended cut over the first cut section."
+
+#: AppGUI/ObjectUI.py:1049 AppGUI/ObjectUI.py:1943
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:216
+#: AppObjects/FlatCAMExcellon.py:1412 AppObjects/FlatCAMGeometry.py:1676
+msgid "Spindle speed"
+msgstr "Spindle speed"
+
+#: AppGUI/ObjectUI.py:1051
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:224
+msgid ""
+"Speed of the spindle\n"
+"in RPM (optional)"
+msgstr ""
+"Speed of the spindle\n"
+"in RPM (optional)"
+
+#: AppGUI/ObjectUI.py:1066 AppGUI/ObjectUI.py:1962
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:238
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:234
+msgid ""
+"Pause to allow the spindle to reach its\n"
+"speed before cutting."
+msgstr ""
+"Pause to allow the spindle to reach its\n"
+"speed before cutting."
+
+#: AppGUI/ObjectUI.py:1077 AppGUI/ObjectUI.py:1972
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:246
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:239
+msgid "Number of time units for spindle to dwell."
+msgstr "Number of time units for spindle to dwell."
+
+#: AppGUI/ObjectUI.py:1087
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:46
+msgid "Offset Z"
+msgstr "Offset Z"
+
+#: AppGUI/ObjectUI.py:1089
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:48
+msgid ""
+"Some drill bits (the larger ones) need to drill deeper\n"
+"to create the desired exit hole diameter due of the tip shape.\n"
+"The value here can compensate the Cut Z parameter."
+msgstr ""
+"Some drill bits (the larger ones) need to drill deeper\n"
+"to create the desired exit hole diameter due of the tip shape.\n"
+"The value here can compensate the Cut Z parameter."
+
+#: AppGUI/ObjectUI.py:1149 AppGUI/ObjectUI.py:2026 AppTools/ToolNCC.py:492
+#: AppTools/ToolPaint.py:422
+msgid "Apply parameters to all tools"
+msgstr "Apply parameters to all tools"
+
+#: AppGUI/ObjectUI.py:1151 AppGUI/ObjectUI.py:2028 AppTools/ToolNCC.py:494
+#: AppTools/ToolPaint.py:424
+msgid ""
+"The parameters in the current form will be applied\n"
+"on all the tools from the Tool Table."
+msgstr ""
+"The parameters in the current form will be applied\n"
+"on all the tools from the Tool Table."
+
+#: AppGUI/ObjectUI.py:1162 AppGUI/ObjectUI.py:2039 AppTools/ToolNCC.py:505
+#: AppTools/ToolPaint.py:435
+msgid "Common Parameters"
+msgstr "Common Parameters"
+
+#: AppGUI/ObjectUI.py:1164 AppGUI/ObjectUI.py:2041 AppTools/ToolNCC.py:507
+#: AppTools/ToolPaint.py:437
+msgid "Parameters that are common for all tools."
+msgstr "Parameters that are common for all tools."
+
+#: AppGUI/ObjectUI.py:1169 AppGUI/ObjectUI.py:2046
+msgid "Tool change Z"
+msgstr "Tool change Z"
+
+#: AppGUI/ObjectUI.py:1171
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:154
+msgid ""
+"Include tool-change sequence\n"
+"in G-Code (Pause for tool change)."
+msgstr ""
+"Include tool-change sequence\n"
+"in G-Code (Pause for tool change)."
+
+#: AppGUI/ObjectUI.py:1178 AppGUI/ObjectUI.py:2057
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:162
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:134
+msgid ""
+"Z-axis position (height) for\n"
+"tool change."
+msgstr ""
+"Z-axis position (height) for\n"
+"tool change."
+
+#: AppGUI/ObjectUI.py:1195
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:71
+msgid ""
+"Height of the tool just after start.\n"
+"Delete the value if you don't need this feature."
+msgstr ""
+"Height of the tool just after start.\n"
+"Delete the value if you don't need this feature."
+
+#: AppGUI/ObjectUI.py:1204 AppGUI/ObjectUI.py:2085
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:178
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:153
+msgid "End move Z"
+msgstr "End move Z"
+
+#: AppGUI/ObjectUI.py:1206 AppGUI/ObjectUI.py:2087
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:180
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:155
+msgid ""
+"Height of the tool after\n"
+"the last move at the end of the job."
+msgstr ""
+"Height of the tool after\n"
+"the last move at the end of the job."
+
+#: AppGUI/ObjectUI.py:1223 AppGUI/ObjectUI.py:2104
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:195
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:173
+msgid "End move X,Y"
+msgstr "End move X,Y"
+
+#: AppGUI/ObjectUI.py:1225 AppGUI/ObjectUI.py:2106
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:197
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:175
+msgid ""
+"End move X,Y position. In format (x,y).\n"
+"If no value is entered then there is no move\n"
+"on X,Y plane at the end of the job."
+msgstr ""
+"End move X,Y position. In format (x,y).\n"
+"If no value is entered then there is no move\n"
+"on X,Y plane at the end of the job."
+
+#: AppGUI/ObjectUI.py:1235 AppGUI/ObjectUI.py:1980
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:96
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:105
+msgid "Probe Z depth"
+msgstr "Probe Z depth"
+
+#: AppGUI/ObjectUI.py:1237 AppGUI/ObjectUI.py:1982
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:98
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:107
+msgid ""
+"The maximum depth that the probe is allowed\n"
+"to probe. Negative value, in current units."
+msgstr ""
+"The maximum depth that the probe is allowed\n"
+"to probe. Negative value, in current units."
+
+#: AppGUI/ObjectUI.py:1254 AppGUI/ObjectUI.py:1997
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:109
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:120
+msgid "Feedrate Probe"
+msgstr "Feedrate Probe"
+
+#: AppGUI/ObjectUI.py:1256 AppGUI/ObjectUI.py:1999
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:111
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:122
+msgid "The feedrate used while the probe is probing."
+msgstr "The feedrate used while the probe is probing."
+
+#: AppGUI/ObjectUI.py:1272
+msgid "Preprocessor E"
+msgstr "Preprocessor E"
+
+#: AppGUI/ObjectUI.py:1274
+msgid ""
+"The preprocessor JSON file that dictates\n"
+"Gcode output for Excellon Objects."
+msgstr ""
+"The preprocessor JSON file that dictates\n"
+"Gcode output for Excellon Objects."
+
+#: AppGUI/ObjectUI.py:1284
+msgid "Preprocessor G"
+msgstr "Preprocessor G"
+
+#: AppGUI/ObjectUI.py:1286
+msgid ""
+"The preprocessor JSON file that dictates\n"
+"Gcode output for Geometry (Milling) Objects."
+msgstr ""
+"The preprocessor JSON file that dictates\n"
+"Gcode output for Geometry (Milling) Objects."
+
+#: AppGUI/ObjectUI.py:1300 AppGUI/ObjectUI.py:2134
+msgid "Add exclusion areas"
+msgstr "Add exclusion areas"
+
+#: AppGUI/ObjectUI.py:1303 AppGUI/ObjectUI.py:2137
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:204
+msgid ""
+"Include exclusion areas.\n"
+"In those areas the travel of the tools\n"
+"is forbidden."
+msgstr ""
+"Include exclusion areas.\n"
+"In those areas the travel of the tools\n"
+"is forbidden."
+
+#: AppGUI/ObjectUI.py:1324 AppGUI/ObjectUI.py:1343 AppGUI/ObjectUI.py:2158
+#: AppGUI/ObjectUI.py:2177
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:224
+msgid "Strategy"
+msgstr "Strategy"
+
+#: AppGUI/ObjectUI.py:1324 AppGUI/ObjectUI.py:1355 AppGUI/ObjectUI.py:2158
+#: AppGUI/ObjectUI.py:2189
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:236
+msgid "Over Z"
+msgstr "Over Z"
+
+#: AppGUI/ObjectUI.py:1326 AppGUI/ObjectUI.py:2160
+msgid "This is the Area ID."
+msgstr "This is the Area ID."
+
+#: AppGUI/ObjectUI.py:1328 AppGUI/ObjectUI.py:2162
+msgid "Type of the object where the exclusion area was added."
+msgstr "Type of the object where the exclusion area was added."
+
+#: AppGUI/ObjectUI.py:1330 AppGUI/ObjectUI.py:2164
+msgid ""
+"The strategy used for exclusion area. Go around the exclusion areas or over "
+"it."
+msgstr ""
+"The strategy used for exclusion area. Go around the exclusion areas or over "
+"it."
+
+#: AppGUI/ObjectUI.py:1332 AppGUI/ObjectUI.py:2166
+msgid ""
+"If the strategy is to go over the area then this is the height at which the "
+"tool will go to avoid the exclusion area."
+msgstr ""
+"If the strategy is to go over the area then this is the height at which the "
+"tool will go to avoid the exclusion area."
+
+#: AppGUI/ObjectUI.py:1344 AppGUI/ObjectUI.py:2178
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:225
+msgid ""
+"The strategy followed when encountering an exclusion area.\n"
+"Can be:\n"
+"- Over -> when encountering the area, the tool will go to a set height\n"
+"- Around -> will avoid the exclusion area by going around the area"
+msgstr ""
+"The strategy followed when encountering an exclusion area.\n"
+"Can be:\n"
+"- Over -> when encountering the area, the tool will go to a set height\n"
+"- Around -> will avoid the exclusion area by going around the area"
+
+#: AppGUI/ObjectUI.py:1348 AppGUI/ObjectUI.py:2182
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:229
+msgid "Over"
+msgstr "Over"
+
+#: AppGUI/ObjectUI.py:1349 AppGUI/ObjectUI.py:2183
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:230
+msgid "Around"
+msgstr "Around"
+
+#: AppGUI/ObjectUI.py:1356 AppGUI/ObjectUI.py:2190
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:237
+msgid ""
+"The height Z to which the tool will rise in order to avoid\n"
+"an interdiction area."
+msgstr ""
+"The height Z to which the tool will rise in order to avoid\n"
+"an interdiction area."
+
+#: AppGUI/ObjectUI.py:1366 AppGUI/ObjectUI.py:2200
+msgid "Add area:"
+msgstr "Add area:"
+
+#: AppGUI/ObjectUI.py:1367 AppGUI/ObjectUI.py:2201
+msgid "Add an Exclusion Area."
+msgstr "Add an Exclusion Area."
+
+#: AppGUI/ObjectUI.py:1373 AppGUI/ObjectUI.py:2207
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:214
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:324
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:288
+#: AppTools/ToolNCC.py:580 AppTools/ToolPaint.py:523
+msgid "The kind of selection shape used for area selection."
+msgstr "The kind of selection shape used for area selection."
+
+#: AppGUI/ObjectUI.py:1383 AppGUI/ObjectUI.py:2217
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:32
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:42
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:32
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:32
+msgid "Delete All"
+msgstr "Delete All"
+
+#: AppGUI/ObjectUI.py:1384 AppGUI/ObjectUI.py:2218
+msgid "Delete all exclusion areas."
+msgstr "Delete all exclusion areas."
+
+#: AppGUI/ObjectUI.py:1387 AppGUI/ObjectUI.py:2221
+msgid "Delete Selected"
+msgstr "Delete Selected"
+
+#: AppGUI/ObjectUI.py:1388 AppGUI/ObjectUI.py:2222
+msgid "Delete all exclusion areas that are selected in the table."
+msgstr "Delete all exclusion areas that are selected in the table."
+
+#: AppGUI/ObjectUI.py:1412 AppGUI/ObjectUI.py:2238
+msgid ""
+"Add / Select at least one tool in the tool-table.\n"
+"Click the # header to select all, or Ctrl + LMB\n"
+"for custom selection of tools."
+msgstr ""
+"Add / Select at least one tool in the tool-table.\n"
+"Click the # header to select all, or Ctrl + LMB\n"
+"for custom selection of tools."
+
+#: AppGUI/ObjectUI.py:1420 AppGUI/ObjectUI.py:2245
+msgid "Generate CNCJob object"
+msgstr "Generate CNCJob object"
+
+#: AppGUI/ObjectUI.py:1422
+msgid ""
+"Generate the CNC Job.\n"
+"If milling then an additional Geometry object will be created"
+msgstr ""
+"Generate the CNC Job.\n"
+"If milling then an additional Geometry object will be created"
+
+#: AppGUI/ObjectUI.py:1439
+msgid "Milling Geometry"
+msgstr "Milling Geometry"
+
+#: AppGUI/ObjectUI.py:1441
+msgid ""
+"Create Geometry for milling holes.\n"
+"Select from the Tools Table above the hole dias to be\n"
+"milled. Use the # column to make the selection."
+msgstr ""
+"Create Geometry for milling holes.\n"
+"Select from the Tools Table above the hole dias to be\n"
+"milled. Use the # column to make the selection."
+
+#: AppGUI/ObjectUI.py:1449
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:296
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:45
+msgid "Diameter of the cutting tool."
+msgstr "Diameter of the cutting tool."
+
+#: AppGUI/ObjectUI.py:1459
+msgid "Mill Drills"
+msgstr "Mill Drills"
+
+#: AppGUI/ObjectUI.py:1461
+msgid ""
+"Create the Geometry Object\n"
+"for milling DRILLS toolpaths."
+msgstr ""
+"Create the Geometry Object\n"
+"for milling DRILLS toolpaths."
+
+#: AppGUI/ObjectUI.py:1479
+msgid "Mill Slots"
+msgstr "Mill Slots"
+
+#: AppGUI/ObjectUI.py:1481
+msgid ""
+"Create the Geometry Object\n"
+"for milling SLOTS toolpaths."
+msgstr ""
+"Create the Geometry Object\n"
+"for milling SLOTS toolpaths."
+
+#: AppGUI/ObjectUI.py:1523 AppTools/ToolCutOut.py:319
+msgid "Geometry Object"
+msgstr "Geometry Object"
+
+#: AppGUI/ObjectUI.py:1569
+msgid ""
+"Tools in this Geometry object used for cutting.\n"
+"The 'Offset' entry will set an offset for the cut.\n"
+"'Offset' can be inside, outside, on path (none) and custom.\n"
+"'Type' entry is only informative and it allow to know the \n"
+"intent of using the current tool. \n"
+"It can be Rough(ing), Finish(ing) or Iso(lation).\n"
+"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n"
+"ball(B), or V-Shaped(V). \n"
+"When V-shaped is selected the 'Type' entry is automatically \n"
+"set to Isolation, the CutZ parameter in the UI form is\n"
+"grayed out and Cut Z is automatically calculated from the newly \n"
+"showed UI form entries named V-Tip Dia and V-Tip Angle."
+msgstr ""
+"Tools in this Geometry object used for cutting.\n"
+"The 'Offset' entry will set an offset for the cut.\n"
+"'Offset' can be inside, outside, on path (none) and custom.\n"
+"'Type' entry is only informative and it allow to know the \n"
+"intent of using the current tool. \n"
+"It can be Rough(ing), Finish(ing) or Iso(lation).\n"
+"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n"
+"ball(B), or V-Shaped(V). \n"
+"When V-shaped is selected the 'Type' entry is automatically \n"
+"set to Isolation, the CutZ parameter in the UI form is\n"
+"grayed out and Cut Z is automatically calculated from the newly \n"
+"showed UI form entries named V-Tip Dia and V-Tip Angle."
+
+#: AppGUI/ObjectUI.py:1586 AppGUI/ObjectUI.py:2443
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:40
+msgid "Plot Object"
+msgstr "Plot Object"
+
+#: AppGUI/ObjectUI.py:1599 AppGUI/ObjectUI.py:2456 AppGUI/ObjectUI.py:2466
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138
+#: AppTools/ToolCopperThieving.py:221
+msgid "Dia"
+msgstr "Dia"
+
+#: AppGUI/ObjectUI.py:1599 AppGUI/ObjectUI.py:2456 AppTools/ToolNCC.py:132
+#: AppTools/ToolPaint.py:127
+msgid "TT"
+msgstr "TT"
+
+#: AppGUI/ObjectUI.py:1606
+msgid ""
+"This is the Tool Number.\n"
+"When ToolChange is checked, on toolchange event this value\n"
+"will be showed as a T1, T2 ... Tn"
+msgstr ""
+"This is the Tool Number.\n"
+"When ToolChange is checked, on toolchange event this value\n"
+"will be showed as a T1, T2 ... Tn"
+
+#: AppGUI/ObjectUI.py:1617
+msgid ""
+"The value for the Offset can be:\n"
+"- Path -> There is no offset, the tool cut will be done through the geometry "
+"line.\n"
+"- In(side) -> The tool cut will follow the geometry inside. It will create a "
+"'pocket'.\n"
+"- Out(side) -> The tool cut will follow the geometry line on the outside."
+msgstr ""
+"The value for the Offset can be:\n"
+"- Path -> There is no offset, the tool cut will be done through the geometry "
+"line.\n"
+"- In(side) -> The tool cut will follow the geometry inside. It will create a "
+"'pocket'.\n"
+"- Out(side) -> The tool cut will follow the geometry line on the outside."
+
+#: AppGUI/ObjectUI.py:1624
+msgid ""
+"The (Operation) Type has only informative value. Usually the UI form "
+"values \n"
+"are choose based on the operation type and this will serve as a reminder.\n"
+"Can be 'Roughing', 'Finishing' or 'Isolation'.\n"
+"For Roughing we may choose a lower Feedrate and multiDepth cut.\n"
+"For Finishing we may choose a higher Feedrate, without multiDepth.\n"
+"For Isolation we need a lower Feedrate as it use a milling bit with a fine "
+"tip."
+msgstr ""
+"The (Operation) Type has only informative value. Usually the UI form "
+"values \n"
+"are choose based on the operation type and this will serve as a reminder.\n"
+"Can be 'Roughing', 'Finishing' or 'Isolation'.\n"
+"For Roughing we may choose a lower Feedrate and multiDepth cut.\n"
+"For Finishing we may choose a higher Feedrate, without multiDepth.\n"
+"For Isolation we need a lower Feedrate as it use a milling bit with a fine "
+"tip."
+
+#: AppGUI/ObjectUI.py:1633
+msgid ""
+"The Tool Type (TT) can be:\n"
+"- Circular with 1 ... 4 teeth -> it is informative only. Being circular the "
+"cut width in material\n"
+"is exactly the tool diameter.\n"
+"- Ball -> informative only and make reference to the Ball type endmill.\n"
+"- V-Shape -> it will disable Z-Cut parameter in the UI form and enable two "
+"additional UI form\n"
+"fields: V-Tip Dia and V-Tip Angle. Adjusting those two values will adjust "
+"the Z-Cut parameter such\n"
+"as the cut width into material will be equal with the value in the Tool "
+"Diameter column of this table.\n"
+"Choosing the V-Shape Tool Type automatically will select the Operation Type "
+"as Isolation."
+msgstr ""
+"The Tool Type (TT) can be:\n"
+"- Circular with 1 ... 4 teeth -> it is informative only. Being circular the "
+"cut width in material\n"
+"is exactly the tool diameter.\n"
+"- Ball -> informative only and make reference to the Ball type endmill.\n"
+"- V-Shape -> it will disable Z-Cut parameter in the UI form and enable two "
+"additional UI form\n"
+"fields: V-Tip Dia and V-Tip Angle. Adjusting those two values will adjust "
+"the Z-Cut parameter such\n"
+"as the cut width into material will be equal with the value in the Tool "
+"Diameter column of this table.\n"
+"Choosing the V-Shape Tool Type automatically will select the Operation Type "
+"as Isolation."
+
+#: AppGUI/ObjectUI.py:1645
+msgid ""
+"Plot column. It is visible only for MultiGeo geometries, meaning geometries "
+"that holds the geometry\n"
+"data into the tools. For those geometries, deleting the tool will delete the "
+"geometry data also,\n"
+"so be WARNED. From the checkboxes on each row it can be enabled/disabled the "
+"plot on canvas\n"
+"for the corresponding tool."
+msgstr ""
+"Plot column. It is visible only for MultiGeo geometries, meaning geometries "
+"that holds the geometry\n"
+"data into the tools. For those geometries, deleting the tool will delete the "
+"geometry data also,\n"
+"so be WARNED. From the checkboxes on each row it can be enabled/disabled the "
+"plot on canvas\n"
+"for the corresponding tool."
+
+#: AppGUI/ObjectUI.py:1663
+msgid ""
+"The value to offset the cut when \n"
+"the Offset type selected is 'Offset'.\n"
+"The value can be positive for 'outside'\n"
+"cut and negative for 'inside' cut."
+msgstr ""
+"The value to offset the cut when \n"
+"the Offset type selected is 'Offset'.\n"
+"The value can be positive for 'outside'\n"
+"cut and negative for 'inside' cut."
+
+#: AppGUI/ObjectUI.py:1682 AppTools/ToolNCC.py:209 AppTools/ToolNCC.py:923
+#: AppTools/ToolPaint.py:191 AppTools/ToolPaint.py:848
+#: AppTools/ToolSolderPaste.py:559
+msgid "New Tool"
+msgstr "New Tool"
+
+#: AppGUI/ObjectUI.py:1699
+msgid ""
+"Add a new tool to the Tool Table\n"
+"with the specified diameter."
+msgstr ""
+"Add a new tool to the Tool Table\n"
+"with the specified diameter."
+
+#: AppGUI/ObjectUI.py:1704 AppTools/ToolNCC.py:300 AppTools/ToolNCC.py:634
+#: AppTools/ToolPaint.py:282 AppTools/ToolPaint.py:678
+msgid "Add from DB"
+msgstr "Add from DB"
+
+#: AppGUI/ObjectUI.py:1706 AppTools/ToolNCC.py:302 AppTools/ToolPaint.py:284
+msgid ""
+"Add a new tool to the Tool Table\n"
+"from the Tool DataBase."
+msgstr ""
+"Add a new tool to the Tool Table\n"
+"from the Tool DataBase."
+
+#: AppGUI/ObjectUI.py:1721
+msgid ""
+"Copy a selection of tools in the Tool Table\n"
+"by first selecting a row in the Tool Table."
+msgstr ""
+"Copy a selection of tools in the Tool Table\n"
+"by first selecting a row in the Tool Table."
+
+#: AppGUI/ObjectUI.py:1727
+msgid ""
+"Delete a selection of tools in the Tool Table\n"
+"by first selecting a row in the Tool Table."
+msgstr ""
+"Delete a selection of tools in the Tool Table\n"
+"by first selecting a row in the Tool Table."
+
+#: AppGUI/ObjectUI.py:1854
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:103
+msgid ""
+"Height of the tool when\n"
+"moving without cutting."
+msgstr ""
+"Height of the tool when\n"
+"moving without cutting."
+
+#: AppGUI/ObjectUI.py:1887
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:202
+msgid ""
+"Cutting speed in the XY\n"
+"plane in units per minute.\n"
+"It is called also Plunge."
+msgstr ""
+"Cutting speed in the XY\n"
+"plane in units per minute.\n"
+"It is called also Plunge."
+
+#: AppGUI/ObjectUI.py:1902
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:66
+msgid ""
+"Cutting speed in the XY plane\n"
+"(in units per minute).\n"
+"This is for the rapid move G00.\n"
+"It is useful only for Marlin,\n"
+"ignore for any other cases."
+msgstr ""
+"Cutting speed in the XY plane\n"
+"(in units per minute).\n"
+"This is for the rapid move G00.\n"
+"It is useful only for Marlin,\n"
+"ignore for any other cases."
+
+#: AppGUI/ObjectUI.py:1946
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:219
+msgid ""
+"Speed of the spindle in RPM (optional).\n"
+"If LASER preprocessor is used,\n"
+"this value is the power of laser."
+msgstr ""
+"Speed of the spindle in RPM (optional).\n"
+"If LASER preprocessor is used,\n"
+"this value is the power of laser."
+
+#: AppGUI/ObjectUI.py:2049
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:124
+msgid ""
+"Include tool-change sequence\n"
+"in the Machine Code (Pause for tool change)."
+msgstr ""
+"Include tool-change sequence\n"
+"in the Machine Code (Pause for tool change)."
+
+#: AppGUI/ObjectUI.py:2118
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:256
+msgid ""
+"The Preprocessor file that dictates\n"
+"the Machine Code (like GCode, RML, HPGL) output."
+msgstr ""
+"The Preprocessor file that dictates\n"
+"the Machine Code (like GCode, RML, HPGL) output."
+
+#: AppGUI/ObjectUI.py:2247 Common.py:405 Common.py:520 Common.py:573
+msgid "Generate the CNC Job object."
+msgstr "Generate the CNC Job object."
+
+#: AppGUI/ObjectUI.py:2264
+msgid "Launch Paint Tool in Tools Tab."
+msgstr "Launch Paint Tool in Tools Tab."
+
+#: AppGUI/ObjectUI.py:2272 AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:35
+msgid ""
+"Creates tool paths to cover the\n"
+"whole area of a polygon (remove\n"
+"all copper). You will be asked\n"
+"to click on the desired polygon."
+msgstr ""
+"Creates tool paths to cover the\n"
+"whole area of a polygon (remove\n"
+"all copper). You will be asked\n"
+"to click on the desired polygon."
+
+#: AppGUI/ObjectUI.py:2327
+msgid "CNC Job Object"
+msgstr "CNC Job Object"
+
+#: AppGUI/ObjectUI.py:2338 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:45
+msgid "Plot kind"
+msgstr "Plot kind"
+
+#: AppGUI/ObjectUI.py:2341 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:47
+msgid ""
+"This selects the kind of geometries on the canvas to plot.\n"
+"Those can be either of type 'Travel' which means the moves\n"
+"above the work piece or it can be of type 'Cut',\n"
+"which means the moves that cut into the material."
+msgstr ""
+"This selects the kind of geometries on the canvas to plot.\n"
+"Those can be either of type 'Travel' which means the moves\n"
+"above the work piece or it can be of type 'Cut',\n"
+"which means the moves that cut into the material."
+
+#: AppGUI/ObjectUI.py:2350 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:55
+msgid "Travel"
+msgstr "Travel"
+
+#: AppGUI/ObjectUI.py:2354 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:64
+msgid "Display Annotation"
+msgstr "Display Annotation"
+
+#: AppGUI/ObjectUI.py:2356 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:66
+msgid ""
+"This selects if to display text annotation on the plot.\n"
+"When checked it will display numbers in order for each end\n"
+"of a travel line."
+msgstr ""
+"This selects if to display text annotation on the plot.\n"
+"When checked it will display numbers in order for each end\n"
+"of a travel line."
+
+#: AppGUI/ObjectUI.py:2371
+msgid "Travelled dist."
+msgstr "Travelled dist."
+
+#: AppGUI/ObjectUI.py:2373 AppGUI/ObjectUI.py:2378
+msgid ""
+"This is the total travelled distance on X-Y plane.\n"
+"In current units."
+msgstr ""
+"This is the total travelled distance on X-Y plane.\n"
+"In current units."
+
+#: AppGUI/ObjectUI.py:2383
+msgid "Estimated time"
+msgstr "Estimated time"
+
+#: AppGUI/ObjectUI.py:2385 AppGUI/ObjectUI.py:2390
+msgid ""
+"This is the estimated time to do the routing/drilling,\n"
+"without the time spent in ToolChange events."
+msgstr ""
+"This is the estimated time to do the routing/drilling,\n"
+"without the time spent in ToolChange events."
+
+#: AppGUI/ObjectUI.py:2425
+msgid "CNC Tools Table"
+msgstr "CNC Tools Table"
+
+#: AppGUI/ObjectUI.py:2428
+msgid ""
+"Tools in this CNCJob object used for cutting.\n"
+"The tool diameter is used for plotting on canvas.\n"
+"The 'Offset' entry will set an offset for the cut.\n"
+"'Offset' can be inside, outside, on path (none) and custom.\n"
+"'Type' entry is only informative and it allow to know the \n"
+"intent of using the current tool. \n"
+"It can be Rough(ing), Finish(ing) or Iso(lation).\n"
+"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n"
+"ball(B), or V-Shaped(V)."
+msgstr ""
+"Tools in this CNCJob object used for cutting.\n"
+"The tool diameter is used for plotting on canvas.\n"
+"The 'Offset' entry will set an offset for the cut.\n"
+"'Offset' can be inside, outside, on path (none) and custom.\n"
+"'Type' entry is only informative and it allow to know the \n"
+"intent of using the current tool. \n"
+"It can be Rough(ing), Finish(ing) or Iso(lation).\n"
+"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n"
+"ball(B), or V-Shaped(V)."
+
+#: AppGUI/ObjectUI.py:2456 AppGUI/ObjectUI.py:2467
+msgid "P"
+msgstr "P"
+
+#: AppGUI/ObjectUI.py:2477
+msgid "Update Plot"
+msgstr "Update Plot"
+
+#: AppGUI/ObjectUI.py:2479
+msgid "Update the plot."
+msgstr "Update the plot."
+
+#: AppGUI/ObjectUI.py:2486
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:30
+msgid "Export CNC Code"
+msgstr "Export CNC Code"
+
+#: AppGUI/ObjectUI.py:2488
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:32
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:33
+msgid ""
+"Export and save G-Code to\n"
+"make this object to a file."
+msgstr ""
+"Export and save G-Code to\n"
+"make this object to a file."
+
+#: AppGUI/ObjectUI.py:2494
+msgid "Prepend to CNC Code"
+msgstr "Prepend to CNC Code"
+
+#: AppGUI/ObjectUI.py:2496 AppGUI/ObjectUI.py:2503
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:49
+msgid ""
+"Type here any G-Code commands you would\n"
+"like to add at the beginning of the G-Code file."
+msgstr ""
+"Type here any G-Code commands you would\n"
+"like to add at the beginning of the G-Code file."
+
+#: AppGUI/ObjectUI.py:2509
+msgid "Append to CNC Code"
+msgstr "Append to CNC Code"
+
+#: AppGUI/ObjectUI.py:2511 AppGUI/ObjectUI.py:2519
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:65
+msgid ""
+"Type here any G-Code commands you would\n"
+"like to append to the generated file.\n"
+"I.e.: M2 (End of program)"
+msgstr ""
+"Type here any G-Code commands you would\n"
+"like to append to the generated file.\n"
+"I.e.: M2 (End of program)"
+
+#: AppGUI/ObjectUI.py:2533
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:38
+msgid "Toolchange G-Code"
+msgstr "Toolchange G-Code"
+
+#: AppGUI/ObjectUI.py:2536
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:41
+msgid ""
+"Type here any G-Code commands you would\n"
+"like to be executed when Toolchange event is encountered.\n"
+"This will constitute a Custom Toolchange GCode,\n"
+"or a Toolchange Macro.\n"
+"The FlatCAM variables are surrounded by '%' symbol.\n"
+"\n"
+"WARNING: it can be used only with a preprocessor file\n"
+"that has 'toolchange_custom' in it's name and this is built\n"
+"having as template the 'Toolchange Custom' posprocessor file."
+msgstr ""
+"Type here any G-Code commands you would\n"
+"like to be executed when Toolchange event is encountered.\n"
+"This will constitute a Custom Toolchange GCode,\n"
+"or a Toolchange Macro.\n"
+"The FlatCAM variables are surrounded by '%' symbol.\n"
+"\n"
+"WARNING: it can be used only with a preprocessor file\n"
+"that has 'toolchange_custom' in it's name and this is built\n"
+"having as template the 'Toolchange Custom' posprocessor file."
+
+#: AppGUI/ObjectUI.py:2551
+msgid ""
+"Type here any G-Code commands you would\n"
+"like to be executed when Toolchange event is encountered.\n"
+"This will constitute a Custom Toolchange GCode,\n"
+"or a Toolchange Macro.\n"
+"The FlatCAM variables are surrounded by '%' symbol.\n"
+"WARNING: it can be used only with a preprocessor file\n"
+"that has 'toolchange_custom' in it's name."
+msgstr ""
+"Type here any G-Code commands you would\n"
+"like to be executed when Toolchange event is encountered.\n"
+"This will constitute a Custom Toolchange GCode,\n"
+"or a Toolchange Macro.\n"
+"The FlatCAM variables are surrounded by '%' symbol.\n"
+"WARNING: it can be used only with a preprocessor file\n"
+"that has 'toolchange_custom' in it's name."
+
+#: AppGUI/ObjectUI.py:2566
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:80
+msgid "Use Toolchange Macro"
+msgstr "Use Toolchange Macro"
+
+#: AppGUI/ObjectUI.py:2568
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:82
+msgid ""
+"Check this box if you want to use\n"
+"a Custom Toolchange GCode (macro)."
+msgstr ""
+"Check this box if you want to use\n"
+"a Custom Toolchange GCode (macro)."
+
+#: AppGUI/ObjectUI.py:2576
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:94
+msgid ""
+"A list of the FlatCAM variables that can be used\n"
+"in the Toolchange event.\n"
+"They have to be surrounded by the '%' symbol"
+msgstr ""
+"A list of the FlatCAM variables that can be used\n"
+"in the Toolchange event.\n"
+"They have to be surrounded by the '%' symbol"
+
+#: AppGUI/ObjectUI.py:2583
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:101
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:30
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:31
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:31
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:37
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:36
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:36
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:36
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:31
+#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:31
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:36
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:31
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:30
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:35
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:32
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31
+#: AppTools/ToolCopperThieving.py:89 AppTools/ToolCorners.py:106
+#: AppTools/ToolEtchCompensation.py:82 AppTools/ToolFiducials.py:149
+#: AppTools/ToolInvertGerber.py:82
+msgid "Parameters"
+msgstr "Parameters"
+
+#: AppGUI/ObjectUI.py:2586
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:106
+msgid "FlatCAM CNC parameters"
+msgstr "FlatCAM CNC parameters"
+
+#: AppGUI/ObjectUI.py:2587
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:111
+msgid "tool number"
+msgstr "tool number"
+
+#: AppGUI/ObjectUI.py:2588
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:112
+msgid "tool diameter"
+msgstr "tool diameter"
+
+#: AppGUI/ObjectUI.py:2589
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:113
+msgid "for Excellon, total number of drills"
+msgstr "for Excellon, total number of drills"
+
+#: AppGUI/ObjectUI.py:2591
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:115
+msgid "X coord for Toolchange"
+msgstr "X coord for Toolchange"
+
+#: AppGUI/ObjectUI.py:2592
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:116
+msgid "Y coord for Toolchange"
+msgstr "Y coord for Toolchange"
+
+#: AppGUI/ObjectUI.py:2593
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:118
+msgid "Z coord for Toolchange"
+msgstr "Z coord for Toolchange"
+
+#: AppGUI/ObjectUI.py:2594
+msgid "depth where to cut"
+msgstr "depth where to cut"
+
+#: AppGUI/ObjectUI.py:2595
+msgid "height where to travel"
+msgstr "height where to travel"
+
+#: AppGUI/ObjectUI.py:2596
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:121
+msgid "the step value for multidepth cut"
+msgstr "the step value for multidepth cut"
+
+#: AppGUI/ObjectUI.py:2598
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:123
+msgid "the value for the spindle speed"
+msgstr "the value for the spindle speed"
+
+#: AppGUI/ObjectUI.py:2600
+msgid "time to dwell to allow the spindle to reach it's set RPM"
+msgstr "time to dwell to allow the spindle to reach it's set RPM"
+
+#: AppGUI/ObjectUI.py:2616
+msgid "View CNC Code"
+msgstr "View CNC Code"
+
+#: AppGUI/ObjectUI.py:2618
+msgid ""
+"Opens TAB to view/modify/print G-Code\n"
+"file."
+msgstr ""
+"Opens TAB to view/modify/print G-Code\n"
+"file."
+
+#: AppGUI/ObjectUI.py:2623
+msgid "Save CNC Code"
+msgstr "Save CNC Code"
+
+#: AppGUI/ObjectUI.py:2625
+msgid ""
+"Opens dialog to save G-Code\n"
+"file."
+msgstr ""
+"Opens dialog to save G-Code\n"
+"file."
+
+#: AppGUI/ObjectUI.py:2659
+msgid "Script Object"
+msgstr "Script Object"
+
+#: AppGUI/ObjectUI.py:2679 AppGUI/ObjectUI.py:2753
+msgid "Auto Completer"
+msgstr "Auto Completer"
+
+#: AppGUI/ObjectUI.py:2681
+msgid "This selects if the auto completer is enabled in the Script Editor."
+msgstr "This selects if the auto completer is enabled in the Script Editor."
+
+#: AppGUI/ObjectUI.py:2726
+msgid "Document Object"
+msgstr "Document Object"
+
+#: AppGUI/ObjectUI.py:2755
+msgid "This selects if the auto completer is enabled in the Document Editor."
+msgstr "This selects if the auto completer is enabled in the Document Editor."
+
+#: AppGUI/ObjectUI.py:2773
+msgid "Font Type"
+msgstr "Font Type"
+
+#: AppGUI/ObjectUI.py:2790
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:197
+msgid "Font Size"
+msgstr "Font Size"
+
+#: AppGUI/ObjectUI.py:2826
+msgid "Alignment"
+msgstr "Alignment"
+
+#: AppGUI/ObjectUI.py:2831
+msgid "Align Left"
+msgstr "Align Left"
+
+#: AppGUI/ObjectUI.py:2836 App_Main.py:4687
+msgid "Center"
+msgstr "Center"
+
+#: AppGUI/ObjectUI.py:2841
+msgid "Align Right"
+msgstr "Align Right"
+
+#: AppGUI/ObjectUI.py:2846
+msgid "Justify"
+msgstr "Justify"
+
+#: AppGUI/ObjectUI.py:2853
+msgid "Font Color"
+msgstr "Font Color"
+
+#: AppGUI/ObjectUI.py:2855
+msgid "Set the font color for the selected text"
+msgstr "Set the font color for the selected text"
+
+#: AppGUI/ObjectUI.py:2869
+msgid "Selection Color"
+msgstr "Selection Color"
+
+#: AppGUI/ObjectUI.py:2871
+msgid "Set the selection color when doing text selection."
+msgstr "Set the selection color when doing text selection."
+
+#: AppGUI/ObjectUI.py:2885
+msgid "Tab Size"
+msgstr "Tab Size"
+
+#: AppGUI/ObjectUI.py:2887
+msgid "Set the tab size. In pixels. Default value is 80 pixels."
+msgstr "Set the tab size. In pixels. Default value is 80 pixels."
+
+#: AppGUI/PlotCanvasLegacy.py:1464
+msgid ""
+"Could not annotate due of a difference between the number of text elements "
+"and the number of text positions."
+msgstr ""
+"Could not annotate due of a difference between the number of text elements "
+"and the number of text positions."
+
+#: AppGUI/preferences/PreferencesUIManager.py:911
+#: AppGUI/preferences/PreferencesUIManager.py:1002
+#: AppGUI/preferences/PreferencesUIManager.py:1026
+#: AppGUI/preferences/PreferencesUIManager.py:1132 App_Main.py:5107
+msgid "Preferences"
+msgstr "Preferences"
+
+#: AppGUI/preferences/PreferencesUIManager.py:917
+msgid "Preferences applied."
+msgstr "Preferences applied."
+
+#: AppGUI/preferences/PreferencesUIManager.py:937
+msgid "Are you sure you want to continue?"
+msgstr "Are you sure you want to continue?"
+
+#: AppGUI/preferences/PreferencesUIManager.py:938
+msgid "Application restart"
+msgstr "Application restart"
+
+#: AppGUI/preferences/PreferencesUIManager.py:1031
+msgid "Preferences closed without saving."
+msgstr "Preferences closed without saving."
+
+#: AppGUI/preferences/PreferencesUIManager.py:1043
+msgid "Preferences default values are restored."
+msgstr "Preferences default values are restored."
+
+#: AppGUI/preferences/PreferencesUIManager.py:1075 App_Main.py:2476
+#: App_Main.py:2544
+msgid "Failed to write defaults to file."
+msgstr "Failed to write defaults to file."
+
+#: AppGUI/preferences/PreferencesUIManager.py:1079
+#: AppGUI/preferences/PreferencesUIManager.py:1188
+msgid "Preferences saved."
+msgstr "Preferences saved."
+
+#: AppGUI/preferences/PreferencesUIManager.py:1129
+msgid "Preferences edited but not saved."
+msgstr "Preferences edited but not saved."
+
+#: AppGUI/preferences/PreferencesUIManager.py:1174
+msgid ""
+"One or more values are changed.\n"
+"Do you want to save the Preferences?"
+msgstr ""
+"One or more values are changed.\n"
+"Do you want to save the Preferences?"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:27
+msgid "CNC Job Adv. Options"
+msgstr "CNC Job Adv. Options"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:64
+msgid ""
+"Type here any G-Code commands you would like to be executed when Toolchange "
+"event is encountered.\n"
+"This will constitute a Custom Toolchange GCode, or a Toolchange Macro.\n"
+"The FlatCAM variables are surrounded by '%' symbol.\n"
+"WARNING: it can be used only with a preprocessor file that has "
+"'toolchange_custom' in it's name."
+msgstr ""
+"Type here any G-Code commands you would like to be executed when Toolchange "
+"event is encountered.\n"
+"This will constitute a Custom Toolchange GCode, or a Toolchange Macro.\n"
+"The FlatCAM variables are surrounded by '%' symbol.\n"
+"WARNING: it can be used only with a preprocessor file that has "
+"'toolchange_custom' in it's name."
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:119
+msgid "Z depth for the cut"
+msgstr "Z depth for the cut"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:120
+msgid "Z height for travel"
+msgstr "Z height for travel"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:126
+msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM"
+msgstr "dwelltime = time to dwell to allow the spindle to reach it's set RPM"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:145
+msgid "Annotation Size"
+msgstr "Annotation Size"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:147
+msgid "The font size of the annotation text. In pixels."
+msgstr "The font size of the annotation text. In pixels."
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:157
+msgid "Annotation Color"
+msgstr "Annotation Color"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:159
+msgid "Set the font color for the annotation texts."
+msgstr "Set the font color for the annotation texts."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:26
+msgid "CNC Job General"
+msgstr "CNC Job General"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:77
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:47
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:59
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:45
+msgid "Circle Steps"
+msgstr "Circle Steps"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:79
+msgid ""
+"The number of circle steps for GCode \n"
+"circle and arc shapes linear approximation."
+msgstr ""
+"The number of circle steps for GCode \n"
+"circle and arc shapes linear approximation."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:88
+msgid "Travel dia"
+msgstr "Travel dia"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:90
+msgid ""
+"The width of the travel lines to be\n"
+"rendered in the plot."
+msgstr ""
+"The width of the travel lines to be\n"
+"rendered in the plot."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:103
+msgid "G-code Decimals"
+msgstr "G-code Decimals"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:106
+#: AppTools/ToolFiducials.py:74
+msgid "Coordinates"
+msgstr "Coordinates"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:108
+msgid ""
+"The number of decimals to be used for \n"
+"the X, Y, Z coordinates in CNC code (GCODE, etc.)"
+msgstr ""
+"The number of decimals to be used for \n"
+"the X, Y, Z coordinates in CNC code (GCODE, etc.)"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:119
+#: AppTools/ToolProperties.py:519
+msgid "Feedrate"
+msgstr "Feedrate"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:121
+msgid ""
+"The number of decimals to be used for \n"
+"the Feedrate parameter in CNC code (GCODE, etc.)"
+msgstr ""
+"The number of decimals to be used for \n"
+"the Feedrate parameter in CNC code (GCODE, etc.)"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:132
+msgid "Coordinates type"
+msgstr "Coordinates type"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:134
+msgid ""
+"The type of coordinates to be used in Gcode.\n"
+"Can be:\n"
+"- Absolute G90 -> the reference is the origin x=0, y=0\n"
+"- Incremental G91 -> the reference is the previous position"
+msgstr ""
+"The type of coordinates to be used in Gcode.\n"
+"Can be:\n"
+"- Absolute G90 -> the reference is the origin x=0, y=0\n"
+"- Incremental G91 -> the reference is the previous position"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:140
+msgid "Absolute G90"
+msgstr "Absolute G90"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:141
+msgid "Incremental G91"
+msgstr "Incremental G91"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:151
+msgid "Force Windows style line-ending"
+msgstr "Force Windows style line-ending"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:153
+msgid ""
+"When checked will force a Windows style line-ending\n"
+"(\\r\\n) on non-Windows OS's."
+msgstr ""
+"When checked will force a Windows style line-ending\n"
+"(\\r\\n) on non-Windows OS's."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:165
+msgid "Travel Line Color"
+msgstr "Travel Line Color"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:169
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:235
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:262
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:154
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:220
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:84
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:153
+#: AppTools/ToolRulesCheck.py:186
+msgid "Outline"
+msgstr "Outline"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:171
+msgid "Set the travel line color for plotted objects."
+msgstr "Set the travel line color for plotted objects."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:186
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:252
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:279
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:170
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:237
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:170
+msgid "Fill"
+msgstr "Fill"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:188
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:254
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:281
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:172
+msgid ""
+"Set the fill color for plotted objects.\n"
+"First 6 digits are the color and the last 2\n"
+"digits are for alpha (transparency) level."
+msgstr ""
+"Set the fill color for plotted objects.\n"
+"First 6 digits are the color and the last 2\n"
+"digits are for alpha (transparency) level."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:205
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:298
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:190
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:257
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:189
+msgid "Alpha"
+msgstr "Alpha"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:207
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:300
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:191
+msgid "Set the fill transparency for plotted objects."
+msgstr "Set the fill transparency for plotted objects."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:231
+msgid "CNCJob Object Color"
+msgstr "CNCJob Object Color"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:237
+msgid "Set the color for plotted objects."
+msgstr "Set the color for plotted objects."
+
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:27
+msgid "CNC Job Options"
+msgstr "CNC Job Options"
+
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:31
+msgid "Export G-Code"
+msgstr "Export G-Code"
+
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:47
+msgid "Prepend to G-Code"
+msgstr "Prepend to G-Code"
+
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:56
+msgid ""
+"Type here any G-Code commands you would like to add at the beginning of the "
+"G-Code file."
+msgstr ""
+"Type here any G-Code commands you would like to add at the beginning of the "
+"G-Code file."
+
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:63
+msgid "Append to G-Code"
+msgstr "Append to G-Code"
+
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:73
+msgid ""
+"Type here any G-Code commands you would like to append to the generated "
+"file.\n"
+"I.e.: M2 (End of program)"
+msgstr ""
+"Type here any G-Code commands you would like to append to the generated "
+"file.\n"
+"I.e.: M2 (End of program)"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:27
+msgid "Excellon Adv. Options"
+msgstr "Excellon Adv. Options"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:34
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:33
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:31
+msgid "Advanced Options"
+msgstr "Advanced Options"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:36
+msgid ""
+"A list of Excellon advanced parameters.\n"
+"Those parameters are available only for\n"
+"Advanced App. Level."
+msgstr ""
+"A list of Excellon advanced parameters.\n"
+"Those parameters are available only for\n"
+"Advanced App. Level."
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:59
+msgid "Toolchange X,Y"
+msgstr "Toolchange X,Y"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:61
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:47
+msgid "Toolchange X,Y position."
+msgstr "Toolchange X,Y position."
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:121
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:134
+msgid "Spindle direction"
+msgstr "Spindle direction"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:123
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:136
+msgid ""
+"This sets the direction that the spindle is rotating.\n"
+"It can be either:\n"
+"- CW = clockwise or\n"
+"- CCW = counter clockwise"
+msgstr ""
+"This sets the direction that the spindle is rotating.\n"
+"It can be either:\n"
+"- CW = clockwise or\n"
+"- CCW = counter clockwise"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:134
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:148
+msgid "Fast Plunge"
+msgstr "Fast Plunge"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:136
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:150
+msgid ""
+"By checking this, the vertical move from\n"
+"Z_Toolchange to Z_move is done with G0,\n"
+"meaning the fastest speed available.\n"
+"WARNING: the move is done at Toolchange X,Y coords."
+msgstr ""
+"By checking this, the vertical move from\n"
+"Z_Toolchange to Z_move is done with G0,\n"
+"meaning the fastest speed available.\n"
+"WARNING: the move is done at Toolchange X,Y coords."
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:143
+msgid "Fast Retract"
+msgstr "Fast Retract"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:145
+msgid ""
+"Exit hole strategy.\n"
+" - When uncheked, while exiting the drilled hole the drill bit\n"
+"will travel slow, with set feedrate (G1), up to zero depth and then\n"
+"travel as fast as possible (G0) to the Z Move (travel height).\n"
+" - When checked the travel from Z cut (cut depth) to Z_move\n"
+"(travel height) is done as fast as possible (G0) in one move."
+msgstr ""
+"Exit hole strategy.\n"
+" - When uncheked, while exiting the drilled hole the drill bit\n"
+"will travel slow, with set feedrate (G1), up to zero depth and then\n"
+"travel as fast as possible (G0) to the Z Move (travel height).\n"
+" - When checked the travel from Z cut (cut depth) to Z_move\n"
+"(travel height) is done as fast as possible (G0) in one move."
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:32
+msgid "A list of Excellon Editor parameters."
+msgstr "A list of Excellon Editor parameters."
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:40
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:41
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:41
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:194
+msgid "Selection limit"
+msgstr "Selection limit"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:42
+msgid ""
+"Set the number of selected Excellon geometry\n"
+"items above which the utility geometry\n"
+"becomes just a selection rectangle.\n"
+"Increases the performance when moving a\n"
+"large number of geometric elements."
+msgstr ""
+"Set the number of selected Excellon geometry\n"
+"items above which the utility geometry\n"
+"becomes just a selection rectangle.\n"
+"Increases the performance when moving a\n"
+"large number of geometric elements."
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:55
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:117
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:123
+msgid "New Dia"
+msgstr "New Dia"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:80
+msgid "Linear Drill Array"
+msgstr "Linear Drill Array"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:84
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:232
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:120
+msgid "Linear Direction"
+msgstr "Linear Direction"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:126
+msgid "Circular Drill Array"
+msgstr "Circular Drill Array"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:130
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:280
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:164
+msgid "Circular Direction"
+msgstr "Circular Direction"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:132
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:282
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:166
+msgid ""
+"Direction for circular array.\n"
+"Can be CW = clockwise or CCW = counter clockwise."
+msgstr ""
+"Direction for circular array.\n"
+"Can be CW = clockwise or CCW = counter clockwise."
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:143
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:293
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:177
+msgid "Circular Angle"
+msgstr "Circular Angle"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:196
+msgid ""
+"Angle at which the slot is placed.\n"
+"The precision is of max 2 decimals.\n"
+"Min value is: -359.99 degrees.\n"
+"Max value is: 360.00 degrees."
+msgstr ""
+"Angle at which the slot is placed.\n"
+"The precision is of max 2 decimals.\n"
+"Min value is: -359.99 degrees.\n"
+"Max value is: 360.00 degrees."
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:215
+msgid "Linear Slot Array"
+msgstr "Linear Slot Array"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:276
+msgid "Circular Slot Array"
+msgstr "Circular Slot Array"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:26
+msgid "Excellon Export"
+msgstr "Excellon Export"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:30
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:31
+msgid "Export Options"
+msgstr "Export Options"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:32
+msgid ""
+"The parameters set here are used in the file exported\n"
+"when using the File -> Export -> Export Excellon menu entry."
+msgstr ""
+"The parameters set here are used in the file exported\n"
+"when using the File -> Export -> Export Excellon menu entry."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:41
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:163
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:39
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:42
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:82
+#: AppTools/ToolDistance.py:56 AppTools/ToolDistanceMin.py:49
+#: AppTools/ToolPcbWizard.py:127 AppTools/ToolProperties.py:154
+msgid "Units"
+msgstr "Units"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:43
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:49
+msgid "The units used in the Excellon file."
+msgstr "The units used in the Excellon file."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:46
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:87
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:173
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:47
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:87
+#: AppTools/ToolCalculators.py:61 AppTools/ToolPcbWizard.py:125
+msgid "INCH"
+msgstr "INCH"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:47
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:174
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:43
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:48
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:88
+#: AppTools/ToolCalculators.py:62 AppTools/ToolPcbWizard.py:126
+msgid "MM"
+msgstr "MM"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:55
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:56
+msgid "Int/Decimals"
+msgstr "Int/Decimals"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:57
+msgid ""
+"The NC drill files, usually named Excellon files\n"
+"are files that can be found in different formats.\n"
+"Here we set the format used when the provided\n"
+"coordinates are not using period."
+msgstr ""
+"The NC drill files, usually named Excellon files\n"
+"are files that can be found in different formats.\n"
+"Here we set the format used when the provided\n"
+"coordinates are not using period."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:69
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:95
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:124
+msgid ""
+"This numbers signify the number of digits in\n"
+"the whole part of Excellon coordinates."
+msgstr ""
+"This numbers signify the number of digits in\n"
+"the whole part of Excellon coordinates."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:82
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:108
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:137
+msgid ""
+"This numbers signify the number of digits in\n"
+"the decimal part of Excellon coordinates."
+msgstr ""
+"This numbers signify the number of digits in\n"
+"the decimal part of Excellon coordinates."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:91
+msgid "Format"
+msgstr "Format"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:93
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:103
+msgid ""
+"Select the kind of coordinates format used.\n"
+"Coordinates can be saved with decimal point or without.\n"
+"When there is no decimal point, it is required to specify\n"
+"the number of digits for integer part and the number of decimals.\n"
+"Also it will have to be specified if LZ = leading zeros are kept\n"
+"or TZ = trailing zeros are kept."
+msgstr ""
+"Select the kind of coordinates format used.\n"
+"Coordinates can be saved with decimal point or without.\n"
+"When there is no decimal point, it is required to specify\n"
+"the number of digits for integer part and the number of decimals.\n"
+"Also it will have to be specified if LZ = leading zeros are kept\n"
+"or TZ = trailing zeros are kept."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:100
+msgid "Decimal"
+msgstr "Decimal"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:101
+msgid "No-Decimal"
+msgstr "No-Decimal"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:114
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:145
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:96
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:97
+msgid "Zeros"
+msgstr "Zeros"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:117
+msgid ""
+"This sets the type of Excellon zeros.\n"
+"If LZ then Leading Zeros are kept and\n"
+"Trailing Zeros are removed.\n"
+"If TZ is checked then Trailing Zeros are kept\n"
+"and Leading Zeros are removed."
+msgstr ""
+"This sets the type of Excellon zeros.\n"
+"If LZ then Leading Zeros are kept and\n"
+"Trailing Zeros are removed.\n"
+"If TZ is checked then Trailing Zeros are kept\n"
+"and Leading Zeros are removed."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:124
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:158
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:106
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:107
+#: AppTools/ToolPcbWizard.py:111
+msgid "LZ"
+msgstr "LZ"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:125
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:159
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:107
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:108
+#: AppTools/ToolPcbWizard.py:112
+msgid "TZ"
+msgstr "TZ"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:127
+msgid ""
+"This sets the default type of Excellon zeros.\n"
+"If LZ then Leading Zeros are kept and\n"
+"Trailing Zeros are removed.\n"
+"If TZ is checked then Trailing Zeros are kept\n"
+"and Leading Zeros are removed."
+msgstr ""
+"This sets the default type of Excellon zeros.\n"
+"If LZ then Leading Zeros are kept and\n"
+"Trailing Zeros are removed.\n"
+"If TZ is checked then Trailing Zeros are kept\n"
+"and Leading Zeros are removed."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:137
+msgid "Slot type"
+msgstr "Slot type"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:140
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:150
+msgid ""
+"This sets how the slots will be exported.\n"
+"If ROUTED then the slots will be routed\n"
+"using M15/M16 commands.\n"
+"If DRILLED(G85) the slots will be exported\n"
+"using the Drilled slot command (G85)."
+msgstr ""
+"This sets how the slots will be exported.\n"
+"If ROUTED then the slots will be routed\n"
+"using M15/M16 commands.\n"
+"If DRILLED(G85) the slots will be exported\n"
+"using the Drilled slot command (G85)."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:147
+msgid "Routed"
+msgstr "Routed"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:148
+msgid "Drilled(G85)"
+msgstr "Drilled(G85)"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:29
+msgid "Excellon General"
+msgstr "Excellon General"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:62
+msgid "Excellon Format"
+msgstr "Excellon Format"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:64
+msgid ""
+"The NC drill files, usually named Excellon files\n"
+"are files that can be found in different formats.\n"
+"Here we set the format used when the provided\n"
+"coordinates are not using period.\n"
+"\n"
+"Possible presets:\n"
+"\n"
+"PROTEUS 3:3 MM LZ\n"
+"DipTrace 5:2 MM TZ\n"
+"DipTrace 4:3 MM LZ\n"
+"\n"
+"EAGLE 3:3 MM TZ\n"
+"EAGLE 4:3 MM TZ\n"
+"EAGLE 2:5 INCH TZ\n"
+"EAGLE 3:5 INCH TZ\n"
+"\n"
+"ALTIUM 2:4 INCH LZ\n"
+"Sprint Layout 2:4 INCH LZ\n"
+"KiCAD 3:5 INCH TZ"
+msgstr ""
+"The NC drill files, usually named Excellon files\n"
+"are files that can be found in different formats.\n"
+"Here we set the format used when the provided\n"
+"coordinates are not using period.\n"
+"\n"
+"Possible presets:\n"
+"\n"
+"PROTEUS 3:3 MM LZ\n"
+"DipTrace 5:2 MM TZ\n"
+"DipTrace 4:3 MM LZ\n"
+"\n"
+"EAGLE 3:3 MM TZ\n"
+"EAGLE 4:3 MM TZ\n"
+"EAGLE 2:5 INCH TZ\n"
+"EAGLE 3:5 INCH TZ\n"
+"\n"
+"ALTIUM 2:4 INCH LZ\n"
+"Sprint Layout 2:4 INCH LZ\n"
+"KiCAD 3:5 INCH TZ"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:88
+msgid "Default values for INCH are 2:4"
+msgstr "Default values for INCH are 2:4"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:116
+msgid "METRIC"
+msgstr "METRIC"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:117
+msgid "Default values for METRIC are 3:3"
+msgstr "Default values for METRIC are 3:3"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:148
+msgid ""
+"This sets the type of Excellon zeros.\n"
+"If LZ then Leading Zeros are kept and\n"
+"Trailing Zeros are removed.\n"
+"If TZ is checked then Trailing Zeros are kept\n"
+"and Leading Zeros are removed.\n"
+"\n"
+"This is used when there is no information\n"
+"stored in the Excellon file."
+msgstr ""
+"This sets the type of Excellon zeros.\n"
+"If LZ then Leading Zeros are kept and\n"
+"Trailing Zeros are removed.\n"
+"If TZ is checked then Trailing Zeros are kept\n"
+"and Leading Zeros are removed.\n"
+"\n"
+"This is used when there is no information\n"
+"stored in the Excellon file."
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:166
+msgid ""
+"This sets the default units of Excellon files.\n"
+"If it is not detected in the parsed file the value here\n"
+"will be used.Some Excellon files don't have an header\n"
+"therefore this parameter will be used."
+msgstr ""
+"This sets the default units of Excellon files.\n"
+"If it is not detected in the parsed file the value here\n"
+"will be used.Some Excellon files don't have an header\n"
+"therefore this parameter will be used."
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:176
+msgid ""
+"This sets the units of Excellon files.\n"
+"Some Excellon files don't have an header\n"
+"therefore this parameter will be used."
+msgstr ""
+"This sets the units of Excellon files.\n"
+"Some Excellon files don't have an header\n"
+"therefore this parameter will be used."
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:184
+msgid "Update Export settings"
+msgstr "Update Export settings"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:201
+msgid "Excellon Optimization"
+msgstr "Excellon Optimization"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:204
+msgid "Algorithm:"
+msgstr "Algorithm:"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:206
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:222
+msgid ""
+"This sets the optimization type for the Excellon drill path.\n"
+"If <> is checked then Google OR-Tools algorithm with\n"
+"MetaHeuristic Guided Local Path is used. Default search time is 3sec.\n"
+"If <> is checked then Google OR-Tools Basic algorithm is used.\n"
+"If <> is checked then Travelling Salesman algorithm is used for\n"
+"drill path optimization.\n"
+"\n"
+"If this control is disabled, then FlatCAM works in 32bit mode and it uses\n"
+"Travelling Salesman algorithm for path optimization."
+msgstr ""
+"This sets the optimization type for the Excellon drill path.\n"
+"If <> is checked then Google OR-Tools algorithm with\n"
+"MetaHeuristic Guided Local Path is used. Default search time is 3sec.\n"
+"If <> is checked then Google OR-Tools Basic algorithm is used.\n"
+"If <> is checked then Travelling Salesman algorithm is used for\n"
+"drill path optimization.\n"
+"\n"
+"If this control is disabled, then FlatCAM works in 32bit mode and it uses\n"
+"Travelling Salesman algorithm for path optimization."
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:217
+msgid "MetaHeuristic"
+msgstr "MetaHeuristic"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:218
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:104
+#: AppObjects/FlatCAMExcellon.py:683 AppObjects/FlatCAMGeometry.py:561
+#: AppObjects/FlatCAMGerber.py:251
+msgid "Basic"
+msgstr "Basic"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:219
+msgid "TSA"
+msgstr "TSA"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:236
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:245
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:237
+msgid "Duration"
+msgstr "Duration"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:239
+msgid ""
+"When OR-Tools Metaheuristic (MH) is enabled there is a\n"
+"maximum threshold for how much time is spent doing the\n"
+"path optimization. This max duration is set here.\n"
+"In seconds."
+msgstr ""
+"When OR-Tools Metaheuristic (MH) is enabled there is a\n"
+"maximum threshold for how much time is spent doing the\n"
+"path optimization. This max duration is set here.\n"
+"In seconds."
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:258
+msgid "Excellon Object Color"
+msgstr "Excellon Object Color"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:264
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:86
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:155
+msgid "Set the line color for plotted objects."
+msgstr "Set the line color for plotted objects."
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:29
+msgid "Excellon Options"
+msgstr "Excellon Options"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:33
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:34
+msgid "Create CNC Job"
+msgstr "Create CNC Job"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:35
+msgid ""
+"Parameters used to create a CNC Job object\n"
+"for this drill object."
+msgstr ""
+"Parameters used to create a CNC Job object\n"
+"for this drill object."
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:152
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:121
+msgid "Tool change"
+msgstr "Tool change"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:236
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:232
+msgid "Enable Dwell"
+msgstr "Enable Dwell"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:259
+msgid ""
+"The preprocessor JSON file that dictates\n"
+"Gcode output."
+msgstr ""
+"The preprocessor JSON file that dictates\n"
+"Gcode output."
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:270
+msgid "Gcode"
+msgstr "Gcode"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:272
+msgid ""
+"Choose what to use for GCode generation:\n"
+"'Drills', 'Slots' or 'Both'.\n"
+"When choosing 'Slots' or 'Both', slots will be\n"
+"converted to drills."
+msgstr ""
+"Choose what to use for GCode generation:\n"
+"'Drills', 'Slots' or 'Both'.\n"
+"When choosing 'Slots' or 'Both', slots will be\n"
+"converted to drills."
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:288
+msgid "Mill Holes"
+msgstr "Mill Holes"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:290
+msgid "Create Geometry for milling holes."
+msgstr "Create Geometry for milling holes."
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:294
+msgid "Drill Tool dia"
+msgstr "Drill Tool dia"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:305
+msgid "Slot Tool dia"
+msgstr "Slot Tool dia"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:307
+msgid ""
+"Diameter of the cutting tool\n"
+"when milling slots."
+msgstr ""
+"Diameter of the cutting tool\n"
+"when milling slots."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:28
+msgid "App Settings"
+msgstr "App Settings"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:49
+msgid "Grid Settings"
+msgstr "Grid Settings"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:53
+msgid "X value"
+msgstr "X value"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:55
+msgid "This is the Grid snap value on X axis."
+msgstr "This is the Grid snap value on X axis."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:65
+msgid "Y value"
+msgstr "Y value"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:67
+msgid "This is the Grid snap value on Y axis."
+msgstr "This is the Grid snap value on Y axis."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:77
+msgid "Snap Max"
+msgstr "Snap Max"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:92
+msgid "Workspace Settings"
+msgstr "Workspace Settings"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:95
+msgid "Active"
+msgstr "Active"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:97
+msgid ""
+"Draw a delimiting rectangle on canvas.\n"
+"The purpose is to illustrate the limits for our work."
+msgstr ""
+"Draw a delimiting rectangle on canvas.\n"
+"The purpose is to illustrate the limits for our work."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:105
+msgid ""
+"Select the type of rectangle to be used on canvas,\n"
+"as valid workspace."
+msgstr ""
+"Select the type of rectangle to be used on canvas,\n"
+"as valid workspace."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:171
+msgid "Orientation"
+msgstr "Orientation"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:172
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:239
+#: AppTools/ToolFilm.py:405
+msgid ""
+"Can be:\n"
+"- Portrait\n"
+"- Landscape"
+msgstr ""
+"Can be:\n"
+"- Portrait\n"
+"- Landscape"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:176
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:243
+#: AppTools/ToolFilm.py:409
+msgid "Portrait"
+msgstr "Portrait"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:177
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:244
+#: AppTools/ToolFilm.py:410
+msgid "Landscape"
+msgstr "Landscape"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:201
+msgid "Notebook"
+msgstr "Notebook"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:203
+msgid ""
+"This sets the font size for the elements found in the Notebook.\n"
+"The notebook is the collapsible area in the left side of the AppGUI,\n"
+"and include the Project, Selected and Tool tabs."
+msgstr ""
+"This sets the font size for the elements found in the Notebook.\n"
+"The notebook is the collapsible area in the left side of the AppGUI,\n"
+"and include the Project, Selected and Tool tabs."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:222
+msgid "Axis"
+msgstr "Axis"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:224
+msgid "This sets the font size for canvas axis."
+msgstr "This sets the font size for canvas axis."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:241
+msgid "Textbox"
+msgstr "Textbox"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:243
+msgid ""
+"This sets the font size for the Textbox AppGUI\n"
+"elements that are used in FlatCAM."
+msgstr ""
+"This sets the font size for the Textbox AppGUI\n"
+"elements that are used in FlatCAM."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:261
+msgid "HUD"
+msgstr "HUD"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:263
+msgid "This sets the font size for the Heads Up Display."
+msgstr "This sets the font size for the Heads Up Display."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:288
+msgid "Mouse Settings"
+msgstr "Mouse Settings"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:292
+msgid "Cursor Shape"
+msgstr "Cursor Shape"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:294
+msgid ""
+"Choose a mouse cursor shape.\n"
+"- Small -> with a customizable size.\n"
+"- Big -> Infinite lines"
+msgstr ""
+"Choose a mouse cursor shape.\n"
+"- Small -> with a customizable size.\n"
+"- Big -> Infinite lines"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:300
+msgid "Small"
+msgstr "Small"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:301
+msgid "Big"
+msgstr "Big"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:308
+msgid "Cursor Size"
+msgstr "Cursor Size"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:310
+msgid "Set the size of the mouse cursor, in pixels."
+msgstr "Set the size of the mouse cursor, in pixels."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:321
+msgid "Cursor Width"
+msgstr "Cursor Width"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:323
+msgid "Set the line width of the mouse cursor, in pixels."
+msgstr "Set the line width of the mouse cursor, in pixels."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:334
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:341
+msgid "Cursor Color"
+msgstr "Cursor Color"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:336
+msgid "Check this box to color mouse cursor."
+msgstr "Check this box to color mouse cursor."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:343
+msgid "Set the color of the mouse cursor."
+msgstr "Set the color of the mouse cursor."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:366
+msgid "Pan Button"
+msgstr "Pan Button"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:368
+msgid ""
+"Select the mouse button to use for panning:\n"
+"- MMB --> Middle Mouse Button\n"
+"- RMB --> Right Mouse Button"
+msgstr ""
+"Select the mouse button to use for panning:\n"
+"- MMB --> Middle Mouse Button\n"
+"- RMB --> Right Mouse Button"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:372
+msgid "MMB"
+msgstr "MMB"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:373
+msgid "RMB"
+msgstr "RMB"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:379
+msgid "Multiple Selection"
+msgstr "Multiple Selection"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:381
+msgid "Select the key used for multiple selection."
+msgstr "Select the key used for multiple selection."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:383
+msgid "CTRL"
+msgstr "CTRL"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:384
+msgid "SHIFT"
+msgstr "SHIFT"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:395
+msgid "Delete object confirmation"
+msgstr "Delete object confirmation"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:397
+msgid ""
+"When checked the application will ask for user confirmation\n"
+"whenever the Delete object(s) event is triggered, either by\n"
+"menu shortcut or key shortcut."
+msgstr ""
+"When checked the application will ask for user confirmation\n"
+"whenever the Delete object(s) event is triggered, either by\n"
+"menu shortcut or key shortcut."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:404
+msgid "\"Open\" behavior"
+msgstr "\"Open\" behavior"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:406
+msgid ""
+"When checked the path for the last saved file is used when saving files,\n"
+"and the path for the last opened file is used when opening files.\n"
+"\n"
+"When unchecked the path for opening files is the one used last: either the\n"
+"path for saving files or the path for opening files."
+msgstr ""
+"When checked the path for the last saved file is used when saving files,\n"
+"and the path for the last opened file is used when opening files.\n"
+"\n"
+"When unchecked the path for opening files is the one used last: either the\n"
+"path for saving files or the path for opening files."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:415
+msgid "Enable ToolTips"
+msgstr "Enable ToolTips"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:417
+msgid ""
+"Check this box if you want to have toolTips displayed\n"
+"when hovering with mouse over items throughout the App."
+msgstr ""
+"Check this box if you want to have toolTips displayed\n"
+"when hovering with mouse over items throughout the App."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:424
+msgid "Allow Machinist Unsafe Settings"
+msgstr "Allow Machinist Unsafe Settings"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:426
+msgid ""
+"If checked, some of the application settings will be allowed\n"
+"to have values that are usually unsafe to use.\n"
+"Like Z travel negative values or Z Cut positive values.\n"
+"It will applied at the next application start.\n"
+"<>: Don't change this unless you know what you are doing !!!"
+msgstr ""
+"If checked, some of the application settings will be allowed\n"
+"to have values that are usually unsafe to use.\n"
+"Like Z travel negative values or Z Cut positive values.\n"
+"It will applied at the next application start.\n"
+"<>: Don't change this unless you know what you are doing !!!"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:438
+msgid "Bookmarks limit"
+msgstr "Bookmarks limit"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:440
+msgid ""
+"The maximum number of bookmarks that may be installed in the menu.\n"
+"The number of bookmarks in the bookmark manager may be greater\n"
+"but the menu will hold only so much."
+msgstr ""
+"The maximum number of bookmarks that may be installed in the menu.\n"
+"The number of bookmarks in the bookmark manager may be greater\n"
+"but the menu will hold only so much."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:449
+msgid "Activity Icon"
+msgstr "Activity Icon"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:451
+msgid "Select the GIF that show activity when FlatCAM is active."
+msgstr "Select the GIF that show activity when FlatCAM is active."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:29
+msgid "App Preferences"
+msgstr "App Preferences"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:40
+msgid ""
+"The default value for FlatCAM units.\n"
+"Whatever is selected here is set every time\n"
+"FlatCAM is started."
+msgstr ""
+"The default value for FlatCAM units.\n"
+"Whatever is selected here is set every time\n"
+"FlatCAM is started."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:44
+msgid "IN"
+msgstr "IN"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:50
+msgid "Precision MM"
+msgstr "Precision MM"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:52
+msgid ""
+"The number of decimals used throughout the application\n"
+"when the set units are in METRIC system.\n"
+"Any change here require an application restart."
+msgstr ""
+"The number of decimals used throughout the application\n"
+"when the set units are in METRIC system.\n"
+"Any change here require an application restart."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:64
+msgid "Precision INCH"
+msgstr "Precision INCH"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:66
+msgid ""
+"The number of decimals used throughout the application\n"
+"when the set units are in INCH system.\n"
+"Any change here require an application restart."
+msgstr ""
+"The number of decimals used throughout the application\n"
+"when the set units are in INCH system.\n"
+"Any change here require an application restart."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:78
+msgid "Graphic Engine"
+msgstr "Graphic Engine"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:79
+msgid ""
+"Choose what graphic engine to use in FlatCAM.\n"
+"Legacy(2D) -> reduced functionality, slow performance but enhanced "
+"compatibility.\n"
+"OpenGL(3D) -> full functionality, high performance\n"
+"Some graphic cards are too old and do not work in OpenGL(3D) mode, like:\n"
+"Intel HD3000 or older. In this case the plot area will be black therefore\n"
+"use the Legacy(2D) mode."
+msgstr ""
+"Choose what graphic engine to use in FlatCAM.\n"
+"Legacy(2D) -> reduced functionality, slow performance but enhanced "
+"compatibility.\n"
+"OpenGL(3D) -> full functionality, high performance\n"
+"Some graphic cards are too old and do not work in OpenGL(3D) mode, like:\n"
+"Intel HD3000 or older. In this case the plot area will be black therefore\n"
+"use the Legacy(2D) mode."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:85
+msgid "Legacy(2D)"
+msgstr "Legacy(2D)"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:86
+msgid "OpenGL(3D)"
+msgstr "OpenGL(3D)"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:98
+msgid "APP. LEVEL"
+msgstr "APP. LEVEL"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:99
+msgid ""
+"Choose the default level of usage for FlatCAM.\n"
+"BASIC level -> reduced functionality, best for beginner's.\n"
+"ADVANCED level -> full functionality.\n"
+"\n"
+"The choice here will influence the parameters in\n"
+"the Selected Tab for all kinds of FlatCAM objects."
+msgstr ""
+"Choose the default level of usage for FlatCAM.\n"
+"BASIC level -> reduced functionality, best for beginner's.\n"
+"ADVANCED level -> full functionality.\n"
+"\n"
+"The choice here will influence the parameters in\n"
+"the Selected Tab for all kinds of FlatCAM objects."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:105
+#: AppObjects/FlatCAMExcellon.py:696 AppObjects/FlatCAMGeometry.py:582
+#: AppObjects/FlatCAMGerber.py:278
+msgid "Advanced"
+msgstr "Advanced"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:111
+msgid "Portable app"
+msgstr "Portable app"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:112
+msgid ""
+"Choose if the application should run as portable.\n"
+"\n"
+"If Checked the application will run portable,\n"
+"which means that the preferences files will be saved\n"
+"in the application folder, in the lib\\config subfolder."
+msgstr ""
+"Choose if the application should run as portable.\n"
+"\n"
+"If Checked the application will run portable,\n"
+"which means that the preferences files will be saved\n"
+"in the application folder, in the lib\\config subfolder."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:125
+msgid "Languages"
+msgstr "Languages"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:126
+msgid "Set the language used throughout FlatCAM."
+msgstr "Set the language used throughout FlatCAM."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:132
+msgid "Apply Language"
+msgstr "Apply Language"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:133
+msgid ""
+"Set the language used throughout FlatCAM.\n"
+"The app will restart after click."
+msgstr ""
+"Set the language used throughout FlatCAM.\n"
+"The app will restart after click."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:147
+msgid "Startup Settings"
+msgstr "Startup Settings"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:151
+msgid "Splash Screen"
+msgstr "Splash Screen"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:153
+msgid "Enable display of the splash screen at application startup."
+msgstr "Enable display of the splash screen at application startup."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:165
+msgid "Sys Tray Icon"
+msgstr "Sys Tray Icon"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:167
+msgid "Enable display of FlatCAM icon in Sys Tray."
+msgstr "Enable display of FlatCAM icon in Sys Tray."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:172
+msgid "Show Shell"
+msgstr "Show Shell"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:174
+msgid ""
+"Check this box if you want the shell to\n"
+"start automatically at startup."
+msgstr ""
+"Check this box if you want the shell to\n"
+"start automatically at startup."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:181
+msgid "Show Project"
+msgstr "Show Project"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:183
+msgid ""
+"Check this box if you want the project/selected/tool tab area to\n"
+"to be shown automatically at startup."
+msgstr ""
+"Check this box if you want the project/selected/tool tab area to\n"
+"to be shown automatically at startup."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:189
+msgid "Version Check"
+msgstr "Version Check"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:191
+msgid ""
+"Check this box if you want to check\n"
+"for a new version automatically at startup."
+msgstr ""
+"Check this box if you want to check\n"
+"for a new version automatically at startup."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:198
+msgid "Send Statistics"
+msgstr "Send Statistics"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:200
+msgid ""
+"Check this box if you agree to send anonymous\n"
+"stats automatically at startup, to help improve FlatCAM."
+msgstr ""
+"Check this box if you agree to send anonymous\n"
+"stats automatically at startup, to help improve FlatCAM."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:214
+msgid "Workers number"
+msgstr "Workers number"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:216
+msgid ""
+"The number of Qthreads made available to the App.\n"
+"A bigger number may finish the jobs more quickly but\n"
+"depending on your computer speed, may make the App\n"
+"unresponsive. Can have a value between 2 and 16.\n"
+"Default value is 2.\n"
+"After change, it will be applied at next App start."
+msgstr ""
+"The number of Qthreads made available to the App.\n"
+"A bigger number may finish the jobs more quickly but\n"
+"depending on your computer speed, may make the App\n"
+"unresponsive. Can have a value between 2 and 16.\n"
+"Default value is 2.\n"
+"After change, it will be applied at next App start."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:230
+msgid "Geo Tolerance"
+msgstr "Geo Tolerance"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:232
+msgid ""
+"This value can counter the effect of the Circle Steps\n"
+"parameter. Default value is 0.005.\n"
+"A lower value will increase the detail both in image\n"
+"and in Gcode for the circles, with a higher cost in\n"
+"performance. Higher value will provide more\n"
+"performance at the expense of level of detail."
+msgstr ""
+"This value can counter the effect of the Circle Steps\n"
+"parameter. Default value is 0.005.\n"
+"A lower value will increase the detail both in image\n"
+"and in Gcode for the circles, with a higher cost in\n"
+"performance. Higher value will provide more\n"
+"performance at the expense of level of detail."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:252
+msgid "Save Settings"
+msgstr "Save Settings"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:256
+msgid "Save Compressed Project"
+msgstr "Save Compressed Project"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:258
+msgid ""
+"Whether to save a compressed or uncompressed project.\n"
+"When checked it will save a compressed FlatCAM project."
+msgstr ""
+"Whether to save a compressed or uncompressed project.\n"
+"When checked it will save a compressed FlatCAM project."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:267
+msgid "Compression"
+msgstr "Compression"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:269
+msgid ""
+"The level of compression used when saving\n"
+"a FlatCAM project. Higher value means better compression\n"
+"but require more RAM usage and more processing time."
+msgstr ""
+"The level of compression used when saving\n"
+"a FlatCAM project. Higher value means better compression\n"
+"but require more RAM usage and more processing time."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:280
+msgid "Enable Auto Save"
+msgstr "Enable Auto Save"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:282
+msgid ""
+"Check to enable the autosave feature.\n"
+"When enabled, the application will try to save a project\n"
+"at the set interval."
+msgstr ""
+"Check to enable the autosave feature.\n"
+"When enabled, the application will try to save a project\n"
+"at the set interval."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:292
+msgid "Interval"
+msgstr "Interval"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:294
+msgid ""
+"Time interval for autosaving. In milliseconds.\n"
+"The application will try to save periodically but only\n"
+"if the project was saved manually at least once.\n"
+"While active, some operations may block this feature."
+msgstr ""
+"Time interval for autosaving. In milliseconds.\n"
+"The application will try to save periodically but only\n"
+"if the project was saved manually at least once.\n"
+"While active, some operations may block this feature."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:310
+msgid "Text to PDF parameters"
+msgstr "Text to PDF parameters"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:312
+msgid "Used when saving text in Code Editor or in FlatCAM Document objects."
+msgstr "Used when saving text in Code Editor or in FlatCAM Document objects."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:321
+msgid "Top Margin"
+msgstr "Top Margin"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:323
+msgid "Distance between text body and the top of the PDF file."
+msgstr "Distance between text body and the top of the PDF file."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:334
+msgid "Bottom Margin"
+msgstr "Bottom Margin"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:336
+msgid "Distance between text body and the bottom of the PDF file."
+msgstr "Distance between text body and the bottom of the PDF file."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:347
+msgid "Left Margin"
+msgstr "Left Margin"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:349
+msgid "Distance between text body and the left of the PDF file."
+msgstr "Distance between text body and the left of the PDF file."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:360
+msgid "Right Margin"
+msgstr "Right Margin"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:362
+msgid "Distance between text body and the right of the PDF file."
+msgstr "Distance between text body and the right of the PDF file."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:26
+msgid "GUI Preferences"
+msgstr "GUI Preferences"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:36
+msgid "Theme"
+msgstr "Theme"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:38
+msgid ""
+"Select a theme for FlatCAM.\n"
+"It will theme the plot area."
+msgstr ""
+"Select a theme for FlatCAM.\n"
+"It will theme the plot area."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:43
+msgid "Light"
+msgstr "Light"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:44
+msgid "Dark"
+msgstr "Dark"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:51
+msgid "Use Gray Icons"
+msgstr "Use Gray Icons"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:53
+msgid ""
+"Check this box to use a set of icons with\n"
+"a lighter (gray) color. To be used when a\n"
+"full dark theme is applied."
+msgstr ""
+"Check this box to use a set of icons with\n"
+"a lighter (gray) color. To be used when a\n"
+"full dark theme is applied."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:73
+msgid "Layout"
+msgstr "Layout"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:75
+msgid ""
+"Select an layout for FlatCAM.\n"
+"It is applied immediately."
+msgstr ""
+"Select an layout for FlatCAM.\n"
+"It is applied immediately."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:95
+msgid "Style"
+msgstr "Style"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:97
+msgid ""
+"Select an style for FlatCAM.\n"
+"It will be applied at the next app start."
+msgstr ""
+"Select an style for FlatCAM.\n"
+"It will be applied at the next app start."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:111
+msgid "Activate HDPI Support"
+msgstr "Activate HDPI Support"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:113
+msgid ""
+"Enable High DPI support for FlatCAM.\n"
+"It will be applied at the next app start."
+msgstr ""
+"Enable High DPI support for FlatCAM.\n"
+"It will be applied at the next app start."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:127
+msgid "Display Hover Shape"
+msgstr "Display Hover Shape"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:129
+msgid ""
+"Enable display of a hover shape for FlatCAM objects.\n"
+"It is displayed whenever the mouse cursor is hovering\n"
+"over any kind of not-selected object."
+msgstr ""
+"Enable display of a hover shape for FlatCAM objects.\n"
+"It is displayed whenever the mouse cursor is hovering\n"
+"over any kind of not-selected object."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:136
+msgid "Display Selection Shape"
+msgstr "Display Selection Shape"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:138
+msgid ""
+"Enable the display of a selection shape for FlatCAM objects.\n"
+"It is displayed whenever the mouse selects an object\n"
+"either by clicking or dragging mouse from left to right or\n"
+"right to left."
+msgstr ""
+"Enable the display of a selection shape for FlatCAM objects.\n"
+"It is displayed whenever the mouse selects an object\n"
+"either by clicking or dragging mouse from left to right or\n"
+"right to left."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:151
+msgid "Left-Right Selection Color"
+msgstr "Left-Right Selection Color"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:156
+msgid "Set the line color for the 'left to right' selection box."
+msgstr "Set the line color for the 'left to right' selection box."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:172
+msgid ""
+"Set the fill color for the selection box\n"
+"in case that the selection is done from left to right.\n"
+"First 6 digits are the color and the last 2\n"
+"digits are for alpha (transparency) level."
+msgstr ""
+"Set the fill color for the selection box\n"
+"in case that the selection is done from left to right.\n"
+"First 6 digits are the color and the last 2\n"
+"digits are for alpha (transparency) level."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:192
+msgid "Set the fill transparency for the 'left to right' selection box."
+msgstr "Set the fill transparency for the 'left to right' selection box."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:216
+msgid "Right-Left Selection Color"
+msgstr "Right-Left Selection Color"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:222
+msgid "Set the line color for the 'right to left' selection box."
+msgstr "Set the line color for the 'right to left' selection box."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:239
+msgid ""
+"Set the fill color for the selection box\n"
+"in case that the selection is done from right to left.\n"
+"First 6 digits are the color and the last 2\n"
+"digits are for alpha (transparency) level."
+msgstr ""
+"Set the fill color for the selection box\n"
+"in case that the selection is done from right to left.\n"
+"First 6 digits are the color and the last 2\n"
+"digits are for alpha (transparency) level."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:259
+msgid "Set the fill transparency for selection 'right to left' box."
+msgstr "Set the fill transparency for selection 'right to left' box."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:286
+msgid "Editor Color"
+msgstr "Editor Color"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:290
+msgid "Drawing"
+msgstr "Drawing"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:292
+msgid "Set the color for the shape."
+msgstr "Set the color for the shape."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:309
+msgid "Set the color of the shape when selected."
+msgstr "Set the color of the shape when selected."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:332
+msgid "Project Items Color"
+msgstr "Project Items Color"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:336
+msgid "Enabled"
+msgstr "Enabled"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:338
+msgid "Set the color of the items in Project Tab Tree."
+msgstr "Set the color of the items in Project Tab Tree."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:352
+msgid "Disabled"
+msgstr "Disabled"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:354
+msgid ""
+"Set the color of the items in Project Tab Tree,\n"
+"for the case when the items are disabled."
+msgstr ""
+"Set the color of the items in Project Tab Tree,\n"
+"for the case when the items are disabled."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:370
+msgid "Project AutoHide"
+msgstr "Project AutoHide"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:372
+msgid ""
+"Check this box if you want the project/selected/tool tab area to\n"
+"hide automatically when there are no objects loaded and\n"
+"to show whenever a new object is created."
+msgstr ""
+"Check this box if you want the project/selected/tool tab area to\n"
+"hide automatically when there are no objects loaded and\n"
+"to show whenever a new object is created."
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:27
+msgid "Geometry Adv. Options"
+msgstr "Geometry Adv. Options"
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:35
+msgid ""
+"A list of Geometry advanced parameters.\n"
+"Those parameters are available only for\n"
+"Advanced App. Level."
+msgstr ""
+"A list of Geometry advanced parameters.\n"
+"Those parameters are available only for\n"
+"Advanced App. Level."
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:45
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:112
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:134
+#: AppTools/ToolCalibration.py:125 AppTools/ToolSolderPaste.py:240
+msgid "Toolchange X-Y"
+msgstr "Toolchange X-Y"
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:56
+msgid ""
+"Height of the tool just after starting the work.\n"
+"Delete the value if you don't need this feature."
+msgstr ""
+"Height of the tool just after starting the work.\n"
+"Delete the value if you don't need this feature."
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:158
+msgid "Segment X size"
+msgstr "Segment X size"
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:160
+msgid ""
+"The size of the trace segment on the X axis.\n"
+"Useful for auto-leveling.\n"
+"A value of 0 means no segmentation on the X axis."
+msgstr ""
+"The size of the trace segment on the X axis.\n"
+"Useful for auto-leveling.\n"
+"A value of 0 means no segmentation on the X axis."
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:174
+msgid "Segment Y size"
+msgstr "Segment Y size"
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:176
+msgid ""
+"The size of the trace segment on the Y axis.\n"
+"Useful for auto-leveling.\n"
+"A value of 0 means no segmentation on the Y axis."
+msgstr ""
+"The size of the trace segment on the Y axis.\n"
+"Useful for auto-leveling.\n"
+"A value of 0 means no segmentation on the Y axis."
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:192
+msgid "Area Exclusion"
+msgstr "Area Exclusion"
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:194
+msgid ""
+"Area exclusion parameters.\n"
+"Those parameters are available only for\n"
+"Advanced App. Level."
+msgstr ""
+"Area exclusion parameters.\n"
+"Those parameters are available only for\n"
+"Advanced App. Level."
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:201
+msgid "Exclusion areas"
+msgstr "Exclusion areas"
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:212
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:322
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:286
+#: AppTools/ToolNCC.py:578 AppTools/ToolPaint.py:521
+msgid "Shape"
+msgstr "Shape"
+
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:33
+msgid "A list of Geometry Editor parameters."
+msgstr "A list of Geometry Editor parameters."
+
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:43
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:196
+msgid ""
+"Set the number of selected geometry\n"
+"items above which the utility geometry\n"
+"becomes just a selection rectangle.\n"
+"Increases the performance when moving a\n"
+"large number of geometric elements."
+msgstr ""
+"Set the number of selected geometry\n"
+"items above which the utility geometry\n"
+"becomes just a selection rectangle.\n"
+"Increases the performance when moving a\n"
+"large number of geometric elements."
+
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:27
+msgid "Geometry General"
+msgstr "Geometry General"
+
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:49
+msgid ""
+"The number of circle steps for Geometry \n"
+"circle and arc shapes linear approximation."
+msgstr ""
+"The number of circle steps for Geometry \n"
+"circle and arc shapes linear approximation."
+
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:63
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:41
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:48
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:42
+msgid "Tools Dia"
+msgstr "Tools Dia"
+
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:65
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:108
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:43
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:50
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:44
+msgid ""
+"Diameters of the tools, separated by comma.\n"
+"The value of the diameter has to use the dot decimals separator.\n"
+"Valid values: 0.3, 1.0"
+msgstr ""
+"Diameters of the tools, separated by comma.\n"
+"The value of the diameter has to use the dot decimals separator.\n"
+"Valid values: 0.3, 1.0"
+
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:80
+msgid "Geometry Object Color"
+msgstr "Geometry Object Color"
+
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:28
+msgid "Geometry Options"
+msgstr "Geometry Options"
+
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:36
+msgid ""
+"Create a CNC Job object\n"
+"tracing the contours of this\n"
+"Geometry object."
+msgstr ""
+"Create a CNC Job object\n"
+"tracing the contours of this\n"
+"Geometry object."
+
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:80
+msgid "Depth/Pass"
+msgstr "Depth/Pass"
+
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:82
+msgid ""
+"The depth to cut on each pass,\n"
+"when multidepth is enabled.\n"
+"It has positive value although\n"
+"it is a fraction from the depth\n"
+"which has negative value."
+msgstr ""
+"The depth to cut on each pass,\n"
+"when multidepth is enabled.\n"
+"It has positive value although\n"
+"it is a fraction from the depth\n"
+"which has negative value."
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:27
+msgid "Gerber Adv. Options"
+msgstr "Gerber Adv. Options"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:33
+msgid ""
+"A list of Gerber advanced parameters.\n"
+"Those parameters are available only for\n"
+"Advanced App. Level."
+msgstr ""
+"A list of Gerber advanced parameters.\n"
+"Those parameters are available only for\n"
+"Advanced App. Level."
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:52
+msgid "Table Show/Hide"
+msgstr "Table Show/Hide"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:54
+msgid ""
+"Toggle the display of the Gerber Apertures Table.\n"
+"Also, on hide, it will delete all mark shapes\n"
+"that are drawn on canvas."
+msgstr ""
+"Toggle the display of the Gerber Apertures Table.\n"
+"Also, on hide, it will delete all mark shapes\n"
+"that are drawn on canvas."
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:134
+msgid "Exterior"
+msgstr "Exterior"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:135
+msgid "Interior"
+msgstr "Interior"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:146
+#: AppObjects/FlatCAMGerber.py:497 AppTools/ToolCopperThieving.py:1022
+#: AppTools/ToolCopperThieving.py:1211 AppTools/ToolCopperThieving.py:1223
+#: AppTools/ToolNCC.py:2059 AppTools/ToolNCC.py:2170 AppTools/ToolNCC.py:2185
+#: AppTools/ToolNCC.py:3149 AppTools/ToolNCC.py:3254 AppTools/ToolNCC.py:3269
+#: AppTools/ToolNCC.py:3535 AppTools/ToolNCC.py:3636 AppTools/ToolNCC.py:3651
+#: camlib.py:982
+msgid "Buffering"
+msgstr "Buffering"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:148
+msgid ""
+"Buffering type:\n"
+"- None --> best performance, fast file loading but no so good display\n"
+"- Full --> slow file loading but good visuals. This is the default.\n"
+"<>: Don't change this unless you know what you are doing !!!"
+msgstr ""
+"Buffering type:\n"
+"- None --> best performance, fast file loading but no so good display\n"
+"- Full --> slow file loading but good visuals. This is the default.\n"
+"<>: Don't change this unless you know what you are doing !!!"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:153
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:207
+#: AppTools/ToolFiducials.py:201 AppTools/ToolFilm.py:238
+#: AppTools/ToolProperties.py:452 AppTools/ToolProperties.py:455
+#: AppTools/ToolProperties.py:458 AppTools/ToolProperties.py:483
+msgid "None"
+msgstr "None"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:159
+msgid "Simplify"
+msgstr "Simplify"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:161
+msgid ""
+"When checked all the Gerber polygons will be\n"
+"loaded with simplification having a set tolerance.\n"
+"<>: Don't change this unless you know what you are doing !!!"
+msgstr ""
+"When checked all the Gerber polygons will be\n"
+"loaded with simplification having a set tolerance.\n"
+"<>: Don't change this unless you know what you are doing !!!"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:168
+msgid "Tolerance"
+msgstr "Tolerance"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:169
+msgid "Tolerance for polygon simplification."
+msgstr "Tolerance for polygon simplification."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:33
+msgid "A list of Gerber Editor parameters."
+msgstr "A list of Gerber Editor parameters."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:43
+msgid ""
+"Set the number of selected Gerber geometry\n"
+"items above which the utility geometry\n"
+"becomes just a selection rectangle.\n"
+"Increases the performance when moving a\n"
+"large number of geometric elements."
+msgstr ""
+"Set the number of selected Gerber geometry\n"
+"items above which the utility geometry\n"
+"becomes just a selection rectangle.\n"
+"Increases the performance when moving a\n"
+"large number of geometric elements."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:56
+msgid "New Aperture code"
+msgstr "New Aperture code"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:69
+msgid "New Aperture size"
+msgstr "New Aperture size"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:71
+msgid "Size for the new aperture"
+msgstr "Size for the new aperture"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:82
+msgid "New Aperture type"
+msgstr "New Aperture type"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:84
+msgid ""
+"Type for the new aperture.\n"
+"Can be 'C', 'R' or 'O'."
+msgstr ""
+"Type for the new aperture.\n"
+"Can be 'C', 'R' or 'O'."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:106
+msgid "Aperture Dimensions"
+msgstr "Aperture Dimensions"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:116
+msgid "Linear Pad Array"
+msgstr "Linear Pad Array"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:160
+msgid "Circular Pad Array"
+msgstr "Circular Pad Array"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:196
+msgid "Distance at which to buffer the Gerber element."
+msgstr "Distance at which to buffer the Gerber element."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:205
+msgid "Scale Tool"
+msgstr "Scale Tool"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:211
+msgid "Factor to scale the Gerber element."
+msgstr "Factor to scale the Gerber element."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:224
+msgid "Threshold low"
+msgstr "Threshold low"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:226
+msgid "Threshold value under which the apertures are not marked."
+msgstr "Threshold value under which the apertures are not marked."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:236
+msgid "Threshold high"
+msgstr "Threshold high"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:238
+msgid "Threshold value over which the apertures are not marked."
+msgstr "Threshold value over which the apertures are not marked."
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:27
+msgid "Gerber Export"
+msgstr "Gerber Export"
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:33
+msgid ""
+"The parameters set here are used in the file exported\n"
+"when using the File -> Export -> Export Gerber menu entry."
+msgstr ""
+"The parameters set here are used in the file exported\n"
+"when using the File -> Export -> Export Gerber menu entry."
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:44
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:50
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:84
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:90
+msgid "The units used in the Gerber file."
+msgstr "The units used in the Gerber file."
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:58
+msgid ""
+"The number of digits in the whole part of the number\n"
+"and in the fractional part of the number."
+msgstr ""
+"The number of digits in the whole part of the number\n"
+"and in the fractional part of the number."
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:71
+msgid ""
+"This numbers signify the number of digits in\n"
+"the whole part of Gerber coordinates."
+msgstr ""
+"This numbers signify the number of digits in\n"
+"the whole part of Gerber coordinates."
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:87
+msgid ""
+"This numbers signify the number of digits in\n"
+"the decimal part of Gerber coordinates."
+msgstr ""
+"This numbers signify the number of digits in\n"
+"the decimal part of Gerber coordinates."
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:99
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:109
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:100
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:110
+msgid ""
+"This sets the type of Gerber zeros.\n"
+"If LZ then Leading Zeros are removed and\n"
+"Trailing Zeros are kept.\n"
+"If TZ is checked then Trailing Zeros are removed\n"
+"and Leading Zeros are kept."
+msgstr ""
+"This sets the type of Gerber zeros.\n"
+"If LZ then Leading Zeros are removed and\n"
+"Trailing Zeros are kept.\n"
+"If TZ is checked then Trailing Zeros are removed\n"
+"and Leading Zeros are kept."
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:27
+msgid "Gerber General"
+msgstr "Gerber General"
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:45
+msgid "M-Color"
+msgstr "M-Color"
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:61
+msgid ""
+"The number of circle steps for Gerber \n"
+"circular aperture linear approximation."
+msgstr ""
+"The number of circle steps for Gerber \n"
+"circular aperture linear approximation."
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:73
+msgid "Default Values"
+msgstr "Default Values"
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:75
+msgid ""
+"Those values will be used as fallback values\n"
+"in case that they are not found in the Gerber file."
+msgstr ""
+"Those values will be used as fallback values\n"
+"in case that they are not found in the Gerber file."
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:126
+msgid "Clean Apertures"
+msgstr "Clean Apertures"
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:128
+msgid ""
+"Will remove apertures that do not have geometry\n"
+"thus lowering the number of apertures in the Gerber object."
+msgstr ""
+"Will remove apertures that do not have geometry\n"
+"thus lowering the number of apertures in the Gerber object."
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:134
+msgid "Polarity change buffer"
+msgstr "Polarity change buffer"
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:136
+msgid ""
+"Will apply extra buffering for the\n"
+"solid geometry when we have polarity changes.\n"
+"May help loading Gerber files that otherwise\n"
+"do not load correctly."
+msgstr ""
+"Will apply extra buffering for the\n"
+"solid geometry when we have polarity changes.\n"
+"May help loading Gerber files that otherwise\n"
+"do not load correctly."
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:149
+msgid "Gerber Object Color"
+msgstr "Gerber Object Color"
+
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:29
+msgid "Gerber Options"
+msgstr "Gerber Options"
+
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:107
+msgid "Combine Passes"
+msgstr "Combine Passes"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:27
+msgid "Copper Thieving Tool Options"
+msgstr "Copper Thieving Tool Options"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:39
+msgid ""
+"A tool to generate a Copper Thieving that can be added\n"
+"to a selected Gerber file."
+msgstr ""
+"A tool to generate a Copper Thieving that can be added\n"
+"to a selected Gerber file."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:47
+msgid "Number of steps (lines) used to interpolate circles."
+msgstr "Number of steps (lines) used to interpolate circles."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261
+#: AppTools/ToolCopperThieving.py:96 AppTools/ToolCopperThieving.py:431
+msgid "Clearance"
+msgstr "Clearance"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:59
+msgid ""
+"This set the distance between the copper Thieving components\n"
+"(the polygon fill may be split in multiple polygons)\n"
+"and the copper traces in the Gerber file."
+msgstr ""
+"This set the distance between the copper Thieving components\n"
+"(the polygon fill may be split in multiple polygons)\n"
+"and the copper traces in the Gerber file."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
+#: AppTools/ToolCopperThieving.py:125 AppTools/ToolNCC.py:535
+#: AppTools/ToolNCC.py:1306 AppTools/ToolNCC.py:1635 AppTools/ToolNCC.py:1928
+#: AppTools/ToolNCC.py:1992 AppTools/ToolNCC.py:3013 AppTools/ToolNCC.py:3022
+#: defaults.py:406 tclCommands/TclCommandCopperClear.py:190
+msgid "Itself"
+msgstr "Itself"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
+#: AppTools/ToolCopperThieving.py:126 AppTools/ToolNCC.py:535
+#: AppTools/ToolNCC.py:1316 AppTools/ToolNCC.py:1648 AppTools/ToolNCC.py:1944
+#: AppTools/ToolNCC.py:1999 AppTools/ToolPaint.py:485 AppTools/ToolPaint.py:945
+#: AppTools/ToolPaint.py:1451
+msgid "Area Selection"
+msgstr "Area Selection"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
+#: AppTools/ToolCopperThieving.py:127 AppTools/ToolDblSided.py:216
+#: AppTools/ToolNCC.py:535 AppTools/ToolNCC.py:1664 AppTools/ToolNCC.py:1950
+#: AppTools/ToolNCC.py:2007 AppTools/ToolNCC.py:2383 AppTools/ToolNCC.py:2631
+#: AppTools/ToolNCC.py:3058 AppTools/ToolPaint.py:485 AppTools/ToolPaint.py:930
+#: AppTools/ToolPaint.py:1467 tclCommands/TclCommandCopperClear.py:192
+#: tclCommands/TclCommandPaint.py:166
+msgid "Reference Object"
+msgstr "Reference Object"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90
+#: AppTools/ToolCopperThieving.py:129
+msgid "Reference:"
+msgstr "Reference:"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92
+msgid ""
+"- 'Itself' - the copper Thieving extent is based on the object extent.\n"
+"- 'Area Selection' - left mouse click to start selection of the area to be "
+"filled.\n"
+"- 'Reference Object' - will do copper thieving within the area specified by "
+"another object."
+msgstr ""
+"- 'Itself' - the copper Thieving extent is based on the object extent.\n"
+"- 'Area Selection' - left mouse click to start selection of the area to be "
+"filled.\n"
+"- 'Reference Object' - will do copper thieving within the area specified by "
+"another object."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:76
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190
+#: AppTools/ToolCopperThieving.py:171 AppTools/ToolExtractDrills.py:102
+#: AppTools/ToolExtractDrills.py:240 AppTools/ToolPunchGerber.py:113
+#: AppTools/ToolPunchGerber.py:268
+msgid "Rectangular"
+msgstr "Rectangular"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102
+#: AppTools/ToolCopperThieving.py:172
+msgid "Minimal"
+msgstr "Minimal"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104
+#: AppTools/ToolCopperThieving.py:174 AppTools/ToolFilm.py:94
+msgid "Box Type:"
+msgstr "Box Type:"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106
+#: AppTools/ToolCopperThieving.py:176
+msgid ""
+"- 'Rectangular' - the bounding box will be of rectangular shape.\n"
+"- 'Minimal' - the bounding box will be the convex hull shape."
+msgstr ""
+"- 'Rectangular' - the bounding box will be of rectangular shape.\n"
+"- 'Minimal' - the bounding box will be the convex hull shape."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120
+#: AppTools/ToolCopperThieving.py:192
+msgid "Dots Grid"
+msgstr "Dots Grid"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121
+#: AppTools/ToolCopperThieving.py:193
+msgid "Squares Grid"
+msgstr "Squares Grid"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122
+#: AppTools/ToolCopperThieving.py:194
+msgid "Lines Grid"
+msgstr "Lines Grid"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124
+#: AppTools/ToolCopperThieving.py:196
+msgid "Fill Type:"
+msgstr "Fill Type:"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126
+#: AppTools/ToolCopperThieving.py:198
+msgid ""
+"- 'Solid' - copper thieving will be a solid polygon.\n"
+"- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n"
+"- 'Squares Grid' - the empty area will be filled with a pattern of squares.\n"
+"- 'Lines Grid' - the empty area will be filled with a pattern of lines."
+msgstr ""
+"- 'Solid' - copper thieving will be a solid polygon.\n"
+"- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n"
+"- 'Squares Grid' - the empty area will be filled with a pattern of squares.\n"
+"- 'Lines Grid' - the empty area will be filled with a pattern of lines."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134
+#: AppTools/ToolCopperThieving.py:217
+msgid "Dots Grid Parameters"
+msgstr "Dots Grid Parameters"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140
+#: AppTools/ToolCopperThieving.py:223
+msgid "Dot diameter in Dots Grid."
+msgstr "Dot diameter in Dots Grid."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209
+#: AppTools/ToolCopperThieving.py:234 AppTools/ToolCopperThieving.py:274
+#: AppTools/ToolCopperThieving.py:314
+msgid "Spacing"
+msgstr "Spacing"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153
+#: AppTools/ToolCopperThieving.py:236
+msgid "Distance between each two dots in Dots Grid."
+msgstr "Distance between each two dots in Dots Grid."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163
+#: AppTools/ToolCopperThieving.py:257
+msgid "Squares Grid Parameters"
+msgstr "Squares Grid Parameters"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169
+#: AppTools/ToolCopperThieving.py:263
+msgid "Square side size in Squares Grid."
+msgstr "Square side size in Squares Grid."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182
+#: AppTools/ToolCopperThieving.py:276
+msgid "Distance between each two squares in Squares Grid."
+msgstr "Distance between each two squares in Squares Grid."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192
+#: AppTools/ToolCopperThieving.py:297
+msgid "Lines Grid Parameters"
+msgstr "Lines Grid Parameters"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198
+#: AppTools/ToolCopperThieving.py:303
+msgid "Line thickness size in Lines Grid."
+msgstr "Line thickness size in Lines Grid."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211
+#: AppTools/ToolCopperThieving.py:316
+msgid "Distance between each two lines in Lines Grid."
+msgstr "Distance between each two lines in Lines Grid."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221
+#: AppTools/ToolCopperThieving.py:354
+msgid "Robber Bar Parameters"
+msgstr "Robber Bar Parameters"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223
+#: AppTools/ToolCopperThieving.py:356
+msgid ""
+"Parameters used for the robber bar.\n"
+"Robber bar = copper border to help in pattern hole plating."
+msgstr ""
+"Parameters used for the robber bar.\n"
+"Robber bar = copper border to help in pattern hole plating."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231
+#: AppTools/ToolCopperThieving.py:364
+msgid "Bounding box margin for robber bar."
+msgstr "Bounding box margin for robber bar."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:42
+#: AppTools/ToolCopperThieving.py:375 AppTools/ToolCorners.py:113
+#: AppTools/ToolEtchCompensation.py:96
+msgid "Thickness"
+msgstr "Thickness"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244
+#: AppTools/ToolCopperThieving.py:377
+msgid "The robber bar thickness."
+msgstr "The robber bar thickness."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254
+#: AppTools/ToolCopperThieving.py:408
+msgid "Pattern Plating Mask"
+msgstr "Pattern Plating Mask"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256
+#: AppTools/ToolCopperThieving.py:410
+msgid "Generate a mask for pattern plating."
+msgstr "Generate a mask for pattern plating."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263
+#: AppTools/ToolCopperThieving.py:433
+msgid ""
+"The distance between the possible copper thieving elements\n"
+"and/or robber bar and the actual openings in the mask."
+msgstr ""
+"The distance between the possible copper thieving elements\n"
+"and/or robber bar and the actual openings in the mask."
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:27
+msgid "Calibration Tool Options"
+msgstr "Calibration Tool Options"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:38
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:38
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:37
+#: AppTools/ToolCopperThieving.py:91 AppTools/ToolCorners.py:108
+#: AppTools/ToolFiducials.py:151
+msgid "Parameters used for this tool."
+msgstr "Parameters used for this tool."
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:43
+#: AppTools/ToolCalibration.py:181
+msgid "Source Type"
+msgstr "Source Type"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:44
+#: AppTools/ToolCalibration.py:182
+msgid ""
+"The source of calibration points.\n"
+"It can be:\n"
+"- Object -> click a hole geo for Excellon or a pad for Gerber\n"
+"- Free -> click freely on canvas to acquire the calibration points"
+msgstr ""
+"The source of calibration points.\n"
+"It can be:\n"
+"- Object -> click a hole geo for Excellon or a pad for Gerber\n"
+"- Free -> click freely on canvas to acquire the calibration points"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:49
+#: AppTools/ToolCalibration.py:187
+msgid "Free"
+msgstr "Free"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:63
+#: AppTools/ToolCalibration.py:76
+msgid "Height (Z) for travelling between the points."
+msgstr "Height (Z) for travelling between the points."
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:75
+#: AppTools/ToolCalibration.py:88
+msgid "Verification Z"
+msgstr "Verification Z"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:77
+#: AppTools/ToolCalibration.py:90
+msgid "Height (Z) for checking the point."
+msgstr "Height (Z) for checking the point."
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:89
+#: AppTools/ToolCalibration.py:102
+msgid "Zero Z tool"
+msgstr "Zero Z tool"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:91
+#: AppTools/ToolCalibration.py:104
+msgid ""
+"Include a sequence to zero the height (Z)\n"
+"of the verification tool."
+msgstr ""
+"Include a sequence to zero the height (Z)\n"
+"of the verification tool."
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:100
+#: AppTools/ToolCalibration.py:113
+msgid "Height (Z) for mounting the verification probe."
+msgstr "Height (Z) for mounting the verification probe."
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:114
+#: AppTools/ToolCalibration.py:127
+msgid ""
+"Toolchange X,Y position.\n"
+"If no value is entered then the current\n"
+"(x, y) point will be used,"
+msgstr ""
+"Toolchange X,Y position.\n"
+"If no value is entered then the current\n"
+"(x, y) point will be used,"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:125
+#: AppTools/ToolCalibration.py:153
+msgid "Second point"
+msgstr "Second point"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:127
+#: AppTools/ToolCalibration.py:155
+msgid ""
+"Second point in the Gcode verification can be:\n"
+"- top-left -> the user will align the PCB vertically\n"
+"- bottom-right -> the user will align the PCB horizontally"
+msgstr ""
+"Second point in the Gcode verification can be:\n"
+"- top-left -> the user will align the PCB vertically\n"
+"- bottom-right -> the user will align the PCB horizontally"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:131
+#: AppTools/ToolCalibration.py:159 App_Main.py:4684
+msgid "Top-Left"
+msgstr "Top-Left"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:132
+#: AppTools/ToolCalibration.py:160 App_Main.py:4685
+msgid "Bottom-Right"
+msgstr "Bottom-Right"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:27
+msgid "Extract Drills Options"
+msgstr "Extract Drills Options"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42
+#: AppTools/ToolExtractDrills.py:68 AppTools/ToolPunchGerber.py:75
+msgid "Processed Pads Type"
+msgstr "Processed Pads Type"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44
+#: AppTools/ToolExtractDrills.py:70 AppTools/ToolPunchGerber.py:77
+msgid ""
+"The type of pads shape to be processed.\n"
+"If the PCB has many SMD pads with rectangular pads,\n"
+"disable the Rectangular aperture."
+msgstr ""
+"The type of pads shape to be processed.\n"
+"If the PCB has many SMD pads with rectangular pads,\n"
+"disable the Rectangular aperture."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54
+#: AppTools/ToolExtractDrills.py:80 AppTools/ToolPunchGerber.py:91
+msgid "Process Circular Pads."
+msgstr "Process Circular Pads."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:60
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164
+#: AppTools/ToolExtractDrills.py:86 AppTools/ToolExtractDrills.py:214
+#: AppTools/ToolPunchGerber.py:97 AppTools/ToolPunchGerber.py:242
+msgid "Oblong"
+msgstr "Oblong"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62
+#: AppTools/ToolExtractDrills.py:88 AppTools/ToolPunchGerber.py:99
+msgid "Process Oblong Pads."
+msgstr "Process Oblong Pads."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70
+#: AppTools/ToolExtractDrills.py:96 AppTools/ToolPunchGerber.py:107
+msgid "Process Square Pads."
+msgstr "Process Square Pads."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78
+#: AppTools/ToolExtractDrills.py:104 AppTools/ToolPunchGerber.py:115
+msgid "Process Rectangular Pads."
+msgstr "Process Rectangular Pads."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:84
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203
+#: AppTools/ToolExtractDrills.py:110 AppTools/ToolExtractDrills.py:253
+#: AppTools/ToolProperties.py:172 AppTools/ToolPunchGerber.py:121
+#: AppTools/ToolPunchGerber.py:281
+msgid "Others"
+msgstr "Others"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86
+#: AppTools/ToolExtractDrills.py:112 AppTools/ToolPunchGerber.py:123
+msgid "Process pads not in the categories above."
+msgstr "Process pads not in the categories above."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:99
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125
+#: AppTools/ToolExtractDrills.py:139 AppTools/ToolExtractDrills.py:156
+#: AppTools/ToolPunchGerber.py:150 AppTools/ToolPunchGerber.py:184
+msgid "Fixed Diameter"
+msgstr "Fixed Diameter"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:100
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142
+#: AppTools/ToolExtractDrills.py:140 AppTools/ToolExtractDrills.py:192
+#: AppTools/ToolPunchGerber.py:151 AppTools/ToolPunchGerber.py:214
+msgid "Fixed Annular Ring"
+msgstr "Fixed Annular Ring"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102
+#: AppTools/ToolExtractDrills.py:141 AppTools/ToolPunchGerber.py:152
+msgid "Proportional"
+msgstr "Proportional"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107
+#: AppTools/ToolExtractDrills.py:130
+msgid ""
+"The method for processing pads. Can be:\n"
+"- Fixed Diameter -> all holes will have a set size\n"
+"- Fixed Annular Ring -> all holes will have a set annular ring\n"
+"- Proportional -> each hole size will be a fraction of the pad size"
+msgstr ""
+"The method for processing pads. Can be:\n"
+"- Fixed Diameter -> all holes will have a set size\n"
+"- Fixed Annular Ring -> all holes will have a set annular ring\n"
+"- Proportional -> each hole size will be a fraction of the pad size"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:220
+#: AppTools/ToolExtractDrills.py:164 AppTools/ToolExtractDrills.py:285
+#: AppTools/ToolPunchGerber.py:192 AppTools/ToolPunchGerber.py:308
+#: AppTools/ToolTransform.py:357 App_Main.py:9602
+msgid "Value"
+msgstr "Value"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135
+#: AppTools/ToolExtractDrills.py:166 AppTools/ToolPunchGerber.py:194
+msgid "Fixed hole diameter."
+msgstr "Fixed hole diameter."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:142
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144
+#: AppTools/ToolExtractDrills.py:194 AppTools/ToolPunchGerber.py:216
+msgid ""
+"The size of annular ring.\n"
+"The copper sliver between the hole exterior\n"
+"and the margin of the copper pad."
+msgstr ""
+"The size of annular ring.\n"
+"The copper sliver between the hole exterior\n"
+"and the margin of the copper pad."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153
+#: AppTools/ToolExtractDrills.py:203 AppTools/ToolPunchGerber.py:231
+msgid "The size of annular ring for circular pads."
+msgstr "The size of annular ring for circular pads."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:164
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:166
+#: AppTools/ToolExtractDrills.py:216 AppTools/ToolPunchGerber.py:244
+msgid "The size of annular ring for oblong pads."
+msgstr "The size of annular ring for oblong pads."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:177
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:179
+#: AppTools/ToolExtractDrills.py:229 AppTools/ToolPunchGerber.py:257
+msgid "The size of annular ring for square pads."
+msgstr "The size of annular ring for square pads."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:190
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:192
+#: AppTools/ToolExtractDrills.py:242 AppTools/ToolPunchGerber.py:270
+msgid "The size of annular ring for rectangular pads."
+msgstr "The size of annular ring for rectangular pads."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:203
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:205
+#: AppTools/ToolExtractDrills.py:255 AppTools/ToolPunchGerber.py:283
+msgid "The size of annular ring for other pads."
+msgstr "The size of annular ring for other pads."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:213
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:215
+#: AppTools/ToolExtractDrills.py:276 AppTools/ToolPunchGerber.py:299
+msgid "Proportional Diameter"
+msgstr "Proportional Diameter"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:222
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:224
+msgid "Factor"
+msgstr "Factor"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226
+#: AppTools/ToolExtractDrills.py:287 AppTools/ToolPunchGerber.py:310
+msgid ""
+"Proportional Diameter.\n"
+"The hole diameter will be a fraction of the pad size."
+msgstr ""
+"Proportional Diameter.\n"
+"The hole diameter will be a fraction of the pad size."
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:27
+msgid "Fiducials Tool Options"
+msgstr "Fiducials Tool Options"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45
+#: AppTools/ToolFiducials.py:158
+msgid ""
+"This set the fiducial diameter if fiducial type is circular,\n"
+"otherwise is the size of the fiducial.\n"
+"The soldermask opening is double than that."
+msgstr ""
+"This set the fiducial diameter if fiducial type is circular,\n"
+"otherwise is the size of the fiducial.\n"
+"The soldermask opening is double than that."
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73
+#: AppTools/ToolFiducials.py:186
+msgid "Auto"
+msgstr "Auto"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74
+#: AppTools/ToolFiducials.py:187
+msgid "Manual"
+msgstr "Manual"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76
+#: AppTools/ToolFiducials.py:189
+msgid "Mode:"
+msgstr "Mode:"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:78
+msgid ""
+"- 'Auto' - automatic placement of fiducials in the corners of the bounding "
+"box.\n"
+"- 'Manual' - manual placement of fiducials."
+msgstr ""
+"- 'Auto' - automatic placement of fiducials in the corners of the bounding "
+"box.\n"
+"- 'Manual' - manual placement of fiducials."
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86
+#: AppTools/ToolFiducials.py:199
+msgid "Up"
+msgstr "Up"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87
+#: AppTools/ToolFiducials.py:200
+msgid "Down"
+msgstr "Down"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90
+#: AppTools/ToolFiducials.py:203
+msgid "Second fiducial"
+msgstr "Second fiducial"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92
+#: AppTools/ToolFiducials.py:205
+msgid ""
+"The position for the second fiducial.\n"
+"- 'Up' - the order is: bottom-left, top-left, top-right.\n"
+"- 'Down' - the order is: bottom-left, bottom-right, top-right.\n"
+"- 'None' - there is no second fiducial. The order is: bottom-left, top-right."
+msgstr ""
+"The position for the second fiducial.\n"
+"- 'Up' - the order is: bottom-left, top-left, top-right.\n"
+"- 'Down' - the order is: bottom-left, bottom-right, top-right.\n"
+"- 'None' - there is no second fiducial. The order is: bottom-left, top-right."
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108
+#: AppTools/ToolFiducials.py:221
+msgid "Cross"
+msgstr "Cross"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109
+#: AppTools/ToolFiducials.py:222
+msgid "Chess"
+msgstr "Chess"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112
+#: AppTools/ToolFiducials.py:224
+msgid "Fiducial Type"
+msgstr "Fiducial Type"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114
+#: AppTools/ToolFiducials.py:226
+msgid ""
+"The type of fiducial.\n"
+"- 'Circular' - this is the regular fiducial.\n"
+"- 'Cross' - cross lines fiducial.\n"
+"- 'Chess' - chess pattern fiducial."
+msgstr ""
+"The type of fiducial.\n"
+"- 'Circular' - this is the regular fiducial.\n"
+"- 'Cross' - cross lines fiducial.\n"
+"- 'Chess' - chess pattern fiducial."
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123
+#: AppTools/ToolFiducials.py:235
+msgid "Line thickness"
+msgstr "Line thickness"
+
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:27
+msgid "Invert Gerber Tool Options"
+msgstr "Invert Gerber Tool Options"
+
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:33
+msgid ""
+"A tool to invert Gerber geometry from positive to negative\n"
+"and in revers."
+msgstr ""
+"A tool to invert Gerber geometry from positive to negative\n"
+"and in revers."
+
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:47
+#: AppTools/ToolInvertGerber.py:90
+msgid ""
+"Distance by which to avoid\n"
+"the edges of the Gerber object."
+msgstr ""
+"Distance by which to avoid\n"
+"the edges of the Gerber object."
+
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:58
+#: AppTools/ToolInvertGerber.py:101
+msgid "Lines Join Style"
+msgstr "Lines Join Style"
+
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:60
+#: AppTools/ToolInvertGerber.py:103
+msgid ""
+"The way that the lines in the object outline will be joined.\n"
+"Can be:\n"
+"- rounded -> an arc is added between two joining lines\n"
+"- square -> the lines meet in 90 degrees angle\n"
+"- bevel -> the lines are joined by a third line"
+msgstr ""
+"The way that the lines in the object outline will be joined.\n"
+"Can be:\n"
+"- rounded -> an arc is added between two joining lines\n"
+"- square -> the lines meet in 90 degrees angle\n"
+"- bevel -> the lines are joined by a third line"
+
+#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:27
+msgid "Optimal Tool Options"
+msgstr "Optimal Tool Options"
+
+#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:33
+msgid ""
+"A tool to find the minimum distance between\n"
+"every two Gerber geometric elements"
+msgstr ""
+"A tool to find the minimum distance between\n"
+"every two Gerber geometric elements"
+
+#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:48
+#: AppTools/ToolOptimal.py:78
+msgid "Precision"
+msgstr "Precision"
+
+#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:50
+msgid "Number of decimals for the distances and coordinates in this tool."
+msgstr "Number of decimals for the distances and coordinates in this tool."
+
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:27
+msgid "Punch Gerber Options"
+msgstr "Punch Gerber Options"
+
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:108
+#: AppTools/ToolPunchGerber.py:141
+msgid ""
+"The punch hole source can be:\n"
+"- Excellon Object-> the Excellon object drills center will serve as "
+"reference.\n"
+"- Fixed Diameter -> will try to use the pads center as reference adding "
+"fixed diameter holes.\n"
+"- Fixed Annular Ring -> will try to keep a set annular ring.\n"
+"- Proportional -> will make a Gerber punch hole having the diameter a "
+"percentage of the pad diameter."
+msgstr ""
+"The punch hole source can be:\n"
+"- Excellon Object-> the Excellon object drills center will serve as "
+"reference.\n"
+"- Fixed Diameter -> will try to use the pads center as reference adding "
+"fixed diameter holes.\n"
+"- Fixed Annular Ring -> will try to keep a set annular ring.\n"
+"- Proportional -> will make a Gerber punch hole having the diameter a "
+"percentage of the pad diameter."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:27
+msgid "QRCode Tool Options"
+msgstr "QRCode Tool Options"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:33
+msgid ""
+"A tool to create a QRCode that can be inserted\n"
+"into a selected Gerber file, or it can be exported as a file."
+msgstr ""
+"A tool to create a QRCode that can be inserted\n"
+"into a selected Gerber file, or it can be exported as a file."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45
+#: AppTools/ToolQRCode.py:100
+msgid "Version"
+msgstr "Version"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47
+#: AppTools/ToolQRCode.py:102
+msgid ""
+"QRCode version can have values from 1 (21x21 boxes)\n"
+"to 40 (177x177 boxes)."
+msgstr ""
+"QRCode version can have values from 1 (21x21 boxes)\n"
+"to 40 (177x177 boxes)."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58
+#: AppTools/ToolQRCode.py:113
+msgid "Error correction"
+msgstr "Error correction"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71
+#: AppTools/ToolQRCode.py:115 AppTools/ToolQRCode.py:126
+#, python-format
+msgid ""
+"Parameter that controls the error correction used for the QR Code.\n"
+"L = maximum 7%% errors can be corrected\n"
+"M = maximum 15%% errors can be corrected\n"
+"Q = maximum 25%% errors can be corrected\n"
+"H = maximum 30%% errors can be corrected."
+msgstr ""
+"Parameter that controls the error correction used for the QR Code.\n"
+"L = maximum 7%% errors can be corrected\n"
+"M = maximum 15%% errors can be corrected\n"
+"Q = maximum 25%% errors can be corrected\n"
+"H = maximum 30%% errors can be corrected."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81
+#: AppTools/ToolQRCode.py:136
+msgid "Box Size"
+msgstr "Box Size"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83
+#: AppTools/ToolQRCode.py:138
+msgid ""
+"Box size control the overall size of the QRcode\n"
+"by adjusting the size of each box in the code."
+msgstr ""
+"Box size control the overall size of the QRcode\n"
+"by adjusting the size of each box in the code."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94
+#: AppTools/ToolQRCode.py:149
+msgid "Border Size"
+msgstr "Border Size"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96
+#: AppTools/ToolQRCode.py:151
+msgid ""
+"Size of the QRCode border. How many boxes thick is the border.\n"
+"Default value is 4. The width of the clearance around the QRCode."
+msgstr ""
+"Size of the QRCode border. How many boxes thick is the border.\n"
+"Default value is 4. The width of the clearance around the QRCode."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107
+#: AppTools/ToolQRCode.py:162
+msgid "QRCode Data"
+msgstr "QRCode Data"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109
+#: AppTools/ToolQRCode.py:164
+msgid "QRCode Data. Alphanumeric text to be encoded in the QRCode."
+msgstr "QRCode Data. Alphanumeric text to be encoded in the QRCode."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:113
+#: AppTools/ToolQRCode.py:168
+msgid "Add here the text to be included in the QRCode..."
+msgstr "Add here the text to be included in the QRCode..."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:119
+#: AppTools/ToolQRCode.py:174
+msgid "Polarity"
+msgstr "Polarity"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121
+#: AppTools/ToolQRCode.py:176
+msgid ""
+"Choose the polarity of the QRCode.\n"
+"It can be drawn in a negative way (squares are clear)\n"
+"or in a positive way (squares are opaque)."
+msgstr ""
+"Choose the polarity of the QRCode.\n"
+"It can be drawn in a negative way (squares are clear)\n"
+"or in a positive way (squares are opaque)."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125
+#: AppTools/ToolFilm.py:279 AppTools/ToolQRCode.py:180
+msgid "Negative"
+msgstr "Negative"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126
+#: AppTools/ToolFilm.py:278 AppTools/ToolQRCode.py:181
+msgid "Positive"
+msgstr "Positive"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128
+#: AppTools/ToolQRCode.py:183
+msgid ""
+"Choose the type of QRCode to be created.\n"
+"If added on a Silkscreen Gerber file the QRCode may\n"
+"be added as positive. If it is added to a Copper Gerber\n"
+"file then perhaps the QRCode can be added as negative."
+msgstr ""
+"Choose the type of QRCode to be created.\n"
+"If added on a Silkscreen Gerber file the QRCode may\n"
+"be added as positive. If it is added to a Copper Gerber\n"
+"file then perhaps the QRCode can be added as negative."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145
+#: AppTools/ToolQRCode.py:194 AppTools/ToolQRCode.py:200
+msgid ""
+"The bounding box, meaning the empty space that surrounds\n"
+"the QRCode geometry, can have a rounded or a square shape."
+msgstr ""
+"The bounding box, meaning the empty space that surrounds\n"
+"the QRCode geometry, can have a rounded or a square shape."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:239
+#: AppTools/ToolQRCode.py:197 AppTools/ToolTransform.py:383
+msgid "Rounded"
+msgstr "Rounded"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152
+#: AppTools/ToolQRCode.py:228
+msgid "Fill Color"
+msgstr "Fill Color"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154
+#: AppTools/ToolQRCode.py:230
+msgid "Set the QRCode fill color (squares color)."
+msgstr "Set the QRCode fill color (squares color)."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:173
+#: AppTools/ToolQRCode.py:252
+msgid "Back Color"
+msgstr "Back Color"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:175
+#: AppTools/ToolQRCode.py:254
+msgid "Set the QRCode background color."
+msgstr "Set the QRCode background color."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:27
+msgid "Check Rules Tool Options"
+msgstr "Check Rules Tool Options"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:32
+msgid ""
+"A tool to check if Gerber files are within a set\n"
+"of Manufacturing Rules."
+msgstr ""
+"A tool to check if Gerber files are within a set\n"
+"of Manufacturing Rules."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:42
+#: AppTools/ToolRulesCheck.py:265 AppTools/ToolRulesCheck.py:929
+msgid "Trace Size"
+msgstr "Trace Size"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:44
+#: AppTools/ToolRulesCheck.py:267
+msgid "This checks if the minimum size for traces is met."
+msgstr "This checks if the minimum size for traces is met."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:54
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:74
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:94
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:114
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:134
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:154
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:174
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:194
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:216
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:236
+#: AppTools/ToolRulesCheck.py:277 AppTools/ToolRulesCheck.py:299
+#: AppTools/ToolRulesCheck.py:322 AppTools/ToolRulesCheck.py:345
+#: AppTools/ToolRulesCheck.py:368 AppTools/ToolRulesCheck.py:391
+#: AppTools/ToolRulesCheck.py:414 AppTools/ToolRulesCheck.py:437
+#: AppTools/ToolRulesCheck.py:462 AppTools/ToolRulesCheck.py:485
+msgid "Min value"
+msgstr "Min value"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:56
+#: AppTools/ToolRulesCheck.py:279
+msgid "Minimum acceptable trace size."
+msgstr "Minimum acceptable trace size."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:61
+#: AppTools/ToolRulesCheck.py:286 AppTools/ToolRulesCheck.py:1157
+#: AppTools/ToolRulesCheck.py:1187
+msgid "Copper to Copper clearance"
+msgstr "Copper to Copper clearance"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:63
+#: AppTools/ToolRulesCheck.py:288
+msgid ""
+"This checks if the minimum clearance between copper\n"
+"features is met."
+msgstr ""
+"This checks if the minimum clearance between copper\n"
+"features is met."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:76
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:96
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:116
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:136
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:156
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:176
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:238
+#: AppTools/ToolRulesCheck.py:301 AppTools/ToolRulesCheck.py:324
+#: AppTools/ToolRulesCheck.py:347 AppTools/ToolRulesCheck.py:370
+#: AppTools/ToolRulesCheck.py:393 AppTools/ToolRulesCheck.py:416
+#: AppTools/ToolRulesCheck.py:464
+msgid "Minimum acceptable clearance value."
+msgstr "Minimum acceptable clearance value."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:81
+#: AppTools/ToolRulesCheck.py:309 AppTools/ToolRulesCheck.py:1217
+#: AppTools/ToolRulesCheck.py:1223 AppTools/ToolRulesCheck.py:1236
+#: AppTools/ToolRulesCheck.py:1243
+msgid "Copper to Outline clearance"
+msgstr "Copper to Outline clearance"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:83
+#: AppTools/ToolRulesCheck.py:311
+msgid ""
+"This checks if the minimum clearance between copper\n"
+"features and the outline is met."
+msgstr ""
+"This checks if the minimum clearance between copper\n"
+"features and the outline is met."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:101
+#: AppTools/ToolRulesCheck.py:332
+msgid "Silk to Silk Clearance"
+msgstr "Silk to Silk Clearance"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:103
+#: AppTools/ToolRulesCheck.py:334
+msgid ""
+"This checks if the minimum clearance between silkscreen\n"
+"features and silkscreen features is met."
+msgstr ""
+"This checks if the minimum clearance between silkscreen\n"
+"features and silkscreen features is met."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:121
+#: AppTools/ToolRulesCheck.py:355 AppTools/ToolRulesCheck.py:1326
+#: AppTools/ToolRulesCheck.py:1332 AppTools/ToolRulesCheck.py:1350
+msgid "Silk to Solder Mask Clearance"
+msgstr "Silk to Solder Mask Clearance"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:123
+#: AppTools/ToolRulesCheck.py:357
+msgid ""
+"This checks if the minimum clearance between silkscreen\n"
+"features and soldermask features is met."
+msgstr ""
+"This checks if the minimum clearance between silkscreen\n"
+"features and soldermask features is met."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:141
+#: AppTools/ToolRulesCheck.py:378 AppTools/ToolRulesCheck.py:1380
+#: AppTools/ToolRulesCheck.py:1386 AppTools/ToolRulesCheck.py:1400
+#: AppTools/ToolRulesCheck.py:1407
+msgid "Silk to Outline Clearance"
+msgstr "Silk to Outline Clearance"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:143
+#: AppTools/ToolRulesCheck.py:380
+msgid ""
+"This checks if the minimum clearance between silk\n"
+"features and the outline is met."
+msgstr ""
+"This checks if the minimum clearance between silk\n"
+"features and the outline is met."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:161
+#: AppTools/ToolRulesCheck.py:401 AppTools/ToolRulesCheck.py:1418
+#: AppTools/ToolRulesCheck.py:1445
+msgid "Minimum Solder Mask Sliver"
+msgstr "Minimum Solder Mask Sliver"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:163
+#: AppTools/ToolRulesCheck.py:403
+msgid ""
+"This checks if the minimum clearance between soldermask\n"
+"features and soldermask features is met."
+msgstr ""
+"This checks if the minimum clearance between soldermask\n"
+"features and soldermask features is met."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:181
+#: AppTools/ToolRulesCheck.py:424 AppTools/ToolRulesCheck.py:1483
+#: AppTools/ToolRulesCheck.py:1489 AppTools/ToolRulesCheck.py:1505
+#: AppTools/ToolRulesCheck.py:1512
+msgid "Minimum Annular Ring"
+msgstr "Minimum Annular Ring"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:183
+#: AppTools/ToolRulesCheck.py:426
+msgid ""
+"This checks if the minimum copper ring left by drilling\n"
+"a hole into a pad is met."
+msgstr ""
+"This checks if the minimum copper ring left by drilling\n"
+"a hole into a pad is met."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:196
+#: AppTools/ToolRulesCheck.py:439
+msgid "Minimum acceptable ring value."
+msgstr "Minimum acceptable ring value."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:203
+#: AppTools/ToolRulesCheck.py:449 AppTools/ToolRulesCheck.py:873
+msgid "Hole to Hole Clearance"
+msgstr "Hole to Hole Clearance"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:205
+#: AppTools/ToolRulesCheck.py:451
+msgid ""
+"This checks if the minimum clearance between a drill hole\n"
+"and another drill hole is met."
+msgstr ""
+"This checks if the minimum clearance between a drill hole\n"
+"and another drill hole is met."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:218
+#: AppTools/ToolRulesCheck.py:487
+msgid "Minimum acceptable drill size."
+msgstr "Minimum acceptable drill size."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:223
+#: AppTools/ToolRulesCheck.py:472 AppTools/ToolRulesCheck.py:847
+msgid "Hole Size"
+msgstr "Hole Size"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:225
+#: AppTools/ToolRulesCheck.py:474
+msgid ""
+"This checks if the drill holes\n"
+"sizes are above the threshold."
+msgstr ""
+"This checks if the drill holes\n"
+"sizes are above the threshold."
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:27
+msgid "2Sided Tool Options"
+msgstr "2Sided Tool Options"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:33
+msgid ""
+"A tool to help in creating a double sided\n"
+"PCB using alignment holes."
+msgstr ""
+"A tool to help in creating a double sided\n"
+"PCB using alignment holes."
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:47
+msgid "Drill dia"
+msgstr "Drill dia"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49
+#: AppTools/ToolDblSided.py:363 AppTools/ToolDblSided.py:368
+msgid "Diameter of the drill for the alignment holes."
+msgstr "Diameter of the drill for the alignment holes."
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:56
+#: AppTools/ToolDblSided.py:377
+msgid "Align Axis"
+msgstr "Align Axis"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71
+#: AppTools/ToolDblSided.py:165 AppTools/ToolDblSided.py:379
+msgid "Mirror vertically (X) or horizontally (Y)."
+msgstr "Mirror vertically (X) or horizontally (Y)."
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:69
+msgid "Mirror Axis:"
+msgstr "Mirror Axis:"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:80
+#: AppTools/ToolDblSided.py:181
+msgid "Point"
+msgstr "Point"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:81
+#: AppTools/ToolDblSided.py:182
+msgid "Box"
+msgstr "Box"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:82
+msgid "Axis Ref"
+msgstr "Axis Ref"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:84
+msgid ""
+"The axis should pass through a point or cut\n"
+" a specified box (in a FlatCAM object) through \n"
+"the center."
+msgstr ""
+"The axis should pass through a point or cut\n"
+" a specified box (in a FlatCAM object) through \n"
+"the center."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:27
+msgid "Calculators Tool Options"
+msgstr "Calculators Tool Options"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31
+#: AppTools/ToolCalculators.py:25
+msgid "V-Shape Tool Calculator"
+msgstr "V-Shape Tool Calculator"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:33
+msgid ""
+"Calculate the tool diameter for a given V-shape tool,\n"
+"having the tip diameter, tip angle and\n"
+"depth-of-cut as parameters."
+msgstr ""
+"Calculate the tool diameter for a given V-shape tool,\n"
+"having the tip diameter, tip angle and\n"
+"depth-of-cut as parameters."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50
+#: AppTools/ToolCalculators.py:94
+msgid "Tip Diameter"
+msgstr "Tip Diameter"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52
+#: AppTools/ToolCalculators.py:102
+msgid ""
+"This is the tool tip diameter.\n"
+"It is specified by manufacturer."
+msgstr ""
+"This is the tool tip diameter.\n"
+"It is specified by manufacturer."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64
+#: AppTools/ToolCalculators.py:105
+msgid "Tip Angle"
+msgstr "Tip Angle"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:66
+msgid ""
+"This is the angle on the tip of the tool.\n"
+"It is specified by manufacturer."
+msgstr ""
+"This is the angle on the tip of the tool.\n"
+"It is specified by manufacturer."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:80
+msgid ""
+"This is depth to cut into material.\n"
+"In the CNCJob object it is the CutZ parameter."
+msgstr ""
+"This is depth to cut into material.\n"
+"In the CNCJob object it is the CutZ parameter."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87
+#: AppTools/ToolCalculators.py:27
+msgid "ElectroPlating Calculator"
+msgstr "ElectroPlating Calculator"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89
+#: AppTools/ToolCalculators.py:158
+msgid ""
+"This calculator is useful for those who plate the via/pad/drill holes,\n"
+"using a method like graphite ink or calcium hypophosphite ink or palladium "
+"chloride."
+msgstr ""
+"This calculator is useful for those who plate the via/pad/drill holes,\n"
+"using a method like graphite ink or calcium hypophosphite ink or palladium "
+"chloride."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:100
+#: AppTools/ToolCalculators.py:167
+msgid "Board Length"
+msgstr "Board Length"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102
+#: AppTools/ToolCalculators.py:173
+msgid "This is the board length. In centimeters."
+msgstr "This is the board length. In centimeters."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112
+#: AppTools/ToolCalculators.py:175
+msgid "Board Width"
+msgstr "Board Width"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114
+#: AppTools/ToolCalculators.py:181
+msgid "This is the board width.In centimeters."
+msgstr "This is the board width.In centimeters."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119
+#: AppTools/ToolCalculators.py:183
+msgid "Current Density"
+msgstr "Current Density"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125
+#: AppTools/ToolCalculators.py:190
+msgid ""
+"Current density to pass through the board. \n"
+"In Amps per Square Feet ASF."
+msgstr ""
+"Current density to pass through the board. \n"
+"In Amps per Square Feet ASF."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:131
+#: AppTools/ToolCalculators.py:193
+msgid "Copper Growth"
+msgstr "Copper Growth"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137
+#: AppTools/ToolCalculators.py:200
+msgid ""
+"How thick the copper growth is intended to be.\n"
+"In microns."
+msgstr ""
+"How thick the copper growth is intended to be.\n"
+"In microns."
+
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:27
+msgid "Corner Markers Options"
+msgstr "Corner Markers Options"
+
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:44
+#: AppTools/ToolCorners.py:115
+msgid "The thickness of the line that makes the corner marker."
+msgstr "The thickness of the line that makes the corner marker."
+
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:58
+#: AppTools/ToolCorners.py:129
+msgid "The length of the line that makes the corner marker."
+msgstr "The length of the line that makes the corner marker."
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:28
+msgid "Cutout Tool Options"
+msgstr "Cutout Tool Options"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43
+#: AppTools/ToolCalculators.py:123 AppTools/ToolCutOut.py:129
+msgid "Tool Diameter"
+msgstr "Tool Diameter"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45
+#: AppTools/ToolCutOut.py:131
+msgid ""
+"Diameter of the tool used to cutout\n"
+"the PCB shape out of the surrounding material."
+msgstr ""
+"Diameter of the tool used to cutout\n"
+"the PCB shape out of the surrounding material."
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:100
+msgid "Object kind"
+msgstr "Object kind"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102
+#: AppTools/ToolCutOut.py:77
+msgid ""
+"Choice of what kind the object we want to cutout is.
- Single: "
+"contain a single PCB Gerber outline object.
- Panel: a panel PCB "
+"Gerber object, which is made\n"
+"out of many individual PCB outlines."
+msgstr ""
+"Choice of what kind the object we want to cutout is.
- Single: "
+"contain a single PCB Gerber outline object.
- Panel: a panel PCB "
+"Gerber object, which is made\n"
+"out of many individual PCB outlines."
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109
+#: AppTools/ToolCutOut.py:83
+msgid "Single"
+msgstr "Single"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110
+#: AppTools/ToolCutOut.py:84
+msgid "Panel"
+msgstr "Panel"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117
+#: AppTools/ToolCutOut.py:192
+msgid ""
+"Margin over bounds. A positive value here\n"
+"will make the cutout of the PCB further from\n"
+"the actual PCB border"
+msgstr ""
+"Margin over bounds. A positive value here\n"
+"will make the cutout of the PCB further from\n"
+"the actual PCB border"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:130
+#: AppTools/ToolCutOut.py:203
+msgid "Gap size"
+msgstr "Gap size"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:132
+#: AppTools/ToolCutOut.py:205
+msgid ""
+"The size of the bridge gaps in the cutout\n"
+"used to keep the board connected to\n"
+"the surrounding material (the one \n"
+"from which the PCB is cutout)."
+msgstr ""
+"The size of the bridge gaps in the cutout\n"
+"used to keep the board connected to\n"
+"the surrounding material (the one \n"
+"from which the PCB is cutout)."
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:146
+#: AppTools/ToolCutOut.py:245
+msgid "Gaps"
+msgstr "Gaps"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:148
+msgid ""
+"Number of gaps used for the cutout.\n"
+"There can be maximum 8 bridges/gaps.\n"
+"The choices are:\n"
+"- None - no gaps\n"
+"- lr - left + right\n"
+"- tb - top + bottom\n"
+"- 4 - left + right +top + bottom\n"
+"- 2lr - 2*left + 2*right\n"
+"- 2tb - 2*top + 2*bottom\n"
+"- 8 - 2*left + 2*right +2*top + 2*bottom"
+msgstr ""
+"Number of gaps used for the cutout.\n"
+"There can be maximum 8 bridges/gaps.\n"
+"The choices are:\n"
+"- None - no gaps\n"
+"- lr - left + right\n"
+"- tb - top + bottom\n"
+"- 4 - left + right +top + bottom\n"
+"- 2lr - 2*left + 2*right\n"
+"- 2tb - 2*top + 2*bottom\n"
+"- 8 - 2*left + 2*right +2*top + 2*bottom"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:170
+#: AppTools/ToolCutOut.py:222
+msgid "Convex Shape"
+msgstr "Convex Shape"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:172
+#: AppTools/ToolCutOut.py:225
+msgid ""
+"Create a convex shape surrounding the entire PCB.\n"
+"Used only if the source object type is Gerber."
+msgstr ""
+"Create a convex shape surrounding the entire PCB.\n"
+"Used only if the source object type is Gerber."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:27
+msgid "Film Tool Options"
+msgstr "Film Tool Options"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:33
+msgid ""
+"Create a PCB film from a Gerber or Geometry\n"
+"FlatCAM object.\n"
+"The file is saved in SVG format."
+msgstr ""
+"Create a PCB film from a Gerber or Geometry\n"
+"FlatCAM object.\n"
+"The file is saved in SVG format."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:44
+msgid "Film Type"
+msgstr "Film Type"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:46 AppTools/ToolFilm.py:283
+msgid ""
+"Generate a Positive black film or a Negative film.\n"
+"Positive means that it will print the features\n"
+"with black on a white canvas.\n"
+"Negative means that it will print the features\n"
+"with white on a black canvas.\n"
+"The Film format is SVG."
+msgstr ""
+"Generate a Positive black film or a Negative film.\n"
+"Positive means that it will print the features\n"
+"with black on a white canvas.\n"
+"Negative means that it will print the features\n"
+"with white on a black canvas.\n"
+"The Film format is SVG."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:57
+msgid "Film Color"
+msgstr "Film Color"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:59
+msgid "Set the film color when positive film is selected."
+msgstr "Set the film color when positive film is selected."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:82 AppTools/ToolFilm.py:299
+msgid "Border"
+msgstr "Border"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:84 AppTools/ToolFilm.py:301
+msgid ""
+"Specify a border around the object.\n"
+"Only for negative film.\n"
+"It helps if we use as a Box Object the same \n"
+"object as in Film Object. It will create a thick\n"
+"black bar around the actual print allowing for a\n"
+"better delimitation of the outline features which are of\n"
+"white color like the rest and which may confound with the\n"
+"surroundings if not for this border."
+msgstr ""
+"Specify a border around the object.\n"
+"Only for negative film.\n"
+"It helps if we use as a Box Object the same \n"
+"object as in Film Object. It will create a thick\n"
+"black bar around the actual print allowing for a\n"
+"better delimitation of the outline features which are of\n"
+"white color like the rest and which may confound with the\n"
+"surroundings if not for this border."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:101
+#: AppTools/ToolFilm.py:266
+msgid "Scale Stroke"
+msgstr "Scale Stroke"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:103
+#: AppTools/ToolFilm.py:268
+msgid ""
+"Scale the line stroke thickness of each feature in the SVG file.\n"
+"It means that the line that envelope each SVG feature will be thicker or "
+"thinner,\n"
+"therefore the fine features may be more affected by this parameter."
+msgstr ""
+"Scale the line stroke thickness of each feature in the SVG file.\n"
+"It means that the line that envelope each SVG feature will be thicker or "
+"thinner,\n"
+"therefore the fine features may be more affected by this parameter."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:110
+#: AppTools/ToolFilm.py:124
+msgid "Film Adjustments"
+msgstr "Film Adjustments"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:112
+#: AppTools/ToolFilm.py:126
+msgid ""
+"Sometime the printers will distort the print shape, especially the Laser "
+"types.\n"
+"This section provide the tools to compensate for the print distortions."
+msgstr ""
+"Sometime the printers will distort the print shape, especially the Laser "
+"types.\n"
+"This section provide the tools to compensate for the print distortions."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:119
+#: AppTools/ToolFilm.py:133
+msgid "Scale Film geometry"
+msgstr "Scale Film geometry"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:121
+#: AppTools/ToolFilm.py:135
+msgid ""
+"A value greater than 1 will stretch the film\n"
+"while a value less than 1 will jolt it."
+msgstr ""
+"A value greater than 1 will stretch the film\n"
+"while a value less than 1 will jolt it."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:131
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:103
+#: AppTools/ToolFilm.py:145 AppTools/ToolTransform.py:148
+msgid "X factor"
+msgstr "X factor"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:140
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:116
+#: AppTools/ToolFilm.py:154 AppTools/ToolTransform.py:168
+msgid "Y factor"
+msgstr "Y factor"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:150
+#: AppTools/ToolFilm.py:172
+msgid "Skew Film geometry"
+msgstr "Skew Film geometry"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:152
+#: AppTools/ToolFilm.py:174
+msgid ""
+"Positive values will skew to the right\n"
+"while negative values will skew to the left."
+msgstr ""
+"Positive values will skew to the right\n"
+"while negative values will skew to the left."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:162
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:72
+#: AppTools/ToolFilm.py:184 AppTools/ToolTransform.py:97
+msgid "X angle"
+msgstr "X angle"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:171
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:86
+#: AppTools/ToolFilm.py:193 AppTools/ToolTransform.py:118
+msgid "Y angle"
+msgstr "Y angle"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:182
+#: AppTools/ToolFilm.py:204
+msgid ""
+"The reference point to be used as origin for the skew.\n"
+"It can be one of the four points of the geometry bounding box."
+msgstr ""
+"The reference point to be used as origin for the skew.\n"
+"It can be one of the four points of the geometry bounding box."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:185
+#: AppTools/ToolCorners.py:80 AppTools/ToolFiducials.py:87
+#: AppTools/ToolFilm.py:207
+msgid "Bottom Left"
+msgstr "Bottom Left"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:186
+#: AppTools/ToolCorners.py:88 AppTools/ToolFilm.py:208
+msgid "Top Left"
+msgstr "Top Left"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:187
+#: AppTools/ToolCorners.py:84 AppTools/ToolFilm.py:209
+msgid "Bottom Right"
+msgstr "Bottom Right"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:188
+#: AppTools/ToolFilm.py:210
+msgid "Top right"
+msgstr "Top right"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196
+#: AppTools/ToolFilm.py:227
+msgid "Mirror Film geometry"
+msgstr "Mirror Film geometry"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:198
+#: AppTools/ToolFilm.py:229
+msgid "Mirror the film geometry on the selected axis or on both."
+msgstr "Mirror the film geometry on the selected axis or on both."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:212
+#: AppTools/ToolFilm.py:243
+msgid "Mirror axis"
+msgstr "Mirror axis"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:222
+#: AppTools/ToolFilm.py:388
+msgid "SVG"
+msgstr "SVG"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:223
+#: AppTools/ToolFilm.py:389
+msgid "PNG"
+msgstr "PNG"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:224
+#: AppTools/ToolFilm.py:390
+msgid "PDF"
+msgstr "PDF"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:227
+#: AppTools/ToolFilm.py:281 AppTools/ToolFilm.py:393
+msgid "Film Type:"
+msgstr "Film Type:"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:229
+#: AppTools/ToolFilm.py:395
+msgid ""
+"The file type of the saved film. Can be:\n"
+"- 'SVG' -> open-source vectorial format\n"
+"- 'PNG' -> raster image\n"
+"- 'PDF' -> portable document format"
+msgstr ""
+"The file type of the saved film. Can be:\n"
+"- 'SVG' -> open-source vectorial format\n"
+"- 'PNG' -> raster image\n"
+"- 'PDF' -> portable document format"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:238
+#: AppTools/ToolFilm.py:404
+msgid "Page Orientation"
+msgstr "Page Orientation"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:251
+#: AppTools/ToolFilm.py:417
+msgid "Page Size"
+msgstr "Page Size"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:252
+#: AppTools/ToolFilm.py:418
+msgid "A selection of standard ISO 216 page sizes."
+msgstr "A selection of standard ISO 216 page sizes."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:27
+msgid "NCC Tool Options"
+msgstr "NCC Tool Options"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:49
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:57
+msgid "Comma separated values"
+msgstr "Comma separated values"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:55
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:63
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:64 AppTools/ToolNCC.py:215
+#: AppTools/ToolNCC.py:223 AppTools/ToolPaint.py:197 AppTools/ToolPaint.py:205
+msgid ""
+"Default tool type:\n"
+"- 'V-shape'\n"
+"- Circular"
+msgstr ""
+"Default tool type:\n"
+"- 'V-shape'\n"
+"- Circular"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:60
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:69 AppTools/ToolNCC.py:220
+#: AppTools/ToolPaint.py:202
+msgid "V-shape"
+msgstr "V-shape"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:100
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:109
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:107
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:116
+#: AppTools/ToolNCC.py:262 AppTools/ToolNCC.py:271 AppTools/ToolPaint.py:244
+#: AppTools/ToolPaint.py:253
+msgid ""
+"Depth of cut into material. Negative value.\n"
+"In FlatCAM units."
+msgstr ""
+"Depth of cut into material. Negative value.\n"
+"In FlatCAM units."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:119
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:125
+#: AppTools/ToolNCC.py:280 AppTools/ToolPaint.py:262
+msgid ""
+"Diameter for the new tool to add in the Tool Table.\n"
+"If the tool is V-shape type then this value is automatically\n"
+"calculated from the other parameters."
+msgstr ""
+"Diameter for the new tool to add in the Tool Table.\n"
+"If the tool is V-shape type then this value is automatically\n"
+"calculated from the other parameters."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:156
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:142
+#: AppTools/ToolNCC.py:174 AppTools/ToolPaint.py:157
+msgid "Tool order"
+msgstr "Tool order"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:157
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:167
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:143
+#: AppTools/ToolNCC.py:175 AppTools/ToolNCC.py:185 AppTools/ToolPaint.py:158
+#: AppTools/ToolPaint.py:168
+msgid ""
+"This set the way that the tools in the tools table are used.\n"
+"'No' --> means that the used order is the one in the tool table\n"
+"'Forward' --> means that the tools will be ordered from small to big\n"
+"'Reverse' --> means that the tools will ordered from big to small\n"
+"\n"
+"WARNING: using rest machining will automatically set the order\n"
+"in reverse and disable this control."
+msgstr ""
+"This set the way that the tools in the tools table are used.\n"
+"'No' --> means that the used order is the one in the tool table\n"
+"'Forward' --> means that the tools will be ordered from small to big\n"
+"'Reverse' --> means that the tools will ordered from big to small\n"
+"\n"
+"WARNING: using rest machining will automatically set the order\n"
+"in reverse and disable this control."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:165
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:151
+#: AppTools/ToolNCC.py:183 AppTools/ToolPaint.py:166
+msgid "Forward"
+msgstr "Forward"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:166
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:152
+#: AppTools/ToolNCC.py:184 AppTools/ToolPaint.py:167
+msgid "Reverse"
+msgstr "Reverse"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:266
+msgid "Offset value"
+msgstr "Offset value"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:268
+msgid ""
+"If used, it will add an offset to the copper features.\n"
+"The copper clearing will finish to a distance\n"
+"from the copper features.\n"
+"The value can be between 0.0 and 9999.9 FlatCAM units."
+msgstr ""
+"If used, it will add an offset to the copper features.\n"
+"The copper clearing will finish to a distance\n"
+"from the copper features.\n"
+"The value can be between 0.0 and 9999.9 FlatCAM units."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:288
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:244
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:245
+#: AppTools/ToolNCC.py:512 AppTools/ToolPaint.py:441
+msgid "Rest Machining"
+msgstr "Rest Machining"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:290 AppTools/ToolNCC.py:516
+msgid ""
+"If checked, use 'rest machining'.\n"
+"Basically it will clear copper outside PCB features,\n"
+"using the biggest tool and continue with the next tools,\n"
+"from bigger to smaller, to clear areas of copper that\n"
+"could not be cleared by previous tool, until there is\n"
+"no more copper to clear or there are no more tools.\n"
+"If not checked, use the standard algorithm."
+msgstr ""
+"If checked, use 'rest machining'.\n"
+"Basically it will clear copper outside PCB features,\n"
+"using the biggest tool and continue with the next tools,\n"
+"from bigger to smaller, to clear areas of copper that\n"
+"could not be cleared by previous tool, until there is\n"
+"no more copper to clear or there are no more tools.\n"
+"If not checked, use the standard algorithm."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:313 AppTools/ToolNCC.py:541
+msgid ""
+"Selection of area to be processed.\n"
+"- 'Itself' - the processing extent is based on the object that is "
+"processed.\n"
+" - 'Area Selection' - left mouse click to start selection of the area to be "
+"processed.\n"
+"- 'Reference Object' - will process the area specified by another object."
+msgstr ""
+"Selection of area to be processed.\n"
+"- 'Itself' - the processing extent is based on the object that is "
+"processed.\n"
+" - 'Area Selection' - left mouse click to start selection of the area to be "
+"processed.\n"
+"- 'Reference Object' - will process the area specified by another object."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:339
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303
+msgid "Normal"
+msgstr "Normal"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:340
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:304
+msgid "Progressive"
+msgstr "Progressive"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:341
+msgid "NCC Plotting"
+msgstr "NCC Plotting"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:343
+msgid ""
+"- 'Normal' - normal plotting, done at the end of the NCC job\n"
+"- 'Progressive' - after each shape is generated it will be plotted."
+msgstr ""
+"- 'Normal' - normal plotting, done at the end of the NCC job\n"
+"- 'Progressive' - after each shape is generated it will be plotted."
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:27
+msgid "Paint Tool Options"
+msgstr "Paint Tool Options"
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:33
+msgid "Parameters:"
+msgstr "Parameters:"
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:247
+#: AppTools/ToolPaint.py:444
+msgid ""
+"If checked, use 'rest machining'.\n"
+"Basically it will clear copper outside PCB features,\n"
+"using the biggest tool and continue with the next tools,\n"
+"from bigger to smaller, to clear areas of copper that\n"
+"could not be cleared by previous tool, until there is\n"
+"no more copper to clear or there are no more tools.\n"
+"\n"
+"If not checked, use the standard algorithm."
+msgstr ""
+"If checked, use 'rest machining'.\n"
+"Basically it will clear copper outside PCB features,\n"
+"using the biggest tool and continue with the next tools,\n"
+"from bigger to smaller, to clear areas of copper that\n"
+"could not be cleared by previous tool, until there is\n"
+"no more copper to clear or there are no more tools.\n"
+"\n"
+"If not checked, use the standard algorithm."
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:260
+#: AppTools/ToolPaint.py:457
+msgid ""
+"Selection of area to be processed.\n"
+"- 'Polygon Selection' - left mouse click to add/remove polygons to be "
+"processed.\n"
+"- 'Area Selection' - left mouse click to start selection of the area to be "
+"processed.\n"
+"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple "
+"areas.\n"
+"- 'All Polygons' - the process will start after click.\n"
+"- 'Reference Object' - will process the area specified by another object."
+msgstr ""
+"Selection of area to be processed.\n"
+"- 'Polygon Selection' - left mouse click to add/remove polygons to be "
+"processed.\n"
+"- 'Area Selection' - left mouse click to start selection of the area to be "
+"processed.\n"
+"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple "
+"areas.\n"
+"- 'All Polygons' - the process will start after click.\n"
+"- 'Reference Object' - will process the area specified by another object."
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
+#: AppTools/ToolPaint.py:485 AppTools/ToolPaint.py:941
+#: AppTools/ToolPaint.py:1431 tclCommands/TclCommandPaint.py:164
+msgid "Polygon Selection"
+msgstr "Polygon Selection"
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
+#: AppTools/ToolPaint.py:485 AppTools/ToolPaint.py:1426 defaults.py:433
+#: tclCommands/TclCommandPaint.py:162
+msgid "All Polygons"
+msgstr "All Polygons"
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:305
+msgid "Paint Plotting"
+msgstr "Paint Plotting"
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:307
+msgid ""
+"- 'Normal' - normal plotting, done at the end of the Paint job\n"
+"- 'Progressive' - after each shape is generated it will be plotted."
+msgstr ""
+"- 'Normal' - normal plotting, done at the end of the Paint job\n"
+"- 'Progressive' - after each shape is generated it will be plotted."
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:27
+msgid "Panelize Tool Options"
+msgstr "Panelize Tool Options"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:33
+msgid ""
+"Create an object that contains an array of (x, y) elements,\n"
+"each element is a copy of the source object spaced\n"
+"at a X distance, Y distance of each other."
+msgstr ""
+"Create an object that contains an array of (x, y) elements,\n"
+"each element is a copy of the source object spaced\n"
+"at a X distance, Y distance of each other."
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:50
+#: AppTools/ToolPanelize.py:165
+msgid "Spacing cols"
+msgstr "Spacing cols"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:52
+#: AppTools/ToolPanelize.py:167
+msgid ""
+"Spacing between columns of the desired panel.\n"
+"In current units."
+msgstr ""
+"Spacing between columns of the desired panel.\n"
+"In current units."
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:64
+#: AppTools/ToolPanelize.py:177
+msgid "Spacing rows"
+msgstr "Spacing rows"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:66
+#: AppTools/ToolPanelize.py:179
+msgid ""
+"Spacing between rows of the desired panel.\n"
+"In current units."
+msgstr ""
+"Spacing between rows of the desired panel.\n"
+"In current units."
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:77
+#: AppTools/ToolPanelize.py:188
+msgid "Columns"
+msgstr "Columns"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:79
+#: AppTools/ToolPanelize.py:190
+msgid "Number of columns of the desired panel"
+msgstr "Number of columns of the desired panel"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:89
+#: AppTools/ToolPanelize.py:198
+msgid "Rows"
+msgstr "Rows"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:91
+#: AppTools/ToolPanelize.py:200
+msgid "Number of rows of the desired panel"
+msgstr "Number of rows of the desired panel"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:98
+#: AppTools/ToolPanelize.py:211
+msgid "Geo"
+msgstr "Geo"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:99
+#: AppTools/ToolPanelize.py:212
+msgid "Panel Type"
+msgstr "Panel Type"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:101
+msgid ""
+"Choose the type of object for the panel object:\n"
+"- Gerber\n"
+"- Geometry"
+msgstr ""
+"Choose the type of object for the panel object:\n"
+"- Gerber\n"
+"- Geometry"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:110
+msgid "Constrain within"
+msgstr "Constrain within"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:112
+#: AppTools/ToolPanelize.py:224
+msgid ""
+"Area define by DX and DY within to constrain the panel.\n"
+"DX and DY values are in current units.\n"
+"Regardless of how many columns and rows are desired,\n"
+"the final panel will have as many columns and rows as\n"
+"they fit completely within selected area."
+msgstr ""
+"Area define by DX and DY within to constrain the panel.\n"
+"DX and DY values are in current units.\n"
+"Regardless of how many columns and rows are desired,\n"
+"the final panel will have as many columns and rows as\n"
+"they fit completely within selected area."
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:125
+#: AppTools/ToolPanelize.py:236
+msgid "Width (DX)"
+msgstr "Width (DX)"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:127
+#: AppTools/ToolPanelize.py:238
+msgid ""
+"The width (DX) within which the panel must fit.\n"
+"In current units."
+msgstr ""
+"The width (DX) within which the panel must fit.\n"
+"In current units."
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:138
+#: AppTools/ToolPanelize.py:247
+msgid "Height (DY)"
+msgstr "Height (DY)"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:140
+#: AppTools/ToolPanelize.py:249
+msgid ""
+"The height (DY)within which the panel must fit.\n"
+"In current units."
+msgstr ""
+"The height (DY)within which the panel must fit.\n"
+"In current units."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:27
+msgid "SolderPaste Tool Options"
+msgstr "SolderPaste Tool Options"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:33
+msgid ""
+"A tool to create GCode for dispensing\n"
+"solder paste onto a PCB."
+msgstr ""
+"A tool to create GCode for dispensing\n"
+"solder paste onto a PCB."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:54
+msgid "New Nozzle Dia"
+msgstr "New Nozzle Dia"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:56
+#: AppTools/ToolSolderPaste.py:107
+msgid "Diameter for the new Nozzle tool to add in the Tool Table"
+msgstr "Diameter for the new Nozzle tool to add in the Tool Table"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:72
+#: AppTools/ToolSolderPaste.py:183
+msgid "Z Dispense Start"
+msgstr "Z Dispense Start"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:74
+#: AppTools/ToolSolderPaste.py:185
+msgid "The height (Z) when solder paste dispensing starts."
+msgstr "The height (Z) when solder paste dispensing starts."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:85
+#: AppTools/ToolSolderPaste.py:195
+msgid "Z Dispense"
+msgstr "Z Dispense"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:87
+#: AppTools/ToolSolderPaste.py:197
+msgid "The height (Z) when doing solder paste dispensing."
+msgstr "The height (Z) when doing solder paste dispensing."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:98
+#: AppTools/ToolSolderPaste.py:207
+msgid "Z Dispense Stop"
+msgstr "Z Dispense Stop"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:100
+#: AppTools/ToolSolderPaste.py:209
+msgid "The height (Z) when solder paste dispensing stops."
+msgstr "The height (Z) when solder paste dispensing stops."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:111
+#: AppTools/ToolSolderPaste.py:219
+msgid "Z Travel"
+msgstr "Z Travel"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:113
+#: AppTools/ToolSolderPaste.py:221
+msgid ""
+"The height (Z) for travel between pads\n"
+"(without dispensing solder paste)."
+msgstr ""
+"The height (Z) for travel between pads\n"
+"(without dispensing solder paste)."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:125
+#: AppTools/ToolSolderPaste.py:232
+msgid "Z Toolchange"
+msgstr "Z Toolchange"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:127
+#: AppTools/ToolSolderPaste.py:234
+msgid "The height (Z) for tool (nozzle) change."
+msgstr "The height (Z) for tool (nozzle) change."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:136
+#: AppTools/ToolSolderPaste.py:242
+msgid ""
+"The X,Y location for tool (nozzle) change.\n"
+"The format is (x, y) where x and y are real numbers."
+msgstr ""
+"The X,Y location for tool (nozzle) change.\n"
+"The format is (x, y) where x and y are real numbers."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:150
+#: AppTools/ToolSolderPaste.py:255
+msgid "Feedrate (speed) while moving on the X-Y plane."
+msgstr "Feedrate (speed) while moving on the X-Y plane."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:163
+#: AppTools/ToolSolderPaste.py:267
+msgid ""
+"Feedrate (speed) while moving vertically\n"
+"(on Z plane)."
+msgstr ""
+"Feedrate (speed) while moving vertically\n"
+"(on Z plane)."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:175
+#: AppTools/ToolSolderPaste.py:278
+msgid "Feedrate Z Dispense"
+msgstr "Feedrate Z Dispense"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:177
+msgid ""
+"Feedrate (speed) while moving up vertically\n"
+"to Dispense position (on Z plane)."
+msgstr ""
+"Feedrate (speed) while moving up vertically\n"
+"to Dispense position (on Z plane)."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:188
+#: AppTools/ToolSolderPaste.py:290
+msgid "Spindle Speed FWD"
+msgstr "Spindle Speed FWD"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:190
+#: AppTools/ToolSolderPaste.py:292
+msgid ""
+"The dispenser speed while pushing solder paste\n"
+"through the dispenser nozzle."
+msgstr ""
+"The dispenser speed while pushing solder paste\n"
+"through the dispenser nozzle."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:202
+#: AppTools/ToolSolderPaste.py:303
+msgid "Dwell FWD"
+msgstr "Dwell FWD"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:204
+#: AppTools/ToolSolderPaste.py:305
+msgid "Pause after solder dispensing."
+msgstr "Pause after solder dispensing."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:214
+#: AppTools/ToolSolderPaste.py:314
+msgid "Spindle Speed REV"
+msgstr "Spindle Speed REV"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:216
+#: AppTools/ToolSolderPaste.py:316
+msgid ""
+"The dispenser speed while retracting solder paste\n"
+"through the dispenser nozzle."
+msgstr ""
+"The dispenser speed while retracting solder paste\n"
+"through the dispenser nozzle."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:228
+#: AppTools/ToolSolderPaste.py:327
+msgid "Dwell REV"
+msgstr "Dwell REV"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:230
+#: AppTools/ToolSolderPaste.py:329
+msgid ""
+"Pause after solder paste dispenser retracted,\n"
+"to allow pressure equilibrium."
+msgstr ""
+"Pause after solder paste dispenser retracted,\n"
+"to allow pressure equilibrium."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:239
+#: AppTools/ToolSolderPaste.py:337
+msgid "Files that control the GCode generation."
+msgstr "Files that control the GCode generation."
+
+#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:27
+msgid "Substractor Tool Options"
+msgstr "Substractor Tool Options"
+
+#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:33
+msgid ""
+"A tool to substract one Gerber or Geometry object\n"
+"from another of the same type."
+msgstr ""
+"A tool to substract one Gerber or Geometry object\n"
+"from another of the same type."
+
+#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:38 AppTools/ToolSub.py:155
+msgid "Close paths"
+msgstr "Close paths"
+
+#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:39
+msgid ""
+"Checking this will close the paths cut by the Geometry substractor object."
+msgstr ""
+"Checking this will close the paths cut by the Geometry substractor object."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:27
+msgid "Transform Tool Options"
+msgstr "Transform Tool Options"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:33
+msgid ""
+"Various transformations that can be applied\n"
+"on a FlatCAM object."
+msgstr ""
+"Various transformations that can be applied\n"
+"on a FlatCAM object."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:64
+msgid "Skew"
+msgstr "Skew"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:105
+#: AppTools/ToolTransform.py:150
+msgid "Factor for scaling on X axis."
+msgstr "Factor for scaling on X axis."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:118
+#: AppTools/ToolTransform.py:170
+msgid "Factor for scaling on Y axis."
+msgstr "Factor for scaling on Y axis."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:126
+#: AppTools/ToolTransform.py:191
+msgid ""
+"Scale the selected object(s)\n"
+"using the Scale_X factor for both axis."
+msgstr ""
+"Scale the selected object(s)\n"
+"using the Scale_X factor for both axis."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:134
+#: AppTools/ToolTransform.py:198
+msgid ""
+"Scale the selected object(s)\n"
+"using the origin reference when checked,\n"
+"and the center of the biggest bounding box\n"
+"of the selected objects when unchecked."
+msgstr ""
+"Scale the selected object(s)\n"
+"using the origin reference when checked,\n"
+"and the center of the biggest bounding box\n"
+"of the selected objects when unchecked."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:150
+#: AppTools/ToolTransform.py:217
+msgid "X val"
+msgstr "X val"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:152
+#: AppTools/ToolTransform.py:219
+msgid "Distance to offset on X axis. In current units."
+msgstr "Distance to offset on X axis. In current units."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:163
+#: AppTools/ToolTransform.py:237
+msgid "Y val"
+msgstr "Y val"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:165
+#: AppTools/ToolTransform.py:239
+msgid "Distance to offset on Y axis. In current units."
+msgstr "Distance to offset on Y axis. In current units."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:171
+#: AppTools/ToolDblSided.py:67 AppTools/ToolDblSided.py:95
+#: AppTools/ToolDblSided.py:125
+msgid "Mirror"
+msgstr "Mirror"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:175
+#: AppTools/ToolTransform.py:283
+msgid "Mirror Reference"
+msgstr "Mirror Reference"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:177
+#: AppTools/ToolTransform.py:285
+msgid ""
+"Flip the selected object(s)\n"
+"around the point in Point Entry Field.\n"
+"\n"
+"The point coordinates can be captured by\n"
+"left click on canvas together with pressing\n"
+"SHIFT key. \n"
+"Then click Add button to insert coordinates.\n"
+"Or enter the coords in format (x, y) in the\n"
+"Point Entry field and click Flip on X(Y)"
+msgstr ""
+"Flip the selected object(s)\n"
+"around the point in Point Entry Field.\n"
+"\n"
+"The point coordinates can be captured by\n"
+"left click on canvas together with pressing\n"
+"SHIFT key. \n"
+"Then click Add button to insert coordinates.\n"
+"Or enter the coords in format (x, y) in the\n"
+"Point Entry field and click Flip on X(Y)"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:188
+msgid "Mirror Reference point"
+msgstr "Mirror Reference point"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:190
+msgid ""
+"Coordinates in format (x, y) used as reference for mirroring.\n"
+"The 'x' in (x, y) will be used when using Flip on X and\n"
+"the 'y' in (x, y) will be used when using Flip on Y and"
+msgstr ""
+"Coordinates in format (x, y) used as reference for mirroring.\n"
+"The 'x' in (x, y) will be used when using Flip on X and\n"
+"the 'y' in (x, y) will be used when using Flip on Y and"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:203
+#: AppTools/ToolDistance.py:505 AppTools/ToolDistanceMin.py:286
+#: AppTools/ToolTransform.py:332
+msgid "Distance"
+msgstr "Distance"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:205
+#: AppTools/ToolTransform.py:334
+msgid ""
+"A positive value will create the effect of dilation,\n"
+"while a negative value will create the effect of erosion.\n"
+"Each geometry element of the object will be increased\n"
+"or decreased with the 'distance'."
+msgstr ""
+"A positive value will create the effect of dilation,\n"
+"while a negative value will create the effect of erosion.\n"
+"Each geometry element of the object will be increased\n"
+"or decreased with the 'distance'."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:222
+#: AppTools/ToolTransform.py:359
+msgid ""
+"A positive value will create the effect of dilation,\n"
+"while a negative value will create the effect of erosion.\n"
+"Each geometry element of the object will be increased\n"
+"or decreased to fit the 'Value'. Value is a percentage\n"
+"of the initial dimension."
+msgstr ""
+"A positive value will create the effect of dilation,\n"
+"while a negative value will create the effect of erosion.\n"
+"Each geometry element of the object will be increased\n"
+"or decreased to fit the 'Value'. Value is a percentage\n"
+"of the initial dimension."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:241
+#: AppTools/ToolTransform.py:385
+msgid ""
+"If checked then the buffer will surround the buffered shape,\n"
+"every corner will be rounded.\n"
+"If not checked then the buffer will follow the exact geometry\n"
+"of the buffered shape."
+msgstr ""
+"If checked then the buffer will surround the buffered shape,\n"
+"every corner will be rounded.\n"
+"If not checked then the buffer will follow the exact geometry\n"
+"of the buffered shape."
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:27
+msgid "Autocompleter Keywords"
+msgstr "Autocompleter Keywords"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:30
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:40
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:30
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:30
+msgid "Restore"
+msgstr "Restore"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:31
+msgid "Restore the autocompleter keywords list to the default state."
+msgstr "Restore the autocompleter keywords list to the default state."
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:33
+msgid "Delete all autocompleter keywords from the list."
+msgstr "Delete all autocompleter keywords from the list."
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:41
+msgid "Keywords list"
+msgstr "Keywords list"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:43
+msgid ""
+"List of keywords used by\n"
+"the autocompleter in FlatCAM.\n"
+"The autocompleter is installed\n"
+"in the Code Editor and for the Tcl Shell."
+msgstr ""
+"List of keywords used by\n"
+"the autocompleter in FlatCAM.\n"
+"The autocompleter is installed\n"
+"in the Code Editor and for the Tcl Shell."
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:64
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:73
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:63
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:62
+msgid "Extension"
+msgstr "Extension"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:65
+msgid "A keyword to be added or deleted to the list."
+msgstr "A keyword to be added or deleted to the list."
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:73
+msgid "Add keyword"
+msgstr "Add keyword"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:74
+msgid "Add a keyword to the list"
+msgstr "Add a keyword to the list"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:75
+msgid "Delete keyword"
+msgstr "Delete keyword"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:76
+msgid "Delete a keyword from the list"
+msgstr "Delete a keyword from the list"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:27
+msgid "Excellon File associations"
+msgstr "Excellon File associations"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:41
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:31
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:31
+msgid "Restore the extension list to the default state."
+msgstr "Restore the extension list to the default state."
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:43
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:33
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:33
+msgid "Delete all extensions from the list."
+msgstr "Delete all extensions from the list."
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:51
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:41
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:41
+msgid "Extensions list"
+msgstr "Extensions list"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:53
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:43
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:43
+msgid ""
+"List of file extensions to be\n"
+"associated with FlatCAM."
+msgstr ""
+"List of file extensions to be\n"
+"associated with FlatCAM."
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:74
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:64
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:63
+msgid "A file extension to be added or deleted to the list."
+msgstr "A file extension to be added or deleted to the list."
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:82
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:72
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:71
+msgid "Add Extension"
+msgstr "Add Extension"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:83
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:73
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:72
+msgid "Add a file extension to the list"
+msgstr "Add a file extension to the list"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:84
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:74
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:73
+msgid "Delete Extension"
+msgstr "Delete Extension"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:85
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:75
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:74
+msgid "Delete a file extension from the list"
+msgstr "Delete a file extension from the list"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:92
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:82
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:81
+msgid "Apply Association"
+msgstr "Apply Association"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:93
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:83
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:82
+msgid ""
+"Apply the file associations between\n"
+"FlatCAM and the files with above extensions.\n"
+"They will be active after next logon.\n"
+"This work only in Windows."
+msgstr ""
+"Apply the file associations between\n"
+"FlatCAM and the files with above extensions.\n"
+"They will be active after next logon.\n"
+"This work only in Windows."
+
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:27
+msgid "GCode File associations"
+msgstr "GCode File associations"
+
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:27
+msgid "Gerber File associations"
+msgstr "Gerber File associations"
+
+#: AppObjects/AppObject.py:134
#, python-brace-format
msgid ""
"Object ({kind}) failed because: {error} \n"
@@ -238,23 +11773,23 @@ msgstr ""
"Object ({kind}) failed because: {error} \n"
"\n"
-#: FlatCAMApp.py:2822
+#: AppObjects/AppObject.py:149
msgid "Converting units to "
msgstr "Converting units to "
-#: FlatCAMApp.py:2931
+#: AppObjects/AppObject.py:254
msgid "CREATE A NEW FLATCAM TCL SCRIPT"
msgstr "CREATE A NEW FLATCAM TCL SCRIPT"
-#: FlatCAMApp.py:2932
+#: AppObjects/AppObject.py:255
msgid "TCL Tutorial is here"
msgstr "TCL Tutorial is here"
-#: FlatCAMApp.py:2934
+#: AppObjects/AppObject.py:257
msgid "FlatCAM commands list"
msgstr "FlatCAM commands list"
-#: FlatCAMApp.py:2935
+#: AppObjects/AppObject.py:258
msgid ""
"Type >help< followed by Run Code for a list of FlatCAM Tcl Commands "
"(displayed in Tcl Shell)."
@@ -262,2439 +11797,6176 @@ msgstr ""
"Type >help< followed by Run Code for a list of FlatCAM Tcl Commands "
"(displayed in Tcl Shell)."
-#: FlatCAMApp.py:2982 FlatCAMApp.py:2988 FlatCAMApp.py:2994 FlatCAMApp.py:3000
-#: FlatCAMApp.py:3006 FlatCAMApp.py:3012
+#: AppObjects/AppObject.py:304 AppObjects/AppObject.py:310
+#: AppObjects/AppObject.py:316 AppObjects/AppObject.py:322
+#: AppObjects/AppObject.py:328 AppObjects/AppObject.py:334
msgid "created/selected"
msgstr "created/selected"
-#: FlatCAMApp.py:3027 FlatCAMApp.py:5189 flatcamObjects/FlatCAMObj.py:248
-#: flatcamObjects/FlatCAMObj.py:279 flatcamObjects/FlatCAMObj.py:295
-#: flatcamObjects/FlatCAMObj.py:375 flatcamTools/ToolCopperThieving.py:1481
-#: flatcamTools/ToolFiducials.py:809 flatcamTools/ToolMove.py:229
-#: flatcamTools/ToolQRCode.py:728
+#: AppObjects/AppObject.py:349 AppObjects/FlatCAMObj.py:246
+#: AppObjects/FlatCAMObj.py:277 AppObjects/FlatCAMObj.py:293
+#: AppObjects/FlatCAMObj.py:373 AppTools/ToolCopperThieving.py:1487
+#: AppTools/ToolCorners.py:394 AppTools/ToolFiducials.py:810
+#: AppTools/ToolMove.py:229 AppTools/ToolQRCode.py:728 App_Main.py:4369
msgid "Plotting"
msgstr "Plotting"
-#: FlatCAMApp.py:3090 flatcamGUI/FlatCAMGUI.py:545
-msgid "About FlatCAM"
-msgstr "About FlatCAM"
-
-#: FlatCAMApp.py:3116
-msgid "2D Computer-Aided Printed Circuit Board Manufacturing"
-msgstr "2D Computer-Aided Printed Circuit Board Manufacturing"
-
-#: FlatCAMApp.py:3117
-msgid "Development"
-msgstr "Development"
-
-#: FlatCAMApp.py:3118
-msgid "DOWNLOAD"
-msgstr "DOWNLOAD"
-
-#: FlatCAMApp.py:3119
-msgid "Issue tracker"
-msgstr "Issue tracker"
-
-#: FlatCAMApp.py:3123 FlatCAMApp.py:3484 flatcamGUI/GUIElements.py:2583
-msgid "Close"
-msgstr "Close"
-
-#: FlatCAMApp.py:3138
-msgid "Licensed under the MIT license"
-msgstr "Licensed under the MIT license"
-
-#: FlatCAMApp.py:3147
-msgid ""
-"Permission is hereby granted, free of charge, to any person obtaining a "
-"copy\n"
-"of this software and associated documentation files (the \"Software\"), to "
-"deal\n"
-"in the Software without restriction, including without limitation the "
-"rights\n"
-"to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n"
-"copies of the Software, and to permit persons to whom the Software is\n"
-"furnished to do so, subject to the following conditions:\n"
-"\n"
-"The above copyright notice and this permission notice shall be included in\n"
-"all copies or substantial portions of the Software.\n"
-"\n"
-"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS "
-"OR\n"
-"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n"
-"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n"
-"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n"
-"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING "
-"FROM,\n"
-"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n"
-"THE SOFTWARE."
-msgstr ""
-"Permission is hereby granted, free of charge, to any person obtaining a "
-"copy\n"
-"of this software and associated documentation files (the \"Software\"), to "
-"deal\n"
-"in the Software without restriction, including without limitation the "
-"rights\n"
-"to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n"
-"copies of the Software, and to permit persons to whom the Software is\n"
-"furnished to do so, subject to the following conditions:\n"
-"\n"
-"The above copyright notice and this permission notice shall be included in\n"
-"all copies or substantial portions of the Software.\n"
-"\n"
-"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS "
-"OR\n"
-"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n"
-"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n"
-"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n"
-"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING "
-"FROM,\n"
-"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n"
-"THE SOFTWARE."
-
-#: FlatCAMApp.py:3169
-msgid ""
-"Some of the icons used are from the following sources:
Icons by oNline Web Fonts"
-msgstr ""
-"Some of the icons used are from the following sources:
Icons by oNline Web Fonts"
-
-#: FlatCAMApp.py:3202
-msgid "Splash"
-msgstr "Splash"
-
-#: FlatCAMApp.py:3208
-msgid "Programmers"
-msgstr "Programmers"
-
-#: FlatCAMApp.py:3214
-msgid "Translators"
-msgstr "Translators"
-
-#: FlatCAMApp.py:3220
-msgid "License"
-msgstr "License"
-
-#: FlatCAMApp.py:3226
-msgid "Attributions"
-msgstr "Attributions"
-
-#: FlatCAMApp.py:3249
-msgid "Programmer"
-msgstr "Programmer"
-
-#: FlatCAMApp.py:3250
-msgid "Status"
-msgstr "Status"
-
-#: FlatCAMApp.py:3251 FlatCAMApp.py:3331
-msgid "E-mail"
-msgstr "E-mail"
-
-#: FlatCAMApp.py:3259
-msgid "BETA Maintainer >= 2019"
-msgstr "BETA Maintainer >= 2019"
-
-#: FlatCAMApp.py:3328
-msgid "Language"
-msgstr "Language"
-
-#: FlatCAMApp.py:3329
-msgid "Translator"
-msgstr "Translator"
-
-#: FlatCAMApp.py:3330
-msgid "Corrections"
-msgstr "Corrections"
-
-#: FlatCAMApp.py:3455 FlatCAMApp.py:3464 flatcamGUI/FlatCAMGUI.py:527
-msgid "Bookmarks Manager"
-msgstr "Bookmarks Manager"
-
-#: FlatCAMApp.py:3475
-msgid ""
-"This entry will resolve to another website if:\n"
-"\n"
-"1. FlatCAM.org website is down\n"
-"2. Someone forked FlatCAM project and wants to point\n"
-"to his own website\n"
-"\n"
-"If you can't get any informations about FlatCAM beta\n"
-"use the YouTube channel link from the Help menu."
-msgstr ""
-"This entry will resolve to another website if:\n"
-"\n"
-"1. FlatCAM.org website is down\n"
-"2. Someone forked FlatCAM project and wants to point\n"
-"to his own website\n"
-"\n"
-"If you can't get any informations about FlatCAM beta\n"
-"use the YouTube channel link from the Help menu."
-
-#: FlatCAMApp.py:3482
-msgid "Alternative website"
-msgstr "Alternative website"
-
-#: FlatCAMApp.py:3508 flatcamGUI/FlatCAMGUI.py:4267
-msgid "Application is saving the project. Please wait ..."
-msgstr "Application is saving the project. Please wait ..."
-
-#: FlatCAMApp.py:3513 FlatCAMTranslation.py:202
-msgid ""
-"There are files/objects modified in FlatCAM. \n"
-"Do you want to Save the project?"
-msgstr ""
-"There are files/objects modified in FlatCAM. \n"
-"Do you want to Save the project?"
-
-#: FlatCAMApp.py:3516 FlatCAMApp.py:7343 FlatCAMTranslation.py:205
-msgid "Save changes"
-msgstr "Save changes"
-
-#: FlatCAMApp.py:3778
-msgid "Selected Excellon file extensions registered with FlatCAM."
-msgstr "Selected Excellon file extensions registered with FlatCAM."
-
-#: FlatCAMApp.py:3800
-msgid "Selected GCode file extensions registered with FlatCAM."
-msgstr "Selected GCode file extensions registered with FlatCAM."
-
-#: FlatCAMApp.py:3822
-msgid "Selected Gerber file extensions registered with FlatCAM."
-msgstr "Selected Gerber file extensions registered with FlatCAM."
-
-#: FlatCAMApp.py:4010 FlatCAMApp.py:4069 FlatCAMApp.py:4097
-msgid "At least two objects are required for join. Objects currently selected"
-msgstr "At least two objects are required for join. Objects currently selected"
-
-#: FlatCAMApp.py:4019
-msgid ""
-"Failed join. The Geometry objects are of different types.\n"
-"At least one is MultiGeo type and the other is SingleGeo type. A possibility "
-"is to convert from one to another and retry joining \n"
-"but in the case of converting from MultiGeo to SingleGeo, informations may "
-"be lost and the result may not be what was expected. \n"
-"Check the generated GCODE."
-msgstr ""
-"Failed join. The Geometry objects are of different types.\n"
-"At least one is MultiGeo type and the other is SingleGeo type. A possibility "
-"is to convert from one to another and retry joining \n"
-"but in the case of converting from MultiGeo to SingleGeo, informations may "
-"be lost and the result may not be what was expected. \n"
-"Check the generated GCODE."
-
-#: FlatCAMApp.py:4031 FlatCAMApp.py:4041
-msgid "Geometry merging finished"
-msgstr "Geometry merging finished"
-
-#: FlatCAMApp.py:4064
-msgid "Failed. Excellon joining works only on Excellon objects."
-msgstr "Failed. Excellon joining works only on Excellon objects."
-
-#: FlatCAMApp.py:4074
-msgid "Excellon merging finished"
-msgstr "Excellon merging finished"
-
-#: FlatCAMApp.py:4092
-msgid "Failed. Gerber joining works only on Gerber objects."
-msgstr "Failed. Gerber joining works only on Gerber objects."
-
-#: FlatCAMApp.py:4102
-msgid "Gerber merging finished"
-msgstr "Gerber merging finished"
-
-#: FlatCAMApp.py:4122 FlatCAMApp.py:4159
-msgid "Failed. Select a Geometry Object and try again."
-msgstr "Failed. Select a Geometry Object and try again."
-
-#: FlatCAMApp.py:4126 FlatCAMApp.py:4164
-msgid "Expected a GeometryObject, got"
-msgstr "Expected a GeometryObject, got"
-
-#: FlatCAMApp.py:4141
-msgid "A Geometry object was converted to MultiGeo type."
-msgstr "A Geometry object was converted to MultiGeo type."
-
-#: FlatCAMApp.py:4179
-msgid "A Geometry object was converted to SingleGeo type."
-msgstr "A Geometry object was converted to SingleGeo type."
-
-#: FlatCAMApp.py:4472
-msgid "Toggle Units"
-msgstr "Toggle Units"
-
-#: FlatCAMApp.py:4474
-msgid ""
-"Changing the units of the project\n"
-"will scale all objects.\n"
-"\n"
-"Do you want to continue?"
-msgstr ""
-"Changing the units of the project\n"
-"will scale all objects.\n"
-"\n"
-"Do you want to continue?"
-
-#: FlatCAMApp.py:4477 FlatCAMApp.py:5025 FlatCAMApp.py:5102 FlatCAMApp.py:7728
-#: FlatCAMApp.py:7742 FlatCAMApp.py:8075 FlatCAMApp.py:8085
-msgid "Ok"
-msgstr "Ok"
-
-#: FlatCAMApp.py:4526
-msgid "Converted units to"
-msgstr "Converted units to"
-
-#: FlatCAMApp.py:4928
-msgid "Detachable Tabs"
-msgstr "Detachable Tabs"
-
-#: FlatCAMApp.py:5014 flatcamTools/ToolNCC.py:932 flatcamTools/ToolNCC.py:1431
-#: flatcamTools/ToolPaint.py:858 flatcamTools/ToolSolderPaste.py:568
-#: flatcamTools/ToolSolderPaste.py:893
-msgid "Please enter a tool diameter with non-zero value, in Float format."
-msgstr "Please enter a tool diameter with non-zero value, in Float format."
-
-#: FlatCAMApp.py:5018 flatcamTools/ToolNCC.py:936 flatcamTools/ToolPaint.py:862
-#: flatcamTools/ToolSolderPaste.py:572
-msgid "Adding Tool cancelled"
-msgstr "Adding Tool cancelled"
-
-#: FlatCAMApp.py:5021
-msgid ""
-"Adding Tool works only when Advanced is checked.\n"
-"Go to Preferences -> General - Show Advanced Options."
-msgstr ""
-"Adding Tool works only when Advanced is checked.\n"
-"Go to Preferences -> General - Show Advanced Options."
-
-#: FlatCAMApp.py:5097
-msgid "Delete objects"
-msgstr "Delete objects"
-
-#: FlatCAMApp.py:5100
-msgid ""
-"Are you sure you want to permanently delete\n"
-"the selected objects?"
-msgstr ""
-"Are you sure you want to permanently delete\n"
-"the selected objects?"
-
-#: FlatCAMApp.py:5138
-msgid "Object(s) deleted"
-msgstr "Object(s) deleted"
-
-#: FlatCAMApp.py:5142 FlatCAMApp.py:5297 flatcamTools/ToolDblSided.py:818
-msgid "Failed. No object(s) selected..."
-msgstr "Failed. No object(s) selected..."
-
-#: FlatCAMApp.py:5144
-msgid "Save the work in Editor and try again ..."
-msgstr "Save the work in Editor and try again ..."
-
-#: FlatCAMApp.py:5173
-msgid "Object deleted"
-msgstr "Object deleted"
-
-#: FlatCAMApp.py:5200
-msgid "Click to set the origin ..."
-msgstr "Click to set the origin ..."
-
-#: FlatCAMApp.py:5222
-msgid "Setting Origin..."
-msgstr "Setting Origin..."
-
-#: FlatCAMApp.py:5235 FlatCAMApp.py:5337
-msgid "Origin set"
-msgstr "Origin set"
-
-#: FlatCAMApp.py:5252
-msgid "Origin coordinates specified but incomplete."
-msgstr "Origin coordinates specified but incomplete."
-
-#: FlatCAMApp.py:5293
-msgid "Moving to Origin..."
-msgstr "Moving to Origin..."
-
-#: FlatCAMApp.py:5374
-msgid "Jump to ..."
-msgstr "Jump to ..."
-
-#: FlatCAMApp.py:5375
-msgid "Enter the coordinates in format X,Y:"
-msgstr "Enter the coordinates in format X,Y:"
-
-#: FlatCAMApp.py:5385
-msgid "Wrong coordinates. Enter coordinates in format: X,Y"
-msgstr "Wrong coordinates. Enter coordinates in format: X,Y"
-
-#: FlatCAMApp.py:5463 FlatCAMApp.py:5612
-#: flatcamEditors/FlatCAMExcEditor.py:3624
-#: flatcamEditors/FlatCAMExcEditor.py:3632
-#: flatcamEditors/FlatCAMGeoEditor.py:4349
-#: flatcamEditors/FlatCAMGeoEditor.py:4363
-#: flatcamEditors/FlatCAMGrbEditor.py:1087
-#: flatcamEditors/FlatCAMGrbEditor.py:1204
-#: flatcamEditors/FlatCAMGrbEditor.py:1490
-#: flatcamEditors/FlatCAMGrbEditor.py:1759
-#: flatcamEditors/FlatCAMGrbEditor.py:4622
-#: flatcamEditors/FlatCAMGrbEditor.py:4637 flatcamGUI/FlatCAMGUI.py:3424
-#: flatcamGUI/FlatCAMGUI.py:3436 flatcamTools/ToolAlignObjects.py:393
-#: flatcamTools/ToolAlignObjects.py:415
-msgid "Done."
-msgstr "Done."
-
-#: FlatCAMApp.py:5478 FlatCAMApp.py:7724 FlatCAMApp.py:7819 FlatCAMApp.py:7860
-#: FlatCAMApp.py:7901 FlatCAMApp.py:7942 FlatCAMApp.py:7983 FlatCAMApp.py:8027
-#: FlatCAMApp.py:8071 FlatCAMApp.py:8593 FlatCAMApp.py:8597
-#: flatcamTools/ToolProperties.py:116
-msgid "No object selected."
-msgstr "No object selected."
-
-#: FlatCAMApp.py:5497
-msgid "Bottom-Left"
-msgstr "Bottom-Left"
-
-#: FlatCAMApp.py:5498 flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:131
-#: flatcamTools/ToolCalibration.py:159
-msgid "Top-Left"
-msgstr "Top-Left"
-
-#: FlatCAMApp.py:5499 flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:132
-#: flatcamTools/ToolCalibration.py:160
-msgid "Bottom-Right"
-msgstr "Bottom-Right"
-
-#: FlatCAMApp.py:5500
-msgid "Top-Right"
-msgstr "Top-Right"
-
-#: FlatCAMApp.py:5501 flatcamGUI/ObjectUI.py:2706
-msgid "Center"
-msgstr "Center"
-
-#: FlatCAMApp.py:5521
-msgid "Locate ..."
-msgstr "Locate ..."
-
-#: FlatCAMApp.py:5779 FlatCAMApp.py:5856
-msgid "No object is selected. Select an object and try again."
-msgstr "No object is selected. Select an object and try again."
-
-#: FlatCAMApp.py:5882
-msgid ""
-"Aborting. The current task will be gracefully closed as soon as possible..."
-msgstr ""
-"Aborting. The current task will be gracefully closed as soon as possible..."
-
-#: FlatCAMApp.py:5888
-msgid "The current task was gracefully closed on user request..."
-msgstr "The current task was gracefully closed on user request..."
-
-#: FlatCAMApp.py:5916 flatcamGUI/preferences/PreferencesUIManager.py:905
-#: flatcamGUI/preferences/PreferencesUIManager.py:949
-#: flatcamGUI/preferences/PreferencesUIManager.py:970
-#: flatcamGUI/preferences/PreferencesUIManager.py:1075
-msgid "Preferences"
-msgstr "Preferences"
-
-#: FlatCAMApp.py:5981 FlatCAMApp.py:6009 FlatCAMApp.py:6036 FlatCAMApp.py:6056
-#: FlatCAMDB.py:738 FlatCAMDB.py:913 FlatCAMDB.py:2200 FlatCAMDB.py:2418
-#: flatcamObjects/FlatCAMGeometry.py:890 flatcamTools/ToolNCC.py:3963
-#: flatcamTools/ToolNCC.py:4047 flatcamTools/ToolPaint.py:3553
-#: flatcamTools/ToolPaint.py:3638
-msgid "Tools Database"
-msgstr "Tools Database"
-
-#: FlatCAMApp.py:6033
-msgid "Tools in Tools Database edited but not saved."
-msgstr "Tools in Tools Database edited but not saved."
-
-#: FlatCAMApp.py:6060 flatcamTools/ToolNCC.py:3970
-#: flatcamTools/ToolPaint.py:3560
-msgid "Tool from DB added in Tool Table."
-msgstr "Tool from DB added in Tool Table."
-
-#: FlatCAMApp.py:6062
-msgid "Adding tool from DB is not allowed for this object."
-msgstr "Adding tool from DB is not allowed for this object."
-
-#: FlatCAMApp.py:6080
-msgid ""
-"One or more Tools are edited.\n"
-"Do you want to update the Tools Database?"
-msgstr ""
-"One or more Tools are edited.\n"
-"Do you want to update the Tools Database?"
-
-#: FlatCAMApp.py:6082
-msgid "Save Tools Database"
-msgstr "Save Tools Database"
-
-#: FlatCAMApp.py:6135
-msgid "No object selected to Flip on Y axis."
-msgstr "No object selected to Flip on Y axis."
-
-#: FlatCAMApp.py:6161
-msgid "Flip on Y axis done."
-msgstr "Flip on Y axis done."
-
-#: FlatCAMApp.py:6163 FlatCAMApp.py:6211
-#: flatcamEditors/FlatCAMGrbEditor.py:6059
-msgid "Flip action was not executed."
-msgstr "Flip action was not executed."
-
-#: FlatCAMApp.py:6183
-msgid "No object selected to Flip on X axis."
-msgstr "No object selected to Flip on X axis."
-
-#: FlatCAMApp.py:6209
-msgid "Flip on X axis done."
-msgstr "Flip on X axis done."
-
-#: FlatCAMApp.py:6231
-msgid "No object selected to Rotate."
-msgstr "No object selected to Rotate."
-
-#: FlatCAMApp.py:6234 FlatCAMApp.py:6287 FlatCAMApp.py:6326
-msgid "Transform"
-msgstr "Transform"
-
-#: FlatCAMApp.py:6234 FlatCAMApp.py:6287 FlatCAMApp.py:6326
-msgid "Enter the Angle value:"
-msgstr "Enter the Angle value:"
-
-#: FlatCAMApp.py:6265
-msgid "Rotation done."
-msgstr "Rotation done."
-
-#: FlatCAMApp.py:6267
-msgid "Rotation movement was not executed."
-msgstr "Rotation movement was not executed."
-
-#: FlatCAMApp.py:6285
-msgid "No object selected to Skew/Shear on X axis."
-msgstr "No object selected to Skew/Shear on X axis."
-
-#: FlatCAMApp.py:6307
-msgid "Skew on X axis done."
-msgstr "Skew on X axis done."
-
-#: FlatCAMApp.py:6324
-msgid "No object selected to Skew/Shear on Y axis."
-msgstr "No object selected to Skew/Shear on Y axis."
-
-#: FlatCAMApp.py:6346
-msgid "Skew on Y axis done."
-msgstr "Skew on Y axis done."
-
-#: FlatCAMApp.py:6497 FlatCAMApp.py:6544 flatcamGUI/FlatCAMGUI.py:503
-#: flatcamGUI/FlatCAMGUI.py:1728
-msgid "Select All"
-msgstr "Select All"
-
-#: FlatCAMApp.py:6501 FlatCAMApp.py:6548 flatcamGUI/FlatCAMGUI.py:505
-msgid "Deselect All"
-msgstr "Deselect All"
-
-#: FlatCAMApp.py:6564
-msgid "All objects are selected."
-msgstr "All objects are selected."
-
-#: FlatCAMApp.py:6574
-msgid "Objects selection is cleared."
-msgstr "Objects selection is cleared."
-
-#: FlatCAMApp.py:6594 flatcamGUI/FlatCAMGUI.py:1721
-msgid "Grid On/Off"
-msgstr "Grid On/Off"
-
-#: FlatCAMApp.py:6606 flatcamEditors/FlatCAMGeoEditor.py:939
-#: flatcamEditors/FlatCAMGrbEditor.py:2583
-#: flatcamEditors/FlatCAMGrbEditor.py:5641 flatcamGUI/ObjectUI.py:1595
-#: flatcamTools/ToolDblSided.py:192 flatcamTools/ToolDblSided.py:425
-#: flatcamTools/ToolNCC.py:294 flatcamTools/ToolNCC.py:631
-#: flatcamTools/ToolPaint.py:277 flatcamTools/ToolPaint.py:676
-#: flatcamTools/ToolSolderPaste.py:122 flatcamTools/ToolSolderPaste.py:597
-#: flatcamTools/ToolTransform.py:478
-msgid "Add"
-msgstr "Add"
-
-#: FlatCAMApp.py:6608 flatcamEditors/FlatCAMGrbEditor.py:2588
-#: flatcamEditors/FlatCAMGrbEditor.py:2736 flatcamGUI/FlatCAMGUI.py:751
-#: flatcamGUI/FlatCAMGUI.py:1074 flatcamGUI/FlatCAMGUI.py:2141
-#: flatcamGUI/FlatCAMGUI.py:2284 flatcamGUI/FlatCAMGUI.py:2777
-#: flatcamGUI/ObjectUI.py:1623 flatcamObjects/FlatCAMGeometry.py:505
-#: flatcamTools/ToolNCC.py:316 flatcamTools/ToolNCC.py:637
-#: flatcamTools/ToolPaint.py:299 flatcamTools/ToolPaint.py:682
-#: flatcamTools/ToolSolderPaste.py:128 flatcamTools/ToolSolderPaste.py:600
-msgid "Delete"
-msgstr "Delete"
-
-#: FlatCAMApp.py:6624
-msgid "New Grid ..."
-msgstr "New Grid ..."
-
-#: FlatCAMApp.py:6625
-msgid "Enter a Grid Value:"
-msgstr "Enter a Grid Value:"
-
-#: FlatCAMApp.py:6633 FlatCAMApp.py:6660
-msgid "Please enter a grid value with non-zero value, in Float format."
-msgstr "Please enter a grid value with non-zero value, in Float format."
-
-#: FlatCAMApp.py:6639
-msgid "New Grid added"
-msgstr "New Grid added"
-
-#: FlatCAMApp.py:6642
-msgid "Grid already exists"
-msgstr "Grid already exists"
-
-#: FlatCAMApp.py:6645
-msgid "Adding New Grid cancelled"
-msgstr "Adding New Grid cancelled"
-
-#: FlatCAMApp.py:6667
-msgid " Grid Value does not exist"
-msgstr " Grid Value does not exist"
-
-#: FlatCAMApp.py:6670
-msgid "Grid Value deleted"
-msgstr "Grid Value deleted"
-
-#: FlatCAMApp.py:6673
-msgid "Delete Grid value cancelled"
-msgstr "Delete Grid value cancelled"
-
-#: FlatCAMApp.py:6679
-msgid "Key Shortcut List"
-msgstr "Key Shortcut List"
-
-#: FlatCAMApp.py:6713
-msgid " No object selected to copy it's name"
-msgstr " No object selected to copy it's name"
-
-#: FlatCAMApp.py:6717
-msgid "Name copied on clipboard ..."
-msgstr "Name copied on clipboard ..."
-
-#: FlatCAMApp.py:6930 flatcamEditors/FlatCAMGrbEditor.py:4554
-msgid "Coordinates copied to clipboard."
-msgstr "Coordinates copied to clipboard."
-
-#: FlatCAMApp.py:7167 FlatCAMApp.py:7173 FlatCAMApp.py:7179 FlatCAMApp.py:7185
-#: flatcamObjects/ObjectCollection.py:922
-#: flatcamObjects/ObjectCollection.py:928
-#: flatcamObjects/ObjectCollection.py:934
-#: flatcamObjects/ObjectCollection.py:940
-#: flatcamObjects/ObjectCollection.py:946
-#: flatcamObjects/ObjectCollection.py:952
-msgid "selected"
-msgstr "selected"
-
-#: FlatCAMApp.py:7340
-msgid ""
-"There are files/objects opened in FlatCAM.\n"
-"Creating a New project will delete them.\n"
-"Do you want to Save the project?"
-msgstr ""
-"There are files/objects opened in FlatCAM.\n"
-"Creating a New project will delete them.\n"
-"Do you want to Save the project?"
-
-#: FlatCAMApp.py:7361
-msgid "New Project created"
-msgstr "New Project created"
-
-#: FlatCAMApp.py:7519 FlatCAMApp.py:7523 flatcamGUI/FlatCAMGUI.py:836
-#: flatcamGUI/FlatCAMGUI.py:2544
-msgid "Open Gerber"
-msgstr "Open Gerber"
-
-#: FlatCAMApp.py:7528 FlatCAMApp.py:7565 FlatCAMApp.py:7607 FlatCAMApp.py:7677
-#: FlatCAMApp.py:8462 FlatCAMApp.py:9675 FlatCAMApp.py:9737
-msgid ""
-"Canvas initialization started.\n"
-"Canvas initialization finished in"
-msgstr ""
-"Canvas initialization started.\n"
-"Canvas initialization finished in"
-
-#: FlatCAMApp.py:7530
-msgid "Opening Gerber file."
-msgstr "Opening Gerber file."
-
-#: FlatCAMApp.py:7557 FlatCAMApp.py:7561 flatcamGUI/FlatCAMGUI.py:838
-#: flatcamGUI/FlatCAMGUI.py:2546
-msgid "Open Excellon"
-msgstr "Open Excellon"
-
-#: FlatCAMApp.py:7567
-msgid "Opening Excellon file."
-msgstr "Opening Excellon file."
-
-#: FlatCAMApp.py:7598 FlatCAMApp.py:7602
-msgid "Open G-Code"
-msgstr "Open G-Code"
-
-#: FlatCAMApp.py:7609
-msgid "Opening G-Code file."
-msgstr "Opening G-Code file."
-
-#: FlatCAMApp.py:7632 FlatCAMApp.py:7635 flatcamGUI/FlatCAMGUI.py:1730
-msgid "Open Project"
-msgstr "Open Project"
-
-#: FlatCAMApp.py:7668 FlatCAMApp.py:7672
-msgid "Open HPGL2"
-msgstr "Open HPGL2"
-
-#: FlatCAMApp.py:7679
-msgid "Opening HPGL2 file."
-msgstr "Opening HPGL2 file."
-
-#: FlatCAMApp.py:7702 FlatCAMApp.py:7705
-msgid "Open Configuration File"
-msgstr "Open Configuration File"
-
-#: FlatCAMApp.py:7725 FlatCAMApp.py:8072
-msgid "Please Select a Geometry object to export"
-msgstr "Please Select a Geometry object to export"
-
-#: FlatCAMApp.py:7739
-msgid "Only Geometry, Gerber and CNCJob objects can be used."
-msgstr "Only Geometry, Gerber and CNCJob objects can be used."
-
-#: FlatCAMApp.py:7752 FlatCAMApp.py:7756 flatcamTools/ToolQRCode.py:829
-#: flatcamTools/ToolQRCode.py:833
-msgid "Export SVG"
-msgstr "Export SVG"
-
-#: FlatCAMApp.py:7781
-msgid "Data must be a 3D array with last dimension 3 or 4"
-msgstr "Data must be a 3D array with last dimension 3 or 4"
-
-#: FlatCAMApp.py:7787 FlatCAMApp.py:7791
-msgid "Export PNG Image"
-msgstr "Export PNG Image"
-
-#: FlatCAMApp.py:7824 FlatCAMApp.py:8032
-msgid "Failed. Only Gerber objects can be saved as Gerber files..."
-msgstr "Failed. Only Gerber objects can be saved as Gerber files..."
-
-#: FlatCAMApp.py:7836
-msgid "Save Gerber source file"
-msgstr "Save Gerber source file"
-
-#: FlatCAMApp.py:7865
-msgid "Failed. Only Script objects can be saved as TCL Script files..."
-msgstr "Failed. Only Script objects can be saved as TCL Script files..."
-
-#: FlatCAMApp.py:7877
-msgid "Save Script source file"
-msgstr "Save Script source file"
-
-#: FlatCAMApp.py:7906
-msgid "Failed. Only Document objects can be saved as Document files..."
-msgstr "Failed. Only Document objects can be saved as Document files..."
-
-#: FlatCAMApp.py:7918
-msgid "Save Document source file"
-msgstr "Save Document source file"
-
-#: FlatCAMApp.py:7947 FlatCAMApp.py:7988 FlatCAMApp.py:8945
-msgid "Failed. Only Excellon objects can be saved as Excellon files..."
-msgstr "Failed. Only Excellon objects can be saved as Excellon files..."
-
-#: FlatCAMApp.py:7955 FlatCAMApp.py:7959
-msgid "Save Excellon source file"
-msgstr "Save Excellon source file"
-
-#: FlatCAMApp.py:7996 FlatCAMApp.py:8000
-msgid "Export Excellon"
-msgstr "Export Excellon"
-
-#: FlatCAMApp.py:8040 FlatCAMApp.py:8044
-msgid "Export Gerber"
-msgstr "Export Gerber"
-
-#: FlatCAMApp.py:8082
-msgid "Only Geometry objects can be used."
-msgstr "Only Geometry objects can be used."
-
-#: FlatCAMApp.py:8096 FlatCAMApp.py:8100
-msgid "Export DXF"
-msgstr "Export DXF"
-
-#: FlatCAMApp.py:8125 FlatCAMApp.py:8128
-msgid "Import SVG"
-msgstr "Import SVG"
-
-#: FlatCAMApp.py:8156 FlatCAMApp.py:8160
-msgid "Import DXF"
-msgstr "Import DXF"
-
-#: FlatCAMApp.py:8210
-msgid "Viewing the source code of the selected object."
-msgstr "Viewing the source code of the selected object."
-
-#: FlatCAMApp.py:8211 flatcamObjects/FlatCAMCNCJob.py:548
-#: flatcamObjects/FlatCAMScript.py:134
+#: AppObjects/FlatCAMCNCJob.py:429 AppObjects/FlatCAMDocument.py:71
+#: AppObjects/FlatCAMScript.py:82
+msgid "Basic"
+msgstr "Basic"
+
+#: AppObjects/FlatCAMCNCJob.py:435 AppObjects/FlatCAMDocument.py:75
+#: AppObjects/FlatCAMScript.py:86
+msgid "Advanced"
+msgstr "Advanced"
+
+#: AppObjects/FlatCAMCNCJob.py:478
+msgid "Plotting..."
+msgstr "Plotting..."
+
+#: AppObjects/FlatCAMCNCJob.py:507 AppObjects/FlatCAMCNCJob.py:512
+#: AppTools/ToolSolderPaste.py:1499
+msgid "Export Machine Code ..."
+msgstr "Export Machine Code ..."
+
+#: AppObjects/FlatCAMCNCJob.py:517 AppTools/ToolSolderPaste.py:1503
+msgid "Export Machine Code cancelled ..."
+msgstr "Export Machine Code cancelled ..."
+
+#: AppObjects/FlatCAMCNCJob.py:538
+msgid "Machine Code file saved to"
+msgstr "Machine Code file saved to"
+
+#: AppObjects/FlatCAMCNCJob.py:548 AppObjects/FlatCAMScript.py:134
+#: App_Main.py:7205
msgid "Loading..."
msgstr "Loading..."
-#: FlatCAMApp.py:8217 FlatCAMApp.py:8221
-msgid "Select an Gerber or Excellon file to view it's source file."
-msgstr "Select an Gerber or Excellon file to view it's source file."
-
-#: FlatCAMApp.py:8235
-msgid "Source Editor"
-msgstr "Source Editor"
-
-#: FlatCAMApp.py:8275 FlatCAMApp.py:8282
-msgid "There is no selected object for which to see it's source file code."
-msgstr "There is no selected object for which to see it's source file code."
-
-#: FlatCAMApp.py:8294
-msgid "Failed to load the source code for the selected object"
-msgstr "Failed to load the source code for the selected object"
-
-#: FlatCAMApp.py:8308 flatcamObjects/FlatCAMCNCJob.py:562
+#: AppObjects/FlatCAMCNCJob.py:562 App_Main.py:7302
msgid "Code Editor"
msgstr "Code Editor"
-#: FlatCAMApp.py:8330
-msgid "Go to Line ..."
-msgstr "Go to Line ..."
+#: AppObjects/FlatCAMCNCJob.py:599 AppTools/ToolCalibration.py:1097
+msgid "Loaded Machine Code into Code Editor"
+msgstr "Loaded Machine Code into Code Editor"
-#: FlatCAMApp.py:8331
-msgid "Line:"
-msgstr "Line:"
+#: AppObjects/FlatCAMCNCJob.py:740
+msgid "This CNCJob object can't be processed because it is a"
+msgstr "This CNCJob object can't be processed because it is a"
-#: FlatCAMApp.py:8360
-msgid "New TCL script file created in Code Editor."
-msgstr "New TCL script file created in Code Editor."
+#: AppObjects/FlatCAMCNCJob.py:742
+msgid "CNCJob object"
+msgstr "CNCJob object"
-#: FlatCAMApp.py:8396 FlatCAMApp.py:8398 FlatCAMApp.py:8434 FlatCAMApp.py:8436
-msgid "Open TCL script"
-msgstr "Open TCL script"
-
-#: FlatCAMApp.py:8464
-msgid "Executing ScriptObject file."
-msgstr "Executing ScriptObject file."
-
-#: FlatCAMApp.py:8472 FlatCAMApp.py:8475
-msgid "Run TCL script"
-msgstr "Run TCL script"
-
-#: FlatCAMApp.py:8498
-msgid "TCL script file opened in Code Editor and executed."
-msgstr "TCL script file opened in Code Editor and executed."
-
-#: FlatCAMApp.py:8549 FlatCAMApp.py:8555
-msgid "Save Project As ..."
-msgstr "Save Project As ..."
-
-#: FlatCAMApp.py:8551 flatcamGUI/FlatCAMGUI.py:1134
-#: flatcamGUI/FlatCAMGUI.py:2176
-msgid "Project"
-msgstr "Project"
-
-#: FlatCAMApp.py:8590
-msgid "FlatCAM objects print"
-msgstr "FlatCAM objects print"
-
-#: FlatCAMApp.py:8603 FlatCAMApp.py:8610
-msgid "Save Object as PDF ..."
-msgstr "Save Object as PDF ..."
-
-#: FlatCAMApp.py:8619
-msgid "Printing PDF ... Please wait."
-msgstr "Printing PDF ... Please wait."
-
-#: FlatCAMApp.py:8798
-msgid "PDF file saved to"
-msgstr "PDF file saved to"
-
-#: FlatCAMApp.py:8823
-msgid "Exporting SVG"
-msgstr "Exporting SVG"
-
-#: FlatCAMApp.py:8866
-msgid "SVG file exported to"
-msgstr "SVG file exported to"
-
-#: FlatCAMApp.py:8892
+#: AppObjects/FlatCAMCNCJob.py:922
msgid ""
-"Save cancelled because source file is empty. Try to export the Gerber file."
+"G-code does not have a G94 code and we will not include the code in the "
+"'Prepend to GCode' text box"
msgstr ""
-"Save cancelled because source file is empty. Try to export the Gerber file."
+"G-code does not have a G94 code and we will not include the code in the "
+"'Prepend to GCode' text box"
-#: FlatCAMApp.py:9039
-msgid "Excellon file exported to"
-msgstr "Excellon file exported to"
+#: AppObjects/FlatCAMCNCJob.py:933
+msgid "Cancelled. The Toolchange Custom code is enabled but it's empty."
+msgstr "Cancelled. The Toolchange Custom code is enabled but it's empty."
-#: FlatCAMApp.py:9048
-msgid "Exporting Excellon"
-msgstr "Exporting Excellon"
+#: AppObjects/FlatCAMCNCJob.py:938
+msgid "Toolchange G-code was replaced by a custom code."
+msgstr "Toolchange G-code was replaced by a custom code."
-#: FlatCAMApp.py:9053 FlatCAMApp.py:9060
-msgid "Could not export Excellon file."
-msgstr "Could not export Excellon file."
-
-#: FlatCAMApp.py:9175
-msgid "Gerber file exported to"
-msgstr "Gerber file exported to"
-
-#: FlatCAMApp.py:9183
-msgid "Exporting Gerber"
-msgstr "Exporting Gerber"
-
-#: FlatCAMApp.py:9188 FlatCAMApp.py:9195
-msgid "Could not export Gerber file."
-msgstr "Could not export Gerber file."
-
-#: FlatCAMApp.py:9230
-msgid "DXF file exported to"
-msgstr "DXF file exported to"
-
-#: FlatCAMApp.py:9236
-msgid "Exporting DXF"
-msgstr "Exporting DXF"
-
-#: FlatCAMApp.py:9241 FlatCAMApp.py:9248
-msgid "Could not export DXF file."
-msgstr "Could not export DXF file."
-
-#: FlatCAMApp.py:9272 FlatCAMApp.py:9319 flatcamTools/ToolImage.py:277
+#: AppObjects/FlatCAMCNCJob.py:986 AppObjects/FlatCAMCNCJob.py:996
msgid ""
-"Not supported type is picked as parameter. Only Geometry and Gerber are "
-"supported"
+"The used preprocessor file has to have in it's name: 'toolchange_custom'"
msgstr ""
-"Not supported type is picked as parameter. Only Geometry and Gerber are "
-"supported"
+"The used preprocessor file has to have in it's name: 'toolchange_custom'"
-#: FlatCAMApp.py:9282
-msgid "Importing SVG"
-msgstr "Importing SVG"
+#: AppObjects/FlatCAMCNCJob.py:999
+msgid "There is no preprocessor file."
+msgstr "There is no preprocessor file."
-#: FlatCAMApp.py:9290 FlatCAMApp.py:9336
-msgid "Import failed."
-msgstr "Import failed."
+#: AppObjects/FlatCAMDocument.py:175
+msgid "Document Editor"
+msgstr "Document Editor"
-#: FlatCAMApp.py:9297 FlatCAMApp.py:9343 FlatCAMApp.py:9407 FlatCAMApp.py:9474
-#: FlatCAMApp.py:9540 FlatCAMApp.py:9605 FlatCAMApp.py:9662
-#: flatcamTools/ToolImage.py:297 flatcamTools/ToolPDF.py:225
-msgid "Opened"
-msgstr "Opened"
+#: AppObjects/FlatCAMExcellon.py:527 AppObjects/FlatCAMExcellon.py:825
+#: AppObjects/FlatCAMGeometry.py:322 AppObjects/FlatCAMGeometry.py:852
+#: AppTools/ToolNCC.py:811 AppTools/ToolNCC.py:1196 AppTools/ToolPaint.py:778
+#: AppTools/ToolPaint.py:1170
+msgid "Multiple Tools"
+msgstr "Multiple Tools"
-#: FlatCAMApp.py:9328
-msgid "Importing DXF"
-msgstr "Importing DXF"
+#: AppObjects/FlatCAMExcellon.py:805
+msgid "No Tool Selected"
+msgstr "No Tool Selected"
-#: FlatCAMApp.py:9369 FlatCAMApp.py:9564 FlatCAMApp.py:9629
-msgid "Failed to open file"
-msgstr "Failed to open file"
+#: AppObjects/FlatCAMExcellon.py:1155 AppObjects/FlatCAMExcellon.py:1248
+#: AppObjects/FlatCAMExcellon.py:1435
+msgid "Please select one or more tools from the list and try again."
+msgstr "Please select one or more tools from the list and try again."
-#: FlatCAMApp.py:9372 FlatCAMApp.py:9567 FlatCAMApp.py:9632
-msgid "Failed to parse file"
-msgstr "Failed to parse file"
+#: AppObjects/FlatCAMExcellon.py:1162
+msgid "Milling tool for DRILLS is larger than hole size. Cancelled."
+msgstr "Milling tool for DRILLS is larger than hole size. Cancelled."
-#: FlatCAMApp.py:9384
-msgid "Object is not Gerber file or empty. Aborting object creation."
-msgstr "Object is not Gerber file or empty. Aborting object creation."
+#: AppObjects/FlatCAMExcellon.py:1177 AppObjects/FlatCAMExcellon.py:1268
+#: AppObjects/FlatCAMExcellon.py:1453 tclCommands/TclCommandDrillcncjob.py:195
+msgid "Tool_nr"
+msgstr "Tool_nr"
-#: FlatCAMApp.py:9389
-msgid "Opening Gerber"
-msgstr "Opening Gerber"
+#: AppObjects/FlatCAMExcellon.py:1177 AppObjects/FlatCAMExcellon.py:1268
+#: AppObjects/FlatCAMExcellon.py:1453 tclCommands/TclCommandDrillcncjob.py:195
+msgid "Drills_Nr"
+msgstr "Drills_Nr"
-#: FlatCAMApp.py:9400
-msgid "Open Gerber failed. Probable not a Gerber file."
-msgstr "Open Gerber failed. Probable not a Gerber file."
+#: AppObjects/FlatCAMExcellon.py:1177 AppObjects/FlatCAMExcellon.py:1268
+#: AppObjects/FlatCAMExcellon.py:1453 tclCommands/TclCommandDrillcncjob.py:195
+msgid "Slots_Nr"
+msgstr "Slots_Nr"
-#: FlatCAMApp.py:9432 flatcamTools/ToolPcbWizard.py:424
-msgid "This is not Excellon file."
-msgstr "This is not Excellon file."
+#: AppObjects/FlatCAMExcellon.py:1257
+msgid "Milling tool for SLOTS is larger than hole size. Cancelled."
+msgstr "Milling tool for SLOTS is larger than hole size. Cancelled."
-#: FlatCAMApp.py:9436
-msgid "Cannot open file"
-msgstr "Cannot open file"
+#: AppObjects/FlatCAMExcellon.py:1361 AppObjects/FlatCAMGeometry.py:1625
+msgid "Focus Z"
+msgstr "Focus Z"
-#: FlatCAMApp.py:9454 flatcamTools/ToolPDF.py:275
-#: flatcamTools/ToolPcbWizard.py:445
-msgid "No geometry found in file"
-msgstr "No geometry found in file"
+#: AppObjects/FlatCAMExcellon.py:1380 AppObjects/FlatCAMGeometry.py:1644
+msgid "Laser Power"
+msgstr "Laser Power"
-#: FlatCAMApp.py:9457
-msgid "Opening Excellon."
-msgstr "Opening Excellon."
+#: AppObjects/FlatCAMExcellon.py:1510 AppObjects/FlatCAMGeometry.py:2077
+#: AppObjects/FlatCAMGeometry.py:2081 AppObjects/FlatCAMGeometry.py:2232
+msgid "Generating CNC Code"
+msgstr "Generating CNC Code"
-#: FlatCAMApp.py:9467
-msgid "Open Excellon file failed. Probable not an Excellon file."
-msgstr "Open Excellon file failed. Probable not an Excellon file."
+#: AppObjects/FlatCAMExcellon.py:1563 AppObjects/FlatCAMGeometry.py:2542
+msgid "Delete failed. There are no exclusion areas to delete."
+msgstr "Delete failed. There are no exclusion areas to delete."
-#: FlatCAMApp.py:9499
-msgid "Reading GCode file"
-msgstr "Reading GCode file"
+#: AppObjects/FlatCAMExcellon.py:1580 AppObjects/FlatCAMGeometry.py:2559
+msgid "Delete failed. Nothing is selected."
+msgstr "Delete failed. Nothing is selected."
-#: FlatCAMApp.py:9505
-msgid "Failed to open"
-msgstr "Failed to open"
+#: AppObjects/FlatCAMExcellon.py:1804 AppTools/ToolNCC.py:918
+#: AppTools/ToolPaint.py:843
+msgid "Current Tool parameters were applied to all tools."
+msgstr "Current Tool parameters were applied to all tools."
-#: FlatCAMApp.py:9512
-msgid "This is not GCODE"
-msgstr "This is not GCODE"
+#: AppObjects/FlatCAMGeometry.py:123 AppObjects/FlatCAMGeometry.py:1289
+#: AppObjects/FlatCAMGeometry.py:1290 AppObjects/FlatCAMGeometry.py:1299
+msgid "Iso"
+msgstr "Iso"
-#: FlatCAMApp.py:9517
-msgid "Opening G-Code."
-msgstr "Opening G-Code."
+#: AppObjects/FlatCAMGeometry.py:123 AppObjects/FlatCAMGeometry.py:515
+#: AppObjects/FlatCAMGeometry.py:911 AppObjects/FlatCAMGerber.py:891
+#: AppObjects/FlatCAMGerber.py:1039 AppTools/ToolCutOut.py:690
+#: AppTools/ToolCutOut.py:886 AppTools/ToolCutOut.py:1046
+msgid "Rough"
+msgstr "Rough"
-#: FlatCAMApp.py:9530
+#: AppObjects/FlatCAMGeometry.py:123
+msgid "Finish"
+msgstr "Finish"
+
+#: AppObjects/FlatCAMGeometry.py:550
+msgid "Add from Tool DB"
+msgstr "Add from Tool DB"
+
+#: AppObjects/FlatCAMGeometry.py:930
+msgid "Tool added in Tool Table."
+msgstr "Tool added in Tool Table."
+
+#: AppObjects/FlatCAMGeometry.py:1039 AppObjects/FlatCAMGeometry.py:1048
+msgid "Failed. Select a tool to copy."
+msgstr "Failed. Select a tool to copy."
+
+#: AppObjects/FlatCAMGeometry.py:1077
+msgid "Tool was copied in Tool Table."
+msgstr "Tool was copied in Tool Table."
+
+#: AppObjects/FlatCAMGeometry.py:1104
+msgid "Tool was edited in Tool Table."
+msgstr "Tool was edited in Tool Table."
+
+#: AppObjects/FlatCAMGeometry.py:1133 AppObjects/FlatCAMGeometry.py:1142
+msgid "Failed. Select a tool to delete."
+msgstr "Failed. Select a tool to delete."
+
+#: AppObjects/FlatCAMGeometry.py:1166
+msgid "Tool was deleted in Tool Table."
+msgstr "Tool was deleted in Tool Table."
+
+#: AppObjects/FlatCAMGeometry.py:1203 AppObjects/FlatCAMGeometry.py:1212
msgid ""
-"Failed to create CNCJob Object. Probable not a GCode file. Try to load it "
-"from File menu.\n"
-" Attempting to create a FlatCAM CNCJob Object from G-Code file failed during "
-"processing"
+"Disabled because the tool is V-shape.\n"
+"For V-shape tools the depth of cut is\n"
+"calculated from other parameters like:\n"
+"- 'V-tip Angle' -> angle at the tip of the tool\n"
+"- 'V-tip Dia' -> diameter at the tip of the tool \n"
+"- Tool Dia -> 'Dia' column found in the Tool Table\n"
+"NB: a value of zero means that Tool Dia = 'V-tip Dia'"
msgstr ""
-"Failed to create CNCJob Object. Probable not a GCode file. Try to load it "
-"from File menu.\n"
-" Attempting to create a FlatCAM CNCJob Object from G-Code file failed during "
-"processing"
+"Disabled because the tool is V-shape.\n"
+"For V-shape tools the depth of cut is\n"
+"calculated from other parameters like:\n"
+"- 'V-tip Angle' -> angle at the tip of the tool\n"
+"- 'V-tip Dia' -> diameter at the tip of the tool \n"
+"- Tool Dia -> 'Dia' column found in the Tool Table\n"
+"NB: a value of zero means that Tool Dia = 'V-tip Dia'"
-#: FlatCAMApp.py:9586
-msgid "Object is not HPGL2 file or empty. Aborting object creation."
-msgstr "Object is not HPGL2 file or empty. Aborting object creation."
+#: AppObjects/FlatCAMGeometry.py:1697
+msgid "This Geometry can't be processed because it is"
+msgstr "This Geometry can't be processed because it is"
-#: FlatCAMApp.py:9591
-msgid "Opening HPGL2"
-msgstr "Opening HPGL2"
+#: AppObjects/FlatCAMGeometry.py:1697
+msgid "geometry"
+msgstr "geometry"
-#: FlatCAMApp.py:9598
-msgid " Open HPGL2 failed. Probable not a HPGL2 file."
-msgstr " Open HPGL2 failed. Probable not a HPGL2 file."
+#: AppObjects/FlatCAMGeometry.py:1738
+msgid "Failed. No tool selected in the tool table ..."
+msgstr "Failed. No tool selected in the tool table ..."
-#: FlatCAMApp.py:9624
-msgid "TCL script file opened in Code Editor."
-msgstr "TCL script file opened in Code Editor."
-
-#: FlatCAMApp.py:9644
-msgid "Opening TCL Script..."
-msgstr "Opening TCL Script..."
-
-#: FlatCAMApp.py:9655
-msgid "Failed to open TCL Script."
-msgstr "Failed to open TCL Script."
-
-#: FlatCAMApp.py:9677
-msgid "Opening FlatCAM Config file."
-msgstr "Opening FlatCAM Config file."
-
-#: FlatCAMApp.py:9705
-msgid "Failed to open config file"
-msgstr "Failed to open config file"
-
-#: FlatCAMApp.py:9734
-msgid "Loading Project ... Please Wait ..."
-msgstr "Loading Project ... Please Wait ..."
-
-#: FlatCAMApp.py:9739
-msgid "Opening FlatCAM Project file."
-msgstr "Opening FlatCAM Project file."
-
-#: FlatCAMApp.py:9754 FlatCAMApp.py:9758 FlatCAMApp.py:9775
-msgid "Failed to open project file"
-msgstr "Failed to open project file"
-
-#: FlatCAMApp.py:9812
-msgid "Loading Project ... restoring"
-msgstr "Loading Project ... restoring"
-
-#: FlatCAMApp.py:9822
-msgid "Project loaded from"
-msgstr "Project loaded from"
-
-#: FlatCAMApp.py:9846
-msgid "Redrawing all objects"
-msgstr "Redrawing all objects"
-
-#: FlatCAMApp.py:9934
-msgid "Failed to load recent item list."
-msgstr "Failed to load recent item list."
-
-#: FlatCAMApp.py:9941
-msgid "Failed to parse recent item list."
-msgstr "Failed to parse recent item list."
-
-#: FlatCAMApp.py:9951
-msgid "Failed to load recent projects item list."
-msgstr "Failed to load recent projects item list."
-
-#: FlatCAMApp.py:9958
-msgid "Failed to parse recent project item list."
-msgstr "Failed to parse recent project item list."
-
-#: FlatCAMApp.py:10019
-msgid "Clear Recent projects"
-msgstr "Clear Recent projects"
-
-#: FlatCAMApp.py:10043
-msgid "Clear Recent files"
-msgstr "Clear Recent files"
-
-#: FlatCAMApp.py:10065 flatcamGUI/FlatCAMGUI.py:1363
-msgid "Shortcut Key List"
-msgstr "Shortcut Key List"
-
-#: FlatCAMApp.py:10145
-msgid "Selected Tab - Choose an Item from Project Tab"
-msgstr "Selected Tab - Choose an Item from Project Tab"
-
-#: FlatCAMApp.py:10146
-msgid "Details"
-msgstr "Details"
-
-#: FlatCAMApp.py:10148
-msgid "The normal flow when working in FlatCAM is the following:"
-msgstr "The normal flow when working in FlatCAM is the following:"
-
-#: FlatCAMApp.py:10149
+#: AppObjects/FlatCAMGeometry.py:1836 AppObjects/FlatCAMGeometry.py:1986
msgid ""
-"Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into "
-"FlatCAM using either the toolbars, key shortcuts or even dragging and "
-"dropping the files on the GUI."
+"Tool Offset is selected in Tool Table but no value is provided.\n"
+"Add a Tool Offset or change the Offset Type."
msgstr ""
-"Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into "
-"FlatCAM using either the toolbars, key shortcuts or even dragging and "
-"dropping the files on the GUI."
+"Tool Offset is selected in Tool Table but no value is provided.\n"
+"Add a Tool Offset or change the Offset Type."
-#: FlatCAMApp.py:10152
+#: AppObjects/FlatCAMGeometry.py:1902 AppObjects/FlatCAMGeometry.py:2048
+msgid "G-Code parsing in progress..."
+msgstr "G-Code parsing in progress..."
+
+#: AppObjects/FlatCAMGeometry.py:1904 AppObjects/FlatCAMGeometry.py:2050
+msgid "G-Code parsing finished..."
+msgstr "G-Code parsing finished..."
+
+#: AppObjects/FlatCAMGeometry.py:1912
+msgid "Finished G-Code processing"
+msgstr "Finished G-Code processing"
+
+#: AppObjects/FlatCAMGeometry.py:1914 AppObjects/FlatCAMGeometry.py:2062
+msgid "G-Code processing failed with error"
+msgstr "G-Code processing failed with error"
+
+#: AppObjects/FlatCAMGeometry.py:1956 AppTools/ToolSolderPaste.py:1301
+msgid "Cancelled. Empty file, it has no geometry"
+msgstr "Cancelled. Empty file, it has no geometry"
+
+#: AppObjects/FlatCAMGeometry.py:2060 AppObjects/FlatCAMGeometry.py:2227
+msgid "Finished G-Code processing..."
+msgstr "Finished G-Code processing..."
+
+#: AppObjects/FlatCAMGeometry.py:2079 AppObjects/FlatCAMGeometry.py:2083
+#: AppObjects/FlatCAMGeometry.py:2234
+msgid "CNCjob created"
+msgstr "CNCjob created"
+
+#: AppObjects/FlatCAMGeometry.py:2265 AppObjects/FlatCAMGeometry.py:2274
+#: AppParsers/ParseGerber.py:1866 AppParsers/ParseGerber.py:1876
+msgid "Scale factor has to be a number: integer or float."
+msgstr "Scale factor has to be a number: integer or float."
+
+#: AppObjects/FlatCAMGeometry.py:2337
+msgid "Geometry Scale done."
+msgstr "Geometry Scale done."
+
+#: AppObjects/FlatCAMGeometry.py:2354 AppParsers/ParseGerber.py:1992
msgid ""
-"You can also load a FlatCAM project by double clicking on the project file, "
-"drag and drop of the file into the FLATCAM GUI or through the menu (or "
-"toolbar) actions offered within the app."
+"An (x,y) pair of values are needed. Probable you entered only one value in "
+"the Offset field."
msgstr ""
-"You can also load a FlatCAM project by double clicking on the project file, "
-"drag and drop of the file into the FLATCAM GUI or through the menu (or "
-"toolbar) actions offered within the app."
+"An (x,y) pair of values are needed. Probable you entered only one value in "
+"the Offset field."
-#: FlatCAMApp.py:10155
+#: AppObjects/FlatCAMGeometry.py:2410
+msgid "Geometry Offset done."
+msgstr "Geometry Offset done."
+
+#: AppObjects/FlatCAMGeometry.py:2439
msgid ""
-"Once an object is available in the Project Tab, by selecting it and then "
-"focusing on SELECTED TAB (more simpler is to double click the object name in "
-"the Project Tab, SELECTED TAB will be updated with the object properties "
-"according to its kind: Gerber, Excellon, Geometry or CNCJob object."
+"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, "
+"y)\n"
+"but now there is only one value, not two."
msgstr ""
-"Once an object is available in the Project Tab, by selecting it and then "
-"focusing on SELECTED TAB (more simpler is to double click the object name in "
-"the Project Tab, SELECTED TAB will be updated with the object properties "
-"according to its kind: Gerber, Excellon, Geometry or CNCJob object."
+"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, "
+"y)\n"
+"but now there is only one value, not two."
-#: FlatCAMApp.py:10159
+#: AppObjects/FlatCAMGerber.py:494
+msgid "Buffering solid geometry"
+msgstr "Buffering solid geometry"
+
+#: AppObjects/FlatCAMGerber.py:503
+msgid "Done"
+msgstr "Done"
+
+#: AppObjects/FlatCAMGerber.py:529 AppObjects/FlatCAMGerber.py:555
+msgid "Operation could not be done."
+msgstr "Operation could not be done."
+
+#: AppObjects/FlatCAMGerber.py:572
+msgid "Isolating..."
+msgstr "Isolating..."
+
+#: AppObjects/FlatCAMGerber.py:631
+msgid "Click on a polygon to isolate it."
+msgstr "Click on a polygon to isolate it."
+
+#: AppObjects/FlatCAMGerber.py:670 AppObjects/FlatCAMGerber.py:774
+#: AppTools/ToolPaint.py:1515
+msgid "Added polygon"
+msgstr "Added polygon"
+
+#: AppObjects/FlatCAMGerber.py:671 AppObjects/FlatCAMGerber.py:776
+msgid "Click to add next polygon or right click to start isolation."
+msgstr "Click to add next polygon or right click to start isolation."
+
+#: AppObjects/FlatCAMGerber.py:683 AppTools/ToolPaint.py:1529
+msgid "Removed polygon"
+msgstr "Removed polygon"
+
+#: AppObjects/FlatCAMGerber.py:684
+msgid "Click to add/remove next polygon or right click to start isolation."
+msgstr "Click to add/remove next polygon or right click to start isolation."
+
+#: AppObjects/FlatCAMGerber.py:689 AppTools/ToolPaint.py:1535
+msgid "No polygon detected under click position."
+msgstr "No polygon detected under click position."
+
+#: AppObjects/FlatCAMGerber.py:710 AppTools/ToolPaint.py:1564
+msgid "List of single polygons is empty. Aborting."
+msgstr "List of single polygons is empty. Aborting."
+
+#: AppObjects/FlatCAMGerber.py:779
+msgid "No polygon in selection."
+msgstr "No polygon in selection."
+
+#: AppObjects/FlatCAMGerber.py:907 AppObjects/FlatCAMGerber.py:986
+#: AppTools/ToolNCC.py:2097 AppTools/ToolNCC.py:3183 AppTools/ToolNCC.py:3562
+msgid "Isolation geometry could not be generated."
+msgstr "Isolation geometry could not be generated."
+
+#: AppObjects/FlatCAMGerber.py:932 AppObjects/FlatCAMGerber.py:1064
+msgid "Isolation geometry created"
+msgstr "Isolation geometry created"
+
+#: AppObjects/FlatCAMGerber.py:941 AppObjects/FlatCAMGerber.py:1071
+msgid "Subtracting Geo"
+msgstr "Subtracting Geo"
+
+#: AppObjects/FlatCAMGerber.py:1396
+msgid "Plotting Apertures"
+msgstr "Plotting Apertures"
+
+#: AppObjects/FlatCAMObj.py:232
+msgid "Name changed from"
+msgstr "Name changed from"
+
+#: AppObjects/FlatCAMObj.py:232
+msgid "to"
+msgstr "to"
+
+#: AppObjects/FlatCAMObj.py:243
+msgid "Offsetting..."
+msgstr "Offsetting..."
+
+#: AppObjects/FlatCAMObj.py:257 AppObjects/FlatCAMObj.py:262
+msgid "Scaling could not be executed."
+msgstr "Scaling could not be executed."
+
+#: AppObjects/FlatCAMObj.py:266 AppObjects/FlatCAMObj.py:274
+msgid "Scale done."
+msgstr "Scale done."
+
+#: AppObjects/FlatCAMObj.py:272
+msgid "Scaling..."
+msgstr "Scaling..."
+
+#: AppObjects/FlatCAMObj.py:290
+msgid "Skewing..."
+msgstr "Skewing..."
+
+#: AppObjects/FlatCAMScript.py:163
+msgid "Script Editor"
+msgstr "Script Editor"
+
+#: AppObjects/ObjectCollection.py:513
+#, python-brace-format
+msgid "Object renamed from {old} to {new}"
+msgstr "Object renamed from {old} to {new}"
+
+#: AppObjects/ObjectCollection.py:925 AppObjects/ObjectCollection.py:931
+#: AppObjects/ObjectCollection.py:937 AppObjects/ObjectCollection.py:943
+#: AppObjects/ObjectCollection.py:949 AppObjects/ObjectCollection.py:955
+#: App_Main.py:6158 App_Main.py:6164 App_Main.py:6170 App_Main.py:6176
+msgid "selected"
+msgstr "selected"
+
+#: AppObjects/ObjectCollection.py:986
+msgid "Cause of error"
+msgstr "Cause of error"
+
+#: AppObjects/ObjectCollection.py:1187
+msgid "All objects are selected."
+msgstr "All objects are selected."
+
+#: AppObjects/ObjectCollection.py:1197
+msgid "Objects selection is cleared."
+msgstr "Objects selection is cleared."
+
+#: AppParsers/ParseExcellon.py:315
+msgid "This is GCODE mark"
+msgstr "This is GCODE mark"
+
+#: AppParsers/ParseExcellon.py:432
msgid ""
-"If the selection of the object is done on the canvas by single click "
-"instead, and the SELECTED TAB is in focus, again the object properties will "
-"be displayed into the Selected Tab. Alternatively, double clicking on the "
-"object on the canvas will bring the SELECTED TAB and populate it even if it "
-"was out of focus."
+"No tool diameter info's. See shell.\n"
+"A tool change event: T"
msgstr ""
-"If the selection of the object is done on the canvas by single click "
-"instead, and the SELECTED TAB is in focus, again the object properties will "
-"be displayed into the Selected Tab. Alternatively, double clicking on the "
-"object on the canvas will bring the SELECTED TAB and populate it even if it "
-"was out of focus."
+"No tool diameter info's. See shell.\n"
+"A tool change event: T"
-#: FlatCAMApp.py:10163
+#: AppParsers/ParseExcellon.py:435
msgid ""
-"You can change the parameters in this screen and the flow direction is like "
-"this:"
+"was found but the Excellon file have no informations regarding the tool "
+"diameters therefore the application will try to load it by using some 'fake' "
+"diameters.\n"
+"The user needs to edit the resulting Excellon object and change the "
+"diameters to reflect the real diameters."
msgstr ""
-"You can change the parameters in this screen and the flow direction is like "
-"this:"
+"was found but the Excellon file have no informations regarding the tool "
+"diameters therefore the application will try to load it by using some 'fake' "
+"diameters.\n"
+"The user needs to edit the resulting Excellon object and change the "
+"diameters to reflect the real diameters."
-#: FlatCAMApp.py:10164
+#: AppParsers/ParseExcellon.py:899
msgid ""
-"Gerber/Excellon Object --> Change Parameter --> Generate Geometry --> "
-"Geometry Object --> Add tools (change param in Selected Tab) --> Generate "
-"CNCJob --> CNCJob Object --> Verify GCode (through Edit CNC Code) and/or "
-"append/prepend to GCode (again, done in SELECTED TAB) --> Save GCode."
+"Excellon Parser error.\n"
+"Parsing Failed. Line"
msgstr ""
-"Gerber/Excellon Object --> Change Parameter --> Generate Geometry --> "
-"Geometry Object --> Add tools (change param in Selected Tab) --> Generate "
-"CNCJob --> CNCJob Object --> Verify GCode (through Edit CNC Code) and/or "
-"append/prepend to GCode (again, done in SELECTED TAB) --> Save GCode."
+"Excellon Parser error.\n"
+"Parsing Failed. Line"
-#: FlatCAMApp.py:10168
+#: AppParsers/ParseExcellon.py:981
msgid ""
-"A list of key shortcuts is available through an menu entry in Help --> "
-"Shortcuts List or through its own key shortcut: F3."
+"Excellon.create_geometry() -> a drill location was skipped due of not having "
+"a tool associated.\n"
+"Check the resulting GCode."
msgstr ""
-"A list of key shortcuts is available through an menu entry in Help --> "
-"Shortcuts List or through its own key shortcut: F3."
+"Excellon.create_geometry() -> a drill location was skipped due of not having "
+"a tool associated.\n"
+"Check the resulting GCode."
-#: FlatCAMApp.py:10232
-msgid "Failed checking for latest version. Could not connect."
-msgstr "Failed checking for latest version. Could not connect."
+#: AppParsers/ParseFont.py:303
+msgid "Font not supported, try another one."
+msgstr "Font not supported, try another one."
-#: FlatCAMApp.py:10239
-msgid "Could not parse information about latest version."
-msgstr "Could not parse information about latest version."
+#: AppParsers/ParseGerber.py:425
+msgid "Gerber processing. Parsing"
+msgstr "Gerber processing. Parsing"
-#: FlatCAMApp.py:10249
-msgid "FlatCAM is up to date!"
-msgstr "FlatCAM is up to date!"
+#: AppParsers/ParseGerber.py:425 AppParsers/ParseHPGL2.py:181
+msgid "lines"
+msgstr "lines"
-#: FlatCAMApp.py:10254
-msgid "Newer Version Available"
-msgstr "Newer Version Available"
+#: AppParsers/ParseGerber.py:1001 AppParsers/ParseGerber.py:1101
+#: AppParsers/ParseHPGL2.py:274 AppParsers/ParseHPGL2.py:288
+#: AppParsers/ParseHPGL2.py:307 AppParsers/ParseHPGL2.py:331
+#: AppParsers/ParseHPGL2.py:366
+msgid "Coordinates missing, line ignored"
+msgstr "Coordinates missing, line ignored"
-#: FlatCAMApp.py:10256
-msgid "There is a newer version of FlatCAM available for download:"
-msgstr "There is a newer version of FlatCAM available for download:"
+#: AppParsers/ParseGerber.py:1003 AppParsers/ParseGerber.py:1103
+msgid "GERBER file might be CORRUPT. Check the file !!!"
+msgstr "GERBER file might be CORRUPT. Check the file !!!"
-#: FlatCAMApp.py:10260
-msgid "info"
-msgstr "info"
-
-#: FlatCAMApp.py:10288
+#: AppParsers/ParseGerber.py:1057
msgid ""
-"OpenGL canvas initialization failed. HW or HW configuration not supported."
-"Change the graphic engine to Legacy(2D) in Edit -> Preferences -> General "
-"tab.\n"
-"\n"
+"Region does not have enough points. File will be processed but there are "
+"parser errors. Line number"
msgstr ""
-"OpenGL canvas initialization failed. HW or HW configuration not supported."
-"Change the graphic engine to Legacy(2D) in Edit -> Preferences -> General "
-"tab.\n"
-"\n"
+"Region does not have enough points. File will be processed but there are "
+"parser errors. Line number"
-#: FlatCAMApp.py:10367
-msgid "All plots disabled."
-msgstr "All plots disabled."
+#: AppParsers/ParseGerber.py:1487 AppParsers/ParseHPGL2.py:401
+msgid "Gerber processing. Joining polygons"
+msgstr "Gerber processing. Joining polygons"
-#: FlatCAMApp.py:10374
-msgid "All non selected plots disabled."
-msgstr "All non selected plots disabled."
+#: AppParsers/ParseGerber.py:1504
+msgid "Gerber processing. Applying Gerber polarity."
+msgstr "Gerber processing. Applying Gerber polarity."
-#: FlatCAMApp.py:10381
-msgid "All plots enabled."
-msgstr "All plots enabled."
+#: AppParsers/ParseGerber.py:1564
+msgid "Gerber Line"
+msgstr "Gerber Line"
-#: FlatCAMApp.py:10387
-msgid "Selected plots enabled..."
-msgstr "Selected plots enabled..."
+#: AppParsers/ParseGerber.py:1564
+msgid "Gerber Line Content"
+msgstr "Gerber Line Content"
-#: FlatCAMApp.py:10395
-msgid "Selected plots disabled..."
-msgstr "Selected plots disabled..."
+#: AppParsers/ParseGerber.py:1566
+msgid "Gerber Parser ERROR"
+msgstr "Gerber Parser ERROR"
-#: FlatCAMApp.py:10428
-msgid "Enabling plots ..."
-msgstr "Enabling plots ..."
+#: AppParsers/ParseGerber.py:1956
+msgid "Gerber Scale done."
+msgstr "Gerber Scale done."
-#: FlatCAMApp.py:10480
-msgid "Disabling plots ..."
-msgstr "Disabling plots ..."
+#: AppParsers/ParseGerber.py:2048
+msgid "Gerber Offset done."
+msgstr "Gerber Offset done."
-#: FlatCAMApp.py:10503
-msgid "Working ..."
-msgstr "Working ..."
+#: AppParsers/ParseGerber.py:2124
+msgid "Gerber Mirror done."
+msgstr "Gerber Mirror done."
-#: FlatCAMApp.py:10558 flatcamGUI/FlatCAMGUI.py:703
-msgid "Red"
-msgstr "Red"
+#: AppParsers/ParseGerber.py:2198
+msgid "Gerber Skew done."
+msgstr "Gerber Skew done."
-#: FlatCAMApp.py:10560 flatcamGUI/FlatCAMGUI.py:706
-msgid "Blue"
-msgstr "Blue"
+#: AppParsers/ParseGerber.py:2260
+msgid "Gerber Rotate done."
+msgstr "Gerber Rotate done."
-#: FlatCAMApp.py:10563 flatcamGUI/FlatCAMGUI.py:709
-msgid "Yellow"
-msgstr "Yellow"
+#: AppParsers/ParseGerber.py:2417
+msgid "Gerber Buffer done."
+msgstr "Gerber Buffer done."
-#: FlatCAMApp.py:10565 flatcamGUI/FlatCAMGUI.py:712
-msgid "Green"
-msgstr "Green"
+#: AppParsers/ParseHPGL2.py:181
+msgid "HPGL2 processing. Parsing"
+msgstr "HPGL2 processing. Parsing"
-#: FlatCAMApp.py:10567 flatcamGUI/FlatCAMGUI.py:715
-msgid "Purple"
-msgstr "Purple"
+#: AppParsers/ParseHPGL2.py:413
+msgid "HPGL2 Line"
+msgstr "HPGL2 Line"
-#: FlatCAMApp.py:10569 flatcamGUI/FlatCAMGUI.py:718
-msgid "Brown"
-msgstr "Brown"
+#: AppParsers/ParseHPGL2.py:413
+msgid "HPGL2 Line Content"
+msgstr "HPGL2 Line Content"
-#: FlatCAMApp.py:10571 FlatCAMApp.py:10627 flatcamGUI/FlatCAMGUI.py:721
-msgid "White"
-msgstr "White"
+#: AppParsers/ParseHPGL2.py:414
+msgid "HPGL2 Parser ERROR"
+msgstr "HPGL2 Parser ERROR"
-#: FlatCAMApp.py:10573 flatcamGUI/FlatCAMGUI.py:724
-msgid "Black"
-msgstr "Black"
-
-#: FlatCAMApp.py:10576 flatcamGUI/FlatCAMGUI.py:729
-msgid "Custom"
-msgstr "Custom"
-
-#: FlatCAMApp.py:10586 flatcamGUI/FlatCAMGUI.py:737
-msgid "Default"
-msgstr "Default"
-
-#: FlatCAMApp.py:10610 flatcamGUI/FlatCAMGUI.py:734
-msgid "Opacity"
-msgstr "Opacity"
-
-#: FlatCAMApp.py:10612
-msgid "Set alpha level ..."
-msgstr "Set alpha level ..."
-
-#: FlatCAMApp.py:10612
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:220
-#: flatcamTools/ToolExtractDrills.py:164 flatcamTools/ToolExtractDrills.py:285
-#: flatcamTools/ToolPunchGerber.py:192 flatcamTools/ToolPunchGerber.py:308
-#: flatcamTools/ToolTransform.py:357
-msgid "Value"
-msgstr "Value"
-
-#: FlatCAMApp.py:10666
-msgid "Saving FlatCAM Project"
-msgstr "Saving FlatCAM Project"
-
-#: FlatCAMApp.py:10687 FlatCAMApp.py:10723
-msgid "Project saved to"
-msgstr "Project saved to"
-
-#: FlatCAMApp.py:10694
-msgid "The object is used by another application."
-msgstr "The object is used by another application."
-
-#: FlatCAMApp.py:10708
-msgid "Failed to verify project file"
-msgstr "Failed to verify project file"
-
-#: FlatCAMApp.py:10708 FlatCAMApp.py:10716 FlatCAMApp.py:10726
-msgid "Retry to save it."
-msgstr "Retry to save it."
-
-#: FlatCAMApp.py:10716 FlatCAMApp.py:10726
-msgid "Failed to parse saved project file"
-msgstr "Failed to parse saved project file"
-
-#: FlatCAMBookmark.py:57 FlatCAMBookmark.py:84
-msgid "Title"
-msgstr "Title"
-
-#: FlatCAMBookmark.py:58 FlatCAMBookmark.py:88
-msgid "Web Link"
-msgstr "Web Link"
-
-#: FlatCAMBookmark.py:62
-msgid ""
-"Index.\n"
-"The rows in gray color will populate the Bookmarks menu.\n"
-"The number of gray colored rows is set in Preferences."
-msgstr ""
-"Index.\n"
-"The rows in gray color will populate the Bookmarks menu.\n"
-"The number of gray colored rows is set in Preferences."
-
-#: FlatCAMBookmark.py:66
-msgid ""
-"Description of the link that is set as an menu action.\n"
-"Try to keep it short because it is installed as a menu item."
-msgstr ""
-"Description of the link that is set as an menu action.\n"
-"Try to keep it short because it is installed as a menu item."
-
-#: FlatCAMBookmark.py:69
-msgid "Web Link. E.g: https://your_website.org "
-msgstr "Web Link. E.g: https://your_website.org "
-
-#: FlatCAMBookmark.py:78
-msgid "New Bookmark"
-msgstr "New Bookmark"
-
-#: FlatCAMBookmark.py:97
-msgid "Add Entry"
-msgstr "Add Entry"
-
-#: FlatCAMBookmark.py:98
-msgid "Remove Entry"
-msgstr "Remove Entry"
-
-#: FlatCAMBookmark.py:99
-msgid "Export List"
-msgstr "Export List"
-
-#: FlatCAMBookmark.py:100
-msgid "Import List"
-msgstr "Import List"
-
-#: FlatCAMBookmark.py:190
-msgid "Title entry is empty."
-msgstr "Title entry is empty."
-
-#: FlatCAMBookmark.py:199
-msgid "Web link entry is empty."
-msgstr "Web link entry is empty."
-
-#: FlatCAMBookmark.py:207
-msgid "Either the Title or the Weblink already in the table."
-msgstr "Either the Title or the Weblink already in the table."
-
-#: FlatCAMBookmark.py:227
-msgid "Bookmark added."
-msgstr "Bookmark added."
-
-#: FlatCAMBookmark.py:244
-msgid "This bookmark can not be removed"
-msgstr "This bookmark can not be removed"
-
-#: FlatCAMBookmark.py:275
-msgid "Bookmark removed."
-msgstr "Bookmark removed."
-
-#: FlatCAMBookmark.py:290
-msgid "Export FlatCAM Bookmarks"
-msgstr "Export FlatCAM Bookmarks"
-
-#: FlatCAMBookmark.py:293 flatcamGUI/FlatCAMGUI.py:524
-msgid "Bookmarks"
-msgstr "Bookmarks"
-
-#: FlatCAMBookmark.py:319 FlatCAMBookmark.py:349
-msgid "Could not load bookmarks file."
-msgstr "Could not load bookmarks file."
-
-#: FlatCAMBookmark.py:329
-msgid "Failed to write bookmarks to file."
-msgstr "Failed to write bookmarks to file."
-
-#: FlatCAMBookmark.py:331
-msgid "Exported bookmarks to"
-msgstr "Exported bookmarks to"
-
-#: FlatCAMBookmark.py:337
-msgid "Import FlatCAM Bookmarks"
-msgstr "Import FlatCAM Bookmarks"
-
-#: FlatCAMBookmark.py:356
-msgid "Imported Bookmarks from"
-msgstr "Imported Bookmarks from"
-
-#: FlatCAMCommon.py:29
-msgid "The user requested a graceful exit of the current task."
-msgstr "The user requested a graceful exit of the current task."
-
-#: FlatCAMDB.py:86
-msgid "Add Geometry Tool in DB"
-msgstr "Add Geometry Tool in DB"
-
-#: FlatCAMDB.py:88 FlatCAMDB.py:1643
-msgid ""
-"Add a new tool in the Tools Database.\n"
-"It will be used in the Geometry UI.\n"
-"You can edit it after it is added."
-msgstr ""
-"Add a new tool in the Tools Database.\n"
-"It will be used in the Geometry UI.\n"
-"You can edit it after it is added."
-
-#: FlatCAMDB.py:102 FlatCAMDB.py:1657
-msgid "Delete Tool from DB"
-msgstr "Delete Tool from DB"
-
-#: FlatCAMDB.py:104 FlatCAMDB.py:1659
-msgid "Remove a selection of tools in the Tools Database."
-msgstr "Remove a selection of tools in the Tools Database."
-
-#: FlatCAMDB.py:108 FlatCAMDB.py:1663
-msgid "Export DB"
-msgstr "Export DB"
-
-#: FlatCAMDB.py:110 FlatCAMDB.py:1665
-msgid "Save the Tools Database to a custom text file."
-msgstr "Save the Tools Database to a custom text file."
-
-#: FlatCAMDB.py:114 FlatCAMDB.py:1669
-msgid "Import DB"
-msgstr "Import DB"
-
-#: FlatCAMDB.py:116 FlatCAMDB.py:1671
-msgid "Load the Tools Database information's from a custom text file."
-msgstr "Load the Tools Database information's from a custom text file."
-
-#: FlatCAMDB.py:120 FlatCAMDB.py:1681
-msgid "Add Tool from Tools DB"
-msgstr "Add Tool from Tools DB"
-
-#: FlatCAMDB.py:122 FlatCAMDB.py:1683
-msgid ""
-"Add a new tool in the Tools Table of the\n"
-"active Geometry object after selecting a tool\n"
-"in the Tools Database."
-msgstr ""
-"Add a new tool in the Tools Table of the\n"
-"active Geometry object after selecting a tool\n"
-"in the Tools Database."
-
-#: FlatCAMDB.py:158 FlatCAMDB.py:833 FlatCAMDB.py:1087
-msgid "Tool Name"
-msgstr "Tool Name"
-
-#: FlatCAMDB.py:159 FlatCAMDB.py:835 FlatCAMDB.py:1100
-#: flatcamEditors/FlatCAMExcEditor.py:1604 flatcamGUI/ObjectUI.py:1345
-#: flatcamGUI/ObjectUI.py:1583
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:132
-#: flatcamTools/ToolNCC.py:278 flatcamTools/ToolNCC.py:287
-#: flatcamTools/ToolPaint.py:261
-msgid "Tool Dia"
-msgstr "Tool Dia"
-
-#: FlatCAMDB.py:160 FlatCAMDB.py:837 FlatCAMDB.py:1281
-#: flatcamGUI/ObjectUI.py:1558
-msgid "Tool Offset"
-msgstr "Tool Offset"
-
-#: FlatCAMDB.py:161 FlatCAMDB.py:839 FlatCAMDB.py:1298
-msgid "Custom Offset"
-msgstr "Custom Offset"
-
-#: FlatCAMDB.py:162 FlatCAMDB.py:841 FlatCAMDB.py:1265
-#: flatcamGUI/ObjectUI.py:309
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:67
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:53
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:62
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:72
-#: flatcamTools/ToolNCC.py:213 flatcamTools/ToolNCC.py:227
-#: flatcamTools/ToolPaint.py:196
-msgid "Tool Type"
-msgstr "Tool Type"
-
-#: FlatCAMDB.py:163 FlatCAMDB.py:843 FlatCAMDB.py:1113
-msgid "Tool Shape"
-msgstr "Tool Shape"
-
-#: FlatCAMDB.py:164 FlatCAMDB.py:846 FlatCAMDB.py:1129
-#: flatcamGUI/ObjectUI.py:350 flatcamGUI/ObjectUI.py:900
-#: flatcamGUI/ObjectUI.py:1703 flatcamGUI/ObjectUI.py:2336
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:93
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:48
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:107
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:78
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:58
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:105
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:113
-#: flatcamTools/ToolCalculators.py:114 flatcamTools/ToolCutOut.py:138
-#: flatcamTools/ToolNCC.py:260 flatcamTools/ToolNCC.py:268
-#: flatcamTools/ToolPaint.py:243
-msgid "Cut Z"
-msgstr "Cut Z"
-
-#: FlatCAMDB.py:165 FlatCAMDB.py:848 FlatCAMDB.py:1143
-msgid "MultiDepth"
-msgstr "MultiDepth"
-
-#: FlatCAMDB.py:166 FlatCAMDB.py:850 FlatCAMDB.py:1156
-msgid "DPP"
-msgstr "DPP"
-
-#: FlatCAMDB.py:167 FlatCAMDB.py:852 FlatCAMDB.py:1312
-msgid "V-Dia"
-msgstr "V-Dia"
-
-#: FlatCAMDB.py:168 FlatCAMDB.py:854 FlatCAMDB.py:1326
-msgid "V-Angle"
-msgstr "V-Angle"
-
-#: FlatCAMDB.py:169 FlatCAMDB.py:856 FlatCAMDB.py:1170
-#: flatcamGUI/ObjectUI.py:946 flatcamGUI/ObjectUI.py:1750
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:134
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:101
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:61
-#: flatcamObjects/FlatCAMExcellon.py:1316
-#: flatcamObjects/FlatCAMGeometry.py:1606 flatcamTools/ToolCalibration.py:74
-msgid "Travel Z"
-msgstr "Travel Z"
-
-#: FlatCAMDB.py:170 FlatCAMDB.py:858
-msgid "FR"
-msgstr "FR"
-
-#: FlatCAMDB.py:171 FlatCAMDB.py:860
-msgid "FR Z"
-msgstr "FR Z"
-
-#: FlatCAMDB.py:172 FlatCAMDB.py:862 FlatCAMDB.py:1340
-msgid "FR Rapids"
-msgstr "FR Rapids"
-
-#: FlatCAMDB.py:173 FlatCAMDB.py:864 FlatCAMDB.py:1213
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:222
-msgid "Spindle Speed"
-msgstr "Spindle Speed"
-
-#: FlatCAMDB.py:174 FlatCAMDB.py:866 FlatCAMDB.py:1228
-#: flatcamGUI/ObjectUI.py:1064 flatcamGUI/ObjectUI.py:1857
-msgid "Dwell"
-msgstr "Dwell"
-
-#: FlatCAMDB.py:175 FlatCAMDB.py:868 FlatCAMDB.py:1241
-msgid "Dwelltime"
-msgstr "Dwelltime"
-
-#: FlatCAMDB.py:176 FlatCAMDB.py:870 flatcamGUI/ObjectUI.py:2014
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:257
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:254
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:237
-#: flatcamTools/ToolSolderPaste.py:335
-msgid "Preprocessor"
-msgstr "Preprocessor"
-
-#: FlatCAMDB.py:177 FlatCAMDB.py:872 FlatCAMDB.py:1356
-msgid "ExtraCut"
-msgstr "ExtraCut"
-
-#: FlatCAMDB.py:178 FlatCAMDB.py:874 FlatCAMDB.py:1371
-msgid "E-Cut Length"
-msgstr "E-Cut Length"
-
-#: FlatCAMDB.py:179 FlatCAMDB.py:876
-msgid "Toolchange"
-msgstr "Toolchange"
-
-#: FlatCAMDB.py:180 FlatCAMDB.py:878
-msgid "Toolchange XY"
-msgstr "Toolchange XY"
-
-#: FlatCAMDB.py:181 FlatCAMDB.py:880
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:160
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:131
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:98
-#: flatcamTools/ToolCalibration.py:111
-msgid "Toolchange Z"
-msgstr "Toolchange Z"
-
-#: FlatCAMDB.py:182 FlatCAMDB.py:882 flatcamGUI/ObjectUI.py:1193
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:69
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:54
-msgid "Start Z"
-msgstr "Start Z"
-
-#: FlatCAMDB.py:183 FlatCAMDB.py:885
-msgid "End Z"
-msgstr "End Z"
-
-#: FlatCAMDB.py:187
-msgid "Tool Index."
-msgstr "Tool Index."
-
-#: FlatCAMDB.py:189 FlatCAMDB.py:1089
-msgid ""
-"Tool name.\n"
-"This is not used in the app, it's function\n"
-"is to serve as a note for the user."
-msgstr ""
-"Tool name.\n"
-"This is not used in the app, it's function\n"
-"is to serve as a note for the user."
-
-#: FlatCAMDB.py:193 FlatCAMDB.py:1102
-msgid "Tool Diameter."
-msgstr "Tool Diameter."
-
-#: FlatCAMDB.py:195 FlatCAMDB.py:1283
-msgid ""
-"Tool Offset.\n"
-"Can be of a few types:\n"
-"Path = zero offset\n"
-"In = offset inside by half of tool diameter\n"
-"Out = offset outside by half of tool diameter\n"
-"Custom = custom offset using the Custom Offset value"
-msgstr ""
-"Tool Offset.\n"
-"Can be of a few types:\n"
-"Path = zero offset\n"
-"In = offset inside by half of tool diameter\n"
-"Out = offset outside by half of tool diameter\n"
-"Custom = custom offset using the Custom Offset value"
-
-#: FlatCAMDB.py:202 FlatCAMDB.py:1300
-msgid ""
-"Custom Offset.\n"
-"A value to be used as offset from the current path."
-msgstr ""
-"Custom Offset.\n"
-"A value to be used as offset from the current path."
-
-#: FlatCAMDB.py:205 FlatCAMDB.py:1267
-msgid ""
-"Tool Type.\n"
-"Can be:\n"
-"Iso = isolation cut\n"
-"Rough = rough cut, low feedrate, multiple passes\n"
-"Finish = finishing cut, high feedrate"
-msgstr ""
-"Tool Type.\n"
-"Can be:\n"
-"Iso = isolation cut\n"
-"Rough = rough cut, low feedrate, multiple passes\n"
-"Finish = finishing cut, high feedrate"
-
-#: FlatCAMDB.py:211 FlatCAMDB.py:1115
-msgid ""
-"Tool Shape. \n"
-"Can be:\n"
-"C1 ... C4 = circular tool with x flutes\n"
-"B = ball tip milling tool\n"
-"V = v-shape milling tool"
-msgstr ""
-"Tool Shape. \n"
-"Can be:\n"
-"C1 ... C4 = circular tool with x flutes\n"
-"B = ball tip milling tool\n"
-"V = v-shape milling tool"
-
-#: FlatCAMDB.py:217 FlatCAMDB.py:1131
-msgid ""
-"Cutting Depth.\n"
-"The depth at which to cut into material."
-msgstr ""
-"Cutting Depth.\n"
-"The depth at which to cut into material."
-
-#: FlatCAMDB.py:220 FlatCAMDB.py:1145
-msgid ""
-"Multi Depth.\n"
-"Selecting this will allow cutting in multiple passes,\n"
-"each pass adding a DPP parameter depth."
-msgstr ""
-"Multi Depth.\n"
-"Selecting this will allow cutting in multiple passes,\n"
-"each pass adding a DPP parameter depth."
-
-#: FlatCAMDB.py:224 FlatCAMDB.py:1158
-msgid ""
-"DPP. Depth per Pass.\n"
-"The value used to cut into material on each pass."
-msgstr ""
-"DPP. Depth per Pass.\n"
-"The value used to cut into material on each pass."
-
-#: FlatCAMDB.py:227 FlatCAMDB.py:1314
-msgid ""
-"V-Dia.\n"
-"Diameter of the tip for V-Shape Tools."
-msgstr ""
-"V-Dia.\n"
-"Diameter of the tip for V-Shape Tools."
-
-#: FlatCAMDB.py:230 FlatCAMDB.py:1328
-msgid ""
-"V-Agle.\n"
-"Angle at the tip for the V-Shape Tools."
-msgstr ""
-"V-Agle.\n"
-"Angle at the tip for the V-Shape Tools."
-
-#: FlatCAMDB.py:233 FlatCAMDB.py:1172
-msgid ""
-"Clearance Height.\n"
-"Height at which the milling bit will travel between cuts,\n"
-"above the surface of the material, avoiding all fixtures."
-msgstr ""
-"Clearance Height.\n"
-"Height at which the milling bit will travel between cuts,\n"
-"above the surface of the material, avoiding all fixtures."
-
-#: FlatCAMDB.py:237
-msgid ""
-"FR. Feedrate\n"
-"The speed on XY plane used while cutting into material."
-msgstr ""
-"FR. Feedrate\n"
-"The speed on XY plane used while cutting into material."
-
-#: FlatCAMDB.py:240
-msgid ""
-"FR Z. Feedrate Z\n"
-"The speed on Z plane."
-msgstr ""
-"FR Z. Feedrate Z\n"
-"The speed on Z plane."
-
-#: FlatCAMDB.py:243 FlatCAMDB.py:1342
-msgid ""
-"FR Rapids. Feedrate Rapids\n"
-"Speed used while moving as fast as possible.\n"
-"This is used only by some devices that can't use\n"
-"the G0 g-code command. Mostly 3D printers."
-msgstr ""
-"FR Rapids. Feedrate Rapids\n"
-"Speed used while moving as fast as possible.\n"
-"This is used only by some devices that can't use\n"
-"the G0 g-code command. Mostly 3D printers."
-
-#: FlatCAMDB.py:248 FlatCAMDB.py:1215
-msgid ""
-"Spindle Speed.\n"
-"If it's left empty it will not be used.\n"
-"The speed of the spindle in RPM."
-msgstr ""
-"Spindle Speed.\n"
-"If it's left empty it will not be used.\n"
-"The speed of the spindle in RPM."
-
-#: FlatCAMDB.py:252 FlatCAMDB.py:1230
-msgid ""
-"Dwell.\n"
-"Check this if a delay is needed to allow\n"
-"the spindle motor to reach it's set speed."
-msgstr ""
-"Dwell.\n"
-"Check this if a delay is needed to allow\n"
-"the spindle motor to reach it's set speed."
-
-#: FlatCAMDB.py:256 FlatCAMDB.py:1243
-msgid ""
-"Dwell Time.\n"
-"A delay used to allow the motor spindle reach it's set speed."
-msgstr ""
-"Dwell Time.\n"
-"A delay used to allow the motor spindle reach it's set speed."
-
-#: FlatCAMDB.py:259
-msgid ""
-"Preprocessor.\n"
-"A selection of files that will alter the generated G-code\n"
-"to fit for a number of use cases."
-msgstr ""
-"Preprocessor.\n"
-"A selection of files that will alter the generated G-code\n"
-"to fit for a number of use cases."
-
-#: FlatCAMDB.py:263 FlatCAMDB.py:1358
-msgid ""
-"Extra Cut.\n"
-"If checked, after a isolation is finished an extra cut\n"
-"will be added where the start and end of isolation meet\n"
-"such as that this point is covered by this extra cut to\n"
-"ensure a complete isolation."
-msgstr ""
-"Extra Cut.\n"
-"If checked, after a isolation is finished an extra cut\n"
-"will be added where the start and end of isolation meet\n"
-"such as that this point is covered by this extra cut to\n"
-"ensure a complete isolation."
-
-#: FlatCAMDB.py:269 FlatCAMDB.py:1373
-msgid ""
-"Extra Cut length.\n"
-"If checked, after a isolation is finished an extra cut\n"
-"will be added where the start and end of isolation meet\n"
-"such as that this point is covered by this extra cut to\n"
-"ensure a complete isolation. This is the length of\n"
-"the extra cut."
-msgstr ""
-"Extra Cut length.\n"
-"If checked, after a isolation is finished an extra cut\n"
-"will be added where the start and end of isolation meet\n"
-"such as that this point is covered by this extra cut to\n"
-"ensure a complete isolation. This is the length of\n"
-"the extra cut."
-
-#: FlatCAMDB.py:276
-msgid ""
-"Toolchange.\n"
-"It will create a toolchange event.\n"
-"The kind of toolchange is determined by\n"
-"the preprocessor file."
-msgstr ""
-"Toolchange.\n"
-"It will create a toolchange event.\n"
-"The kind of toolchange is determined by\n"
-"the preprocessor file."
-
-#: FlatCAMDB.py:281
-msgid ""
-"Toolchange XY.\n"
-"A set of coordinates in the format (x, y).\n"
-"Will determine the cartesian position of the point\n"
-"where the tool change event take place."
-msgstr ""
-"Toolchange XY.\n"
-"A set of coordinates in the format (x, y).\n"
-"Will determine the cartesian position of the point\n"
-"where the tool change event take place."
-
-#: FlatCAMDB.py:286
-msgid ""
-"Toolchange Z.\n"
-"The position on Z plane where the tool change event take place."
-msgstr ""
-"Toolchange Z.\n"
-"The position on Z plane where the tool change event take place."
-
-#: FlatCAMDB.py:289
-msgid ""
-"Start Z.\n"
-"If it's left empty it will not be used.\n"
-"A position on Z plane to move immediately after job start."
-msgstr ""
-"Start Z.\n"
-"If it's left empty it will not be used.\n"
-"A position on Z plane to move immediately after job start."
-
-#: FlatCAMDB.py:293
-msgid ""
-"End Z.\n"
-"A position on Z plane to move immediately after job stop."
-msgstr ""
-"End Z.\n"
-"A position on Z plane to move immediately after job stop."
-
-#: FlatCAMDB.py:305 FlatCAMDB.py:682 FlatCAMDB.py:716 FlatCAMDB.py:1898
-#: FlatCAMDB.py:2144 FlatCAMDB.py:2178
-msgid "Could not load Tools DB file."
-msgstr "Could not load Tools DB file."
-
-#: FlatCAMDB.py:313 FlatCAMDB.py:724 FlatCAMDB.py:1906 FlatCAMDB.py:2186
-msgid "Failed to parse Tools DB file."
-msgstr "Failed to parse Tools DB file."
-
-#: FlatCAMDB.py:316 FlatCAMDB.py:727 FlatCAMDB.py:1909 FlatCAMDB.py:2189
-msgid "Loaded FlatCAM Tools DB from"
-msgstr "Loaded FlatCAM Tools DB from"
-
-#: FlatCAMDB.py:322 FlatCAMDB.py:1823
-msgid "Add to DB"
-msgstr "Add to DB"
-
-#: FlatCAMDB.py:324 FlatCAMDB.py:1826
-msgid "Copy from DB"
-msgstr "Copy from DB"
-
-#: FlatCAMDB.py:326 FlatCAMDB.py:1829
-msgid "Delete from DB"
-msgstr "Delete from DB"
-
-#: FlatCAMDB.py:603 FlatCAMDB.py:2044
-msgid "Tool added to DB."
-msgstr "Tool added to DB."
-
-#: FlatCAMDB.py:624 FlatCAMDB.py:2077
-msgid "Tool copied from Tools DB."
-msgstr "Tool copied from Tools DB."
-
-#: FlatCAMDB.py:642 FlatCAMDB.py:2104
-msgid "Tool removed from Tools DB."
-msgstr "Tool removed from Tools DB."
-
-#: FlatCAMDB.py:653 FlatCAMDB.py:2115
-msgid "Export Tools Database"
-msgstr "Export Tools Database"
-
-#: FlatCAMDB.py:656 FlatCAMDB.py:2118
-msgid "Tools_Database"
-msgstr "Tools_Database"
-
-#: FlatCAMDB.py:693 FlatCAMDB.py:696 FlatCAMDB.py:748 FlatCAMDB.py:2155
-#: FlatCAMDB.py:2158 FlatCAMDB.py:2211
-msgid "Failed to write Tools DB to file."
-msgstr "Failed to write Tools DB to file."
-
-#: FlatCAMDB.py:699 FlatCAMDB.py:2161
-msgid "Exported Tools DB to"
-msgstr "Exported Tools DB to"
-
-#: FlatCAMDB.py:706 FlatCAMDB.py:2168
-msgid "Import FlatCAM Tools DB"
-msgstr "Import FlatCAM Tools DB"
-
-#: FlatCAMDB.py:752 FlatCAMDB.py:2215
-msgid "Saved Tools DB."
-msgstr "Saved Tools DB."
-
-#: FlatCAMDB.py:899 FlatCAMDB.py:2405
-msgid "No Tool/row selected in the Tools Database table"
-msgstr "No Tool/row selected in the Tools Database table"
-
-#: FlatCAMDB.py:917 FlatCAMDB.py:2422
-msgid "Cancelled adding tool from DB."
-msgstr "Cancelled adding tool from DB."
-
-#: FlatCAMDB.py:1018
-msgid "Basic Geo Parameters"
-msgstr "Basic Geo Parameters"
-
-#: FlatCAMDB.py:1030
-msgid "Advanced Geo Parameters"
-msgstr "Advanced Geo Parameters"
-
-#: FlatCAMDB.py:1042
-msgid "NCC Parameters"
-msgstr "NCC Parameters"
-
-#: FlatCAMDB.py:1054
-msgid "Paint Parameters"
-msgstr "Paint Parameters"
-
-#: FlatCAMDB.py:1185 flatcamGUI/ObjectUI.py:967 flatcamGUI/ObjectUI.py:1769
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:185
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:148
-#: flatcamTools/ToolSolderPaste.py:253
-msgid "Feedrate X-Y"
-msgstr "Feedrate X-Y"
-
-#: FlatCAMDB.py:1187
-msgid ""
-"Feedrate X-Y. Feedrate\n"
-"The speed on XY plane used while cutting into material."
-msgstr ""
-"Feedrate X-Y. Feedrate\n"
-"The speed on XY plane used while cutting into material."
-
-#: FlatCAMDB.py:1199 flatcamGUI/ObjectUI.py:982 flatcamGUI/ObjectUI.py:1783
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:207
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:200
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:161
-#: flatcamTools/ToolSolderPaste.py:265
-msgid "Feedrate Z"
-msgstr "Feedrate Z"
-
-#: FlatCAMDB.py:1201
-msgid ""
-"Feedrate Z\n"
-"The speed on Z plane."
-msgstr ""
-"Feedrate Z\n"
-"The speed on Z plane."
-
-#: FlatCAMDB.py:1399 flatcamGUI/ObjectUI.py:845
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:46
-#: flatcamTools/ToolNCC.py:341
-msgid "Operation"
-msgstr "Operation"
-
-#: FlatCAMDB.py:1401 flatcamTools/ToolNCC.py:343
-msgid ""
-"The 'Operation' can be:\n"
-"- Isolation -> will ensure that the non-copper clearing is always complete.\n"
-"If it's not successful then the non-copper clearing will fail, too.\n"
-"- Clear -> the regular non-copper clearing."
-msgstr ""
-"The 'Operation' can be:\n"
-"- Isolation -> will ensure that the non-copper clearing is always complete.\n"
-"If it's not successful then the non-copper clearing will fail, too.\n"
-"- Clear -> the regular non-copper clearing."
-
-#: FlatCAMDB.py:1408 flatcamEditors/FlatCAMGrbEditor.py:2742
-#: flatcamGUI/GUIElements.py:2577 flatcamTools/ToolNCC.py:350
-msgid "Clear"
-msgstr "Clear"
-
-#: FlatCAMDB.py:1409 flatcamTools/ToolNCC.py:351 flatcamTools/ToolNCC.py:1623
-msgid "Isolation"
-msgstr "Isolation"
-
-#: FlatCAMDB.py:1417 flatcamGUI/ObjectUI.py:409 flatcamGUI/ObjectUI.py:867
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:62
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:56
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:95
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:137
-#: flatcamTools/ToolNCC.py:359
-msgid "Milling Type"
-msgstr "Milling Type"
-
-#: FlatCAMDB.py:1419 FlatCAMDB.py:1427
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:139
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:147
-#: flatcamTools/ToolNCC.py:361 flatcamTools/ToolNCC.py:369
-msgid ""
-"Milling type when the selected tool is of type: 'iso_op':\n"
-"- climb / best for precision milling and to reduce tool usage\n"
-"- conventional / useful when there is no backlash compensation"
-msgstr ""
-"Milling type when the selected tool is of type: 'iso_op':\n"
-"- climb / best for precision milling and to reduce tool usage\n"
-"- conventional / useful when there is no backlash compensation"
-
-#: FlatCAMDB.py:1424 flatcamGUI/ObjectUI.py:415
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:62
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:102
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:144
-#: flatcamTools/ToolNCC.py:366
-msgid "Climb"
-msgstr "Climb"
-
-#: FlatCAMDB.py:1425 flatcamGUI/ObjectUI.py:416
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:63
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:103
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:145
-#: flatcamTools/ToolNCC.py:367
-msgid "Conventional"
-msgstr "Conventional"
-
-#: FlatCAMDB.py:1437 FlatCAMDB.py:1546 flatcamEditors/FlatCAMGeoEditor.py:451
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:182
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:163
-#: flatcamTools/ToolNCC.py:382 flatcamTools/ToolPaint.py:329
-msgid "Overlap"
-msgstr "Overlap"
-
-#: FlatCAMDB.py:1439 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:184
-#: flatcamTools/ToolNCC.py:384
-msgid ""
-"How much (percentage) of the tool width to overlap each tool pass.\n"
-"Adjust the value starting with lower values\n"
-"and increasing it if areas that should be cleared are still \n"
-"not cleared.\n"
-"Lower values = faster processing, faster execution on CNC.\n"
-"Higher values = slow processing and slow execution on CNC\n"
-"due of too many paths."
-msgstr ""
-"How much (percentage) of the tool width to overlap each tool pass.\n"
-"Adjust the value starting with lower values\n"
-"and increasing it if areas that should be cleared are still \n"
-"not cleared.\n"
-"Lower values = faster processing, faster execution on CNC.\n"
-"Higher values = slow processing and slow execution on CNC\n"
-"due of too many paths."
-
-#: FlatCAMDB.py:1458 FlatCAMDB.py:1567 flatcamEditors/FlatCAMGeoEditor.py:471
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:72
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:229
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:59
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:45
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:53
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:183
-#: flatcamTools/ToolCopperThieving.py:111
-#: flatcamTools/ToolCopperThieving.py:362 flatcamTools/ToolCutOut.py:190
-#: flatcamTools/ToolFiducials.py:172 flatcamTools/ToolInvertGerber.py:88
-#: flatcamTools/ToolInvertGerber.py:96 flatcamTools/ToolNCC.py:403
-#: flatcamTools/ToolPaint.py:350
-msgid "Margin"
-msgstr "Margin"
-
-#: FlatCAMDB.py:1460
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:74
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:61
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204
-#: flatcamTools/ToolCopperThieving.py:113 flatcamTools/ToolFiducials.py:174
-#: flatcamTools/ToolFiducials.py:237 flatcamTools/ToolNCC.py:405
-msgid "Bounding box margin."
-msgstr "Bounding box margin."
-
-#: FlatCAMDB.py:1471 FlatCAMDB.py:1582 flatcamEditors/FlatCAMGeoEditor.py:485
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:105
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:198
-#: flatcamTools/ToolExtractDrills.py:128 flatcamTools/ToolNCC.py:416
-#: flatcamTools/ToolPaint.py:365 flatcamTools/ToolPunchGerber.py:139
-msgid "Method"
-msgstr "Method"
-
-#: FlatCAMDB.py:1473 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:217
-#: flatcamTools/ToolNCC.py:418
-msgid ""
-"Algorithm for copper clearing:\n"
-"- Standard: Fixed step inwards.\n"
-"- Seed-based: Outwards from seed.\n"
-"- Line-based: Parallel lines."
-msgstr ""
-"Algorithm for copper clearing:\n"
-"- Standard: Fixed step inwards.\n"
-"- Seed-based: Outwards from seed.\n"
-"- Line-based: Parallel lines."
-
-#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 flatcamEditors/FlatCAMGeoEditor.py:499
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
-#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolNCC.py:2395
-#: flatcamTools/ToolNCC.py:2424 flatcamTools/ToolNCC.py:2693
-#: flatcamTools/ToolNCC.py:2725 flatcamTools/ToolPaint.py:390
-#: flatcamTools/ToolPaint.py:1834 tclCommands/TclCommandCopperClear.py:126
-#: tclCommands/TclCommandCopperClear.py:134 tclCommands/TclCommandPaint.py:125
-msgid "Standard"
-msgstr "Standard"
-
-#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 defaults.py:395 defaults.py:427
-#: flatcamEditors/FlatCAMGeoEditor.py:499
-#: flatcamEditors/FlatCAMGeoEditor.py:569
-#: flatcamEditors/FlatCAMGeoEditor.py:5152
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
-#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolNCC.py:2401
-#: flatcamTools/ToolNCC.py:2429 flatcamTools/ToolNCC.py:2699
-#: flatcamTools/ToolNCC.py:2731 flatcamTools/ToolPaint.py:390
-#: flatcamTools/ToolPaint.py:1848 tclCommands/TclCommandCopperClear.py:128
-#: tclCommands/TclCommandCopperClear.py:136 tclCommands/TclCommandPaint.py:127
-msgid "Seed"
-msgstr "Seed"
-
-#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 flatcamEditors/FlatCAMGeoEditor.py:499
-#: flatcamEditors/FlatCAMGeoEditor.py:5156
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
-#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolPaint.py:390
-#: flatcamTools/ToolPaint.py:699 flatcamTools/ToolPaint.py:1862
-#: tclCommands/TclCommandCopperClear.py:130 tclCommands/TclCommandPaint.py:129
-msgid "Lines"
-msgstr "Lines"
-
-#: FlatCAMDB.py:1489 FlatCAMDB.py:1607
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:237
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:224
-#: flatcamTools/ToolNCC.py:439 flatcamTools/ToolPaint.py:401
-msgid "Connect"
-msgstr "Connect"
-
-#: FlatCAMDB.py:1493 FlatCAMDB.py:1610 flatcamEditors/FlatCAMGeoEditor.py:508
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:239
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:226
-#: flatcamTools/ToolNCC.py:443 flatcamTools/ToolPaint.py:404
-msgid ""
-"Draw lines between resulting\n"
-"segments to minimize tool lifts."
-msgstr ""
-"Draw lines between resulting\n"
-"segments to minimize tool lifts."
-
-#: FlatCAMDB.py:1499 FlatCAMDB.py:1614
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:246
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:232
-#: flatcamTools/ToolNCC.py:449 flatcamTools/ToolPaint.py:408
-msgid "Contour"
-msgstr "Contour"
-
-#: FlatCAMDB.py:1503 FlatCAMDB.py:1617 flatcamEditors/FlatCAMGeoEditor.py:518
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:248
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:234
-#: flatcamTools/ToolNCC.py:453 flatcamTools/ToolPaint.py:411
-msgid ""
-"Cut around the perimeter of the polygon\n"
-"to trim rough edges."
-msgstr ""
-"Cut around the perimeter of the polygon\n"
-"to trim rough edges."
-
-#: FlatCAMDB.py:1509 flatcamEditors/FlatCAMGeoEditor.py:612
-#: flatcamEditors/FlatCAMGrbEditor.py:5311 flatcamGUI/ObjectUI.py:143
-#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:255
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:142
-#: flatcamTools/ToolNCC.py:459 flatcamTools/ToolTransform.py:28
-msgid "Offset"
-msgstr "Offset"
-
-#: FlatCAMDB.py:1513 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:257
-#: flatcamTools/ToolNCC.py:463
-msgid ""
-"If used, it will add an offset to the copper features.\n"
-"The copper clearing will finish to a distance\n"
-"from the copper features.\n"
-"The value can be between 0 and 10 FlatCAM units."
-msgstr ""
-"If used, it will add an offset to the copper features.\n"
-"The copper clearing will finish to a distance\n"
-"from the copper features.\n"
-"The value can be between 0 and 10 FlatCAM units."
-
-#: FlatCAMDB.py:1548 flatcamEditors/FlatCAMGeoEditor.py:453
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:165
-#: flatcamTools/ToolPaint.py:331
-msgid ""
-"How much (percentage) of the tool width to overlap each tool pass.\n"
-"Adjust the value starting with lower values\n"
-"and increasing it if areas that should be painted are still \n"
-"not painted.\n"
-"Lower values = faster processing, faster execution on CNC.\n"
-"Higher values = slow processing and slow execution on CNC\n"
-"due of too many paths."
-msgstr ""
-"How much (percentage) of the tool width to overlap each tool pass.\n"
-"Adjust the value starting with lower values\n"
-"and increasing it if areas that should be painted are still \n"
-"not painted.\n"
-"Lower values = faster processing, faster execution on CNC.\n"
-"Higher values = slow processing and slow execution on CNC\n"
-"due of too many paths."
-
-#: FlatCAMDB.py:1569 flatcamEditors/FlatCAMGeoEditor.py:473
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:185
-#: flatcamTools/ToolPaint.py:352
-msgid ""
-"Distance by which to avoid\n"
-"the edges of the polygon to\n"
-"be painted."
-msgstr ""
-"Distance by which to avoid\n"
-"the edges of the polygon to\n"
-"be painted."
-
-#: FlatCAMDB.py:1584 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:200
-#: flatcamTools/ToolPaint.py:367
-msgid ""
-"Algorithm for painting:\n"
-"- Standard: Fixed step inwards.\n"
-"- Seed-based: Outwards from seed.\n"
-"- Line-based: Parallel lines.\n"
-"- Laser-lines: Active only for Gerber objects.\n"
-"Will create lines that follow the traces.\n"
-"- Combo: In case of failure a new method will be picked from the above\n"
-"in the order specified."
-msgstr ""
-"Algorithm for painting:\n"
-"- Standard: Fixed step inwards.\n"
-"- Seed-based: Outwards from seed.\n"
-"- Line-based: Parallel lines.\n"
-"- Laser-lines: Active only for Gerber objects.\n"
-"Will create lines that follow the traces.\n"
-"- Combo: In case of failure a new method will be picked from the above\n"
-"in the order specified."
-
-#: FlatCAMDB.py:1596 FlatCAMDB.py:1598
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
-#: flatcamTools/ToolPaint.py:390 flatcamTools/ToolPaint.py:392
-#: flatcamTools/ToolPaint.py:693 flatcamTools/ToolPaint.py:698
-#: flatcamTools/ToolPaint.py:1876 tclCommands/TclCommandPaint.py:131
-msgid "Laser_lines"
-msgstr "Laser_lines"
-
-#: FlatCAMDB.py:1596 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
-#: flatcamTools/ToolPaint.py:390 flatcamTools/ToolPaint.py:2027
-#: tclCommands/TclCommandPaint.py:133
-msgid "Combo"
-msgstr "Combo"
-
-#: FlatCAMDB.py:1641
-msgid "Add Tool in DB"
-msgstr "Add Tool in DB"
-
-#: FlatCAMDB.py:1675
-msgid "Save DB"
-msgstr "Save DB"
-
-#: FlatCAMDB.py:1677
-msgid "Save the Tools Database information's."
-msgstr "Save the Tools Database information's."
-
-#: FlatCAMProcess.py:172
+#: AppProcess.py:172
msgid "processes running."
msgstr "processes running."
-#: FlatCAMTool.py:245 FlatCAMTool.py:252 flatcamGUI/ObjectUI.py:157
-#: flatcamGUI/ObjectUI.py:164
-msgid "Edited value is out of range"
-msgstr "Edited value is out of range"
+#: AppTools/ToolAlignObjects.py:32
+msgid "Align Objects"
+msgstr "Align Objects"
-#: FlatCAMTool.py:247 FlatCAMTool.py:254 flatcamGUI/ObjectUI.py:159
-#: flatcamGUI/ObjectUI.py:166
-msgid "Edited value is within limits."
-msgstr "Edited value is within limits."
+#: AppTools/ToolAlignObjects.py:61
+msgid "MOVING object"
+msgstr "MOVING object"
-#: FlatCAMTranslation.py:104
+#: AppTools/ToolAlignObjects.py:65
+msgid ""
+"Specify the type of object to be aligned.\n"
+"It can be of type: Gerber or Excellon.\n"
+"The selection here decide the type of objects that will be\n"
+"in the Object combobox."
+msgstr ""
+"Specify the type of object to be aligned.\n"
+"It can be of type: Gerber or Excellon.\n"
+"The selection here decide the type of objects that will be\n"
+"in the Object combobox."
+
+#: AppTools/ToolAlignObjects.py:86
+msgid "Object to be aligned."
+msgstr "Object to be aligned."
+
+#: AppTools/ToolAlignObjects.py:98
+msgid "TARGET object"
+msgstr "TARGET object"
+
+#: AppTools/ToolAlignObjects.py:100
+msgid ""
+"Specify the type of object to be aligned to.\n"
+"It can be of type: Gerber or Excellon.\n"
+"The selection here decide the type of objects that will be\n"
+"in the Object combobox."
+msgstr ""
+"Specify the type of object to be aligned to.\n"
+"It can be of type: Gerber or Excellon.\n"
+"The selection here decide the type of objects that will be\n"
+"in the Object combobox."
+
+#: AppTools/ToolAlignObjects.py:122
+msgid "Object to be aligned to. Aligner."
+msgstr "Object to be aligned to. Aligner."
+
+#: AppTools/ToolAlignObjects.py:135
+msgid "Alignment Type"
+msgstr "Alignment Type"
+
+#: AppTools/ToolAlignObjects.py:137
+msgid ""
+"The type of alignment can be:\n"
+"- Single Point -> it require a single point of sync, the action will be a "
+"translation\n"
+"- Dual Point -> it require two points of sync, the action will be "
+"translation followed by rotation"
+msgstr ""
+"The type of alignment can be:\n"
+"- Single Point -> it require a single point of sync, the action will be a "
+"translation\n"
+"- Dual Point -> it require two points of sync, the action will be "
+"translation followed by rotation"
+
+#: AppTools/ToolAlignObjects.py:143
+msgid "Single Point"
+msgstr "Single Point"
+
+#: AppTools/ToolAlignObjects.py:144
+msgid "Dual Point"
+msgstr "Dual Point"
+
+#: AppTools/ToolAlignObjects.py:159
+msgid "Align Object"
+msgstr "Align Object"
+
+#: AppTools/ToolAlignObjects.py:161
+msgid ""
+"Align the specified object to the aligner object.\n"
+"If only one point is used then it assumes translation.\n"
+"If tho points are used it assume translation and rotation."
+msgstr ""
+"Align the specified object to the aligner object.\n"
+"If only one point is used then it assumes translation.\n"
+"If tho points are used it assume translation and rotation."
+
+#: AppTools/ToolAlignObjects.py:176 AppTools/ToolCalculators.py:246
+#: AppTools/ToolCalibration.py:683 AppTools/ToolCopperThieving.py:484
+#: AppTools/ToolCorners.py:173 AppTools/ToolCutOut.py:362
+#: AppTools/ToolDblSided.py:471 AppTools/ToolEtchCompensation.py:136
+#: AppTools/ToolExtractDrills.py:310 AppTools/ToolFiducials.py:318
+#: AppTools/ToolFilm.py:503 AppTools/ToolInvertGerber.py:140
+#: AppTools/ToolNCC.py:612 AppTools/ToolOptimal.py:237
+#: AppTools/ToolPaint.py:555 AppTools/ToolPanelize.py:280
+#: AppTools/ToolPunchGerber.py:339 AppTools/ToolQRCode.py:314
+#: AppTools/ToolRulesCheck.py:516 AppTools/ToolSolderPaste.py:473
+#: AppTools/ToolSub.py:176 AppTools/ToolTransform.py:398
+msgid "Reset Tool"
+msgstr "Reset Tool"
+
+#: AppTools/ToolAlignObjects.py:178 AppTools/ToolCalculators.py:248
+#: AppTools/ToolCalibration.py:685 AppTools/ToolCopperThieving.py:486
+#: AppTools/ToolCorners.py:175 AppTools/ToolCutOut.py:364
+#: AppTools/ToolDblSided.py:473 AppTools/ToolEtchCompensation.py:138
+#: AppTools/ToolExtractDrills.py:312 AppTools/ToolFiducials.py:320
+#: AppTools/ToolFilm.py:505 AppTools/ToolInvertGerber.py:142
+#: AppTools/ToolNCC.py:614 AppTools/ToolOptimal.py:239
+#: AppTools/ToolPaint.py:557 AppTools/ToolPanelize.py:282
+#: AppTools/ToolPunchGerber.py:341 AppTools/ToolQRCode.py:316
+#: AppTools/ToolRulesCheck.py:518 AppTools/ToolSolderPaste.py:475
+#: AppTools/ToolSub.py:178 AppTools/ToolTransform.py:400
+msgid "Will reset the tool parameters."
+msgstr "Will reset the tool parameters."
+
+#: AppTools/ToolAlignObjects.py:244
+msgid "Align Tool"
+msgstr "Align Tool"
+
+#: AppTools/ToolAlignObjects.py:289
+msgid "There is no aligned FlatCAM object selected..."
+msgstr "There is no aligned FlatCAM object selected..."
+
+#: AppTools/ToolAlignObjects.py:299
+msgid "There is no aligner FlatCAM object selected..."
+msgstr "There is no aligner FlatCAM object selected..."
+
+#: AppTools/ToolAlignObjects.py:325 AppTools/ToolAlignObjects.py:385
+msgid "First Point"
+msgstr "First Point"
+
+#: AppTools/ToolAlignObjects.py:325 AppTools/ToolAlignObjects.py:400
+msgid "Click on the START point."
+msgstr "Click on the START point."
+
+#: AppTools/ToolAlignObjects.py:380 AppTools/ToolCalibration.py:920
+msgid "Cancelled by user request."
+msgstr "Cancelled by user request."
+
+#: AppTools/ToolAlignObjects.py:385 AppTools/ToolAlignObjects.py:407
+msgid "Click on the DESTINATION point."
+msgstr "Click on the DESTINATION point."
+
+#: AppTools/ToolAlignObjects.py:385 AppTools/ToolAlignObjects.py:400
+#: AppTools/ToolAlignObjects.py:407
+msgid "Or right click to cancel."
+msgstr "Or right click to cancel."
+
+#: AppTools/ToolAlignObjects.py:400 AppTools/ToolAlignObjects.py:407
+#: AppTools/ToolFiducials.py:111
+msgid "Second Point"
+msgstr "Second Point"
+
+#: AppTools/ToolCalculators.py:24
+msgid "Calculators"
+msgstr "Calculators"
+
+#: AppTools/ToolCalculators.py:26
+msgid "Units Calculator"
+msgstr "Units Calculator"
+
+#: AppTools/ToolCalculators.py:70
+msgid "Here you enter the value to be converted from INCH to MM"
+msgstr "Here you enter the value to be converted from INCH to MM"
+
+#: AppTools/ToolCalculators.py:75
+msgid "Here you enter the value to be converted from MM to INCH"
+msgstr "Here you enter the value to be converted from MM to INCH"
+
+#: AppTools/ToolCalculators.py:111
+msgid ""
+"This is the angle of the tip of the tool.\n"
+"It is specified by manufacturer."
+msgstr ""
+"This is the angle of the tip of the tool.\n"
+"It is specified by manufacturer."
+
+#: AppTools/ToolCalculators.py:120
+msgid ""
+"This is the depth to cut into the material.\n"
+"In the CNCJob is the CutZ parameter."
+msgstr ""
+"This is the depth to cut into the material.\n"
+"In the CNCJob is the CutZ parameter."
+
+#: AppTools/ToolCalculators.py:128
+msgid ""
+"This is the tool diameter to be entered into\n"
+"FlatCAM Gerber section.\n"
+"In the CNCJob section it is called >Tool dia<."
+msgstr ""
+"This is the tool diameter to be entered into\n"
+"FlatCAM Gerber section.\n"
+"In the CNCJob section it is called >Tool dia<."
+
+#: AppTools/ToolCalculators.py:139 AppTools/ToolCalculators.py:235
+msgid "Calculate"
+msgstr "Calculate"
+
+#: AppTools/ToolCalculators.py:142
+msgid ""
+"Calculate either the Cut Z or the effective tool diameter,\n"
+" depending on which is desired and which is known. "
+msgstr ""
+"Calculate either the Cut Z or the effective tool diameter,\n"
+" depending on which is desired and which is known. "
+
+#: AppTools/ToolCalculators.py:205
+msgid "Current Value"
+msgstr "Current Value"
+
+#: AppTools/ToolCalculators.py:212
+msgid ""
+"This is the current intensity value\n"
+"to be set on the Power Supply. In Amps."
+msgstr ""
+"This is the current intensity value\n"
+"to be set on the Power Supply. In Amps."
+
+#: AppTools/ToolCalculators.py:216
+msgid "Time"
+msgstr "Time"
+
+#: AppTools/ToolCalculators.py:223
+msgid ""
+"This is the calculated time required for the procedure.\n"
+"In minutes."
+msgstr ""
+"This is the calculated time required for the procedure.\n"
+"In minutes."
+
+#: AppTools/ToolCalculators.py:238
+msgid ""
+"Calculate the current intensity value and the procedure time,\n"
+"depending on the parameters above"
+msgstr ""
+"Calculate the current intensity value and the procedure time,\n"
+"depending on the parameters above"
+
+#: AppTools/ToolCalculators.py:299
+msgid "Calc. Tool"
+msgstr "Calc. Tool"
+
+#: AppTools/ToolCalibration.py:67
+msgid "GCode Parameters"
+msgstr "GCode Parameters"
+
+#: AppTools/ToolCalibration.py:69
+msgid "Parameters used when creating the GCode in this tool."
+msgstr "Parameters used when creating the GCode in this tool."
+
+#: AppTools/ToolCalibration.py:173
+msgid "STEP 1: Acquire Calibration Points"
+msgstr "STEP 1: Acquire Calibration Points"
+
+#: AppTools/ToolCalibration.py:175
+msgid ""
+"Pick four points by clicking on canvas.\n"
+"Those four points should be in the four\n"
+"(as much as possible) corners of the object."
+msgstr ""
+"Pick four points by clicking on canvas.\n"
+"Those four points should be in the four\n"
+"(as much as possible) corners of the object."
+
+#: AppTools/ToolCalibration.py:193 AppTools/ToolFilm.py:71
+#: AppTools/ToolImage.py:54 AppTools/ToolPanelize.py:77
+#: AppTools/ToolProperties.py:177
+msgid "Object Type"
+msgstr "Object Type"
+
+#: AppTools/ToolCalibration.py:210
+msgid "Source object selection"
+msgstr "Source object selection"
+
+#: AppTools/ToolCalibration.py:212
+msgid "FlatCAM Object to be used as a source for reference points."
+msgstr "FlatCAM Object to be used as a source for reference points."
+
+#: AppTools/ToolCalibration.py:218
+msgid "Calibration Points"
+msgstr "Calibration Points"
+
+#: AppTools/ToolCalibration.py:220
+msgid ""
+"Contain the expected calibration points and the\n"
+"ones measured."
+msgstr ""
+"Contain the expected calibration points and the\n"
+"ones measured."
+
+#: AppTools/ToolCalibration.py:235 AppTools/ToolSub.py:76
+#: AppTools/ToolSub.py:131
+msgid "Target"
+msgstr "Target"
+
+#: AppTools/ToolCalibration.py:236
+msgid "Found Delta"
+msgstr "Found Delta"
+
+#: AppTools/ToolCalibration.py:248
+msgid "Bot Left X"
+msgstr "Bot Left X"
+
+#: AppTools/ToolCalibration.py:257
+msgid "Bot Left Y"
+msgstr "Bot Left Y"
+
+#: AppTools/ToolCalibration.py:275
+msgid "Bot Right X"
+msgstr "Bot Right X"
+
+#: AppTools/ToolCalibration.py:285
+msgid "Bot Right Y"
+msgstr "Bot Right Y"
+
+#: AppTools/ToolCalibration.py:300
+msgid "Top Left X"
+msgstr "Top Left X"
+
+#: AppTools/ToolCalibration.py:309
+msgid "Top Left Y"
+msgstr "Top Left Y"
+
+#: AppTools/ToolCalibration.py:324
+msgid "Top Right X"
+msgstr "Top Right X"
+
+#: AppTools/ToolCalibration.py:334
+msgid "Top Right Y"
+msgstr "Top Right Y"
+
+#: AppTools/ToolCalibration.py:367
+msgid "Get Points"
+msgstr "Get Points"
+
+#: AppTools/ToolCalibration.py:369
+msgid ""
+"Pick four points by clicking on canvas if the source choice\n"
+"is 'free' or inside the object geometry if the source is 'object'.\n"
+"Those four points should be in the four squares of\n"
+"the object."
+msgstr ""
+"Pick four points by clicking on canvas if the source choice\n"
+"is 'free' or inside the object geometry if the source is 'object'.\n"
+"Those four points should be in the four squares of\n"
+"the object."
+
+#: AppTools/ToolCalibration.py:390
+msgid "STEP 2: Verification GCode"
+msgstr "STEP 2: Verification GCode"
+
+#: AppTools/ToolCalibration.py:392 AppTools/ToolCalibration.py:405
+msgid ""
+"Generate GCode file to locate and align the PCB by using\n"
+"the four points acquired above.\n"
+"The points sequence is:\n"
+"- first point -> set the origin\n"
+"- second point -> alignment point. Can be: top-left or bottom-right.\n"
+"- third point -> check point. Can be: top-left or bottom-right.\n"
+"- forth point -> final verification point. Just for evaluation."
+msgstr ""
+"Generate GCode file to locate and align the PCB by using\n"
+"the four points acquired above.\n"
+"The points sequence is:\n"
+"- first point -> set the origin\n"
+"- second point -> alignment point. Can be: top-left or bottom-right.\n"
+"- third point -> check point. Can be: top-left or bottom-right.\n"
+"- forth point -> final verification point. Just for evaluation."
+
+#: AppTools/ToolCalibration.py:403 AppTools/ToolSolderPaste.py:348
+msgid "Generate GCode"
+msgstr "Generate GCode"
+
+#: AppTools/ToolCalibration.py:429
+msgid "STEP 3: Adjustments"
+msgstr "STEP 3: Adjustments"
+
+#: AppTools/ToolCalibration.py:431 AppTools/ToolCalibration.py:440
+msgid ""
+"Calculate Scale and Skew factors based on the differences (delta)\n"
+"found when checking the PCB pattern. The differences must be filled\n"
+"in the fields Found (Delta)."
+msgstr ""
+"Calculate Scale and Skew factors based on the differences (delta)\n"
+"found when checking the PCB pattern. The differences must be filled\n"
+"in the fields Found (Delta)."
+
+#: AppTools/ToolCalibration.py:438
+msgid "Calculate Factors"
+msgstr "Calculate Factors"
+
+#: AppTools/ToolCalibration.py:460
+msgid "STEP 4: Adjusted GCode"
+msgstr "STEP 4: Adjusted GCode"
+
+#: AppTools/ToolCalibration.py:462
+msgid ""
+"Generate verification GCode file adjusted with\n"
+"the factors above."
+msgstr ""
+"Generate verification GCode file adjusted with\n"
+"the factors above."
+
+#: AppTools/ToolCalibration.py:467
+msgid "Scale Factor X:"
+msgstr "Scale Factor X:"
+
+#: AppTools/ToolCalibration.py:479
+msgid "Scale Factor Y:"
+msgstr "Scale Factor Y:"
+
+#: AppTools/ToolCalibration.py:491
+msgid "Apply Scale Factors"
+msgstr "Apply Scale Factors"
+
+#: AppTools/ToolCalibration.py:493
+msgid "Apply Scale factors on the calibration points."
+msgstr "Apply Scale factors on the calibration points."
+
+#: AppTools/ToolCalibration.py:503
+msgid "Skew Angle X:"
+msgstr "Skew Angle X:"
+
+#: AppTools/ToolCalibration.py:516
+msgid "Skew Angle Y:"
+msgstr "Skew Angle Y:"
+
+#: AppTools/ToolCalibration.py:529
+msgid "Apply Skew Factors"
+msgstr "Apply Skew Factors"
+
+#: AppTools/ToolCalibration.py:531
+msgid "Apply Skew factors on the calibration points."
+msgstr "Apply Skew factors on the calibration points."
+
+#: AppTools/ToolCalibration.py:600
+msgid "Generate Adjusted GCode"
+msgstr "Generate Adjusted GCode"
+
+#: AppTools/ToolCalibration.py:602
+msgid ""
+"Generate verification GCode file adjusted with\n"
+"the factors set above.\n"
+"The GCode parameters can be readjusted\n"
+"before clicking this button."
+msgstr ""
+"Generate verification GCode file adjusted with\n"
+"the factors set above.\n"
+"The GCode parameters can be readjusted\n"
+"before clicking this button."
+
+#: AppTools/ToolCalibration.py:623
+msgid "STEP 5: Calibrate FlatCAM Objects"
+msgstr "STEP 5: Calibrate FlatCAM Objects"
+
+#: AppTools/ToolCalibration.py:625
+msgid ""
+"Adjust the FlatCAM objects\n"
+"with the factors determined and verified above."
+msgstr ""
+"Adjust the FlatCAM objects\n"
+"with the factors determined and verified above."
+
+#: AppTools/ToolCalibration.py:637
+msgid "Adjusted object type"
+msgstr "Adjusted object type"
+
+#: AppTools/ToolCalibration.py:638
+msgid "Type of the FlatCAM Object to be adjusted."
+msgstr "Type of the FlatCAM Object to be adjusted."
+
+#: AppTools/ToolCalibration.py:651
+msgid "Adjusted object selection"
+msgstr "Adjusted object selection"
+
+#: AppTools/ToolCalibration.py:653
+msgid "The FlatCAM Object to be adjusted."
+msgstr "The FlatCAM Object to be adjusted."
+
+#: AppTools/ToolCalibration.py:660
+msgid "Calibrate"
+msgstr "Calibrate"
+
+#: AppTools/ToolCalibration.py:662
+msgid ""
+"Adjust (scale and/or skew) the objects\n"
+"with the factors determined above."
+msgstr ""
+"Adjust (scale and/or skew) the objects\n"
+"with the factors determined above."
+
+#: AppTools/ToolCalibration.py:770 AppTools/ToolCalibration.py:771
+msgid "Origin"
+msgstr "Origin"
+
+#: AppTools/ToolCalibration.py:800
+msgid "Tool initialized"
+msgstr "Tool initialized"
+
+#: AppTools/ToolCalibration.py:838
+msgid "There is no source FlatCAM object selected..."
+msgstr "There is no source FlatCAM object selected..."
+
+#: AppTools/ToolCalibration.py:859
+msgid "Get First calibration point. Bottom Left..."
+msgstr "Get First calibration point. Bottom Left..."
+
+#: AppTools/ToolCalibration.py:926
+msgid "Get Second calibration point. Bottom Right (Top Left)..."
+msgstr "Get Second calibration point. Bottom Right (Top Left)..."
+
+#: AppTools/ToolCalibration.py:930
+msgid "Get Third calibration point. Top Left (Bottom Right)..."
+msgstr "Get Third calibration point. Top Left (Bottom Right)..."
+
+#: AppTools/ToolCalibration.py:934
+msgid "Get Forth calibration point. Top Right..."
+msgstr "Get Forth calibration point. Top Right..."
+
+#: AppTools/ToolCalibration.py:938
+msgid "Done. All four points have been acquired."
+msgstr "Done. All four points have been acquired."
+
+#: AppTools/ToolCalibration.py:969
+msgid "Verification GCode for FlatCAM Calibration Tool"
+msgstr "Verification GCode for FlatCAM Calibration Tool"
+
+#: AppTools/ToolCalibration.py:981 AppTools/ToolCalibration.py:1067
+msgid "Gcode Viewer"
+msgstr "Gcode Viewer"
+
+#: AppTools/ToolCalibration.py:997
+msgid "Cancelled. Four points are needed for GCode generation."
+msgstr "Cancelled. Four points are needed for GCode generation."
+
+#: AppTools/ToolCalibration.py:1253 AppTools/ToolCalibration.py:1349
+msgid "There is no FlatCAM object selected..."
+msgstr "There is no FlatCAM object selected..."
+
+#: AppTools/ToolCopperThieving.py:76 AppTools/ToolFiducials.py:261
+msgid "Gerber Object to which will be added a copper thieving."
+msgstr "Gerber Object to which will be added a copper thieving."
+
+#: AppTools/ToolCopperThieving.py:98
+msgid ""
+"This set the distance between the copper thieving components\n"
+"(the polygon fill may be split in multiple polygons)\n"
+"and the copper traces in the Gerber file."
+msgstr ""
+"This set the distance between the copper thieving components\n"
+"(the polygon fill may be split in multiple polygons)\n"
+"and the copper traces in the Gerber file."
+
+#: AppTools/ToolCopperThieving.py:131
+msgid ""
+"- 'Itself' - the copper thieving extent is based on the object extent.\n"
+"- 'Area Selection' - left mouse click to start selection of the area to be "
+"filled.\n"
+"- 'Reference Object' - will do copper thieving within the area specified by "
+"another object."
+msgstr ""
+"- 'Itself' - the copper thieving extent is based on the object extent.\n"
+"- 'Area Selection' - left mouse click to start selection of the area to be "
+"filled.\n"
+"- 'Reference Object' - will do copper thieving within the area specified by "
+"another object."
+
+#: AppTools/ToolCopperThieving.py:138 AppTools/ToolNCC.py:552
+#: AppTools/ToolPaint.py:495
+msgid "Ref. Type"
+msgstr "Ref. Type"
+
+#: AppTools/ToolCopperThieving.py:140
+msgid ""
+"The type of FlatCAM object to be used as copper thieving reference.\n"
+"It can be Gerber, Excellon or Geometry."
+msgstr ""
+"The type of FlatCAM object to be used as copper thieving reference.\n"
+"It can be Gerber, Excellon or Geometry."
+
+#: AppTools/ToolCopperThieving.py:149 AppTools/ToolNCC.py:562
+#: AppTools/ToolPaint.py:505
+msgid "Ref. Object"
+msgstr "Ref. Object"
+
+#: AppTools/ToolCopperThieving.py:151 AppTools/ToolNCC.py:564
+#: AppTools/ToolPaint.py:507
+msgid "The FlatCAM object to be used as non copper clearing reference."
+msgstr "The FlatCAM object to be used as non copper clearing reference."
+
+#: AppTools/ToolCopperThieving.py:327
+msgid "Insert Copper thieving"
+msgstr "Insert Copper thieving"
+
+#: AppTools/ToolCopperThieving.py:329
+msgid ""
+"Will add a polygon (may be split in multiple parts)\n"
+"that will surround the actual Gerber traces at a certain distance."
+msgstr ""
+"Will add a polygon (may be split in multiple parts)\n"
+"that will surround the actual Gerber traces at a certain distance."
+
+#: AppTools/ToolCopperThieving.py:388
+msgid "Insert Robber Bar"
+msgstr "Insert Robber Bar"
+
+#: AppTools/ToolCopperThieving.py:390
+msgid ""
+"Will add a polygon with a defined thickness\n"
+"that will surround the actual Gerber object\n"
+"at a certain distance.\n"
+"Required when doing holes pattern plating."
+msgstr ""
+"Will add a polygon with a defined thickness\n"
+"that will surround the actual Gerber object\n"
+"at a certain distance.\n"
+"Required when doing holes pattern plating."
+
+#: AppTools/ToolCopperThieving.py:414
+msgid "Select Soldermask object"
+msgstr "Select Soldermask object"
+
+#: AppTools/ToolCopperThieving.py:416
+msgid ""
+"Gerber Object with the soldermask.\n"
+"It will be used as a base for\n"
+"the pattern plating mask."
+msgstr ""
+"Gerber Object with the soldermask.\n"
+"It will be used as a base for\n"
+"the pattern plating mask."
+
+#: AppTools/ToolCopperThieving.py:445
+msgid "Plated area"
+msgstr "Plated area"
+
+#: AppTools/ToolCopperThieving.py:447
+msgid ""
+"The area to be plated by pattern plating.\n"
+"Basically is made from the openings in the plating mask.\n"
+"\n"
+"<> - the calculated area is actually a bit larger\n"
+"due of the fact that the soldermask openings are by design\n"
+"a bit larger than the copper pads, and this area is\n"
+"calculated from the soldermask openings."
+msgstr ""
+"The area to be plated by pattern plating.\n"
+"Basically is made from the openings in the plating mask.\n"
+"\n"
+"<> - the calculated area is actually a bit larger\n"
+"due of the fact that the soldermask openings are by design\n"
+"a bit larger than the copper pads, and this area is\n"
+"calculated from the soldermask openings."
+
+#: AppTools/ToolCopperThieving.py:458
+msgid "mm"
+msgstr "mm"
+
+#: AppTools/ToolCopperThieving.py:460
+msgid "in"
+msgstr "in"
+
+#: AppTools/ToolCopperThieving.py:467
+msgid "Generate pattern plating mask"
+msgstr "Generate pattern plating mask"
+
+#: AppTools/ToolCopperThieving.py:469
+msgid ""
+"Will add to the soldermask gerber geometry\n"
+"the geometries of the copper thieving and/or\n"
+"the robber bar if those were generated."
+msgstr ""
+"Will add to the soldermask gerber geometry\n"
+"the geometries of the copper thieving and/or\n"
+"the robber bar if those were generated."
+
+#: AppTools/ToolCopperThieving.py:625 AppTools/ToolCopperThieving.py:650
+msgid "Lines Grid works only for 'itself' reference ..."
+msgstr "Lines Grid works only for 'itself' reference ..."
+
+#: AppTools/ToolCopperThieving.py:636
+msgid "Solid fill selected."
+msgstr "Solid fill selected."
+
+#: AppTools/ToolCopperThieving.py:641
+msgid "Dots grid fill selected."
+msgstr "Dots grid fill selected."
+
+#: AppTools/ToolCopperThieving.py:646
+msgid "Squares grid fill selected."
+msgstr "Squares grid fill selected."
+
+#: AppTools/ToolCopperThieving.py:667 AppTools/ToolCopperThieving.py:749
+#: AppTools/ToolCopperThieving.py:1351 AppTools/ToolCorners.py:251
+#: AppTools/ToolDblSided.py:657 AppTools/ToolExtractDrills.py:436
+#: AppTools/ToolFiducials.py:467 AppTools/ToolFiducials.py:744
+#: AppTools/ToolOptimal.py:342 AppTools/ToolPunchGerber.py:512
+#: AppTools/ToolQRCode.py:426
+msgid "There is no Gerber object loaded ..."
+msgstr "There is no Gerber object loaded ..."
+
+#: AppTools/ToolCopperThieving.py:680 AppTools/ToolCopperThieving.py:1279
+msgid "Append geometry"
+msgstr "Append geometry"
+
+#: AppTools/ToolCopperThieving.py:724 AppTools/ToolCopperThieving.py:1312
+#: AppTools/ToolCopperThieving.py:1465
+msgid "Append source file"
+msgstr "Append source file"
+
+#: AppTools/ToolCopperThieving.py:732 AppTools/ToolCopperThieving.py:1320
+msgid "Copper Thieving Tool done."
+msgstr "Copper Thieving Tool done."
+
+#: AppTools/ToolCopperThieving.py:759 AppTools/ToolCopperThieving.py:792
+#: AppTools/ToolCutOut.py:519 AppTools/ToolCutOut.py:724
+#: AppTools/ToolEtchCompensation.py:208 AppTools/ToolInvertGerber.py:208
+#: AppTools/ToolNCC.py:1599 AppTools/ToolNCC.py:1641 AppTools/ToolNCC.py:1670
+#: AppTools/ToolPaint.py:1473 AppTools/ToolPanelize.py:423
+#: AppTools/ToolPanelize.py:437 AppTools/ToolSub.py:294 AppTools/ToolSub.py:307
+#: AppTools/ToolSub.py:498 AppTools/ToolSub.py:513
+#: tclCommands/TclCommandCopperClear.py:97 tclCommands/TclCommandPaint.py:99
+msgid "Could not retrieve object"
+msgstr "Could not retrieve object"
+
+#: AppTools/ToolCopperThieving.py:769 AppTools/ToolNCC.py:1649 Common.py:200
+msgid "Click the start point of the area."
+msgstr "Click the start point of the area."
+
+#: AppTools/ToolCopperThieving.py:820
+msgid "Click the end point of the filling area."
+msgstr "Click the end point of the filling area."
+
+#: AppTools/ToolCopperThieving.py:826 AppTools/ToolNCC.py:1711
+#: AppTools/ToolNCC.py:1763 AppTools/ToolPaint.py:1605
+#: AppTools/ToolPaint.py:1656 Common.py:256 Common.py:356
+msgid "Zone added. Click to start adding next zone or right click to finish."
+msgstr "Zone added. Click to start adding next zone or right click to finish."
+
+#: AppTools/ToolCopperThieving.py:948 AppTools/ToolCopperThieving.py:952
+#: AppTools/ToolCopperThieving.py:1013
+msgid "Thieving"
+msgstr "Thieving"
+
+#: AppTools/ToolCopperThieving.py:959
+msgid "Copper Thieving Tool started. Reading parameters."
+msgstr "Copper Thieving Tool started. Reading parameters."
+
+#: AppTools/ToolCopperThieving.py:984
+msgid "Copper Thieving Tool. Preparing isolation polygons."
+msgstr "Copper Thieving Tool. Preparing isolation polygons."
+
+#: AppTools/ToolCopperThieving.py:1029
+msgid "Copper Thieving Tool. Preparing areas to fill with copper."
+msgstr "Copper Thieving Tool. Preparing areas to fill with copper."
+
+#: AppTools/ToolCopperThieving.py:1040 AppTools/ToolOptimal.py:349
+#: AppTools/ToolPanelize.py:810 AppTools/ToolRulesCheck.py:1127
+msgid "Working..."
+msgstr "Working..."
+
+#: AppTools/ToolCopperThieving.py:1067
+msgid "Geometry not supported for bounding box"
+msgstr "Geometry not supported for bounding box"
+
+#: AppTools/ToolCopperThieving.py:1073 AppTools/ToolNCC.py:1942
+#: AppTools/ToolNCC.py:1997 AppTools/ToolNCC.py:3038 AppTools/ToolPaint.py:3385
+msgid "No object available."
+msgstr "No object available."
+
+#: AppTools/ToolCopperThieving.py:1110 AppTools/ToolNCC.py:1967
+#: AppTools/ToolNCC.py:2020 AppTools/ToolNCC.py:3080
+msgid "The reference object type is not supported."
+msgstr "The reference object type is not supported."
+
+#: AppTools/ToolCopperThieving.py:1115
+msgid "Copper Thieving Tool. Appending new geometry and buffering."
+msgstr "Copper Thieving Tool. Appending new geometry and buffering."
+
+#: AppTools/ToolCopperThieving.py:1131
+msgid "Create geometry"
+msgstr "Create geometry"
+
+#: AppTools/ToolCopperThieving.py:1331 AppTools/ToolCopperThieving.py:1335
+msgid "P-Plating Mask"
+msgstr "P-Plating Mask"
+
+#: AppTools/ToolCopperThieving.py:1357
+msgid "Append PP-M geometry"
+msgstr "Append PP-M geometry"
+
+#: AppTools/ToolCopperThieving.py:1483
+msgid "Generating Pattern Plating Mask done."
+msgstr "Generating Pattern Plating Mask done."
+
+#: AppTools/ToolCopperThieving.py:1555
+msgid "Copper Thieving Tool exit."
+msgstr "Copper Thieving Tool exit."
+
+#: AppTools/ToolCorners.py:57
+msgid "The Gerber object that to which will be added corner markers."
+msgstr "The Gerber object that to which will be added corner markers."
+
+#: AppTools/ToolCorners.py:73
+msgid "Locations"
+msgstr "Locations"
+
+#: AppTools/ToolCorners.py:75
+msgid "Locations where to place corner markers."
+msgstr "Locations where to place corner markers."
+
+#: AppTools/ToolCorners.py:92 AppTools/ToolFiducials.py:99
+msgid "Top Right"
+msgstr "Top Right"
+
+#: AppTools/ToolCorners.py:158
+msgid "Add Marker"
+msgstr "Add Marker"
+
+#: AppTools/ToolCorners.py:160
+msgid "Will add corner markers to the selected Gerber file."
+msgstr "Will add corner markers to the selected Gerber file."
+
+#: AppTools/ToolCorners.py:225
+msgid "Corners Tool"
+msgstr "Corners Tool"
+
+#: AppTools/ToolCorners.py:288
+msgid "Please select at least a location"
+msgstr "Please select at least a location"
+
+#: AppTools/ToolCorners.py:423
+msgid "Corners Tool exit."
+msgstr "Corners Tool exit."
+
+#: AppTools/ToolCutOut.py:41
+msgid "Cutout PCB"
+msgstr "Cutout PCB"
+
+#: AppTools/ToolCutOut.py:69 AppTools/ToolPanelize.py:53
+msgid "Source Object"
+msgstr "Source Object"
+
+#: AppTools/ToolCutOut.py:70
+msgid "Object to be cutout"
+msgstr "Object to be cutout"
+
+#: AppTools/ToolCutOut.py:75
+msgid "Kind"
+msgstr "Kind"
+
+#: AppTools/ToolCutOut.py:97
+msgid ""
+"Specify the type of object to be cutout.\n"
+"It can be of type: Gerber or Geometry.\n"
+"What is selected here will dictate the kind\n"
+"of objects that will populate the 'Object' combobox."
+msgstr ""
+"Specify the type of object to be cutout.\n"
+"It can be of type: Gerber or Geometry.\n"
+"What is selected here will dictate the kind\n"
+"of objects that will populate the 'Object' combobox."
+
+#: AppTools/ToolCutOut.py:121
+msgid "Tool Parameters"
+msgstr "Tool Parameters"
+
+#: AppTools/ToolCutOut.py:238
+msgid "A. Automatic Bridge Gaps"
+msgstr "A. Automatic Bridge Gaps"
+
+#: AppTools/ToolCutOut.py:240
+msgid "This section handle creation of automatic bridge gaps."
+msgstr "This section handle creation of automatic bridge gaps."
+
+#: AppTools/ToolCutOut.py:247
+msgid ""
+"Number of gaps used for the Automatic cutout.\n"
+"There can be maximum 8 bridges/gaps.\n"
+"The choices are:\n"
+"- None - no gaps\n"
+"- lr - left + right\n"
+"- tb - top + bottom\n"
+"- 4 - left + right +top + bottom\n"
+"- 2lr - 2*left + 2*right\n"
+"- 2tb - 2*top + 2*bottom\n"
+"- 8 - 2*left + 2*right +2*top + 2*bottom"
+msgstr ""
+"Number of gaps used for the Automatic cutout.\n"
+"There can be maximum 8 bridges/gaps.\n"
+"The choices are:\n"
+"- None - no gaps\n"
+"- lr - left + right\n"
+"- tb - top + bottom\n"
+"- 4 - left + right +top + bottom\n"
+"- 2lr - 2*left + 2*right\n"
+"- 2tb - 2*top + 2*bottom\n"
+"- 8 - 2*left + 2*right +2*top + 2*bottom"
+
+#: AppTools/ToolCutOut.py:269
+msgid "Generate Freeform Geometry"
+msgstr "Generate Freeform Geometry"
+
+#: AppTools/ToolCutOut.py:271
+msgid ""
+"Cutout the selected object.\n"
+"The cutout shape can be of any shape.\n"
+"Useful when the PCB has a non-rectangular shape."
+msgstr ""
+"Cutout the selected object.\n"
+"The cutout shape can be of any shape.\n"
+"Useful when the PCB has a non-rectangular shape."
+
+#: AppTools/ToolCutOut.py:283
+msgid "Generate Rectangular Geometry"
+msgstr "Generate Rectangular Geometry"
+
+#: AppTools/ToolCutOut.py:285
+msgid ""
+"Cutout the selected object.\n"
+"The resulting cutout shape is\n"
+"always a rectangle shape and it will be\n"
+"the bounding box of the Object."
+msgstr ""
+"Cutout the selected object.\n"
+"The resulting cutout shape is\n"
+"always a rectangle shape and it will be\n"
+"the bounding box of the Object."
+
+#: AppTools/ToolCutOut.py:304
+msgid "B. Manual Bridge Gaps"
+msgstr "B. Manual Bridge Gaps"
+
+#: AppTools/ToolCutOut.py:306
+msgid ""
+"This section handle creation of manual bridge gaps.\n"
+"This is done by mouse clicking on the perimeter of the\n"
+"Geometry object that is used as a cutout object. "
+msgstr ""
+"This section handle creation of manual bridge gaps.\n"
+"This is done by mouse clicking on the perimeter of the\n"
+"Geometry object that is used as a cutout object. "
+
+#: AppTools/ToolCutOut.py:321
+msgid "Geometry object used to create the manual cutout."
+msgstr "Geometry object used to create the manual cutout."
+
+#: AppTools/ToolCutOut.py:328
+msgid "Generate Manual Geometry"
+msgstr "Generate Manual Geometry"
+
+#: AppTools/ToolCutOut.py:330
+msgid ""
+"If the object to be cutout is a Gerber\n"
+"first create a Geometry that surrounds it,\n"
+"to be used as the cutout, if one doesn't exist yet.\n"
+"Select the source Gerber file in the top object combobox."
+msgstr ""
+"If the object to be cutout is a Gerber\n"
+"first create a Geometry that surrounds it,\n"
+"to be used as the cutout, if one doesn't exist yet.\n"
+"Select the source Gerber file in the top object combobox."
+
+#: AppTools/ToolCutOut.py:343
+msgid "Manual Add Bridge Gaps"
+msgstr "Manual Add Bridge Gaps"
+
+#: AppTools/ToolCutOut.py:345
+msgid ""
+"Use the left mouse button (LMB) click\n"
+"to create a bridge gap to separate the PCB from\n"
+"the surrounding material.\n"
+"The LMB click has to be done on the perimeter of\n"
+"the Geometry object used as a cutout geometry."
+msgstr ""
+"Use the left mouse button (LMB) click\n"
+"to create a bridge gap to separate the PCB from\n"
+"the surrounding material.\n"
+"The LMB click has to be done on the perimeter of\n"
+"the Geometry object used as a cutout geometry."
+
+#: AppTools/ToolCutOut.py:524
+msgid ""
+"There is no object selected for Cutout.\n"
+"Select one and try again."
+msgstr ""
+"There is no object selected for Cutout.\n"
+"Select one and try again."
+
+#: AppTools/ToolCutOut.py:530 AppTools/ToolCutOut.py:733
+#: AppTools/ToolCutOut.py:914 AppTools/ToolCutOut.py:996
+#: tclCommands/TclCommandGeoCutout.py:184
+msgid "Tool Diameter is zero value. Change it to a positive real number."
+msgstr "Tool Diameter is zero value. Change it to a positive real number."
+
+#: AppTools/ToolCutOut.py:544 AppTools/ToolCutOut.py:748
+msgid "Number of gaps value is missing. Add it and retry."
+msgstr "Number of gaps value is missing. Add it and retry."
+
+#: AppTools/ToolCutOut.py:549 AppTools/ToolCutOut.py:752
+msgid ""
+"Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. "
+"Fill in a correct value and retry. "
+msgstr ""
+"Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. "
+"Fill in a correct value and retry. "
+
+#: AppTools/ToolCutOut.py:554 AppTools/ToolCutOut.py:758
+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 ""
+"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."
+
+#: AppTools/ToolCutOut.py:706 AppTools/ToolCutOut.py:903
+msgid "Any form CutOut operation finished."
+msgstr "Any form CutOut operation finished."
+
+#: AppTools/ToolCutOut.py:728 AppTools/ToolEtchCompensation.py:214
+#: AppTools/ToolInvertGerber.py:214 AppTools/ToolNCC.py:1603
+#: AppTools/ToolPaint.py:1396 AppTools/ToolPanelize.py:428
+#: tclCommands/TclCommandBbox.py:71 tclCommands/TclCommandNregions.py:71
+msgid "Object not found"
+msgstr "Object not found"
+
+#: AppTools/ToolCutOut.py:872
+msgid "Rectangular cutout with negative margin is not possible."
+msgstr "Rectangular cutout with negative margin is not possible."
+
+#: AppTools/ToolCutOut.py:908
+msgid ""
+"Click on the selected geometry object perimeter to create a bridge gap ..."
+msgstr ""
+"Click on the selected geometry object perimeter to create a bridge gap ..."
+
+#: AppTools/ToolCutOut.py:925 AppTools/ToolCutOut.py:951
+msgid "Could not retrieve Geometry object"
+msgstr "Could not retrieve Geometry object"
+
+#: AppTools/ToolCutOut.py:956
+msgid "Geometry object for manual cutout not found"
+msgstr "Geometry object for manual cutout not found"
+
+#: AppTools/ToolCutOut.py:966
+msgid "Added manual Bridge Gap."
+msgstr "Added manual Bridge Gap."
+
+#: AppTools/ToolCutOut.py:978
+msgid "Could not retrieve Gerber object"
+msgstr "Could not retrieve Gerber object"
+
+#: AppTools/ToolCutOut.py:983
+msgid ""
+"There is no Gerber object selected for Cutout.\n"
+"Select one and try again."
+msgstr ""
+"There is no Gerber object selected for Cutout.\n"
+"Select one and try again."
+
+#: AppTools/ToolCutOut.py:989
+msgid ""
+"The selected object has to be of Gerber type.\n"
+"Select a Gerber file and try again."
+msgstr ""
+"The selected object has to be of Gerber type.\n"
+"Select a Gerber file and try again."
+
+#: AppTools/ToolCutOut.py:1024
+msgid "Geometry not supported for cutout"
+msgstr "Geometry not supported for cutout"
+
+#: AppTools/ToolCutOut.py:1099
+msgid "Making manual bridge gap..."
+msgstr "Making manual bridge gap..."
+
+#: AppTools/ToolDblSided.py:26
+msgid "2-Sided PCB"
+msgstr "2-Sided PCB"
+
+#: AppTools/ToolDblSided.py:52
+msgid "Mirror Operation"
+msgstr "Mirror Operation"
+
+#: AppTools/ToolDblSided.py:53
+msgid "Objects to be mirrored"
+msgstr "Objects to be mirrored"
+
+#: AppTools/ToolDblSided.py:65
+msgid "Gerber to be mirrored"
+msgstr "Gerber to be mirrored"
+
+#: AppTools/ToolDblSided.py:69 AppTools/ToolDblSided.py:97
+#: AppTools/ToolDblSided.py:127
+msgid ""
+"Mirrors (flips) the specified object around \n"
+"the specified axis. Does not create a new \n"
+"object, but modifies it."
+msgstr ""
+"Mirrors (flips) the specified object around \n"
+"the specified axis. Does not create a new \n"
+"object, but modifies it."
+
+#: AppTools/ToolDblSided.py:93
+msgid "Excellon Object to be mirrored."
+msgstr "Excellon Object to be mirrored."
+
+#: AppTools/ToolDblSided.py:122
+msgid "Geometry Obj to be mirrored."
+msgstr "Geometry Obj to be mirrored."
+
+#: AppTools/ToolDblSided.py:158
+msgid "Mirror Parameters"
+msgstr "Mirror Parameters"
+
+#: AppTools/ToolDblSided.py:159
+msgid "Parameters for the mirror operation"
+msgstr "Parameters for the mirror operation"
+
+#: AppTools/ToolDblSided.py:164
+msgid "Mirror Axis"
+msgstr "Mirror Axis"
+
+#: AppTools/ToolDblSided.py:175
+msgid ""
+"The coordinates used as reference for the mirror operation.\n"
+"Can be:\n"
+"- Point -> a set of coordinates (x,y) around which the object is mirrored\n"
+"- Box -> a set of coordinates (x, y) obtained from the center of the\n"
+"bounding box of another object selected below"
+msgstr ""
+"The coordinates used as reference for the mirror operation.\n"
+"Can be:\n"
+"- Point -> a set of coordinates (x,y) around which the object is mirrored\n"
+"- Box -> a set of coordinates (x, y) obtained from the center of the\n"
+"bounding box of another object selected below"
+
+#: AppTools/ToolDblSided.py:189
+msgid "Point coordinates"
+msgstr "Point coordinates"
+
+#: AppTools/ToolDblSided.py:194
+msgid ""
+"Add the coordinates in format (x, y) through which the mirroring "
+"axis\n"
+" selected in 'MIRROR AXIS' pass.\n"
+"The (x, y) coordinates are captured by pressing SHIFT key\n"
+"and left mouse button click on canvas or you can enter the coordinates "
+"manually."
+msgstr ""
+"Add the coordinates in format (x, y) through which the mirroring "
+"axis\n"
+" selected in 'MIRROR AXIS' pass.\n"
+"The (x, y) coordinates are captured by pressing SHIFT key\n"
+"and left mouse button click on canvas or you can enter the coordinates "
+"manually."
+
+#: AppTools/ToolDblSided.py:218
+msgid ""
+"It can be of type: Gerber or Excellon or Geometry.\n"
+"The coordinates of the center of the bounding box are used\n"
+"as reference for mirror operation."
+msgstr ""
+"It can be of type: Gerber or Excellon or Geometry.\n"
+"The coordinates of the center of the bounding box are used\n"
+"as reference for mirror operation."
+
+#: AppTools/ToolDblSided.py:252
+msgid "Bounds Values"
+msgstr "Bounds Values"
+
+#: AppTools/ToolDblSided.py:254
+msgid ""
+"Select on canvas the object(s)\n"
+"for which to calculate bounds values."
+msgstr ""
+"Select on canvas the object(s)\n"
+"for which to calculate bounds values."
+
+#: AppTools/ToolDblSided.py:264
+msgid "X min"
+msgstr "X min"
+
+#: AppTools/ToolDblSided.py:266 AppTools/ToolDblSided.py:280
+msgid "Minimum location."
+msgstr "Minimum location."
+
+#: AppTools/ToolDblSided.py:278
+msgid "Y min"
+msgstr "Y min"
+
+#: AppTools/ToolDblSided.py:292
+msgid "X max"
+msgstr "X max"
+
+#: AppTools/ToolDblSided.py:294 AppTools/ToolDblSided.py:308
+msgid "Maximum location."
+msgstr "Maximum location."
+
+#: AppTools/ToolDblSided.py:306
+msgid "Y max"
+msgstr "Y max"
+
+#: AppTools/ToolDblSided.py:317
+msgid "Center point coordinates"
+msgstr "Center point coordinates"
+
+#: AppTools/ToolDblSided.py:319
+msgid "Centroid"
+msgstr "Centroid"
+
+#: AppTools/ToolDblSided.py:321
+msgid ""
+"The center point location for the rectangular\n"
+"bounding shape. Centroid. Format is (x, y)."
+msgstr ""
+"The center point location for the rectangular\n"
+"bounding shape. Centroid. Format is (x, y)."
+
+#: AppTools/ToolDblSided.py:330
+msgid "Calculate Bounds Values"
+msgstr "Calculate Bounds Values"
+
+#: AppTools/ToolDblSided.py:332
+msgid ""
+"Calculate the enveloping rectangular shape coordinates,\n"
+"for the selection of objects.\n"
+"The envelope shape is parallel with the X, Y axis."
+msgstr ""
+"Calculate the enveloping rectangular shape coordinates,\n"
+"for the selection of objects.\n"
+"The envelope shape is parallel with the X, Y axis."
+
+#: AppTools/ToolDblSided.py:352
+msgid "PCB Alignment"
+msgstr "PCB Alignment"
+
+#: AppTools/ToolDblSided.py:354 AppTools/ToolDblSided.py:456
+msgid ""
+"Creates an Excellon Object containing the\n"
+"specified alignment holes and their mirror\n"
+"images."
+msgstr ""
+"Creates an Excellon Object containing the\n"
+"specified alignment holes and their mirror\n"
+"images."
+
+#: AppTools/ToolDblSided.py:361
+msgid "Drill Diameter"
+msgstr "Drill Diameter"
+
+#: AppTools/ToolDblSided.py:390 AppTools/ToolDblSided.py:397
+msgid ""
+"The reference point used to create the second alignment drill\n"
+"from the first alignment drill, by doing mirror.\n"
+"It can be modified in the Mirror Parameters -> Reference section"
+msgstr ""
+"The reference point used to create the second alignment drill\n"
+"from the first alignment drill, by doing mirror.\n"
+"It can be modified in the Mirror Parameters -> Reference section"
+
+#: AppTools/ToolDblSided.py:410
+msgid "Alignment Drill Coordinates"
+msgstr "Alignment Drill Coordinates"
+
+#: AppTools/ToolDblSided.py:412
+msgid ""
+"Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For "
+"each set of (x, y) coordinates\n"
+"entered here, a pair of drills will be created:\n"
+"\n"
+"- one drill at the coordinates from the field\n"
+"- one drill in mirror position over the axis selected above in the 'Align "
+"Axis'."
+msgstr ""
+"Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For "
+"each set of (x, y) coordinates\n"
+"entered here, a pair of drills will be created:\n"
+"\n"
+"- one drill at the coordinates from the field\n"
+"- one drill in mirror position over the axis selected above in the 'Align "
+"Axis'."
+
+#: AppTools/ToolDblSided.py:420
+msgid "Drill coordinates"
+msgstr "Drill coordinates"
+
+#: AppTools/ToolDblSided.py:427
+msgid ""
+"Add alignment drill holes coordinates in the format: (x1, y1), (x2, "
+"y2), ... \n"
+"on one side of the alignment axis.\n"
+"\n"
+"The coordinates set can be obtained:\n"
+"- press SHIFT key and left mouse clicking on canvas. Then click Add.\n"
+"- press SHIFT key and left mouse clicking on canvas. Then Ctrl+V in the "
+"field.\n"
+"- press SHIFT key and left mouse clicking on canvas. Then RMB click in the "
+"field and click Paste.\n"
+"- by entering the coords manually in the format: (x1, y1), (x2, y2), ..."
+msgstr ""
+"Add alignment drill holes coordinates in the format: (x1, y1), (x2, "
+"y2), ... \n"
+"on one side of the alignment axis.\n"
+"\n"
+"The coordinates set can be obtained:\n"
+"- press SHIFT key and left mouse clicking on canvas. Then click Add.\n"
+"- press SHIFT key and left mouse clicking on canvas. Then Ctrl+V in the "
+"field.\n"
+"- press SHIFT key and left mouse clicking on canvas. Then RMB click in the "
+"field and click Paste.\n"
+"- by entering the coords manually in the format: (x1, y1), (x2, y2), ..."
+
+#: AppTools/ToolDblSided.py:442
+msgid "Delete Last"
+msgstr "Delete Last"
+
+#: AppTools/ToolDblSided.py:444
+msgid "Delete the last coordinates tuple in the list."
+msgstr "Delete the last coordinates tuple in the list."
+
+#: AppTools/ToolDblSided.py:454
+msgid "Create Excellon Object"
+msgstr "Create Excellon Object"
+
+#: AppTools/ToolDblSided.py:541
+msgid "2-Sided Tool"
+msgstr "2-Sided Tool"
+
+#: AppTools/ToolDblSided.py:581
+msgid ""
+"'Point' reference is selected and 'Point' coordinates are missing. Add them "
+"and retry."
+msgstr ""
+"'Point' reference is selected and 'Point' coordinates are missing. Add them "
+"and retry."
+
+#: AppTools/ToolDblSided.py:600
+msgid "There is no Box reference object loaded. Load one and retry."
+msgstr "There is no Box reference object loaded. Load one and retry."
+
+#: AppTools/ToolDblSided.py:612
+msgid "No value or wrong format in Drill Dia entry. Add it and retry."
+msgstr "No value or wrong format in Drill Dia entry. Add it and retry."
+
+#: AppTools/ToolDblSided.py:623
+msgid "There are no Alignment Drill Coordinates to use. Add them and retry."
+msgstr "There are no Alignment Drill Coordinates to use. Add them and retry."
+
+#: AppTools/ToolDblSided.py:648
+msgid "Excellon object with alignment drills created..."
+msgstr "Excellon object with alignment drills created..."
+
+#: AppTools/ToolDblSided.py:661 AppTools/ToolDblSided.py:704
+#: AppTools/ToolDblSided.py:748
+msgid "Only Gerber, Excellon and Geometry objects can be mirrored."
+msgstr "Only Gerber, Excellon and Geometry objects can be mirrored."
+
+#: AppTools/ToolDblSided.py:671 AppTools/ToolDblSided.py:715
+msgid ""
+"There are no Point coordinates in the Point field. Add coords and try "
+"again ..."
+msgstr ""
+"There are no Point coordinates in the Point field. Add coords and try "
+"again ..."
+
+#: AppTools/ToolDblSided.py:681 AppTools/ToolDblSided.py:725
+#: AppTools/ToolDblSided.py:762
+msgid "There is no Box object loaded ..."
+msgstr "There is no Box object loaded ..."
+
+#: AppTools/ToolDblSided.py:691 AppTools/ToolDblSided.py:735
+#: AppTools/ToolDblSided.py:772
+msgid "was mirrored"
+msgstr "was mirrored"
+
+#: AppTools/ToolDblSided.py:700 AppTools/ToolPunchGerber.py:533
+msgid "There is no Excellon object loaded ..."
+msgstr "There is no Excellon object loaded ..."
+
+#: AppTools/ToolDblSided.py:744
+msgid "There is no Geometry object loaded ..."
+msgstr "There is no Geometry object loaded ..."
+
+#: AppTools/ToolDblSided.py:818 App_Main.py:4322 App_Main.py:4477
+msgid "Failed. No object(s) selected..."
+msgstr "Failed. No object(s) selected..."
+
+#: AppTools/ToolDistance.py:57 AppTools/ToolDistanceMin.py:50
+msgid "Those are the units in which the distance is measured."
+msgstr "Those are the units in which the distance is measured."
+
+#: AppTools/ToolDistance.py:58 AppTools/ToolDistanceMin.py:51
+msgid "METRIC (mm)"
+msgstr "METRIC (mm)"
+
+#: AppTools/ToolDistance.py:58 AppTools/ToolDistanceMin.py:51
+msgid "INCH (in)"
+msgstr "INCH (in)"
+
+#: AppTools/ToolDistance.py:64
+msgid "Snap to center"
+msgstr "Snap to center"
+
+#: AppTools/ToolDistance.py:66
+msgid ""
+"Mouse cursor will snap to the center of the pad/drill\n"
+"when it is hovering over the geometry of the pad/drill."
+msgstr ""
+"Mouse cursor will snap to the center of the pad/drill\n"
+"when it is hovering over the geometry of the pad/drill."
+
+#: AppTools/ToolDistance.py:76
+msgid "Start Coords"
+msgstr "Start Coords"
+
+#: AppTools/ToolDistance.py:77 AppTools/ToolDistance.py:82
+msgid "This is measuring Start point coordinates."
+msgstr "This is measuring Start point coordinates."
+
+#: AppTools/ToolDistance.py:87
+msgid "Stop Coords"
+msgstr "Stop Coords"
+
+#: AppTools/ToolDistance.py:88 AppTools/ToolDistance.py:93
+msgid "This is the measuring Stop point coordinates."
+msgstr "This is the measuring Stop point coordinates."
+
+#: AppTools/ToolDistance.py:98 AppTools/ToolDistanceMin.py:62
+msgid "Dx"
+msgstr "Dx"
+
+#: AppTools/ToolDistance.py:99 AppTools/ToolDistance.py:104
+#: AppTools/ToolDistanceMin.py:63 AppTools/ToolDistanceMin.py:92
+msgid "This is the distance measured over the X axis."
+msgstr "This is the distance measured over the X axis."
+
+#: AppTools/ToolDistance.py:109 AppTools/ToolDistanceMin.py:65
+msgid "Dy"
+msgstr "Dy"
+
+#: AppTools/ToolDistance.py:110 AppTools/ToolDistance.py:115
+#: AppTools/ToolDistanceMin.py:66 AppTools/ToolDistanceMin.py:97
+msgid "This is the distance measured over the Y axis."
+msgstr "This is the distance measured over the Y axis."
+
+#: AppTools/ToolDistance.py:121 AppTools/ToolDistance.py:126
+#: AppTools/ToolDistanceMin.py:69 AppTools/ToolDistanceMin.py:102
+msgid "This is orientation angle of the measuring line."
+msgstr "This is orientation angle of the measuring line."
+
+#: AppTools/ToolDistance.py:131 AppTools/ToolDistanceMin.py:71
+msgid "DISTANCE"
+msgstr "DISTANCE"
+
+#: AppTools/ToolDistance.py:132 AppTools/ToolDistance.py:137
+msgid "This is the point to point Euclidian distance."
+msgstr "This is the point to point Euclidian distance."
+
+#: AppTools/ToolDistance.py:142 AppTools/ToolDistance.py:339
+#: AppTools/ToolDistanceMin.py:114
+msgid "Measure"
+msgstr "Measure"
+
+#: AppTools/ToolDistance.py:274
+msgid "Working"
+msgstr "Working"
+
+#: AppTools/ToolDistance.py:279
+msgid "MEASURING: Click on the Start point ..."
+msgstr "MEASURING: Click on the Start point ..."
+
+#: AppTools/ToolDistance.py:389
+msgid "Distance Tool finished."
+msgstr "Distance Tool finished."
+
+#: AppTools/ToolDistance.py:461
+msgid "Pads overlapped. Aborting."
+msgstr "Pads overlapped. Aborting."
+
+#: AppTools/ToolDistance.py:489
+msgid "Distance Tool cancelled."
+msgstr "Distance Tool cancelled."
+
+#: AppTools/ToolDistance.py:494
+msgid "MEASURING: Click on the Destination point ..."
+msgstr "MEASURING: Click on the Destination point ..."
+
+#: AppTools/ToolDistance.py:503 AppTools/ToolDistanceMin.py:284
+msgid "MEASURING"
+msgstr "MEASURING"
+
+#: AppTools/ToolDistance.py:504 AppTools/ToolDistanceMin.py:285
+msgid "Result"
+msgstr "Result"
+
+#: AppTools/ToolDistanceMin.py:31 AppTools/ToolDistanceMin.py:143
+msgid "Minimum Distance Tool"
+msgstr "Minimum Distance Tool"
+
+#: AppTools/ToolDistanceMin.py:54
+msgid "First object point"
+msgstr "First object point"
+
+#: AppTools/ToolDistanceMin.py:55 AppTools/ToolDistanceMin.py:80
+msgid ""
+"This is first object point coordinates.\n"
+"This is the start point for measuring distance."
+msgstr ""
+"This is first object point coordinates.\n"
+"This is the start point for measuring distance."
+
+#: AppTools/ToolDistanceMin.py:58
+msgid "Second object point"
+msgstr "Second object point"
+
+#: AppTools/ToolDistanceMin.py:59 AppTools/ToolDistanceMin.py:86
+msgid ""
+"This is second object point coordinates.\n"
+"This is the end point for measuring distance."
+msgstr ""
+"This is second object point coordinates.\n"
+"This is the end point for measuring distance."
+
+#: AppTools/ToolDistanceMin.py:72 AppTools/ToolDistanceMin.py:107
+msgid "This is the point to point Euclidean distance."
+msgstr "This is the point to point Euclidean distance."
+
+#: AppTools/ToolDistanceMin.py:74
+msgid "Half Point"
+msgstr "Half Point"
+
+#: AppTools/ToolDistanceMin.py:75 AppTools/ToolDistanceMin.py:112
+msgid "This is the middle point of the point to point Euclidean distance."
+msgstr "This is the middle point of the point to point Euclidean distance."
+
+#: AppTools/ToolDistanceMin.py:117
+msgid "Jump to Half Point"
+msgstr "Jump to Half Point"
+
+#: AppTools/ToolDistanceMin.py:154
+msgid ""
+"Select two objects and no more, to measure the distance between them ..."
+msgstr ""
+"Select two objects and no more, to measure the distance between them ..."
+
+#: AppTools/ToolDistanceMin.py:195 AppTools/ToolDistanceMin.py:216
+#: AppTools/ToolDistanceMin.py:225 AppTools/ToolDistanceMin.py:246
+msgid "Select two objects and no more. Currently the selection has objects: "
+msgstr "Select two objects and no more. Currently the selection has objects: "
+
+#: AppTools/ToolDistanceMin.py:293
+msgid "Objects intersects or touch at"
+msgstr "Objects intersects or touch at"
+
+#: AppTools/ToolDistanceMin.py:299
+msgid "Jumped to the half point between the two selected objects"
+msgstr "Jumped to the half point between the two selected objects"
+
+#: AppTools/ToolEtchCompensation.py:74 AppTools/ToolInvertGerber.py:74
+msgid "Gerber object that will be inverted."
+msgstr "Gerber object that will be inverted."
+
+#: AppTools/ToolEtchCompensation.py:83 AppTools/ToolInvertGerber.py:83
+msgid "Parameters for this tool"
+msgstr "Parameters for this tool"
+
+#: AppTools/ToolEtchCompensation.py:88
+#| msgid "Thickness"
+msgid "Copper Thickness"
+msgstr "Copper Thickness"
+
+#: AppTools/ToolEtchCompensation.py:90
+#| msgid ""
+#| "How thick the copper growth is intended to be.\n"
+#| "In microns."
+msgid ""
+"The thickness of the copper foil.\n"
+"In microns [um]."
+msgstr ""
+"The thickness of the copper foil.\n"
+"In microns [um]."
+
+#: AppTools/ToolEtchCompensation.py:101
+#| msgid "Location"
+msgid "Ratio"
+msgstr "Ratio"
+
+#: AppTools/ToolEtchCompensation.py:103
+msgid ""
+"The ratio of lateral etch versus depth etch.\n"
+"Can be:\n"
+"- custom -> the user will enter a custom value\n"
+"- preselection -> value which depends on a selection of etchants"
+msgstr ""
+"The ratio of lateral etch versus depth etch.\n"
+"Can be:\n"
+"- custom -> the user will enter a custom value\n"
+"- preselection -> value which depends on a selection of etchants"
+
+#: AppTools/ToolEtchCompensation.py:109
+#| msgid "Selection"
+msgid "PreSelection"
+msgstr "PreSelection"
+
+#: AppTools/ToolEtchCompensation.py:121
+msgid "Compensate"
+msgstr "Compensate"
+
+#: AppTools/ToolEtchCompensation.py:123
+msgid ""
+"Will increase the copper features thickness to compensate the lateral etch."
+msgstr ""
+"Will increase the copper features thickness to compensate the lateral etch."
+
+#: AppTools/ToolEtchCompensation.py:181 AppTools/ToolInvertGerber.py:184
+msgid "Invert Tool"
+msgstr "Invert Tool"
+
+#: AppTools/ToolExtractDrills.py:29 AppTools/ToolExtractDrills.py:295
+msgid "Extract Drills"
+msgstr "Extract Drills"
+
+#: AppTools/ToolExtractDrills.py:62
+msgid "Gerber from which to extract drill holes"
+msgstr "Gerber from which to extract drill holes"
+
+#: AppTools/ToolExtractDrills.py:297
+msgid "Extract drills from a given Gerber file."
+msgstr "Extract drills from a given Gerber file."
+
+#: AppTools/ToolExtractDrills.py:478 AppTools/ToolExtractDrills.py:563
+#: AppTools/ToolExtractDrills.py:648
+msgid "No drills extracted. Try different parameters."
+msgstr "No drills extracted. Try different parameters."
+
+#: AppTools/ToolFiducials.py:56
+msgid "Fiducials Coordinates"
+msgstr "Fiducials Coordinates"
+
+#: AppTools/ToolFiducials.py:58
+msgid ""
+"A table with the fiducial points coordinates,\n"
+"in the format (x, y)."
+msgstr ""
+"A table with the fiducial points coordinates,\n"
+"in the format (x, y)."
+
+#: AppTools/ToolFiducials.py:191
+msgid ""
+"- 'Auto' - automatic placement of fiducials in the corners of the bounding "
+"box.\n"
+" - 'Manual' - manual placement of fiducials."
+msgstr ""
+"- 'Auto' - automatic placement of fiducials in the corners of the bounding "
+"box.\n"
+" - 'Manual' - manual placement of fiducials."
+
+#: AppTools/ToolFiducials.py:237
+msgid "Thickness of the line that makes the fiducial."
+msgstr "Thickness of the line that makes the fiducial."
+
+#: AppTools/ToolFiducials.py:259
+msgid "Copper Gerber"
+msgstr "Copper Gerber"
+
+#: AppTools/ToolFiducials.py:268
+msgid "Add Fiducial"
+msgstr "Add Fiducial"
+
+#: AppTools/ToolFiducials.py:270
+msgid "Will add a polygon on the copper layer to serve as fiducial."
+msgstr "Will add a polygon on the copper layer to serve as fiducial."
+
+#: AppTools/ToolFiducials.py:286
+msgid "Soldermask Gerber"
+msgstr "Soldermask Gerber"
+
+#: AppTools/ToolFiducials.py:288
+msgid "The Soldermask Gerber object."
+msgstr "The Soldermask Gerber object."
+
+#: AppTools/ToolFiducials.py:300
+msgid "Add Soldermask Opening"
+msgstr "Add Soldermask Opening"
+
+#: AppTools/ToolFiducials.py:302
+msgid ""
+"Will add a polygon on the soldermask layer\n"
+"to serve as fiducial opening.\n"
+"The diameter is always double of the diameter\n"
+"for the copper fiducial."
+msgstr ""
+"Will add a polygon on the soldermask layer\n"
+"to serve as fiducial opening.\n"
+"The diameter is always double of the diameter\n"
+"for the copper fiducial."
+
+#: AppTools/ToolFiducials.py:517
+msgid "Click to add first Fiducial. Bottom Left..."
+msgstr "Click to add first Fiducial. Bottom Left..."
+
+#: AppTools/ToolFiducials.py:781
+msgid "Click to add the last fiducial. Top Right..."
+msgstr "Click to add the last fiducial. Top Right..."
+
+#: AppTools/ToolFiducials.py:786
+msgid "Click to add the second fiducial. Top Left or Bottom Right..."
+msgstr "Click to add the second fiducial. Top Left or Bottom Right..."
+
+#: AppTools/ToolFiducials.py:789 AppTools/ToolFiducials.py:798
+msgid "Done. All fiducials have been added."
+msgstr "Done. All fiducials have been added."
+
+#: AppTools/ToolFiducials.py:875
+msgid "Fiducials Tool exit."
+msgstr "Fiducials Tool exit."
+
+#: AppTools/ToolFilm.py:42
+msgid "Film PCB"
+msgstr "Film PCB"
+
+#: AppTools/ToolFilm.py:73
+msgid ""
+"Specify the type of object for which to create the film.\n"
+"The object can be of type: Gerber or Geometry.\n"
+"The selection here decide the type of objects that will be\n"
+"in the Film Object combobox."
+msgstr ""
+"Specify the type of object for which to create the film.\n"
+"The object can be of type: Gerber or Geometry.\n"
+"The selection here decide the type of objects that will be\n"
+"in the Film Object combobox."
+
+#: AppTools/ToolFilm.py:96
+msgid ""
+"Specify the type of object to be used as an container for\n"
+"film creation. It can be: Gerber or Geometry type.The selection here decide "
+"the type of objects that will be\n"
+"in the Box Object combobox."
+msgstr ""
+"Specify the type of object to be used as an container for\n"
+"film creation. It can be: Gerber or Geometry type.The selection here decide "
+"the type of objects that will be\n"
+"in the Box Object combobox."
+
+#: AppTools/ToolFilm.py:256
+msgid "Film Parameters"
+msgstr "Film Parameters"
+
+#: AppTools/ToolFilm.py:317
+msgid "Punch drill holes"
+msgstr "Punch drill holes"
+
+#: AppTools/ToolFilm.py:318
+msgid ""
+"When checked the generated film will have holes in pads when\n"
+"the generated film is positive. This is done to help drilling,\n"
+"when done manually."
+msgstr ""
+"When checked the generated film will have holes in pads when\n"
+"the generated film is positive. This is done to help drilling,\n"
+"when done manually."
+
+#: AppTools/ToolFilm.py:336
+msgid "Source"
+msgstr "Source"
+
+#: AppTools/ToolFilm.py:338
+msgid ""
+"The punch hole source can be:\n"
+"- Excellon -> an Excellon holes center will serve as reference.\n"
+"- Pad Center -> will try to use the pads center as reference."
+msgstr ""
+"The punch hole source can be:\n"
+"- Excellon -> an Excellon holes center will serve as reference.\n"
+"- Pad Center -> will try to use the pads center as reference."
+
+#: AppTools/ToolFilm.py:343
+msgid "Pad center"
+msgstr "Pad center"
+
+#: AppTools/ToolFilm.py:348
+msgid "Excellon Obj"
+msgstr "Excellon Obj"
+
+#: AppTools/ToolFilm.py:350
+msgid ""
+"Remove the geometry of Excellon from the Film to create the holes in pads."
+msgstr ""
+"Remove the geometry of Excellon from the Film to create the holes in pads."
+
+#: AppTools/ToolFilm.py:364
+msgid "Punch Size"
+msgstr "Punch Size"
+
+#: AppTools/ToolFilm.py:365
+msgid "The value here will control how big is the punch hole in the pads."
+msgstr "The value here will control how big is the punch hole in the pads."
+
+#: AppTools/ToolFilm.py:485
+msgid "Save Film"
+msgstr "Save Film"
+
+#: AppTools/ToolFilm.py:487
+msgid ""
+"Create a Film for the selected object, within\n"
+"the specified box. Does not create a new \n"
+" FlatCAM object, but directly save it in the\n"
+"selected format."
+msgstr ""
+"Create a Film for the selected object, within\n"
+"the specified box. Does not create a new \n"
+" FlatCAM object, but directly save it in the\n"
+"selected format."
+
+#: AppTools/ToolFilm.py:649
+msgid ""
+"Using the Pad center does not work on Geometry objects. Only a Gerber object "
+"has pads."
+msgstr ""
+"Using the Pad center does not work on Geometry objects. Only a Gerber object "
+"has pads."
+
+#: AppTools/ToolFilm.py:659
+msgid "No FlatCAM object selected. Load an object for Film and retry."
+msgstr "No FlatCAM object selected. Load an object for Film and retry."
+
+#: AppTools/ToolFilm.py:666
+msgid "No FlatCAM object selected. Load an object for Box and retry."
+msgstr "No FlatCAM object selected. Load an object for Box and retry."
+
+#: AppTools/ToolFilm.py:670
+msgid "No FlatCAM object selected."
+msgstr "No FlatCAM object selected."
+
+#: AppTools/ToolFilm.py:681
+msgid "Generating Film ..."
+msgstr "Generating Film ..."
+
+#: AppTools/ToolFilm.py:730 AppTools/ToolFilm.py:734
+msgid "Export positive film"
+msgstr "Export positive film"
+
+#: AppTools/ToolFilm.py:767
+msgid ""
+"No Excellon object selected. Load an object for punching reference and retry."
+msgstr ""
+"No Excellon object selected. Load an object for punching reference and retry."
+
+#: AppTools/ToolFilm.py:791
+msgid ""
+" Could not generate punched hole film because the punch hole sizeis bigger "
+"than some of the apertures in the Gerber object."
+msgstr ""
+" Could not generate punched hole film because the punch hole sizeis bigger "
+"than some of the apertures in the Gerber object."
+
+#: AppTools/ToolFilm.py:803
+msgid ""
+"Could not generate punched hole film because the punch hole sizeis bigger "
+"than some of the apertures in the Gerber object."
+msgstr ""
+"Could not generate punched hole film because the punch hole sizeis bigger "
+"than some of the apertures in the Gerber object."
+
+#: AppTools/ToolFilm.py:821
+msgid ""
+"Could not generate punched hole film because the newly created object "
+"geometry is the same as the one in the source object geometry..."
+msgstr ""
+"Could not generate punched hole film because the newly created object "
+"geometry is the same as the one in the source object geometry..."
+
+#: AppTools/ToolFilm.py:876 AppTools/ToolFilm.py:880
+msgid "Export negative film"
+msgstr "Export negative film"
+
+#: AppTools/ToolFilm.py:941 AppTools/ToolFilm.py:1124
+#: AppTools/ToolPanelize.py:441
+msgid "No object Box. Using instead"
+msgstr "No object Box. Using instead"
+
+#: AppTools/ToolFilm.py:1057 AppTools/ToolFilm.py:1237
+msgid "Film file exported to"
+msgstr "Film file exported to"
+
+#: AppTools/ToolFilm.py:1060 AppTools/ToolFilm.py:1240
+msgid "Generating Film ... Please wait."
+msgstr "Generating Film ... Please wait."
+
+#: AppTools/ToolImage.py:24
+msgid "Image as Object"
+msgstr "Image as Object"
+
+#: AppTools/ToolImage.py:33
+msgid "Image to PCB"
+msgstr "Image to PCB"
+
+#: AppTools/ToolImage.py:56
+msgid ""
+"Specify the type of object to create from the image.\n"
+"It can be of type: Gerber or Geometry."
+msgstr ""
+"Specify the type of object to create from the image.\n"
+"It can be of type: Gerber or Geometry."
+
+#: AppTools/ToolImage.py:65
+msgid "DPI value"
+msgstr "DPI value"
+
+#: AppTools/ToolImage.py:66
+msgid "Specify a DPI value for the image."
+msgstr "Specify a DPI value for the image."
+
+#: AppTools/ToolImage.py:72
+msgid "Level of detail"
+msgstr "Level of detail"
+
+#: AppTools/ToolImage.py:81
+msgid "Image type"
+msgstr "Image type"
+
+#: AppTools/ToolImage.py:83
+msgid ""
+"Choose a method for the image interpretation.\n"
+"B/W means a black & white image. Color means a colored image."
+msgstr ""
+"Choose a method for the image interpretation.\n"
+"B/W means a black & white image. Color means a colored image."
+
+#: AppTools/ToolImage.py:92 AppTools/ToolImage.py:107 AppTools/ToolImage.py:120
+#: AppTools/ToolImage.py:133
+msgid "Mask value"
+msgstr "Mask value"
+
+#: AppTools/ToolImage.py:94
+msgid ""
+"Mask for monochrome image.\n"
+"Takes values between [0 ... 255].\n"
+"Decides the level of details to include\n"
+"in the resulting geometry.\n"
+"0 means no detail and 255 means everything \n"
+"(which is totally black)."
+msgstr ""
+"Mask for monochrome image.\n"
+"Takes values between [0 ... 255].\n"
+"Decides the level of details to include\n"
+"in the resulting geometry.\n"
+"0 means no detail and 255 means everything \n"
+"(which is totally black)."
+
+#: AppTools/ToolImage.py:109
+msgid ""
+"Mask for RED color.\n"
+"Takes values between [0 ... 255].\n"
+"Decides the level of details to include\n"
+"in the resulting geometry."
+msgstr ""
+"Mask for RED color.\n"
+"Takes values between [0 ... 255].\n"
+"Decides the level of details to include\n"
+"in the resulting geometry."
+
+#: AppTools/ToolImage.py:122
+msgid ""
+"Mask for GREEN color.\n"
+"Takes values between [0 ... 255].\n"
+"Decides the level of details to include\n"
+"in the resulting geometry."
+msgstr ""
+"Mask for GREEN color.\n"
+"Takes values between [0 ... 255].\n"
+"Decides the level of details to include\n"
+"in the resulting geometry."
+
+#: AppTools/ToolImage.py:135
+msgid ""
+"Mask for BLUE color.\n"
+"Takes values between [0 ... 255].\n"
+"Decides the level of details to include\n"
+"in the resulting geometry."
+msgstr ""
+"Mask for BLUE color.\n"
+"Takes values between [0 ... 255].\n"
+"Decides the level of details to include\n"
+"in the resulting geometry."
+
+#: AppTools/ToolImage.py:143
+msgid "Import image"
+msgstr "Import image"
+
+#: AppTools/ToolImage.py:145
+msgid "Open a image of raster type and then import it in FlatCAM."
+msgstr "Open a image of raster type and then import it in FlatCAM."
+
+#: AppTools/ToolImage.py:182
+msgid "Image Tool"
+msgstr "Image Tool"
+
+#: AppTools/ToolImage.py:234 AppTools/ToolImage.py:237
+msgid "Import IMAGE"
+msgstr "Import IMAGE"
+
+#: AppTools/ToolImage.py:277 App_Main.py:8264 App_Main.py:8311
+msgid ""
+"Not supported type is picked as parameter. Only Geometry and Gerber are "
+"supported"
+msgstr ""
+"Not supported type is picked as parameter. Only Geometry and Gerber are "
+"supported"
+
+#: AppTools/ToolImage.py:285
+msgid "Importing Image"
+msgstr "Importing Image"
+
+#: AppTools/ToolImage.py:297 AppTools/ToolPDF.py:154 App_Main.py:8289
+#: App_Main.py:8335 App_Main.py:8399 App_Main.py:8466 App_Main.py:8532
+#: App_Main.py:8597 App_Main.py:8654
+msgid "Opened"
+msgstr "Opened"
+
+#: AppTools/ToolInvertGerber.py:123
+msgid "Invert Gerber"
+msgstr "Invert Gerber"
+
+#: AppTools/ToolInvertGerber.py:125
+msgid ""
+"Will invert the Gerber object: areas that have copper\n"
+"will be empty of copper and previous empty area will be\n"
+"filled with copper."
+msgstr ""
+"Will invert the Gerber object: areas that have copper\n"
+"will be empty of copper and previous empty area will be\n"
+"filled with copper."
+
+#: AppTools/ToolMove.py:102
+msgid "MOVE: Click on the Start point ..."
+msgstr "MOVE: Click on the Start point ..."
+
+#: AppTools/ToolMove.py:113
+msgid "Cancelled. No object(s) to move."
+msgstr "Cancelled. No object(s) to move."
+
+#: AppTools/ToolMove.py:140
+msgid "MOVE: Click on the Destination point ..."
+msgstr "MOVE: Click on the Destination point ..."
+
+#: AppTools/ToolMove.py:163
+msgid "Moving..."
+msgstr "Moving..."
+
+#: AppTools/ToolMove.py:166
+msgid "No object(s) selected."
+msgstr "No object(s) selected."
+
+#: AppTools/ToolMove.py:221
+msgid "Error when mouse left click."
+msgstr "Error when mouse left click."
+
+#: AppTools/ToolNCC.py:42
+msgid "Non-Copper Clearing"
+msgstr "Non-Copper Clearing"
+
+#: AppTools/ToolNCC.py:88
+msgid ""
+"Specify the type of object to be cleared of excess copper.\n"
+"It can be of type: Gerber or Geometry.\n"
+"What is selected here will dictate the kind\n"
+"of objects that will populate the 'Object' combobox."
+msgstr ""
+"Specify the type of object to be cleared of excess copper.\n"
+"It can be of type: Gerber or Geometry.\n"
+"What is selected here will dictate the kind\n"
+"of objects that will populate the 'Object' combobox."
+
+#: AppTools/ToolNCC.py:110
+msgid "Object to be cleared of excess copper."
+msgstr "Object to be cleared of excess copper."
+
+#: AppTools/ToolNCC.py:122
+msgid ""
+"Tools pool from which the algorithm\n"
+"will pick the ones used for copper clearing."
+msgstr ""
+"Tools pool from which the algorithm\n"
+"will pick the ones used for copper clearing."
+
+#: AppTools/ToolNCC.py:138
+msgid ""
+"This is the Tool Number.\n"
+"Non copper clearing will start with the tool with the biggest \n"
+"diameter, continuing until there are no more tools.\n"
+"Only tools that create NCC clearing geometry will still be present\n"
+"in the resulting geometry. This is because with some tools\n"
+"this function will not be able to create painting geometry."
+msgstr ""
+"This is the Tool Number.\n"
+"Non copper clearing will start with the tool with the biggest \n"
+"diameter, continuing until there are no more tools.\n"
+"Only tools that create NCC clearing geometry will still be present\n"
+"in the resulting geometry. This is because with some tools\n"
+"this function will not be able to create painting geometry."
+
+#: AppTools/ToolNCC.py:146
+msgid ""
+"Tool Diameter. It's value (in current FlatCAM units)\n"
+"is the cut width into the material."
+msgstr ""
+"Tool Diameter. It's value (in current FlatCAM units)\n"
+"is the cut width into the material."
+
+#: AppTools/ToolNCC.py:150
+msgid ""
+"The Tool Type (TT) can be:\n"
+"- Circular with 1 ... 4 teeth -> it is informative only. Being circular,\n"
+"the cut width in material is exactly the tool diameter.\n"
+"- Ball -> informative only and make reference to the Ball type endmill.\n"
+"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI "
+"form\n"
+"and enable two additional UI form fields in the resulting geometry: V-Tip "
+"Dia and\n"
+"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter "
+"such\n"
+"as the cut width into material will be equal with the value in the Tool "
+"Diameter\n"
+"column of this table.\n"
+"Choosing the 'V-Shape' Tool Type automatically will select the Operation "
+"Type\n"
+"in the resulting geometry as Isolation."
+msgstr ""
+"The Tool Type (TT) can be:\n"
+"- Circular with 1 ... 4 teeth -> it is informative only. Being circular,\n"
+"the cut width in material is exactly the tool diameter.\n"
+"- Ball -> informative only and make reference to the Ball type endmill.\n"
+"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI "
+"form\n"
+"and enable two additional UI form fields in the resulting geometry: V-Tip "
+"Dia and\n"
+"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter "
+"such\n"
+"as the cut width into material will be equal with the value in the Tool "
+"Diameter\n"
+"column of this table.\n"
+"Choosing the 'V-Shape' Tool Type automatically will select the Operation "
+"Type\n"
+"in the resulting geometry as Isolation."
+
+#: AppTools/ToolNCC.py:296 AppTools/ToolPaint.py:278
+msgid ""
+"Add a new tool to the Tool Table\n"
+"with the diameter specified above."
+msgstr ""
+"Add a new tool to the Tool Table\n"
+"with the diameter specified above."
+
+#: AppTools/ToolNCC.py:318 AppTools/ToolPaint.py:300
+#: AppTools/ToolSolderPaste.py:130
+msgid ""
+"Delete a selection of tools in the Tool Table\n"
+"by first selecting a row(s) in the Tool Table."
+msgstr ""
+"Delete a selection of tools in the Tool Table\n"
+"by first selecting a row(s) in the Tool Table."
+
+#: AppTools/ToolNCC.py:554
+msgid ""
+"The type of FlatCAM object to be used as non copper clearing reference.\n"
+"It can be Gerber, Excellon or Geometry."
+msgstr ""
+"The type of FlatCAM object to be used as non copper clearing reference.\n"
+"It can be Gerber, Excellon or Geometry."
+
+#: AppTools/ToolNCC.py:597 AppTools/ToolPaint.py:536
+msgid "Generate Geometry"
+msgstr "Generate Geometry"
+
+#: AppTools/ToolNCC.py:932 AppTools/ToolNCC.py:1431 AppTools/ToolPaint.py:857
+#: AppTools/ToolSolderPaste.py:568 AppTools/ToolSolderPaste.py:893
+#: App_Main.py:4190
+msgid "Please enter a tool diameter with non-zero value, in Float format."
+msgstr "Please enter a tool diameter with non-zero value, in Float format."
+
+#: AppTools/ToolNCC.py:936 AppTools/ToolPaint.py:861
+#: AppTools/ToolSolderPaste.py:572 App_Main.py:4194
+msgid "Adding Tool cancelled"
+msgstr "Adding Tool cancelled"
+
+#: AppTools/ToolNCC.py:1425 AppTools/ToolPaint.py:1183
+#: AppTools/ToolSolderPaste.py:888
+msgid "Please enter a tool diameter to add, in Float format."
+msgstr "Please enter a tool diameter to add, in Float format."
+
+#: AppTools/ToolNCC.py:1456 AppTools/ToolNCC.py:4065 AppTools/ToolPaint.py:1207
+#: AppTools/ToolPaint.py:3608 AppTools/ToolSolderPaste.py:917
+msgid "Cancelled. Tool already in Tool Table."
+msgstr "Cancelled. Tool already in Tool Table."
+
+#: AppTools/ToolNCC.py:1463 AppTools/ToolNCC.py:4082 AppTools/ToolPaint.py:1212
+#: AppTools/ToolPaint.py:3625
+msgid "New tool added to Tool Table."
+msgstr "New tool added to Tool Table."
+
+#: AppTools/ToolNCC.py:1507 AppTools/ToolPaint.py:1256
+msgid "Tool from Tool Table was edited."
+msgstr "Tool from Tool Table was edited."
+
+#: AppTools/ToolNCC.py:1519 AppTools/ToolPaint.py:1268
+#: AppTools/ToolSolderPaste.py:978
+msgid "Cancelled. New diameter value is already in the Tool Table."
+msgstr "Cancelled. New diameter value is already in the Tool Table."
+
+#: AppTools/ToolNCC.py:1571 AppTools/ToolPaint.py:1366
+msgid "Delete failed. Select a tool to delete."
+msgstr "Delete failed. Select a tool to delete."
+
+#: AppTools/ToolNCC.py:1577 AppTools/ToolPaint.py:1372
+msgid "Tool(s) deleted from Tool Table."
+msgstr "Tool(s) deleted from Tool Table."
+
+#: AppTools/ToolNCC.py:1620
+msgid "Wrong Tool Dia value format entered, use a number."
+msgstr "Wrong Tool Dia value format entered, use a number."
+
+#: AppTools/ToolNCC.py:1629 AppTools/ToolPaint.py:1423
+msgid "No selected tools in Tool Table."
+msgstr "No selected tools in Tool Table."
+
+#: AppTools/ToolNCC.py:1705 AppTools/ToolPaint.py:1599
+msgid "Click the end point of the paint area."
+msgstr "Click the end point of the paint area."
+
+#: AppTools/ToolNCC.py:1985 AppTools/ToolNCC.py:3010
+msgid "NCC Tool. Preparing non-copper polygons."
+msgstr "NCC Tool. Preparing non-copper polygons."
+
+#: AppTools/ToolNCC.py:2044 AppTools/ToolNCC.py:3138
+msgid "NCC Tool. Calculate 'empty' area."
+msgstr "NCC Tool. Calculate 'empty' area."
+
+#: AppTools/ToolNCC.py:2063 AppTools/ToolNCC.py:2172 AppTools/ToolNCC.py:2187
+#: AppTools/ToolNCC.py:3151 AppTools/ToolNCC.py:3256 AppTools/ToolNCC.py:3271
+#: AppTools/ToolNCC.py:3537 AppTools/ToolNCC.py:3638 AppTools/ToolNCC.py:3653
+msgid "Buffering finished"
+msgstr "Buffering finished"
+
+#: AppTools/ToolNCC.py:2071 AppTools/ToolNCC.py:2194 AppTools/ToolNCC.py:3159
+#: AppTools/ToolNCC.py:3278 AppTools/ToolNCC.py:3544 AppTools/ToolNCC.py:3660
+msgid "Could not get the extent of the area to be non copper cleared."
+msgstr "Could not get the extent of the area to be non copper cleared."
+
+#: AppTools/ToolNCC.py:2101 AppTools/ToolNCC.py:2180 AppTools/ToolNCC.py:3186
+#: AppTools/ToolNCC.py:3263 AppTools/ToolNCC.py:3564 AppTools/ToolNCC.py:3645
+msgid ""
+"Isolation geometry is broken. Margin is less than isolation tool diameter."
+msgstr ""
+"Isolation geometry is broken. Margin is less than isolation tool diameter."
+
+#: AppTools/ToolNCC.py:2197 AppTools/ToolNCC.py:3282 AppTools/ToolNCC.py:3663
+msgid "The selected object is not suitable for copper clearing."
+msgstr "The selected object is not suitable for copper clearing."
+
+#: AppTools/ToolNCC.py:2204 AppTools/ToolNCC.py:3289
+msgid "NCC Tool. Finished calculation of 'empty' area."
+msgstr "NCC Tool. Finished calculation of 'empty' area."
+
+#: AppTools/ToolNCC.py:2247
+msgid "Clearing polygon with method: lines."
+msgstr "Clearing polygon with method: lines."
+
+#: AppTools/ToolNCC.py:2257
+msgid "Failed. Clearing polygon with method: seed."
+msgstr "Failed. Clearing polygon with method: seed."
+
+#: AppTools/ToolNCC.py:2266
+msgid "Failed. Clearing polygon with method: standard."
+msgstr "Failed. Clearing polygon with method: standard."
+
+#: AppTools/ToolNCC.py:2280
+msgid "Geometry could not be cleared completely"
+msgstr "Geometry could not be cleared completely"
+
+#: AppTools/ToolNCC.py:2305 AppTools/ToolNCC.py:2307 AppTools/ToolNCC.py:2962
+#: AppTools/ToolNCC.py:2964
+msgid "Non-Copper clearing ..."
+msgstr "Non-Copper clearing ..."
+
+#: AppTools/ToolNCC.py:2354 AppTools/ToolNCC.py:3106
+msgid ""
+"NCC Tool. Finished non-copper polygons. Normal copper clearing task started."
+msgstr ""
+"NCC Tool. Finished non-copper polygons. Normal copper clearing task started."
+
+#: AppTools/ToolNCC.py:2390 AppTools/ToolNCC.py:2638
+msgid "NCC Tool failed creating bounding box."
+msgstr "NCC Tool failed creating bounding box."
+
+#: AppTools/ToolNCC.py:2405 AppTools/ToolNCC.py:2655 AppTools/ToolNCC.py:3302
+#: AppTools/ToolNCC.py:3688
+msgid "NCC Tool clearing with tool diameter"
+msgstr "NCC Tool clearing with tool diameter"
+
+#: AppTools/ToolNCC.py:2405 AppTools/ToolNCC.py:2655 AppTools/ToolNCC.py:3302
+#: AppTools/ToolNCC.py:3688
+msgid "started."
+msgstr "started."
+
+#: AppTools/ToolNCC.py:2563 AppTools/ToolNCC.py:3463
+msgid ""
+"There is no NCC 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 ""
+"There is no NCC 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."
+
+#: AppTools/ToolNCC.py:2572 AppTools/ToolNCC.py:3472
+msgid "NCC Tool clear all done."
+msgstr "NCC Tool clear all done."
+
+#: AppTools/ToolNCC.py:2575 AppTools/ToolNCC.py:3475
+msgid "NCC Tool clear all done but the copper features isolation is broken for"
+msgstr ""
+"NCC Tool clear all done but the copper features isolation is broken for"
+
+#: AppTools/ToolNCC.py:2577 AppTools/ToolNCC.py:2863 AppTools/ToolNCC.py:3477
+#: AppTools/ToolNCC.py:3860
+msgid "tools"
+msgstr "tools"
+
+#: AppTools/ToolNCC.py:2859 AppTools/ToolNCC.py:3856
+msgid "NCC Tool Rest Machining clear all done."
+msgstr "NCC Tool Rest Machining clear all done."
+
+#: AppTools/ToolNCC.py:2862 AppTools/ToolNCC.py:3859
+msgid ""
+"NCC Tool Rest Machining clear all done but the copper features isolation is "
+"broken for"
+msgstr ""
+"NCC Tool Rest Machining clear all done but the copper features isolation is "
+"broken for"
+
+#: AppTools/ToolNCC.py:2974
+msgid "NCC Tool started. Reading parameters."
+msgstr "NCC Tool started. Reading parameters."
+
+#: AppTools/ToolNCC.py:3958
+msgid ""
+"Try to use the Buffering Type = Full in Preferences -> Gerber General. "
+"Reload the Gerber file after this change."
+msgstr ""
+"Try to use the Buffering Type = Full in Preferences -> Gerber General. "
+"Reload the Gerber file after this change."
+
+#: AppTools/ToolNCC.py:4022 AppTools/ToolPaint.py:3565 App_Main.py:5251
+msgid "Tool from DB added in Tool Table."
+msgstr "Tool from DB added in Tool Table."
+
+#: AppTools/ToolOptimal.py:79
+msgid "Number of decimals kept for found distances."
+msgstr "Number of decimals kept for found distances."
+
+#: AppTools/ToolOptimal.py:87
+msgid "Minimum distance"
+msgstr "Minimum distance"
+
+#: AppTools/ToolOptimal.py:88
+msgid "Display minimum distance between copper features."
+msgstr "Display minimum distance between copper features."
+
+#: AppTools/ToolOptimal.py:92
+msgid "Determined"
+msgstr "Determined"
+
+#: AppTools/ToolOptimal.py:106
+msgid "Occurring"
+msgstr "Occurring"
+
+#: AppTools/ToolOptimal.py:107
+msgid "How many times this minimum is found."
+msgstr "How many times this minimum is found."
+
+#: AppTools/ToolOptimal.py:113
+msgid "Minimum points coordinates"
+msgstr "Minimum points coordinates"
+
+#: AppTools/ToolOptimal.py:114 AppTools/ToolOptimal.py:120
+msgid "Coordinates for points where minimum distance was found."
+msgstr "Coordinates for points where minimum distance was found."
+
+#: AppTools/ToolOptimal.py:133 AppTools/ToolOptimal.py:209
+msgid "Jump to selected position"
+msgstr "Jump to selected position"
+
+#: AppTools/ToolOptimal.py:135 AppTools/ToolOptimal.py:211
+msgid ""
+"Select a position in the Locations text box and then\n"
+"click this button."
+msgstr ""
+"Select a position in the Locations text box and then\n"
+"click this button."
+
+#: AppTools/ToolOptimal.py:143
+msgid "Other distances"
+msgstr "Other distances"
+
+#: AppTools/ToolOptimal.py:144
+msgid ""
+"Will display other distances in the Gerber file ordered from\n"
+"the minimum to the maximum, not including the absolute minimum."
+msgstr ""
+"Will display other distances in the Gerber file ordered from\n"
+"the minimum to the maximum, not including the absolute minimum."
+
+#: AppTools/ToolOptimal.py:149
+msgid "Other distances points coordinates"
+msgstr "Other distances points coordinates"
+
+#: AppTools/ToolOptimal.py:150 AppTools/ToolOptimal.py:164
+#: AppTools/ToolOptimal.py:171 AppTools/ToolOptimal.py:188
+#: AppTools/ToolOptimal.py:195
+msgid ""
+"Other distances and the coordinates for points\n"
+"where the distance was found."
+msgstr ""
+"Other distances and the coordinates for points\n"
+"where the distance was found."
+
+#: AppTools/ToolOptimal.py:163
+msgid "Gerber distances"
+msgstr "Gerber distances"
+
+#: AppTools/ToolOptimal.py:187
+msgid "Points coordinates"
+msgstr "Points coordinates"
+
+#: AppTools/ToolOptimal.py:219
+msgid "Find Minimum"
+msgstr "Find Minimum"
+
+#: AppTools/ToolOptimal.py:221
+msgid ""
+"Calculate the minimum distance between copper features,\n"
+"this will allow the determination of the right tool to\n"
+"use for isolation or copper clearing."
+msgstr ""
+"Calculate the minimum distance between copper features,\n"
+"this will allow the determination of the right tool to\n"
+"use for isolation or copper clearing."
+
+#: AppTools/ToolOptimal.py:346
+msgid "Only Gerber objects can be evaluated."
+msgstr "Only Gerber objects can be evaluated."
+
+#: AppTools/ToolOptimal.py:352
+msgid ""
+"Optimal Tool. Started to search for the minimum distance between copper "
+"features."
+msgstr ""
+"Optimal Tool. Started to search for the minimum distance between copper "
+"features."
+
+#: AppTools/ToolOptimal.py:362
+msgid "Optimal Tool. Parsing geometry for aperture"
+msgstr "Optimal Tool. Parsing geometry for aperture"
+
+#: AppTools/ToolOptimal.py:373
+msgid "Optimal Tool. Creating a buffer for the object geometry."
+msgstr "Optimal Tool. Creating a buffer for the object geometry."
+
+#: AppTools/ToolOptimal.py:383
+msgid ""
+"The Gerber object has one Polygon as geometry.\n"
+"There are no distances between geometry elements to be found."
+msgstr ""
+"The Gerber object has one Polygon as geometry.\n"
+"There are no distances between geometry elements to be found."
+
+#: AppTools/ToolOptimal.py:388
+msgid ""
+"Optimal Tool. Finding the distances between each two elements. Iterations"
+msgstr ""
+"Optimal Tool. Finding the distances between each two elements. Iterations"
+
+#: AppTools/ToolOptimal.py:423
+msgid "Optimal Tool. Finding the minimum distance."
+msgstr "Optimal Tool. Finding the minimum distance."
+
+#: AppTools/ToolOptimal.py:439
+msgid "Optimal Tool. Finished successfully."
+msgstr "Optimal Tool. Finished successfully."
+
+#: AppTools/ToolPDF.py:91 AppTools/ToolPDF.py:95
+msgid "Open PDF"
+msgstr "Open PDF"
+
+#: AppTools/ToolPDF.py:98
+msgid "Open PDF cancelled"
+msgstr "Open PDF cancelled"
+
+#: AppTools/ToolPDF.py:122
+msgid "Parsing PDF file ..."
+msgstr "Parsing PDF file ..."
+
+#: AppTools/ToolPDF.py:138 App_Main.py:8497
+msgid "Failed to open"
+msgstr "Failed to open"
+
+#: AppTools/ToolPDF.py:203 AppTools/ToolPcbWizard.py:445 App_Main.py:8446
+msgid "No geometry found in file"
+msgstr "No geometry found in file"
+
+#: AppTools/ToolPDF.py:206 AppTools/ToolPDF.py:279
+#, python-format
+msgid "Rendering PDF layer #%d ..."
+msgstr "Rendering PDF layer #%d ..."
+
+#: AppTools/ToolPDF.py:210 AppTools/ToolPDF.py:283
+msgid "Open PDF file failed."
+msgstr "Open PDF file failed."
+
+#: AppTools/ToolPDF.py:215 AppTools/ToolPDF.py:288
+msgid "Rendered"
+msgstr "Rendered"
+
+#: AppTools/ToolPaint.py:81
+msgid ""
+"Specify the type of object to be painted.\n"
+"It can be of type: Gerber or Geometry.\n"
+"What is selected here will dictate the kind\n"
+"of objects that will populate the 'Object' combobox."
+msgstr ""
+"Specify the type of object to be painted.\n"
+"It can be of type: Gerber or Geometry.\n"
+"What is selected here will dictate the kind\n"
+"of objects that will populate the 'Object' combobox."
+
+#: AppTools/ToolPaint.py:103
+msgid "Object to be painted."
+msgstr "Object to be painted."
+
+#: AppTools/ToolPaint.py:116
+msgid ""
+"Tools pool from which the algorithm\n"
+"will pick the ones used for painting."
+msgstr ""
+"Tools pool from which the algorithm\n"
+"will pick the ones used for painting."
+
+#: AppTools/ToolPaint.py:133
+msgid ""
+"This is the Tool Number.\n"
+"Painting will start with the tool with the biggest diameter,\n"
+"continuing until there are no more tools.\n"
+"Only tools that create painting geometry will still be present\n"
+"in the resulting geometry. This is because with some tools\n"
+"this function will not be able to create painting geometry."
+msgstr ""
+"This is the Tool Number.\n"
+"Painting will start with the tool with the biggest diameter,\n"
+"continuing until there are no more tools.\n"
+"Only tools that create painting geometry will still be present\n"
+"in the resulting geometry. This is because with some tools\n"
+"this function will not be able to create painting geometry."
+
+#: AppTools/ToolPaint.py:145
+msgid ""
+"The Tool Type (TT) can be:\n"
+"- Circular -> it is informative only. Being circular,\n"
+"the cut width in material is exactly the tool diameter.\n"
+"- Ball -> informative only and make reference to the Ball type endmill.\n"
+"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI "
+"form\n"
+"and enable two additional UI form fields in the resulting geometry: V-Tip "
+"Dia and\n"
+"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter "
+"such\n"
+"as the cut width into material will be equal with the value in the Tool "
+"Diameter\n"
+"column of this table.\n"
+"Choosing the 'V-Shape' Tool Type automatically will select the Operation "
+"Type\n"
+"in the resulting geometry as Isolation."
+msgstr ""
+"The Tool Type (TT) can be:\n"
+"- Circular -> it is informative only. Being circular,\n"
+"the cut width in material is exactly the tool diameter.\n"
+"- Ball -> informative only and make reference to the Ball type endmill.\n"
+"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI "
+"form\n"
+"and enable two additional UI form fields in the resulting geometry: V-Tip "
+"Dia and\n"
+"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter "
+"such\n"
+"as the cut width into material will be equal with the value in the Tool "
+"Diameter\n"
+"column of this table.\n"
+"Choosing the 'V-Shape' Tool Type automatically will select the Operation "
+"Type\n"
+"in the resulting geometry as Isolation."
+
+#: AppTools/ToolPaint.py:497
+msgid ""
+"The type of FlatCAM object to be used as paint reference.\n"
+"It can be Gerber, Excellon or Geometry."
+msgstr ""
+"The type of FlatCAM object to be used as paint reference.\n"
+"It can be Gerber, Excellon or Geometry."
+
+#: AppTools/ToolPaint.py:538
+msgid ""
+"- 'Area Selection' - left mouse click to start selection of the area to be "
+"painted.\n"
+"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple "
+"areas.\n"
+"- 'All Polygons' - the Paint will start after click.\n"
+"- 'Reference Object' - will do non copper clearing within the area\n"
+"specified by another object."
+msgstr ""
+"- 'Area Selection' - left mouse click to start selection of the area to be "
+"painted.\n"
+"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple "
+"areas.\n"
+"- 'All Polygons' - the Paint will start after click.\n"
+"- 'Reference Object' - will do non copper clearing within the area\n"
+"specified by another object."
+
+#: AppTools/ToolPaint.py:1392
+#, python-format
+msgid "Could not retrieve object: %s"
+msgstr "Could not retrieve object: %s"
+
+#: AppTools/ToolPaint.py:1402
+msgid "Can't do Paint on MultiGeo geometries"
+msgstr "Can't do Paint on MultiGeo geometries"
+
+#: AppTools/ToolPaint.py:1432
+msgid "Click on a polygon to paint it."
+msgstr "Click on a polygon to paint it."
+
+#: AppTools/ToolPaint.py:1452
+msgid "Click the start point of the paint area."
+msgstr "Click the start point of the paint area."
+
+#: AppTools/ToolPaint.py:1517
+msgid "Click to add next polygon or right click to start painting."
+msgstr "Click to add next polygon or right click to start painting."
+
+#: AppTools/ToolPaint.py:1530
+msgid "Click to add/remove next polygon or right click to start painting."
+msgstr "Click to add/remove next polygon or right click to start painting."
+
+#: AppTools/ToolPaint.py:2034
+msgid "Painting polygon with method: lines."
+msgstr "Painting polygon with method: lines."
+
+#: AppTools/ToolPaint.py:2046
+msgid "Failed. Painting polygon with method: seed."
+msgstr "Failed. Painting polygon with method: seed."
+
+#: AppTools/ToolPaint.py:2057
+msgid "Failed. Painting polygon with method: standard."
+msgstr "Failed. Painting polygon with method: standard."
+
+#: AppTools/ToolPaint.py:2073
+msgid "Geometry could not be painted completely"
+msgstr "Geometry could not be painted completely"
+
+#: AppTools/ToolPaint.py:2102 AppTools/ToolPaint.py:2105
+#: AppTools/ToolPaint.py:2113 AppTools/ToolPaint.py:2416
+#: AppTools/ToolPaint.py:2419 AppTools/ToolPaint.py:2427
+#: AppTools/ToolPaint.py:2915 AppTools/ToolPaint.py:2918
+#: AppTools/ToolPaint.py:2924
+msgid "Paint Tool."
+msgstr "Paint Tool."
+
+#: AppTools/ToolPaint.py:2102 AppTools/ToolPaint.py:2105
+#: AppTools/ToolPaint.py:2113
+msgid "Normal painting polygon task started."
+msgstr "Normal painting polygon task started."
+
+#: AppTools/ToolPaint.py:2103 AppTools/ToolPaint.py:2417
+#: AppTools/ToolPaint.py:2916
+msgid "Buffering geometry..."
+msgstr "Buffering geometry..."
+
+#: AppTools/ToolPaint.py:2125 AppTools/ToolPaint.py:2434
+#: AppTools/ToolPaint.py:2932
+msgid "No polygon found."
+msgstr "No polygon found."
+
+#: AppTools/ToolPaint.py:2155
+msgid "Painting polygon..."
+msgstr "Painting polygon..."
+
+#: AppTools/ToolPaint.py:2165 AppTools/ToolPaint.py:2480
+#: AppTools/ToolPaint.py:2670 AppTools/ToolPaint.py:2978
+#: AppTools/ToolPaint.py:3157
+msgid "Painting with tool diameter = "
+msgstr "Painting with tool diameter = "
+
+#: AppTools/ToolPaint.py:2166 AppTools/ToolPaint.py:2481
+#: AppTools/ToolPaint.py:2671 AppTools/ToolPaint.py:2979
+#: AppTools/ToolPaint.py:3158
+msgid "started"
+msgstr "started"
+
+#: AppTools/ToolPaint.py:2191 AppTools/ToolPaint.py:2507
+#: AppTools/ToolPaint.py:2697 AppTools/ToolPaint.py:3005
+#: AppTools/ToolPaint.py:3184
+msgid "Margin parameter too big. Tool is not used"
+msgstr "Margin parameter too big. Tool is not used"
+
+#: AppTools/ToolPaint.py:2249 AppTools/ToolPaint.py:2576
+#: AppTools/ToolPaint.py:2754 AppTools/ToolPaint.py:3068
+#: AppTools/ToolPaint.py:3246
+msgid ""
+"Could not do Paint. Try a different combination of parameters. Or a "
+"different strategy of paint"
+msgstr ""
+"Could not do Paint. Try a different combination of parameters. Or a "
+"different strategy of paint"
+
+#: AppTools/ToolPaint.py:2306 AppTools/ToolPaint.py:2642
+#: AppTools/ToolPaint.py:2811 AppTools/ToolPaint.py:3129
+#: AppTools/ToolPaint.py:3308
+msgid ""
+"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 ""
+"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."
+
+#: AppTools/ToolPaint.py:2329
+msgid "Paint Single failed."
+msgstr "Paint Single failed."
+
+#: AppTools/ToolPaint.py:2335
+msgid "Paint Single Done."
+msgstr "Paint Single Done."
+
+#: AppTools/ToolPaint.py:2337 AppTools/ToolPaint.py:2847
+#: AppTools/ToolPaint.py:3344
+msgid "Polygon Paint started ..."
+msgstr "Polygon Paint started ..."
+
+#: AppTools/ToolPaint.py:2416 AppTools/ToolPaint.py:2419
+#: AppTools/ToolPaint.py:2427
+msgid "Paint all polygons task started."
+msgstr "Paint all polygons task started."
+
+#: AppTools/ToolPaint.py:2458 AppTools/ToolPaint.py:2956
+msgid "Painting polygons..."
+msgstr "Painting polygons..."
+
+#: AppTools/ToolPaint.py:2651
+msgid "Paint All Done."
+msgstr "Paint All Done."
+
+#: AppTools/ToolPaint.py:2820 AppTools/ToolPaint.py:3317
+msgid "Paint All with Rest-Machining done."
+msgstr "Paint All with Rest-Machining done."
+
+#: AppTools/ToolPaint.py:2839
+msgid "Paint All failed."
+msgstr "Paint All failed."
+
+#: AppTools/ToolPaint.py:2845
+msgid "Paint Poly All Done."
+msgstr "Paint Poly All Done."
+
+#: AppTools/ToolPaint.py:2915 AppTools/ToolPaint.py:2918
+#: AppTools/ToolPaint.py:2924
+msgid "Painting area task started."
+msgstr "Painting area task started."
+
+#: AppTools/ToolPaint.py:3138
+msgid "Paint Area Done."
+msgstr "Paint Area Done."
+
+#: AppTools/ToolPaint.py:3336
+msgid "Paint Area failed."
+msgstr "Paint Area failed."
+
+#: AppTools/ToolPaint.py:3342
+msgid "Paint Poly Area Done."
+msgstr "Paint Poly Area Done."
+
+#: AppTools/ToolPanelize.py:35
+msgid "Panelize PCB"
+msgstr "Panelize PCB"
+
+#: AppTools/ToolPanelize.py:55
+msgid ""
+"Specify the type of object to be panelized\n"
+"It can be of type: Gerber, Excellon or Geometry.\n"
+"The selection here decide the type of objects that will be\n"
+"in the Object combobox."
+msgstr ""
+"Specify the type of object to be panelized\n"
+"It can be of type: Gerber, Excellon or Geometry.\n"
+"The selection here decide the type of objects that will be\n"
+"in the Object combobox."
+
+#: AppTools/ToolPanelize.py:88
+msgid ""
+"Object to be panelized. This means that it will\n"
+"be duplicated in an array of rows and columns."
+msgstr ""
+"Object to be panelized. This means that it will\n"
+"be duplicated in an array of rows and columns."
+
+#: AppTools/ToolPanelize.py:100
+msgid "Penelization Reference"
+msgstr "Penelization Reference"
+
+#: AppTools/ToolPanelize.py:102
+msgid ""
+"Choose the reference for panelization:\n"
+"- Object = the bounding box of a different object\n"
+"- Bounding Box = the bounding box of the object to be panelized\n"
+"\n"
+"The reference is useful when doing panelization for more than one\n"
+"object. The spacings (really offsets) will be applied in reference\n"
+"to this reference object therefore maintaining the panelized\n"
+"objects in sync."
+msgstr ""
+"Choose the reference for panelization:\n"
+"- Object = the bounding box of a different object\n"
+"- Bounding Box = the bounding box of the object to be panelized\n"
+"\n"
+"The reference is useful when doing panelization for more than one\n"
+"object. The spacings (really offsets) will be applied in reference\n"
+"to this reference object therefore maintaining the panelized\n"
+"objects in sync."
+
+#: AppTools/ToolPanelize.py:123
+msgid "Box Type"
+msgstr "Box Type"
+
+#: AppTools/ToolPanelize.py:125
+msgid ""
+"Specify the type of object to be used as an container for\n"
+"panelization. It can be: Gerber or Geometry type.\n"
+"The selection here decide the type of objects that will be\n"
+"in the Box Object combobox."
+msgstr ""
+"Specify the type of object to be used as an container for\n"
+"panelization. It can be: Gerber or Geometry type.\n"
+"The selection here decide the type of objects that will be\n"
+"in the Box Object combobox."
+
+#: AppTools/ToolPanelize.py:139
+msgid ""
+"The actual object that is used as container for the\n"
+" selected object that is to be panelized."
+msgstr ""
+"The actual object that is used as container for the\n"
+" selected object that is to be panelized."
+
+#: AppTools/ToolPanelize.py:149
+msgid "Panel Data"
+msgstr "Panel Data"
+
+#: AppTools/ToolPanelize.py:151
+msgid ""
+"This informations will shape the resulting panel.\n"
+"The number of rows and columns will set how many\n"
+"duplicates of the original geometry will be generated.\n"
+"\n"
+"The spacings will set the distance between any two\n"
+"elements of the panel array."
+msgstr ""
+"This informations will shape the resulting panel.\n"
+"The number of rows and columns will set how many\n"
+"duplicates of the original geometry will be generated.\n"
+"\n"
+"The spacings will set the distance between any two\n"
+"elements of the panel array."
+
+#: AppTools/ToolPanelize.py:214
+msgid ""
+"Choose the type of object for the panel object:\n"
+"- Geometry\n"
+"- Gerber"
+msgstr ""
+"Choose the type of object for the panel object:\n"
+"- Geometry\n"
+"- Gerber"
+
+#: AppTools/ToolPanelize.py:222
+msgid "Constrain panel within"
+msgstr "Constrain panel within"
+
+#: AppTools/ToolPanelize.py:263
+msgid "Panelize Object"
+msgstr "Panelize Object"
+
+#: AppTools/ToolPanelize.py:265 AppTools/ToolRulesCheck.py:501
+msgid ""
+"Panelize the specified object around the specified box.\n"
+"In other words it creates multiple copies of the source object,\n"
+"arranged in a 2D array of rows and columns."
+msgstr ""
+"Panelize the specified object around the specified box.\n"
+"In other words it creates multiple copies of the source object,\n"
+"arranged in a 2D array of rows and columns."
+
+#: AppTools/ToolPanelize.py:333
+msgid "Panel. Tool"
+msgstr "Panel. Tool"
+
+#: AppTools/ToolPanelize.py:468
+msgid "Columns or Rows are zero value. Change them to a positive integer."
+msgstr "Columns or Rows are zero value. Change them to a positive integer."
+
+#: AppTools/ToolPanelize.py:505
+msgid "Generating panel ... "
+msgstr "Generating panel ... "
+
+#: AppTools/ToolPanelize.py:788
+msgid "Generating panel ... Adding the Gerber code."
+msgstr "Generating panel ... Adding the Gerber code."
+
+#: AppTools/ToolPanelize.py:796
+msgid "Generating panel... Spawning copies"
+msgstr "Generating panel... Spawning copies"
+
+#: AppTools/ToolPanelize.py:803
+msgid "Panel done..."
+msgstr "Panel done..."
+
+#: AppTools/ToolPanelize.py:806
+#, python-brace-format
+msgid ""
+"{text} Too big for the constrain area. Final panel has {col} columns and "
+"{row} rows"
+msgstr ""
+"{text} Too big for the constrain area. Final panel has {col} columns and "
+"{row} rows"
+
+#: AppTools/ToolPanelize.py:815
+msgid "Panel created successfully."
+msgstr "Panel created successfully."
+
+#: AppTools/ToolPcbWizard.py:31
+msgid "PcbWizard Import Tool"
+msgstr "PcbWizard Import Tool"
+
+#: AppTools/ToolPcbWizard.py:40
+msgid "Import 2-file Excellon"
+msgstr "Import 2-file Excellon"
+
+#: AppTools/ToolPcbWizard.py:51
+msgid "Load files"
+msgstr "Load files"
+
+#: AppTools/ToolPcbWizard.py:57
+msgid "Excellon file"
+msgstr "Excellon file"
+
+#: AppTools/ToolPcbWizard.py:59
+msgid ""
+"Load the Excellon file.\n"
+"Usually it has a .DRL extension"
+msgstr ""
+"Load the Excellon file.\n"
+"Usually it has a .DRL extension"
+
+#: AppTools/ToolPcbWizard.py:65
+msgid "INF file"
+msgstr "INF file"
+
+#: AppTools/ToolPcbWizard.py:67
+msgid "Load the INF file."
+msgstr "Load the INF file."
+
+#: AppTools/ToolPcbWizard.py:79
+msgid "Tool Number"
+msgstr "Tool Number"
+
+#: AppTools/ToolPcbWizard.py:81
+msgid "Tool diameter in file units."
+msgstr "Tool diameter in file units."
+
+#: AppTools/ToolPcbWizard.py:87
+msgid "Excellon format"
+msgstr "Excellon format"
+
+#: AppTools/ToolPcbWizard.py:95
+msgid "Int. digits"
+msgstr "Int. digits"
+
+#: AppTools/ToolPcbWizard.py:97
+msgid "The number of digits for the integral part of the coordinates."
+msgstr "The number of digits for the integral part of the coordinates."
+
+#: AppTools/ToolPcbWizard.py:104
+msgid "Frac. digits"
+msgstr "Frac. digits"
+
+#: AppTools/ToolPcbWizard.py:106
+msgid "The number of digits for the fractional part of the coordinates."
+msgstr "The number of digits for the fractional part of the coordinates."
+
+#: AppTools/ToolPcbWizard.py:113
+msgid "No Suppression"
+msgstr "No Suppression"
+
+#: AppTools/ToolPcbWizard.py:114
+msgid "Zeros supp."
+msgstr "Zeros supp."
+
+#: AppTools/ToolPcbWizard.py:116
+msgid ""
+"The type of zeros suppression used.\n"
+"Can be of type:\n"
+"- LZ = leading zeros are kept\n"
+"- TZ = trailing zeros are kept\n"
+"- No Suppression = no zero suppression"
+msgstr ""
+"The type of zeros suppression used.\n"
+"Can be of type:\n"
+"- LZ = leading zeros are kept\n"
+"- TZ = trailing zeros are kept\n"
+"- No Suppression = no zero suppression"
+
+#: AppTools/ToolPcbWizard.py:129
+msgid ""
+"The type of units that the coordinates and tool\n"
+"diameters are using. Can be INCH or MM."
+msgstr ""
+"The type of units that the coordinates and tool\n"
+"diameters are using. Can be INCH or MM."
+
+#: AppTools/ToolPcbWizard.py:136
+msgid "Import Excellon"
+msgstr "Import Excellon"
+
+#: AppTools/ToolPcbWizard.py:138
+msgid ""
+"Import in FlatCAM an Excellon file\n"
+"that store it's information's in 2 files.\n"
+"One usually has .DRL extension while\n"
+"the other has .INF extension."
+msgstr ""
+"Import in FlatCAM an Excellon file\n"
+"that store it's information's in 2 files.\n"
+"One usually has .DRL extension while\n"
+"the other has .INF extension."
+
+#: AppTools/ToolPcbWizard.py:197
+msgid "PCBWizard Tool"
+msgstr "PCBWizard Tool"
+
+#: AppTools/ToolPcbWizard.py:291 AppTools/ToolPcbWizard.py:295
+msgid "Load PcbWizard Excellon file"
+msgstr "Load PcbWizard Excellon file"
+
+#: AppTools/ToolPcbWizard.py:314 AppTools/ToolPcbWizard.py:318
+msgid "Load PcbWizard INF file"
+msgstr "Load PcbWizard INF file"
+
+#: AppTools/ToolPcbWizard.py:366
+msgid ""
+"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 ""
+"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."
+
+#: AppTools/ToolPcbWizard.py:387
+msgid "PcbWizard .INF file loaded."
+msgstr "PcbWizard .INF file loaded."
+
+#: AppTools/ToolPcbWizard.py:392
+msgid "Main PcbWizard Excellon file loaded."
+msgstr "Main PcbWizard Excellon file loaded."
+
+#: AppTools/ToolPcbWizard.py:424 App_Main.py:8424
+msgid "This is not Excellon file."
+msgstr "This is not Excellon file."
+
+#: AppTools/ToolPcbWizard.py:427
+msgid "Cannot parse file"
+msgstr "Cannot parse file"
+
+#: AppTools/ToolPcbWizard.py:450
+msgid "Importing Excellon."
+msgstr "Importing Excellon."
+
+#: AppTools/ToolPcbWizard.py:457
+msgid "Import Excellon file failed."
+msgstr "Import Excellon file failed."
+
+#: AppTools/ToolPcbWizard.py:464
+msgid "Imported"
+msgstr "Imported"
+
+#: AppTools/ToolPcbWizard.py:467
+msgid "Excellon merging is in progress. Please wait..."
+msgstr "Excellon merging is in progress. Please wait..."
+
+#: AppTools/ToolPcbWizard.py:469
+msgid "The imported Excellon file is empty."
+msgstr "The imported Excellon file is empty."
+
+#: AppTools/ToolProperties.py:116 App_Main.py:4664 App_Main.py:6718
+#: App_Main.py:6813 App_Main.py:6854 App_Main.py:6895 App_Main.py:6936
+#: App_Main.py:6977 App_Main.py:7021 App_Main.py:7065 App_Main.py:7585
+#: App_Main.py:7589
+msgid "No object selected."
+msgstr "No object selected."
+
+#: AppTools/ToolProperties.py:131
+msgid "Object Properties are displayed."
+msgstr "Object Properties are displayed."
+
+#: AppTools/ToolProperties.py:136
+msgid "Properties Tool"
+msgstr "Properties Tool"
+
+#: AppTools/ToolProperties.py:150
+msgid "TYPE"
+msgstr "TYPE"
+
+#: AppTools/ToolProperties.py:151
+msgid "NAME"
+msgstr "NAME"
+
+#: AppTools/ToolProperties.py:153
+msgid "Dimensions"
+msgstr "Dimensions"
+
+#: AppTools/ToolProperties.py:181
+msgid "Geo Type"
+msgstr "Geo Type"
+
+#: AppTools/ToolProperties.py:184
+msgid "Single-Geo"
+msgstr "Single-Geo"
+
+#: AppTools/ToolProperties.py:185
+msgid "Multi-Geo"
+msgstr "Multi-Geo"
+
+#: AppTools/ToolProperties.py:196
+msgid "Calculating dimensions ... Please wait."
+msgstr "Calculating dimensions ... Please wait."
+
+#: AppTools/ToolProperties.py:339 AppTools/ToolProperties.py:343
+#: AppTools/ToolProperties.py:345
+msgid "Inch"
+msgstr "Inch"
+
+#: AppTools/ToolProperties.py:339 AppTools/ToolProperties.py:344
+#: AppTools/ToolProperties.py:346
+msgid "Metric"
+msgstr "Metric"
+
+#: AppTools/ToolProperties.py:421 AppTools/ToolProperties.py:486
+msgid "Drills number"
+msgstr "Drills number"
+
+#: AppTools/ToolProperties.py:422 AppTools/ToolProperties.py:488
+msgid "Slots number"
+msgstr "Slots number"
+
+#: AppTools/ToolProperties.py:424
+msgid "Drills total number:"
+msgstr "Drills total number:"
+
+#: AppTools/ToolProperties.py:425
+msgid "Slots total number:"
+msgstr "Slots total number:"
+
+#: AppTools/ToolProperties.py:452 AppTools/ToolProperties.py:455
+#: AppTools/ToolProperties.py:458 AppTools/ToolProperties.py:483
+msgid "Present"
+msgstr "Present"
+
+#: AppTools/ToolProperties.py:453 AppTools/ToolProperties.py:484
+msgid "Solid Geometry"
+msgstr "Solid Geometry"
+
+#: AppTools/ToolProperties.py:456
+msgid "GCode Text"
+msgstr "GCode Text"
+
+#: AppTools/ToolProperties.py:459
+msgid "GCode Geometry"
+msgstr "GCode Geometry"
+
+#: AppTools/ToolProperties.py:462
+msgid "Data"
+msgstr "Data"
+
+#: AppTools/ToolProperties.py:495
+msgid "Depth of Cut"
+msgstr "Depth of Cut"
+
+#: AppTools/ToolProperties.py:507
+msgid "Clearance Height"
+msgstr "Clearance Height"
+
+#: AppTools/ToolProperties.py:539
+msgid "Routing time"
+msgstr "Routing time"
+
+#: AppTools/ToolProperties.py:546
+msgid "Travelled distance"
+msgstr "Travelled distance"
+
+#: AppTools/ToolProperties.py:564
+msgid "Width"
+msgstr "Width"
+
+#: AppTools/ToolProperties.py:570 AppTools/ToolProperties.py:578
+msgid "Box Area"
+msgstr "Box Area"
+
+#: AppTools/ToolProperties.py:573 AppTools/ToolProperties.py:581
+msgid "Convex_Hull Area"
+msgstr "Convex_Hull Area"
+
+#: AppTools/ToolProperties.py:588 AppTools/ToolProperties.py:591
+msgid "Copper Area"
+msgstr "Copper Area"
+
+#: AppTools/ToolPunchGerber.py:30 AppTools/ToolPunchGerber.py:323
+msgid "Punch Gerber"
+msgstr "Punch Gerber"
+
+#: AppTools/ToolPunchGerber.py:65
+msgid "Gerber into which to punch holes"
+msgstr "Gerber into which to punch holes"
+
+#: AppTools/ToolPunchGerber.py:85
+msgid "ALL"
+msgstr "ALL"
+
+#: AppTools/ToolPunchGerber.py:166
+msgid ""
+"Remove the geometry of Excellon from the Gerber to create the holes in pads."
+msgstr ""
+"Remove the geometry of Excellon from the Gerber to create the holes in pads."
+
+#: AppTools/ToolPunchGerber.py:325
+msgid ""
+"Create a Gerber object from the selected object, within\n"
+"the specified box."
+msgstr ""
+"Create a Gerber object from the selected object, within\n"
+"the specified box."
+
+#: AppTools/ToolPunchGerber.py:425
+msgid "Punch Tool"
+msgstr "Punch Tool"
+
+#: AppTools/ToolPunchGerber.py:599
+msgid "The value of the fixed diameter is 0.0. Aborting."
+msgstr "The value of the fixed diameter is 0.0. Aborting."
+
+#: AppTools/ToolPunchGerber.py:602
+msgid ""
+"Could not generate punched hole Gerber because the punch hole size is bigger "
+"than some of the apertures in the Gerber object."
+msgstr ""
+"Could not generate punched hole Gerber because the punch hole size is bigger "
+"than some of the apertures in the Gerber object."
+
+#: AppTools/ToolPunchGerber.py:665
+msgid ""
+"Could not generate punched hole Gerber because the newly created object "
+"geometry is the same as the one in the source object geometry..."
+msgstr ""
+"Could not generate punched hole Gerber because the newly created object "
+"geometry is the same as the one in the source object geometry..."
+
+#: AppTools/ToolQRCode.py:80
+msgid "Gerber Object to which the QRCode will be added."
+msgstr "Gerber Object to which the QRCode will be added."
+
+#: AppTools/ToolQRCode.py:93
+msgid "QRCode Parameters"
+msgstr "QRCode Parameters"
+
+#: AppTools/ToolQRCode.py:95
+msgid "The parameters used to shape the QRCode."
+msgstr "The parameters used to shape the QRCode."
+
+#: AppTools/ToolQRCode.py:207
+msgid "Export QRCode"
+msgstr "Export QRCode"
+
+#: AppTools/ToolQRCode.py:209
+msgid ""
+"Show a set of controls allowing to export the QRCode\n"
+"to a SVG file or an PNG file."
+msgstr ""
+"Show a set of controls allowing to export the QRCode\n"
+"to a SVG file or an PNG file."
+
+#: AppTools/ToolQRCode.py:248
+msgid "Transparent back color"
+msgstr "Transparent back color"
+
+#: AppTools/ToolQRCode.py:273
+msgid "Export QRCode SVG"
+msgstr "Export QRCode SVG"
+
+#: AppTools/ToolQRCode.py:275
+msgid "Export a SVG file with the QRCode content."
+msgstr "Export a SVG file with the QRCode content."
+
+#: AppTools/ToolQRCode.py:286
+msgid "Export QRCode PNG"
+msgstr "Export QRCode PNG"
+
+#: AppTools/ToolQRCode.py:288
+msgid "Export a PNG image file with the QRCode content."
+msgstr "Export a PNG image file with the QRCode content."
+
+#: AppTools/ToolQRCode.py:299
+msgid "Insert QRCode"
+msgstr "Insert QRCode"
+
+#: AppTools/ToolQRCode.py:301
+msgid "Create the QRCode object."
+msgstr "Create the QRCode object."
+
+#: AppTools/ToolQRCode.py:415 AppTools/ToolQRCode.py:750
+#: AppTools/ToolQRCode.py:799
+msgid "Cancelled. There is no QRCode Data in the text box."
+msgstr "Cancelled. There is no QRCode Data in the text box."
+
+#: AppTools/ToolQRCode.py:434
+msgid "Generating QRCode geometry"
+msgstr "Generating QRCode geometry"
+
+#: AppTools/ToolQRCode.py:474
+msgid "Click on the Destination point ..."
+msgstr "Click on the Destination point ..."
+
+#: AppTools/ToolQRCode.py:589
+msgid "QRCode Tool done."
+msgstr "QRCode Tool done."
+
+#: AppTools/ToolQRCode.py:782 AppTools/ToolQRCode.py:786
+msgid "Export PNG"
+msgstr "Export PNG"
+
+#: AppTools/ToolQRCode.py:829 AppTools/ToolQRCode.py:833 App_Main.py:6746
+#: App_Main.py:6750
+msgid "Export SVG"
+msgstr "Export SVG"
+
+#: AppTools/ToolRulesCheck.py:33
+msgid "Check Rules"
+msgstr "Check Rules"
+
+#: AppTools/ToolRulesCheck.py:61
+msgid "Gerber Files"
+msgstr "Gerber Files"
+
+#: AppTools/ToolRulesCheck.py:63
+msgid "Gerber objects for which to check rules."
+msgstr "Gerber objects for which to check rules."
+
+#: AppTools/ToolRulesCheck.py:78
+msgid "Top"
+msgstr "Top"
+
+#: AppTools/ToolRulesCheck.py:80
+msgid "The Top Gerber Copper object for which rules are checked."
+msgstr "The Top Gerber Copper object for which rules are checked."
+
+#: AppTools/ToolRulesCheck.py:96
+msgid "Bottom"
+msgstr "Bottom"
+
+#: AppTools/ToolRulesCheck.py:98
+msgid "The Bottom Gerber Copper object for which rules are checked."
+msgstr "The Bottom Gerber Copper object for which rules are checked."
+
+#: AppTools/ToolRulesCheck.py:114
+msgid "SM Top"
+msgstr "SM Top"
+
+#: AppTools/ToolRulesCheck.py:116
+msgid "The Top Gerber Solder Mask object for which rules are checked."
+msgstr "The Top Gerber Solder Mask object for which rules are checked."
+
+#: AppTools/ToolRulesCheck.py:132
+msgid "SM Bottom"
+msgstr "SM Bottom"
+
+#: AppTools/ToolRulesCheck.py:134
+msgid "The Bottom Gerber Solder Mask object for which rules are checked."
+msgstr "The Bottom Gerber Solder Mask object for which rules are checked."
+
+#: AppTools/ToolRulesCheck.py:150
+msgid "Silk Top"
+msgstr "Silk Top"
+
+#: AppTools/ToolRulesCheck.py:152
+msgid "The Top Gerber Silkscreen object for which rules are checked."
+msgstr "The Top Gerber Silkscreen object for which rules are checked."
+
+#: AppTools/ToolRulesCheck.py:168
+msgid "Silk Bottom"
+msgstr "Silk Bottom"
+
+#: AppTools/ToolRulesCheck.py:170
+msgid "The Bottom Gerber Silkscreen object for which rules are checked."
+msgstr "The Bottom Gerber Silkscreen object for which rules are checked."
+
+#: AppTools/ToolRulesCheck.py:188
+msgid "The Gerber Outline (Cutout) object for which rules are checked."
+msgstr "The Gerber Outline (Cutout) object for which rules are checked."
+
+#: AppTools/ToolRulesCheck.py:199
+msgid "Excellon Objects"
+msgstr "Excellon Objects"
+
+#: AppTools/ToolRulesCheck.py:201
+msgid "Excellon objects for which to check rules."
+msgstr "Excellon objects for which to check rules."
+
+#: AppTools/ToolRulesCheck.py:213
+msgid "Excellon 1"
+msgstr "Excellon 1"
+
+#: AppTools/ToolRulesCheck.py:215
+msgid ""
+"Excellon object for which to check rules.\n"
+"Holds the plated holes or a general Excellon file content."
+msgstr ""
+"Excellon object for which to check rules.\n"
+"Holds the plated holes or a general Excellon file content."
+
+#: AppTools/ToolRulesCheck.py:232
+msgid "Excellon 2"
+msgstr "Excellon 2"
+
+#: AppTools/ToolRulesCheck.py:234
+msgid ""
+"Excellon object for which to check rules.\n"
+"Holds the non-plated holes."
+msgstr ""
+"Excellon object for which to check rules.\n"
+"Holds the non-plated holes."
+
+#: AppTools/ToolRulesCheck.py:247
+msgid "All Rules"
+msgstr "All Rules"
+
+#: AppTools/ToolRulesCheck.py:249
+msgid "This check/uncheck all the rules below."
+msgstr "This check/uncheck all the rules below."
+
+#: AppTools/ToolRulesCheck.py:499
+msgid "Run Rules Check"
+msgstr "Run Rules Check"
+
+#: AppTools/ToolRulesCheck.py:1158 AppTools/ToolRulesCheck.py:1218
+#: AppTools/ToolRulesCheck.py:1255 AppTools/ToolRulesCheck.py:1327
+#: AppTools/ToolRulesCheck.py:1381 AppTools/ToolRulesCheck.py:1419
+#: AppTools/ToolRulesCheck.py:1484
+msgid "Value is not valid."
+msgstr "Value is not valid."
+
+#: AppTools/ToolRulesCheck.py:1172
+msgid "TOP -> Copper to Copper clearance"
+msgstr "TOP -> Copper to Copper clearance"
+
+#: AppTools/ToolRulesCheck.py:1183
+msgid "BOTTOM -> Copper to Copper clearance"
+msgstr "BOTTOM -> Copper to Copper clearance"
+
+#: AppTools/ToolRulesCheck.py:1188 AppTools/ToolRulesCheck.py:1282
+#: AppTools/ToolRulesCheck.py:1446
+msgid ""
+"At least one Gerber object has to be selected for this rule but none is "
+"selected."
+msgstr ""
+"At least one Gerber object has to be selected for this rule but none is "
+"selected."
+
+#: AppTools/ToolRulesCheck.py:1224
+msgid ""
+"One of the copper Gerber objects or the Outline Gerber object is not valid."
+msgstr ""
+"One of the copper Gerber objects or the Outline Gerber object is not valid."
+
+#: AppTools/ToolRulesCheck.py:1237 AppTools/ToolRulesCheck.py:1401
+msgid ""
+"Outline Gerber object presence is mandatory for this rule but it is not "
+"selected."
+msgstr ""
+"Outline Gerber object presence is mandatory for this rule but it is not "
+"selected."
+
+#: AppTools/ToolRulesCheck.py:1254 AppTools/ToolRulesCheck.py:1281
+msgid "Silk to Silk clearance"
+msgstr "Silk to Silk clearance"
+
+#: AppTools/ToolRulesCheck.py:1267
+msgid "TOP -> Silk to Silk clearance"
+msgstr "TOP -> Silk to Silk clearance"
+
+#: AppTools/ToolRulesCheck.py:1277
+msgid "BOTTOM -> Silk to Silk clearance"
+msgstr "BOTTOM -> Silk to Silk clearance"
+
+#: AppTools/ToolRulesCheck.py:1333
+msgid "One or more of the Gerber objects is not valid."
+msgstr "One or more of the Gerber objects is not valid."
+
+#: AppTools/ToolRulesCheck.py:1341
+msgid "TOP -> Silk to Solder Mask Clearance"
+msgstr "TOP -> Silk to Solder Mask Clearance"
+
+#: AppTools/ToolRulesCheck.py:1347
+msgid "BOTTOM -> Silk to Solder Mask Clearance"
+msgstr "BOTTOM -> Silk to Solder Mask Clearance"
+
+#: AppTools/ToolRulesCheck.py:1351
+msgid ""
+"Both Silk and Solder Mask Gerber objects has to be either both Top or both "
+"Bottom."
+msgstr ""
+"Both Silk and Solder Mask Gerber objects has to be either both Top or both "
+"Bottom."
+
+#: AppTools/ToolRulesCheck.py:1387
+msgid ""
+"One of the Silk Gerber objects or the Outline Gerber object is not valid."
+msgstr ""
+"One of the Silk Gerber objects or the Outline Gerber object is not valid."
+
+#: AppTools/ToolRulesCheck.py:1431
+msgid "TOP -> Minimum Solder Mask Sliver"
+msgstr "TOP -> Minimum Solder Mask Sliver"
+
+#: AppTools/ToolRulesCheck.py:1441
+msgid "BOTTOM -> Minimum Solder Mask Sliver"
+msgstr "BOTTOM -> Minimum Solder Mask Sliver"
+
+#: AppTools/ToolRulesCheck.py:1490
+msgid "One of the Copper Gerber objects or the Excellon objects is not valid."
+msgstr "One of the Copper Gerber objects or the Excellon objects is not valid."
+
+#: AppTools/ToolRulesCheck.py:1506
+msgid ""
+"Excellon object presence is mandatory for this rule but none is selected."
+msgstr ""
+"Excellon object presence is mandatory for this rule but none is selected."
+
+#: AppTools/ToolRulesCheck.py:1579 AppTools/ToolRulesCheck.py:1592
+#: AppTools/ToolRulesCheck.py:1603 AppTools/ToolRulesCheck.py:1616
+msgid "STATUS"
+msgstr "STATUS"
+
+#: AppTools/ToolRulesCheck.py:1582 AppTools/ToolRulesCheck.py:1606
+msgid "FAILED"
+msgstr "FAILED"
+
+#: AppTools/ToolRulesCheck.py:1595 AppTools/ToolRulesCheck.py:1619
+msgid "PASSED"
+msgstr "PASSED"
+
+#: AppTools/ToolRulesCheck.py:1596 AppTools/ToolRulesCheck.py:1620
+msgid "Violations: There are no violations for the current rule."
+msgstr "Violations: There are no violations for the current rule."
+
+#: AppTools/ToolShell.py:74 AppTools/ToolShell.py:76
+msgid "...processing..."
+msgstr "...processing..."
+
+#: AppTools/ToolSolderPaste.py:37
+msgid "Solder Paste Tool"
+msgstr "Solder Paste Tool"
+
+#: AppTools/ToolSolderPaste.py:69
+msgid "Gerber Solder paste object. "
+msgstr "Gerber Solder paste object. "
+
+#: AppTools/ToolSolderPaste.py:76
+msgid ""
+"Tools pool from which the algorithm\n"
+"will pick the ones used for dispensing solder paste."
+msgstr ""
+"Tools pool from which the algorithm\n"
+"will pick the ones used for dispensing solder paste."
+
+#: AppTools/ToolSolderPaste.py:91
+msgid ""
+"This is the Tool Number.\n"
+"The solder dispensing will start with the tool with the biggest \n"
+"diameter, continuing until there are no more Nozzle tools.\n"
+"If there are no longer tools but there are still pads not covered\n"
+" with solder paste, the app will issue a warning message box."
+msgstr ""
+"This is the Tool Number.\n"
+"The solder dispensing will start with the tool with the biggest \n"
+"diameter, continuing until there are no more Nozzle tools.\n"
+"If there are no longer tools but there are still pads not covered\n"
+" with solder paste, the app will issue a warning message box."
+
+#: AppTools/ToolSolderPaste.py:98
+msgid ""
+"Nozzle tool Diameter. It's value (in current FlatCAM units)\n"
+"is the width of the solder paste dispensed."
+msgstr ""
+"Nozzle tool Diameter. It's value (in current FlatCAM units)\n"
+"is the width of the solder paste dispensed."
+
+#: AppTools/ToolSolderPaste.py:105
+msgid "New Nozzle Tool"
+msgstr "New Nozzle Tool"
+
+#: AppTools/ToolSolderPaste.py:124
+msgid ""
+"Add a new nozzle tool to the Tool Table\n"
+"with the diameter specified above."
+msgstr ""
+"Add a new nozzle tool to the Tool Table\n"
+"with the diameter specified above."
+
+#: AppTools/ToolSolderPaste.py:136
+msgid "Generate solder paste dispensing geometry."
+msgstr "Generate solder paste dispensing geometry."
+
+#: AppTools/ToolSolderPaste.py:155
+msgid "STEP 1"
+msgstr "STEP 1"
+
+#: AppTools/ToolSolderPaste.py:157
+msgid ""
+"First step is to select a number of nozzle tools for usage\n"
+"and then optionally modify the GCode parameters below."
+msgstr ""
+"First step is to select a number of nozzle tools for usage\n"
+"and then optionally modify the GCode parameters below."
+
+#: AppTools/ToolSolderPaste.py:160
+msgid ""
+"Select tools.\n"
+"Modify parameters."
+msgstr ""
+"Select tools.\n"
+"Modify parameters."
+
+#: AppTools/ToolSolderPaste.py:280
+msgid ""
+"Feedrate (speed) while moving up vertically\n"
+" to Dispense position (on Z plane)."
+msgstr ""
+"Feedrate (speed) while moving up vertically\n"
+" to Dispense position (on Z plane)."
+
+#: AppTools/ToolSolderPaste.py:350
+msgid ""
+"Generate GCode for Solder Paste dispensing\n"
+"on PCB pads."
+msgstr ""
+"Generate GCode for Solder Paste dispensing\n"
+"on PCB pads."
+
+#: AppTools/ToolSolderPaste.py:371
+msgid "STEP 2"
+msgstr "STEP 2"
+
+#: AppTools/ToolSolderPaste.py:373
+msgid ""
+"Second step is to create a solder paste dispensing\n"
+"geometry out of an Solder Paste Mask Gerber file."
+msgstr ""
+"Second step is to create a solder paste dispensing\n"
+"geometry out of an Solder Paste Mask Gerber file."
+
+#: AppTools/ToolSolderPaste.py:390
+msgid "Geo Result"
+msgstr "Geo Result"
+
+#: AppTools/ToolSolderPaste.py:392
+msgid ""
+"Geometry Solder Paste object.\n"
+"The name of the object has to end in:\n"
+"'_solderpaste' as a protection."
+msgstr ""
+"Geometry Solder Paste object.\n"
+"The name of the object has to end in:\n"
+"'_solderpaste' as a protection."
+
+#: AppTools/ToolSolderPaste.py:401
+msgid "STEP 3"
+msgstr "STEP 3"
+
+#: AppTools/ToolSolderPaste.py:403
+msgid ""
+"Third step is to select a solder paste dispensing geometry,\n"
+"and then generate a CNCJob object.\n"
+"\n"
+"REMEMBER: if you want to create a CNCJob with new parameters,\n"
+"first you need to generate a geometry with those new params,\n"
+"and only after that you can generate an updated CNCJob."
+msgstr ""
+"Third step is to select a solder paste dispensing geometry,\n"
+"and then generate a CNCJob object.\n"
+"\n"
+"REMEMBER: if you want to create a CNCJob with new parameters,\n"
+"first you need to generate a geometry with those new params,\n"
+"and only after that you can generate an updated CNCJob."
+
+#: AppTools/ToolSolderPaste.py:424
+msgid "CNC Result"
+msgstr "CNC Result"
+
+#: AppTools/ToolSolderPaste.py:426
+msgid ""
+"CNCJob Solder paste object.\n"
+"In order to enable the GCode save section,\n"
+"the name of the object has to end in:\n"
+"'_solderpaste' as a protection."
+msgstr ""
+"CNCJob Solder paste object.\n"
+"In order to enable the GCode save section,\n"
+"the name of the object has to end in:\n"
+"'_solderpaste' as a protection."
+
+#: AppTools/ToolSolderPaste.py:436
+msgid "View GCode"
+msgstr "View GCode"
+
+#: AppTools/ToolSolderPaste.py:438
+msgid ""
+"View the generated GCode for Solder Paste dispensing\n"
+"on PCB pads."
+msgstr ""
+"View the generated GCode for Solder Paste dispensing\n"
+"on PCB pads."
+
+#: AppTools/ToolSolderPaste.py:448
+msgid "Save GCode"
+msgstr "Save GCode"
+
+#: AppTools/ToolSolderPaste.py:450
+msgid ""
+"Save the generated GCode for Solder Paste dispensing\n"
+"on PCB pads, to a file."
+msgstr ""
+"Save the generated GCode for Solder Paste dispensing\n"
+"on PCB pads, to a file."
+
+#: AppTools/ToolSolderPaste.py:460
+msgid "STEP 4"
+msgstr "STEP 4"
+
+#: AppTools/ToolSolderPaste.py:462
+msgid ""
+"Fourth step (and last) is to select a CNCJob made from \n"
+"a solder paste dispensing geometry, and then view/save it's GCode."
+msgstr ""
+"Fourth step (and last) is to select a CNCJob made from \n"
+"a solder paste dispensing geometry, and then view/save it's GCode."
+
+#: AppTools/ToolSolderPaste.py:922
+msgid "New Nozzle tool added to Tool Table."
+msgstr "New Nozzle tool added to Tool Table."
+
+#: AppTools/ToolSolderPaste.py:965
+msgid "Nozzle tool from Tool Table was edited."
+msgstr "Nozzle tool from Tool Table was edited."
+
+#: AppTools/ToolSolderPaste.py:1024
+msgid "Delete failed. Select a Nozzle tool to delete."
+msgstr "Delete failed. Select a Nozzle tool to delete."
+
+#: AppTools/ToolSolderPaste.py:1030
+msgid "Nozzle tool(s) deleted from Tool Table."
+msgstr "Nozzle tool(s) deleted from Tool Table."
+
+#: AppTools/ToolSolderPaste.py:1086
+msgid "No SolderPaste mask Gerber object loaded."
+msgstr "No SolderPaste mask Gerber object loaded."
+
+#: AppTools/ToolSolderPaste.py:1104
+msgid "Creating Solder Paste dispensing geometry."
+msgstr "Creating Solder Paste dispensing geometry."
+
+#: AppTools/ToolSolderPaste.py:1117
+msgid "No Nozzle tools in the tool table."
+msgstr "No Nozzle tools in the tool table."
+
+#: AppTools/ToolSolderPaste.py:1243
+msgid "Cancelled. Empty file, it has no geometry..."
+msgstr "Cancelled. Empty file, it has no geometry..."
+
+#: AppTools/ToolSolderPaste.py:1246
+msgid "Solder Paste geometry generated successfully"
+msgstr "Solder Paste geometry generated successfully"
+
+#: AppTools/ToolSolderPaste.py:1253
+msgid "Some or all pads have no solder due of inadequate nozzle diameters..."
+msgstr "Some or all pads have no solder due of inadequate nozzle diameters..."
+
+#: AppTools/ToolSolderPaste.py:1267
+msgid "Generating Solder Paste dispensing geometry..."
+msgstr "Generating Solder Paste dispensing geometry..."
+
+#: AppTools/ToolSolderPaste.py:1287
+msgid "There is no Geometry object available."
+msgstr "There is no Geometry object available."
+
+#: AppTools/ToolSolderPaste.py:1292
+msgid "This Geometry can't be processed. NOT a solder_paste_tool geometry."
+msgstr "This Geometry can't be processed. NOT a solder_paste_tool geometry."
+
+#: AppTools/ToolSolderPaste.py:1328
+msgid "An internal error has ocurred. See shell.\n"
+msgstr "An internal error has ocurred. See shell.\n"
+
+#: AppTools/ToolSolderPaste.py:1393
+msgid "ToolSolderPaste CNCjob created"
+msgstr "ToolSolderPaste CNCjob created"
+
+#: AppTools/ToolSolderPaste.py:1412
+msgid "SP GCode Editor"
+msgstr "SP GCode Editor"
+
+#: AppTools/ToolSolderPaste.py:1424 AppTools/ToolSolderPaste.py:1429
+#: AppTools/ToolSolderPaste.py:1484
+msgid ""
+"This CNCJob object can't be processed. NOT a solder_paste_tool CNCJob object."
+msgstr ""
+"This CNCJob object can't be processed. NOT a solder_paste_tool CNCJob object."
+
+#: AppTools/ToolSolderPaste.py:1454
+msgid "No Gcode in the object"
+msgstr "No Gcode in the object"
+
+#: AppTools/ToolSolderPaste.py:1494
+msgid "Export GCode ..."
+msgstr "Export GCode ..."
+
+#: AppTools/ToolSolderPaste.py:1542
+msgid "Solder paste dispenser GCode file saved to"
+msgstr "Solder paste dispenser GCode file saved to"
+
+#: AppTools/ToolSub.py:65
+msgid "Gerber Objects"
+msgstr "Gerber Objects"
+
+#: AppTools/ToolSub.py:78
+msgid ""
+"Gerber object from which to subtract\n"
+"the subtractor Gerber object."
+msgstr ""
+"Gerber object from which to subtract\n"
+"the subtractor Gerber object."
+
+#: AppTools/ToolSub.py:91 AppTools/ToolSub.py:146
+msgid "Subtractor"
+msgstr "Subtractor"
+
+#: AppTools/ToolSub.py:93
+msgid ""
+"Gerber object that will be subtracted\n"
+"from the target Gerber object."
+msgstr ""
+"Gerber object that will be subtracted\n"
+"from the target Gerber object."
+
+#: AppTools/ToolSub.py:100
+msgid "Subtract Gerber"
+msgstr "Subtract Gerber"
+
+#: AppTools/ToolSub.py:102
+msgid ""
+"Will remove the area occupied by the subtractor\n"
+"Gerber from the Target Gerber.\n"
+"Can be used to remove the overlapping silkscreen\n"
+"over the soldermask."
+msgstr ""
+"Will remove the area occupied by the subtractor\n"
+"Gerber from the Target Gerber.\n"
+"Can be used to remove the overlapping silkscreen\n"
+"over the soldermask."
+
+#: AppTools/ToolSub.py:120
+msgid "Geometry Objects"
+msgstr "Geometry Objects"
+
+#: AppTools/ToolSub.py:133
+msgid ""
+"Geometry object from which to subtract\n"
+"the subtractor Geometry object."
+msgstr ""
+"Geometry object from which to subtract\n"
+"the subtractor Geometry object."
+
+#: AppTools/ToolSub.py:148
+msgid ""
+"Geometry object that will be subtracted\n"
+"from the target Geometry object."
+msgstr ""
+"Geometry object that will be subtracted\n"
+"from the target Geometry object."
+
+#: AppTools/ToolSub.py:156
+msgid ""
+"Checking this will close the paths cut by the Geometry subtractor object."
+msgstr ""
+"Checking this will close the paths cut by the Geometry subtractor object."
+
+#: AppTools/ToolSub.py:159
+msgid "Subtract Geometry"
+msgstr "Subtract Geometry"
+
+#: AppTools/ToolSub.py:161
+msgid ""
+"Will remove the area occupied by the subtractor\n"
+"Geometry from the Target Geometry."
+msgstr ""
+"Will remove the area occupied by the subtractor\n"
+"Geometry from the Target Geometry."
+
+#: AppTools/ToolSub.py:263
+msgid "Sub Tool"
+msgstr "Sub Tool"
+
+#: AppTools/ToolSub.py:284 AppTools/ToolSub.py:489
+msgid "No Target object loaded."
+msgstr "No Target object loaded."
+
+#: AppTools/ToolSub.py:287
+msgid "Loading geometry from Gerber objects."
+msgstr "Loading geometry from Gerber objects."
+
+#: AppTools/ToolSub.py:299 AppTools/ToolSub.py:504
+msgid "No Subtractor object loaded."
+msgstr "No Subtractor object loaded."
+
+#: AppTools/ToolSub.py:331
+msgid "Processing geometry from Subtractor Gerber object."
+msgstr "Processing geometry from Subtractor Gerber object."
+
+#: AppTools/ToolSub.py:352
+msgid "Parsing geometry for aperture"
+msgstr "Parsing geometry for aperture"
+
+#: AppTools/ToolSub.py:413
+msgid "Finished parsing geometry for aperture"
+msgstr "Finished parsing geometry for aperture"
+
+#: AppTools/ToolSub.py:458 AppTools/ToolSub.py:661
+msgid "Generating new object ..."
+msgstr "Generating new object ..."
+
+#: AppTools/ToolSub.py:462 AppTools/ToolSub.py:665 AppTools/ToolSub.py:746
+msgid "Generating new object failed."
+msgstr "Generating new object failed."
+
+#: AppTools/ToolSub.py:467 AppTools/ToolSub.py:671
+msgid "Created"
+msgstr "Created"
+
+#: AppTools/ToolSub.py:518
+msgid "Currently, the Subtractor geometry cannot be of type Multigeo."
+msgstr "Currently, the Subtractor geometry cannot be of type Multigeo."
+
+#: AppTools/ToolSub.py:563
+msgid "Parsing solid_geometry ..."
+msgstr "Parsing solid_geometry ..."
+
+#: AppTools/ToolSub.py:565
+msgid "Parsing solid_geometry for tool"
+msgstr "Parsing solid_geometry for tool"
+
+#: AppTools/ToolTransform.py:23
+msgid "Object Transform"
+msgstr "Object Transform"
+
+#: AppTools/ToolTransform.py:78
+msgid ""
+"Rotate the selected object(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected objects."
+msgstr ""
+"Rotate the selected object(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected objects."
+
+#: AppTools/ToolTransform.py:99 AppTools/ToolTransform.py:120
+msgid ""
+"Angle for Skew action, in degrees.\n"
+"Float number between -360 and 360."
+msgstr ""
+"Angle for Skew action, in degrees.\n"
+"Float number between -360 and 360."
+
+#: AppTools/ToolTransform.py:109 AppTools/ToolTransform.py:130
+msgid ""
+"Skew/shear the selected object(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected objects."
+msgstr ""
+"Skew/shear the selected object(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected objects."
+
+#: AppTools/ToolTransform.py:159 AppTools/ToolTransform.py:179
+msgid ""
+"Scale the selected object(s).\n"
+"The point of reference depends on \n"
+"the Scale reference checkbox state."
+msgstr ""
+"Scale the selected object(s).\n"
+"The point of reference depends on \n"
+"the Scale reference checkbox state."
+
+#: AppTools/ToolTransform.py:228 AppTools/ToolTransform.py:248
+msgid ""
+"Offset the selected object(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected objects.\n"
+msgstr ""
+"Offset the selected object(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected objects.\n"
+
+#: AppTools/ToolTransform.py:268 AppTools/ToolTransform.py:273
+msgid "Flip the selected object(s) over the X axis."
+msgstr "Flip the selected object(s) over the X axis."
+
+#: AppTools/ToolTransform.py:297
+msgid "Ref. Point"
+msgstr "Ref. Point"
+
+#: AppTools/ToolTransform.py:348
+msgid ""
+"Create the buffer effect on each geometry,\n"
+"element from the selected object, using the distance."
+msgstr ""
+"Create the buffer effect on each geometry,\n"
+"element from the selected object, using the distance."
+
+#: AppTools/ToolTransform.py:374
+msgid ""
+"Create the buffer effect on each geometry,\n"
+"element from the selected object, using the factor."
+msgstr ""
+"Create the buffer effect on each geometry,\n"
+"element from the selected object, using the factor."
+
+#: AppTools/ToolTransform.py:479
+msgid "Buffer D"
+msgstr "Buffer D"
+
+#: AppTools/ToolTransform.py:480
+msgid "Buffer F"
+msgstr "Buffer F"
+
+#: AppTools/ToolTransform.py:557
+msgid "Rotate transformation can not be done for a value of 0."
+msgstr "Rotate transformation can not be done for a value of 0."
+
+#: AppTools/ToolTransform.py:596 AppTools/ToolTransform.py:619
+msgid "Scale transformation can not be done for a factor of 0 or 1."
+msgstr "Scale transformation can not be done for a factor of 0 or 1."
+
+#: AppTools/ToolTransform.py:634 AppTools/ToolTransform.py:644
+msgid "Offset transformation can not be done for a value of 0."
+msgstr "Offset transformation can not be done for a value of 0."
+
+#: AppTools/ToolTransform.py:676
+msgid "No object selected. Please Select an object to rotate!"
+msgstr "No object selected. Please Select an object to rotate!"
+
+#: AppTools/ToolTransform.py:702
+msgid "CNCJob objects can't be rotated."
+msgstr "CNCJob objects can't be rotated."
+
+#: AppTools/ToolTransform.py:710
+msgid "Rotate done"
+msgstr "Rotate done"
+
+#: AppTools/ToolTransform.py:713 AppTools/ToolTransform.py:783
+#: AppTools/ToolTransform.py:833 AppTools/ToolTransform.py:887
+#: AppTools/ToolTransform.py:917 AppTools/ToolTransform.py:953
+msgid "Due of"
+msgstr "Due of"
+
+#: AppTools/ToolTransform.py:713 AppTools/ToolTransform.py:783
+#: AppTools/ToolTransform.py:833 AppTools/ToolTransform.py:887
+#: AppTools/ToolTransform.py:917 AppTools/ToolTransform.py:953
+msgid "action was not executed."
+msgstr "action was not executed."
+
+#: AppTools/ToolTransform.py:725
+msgid "No object selected. Please Select an object to flip"
+msgstr "No object selected. Please Select an object to flip"
+
+#: AppTools/ToolTransform.py:758
+msgid "CNCJob objects can't be mirrored/flipped."
+msgstr "CNCJob objects can't be mirrored/flipped."
+
+#: AppTools/ToolTransform.py:793
+msgid "Skew transformation can not be done for 0, 90 and 180 degrees."
+msgstr "Skew transformation can not be done for 0, 90 and 180 degrees."
+
+#: AppTools/ToolTransform.py:798
+msgid "No object selected. Please Select an object to shear/skew!"
+msgstr "No object selected. Please Select an object to shear/skew!"
+
+#: AppTools/ToolTransform.py:818
+msgid "CNCJob objects can't be skewed."
+msgstr "CNCJob objects can't be skewed."
+
+#: AppTools/ToolTransform.py:830
+msgid "Skew on the"
+msgstr "Skew on the"
+
+#: AppTools/ToolTransform.py:830 AppTools/ToolTransform.py:884
+#: AppTools/ToolTransform.py:914
+msgid "axis done"
+msgstr "axis done"
+
+#: AppTools/ToolTransform.py:844
+msgid "No object selected. Please Select an object to scale!"
+msgstr "No object selected. Please Select an object to scale!"
+
+#: AppTools/ToolTransform.py:875
+msgid "CNCJob objects can't be scaled."
+msgstr "CNCJob objects can't be scaled."
+
+#: AppTools/ToolTransform.py:884
+msgid "Scale on the"
+msgstr "Scale on the"
+
+#: AppTools/ToolTransform.py:894
+msgid "No object selected. Please Select an object to offset!"
+msgstr "No object selected. Please Select an object to offset!"
+
+#: AppTools/ToolTransform.py:901
+msgid "CNCJob objects can't be offset."
+msgstr "CNCJob objects can't be offset."
+
+#: AppTools/ToolTransform.py:914
+msgid "Offset on the"
+msgstr "Offset on the"
+
+#: AppTools/ToolTransform.py:924
+msgid "No object selected. Please Select an object to buffer!"
+msgstr "No object selected. Please Select an object to buffer!"
+
+#: AppTools/ToolTransform.py:927
+msgid "Applying Buffer"
+msgstr "Applying Buffer"
+
+#: AppTools/ToolTransform.py:931
+msgid "CNCJob objects can't be buffered."
+msgstr "CNCJob objects can't be buffered."
+
+#: AppTools/ToolTransform.py:948
+msgid "Buffer done"
+msgstr "Buffer done"
+
+#: AppTranslation.py:104
msgid "The application will restart."
msgstr "The application will restart."
-#: FlatCAMTranslation.py:106
+#: AppTranslation.py:106
msgid "Are you sure do you want to change the current language to"
msgstr "Are you sure do you want to change the current language to"
-#: FlatCAMTranslation.py:107
+#: AppTranslation.py:107
msgid "Apply Language ..."
msgstr "Apply Language ..."
+#: AppTranslation.py:201 App_Main.py:3047
+msgid ""
+"There are files/objects modified in FlatCAM. \n"
+"Do you want to Save the project?"
+msgstr ""
+"There are files/objects modified in FlatCAM. \n"
+"Do you want to Save the project?"
+
+#: AppTranslation.py:204 App_Main.py:3050 App_Main.py:6334
+msgid "Save changes"
+msgstr "Save changes"
+
+#: App_Main.py:477
+msgid "FlatCAM is initializing ..."
+msgstr "FlatCAM is initializing ..."
+
+#: App_Main.py:620
+msgid "Could not find the Language files. The App strings are missing."
+msgstr "Could not find the Language files. The App strings are missing."
+
+#: App_Main.py:692
+msgid ""
+"FlatCAM is initializing ...\n"
+"Canvas initialization started."
+msgstr ""
+"FlatCAM is initializing ...\n"
+"Canvas initialization started."
+
+#: App_Main.py:712
+msgid ""
+"FlatCAM is initializing ...\n"
+"Canvas initialization started.\n"
+"Canvas initialization finished in"
+msgstr ""
+"FlatCAM is initializing ...\n"
+"Canvas initialization started.\n"
+"Canvas initialization finished in"
+
+#: App_Main.py:1542 App_Main.py:6445
+msgid "New Project - Not saved"
+msgstr "New Project - Not saved"
+
+#: App_Main.py:1643
+msgid ""
+"Found old default preferences files. Please reboot the application to update."
+msgstr ""
+"Found old default preferences files. Please reboot the application to update."
+
+#: App_Main.py:1710
+msgid "Open Config file failed."
+msgstr "Open Config file failed."
+
+#: App_Main.py:1725
+msgid "Open Script file failed."
+msgstr "Open Script file failed."
+
+#: App_Main.py:1751
+msgid "Open Excellon file failed."
+msgstr "Open Excellon file failed."
+
+#: App_Main.py:1764
+msgid "Open GCode file failed."
+msgstr "Open GCode file failed."
+
+#: App_Main.py:1777
+msgid "Open Gerber file failed."
+msgstr "Open Gerber file failed."
+
+#: App_Main.py:2095
+msgid "Select a Geometry, Gerber, Excellon or CNCJob Object to edit."
+msgstr "Select a Geometry, Gerber, Excellon or CNCJob Object to edit."
+
+#: App_Main.py:2110
+msgid ""
+"Simultaneous editing of tools geometry in a MultiGeo Geometry is not "
+"possible.\n"
+"Edit only one geometry at a time."
+msgstr ""
+"Simultaneous editing of tools geometry in a MultiGeo Geometry is not "
+"possible.\n"
+"Edit only one geometry at a time."
+
+#: App_Main.py:2176
+msgid "Editor is activated ..."
+msgstr "Editor is activated ..."
+
+#: App_Main.py:2197
+msgid "Do you want to save the edited object?"
+msgstr "Do you want to save the edited object?"
+
+#: App_Main.py:2235
+msgid "Object empty after edit."
+msgstr "Object empty after edit."
+
+#: App_Main.py:2239 App_Main.py:2260 App_Main.py:2282
+msgid "Editor exited. Editor content saved."
+msgstr "Editor exited. Editor content saved."
+
+#: App_Main.py:2286 App_Main.py:2309 App_Main.py:2327
+msgid "Select a Gerber, Geometry or Excellon Object to update."
+msgstr "Select a Gerber, Geometry or Excellon Object to update."
+
+#: App_Main.py:2289
+msgid "is updated, returning to App..."
+msgstr "is updated, returning to App..."
+
+#: App_Main.py:2296
+msgid "Editor exited. Editor content was not saved."
+msgstr "Editor exited. Editor content was not saved."
+
+#: App_Main.py:2422 App_Main.py:2426
+msgid "Import FlatCAM Preferences"
+msgstr "Import FlatCAM Preferences"
+
+#: App_Main.py:2437
+msgid "Imported Defaults from"
+msgstr "Imported Defaults from"
+
+#: App_Main.py:2457 App_Main.py:2462
+msgid "Export FlatCAM Preferences"
+msgstr "Export FlatCAM Preferences"
+
+#: App_Main.py:2482
+msgid "Exported preferences to"
+msgstr "Exported preferences to"
+
+#: App_Main.py:2502 App_Main.py:2507
+msgid "Save to file"
+msgstr "Save to file"
+
+#: App_Main.py:2531
+msgid "Could not load the file."
+msgstr "Could not load the file."
+
+#: App_Main.py:2547
+msgid "Exported file to"
+msgstr "Exported file to"
+
+#: App_Main.py:2584
+msgid "Failed to open recent files file for writing."
+msgstr "Failed to open recent files file for writing."
+
+#: App_Main.py:2595
+msgid "Failed to open recent projects file for writing."
+msgstr "Failed to open recent projects file for writing."
+
+#: App_Main.py:2650
+msgid "2D Computer-Aided Printed Circuit Board Manufacturing"
+msgstr "2D Computer-Aided Printed Circuit Board Manufacturing"
+
+#: App_Main.py:2651
+msgid "Development"
+msgstr "Development"
+
+#: App_Main.py:2652
+msgid "DOWNLOAD"
+msgstr "DOWNLOAD"
+
+#: App_Main.py:2653
+msgid "Issue tracker"
+msgstr "Issue tracker"
+
+#: App_Main.py:2672
+msgid "Licensed under the MIT license"
+msgstr "Licensed under the MIT license"
+
+#: App_Main.py:2681
+msgid ""
+"Permission is hereby granted, free of charge, to any person obtaining a "
+"copy\n"
+"of this software and associated documentation files (the \"Software\"), to "
+"deal\n"
+"in the Software without restriction, including without limitation the "
+"rights\n"
+"to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n"
+"copies of the Software, and to permit persons to whom the Software is\n"
+"furnished to do so, subject to the following conditions:\n"
+"\n"
+"The above copyright notice and this permission notice shall be included in\n"
+"all copies or substantial portions of the Software.\n"
+"\n"
+"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS "
+"OR\n"
+"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n"
+"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n"
+"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n"
+"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING "
+"FROM,\n"
+"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n"
+"THE SOFTWARE."
+msgstr ""
+"Permission is hereby granted, free of charge, to any person obtaining a "
+"copy\n"
+"of this software and associated documentation files (the \"Software\"), to "
+"deal\n"
+"in the Software without restriction, including without limitation the "
+"rights\n"
+"to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n"
+"copies of the Software, and to permit persons to whom the Software is\n"
+"furnished to do so, subject to the following conditions:\n"
+"\n"
+"The above copyright notice and this permission notice shall be included in\n"
+"all copies or substantial portions of the Software.\n"
+"\n"
+"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS "
+"OR\n"
+"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n"
+"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n"
+"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n"
+"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING "
+"FROM,\n"
+"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n"
+"THE SOFTWARE."
+
+#: App_Main.py:2703
+msgid ""
+"Some of the icons used are from the following sources:
Icons by oNline Web Fonts"
+msgstr ""
+"Some of the icons used are from the following sources:
Icons by oNline Web Fonts"
+
+#: App_Main.py:2736
+msgid "Splash"
+msgstr "Splash"
+
+#: App_Main.py:2742
+msgid "Programmers"
+msgstr "Programmers"
+
+#: App_Main.py:2748
+msgid "Translators"
+msgstr "Translators"
+
+#: App_Main.py:2754
+msgid "License"
+msgstr "License"
+
+#: App_Main.py:2760
+msgid "Attributions"
+msgstr "Attributions"
+
+#: App_Main.py:2783
+msgid "Programmer"
+msgstr "Programmer"
+
+#: App_Main.py:2784
+msgid "Status"
+msgstr "Status"
+
+#: App_Main.py:2785 App_Main.py:2865
+msgid "E-mail"
+msgstr "E-mail"
+
+#: App_Main.py:2788
+msgid "Program Author"
+msgstr "Program Author"
+
+#: App_Main.py:2793
+msgid "BETA Maintainer >= 2019"
+msgstr "BETA Maintainer >= 2019"
+
+#: App_Main.py:2862
+msgid "Language"
+msgstr "Language"
+
+#: App_Main.py:2863
+msgid "Translator"
+msgstr "Translator"
+
+#: App_Main.py:2864
+msgid "Corrections"
+msgstr "Corrections"
+
+#: App_Main.py:3009
+msgid ""
+"This entry will resolve to another website if:\n"
+"\n"
+"1. FlatCAM.org website is down\n"
+"2. Someone forked FlatCAM project and wants to point\n"
+"to his own website\n"
+"\n"
+"If you can't get any informations about FlatCAM beta\n"
+"use the YouTube channel link from the Help menu."
+msgstr ""
+"This entry will resolve to another website if:\n"
+"\n"
+"1. FlatCAM.org website is down\n"
+"2. Someone forked FlatCAM project and wants to point\n"
+"to his own website\n"
+"\n"
+"If you can't get any informations about FlatCAM beta\n"
+"use the YouTube channel link from the Help menu."
+
+#: App_Main.py:3016
+msgid "Alternative website"
+msgstr "Alternative website"
+
+#: App_Main.py:3315
+msgid "Selected Excellon file extensions registered with FlatCAM."
+msgstr "Selected Excellon file extensions registered with FlatCAM."
+
+#: App_Main.py:3337
+msgid "Selected GCode file extensions registered with FlatCAM."
+msgstr "Selected GCode file extensions registered with FlatCAM."
+
+#: App_Main.py:3359
+msgid "Selected Gerber file extensions registered with FlatCAM."
+msgstr "Selected Gerber file extensions registered with FlatCAM."
+
+#: App_Main.py:3547 App_Main.py:3606 App_Main.py:3634
+msgid "At least two objects are required for join. Objects currently selected"
+msgstr "At least two objects are required for join. Objects currently selected"
+
+#: App_Main.py:3556
+msgid ""
+"Failed join. The Geometry objects are of different types.\n"
+"At least one is MultiGeo type and the other is SingleGeo type. A possibility "
+"is to convert from one to another and retry joining \n"
+"but in the case of converting from MultiGeo to SingleGeo, informations may "
+"be lost and the result may not be what was expected. \n"
+"Check the generated GCODE."
+msgstr ""
+"Failed join. The Geometry objects are of different types.\n"
+"At least one is MultiGeo type and the other is SingleGeo type. A possibility "
+"is to convert from one to another and retry joining \n"
+"but in the case of converting from MultiGeo to SingleGeo, informations may "
+"be lost and the result may not be what was expected. \n"
+"Check the generated GCODE."
+
+#: App_Main.py:3568 App_Main.py:3578
+msgid "Geometry merging finished"
+msgstr "Geometry merging finished"
+
+#: App_Main.py:3601
+msgid "Failed. Excellon joining works only on Excellon objects."
+msgstr "Failed. Excellon joining works only on Excellon objects."
+
+#: App_Main.py:3611
+msgid "Excellon merging finished"
+msgstr "Excellon merging finished"
+
+#: App_Main.py:3629
+msgid "Failed. Gerber joining works only on Gerber objects."
+msgstr "Failed. Gerber joining works only on Gerber objects."
+
+#: App_Main.py:3639
+msgid "Gerber merging finished"
+msgstr "Gerber merging finished"
+
+#: App_Main.py:3659 App_Main.py:3696
+msgid "Failed. Select a Geometry Object and try again."
+msgstr "Failed. Select a Geometry Object and try again."
+
+#: App_Main.py:3663 App_Main.py:3701
+msgid "Expected a GeometryObject, got"
+msgstr "Expected a GeometryObject, got"
+
+#: App_Main.py:3678
+msgid "A Geometry object was converted to MultiGeo type."
+msgstr "A Geometry object was converted to MultiGeo type."
+
+#: App_Main.py:3716
+msgid "A Geometry object was converted to SingleGeo type."
+msgstr "A Geometry object was converted to SingleGeo type."
+
+#: App_Main.py:3922
+msgid "Toggle Units"
+msgstr "Toggle Units"
+
+#: App_Main.py:3924
+msgid ""
+"Changing the units of the project\n"
+"will scale all objects.\n"
+"\n"
+"Do you want to continue?"
+msgstr ""
+"Changing the units of the project\n"
+"will scale all objects.\n"
+"\n"
+"Do you want to continue?"
+
+#: App_Main.py:3927 App_Main.py:4201 App_Main.py:4278 App_Main.py:6722
+#: App_Main.py:6736 App_Main.py:7069 App_Main.py:7079
+msgid "Ok"
+msgstr "Ok"
+
+#: App_Main.py:3977
+msgid "Converted units to"
+msgstr "Converted units to"
+
+#: App_Main.py:4019
+#| msgid "All plots enabled."
+msgid "Axis enabled."
+msgstr "Axis enabled."
+
+#: App_Main.py:4031
+#| msgid "All plots disabled."
+msgid "Axis disabled."
+msgstr "Axis disabled."
+
+#: App_Main.py:4039
+#| msgid "Disabled"
+msgid "HUD disabled."
+msgstr "HUD disabled."
+
+#: App_Main.py:4041
+#| msgid "Enabled"
+msgid "HUD enabled."
+msgstr "HUD enabled."
+
+#: App_Main.py:4065
+#| msgid "Workspace enabled."
+msgid "Grid enabled."
+msgstr "Grid enabled."
+
+#: App_Main.py:4080
+#| msgid "Workspace disabled."
+msgid "Grid disabled."
+msgstr "Grid disabled."
+
+#: App_Main.py:4101
+msgid "Detachable Tabs"
+msgstr "Detachable Tabs"
+
+#: App_Main.py:4130
+msgid "Workspace enabled."
+msgstr "Workspace enabled."
+
+#: App_Main.py:4133
+msgid "Workspace disabled."
+msgstr "Workspace disabled."
+
+#: App_Main.py:4197
+msgid ""
+"Adding Tool works only when Advanced is checked.\n"
+"Go to Preferences -> General - Show Advanced Options."
+msgstr ""
+"Adding Tool works only when Advanced is checked.\n"
+"Go to Preferences -> General - Show Advanced Options."
+
+#: App_Main.py:4273
+msgid "Delete objects"
+msgstr "Delete objects"
+
+#: App_Main.py:4276
+msgid ""
+"Are you sure you want to permanently delete\n"
+"the selected objects?"
+msgstr ""
+"Are you sure you want to permanently delete\n"
+"the selected objects?"
+
+#: App_Main.py:4314
+msgid "Object(s) deleted"
+msgstr "Object(s) deleted"
+
+#: App_Main.py:4324
+msgid "Save the work in Editor and try again ..."
+msgstr "Save the work in Editor and try again ..."
+
+#: App_Main.py:4353
+msgid "Object deleted"
+msgstr "Object deleted"
+
+#: App_Main.py:4380
+msgid "Click to set the origin ..."
+msgstr "Click to set the origin ..."
+
+#: App_Main.py:4402
+msgid "Setting Origin..."
+msgstr "Setting Origin..."
+
+#: App_Main.py:4415 App_Main.py:4517
+msgid "Origin set"
+msgstr "Origin set"
+
+#: App_Main.py:4432
+msgid "Origin coordinates specified but incomplete."
+msgstr "Origin coordinates specified but incomplete."
+
+#: App_Main.py:4473
+msgid "Moving to Origin..."
+msgstr "Moving to Origin..."
+
+#: App_Main.py:4554
+msgid "Jump to ..."
+msgstr "Jump to ..."
+
+#: App_Main.py:4555
+msgid "Enter the coordinates in format X,Y:"
+msgstr "Enter the coordinates in format X,Y:"
+
+#: App_Main.py:4565
+msgid "Wrong coordinates. Enter coordinates in format: X,Y"
+msgstr "Wrong coordinates. Enter coordinates in format: X,Y"
+
+#: App_Main.py:4683
+msgid "Bottom-Left"
+msgstr "Bottom-Left"
+
+#: App_Main.py:4686
+msgid "Top-Right"
+msgstr "Top-Right"
+
+#: App_Main.py:4707
+msgid "Locate ..."
+msgstr "Locate ..."
+
+#: App_Main.py:4970 App_Main.py:5047
+msgid "No object is selected. Select an object and try again."
+msgstr "No object is selected. Select an object and try again."
+
+#: App_Main.py:5073
+msgid ""
+"Aborting. The current task will be gracefully closed as soon as possible..."
+msgstr ""
+"Aborting. The current task will be gracefully closed as soon as possible..."
+
+#: App_Main.py:5079
+msgid "The current task was gracefully closed on user request..."
+msgstr "The current task was gracefully closed on user request..."
+
+#: App_Main.py:5224
+msgid "Tools in Tools Database edited but not saved."
+msgstr "Tools in Tools Database edited but not saved."
+
+#: App_Main.py:5253
+msgid "Adding tool from DB is not allowed for this object."
+msgstr "Adding tool from DB is not allowed for this object."
+
+#: App_Main.py:5271
+msgid ""
+"One or more Tools are edited.\n"
+"Do you want to update the Tools Database?"
+msgstr ""
+"One or more Tools are edited.\n"
+"Do you want to update the Tools Database?"
+
+#: App_Main.py:5273
+msgid "Save Tools Database"
+msgstr "Save Tools Database"
+
+#: App_Main.py:5326
+msgid "No object selected to Flip on Y axis."
+msgstr "No object selected to Flip on Y axis."
+
+#: App_Main.py:5352
+msgid "Flip on Y axis done."
+msgstr "Flip on Y axis done."
+
+#: App_Main.py:5374
+msgid "No object selected to Flip on X axis."
+msgstr "No object selected to Flip on X axis."
+
+#: App_Main.py:5400
+msgid "Flip on X axis done."
+msgstr "Flip on X axis done."
+
+#: App_Main.py:5422
+msgid "No object selected to Rotate."
+msgstr "No object selected to Rotate."
+
+#: App_Main.py:5425 App_Main.py:5476 App_Main.py:5513
+msgid "Transform"
+msgstr "Transform"
+
+#: App_Main.py:5425 App_Main.py:5476 App_Main.py:5513
+msgid "Enter the Angle value:"
+msgstr "Enter the Angle value:"
+
+#: App_Main.py:5455
+msgid "Rotation done."
+msgstr "Rotation done."
+
+#: App_Main.py:5457
+msgid "Rotation movement was not executed."
+msgstr "Rotation movement was not executed."
+
+#: App_Main.py:5474
+msgid "No object selected to Skew/Shear on X axis."
+msgstr "No object selected to Skew/Shear on X axis."
+
+#: App_Main.py:5495
+msgid "Skew on X axis done."
+msgstr "Skew on X axis done."
+
+#: App_Main.py:5511
+msgid "No object selected to Skew/Shear on Y axis."
+msgstr "No object selected to Skew/Shear on Y axis."
+
+#: App_Main.py:5532
+msgid "Skew on Y axis done."
+msgstr "Skew on Y axis done."
+
+#: App_Main.py:5611
+msgid "New Grid ..."
+msgstr "New Grid ..."
+
+#: App_Main.py:5612
+msgid "Enter a Grid Value:"
+msgstr "Enter a Grid Value:"
+
+#: App_Main.py:5620 App_Main.py:5644
+msgid "Please enter a grid value with non-zero value, in Float format."
+msgstr "Please enter a grid value with non-zero value, in Float format."
+
+#: App_Main.py:5625
+msgid "New Grid added"
+msgstr "New Grid added"
+
+#: App_Main.py:5627
+msgid "Grid already exists"
+msgstr "Grid already exists"
+
+#: App_Main.py:5629
+msgid "Adding New Grid cancelled"
+msgstr "Adding New Grid cancelled"
+
+#: App_Main.py:5650
+msgid " Grid Value does not exist"
+msgstr " Grid Value does not exist"
+
+#: App_Main.py:5652
+msgid "Grid Value deleted"
+msgstr "Grid Value deleted"
+
+#: App_Main.py:5654
+msgid "Delete Grid value cancelled"
+msgstr "Delete Grid value cancelled"
+
+#: App_Main.py:5660
+msgid "Key Shortcut List"
+msgstr "Key Shortcut List"
+
+#: App_Main.py:5694
+msgid " No object selected to copy it's name"
+msgstr " No object selected to copy it's name"
+
+#: App_Main.py:5698
+msgid "Name copied on clipboard ..."
+msgstr "Name copied on clipboard ..."
+
+#: App_Main.py:6331
+msgid ""
+"There are files/objects opened in FlatCAM.\n"
+"Creating a New project will delete them.\n"
+"Do you want to Save the project?"
+msgstr ""
+"There are files/objects opened in FlatCAM.\n"
+"Creating a New project will delete them.\n"
+"Do you want to Save the project?"
+
+#: App_Main.py:6352
+msgid "New Project created"
+msgstr "New Project created"
+
+#: App_Main.py:6522 App_Main.py:6559 App_Main.py:6601 App_Main.py:6671
+#: App_Main.py:7454 App_Main.py:8667 App_Main.py:8729
+msgid ""
+"Canvas initialization started.\n"
+"Canvas initialization finished in"
+msgstr ""
+"Canvas initialization started.\n"
+"Canvas initialization finished in"
+
+#: App_Main.py:6524
+msgid "Opening Gerber file."
+msgstr "Opening Gerber file."
+
+#: App_Main.py:6561
+msgid "Opening Excellon file."
+msgstr "Opening Excellon file."
+
+#: App_Main.py:6592 App_Main.py:6596
+msgid "Open G-Code"
+msgstr "Open G-Code"
+
+#: App_Main.py:6603
+msgid "Opening G-Code file."
+msgstr "Opening G-Code file."
+
+#: App_Main.py:6662 App_Main.py:6666
+msgid "Open HPGL2"
+msgstr "Open HPGL2"
+
+#: App_Main.py:6673
+msgid "Opening HPGL2 file."
+msgstr "Opening HPGL2 file."
+
+#: App_Main.py:6696 App_Main.py:6699
+msgid "Open Configuration File"
+msgstr "Open Configuration File"
+
+#: App_Main.py:6719 App_Main.py:7066
+msgid "Please Select a Geometry object to export"
+msgstr "Please Select a Geometry object to export"
+
+#: App_Main.py:6733
+msgid "Only Geometry, Gerber and CNCJob objects can be used."
+msgstr "Only Geometry, Gerber and CNCJob objects can be used."
+
+#: App_Main.py:6775
+msgid "Data must be a 3D array with last dimension 3 or 4"
+msgstr "Data must be a 3D array with last dimension 3 or 4"
+
+#: App_Main.py:6781 App_Main.py:6785
+msgid "Export PNG Image"
+msgstr "Export PNG Image"
+
+#: App_Main.py:6818 App_Main.py:7026
+msgid "Failed. Only Gerber objects can be saved as Gerber files..."
+msgstr "Failed. Only Gerber objects can be saved as Gerber files..."
+
+#: App_Main.py:6830
+msgid "Save Gerber source file"
+msgstr "Save Gerber source file"
+
+#: App_Main.py:6859
+msgid "Failed. Only Script objects can be saved as TCL Script files..."
+msgstr "Failed. Only Script objects can be saved as TCL Script files..."
+
+#: App_Main.py:6871
+msgid "Save Script source file"
+msgstr "Save Script source file"
+
+#: App_Main.py:6900
+msgid "Failed. Only Document objects can be saved as Document files..."
+msgstr "Failed. Only Document objects can be saved as Document files..."
+
+#: App_Main.py:6912
+msgid "Save Document source file"
+msgstr "Save Document source file"
+
+#: App_Main.py:6941 App_Main.py:6982 App_Main.py:7937
+msgid "Failed. Only Excellon objects can be saved as Excellon files..."
+msgstr "Failed. Only Excellon objects can be saved as Excellon files..."
+
+#: App_Main.py:6949 App_Main.py:6953
+msgid "Save Excellon source file"
+msgstr "Save Excellon source file"
+
+#: App_Main.py:6990 App_Main.py:6994
+msgid "Export Excellon"
+msgstr "Export Excellon"
+
+#: App_Main.py:7034 App_Main.py:7038
+msgid "Export Gerber"
+msgstr "Export Gerber"
+
+#: App_Main.py:7076
+msgid "Only Geometry objects can be used."
+msgstr "Only Geometry objects can be used."
+
+#: App_Main.py:7090 App_Main.py:7094
+msgid "Export DXF"
+msgstr "Export DXF"
+
+#: App_Main.py:7119 App_Main.py:7122
+msgid "Import SVG"
+msgstr "Import SVG"
+
+#: App_Main.py:7150 App_Main.py:7154
+msgid "Import DXF"
+msgstr "Import DXF"
+
+#: App_Main.py:7204
+msgid "Viewing the source code of the selected object."
+msgstr "Viewing the source code of the selected object."
+
+#: App_Main.py:7211 App_Main.py:7215
+msgid "Select an Gerber or Excellon file to view it's source file."
+msgstr "Select an Gerber or Excellon file to view it's source file."
+
+#: App_Main.py:7229
+msgid "Source Editor"
+msgstr "Source Editor"
+
+#: App_Main.py:7269 App_Main.py:7276
+msgid "There is no selected object for which to see it's source file code."
+msgstr "There is no selected object for which to see it's source file code."
+
+#: App_Main.py:7288
+msgid "Failed to load the source code for the selected object"
+msgstr "Failed to load the source code for the selected object"
+
+#: App_Main.py:7324
+msgid "Go to Line ..."
+msgstr "Go to Line ..."
+
+#: App_Main.py:7325
+msgid "Line:"
+msgstr "Line:"
+
+#: App_Main.py:7352
+msgid "New TCL script file created in Code Editor."
+msgstr "New TCL script file created in Code Editor."
+
+#: App_Main.py:7388 App_Main.py:7390 App_Main.py:7426 App_Main.py:7428
+msgid "Open TCL script"
+msgstr "Open TCL script"
+
+#: App_Main.py:7456
+msgid "Executing ScriptObject file."
+msgstr "Executing ScriptObject file."
+
+#: App_Main.py:7464 App_Main.py:7467
+msgid "Run TCL script"
+msgstr "Run TCL script"
+
+#: App_Main.py:7490
+msgid "TCL script file opened in Code Editor and executed."
+msgstr "TCL script file opened in Code Editor and executed."
+
+#: App_Main.py:7541 App_Main.py:7547
+msgid "Save Project As ..."
+msgstr "Save Project As ..."
+
+#: App_Main.py:7582
+msgid "FlatCAM objects print"
+msgstr "FlatCAM objects print"
+
+#: App_Main.py:7595 App_Main.py:7602
+msgid "Save Object as PDF ..."
+msgstr "Save Object as PDF ..."
+
+#: App_Main.py:7611
+msgid "Printing PDF ... Please wait."
+msgstr "Printing PDF ... Please wait."
+
+#: App_Main.py:7790
+msgid "PDF file saved to"
+msgstr "PDF file saved to"
+
+#: App_Main.py:7815
+msgid "Exporting SVG"
+msgstr "Exporting SVG"
+
+#: App_Main.py:7858
+msgid "SVG file exported to"
+msgstr "SVG file exported to"
+
+#: App_Main.py:7884
+msgid ""
+"Save cancelled because source file is empty. Try to export the Gerber file."
+msgstr ""
+"Save cancelled because source file is empty. Try to export the Gerber file."
+
+#: App_Main.py:8031
+msgid "Excellon file exported to"
+msgstr "Excellon file exported to"
+
+#: App_Main.py:8040
+msgid "Exporting Excellon"
+msgstr "Exporting Excellon"
+
+#: App_Main.py:8045 App_Main.py:8052
+msgid "Could not export Excellon file."
+msgstr "Could not export Excellon file."
+
+#: App_Main.py:8167
+msgid "Gerber file exported to"
+msgstr "Gerber file exported to"
+
+#: App_Main.py:8175
+msgid "Exporting Gerber"
+msgstr "Exporting Gerber"
+
+#: App_Main.py:8180 App_Main.py:8187
+msgid "Could not export Gerber file."
+msgstr "Could not export Gerber file."
+
+#: App_Main.py:8222
+msgid "DXF file exported to"
+msgstr "DXF file exported to"
+
+#: App_Main.py:8228
+msgid "Exporting DXF"
+msgstr "Exporting DXF"
+
+#: App_Main.py:8233 App_Main.py:8240
+msgid "Could not export DXF file."
+msgstr "Could not export DXF file."
+
+#: App_Main.py:8274
+msgid "Importing SVG"
+msgstr "Importing SVG"
+
+#: App_Main.py:8282 App_Main.py:8328
+msgid "Import failed."
+msgstr "Import failed."
+
+#: App_Main.py:8320
+msgid "Importing DXF"
+msgstr "Importing DXF"
+
+#: App_Main.py:8361 App_Main.py:8556 App_Main.py:8621
+msgid "Failed to open file"
+msgstr "Failed to open file"
+
+#: App_Main.py:8364 App_Main.py:8559 App_Main.py:8624
+msgid "Failed to parse file"
+msgstr "Failed to parse file"
+
+#: App_Main.py:8376
+msgid "Object is not Gerber file or empty. Aborting object creation."
+msgstr "Object is not Gerber file or empty. Aborting object creation."
+
+#: App_Main.py:8381
+msgid "Opening Gerber"
+msgstr "Opening Gerber"
+
+#: App_Main.py:8392
+msgid "Open Gerber failed. Probable not a Gerber file."
+msgstr "Open Gerber failed. Probable not a Gerber file."
+
+#: App_Main.py:8428
+msgid "Cannot open file"
+msgstr "Cannot open file"
+
+#: App_Main.py:8449
+msgid "Opening Excellon."
+msgstr "Opening Excellon."
+
+#: App_Main.py:8459
+msgid "Open Excellon file failed. Probable not an Excellon file."
+msgstr "Open Excellon file failed. Probable not an Excellon file."
+
+#: App_Main.py:8491
+msgid "Reading GCode file"
+msgstr "Reading GCode file"
+
+#: App_Main.py:8504
+msgid "This is not GCODE"
+msgstr "This is not GCODE"
+
+#: App_Main.py:8509
+msgid "Opening G-Code."
+msgstr "Opening G-Code."
+
+#: App_Main.py:8522
+msgid ""
+"Failed to create CNCJob Object. Probable not a GCode file. Try to load it "
+"from File menu.\n"
+" Attempting to create a FlatCAM CNCJob Object from G-Code file failed during "
+"processing"
+msgstr ""
+"Failed to create CNCJob Object. Probable not a GCode file. Try to load it "
+"from File menu.\n"
+" Attempting to create a FlatCAM CNCJob Object from G-Code file failed during "
+"processing"
+
+#: App_Main.py:8578
+msgid "Object is not HPGL2 file or empty. Aborting object creation."
+msgstr "Object is not HPGL2 file or empty. Aborting object creation."
+
+#: App_Main.py:8583
+msgid "Opening HPGL2"
+msgstr "Opening HPGL2"
+
+#: App_Main.py:8590
+msgid " Open HPGL2 failed. Probable not a HPGL2 file."
+msgstr " Open HPGL2 failed. Probable not a HPGL2 file."
+
+#: App_Main.py:8616
+msgid "TCL script file opened in Code Editor."
+msgstr "TCL script file opened in Code Editor."
+
+#: App_Main.py:8636
+msgid "Opening TCL Script..."
+msgstr "Opening TCL Script..."
+
+#: App_Main.py:8647
+msgid "Failed to open TCL Script."
+msgstr "Failed to open TCL Script."
+
+#: App_Main.py:8669
+msgid "Opening FlatCAM Config file."
+msgstr "Opening FlatCAM Config file."
+
+#: App_Main.py:8697
+msgid "Failed to open config file"
+msgstr "Failed to open config file"
+
+#: App_Main.py:8726
+msgid "Loading Project ... Please Wait ..."
+msgstr "Loading Project ... Please Wait ..."
+
+#: App_Main.py:8731
+msgid "Opening FlatCAM Project file."
+msgstr "Opening FlatCAM Project file."
+
+#: App_Main.py:8746 App_Main.py:8750 App_Main.py:8767
+msgid "Failed to open project file"
+msgstr "Failed to open project file"
+
+#: App_Main.py:8804
+msgid "Loading Project ... restoring"
+msgstr "Loading Project ... restoring"
+
+#: App_Main.py:8814
+msgid "Project loaded from"
+msgstr "Project loaded from"
+
+#: App_Main.py:8840
+msgid "Redrawing all objects"
+msgstr "Redrawing all objects"
+
+#: App_Main.py:8928
+msgid "Failed to load recent item list."
+msgstr "Failed to load recent item list."
+
+#: App_Main.py:8935
+msgid "Failed to parse recent item list."
+msgstr "Failed to parse recent item list."
+
+#: App_Main.py:8945
+msgid "Failed to load recent projects item list."
+msgstr "Failed to load recent projects item list."
+
+#: App_Main.py:8952
+msgid "Failed to parse recent project item list."
+msgstr "Failed to parse recent project item list."
+
+#: App_Main.py:9013
+msgid "Clear Recent projects"
+msgstr "Clear Recent projects"
+
+#: App_Main.py:9037
+msgid "Clear Recent files"
+msgstr "Clear Recent files"
+
+#: App_Main.py:9139
+msgid "Selected Tab - Choose an Item from Project Tab"
+msgstr "Selected Tab - Choose an Item from Project Tab"
+
+#: App_Main.py:9140
+msgid "Details"
+msgstr "Details"
+
+#: App_Main.py:9142
+msgid "The normal flow when working in FlatCAM is the following:"
+msgstr "The normal flow when working in FlatCAM is the following:"
+
+#: App_Main.py:9143
+msgid ""
+"Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into "
+"FlatCAM using either the toolbars, key shortcuts or even dragging and "
+"dropping the files on the AppGUI."
+msgstr ""
+"Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into "
+"FlatCAM using either the toolbars, key shortcuts or even dragging and "
+"dropping the files on the AppGUI."
+
+#: App_Main.py:9146
+msgid ""
+"You can also load a FlatCAM project by double clicking on the project file, "
+"drag and drop of the file into the FLATCAM AppGUI or through the menu (or "
+"toolbar) actions offered within the app."
+msgstr ""
+"You can also load a FlatCAM project by double clicking on the project file, "
+"drag and drop of the file into the FLATCAM AppGUI or through the menu (or "
+"toolbar) actions offered within the app."
+
+#: App_Main.py:9149
+msgid ""
+"Once an object is available in the Project Tab, by selecting it and then "
+"focusing on SELECTED TAB (more simpler is to double click the object name in "
+"the Project Tab, SELECTED TAB will be updated with the object properties "
+"according to its kind: Gerber, Excellon, Geometry or CNCJob object."
+msgstr ""
+"Once an object is available in the Project Tab, by selecting it and then "
+"focusing on SELECTED TAB (more simpler is to double click the object name in "
+"the Project Tab, SELECTED TAB will be updated with the object properties "
+"according to its kind: Gerber, Excellon, Geometry or CNCJob object."
+
+#: App_Main.py:9153
+msgid ""
+"If the selection of the object is done on the canvas by single click "
+"instead, and the SELECTED TAB is in focus, again the object properties will "
+"be displayed into the Selected Tab. Alternatively, double clicking on the "
+"object on the canvas will bring the SELECTED TAB and populate it even if it "
+"was out of focus."
+msgstr ""
+"If the selection of the object is done on the canvas by single click "
+"instead, and the SELECTED TAB is in focus, again the object properties will "
+"be displayed into the Selected Tab. Alternatively, double clicking on the "
+"object on the canvas will bring the SELECTED TAB and populate it even if it "
+"was out of focus."
+
+#: App_Main.py:9157
+msgid ""
+"You can change the parameters in this screen and the flow direction is like "
+"this:"
+msgstr ""
+"You can change the parameters in this screen and the flow direction is like "
+"this:"
+
+#: App_Main.py:9158
+msgid ""
+"Gerber/Excellon Object --> Change Parameter --> Generate Geometry --> "
+"Geometry Object --> Add tools (change param in Selected Tab) --> Generate "
+"CNCJob --> CNCJob Object --> Verify GCode (through Edit CNC Code) and/or "
+"append/prepend to GCode (again, done in SELECTED TAB) --> Save GCode."
+msgstr ""
+"Gerber/Excellon Object --> Change Parameter --> Generate Geometry --> "
+"Geometry Object --> Add tools (change param in Selected Tab) --> Generate "
+"CNCJob --> CNCJob Object --> Verify GCode (through Edit CNC Code) and/or "
+"append/prepend to GCode (again, done in SELECTED TAB) --> Save GCode."
+
+#: App_Main.py:9162
+msgid ""
+"A list of key shortcuts is available through an menu entry in Help --> "
+"Shortcuts List or through its own key shortcut: F3."
+msgstr ""
+"A list of key shortcuts is available through an menu entry in Help --> "
+"Shortcuts List or through its own key shortcut: F3."
+
+#: App_Main.py:9226
+msgid "Failed checking for latest version. Could not connect."
+msgstr "Failed checking for latest version. Could not connect."
+
+#: App_Main.py:9233
+msgid "Could not parse information about latest version."
+msgstr "Could not parse information about latest version."
+
+#: App_Main.py:9243
+msgid "FlatCAM is up to date!"
+msgstr "FlatCAM is up to date!"
+
+#: App_Main.py:9248
+msgid "Newer Version Available"
+msgstr "Newer Version Available"
+
+#: App_Main.py:9250
+msgid "There is a newer version of FlatCAM available for download:"
+msgstr "There is a newer version of FlatCAM available for download:"
+
+#: App_Main.py:9254
+msgid "info"
+msgstr "info"
+
+#: App_Main.py:9282
+msgid ""
+"OpenGL canvas initialization failed. HW or HW configuration not supported."
+"Change the graphic engine to Legacy(2D) in Edit -> Preferences -> General "
+"tab.\n"
+"\n"
+msgstr ""
+"OpenGL canvas initialization failed. HW or HW configuration not supported."
+"Change the graphic engine to Legacy(2D) in Edit -> Preferences -> General "
+"tab.\n"
+"\n"
+
+#: App_Main.py:9360
+msgid "All plots disabled."
+msgstr "All plots disabled."
+
+#: App_Main.py:9367
+msgid "All non selected plots disabled."
+msgstr "All non selected plots disabled."
+
+#: App_Main.py:9374
+msgid "All plots enabled."
+msgstr "All plots enabled."
+
+#: App_Main.py:9380
+msgid "Selected plots enabled..."
+msgstr "Selected plots enabled..."
+
+#: App_Main.py:9388
+msgid "Selected plots disabled..."
+msgstr "Selected plots disabled..."
+
+#: App_Main.py:9421
+msgid "Enabling plots ..."
+msgstr "Enabling plots ..."
+
+#: App_Main.py:9470
+msgid "Disabling plots ..."
+msgstr "Disabling plots ..."
+
+#: App_Main.py:9493
+msgid "Working ..."
+msgstr "Working ..."
+
+#: App_Main.py:9602
+msgid "Set alpha level ..."
+msgstr "Set alpha level ..."
+
+#: App_Main.py:9656
+msgid "Saving FlatCAM Project"
+msgstr "Saving FlatCAM Project"
+
+#: App_Main.py:9677 App_Main.py:9713
+msgid "Project saved to"
+msgstr "Project saved to"
+
+#: App_Main.py:9684
+msgid "The object is used by another application."
+msgstr "The object is used by another application."
+
+#: App_Main.py:9698
+msgid "Failed to verify project file"
+msgstr "Failed to verify project file"
+
+#: App_Main.py:9698 App_Main.py:9706 App_Main.py:9716
+msgid "Retry to save it."
+msgstr "Retry to save it."
+
+#: App_Main.py:9706 App_Main.py:9716
+msgid "Failed to parse saved project file"
+msgstr "Failed to parse saved project file"
+
+#: Bookmark.py:57 Bookmark.py:84
+msgid "Title"
+msgstr "Title"
+
+#: Bookmark.py:58 Bookmark.py:88
+msgid "Web Link"
+msgstr "Web Link"
+
+#: Bookmark.py:62
+msgid ""
+"Index.\n"
+"The rows in gray color will populate the Bookmarks menu.\n"
+"The number of gray colored rows is set in Preferences."
+msgstr ""
+"Index.\n"
+"The rows in gray color will populate the Bookmarks menu.\n"
+"The number of gray colored rows is set in Preferences."
+
+#: Bookmark.py:66
+msgid ""
+"Description of the link that is set as an menu action.\n"
+"Try to keep it short because it is installed as a menu item."
+msgstr ""
+"Description of the link that is set as an menu action.\n"
+"Try to keep it short because it is installed as a menu item."
+
+#: Bookmark.py:69
+msgid "Web Link. E.g: https://your_website.org "
+msgstr "Web Link. E.g: https://your_website.org "
+
+#: Bookmark.py:78
+msgid "New Bookmark"
+msgstr "New Bookmark"
+
+#: Bookmark.py:97
+msgid "Add Entry"
+msgstr "Add Entry"
+
+#: Bookmark.py:98
+msgid "Remove Entry"
+msgstr "Remove Entry"
+
+#: Bookmark.py:99
+msgid "Export List"
+msgstr "Export List"
+
+#: Bookmark.py:100
+msgid "Import List"
+msgstr "Import List"
+
+#: Bookmark.py:190
+msgid "Title entry is empty."
+msgstr "Title entry is empty."
+
+#: Bookmark.py:199
+msgid "Web link entry is empty."
+msgstr "Web link entry is empty."
+
+#: Bookmark.py:207
+msgid "Either the Title or the Weblink already in the table."
+msgstr "Either the Title or the Weblink already in the table."
+
+#: Bookmark.py:227
+msgid "Bookmark added."
+msgstr "Bookmark added."
+
+#: Bookmark.py:244
+msgid "This bookmark can not be removed"
+msgstr "This bookmark can not be removed"
+
+#: Bookmark.py:275
+msgid "Bookmark removed."
+msgstr "Bookmark removed."
+
+#: Bookmark.py:290
+msgid "Export FlatCAM Bookmarks"
+msgstr "Export FlatCAM Bookmarks"
+
+#: Bookmark.py:319 Bookmark.py:349
+msgid "Could not load bookmarks file."
+msgstr "Could not load bookmarks file."
+
+#: Bookmark.py:329
+msgid "Failed to write bookmarks to file."
+msgstr "Failed to write bookmarks to file."
+
+#: Bookmark.py:331
+msgid "Exported bookmarks to"
+msgstr "Exported bookmarks to"
+
+#: Bookmark.py:337
+msgid "Import FlatCAM Bookmarks"
+msgstr "Import FlatCAM Bookmarks"
+
+#: Bookmark.py:356
+msgid "Imported Bookmarks from"
+msgstr "Imported Bookmarks from"
+
+#: Common.py:37
+msgid "The user requested a graceful exit of the current task."
+msgstr "The user requested a graceful exit of the current task."
+
+#: Common.py:250
+msgid "Click the end point of the area."
+msgstr "Click the end point of the area."
+
+#: Common.py:386
+msgid "Exclusion areas added. Checking overlap with the object geometry ..."
+msgstr "Exclusion areas added. Checking overlap with the object geometry ..."
+
+#: Common.py:392
+msgid "Failed. Exclusion areas intersects the object geometry ..."
+msgstr "Failed. Exclusion areas intersects the object geometry ..."
+
+#: Common.py:396
+msgid "Exclusion areas added."
+msgstr "Exclusion areas added."
+
+#: Common.py:405
+msgid "With Exclusion areas."
+msgstr "With Exclusion areas."
+
+#: Common.py:435
+msgid "Cancelled. Area exclusion drawing was interrupted."
+msgstr "Cancelled. Area exclusion drawing was interrupted."
+
+#: Common.py:527 Common.py:575
+msgid "All exclusion zones deleted."
+msgstr "All exclusion zones deleted."
+
+#: Common.py:562
+msgid "Selected exclusion zones deleted."
+msgstr "Selected exclusion zones deleted."
+
#: assets/linux/flatcam-beta.desktop:3
msgid "FlatCAM Beta"
msgstr "FlatCAM Beta"
-#: assets/linux/flatcam-beta.desktop:7
-msgid "./assets/icon.png"
-msgstr "./assets/icon.png"
-
#: assets/linux/flatcam-beta.desktop:8
msgid "G-Code from GERBERS"
msgstr "G-Code from GERBERS"
-#: camlib.py:597
+#: camlib.py:596
msgid "self.solid_geometry is neither BaseGeometry or list."
msgstr "self.solid_geometry is neither BaseGeometry or list."
-#: camlib.py:970
+#: camlib.py:971
msgid "Pass"
msgstr "Pass"
-#: camlib.py:981 flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:146
-#: flatcamObjects/FlatCAMGerber.py:497 flatcamTools/ToolCopperThieving.py:1016
-#: flatcamTools/ToolCopperThieving.py:1205
-#: flatcamTools/ToolCopperThieving.py:1217 flatcamTools/ToolNCC.py:2050
-#: flatcamTools/ToolNCC.py:2158 flatcamTools/ToolNCC.py:2172
-#: flatcamTools/ToolNCC.py:3103 flatcamTools/ToolNCC.py:3208
-#: flatcamTools/ToolNCC.py:3223 flatcamTools/ToolNCC.py:3489
-#: flatcamTools/ToolNCC.py:3590 flatcamTools/ToolNCC.py:3605
-msgid "Buffering"
-msgstr "Buffering"
-
-#: camlib.py:990
+#: camlib.py:991
msgid "Get Exteriors"
msgstr "Get Exteriors"
-#: camlib.py:993
+#: camlib.py:994
msgid "Get Interiors"
msgstr "Get Interiors"
-#: camlib.py:2172
+#: camlib.py:2174
msgid "Object was mirrored"
msgstr "Object was mirrored"
-#: camlib.py:2174
+#: camlib.py:2176
msgid "Failed to mirror. No object selected"
msgstr "Failed to mirror. No object selected"
-#: camlib.py:2239
+#: camlib.py:2241
msgid "Object was rotated"
msgstr "Object was rotated"
-#: camlib.py:2241
+#: camlib.py:2243
msgid "Failed to rotate. No object selected"
msgstr "Failed to rotate. No object selected"
-#: camlib.py:2307
+#: camlib.py:2309
msgid "Object was skewed"
msgstr "Object was skewed"
-#: camlib.py:2309
+#: camlib.py:2311
msgid "Failed to skew. No object selected"
msgstr "Failed to skew. No object selected"
-#: camlib.py:2385
+#: camlib.py:2387
msgid "Object was buffered"
msgstr "Object was buffered"
-#: camlib.py:2387
+#: camlib.py:2389
msgid "Failed to buffer. No object selected"
msgstr "Failed to buffer. No object selected"
-#: camlib.py:2594
+#: camlib.py:2597
msgid "There is no such parameter"
msgstr "There is no such parameter"
-#: camlib.py:2654 camlib.py:2887 camlib.py:3116 camlib.py:3338
+#: camlib.py:2657 camlib.py:2898 camlib.py:3127 camlib.py:3349
msgid ""
"The Cut Z parameter has positive value. It is the depth value to drill into "
"material.\n"
@@ -2708,12 +17980,12 @@ msgstr ""
"therefore the app will convert the value to negative. Check the resulting "
"CNC code (Gcode etc)."
-#: camlib.py:2662 camlib.py:2897 camlib.py:3126 camlib.py:3348 camlib.py:3631
-#: camlib.py:4017
+#: camlib.py:2665 camlib.py:2908 camlib.py:3137 camlib.py:3359 camlib.py:3650
+#: camlib.py:4045
msgid "The Cut Z parameter is zero. There will be no cut, skipping file"
msgstr "The Cut Z parameter is zero. There will be no cut, skipping file"
-#: camlib.py:2673 camlib.py:3985
+#: camlib.py:2680 camlib.py:4013
msgid ""
"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, "
"y) \n"
@@ -2723,7 +17995,7 @@ msgstr ""
"y) \n"
"but now there is only one value, not two. "
-#: camlib.py:2682 camlib.py:3582 camlib.py:3967
+#: camlib.py:2693 camlib.py:3597 camlib.py:3991
msgid ""
"The End Move X,Y field in Edit -> Preferences has to be in the format (x, y) "
"but now there is only one value, not two."
@@ -2731,31 +18003,31 @@ msgstr ""
"The End Move X,Y field in Edit -> Preferences has to be in the format (x, y) "
"but now there is only one value, not two."
-#: camlib.py:2770
+#: camlib.py:2781
msgid "Creating a list of points to drill..."
msgstr "Creating a list of points to drill..."
-#: camlib.py:2860 camlib.py:3729 camlib.py:4121
+#: camlib.py:2871 camlib.py:3748 camlib.py:4149
msgid "Starting G-Code"
msgstr "Starting G-Code"
-#: camlib.py:3001 camlib.py:3220 camlib.py:3384 camlib.py:3742 camlib.py:4132
+#: camlib.py:3012 camlib.py:3231 camlib.py:3395 camlib.py:3761 camlib.py:4160
msgid "Starting G-Code for tool with diameter"
msgstr "Starting G-Code for tool with diameter"
-#: camlib.py:3084 camlib.py:3302 camlib.py:3470
+#: camlib.py:3095 camlib.py:3313 camlib.py:3481
msgid "G91 coordinates not implemented"
msgstr "G91 coordinates not implemented"
-#: camlib.py:3090 camlib.py:3309 camlib.py:3475
+#: camlib.py:3101 camlib.py:3320 camlib.py:3486
msgid "The loaded Excellon file has no drills"
msgstr "The loaded Excellon file has no drills"
-#: camlib.py:3498
+#: camlib.py:3509
msgid "Finished G-Code generation..."
msgstr "Finished G-Code generation..."
-#: camlib.py:3600
+#: camlib.py:3619
msgid ""
"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, "
"y) \n"
@@ -2765,7 +18037,7 @@ msgstr ""
"y) \n"
"but now there is only one value, not two."
-#: camlib.py:3614 camlib.py:4000
+#: camlib.py:3633 camlib.py:4028
msgid ""
"Cut_Z parameter is None or zero. Most likely a bad combinations of other "
"parameters."
@@ -2773,7 +18045,7 @@ msgstr ""
"Cut_Z parameter is None or zero. Most likely a bad combinations of other "
"parameters."
-#: camlib.py:3623 camlib.py:4009
+#: camlib.py:3642 camlib.py:4037
msgid ""
"The Cut Z parameter has positive value. It is the depth value to cut into "
"material.\n"
@@ -2787,11 +18059,11 @@ msgstr ""
"therefore the app will convert the value to negative.Check the resulting CNC "
"code (Gcode etc)."
-#: camlib.py:3636 camlib.py:4023
+#: camlib.py:3655 camlib.py:4051
msgid "Travel Z parameter is None or zero."
msgstr "Travel Z parameter is None or zero."
-#: camlib.py:3641 camlib.py:4028
+#: camlib.py:3660 camlib.py:4056
msgid ""
"The Travel Z parameter has negative value. It is the height value to travel "
"between cuts.\n"
@@ -2805,33 +18077,33 @@ msgstr ""
"therefore the app will convert the value to positive.Check the resulting CNC "
"code (Gcode etc)."
-#: camlib.py:3649 camlib.py:4036
+#: camlib.py:3668 camlib.py:4064
msgid "The Z Travel parameter is zero. This is dangerous, skipping file"
msgstr "The Z Travel parameter is zero. This is dangerous, skipping file"
-#: camlib.py:3668 camlib.py:4059
+#: camlib.py:3687 camlib.py:4087
msgid "Indexing geometry before generating G-Code..."
msgstr "Indexing geometry before generating G-Code..."
-#: camlib.py:3812 camlib.py:4201
+#: camlib.py:3831 camlib.py:4229
msgid "Finished G-Code generation"
msgstr "Finished G-Code generation"
-#: camlib.py:3812
+#: camlib.py:3831
msgid "paths traced"
msgstr "paths traced"
-#: camlib.py:3862
+#: camlib.py:3881
msgid "Expected a Geometry, got"
msgstr "Expected a Geometry, got"
-#: camlib.py:3869
+#: camlib.py:3888
msgid ""
"Trying to generate a CNC Job from a Geometry object without solid_geometry."
msgstr ""
"Trying to generate a CNC Job from a Geometry object without solid_geometry."
-#: camlib.py:3910
+#: camlib.py:3929
msgid ""
"The Tool Offset value is too negative to use for the current_geometry.\n"
"Raise the value (in module) and try again."
@@ -2839,15440 +18111,46 @@ msgstr ""
"The Tool Offset value is too negative to use for the current_geometry.\n"
"Raise the value (in module) and try again."
-#: camlib.py:4201
+#: camlib.py:4229
msgid " paths traced."
msgstr " paths traced."
-#: camlib.py:4229
+#: camlib.py:4257
msgid "There is no tool data in the SolderPaste geometry."
msgstr "There is no tool data in the SolderPaste geometry."
-#: camlib.py:4318
+#: camlib.py:4346
msgid "Finished SolderPaste G-Code generation"
msgstr "Finished SolderPaste G-Code generation"
-#: camlib.py:4318
+#: camlib.py:4346
msgid "paths traced."
msgstr "paths traced."
-#: camlib.py:4578
+#: camlib.py:4606
msgid "Parsing GCode file. Number of lines"
msgstr "Parsing GCode file. Number of lines"
-#: camlib.py:4685
+#: camlib.py:4713
msgid "Creating Geometry from the parsed GCode file. "
msgstr "Creating Geometry from the parsed GCode file. "
-#: camlib.py:4828 camlib.py:5118 camlib.py:5229 camlib.py:5385
+#: camlib.py:4856 camlib.py:5079 camlib.py:5190 camlib.py:5346
msgid "G91 coordinates not implemented ..."
msgstr "G91 coordinates not implemented ..."
-#: camlib.py:4960
+#: camlib.py:4921
msgid "Unifying Geometry from parsed Geometry segments"
msgstr "Unifying Geometry from parsed Geometry segments"
-#: defaults.py:401
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
-#: flatcamTools/ToolCopperThieving.py:125 flatcamTools/ToolNCC.py:535
-#: flatcamTools/ToolNCC.py:1306 flatcamTools/ToolNCC.py:1634
-#: flatcamTools/ToolNCC.py:1919 flatcamTools/ToolNCC.py:1983
-#: flatcamTools/ToolNCC.py:2967 flatcamTools/ToolNCC.py:2976
-#: tclCommands/TclCommandCopperClear.py:190
-msgid "Itself"
-msgstr "Itself"
-
-#: defaults.py:428 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
-#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:1427
-#: tclCommands/TclCommandPaint.py:162
-msgid "All Polygons"
-msgstr "All Polygons"
-
-#: defaults.py:739
+#: defaults.py:756
msgid "Could not load defaults file."
msgstr "Could not load defaults file."
-#: defaults.py:752
+#: defaults.py:769
msgid "Failed to parse defaults file."
msgstr "Failed to parse defaults file."
-#: flatcamEditors/FlatCAMExcEditor.py:50 flatcamEditors/FlatCAMExcEditor.py:74
-#: flatcamEditors/FlatCAMExcEditor.py:168
-#: flatcamEditors/FlatCAMExcEditor.py:385
-#: flatcamEditors/FlatCAMExcEditor.py:589
-#: flatcamEditors/FlatCAMGrbEditor.py:243
-#: flatcamEditors/FlatCAMGrbEditor.py:250
-msgid "Click to place ..."
-msgstr "Click to place ..."
-
-#: flatcamEditors/FlatCAMExcEditor.py:58
-msgid "To add a drill first select a tool"
-msgstr "To add a drill first select a tool"
-
-#: flatcamEditors/FlatCAMExcEditor.py:122
-msgid "Done. Drill added."
-msgstr "Done. Drill added."
-
-#: flatcamEditors/FlatCAMExcEditor.py:176
-msgid "To add an Drill Array first select a tool in Tool Table"
-msgstr "To add an Drill Array first select a tool in Tool Table"
-
-#: flatcamEditors/FlatCAMExcEditor.py:192
-#: flatcamEditors/FlatCAMExcEditor.py:415
-#: flatcamEditors/FlatCAMExcEditor.py:636
-#: flatcamEditors/FlatCAMExcEditor.py:1151
-#: flatcamEditors/FlatCAMExcEditor.py:1178
-#: flatcamEditors/FlatCAMGrbEditor.py:473
-#: flatcamEditors/FlatCAMGrbEditor.py:1937
-#: flatcamEditors/FlatCAMGrbEditor.py:1967
-msgid "Click on target location ..."
-msgstr "Click on target location ..."
-
-#: flatcamEditors/FlatCAMExcEditor.py:211
-msgid "Click on the Drill Circular Array Start position"
-msgstr "Click on the Drill Circular Array Start position"
-
-#: flatcamEditors/FlatCAMExcEditor.py:233
-#: flatcamEditors/FlatCAMExcEditor.py:677
-#: flatcamEditors/FlatCAMGrbEditor.py:518
-msgid "The value is not Float. Check for comma instead of dot separator."
-msgstr "The value is not Float. Check for comma instead of dot separator."
-
-#: flatcamEditors/FlatCAMExcEditor.py:237
-msgid "The value is mistyped. Check the value"
-msgstr "The value is mistyped. Check the value"
-
-#: flatcamEditors/FlatCAMExcEditor.py:336
-msgid "Too many drills for the selected spacing angle."
-msgstr "Too many drills for the selected spacing angle."
-
-#: flatcamEditors/FlatCAMExcEditor.py:354
-msgid "Done. Drill Array added."
-msgstr "Done. Drill Array added."
-
-#: flatcamEditors/FlatCAMExcEditor.py:394
-msgid "To add a slot first select a tool"
-msgstr "To add a slot first select a tool"
-
-#: flatcamEditors/FlatCAMExcEditor.py:454
-#: flatcamEditors/FlatCAMExcEditor.py:461
-#: flatcamEditors/FlatCAMExcEditor.py:742
-#: flatcamEditors/FlatCAMExcEditor.py:749
-msgid "Value is missing or wrong format. Add it and retry."
-msgstr "Value is missing or wrong format. Add it and retry."
-
-#: flatcamEditors/FlatCAMExcEditor.py:559
-msgid "Done. Adding Slot completed."
-msgstr "Done. Adding Slot completed."
-
-#: flatcamEditors/FlatCAMExcEditor.py:597
-msgid "To add an Slot Array first select a tool in Tool Table"
-msgstr "To add an Slot Array first select a tool in Tool Table"
-
-#: flatcamEditors/FlatCAMExcEditor.py:655
-msgid "Click on the Slot Circular Array Start position"
-msgstr "Click on the Slot Circular Array Start position"
-
-#: flatcamEditors/FlatCAMExcEditor.py:680
-#: flatcamEditors/FlatCAMGrbEditor.py:521
-msgid "The value is mistyped. Check the value."
-msgstr "The value is mistyped. Check the value."
-
-#: flatcamEditors/FlatCAMExcEditor.py:859
-msgid "Too many Slots for the selected spacing angle."
-msgstr "Too many Slots for the selected spacing angle."
-
-#: flatcamEditors/FlatCAMExcEditor.py:882
-msgid "Done. Slot Array added."
-msgstr "Done. Slot Array added."
-
-#: flatcamEditors/FlatCAMExcEditor.py:904
-msgid "Click on the Drill(s) to resize ..."
-msgstr "Click on the Drill(s) to resize ..."
-
-#: flatcamEditors/FlatCAMExcEditor.py:934
-msgid "Resize drill(s) failed. Please enter a diameter for resize."
-msgstr "Resize drill(s) failed. Please enter a diameter for resize."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1112
-msgid "Done. Drill/Slot Resize completed."
-msgstr "Done. Drill/Slot Resize completed."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1115
-msgid "Cancelled. No drills/slots selected for resize ..."
-msgstr "Cancelled. No drills/slots selected for resize ..."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1153
-#: flatcamEditors/FlatCAMGrbEditor.py:1939
-msgid "Click on reference location ..."
-msgstr "Click on reference location ..."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1210
-msgid "Done. Drill(s) Move completed."
-msgstr "Done. Drill(s) Move completed."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1318
-msgid "Done. Drill(s) copied."
-msgstr "Done. Drill(s) copied."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1557
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:26
-msgid "Excellon Editor"
-msgstr "Excellon Editor"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1564
-#: flatcamEditors/FlatCAMGrbEditor.py:2462
-msgid "Name:"
-msgstr "Name:"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1570 flatcamGUI/ObjectUI.py:761
-#: flatcamGUI/ObjectUI.py:1465 flatcamTools/ToolNCC.py:120
-#: flatcamTools/ToolPaint.py:115 flatcamTools/ToolSolderPaste.py:74
-msgid "Tools Table"
-msgstr "Tools Table"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1572 flatcamGUI/ObjectUI.py:763
-msgid ""
-"Tools in this Excellon object\n"
-"when are used for drilling."
-msgstr ""
-"Tools in this Excellon object\n"
-"when are used for drilling."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1584
-#: flatcamEditors/FlatCAMExcEditor.py:3066 flatcamGUI/ObjectUI.py:781
-#: flatcamObjects/FlatCAMExcellon.py:1098
-#: flatcamObjects/FlatCAMExcellon.py:1188
-#: flatcamObjects/FlatCAMExcellon.py:1373 flatcamTools/ToolNCC.py:132
-#: flatcamTools/ToolPaint.py:128 flatcamTools/ToolPcbWizard.py:76
-#: flatcamTools/ToolProperties.py:416 flatcamTools/ToolProperties.py:476
-#: flatcamTools/ToolSolderPaste.py:85 tclCommands/TclCommandDrillcncjob.py:193
-msgid "Diameter"
-msgstr "Diameter"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1592
-msgid "Add/Delete Tool"
-msgstr "Add/Delete Tool"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1594
-msgid ""
-"Add/Delete a tool to the tool list\n"
-"for this Excellon object."
-msgstr ""
-"Add/Delete a tool to the tool list\n"
-"for this Excellon object."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1606 flatcamGUI/ObjectUI.py:1585
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:57
-msgid "Diameter for the new tool"
-msgstr "Diameter for the new tool"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1616
-msgid "Add Tool"
-msgstr "Add Tool"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1618
-msgid ""
-"Add a new tool to the tool list\n"
-"with the diameter specified above."
-msgstr ""
-"Add a new tool to the tool list\n"
-"with the diameter specified above."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1630
-msgid "Delete Tool"
-msgstr "Delete Tool"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1632
-msgid ""
-"Delete a tool in the tool list\n"
-"by selecting a row in the tool table."
-msgstr ""
-"Delete a tool in the tool list\n"
-"by selecting a row in the tool table."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1650 flatcamGUI/FlatCAMGUI.py:2019
-msgid "Resize Drill(s)"
-msgstr "Resize Drill(s)"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1652
-msgid "Resize a drill or a selection of drills."
-msgstr "Resize a drill or a selection of drills."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1659
-msgid "Resize Dia"
-msgstr "Resize Dia"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1661
-msgid "Diameter to resize to."
-msgstr "Diameter to resize to."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1672
-msgid "Resize"
-msgstr "Resize"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1674
-msgid "Resize drill(s)"
-msgstr "Resize drill(s)"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1699 flatcamGUI/FlatCAMGUI.py:2018
-#: flatcamGUI/FlatCAMGUI.py:2270
-msgid "Add Drill Array"
-msgstr "Add Drill Array"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1701
-msgid "Add an array of drills (linear or circular array)"
-msgstr "Add an array of drills (linear or circular array)"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1707
-msgid ""
-"Select the type of drills array to create.\n"
-"It can be Linear X(Y) or Circular"
-msgstr ""
-"Select the type of drills array to create.\n"
-"It can be Linear X(Y) or Circular"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1710
-#: flatcamEditors/FlatCAMExcEditor.py:1924
-#: flatcamEditors/FlatCAMGrbEditor.py:2775
-msgid "Linear"
-msgstr "Linear"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1711
-#: flatcamEditors/FlatCAMExcEditor.py:1925
-#: flatcamEditors/FlatCAMGrbEditor.py:2776 flatcamGUI/ObjectUI.py:316
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:52
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:149
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:107
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:52
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:151
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:70
-#: flatcamTools/ToolExtractDrills.py:78 flatcamTools/ToolExtractDrills.py:201
-#: flatcamTools/ToolFiducials.py:220 flatcamTools/ToolNCC.py:221
-#: flatcamTools/ToolPaint.py:204 flatcamTools/ToolPunchGerber.py:89
-#: flatcamTools/ToolPunchGerber.py:229
-msgid "Circular"
-msgstr "Circular"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1719
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:68
-msgid "Nr of drills"
-msgstr "Nr of drills"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1720
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:70
-msgid "Specify how many drills to be in the array."
-msgstr "Specify how many drills to be in the array."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1738
-#: flatcamEditors/FlatCAMExcEditor.py:1788
-#: flatcamEditors/FlatCAMExcEditor.py:1860
-#: flatcamEditors/FlatCAMExcEditor.py:1953
-#: flatcamEditors/FlatCAMExcEditor.py:2004
-#: flatcamEditors/FlatCAMGrbEditor.py:1573
-#: flatcamEditors/FlatCAMGrbEditor.py:2804
-#: flatcamEditors/FlatCAMGrbEditor.py:2853
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:178
-msgid "Direction"
-msgstr "Direction"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1740
-#: flatcamEditors/FlatCAMExcEditor.py:1955
-#: flatcamEditors/FlatCAMGrbEditor.py:2806
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:86
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:234
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:122
-msgid ""
-"Direction on which the linear array is oriented:\n"
-"- 'X' - horizontal axis \n"
-"- 'Y' - vertical axis or \n"
-"- 'Angle' - a custom angle for the array inclination"
-msgstr ""
-"Direction on which the linear array is oriented:\n"
-"- 'X' - horizontal axis \n"
-"- 'Y' - vertical axis or \n"
-"- 'Angle' - a custom angle for the array inclination"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1747
-#: flatcamEditors/FlatCAMExcEditor.py:1869
-#: flatcamEditors/FlatCAMExcEditor.py:1962
-#: flatcamEditors/FlatCAMGrbEditor.py:2813
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:92
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:187
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:240
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:128
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:208
-#: flatcamTools/ToolFilm.py:256
-msgid "X"
-msgstr "X"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1748
-#: flatcamEditors/FlatCAMExcEditor.py:1870
-#: flatcamEditors/FlatCAMExcEditor.py:1963
-#: flatcamEditors/FlatCAMGrbEditor.py:2814
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:93
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:188
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:241
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:129
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:209
-#: flatcamTools/ToolFilm.py:257
-msgid "Y"
-msgstr "Y"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1749
-#: flatcamEditors/FlatCAMExcEditor.py:1766
-#: flatcamEditors/FlatCAMExcEditor.py:1800
-#: flatcamEditors/FlatCAMExcEditor.py:1871
-#: flatcamEditors/FlatCAMExcEditor.py:1875
-#: flatcamEditors/FlatCAMExcEditor.py:1964
-#: flatcamEditors/FlatCAMExcEditor.py:1982
-#: flatcamEditors/FlatCAMExcEditor.py:2016
-#: flatcamEditors/FlatCAMGrbEditor.py:2815
-#: flatcamEditors/FlatCAMGrbEditor.py:2832
-#: flatcamEditors/FlatCAMGrbEditor.py:2868
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:94
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:113
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:189
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:194
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:242
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:263
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:130
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:148
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:53
-#: flatcamTools/ToolDistance.py:120 flatcamTools/ToolDistanceMin.py:69
-#: flatcamTools/ToolTransform.py:60
-msgid "Angle"
-msgstr "Angle"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1753
-#: flatcamEditors/FlatCAMExcEditor.py:1968
-#: flatcamEditors/FlatCAMGrbEditor.py:2819
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:100
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:248
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:136
-msgid "Pitch"
-msgstr "Pitch"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1755
-#: flatcamEditors/FlatCAMExcEditor.py:1970
-#: flatcamEditors/FlatCAMGrbEditor.py:2821
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:102
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:250
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:138
-msgid "Pitch = Distance between elements of the array."
-msgstr "Pitch = Distance between elements of the array."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1768
-#: flatcamEditors/FlatCAMExcEditor.py:1984
-msgid ""
-"Angle at which the linear array is placed.\n"
-"The precision is of max 2 decimals.\n"
-"Min value is: -360 degrees.\n"
-"Max value is: 360.00 degrees."
-msgstr ""
-"Angle at which the linear array is placed.\n"
-"The precision is of max 2 decimals.\n"
-"Min value is: -360 degrees.\n"
-"Max value is: 360.00 degrees."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1789
-#: flatcamEditors/FlatCAMExcEditor.py:2005
-#: flatcamEditors/FlatCAMGrbEditor.py:2855
-msgid ""
-"Direction for circular array.Can be CW = clockwise or CCW = counter "
-"clockwise."
-msgstr ""
-"Direction for circular array.Can be CW = clockwise or CCW = counter "
-"clockwise."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1796
-#: flatcamEditors/FlatCAMExcEditor.py:2012
-#: flatcamEditors/FlatCAMGrbEditor.py:2863
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:129
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:136
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:286
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:142
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:170
-msgid "CW"
-msgstr "CW"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1797
-#: flatcamEditors/FlatCAMExcEditor.py:2013
-#: flatcamEditors/FlatCAMGrbEditor.py:2864
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:130
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:137
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:287
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:143
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:171
-msgid "CCW"
-msgstr "CCW"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1801
-#: flatcamEditors/FlatCAMExcEditor.py:2017
-#: flatcamEditors/FlatCAMGrbEditor.py:2870
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:115
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:145
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:265
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:295
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:150
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:179
-msgid "Angle at which each element in circular array is placed."
-msgstr "Angle at which each element in circular array is placed."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1835
-msgid "Slot Parameters"
-msgstr "Slot Parameters"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1837
-msgid ""
-"Parameters for adding a slot (hole with oval shape)\n"
-"either single or as an part of an array."
-msgstr ""
-"Parameters for adding a slot (hole with oval shape)\n"
-"either single or as an part of an array."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1846
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162
-#: flatcamTools/ToolProperties.py:559
-msgid "Length"
-msgstr "Length"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1848
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:164
-msgid "Length = The length of the slot."
-msgstr "Length = The length of the slot."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1862
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:180
-msgid ""
-"Direction on which the slot is oriented:\n"
-"- 'X' - horizontal axis \n"
-"- 'Y' - vertical axis or \n"
-"- 'Angle' - a custom angle for the slot inclination"
-msgstr ""
-"Direction on which the slot is oriented:\n"
-"- 'X' - horizontal axis \n"
-"- 'Y' - vertical axis or \n"
-"- 'Angle' - a custom angle for the slot inclination"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1877
-msgid ""
-"Angle at which the slot is placed.\n"
-"The precision is of max 2 decimals.\n"
-"Min value is: -360 degrees.\n"
-"Max value is: 360.00 degrees."
-msgstr ""
-"Angle at which the slot is placed.\n"
-"The precision is of max 2 decimals.\n"
-"Min value is: -360 degrees.\n"
-"Max value is: 360.00 degrees."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1910
-msgid "Slot Array Parameters"
-msgstr "Slot Array Parameters"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1912
-msgid "Parameters for the array of slots (linear or circular array)"
-msgstr "Parameters for the array of slots (linear or circular array)"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1921
-msgid ""
-"Select the type of slot array to create.\n"
-"It can be Linear X(Y) or Circular"
-msgstr ""
-"Select the type of slot array to create.\n"
-"It can be Linear X(Y) or Circular"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1933
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:219
-msgid "Nr of slots"
-msgstr "Nr of slots"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1934
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:221
-msgid "Specify how many slots to be in the array."
-msgstr "Specify how many slots to be in the array."
-
-#: flatcamEditors/FlatCAMExcEditor.py:2452
-#: flatcamObjects/FlatCAMExcellon.py:410
-msgid "Total Drills"
-msgstr "Total Drills"
-
-#: flatcamEditors/FlatCAMExcEditor.py:2484
-#: flatcamObjects/FlatCAMExcellon.py:441
-msgid "Total Slots"
-msgstr "Total Slots"
-
-#: flatcamEditors/FlatCAMExcEditor.py:2559
-#: flatcamEditors/FlatCAMGeoEditor.py:1076
-#: flatcamEditors/FlatCAMGeoEditor.py:1117
-#: flatcamEditors/FlatCAMGeoEditor.py:1145
-#: flatcamEditors/FlatCAMGeoEditor.py:1173
-#: flatcamEditors/FlatCAMGeoEditor.py:1217
-#: flatcamEditors/FlatCAMGeoEditor.py:1252
-#: flatcamEditors/FlatCAMGeoEditor.py:1280
-#: flatcamObjects/FlatCAMGeometry.py:599 flatcamObjects/FlatCAMGeometry.py:1033
-#: flatcamObjects/FlatCAMGeometry.py:1780
-#: flatcamObjects/FlatCAMGeometry.py:2424 flatcamTools/ToolNCC.py:1498
-#: flatcamTools/ToolPaint.py:1249 flatcamTools/ToolPaint.py:1420
-#: flatcamTools/ToolSolderPaste.py:883 flatcamTools/ToolSolderPaste.py:956
-msgid "Wrong value format entered, use a number."
-msgstr "Wrong value format entered, use a number."
-
-#: flatcamEditors/FlatCAMExcEditor.py:2570
-msgid ""
-"Tool already in the original or actual tool list.\n"
-"Save and reedit Excellon if you need to add this tool. "
-msgstr ""
-"Tool already in the original or actual tool list.\n"
-"Save and reedit Excellon if you need to add this tool. "
-
-#: flatcamEditors/FlatCAMExcEditor.py:2579 flatcamGUI/FlatCAMGUI.py:4071
-msgid "Added new tool with dia"
-msgstr "Added new tool with dia"
-
-#: flatcamEditors/FlatCAMExcEditor.py:2612
-msgid "Select a tool in Tool Table"
-msgstr "Select a tool in Tool Table"
-
-#: flatcamEditors/FlatCAMExcEditor.py:2642
-msgid "Deleted tool with diameter"
-msgstr "Deleted tool with diameter"
-
-#: flatcamEditors/FlatCAMExcEditor.py:2790
-msgid "Done. Tool edit completed."
-msgstr "Done. Tool edit completed."
-
-#: flatcamEditors/FlatCAMExcEditor.py:3352
-msgid "There are no Tools definitions in the file. Aborting Excellon creation."
-msgstr ""
-"There are no Tools definitions in the file. Aborting Excellon creation."
-
-#: flatcamEditors/FlatCAMExcEditor.py:3356
-msgid "An internal error has ocurred. See Shell.\n"
-msgstr "An internal error has ocurred. See Shell.\n"
-
-#: flatcamEditors/FlatCAMExcEditor.py:3361
-msgid "Creating Excellon."
-msgstr "Creating Excellon."
-
-#: flatcamEditors/FlatCAMExcEditor.py:3373
-msgid "Excellon editing finished."
-msgstr "Excellon editing finished."
-
-#: flatcamEditors/FlatCAMExcEditor.py:3390
-msgid "Cancelled. There is no Tool/Drill selected"
-msgstr "Cancelled. There is no Tool/Drill selected"
-
-#: flatcamEditors/FlatCAMExcEditor.py:4003
-msgid "Done. Drill(s) deleted."
-msgstr "Done. Drill(s) deleted."
-
-#: flatcamEditors/FlatCAMExcEditor.py:4076
-#: flatcamEditors/FlatCAMExcEditor.py:4086
-#: flatcamEditors/FlatCAMGrbEditor.py:5063
-msgid "Click on the circular array Center position"
-msgstr "Click on the circular array Center position"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:85
-msgid "Buffer distance:"
-msgstr "Buffer distance:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:86
-msgid "Buffer corner:"
-msgstr "Buffer corner:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:88
-msgid ""
-"There are 3 types of corners:\n"
-" - 'Round': the corner is rounded for exterior buffer.\n"
-" - 'Square': the corner is met in a sharp angle for exterior buffer.\n"
-" - 'Beveled': the corner is a line that directly connects the features "
-"meeting in the corner"
-msgstr ""
-"There are 3 types of corners:\n"
-" - 'Round': the corner is rounded for exterior buffer.\n"
-" - 'Square': the corner is met in a sharp angle for exterior buffer.\n"
-" - 'Beveled': the corner is a line that directly connects the features "
-"meeting in the corner"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:94
-#: flatcamEditors/FlatCAMGrbEditor.py:2631
-msgid "Round"
-msgstr "Round"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:95
-#: flatcamEditors/FlatCAMGrbEditor.py:2632 flatcamGUI/ObjectUI.py:2073
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:217
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:68
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:175
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:68
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:177
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:143
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:291
-#: flatcamTools/ToolExtractDrills.py:94 flatcamTools/ToolExtractDrills.py:227
-#: flatcamTools/ToolNCC.py:583 flatcamTools/ToolPaint.py:527
-#: flatcamTools/ToolPunchGerber.py:105 flatcamTools/ToolPunchGerber.py:255
-#: flatcamTools/ToolQRCode.py:198
-msgid "Square"
-msgstr "Square"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:96
-#: flatcamEditors/FlatCAMGrbEditor.py:2633
-msgid "Beveled"
-msgstr "Beveled"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:103
-msgid "Buffer Interior"
-msgstr "Buffer Interior"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:105
-msgid "Buffer Exterior"
-msgstr "Buffer Exterior"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:111
-msgid "Full Buffer"
-msgstr "Full Buffer"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:132
-#: flatcamEditors/FlatCAMGeoEditor.py:3017 flatcamGUI/FlatCAMGUI.py:1928
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:190
-msgid "Buffer Tool"
-msgstr "Buffer Tool"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:144
-#: flatcamEditors/FlatCAMGeoEditor.py:161
-#: flatcamEditors/FlatCAMGeoEditor.py:178
-#: flatcamEditors/FlatCAMGeoEditor.py:3036
-#: flatcamEditors/FlatCAMGeoEditor.py:3064
-#: flatcamEditors/FlatCAMGeoEditor.py:3092
-#: flatcamEditors/FlatCAMGrbEditor.py:5116
-msgid "Buffer distance value is missing or wrong format. Add it and retry."
-msgstr "Buffer distance value is missing or wrong format. Add it and retry."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:242
-msgid "Font"
-msgstr "Font"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:323 flatcamGUI/FlatCAMGUI.py:2208
-msgid "Text"
-msgstr "Text"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:349
-msgid "Text Tool"
-msgstr "Text Tool"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:405 flatcamGUI/FlatCAMGUI.py:511
-#: flatcamGUI/FlatCAMGUI.py:1158 flatcamGUI/ObjectUI.py:818
-#: flatcamGUI/ObjectUI.py:1662 flatcamObjects/FlatCAMExcellon.py:742
-#: flatcamObjects/FlatCAMExcellon.py:1084 flatcamObjects/FlatCAMGeometry.py:759
-#: flatcamTools/ToolNCC.py:331 flatcamTools/ToolNCC.py:797
-#: flatcamTools/ToolPaint.py:314 flatcamTools/ToolPaint.py:767
-msgid "Tool"
-msgstr "Tool"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:439 flatcamGUI/ObjectUI.py:364
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:43
-msgid "Tool dia"
-msgstr "Tool dia"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:441
-msgid "Diameter of the tool to be used in the operation."
-msgstr "Diameter of the tool to be used in the operation."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:487
-msgid ""
-"Algorithm to paint the polygons:\n"
-"- Standard: Fixed step inwards.\n"
-"- Seed-based: Outwards from seed.\n"
-"- Line-based: Parallel lines."
-msgstr ""
-"Algorithm to paint the polygons:\n"
-"- Standard: Fixed step inwards.\n"
-"- Seed-based: Outwards from seed.\n"
-"- Line-based: Parallel lines."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:506
-msgid "Connect:"
-msgstr "Connect:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:516
-msgid "Contour:"
-msgstr "Contour:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:529 flatcamGUI/FlatCAMGUI.py:2212
-msgid "Paint"
-msgstr "Paint"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:547 flatcamGUI/FlatCAMGUI.py:924
-#: flatcamGUI/FlatCAMGUI.py:2628 flatcamGUI/ObjectUI.py:2139
-#: flatcamTools/ToolPaint.py:43 flatcamTools/ToolPaint.py:738
-msgid "Paint Tool"
-msgstr "Paint Tool"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:583
-#: flatcamEditors/FlatCAMGeoEditor.py:1055
-#: flatcamEditors/FlatCAMGeoEditor.py:3024
-#: flatcamEditors/FlatCAMGeoEditor.py:3052
-#: flatcamEditors/FlatCAMGeoEditor.py:3080
-#: flatcamEditors/FlatCAMGeoEditor.py:4502
-#: flatcamEditors/FlatCAMGrbEditor.py:5767
-msgid "Cancelled. No shape selected."
-msgstr "Cancelled. No shape selected."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:596
-#: flatcamEditors/FlatCAMGeoEditor.py:3042
-#: flatcamEditors/FlatCAMGeoEditor.py:3070
-#: flatcamEditors/FlatCAMGeoEditor.py:3098
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:59
-#: flatcamTools/ToolProperties.py:117 flatcamTools/ToolProperties.py:162
-msgid "Tools"
-msgstr "Tools"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:607
-#: flatcamEditors/FlatCAMGeoEditor.py:991
-#: flatcamEditors/FlatCAMGrbEditor.py:5306
-#: flatcamEditors/FlatCAMGrbEditor.py:5703 flatcamGUI/FlatCAMGUI.py:945
-#: flatcamGUI/FlatCAMGUI.py:2649 flatcamTools/ToolTransform.py:460
-msgid "Transform Tool"
-msgstr "Transform Tool"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:608
-#: flatcamEditors/FlatCAMGeoEditor.py:673
-#: flatcamEditors/FlatCAMGrbEditor.py:5307
-#: flatcamEditors/FlatCAMGrbEditor.py:5372
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:45
-#: flatcamTools/ToolTransform.py:24 flatcamTools/ToolTransform.py:466
-msgid "Rotate"
-msgstr "Rotate"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:609
-#: flatcamEditors/FlatCAMGrbEditor.py:5308 flatcamTools/ToolTransform.py:25
-msgid "Skew/Shear"
-msgstr "Skew/Shear"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:610
-#: flatcamEditors/FlatCAMGrbEditor.py:2680
-#: flatcamEditors/FlatCAMGrbEditor.py:5309 flatcamGUI/FlatCAMGUI.py:1063
-#: flatcamGUI/FlatCAMGUI.py:2140 flatcamGUI/FlatCAMGUI.py:2255
-#: flatcamGUI/FlatCAMGUI.py:2767 flatcamGUI/ObjectUI.py:125
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:95
-#: flatcamTools/ToolTransform.py:26
-msgid "Scale"
-msgstr "Scale"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:611
-#: flatcamEditors/FlatCAMGrbEditor.py:5310 flatcamTools/ToolTransform.py:27
-msgid "Mirror (Flip)"
-msgstr "Mirror (Flip)"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:625
-#: flatcamEditors/FlatCAMGrbEditor.py:5324 flatcamGUI/FlatCAMGUI.py:856
-#: flatcamGUI/FlatCAMGUI.py:2564
-msgid "Editor"
-msgstr "Editor"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:657
-#: flatcamEditors/FlatCAMGrbEditor.py:5356
-msgid "Angle:"
-msgstr "Angle:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:659
-#: flatcamEditors/FlatCAMGrbEditor.py:5358
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:55
-#: flatcamTools/ToolTransform.py:62
-msgid ""
-"Angle for Rotation action, in degrees.\n"
-"Float number between -360 and 359.\n"
-"Positive numbers for CW motion.\n"
-"Negative numbers for CCW motion."
-msgstr ""
-"Angle for Rotation action, in degrees.\n"
-"Float number between -360 and 359.\n"
-"Positive numbers for CW motion.\n"
-"Negative numbers for CCW motion."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:675
-#: flatcamEditors/FlatCAMGrbEditor.py:5374
-msgid ""
-"Rotate the selected shape(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected shapes."
-msgstr ""
-"Rotate the selected shape(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected shapes."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:698
-#: flatcamEditors/FlatCAMGrbEditor.py:5397
-msgid "Angle X:"
-msgstr "Angle X:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:700
-#: flatcamEditors/FlatCAMGeoEditor.py:720
-#: flatcamEditors/FlatCAMGrbEditor.py:5399
-#: flatcamEditors/FlatCAMGrbEditor.py:5419
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:74
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:88
-#: flatcamTools/ToolCalibration.py:505 flatcamTools/ToolCalibration.py:518
-msgid ""
-"Angle for Skew action, in degrees.\n"
-"Float number between -360 and 359."
-msgstr ""
-"Angle for Skew action, in degrees.\n"
-"Float number between -360 and 359."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:711
-#: flatcamEditors/FlatCAMGrbEditor.py:5410 flatcamTools/ToolTransform.py:467
-msgid "Skew X"
-msgstr "Skew X"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:713
-#: flatcamEditors/FlatCAMGeoEditor.py:733
-#: flatcamEditors/FlatCAMGrbEditor.py:5412
-#: flatcamEditors/FlatCAMGrbEditor.py:5432
-msgid ""
-"Skew/shear the selected shape(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected shapes."
-msgstr ""
-"Skew/shear the selected shape(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected shapes."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:718
-#: flatcamEditors/FlatCAMGrbEditor.py:5417
-msgid "Angle Y:"
-msgstr "Angle Y:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:731
-#: flatcamEditors/FlatCAMGrbEditor.py:5430 flatcamTools/ToolTransform.py:468
-msgid "Skew Y"
-msgstr "Skew Y"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:759
-#: flatcamEditors/FlatCAMGrbEditor.py:5458
-msgid "Factor X:"
-msgstr "Factor X:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:761
-#: flatcamEditors/FlatCAMGrbEditor.py:5460 flatcamTools/ToolCalibration.py:469
-msgid "Factor for Scale action over X axis."
-msgstr "Factor for Scale action over X axis."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:771
-#: flatcamEditors/FlatCAMGrbEditor.py:5470 flatcamTools/ToolTransform.py:469
-msgid "Scale X"
-msgstr "Scale X"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:773
-#: flatcamEditors/FlatCAMGeoEditor.py:792
-#: flatcamEditors/FlatCAMGrbEditor.py:5472
-#: flatcamEditors/FlatCAMGrbEditor.py:5491
-msgid ""
-"Scale the selected shape(s).\n"
-"The point of reference depends on \n"
-"the Scale reference checkbox state."
-msgstr ""
-"Scale the selected shape(s).\n"
-"The point of reference depends on \n"
-"the Scale reference checkbox state."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:778
-#: flatcamEditors/FlatCAMGrbEditor.py:5477
-msgid "Factor Y:"
-msgstr "Factor Y:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:780
-#: flatcamEditors/FlatCAMGrbEditor.py:5479 flatcamTools/ToolCalibration.py:481
-msgid "Factor for Scale action over Y axis."
-msgstr "Factor for Scale action over Y axis."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:790
-#: flatcamEditors/FlatCAMGrbEditor.py:5489 flatcamTools/ToolTransform.py:470
-msgid "Scale Y"
-msgstr "Scale Y"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:799
-#: flatcamEditors/FlatCAMGrbEditor.py:5498
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:124
-#: flatcamTools/ToolTransform.py:189
-msgid "Link"
-msgstr "Link"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:801
-#: flatcamEditors/FlatCAMGrbEditor.py:5500
-msgid ""
-"Scale the selected shape(s)\n"
-"using the Scale Factor X for both axis."
-msgstr ""
-"Scale the selected shape(s)\n"
-"using the Scale Factor X for both axis."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:807
-#: flatcamEditors/FlatCAMGrbEditor.py:5506
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:132
-#: flatcamTools/ToolTransform.py:196
-msgid "Scale Reference"
-msgstr "Scale Reference"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:809
-#: flatcamEditors/FlatCAMGrbEditor.py:5508
-msgid ""
-"Scale the selected shape(s)\n"
-"using the origin reference when checked,\n"
-"and the center of the biggest bounding box\n"
-"of the selected shapes when unchecked."
-msgstr ""
-"Scale the selected shape(s)\n"
-"using the origin reference when checked,\n"
-"and the center of the biggest bounding box\n"
-"of the selected shapes when unchecked."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:837
-#: flatcamEditors/FlatCAMGrbEditor.py:5537
-msgid "Value X:"
-msgstr "Value X:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:839
-#: flatcamEditors/FlatCAMGrbEditor.py:5539
-msgid "Value for Offset action on X axis."
-msgstr "Value for Offset action on X axis."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:849
-#: flatcamEditors/FlatCAMGrbEditor.py:5549 flatcamTools/ToolTransform.py:473
-msgid "Offset X"
-msgstr "Offset X"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:851
-#: flatcamEditors/FlatCAMGeoEditor.py:871
-#: flatcamEditors/FlatCAMGrbEditor.py:5551
-#: flatcamEditors/FlatCAMGrbEditor.py:5571
-msgid ""
-"Offset the selected shape(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected shapes.\n"
-msgstr ""
-"Offset the selected shape(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected shapes.\n"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:857
-#: flatcamEditors/FlatCAMGrbEditor.py:5557
-msgid "Value Y:"
-msgstr "Value Y:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:859
-#: flatcamEditors/FlatCAMGrbEditor.py:5559
-msgid "Value for Offset action on Y axis."
-msgstr "Value for Offset action on Y axis."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:869
-#: flatcamEditors/FlatCAMGrbEditor.py:5569 flatcamTools/ToolTransform.py:474
-msgid "Offset Y"
-msgstr "Offset Y"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:900
-#: flatcamEditors/FlatCAMGrbEditor.py:5600 flatcamTools/ToolTransform.py:475
-msgid "Flip on X"
-msgstr "Flip on X"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:902
-#: flatcamEditors/FlatCAMGeoEditor.py:909
-#: flatcamEditors/FlatCAMGrbEditor.py:5602
-#: flatcamEditors/FlatCAMGrbEditor.py:5609
-msgid ""
-"Flip the selected shape(s) over the X axis.\n"
-"Does not create a new shape."
-msgstr ""
-"Flip the selected shape(s) over the X axis.\n"
-"Does not create a new shape."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:907
-#: flatcamEditors/FlatCAMGrbEditor.py:5607 flatcamTools/ToolTransform.py:476
-msgid "Flip on Y"
-msgstr "Flip on Y"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:915
-#: flatcamEditors/FlatCAMGrbEditor.py:5615
-msgid "Ref Pt"
-msgstr "Ref Pt"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:917
-#: flatcamEditors/FlatCAMGrbEditor.py:5617
-msgid ""
-"Flip the selected shape(s)\n"
-"around the point in Point Entry Field.\n"
-"\n"
-"The point coordinates can be captured by\n"
-"left click on canvas together with pressing\n"
-"SHIFT key. \n"
-"Then click Add button to insert coordinates.\n"
-"Or enter the coords in format (x, y) in the\n"
-"Point Entry field and click Flip on X(Y)"
-msgstr ""
-"Flip the selected shape(s)\n"
-"around the point in Point Entry Field.\n"
-"\n"
-"The point coordinates can be captured by\n"
-"left click on canvas together with pressing\n"
-"SHIFT key. \n"
-"Then click Add button to insert coordinates.\n"
-"Or enter the coords in format (x, y) in the\n"
-"Point Entry field and click Flip on X(Y)"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:929
-#: flatcamEditors/FlatCAMGrbEditor.py:5629
-msgid "Point:"
-msgstr "Point:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:931
-#: flatcamEditors/FlatCAMGrbEditor.py:5631 flatcamTools/ToolTransform.py:299
-msgid ""
-"Coordinates in format (x, y) used as reference for mirroring.\n"
-"The 'x' in (x, y) will be used when using Flip on X and\n"
-"the 'y' in (x, y) will be used when using Flip on Y."
-msgstr ""
-"Coordinates in format (x, y) used as reference for mirroring.\n"
-"The 'x' in (x, y) will be used when using Flip on X and\n"
-"the 'y' in (x, y) will be used when using Flip on Y."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:941
-#: flatcamEditors/FlatCAMGrbEditor.py:5643 flatcamTools/ToolTransform.py:309
-msgid ""
-"The point coordinates can be captured by\n"
-"left click on canvas together with pressing\n"
-"SHIFT key. Then click Add button to insert."
-msgstr ""
-"The point coordinates can be captured by\n"
-"left click on canvas together with pressing\n"
-"SHIFT key. Then click Add button to insert."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1304
-#: flatcamEditors/FlatCAMGrbEditor.py:5951
-msgid "No shape selected. Please Select a shape to rotate!"
-msgstr "No shape selected. Please Select a shape to rotate!"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1307
-#: flatcamEditors/FlatCAMGrbEditor.py:5954 flatcamTools/ToolTransform.py:679
-msgid "Appying Rotate"
-msgstr "Appying Rotate"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1333
-#: flatcamEditors/FlatCAMGrbEditor.py:5986
-msgid "Done. Rotate completed."
-msgstr "Done. Rotate completed."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1335
-msgid "Rotation action was not executed"
-msgstr "Rotation action was not executed"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1354
-#: flatcamEditors/FlatCAMGrbEditor.py:6005
-msgid "No shape selected. Please Select a shape to flip!"
-msgstr "No shape selected. Please Select a shape to flip!"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1357
-#: flatcamEditors/FlatCAMGrbEditor.py:6008 flatcamTools/ToolTransform.py:728
-msgid "Applying Flip"
-msgstr "Applying Flip"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1386
-#: flatcamEditors/FlatCAMGrbEditor.py:6046 flatcamTools/ToolTransform.py:769
-msgid "Flip on the Y axis done"
-msgstr "Flip on the Y axis done"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1390
-#: flatcamEditors/FlatCAMGrbEditor.py:6055 flatcamTools/ToolTransform.py:778
-msgid "Flip on the X axis done"
-msgstr "Flip on the X axis done"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1398
-msgid "Flip action was not executed"
-msgstr "Flip action was not executed"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1416
-#: flatcamEditors/FlatCAMGrbEditor.py:6075
-msgid "No shape selected. Please Select a shape to shear/skew!"
-msgstr "No shape selected. Please Select a shape to shear/skew!"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1419
-#: flatcamEditors/FlatCAMGrbEditor.py:6078 flatcamTools/ToolTransform.py:801
-msgid "Applying Skew"
-msgstr "Applying Skew"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1442
-#: flatcamEditors/FlatCAMGrbEditor.py:6112
-msgid "Skew on the X axis done"
-msgstr "Skew on the X axis done"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1444
-#: flatcamEditors/FlatCAMGrbEditor.py:6114
-msgid "Skew on the Y axis done"
-msgstr "Skew on the Y axis done"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1447
-msgid "Skew action was not executed"
-msgstr "Skew action was not executed"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1469
-#: flatcamEditors/FlatCAMGrbEditor.py:6136
-msgid "No shape selected. Please Select a shape to scale!"
-msgstr "No shape selected. Please Select a shape to scale!"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1472
-#: flatcamEditors/FlatCAMGrbEditor.py:6139 flatcamTools/ToolTransform.py:847
-msgid "Applying Scale"
-msgstr "Applying Scale"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1504
-#: flatcamEditors/FlatCAMGrbEditor.py:6176
-msgid "Scale on the X axis done"
-msgstr "Scale on the X axis done"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1506
-#: flatcamEditors/FlatCAMGrbEditor.py:6178
-msgid "Scale on the Y axis done"
-msgstr "Scale on the Y axis done"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1508
-msgid "Scale action was not executed"
-msgstr "Scale action was not executed"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1523
-#: flatcamEditors/FlatCAMGrbEditor.py:6195
-msgid "No shape selected. Please Select a shape to offset!"
-msgstr "No shape selected. Please Select a shape to offset!"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1526
-#: flatcamEditors/FlatCAMGrbEditor.py:6198 flatcamTools/ToolTransform.py:897
-msgid "Applying Offset"
-msgstr "Applying Offset"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1536
-#: flatcamEditors/FlatCAMGrbEditor.py:6219
-msgid "Offset on the X axis done"
-msgstr "Offset on the X axis done"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1538
-#: flatcamEditors/FlatCAMGrbEditor.py:6221
-msgid "Offset on the Y axis done"
-msgstr "Offset on the Y axis done"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1541
-msgid "Offset action was not executed"
-msgstr "Offset action was not executed"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1545
-#: flatcamEditors/FlatCAMGrbEditor.py:6228
-msgid "Rotate ..."
-msgstr "Rotate ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1546
-#: flatcamEditors/FlatCAMGeoEditor.py:1601
-#: flatcamEditors/FlatCAMGeoEditor.py:1618
-#: flatcamEditors/FlatCAMGrbEditor.py:6229
-#: flatcamEditors/FlatCAMGrbEditor.py:6278
-#: flatcamEditors/FlatCAMGrbEditor.py:6293
-msgid "Enter an Angle Value (degrees)"
-msgstr "Enter an Angle Value (degrees)"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1555
-#: flatcamEditors/FlatCAMGrbEditor.py:6237
-msgid "Geometry shape rotate done"
-msgstr "Geometry shape rotate done"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1559
-#: flatcamEditors/FlatCAMGrbEditor.py:6240
-msgid "Geometry shape rotate cancelled"
-msgstr "Geometry shape rotate cancelled"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1564
-#: flatcamEditors/FlatCAMGrbEditor.py:6245
-msgid "Offset on X axis ..."
-msgstr "Offset on X axis ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1565
-#: flatcamEditors/FlatCAMGeoEditor.py:1584
-#: flatcamEditors/FlatCAMGrbEditor.py:6246
-#: flatcamEditors/FlatCAMGrbEditor.py:6263
-msgid "Enter a distance Value"
-msgstr "Enter a distance Value"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1574
-#: flatcamEditors/FlatCAMGrbEditor.py:6254
-msgid "Geometry shape offset on X axis done"
-msgstr "Geometry shape offset on X axis done"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1578
-#: flatcamEditors/FlatCAMGrbEditor.py:6257
-msgid "Geometry shape offset X cancelled"
-msgstr "Geometry shape offset X cancelled"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1583
-#: flatcamEditors/FlatCAMGrbEditor.py:6262
-msgid "Offset on Y axis ..."
-msgstr "Offset on Y axis ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1593
-#: flatcamEditors/FlatCAMGrbEditor.py:6271
-msgid "Geometry shape offset on Y axis done"
-msgstr "Geometry shape offset on Y axis done"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1597
-msgid "Geometry shape offset on Y axis canceled"
-msgstr "Geometry shape offset on Y axis canceled"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1600
-#: flatcamEditors/FlatCAMGrbEditor.py:6277
-msgid "Skew on X axis ..."
-msgstr "Skew on X axis ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1610
-#: flatcamEditors/FlatCAMGrbEditor.py:6286
-msgid "Geometry shape skew on X axis done"
-msgstr "Geometry shape skew on X axis done"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1614
-msgid "Geometry shape skew on X axis canceled"
-msgstr "Geometry shape skew on X axis canceled"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1617
-#: flatcamEditors/FlatCAMGrbEditor.py:6292
-msgid "Skew on Y axis ..."
-msgstr "Skew on Y axis ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1627
-#: flatcamEditors/FlatCAMGrbEditor.py:6301
-msgid "Geometry shape skew on Y axis done"
-msgstr "Geometry shape skew on Y axis done"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1631
-msgid "Geometry shape skew on Y axis canceled"
-msgstr "Geometry shape skew on Y axis canceled"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2008
-#: flatcamEditors/FlatCAMGeoEditor.py:2079
-#: flatcamEditors/FlatCAMGrbEditor.py:1437
-#: flatcamEditors/FlatCAMGrbEditor.py:1515
-msgid "Click on Center point ..."
-msgstr "Click on Center point ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2021
-#: flatcamEditors/FlatCAMGrbEditor.py:1447
-msgid "Click on Perimeter point to complete ..."
-msgstr "Click on Perimeter point to complete ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2053
-msgid "Done. Adding Circle completed."
-msgstr "Done. Adding Circle completed."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2107
-#: flatcamEditors/FlatCAMGrbEditor.py:1548
-msgid "Click on Start point ..."
-msgstr "Click on Start point ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2109
-#: flatcamEditors/FlatCAMGrbEditor.py:1550
-msgid "Click on Point3 ..."
-msgstr "Click on Point3 ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2111
-#: flatcamEditors/FlatCAMGrbEditor.py:1552
-msgid "Click on Stop point ..."
-msgstr "Click on Stop point ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2116
-#: flatcamEditors/FlatCAMGrbEditor.py:1557
-msgid "Click on Stop point to complete ..."
-msgstr "Click on Stop point to complete ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2118
-#: flatcamEditors/FlatCAMGrbEditor.py:1559
-msgid "Click on Point2 to complete ..."
-msgstr "Click on Point2 to complete ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2120
-#: flatcamEditors/FlatCAMGrbEditor.py:1561
-msgid "Click on Center point to complete ..."
-msgstr "Click on Center point to complete ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2132
-#, python-format
-msgid "Direction: %s"
-msgstr "Direction: %s"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2146
-#: flatcamEditors/FlatCAMGrbEditor.py:1587
-msgid "Mode: Start -> Stop -> Center. Click on Start point ..."
-msgstr "Mode: Start -> Stop -> Center. Click on Start point ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2149
-#: flatcamEditors/FlatCAMGrbEditor.py:1590
-msgid "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..."
-msgstr "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2152
-#: flatcamEditors/FlatCAMGrbEditor.py:1593
-msgid "Mode: Center -> Start -> Stop. Click on Center point ..."
-msgstr "Mode: Center -> Start -> Stop. Click on Center point ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2293
-msgid "Done. Arc completed."
-msgstr "Done. Arc completed."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2324
-#: flatcamEditors/FlatCAMGeoEditor.py:2397
-msgid "Click on 1st corner ..."
-msgstr "Click on 1st corner ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2336
-msgid "Click on opposite corner to complete ..."
-msgstr "Click on opposite corner to complete ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2366
-msgid "Done. Rectangle completed."
-msgstr "Done. Rectangle completed."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2410
-#: flatcamObjects/FlatCAMGeometry.py:2648 flatcamTools/ToolNCC.py:1733
-#: flatcamTools/ToolPaint.py:1628
-msgid "Click on next Point or click right mouse button to complete ..."
-msgstr "Click on next Point or click right mouse button to complete ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2441
-msgid "Done. Polygon completed."
-msgstr "Done. Polygon completed."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2455
-#: flatcamEditors/FlatCAMGeoEditor.py:2520
-#: flatcamEditors/FlatCAMGrbEditor.py:1113
-#: flatcamEditors/FlatCAMGrbEditor.py:1324
-msgid "Backtracked one point ..."
-msgstr "Backtracked one point ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2498
-msgid "Done. Path completed."
-msgstr "Done. Path completed."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2657
-msgid "No shape selected. Select a shape to explode"
-msgstr "No shape selected. Select a shape to explode"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2690
-msgid "Done. Polygons exploded into lines."
-msgstr "Done. Polygons exploded into lines."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2722
-msgid "MOVE: No shape selected. Select a shape to move"
-msgstr "MOVE: No shape selected. Select a shape to move"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2725
-#: flatcamEditors/FlatCAMGeoEditor.py:2745
-msgid " MOVE: Click on reference point ..."
-msgstr " MOVE: Click on reference point ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2730
-msgid " Click on destination point ..."
-msgstr " Click on destination point ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2770
-msgid "Done. Geometry(s) Move completed."
-msgstr "Done. Geometry(s) Move completed."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2903
-msgid "Done. Geometry(s) Copy completed."
-msgstr "Done. Geometry(s) Copy completed."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2934
-#: flatcamEditors/FlatCAMGrbEditor.py:899
-msgid "Click on 1st point ..."
-msgstr "Click on 1st point ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2958
-msgid ""
-"Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. "
-"Error"
-msgstr ""
-"Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. "
-"Error"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2966
-msgid "No text to add."
-msgstr "No text to add."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2976
-msgid " Done. Adding Text completed."
-msgstr " Done. Adding Text completed."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3013
-msgid "Create buffer geometry ..."
-msgstr "Create buffer geometry ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3048
-#: flatcamEditors/FlatCAMGrbEditor.py:5160
-msgid "Done. Buffer Tool completed."
-msgstr "Done. Buffer Tool completed."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3076
-msgid "Done. Buffer Int Tool completed."
-msgstr "Done. Buffer Int Tool completed."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3104
-msgid "Done. Buffer Ext Tool completed."
-msgstr "Done. Buffer Ext Tool completed."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3153
-#: flatcamEditors/FlatCAMGrbEditor.py:2153
-msgid "Select a shape to act as deletion area ..."
-msgstr "Select a shape to act as deletion area ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3155
-#: flatcamEditors/FlatCAMGeoEditor.py:3181
-#: flatcamEditors/FlatCAMGeoEditor.py:3187
-#: flatcamEditors/FlatCAMGrbEditor.py:2155
-msgid "Click to pick-up the erase shape..."
-msgstr "Click to pick-up the erase shape..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3191
-#: flatcamEditors/FlatCAMGrbEditor.py:2214
-msgid "Click to erase ..."
-msgstr "Click to erase ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3220
-#: flatcamEditors/FlatCAMGrbEditor.py:2247
-msgid "Done. Eraser tool action completed."
-msgstr "Done. Eraser tool action completed."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3270
-msgid "Create Paint geometry ..."
-msgstr "Create Paint geometry ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3283
-#: flatcamEditors/FlatCAMGrbEditor.py:2410
-msgid "Shape transformations ..."
-msgstr "Shape transformations ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3339
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:27
-msgid "Geometry Editor"
-msgstr "Geometry Editor"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3345
-#: flatcamEditors/FlatCAMGrbEditor.py:2488
-#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263
-#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326
-#: flatcamTools/ToolCutOut.py:95
-msgid "Type"
-msgstr "Type"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3345 flatcamGUI/ObjectUI.py:218
-#: flatcamGUI/ObjectUI.py:742 flatcamGUI/ObjectUI.py:1433
-#: flatcamGUI/ObjectUI.py:2235 flatcamGUI/ObjectUI.py:2539
-#: flatcamGUI/ObjectUI.py:2606 flatcamTools/ToolCalibration.py:234
-#: flatcamTools/ToolFiducials.py:73
-msgid "Name"
-msgstr "Name"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3587
-msgid "Ring"
-msgstr "Ring"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3589
-msgid "Line"
-msgstr "Line"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3591 flatcamGUI/FlatCAMGUI.py:2202
-#: flatcamGUI/ObjectUI.py:2074
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:218
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:328
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:292
-#: flatcamTools/ToolNCC.py:584 flatcamTools/ToolPaint.py:528
-msgid "Polygon"
-msgstr "Polygon"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3593
-msgid "Multi-Line"
-msgstr "Multi-Line"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3595
-msgid "Multi-Polygon"
-msgstr "Multi-Polygon"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3602
-msgid "Geo Elem"
-msgstr "Geo Elem"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4076
-msgid "Editing MultiGeo Geometry, tool"
-msgstr "Editing MultiGeo Geometry, tool"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4078
-msgid "with diameter"
-msgstr "with diameter"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4509 flatcamGUI/FlatCAMGUI.py:3753
-#: flatcamGUI/FlatCAMGUI.py:3799 flatcamGUI/FlatCAMGUI.py:3817
-#: flatcamGUI/FlatCAMGUI.py:3961 flatcamGUI/FlatCAMGUI.py:4000
-#: flatcamGUI/FlatCAMGUI.py:4012 flatcamGUI/FlatCAMGUI.py:4029
-msgid "Click on target point."
-msgstr "Click on target point."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4823
-#: flatcamEditors/FlatCAMGeoEditor.py:4858
-msgid "A selection of at least 2 geo items is required to do Intersection."
-msgstr "A selection of at least 2 geo items is required to do Intersection."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4944
-#: flatcamEditors/FlatCAMGeoEditor.py:5048
-msgid ""
-"Negative buffer value is not accepted. Use Buffer interior to generate an "
-"'inside' shape"
-msgstr ""
-"Negative buffer value is not accepted. Use Buffer interior to generate an "
-"'inside' shape"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4954
-#: flatcamEditors/FlatCAMGeoEditor.py:5007
-#: flatcamEditors/FlatCAMGeoEditor.py:5057
-msgid "Nothing selected for buffering."
-msgstr "Nothing selected for buffering."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4959
-#: flatcamEditors/FlatCAMGeoEditor.py:5011
-#: flatcamEditors/FlatCAMGeoEditor.py:5062
-msgid "Invalid distance for buffering."
-msgstr "Invalid distance for buffering."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4983
-#: flatcamEditors/FlatCAMGeoEditor.py:5082
-msgid "Failed, the result is empty. Choose a different buffer value."
-msgstr "Failed, the result is empty. Choose a different buffer value."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4994
-msgid "Full buffer geometry created."
-msgstr "Full buffer geometry created."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5000
-msgid "Negative buffer value is not accepted."
-msgstr "Negative buffer value is not accepted."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5031
-msgid "Failed, the result is empty. Choose a smaller buffer value."
-msgstr "Failed, the result is empty. Choose a smaller buffer value."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5041
-msgid "Interior buffer geometry created."
-msgstr "Interior buffer geometry created."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5092
-msgid "Exterior buffer geometry created."
-msgstr "Exterior buffer geometry created."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5098
-#, python-format
-msgid "Could not do Paint. Overlap value has to be less than 100%%."
-msgstr "Could not do Paint. Overlap value has to be less than 100%%."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5105
-msgid "Nothing selected for painting."
-msgstr "Nothing selected for painting."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5111
-msgid "Invalid value for"
-msgstr "Invalid value for"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5170
-msgid ""
-"Could not do Paint. Try a different combination of parameters. Or a "
-"different method of Paint"
-msgstr ""
-"Could not do Paint. Try a different combination of parameters. Or a "
-"different method of Paint"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5181
-msgid "Paint done."
-msgstr "Paint done."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:213
-msgid "To add an Pad first select a aperture in Aperture Table"
-msgstr "To add an Pad first select a aperture in Aperture Table"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:220
-#: flatcamEditors/FlatCAMGrbEditor.py:420
-msgid "Aperture size is zero. It needs to be greater than zero."
-msgstr "Aperture size is zero. It needs to be greater than zero."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:373
-#: flatcamEditors/FlatCAMGrbEditor.py:686
-msgid ""
-"Incompatible aperture type. Select an aperture with type 'C', 'R' or 'O'."
-msgstr ""
-"Incompatible aperture type. Select an aperture with type 'C', 'R' or 'O'."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:385
-msgid "Done. Adding Pad completed."
-msgstr "Done. Adding Pad completed."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:412
-msgid "To add an Pad Array first select a aperture in Aperture Table"
-msgstr "To add an Pad Array first select a aperture in Aperture Table"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:492
-msgid "Click on the Pad Circular Array Start position"
-msgstr "Click on the Pad Circular Array Start position"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:712
-msgid "Too many Pads for the selected spacing angle."
-msgstr "Too many Pads for the selected spacing angle."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:735
-msgid "Done. Pad Array added."
-msgstr "Done. Pad Array added."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:760
-msgid "Select shape(s) and then click ..."
-msgstr "Select shape(s) and then click ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:772
-msgid "Failed. Nothing selected."
-msgstr "Failed. Nothing selected."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:788
-msgid ""
-"Failed. Poligonize works only on geometries belonging to the same aperture."
-msgstr ""
-"Failed. Poligonize works only on geometries belonging to the same aperture."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:842
-msgid "Done. Poligonize completed."
-msgstr "Done. Poligonize completed."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:897
-#: flatcamEditors/FlatCAMGrbEditor.py:1130
-#: flatcamEditors/FlatCAMGrbEditor.py:1154
-msgid "Corner Mode 1: 45 degrees ..."
-msgstr "Corner Mode 1: 45 degrees ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:909
-#: flatcamEditors/FlatCAMGrbEditor.py:1239
-msgid "Click on next Point or click Right mouse button to complete ..."
-msgstr "Click on next Point or click Right mouse button to complete ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1118
-#: flatcamEditors/FlatCAMGrbEditor.py:1151
-msgid "Corner Mode 2: Reverse 45 degrees ..."
-msgstr "Corner Mode 2: Reverse 45 degrees ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1121
-#: flatcamEditors/FlatCAMGrbEditor.py:1148
-msgid "Corner Mode 3: 90 degrees ..."
-msgstr "Corner Mode 3: 90 degrees ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1124
-#: flatcamEditors/FlatCAMGrbEditor.py:1145
-msgid "Corner Mode 4: Reverse 90 degrees ..."
-msgstr "Corner Mode 4: Reverse 90 degrees ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1127
-#: flatcamEditors/FlatCAMGrbEditor.py:1142
-msgid "Corner Mode 5: Free angle ..."
-msgstr "Corner Mode 5: Free angle ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1184
-#: flatcamEditors/FlatCAMGrbEditor.py:1360
-#: flatcamEditors/FlatCAMGrbEditor.py:1399
-msgid "Track Mode 1: 45 degrees ..."
-msgstr "Track Mode 1: 45 degrees ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1340
-#: flatcamEditors/FlatCAMGrbEditor.py:1394
-msgid "Track Mode 2: Reverse 45 degrees ..."
-msgstr "Track Mode 2: Reverse 45 degrees ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1345
-#: flatcamEditors/FlatCAMGrbEditor.py:1389
-msgid "Track Mode 3: 90 degrees ..."
-msgstr "Track Mode 3: 90 degrees ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1350
-#: flatcamEditors/FlatCAMGrbEditor.py:1384
-msgid "Track Mode 4: Reverse 90 degrees ..."
-msgstr "Track Mode 4: Reverse 90 degrees ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1355
-#: flatcamEditors/FlatCAMGrbEditor.py:1379
-msgid "Track Mode 5: Free angle ..."
-msgstr "Track Mode 5: Free angle ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1780
-msgid "Scale the selected Gerber apertures ..."
-msgstr "Scale the selected Gerber apertures ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1822
-msgid "Buffer the selected apertures ..."
-msgstr "Buffer the selected apertures ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1864
-msgid "Mark polygon areas in the edited Gerber ..."
-msgstr "Mark polygon areas in the edited Gerber ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1930
-msgid "Nothing selected to move"
-msgstr "Nothing selected to move"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2055
-msgid "Done. Apertures Move completed."
-msgstr "Done. Apertures Move completed."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2137
-msgid "Done. Apertures copied."
-msgstr "Done. Apertures copied."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2455 flatcamGUI/FlatCAMGUI.py:2233
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:27
-msgid "Gerber Editor"
-msgstr "Gerber Editor"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2475 flatcamGUI/ObjectUI.py:228
-#: flatcamTools/ToolProperties.py:159
-msgid "Apertures"
-msgstr "Apertures"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2477 flatcamGUI/ObjectUI.py:230
-msgid "Apertures Table for the Gerber Object."
-msgstr "Apertures Table for the Gerber Object."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2488
-#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263
-msgid "Code"
-msgstr "Code"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2488
-#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:103
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43
-#: flatcamTools/ToolCopperThieving.py:261
-#: flatcamTools/ToolCopperThieving.py:301 flatcamTools/ToolFiducials.py:156
-msgid "Size"
-msgstr "Size"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2488
-#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263
-msgid "Dim"
-msgstr "Dim"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2493 flatcamGUI/ObjectUI.py:267
-msgid "Index"
-msgstr "Index"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2495
-#: flatcamEditors/FlatCAMGrbEditor.py:2524 flatcamGUI/ObjectUI.py:269
-msgid "Aperture Code"
-msgstr "Aperture Code"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2497 flatcamGUI/ObjectUI.py:271
-msgid "Type of aperture: circular, rectangle, macros etc"
-msgstr "Type of aperture: circular, rectangle, macros etc"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2499 flatcamGUI/ObjectUI.py:273
-msgid "Aperture Size:"
-msgstr "Aperture Size:"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2501 flatcamGUI/ObjectUI.py:275
-msgid ""
-"Aperture Dimensions:\n"
-" - (width, height) for R, O type.\n"
-" - (dia, nVertices) for P type"
-msgstr ""
-"Aperture Dimensions:\n"
-" - (width, height) for R, O type.\n"
-" - (dia, nVertices) for P type"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2525
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:58
-msgid "Code for the new aperture"
-msgstr "Code for the new aperture"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2534
-msgid "Aperture Size"
-msgstr "Aperture Size"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2536
-msgid ""
-"Size for the new aperture.\n"
-"If aperture type is 'R' or 'O' then\n"
-"this value is automatically\n"
-"calculated as:\n"
-"sqrt(width**2 + height**2)"
-msgstr ""
-"Size for the new aperture.\n"
-"If aperture type is 'R' or 'O' then\n"
-"this value is automatically\n"
-"calculated as:\n"
-"sqrt(width**2 + height**2)"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2550
-msgid "Aperture Type"
-msgstr "Aperture Type"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2552
-msgid ""
-"Select the type of new aperture. Can be:\n"
-"C = circular\n"
-"R = rectangular\n"
-"O = oblong"
-msgstr ""
-"Select the type of new aperture. Can be:\n"
-"C = circular\n"
-"R = rectangular\n"
-"O = oblong"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2563
-msgid "Aperture Dim"
-msgstr "Aperture Dim"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2565
-msgid ""
-"Dimensions for the new aperture.\n"
-"Active only for rectangular apertures (type R).\n"
-"The format is (width, height)"
-msgstr ""
-"Dimensions for the new aperture.\n"
-"Active only for rectangular apertures (type R).\n"
-"The format is (width, height)"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2574
-msgid "Add/Delete Aperture"
-msgstr "Add/Delete Aperture"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2576
-msgid "Add/Delete an aperture in the aperture table"
-msgstr "Add/Delete an aperture in the aperture table"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2585
-msgid "Add a new aperture to the aperture list."
-msgstr "Add a new aperture to the aperture list."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2590
-msgid "Delete a aperture in the aperture list"
-msgstr "Delete a aperture in the aperture list"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2607
-msgid "Buffer Aperture"
-msgstr "Buffer Aperture"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2609
-msgid "Buffer a aperture in the aperture list"
-msgstr "Buffer a aperture in the aperture list"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2622
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:194
-msgid "Buffer distance"
-msgstr "Buffer distance"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2623
-msgid "Buffer corner"
-msgstr "Buffer corner"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2625
-msgid ""
-"There are 3 types of corners:\n"
-" - 'Round': the corner is rounded.\n"
-" - 'Square': the corner is met in a sharp angle.\n"
-" - 'Beveled': the corner is a line that directly connects the features "
-"meeting in the corner"
-msgstr ""
-"There are 3 types of corners:\n"
-" - 'Round': the corner is rounded.\n"
-" - 'Square': the corner is met in a sharp angle.\n"
-" - 'Beveled': the corner is a line that directly connects the features "
-"meeting in the corner"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2640 flatcamGUI/FlatCAMGUI.py:1061
-#: flatcamGUI/FlatCAMGUI.py:2138 flatcamGUI/FlatCAMGUI.py:2210
-#: flatcamGUI/FlatCAMGUI.py:2253 flatcamGUI/FlatCAMGUI.py:2765
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:200
-#: flatcamTools/ToolTransform.py:29
-msgid "Buffer"
-msgstr "Buffer"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2655
-msgid "Scale Aperture"
-msgstr "Scale Aperture"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2657
-msgid "Scale a aperture in the aperture list"
-msgstr "Scale a aperture in the aperture list"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2665
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:209
-msgid "Scale factor"
-msgstr "Scale factor"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2667
-msgid ""
-"The factor by which to scale the selected aperture.\n"
-"Values can be between 0.0000 and 999.9999"
-msgstr ""
-"The factor by which to scale the selected aperture.\n"
-"Values can be between 0.0000 and 999.9999"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2695
-msgid "Mark polygons"
-msgstr "Mark polygons"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2697
-msgid "Mark the polygon areas."
-msgstr "Mark the polygon areas."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2705
-msgid "Area UPPER threshold"
-msgstr "Area UPPER threshold"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2707
-msgid ""
-"The threshold value, all areas less than this are marked.\n"
-"Can have a value between 0.0000 and 9999.9999"
-msgstr ""
-"The threshold value, all areas less than this are marked.\n"
-"Can have a value between 0.0000 and 9999.9999"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2714
-msgid "Area LOWER threshold"
-msgstr "Area LOWER threshold"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2716
-msgid ""
-"The threshold value, all areas more than this are marked.\n"
-"Can have a value between 0.0000 and 9999.9999"
-msgstr ""
-"The threshold value, all areas more than this are marked.\n"
-"Can have a value between 0.0000 and 9999.9999"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2730
-msgid "Mark"
-msgstr "Mark"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2732
-msgid "Mark the polygons that fit within limits."
-msgstr "Mark the polygons that fit within limits."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2738
-msgid "Delete all the marked polygons."
-msgstr "Delete all the marked polygons."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2744
-msgid "Clear all the markings."
-msgstr "Clear all the markings."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2764 flatcamGUI/FlatCAMGUI.py:1046
-#: flatcamGUI/FlatCAMGUI.py:2138 flatcamGUI/FlatCAMGUI.py:2750
-msgid "Add Pad Array"
-msgstr "Add Pad Array"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2766
-msgid "Add an array of pads (linear or circular array)"
-msgstr "Add an array of pads (linear or circular array)"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2772
-msgid ""
-"Select the type of pads array to create.\n"
-"It can be Linear X(Y) or Circular"
-msgstr ""
-"Select the type of pads array to create.\n"
-"It can be Linear X(Y) or Circular"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2783
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:95
-msgid "Nr of pads"
-msgstr "Nr of pads"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2785
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:97
-msgid "Specify how many pads to be in the array."
-msgstr "Specify how many pads to be in the array."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2834
-msgid ""
-"Angle at which the linear array is placed.\n"
-"The precision is of max 2 decimals.\n"
-"Min value is: -359.99 degrees.\n"
-"Max value is: 360.00 degrees."
-msgstr ""
-"Angle at which the linear array is placed.\n"
-"The precision is of max 2 decimals.\n"
-"Min value is: -359.99 degrees.\n"
-"Max value is: 360.00 degrees."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3328
-#: flatcamEditors/FlatCAMGrbEditor.py:3332
-msgid "Aperture code value is missing or wrong format. Add it and retry."
-msgstr "Aperture code value is missing or wrong format. Add it and retry."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3368
-msgid ""
-"Aperture dimensions value is missing or wrong format. Add it in format "
-"(width, height) and retry."
-msgstr ""
-"Aperture dimensions value is missing or wrong format. Add it in format "
-"(width, height) and retry."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3381
-msgid "Aperture size value is missing or wrong format. Add it and retry."
-msgstr "Aperture size value is missing or wrong format. Add it and retry."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3392
-msgid "Aperture already in the aperture table."
-msgstr "Aperture already in the aperture table."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3399
-msgid "Added new aperture with code"
-msgstr "Added new aperture with code"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3431
-msgid " Select an aperture in Aperture Table"
-msgstr " Select an aperture in Aperture Table"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3439
-msgid "Select an aperture in Aperture Table -->"
-msgstr "Select an aperture in Aperture Table -->"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3453
-msgid "Deleted aperture with code"
-msgstr "Deleted aperture with code"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3521
-msgid "Dimensions need two float values separated by comma."
-msgstr "Dimensions need two float values separated by comma."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3530
-msgid "Dimensions edited."
-msgstr "Dimensions edited."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4084
-msgid "Loading Gerber into Editor"
-msgstr "Loading Gerber into Editor"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4212
-msgid "Setting up the UI"
-msgstr "Setting up the UI"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4213
-msgid "Adding geometry finished. Preparing the GUI"
-msgstr "Adding geometry finished. Preparing the GUI"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4222
-msgid "Finished loading the Gerber object into the editor."
-msgstr "Finished loading the Gerber object into the editor."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4361
-msgid ""
-"There are no Aperture definitions in the file. Aborting Gerber creation."
-msgstr ""
-"There are no Aperture definitions in the file. Aborting Gerber creation."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4371
-msgid "Creating Gerber."
-msgstr "Creating Gerber."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4380
-msgid "Done. Gerber editing finished."
-msgstr "Done. Gerber editing finished."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4398
-msgid "Cancelled. No aperture is selected"
-msgstr "Cancelled. No aperture is selected"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4992
-msgid "Failed. No aperture geometry is selected."
-msgstr "Failed. No aperture geometry is selected."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5001
-#: flatcamEditors/FlatCAMGrbEditor.py:5272
-msgid "Done. Apertures geometry deleted."
-msgstr "Done. Apertures geometry deleted."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5144
-msgid "No aperture to buffer. Select at least one aperture and try again."
-msgstr "No aperture to buffer. Select at least one aperture and try again."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5156
-msgid "Failed."
-msgstr "Failed."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5175
-msgid "Scale factor value is missing or wrong format. Add it and retry."
-msgstr "Scale factor value is missing or wrong format. Add it and retry."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5207
-msgid "No aperture to scale. Select at least one aperture and try again."
-msgstr "No aperture to scale. Select at least one aperture and try again."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5223
-msgid "Done. Scale Tool completed."
-msgstr "Done. Scale Tool completed."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5261
-msgid "Polygons marked."
-msgstr "Polygons marked."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5264
-msgid "No polygons were marked. None fit within the limits."
-msgstr "No polygons were marked. None fit within the limits."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5988
-msgid "Rotation action was not executed."
-msgstr "Rotation action was not executed."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:6116
-msgid "Skew action was not executed."
-msgstr "Skew action was not executed."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:6181
-msgid "Scale action was not executed."
-msgstr "Scale action was not executed."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:6224
-msgid "Offset action was not executed."
-msgstr "Offset action was not executed."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:6274
-msgid "Geometry shape offset Y cancelled"
-msgstr "Geometry shape offset Y cancelled"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:6289
-msgid "Geometry shape skew X cancelled"
-msgstr "Geometry shape skew X cancelled"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:6304
-msgid "Geometry shape skew Y cancelled"
-msgstr "Geometry shape skew Y cancelled"
-
-#: flatcamEditors/FlatCAMTextEditor.py:74
-msgid "Print Preview"
-msgstr "Print Preview"
-
-#: flatcamEditors/FlatCAMTextEditor.py:75
-msgid "Open a OS standard Preview Print window."
-msgstr "Open a OS standard Preview Print window."
-
-#: flatcamEditors/FlatCAMTextEditor.py:78
-msgid "Print Code"
-msgstr "Print Code"
-
-#: flatcamEditors/FlatCAMTextEditor.py:79
-msgid "Open a OS standard Print window."
-msgstr "Open a OS standard Print window."
-
-#: flatcamEditors/FlatCAMTextEditor.py:81
-msgid "Find in Code"
-msgstr "Find in Code"
-
-#: flatcamEditors/FlatCAMTextEditor.py:82
-msgid "Will search and highlight in yellow the string in the Find box."
-msgstr "Will search and highlight in yellow the string in the Find box."
-
-#: flatcamEditors/FlatCAMTextEditor.py:86
-msgid "Find box. Enter here the strings to be searched in the text."
-msgstr "Find box. Enter here the strings to be searched in the text."
-
-#: flatcamEditors/FlatCAMTextEditor.py:88
-msgid "Replace With"
-msgstr "Replace With"
-
-#: flatcamEditors/FlatCAMTextEditor.py:89
-msgid ""
-"Will replace the string from the Find box with the one in the Replace box."
-msgstr ""
-"Will replace the string from the Find box with the one in the Replace box."
-
-#: flatcamEditors/FlatCAMTextEditor.py:93
-msgid "String to replace the one in the Find box throughout the text."
-msgstr "String to replace the one in the Find box throughout the text."
-
-#: flatcamEditors/FlatCAMTextEditor.py:95 flatcamGUI/ObjectUI.py:486
-#: flatcamGUI/ObjectUI.py:2219
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:54
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:88
-msgid "All"
-msgstr "All"
-
-#: flatcamEditors/FlatCAMTextEditor.py:96
-msgid ""
-"When checked it will replace all instances in the 'Find' box\n"
-"with the text in the 'Replace' box.."
-msgstr ""
-"When checked it will replace all instances in the 'Find' box\n"
-"with the text in the 'Replace' box.."
-
-#: flatcamEditors/FlatCAMTextEditor.py:99
-msgid "Copy All"
-msgstr "Copy All"
-
-#: flatcamEditors/FlatCAMTextEditor.py:100
-msgid "Will copy all the text in the Code Editor to the clipboard."
-msgstr "Will copy all the text in the Code Editor to the clipboard."
-
-#: flatcamEditors/FlatCAMTextEditor.py:103
-msgid "Open Code"
-msgstr "Open Code"
-
-#: flatcamEditors/FlatCAMTextEditor.py:104
-msgid "Will open a text file in the editor."
-msgstr "Will open a text file in the editor."
-
-#: flatcamEditors/FlatCAMTextEditor.py:106
-msgid "Save Code"
-msgstr "Save Code"
-
-#: flatcamEditors/FlatCAMTextEditor.py:107
-msgid "Will save the text in the editor into a file."
-msgstr "Will save the text in the editor into a file."
-
-#: flatcamEditors/FlatCAMTextEditor.py:109
-msgid "Run Code"
-msgstr "Run Code"
-
-#: flatcamEditors/FlatCAMTextEditor.py:110
-msgid "Will run the TCL commands found in the text file, one by one."
-msgstr "Will run the TCL commands found in the text file, one by one."
-
-#: flatcamEditors/FlatCAMTextEditor.py:184
-msgid "Open file"
-msgstr "Open file"
-
-#: flatcamEditors/FlatCAMTextEditor.py:215
-#: flatcamEditors/FlatCAMTextEditor.py:220
-msgid "Export Code ..."
-msgstr "Export Code ..."
-
-#: flatcamEditors/FlatCAMTextEditor.py:272 flatcamObjects/FlatCAMCNCJob.py:955
-#: flatcamTools/ToolSolderPaste.py:1530
-msgid "No such file or directory"
-msgstr "No such file or directory"
-
-#: flatcamEditors/FlatCAMTextEditor.py:284 flatcamObjects/FlatCAMCNCJob.py:969
-msgid "Saved to"
-msgstr "Saved to"
-
-#: flatcamEditors/FlatCAMTextEditor.py:334
-msgid "Code Editor content copied to clipboard ..."
-msgstr "Code Editor content copied to clipboard ..."
-
-#: flatcamGUI/FlatCAMGUI.py:78 flatcamGUI/FlatCAMGUI.py:80
-#: flatcamGUI/FlatCAMGUI.py:2163
-msgid "Toggle Panel"
-msgstr "Toggle Panel"
-
-#: flatcamGUI/FlatCAMGUI.py:90
-msgid "File"
-msgstr "File"
-
-#: flatcamGUI/FlatCAMGUI.py:95
-msgid "&New Project ...\tCtrl+N"
-msgstr "&New Project ...\tCtrl+N"
-
-#: flatcamGUI/FlatCAMGUI.py:97
-msgid "Will create a new, blank project"
-msgstr "Will create a new, blank project"
-
-#: flatcamGUI/FlatCAMGUI.py:102
-msgid "&New"
-msgstr "&New"
-
-#: flatcamGUI/FlatCAMGUI.py:106
-msgid "Geometry\tN"
-msgstr "Geometry\tN"
-
-#: flatcamGUI/FlatCAMGUI.py:108
-msgid "Will create a new, empty Geometry Object."
-msgstr "Will create a new, empty Geometry Object."
-
-#: flatcamGUI/FlatCAMGUI.py:111
-msgid "Gerber\tB"
-msgstr "Gerber\tB"
-
-#: flatcamGUI/FlatCAMGUI.py:113
-msgid "Will create a new, empty Gerber Object."
-msgstr "Will create a new, empty Gerber Object."
-
-#: flatcamGUI/FlatCAMGUI.py:116
-msgid "Excellon\tL"
-msgstr "Excellon\tL"
-
-#: flatcamGUI/FlatCAMGUI.py:118
-msgid "Will create a new, empty Excellon Object."
-msgstr "Will create a new, empty Excellon Object."
-
-#: flatcamGUI/FlatCAMGUI.py:123
-msgid "Document\tD"
-msgstr "Document\tD"
-
-#: flatcamGUI/FlatCAMGUI.py:125
-msgid "Will create a new, empty Document Object."
-msgstr "Will create a new, empty Document Object."
-
-#: flatcamGUI/FlatCAMGUI.py:129 flatcamGUI/FlatCAMGUI.py:4420
-#: flatcamTools/ToolPcbWizard.py:62 flatcamTools/ToolPcbWizard.py:69
-msgid "Open"
-msgstr "Open"
-
-#: flatcamGUI/FlatCAMGUI.py:134
-msgid "Open &Project ..."
-msgstr "Open &Project ..."
-
-#: flatcamGUI/FlatCAMGUI.py:140 flatcamGUI/FlatCAMGUI.py:4430
-msgid "Open &Gerber ...\tCtrl+G"
-msgstr "Open &Gerber ...\tCtrl+G"
-
-#: flatcamGUI/FlatCAMGUI.py:145 flatcamGUI/FlatCAMGUI.py:4435
-msgid "Open &Excellon ...\tCtrl+E"
-msgstr "Open &Excellon ...\tCtrl+E"
-
-#: flatcamGUI/FlatCAMGUI.py:150 flatcamGUI/FlatCAMGUI.py:4440
-msgid "Open G-&Code ..."
-msgstr "Open G-&Code ..."
-
-#: flatcamGUI/FlatCAMGUI.py:157
-msgid "Open Config ..."
-msgstr "Open Config ..."
-
-#: flatcamGUI/FlatCAMGUI.py:162
-msgid "Recent projects"
-msgstr "Recent projects"
-
-#: flatcamGUI/FlatCAMGUI.py:164
-msgid "Recent files"
-msgstr "Recent files"
-
-#: flatcamGUI/FlatCAMGUI.py:167 flatcamGUI/FlatCAMGUI.py:753
-#: flatcamGUI/FlatCAMGUI.py:1339
-msgid "Save"
-msgstr "Save"
-
-#: flatcamGUI/FlatCAMGUI.py:171
-msgid "&Save Project ...\tCtrl+S"
-msgstr "&Save Project ...\tCtrl+S"
-
-#: flatcamGUI/FlatCAMGUI.py:176
-msgid "Save Project &As ...\tCtrl+Shift+S"
-msgstr "Save Project &As ...\tCtrl+Shift+S"
-
-#: flatcamGUI/FlatCAMGUI.py:191
-msgid "Scripting"
-msgstr "Scripting"
-
-#: flatcamGUI/FlatCAMGUI.py:195 flatcamGUI/FlatCAMGUI.py:903
-#: flatcamGUI/FlatCAMGUI.py:2607
-msgid "New Script ..."
-msgstr "New Script ..."
-
-#: flatcamGUI/FlatCAMGUI.py:197 flatcamGUI/FlatCAMGUI.py:905
-#: flatcamGUI/FlatCAMGUI.py:2609
-msgid "Open Script ..."
-msgstr "Open Script ..."
-
-#: flatcamGUI/FlatCAMGUI.py:199
-msgid "Open Example ..."
-msgstr "Open Example ..."
-
-#: flatcamGUI/FlatCAMGUI.py:201 flatcamGUI/FlatCAMGUI.py:907
-#: flatcamGUI/FlatCAMGUI.py:2611 flatcamGUI/FlatCAMGUI.py:4409
-msgid "Run Script ..."
-msgstr "Run Script ..."
-
-#: flatcamGUI/FlatCAMGUI.py:203 flatcamGUI/FlatCAMGUI.py:4411
-msgid ""
-"Will run the opened Tcl Script thus\n"
-"enabling the automation of certain\n"
-"functions of FlatCAM."
-msgstr ""
-"Will run the opened Tcl Script thus\n"
-"enabling the automation of certain\n"
-"functions of FlatCAM."
-
-#: flatcamGUI/FlatCAMGUI.py:218
-msgid "Import"
-msgstr "Import"
-
-#: flatcamGUI/FlatCAMGUI.py:220
-msgid "&SVG as Geometry Object ..."
-msgstr "&SVG as Geometry Object ..."
-
-#: flatcamGUI/FlatCAMGUI.py:223
-msgid "&SVG as Gerber Object ..."
-msgstr "&SVG as Gerber Object ..."
-
-#: flatcamGUI/FlatCAMGUI.py:228
-msgid "&DXF as Geometry Object ..."
-msgstr "&DXF as Geometry Object ..."
-
-#: flatcamGUI/FlatCAMGUI.py:231
-msgid "&DXF as Gerber Object ..."
-msgstr "&DXF as Gerber Object ..."
-
-#: flatcamGUI/FlatCAMGUI.py:235
-msgid "HPGL2 as Geometry Object ..."
-msgstr "HPGL2 as Geometry Object ..."
-
-#: flatcamGUI/FlatCAMGUI.py:241
-msgid "Export"
-msgstr "Export"
-
-#: flatcamGUI/FlatCAMGUI.py:245
-msgid "Export &SVG ..."
-msgstr "Export &SVG ..."
-
-#: flatcamGUI/FlatCAMGUI.py:249
-msgid "Export DXF ..."
-msgstr "Export DXF ..."
-
-#: flatcamGUI/FlatCAMGUI.py:255
-msgid "Export &PNG ..."
-msgstr "Export &PNG ..."
-
-#: flatcamGUI/FlatCAMGUI.py:257
-msgid ""
-"Will export an image in PNG format,\n"
-"the saved image will contain the visual \n"
-"information currently in FlatCAM Plot Area."
-msgstr ""
-"Will export an image in PNG format,\n"
-"the saved image will contain the visual \n"
-"information currently in FlatCAM Plot Area."
-
-#: flatcamGUI/FlatCAMGUI.py:266
-msgid "Export &Excellon ..."
-msgstr "Export &Excellon ..."
-
-#: flatcamGUI/FlatCAMGUI.py:268
-msgid ""
-"Will export an Excellon Object as Excellon file,\n"
-"the coordinates format, the file units and zeros\n"
-"are set in Preferences -> Excellon Export."
-msgstr ""
-"Will export an Excellon Object as Excellon file,\n"
-"the coordinates format, the file units and zeros\n"
-"are set in Preferences -> Excellon Export."
-
-#: flatcamGUI/FlatCAMGUI.py:275
-msgid "Export &Gerber ..."
-msgstr "Export &Gerber ..."
-
-#: flatcamGUI/FlatCAMGUI.py:277
-msgid ""
-"Will export an Gerber Object as Gerber file,\n"
-"the coordinates format, the file units and zeros\n"
-"are set in Preferences -> Gerber Export."
-msgstr ""
-"Will export an Gerber Object as Gerber file,\n"
-"the coordinates format, the file units and zeros\n"
-"are set in Preferences -> Gerber Export."
-
-#: flatcamGUI/FlatCAMGUI.py:287
-msgid "Backup"
-msgstr "Backup"
-
-#: flatcamGUI/FlatCAMGUI.py:292
-msgid "Import Preferences from file ..."
-msgstr "Import Preferences from file ..."
-
-#: flatcamGUI/FlatCAMGUI.py:298
-msgid "Export Preferences to file ..."
-msgstr "Export Preferences to file ..."
-
-#: flatcamGUI/FlatCAMGUI.py:306
-#: flatcamGUI/preferences/PreferencesUIManager.py:1119
-msgid "Save Preferences"
-msgstr "Save Preferences"
-
-#: flatcamGUI/FlatCAMGUI.py:312 flatcamGUI/FlatCAMGUI.py:1730
-msgid "Print (PDF)"
-msgstr "Print (PDF)"
-
-#: flatcamGUI/FlatCAMGUI.py:320
-msgid "E&xit"
-msgstr "E&xit"
-
-#: flatcamGUI/FlatCAMGUI.py:328 flatcamGUI/FlatCAMGUI.py:747
-#: flatcamGUI/FlatCAMGUI.py:2286
-msgid "Edit"
-msgstr "Edit"
-
-#: flatcamGUI/FlatCAMGUI.py:332
-msgid "Edit Object\tE"
-msgstr "Edit Object\tE"
-
-#: flatcamGUI/FlatCAMGUI.py:334
-msgid "Close Editor\tCtrl+S"
-msgstr "Close Editor\tCtrl+S"
-
-#: flatcamGUI/FlatCAMGUI.py:343
-msgid "Conversion"
-msgstr "Conversion"
-
-#: flatcamGUI/FlatCAMGUI.py:345
-msgid "&Join Geo/Gerber/Exc -> Geo"
-msgstr "&Join Geo/Gerber/Exc -> Geo"
-
-#: flatcamGUI/FlatCAMGUI.py:347
-msgid ""
-"Merge a selection of objects, which can be of type:\n"
-"- Gerber\n"
-"- Excellon\n"
-"- Geometry\n"
-"into a new combo Geometry object."
-msgstr ""
-"Merge a selection of objects, which can be of type:\n"
-"- Gerber\n"
-"- Excellon\n"
-"- Geometry\n"
-"into a new combo Geometry object."
-
-#: flatcamGUI/FlatCAMGUI.py:354
-msgid "Join Excellon(s) -> Excellon"
-msgstr "Join Excellon(s) -> Excellon"
-
-#: flatcamGUI/FlatCAMGUI.py:356
-msgid "Merge a selection of Excellon objects into a new combo Excellon object."
-msgstr ""
-"Merge a selection of Excellon objects into a new combo Excellon object."
-
-#: flatcamGUI/FlatCAMGUI.py:359
-msgid "Join Gerber(s) -> Gerber"
-msgstr "Join Gerber(s) -> Gerber"
-
-#: flatcamGUI/FlatCAMGUI.py:361
-msgid "Merge a selection of Gerber objects into a new combo Gerber object."
-msgstr "Merge a selection of Gerber objects into a new combo Gerber object."
-
-#: flatcamGUI/FlatCAMGUI.py:366
-msgid "Convert Single to MultiGeo"
-msgstr "Convert Single to MultiGeo"
-
-#: flatcamGUI/FlatCAMGUI.py:368
-msgid ""
-"Will convert a Geometry object from single_geometry type\n"
-"to a multi_geometry type."
-msgstr ""
-"Will convert a Geometry object from single_geometry type\n"
-"to a multi_geometry type."
-
-#: flatcamGUI/FlatCAMGUI.py:372
-msgid "Convert Multi to SingleGeo"
-msgstr "Convert Multi to SingleGeo"
-
-#: flatcamGUI/FlatCAMGUI.py:374
-msgid ""
-"Will convert a Geometry object from multi_geometry type\n"
-"to a single_geometry type."
-msgstr ""
-"Will convert a Geometry object from multi_geometry type\n"
-"to a single_geometry type."
-
-#: flatcamGUI/FlatCAMGUI.py:381
-msgid "Convert Any to Geo"
-msgstr "Convert Any to Geo"
-
-#: flatcamGUI/FlatCAMGUI.py:384
-msgid "Convert Any to Gerber"
-msgstr "Convert Any to Gerber"
-
-#: flatcamGUI/FlatCAMGUI.py:390
-msgid "&Copy\tCtrl+C"
-msgstr "&Copy\tCtrl+C"
-
-#: flatcamGUI/FlatCAMGUI.py:395
-msgid "&Delete\tDEL"
-msgstr "&Delete\tDEL"
-
-#: flatcamGUI/FlatCAMGUI.py:400
-msgid "Se&t Origin\tO"
-msgstr "Se&t Origin\tO"
-
-#: flatcamGUI/FlatCAMGUI.py:402
-msgid "Move to Origin\tShift+O"
-msgstr "Move to Origin\tShift+O"
-
-#: flatcamGUI/FlatCAMGUI.py:405
-msgid "Jump to Location\tJ"
-msgstr "Jump to Location\tJ"
-
-#: flatcamGUI/FlatCAMGUI.py:407
-msgid "Locate in Object\tShift+J"
-msgstr "Locate in Object\tShift+J"
-
-#: flatcamGUI/FlatCAMGUI.py:412
-msgid "Toggle Units\tQ"
-msgstr "Toggle Units\tQ"
-
-#: flatcamGUI/FlatCAMGUI.py:414
-msgid "&Select All\tCtrl+A"
-msgstr "&Select All\tCtrl+A"
-
-#: flatcamGUI/FlatCAMGUI.py:419
-msgid "&Preferences\tShift+P"
-msgstr "&Preferences\tShift+P"
-
-#: flatcamGUI/FlatCAMGUI.py:425 flatcamTools/ToolProperties.py:155
-msgid "Options"
-msgstr "Options"
-
-#: flatcamGUI/FlatCAMGUI.py:427
-msgid "&Rotate Selection\tShift+(R)"
-msgstr "&Rotate Selection\tShift+(R)"
-
-#: flatcamGUI/FlatCAMGUI.py:432
-msgid "&Skew on X axis\tShift+X"
-msgstr "&Skew on X axis\tShift+X"
-
-#: flatcamGUI/FlatCAMGUI.py:434
-msgid "S&kew on Y axis\tShift+Y"
-msgstr "S&kew on Y axis\tShift+Y"
-
-#: flatcamGUI/FlatCAMGUI.py:439
-msgid "Flip on &X axis\tX"
-msgstr "Flip on &X axis\tX"
-
-#: flatcamGUI/FlatCAMGUI.py:441
-msgid "Flip on &Y axis\tY"
-msgstr "Flip on &Y axis\tY"
-
-#: flatcamGUI/FlatCAMGUI.py:446
-msgid "View source\tAlt+S"
-msgstr "View source\tAlt+S"
-
-#: flatcamGUI/FlatCAMGUI.py:448
-msgid "Tools DataBase\tCtrl+D"
-msgstr "Tools DataBase\tCtrl+D"
-
-#: flatcamGUI/FlatCAMGUI.py:455 flatcamGUI/FlatCAMGUI.py:2183
-msgid "View"
-msgstr "View"
-
-#: flatcamGUI/FlatCAMGUI.py:457
-msgid "Enable all plots\tAlt+1"
-msgstr "Enable all plots\tAlt+1"
-
-#: flatcamGUI/FlatCAMGUI.py:459
-msgid "Disable all plots\tAlt+2"
-msgstr "Disable all plots\tAlt+2"
-
-#: flatcamGUI/FlatCAMGUI.py:461
-msgid "Disable non-selected\tAlt+3"
-msgstr "Disable non-selected\tAlt+3"
-
-#: flatcamGUI/FlatCAMGUI.py:465
-msgid "&Zoom Fit\tV"
-msgstr "&Zoom Fit\tV"
-
-#: flatcamGUI/FlatCAMGUI.py:467
-msgid "&Zoom In\t="
-msgstr "&Zoom In\t="
-
-#: flatcamGUI/FlatCAMGUI.py:469
-msgid "&Zoom Out\t-"
-msgstr "&Zoom Out\t-"
-
-#: flatcamGUI/FlatCAMGUI.py:474
-msgid "Redraw All\tF5"
-msgstr "Redraw All\tF5"
-
-#: flatcamGUI/FlatCAMGUI.py:478
-msgid "Toggle Code Editor\tShift+E"
-msgstr "Toggle Code Editor\tShift+E"
-
-#: flatcamGUI/FlatCAMGUI.py:481
-msgid "&Toggle FullScreen\tAlt+F10"
-msgstr "&Toggle FullScreen\tAlt+F10"
-
-#: flatcamGUI/FlatCAMGUI.py:483
-msgid "&Toggle Plot Area\tCtrl+F10"
-msgstr "&Toggle Plot Area\tCtrl+F10"
-
-#: flatcamGUI/FlatCAMGUI.py:485
-msgid "&Toggle Project/Sel/Tool\t`"
-msgstr "&Toggle Project/Sel/Tool\t`"
-
-#: flatcamGUI/FlatCAMGUI.py:489
-msgid "&Toggle Grid Snap\tG"
-msgstr "&Toggle Grid Snap\tG"
-
-#: flatcamGUI/FlatCAMGUI.py:491
-msgid "&Toggle Grid Lines\tAlt+G"
-msgstr "&Toggle Grid Lines\tAlt+G"
-
-#: flatcamGUI/FlatCAMGUI.py:493
-msgid "&Toggle Axis\tShift+G"
-msgstr "&Toggle Axis\tShift+G"
-
-#: flatcamGUI/FlatCAMGUI.py:495
-msgid "Toggle Workspace\tShift+W"
-msgstr "Toggle Workspace\tShift+W"
-
-#: flatcamGUI/FlatCAMGUI.py:500
-msgid "Objects"
-msgstr "Objects"
-
-#: flatcamGUI/FlatCAMGUI.py:514
-msgid "&Command Line\tS"
-msgstr "&Command Line\tS"
-
-#: flatcamGUI/FlatCAMGUI.py:519
-msgid "Help"
-msgstr "Help"
-
-#: flatcamGUI/FlatCAMGUI.py:521
-msgid "Online Help\tF1"
-msgstr "Online Help\tF1"
-
-#: flatcamGUI/FlatCAMGUI.py:531
-msgid "Report a bug"
-msgstr "Report a bug"
-
-#: flatcamGUI/FlatCAMGUI.py:534
-msgid "Excellon Specification"
-msgstr "Excellon Specification"
-
-#: flatcamGUI/FlatCAMGUI.py:536
-msgid "Gerber Specification"
-msgstr "Gerber Specification"
-
-#: flatcamGUI/FlatCAMGUI.py:541
-msgid "Shortcuts List\tF3"
-msgstr "Shortcuts List\tF3"
-
-#: flatcamGUI/FlatCAMGUI.py:543
-msgid "YouTube Channel\tF4"
-msgstr "YouTube Channel\tF4"
-
-#: flatcamGUI/FlatCAMGUI.py:554
-msgid "Add Circle\tO"
-msgstr "Add Circle\tO"
-
-#: flatcamGUI/FlatCAMGUI.py:557
-msgid "Add Arc\tA"
-msgstr "Add Arc\tA"
-
-#: flatcamGUI/FlatCAMGUI.py:560
-msgid "Add Rectangle\tR"
-msgstr "Add Rectangle\tR"
-
-#: flatcamGUI/FlatCAMGUI.py:563
-msgid "Add Polygon\tN"
-msgstr "Add Polygon\tN"
-
-#: flatcamGUI/FlatCAMGUI.py:566
-msgid "Add Path\tP"
-msgstr "Add Path\tP"
-
-#: flatcamGUI/FlatCAMGUI.py:569
-msgid "Add Text\tT"
-msgstr "Add Text\tT"
-
-#: flatcamGUI/FlatCAMGUI.py:572
-msgid "Polygon Union\tU"
-msgstr "Polygon Union\tU"
-
-#: flatcamGUI/FlatCAMGUI.py:574
-msgid "Polygon Intersection\tE"
-msgstr "Polygon Intersection\tE"
-
-#: flatcamGUI/FlatCAMGUI.py:576
-msgid "Polygon Subtraction\tS"
-msgstr "Polygon Subtraction\tS"
-
-#: flatcamGUI/FlatCAMGUI.py:580
-msgid "Cut Path\tX"
-msgstr "Cut Path\tX"
-
-#: flatcamGUI/FlatCAMGUI.py:584
-msgid "Copy Geom\tC"
-msgstr "Copy Geom\tC"
-
-#: flatcamGUI/FlatCAMGUI.py:586
-msgid "Delete Shape\tDEL"
-msgstr "Delete Shape\tDEL"
-
-#: flatcamGUI/FlatCAMGUI.py:590 flatcamGUI/FlatCAMGUI.py:677
-msgid "Move\tM"
-msgstr "Move\tM"
-
-#: flatcamGUI/FlatCAMGUI.py:592
-msgid "Buffer Tool\tB"
-msgstr "Buffer Tool\tB"
-
-#: flatcamGUI/FlatCAMGUI.py:595
-msgid "Paint Tool\tI"
-msgstr "Paint Tool\tI"
-
-#: flatcamGUI/FlatCAMGUI.py:598
-msgid "Transform Tool\tAlt+R"
-msgstr "Transform Tool\tAlt+R"
-
-#: flatcamGUI/FlatCAMGUI.py:602
-msgid "Toggle Corner Snap\tK"
-msgstr "Toggle Corner Snap\tK"
-
-#: flatcamGUI/FlatCAMGUI.py:608
-msgid ">Excellon Editor<"
-msgstr ">Excellon Editor<"
-
-#: flatcamGUI/FlatCAMGUI.py:612
-msgid "Add Drill Array\tA"
-msgstr "Add Drill Array\tA"
-
-#: flatcamGUI/FlatCAMGUI.py:614
-msgid "Add Drill\tD"
-msgstr "Add Drill\tD"
-
-#: flatcamGUI/FlatCAMGUI.py:618
-msgid "Add Slot Array\tQ"
-msgstr "Add Slot Array\tQ"
-
-#: flatcamGUI/FlatCAMGUI.py:620
-msgid "Add Slot\tW"
-msgstr "Add Slot\tW"
-
-#: flatcamGUI/FlatCAMGUI.py:624
-msgid "Resize Drill(S)\tR"
-msgstr "Resize Drill(S)\tR"
-
-#: flatcamGUI/FlatCAMGUI.py:627 flatcamGUI/FlatCAMGUI.py:671
-msgid "Copy\tC"
-msgstr "Copy\tC"
-
-#: flatcamGUI/FlatCAMGUI.py:629 flatcamGUI/FlatCAMGUI.py:673
-msgid "Delete\tDEL"
-msgstr "Delete\tDEL"
-
-#: flatcamGUI/FlatCAMGUI.py:634
-msgid "Move Drill(s)\tM"
-msgstr "Move Drill(s)\tM"
-
-#: flatcamGUI/FlatCAMGUI.py:639
-msgid ">Gerber Editor<"
-msgstr ">Gerber Editor<"
-
-#: flatcamGUI/FlatCAMGUI.py:643
-msgid "Add Pad\tP"
-msgstr "Add Pad\tP"
-
-#: flatcamGUI/FlatCAMGUI.py:645
-msgid "Add Pad Array\tA"
-msgstr "Add Pad Array\tA"
-
-#: flatcamGUI/FlatCAMGUI.py:647
-msgid "Add Track\tT"
-msgstr "Add Track\tT"
-
-#: flatcamGUI/FlatCAMGUI.py:649
-msgid "Add Region\tN"
-msgstr "Add Region\tN"
-
-#: flatcamGUI/FlatCAMGUI.py:653
-msgid "Poligonize\tAlt+N"
-msgstr "Poligonize\tAlt+N"
-
-#: flatcamGUI/FlatCAMGUI.py:655
-msgid "Add SemiDisc\tE"
-msgstr "Add SemiDisc\tE"
-
-#: flatcamGUI/FlatCAMGUI.py:657
-msgid "Add Disc\tD"
-msgstr "Add Disc\tD"
-
-#: flatcamGUI/FlatCAMGUI.py:659
-msgid "Buffer\tB"
-msgstr "Buffer\tB"
-
-#: flatcamGUI/FlatCAMGUI.py:661
-msgid "Scale\tS"
-msgstr "Scale\tS"
-
-#: flatcamGUI/FlatCAMGUI.py:663
-msgid "Mark Area\tAlt+A"
-msgstr "Mark Area\tAlt+A"
-
-#: flatcamGUI/FlatCAMGUI.py:665
-msgid "Eraser\tCtrl+E"
-msgstr "Eraser\tCtrl+E"
-
-#: flatcamGUI/FlatCAMGUI.py:667
-msgid "Transform\tAlt+R"
-msgstr "Transform\tAlt+R"
-
-#: flatcamGUI/FlatCAMGUI.py:694
-msgid "Enable Plot"
-msgstr "Enable Plot"
-
-#: flatcamGUI/FlatCAMGUI.py:696
-msgid "Disable Plot"
-msgstr "Disable Plot"
-
-#: flatcamGUI/FlatCAMGUI.py:700
-msgid "Set Color"
-msgstr "Set Color"
-
-#: flatcamGUI/FlatCAMGUI.py:742
-msgid "Generate CNC"
-msgstr "Generate CNC"
-
-#: flatcamGUI/FlatCAMGUI.py:744
-msgid "View Source"
-msgstr "View Source"
-
-#: flatcamGUI/FlatCAMGUI.py:749 flatcamGUI/FlatCAMGUI.py:863
-#: flatcamGUI/FlatCAMGUI.py:1072 flatcamGUI/FlatCAMGUI.py:2138
-#: flatcamGUI/FlatCAMGUI.py:2282 flatcamGUI/FlatCAMGUI.py:2572
-#: flatcamGUI/FlatCAMGUI.py:2775 flatcamGUI/ObjectUI.py:1617
-#: flatcamObjects/FlatCAMGeometry.py:502 flatcamTools/ToolPanelize.py:540
-#: flatcamTools/ToolPanelize.py:567 flatcamTools/ToolPanelize.py:660
-#: flatcamTools/ToolPanelize.py:689 flatcamTools/ToolPanelize.py:751
-msgid "Copy"
-msgstr "Copy"
-
-#: flatcamGUI/FlatCAMGUI.py:757 flatcamGUI/FlatCAMGUI.py:2295
-#: flatcamTools/ToolProperties.py:31
-msgid "Properties"
-msgstr "Properties"
-
-#: flatcamGUI/FlatCAMGUI.py:786
-msgid "File Toolbar"
-msgstr "File Toolbar"
-
-#: flatcamGUI/FlatCAMGUI.py:790
-msgid "Edit Toolbar"
-msgstr "Edit Toolbar"
-
-#: flatcamGUI/FlatCAMGUI.py:794
-msgid "View Toolbar"
-msgstr "View Toolbar"
-
-#: flatcamGUI/FlatCAMGUI.py:798
-msgid "Shell Toolbar"
-msgstr "Shell Toolbar"
-
-#: flatcamGUI/FlatCAMGUI.py:802
-msgid "Tools Toolbar"
-msgstr "Tools Toolbar"
-
-#: flatcamGUI/FlatCAMGUI.py:806
-msgid "Excellon Editor Toolbar"
-msgstr "Excellon Editor Toolbar"
-
-#: flatcamGUI/FlatCAMGUI.py:812
-msgid "Geometry Editor Toolbar"
-msgstr "Geometry Editor Toolbar"
-
-#: flatcamGUI/FlatCAMGUI.py:816
-msgid "Gerber Editor Toolbar"
-msgstr "Gerber Editor Toolbar"
-
-#: flatcamGUI/FlatCAMGUI.py:820
-msgid "Grid Toolbar"
-msgstr "Grid Toolbar"
-
-#: flatcamGUI/FlatCAMGUI.py:841 flatcamGUI/FlatCAMGUI.py:2549
-msgid "Open project"
-msgstr "Open project"
-
-#: flatcamGUI/FlatCAMGUI.py:843 flatcamGUI/FlatCAMGUI.py:2551
-msgid "Save project"
-msgstr "Save project"
-
-#: flatcamGUI/FlatCAMGUI.py:849 flatcamGUI/FlatCAMGUI.py:2557
-msgid "New Blank Geometry"
-msgstr "New Blank Geometry"
-
-#: flatcamGUI/FlatCAMGUI.py:851 flatcamGUI/FlatCAMGUI.py:2559
-msgid "New Blank Gerber"
-msgstr "New Blank Gerber"
-
-#: flatcamGUI/FlatCAMGUI.py:853 flatcamGUI/FlatCAMGUI.py:2561
-msgid "New Blank Excellon"
-msgstr "New Blank Excellon"
-
-#: flatcamGUI/FlatCAMGUI.py:858 flatcamGUI/FlatCAMGUI.py:2567
-msgid "Save Object and close the Editor"
-msgstr "Save Object and close the Editor"
-
-#: flatcamGUI/FlatCAMGUI.py:865 flatcamGUI/FlatCAMGUI.py:2574
-msgid "&Delete"
-msgstr "&Delete"
-
-#: flatcamGUI/FlatCAMGUI.py:868 flatcamGUI/FlatCAMGUI.py:1729
-#: flatcamGUI/FlatCAMGUI.py:1935 flatcamGUI/FlatCAMGUI.py:2577
-#: flatcamTools/ToolDistance.py:35 flatcamTools/ToolDistance.py:195
-msgid "Distance Tool"
-msgstr "Distance Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:870 flatcamGUI/FlatCAMGUI.py:2579
-msgid "Distance Min Tool"
-msgstr "Distance Min Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:872 flatcamGUI/FlatCAMGUI.py:1722
-#: flatcamGUI/FlatCAMGUI.py:2581
-msgid "Set Origin"
-msgstr "Set Origin"
-
-#: flatcamGUI/FlatCAMGUI.py:874
-msgid "Move to Origin"
-msgstr "Move to Origin"
-
-#: flatcamGUI/FlatCAMGUI.py:877 flatcamGUI/FlatCAMGUI.py:2583
-msgid "Jump to Location"
-msgstr "Jump to Location"
-
-#: flatcamGUI/FlatCAMGUI.py:879 flatcamGUI/FlatCAMGUI.py:1734
-#: flatcamGUI/FlatCAMGUI.py:2585
-msgid "Locate in Object"
-msgstr "Locate in Object"
-
-#: flatcamGUI/FlatCAMGUI.py:885 flatcamGUI/FlatCAMGUI.py:2591
-msgid "&Replot"
-msgstr "&Replot"
-
-#: flatcamGUI/FlatCAMGUI.py:887 flatcamGUI/FlatCAMGUI.py:2593
-msgid "&Clear plot"
-msgstr "&Clear plot"
-
-#: flatcamGUI/FlatCAMGUI.py:889 flatcamGUI/FlatCAMGUI.py:1725
-#: flatcamGUI/FlatCAMGUI.py:2595
-msgid "Zoom In"
-msgstr "Zoom In"
-
-#: flatcamGUI/FlatCAMGUI.py:891 flatcamGUI/FlatCAMGUI.py:1725
-#: flatcamGUI/FlatCAMGUI.py:2597
-msgid "Zoom Out"
-msgstr "Zoom Out"
-
-#: flatcamGUI/FlatCAMGUI.py:893 flatcamGUI/FlatCAMGUI.py:1724
-#: flatcamGUI/FlatCAMGUI.py:2185 flatcamGUI/FlatCAMGUI.py:2599
-msgid "Zoom Fit"
-msgstr "Zoom Fit"
-
-#: flatcamGUI/FlatCAMGUI.py:901 flatcamGUI/FlatCAMGUI.py:2605
-msgid "&Command Line"
-msgstr "&Command Line"
-
-#: flatcamGUI/FlatCAMGUI.py:913 flatcamGUI/FlatCAMGUI.py:2617
-msgid "2Sided Tool"
-msgstr "2Sided Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:915 flatcamGUI/FlatCAMGUI.py:1740
-#: flatcamGUI/FlatCAMGUI.py:2619
-msgid "Align Objects Tool"
-msgstr "Align Objects Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:917 flatcamGUI/FlatCAMGUI.py:1741
-#: flatcamGUI/FlatCAMGUI.py:2621 flatcamTools/ToolExtractDrills.py:393
-msgid "Extract Drills Tool"
-msgstr "Extract Drills Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:920 flatcamGUI/ObjectUI.py:596
-#: flatcamTools/ToolCutOut.py:440
-msgid "Cutout Tool"
-msgstr "Cutout Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:922 flatcamGUI/FlatCAMGUI.py:2626
-#: flatcamGUI/ObjectUI.py:574 flatcamGUI/ObjectUI.py:2157
-#: flatcamTools/ToolNCC.py:974
-msgid "NCC Tool"
-msgstr "NCC Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:928 flatcamGUI/FlatCAMGUI.py:2632
-msgid "Panel Tool"
-msgstr "Panel Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:930 flatcamGUI/FlatCAMGUI.py:2634
-#: flatcamTools/ToolFilm.py:586
-msgid "Film Tool"
-msgstr "Film Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:932 flatcamGUI/FlatCAMGUI.py:2636
-#: flatcamTools/ToolSolderPaste.py:553
-msgid "SolderPaste Tool"
-msgstr "SolderPaste Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:934 flatcamGUI/FlatCAMGUI.py:2638
-#: flatcamTools/ToolSub.py:35
-msgid "Subtract Tool"
-msgstr "Subtract Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:936 flatcamGUI/FlatCAMGUI.py:2640
-#: flatcamTools/ToolRulesCheck.py:616
-msgid "Rules Tool"
-msgstr "Rules Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:938 flatcamGUI/FlatCAMGUI.py:1743
-#: flatcamGUI/FlatCAMGUI.py:2642 flatcamTools/ToolOptimal.py:33
-#: flatcamTools/ToolOptimal.py:307
-msgid "Optimal Tool"
-msgstr "Optimal Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:943 flatcamGUI/FlatCAMGUI.py:1740
-#: flatcamGUI/FlatCAMGUI.py:2647
-msgid "Calculators Tool"
-msgstr "Calculators Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:947 flatcamGUI/FlatCAMGUI.py:1744
-#: flatcamGUI/FlatCAMGUI.py:2651 flatcamTools/ToolQRCode.py:43
-#: flatcamTools/ToolQRCode.py:382
-msgid "QRCode Tool"
-msgstr "QRCode Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:949 flatcamGUI/FlatCAMGUI.py:2653
-#: flatcamTools/ToolCopperThieving.py:39 flatcamTools/ToolCopperThieving.py:568
-msgid "Copper Thieving Tool"
-msgstr "Copper Thieving Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:952 flatcamGUI/FlatCAMGUI.py:1741
-#: flatcamGUI/FlatCAMGUI.py:2656 flatcamTools/ToolFiducials.py:33
-#: flatcamTools/ToolFiducials.py:395
-msgid "Fiducials Tool"
-msgstr "Fiducials Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:954 flatcamGUI/FlatCAMGUI.py:2658
-#: flatcamTools/ToolCalibration.py:37 flatcamTools/ToolCalibration.py:759
-msgid "Calibration Tool"
-msgstr "Calibration Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:956 flatcamGUI/FlatCAMGUI.py:1741
-#: flatcamGUI/FlatCAMGUI.py:2660
-msgid "Punch Gerber Tool"
-msgstr "Punch Gerber Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:958 flatcamGUI/FlatCAMGUI.py:2662
-#: flatcamTools/ToolInvertGerber.py:31
-msgid "Invert Gerber Tool"
-msgstr "Invert Gerber Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:964 flatcamGUI/FlatCAMGUI.py:990
-#: flatcamGUI/FlatCAMGUI.py:1042 flatcamGUI/FlatCAMGUI.py:2668
-#: flatcamGUI/FlatCAMGUI.py:2746
-msgid "Select"
-msgstr "Select"
-
-#: flatcamGUI/FlatCAMGUI.py:966 flatcamGUI/FlatCAMGUI.py:2670
-msgid "Add Drill Hole"
-msgstr "Add Drill Hole"
-
-#: flatcamGUI/FlatCAMGUI.py:968 flatcamGUI/FlatCAMGUI.py:2672
-msgid "Add Drill Hole Array"
-msgstr "Add Drill Hole Array"
-
-#: flatcamGUI/FlatCAMGUI.py:970 flatcamGUI/FlatCAMGUI.py:2020
-#: flatcamGUI/FlatCAMGUI.py:2273 flatcamGUI/FlatCAMGUI.py:2676
-msgid "Add Slot"
-msgstr "Add Slot"
-
-#: flatcamGUI/FlatCAMGUI.py:972 flatcamGUI/FlatCAMGUI.py:2019
-#: flatcamGUI/FlatCAMGUI.py:2275 flatcamGUI/FlatCAMGUI.py:2678
-msgid "Add Slot Array"
-msgstr "Add Slot Array"
-
-#: flatcamGUI/FlatCAMGUI.py:974 flatcamGUI/FlatCAMGUI.py:2278
-#: flatcamGUI/FlatCAMGUI.py:2674
-msgid "Resize Drill"
-msgstr "Resize Drill"
-
-#: flatcamGUI/FlatCAMGUI.py:978 flatcamGUI/FlatCAMGUI.py:2682
-msgid "Copy Drill"
-msgstr "Copy Drill"
-
-#: flatcamGUI/FlatCAMGUI.py:980 flatcamGUI/FlatCAMGUI.py:2684
-msgid "Delete Drill"
-msgstr "Delete Drill"
-
-#: flatcamGUI/FlatCAMGUI.py:984 flatcamGUI/FlatCAMGUI.py:2688
-msgid "Move Drill"
-msgstr "Move Drill"
-
-#: flatcamGUI/FlatCAMGUI.py:992 flatcamGUI/FlatCAMGUI.py:2696
-msgid "Add Circle"
-msgstr "Add Circle"
-
-#: flatcamGUI/FlatCAMGUI.py:994 flatcamGUI/FlatCAMGUI.py:2698
-msgid "Add Arc"
-msgstr "Add Arc"
-
-#: flatcamGUI/FlatCAMGUI.py:996 flatcamGUI/FlatCAMGUI.py:2700
-msgid "Add Rectangle"
-msgstr "Add Rectangle"
-
-#: flatcamGUI/FlatCAMGUI.py:1000 flatcamGUI/FlatCAMGUI.py:2704
-msgid "Add Path"
-msgstr "Add Path"
-
-#: flatcamGUI/FlatCAMGUI.py:1002 flatcamGUI/FlatCAMGUI.py:2706
-msgid "Add Polygon"
-msgstr "Add Polygon"
-
-#: flatcamGUI/FlatCAMGUI.py:1005 flatcamGUI/FlatCAMGUI.py:2709
-msgid "Add Text"
-msgstr "Add Text"
-
-#: flatcamGUI/FlatCAMGUI.py:1007 flatcamGUI/FlatCAMGUI.py:2711
-msgid "Add Buffer"
-msgstr "Add Buffer"
-
-#: flatcamGUI/FlatCAMGUI.py:1009 flatcamGUI/FlatCAMGUI.py:2713
-msgid "Paint Shape"
-msgstr "Paint Shape"
-
-#: flatcamGUI/FlatCAMGUI.py:1011 flatcamGUI/FlatCAMGUI.py:1068
-#: flatcamGUI/FlatCAMGUI.py:2214 flatcamGUI/FlatCAMGUI.py:2259
-#: flatcamGUI/FlatCAMGUI.py:2715 flatcamGUI/FlatCAMGUI.py:2771
-msgid "Eraser"
-msgstr "Eraser"
-
-#: flatcamGUI/FlatCAMGUI.py:1015 flatcamGUI/FlatCAMGUI.py:2719
-msgid "Polygon Union"
-msgstr "Polygon Union"
-
-#: flatcamGUI/FlatCAMGUI.py:1017 flatcamGUI/FlatCAMGUI.py:2721
-msgid "Polygon Explode"
-msgstr "Polygon Explode"
-
-#: flatcamGUI/FlatCAMGUI.py:1020 flatcamGUI/FlatCAMGUI.py:2724
-msgid "Polygon Intersection"
-msgstr "Polygon Intersection"
-
-#: flatcamGUI/FlatCAMGUI.py:1022 flatcamGUI/FlatCAMGUI.py:2726
-msgid "Polygon Subtraction"
-msgstr "Polygon Subtraction"
-
-#: flatcamGUI/FlatCAMGUI.py:1026 flatcamGUI/FlatCAMGUI.py:2730
-msgid "Cut Path"
-msgstr "Cut Path"
-
-#: flatcamGUI/FlatCAMGUI.py:1028
-msgid "Copy Shape(s)"
-msgstr "Copy Shape(s)"
-
-#: flatcamGUI/FlatCAMGUI.py:1031
-msgid "Delete Shape '-'"
-msgstr "Delete Shape '-'"
-
-#: flatcamGUI/FlatCAMGUI.py:1033 flatcamGUI/FlatCAMGUI.py:1076
-#: flatcamGUI/FlatCAMGUI.py:2226 flatcamGUI/FlatCAMGUI.py:2263
-#: flatcamGUI/FlatCAMGUI.py:2736 flatcamGUI/FlatCAMGUI.py:2779
-#: flatcamGUI/ObjectUI.py:109
-msgid "Transformations"
-msgstr "Transformations"
-
-#: flatcamGUI/FlatCAMGUI.py:1036
-msgid "Move Objects "
-msgstr "Move Objects "
-
-#: flatcamGUI/FlatCAMGUI.py:1044 flatcamGUI/FlatCAMGUI.py:2139
-#: flatcamGUI/FlatCAMGUI.py:2748
-msgid "Add Pad"
-msgstr "Add Pad"
-
-#: flatcamGUI/FlatCAMGUI.py:1048 flatcamGUI/FlatCAMGUI.py:2140
-#: flatcamGUI/FlatCAMGUI.py:2752
-msgid "Add Track"
-msgstr "Add Track"
-
-#: flatcamGUI/FlatCAMGUI.py:1050 flatcamGUI/FlatCAMGUI.py:2139
-#: flatcamGUI/FlatCAMGUI.py:2754
-msgid "Add Region"
-msgstr "Add Region"
-
-#: flatcamGUI/FlatCAMGUI.py:1052 flatcamGUI/FlatCAMGUI.py:2245
-#: flatcamGUI/FlatCAMGUI.py:2756
-msgid "Poligonize"
-msgstr "Poligonize"
-
-#: flatcamGUI/FlatCAMGUI.py:1055 flatcamGUI/FlatCAMGUI.py:2247
-#: flatcamGUI/FlatCAMGUI.py:2759
-msgid "SemiDisc"
-msgstr "SemiDisc"
-
-#: flatcamGUI/FlatCAMGUI.py:1057 flatcamGUI/FlatCAMGUI.py:2249
-#: flatcamGUI/FlatCAMGUI.py:2761
-msgid "Disc"
-msgstr "Disc"
-
-#: flatcamGUI/FlatCAMGUI.py:1065 flatcamGUI/FlatCAMGUI.py:2257
-#: flatcamGUI/FlatCAMGUI.py:2769
-msgid "Mark Area"
-msgstr "Mark Area"
-
-#: flatcamGUI/FlatCAMGUI.py:1079 flatcamGUI/FlatCAMGUI.py:2139
-#: flatcamGUI/FlatCAMGUI.py:2230 flatcamGUI/FlatCAMGUI.py:2293
-#: flatcamGUI/FlatCAMGUI.py:2782 flatcamTools/ToolMove.py:27
-msgid "Move"
-msgstr "Move"
-
-#: flatcamGUI/FlatCAMGUI.py:1087 flatcamGUI/FlatCAMGUI.py:2791
-msgid "Snap to grid"
-msgstr "Snap to grid"
-
-#: flatcamGUI/FlatCAMGUI.py:1090 flatcamGUI/FlatCAMGUI.py:2794
-msgid "Grid X snapping distance"
-msgstr "Grid X snapping distance"
-
-#: flatcamGUI/FlatCAMGUI.py:1095 flatcamGUI/FlatCAMGUI.py:2799
-msgid "Grid Y snapping distance"
-msgstr "Grid Y snapping distance"
-
-#: flatcamGUI/FlatCAMGUI.py:1101 flatcamGUI/FlatCAMGUI.py:2805
-msgid ""
-"When active, value on Grid_X\n"
-"is copied to the Grid_Y value."
-msgstr ""
-"When active, value on Grid_X\n"
-"is copied to the Grid_Y value."
-
-#: flatcamGUI/FlatCAMGUI.py:1108 flatcamGUI/FlatCAMGUI.py:2812
-msgid "Snap to corner"
-msgstr "Snap to corner"
-
-#: flatcamGUI/FlatCAMGUI.py:1112 flatcamGUI/FlatCAMGUI.py:2816
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:78
-msgid "Max. magnet distance"
-msgstr "Max. magnet distance"
-
-#: flatcamGUI/FlatCAMGUI.py:1149
-msgid "Selected"
-msgstr "Selected"
-
-#: flatcamGUI/FlatCAMGUI.py:1177 flatcamGUI/FlatCAMGUI.py:1185
-msgid "Plot Area"
-msgstr "Plot Area"
-
-#: flatcamGUI/FlatCAMGUI.py:1212
-msgid "General"
-msgstr "General"
-
-#: flatcamGUI/FlatCAMGUI.py:1227 flatcamTools/ToolCopperThieving.py:74
-#: flatcamTools/ToolDblSided.py:64 flatcamTools/ToolExtractDrills.py:61
-#: flatcamTools/ToolInvertGerber.py:72 flatcamTools/ToolOptimal.py:71
-#: flatcamTools/ToolPunchGerber.py:64
-msgid "GERBER"
-msgstr "GERBER"
-
-#: flatcamGUI/FlatCAMGUI.py:1237 flatcamTools/ToolDblSided.py:92
-msgid "EXCELLON"
-msgstr "EXCELLON"
-
-#: flatcamGUI/FlatCAMGUI.py:1247 flatcamTools/ToolDblSided.py:120
-msgid "GEOMETRY"
-msgstr "GEOMETRY"
-
-#: flatcamGUI/FlatCAMGUI.py:1257
-msgid "CNC-JOB"
-msgstr "CNC-JOB"
-
-#: flatcamGUI/FlatCAMGUI.py:1266 flatcamGUI/ObjectUI.py:563
-#: flatcamGUI/ObjectUI.py:2132
-msgid "TOOLS"
-msgstr "TOOLS"
-
-#: flatcamGUI/FlatCAMGUI.py:1275
-msgid "TOOLS 2"
-msgstr "TOOLS 2"
-
-#: flatcamGUI/FlatCAMGUI.py:1285
-msgid "UTILITIES"
-msgstr "UTILITIES"
-
-#: flatcamGUI/FlatCAMGUI.py:1302
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:192
-msgid "Restore Defaults"
-msgstr "Restore Defaults"
-
-#: flatcamGUI/FlatCAMGUI.py:1305
-msgid ""
-"Restore the entire set of default values\n"
-"to the initial values loaded after first launch."
-msgstr ""
-"Restore the entire set of default values\n"
-"to the initial values loaded after first launch."
-
-#: flatcamGUI/FlatCAMGUI.py:1310
-msgid "Open Pref Folder"
-msgstr "Open Pref Folder"
-
-#: flatcamGUI/FlatCAMGUI.py:1313
-msgid "Open the folder where FlatCAM save the preferences files."
-msgstr "Open the folder where FlatCAM save the preferences files."
-
-#: flatcamGUI/FlatCAMGUI.py:1317 flatcamGUI/FlatCAMGUI.py:2517
-msgid "Clear GUI Settings"
-msgstr "Clear GUI Settings"
-
-#: flatcamGUI/FlatCAMGUI.py:1321
-msgid ""
-"Clear the GUI settings for FlatCAM,\n"
-"such as: layout, gui state, style, hdpi support etc."
-msgstr ""
-"Clear the GUI settings for FlatCAM,\n"
-"such as: layout, gui state, style, hdpi support etc."
-
-#: flatcamGUI/FlatCAMGUI.py:1332
-msgid "Apply"
-msgstr "Apply"
-
-#: flatcamGUI/FlatCAMGUI.py:1335
-msgid "Apply the current preferences without saving to a file."
-msgstr "Apply the current preferences without saving to a file."
-
-#: flatcamGUI/FlatCAMGUI.py:1342
-msgid ""
-"Save the current settings in the 'current_defaults' file\n"
-"which is the file storing the working default preferences."
-msgstr ""
-"Save the current settings in the 'current_defaults' file\n"
-"which is the file storing the working default preferences."
-
-#: flatcamGUI/FlatCAMGUI.py:1350
-msgid "Will not save the changes and will close the preferences window."
-msgstr "Will not save the changes and will close the preferences window."
-
-#: flatcamGUI/FlatCAMGUI.py:1719
-msgid "SHOW SHORTCUT LIST"
-msgstr "SHOW SHORTCUT LIST"
-
-#: flatcamGUI/FlatCAMGUI.py:1719
-msgid "Switch to Project Tab"
-msgstr "Switch to Project Tab"
-
-#: flatcamGUI/FlatCAMGUI.py:1719
-msgid "Switch to Selected Tab"
-msgstr "Switch to Selected Tab"
-
-#: flatcamGUI/FlatCAMGUI.py:1720
-msgid "Switch to Tool Tab"
-msgstr "Switch to Tool Tab"
-
-#: flatcamGUI/FlatCAMGUI.py:1721
-msgid "New Gerber"
-msgstr "New Gerber"
-
-#: flatcamGUI/FlatCAMGUI.py:1721
-msgid "Edit Object (if selected)"
-msgstr "Edit Object (if selected)"
-
-#: flatcamGUI/FlatCAMGUI.py:1721
-msgid "Jump to Coordinates"
-msgstr "Jump to Coordinates"
-
-#: flatcamGUI/FlatCAMGUI.py:1722
-msgid "New Excellon"
-msgstr "New Excellon"
-
-#: flatcamGUI/FlatCAMGUI.py:1722
-msgid "Move Obj"
-msgstr "Move Obj"
-
-#: flatcamGUI/FlatCAMGUI.py:1722
-msgid "New Geometry"
-msgstr "New Geometry"
-
-#: flatcamGUI/FlatCAMGUI.py:1722
-msgid "Change Units"
-msgstr "Change Units"
-
-#: flatcamGUI/FlatCAMGUI.py:1723
-msgid "Open Properties Tool"
-msgstr "Open Properties Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1723
-msgid "Rotate by 90 degree CW"
-msgstr "Rotate by 90 degree CW"
-
-#: flatcamGUI/FlatCAMGUI.py:1723
-msgid "Shell Toggle"
-msgstr "Shell Toggle"
-
-#: flatcamGUI/FlatCAMGUI.py:1724
-msgid ""
-"Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)"
-msgstr ""
-"Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)"
-
-#: flatcamGUI/FlatCAMGUI.py:1725
-msgid "Flip on X_axis"
-msgstr "Flip on X_axis"
-
-#: flatcamGUI/FlatCAMGUI.py:1725
-msgid "Flip on Y_axis"
-msgstr "Flip on Y_axis"
-
-#: flatcamGUI/FlatCAMGUI.py:1728
-msgid "Copy Obj"
-msgstr "Copy Obj"
-
-#: flatcamGUI/FlatCAMGUI.py:1728
-msgid "Open Tools Database"
-msgstr "Open Tools Database"
-
-#: flatcamGUI/FlatCAMGUI.py:1729
-msgid "Open Excellon File"
-msgstr "Open Excellon File"
-
-#: flatcamGUI/FlatCAMGUI.py:1729
-msgid "Open Gerber File"
-msgstr "Open Gerber File"
-
-#: flatcamGUI/FlatCAMGUI.py:1729
-msgid "New Project"
-msgstr "New Project"
-
-#: flatcamGUI/FlatCAMGUI.py:1730 flatcamTools/ToolPDF.py:42
-msgid "PDF Import Tool"
-msgstr "PDF Import Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1730
-msgid "Save Project"
-msgstr "Save Project"
-
-#: flatcamGUI/FlatCAMGUI.py:1730
-msgid "Toggle Plot Area"
-msgstr "Toggle Plot Area"
-
-#: flatcamGUI/FlatCAMGUI.py:1733
-msgid "Copy Obj_Name"
-msgstr "Copy Obj_Name"
-
-#: flatcamGUI/FlatCAMGUI.py:1734
-msgid "Toggle Code Editor"
-msgstr "Toggle Code Editor"
-
-#: flatcamGUI/FlatCAMGUI.py:1734
-msgid "Toggle the axis"
-msgstr "Toggle the axis"
-
-#: flatcamGUI/FlatCAMGUI.py:1734 flatcamGUI/FlatCAMGUI.py:1933
-#: flatcamGUI/FlatCAMGUI.py:2020 flatcamGUI/FlatCAMGUI.py:2142
-msgid "Distance Minimum Tool"
-msgstr "Distance Minimum Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1735
-msgid "Open Preferences Window"
-msgstr "Open Preferences Window"
-
-#: flatcamGUI/FlatCAMGUI.py:1736
-msgid "Rotate by 90 degree CCW"
-msgstr "Rotate by 90 degree CCW"
-
-#: flatcamGUI/FlatCAMGUI.py:1736
-msgid "Run a Script"
-msgstr "Run a Script"
-
-#: flatcamGUI/FlatCAMGUI.py:1736
-msgid "Toggle the workspace"
-msgstr "Toggle the workspace"
-
-#: flatcamGUI/FlatCAMGUI.py:1736
-msgid "Skew on X axis"
-msgstr "Skew on X axis"
-
-#: flatcamGUI/FlatCAMGUI.py:1737
-msgid "Skew on Y axis"
-msgstr "Skew on Y axis"
-
-#: flatcamGUI/FlatCAMGUI.py:1740
-msgid "2-Sided PCB Tool"
-msgstr "2-Sided PCB Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1740
-msgid "Transformations Tool"
-msgstr "Transformations Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1742
-msgid "Solder Paste Dispensing Tool"
-msgstr "Solder Paste Dispensing Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1743
-msgid "Film PCB Tool"
-msgstr "Film PCB Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1743
-msgid "Non-Copper Clearing Tool"
-msgstr "Non-Copper Clearing Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1744
-msgid "Paint Area Tool"
-msgstr "Paint Area Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1744
-msgid "Rules Check Tool"
-msgstr "Rules Check Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1745
-msgid "View File Source"
-msgstr "View File Source"
-
-#: flatcamGUI/FlatCAMGUI.py:1746
-msgid "Cutout PCB Tool"
-msgstr "Cutout PCB Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1746
-msgid "Enable all Plots"
-msgstr "Enable all Plots"
-
-#: flatcamGUI/FlatCAMGUI.py:1746
-msgid "Disable all Plots"
-msgstr "Disable all Plots"
-
-#: flatcamGUI/FlatCAMGUI.py:1746
-msgid "Disable Non-selected Plots"
-msgstr "Disable Non-selected Plots"
-
-#: flatcamGUI/FlatCAMGUI.py:1747
-msgid "Toggle Full Screen"
-msgstr "Toggle Full Screen"
-
-#: flatcamGUI/FlatCAMGUI.py:1750
-msgid "Abort current task (gracefully)"
-msgstr "Abort current task (gracefully)"
-
-#: flatcamGUI/FlatCAMGUI.py:1753
-msgid "Save Project As"
-msgstr "Save Project As"
-
-#: flatcamGUI/FlatCAMGUI.py:1754
-msgid ""
-"Paste Special. Will convert a Windows path style to the one required in Tcl "
-"Shell"
-msgstr ""
-"Paste Special. Will convert a Windows path style to the one required in Tcl "
-"Shell"
-
-#: flatcamGUI/FlatCAMGUI.py:1757
-msgid "Open Online Manual"
-msgstr "Open Online Manual"
-
-#: flatcamGUI/FlatCAMGUI.py:1758
-msgid "Open Online Tutorials"
-msgstr "Open Online Tutorials"
-
-#: flatcamGUI/FlatCAMGUI.py:1758
-msgid "Refresh Plots"
-msgstr "Refresh Plots"
-
-#: flatcamGUI/FlatCAMGUI.py:1758 flatcamTools/ToolSolderPaste.py:509
-msgid "Delete Object"
-msgstr "Delete Object"
-
-#: flatcamGUI/FlatCAMGUI.py:1758
-msgid "Alternate: Delete Tool"
-msgstr "Alternate: Delete Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1759
-msgid "(left to Key_1)Toggle Notebook Area (Left Side)"
-msgstr "(left to Key_1)Toggle Notebook Area (Left Side)"
-
-#: flatcamGUI/FlatCAMGUI.py:1759
-msgid "En(Dis)able Obj Plot"
-msgstr "En(Dis)able Obj Plot"
-
-#: flatcamGUI/FlatCAMGUI.py:1760
-msgid "Deselects all objects"
-msgstr "Deselects all objects"
-
-#: flatcamGUI/FlatCAMGUI.py:1774
-msgid "Editor Shortcut list"
-msgstr "Editor Shortcut list"
-
-#: flatcamGUI/FlatCAMGUI.py:1928
-msgid "GEOMETRY EDITOR"
-msgstr "GEOMETRY EDITOR"
-
-#: flatcamGUI/FlatCAMGUI.py:1928
-msgid "Draw an Arc"
-msgstr "Draw an Arc"
-
-#: flatcamGUI/FlatCAMGUI.py:1928
-msgid "Copy Geo Item"
-msgstr "Copy Geo Item"
-
-#: flatcamGUI/FlatCAMGUI.py:1929
-msgid "Within Add Arc will toogle the ARC direction: CW or CCW"
-msgstr "Within Add Arc will toogle the ARC direction: CW or CCW"
-
-#: flatcamGUI/FlatCAMGUI.py:1929
-msgid "Polygon Intersection Tool"
-msgstr "Polygon Intersection Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1930
-msgid "Geo Paint Tool"
-msgstr "Geo Paint Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1930 flatcamGUI/FlatCAMGUI.py:2019
-#: flatcamGUI/FlatCAMGUI.py:2139
-msgid "Jump to Location (x, y)"
-msgstr "Jump to Location (x, y)"
-
-#: flatcamGUI/FlatCAMGUI.py:1930
-msgid "Toggle Corner Snap"
-msgstr "Toggle Corner Snap"
-
-#: flatcamGUI/FlatCAMGUI.py:1930
-msgid "Move Geo Item"
-msgstr "Move Geo Item"
-
-#: flatcamGUI/FlatCAMGUI.py:1931
-msgid "Within Add Arc will cycle through the ARC modes"
-msgstr "Within Add Arc will cycle through the ARC modes"
-
-#: flatcamGUI/FlatCAMGUI.py:1931
-msgid "Draw a Polygon"
-msgstr "Draw a Polygon"
-
-#: flatcamGUI/FlatCAMGUI.py:1931
-msgid "Draw a Circle"
-msgstr "Draw a Circle"
-
-#: flatcamGUI/FlatCAMGUI.py:1932
-msgid "Draw a Path"
-msgstr "Draw a Path"
-
-#: flatcamGUI/FlatCAMGUI.py:1932
-msgid "Draw Rectangle"
-msgstr "Draw Rectangle"
-
-#: flatcamGUI/FlatCAMGUI.py:1932
-msgid "Polygon Subtraction Tool"
-msgstr "Polygon Subtraction Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1932
-msgid "Add Text Tool"
-msgstr "Add Text Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1933
-msgid "Polygon Union Tool"
-msgstr "Polygon Union Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1933
-msgid "Flip shape on X axis"
-msgstr "Flip shape on X axis"
-
-#: flatcamGUI/FlatCAMGUI.py:1933
-msgid "Flip shape on Y axis"
-msgstr "Flip shape on Y axis"
-
-#: flatcamGUI/FlatCAMGUI.py:1934
-msgid "Skew shape on X axis"
-msgstr "Skew shape on X axis"
-
-#: flatcamGUI/FlatCAMGUI.py:1934
-msgid "Skew shape on Y axis"
-msgstr "Skew shape on Y axis"
-
-#: flatcamGUI/FlatCAMGUI.py:1934
-msgid "Editor Transformation Tool"
-msgstr "Editor Transformation Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1935
-msgid "Offset shape on X axis"
-msgstr "Offset shape on X axis"
-
-#: flatcamGUI/FlatCAMGUI.py:1935
-msgid "Offset shape on Y axis"
-msgstr "Offset shape on Y axis"
-
-#: flatcamGUI/FlatCAMGUI.py:1936 flatcamGUI/FlatCAMGUI.py:2022
-#: flatcamGUI/FlatCAMGUI.py:2144
-msgid "Save Object and Exit Editor"
-msgstr "Save Object and Exit Editor"
-
-#: flatcamGUI/FlatCAMGUI.py:1936
-msgid "Polygon Cut Tool"
-msgstr "Polygon Cut Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1937
-msgid "Rotate Geometry"
-msgstr "Rotate Geometry"
-
-#: flatcamGUI/FlatCAMGUI.py:1937
-msgid "Finish drawing for certain tools"
-msgstr "Finish drawing for certain tools"
-
-#: flatcamGUI/FlatCAMGUI.py:1937 flatcamGUI/FlatCAMGUI.py:2022
-#: flatcamGUI/FlatCAMGUI.py:2142
-msgid "Abort and return to Select"
-msgstr "Abort and return to Select"
-
-#: flatcamGUI/FlatCAMGUI.py:1938 flatcamGUI/FlatCAMGUI.py:2734
-msgid "Delete Shape"
-msgstr "Delete Shape"
-
-#: flatcamGUI/FlatCAMGUI.py:2018
-msgid "EXCELLON EDITOR"
-msgstr "EXCELLON EDITOR"
-
-#: flatcamGUI/FlatCAMGUI.py:2018
-msgid "Copy Drill(s)"
-msgstr "Copy Drill(s)"
-
-#: flatcamGUI/FlatCAMGUI.py:2018 flatcamGUI/FlatCAMGUI.py:2268
-msgid "Add Drill"
-msgstr "Add Drill"
-
-#: flatcamGUI/FlatCAMGUI.py:2019
-msgid "Move Drill(s)"
-msgstr "Move Drill(s)"
-
-#: flatcamGUI/FlatCAMGUI.py:2020
-msgid "Add a new Tool"
-msgstr "Add a new Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:2021
-msgid "Delete Drill(s)"
-msgstr "Delete Drill(s)"
-
-#: flatcamGUI/FlatCAMGUI.py:2021
-msgid "Alternate: Delete Tool(s)"
-msgstr "Alternate: Delete Tool(s)"
-
-#: flatcamGUI/FlatCAMGUI.py:2138
-msgid "GERBER EDITOR"
-msgstr "GERBER EDITOR"
-
-#: flatcamGUI/FlatCAMGUI.py:2138
-msgid "Add Disc"
-msgstr "Add Disc"
-
-#: flatcamGUI/FlatCAMGUI.py:2138
-msgid "Add SemiDisc"
-msgstr "Add SemiDisc"
-
-#: flatcamGUI/FlatCAMGUI.py:2140
-msgid "Within Track & Region Tools will cycle in REVERSE the bend modes"
-msgstr "Within Track & Region Tools will cycle in REVERSE the bend modes"
-
-#: flatcamGUI/FlatCAMGUI.py:2141
-msgid "Within Track & Region Tools will cycle FORWARD the bend modes"
-msgstr "Within Track & Region Tools will cycle FORWARD the bend modes"
-
-#: flatcamGUI/FlatCAMGUI.py:2142
-msgid "Alternate: Delete Apertures"
-msgstr "Alternate: Delete Apertures"
-
-#: flatcamGUI/FlatCAMGUI.py:2143
-msgid "Eraser Tool"
-msgstr "Eraser Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:2144
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:220
-msgid "Mark Area Tool"
-msgstr "Mark Area Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:2144
-msgid "Poligonize Tool"
-msgstr "Poligonize Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:2144
-msgid "Transformation Tool"
-msgstr "Transformation Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:2161
-msgid "Toggle Visibility"
-msgstr "Toggle Visibility"
-
-#: flatcamGUI/FlatCAMGUI.py:2167
-msgid "New"
-msgstr "New"
-
-#: flatcamGUI/FlatCAMGUI.py:2169 flatcamGUI/ObjectUI.py:450
-#: flatcamObjects/FlatCAMGerber.py:239 flatcamObjects/FlatCAMGerber.py:327
-#: flatcamTools/ToolCalibration.py:631 flatcamTools/ToolCalibration.py:648
-#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144
-#: flatcamTools/ToolCopperThieving.py:158
-#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolCutOut.py:92
-#: flatcamTools/ToolDblSided.py:226 flatcamTools/ToolFilm.py:69
-#: flatcamTools/ToolFilm.py:102 flatcamTools/ToolFilm.py:549
-#: flatcamTools/ToolFilm.py:557 flatcamTools/ToolImage.py:49
-#: flatcamTools/ToolImage.py:271 flatcamTools/ToolNCC.py:95
-#: flatcamTools/ToolNCC.py:558 flatcamTools/ToolNCC.py:1300
-#: flatcamTools/ToolPaint.py:502 flatcamTools/ToolPaint.py:706
-#: flatcamTools/ToolPanelize.py:118 flatcamTools/ToolPanelize.py:374
-#: flatcamTools/ToolPanelize.py:391
-msgid "Geometry"
-msgstr "Geometry"
-
-#: flatcamGUI/FlatCAMGUI.py:2173
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:99
-#: flatcamTools/ToolAlignObjects.py:74 flatcamTools/ToolAlignObjects.py:110
-#: flatcamTools/ToolCalibration.py:197 flatcamTools/ToolCalibration.py:631
-#: flatcamTools/ToolCalibration.py:648 flatcamTools/ToolCalibration.py:807
-#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144
-#: flatcamTools/ToolCopperThieving.py:158
-#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolDblSided.py:225
-#: flatcamTools/ToolFilm.py:359 flatcamTools/ToolNCC.py:558
-#: flatcamTools/ToolNCC.py:1300 flatcamTools/ToolPaint.py:502
-#: flatcamTools/ToolPaint.py:706 flatcamTools/ToolPanelize.py:374
-#: flatcamTools/ToolPunchGerber.py:149 flatcamTools/ToolPunchGerber.py:164
-msgid "Excellon"
-msgstr "Excellon"
-
-#: flatcamGUI/FlatCAMGUI.py:2180
-msgid "Grids"
-msgstr "Grids"
-
-#: flatcamGUI/FlatCAMGUI.py:2187
-msgid "Clear Plot"
-msgstr "Clear Plot"
-
-#: flatcamGUI/FlatCAMGUI.py:2189
-msgid "Replot"
-msgstr "Replot"
-
-#: flatcamGUI/FlatCAMGUI.py:2193
-msgid "Geo Editor"
-msgstr "Geo Editor"
-
-#: flatcamGUI/FlatCAMGUI.py:2195
-msgid "Path"
-msgstr "Path"
-
-#: flatcamGUI/FlatCAMGUI.py:2197
-msgid "Rectangle"
-msgstr "Rectangle"
-
-#: flatcamGUI/FlatCAMGUI.py:2200
-msgid "Circle"
-msgstr "Circle"
-
-#: flatcamGUI/FlatCAMGUI.py:2204
-msgid "Arc"
-msgstr "Arc"
-
-#: flatcamGUI/FlatCAMGUI.py:2218
-msgid "Union"
-msgstr "Union"
-
-#: flatcamGUI/FlatCAMGUI.py:2220
-msgid "Intersection"
-msgstr "Intersection"
-
-#: flatcamGUI/FlatCAMGUI.py:2222
-msgid "Subtraction"
-msgstr "Subtraction"
-
-#: flatcamGUI/FlatCAMGUI.py:2224 flatcamGUI/ObjectUI.py:2221
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:56
-msgid "Cut"
-msgstr "Cut"
-
-#: flatcamGUI/FlatCAMGUI.py:2235
-msgid "Pad"
-msgstr "Pad"
-
-#: flatcamGUI/FlatCAMGUI.py:2237
-msgid "Pad Array"
-msgstr "Pad Array"
-
-#: flatcamGUI/FlatCAMGUI.py:2241
-msgid "Track"
-msgstr "Track"
-
-#: flatcamGUI/FlatCAMGUI.py:2243
-msgid "Region"
-msgstr "Region"
-
-#: flatcamGUI/FlatCAMGUI.py:2266
-msgid "Exc Editor"
-msgstr "Exc Editor"
-
-#: flatcamGUI/FlatCAMGUI.py:2311
-msgid ""
-"Relative measurement.\n"
-"Reference is last click position"
-msgstr ""
-"Relative measurement.\n"
-"Reference is last click position"
-
-#: flatcamGUI/FlatCAMGUI.py:2317
-msgid ""
-"Absolute measurement.\n"
-"Reference is (X=0, Y= 0) position"
-msgstr ""
-"Absolute measurement.\n"
-"Reference is (X=0, Y= 0) position"
-
-#: flatcamGUI/FlatCAMGUI.py:2419
-msgid "Lock Toolbars"
-msgstr "Lock Toolbars"
-
-#: flatcamGUI/FlatCAMGUI.py:2505
-msgid "FlatCAM Preferences Folder opened."
-msgstr "FlatCAM Preferences Folder opened."
-
-#: flatcamGUI/FlatCAMGUI.py:2516
-msgid "Are you sure you want to delete the GUI Settings? \n"
-msgstr "Are you sure you want to delete the GUI Settings? \n"
-
-#: flatcamGUI/FlatCAMGUI.py:2624
-msgid "&Cutout Tool"
-msgstr "&Cutout Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:2694
-msgid "Select 'Esc'"
-msgstr "Select 'Esc'"
-
-#: flatcamGUI/FlatCAMGUI.py:2732
-msgid "Copy Objects"
-msgstr "Copy Objects"
-
-#: flatcamGUI/FlatCAMGUI.py:2740
-msgid "Move Objects"
-msgstr "Move Objects"
-
-#: flatcamGUI/FlatCAMGUI.py:3363
-msgid ""
-"Please first select a geometry item to be cutted\n"
-"then select the geometry item that will be cutted\n"
-"out of the first item. In the end press ~X~ key or\n"
-"the toolbar button."
-msgstr ""
-"Please first select a geometry item to be cutted\n"
-"then select the geometry item that will be cutted\n"
-"out of the first item. In the end press ~X~ key or\n"
-"the toolbar button."
-
-#: flatcamGUI/FlatCAMGUI.py:3370 flatcamGUI/FlatCAMGUI.py:3532
-#: flatcamGUI/FlatCAMGUI.py:3577 flatcamGUI/FlatCAMGUI.py:3597
-msgid "Warning"
-msgstr "Warning"
-
-#: flatcamGUI/FlatCAMGUI.py:3527
-msgid ""
-"Please select geometry items \n"
-"on which to perform Intersection Tool."
-msgstr ""
-"Please select geometry items \n"
-"on which to perform Intersection Tool."
-
-#: flatcamGUI/FlatCAMGUI.py:3572
-msgid ""
-"Please select geometry items \n"
-"on which to perform Substraction Tool."
-msgstr ""
-"Please select geometry items \n"
-"on which to perform Substraction Tool."
-
-#: flatcamGUI/FlatCAMGUI.py:3592
-msgid ""
-"Please select geometry items \n"
-"on which to perform union."
-msgstr ""
-"Please select geometry items \n"
-"on which to perform union."
-
-#: flatcamGUI/FlatCAMGUI.py:3675 flatcamGUI/FlatCAMGUI.py:3890
-msgid "Cancelled. Nothing selected to delete."
-msgstr "Cancelled. Nothing selected to delete."
-
-#: flatcamGUI/FlatCAMGUI.py:3759 flatcamGUI/FlatCAMGUI.py:4006
-msgid "Cancelled. Nothing selected to copy."
-msgstr "Cancelled. Nothing selected to copy."
-
-#: flatcamGUI/FlatCAMGUI.py:3805 flatcamGUI/FlatCAMGUI.py:4035
-msgid "Cancelled. Nothing selected to move."
-msgstr "Cancelled. Nothing selected to move."
-
-#: flatcamGUI/FlatCAMGUI.py:4061
-msgid "New Tool ..."
-msgstr "New Tool ..."
-
-#: flatcamGUI/FlatCAMGUI.py:4062 flatcamTools/ToolNCC.py:924
-#: flatcamTools/ToolPaint.py:850 flatcamTools/ToolSolderPaste.py:560
-msgid "Enter a Tool Diameter"
-msgstr "Enter a Tool Diameter"
-
-#: flatcamGUI/FlatCAMGUI.py:4074
-msgid "Adding Tool cancelled ..."
-msgstr "Adding Tool cancelled ..."
-
-#: flatcamGUI/FlatCAMGUI.py:4088
-msgid "Distance Tool exit..."
-msgstr "Distance Tool exit..."
-
-#: flatcamGUI/FlatCAMGUI.py:4323 flatcamGUI/FlatCAMGUI.py:4330
-msgid "Idle."
-msgstr "Idle."
-
-#: flatcamGUI/FlatCAMGUI.py:4361
-msgid "Application started ..."
-msgstr "Application started ..."
-
-#: flatcamGUI/FlatCAMGUI.py:4362
-msgid "Hello!"
-msgstr "Hello!"
-
-#: flatcamGUI/FlatCAMGUI.py:4424
-msgid "Open Project ..."
-msgstr "Open Project ..."
-
-#: flatcamGUI/FlatCAMGUI.py:4450
-msgid "Exit"
-msgstr "Exit"
-
-#: flatcamGUI/GUIElements.py:2513
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:180
-#: flatcamTools/ToolDblSided.py:173 flatcamTools/ToolDblSided.py:388
-#: flatcamTools/ToolFilm.py:219
-msgid "Reference"
-msgstr "Reference"
-
-#: flatcamGUI/GUIElements.py:2515
-msgid ""
-"The reference can be:\n"
-"- Absolute -> the reference point is point (0,0)\n"
-"- Relative -> the reference point is the mouse position before Jump"
-msgstr ""
-"The reference can be:\n"
-"- Absolute -> the reference point is point (0,0)\n"
-"- Relative -> the reference point is the mouse position before Jump"
-
-#: flatcamGUI/GUIElements.py:2520
-msgid "Abs"
-msgstr "Abs"
-
-#: flatcamGUI/GUIElements.py:2521
-msgid "Relative"
-msgstr "Relative"
-
-#: flatcamGUI/GUIElements.py:2531
-msgid "Location"
-msgstr "Location"
-
-#: flatcamGUI/GUIElements.py:2533
-msgid ""
-"The Location value is a tuple (x,y).\n"
-"If the reference is Absolute then the Jump will be at the position (x,y).\n"
-"If the reference is Relative then the Jump will be at the (x,y) distance\n"
-"from the current mouse location point."
-msgstr ""
-"The Location value is a tuple (x,y).\n"
-"If the reference is Absolute then the Jump will be at the position (x,y).\n"
-"If the reference is Relative then the Jump will be at the (x,y) distance\n"
-"from the current mouse location point."
-
-#: flatcamGUI/GUIElements.py:2573
-msgid "Save Log"
-msgstr "Save Log"
-
-#: flatcamGUI/GUIElements.py:2592 flatcamTools/ToolShell.py:278
-msgid "Type >help< to get started"
-msgstr "Type >help< to get started"
-
-#: flatcamGUI/ObjectUI.py:38
-msgid "FlatCAM Object"
-msgstr "FlatCAM Object"
-
-#: flatcamGUI/ObjectUI.py:78
-msgid ""
-"BASIC is suitable for a beginner. Many parameters\n"
-"are hidden from the user in this mode.\n"
-"ADVANCED mode will make available all parameters.\n"
-"\n"
-"To change the application LEVEL, go to:\n"
-"Edit -> Preferences -> General and check:\n"
-"'APP. LEVEL' radio button."
-msgstr ""
-"BASIC is suitable for a beginner. Many parameters\n"
-"are hidden from the user in this mode.\n"
-"ADVANCED mode will make available all parameters.\n"
-"\n"
-"To change the application LEVEL, go to:\n"
-"Edit -> Preferences -> General and check:\n"
-"'APP. LEVEL' radio button."
-
-#: flatcamGUI/ObjectUI.py:111
-msgid "Geometrical transformations of the current object."
-msgstr "Geometrical transformations of the current object."
-
-#: flatcamGUI/ObjectUI.py:120
-msgid ""
-"Factor by which to multiply\n"
-"geometric features of this object.\n"
-"Expressions are allowed. E.g: 1/25.4"
-msgstr ""
-"Factor by which to multiply\n"
-"geometric features of this object.\n"
-"Expressions are allowed. E.g: 1/25.4"
-
-#: flatcamGUI/ObjectUI.py:127
-msgid "Perform scaling operation."
-msgstr "Perform scaling operation."
-
-#: flatcamGUI/ObjectUI.py:138
-msgid ""
-"Amount by which to move the object\n"
-"in the x and y axes in (x, y) format.\n"
-"Expressions are allowed. E.g: (1/3.2, 0.5*3)"
-msgstr ""
-"Amount by which to move the object\n"
-"in the x and y axes in (x, y) format.\n"
-"Expressions are allowed. E.g: (1/3.2, 0.5*3)"
-
-#: flatcamGUI/ObjectUI.py:145
-msgid "Perform the offset operation."
-msgstr "Perform the offset operation."
-
-#: flatcamGUI/ObjectUI.py:178
-msgid "Gerber Object"
-msgstr "Gerber Object"
-
-#: flatcamGUI/ObjectUI.py:187 flatcamGUI/ObjectUI.py:730
-#: flatcamGUI/ObjectUI.py:1426 flatcamGUI/ObjectUI.py:2205
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:30
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:33
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:31
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:31
-msgid "Plot Options"
-msgstr "Plot Options"
-
-#: flatcamGUI/ObjectUI.py:193 flatcamGUI/ObjectUI.py:731
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:45
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:38
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119
-#: flatcamTools/ToolCopperThieving.py:191
-msgid "Solid"
-msgstr "Solid"
-
-#: flatcamGUI/ObjectUI.py:195
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:40
-msgid "Solid color polygons."
-msgstr "Solid color polygons."
-
-#: flatcamGUI/ObjectUI.py:201
-msgid "Multi-Color"
-msgstr "Multi-Color"
-
-#: flatcamGUI/ObjectUI.py:203
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:47
-msgid "Draw polygons in different colors."
-msgstr "Draw polygons in different colors."
-
-#: flatcamGUI/ObjectUI.py:209 flatcamGUI/ObjectUI.py:769
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:39
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:35
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:52
-msgid "Plot"
-msgstr "Plot"
-
-#: flatcamGUI/ObjectUI.py:211 flatcamGUI/ObjectUI.py:771
-#: flatcamGUI/ObjectUI.py:1486 flatcamGUI/ObjectUI.py:2315
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:41
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:37
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:54
-msgid "Plot (show) this object."
-msgstr "Plot (show) this object."
-
-#: flatcamGUI/ObjectUI.py:239
-msgid ""
-"Toggle the display of the Gerber Apertures Table.\n"
-"When unchecked, it will delete all mark shapes\n"
-"that are drawn on canvas."
-msgstr ""
-"Toggle the display of the Gerber Apertures Table.\n"
-"When unchecked, it will delete all mark shapes\n"
-"that are drawn on canvas."
-
-#: flatcamGUI/ObjectUI.py:249
-msgid "Mark All"
-msgstr "Mark All"
-
-#: flatcamGUI/ObjectUI.py:251
-msgid ""
-"When checked it will display all the apertures.\n"
-"When unchecked, it will delete all mark shapes\n"
-"that are drawn on canvas."
-msgstr ""
-"When checked it will display all the apertures.\n"
-"When unchecked, it will delete all mark shapes\n"
-"that are drawn on canvas."
-
-#: flatcamGUI/ObjectUI.py:279
-msgid "Mark the aperture instances on canvas."
-msgstr "Mark the aperture instances on canvas."
-
-#: flatcamGUI/ObjectUI.py:291
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:32
-msgid "Isolation Routing"
-msgstr "Isolation Routing"
-
-#: flatcamGUI/ObjectUI.py:293
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:34
-msgid ""
-"Create a Geometry object with\n"
-"toolpaths to cut outside polygons."
-msgstr ""
-"Create a Geometry object with\n"
-"toolpaths to cut outside polygons."
-
-#: flatcamGUI/ObjectUI.py:311
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:69
-msgid ""
-"Choose which tool to use for Gerber isolation:\n"
-"'Circular' or 'V-shape'.\n"
-"When the 'V-shape' is selected then the tool\n"
-"diameter will depend on the chosen cut depth."
-msgstr ""
-"Choose which tool to use for Gerber isolation:\n"
-"'Circular' or 'V-shape'.\n"
-"When the 'V-shape' is selected then the tool\n"
-"diameter will depend on the chosen cut depth."
-
-#: flatcamGUI/ObjectUI.py:317
-msgid "V-Shape"
-msgstr "V-Shape"
-
-#: flatcamGUI/ObjectUI.py:323 flatcamGUI/ObjectUI.py:1672
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:81
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:72
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:78
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:85
-#: flatcamTools/ToolNCC.py:233 flatcamTools/ToolNCC.py:240
-#: flatcamTools/ToolPaint.py:216
-msgid "V-Tip Dia"
-msgstr "V-Tip Dia"
-
-#: flatcamGUI/ObjectUI.py:325 flatcamGUI/ObjectUI.py:1675
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:83
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:74
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:80
-#: flatcamTools/ToolNCC.py:235 flatcamTools/ToolPaint.py:218
-msgid "The tip diameter for V-Shape Tool"
-msgstr "The tip diameter for V-Shape Tool"
-
-#: flatcamGUI/ObjectUI.py:336 flatcamGUI/ObjectUI.py:1687
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:94
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:84
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:91
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:99
-#: flatcamTools/ToolNCC.py:246 flatcamTools/ToolNCC.py:254
-#: flatcamTools/ToolPaint.py:229
-msgid "V-Tip Angle"
-msgstr "V-Tip Angle"
-
-#: flatcamGUI/ObjectUI.py:338 flatcamGUI/ObjectUI.py:1690
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:96
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:86
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:93
-#: flatcamTools/ToolNCC.py:248 flatcamTools/ToolPaint.py:231
-msgid ""
-"The tip angle for V-Shape Tool.\n"
-"In degree."
-msgstr ""
-"The tip angle for V-Shape Tool.\n"
-"In degree."
-
-#: flatcamGUI/ObjectUI.py:352 flatcamGUI/ObjectUI.py:1706
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:50
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:109
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61
-#: flatcamObjects/FlatCAMGeometry.py:1174 flatcamTools/ToolCutOut.py:141
-msgid ""
-"Cutting depth (negative)\n"
-"below the copper surface."
-msgstr ""
-"Cutting depth (negative)\n"
-"below the copper surface."
-
-#: flatcamGUI/ObjectUI.py:366
-msgid ""
-"Diameter of the cutting tool.\n"
-"If you want to have an isolation path\n"
-"inside the actual shape of the Gerber\n"
-"feature, use a negative value for\n"
-"this parameter."
-msgstr ""
-"Diameter of the cutting tool.\n"
-"If you want to have an isolation path\n"
-"inside the actual shape of the Gerber\n"
-"feature, use a negative value for\n"
-"this parameter."
-
-#: flatcamGUI/ObjectUI.py:382
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:56
-msgid "# Passes"
-msgstr "# Passes"
-
-#: flatcamGUI/ObjectUI.py:384
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:58
-msgid ""
-"Width of the isolation gap in\n"
-"number (integer) of tool widths."
-msgstr ""
-"Width of the isolation gap in\n"
-"number (integer) of tool widths."
-
-#: flatcamGUI/ObjectUI.py:395
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:68
-msgid "Pass overlap"
-msgstr "Pass overlap"
-
-#: flatcamGUI/ObjectUI.py:397
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:70
-msgid "How much (percentage) of the tool width to overlap each tool pass."
-msgstr "How much (percentage) of the tool width to overlap each tool pass."
-
-#: flatcamGUI/ObjectUI.py:411
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:58
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:97
-msgid ""
-"Milling type:\n"
-"- climb / best for precision milling and to reduce tool usage\n"
-"- conventional / useful when there is no backlash compensation"
-msgstr ""
-"Milling type:\n"
-"- climb / best for precision milling and to reduce tool usage\n"
-"- conventional / useful when there is no backlash compensation"
-
-#: flatcamGUI/ObjectUI.py:421
-msgid "Combine"
-msgstr "Combine"
-
-#: flatcamGUI/ObjectUI.py:423
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:109
-msgid "Combine all passes into one object"
-msgstr "Combine all passes into one object"
-
-#: flatcamGUI/ObjectUI.py:427
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:43
-msgid "\"Follow\""
-msgstr "\"Follow\""
-
-#: flatcamGUI/ObjectUI.py:428
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:45
-msgid ""
-"Generate a 'Follow' geometry.\n"
-"This means that it will cut through\n"
-"the middle of the trace."
-msgstr ""
-"Generate a 'Follow' geometry.\n"
-"This means that it will cut through\n"
-"the middle of the trace."
-
-#: flatcamGUI/ObjectUI.py:434
-msgid "Except"
-msgstr "Except"
-
-#: flatcamGUI/ObjectUI.py:437
-msgid ""
-"When the isolation geometry is generated,\n"
-"by checking this, the area of the object below\n"
-"will be subtracted from the isolation geometry."
-msgstr ""
-"When the isolation geometry is generated,\n"
-"by checking this, the area of the object below\n"
-"will be subtracted from the isolation geometry."
-
-#: flatcamGUI/ObjectUI.py:450
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:97
-#: flatcamObjects/FlatCAMGerber.py:239 flatcamObjects/FlatCAMGerber.py:327
-#: flatcamTools/ToolAlignObjects.py:73 flatcamTools/ToolAlignObjects.py:109
-#: flatcamTools/ToolCalibration.py:196 flatcamTools/ToolCalibration.py:631
-#: flatcamTools/ToolCalibration.py:648 flatcamTools/ToolCalibration.py:807
-#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144
-#: flatcamTools/ToolCopperThieving.py:158
-#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolCutOut.py:91
-#: flatcamTools/ToolDblSided.py:224 flatcamTools/ToolFilm.py:69
-#: flatcamTools/ToolFilm.py:102 flatcamTools/ToolFilm.py:549
-#: flatcamTools/ToolFilm.py:557 flatcamTools/ToolImage.py:49
-#: flatcamTools/ToolImage.py:252 flatcamTools/ToolImage.py:273
-#: flatcamTools/ToolNCC.py:96 flatcamTools/ToolNCC.py:558
-#: flatcamTools/ToolNCC.py:1300 flatcamTools/ToolPaint.py:502
-#: flatcamTools/ToolPaint.py:706 flatcamTools/ToolPanelize.py:118
-#: flatcamTools/ToolPanelize.py:204 flatcamTools/ToolPanelize.py:374
-#: flatcamTools/ToolPanelize.py:391
-msgid "Gerber"
-msgstr "Gerber"
-
-#: flatcamGUI/ObjectUI.py:457 flatcamTools/ToolNCC.py:86
-#: flatcamTools/ToolPaint.py:80
-msgid "Obj Type"
-msgstr "Obj Type"
-
-#: flatcamGUI/ObjectUI.py:459
-msgid ""
-"Specify the type of object to be excepted from isolation.\n"
-"It can be of type: Gerber or Geometry.\n"
-"What is selected here will dictate the kind\n"
-"of objects that will populate the 'Object' combobox."
-msgstr ""
-"Specify the type of object to be excepted from isolation.\n"
-"It can be of type: Gerber or Geometry.\n"
-"What is selected here will dictate the kind\n"
-"of objects that will populate the 'Object' combobox."
-
-#: flatcamGUI/ObjectUI.py:472
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:48
-#: flatcamTools/ToolCalibration.py:186 flatcamTools/ToolNCC.py:109
-#: flatcamTools/ToolPaint.py:103 flatcamTools/ToolPanelize.py:100
-#: flatcamTools/ToolQRCode.py:78
-msgid "Object"
-msgstr "Object"
-
-#: flatcamGUI/ObjectUI.py:473
-msgid "Object whose area will be removed from isolation geometry."
-msgstr "Object whose area will be removed from isolation geometry."
-
-#: flatcamGUI/ObjectUI.py:480
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:82
-msgid "Scope"
-msgstr "Scope"
-
-#: flatcamGUI/ObjectUI.py:482
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:84
-msgid ""
-"Isolation scope. Choose what to isolate:\n"
-"- 'All' -> Isolate all the polygons in the object\n"
-"- 'Selection' -> Isolate a selection of polygons."
-msgstr ""
-"Isolation scope. Choose what to isolate:\n"
-"- 'All' -> Isolate all the polygons in the object\n"
-"- 'Selection' -> Isolate a selection of polygons."
-
-#: flatcamGUI/ObjectUI.py:487
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:307
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:89
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:311
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:258
-#: flatcamTools/ToolNCC.py:539 flatcamTools/ToolPaint.py:456
-msgid "Selection"
-msgstr "Selection"
-
-#: flatcamGUI/ObjectUI.py:495
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:122
-msgid "Isolation Type"
-msgstr "Isolation Type"
-
-#: flatcamGUI/ObjectUI.py:497
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:124
-msgid ""
-"Choose how the isolation will be executed:\n"
-"- 'Full' -> complete isolation of polygons\n"
-"- 'Ext' -> will isolate only on the outside\n"
-"- 'Int' -> will isolate only on the inside\n"
-"'Exterior' isolation is almost always possible\n"
-"(with the right tool) but 'Interior'\n"
-"isolation can be done only when there is an opening\n"
-"inside of the polygon (e.g polygon is a 'doughnut' shape)."
-msgstr ""
-"Choose how the isolation will be executed:\n"
-"- 'Full' -> complete isolation of polygons\n"
-"- 'Ext' -> will isolate only on the outside\n"
-"- 'Int' -> will isolate only on the inside\n"
-"'Exterior' isolation is almost always possible\n"
-"(with the right tool) but 'Interior'\n"
-"isolation can be done only when there is an opening\n"
-"inside of the polygon (e.g polygon is a 'doughnut' shape)."
-
-#: flatcamGUI/ObjectUI.py:506
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:133
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:154
-msgid "Full"
-msgstr "Full"
-
-#: flatcamGUI/ObjectUI.py:507
-msgid "Ext"
-msgstr "Ext"
-
-#: flatcamGUI/ObjectUI.py:508
-msgid "Int"
-msgstr "Int"
-
-#: flatcamGUI/ObjectUI.py:513
-msgid "Generate Isolation Geometry"
-msgstr "Generate Isolation Geometry"
-
-#: flatcamGUI/ObjectUI.py:521
-msgid ""
-"Create a Geometry object with toolpaths to cut \n"
-"isolation outside, inside or on both sides of the\n"
-"object. For a Gerber object outside means outside\n"
-"of the Gerber feature and inside means inside of\n"
-"the Gerber feature, if possible at all. This means\n"
-"that only if the Gerber feature has openings inside, they\n"
-"will be isolated. If what is wanted is to cut isolation\n"
-"inside the actual Gerber feature, use a negative tool\n"
-"diameter above."
-msgstr ""
-"Create a Geometry object with toolpaths to cut \n"
-"isolation outside, inside or on both sides of the\n"
-"object. For a Gerber object outside means outside\n"
-"of the Gerber feature and inside means inside of\n"
-"the Gerber feature, if possible at all. This means\n"
-"that only if the Gerber feature has openings inside, they\n"
-"will be isolated. If what is wanted is to cut isolation\n"
-"inside the actual Gerber feature, use a negative tool\n"
-"diameter above."
-
-#: flatcamGUI/ObjectUI.py:533
-msgid "Buffer Solid Geometry"
-msgstr "Buffer Solid Geometry"
-
-#: flatcamGUI/ObjectUI.py:535
-msgid ""
-"This button is shown only when the Gerber file\n"
-"is loaded without buffering.\n"
-"Clicking this will create the buffered geometry\n"
-"required for isolation."
-msgstr ""
-"This button is shown only when the Gerber file\n"
-"is loaded without buffering.\n"
-"Clicking this will create the buffered geometry\n"
-"required for isolation."
-
-#: flatcamGUI/ObjectUI.py:567
-msgid "Clear N-copper"
-msgstr "Clear N-copper"
-
-#: flatcamGUI/ObjectUI.py:569
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:33
-msgid ""
-"Create a Geometry object with\n"
-"toolpaths to cut all non-copper regions."
-msgstr ""
-"Create a Geometry object with\n"
-"toolpaths to cut all non-copper regions."
-
-#: flatcamGUI/ObjectUI.py:576 flatcamGUI/ObjectUI.py:2159
-#: flatcamTools/ToolNCC.py:599
-msgid ""
-"Create the Geometry Object\n"
-"for non-copper routing."
-msgstr ""
-"Create the Geometry Object\n"
-"for non-copper routing."
-
-#: flatcamGUI/ObjectUI.py:589
-msgid "Board cutout"
-msgstr "Board cutout"
-
-#: flatcamGUI/ObjectUI.py:591
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:34
-msgid ""
-"Create toolpaths to cut around\n"
-"the PCB and separate it from\n"
-"the original board."
-msgstr ""
-"Create toolpaths to cut around\n"
-"the PCB and separate it from\n"
-"the original board."
-
-#: flatcamGUI/ObjectUI.py:598
-msgid ""
-"Generate the geometry for\n"
-"the board cutout."
-msgstr ""
-"Generate the geometry for\n"
-"the board cutout."
-
-#: flatcamGUI/ObjectUI.py:616
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:119
-msgid "Non-copper regions"
-msgstr "Non-copper regions"
-
-#: flatcamGUI/ObjectUI.py:618
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:121
-msgid ""
-"Create polygons covering the\n"
-"areas without copper on the PCB.\n"
-"Equivalent to the inverse of this\n"
-"object. Can be used to remove all\n"
-"copper from a specified region."
-msgstr ""
-"Create polygons covering the\n"
-"areas without copper on the PCB.\n"
-"Equivalent to the inverse of this\n"
-"object. Can be used to remove all\n"
-"copper from a specified region."
-
-#: flatcamGUI/ObjectUI.py:628 flatcamGUI/ObjectUI.py:669
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:133
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:166
-msgid "Boundary Margin"
-msgstr "Boundary Margin"
-
-#: flatcamGUI/ObjectUI.py:630
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:135
-msgid ""
-"Specify the edge of the PCB\n"
-"by drawing a box around all\n"
-"objects with this minimum\n"
-"distance."
-msgstr ""
-"Specify the edge of the PCB\n"
-"by drawing a box around all\n"
-"objects with this minimum\n"
-"distance."
-
-#: flatcamGUI/ObjectUI.py:645 flatcamGUI/ObjectUI.py:683
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:148
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:179
-msgid "Rounded Geo"
-msgstr "Rounded Geo"
-
-#: flatcamGUI/ObjectUI.py:647
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:150
-msgid "Resulting geometry will have rounded corners."
-msgstr "Resulting geometry will have rounded corners."
-
-#: flatcamGUI/ObjectUI.py:651 flatcamGUI/ObjectUI.py:692
-#: flatcamTools/ToolSolderPaste.py:134
-msgid "Generate Geo"
-msgstr "Generate Geo"
-
-#: flatcamGUI/ObjectUI.py:661
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:160
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137
-#: flatcamTools/ToolPanelize.py:101 flatcamTools/ToolQRCode.py:192
-msgid "Bounding Box"
-msgstr "Bounding Box"
-
-#: flatcamGUI/ObjectUI.py:663
-msgid ""
-"Create a geometry surrounding the Gerber object.\n"
-"Square shape."
-msgstr ""
-"Create a geometry surrounding the Gerber object.\n"
-"Square shape."
-
-#: flatcamGUI/ObjectUI.py:671
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:168
-msgid ""
-"Distance of the edges of the box\n"
-"to the nearest polygon."
-msgstr ""
-"Distance of the edges of the box\n"
-"to the nearest polygon."
-
-#: flatcamGUI/ObjectUI.py:685
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:181
-msgid ""
-"If the bounding box is \n"
-"to have rounded corners\n"
-"their radius is equal to\n"
-"the margin."
-msgstr ""
-"If the bounding box is \n"
-"to have rounded corners\n"
-"their radius is equal to\n"
-"the margin."
-
-#: flatcamGUI/ObjectUI.py:694
-msgid "Generate the Geometry object."
-msgstr "Generate the Geometry object."
-
-#: flatcamGUI/ObjectUI.py:721
-msgid "Excellon Object"
-msgstr "Excellon Object"
-
-#: flatcamGUI/ObjectUI.py:733
-msgid "Solid circles."
-msgstr "Solid circles."
-
-#: flatcamGUI/ObjectUI.py:781 flatcamGUI/ObjectUI.py:876
-#: flatcamGUI/ObjectUI.py:2336
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:71
-#: flatcamTools/ToolProperties.py:166
-msgid "Drills"
-msgstr "Drills"
-
-#: flatcamGUI/ObjectUI.py:781 flatcamGUI/ObjectUI.py:877
-#: flatcamGUI/ObjectUI.py:2336
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:158
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:72
-#: flatcamTools/ToolProperties.py:168
-msgid "Slots"
-msgstr "Slots"
-
-#: flatcamGUI/ObjectUI.py:786
-msgid ""
-"This is the Tool Number.\n"
-"When ToolChange is checked, on toolchange event this value\n"
-"will be showed as a T1, T2 ... Tn in the Machine Code.\n"
-"\n"
-"Here the tools are selected for G-code generation."
-msgstr ""
-"This is the Tool Number.\n"
-"When ToolChange is checked, on toolchange event this value\n"
-"will be showed as a T1, T2 ... Tn in the Machine Code.\n"
-"\n"
-"Here the tools are selected for G-code generation."
-
-#: flatcamGUI/ObjectUI.py:791 flatcamGUI/ObjectUI.py:1510
-#: flatcamTools/ToolPaint.py:142
-msgid ""
-"Tool Diameter. It's value (in current FlatCAM units) \n"
-"is the cut width into the material."
-msgstr ""
-"Tool Diameter. It's value (in current FlatCAM units) \n"
-"is the cut width into the material."
-
-#: flatcamGUI/ObjectUI.py:794
-msgid ""
-"The number of Drill holes. Holes that are drilled with\n"
-"a drill bit."
-msgstr ""
-"The number of Drill holes. Holes that are drilled with\n"
-"a drill bit."
-
-#: flatcamGUI/ObjectUI.py:797
-msgid ""
-"The number of Slot holes. Holes that are created by\n"
-"milling them with an endmill bit."
-msgstr ""
-"The number of Slot holes. Holes that are created by\n"
-"milling them with an endmill bit."
-
-#: flatcamGUI/ObjectUI.py:800
-msgid ""
-"Toggle display of the drills for the current tool.\n"
-"This does not select the tools for G-code generation."
-msgstr ""
-"Toggle display of the drills for the current tool.\n"
-"This does not select the tools for G-code generation."
-
-#: flatcamGUI/ObjectUI.py:818 flatcamGUI/ObjectUI.py:1662
-#: flatcamObjects/FlatCAMExcellon.py:514 flatcamObjects/FlatCAMExcellon.py:726
-#: flatcamObjects/FlatCAMExcellon.py:742 flatcamObjects/FlatCAMExcellon.py:746
-#: flatcamObjects/FlatCAMGeometry.py:323 flatcamObjects/FlatCAMGeometry.py:759
-#: flatcamObjects/FlatCAMGeometry.py:795 flatcamTools/ToolNCC.py:331
-#: flatcamTools/ToolNCC.py:797 flatcamTools/ToolNCC.py:811
-#: flatcamTools/ToolNCC.py:1196 flatcamTools/ToolPaint.py:314
-#: flatcamTools/ToolPaint.py:767 flatcamTools/ToolPaint.py:779
-#: flatcamTools/ToolPaint.py:1171
-msgid "Parameters for"
-msgstr "Parameters for"
-
-#: flatcamGUI/ObjectUI.py:821 flatcamGUI/ObjectUI.py:1665
-#: flatcamTools/ToolNCC.py:334 flatcamTools/ToolPaint.py:317
-msgid ""
-"The data used for creating GCode.\n"
-"Each tool store it's own set of such data."
-msgstr ""
-"The data used for creating GCode.\n"
-"Each tool store it's own set of such data."
-
-#: flatcamGUI/ObjectUI.py:847
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:48
-msgid ""
-"Operation type:\n"
-"- Drilling -> will drill the drills/slots associated with this tool\n"
-"- Milling -> will mill the drills/slots"
-msgstr ""
-"Operation type:\n"
-"- Drilling -> will drill the drills/slots associated with this tool\n"
-"- Milling -> will mill the drills/slots"
-
-#: flatcamGUI/ObjectUI.py:853
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:54
-msgid "Drilling"
-msgstr "Drilling"
-
-#: flatcamGUI/ObjectUI.py:854
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:55
-msgid "Milling"
-msgstr "Milling"
-
-#: flatcamGUI/ObjectUI.py:869
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:64
-msgid ""
-"Milling type:\n"
-"- Drills -> will mill the drills associated with this tool\n"
-"- Slots -> will mill the slots associated with this tool\n"
-"- Both -> will mill both drills and mills or whatever is available"
-msgstr ""
-"Milling type:\n"
-"- Drills -> will mill the drills associated with this tool\n"
-"- Slots -> will mill the slots associated with this tool\n"
-"- Both -> will mill both drills and mills or whatever is available"
-
-#: flatcamGUI/ObjectUI.py:878
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:73
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:210
-#: flatcamTools/ToolFilm.py:258
-msgid "Both"
-msgstr "Both"
-
-#: flatcamGUI/ObjectUI.py:886
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:80
-msgid "Milling Diameter"
-msgstr "Milling Diameter"
-
-#: flatcamGUI/ObjectUI.py:888
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:82
-msgid "The diameter of the tool who will do the milling"
-msgstr "The diameter of the tool who will do the milling"
-
-#: flatcamGUI/ObjectUI.py:902
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:95
-msgid ""
-"Drill depth (negative)\n"
-"below the copper surface."
-msgstr ""
-"Drill depth (negative)\n"
-"below the copper surface."
-
-#: flatcamGUI/ObjectUI.py:921 flatcamGUI/ObjectUI.py:1724
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:113
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:68
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79
-#: flatcamTools/ToolCutOut.py:159
-msgid "Multi-Depth"
-msgstr "Multi-Depth"
-
-#: flatcamGUI/ObjectUI.py:924 flatcamGUI/ObjectUI.py:1727
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:116
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:71
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82
-#: flatcamTools/ToolCutOut.py:162
-msgid ""
-"Use multiple passes to limit\n"
-"the cut depth in each pass. Will\n"
-"cut multiple times until Cut Z is\n"
-"reached."
-msgstr ""
-"Use multiple passes to limit\n"
-"the cut depth in each pass. Will\n"
-"cut multiple times until Cut Z is\n"
-"reached."
-
-#: flatcamGUI/ObjectUI.py:937 flatcamGUI/ObjectUI.py:1741
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:128
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94
-#: flatcamTools/ToolCutOut.py:176
-msgid "Depth of each pass (positive)."
-msgstr "Depth of each pass (positive)."
-
-#: flatcamGUI/ObjectUI.py:948
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:136
-msgid ""
-"Tool height when travelling\n"
-"across the XY plane."
-msgstr ""
-"Tool height when travelling\n"
-"across the XY plane."
-
-#: flatcamGUI/ObjectUI.py:969 flatcamGUI/ObjectUI.py:1771
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:187
-msgid ""
-"Cutting speed in the XY\n"
-"plane in units per minute"
-msgstr ""
-"Cutting speed in the XY\n"
-"plane in units per minute"
-
-#: flatcamGUI/ObjectUI.py:984
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:209
-msgid ""
-"Tool speed while drilling\n"
-"(in units per minute).\n"
-"So called 'Plunge' feedrate.\n"
-"This is for linear move G01."
-msgstr ""
-"Tool speed while drilling\n"
-"(in units per minute).\n"
-"So called 'Plunge' feedrate.\n"
-"This is for linear move G01."
-
-#: flatcamGUI/ObjectUI.py:999 flatcamGUI/ObjectUI.py:1798
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:80
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:64
-msgid "Feedrate Rapids"
-msgstr "Feedrate Rapids"
-
-#: flatcamGUI/ObjectUI.py:1001
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:82
-msgid ""
-"Tool speed while drilling\n"
-"(in units per minute).\n"
-"This is for the rapid move G00.\n"
-"It is useful only for Marlin,\n"
-"ignore for any other cases."
-msgstr ""
-"Tool speed while drilling\n"
-"(in units per minute).\n"
-"This is for the rapid move G00.\n"
-"It is useful only for Marlin,\n"
-"ignore for any other cases."
-
-#: flatcamGUI/ObjectUI.py:1021 flatcamGUI/ObjectUI.py:1818
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:82
-msgid "Re-cut"
-msgstr "Re-cut"
-
-#: flatcamGUI/ObjectUI.py:1023 flatcamGUI/ObjectUI.py:1036
-#: flatcamGUI/ObjectUI.py:1820 flatcamGUI/ObjectUI.py:1832
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:84
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:96
-msgid ""
-"In order to remove possible\n"
-"copper leftovers where first cut\n"
-"meet with last cut, we generate an\n"
-"extended cut over the first cut section."
-msgstr ""
-"In order to remove possible\n"
-"copper leftovers where first cut\n"
-"meet with last cut, we generate an\n"
-"extended cut over the first cut section."
-
-#: flatcamGUI/ObjectUI.py:1049 flatcamGUI/ObjectUI.py:1841
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:216
-#: flatcamObjects/FlatCAMExcellon.py:1332
-#: flatcamObjects/FlatCAMGeometry.py:1622
-msgid "Spindle speed"
-msgstr "Spindle speed"
-
-#: flatcamGUI/ObjectUI.py:1051
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:224
-msgid ""
-"Speed of the spindle\n"
-"in RPM (optional)"
-msgstr ""
-"Speed of the spindle\n"
-"in RPM (optional)"
-
-#: flatcamGUI/ObjectUI.py:1066 flatcamGUI/ObjectUI.py:1860
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:238
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:234
-msgid ""
-"Pause to allow the spindle to reach its\n"
-"speed before cutting."
-msgstr ""
-"Pause to allow the spindle to reach its\n"
-"speed before cutting."
-
-#: flatcamGUI/ObjectUI.py:1077 flatcamGUI/ObjectUI.py:1870
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:246
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:239
-msgid "Number of time units for spindle to dwell."
-msgstr "Number of time units for spindle to dwell."
-
-#: flatcamGUI/ObjectUI.py:1087
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:46
-msgid "Offset Z"
-msgstr "Offset Z"
-
-#: flatcamGUI/ObjectUI.py:1089
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:48
-msgid ""
-"Some drill bits (the larger ones) need to drill deeper\n"
-"to create the desired exit hole diameter due of the tip shape.\n"
-"The value here can compensate the Cut Z parameter."
-msgstr ""
-"Some drill bits (the larger ones) need to drill deeper\n"
-"to create the desired exit hole diameter due of the tip shape.\n"
-"The value here can compensate the Cut Z parameter."
-
-#: flatcamGUI/ObjectUI.py:1149 flatcamGUI/ObjectUI.py:1924
-#: flatcamTools/ToolNCC.py:492 flatcamTools/ToolPaint.py:423
-msgid "Apply parameters to all tools"
-msgstr "Apply parameters to all tools"
-
-#: flatcamGUI/ObjectUI.py:1151 flatcamGUI/ObjectUI.py:1926
-#: flatcamTools/ToolNCC.py:494 flatcamTools/ToolPaint.py:425
-msgid ""
-"The parameters in the current form will be applied\n"
-"on all the tools from the Tool Table."
-msgstr ""
-"The parameters in the current form will be applied\n"
-"on all the tools from the Tool Table."
-
-#: flatcamGUI/ObjectUI.py:1162 flatcamGUI/ObjectUI.py:1937
-#: flatcamTools/ToolNCC.py:505 flatcamTools/ToolPaint.py:436
-msgid "Common Parameters"
-msgstr "Common Parameters"
-
-#: flatcamGUI/ObjectUI.py:1164 flatcamGUI/ObjectUI.py:1939
-#: flatcamTools/ToolNCC.py:507 flatcamTools/ToolPaint.py:438
-msgid "Parameters that are common for all tools."
-msgstr "Parameters that are common for all tools."
-
-#: flatcamGUI/ObjectUI.py:1169 flatcamGUI/ObjectUI.py:1944
-msgid "Tool change Z"
-msgstr "Tool change Z"
-
-#: flatcamGUI/ObjectUI.py:1171
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:154
-msgid ""
-"Include tool-change sequence\n"
-"in G-Code (Pause for tool change)."
-msgstr ""
-"Include tool-change sequence\n"
-"in G-Code (Pause for tool change)."
-
-#: flatcamGUI/ObjectUI.py:1178 flatcamGUI/ObjectUI.py:1955
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:162
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:134
-msgid ""
-"Z-axis position (height) for\n"
-"tool change."
-msgstr ""
-"Z-axis position (height) for\n"
-"tool change."
-
-#: flatcamGUI/ObjectUI.py:1195
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:71
-msgid ""
-"Height of the tool just after start.\n"
-"Delete the value if you don't need this feature."
-msgstr ""
-"Height of the tool just after start.\n"
-"Delete the value if you don't need this feature."
-
-#: flatcamGUI/ObjectUI.py:1204 flatcamGUI/ObjectUI.py:1983
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:178
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:153
-msgid "End move Z"
-msgstr "End move Z"
-
-#: flatcamGUI/ObjectUI.py:1206 flatcamGUI/ObjectUI.py:1985
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:180
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:155
-msgid ""
-"Height of the tool after\n"
-"the last move at the end of the job."
-msgstr ""
-"Height of the tool after\n"
-"the last move at the end of the job."
-
-#: flatcamGUI/ObjectUI.py:1223 flatcamGUI/ObjectUI.py:2002
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:195
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:173
-msgid "End move X,Y"
-msgstr "End move X,Y"
-
-#: flatcamGUI/ObjectUI.py:1225 flatcamGUI/ObjectUI.py:2004
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:197
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:175
-msgid ""
-"End move X,Y position. In format (x,y).\n"
-"If no value is entered then there is no move\n"
-"on X,Y plane at the end of the job."
-msgstr ""
-"End move X,Y position. In format (x,y).\n"
-"If no value is entered then there is no move\n"
-"on X,Y plane at the end of the job."
-
-#: flatcamGUI/ObjectUI.py:1235 flatcamGUI/ObjectUI.py:1878
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:96
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:105
-msgid "Probe Z depth"
-msgstr "Probe Z depth"
-
-#: flatcamGUI/ObjectUI.py:1237 flatcamGUI/ObjectUI.py:1880
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:98
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:107
-msgid ""
-"The maximum depth that the probe is allowed\n"
-"to probe. Negative value, in current units."
-msgstr ""
-"The maximum depth that the probe is allowed\n"
-"to probe. Negative value, in current units."
-
-#: flatcamGUI/ObjectUI.py:1254 flatcamGUI/ObjectUI.py:1895
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:109
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:120
-msgid "Feedrate Probe"
-msgstr "Feedrate Probe"
-
-#: flatcamGUI/ObjectUI.py:1256 flatcamGUI/ObjectUI.py:1897
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:111
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:122
-msgid "The feedrate used while the probe is probing."
-msgstr "The feedrate used while the probe is probing."
-
-#: flatcamGUI/ObjectUI.py:1272
-msgid "Preprocessor E"
-msgstr "Preprocessor E"
-
-#: flatcamGUI/ObjectUI.py:1274
-msgid ""
-"The preprocessor JSON file that dictates\n"
-"Gcode output for Excellon Objects."
-msgstr ""
-"The preprocessor JSON file that dictates\n"
-"Gcode output for Excellon Objects."
-
-#: flatcamGUI/ObjectUI.py:1284
-msgid "Preprocessor G"
-msgstr "Preprocessor G"
-
-#: flatcamGUI/ObjectUI.py:1286
-msgid ""
-"The preprocessor JSON file that dictates\n"
-"Gcode output for Geometry (Milling) Objects."
-msgstr ""
-"The preprocessor JSON file that dictates\n"
-"Gcode output for Geometry (Milling) Objects."
-
-#: flatcamGUI/ObjectUI.py:1310 flatcamGUI/ObjectUI.py:2108
-msgid ""
-"Add / Select at least one tool in the tool-table.\n"
-"Click the # header to select all, or Ctrl + LMB\n"
-"for custom selection of tools."
-msgstr ""
-"Add / Select at least one tool in the tool-table.\n"
-"Click the # header to select all, or Ctrl + LMB\n"
-"for custom selection of tools."
-
-#: flatcamGUI/ObjectUI.py:1318 flatcamGUI/ObjectUI.py:2115
-msgid "Generate CNCJob object"
-msgstr "Generate CNCJob object"
-
-#: flatcamGUI/ObjectUI.py:1320
-msgid ""
-"Generate the CNC Job.\n"
-"If milling then an additional Geometry object will be created"
-msgstr ""
-"Generate the CNC Job.\n"
-"If milling then an additional Geometry object will be created"
-
-#: flatcamGUI/ObjectUI.py:1337
-msgid "Milling Geometry"
-msgstr "Milling Geometry"
-
-#: flatcamGUI/ObjectUI.py:1339
-msgid ""
-"Create Geometry for milling holes.\n"
-"Select from the Tools Table above the hole dias to be\n"
-"milled. Use the # column to make the selection."
-msgstr ""
-"Create Geometry for milling holes.\n"
-"Select from the Tools Table above the hole dias to be\n"
-"milled. Use the # column to make the selection."
-
-#: flatcamGUI/ObjectUI.py:1347
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:296
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:45
-msgid "Diameter of the cutting tool."
-msgstr "Diameter of the cutting tool."
-
-#: flatcamGUI/ObjectUI.py:1357
-msgid "Mill Drills"
-msgstr "Mill Drills"
-
-#: flatcamGUI/ObjectUI.py:1359
-msgid ""
-"Create the Geometry Object\n"
-"for milling DRILLS toolpaths."
-msgstr ""
-"Create the Geometry Object\n"
-"for milling DRILLS toolpaths."
-
-#: flatcamGUI/ObjectUI.py:1377
-msgid "Mill Slots"
-msgstr "Mill Slots"
-
-#: flatcamGUI/ObjectUI.py:1379
-msgid ""
-"Create the Geometry Object\n"
-"for milling SLOTS toolpaths."
-msgstr ""
-"Create the Geometry Object\n"
-"for milling SLOTS toolpaths."
-
-#: flatcamGUI/ObjectUI.py:1421 flatcamTools/ToolCutOut.py:319
-msgid "Geometry Object"
-msgstr "Geometry Object"
-
-#: flatcamGUI/ObjectUI.py:1467
-msgid ""
-"Tools in this Geometry object used for cutting.\n"
-"The 'Offset' entry will set an offset for the cut.\n"
-"'Offset' can be inside, outside, on path (none) and custom.\n"
-"'Type' entry is only informative and it allow to know the \n"
-"intent of using the current tool. \n"
-"It can be Rough(ing), Finish(ing) or Iso(lation).\n"
-"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n"
-"ball(B), or V-Shaped(V). \n"
-"When V-shaped is selected the 'Type' entry is automatically \n"
-"set to Isolation, the CutZ parameter in the UI form is\n"
-"grayed out and Cut Z is automatically calculated from the newly \n"
-"showed UI form entries named V-Tip Dia and V-Tip Angle."
-msgstr ""
-"Tools in this Geometry object used for cutting.\n"
-"The 'Offset' entry will set an offset for the cut.\n"
-"'Offset' can be inside, outside, on path (none) and custom.\n"
-"'Type' entry is only informative and it allow to know the \n"
-"intent of using the current tool. \n"
-"It can be Rough(ing), Finish(ing) or Iso(lation).\n"
-"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n"
-"ball(B), or V-Shaped(V). \n"
-"When V-shaped is selected the 'Type' entry is automatically \n"
-"set to Isolation, the CutZ parameter in the UI form is\n"
-"grayed out and Cut Z is automatically calculated from the newly \n"
-"showed UI form entries named V-Tip Dia and V-Tip Angle."
-
-#: flatcamGUI/ObjectUI.py:1484 flatcamGUI/ObjectUI.py:2313
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:40
-msgid "Plot Object"
-msgstr "Plot Object"
-
-#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326
-#: flatcamGUI/ObjectUI.py:2336
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138
-#: flatcamTools/ToolCopperThieving.py:221
-msgid "Dia"
-msgstr "Dia"
-
-#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326
-#: flatcamTools/ToolNCC.py:132 flatcamTools/ToolPaint.py:128
-msgid "TT"
-msgstr "TT"
-
-#: flatcamGUI/ObjectUI.py:1504
-msgid ""
-"This is the Tool Number.\n"
-"When ToolChange is checked, on toolchange event this value\n"
-"will be showed as a T1, T2 ... Tn"
-msgstr ""
-"This is the Tool Number.\n"
-"When ToolChange is checked, on toolchange event this value\n"
-"will be showed as a T1, T2 ... Tn"
-
-#: flatcamGUI/ObjectUI.py:1515
-msgid ""
-"The value for the Offset can be:\n"
-"- Path -> There is no offset, the tool cut will be done through the geometry "
-"line.\n"
-"- In(side) -> The tool cut will follow the geometry inside. It will create a "
-"'pocket'.\n"
-"- Out(side) -> The tool cut will follow the geometry line on the outside."
-msgstr ""
-"The value for the Offset can be:\n"
-"- Path -> There is no offset, the tool cut will be done through the geometry "
-"line.\n"
-"- In(side) -> The tool cut will follow the geometry inside. It will create a "
-"'pocket'.\n"
-"- Out(side) -> The tool cut will follow the geometry line on the outside."
-
-#: flatcamGUI/ObjectUI.py:1522
-msgid ""
-"The (Operation) Type has only informative value. Usually the UI form "
-"values \n"
-"are choose based on the operation type and this will serve as a reminder.\n"
-"Can be 'Roughing', 'Finishing' or 'Isolation'.\n"
-"For Roughing we may choose a lower Feedrate and multiDepth cut.\n"
-"For Finishing we may choose a higher Feedrate, without multiDepth.\n"
-"For Isolation we need a lower Feedrate as it use a milling bit with a fine "
-"tip."
-msgstr ""
-"The (Operation) Type has only informative value. Usually the UI form "
-"values \n"
-"are choose based on the operation type and this will serve as a reminder.\n"
-"Can be 'Roughing', 'Finishing' or 'Isolation'.\n"
-"For Roughing we may choose a lower Feedrate and multiDepth cut.\n"
-"For Finishing we may choose a higher Feedrate, without multiDepth.\n"
-"For Isolation we need a lower Feedrate as it use a milling bit with a fine "
-"tip."
-
-#: flatcamGUI/ObjectUI.py:1531
-msgid ""
-"The Tool Type (TT) can be:\n"
-"- Circular with 1 ... 4 teeth -> it is informative only. Being circular the "
-"cut width in material\n"
-"is exactly the tool diameter.\n"
-"- Ball -> informative only and make reference to the Ball type endmill.\n"
-"- V-Shape -> it will disable Z-Cut parameter in the UI form and enable two "
-"additional UI form\n"
-"fields: V-Tip Dia and V-Tip Angle. Adjusting those two values will adjust "
-"the Z-Cut parameter such\n"
-"as the cut width into material will be equal with the value in the Tool "
-"Diameter column of this table.\n"
-"Choosing the V-Shape Tool Type automatically will select the Operation Type "
-"as Isolation."
-msgstr ""
-"The Tool Type (TT) can be:\n"
-"- Circular with 1 ... 4 teeth -> it is informative only. Being circular the "
-"cut width in material\n"
-"is exactly the tool diameter.\n"
-"- Ball -> informative only and make reference to the Ball type endmill.\n"
-"- V-Shape -> it will disable Z-Cut parameter in the UI form and enable two "
-"additional UI form\n"
-"fields: V-Tip Dia and V-Tip Angle. Adjusting those two values will adjust "
-"the Z-Cut parameter such\n"
-"as the cut width into material will be equal with the value in the Tool "
-"Diameter column of this table.\n"
-"Choosing the V-Shape Tool Type automatically will select the Operation Type "
-"as Isolation."
-
-#: flatcamGUI/ObjectUI.py:1543
-msgid ""
-"Plot column. It is visible only for MultiGeo geometries, meaning geometries "
-"that holds the geometry\n"
-"data into the tools. For those geometries, deleting the tool will delete the "
-"geometry data also,\n"
-"so be WARNED. From the checkboxes on each row it can be enabled/disabled the "
-"plot on canvas\n"
-"for the corresponding tool."
-msgstr ""
-"Plot column. It is visible only for MultiGeo geometries, meaning geometries "
-"that holds the geometry\n"
-"data into the tools. For those geometries, deleting the tool will delete the "
-"geometry data also,\n"
-"so be WARNED. From the checkboxes on each row it can be enabled/disabled the "
-"plot on canvas\n"
-"for the corresponding tool."
-
-#: flatcamGUI/ObjectUI.py:1561
-msgid ""
-"The value to offset the cut when \n"
-"the Offset type selected is 'Offset'.\n"
-"The value can be positive for 'outside'\n"
-"cut and negative for 'inside' cut."
-msgstr ""
-"The value to offset the cut when \n"
-"the Offset type selected is 'Offset'.\n"
-"The value can be positive for 'outside'\n"
-"cut and negative for 'inside' cut."
-
-#: flatcamGUI/ObjectUI.py:1580 flatcamTools/ToolNCC.py:209
-#: flatcamTools/ToolNCC.py:923 flatcamTools/ToolPaint.py:192
-#: flatcamTools/ToolPaint.py:849 flatcamTools/ToolSolderPaste.py:559
-msgid "New Tool"
-msgstr "New Tool"
-
-#: flatcamGUI/ObjectUI.py:1597
-msgid ""
-"Add a new tool to the Tool Table\n"
-"with the specified diameter."
-msgstr ""
-"Add a new tool to the Tool Table\n"
-"with the specified diameter."
-
-#: flatcamGUI/ObjectUI.py:1602 flatcamTools/ToolNCC.py:300
-#: flatcamTools/ToolNCC.py:634 flatcamTools/ToolPaint.py:283
-#: flatcamTools/ToolPaint.py:679
-msgid "Add from DB"
-msgstr "Add from DB"
-
-#: flatcamGUI/ObjectUI.py:1604 flatcamTools/ToolNCC.py:302
-#: flatcamTools/ToolPaint.py:285
-msgid ""
-"Add a new tool to the Tool Table\n"
-"from the Tool DataBase."
-msgstr ""
-"Add a new tool to the Tool Table\n"
-"from the Tool DataBase."
-
-#: flatcamGUI/ObjectUI.py:1619
-msgid ""
-"Copy a selection of tools in the Tool Table\n"
-"by first selecting a row in the Tool Table."
-msgstr ""
-"Copy a selection of tools in the Tool Table\n"
-"by first selecting a row in the Tool Table."
-
-#: flatcamGUI/ObjectUI.py:1625
-msgid ""
-"Delete a selection of tools in the Tool Table\n"
-"by first selecting a row in the Tool Table."
-msgstr ""
-"Delete a selection of tools in the Tool Table\n"
-"by first selecting a row in the Tool Table."
-
-#: flatcamGUI/ObjectUI.py:1752
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:103
-msgid ""
-"Height of the tool when\n"
-"moving without cutting."
-msgstr ""
-"Height of the tool when\n"
-"moving without cutting."
-
-#: flatcamGUI/ObjectUI.py:1785
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:202
-msgid ""
-"Cutting speed in the XY\n"
-"plane in units per minute.\n"
-"It is called also Plunge."
-msgstr ""
-"Cutting speed in the XY\n"
-"plane in units per minute.\n"
-"It is called also Plunge."
-
-#: flatcamGUI/ObjectUI.py:1800
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:66
-msgid ""
-"Cutting speed in the XY plane\n"
-"(in units per minute).\n"
-"This is for the rapid move G00.\n"
-"It is useful only for Marlin,\n"
-"ignore for any other cases."
-msgstr ""
-"Cutting speed in the XY plane\n"
-"(in units per minute).\n"
-"This is for the rapid move G00.\n"
-"It is useful only for Marlin,\n"
-"ignore for any other cases."
-
-#: flatcamGUI/ObjectUI.py:1844
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:219
-msgid ""
-"Speed of the spindle in RPM (optional).\n"
-"If LASER preprocessor is used,\n"
-"this value is the power of laser."
-msgstr ""
-"Speed of the spindle in RPM (optional).\n"
-"If LASER preprocessor is used,\n"
-"this value is the power of laser."
-
-#: flatcamGUI/ObjectUI.py:1947
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:124
-msgid ""
-"Include tool-change sequence\n"
-"in the Machine Code (Pause for tool change)."
-msgstr ""
-"Include tool-change sequence\n"
-"in the Machine Code (Pause for tool change)."
-
-#: flatcamGUI/ObjectUI.py:2016
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:256
-msgid ""
-"The Preprocessor file that dictates\n"
-"the Machine Code (like GCode, RML, HPGL) output."
-msgstr ""
-"The Preprocessor file that dictates\n"
-"the Machine Code (like GCode, RML, HPGL) output."
-
-#: flatcamGUI/ObjectUI.py:2028
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:201
-msgid "Exclusion areas"
-msgstr "Exclusion areas"
-
-#: flatcamGUI/ObjectUI.py:2031
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:204
-msgid ""
-"Include exclusion areas.\n"
-"In those areas the travel of the tools\n"
-"is forbidden."
-msgstr ""
-"Include exclusion areas.\n"
-"In those areas the travel of the tools\n"
-"is forbidden."
-
-#: flatcamGUI/ObjectUI.py:2053
-#| msgid "Add Track"
-msgid "Add area"
-msgstr "Add area"
-
-#: flatcamGUI/ObjectUI.py:2054
-msgid "Add an Exclusion Area."
-msgstr "Add an Exclusion Area."
-
-#: flatcamGUI/ObjectUI.py:2058
-#| msgid "Clearance"
-msgid "Clear areas"
-msgstr "Clear areas"
-
-#: flatcamGUI/ObjectUI.py:2059
-#| msgid "Delete all extensions from the list."
-msgid "Delete all exclusion areas."
-msgstr "Delete all exclusion areas."
-
-#: flatcamGUI/ObjectUI.py:2068
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:212
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:322
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:286
-#: flatcamTools/ToolNCC.py:578 flatcamTools/ToolPaint.py:522
-msgid "Shape"
-msgstr "Shape"
-
-#: flatcamGUI/ObjectUI.py:2070
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:214
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:324
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:288
-#: flatcamTools/ToolNCC.py:580 flatcamTools/ToolPaint.py:524
-msgid "The kind of selection shape used for area selection."
-msgstr "The kind of selection shape used for area selection."
-
-#: flatcamGUI/ObjectUI.py:2080
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:224
-msgid "Strategy"
-msgstr "Strategy"
-
-#: flatcamGUI/ObjectUI.py:2081
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:225
-msgid ""
-"The strategy followed when encountering an exclusion area.\n"
-"Can be:\n"
-"- Over -> when encountering the area, the tool will go to a set height\n"
-"- Around -> will avoid the exclusion area by going around the area"
-msgstr ""
-"The strategy followed when encountering an exclusion area.\n"
-"Can be:\n"
-"- Over -> when encountering the area, the tool will go to a set height\n"
-"- Around -> will avoid the exclusion area by going around the area"
-
-#: flatcamGUI/ObjectUI.py:2085
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:229
-#| msgid "Overlap"
-msgid "Over"
-msgstr "Over"
-
-#: flatcamGUI/ObjectUI.py:2086
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:230
-#| msgid "Round"
-msgid "Around"
-msgstr "Around"
-
-#: flatcamGUI/ObjectUI.py:2092
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:236
-#| msgid "Overlap"
-msgid "Over Z"
-msgstr "Over Z"
-
-#: flatcamGUI/ObjectUI.py:2093
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:237
-msgid ""
-"The height Z to which the tool will rise in order to avoid\n"
-"an interdiction area."
-msgstr ""
-"The height Z to which the tool will rise in order to avoid\n"
-"an interdiction area."
-
-#: flatcamGUI/ObjectUI.py:2117
-msgid "Generate the CNC Job object."
-msgstr "Generate the CNC Job object."
-
-#: flatcamGUI/ObjectUI.py:2134
-msgid "Launch Paint Tool in Tools Tab."
-msgstr "Launch Paint Tool in Tools Tab."
-
-#: flatcamGUI/ObjectUI.py:2142
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:35
-msgid ""
-"Creates tool paths to cover the\n"
-"whole area of a polygon (remove\n"
-"all copper). You will be asked\n"
-"to click on the desired polygon."
-msgstr ""
-"Creates tool paths to cover the\n"
-"whole area of a polygon (remove\n"
-"all copper). You will be asked\n"
-"to click on the desired polygon."
-
-#: flatcamGUI/ObjectUI.py:2197
-msgid "CNC Job Object"
-msgstr "CNC Job Object"
-
-#: flatcamGUI/ObjectUI.py:2208
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:45
-msgid "Plot kind"
-msgstr "Plot kind"
-
-#: flatcamGUI/ObjectUI.py:2211
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:47
-msgid ""
-"This selects the kind of geometries on the canvas to plot.\n"
-"Those can be either of type 'Travel' which means the moves\n"
-"above the work piece or it can be of type 'Cut',\n"
-"which means the moves that cut into the material."
-msgstr ""
-"This selects the kind of geometries on the canvas to plot.\n"
-"Those can be either of type 'Travel' which means the moves\n"
-"above the work piece or it can be of type 'Cut',\n"
-"which means the moves that cut into the material."
-
-#: flatcamGUI/ObjectUI.py:2220
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:55
-msgid "Travel"
-msgstr "Travel"
-
-#: flatcamGUI/ObjectUI.py:2224
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:64
-msgid "Display Annotation"
-msgstr "Display Annotation"
-
-#: flatcamGUI/ObjectUI.py:2226
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:66
-msgid ""
-"This selects if to display text annotation on the plot.\n"
-"When checked it will display numbers in order for each end\n"
-"of a travel line."
-msgstr ""
-"This selects if to display text annotation on the plot.\n"
-"When checked it will display numbers in order for each end\n"
-"of a travel line."
-
-#: flatcamGUI/ObjectUI.py:2241
-msgid "Travelled dist."
-msgstr "Travelled dist."
-
-#: flatcamGUI/ObjectUI.py:2243 flatcamGUI/ObjectUI.py:2248
-msgid ""
-"This is the total travelled distance on X-Y plane.\n"
-"In current units."
-msgstr ""
-"This is the total travelled distance on X-Y plane.\n"
-"In current units."
-
-#: flatcamGUI/ObjectUI.py:2253
-msgid "Estimated time"
-msgstr "Estimated time"
-
-#: flatcamGUI/ObjectUI.py:2255 flatcamGUI/ObjectUI.py:2260
-msgid ""
-"This is the estimated time to do the routing/drilling,\n"
-"without the time spent in ToolChange events."
-msgstr ""
-"This is the estimated time to do the routing/drilling,\n"
-"without the time spent in ToolChange events."
-
-#: flatcamGUI/ObjectUI.py:2295
-msgid "CNC Tools Table"
-msgstr "CNC Tools Table"
-
-#: flatcamGUI/ObjectUI.py:2298
-msgid ""
-"Tools in this CNCJob object used for cutting.\n"
-"The tool diameter is used for plotting on canvas.\n"
-"The 'Offset' entry will set an offset for the cut.\n"
-"'Offset' can be inside, outside, on path (none) and custom.\n"
-"'Type' entry is only informative and it allow to know the \n"
-"intent of using the current tool. \n"
-"It can be Rough(ing), Finish(ing) or Iso(lation).\n"
-"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n"
-"ball(B), or V-Shaped(V)."
-msgstr ""
-"Tools in this CNCJob object used for cutting.\n"
-"The tool diameter is used for plotting on canvas.\n"
-"The 'Offset' entry will set an offset for the cut.\n"
-"'Offset' can be inside, outside, on path (none) and custom.\n"
-"'Type' entry is only informative and it allow to know the \n"
-"intent of using the current tool. \n"
-"It can be Rough(ing), Finish(ing) or Iso(lation).\n"
-"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n"
-"ball(B), or V-Shaped(V)."
-
-#: flatcamGUI/ObjectUI.py:2326 flatcamGUI/ObjectUI.py:2337
-msgid "P"
-msgstr "P"
-
-#: flatcamGUI/ObjectUI.py:2347
-msgid "Update Plot"
-msgstr "Update Plot"
-
-#: flatcamGUI/ObjectUI.py:2349
-msgid "Update the plot."
-msgstr "Update the plot."
-
-#: flatcamGUI/ObjectUI.py:2356
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:30
-msgid "Export CNC Code"
-msgstr "Export CNC Code"
-
-#: flatcamGUI/ObjectUI.py:2358
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:32
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:33
-msgid ""
-"Export and save G-Code to\n"
-"make this object to a file."
-msgstr ""
-"Export and save G-Code to\n"
-"make this object to a file."
-
-#: flatcamGUI/ObjectUI.py:2364
-msgid "Prepend to CNC Code"
-msgstr "Prepend to CNC Code"
-
-#: flatcamGUI/ObjectUI.py:2366 flatcamGUI/ObjectUI.py:2373
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:49
-msgid ""
-"Type here any G-Code commands you would\n"
-"like to add at the beginning of the G-Code file."
-msgstr ""
-"Type here any G-Code commands you would\n"
-"like to add at the beginning of the G-Code file."
-
-#: flatcamGUI/ObjectUI.py:2379
-msgid "Append to CNC Code"
-msgstr "Append to CNC Code"
-
-#: flatcamGUI/ObjectUI.py:2381 flatcamGUI/ObjectUI.py:2389
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:65
-msgid ""
-"Type here any G-Code commands you would\n"
-"like to append to the generated file.\n"
-"I.e.: M2 (End of program)"
-msgstr ""
-"Type here any G-Code commands you would\n"
-"like to append to the generated file.\n"
-"I.e.: M2 (End of program)"
-
-#: flatcamGUI/ObjectUI.py:2403
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:38
-msgid "Toolchange G-Code"
-msgstr "Toolchange G-Code"
-
-#: flatcamGUI/ObjectUI.py:2406
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:41
-msgid ""
-"Type here any G-Code commands you would\n"
-"like to be executed when Toolchange event is encountered.\n"
-"This will constitute a Custom Toolchange GCode,\n"
-"or a Toolchange Macro.\n"
-"The FlatCAM variables are surrounded by '%' symbol.\n"
-"\n"
-"WARNING: it can be used only with a preprocessor file\n"
-"that has 'toolchange_custom' in it's name and this is built\n"
-"having as template the 'Toolchange Custom' posprocessor file."
-msgstr ""
-"Type here any G-Code commands you would\n"
-"like to be executed when Toolchange event is encountered.\n"
-"This will constitute a Custom Toolchange GCode,\n"
-"or a Toolchange Macro.\n"
-"The FlatCAM variables are surrounded by '%' symbol.\n"
-"\n"
-"WARNING: it can be used only with a preprocessor file\n"
-"that has 'toolchange_custom' in it's name and this is built\n"
-"having as template the 'Toolchange Custom' posprocessor file."
-
-#: flatcamGUI/ObjectUI.py:2421
-msgid ""
-"Type here any G-Code commands you would\n"
-"like to be executed when Toolchange event is encountered.\n"
-"This will constitute a Custom Toolchange GCode,\n"
-"or a Toolchange Macro.\n"
-"The FlatCAM variables are surrounded by '%' symbol.\n"
-"WARNING: it can be used only with a preprocessor file\n"
-"that has 'toolchange_custom' in it's name."
-msgstr ""
-"Type here any G-Code commands you would\n"
-"like to be executed when Toolchange event is encountered.\n"
-"This will constitute a Custom Toolchange GCode,\n"
-"or a Toolchange Macro.\n"
-"The FlatCAM variables are surrounded by '%' symbol.\n"
-"WARNING: it can be used only with a preprocessor file\n"
-"that has 'toolchange_custom' in it's name."
-
-#: flatcamGUI/ObjectUI.py:2436
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:80
-msgid "Use Toolchange Macro"
-msgstr "Use Toolchange Macro"
-
-#: flatcamGUI/ObjectUI.py:2438
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:82
-msgid ""
-"Check this box if you want to use\n"
-"a Custom Toolchange GCode (macro)."
-msgstr ""
-"Check this box if you want to use\n"
-"a Custom Toolchange GCode (macro)."
-
-#: flatcamGUI/ObjectUI.py:2446
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:94
-msgid ""
-"A list of the FlatCAM variables that can be used\n"
-"in the Toolchange event.\n"
-"They have to be surrounded by the '%' symbol"
-msgstr ""
-"A list of the FlatCAM variables that can be used\n"
-"in the Toolchange event.\n"
-"They have to be surrounded by the '%' symbol"
-
-#: flatcamGUI/ObjectUI.py:2453
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:101
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:30
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:31
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:37
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:36
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:36
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:36
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:36
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:30
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:32
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31
-#: flatcamTools/ToolCopperThieving.py:89 flatcamTools/ToolFiducials.py:149
-#: flatcamTools/ToolInvertGerber.py:82
-msgid "Parameters"
-msgstr "Parameters"
-
-#: flatcamGUI/ObjectUI.py:2456
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:106
-msgid "FlatCAM CNC parameters"
-msgstr "FlatCAM CNC parameters"
-
-#: flatcamGUI/ObjectUI.py:2457
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:111
-msgid "tool number"
-msgstr "tool number"
-
-#: flatcamGUI/ObjectUI.py:2458
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:112
-msgid "tool diameter"
-msgstr "tool diameter"
-
-#: flatcamGUI/ObjectUI.py:2459
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:113
-msgid "for Excellon, total number of drills"
-msgstr "for Excellon, total number of drills"
-
-#: flatcamGUI/ObjectUI.py:2461
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:115
-msgid "X coord for Toolchange"
-msgstr "X coord for Toolchange"
-
-#: flatcamGUI/ObjectUI.py:2462
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:116
-msgid "Y coord for Toolchange"
-msgstr "Y coord for Toolchange"
-
-#: flatcamGUI/ObjectUI.py:2463
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:118
-msgid "Z coord for Toolchange"
-msgstr "Z coord for Toolchange"
-
-#: flatcamGUI/ObjectUI.py:2464
-msgid "depth where to cut"
-msgstr "depth where to cut"
-
-#: flatcamGUI/ObjectUI.py:2465
-msgid "height where to travel"
-msgstr "height where to travel"
-
-#: flatcamGUI/ObjectUI.py:2466
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:121
-msgid "the step value for multidepth cut"
-msgstr "the step value for multidepth cut"
-
-#: flatcamGUI/ObjectUI.py:2468
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:123
-msgid "the value for the spindle speed"
-msgstr "the value for the spindle speed"
-
-#: flatcamGUI/ObjectUI.py:2470
-msgid "time to dwell to allow the spindle to reach it's set RPM"
-msgstr "time to dwell to allow the spindle to reach it's set RPM"
-
-#: flatcamGUI/ObjectUI.py:2486
-msgid "View CNC Code"
-msgstr "View CNC Code"
-
-#: flatcamGUI/ObjectUI.py:2488
-msgid ""
-"Opens TAB to view/modify/print G-Code\n"
-"file."
-msgstr ""
-"Opens TAB to view/modify/print G-Code\n"
-"file."
-
-#: flatcamGUI/ObjectUI.py:2493
-msgid "Save CNC Code"
-msgstr "Save CNC Code"
-
-#: flatcamGUI/ObjectUI.py:2495
-msgid ""
-"Opens dialog to save G-Code\n"
-"file."
-msgstr ""
-"Opens dialog to save G-Code\n"
-"file."
-
-#: flatcamGUI/ObjectUI.py:2529
-msgid "Script Object"
-msgstr "Script Object"
-
-#: flatcamGUI/ObjectUI.py:2549 flatcamGUI/ObjectUI.py:2623
-msgid "Auto Completer"
-msgstr "Auto Completer"
-
-#: flatcamGUI/ObjectUI.py:2551
-msgid "This selects if the auto completer is enabled in the Script Editor."
-msgstr "This selects if the auto completer is enabled in the Script Editor."
-
-#: flatcamGUI/ObjectUI.py:2596
-msgid "Document Object"
-msgstr "Document Object"
-
-#: flatcamGUI/ObjectUI.py:2625
-msgid "This selects if the auto completer is enabled in the Document Editor."
-msgstr "This selects if the auto completer is enabled in the Document Editor."
-
-#: flatcamGUI/ObjectUI.py:2643
-msgid "Font Type"
-msgstr "Font Type"
-
-#: flatcamGUI/ObjectUI.py:2660
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:197
-msgid "Font Size"
-msgstr "Font Size"
-
-#: flatcamGUI/ObjectUI.py:2696
-msgid "Alignment"
-msgstr "Alignment"
-
-#: flatcamGUI/ObjectUI.py:2701
-msgid "Align Left"
-msgstr "Align Left"
-
-#: flatcamGUI/ObjectUI.py:2711
-msgid "Align Right"
-msgstr "Align Right"
-
-#: flatcamGUI/ObjectUI.py:2716
-msgid "Justify"
-msgstr "Justify"
-
-#: flatcamGUI/ObjectUI.py:2723
-msgid "Font Color"
-msgstr "Font Color"
-
-#: flatcamGUI/ObjectUI.py:2725
-msgid "Set the font color for the selected text"
-msgstr "Set the font color for the selected text"
-
-#: flatcamGUI/ObjectUI.py:2739
-msgid "Selection Color"
-msgstr "Selection Color"
-
-#: flatcamGUI/ObjectUI.py:2741
-msgid "Set the selection color when doing text selection."
-msgstr "Set the selection color when doing text selection."
-
-#: flatcamGUI/ObjectUI.py:2755
-msgid "Tab Size"
-msgstr "Tab Size"
-
-#: flatcamGUI/ObjectUI.py:2757
-msgid "Set the tab size. In pixels. Default value is 80 pixels."
-msgstr "Set the tab size. In pixels. Default value is 80 pixels."
-
-#: flatcamGUI/PlotCanvasLegacy.py:1299
-msgid ""
-"Could not annotate due of a difference between the number of text elements "
-"and the number of text positions."
-msgstr ""
-"Could not annotate due of a difference between the number of text elements "
-"and the number of text positions."
-
-#: flatcamGUI/preferences/PreferencesUIManager.py:911
-msgid "Preferences applied."
-msgstr "Preferences applied."
-
-#: flatcamGUI/preferences/PreferencesUIManager.py:975
-msgid "Preferences closed without saving."
-msgstr "Preferences closed without saving."
-
-#: flatcamGUI/preferences/PreferencesUIManager.py:987
-msgid "Preferences default values are restored."
-msgstr "Preferences default values are restored."
-
-#: flatcamGUI/preferences/PreferencesUIManager.py:1022
-#: flatcamGUI/preferences/PreferencesUIManager.py:1131
-msgid "Preferences saved."
-msgstr "Preferences saved."
-
-#: flatcamGUI/preferences/PreferencesUIManager.py:1072
-msgid "Preferences edited but not saved."
-msgstr "Preferences edited but not saved."
-
-#: flatcamGUI/preferences/PreferencesUIManager.py:1117
-msgid ""
-"One or more values are changed.\n"
-"Do you want to save the Preferences?"
-msgstr ""
-"One or more values are changed.\n"
-"Do you want to save the Preferences?"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:27
-msgid "CNC Job Adv. Options"
-msgstr "CNC Job Adv. Options"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:64
-msgid ""
-"Type here any G-Code commands you would like to be executed when Toolchange "
-"event is encountered.\n"
-"This will constitute a Custom Toolchange GCode, or a Toolchange Macro.\n"
-"The FlatCAM variables are surrounded by '%' symbol.\n"
-"WARNING: it can be used only with a preprocessor file that has "
-"'toolchange_custom' in it's name."
-msgstr ""
-"Type here any G-Code commands you would like to be executed when Toolchange "
-"event is encountered.\n"
-"This will constitute a Custom Toolchange GCode, or a Toolchange Macro.\n"
-"The FlatCAM variables are surrounded by '%' symbol.\n"
-"WARNING: it can be used only with a preprocessor file that has "
-"'toolchange_custom' in it's name."
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:119
-msgid "Z depth for the cut"
-msgstr "Z depth for the cut"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:120
-msgid "Z height for travel"
-msgstr "Z height for travel"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:126
-msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM"
-msgstr "dwelltime = time to dwell to allow the spindle to reach it's set RPM"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:145
-msgid "Annotation Size"
-msgstr "Annotation Size"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:147
-msgid "The font size of the annotation text. In pixels."
-msgstr "The font size of the annotation text. In pixels."
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:157
-msgid "Annotation Color"
-msgstr "Annotation Color"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:159
-msgid "Set the font color for the annotation texts."
-msgstr "Set the font color for the annotation texts."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:26
-msgid "CNC Job General"
-msgstr "CNC Job General"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:77
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:47
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:59
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:45
-msgid "Circle Steps"
-msgstr "Circle Steps"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:79
-msgid ""
-"The number of circle steps for GCode \n"
-"circle and arc shapes linear approximation."
-msgstr ""
-"The number of circle steps for GCode \n"
-"circle and arc shapes linear approximation."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:88
-msgid "Travel dia"
-msgstr "Travel dia"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:90
-msgid ""
-"The width of the travel lines to be\n"
-"rendered in the plot."
-msgstr ""
-"The width of the travel lines to be\n"
-"rendered in the plot."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:103
-msgid "G-code Decimals"
-msgstr "G-code Decimals"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:106
-#: flatcamTools/ToolFiducials.py:74
-msgid "Coordinates"
-msgstr "Coordinates"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:108
-msgid ""
-"The number of decimals to be used for \n"
-"the X, Y, Z coordinates in CNC code (GCODE, etc.)"
-msgstr ""
-"The number of decimals to be used for \n"
-"the X, Y, Z coordinates in CNC code (GCODE, etc.)"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:119
-#: flatcamTools/ToolProperties.py:519
-msgid "Feedrate"
-msgstr "Feedrate"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:121
-msgid ""
-"The number of decimals to be used for \n"
-"the Feedrate parameter in CNC code (GCODE, etc.)"
-msgstr ""
-"The number of decimals to be used for \n"
-"the Feedrate parameter in CNC code (GCODE, etc.)"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:132
-msgid "Coordinates type"
-msgstr "Coordinates type"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:134
-msgid ""
-"The type of coordinates to be used in Gcode.\n"
-"Can be:\n"
-"- Absolute G90 -> the reference is the origin x=0, y=0\n"
-"- Incremental G91 -> the reference is the previous position"
-msgstr ""
-"The type of coordinates to be used in Gcode.\n"
-"Can be:\n"
-"- Absolute G90 -> the reference is the origin x=0, y=0\n"
-"- Incremental G91 -> the reference is the previous position"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:140
-msgid "Absolute G90"
-msgstr "Absolute G90"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:141
-msgid "Incremental G91"
-msgstr "Incremental G91"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:151
-msgid "Force Windows style line-ending"
-msgstr "Force Windows style line-ending"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:153
-msgid ""
-"When checked will force a Windows style line-ending\n"
-"(\\r\\n) on non-Windows OS's."
-msgstr ""
-"When checked will force a Windows style line-ending\n"
-"(\\r\\n) on non-Windows OS's."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:165
-msgid "Travel Line Color"
-msgstr "Travel Line Color"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:169
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:235
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:262
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:154
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:220
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:84
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:153
-#: flatcamTools/ToolRulesCheck.py:186
-msgid "Outline"
-msgstr "Outline"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:171
-msgid "Set the travel line color for plotted objects."
-msgstr "Set the travel line color for plotted objects."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:186
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:252
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:279
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:170
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:237
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:170
-msgid "Fill"
-msgstr "Fill"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:188
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:254
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:281
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:172
-msgid ""
-"Set the fill color for plotted objects.\n"
-"First 6 digits are the color and the last 2\n"
-"digits are for alpha (transparency) level."
-msgstr ""
-"Set the fill color for plotted objects.\n"
-"First 6 digits are the color and the last 2\n"
-"digits are for alpha (transparency) level."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:205
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:298
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:190
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:257
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:189
-msgid "Alpha"
-msgstr "Alpha"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:207
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:300
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:191
-msgid "Set the fill transparency for plotted objects."
-msgstr "Set the fill transparency for plotted objects."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:231
-msgid "CNCJob Object Color"
-msgstr "CNCJob Object Color"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:237
-msgid "Set the color for plotted objects."
-msgstr "Set the color for plotted objects."
-
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:27
-msgid "CNC Job Options"
-msgstr "CNC Job Options"
-
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:31
-msgid "Export G-Code"
-msgstr "Export G-Code"
-
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:47
-msgid "Prepend to G-Code"
-msgstr "Prepend to G-Code"
-
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:56
-msgid ""
-"Type here any G-Code commands you would like to add at the beginning of the "
-"G-Code file."
-msgstr ""
-"Type here any G-Code commands you would like to add at the beginning of the "
-"G-Code file."
-
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:63
-msgid "Append to G-Code"
-msgstr "Append to G-Code"
-
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:73
-msgid ""
-"Type here any G-Code commands you would like to append to the generated "
-"file.\n"
-"I.e.: M2 (End of program)"
-msgstr ""
-"Type here any G-Code commands you would like to append to the generated "
-"file.\n"
-"I.e.: M2 (End of program)"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:27
-msgid "Excellon Adv. Options"
-msgstr "Excellon Adv. Options"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:34
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:33
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:31
-msgid "Advanced Options"
-msgstr "Advanced Options"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:36
-msgid ""
-"A list of Excellon advanced parameters.\n"
-"Those parameters are available only for\n"
-"Advanced App. Level."
-msgstr ""
-"A list of Excellon advanced parameters.\n"
-"Those parameters are available only for\n"
-"Advanced App. Level."
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:59
-msgid "Toolchange X,Y"
-msgstr "Toolchange X,Y"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:61
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:47
-msgid "Toolchange X,Y position."
-msgstr "Toolchange X,Y position."
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:121
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:134
-msgid "Spindle direction"
-msgstr "Spindle direction"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:123
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:136
-msgid ""
-"This sets the direction that the spindle is rotating.\n"
-"It can be either:\n"
-"- CW = clockwise or\n"
-"- CCW = counter clockwise"
-msgstr ""
-"This sets the direction that the spindle is rotating.\n"
-"It can be either:\n"
-"- CW = clockwise or\n"
-"- CCW = counter clockwise"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:134
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:148
-msgid "Fast Plunge"
-msgstr "Fast Plunge"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:136
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:150
-msgid ""
-"By checking this, the vertical move from\n"
-"Z_Toolchange to Z_move is done with G0,\n"
-"meaning the fastest speed available.\n"
-"WARNING: the move is done at Toolchange X,Y coords."
-msgstr ""
-"By checking this, the vertical move from\n"
-"Z_Toolchange to Z_move is done with G0,\n"
-"meaning the fastest speed available.\n"
-"WARNING: the move is done at Toolchange X,Y coords."
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:143
-msgid "Fast Retract"
-msgstr "Fast Retract"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:145
-msgid ""
-"Exit hole strategy.\n"
-" - When uncheked, while exiting the drilled hole the drill bit\n"
-"will travel slow, with set feedrate (G1), up to zero depth and then\n"
-"travel as fast as possible (G0) to the Z Move (travel height).\n"
-" - When checked the travel from Z cut (cut depth) to Z_move\n"
-"(travel height) is done as fast as possible (G0) in one move."
-msgstr ""
-"Exit hole strategy.\n"
-" - When uncheked, while exiting the drilled hole the drill bit\n"
-"will travel slow, with set feedrate (G1), up to zero depth and then\n"
-"travel as fast as possible (G0) to the Z Move (travel height).\n"
-" - When checked the travel from Z cut (cut depth) to Z_move\n"
-"(travel height) is done as fast as possible (G0) in one move."
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:32
-msgid "A list of Excellon Editor parameters."
-msgstr "A list of Excellon Editor parameters."
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:40
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:41
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:41
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:194
-msgid "Selection limit"
-msgstr "Selection limit"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:42
-msgid ""
-"Set the number of selected Excellon geometry\n"
-"items above which the utility geometry\n"
-"becomes just a selection rectangle.\n"
-"Increases the performance when moving a\n"
-"large number of geometric elements."
-msgstr ""
-"Set the number of selected Excellon geometry\n"
-"items above which the utility geometry\n"
-"becomes just a selection rectangle.\n"
-"Increases the performance when moving a\n"
-"large number of geometric elements."
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:55
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:117
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:123
-msgid "New Dia"
-msgstr "New Dia"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:80
-msgid "Linear Drill Array"
-msgstr "Linear Drill Array"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:84
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:232
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:120
-msgid "Linear Direction"
-msgstr "Linear Direction"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:126
-msgid "Circular Drill Array"
-msgstr "Circular Drill Array"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:130
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:280
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:164
-msgid "Circular Direction"
-msgstr "Circular Direction"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:132
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:282
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:166
-msgid ""
-"Direction for circular array.\n"
-"Can be CW = clockwise or CCW = counter clockwise."
-msgstr ""
-"Direction for circular array.\n"
-"Can be CW = clockwise or CCW = counter clockwise."
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:143
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:293
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:177
-msgid "Circular Angle"
-msgstr "Circular Angle"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:196
-msgid ""
-"Angle at which the slot is placed.\n"
-"The precision is of max 2 decimals.\n"
-"Min value is: -359.99 degrees.\n"
-"Max value is: 360.00 degrees."
-msgstr ""
-"Angle at which the slot is placed.\n"
-"The precision is of max 2 decimals.\n"
-"Min value is: -359.99 degrees.\n"
-"Max value is: 360.00 degrees."
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:215
-msgid "Linear Slot Array"
-msgstr "Linear Slot Array"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:276
-msgid "Circular Slot Array"
-msgstr "Circular Slot Array"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:26
-msgid "Excellon Export"
-msgstr "Excellon Export"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:30
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:31
-msgid "Export Options"
-msgstr "Export Options"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:32
-msgid ""
-"The parameters set here are used in the file exported\n"
-"when using the File -> Export -> Export Excellon menu entry."
-msgstr ""
-"The parameters set here are used in the file exported\n"
-"when using the File -> Export -> Export Excellon menu entry."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:41
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:163
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:39
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:42
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:82
-#: flatcamTools/ToolDistance.py:56 flatcamTools/ToolDistanceMin.py:50
-#: flatcamTools/ToolPcbWizard.py:127 flatcamTools/ToolProperties.py:154
-msgid "Units"
-msgstr "Units"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:43
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:49
-msgid "The units used in the Excellon file."
-msgstr "The units used in the Excellon file."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:46
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:87
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:173
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:47
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:87
-#: flatcamTools/ToolCalculators.py:61 flatcamTools/ToolPcbWizard.py:125
-msgid "INCH"
-msgstr "INCH"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:47
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:174
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:43
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:48
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:88
-#: flatcamTools/ToolCalculators.py:62 flatcamTools/ToolPcbWizard.py:126
-msgid "MM"
-msgstr "MM"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:55
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:56
-msgid "Int/Decimals"
-msgstr "Int/Decimals"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:57
-msgid ""
-"The NC drill files, usually named Excellon files\n"
-"are files that can be found in different formats.\n"
-"Here we set the format used when the provided\n"
-"coordinates are not using period."
-msgstr ""
-"The NC drill files, usually named Excellon files\n"
-"are files that can be found in different formats.\n"
-"Here we set the format used when the provided\n"
-"coordinates are not using period."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:69
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:95
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:124
-msgid ""
-"This numbers signify the number of digits in\n"
-"the whole part of Excellon coordinates."
-msgstr ""
-"This numbers signify the number of digits in\n"
-"the whole part of Excellon coordinates."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:82
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:108
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:137
-msgid ""
-"This numbers signify the number of digits in\n"
-"the decimal part of Excellon coordinates."
-msgstr ""
-"This numbers signify the number of digits in\n"
-"the decimal part of Excellon coordinates."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:91
-msgid "Format"
-msgstr "Format"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:93
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:103
-msgid ""
-"Select the kind of coordinates format used.\n"
-"Coordinates can be saved with decimal point or without.\n"
-"When there is no decimal point, it is required to specify\n"
-"the number of digits for integer part and the number of decimals.\n"
-"Also it will have to be specified if LZ = leading zeros are kept\n"
-"or TZ = trailing zeros are kept."
-msgstr ""
-"Select the kind of coordinates format used.\n"
-"Coordinates can be saved with decimal point or without.\n"
-"When there is no decimal point, it is required to specify\n"
-"the number of digits for integer part and the number of decimals.\n"
-"Also it will have to be specified if LZ = leading zeros are kept\n"
-"or TZ = trailing zeros are kept."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:100
-msgid "Decimal"
-msgstr "Decimal"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:101
-msgid "No-Decimal"
-msgstr "No-Decimal"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:114
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:145
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:96
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:97
-msgid "Zeros"
-msgstr "Zeros"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:117
-msgid ""
-"This sets the type of Excellon zeros.\n"
-"If LZ then Leading Zeros are kept and\n"
-"Trailing Zeros are removed.\n"
-"If TZ is checked then Trailing Zeros are kept\n"
-"and Leading Zeros are removed."
-msgstr ""
-"This sets the type of Excellon zeros.\n"
-"If LZ then Leading Zeros are kept and\n"
-"Trailing Zeros are removed.\n"
-"If TZ is checked then Trailing Zeros are kept\n"
-"and Leading Zeros are removed."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:124
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:158
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:106
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:107
-#: flatcamTools/ToolPcbWizard.py:111
-msgid "LZ"
-msgstr "LZ"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:125
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:159
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:107
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:108
-#: flatcamTools/ToolPcbWizard.py:112
-msgid "TZ"
-msgstr "TZ"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:127
-msgid ""
-"This sets the default type of Excellon zeros.\n"
-"If LZ then Leading Zeros are kept and\n"
-"Trailing Zeros are removed.\n"
-"If TZ is checked then Trailing Zeros are kept\n"
-"and Leading Zeros are removed."
-msgstr ""
-"This sets the default type of Excellon zeros.\n"
-"If LZ then Leading Zeros are kept and\n"
-"Trailing Zeros are removed.\n"
-"If TZ is checked then Trailing Zeros are kept\n"
-"and Leading Zeros are removed."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:137
-msgid "Slot type"
-msgstr "Slot type"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:140
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:150
-msgid ""
-"This sets how the slots will be exported.\n"
-"If ROUTED then the slots will be routed\n"
-"using M15/M16 commands.\n"
-"If DRILLED(G85) the slots will be exported\n"
-"using the Drilled slot command (G85)."
-msgstr ""
-"This sets how the slots will be exported.\n"
-"If ROUTED then the slots will be routed\n"
-"using M15/M16 commands.\n"
-"If DRILLED(G85) the slots will be exported\n"
-"using the Drilled slot command (G85)."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:147
-msgid "Routed"
-msgstr "Routed"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:148
-msgid "Drilled(G85)"
-msgstr "Drilled(G85)"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:29
-msgid "Excellon General"
-msgstr "Excellon General"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:62
-msgid "Excellon Format"
-msgstr "Excellon Format"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:64
-msgid ""
-"The NC drill files, usually named Excellon files\n"
-"are files that can be found in different formats.\n"
-"Here we set the format used when the provided\n"
-"coordinates are not using period.\n"
-"\n"
-"Possible presets:\n"
-"\n"
-"PROTEUS 3:3 MM LZ\n"
-"DipTrace 5:2 MM TZ\n"
-"DipTrace 4:3 MM LZ\n"
-"\n"
-"EAGLE 3:3 MM TZ\n"
-"EAGLE 4:3 MM TZ\n"
-"EAGLE 2:5 INCH TZ\n"
-"EAGLE 3:5 INCH TZ\n"
-"\n"
-"ALTIUM 2:4 INCH LZ\n"
-"Sprint Layout 2:4 INCH LZ\n"
-"KiCAD 3:5 INCH TZ"
-msgstr ""
-"The NC drill files, usually named Excellon files\n"
-"are files that can be found in different formats.\n"
-"Here we set the format used when the provided\n"
-"coordinates are not using period.\n"
-"\n"
-"Possible presets:\n"
-"\n"
-"PROTEUS 3:3 MM LZ\n"
-"DipTrace 5:2 MM TZ\n"
-"DipTrace 4:3 MM LZ\n"
-"\n"
-"EAGLE 3:3 MM TZ\n"
-"EAGLE 4:3 MM TZ\n"
-"EAGLE 2:5 INCH TZ\n"
-"EAGLE 3:5 INCH TZ\n"
-"\n"
-"ALTIUM 2:4 INCH LZ\n"
-"Sprint Layout 2:4 INCH LZ\n"
-"KiCAD 3:5 INCH TZ"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:88
-msgid "Default values for INCH are 2:4"
-msgstr "Default values for INCH are 2:4"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:116
-msgid "METRIC"
-msgstr "METRIC"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:117
-msgid "Default values for METRIC are 3:3"
-msgstr "Default values for METRIC are 3:3"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:148
-msgid ""
-"This sets the type of Excellon zeros.\n"
-"If LZ then Leading Zeros are kept and\n"
-"Trailing Zeros are removed.\n"
-"If TZ is checked then Trailing Zeros are kept\n"
-"and Leading Zeros are removed.\n"
-"\n"
-"This is used when there is no information\n"
-"stored in the Excellon file."
-msgstr ""
-"This sets the type of Excellon zeros.\n"
-"If LZ then Leading Zeros are kept and\n"
-"Trailing Zeros are removed.\n"
-"If TZ is checked then Trailing Zeros are kept\n"
-"and Leading Zeros are removed.\n"
-"\n"
-"This is used when there is no information\n"
-"stored in the Excellon file."
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:166
-msgid ""
-"This sets the default units of Excellon files.\n"
-"If it is not detected in the parsed file the value here\n"
-"will be used.Some Excellon files don't have an header\n"
-"therefore this parameter will be used."
-msgstr ""
-"This sets the default units of Excellon files.\n"
-"If it is not detected in the parsed file the value here\n"
-"will be used.Some Excellon files don't have an header\n"
-"therefore this parameter will be used."
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:176
-msgid ""
-"This sets the units of Excellon files.\n"
-"Some Excellon files don't have an header\n"
-"therefore this parameter will be used."
-msgstr ""
-"This sets the units of Excellon files.\n"
-"Some Excellon files don't have an header\n"
-"therefore this parameter will be used."
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:184
-msgid "Update Export settings"
-msgstr "Update Export settings"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:201
-msgid "Excellon Optimization"
-msgstr "Excellon Optimization"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:204
-msgid "Algorithm:"
-msgstr "Algorithm:"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:206
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:222
-msgid ""
-"This sets the optimization type for the Excellon drill path.\n"
-"If <> is checked then Google OR-Tools algorithm with\n"
-"MetaHeuristic Guided Local Path is used. Default search time is 3sec.\n"
-"If <> is checked then Google OR-Tools Basic algorithm is used.\n"
-"If <> is checked then Travelling Salesman algorithm is used for\n"
-"drill path optimization.\n"
-"\n"
-"If this control is disabled, then FlatCAM works in 32bit mode and it uses\n"
-"Travelling Salesman algorithm for path optimization."
-msgstr ""
-"This sets the optimization type for the Excellon drill path.\n"
-"If <> is checked then Google OR-Tools algorithm with\n"
-"MetaHeuristic Guided Local Path is used. Default search time is 3sec.\n"
-"If <> is checked then Google OR-Tools Basic algorithm is used.\n"
-"If <> is checked then Travelling Salesman algorithm is used for\n"
-"drill path optimization.\n"
-"\n"
-"If this control is disabled, then FlatCAM works in 32bit mode and it uses\n"
-"Travelling Salesman algorithm for path optimization."
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:217
-msgid "MetaHeuristic"
-msgstr "MetaHeuristic"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:218
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:104
-#: flatcamObjects/FlatCAMExcellon.py:614 flatcamObjects/FlatCAMGeometry.py:510
-#: flatcamObjects/FlatCAMGerber.py:251
-msgid "Basic"
-msgstr "Basic"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:219
-msgid "TSA"
-msgstr "TSA"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:236
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:245
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:237
-msgid "Duration"
-msgstr "Duration"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:239
-msgid ""
-"When OR-Tools Metaheuristic (MH) is enabled there is a\n"
-"maximum threshold for how much time is spent doing the\n"
-"path optimization. This max duration is set here.\n"
-"In seconds."
-msgstr ""
-"When OR-Tools Metaheuristic (MH) is enabled there is a\n"
-"maximum threshold for how much time is spent doing the\n"
-"path optimization. This max duration is set here.\n"
-"In seconds."
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:258
-msgid "Excellon Object Color"
-msgstr "Excellon Object Color"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:264
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:86
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:155
-msgid "Set the line color for plotted objects."
-msgstr "Set the line color for plotted objects."
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:29
-msgid "Excellon Options"
-msgstr "Excellon Options"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:33
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:34
-msgid "Create CNC Job"
-msgstr "Create CNC Job"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:35
-msgid ""
-"Parameters used to create a CNC Job object\n"
-"for this drill object."
-msgstr ""
-"Parameters used to create a CNC Job object\n"
-"for this drill object."
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:152
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:121
-msgid "Tool change"
-msgstr "Tool change"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:236
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:232
-msgid "Enable Dwell"
-msgstr "Enable Dwell"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:259
-msgid ""
-"The preprocessor JSON file that dictates\n"
-"Gcode output."
-msgstr ""
-"The preprocessor JSON file that dictates\n"
-"Gcode output."
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:270
-msgid "Gcode"
-msgstr "Gcode"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:272
-msgid ""
-"Choose what to use for GCode generation:\n"
-"'Drills', 'Slots' or 'Both'.\n"
-"When choosing 'Slots' or 'Both', slots will be\n"
-"converted to drills."
-msgstr ""
-"Choose what to use for GCode generation:\n"
-"'Drills', 'Slots' or 'Both'.\n"
-"When choosing 'Slots' or 'Both', slots will be\n"
-"converted to drills."
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:288
-msgid "Mill Holes"
-msgstr "Mill Holes"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:290
-msgid "Create Geometry for milling holes."
-msgstr "Create Geometry for milling holes."
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:294
-msgid "Drill Tool dia"
-msgstr "Drill Tool dia"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:305
-msgid "Slot Tool dia"
-msgstr "Slot Tool dia"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:307
-msgid ""
-"Diameter of the cutting tool\n"
-"when milling slots."
-msgstr ""
-"Diameter of the cutting tool\n"
-"when milling slots."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:28
-msgid "App Settings"
-msgstr "App Settings"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:49
-msgid "Grid Settings"
-msgstr "Grid Settings"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:53
-msgid "X value"
-msgstr "X value"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:55
-msgid "This is the Grid snap value on X axis."
-msgstr "This is the Grid snap value on X axis."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:65
-msgid "Y value"
-msgstr "Y value"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:67
-msgid "This is the Grid snap value on Y axis."
-msgstr "This is the Grid snap value on Y axis."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:77
-msgid "Snap Max"
-msgstr "Snap Max"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:92
-msgid "Workspace Settings"
-msgstr "Workspace Settings"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:95
-msgid "Active"
-msgstr "Active"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:97
-msgid ""
-"Draw a delimiting rectangle on canvas.\n"
-"The purpose is to illustrate the limits for our work."
-msgstr ""
-"Draw a delimiting rectangle on canvas.\n"
-"The purpose is to illustrate the limits for our work."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:105
-msgid ""
-"Select the type of rectangle to be used on canvas,\n"
-"as valid workspace."
-msgstr ""
-"Select the type of rectangle to be used on canvas,\n"
-"as valid workspace."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:171
-msgid "Orientation"
-msgstr "Orientation"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:172
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:239
-#: flatcamTools/ToolFilm.py:422
-msgid ""
-"Can be:\n"
-"- Portrait\n"
-"- Landscape"
-msgstr ""
-"Can be:\n"
-"- Portrait\n"
-"- Landscape"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:176
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:243
-#: flatcamTools/ToolFilm.py:426
-msgid "Portrait"
-msgstr "Portrait"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:177
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:244
-#: flatcamTools/ToolFilm.py:427
-msgid "Landscape"
-msgstr "Landscape"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:201
-msgid "Notebook"
-msgstr "Notebook"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:203
-msgid ""
-"This sets the font size for the elements found in the Notebook.\n"
-"The notebook is the collapsible area in the left side of the GUI,\n"
-"and include the Project, Selected and Tool tabs."
-msgstr ""
-"This sets the font size for the elements found in the Notebook.\n"
-"The notebook is the collapsible area in the left side of the GUI,\n"
-"and include the Project, Selected and Tool tabs."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:222
-msgid "Axis"
-msgstr "Axis"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:224
-msgid "This sets the font size for canvas axis."
-msgstr "This sets the font size for canvas axis."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:241
-msgid "Textbox"
-msgstr "Textbox"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:243
-msgid ""
-"This sets the font size for the Textbox GUI\n"
-"elements that are used in FlatCAM."
-msgstr ""
-"This sets the font size for the Textbox GUI\n"
-"elements that are used in FlatCAM."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:269
-msgid "Mouse Settings"
-msgstr "Mouse Settings"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:273
-msgid "Cursor Shape"
-msgstr "Cursor Shape"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:275
-msgid ""
-"Choose a mouse cursor shape.\n"
-"- Small -> with a customizable size.\n"
-"- Big -> Infinite lines"
-msgstr ""
-"Choose a mouse cursor shape.\n"
-"- Small -> with a customizable size.\n"
-"- Big -> Infinite lines"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:281
-msgid "Small"
-msgstr "Small"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:282
-msgid "Big"
-msgstr "Big"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:289
-msgid "Cursor Size"
-msgstr "Cursor Size"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:291
-msgid "Set the size of the mouse cursor, in pixels."
-msgstr "Set the size of the mouse cursor, in pixels."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:302
-msgid "Cursor Width"
-msgstr "Cursor Width"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:304
-msgid "Set the line width of the mouse cursor, in pixels."
-msgstr "Set the line width of the mouse cursor, in pixels."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:315
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:322
-msgid "Cursor Color"
-msgstr "Cursor Color"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:317
-msgid "Check this box to color mouse cursor."
-msgstr "Check this box to color mouse cursor."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:324
-msgid "Set the color of the mouse cursor."
-msgstr "Set the color of the mouse cursor."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:347
-msgid "Pan Button"
-msgstr "Pan Button"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:349
-msgid ""
-"Select the mouse button to use for panning:\n"
-"- MMB --> Middle Mouse Button\n"
-"- RMB --> Right Mouse Button"
-msgstr ""
-"Select the mouse button to use for panning:\n"
-"- MMB --> Middle Mouse Button\n"
-"- RMB --> Right Mouse Button"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:353
-msgid "MMB"
-msgstr "MMB"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:354
-msgid "RMB"
-msgstr "RMB"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:360
-msgid "Multiple Selection"
-msgstr "Multiple Selection"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:362
-msgid "Select the key used for multiple selection."
-msgstr "Select the key used for multiple selection."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:364
-msgid "CTRL"
-msgstr "CTRL"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:365
-msgid "SHIFT"
-msgstr "SHIFT"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:376
-msgid "Delete object confirmation"
-msgstr "Delete object confirmation"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:378
-msgid ""
-"When checked the application will ask for user confirmation\n"
-"whenever the Delete object(s) event is triggered, either by\n"
-"menu shortcut or key shortcut."
-msgstr ""
-"When checked the application will ask for user confirmation\n"
-"whenever the Delete object(s) event is triggered, either by\n"
-"menu shortcut or key shortcut."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:385
-msgid "\"Open\" behavior"
-msgstr "\"Open\" behavior"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:387
-msgid ""
-"When checked the path for the last saved file is used when saving files,\n"
-"and the path for the last opened file is used when opening files.\n"
-"\n"
-"When unchecked the path for opening files is the one used last: either the\n"
-"path for saving files or the path for opening files."
-msgstr ""
-"When checked the path for the last saved file is used when saving files,\n"
-"and the path for the last opened file is used when opening files.\n"
-"\n"
-"When unchecked the path for opening files is the one used last: either the\n"
-"path for saving files or the path for opening files."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:396
-msgid "Enable ToolTips"
-msgstr "Enable ToolTips"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:398
-msgid ""
-"Check this box if you want to have toolTips displayed\n"
-"when hovering with mouse over items throughout the App."
-msgstr ""
-"Check this box if you want to have toolTips displayed\n"
-"when hovering with mouse over items throughout the App."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:405
-msgid "Allow Machinist Unsafe Settings"
-msgstr "Allow Machinist Unsafe Settings"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:407
-msgid ""
-"If checked, some of the application settings will be allowed\n"
-"to have values that are usually unsafe to use.\n"
-"Like Z travel negative values or Z Cut positive values.\n"
-"It will applied at the next application start.\n"
-"<>: Don't change this unless you know what you are doing !!!"
-msgstr ""
-"If checked, some of the application settings will be allowed\n"
-"to have values that are usually unsafe to use.\n"
-"Like Z travel negative values or Z Cut positive values.\n"
-"It will applied at the next application start.\n"
-"<>: Don't change this unless you know what you are doing !!!"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:419
-msgid "Bookmarks limit"
-msgstr "Bookmarks limit"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:421
-msgid ""
-"The maximum number of bookmarks that may be installed in the menu.\n"
-"The number of bookmarks in the bookmark manager may be greater\n"
-"but the menu will hold only so much."
-msgstr ""
-"The maximum number of bookmarks that may be installed in the menu.\n"
-"The number of bookmarks in the bookmark manager may be greater\n"
-"but the menu will hold only so much."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:430
-msgid "Activity Icon"
-msgstr "Activity Icon"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:432
-msgid "Select the GIF that show activity when FlatCAM is active."
-msgstr "Select the GIF that show activity when FlatCAM is active."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:29
-msgid "App Preferences"
-msgstr "App Preferences"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:40
-msgid ""
-"The default value for FlatCAM units.\n"
-"Whatever is selected here is set every time\n"
-"FlatCAM is started."
-msgstr ""
-"The default value for FlatCAM units.\n"
-"Whatever is selected here is set every time\n"
-"FlatCAM is started."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:44
-msgid "IN"
-msgstr "IN"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:50
-msgid "Precision MM"
-msgstr "Precision MM"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:52
-msgid ""
-"The number of decimals used throughout the application\n"
-"when the set units are in METRIC system.\n"
-"Any change here require an application restart."
-msgstr ""
-"The number of decimals used throughout the application\n"
-"when the set units are in METRIC system.\n"
-"Any change here require an application restart."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:64
-msgid "Precision INCH"
-msgstr "Precision INCH"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:66
-msgid ""
-"The number of decimals used throughout the application\n"
-"when the set units are in INCH system.\n"
-"Any change here require an application restart."
-msgstr ""
-"The number of decimals used throughout the application\n"
-"when the set units are in INCH system.\n"
-"Any change here require an application restart."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:78
-msgid "Graphic Engine"
-msgstr "Graphic Engine"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:79
-msgid ""
-"Choose what graphic engine to use in FlatCAM.\n"
-"Legacy(2D) -> reduced functionality, slow performance but enhanced "
-"compatibility.\n"
-"OpenGL(3D) -> full functionality, high performance\n"
-"Some graphic cards are too old and do not work in OpenGL(3D) mode, like:\n"
-"Intel HD3000 or older. In this case the plot area will be black therefore\n"
-"use the Legacy(2D) mode."
-msgstr ""
-"Choose what graphic engine to use in FlatCAM.\n"
-"Legacy(2D) -> reduced functionality, slow performance but enhanced "
-"compatibility.\n"
-"OpenGL(3D) -> full functionality, high performance\n"
-"Some graphic cards are too old and do not work in OpenGL(3D) mode, like:\n"
-"Intel HD3000 or older. In this case the plot area will be black therefore\n"
-"use the Legacy(2D) mode."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:85
-msgid "Legacy(2D)"
-msgstr "Legacy(2D)"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:86
-msgid "OpenGL(3D)"
-msgstr "OpenGL(3D)"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:98
-msgid "APP. LEVEL"
-msgstr "APP. LEVEL"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:99
-msgid ""
-"Choose the default level of usage for FlatCAM.\n"
-"BASIC level -> reduced functionality, best for beginner's.\n"
-"ADVANCED level -> full functionality.\n"
-"\n"
-"The choice here will influence the parameters in\n"
-"the Selected Tab for all kinds of FlatCAM objects."
-msgstr ""
-"Choose the default level of usage for FlatCAM.\n"
-"BASIC level -> reduced functionality, best for beginner's.\n"
-"ADVANCED level -> full functionality.\n"
-"\n"
-"The choice here will influence the parameters in\n"
-"the Selected Tab for all kinds of FlatCAM objects."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:105
-#: flatcamObjects/FlatCAMExcellon.py:627 flatcamObjects/FlatCAMGeometry.py:531
-#: flatcamObjects/FlatCAMGerber.py:278
-msgid "Advanced"
-msgstr "Advanced"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:111
-msgid "Portable app"
-msgstr "Portable app"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:112
-msgid ""
-"Choose if the application should run as portable.\n"
-"\n"
-"If Checked the application will run portable,\n"
-"which means that the preferences files will be saved\n"
-"in the application folder, in the lib\\config subfolder."
-msgstr ""
-"Choose if the application should run as portable.\n"
-"\n"
-"If Checked the application will run portable,\n"
-"which means that the preferences files will be saved\n"
-"in the application folder, in the lib\\config subfolder."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:125
-msgid "Languages"
-msgstr "Languages"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:126
-msgid "Set the language used throughout FlatCAM."
-msgstr "Set the language used throughout FlatCAM."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:132
-msgid "Apply Language"
-msgstr "Apply Language"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:133
-msgid ""
-"Set the language used throughout FlatCAM.\n"
-"The app will restart after click."
-msgstr ""
-"Set the language used throughout FlatCAM.\n"
-"The app will restart after click."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:147
-msgid "Startup Settings"
-msgstr "Startup Settings"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:151
-msgid "Splash Screen"
-msgstr "Splash Screen"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:153
-msgid "Enable display of the splash screen at application startup."
-msgstr "Enable display of the splash screen at application startup."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:165
-msgid "Sys Tray Icon"
-msgstr "Sys Tray Icon"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:167
-msgid "Enable display of FlatCAM icon in Sys Tray."
-msgstr "Enable display of FlatCAM icon in Sys Tray."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:172
-msgid "Show Shell"
-msgstr "Show Shell"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:174
-msgid ""
-"Check this box if you want the shell to\n"
-"start automatically at startup."
-msgstr ""
-"Check this box if you want the shell to\n"
-"start automatically at startup."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:181
-msgid "Show Project"
-msgstr "Show Project"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:183
-msgid ""
-"Check this box if you want the project/selected/tool tab area to\n"
-"to be shown automatically at startup."
-msgstr ""
-"Check this box if you want the project/selected/tool tab area to\n"
-"to be shown automatically at startup."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:189
-msgid "Version Check"
-msgstr "Version Check"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:191
-msgid ""
-"Check this box if you want to check\n"
-"for a new version automatically at startup."
-msgstr ""
-"Check this box if you want to check\n"
-"for a new version automatically at startup."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:198
-msgid "Send Statistics"
-msgstr "Send Statistics"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:200
-msgid ""
-"Check this box if you agree to send anonymous\n"
-"stats automatically at startup, to help improve FlatCAM."
-msgstr ""
-"Check this box if you agree to send anonymous\n"
-"stats automatically at startup, to help improve FlatCAM."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:214
-msgid "Workers number"
-msgstr "Workers number"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:216
-msgid ""
-"The number of Qthreads made available to the App.\n"
-"A bigger number may finish the jobs more quickly but\n"
-"depending on your computer speed, may make the App\n"
-"unresponsive. Can have a value between 2 and 16.\n"
-"Default value is 2.\n"
-"After change, it will be applied at next App start."
-msgstr ""
-"The number of Qthreads made available to the App.\n"
-"A bigger number may finish the jobs more quickly but\n"
-"depending on your computer speed, may make the App\n"
-"unresponsive. Can have a value between 2 and 16.\n"
-"Default value is 2.\n"
-"After change, it will be applied at next App start."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:230
-msgid "Geo Tolerance"
-msgstr "Geo Tolerance"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:232
-msgid ""
-"This value can counter the effect of the Circle Steps\n"
-"parameter. Default value is 0.005.\n"
-"A lower value will increase the detail both in image\n"
-"and in Gcode for the circles, with a higher cost in\n"
-"performance. Higher value will provide more\n"
-"performance at the expense of level of detail."
-msgstr ""
-"This value can counter the effect of the Circle Steps\n"
-"parameter. Default value is 0.005.\n"
-"A lower value will increase the detail both in image\n"
-"and in Gcode for the circles, with a higher cost in\n"
-"performance. Higher value will provide more\n"
-"performance at the expense of level of detail."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:252
-msgid "Save Settings"
-msgstr "Save Settings"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:256
-msgid "Save Compressed Project"
-msgstr "Save Compressed Project"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:258
-msgid ""
-"Whether to save a compressed or uncompressed project.\n"
-"When checked it will save a compressed FlatCAM project."
-msgstr ""
-"Whether to save a compressed or uncompressed project.\n"
-"When checked it will save a compressed FlatCAM project."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:267
-msgid "Compression"
-msgstr "Compression"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:269
-msgid ""
-"The level of compression used when saving\n"
-"a FlatCAM project. Higher value means better compression\n"
-"but require more RAM usage and more processing time."
-msgstr ""
-"The level of compression used when saving\n"
-"a FlatCAM project. Higher value means better compression\n"
-"but require more RAM usage and more processing time."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:280
-msgid "Enable Auto Save"
-msgstr "Enable Auto Save"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:282
-msgid ""
-"Check to enable the autosave feature.\n"
-"When enabled, the application will try to save a project\n"
-"at the set interval."
-msgstr ""
-"Check to enable the autosave feature.\n"
-"When enabled, the application will try to save a project\n"
-"at the set interval."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:292
-msgid "Interval"
-msgstr "Interval"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:294
-msgid ""
-"Time interval for autosaving. In milliseconds.\n"
-"The application will try to save periodically but only\n"
-"if the project was saved manually at least once.\n"
-"While active, some operations may block this feature."
-msgstr ""
-"Time interval for autosaving. In milliseconds.\n"
-"The application will try to save periodically but only\n"
-"if the project was saved manually at least once.\n"
-"While active, some operations may block this feature."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:310
-msgid "Text to PDF parameters"
-msgstr "Text to PDF parameters"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:312
-msgid "Used when saving text in Code Editor or in FlatCAM Document objects."
-msgstr "Used when saving text in Code Editor or in FlatCAM Document objects."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:321
-msgid "Top Margin"
-msgstr "Top Margin"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:323
-msgid "Distance between text body and the top of the PDF file."
-msgstr "Distance between text body and the top of the PDF file."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:334
-msgid "Bottom Margin"
-msgstr "Bottom Margin"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:336
-msgid "Distance between text body and the bottom of the PDF file."
-msgstr "Distance between text body and the bottom of the PDF file."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:347
-msgid "Left Margin"
-msgstr "Left Margin"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:349
-msgid "Distance between text body and the left of the PDF file."
-msgstr "Distance between text body and the left of the PDF file."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:360
-msgid "Right Margin"
-msgstr "Right Margin"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:362
-msgid "Distance between text body and the right of the PDF file."
-msgstr "Distance between text body and the right of the PDF file."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:26
-msgid "GUI Preferences"
-msgstr "GUI Preferences"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:36
-msgid "Theme"
-msgstr "Theme"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:38
-msgid ""
-"Select a theme for FlatCAM.\n"
-"It will theme the plot area."
-msgstr ""
-"Select a theme for FlatCAM.\n"
-"It will theme the plot area."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:43
-msgid "Light"
-msgstr "Light"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:44
-msgid "Dark"
-msgstr "Dark"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:51
-msgid "Use Gray Icons"
-msgstr "Use Gray Icons"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:53
-msgid ""
-"Check this box to use a set of icons with\n"
-"a lighter (gray) color. To be used when a\n"
-"full dark theme is applied."
-msgstr ""
-"Check this box to use a set of icons with\n"
-"a lighter (gray) color. To be used when a\n"
-"full dark theme is applied."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:59
-msgid "Apply Theme"
-msgstr "Apply Theme"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:61
-msgid ""
-"Select a theme for FlatCAM.\n"
-"It will theme the plot area.\n"
-"The application will restart after change."
-msgstr ""
-"Select a theme for FlatCAM.\n"
-"It will theme the plot area.\n"
-"The application will restart after change."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:73
-msgid "Layout"
-msgstr "Layout"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:75
-msgid ""
-"Select an layout for FlatCAM.\n"
-"It is applied immediately."
-msgstr ""
-"Select an layout for FlatCAM.\n"
-"It is applied immediately."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:95
-msgid "Style"
-msgstr "Style"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:97
-msgid ""
-"Select an style for FlatCAM.\n"
-"It will be applied at the next app start."
-msgstr ""
-"Select an style for FlatCAM.\n"
-"It will be applied at the next app start."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:111
-msgid "Activate HDPI Support"
-msgstr "Activate HDPI Support"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:113
-msgid ""
-"Enable High DPI support for FlatCAM.\n"
-"It will be applied at the next app start."
-msgstr ""
-"Enable High DPI support for FlatCAM.\n"
-"It will be applied at the next app start."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:127
-msgid "Display Hover Shape"
-msgstr "Display Hover Shape"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:129
-msgid ""
-"Enable display of a hover shape for FlatCAM objects.\n"
-"It is displayed whenever the mouse cursor is hovering\n"
-"over any kind of not-selected object."
-msgstr ""
-"Enable display of a hover shape for FlatCAM objects.\n"
-"It is displayed whenever the mouse cursor is hovering\n"
-"over any kind of not-selected object."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:136
-msgid "Display Selection Shape"
-msgstr "Display Selection Shape"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:138
-msgid ""
-"Enable the display of a selection shape for FlatCAM objects.\n"
-"It is displayed whenever the mouse selects an object\n"
-"either by clicking or dragging mouse from left to right or\n"
-"right to left."
-msgstr ""
-"Enable the display of a selection shape for FlatCAM objects.\n"
-"It is displayed whenever the mouse selects an object\n"
-"either by clicking or dragging mouse from left to right or\n"
-"right to left."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:151
-msgid "Left-Right Selection Color"
-msgstr "Left-Right Selection Color"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:156
-msgid "Set the line color for the 'left to right' selection box."
-msgstr "Set the line color for the 'left to right' selection box."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:172
-msgid ""
-"Set the fill color for the selection box\n"
-"in case that the selection is done from left to right.\n"
-"First 6 digits are the color and the last 2\n"
-"digits are for alpha (transparency) level."
-msgstr ""
-"Set the fill color for the selection box\n"
-"in case that the selection is done from left to right.\n"
-"First 6 digits are the color and the last 2\n"
-"digits are for alpha (transparency) level."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:192
-msgid "Set the fill transparency for the 'left to right' selection box."
-msgstr "Set the fill transparency for the 'left to right' selection box."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:216
-msgid "Right-Left Selection Color"
-msgstr "Right-Left Selection Color"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:222
-msgid "Set the line color for the 'right to left' selection box."
-msgstr "Set the line color for the 'right to left' selection box."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:239
-msgid ""
-"Set the fill color for the selection box\n"
-"in case that the selection is done from right to left.\n"
-"First 6 digits are the color and the last 2\n"
-"digits are for alpha (transparency) level."
-msgstr ""
-"Set the fill color for the selection box\n"
-"in case that the selection is done from right to left.\n"
-"First 6 digits are the color and the last 2\n"
-"digits are for alpha (transparency) level."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:259
-msgid "Set the fill transparency for selection 'right to left' box."
-msgstr "Set the fill transparency for selection 'right to left' box."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:286
-msgid "Editor Color"
-msgstr "Editor Color"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:290
-msgid "Drawing"
-msgstr "Drawing"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:292
-msgid "Set the color for the shape."
-msgstr "Set the color for the shape."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:309
-msgid "Set the color of the shape when selected."
-msgstr "Set the color of the shape when selected."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:332
-msgid "Project Items Color"
-msgstr "Project Items Color"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:336
-msgid "Enabled"
-msgstr "Enabled"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:338
-msgid "Set the color of the items in Project Tab Tree."
-msgstr "Set the color of the items in Project Tab Tree."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:352
-msgid "Disabled"
-msgstr "Disabled"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:354
-msgid ""
-"Set the color of the items in Project Tab Tree,\n"
-"for the case when the items are disabled."
-msgstr ""
-"Set the color of the items in Project Tab Tree,\n"
-"for the case when the items are disabled."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:370
-msgid "Project AutoHide"
-msgstr "Project AutoHide"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:372
-msgid ""
-"Check this box if you want the project/selected/tool tab area to\n"
-"hide automatically when there are no objects loaded and\n"
-"to show whenever a new object is created."
-msgstr ""
-"Check this box if you want the project/selected/tool tab area to\n"
-"hide automatically when there are no objects loaded and\n"
-"to show whenever a new object is created."
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:27
-msgid "Geometry Adv. Options"
-msgstr "Geometry Adv. Options"
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:35
-msgid ""
-"A list of Geometry advanced parameters.\n"
-"Those parameters are available only for\n"
-"Advanced App. Level."
-msgstr ""
-"A list of Geometry advanced parameters.\n"
-"Those parameters are available only for\n"
-"Advanced App. Level."
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:45
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:112
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:134
-#: flatcamTools/ToolCalibration.py:125 flatcamTools/ToolSolderPaste.py:240
-msgid "Toolchange X-Y"
-msgstr "Toolchange X-Y"
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:56
-msgid ""
-"Height of the tool just after starting the work.\n"
-"Delete the value if you don't need this feature."
-msgstr ""
-"Height of the tool just after starting the work.\n"
-"Delete the value if you don't need this feature."
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:158
-msgid "Segment X size"
-msgstr "Segment X size"
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:160
-msgid ""
-"The size of the trace segment on the X axis.\n"
-"Useful for auto-leveling.\n"
-"A value of 0 means no segmentation on the X axis."
-msgstr ""
-"The size of the trace segment on the X axis.\n"
-"Useful for auto-leveling.\n"
-"A value of 0 means no segmentation on the X axis."
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:174
-msgid "Segment Y size"
-msgstr "Segment Y size"
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:176
-msgid ""
-"The size of the trace segment on the Y axis.\n"
-"Useful for auto-leveling.\n"
-"A value of 0 means no segmentation on the Y axis."
-msgstr ""
-"The size of the trace segment on the Y axis.\n"
-"Useful for auto-leveling.\n"
-"A value of 0 means no segmentation on the Y axis."
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:192
-#| msgid "Area Selection"
-msgid "Area Exclusion"
-msgstr "Area Exclusion"
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:194
-#| msgid ""
-#| "A list of Excellon advanced parameters.\n"
-#| "Those parameters are available only for\n"
-#| "Advanced App. Level."
-msgid ""
-"Area exclusion parameters.\n"
-"Those parameters are available only for\n"
-"Advanced App. Level."
-msgstr ""
-"Area exclusion parameters.\n"
-"Those parameters are available only for\n"
-"Advanced App. Level."
-
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:33
-msgid "A list of Geometry Editor parameters."
-msgstr "A list of Geometry Editor parameters."
-
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:43
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:196
-msgid ""
-"Set the number of selected geometry\n"
-"items above which the utility geometry\n"
-"becomes just a selection rectangle.\n"
-"Increases the performance when moving a\n"
-"large number of geometric elements."
-msgstr ""
-"Set the number of selected geometry\n"
-"items above which the utility geometry\n"
-"becomes just a selection rectangle.\n"
-"Increases the performance when moving a\n"
-"large number of geometric elements."
-
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:27
-msgid "Geometry General"
-msgstr "Geometry General"
-
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:49
-msgid ""
-"The number of circle steps for Geometry \n"
-"circle and arc shapes linear approximation."
-msgstr ""
-"The number of circle steps for Geometry \n"
-"circle and arc shapes linear approximation."
-
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:63
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:41
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:48
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:42
-msgid "Tools Dia"
-msgstr "Tools Dia"
-
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:65
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:108
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:43
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:50
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:44
-msgid ""
-"Diameters of the tools, separated by comma.\n"
-"The value of the diameter has to use the dot decimals separator.\n"
-"Valid values: 0.3, 1.0"
-msgstr ""
-"Diameters of the tools, separated by comma.\n"
-"The value of the diameter has to use the dot decimals separator.\n"
-"Valid values: 0.3, 1.0"
-
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:80
-msgid "Geometry Object Color"
-msgstr "Geometry Object Color"
-
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:28
-msgid "Geometry Options"
-msgstr "Geometry Options"
-
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:36
-msgid ""
-"Create a CNC Job object\n"
-"tracing the contours of this\n"
-"Geometry object."
-msgstr ""
-"Create a CNC Job object\n"
-"tracing the contours of this\n"
-"Geometry object."
-
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:80
-msgid "Depth/Pass"
-msgstr "Depth/Pass"
-
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:82
-msgid ""
-"The depth to cut on each pass,\n"
-"when multidepth is enabled.\n"
-"It has positive value although\n"
-"it is a fraction from the depth\n"
-"which has negative value."
-msgstr ""
-"The depth to cut on each pass,\n"
-"when multidepth is enabled.\n"
-"It has positive value although\n"
-"it is a fraction from the depth\n"
-"which has negative value."
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:27
-msgid "Gerber Adv. Options"
-msgstr "Gerber Adv. Options"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:33
-msgid ""
-"A list of Gerber advanced parameters.\n"
-"Those parameters are available only for\n"
-"Advanced App. Level."
-msgstr ""
-"A list of Gerber advanced parameters.\n"
-"Those parameters are available only for\n"
-"Advanced App. Level."
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:52
-msgid "Table Show/Hide"
-msgstr "Table Show/Hide"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:54
-msgid ""
-"Toggle the display of the Gerber Apertures Table.\n"
-"Also, on hide, it will delete all mark shapes\n"
-"that are drawn on canvas."
-msgstr ""
-"Toggle the display of the Gerber Apertures Table.\n"
-"Also, on hide, it will delete all mark shapes\n"
-"that are drawn on canvas."
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:134
-msgid "Exterior"
-msgstr "Exterior"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:135
-msgid "Interior"
-msgstr "Interior"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:148
-msgid ""
-"Buffering type:\n"
-"- None --> best performance, fast file loading but no so good display\n"
-"- Full --> slow file loading but good visuals. This is the default.\n"
-"<>: Don't change this unless you know what you are doing !!!"
-msgstr ""
-"Buffering type:\n"
-"- None --> best performance, fast file loading but no so good display\n"
-"- Full --> slow file loading but good visuals. This is the default.\n"
-"<>: Don't change this unless you know what you are doing !!!"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:153
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:207
-#: flatcamTools/ToolFiducials.py:201 flatcamTools/ToolFilm.py:255
-#: flatcamTools/ToolProperties.py:452 flatcamTools/ToolProperties.py:455
-#: flatcamTools/ToolProperties.py:458 flatcamTools/ToolProperties.py:483
-msgid "None"
-msgstr "None"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:159
-msgid "Simplify"
-msgstr "Simplify"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:161
-msgid ""
-"When checked all the Gerber polygons will be\n"
-"loaded with simplification having a set tolerance.\n"
-"<>: Don't change this unless you know what you are doing !!!"
-msgstr ""
-"When checked all the Gerber polygons will be\n"
-"loaded with simplification having a set tolerance.\n"
-"<>: Don't change this unless you know what you are doing !!!"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:168
-msgid "Tolerance"
-msgstr "Tolerance"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:169
-msgid "Tolerance for polygon simplification."
-msgstr "Tolerance for polygon simplification."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:33
-msgid "A list of Gerber Editor parameters."
-msgstr "A list of Gerber Editor parameters."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:43
-msgid ""
-"Set the number of selected Gerber geometry\n"
-"items above which the utility geometry\n"
-"becomes just a selection rectangle.\n"
-"Increases the performance when moving a\n"
-"large number of geometric elements."
-msgstr ""
-"Set the number of selected Gerber geometry\n"
-"items above which the utility geometry\n"
-"becomes just a selection rectangle.\n"
-"Increases the performance when moving a\n"
-"large number of geometric elements."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:56
-msgid "New Aperture code"
-msgstr "New Aperture code"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:69
-msgid "New Aperture size"
-msgstr "New Aperture size"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:71
-msgid "Size for the new aperture"
-msgstr "Size for the new aperture"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:82
-msgid "New Aperture type"
-msgstr "New Aperture type"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:84
-msgid ""
-"Type for the new aperture.\n"
-"Can be 'C', 'R' or 'O'."
-msgstr ""
-"Type for the new aperture.\n"
-"Can be 'C', 'R' or 'O'."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:106
-msgid "Aperture Dimensions"
-msgstr "Aperture Dimensions"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:116
-msgid "Linear Pad Array"
-msgstr "Linear Pad Array"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:160
-msgid "Circular Pad Array"
-msgstr "Circular Pad Array"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:196
-msgid "Distance at which to buffer the Gerber element."
-msgstr "Distance at which to buffer the Gerber element."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:205
-msgid "Scale Tool"
-msgstr "Scale Tool"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:211
-msgid "Factor to scale the Gerber element."
-msgstr "Factor to scale the Gerber element."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:224
-msgid "Threshold low"
-msgstr "Threshold low"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:226
-msgid "Threshold value under which the apertures are not marked."
-msgstr "Threshold value under which the apertures are not marked."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:236
-msgid "Threshold high"
-msgstr "Threshold high"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:238
-msgid "Threshold value over which the apertures are not marked."
-msgstr "Threshold value over which the apertures are not marked."
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:27
-msgid "Gerber Export"
-msgstr "Gerber Export"
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:33
-msgid ""
-"The parameters set here are used in the file exported\n"
-"when using the File -> Export -> Export Gerber menu entry."
-msgstr ""
-"The parameters set here are used in the file exported\n"
-"when using the File -> Export -> Export Gerber menu entry."
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:44
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:50
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:84
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:90
-msgid "The units used in the Gerber file."
-msgstr "The units used in the Gerber file."
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:58
-msgid ""
-"The number of digits in the whole part of the number\n"
-"and in the fractional part of the number."
-msgstr ""
-"The number of digits in the whole part of the number\n"
-"and in the fractional part of the number."
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:71
-msgid ""
-"This numbers signify the number of digits in\n"
-"the whole part of Gerber coordinates."
-msgstr ""
-"This numbers signify the number of digits in\n"
-"the whole part of Gerber coordinates."
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:87
-msgid ""
-"This numbers signify the number of digits in\n"
-"the decimal part of Gerber coordinates."
-msgstr ""
-"This numbers signify the number of digits in\n"
-"the decimal part of Gerber coordinates."
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:99
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:109
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:100
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:110
-msgid ""
-"This sets the type of Gerber zeros.\n"
-"If LZ then Leading Zeros are removed and\n"
-"Trailing Zeros are kept.\n"
-"If TZ is checked then Trailing Zeros are removed\n"
-"and Leading Zeros are kept."
-msgstr ""
-"This sets the type of Gerber zeros.\n"
-"If LZ then Leading Zeros are removed and\n"
-"Trailing Zeros are kept.\n"
-"If TZ is checked then Trailing Zeros are removed\n"
-"and Leading Zeros are kept."
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:27
-msgid "Gerber General"
-msgstr "Gerber General"
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:45
-msgid "M-Color"
-msgstr "M-Color"
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:61
-msgid ""
-"The number of circle steps for Gerber \n"
-"circular aperture linear approximation."
-msgstr ""
-"The number of circle steps for Gerber \n"
-"circular aperture linear approximation."
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:73
-msgid "Default Values"
-msgstr "Default Values"
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:75
-msgid ""
-"Those values will be used as fallback values\n"
-"in case that they are not found in the Gerber file."
-msgstr ""
-"Those values will be used as fallback values\n"
-"in case that they are not found in the Gerber file."
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:126
-msgid "Clean Apertures"
-msgstr "Clean Apertures"
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:128
-msgid ""
-"Will remove apertures that do not have geometry\n"
-"thus lowering the number of apertures in the Gerber object."
-msgstr ""
-"Will remove apertures that do not have geometry\n"
-"thus lowering the number of apertures in the Gerber object."
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:134
-msgid "Polarity change buffer"
-msgstr "Polarity change buffer"
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:136
-msgid ""
-"Will apply extra buffering for the\n"
-"solid geometry when we have polarity changes.\n"
-"May help loading Gerber files that otherwise\n"
-"do not load correctly."
-msgstr ""
-"Will apply extra buffering for the\n"
-"solid geometry when we have polarity changes.\n"
-"May help loading Gerber files that otherwise\n"
-"do not load correctly."
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:149
-msgid "Gerber Object Color"
-msgstr "Gerber Object Color"
-
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:29
-msgid "Gerber Options"
-msgstr "Gerber Options"
-
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:107
-msgid "Combine Passes"
-msgstr "Combine Passes"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:27
-msgid "Copper Thieving Tool Options"
-msgstr "Copper Thieving Tool Options"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:39
-msgid ""
-"A tool to generate a Copper Thieving that can be added\n"
-"to a selected Gerber file."
-msgstr ""
-"A tool to generate a Copper Thieving that can be added\n"
-"to a selected Gerber file."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:47
-msgid "Number of steps (lines) used to interpolate circles."
-msgstr "Number of steps (lines) used to interpolate circles."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261
-#: flatcamTools/ToolCopperThieving.py:96 flatcamTools/ToolCopperThieving.py:431
-msgid "Clearance"
-msgstr "Clearance"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:59
-msgid ""
-"This set the distance between the copper Thieving components\n"
-"(the polygon fill may be split in multiple polygons)\n"
-"and the copper traces in the Gerber file."
-msgstr ""
-"This set the distance between the copper Thieving components\n"
-"(the polygon fill may be split in multiple polygons)\n"
-"and the copper traces in the Gerber file."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
-#: flatcamTools/ToolCopperThieving.py:126 flatcamTools/ToolNCC.py:535
-#: flatcamTools/ToolNCC.py:1316 flatcamTools/ToolNCC.py:1647
-#: flatcamTools/ToolNCC.py:1935 flatcamTools/ToolNCC.py:1990
-#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:946
-#: flatcamTools/ToolPaint.py:1452
-msgid "Area Selection"
-msgstr "Area Selection"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
-#: flatcamTools/ToolCopperThieving.py:127 flatcamTools/ToolDblSided.py:216
-#: flatcamTools/ToolNCC.py:535 flatcamTools/ToolNCC.py:1663
-#: flatcamTools/ToolNCC.py:1941 flatcamTools/ToolNCC.py:1998
-#: flatcamTools/ToolNCC.py:2306 flatcamTools/ToolNCC.py:2586
-#: flatcamTools/ToolNCC.py:3012 flatcamTools/ToolPaint.py:486
-#: flatcamTools/ToolPaint.py:931 flatcamTools/ToolPaint.py:1468
-#: tclCommands/TclCommandCopperClear.py:192 tclCommands/TclCommandPaint.py:166
-msgid "Reference Object"
-msgstr "Reference Object"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90
-#: flatcamTools/ToolCopperThieving.py:129
-msgid "Reference:"
-msgstr "Reference:"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92
-msgid ""
-"- 'Itself' - the copper Thieving extent is based on the object extent.\n"
-"- 'Area Selection' - left mouse click to start selection of the area to be "
-"filled.\n"
-"- 'Reference Object' - will do copper thieving within the area specified by "
-"another object."
-msgstr ""
-"- 'Itself' - the copper Thieving extent is based on the object extent.\n"
-"- 'Area Selection' - left mouse click to start selection of the area to be "
-"filled.\n"
-"- 'Reference Object' - will do copper thieving within the area specified by "
-"another object."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:76
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190
-#: flatcamTools/ToolCopperThieving.py:171 flatcamTools/ToolExtractDrills.py:102
-#: flatcamTools/ToolExtractDrills.py:240 flatcamTools/ToolPunchGerber.py:113
-#: flatcamTools/ToolPunchGerber.py:268
-msgid "Rectangular"
-msgstr "Rectangular"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102
-#: flatcamTools/ToolCopperThieving.py:172
-msgid "Minimal"
-msgstr "Minimal"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104
-#: flatcamTools/ToolCopperThieving.py:174 flatcamTools/ToolFilm.py:113
-msgid "Box Type:"
-msgstr "Box Type:"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106
-#: flatcamTools/ToolCopperThieving.py:176
-msgid ""
-"- 'Rectangular' - the bounding box will be of rectangular shape.\n"
-"- 'Minimal' - the bounding box will be the convex hull shape."
-msgstr ""
-"- 'Rectangular' - the bounding box will be of rectangular shape.\n"
-"- 'Minimal' - the bounding box will be the convex hull shape."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120
-#: flatcamTools/ToolCopperThieving.py:192
-msgid "Dots Grid"
-msgstr "Dots Grid"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121
-#: flatcamTools/ToolCopperThieving.py:193
-msgid "Squares Grid"
-msgstr "Squares Grid"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122
-#: flatcamTools/ToolCopperThieving.py:194
-msgid "Lines Grid"
-msgstr "Lines Grid"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124
-#: flatcamTools/ToolCopperThieving.py:196
-msgid "Fill Type:"
-msgstr "Fill Type:"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126
-#: flatcamTools/ToolCopperThieving.py:198
-msgid ""
-"- 'Solid' - copper thieving will be a solid polygon.\n"
-"- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n"
-"- 'Squares Grid' - the empty area will be filled with a pattern of squares.\n"
-"- 'Lines Grid' - the empty area will be filled with a pattern of lines."
-msgstr ""
-"- 'Solid' - copper thieving will be a solid polygon.\n"
-"- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n"
-"- 'Squares Grid' - the empty area will be filled with a pattern of squares.\n"
-"- 'Lines Grid' - the empty area will be filled with a pattern of lines."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134
-#: flatcamTools/ToolCopperThieving.py:217
-msgid "Dots Grid Parameters"
-msgstr "Dots Grid Parameters"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140
-#: flatcamTools/ToolCopperThieving.py:223
-msgid "Dot diameter in Dots Grid."
-msgstr "Dot diameter in Dots Grid."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209
-#: flatcamTools/ToolCopperThieving.py:234
-#: flatcamTools/ToolCopperThieving.py:274
-#: flatcamTools/ToolCopperThieving.py:314
-msgid "Spacing"
-msgstr "Spacing"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153
-#: flatcamTools/ToolCopperThieving.py:236
-msgid "Distance between each two dots in Dots Grid."
-msgstr "Distance between each two dots in Dots Grid."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163
-#: flatcamTools/ToolCopperThieving.py:257
-msgid "Squares Grid Parameters"
-msgstr "Squares Grid Parameters"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169
-#: flatcamTools/ToolCopperThieving.py:263
-msgid "Square side size in Squares Grid."
-msgstr "Square side size in Squares Grid."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182
-#: flatcamTools/ToolCopperThieving.py:276
-msgid "Distance between each two squares in Squares Grid."
-msgstr "Distance between each two squares in Squares Grid."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192
-#: flatcamTools/ToolCopperThieving.py:297
-msgid "Lines Grid Parameters"
-msgstr "Lines Grid Parameters"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198
-#: flatcamTools/ToolCopperThieving.py:303
-msgid "Line thickness size in Lines Grid."
-msgstr "Line thickness size in Lines Grid."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211
-#: flatcamTools/ToolCopperThieving.py:316
-msgid "Distance between each two lines in Lines Grid."
-msgstr "Distance between each two lines in Lines Grid."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221
-#: flatcamTools/ToolCopperThieving.py:354
-msgid "Robber Bar Parameters"
-msgstr "Robber Bar Parameters"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223
-#: flatcamTools/ToolCopperThieving.py:356
-msgid ""
-"Parameters used for the robber bar.\n"
-"Robber bar = copper border to help in pattern hole plating."
-msgstr ""
-"Parameters used for the robber bar.\n"
-"Robber bar = copper border to help in pattern hole plating."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231
-#: flatcamTools/ToolCopperThieving.py:364
-msgid "Bounding box margin for robber bar."
-msgstr "Bounding box margin for robber bar."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242
-#: flatcamTools/ToolCopperThieving.py:375
-msgid "Thickness"
-msgstr "Thickness"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244
-#: flatcamTools/ToolCopperThieving.py:377
-msgid "The robber bar thickness."
-msgstr "The robber bar thickness."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254
-#: flatcamTools/ToolCopperThieving.py:408
-msgid "Pattern Plating Mask"
-msgstr "Pattern Plating Mask"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256
-#: flatcamTools/ToolCopperThieving.py:410
-msgid "Generate a mask for pattern plating."
-msgstr "Generate a mask for pattern plating."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263
-#: flatcamTools/ToolCopperThieving.py:433
-msgid ""
-"The distance between the possible copper thieving elements\n"
-"and/or robber bar and the actual openings in the mask."
-msgstr ""
-"The distance between the possible copper thieving elements\n"
-"and/or robber bar and the actual openings in the mask."
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:27
-msgid "Calibration Tool Options"
-msgstr "Calibration Tool Options"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:38
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:38
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38
-#: flatcamTools/ToolCopperThieving.py:91 flatcamTools/ToolFiducials.py:151
-msgid "Parameters used for this tool."
-msgstr "Parameters used for this tool."
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:43
-#: flatcamTools/ToolCalibration.py:181
-msgid "Source Type"
-msgstr "Source Type"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:44
-#: flatcamTools/ToolCalibration.py:182
-msgid ""
-"The source of calibration points.\n"
-"It can be:\n"
-"- Object -> click a hole geo for Excellon or a pad for Gerber\n"
-"- Free -> click freely on canvas to acquire the calibration points"
-msgstr ""
-"The source of calibration points.\n"
-"It can be:\n"
-"- Object -> click a hole geo for Excellon or a pad for Gerber\n"
-"- Free -> click freely on canvas to acquire the calibration points"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:49
-#: flatcamTools/ToolCalibration.py:187
-msgid "Free"
-msgstr "Free"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:63
-#: flatcamTools/ToolCalibration.py:76
-msgid "Height (Z) for travelling between the points."
-msgstr "Height (Z) for travelling between the points."
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:75
-#: flatcamTools/ToolCalibration.py:88
-msgid "Verification Z"
-msgstr "Verification Z"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:77
-#: flatcamTools/ToolCalibration.py:90
-msgid "Height (Z) for checking the point."
-msgstr "Height (Z) for checking the point."
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:89
-#: flatcamTools/ToolCalibration.py:102
-msgid "Zero Z tool"
-msgstr "Zero Z tool"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:91
-#: flatcamTools/ToolCalibration.py:104
-msgid ""
-"Include a sequence to zero the height (Z)\n"
-"of the verification tool."
-msgstr ""
-"Include a sequence to zero the height (Z)\n"
-"of the verification tool."
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:100
-#: flatcamTools/ToolCalibration.py:113
-msgid "Height (Z) for mounting the verification probe."
-msgstr "Height (Z) for mounting the verification probe."
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:114
-#: flatcamTools/ToolCalibration.py:127
-msgid ""
-"Toolchange X,Y position.\n"
-"If no value is entered then the current\n"
-"(x, y) point will be used,"
-msgstr ""
-"Toolchange X,Y position.\n"
-"If no value is entered then the current\n"
-"(x, y) point will be used,"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:125
-#: flatcamTools/ToolCalibration.py:153
-msgid "Second point"
-msgstr "Second point"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:127
-#: flatcamTools/ToolCalibration.py:155
-msgid ""
-"Second point in the Gcode verification can be:\n"
-"- top-left -> the user will align the PCB vertically\n"
-"- bottom-right -> the user will align the PCB horizontally"
-msgstr ""
-"Second point in the Gcode verification can be:\n"
-"- top-left -> the user will align the PCB vertically\n"
-"- bottom-right -> the user will align the PCB horizontally"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:27
-msgid "Extract Drills Options"
-msgstr "Extract Drills Options"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42
-#: flatcamTools/ToolExtractDrills.py:68 flatcamTools/ToolPunchGerber.py:75
-msgid "Processed Pads Type"
-msgstr "Processed Pads Type"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44
-#: flatcamTools/ToolExtractDrills.py:70 flatcamTools/ToolPunchGerber.py:77
-msgid ""
-"The type of pads shape to be processed.\n"
-"If the PCB has many SMD pads with rectangular pads,\n"
-"disable the Rectangular aperture."
-msgstr ""
-"The type of pads shape to be processed.\n"
-"If the PCB has many SMD pads with rectangular pads,\n"
-"disable the Rectangular aperture."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54
-#: flatcamTools/ToolExtractDrills.py:80 flatcamTools/ToolPunchGerber.py:91
-msgid "Process Circular Pads."
-msgstr "Process Circular Pads."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:60
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164
-#: flatcamTools/ToolExtractDrills.py:86 flatcamTools/ToolExtractDrills.py:214
-#: flatcamTools/ToolPunchGerber.py:97 flatcamTools/ToolPunchGerber.py:242
-msgid "Oblong"
-msgstr "Oblong"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62
-#: flatcamTools/ToolExtractDrills.py:88 flatcamTools/ToolPunchGerber.py:99
-msgid "Process Oblong Pads."
-msgstr "Process Oblong Pads."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70
-#: flatcamTools/ToolExtractDrills.py:96 flatcamTools/ToolPunchGerber.py:107
-msgid "Process Square Pads."
-msgstr "Process Square Pads."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78
-#: flatcamTools/ToolExtractDrills.py:104 flatcamTools/ToolPunchGerber.py:115
-msgid "Process Rectangular Pads."
-msgstr "Process Rectangular Pads."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:84
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203
-#: flatcamTools/ToolExtractDrills.py:110 flatcamTools/ToolExtractDrills.py:253
-#: flatcamTools/ToolProperties.py:172 flatcamTools/ToolPunchGerber.py:121
-#: flatcamTools/ToolPunchGerber.py:281
-msgid "Others"
-msgstr "Others"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86
-#: flatcamTools/ToolExtractDrills.py:112 flatcamTools/ToolPunchGerber.py:123
-msgid "Process pads not in the categories above."
-msgstr "Process pads not in the categories above."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:99
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125
-#: flatcamTools/ToolExtractDrills.py:139 flatcamTools/ToolExtractDrills.py:156
-#: flatcamTools/ToolPunchGerber.py:150 flatcamTools/ToolPunchGerber.py:184
-msgid "Fixed Diameter"
-msgstr "Fixed Diameter"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:100
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142
-#: flatcamTools/ToolExtractDrills.py:140 flatcamTools/ToolExtractDrills.py:192
-#: flatcamTools/ToolPunchGerber.py:151 flatcamTools/ToolPunchGerber.py:214
-msgid "Fixed Annular Ring"
-msgstr "Fixed Annular Ring"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102
-#: flatcamTools/ToolExtractDrills.py:141 flatcamTools/ToolPunchGerber.py:152
-msgid "Proportional"
-msgstr "Proportional"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107
-#: flatcamTools/ToolExtractDrills.py:130
-msgid ""
-"The method for processing pads. Can be:\n"
-"- Fixed Diameter -> all holes will have a set size\n"
-"- Fixed Annular Ring -> all holes will have a set annular ring\n"
-"- Proportional -> each hole size will be a fraction of the pad size"
-msgstr ""
-"The method for processing pads. Can be:\n"
-"- Fixed Diameter -> all holes will have a set size\n"
-"- Fixed Annular Ring -> all holes will have a set annular ring\n"
-"- Proportional -> each hole size will be a fraction of the pad size"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135
-#: flatcamTools/ToolExtractDrills.py:166 flatcamTools/ToolPunchGerber.py:194
-msgid "Fixed hole diameter."
-msgstr "Fixed hole diameter."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:142
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144
-#: flatcamTools/ToolExtractDrills.py:194 flatcamTools/ToolPunchGerber.py:216
-msgid ""
-"The size of annular ring.\n"
-"The copper sliver between the hole exterior\n"
-"and the margin of the copper pad."
-msgstr ""
-"The size of annular ring.\n"
-"The copper sliver between the hole exterior\n"
-"and the margin of the copper pad."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153
-#: flatcamTools/ToolExtractDrills.py:203 flatcamTools/ToolPunchGerber.py:231
-msgid "The size of annular ring for circular pads."
-msgstr "The size of annular ring for circular pads."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:164
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:166
-#: flatcamTools/ToolExtractDrills.py:216 flatcamTools/ToolPunchGerber.py:244
-msgid "The size of annular ring for oblong pads."
-msgstr "The size of annular ring for oblong pads."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:177
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:179
-#: flatcamTools/ToolExtractDrills.py:229 flatcamTools/ToolPunchGerber.py:257
-msgid "The size of annular ring for square pads."
-msgstr "The size of annular ring for square pads."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:190
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:192
-#: flatcamTools/ToolExtractDrills.py:242 flatcamTools/ToolPunchGerber.py:270
-msgid "The size of annular ring for rectangular pads."
-msgstr "The size of annular ring for rectangular pads."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:203
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:205
-#: flatcamTools/ToolExtractDrills.py:255 flatcamTools/ToolPunchGerber.py:283
-msgid "The size of annular ring for other pads."
-msgstr "The size of annular ring for other pads."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:213
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:215
-#: flatcamTools/ToolExtractDrills.py:276 flatcamTools/ToolPunchGerber.py:299
-msgid "Proportional Diameter"
-msgstr "Proportional Diameter"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:222
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:224
-msgid "Factor"
-msgstr "Factor"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226
-#: flatcamTools/ToolExtractDrills.py:287 flatcamTools/ToolPunchGerber.py:310
-msgid ""
-"Proportional Diameter.\n"
-"The hole diameter will be a fraction of the pad size."
-msgstr ""
-"Proportional Diameter.\n"
-"The hole diameter will be a fraction of the pad size."
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:27
-msgid "Fiducials Tool Options"
-msgstr "Fiducials Tool Options"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45
-#: flatcamTools/ToolFiducials.py:158
-msgid ""
-"This set the fiducial diameter if fiducial type is circular,\n"
-"otherwise is the size of the fiducial.\n"
-"The soldermask opening is double than that."
-msgstr ""
-"This set the fiducial diameter if fiducial type is circular,\n"
-"otherwise is the size of the fiducial.\n"
-"The soldermask opening is double than that."
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73
-#: flatcamTools/ToolFiducials.py:186
-msgid "Auto"
-msgstr "Auto"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74
-#: flatcamTools/ToolFiducials.py:187
-msgid "Manual"
-msgstr "Manual"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76
-#: flatcamTools/ToolFiducials.py:189
-msgid "Mode:"
-msgstr "Mode:"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:78
-msgid ""
-"- 'Auto' - automatic placement of fiducials in the corners of the bounding "
-"box.\n"
-"- 'Manual' - manual placement of fiducials."
-msgstr ""
-"- 'Auto' - automatic placement of fiducials in the corners of the bounding "
-"box.\n"
-"- 'Manual' - manual placement of fiducials."
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86
-#: flatcamTools/ToolFiducials.py:199
-msgid "Up"
-msgstr "Up"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87
-#: flatcamTools/ToolFiducials.py:200
-msgid "Down"
-msgstr "Down"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90
-#: flatcamTools/ToolFiducials.py:203
-msgid "Second fiducial"
-msgstr "Second fiducial"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92
-#: flatcamTools/ToolFiducials.py:205
-msgid ""
-"The position for the second fiducial.\n"
-"- 'Up' - the order is: bottom-left, top-left, top-right.\n"
-"- 'Down' - the order is: bottom-left, bottom-right, top-right.\n"
-"- 'None' - there is no second fiducial. The order is: bottom-left, top-right."
-msgstr ""
-"The position for the second fiducial.\n"
-"- 'Up' - the order is: bottom-left, top-left, top-right.\n"
-"- 'Down' - the order is: bottom-left, bottom-right, top-right.\n"
-"- 'None' - there is no second fiducial. The order is: bottom-left, top-right."
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108
-#: flatcamTools/ToolFiducials.py:221
-msgid "Cross"
-msgstr "Cross"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109
-#: flatcamTools/ToolFiducials.py:222
-msgid "Chess"
-msgstr "Chess"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112
-#: flatcamTools/ToolFiducials.py:224
-msgid "Fiducial Type"
-msgstr "Fiducial Type"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114
-#: flatcamTools/ToolFiducials.py:226
-msgid ""
-"The type of fiducial.\n"
-"- 'Circular' - this is the regular fiducial.\n"
-"- 'Cross' - cross lines fiducial.\n"
-"- 'Chess' - chess pattern fiducial."
-msgstr ""
-"The type of fiducial.\n"
-"- 'Circular' - this is the regular fiducial.\n"
-"- 'Cross' - cross lines fiducial.\n"
-"- 'Chess' - chess pattern fiducial."
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123
-#: flatcamTools/ToolFiducials.py:235
-msgid "Line thickness"
-msgstr "Line thickness"
-
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:27
-msgid "Invert Gerber Tool Options"
-msgstr "Invert Gerber Tool Options"
-
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:33
-msgid ""
-"A tool to invert Gerber geometry from positive to negative\n"
-"and in revers."
-msgstr ""
-"A tool to invert Gerber geometry from positive to negative\n"
-"and in revers."
-
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:47
-#: flatcamTools/ToolInvertGerber.py:90
-msgid ""
-"Distance by which to avoid\n"
-"the edges of the Gerber object."
-msgstr ""
-"Distance by which to avoid\n"
-"the edges of the Gerber object."
-
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:58
-#: flatcamTools/ToolInvertGerber.py:101
-msgid "Lines Join Style"
-msgstr "Lines Join Style"
-
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:60
-#: flatcamTools/ToolInvertGerber.py:103
-msgid ""
-"The way that the lines in the object outline will be joined.\n"
-"Can be:\n"
-"- rounded -> an arc is added between two joining lines\n"
-"- square -> the lines meet in 90 degrees angle\n"
-"- bevel -> the lines are joined by a third line"
-msgstr ""
-"The way that the lines in the object outline will be joined.\n"
-"Can be:\n"
-"- rounded -> an arc is added between two joining lines\n"
-"- square -> the lines meet in 90 degrees angle\n"
-"- bevel -> the lines are joined by a third line"
-
-#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:27
-msgid "Optimal Tool Options"
-msgstr "Optimal Tool Options"
-
-#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:33
-msgid ""
-"A tool to find the minimum distance between\n"
-"every two Gerber geometric elements"
-msgstr ""
-"A tool to find the minimum distance between\n"
-"every two Gerber geometric elements"
-
-#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:48
-#: flatcamTools/ToolOptimal.py:78
-msgid "Precision"
-msgstr "Precision"
-
-#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:50
-msgid "Number of decimals for the distances and coordinates in this tool."
-msgstr "Number of decimals for the distances and coordinates in this tool."
-
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:27
-msgid "Punch Gerber Options"
-msgstr "Punch Gerber Options"
-
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:108
-#: flatcamTools/ToolPunchGerber.py:141
-msgid ""
-"The punch hole source can be:\n"
-"- Excellon Object-> the Excellon object drills center will serve as "
-"reference.\n"
-"- Fixed Diameter -> will try to use the pads center as reference adding "
-"fixed diameter holes.\n"
-"- Fixed Annular Ring -> will try to keep a set annular ring.\n"
-"- Proportional -> will make a Gerber punch hole having the diameter a "
-"percentage of the pad diameter."
-msgstr ""
-"The punch hole source can be:\n"
-"- Excellon Object-> the Excellon object drills center will serve as "
-"reference.\n"
-"- Fixed Diameter -> will try to use the pads center as reference adding "
-"fixed diameter holes.\n"
-"- Fixed Annular Ring -> will try to keep a set annular ring.\n"
-"- Proportional -> will make a Gerber punch hole having the diameter a "
-"percentage of the pad diameter."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:27
-msgid "QRCode Tool Options"
-msgstr "QRCode Tool Options"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:33
-msgid ""
-"A tool to create a QRCode that can be inserted\n"
-"into a selected Gerber file, or it can be exported as a file."
-msgstr ""
-"A tool to create a QRCode that can be inserted\n"
-"into a selected Gerber file, or it can be exported as a file."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45
-#: flatcamTools/ToolQRCode.py:100
-msgid "Version"
-msgstr "Version"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47
-#: flatcamTools/ToolQRCode.py:102
-msgid ""
-"QRCode version can have values from 1 (21x21 boxes)\n"
-"to 40 (177x177 boxes)."
-msgstr ""
-"QRCode version can have values from 1 (21x21 boxes)\n"
-"to 40 (177x177 boxes)."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58
-#: flatcamTools/ToolQRCode.py:113
-msgid "Error correction"
-msgstr "Error correction"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71
-#: flatcamTools/ToolQRCode.py:115 flatcamTools/ToolQRCode.py:126
-#, python-format
-msgid ""
-"Parameter that controls the error correction used for the QR Code.\n"
-"L = maximum 7%% errors can be corrected\n"
-"M = maximum 15%% errors can be corrected\n"
-"Q = maximum 25%% errors can be corrected\n"
-"H = maximum 30%% errors can be corrected."
-msgstr ""
-"Parameter that controls the error correction used for the QR Code.\n"
-"L = maximum 7%% errors can be corrected\n"
-"M = maximum 15%% errors can be corrected\n"
-"Q = maximum 25%% errors can be corrected\n"
-"H = maximum 30%% errors can be corrected."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81
-#: flatcamTools/ToolQRCode.py:136
-msgid "Box Size"
-msgstr "Box Size"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83
-#: flatcamTools/ToolQRCode.py:138
-msgid ""
-"Box size control the overall size of the QRcode\n"
-"by adjusting the size of each box in the code."
-msgstr ""
-"Box size control the overall size of the QRcode\n"
-"by adjusting the size of each box in the code."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94
-#: flatcamTools/ToolQRCode.py:149
-msgid "Border Size"
-msgstr "Border Size"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96
-#: flatcamTools/ToolQRCode.py:151
-msgid ""
-"Size of the QRCode border. How many boxes thick is the border.\n"
-"Default value is 4. The width of the clearance around the QRCode."
-msgstr ""
-"Size of the QRCode border. How many boxes thick is the border.\n"
-"Default value is 4. The width of the clearance around the QRCode."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107
-#: flatcamTools/ToolQRCode.py:162
-msgid "QRCode Data"
-msgstr "QRCode Data"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109
-#: flatcamTools/ToolQRCode.py:164
-msgid "QRCode Data. Alphanumeric text to be encoded in the QRCode."
-msgstr "QRCode Data. Alphanumeric text to be encoded in the QRCode."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:113
-#: flatcamTools/ToolQRCode.py:168
-msgid "Add here the text to be included in the QRCode..."
-msgstr "Add here the text to be included in the QRCode..."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:119
-#: flatcamTools/ToolQRCode.py:174
-msgid "Polarity"
-msgstr "Polarity"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121
-#: flatcamTools/ToolQRCode.py:176
-msgid ""
-"Choose the polarity of the QRCode.\n"
-"It can be drawn in a negative way (squares are clear)\n"
-"or in a positive way (squares are opaque)."
-msgstr ""
-"Choose the polarity of the QRCode.\n"
-"It can be drawn in a negative way (squares are clear)\n"
-"or in a positive way (squares are opaque)."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125
-#: flatcamTools/ToolFilm.py:296 flatcamTools/ToolQRCode.py:180
-msgid "Negative"
-msgstr "Negative"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126
-#: flatcamTools/ToolFilm.py:295 flatcamTools/ToolQRCode.py:181
-msgid "Positive"
-msgstr "Positive"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128
-#: flatcamTools/ToolQRCode.py:183
-msgid ""
-"Choose the type of QRCode to be created.\n"
-"If added on a Silkscreen Gerber file the QRCode may\n"
-"be added as positive. If it is added to a Copper Gerber\n"
-"file then perhaps the QRCode can be added as negative."
-msgstr ""
-"Choose the type of QRCode to be created.\n"
-"If added on a Silkscreen Gerber file the QRCode may\n"
-"be added as positive. If it is added to a Copper Gerber\n"
-"file then perhaps the QRCode can be added as negative."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145
-#: flatcamTools/ToolQRCode.py:194 flatcamTools/ToolQRCode.py:200
-msgid ""
-"The bounding box, meaning the empty space that surrounds\n"
-"the QRCode geometry, can have a rounded or a square shape."
-msgstr ""
-"The bounding box, meaning the empty space that surrounds\n"
-"the QRCode geometry, can have a rounded or a square shape."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:239
-#: flatcamTools/ToolQRCode.py:197 flatcamTools/ToolTransform.py:383
-msgid "Rounded"
-msgstr "Rounded"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152
-#: flatcamTools/ToolQRCode.py:228
-msgid "Fill Color"
-msgstr "Fill Color"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154
-#: flatcamTools/ToolQRCode.py:230
-msgid "Set the QRCode fill color (squares color)."
-msgstr "Set the QRCode fill color (squares color)."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:173
-#: flatcamTools/ToolQRCode.py:252
-msgid "Back Color"
-msgstr "Back Color"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:175
-#: flatcamTools/ToolQRCode.py:254
-msgid "Set the QRCode background color."
-msgstr "Set the QRCode background color."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:27
-msgid "Check Rules Tool Options"
-msgstr "Check Rules Tool Options"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:32
-msgid ""
-"A tool to check if Gerber files are within a set\n"
-"of Manufacturing Rules."
-msgstr ""
-"A tool to check if Gerber files are within a set\n"
-"of Manufacturing Rules."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:42
-#: flatcamTools/ToolRulesCheck.py:265 flatcamTools/ToolRulesCheck.py:929
-msgid "Trace Size"
-msgstr "Trace Size"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:44
-#: flatcamTools/ToolRulesCheck.py:267
-msgid "This checks if the minimum size for traces is met."
-msgstr "This checks if the minimum size for traces is met."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:54
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:74
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:94
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:114
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:134
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:154
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:174
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:194
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:216
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:236
-#: flatcamTools/ToolRulesCheck.py:277 flatcamTools/ToolRulesCheck.py:299
-#: flatcamTools/ToolRulesCheck.py:322 flatcamTools/ToolRulesCheck.py:345
-#: flatcamTools/ToolRulesCheck.py:368 flatcamTools/ToolRulesCheck.py:391
-#: flatcamTools/ToolRulesCheck.py:414 flatcamTools/ToolRulesCheck.py:437
-#: flatcamTools/ToolRulesCheck.py:462 flatcamTools/ToolRulesCheck.py:485
-msgid "Min value"
-msgstr "Min value"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:56
-#: flatcamTools/ToolRulesCheck.py:279
-msgid "Minimum acceptable trace size."
-msgstr "Minimum acceptable trace size."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:61
-#: flatcamTools/ToolRulesCheck.py:286 flatcamTools/ToolRulesCheck.py:1157
-#: flatcamTools/ToolRulesCheck.py:1187
-msgid "Copper to Copper clearance"
-msgstr "Copper to Copper clearance"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:63
-#: flatcamTools/ToolRulesCheck.py:288
-msgid ""
-"This checks if the minimum clearance between copper\n"
-"features is met."
-msgstr ""
-"This checks if the minimum clearance between copper\n"
-"features is met."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:76
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:96
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:116
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:136
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:156
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:176
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:238
-#: flatcamTools/ToolRulesCheck.py:301 flatcamTools/ToolRulesCheck.py:324
-#: flatcamTools/ToolRulesCheck.py:347 flatcamTools/ToolRulesCheck.py:370
-#: flatcamTools/ToolRulesCheck.py:393 flatcamTools/ToolRulesCheck.py:416
-#: flatcamTools/ToolRulesCheck.py:464
-msgid "Minimum acceptable clearance value."
-msgstr "Minimum acceptable clearance value."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:81
-#: flatcamTools/ToolRulesCheck.py:309 flatcamTools/ToolRulesCheck.py:1217
-#: flatcamTools/ToolRulesCheck.py:1223 flatcamTools/ToolRulesCheck.py:1236
-#: flatcamTools/ToolRulesCheck.py:1243
-msgid "Copper to Outline clearance"
-msgstr "Copper to Outline clearance"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:83
-#: flatcamTools/ToolRulesCheck.py:311
-msgid ""
-"This checks if the minimum clearance between copper\n"
-"features and the outline is met."
-msgstr ""
-"This checks if the minimum clearance between copper\n"
-"features and the outline is met."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:101
-#: flatcamTools/ToolRulesCheck.py:332
-msgid "Silk to Silk Clearance"
-msgstr "Silk to Silk Clearance"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:103
-#: flatcamTools/ToolRulesCheck.py:334
-msgid ""
-"This checks if the minimum clearance between silkscreen\n"
-"features and silkscreen features is met."
-msgstr ""
-"This checks if the minimum clearance between silkscreen\n"
-"features and silkscreen features is met."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:121
-#: flatcamTools/ToolRulesCheck.py:355 flatcamTools/ToolRulesCheck.py:1326
-#: flatcamTools/ToolRulesCheck.py:1332 flatcamTools/ToolRulesCheck.py:1350
-msgid "Silk to Solder Mask Clearance"
-msgstr "Silk to Solder Mask Clearance"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:123
-#: flatcamTools/ToolRulesCheck.py:357
-msgid ""
-"This checks if the minimum clearance between silkscreen\n"
-"features and soldermask features is met."
-msgstr ""
-"This checks if the minimum clearance between silkscreen\n"
-"features and soldermask features is met."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:141
-#: flatcamTools/ToolRulesCheck.py:378 flatcamTools/ToolRulesCheck.py:1380
-#: flatcamTools/ToolRulesCheck.py:1386 flatcamTools/ToolRulesCheck.py:1400
-#: flatcamTools/ToolRulesCheck.py:1407
-msgid "Silk to Outline Clearance"
-msgstr "Silk to Outline Clearance"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:143
-#: flatcamTools/ToolRulesCheck.py:380
-msgid ""
-"This checks if the minimum clearance between silk\n"
-"features and the outline is met."
-msgstr ""
-"This checks if the minimum clearance between silk\n"
-"features and the outline is met."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:161
-#: flatcamTools/ToolRulesCheck.py:401 flatcamTools/ToolRulesCheck.py:1418
-#: flatcamTools/ToolRulesCheck.py:1445
-msgid "Minimum Solder Mask Sliver"
-msgstr "Minimum Solder Mask Sliver"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:163
-#: flatcamTools/ToolRulesCheck.py:403
-msgid ""
-"This checks if the minimum clearance between soldermask\n"
-"features and soldermask features is met."
-msgstr ""
-"This checks if the minimum clearance between soldermask\n"
-"features and soldermask features is met."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:181
-#: flatcamTools/ToolRulesCheck.py:424 flatcamTools/ToolRulesCheck.py:1483
-#: flatcamTools/ToolRulesCheck.py:1489 flatcamTools/ToolRulesCheck.py:1505
-#: flatcamTools/ToolRulesCheck.py:1512
-msgid "Minimum Annular Ring"
-msgstr "Minimum Annular Ring"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:183
-#: flatcamTools/ToolRulesCheck.py:426
-msgid ""
-"This checks if the minimum copper ring left by drilling\n"
-"a hole into a pad is met."
-msgstr ""
-"This checks if the minimum copper ring left by drilling\n"
-"a hole into a pad is met."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:196
-#: flatcamTools/ToolRulesCheck.py:439
-msgid "Minimum acceptable ring value."
-msgstr "Minimum acceptable ring value."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:203
-#: flatcamTools/ToolRulesCheck.py:449 flatcamTools/ToolRulesCheck.py:873
-msgid "Hole to Hole Clearance"
-msgstr "Hole to Hole Clearance"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:205
-#: flatcamTools/ToolRulesCheck.py:451
-msgid ""
-"This checks if the minimum clearance between a drill hole\n"
-"and another drill hole is met."
-msgstr ""
-"This checks if the minimum clearance between a drill hole\n"
-"and another drill hole is met."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:218
-#: flatcamTools/ToolRulesCheck.py:487
-msgid "Minimum acceptable drill size."
-msgstr "Minimum acceptable drill size."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:223
-#: flatcamTools/ToolRulesCheck.py:472 flatcamTools/ToolRulesCheck.py:847
-msgid "Hole Size"
-msgstr "Hole Size"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:225
-#: flatcamTools/ToolRulesCheck.py:474
-msgid ""
-"This checks if the drill holes\n"
-"sizes are above the threshold."
-msgstr ""
-"This checks if the drill holes\n"
-"sizes are above the threshold."
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:27
-msgid "2Sided Tool Options"
-msgstr "2Sided Tool Options"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:33
-msgid ""
-"A tool to help in creating a double sided\n"
-"PCB using alignment holes."
-msgstr ""
-"A tool to help in creating a double sided\n"
-"PCB using alignment holes."
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:47
-msgid "Drill dia"
-msgstr "Drill dia"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49
-#: flatcamTools/ToolDblSided.py:363 flatcamTools/ToolDblSided.py:368
-msgid "Diameter of the drill for the alignment holes."
-msgstr "Diameter of the drill for the alignment holes."
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:56
-#: flatcamTools/ToolDblSided.py:377
-msgid "Align Axis"
-msgstr "Align Axis"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71
-#: flatcamTools/ToolDblSided.py:165 flatcamTools/ToolDblSided.py:379
-msgid "Mirror vertically (X) or horizontally (Y)."
-msgstr "Mirror vertically (X) or horizontally (Y)."
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:69
-msgid "Mirror Axis:"
-msgstr "Mirror Axis:"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:80
-#: flatcamTools/ToolDblSided.py:181
-msgid "Point"
-msgstr "Point"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:81
-#: flatcamTools/ToolDblSided.py:182
-msgid "Box"
-msgstr "Box"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:82
-msgid "Axis Ref"
-msgstr "Axis Ref"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:84
-msgid ""
-"The axis should pass through a point or cut\n"
-" a specified box (in a FlatCAM object) through \n"
-"the center."
-msgstr ""
-"The axis should pass through a point or cut\n"
-" a specified box (in a FlatCAM object) through \n"
-"the center."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:27
-msgid "Calculators Tool Options"
-msgstr "Calculators Tool Options"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31
-#: flatcamTools/ToolCalculators.py:25
-msgid "V-Shape Tool Calculator"
-msgstr "V-Shape Tool Calculator"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:33
-msgid ""
-"Calculate the tool diameter for a given V-shape tool,\n"
-"having the tip diameter, tip angle and\n"
-"depth-of-cut as parameters."
-msgstr ""
-"Calculate the tool diameter for a given V-shape tool,\n"
-"having the tip diameter, tip angle and\n"
-"depth-of-cut as parameters."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50
-#: flatcamTools/ToolCalculators.py:94
-msgid "Tip Diameter"
-msgstr "Tip Diameter"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52
-#: flatcamTools/ToolCalculators.py:102
-msgid ""
-"This is the tool tip diameter.\n"
-"It is specified by manufacturer."
-msgstr ""
-"This is the tool tip diameter.\n"
-"It is specified by manufacturer."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64
-#: flatcamTools/ToolCalculators.py:105
-msgid "Tip Angle"
-msgstr "Tip Angle"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:66
-msgid ""
-"This is the angle on the tip of the tool.\n"
-"It is specified by manufacturer."
-msgstr ""
-"This is the angle on the tip of the tool.\n"
-"It is specified by manufacturer."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:80
-msgid ""
-"This is depth to cut into material.\n"
-"In the CNCJob object it is the CutZ parameter."
-msgstr ""
-"This is depth to cut into material.\n"
-"In the CNCJob object it is the CutZ parameter."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87
-#: flatcamTools/ToolCalculators.py:27
-msgid "ElectroPlating Calculator"
-msgstr "ElectroPlating Calculator"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89
-#: flatcamTools/ToolCalculators.py:158
-msgid ""
-"This calculator is useful for those who plate the via/pad/drill holes,\n"
-"using a method like graphite ink or calcium hypophosphite ink or palladium "
-"chloride."
-msgstr ""
-"This calculator is useful for those who plate the via/pad/drill holes,\n"
-"using a method like graphite ink or calcium hypophosphite ink or palladium "
-"chloride."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:100
-#: flatcamTools/ToolCalculators.py:167
-msgid "Board Length"
-msgstr "Board Length"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102
-#: flatcamTools/ToolCalculators.py:173
-msgid "This is the board length. In centimeters."
-msgstr "This is the board length. In centimeters."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112
-#: flatcamTools/ToolCalculators.py:175
-msgid "Board Width"
-msgstr "Board Width"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114
-#: flatcamTools/ToolCalculators.py:181
-msgid "This is the board width.In centimeters."
-msgstr "This is the board width.In centimeters."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119
-#: flatcamTools/ToolCalculators.py:183
-msgid "Current Density"
-msgstr "Current Density"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125
-#: flatcamTools/ToolCalculators.py:190
-msgid ""
-"Current density to pass through the board. \n"
-"In Amps per Square Feet ASF."
-msgstr ""
-"Current density to pass through the board. \n"
-"In Amps per Square Feet ASF."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:131
-#: flatcamTools/ToolCalculators.py:193
-msgid "Copper Growth"
-msgstr "Copper Growth"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137
-#: flatcamTools/ToolCalculators.py:200
-msgid ""
-"How thick the copper growth is intended to be.\n"
-"In microns."
-msgstr ""
-"How thick the copper growth is intended to be.\n"
-"In microns."
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:28
-msgid "Cutout Tool Options"
-msgstr "Cutout Tool Options"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43
-#: flatcamTools/ToolCalculators.py:123 flatcamTools/ToolCutOut.py:129
-msgid "Tool Diameter"
-msgstr "Tool Diameter"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45
-#: flatcamTools/ToolCutOut.py:131
-msgid ""
-"Diameter of the tool used to cutout\n"
-"the PCB shape out of the surrounding material."
-msgstr ""
-"Diameter of the tool used to cutout\n"
-"the PCB shape out of the surrounding material."
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:100
-msgid "Object kind"
-msgstr "Object kind"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102
-#: flatcamTools/ToolCutOut.py:77
-msgid ""
-"Choice of what kind the object we want to cutout is.
- Single: "
-"contain a single PCB Gerber outline object.
- Panel: a panel PCB "
-"Gerber object, which is made\n"
-"out of many individual PCB outlines."
-msgstr ""
-"Choice of what kind the object we want to cutout is.
- Single: "
-"contain a single PCB Gerber outline object.
- Panel: a panel PCB "
-"Gerber object, which is made\n"
-"out of many individual PCB outlines."
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109
-#: flatcamTools/ToolCutOut.py:83
-msgid "Single"
-msgstr "Single"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110
-#: flatcamTools/ToolCutOut.py:84
-msgid "Panel"
-msgstr "Panel"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117
-#: flatcamTools/ToolCutOut.py:192
-msgid ""
-"Margin over bounds. A positive value here\n"
-"will make the cutout of the PCB further from\n"
-"the actual PCB border"
-msgstr ""
-"Margin over bounds. A positive value here\n"
-"will make the cutout of the PCB further from\n"
-"the actual PCB border"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:130
-#: flatcamTools/ToolCutOut.py:203
-msgid "Gap size"
-msgstr "Gap size"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:132
-#: flatcamTools/ToolCutOut.py:205
-msgid ""
-"The size of the bridge gaps in the cutout\n"
-"used to keep the board connected to\n"
-"the surrounding material (the one \n"
-"from which the PCB is cutout)."
-msgstr ""
-"The size of the bridge gaps in the cutout\n"
-"used to keep the board connected to\n"
-"the surrounding material (the one \n"
-"from which the PCB is cutout)."
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:146
-#: flatcamTools/ToolCutOut.py:245
-msgid "Gaps"
-msgstr "Gaps"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:148
-msgid ""
-"Number of gaps used for the cutout.\n"
-"There can be maximum 8 bridges/gaps.\n"
-"The choices are:\n"
-"- None - no gaps\n"
-"- lr - left + right\n"
-"- tb - top + bottom\n"
-"- 4 - left + right +top + bottom\n"
-"- 2lr - 2*left + 2*right\n"
-"- 2tb - 2*top + 2*bottom\n"
-"- 8 - 2*left + 2*right +2*top + 2*bottom"
-msgstr ""
-"Number of gaps used for the cutout.\n"
-"There can be maximum 8 bridges/gaps.\n"
-"The choices are:\n"
-"- None - no gaps\n"
-"- lr - left + right\n"
-"- tb - top + bottom\n"
-"- 4 - left + right +top + bottom\n"
-"- 2lr - 2*left + 2*right\n"
-"- 2tb - 2*top + 2*bottom\n"
-"- 8 - 2*left + 2*right +2*top + 2*bottom"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:170
-#: flatcamTools/ToolCutOut.py:222
-msgid "Convex Shape"
-msgstr "Convex Shape"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:172
-#: flatcamTools/ToolCutOut.py:225
-msgid ""
-"Create a convex shape surrounding the entire PCB.\n"
-"Used only if the source object type is Gerber."
-msgstr ""
-"Create a convex shape surrounding the entire PCB.\n"
-"Used only if the source object type is Gerber."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:27
-msgid "Film Tool Options"
-msgstr "Film Tool Options"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:33
-msgid ""
-"Create a PCB film from a Gerber or Geometry\n"
-"FlatCAM object.\n"
-"The file is saved in SVG format."
-msgstr ""
-"Create a PCB film from a Gerber or Geometry\n"
-"FlatCAM object.\n"
-"The file is saved in SVG format."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:44
-msgid "Film Type"
-msgstr "Film Type"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:46
-#: flatcamTools/ToolFilm.py:300
-msgid ""
-"Generate a Positive black film or a Negative film.\n"
-"Positive means that it will print the features\n"
-"with black on a white canvas.\n"
-"Negative means that it will print the features\n"
-"with white on a black canvas.\n"
-"The Film format is SVG."
-msgstr ""
-"Generate a Positive black film or a Negative film.\n"
-"Positive means that it will print the features\n"
-"with black on a white canvas.\n"
-"Negative means that it will print the features\n"
-"with white on a black canvas.\n"
-"The Film format is SVG."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:57
-msgid "Film Color"
-msgstr "Film Color"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:59
-msgid "Set the film color when positive film is selected."
-msgstr "Set the film color when positive film is selected."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:82
-#: flatcamTools/ToolFilm.py:316
-msgid "Border"
-msgstr "Border"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:84
-#: flatcamTools/ToolFilm.py:318
-msgid ""
-"Specify a border around the object.\n"
-"Only for negative film.\n"
-"It helps if we use as a Box Object the same \n"
-"object as in Film Object. It will create a thick\n"
-"black bar around the actual print allowing for a\n"
-"better delimitation of the outline features which are of\n"
-"white color like the rest and which may confound with the\n"
-"surroundings if not for this border."
-msgstr ""
-"Specify a border around the object.\n"
-"Only for negative film.\n"
-"It helps if we use as a Box Object the same \n"
-"object as in Film Object. It will create a thick\n"
-"black bar around the actual print allowing for a\n"
-"better delimitation of the outline features which are of\n"
-"white color like the rest and which may confound with the\n"
-"surroundings if not for this border."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:101
-#: flatcamTools/ToolFilm.py:283
-msgid "Scale Stroke"
-msgstr "Scale Stroke"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:103
-#: flatcamTools/ToolFilm.py:285
-msgid ""
-"Scale the line stroke thickness of each feature in the SVG file.\n"
-"It means that the line that envelope each SVG feature will be thicker or "
-"thinner,\n"
-"therefore the fine features may be more affected by this parameter."
-msgstr ""
-"Scale the line stroke thickness of each feature in the SVG file.\n"
-"It means that the line that envelope each SVG feature will be thicker or "
-"thinner,\n"
-"therefore the fine features may be more affected by this parameter."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:110
-#: flatcamTools/ToolFilm.py:141
-msgid "Film Adjustments"
-msgstr "Film Adjustments"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:112
-#: flatcamTools/ToolFilm.py:143
-msgid ""
-"Sometime the printers will distort the print shape, especially the Laser "
-"types.\n"
-"This section provide the tools to compensate for the print distortions."
-msgstr ""
-"Sometime the printers will distort the print shape, especially the Laser "
-"types.\n"
-"This section provide the tools to compensate for the print distortions."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:119
-#: flatcamTools/ToolFilm.py:150
-msgid "Scale Film geometry"
-msgstr "Scale Film geometry"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:121
-#: flatcamTools/ToolFilm.py:152
-msgid ""
-"A value greater than 1 will stretch the film\n"
-"while a value less than 1 will jolt it."
-msgstr ""
-"A value greater than 1 will stretch the film\n"
-"while a value less than 1 will jolt it."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:131
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:103
-#: flatcamTools/ToolFilm.py:162 flatcamTools/ToolTransform.py:148
-msgid "X factor"
-msgstr "X factor"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:140
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:116
-#: flatcamTools/ToolFilm.py:171 flatcamTools/ToolTransform.py:168
-msgid "Y factor"
-msgstr "Y factor"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:150
-#: flatcamTools/ToolFilm.py:189
-msgid "Skew Film geometry"
-msgstr "Skew Film geometry"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:152
-#: flatcamTools/ToolFilm.py:191
-msgid ""
-"Positive values will skew to the right\n"
-"while negative values will skew to the left."
-msgstr ""
-"Positive values will skew to the right\n"
-"while negative values will skew to the left."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:162
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:72
-#: flatcamTools/ToolFilm.py:201 flatcamTools/ToolTransform.py:97
-msgid "X angle"
-msgstr "X angle"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:171
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:86
-#: flatcamTools/ToolFilm.py:210 flatcamTools/ToolTransform.py:118
-msgid "Y angle"
-msgstr "Y angle"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:182
-#: flatcamTools/ToolFilm.py:221
-msgid ""
-"The reference point to be used as origin for the skew.\n"
-"It can be one of the four points of the geometry bounding box."
-msgstr ""
-"The reference point to be used as origin for the skew.\n"
-"It can be one of the four points of the geometry bounding box."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:185
-#: flatcamTools/ToolFiducials.py:87 flatcamTools/ToolFilm.py:224
-msgid "Bottom Left"
-msgstr "Bottom Left"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:186
-#: flatcamTools/ToolFilm.py:225
-msgid "Top Left"
-msgstr "Top Left"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:187
-#: flatcamTools/ToolFilm.py:226
-msgid "Bottom Right"
-msgstr "Bottom Right"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:188
-#: flatcamTools/ToolFilm.py:227
-msgid "Top right"
-msgstr "Top right"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196
-#: flatcamTools/ToolFilm.py:244
-msgid "Mirror Film geometry"
-msgstr "Mirror Film geometry"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:198
-#: flatcamTools/ToolFilm.py:246
-msgid "Mirror the film geometry on the selected axis or on both."
-msgstr "Mirror the film geometry on the selected axis or on both."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:212
-#: flatcamTools/ToolFilm.py:260
-msgid "Mirror axis"
-msgstr "Mirror axis"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:222
-#: flatcamTools/ToolFilm.py:405
-msgid "SVG"
-msgstr "SVG"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:223
-#: flatcamTools/ToolFilm.py:406
-msgid "PNG"
-msgstr "PNG"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:224
-#: flatcamTools/ToolFilm.py:407
-msgid "PDF"
-msgstr "PDF"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:227
-#: flatcamTools/ToolFilm.py:298 flatcamTools/ToolFilm.py:410
-msgid "Film Type:"
-msgstr "Film Type:"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:229
-#: flatcamTools/ToolFilm.py:412
-msgid ""
-"The file type of the saved film. Can be:\n"
-"- 'SVG' -> open-source vectorial format\n"
-"- 'PNG' -> raster image\n"
-"- 'PDF' -> portable document format"
-msgstr ""
-"The file type of the saved film. Can be:\n"
-"- 'SVG' -> open-source vectorial format\n"
-"- 'PNG' -> raster image\n"
-"- 'PDF' -> portable document format"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:238
-#: flatcamTools/ToolFilm.py:421
-msgid "Page Orientation"
-msgstr "Page Orientation"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:251
-#: flatcamTools/ToolFilm.py:434
-msgid "Page Size"
-msgstr "Page Size"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:252
-#: flatcamTools/ToolFilm.py:435
-msgid "A selection of standard ISO 216 page sizes."
-msgstr "A selection of standard ISO 216 page sizes."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:27
-msgid "NCC Tool Options"
-msgstr "NCC Tool Options"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:49
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:57
-msgid "Comma separated values"
-msgstr "Comma separated values"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:55
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:63
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:64
-#: flatcamTools/ToolNCC.py:215 flatcamTools/ToolNCC.py:223
-#: flatcamTools/ToolPaint.py:198 flatcamTools/ToolPaint.py:206
-msgid ""
-"Default tool type:\n"
-"- 'V-shape'\n"
-"- Circular"
-msgstr ""
-"Default tool type:\n"
-"- 'V-shape'\n"
-"- Circular"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:60
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:69
-#: flatcamTools/ToolNCC.py:220 flatcamTools/ToolPaint.py:203
-msgid "V-shape"
-msgstr "V-shape"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:100
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:109
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:107
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:116
-#: flatcamTools/ToolNCC.py:262 flatcamTools/ToolNCC.py:271
-#: flatcamTools/ToolPaint.py:245 flatcamTools/ToolPaint.py:254
-msgid ""
-"Depth of cut into material. Negative value.\n"
-"In FlatCAM units."
-msgstr ""
-"Depth of cut into material. Negative value.\n"
-"In FlatCAM units."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:119
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:125
-#: flatcamTools/ToolNCC.py:280 flatcamTools/ToolPaint.py:263
-msgid ""
-"Diameter for the new tool to add in the Tool Table.\n"
-"If the tool is V-shape type then this value is automatically\n"
-"calculated from the other parameters."
-msgstr ""
-"Diameter for the new tool to add in the Tool Table.\n"
-"If the tool is V-shape type then this value is automatically\n"
-"calculated from the other parameters."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:156
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:142
-#: flatcamTools/ToolNCC.py:174 flatcamTools/ToolPaint.py:158
-msgid "Tool order"
-msgstr "Tool order"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:157
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:167
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:143
-#: flatcamTools/ToolNCC.py:175 flatcamTools/ToolNCC.py:185
-#: flatcamTools/ToolPaint.py:159 flatcamTools/ToolPaint.py:169
-msgid ""
-"This set the way that the tools in the tools table are used.\n"
-"'No' --> means that the used order is the one in the tool table\n"
-"'Forward' --> means that the tools will be ordered from small to big\n"
-"'Reverse' --> means that the tools will ordered from big to small\n"
-"\n"
-"WARNING: using rest machining will automatically set the order\n"
-"in reverse and disable this control."
-msgstr ""
-"This set the way that the tools in the tools table are used.\n"
-"'No' --> means that the used order is the one in the tool table\n"
-"'Forward' --> means that the tools will be ordered from small to big\n"
-"'Reverse' --> means that the tools will ordered from big to small\n"
-"\n"
-"WARNING: using rest machining will automatically set the order\n"
-"in reverse and disable this control."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:165
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:151
-#: flatcamTools/ToolNCC.py:183 flatcamTools/ToolPaint.py:167
-msgid "Forward"
-msgstr "Forward"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:166
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:152
-#: flatcamTools/ToolNCC.py:184 flatcamTools/ToolPaint.py:168
-msgid "Reverse"
-msgstr "Reverse"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:266
-msgid "Offset value"
-msgstr "Offset value"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:268
-msgid ""
-"If used, it will add an offset to the copper features.\n"
-"The copper clearing will finish to a distance\n"
-"from the copper features.\n"
-"The value can be between 0.0 and 9999.9 FlatCAM units."
-msgstr ""
-"If used, it will add an offset to the copper features.\n"
-"The copper clearing will finish to a distance\n"
-"from the copper features.\n"
-"The value can be between 0.0 and 9999.9 FlatCAM units."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:288
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:244
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:245
-#: flatcamTools/ToolNCC.py:512 flatcamTools/ToolPaint.py:442
-msgid "Rest Machining"
-msgstr "Rest Machining"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:290
-#: flatcamTools/ToolNCC.py:516
-msgid ""
-"If checked, use 'rest machining'.\n"
-"Basically it will clear copper outside PCB features,\n"
-"using the biggest tool and continue with the next tools,\n"
-"from bigger to smaller, to clear areas of copper that\n"
-"could not be cleared by previous tool, until there is\n"
-"no more copper to clear or there are no more tools.\n"
-"If not checked, use the standard algorithm."
-msgstr ""
-"If checked, use 'rest machining'.\n"
-"Basically it will clear copper outside PCB features,\n"
-"using the biggest tool and continue with the next tools,\n"
-"from bigger to smaller, to clear areas of copper that\n"
-"could not be cleared by previous tool, until there is\n"
-"no more copper to clear or there are no more tools.\n"
-"If not checked, use the standard algorithm."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:313
-#: flatcamTools/ToolNCC.py:541
-msgid ""
-"Selection of area to be processed.\n"
-"- 'Itself' - the processing extent is based on the object that is "
-"processed.\n"
-" - 'Area Selection' - left mouse click to start selection of the area to be "
-"processed.\n"
-"- 'Reference Object' - will process the area specified by another object."
-msgstr ""
-"Selection of area to be processed.\n"
-"- 'Itself' - the processing extent is based on the object that is "
-"processed.\n"
-" - 'Area Selection' - left mouse click to start selection of the area to be "
-"processed.\n"
-"- 'Reference Object' - will process the area specified by another object."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:339
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303
-msgid "Normal"
-msgstr "Normal"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:340
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:304
-msgid "Progressive"
-msgstr "Progressive"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:341
-msgid "NCC Plotting"
-msgstr "NCC Plotting"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:343
-msgid ""
-"- 'Normal' - normal plotting, done at the end of the NCC job\n"
-"- 'Progressive' - after each shape is generated it will be plotted."
-msgstr ""
-"- 'Normal' - normal plotting, done at the end of the NCC job\n"
-"- 'Progressive' - after each shape is generated it will be plotted."
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:27
-msgid "Paint Tool Options"
-msgstr "Paint Tool Options"
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:33
-msgid "Parameters:"
-msgstr "Parameters:"
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:247
-#: flatcamTools/ToolPaint.py:445
-msgid ""
-"If checked, use 'rest machining'.\n"
-"Basically it will clear copper outside PCB features,\n"
-"using the biggest tool and continue with the next tools,\n"
-"from bigger to smaller, to clear areas of copper that\n"
-"could not be cleared by previous tool, until there is\n"
-"no more copper to clear or there are no more tools.\n"
-"\n"
-"If not checked, use the standard algorithm."
-msgstr ""
-"If checked, use 'rest machining'.\n"
-"Basically it will clear copper outside PCB features,\n"
-"using the biggest tool and continue with the next tools,\n"
-"from bigger to smaller, to clear areas of copper that\n"
-"could not be cleared by previous tool, until there is\n"
-"no more copper to clear or there are no more tools.\n"
-"\n"
-"If not checked, use the standard algorithm."
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:260
-#: flatcamTools/ToolPaint.py:458
-msgid ""
-"Selection of area to be processed.\n"
-"- 'Polygon Selection' - left mouse click to add/remove polygons to be "
-"processed.\n"
-"- 'Area Selection' - left mouse click to start selection of the area to be "
-"processed.\n"
-"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple "
-"areas.\n"
-"- 'All Polygons' - the process will start after click.\n"
-"- 'Reference Object' - will process the area specified by another object."
-msgstr ""
-"Selection of area to be processed.\n"
-"- 'Polygon Selection' - left mouse click to add/remove polygons to be "
-"processed.\n"
-"- 'Area Selection' - left mouse click to start selection of the area to be "
-"processed.\n"
-"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple "
-"areas.\n"
-"- 'All Polygons' - the process will start after click.\n"
-"- 'Reference Object' - will process the area specified by another object."
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
-#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:942
-#: flatcamTools/ToolPaint.py:1432 tclCommands/TclCommandPaint.py:164
-msgid "Polygon Selection"
-msgstr "Polygon Selection"
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:305
-msgid "Paint Plotting"
-msgstr "Paint Plotting"
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:307
-msgid ""
-"- 'Normal' - normal plotting, done at the end of the Paint job\n"
-"- 'Progressive' - after each shape is generated it will be plotted."
-msgstr ""
-"- 'Normal' - normal plotting, done at the end of the Paint job\n"
-"- 'Progressive' - after each shape is generated it will be plotted."
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:27
-msgid "Panelize Tool Options"
-msgstr "Panelize Tool Options"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:33
-msgid ""
-"Create an object that contains an array of (x, y) elements,\n"
-"each element is a copy of the source object spaced\n"
-"at a X distance, Y distance of each other."
-msgstr ""
-"Create an object that contains an array of (x, y) elements,\n"
-"each element is a copy of the source object spaced\n"
-"at a X distance, Y distance of each other."
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:50
-#: flatcamTools/ToolPanelize.py:163
-msgid "Spacing cols"
-msgstr "Spacing cols"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:52
-#: flatcamTools/ToolPanelize.py:165
-msgid ""
-"Spacing between columns of the desired panel.\n"
-"In current units."
-msgstr ""
-"Spacing between columns of the desired panel.\n"
-"In current units."
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:64
-#: flatcamTools/ToolPanelize.py:175
-msgid "Spacing rows"
-msgstr "Spacing rows"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:66
-#: flatcamTools/ToolPanelize.py:177
-msgid ""
-"Spacing between rows of the desired panel.\n"
-"In current units."
-msgstr ""
-"Spacing between rows of the desired panel.\n"
-"In current units."
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:77
-#: flatcamTools/ToolPanelize.py:186
-msgid "Columns"
-msgstr "Columns"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:79
-#: flatcamTools/ToolPanelize.py:188
-msgid "Number of columns of the desired panel"
-msgstr "Number of columns of the desired panel"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:89
-#: flatcamTools/ToolPanelize.py:196
-msgid "Rows"
-msgstr "Rows"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:91
-#: flatcamTools/ToolPanelize.py:198
-msgid "Number of rows of the desired panel"
-msgstr "Number of rows of the desired panel"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:98
-#: flatcamTools/ToolPanelize.py:205
-msgid "Geo"
-msgstr "Geo"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:99
-#: flatcamTools/ToolPanelize.py:206
-msgid "Panel Type"
-msgstr "Panel Type"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:101
-msgid ""
-"Choose the type of object for the panel object:\n"
-"- Gerber\n"
-"- Geometry"
-msgstr ""
-"Choose the type of object for the panel object:\n"
-"- Gerber\n"
-"- Geometry"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:110
-msgid "Constrain within"
-msgstr "Constrain within"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:112
-#: flatcamTools/ToolPanelize.py:218
-msgid ""
-"Area define by DX and DY within to constrain the panel.\n"
-"DX and DY values are in current units.\n"
-"Regardless of how many columns and rows are desired,\n"
-"the final panel will have as many columns and rows as\n"
-"they fit completely within selected area."
-msgstr ""
-"Area define by DX and DY within to constrain the panel.\n"
-"DX and DY values are in current units.\n"
-"Regardless of how many columns and rows are desired,\n"
-"the final panel will have as many columns and rows as\n"
-"they fit completely within selected area."
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:125
-#: flatcamTools/ToolPanelize.py:230
-msgid "Width (DX)"
-msgstr "Width (DX)"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:127
-#: flatcamTools/ToolPanelize.py:232
-msgid ""
-"The width (DX) within which the panel must fit.\n"
-"In current units."
-msgstr ""
-"The width (DX) within which the panel must fit.\n"
-"In current units."
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:138
-#: flatcamTools/ToolPanelize.py:241
-msgid "Height (DY)"
-msgstr "Height (DY)"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:140
-#: flatcamTools/ToolPanelize.py:243
-msgid ""
-"The height (DY)within which the panel must fit.\n"
-"In current units."
-msgstr ""
-"The height (DY)within which the panel must fit.\n"
-"In current units."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:27
-msgid "SolderPaste Tool Options"
-msgstr "SolderPaste Tool Options"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:33
-msgid ""
-"A tool to create GCode for dispensing\n"
-"solder paste onto a PCB."
-msgstr ""
-"A tool to create GCode for dispensing\n"
-"solder paste onto a PCB."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:54
-msgid "New Nozzle Dia"
-msgstr "New Nozzle Dia"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:56
-#: flatcamTools/ToolSolderPaste.py:107
-msgid "Diameter for the new Nozzle tool to add in the Tool Table"
-msgstr "Diameter for the new Nozzle tool to add in the Tool Table"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:72
-#: flatcamTools/ToolSolderPaste.py:183
-msgid "Z Dispense Start"
-msgstr "Z Dispense Start"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:74
-#: flatcamTools/ToolSolderPaste.py:185
-msgid "The height (Z) when solder paste dispensing starts."
-msgstr "The height (Z) when solder paste dispensing starts."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:85
-#: flatcamTools/ToolSolderPaste.py:195
-msgid "Z Dispense"
-msgstr "Z Dispense"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:87
-#: flatcamTools/ToolSolderPaste.py:197
-msgid "The height (Z) when doing solder paste dispensing."
-msgstr "The height (Z) when doing solder paste dispensing."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:98
-#: flatcamTools/ToolSolderPaste.py:207
-msgid "Z Dispense Stop"
-msgstr "Z Dispense Stop"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:100
-#: flatcamTools/ToolSolderPaste.py:209
-msgid "The height (Z) when solder paste dispensing stops."
-msgstr "The height (Z) when solder paste dispensing stops."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:111
-#: flatcamTools/ToolSolderPaste.py:219
-msgid "Z Travel"
-msgstr "Z Travel"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:113
-#: flatcamTools/ToolSolderPaste.py:221
-msgid ""
-"The height (Z) for travel between pads\n"
-"(without dispensing solder paste)."
-msgstr ""
-"The height (Z) for travel between pads\n"
-"(without dispensing solder paste)."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:125
-#: flatcamTools/ToolSolderPaste.py:232
-msgid "Z Toolchange"
-msgstr "Z Toolchange"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:127
-#: flatcamTools/ToolSolderPaste.py:234
-msgid "The height (Z) for tool (nozzle) change."
-msgstr "The height (Z) for tool (nozzle) change."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:136
-#: flatcamTools/ToolSolderPaste.py:242
-msgid ""
-"The X,Y location for tool (nozzle) change.\n"
-"The format is (x, y) where x and y are real numbers."
-msgstr ""
-"The X,Y location for tool (nozzle) change.\n"
-"The format is (x, y) where x and y are real numbers."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:150
-#: flatcamTools/ToolSolderPaste.py:255
-msgid "Feedrate (speed) while moving on the X-Y plane."
-msgstr "Feedrate (speed) while moving on the X-Y plane."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:163
-#: flatcamTools/ToolSolderPaste.py:267
-msgid ""
-"Feedrate (speed) while moving vertically\n"
-"(on Z plane)."
-msgstr ""
-"Feedrate (speed) while moving vertically\n"
-"(on Z plane)."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:175
-#: flatcamTools/ToolSolderPaste.py:278
-msgid "Feedrate Z Dispense"
-msgstr "Feedrate Z Dispense"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:177
-msgid ""
-"Feedrate (speed) while moving up vertically\n"
-"to Dispense position (on Z plane)."
-msgstr ""
-"Feedrate (speed) while moving up vertically\n"
-"to Dispense position (on Z plane)."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:188
-#: flatcamTools/ToolSolderPaste.py:290
-msgid "Spindle Speed FWD"
-msgstr "Spindle Speed FWD"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:190
-#: flatcamTools/ToolSolderPaste.py:292
-msgid ""
-"The dispenser speed while pushing solder paste\n"
-"through the dispenser nozzle."
-msgstr ""
-"The dispenser speed while pushing solder paste\n"
-"through the dispenser nozzle."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:202
-#: flatcamTools/ToolSolderPaste.py:303
-msgid "Dwell FWD"
-msgstr "Dwell FWD"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:204
-#: flatcamTools/ToolSolderPaste.py:305
-msgid "Pause after solder dispensing."
-msgstr "Pause after solder dispensing."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:214
-#: flatcamTools/ToolSolderPaste.py:314
-msgid "Spindle Speed REV"
-msgstr "Spindle Speed REV"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:216
-#: flatcamTools/ToolSolderPaste.py:316
-msgid ""
-"The dispenser speed while retracting solder paste\n"
-"through the dispenser nozzle."
-msgstr ""
-"The dispenser speed while retracting solder paste\n"
-"through the dispenser nozzle."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:228
-#: flatcamTools/ToolSolderPaste.py:327
-msgid "Dwell REV"
-msgstr "Dwell REV"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:230
-#: flatcamTools/ToolSolderPaste.py:329
-msgid ""
-"Pause after solder paste dispenser retracted,\n"
-"to allow pressure equilibrium."
-msgstr ""
-"Pause after solder paste dispenser retracted,\n"
-"to allow pressure equilibrium."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:239
-#: flatcamTools/ToolSolderPaste.py:337
-msgid "Files that control the GCode generation."
-msgstr "Files that control the GCode generation."
-
-#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:27
-msgid "Substractor Tool Options"
-msgstr "Substractor Tool Options"
-
-#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:33
-msgid ""
-"A tool to substract one Gerber or Geometry object\n"
-"from another of the same type."
-msgstr ""
-"A tool to substract one Gerber or Geometry object\n"
-"from another of the same type."
-
-#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:38
-#: flatcamTools/ToolSub.py:155
-msgid "Close paths"
-msgstr "Close paths"
-
-#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:39
-msgid ""
-"Checking this will close the paths cut by the Geometry substractor object."
-msgstr ""
-"Checking this will close the paths cut by the Geometry substractor object."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:27
-msgid "Transform Tool Options"
-msgstr "Transform Tool Options"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:33
-msgid ""
-"Various transformations that can be applied\n"
-"on a FlatCAM object."
-msgstr ""
-"Various transformations that can be applied\n"
-"on a FlatCAM object."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:64
-msgid "Skew"
-msgstr "Skew"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:105
-#: flatcamTools/ToolTransform.py:150
-msgid "Factor for scaling on X axis."
-msgstr "Factor for scaling on X axis."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:118
-#: flatcamTools/ToolTransform.py:170
-msgid "Factor for scaling on Y axis."
-msgstr "Factor for scaling on Y axis."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:126
-#: flatcamTools/ToolTransform.py:191
-msgid ""
-"Scale the selected object(s)\n"
-"using the Scale_X factor for both axis."
-msgstr ""
-"Scale the selected object(s)\n"
-"using the Scale_X factor for both axis."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:134
-#: flatcamTools/ToolTransform.py:198
-msgid ""
-"Scale the selected object(s)\n"
-"using the origin reference when checked,\n"
-"and the center of the biggest bounding box\n"
-"of the selected objects when unchecked."
-msgstr ""
-"Scale the selected object(s)\n"
-"using the origin reference when checked,\n"
-"and the center of the biggest bounding box\n"
-"of the selected objects when unchecked."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:150
-#: flatcamTools/ToolTransform.py:217
-msgid "X val"
-msgstr "X val"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:152
-#: flatcamTools/ToolTransform.py:219
-msgid "Distance to offset on X axis. In current units."
-msgstr "Distance to offset on X axis. In current units."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:163
-#: flatcamTools/ToolTransform.py:237
-msgid "Y val"
-msgstr "Y val"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:165
-#: flatcamTools/ToolTransform.py:239
-msgid "Distance to offset on Y axis. In current units."
-msgstr "Distance to offset on Y axis. In current units."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:171
-#: flatcamTools/ToolDblSided.py:67 flatcamTools/ToolDblSided.py:95
-#: flatcamTools/ToolDblSided.py:125
-msgid "Mirror"
-msgstr "Mirror"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:175
-#: flatcamTools/ToolTransform.py:283
-msgid "Mirror Reference"
-msgstr "Mirror Reference"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:177
-#: flatcamTools/ToolTransform.py:285
-msgid ""
-"Flip the selected object(s)\n"
-"around the point in Point Entry Field.\n"
-"\n"
-"The point coordinates can be captured by\n"
-"left click on canvas together with pressing\n"
-"SHIFT key. \n"
-"Then click Add button to insert coordinates.\n"
-"Or enter the coords in format (x, y) in the\n"
-"Point Entry field and click Flip on X(Y)"
-msgstr ""
-"Flip the selected object(s)\n"
-"around the point in Point Entry Field.\n"
-"\n"
-"The point coordinates can be captured by\n"
-"left click on canvas together with pressing\n"
-"SHIFT key. \n"
-"Then click Add button to insert coordinates.\n"
-"Or enter the coords in format (x, y) in the\n"
-"Point Entry field and click Flip on X(Y)"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:188
-msgid "Mirror Reference point"
-msgstr "Mirror Reference point"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:190
-msgid ""
-"Coordinates in format (x, y) used as reference for mirroring.\n"
-"The 'x' in (x, y) will be used when using Flip on X and\n"
-"the 'y' in (x, y) will be used when using Flip on Y and"
-msgstr ""
-"Coordinates in format (x, y) used as reference for mirroring.\n"
-"The 'x' in (x, y) will be used when using Flip on X and\n"
-"the 'y' in (x, y) will be used when using Flip on Y and"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:203
-#: flatcamTools/ToolDistance.py:496 flatcamTools/ToolDistanceMin.py:287
-#: flatcamTools/ToolTransform.py:332
-msgid "Distance"
-msgstr "Distance"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:205
-#: flatcamTools/ToolTransform.py:334
-msgid ""
-"A positive value will create the effect of dilation,\n"
-"while a negative value will create the effect of erosion.\n"
-"Each geometry element of the object will be increased\n"
-"or decreased with the 'distance'."
-msgstr ""
-"A positive value will create the effect of dilation,\n"
-"while a negative value will create the effect of erosion.\n"
-"Each geometry element of the object will be increased\n"
-"or decreased with the 'distance'."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:222
-#: flatcamTools/ToolTransform.py:359
-msgid ""
-"A positive value will create the effect of dilation,\n"
-"while a negative value will create the effect of erosion.\n"
-"Each geometry element of the object will be increased\n"
-"or decreased to fit the 'Value'. Value is a percentage\n"
-"of the initial dimension."
-msgstr ""
-"A positive value will create the effect of dilation,\n"
-"while a negative value will create the effect of erosion.\n"
-"Each geometry element of the object will be increased\n"
-"or decreased to fit the 'Value'. Value is a percentage\n"
-"of the initial dimension."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:241
-#: flatcamTools/ToolTransform.py:385
-msgid ""
-"If checked then the buffer will surround the buffered shape,\n"
-"every corner will be rounded.\n"
-"If not checked then the buffer will follow the exact geometry\n"
-"of the buffered shape."
-msgstr ""
-"If checked then the buffer will surround the buffered shape,\n"
-"every corner will be rounded.\n"
-"If not checked then the buffer will follow the exact geometry\n"
-"of the buffered shape."
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:27
-msgid "Autocompleter Keywords"
-msgstr "Autocompleter Keywords"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:30
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:40
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:30
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:30
-msgid "Restore"
-msgstr "Restore"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:31
-msgid "Restore the autocompleter keywords list to the default state."
-msgstr "Restore the autocompleter keywords list to the default state."
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:32
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:42
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:32
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:32
-msgid "Delete All"
-msgstr "Delete All"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:33
-msgid "Delete all autocompleter keywords from the list."
-msgstr "Delete all autocompleter keywords from the list."
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:41
-msgid "Keywords list"
-msgstr "Keywords list"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:43
-msgid ""
-"List of keywords used by\n"
-"the autocompleter in FlatCAM.\n"
-"The autocompleter is installed\n"
-"in the Code Editor and for the Tcl Shell."
-msgstr ""
-"List of keywords used by\n"
-"the autocompleter in FlatCAM.\n"
-"The autocompleter is installed\n"
-"in the Code Editor and for the Tcl Shell."
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:64
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:73
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:63
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:62
-msgid "Extension"
-msgstr "Extension"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:65
-msgid "A keyword to be added or deleted to the list."
-msgstr "A keyword to be added or deleted to the list."
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:73
-msgid "Add keyword"
-msgstr "Add keyword"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:74
-msgid "Add a keyword to the list"
-msgstr "Add a keyword to the list"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:75
-msgid "Delete keyword"
-msgstr "Delete keyword"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:76
-msgid "Delete a keyword from the list"
-msgstr "Delete a keyword from the list"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:27
-msgid "Excellon File associations"
-msgstr "Excellon File associations"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:41
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:31
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:31
-msgid "Restore the extension list to the default state."
-msgstr "Restore the extension list to the default state."
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:43
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:33
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:33
-msgid "Delete all extensions from the list."
-msgstr "Delete all extensions from the list."
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:51
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:41
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:41
-msgid "Extensions list"
-msgstr "Extensions list"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:53
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:43
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:43
-msgid ""
-"List of file extensions to be\n"
-"associated with FlatCAM."
-msgstr ""
-"List of file extensions to be\n"
-"associated with FlatCAM."
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:74
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:64
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:63
-msgid "A file extension to be added or deleted to the list."
-msgstr "A file extension to be added or deleted to the list."
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:82
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:72
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:71
-msgid "Add Extension"
-msgstr "Add Extension"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:83
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:73
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:72
-msgid "Add a file extension to the list"
-msgstr "Add a file extension to the list"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:84
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:74
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:73
-msgid "Delete Extension"
-msgstr "Delete Extension"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:85
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:75
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:74
-msgid "Delete a file extension from the list"
-msgstr "Delete a file extension from the list"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:92
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:82
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:81
-msgid "Apply Association"
-msgstr "Apply Association"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:93
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:83
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:82
-msgid ""
-"Apply the file associations between\n"
-"FlatCAM and the files with above extensions.\n"
-"They will be active after next logon.\n"
-"This work only in Windows."
-msgstr ""
-"Apply the file associations between\n"
-"FlatCAM and the files with above extensions.\n"
-"They will be active after next logon.\n"
-"This work only in Windows."
-
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:27
-msgid "GCode File associations"
-msgstr "GCode File associations"
-
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:27
-msgid "Gerber File associations"
-msgstr "Gerber File associations"
-
-#: flatcamObjects/FlatCAMCNCJob.py:429 flatcamObjects/FlatCAMDocument.py:71
-#: flatcamObjects/FlatCAMScript.py:82
-msgid "Basic"
-msgstr "Basic"
-
-#: flatcamObjects/FlatCAMCNCJob.py:435 flatcamObjects/FlatCAMDocument.py:75
-#: flatcamObjects/FlatCAMScript.py:86
-msgid "Advanced"
-msgstr "Advanced"
-
-#: flatcamObjects/FlatCAMCNCJob.py:478
-msgid "Plotting..."
-msgstr "Plotting..."
-
-#: flatcamObjects/FlatCAMCNCJob.py:507 flatcamObjects/FlatCAMCNCJob.py:512
-#: flatcamTools/ToolSolderPaste.py:1499
-msgid "Export Machine Code ..."
-msgstr "Export Machine Code ..."
-
-#: flatcamObjects/FlatCAMCNCJob.py:517 flatcamTools/ToolSolderPaste.py:1503
-msgid "Export Machine Code cancelled ..."
-msgstr "Export Machine Code cancelled ..."
-
-#: flatcamObjects/FlatCAMCNCJob.py:538
-msgid "Machine Code file saved to"
-msgstr "Machine Code file saved to"
-
-#: flatcamObjects/FlatCAMCNCJob.py:599 flatcamTools/ToolCalibration.py:1097
-msgid "Loaded Machine Code into Code Editor"
-msgstr "Loaded Machine Code into Code Editor"
-
-#: flatcamObjects/FlatCAMCNCJob.py:740
-msgid "This CNCJob object can't be processed because it is a"
-msgstr "This CNCJob object can't be processed because it is a"
-
-#: flatcamObjects/FlatCAMCNCJob.py:742
-msgid "CNCJob object"
-msgstr "CNCJob object"
-
-#: flatcamObjects/FlatCAMCNCJob.py:922
-msgid ""
-"G-code does not have a G94 code and we will not include the code in the "
-"'Prepend to GCode' text box"
-msgstr ""
-"G-code does not have a G94 code and we will not include the code in the "
-"'Prepend to GCode' text box"
-
-#: flatcamObjects/FlatCAMCNCJob.py:933
-msgid "Cancelled. The Toolchange Custom code is enabled but it's empty."
-msgstr "Cancelled. The Toolchange Custom code is enabled but it's empty."
-
-#: flatcamObjects/FlatCAMCNCJob.py:938
-msgid "Toolchange G-code was replaced by a custom code."
-msgstr "Toolchange G-code was replaced by a custom code."
-
-#: flatcamObjects/FlatCAMCNCJob.py:986 flatcamObjects/FlatCAMCNCJob.py:996
-msgid ""
-"The used preprocessor file has to have in it's name: 'toolchange_custom'"
-msgstr ""
-"The used preprocessor file has to have in it's name: 'toolchange_custom'"
-
-#: flatcamObjects/FlatCAMCNCJob.py:999
-msgid "There is no preprocessor file."
-msgstr "There is no preprocessor file."
-
-#: flatcamObjects/FlatCAMDocument.py:175
-msgid "Document Editor"
-msgstr "Document Editor"
-
-#: flatcamObjects/FlatCAMExcellon.py:514 flatcamObjects/FlatCAMExcellon.py:746
-#: flatcamObjects/FlatCAMGeometry.py:323 flatcamObjects/FlatCAMGeometry.py:795
-#: flatcamTools/ToolNCC.py:811 flatcamTools/ToolNCC.py:1196
-#: flatcamTools/ToolPaint.py:779 flatcamTools/ToolPaint.py:1171
-msgid "Multiple Tools"
-msgstr "Multiple Tools"
-
-#: flatcamObjects/FlatCAMExcellon.py:726
-msgid "No Tool Selected"
-msgstr "No Tool Selected"
-
-#: flatcamObjects/FlatCAMExcellon.py:1076
-#: flatcamObjects/FlatCAMExcellon.py:1168
-#: flatcamObjects/FlatCAMExcellon.py:1355
-msgid "Please select one or more tools from the list and try again."
-msgstr "Please select one or more tools from the list and try again."
-
-#: flatcamObjects/FlatCAMExcellon.py:1083
-msgid "Milling tool for DRILLS is larger than hole size. Cancelled."
-msgstr "Milling tool for DRILLS is larger than hole size. Cancelled."
-
-#: flatcamObjects/FlatCAMExcellon.py:1098
-#: flatcamObjects/FlatCAMExcellon.py:1188
-#: flatcamObjects/FlatCAMExcellon.py:1373
-#: tclCommands/TclCommandDrillcncjob.py:193
-msgid "Tool_nr"
-msgstr "Tool_nr"
-
-#: flatcamObjects/FlatCAMExcellon.py:1098
-#: flatcamObjects/FlatCAMExcellon.py:1188
-#: flatcamObjects/FlatCAMExcellon.py:1373
-#: tclCommands/TclCommandDrillcncjob.py:193
-msgid "Drills_Nr"
-msgstr "Drills_Nr"
-
-#: flatcamObjects/FlatCAMExcellon.py:1098
-#: flatcamObjects/FlatCAMExcellon.py:1188
-#: flatcamObjects/FlatCAMExcellon.py:1373
-#: tclCommands/TclCommandDrillcncjob.py:193
-msgid "Slots_Nr"
-msgstr "Slots_Nr"
-
-#: flatcamObjects/FlatCAMExcellon.py:1177
-msgid "Milling tool for SLOTS is larger than hole size. Cancelled."
-msgstr "Milling tool for SLOTS is larger than hole size. Cancelled."
-
-#: flatcamObjects/FlatCAMExcellon.py:1281
-#: flatcamObjects/FlatCAMGeometry.py:1571
-msgid "Focus Z"
-msgstr "Focus Z"
-
-#: flatcamObjects/FlatCAMExcellon.py:1300
-#: flatcamObjects/FlatCAMGeometry.py:1590
-msgid "Laser Power"
-msgstr "Laser Power"
-
-#: flatcamObjects/FlatCAMExcellon.py:1430
-#: flatcamObjects/FlatCAMGeometry.py:2027
-#: flatcamObjects/FlatCAMGeometry.py:2031
-#: flatcamObjects/FlatCAMGeometry.py:2176
-msgid "Generating CNC Code"
-msgstr "Generating CNC Code"
-
-#: flatcamObjects/FlatCAMExcellon.py:1620 flatcamTools/ToolNCC.py:918
-#: flatcamTools/ToolPaint.py:844
-msgid "Current Tool parameters were applied to all tools."
-msgstr "Current Tool parameters were applied to all tools."
-
-#: flatcamObjects/FlatCAMGeometry.py:124 flatcamObjects/FlatCAMGeometry.py:1235
-#: flatcamObjects/FlatCAMGeometry.py:1236
-#: flatcamObjects/FlatCAMGeometry.py:1245
-msgid "Iso"
-msgstr "Iso"
-
-#: flatcamObjects/FlatCAMGeometry.py:124 flatcamObjects/FlatCAMGeometry.py:464
-#: flatcamObjects/FlatCAMGeometry.py:854 flatcamObjects/FlatCAMGerber.py:891
-#: flatcamObjects/FlatCAMGerber.py:1039 flatcamTools/ToolCutOut.py:690
-#: flatcamTools/ToolCutOut.py:886 flatcamTools/ToolCutOut.py:1046
-msgid "Rough"
-msgstr "Rough"
-
-#: flatcamObjects/FlatCAMGeometry.py:124
-msgid "Finish"
-msgstr "Finish"
-
-#: flatcamObjects/FlatCAMGeometry.py:499
-msgid "Add from Tool DB"
-msgstr "Add from Tool DB"
-
-#: flatcamObjects/FlatCAMGeometry.py:873
-msgid "Tool added in Tool Table."
-msgstr "Tool added in Tool Table."
-
-#: flatcamObjects/FlatCAMGeometry.py:982 flatcamObjects/FlatCAMGeometry.py:991
-msgid "Failed. Select a tool to copy."
-msgstr "Failed. Select a tool to copy."
-
-#: flatcamObjects/FlatCAMGeometry.py:1020
-msgid "Tool was copied in Tool Table."
-msgstr "Tool was copied in Tool Table."
-
-#: flatcamObjects/FlatCAMGeometry.py:1047
-msgid "Tool was edited in Tool Table."
-msgstr "Tool was edited in Tool Table."
-
-#: flatcamObjects/FlatCAMGeometry.py:1076
-#: flatcamObjects/FlatCAMGeometry.py:1085
-msgid "Failed. Select a tool to delete."
-msgstr "Failed. Select a tool to delete."
-
-#: flatcamObjects/FlatCAMGeometry.py:1109
-msgid "Tool was deleted in Tool Table."
-msgstr "Tool was deleted in Tool Table."
-
-#: flatcamObjects/FlatCAMGeometry.py:1146
-#: flatcamObjects/FlatCAMGeometry.py:1156
-msgid ""
-"Disabled because the tool is V-shape.\n"
-"For V-shape tools the depth of cut is\n"
-"calculated from other parameters like:\n"
-"- 'V-tip Angle' -> angle at the tip of the tool\n"
-"- 'V-tip Dia' -> diameter at the tip of the tool \n"
-"- Tool Dia -> 'Dia' column found in the Tool Table\n"
-"NB: a value of zero means that Tool Dia = 'V-tip Dia'"
-msgstr ""
-"Disabled because the tool is V-shape.\n"
-"For V-shape tools the depth of cut is\n"
-"calculated from other parameters like:\n"
-"- 'V-tip Angle' -> angle at the tip of the tool\n"
-"- 'V-tip Dia' -> diameter at the tip of the tool \n"
-"- Tool Dia -> 'Dia' column found in the Tool Table\n"
-"NB: a value of zero means that Tool Dia = 'V-tip Dia'"
-
-#: flatcamObjects/FlatCAMGeometry.py:1643
-msgid "This Geometry can't be processed because it is"
-msgstr "This Geometry can't be processed because it is"
-
-#: flatcamObjects/FlatCAMGeometry.py:1643
-msgid "geometry"
-msgstr "geometry"
-
-#: flatcamObjects/FlatCAMGeometry.py:1684
-msgid "Failed. No tool selected in the tool table ..."
-msgstr "Failed. No tool selected in the tool table ..."
-
-#: flatcamObjects/FlatCAMGeometry.py:1786
-#: flatcamObjects/FlatCAMGeometry.py:1936
-msgid ""
-"Tool Offset is selected in Tool Table but no value is provided.\n"
-"Add a Tool Offset or change the Offset Type."
-msgstr ""
-"Tool Offset is selected in Tool Table but no value is provided.\n"
-"Add a Tool Offset or change the Offset Type."
-
-#: flatcamObjects/FlatCAMGeometry.py:1852
-#: flatcamObjects/FlatCAMGeometry.py:1998
-msgid "G-Code parsing in progress..."
-msgstr "G-Code parsing in progress..."
-
-#: flatcamObjects/FlatCAMGeometry.py:1854
-#: flatcamObjects/FlatCAMGeometry.py:2000
-msgid "G-Code parsing finished..."
-msgstr "G-Code parsing finished..."
-
-#: flatcamObjects/FlatCAMGeometry.py:1862
-msgid "Finished G-Code processing"
-msgstr "Finished G-Code processing"
-
-#: flatcamObjects/FlatCAMGeometry.py:1864
-#: flatcamObjects/FlatCAMGeometry.py:2012
-msgid "G-Code processing failed with error"
-msgstr "G-Code processing failed with error"
-
-#: flatcamObjects/FlatCAMGeometry.py:1906 flatcamTools/ToolSolderPaste.py:1301
-msgid "Cancelled. Empty file, it has no geometry"
-msgstr "Cancelled. Empty file, it has no geometry"
-
-#: flatcamObjects/FlatCAMGeometry.py:2010
-#: flatcamObjects/FlatCAMGeometry.py:2171
-msgid "Finished G-Code processing..."
-msgstr "Finished G-Code processing..."
-
-#: flatcamObjects/FlatCAMGeometry.py:2029
-#: flatcamObjects/FlatCAMGeometry.py:2033
-#: flatcamObjects/FlatCAMGeometry.py:2178
-msgid "CNCjob created"
-msgstr "CNCjob created"
-
-#: flatcamObjects/FlatCAMGeometry.py:2209
-#: flatcamObjects/FlatCAMGeometry.py:2218 flatcamParsers/ParseGerber.py:1867
-#: flatcamParsers/ParseGerber.py:1877
-msgid "Scale factor has to be a number: integer or float."
-msgstr "Scale factor has to be a number: integer or float."
-
-#: flatcamObjects/FlatCAMGeometry.py:2281
-msgid "Geometry Scale done."
-msgstr "Geometry Scale done."
-
-#: flatcamObjects/FlatCAMGeometry.py:2298 flatcamParsers/ParseGerber.py:1993
-msgid ""
-"An (x,y) pair of values are needed. Probable you entered only one value in "
-"the Offset field."
-msgstr ""
-"An (x,y) pair of values are needed. Probable you entered only one value in "
-"the Offset field."
-
-#: flatcamObjects/FlatCAMGeometry.py:2354
-msgid "Geometry Offset done."
-msgstr "Geometry Offset done."
-
-#: flatcamObjects/FlatCAMGeometry.py:2383
-msgid ""
-"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, "
-"y)\n"
-"but now there is only one value, not two."
-msgstr ""
-"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, "
-"y)\n"
-"but now there is only one value, not two."
-
-#: flatcamObjects/FlatCAMGeometry.py:2577
-#: flatcamTools/ToolCopperThieving.py:769 flatcamTools/ToolNCC.py:1648
-msgid "Click the start point of the area."
-msgstr "Click the start point of the area."
-
-#: flatcamObjects/FlatCAMGeometry.py:2619
-#| msgid "Click the end point of the paint area."
-msgid "Click the end point of the area."
-msgstr "Click the end point of the area."
-
-#: flatcamObjects/FlatCAMGeometry.py:2625
-#: flatcamObjects/FlatCAMGeometry.py:2677
-#: flatcamTools/ToolCopperThieving.py:826 flatcamTools/ToolNCC.py:1710
-#: flatcamTools/ToolNCC.py:1762 flatcamTools/ToolPaint.py:1606
-#: flatcamTools/ToolPaint.py:1657
-msgid "Zone added. Click to start adding next zone or right click to finish."
-msgstr "Zone added. Click to start adding next zone or right click to finish."
-
-#: flatcamObjects/FlatCAMGeometry.py:2729
-msgid "Cancelled. Area exclusion drawing was interrupted."
-msgstr "Cancelled. Area exclusion drawing was interrupted."
-
-#: flatcamObjects/FlatCAMGerber.py:494
-msgid "Buffering solid geometry"
-msgstr "Buffering solid geometry"
-
-#: flatcamObjects/FlatCAMGerber.py:503
-msgid "Done"
-msgstr "Done"
-
-#: flatcamObjects/FlatCAMGerber.py:529 flatcamObjects/FlatCAMGerber.py:555
-msgid "Operation could not be done."
-msgstr "Operation could not be done."
-
-#: flatcamObjects/FlatCAMGerber.py:572
-msgid "Isolating..."
-msgstr "Isolating..."
-
-#: flatcamObjects/FlatCAMGerber.py:631
-msgid "Click on a polygon to isolate it."
-msgstr "Click on a polygon to isolate it."
-
-#: flatcamObjects/FlatCAMGerber.py:670 flatcamObjects/FlatCAMGerber.py:774
-#: flatcamTools/ToolPaint.py:1516
-msgid "Added polygon"
-msgstr "Added polygon"
-
-#: flatcamObjects/FlatCAMGerber.py:671 flatcamObjects/FlatCAMGerber.py:776
-msgid "Click to add next polygon or right click to start isolation."
-msgstr "Click to add next polygon or right click to start isolation."
-
-#: flatcamObjects/FlatCAMGerber.py:683 flatcamTools/ToolPaint.py:1530
-msgid "Removed polygon"
-msgstr "Removed polygon"
-
-#: flatcamObjects/FlatCAMGerber.py:684
-msgid "Click to add/remove next polygon or right click to start isolation."
-msgstr "Click to add/remove next polygon or right click to start isolation."
-
-#: flatcamObjects/FlatCAMGerber.py:689 flatcamTools/ToolPaint.py:1536
-msgid "No polygon detected under click position."
-msgstr "No polygon detected under click position."
-
-#: flatcamObjects/FlatCAMGerber.py:710 flatcamTools/ToolPaint.py:1565
-msgid "List of single polygons is empty. Aborting."
-msgstr "List of single polygons is empty. Aborting."
-
-#: flatcamObjects/FlatCAMGerber.py:779
-msgid "No polygon in selection."
-msgstr "No polygon in selection."
-
-#: flatcamObjects/FlatCAMGerber.py:907 flatcamObjects/FlatCAMGerber.py:986
-#: flatcamTools/ToolNCC.py:2086 flatcamTools/ToolNCC.py:3137
-#: flatcamTools/ToolNCC.py:3516
-msgid "Isolation geometry could not be generated."
-msgstr "Isolation geometry could not be generated."
-
-#: flatcamObjects/FlatCAMGerber.py:932 flatcamObjects/FlatCAMGerber.py:1064
-msgid "Isolation geometry created"
-msgstr "Isolation geometry created"
-
-#: flatcamObjects/FlatCAMGerber.py:941 flatcamObjects/FlatCAMGerber.py:1071
-msgid "Subtracting Geo"
-msgstr "Subtracting Geo"
-
-#: flatcamObjects/FlatCAMGerber.py:1396
-msgid "Plotting Apertures"
-msgstr "Plotting Apertures"
-
-#: flatcamObjects/FlatCAMObj.py:234
-msgid "Name changed from"
-msgstr "Name changed from"
-
-#: flatcamObjects/FlatCAMObj.py:234
-msgid "to"
-msgstr "to"
-
-#: flatcamObjects/FlatCAMObj.py:245
-msgid "Offsetting..."
-msgstr "Offsetting..."
-
-#: flatcamObjects/FlatCAMObj.py:259 flatcamObjects/FlatCAMObj.py:264
-msgid "Scaling could not be executed."
-msgstr "Scaling could not be executed."
-
-#: flatcamObjects/FlatCAMObj.py:268 flatcamObjects/FlatCAMObj.py:276
-msgid "Scale done."
-msgstr "Scale done."
-
-#: flatcamObjects/FlatCAMObj.py:274
-msgid "Scaling..."
-msgstr "Scaling..."
-
-#: flatcamObjects/FlatCAMObj.py:292
-msgid "Skewing..."
-msgstr "Skewing..."
-
-#: flatcamObjects/FlatCAMScript.py:163
-msgid "Script Editor"
-msgstr "Script Editor"
-
-#: flatcamObjects/ObjectCollection.py:510
-#, python-brace-format
-msgid "Object renamed from {old} to {new}"
-msgstr "Object renamed from {old} to {new}"
-
-#: flatcamObjects/ObjectCollection.py:983
-msgid "Cause of error"
-msgstr "Cause of error"
-
-#: flatcamParsers/ParseExcellon.py:316
-msgid "This is GCODE mark"
-msgstr "This is GCODE mark"
-
-#: flatcamParsers/ParseExcellon.py:433
-msgid ""
-"No tool diameter info's. See shell.\n"
-"A tool change event: T"
-msgstr ""
-"No tool diameter info's. See shell.\n"
-"A tool change event: T"
-
-#: flatcamParsers/ParseExcellon.py:436
-msgid ""
-"was found but the Excellon file have no informations regarding the tool "
-"diameters therefore the application will try to load it by using some 'fake' "
-"diameters.\n"
-"The user needs to edit the resulting Excellon object and change the "
-"diameters to reflect the real diameters."
-msgstr ""
-"was found but the Excellon file have no informations regarding the tool "
-"diameters therefore the application will try to load it by using some 'fake' "
-"diameters.\n"
-"The user needs to edit the resulting Excellon object and change the "
-"diameters to reflect the real diameters."
-
-#: flatcamParsers/ParseExcellon.py:900
-msgid ""
-"Excellon Parser error.\n"
-"Parsing Failed. Line"
-msgstr ""
-"Excellon Parser error.\n"
-"Parsing Failed. Line"
-
-#: flatcamParsers/ParseExcellon.py:982
-msgid ""
-"Excellon.create_geometry() -> a drill location was skipped due of not having "
-"a tool associated.\n"
-"Check the resulting GCode."
-msgstr ""
-"Excellon.create_geometry() -> a drill location was skipped due of not having "
-"a tool associated.\n"
-"Check the resulting GCode."
-
-#: flatcamParsers/ParseFont.py:303
-msgid "Font not supported, try another one."
-msgstr "Font not supported, try another one."
-
-#: flatcamParsers/ParseGerber.py:426
-msgid "Gerber processing. Parsing"
-msgstr "Gerber processing. Parsing"
-
-#: flatcamParsers/ParseGerber.py:426 flatcamParsers/ParseHPGL2.py:182
-msgid "lines"
-msgstr "lines"
-
-#: flatcamParsers/ParseGerber.py:1002 flatcamParsers/ParseGerber.py:1102
-#: flatcamParsers/ParseHPGL2.py:275 flatcamParsers/ParseHPGL2.py:289
-#: flatcamParsers/ParseHPGL2.py:308 flatcamParsers/ParseHPGL2.py:332
-#: flatcamParsers/ParseHPGL2.py:367
-msgid "Coordinates missing, line ignored"
-msgstr "Coordinates missing, line ignored"
-
-#: flatcamParsers/ParseGerber.py:1004 flatcamParsers/ParseGerber.py:1104
-msgid "GERBER file might be CORRUPT. Check the file !!!"
-msgstr "GERBER file might be CORRUPT. Check the file !!!"
-
-#: flatcamParsers/ParseGerber.py:1058
-msgid ""
-"Region does not have enough points. File will be processed but there are "
-"parser errors. Line number"
-msgstr ""
-"Region does not have enough points. File will be processed but there are "
-"parser errors. Line number"
-
-#: flatcamParsers/ParseGerber.py:1488 flatcamParsers/ParseHPGL2.py:402
-msgid "Gerber processing. Joining polygons"
-msgstr "Gerber processing. Joining polygons"
-
-#: flatcamParsers/ParseGerber.py:1505
-msgid "Gerber processing. Applying Gerber polarity."
-msgstr "Gerber processing. Applying Gerber polarity."
-
-#: flatcamParsers/ParseGerber.py:1565
-msgid "Gerber Line"
-msgstr "Gerber Line"
-
-#: flatcamParsers/ParseGerber.py:1565
-msgid "Gerber Line Content"
-msgstr "Gerber Line Content"
-
-#: flatcamParsers/ParseGerber.py:1567
-msgid "Gerber Parser ERROR"
-msgstr "Gerber Parser ERROR"
-
-#: flatcamParsers/ParseGerber.py:1957
-msgid "Gerber Scale done."
-msgstr "Gerber Scale done."
-
-#: flatcamParsers/ParseGerber.py:2049
-msgid "Gerber Offset done."
-msgstr "Gerber Offset done."
-
-#: flatcamParsers/ParseGerber.py:2125
-msgid "Gerber Mirror done."
-msgstr "Gerber Mirror done."
-
-#: flatcamParsers/ParseGerber.py:2199
-msgid "Gerber Skew done."
-msgstr "Gerber Skew done."
-
-#: flatcamParsers/ParseGerber.py:2261
-msgid "Gerber Rotate done."
-msgstr "Gerber Rotate done."
-
-#: flatcamParsers/ParseGerber.py:2418
-msgid "Gerber Buffer done."
-msgstr "Gerber Buffer done."
-
-#: flatcamParsers/ParseHPGL2.py:182
-msgid "HPGL2 processing. Parsing"
-msgstr "HPGL2 processing. Parsing"
-
-#: flatcamParsers/ParseHPGL2.py:414
-msgid "HPGL2 Line"
-msgstr "HPGL2 Line"
-
-#: flatcamParsers/ParseHPGL2.py:414
-msgid "HPGL2 Line Content"
-msgstr "HPGL2 Line Content"
-
-#: flatcamParsers/ParseHPGL2.py:415
-msgid "HPGL2 Parser ERROR"
-msgstr "HPGL2 Parser ERROR"
-
-#: flatcamTools/ToolAlignObjects.py:32
-msgid "Align Objects"
-msgstr "Align Objects"
-
-#: flatcamTools/ToolAlignObjects.py:61
-msgid "MOVING object"
-msgstr "MOVING object"
-
-#: flatcamTools/ToolAlignObjects.py:65
-msgid ""
-"Specify the type of object to be aligned.\n"
-"It can be of type: Gerber or Excellon.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Object combobox."
-msgstr ""
-"Specify the type of object to be aligned.\n"
-"It can be of type: Gerber or Excellon.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Object combobox."
-
-#: flatcamTools/ToolAlignObjects.py:86
-msgid "Object to be aligned."
-msgstr "Object to be aligned."
-
-#: flatcamTools/ToolAlignObjects.py:98
-msgid "TARGET object"
-msgstr "TARGET object"
-
-#: flatcamTools/ToolAlignObjects.py:100
-msgid ""
-"Specify the type of object to be aligned to.\n"
-"It can be of type: Gerber or Excellon.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Object combobox."
-msgstr ""
-"Specify the type of object to be aligned to.\n"
-"It can be of type: Gerber or Excellon.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Object combobox."
-
-#: flatcamTools/ToolAlignObjects.py:122
-msgid "Object to be aligned to. Aligner."
-msgstr "Object to be aligned to. Aligner."
-
-#: flatcamTools/ToolAlignObjects.py:135
-msgid "Alignment Type"
-msgstr "Alignment Type"
-
-#: flatcamTools/ToolAlignObjects.py:137
-msgid ""
-"The type of alignment can be:\n"
-"- Single Point -> it require a single point of sync, the action will be a "
-"translation\n"
-"- Dual Point -> it require two points of sync, the action will be "
-"translation followed by rotation"
-msgstr ""
-"The type of alignment can be:\n"
-"- Single Point -> it require a single point of sync, the action will be a "
-"translation\n"
-"- Dual Point -> it require two points of sync, the action will be "
-"translation followed by rotation"
-
-#: flatcamTools/ToolAlignObjects.py:143
-msgid "Single Point"
-msgstr "Single Point"
-
-#: flatcamTools/ToolAlignObjects.py:144
-msgid "Dual Point"
-msgstr "Dual Point"
-
-#: flatcamTools/ToolAlignObjects.py:159
-msgid "Align Object"
-msgstr "Align Object"
-
-#: flatcamTools/ToolAlignObjects.py:161
-msgid ""
-"Align the specified object to the aligner object.\n"
-"If only one point is used then it assumes translation.\n"
-"If tho points are used it assume translation and rotation."
-msgstr ""
-"Align the specified object to the aligner object.\n"
-"If only one point is used then it assumes translation.\n"
-"If tho points are used it assume translation and rotation."
-
-#: flatcamTools/ToolAlignObjects.py:176 flatcamTools/ToolCalculators.py:246
-#: flatcamTools/ToolCalibration.py:683 flatcamTools/ToolCopperThieving.py:484
-#: flatcamTools/ToolCutOut.py:362 flatcamTools/ToolDblSided.py:471
-#: flatcamTools/ToolExtractDrills.py:310 flatcamTools/ToolFiducials.py:318
-#: flatcamTools/ToolFilm.py:520 flatcamTools/ToolInvertGerber.py:140
-#: flatcamTools/ToolNCC.py:612 flatcamTools/ToolOptimal.py:237
-#: flatcamTools/ToolPaint.py:556 flatcamTools/ToolPanelize.py:269
-#: flatcamTools/ToolPunchGerber.py:339 flatcamTools/ToolQRCode.py:314
-#: flatcamTools/ToolRulesCheck.py:516 flatcamTools/ToolSolderPaste.py:473
-#: flatcamTools/ToolSub.py:176 flatcamTools/ToolTransform.py:398
-msgid "Reset Tool"
-msgstr "Reset Tool"
-
-#: flatcamTools/ToolAlignObjects.py:178 flatcamTools/ToolCalculators.py:248
-#: flatcamTools/ToolCalibration.py:685 flatcamTools/ToolCopperThieving.py:486
-#: flatcamTools/ToolCutOut.py:364 flatcamTools/ToolDblSided.py:473
-#: flatcamTools/ToolExtractDrills.py:312 flatcamTools/ToolFiducials.py:320
-#: flatcamTools/ToolFilm.py:522 flatcamTools/ToolInvertGerber.py:142
-#: flatcamTools/ToolNCC.py:614 flatcamTools/ToolOptimal.py:239
-#: flatcamTools/ToolPaint.py:558 flatcamTools/ToolPanelize.py:271
-#: flatcamTools/ToolPunchGerber.py:341 flatcamTools/ToolQRCode.py:316
-#: flatcamTools/ToolRulesCheck.py:518 flatcamTools/ToolSolderPaste.py:475
-#: flatcamTools/ToolSub.py:178 flatcamTools/ToolTransform.py:400
-msgid "Will reset the tool parameters."
-msgstr "Will reset the tool parameters."
-
-#: flatcamTools/ToolAlignObjects.py:244
-msgid "Align Tool"
-msgstr "Align Tool"
-
-#: flatcamTools/ToolAlignObjects.py:289
-msgid "There is no aligned FlatCAM object selected..."
-msgstr "There is no aligned FlatCAM object selected..."
-
-#: flatcamTools/ToolAlignObjects.py:299
-msgid "There is no aligner FlatCAM object selected..."
-msgstr "There is no aligner FlatCAM object selected..."
-
-#: flatcamTools/ToolAlignObjects.py:325 flatcamTools/ToolAlignObjects.py:385
-msgid "First Point"
-msgstr "First Point"
-
-#: flatcamTools/ToolAlignObjects.py:325 flatcamTools/ToolAlignObjects.py:400
-msgid "Click on the START point."
-msgstr "Click on the START point."
-
-#: flatcamTools/ToolAlignObjects.py:380 flatcamTools/ToolCalibration.py:920
-msgid "Cancelled by user request."
-msgstr "Cancelled by user request."
-
-#: flatcamTools/ToolAlignObjects.py:385 flatcamTools/ToolAlignObjects.py:407
-msgid "Click on the DESTINATION point."
-msgstr "Click on the DESTINATION point."
-
-#: flatcamTools/ToolAlignObjects.py:385 flatcamTools/ToolAlignObjects.py:400
-#: flatcamTools/ToolAlignObjects.py:407
-msgid "Or right click to cancel."
-msgstr "Or right click to cancel."
-
-#: flatcamTools/ToolAlignObjects.py:400 flatcamTools/ToolAlignObjects.py:407
-#: flatcamTools/ToolFiducials.py:111
-msgid "Second Point"
-msgstr "Second Point"
-
-#: flatcamTools/ToolCalculators.py:24
-msgid "Calculators"
-msgstr "Calculators"
-
-#: flatcamTools/ToolCalculators.py:26
-msgid "Units Calculator"
-msgstr "Units Calculator"
-
-#: flatcamTools/ToolCalculators.py:70
-msgid "Here you enter the value to be converted from INCH to MM"
-msgstr "Here you enter the value to be converted from INCH to MM"
-
-#: flatcamTools/ToolCalculators.py:75
-msgid "Here you enter the value to be converted from MM to INCH"
-msgstr "Here you enter the value to be converted from MM to INCH"
-
-#: flatcamTools/ToolCalculators.py:111
-msgid ""
-"This is the angle of the tip of the tool.\n"
-"It is specified by manufacturer."
-msgstr ""
-"This is the angle of the tip of the tool.\n"
-"It is specified by manufacturer."
-
-#: flatcamTools/ToolCalculators.py:120
-msgid ""
-"This is the depth to cut into the material.\n"
-"In the CNCJob is the CutZ parameter."
-msgstr ""
-"This is the depth to cut into the material.\n"
-"In the CNCJob is the CutZ parameter."
-
-#: flatcamTools/ToolCalculators.py:128
-msgid ""
-"This is the tool diameter to be entered into\n"
-"FlatCAM Gerber section.\n"
-"In the CNCJob section it is called >Tool dia<."
-msgstr ""
-"This is the tool diameter to be entered into\n"
-"FlatCAM Gerber section.\n"
-"In the CNCJob section it is called >Tool dia<."
-
-#: flatcamTools/ToolCalculators.py:139 flatcamTools/ToolCalculators.py:235
-msgid "Calculate"
-msgstr "Calculate"
-
-#: flatcamTools/ToolCalculators.py:142
-msgid ""
-"Calculate either the Cut Z or the effective tool diameter,\n"
-" depending on which is desired and which is known. "
-msgstr ""
-"Calculate either the Cut Z or the effective tool diameter,\n"
-" depending on which is desired and which is known. "
-
-#: flatcamTools/ToolCalculators.py:205
-msgid "Current Value"
-msgstr "Current Value"
-
-#: flatcamTools/ToolCalculators.py:212
-msgid ""
-"This is the current intensity value\n"
-"to be set on the Power Supply. In Amps."
-msgstr ""
-"This is the current intensity value\n"
-"to be set on the Power Supply. In Amps."
-
-#: flatcamTools/ToolCalculators.py:216
-msgid "Time"
-msgstr "Time"
-
-#: flatcamTools/ToolCalculators.py:223
-msgid ""
-"This is the calculated time required for the procedure.\n"
-"In minutes."
-msgstr ""
-"This is the calculated time required for the procedure.\n"
-"In minutes."
-
-#: flatcamTools/ToolCalculators.py:238
-msgid ""
-"Calculate the current intensity value and the procedure time,\n"
-"depending on the parameters above"
-msgstr ""
-"Calculate the current intensity value and the procedure time,\n"
-"depending on the parameters above"
-
-#: flatcamTools/ToolCalculators.py:299
-msgid "Calc. Tool"
-msgstr "Calc. Tool"
-
-#: flatcamTools/ToolCalibration.py:67
-msgid "GCode Parameters"
-msgstr "GCode Parameters"
-
-#: flatcamTools/ToolCalibration.py:69
-msgid "Parameters used when creating the GCode in this tool."
-msgstr "Parameters used when creating the GCode in this tool."
-
-#: flatcamTools/ToolCalibration.py:173
-msgid "STEP 1: Acquire Calibration Points"
-msgstr "STEP 1: Acquire Calibration Points"
-
-#: flatcamTools/ToolCalibration.py:175
-msgid ""
-"Pick four points by clicking on canvas.\n"
-"Those four points should be in the four\n"
-"(as much as possible) corners of the object."
-msgstr ""
-"Pick four points by clicking on canvas.\n"
-"Those four points should be in the four\n"
-"(as much as possible) corners of the object."
-
-#: flatcamTools/ToolCalibration.py:193 flatcamTools/ToolFilm.py:76
-#: flatcamTools/ToolImage.py:54 flatcamTools/ToolPanelize.py:78
-#: flatcamTools/ToolProperties.py:177
-msgid "Object Type"
-msgstr "Object Type"
-
-#: flatcamTools/ToolCalibration.py:210
-msgid "Source object selection"
-msgstr "Source object selection"
-
-#: flatcamTools/ToolCalibration.py:212
-msgid "FlatCAM Object to be used as a source for reference points."
-msgstr "FlatCAM Object to be used as a source for reference points."
-
-#: flatcamTools/ToolCalibration.py:218
-msgid "Calibration Points"
-msgstr "Calibration Points"
-
-#: flatcamTools/ToolCalibration.py:220
-msgid ""
-"Contain the expected calibration points and the\n"
-"ones measured."
-msgstr ""
-"Contain the expected calibration points and the\n"
-"ones measured."
-
-#: flatcamTools/ToolCalibration.py:235 flatcamTools/ToolSub.py:76
-#: flatcamTools/ToolSub.py:131
-msgid "Target"
-msgstr "Target"
-
-#: flatcamTools/ToolCalibration.py:236
-msgid "Found Delta"
-msgstr "Found Delta"
-
-#: flatcamTools/ToolCalibration.py:248
-msgid "Bot Left X"
-msgstr "Bot Left X"
-
-#: flatcamTools/ToolCalibration.py:257
-msgid "Bot Left Y"
-msgstr "Bot Left Y"
-
-#: flatcamTools/ToolCalibration.py:275
-msgid "Bot Right X"
-msgstr "Bot Right X"
-
-#: flatcamTools/ToolCalibration.py:285
-msgid "Bot Right Y"
-msgstr "Bot Right Y"
-
-#: flatcamTools/ToolCalibration.py:300
-msgid "Top Left X"
-msgstr "Top Left X"
-
-#: flatcamTools/ToolCalibration.py:309
-msgid "Top Left Y"
-msgstr "Top Left Y"
-
-#: flatcamTools/ToolCalibration.py:324
-msgid "Top Right X"
-msgstr "Top Right X"
-
-#: flatcamTools/ToolCalibration.py:334
-msgid "Top Right Y"
-msgstr "Top Right Y"
-
-#: flatcamTools/ToolCalibration.py:367
-msgid "Get Points"
-msgstr "Get Points"
-
-#: flatcamTools/ToolCalibration.py:369
-msgid ""
-"Pick four points by clicking on canvas if the source choice\n"
-"is 'free' or inside the object geometry if the source is 'object'.\n"
-"Those four points should be in the four squares of\n"
-"the object."
-msgstr ""
-"Pick four points by clicking on canvas if the source choice\n"
-"is 'free' or inside the object geometry if the source is 'object'.\n"
-"Those four points should be in the four squares of\n"
-"the object."
-
-#: flatcamTools/ToolCalibration.py:390
-msgid "STEP 2: Verification GCode"
-msgstr "STEP 2: Verification GCode"
-
-#: flatcamTools/ToolCalibration.py:392 flatcamTools/ToolCalibration.py:405
-msgid ""
-"Generate GCode file to locate and align the PCB by using\n"
-"the four points acquired above.\n"
-"The points sequence is:\n"
-"- first point -> set the origin\n"
-"- second point -> alignment point. Can be: top-left or bottom-right.\n"
-"- third point -> check point. Can be: top-left or bottom-right.\n"
-"- forth point -> final verification point. Just for evaluation."
-msgstr ""
-"Generate GCode file to locate and align the PCB by using\n"
-"the four points acquired above.\n"
-"The points sequence is:\n"
-"- first point -> set the origin\n"
-"- second point -> alignment point. Can be: top-left or bottom-right.\n"
-"- third point -> check point. Can be: top-left or bottom-right.\n"
-"- forth point -> final verification point. Just for evaluation."
-
-#: flatcamTools/ToolCalibration.py:403 flatcamTools/ToolSolderPaste.py:348
-msgid "Generate GCode"
-msgstr "Generate GCode"
-
-#: flatcamTools/ToolCalibration.py:429
-msgid "STEP 3: Adjustments"
-msgstr "STEP 3: Adjustments"
-
-#: flatcamTools/ToolCalibration.py:431 flatcamTools/ToolCalibration.py:440
-msgid ""
-"Calculate Scale and Skew factors based on the differences (delta)\n"
-"found when checking the PCB pattern. The differences must be filled\n"
-"in the fields Found (Delta)."
-msgstr ""
-"Calculate Scale and Skew factors based on the differences (delta)\n"
-"found when checking the PCB pattern. The differences must be filled\n"
-"in the fields Found (Delta)."
-
-#: flatcamTools/ToolCalibration.py:438
-msgid "Calculate Factors"
-msgstr "Calculate Factors"
-
-#: flatcamTools/ToolCalibration.py:460
-msgid "STEP 4: Adjusted GCode"
-msgstr "STEP 4: Adjusted GCode"
-
-#: flatcamTools/ToolCalibration.py:462
-msgid ""
-"Generate verification GCode file adjusted with\n"
-"the factors above."
-msgstr ""
-"Generate verification GCode file adjusted with\n"
-"the factors above."
-
-#: flatcamTools/ToolCalibration.py:467
-msgid "Scale Factor X:"
-msgstr "Scale Factor X:"
-
-#: flatcamTools/ToolCalibration.py:479
-msgid "Scale Factor Y:"
-msgstr "Scale Factor Y:"
-
-#: flatcamTools/ToolCalibration.py:491
-msgid "Apply Scale Factors"
-msgstr "Apply Scale Factors"
-
-#: flatcamTools/ToolCalibration.py:493
-msgid "Apply Scale factors on the calibration points."
-msgstr "Apply Scale factors on the calibration points."
-
-#: flatcamTools/ToolCalibration.py:503
-msgid "Skew Angle X:"
-msgstr "Skew Angle X:"
-
-#: flatcamTools/ToolCalibration.py:516
-msgid "Skew Angle Y:"
-msgstr "Skew Angle Y:"
-
-#: flatcamTools/ToolCalibration.py:529
-msgid "Apply Skew Factors"
-msgstr "Apply Skew Factors"
-
-#: flatcamTools/ToolCalibration.py:531
-msgid "Apply Skew factors on the calibration points."
-msgstr "Apply Skew factors on the calibration points."
-
-#: flatcamTools/ToolCalibration.py:600
-msgid "Generate Adjusted GCode"
-msgstr "Generate Adjusted GCode"
-
-#: flatcamTools/ToolCalibration.py:602
-msgid ""
-"Generate verification GCode file adjusted with\n"
-"the factors set above.\n"
-"The GCode parameters can be readjusted\n"
-"before clicking this button."
-msgstr ""
-"Generate verification GCode file adjusted with\n"
-"the factors set above.\n"
-"The GCode parameters can be readjusted\n"
-"before clicking this button."
-
-#: flatcamTools/ToolCalibration.py:623
-msgid "STEP 5: Calibrate FlatCAM Objects"
-msgstr "STEP 5: Calibrate FlatCAM Objects"
-
-#: flatcamTools/ToolCalibration.py:625
-msgid ""
-"Adjust the FlatCAM objects\n"
-"with the factors determined and verified above."
-msgstr ""
-"Adjust the FlatCAM objects\n"
-"with the factors determined and verified above."
-
-#: flatcamTools/ToolCalibration.py:637
-msgid "Adjusted object type"
-msgstr "Adjusted object type"
-
-#: flatcamTools/ToolCalibration.py:638
-msgid "Type of the FlatCAM Object to be adjusted."
-msgstr "Type of the FlatCAM Object to be adjusted."
-
-#: flatcamTools/ToolCalibration.py:651
-msgid "Adjusted object selection"
-msgstr "Adjusted object selection"
-
-#: flatcamTools/ToolCalibration.py:653
-msgid "The FlatCAM Object to be adjusted."
-msgstr "The FlatCAM Object to be adjusted."
-
-#: flatcamTools/ToolCalibration.py:660
-msgid "Calibrate"
-msgstr "Calibrate"
-
-#: flatcamTools/ToolCalibration.py:662
-msgid ""
-"Adjust (scale and/or skew) the objects\n"
-"with the factors determined above."
-msgstr ""
-"Adjust (scale and/or skew) the objects\n"
-"with the factors determined above."
-
-#: flatcamTools/ToolCalibration.py:770 flatcamTools/ToolCalibration.py:771
-msgid "Origin"
-msgstr "Origin"
-
-#: flatcamTools/ToolCalibration.py:800
-msgid "Tool initialized"
-msgstr "Tool initialized"
-
-#: flatcamTools/ToolCalibration.py:838
-msgid "There is no source FlatCAM object selected..."
-msgstr "There is no source FlatCAM object selected..."
-
-#: flatcamTools/ToolCalibration.py:859
-msgid "Get First calibration point. Bottom Left..."
-msgstr "Get First calibration point. Bottom Left..."
-
-#: flatcamTools/ToolCalibration.py:926
-msgid "Get Second calibration point. Bottom Right (Top Left)..."
-msgstr "Get Second calibration point. Bottom Right (Top Left)..."
-
-#: flatcamTools/ToolCalibration.py:930
-msgid "Get Third calibration point. Top Left (Bottom Right)..."
-msgstr "Get Third calibration point. Top Left (Bottom Right)..."
-
-#: flatcamTools/ToolCalibration.py:934
-msgid "Get Forth calibration point. Top Right..."
-msgstr "Get Forth calibration point. Top Right..."
-
-#: flatcamTools/ToolCalibration.py:938
-msgid "Done. All four points have been acquired."
-msgstr "Done. All four points have been acquired."
-
-#: flatcamTools/ToolCalibration.py:969
-msgid "Verification GCode for FlatCAM Calibration Tool"
-msgstr "Verification GCode for FlatCAM Calibration Tool"
-
-#: flatcamTools/ToolCalibration.py:981 flatcamTools/ToolCalibration.py:1067
-msgid "Gcode Viewer"
-msgstr "Gcode Viewer"
-
-#: flatcamTools/ToolCalibration.py:997
-msgid "Cancelled. Four points are needed for GCode generation."
-msgstr "Cancelled. Four points are needed for GCode generation."
-
-#: flatcamTools/ToolCalibration.py:1253 flatcamTools/ToolCalibration.py:1349
-msgid "There is no FlatCAM object selected..."
-msgstr "There is no FlatCAM object selected..."
-
-#: flatcamTools/ToolCopperThieving.py:76 flatcamTools/ToolFiducials.py:261
-msgid "Gerber Object to which will be added a copper thieving."
-msgstr "Gerber Object to which will be added a copper thieving."
-
-#: flatcamTools/ToolCopperThieving.py:98
-msgid ""
-"This set the distance between the copper thieving components\n"
-"(the polygon fill may be split in multiple polygons)\n"
-"and the copper traces in the Gerber file."
-msgstr ""
-"This set the distance between the copper thieving components\n"
-"(the polygon fill may be split in multiple polygons)\n"
-"and the copper traces in the Gerber file."
-
-#: flatcamTools/ToolCopperThieving.py:131
-msgid ""
-"- 'Itself' - the copper thieving extent is based on the object extent.\n"
-"- 'Area Selection' - left mouse click to start selection of the area to be "
-"filled.\n"
-"- 'Reference Object' - will do copper thieving within the area specified by "
-"another object."
-msgstr ""
-"- 'Itself' - the copper thieving extent is based on the object extent.\n"
-"- 'Area Selection' - left mouse click to start selection of the area to be "
-"filled.\n"
-"- 'Reference Object' - will do copper thieving within the area specified by "
-"another object."
-
-#: flatcamTools/ToolCopperThieving.py:138 flatcamTools/ToolNCC.py:552
-#: flatcamTools/ToolPaint.py:496
-msgid "Ref. Type"
-msgstr "Ref. Type"
-
-#: flatcamTools/ToolCopperThieving.py:140
-msgid ""
-"The type of FlatCAM object to be used as copper thieving reference.\n"
-"It can be Gerber, Excellon or Geometry."
-msgstr ""
-"The type of FlatCAM object to be used as copper thieving reference.\n"
-"It can be Gerber, Excellon or Geometry."
-
-#: flatcamTools/ToolCopperThieving.py:149 flatcamTools/ToolNCC.py:562
-#: flatcamTools/ToolPaint.py:506
-msgid "Ref. Object"
-msgstr "Ref. Object"
-
-#: flatcamTools/ToolCopperThieving.py:151 flatcamTools/ToolNCC.py:564
-#: flatcamTools/ToolPaint.py:508
-msgid "The FlatCAM object to be used as non copper clearing reference."
-msgstr "The FlatCAM object to be used as non copper clearing reference."
-
-#: flatcamTools/ToolCopperThieving.py:327
-msgid "Insert Copper thieving"
-msgstr "Insert Copper thieving"
-
-#: flatcamTools/ToolCopperThieving.py:329
-msgid ""
-"Will add a polygon (may be split in multiple parts)\n"
-"that will surround the actual Gerber traces at a certain distance."
-msgstr ""
-"Will add a polygon (may be split in multiple parts)\n"
-"that will surround the actual Gerber traces at a certain distance."
-
-#: flatcamTools/ToolCopperThieving.py:388
-msgid "Insert Robber Bar"
-msgstr "Insert Robber Bar"
-
-#: flatcamTools/ToolCopperThieving.py:390
-msgid ""
-"Will add a polygon with a defined thickness\n"
-"that will surround the actual Gerber object\n"
-"at a certain distance.\n"
-"Required when doing holes pattern plating."
-msgstr ""
-"Will add a polygon with a defined thickness\n"
-"that will surround the actual Gerber object\n"
-"at a certain distance.\n"
-"Required when doing holes pattern plating."
-
-#: flatcamTools/ToolCopperThieving.py:414
-msgid "Select Soldermask object"
-msgstr "Select Soldermask object"
-
-#: flatcamTools/ToolCopperThieving.py:416
-msgid ""
-"Gerber Object with the soldermask.\n"
-"It will be used as a base for\n"
-"the pattern plating mask."
-msgstr ""
-"Gerber Object with the soldermask.\n"
-"It will be used as a base for\n"
-"the pattern plating mask."
-
-#: flatcamTools/ToolCopperThieving.py:445
-msgid "Plated area"
-msgstr "Plated area"
-
-#: flatcamTools/ToolCopperThieving.py:447
-msgid ""
-"The area to be plated by pattern plating.\n"
-"Basically is made from the openings in the plating mask.\n"
-"\n"
-"<> - the calculated area is actually a bit larger\n"
-"due of the fact that the soldermask openings are by design\n"
-"a bit larger than the copper pads, and this area is\n"
-"calculated from the soldermask openings."
-msgstr ""
-"The area to be plated by pattern plating.\n"
-"Basically is made from the openings in the plating mask.\n"
-"\n"
-"<> - the calculated area is actually a bit larger\n"
-"due of the fact that the soldermask openings are by design\n"
-"a bit larger than the copper pads, and this area is\n"
-"calculated from the soldermask openings."
-
-#: flatcamTools/ToolCopperThieving.py:458
-msgid "mm"
-msgstr "mm"
-
-#: flatcamTools/ToolCopperThieving.py:460
-msgid "in"
-msgstr "in"
-
-#: flatcamTools/ToolCopperThieving.py:467
-msgid "Generate pattern plating mask"
-msgstr "Generate pattern plating mask"
-
-#: flatcamTools/ToolCopperThieving.py:469
-msgid ""
-"Will add to the soldermask gerber geometry\n"
-"the geometries of the copper thieving and/or\n"
-"the robber bar if those were generated."
-msgstr ""
-"Will add to the soldermask gerber geometry\n"
-"the geometries of the copper thieving and/or\n"
-"the robber bar if those were generated."
-
-#: flatcamTools/ToolCopperThieving.py:625
-#: flatcamTools/ToolCopperThieving.py:650
-msgid "Lines Grid works only for 'itself' reference ..."
-msgstr "Lines Grid works only for 'itself' reference ..."
-
-#: flatcamTools/ToolCopperThieving.py:636
-msgid "Solid fill selected."
-msgstr "Solid fill selected."
-
-#: flatcamTools/ToolCopperThieving.py:641
-msgid "Dots grid fill selected."
-msgstr "Dots grid fill selected."
-
-#: flatcamTools/ToolCopperThieving.py:646
-msgid "Squares grid fill selected."
-msgstr "Squares grid fill selected."
-
-#: flatcamTools/ToolCopperThieving.py:667
-#: flatcamTools/ToolCopperThieving.py:749
-#: flatcamTools/ToolCopperThieving.py:1345 flatcamTools/ToolDblSided.py:657
-#: flatcamTools/ToolExtractDrills.py:436 flatcamTools/ToolFiducials.py:466
-#: flatcamTools/ToolFiducials.py:743 flatcamTools/ToolOptimal.py:342
-#: flatcamTools/ToolPunchGerber.py:512 flatcamTools/ToolQRCode.py:426
-msgid "There is no Gerber object loaded ..."
-msgstr "There is no Gerber object loaded ..."
-
-#: flatcamTools/ToolCopperThieving.py:680
-#: flatcamTools/ToolCopperThieving.py:1273
-msgid "Append geometry"
-msgstr "Append geometry"
-
-#: flatcamTools/ToolCopperThieving.py:724
-#: flatcamTools/ToolCopperThieving.py:1306
-#: flatcamTools/ToolCopperThieving.py:1459
-msgid "Append source file"
-msgstr "Append source file"
-
-#: flatcamTools/ToolCopperThieving.py:732
-#: flatcamTools/ToolCopperThieving.py:1314
-msgid "Copper Thieving Tool done."
-msgstr "Copper Thieving Tool done."
-
-#: flatcamTools/ToolCopperThieving.py:759
-#: flatcamTools/ToolCopperThieving.py:792 flatcamTools/ToolCutOut.py:519
-#: flatcamTools/ToolCutOut.py:724 flatcamTools/ToolInvertGerber.py:208
-#: flatcamTools/ToolNCC.py:1599 flatcamTools/ToolNCC.py:1640
-#: flatcamTools/ToolNCC.py:1669 flatcamTools/ToolPaint.py:1474
-#: flatcamTools/ToolPanelize.py:412 flatcamTools/ToolPanelize.py:426
-#: flatcamTools/ToolSub.py:294 flatcamTools/ToolSub.py:307
-#: flatcamTools/ToolSub.py:498 flatcamTools/ToolSub.py:513
-#: tclCommands/TclCommandCopperClear.py:97 tclCommands/TclCommandPaint.py:99
-msgid "Could not retrieve object"
-msgstr "Could not retrieve object"
-
-#: flatcamTools/ToolCopperThieving.py:820
-msgid "Click the end point of the filling area."
-msgstr "Click the end point of the filling area."
-
-#: flatcamTools/ToolCopperThieving.py:942
-#: flatcamTools/ToolCopperThieving.py:946
-#: flatcamTools/ToolCopperThieving.py:1007
-msgid "Thieving"
-msgstr "Thieving"
-
-#: flatcamTools/ToolCopperThieving.py:953
-msgid "Copper Thieving Tool started. Reading parameters."
-msgstr "Copper Thieving Tool started. Reading parameters."
-
-#: flatcamTools/ToolCopperThieving.py:978
-msgid "Copper Thieving Tool. Preparing isolation polygons."
-msgstr "Copper Thieving Tool. Preparing isolation polygons."
-
-#: flatcamTools/ToolCopperThieving.py:1023
-msgid "Copper Thieving Tool. Preparing areas to fill with copper."
-msgstr "Copper Thieving Tool. Preparing areas to fill with copper."
-
-#: flatcamTools/ToolCopperThieving.py:1034 flatcamTools/ToolOptimal.py:349
-#: flatcamTools/ToolPanelize.py:799 flatcamTools/ToolRulesCheck.py:1127
-msgid "Working..."
-msgstr "Working..."
-
-#: flatcamTools/ToolCopperThieving.py:1061
-msgid "Geometry not supported for bounding box"
-msgstr "Geometry not supported for bounding box"
-
-#: flatcamTools/ToolCopperThieving.py:1067 flatcamTools/ToolNCC.py:1933
-#: flatcamTools/ToolNCC.py:1988 flatcamTools/ToolNCC.py:2992
-#: flatcamTools/ToolPaint.py:3380
-msgid "No object available."
-msgstr "No object available."
-
-#: flatcamTools/ToolCopperThieving.py:1104 flatcamTools/ToolNCC.py:1958
-#: flatcamTools/ToolNCC.py:2011 flatcamTools/ToolNCC.py:3034
-msgid "The reference object type is not supported."
-msgstr "The reference object type is not supported."
-
-#: flatcamTools/ToolCopperThieving.py:1109
-msgid "Copper Thieving Tool. Appending new geometry and buffering."
-msgstr "Copper Thieving Tool. Appending new geometry and buffering."
-
-#: flatcamTools/ToolCopperThieving.py:1125
-msgid "Create geometry"
-msgstr "Create geometry"
-
-#: flatcamTools/ToolCopperThieving.py:1325
-#: flatcamTools/ToolCopperThieving.py:1329
-msgid "P-Plating Mask"
-msgstr "P-Plating Mask"
-
-#: flatcamTools/ToolCopperThieving.py:1351
-msgid "Append PP-M geometry"
-msgstr "Append PP-M geometry"
-
-#: flatcamTools/ToolCopperThieving.py:1477
-msgid "Generating Pattern Plating Mask done."
-msgstr "Generating Pattern Plating Mask done."
-
-#: flatcamTools/ToolCopperThieving.py:1549
-msgid "Copper Thieving Tool exit."
-msgstr "Copper Thieving Tool exit."
-
-#: flatcamTools/ToolCutOut.py:41
-msgid "Cutout PCB"
-msgstr "Cutout PCB"
-
-#: flatcamTools/ToolCutOut.py:69 flatcamTools/ToolPanelize.py:54
-msgid "Source Object"
-msgstr "Source Object"
-
-#: flatcamTools/ToolCutOut.py:70
-msgid "Object to be cutout"
-msgstr "Object to be cutout"
-
-#: flatcamTools/ToolCutOut.py:75
-msgid "Kind"
-msgstr "Kind"
-
-#: flatcamTools/ToolCutOut.py:97
-msgid ""
-"Specify the type of object to be cutout.\n"
-"It can be of type: Gerber or Geometry.\n"
-"What is selected here will dictate the kind\n"
-"of objects that will populate the 'Object' combobox."
-msgstr ""
-"Specify the type of object to be cutout.\n"
-"It can be of type: Gerber or Geometry.\n"
-"What is selected here will dictate the kind\n"
-"of objects that will populate the 'Object' combobox."
-
-#: flatcamTools/ToolCutOut.py:121
-msgid "Tool Parameters"
-msgstr "Tool Parameters"
-
-#: flatcamTools/ToolCutOut.py:238
-msgid "A. Automatic Bridge Gaps"
-msgstr "A. Automatic Bridge Gaps"
-
-#: flatcamTools/ToolCutOut.py:240
-msgid "This section handle creation of automatic bridge gaps."
-msgstr "This section handle creation of automatic bridge gaps."
-
-#: flatcamTools/ToolCutOut.py:247
-msgid ""
-"Number of gaps used for the Automatic cutout.\n"
-"There can be maximum 8 bridges/gaps.\n"
-"The choices are:\n"
-"- None - no gaps\n"
-"- lr - left + right\n"
-"- tb - top + bottom\n"
-"- 4 - left + right +top + bottom\n"
-"- 2lr - 2*left + 2*right\n"
-"- 2tb - 2*top + 2*bottom\n"
-"- 8 - 2*left + 2*right +2*top + 2*bottom"
-msgstr ""
-"Number of gaps used for the Automatic cutout.\n"
-"There can be maximum 8 bridges/gaps.\n"
-"The choices are:\n"
-"- None - no gaps\n"
-"- lr - left + right\n"
-"- tb - top + bottom\n"
-"- 4 - left + right +top + bottom\n"
-"- 2lr - 2*left + 2*right\n"
-"- 2tb - 2*top + 2*bottom\n"
-"- 8 - 2*left + 2*right +2*top + 2*bottom"
-
-#: flatcamTools/ToolCutOut.py:269
-msgid "Generate Freeform Geometry"
-msgstr "Generate Freeform Geometry"
-
-#: flatcamTools/ToolCutOut.py:271
-msgid ""
-"Cutout the selected object.\n"
-"The cutout shape can be of any shape.\n"
-"Useful when the PCB has a non-rectangular shape."
-msgstr ""
-"Cutout the selected object.\n"
-"The cutout shape can be of any shape.\n"
-"Useful when the PCB has a non-rectangular shape."
-
-#: flatcamTools/ToolCutOut.py:283
-msgid "Generate Rectangular Geometry"
-msgstr "Generate Rectangular Geometry"
-
-#: flatcamTools/ToolCutOut.py:285
-msgid ""
-"Cutout the selected object.\n"
-"The resulting cutout shape is\n"
-"always a rectangle shape and it will be\n"
-"the bounding box of the Object."
-msgstr ""
-"Cutout the selected object.\n"
-"The resulting cutout shape is\n"
-"always a rectangle shape and it will be\n"
-"the bounding box of the Object."
-
-#: flatcamTools/ToolCutOut.py:304
-msgid "B. Manual Bridge Gaps"
-msgstr "B. Manual Bridge Gaps"
-
-#: flatcamTools/ToolCutOut.py:306
-msgid ""
-"This section handle creation of manual bridge gaps.\n"
-"This is done by mouse clicking on the perimeter of the\n"
-"Geometry object that is used as a cutout object. "
-msgstr ""
-"This section handle creation of manual bridge gaps.\n"
-"This is done by mouse clicking on the perimeter of the\n"
-"Geometry object that is used as a cutout object. "
-
-#: flatcamTools/ToolCutOut.py:321
-msgid "Geometry object used to create the manual cutout."
-msgstr "Geometry object used to create the manual cutout."
-
-#: flatcamTools/ToolCutOut.py:328
-msgid "Generate Manual Geometry"
-msgstr "Generate Manual Geometry"
-
-#: flatcamTools/ToolCutOut.py:330
-msgid ""
-"If the object to be cutout is a Gerber\n"
-"first create a Geometry that surrounds it,\n"
-"to be used as the cutout, if one doesn't exist yet.\n"
-"Select the source Gerber file in the top object combobox."
-msgstr ""
-"If the object to be cutout is a Gerber\n"
-"first create a Geometry that surrounds it,\n"
-"to be used as the cutout, if one doesn't exist yet.\n"
-"Select the source Gerber file in the top object combobox."
-
-#: flatcamTools/ToolCutOut.py:343
-msgid "Manual Add Bridge Gaps"
-msgstr "Manual Add Bridge Gaps"
-
-#: flatcamTools/ToolCutOut.py:345
-msgid ""
-"Use the left mouse button (LMB) click\n"
-"to create a bridge gap to separate the PCB from\n"
-"the surrounding material.\n"
-"The LMB click has to be done on the perimeter of\n"
-"the Geometry object used as a cutout geometry."
-msgstr ""
-"Use the left mouse button (LMB) click\n"
-"to create a bridge gap to separate the PCB from\n"
-"the surrounding material.\n"
-"The LMB click has to be done on the perimeter of\n"
-"the Geometry object used as a cutout geometry."
-
-#: flatcamTools/ToolCutOut.py:524
-msgid ""
-"There is no object selected for Cutout.\n"
-"Select one and try again."
-msgstr ""
-"There is no object selected for Cutout.\n"
-"Select one and try again."
-
-#: flatcamTools/ToolCutOut.py:530 flatcamTools/ToolCutOut.py:733
-#: flatcamTools/ToolCutOut.py:914 flatcamTools/ToolCutOut.py:996
-#: tclCommands/TclCommandGeoCutout.py:184
-msgid "Tool Diameter is zero value. Change it to a positive real number."
-msgstr "Tool Diameter is zero value. Change it to a positive real number."
-
-#: flatcamTools/ToolCutOut.py:544 flatcamTools/ToolCutOut.py:748
-msgid "Number of gaps value is missing. Add it and retry."
-msgstr "Number of gaps value is missing. Add it and retry."
-
-#: flatcamTools/ToolCutOut.py:549 flatcamTools/ToolCutOut.py:752
-msgid ""
-"Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. "
-"Fill in a correct value and retry. "
-msgstr ""
-"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:554 flatcamTools/ToolCutOut.py:758
-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 ""
-"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."
-
-#: flatcamTools/ToolCutOut.py:706 flatcamTools/ToolCutOut.py:903
-msgid "Any form CutOut operation finished."
-msgstr "Any form CutOut operation finished."
-
-#: flatcamTools/ToolCutOut.py:728 flatcamTools/ToolInvertGerber.py:214
-#: flatcamTools/ToolNCC.py:1603 flatcamTools/ToolPaint.py:1397
-#: flatcamTools/ToolPanelize.py:417 tclCommands/TclCommandBbox.py:71
-#: tclCommands/TclCommandNregions.py:71
-msgid "Object not found"
-msgstr "Object not found"
-
-#: flatcamTools/ToolCutOut.py:872
-msgid "Rectangular cutout with negative margin is not possible."
-msgstr "Rectangular cutout with negative margin is not possible."
-
-#: flatcamTools/ToolCutOut.py:908
-msgid ""
-"Click on the selected geometry object perimeter to create a bridge gap ..."
-msgstr ""
-"Click on the selected geometry object perimeter to create a bridge gap ..."
-
-#: flatcamTools/ToolCutOut.py:925 flatcamTools/ToolCutOut.py:951
-msgid "Could not retrieve Geometry object"
-msgstr "Could not retrieve Geometry object"
-
-#: flatcamTools/ToolCutOut.py:956
-msgid "Geometry object for manual cutout not found"
-msgstr "Geometry object for manual cutout not found"
-
-#: flatcamTools/ToolCutOut.py:966
-msgid "Added manual Bridge Gap."
-msgstr "Added manual Bridge Gap."
-
-#: flatcamTools/ToolCutOut.py:978
-msgid "Could not retrieve Gerber object"
-msgstr "Could not retrieve Gerber object"
-
-#: flatcamTools/ToolCutOut.py:983
-msgid ""
-"There is no Gerber object selected for Cutout.\n"
-"Select one and try again."
-msgstr ""
-"There is no Gerber object selected for Cutout.\n"
-"Select one and try again."
-
-#: flatcamTools/ToolCutOut.py:989
-msgid ""
-"The selected object has to be of Gerber type.\n"
-"Select a Gerber file and try again."
-msgstr ""
-"The selected object has to be of Gerber type.\n"
-"Select a Gerber file and try again."
-
-#: flatcamTools/ToolCutOut.py:1024
-msgid "Geometry not supported for cutout"
-msgstr "Geometry not supported for cutout"
-
-#: flatcamTools/ToolCutOut.py:1099
-msgid "Making manual bridge gap..."
-msgstr "Making manual bridge gap..."
-
-#: flatcamTools/ToolDblSided.py:26
-msgid "2-Sided PCB"
-msgstr "2-Sided PCB"
-
-#: flatcamTools/ToolDblSided.py:52
-msgid "Mirror Operation"
-msgstr "Mirror Operation"
-
-#: flatcamTools/ToolDblSided.py:53
-msgid "Objects to be mirrored"
-msgstr "Objects to be mirrored"
-
-#: flatcamTools/ToolDblSided.py:65
-msgid "Gerber to be mirrored"
-msgstr "Gerber to be mirrored"
-
-#: flatcamTools/ToolDblSided.py:69 flatcamTools/ToolDblSided.py:97
-#: flatcamTools/ToolDblSided.py:127
-msgid ""
-"Mirrors (flips) the specified object around \n"
-"the specified axis. Does not create a new \n"
-"object, but modifies it."
-msgstr ""
-"Mirrors (flips) the specified object around \n"
-"the specified axis. Does not create a new \n"
-"object, but modifies it."
-
-#: flatcamTools/ToolDblSided.py:93
-msgid "Excellon Object to be mirrored."
-msgstr "Excellon Object to be mirrored."
-
-#: flatcamTools/ToolDblSided.py:122
-msgid "Geometry Obj to be mirrored."
-msgstr "Geometry Obj to be mirrored."
-
-#: flatcamTools/ToolDblSided.py:158
-msgid "Mirror Parameters"
-msgstr "Mirror Parameters"
-
-#: flatcamTools/ToolDblSided.py:159
-msgid "Parameters for the mirror operation"
-msgstr "Parameters for the mirror operation"
-
-#: flatcamTools/ToolDblSided.py:164
-msgid "Mirror Axis"
-msgstr "Mirror Axis"
-
-#: flatcamTools/ToolDblSided.py:175
-msgid ""
-"The coordinates used as reference for the mirror operation.\n"
-"Can be:\n"
-"- Point -> a set of coordinates (x,y) around which the object is mirrored\n"
-"- Box -> a set of coordinates (x, y) obtained from the center of the\n"
-"bounding box of another object selected below"
-msgstr ""
-"The coordinates used as reference for the mirror operation.\n"
-"Can be:\n"
-"- Point -> a set of coordinates (x,y) around which the object is mirrored\n"
-"- Box -> a set of coordinates (x, y) obtained from the center of the\n"
-"bounding box of another object selected below"
-
-#: flatcamTools/ToolDblSided.py:189
-msgid "Point coordinates"
-msgstr "Point coordinates"
-
-#: flatcamTools/ToolDblSided.py:194
-msgid ""
-"Add the coordinates in format (x, y) through which the mirroring "
-"axis\n"
-" selected in 'MIRROR AXIS' pass.\n"
-"The (x, y) coordinates are captured by pressing SHIFT key\n"
-"and left mouse button click on canvas or you can enter the coordinates "
-"manually."
-msgstr ""
-"Add the coordinates in format (x, y) through which the mirroring "
-"axis\n"
-" selected in 'MIRROR AXIS' pass.\n"
-"The (x, y) coordinates are captured by pressing SHIFT key\n"
-"and left mouse button click on canvas or you can enter the coordinates "
-"manually."
-
-#: flatcamTools/ToolDblSided.py:218
-msgid ""
-"It can be of type: Gerber or Excellon or Geometry.\n"
-"The coordinates of the center of the bounding box are used\n"
-"as reference for mirror operation."
-msgstr ""
-"It can be of type: Gerber or Excellon or Geometry.\n"
-"The coordinates of the center of the bounding box are used\n"
-"as reference for mirror operation."
-
-#: flatcamTools/ToolDblSided.py:252
-msgid "Bounds Values"
-msgstr "Bounds Values"
-
-#: flatcamTools/ToolDblSided.py:254
-msgid ""
-"Select on canvas the object(s)\n"
-"for which to calculate bounds values."
-msgstr ""
-"Select on canvas the object(s)\n"
-"for which to calculate bounds values."
-
-#: flatcamTools/ToolDblSided.py:264
-msgid "X min"
-msgstr "X min"
-
-#: flatcamTools/ToolDblSided.py:266 flatcamTools/ToolDblSided.py:280
-msgid "Minimum location."
-msgstr "Minimum location."
-
-#: flatcamTools/ToolDblSided.py:278
-msgid "Y min"
-msgstr "Y min"
-
-#: flatcamTools/ToolDblSided.py:292
-msgid "X max"
-msgstr "X max"
-
-#: flatcamTools/ToolDblSided.py:294 flatcamTools/ToolDblSided.py:308
-msgid "Maximum location."
-msgstr "Maximum location."
-
-#: flatcamTools/ToolDblSided.py:306
-msgid "Y max"
-msgstr "Y max"
-
-#: flatcamTools/ToolDblSided.py:317
-msgid "Center point coordinates"
-msgstr "Center point coordinates"
-
-#: flatcamTools/ToolDblSided.py:319
-msgid "Centroid"
-msgstr "Centroid"
-
-#: flatcamTools/ToolDblSided.py:321
-msgid ""
-"The center point location for the rectangular\n"
-"bounding shape. Centroid. Format is (x, y)."
-msgstr ""
-"The center point location for the rectangular\n"
-"bounding shape. Centroid. Format is (x, y)."
-
-#: flatcamTools/ToolDblSided.py:330
-msgid "Calculate Bounds Values"
-msgstr "Calculate Bounds Values"
-
-#: flatcamTools/ToolDblSided.py:332
-msgid ""
-"Calculate the enveloping rectangular shape coordinates,\n"
-"for the selection of objects.\n"
-"The envelope shape is parallel with the X, Y axis."
-msgstr ""
-"Calculate the enveloping rectangular shape coordinates,\n"
-"for the selection of objects.\n"
-"The envelope shape is parallel with the X, Y axis."
-
-#: flatcamTools/ToolDblSided.py:352
-msgid "PCB Alignment"
-msgstr "PCB Alignment"
-
-#: flatcamTools/ToolDblSided.py:354 flatcamTools/ToolDblSided.py:456
-msgid ""
-"Creates an Excellon Object containing the\n"
-"specified alignment holes and their mirror\n"
-"images."
-msgstr ""
-"Creates an Excellon Object containing the\n"
-"specified alignment holes and their mirror\n"
-"images."
-
-#: flatcamTools/ToolDblSided.py:361
-msgid "Drill Diameter"
-msgstr "Drill Diameter"
-
-#: flatcamTools/ToolDblSided.py:390 flatcamTools/ToolDblSided.py:397
-msgid ""
-"The reference point used to create the second alignment drill\n"
-"from the first alignment drill, by doing mirror.\n"
-"It can be modified in the Mirror Parameters -> Reference section"
-msgstr ""
-"The reference point used to create the second alignment drill\n"
-"from the first alignment drill, by doing mirror.\n"
-"It can be modified in the Mirror Parameters -> Reference section"
-
-#: flatcamTools/ToolDblSided.py:410
-msgid "Alignment Drill Coordinates"
-msgstr "Alignment Drill Coordinates"
-
-#: flatcamTools/ToolDblSided.py:412
-msgid ""
-"Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For "
-"each set of (x, y) coordinates\n"
-"entered here, a pair of drills will be created:\n"
-"\n"
-"- one drill at the coordinates from the field\n"
-"- one drill in mirror position over the axis selected above in the 'Align "
-"Axis'."
-msgstr ""
-"Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For "
-"each set of (x, y) coordinates\n"
-"entered here, a pair of drills will be created:\n"
-"\n"
-"- one drill at the coordinates from the field\n"
-"- one drill in mirror position over the axis selected above in the 'Align "
-"Axis'."
-
-#: flatcamTools/ToolDblSided.py:420
-msgid "Drill coordinates"
-msgstr "Drill coordinates"
-
-#: flatcamTools/ToolDblSided.py:427
-msgid ""
-"Add alignment drill holes coordinates in the format: (x1, y1), (x2, "
-"y2), ... \n"
-"on one side of the alignment axis.\n"
-"\n"
-"The coordinates set can be obtained:\n"
-"- press SHIFT key and left mouse clicking on canvas. Then click Add.\n"
-"- press SHIFT key and left mouse clicking on canvas. Then Ctrl+V in the "
-"field.\n"
-"- press SHIFT key and left mouse clicking on canvas. Then RMB click in the "
-"field and click Paste.\n"
-"- by entering the coords manually in the format: (x1, y1), (x2, y2), ..."
-msgstr ""
-"Add alignment drill holes coordinates in the format: (x1, y1), (x2, "
-"y2), ... \n"
-"on one side of the alignment axis.\n"
-"\n"
-"The coordinates set can be obtained:\n"
-"- press SHIFT key and left mouse clicking on canvas. Then click Add.\n"
-"- press SHIFT key and left mouse clicking on canvas. Then Ctrl+V in the "
-"field.\n"
-"- press SHIFT key and left mouse clicking on canvas. Then RMB click in the "
-"field and click Paste.\n"
-"- by entering the coords manually in the format: (x1, y1), (x2, y2), ..."
-
-#: flatcamTools/ToolDblSided.py:442
-msgid "Delete Last"
-msgstr "Delete Last"
-
-#: flatcamTools/ToolDblSided.py:444
-msgid "Delete the last coordinates tuple in the list."
-msgstr "Delete the last coordinates tuple in the list."
-
-#: flatcamTools/ToolDblSided.py:454
-msgid "Create Excellon Object"
-msgstr "Create Excellon Object"
-
-#: flatcamTools/ToolDblSided.py:541
-msgid "2-Sided Tool"
-msgstr "2-Sided Tool"
-
-#: flatcamTools/ToolDblSided.py:581
-msgid ""
-"'Point' reference is selected and 'Point' coordinates are missing. Add them "
-"and retry."
-msgstr ""
-"'Point' reference is selected and 'Point' coordinates are missing. Add them "
-"and retry."
-
-#: flatcamTools/ToolDblSided.py:600
-msgid "There is no Box reference object loaded. Load one and retry."
-msgstr "There is no Box reference object loaded. Load one and retry."
-
-#: flatcamTools/ToolDblSided.py:612
-msgid "No value or wrong format in Drill Dia entry. Add it and retry."
-msgstr "No value or wrong format in Drill Dia entry. Add it and retry."
-
-#: flatcamTools/ToolDblSided.py:623
-msgid "There are no Alignment Drill Coordinates to use. Add them and retry."
-msgstr "There are no Alignment Drill Coordinates to use. Add them and retry."
-
-#: flatcamTools/ToolDblSided.py:648
-msgid "Excellon object with alignment drills created..."
-msgstr "Excellon object with alignment drills created..."
-
-#: flatcamTools/ToolDblSided.py:661 flatcamTools/ToolDblSided.py:704
-#: flatcamTools/ToolDblSided.py:748
-msgid "Only Gerber, Excellon and Geometry objects can be mirrored."
-msgstr "Only Gerber, Excellon and Geometry objects can be mirrored."
-
-#: flatcamTools/ToolDblSided.py:671 flatcamTools/ToolDblSided.py:715
-msgid ""
-"There are no Point coordinates in the Point field. Add coords and try "
-"again ..."
-msgstr ""
-"There are no Point coordinates in the Point field. Add coords and try "
-"again ..."
-
-#: flatcamTools/ToolDblSided.py:681 flatcamTools/ToolDblSided.py:725
-#: flatcamTools/ToolDblSided.py:762
-msgid "There is no Box object loaded ..."
-msgstr "There is no Box object loaded ..."
-
-#: flatcamTools/ToolDblSided.py:691 flatcamTools/ToolDblSided.py:735
-#: flatcamTools/ToolDblSided.py:772
-msgid "was mirrored"
-msgstr "was mirrored"
-
-#: flatcamTools/ToolDblSided.py:700 flatcamTools/ToolPunchGerber.py:533
-msgid "There is no Excellon object loaded ..."
-msgstr "There is no Excellon object loaded ..."
-
-#: flatcamTools/ToolDblSided.py:744
-msgid "There is no Geometry object loaded ..."
-msgstr "There is no Geometry object loaded ..."
-
-#: flatcamTools/ToolDistance.py:57 flatcamTools/ToolDistanceMin.py:51
-msgid "Those are the units in which the distance is measured."
-msgstr "Those are the units in which the distance is measured."
-
-#: flatcamTools/ToolDistance.py:58 flatcamTools/ToolDistanceMin.py:52
-msgid "METRIC (mm)"
-msgstr "METRIC (mm)"
-
-#: flatcamTools/ToolDistance.py:58 flatcamTools/ToolDistanceMin.py:52
-msgid "INCH (in)"
-msgstr "INCH (in)"
-
-#: flatcamTools/ToolDistance.py:64
-msgid "Snap to center"
-msgstr "Snap to center"
-
-#: flatcamTools/ToolDistance.py:66
-msgid ""
-"Mouse cursor will snap to the center of the pad/drill\n"
-"when it is hovering over the geometry of the pad/drill."
-msgstr ""
-"Mouse cursor will snap to the center of the pad/drill\n"
-"when it is hovering over the geometry of the pad/drill."
-
-#: flatcamTools/ToolDistance.py:76
-msgid "Start Coords"
-msgstr "Start Coords"
-
-#: flatcamTools/ToolDistance.py:77 flatcamTools/ToolDistance.py:82
-msgid "This is measuring Start point coordinates."
-msgstr "This is measuring Start point coordinates."
-
-#: flatcamTools/ToolDistance.py:87
-msgid "Stop Coords"
-msgstr "Stop Coords"
-
-#: flatcamTools/ToolDistance.py:88 flatcamTools/ToolDistance.py:93
-msgid "This is the measuring Stop point coordinates."
-msgstr "This is the measuring Stop point coordinates."
-
-#: flatcamTools/ToolDistance.py:98 flatcamTools/ToolDistanceMin.py:63
-msgid "Dx"
-msgstr "Dx"
-
-#: flatcamTools/ToolDistance.py:99 flatcamTools/ToolDistance.py:104
-#: flatcamTools/ToolDistanceMin.py:64 flatcamTools/ToolDistanceMin.py:93
-msgid "This is the distance measured over the X axis."
-msgstr "This is the distance measured over the X axis."
-
-#: flatcamTools/ToolDistance.py:109 flatcamTools/ToolDistanceMin.py:66
-msgid "Dy"
-msgstr "Dy"
-
-#: flatcamTools/ToolDistance.py:110 flatcamTools/ToolDistance.py:115
-#: flatcamTools/ToolDistanceMin.py:67 flatcamTools/ToolDistanceMin.py:98
-msgid "This is the distance measured over the Y axis."
-msgstr "This is the distance measured over the Y axis."
-
-#: flatcamTools/ToolDistance.py:121 flatcamTools/ToolDistance.py:126
-#: flatcamTools/ToolDistanceMin.py:70 flatcamTools/ToolDistanceMin.py:103
-msgid "This is orientation angle of the measuring line."
-msgstr "This is orientation angle of the measuring line."
-
-#: flatcamTools/ToolDistance.py:131 flatcamTools/ToolDistanceMin.py:72
-msgid "DISTANCE"
-msgstr "DISTANCE"
-
-#: flatcamTools/ToolDistance.py:132 flatcamTools/ToolDistance.py:137
-msgid "This is the point to point Euclidian distance."
-msgstr "This is the point to point Euclidian distance."
-
-#: flatcamTools/ToolDistance.py:142 flatcamTools/ToolDistance.py:337
-#: flatcamTools/ToolDistanceMin.py:115
-msgid "Measure"
-msgstr "Measure"
-
-#: flatcamTools/ToolDistance.py:272
-msgid "Working"
-msgstr "Working"
-
-#: flatcamTools/ToolDistance.py:277
-msgid "MEASURING: Click on the Start point ..."
-msgstr "MEASURING: Click on the Start point ..."
-
-#: flatcamTools/ToolDistance.py:387
-msgid "Distance Tool finished."
-msgstr "Distance Tool finished."
-
-#: flatcamTools/ToolDistance.py:455
-msgid "Pads overlapped. Aborting."
-msgstr "Pads overlapped. Aborting."
-
-#: flatcamTools/ToolDistance.py:485
-msgid "MEASURING: Click on the Destination point ..."
-msgstr "MEASURING: Click on the Destination point ..."
-
-#: flatcamTools/ToolDistance.py:494 flatcamTools/ToolDistanceMin.py:285
-msgid "MEASURING"
-msgstr "MEASURING"
-
-#: flatcamTools/ToolDistance.py:495 flatcamTools/ToolDistanceMin.py:286
-msgid "Result"
-msgstr "Result"
-
-#: flatcamTools/ToolDistanceMin.py:32 flatcamTools/ToolDistanceMin.py:144
-msgid "Minimum Distance Tool"
-msgstr "Minimum Distance Tool"
-
-#: flatcamTools/ToolDistanceMin.py:55
-msgid "First object point"
-msgstr "First object point"
-
-#: flatcamTools/ToolDistanceMin.py:56 flatcamTools/ToolDistanceMin.py:81
-msgid ""
-"This is first object point coordinates.\n"
-"This is the start point for measuring distance."
-msgstr ""
-"This is first object point coordinates.\n"
-"This is the start point for measuring distance."
-
-#: flatcamTools/ToolDistanceMin.py:59
-msgid "Second object point"
-msgstr "Second object point"
-
-#: flatcamTools/ToolDistanceMin.py:60 flatcamTools/ToolDistanceMin.py:87
-msgid ""
-"This is second object point coordinates.\n"
-"This is the end point for measuring distance."
-msgstr ""
-"This is second object point coordinates.\n"
-"This is the end point for measuring distance."
-
-#: flatcamTools/ToolDistanceMin.py:73 flatcamTools/ToolDistanceMin.py:108
-msgid "This is the point to point Euclidean distance."
-msgstr "This is the point to point Euclidean distance."
-
-#: flatcamTools/ToolDistanceMin.py:75
-msgid "Half Point"
-msgstr "Half Point"
-
-#: flatcamTools/ToolDistanceMin.py:76 flatcamTools/ToolDistanceMin.py:113
-msgid "This is the middle point of the point to point Euclidean distance."
-msgstr "This is the middle point of the point to point Euclidean distance."
-
-#: flatcamTools/ToolDistanceMin.py:118
-msgid "Jump to Half Point"
-msgstr "Jump to Half Point"
-
-#: flatcamTools/ToolDistanceMin.py:155
-msgid ""
-"Select two objects and no more, to measure the distance between them ..."
-msgstr ""
-"Select two objects and no more, to measure the distance between them ..."
-
-#: flatcamTools/ToolDistanceMin.py:196 flatcamTools/ToolDistanceMin.py:217
-#: flatcamTools/ToolDistanceMin.py:226 flatcamTools/ToolDistanceMin.py:247
-msgid "Select two objects and no more. Currently the selection has objects: "
-msgstr "Select two objects and no more. Currently the selection has objects: "
-
-#: flatcamTools/ToolDistanceMin.py:294
-msgid "Objects intersects or touch at"
-msgstr "Objects intersects or touch at"
-
-#: flatcamTools/ToolDistanceMin.py:300
-msgid "Jumped to the half point between the two selected objects"
-msgstr "Jumped to the half point between the two selected objects"
-
-#: flatcamTools/ToolExtractDrills.py:29 flatcamTools/ToolExtractDrills.py:295
-msgid "Extract Drills"
-msgstr "Extract Drills"
-
-#: flatcamTools/ToolExtractDrills.py:62
-msgid "Gerber from which to extract drill holes"
-msgstr "Gerber from which to extract drill holes"
-
-#: flatcamTools/ToolExtractDrills.py:297
-msgid "Extract drills from a given Gerber file."
-msgstr "Extract drills from a given Gerber file."
-
-#: flatcamTools/ToolExtractDrills.py:478 flatcamTools/ToolExtractDrills.py:563
-#: flatcamTools/ToolExtractDrills.py:648
-msgid "No drills extracted. Try different parameters."
-msgstr "No drills extracted. Try different parameters."
-
-#: flatcamTools/ToolFiducials.py:56
-msgid "Fiducials Coordinates"
-msgstr "Fiducials Coordinates"
-
-#: flatcamTools/ToolFiducials.py:58
-msgid ""
-"A table with the fiducial points coordinates,\n"
-"in the format (x, y)."
-msgstr ""
-"A table with the fiducial points coordinates,\n"
-"in the format (x, y)."
-
-#: flatcamTools/ToolFiducials.py:99
-msgid "Top Right"
-msgstr "Top Right"
-
-#: flatcamTools/ToolFiducials.py:191
-msgid ""
-"- 'Auto' - automatic placement of fiducials in the corners of the bounding "
-"box.\n"
-" - 'Manual' - manual placement of fiducials."
-msgstr ""
-"- 'Auto' - automatic placement of fiducials in the corners of the bounding "
-"box.\n"
-" - 'Manual' - manual placement of fiducials."
-
-#: flatcamTools/ToolFiducials.py:259
-msgid "Copper Gerber"
-msgstr "Copper Gerber"
-
-#: flatcamTools/ToolFiducials.py:268
-msgid "Add Fiducial"
-msgstr "Add Fiducial"
-
-#: flatcamTools/ToolFiducials.py:270
-msgid "Will add a polygon on the copper layer to serve as fiducial."
-msgstr "Will add a polygon on the copper layer to serve as fiducial."
-
-#: flatcamTools/ToolFiducials.py:286
-msgid "Soldermask Gerber"
-msgstr "Soldermask Gerber"
-
-#: flatcamTools/ToolFiducials.py:288
-msgid "The Soldermask Gerber object."
-msgstr "The Soldermask Gerber object."
-
-#: flatcamTools/ToolFiducials.py:300
-msgid "Add Soldermask Opening"
-msgstr "Add Soldermask Opening"
-
-#: flatcamTools/ToolFiducials.py:302
-msgid ""
-"Will add a polygon on the soldermask layer\n"
-"to serve as fiducial opening.\n"
-"The diameter is always double of the diameter\n"
-"for the copper fiducial."
-msgstr ""
-"Will add a polygon on the soldermask layer\n"
-"to serve as fiducial opening.\n"
-"The diameter is always double of the diameter\n"
-"for the copper fiducial."
-
-#: flatcamTools/ToolFiducials.py:516
-msgid "Click to add first Fiducial. Bottom Left..."
-msgstr "Click to add first Fiducial. Bottom Left..."
-
-#: flatcamTools/ToolFiducials.py:780
-msgid "Click to add the last fiducial. Top Right..."
-msgstr "Click to add the last fiducial. Top Right..."
-
-#: flatcamTools/ToolFiducials.py:785
-msgid "Click to add the second fiducial. Top Left or Bottom Right..."
-msgstr "Click to add the second fiducial. Top Left or Bottom Right..."
-
-#: flatcamTools/ToolFiducials.py:788 flatcamTools/ToolFiducials.py:797
-msgid "Done. All fiducials have been added."
-msgstr "Done. All fiducials have been added."
-
-#: flatcamTools/ToolFiducials.py:874
-msgid "Fiducials Tool exit."
-msgstr "Fiducials Tool exit."
-
-#: flatcamTools/ToolFilm.py:42
-msgid "Film PCB"
-msgstr "Film PCB"
-
-#: flatcamTools/ToolFilm.py:78
-msgid ""
-"Specify the type of object for which to create the film.\n"
-"The object can be of type: Gerber or Geometry.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Film Object combobox."
-msgstr ""
-"Specify the type of object for which to create the film.\n"
-"The object can be of type: Gerber or Geometry.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Film Object combobox."
-
-#: flatcamTools/ToolFilm.py:92
-msgid "Film Object"
-msgstr "Film Object"
-
-#: flatcamTools/ToolFilm.py:94
-msgid "Object for which to create the film."
-msgstr "Object for which to create the film."
-
-#: flatcamTools/ToolFilm.py:115
-msgid ""
-"Specify the type of object to be used as an container for\n"
-"film creation. It can be: Gerber or Geometry type.The selection here decide "
-"the type of objects that will be\n"
-"in the Box Object combobox."
-msgstr ""
-"Specify the type of object to be used as an container for\n"
-"film creation. It can be: Gerber or Geometry type.The selection here decide "
-"the type of objects that will be\n"
-"in the Box Object combobox."
-
-#: flatcamTools/ToolFilm.py:129
-msgid "Box Object"
-msgstr "Box Object"
-
-#: flatcamTools/ToolFilm.py:131
-msgid ""
-"The actual object that is used as container for the\n"
-" selected object for which we create the film.\n"
-"Usually it is the PCB outline but it can be also the\n"
-"same object for which the film is created."
-msgstr ""
-"The actual object that is used as container for the\n"
-" selected object for which we create the film.\n"
-"Usually it is the PCB outline but it can be also the\n"
-"same object for which the film is created."
-
-#: flatcamTools/ToolFilm.py:273
-msgid "Film Parameters"
-msgstr "Film Parameters"
-
-#: flatcamTools/ToolFilm.py:334
-msgid "Punch drill holes"
-msgstr "Punch drill holes"
-
-#: flatcamTools/ToolFilm.py:335
-msgid ""
-"When checked the generated film will have holes in pads when\n"
-"the generated film is positive. This is done to help drilling,\n"
-"when done manually."
-msgstr ""
-"When checked the generated film will have holes in pads when\n"
-"the generated film is positive. This is done to help drilling,\n"
-"when done manually."
-
-#: flatcamTools/ToolFilm.py:353
-msgid "Source"
-msgstr "Source"
-
-#: flatcamTools/ToolFilm.py:355
-msgid ""
-"The punch hole source can be:\n"
-"- Excellon -> an Excellon holes center will serve as reference.\n"
-"- Pad Center -> will try to use the pads center as reference."
-msgstr ""
-"The punch hole source can be:\n"
-"- Excellon -> an Excellon holes center will serve as reference.\n"
-"- Pad Center -> will try to use the pads center as reference."
-
-#: flatcamTools/ToolFilm.py:360
-msgid "Pad center"
-msgstr "Pad center"
-
-#: flatcamTools/ToolFilm.py:365
-msgid "Excellon Obj"
-msgstr "Excellon Obj"
-
-#: flatcamTools/ToolFilm.py:367
-msgid ""
-"Remove the geometry of Excellon from the Film to create the holes in pads."
-msgstr ""
-"Remove the geometry of Excellon from the Film to create the holes in pads."
-
-#: flatcamTools/ToolFilm.py:381
-msgid "Punch Size"
-msgstr "Punch Size"
-
-#: flatcamTools/ToolFilm.py:382
-msgid "The value here will control how big is the punch hole in the pads."
-msgstr "The value here will control how big is the punch hole in the pads."
-
-#: flatcamTools/ToolFilm.py:502
-msgid "Save Film"
-msgstr "Save Film"
-
-#: flatcamTools/ToolFilm.py:504
-msgid ""
-"Create a Film for the selected object, within\n"
-"the specified box. Does not create a new \n"
-" FlatCAM object, but directly save it in the\n"
-"selected format."
-msgstr ""
-"Create a Film for the selected object, within\n"
-"the specified box. Does not create a new \n"
-" FlatCAM object, but directly save it in the\n"
-"selected format."
-
-#: flatcamTools/ToolFilm.py:664
-msgid ""
-"Using the Pad center does not work on Geometry objects. Only a Gerber object "
-"has pads."
-msgstr ""
-"Using the Pad center does not work on Geometry objects. Only a Gerber object "
-"has pads."
-
-#: flatcamTools/ToolFilm.py:674
-msgid "No FlatCAM object selected. Load an object for Film and retry."
-msgstr "No FlatCAM object selected. Load an object for Film and retry."
-
-#: flatcamTools/ToolFilm.py:681
-msgid "No FlatCAM object selected. Load an object for Box and retry."
-msgstr "No FlatCAM object selected. Load an object for Box and retry."
-
-#: flatcamTools/ToolFilm.py:685
-msgid "No FlatCAM object selected."
-msgstr "No FlatCAM object selected."
-
-#: flatcamTools/ToolFilm.py:696
-msgid "Generating Film ..."
-msgstr "Generating Film ..."
-
-#: flatcamTools/ToolFilm.py:745 flatcamTools/ToolFilm.py:749
-msgid "Export positive film"
-msgstr "Export positive film"
-
-#: flatcamTools/ToolFilm.py:782
-msgid ""
-"No Excellon object selected. Load an object for punching reference and retry."
-msgstr ""
-"No Excellon object selected. Load an object for punching reference and retry."
-
-#: flatcamTools/ToolFilm.py:806
-msgid ""
-" Could not generate punched hole film because the punch hole sizeis bigger "
-"than some of the apertures in the Gerber object."
-msgstr ""
-" Could not generate punched hole film because the punch hole sizeis bigger "
-"than some of the apertures in the Gerber object."
-
-#: flatcamTools/ToolFilm.py:818
-msgid ""
-"Could not generate punched hole film because the punch hole sizeis bigger "
-"than some of the apertures in the Gerber object."
-msgstr ""
-"Could not generate punched hole film because the punch hole sizeis bigger "
-"than some of the apertures in the Gerber object."
-
-#: flatcamTools/ToolFilm.py:836
-msgid ""
-"Could not generate punched hole film because the newly created object "
-"geometry is the same as the one in the source object geometry..."
-msgstr ""
-"Could not generate punched hole film because the newly created object "
-"geometry is the same as the one in the source object geometry..."
-
-#: flatcamTools/ToolFilm.py:891 flatcamTools/ToolFilm.py:895
-msgid "Export negative film"
-msgstr "Export negative film"
-
-#: flatcamTools/ToolFilm.py:956 flatcamTools/ToolFilm.py:1139
-#: flatcamTools/ToolPanelize.py:430
-msgid "No object Box. Using instead"
-msgstr "No object Box. Using instead"
-
-#: flatcamTools/ToolFilm.py:1072 flatcamTools/ToolFilm.py:1252
-msgid "Film file exported to"
-msgstr "Film file exported to"
-
-#: flatcamTools/ToolFilm.py:1075 flatcamTools/ToolFilm.py:1255
-msgid "Generating Film ... Please wait."
-msgstr "Generating Film ... Please wait."
-
-#: flatcamTools/ToolImage.py:24
-msgid "Image as Object"
-msgstr "Image as Object"
-
-#: flatcamTools/ToolImage.py:33
-msgid "Image to PCB"
-msgstr "Image to PCB"
-
-#: flatcamTools/ToolImage.py:56
-msgid ""
-"Specify the type of object to create from the image.\n"
-"It can be of type: Gerber or Geometry."
-msgstr ""
-"Specify the type of object to create from the image.\n"
-"It can be of type: Gerber or Geometry."
-
-#: flatcamTools/ToolImage.py:65
-msgid "DPI value"
-msgstr "DPI value"
-
-#: flatcamTools/ToolImage.py:66
-msgid "Specify a DPI value for the image."
-msgstr "Specify a DPI value for the image."
-
-#: flatcamTools/ToolImage.py:72
-msgid "Level of detail"
-msgstr "Level of detail"
-
-#: flatcamTools/ToolImage.py:81
-msgid "Image type"
-msgstr "Image type"
-
-#: flatcamTools/ToolImage.py:83
-msgid ""
-"Choose a method for the image interpretation.\n"
-"B/W means a black & white image. Color means a colored image."
-msgstr ""
-"Choose a method for the image interpretation.\n"
-"B/W means a black & white image. Color means a colored image."
-
-#: flatcamTools/ToolImage.py:92 flatcamTools/ToolImage.py:107
-#: flatcamTools/ToolImage.py:120 flatcamTools/ToolImage.py:133
-msgid "Mask value"
-msgstr "Mask value"
-
-#: flatcamTools/ToolImage.py:94
-msgid ""
-"Mask for monochrome image.\n"
-"Takes values between [0 ... 255].\n"
-"Decides the level of details to include\n"
-"in the resulting geometry.\n"
-"0 means no detail and 255 means everything \n"
-"(which is totally black)."
-msgstr ""
-"Mask for monochrome image.\n"
-"Takes values between [0 ... 255].\n"
-"Decides the level of details to include\n"
-"in the resulting geometry.\n"
-"0 means no detail and 255 means everything \n"
-"(which is totally black)."
-
-#: flatcamTools/ToolImage.py:109
-msgid ""
-"Mask for RED color.\n"
-"Takes values between [0 ... 255].\n"
-"Decides the level of details to include\n"
-"in the resulting geometry."
-msgstr ""
-"Mask for RED color.\n"
-"Takes values between [0 ... 255].\n"
-"Decides the level of details to include\n"
-"in the resulting geometry."
-
-#: flatcamTools/ToolImage.py:122
-msgid ""
-"Mask for GREEN color.\n"
-"Takes values between [0 ... 255].\n"
-"Decides the level of details to include\n"
-"in the resulting geometry."
-msgstr ""
-"Mask for GREEN color.\n"
-"Takes values between [0 ... 255].\n"
-"Decides the level of details to include\n"
-"in the resulting geometry."
-
-#: flatcamTools/ToolImage.py:135
-msgid ""
-"Mask for BLUE color.\n"
-"Takes values between [0 ... 255].\n"
-"Decides the level of details to include\n"
-"in the resulting geometry."
-msgstr ""
-"Mask for BLUE color.\n"
-"Takes values between [0 ... 255].\n"
-"Decides the level of details to include\n"
-"in the resulting geometry."
-
-#: flatcamTools/ToolImage.py:143
-msgid "Import image"
-msgstr "Import image"
-
-#: flatcamTools/ToolImage.py:145
-msgid "Open a image of raster type and then import it in FlatCAM."
-msgstr "Open a image of raster type and then import it in FlatCAM."
-
-#: flatcamTools/ToolImage.py:182
-msgid "Image Tool"
-msgstr "Image Tool"
-
-#: flatcamTools/ToolImage.py:234 flatcamTools/ToolImage.py:237
-msgid "Import IMAGE"
-msgstr "Import IMAGE"
-
-#: flatcamTools/ToolImage.py:285
-msgid "Importing Image"
-msgstr "Importing Image"
-
-#: flatcamTools/ToolInvertGerber.py:74
-msgid "Gerber object that will be inverted."
-msgstr "Gerber object that will be inverted."
-
-#: flatcamTools/ToolInvertGerber.py:83
-msgid "Parameters for this tool"
-msgstr "Parameters for this tool"
-
-#: flatcamTools/ToolInvertGerber.py:123
-msgid "Invert Gerber"
-msgstr "Invert Gerber"
-
-#: flatcamTools/ToolInvertGerber.py:125
-msgid ""
-"Will invert the Gerber object: areas that have copper\n"
-"will be empty of copper and previous empty area will be\n"
-"filled with copper."
-msgstr ""
-"Will invert the Gerber object: areas that have copper\n"
-"will be empty of copper and previous empty area will be\n"
-"filled with copper."
-
-#: flatcamTools/ToolInvertGerber.py:184
-msgid "Invert Tool"
-msgstr "Invert Tool"
-
-#: flatcamTools/ToolMove.py:102
-msgid "MOVE: Click on the Start point ..."
-msgstr "MOVE: Click on the Start point ..."
-
-#: flatcamTools/ToolMove.py:113
-msgid "Cancelled. No object(s) to move."
-msgstr "Cancelled. No object(s) to move."
-
-#: flatcamTools/ToolMove.py:140
-msgid "MOVE: Click on the Destination point ..."
-msgstr "MOVE: Click on the Destination point ..."
-
-#: flatcamTools/ToolMove.py:163
-msgid "Moving..."
-msgstr "Moving..."
-
-#: flatcamTools/ToolMove.py:166
-msgid "No object(s) selected."
-msgstr "No object(s) selected."
-
-#: flatcamTools/ToolMove.py:221
-msgid "Error when mouse left click."
-msgstr "Error when mouse left click."
-
-#: flatcamTools/ToolNCC.py:42
-msgid "Non-Copper Clearing"
-msgstr "Non-Copper Clearing"
-
-#: flatcamTools/ToolNCC.py:88
-msgid ""
-"Specify the type of object to be cleared of excess copper.\n"
-"It can be of type: Gerber or Geometry.\n"
-"What is selected here will dictate the kind\n"
-"of objects that will populate the 'Object' combobox."
-msgstr ""
-"Specify the type of object to be cleared of excess copper.\n"
-"It can be of type: Gerber or Geometry.\n"
-"What is selected here will dictate the kind\n"
-"of objects that will populate the 'Object' combobox."
-
-#: flatcamTools/ToolNCC.py:110
-msgid "Object to be cleared of excess copper."
-msgstr "Object to be cleared of excess copper."
-
-#: flatcamTools/ToolNCC.py:122
-msgid ""
-"Tools pool from which the algorithm\n"
-"will pick the ones used for copper clearing."
-msgstr ""
-"Tools pool from which the algorithm\n"
-"will pick the ones used for copper clearing."
-
-#: flatcamTools/ToolNCC.py:138
-msgid ""
-"This is the Tool Number.\n"
-"Non copper clearing will start with the tool with the biggest \n"
-"diameter, continuing until there are no more tools.\n"
-"Only tools that create NCC clearing geometry will still be present\n"
-"in the resulting geometry. This is because with some tools\n"
-"this function will not be able to create painting geometry."
-msgstr ""
-"This is the Tool Number.\n"
-"Non copper clearing will start with the tool with the biggest \n"
-"diameter, continuing until there are no more tools.\n"
-"Only tools that create NCC clearing geometry will still be present\n"
-"in the resulting geometry. This is because with some tools\n"
-"this function will not be able to create painting geometry."
-
-#: flatcamTools/ToolNCC.py:146
-msgid ""
-"Tool Diameter. It's value (in current FlatCAM units)\n"
-"is the cut width into the material."
-msgstr ""
-"Tool Diameter. It's value (in current FlatCAM units)\n"
-"is the cut width into the material."
-
-#: flatcamTools/ToolNCC.py:150
-msgid ""
-"The Tool Type (TT) can be:\n"
-"- Circular with 1 ... 4 teeth -> it is informative only. Being circular,\n"
-"the cut width in material is exactly the tool diameter.\n"
-"- Ball -> informative only and make reference to the Ball type endmill.\n"
-"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI "
-"form\n"
-"and enable two additional UI form fields in the resulting geometry: V-Tip "
-"Dia and\n"
-"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter "
-"such\n"
-"as the cut width into material will be equal with the value in the Tool "
-"Diameter\n"
-"column of this table.\n"
-"Choosing the 'V-Shape' Tool Type automatically will select the Operation "
-"Type\n"
-"in the resulting geometry as Isolation."
-msgstr ""
-"The Tool Type (TT) can be:\n"
-"- Circular with 1 ... 4 teeth -> it is informative only. Being circular,\n"
-"the cut width in material is exactly the tool diameter.\n"
-"- Ball -> informative only and make reference to the Ball type endmill.\n"
-"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI "
-"form\n"
-"and enable two additional UI form fields in the resulting geometry: V-Tip "
-"Dia and\n"
-"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter "
-"such\n"
-"as the cut width into material will be equal with the value in the Tool "
-"Diameter\n"
-"column of this table.\n"
-"Choosing the 'V-Shape' Tool Type automatically will select the Operation "
-"Type\n"
-"in the resulting geometry as Isolation."
-
-#: flatcamTools/ToolNCC.py:296 flatcamTools/ToolPaint.py:279
-msgid ""
-"Add a new tool to the Tool Table\n"
-"with the diameter specified above."
-msgstr ""
-"Add a new tool to the Tool Table\n"
-"with the diameter specified above."
-
-#: flatcamTools/ToolNCC.py:318 flatcamTools/ToolPaint.py:301
-#: flatcamTools/ToolSolderPaste.py:130
-msgid ""
-"Delete a selection of tools in the Tool Table\n"
-"by first selecting a row(s) in the Tool Table."
-msgstr ""
-"Delete a selection of tools in the Tool Table\n"
-"by first selecting a row(s) in the Tool Table."
-
-#: flatcamTools/ToolNCC.py:554
-msgid ""
-"The type of FlatCAM object to be used as non copper clearing reference.\n"
-"It can be Gerber, Excellon or Geometry."
-msgstr ""
-"The type of FlatCAM object to be used as non copper clearing reference.\n"
-"It can be Gerber, Excellon or Geometry."
-
-#: flatcamTools/ToolNCC.py:597 flatcamTools/ToolPaint.py:537
-msgid "Generate Geometry"
-msgstr "Generate Geometry"
-
-#: flatcamTools/ToolNCC.py:1425 flatcamTools/ToolPaint.py:1184
-#: flatcamTools/ToolSolderPaste.py:888
-msgid "Please enter a tool diameter to add, in Float format."
-msgstr "Please enter a tool diameter to add, in Float format."
-
-#: flatcamTools/ToolNCC.py:1456 flatcamTools/ToolNCC.py:4013
-#: flatcamTools/ToolPaint.py:1208 flatcamTools/ToolPaint.py:3603
-#: flatcamTools/ToolSolderPaste.py:917
-msgid "Cancelled. Tool already in Tool Table."
-msgstr "Cancelled. Tool already in Tool Table."
-
-#: flatcamTools/ToolNCC.py:1463 flatcamTools/ToolNCC.py:4030
-#: flatcamTools/ToolPaint.py:1213 flatcamTools/ToolPaint.py:3620
-msgid "New tool added to Tool Table."
-msgstr "New tool added to Tool Table."
-
-#: flatcamTools/ToolNCC.py:1507 flatcamTools/ToolPaint.py:1257
-msgid "Tool from Tool Table was edited."
-msgstr "Tool from Tool Table was edited."
-
-#: flatcamTools/ToolNCC.py:1519 flatcamTools/ToolPaint.py:1269
-#: flatcamTools/ToolSolderPaste.py:978
-msgid "Cancelled. New diameter value is already in the Tool Table."
-msgstr "Cancelled. New diameter value is already in the Tool Table."
-
-#: flatcamTools/ToolNCC.py:1571 flatcamTools/ToolPaint.py:1367
-msgid "Delete failed. Select a tool to delete."
-msgstr "Delete failed. Select a tool to delete."
-
-#: flatcamTools/ToolNCC.py:1577 flatcamTools/ToolPaint.py:1373
-msgid "Tool(s) deleted from Tool Table."
-msgstr "Tool(s) deleted from Tool Table."
-
-#: flatcamTools/ToolNCC.py:1619
-msgid "Wrong Tool Dia value format entered, use a number."
-msgstr "Wrong Tool Dia value format entered, use a number."
-
-#: flatcamTools/ToolNCC.py:1628 flatcamTools/ToolPaint.py:1424
-msgid "No selected tools in Tool Table."
-msgstr "No selected tools in Tool Table."
-
-#: flatcamTools/ToolNCC.py:1704 flatcamTools/ToolPaint.py:1600
-msgid "Click the end point of the paint area."
-msgstr "Click the end point of the paint area."
-
-#: flatcamTools/ToolNCC.py:1976 flatcamTools/ToolNCC.py:2964
-msgid "NCC Tool. Preparing non-copper polygons."
-msgstr "NCC Tool. Preparing non-copper polygons."
-
-#: flatcamTools/ToolNCC.py:2035 flatcamTools/ToolNCC.py:3092
-msgid "NCC Tool. Calculate 'empty' area."
-msgstr "NCC Tool. Calculate 'empty' area."
-
-#: flatcamTools/ToolNCC.py:2054 flatcamTools/ToolNCC.py:2160
-#: flatcamTools/ToolNCC.py:2174 flatcamTools/ToolNCC.py:3105
-#: flatcamTools/ToolNCC.py:3210 flatcamTools/ToolNCC.py:3225
-#: flatcamTools/ToolNCC.py:3491 flatcamTools/ToolNCC.py:3592
-#: flatcamTools/ToolNCC.py:3607
-msgid "Buffering finished"
-msgstr "Buffering finished"
-
-#: flatcamTools/ToolNCC.py:2062 flatcamTools/ToolNCC.py:2181
-#: flatcamTools/ToolNCC.py:3113 flatcamTools/ToolNCC.py:3232
-#: flatcamTools/ToolNCC.py:3498 flatcamTools/ToolNCC.py:3614
-msgid "Could not get the extent of the area to be non copper cleared."
-msgstr "Could not get the extent of the area to be non copper cleared."
-
-#: flatcamTools/ToolNCC.py:2089 flatcamTools/ToolNCC.py:2167
-#: flatcamTools/ToolNCC.py:3140 flatcamTools/ToolNCC.py:3217
-#: flatcamTools/ToolNCC.py:3518 flatcamTools/ToolNCC.py:3599
-msgid ""
-"Isolation geometry is broken. Margin is less than isolation tool diameter."
-msgstr ""
-"Isolation geometry is broken. Margin is less than isolation tool diameter."
-
-#: flatcamTools/ToolNCC.py:2184 flatcamTools/ToolNCC.py:3236
-#: flatcamTools/ToolNCC.py:3617
-msgid "The selected object is not suitable for copper clearing."
-msgstr "The selected object is not suitable for copper clearing."
-
-#: flatcamTools/ToolNCC.py:2191 flatcamTools/ToolNCC.py:3243
-msgid "NCC Tool. Finished calculation of 'empty' area."
-msgstr "NCC Tool. Finished calculation of 'empty' area."
-
-#: flatcamTools/ToolNCC.py:2222 flatcamTools/ToolNCC.py:2224
-#: flatcamTools/ToolNCC.py:2916 flatcamTools/ToolNCC.py:2918
-msgid "Non-Copper clearing ..."
-msgstr "Non-Copper clearing ..."
-
-#: flatcamTools/ToolNCC.py:2278 flatcamTools/ToolNCC.py:3060
-msgid ""
-"NCC Tool. Finished non-copper polygons. Normal copper clearing task started."
-msgstr ""
-"NCC Tool. Finished non-copper polygons. Normal copper clearing task started."
-
-#: flatcamTools/ToolNCC.py:2312 flatcamTools/ToolNCC.py:2592
-msgid "NCC Tool failed creating bounding box."
-msgstr "NCC Tool failed creating bounding box."
-
-#: flatcamTools/ToolNCC.py:2326 flatcamTools/ToolNCC.py:2609
-#: flatcamTools/ToolNCC.py:3256 flatcamTools/ToolNCC.py:3642
-msgid "NCC Tool clearing with tool diameter"
-msgstr "NCC Tool clearing with tool diameter"
-
-#: flatcamTools/ToolNCC.py:2326 flatcamTools/ToolNCC.py:2609
-#: flatcamTools/ToolNCC.py:3256 flatcamTools/ToolNCC.py:3642
-msgid "started."
-msgstr "started."
-
-#: flatcamTools/ToolNCC.py:2518 flatcamTools/ToolNCC.py:3417
-msgid ""
-"There is no NCC 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 ""
-"There is no NCC 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."
-
-#: flatcamTools/ToolNCC.py:2527 flatcamTools/ToolNCC.py:3426
-msgid "NCC Tool clear all done."
-msgstr "NCC Tool clear all done."
-
-#: flatcamTools/ToolNCC.py:2530 flatcamTools/ToolNCC.py:3429
-msgid "NCC Tool clear all done but the copper features isolation is broken for"
-msgstr ""
-"NCC Tool clear all done but the copper features isolation is broken for"
-
-#: flatcamTools/ToolNCC.py:2532 flatcamTools/ToolNCC.py:2817
-#: flatcamTools/ToolNCC.py:3431 flatcamTools/ToolNCC.py:3814
-msgid "tools"
-msgstr "tools"
-
-#: flatcamTools/ToolNCC.py:2813 flatcamTools/ToolNCC.py:3810
-msgid "NCC Tool Rest Machining clear all done."
-msgstr "NCC Tool Rest Machining clear all done."
-
-#: flatcamTools/ToolNCC.py:2816 flatcamTools/ToolNCC.py:3813
-msgid ""
-"NCC Tool Rest Machining clear all done but the copper features isolation is "
-"broken for"
-msgstr ""
-"NCC Tool Rest Machining clear all done but the copper features isolation is "
-"broken for"
-
-#: flatcamTools/ToolNCC.py:2928
-msgid "NCC Tool started. Reading parameters."
-msgstr "NCC Tool started. Reading parameters."
-
-#: flatcamTools/ToolNCC.py:3906
-msgid ""
-"Try to use the Buffering Type = Full in Preferences -> Gerber General. "
-"Reload the Gerber file after this change."
-msgstr ""
-"Try to use the Buffering Type = Full in Preferences -> Gerber General. "
-"Reload the Gerber file after this change."
-
-#: flatcamTools/ToolOptimal.py:79
-msgid "Number of decimals kept for found distances."
-msgstr "Number of decimals kept for found distances."
-
-#: flatcamTools/ToolOptimal.py:87
-msgid "Minimum distance"
-msgstr "Minimum distance"
-
-#: flatcamTools/ToolOptimal.py:88
-msgid "Display minimum distance between copper features."
-msgstr "Display minimum distance between copper features."
-
-#: flatcamTools/ToolOptimal.py:92
-msgid "Determined"
-msgstr "Determined"
-
-#: flatcamTools/ToolOptimal.py:106
-msgid "Occurring"
-msgstr "Occurring"
-
-#: flatcamTools/ToolOptimal.py:107
-msgid "How many times this minimum is found."
-msgstr "How many times this minimum is found."
-
-#: flatcamTools/ToolOptimal.py:113
-msgid "Minimum points coordinates"
-msgstr "Minimum points coordinates"
-
-#: flatcamTools/ToolOptimal.py:114 flatcamTools/ToolOptimal.py:120
-msgid "Coordinates for points where minimum distance was found."
-msgstr "Coordinates for points where minimum distance was found."
-
-#: flatcamTools/ToolOptimal.py:133 flatcamTools/ToolOptimal.py:209
-msgid "Jump to selected position"
-msgstr "Jump to selected position"
-
-#: flatcamTools/ToolOptimal.py:135 flatcamTools/ToolOptimal.py:211
-msgid ""
-"Select a position in the Locations text box and then\n"
-"click this button."
-msgstr ""
-"Select a position in the Locations text box and then\n"
-"click this button."
-
-#: flatcamTools/ToolOptimal.py:143
-msgid "Other distances"
-msgstr "Other distances"
-
-#: flatcamTools/ToolOptimal.py:144
-msgid ""
-"Will display other distances in the Gerber file ordered from\n"
-"the minimum to the maximum, not including the absolute minimum."
-msgstr ""
-"Will display other distances in the Gerber file ordered from\n"
-"the minimum to the maximum, not including the absolute minimum."
-
-#: flatcamTools/ToolOptimal.py:149
-msgid "Other distances points coordinates"
-msgstr "Other distances points coordinates"
-
-#: flatcamTools/ToolOptimal.py:150 flatcamTools/ToolOptimal.py:164
-#: flatcamTools/ToolOptimal.py:171 flatcamTools/ToolOptimal.py:188
-#: flatcamTools/ToolOptimal.py:195
-msgid ""
-"Other distances and the coordinates for points\n"
-"where the distance was found."
-msgstr ""
-"Other distances and the coordinates for points\n"
-"where the distance was found."
-
-#: flatcamTools/ToolOptimal.py:163
-msgid "Gerber distances"
-msgstr "Gerber distances"
-
-#: flatcamTools/ToolOptimal.py:187
-msgid "Points coordinates"
-msgstr "Points coordinates"
-
-#: flatcamTools/ToolOptimal.py:219
-msgid "Find Minimum"
-msgstr "Find Minimum"
-
-#: flatcamTools/ToolOptimal.py:221
-msgid ""
-"Calculate the minimum distance between copper features,\n"
-"this will allow the determination of the right tool to\n"
-"use for isolation or copper clearing."
-msgstr ""
-"Calculate the minimum distance between copper features,\n"
-"this will allow the determination of the right tool to\n"
-"use for isolation or copper clearing."
-
-#: flatcamTools/ToolOptimal.py:346
-msgid "Only Gerber objects can be evaluated."
-msgstr "Only Gerber objects can be evaluated."
-
-#: flatcamTools/ToolOptimal.py:352
-msgid ""
-"Optimal Tool. Started to search for the minimum distance between copper "
-"features."
-msgstr ""
-"Optimal Tool. Started to search for the minimum distance between copper "
-"features."
-
-#: flatcamTools/ToolOptimal.py:362
-msgid "Optimal Tool. Parsing geometry for aperture"
-msgstr "Optimal Tool. Parsing geometry for aperture"
-
-#: flatcamTools/ToolOptimal.py:373
-msgid "Optimal Tool. Creating a buffer for the object geometry."
-msgstr "Optimal Tool. Creating a buffer for the object geometry."
-
-#: flatcamTools/ToolOptimal.py:383
-msgid ""
-"The Gerber object has one Polygon as geometry.\n"
-"There are no distances between geometry elements to be found."
-msgstr ""
-"The Gerber object has one Polygon as geometry.\n"
-"There are no distances between geometry elements to be found."
-
-#: flatcamTools/ToolOptimal.py:388
-msgid ""
-"Optimal Tool. Finding the distances between each two elements. Iterations"
-msgstr ""
-"Optimal Tool. Finding the distances between each two elements. Iterations"
-
-#: flatcamTools/ToolOptimal.py:423
-msgid "Optimal Tool. Finding the minimum distance."
-msgstr "Optimal Tool. Finding the minimum distance."
-
-#: flatcamTools/ToolOptimal.py:439
-msgid "Optimal Tool. Finished successfully."
-msgstr "Optimal Tool. Finished successfully."
-
-#: flatcamTools/ToolPDF.py:157 flatcamTools/ToolPDF.py:161
-msgid "Open PDF"
-msgstr "Open PDF"
-
-#: flatcamTools/ToolPDF.py:164
-msgid "Open PDF cancelled"
-msgstr "Open PDF cancelled"
-
-#: flatcamTools/ToolPDF.py:195
-msgid "Parsing PDF file ..."
-msgstr "Parsing PDF file ..."
-
-#: flatcamTools/ToolPDF.py:278 flatcamTools/ToolPDF.py:353
-#, python-format
-msgid "Rendering PDF layer #%d ..."
-msgstr "Rendering PDF layer #%d ..."
-
-#: flatcamTools/ToolPDF.py:283 flatcamTools/ToolPDF.py:358
-msgid "Open PDF file failed."
-msgstr "Open PDF file failed."
-
-#: flatcamTools/ToolPDF.py:289 flatcamTools/ToolPDF.py:363
-msgid "Rendered"
-msgstr "Rendered"
-
-#: flatcamTools/ToolPaint.py:82
-msgid ""
-"Specify the type of object to be painted.\n"
-"It can be of type: Gerber or Geometry.\n"
-"What is selected here will dictate the kind\n"
-"of objects that will populate the 'Object' combobox."
-msgstr ""
-"Specify the type of object to be painted.\n"
-"It can be of type: Gerber or Geometry.\n"
-"What is selected here will dictate the kind\n"
-"of objects that will populate the 'Object' combobox."
-
-#: flatcamTools/ToolPaint.py:104
-msgid "Object to be painted."
-msgstr "Object to be painted."
-
-#: flatcamTools/ToolPaint.py:117
-msgid ""
-"Tools pool from which the algorithm\n"
-"will pick the ones used for painting."
-msgstr ""
-"Tools pool from which the algorithm\n"
-"will pick the ones used for painting."
-
-#: flatcamTools/ToolPaint.py:134
-msgid ""
-"This is the Tool Number.\n"
-"Painting will start with the tool with the biggest diameter,\n"
-"continuing until there are no more tools.\n"
-"Only tools that create painting geometry will still be present\n"
-"in the resulting geometry. This is because with some tools\n"
-"this function will not be able to create painting geometry."
-msgstr ""
-"This is the Tool Number.\n"
-"Painting will start with the tool with the biggest diameter,\n"
-"continuing until there are no more tools.\n"
-"Only tools that create painting geometry will still be present\n"
-"in the resulting geometry. This is because with some tools\n"
-"this function will not be able to create painting geometry."
-
-#: flatcamTools/ToolPaint.py:146
-msgid ""
-"The Tool Type (TT) can be:\n"
-"- Circular -> it is informative only. Being circular,\n"
-"the cut width in material is exactly the tool diameter.\n"
-"- Ball -> informative only and make reference to the Ball type endmill.\n"
-"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI "
-"form\n"
-"and enable two additional UI form fields in the resulting geometry: V-Tip "
-"Dia and\n"
-"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter "
-"such\n"
-"as the cut width into material will be equal with the value in the Tool "
-"Diameter\n"
-"column of this table.\n"
-"Choosing the 'V-Shape' Tool Type automatically will select the Operation "
-"Type\n"
-"in the resulting geometry as Isolation."
-msgstr ""
-"The Tool Type (TT) can be:\n"
-"- Circular -> it is informative only. Being circular,\n"
-"the cut width in material is exactly the tool diameter.\n"
-"- Ball -> informative only and make reference to the Ball type endmill.\n"
-"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI "
-"form\n"
-"and enable two additional UI form fields in the resulting geometry: V-Tip "
-"Dia and\n"
-"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter "
-"such\n"
-"as the cut width into material will be equal with the value in the Tool "
-"Diameter\n"
-"column of this table.\n"
-"Choosing the 'V-Shape' Tool Type automatically will select the Operation "
-"Type\n"
-"in the resulting geometry as Isolation."
-
-#: flatcamTools/ToolPaint.py:498
-msgid ""
-"The type of FlatCAM object to be used as paint reference.\n"
-"It can be Gerber, Excellon or Geometry."
-msgstr ""
-"The type of FlatCAM object to be used as paint reference.\n"
-"It can be Gerber, Excellon or Geometry."
-
-#: flatcamTools/ToolPaint.py:539
-msgid ""
-"- 'Area Selection' - left mouse click to start selection of the area to be "
-"painted.\n"
-"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple "
-"areas.\n"
-"- 'All Polygons' - the Paint will start after click.\n"
-"- 'Reference Object' - will do non copper clearing within the area\n"
-"specified by another object."
-msgstr ""
-"- 'Area Selection' - left mouse click to start selection of the area to be "
-"painted.\n"
-"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple "
-"areas.\n"
-"- 'All Polygons' - the Paint will start after click.\n"
-"- 'Reference Object' - will do non copper clearing within the area\n"
-"specified by another object."
-
-#: flatcamTools/ToolPaint.py:1393
-#, python-format
-msgid "Could not retrieve object: %s"
-msgstr "Could not retrieve object: %s"
-
-#: flatcamTools/ToolPaint.py:1403
-msgid "Can't do Paint on MultiGeo geometries"
-msgstr "Can't do Paint on MultiGeo geometries"
-
-#: flatcamTools/ToolPaint.py:1433
-msgid "Click on a polygon to paint it."
-msgstr "Click on a polygon to paint it."
-
-#: flatcamTools/ToolPaint.py:1453
-msgid "Click the start point of the paint area."
-msgstr "Click the start point of the paint area."
-
-#: flatcamTools/ToolPaint.py:1518
-msgid "Click to add next polygon or right click to start painting."
-msgstr "Click to add next polygon or right click to start painting."
-
-#: flatcamTools/ToolPaint.py:1531
-msgid "Click to add/remove next polygon or right click to start painting."
-msgstr "Click to add/remove next polygon or right click to start painting."
-
-#: flatcamTools/ToolPaint.py:2029
-msgid "Painting polygon with method: lines."
-msgstr "Painting polygon with method: lines."
-
-#: flatcamTools/ToolPaint.py:2041
-msgid "Failed. Painting polygon with method: seed."
-msgstr "Failed. Painting polygon with method: seed."
-
-#: flatcamTools/ToolPaint.py:2052
-msgid "Failed. Painting polygon with method: standard."
-msgstr "Failed. Painting polygon with method: standard."
-
-#: flatcamTools/ToolPaint.py:2068
-msgid "Geometry could not be painted completely"
-msgstr "Geometry could not be painted completely"
-
-#: flatcamTools/ToolPaint.py:2097 flatcamTools/ToolPaint.py:2100
-#: flatcamTools/ToolPaint.py:2108 flatcamTools/ToolPaint.py:2411
-#: flatcamTools/ToolPaint.py:2414 flatcamTools/ToolPaint.py:2422
-#: flatcamTools/ToolPaint.py:2910 flatcamTools/ToolPaint.py:2913
-#: flatcamTools/ToolPaint.py:2919
-msgid "Paint Tool."
-msgstr "Paint Tool."
-
-#: flatcamTools/ToolPaint.py:2097 flatcamTools/ToolPaint.py:2100
-#: flatcamTools/ToolPaint.py:2108
-msgid "Normal painting polygon task started."
-msgstr "Normal painting polygon task started."
-
-#: flatcamTools/ToolPaint.py:2098 flatcamTools/ToolPaint.py:2412
-#: flatcamTools/ToolPaint.py:2911
-msgid "Buffering geometry..."
-msgstr "Buffering geometry..."
-
-#: flatcamTools/ToolPaint.py:2120 flatcamTools/ToolPaint.py:2429
-#: flatcamTools/ToolPaint.py:2927
-msgid "No polygon found."
-msgstr "No polygon found."
-
-#: flatcamTools/ToolPaint.py:2150
-msgid "Painting polygon..."
-msgstr "Painting polygon..."
-
-#: flatcamTools/ToolPaint.py:2160 flatcamTools/ToolPaint.py:2475
-#: flatcamTools/ToolPaint.py:2665 flatcamTools/ToolPaint.py:2973
-#: flatcamTools/ToolPaint.py:3152
-msgid "Painting with tool diameter = "
-msgstr "Painting with tool diameter = "
-
-#: flatcamTools/ToolPaint.py:2161 flatcamTools/ToolPaint.py:2476
-#: flatcamTools/ToolPaint.py:2666 flatcamTools/ToolPaint.py:2974
-#: flatcamTools/ToolPaint.py:3153
-msgid "started"
-msgstr "started"
-
-#: flatcamTools/ToolPaint.py:2186 flatcamTools/ToolPaint.py:2502
-#: flatcamTools/ToolPaint.py:2692 flatcamTools/ToolPaint.py:3000
-#: flatcamTools/ToolPaint.py:3179
-msgid "Margin parameter too big. Tool is not used"
-msgstr "Margin parameter too big. Tool is not used"
-
-#: flatcamTools/ToolPaint.py:2244 flatcamTools/ToolPaint.py:2571
-#: flatcamTools/ToolPaint.py:2749 flatcamTools/ToolPaint.py:3063
-#: flatcamTools/ToolPaint.py:3241
-msgid ""
-"Could not do Paint. Try a different combination of parameters. Or a "
-"different strategy of paint"
-msgstr ""
-"Could not do Paint. Try a different combination of parameters. Or a "
-"different strategy of paint"
-
-#: flatcamTools/ToolPaint.py:2301 flatcamTools/ToolPaint.py:2637
-#: flatcamTools/ToolPaint.py:2806 flatcamTools/ToolPaint.py:3124
-#: flatcamTools/ToolPaint.py:3303
-msgid ""
-"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 ""
-"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."
-
-#: flatcamTools/ToolPaint.py:2324
-msgid "Paint Single failed."
-msgstr "Paint Single failed."
-
-#: flatcamTools/ToolPaint.py:2330
-msgid "Paint Single Done."
-msgstr "Paint Single Done."
-
-#: flatcamTools/ToolPaint.py:2332 flatcamTools/ToolPaint.py:2842
-#: flatcamTools/ToolPaint.py:3339
-msgid "Polygon Paint started ..."
-msgstr "Polygon Paint started ..."
-
-#: flatcamTools/ToolPaint.py:2411 flatcamTools/ToolPaint.py:2414
-#: flatcamTools/ToolPaint.py:2422
-msgid "Paint all polygons task started."
-msgstr "Paint all polygons task started."
-
-#: flatcamTools/ToolPaint.py:2453 flatcamTools/ToolPaint.py:2951
-msgid "Painting polygons..."
-msgstr "Painting polygons..."
-
-#: flatcamTools/ToolPaint.py:2646
-msgid "Paint All Done."
-msgstr "Paint All Done."
-
-#: flatcamTools/ToolPaint.py:2815 flatcamTools/ToolPaint.py:3312
-msgid "Paint All with Rest-Machining done."
-msgstr "Paint All with Rest-Machining done."
-
-#: flatcamTools/ToolPaint.py:2834
-msgid "Paint All failed."
-msgstr "Paint All failed."
-
-#: flatcamTools/ToolPaint.py:2840
-msgid "Paint Poly All Done."
-msgstr "Paint Poly All Done."
-
-#: flatcamTools/ToolPaint.py:2910 flatcamTools/ToolPaint.py:2913
-#: flatcamTools/ToolPaint.py:2919
-msgid "Painting area task started."
-msgstr "Painting area task started."
-
-#: flatcamTools/ToolPaint.py:3133
-msgid "Paint Area Done."
-msgstr "Paint Area Done."
-
-#: flatcamTools/ToolPaint.py:3331
-msgid "Paint Area failed."
-msgstr "Paint Area failed."
-
-#: flatcamTools/ToolPaint.py:3337
-msgid "Paint Poly Area Done."
-msgstr "Paint Poly Area Done."
-
-#: flatcamTools/ToolPanelize.py:34
-msgid "Panelize PCB"
-msgstr "Panelize PCB"
-
-#: flatcamTools/ToolPanelize.py:56
-msgid ""
-"Specify the type of object to be panelized\n"
-"It can be of type: Gerber, Excellon or Geometry.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Object combobox."
-msgstr ""
-"Specify the type of object to be panelized\n"
-"It can be of type: Gerber, Excellon or Geometry.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Object combobox."
-
-#: flatcamTools/ToolPanelize.py:89
-msgid ""
-"Object to be panelized. This means that it will\n"
-"be duplicated in an array of rows and columns."
-msgstr ""
-"Object to be panelized. This means that it will\n"
-"be duplicated in an array of rows and columns."
-
-#: flatcamTools/ToolPanelize.py:102
-msgid "Penelization Reference"
-msgstr "Penelization Reference"
-
-#: flatcamTools/ToolPanelize.py:104
-msgid ""
-"Choose the reference for panelization:\n"
-"- Object = the bounding box of a different object\n"
-"- Bounding Box = the bounding box of the object to be panelized\n"
-"\n"
-"The reference is useful when doing panelization for more than one\n"
-"object. The spacings (really offsets) will be applied in reference\n"
-"to this reference object therefore maintaining the panelized\n"
-"objects in sync."
-msgstr ""
-"Choose the reference for panelization:\n"
-"- Object = the bounding box of a different object\n"
-"- Bounding Box = the bounding box of the object to be panelized\n"
-"\n"
-"The reference is useful when doing panelization for more than one\n"
-"object. The spacings (really offsets) will be applied in reference\n"
-"to this reference object therefore maintaining the panelized\n"
-"objects in sync."
-
-#: flatcamTools/ToolPanelize.py:125
-msgid "Box Type"
-msgstr "Box Type"
-
-#: flatcamTools/ToolPanelize.py:127
-msgid ""
-"Specify the type of object to be used as an container for\n"
-"panelization. It can be: Gerber or Geometry type.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Box Object combobox."
-msgstr ""
-"Specify the type of object to be used as an container for\n"
-"panelization. It can be: Gerber or Geometry type.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Box Object combobox."
-
-#: flatcamTools/ToolPanelize.py:141
-msgid ""
-"The actual object that is used as container for the\n"
-" selected object that is to be panelized."
-msgstr ""
-"The actual object that is used as container for the\n"
-" selected object that is to be panelized."
-
-#: flatcamTools/ToolPanelize.py:147
-msgid "Panel Data"
-msgstr "Panel Data"
-
-#: flatcamTools/ToolPanelize.py:149
-msgid ""
-"This informations will shape the resulting panel.\n"
-"The number of rows and columns will set how many\n"
-"duplicates of the original geometry will be generated.\n"
-"\n"
-"The spacings will set the distance between any two\n"
-"elements of the panel array."
-msgstr ""
-"This informations will shape the resulting panel.\n"
-"The number of rows and columns will set how many\n"
-"duplicates of the original geometry will be generated.\n"
-"\n"
-"The spacings will set the distance between any two\n"
-"elements of the panel array."
-
-#: flatcamTools/ToolPanelize.py:208
-msgid ""
-"Choose the type of object for the panel object:\n"
-"- Geometry\n"
-"- Gerber"
-msgstr ""
-"Choose the type of object for the panel object:\n"
-"- Geometry\n"
-"- Gerber"
-
-#: flatcamTools/ToolPanelize.py:216
-msgid "Constrain panel within"
-msgstr "Constrain panel within"
-
-#: flatcamTools/ToolPanelize.py:252
-msgid "Panelize Object"
-msgstr "Panelize Object"
-
-#: flatcamTools/ToolPanelize.py:254 flatcamTools/ToolRulesCheck.py:501
-msgid ""
-"Panelize the specified object around the specified box.\n"
-"In other words it creates multiple copies of the source object,\n"
-"arranged in a 2D array of rows and columns."
-msgstr ""
-"Panelize the specified object around the specified box.\n"
-"In other words it creates multiple copies of the source object,\n"
-"arranged in a 2D array of rows and columns."
-
-#: flatcamTools/ToolPanelize.py:322
-msgid "Panel. Tool"
-msgstr "Panel. Tool"
-
-#: flatcamTools/ToolPanelize.py:457
-msgid "Columns or Rows are zero value. Change them to a positive integer."
-msgstr "Columns or Rows are zero value. Change them to a positive integer."
-
-#: flatcamTools/ToolPanelize.py:494
-msgid "Generating panel ... "
-msgstr "Generating panel ... "
-
-#: flatcamTools/ToolPanelize.py:777
-msgid "Generating panel ... Adding the Gerber code."
-msgstr "Generating panel ... Adding the Gerber code."
-
-#: flatcamTools/ToolPanelize.py:785
-msgid "Generating panel... Spawning copies"
-msgstr "Generating panel... Spawning copies"
-
-#: flatcamTools/ToolPanelize.py:792
-msgid "Panel done..."
-msgstr "Panel done..."
-
-#: flatcamTools/ToolPanelize.py:795
-#, python-brace-format
-msgid ""
-"{text} Too big for the constrain area. Final panel has {col} columns and "
-"{row} rows"
-msgstr ""
-"{text} Too big for the constrain area. Final panel has {col} columns and "
-"{row} rows"
-
-#: flatcamTools/ToolPanelize.py:804
-msgid "Panel created successfully."
-msgstr "Panel created successfully."
-
-#: flatcamTools/ToolPcbWizard.py:31
-msgid "PcbWizard Import Tool"
-msgstr "PcbWizard Import Tool"
-
-#: flatcamTools/ToolPcbWizard.py:40
-msgid "Import 2-file Excellon"
-msgstr "Import 2-file Excellon"
-
-#: flatcamTools/ToolPcbWizard.py:51
-msgid "Load files"
-msgstr "Load files"
-
-#: flatcamTools/ToolPcbWizard.py:57
-msgid "Excellon file"
-msgstr "Excellon file"
-
-#: flatcamTools/ToolPcbWizard.py:59
-msgid ""
-"Load the Excellon file.\n"
-"Usually it has a .DRL extension"
-msgstr ""
-"Load the Excellon file.\n"
-"Usually it has a .DRL extension"
-
-#: flatcamTools/ToolPcbWizard.py:65
-msgid "INF file"
-msgstr "INF file"
-
-#: flatcamTools/ToolPcbWizard.py:67
-msgid "Load the INF file."
-msgstr "Load the INF file."
-
-#: flatcamTools/ToolPcbWizard.py:79
-msgid "Tool Number"
-msgstr "Tool Number"
-
-#: flatcamTools/ToolPcbWizard.py:81
-msgid "Tool diameter in file units."
-msgstr "Tool diameter in file units."
-
-#: flatcamTools/ToolPcbWizard.py:87
-msgid "Excellon format"
-msgstr "Excellon format"
-
-#: flatcamTools/ToolPcbWizard.py:95
-msgid "Int. digits"
-msgstr "Int. digits"
-
-#: flatcamTools/ToolPcbWizard.py:97
-msgid "The number of digits for the integral part of the coordinates."
-msgstr "The number of digits for the integral part of the coordinates."
-
-#: flatcamTools/ToolPcbWizard.py:104
-msgid "Frac. digits"
-msgstr "Frac. digits"
-
-#: flatcamTools/ToolPcbWizard.py:106
-msgid "The number of digits for the fractional part of the coordinates."
-msgstr "The number of digits for the fractional part of the coordinates."
-
-#: flatcamTools/ToolPcbWizard.py:113
-msgid "No Suppression"
-msgstr "No Suppression"
-
-#: flatcamTools/ToolPcbWizard.py:114
-msgid "Zeros supp."
-msgstr "Zeros supp."
-
-#: flatcamTools/ToolPcbWizard.py:116
-msgid ""
-"The type of zeros suppression used.\n"
-"Can be of type:\n"
-"- LZ = leading zeros are kept\n"
-"- TZ = trailing zeros are kept\n"
-"- No Suppression = no zero suppression"
-msgstr ""
-"The type of zeros suppression used.\n"
-"Can be of type:\n"
-"- LZ = leading zeros are kept\n"
-"- TZ = trailing zeros are kept\n"
-"- No Suppression = no zero suppression"
-
-#: flatcamTools/ToolPcbWizard.py:129
-msgid ""
-"The type of units that the coordinates and tool\n"
-"diameters are using. Can be INCH or MM."
-msgstr ""
-"The type of units that the coordinates and tool\n"
-"diameters are using. Can be INCH or MM."
-
-#: flatcamTools/ToolPcbWizard.py:136
-msgid "Import Excellon"
-msgstr "Import Excellon"
-
-#: flatcamTools/ToolPcbWizard.py:138
-msgid ""
-"Import in FlatCAM an Excellon file\n"
-"that store it's information's in 2 files.\n"
-"One usually has .DRL extension while\n"
-"the other has .INF extension."
-msgstr ""
-"Import in FlatCAM an Excellon file\n"
-"that store it's information's in 2 files.\n"
-"One usually has .DRL extension while\n"
-"the other has .INF extension."
-
-#: flatcamTools/ToolPcbWizard.py:197
-msgid "PCBWizard Tool"
-msgstr "PCBWizard Tool"
-
-#: flatcamTools/ToolPcbWizard.py:291 flatcamTools/ToolPcbWizard.py:295
-msgid "Load PcbWizard Excellon file"
-msgstr "Load PcbWizard Excellon file"
-
-#: flatcamTools/ToolPcbWizard.py:314 flatcamTools/ToolPcbWizard.py:318
-msgid "Load PcbWizard INF file"
-msgstr "Load PcbWizard INF file"
-
-#: flatcamTools/ToolPcbWizard.py:366
-msgid ""
-"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 ""
-"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."
-
-#: flatcamTools/ToolPcbWizard.py:387
-msgid "PcbWizard .INF file loaded."
-msgstr "PcbWizard .INF file loaded."
-
-#: flatcamTools/ToolPcbWizard.py:392
-msgid "Main PcbWizard Excellon file loaded."
-msgstr "Main PcbWizard Excellon file loaded."
-
-#: flatcamTools/ToolPcbWizard.py:427
-msgid "Cannot parse file"
-msgstr "Cannot parse file"
-
-#: flatcamTools/ToolPcbWizard.py:450
-msgid "Importing Excellon."
-msgstr "Importing Excellon."
-
-#: flatcamTools/ToolPcbWizard.py:457
-msgid "Import Excellon file failed."
-msgstr "Import Excellon file failed."
-
-#: flatcamTools/ToolPcbWizard.py:464
-msgid "Imported"
-msgstr "Imported"
-
-#: flatcamTools/ToolPcbWizard.py:467
-msgid "Excellon merging is in progress. Please wait..."
-msgstr "Excellon merging is in progress. Please wait..."
-
-#: flatcamTools/ToolPcbWizard.py:469
-msgid "The imported Excellon file is empty."
-msgstr "The imported Excellon file is empty."
-
-#: flatcamTools/ToolProperties.py:131
-msgid "Object Properties are displayed."
-msgstr "Object Properties are displayed."
-
-#: flatcamTools/ToolProperties.py:136
-msgid "Properties Tool"
-msgstr "Properties Tool"
-
-#: flatcamTools/ToolProperties.py:150
-msgid "TYPE"
-msgstr "TYPE"
-
-#: flatcamTools/ToolProperties.py:151
-msgid "NAME"
-msgstr "NAME"
-
-#: flatcamTools/ToolProperties.py:153
-msgid "Dimensions"
-msgstr "Dimensions"
-
-#: flatcamTools/ToolProperties.py:181
-msgid "Geo Type"
-msgstr "Geo Type"
-
-#: flatcamTools/ToolProperties.py:184
-msgid "Single-Geo"
-msgstr "Single-Geo"
-
-#: flatcamTools/ToolProperties.py:185
-msgid "Multi-Geo"
-msgstr "Multi-Geo"
-
-#: flatcamTools/ToolProperties.py:196
-msgid "Calculating dimensions ... Please wait."
-msgstr "Calculating dimensions ... Please wait."
-
-#: flatcamTools/ToolProperties.py:339 flatcamTools/ToolProperties.py:343
-#: flatcamTools/ToolProperties.py:345
-msgid "Inch"
-msgstr "Inch"
-
-#: flatcamTools/ToolProperties.py:339 flatcamTools/ToolProperties.py:344
-#: flatcamTools/ToolProperties.py:346
-msgid "Metric"
-msgstr "Metric"
-
-#: flatcamTools/ToolProperties.py:421 flatcamTools/ToolProperties.py:486
-msgid "Drills number"
-msgstr "Drills number"
-
-#: flatcamTools/ToolProperties.py:422 flatcamTools/ToolProperties.py:488
-msgid "Slots number"
-msgstr "Slots number"
-
-#: flatcamTools/ToolProperties.py:424
-msgid "Drills total number:"
-msgstr "Drills total number:"
-
-#: flatcamTools/ToolProperties.py:425
-msgid "Slots total number:"
-msgstr "Slots total number:"
-
-#: flatcamTools/ToolProperties.py:452 flatcamTools/ToolProperties.py:455
-#: flatcamTools/ToolProperties.py:458 flatcamTools/ToolProperties.py:483
-msgid "Present"
-msgstr "Present"
-
-#: flatcamTools/ToolProperties.py:453 flatcamTools/ToolProperties.py:484
-msgid "Solid Geometry"
-msgstr "Solid Geometry"
-
-#: flatcamTools/ToolProperties.py:456
-msgid "GCode Text"
-msgstr "GCode Text"
-
-#: flatcamTools/ToolProperties.py:459
-msgid "GCode Geometry"
-msgstr "GCode Geometry"
-
-#: flatcamTools/ToolProperties.py:462
-msgid "Data"
-msgstr "Data"
-
-#: flatcamTools/ToolProperties.py:495
-msgid "Depth of Cut"
-msgstr "Depth of Cut"
-
-#: flatcamTools/ToolProperties.py:507
-msgid "Clearance Height"
-msgstr "Clearance Height"
-
-#: flatcamTools/ToolProperties.py:539
-msgid "Routing time"
-msgstr "Routing time"
-
-#: flatcamTools/ToolProperties.py:546
-msgid "Travelled distance"
-msgstr "Travelled distance"
-
-#: flatcamTools/ToolProperties.py:564
-msgid "Width"
-msgstr "Width"
-
-#: flatcamTools/ToolProperties.py:570 flatcamTools/ToolProperties.py:578
-msgid "Box Area"
-msgstr "Box Area"
-
-#: flatcamTools/ToolProperties.py:573 flatcamTools/ToolProperties.py:581
-msgid "Convex_Hull Area"
-msgstr "Convex_Hull Area"
-
-#: flatcamTools/ToolProperties.py:588 flatcamTools/ToolProperties.py:591
-msgid "Copper Area"
-msgstr "Copper Area"
-
-#: flatcamTools/ToolPunchGerber.py:30 flatcamTools/ToolPunchGerber.py:323
-msgid "Punch Gerber"
-msgstr "Punch Gerber"
-
-#: flatcamTools/ToolPunchGerber.py:65
-msgid "Gerber into which to punch holes"
-msgstr "Gerber into which to punch holes"
-
-#: flatcamTools/ToolPunchGerber.py:85
-msgid "ALL"
-msgstr "ALL"
-
-#: flatcamTools/ToolPunchGerber.py:166
-msgid ""
-"Remove the geometry of Excellon from the Gerber to create the holes in pads."
-msgstr ""
-"Remove the geometry of Excellon from the Gerber to create the holes in pads."
-
-#: flatcamTools/ToolPunchGerber.py:325
-msgid ""
-"Create a Gerber object from the selected object, within\n"
-"the specified box."
-msgstr ""
-"Create a Gerber object from the selected object, within\n"
-"the specified box."
-
-#: flatcamTools/ToolPunchGerber.py:425
-msgid "Punch Tool"
-msgstr "Punch Tool"
-
-#: flatcamTools/ToolPunchGerber.py:599
-msgid "The value of the fixed diameter is 0.0. Aborting."
-msgstr "The value of the fixed diameter is 0.0. Aborting."
-
-#: flatcamTools/ToolPunchGerber.py:607 flatcamTools/ToolPunchGerber.py:619
-msgid ""
-"Could not generate punched hole Gerber because the punch hole size is bigger "
-"than some of the apertures in the Gerber object."
-msgstr ""
-"Could not generate punched hole Gerber because the punch hole size is bigger "
-"than some of the apertures in the Gerber object."
-
-#: flatcamTools/ToolPunchGerber.py:656
-msgid ""
-"Could not generate punched hole Gerber because the newly created object "
-"geometry is the same as the one in the source object geometry..."
-msgstr ""
-"Could not generate punched hole Gerber because the newly created object "
-"geometry is the same as the one in the source object geometry..."
-
-#: flatcamTools/ToolQRCode.py:80
-msgid "Gerber Object to which the QRCode will be added."
-msgstr "Gerber Object to which the QRCode will be added."
-
-#: flatcamTools/ToolQRCode.py:93
-msgid "QRCode Parameters"
-msgstr "QRCode Parameters"
-
-#: flatcamTools/ToolQRCode.py:95
-msgid "The parameters used to shape the QRCode."
-msgstr "The parameters used to shape the QRCode."
-
-#: flatcamTools/ToolQRCode.py:207
-msgid "Export QRCode"
-msgstr "Export QRCode"
-
-#: flatcamTools/ToolQRCode.py:209
-msgid ""
-"Show a set of controls allowing to export the QRCode\n"
-"to a SVG file or an PNG file."
-msgstr ""
-"Show a set of controls allowing to export the QRCode\n"
-"to a SVG file or an PNG file."
-
-#: flatcamTools/ToolQRCode.py:248
-msgid "Transparent back color"
-msgstr "Transparent back color"
-
-#: flatcamTools/ToolQRCode.py:273
-msgid "Export QRCode SVG"
-msgstr "Export QRCode SVG"
-
-#: flatcamTools/ToolQRCode.py:275
-msgid "Export a SVG file with the QRCode content."
-msgstr "Export a SVG file with the QRCode content."
-
-#: flatcamTools/ToolQRCode.py:286
-msgid "Export QRCode PNG"
-msgstr "Export QRCode PNG"
-
-#: flatcamTools/ToolQRCode.py:288
-msgid "Export a PNG image file with the QRCode content."
-msgstr "Export a PNG image file with the QRCode content."
-
-#: flatcamTools/ToolQRCode.py:299
-msgid "Insert QRCode"
-msgstr "Insert QRCode"
-
-#: flatcamTools/ToolQRCode.py:301
-msgid "Create the QRCode object."
-msgstr "Create the QRCode object."
-
-#: flatcamTools/ToolQRCode.py:415 flatcamTools/ToolQRCode.py:750
-#: flatcamTools/ToolQRCode.py:799
-msgid "Cancelled. There is no QRCode Data in the text box."
-msgstr "Cancelled. There is no QRCode Data in the text box."
-
-#: flatcamTools/ToolQRCode.py:434
-msgid "Generating QRCode geometry"
-msgstr "Generating QRCode geometry"
-
-#: flatcamTools/ToolQRCode.py:474
-msgid "Click on the Destination point ..."
-msgstr "Click on the Destination point ..."
-
-#: flatcamTools/ToolQRCode.py:589
-msgid "QRCode Tool done."
-msgstr "QRCode Tool done."
-
-#: flatcamTools/ToolQRCode.py:782 flatcamTools/ToolQRCode.py:786
-msgid "Export PNG"
-msgstr "Export PNG"
-
-#: flatcamTools/ToolRulesCheck.py:33
-msgid "Check Rules"
-msgstr "Check Rules"
-
-#: flatcamTools/ToolRulesCheck.py:61
-msgid "Gerber Files"
-msgstr "Gerber Files"
-
-#: flatcamTools/ToolRulesCheck.py:63
-msgid "Gerber objects for which to check rules."
-msgstr "Gerber objects for which to check rules."
-
-#: flatcamTools/ToolRulesCheck.py:78
-msgid "Top"
-msgstr "Top"
-
-#: flatcamTools/ToolRulesCheck.py:80
-msgid "The Top Gerber Copper object for which rules are checked."
-msgstr "The Top Gerber Copper object for which rules are checked."
-
-#: flatcamTools/ToolRulesCheck.py:96
-msgid "Bottom"
-msgstr "Bottom"
-
-#: flatcamTools/ToolRulesCheck.py:98
-msgid "The Bottom Gerber Copper object for which rules are checked."
-msgstr "The Bottom Gerber Copper object for which rules are checked."
-
-#: flatcamTools/ToolRulesCheck.py:114
-msgid "SM Top"
-msgstr "SM Top"
-
-#: flatcamTools/ToolRulesCheck.py:116
-msgid "The Top Gerber Solder Mask object for which rules are checked."
-msgstr "The Top Gerber Solder Mask object for which rules are checked."
-
-#: flatcamTools/ToolRulesCheck.py:132
-msgid "SM Bottom"
-msgstr "SM Bottom"
-
-#: flatcamTools/ToolRulesCheck.py:134
-msgid "The Bottom Gerber Solder Mask object for which rules are checked."
-msgstr "The Bottom Gerber Solder Mask object for which rules are checked."
-
-#: flatcamTools/ToolRulesCheck.py:150
-msgid "Silk Top"
-msgstr "Silk Top"
-
-#: flatcamTools/ToolRulesCheck.py:152
-msgid "The Top Gerber Silkscreen object for which rules are checked."
-msgstr "The Top Gerber Silkscreen object for which rules are checked."
-
-#: flatcamTools/ToolRulesCheck.py:168
-msgid "Silk Bottom"
-msgstr "Silk Bottom"
-
-#: flatcamTools/ToolRulesCheck.py:170
-msgid "The Bottom Gerber Silkscreen object for which rules are checked."
-msgstr "The Bottom Gerber Silkscreen object for which rules are checked."
-
-#: flatcamTools/ToolRulesCheck.py:188
-msgid "The Gerber Outline (Cutout) object for which rules are checked."
-msgstr "The Gerber Outline (Cutout) object for which rules are checked."
-
-#: flatcamTools/ToolRulesCheck.py:199
-msgid "Excellon Objects"
-msgstr "Excellon Objects"
-
-#: flatcamTools/ToolRulesCheck.py:201
-msgid "Excellon objects for which to check rules."
-msgstr "Excellon objects for which to check rules."
-
-#: flatcamTools/ToolRulesCheck.py:213
-msgid "Excellon 1"
-msgstr "Excellon 1"
-
-#: flatcamTools/ToolRulesCheck.py:215
-msgid ""
-"Excellon object for which to check rules.\n"
-"Holds the plated holes or a general Excellon file content."
-msgstr ""
-"Excellon object for which to check rules.\n"
-"Holds the plated holes or a general Excellon file content."
-
-#: flatcamTools/ToolRulesCheck.py:232
-msgid "Excellon 2"
-msgstr "Excellon 2"
-
-#: flatcamTools/ToolRulesCheck.py:234
-msgid ""
-"Excellon object for which to check rules.\n"
-"Holds the non-plated holes."
-msgstr ""
-"Excellon object for which to check rules.\n"
-"Holds the non-plated holes."
-
-#: flatcamTools/ToolRulesCheck.py:247
-msgid "All Rules"
-msgstr "All Rules"
-
-#: flatcamTools/ToolRulesCheck.py:249
-msgid "This check/uncheck all the rules below."
-msgstr "This check/uncheck all the rules below."
-
-#: flatcamTools/ToolRulesCheck.py:499
-msgid "Run Rules Check"
-msgstr "Run Rules Check"
-
-#: flatcamTools/ToolRulesCheck.py:1158 flatcamTools/ToolRulesCheck.py:1218
-#: flatcamTools/ToolRulesCheck.py:1255 flatcamTools/ToolRulesCheck.py:1327
-#: flatcamTools/ToolRulesCheck.py:1381 flatcamTools/ToolRulesCheck.py:1419
-#: flatcamTools/ToolRulesCheck.py:1484
-msgid "Value is not valid."
-msgstr "Value is not valid."
-
-#: flatcamTools/ToolRulesCheck.py:1172
-msgid "TOP -> Copper to Copper clearance"
-msgstr "TOP -> Copper to Copper clearance"
-
-#: flatcamTools/ToolRulesCheck.py:1183
-msgid "BOTTOM -> Copper to Copper clearance"
-msgstr "BOTTOM -> Copper to Copper clearance"
-
-#: flatcamTools/ToolRulesCheck.py:1188 flatcamTools/ToolRulesCheck.py:1282
-#: flatcamTools/ToolRulesCheck.py:1446
-msgid ""
-"At least one Gerber object has to be selected for this rule but none is "
-"selected."
-msgstr ""
-"At least one Gerber object has to be selected for this rule but none is "
-"selected."
-
-#: flatcamTools/ToolRulesCheck.py:1224
-msgid ""
-"One of the copper Gerber objects or the Outline Gerber object is not valid."
-msgstr ""
-"One of the copper Gerber objects or the Outline Gerber object is not valid."
-
-#: flatcamTools/ToolRulesCheck.py:1237 flatcamTools/ToolRulesCheck.py:1401
-msgid ""
-"Outline Gerber object presence is mandatory for this rule but it is not "
-"selected."
-msgstr ""
-"Outline Gerber object presence is mandatory for this rule but it is not "
-"selected."
-
-#: flatcamTools/ToolRulesCheck.py:1254 flatcamTools/ToolRulesCheck.py:1281
-msgid "Silk to Silk clearance"
-msgstr "Silk to Silk clearance"
-
-#: flatcamTools/ToolRulesCheck.py:1267
-msgid "TOP -> Silk to Silk clearance"
-msgstr "TOP -> Silk to Silk clearance"
-
-#: flatcamTools/ToolRulesCheck.py:1277
-msgid "BOTTOM -> Silk to Silk clearance"
-msgstr "BOTTOM -> Silk to Silk clearance"
-
-#: flatcamTools/ToolRulesCheck.py:1333
-msgid "One or more of the Gerber objects is not valid."
-msgstr "One or more of the Gerber objects is not valid."
-
-#: flatcamTools/ToolRulesCheck.py:1341
-msgid "TOP -> Silk to Solder Mask Clearance"
-msgstr "TOP -> Silk to Solder Mask Clearance"
-
-#: flatcamTools/ToolRulesCheck.py:1347
-msgid "BOTTOM -> Silk to Solder Mask Clearance"
-msgstr "BOTTOM -> Silk to Solder Mask Clearance"
-
-#: flatcamTools/ToolRulesCheck.py:1351
-msgid ""
-"Both Silk and Solder Mask Gerber objects has to be either both Top or both "
-"Bottom."
-msgstr ""
-"Both Silk and Solder Mask Gerber objects has to be either both Top or both "
-"Bottom."
-
-#: flatcamTools/ToolRulesCheck.py:1387
-msgid ""
-"One of the Silk Gerber objects or the Outline Gerber object is not valid."
-msgstr ""
-"One of the Silk Gerber objects or the Outline Gerber object is not valid."
-
-#: flatcamTools/ToolRulesCheck.py:1431
-msgid "TOP -> Minimum Solder Mask Sliver"
-msgstr "TOP -> Minimum Solder Mask Sliver"
-
-#: flatcamTools/ToolRulesCheck.py:1441
-msgid "BOTTOM -> Minimum Solder Mask Sliver"
-msgstr "BOTTOM -> Minimum Solder Mask Sliver"
-
-#: flatcamTools/ToolRulesCheck.py:1490
-msgid "One of the Copper Gerber objects or the Excellon objects is not valid."
-msgstr "One of the Copper Gerber objects or the Excellon objects is not valid."
-
-#: flatcamTools/ToolRulesCheck.py:1506
-msgid ""
-"Excellon object presence is mandatory for this rule but none is selected."
-msgstr ""
-"Excellon object presence is mandatory for this rule but none is selected."
-
-#: flatcamTools/ToolRulesCheck.py:1579 flatcamTools/ToolRulesCheck.py:1592
-#: flatcamTools/ToolRulesCheck.py:1603 flatcamTools/ToolRulesCheck.py:1616
-msgid "STATUS"
-msgstr "STATUS"
-
-#: flatcamTools/ToolRulesCheck.py:1582 flatcamTools/ToolRulesCheck.py:1606
-msgid "FAILED"
-msgstr "FAILED"
-
-#: flatcamTools/ToolRulesCheck.py:1595 flatcamTools/ToolRulesCheck.py:1619
-msgid "PASSED"
-msgstr "PASSED"
-
-#: flatcamTools/ToolRulesCheck.py:1596 flatcamTools/ToolRulesCheck.py:1620
-msgid "Violations: There are no violations for the current rule."
-msgstr "Violations: There are no violations for the current rule."
-
-#: flatcamTools/ToolShell.py:74 flatcamTools/ToolShell.py:76
-msgid "...processing..."
-msgstr "...processing..."
-
-#: flatcamTools/ToolSolderPaste.py:37
-msgid "Solder Paste Tool"
-msgstr "Solder Paste Tool"
-
-#: flatcamTools/ToolSolderPaste.py:69
-msgid "Gerber Solder paste object. "
-msgstr "Gerber Solder paste object. "
-
-#: flatcamTools/ToolSolderPaste.py:76
-msgid ""
-"Tools pool from which the algorithm\n"
-"will pick the ones used for dispensing solder paste."
-msgstr ""
-"Tools pool from which the algorithm\n"
-"will pick the ones used for dispensing solder paste."
-
-#: flatcamTools/ToolSolderPaste.py:91
-msgid ""
-"This is the Tool Number.\n"
-"The solder dispensing will start with the tool with the biggest \n"
-"diameter, continuing until there are no more Nozzle tools.\n"
-"If there are no longer tools but there are still pads not covered\n"
-" with solder paste, the app will issue a warning message box."
-msgstr ""
-"This is the Tool Number.\n"
-"The solder dispensing will start with the tool with the biggest \n"
-"diameter, continuing until there are no more Nozzle tools.\n"
-"If there are no longer tools but there are still pads not covered\n"
-" with solder paste, the app will issue a warning message box."
-
-#: flatcamTools/ToolSolderPaste.py:98
-msgid ""
-"Nozzle tool Diameter. It's value (in current FlatCAM units)\n"
-"is the width of the solder paste dispensed."
-msgstr ""
-"Nozzle tool Diameter. It's value (in current FlatCAM units)\n"
-"is the width of the solder paste dispensed."
-
-#: flatcamTools/ToolSolderPaste.py:105
-msgid "New Nozzle Tool"
-msgstr "New Nozzle Tool"
-
-#: flatcamTools/ToolSolderPaste.py:124
-msgid ""
-"Add a new nozzle tool to the Tool Table\n"
-"with the diameter specified above."
-msgstr ""
-"Add a new nozzle tool to the Tool Table\n"
-"with the diameter specified above."
-
-#: flatcamTools/ToolSolderPaste.py:136
-msgid "Generate solder paste dispensing geometry."
-msgstr "Generate solder paste dispensing geometry."
-
-#: flatcamTools/ToolSolderPaste.py:155
-msgid "STEP 1"
-msgstr "STEP 1"
-
-#: flatcamTools/ToolSolderPaste.py:157
-msgid ""
-"First step is to select a number of nozzle tools for usage\n"
-"and then optionally modify the GCode parameters below."
-msgstr ""
-"First step is to select a number of nozzle tools for usage\n"
-"and then optionally modify the GCode parameters below."
-
-#: flatcamTools/ToolSolderPaste.py:160
-msgid ""
-"Select tools.\n"
-"Modify parameters."
-msgstr ""
-"Select tools.\n"
-"Modify parameters."
-
-#: flatcamTools/ToolSolderPaste.py:280
-msgid ""
-"Feedrate (speed) while moving up vertically\n"
-" to Dispense position (on Z plane)."
-msgstr ""
-"Feedrate (speed) while moving up vertically\n"
-" to Dispense position (on Z plane)."
-
-#: flatcamTools/ToolSolderPaste.py:350
-msgid ""
-"Generate GCode for Solder Paste dispensing\n"
-"on PCB pads."
-msgstr ""
-"Generate GCode for Solder Paste dispensing\n"
-"on PCB pads."
-
-#: flatcamTools/ToolSolderPaste.py:371
-msgid "STEP 2"
-msgstr "STEP 2"
-
-#: flatcamTools/ToolSolderPaste.py:373
-msgid ""
-"Second step is to create a solder paste dispensing\n"
-"geometry out of an Solder Paste Mask Gerber file."
-msgstr ""
-"Second step is to create a solder paste dispensing\n"
-"geometry out of an Solder Paste Mask Gerber file."
-
-#: flatcamTools/ToolSolderPaste.py:390
-msgid "Geo Result"
-msgstr "Geo Result"
-
-#: flatcamTools/ToolSolderPaste.py:392
-msgid ""
-"Geometry Solder Paste object.\n"
-"The name of the object has to end in:\n"
-"'_solderpaste' as a protection."
-msgstr ""
-"Geometry Solder Paste object.\n"
-"The name of the object has to end in:\n"
-"'_solderpaste' as a protection."
-
-#: flatcamTools/ToolSolderPaste.py:401
-msgid "STEP 3"
-msgstr "STEP 3"
-
-#: flatcamTools/ToolSolderPaste.py:403
-msgid ""
-"Third step is to select a solder paste dispensing geometry,\n"
-"and then generate a CNCJob object.\n"
-"\n"
-"REMEMBER: if you want to create a CNCJob with new parameters,\n"
-"first you need to generate a geometry with those new params,\n"
-"and only after that you can generate an updated CNCJob."
-msgstr ""
-"Third step is to select a solder paste dispensing geometry,\n"
-"and then generate a CNCJob object.\n"
-"\n"
-"REMEMBER: if you want to create a CNCJob with new parameters,\n"
-"first you need to generate a geometry with those new params,\n"
-"and only after that you can generate an updated CNCJob."
-
-#: flatcamTools/ToolSolderPaste.py:424
-msgid "CNC Result"
-msgstr "CNC Result"
-
-#: flatcamTools/ToolSolderPaste.py:426
-msgid ""
-"CNCJob Solder paste object.\n"
-"In order to enable the GCode save section,\n"
-"the name of the object has to end in:\n"
-"'_solderpaste' as a protection."
-msgstr ""
-"CNCJob Solder paste object.\n"
-"In order to enable the GCode save section,\n"
-"the name of the object has to end in:\n"
-"'_solderpaste' as a protection."
-
-#: flatcamTools/ToolSolderPaste.py:436
-msgid "View GCode"
-msgstr "View GCode"
-
-#: flatcamTools/ToolSolderPaste.py:438
-msgid ""
-"View the generated GCode for Solder Paste dispensing\n"
-"on PCB pads."
-msgstr ""
-"View the generated GCode for Solder Paste dispensing\n"
-"on PCB pads."
-
-#: flatcamTools/ToolSolderPaste.py:448
-msgid "Save GCode"
-msgstr "Save GCode"
-
-#: flatcamTools/ToolSolderPaste.py:450
-msgid ""
-"Save the generated GCode for Solder Paste dispensing\n"
-"on PCB pads, to a file."
-msgstr ""
-"Save the generated GCode for Solder Paste dispensing\n"
-"on PCB pads, to a file."
-
-#: flatcamTools/ToolSolderPaste.py:460
-msgid "STEP 4"
-msgstr "STEP 4"
-
-#: flatcamTools/ToolSolderPaste.py:462
-msgid ""
-"Fourth step (and last) is to select a CNCJob made from \n"
-"a solder paste dispensing geometry, and then view/save it's GCode."
-msgstr ""
-"Fourth step (and last) is to select a CNCJob made from \n"
-"a solder paste dispensing geometry, and then view/save it's GCode."
-
-#: flatcamTools/ToolSolderPaste.py:922
-msgid "New Nozzle tool added to Tool Table."
-msgstr "New Nozzle tool added to Tool Table."
-
-#: flatcamTools/ToolSolderPaste.py:965
-msgid "Nozzle tool from Tool Table was edited."
-msgstr "Nozzle tool from Tool Table was edited."
-
-#: flatcamTools/ToolSolderPaste.py:1024
-msgid "Delete failed. Select a Nozzle tool to delete."
-msgstr "Delete failed. Select a Nozzle tool to delete."
-
-#: flatcamTools/ToolSolderPaste.py:1030
-msgid "Nozzle tool(s) deleted from Tool Table."
-msgstr "Nozzle tool(s) deleted from Tool Table."
-
-#: flatcamTools/ToolSolderPaste.py:1086
-msgid "No SolderPaste mask Gerber object loaded."
-msgstr "No SolderPaste mask Gerber object loaded."
-
-#: flatcamTools/ToolSolderPaste.py:1104
-msgid "Creating Solder Paste dispensing geometry."
-msgstr "Creating Solder Paste dispensing geometry."
-
-#: flatcamTools/ToolSolderPaste.py:1117
-msgid "No Nozzle tools in the tool table."
-msgstr "No Nozzle tools in the tool table."
-
-#: flatcamTools/ToolSolderPaste.py:1243
-msgid "Cancelled. Empty file, it has no geometry..."
-msgstr "Cancelled. Empty file, it has no geometry..."
-
-#: flatcamTools/ToolSolderPaste.py:1246
-msgid "Solder Paste geometry generated successfully"
-msgstr "Solder Paste geometry generated successfully"
-
-#: flatcamTools/ToolSolderPaste.py:1253
-msgid "Some or all pads have no solder due of inadequate nozzle diameters..."
-msgstr "Some or all pads have no solder due of inadequate nozzle diameters..."
-
-#: flatcamTools/ToolSolderPaste.py:1267
-msgid "Generating Solder Paste dispensing geometry..."
-msgstr "Generating Solder Paste dispensing geometry..."
-
-#: flatcamTools/ToolSolderPaste.py:1287
-msgid "There is no Geometry object available."
-msgstr "There is no Geometry object available."
-
-#: flatcamTools/ToolSolderPaste.py:1292
-msgid "This Geometry can't be processed. NOT a solder_paste_tool geometry."
-msgstr "This Geometry can't be processed. NOT a solder_paste_tool geometry."
-
-#: flatcamTools/ToolSolderPaste.py:1328
-msgid "An internal error has ocurred. See shell.\n"
-msgstr "An internal error has ocurred. See shell.\n"
-
-#: flatcamTools/ToolSolderPaste.py:1393
-msgid "ToolSolderPaste CNCjob created"
-msgstr "ToolSolderPaste CNCjob created"
-
-#: flatcamTools/ToolSolderPaste.py:1412
-msgid "SP GCode Editor"
-msgstr "SP GCode Editor"
-
-#: flatcamTools/ToolSolderPaste.py:1424 flatcamTools/ToolSolderPaste.py:1429
-#: flatcamTools/ToolSolderPaste.py:1484
-msgid ""
-"This CNCJob object can't be processed. NOT a solder_paste_tool CNCJob object."
-msgstr ""
-"This CNCJob object can't be processed. NOT a solder_paste_tool CNCJob object."
-
-#: flatcamTools/ToolSolderPaste.py:1454
-msgid "No Gcode in the object"
-msgstr "No Gcode in the object"
-
-#: flatcamTools/ToolSolderPaste.py:1494
-msgid "Export GCode ..."
-msgstr "Export GCode ..."
-
-#: flatcamTools/ToolSolderPaste.py:1542
-msgid "Solder paste dispenser GCode file saved to"
-msgstr "Solder paste dispenser GCode file saved to"
-
-#: flatcamTools/ToolSub.py:65
-msgid "Gerber Objects"
-msgstr "Gerber Objects"
-
-#: flatcamTools/ToolSub.py:78
-msgid ""
-"Gerber object from which to subtract\n"
-"the subtractor Gerber object."
-msgstr ""
-"Gerber object from which to subtract\n"
-"the subtractor Gerber object."
-
-#: flatcamTools/ToolSub.py:91 flatcamTools/ToolSub.py:146
-msgid "Subtractor"
-msgstr "Subtractor"
-
-#: flatcamTools/ToolSub.py:93
-msgid ""
-"Gerber object that will be subtracted\n"
-"from the target Gerber object."
-msgstr ""
-"Gerber object that will be subtracted\n"
-"from the target Gerber object."
-
-#: flatcamTools/ToolSub.py:100
-msgid "Subtract Gerber"
-msgstr "Subtract Gerber"
-
-#: flatcamTools/ToolSub.py:102
-msgid ""
-"Will remove the area occupied by the subtractor\n"
-"Gerber from the Target Gerber.\n"
-"Can be used to remove the overlapping silkscreen\n"
-"over the soldermask."
-msgstr ""
-"Will remove the area occupied by the subtractor\n"
-"Gerber from the Target Gerber.\n"
-"Can be used to remove the overlapping silkscreen\n"
-"over the soldermask."
-
-#: flatcamTools/ToolSub.py:120
-msgid "Geometry Objects"
-msgstr "Geometry Objects"
-
-#: flatcamTools/ToolSub.py:133
-msgid ""
-"Geometry object from which to subtract\n"
-"the subtractor Geometry object."
-msgstr ""
-"Geometry object from which to subtract\n"
-"the subtractor Geometry object."
-
-#: flatcamTools/ToolSub.py:148
-msgid ""
-"Geometry object that will be subtracted\n"
-"from the target Geometry object."
-msgstr ""
-"Geometry object that will be subtracted\n"
-"from the target Geometry object."
-
-#: flatcamTools/ToolSub.py:156
-msgid ""
-"Checking this will close the paths cut by the Geometry subtractor object."
-msgstr ""
-"Checking this will close the paths cut by the Geometry subtractor object."
-
-#: flatcamTools/ToolSub.py:159
-msgid "Subtract Geometry"
-msgstr "Subtract Geometry"
-
-#: flatcamTools/ToolSub.py:161
-msgid ""
-"Will remove the area occupied by the subtractor\n"
-"Geometry from the Target Geometry."
-msgstr ""
-"Will remove the area occupied by the subtractor\n"
-"Geometry from the Target Geometry."
-
-#: flatcamTools/ToolSub.py:263
-msgid "Sub Tool"
-msgstr "Sub Tool"
-
-#: flatcamTools/ToolSub.py:284 flatcamTools/ToolSub.py:489
-msgid "No Target object loaded."
-msgstr "No Target object loaded."
-
-#: flatcamTools/ToolSub.py:287
-msgid "Loading geometry from Gerber objects."
-msgstr "Loading geometry from Gerber objects."
-
-#: flatcamTools/ToolSub.py:299 flatcamTools/ToolSub.py:504
-msgid "No Subtractor object loaded."
-msgstr "No Subtractor object loaded."
-
-#: flatcamTools/ToolSub.py:331
-msgid "Processing geometry from Subtractor Gerber object."
-msgstr "Processing geometry from Subtractor Gerber object."
-
-#: flatcamTools/ToolSub.py:352
-msgid "Parsing geometry for aperture"
-msgstr "Parsing geometry for aperture"
-
-#: flatcamTools/ToolSub.py:413
-msgid "Finished parsing geometry for aperture"
-msgstr "Finished parsing geometry for aperture"
-
-#: flatcamTools/ToolSub.py:458 flatcamTools/ToolSub.py:661
-msgid "Generating new object ..."
-msgstr "Generating new object ..."
-
-#: flatcamTools/ToolSub.py:462 flatcamTools/ToolSub.py:665
-#: flatcamTools/ToolSub.py:746
-msgid "Generating new object failed."
-msgstr "Generating new object failed."
-
-#: flatcamTools/ToolSub.py:467 flatcamTools/ToolSub.py:671
-msgid "Created"
-msgstr "Created"
-
-#: flatcamTools/ToolSub.py:518
-msgid "Currently, the Subtractor geometry cannot be of type Multigeo."
-msgstr "Currently, the Subtractor geometry cannot be of type Multigeo."
-
-#: flatcamTools/ToolSub.py:563
-msgid "Parsing solid_geometry ..."
-msgstr "Parsing solid_geometry ..."
-
-#: flatcamTools/ToolSub.py:565
-msgid "Parsing solid_geometry for tool"
-msgstr "Parsing solid_geometry for tool"
-
-#: flatcamTools/ToolTransform.py:23
-msgid "Object Transform"
-msgstr "Object Transform"
-
-#: flatcamTools/ToolTransform.py:78
-msgid ""
-"Rotate the selected object(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected objects."
-msgstr ""
-"Rotate the selected object(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected objects."
-
-#: flatcamTools/ToolTransform.py:99 flatcamTools/ToolTransform.py:120
-msgid ""
-"Angle for Skew action, in degrees.\n"
-"Float number between -360 and 360."
-msgstr ""
-"Angle for Skew action, in degrees.\n"
-"Float number between -360 and 360."
-
-#: flatcamTools/ToolTransform.py:109 flatcamTools/ToolTransform.py:130
-msgid ""
-"Skew/shear the selected object(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected objects."
-msgstr ""
-"Skew/shear the selected object(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected objects."
-
-#: flatcamTools/ToolTransform.py:159 flatcamTools/ToolTransform.py:179
-msgid ""
-"Scale the selected object(s).\n"
-"The point of reference depends on \n"
-"the Scale reference checkbox state."
-msgstr ""
-"Scale the selected object(s).\n"
-"The point of reference depends on \n"
-"the Scale reference checkbox state."
-
-#: flatcamTools/ToolTransform.py:228 flatcamTools/ToolTransform.py:248
-msgid ""
-"Offset the selected object(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected objects.\n"
-msgstr ""
-"Offset the selected object(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected objects.\n"
-
-#: flatcamTools/ToolTransform.py:268 flatcamTools/ToolTransform.py:273
-msgid "Flip the selected object(s) over the X axis."
-msgstr "Flip the selected object(s) over the X axis."
-
-#: flatcamTools/ToolTransform.py:297
-msgid "Ref. Point"
-msgstr "Ref. Point"
-
-#: flatcamTools/ToolTransform.py:348
-msgid ""
-"Create the buffer effect on each geometry,\n"
-"element from the selected object, using the distance."
-msgstr ""
-"Create the buffer effect on each geometry,\n"
-"element from the selected object, using the distance."
-
-#: flatcamTools/ToolTransform.py:374
-msgid ""
-"Create the buffer effect on each geometry,\n"
-"element from the selected object, using the factor."
-msgstr ""
-"Create the buffer effect on each geometry,\n"
-"element from the selected object, using the factor."
-
-#: flatcamTools/ToolTransform.py:479
-msgid "Buffer D"
-msgstr "Buffer D"
-
-#: flatcamTools/ToolTransform.py:480
-msgid "Buffer F"
-msgstr "Buffer F"
-
-#: flatcamTools/ToolTransform.py:557
-msgid "Rotate transformation can not be done for a value of 0."
-msgstr "Rotate transformation can not be done for a value of 0."
-
-#: flatcamTools/ToolTransform.py:596 flatcamTools/ToolTransform.py:619
-msgid "Scale transformation can not be done for a factor of 0 or 1."
-msgstr "Scale transformation can not be done for a factor of 0 or 1."
-
-#: flatcamTools/ToolTransform.py:634 flatcamTools/ToolTransform.py:644
-msgid "Offset transformation can not be done for a value of 0."
-msgstr "Offset transformation can not be done for a value of 0."
-
-#: flatcamTools/ToolTransform.py:676
-msgid "No object selected. Please Select an object to rotate!"
-msgstr "No object selected. Please Select an object to rotate!"
-
-#: flatcamTools/ToolTransform.py:702
-msgid "CNCJob objects can't be rotated."
-msgstr "CNCJob objects can't be rotated."
-
-#: flatcamTools/ToolTransform.py:710
-msgid "Rotate done"
-msgstr "Rotate done"
-
-#: flatcamTools/ToolTransform.py:713 flatcamTools/ToolTransform.py:783
-#: flatcamTools/ToolTransform.py:833 flatcamTools/ToolTransform.py:887
-#: flatcamTools/ToolTransform.py:917 flatcamTools/ToolTransform.py:953
-msgid "Due of"
-msgstr "Due of"
-
-#: flatcamTools/ToolTransform.py:713 flatcamTools/ToolTransform.py:783
-#: flatcamTools/ToolTransform.py:833 flatcamTools/ToolTransform.py:887
-#: flatcamTools/ToolTransform.py:917 flatcamTools/ToolTransform.py:953
-msgid "action was not executed."
-msgstr "action was not executed."
-
-#: flatcamTools/ToolTransform.py:725
-msgid "No object selected. Please Select an object to flip"
-msgstr "No object selected. Please Select an object to flip"
-
-#: flatcamTools/ToolTransform.py:758
-msgid "CNCJob objects can't be mirrored/flipped."
-msgstr "CNCJob objects can't be mirrored/flipped."
-
-#: flatcamTools/ToolTransform.py:793
-msgid "Skew transformation can not be done for 0, 90 and 180 degrees."
-msgstr "Skew transformation can not be done for 0, 90 and 180 degrees."
-
-#: flatcamTools/ToolTransform.py:798
-msgid "No object selected. Please Select an object to shear/skew!"
-msgstr "No object selected. Please Select an object to shear/skew!"
-
-#: flatcamTools/ToolTransform.py:818
-msgid "CNCJob objects can't be skewed."
-msgstr "CNCJob objects can't be skewed."
-
-#: flatcamTools/ToolTransform.py:830
-msgid "Skew on the"
-msgstr "Skew on the"
-
-#: flatcamTools/ToolTransform.py:830 flatcamTools/ToolTransform.py:884
-#: flatcamTools/ToolTransform.py:914
-msgid "axis done"
-msgstr "axis done"
-
-#: flatcamTools/ToolTransform.py:844
-msgid "No object selected. Please Select an object to scale!"
-msgstr "No object selected. Please Select an object to scale!"
-
-#: flatcamTools/ToolTransform.py:875
-msgid "CNCJob objects can't be scaled."
-msgstr "CNCJob objects can't be scaled."
-
-#: flatcamTools/ToolTransform.py:884
-msgid "Scale on the"
-msgstr "Scale on the"
-
-#: flatcamTools/ToolTransform.py:894
-msgid "No object selected. Please Select an object to offset!"
-msgstr "No object selected. Please Select an object to offset!"
-
-#: flatcamTools/ToolTransform.py:901
-msgid "CNCJob objects can't be offset."
-msgstr "CNCJob objects can't be offset."
-
-#: flatcamTools/ToolTransform.py:914
-msgid "Offset on the"
-msgstr "Offset on the"
-
-#: flatcamTools/ToolTransform.py:924
-msgid "No object selected. Please Select an object to buffer!"
-msgstr "No object selected. Please Select an object to buffer!"
-
-#: flatcamTools/ToolTransform.py:927
-msgid "Applying Buffer"
-msgstr "Applying Buffer"
-
-#: flatcamTools/ToolTransform.py:931
-msgid "CNCJob objects can't be buffered."
-msgstr "CNCJob objects can't be buffered."
-
-#: flatcamTools/ToolTransform.py:948
-msgid "Buffer done"
-msgstr "Buffer done"
-
#: tclCommands/TclCommandBbox.py:75 tclCommands/TclCommandNregions.py:74
msgid "Expected GerberObject or GeometryObject, got"
msgstr "Expected GerberObject or GeometryObject, got"
@@ -18285,7 +18163,7 @@ msgstr "Expected a list of objects names separated by comma. Got"
msgid "TclCommand Bounds done."
msgstr "TclCommand Bounds done."
-#: tclCommands/TclCommandCopperClear.py:281 tclCommands/TclCommandPaint.py:277
+#: tclCommands/TclCommandCopperClear.py:281 tclCommands/TclCommandPaint.py:283
#: tclCommands/TclCommandScale.py:81
msgid "Could not retrieve box object"
msgstr "Could not retrieve box object"
@@ -18305,11 +18183,11 @@ msgid "Gaps value can be only one of: 'lr', 'tb', '2lr', '2tb', 4 or 8."
msgstr "Gaps value can be only one of: 'lr', 'tb', '2lr', '2tb', 4 or 8."
#: tclCommands/TclCommandGeoCutout.py:301
-#: tclCommands/TclCommandGeoCutout.py:359
+#: tclCommands/TclCommandGeoCutout.py:356
msgid "Any-form Cutout operation finished."
msgstr "Any-form Cutout operation finished."
-#: tclCommands/TclCommandGeoCutout.py:365
+#: tclCommands/TclCommandGeoCutout.py:362
msgid "Cancelled. Object type is not supported."
msgstr "Cancelled. Object type is not supported."
@@ -18325,15 +18203,15 @@ msgstr "Type help for usage."
msgid "Example: help open_gerber"
msgstr "Example: help open_gerber"
-#: tclCommands/TclCommandPaint.py:249
-msgid "Expected -x and -y ."
-msgstr "Expected -x and -y ."
+#: tclCommands/TclCommandPaint.py:250 tclCommands/TclCommandPaint.py:256
+msgid "Expected a tuple value like -single 3.2,0.1."
+msgstr "Expected a tuple value like -single 3.2,0.1."
-#: tclCommands/TclCommandPaint.py:270
+#: tclCommands/TclCommandPaint.py:276
msgid "Expected -box ."
msgstr "Expected -box ."
-#: tclCommands/TclCommandPaint.py:291
+#: tclCommands/TclCommandPaint.py:297
msgid ""
"None of the following args: 'box', 'single', 'all' were used.\n"
"Paint failed."
@@ -18357,7 +18235,7 @@ msgstr "Expected -x -y ."
msgid "Expected a pair of (x, y) coordinates. Got"
msgstr "Expected a pair of (x, y) coordinates. Got"
-#: tclCommands/TclCommandSetOrigin.py:102
+#: tclCommands/TclCommandSetOrigin.py:101
msgid "Origin set by offsetting all loaded objects with "
msgstr "Origin set by offsetting all loaded objects with "
@@ -18365,6 +18243,64 @@ msgstr "Origin set by offsetting all loaded objects with "
msgid "No Geometry name in args. Provide a name and try again."
msgstr "No Geometry name in args. Provide a name and try again."
+#~ msgid "./assets/icon.png"
+#~ msgstr "./assets/icon.png"
+
+#~ msgid "New Blank Geometry"
+#~ msgstr "New Blank Geometry"
+
+#~ msgid "New Blank Gerber"
+#~ msgstr "New Blank Gerber"
+
+#~ msgid "New Blank Excellon"
+#~ msgstr "New Blank Excellon"
+
+#~ msgid ""
+#~ "Relative measurement.\n"
+#~ "Reference is last click position"
+#~ msgstr ""
+#~ "Relative measurement.\n"
+#~ "Reference is last click position"
+
+#~| msgid "Clearance"
+#~ msgid "Clear areas"
+#~ msgstr "Clear areas"
+
+#~ msgid "Apply Theme"
+#~ msgstr "Apply Theme"
+
+#~ msgid ""
+#~ "Select a theme for FlatCAM.\n"
+#~ "It will theme the plot area.\n"
+#~ "The application will restart after change."
+#~ msgstr ""
+#~ "Select a theme for FlatCAM.\n"
+#~ "It will theme the plot area.\n"
+#~ "The application will restart after change."
+
+#~ msgid "Film Object"
+#~ msgstr "Film Object"
+
+#~ msgid "Object for which to create the film."
+#~ msgstr "Object for which to create the film."
+
+#~ msgid "Box Object"
+#~ msgstr "Box Object"
+
+#~ msgid ""
+#~ "The actual object that is used as container for the\n"
+#~ " selected object for which we create the film.\n"
+#~ "Usually it is the PCB outline but it can be also the\n"
+#~ "same object for which the film is created."
+#~ msgstr ""
+#~ "The actual object that is used as container for the\n"
+#~ " selected object for which we create the film.\n"
+#~ "Usually it is the PCB outline but it can be also the\n"
+#~ "same object for which the film is created."
+
+#~ msgid "Expected -x and -y ."
+#~ msgstr "Expected -x and -y ."
+
#~ msgid "Could not load factory defaults file."
#~ msgstr "Could not load factory defaults file."
@@ -19174,9 +19110,6 @@ msgstr "No Geometry name in args. Provide a name and try again."
#~ "#\n"
#~ "\n"
-#~ msgid "Program Author"
-#~ msgstr "Program Author"
-
#~ msgid "Export G-Code ..."
#~ msgstr "Export G-Code ..."
diff --git a/locale/es/LC_MESSAGES/strings.mo b/locale/es/LC_MESSAGES/strings.mo
index 4645e9ae..279a64a4 100644
Binary files a/locale/es/LC_MESSAGES/strings.mo and b/locale/es/LC_MESSAGES/strings.mo differ
diff --git a/locale/es/LC_MESSAGES/strings.po b/locale/es/LC_MESSAGES/strings.po
index b44e0a31..94e91908 100644
--- a/locale/es/LC_MESSAGES/strings.po
+++ b/locale/es/LC_MESSAGES/strings.po
@@ -5,8 +5,8 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
-"POT-Creation-Date: 2020-05-03 16:02+0300\n"
-"PO-Revision-Date: 2020-05-03 16:04+0300\n"
+"POT-Creation-Date: 2020-05-19 02:25+0300\n"
+"PO-Revision-Date: 2020-05-19 02:25+0300\n"
"Last-Translator: Marius Stanciu - Google Translate\n"
"Language-Team: \n"
"Language: es\n"
@@ -14,7 +14,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.2.4\n"
+"X-Generator: Poedit 2.3.1\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Poedit-Basepath: ../../..\n"
"X-Poedit-SearchPath-0: .\n"
@@ -22,17 +22,16880 @@ msgstr ""
"X-Poedit-SearchPathExcluded-1: doc\n"
"X-Poedit-SearchPathExcluded-2: tests\n"
-#: FlatCAMApp.py:491
+#: AppDatabase.py:86
+msgid "Add Geometry Tool in DB"
+msgstr "Agregar herramienta de geo. en DB"
+
+#: AppDatabase.py:88 AppDatabase.py:1643
+msgid ""
+"Add a new tool in the Tools Database.\n"
+"It will be used in the Geometry UI.\n"
+"You can edit it after it is added."
+msgstr ""
+"Agregue una nueva herramienta en la Base de datos de herramientas.\n"
+"Se utilizará en la interfaz de usuario de geometría.\n"
+"Puede editarlo después de agregarlo."
+
+#: AppDatabase.py:102 AppDatabase.py:1657
+msgid "Delete Tool from DB"
+msgstr "Eliminar herram. de la BD"
+
+#: AppDatabase.py:104 AppDatabase.py:1659
+msgid "Remove a selection of tools in the Tools Database."
+msgstr "Eliminar una selección de herramientas en la DB de herramientas."
+
+#: AppDatabase.py:108 AppDatabase.py:1663
+msgid "Export DB"
+msgstr "Exportar DB"
+
+#: AppDatabase.py:110 AppDatabase.py:1665
+msgid "Save the Tools Database to a custom text file."
+msgstr ""
+"Guarde la base de datos de herramientas en un archivo de texto personalizado."
+
+#: AppDatabase.py:114 AppDatabase.py:1669
+msgid "Import DB"
+msgstr "Importar DB"
+
+#: AppDatabase.py:116 AppDatabase.py:1671
+msgid "Load the Tools Database information's from a custom text file."
+msgstr ""
+"Cargue la información de la DB de herramientas desde un archivo de texto "
+"personalizado."
+
+#: AppDatabase.py:120 AppDatabase.py:1681
+msgid "Add Tool from Tools DB"
+msgstr "Agregar herramienta desde DB de herramientas"
+
+#: AppDatabase.py:122 AppDatabase.py:1683
+msgid ""
+"Add a new tool in the Tools Table of the\n"
+"active Geometry object after selecting a tool\n"
+"in the Tools Database."
+msgstr ""
+"Agregue una nueva herramienta en la Tabla de herramientas del\n"
+"objeto de geometría activo después de seleccionar una herramienta\n"
+"en la base de datos de herramientas."
+
+#: AppDatabase.py:128 AppDatabase.py:1689 AppGUI/MainGUI.py:1347
+#: AppGUI/preferences/PreferencesUIManager.py:942 App_Main.py:2203
+#: App_Main.py:3054 App_Main.py:3928 App_Main.py:4279 App_Main.py:6338
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: AppDatabase.py:158 AppDatabase.py:833 AppDatabase.py:1087
+msgid "Tool Name"
+msgstr "Nombre de Herram"
+
+#: AppDatabase.py:159 AppDatabase.py:835 AppDatabase.py:1100
+#: AppEditors/FlatCAMExcEditor.py:1604 AppGUI/ObjectUI.py:1447
+#: AppGUI/ObjectUI.py:1685
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:132
+#: AppTools/ToolNCC.py:278 AppTools/ToolNCC.py:287 AppTools/ToolPaint.py:260
+msgid "Tool Dia"
+msgstr "Diá. de Herram"
+
+#: AppDatabase.py:160 AppDatabase.py:837 AppDatabase.py:1281
+#: AppGUI/ObjectUI.py:1660
+msgid "Tool Offset"
+msgstr "Offset de Herram"
+
+#: AppDatabase.py:161 AppDatabase.py:839 AppDatabase.py:1298
+msgid "Custom Offset"
+msgstr "Desplazamiento personalizado"
+
+#: AppDatabase.py:162 AppDatabase.py:841 AppDatabase.py:1265
+#: AppGUI/ObjectUI.py:309
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:67
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:53
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:62
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:72 AppTools/ToolNCC.py:213
+#: AppTools/ToolNCC.py:227 AppTools/ToolPaint.py:195
+msgid "Tool Type"
+msgstr "Tipo de herram"
+
+#: AppDatabase.py:163 AppDatabase.py:843 AppDatabase.py:1113
+msgid "Tool Shape"
+msgstr "Forma de la herram"
+
+#: AppDatabase.py:164 AppDatabase.py:846 AppDatabase.py:1129
+#: AppGUI/ObjectUI.py:350 AppGUI/ObjectUI.py:900 AppGUI/ObjectUI.py:1805
+#: AppGUI/ObjectUI.py:2466
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:93
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:48
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:107
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:78
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:58
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:105
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:113
+#: AppTools/ToolCalculators.py:114 AppTools/ToolCutOut.py:138
+#: AppTools/ToolNCC.py:260 AppTools/ToolNCC.py:268 AppTools/ToolPaint.py:242
+msgid "Cut Z"
+msgstr "Corte Z"
+
+#: AppDatabase.py:165 AppDatabase.py:848 AppDatabase.py:1143
+msgid "MultiDepth"
+msgstr "Profund. Múlti"
+
+#: AppDatabase.py:166 AppDatabase.py:850 AppDatabase.py:1156
+msgid "DPP"
+msgstr "PPP"
+
+#: AppDatabase.py:167 AppDatabase.py:852 AppDatabase.py:1312
+msgid "V-Dia"
+msgstr "V-Dia"
+
+#: AppDatabase.py:168 AppDatabase.py:854 AppDatabase.py:1326
+msgid "V-Angle"
+msgstr "V-Ángulo"
+
+#: AppDatabase.py:169 AppDatabase.py:856 AppDatabase.py:1170
+#: AppGUI/ObjectUI.py:946 AppGUI/ObjectUI.py:1852
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:134
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:101
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:61
+#: AppObjects/FlatCAMExcellon.py:1396 AppObjects/FlatCAMGeometry.py:1660
+#: AppTools/ToolCalibration.py:74
+msgid "Travel Z"
+msgstr "Viaje Z"
+
+#: AppDatabase.py:170 AppDatabase.py:858
+msgid "FR"
+msgstr "FR"
+
+#: AppDatabase.py:171 AppDatabase.py:860
+msgid "FR Z"
+msgstr "FR Z"
+
+#: AppDatabase.py:172 AppDatabase.py:862 AppDatabase.py:1340
+msgid "FR Rapids"
+msgstr "Avance rápido"
+
+#: AppDatabase.py:173 AppDatabase.py:864 AppDatabase.py:1213
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:222
+msgid "Spindle Speed"
+msgstr "Eje de velocidad"
+
+#: AppDatabase.py:174 AppDatabase.py:866 AppDatabase.py:1228
+#: AppGUI/ObjectUI.py:1064 AppGUI/ObjectUI.py:1959
+msgid "Dwell"
+msgstr "Habitar"
+
+#: AppDatabase.py:175 AppDatabase.py:868 AppDatabase.py:1241
+msgid "Dwelltime"
+msgstr "Tiempo de permanencia"
+
+#: AppDatabase.py:176 AppDatabase.py:870 AppGUI/ObjectUI.py:2116
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:257
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:254
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:237
+#: AppTools/ToolSolderPaste.py:335
+msgid "Preprocessor"
+msgstr "Postprocesador"
+
+#: AppDatabase.py:177 AppDatabase.py:872 AppDatabase.py:1356
+msgid "ExtraCut"
+msgstr "Corte extra"
+
+#: AppDatabase.py:178 AppDatabase.py:874 AppDatabase.py:1371
+msgid "E-Cut Length"
+msgstr "Longitud de Corte extra"
+
+#: AppDatabase.py:179 AppDatabase.py:876
+msgid "Toolchange"
+msgstr "Cambio de herram"
+
+#: AppDatabase.py:180 AppDatabase.py:878
+msgid "Toolchange XY"
+msgstr "Cambio de herra X, Y"
+
+#: AppDatabase.py:181 AppDatabase.py:880
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:160
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:131
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:98
+#: AppTools/ToolCalibration.py:111
+msgid "Toolchange Z"
+msgstr "Cambio de herramienta Z"
+
+#: AppDatabase.py:182 AppDatabase.py:882 AppGUI/ObjectUI.py:1193
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:69
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:54
+msgid "Start Z"
+msgstr "Comience Z"
+
+#: AppDatabase.py:183 AppDatabase.py:885
+msgid "End Z"
+msgstr "Fin Z"
+
+#: AppDatabase.py:187
+msgid "Tool Index."
+msgstr "Índice de herramientas."
+
+#: AppDatabase.py:189 AppDatabase.py:1089
+msgid ""
+"Tool name.\n"
+"This is not used in the app, it's function\n"
+"is to serve as a note for the user."
+msgstr ""
+"Nombre de la herramienta.\n"
+"Esto no se usa en la aplicación, es función\n"
+"es servir como una nota para el usuario."
+
+#: AppDatabase.py:193 AppDatabase.py:1102
+msgid "Tool Diameter."
+msgstr "Diá. de Herram."
+
+#: AppDatabase.py:195 AppDatabase.py:1283
+msgid ""
+"Tool Offset.\n"
+"Can be of a few types:\n"
+"Path = zero offset\n"
+"In = offset inside by half of tool diameter\n"
+"Out = offset outside by half of tool diameter\n"
+"Custom = custom offset using the Custom Offset value"
+msgstr ""
+"Desplazamiento de herramienta.\n"
+"Puede ser de algunos tipos:\n"
+"Ruta = desplazamiento cero\n"
+"In = desplazamiento interior por la mitad del diámetro de la herramienta\n"
+"Out = desplazamiento exterior por la mitad del diámetro de la herramienta\n"
+"Personalizado = desplazamiento personalizado utilizando el valor de "
+"desplazamiento personalizado"
+
+#: AppDatabase.py:202 AppDatabase.py:1300
+msgid ""
+"Custom Offset.\n"
+"A value to be used as offset from the current path."
+msgstr ""
+"Desplazamiento personalizado.\n"
+"Un valor que se utilizará como desplazamiento de la ruta actual."
+
+#: AppDatabase.py:205 AppDatabase.py:1267
+msgid ""
+"Tool Type.\n"
+"Can be:\n"
+"Iso = isolation cut\n"
+"Rough = rough cut, low feedrate, multiple passes\n"
+"Finish = finishing cut, high feedrate"
+msgstr ""
+"Tipo de herramienta\n"
+"Puede ser:\n"
+"Iso = corte de aislamiento\n"
+"Áspero = corte rugoso, baja velocidad de avance, múltiples pasadas\n"
+"Acabado = corte de acabado, alto avance"
+
+#: AppDatabase.py:211 AppDatabase.py:1115
+msgid ""
+"Tool Shape. \n"
+"Can be:\n"
+"C1 ... C4 = circular tool with x flutes\n"
+"B = ball tip milling tool\n"
+"V = v-shape milling tool"
+msgstr ""
+"Forma de herramienta\n"
+"Puede ser:\n"
+"C1 ... C4 = herramienta circular con x flautas\n"
+"B = herramienta de fresado de punta esférica\n"
+"V = herramienta de fresado en forma de V"
+
+#: AppDatabase.py:217 AppDatabase.py:1131
+msgid ""
+"Cutting Depth.\n"
+"The depth at which to cut into material."
+msgstr ""
+"Profundidad de corte.\n"
+"La profundidad a la cual cortar en material."
+
+#: AppDatabase.py:220 AppDatabase.py:1145
+msgid ""
+"Multi Depth.\n"
+"Selecting this will allow cutting in multiple passes,\n"
+"each pass adding a DPP parameter depth."
+msgstr ""
+"Multi Profundidad.\n"
+"Seleccionar esto permitirá cortar en múltiples pasadas,\n"
+"cada pasada agrega una profundidad de parámetro PPP."
+
+#: AppDatabase.py:224 AppDatabase.py:1158
+msgid ""
+"DPP. Depth per Pass.\n"
+"The value used to cut into material on each pass."
+msgstr ""
+"PPP. Profundidad por pase.\n"
+"El valor utilizado para cortar en material en cada pasada."
+
+#: AppDatabase.py:227 AppDatabase.py:1314
+msgid ""
+"V-Dia.\n"
+"Diameter of the tip for V-Shape Tools."
+msgstr ""
+"V-Dia.\n"
+"Diámetro de la punta para herramientas en forma de V."
+
+#: AppDatabase.py:230 AppDatabase.py:1328
+msgid ""
+"V-Agle.\n"
+"Angle at the tip for the V-Shape Tools."
+msgstr ""
+"Ángulo en V.\n"
+"Ángulo en la punta para las herramientas en forma de V."
+
+#: AppDatabase.py:233 AppDatabase.py:1172
+msgid ""
+"Clearance Height.\n"
+"Height at which the milling bit will travel between cuts,\n"
+"above the surface of the material, avoiding all fixtures."
+msgstr ""
+"Altura libre.\n"
+"Altura a la que viajará la broca entre cortes,\n"
+"sobre la superficie del material, evitando todos los accesorios."
+
+#: AppDatabase.py:237
+msgid ""
+"FR. Feedrate\n"
+"The speed on XY plane used while cutting into material."
+msgstr ""
+"FR. Avance\n"
+"La velocidad en el plano XY utilizada al cortar material."
+
+#: AppDatabase.py:240
+msgid ""
+"FR Z. Feedrate Z\n"
+"The speed on Z plane."
+msgstr ""
+"FR Z. Avance Z\n"
+"La velocidad en el plano Z."
+
+#: AppDatabase.py:243 AppDatabase.py:1342
+msgid ""
+"FR Rapids. Feedrate Rapids\n"
+"Speed used while moving as fast as possible.\n"
+"This is used only by some devices that can't use\n"
+"the G0 g-code command. Mostly 3D printers."
+msgstr ""
+"FR Rapids. Avance rápido\n"
+"Velocidad utilizada mientras se mueve lo más rápido posible.\n"
+"Esto solo lo usan algunos dispositivos que no pueden usar\n"
+"el comando G0 g-code. Mayormente impresoras 3D."
+
+#: AppDatabase.py:248 AppDatabase.py:1215
+msgid ""
+"Spindle Speed.\n"
+"If it's left empty it will not be used.\n"
+"The speed of the spindle in RPM."
+msgstr ""
+"Velocidad del motor.\n"
+"Si se deja vacío, no se usará.\n"
+"La velocidad del husillo en RPM."
+
+#: AppDatabase.py:252 AppDatabase.py:1230
+msgid ""
+"Dwell.\n"
+"Check this if a delay is needed to allow\n"
+"the spindle motor to reach it's set speed."
+msgstr ""
+"Habitar.\n"
+"Marque esto si se necesita un retraso para permitir\n"
+"el motor del husillo para alcanzar su velocidad establecida."
+
+#: AppDatabase.py:256 AppDatabase.py:1243
+msgid ""
+"Dwell Time.\n"
+"A delay used to allow the motor spindle reach it's set speed."
+msgstr ""
+"Tiempo de permanencia.\n"
+"Un retraso utilizado para permitir que el eje del motor alcance su velocidad "
+"establecida."
+
+#: AppDatabase.py:259
+msgid ""
+"Preprocessor.\n"
+"A selection of files that will alter the generated G-code\n"
+"to fit for a number of use cases."
+msgstr ""
+"Preprocesador\n"
+"Una selección de archivos que alterarán el código G generado\n"
+"para adaptarse a una serie de casos de uso."
+
+#: AppDatabase.py:263 AppDatabase.py:1358
+msgid ""
+"Extra Cut.\n"
+"If checked, after a isolation is finished an extra cut\n"
+"will be added where the start and end of isolation meet\n"
+"such as that this point is covered by this extra cut to\n"
+"ensure a complete isolation."
+msgstr ""
+"Corte Extra\n"
+"Si está marcada, después de terminar un aislamiento, un corte adicional\n"
+"se agregará donde se encuentran el inicio y el final del aislamiento\n"
+"como que este punto está cubierto por este corte adicional para\n"
+"Garantizar un aislamiento completo."
+
+#: AppDatabase.py:269 AppDatabase.py:1373
+msgid ""
+"Extra Cut length.\n"
+"If checked, after a isolation is finished an extra cut\n"
+"will be added where the start and end of isolation meet\n"
+"such as that this point is covered by this extra cut to\n"
+"ensure a complete isolation. This is the length of\n"
+"the extra cut."
+msgstr ""
+"Longitud de corte extra.\n"
+"Si está marcada, después de terminar un aislamiento, un corte adicional\n"
+"se agregará donde se encuentran el inicio y el final del aislamiento\n"
+"como que este punto está cubierto por este corte adicional para\n"
+"Garantizar un aislamiento completo. Esta es la longitud de\n"
+"El corte extra."
+
+#: AppDatabase.py:276
+msgid ""
+"Toolchange.\n"
+"It will create a toolchange event.\n"
+"The kind of toolchange is determined by\n"
+"the preprocessor file."
+msgstr ""
+"Cambio de herramienta.\n"
+"Creará un evento de cambio de herramienta.\n"
+"El tipo de cambio de herramienta está determinado por\n"
+"El archivo del preprocesador."
+
+#: AppDatabase.py:281
+msgid ""
+"Toolchange XY.\n"
+"A set of coordinates in the format (x, y).\n"
+"Will determine the cartesian position of the point\n"
+"where the tool change event take place."
+msgstr ""
+"Cambio de herramienta XY.\n"
+"Un conjunto de coordenadas en el formato (x, y).\n"
+"Determinará la posición cartesiana del punto.\n"
+"donde tiene lugar el evento de cambio de herramienta."
+
+#: AppDatabase.py:286
+msgid ""
+"Toolchange Z.\n"
+"The position on Z plane where the tool change event take place."
+msgstr ""
+"Cambio de herramientas Z.\n"
+"La posición en el plano Z donde tiene lugar el evento de cambio de "
+"herramienta."
+
+#: AppDatabase.py:289
+msgid ""
+"Start Z.\n"
+"If it's left empty it will not be used.\n"
+"A position on Z plane to move immediately after job start."
+msgstr ""
+"Z inicio.\n"
+"Si se deja vacío, no se usará.\n"
+"Una posición en el plano Z para moverse inmediatamente después del inicio "
+"del trabajo."
+
+#: AppDatabase.py:293
+msgid ""
+"End Z.\n"
+"A position on Z plane to move immediately after job stop."
+msgstr ""
+"Z final.\n"
+"Una posición en el plano Z para moverse inmediatamente después de la "
+"detención del trabajo."
+
+#: AppDatabase.py:305 AppDatabase.py:682 AppDatabase.py:716 AppDatabase.py:1898
+#: AppDatabase.py:2144 AppDatabase.py:2178
+msgid "Could not load Tools DB file."
+msgstr "No se pudo cargar el archivo de herramientas DB."
+
+#: AppDatabase.py:313 AppDatabase.py:724 AppDatabase.py:1906
+#: AppDatabase.py:2186
+msgid "Failed to parse Tools DB file."
+msgstr "Error al analizar el archivo DB de Herramientas."
+
+#: AppDatabase.py:316 AppDatabase.py:727 AppDatabase.py:1909
+#: AppDatabase.py:2189
+msgid "Loaded FlatCAM Tools DB from"
+msgstr "Base de datos de herramientas FlatCAM cargada de"
+
+#: AppDatabase.py:322 AppDatabase.py:1823
+msgid "Add to DB"
+msgstr "Añadir a DB"
+
+#: AppDatabase.py:324 AppDatabase.py:1826
+msgid "Copy from DB"
+msgstr "Copiar de DB"
+
+#: AppDatabase.py:326 AppDatabase.py:1829
+msgid "Delete from DB"
+msgstr "Eliminar de la DB"
+
+#: AppDatabase.py:603 AppDatabase.py:2044
+msgid "Tool added to DB."
+msgstr "Herramienta agregada a la base de datos."
+
+#: AppDatabase.py:624 AppDatabase.py:2077
+msgid "Tool copied from Tools DB."
+msgstr "Herramienta copiada de Herramientas DB."
+
+#: AppDatabase.py:642 AppDatabase.py:2104
+msgid "Tool removed from Tools DB."
+msgstr "Herramienta eliminada de Herramientas DB."
+
+#: AppDatabase.py:653 AppDatabase.py:2115
+msgid "Export Tools Database"
+msgstr "Exportar la DB de herramientas"
+
+#: AppDatabase.py:656 AppDatabase.py:2118
+msgid "Tools_Database"
+msgstr "DB de herramientasram"
+
+#: AppDatabase.py:663 AppDatabase.py:709 AppDatabase.py:2125
+#: AppDatabase.py:2171 AppEditors/FlatCAMExcEditor.py:1023
+#: AppEditors/FlatCAMExcEditor.py:1091 AppEditors/FlatCAMTextEditor.py:223
+#: AppGUI/MainGUI.py:2690 AppGUI/MainGUI.py:2906 AppGUI/MainGUI.py:3121
+#: AppObjects/ObjectCollection.py:126 AppTools/ToolFilm.py:739
+#: AppTools/ToolFilm.py:885 AppTools/ToolImage.py:247 AppTools/ToolMove.py:269
+#: AppTools/ToolPcbWizard.py:301 AppTools/ToolPcbWizard.py:324
+#: AppTools/ToolQRCode.py:791 AppTools/ToolQRCode.py:838 App_Main.py:1694
+#: App_Main.py:2430 App_Main.py:2465 App_Main.py:2512 App_Main.py:3991
+#: App_Main.py:6529 App_Main.py:6566 App_Main.py:6608 App_Main.py:6637
+#: App_Main.py:6678 App_Main.py:6703 App_Main.py:6755 App_Main.py:6790
+#: App_Main.py:6835 App_Main.py:6876 App_Main.py:6917 App_Main.py:6958
+#: App_Main.py:6999 App_Main.py:7043 App_Main.py:7099 App_Main.py:7131
+#: App_Main.py:7163 App_Main.py:7394 App_Main.py:7432 App_Main.py:7475
+#: App_Main.py:7552 App_Main.py:7607 Bookmark.py:300 Bookmark.py:342
+msgid "Cancelled."
+msgstr "Cancelado."
+
+#: AppDatabase.py:671 AppDatabase.py:2133 AppEditors/FlatCAMTextEditor.py:276
+#: AppObjects/FlatCAMCNCJob.py:959 AppTools/ToolFilm.py:1016
+#: AppTools/ToolFilm.py:1197 AppTools/ToolSolderPaste.py:1534 App_Main.py:2520
+#: App_Main.py:7851 App_Main.py:7899 App_Main.py:8024 App_Main.py:8160
+#: Bookmark.py:308
+msgid ""
+"Permission denied, saving not possible.\n"
+"Most likely another app is holding the file open and not accessible."
+msgstr ""
+"Permiso denegado, no es posible guardar.\n"
+"Lo más probable es que otra aplicación mantenga el archivo abierto y no "
+"accesible."
+
+#: AppDatabase.py:693 AppDatabase.py:696 AppDatabase.py:748 AppDatabase.py:2155
+#: AppDatabase.py:2158 AppDatabase.py:2211
+msgid "Failed to write Tools DB to file."
+msgstr "Error al escribir Herramientas DB en el archivo."
+
+#: AppDatabase.py:699 AppDatabase.py:2161
+msgid "Exported Tools DB to"
+msgstr "Exportó la base de datos de herramientas a"
+
+#: AppDatabase.py:706 AppDatabase.py:2168
+msgid "Import FlatCAM Tools DB"
+msgstr "Importe la base de datos de herramientas FlatCAM"
+
+#: AppDatabase.py:738 AppDatabase.py:913 AppDatabase.py:2200
+#: AppDatabase.py:2418 AppObjects/FlatCAMGeometry.py:947
+#: AppTools/ToolNCC.py:4015 AppTools/ToolNCC.py:4099 AppTools/ToolPaint.py:3558
+#: AppTools/ToolPaint.py:3643 App_Main.py:5172 App_Main.py:5200
+#: App_Main.py:5227 App_Main.py:5247
+msgid "Tools Database"
+msgstr "Base de Datos de Herramientas"
+
+#: AppDatabase.py:752 AppDatabase.py:2215
+msgid "Saved Tools DB."
+msgstr "Guardado el DB de herramientas."
+
+#: AppDatabase.py:899 AppDatabase.py:2405
+msgid "No Tool/row selected in the Tools Database table"
+msgstr ""
+"No se seleccionó ninguna herramienta / fila en la tabla Base de datos de "
+"herramientas"
+
+#: AppDatabase.py:917 AppDatabase.py:2422
+msgid "Cancelled adding tool from DB."
+msgstr "Se canceló la herramienta de agregar de la DB."
+
+#: AppDatabase.py:1018
+msgid "Basic Geo Parameters"
+msgstr "Parámetros básicos de Geo"
+
+#: AppDatabase.py:1030
+msgid "Advanced Geo Parameters"
+msgstr "Parámetros avanzados de Geo"
+
+#: AppDatabase.py:1042
+msgid "NCC Parameters"
+msgstr "NCC Parameters"
+
+#: AppDatabase.py:1054
+msgid "Paint Parameters"
+msgstr "Parámetros de Pintura"
+
+#: AppDatabase.py:1185 AppGUI/ObjectUI.py:967 AppGUI/ObjectUI.py:1871
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:185
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:148
+#: AppTools/ToolSolderPaste.py:253
+msgid "Feedrate X-Y"
+msgstr "Avance X-Y"
+
+#: AppDatabase.py:1187
+msgid ""
+"Feedrate X-Y. Feedrate\n"
+"The speed on XY plane used while cutting into material."
+msgstr ""
+"Avance X-Y. Avance\n"
+"La velocidad en el plano XY utilizada mientras se corta en material."
+
+#: AppDatabase.py:1199 AppGUI/ObjectUI.py:982 AppGUI/ObjectUI.py:1885
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:207
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:200
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:161
+#: AppTools/ToolSolderPaste.py:265
+msgid "Feedrate Z"
+msgstr "Avance Z"
+
+#: AppDatabase.py:1201
+msgid ""
+"Feedrate Z\n"
+"The speed on Z plane."
+msgstr ""
+"Avance Z\n"
+"La velocidad en el plano Z."
+
+#: AppDatabase.py:1399 AppGUI/ObjectUI.py:845
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:46
+#: AppTools/ToolNCC.py:341
+msgid "Operation"
+msgstr "Operación"
+
+#: AppDatabase.py:1401 AppTools/ToolNCC.py:343
+msgid ""
+"The 'Operation' can be:\n"
+"- Isolation -> will ensure that the non-copper clearing is always complete.\n"
+"If it's not successful then the non-copper clearing will fail, too.\n"
+"- Clear -> the regular non-copper clearing."
+msgstr ""
+"La 'Operación' puede ser:\n"
+"- Aislamiento -> asegurará que la limpieza sin cobre esté siempre completa.\n"
+"Si no tiene éxito, la limpieza sin cobre también fallará.\n"
+"- Borrar -> la limpieza regular sin cobre."
+
+#: AppDatabase.py:1408 AppEditors/FlatCAMGrbEditor.py:2740
+#: AppGUI/GUIElements.py:2604 AppTools/ToolNCC.py:350
+msgid "Clear"
+msgstr "Limpiar"
+
+#: AppDatabase.py:1409 AppTools/ToolNCC.py:351 AppTools/ToolNCC.py:1624
+msgid "Isolation"
+msgstr "Aislamiento"
+
+#: AppDatabase.py:1417 AppGUI/ObjectUI.py:409 AppGUI/ObjectUI.py:867
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:62
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:56
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:95
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:137 AppTools/ToolNCC.py:359
+msgid "Milling Type"
+msgstr "Tipo de fresado"
+
+#: AppDatabase.py:1419 AppDatabase.py:1427
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:139
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:147 AppTools/ToolNCC.py:361
+#: AppTools/ToolNCC.py:369
+msgid ""
+"Milling type when the selected tool is of type: 'iso_op':\n"
+"- climb / best for precision milling and to reduce tool usage\n"
+"- conventional / useful when there is no backlash compensation"
+msgstr ""
+"Tipo de fresado cuando la herramienta seleccionada es de tipo: 'iso_op':\n"
+"- ascenso / mejor para fresado de precisión y para reducir el uso de "
+"herramientas\n"
+"- convencional / útil cuando no hay compensación de reacción"
+
+#: AppDatabase.py:1424 AppGUI/ObjectUI.py:415
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:62
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:102
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:144 AppTools/ToolNCC.py:366
+msgid "Climb"
+msgstr "Subida"
+
+#: AppDatabase.py:1425 AppGUI/ObjectUI.py:416
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:63
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:103
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:145 AppTools/ToolNCC.py:367
+msgid "Conventional"
+msgstr "Convencional"
+
+#: AppDatabase.py:1437 AppDatabase.py:1546 AppEditors/FlatCAMGeoEditor.py:450
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:182
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:163
+#: AppTools/ToolNCC.py:382 AppTools/ToolPaint.py:328
+msgid "Overlap"
+msgstr "Superposición"
+
+#: AppDatabase.py:1439 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:184
+#: AppTools/ToolNCC.py:384
+msgid ""
+"How much (percentage) of the tool width to overlap each tool pass.\n"
+"Adjust the value starting with lower values\n"
+"and increasing it if areas that should be cleared are still \n"
+"not cleared.\n"
+"Lower values = faster processing, faster execution on CNC.\n"
+"Higher values = slow processing and slow execution on CNC\n"
+"due of too many paths."
+msgstr ""
+"Cuánto (porcentaje) del ancho de la herramienta para superponer cada pasada "
+"de herramienta.\n"
+"Ajuste el valor comenzando con valores más bajos\n"
+"y aumentarlo si las áreas que deberían limpiarse aún están\n"
+"no borrado.\n"
+"Valores más bajos = procesamiento más rápido, ejecución más rápida en CNC.\n"
+"Valores más altos = procesamiento lento y ejecución lenta en CNC\n"
+"debido a demasiados caminos."
+
+#: AppDatabase.py:1458 AppDatabase.py:1567 AppEditors/FlatCAMGeoEditor.py:470
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:72
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:229
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:59
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:45
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:53
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:66
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:183
+#: AppTools/ToolCopperThieving.py:111 AppTools/ToolCopperThieving.py:362
+#: AppTools/ToolCorners.py:140 AppTools/ToolCutOut.py:190
+#: AppTools/ToolFiducials.py:172 AppTools/ToolInvertGerber.py:88
+#: AppTools/ToolInvertGerber.py:96 AppTools/ToolNCC.py:403
+#: AppTools/ToolPaint.py:349
+msgid "Margin"
+msgstr "Margen"
+
+#: AppDatabase.py:1460
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:74
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:61
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:68
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204
+#: AppTools/ToolCopperThieving.py:113 AppTools/ToolCorners.py:142
+#: AppTools/ToolFiducials.py:174 AppTools/ToolNCC.py:405
+msgid "Bounding box margin."
+msgstr "Margen de cuadro delimitador."
+
+#: AppDatabase.py:1471 AppDatabase.py:1582 AppEditors/FlatCAMGeoEditor.py:484
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:105
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:198
+#: AppTools/ToolExtractDrills.py:128 AppTools/ToolNCC.py:416
+#: AppTools/ToolPaint.py:364 AppTools/ToolPunchGerber.py:139
+msgid "Method"
+msgstr "Método"
+
+#: AppDatabase.py:1473 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:217
+#: AppTools/ToolNCC.py:418
+msgid ""
+"Algorithm for copper clearing:\n"
+"- Standard: Fixed step inwards.\n"
+"- Seed-based: Outwards from seed.\n"
+"- Line-based: Parallel lines."
+msgstr ""
+"Algoritmo para la limpieza de cobre:\n"
+"- Estándar: paso fijo hacia adentro.\n"
+"- Basado en semillas: hacia afuera de la semilla.\n"
+"- Basado en líneas: líneas paralelas."
+
+#: AppDatabase.py:1481 AppDatabase.py:1596 AppEditors/FlatCAMGeoEditor.py:498
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
+#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2212 AppTools/ToolNCC.py:2739
+#: AppTools/ToolNCC.py:2771 AppTools/ToolPaint.py:389
+#: AppTools/ToolPaint.py:1839 tclCommands/TclCommandCopperClear.py:126
+#: tclCommands/TclCommandCopperClear.py:134 tclCommands/TclCommandPaint.py:125
+msgid "Standard"
+msgstr "Estándar"
+
+#: AppDatabase.py:1481 AppDatabase.py:1596 AppEditors/FlatCAMGeoEditor.py:498
+#: AppEditors/FlatCAMGeoEditor.py:568 AppEditors/FlatCAMGeoEditor.py:5146
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
+#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2223 AppTools/ToolNCC.py:2745
+#: AppTools/ToolNCC.py:2777 AppTools/ToolPaint.py:389
+#: AppTools/ToolPaint.py:1853 defaults.py:400 defaults.py:432
+#: tclCommands/TclCommandCopperClear.py:128
+#: tclCommands/TclCommandCopperClear.py:136 tclCommands/TclCommandPaint.py:127
+msgid "Seed"
+msgstr "Semilla"
+
+#: AppDatabase.py:1481 AppDatabase.py:1596 AppEditors/FlatCAMGeoEditor.py:498
+#: AppEditors/FlatCAMGeoEditor.py:5150
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
+#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2234 AppTools/ToolPaint.py:389
+#: AppTools/ToolPaint.py:698 AppTools/ToolPaint.py:1867
+#: tclCommands/TclCommandCopperClear.py:130 tclCommands/TclCommandPaint.py:129
+msgid "Lines"
+msgstr "Líneas"
+
+#: AppDatabase.py:1481 AppDatabase.py:1596
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
+#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2245 AppTools/ToolPaint.py:389
+#: AppTools/ToolPaint.py:2032 tclCommands/TclCommandPaint.py:133
+msgid "Combo"
+msgstr "Combo"
+
+#: AppDatabase.py:1489 AppDatabase.py:1607
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:237
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:224
+#: AppTools/ToolNCC.py:439 AppTools/ToolPaint.py:400
+msgid "Connect"
+msgstr "Conectar"
+
+#: AppDatabase.py:1493 AppDatabase.py:1610 AppEditors/FlatCAMGeoEditor.py:507
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:239
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:226
+#: AppTools/ToolNCC.py:443 AppTools/ToolPaint.py:403
+msgid ""
+"Draw lines between resulting\n"
+"segments to minimize tool lifts."
+msgstr ""
+"Dibuja líneas entre el resultado\n"
+"Segmentos para minimizar elevaciones de herramientas."
+
+#: AppDatabase.py:1499 AppDatabase.py:1614
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:246
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:232
+#: AppTools/ToolNCC.py:449 AppTools/ToolPaint.py:407
+msgid "Contour"
+msgstr "Contorno"
+
+#: AppDatabase.py:1503 AppDatabase.py:1617 AppEditors/FlatCAMGeoEditor.py:517
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:248
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:234
+#: AppTools/ToolNCC.py:453 AppTools/ToolPaint.py:410
+msgid ""
+"Cut around the perimeter of the polygon\n"
+"to trim rough edges."
+msgstr ""
+"Corta todo el perímetro del polígono.\n"
+"Para recortar los bordes ásperos."
+
+#: AppDatabase.py:1509 AppEditors/FlatCAMGeoEditor.py:611
+#: AppEditors/FlatCAMGrbEditor.py:5289 AppGUI/ObjectUI.py:143
+#: AppGUI/ObjectUI.py:1599 AppGUI/ObjectUI.py:2456
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:255
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:142
+#: AppTools/ToolNCC.py:459 AppTools/ToolTransform.py:28
+msgid "Offset"
+msgstr "Compensar"
+
+#: AppDatabase.py:1513 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:257
+#: AppTools/ToolNCC.py:463
+msgid ""
+"If used, it will add an offset to the copper features.\n"
+"The copper clearing will finish to a distance\n"
+"from the copper features.\n"
+"The value can be between 0 and 10 FlatCAM units."
+msgstr ""
+"Si se usa, agregará un desplazamiento a las características de cobre.\n"
+"El claro de cobre terminará a cierta distancia.\n"
+"de las características de cobre.\n"
+"El valor puede estar entre 0 y 10 unidades FlatCAM."
+
+#: AppDatabase.py:1548 AppEditors/FlatCAMGeoEditor.py:452
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:165
+#: AppTools/ToolPaint.py:330
+msgid ""
+"How much (percentage) of the tool width to overlap each tool pass.\n"
+"Adjust the value starting with lower values\n"
+"and increasing it if areas that should be painted are still \n"
+"not painted.\n"
+"Lower values = faster processing, faster execution on CNC.\n"
+"Higher values = slow processing and slow execution on CNC\n"
+"due of too many paths."
+msgstr ""
+"Cuánto (porcentaje) del ancho de la herramienta para superponer cada pasada "
+"de herramienta.\n"
+"Ajuste el valor comenzando con valores más bajos\n"
+"y aumentarlo si las áreas que deben pintarse aún están\n"
+"No pintado.\n"
+"Valores más bajos = procesamiento más rápido, ejecución más rápida en CNC.\n"
+"Valores más altos = procesamiento lento y ejecución lenta en CNC\n"
+"debido a demasiados caminos."
+
+#: AppDatabase.py:1569 AppEditors/FlatCAMGeoEditor.py:472
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:185
+#: AppTools/ToolPaint.py:351
+msgid ""
+"Distance by which to avoid\n"
+"the edges of the polygon to\n"
+"be painted."
+msgstr ""
+"Distancia por la cual evitar\n"
+"los bordes del polígono a\n"
+"ser pintado."
+
+#: AppDatabase.py:1584 AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:200
+#: AppTools/ToolPaint.py:366
+msgid ""
+"Algorithm for painting:\n"
+"- Standard: Fixed step inwards.\n"
+"- Seed-based: Outwards from seed.\n"
+"- Line-based: Parallel lines.\n"
+"- Laser-lines: Active only for Gerber objects.\n"
+"Will create lines that follow the traces.\n"
+"- Combo: In case of failure a new method will be picked from the above\n"
+"in the order specified."
+msgstr ""
+"Algoritmo para pintar:\n"
+"- Estándar: paso fijo hacia adentro.\n"
+"- Basado en semillas: hacia afuera de la semilla.\n"
+"- Basado en líneas: líneas paralelas.\n"
+"- Líneas láser: activas solo para objetos Gerber.\n"
+"Creará líneas que siguen los rastros.\n"
+"- Combo: en caso de falla, se elegirá un nuevo método de los anteriores\n"
+"en el orden especificado."
+
+#: AppDatabase.py:1596 AppDatabase.py:1598
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
+#: AppTools/ToolPaint.py:389 AppTools/ToolPaint.py:391
+#: AppTools/ToolPaint.py:692 AppTools/ToolPaint.py:697
+#: AppTools/ToolPaint.py:1881 tclCommands/TclCommandPaint.py:131
+msgid "Laser_lines"
+msgstr "Lineas laser"
+
+#: AppDatabase.py:1641
+msgid "Add Tool in DB"
+msgstr "Agregar herramienta en DB"
+
+#: AppDatabase.py:1675
+msgid "Save DB"
+msgstr "Salvar DB"
+
+#: AppDatabase.py:1677
+msgid "Save the Tools Database information's."
+msgstr "Guarde la información de la base de datos de herramientas."
+
+#: AppEditors/FlatCAMExcEditor.py:50 AppEditors/FlatCAMExcEditor.py:74
+#: AppEditors/FlatCAMExcEditor.py:168 AppEditors/FlatCAMExcEditor.py:385
+#: AppEditors/FlatCAMExcEditor.py:589 AppEditors/FlatCAMGrbEditor.py:241
+#: AppEditors/FlatCAMGrbEditor.py:248
+msgid "Click to place ..."
+msgstr "Haga clic para colocar ..."
+
+#: AppEditors/FlatCAMExcEditor.py:58
+msgid "To add a drill first select a tool"
+msgstr "Para agregar un taladro primero seleccione una herramienta"
+
+#: AppEditors/FlatCAMExcEditor.py:122
+msgid "Done. Drill added."
+msgstr "Hecho. Taladro agregado."
+
+#: AppEditors/FlatCAMExcEditor.py:176
+msgid "To add an Drill Array first select a tool in Tool Table"
+msgstr ""
+"Para agregar una matriz de perforación, primero seleccione una herramienta "
+"en la Tabla de herramientas"
+
+#: AppEditors/FlatCAMExcEditor.py:192 AppEditors/FlatCAMExcEditor.py:415
+#: AppEditors/FlatCAMExcEditor.py:636 AppEditors/FlatCAMExcEditor.py:1151
+#: AppEditors/FlatCAMExcEditor.py:1178 AppEditors/FlatCAMGrbEditor.py:471
+#: AppEditors/FlatCAMGrbEditor.py:1935 AppEditors/FlatCAMGrbEditor.py:1965
+msgid "Click on target location ..."
+msgstr "Haga clic en la ubicación de destino ..."
+
+#: AppEditors/FlatCAMExcEditor.py:211
+msgid "Click on the Drill Circular Array Start position"
+msgstr ""
+"Haga clic en la posición de inicio de la matriz circular de perforación"
+
+#: AppEditors/FlatCAMExcEditor.py:233 AppEditors/FlatCAMExcEditor.py:677
+#: AppEditors/FlatCAMGrbEditor.py:516
+msgid "The value is not Float. Check for comma instead of dot separator."
+msgstr ""
+"El valor no es Real. Compruebe si hay coma en lugar de separador de puntos."
+
+#: AppEditors/FlatCAMExcEditor.py:237
+msgid "The value is mistyped. Check the value"
+msgstr "El valor está mal escrito. Comprueba el valor"
+
+#: AppEditors/FlatCAMExcEditor.py:336
+msgid "Too many drills for the selected spacing angle."
+msgstr "Demasiados taladros para el ángulo de separación seleccionado."
+
+#: AppEditors/FlatCAMExcEditor.py:354
+msgid "Done. Drill Array added."
+msgstr "Hecho. Drill Array agregado."
+
+#: AppEditors/FlatCAMExcEditor.py:394
+msgid "To add a slot first select a tool"
+msgstr "Para agregar un espacio primero seleccione una herramienta"
+
+#: AppEditors/FlatCAMExcEditor.py:454 AppEditors/FlatCAMExcEditor.py:461
+#: AppEditors/FlatCAMExcEditor.py:742 AppEditors/FlatCAMExcEditor.py:749
+msgid "Value is missing or wrong format. Add it and retry."
+msgstr ""
+"Falta el formato del formato o es incorrecto Añádelo y vuelve a intentarlo."
+
+#: AppEditors/FlatCAMExcEditor.py:559
+msgid "Done. Adding Slot completed."
+msgstr "Hecho. Agregar de Ranura completado."
+
+#: AppEditors/FlatCAMExcEditor.py:597
+msgid "To add an Slot Array first select a tool in Tool Table"
+msgstr ""
+"Para agregar una matriz de ranuras, primero seleccione una herramienta en la "
+"tabla de herramientas"
+
+#: AppEditors/FlatCAMExcEditor.py:655
+msgid "Click on the Slot Circular Array Start position"
+msgstr "Haga clic en la posición de inicio de la matriz circular de ranura"
+
+#: AppEditors/FlatCAMExcEditor.py:680 AppEditors/FlatCAMGrbEditor.py:519
+msgid "The value is mistyped. Check the value."
+msgstr "El valor está mal escrito. Compruebe el valor."
+
+#: AppEditors/FlatCAMExcEditor.py:859
+msgid "Too many Slots for the selected spacing angle."
+msgstr "Demasiadas ranuras para el ángulo de separación seleccionado."
+
+#: AppEditors/FlatCAMExcEditor.py:882
+msgid "Done. Slot Array added."
+msgstr "Hecho. Matriz de ranuras agregada."
+
+#: AppEditors/FlatCAMExcEditor.py:904
+msgid "Click on the Drill(s) to resize ..."
+msgstr "Haga clic en el taladro(s) para cambiar el tamaño ..."
+
+#: AppEditors/FlatCAMExcEditor.py:934
+msgid "Resize drill(s) failed. Please enter a diameter for resize."
+msgstr ""
+"Falló el tamaño de los taladros. Por favor, introduzca un diámetro para "
+"cambiar el tamaño."
+
+#: AppEditors/FlatCAMExcEditor.py:1112
+msgid "Done. Drill/Slot Resize completed."
+msgstr "Hecho. Tamaño de taladro / ranura completado."
+
+#: AppEditors/FlatCAMExcEditor.py:1115
+msgid "Cancelled. No drills/slots selected for resize ..."
+msgstr ""
+"Cancelado. No hay taladros / ranuras seleccionados para cambiar el tamaño ..."
+
+#: AppEditors/FlatCAMExcEditor.py:1153 AppEditors/FlatCAMGrbEditor.py:1937
+msgid "Click on reference location ..."
+msgstr "Haga clic en la ubicación de referencia ..."
+
+#: AppEditors/FlatCAMExcEditor.py:1210
+msgid "Done. Drill(s) Move completed."
+msgstr "Hecho. Taladro (s) Movimiento completado."
+
+#: AppEditors/FlatCAMExcEditor.py:1318
+msgid "Done. Drill(s) copied."
+msgstr "Hecho. Taladro (s) copiado."
+
+#: AppEditors/FlatCAMExcEditor.py:1557
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:26
+msgid "Excellon Editor"
+msgstr "Excellon Editor"
+
+#: AppEditors/FlatCAMExcEditor.py:1564 AppEditors/FlatCAMGrbEditor.py:2460
+msgid "Name:"
+msgstr "Nombre:"
+
+#: AppEditors/FlatCAMExcEditor.py:1570 AppGUI/ObjectUI.py:761
+#: AppGUI/ObjectUI.py:1567 AppTools/ToolNCC.py:120 AppTools/ToolPaint.py:114
+#: AppTools/ToolSolderPaste.py:74
+msgid "Tools Table"
+msgstr "Tabla de herramientas"
+
+#: AppEditors/FlatCAMExcEditor.py:1572 AppGUI/ObjectUI.py:763
+msgid ""
+"Tools in this Excellon object\n"
+"when are used for drilling."
+msgstr ""
+"Herramientas en este objeto Excellon.\n"
+"Cuando se utilizan para la perforación."
+
+#: AppEditors/FlatCAMExcEditor.py:1584 AppEditors/FlatCAMExcEditor.py:3041
+#: AppGUI/ObjectUI.py:781 AppObjects/FlatCAMExcellon.py:1177
+#: AppObjects/FlatCAMExcellon.py:1268 AppObjects/FlatCAMExcellon.py:1453
+#: AppTools/ToolNCC.py:132 AppTools/ToolPaint.py:127
+#: AppTools/ToolPcbWizard.py:76 AppTools/ToolProperties.py:416
+#: AppTools/ToolProperties.py:476 AppTools/ToolSolderPaste.py:85
+#: tclCommands/TclCommandDrillcncjob.py:195
+msgid "Diameter"
+msgstr "Diámetro"
+
+#: AppEditors/FlatCAMExcEditor.py:1592
+msgid "Add/Delete Tool"
+msgstr "Añadir / Eliminar herramienta"
+
+#: AppEditors/FlatCAMExcEditor.py:1594
+msgid ""
+"Add/Delete a tool to the tool list\n"
+"for this Excellon object."
+msgstr ""
+"Agregar / Eliminar una herramienta a la lista de herramientas\n"
+"para este objeto Excellon."
+
+#: AppEditors/FlatCAMExcEditor.py:1606 AppGUI/ObjectUI.py:1687
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:57
+msgid "Diameter for the new tool"
+msgstr "Diámetro para la nueva herramienta"
+
+#: AppEditors/FlatCAMExcEditor.py:1616
+msgid "Add Tool"
+msgstr "Añadir herramienta"
+
+#: AppEditors/FlatCAMExcEditor.py:1618
+msgid ""
+"Add a new tool to the tool list\n"
+"with the diameter specified above."
+msgstr ""
+"Agregar una nueva herramienta a la lista de herramientas\n"
+"con el diámetro especificado anteriormente."
+
+#: AppEditors/FlatCAMExcEditor.py:1630
+msgid "Delete Tool"
+msgstr "Eliminar herramienta"
+
+#: AppEditors/FlatCAMExcEditor.py:1632
+msgid ""
+"Delete a tool in the tool list\n"
+"by selecting a row in the tool table."
+msgstr ""
+"Eliminar una herramienta en la lista de herramientas\n"
+"seleccionando una fila en la tabla de herramientas."
+
+#: AppEditors/FlatCAMExcEditor.py:1650 AppGUI/MainGUI.py:4311
+msgid "Resize Drill(s)"
+msgstr "Cambiar el tamaño de taladro (s)"
+
+#: AppEditors/FlatCAMExcEditor.py:1652
+msgid "Resize a drill or a selection of drills."
+msgstr "Cambiar el tamaño de un ejercicio o una selección de ejercicios."
+
+#: AppEditors/FlatCAMExcEditor.py:1659
+msgid "Resize Dia"
+msgstr "Cambiar el diá"
+
+#: AppEditors/FlatCAMExcEditor.py:1661
+msgid "Diameter to resize to."
+msgstr "Diámetro para redimensionar a."
+
+#: AppEditors/FlatCAMExcEditor.py:1672
+msgid "Resize"
+msgstr "Redimensionar"
+
+#: AppEditors/FlatCAMExcEditor.py:1674
+msgid "Resize drill(s)"
+msgstr "Cambiar el tamaño de taladro"
+
+#: AppEditors/FlatCAMExcEditor.py:1699 AppGUI/MainGUI.py:1473
+#: AppGUI/MainGUI.py:4310
+msgid "Add Drill Array"
+msgstr "Añadir Drill Array"
+
+#: AppEditors/FlatCAMExcEditor.py:1701
+msgid "Add an array of drills (linear or circular array)"
+msgstr "Agregar una matriz de taladros (lineal o circular)"
+
+#: AppEditors/FlatCAMExcEditor.py:1707
+msgid ""
+"Select the type of drills array to create.\n"
+"It can be Linear X(Y) or Circular"
+msgstr ""
+"Seleccione el tipo de matriz de ejercicios para crear.\n"
+"Puede ser lineal X (Y) o circular"
+
+#: AppEditors/FlatCAMExcEditor.py:1710 AppEditors/FlatCAMExcEditor.py:1924
+#: AppEditors/FlatCAMGrbEditor.py:2773
+msgid "Linear"
+msgstr "Lineal"
+
+#: AppEditors/FlatCAMExcEditor.py:1711 AppEditors/FlatCAMExcEditor.py:1925
+#: AppEditors/FlatCAMGrbEditor.py:2774 AppGUI/ObjectUI.py:316
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:52
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:149
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:107
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:52
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:151
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:70
+#: AppTools/ToolExtractDrills.py:78 AppTools/ToolExtractDrills.py:201
+#: AppTools/ToolFiducials.py:220 AppTools/ToolNCC.py:221
+#: AppTools/ToolPaint.py:203 AppTools/ToolPunchGerber.py:89
+#: AppTools/ToolPunchGerber.py:229
+msgid "Circular"
+msgstr "Circular"
+
+#: AppEditors/FlatCAMExcEditor.py:1719
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:68
+msgid "Nr of drills"
+msgstr "Nu. de ejercicios"
+
+#: AppEditors/FlatCAMExcEditor.py:1720
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:70
+msgid "Specify how many drills to be in the array."
+msgstr "Especifique cuántos ejercicios debe estar en la matriz."
+
+#: AppEditors/FlatCAMExcEditor.py:1738 AppEditors/FlatCAMExcEditor.py:1788
+#: AppEditors/FlatCAMExcEditor.py:1860 AppEditors/FlatCAMExcEditor.py:1953
+#: AppEditors/FlatCAMExcEditor.py:2004 AppEditors/FlatCAMGrbEditor.py:1571
+#: AppEditors/FlatCAMGrbEditor.py:2802 AppEditors/FlatCAMGrbEditor.py:2851
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:178
+msgid "Direction"
+msgstr "Dirección"
+
+#: AppEditors/FlatCAMExcEditor.py:1740 AppEditors/FlatCAMExcEditor.py:1955
+#: AppEditors/FlatCAMGrbEditor.py:2804
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:86
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:234
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:122
+msgid ""
+"Direction on which the linear array is oriented:\n"
+"- 'X' - horizontal axis \n"
+"- 'Y' - vertical axis or \n"
+"- 'Angle' - a custom angle for the array inclination"
+msgstr ""
+"Dirección en la que se orienta la matriz lineal:\n"
+"- 'X' - eje horizontal\n"
+"- 'Y' - eje vertical o\n"
+"- 'Ángulo': un ángulo personalizado para la inclinación de la matriz"
+
+#: AppEditors/FlatCAMExcEditor.py:1747 AppEditors/FlatCAMExcEditor.py:1869
+#: AppEditors/FlatCAMExcEditor.py:1962 AppEditors/FlatCAMGrbEditor.py:2811
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:92
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:187
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:240
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:128
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:208
+#: AppTools/ToolFilm.py:239
+msgid "X"
+msgstr "X"
+
+#: AppEditors/FlatCAMExcEditor.py:1748 AppEditors/FlatCAMExcEditor.py:1870
+#: AppEditors/FlatCAMExcEditor.py:1963 AppEditors/FlatCAMGrbEditor.py:2812
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:93
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:188
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:241
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:129
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:209
+#: AppTools/ToolFilm.py:240
+msgid "Y"
+msgstr "Y"
+
+#: AppEditors/FlatCAMExcEditor.py:1749 AppEditors/FlatCAMExcEditor.py:1766
+#: AppEditors/FlatCAMExcEditor.py:1800 AppEditors/FlatCAMExcEditor.py:1871
+#: AppEditors/FlatCAMExcEditor.py:1875 AppEditors/FlatCAMExcEditor.py:1964
+#: AppEditors/FlatCAMExcEditor.py:1982 AppEditors/FlatCAMExcEditor.py:2016
+#: AppEditors/FlatCAMGrbEditor.py:2813 AppEditors/FlatCAMGrbEditor.py:2830
+#: AppEditors/FlatCAMGrbEditor.py:2866
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:94
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:113
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:189
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:194
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:242
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:263
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:130
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:148
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:53
+#: AppTools/ToolDistance.py:120 AppTools/ToolDistanceMin.py:68
+#: AppTools/ToolTransform.py:60
+msgid "Angle"
+msgstr "Ángulo"
+
+#: AppEditors/FlatCAMExcEditor.py:1753 AppEditors/FlatCAMExcEditor.py:1968
+#: AppEditors/FlatCAMGrbEditor.py:2817
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:100
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:248
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:136
+msgid "Pitch"
+msgstr "Paso"
+
+#: AppEditors/FlatCAMExcEditor.py:1755 AppEditors/FlatCAMExcEditor.py:1970
+#: AppEditors/FlatCAMGrbEditor.py:2819
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:102
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:250
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:138
+msgid "Pitch = Distance between elements of the array."
+msgstr "Paso = Distancia entre elementos de la matriz."
+
+#: AppEditors/FlatCAMExcEditor.py:1768 AppEditors/FlatCAMExcEditor.py:1984
+msgid ""
+"Angle at which the linear array is placed.\n"
+"The precision is of max 2 decimals.\n"
+"Min value is: -360 degrees.\n"
+"Max value is: 360.00 degrees."
+msgstr ""
+"Ángulo en el que se coloca la matriz lineal.\n"
+"La precisión es de max 2 decimales.\n"
+"El valor mínimo es: -360 grados.\n"
+"El valor máximo es: 360.00 grados."
+
+#: AppEditors/FlatCAMExcEditor.py:1789 AppEditors/FlatCAMExcEditor.py:2005
+#: AppEditors/FlatCAMGrbEditor.py:2853
+msgid ""
+"Direction for circular array.Can be CW = clockwise or CCW = counter "
+"clockwise."
+msgstr ""
+"Dirección de la matriz circular. Puede ser CW = en sentido horario o CCW = "
+"en sentido antihorario."
+
+#: AppEditors/FlatCAMExcEditor.py:1796 AppEditors/FlatCAMExcEditor.py:2012
+#: AppEditors/FlatCAMGrbEditor.py:2861
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:129
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:136
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:286
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:142
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:170
+msgid "CW"
+msgstr "CW"
+
+#: AppEditors/FlatCAMExcEditor.py:1797 AppEditors/FlatCAMExcEditor.py:2013
+#: AppEditors/FlatCAMGrbEditor.py:2862
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:130
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:137
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:287
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:143
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:171
+msgid "CCW"
+msgstr "CCW"
+
+#: AppEditors/FlatCAMExcEditor.py:1801 AppEditors/FlatCAMExcEditor.py:2017
+#: AppEditors/FlatCAMGrbEditor.py:2868
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:115
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:145
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:265
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:295
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:150
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:179
+msgid "Angle at which each element in circular array is placed."
+msgstr "Ángulo en el que se coloca cada elemento de la matriz circular."
+
+#: AppEditors/FlatCAMExcEditor.py:1835
+msgid "Slot Parameters"
+msgstr "Parámetros de ranura"
+
+#: AppEditors/FlatCAMExcEditor.py:1837
+msgid ""
+"Parameters for adding a slot (hole with oval shape)\n"
+"either single or as an part of an array."
+msgstr ""
+"Parámetros para agregar una ranura (agujero con forma ovalada)\n"
+"ya sea solo o como parte de una matriz."
+
+#: AppEditors/FlatCAMExcEditor.py:1846
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:56
+#: AppTools/ToolCorners.py:127 AppTools/ToolProperties.py:559
+msgid "Length"
+msgstr "Longitud"
+
+#: AppEditors/FlatCAMExcEditor.py:1848
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:164
+msgid "Length = The length of the slot."
+msgstr "Longitud = La longitud de la ranura."
+
+#: AppEditors/FlatCAMExcEditor.py:1862
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:180
+msgid ""
+"Direction on which the slot is oriented:\n"
+"- 'X' - horizontal axis \n"
+"- 'Y' - vertical axis or \n"
+"- 'Angle' - a custom angle for the slot inclination"
+msgstr ""
+"Dirección en la que se orienta la ranura:\n"
+"- 'X' - eje horizontal\n"
+"- 'Y' - eje vertical o\n"
+"- 'Ángulo': un ángulo personalizado para la inclinación de la ranura"
+
+#: AppEditors/FlatCAMExcEditor.py:1877
+msgid ""
+"Angle at which the slot is placed.\n"
+"The precision is of max 2 decimals.\n"
+"Min value is: -360 degrees.\n"
+"Max value is: 360.00 degrees."
+msgstr ""
+"Ángulo en el que se coloca la ranura.\n"
+"La precisión es de un máximo de 2 decimales.\n"
+"El valor mínimo es: -360 grados.\n"
+"El valor máximo es: 360.00 grados."
+
+#: AppEditors/FlatCAMExcEditor.py:1910
+msgid "Slot Array Parameters"
+msgstr "Parámetros de matriz de ranuras"
+
+#: AppEditors/FlatCAMExcEditor.py:1912
+msgid "Parameters for the array of slots (linear or circular array)"
+msgstr "Parámetros para la matriz de ranuras (matriz lineal o circular)"
+
+#: AppEditors/FlatCAMExcEditor.py:1921
+msgid ""
+"Select the type of slot array to create.\n"
+"It can be Linear X(Y) or Circular"
+msgstr ""
+"Seleccione el tipo de matriz de ranuras para crear.\n"
+"Puede ser lineal X (Y) o circular"
+
+#: AppEditors/FlatCAMExcEditor.py:1933
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:219
+msgid "Nr of slots"
+msgstr "Nro. De ranuras"
+
+#: AppEditors/FlatCAMExcEditor.py:1934
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:221
+msgid "Specify how many slots to be in the array."
+msgstr "Especifique cuántas ranuras debe haber en la matriz."
+
+#: AppEditors/FlatCAMExcEditor.py:2452 AppObjects/FlatCAMExcellon.py:423
+msgid "Total Drills"
+msgstr "Taladros totales"
+
+#: AppEditors/FlatCAMExcEditor.py:2484 AppObjects/FlatCAMExcellon.py:454
+msgid "Total Slots"
+msgstr "Ranuras totales"
+
+#: AppEditors/FlatCAMExcEditor.py:2559 AppEditors/FlatCAMGeoEditor.py:1075
+#: AppEditors/FlatCAMGeoEditor.py:1116 AppEditors/FlatCAMGeoEditor.py:1144
+#: AppEditors/FlatCAMGeoEditor.py:1172 AppEditors/FlatCAMGeoEditor.py:1216
+#: AppEditors/FlatCAMGeoEditor.py:1251 AppEditors/FlatCAMGeoEditor.py:1279
+#: AppObjects/FlatCAMGeometry.py:656 AppObjects/FlatCAMGeometry.py:1090
+#: AppObjects/FlatCAMGeometry.py:1830 AppObjects/FlatCAMGeometry.py:2480
+#: AppTools/ToolNCC.py:1498 AppTools/ToolPaint.py:1248
+#: AppTools/ToolPaint.py:1419 AppTools/ToolSolderPaste.py:883
+#: AppTools/ToolSolderPaste.py:956
+msgid "Wrong value format entered, use a number."
+msgstr "Formato de valor incorrecto introducido, use un número."
+
+#: AppEditors/FlatCAMExcEditor.py:2570
+msgid ""
+"Tool already in the original or actual tool list.\n"
+"Save and reedit Excellon if you need to add this tool. "
+msgstr ""
+"Herramienta ya en la lista de herramientas original o real.\n"
+"Guarde y reedite Excellon si necesita agregar esta herramienta. "
+
+#: AppEditors/FlatCAMExcEditor.py:2579 AppGUI/MainGUI.py:3318
+msgid "Added new tool with dia"
+msgstr "Nueva herramienta agregada con dia"
+
+#: AppEditors/FlatCAMExcEditor.py:2612
+msgid "Select a tool in Tool Table"
+msgstr "Seleccione una herramienta en la tabla de herramientas"
+
+#: AppEditors/FlatCAMExcEditor.py:2642
+msgid "Deleted tool with diameter"
+msgstr "Herramienta eliminada con diámetro"
+
+#: AppEditors/FlatCAMExcEditor.py:2790
+msgid "Done. Tool edit completed."
+msgstr "Hecho. Edición de herramienta completada."
+
+#: AppEditors/FlatCAMExcEditor.py:3327
+msgid "There are no Tools definitions in the file. Aborting Excellon creation."
+msgstr ""
+"No hay definiciones de herramientas en el archivo. Anulando la creación de "
+"Excellon."
+
+#: AppEditors/FlatCAMExcEditor.py:3331
+msgid "An internal error has ocurred. See Shell.\n"
+msgstr "Ha ocurrido un error interno. Ver concha.\n"
+
+#: AppEditors/FlatCAMExcEditor.py:3336
+msgid "Creating Excellon."
+msgstr "Creación de Excellon."
+
+#: AppEditors/FlatCAMExcEditor.py:3348
+msgid "Excellon editing finished."
+msgstr "Excelente edición terminada."
+
+#: AppEditors/FlatCAMExcEditor.py:3365
+msgid "Cancelled. There is no Tool/Drill selected"
+msgstr "Cancelado. No hay herramienta / taladro seleccionado"
+
+#: AppEditors/FlatCAMExcEditor.py:3599 AppEditors/FlatCAMExcEditor.py:3607
+#: AppEditors/FlatCAMGeoEditor.py:4343 AppEditors/FlatCAMGeoEditor.py:4357
+#: AppEditors/FlatCAMGrbEditor.py:1085 AppEditors/FlatCAMGrbEditor.py:1202
+#: AppEditors/FlatCAMGrbEditor.py:1488 AppEditors/FlatCAMGrbEditor.py:1757
+#: AppEditors/FlatCAMGrbEditor.py:4595 AppEditors/FlatCAMGrbEditor.py:4610
+#: AppGUI/MainGUI.py:2671 AppGUI/MainGUI.py:2683
+#: AppTools/ToolAlignObjects.py:393 AppTools/ToolAlignObjects.py:415
+#: App_Main.py:4649 App_Main.py:4803
+msgid "Done."
+msgstr "Hecho."
+
+#: AppEditors/FlatCAMExcEditor.py:3982
+msgid "Done. Drill(s) deleted."
+msgstr "Hecho. Taladro (s) eliminado (s)."
+
+#: AppEditors/FlatCAMExcEditor.py:4055 AppEditors/FlatCAMExcEditor.py:4065
+#: AppEditors/FlatCAMGrbEditor.py:5041
+msgid "Click on the circular array Center position"
+msgstr "Haga clic en la posición del centro matriz circular"
+
+#: AppEditors/FlatCAMGeoEditor.py:84
+msgid "Buffer distance:"
+msgstr "Dist. de amortiguación:"
+
+#: AppEditors/FlatCAMGeoEditor.py:85
+msgid "Buffer corner:"
+msgstr "Rincón del búfer:"
+
+#: AppEditors/FlatCAMGeoEditor.py:87
+msgid ""
+"There are 3 types of corners:\n"
+" - 'Round': the corner is rounded for exterior buffer.\n"
+" - 'Square': the corner is met in a sharp angle for exterior buffer.\n"
+" - 'Beveled': the corner is a line that directly connects the features "
+"meeting in the corner"
+msgstr ""
+"Hay 3 tipos de esquinas:\n"
+" - 'Redondo': la esquina está redondeada para el búfer exterior.\n"
+" - 'Cuadrado:' la esquina se encuentra en un ángulo agudo para el búfer "
+"exterior.\n"
+" - 'Biselado:' la esquina es una línea que conecta directamente las "
+"funciones que se encuentran en la esquina"
+
+#: AppEditors/FlatCAMGeoEditor.py:93 AppEditors/FlatCAMGrbEditor.py:2629
+msgid "Round"
+msgstr "Redondo"
+
+#: AppEditors/FlatCAMGeoEditor.py:94 AppEditors/FlatCAMGrbEditor.py:2630
+#: AppGUI/ObjectUI.py:1370 AppGUI/ObjectUI.py:2204
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:217
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:68
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:175
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:68
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:177
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:143
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:291
+#: AppTools/ToolExtractDrills.py:94 AppTools/ToolExtractDrills.py:227
+#: AppTools/ToolNCC.py:583 AppTools/ToolPaint.py:526
+#: AppTools/ToolPunchGerber.py:105 AppTools/ToolPunchGerber.py:255
+#: AppTools/ToolQRCode.py:198
+msgid "Square"
+msgstr "Cuadrado"
+
+#: AppEditors/FlatCAMGeoEditor.py:95 AppEditors/FlatCAMGrbEditor.py:2631
+msgid "Beveled"
+msgstr "Biselado"
+
+#: AppEditors/FlatCAMGeoEditor.py:102
+msgid "Buffer Interior"
+msgstr "Interior del amortiguador"
+
+#: AppEditors/FlatCAMGeoEditor.py:104
+msgid "Buffer Exterior"
+msgstr "Amortiguador exterior"
+
+#: AppEditors/FlatCAMGeoEditor.py:110
+msgid "Full Buffer"
+msgstr "Buffer lleno"
+
+#: AppEditors/FlatCAMGeoEditor.py:131 AppEditors/FlatCAMGeoEditor.py:3016
+#: AppGUI/MainGUI.py:4220
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:190
+msgid "Buffer Tool"
+msgstr "Herramienta Buffer"
+
+#: AppEditors/FlatCAMGeoEditor.py:143 AppEditors/FlatCAMGeoEditor.py:160
+#: AppEditors/FlatCAMGeoEditor.py:177 AppEditors/FlatCAMGeoEditor.py:3035
+#: AppEditors/FlatCAMGeoEditor.py:3063 AppEditors/FlatCAMGeoEditor.py:3091
+#: AppEditors/FlatCAMGrbEditor.py:5094
+msgid "Buffer distance value is missing or wrong format. Add it and retry."
+msgstr ""
+"Falta el valor de la distancia del búfer o el formato es incorrecto. "
+"Agrégalo y vuelve a intentarlo."
+
+#: AppEditors/FlatCAMGeoEditor.py:241
+msgid "Font"
+msgstr "Font"
+
+#: AppEditors/FlatCAMGeoEditor.py:322 AppGUI/MainGUI.py:1411
+msgid "Text"
+msgstr "Texto"
+
+#: AppEditors/FlatCAMGeoEditor.py:348
+msgid "Text Tool"
+msgstr "Herramienta de texto"
+
+#: AppEditors/FlatCAMGeoEditor.py:404 AppGUI/MainGUI.py:513
+#: AppGUI/MainGUI.py:1158 AppGUI/ObjectUI.py:818 AppGUI/ObjectUI.py:1764
+#: AppObjects/FlatCAMExcellon.py:821 AppObjects/FlatCAMExcellon.py:1163
+#: AppObjects/FlatCAMGeometry.py:816 AppTools/ToolNCC.py:331
+#: AppTools/ToolNCC.py:797 AppTools/ToolPaint.py:313 AppTools/ToolPaint.py:766
+msgid "Tool"
+msgstr "Herramienta"
+
+#: AppEditors/FlatCAMGeoEditor.py:438 AppGUI/ObjectUI.py:364
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:43
+msgid "Tool dia"
+msgstr "Diá. de la herramienta"
+
+#: AppEditors/FlatCAMGeoEditor.py:440
+msgid "Diameter of the tool to be used in the operation."
+msgstr "Diámetro de la herramienta a utilizar en la operación."
+
+#: AppEditors/FlatCAMGeoEditor.py:486
+msgid ""
+"Algorithm to paint the polygons:\n"
+"- Standard: Fixed step inwards.\n"
+"- Seed-based: Outwards from seed.\n"
+"- Line-based: Parallel lines."
+msgstr ""
+"Algoritmo para pintar los polígonos:\n"
+"- Estándar: paso fijo hacia adentro.\n"
+"- Basado en semillas: hacia afuera de la semilla.\n"
+"- Basado en líneas: líneas paralelas."
+
+#: AppEditors/FlatCAMGeoEditor.py:505
+msgid "Connect:"
+msgstr "Conectar:"
+
+#: AppEditors/FlatCAMGeoEditor.py:515
+msgid "Contour:"
+msgstr "Contorno:"
+
+#: AppEditors/FlatCAMGeoEditor.py:528 AppGUI/MainGUI.py:1415
+msgid "Paint"
+msgstr "Pintar"
+
+#: AppEditors/FlatCAMGeoEditor.py:546 AppGUI/MainGUI.py:917
+#: AppGUI/MainGUI.py:1910 AppGUI/ObjectUI.py:2269 AppTools/ToolPaint.py:42
+#: AppTools/ToolPaint.py:737
+msgid "Paint Tool"
+msgstr "Herramienta de pintura"
+
+#: AppEditors/FlatCAMGeoEditor.py:582 AppEditors/FlatCAMGeoEditor.py:1054
+#: AppEditors/FlatCAMGeoEditor.py:3023 AppEditors/FlatCAMGeoEditor.py:3051
+#: AppEditors/FlatCAMGeoEditor.py:3079 AppEditors/FlatCAMGeoEditor.py:4496
+#: AppEditors/FlatCAMGrbEditor.py:5745
+msgid "Cancelled. No shape selected."
+msgstr "Cancelado. Ninguna forma seleccionada."
+
+#: AppEditors/FlatCAMGeoEditor.py:595 AppEditors/FlatCAMGeoEditor.py:3041
+#: AppEditors/FlatCAMGeoEditor.py:3069 AppEditors/FlatCAMGeoEditor.py:3097
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:59
+#: AppTools/ToolProperties.py:117 AppTools/ToolProperties.py:162
+msgid "Tools"
+msgstr "Herramientas"
+
+#: AppEditors/FlatCAMGeoEditor.py:606 AppEditors/FlatCAMGeoEditor.py:990
+#: AppEditors/FlatCAMGrbEditor.py:5284 AppEditors/FlatCAMGrbEditor.py:5681
+#: AppGUI/MainGUI.py:938 AppGUI/MainGUI.py:1931 AppTools/ToolTransform.py:460
+msgid "Transform Tool"
+msgstr "Herramienta de transformación"
+
+#: AppEditors/FlatCAMGeoEditor.py:607 AppEditors/FlatCAMGeoEditor.py:672
+#: AppEditors/FlatCAMGrbEditor.py:5285 AppEditors/FlatCAMGrbEditor.py:5350
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:45
+#: AppTools/ToolTransform.py:24 AppTools/ToolTransform.py:466
+msgid "Rotate"
+msgstr "Girar"
+
+#: AppEditors/FlatCAMGeoEditor.py:608 AppEditors/FlatCAMGrbEditor.py:5286
+#: AppTools/ToolTransform.py:25
+msgid "Skew/Shear"
+msgstr "Sesgo / cizalla"
+
+#: AppEditors/FlatCAMGeoEditor.py:609 AppEditors/FlatCAMGrbEditor.py:2678
+#: AppEditors/FlatCAMGrbEditor.py:5287 AppGUI/MainGUI.py:1060
+#: AppGUI/MainGUI.py:1458 AppGUI/MainGUI.py:2053 AppGUI/MainGUI.py:4432
+#: AppGUI/ObjectUI.py:125
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:95
+#: AppTools/ToolTransform.py:26
+msgid "Scale"
+msgstr "Escala"
+
+#: AppEditors/FlatCAMGeoEditor.py:610 AppEditors/FlatCAMGrbEditor.py:5288
+#: AppTools/ToolTransform.py:27
+msgid "Mirror (Flip)"
+msgstr "Espejo (Flip)"
+
+#: AppEditors/FlatCAMGeoEditor.py:624 AppEditors/FlatCAMGrbEditor.py:5302
+#: AppGUI/MainGUI.py:849 AppGUI/MainGUI.py:1844
+msgid "Editor"
+msgstr "Editor"
+
+#: AppEditors/FlatCAMGeoEditor.py:656 AppEditors/FlatCAMGrbEditor.py:5334
+msgid "Angle:"
+msgstr "Ángulo:"
+
+#: AppEditors/FlatCAMGeoEditor.py:658 AppEditors/FlatCAMGrbEditor.py:5336
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:55
+#: AppTools/ToolTransform.py:62
+msgid ""
+"Angle for Rotation action, in degrees.\n"
+"Float number between -360 and 359.\n"
+"Positive numbers for CW motion.\n"
+"Negative numbers for CCW motion."
+msgstr ""
+"Ángulo para la acción de rotación, en grados.\n"
+"Número de flotación entre -360 y 359.\n"
+"Números positivos para movimiento CW.\n"
+"Números negativos para movimiento CCW."
+
+#: AppEditors/FlatCAMGeoEditor.py:674 AppEditors/FlatCAMGrbEditor.py:5352
+msgid ""
+"Rotate the selected shape(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected shapes."
+msgstr ""
+"Gire la (s) forma (s) seleccionada (s).\n"
+"El punto de referencia es el centro de\n"
+"El cuadro delimitador para todas las formas seleccionadas."
+
+#: AppEditors/FlatCAMGeoEditor.py:697 AppEditors/FlatCAMGrbEditor.py:5375
+msgid "Angle X:"
+msgstr "Ángulo X:"
+
+#: AppEditors/FlatCAMGeoEditor.py:699 AppEditors/FlatCAMGeoEditor.py:719
+#: AppEditors/FlatCAMGrbEditor.py:5377 AppEditors/FlatCAMGrbEditor.py:5397
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:74
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:88
+#: AppTools/ToolCalibration.py:505 AppTools/ToolCalibration.py:518
+msgid ""
+"Angle for Skew action, in degrees.\n"
+"Float number between -360 and 359."
+msgstr ""
+"Ángulo para sesgo de acción, en grados.\n"
+"Número de flotación entre -360 y 359."
+
+#: AppEditors/FlatCAMGeoEditor.py:710 AppEditors/FlatCAMGrbEditor.py:5388
+#: AppTools/ToolTransform.py:467
+msgid "Skew X"
+msgstr "Sesgo x"
+
+#: AppEditors/FlatCAMGeoEditor.py:712 AppEditors/FlatCAMGeoEditor.py:732
+#: AppEditors/FlatCAMGrbEditor.py:5390 AppEditors/FlatCAMGrbEditor.py:5410
+msgid ""
+"Skew/shear the selected shape(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected shapes."
+msgstr ""
+"Sesgar / cortar la (s) forma (s) seleccionada (s).\n"
+"El punto de referencia es el centro de\n"
+"El cuadro delimitador para todas las formas seleccionadas."
+
+#: AppEditors/FlatCAMGeoEditor.py:717 AppEditors/FlatCAMGrbEditor.py:5395
+msgid "Angle Y:"
+msgstr "Ángulo Y:"
+
+#: AppEditors/FlatCAMGeoEditor.py:730 AppEditors/FlatCAMGrbEditor.py:5408
+#: AppTools/ToolTransform.py:468
+msgid "Skew Y"
+msgstr "Sesgo y"
+
+#: AppEditors/FlatCAMGeoEditor.py:758 AppEditors/FlatCAMGrbEditor.py:5436
+msgid "Factor X:"
+msgstr "Factor X:"
+
+#: AppEditors/FlatCAMGeoEditor.py:760 AppEditors/FlatCAMGrbEditor.py:5438
+#: AppTools/ToolCalibration.py:469
+msgid "Factor for Scale action over X axis."
+msgstr "Factor para la acción de escala sobre el eje X."
+
+#: AppEditors/FlatCAMGeoEditor.py:770 AppEditors/FlatCAMGrbEditor.py:5448
+#: AppTools/ToolTransform.py:469
+msgid "Scale X"
+msgstr "Escala x"
+
+#: AppEditors/FlatCAMGeoEditor.py:772 AppEditors/FlatCAMGeoEditor.py:791
+#: AppEditors/FlatCAMGrbEditor.py:5450 AppEditors/FlatCAMGrbEditor.py:5469
+msgid ""
+"Scale the selected shape(s).\n"
+"The point of reference depends on \n"
+"the Scale reference checkbox state."
+msgstr ""
+"Escala las formas seleccionadas.\n"
+"El punto de referencia depende de\n"
+"El estado de la casilla de verificación Escala de referencia."
+
+#: AppEditors/FlatCAMGeoEditor.py:777 AppEditors/FlatCAMGrbEditor.py:5455
+msgid "Factor Y:"
+msgstr "Factor Y:"
+
+#: AppEditors/FlatCAMGeoEditor.py:779 AppEditors/FlatCAMGrbEditor.py:5457
+#: AppTools/ToolCalibration.py:481
+msgid "Factor for Scale action over Y axis."
+msgstr "Factor de acción de escala sobre eje Y."
+
+#: AppEditors/FlatCAMGeoEditor.py:789 AppEditors/FlatCAMGrbEditor.py:5467
+#: AppTools/ToolTransform.py:470
+msgid "Scale Y"
+msgstr "Escala Y"
+
+#: AppEditors/FlatCAMGeoEditor.py:798 AppEditors/FlatCAMGrbEditor.py:5476
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:124
+#: AppTools/ToolTransform.py:189
+msgid "Link"
+msgstr "Enlazar"
+
+#: AppEditors/FlatCAMGeoEditor.py:800 AppEditors/FlatCAMGrbEditor.py:5478
+msgid ""
+"Scale the selected shape(s)\n"
+"using the Scale Factor X for both axis."
+msgstr ""
+"Escala las formas seleccionadas\n"
+"Utilizando el Scale Factor X para ambos ejes."
+
+#: AppEditors/FlatCAMGeoEditor.py:806 AppEditors/FlatCAMGrbEditor.py:5484
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:132
+#: AppTools/ToolTransform.py:196
+msgid "Scale Reference"
+msgstr "Referencia de escala"
+
+#: AppEditors/FlatCAMGeoEditor.py:808 AppEditors/FlatCAMGrbEditor.py:5486
+msgid ""
+"Scale the selected shape(s)\n"
+"using the origin reference when checked,\n"
+"and the center of the biggest bounding box\n"
+"of the selected shapes when unchecked."
+msgstr ""
+"Escala las formas seleccionadas\n"
+"usando la referencia de origen cuando está marcada,\n"
+"y el centro del cuadro delimitador más grande.\n"
+"de las formas seleccionadas cuando no está marcada."
+
+#: AppEditors/FlatCAMGeoEditor.py:836 AppEditors/FlatCAMGrbEditor.py:5515
+msgid "Value X:"
+msgstr "Valor X:"
+
+#: AppEditors/FlatCAMGeoEditor.py:838 AppEditors/FlatCAMGrbEditor.py:5517
+msgid "Value for Offset action on X axis."
+msgstr "Valor para la acción Offset en el eje X."
+
+#: AppEditors/FlatCAMGeoEditor.py:848 AppEditors/FlatCAMGrbEditor.py:5527
+#: AppTools/ToolTransform.py:473
+msgid "Offset X"
+msgstr "Offset X"
+
+#: AppEditors/FlatCAMGeoEditor.py:850 AppEditors/FlatCAMGeoEditor.py:870
+#: AppEditors/FlatCAMGrbEditor.py:5529 AppEditors/FlatCAMGrbEditor.py:5549
+msgid ""
+"Offset the selected shape(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected shapes.\n"
+msgstr ""
+"Desplazar las formas seleccionadas.\n"
+"El punto de referencia es el centro de\n"
+"El cuadro delimitador para todas las formas seleccionadas.\n"
+
+#: AppEditors/FlatCAMGeoEditor.py:856 AppEditors/FlatCAMGrbEditor.py:5535
+msgid "Value Y:"
+msgstr "Valor Y:"
+
+#: AppEditors/FlatCAMGeoEditor.py:858 AppEditors/FlatCAMGrbEditor.py:5537
+msgid "Value for Offset action on Y axis."
+msgstr "Valor para la acción Offset en el eje Y."
+
+#: AppEditors/FlatCAMGeoEditor.py:868 AppEditors/FlatCAMGrbEditor.py:5547
+#: AppTools/ToolTransform.py:474
+msgid "Offset Y"
+msgstr "Offset Y"
+
+#: AppEditors/FlatCAMGeoEditor.py:899 AppEditors/FlatCAMGrbEditor.py:5578
+#: AppTools/ToolTransform.py:475
+msgid "Flip on X"
+msgstr "Voltear en X"
+
+#: AppEditors/FlatCAMGeoEditor.py:901 AppEditors/FlatCAMGeoEditor.py:908
+#: AppEditors/FlatCAMGrbEditor.py:5580 AppEditors/FlatCAMGrbEditor.py:5587
+msgid ""
+"Flip the selected shape(s) over the X axis.\n"
+"Does not create a new shape."
+msgstr ""
+"Voltea la (s) forma (s) seleccionada (s) sobre el eje X.\n"
+"No crea una nueva forma."
+
+#: AppEditors/FlatCAMGeoEditor.py:906 AppEditors/FlatCAMGrbEditor.py:5585
+#: AppTools/ToolTransform.py:476
+msgid "Flip on Y"
+msgstr "Voltear en Y"
+
+#: AppEditors/FlatCAMGeoEditor.py:914 AppEditors/FlatCAMGrbEditor.py:5593
+msgid "Ref Pt"
+msgstr "Punto de Ref"
+
+#: AppEditors/FlatCAMGeoEditor.py:916 AppEditors/FlatCAMGrbEditor.py:5595
+msgid ""
+"Flip the selected shape(s)\n"
+"around the point in Point Entry Field.\n"
+"\n"
+"The point coordinates can be captured by\n"
+"left click on canvas together with pressing\n"
+"SHIFT key. \n"
+"Then click Add button to insert coordinates.\n"
+"Or enter the coords in format (x, y) in the\n"
+"Point Entry field and click Flip on X(Y)"
+msgstr ""
+"Voltear la (s) forma (s) seleccionada (s)\n"
+"alrededor del punto en el campo de entrada de puntos.\n"
+"\n"
+"Las coordenadas del punto pueden ser capturadas por\n"
+"Haga clic izquierdo en el lienzo junto con la presión\n"
+"Tecla Shift.\n"
+"Luego haga clic en el botón Agregar para insertar coordenadas.\n"
+"O ingrese las coords en formato (x, y) en el\n"
+"Campo de entrada de puntos y haga clic en Girar en X (Y)"
+
+#: AppEditors/FlatCAMGeoEditor.py:928 AppEditors/FlatCAMGrbEditor.py:5607
+msgid "Point:"
+msgstr "Punto:"
+
+#: AppEditors/FlatCAMGeoEditor.py:930 AppEditors/FlatCAMGrbEditor.py:5609
+#: AppTools/ToolTransform.py:299
+msgid ""
+"Coordinates in format (x, y) used as reference for mirroring.\n"
+"The 'x' in (x, y) will be used when using Flip on X and\n"
+"the 'y' in (x, y) will be used when using Flip on Y."
+msgstr ""
+"Coordenadas en formato (x, y) utilizadas como referencia para la "
+"duplicación.\n"
+"La 'x' en (x, y) se usará cuando se usa Flip en X y\n"
+"la 'y' en (x, y) se usará cuando se use Flip en Y."
+
+#: AppEditors/FlatCAMGeoEditor.py:938 AppEditors/FlatCAMGrbEditor.py:2581
+#: AppEditors/FlatCAMGrbEditor.py:5619 AppGUI/ObjectUI.py:1697
+#: AppTools/ToolDblSided.py:192 AppTools/ToolDblSided.py:425
+#: AppTools/ToolNCC.py:294 AppTools/ToolNCC.py:631 AppTools/ToolPaint.py:276
+#: AppTools/ToolPaint.py:675 AppTools/ToolSolderPaste.py:122
+#: AppTools/ToolSolderPaste.py:597 AppTools/ToolTransform.py:478
+#: App_Main.py:5593
+msgid "Add"
+msgstr "Añadir"
+
+#: AppEditors/FlatCAMGeoEditor.py:940 AppEditors/FlatCAMGrbEditor.py:5621
+#: AppTools/ToolTransform.py:309
+msgid ""
+"The point coordinates can be captured by\n"
+"left click on canvas together with pressing\n"
+"SHIFT key. Then click Add button to insert."
+msgstr ""
+"Las coordenadas del punto pueden ser capturadas por\n"
+"Haga clic izquierdo en el lienzo junto con la presión\n"
+"Tecla Shift. Luego haga clic en el botón Agregar para insertar."
+
+#: AppEditors/FlatCAMGeoEditor.py:1303 AppEditors/FlatCAMGrbEditor.py:5929
+msgid "No shape selected. Please Select a shape to rotate!"
+msgstr ""
+"Ninguna forma seleccionada. Por favor, seleccione una forma para rotar!"
+
+#: AppEditors/FlatCAMGeoEditor.py:1306 AppEditors/FlatCAMGrbEditor.py:5932
+#: AppTools/ToolTransform.py:679
+msgid "Appying Rotate"
+msgstr "Aplicando rotar"
+
+#: AppEditors/FlatCAMGeoEditor.py:1332 AppEditors/FlatCAMGrbEditor.py:5964
+msgid "Done. Rotate completed."
+msgstr "Hecho. Rotación completada."
+
+#: AppEditors/FlatCAMGeoEditor.py:1334
+msgid "Rotation action was not executed"
+msgstr "La acción de rotación no se ejecutó"
+
+#: AppEditors/FlatCAMGeoEditor.py:1353 AppEditors/FlatCAMGrbEditor.py:5983
+msgid "No shape selected. Please Select a shape to flip!"
+msgstr ""
+"Ninguna forma seleccionada. Por favor, seleccione una forma para voltear!"
+
+#: AppEditors/FlatCAMGeoEditor.py:1356 AppEditors/FlatCAMGrbEditor.py:5986
+#: AppTools/ToolTransform.py:728
+msgid "Applying Flip"
+msgstr "Aplicando Voltear"
+
+#: AppEditors/FlatCAMGeoEditor.py:1385 AppEditors/FlatCAMGrbEditor.py:6024
+#: AppTools/ToolTransform.py:769
+msgid "Flip on the Y axis done"
+msgstr "Voltear sobre el eje Y hecho"
+
+#: AppEditors/FlatCAMGeoEditor.py:1389 AppEditors/FlatCAMGrbEditor.py:6033
+#: AppTools/ToolTransform.py:778
+msgid "Flip on the X axis done"
+msgstr "Voltear en el eje X hecho"
+
+#: AppEditors/FlatCAMGeoEditor.py:1397
+msgid "Flip action was not executed"
+msgstr "La acción de voltear no se ejecutó"
+
+#: AppEditors/FlatCAMGeoEditor.py:1415 AppEditors/FlatCAMGrbEditor.py:6053
+msgid "No shape selected. Please Select a shape to shear/skew!"
+msgstr ""
+"Ninguna forma seleccionada. Por favor, seleccione una forma para esquilar / "
+"sesgar!"
+
+#: AppEditors/FlatCAMGeoEditor.py:1418 AppEditors/FlatCAMGrbEditor.py:6056
+#: AppTools/ToolTransform.py:801
+msgid "Applying Skew"
+msgstr "Aplicando Sesgo"
+
+#: AppEditors/FlatCAMGeoEditor.py:1441 AppEditors/FlatCAMGrbEditor.py:6090
+msgid "Skew on the X axis done"
+msgstr "Sesgar sobre el eje X hecho"
+
+#: AppEditors/FlatCAMGeoEditor.py:1443 AppEditors/FlatCAMGrbEditor.py:6092
+msgid "Skew on the Y axis done"
+msgstr "Sesgar sobre el eje Y hecho"
+
+#: AppEditors/FlatCAMGeoEditor.py:1446
+msgid "Skew action was not executed"
+msgstr "La acción sesgada no se ejecutó"
+
+#: AppEditors/FlatCAMGeoEditor.py:1468 AppEditors/FlatCAMGrbEditor.py:6114
+msgid "No shape selected. Please Select a shape to scale!"
+msgstr "Ninguna forma seleccionada. Por favor, seleccione una forma a escala!"
+
+#: AppEditors/FlatCAMGeoEditor.py:1471 AppEditors/FlatCAMGrbEditor.py:6117
+#: AppTools/ToolTransform.py:847
+msgid "Applying Scale"
+msgstr "Aplicando la escala"
+
+#: AppEditors/FlatCAMGeoEditor.py:1503 AppEditors/FlatCAMGrbEditor.py:6154
+msgid "Scale on the X axis done"
+msgstr "Escala en el eje X hecho"
+
+#: AppEditors/FlatCAMGeoEditor.py:1505 AppEditors/FlatCAMGrbEditor.py:6156
+msgid "Scale on the Y axis done"
+msgstr "Escala en el eje Y hecho"
+
+#: AppEditors/FlatCAMGeoEditor.py:1507
+msgid "Scale action was not executed"
+msgstr "La acción de escala no se ejecutó"
+
+#: AppEditors/FlatCAMGeoEditor.py:1522 AppEditors/FlatCAMGrbEditor.py:6173
+msgid "No shape selected. Please Select a shape to offset!"
+msgstr ""
+"Ninguna forma seleccionada. Por favor, seleccione una forma para compensar!"
+
+#: AppEditors/FlatCAMGeoEditor.py:1525 AppEditors/FlatCAMGrbEditor.py:6176
+#: AppTools/ToolTransform.py:897
+msgid "Applying Offset"
+msgstr "Aplicando Offset"
+
+#: AppEditors/FlatCAMGeoEditor.py:1535 AppEditors/FlatCAMGrbEditor.py:6197
+msgid "Offset on the X axis done"
+msgstr "Offset en el eje X hecho"
+
+#: AppEditors/FlatCAMGeoEditor.py:1537 AppEditors/FlatCAMGrbEditor.py:6199
+msgid "Offset on the Y axis done"
+msgstr "Offset en el eje Y hecho"
+
+#: AppEditors/FlatCAMGeoEditor.py:1540
+msgid "Offset action was not executed"
+msgstr "La acción de desplazamiento no se ejecutó"
+
+#: AppEditors/FlatCAMGeoEditor.py:1544 AppEditors/FlatCAMGrbEditor.py:6206
+msgid "Rotate ..."
+msgstr "Girar ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:1545 AppEditors/FlatCAMGeoEditor.py:1600
+#: AppEditors/FlatCAMGeoEditor.py:1617 AppEditors/FlatCAMGrbEditor.py:6207
+#: AppEditors/FlatCAMGrbEditor.py:6256 AppEditors/FlatCAMGrbEditor.py:6271
+msgid "Enter an Angle Value (degrees)"
+msgstr "Ingrese un valor de ángulo (grados)"
+
+#: AppEditors/FlatCAMGeoEditor.py:1554 AppEditors/FlatCAMGrbEditor.py:6215
+msgid "Geometry shape rotate done"
+msgstr "Forma de geometría rotar hecho"
+
+#: AppEditors/FlatCAMGeoEditor.py:1558 AppEditors/FlatCAMGrbEditor.py:6218
+msgid "Geometry shape rotate cancelled"
+msgstr "Rotación de forma de geometría cancelada"
+
+#: AppEditors/FlatCAMGeoEditor.py:1563 AppEditors/FlatCAMGrbEditor.py:6223
+msgid "Offset on X axis ..."
+msgstr "Offset en el eje X ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:1564 AppEditors/FlatCAMGeoEditor.py:1583
+#: AppEditors/FlatCAMGrbEditor.py:6224 AppEditors/FlatCAMGrbEditor.py:6241
+msgid "Enter a distance Value"
+msgstr "Ingrese un valor de distancia"
+
+#: AppEditors/FlatCAMGeoEditor.py:1573 AppEditors/FlatCAMGrbEditor.py:6232
+msgid "Geometry shape offset on X axis done"
+msgstr "Forma de geometría compensada en el eje X hecho"
+
+#: AppEditors/FlatCAMGeoEditor.py:1577 AppEditors/FlatCAMGrbEditor.py:6235
+msgid "Geometry shape offset X cancelled"
+msgstr "Desplazamiento de forma de geometría X cancelado"
+
+#: AppEditors/FlatCAMGeoEditor.py:1582 AppEditors/FlatCAMGrbEditor.py:6240
+msgid "Offset on Y axis ..."
+msgstr "Offset en eje Y ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:1592 AppEditors/FlatCAMGrbEditor.py:6249
+msgid "Geometry shape offset on Y axis done"
+msgstr "Desplazamiento de forma de geometría en el eje Y hecho"
+
+#: AppEditors/FlatCAMGeoEditor.py:1596
+msgid "Geometry shape offset on Y axis canceled"
+msgstr "Desplazamiento de forma de geometría en eje Y cancelado"
+
+#: AppEditors/FlatCAMGeoEditor.py:1599 AppEditors/FlatCAMGrbEditor.py:6255
+msgid "Skew on X axis ..."
+msgstr "Sesgar en el eje X ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:1609 AppEditors/FlatCAMGrbEditor.py:6264
+msgid "Geometry shape skew on X axis done"
+msgstr "Forma de geometría sesgada en el eje X hecho"
+
+#: AppEditors/FlatCAMGeoEditor.py:1613
+msgid "Geometry shape skew on X axis canceled"
+msgstr "Forma geométrica sesgada en el eje X cancelada"
+
+#: AppEditors/FlatCAMGeoEditor.py:1616 AppEditors/FlatCAMGrbEditor.py:6270
+msgid "Skew on Y axis ..."
+msgstr "Sesgar en el eje Y ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:1626 AppEditors/FlatCAMGrbEditor.py:6279
+msgid "Geometry shape skew on Y axis done"
+msgstr "Forma de geometría sesgada en el eje Y hecho"
+
+#: AppEditors/FlatCAMGeoEditor.py:1630
+msgid "Geometry shape skew on Y axis canceled"
+msgstr "Forma geométrica sesgada en el eje Y cancelada"
+
+#: AppEditors/FlatCAMGeoEditor.py:2007 AppEditors/FlatCAMGeoEditor.py:2078
+#: AppEditors/FlatCAMGrbEditor.py:1435 AppEditors/FlatCAMGrbEditor.py:1513
+msgid "Click on Center point ..."
+msgstr "Haga clic en el punto central ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2020 AppEditors/FlatCAMGrbEditor.py:1445
+msgid "Click on Perimeter point to complete ..."
+msgstr "Haga clic en el punto del perímetro para completar ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2052
+msgid "Done. Adding Circle completed."
+msgstr "Hecho. Añadiendo círculo completado."
+
+#: AppEditors/FlatCAMGeoEditor.py:2106 AppEditors/FlatCAMGrbEditor.py:1546
+msgid "Click on Start point ..."
+msgstr "Haga clic en el punto de inicio ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2108 AppEditors/FlatCAMGrbEditor.py:1548
+msgid "Click on Point3 ..."
+msgstr "Haga clic en el punto 3 ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2110 AppEditors/FlatCAMGrbEditor.py:1550
+msgid "Click on Stop point ..."
+msgstr "Haga clic en el punto de parada ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2115 AppEditors/FlatCAMGrbEditor.py:1555
+msgid "Click on Stop point to complete ..."
+msgstr "Haga clic en el punto de parada para completar ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2117 AppEditors/FlatCAMGrbEditor.py:1557
+msgid "Click on Point2 to complete ..."
+msgstr "Haga clic en el punto 2 para completar ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2119 AppEditors/FlatCAMGrbEditor.py:1559
+msgid "Click on Center point to complete ..."
+msgstr "Haga clic en el punto central para completar ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2131
+#, python-format
+msgid "Direction: %s"
+msgstr "Direccion: %s"
+
+#: AppEditors/FlatCAMGeoEditor.py:2145 AppEditors/FlatCAMGrbEditor.py:1585
+msgid "Mode: Start -> Stop -> Center. Click on Start point ..."
+msgstr "Modo: Inicio -> Detener -> Centro. Haga clic en el punto de inicio ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2148 AppEditors/FlatCAMGrbEditor.py:1588
+msgid "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..."
+msgstr "Modo: Punto1 -> Punto3 -> Punto2. Haga clic en el punto 1 ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2151 AppEditors/FlatCAMGrbEditor.py:1591
+msgid "Mode: Center -> Start -> Stop. Click on Center point ..."
+msgstr "Modo: Centro -> Iniciar -> Detener. Haga clic en el punto central ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2292
+msgid "Done. Arc completed."
+msgstr "Hecho. Arco completado."
+
+#: AppEditors/FlatCAMGeoEditor.py:2323 AppEditors/FlatCAMGeoEditor.py:2396
+msgid "Click on 1st corner ..."
+msgstr "Haga clic en la primera esquina ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2335
+msgid "Click on opposite corner to complete ..."
+msgstr "Haga clic en la esquina opuesta para completar ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2365
+msgid "Done. Rectangle completed."
+msgstr "Hecho. Rectángulo completado."
+
+#: AppEditors/FlatCAMGeoEditor.py:2409 AppTools/ToolNCC.py:1734
+#: AppTools/ToolPaint.py:1627 Common.py:303
+msgid "Click on next Point or click right mouse button to complete ..."
+msgstr ""
+"Haga clic en el siguiente punto o haga clic con el botón derecho del ratón "
+"para completar ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2440
+msgid "Done. Polygon completed."
+msgstr "Hecho. Polígono completado."
+
+#: AppEditors/FlatCAMGeoEditor.py:2454 AppEditors/FlatCAMGeoEditor.py:2519
+#: AppEditors/FlatCAMGrbEditor.py:1111 AppEditors/FlatCAMGrbEditor.py:1322
+msgid "Backtracked one point ..."
+msgstr "Retrocedido un punto ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2497
+msgid "Done. Path completed."
+msgstr "Hecho. Camino completado."
+
+#: AppEditors/FlatCAMGeoEditor.py:2656
+msgid "No shape selected. Select a shape to explode"
+msgstr "Ninguna forma seleccionada. Selecciona una forma para explotar"
+
+#: AppEditors/FlatCAMGeoEditor.py:2689
+msgid "Done. Polygons exploded into lines."
+msgstr "Hecho. Los polígonos explotaron en líneas."
+
+#: AppEditors/FlatCAMGeoEditor.py:2721
+msgid "MOVE: No shape selected. Select a shape to move"
+msgstr "MOVER: No se seleccionó la forma. Selecciona una forma para mover"
+
+#: AppEditors/FlatCAMGeoEditor.py:2724 AppEditors/FlatCAMGeoEditor.py:2744
+msgid " MOVE: Click on reference point ..."
+msgstr " MOVER: haga clic en el punto de referencia ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2729
+msgid " Click on destination point ..."
+msgstr " Haga clic en el punto de destino ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2769
+msgid "Done. Geometry(s) Move completed."
+msgstr "Hecho. Geometría (s) Movimiento completado."
+
+#: AppEditors/FlatCAMGeoEditor.py:2902
+msgid "Done. Geometry(s) Copy completed."
+msgstr "Hecho. Geometría (s) Copia completada."
+
+#: AppEditors/FlatCAMGeoEditor.py:2933 AppEditors/FlatCAMGrbEditor.py:897
+msgid "Click on 1st point ..."
+msgstr "Haga clic en el primer punto ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2957
+msgid ""
+"Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. "
+"Error"
+msgstr ""
+"Fuente no soportada. Solo se admiten las versiones Regular, Bold, Italic y "
+"BoldItalic. Error"
+
+#: AppEditors/FlatCAMGeoEditor.py:2965
+msgid "No text to add."
+msgstr "No hay texto para agregar."
+
+#: AppEditors/FlatCAMGeoEditor.py:2975
+msgid " Done. Adding Text completed."
+msgstr " Hecho. Agregando texto completado."
+
+#: AppEditors/FlatCAMGeoEditor.py:3012
+msgid "Create buffer geometry ..."
+msgstr "Crear geometría de búfer ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:3047 AppEditors/FlatCAMGrbEditor.py:5138
+msgid "Done. Buffer Tool completed."
+msgstr "Hecho. Herramienta de amortiguación completada."
+
+#: AppEditors/FlatCAMGeoEditor.py:3075
+msgid "Done. Buffer Int Tool completed."
+msgstr "Hecho. Herramienta interna de búfer completada."
+
+#: AppEditors/FlatCAMGeoEditor.py:3103
+msgid "Done. Buffer Ext Tool completed."
+msgstr "Hecho. Herramienta externa de búfer completada."
+
+#: AppEditors/FlatCAMGeoEditor.py:3152 AppEditors/FlatCAMGrbEditor.py:2151
+msgid "Select a shape to act as deletion area ..."
+msgstr "Seleccione una forma para que actúe como área de eliminación ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:3154 AppEditors/FlatCAMGeoEditor.py:3180
+#: AppEditors/FlatCAMGeoEditor.py:3186 AppEditors/FlatCAMGrbEditor.py:2153
+msgid "Click to pick-up the erase shape..."
+msgstr "Haga clic para recoger la forma de borrar ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:3190 AppEditors/FlatCAMGrbEditor.py:2212
+msgid "Click to erase ..."
+msgstr "Haga clic para borrar ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:3219 AppEditors/FlatCAMGrbEditor.py:2245
+msgid "Done. Eraser tool action completed."
+msgstr "Hecho. Se ha completado la acción de la herramienta de borrador."
+
+#: AppEditors/FlatCAMGeoEditor.py:3269
+msgid "Create Paint geometry ..."
+msgstr "Crear geometría de pintura ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:3282 AppEditors/FlatCAMGrbEditor.py:2408
+msgid "Shape transformations ..."
+msgstr "Transformaciones de formas ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:3338
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:27
+msgid "Geometry Editor"
+msgstr "Editor de geometría"
+
+#: AppEditors/FlatCAMGeoEditor.py:3344 AppEditors/FlatCAMGrbEditor.py:2486
+#: AppEditors/FlatCAMGrbEditor.py:3943 AppGUI/ObjectUI.py:263
+#: AppGUI/ObjectUI.py:1599 AppGUI/ObjectUI.py:2456 AppTools/ToolCutOut.py:95
+msgid "Type"
+msgstr "Tipo"
+
+#: AppEditors/FlatCAMGeoEditor.py:3344 AppGUI/ObjectUI.py:218
+#: AppGUI/ObjectUI.py:742 AppGUI/ObjectUI.py:1535 AppGUI/ObjectUI.py:2365
+#: AppGUI/ObjectUI.py:2669 AppGUI/ObjectUI.py:2736
+#: AppTools/ToolCalibration.py:234 AppTools/ToolFiducials.py:73
+msgid "Name"
+msgstr "Nombre"
+
+#: AppEditors/FlatCAMGeoEditor.py:3596
+msgid "Ring"
+msgstr "Anillo"
+
+#: AppEditors/FlatCAMGeoEditor.py:3598
+msgid "Line"
+msgstr "Línea"
+
+#: AppEditors/FlatCAMGeoEditor.py:3600 AppGUI/MainGUI.py:1405
+#: AppGUI/ObjectUI.py:1371 AppGUI/ObjectUI.py:2205
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:218
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:328
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:292
+#: AppTools/ToolNCC.py:584 AppTools/ToolPaint.py:527
+msgid "Polygon"
+msgstr "Polígono"
+
+#: AppEditors/FlatCAMGeoEditor.py:3602
+msgid "Multi-Line"
+msgstr "Multilínea"
+
+#: AppEditors/FlatCAMGeoEditor.py:3604
+msgid "Multi-Polygon"
+msgstr "Multi-polígono"
+
+#: AppEditors/FlatCAMGeoEditor.py:3611
+msgid "Geo Elem"
+msgstr "Elemento de Geo"
+
+#: AppEditors/FlatCAMGeoEditor.py:4064
+msgid "Editing MultiGeo Geometry, tool"
+msgstr "Edición de Geometría MultiGeo, herramienta"
+
+#: AppEditors/FlatCAMGeoEditor.py:4066
+msgid "with diameter"
+msgstr "con diámetro"
+
+#: AppEditors/FlatCAMGeoEditor.py:4138
+#, fuzzy
+#| msgid "Workspace Settings"
+msgid "Grid snap enabled."
+msgstr "Configuración del espacio de trabajo"
+
+#: AppEditors/FlatCAMGeoEditor.py:4142
+#, fuzzy
+#| msgid "Grid X snapping distance"
+msgid "Grid snap disabled."
+msgstr "Distancia de ajuste de la rejilla X"
+
+#: AppEditors/FlatCAMGeoEditor.py:4503 AppGUI/MainGUI.py:3000
+#: AppGUI/MainGUI.py:3046 AppGUI/MainGUI.py:3064 AppGUI/MainGUI.py:3208
+#: AppGUI/MainGUI.py:3247 AppGUI/MainGUI.py:3259 AppGUI/MainGUI.py:3276
+msgid "Click on target point."
+msgstr "Haga clic en el punto de destino."
+
+#: AppEditors/FlatCAMGeoEditor.py:4817 AppEditors/FlatCAMGeoEditor.py:4852
+msgid "A selection of at least 2 geo items is required to do Intersection."
+msgstr ""
+"Se requiere una selección de al menos 2 elementos geo para hacer "
+"Intersección."
+
+#: AppEditors/FlatCAMGeoEditor.py:4938 AppEditors/FlatCAMGeoEditor.py:5042
+msgid ""
+"Negative buffer value is not accepted. Use Buffer interior to generate an "
+"'inside' shape"
+msgstr ""
+"No se acepta el valor de búfer negativo. Usa el interior del amortiguador "
+"para generar una forma 'interior'"
+
+#: AppEditors/FlatCAMGeoEditor.py:4948 AppEditors/FlatCAMGeoEditor.py:5001
+#: AppEditors/FlatCAMGeoEditor.py:5051
+msgid "Nothing selected for buffering."
+msgstr "Nada seleccionado para el almacenamiento en búfer."
+
+#: AppEditors/FlatCAMGeoEditor.py:4953 AppEditors/FlatCAMGeoEditor.py:5005
+#: AppEditors/FlatCAMGeoEditor.py:5056
+msgid "Invalid distance for buffering."
+msgstr "Distancia no válida para el almacenamiento en búfer."
+
+#: AppEditors/FlatCAMGeoEditor.py:4977 AppEditors/FlatCAMGeoEditor.py:5076
+msgid "Failed, the result is empty. Choose a different buffer value."
+msgstr "Falló, el resultado está vacío. Elija un valor de búfer diferente."
+
+#: AppEditors/FlatCAMGeoEditor.py:4988
+msgid "Full buffer geometry created."
+msgstr "Geometría de búfer completa creada."
+
+#: AppEditors/FlatCAMGeoEditor.py:4994
+msgid "Negative buffer value is not accepted."
+msgstr "No se acepta el valor negativo del búfer."
+
+#: AppEditors/FlatCAMGeoEditor.py:5025
+msgid "Failed, the result is empty. Choose a smaller buffer value."
+msgstr "Falló, el resultado está vacío. Elija un valor de búfer más pequeño."
+
+#: AppEditors/FlatCAMGeoEditor.py:5035
+msgid "Interior buffer geometry created."
+msgstr "Geometría de búfer interior creada."
+
+#: AppEditors/FlatCAMGeoEditor.py:5086
+msgid "Exterior buffer geometry created."
+msgstr "Geometría de búfer exterior creada."
+
+#: AppEditors/FlatCAMGeoEditor.py:5092
+#, python-format
+msgid "Could not do Paint. Overlap value has to be less than 100%%."
+msgstr ""
+"No se pudo pintar. El valor de superposición debe ser inferior al 100 %%."
+
+#: AppEditors/FlatCAMGeoEditor.py:5099
+msgid "Nothing selected for painting."
+msgstr "Nada seleccionado para pintar."
+
+#: AppEditors/FlatCAMGeoEditor.py:5105
+msgid "Invalid value for"
+msgstr "Valor no válido para"
+
+#: AppEditors/FlatCAMGeoEditor.py:5164
+msgid ""
+"Could not do Paint. Try a different combination of parameters. Or a "
+"different method of Paint"
+msgstr ""
+"No se pudo pintar. Pruebe con una combinación diferente de parámetros. O un "
+"método diferente de pintura"
+
+#: AppEditors/FlatCAMGeoEditor.py:5175
+msgid "Paint done."
+msgstr "Pintura hecha."
+
+#: AppEditors/FlatCAMGrbEditor.py:211
+msgid "To add an Pad first select a aperture in Aperture Table"
+msgstr ""
+"Para agregar un Pad primero, seleccione una abertura en la Tabla de Aperture"
+
+#: AppEditors/FlatCAMGrbEditor.py:218 AppEditors/FlatCAMGrbEditor.py:418
+msgid "Aperture size is zero. It needs to be greater than zero."
+msgstr "El tamaño de la abertura es cero. Tiene que ser mayor que cero."
+
+#: AppEditors/FlatCAMGrbEditor.py:371 AppEditors/FlatCAMGrbEditor.py:684
+msgid ""
+"Incompatible aperture type. Select an aperture with type 'C', 'R' or 'O'."
+msgstr ""
+"Tipo de apertura incompatible. Seleccione una abertura con el tipo 'C', 'R' "
+"o 'O'."
+
+#: AppEditors/FlatCAMGrbEditor.py:383
+msgid "Done. Adding Pad completed."
+msgstr "Hecho. Añadiendo Pad completado."
+
+#: AppEditors/FlatCAMGrbEditor.py:410
+msgid "To add an Pad Array first select a aperture in Aperture Table"
+msgstr ""
+"Para agregar un Pad Array, primero seleccione una abertura en la Tabla de "
+"Aperturas"
+
+#: AppEditors/FlatCAMGrbEditor.py:490
+msgid "Click on the Pad Circular Array Start position"
+msgstr "Haga clic en la posición de inicio Pad Array Circular"
+
+#: AppEditors/FlatCAMGrbEditor.py:710
+msgid "Too many Pads for the selected spacing angle."
+msgstr "Demasiados pads para el ángulo de espaciado seleccionado."
+
+#: AppEditors/FlatCAMGrbEditor.py:733
+msgid "Done. Pad Array added."
+msgstr "Hecho. Pad Array añadido."
+
+#: AppEditors/FlatCAMGrbEditor.py:758
+msgid "Select shape(s) and then click ..."
+msgstr "Seleccione forma (s) y luego haga clic en ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:770
+msgid "Failed. Nothing selected."
+msgstr "Ha fallado. Nada seleccionado."
+
+#: AppEditors/FlatCAMGrbEditor.py:786
+msgid ""
+"Failed. Poligonize works only on geometries belonging to the same aperture."
+msgstr ""
+"Ha fallado. Poligonize funciona solo en geometrías pertenecientes a la misma "
+"abertura."
+
+#: AppEditors/FlatCAMGrbEditor.py:840
+msgid "Done. Poligonize completed."
+msgstr "Hecho. Poligonize completado."
+
+#: AppEditors/FlatCAMGrbEditor.py:895 AppEditors/FlatCAMGrbEditor.py:1128
+#: AppEditors/FlatCAMGrbEditor.py:1152
+msgid "Corner Mode 1: 45 degrees ..."
+msgstr "Modo esquina 1: 45 grados ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:907 AppEditors/FlatCAMGrbEditor.py:1237
+msgid "Click on next Point or click Right mouse button to complete ..."
+msgstr ""
+"Haga clic en el siguiente punto o haga clic con el botón derecho del mouse "
+"para completar ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1116 AppEditors/FlatCAMGrbEditor.py:1149
+msgid "Corner Mode 2: Reverse 45 degrees ..."
+msgstr "Modo esquina 2: Invertir 45 grados ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1119 AppEditors/FlatCAMGrbEditor.py:1146
+msgid "Corner Mode 3: 90 degrees ..."
+msgstr "Modo esquina 3: 90 grados ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1122 AppEditors/FlatCAMGrbEditor.py:1143
+msgid "Corner Mode 4: Reverse 90 degrees ..."
+msgstr "Modo esquina 4: Invertir 90 grados ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1125 AppEditors/FlatCAMGrbEditor.py:1140
+msgid "Corner Mode 5: Free angle ..."
+msgstr "Modo esquina 5: ángulo libre ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1182 AppEditors/FlatCAMGrbEditor.py:1358
+#: AppEditors/FlatCAMGrbEditor.py:1397
+msgid "Track Mode 1: 45 degrees ..."
+msgstr "Modo de pista 1: 45 grados ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1338 AppEditors/FlatCAMGrbEditor.py:1392
+msgid "Track Mode 2: Reverse 45 degrees ..."
+msgstr "Modo de pista 2: Invertir 45 grados ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1343 AppEditors/FlatCAMGrbEditor.py:1387
+msgid "Track Mode 3: 90 degrees ..."
+msgstr "Modo de pista 3: 90 grados ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1348 AppEditors/FlatCAMGrbEditor.py:1382
+msgid "Track Mode 4: Reverse 90 degrees ..."
+msgstr "Modo de pista 4: Invertir 90 grados ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1353 AppEditors/FlatCAMGrbEditor.py:1377
+msgid "Track Mode 5: Free angle ..."
+msgstr "Modo de pista 5: ángulo libre ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1778
+msgid "Scale the selected Gerber apertures ..."
+msgstr "Escala las aperturas seleccionadas de Gerber ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1820
+msgid "Buffer the selected apertures ..."
+msgstr "Buffer de las aberturas seleccionadas ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1862
+msgid "Mark polygon areas in the edited Gerber ..."
+msgstr "Marcar áreas de polígono en el Gerber editado ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1928
+msgid "Nothing selected to move"
+msgstr "Nada seleccionado para mover"
+
+#: AppEditors/FlatCAMGrbEditor.py:2053
+msgid "Done. Apertures Move completed."
+msgstr "Hecho. Movimiento de aperturas completado."
+
+#: AppEditors/FlatCAMGrbEditor.py:2135
+msgid "Done. Apertures copied."
+msgstr "Hecho. Aberturas copiadas."
+
+#: AppEditors/FlatCAMGrbEditor.py:2453 AppGUI/MainGUI.py:1436
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:27
+msgid "Gerber Editor"
+msgstr "Gerber Editor"
+
+#: AppEditors/FlatCAMGrbEditor.py:2473 AppGUI/ObjectUI.py:228
+#: AppTools/ToolProperties.py:159
+msgid "Apertures"
+msgstr "Aberturas"
+
+#: AppEditors/FlatCAMGrbEditor.py:2475 AppGUI/ObjectUI.py:230
+msgid "Apertures Table for the Gerber Object."
+msgstr "Tabla de Aperturas para el Objeto Gerber."
+
+#: AppEditors/FlatCAMGrbEditor.py:2486 AppEditors/FlatCAMGrbEditor.py:3943
+#: AppGUI/ObjectUI.py:263
+msgid "Code"
+msgstr "Código"
+
+#: AppEditors/FlatCAMGrbEditor.py:2486 AppEditors/FlatCAMGrbEditor.py:3943
+#: AppGUI/ObjectUI.py:263
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:103
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43
+#: AppTools/ToolCopperThieving.py:261 AppTools/ToolCopperThieving.py:301
+#: AppTools/ToolFiducials.py:156
+msgid "Size"
+msgstr "Tamaño"
+
+#: AppEditors/FlatCAMGrbEditor.py:2486 AppEditors/FlatCAMGrbEditor.py:3943
+#: AppGUI/ObjectUI.py:263
+msgid "Dim"
+msgstr "Dim"
+
+#: AppEditors/FlatCAMGrbEditor.py:2491 AppGUI/ObjectUI.py:267
+msgid "Index"
+msgstr "Índice"
+
+#: AppEditors/FlatCAMGrbEditor.py:2493 AppEditors/FlatCAMGrbEditor.py:2522
+#: AppGUI/ObjectUI.py:269
+msgid "Aperture Code"
+msgstr "Código de apertura"
+
+#: AppEditors/FlatCAMGrbEditor.py:2495 AppGUI/ObjectUI.py:271
+msgid "Type of aperture: circular, rectangle, macros etc"
+msgstr "Tipo de apertura: circular, rectangular, macros, etc"
+
+#: AppEditors/FlatCAMGrbEditor.py:2497 AppGUI/ObjectUI.py:273
+msgid "Aperture Size:"
+msgstr "Tamaño de apertura:"
+
+#: AppEditors/FlatCAMGrbEditor.py:2499 AppGUI/ObjectUI.py:275
+msgid ""
+"Aperture Dimensions:\n"
+" - (width, height) for R, O type.\n"
+" - (dia, nVertices) for P type"
+msgstr ""
+"Dimensiones de la abertura:\n"
+" - (ancho, alto) para R, O tipo.\n"
+" - (dia, nVertices) para tipo P"
+
+#: AppEditors/FlatCAMGrbEditor.py:2523
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:58
+msgid "Code for the new aperture"
+msgstr "Código para la nueva apertura"
+
+#: AppEditors/FlatCAMGrbEditor.py:2532
+msgid "Aperture Size"
+msgstr "Tamaño de apertura"
+
+#: AppEditors/FlatCAMGrbEditor.py:2534
+msgid ""
+"Size for the new aperture.\n"
+"If aperture type is 'R' or 'O' then\n"
+"this value is automatically\n"
+"calculated as:\n"
+"sqrt(width**2 + height**2)"
+msgstr ""
+"Tamaño para la nueva apertura.\n"
+"Si el tipo de apertura es 'R' o 'O' entonces\n"
+"este valor es automáticamente\n"
+"calculado como:\n"
+"sqrt (ancho ** 2 + altura ** 2)"
+
+#: AppEditors/FlatCAMGrbEditor.py:2548
+msgid "Aperture Type"
+msgstr "Tipo de apertura"
+
+#: AppEditors/FlatCAMGrbEditor.py:2550
+msgid ""
+"Select the type of new aperture. Can be:\n"
+"C = circular\n"
+"R = rectangular\n"
+"O = oblong"
+msgstr ""
+"Seleccione el tipo de apertura nueva. Puede ser:\n"
+"C = circular\n"
+"R = rectangular\n"
+"O = oblongo"
+
+#: AppEditors/FlatCAMGrbEditor.py:2561
+msgid "Aperture Dim"
+msgstr "Apertura Dim"
+
+#: AppEditors/FlatCAMGrbEditor.py:2563
+msgid ""
+"Dimensions for the new aperture.\n"
+"Active only for rectangular apertures (type R).\n"
+"The format is (width, height)"
+msgstr ""
+"Dimensiones para la nueva apertura.\n"
+"Activo solo para aberturas rectangulares (tipo R).\n"
+"El formato es (ancho, alto)."
+
+#: AppEditors/FlatCAMGrbEditor.py:2572
+msgid "Add/Delete Aperture"
+msgstr "Añadir / Eliminar Apertura"
+
+#: AppEditors/FlatCAMGrbEditor.py:2574
+msgid "Add/Delete an aperture in the aperture table"
+msgstr "Añadir / Eliminar una apertura en la tabla de aperturas"
+
+#: AppEditors/FlatCAMGrbEditor.py:2583
+msgid "Add a new aperture to the aperture list."
+msgstr "Agregar una nueva apertura a la lista de apertura."
+
+#: AppEditors/FlatCAMGrbEditor.py:2586 AppEditors/FlatCAMGrbEditor.py:2734
+#: AppGUI/MainGUI.py:753 AppGUI/MainGUI.py:1071 AppGUI/MainGUI.py:1487
+#: AppGUI/MainGUI.py:2063 AppGUI/MainGUI.py:4433 AppGUI/ObjectUI.py:1725
+#: AppObjects/FlatCAMGeometry.py:556 AppTools/ToolNCC.py:316
+#: AppTools/ToolNCC.py:637 AppTools/ToolPaint.py:298 AppTools/ToolPaint.py:681
+#: AppTools/ToolSolderPaste.py:128 AppTools/ToolSolderPaste.py:600
+#: App_Main.py:5595
+msgid "Delete"
+msgstr "Borrar"
+
+#: AppEditors/FlatCAMGrbEditor.py:2588
+msgid "Delete a aperture in the aperture list"
+msgstr "Eliminar una abertura en la lista de aperturas"
+
+#: AppEditors/FlatCAMGrbEditor.py:2605
+msgid "Buffer Aperture"
+msgstr "Apertura del tampón"
+
+#: AppEditors/FlatCAMGrbEditor.py:2607
+msgid "Buffer a aperture in the aperture list"
+msgstr "Buffer de apertura en la lista de apertura"
+
+#: AppEditors/FlatCAMGrbEditor.py:2620
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:194
+msgid "Buffer distance"
+msgstr "Dist. de buffer"
+
+#: AppEditors/FlatCAMGrbEditor.py:2621
+msgid "Buffer corner"
+msgstr "Rincón del búfer"
+
+#: AppEditors/FlatCAMGrbEditor.py:2623
+msgid ""
+"There are 3 types of corners:\n"
+" - 'Round': the corner is rounded.\n"
+" - 'Square': the corner is met in a sharp angle.\n"
+" - 'Beveled': the corner is a line that directly connects the features "
+"meeting in the corner"
+msgstr ""
+"Hay 3 tipos de esquinas:\n"
+" - 'Redondo': la esquina es redondeada.\n"
+" - 'Cuadrado:' la esquina se encuentra en un ángulo agudo.\n"
+" - 'Biselado:' la esquina es una línea que conecta directamente las "
+"funciones que se encuentran en la esquina"
+
+#: AppEditors/FlatCAMGrbEditor.py:2638 AppGUI/MainGUI.py:1058
+#: AppGUI/MainGUI.py:1413 AppGUI/MainGUI.py:1456 AppGUI/MainGUI.py:2051
+#: AppGUI/MainGUI.py:4430
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:200
+#: AppTools/ToolTransform.py:29
+msgid "Buffer"
+msgstr "Buffer"
+
+#: AppEditors/FlatCAMGrbEditor.py:2653
+msgid "Scale Aperture"
+msgstr "Apertura de la escala"
+
+#: AppEditors/FlatCAMGrbEditor.py:2655
+msgid "Scale a aperture in the aperture list"
+msgstr "Escala una abertura en la lista de aperturas"
+
+#: AppEditors/FlatCAMGrbEditor.py:2663
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:209
+msgid "Scale factor"
+msgstr "Factor de escala"
+
+#: AppEditors/FlatCAMGrbEditor.py:2665
+msgid ""
+"The factor by which to scale the selected aperture.\n"
+"Values can be between 0.0000 and 999.9999"
+msgstr ""
+"El factor por el cual escalar la apertura seleccionada.\n"
+"Los valores pueden estar entre 0.0000 y 999.9999"
+
+#: AppEditors/FlatCAMGrbEditor.py:2693
+msgid "Mark polygons"
+msgstr "Marcar polígonos"
+
+#: AppEditors/FlatCAMGrbEditor.py:2695
+msgid "Mark the polygon areas."
+msgstr "Marca las áreas del polígono."
+
+#: AppEditors/FlatCAMGrbEditor.py:2703
+msgid "Area UPPER threshold"
+msgstr "Umbral SUPERIOR área"
+
+#: AppEditors/FlatCAMGrbEditor.py:2705
+msgid ""
+"The threshold value, all areas less than this are marked.\n"
+"Can have a value between 0.0000 and 9999.9999"
+msgstr ""
+"El valor de umbral, todas las áreas menos que esto están marcadas.\n"
+"Puede tener un valor entre 0.0000 y 9999.9999"
+
+#: AppEditors/FlatCAMGrbEditor.py:2712
+msgid "Area LOWER threshold"
+msgstr "Umbral inferior de la zona"
+
+#: AppEditors/FlatCAMGrbEditor.py:2714
+msgid ""
+"The threshold value, all areas more than this are marked.\n"
+"Can have a value between 0.0000 and 9999.9999"
+msgstr ""
+"El valor de umbral, todas las áreas más que esto están marcadas.\n"
+"Puede tener un valor entre 0.0000 y 9999.9999"
+
+#: AppEditors/FlatCAMGrbEditor.py:2728
+msgid "Mark"
+msgstr "Marque"
+
+#: AppEditors/FlatCAMGrbEditor.py:2730
+msgid "Mark the polygons that fit within limits."
+msgstr "Marque los polígonos que se ajustan dentro de los límites."
+
+#: AppEditors/FlatCAMGrbEditor.py:2736
+msgid "Delete all the marked polygons."
+msgstr "Eliminar todos los polígonos marcados."
+
+#: AppEditors/FlatCAMGrbEditor.py:2742
+msgid "Clear all the markings."
+msgstr "Borra todas las marcas."
+
+#: AppEditors/FlatCAMGrbEditor.py:2762 AppGUI/MainGUI.py:1043
+#: AppGUI/MainGUI.py:2036 AppGUI/MainGUI.py:4430
+msgid "Add Pad Array"
+msgstr "Agregar matriz de pad"
+
+#: AppEditors/FlatCAMGrbEditor.py:2764
+msgid "Add an array of pads (linear or circular array)"
+msgstr "Añadir una matriz de pads (lineal o circular)"
+
+#: AppEditors/FlatCAMGrbEditor.py:2770
+msgid ""
+"Select the type of pads array to create.\n"
+"It can be Linear X(Y) or Circular"
+msgstr ""
+"Seleccione el tipo de matriz de pads para crear.\n"
+"Puede ser Lineal X (Y) o Circular"
+
+#: AppEditors/FlatCAMGrbEditor.py:2781
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:95
+msgid "Nr of pads"
+msgstr "Nº de almohadillas"
+
+#: AppEditors/FlatCAMGrbEditor.py:2783
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:97
+msgid "Specify how many pads to be in the array."
+msgstr "Especifique cuántos pads estarán en la matriz."
+
+#: AppEditors/FlatCAMGrbEditor.py:2832
+msgid ""
+"Angle at which the linear array is placed.\n"
+"The precision is of max 2 decimals.\n"
+"Min value is: -359.99 degrees.\n"
+"Max value is: 360.00 degrees."
+msgstr ""
+"Ángulo en el que se coloca la matriz lineal.\n"
+"La precisión es de max 2 decimales.\n"
+"El valor mínimo es: -359.99 grados.\n"
+"El valor máximo es: 360.00 grados."
+
+#: AppEditors/FlatCAMGrbEditor.py:3326 AppEditors/FlatCAMGrbEditor.py:3330
+msgid "Aperture code value is missing or wrong format. Add it and retry."
+msgstr ""
+"Falta el valor del código de apertura o el formato es incorrecto. Agrégalo y "
+"vuelve a intentarlo."
+
+#: AppEditors/FlatCAMGrbEditor.py:3366
+msgid ""
+"Aperture dimensions value is missing or wrong format. Add it in format "
+"(width, height) and retry."
+msgstr ""
+"Falta el valor de las dimensiones de la abertura o el formato es incorrecto. "
+"Agréguelo en formato (ancho, alto) y vuelva a intentarlo."
+
+#: AppEditors/FlatCAMGrbEditor.py:3379
+msgid "Aperture size value is missing or wrong format. Add it and retry."
+msgstr ""
+"Falta el valor del tamaño de la apertura o el formato es incorrecto. "
+"Agrégalo y vuelve a intentarlo."
+
+#: AppEditors/FlatCAMGrbEditor.py:3390
+msgid "Aperture already in the aperture table."
+msgstr "Apertura ya en la mesa de apertura."
+
+#: AppEditors/FlatCAMGrbEditor.py:3397
+msgid "Added new aperture with code"
+msgstr "Agregada nueva apertura con código"
+
+#: AppEditors/FlatCAMGrbEditor.py:3429
+msgid " Select an aperture in Aperture Table"
+msgstr " Seleccione una abertura en la Mesa de Apertura"
+
+#: AppEditors/FlatCAMGrbEditor.py:3437
+msgid "Select an aperture in Aperture Table -->"
+msgstr "Seleccione una abertura en la Tabla de Apertura ->"
+
+#: AppEditors/FlatCAMGrbEditor.py:3451
+msgid "Deleted aperture with code"
+msgstr "Apertura eliminada con código"
+
+#: AppEditors/FlatCAMGrbEditor.py:3519
+msgid "Dimensions need two float values separated by comma."
+msgstr ""
+"Dimensions need two float values separated by comma.Se esperaba una lista de "
+"nombres de objetos separados por comas. Tiene"
+
+#: AppEditors/FlatCAMGrbEditor.py:3528
+msgid "Dimensions edited."
+msgstr "Dimensiones editadas."
+
+#: AppEditors/FlatCAMGrbEditor.py:4058
+msgid "Loading Gerber into Editor"
+msgstr "Cargando Gerber en el Editor"
+
+#: AppEditors/FlatCAMGrbEditor.py:4186
+msgid "Setting up the UI"
+msgstr "Configurar la IU"
+
+#: AppEditors/FlatCAMGrbEditor.py:4187
+#, fuzzy
+#| msgid "Adding geometry finished. Preparing the GUI"
+msgid "Adding geometry finished. Preparing the AppGUI"
+msgstr "Adición de geometría terminada. Preparando la GUI"
+
+#: AppEditors/FlatCAMGrbEditor.py:4196
+msgid "Finished loading the Gerber object into the editor."
+msgstr "Terminó de cargar el objeto Gerber en el editor."
+
+#: AppEditors/FlatCAMGrbEditor.py:4335
+msgid ""
+"There are no Aperture definitions in the file. Aborting Gerber creation."
+msgstr ""
+"No hay definiciones de Aperture en el archivo. Abortando la creación de "
+"Gerber."
+
+#: AppEditors/FlatCAMGrbEditor.py:4338 AppObjects/AppObject.py:133
+#: AppObjects/FlatCAMGeometry.py:1775 AppParsers/ParseExcellon.py:896
+#: AppTools/ToolPcbWizard.py:432 App_Main.py:8369 App_Main.py:8433
+#: App_Main.py:8564 App_Main.py:8629 App_Main.py:9281
+msgid "An internal error has occurred. See shell.\n"
+msgstr "Ha ocurrido un error interno. Ver concha\n"
+
+#: AppEditors/FlatCAMGrbEditor.py:4345
+msgid "Creating Gerber."
+msgstr "Creación de Gerber."
+
+#: AppEditors/FlatCAMGrbEditor.py:4354
+msgid "Done. Gerber editing finished."
+msgstr "La edición de gerber terminó."
+
+#: AppEditors/FlatCAMGrbEditor.py:4372
+msgid "Cancelled. No aperture is selected"
+msgstr "Cancelado. No se selecciona ninguna apertura"
+
+#: AppEditors/FlatCAMGrbEditor.py:4527 App_Main.py:5921
+msgid "Coordinates copied to clipboard."
+msgstr "Coordenadas copiadas al portapapeles."
+
+#: AppEditors/FlatCAMGrbEditor.py:4970
+msgid "Failed. No aperture geometry is selected."
+msgstr "Ha fallado. No se selecciona ninguna geometría de apertura."
+
+#: AppEditors/FlatCAMGrbEditor.py:4979 AppEditors/FlatCAMGrbEditor.py:5250
+msgid "Done. Apertures geometry deleted."
+msgstr "Hecho. Geometría de las aberturas eliminadas."
+
+#: AppEditors/FlatCAMGrbEditor.py:5122
+msgid "No aperture to buffer. Select at least one aperture and try again."
+msgstr ""
+"No hay apertura para amortiguar. Seleccione al menos una abertura e intente "
+"de nuevo."
+
+#: AppEditors/FlatCAMGrbEditor.py:5134
+msgid "Failed."
+msgstr "Ha fallado."
+
+#: AppEditors/FlatCAMGrbEditor.py:5153
+msgid "Scale factor value is missing or wrong format. Add it and retry."
+msgstr ""
+"Falta el valor del factor de escala o el formato es incorrecto. Agrégalo y "
+"vuelve a intentarlo."
+
+#: AppEditors/FlatCAMGrbEditor.py:5185
+msgid "No aperture to scale. Select at least one aperture and try again."
+msgstr ""
+"Sin apertura a escala. Seleccione al menos una abertura e intente de nuevo."
+
+#: AppEditors/FlatCAMGrbEditor.py:5201
+msgid "Done. Scale Tool completed."
+msgstr "Hecho. Herramienta de escala completada."
+
+#: AppEditors/FlatCAMGrbEditor.py:5239
+msgid "Polygons marked."
+msgstr "Polígonos marcados."
+
+#: AppEditors/FlatCAMGrbEditor.py:5242
+msgid "No polygons were marked. None fit within the limits."
+msgstr "No se marcaron polígonos. Ninguno encaja dentro de los límites."
+
+#: AppEditors/FlatCAMGrbEditor.py:5966
+msgid "Rotation action was not executed."
+msgstr "La acción de Rotación no se ejecutó."
+
+#: AppEditors/FlatCAMGrbEditor.py:6037 App_Main.py:5354 App_Main.py:5402
+msgid "Flip action was not executed."
+msgstr "La acción de voltear no se ejecutó."
+
+#: AppEditors/FlatCAMGrbEditor.py:6094
+msgid "Skew action was not executed."
+msgstr "La acción Sesgada no se ejecutó."
+
+#: AppEditors/FlatCAMGrbEditor.py:6159
+msgid "Scale action was not executed."
+msgstr "La acción de Escala no se ejecutó."
+
+#: AppEditors/FlatCAMGrbEditor.py:6202
+msgid "Offset action was not executed."
+msgstr "La acción de Desplazamiento no se ejecutó."
+
+#: AppEditors/FlatCAMGrbEditor.py:6252
+msgid "Geometry shape offset Y cancelled"
+msgstr "Forma de geometría offset Y cancelada"
+
+#: AppEditors/FlatCAMGrbEditor.py:6267
+msgid "Geometry shape skew X cancelled"
+msgstr "Forma geométrica sesgada X cancelada"
+
+#: AppEditors/FlatCAMGrbEditor.py:6282
+msgid "Geometry shape skew Y cancelled"
+msgstr "Forma geométrica sesgada Y cancelada"
+
+#: AppEditors/FlatCAMTextEditor.py:74
+msgid "Print Preview"
+msgstr "Vista previa de impres"
+
+#: AppEditors/FlatCAMTextEditor.py:75
+msgid "Open a OS standard Preview Print window."
+msgstr ""
+"Abra una ventana de Vista previa de impresión estándar del sistema operativo."
+
+#: AppEditors/FlatCAMTextEditor.py:78
+msgid "Print Code"
+msgstr "Imprimir código"
+
+#: AppEditors/FlatCAMTextEditor.py:79
+msgid "Open a OS standard Print window."
+msgstr "Abra una ventana de impresión estándar del sistema operativo."
+
+#: AppEditors/FlatCAMTextEditor.py:81
+msgid "Find in Code"
+msgstr "Encontr. en codigo"
+
+#: AppEditors/FlatCAMTextEditor.py:82
+msgid "Will search and highlight in yellow the string in the Find box."
+msgstr "Buscará y resaltará en amarillo la cadena en el Encuentra caja."
+
+#: AppEditors/FlatCAMTextEditor.py:86
+msgid "Find box. Enter here the strings to be searched in the text."
+msgstr "Encuentra caja. Ingrese aquí las cadenas a buscar en el texto."
+
+#: AppEditors/FlatCAMTextEditor.py:88
+msgid "Replace With"
+msgstr "Reemplazar con"
+
+#: AppEditors/FlatCAMTextEditor.py:89
+msgid ""
+"Will replace the string from the Find box with the one in the Replace box."
+msgstr "Reemplazará la cadena del cuadro Buscar con la del cuadro Reemplazar."
+
+#: AppEditors/FlatCAMTextEditor.py:93
+msgid "String to replace the one in the Find box throughout the text."
+msgstr "Cadena para reemplazar la del cuadro Buscar en todo el texto."
+
+#: AppEditors/FlatCAMTextEditor.py:95 AppGUI/ObjectUI.py:486
+#: AppGUI/ObjectUI.py:2349 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:54
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:88
+msgid "All"
+msgstr "Todos"
+
+#: AppEditors/FlatCAMTextEditor.py:96
+msgid ""
+"When checked it will replace all instances in the 'Find' box\n"
+"with the text in the 'Replace' box.."
+msgstr ""
+"Cuando está marcado, reemplazará todas las instancias en el cuadro 'Buscar'\n"
+"con el texto en el cuadro 'Reemplazar' .."
+
+#: AppEditors/FlatCAMTextEditor.py:99
+msgid "Copy All"
+msgstr "Cópialo todo"
+
+#: AppEditors/FlatCAMTextEditor.py:100
+msgid "Will copy all the text in the Code Editor to the clipboard."
+msgstr "Copiará todo el texto en el Editor de Código al portapapeles."
+
+#: AppEditors/FlatCAMTextEditor.py:103
+msgid "Open Code"
+msgstr "Código abierto"
+
+#: AppEditors/FlatCAMTextEditor.py:104
+msgid "Will open a text file in the editor."
+msgstr "Se abrirá un archivo de texto en el editor."
+
+#: AppEditors/FlatCAMTextEditor.py:106
+msgid "Save Code"
+msgstr "Guardar código"
+
+#: AppEditors/FlatCAMTextEditor.py:107
+msgid "Will save the text in the editor into a file."
+msgstr "Guardará el texto en el editor en un archivo."
+
+#: AppEditors/FlatCAMTextEditor.py:109
+msgid "Run Code"
+msgstr "Ejecutar código"
+
+#: AppEditors/FlatCAMTextEditor.py:110
+msgid "Will run the TCL commands found in the text file, one by one."
+msgstr ""
+"Ejecutará los comandos TCL encontrados en el archivo de texto, uno por uno."
+
+#: AppEditors/FlatCAMTextEditor.py:184
+msgid "Open file"
+msgstr "Abrir documento"
+
+#: AppEditors/FlatCAMTextEditor.py:215 AppEditors/FlatCAMTextEditor.py:220
+msgid "Export Code ..."
+msgstr "Exportar el código ..."
+
+#: AppEditors/FlatCAMTextEditor.py:272 AppObjects/FlatCAMCNCJob.py:955
+#: AppTools/ToolSolderPaste.py:1530
+msgid "No such file or directory"
+msgstr "El fichero o directorio no existe"
+
+#: AppEditors/FlatCAMTextEditor.py:284 AppObjects/FlatCAMCNCJob.py:969
+msgid "Saved to"
+msgstr "Guardado en"
+
+#: AppEditors/FlatCAMTextEditor.py:334
+msgid "Code Editor content copied to clipboard ..."
+msgstr "Contenido del editor de código copiado al portapapeles ..."
+
+#: AppGUI/GUIElements.py:2540
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:180
+#: AppTools/ToolDblSided.py:173 AppTools/ToolDblSided.py:388
+#: AppTools/ToolFilm.py:202
+msgid "Reference"
+msgstr "Referencia"
+
+#: AppGUI/GUIElements.py:2542
+msgid ""
+"The reference can be:\n"
+"- Absolute -> the reference point is point (0,0)\n"
+"- Relative -> the reference point is the mouse position before Jump"
+msgstr ""
+"La referencia puede ser:\n"
+"- Absoluto -> el punto de referencia es el punto (0,0)\n"
+"- Relativo -> el punto de referencia es la posición del mouse antes de Jump"
+
+#: AppGUI/GUIElements.py:2547
+msgid "Abs"
+msgstr "Abs"
+
+#: AppGUI/GUIElements.py:2548
+msgid "Relative"
+msgstr "Relativo"
+
+#: AppGUI/GUIElements.py:2558
+msgid "Location"
+msgstr "Ubicación"
+
+#: AppGUI/GUIElements.py:2560
+msgid ""
+"The Location value is a tuple (x,y).\n"
+"If the reference is Absolute then the Jump will be at the position (x,y).\n"
+"If the reference is Relative then the Jump will be at the (x,y) distance\n"
+"from the current mouse location point."
+msgstr ""
+"El valor de ubicación es una tupla (x, y).\n"
+"Si la referencia es Absoluta, entonces el Salto estará en la posición (x, "
+"y).\n"
+"Si la referencia es relativa, entonces el salto estará a la distancia (x, "
+"y)\n"
+"desde el punto de ubicación actual del mouse."
+
+#: AppGUI/GUIElements.py:2600
+msgid "Save Log"
+msgstr "Guardar Registro"
+
+#: AppGUI/GUIElements.py:2610 App_Main.py:2657 App_Main.py:3018
+msgid "Close"
+msgstr "Cerca"
+
+#: AppGUI/GUIElements.py:2619 AppTools/ToolShell.py:278
+msgid "Type >help< to get started"
+msgstr "Escriba >help< para comenzar"
+
+#: AppGUI/GUIElements.py:2990 AppGUI/GUIElements.py:2997
+msgid "Idle."
+msgstr "Ocioso."
+
+#: AppGUI/GUIElements.py:3030
+msgid "Application started ..."
+msgstr "Aplicacion iniciada ..."
+
+#: AppGUI/GUIElements.py:3031
+msgid "Hello!"
+msgstr "¡Hola!"
+
+#: AppGUI/GUIElements.py:3078 AppGUI/MainGUI.py:201 AppGUI/MainGUI.py:900
+#: AppGUI/MainGUI.py:1893
+msgid "Run Script ..."
+msgstr "Ejecutar Script ..."
+
+#: AppGUI/GUIElements.py:3080 AppGUI/MainGUI.py:203
+msgid ""
+"Will run the opened Tcl Script thus\n"
+"enabling the automation of certain\n"
+"functions of FlatCAM."
+msgstr ""
+"Ejecutará el Script Tcl abierto así\n"
+"permitiendo la automatización de ciertos\n"
+"Funciones de FlatCAM."
+
+#: AppGUI/GUIElements.py:3089 AppGUI/MainGUI.py:129
+#: AppTools/ToolPcbWizard.py:62 AppTools/ToolPcbWizard.py:69
+msgid "Open"
+msgstr "Abierto"
+
+#: AppGUI/GUIElements.py:3093
+msgid "Open Project ..."
+msgstr "Proyecto abierto ...Abierto &Project ..."
+
+#: AppGUI/GUIElements.py:3099 AppGUI/MainGUI.py:140
+msgid "Open &Gerber ...\tCtrl+G"
+msgstr "Abierto &Gerber ...\tCtrl+G"
+
+#: AppGUI/GUIElements.py:3104 AppGUI/MainGUI.py:145
+msgid "Open &Excellon ...\tCtrl+E"
+msgstr "Abierto &Excellon ...\tCtrl+E"
+
+#: AppGUI/GUIElements.py:3109 AppGUI/MainGUI.py:150
+msgid "Open G-&Code ..."
+msgstr "Abierto G-&Code ..."
+
+#: AppGUI/GUIElements.py:3119
+msgid "Exit"
+msgstr "Salida"
+
+#: AppGUI/MainGUI.py:78 AppGUI/MainGUI.py:80 AppGUI/MainGUI.py:1366
+msgid "Toggle Panel"
+msgstr "Panel de palanca"
+
+#: AppGUI/MainGUI.py:90
+msgid "File"
+msgstr "Archivo"
+
+#: AppGUI/MainGUI.py:95
+msgid "&New Project ...\tCtrl+N"
+msgstr "&Nuevo proyecto ...\tCtrl+N"
+
+#: AppGUI/MainGUI.py:97
+msgid "Will create a new, blank project"
+msgstr "Creará un nuevo proyecto en blanco"
+
+#: AppGUI/MainGUI.py:102
+msgid "&New"
+msgstr "&Nuevo"
+
+#: AppGUI/MainGUI.py:106
+msgid "Geometry\tN"
+msgstr "Geometría\tN"
+
+#: AppGUI/MainGUI.py:108
+msgid "Will create a new, empty Geometry Object."
+msgstr "Creará un nuevo objeto vacío de geometría."
+
+#: AppGUI/MainGUI.py:111
+msgid "Gerber\tB"
+msgstr "Gerber\tB"
+
+#: AppGUI/MainGUI.py:113
+msgid "Will create a new, empty Gerber Object."
+msgstr "Creará un nuevo objeto vacío de Gerber."
+
+#: AppGUI/MainGUI.py:116
+msgid "Excellon\tL"
+msgstr "Excellon\tL"
+
+#: AppGUI/MainGUI.py:118
+msgid "Will create a new, empty Excellon Object."
+msgstr "Creará un objeto Excellon nuevo y vacío."
+
+#: AppGUI/MainGUI.py:123
+msgid "Document\tD"
+msgstr "Documento\tD"
+
+#: AppGUI/MainGUI.py:125
+msgid "Will create a new, empty Document Object."
+msgstr "Creará un nuevo objeto de Documento vacío."
+
+#: AppGUI/MainGUI.py:134
+msgid "Open &Project ..."
+msgstr "Abierto &Project ..."
+
+#: AppGUI/MainGUI.py:157
+msgid "Open Config ..."
+msgstr "Abierto Config ..."
+
+#: AppGUI/MainGUI.py:162
+msgid "Recent projects"
+msgstr "Proyectos recientes"
+
+#: AppGUI/MainGUI.py:164
+msgid "Recent files"
+msgstr "Archivos recientes"
+
+#: AppGUI/MainGUI.py:167 AppGUI/MainGUI.py:755 AppGUI/MainGUI.py:1339
+msgid "Save"
+msgstr "Salvar"
+
+#: AppGUI/MainGUI.py:171
+msgid "&Save Project ...\tCtrl+S"
+msgstr "Guardar proyecto...\tCtrl+S"
+
+#: AppGUI/MainGUI.py:176
+msgid "Save Project &As ...\tCtrl+Shift+S"
+msgstr "Guardar proyecto como...\tCtrl+Shift+S"
+
+#: AppGUI/MainGUI.py:191
+msgid "Scripting"
+msgstr "Scripting"
+
+#: AppGUI/MainGUI.py:195 AppGUI/MainGUI.py:896 AppGUI/MainGUI.py:1889
+msgid "New Script ..."
+msgstr "Nuevo Script ..."
+
+#: AppGUI/MainGUI.py:197 AppGUI/MainGUI.py:898 AppGUI/MainGUI.py:1891
+msgid "Open Script ..."
+msgstr "Abrir Script ..."
+
+#: AppGUI/MainGUI.py:199
+msgid "Open Example ..."
+msgstr "Abrir ejemplo ..."
+
+#: AppGUI/MainGUI.py:218
+msgid "Import"
+msgstr "Importar"
+
+#: AppGUI/MainGUI.py:220
+msgid "&SVG as Geometry Object ..."
+msgstr "&SVG como objeto de geometría ..."
+
+#: AppGUI/MainGUI.py:223
+msgid "&SVG as Gerber Object ..."
+msgstr "&SVG como objeto de Gerber ..."
+
+#: AppGUI/MainGUI.py:228
+msgid "&DXF as Geometry Object ..."
+msgstr "&DXF como objeto de geometría ..."
+
+#: AppGUI/MainGUI.py:231
+msgid "&DXF as Gerber Object ..."
+msgstr "&DXF como objeto de Gerber ..."
+
+#: AppGUI/MainGUI.py:235
+msgid "HPGL2 as Geometry Object ..."
+msgstr "HPGL2 como objeto de geometría ..."
+
+#: AppGUI/MainGUI.py:241
+msgid "Export"
+msgstr "Exportar"
+
+#: AppGUI/MainGUI.py:245
+msgid "Export &SVG ..."
+msgstr "Exportar &SVG ..."
+
+#: AppGUI/MainGUI.py:249
+msgid "Export DXF ..."
+msgstr "Exportar DXF ..."
+
+#: AppGUI/MainGUI.py:255
+msgid "Export &PNG ..."
+msgstr "Exportar &PNG ..."
+
+#: AppGUI/MainGUI.py:257
+msgid ""
+"Will export an image in PNG format,\n"
+"the saved image will contain the visual \n"
+"information currently in FlatCAM Plot Area."
+msgstr ""
+"Exportará una imagen en formato PNG,\n"
+"La imagen guardada contendrá lo visual.\n"
+"Información actualmente en FlatCAM Plot Area."
+
+#: AppGUI/MainGUI.py:266
+msgid "Export &Excellon ..."
+msgstr "Exportación y Excellon ..."
+
+#: AppGUI/MainGUI.py:268
+msgid ""
+"Will export an Excellon Object as Excellon file,\n"
+"the coordinates format, the file units and zeros\n"
+"are set in Preferences -> Excellon Export."
+msgstr ""
+"Exportará un objeto de Excellon como archivo de Excellon,\n"
+"El formato de las coordenadas, las unidades de archivo y los ceros.\n"
+"se configuran en Preferencias -> Exportación de Excellon."
+
+#: AppGUI/MainGUI.py:275
+msgid "Export &Gerber ..."
+msgstr "Exportar &Gerber ..."
+
+#: AppGUI/MainGUI.py:277
+msgid ""
+"Will export an Gerber Object as Gerber file,\n"
+"the coordinates format, the file units and zeros\n"
+"are set in Preferences -> Gerber Export."
+msgstr ""
+"Exportará un objeto Gerber como archivo Gerber,\n"
+"El formato de las coordenadas, las unidades de archivo y los ceros.\n"
+"se establecen en Preferencias -> Exportar Gerber."
+
+#: AppGUI/MainGUI.py:287
+msgid "Backup"
+msgstr "Apoyo"
+
+#: AppGUI/MainGUI.py:292
+msgid "Import Preferences from file ..."
+msgstr "Importar preferencias del archivo ..."
+
+#: AppGUI/MainGUI.py:298
+msgid "Export Preferences to file ..."
+msgstr "Exportar preferencias a un archivo ..."
+
+#: AppGUI/MainGUI.py:306 AppGUI/preferences/PreferencesUIManager.py:1176
+msgid "Save Preferences"
+msgstr "Guardar Preferencias"
+
+#: AppGUI/MainGUI.py:312 AppGUI/MainGUI.py:4022
+msgid "Print (PDF)"
+msgstr "Imprimir (PDF)"
+
+#: AppGUI/MainGUI.py:320
+msgid "E&xit"
+msgstr "Salida"
+
+#: AppGUI/MainGUI.py:328 AppGUI/MainGUI.py:749 AppGUI/MainGUI.py:1489
+msgid "Edit"
+msgstr "Editar"
+
+#: AppGUI/MainGUI.py:332
+msgid "Edit Object\tE"
+msgstr "Editar objeto\tE"
+
+#: AppGUI/MainGUI.py:334
+msgid "Close Editor\tCtrl+S"
+msgstr "Cerrar Editor\tCtrl+S"
+
+#: AppGUI/MainGUI.py:343
+msgid "Conversion"
+msgstr "Conversión"
+
+#: AppGUI/MainGUI.py:345
+msgid "&Join Geo/Gerber/Exc -> Geo"
+msgstr "Unirse Geo/Gerber/Exc -> Geo"
+
+#: AppGUI/MainGUI.py:347
+msgid ""
+"Merge a selection of objects, which can be of type:\n"
+"- Gerber\n"
+"- Excellon\n"
+"- Geometry\n"
+"into a new combo Geometry object."
+msgstr ""
+"Combine una selección de objetos, que pueden ser de tipo:\n"
+"- Gerber\n"
+"- Excellon\n"
+"- Geometría\n"
+"en un nuevo objeto de geometría combo."
+
+#: AppGUI/MainGUI.py:354
+msgid "Join Excellon(s) -> Excellon"
+msgstr "Únete a Excellon (s) -> Excellon"
+
+#: AppGUI/MainGUI.py:356
+msgid "Merge a selection of Excellon objects into a new combo Excellon object."
+msgstr ""
+"Combine una selección de objetos de Excellon en un nuevo objeto de Excellon "
+"combinado."
+
+#: AppGUI/MainGUI.py:359
+msgid "Join Gerber(s) -> Gerber"
+msgstr "Únete a Gerber (s) -> Gerber"
+
+#: AppGUI/MainGUI.py:361
+msgid "Merge a selection of Gerber objects into a new combo Gerber object."
+msgstr ""
+"Combine una selección de objetos Gerber en un nuevo objeto combo Gerber."
+
+#: AppGUI/MainGUI.py:366
+msgid "Convert Single to MultiGeo"
+msgstr "Convertir solo geo a multi geo"
+
+#: AppGUI/MainGUI.py:368
+msgid ""
+"Will convert a Geometry object from single_geometry type\n"
+"to a multi_geometry type."
+msgstr ""
+"Convertirá un objeto de geometría de un tipo de geometría única\n"
+"a un tipo de geometría múltiple."
+
+#: AppGUI/MainGUI.py:372
+msgid "Convert Multi to SingleGeo"
+msgstr "Convertir multi a solo Geo"
+
+#: AppGUI/MainGUI.py:374
+msgid ""
+"Will convert a Geometry object from multi_geometry type\n"
+"to a single_geometry type."
+msgstr ""
+"Convertirá un objeto de geometría de tipo de geometría múltiple\n"
+"a un solo tipo de geometría."
+
+#: AppGUI/MainGUI.py:381
+msgid "Convert Any to Geo"
+msgstr "Convertir cualquiera a Geo"
+
+#: AppGUI/MainGUI.py:384
+msgid "Convert Any to Gerber"
+msgstr "Convertir cualquiera a Gerber"
+
+#: AppGUI/MainGUI.py:390
+msgid "&Copy\tCtrl+C"
+msgstr "Dupdo\tCtrl+C"
+
+#: AppGUI/MainGUI.py:395
+msgid "&Delete\tDEL"
+msgstr "Borrar\tDEL"
+
+#: AppGUI/MainGUI.py:400
+msgid "Se&t Origin\tO"
+msgstr "Establecer origen\tO"
+
+#: AppGUI/MainGUI.py:402
+msgid "Move to Origin\tShift+O"
+msgstr "Mover al origen\tShift+O"
+
+#: AppGUI/MainGUI.py:405
+msgid "Jump to Location\tJ"
+msgstr "Ir a la ubicación\tJ"
+
+#: AppGUI/MainGUI.py:407
+msgid "Locate in Object\tShift+J"
+msgstr "Localizar en Objeto\tShift+J"
+
+#: AppGUI/MainGUI.py:412
+msgid "Toggle Units\tQ"
+msgstr "Unidades de palanca\tQ"
+
+#: AppGUI/MainGUI.py:414
+msgid "&Select All\tCtrl+A"
+msgstr "Seleccionar todo\tCtrl+A"
+
+#: AppGUI/MainGUI.py:419
+msgid "&Preferences\tShift+P"
+msgstr "Preferencias\tShift+P"
+
+#: AppGUI/MainGUI.py:425 AppTools/ToolProperties.py:155
+msgid "Options"
+msgstr "Opciones"
+
+#: AppGUI/MainGUI.py:427
+msgid "&Rotate Selection\tShift+(R)"
+msgstr "Rotar selección\tShift+(R)"
+
+#: AppGUI/MainGUI.py:432
+msgid "&Skew on X axis\tShift+X"
+msgstr "Sesgo en el eje X\tShift+X"
+
+#: AppGUI/MainGUI.py:434
+msgid "S&kew on Y axis\tShift+Y"
+msgstr "Sesgo en el eje Y\tShift+Y"
+
+#: AppGUI/MainGUI.py:439
+msgid "Flip on &X axis\tX"
+msgstr "Voltear en el eje X\tX"
+
+#: AppGUI/MainGUI.py:441
+msgid "Flip on &Y axis\tY"
+msgstr "Voltear en el ejeY\tY"
+
+#: AppGUI/MainGUI.py:446
+msgid "View source\tAlt+S"
+msgstr "Ver fuente\tAlt+S"
+
+#: AppGUI/MainGUI.py:448
+msgid "Tools DataBase\tCtrl+D"
+msgstr "DB de Herramientas\tCtrl+D"
+
+#: AppGUI/MainGUI.py:455 AppGUI/MainGUI.py:1386
+msgid "View"
+msgstr "Ver"
+
+#: AppGUI/MainGUI.py:457
+msgid "Enable all plots\tAlt+1"
+msgstr "Habilitar todas las parcelas\tAlt+1"
+
+#: AppGUI/MainGUI.py:459
+msgid "Disable all plots\tAlt+2"
+msgstr "Deshabilitar todas las parcelas\tAlt+2"
+
+#: AppGUI/MainGUI.py:461
+msgid "Disable non-selected\tAlt+3"
+msgstr "Deshabilitar no seleccionado\tAlt+3"
+
+#: AppGUI/MainGUI.py:465
+msgid "&Zoom Fit\tV"
+msgstr "Ajuste de zoom\tV"
+
+#: AppGUI/MainGUI.py:467
+msgid "&Zoom In\t="
+msgstr "Acercarse\t="
+
+#: AppGUI/MainGUI.py:469
+msgid "&Zoom Out\t-"
+msgstr "Disminuir el zoom\t-"
+
+#: AppGUI/MainGUI.py:474
+msgid "Redraw All\tF5"
+msgstr "Redibujar todo\tF5"
+
+#: AppGUI/MainGUI.py:478
+msgid "Toggle Code Editor\tShift+E"
+msgstr "Alternar Editor de Código\tShift+E"
+
+#: AppGUI/MainGUI.py:481
+msgid "&Toggle FullScreen\tAlt+F10"
+msgstr "Alternar pantalla completa\tAlt+F10"
+
+#: AppGUI/MainGUI.py:483
+msgid "&Toggle Plot Area\tCtrl+F10"
+msgstr "Alternar área de la parcela\tCtrl+F10"
+
+#: AppGUI/MainGUI.py:485
+msgid "&Toggle Project/Sel/Tool\t`"
+msgstr "Palanca Proyecto / Sel / Tool\t`"
+
+#: AppGUI/MainGUI.py:489
+msgid "&Toggle Grid Snap\tG"
+msgstr "Activar cuadrícula\tG"
+
+#: AppGUI/MainGUI.py:491
+msgid "&Toggle Grid Lines\tAlt+G"
+msgstr "Alternar Líneas de Cuadrícula\tAlt+G"
+
+#: AppGUI/MainGUI.py:493
+msgid "&Toggle Axis\tShift+G"
+msgstr "Eje de palanca\tShift+G"
+
+#: AppGUI/MainGUI.py:495
+msgid "Toggle Workspace\tShift+W"
+msgstr "Alternar espacio de trabajo\tShift+W"
+
+#: AppGUI/MainGUI.py:497
+#, fuzzy
+#| msgid "Toggle Units"
+msgid "Toggle HUD\tAlt+M"
+msgstr "(Escriba ayuda para empezar)"
+
+#: AppGUI/MainGUI.py:502
+msgid "Objects"
+msgstr "Objetos"
+
+#: AppGUI/MainGUI.py:505 AppGUI/MainGUI.py:4020
+#: AppObjects/ObjectCollection.py:1120 AppObjects/ObjectCollection.py:1167
+msgid "Select All"
+msgstr "Seleccionar todo"
+
+#: AppGUI/MainGUI.py:507 AppObjects/ObjectCollection.py:1124
+#: AppObjects/ObjectCollection.py:1171
+msgid "Deselect All"
+msgstr "Deseleccionar todo"
+
+#: AppGUI/MainGUI.py:516
+msgid "&Command Line\tS"
+msgstr "Línea de comando\tS"
+
+#: AppGUI/MainGUI.py:521
+msgid "Help"
+msgstr "Ayuda"
+
+#: AppGUI/MainGUI.py:523
+msgid "Online Help\tF1"
+msgstr "Ayuda en Online\tF1"
+
+#: AppGUI/MainGUI.py:526 Bookmark.py:293
+msgid "Bookmarks"
+msgstr "Marcadores"
+
+#: AppGUI/MainGUI.py:529 App_Main.py:2989 App_Main.py:2998
+msgid "Bookmarks Manager"
+msgstr "Administrador de Marcadores"
+
+#: AppGUI/MainGUI.py:533
+msgid "Report a bug"
+msgstr "Reportar un error"
+
+#: AppGUI/MainGUI.py:536
+msgid "Excellon Specification"
+msgstr "Especificación de Excellon"
+
+#: AppGUI/MainGUI.py:538
+msgid "Gerber Specification"
+msgstr "Especificación de Gerber"
+
+#: AppGUI/MainGUI.py:543
+msgid "Shortcuts List\tF3"
+msgstr "Lista de accesos directos\tF3"
+
+#: AppGUI/MainGUI.py:545
+msgid "YouTube Channel\tF4"
+msgstr "Canal de Youtube\tF4"
+
+#: AppGUI/MainGUI.py:547 App_Main.py:2624
+msgid "About FlatCAM"
+msgstr "Sobre FlatCAM"
+
+#: AppGUI/MainGUI.py:556
+msgid "Add Circle\tO"
+msgstr "Añadir círculo\tO"
+
+#: AppGUI/MainGUI.py:559
+msgid "Add Arc\tA"
+msgstr "Añadir arco\tA"
+
+#: AppGUI/MainGUI.py:562
+msgid "Add Rectangle\tR"
+msgstr "Añadir rectángulo\tR"
+
+#: AppGUI/MainGUI.py:565
+msgid "Add Polygon\tN"
+msgstr "Añadir polígono\tN"
+
+#: AppGUI/MainGUI.py:568
+msgid "Add Path\tP"
+msgstr "Añadir ruta\tP"
+
+#: AppGUI/MainGUI.py:571
+msgid "Add Text\tT"
+msgstr "Añadir texto\tT"
+
+#: AppGUI/MainGUI.py:574
+msgid "Polygon Union\tU"
+msgstr "Unión de polígonos\tU"
+
+#: AppGUI/MainGUI.py:576
+msgid "Polygon Intersection\tE"
+msgstr "Intersección de polígonos\tE"
+
+#: AppGUI/MainGUI.py:578
+msgid "Polygon Subtraction\tS"
+msgstr "Sustracción de polígonos\tS"
+
+#: AppGUI/MainGUI.py:582
+msgid "Cut Path\tX"
+msgstr "Camino de corte\tX"
+
+#: AppGUI/MainGUI.py:586
+msgid "Copy Geom\tC"
+msgstr "Copia Geo\tC"
+
+#: AppGUI/MainGUI.py:588
+msgid "Delete Shape\tDEL"
+msgstr "Eliminar forma\tDEL"
+
+#: AppGUI/MainGUI.py:592 AppGUI/MainGUI.py:679
+msgid "Move\tM"
+msgstr "Movimiento\tM"
+
+#: AppGUI/MainGUI.py:594
+msgid "Buffer Tool\tB"
+msgstr "Herramienta amortiguadora\tB"
+
+#: AppGUI/MainGUI.py:597
+msgid "Paint Tool\tI"
+msgstr "Herramienta de pintura\tI"
+
+#: AppGUI/MainGUI.py:600
+msgid "Transform Tool\tAlt+R"
+msgstr "Herramienta de transformación\tAlt+R"
+
+#: AppGUI/MainGUI.py:604
+msgid "Toggle Corner Snap\tK"
+msgstr "Alternar esquina esquina\tK"
+
+#: AppGUI/MainGUI.py:610
+msgid ">Excellon Editor<"
+msgstr ">Excellon Editor<"
+
+#: AppGUI/MainGUI.py:614
+msgid "Add Drill Array\tA"
+msgstr "Añadir matriz de perfor.\tA"
+
+#: AppGUI/MainGUI.py:616
+msgid "Add Drill\tD"
+msgstr "Añadir taladro\tD"
+
+#: AppGUI/MainGUI.py:620
+msgid "Add Slot Array\tQ"
+msgstr "Agregar matriz de ranuras\tQ"
+
+#: AppGUI/MainGUI.py:622
+msgid "Add Slot\tW"
+msgstr "Agregar ranura\tW"
+
+#: AppGUI/MainGUI.py:626
+msgid "Resize Drill(S)\tR"
+msgstr "Cambiar el tamaño de taladro (s)\tR"
+
+#: AppGUI/MainGUI.py:629 AppGUI/MainGUI.py:673
+msgid "Copy\tC"
+msgstr "Dupdo\tC"
+
+#: AppGUI/MainGUI.py:631 AppGUI/MainGUI.py:675
+msgid "Delete\tDEL"
+msgstr "Borrar\tDEL"
+
+#: AppGUI/MainGUI.py:636
+msgid "Move Drill(s)\tM"
+msgstr "Mover taladro(s)\tM"
+
+#: AppGUI/MainGUI.py:641
+msgid ">Gerber Editor<"
+msgstr ">Gerber Editor<"
+
+#: AppGUI/MainGUI.py:645
+msgid "Add Pad\tP"
+msgstr "Añadir Pad\tP"
+
+#: AppGUI/MainGUI.py:647
+msgid "Add Pad Array\tA"
+msgstr "Agregar una matriz de pad\tA"
+
+#: AppGUI/MainGUI.py:649
+msgid "Add Track\tT"
+msgstr "Añadir pista\tT"
+
+#: AppGUI/MainGUI.py:651
+msgid "Add Region\tN"
+msgstr "Añadir región\tN"
+
+#: AppGUI/MainGUI.py:655
+msgid "Poligonize\tAlt+N"
+msgstr "Poligonize\tAlt+N"
+
+#: AppGUI/MainGUI.py:657
+msgid "Add SemiDisc\tE"
+msgstr "Añadir medio disco\tE"
+
+#: AppGUI/MainGUI.py:659
+msgid "Add Disc\tD"
+msgstr "Añadir disco\tD"
+
+#: AppGUI/MainGUI.py:661
+msgid "Buffer\tB"
+msgstr "Buffer\tB"
+
+#: AppGUI/MainGUI.py:663
+msgid "Scale\tS"
+msgstr "Escalar\tS"
+
+#: AppGUI/MainGUI.py:665
+msgid "Mark Area\tAlt+A"
+msgstr "Marcar area\tAlt+A"
+
+#: AppGUI/MainGUI.py:667
+msgid "Eraser\tCtrl+E"
+msgstr "Borrador\tCtrl+E"
+
+#: AppGUI/MainGUI.py:669
+msgid "Transform\tAlt+R"
+msgstr "Transformar\tAlt+R"
+
+#: AppGUI/MainGUI.py:696
+msgid "Enable Plot"
+msgstr "Habilitar Parcela"
+
+#: AppGUI/MainGUI.py:698
+msgid "Disable Plot"
+msgstr "Desactivar parcela"
+
+#: AppGUI/MainGUI.py:702
+msgid "Set Color"
+msgstr "Establecer color"
+
+#: AppGUI/MainGUI.py:705 App_Main.py:9548
+msgid "Red"
+msgstr "Rojo"
+
+#: AppGUI/MainGUI.py:708 App_Main.py:9550
+msgid "Blue"
+msgstr "Azul"
+
+#: AppGUI/MainGUI.py:711 App_Main.py:9553
+msgid "Yellow"
+msgstr "Amarillo"
+
+#: AppGUI/MainGUI.py:714 App_Main.py:9555
+msgid "Green"
+msgstr "Verde"
+
+#: AppGUI/MainGUI.py:717 App_Main.py:9557
+msgid "Purple"
+msgstr "Púrpura"
+
+#: AppGUI/MainGUI.py:720 App_Main.py:9559
+msgid "Brown"
+msgstr "Marrón"
+
+#: AppGUI/MainGUI.py:723 App_Main.py:9561 App_Main.py:9617
+msgid "White"
+msgstr "Blanca"
+
+#: AppGUI/MainGUI.py:726 App_Main.py:9563
+msgid "Black"
+msgstr "Negra"
+
+#: AppGUI/MainGUI.py:731 AppTools/ToolEtchCompensation.py:110 App_Main.py:9566
+msgid "Custom"
+msgstr "Personalizado"
+
+#: AppGUI/MainGUI.py:736 App_Main.py:9600
+msgid "Opacity"
+msgstr "Opacidad"
+
+#: AppGUI/MainGUI.py:739 App_Main.py:9576
+msgid "Default"
+msgstr "Predeterminado"
+
+#: AppGUI/MainGUI.py:744
+msgid "Generate CNC"
+msgstr "Generar CNC"
+
+#: AppGUI/MainGUI.py:746
+msgid "View Source"
+msgstr "Ver fuente"
+
+#: AppGUI/MainGUI.py:751 AppGUI/MainGUI.py:856 AppGUI/MainGUI.py:1069
+#: AppGUI/MainGUI.py:1485 AppGUI/MainGUI.py:1852 AppGUI/MainGUI.py:2061
+#: AppGUI/MainGUI.py:4430 AppGUI/ObjectUI.py:1719
+#: AppObjects/FlatCAMGeometry.py:553 AppTools/ToolPanelize.py:551
+#: AppTools/ToolPanelize.py:578 AppTools/ToolPanelize.py:671
+#: AppTools/ToolPanelize.py:700 AppTools/ToolPanelize.py:762
+msgid "Copy"
+msgstr "Dupdo"
+
+#: AppGUI/MainGUI.py:759 AppGUI/MainGUI.py:1498 AppTools/ToolProperties.py:31
+msgid "Properties"
+msgstr "Propiedades"
+
+#: AppGUI/MainGUI.py:788
+msgid "File Toolbar"
+msgstr "Barra de herramientas de archivo"
+
+#: AppGUI/MainGUI.py:792
+msgid "Edit Toolbar"
+msgstr "Barra de herramientas de edición"
+
+#: AppGUI/MainGUI.py:796
+msgid "View Toolbar"
+msgstr "Barra de herramientas de ver"
+
+#: AppGUI/MainGUI.py:800
+msgid "Shell Toolbar"
+msgstr "Barra de herramientas de Shell"
+
+#: AppGUI/MainGUI.py:804
+msgid "Tools Toolbar"
+msgstr "Barra de herramientas de Herramientas"
+
+#: AppGUI/MainGUI.py:808
+msgid "Excellon Editor Toolbar"
+msgstr "Barra de herramientas del editor de Excel"
+
+#: AppGUI/MainGUI.py:814
+msgid "Geometry Editor Toolbar"
+msgstr "Barra de herramientas del editor de geometría"
+
+#: AppGUI/MainGUI.py:818
+msgid "Gerber Editor Toolbar"
+msgstr "Barra de herramientas del editor Gerber"
+
+#: AppGUI/MainGUI.py:822
+msgid "Grid Toolbar"
+msgstr "Barra de herramientas de cuadrícula"
+
+#: AppGUI/MainGUI.py:836 AppGUI/MainGUI.py:1831 App_Main.py:6513
+#: App_Main.py:6517
+msgid "Open Gerber"
+msgstr "Abrir gerber"
+
+#: AppGUI/MainGUI.py:838 AppGUI/MainGUI.py:1833 App_Main.py:6551
+#: App_Main.py:6555
+msgid "Open Excellon"
+msgstr "Abierto Excellon"
+
+#: AppGUI/MainGUI.py:841 AppGUI/MainGUI.py:1836
+msgid "Open project"
+msgstr "Proyecto abierto"
+
+#: AppGUI/MainGUI.py:843 AppGUI/MainGUI.py:1838
+msgid "Save project"
+msgstr "Guardar proyecto"
+
+#: AppGUI/MainGUI.py:851 AppGUI/MainGUI.py:1847
+msgid "Save Object and close the Editor"
+msgstr "Guardar Objeto y cerrar el Editor"
+
+#: AppGUI/MainGUI.py:858 AppGUI/MainGUI.py:1854
+msgid "&Delete"
+msgstr "Borrar"
+
+#: AppGUI/MainGUI.py:861 AppGUI/MainGUI.py:1857 AppGUI/MainGUI.py:4021
+#: AppGUI/MainGUI.py:4227 AppTools/ToolDistance.py:35
+#: AppTools/ToolDistance.py:197
+msgid "Distance Tool"
+msgstr "Herramienta de Dist"
+
+#: AppGUI/MainGUI.py:863 AppGUI/MainGUI.py:1859
+msgid "Distance Min Tool"
+msgstr "Herramienta Distancia Mínima"
+
+#: AppGUI/MainGUI.py:865 AppGUI/MainGUI.py:1861 AppGUI/MainGUI.py:4014
+msgid "Set Origin"
+msgstr "Establecer origen"
+
+#: AppGUI/MainGUI.py:867 AppGUI/MainGUI.py:1863
+msgid "Move to Origin"
+msgstr "Mover al origen"
+
+#: AppGUI/MainGUI.py:870 AppGUI/MainGUI.py:1865
+msgid "Jump to Location"
+msgstr "Saltar a la ubicación"
+
+#: AppGUI/MainGUI.py:872 AppGUI/MainGUI.py:1867 AppGUI/MainGUI.py:4026
+msgid "Locate in Object"
+msgstr "Localizar en objeto"
+
+#: AppGUI/MainGUI.py:878 AppGUI/MainGUI.py:1873
+msgid "&Replot"
+msgstr "Replantear"
+
+#: AppGUI/MainGUI.py:880 AppGUI/MainGUI.py:1875
+msgid "&Clear plot"
+msgstr "Gráfico clara"
+
+#: AppGUI/MainGUI.py:882 AppGUI/MainGUI.py:1877 AppGUI/MainGUI.py:4017
+msgid "Zoom In"
+msgstr "Acercarse"
+
+#: AppGUI/MainGUI.py:884 AppGUI/MainGUI.py:1879 AppGUI/MainGUI.py:4017
+msgid "Zoom Out"
+msgstr "Disminuir el zoom"
+
+#: AppGUI/MainGUI.py:886 AppGUI/MainGUI.py:1388 AppGUI/MainGUI.py:1881
+#: AppGUI/MainGUI.py:4016
+msgid "Zoom Fit"
+msgstr "Ajuste de zoom"
+
+#: AppGUI/MainGUI.py:894 AppGUI/MainGUI.py:1887
+msgid "&Command Line"
+msgstr "Línea de comando"
+
+#: AppGUI/MainGUI.py:906 AppGUI/MainGUI.py:1899
+msgid "2Sided Tool"
+msgstr "Herramienta de 2 Caras"
+
+#: AppGUI/MainGUI.py:908 AppGUI/MainGUI.py:1901 AppGUI/MainGUI.py:4032
+msgid "Align Objects Tool"
+msgstr "Herram. de Alinear Objetos"
+
+#: AppGUI/MainGUI.py:910 AppGUI/MainGUI.py:1903 AppGUI/MainGUI.py:4033
+#: AppTools/ToolExtractDrills.py:393
+msgid "Extract Drills Tool"
+msgstr "Herram. de Extracción de Taladros"
+
+#: AppGUI/MainGUI.py:913 AppGUI/ObjectUI.py:596 AppTools/ToolCutOut.py:440
+msgid "Cutout Tool"
+msgstr "Herramienta de Corte"
+
+#: AppGUI/MainGUI.py:915 AppGUI/MainGUI.py:1908 AppGUI/ObjectUI.py:574
+#: AppGUI/ObjectUI.py:2287 AppTools/ToolNCC.py:974
+msgid "NCC Tool"
+msgstr "Herramienta NCC"
+
+#: AppGUI/MainGUI.py:921 AppGUI/MainGUI.py:1914
+msgid "Panel Tool"
+msgstr "Herramienta de Panel"
+
+#: AppGUI/MainGUI.py:923 AppGUI/MainGUI.py:1916 AppTools/ToolFilm.py:569
+msgid "Film Tool"
+msgstr "Herramienta de Película"
+
+#: AppGUI/MainGUI.py:925 AppGUI/MainGUI.py:1918 AppTools/ToolSolderPaste.py:553
+msgid "SolderPaste Tool"
+msgstr "Herramienta de Pasta"
+
+#: AppGUI/MainGUI.py:927 AppGUI/MainGUI.py:1920 AppTools/ToolSub.py:35
+msgid "Subtract Tool"
+msgstr "Herramienta de Sustracción"
+
+#: AppGUI/MainGUI.py:929 AppGUI/MainGUI.py:1922 AppTools/ToolRulesCheck.py:616
+msgid "Rules Tool"
+msgstr "Herramienta de Reglas"
+
+#: AppGUI/MainGUI.py:931 AppGUI/MainGUI.py:1924 AppGUI/MainGUI.py:4035
+#: AppTools/ToolOptimal.py:33 AppTools/ToolOptimal.py:307
+msgid "Optimal Tool"
+msgstr "Herramienta de Óptima"
+
+#: AppGUI/MainGUI.py:936 AppGUI/MainGUI.py:1929 AppGUI/MainGUI.py:4032
+msgid "Calculators Tool"
+msgstr "Herramienta de Calculadoras"
+
+#: AppGUI/MainGUI.py:940 AppGUI/MainGUI.py:1933 AppGUI/MainGUI.py:4036
+#: AppTools/ToolQRCode.py:43 AppTools/ToolQRCode.py:382
+msgid "QRCode Tool"
+msgstr "Herramienta QRCode"
+
+#: AppGUI/MainGUI.py:942 AppGUI/MainGUI.py:1935
+#: AppTools/ToolCopperThieving.py:39 AppTools/ToolCopperThieving.py:568
+msgid "Copper Thieving Tool"
+msgstr "Herramienta Thieving Tool"
+
+#: AppGUI/MainGUI.py:945 AppGUI/MainGUI.py:1938 AppGUI/MainGUI.py:4033
+#: AppTools/ToolFiducials.py:33 AppTools/ToolFiducials.py:396
+msgid "Fiducials Tool"
+msgstr "Herramienta de Fiduciales"
+
+#: AppGUI/MainGUI.py:947 AppGUI/MainGUI.py:1940 AppTools/ToolCalibration.py:37
+#: AppTools/ToolCalibration.py:759
+msgid "Calibration Tool"
+msgstr "Herramienta de Calibración"
+
+#: AppGUI/MainGUI.py:949 AppGUI/MainGUI.py:1942 AppGUI/MainGUI.py:4033
+msgid "Punch Gerber Tool"
+msgstr "Herram. de Perforadora Gerber"
+
+#: AppGUI/MainGUI.py:951 AppGUI/MainGUI.py:1944 AppTools/ToolInvertGerber.py:31
+msgid "Invert Gerber Tool"
+msgstr "Herram. Invertir Gerber"
+
+#: AppGUI/MainGUI.py:953 AppGUI/MainGUI.py:1946 AppGUI/MainGUI.py:4035
+#: AppTools/ToolCorners.py:31
+#, fuzzy
+#| msgid "Invert Gerber Tool"
+msgid "Corner Markers Tool"
+msgstr "Herram. Invertir Gerber"
+
+#: AppGUI/MainGUI.py:955 AppGUI/MainGUI.py:1948
+#: AppTools/ToolEtchCompensation.py:31
+#, fuzzy
+#| msgid "Editor Transformation Tool"
+msgid "Etch Compensation Tool"
+msgstr "Herram. de transform. del editor"
+
+#: AppGUI/MainGUI.py:961 AppGUI/MainGUI.py:987 AppGUI/MainGUI.py:1039
+#: AppGUI/MainGUI.py:1954 AppGUI/MainGUI.py:2032
+msgid "Select"
+msgstr "Seleccionar"
+
+#: AppGUI/MainGUI.py:963 AppGUI/MainGUI.py:1956
+msgid "Add Drill Hole"
+msgstr "Añadir taladro"
+
+#: AppGUI/MainGUI.py:965 AppGUI/MainGUI.py:1958
+msgid "Add Drill Hole Array"
+msgstr "Añadir matriz de taladro"
+
+#: AppGUI/MainGUI.py:967 AppGUI/MainGUI.py:1476 AppGUI/MainGUI.py:1962
+#: AppGUI/MainGUI.py:4312
+msgid "Add Slot"
+msgstr "Agregar ranura"
+
+#: AppGUI/MainGUI.py:969 AppGUI/MainGUI.py:1478 AppGUI/MainGUI.py:1964
+#: AppGUI/MainGUI.py:4311
+msgid "Add Slot Array"
+msgstr "Agregar matriz de ranuras"
+
+#: AppGUI/MainGUI.py:971 AppGUI/MainGUI.py:1481 AppGUI/MainGUI.py:1960
+msgid "Resize Drill"
+msgstr "Redimensionar taladro"
+
+#: AppGUI/MainGUI.py:975 AppGUI/MainGUI.py:1968
+msgid "Copy Drill"
+msgstr "Copia de taladro"
+
+#: AppGUI/MainGUI.py:977 AppGUI/MainGUI.py:1970
+msgid "Delete Drill"
+msgstr "Eliminar taladro"
+
+#: AppGUI/MainGUI.py:981 AppGUI/MainGUI.py:1974
+msgid "Move Drill"
+msgstr "Mover taladro"
+
+#: AppGUI/MainGUI.py:989 AppGUI/MainGUI.py:1982
+msgid "Add Circle"
+msgstr "Añadir Círculo"
+
+#: AppGUI/MainGUI.py:991 AppGUI/MainGUI.py:1984
+msgid "Add Arc"
+msgstr "Añadir Arco"
+
+#: AppGUI/MainGUI.py:993 AppGUI/MainGUI.py:1986
+msgid "Add Rectangle"
+msgstr "Añadir Rectángulo"
+
+#: AppGUI/MainGUI.py:997 AppGUI/MainGUI.py:1990
+msgid "Add Path"
+msgstr "Añadir Ruta"
+
+#: AppGUI/MainGUI.py:999 AppGUI/MainGUI.py:1992
+msgid "Add Polygon"
+msgstr "Añadir Polígono"
+
+#: AppGUI/MainGUI.py:1002 AppGUI/MainGUI.py:1995
+msgid "Add Text"
+msgstr "Añadir Texto"
+
+#: AppGUI/MainGUI.py:1004 AppGUI/MainGUI.py:1997
+msgid "Add Buffer"
+msgstr "Añadir Buffer"
+
+#: AppGUI/MainGUI.py:1006 AppGUI/MainGUI.py:1999
+msgid "Paint Shape"
+msgstr "Forma de pintura"
+
+#: AppGUI/MainGUI.py:1008 AppGUI/MainGUI.py:1065 AppGUI/MainGUI.py:1417
+#: AppGUI/MainGUI.py:1462 AppGUI/MainGUI.py:2001 AppGUI/MainGUI.py:2057
+msgid "Eraser"
+msgstr "Borrador"
+
+#: AppGUI/MainGUI.py:1012 AppGUI/MainGUI.py:2005
+msgid "Polygon Union"
+msgstr "Unión de polígonos"
+
+#: AppGUI/MainGUI.py:1014 AppGUI/MainGUI.py:2007
+msgid "Polygon Explode"
+msgstr "Polígono explotar"
+
+#: AppGUI/MainGUI.py:1017 AppGUI/MainGUI.py:2010
+msgid "Polygon Intersection"
+msgstr "Intersección de polígonos"
+
+#: AppGUI/MainGUI.py:1019 AppGUI/MainGUI.py:2012
+msgid "Polygon Subtraction"
+msgstr "Sustracción de polígonos"
+
+#: AppGUI/MainGUI.py:1023 AppGUI/MainGUI.py:2016
+msgid "Cut Path"
+msgstr "Camino de Corte"
+
+#: AppGUI/MainGUI.py:1025
+msgid "Copy Shape(s)"
+msgstr "Copiar Forma (s)"
+
+#: AppGUI/MainGUI.py:1028
+msgid "Delete Shape '-'"
+msgstr "Eliminar Forma '-'"
+
+#: AppGUI/MainGUI.py:1030 AppGUI/MainGUI.py:1073 AppGUI/MainGUI.py:1429
+#: AppGUI/MainGUI.py:1466 AppGUI/MainGUI.py:2022 AppGUI/MainGUI.py:2065
+#: AppGUI/ObjectUI.py:109
+msgid "Transformations"
+msgstr "Transformaciones"
+
+#: AppGUI/MainGUI.py:1033
+msgid "Move Objects "
+msgstr "Mover objetos "
+
+#: AppGUI/MainGUI.py:1041 AppGUI/MainGUI.py:2034 AppGUI/MainGUI.py:4431
+msgid "Add Pad"
+msgstr "Añadir Pad"
+
+#: AppGUI/MainGUI.py:1045 AppGUI/MainGUI.py:2038 AppGUI/MainGUI.py:4432
+msgid "Add Track"
+msgstr "Añadir Pista"
+
+#: AppGUI/MainGUI.py:1047 AppGUI/MainGUI.py:2040 AppGUI/MainGUI.py:4431
+msgid "Add Region"
+msgstr "Añadir Región"
+
+#: AppGUI/MainGUI.py:1049 AppGUI/MainGUI.py:1448 AppGUI/MainGUI.py:2042
+msgid "Poligonize"
+msgstr "Poligonizar"
+
+#: AppGUI/MainGUI.py:1052 AppGUI/MainGUI.py:1450 AppGUI/MainGUI.py:2045
+msgid "SemiDisc"
+msgstr "Medio disco"
+
+#: AppGUI/MainGUI.py:1054 AppGUI/MainGUI.py:1452 AppGUI/MainGUI.py:2047
+msgid "Disc"
+msgstr "Disco"
+
+#: AppGUI/MainGUI.py:1062 AppGUI/MainGUI.py:1460 AppGUI/MainGUI.py:2055
+msgid "Mark Area"
+msgstr "Marcar area"
+
+#: AppGUI/MainGUI.py:1076 AppGUI/MainGUI.py:1433 AppGUI/MainGUI.py:1496
+#: AppGUI/MainGUI.py:2068 AppGUI/MainGUI.py:4431 AppTools/ToolMove.py:27
+msgid "Move"
+msgstr "Movimiento"
+
+#: AppGUI/MainGUI.py:1084
+msgid "Snap to grid"
+msgstr "Encajar a la cuadricula"
+
+#: AppGUI/MainGUI.py:1087
+msgid "Grid X snapping distance"
+msgstr "Distancia de ajuste de la rejilla X"
+
+#: AppGUI/MainGUI.py:1092
+msgid "Grid Y snapping distance"
+msgstr "Distancia de ajuste de cuadrícula Y"
+
+#: AppGUI/MainGUI.py:1098
+msgid ""
+"When active, value on Grid_X\n"
+"is copied to the Grid_Y value."
+msgstr ""
+"Cuando está activo, el valor en Grid_X\n"
+"Se copia al valor Grid_Y."
+
+#: AppGUI/MainGUI.py:1105
+msgid "Snap to corner"
+msgstr "Ajustar a la esquina"
+
+#: AppGUI/MainGUI.py:1109 AppGUI/preferences/general/GeneralAPPSetGroupUI.py:78
+msgid "Max. magnet distance"
+msgstr "Distancia máxima del imán"
+
+#: AppGUI/MainGUI.py:1134 AppGUI/MainGUI.py:1379 App_Main.py:7543
+msgid "Project"
+msgstr "Proyecto"
+
+#: AppGUI/MainGUI.py:1149
+msgid "Selected"
+msgstr "Seleccionado"
+
+#: AppGUI/MainGUI.py:1177 AppGUI/MainGUI.py:1185
+msgid "Plot Area"
+msgstr "Área de la parcela"
+
+#: AppGUI/MainGUI.py:1212
+msgid "General"
+msgstr "General"
+
+#: AppGUI/MainGUI.py:1227 AppTools/ToolCopperThieving.py:74
+#: AppTools/ToolCorners.py:55 AppTools/ToolDblSided.py:64
+#: AppTools/ToolEtchCompensation.py:72 AppTools/ToolExtractDrills.py:61
+#: AppTools/ToolInvertGerber.py:72 AppTools/ToolOptimal.py:71
+#: AppTools/ToolPunchGerber.py:64
+msgid "GERBER"
+msgstr "GERBER"
+
+#: AppGUI/MainGUI.py:1237 AppTools/ToolDblSided.py:92
+msgid "EXCELLON"
+msgstr "EXCELLON"
+
+#: AppGUI/MainGUI.py:1247 AppTools/ToolDblSided.py:120
+msgid "GEOMETRY"
+msgstr "GEOMETRÍA"
+
+#: AppGUI/MainGUI.py:1257
+msgid "CNC-JOB"
+msgstr "CNC-JOB"
+
+#: AppGUI/MainGUI.py:1266 AppGUI/ObjectUI.py:563 AppGUI/ObjectUI.py:2262
+msgid "TOOLS"
+msgstr "HERRAMIENTAS"
+
+#: AppGUI/MainGUI.py:1275
+msgid "TOOLS 2"
+msgstr "HERRAMIENTAS 2"
+
+#: AppGUI/MainGUI.py:1285
+msgid "UTILITIES"
+msgstr "UTILIDADES"
+
+#: AppGUI/MainGUI.py:1302
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:192
+msgid "Restore Defaults"
+msgstr "Restaurar los valores predeterminados"
+
+#: AppGUI/MainGUI.py:1305
+msgid ""
+"Restore the entire set of default values\n"
+"to the initial values loaded after first launch."
+msgstr ""
+"Restaurar todo el conjunto de valores predeterminados\n"
+"a los valores iniciales cargados después del primer lanzamiento."
+
+#: AppGUI/MainGUI.py:1310
+msgid "Open Pref Folder"
+msgstr "Abrir Carpeta de Pref"
+
+#: AppGUI/MainGUI.py:1313
+msgid "Open the folder where FlatCAM save the preferences files."
+msgstr "Abra la carpeta donde FlatCAM guarda los archivos de preferencias."
+
+#: AppGUI/MainGUI.py:1317 AppGUI/MainGUI.py:1804
+msgid "Clear GUI Settings"
+msgstr "Borrar la configuración de la GUI"
+
+#: AppGUI/MainGUI.py:1321
+msgid ""
+"Clear the GUI settings for FlatCAM,\n"
+"such as: layout, gui state, style, hdpi support etc."
+msgstr ""
+"Borrar la configuración de la GUI para FlatCAM,\n"
+"tales como: diseño, estado gui, estilo, soporte hdpi etc."
+
+#: AppGUI/MainGUI.py:1332
+msgid "Apply"
+msgstr "Aplicar"
+
+#: AppGUI/MainGUI.py:1335
+msgid "Apply the current preferences without saving to a file."
+msgstr "Aplique las preferencias actuales sin guardar en un archivo."
+
+#: AppGUI/MainGUI.py:1342
+msgid ""
+"Save the current settings in the 'current_defaults' file\n"
+"which is the file storing the working default preferences."
+msgstr ""
+"Guarde la configuración actual en el archivo 'current_defaults'\n"
+"que es el archivo que almacena las preferencias predeterminadas de trabajo."
+
+#: AppGUI/MainGUI.py:1350
+msgid "Will not save the changes and will close the preferences window."
+msgstr "No guardará los cambios y cerrará la ventana de preferencias."
+
+#: AppGUI/MainGUI.py:1364
+msgid "Toggle Visibility"
+msgstr "Alternar visibilidad"
+
+#: AppGUI/MainGUI.py:1370
+msgid "New"
+msgstr "Nueva"
+
+#: AppGUI/MainGUI.py:1372 AppGUI/ObjectUI.py:450
+#: AppObjects/FlatCAMGerber.py:239 AppObjects/FlatCAMGerber.py:327
+#: AppTools/ToolCalibration.py:631 AppTools/ToolCalibration.py:648
+#: AppTools/ToolCalibration.py:815 AppTools/ToolCopperThieving.py:144
+#: AppTools/ToolCopperThieving.py:158 AppTools/ToolCopperThieving.py:604
+#: AppTools/ToolCutOut.py:92 AppTools/ToolDblSided.py:226
+#: AppTools/ToolFilm.py:69 AppTools/ToolFilm.py:92 AppTools/ToolImage.py:49
+#: AppTools/ToolImage.py:271 AppTools/ToolNCC.py:95 AppTools/ToolNCC.py:558
+#: AppTools/ToolNCC.py:1300 AppTools/ToolPaint.py:501 AppTools/ToolPaint.py:705
+#: AppTools/ToolPanelize.py:116 AppTools/ToolPanelize.py:385
+#: AppTools/ToolPanelize.py:402
+msgid "Geometry"
+msgstr "Geometría"
+
+#: AppGUI/MainGUI.py:1376
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:99
+#: AppTools/ToolAlignObjects.py:74 AppTools/ToolAlignObjects.py:110
+#: AppTools/ToolCalibration.py:197 AppTools/ToolCalibration.py:631
+#: AppTools/ToolCalibration.py:648 AppTools/ToolCalibration.py:807
+#: AppTools/ToolCalibration.py:815 AppTools/ToolCopperThieving.py:144
+#: AppTools/ToolCopperThieving.py:158 AppTools/ToolCopperThieving.py:604
+#: AppTools/ToolDblSided.py:225 AppTools/ToolFilm.py:342
+#: AppTools/ToolNCC.py:558 AppTools/ToolNCC.py:1300 AppTools/ToolPaint.py:501
+#: AppTools/ToolPaint.py:705 AppTools/ToolPanelize.py:385
+#: AppTools/ToolPunchGerber.py:149 AppTools/ToolPunchGerber.py:164
+msgid "Excellon"
+msgstr "Excellon"
+
+#: AppGUI/MainGUI.py:1383
+msgid "Grids"
+msgstr "Rejillas"
+
+#: AppGUI/MainGUI.py:1390
+msgid "Clear Plot"
+msgstr "Parcela clara"
+
+#: AppGUI/MainGUI.py:1392
+msgid "Replot"
+msgstr "Replantear"
+
+#: AppGUI/MainGUI.py:1396
+msgid "Geo Editor"
+msgstr "Geo Editor"
+
+#: AppGUI/MainGUI.py:1398
+msgid "Path"
+msgstr "Ruta"
+
+#: AppGUI/MainGUI.py:1400
+msgid "Rectangle"
+msgstr "Rectángulo"
+
+#: AppGUI/MainGUI.py:1403
+msgid "Circle"
+msgstr "Círculo"
+
+#: AppGUI/MainGUI.py:1407
+msgid "Arc"
+msgstr "Arco"
+
+#: AppGUI/MainGUI.py:1421
+msgid "Union"
+msgstr "Unión"
+
+#: AppGUI/MainGUI.py:1423
+msgid "Intersection"
+msgstr "Intersección"
+
+#: AppGUI/MainGUI.py:1425
+msgid "Subtraction"
+msgstr "Sustracción"
+
+#: AppGUI/MainGUI.py:1427 AppGUI/ObjectUI.py:2351
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:56
+msgid "Cut"
+msgstr "Cortar"
+
+#: AppGUI/MainGUI.py:1438
+msgid "Pad"
+msgstr "Pad"
+
+#: AppGUI/MainGUI.py:1440
+msgid "Pad Array"
+msgstr "Matriz de Pad"
+
+#: AppGUI/MainGUI.py:1444
+msgid "Track"
+msgstr "Pista"
+
+#: AppGUI/MainGUI.py:1446
+msgid "Region"
+msgstr "Región"
+
+#: AppGUI/MainGUI.py:1469
+msgid "Exc Editor"
+msgstr "Exc Editor"
+
+#: AppGUI/MainGUI.py:1471 AppGUI/MainGUI.py:4310
+msgid "Add Drill"
+msgstr "Añadir taladro"
+
+#: AppGUI/MainGUI.py:1491 App_Main.py:2198
+msgid "Close Editor"
+msgstr "Cerrar Editor"
+
+#: AppGUI/MainGUI.py:1516
+msgid ""
+"Absolute measurement.\n"
+"Reference is (X=0, Y= 0) position"
+msgstr ""
+"Medida absoluta.\n"
+"La referencia es (X = 0, Y = 0) posición"
+
+#: AppGUI/MainGUI.py:1523
+msgid "HUD (Heads up display)"
+msgstr ""
+
+#: AppGUI/MainGUI.py:1622
+msgid "Lock Toolbars"
+msgstr "Bloquear barras de herram"
+
+#: AppGUI/MainGUI.py:1792
+msgid "FlatCAM Preferences Folder opened."
+msgstr "Carpeta de preferencias de FlatCAM abierta."
+
+#: AppGUI/MainGUI.py:1803
+msgid "Are you sure you want to delete the GUI Settings? \n"
+msgstr "¿Está seguro de que desea eliminar la configuración de la GUI?\n"
+
+#: AppGUI/MainGUI.py:1806 AppGUI/preferences/PreferencesUIManager.py:941
+#: AppGUI/preferences/PreferencesUIManager.py:1179 AppTranslation.py:109
+#: AppTranslation.py:206 App_Main.py:2201 App_Main.py:3052 App_Main.py:5276
+#: App_Main.py:6336
+msgid "Yes"
+msgstr "Sí"
+
+#: AppGUI/MainGUI.py:1807 AppGUI/preferences/PreferencesUIManager.py:1180
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:164
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:150
+#: AppTools/ToolNCC.py:182 AppTools/ToolPaint.py:165 AppTranslation.py:110
+#: AppTranslation.py:207 App_Main.py:2202 App_Main.py:3053 App_Main.py:5277
+#: App_Main.py:6337
+msgid "No"
+msgstr "No"
+
+#: AppGUI/MainGUI.py:1906
+msgid "&Cutout Tool"
+msgstr "Herramienta de recorte"
+
+#: AppGUI/MainGUI.py:1980
+msgid "Select 'Esc'"
+msgstr "Selecciona 'Esc'"
+
+#: AppGUI/MainGUI.py:2018
+msgid "Copy Objects"
+msgstr "Copiar objetos"
+
+#: AppGUI/MainGUI.py:2020 AppGUI/MainGUI.py:4230
+msgid "Delete Shape"
+msgstr "Eliminar forma"
+
+#: AppGUI/MainGUI.py:2026
+msgid "Move Objects"
+msgstr "Mover objetos"
+
+#: AppGUI/MainGUI.py:2610
+msgid ""
+"Please first select a geometry item to be cutted\n"
+"then select the geometry item that will be cutted\n"
+"out of the first item. In the end press ~X~ key or\n"
+"the toolbar button."
+msgstr ""
+"Por favor, primero seleccione un elemento de geometría para ser cortado\n"
+"a continuación, seleccione el elemento de geometría que se cortará\n"
+"fuera del primer artículo. Al final presione la tecla ~ X ~ o\n"
+"el botón de la barra de herramientas."
+
+#: AppGUI/MainGUI.py:2617 AppGUI/MainGUI.py:2779 AppGUI/MainGUI.py:2824
+#: AppGUI/MainGUI.py:2844
+msgid "Warning"
+msgstr "Advertencia"
+
+#: AppGUI/MainGUI.py:2774
+msgid ""
+"Please select geometry items \n"
+"on which to perform Intersection Tool."
+msgstr ""
+"Por favor seleccione elementos de geometría\n"
+"en el que realizar Herramienta de Intersección."
+
+#: AppGUI/MainGUI.py:2819
+msgid ""
+"Please select geometry items \n"
+"on which to perform Substraction Tool."
+msgstr ""
+"Por favor seleccione elementos de geometría\n"
+"en el que realizar la Herramienta de Substracción."
+
+#: AppGUI/MainGUI.py:2839
+msgid ""
+"Please select geometry items \n"
+"on which to perform union."
+msgstr ""
+"Por favor seleccione elementos de geometría\n"
+"en el que realizar la Unión."
+
+#: AppGUI/MainGUI.py:2922 AppGUI/MainGUI.py:3137
+msgid "Cancelled. Nothing selected to delete."
+msgstr "Cancelado. Nada seleccionado para eliminar."
+
+#: AppGUI/MainGUI.py:3006 AppGUI/MainGUI.py:3253
+msgid "Cancelled. Nothing selected to copy."
+msgstr "Cancelado. Nada seleccionado para copiar."
+
+#: AppGUI/MainGUI.py:3052 AppGUI/MainGUI.py:3282
+msgid "Cancelled. Nothing selected to move."
+msgstr "Cancelado. Nada seleccionado para moverse."
+
+#: AppGUI/MainGUI.py:3308
+msgid "New Tool ..."
+msgstr "Nueva herramienta ..."
+
+#: AppGUI/MainGUI.py:3309 AppTools/ToolNCC.py:924 AppTools/ToolPaint.py:849
+#: AppTools/ToolSolderPaste.py:560
+msgid "Enter a Tool Diameter"
+msgstr "Introduzca un diá. de herram"
+
+#: AppGUI/MainGUI.py:3321
+msgid "Adding Tool cancelled ..."
+msgstr "Añadiendo herramienta cancelada ..."
+
+#: AppGUI/MainGUI.py:3335
+msgid "Distance Tool exit..."
+msgstr "Salida de Herramienta de Distancia ..."
+
+#: AppGUI/MainGUI.py:3514 App_Main.py:3042
+msgid "Application is saving the project. Please wait ..."
+msgstr "La aplicación es guardar el proyecto. Por favor espera ..."
+
+#: AppGUI/MainGUI.py:3649 App_Main.py:9059
+msgid "Shortcut Key List"
+msgstr " Lista de teclas de acceso directo "
+
+#: AppGUI/MainGUI.py:4010
+#, fuzzy
+#| msgid "Key Shortcut List"
+msgid "General Shortcut list"
+msgstr "Lista de atajos de teclas"
+
+#: AppGUI/MainGUI.py:4011
+msgid "SHOW SHORTCUT LIST"
+msgstr "MOSTRAR LISTA DE ACCESO CORTO"
+
+#: AppGUI/MainGUI.py:4011
+msgid "Switch to Project Tab"
+msgstr "Cambiar a la Pestaña Proyecto"
+
+#: AppGUI/MainGUI.py:4011
+msgid "Switch to Selected Tab"
+msgstr "Cambiar a la Pestaña Seleccionada"
+
+#: AppGUI/MainGUI.py:4012
+msgid "Switch to Tool Tab"
+msgstr "Cambiar a la Pestaña de Herramientas"
+
+#: AppGUI/MainGUI.py:4013
+msgid "New Gerber"
+msgstr "Nuevo Gerber"
+
+#: AppGUI/MainGUI.py:4013
+msgid "Edit Object (if selected)"
+msgstr "Editar objeto (si está seleccionado)"
+
+#: AppGUI/MainGUI.py:4013 App_Main.py:5581
+msgid "Grid On/Off"
+msgstr "Grid On/Off"
+
+#: AppGUI/MainGUI.py:4013
+msgid "Jump to Coordinates"
+msgstr "Saltar a coordenadas"
+
+#: AppGUI/MainGUI.py:4014
+msgid "New Excellon"
+msgstr "Nueva Excellon"
+
+#: AppGUI/MainGUI.py:4014
+msgid "Move Obj"
+msgstr "Mover objetos"
+
+#: AppGUI/MainGUI.py:4014
+msgid "New Geometry"
+msgstr "Nueva geometría"
+
+#: AppGUI/MainGUI.py:4014
+msgid "Change Units"
+msgstr "Cambiar unidades"
+
+#: AppGUI/MainGUI.py:4015
+msgid "Open Properties Tool"
+msgstr "Abrir herramienta de propiedades"
+
+#: AppGUI/MainGUI.py:4015
+msgid "Rotate by 90 degree CW"
+msgstr "Rotar 90 grados CW"
+
+#: AppGUI/MainGUI.py:4015
+msgid "Shell Toggle"
+msgstr "Palanca de 'Shell'"
+
+#: AppGUI/MainGUI.py:4016
+msgid ""
+"Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)"
+msgstr ""
+"Agregue una herramienta (cuando esté en la pestaña Geometría seleccionada o "
+"en Herramientas NCC o Herramientas de pintura)"
+
+#: AppGUI/MainGUI.py:4017
+msgid "Flip on X_axis"
+msgstr "Voltear sobre el eje X"
+
+#: AppGUI/MainGUI.py:4017
+msgid "Flip on Y_axis"
+msgstr "Voltear sobre el eje Y"
+
+#: AppGUI/MainGUI.py:4020
+msgid "Copy Obj"
+msgstr "Copiar objetos"
+
+#: AppGUI/MainGUI.py:4020
+msgid "Open Tools Database"
+msgstr "Abrir la DB de herramientas"
+
+#: AppGUI/MainGUI.py:4021
+msgid "Open Excellon File"
+msgstr "Abierto Excellon"
+
+#: AppGUI/MainGUI.py:4021
+msgid "Open Gerber File"
+msgstr "Abrir Gerber"
+
+#: AppGUI/MainGUI.py:4021
+msgid "New Project"
+msgstr "Nuevo Proyecto"
+
+#: AppGUI/MainGUI.py:4022 App_Main.py:6626 App_Main.py:6629
+msgid "Open Project"
+msgstr "Proyecto abierto"
+
+#: AppGUI/MainGUI.py:4022 AppTools/ToolPDF.py:41
+msgid "PDF Import Tool"
+msgstr "Herramienta de Importación de PDF"
+
+#: AppGUI/MainGUI.py:4022
+msgid "Save Project"
+msgstr "Guardar proyecto"
+
+#: AppGUI/MainGUI.py:4022
+msgid "Toggle Plot Area"
+msgstr "Alternar área de la parcela"
+
+#: AppGUI/MainGUI.py:4025
+msgid "Copy Obj_Name"
+msgstr "Copiar Nombre Obj"
+
+#: AppGUI/MainGUI.py:4026
+msgid "Toggle Code Editor"
+msgstr "Alternar editor de código"
+
+#: AppGUI/MainGUI.py:4026
+msgid "Toggle the axis"
+msgstr "Alternar el eje"
+
+#: AppGUI/MainGUI.py:4026 AppGUI/MainGUI.py:4225 AppGUI/MainGUI.py:4312
+#: AppGUI/MainGUI.py:4434
+msgid "Distance Minimum Tool"
+msgstr "Herramienta de Distancia Mínima"
+
+#: AppGUI/MainGUI.py:4027
+msgid "Open Preferences Window"
+msgstr "Abrir ventana de Preferencias"
+
+#: AppGUI/MainGUI.py:4028
+msgid "Rotate by 90 degree CCW"
+msgstr "Rotar en 90 grados CCW"
+
+#: AppGUI/MainGUI.py:4028
+msgid "Run a Script"
+msgstr "Ejecutar script TCL"
+
+#: AppGUI/MainGUI.py:4028
+msgid "Toggle the workspace"
+msgstr "Alternar espacio de trabajo"
+
+#: AppGUI/MainGUI.py:4028
+msgid "Skew on X axis"
+msgstr "Sesgar en el eje X"
+
+#: AppGUI/MainGUI.py:4029
+msgid "Skew on Y axis"
+msgstr "Sesgar en el eje Y"
+
+#: AppGUI/MainGUI.py:4032
+msgid "2-Sided PCB Tool"
+msgstr "Herra. de 2 lados"
+
+#: AppGUI/MainGUI.py:4032
+msgid "Transformations Tool"
+msgstr "Herramienta de Transformaciones"
+
+#: AppGUI/MainGUI.py:4034
+msgid "Solder Paste Dispensing Tool"
+msgstr "Herramienta de Dispensación de Pasta"
+
+#: AppGUI/MainGUI.py:4035
+msgid "Film PCB Tool"
+msgstr "Herramienta de Película"
+
+#: AppGUI/MainGUI.py:4035
+msgid "Non-Copper Clearing Tool"
+msgstr "Herramienta de Limpieza Sin Cobre"
+
+#: AppGUI/MainGUI.py:4036
+msgid "Paint Area Tool"
+msgstr "Herramienta de Area de Pintura"
+
+#: AppGUI/MainGUI.py:4036
+msgid "Rules Check Tool"
+msgstr "Herramienta de Verificación de Reglas"
+
+#: AppGUI/MainGUI.py:4037
+msgid "View File Source"
+msgstr "Ver fuente del archivo"
+
+#: AppGUI/MainGUI.py:4038
+msgid "Cutout PCB Tool"
+msgstr "Herra. de Corte"
+
+#: AppGUI/MainGUI.py:4038
+msgid "Enable all Plots"
+msgstr "Habilitar todas las parcelas"
+
+#: AppGUI/MainGUI.py:4038
+msgid "Disable all Plots"
+msgstr "Deshabilitar todas las parcelas"
+
+#: AppGUI/MainGUI.py:4038
+msgid "Disable Non-selected Plots"
+msgstr "Deshabilitar no seleccionado"
+
+#: AppGUI/MainGUI.py:4039
+msgid "Toggle Full Screen"
+msgstr "Alternar pantalla completa"
+
+#: AppGUI/MainGUI.py:4042
+msgid "Abort current task (gracefully)"
+msgstr "Abortar la tarea actual (con gracia)"
+
+#: AppGUI/MainGUI.py:4045
+msgid "Save Project As"
+msgstr "Guardar proyecto como"
+
+#: AppGUI/MainGUI.py:4046
+msgid ""
+"Paste Special. Will convert a Windows path style to the one required in Tcl "
+"Shell"
+msgstr ""
+"Pegado especial. Convertirá un estilo de ruta de Windows al requerido en Tcl "
+"Shell"
+
+#: AppGUI/MainGUI.py:4049
+msgid "Open Online Manual"
+msgstr "Abrir el manual en línea"
+
+#: AppGUI/MainGUI.py:4050
+msgid "Open Online Tutorials"
+msgstr "Abrir tutoriales en online"
+
+#: AppGUI/MainGUI.py:4050
+msgid "Refresh Plots"
+msgstr "Actualizar parcelas"
+
+#: AppGUI/MainGUI.py:4050 AppTools/ToolSolderPaste.py:509
+msgid "Delete Object"
+msgstr "Eliminar objeto"
+
+#: AppGUI/MainGUI.py:4050
+msgid "Alternate: Delete Tool"
+msgstr "Alt.: Eliminar herramienta"
+
+#: AppGUI/MainGUI.py:4051
+msgid "(left to Key_1)Toggle Notebook Area (Left Side)"
+msgstr "(izquierda a Key_1) Alternar Área del Cuaderno (lado izquierdo)"
+
+#: AppGUI/MainGUI.py:4051
+msgid "En(Dis)able Obj Plot"
+msgstr "(Des)habilitar trazado Obj"
+
+#: AppGUI/MainGUI.py:4052
+msgid "Deselects all objects"
+msgstr "Desel. todos los objetos"
+
+#: AppGUI/MainGUI.py:4066
+msgid "Editor Shortcut list"
+msgstr "Lista de accesos directos del editor"
+
+#: AppGUI/MainGUI.py:4220
+msgid "GEOMETRY EDITOR"
+msgstr "EDITOR DE GEOMETRÍA"
+
+#: AppGUI/MainGUI.py:4220
+msgid "Draw an Arc"
+msgstr "Dibujar un arco"
+
+#: AppGUI/MainGUI.py:4220
+msgid "Copy Geo Item"
+msgstr "Copia Geo"
+
+#: AppGUI/MainGUI.py:4221
+msgid "Within Add Arc will toogle the ARC direction: CW or CCW"
+msgstr "Dentro de agregar arco alternará la dirección del ARCO: CW o CCW"
+
+#: AppGUI/MainGUI.py:4221
+msgid "Polygon Intersection Tool"
+msgstr "Herram. de Intersección Poli"
+
+#: AppGUI/MainGUI.py:4222
+msgid "Geo Paint Tool"
+msgstr "Herram. de pintura geo"
+
+#: AppGUI/MainGUI.py:4222 AppGUI/MainGUI.py:4311 AppGUI/MainGUI.py:4431
+msgid "Jump to Location (x, y)"
+msgstr "Saltar a la ubicación (x, y)"
+
+#: AppGUI/MainGUI.py:4222
+msgid "Toggle Corner Snap"
+msgstr "Alternar ajuste de esquina"
+
+#: AppGUI/MainGUI.py:4222
+msgid "Move Geo Item"
+msgstr "Mover elemento geo"
+
+#: AppGUI/MainGUI.py:4223
+msgid "Within Add Arc will cycle through the ARC modes"
+msgstr "Dentro de agregar arco, pasará por los modos de arco"
+
+#: AppGUI/MainGUI.py:4223
+msgid "Draw a Polygon"
+msgstr "Dibujar un polígono"
+
+#: AppGUI/MainGUI.py:4223
+msgid "Draw a Circle"
+msgstr "Dibuja un circulo"
+
+#: AppGUI/MainGUI.py:4224
+msgid "Draw a Path"
+msgstr "Dibujar un camino"
+
+#: AppGUI/MainGUI.py:4224
+msgid "Draw Rectangle"
+msgstr "Dibujar rectángulo"
+
+#: AppGUI/MainGUI.py:4224
+msgid "Polygon Subtraction Tool"
+msgstr "Herram. de Sustrac. de Polí"
+
+#: AppGUI/MainGUI.py:4224
+msgid "Add Text Tool"
+msgstr "Herramienta de Texto"
+
+#: AppGUI/MainGUI.py:4225
+msgid "Polygon Union Tool"
+msgstr "Herram. de Unión Poli"
+
+#: AppGUI/MainGUI.py:4225
+msgid "Flip shape on X axis"
+msgstr "Voltear en el eje X"
+
+#: AppGUI/MainGUI.py:4225
+msgid "Flip shape on Y axis"
+msgstr "Voltear en el eje Y"
+
+#: AppGUI/MainGUI.py:4226
+msgid "Skew shape on X axis"
+msgstr "Sesgar en el eje X"
+
+#: AppGUI/MainGUI.py:4226
+msgid "Skew shape on Y axis"
+msgstr "Sesgar en el eje Y"
+
+#: AppGUI/MainGUI.py:4226
+msgid "Editor Transformation Tool"
+msgstr "Herram. de transform. del editor"
+
+#: AppGUI/MainGUI.py:4227
+msgid "Offset shape on X axis"
+msgstr "Offset en el eje X"
+
+#: AppGUI/MainGUI.py:4227
+msgid "Offset shape on Y axis"
+msgstr "Offset en eje Y"
+
+#: AppGUI/MainGUI.py:4228 AppGUI/MainGUI.py:4314 AppGUI/MainGUI.py:4436
+msgid "Save Object and Exit Editor"
+msgstr "Guardar objeto y salir del editor"
+
+#: AppGUI/MainGUI.py:4228
+msgid "Polygon Cut Tool"
+msgstr "Herram. de Corte Poli"
+
+#: AppGUI/MainGUI.py:4229
+msgid "Rotate Geometry"
+msgstr "Rotar Geometría"
+
+#: AppGUI/MainGUI.py:4229
+msgid "Finish drawing for certain tools"
+msgstr "Terminar el dibujo de ciertas herramientas"
+
+#: AppGUI/MainGUI.py:4229 AppGUI/MainGUI.py:4314 AppGUI/MainGUI.py:4434
+msgid "Abort and return to Select"
+msgstr "Anular y volver a Seleccionar"
+
+#: AppGUI/MainGUI.py:4310
+msgid "EXCELLON EDITOR"
+msgstr "EDITOR DE EXCELLON"
+
+#: AppGUI/MainGUI.py:4310
+msgid "Copy Drill(s)"
+msgstr "Copia de taladro"
+
+#: AppGUI/MainGUI.py:4311
+msgid "Move Drill(s)"
+msgstr "Mover taladro(s)"
+
+#: AppGUI/MainGUI.py:4312
+msgid "Add a new Tool"
+msgstr "Agregar una nueva herram"
+
+#: AppGUI/MainGUI.py:4313
+msgid "Delete Drill(s)"
+msgstr "Eliminar Taladro"
+
+#: AppGUI/MainGUI.py:4313
+msgid "Alternate: Delete Tool(s)"
+msgstr "Alt.: Eliminar herramienta (s)"
+
+#: AppGUI/MainGUI.py:4430
+msgid "GERBER EDITOR"
+msgstr "EDITOR GERBER"
+
+#: AppGUI/MainGUI.py:4430
+msgid "Add Disc"
+msgstr "Agregar disco"
+
+#: AppGUI/MainGUI.py:4430
+msgid "Add SemiDisc"
+msgstr "Añadir medio disco"
+
+#: AppGUI/MainGUI.py:4432
+msgid "Within Track & Region Tools will cycle in REVERSE the bend modes"
+msgstr ""
+"Dentro de la Pista y la Región, las herram.s alternarán en REVERSA los modos "
+"de plegado"
+
+#: AppGUI/MainGUI.py:4433
+msgid "Within Track & Region Tools will cycle FORWARD the bend modes"
+msgstr ""
+"Dentro de la Pista y la Región, las herram. avanzarán hacia adelante los "
+"modos de plegado"
+
+#: AppGUI/MainGUI.py:4434
+msgid "Alternate: Delete Apertures"
+msgstr "Alt.: Eliminar Aperturas"
+
+#: AppGUI/MainGUI.py:4435
+msgid "Eraser Tool"
+msgstr "Herramienta borrador"
+
+#: AppGUI/MainGUI.py:4436
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:220
+msgid "Mark Area Tool"
+msgstr "Herram. de Zona de Marca"
+
+#: AppGUI/MainGUI.py:4436
+msgid "Poligonize Tool"
+msgstr "Herram. de poligonización"
+
+#: AppGUI/MainGUI.py:4436
+msgid "Transformation Tool"
+msgstr "Herramienta de Transformación"
+
+#: AppGUI/ObjectUI.py:38
+msgid "FlatCAM Object"
+msgstr "Objeto FlatCAM"
+
+#: AppGUI/ObjectUI.py:78
+msgid ""
+"BASIC is suitable for a beginner. Many parameters\n"
+"are hidden from the user in this mode.\n"
+"ADVANCED mode will make available all parameters.\n"
+"\n"
+"To change the application LEVEL, go to:\n"
+"Edit -> Preferences -> General and check:\n"
+"'APP. LEVEL' radio button."
+msgstr ""
+"BASIC es adecuado para un principiante. Muchos parámetros\n"
+"están ocultos para el usuario en este modo.\n"
+"El modo AVANZADO pondrá a disposición todos los parámetros.\n"
+"\n"
+"Para cambiar el NIVEL de la aplicación, vaya a:\n"
+"Editar -> Preferencias -> General y verificar:\n"
+"'APP. NIVEL 'botón de radio."
+
+#: AppGUI/ObjectUI.py:111
+msgid "Geometrical transformations of the current object."
+msgstr "Transformaciones geométricas del objeto actual."
+
+#: AppGUI/ObjectUI.py:120
+msgid ""
+"Factor by which to multiply\n"
+"geometric features of this object.\n"
+"Expressions are allowed. E.g: 1/25.4"
+msgstr ""
+"Factor por el cual multiplicar\n"
+"características geométricas de este objeto.\n"
+"Se permiten expresiones. Por ejemplo: 1 / 25.4"
+
+#: AppGUI/ObjectUI.py:127
+msgid "Perform scaling operation."
+msgstr "Realizar la operación de escalado."
+
+#: AppGUI/ObjectUI.py:138
+msgid ""
+"Amount by which to move the object\n"
+"in the x and y axes in (x, y) format.\n"
+"Expressions are allowed. E.g: (1/3.2, 0.5*3)"
+msgstr ""
+"Cantidad por la cual mover el objeto\n"
+"en los ejes x e y en formato (x, y).\n"
+"Se permiten expresiones. Por ejemplo: (1/3.2, 0.5*3)"
+
+#: AppGUI/ObjectUI.py:145
+msgid "Perform the offset operation."
+msgstr "Realice la operación de desplazamiento."
+
+#: AppGUI/ObjectUI.py:157 AppGUI/ObjectUI.py:164 AppTool.py:281 AppTool.py:287
+msgid "Edited value is out of range"
+msgstr "El valor editado está fuera de rango"
+
+#: AppGUI/ObjectUI.py:159 AppGUI/ObjectUI.py:166 AppTool.py:283 AppTool.py:289
+msgid "Edited value is within limits."
+msgstr "El valor editado está dentro de los límites."
+
+#: AppGUI/ObjectUI.py:178
+msgid "Gerber Object"
+msgstr "Objeto Gerber"
+
+#: AppGUI/ObjectUI.py:187 AppGUI/ObjectUI.py:730 AppGUI/ObjectUI.py:1528
+#: AppGUI/ObjectUI.py:2335 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:30
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:33
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:31
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:31
+msgid "Plot Options"
+msgstr "Opciones de parcela"
+
+#: AppGUI/ObjectUI.py:193 AppGUI/ObjectUI.py:731
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:45
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:38
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119
+#: AppTools/ToolCopperThieving.py:191
+msgid "Solid"
+msgstr "Sólido"
+
+#: AppGUI/ObjectUI.py:195 AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:40
+msgid "Solid color polygons."
+msgstr "Polígonos de color liso."
+
+#: AppGUI/ObjectUI.py:201
+msgid "Multi-Color"
+msgstr "Multicolor"
+
+#: AppGUI/ObjectUI.py:203 AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:47
+msgid "Draw polygons in different colors."
+msgstr "Dibuja polígonos en diferentes colores."
+
+#: AppGUI/ObjectUI.py:209 AppGUI/ObjectUI.py:769
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:39
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:35
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:52
+msgid "Plot"
+msgstr "Gráfico"
+
+#: AppGUI/ObjectUI.py:211 AppGUI/ObjectUI.py:771 AppGUI/ObjectUI.py:1588
+#: AppGUI/ObjectUI.py:2445 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:41
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:37
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:54
+msgid "Plot (show) this object."
+msgstr "Trazar (mostrar) este objeto."
+
+#: AppGUI/ObjectUI.py:239
+msgid ""
+"Toggle the display of the Gerber Apertures Table.\n"
+"When unchecked, it will delete all mark shapes\n"
+"that are drawn on canvas."
+msgstr ""
+"Alternar la visualización de la tabla de aperturas de Gerber.\n"
+"Cuando no está marcada, eliminará todas las formas de las marcas.\n"
+"que se dibujan en lienzo."
+
+#: AppGUI/ObjectUI.py:249
+msgid "Mark All"
+msgstr "Márc. todo"
+
+#: AppGUI/ObjectUI.py:251
+msgid ""
+"When checked it will display all the apertures.\n"
+"When unchecked, it will delete all mark shapes\n"
+"that are drawn on canvas."
+msgstr ""
+"Cuando está marcado, mostrará todas las aperturas.\n"
+"Cuando no está marcada, eliminará todas las formas de las marcas.\n"
+"que se dibujan en lienzo."
+
+#: AppGUI/ObjectUI.py:279
+msgid "Mark the aperture instances on canvas."
+msgstr "Marque las instancias de apertura en el lienzo."
+
+#: AppGUI/ObjectUI.py:291 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:32
+msgid "Isolation Routing"
+msgstr "Enrutamiento de aislamiento"
+
+#: AppGUI/ObjectUI.py:293 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:34
+msgid ""
+"Create a Geometry object with\n"
+"toolpaths to cut outside polygons."
+msgstr ""
+"Crear un objeto de geometría con\n"
+"Trayectorias para cortar polígonos exteriores."
+
+#: AppGUI/ObjectUI.py:311
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:69
+msgid ""
+"Choose which tool to use for Gerber isolation:\n"
+"'Circular' or 'V-shape'.\n"
+"When the 'V-shape' is selected then the tool\n"
+"diameter will depend on the chosen cut depth."
+msgstr ""
+"Elija qué herramienta usar para el aislamiento de Gerber:\n"
+"'Circular' o 'en forma de V'.\n"
+"Cuando se selecciona la 'forma de V', entonces la herramienta\n"
+"El diámetro dependerá de la profundidad de corte elegida."
+
+#: AppGUI/ObjectUI.py:317
+msgid "V-Shape"
+msgstr "Forma V"
+
+#: AppGUI/ObjectUI.py:323 AppGUI/ObjectUI.py:1774
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:81
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:72
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:78
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:85 AppTools/ToolNCC.py:233
+#: AppTools/ToolNCC.py:240 AppTools/ToolPaint.py:215
+msgid "V-Tip Dia"
+msgstr "V-Tipo Dia"
+
+#: AppGUI/ObjectUI.py:325 AppGUI/ObjectUI.py:1777
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:83
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:74
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:80 AppTools/ToolNCC.py:235
+#: AppTools/ToolPaint.py:217
+msgid "The tip diameter for V-Shape Tool"
+msgstr "El diámetro de la punta para la herramienta en forma de V"
+
+#: AppGUI/ObjectUI.py:336 AppGUI/ObjectUI.py:1789
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:94
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:84
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:91
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:99 AppTools/ToolNCC.py:246
+#: AppTools/ToolNCC.py:254 AppTools/ToolPaint.py:228
+msgid "V-Tip Angle"
+msgstr "V-Tipo Ángulo"
+
+#: AppGUI/ObjectUI.py:338 AppGUI/ObjectUI.py:1792
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:96
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:86
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:93 AppTools/ToolNCC.py:248
+#: AppTools/ToolPaint.py:230
+msgid ""
+"The tip angle for V-Shape Tool.\n"
+"In degree."
+msgstr ""
+"El ángulo de punta para la herramienta en forma de V.\n"
+"En grado."
+
+#: AppGUI/ObjectUI.py:352 AppGUI/ObjectUI.py:1808
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:50
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:109
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61
+#: AppObjects/FlatCAMGeometry.py:1229 AppTools/ToolCutOut.py:141
+msgid ""
+"Cutting depth (negative)\n"
+"below the copper surface."
+msgstr ""
+"Profundidad de corte (negativo)\n"
+"debajo de la superficie de cobre."
+
+#: AppGUI/ObjectUI.py:366
+msgid ""
+"Diameter of the cutting tool.\n"
+"If you want to have an isolation path\n"
+"inside the actual shape of the Gerber\n"
+"feature, use a negative value for\n"
+"this parameter."
+msgstr ""
+"Diámetro de la herramienta de corte.\n"
+"Si quieres tener una ruta de aislamiento\n"
+"dentro de la forma real del Gerber\n"
+"característica, use un valor negativo para\n"
+"este parámetro."
+
+#: AppGUI/ObjectUI.py:382 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:56
+msgid "# Passes"
+msgstr "# Pases"
+
+#: AppGUI/ObjectUI.py:384 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:58
+msgid ""
+"Width of the isolation gap in\n"
+"number (integer) of tool widths."
+msgstr ""
+"Ancho de la brecha de aislamiento en\n"
+"Número (entero) de anchos de herramienta."
+
+#: AppGUI/ObjectUI.py:395 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:68
+msgid "Pass overlap"
+msgstr "Superposición de pases"
+
+#: AppGUI/ObjectUI.py:397 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:70
+msgid "How much (percentage) of the tool width to overlap each tool pass."
+msgstr ""
+"Cuánto (porcentaje) del ancho de la herramienta para superponer cada pasada "
+"de herramienta."
+
+#: AppGUI/ObjectUI.py:411
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:58
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:97
+msgid ""
+"Milling type:\n"
+"- climb / best for precision milling and to reduce tool usage\n"
+"- conventional / useful when there is no backlash compensation"
+msgstr ""
+"Tipo de fresado:\n"
+"- subir / mejor para fresado de precisión y para reducir el uso de la "
+"herramienta\n"
+"- convencional / útil cuando no hay compensación de contragolpe"
+
+#: AppGUI/ObjectUI.py:421
+msgid "Combine"
+msgstr "Combinar"
+
+#: AppGUI/ObjectUI.py:423 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:109
+msgid "Combine all passes into one object"
+msgstr "Combina todos los pases en un objeto"
+
+#: AppGUI/ObjectUI.py:427
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:43
+msgid "\"Follow\""
+msgstr "\"Seguir\""
+
+#: AppGUI/ObjectUI.py:428
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:45
+msgid ""
+"Generate a 'Follow' geometry.\n"
+"This means that it will cut through\n"
+"the middle of the trace."
+msgstr ""
+"Generar una geometría 'Seguir'.\n"
+"Esto significa que cortará a través\n"
+"El medio de la traza."
+
+#: AppGUI/ObjectUI.py:434
+msgid "Except"
+msgstr "Excepto"
+
+#: AppGUI/ObjectUI.py:437
+msgid ""
+"When the isolation geometry is generated,\n"
+"by checking this, the area of the object below\n"
+"will be subtracted from the isolation geometry."
+msgstr ""
+"Cuando se genera la geometría de Aislamiento,\n"
+"marcando esto, el área del objeto a continuación\n"
+"será restado de la geometría de aislamiento."
+
+#: AppGUI/ObjectUI.py:450
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:97
+#: AppObjects/FlatCAMGerber.py:239 AppObjects/FlatCAMGerber.py:327
+#: AppTools/ToolAlignObjects.py:73 AppTools/ToolAlignObjects.py:109
+#: AppTools/ToolCalibration.py:196 AppTools/ToolCalibration.py:631
+#: AppTools/ToolCalibration.py:648 AppTools/ToolCalibration.py:807
+#: AppTools/ToolCalibration.py:815 AppTools/ToolCopperThieving.py:144
+#: AppTools/ToolCopperThieving.py:158 AppTools/ToolCopperThieving.py:604
+#: AppTools/ToolCutOut.py:91 AppTools/ToolDblSided.py:224
+#: AppTools/ToolFilm.py:68 AppTools/ToolFilm.py:91 AppTools/ToolImage.py:49
+#: AppTools/ToolImage.py:252 AppTools/ToolImage.py:273 AppTools/ToolNCC.py:96
+#: AppTools/ToolNCC.py:558 AppTools/ToolNCC.py:1300 AppTools/ToolPaint.py:501
+#: AppTools/ToolPaint.py:705 AppTools/ToolPanelize.py:116
+#: AppTools/ToolPanelize.py:210 AppTools/ToolPanelize.py:385
+#: AppTools/ToolPanelize.py:402
+msgid "Gerber"
+msgstr "Gerber"
+
+#: AppGUI/ObjectUI.py:457 AppTools/ToolNCC.py:86 AppTools/ToolPaint.py:79
+msgid "Obj Type"
+msgstr "Tipo de obj"
+
+#: AppGUI/ObjectUI.py:459
+msgid ""
+"Specify the type of object to be excepted from isolation.\n"
+"It can be of type: Gerber or Geometry.\n"
+"What is selected here will dictate the kind\n"
+"of objects that will populate the 'Object' combobox."
+msgstr ""
+"Especifique el tipo de objeto que se excluirá del aislamiento.\n"
+"Puede ser de tipo: Gerber o Geometría.\n"
+"Lo que se seleccione aquí dictará el tipo\n"
+"de objetos que llenarán el cuadro combinado 'Objeto'."
+
+#: AppGUI/ObjectUI.py:472 AppGUI/ObjectUI.py:1324 AppGUI/ObjectUI.py:2158
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:48
+#: AppTools/ToolCalibration.py:186 AppTools/ToolNCC.py:109
+#: AppTools/ToolPaint.py:102 AppTools/ToolPanelize.py:98
+#: AppTools/ToolQRCode.py:78
+msgid "Object"
+msgstr "Objeto"
+
+#: AppGUI/ObjectUI.py:473
+msgid "Object whose area will be removed from isolation geometry."
+msgstr "Objeto cuya área se eliminará de la geometría de aislamiento."
+
+#: AppGUI/ObjectUI.py:480 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:82
+msgid "Scope"
+msgstr "Alcance"
+
+#: AppGUI/ObjectUI.py:482 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:84
+msgid ""
+"Isolation scope. Choose what to isolate:\n"
+"- 'All' -> Isolate all the polygons in the object\n"
+"- 'Selection' -> Isolate a selection of polygons."
+msgstr ""
+"Alcance de aislamiento. Elija qué aislar:\n"
+"- 'Todos' -> Aislar todos los polígonos en el objeto\n"
+"- 'Selección' -> Aislar una selección de polígonos."
+
+#: AppGUI/ObjectUI.py:487
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:307
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:89
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:311
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:258
+#: AppTools/ToolNCC.py:539 AppTools/ToolPaint.py:455
+msgid "Selection"
+msgstr "Selección"
+
+#: AppGUI/ObjectUI.py:495
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:122
+msgid "Isolation Type"
+msgstr "Tipo de aislamiento"
+
+#: AppGUI/ObjectUI.py:497
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:124
+msgid ""
+"Choose how the isolation will be executed:\n"
+"- 'Full' -> complete isolation of polygons\n"
+"- 'Ext' -> will isolate only on the outside\n"
+"- 'Int' -> will isolate only on the inside\n"
+"'Exterior' isolation is almost always possible\n"
+"(with the right tool) but 'Interior'\n"
+"isolation can be done only when there is an opening\n"
+"inside of the polygon (e.g polygon is a 'doughnut' shape)."
+msgstr ""
+"Elija cómo se ejecutará el aislamiento:\n"
+"- 'Completo' -> aislamiento completo de polígonos\n"
+"- 'Ext' -> aislará solo en el exterior\n"
+"- 'Int' -> aislará solo en el interior\n"
+"El aislamiento 'exterior' es casi siempre posible\n"
+"(con la herramienta adecuada) pero 'Interior'\n"
+"el aislamiento solo se puede hacer cuando hay una abertura\n"
+"dentro del polígono (por ejemplo, el polígono tiene forma de 'rosquilla')."
+
+#: AppGUI/ObjectUI.py:506
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:133
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:154
+msgid "Full"
+msgstr "Completo"
+
+#: AppGUI/ObjectUI.py:507
+msgid "Ext"
+msgstr "Exterior"
+
+#: AppGUI/ObjectUI.py:508
+msgid "Int"
+msgstr "Interior"
+
+#: AppGUI/ObjectUI.py:513
+msgid "Generate Isolation Geometry"
+msgstr "Generar geo. de aislamiento"
+
+#: AppGUI/ObjectUI.py:521
+msgid ""
+"Create a Geometry object with toolpaths to cut \n"
+"isolation outside, inside or on both sides of the\n"
+"object. For a Gerber object outside means outside\n"
+"of the Gerber feature and inside means inside of\n"
+"the Gerber feature, if possible at all. This means\n"
+"that only if the Gerber feature has openings inside, they\n"
+"will be isolated. If what is wanted is to cut isolation\n"
+"inside the actual Gerber feature, use a negative tool\n"
+"diameter above."
+msgstr ""
+"Cree un objeto de geometría con trayectorias de herramientas para cortar\n"
+"aislamiento afuera, adentro o en ambos lados del\n"
+"objeto. Para un objeto Gerber afuera significa afuera\n"
+"de la característica de Gerber y dentro significa dentro de\n"
+"la característica de Gerber, si es posible. Esto significa\n"
+"que solo si la función Gerber tiene aberturas adentro,\n"
+"será aislado Si lo que se quiere es cortar el aislamiento\n"
+"dentro de la función real de Gerber, use una herramienta negativa\n"
+"diámetro arriba."
+
+#: AppGUI/ObjectUI.py:533
+msgid "Buffer Solid Geometry"
+msgstr "Buffer la Geometria solida"
+
+#: AppGUI/ObjectUI.py:535
+msgid ""
+"This button is shown only when the Gerber file\n"
+"is loaded without buffering.\n"
+"Clicking this will create the buffered geometry\n"
+"required for isolation."
+msgstr ""
+"Este botón se muestra solo cuando el archivo Gerber\n"
+"se carga sin almacenamiento en búfer.\n"
+"Al hacer clic en esto, se creará la geometría almacenada\n"
+"requerido para el aislamiento."
+
+#: AppGUI/ObjectUI.py:567
+msgid "Clear N-copper"
+msgstr "N-cobre claro"
+
+#: AppGUI/ObjectUI.py:569 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:33
+msgid ""
+"Create a Geometry object with\n"
+"toolpaths to cut all non-copper regions."
+msgstr ""
+"Crear un objeto de geometría con\n"
+"Trayectorias para cortar todas las regiones sin cobre."
+
+#: AppGUI/ObjectUI.py:576 AppGUI/ObjectUI.py:2289 AppTools/ToolNCC.py:599
+msgid ""
+"Create the Geometry Object\n"
+"for non-copper routing."
+msgstr ""
+"Crear el objeto de geometría\n"
+"para enrutamiento sin cobre."
+
+#: AppGUI/ObjectUI.py:589
+msgid "Board cutout"
+msgstr "Corte del tablero"
+
+#: AppGUI/ObjectUI.py:591 AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:34
+msgid ""
+"Create toolpaths to cut around\n"
+"the PCB and separate it from\n"
+"the original board."
+msgstr ""
+"Crear caminos de herramientas para cortar alrededor\n"
+"El PCB y lo separa de\n"
+"El tablero original."
+
+#: AppGUI/ObjectUI.py:598
+msgid ""
+"Generate the geometry for\n"
+"the board cutout."
+msgstr ""
+"Generar la geometría para\n"
+"El recorte del tablero."
+
+#: AppGUI/ObjectUI.py:616 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:119
+msgid "Non-copper regions"
+msgstr "Regiones no cobre"
+
+#: AppGUI/ObjectUI.py:618 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:121
+msgid ""
+"Create polygons covering the\n"
+"areas without copper on the PCB.\n"
+"Equivalent to the inverse of this\n"
+"object. Can be used to remove all\n"
+"copper from a specified region."
+msgstr ""
+"Crear polígonos que cubran el\n"
+"áreas sin cobre en el PCB.\n"
+"Equivalente al inverso de este\n"
+"objeto. Se puede usar para eliminar todo\n"
+"cobre de una región específica."
+
+#: AppGUI/ObjectUI.py:628 AppGUI/ObjectUI.py:669
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:133
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:166
+msgid "Boundary Margin"
+msgstr "Margen límite"
+
+#: AppGUI/ObjectUI.py:630 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:135
+msgid ""
+"Specify the edge of the PCB\n"
+"by drawing a box around all\n"
+"objects with this minimum\n"
+"distance."
+msgstr ""
+"Especifique el borde de la PCB\n"
+"dibujando una caja alrededor de todos\n"
+"objetos con este mínimo\n"
+"distancia."
+
+#: AppGUI/ObjectUI.py:645 AppGUI/ObjectUI.py:683
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:148
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:179
+msgid "Rounded Geo"
+msgstr "Geo redondeado"
+
+#: AppGUI/ObjectUI.py:647 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:150
+msgid "Resulting geometry will have rounded corners."
+msgstr "La geometría resultante tendrá esquinas redondeadas."
+
+#: AppGUI/ObjectUI.py:651 AppGUI/ObjectUI.py:692
+#: AppTools/ToolSolderPaste.py:134
+msgid "Generate Geo"
+msgstr "Generar Geo"
+
+#: AppGUI/ObjectUI.py:661 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:160
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137
+#: AppTools/ToolPanelize.py:99 AppTools/ToolQRCode.py:192
+msgid "Bounding Box"
+msgstr "Cuadro delimitador"
+
+#: AppGUI/ObjectUI.py:663
+msgid ""
+"Create a geometry surrounding the Gerber object.\n"
+"Square shape."
+msgstr ""
+"Crea una geometría que rodea el objeto Gerber.\n"
+"Forma cuadrada."
+
+#: AppGUI/ObjectUI.py:671 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:168
+msgid ""
+"Distance of the edges of the box\n"
+"to the nearest polygon."
+msgstr ""
+"Distancia de los bordes de la caja.\n"
+"al polígono más cercano."
+
+#: AppGUI/ObjectUI.py:685 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:181
+msgid ""
+"If the bounding box is \n"
+"to have rounded corners\n"
+"their radius is equal to\n"
+"the margin."
+msgstr ""
+"Si el cuadro delimitador es\n"
+"tener esquinas redondeadas\n"
+"su radio es igual a\n"
+"el margen."
+
+#: AppGUI/ObjectUI.py:694
+msgid "Generate the Geometry object."
+msgstr "Genera el objeto Geometry."
+
+#: AppGUI/ObjectUI.py:721
+msgid "Excellon Object"
+msgstr "Objeto Excellon"
+
+#: AppGUI/ObjectUI.py:733
+msgid "Solid circles."
+msgstr "Círculos sólidos."
+
+#: AppGUI/ObjectUI.py:781 AppGUI/ObjectUI.py:876 AppGUI/ObjectUI.py:2466
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:71
+#: AppTools/ToolProperties.py:166
+msgid "Drills"
+msgstr "Taladros"
+
+#: AppGUI/ObjectUI.py:781 AppGUI/ObjectUI.py:877 AppGUI/ObjectUI.py:2466
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:158
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:72
+#: AppTools/ToolProperties.py:168
+msgid "Slots"
+msgstr "Muesca"
+
+#: AppGUI/ObjectUI.py:786
+msgid ""
+"This is the Tool Number.\n"
+"When ToolChange is checked, on toolchange event this value\n"
+"will be showed as a T1, T2 ... Tn in the Machine Code.\n"
+"\n"
+"Here the tools are selected for G-code generation."
+msgstr ""
+"Este es el número de herramienta.\n"
+"Cuando ToolChange está marcado, en el evento de cambio de herramienta este "
+"valor\n"
+"se mostrará como T1, T2 ... Tn en el Código de máquina.\n"
+"\n"
+"Aquí se seleccionan las herramientas para la generación de código G."
+
+#: AppGUI/ObjectUI.py:791 AppGUI/ObjectUI.py:1612 AppTools/ToolPaint.py:141
+msgid ""
+"Tool Diameter. It's value (in current FlatCAM units) \n"
+"is the cut width into the material."
+msgstr ""
+"Diámetro de herramienta. Su valor (en unidades actuales de FlatCAM)\n"
+"es el ancho de corte en el material."
+
+#: AppGUI/ObjectUI.py:794
+msgid ""
+"The number of Drill holes. Holes that are drilled with\n"
+"a drill bit."
+msgstr ""
+"El número de agujeros de taladros. Agujeros que se taladran con\n"
+"una broca."
+
+#: AppGUI/ObjectUI.py:797
+msgid ""
+"The number of Slot holes. Holes that are created by\n"
+"milling them with an endmill bit."
+msgstr ""
+"El número de agujeros de muesca. Agujeros creados por\n"
+"fresándolas con una broca de fresa."
+
+#: AppGUI/ObjectUI.py:800
+msgid ""
+"Toggle display of the drills for the current tool.\n"
+"This does not select the tools for G-code generation."
+msgstr ""
+"Alternar la visualización de los ejercicios para la herramienta actual.\n"
+"Esto no selecciona las herramientas para la generación de código G."
+
+#: AppGUI/ObjectUI.py:818 AppGUI/ObjectUI.py:1764
+#: AppObjects/FlatCAMExcellon.py:527 AppObjects/FlatCAMExcellon.py:805
+#: AppObjects/FlatCAMExcellon.py:821 AppObjects/FlatCAMExcellon.py:825
+#: AppObjects/FlatCAMGeometry.py:322 AppObjects/FlatCAMGeometry.py:816
+#: AppObjects/FlatCAMGeometry.py:852 AppTools/ToolNCC.py:331
+#: AppTools/ToolNCC.py:797 AppTools/ToolNCC.py:811 AppTools/ToolNCC.py:1196
+#: AppTools/ToolPaint.py:313 AppTools/ToolPaint.py:766
+#: AppTools/ToolPaint.py:778 AppTools/ToolPaint.py:1170
+msgid "Parameters for"
+msgstr "Parámetros para"
+
+#: AppGUI/ObjectUI.py:821 AppGUI/ObjectUI.py:1767 AppTools/ToolNCC.py:334
+#: AppTools/ToolPaint.py:316
+msgid ""
+"The data used for creating GCode.\n"
+"Each tool store it's own set of such data."
+msgstr ""
+"Los datos utilizados para crear GCode.\n"
+"Cada herramienta almacena su propio conjunto de datos."
+
+#: AppGUI/ObjectUI.py:847
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:48
+msgid ""
+"Operation type:\n"
+"- Drilling -> will drill the drills/slots associated with this tool\n"
+"- Milling -> will mill the drills/slots"
+msgstr ""
+"Tipo de operación:\n"
+"- Perforación -> perforará las perforaciones / ranuras asociadas con esta "
+"herramienta\n"
+"- Fresado -> fresará los taladros / ranuras"
+
+#: AppGUI/ObjectUI.py:853
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:54
+msgid "Drilling"
+msgstr "Perforación"
+
+#: AppGUI/ObjectUI.py:854
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:55
+msgid "Milling"
+msgstr "Fresado"
+
+#: AppGUI/ObjectUI.py:869
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:64
+msgid ""
+"Milling type:\n"
+"- Drills -> will mill the drills associated with this tool\n"
+"- Slots -> will mill the slots associated with this tool\n"
+"- Both -> will mill both drills and mills or whatever is available"
+msgstr ""
+"Tipo de fresado:\n"
+"- Taladros -> fresará los taladros asociados con esta herramienta\n"
+"- Ranuras -> fresará las ranuras asociadas con esta herramienta\n"
+"- Ambos -> fresarán taladros y molinos o lo que esté disponible"
+
+#: AppGUI/ObjectUI.py:878
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:73
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:210
+#: AppTools/ToolFilm.py:241
+msgid "Both"
+msgstr "Ambas"
+
+#: AppGUI/ObjectUI.py:886
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:80
+msgid "Milling Diameter"
+msgstr "Diá. de fresado"
+
+#: AppGUI/ObjectUI.py:888
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:82
+msgid "The diameter of the tool who will do the milling"
+msgstr "El diámetro de la herramienta que hará el fresado"
+
+#: AppGUI/ObjectUI.py:902
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:95
+msgid ""
+"Drill depth (negative)\n"
+"below the copper surface."
+msgstr ""
+"Profundidad de perforación (negativo)\n"
+"debajo de la superficie de cobre."
+
+#: AppGUI/ObjectUI.py:921 AppGUI/ObjectUI.py:1826
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:113
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:68
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79
+#: AppTools/ToolCutOut.py:159
+msgid "Multi-Depth"
+msgstr "Profund. Múlti"
+
+#: AppGUI/ObjectUI.py:924 AppGUI/ObjectUI.py:1829
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:116
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:71
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82
+#: AppTools/ToolCutOut.py:162
+msgid ""
+"Use multiple passes to limit\n"
+"the cut depth in each pass. Will\n"
+"cut multiple times until Cut Z is\n"
+"reached."
+msgstr ""
+"Usa múltiples pases para limitar\n"
+"La profundidad de corte en cada pasada. Será\n"
+"cortar varias veces hasta que el Corte Z sea\n"
+"alcanzado."
+
+#: AppGUI/ObjectUI.py:937 AppGUI/ObjectUI.py:1843
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:128
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94
+#: AppTools/ToolCutOut.py:176
+msgid "Depth of each pass (positive)."
+msgstr "Profundidad de cada pase (positivo)."
+
+#: AppGUI/ObjectUI.py:948
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:136
+msgid ""
+"Tool height when travelling\n"
+"across the XY plane."
+msgstr ""
+"Altura de herramienta al viajar\n"
+"A través del plano XY."
+
+#: AppGUI/ObjectUI.py:969 AppGUI/ObjectUI.py:1873
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:187
+msgid ""
+"Cutting speed in the XY\n"
+"plane in units per minute"
+msgstr ""
+"Velocidad de corte en el XY.\n"
+"Avion en unidades por minuto"
+
+#: AppGUI/ObjectUI.py:984
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:209
+msgid ""
+"Tool speed while drilling\n"
+"(in units per minute).\n"
+"So called 'Plunge' feedrate.\n"
+"This is for linear move G01."
+msgstr ""
+"Velocidad de herramienta durante la perforación\n"
+"(en unidades por minuto).\n"
+"La llamada velocidad de avance 'Plunge'.\n"
+"Esto es para el movimiento lineal G01."
+
+#: AppGUI/ObjectUI.py:999 AppGUI/ObjectUI.py:1900
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:80
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:64
+msgid "Feedrate Rapids"
+msgstr "Rápidos de avance"
+
+#: AppGUI/ObjectUI.py:1001
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:82
+msgid ""
+"Tool speed while drilling\n"
+"(in units per minute).\n"
+"This is for the rapid move G00.\n"
+"It is useful only for Marlin,\n"
+"ignore for any other cases."
+msgstr ""
+"Velocidad de la herramienta durante la perforación\n"
+"(en unidades por minuto).\n"
+"Esto es para el movimiento rápido G00.\n"
+"Es útil solo para Marlin,\n"
+"Ignorar para cualquier otro caso."
+
+#: AppGUI/ObjectUI.py:1021 AppGUI/ObjectUI.py:1920
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:82
+msgid "Re-cut"
+msgstr "Recortar"
+
+#: AppGUI/ObjectUI.py:1023 AppGUI/ObjectUI.py:1036 AppGUI/ObjectUI.py:1922
+#: AppGUI/ObjectUI.py:1934
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:84
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:96
+msgid ""
+"In order to remove possible\n"
+"copper leftovers where first cut\n"
+"meet with last cut, we generate an\n"
+"extended cut over the first cut section."
+msgstr ""
+"Para eliminar posibles\n"
+"sobras de cobre donde el primer corte\n"
+"Nos reunimos con el último corte, generamos un\n"
+"Corte extendido sobre la primera sección de corte."
+
+#: AppGUI/ObjectUI.py:1049 AppGUI/ObjectUI.py:1943
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:216
+#: AppObjects/FlatCAMExcellon.py:1412 AppObjects/FlatCAMGeometry.py:1676
+msgid "Spindle speed"
+msgstr "Eje de velocidad"
+
+#: AppGUI/ObjectUI.py:1051
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:224
+msgid ""
+"Speed of the spindle\n"
+"in RPM (optional)"
+msgstr ""
+"Velocidad del husillo\n"
+"en RPM (opcional)"
+
+#: AppGUI/ObjectUI.py:1066 AppGUI/ObjectUI.py:1962
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:238
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:234
+msgid ""
+"Pause to allow the spindle to reach its\n"
+"speed before cutting."
+msgstr ""
+"Pausa para permitir que el husillo alcance su\n"
+"Velocidad antes del corte."
+
+#: AppGUI/ObjectUI.py:1077 AppGUI/ObjectUI.py:1972
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:246
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:239
+msgid "Number of time units for spindle to dwell."
+msgstr "Número de unidades de tiempo para que el husillo permanezca."
+
+#: AppGUI/ObjectUI.py:1087
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:46
+msgid "Offset Z"
+msgstr "Offset Z"
+
+#: AppGUI/ObjectUI.py:1089
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:48
+msgid ""
+"Some drill bits (the larger ones) need to drill deeper\n"
+"to create the desired exit hole diameter due of the tip shape.\n"
+"The value here can compensate the Cut Z parameter."
+msgstr ""
+"Algunas brocas (las más grandes) necesitan profundizar más\n"
+"para crear el diámetro del orificio de salida deseado debido a la forma de "
+"la punta.\n"
+"El valor aquí puede compensar el parámetro Z de corte."
+
+#: AppGUI/ObjectUI.py:1149 AppGUI/ObjectUI.py:2026 AppTools/ToolNCC.py:492
+#: AppTools/ToolPaint.py:422
+msgid "Apply parameters to all tools"
+msgstr "Aplicar Parám. a todas las herramientas"
+
+#: AppGUI/ObjectUI.py:1151 AppGUI/ObjectUI.py:2028 AppTools/ToolNCC.py:494
+#: AppTools/ToolPaint.py:424
+msgid ""
+"The parameters in the current form will be applied\n"
+"on all the tools from the Tool Table."
+msgstr ""
+"Se aplicarán los parámetros en el formulario actual\n"
+"en todas las herramientas de la tabla de herramientas."
+
+#: AppGUI/ObjectUI.py:1162 AppGUI/ObjectUI.py:2039 AppTools/ToolNCC.py:505
+#: AppTools/ToolPaint.py:435
+msgid "Common Parameters"
+msgstr "Parámetros comunes"
+
+#: AppGUI/ObjectUI.py:1164 AppGUI/ObjectUI.py:2041 AppTools/ToolNCC.py:507
+#: AppTools/ToolPaint.py:437
+msgid "Parameters that are common for all tools."
+msgstr "Parámetros que son comunes para todas las herramientas."
+
+#: AppGUI/ObjectUI.py:1169 AppGUI/ObjectUI.py:2046
+msgid "Tool change Z"
+msgstr "Cambio de herra. Z"
+
+#: AppGUI/ObjectUI.py:1171
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:154
+msgid ""
+"Include tool-change sequence\n"
+"in G-Code (Pause for tool change)."
+msgstr ""
+"Incluir secuencia de cambio de herramienta\n"
+"en G-Code (Pausa para cambio de herramienta)."
+
+#: AppGUI/ObjectUI.py:1178 AppGUI/ObjectUI.py:2057
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:162
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:134
+msgid ""
+"Z-axis position (height) for\n"
+"tool change."
+msgstr ""
+"Posición del eje Z (altura) para\n"
+"cambio de herramienta."
+
+#: AppGUI/ObjectUI.py:1195
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:71
+msgid ""
+"Height of the tool just after start.\n"
+"Delete the value if you don't need this feature."
+msgstr ""
+"Altura de la herramienta justo después del arranque.\n"
+"Elimine el valor si no necesita esta característica."
+
+#: AppGUI/ObjectUI.py:1204 AppGUI/ObjectUI.py:2085
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:178
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:153
+msgid "End move Z"
+msgstr "Fin del movi. Z"
+
+#: AppGUI/ObjectUI.py:1206 AppGUI/ObjectUI.py:2087
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:180
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:155
+msgid ""
+"Height of the tool after\n"
+"the last move at the end of the job."
+msgstr ""
+"Altura de la herramienta después de\n"
+"El último movimiento al final del trabajo."
+
+#: AppGUI/ObjectUI.py:1223 AppGUI/ObjectUI.py:2104
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:195
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:173
+msgid "End move X,Y"
+msgstr "X, Y Fin del movimiento"
+
+#: AppGUI/ObjectUI.py:1225 AppGUI/ObjectUI.py:2106
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:197
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:175
+msgid ""
+"End move X,Y position. In format (x,y).\n"
+"If no value is entered then there is no move\n"
+"on X,Y plane at the end of the job."
+msgstr ""
+"Fin movimiento X, Y posición. En formato (x, y).\n"
+"Si no se ingresa ningún valor, entonces no hay movimiento\n"
+"en el plano X, Y al final del trabajo."
+
+#: AppGUI/ObjectUI.py:1235 AppGUI/ObjectUI.py:1980
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:96
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:105
+msgid "Probe Z depth"
+msgstr "Profundidad de la sonda Z"
+
+#: AppGUI/ObjectUI.py:1237 AppGUI/ObjectUI.py:1982
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:98
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:107
+msgid ""
+"The maximum depth that the probe is allowed\n"
+"to probe. Negative value, in current units."
+msgstr ""
+"The maximum depth that the probe is allowed\n"
+"to probe. Negative value, in current units."
+
+#: AppGUI/ObjectUI.py:1254 AppGUI/ObjectUI.py:1997
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:109
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:120
+msgid "Feedrate Probe"
+msgstr "Sonda de avance"
+
+#: AppGUI/ObjectUI.py:1256 AppGUI/ObjectUI.py:1999
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:111
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:122
+msgid "The feedrate used while the probe is probing."
+msgstr "La velocidad de avance utilizada mientras la sonda está sondeando."
+
+#: AppGUI/ObjectUI.py:1272
+msgid "Preprocessor E"
+msgstr "Postprocesador E"
+
+#: AppGUI/ObjectUI.py:1274
+msgid ""
+"The preprocessor JSON file that dictates\n"
+"Gcode output for Excellon Objects."
+msgstr ""
+"El archivo JSON del preprocesador que dicta\n"
+"Salida de Gcode para objetos Excellon."
+
+#: AppGUI/ObjectUI.py:1284
+msgid "Preprocessor G"
+msgstr "Postprocesador G"
+
+#: AppGUI/ObjectUI.py:1286
+msgid ""
+"The preprocessor JSON file that dictates\n"
+"Gcode output for Geometry (Milling) Objects."
+msgstr ""
+"El archivo JSON del preprocesador que dicta\n"
+"Salida de Gcode para objetos de geometría (fresado)."
+
+#: AppGUI/ObjectUI.py:1300 AppGUI/ObjectUI.py:2134
+#, fuzzy
+#| msgid "Exclusion areas"
+msgid "Add exclusion areas"
+msgstr "Zonas de exclusión"
+
+#: AppGUI/ObjectUI.py:1303 AppGUI/ObjectUI.py:2137
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:204
+msgid ""
+"Include exclusion areas.\n"
+"In those areas the travel of the tools\n"
+"is forbidden."
+msgstr ""
+"Incluir áreas de exclusión.\n"
+"En esas áreas el recorrido de las herramientas.\n"
+"está prohibido."
+
+#: AppGUI/ObjectUI.py:1324 AppGUI/ObjectUI.py:1343 AppGUI/ObjectUI.py:2158
+#: AppGUI/ObjectUI.py:2177
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:224
+msgid "Strategy"
+msgstr "Estrategia"
+
+#: AppGUI/ObjectUI.py:1324 AppGUI/ObjectUI.py:1355 AppGUI/ObjectUI.py:2158
+#: AppGUI/ObjectUI.py:2189
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:236
+msgid "Over Z"
+msgstr "Sobre ZSuperposición"
+
+#: AppGUI/ObjectUI.py:1326 AppGUI/ObjectUI.py:2160
+msgid "This is the Area ID."
+msgstr ""
+
+#: AppGUI/ObjectUI.py:1328 AppGUI/ObjectUI.py:2162
+msgid "Type of the object where the exclusion area was added."
+msgstr ""
+
+#: AppGUI/ObjectUI.py:1330 AppGUI/ObjectUI.py:2164
+msgid ""
+"The strategy used for exclusion area. Go around the exclusion areas or over "
+"it."
+msgstr ""
+
+#: AppGUI/ObjectUI.py:1332 AppGUI/ObjectUI.py:2166
+msgid ""
+"If the strategy is to go over the area then this is the height at which the "
+"tool will go to avoid the exclusion area."
+msgstr ""
+
+#: AppGUI/ObjectUI.py:1344 AppGUI/ObjectUI.py:2178
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:225
+msgid ""
+"The strategy followed when encountering an exclusion area.\n"
+"Can be:\n"
+"- Over -> when encountering the area, the tool will go to a set height\n"
+"- Around -> will avoid the exclusion area by going around the area"
+msgstr ""
+"La estrategia seguida al encontrar un área de exclusión.\n"
+"Puede ser:\n"
+"- Sobre -> al encontrar el área, la herramienta irá a una altura "
+"establecida\n"
+"- Alrededor -> evitará el área de exclusión recorriendo el área"
+
+#: AppGUI/ObjectUI.py:1348 AppGUI/ObjectUI.py:2182
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:229
+msgid "Over"
+msgstr "Sobre"
+
+#: AppGUI/ObjectUI.py:1349 AppGUI/ObjectUI.py:2183
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:230
+msgid "Around"
+msgstr "AlrededorRedondo"
+
+#: AppGUI/ObjectUI.py:1356 AppGUI/ObjectUI.py:2190
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:237
+msgid ""
+"The height Z to which the tool will rise in order to avoid\n"
+"an interdiction area."
+msgstr ""
+"La altura Z a la que se elevará la herramienta para evitar\n"
+"Un área de interdicción."
+
+#: AppGUI/ObjectUI.py:1366 AppGUI/ObjectUI.py:2200
+#, fuzzy
+#| msgid "Add area"
+msgid "Add area:"
+msgstr "Agregar áreaAñadir Pista"
+
+#: AppGUI/ObjectUI.py:1367 AppGUI/ObjectUI.py:2201
+msgid "Add an Exclusion Area."
+msgstr "Agregar un área de exclusión."
+
+#: AppGUI/ObjectUI.py:1373 AppGUI/ObjectUI.py:2207
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:214
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:324
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:288
+#: AppTools/ToolNCC.py:580 AppTools/ToolPaint.py:523
+msgid "The kind of selection shape used for area selection."
+msgstr "El tipo de forma de selección utilizada para la selección de área."
+
+#: AppGUI/ObjectUI.py:1383 AppGUI/ObjectUI.py:2217
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:32
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:42
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:32
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:32
+msgid "Delete All"
+msgstr "Eliminar todosEliminar taladro"
+
+#: AppGUI/ObjectUI.py:1384 AppGUI/ObjectUI.py:2218
+msgid "Delete all exclusion areas."
+msgstr "Eliminar todas las áreas de exclusión."
+
+#: AppGUI/ObjectUI.py:1387 AppGUI/ObjectUI.py:2221
+#, fuzzy
+#| msgid "Delete Object"
+msgid "Delete Selected"
+msgstr "Eliminar objeto"
+
+#: AppGUI/ObjectUI.py:1388 AppGUI/ObjectUI.py:2222
+#, fuzzy
+#| msgid "Delete all exclusion areas."
+msgid "Delete all exclusion areas that are selected in the table."
+msgstr "Eliminar todas las áreas de exclusión."
+
+#: AppGUI/ObjectUI.py:1412 AppGUI/ObjectUI.py:2238
+msgid ""
+"Add / Select at least one tool in the tool-table.\n"
+"Click the # header to select all, or Ctrl + LMB\n"
+"for custom selection of tools."
+msgstr ""
+"Agregar / Seleccionar al menos una herramienta en la tabla de herramientas.\n"
+"Haga clic en el encabezado # para seleccionar todo, o Ctrl + LMB\n"
+"para la selección personalizada de herramientas."
+
+#: AppGUI/ObjectUI.py:1420 AppGUI/ObjectUI.py:2245
+msgid "Generate CNCJob object"
+msgstr "Generar objeto CNCJob"
+
+#: AppGUI/ObjectUI.py:1422
+msgid ""
+"Generate the CNC Job.\n"
+"If milling then an additional Geometry object will be created"
+msgstr ""
+"Generar el trabajo del CNC.\n"
+"Si se fresa, se creará un objeto Geometry adicional"
+
+#: AppGUI/ObjectUI.py:1439
+msgid "Milling Geometry"
+msgstr "Geometría de fresado"
+
+#: AppGUI/ObjectUI.py:1441
+msgid ""
+"Create Geometry for milling holes.\n"
+"Select from the Tools Table above the hole dias to be\n"
+"milled. Use the # column to make the selection."
+msgstr ""
+"Crear geometría para fresar agujeros.\n"
+"Seleccione de la tabla de herramientas sobre los diámetros de los agujeros "
+"para\n"
+"molido. Use la columna # para hacer la selección."
+
+#: AppGUI/ObjectUI.py:1449
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:296
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:45
+msgid "Diameter of the cutting tool."
+msgstr "Diá. de la herramienta de corte."
+
+#: AppGUI/ObjectUI.py:1459
+msgid "Mill Drills"
+msgstr "Fresar los Taladros"
+
+#: AppGUI/ObjectUI.py:1461
+msgid ""
+"Create the Geometry Object\n"
+"for milling DRILLS toolpaths."
+msgstr ""
+"Crear el objeto de geometría\n"
+"para fresar trayectorias de taladros."
+
+#: AppGUI/ObjectUI.py:1479
+msgid "Mill Slots"
+msgstr "Fresar las Ranuras"
+
+#: AppGUI/ObjectUI.py:1481
+msgid ""
+"Create the Geometry Object\n"
+"for milling SLOTS toolpaths."
+msgstr ""
+"Crear el objeto de geometría\n"
+"para fresar recorridos de herramientas muesca."
+
+#: AppGUI/ObjectUI.py:1523 AppTools/ToolCutOut.py:319
+msgid "Geometry Object"
+msgstr "Objeto de geometría"
+
+#: AppGUI/ObjectUI.py:1569
+msgid ""
+"Tools in this Geometry object used for cutting.\n"
+"The 'Offset' entry will set an offset for the cut.\n"
+"'Offset' can be inside, outside, on path (none) and custom.\n"
+"'Type' entry is only informative and it allow to know the \n"
+"intent of using the current tool. \n"
+"It can be Rough(ing), Finish(ing) or Iso(lation).\n"
+"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n"
+"ball(B), or V-Shaped(V). \n"
+"When V-shaped is selected the 'Type' entry is automatically \n"
+"set to Isolation, the CutZ parameter in the UI form is\n"
+"grayed out and Cut Z is automatically calculated from the newly \n"
+"showed UI form entries named V-Tip Dia and V-Tip Angle."
+msgstr ""
+"Herramientas en este objeto de geometría utilizadas para cortar.\n"
+"La entrada 'Offset' establecerá un desplazamiento para el corte.\n"
+"'Offset' puede estar dentro, fuera, en la ruta (ninguno) y personalizado.\n"
+"La entrada 'Tipo' es solo informativa y permite conocer el\n"
+"intención de usar la herramienta actual.\n"
+"Puede ser Desbaste Acabado o Aislamiento.\n"
+"El 'Tipo de herramienta' (TT) puede ser circular con 1 a 4 dientes (C1.."
+"C4),\n"
+"bola (B) o en forma de V (V).\n"
+"Cuando se selecciona la forma de V, la entrada 'Tipo' es automáticamente\n"
+"establecido en Aislamiento, el parámetro CutZ en el formulario de IU es\n"
+"atenuado y Cut Z se calcula automáticamente a partir de la nueva\n"
+"mostró entradas de formulario de IU denominadas V-Tipo Dia y V-Tipo ángulo."
+
+#: AppGUI/ObjectUI.py:1586 AppGUI/ObjectUI.py:2443
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:40
+msgid "Plot Object"
+msgstr "Trazar objeto"
+
+#: AppGUI/ObjectUI.py:1599 AppGUI/ObjectUI.py:2456 AppGUI/ObjectUI.py:2466
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138
+#: AppTools/ToolCopperThieving.py:221
+msgid "Dia"
+msgstr "Dia"
+
+#: AppGUI/ObjectUI.py:1599 AppGUI/ObjectUI.py:2456 AppTools/ToolNCC.py:132
+#: AppTools/ToolPaint.py:127
+msgid "TT"
+msgstr "TT"
+
+#: AppGUI/ObjectUI.py:1606
+msgid ""
+"This is the Tool Number.\n"
+"When ToolChange is checked, on toolchange event this value\n"
+"will be showed as a T1, T2 ... Tn"
+msgstr ""
+"Este es el número de herramienta.\n"
+"Cuando se marca Cambio de herramienta, en el evento de cambio de herramienta "
+"este valor\n"
+"se mostrará como un T1, T2 ... Tn"
+
+#: AppGUI/ObjectUI.py:1617
+msgid ""
+"The value for the Offset can be:\n"
+"- Path -> There is no offset, the tool cut will be done through the geometry "
+"line.\n"
+"- In(side) -> The tool cut will follow the geometry inside. It will create a "
+"'pocket'.\n"
+"- Out(side) -> The tool cut will follow the geometry line on the outside."
+msgstr ""
+"El valor de la compensación puede ser:\n"
+"- Trayectoria -> No hay desplazamiento, el corte de la herramienta se "
+"realizará a través de la línea de geometría.\n"
+"- En (lado) -> El corte de la herramienta seguirá la geometría interior. "
+"Creará un 'bolsillo'.\n"
+"- Fuera (lado) -> El corte de la herramienta seguirá la línea de geometría "
+"en el exterior."
+
+#: AppGUI/ObjectUI.py:1624
+msgid ""
+"The (Operation) Type has only informative value. Usually the UI form "
+"values \n"
+"are choose based on the operation type and this will serve as a reminder.\n"
+"Can be 'Roughing', 'Finishing' or 'Isolation'.\n"
+"For Roughing we may choose a lower Feedrate and multiDepth cut.\n"
+"For Finishing we may choose a higher Feedrate, without multiDepth.\n"
+"For Isolation we need a lower Feedrate as it use a milling bit with a fine "
+"tip."
+msgstr ""
+"El tipo (Operación) solo tiene un valor informativo. Por lo general, los "
+"valores de formulario de IU\n"
+"se eligen en función del tipo de operación y esto servirá como "
+"recordatorio.\n"
+"Puede ser 'Desbaste', 'Acabado' o 'Aislamiento'.\n"
+"Para desbaste podemos elegir un avance más bajo y un corte de profundidad "
+"múltiple.\n"
+"Para finalizar podemos elegir una velocidad de avance más alta, sin "
+"profundidad múltiple.\n"
+"Para el aislamiento, necesitamos un avance más bajo, ya que utiliza una "
+"broca de fresado con una punta fina."
+
+#: AppGUI/ObjectUI.py:1633
+msgid ""
+"The Tool Type (TT) can be:\n"
+"- Circular with 1 ... 4 teeth -> it is informative only. Being circular the "
+"cut width in material\n"
+"is exactly the tool diameter.\n"
+"- Ball -> informative only and make reference to the Ball type endmill.\n"
+"- V-Shape -> it will disable Z-Cut parameter in the UI form and enable two "
+"additional UI form\n"
+"fields: V-Tip Dia and V-Tip Angle. Adjusting those two values will adjust "
+"the Z-Cut parameter such\n"
+"as the cut width into material will be equal with the value in the Tool "
+"Diameter column of this table.\n"
+"Choosing the V-Shape Tool Type automatically will select the Operation Type "
+"as Isolation."
+msgstr ""
+"El tipo de herramienta (TT) puede ser:\n"
+"- Circular con 1 ... 4 dientes -> es solo informativo. Siendo circular el "
+"ancho de corte en material\n"
+"es exactamente el diámetro de la herramienta.\n"
+"- Bola -> solo informativo y hacer referencia a la fresa de extremo de "
+"bola.\n"
+"- Forma de V -> deshabilitará el parámetro de corte Z de la forma de IU y "
+"habilitará dos formas adicionales de IU\n"
+"campos: V-Tip Dia y V-Tip ángulo. El ajuste de esos dos valores ajustará el "
+"parámetro Z-Cut, como\n"
+"ya que el ancho de corte en el material será igual al valor en la columna "
+"Diámetro de herramienta de esta tabla.\n"
+"Elegir el tipo de herramienta en forma de V automáticamente seleccionará el "
+"tipo de operación como aislamiento."
+
+#: AppGUI/ObjectUI.py:1645
+msgid ""
+"Plot column. It is visible only for MultiGeo geometries, meaning geometries "
+"that holds the geometry\n"
+"data into the tools. For those geometries, deleting the tool will delete the "
+"geometry data also,\n"
+"so be WARNED. From the checkboxes on each row it can be enabled/disabled the "
+"plot on canvas\n"
+"for the corresponding tool."
+msgstr ""
+"Trazar columna. Es visible solo para geometrías múltiples-Geo, es decir, "
+"geometrías que contienen la geometría\n"
+"datos en las herramientas. Para esas geometrías, al eliminar la herramienta "
+"también se eliminarán los datos de geometría,\n"
+"así que ten cuidado. Desde las casillas de verificación en cada fila se "
+"puede habilitar / deshabilitar la trama en el lienzo\n"
+"para la herramienta correspondiente."
+
+#: AppGUI/ObjectUI.py:1663
+msgid ""
+"The value to offset the cut when \n"
+"the Offset type selected is 'Offset'.\n"
+"The value can be positive for 'outside'\n"
+"cut and negative for 'inside' cut."
+msgstr ""
+"El valor para compensar el corte cuando\n"
+"El tipo de compensación seleccionado es 'Offset'.\n"
+"El valor puede ser positivo para 'afuera'\n"
+"corte y negativo para corte 'interior'."
+
+#: AppGUI/ObjectUI.py:1682 AppTools/ToolNCC.py:209 AppTools/ToolNCC.py:923
+#: AppTools/ToolPaint.py:191 AppTools/ToolPaint.py:848
+#: AppTools/ToolSolderPaste.py:559
+msgid "New Tool"
+msgstr "Nueva Herram"
+
+#: AppGUI/ObjectUI.py:1699
+msgid ""
+"Add a new tool to the Tool Table\n"
+"with the specified diameter."
+msgstr ""
+"Agregar una nueva herramienta a la tabla de herramientas\n"
+"con el diámetro especificado."
+
+#: AppGUI/ObjectUI.py:1704 AppTools/ToolNCC.py:300 AppTools/ToolNCC.py:634
+#: AppTools/ToolPaint.py:282 AppTools/ToolPaint.py:678
+msgid "Add from DB"
+msgstr "Agregar desde DB"
+
+#: AppGUI/ObjectUI.py:1706 AppTools/ToolNCC.py:302 AppTools/ToolPaint.py:284
+msgid ""
+"Add a new tool to the Tool Table\n"
+"from the Tool DataBase."
+msgstr ""
+"Agregar una nueva herramienta a la tabla de herramientas\n"
+"de la base de datos de herramientas."
+
+#: AppGUI/ObjectUI.py:1721
+msgid ""
+"Copy a selection of tools in the Tool Table\n"
+"by first selecting a row in the Tool Table."
+msgstr ""
+"Copie una selección de herramientas en la tabla de herramientas\n"
+"seleccionando primero una fila en la Tabla de herramientas."
+
+#: AppGUI/ObjectUI.py:1727
+msgid ""
+"Delete a selection of tools in the Tool Table\n"
+"by first selecting a row in the Tool Table."
+msgstr ""
+"Eliminar una selección de herramientas en la tabla de herramientas\n"
+"seleccionando primero una fila en la Tabla de herramientas."
+
+#: AppGUI/ObjectUI.py:1854
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:103
+msgid ""
+"Height of the tool when\n"
+"moving without cutting."
+msgstr ""
+"Altura de la herramienta cuando\n"
+"Moviéndose sin cortar."
+
+#: AppGUI/ObjectUI.py:1887
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:202
+msgid ""
+"Cutting speed in the XY\n"
+"plane in units per minute.\n"
+"It is called also Plunge."
+msgstr ""
+"Velocidad de corte en el XY.\n"
+"Plano en unidades por minuto.\n"
+"Se llama también Plunge."
+
+#: AppGUI/ObjectUI.py:1902
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:66
+msgid ""
+"Cutting speed in the XY plane\n"
+"(in units per minute).\n"
+"This is for the rapid move G00.\n"
+"It is useful only for Marlin,\n"
+"ignore for any other cases."
+msgstr ""
+"Velocidad de corte en el plano XY.\n"
+"(en unidades por minuto).\n"
+"Esto es para el movimiento rápido G00.\n"
+"Es útil solo para Marlin,\n"
+"Ignorar para cualquier otro caso."
+
+#: AppGUI/ObjectUI.py:1946
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:219
+msgid ""
+"Speed of the spindle in RPM (optional).\n"
+"If LASER preprocessor is used,\n"
+"this value is the power of laser."
+msgstr ""
+"Velocidad del husillo en RPM (opcional).\n"
+"Si se utiliza el postprocesador LÁSER,\n"
+"Este valor es el poder del láser."
+
+#: AppGUI/ObjectUI.py:2049
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:124
+msgid ""
+"Include tool-change sequence\n"
+"in the Machine Code (Pause for tool change)."
+msgstr ""
+"Incluir secuencia de cambio de herramienta\n"
+"en el código de máquina (pausa para cambio de herramienta)."
+
+#: AppGUI/ObjectUI.py:2118
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:256
+msgid ""
+"The Preprocessor file that dictates\n"
+"the Machine Code (like GCode, RML, HPGL) output."
+msgstr ""
+"El archivo de postprocesador que dicta\n"
+"la salida del código de máquina (como GCode, RML, HPGL)."
+
+#: AppGUI/ObjectUI.py:2247 Common.py:405 Common.py:520 Common.py:573
+msgid "Generate the CNC Job object."
+msgstr "Genere el objeto de trabajo CNC."
+
+#: AppGUI/ObjectUI.py:2264
+msgid "Launch Paint Tool in Tools Tab."
+msgstr "Inicie la herramienta Pintura en la pestaña Herramientas."
+
+#: AppGUI/ObjectUI.py:2272 AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:35
+msgid ""
+"Creates tool paths to cover the\n"
+"whole area of a polygon (remove\n"
+"all copper). You will be asked\n"
+"to click on the desired polygon."
+msgstr ""
+"Crea recorridos de herramientas para cubrir la\n"
+"toda el área de un polígono (eliminar\n"
+"todo el cobre). Te harán preguntas\n"
+"Para hacer clic en el polígono deseado."
+
+#: AppGUI/ObjectUI.py:2327
+msgid "CNC Job Object"
+msgstr "Objeto de trabajo CNC"
+
+#: AppGUI/ObjectUI.py:2338 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:45
+msgid "Plot kind"
+msgstr "Tipo de trazado"
+
+#: AppGUI/ObjectUI.py:2341 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:47
+msgid ""
+"This selects the kind of geometries on the canvas to plot.\n"
+"Those can be either of type 'Travel' which means the moves\n"
+"above the work piece or it can be of type 'Cut',\n"
+"which means the moves that cut into the material."
+msgstr ""
+"Esto selecciona el tipo de geometrías en el lienzo para trazar.\n"
+"Esos pueden ser de tipo 'Viajes' lo que significa que los movimientos\n"
+"Por encima de la pieza de trabajo o puede ser de tipo 'Corte',\n"
+"Lo que significa los movimientos que cortan en el material."
+
+#: AppGUI/ObjectUI.py:2350 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:55
+msgid "Travel"
+msgstr "Viajar"
+
+#: AppGUI/ObjectUI.py:2354 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:64
+msgid "Display Annotation"
+msgstr "Mostrar anotación"
+
+#: AppGUI/ObjectUI.py:2356 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:66
+msgid ""
+"This selects if to display text annotation on the plot.\n"
+"When checked it will display numbers in order for each end\n"
+"of a travel line."
+msgstr ""
+"Esto selecciona si mostrar la anotación de texto en el gráfico.\n"
+"Cuando está marcado, mostrará números en orden para cada final.\n"
+"de una linea de viaje."
+
+#: AppGUI/ObjectUI.py:2371
+msgid "Travelled dist."
+msgstr "Dist. recorrida"
+
+#: AppGUI/ObjectUI.py:2373 AppGUI/ObjectUI.py:2378
+msgid ""
+"This is the total travelled distance on X-Y plane.\n"
+"In current units."
+msgstr ""
+"Esta es la distancia total recorrida en el plano X-Y.\n"
+"En unidades actuales."
+
+#: AppGUI/ObjectUI.py:2383
+msgid "Estimated time"
+msgstr "Duración estimada"
+
+#: AppGUI/ObjectUI.py:2385 AppGUI/ObjectUI.py:2390
+msgid ""
+"This is the estimated time to do the routing/drilling,\n"
+"without the time spent in ToolChange events."
+msgstr ""
+"Este es el tiempo estimado para hacer el enrutamiento / perforación,\n"
+"sin el tiempo dedicado a los eventos de cambio de herramienta."
+
+#: AppGUI/ObjectUI.py:2425
+msgid "CNC Tools Table"
+msgstr "Tabla de herramientas CNC"
+
+#: AppGUI/ObjectUI.py:2428
+msgid ""
+"Tools in this CNCJob object used for cutting.\n"
+"The tool diameter is used for plotting on canvas.\n"
+"The 'Offset' entry will set an offset for the cut.\n"
+"'Offset' can be inside, outside, on path (none) and custom.\n"
+"'Type' entry is only informative and it allow to know the \n"
+"intent of using the current tool. \n"
+"It can be Rough(ing), Finish(ing) or Iso(lation).\n"
+"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n"
+"ball(B), or V-Shaped(V)."
+msgstr ""
+"Herramientas en este objeto CNCJob utilizado para cortar.\n"
+"El diámetro de la herramienta se utiliza para trazar en el lienzo.\n"
+"La entrada 'Offset' establecerá un desplazamiento para el corte.\n"
+"'Offset' puede estar dentro, fuera, en la ruta (ninguno) y personalizado.\n"
+"La entrada 'Tipo' es solo informativa y permite conocer el\n"
+"intención de usar la herramienta actual.\n"
+"Puede ser áspero, acabado o aislamiento.\n"
+"El 'Tipo de herramienta' (TT) puede ser circular con 1 a 4 dientes (C1.."
+"C4),\n"
+"bola (B) o en forma de V (V)."
+
+#: AppGUI/ObjectUI.py:2456 AppGUI/ObjectUI.py:2467
+msgid "P"
+msgstr "P"
+
+#: AppGUI/ObjectUI.py:2477
+msgid "Update Plot"
+msgstr "Actualizar Trama"
+
+#: AppGUI/ObjectUI.py:2479
+msgid "Update the plot."
+msgstr "Actualiza la trama."
+
+#: AppGUI/ObjectUI.py:2486
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:30
+msgid "Export CNC Code"
+msgstr "Exportar código CNC"
+
+#: AppGUI/ObjectUI.py:2488
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:32
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:33
+msgid ""
+"Export and save G-Code to\n"
+"make this object to a file."
+msgstr ""
+"Exportar y guardar código G a\n"
+"Hacer este objeto a un archivo."
+
+#: AppGUI/ObjectUI.py:2494
+msgid "Prepend to CNC Code"
+msgstr "Anteponer al código del CNC"
+
+#: AppGUI/ObjectUI.py:2496 AppGUI/ObjectUI.py:2503
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:49
+msgid ""
+"Type here any G-Code commands you would\n"
+"like to add at the beginning of the G-Code file."
+msgstr ""
+"Escribe aquí cualquier comando de G-Code que quieras\n"
+"Me gusta agregar al principio del archivo G-Code."
+
+#: AppGUI/ObjectUI.py:2509
+msgid "Append to CNC Code"
+msgstr "Añadir al código CNC"
+
+#: AppGUI/ObjectUI.py:2511 AppGUI/ObjectUI.py:2519
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:65
+msgid ""
+"Type here any G-Code commands you would\n"
+"like to append to the generated file.\n"
+"I.e.: M2 (End of program)"
+msgstr ""
+"Escribe aquí cualquier comando de código G que quieras\n"
+"Me gusta adjuntar al archivo generado.\n"
+"Es decir: M2 (Fin del programa)"
+
+#: AppGUI/ObjectUI.py:2533
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:38
+msgid "Toolchange G-Code"
+msgstr "Cambio de herra. G-Code"
+
+#: AppGUI/ObjectUI.py:2536
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:41
+msgid ""
+"Type here any G-Code commands you would\n"
+"like to be executed when Toolchange event is encountered.\n"
+"This will constitute a Custom Toolchange GCode,\n"
+"or a Toolchange Macro.\n"
+"The FlatCAM variables are surrounded by '%' symbol.\n"
+"\n"
+"WARNING: it can be used only with a preprocessor file\n"
+"that has 'toolchange_custom' in it's name and this is built\n"
+"having as template the 'Toolchange Custom' posprocessor file."
+msgstr ""
+"Escriba aquí cualquier comando de código G que desee\n"
+"desea ejecutarse cuando se encuentra un evento de cambio de herramienta.\n"
+"Esto constituirá un cambio de herramienta personalizado GCode,\n"
+"o una macro de cambio de herramienta.\n"
+"Las variables de FlatCAM están rodeadas por el símbolo '%'.\n"
+"\n"
+"ADVERTENCIA: solo se puede usar con un archivo de postprocesador\n"
+"que tiene 'toolchange_custom' en su nombre y esto está construido\n"
+"teniendo como plantilla el archivo posprocesador 'Toolchange Custom'."
+
+#: AppGUI/ObjectUI.py:2551
+msgid ""
+"Type here any G-Code commands you would\n"
+"like to be executed when Toolchange event is encountered.\n"
+"This will constitute a Custom Toolchange GCode,\n"
+"or a Toolchange Macro.\n"
+"The FlatCAM variables are surrounded by '%' symbol.\n"
+"WARNING: it can be used only with a preprocessor file\n"
+"that has 'toolchange_custom' in it's name."
+msgstr ""
+"Escriba aquí cualquier comando de código G que desee\n"
+"desea ejecutarse cuando se encuentra el evento Toolchange.\n"
+"Esto constituirá un GCode de Custom Toolchange,\n"
+"o una macro de cambio de herramienta.\n"
+"Las variables de FlatCAM están rodeadas por el símbolo '%'.\n"
+"ADVERTENCIA: solo se puede usar con un archivo de preprocesador\n"
+"que tiene 'toolchange_custom' en su nombre."
+
+#: AppGUI/ObjectUI.py:2566
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:80
+msgid "Use Toolchange Macro"
+msgstr "Util. la herra. de cambio de macro"
+
+#: AppGUI/ObjectUI.py:2568
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:82
+msgid ""
+"Check this box if you want to use\n"
+"a Custom Toolchange GCode (macro)."
+msgstr ""
+"Marque esta casilla si desea utilizar\n"
+"una herramienta personalizada para cambiar GCode (macro)."
+
+#: AppGUI/ObjectUI.py:2576
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:94
+msgid ""
+"A list of the FlatCAM variables that can be used\n"
+"in the Toolchange event.\n"
+"They have to be surrounded by the '%' symbol"
+msgstr ""
+"Una lista de las variables FlatCAM que pueden usarse\n"
+"en el evento Cambio de herramienta.\n"
+"Deben estar rodeados por el símbolo '%'"
+
+#: AppGUI/ObjectUI.py:2583
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:101
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:30
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:31
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:31
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:37
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:36
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:36
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:36
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:31
+#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:31
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:36
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:31
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:30
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:35
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:32
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31
+#: AppTools/ToolCopperThieving.py:89 AppTools/ToolCorners.py:106
+#: AppTools/ToolEtchCompensation.py:82 AppTools/ToolFiducials.py:149
+#: AppTools/ToolInvertGerber.py:82
+msgid "Parameters"
+msgstr "Parámetros"
+
+#: AppGUI/ObjectUI.py:2586
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:106
+msgid "FlatCAM CNC parameters"
+msgstr "Parámetros de FlatCAM CNC"
+
+#: AppGUI/ObjectUI.py:2587
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:111
+msgid "tool number"
+msgstr "número de herramienta"
+
+#: AppGUI/ObjectUI.py:2588
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:112
+msgid "tool diameter"
+msgstr "diámetro de herramienta"
+
+#: AppGUI/ObjectUI.py:2589
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:113
+msgid "for Excellon, total number of drills"
+msgstr "para Excellon, núm. total de taladros"
+
+#: AppGUI/ObjectUI.py:2591
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:115
+msgid "X coord for Toolchange"
+msgstr "Coord. X para Cambio de Herramienta"
+
+#: AppGUI/ObjectUI.py:2592
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:116
+msgid "Y coord for Toolchange"
+msgstr "Coord. Y para Cambio de Herramienta"
+
+#: AppGUI/ObjectUI.py:2593
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:118
+msgid "Z coord for Toolchange"
+msgstr "Coord Z para cambio de herramientas"
+
+#: AppGUI/ObjectUI.py:2594
+msgid "depth where to cut"
+msgstr "profundidad donde cortar"
+
+#: AppGUI/ObjectUI.py:2595
+msgid "height where to travel"
+msgstr "altura donde viajar"
+
+#: AppGUI/ObjectUI.py:2596
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:121
+msgid "the step value for multidepth cut"
+msgstr "el valor del paso para corte de profundidad múltiple"
+
+#: AppGUI/ObjectUI.py:2598
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:123
+msgid "the value for the spindle speed"
+msgstr "el valor de la velocidad del husillo"
+
+#: AppGUI/ObjectUI.py:2600
+msgid "time to dwell to allow the spindle to reach it's set RPM"
+msgstr ""
+"tiempo de espera para permitir que el husillo alcance su RPM establecido"
+
+#: AppGUI/ObjectUI.py:2616
+msgid "View CNC Code"
+msgstr "Ver código CNC"
+
+#: AppGUI/ObjectUI.py:2618
+msgid ""
+"Opens TAB to view/modify/print G-Code\n"
+"file."
+msgstr ""
+"Abre la pestaña para ver / modificar / imprimir el código G\n"
+"expediente."
+
+#: AppGUI/ObjectUI.py:2623
+msgid "Save CNC Code"
+msgstr "Guardar código CNC"
+
+#: AppGUI/ObjectUI.py:2625
+msgid ""
+"Opens dialog to save G-Code\n"
+"file."
+msgstr ""
+"Abre el diálogo para guardar el código G\n"
+"expediente."
+
+#: AppGUI/ObjectUI.py:2659
+msgid "Script Object"
+msgstr "Objeto de script"
+
+#: AppGUI/ObjectUI.py:2679 AppGUI/ObjectUI.py:2753
+msgid "Auto Completer"
+msgstr "Autocompletador"
+
+#: AppGUI/ObjectUI.py:2681
+msgid "This selects if the auto completer is enabled in the Script Editor."
+msgstr ""
+"Esto selecciona si el autocompletador está habilitado en el Editor de "
+"secuencias de comandos."
+
+#: AppGUI/ObjectUI.py:2726
+msgid "Document Object"
+msgstr "Objeto de Documento"
+
+#: AppGUI/ObjectUI.py:2755
+msgid "This selects if the auto completer is enabled in the Document Editor."
+msgstr ""
+"Esto selecciona si el autocompletador está habilitado en el Editor de "
+"Documentos."
+
+#: AppGUI/ObjectUI.py:2773
+msgid "Font Type"
+msgstr "Tipo de Fuente"
+
+#: AppGUI/ObjectUI.py:2790
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:197
+msgid "Font Size"
+msgstr "Tamaño de Fuente"
+
+#: AppGUI/ObjectUI.py:2826
+msgid "Alignment"
+msgstr "Alineación"
+
+#: AppGUI/ObjectUI.py:2831
+msgid "Align Left"
+msgstr "Alinear a la izquierda"
+
+#: AppGUI/ObjectUI.py:2836 App_Main.py:4687
+msgid "Center"
+msgstr "Centrar"
+
+#: AppGUI/ObjectUI.py:2841
+msgid "Align Right"
+msgstr "Alinear a la derecha"
+
+#: AppGUI/ObjectUI.py:2846
+msgid "Justify"
+msgstr "Alinear Justificar"
+
+#: AppGUI/ObjectUI.py:2853
+msgid "Font Color"
+msgstr "Color de Fuente"
+
+#: AppGUI/ObjectUI.py:2855
+msgid "Set the font color for the selected text"
+msgstr "Establecer el color de fuente para el texto seleccionado"
+
+#: AppGUI/ObjectUI.py:2869
+msgid "Selection Color"
+msgstr "Color de seleccion"
+
+#: AppGUI/ObjectUI.py:2871
+msgid "Set the selection color when doing text selection."
+msgstr "Establezca el color de selección al hacer la selección de texto."
+
+#: AppGUI/ObjectUI.py:2885
+msgid "Tab Size"
+msgstr "Tamaño de Pestaña"
+
+#: AppGUI/ObjectUI.py:2887
+msgid "Set the tab size. In pixels. Default value is 80 pixels."
+msgstr ""
+"Establece el tamaño de la pestaña. En píxeles El valor predeterminado es 80 "
+"píxeles."
+
+#: AppGUI/PlotCanvasLegacy.py:1464
+msgid ""
+"Could not annotate due of a difference between the number of text elements "
+"and the number of text positions."
+msgstr ""
+"No se pudo anotar debido a una diferencia entre el número de elementos de "
+"texto y el número de posiciones de texto."
+
+#: AppGUI/preferences/PreferencesUIManager.py:911
+#: AppGUI/preferences/PreferencesUIManager.py:1002
+#: AppGUI/preferences/PreferencesUIManager.py:1026
+#: AppGUI/preferences/PreferencesUIManager.py:1132 App_Main.py:5107
+msgid "Preferences"
+msgstr "Preferencias"
+
+#: AppGUI/preferences/PreferencesUIManager.py:917
+msgid "Preferences applied."
+msgstr "Preferencias aplicadas."
+
+#: AppGUI/preferences/PreferencesUIManager.py:937
+#, fuzzy
+#| msgid "Are you sure you want to delete the GUI Settings? \n"
+msgid "Are you sure you want to continue?"
+msgstr "¿Está seguro de que desea eliminar la configuración de la GUI?\n"
+
+#: AppGUI/preferences/PreferencesUIManager.py:938
+#, fuzzy
+#| msgid "Application started ..."
+msgid "Application restart"
+msgstr "Aplicacion iniciada ..."
+
+#: AppGUI/preferences/PreferencesUIManager.py:1031
+msgid "Preferences closed without saving."
+msgstr "Preferencias cerradas sin guardar."
+
+#: AppGUI/preferences/PreferencesUIManager.py:1043
+msgid "Preferences default values are restored."
+msgstr "Se restauran los valores predeterminados de las preferencias."
+
+#: AppGUI/preferences/PreferencesUIManager.py:1075 App_Main.py:2476
+#: App_Main.py:2544
+msgid "Failed to write defaults to file."
+msgstr "Error al escribir los valores predeterminados en el archivo."
+
+#: AppGUI/preferences/PreferencesUIManager.py:1079
+#: AppGUI/preferences/PreferencesUIManager.py:1188
+msgid "Preferences saved."
+msgstr "Preferencias guardadas."
+
+#: AppGUI/preferences/PreferencesUIManager.py:1129
+msgid "Preferences edited but not saved."
+msgstr "Preferencias editadas pero no guardadas."
+
+#: AppGUI/preferences/PreferencesUIManager.py:1174
+msgid ""
+"One or more values are changed.\n"
+"Do you want to save the Preferences?"
+msgstr ""
+"Uno o más valores son cambiados.\n"
+"¿Quieres guardar las preferencias?"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:27
+msgid "CNC Job Adv. Options"
+msgstr "CNCJob Adv. Opciones"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:64
+msgid ""
+"Type here any G-Code commands you would like to be executed when Toolchange "
+"event is encountered.\n"
+"This will constitute a Custom Toolchange GCode, or a Toolchange Macro.\n"
+"The FlatCAM variables are surrounded by '%' symbol.\n"
+"WARNING: it can be used only with a preprocessor file that has "
+"'toolchange_custom' in it's name."
+msgstr ""
+"Escriba aquí los comandos de G-Code que desea ejecutar cuando se encuentre "
+"el evento Toolchange.\n"
+"Esto constituirá un GCode de Custom Toolchange o una Macro de Toolchange.\n"
+"Las variables de FlatCAM están rodeadas por el símbolo '%'.\n"
+"ADVERTENCIA: solo se puede usar con un archivo de preprocesador que tenga "
+"'toolchange_custom' en su nombre."
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:119
+msgid "Z depth for the cut"
+msgstr "Profundidad Z para el corte"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:120
+msgid "Z height for travel"
+msgstr "Altura Z para viajar"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:126
+msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM"
+msgstr ""
+"dwelltime = tiempo de espera para permitir que el husillo alcance su RPM "
+"establecido"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:145
+msgid "Annotation Size"
+msgstr "Tamaño de la anotación"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:147
+msgid "The font size of the annotation text. In pixels."
+msgstr "El tamaño de fuente del texto de anotación. En píxeles."
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:157
+msgid "Annotation Color"
+msgstr "Color de anotación"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:159
+msgid "Set the font color for the annotation texts."
+msgstr "Establecer el color de fuente para los textos de anotación."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:26
+msgid "CNC Job General"
+msgstr "CNC trabajo general"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:77
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:47
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:59
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:45
+msgid "Circle Steps"
+msgstr "Pasos del círculo"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:79
+msgid ""
+"The number of circle steps for GCode \n"
+"circle and arc shapes linear approximation."
+msgstr ""
+"El número de pasos de círculo para GCode \n"
+"Círculo y arcos de aproximación lineal."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:88
+msgid "Travel dia"
+msgstr "Dia de Viaje"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:90
+msgid ""
+"The width of the travel lines to be\n"
+"rendered in the plot."
+msgstr ""
+"El ancho de las líneas de viaje a ser\n"
+"prestados en la trama."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:103
+msgid "G-code Decimals"
+msgstr "Decimales del código G"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:106
+#: AppTools/ToolFiducials.py:74
+msgid "Coordinates"
+msgstr "Coordenadas"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:108
+msgid ""
+"The number of decimals to be used for \n"
+"the X, Y, Z coordinates in CNC code (GCODE, etc.)"
+msgstr ""
+"El número de decimales a utilizar para\n"
+"Las coordenadas X, Y, Z en código CNC (GCODE, etc.)"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:119
+#: AppTools/ToolProperties.py:519
+msgid "Feedrate"
+msgstr "Avance"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:121
+msgid ""
+"The number of decimals to be used for \n"
+"the Feedrate parameter in CNC code (GCODE, etc.)"
+msgstr ""
+"El número de decimales a utilizar para\n"
+"El parámetro de avance en código CNC (GCODE, etc.)"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:132
+msgid "Coordinates type"
+msgstr "Tipo de coordenadas"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:134
+msgid ""
+"The type of coordinates to be used in Gcode.\n"
+"Can be:\n"
+"- Absolute G90 -> the reference is the origin x=0, y=0\n"
+"- Incremental G91 -> the reference is the previous position"
+msgstr ""
+"El tipo de coordenadas que se utilizarán en Gcode.\n"
+"Puede ser:\n"
+"- G90 absoluto -> la referencia es el origen x = 0, y = 0\n"
+"- Incremental G91 -> la referencia es la posición anterior"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:140
+msgid "Absolute G90"
+msgstr "Absoluto G90"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:141
+msgid "Incremental G91"
+msgstr "G91 incremental"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:151
+msgid "Force Windows style line-ending"
+msgstr "Forzar el final de línea al estilo de Windows"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:153
+msgid ""
+"When checked will force a Windows style line-ending\n"
+"(\\r\\n) on non-Windows OS's."
+msgstr ""
+"Cuando está marcado, forzará un final de línea de estilo Windows\n"
+"(\\r \\n) en sistemas operativos que no sean de Windows."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:165
+msgid "Travel Line Color"
+msgstr "Color de Línea de Viaje"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:169
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:235
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:262
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:154
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:220
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:84
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:153
+#: AppTools/ToolRulesCheck.py:186
+msgid "Outline"
+msgstr "Contorno"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:171
+msgid "Set the travel line color for plotted objects."
+msgstr "Establezca el color de la línea de viaje para los objetos trazados."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:186
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:252
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:279
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:170
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:237
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:170
+msgid "Fill"
+msgstr "Llenado"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:188
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:254
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:281
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:172
+msgid ""
+"Set the fill color for plotted objects.\n"
+"First 6 digits are the color and the last 2\n"
+"digits are for alpha (transparency) level."
+msgstr ""
+"Establecer el color de relleno para los objetos trazados.\n"
+"Los primeros 6 dígitos son el color y los 2 últimos.\n"
+"Los dígitos son para el nivel alfa (transparencia)."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:205
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:298
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:190
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:257
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:189
+msgid "Alpha"
+msgstr "Alfa"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:207
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:300
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:191
+msgid "Set the fill transparency for plotted objects."
+msgstr "Establecer la transparencia de relleno para los objetos trazados."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:231
+msgid "CNCJob Object Color"
+msgstr "Color de objeto CNCJob"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:237
+msgid "Set the color for plotted objects."
+msgstr "Establecer el color para los objetos trazados."
+
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:27
+msgid "CNC Job Options"
+msgstr "Opciones de trabajo CNC"
+
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:31
+msgid "Export G-Code"
+msgstr "Exportar G-Code"
+
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:47
+msgid "Prepend to G-Code"
+msgstr "Prefijo al código G"
+
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:56
+msgid ""
+"Type here any G-Code commands you would like to add at the beginning of the "
+"G-Code file."
+msgstr ""
+"Escriba aquí los comandos de G-Code que le gustaría agregar al comienzo del "
+"archivo de G-Code."
+
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:63
+msgid "Append to G-Code"
+msgstr "Adjuntar al código G"
+
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:73
+msgid ""
+"Type here any G-Code commands you would like to append to the generated "
+"file.\n"
+"I.e.: M2 (End of program)"
+msgstr ""
+"Escriba aquí los comandos de G-Code que le gustaría agregar al archivo "
+"generado.\n"
+"Por ejemplo: M2 (Fin del programa)"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:27
+msgid "Excellon Adv. Options"
+msgstr "Excellon Adv. Opciones"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:34
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:33
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:31
+msgid "Advanced Options"
+msgstr "Opciones avanzadas"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:36
+msgid ""
+"A list of Excellon advanced parameters.\n"
+"Those parameters are available only for\n"
+"Advanced App. Level."
+msgstr ""
+"Una lista de los parámetros avanzados de Excellon.\n"
+"Esos parámetros están disponibles sólo para\n"
+"Aplicación avanzada Nivel."
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:59
+msgid "Toolchange X,Y"
+msgstr "Cambio de herra X, Y"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:61
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:47
+msgid "Toolchange X,Y position."
+msgstr "Cambio de herra X, posición Y."
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:121
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:134
+msgid "Spindle direction"
+msgstr "Dirección del motor"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:123
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:136
+msgid ""
+"This sets the direction that the spindle is rotating.\n"
+"It can be either:\n"
+"- CW = clockwise or\n"
+"- CCW = counter clockwise"
+msgstr ""
+"Esto establece la dirección en que gira el husillo.\n"
+"Puede ser:\n"
+"- CW = en el sentido de las agujas del reloj o\n"
+"- CCW = a la izquierda"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:134
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:148
+msgid "Fast Plunge"
+msgstr "Salto rápido"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:136
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:150
+msgid ""
+"By checking this, the vertical move from\n"
+"Z_Toolchange to Z_move is done with G0,\n"
+"meaning the fastest speed available.\n"
+"WARNING: the move is done at Toolchange X,Y coords."
+msgstr ""
+"Al comprobar esto, el movimiento vertical de\n"
+"Z_Toolchange a Z_move se hace con G0,\n"
+"es decir, la velocidad más rápida disponible.\n"
+"ADVERTENCIA: el movimiento se realiza en Toolchange X, Y coords."
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:143
+msgid "Fast Retract"
+msgstr "Retracción rápida"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:145
+msgid ""
+"Exit hole strategy.\n"
+" - When uncheked, while exiting the drilled hole the drill bit\n"
+"will travel slow, with set feedrate (G1), up to zero depth and then\n"
+"travel as fast as possible (G0) to the Z Move (travel height).\n"
+" - When checked the travel from Z cut (cut depth) to Z_move\n"
+"(travel height) is done as fast as possible (G0) in one move."
+msgstr ""
+"Estrategia de salida del agujero.\n"
+" - Cuando no esté enganchado, al salir del orificio perforado, la broca\n"
+"viajará lento, con velocidad de avance establecida (G1), hasta una "
+"profundidad de cero y luego\n"
+"viaje lo más rápido posible (G0) al Z Move (altura de desplazamiento).\n"
+" - Cuando se verifica el recorrido desde Z corte (profundidad de corte) a "
+"Z_move\n"
+"(altura de recorrido) se realiza lo más rápido posible (G0) en un movimiento."
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:32
+msgid "A list of Excellon Editor parameters."
+msgstr "Una lista de los parámetros de Excellon Editor."
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:40
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:41
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:41
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:194
+msgid "Selection limit"
+msgstr "Límite de selección"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:42
+msgid ""
+"Set the number of selected Excellon geometry\n"
+"items above which the utility geometry\n"
+"becomes just a selection rectangle.\n"
+"Increases the performance when moving a\n"
+"large number of geometric elements."
+msgstr ""
+"Establecer el número de geometría de Excellon seleccionada\n"
+"elementos por encima de los cuales la geometría de utilidad\n"
+"se convierte en sólo un rectángulo de selección.\n"
+"Aumenta el rendimiento al mover un\n"
+"Gran cantidad de elementos geométricos."
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:55
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:117
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:123
+msgid "New Dia"
+msgstr "Nuevo dia"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:80
+msgid "Linear Drill Array"
+msgstr "Matriz de taladro lineal"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:84
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:232
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:120
+msgid "Linear Direction"
+msgstr "Direccion lineal"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:126
+msgid "Circular Drill Array"
+msgstr "Matriz de Taladro Circ"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:130
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:280
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:164
+msgid "Circular Direction"
+msgstr "Dirección circular"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:132
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:282
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:166
+msgid ""
+"Direction for circular array.\n"
+"Can be CW = clockwise or CCW = counter clockwise."
+msgstr ""
+"Dirección para matriz circular.\n"
+"Puede ser CW = en sentido horario o CCW = en sentido antihorario."
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:143
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:293
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:177
+msgid "Circular Angle"
+msgstr "Ángulo circular"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:196
+msgid ""
+"Angle at which the slot is placed.\n"
+"The precision is of max 2 decimals.\n"
+"Min value is: -359.99 degrees.\n"
+"Max value is: 360.00 degrees."
+msgstr ""
+"Ángulo en el que se coloca la ranura.\n"
+"La precisión es de un máximo de 2 decimales.\n"
+"El valor mínimo es: -359.99 grados.\n"
+"El valor máximo es: 360.00 grados."
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:215
+msgid "Linear Slot Array"
+msgstr "Matriz Lin de Ranuras"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:276
+msgid "Circular Slot Array"
+msgstr "Matriz Circ de Ranura"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:26
+msgid "Excellon Export"
+msgstr "Excellon Exportar"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:30
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:31
+msgid "Export Options"
+msgstr "Opciones de export"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:32
+msgid ""
+"The parameters set here are used in the file exported\n"
+"when using the File -> Export -> Export Excellon menu entry."
+msgstr ""
+"Los parámetros establecidos aquí se utilizan en el archivo exportado.\n"
+"cuando se utiliza la entrada de menú Archivo -> Exportar -> Exportar "
+"Excellon."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:41
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:163
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:39
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:42
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:82
+#: AppTools/ToolDistance.py:56 AppTools/ToolDistanceMin.py:49
+#: AppTools/ToolPcbWizard.py:127 AppTools/ToolProperties.py:154
+msgid "Units"
+msgstr "Unidades"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:43
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:49
+msgid "The units used in the Excellon file."
+msgstr "Las unidades utilizadas en el archivo Excellon."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:46
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:87
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:173
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:47
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:87
+#: AppTools/ToolCalculators.py:61 AppTools/ToolPcbWizard.py:125
+msgid "INCH"
+msgstr "PULGADA"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:47
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:174
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:43
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:48
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:88
+#: AppTools/ToolCalculators.py:62 AppTools/ToolPcbWizard.py:126
+msgid "MM"
+msgstr "MM"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:55
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:56
+msgid "Int/Decimals"
+msgstr "Entero/Decimales"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:57
+msgid ""
+"The NC drill files, usually named Excellon files\n"
+"are files that can be found in different formats.\n"
+"Here we set the format used when the provided\n"
+"coordinates are not using period."
+msgstr ""
+"Los archivos de exploración NC, normalmente denominados archivos Excellon\n"
+"Son archivos que se pueden encontrar en diferentes formatos.\n"
+"Aquí configuramos el formato utilizado cuando el proporcionado\n"
+"Las coordenadas no están usando el punto."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:69
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:95
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:124
+msgid ""
+"This numbers signify the number of digits in\n"
+"the whole part of Excellon coordinates."
+msgstr ""
+"Estos números significan el número de dígitos en\n"
+"Coordina toda la parte de Excellon."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:82
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:108
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:137
+msgid ""
+"This numbers signify the number of digits in\n"
+"the decimal part of Excellon coordinates."
+msgstr ""
+"Estos números significan el número de dígitos en\n"
+"La parte decimal de las coordenadas de Excellon."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:91
+msgid "Format"
+msgstr "Formato"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:93
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:103
+msgid ""
+"Select the kind of coordinates format used.\n"
+"Coordinates can be saved with decimal point or without.\n"
+"When there is no decimal point, it is required to specify\n"
+"the number of digits for integer part and the number of decimals.\n"
+"Also it will have to be specified if LZ = leading zeros are kept\n"
+"or TZ = trailing zeros are kept."
+msgstr ""
+"Seleccione el tipo de formato de coordenadas utilizado.\n"
+"Las coordenadas se pueden guardar con punto decimal o sin.\n"
+"Cuando no hay un punto decimal, se requiere especificar\n"
+"el número de dígitos para la parte entera y el número de decimales.\n"
+"También deberá especificarse si LZ = ceros iniciales se mantienen\n"
+"o TZ = ceros finales se mantienen."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:100
+msgid "Decimal"
+msgstr "Decimal"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:101
+msgid "No-Decimal"
+msgstr "Sin-Decimal"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:114
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:145
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:96
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:97
+msgid "Zeros"
+msgstr "Ceros"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:117
+msgid ""
+"This sets the type of Excellon zeros.\n"
+"If LZ then Leading Zeros are kept and\n"
+"Trailing Zeros are removed.\n"
+"If TZ is checked then Trailing Zeros are kept\n"
+"and Leading Zeros are removed."
+msgstr ""
+"Esto establece el tipo de ceros Excellon.\n"
+"Si LZ entonces Leading Zeros se mantienen y\n"
+"Se eliminan los ceros finales.\n"
+"Si se comprueba TZ, se mantienen los ceros finales.\n"
+"y Leading Zeros se eliminan."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:124
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:158
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:106
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:107
+#: AppTools/ToolPcbWizard.py:111
+msgid "LZ"
+msgstr "LZ"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:125
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:159
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:107
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:108
+#: AppTools/ToolPcbWizard.py:112
+msgid "TZ"
+msgstr "TZ"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:127
+msgid ""
+"This sets the default type of Excellon zeros.\n"
+"If LZ then Leading Zeros are kept and\n"
+"Trailing Zeros are removed.\n"
+"If TZ is checked then Trailing Zeros are kept\n"
+"and Leading Zeros are removed."
+msgstr ""
+"Esto establece el tipo predeterminado de ceros Excellon.\n"
+"Si LZ entonces los ceros iniciales se mantienen y\n"
+"Se eliminan los ceros finales.\n"
+"Si se comprueba TZ, se mantienen los ceros finales.\n"
+"y se eliminan los ceros iniciales."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:137
+msgid "Slot type"
+msgstr "Tipo de ranura"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:140
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:150
+msgid ""
+"This sets how the slots will be exported.\n"
+"If ROUTED then the slots will be routed\n"
+"using M15/M16 commands.\n"
+"If DRILLED(G85) the slots will be exported\n"
+"using the Drilled slot command (G85)."
+msgstr ""
+"Esto establece cómo se exportarán las ranuras.\n"
+"Si se enruta, las ranuras se enrutarán\n"
+"utilizando los comandos M15 / M16.\n"
+"Si PERFORADO (G85), las ranuras se exportarán\n"
+"utilizando el comando Ranura perforada (G85)."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:147
+msgid "Routed"
+msgstr "Enrutado"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:148
+msgid "Drilled(G85)"
+msgstr "Perforado (G85)"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:29
+msgid "Excellon General"
+msgstr "Excellon General"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:62
+msgid "Excellon Format"
+msgstr "Formato Excellon"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:64
+msgid ""
+"The NC drill files, usually named Excellon files\n"
+"are files that can be found in different formats.\n"
+"Here we set the format used when the provided\n"
+"coordinates are not using period.\n"
+"\n"
+"Possible presets:\n"
+"\n"
+"PROTEUS 3:3 MM LZ\n"
+"DipTrace 5:2 MM TZ\n"
+"DipTrace 4:3 MM LZ\n"
+"\n"
+"EAGLE 3:3 MM TZ\n"
+"EAGLE 4:3 MM TZ\n"
+"EAGLE 2:5 INCH TZ\n"
+"EAGLE 3:5 INCH TZ\n"
+"\n"
+"ALTIUM 2:4 INCH LZ\n"
+"Sprint Layout 2:4 INCH LZ\n"
+"KiCAD 3:5 INCH TZ"
+msgstr ""
+"Los archivos de exploración NC, normalmente denominados archivos Excellon\n"
+"Son archivos que se pueden encontrar en diferentes formatos.\n"
+"Aquí configuramos el formato utilizado cuando el proporcionado\n"
+"Las coordenadas no están usando el punto.\n"
+"\n"
+"Posibles presets:\n"
+"\n"
+"PROTEO 3: 3 MM LZ\n"
+"DipTrace 5: 2 MM TZ\n"
+"DipTrace 4: 3 MM LZ\n"
+"\n"
+"ÁGUILA 3: 3 MM TZ\n"
+"ÁGUILA 4: 3 MM TZ\n"
+"ÁGUILA 2: 5 PULGADAS TZ\n"
+"ÁGUILA 3: 5 PULGADAS TZ\n"
+"\n"
+"ALTUM 2: 4 PULGADAS LZ\n"
+"Sprint Layout 2: 4 PULGADAS LZ\n"
+"KiCAD 3: 5 PULGADAS TZ"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:88
+msgid "Default values for INCH are 2:4"
+msgstr "Los valores predeterminados para INCH son 2:4"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:116
+msgid "METRIC"
+msgstr "MÉTRICO"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:117
+msgid "Default values for METRIC are 3:3"
+msgstr "Los valores predeterminados para Métrica son 3: 3"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:148
+msgid ""
+"This sets the type of Excellon zeros.\n"
+"If LZ then Leading Zeros are kept and\n"
+"Trailing Zeros are removed.\n"
+"If TZ is checked then Trailing Zeros are kept\n"
+"and Leading Zeros are removed.\n"
+"\n"
+"This is used when there is no information\n"
+"stored in the Excellon file."
+msgstr ""
+"Esto establece el tipo de ceros Excellon.\n"
+"Si LZ entonces Leading Zeros se mantienen y\n"
+"Se eliminan los ceros finales.\n"
+"Si se comprueba TZ, se mantienen los ceros finales.\n"
+"y Leading Zeros se eliminan.\n"
+"\n"
+"Esto se usa cuando no hay información\n"
+"almacenado en el archivo Excellon."
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:166
+msgid ""
+"This sets the default units of Excellon files.\n"
+"If it is not detected in the parsed file the value here\n"
+"will be used.Some Excellon files don't have an header\n"
+"therefore this parameter will be used."
+msgstr ""
+"Esto establece las unidades predeterminadas de los archivos de Excellon.\n"
+"Si no se detecta en el archivo analizado el valor aquí\n"
+"serán utilizados. Algunos archivos de Excellon no tienen un encabezado\n"
+"por lo tanto este parámetro será utilizado."
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:176
+msgid ""
+"This sets the units of Excellon files.\n"
+"Some Excellon files don't have an header\n"
+"therefore this parameter will be used."
+msgstr ""
+"Esto establece las unidades de archivos de Excellon.\n"
+"Algunos archivos de Excellon no tienen un encabezado\n"
+"por lo tanto este parámetro será utilizado."
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:184
+msgid "Update Export settings"
+msgstr "Actualizar configuración de exportación"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:201
+msgid "Excellon Optimization"
+msgstr "Optimización Excellon"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:204
+msgid "Algorithm:"
+msgstr "Algoritmo:"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:206
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:222
+msgid ""
+"This sets the optimization type for the Excellon drill path.\n"
+"If <> is checked then Google OR-Tools algorithm with\n"
+"MetaHeuristic Guided Local Path is used. Default search time is 3sec.\n"
+"If <> is checked then Google OR-Tools Basic algorithm is used.\n"
+"If <> is checked then Travelling Salesman algorithm is used for\n"
+"drill path optimization.\n"
+"\n"
+"If this control is disabled, then FlatCAM works in 32bit mode and it uses\n"
+"Travelling Salesman algorithm for path optimization."
+msgstr ""
+"Esto establece el tipo de optimización para la ruta de perforación "
+"Excellon.\n"
+"Si <> está marcado, el algoritmo de Google OR-Tools con\n"
+"Se utiliza la ruta local guiada metaheurística. El tiempo de búsqueda "
+"predeterminado es de 3 segundos.\n"
+"Si <> está marcado, se utiliza el algoritmo básico de Google OR-"
+"Tools.\n"
+"Si se marca <>, se utiliza el algoritmo de vendedor ambulante para\n"
+"Optimización de la ruta de perforación.\n"
+"\n"
+"Si este control está desactivado, FlatCAM funciona en modo de 32 bits y "
+"utiliza\n"
+"Algoritmo de vendedor ambulante para la optimización de rutas."
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:217
+msgid "MetaHeuristic"
+msgstr "MetaHeuristic"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:218
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:104
+#: AppObjects/FlatCAMExcellon.py:683 AppObjects/FlatCAMGeometry.py:561
+#: AppObjects/FlatCAMGerber.py:251
+msgid "Basic"
+msgstr "BASIC"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:219
+msgid "TSA"
+msgstr "TSA"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:236
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:245
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:237
+msgid "Duration"
+msgstr "Duración"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:239
+msgid ""
+"When OR-Tools Metaheuristic (MH) is enabled there is a\n"
+"maximum threshold for how much time is spent doing the\n"
+"path optimization. This max duration is set here.\n"
+"In seconds."
+msgstr ""
+"Cuando OR-Tools Metaheuristic (MH) está habilitado, hay un\n"
+"umbral máximo de cuánto tiempo se dedica a hacer el\n"
+"Optimización del camino. Esta duración máxima se establece aquí.\n"
+"En segundos."
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:258
+msgid "Excellon Object Color"
+msgstr "Color del objeto Excellon"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:264
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:86
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:155
+msgid "Set the line color for plotted objects."
+msgstr "Establecer el color de la línea para los objetos trazados."
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:29
+msgid "Excellon Options"
+msgstr "Excellon Opciones"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:33
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:34
+msgid "Create CNC Job"
+msgstr "Crear trabajo CNC"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:35
+msgid ""
+"Parameters used to create a CNC Job object\n"
+"for this drill object."
+msgstr ""
+"Parámetros utilizados para crear un objeto de trabajo CNC\n"
+"para este objeto taladro."
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:152
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:121
+msgid "Tool change"
+msgstr "Cambio de herram"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:236
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:232
+msgid "Enable Dwell"
+msgstr "Habilitar Permanencia"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:259
+msgid ""
+"The preprocessor JSON file that dictates\n"
+"Gcode output."
+msgstr ""
+"El archivo JSON del postprocesador que dicta\n"
+"Salida de Gcode."
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:270
+msgid "Gcode"
+msgstr "Gcode"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:272
+msgid ""
+"Choose what to use for GCode generation:\n"
+"'Drills', 'Slots' or 'Both'.\n"
+"When choosing 'Slots' or 'Both', slots will be\n"
+"converted to drills."
+msgstr ""
+"Elija qué usar para la generación de GCode:\n"
+"'Taladros', 'Tragamonedas' o 'Ambos'.\n"
+"Al elegir 'Ranuras' o 'Ambos', las ranuras serán\n"
+"convertido en taladros."
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:288
+msgid "Mill Holes"
+msgstr "Agujeros de molino"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:290
+msgid "Create Geometry for milling holes."
+msgstr "Crear geometría para fresar agujeros."
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:294
+msgid "Drill Tool dia"
+msgstr "Diá de la herra. de Perfor"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:305
+msgid "Slot Tool dia"
+msgstr "Diá. de la herra. de ranura"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:307
+msgid ""
+"Diameter of the cutting tool\n"
+"when milling slots."
+msgstr ""
+"Diámetro de la herramienta de corte\n"
+"Al fresar ranuras."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:28
+msgid "App Settings"
+msgstr "Configuración de Aplicación"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:49
+msgid "Grid Settings"
+msgstr "Configuración de cuadrícula"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:53
+msgid "X value"
+msgstr "Valor X"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:55
+msgid "This is the Grid snap value on X axis."
+msgstr "Este es el valor de ajuste de cuadrícula en el eje X."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:65
+msgid "Y value"
+msgstr "Valor Y"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:67
+msgid "This is the Grid snap value on Y axis."
+msgstr "Este es el valor de ajuste de cuadrícula en el eje Y."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:77
+msgid "Snap Max"
+msgstr "Máx. de ajuste"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:92
+msgid "Workspace Settings"
+msgstr "Configuración del espacio de trabajo"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:95
+msgid "Active"
+msgstr "Activo"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:97
+msgid ""
+"Draw a delimiting rectangle on canvas.\n"
+"The purpose is to illustrate the limits for our work."
+msgstr ""
+"Dibuja un rectángulo delimitador en el lienzo.\n"
+"El propósito es ilustrar los límites de nuestro trabajo."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:105
+msgid ""
+"Select the type of rectangle to be used on canvas,\n"
+"as valid workspace."
+msgstr ""
+"Seleccione el tipo de rectángulo a utilizar en el lienzo,\n"
+"como espacio de trabajo válido."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:171
+msgid "Orientation"
+msgstr "Orientación"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:172
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:239
+#: AppTools/ToolFilm.py:405
+msgid ""
+"Can be:\n"
+"- Portrait\n"
+"- Landscape"
+msgstr ""
+"Puede ser:\n"
+"- retrato\n"
+"- paisaje"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:176
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:243
+#: AppTools/ToolFilm.py:409
+msgid "Portrait"
+msgstr "Retrato"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:177
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:244
+#: AppTools/ToolFilm.py:410
+msgid "Landscape"
+msgstr "Paisaje"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:201
+msgid "Notebook"
+msgstr "Cuaderno"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:203
+#, fuzzy
+#| msgid ""
+#| "This sets the font size for the elements found in the Notebook.\n"
+#| "The notebook is the collapsible area in the left side of the GUI,\n"
+#| "and include the Project, Selected and Tool tabs."
+msgid ""
+"This sets the font size for the elements found in the Notebook.\n"
+"The notebook is the collapsible area in the left side of the AppGUI,\n"
+"and include the Project, Selected and Tool tabs."
+msgstr ""
+"Esto establece el tamaño de fuente para los elementos encontrados en el "
+"Cuaderno.\n"
+"El cuaderno es el área plegable en el lado izquierdo de la GUI,\n"
+"e incluye las pestañas Proyecto, Seleccionado y Herramienta."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:222
+msgid "Axis"
+msgstr "Eje"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:224
+msgid "This sets the font size for canvas axis."
+msgstr "Esto establece el tamaño de fuente para el eje del lienzo."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:241
+msgid "Textbox"
+msgstr "Caja de texto"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:243
+#, fuzzy
+#| msgid ""
+#| "This sets the font size for the Textbox GUI\n"
+#| "elements that are used in FlatCAM."
+msgid ""
+"This sets the font size for the Textbox AppGUI\n"
+"elements that are used in FlatCAM."
+msgstr ""
+"Esto establece el tamaño de fuente para la GUI del cuadro de texto\n"
+"elementos que se usan en FlatCAM."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:261
+msgid "HUD"
+msgstr ""
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:263
+#, fuzzy
+#| msgid "This sets the font size for canvas axis."
+msgid "This sets the font size for the Heads Up Display."
+msgstr "Esto establece el tamaño de fuente para el eje del lienzo."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:288
+msgid "Mouse Settings"
+msgstr "Configuraciones del mouse"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:292
+msgid "Cursor Shape"
+msgstr "Forma del cursor"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:294
+msgid ""
+"Choose a mouse cursor shape.\n"
+"- Small -> with a customizable size.\n"
+"- Big -> Infinite lines"
+msgstr ""
+"Elija la forma del cursor del mouse.\n"
+"- Pequeño -> con un tamaño personalizable.\n"
+"- Grande -> Líneas infinitas"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:300
+msgid "Small"
+msgstr "Pequeño"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:301
+msgid "Big"
+msgstr "Grande"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:308
+msgid "Cursor Size"
+msgstr "Tamaño del cursor"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:310
+msgid "Set the size of the mouse cursor, in pixels."
+msgstr "Establezca el tamaño del cursor del mouse, en píxeles."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:321
+msgid "Cursor Width"
+msgstr "Ancho del cursor"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:323
+msgid "Set the line width of the mouse cursor, in pixels."
+msgstr "Establezca el ancho de línea del cursor del mouse, en píxeles."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:334
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:341
+msgid "Cursor Color"
+msgstr "Color del cursor"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:336
+msgid "Check this box to color mouse cursor."
+msgstr "Marque esta casilla para colorear el cursor del mouse."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:343
+msgid "Set the color of the mouse cursor."
+msgstr "Establece el color del cursor del mouse."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:366
+msgid "Pan Button"
+msgstr "Botón de pan"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:368
+msgid ""
+"Select the mouse button to use for panning:\n"
+"- MMB --> Middle Mouse Button\n"
+"- RMB --> Right Mouse Button"
+msgstr ""
+"Seleccione el botón del ratón para utilizarlo en la panorámica:\n"
+"- MMB -> Botón Central Del Ratón\n"
+"- RMB -> Botón derecho del ratón"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:372
+msgid "MMB"
+msgstr "MMB"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:373
+msgid "RMB"
+msgstr "RMB"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:379
+msgid "Multiple Selection"
+msgstr "Selección múltiple"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:381
+msgid "Select the key used for multiple selection."
+msgstr "Seleccione la clave utilizada para la selección múltiple."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:383
+msgid "CTRL"
+msgstr "CTRL"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:384
+msgid "SHIFT"
+msgstr "SHIFT"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:395
+msgid "Delete object confirmation"
+msgstr "Eliminar confirmación de objeto"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:397
+msgid ""
+"When checked the application will ask for user confirmation\n"
+"whenever the Delete object(s) event is triggered, either by\n"
+"menu shortcut or key shortcut."
+msgstr ""
+"Cuando esté marcada, la aplicación solicitará la confirmación del usuario\n"
+"cada vez que se desencadena el evento Eliminar objeto (s), ya sea por\n"
+"acceso directo al menú o acceso directo a teclas."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:404
+msgid "\"Open\" behavior"
+msgstr "Comportamiento \"abierto\""
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:406
+msgid ""
+"When checked the path for the last saved file is used when saving files,\n"
+"and the path for the last opened file is used when opening files.\n"
+"\n"
+"When unchecked the path for opening files is the one used last: either the\n"
+"path for saving files or the path for opening files."
+msgstr ""
+"Cuando se verifica, la ruta del último archivo guardado se usa al guardar "
+"archivos,\n"
+"y la ruta del último archivo abierto se utiliza al abrir archivos.\n"
+"\n"
+"Cuando no está marcada, la ruta para abrir archivos es la última utilizada:\n"
+"ruta para guardar archivos o la ruta para abrir archivos."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:415
+msgid "Enable ToolTips"
+msgstr "Hab. info sobre Herram"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:417
+msgid ""
+"Check this box if you want to have toolTips displayed\n"
+"when hovering with mouse over items throughout the App."
+msgstr ""
+"Marque esta casilla si desea que se muestre información sobre herramientas\n"
+"al pasar el mouse sobre los elementos de la aplicación."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:424
+msgid "Allow Machinist Unsafe Settings"
+msgstr "Permitir configuraciones inseguras de Maquinista"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:426
+msgid ""
+"If checked, some of the application settings will be allowed\n"
+"to have values that are usually unsafe to use.\n"
+"Like Z travel negative values or Z Cut positive values.\n"
+"It will applied at the next application start.\n"
+"<>: Don't change this unless you know what you are doing !!!"
+msgstr ""
+"Si está marcada, se permitirán algunas de las configuraciones de la "
+"aplicación\n"
+"tener valores que generalmente no son seguros de usar.\n"
+"Como los valores negativos de desplazamiento Z o los valores positivos de Z "
+"Cut.\n"
+"Se aplicará en el próximo inicio de la aplicación.\n"
+"<>: ¡No cambie esto a menos que sepa lo que está haciendo!"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:438
+msgid "Bookmarks limit"
+msgstr "Límite de Marcadores"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:440
+msgid ""
+"The maximum number of bookmarks that may be installed in the menu.\n"
+"The number of bookmarks in the bookmark manager may be greater\n"
+"but the menu will hold only so much."
+msgstr ""
+"El número máximo de marcadores que se pueden instalar en el menú.\n"
+"El número de marcadores en el administrador de marcadores puede ser mayor\n"
+"pero el menú solo tendrá una cantidad considerable."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:449
+msgid "Activity Icon"
+msgstr "Ícono de actividad"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:451
+msgid "Select the GIF that show activity when FlatCAM is active."
+msgstr "Seleccione el GIF que muestra actividad cuando FlatCAM está activo."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:29
+msgid "App Preferences"
+msgstr "Preferencias de la aplicación"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:40
+msgid ""
+"The default value for FlatCAM units.\n"
+"Whatever is selected here is set every time\n"
+"FlatCAM is started."
+msgstr ""
+"El valor por defecto para las unidades FlatCAM.\n"
+"Lo que se selecciona aquí se establece cada vez\n"
+"Se inicia FLatCAM."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:44
+msgid "IN"
+msgstr "IN"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:50
+msgid "Precision MM"
+msgstr "Precisión MM"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:52
+msgid ""
+"The number of decimals used throughout the application\n"
+"when the set units are in METRIC system.\n"
+"Any change here require an application restart."
+msgstr ""
+"El número de decimales utilizados en toda la aplicación.\n"
+"cuando las unidades configuradas están en el sistema METRIC.\n"
+"Cualquier cambio aquí requiere un reinicio de la aplicación."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:64
+msgid "Precision INCH"
+msgstr "Precisión PULGADA"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:66
+msgid ""
+"The number of decimals used throughout the application\n"
+"when the set units are in INCH system.\n"
+"Any change here require an application restart."
+msgstr ""
+"El número de decimales utilizados en toda la aplicación.\n"
+"cuando las unidades configuradas están en el sistema PULGADA.\n"
+"Cualquier cambio aquí requiere un reinicio de la aplicación."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:78
+msgid "Graphic Engine"
+msgstr "Motor gráfico"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:79
+msgid ""
+"Choose what graphic engine to use in FlatCAM.\n"
+"Legacy(2D) -> reduced functionality, slow performance but enhanced "
+"compatibility.\n"
+"OpenGL(3D) -> full functionality, high performance\n"
+"Some graphic cards are too old and do not work in OpenGL(3D) mode, like:\n"
+"Intel HD3000 or older. In this case the plot area will be black therefore\n"
+"use the Legacy(2D) mode."
+msgstr ""
+"Elija qué motor gráfico usar en FlatCAM.\n"
+"Legacy (2D) -> funcionalidad reducida, rendimiento lento pero compatibilidad "
+"mejorada.\n"
+"OpenGL (3D) -> funcionalidad completa, alto rendimiento\n"
+"Algunas tarjetas gráficas son demasiado viejas y no funcionan en modo OpenGL "
+"(3D), como:\n"
+"Intel HD3000 o anterior. En este caso, el área de trazado será negra, por lo "
+"tanto\n"
+"use el modo Legacy (2D)."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:85
+msgid "Legacy(2D)"
+msgstr "Legado (2D)"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:86
+msgid "OpenGL(3D)"
+msgstr "OpenGL(3D)"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:98
+msgid "APP. LEVEL"
+msgstr "Nivel de aplicación"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:99
+msgid ""
+"Choose the default level of usage for FlatCAM.\n"
+"BASIC level -> reduced functionality, best for beginner's.\n"
+"ADVANCED level -> full functionality.\n"
+"\n"
+"The choice here will influence the parameters in\n"
+"the Selected Tab for all kinds of FlatCAM objects."
+msgstr ""
+"Elija el nivel de uso predeterminado para FlatCAM.\n"
+"Nivel BÁSICO -> funcionalidad reducida, mejor para principiantes.\n"
+"Nivel AVANZADO -> Funcionalidad completa.\n"
+"\n"
+"La elección aquí influirá en los parámetros en\n"
+"La pestaña seleccionada para todo tipo de objetos FlatCAM."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:105
+#: AppObjects/FlatCAMExcellon.py:696 AppObjects/FlatCAMGeometry.py:582
+#: AppObjects/FlatCAMGerber.py:278
+msgid "Advanced"
+msgstr "Avanzado"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:111
+msgid "Portable app"
+msgstr "Aplicación portátil"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:112
+msgid ""
+"Choose if the application should run as portable.\n"
+"\n"
+"If Checked the application will run portable,\n"
+"which means that the preferences files will be saved\n"
+"in the application folder, in the lib\\config subfolder."
+msgstr ""
+"Elija si la aplicación debe ejecutarse como portátil.\n"
+"\n"
+"Si está marcada, la aplicación se ejecutará portátil,\n"
+"lo que significa que los archivos de preferencias se guardarán\n"
+"en la carpeta de la aplicación, en la subcarpeta lib \\ config."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:125
+msgid "Languages"
+msgstr "Idiomas"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:126
+msgid "Set the language used throughout FlatCAM."
+msgstr "Establezca el idioma utilizado en FlatCAM."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:132
+msgid "Apply Language"
+msgstr "Aplicar idioma"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:133
+msgid ""
+"Set the language used throughout FlatCAM.\n"
+"The app will restart after click."
+msgstr ""
+"Establezca el idioma utilizado en FlatCAM.\n"
+"La aplicación se reiniciará después de hacer clic."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:147
+msgid "Startup Settings"
+msgstr "Configuraciones de inicio"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:151
+msgid "Splash Screen"
+msgstr "Pantalla de bienvenida"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:153
+msgid "Enable display of the splash screen at application startup."
+msgstr ""
+"Habilite la visualización de la pantalla de inicio al iniciar la aplicación."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:165
+msgid "Sys Tray Icon"
+msgstr "Icono de la Sys Tray"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:167
+msgid "Enable display of FlatCAM icon in Sys Tray."
+msgstr ""
+"Habilite la visualización del icono de FlatCAM en la bandeja del sistema."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:172
+msgid "Show Shell"
+msgstr "Mostrar la línea de comando"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:174
+msgid ""
+"Check this box if you want the shell to\n"
+"start automatically at startup."
+msgstr ""
+"Marque esta casilla si desea que el shell\n"
+"iniciar automáticamente en el inicio."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:181
+msgid "Show Project"
+msgstr "Mostrar proyecto"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:183
+msgid ""
+"Check this box if you want the project/selected/tool tab area to\n"
+"to be shown automatically at startup."
+msgstr ""
+"Marque esta casilla si desea que el área de la pestaña del proyecto / "
+"seleccionado / herramienta\n"
+"para ser mostrado automáticamente en el inicio."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:189
+msgid "Version Check"
+msgstr "Verificación de versión"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:191
+msgid ""
+"Check this box if you want to check\n"
+"for a new version automatically at startup."
+msgstr ""
+"Marque esta casilla si desea marcar\n"
+"para una nueva versión automáticamente en el inicio."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:198
+msgid "Send Statistics"
+msgstr "Enviar estadísticas"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:200
+msgid ""
+"Check this box if you agree to send anonymous\n"
+"stats automatically at startup, to help improve FlatCAM."
+msgstr ""
+"Marque esta casilla si acepta enviar anónimo\n"
+"Estadísticas automáticamente en el inicio, para ayudar a mejorar FlatCAM."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:214
+msgid "Workers number"
+msgstr "Número de trabajadores"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:216
+msgid ""
+"The number of Qthreads made available to the App.\n"
+"A bigger number may finish the jobs more quickly but\n"
+"depending on your computer speed, may make the App\n"
+"unresponsive. Can have a value between 2 and 16.\n"
+"Default value is 2.\n"
+"After change, it will be applied at next App start."
+msgstr ""
+"El número de Qthreads disponibles para la aplicación.\n"
+"Un número más grande puede terminar los trabajos más rápidamente pero\n"
+"Dependiendo de la velocidad de su computadora, podrá realizar la "
+"aplicación.\n"
+"insensible. Puede tener un valor entre 2 y 16.\n"
+"El valor predeterminado es 2.\n"
+"Después del cambio, se aplicará en el próximo inicio de la aplicación."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:230
+msgid "Geo Tolerance"
+msgstr "Geo Tolerancia"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:232
+msgid ""
+"This value can counter the effect of the Circle Steps\n"
+"parameter. Default value is 0.005.\n"
+"A lower value will increase the detail both in image\n"
+"and in Gcode for the circles, with a higher cost in\n"
+"performance. Higher value will provide more\n"
+"performance at the expense of level of detail."
+msgstr ""
+"Este valor puede contrarrestar el efecto de los Pasos circulares\n"
+"parámetro. El valor predeterminado es 0.005.\n"
+"Un valor más bajo aumentará el detalle tanto en la imagen\n"
+"y en Gcode para los círculos, con un mayor costo en\n"
+"actuación. Un valor más alto proporcionará más\n"
+"rendimiento a expensas del nivel de detalle."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:252
+msgid "Save Settings"
+msgstr "Configuraciones para guardar"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:256
+msgid "Save Compressed Project"
+msgstr "Guardar proyecto comprimido"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:258
+msgid ""
+"Whether to save a compressed or uncompressed project.\n"
+"When checked it will save a compressed FlatCAM project."
+msgstr ""
+"Ya sea para guardar un proyecto comprimido o sin comprimir.\n"
+"Cuando esté marcado, guardará un proyecto comprimido de FlatCAM."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:267
+msgid "Compression"
+msgstr "Compresión"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:269
+msgid ""
+"The level of compression used when saving\n"
+"a FlatCAM project. Higher value means better compression\n"
+"but require more RAM usage and more processing time."
+msgstr ""
+"El nivel de compresión utilizado al guardar\n"
+"Un proyecto FlatCAM. Un valor más alto significa una mejor compresión\n"
+"pero requieren más uso de RAM y más tiempo de procesamiento."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:280
+msgid "Enable Auto Save"
+msgstr "Habilitar guardado auto"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:282
+msgid ""
+"Check to enable the autosave feature.\n"
+"When enabled, the application will try to save a project\n"
+"at the set interval."
+msgstr ""
+"Marque para habilitar la función de autoguardado.\n"
+"Cuando está habilitada, la aplicación intentará guardar un proyecto.\n"
+"en el intervalo establecido."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:292
+msgid "Interval"
+msgstr "Intervalo"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:294
+msgid ""
+"Time interval for autosaving. In milliseconds.\n"
+"The application will try to save periodically but only\n"
+"if the project was saved manually at least once.\n"
+"While active, some operations may block this feature."
+msgstr ""
+"Intervalo de tiempo para guardar automáticamente. En milisegundos\n"
+"La aplicación intentará guardar periódicamente pero solo\n"
+"si el proyecto se guardó manualmente al menos una vez.\n"
+"Mientras está activo, algunas operaciones pueden bloquear esta función."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:310
+msgid "Text to PDF parameters"
+msgstr "Parámetros de texto a PDF"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:312
+msgid "Used when saving text in Code Editor or in FlatCAM Document objects."
+msgstr ""
+"Se utiliza al guardar texto en el Editor de código o en objetos de documento "
+"FlatCAM."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:321
+msgid "Top Margin"
+msgstr "Margen superior"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:323
+msgid "Distance between text body and the top of the PDF file."
+msgstr ""
+"Distancia entre el cuerpo del texto y la parte superior del archivo PDF."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:334
+msgid "Bottom Margin"
+msgstr "Margen inferior"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:336
+msgid "Distance between text body and the bottom of the PDF file."
+msgstr ""
+"Distancia entre el cuerpo del texto y la parte inferior del archivo PDF."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:347
+msgid "Left Margin"
+msgstr "Margen izquierdo"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:349
+msgid "Distance between text body and the left of the PDF file."
+msgstr "Distancia entre el cuerpo del texto y la izquierda del archivo PDF."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:360
+msgid "Right Margin"
+msgstr "Margen derecho"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:362
+msgid "Distance between text body and the right of the PDF file."
+msgstr "Distancia entre el cuerpo del texto y la derecha del archivo PDF."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:26
+msgid "GUI Preferences"
+msgstr "Preferencias de GUI"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:36
+msgid "Theme"
+msgstr "Tema"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:38
+msgid ""
+"Select a theme for FlatCAM.\n"
+"It will theme the plot area."
+msgstr ""
+"Seleccione un tema para FlatCAM.\n"
+"Será el tema del área de la trama."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:43
+msgid "Light"
+msgstr "Ligera"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:44
+msgid "Dark"
+msgstr "Oscuro"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:51
+msgid "Use Gray Icons"
+msgstr "Use iconos grises"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:53
+msgid ""
+"Check this box to use a set of icons with\n"
+"a lighter (gray) color. To be used when a\n"
+"full dark theme is applied."
+msgstr ""
+"Marque esta casilla para usar un conjunto de iconos con\n"
+"un color más claro (gris). Para ser utilizado cuando un\n"
+"Se aplica el tema oscuro completo."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:73
+msgid "Layout"
+msgstr "Diseño"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:75
+msgid ""
+"Select an layout for FlatCAM.\n"
+"It is applied immediately."
+msgstr ""
+"Seleccione un diseño para FlatCAM.\n"
+"Se aplica de inmediato."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:95
+msgid "Style"
+msgstr "Estilo"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:97
+msgid ""
+"Select an style for FlatCAM.\n"
+"It will be applied at the next app start."
+msgstr ""
+"Seleccione un estilo para FlatCAM.\n"
+"Se aplicará en el próximo inicio de la aplicación."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:111
+msgid "Activate HDPI Support"
+msgstr "Activar soporte HDPI"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:113
+msgid ""
+"Enable High DPI support for FlatCAM.\n"
+"It will be applied at the next app start."
+msgstr ""
+"Habilitar el soporte de alta DPI para FlatCAM.\n"
+"Se aplicará en el próximo inicio de la aplicación."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:127
+msgid "Display Hover Shape"
+msgstr "Mostrar forma de desplazamiento"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:129
+msgid ""
+"Enable display of a hover shape for FlatCAM objects.\n"
+"It is displayed whenever the mouse cursor is hovering\n"
+"over any kind of not-selected object."
+msgstr ""
+"Habilitar la visualización de una forma flotante para objetos FlatCAM.\n"
+"Se muestra cada vez que el cursor del mouse se desplaza\n"
+"sobre cualquier tipo de objeto no seleccionado."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:136
+msgid "Display Selection Shape"
+msgstr "Mostrar forma de selección"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:138
+msgid ""
+"Enable the display of a selection shape for FlatCAM objects.\n"
+"It is displayed whenever the mouse selects an object\n"
+"either by clicking or dragging mouse from left to right or\n"
+"right to left."
+msgstr ""
+"Habilitar la visualización de una forma de selección para objetos FlatCAM.\n"
+"Se muestra cada vez que el ratón selecciona un objeto.\n"
+"ya sea haciendo clic o arrastrando el mouse de izquierda a derecha o\n"
+"De derecha a izquierda."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:151
+msgid "Left-Right Selection Color"
+msgstr "Color de selección izquierda-derecha"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:156
+msgid "Set the line color for the 'left to right' selection box."
+msgstr ""
+"Establezca el color de línea para el cuadro de selección 'de izquierda a "
+"derecha'."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:172
+msgid ""
+"Set the fill color for the selection box\n"
+"in case that the selection is done from left to right.\n"
+"First 6 digits are the color and the last 2\n"
+"digits are for alpha (transparency) level."
+msgstr ""
+"Establecer el color de relleno para el cuadro de selección\n"
+"En caso de que la selección se realice de izquierda a derecha.\n"
+"Los primeros 6 dígitos son el color y los 2 últimos.\n"
+"Los dígitos son para el nivel alfa (transparencia)."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:192
+msgid "Set the fill transparency for the 'left to right' selection box."
+msgstr ""
+"Establezca la transparencia de relleno para el cuadro de selección 'de "
+"izquierda a derecha'."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:216
+msgid "Right-Left Selection Color"
+msgstr "Color de selección derecha-izquierda"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:222
+msgid "Set the line color for the 'right to left' selection box."
+msgstr ""
+"Establezca el color de línea para el cuadro de selección 'de derecha a "
+"izquierda'."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:239
+msgid ""
+"Set the fill color for the selection box\n"
+"in case that the selection is done from right to left.\n"
+"First 6 digits are the color and the last 2\n"
+"digits are for alpha (transparency) level."
+msgstr ""
+"Establecer el color de relleno para el cuadro de selección\n"
+"En caso de que la selección se realice de derecha a izquierda.\n"
+"Los primeros 6 dígitos son el color y los 2 últimos.\n"
+"Los dígitos son para el nivel alfa (transparencia)."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:259
+msgid "Set the fill transparency for selection 'right to left' box."
+msgstr ""
+"Establezca la transparencia de relleno para el cuadro de selección \"de "
+"derecha a izquierda\"."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:286
+msgid "Editor Color"
+msgstr "Color del editor"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:290
+msgid "Drawing"
+msgstr "Dibujo"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:292
+msgid "Set the color for the shape."
+msgstr "Establecer el color de la forma."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:309
+msgid "Set the color of the shape when selected."
+msgstr "Establecer el color de la forma cuando se selecciona."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:332
+msgid "Project Items Color"
+msgstr "Color de los elementos del proyecto"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:336
+msgid "Enabled"
+msgstr "Habilitado"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:338
+msgid "Set the color of the items in Project Tab Tree."
+msgstr ""
+"Establecer el color de los elementos en el árbol de pestañas del proyecto."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:352
+msgid "Disabled"
+msgstr "Discapacitado"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:354
+msgid ""
+"Set the color of the items in Project Tab Tree,\n"
+"for the case when the items are disabled."
+msgstr ""
+"Establecer el color de los elementos en el árbol de pestañas del proyecto,\n"
+"para el caso cuando los elementos están deshabilitados."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:370
+msgid "Project AutoHide"
+msgstr "Proyecto auto ocultar"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:372
+msgid ""
+"Check this box if you want the project/selected/tool tab area to\n"
+"hide automatically when there are no objects loaded and\n"
+"to show whenever a new object is created."
+msgstr ""
+"Marque esta casilla si desea que el área de la pestaña del proyecto / "
+"seleccionado / herramienta\n"
+"Se oculta automáticamente cuando no hay objetos cargados y\n"
+"para mostrar cada vez que se crea un nuevo objeto."
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:27
+msgid "Geometry Adv. Options"
+msgstr "Geometría Adv. Opciones"
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:35
+msgid ""
+"A list of Geometry advanced parameters.\n"
+"Those parameters are available only for\n"
+"Advanced App. Level."
+msgstr ""
+"Una lista de los parámetros avanzados de Geometría.\n"
+"Esos parámetros están disponibles sólo para\n"
+"Aplicación avanzada Nivel."
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:45
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:112
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:134
+#: AppTools/ToolCalibration.py:125 AppTools/ToolSolderPaste.py:240
+msgid "Toolchange X-Y"
+msgstr "Cambio de herra X, Y"
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:56
+msgid ""
+"Height of the tool just after starting the work.\n"
+"Delete the value if you don't need this feature."
+msgstr ""
+"Altura de la herramienta justo después de comenzar el trabajo.\n"
+"Elimine el valor si no necesita esta característica."
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:158
+msgid "Segment X size"
+msgstr "Tamaño del Seg. X"
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:160
+msgid ""
+"The size of the trace segment on the X axis.\n"
+"Useful for auto-leveling.\n"
+"A value of 0 means no segmentation on the X axis."
+msgstr ""
+"El tamaño del segmento traza en el eje X.\n"
+"Útil para la autonivelación.\n"
+"Un valor de 0 significa que no hay segmentación en el eje X."
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:174
+msgid "Segment Y size"
+msgstr "Tamaño del Seg. Y"
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:176
+msgid ""
+"The size of the trace segment on the Y axis.\n"
+"Useful for auto-leveling.\n"
+"A value of 0 means no segmentation on the Y axis."
+msgstr ""
+"El tamaño del segmento traza en el eje Y.\n"
+"Útil para la autonivelación.\n"
+"Un valor de 0 significa que no hay segmentación en el eje Y."
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:192
+msgid "Area Exclusion"
+msgstr "Exclusión de áreaSelección de área"
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:194
+msgid ""
+"Area exclusion parameters.\n"
+"Those parameters are available only for\n"
+"Advanced App. Level."
+msgstr ""
+"Parámetros de exclusión de área.\n"
+"Esos parámetros están disponibles solo para\n"
+"Aplicación avanzada Nivel."
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:201
+msgid "Exclusion areas"
+msgstr "Zonas de exclusión"
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:212
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:322
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:286
+#: AppTools/ToolNCC.py:578 AppTools/ToolPaint.py:521
+msgid "Shape"
+msgstr "Forma"
+
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:33
+msgid "A list of Geometry Editor parameters."
+msgstr "Una lista de parámetros del editor de geometría."
+
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:43
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:196
+msgid ""
+"Set the number of selected geometry\n"
+"items above which the utility geometry\n"
+"becomes just a selection rectangle.\n"
+"Increases the performance when moving a\n"
+"large number of geometric elements."
+msgstr ""
+"Establecer el número de geometría seleccionada\n"
+"elementos por encima de los cuales la geometría de utilidad\n"
+"se convierte en sólo un rectángulo de selección.\n"
+"Aumenta el rendimiento al mover un\n"
+"Gran cantidad de elementos geométricos."
+
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:27
+msgid "Geometry General"
+msgstr "Geometría General"
+
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:49
+msgid ""
+"The number of circle steps for Geometry \n"
+"circle and arc shapes linear approximation."
+msgstr ""
+"El número de pasos de círculo para Geometría\n"
+"Círculo y arcos de aproximación lineal."
+
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:63
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:41
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:48
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:42
+msgid "Tools Dia"
+msgstr "Diá. de Herram"
+
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:65
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:108
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:43
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:50
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:44
+msgid ""
+"Diameters of the tools, separated by comma.\n"
+"The value of the diameter has to use the dot decimals separator.\n"
+"Valid values: 0.3, 1.0"
+msgstr ""
+"Diámetros de las herramientas, separados por comas.\n"
+"El valor del diámetro tiene que usar el separador de decimales de punto.\n"
+"Valores válidos: 0.3, 1.0"
+
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:80
+msgid "Geometry Object Color"
+msgstr "Color del objeto de Geometría"
+
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:28
+msgid "Geometry Options"
+msgstr "Opc. de geometría"
+
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:36
+msgid ""
+"Create a CNC Job object\n"
+"tracing the contours of this\n"
+"Geometry object."
+msgstr ""
+"Crear un objeto de trabajo CNC\n"
+"trazando los contornos de este\n"
+"Objeto de geometría."
+
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:80
+msgid "Depth/Pass"
+msgstr "Profund. / Pase"
+
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:82
+msgid ""
+"The depth to cut on each pass,\n"
+"when multidepth is enabled.\n"
+"It has positive value although\n"
+"it is a fraction from the depth\n"
+"which has negative value."
+msgstr ""
+"La profundidad a cortar en cada pasada,\n"
+"cuando está habilitado multidepto.\n"
+"Tiene valor positivo aunque\n"
+"Es una fracción de la profundidad.\n"
+"que tiene valor negativo."
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:27
+msgid "Gerber Adv. Options"
+msgstr "Opciones avan. de Gerber"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:33
+msgid ""
+"A list of Gerber advanced parameters.\n"
+"Those parameters are available only for\n"
+"Advanced App. Level."
+msgstr ""
+"Una lista de los parámetros avanzados de Gerber.\n"
+"Esos parámetros están disponibles sólo para\n"
+"Aplicación avanzada Nivel."
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:52
+msgid "Table Show/Hide"
+msgstr "Mostrar / ocultar tabla"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:54
+msgid ""
+"Toggle the display of the Gerber Apertures Table.\n"
+"Also, on hide, it will delete all mark shapes\n"
+"that are drawn on canvas."
+msgstr ""
+"Activa o desactiva la visualización de la tabla de aperturas de Gerber.\n"
+"Además, en hide, borrará todas las formas de marca.\n"
+"que se dibujan sobre lienzo."
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:134
+msgid "Exterior"
+msgstr "Exterior"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:135
+msgid "Interior"
+msgstr "Interior"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:146
+#: AppObjects/FlatCAMGerber.py:497 AppTools/ToolCopperThieving.py:1022
+#: AppTools/ToolCopperThieving.py:1211 AppTools/ToolCopperThieving.py:1223
+#: AppTools/ToolNCC.py:2059 AppTools/ToolNCC.py:2170 AppTools/ToolNCC.py:2185
+#: AppTools/ToolNCC.py:3149 AppTools/ToolNCC.py:3254 AppTools/ToolNCC.py:3269
+#: AppTools/ToolNCC.py:3535 AppTools/ToolNCC.py:3636 AppTools/ToolNCC.py:3651
+#: camlib.py:982
+msgid "Buffering"
+msgstr "Tamponamiento"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:148
+msgid ""
+"Buffering type:\n"
+"- None --> best performance, fast file loading but no so good display\n"
+"- Full --> slow file loading but good visuals. This is the default.\n"
+"<>: Don't change this unless you know what you are doing !!!"
+msgstr ""
+"Tipo de almacenamiento en búfer:\n"
+"- Ninguno -> mejor rendimiento, carga rápida de archivos pero no tan buena "
+"visualización\n"
+"- Completo -> carga lenta de archivos pero buenas imágenes. Este es el valor "
+"predeterminado.\n"
+"<>: ¡No cambie esto a menos que sepa lo que está haciendo!"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:153
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:207
+#: AppTools/ToolFiducials.py:201 AppTools/ToolFilm.py:238
+#: AppTools/ToolProperties.py:452 AppTools/ToolProperties.py:455
+#: AppTools/ToolProperties.py:458 AppTools/ToolProperties.py:483
+msgid "None"
+msgstr "Ninguno"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:159
+msgid "Simplify"
+msgstr "Simplificar"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:161
+msgid ""
+"When checked all the Gerber polygons will be\n"
+"loaded with simplification having a set tolerance.\n"
+"<>: Don't change this unless you know what you are doing !!!"
+msgstr ""
+"Cuando esté marcado, todos los polígonos de Gerber serán\n"
+"cargado de simplificación con una tolerancia establecida.\n"
+"<>: ¡No cambie esto a menos que sepa lo que está haciendo!"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:168
+msgid "Tolerance"
+msgstr "Tolerancia"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:169
+msgid "Tolerance for polygon simplification."
+msgstr "Tolerancia para la simplificación de polígonos."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:33
+msgid "A list of Gerber Editor parameters."
+msgstr "Una lista de los parámetros del editor Gerber."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:43
+msgid ""
+"Set the number of selected Gerber geometry\n"
+"items above which the utility geometry\n"
+"becomes just a selection rectangle.\n"
+"Increases the performance when moving a\n"
+"large number of geometric elements."
+msgstr ""
+"Establecer el número de geometría seleccionada de Gerber\n"
+"elementos por encima de los cuales la geometría de utilidad\n"
+"se convierte en sólo un rectángulo de selección.\n"
+"Aumenta el rendimiento al mover un\n"
+"Gran cantidad de elementos geométricos."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:56
+msgid "New Aperture code"
+msgstr "Nuevo Código de Aper"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:69
+msgid "New Aperture size"
+msgstr "Nuevo Tamaño de Aper"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:71
+msgid "Size for the new aperture"
+msgstr "Tamaño para la Nueva Aper"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:82
+msgid "New Aperture type"
+msgstr "Nuevo Tipo de Aper"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:84
+msgid ""
+"Type for the new aperture.\n"
+"Can be 'C', 'R' or 'O'."
+msgstr ""
+"Escriba para la nueva apertura.\n"
+"Puede ser 'C', 'R' u 'O'."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:106
+msgid "Aperture Dimensions"
+msgstr "Dim. de apertura"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:116
+msgid "Linear Pad Array"
+msgstr "Matriz lineal de Almohadilla"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:160
+msgid "Circular Pad Array"
+msgstr "Matriz de Almohadilla Circ"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:196
+msgid "Distance at which to buffer the Gerber element."
+msgstr "Distancia a la que buffer el elemento Gerber."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:205
+msgid "Scale Tool"
+msgstr "Herramienta de escala"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:211
+msgid "Factor to scale the Gerber element."
+msgstr "Factoriza para escalar el elemento Gerber."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:224
+msgid "Threshold low"
+msgstr "Umbral bajo"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:226
+msgid "Threshold value under which the apertures are not marked."
+msgstr "Valor de umbral por debajo del cual las aberturas no están marcadas."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:236
+msgid "Threshold high"
+msgstr "Umbral alto"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:238
+msgid "Threshold value over which the apertures are not marked."
+msgstr "Valor umbral sobre el cual las aberturas no están marcadas."
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:27
+msgid "Gerber Export"
+msgstr "Gerber Export"
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:33
+msgid ""
+"The parameters set here are used in the file exported\n"
+"when using the File -> Export -> Export Gerber menu entry."
+msgstr ""
+"Los parámetros establecidos aquí se utilizan en el archivo exportado.\n"
+"cuando se usa la entrada de menú Archivo -> Exportar -> Exportar Gerber."
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:44
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:50
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:84
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:90
+msgid "The units used in the Gerber file."
+msgstr "Las unidades utilizadas en el archivo Gerber."
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:58
+msgid ""
+"The number of digits in the whole part of the number\n"
+"and in the fractional part of the number."
+msgstr ""
+"El número de dígitos en la parte entera del número.\n"
+"y en la parte fraccionaria del número."
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:71
+msgid ""
+"This numbers signify the number of digits in\n"
+"the whole part of Gerber coordinates."
+msgstr ""
+"Estos números significan el número de dígitos en\n"
+"Toda la parte de Gerber coordina."
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:87
+msgid ""
+"This numbers signify the number of digits in\n"
+"the decimal part of Gerber coordinates."
+msgstr ""
+"Estos números significan el número de dígitos en\n"
+"La parte decimal de las coordenadas de gerber."
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:99
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:109
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:100
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:110
+msgid ""
+"This sets the type of Gerber zeros.\n"
+"If LZ then Leading Zeros are removed and\n"
+"Trailing Zeros are kept.\n"
+"If TZ is checked then Trailing Zeros are removed\n"
+"and Leading Zeros are kept."
+msgstr ""
+"Esto establece el tipo de ceros Gerber.\n"
+"Si LZ entonces los ceros iniciales se eliminan y\n"
+"Se guardan los ceros que se arrastran.\n"
+"Si se comprueba TZ, se eliminan los ceros finales\n"
+"y Leading Zeros se mantienen."
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:27
+msgid "Gerber General"
+msgstr "Gerber General"
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:45
+msgid "M-Color"
+msgstr "M-Color"
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:61
+msgid ""
+"The number of circle steps for Gerber \n"
+"circular aperture linear approximation."
+msgstr ""
+"El número de pasos de círculo para Gerber\n"
+"Apertura circular de aproximación lineal."
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:73
+msgid "Default Values"
+msgstr "Valores predeterminados"
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:75
+msgid ""
+"Those values will be used as fallback values\n"
+"in case that they are not found in the Gerber file."
+msgstr ""
+"Esos valores se usarán como valores de reserva\n"
+"en caso de que no se encuentren en el archivo Gerber."
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:126
+msgid "Clean Apertures"
+msgstr "Aberturas limpias"
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:128
+msgid ""
+"Will remove apertures that do not have geometry\n"
+"thus lowering the number of apertures in the Gerber object."
+msgstr ""
+"Eliminará las aberturas que no tengan geometría\n"
+"bajando así el número de aberturas en el objeto Gerber."
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:134
+msgid "Polarity change buffer"
+msgstr "Cambio de polaridad buffer"
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:136
+msgid ""
+"Will apply extra buffering for the\n"
+"solid geometry when we have polarity changes.\n"
+"May help loading Gerber files that otherwise\n"
+"do not load correctly."
+msgstr ""
+"Aplicará buffering adicional para el\n"
+"geometría sólida cuando tenemos cambios de polaridad.\n"
+"Puede ayudar a cargar archivos Gerber que de otra manera\n"
+"No cargar correctamente."
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:149
+msgid "Gerber Object Color"
+msgstr "Color de objeto Gerber"
+
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:29
+msgid "Gerber Options"
+msgstr "Opciones de gerber"
+
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:107
+msgid "Combine Passes"
+msgstr "Combinar pases"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:27
+msgid "Copper Thieving Tool Options"
+msgstr "Opc. de Herram. de Copper Thieving"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:39
+msgid ""
+"A tool to generate a Copper Thieving that can be added\n"
+"to a selected Gerber file."
+msgstr ""
+"Una herramienta para generar un ladrón de cobre que se puede agregar\n"
+"a un archivo Gerber seleccionado."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:47
+msgid "Number of steps (lines) used to interpolate circles."
+msgstr "Número de pasos (líneas) utilizados para interpolar círculos."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261
+#: AppTools/ToolCopperThieving.py:96 AppTools/ToolCopperThieving.py:431
+msgid "Clearance"
+msgstr "Despeje"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:59
+msgid ""
+"This set the distance between the copper Thieving components\n"
+"(the polygon fill may be split in multiple polygons)\n"
+"and the copper traces in the Gerber file."
+msgstr ""
+"Esto establece la distancia entre los componentes de Copper Thieving\n"
+"(el relleno de polígono puede dividirse en múltiples polígonos)\n"
+"y las huellas de cobre en el archivo Gerber."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
+#: AppTools/ToolCopperThieving.py:125 AppTools/ToolNCC.py:535
+#: AppTools/ToolNCC.py:1306 AppTools/ToolNCC.py:1635 AppTools/ToolNCC.py:1928
+#: AppTools/ToolNCC.py:1992 AppTools/ToolNCC.py:3013 AppTools/ToolNCC.py:3022
+#: defaults.py:406 tclCommands/TclCommandCopperClear.py:190
+msgid "Itself"
+msgstr "Sí mismo"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
+#: AppTools/ToolCopperThieving.py:126 AppTools/ToolNCC.py:535
+#: AppTools/ToolNCC.py:1316 AppTools/ToolNCC.py:1648 AppTools/ToolNCC.py:1944
+#: AppTools/ToolNCC.py:1999 AppTools/ToolPaint.py:485 AppTools/ToolPaint.py:945
+#: AppTools/ToolPaint.py:1451
+msgid "Area Selection"
+msgstr "Selección de área"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
+#: AppTools/ToolCopperThieving.py:127 AppTools/ToolDblSided.py:216
+#: AppTools/ToolNCC.py:535 AppTools/ToolNCC.py:1664 AppTools/ToolNCC.py:1950
+#: AppTools/ToolNCC.py:2007 AppTools/ToolNCC.py:2383 AppTools/ToolNCC.py:2631
+#: AppTools/ToolNCC.py:3058 AppTools/ToolPaint.py:485 AppTools/ToolPaint.py:930
+#: AppTools/ToolPaint.py:1467 tclCommands/TclCommandCopperClear.py:192
+#: tclCommands/TclCommandPaint.py:166
+msgid "Reference Object"
+msgstr "Objeto de referencia"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90
+#: AppTools/ToolCopperThieving.py:129
+msgid "Reference:"
+msgstr "Referencia:"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92
+msgid ""
+"- 'Itself' - the copper Thieving extent is based on the object extent.\n"
+"- 'Area Selection' - left mouse click to start selection of the area to be "
+"filled.\n"
+"- 'Reference Object' - will do copper thieving within the area specified by "
+"another object."
+msgstr ""
+"- 'Sí mismo': la extensión de Copper Thieving se basa en la extensión del "
+"objeto.\n"
+"- 'Selección de área': haga clic con el botón izquierdo del mouse para "
+"iniciar la selección del área a rellenar.\n"
+"- 'Objeto de referencia': robará cobre dentro del área especificada por otro "
+"objeto."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:76
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190
+#: AppTools/ToolCopperThieving.py:171 AppTools/ToolExtractDrills.py:102
+#: AppTools/ToolExtractDrills.py:240 AppTools/ToolPunchGerber.py:113
+#: AppTools/ToolPunchGerber.py:268
+msgid "Rectangular"
+msgstr "Rectangular"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102
+#: AppTools/ToolCopperThieving.py:172
+msgid "Minimal"
+msgstr "Mínimo"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104
+#: AppTools/ToolCopperThieving.py:174 AppTools/ToolFilm.py:94
+msgid "Box Type:"
+msgstr "Tipo de cercado:"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106
+#: AppTools/ToolCopperThieving.py:176
+msgid ""
+"- 'Rectangular' - the bounding box will be of rectangular shape.\n"
+"- 'Minimal' - the bounding box will be the convex hull shape."
+msgstr ""
+"- 'Rectangular': el cuadro delimitador tendrá forma rectangular.\n"
+"- 'Mínimo': el cuadro delimitador tendrá forma de casco convexo."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120
+#: AppTools/ToolCopperThieving.py:192
+msgid "Dots Grid"
+msgstr "Cuadrícula de puntos"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121
+#: AppTools/ToolCopperThieving.py:193
+msgid "Squares Grid"
+msgstr "Cuadrícula de cuadrados"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122
+#: AppTools/ToolCopperThieving.py:194
+msgid "Lines Grid"
+msgstr "Cuadrícula de líneas"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124
+#: AppTools/ToolCopperThieving.py:196
+msgid "Fill Type:"
+msgstr "Tipo de relleno:"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126
+#: AppTools/ToolCopperThieving.py:198
+msgid ""
+"- 'Solid' - copper thieving will be a solid polygon.\n"
+"- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n"
+"- 'Squares Grid' - the empty area will be filled with a pattern of squares.\n"
+"- 'Lines Grid' - the empty area will be filled with a pattern of lines."
+msgstr ""
+"- 'Sólido': el robo de cobre será un polígono sólido.\n"
+"- 'Cuadrícula de puntos': el área vacía se rellenará con un patrón de "
+"puntos.\n"
+"- 'Cuadrícula de cuadrados': el área vacía se rellenará con un patrón de "
+"cuadrados.\n"
+"- 'Cuadrícula de líneas': el área vacía se rellenará con un patrón de líneas."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134
+#: AppTools/ToolCopperThieving.py:217
+msgid "Dots Grid Parameters"
+msgstr "Parámetros de cuadrícula de puntos"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140
+#: AppTools/ToolCopperThieving.py:223
+msgid "Dot diameter in Dots Grid."
+msgstr "Diámetro de punto en cuadrícula de puntos."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209
+#: AppTools/ToolCopperThieving.py:234 AppTools/ToolCopperThieving.py:274
+#: AppTools/ToolCopperThieving.py:314
+msgid "Spacing"
+msgstr "Spacing"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153
+#: AppTools/ToolCopperThieving.py:236
+msgid "Distance between each two dots in Dots Grid."
+msgstr "Distancia entre cada dos puntos en la cuadrícula de puntos."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163
+#: AppTools/ToolCopperThieving.py:257
+msgid "Squares Grid Parameters"
+msgstr "Parámetros de la cuadrícula de cuadrados"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169
+#: AppTools/ToolCopperThieving.py:263
+msgid "Square side size in Squares Grid."
+msgstr "Tamaño del lado cuadrado en cuadrícula de cuadrados."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182
+#: AppTools/ToolCopperThieving.py:276
+msgid "Distance between each two squares in Squares Grid."
+msgstr "Distancia entre cada dos cuadrados en la cuadrícula de cuadrados."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192
+#: AppTools/ToolCopperThieving.py:297
+msgid "Lines Grid Parameters"
+msgstr "Parámetros de cuadrícula de líneas"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198
+#: AppTools/ToolCopperThieving.py:303
+msgid "Line thickness size in Lines Grid."
+msgstr "Tamaño del grosor de línea en la cuadrícula de líneas."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211
+#: AppTools/ToolCopperThieving.py:316
+msgid "Distance between each two lines in Lines Grid."
+msgstr "Distancia entre cada dos líneas en la cuadrícula de líneas."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221
+#: AppTools/ToolCopperThieving.py:354
+msgid "Robber Bar Parameters"
+msgstr "Parámetros de la Robber Bar"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223
+#: AppTools/ToolCopperThieving.py:356
+msgid ""
+"Parameters used for the robber bar.\n"
+"Robber bar = copper border to help in pattern hole plating."
+msgstr ""
+"Parámetros utilizados para la Robber Bar.\n"
+"Robber Bar = borde de cobre para ayudar en el enchapado de agujeros."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231
+#: AppTools/ToolCopperThieving.py:364
+msgid "Bounding box margin for robber bar."
+msgstr "Margen límite del recinto para Robber Bar."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:42
+#: AppTools/ToolCopperThieving.py:375 AppTools/ToolCorners.py:113
+#: AppTools/ToolEtchCompensation.py:96
+msgid "Thickness"
+msgstr "Espesor"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244
+#: AppTools/ToolCopperThieving.py:377
+msgid "The robber bar thickness."
+msgstr "El grosor de la Robber Bar."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254
+#: AppTools/ToolCopperThieving.py:408
+msgid "Pattern Plating Mask"
+msgstr "Máscara de baño de patrones"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256
+#: AppTools/ToolCopperThieving.py:410
+msgid "Generate a mask for pattern plating."
+msgstr "Genere una máscara para el enchapado de patrones."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263
+#: AppTools/ToolCopperThieving.py:433
+msgid ""
+"The distance between the possible copper thieving elements\n"
+"and/or robber bar and the actual openings in the mask."
+msgstr ""
+"La distancia entre los posibles elementos de Copper Thieving.\n"
+"y / o Robber Bar y las aberturas reales en la máscara."
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:27
+msgid "Calibration Tool Options"
+msgstr "Opc. de Herram. de Calibración"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:38
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:38
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:37
+#: AppTools/ToolCopperThieving.py:91 AppTools/ToolCorners.py:108
+#: AppTools/ToolFiducials.py:151
+msgid "Parameters used for this tool."
+msgstr "Parámetros utilizados para esta herramienta."
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:43
+#: AppTools/ToolCalibration.py:181
+msgid "Source Type"
+msgstr "Tipo de Fuente"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:44
+#: AppTools/ToolCalibration.py:182
+msgid ""
+"The source of calibration points.\n"
+"It can be:\n"
+"- Object -> click a hole geo for Excellon or a pad for Gerber\n"
+"- Free -> click freely on canvas to acquire the calibration points"
+msgstr ""
+"La fuente de los puntos de calibración.\n"
+"Puede ser:\n"
+"- Objeto -> haga clic en un agujero geo para Excellon o una almohadilla para "
+"Gerber\n"
+"- Libre -> haga clic libremente en el lienzo para adquirir los puntos de "
+"calibración"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:49
+#: AppTools/ToolCalibration.py:187
+msgid "Free"
+msgstr "Libre"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:63
+#: AppTools/ToolCalibration.py:76
+msgid "Height (Z) for travelling between the points."
+msgstr "Altura (Z) para viajar entre los puntos."
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:75
+#: AppTools/ToolCalibration.py:88
+msgid "Verification Z"
+msgstr "Verificación Z"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:77
+#: AppTools/ToolCalibration.py:90
+msgid "Height (Z) for checking the point."
+msgstr "Altura (Z) para verificar el punto."
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:89
+#: AppTools/ToolCalibration.py:102
+msgid "Zero Z tool"
+msgstr "Cero la Z para Herram."
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:91
+#: AppTools/ToolCalibration.py:104
+msgid ""
+"Include a sequence to zero the height (Z)\n"
+"of the verification tool."
+msgstr ""
+"Incluya una secuencia para poner a cero la altura (Z)\n"
+"de la herramienta de verificación."
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:100
+#: AppTools/ToolCalibration.py:113
+msgid "Height (Z) for mounting the verification probe."
+msgstr "Altura (Z) para montar la sonda de verificación."
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:114
+#: AppTools/ToolCalibration.py:127
+msgid ""
+"Toolchange X,Y position.\n"
+"If no value is entered then the current\n"
+"(x, y) point will be used,"
+msgstr ""
+"Posición de cambio de herramienta X, Y.\n"
+"Si no se ingresa ningún valor, entonces el actual\n"
+"(x, y) se utilizará el punto,"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:125
+#: AppTools/ToolCalibration.py:153
+msgid "Second point"
+msgstr "Segundo punto"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:127
+#: AppTools/ToolCalibration.py:155
+msgid ""
+"Second point in the Gcode verification can be:\n"
+"- top-left -> the user will align the PCB vertically\n"
+"- bottom-right -> the user will align the PCB horizontally"
+msgstr ""
+"El segundo punto en la verificación de Gcode puede ser:\n"
+"- arriba a la izquierda -> el usuario alineará la PCB verticalmente\n"
+"- abajo a la derecha -> el usuario alineará la PCB horizontalmente"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:131
+#: AppTools/ToolCalibration.py:159 App_Main.py:4684
+msgid "Top-Left"
+msgstr "Arriba a la izquierda"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:132
+#: AppTools/ToolCalibration.py:160 App_Main.py:4685
+msgid "Bottom-Right"
+msgstr "Abajo a la derecha"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:27
+msgid "Extract Drills Options"
+msgstr "Opciones de Extracción de Taladros"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42
+#: AppTools/ToolExtractDrills.py:68 AppTools/ToolPunchGerber.py:75
+msgid "Processed Pads Type"
+msgstr "Tipo de almohadillas procesadas"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44
+#: AppTools/ToolExtractDrills.py:70 AppTools/ToolPunchGerber.py:77
+msgid ""
+"The type of pads shape to be processed.\n"
+"If the PCB has many SMD pads with rectangular pads,\n"
+"disable the Rectangular aperture."
+msgstr ""
+"El tipo de forma de almohadillas que se procesará.\n"
+"Si la PCB tiene muchas almohadillas SMD con almohadillas rectangulares,\n"
+"deshabilitar la apertura rectangular."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54
+#: AppTools/ToolExtractDrills.py:80 AppTools/ToolPunchGerber.py:91
+msgid "Process Circular Pads."
+msgstr "Proceso de Almohadillas Circulares."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:60
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164
+#: AppTools/ToolExtractDrills.py:86 AppTools/ToolExtractDrills.py:214
+#: AppTools/ToolPunchGerber.py:97 AppTools/ToolPunchGerber.py:242
+msgid "Oblong"
+msgstr "Oblongo"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62
+#: AppTools/ToolExtractDrills.py:88 AppTools/ToolPunchGerber.py:99
+msgid "Process Oblong Pads."
+msgstr "Procesar almohadillas oblongas."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70
+#: AppTools/ToolExtractDrills.py:96 AppTools/ToolPunchGerber.py:107
+msgid "Process Square Pads."
+msgstr "Procesar almohadillas cuadradas."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78
+#: AppTools/ToolExtractDrills.py:104 AppTools/ToolPunchGerber.py:115
+msgid "Process Rectangular Pads."
+msgstr "Proceso Almohadillas Rectangulares."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:84
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203
+#: AppTools/ToolExtractDrills.py:110 AppTools/ToolExtractDrills.py:253
+#: AppTools/ToolProperties.py:172 AppTools/ToolPunchGerber.py:121
+#: AppTools/ToolPunchGerber.py:281
+msgid "Others"
+msgstr "Otros"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86
+#: AppTools/ToolExtractDrills.py:112 AppTools/ToolPunchGerber.py:123
+msgid "Process pads not in the categories above."
+msgstr "Procese los pads no en las categorías anteriores."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:99
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125
+#: AppTools/ToolExtractDrills.py:139 AppTools/ToolExtractDrills.py:156
+#: AppTools/ToolPunchGerber.py:150 AppTools/ToolPunchGerber.py:184
+msgid "Fixed Diameter"
+msgstr "Diámetro fijo"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:100
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142
+#: AppTools/ToolExtractDrills.py:140 AppTools/ToolExtractDrills.py:192
+#: AppTools/ToolPunchGerber.py:151 AppTools/ToolPunchGerber.py:214
+msgid "Fixed Annular Ring"
+msgstr "Anillo anular fijo"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102
+#: AppTools/ToolExtractDrills.py:141 AppTools/ToolPunchGerber.py:152
+msgid "Proportional"
+msgstr "Proporcional"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107
+#: AppTools/ToolExtractDrills.py:130
+msgid ""
+"The method for processing pads. Can be:\n"
+"- Fixed Diameter -> all holes will have a set size\n"
+"- Fixed Annular Ring -> all holes will have a set annular ring\n"
+"- Proportional -> each hole size will be a fraction of the pad size"
+msgstr ""
+"El método para procesar almohadillas. Puede ser:\n"
+"- Diámetro fijo -> todos los agujeros tendrán un tamaño establecido\n"
+"- Anillo anular fijo -> todos los agujeros tendrán un anillo anular "
+"establecido\n"
+"- Proporcional -> cada tamaño de agujero será una fracción del tamaño de la "
+"almohadilla"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:220
+#: AppTools/ToolExtractDrills.py:164 AppTools/ToolExtractDrills.py:285
+#: AppTools/ToolPunchGerber.py:192 AppTools/ToolPunchGerber.py:308
+#: AppTools/ToolTransform.py:357 App_Main.py:9602
+msgid "Value"
+msgstr "Valor"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135
+#: AppTools/ToolExtractDrills.py:166 AppTools/ToolPunchGerber.py:194
+msgid "Fixed hole diameter."
+msgstr "Diámetro fijo del agujero."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:142
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144
+#: AppTools/ToolExtractDrills.py:194 AppTools/ToolPunchGerber.py:216
+msgid ""
+"The size of annular ring.\n"
+"The copper sliver between the hole exterior\n"
+"and the margin of the copper pad."
+msgstr ""
+"El tamaño del anillo anular.\n"
+"La astilla de cobre entre el exterior del agujero\n"
+"y el margen de la almohadilla de cobre."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153
+#: AppTools/ToolExtractDrills.py:203 AppTools/ToolPunchGerber.py:231
+msgid "The size of annular ring for circular pads."
+msgstr "El tamaño del anillo anular para almohadillas circulares."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:164
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:166
+#: AppTools/ToolExtractDrills.py:216 AppTools/ToolPunchGerber.py:244
+msgid "The size of annular ring for oblong pads."
+msgstr "El tamaño del anillo anular para almohadillas oblongas."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:177
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:179
+#: AppTools/ToolExtractDrills.py:229 AppTools/ToolPunchGerber.py:257
+msgid "The size of annular ring for square pads."
+msgstr "El tamaño del anillo anular para almohadillas cuadradas."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:190
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:192
+#: AppTools/ToolExtractDrills.py:242 AppTools/ToolPunchGerber.py:270
+msgid "The size of annular ring for rectangular pads."
+msgstr "El tamaño del anillo anular para almohadillas rectangulares."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:203
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:205
+#: AppTools/ToolExtractDrills.py:255 AppTools/ToolPunchGerber.py:283
+msgid "The size of annular ring for other pads."
+msgstr "El tamaño del anillo anular para otras almohadillas."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:213
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:215
+#: AppTools/ToolExtractDrills.py:276 AppTools/ToolPunchGerber.py:299
+msgid "Proportional Diameter"
+msgstr "Diá. proporcional"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:222
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:224
+msgid "Factor"
+msgstr "Factor"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226
+#: AppTools/ToolExtractDrills.py:287 AppTools/ToolPunchGerber.py:310
+msgid ""
+"Proportional Diameter.\n"
+"The hole diameter will be a fraction of the pad size."
+msgstr ""
+"Diámetro proporcional.\n"
+"El diámetro del agujero será una fracción del tamaño de la almohadilla."
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:27
+msgid "Fiducials Tool Options"
+msgstr "Opc. de Herram. Fiduciales"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45
+#: AppTools/ToolFiducials.py:158
+msgid ""
+"This set the fiducial diameter if fiducial type is circular,\n"
+"otherwise is the size of the fiducial.\n"
+"The soldermask opening is double than that."
+msgstr ""
+"Esto establece el diámetro fiducial si el tipo fiducial es circular,\n"
+"de lo contrario es el tamaño del fiducial.\n"
+"La apertura de la máscara de soldadura es el doble que eso."
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73
+#: AppTools/ToolFiducials.py:186
+msgid "Auto"
+msgstr "Auto"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74
+#: AppTools/ToolFiducials.py:187
+msgid "Manual"
+msgstr "Manual"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76
+#: AppTools/ToolFiducials.py:189
+msgid "Mode:"
+msgstr "Modo:"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:78
+msgid ""
+"- 'Auto' - automatic placement of fiducials in the corners of the bounding "
+"box.\n"
+"- 'Manual' - manual placement of fiducials."
+msgstr ""
+"- 'Auto' - colocación automática de fiduciales en las esquinas del cuadro "
+"delimitador.\n"
+"- 'Manual' - colocación manual de fiduciales."
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86
+#: AppTools/ToolFiducials.py:199
+msgid "Up"
+msgstr "Arriba"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87
+#: AppTools/ToolFiducials.py:200
+msgid "Down"
+msgstr "Abajo"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90
+#: AppTools/ToolFiducials.py:203
+msgid "Second fiducial"
+msgstr "Segundo fiducial"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92
+#: AppTools/ToolFiducials.py:205
+msgid ""
+"The position for the second fiducial.\n"
+"- 'Up' - the order is: bottom-left, top-left, top-right.\n"
+"- 'Down' - the order is: bottom-left, bottom-right, top-right.\n"
+"- 'None' - there is no second fiducial. The order is: bottom-left, top-right."
+msgstr ""
+"La posición para el segundo fiducial.\n"
+"- 'Arriba' - el orden es: abajo a la izquierda, arriba a la izquierda, "
+"arriba a la derecha.\n"
+"- 'Abajo' - el orden es: abajo a la izquierda, abajo a la derecha, arriba a "
+"la derecha.\n"
+"- 'Ninguno' - no hay un segundo fiducial. El orden es: abajo a la izquierda, "
+"arriba a la derecha."
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108
+#: AppTools/ToolFiducials.py:221
+msgid "Cross"
+msgstr "Cruce"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109
+#: AppTools/ToolFiducials.py:222
+msgid "Chess"
+msgstr "Ajedrez"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112
+#: AppTools/ToolFiducials.py:224
+msgid "Fiducial Type"
+msgstr "Tipo fiducial"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114
+#: AppTools/ToolFiducials.py:226
+msgid ""
+"The type of fiducial.\n"
+"- 'Circular' - this is the regular fiducial.\n"
+"- 'Cross' - cross lines fiducial.\n"
+"- 'Chess' - chess pattern fiducial."
+msgstr ""
+"El tipo de fiducial.\n"
+"- 'Circular': este es el fiducial regular.\n"
+"- 'Cruce' - líneas cruzadas fiduciales.\n"
+"- 'Ajedrez' - patrón de ajedrez fiducial."
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123
+#: AppTools/ToolFiducials.py:235
+msgid "Line thickness"
+msgstr "Grosor de la línea"
+
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:27
+msgid "Invert Gerber Tool Options"
+msgstr "Opciones de la herram. Invertir Gerber"
+
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:33
+msgid ""
+"A tool to invert Gerber geometry from positive to negative\n"
+"and in revers."
+msgstr ""
+"Una herramienta para invertir la geometría de Gerber de positivo a negativo\n"
+"y a la inversa."
+
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:47
+#: AppTools/ToolInvertGerber.py:90
+msgid ""
+"Distance by which to avoid\n"
+"the edges of the Gerber object."
+msgstr ""
+"Distancia por la cual evitar\n"
+"Los bordes del objeto Gerber."
+
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:58
+#: AppTools/ToolInvertGerber.py:101
+msgid "Lines Join Style"
+msgstr "Estilo de unión de líneas"
+
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:60
+#: AppTools/ToolInvertGerber.py:103
+msgid ""
+"The way that the lines in the object outline will be joined.\n"
+"Can be:\n"
+"- rounded -> an arc is added between two joining lines\n"
+"- square -> the lines meet in 90 degrees angle\n"
+"- bevel -> the lines are joined by a third line"
+msgstr ""
+"La forma en que se unirán las líneas en el contorno del objeto.\n"
+"Puede ser:\n"
+"- redondeado -> se agrega un arco entre dos líneas de unión\n"
+"- cuadrado -> las líneas se encuentran en un ángulo de 90 grados\n"
+"- bisel -> las líneas están unidas por una tercera línea"
+
+#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:27
+msgid "Optimal Tool Options"
+msgstr "Opciones de Herram. Óptimas"
+
+#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:33
+msgid ""
+"A tool to find the minimum distance between\n"
+"every two Gerber geometric elements"
+msgstr ""
+"Una herramienta para encontrar la distancia mínima entre\n"
+"cada dos elementos geométricos de Gerber"
+
+#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:48
+#: AppTools/ToolOptimal.py:78
+msgid "Precision"
+msgstr "Precisión"
+
+#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:50
+msgid "Number of decimals for the distances and coordinates in this tool."
+msgstr ""
+"Número de decimales para las distancias y coordenadas en esta herramienta."
+
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:27
+msgid "Punch Gerber Options"
+msgstr "Opciones de Perforadora Gerber"
+
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:108
+#: AppTools/ToolPunchGerber.py:141
+msgid ""
+"The punch hole source can be:\n"
+"- Excellon Object-> the Excellon object drills center will serve as "
+"reference.\n"
+"- Fixed Diameter -> will try to use the pads center as reference adding "
+"fixed diameter holes.\n"
+"- Fixed Annular Ring -> will try to keep a set annular ring.\n"
+"- Proportional -> will make a Gerber punch hole having the diameter a "
+"percentage of the pad diameter."
+msgstr ""
+"La fuente del orificio de perforación puede ser:\n"
+"- Objeto Excellon-> el centro de perforación de objetos Excellon servirá "
+"como referencia.\n"
+"- Diámetro fijo -> intentará usar el centro de las almohadillas como "
+"referencia agregando agujeros de diámetro fijo.\n"
+"- Anillo anular fijo -> intentará mantener un anillo anular establecido.\n"
+"- Proporcional -> hará un orificio de perforación Gerber con un diámetro del "
+"porcentaje del diámetro de la almohadilla."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:27
+msgid "QRCode Tool Options"
+msgstr "Opciones de la herram. QRCode"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:33
+msgid ""
+"A tool to create a QRCode that can be inserted\n"
+"into a selected Gerber file, or it can be exported as a file."
+msgstr ""
+"Una herramienta para crear un QRCode que se puede insertar\n"
+"en un archivo Gerber seleccionado, o puede exportarse como un archivo."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45
+#: AppTools/ToolQRCode.py:100
+msgid "Version"
+msgstr "Versión"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47
+#: AppTools/ToolQRCode.py:102
+msgid ""
+"QRCode version can have values from 1 (21x21 boxes)\n"
+"to 40 (177x177 boxes)."
+msgstr ""
+"La versión de QRCode puede tener valores de 1 (21x21 elementos)\n"
+"a 40 (177x177 elementos)."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58
+#: AppTools/ToolQRCode.py:113
+msgid "Error correction"
+msgstr "Corrección de error"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71
+#: AppTools/ToolQRCode.py:115 AppTools/ToolQRCode.py:126
+#, python-format
+msgid ""
+"Parameter that controls the error correction used for the QR Code.\n"
+"L = maximum 7%% errors can be corrected\n"
+"M = maximum 15%% errors can be corrected\n"
+"Q = maximum 25%% errors can be corrected\n"
+"H = maximum 30%% errors can be corrected."
+msgstr ""
+"Parámetro que controla la corrección de errores utilizada para el código "
+"QR.\n"
+"L = máximo 7 %% de errores pueden ser corregidos\n"
+"M = máximo 15%% de errores pueden ser corregidos\n"
+"Q = se puede corregir un máximo de 25%% de errores\n"
+"H = máximo 30 %% de errores pueden ser corregidos."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81
+#: AppTools/ToolQRCode.py:136
+msgid "Box Size"
+msgstr "Tamaño de Elementos"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83
+#: AppTools/ToolQRCode.py:138
+msgid ""
+"Box size control the overall size of the QRcode\n"
+"by adjusting the size of each box in the code."
+msgstr ""
+"El tamaño del elemento controla el tamaño general del código QR\n"
+"ajustando el tamaño de cada cuadro en el código."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94
+#: AppTools/ToolQRCode.py:149
+msgid "Border Size"
+msgstr "Tamaño de borde"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96
+#: AppTools/ToolQRCode.py:151
+msgid ""
+"Size of the QRCode border. How many boxes thick is the border.\n"
+"Default value is 4. The width of the clearance around the QRCode."
+msgstr ""
+"Tamaño del borde del código QR. Cuántos elementos tiene el borde.\n"
+"El valor predeterminado es 4. El ancho del espacio libre alrededor del "
+"Código QR."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107
+#: AppTools/ToolQRCode.py:162
+msgid "QRCode Data"
+msgstr "Datos de QRCode"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109
+#: AppTools/ToolQRCode.py:164
+msgid "QRCode Data. Alphanumeric text to be encoded in the QRCode."
+msgstr "Datos de QRCode. Texto alfanumérico a codificar en el Código QR."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:113
+#: AppTools/ToolQRCode.py:168
+msgid "Add here the text to be included in the QRCode..."
+msgstr "Agregue aquí el texto que se incluirá en el QRCode ..."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:119
+#: AppTools/ToolQRCode.py:174
+msgid "Polarity"
+msgstr "Polaridad"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121
+#: AppTools/ToolQRCode.py:176
+msgid ""
+"Choose the polarity of the QRCode.\n"
+"It can be drawn in a negative way (squares are clear)\n"
+"or in a positive way (squares are opaque)."
+msgstr ""
+"Elija la polaridad del código QR.\n"
+"Se puede dibujar de forma negativa (los cuadrados son claros)\n"
+"o de manera positiva (los cuadrados son opacos)."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125
+#: AppTools/ToolFilm.py:279 AppTools/ToolQRCode.py:180
+msgid "Negative"
+msgstr "Negativa"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126
+#: AppTools/ToolFilm.py:278 AppTools/ToolQRCode.py:181
+msgid "Positive"
+msgstr "Positivo"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128
+#: AppTools/ToolQRCode.py:183
+msgid ""
+"Choose the type of QRCode to be created.\n"
+"If added on a Silkscreen Gerber file the QRCode may\n"
+"be added as positive. If it is added to a Copper Gerber\n"
+"file then perhaps the QRCode can be added as negative."
+msgstr ""
+"Elija el tipo de QRCode que se creará.\n"
+"Si se agrega en un archivo de Silkscreen Gerber, el QRCode puede\n"
+"ser agregado como positivo Si se agrega a un cobre Gerber\n"
+"entonces quizás el QRCode se pueda agregar como negativo."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145
+#: AppTools/ToolQRCode.py:194 AppTools/ToolQRCode.py:200
+msgid ""
+"The bounding box, meaning the empty space that surrounds\n"
+"the QRCode geometry, can have a rounded or a square shape."
+msgstr ""
+"El cuadro delimitador, que significa el espacio vacío que rodea\n"
+"La geometría QRCode, puede tener una forma redondeada o cuadrada."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:239
+#: AppTools/ToolQRCode.py:197 AppTools/ToolTransform.py:383
+msgid "Rounded"
+msgstr "Redondeado"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152
+#: AppTools/ToolQRCode.py:228
+msgid "Fill Color"
+msgstr "Color de relleno"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154
+#: AppTools/ToolQRCode.py:230
+msgid "Set the QRCode fill color (squares color)."
+msgstr ""
+"Establezca el color de relleno del código QR (color de cuadrados / "
+"elementos)."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:173
+#: AppTools/ToolQRCode.py:252
+msgid "Back Color"
+msgstr "Color de fondo"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:175
+#: AppTools/ToolQRCode.py:254
+msgid "Set the QRCode background color."
+msgstr "Establece el color de fondo del QRCode."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:27
+msgid "Check Rules Tool Options"
+msgstr "Opciones de la Herram. Verifique Reglas"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:32
+msgid ""
+"A tool to check if Gerber files are within a set\n"
+"of Manufacturing Rules."
+msgstr ""
+"Una herramienta para verificar si los archivos de Gerber están dentro de un "
+"conjunto\n"
+"de las normas de fabricación."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:42
+#: AppTools/ToolRulesCheck.py:265 AppTools/ToolRulesCheck.py:929
+msgid "Trace Size"
+msgstr "Tamaño de traza"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:44
+#: AppTools/ToolRulesCheck.py:267
+msgid "This checks if the minimum size for traces is met."
+msgstr "Esto comprueba si se cumple el tamaño mínimo para las trazas."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:54
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:74
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:94
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:114
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:134
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:154
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:174
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:194
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:216
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:236
+#: AppTools/ToolRulesCheck.py:277 AppTools/ToolRulesCheck.py:299
+#: AppTools/ToolRulesCheck.py:322 AppTools/ToolRulesCheck.py:345
+#: AppTools/ToolRulesCheck.py:368 AppTools/ToolRulesCheck.py:391
+#: AppTools/ToolRulesCheck.py:414 AppTools/ToolRulesCheck.py:437
+#: AppTools/ToolRulesCheck.py:462 AppTools/ToolRulesCheck.py:485
+msgid "Min value"
+msgstr "Valor mínimo"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:56
+#: AppTools/ToolRulesCheck.py:279
+msgid "Minimum acceptable trace size."
+msgstr "Tamaño de traza mínimo aceptable."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:61
+#: AppTools/ToolRulesCheck.py:286 AppTools/ToolRulesCheck.py:1157
+#: AppTools/ToolRulesCheck.py:1187
+msgid "Copper to Copper clearance"
+msgstr "Distancia de Cobre a Cobre"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:63
+#: AppTools/ToolRulesCheck.py:288
+msgid ""
+"This checks if the minimum clearance between copper\n"
+"features is met."
+msgstr ""
+"Esto comprueba si la distancia mínima entre cobre\n"
+"huellas se cumplen."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:76
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:96
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:116
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:136
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:156
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:176
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:238
+#: AppTools/ToolRulesCheck.py:301 AppTools/ToolRulesCheck.py:324
+#: AppTools/ToolRulesCheck.py:347 AppTools/ToolRulesCheck.py:370
+#: AppTools/ToolRulesCheck.py:393 AppTools/ToolRulesCheck.py:416
+#: AppTools/ToolRulesCheck.py:464
+msgid "Minimum acceptable clearance value."
+msgstr "Valor mínimo de distancia aceptable."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:81
+#: AppTools/ToolRulesCheck.py:309 AppTools/ToolRulesCheck.py:1217
+#: AppTools/ToolRulesCheck.py:1223 AppTools/ToolRulesCheck.py:1236
+#: AppTools/ToolRulesCheck.py:1243
+msgid "Copper to Outline clearance"
+msgstr "Distancia de Cobre a Contorno"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:83
+#: AppTools/ToolRulesCheck.py:311
+msgid ""
+"This checks if the minimum clearance between copper\n"
+"features and the outline is met."
+msgstr ""
+"Esto comprueba si la distancia mínima entre cobre\n"
+"huellas y el esquema se cumple."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:101
+#: AppTools/ToolRulesCheck.py:332
+msgid "Silk to Silk Clearance"
+msgstr "Distancia de Serigrafía a Serigrafía"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:103
+#: AppTools/ToolRulesCheck.py:334
+msgid ""
+"This checks if the minimum clearance between silkscreen\n"
+"features and silkscreen features is met."
+msgstr ""
+"Esto comprueba si la distancia mínima entre serigrafía\n"
+"huellas y huellas de serigrafía se cumplen."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:121
+#: AppTools/ToolRulesCheck.py:355 AppTools/ToolRulesCheck.py:1326
+#: AppTools/ToolRulesCheck.py:1332 AppTools/ToolRulesCheck.py:1350
+msgid "Silk to Solder Mask Clearance"
+msgstr "Serigrafía para Soldar Máscara Distancia"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:123
+#: AppTools/ToolRulesCheck.py:357
+msgid ""
+"This checks if the minimum clearance between silkscreen\n"
+"features and soldermask features is met."
+msgstr ""
+"Esto comprueba si la distancia mínima entre serigrafía\n"
+"Traces y soldermask traces se cumplen."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:141
+#: AppTools/ToolRulesCheck.py:378 AppTools/ToolRulesCheck.py:1380
+#: AppTools/ToolRulesCheck.py:1386 AppTools/ToolRulesCheck.py:1400
+#: AppTools/ToolRulesCheck.py:1407
+msgid "Silk to Outline Clearance"
+msgstr "Serigrafía para Contorno Distancia"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:143
+#: AppTools/ToolRulesCheck.py:380
+msgid ""
+"This checks if the minimum clearance between silk\n"
+"features and the outline is met."
+msgstr ""
+"Esto verifica si el espacio libre mínimo entre la serigrafía\n"
+"huellas y el contorno se cumple."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:161
+#: AppTools/ToolRulesCheck.py:401 AppTools/ToolRulesCheck.py:1418
+#: AppTools/ToolRulesCheck.py:1445
+msgid "Minimum Solder Mask Sliver"
+msgstr "Astilla de máscara de soldadura mínima"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:163
+#: AppTools/ToolRulesCheck.py:403
+msgid ""
+"This checks if the minimum clearance between soldermask\n"
+"features and soldermask features is met."
+msgstr ""
+"Esto verifica si la distancia mínima entre la máscara de soldadura\n"
+"rastros y rastros de máscara de soldadura se cumplen."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:181
+#: AppTools/ToolRulesCheck.py:424 AppTools/ToolRulesCheck.py:1483
+#: AppTools/ToolRulesCheck.py:1489 AppTools/ToolRulesCheck.py:1505
+#: AppTools/ToolRulesCheck.py:1512
+msgid "Minimum Annular Ring"
+msgstr "Anillo anular mínimo"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:183
+#: AppTools/ToolRulesCheck.py:426
+msgid ""
+"This checks if the minimum copper ring left by drilling\n"
+"a hole into a pad is met."
+msgstr ""
+"Esto verifica si queda el anillo de cobre mínimo al perforar\n"
+"Se encuentra un agujero en una almohadilla."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:196
+#: AppTools/ToolRulesCheck.py:439
+msgid "Minimum acceptable ring value."
+msgstr "Valor mínimo aceptable del anillo."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:203
+#: AppTools/ToolRulesCheck.py:449 AppTools/ToolRulesCheck.py:873
+msgid "Hole to Hole Clearance"
+msgstr "Distancia entre Agujeros"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:205
+#: AppTools/ToolRulesCheck.py:451
+msgid ""
+"This checks if the minimum clearance between a drill hole\n"
+"and another drill hole is met."
+msgstr ""
+"Esto verifica si la distancia mínima entre un taladro\n"
+"y se encuentra otro taladro."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:218
+#: AppTools/ToolRulesCheck.py:487
+msgid "Minimum acceptable drill size."
+msgstr "Tamaño mínimo aceptable de perforación."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:223
+#: AppTools/ToolRulesCheck.py:472 AppTools/ToolRulesCheck.py:847
+msgid "Hole Size"
+msgstr "Tamaño del Agujero"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:225
+#: AppTools/ToolRulesCheck.py:474
+msgid ""
+"This checks if the drill holes\n"
+"sizes are above the threshold."
+msgstr ""
+"Esto comprueba si los agujeros de perforación\n"
+"Los tamaños están por encima del umbral."
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:27
+msgid "2Sided Tool Options"
+msgstr "Opc. de herra. de 2 caras"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:33
+msgid ""
+"A tool to help in creating a double sided\n"
+"PCB using alignment holes."
+msgstr ""
+"Una herramienta para ayudar en la creación de una doble cara.\n"
+"PCB utilizando orificios de alineación."
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:47
+msgid "Drill dia"
+msgstr "Diá. del taladro"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49
+#: AppTools/ToolDblSided.py:363 AppTools/ToolDblSided.py:368
+msgid "Diameter of the drill for the alignment holes."
+msgstr "Diámetro del taladro para los orificios de alineación."
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:56
+#: AppTools/ToolDblSided.py:377
+msgid "Align Axis"
+msgstr "Alinear eje"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71
+#: AppTools/ToolDblSided.py:165 AppTools/ToolDblSided.py:379
+msgid "Mirror vertically (X) or horizontally (Y)."
+msgstr "Espejo verticalmente (X) u horizontal (Y)."
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:69
+msgid "Mirror Axis:"
+msgstr "Eje del espejo:"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:80
+#: AppTools/ToolDblSided.py:181
+msgid "Point"
+msgstr "Punto"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:81
+#: AppTools/ToolDblSided.py:182
+msgid "Box"
+msgstr "Caja"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:82
+msgid "Axis Ref"
+msgstr "Ref. del eje"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:84
+msgid ""
+"The axis should pass through a point or cut\n"
+" a specified box (in a FlatCAM object) through \n"
+"the center."
+msgstr ""
+"El eje debe pasar por un punto o cortar\n"
+" un cuadro especificado (en un objeto FlatCAM) a través de\n"
+"El centro."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:27
+msgid "Calculators Tool Options"
+msgstr "Opc. de herra. de calculadoras"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31
+#: AppTools/ToolCalculators.py:25
+msgid "V-Shape Tool Calculator"
+msgstr "Calc. de herra. en forma de V"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:33
+msgid ""
+"Calculate the tool diameter for a given V-shape tool,\n"
+"having the tip diameter, tip angle and\n"
+"depth-of-cut as parameters."
+msgstr ""
+"Calcule el diámetro de la herramienta para una herramienta de forma de V "
+"dada,\n"
+"teniendo el diámetro de la punta, el ángulo de la punta y\n"
+"Profundidad de corte como parámetros."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50
+#: AppTools/ToolCalculators.py:94
+msgid "Tip Diameter"
+msgstr "Diá. de la punta"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52
+#: AppTools/ToolCalculators.py:102
+msgid ""
+"This is the tool tip diameter.\n"
+"It is specified by manufacturer."
+msgstr ""
+"Este es el diámetro de la punta de la herramienta.\n"
+"Está especificado por el fabricante."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64
+#: AppTools/ToolCalculators.py:105
+msgid "Tip Angle"
+msgstr "Ángulo de la punta"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:66
+msgid ""
+"This is the angle on the tip of the tool.\n"
+"It is specified by manufacturer."
+msgstr ""
+"Este es el ángulo en la punta de la herramienta.\n"
+"Está especificado por el fabricante."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:80
+msgid ""
+"This is depth to cut into material.\n"
+"In the CNCJob object it is the CutZ parameter."
+msgstr ""
+"Esta es la profundidad para cortar en material.\n"
+"En el objeto de trabajo CNC es el parámetro CutZ."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87
+#: AppTools/ToolCalculators.py:27
+msgid "ElectroPlating Calculator"
+msgstr "Calculadora de electrochapado"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89
+#: AppTools/ToolCalculators.py:158
+msgid ""
+"This calculator is useful for those who plate the via/pad/drill holes,\n"
+"using a method like graphite ink or calcium hypophosphite ink or palladium "
+"chloride."
+msgstr ""
+"Esta calculadora es útil para aquellos que platican la vía / la "
+"almohadilla / los agujeros de perforación,\n"
+"Utilizando un método como tinta de graphite o tinta de hipofosfito de calcio "
+"o cloruro de paladio."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:100
+#: AppTools/ToolCalculators.py:167
+msgid "Board Length"
+msgstr "Longitud del tablero"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102
+#: AppTools/ToolCalculators.py:173
+msgid "This is the board length. In centimeters."
+msgstr "Esta es la longitud del tablero. En centímetros."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112
+#: AppTools/ToolCalculators.py:175
+msgid "Board Width"
+msgstr "Ancho del tablero"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114
+#: AppTools/ToolCalculators.py:181
+msgid "This is the board width.In centimeters."
+msgstr "Este es el ancho de la tabla. En centímetros."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119
+#: AppTools/ToolCalculators.py:183
+msgid "Current Density"
+msgstr "Densidad actual"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125
+#: AppTools/ToolCalculators.py:190
+msgid ""
+"Current density to pass through the board. \n"
+"In Amps per Square Feet ASF."
+msgstr ""
+"Densidad de corriente para pasar por el tablero.\n"
+"En amperios por pies cuadrados ASF."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:131
+#: AppTools/ToolCalculators.py:193
+msgid "Copper Growth"
+msgstr "Crecimiento de cobre"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137
+#: AppTools/ToolCalculators.py:200
+msgid ""
+"How thick the copper growth is intended to be.\n"
+"In microns."
+msgstr ""
+"Qué tan grueso pretende ser el crecimiento del cobre.\n"
+"En micras."
+
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:27
+#, fuzzy
+#| msgid "Gerber Options"
+msgid "Corner Markers Options"
+msgstr "Opciones de gerber"
+
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:44
+#: AppTools/ToolCorners.py:115
+msgid "The thickness of the line that makes the corner marker."
+msgstr ""
+
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:58
+#: AppTools/ToolCorners.py:129
+msgid "The length of the line that makes the corner marker."
+msgstr ""
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:28
+msgid "Cutout Tool Options"
+msgstr "Opc. de herra. de recorte"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43
+#: AppTools/ToolCalculators.py:123 AppTools/ToolCutOut.py:129
+msgid "Tool Diameter"
+msgstr "Diá. de Herram"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45
+#: AppTools/ToolCutOut.py:131
+msgid ""
+"Diameter of the tool used to cutout\n"
+"the PCB shape out of the surrounding material."
+msgstr ""
+"Diámetro de la herramienta utilizada para cortar\n"
+"La forma de PCB fuera del material circundante."
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:100
+msgid "Object kind"
+msgstr "Tipo de objeto"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102
+#: AppTools/ToolCutOut.py:77
+msgid ""
+"Choice of what kind the object we want to cutout is.
- Single: "
+"contain a single PCB Gerber outline object.
- Panel: a panel PCB "
+"Gerber object, which is made\n"
+"out of many individual PCB outlines."
+msgstr ""
+"La elección del tipo de objeto que queremos recortar es.
- Único "
+"B>: contiene un solo objeto de esquema de PCB Gerber.
- Panel : "
+"un panel de PCB Gerber objeto, que se hace\n"
+"de muchos esquemas de PCB individuales."
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109
+#: AppTools/ToolCutOut.py:83
+msgid "Single"
+msgstr "Soltero"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110
+#: AppTools/ToolCutOut.py:84
+msgid "Panel"
+msgstr "Panel"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117
+#: AppTools/ToolCutOut.py:192
+msgid ""
+"Margin over bounds. A positive value here\n"
+"will make the cutout of the PCB further from\n"
+"the actual PCB border"
+msgstr ""
+"Margen sobre los límites. Un valor positivo aquí\n"
+"hará que el corte de la PCB esté más alejado de\n"
+"el borde real de PCB"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:130
+#: AppTools/ToolCutOut.py:203
+msgid "Gap size"
+msgstr "Tamaño de la brecha"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:132
+#: AppTools/ToolCutOut.py:205
+msgid ""
+"The size of the bridge gaps in the cutout\n"
+"used to keep the board connected to\n"
+"the surrounding material (the one \n"
+"from which the PCB is cutout)."
+msgstr ""
+"El tamaño de los huecos del puente en el recorte\n"
+"solía mantener la placa conectada a\n"
+"el material circundante (el\n"
+"de la cual se corta el PCB)."
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:146
+#: AppTools/ToolCutOut.py:245
+msgid "Gaps"
+msgstr "Brechas"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:148
+msgid ""
+"Number of gaps used for the cutout.\n"
+"There can be maximum 8 bridges/gaps.\n"
+"The choices are:\n"
+"- None - no gaps\n"
+"- lr - left + right\n"
+"- tb - top + bottom\n"
+"- 4 - left + right +top + bottom\n"
+"- 2lr - 2*left + 2*right\n"
+"- 2tb - 2*top + 2*bottom\n"
+"- 8 - 2*left + 2*right +2*top + 2*bottom"
+msgstr ""
+"Número de huecos de puente utilizados para el recorte.\n"
+"Puede haber un máximo de 8 puentes / huecos.\n"
+"Las opciones son:\n"
+"- Ninguno - sin espacios\n"
+"- lr - izquierda + derecha\n"
+"- tb - arriba + abajo\n"
+"- 4 - izquierda + derecha + arriba + abajo\n"
+"- 2lr - 2 * izquierda + 2 * derecha\n"
+"- 2tb - 2 * top + 2 * bottom\n"
+"- 8 - 2 * izquierda + 2 * derecha + 2 * arriba + 2 * abajo"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:170
+#: AppTools/ToolCutOut.py:222
+msgid "Convex Shape"
+msgstr "Forma convexa"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:172
+#: AppTools/ToolCutOut.py:225
+msgid ""
+"Create a convex shape surrounding the entire PCB.\n"
+"Used only if the source object type is Gerber."
+msgstr ""
+"Crea una forma convexa que rodea toda la PCB.\n"
+"Se usa solo si el tipo de objeto de origen es Gerber."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:27
+msgid "Film Tool Options"
+msgstr "Opc. de herra. de película"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:33
+msgid ""
+"Create a PCB film from a Gerber or Geometry\n"
+"FlatCAM object.\n"
+"The file is saved in SVG format."
+msgstr ""
+"Crear una película de PCB de un Gerber o Geometría\n"
+"Objeto FlatCAM.\n"
+"El archivo se guarda en formato SVG."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:44
+msgid "Film Type"
+msgstr "Tipo de Filme"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:46 AppTools/ToolFilm.py:283
+msgid ""
+"Generate a Positive black film or a Negative film.\n"
+"Positive means that it will print the features\n"
+"with black on a white canvas.\n"
+"Negative means that it will print the features\n"
+"with white on a black canvas.\n"
+"The Film format is SVG."
+msgstr ""
+"Genera una película negra positiva o una película negativa.\n"
+"Positivo significa que imprimirá las características.\n"
+"Con negro sobre un lienzo blanco.\n"
+"Negativo significa que imprimirá las características.\n"
+"Con blanco sobre un lienzo negro.\n"
+"El formato de la película es SVG."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:57
+msgid "Film Color"
+msgstr "Color de la película"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:59
+msgid "Set the film color when positive film is selected."
+msgstr ""
+"Establezca el color de la película cuando se selecciona película positiva."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:82 AppTools/ToolFilm.py:299
+msgid "Border"
+msgstr "Frontera"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:84 AppTools/ToolFilm.py:301
+msgid ""
+"Specify a border around the object.\n"
+"Only for negative film.\n"
+"It helps if we use as a Box Object the same \n"
+"object as in Film Object. It will create a thick\n"
+"black bar around the actual print allowing for a\n"
+"better delimitation of the outline features which are of\n"
+"white color like the rest and which may confound with the\n"
+"surroundings if not for this border."
+msgstr ""
+"Especifique un borde alrededor del objeto.\n"
+"Sólo para película negativa.\n"
+"Ayuda si usamos como objeto de caja lo mismo\n"
+"objeto como en el objeto de la película. Se creará una gruesa\n"
+"barra negra alrededor de la impresión real que permite una\n"
+"mejor delimitación de las características del esquema que son de\n"
+"Color blanco como el resto y que puede confundir con el\n"
+"Entorno si no fuera por esta frontera."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:101
+#: AppTools/ToolFilm.py:266
+msgid "Scale Stroke"
+msgstr "Trazo de escala"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:103
+#: AppTools/ToolFilm.py:268
+msgid ""
+"Scale the line stroke thickness of each feature in the SVG file.\n"
+"It means that the line that envelope each SVG feature will be thicker or "
+"thinner,\n"
+"therefore the fine features may be more affected by this parameter."
+msgstr ""
+"Escale el grosor de trazo de línea de cada entidad en el archivo SVG.\n"
+"Significa que la línea que envuelve cada característica SVG será más gruesa "
+"o más delgada,\n"
+"por lo tanto, las características finas pueden verse más afectadas por este "
+"parámetro."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:110
+#: AppTools/ToolFilm.py:124
+msgid "Film Adjustments"
+msgstr "Ajustes de la película"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:112
+#: AppTools/ToolFilm.py:126
+msgid ""
+"Sometime the printers will distort the print shape, especially the Laser "
+"types.\n"
+"This section provide the tools to compensate for the print distortions."
+msgstr ""
+"En algún momento, las impresoras distorsionarán la forma de impresión, "
+"especialmente los tipos de láser.\n"
+"Esta sección proporciona las herramientas para compensar las distorsiones de "
+"impresión."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:119
+#: AppTools/ToolFilm.py:133
+msgid "Scale Film geometry"
+msgstr "Escalar la Geo de la Película"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:121
+#: AppTools/ToolFilm.py:135
+msgid ""
+"A value greater than 1 will stretch the film\n"
+"while a value less than 1 will jolt it."
+msgstr ""
+"Un valor mayor que 1 estirará la película\n"
+"mientras que un valor menor que 1 lo sacudirá."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:131
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:103
+#: AppTools/ToolFilm.py:145 AppTools/ToolTransform.py:148
+msgid "X factor"
+msgstr "Factor X"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:140
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:116
+#: AppTools/ToolFilm.py:154 AppTools/ToolTransform.py:168
+msgid "Y factor"
+msgstr "Factor Y"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:150
+#: AppTools/ToolFilm.py:172
+msgid "Skew Film geometry"
+msgstr "Incline la Geo de la Película"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:152
+#: AppTools/ToolFilm.py:174
+msgid ""
+"Positive values will skew to the right\n"
+"while negative values will skew to the left."
+msgstr ""
+"Los valores positivos se sesgarán a la derecha.\n"
+"mientras que los valores negativos se desviarán a la izquierda."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:162
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:72
+#: AppTools/ToolFilm.py:184 AppTools/ToolTransform.py:97
+msgid "X angle"
+msgstr "Ángulo X"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:171
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:86
+#: AppTools/ToolFilm.py:193 AppTools/ToolTransform.py:118
+msgid "Y angle"
+msgstr "Ángulo Y"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:182
+#: AppTools/ToolFilm.py:204
+msgid ""
+"The reference point to be used as origin for the skew.\n"
+"It can be one of the four points of the geometry bounding box."
+msgstr ""
+"El punto de referencia que se utilizará como origen para el sesgo.\n"
+"Puede ser uno de los cuatro puntos del cuadro delimitador de geometría."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:185
+#: AppTools/ToolCorners.py:80 AppTools/ToolFiducials.py:87
+#: AppTools/ToolFilm.py:207
+msgid "Bottom Left"
+msgstr "Abajo a la izquierda"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:186
+#: AppTools/ToolCorners.py:88 AppTools/ToolFilm.py:208
+msgid "Top Left"
+msgstr "Arriba a la izquierda"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:187
+#: AppTools/ToolCorners.py:84 AppTools/ToolFilm.py:209
+msgid "Bottom Right"
+msgstr "Abajo a la derecha"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:188
+#: AppTools/ToolFilm.py:210
+msgid "Top right"
+msgstr "Arriba a la derecha"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196
+#: AppTools/ToolFilm.py:227
+msgid "Mirror Film geometry"
+msgstr "Refleja la Geo de la Película"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:198
+#: AppTools/ToolFilm.py:229
+msgid "Mirror the film geometry on the selected axis or on both."
+msgstr "Refleje la geometría de la película en el eje seleccionado o en ambos."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:212
+#: AppTools/ToolFilm.py:243
+msgid "Mirror axis"
+msgstr "Eje espejo"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:222
+#: AppTools/ToolFilm.py:388
+msgid "SVG"
+msgstr "SVG"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:223
+#: AppTools/ToolFilm.py:389
+msgid "PNG"
+msgstr "PNG"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:224
+#: AppTools/ToolFilm.py:390
+msgid "PDF"
+msgstr "PDF"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:227
+#: AppTools/ToolFilm.py:281 AppTools/ToolFilm.py:393
+msgid "Film Type:"
+msgstr "Tipo de filme:"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:229
+#: AppTools/ToolFilm.py:395
+msgid ""
+"The file type of the saved film. Can be:\n"
+"- 'SVG' -> open-source vectorial format\n"
+"- 'PNG' -> raster image\n"
+"- 'PDF' -> portable document format"
+msgstr ""
+"El tipo de archivo de la película guardada. Puede ser:\n"
+"- 'SVG' -> formato vectorial de código abierto\n"
+"- 'PNG' -> imagen de trama\n"
+"- 'PDF' -> formato de documento portátil"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:238
+#: AppTools/ToolFilm.py:404
+msgid "Page Orientation"
+msgstr "Orient. de la página"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:251
+#: AppTools/ToolFilm.py:417
+msgid "Page Size"
+msgstr "Tamaño de página"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:252
+#: AppTools/ToolFilm.py:418
+msgid "A selection of standard ISO 216 page sizes."
+msgstr "Una selección de tamaños de página estándar ISO 216."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:27
+msgid "NCC Tool Options"
+msgstr "Opc. de herra. NCC"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:49
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:57
+msgid "Comma separated values"
+msgstr "Valores Separados por Comas"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:55
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:63
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:64 AppTools/ToolNCC.py:215
+#: AppTools/ToolNCC.py:223 AppTools/ToolPaint.py:197 AppTools/ToolPaint.py:205
+msgid ""
+"Default tool type:\n"
+"- 'V-shape'\n"
+"- Circular"
+msgstr ""
+"Tipo de herramienta predeterminada:\n"
+"- 'Forma V'\n"
+"- circular"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:60
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:69 AppTools/ToolNCC.py:220
+#: AppTools/ToolPaint.py:202
+msgid "V-shape"
+msgstr "Forma V"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:100
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:109
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:107
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:116
+#: AppTools/ToolNCC.py:262 AppTools/ToolNCC.py:271 AppTools/ToolPaint.py:244
+#: AppTools/ToolPaint.py:253
+msgid ""
+"Depth of cut into material. Negative value.\n"
+"In FlatCAM units."
+msgstr ""
+"Profundidad de corte en el material. Valor negativo.\n"
+"En unidades FlatCAM."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:119
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:125
+#: AppTools/ToolNCC.py:280 AppTools/ToolPaint.py:262
+msgid ""
+"Diameter for the new tool to add in the Tool Table.\n"
+"If the tool is V-shape type then this value is automatically\n"
+"calculated from the other parameters."
+msgstr ""
+"Diámetro de la nueva herramienta para agregar en la Tabla de herramientas.\n"
+"Si la herramienta es de tipo V, este valor es automáticamente\n"
+"calculado a partir de los otros parámetros."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:156
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:142
+#: AppTools/ToolNCC.py:174 AppTools/ToolPaint.py:157
+msgid "Tool order"
+msgstr "Orden de la Herram"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:157
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:167
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:143
+#: AppTools/ToolNCC.py:175 AppTools/ToolNCC.py:185 AppTools/ToolPaint.py:158
+#: AppTools/ToolPaint.py:168
+msgid ""
+"This set the way that the tools in the tools table are used.\n"
+"'No' --> means that the used order is the one in the tool table\n"
+"'Forward' --> means that the tools will be ordered from small to big\n"
+"'Reverse' --> means that the tools will ordered from big to small\n"
+"\n"
+"WARNING: using rest machining will automatically set the order\n"
+"in reverse and disable this control."
+msgstr ""
+"Esto establece la forma en que se utilizan las herramientas en la tabla de "
+"herramientas.\n"
+"'No' -> significa que el orden utilizado es el de la tabla de herramientas\n"
+"'Adelante' -> significa que las herramientas se ordenarán de pequeño a "
+"grande\n"
+"'Atras' -> means que las herramientas ordenarán de grande a pequeño\n"
+"\n"
+"ADVERTENCIA: el uso del mecanizado en reposo establecerá automáticamente el "
+"orden\n"
+"en reversa y deshabilitar este control."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:165
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:151
+#: AppTools/ToolNCC.py:183 AppTools/ToolPaint.py:166
+msgid "Forward"
+msgstr "Adelante"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:166
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:152
+#: AppTools/ToolNCC.py:184 AppTools/ToolPaint.py:167
+msgid "Reverse"
+msgstr "Atras"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:266
+msgid "Offset value"
+msgstr "Valor de Comp"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:268
+msgid ""
+"If used, it will add an offset to the copper features.\n"
+"The copper clearing will finish to a distance\n"
+"from the copper features.\n"
+"The value can be between 0.0 and 9999.9 FlatCAM units."
+msgstr ""
+"Si se usa, agregará un desplazamiento a las características de cobre.\n"
+"El claro de cobre terminará a cierta distancia.\n"
+"de las características de cobre.\n"
+"El valor puede estar entre 0 y 9999.9 unidades FlatCAM."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:288
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:244
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:245
+#: AppTools/ToolNCC.py:512 AppTools/ToolPaint.py:441
+msgid "Rest Machining"
+msgstr "Mecanizado de descanso"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:290 AppTools/ToolNCC.py:516
+msgid ""
+"If checked, use 'rest machining'.\n"
+"Basically it will clear copper outside PCB features,\n"
+"using the biggest tool and continue with the next tools,\n"
+"from bigger to smaller, to clear areas of copper that\n"
+"could not be cleared by previous tool, until there is\n"
+"no more copper to clear or there are no more tools.\n"
+"If not checked, use the standard algorithm."
+msgstr ""
+"Si está marcado, use 'mecanizado en reposo'.\n"
+"Básicamente eliminará el cobre fuera de las características de la PCB,\n"
+"utilizando la herramienta más grande y continúe con las siguientes "
+"herramientas,\n"
+"de mayor a menor, para limpiar áreas de cobre que\n"
+"no se pudo borrar con la herramienta anterior, hasta que haya\n"
+"no más cobre para limpiar o no hay más herramientas.\n"
+"Si no está marcado, use el algoritmo estándar."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:313 AppTools/ToolNCC.py:541
+msgid ""
+"Selection of area to be processed.\n"
+"- 'Itself' - the processing extent is based on the object that is "
+"processed.\n"
+" - 'Area Selection' - left mouse click to start selection of the area to be "
+"processed.\n"
+"- 'Reference Object' - will process the area specified by another object."
+msgstr ""
+"Selección del área a procesar.\n"
+"- 'Sí mismo': la extensión del procesamiento se basa en el objeto que se "
+"procesa.\n"
+"- 'Selección de área': haga clic con el botón izquierdo del mouse para "
+"iniciar la selección del área a procesar.\n"
+"- 'Objeto de referencia': procesará el área especificada por otro objeto."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:339
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303
+msgid "Normal"
+msgstr "Normal"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:340
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:304
+msgid "Progressive"
+msgstr "Progresivo"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:341
+msgid "NCC Plotting"
+msgstr "Trazado NCC"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:343
+msgid ""
+"- 'Normal' - normal plotting, done at the end of the NCC job\n"
+"- 'Progressive' - after each shape is generated it will be plotted."
+msgstr ""
+"- 'Normal': trazado normal, realizado al final del trabajo de NCC\n"
+"- 'Progresivo': después de generar cada forma, se trazará."
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:27
+msgid "Paint Tool Options"
+msgstr "Opc. de herra. de pintura"
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:33
+msgid "Parameters:"
+msgstr "Parámetros:"
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:247
+#: AppTools/ToolPaint.py:444
+msgid ""
+"If checked, use 'rest machining'.\n"
+"Basically it will clear copper outside PCB features,\n"
+"using the biggest tool and continue with the next tools,\n"
+"from bigger to smaller, to clear areas of copper that\n"
+"could not be cleared by previous tool, until there is\n"
+"no more copper to clear or there are no more tools.\n"
+"\n"
+"If not checked, use the standard algorithm."
+msgstr ""
+"Si está marcado, use 'mecanizado en reposo'.\n"
+"Básicamente eliminará el cobre fuera de las características de la PCB,\n"
+"utilizando la herramienta más grande y continúe con las siguientes "
+"herramientas,\n"
+"de mayor a menor, para limpiar áreas de cobre que\n"
+"no se pudo borrar con la herramienta anterior, hasta que haya\n"
+"no más cobre para limpiar o no hay más herramientas.\n"
+"\n"
+"Si no está marcado, use el algoritmo estándar."
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:260
+#: AppTools/ToolPaint.py:457
+msgid ""
+"Selection of area to be processed.\n"
+"- 'Polygon Selection' - left mouse click to add/remove polygons to be "
+"processed.\n"
+"- 'Area Selection' - left mouse click to start selection of the area to be "
+"processed.\n"
+"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple "
+"areas.\n"
+"- 'All Polygons' - the process will start after click.\n"
+"- 'Reference Object' - will process the area specified by another object."
+msgstr ""
+"Selección del área a procesar.\n"
+"- 'Selección de polígonos': haga clic con el botón izquierdo del mouse para "
+"agregar / eliminar polígonos que se procesarán.\n"
+"- 'Selección de área': haga clic con el botón izquierdo del mouse para "
+"iniciar la selección del área a procesar.\n"
+"Mantener presionada una tecla modificadora (CTRL o SHIFT) permitirá agregar "
+"múltiples áreas.\n"
+"- 'Todos los polígonos': el proceso comenzará después de hacer clic.\n"
+"- 'Objeto de referencia': procesará el área especificada por otro objeto."
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
+#: AppTools/ToolPaint.py:485 AppTools/ToolPaint.py:941
+#: AppTools/ToolPaint.py:1431 tclCommands/TclCommandPaint.py:164
+msgid "Polygon Selection"
+msgstr "Selección de polígono"
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
+#: AppTools/ToolPaint.py:485 AppTools/ToolPaint.py:1426 defaults.py:433
+#: tclCommands/TclCommandPaint.py:162
+msgid "All Polygons"
+msgstr "Todos los polígonos"
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:305
+msgid "Paint Plotting"
+msgstr "Trazado de pintura"
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:307
+msgid ""
+"- 'Normal' - normal plotting, done at the end of the Paint job\n"
+"- 'Progressive' - after each shape is generated it will be plotted."
+msgstr ""
+"- 'Normal': trazado normal, realizado al final del trabajo de Pintura\n"
+"- 'Progresivo': después de generar cada forma, se trazará."
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:27
+msgid "Panelize Tool Options"
+msgstr "Opc. de la herra. Panelizar"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:33
+msgid ""
+"Create an object that contains an array of (x, y) elements,\n"
+"each element is a copy of the source object spaced\n"
+"at a X distance, Y distance of each other."
+msgstr ""
+"Cree un objeto que contenga una matriz de (x, y) elementos,\n"
+"Cada elemento es una copia del objeto fuente espaciado.\n"
+"a una distancia X, distancia Y entre sí."
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:50
+#: AppTools/ToolPanelize.py:165
+msgid "Spacing cols"
+msgstr "Col. de espaciado"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:52
+#: AppTools/ToolPanelize.py:167
+msgid ""
+"Spacing between columns of the desired panel.\n"
+"In current units."
+msgstr ""
+"Espaciado entre columnas del panel deseado.\n"
+"En unidades actuales."
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:64
+#: AppTools/ToolPanelize.py:177
+msgid "Spacing rows"
+msgstr "Separación de filas"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:66
+#: AppTools/ToolPanelize.py:179
+msgid ""
+"Spacing between rows of the desired panel.\n"
+"In current units."
+msgstr ""
+"Espaciado entre filas del panel deseado.\n"
+"En unidades actuales."
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:77
+#: AppTools/ToolPanelize.py:188
+msgid "Columns"
+msgstr "Columnas"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:79
+#: AppTools/ToolPanelize.py:190
+msgid "Number of columns of the desired panel"
+msgstr "Número de columnas del panel deseado"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:89
+#: AppTools/ToolPanelize.py:198
+msgid "Rows"
+msgstr "Filas"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:91
+#: AppTools/ToolPanelize.py:200
+msgid "Number of rows of the desired panel"
+msgstr "Número de filas del panel deseado"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:98
+#: AppTools/ToolPanelize.py:211
+msgid "Geo"
+msgstr "Geo"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:99
+#: AppTools/ToolPanelize.py:212
+msgid "Panel Type"
+msgstr "Tipo de panel"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:101
+msgid ""
+"Choose the type of object for the panel object:\n"
+"- Gerber\n"
+"- Geometry"
+msgstr ""
+"Elija el tipo de objeto para el objeto del panel:\n"
+"- Gerber\n"
+"- Geometría"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:110
+msgid "Constrain within"
+msgstr "Restringir dentro de"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:112
+#: AppTools/ToolPanelize.py:224
+msgid ""
+"Area define by DX and DY within to constrain the panel.\n"
+"DX and DY values are in current units.\n"
+"Regardless of how many columns and rows are desired,\n"
+"the final panel will have as many columns and rows as\n"
+"they fit completely within selected area."
+msgstr ""
+"Área definida por DX y DY dentro para restringir el panel.\n"
+"Los valores DX y DY están en unidades actuales.\n"
+"Independientemente de cuántas columnas y filas se deseen,\n"
+"El panel final tendrá tantas columnas y filas como\n"
+"encajan completamente dentro del área seleccionada."
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:125
+#: AppTools/ToolPanelize.py:236
+msgid "Width (DX)"
+msgstr "Ancho (DX)"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:127
+#: AppTools/ToolPanelize.py:238
+msgid ""
+"The width (DX) within which the panel must fit.\n"
+"In current units."
+msgstr ""
+"El ancho (DX) dentro del cual debe caber el panel.\n"
+"En unidades actuales."
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:138
+#: AppTools/ToolPanelize.py:247
+msgid "Height (DY)"
+msgstr "Altura (DY)"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:140
+#: AppTools/ToolPanelize.py:249
+msgid ""
+"The height (DY)within which the panel must fit.\n"
+"In current units."
+msgstr ""
+"La altura (DY) dentro de la cual debe caber el panel.\n"
+"En unidades actuales."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:27
+msgid "SolderPaste Tool Options"
+msgstr "Opc de Herram. de Pasta"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:33
+msgid ""
+"A tool to create GCode for dispensing\n"
+"solder paste onto a PCB."
+msgstr ""
+"Una herramienta para crear GCode para dispensar\n"
+"pasta de soldadura en una PCB."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:54
+msgid "New Nozzle Dia"
+msgstr "Nuevo diá de boquilla"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:56
+#: AppTools/ToolSolderPaste.py:107
+msgid "Diameter for the new Nozzle tool to add in the Tool Table"
+msgstr ""
+"Diámetro para la nueva herramienta de boquillas para agregar en la tabla de "
+"herramientas"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:72
+#: AppTools/ToolSolderPaste.py:183
+msgid "Z Dispense Start"
+msgstr "Inicio de dispen. Z"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:74
+#: AppTools/ToolSolderPaste.py:185
+msgid "The height (Z) when solder paste dispensing starts."
+msgstr "La altura (Z) cuando comienza la dispensación de pasta de soldadura."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:85
+#: AppTools/ToolSolderPaste.py:195
+msgid "Z Dispense"
+msgstr "Dispensación Z"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:87
+#: AppTools/ToolSolderPaste.py:197
+msgid "The height (Z) when doing solder paste dispensing."
+msgstr "La altura (Z) al dispensar pasta de soldadura."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:98
+#: AppTools/ToolSolderPaste.py:207
+msgid "Z Dispense Stop"
+msgstr "Parada de dispen. Z"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:100
+#: AppTools/ToolSolderPaste.py:209
+msgid "The height (Z) when solder paste dispensing stops."
+msgstr "La altura (Z) cuando se detiene la dispensación de pasta de soldadura."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:111
+#: AppTools/ToolSolderPaste.py:219
+msgid "Z Travel"
+msgstr "Viajar Z"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:113
+#: AppTools/ToolSolderPaste.py:221
+msgid ""
+"The height (Z) for travel between pads\n"
+"(without dispensing solder paste)."
+msgstr ""
+"La altura (Z) para viajar entre almohadillas\n"
+"(sin dispensar pasta de soldadura)."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:125
+#: AppTools/ToolSolderPaste.py:232
+msgid "Z Toolchange"
+msgstr "Cambio de herra. Z"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:127
+#: AppTools/ToolSolderPaste.py:234
+msgid "The height (Z) for tool (nozzle) change."
+msgstr "La altura (Z) para el cambio de herramienta (boquilla)."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:136
+#: AppTools/ToolSolderPaste.py:242
+msgid ""
+"The X,Y location for tool (nozzle) change.\n"
+"The format is (x, y) where x and y are real numbers."
+msgstr ""
+"La ubicación X, Y para el cambio de herramienta (boquilla).\n"
+"El formato es (x, y) donde x e y son números reales."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:150
+#: AppTools/ToolSolderPaste.py:255
+msgid "Feedrate (speed) while moving on the X-Y plane."
+msgstr "Avance (velocidad) mientras se mueve en el plano X-Y."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:163
+#: AppTools/ToolSolderPaste.py:267
+msgid ""
+"Feedrate (speed) while moving vertically\n"
+"(on Z plane)."
+msgstr ""
+"Avance (velocidad) mientras se mueve verticalmente\n"
+"(en el plano Z)."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:175
+#: AppTools/ToolSolderPaste.py:278
+msgid "Feedrate Z Dispense"
+msgstr "Avance de Dispens. Z"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:177
+msgid ""
+"Feedrate (speed) while moving up vertically\n"
+"to Dispense position (on Z plane)."
+msgstr ""
+"Avance (velocidad) mientras se mueve verticalmente\n"
+"para dispensar la posición (en el plano Z)."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:188
+#: AppTools/ToolSolderPaste.py:290
+msgid "Spindle Speed FWD"
+msgstr "Veloc. del husillo FWD"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:190
+#: AppTools/ToolSolderPaste.py:292
+msgid ""
+"The dispenser speed while pushing solder paste\n"
+"through the dispenser nozzle."
+msgstr ""
+"La velocidad del dispensador mientras empuja la pasta de soldadura\n"
+"a través de la boquilla dispensadora."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:202
+#: AppTools/ToolSolderPaste.py:303
+msgid "Dwell FWD"
+msgstr "Morar FWD"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:204
+#: AppTools/ToolSolderPaste.py:305
+msgid "Pause after solder dispensing."
+msgstr "Pausa después de la dispensación de soldadura."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:214
+#: AppTools/ToolSolderPaste.py:314
+msgid "Spindle Speed REV"
+msgstr "Veloc. del husillo REV"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:216
+#: AppTools/ToolSolderPaste.py:316
+msgid ""
+"The dispenser speed while retracting solder paste\n"
+"through the dispenser nozzle."
+msgstr ""
+"La velocidad del dispensador mientras se retrae la pasta de soldadura\n"
+"a través de la boquilla dispensadora."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:228
+#: AppTools/ToolSolderPaste.py:327
+msgid "Dwell REV"
+msgstr "Morar REV"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:230
+#: AppTools/ToolSolderPaste.py:329
+msgid ""
+"Pause after solder paste dispenser retracted,\n"
+"to allow pressure equilibrium."
+msgstr ""
+"Pausa después de que el dispensador de pasta de soldadura se retraiga,\n"
+"para permitir el equilibrio de presión."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:239
+#: AppTools/ToolSolderPaste.py:337
+msgid "Files that control the GCode generation."
+msgstr "Archivos que controlan la generación de GCode."
+
+#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:27
+msgid "Substractor Tool Options"
+msgstr "Opc. de herra. de substractor"
+
+#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:33
+msgid ""
+"A tool to substract one Gerber or Geometry object\n"
+"from another of the same type."
+msgstr ""
+"Una herramienta para restar un objeto Gerber o Geometry\n"
+"de otro del mismo tipo."
+
+#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:38 AppTools/ToolSub.py:155
+msgid "Close paths"
+msgstr "Caminos cercanos"
+
+#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:39
+msgid ""
+"Checking this will close the paths cut by the Geometry substractor object."
+msgstr ""
+"Marcar esto cerrará los caminos cortados por el objeto sustrato Geometry."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:27
+msgid "Transform Tool Options"
+msgstr "Opc. de herra. de transformación"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:33
+msgid ""
+"Various transformations that can be applied\n"
+"on a FlatCAM object."
+msgstr ""
+"Diversas transformaciones que se pueden aplicar.\n"
+"en un objeto FlatCAM."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:64
+msgid "Skew"
+msgstr "Sesgar"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:105
+#: AppTools/ToolTransform.py:150
+msgid "Factor for scaling on X axis."
+msgstr "Factor de escalado en eje X."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:118
+#: AppTools/ToolTransform.py:170
+msgid "Factor for scaling on Y axis."
+msgstr "Factor de escalado en eje Y."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:126
+#: AppTools/ToolTransform.py:191
+msgid ""
+"Scale the selected object(s)\n"
+"using the Scale_X factor for both axis."
+msgstr ""
+"Escala el (los) objeto (s) seleccionado (s)\n"
+"utilizando el factor de escala X para ambos ejes."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:134
+#: AppTools/ToolTransform.py:198
+msgid ""
+"Scale the selected object(s)\n"
+"using the origin reference when checked,\n"
+"and the center of the biggest bounding box\n"
+"of the selected objects when unchecked."
+msgstr ""
+"Escala el (los) objeto (s) seleccionado (s)\n"
+"usando la referencia de origen cuando está marcada,\n"
+"y el centro del cuadro delimitador más grande.\n"
+"de los objetos seleccionados cuando no está marcada."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:150
+#: AppTools/ToolTransform.py:217
+msgid "X val"
+msgstr "Valor X"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:152
+#: AppTools/ToolTransform.py:219
+msgid "Distance to offset on X axis. In current units."
+msgstr "Distancia a desplazamiento en el eje X. En unidades actuales."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:163
+#: AppTools/ToolTransform.py:237
+msgid "Y val"
+msgstr "Valor Y"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:165
+#: AppTools/ToolTransform.py:239
+msgid "Distance to offset on Y axis. In current units."
+msgstr "Distancia a desplazamiento en el eje Y. En unidades actuales."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:171
+#: AppTools/ToolDblSided.py:67 AppTools/ToolDblSided.py:95
+#: AppTools/ToolDblSided.py:125
+msgid "Mirror"
+msgstr "Espejo"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:175
+#: AppTools/ToolTransform.py:283
+msgid "Mirror Reference"
+msgstr "Espejo de referencia"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:177
+#: AppTools/ToolTransform.py:285
+msgid ""
+"Flip the selected object(s)\n"
+"around the point in Point Entry Field.\n"
+"\n"
+"The point coordinates can be captured by\n"
+"left click on canvas together with pressing\n"
+"SHIFT key. \n"
+"Then click Add button to insert coordinates.\n"
+"Or enter the coords in format (x, y) in the\n"
+"Point Entry field and click Flip on X(Y)"
+msgstr ""
+"Voltear los objetos seleccionados\n"
+"alrededor del punto en el campo de entrada de puntos.\n"
+"\n"
+"Las coordenadas del punto pueden ser capturadas por\n"
+"Haga clic izquierdo en el lienzo junto con la presión\n"
+"Tecla Shift.\n"
+"Luego haga clic en el botón Agregar para insertar coordenadas.\n"
+"O ingrese las coords en formato (x, y) en el\n"
+"Campo de entrada de puntos y haga clic en Girar en X (Y)"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:188
+msgid "Mirror Reference point"
+msgstr "Punto de Ref del Espejo"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:190
+msgid ""
+"Coordinates in format (x, y) used as reference for mirroring.\n"
+"The 'x' in (x, y) will be used when using Flip on X and\n"
+"the 'y' in (x, y) will be used when using Flip on Y and"
+msgstr ""
+"Coordenadas en formato (x, y) utilizadas como referencia para la "
+"duplicación.\n"
+"La 'x' en (x, y) se usará cuando se use voltear en X y\n"
+"la 'y' en (x, y) se usará cuando se use voltear en Y y"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:203
+#: AppTools/ToolDistance.py:505 AppTools/ToolDistanceMin.py:286
+#: AppTools/ToolTransform.py:332
+msgid "Distance"
+msgstr "Distancia"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:205
+#: AppTools/ToolTransform.py:334
+msgid ""
+"A positive value will create the effect of dilation,\n"
+"while a negative value will create the effect of erosion.\n"
+"Each geometry element of the object will be increased\n"
+"or decreased with the 'distance'."
+msgstr ""
+"Un valor positivo creará el efecto de dilatación,\n"
+"mientras que un valor negativo creará el efecto de la erosión.\n"
+"Cada elemento de geometría del objeto se incrementará\n"
+"o disminuido con la 'distancia'."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:222
+#: AppTools/ToolTransform.py:359
+msgid ""
+"A positive value will create the effect of dilation,\n"
+"while a negative value will create the effect of erosion.\n"
+"Each geometry element of the object will be increased\n"
+"or decreased to fit the 'Value'. Value is a percentage\n"
+"of the initial dimension."
+msgstr ""
+"Un valor positivo creará el efecto de dilatación,\n"
+"mientras que un valor negativo creará el efecto de la erosión.\n"
+"Cada elemento de geometría del objeto se incrementará\n"
+"o disminuido para ajustarse al 'Valor'. El Valor es un porcentaje\n"
+"de la dimensión inicial."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:241
+#: AppTools/ToolTransform.py:385
+msgid ""
+"If checked then the buffer will surround the buffered shape,\n"
+"every corner will be rounded.\n"
+"If not checked then the buffer will follow the exact geometry\n"
+"of the buffered shape."
+msgstr ""
+"Si se marca, el búfer rodeará la forma tamponada,\n"
+"Cada rincón será redondeado.\n"
+"Si no está marcado, el búfer seguirá la geometría exacta\n"
+"de la forma amortiguada."
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:27
+msgid "Autocompleter Keywords"
+msgstr "Palabras clave de autocompletador"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:30
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:40
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:30
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:30
+msgid "Restore"
+msgstr "Restaurar"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:31
+msgid "Restore the autocompleter keywords list to the default state."
+msgstr ""
+"Restaure la lista de palabras clave de autocompletador al estado "
+"predeterminado."
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:33
+msgid "Delete all autocompleter keywords from the list."
+msgstr "Elimine todas las palabras clave de autocompletador de la lista."
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:41
+msgid "Keywords list"
+msgstr "Lista de palabras clave"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:43
+msgid ""
+"List of keywords used by\n"
+"the autocompleter in FlatCAM.\n"
+"The autocompleter is installed\n"
+"in the Code Editor and for the Tcl Shell."
+msgstr ""
+"Lista de palabras clave utilizadas por\n"
+"el autocompletador en FlatCAM.\n"
+"El autocompletador está instalado\n"
+"en el Editor de Código y para el Tcl Shell."
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:64
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:73
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:63
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:62
+msgid "Extension"
+msgstr "ExtensiónLista de extensiones"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:65
+msgid "A keyword to be added or deleted to the list."
+msgstr "Una palabra clave para agregar o eliminar a la lista."
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:73
+msgid "Add keyword"
+msgstr "Agregar palabra clave"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:74
+msgid "Add a keyword to the list"
+msgstr "Agregar una palabra clave a la lista"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:75
+msgid "Delete keyword"
+msgstr "Eliminar palabra clave"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:76
+msgid "Delete a keyword from the list"
+msgstr "Eliminar una palabra clave de la lista"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:27
+msgid "Excellon File associations"
+msgstr "Excellon File asociaciones"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:41
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:31
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:31
+msgid "Restore the extension list to the default state."
+msgstr "Restaurar la lista de extensiones al estado predeterminado."
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:43
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:33
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:33
+msgid "Delete all extensions from the list."
+msgstr "Eliminar todas las extensiones de la lista."
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:51
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:41
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:41
+msgid "Extensions list"
+msgstr "Lista de extensiones"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:53
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:43
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:43
+msgid ""
+"List of file extensions to be\n"
+"associated with FlatCAM."
+msgstr ""
+"Lista de extensiones de archivo para ser\n"
+"asociado con FlatCAM."
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:74
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:64
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:63
+msgid "A file extension to be added or deleted to the list."
+msgstr "Una extensión de archivo para agregar o eliminar a la lista."
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:82
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:72
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:71
+msgid "Add Extension"
+msgstr "Agregar extensión"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:83
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:73
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:72
+msgid "Add a file extension to the list"
+msgstr "Agregar una extensión de archivo a la lista"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:84
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:74
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:73
+msgid "Delete Extension"
+msgstr "Eliminar extensión"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:85
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:75
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:74
+msgid "Delete a file extension from the list"
+msgstr "Eliminar una extensión de archivo de la lista"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:92
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:82
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:81
+msgid "Apply Association"
+msgstr "Aplicar asociación"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:93
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:83
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:82
+msgid ""
+"Apply the file associations between\n"
+"FlatCAM and the files with above extensions.\n"
+"They will be active after next logon.\n"
+"This work only in Windows."
+msgstr ""
+"Aplicar las asociaciones de archivos entre\n"
+"FlatCAM y los archivos con las extensiones anteriores.\n"
+"Estarán activos después del próximo inicio de sesión.\n"
+"Esto funciona solo en Windows."
+
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:27
+msgid "GCode File associations"
+msgstr "Asociaciones de archivos GCode"
+
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:27
+msgid "Gerber File associations"
+msgstr "Asociaciones de archivos Gerber"
+
+#: AppObjects/AppObject.py:134
+#, python-brace-format
+msgid ""
+"Object ({kind}) failed because: {error} \n"
+"\n"
+msgstr "El objeto ({kind}) falló porque: {error}\n"
+
+#: AppObjects/AppObject.py:149
+msgid "Converting units to "
+msgstr "Convertir unidades a "
+
+#: AppObjects/AppObject.py:254
+msgid "CREATE A NEW FLATCAM TCL SCRIPT"
+msgstr "CREA UN NUEVO SCRIPT FLATCAM TCL"
+
+#: AppObjects/AppObject.py:255
+msgid "TCL Tutorial is here"
+msgstr "TCL Tutorial está aquí"
+
+#: AppObjects/AppObject.py:257
+msgid "FlatCAM commands list"
+msgstr "Lista de comandos de FlatCAM"
+
+#: AppObjects/AppObject.py:258
+msgid ""
+"Type >help< followed by Run Code for a list of FlatCAM Tcl Commands "
+"(displayed in Tcl Shell)."
+msgstr ""
+"Escriba> help Basic"
+msgstr "Basic"
+
+#: AppObjects/FlatCAMCNCJob.py:435 AppObjects/FlatCAMDocument.py:75
+#: AppObjects/FlatCAMScript.py:86
+msgid "Advanced"
+msgstr "Avanzado"
+
+#: AppObjects/FlatCAMCNCJob.py:478
+msgid "Plotting..."
+msgstr "Trazando ..."
+
+#: AppObjects/FlatCAMCNCJob.py:507 AppObjects/FlatCAMCNCJob.py:512
+#: AppTools/ToolSolderPaste.py:1499
+msgid "Export Machine Code ..."
+msgstr "Exportar código de máquina ..."
+
+#: AppObjects/FlatCAMCNCJob.py:517 AppTools/ToolSolderPaste.py:1503
+msgid "Export Machine Code cancelled ..."
+msgstr "Exportar código de máquina cancelado ..."
+
+#: AppObjects/FlatCAMCNCJob.py:538
+msgid "Machine Code file saved to"
+msgstr "Archivo de código de máquina guardado en"
+
+#: AppObjects/FlatCAMCNCJob.py:548 AppObjects/FlatCAMScript.py:134
+#: App_Main.py:7205
+msgid "Loading..."
+msgstr "Cargando..."
+
+#: AppObjects/FlatCAMCNCJob.py:562 App_Main.py:7302
+msgid "Code Editor"
+msgstr "Editor de código"
+
+#: AppObjects/FlatCAMCNCJob.py:599 AppTools/ToolCalibration.py:1097
+msgid "Loaded Machine Code into Code Editor"
+msgstr "Código de máquina cargado en el editor de código"
+
+#: AppObjects/FlatCAMCNCJob.py:740
+msgid "This CNCJob object can't be processed because it is a"
+msgstr "Este objeto CNCJob no se puede procesar porque es un"
+
+#: AppObjects/FlatCAMCNCJob.py:742
+msgid "CNCJob object"
+msgstr "Objeto CNCJob"
+
+#: AppObjects/FlatCAMCNCJob.py:922
+msgid ""
+"G-code does not have a G94 code and we will not include the code in the "
+"'Prepend to GCode' text box"
+msgstr ""
+"El código G no tiene un código G94 y no incluiremos el código en el cuadro "
+"de texto 'Anteponer al código GC'"
+
+#: AppObjects/FlatCAMCNCJob.py:933
+msgid "Cancelled. The Toolchange Custom code is enabled but it's empty."
+msgstr ""
+"Cancelado. El código personalizado de Toolchange está habilitado pero está "
+"vacío."
+
+#: AppObjects/FlatCAMCNCJob.py:938
+msgid "Toolchange G-code was replaced by a custom code."
+msgstr "El código G de Toolchange fue reemplazado por un código personalizado."
+
+#: AppObjects/FlatCAMCNCJob.py:986 AppObjects/FlatCAMCNCJob.py:996
+msgid ""
+"The used preprocessor file has to have in it's name: 'toolchange_custom'"
+msgstr ""
+"El archivo de postprocesador usado debe tener su nombre: 'toolchange_custom'"
+
+#: AppObjects/FlatCAMCNCJob.py:999
+msgid "There is no preprocessor file."
+msgstr "No hay archivo de postprocesador."
+
+#: AppObjects/FlatCAMDocument.py:175
+msgid "Document Editor"
+msgstr "Editor de Documentos"
+
+#: AppObjects/FlatCAMExcellon.py:527 AppObjects/FlatCAMExcellon.py:825
+#: AppObjects/FlatCAMGeometry.py:322 AppObjects/FlatCAMGeometry.py:852
+#: AppTools/ToolNCC.py:811 AppTools/ToolNCC.py:1196 AppTools/ToolPaint.py:778
+#: AppTools/ToolPaint.py:1170
+msgid "Multiple Tools"
+msgstr "Herramientas múltiples"
+
+#: AppObjects/FlatCAMExcellon.py:805
+msgid "No Tool Selected"
+msgstr "Ninguna herramienta seleccionada"
+
+#: AppObjects/FlatCAMExcellon.py:1155 AppObjects/FlatCAMExcellon.py:1248
+#: AppObjects/FlatCAMExcellon.py:1435
+msgid "Please select one or more tools from the list and try again."
+msgstr ""
+"Por favor seleccione una o más herramientas de la lista e intente nuevamente."
+
+#: AppObjects/FlatCAMExcellon.py:1162
+msgid "Milling tool for DRILLS is larger than hole size. Cancelled."
+msgstr ""
+"La herramienta de fresado para TALADRO es más grande que el tamaño del "
+"orificio. Cancelado."
+
+#: AppObjects/FlatCAMExcellon.py:1177 AppObjects/FlatCAMExcellon.py:1268
+#: AppObjects/FlatCAMExcellon.py:1453 tclCommands/TclCommandDrillcncjob.py:195
+msgid "Tool_nr"
+msgstr "Herramienta_nu"
+
+#: AppObjects/FlatCAMExcellon.py:1177 AppObjects/FlatCAMExcellon.py:1268
+#: AppObjects/FlatCAMExcellon.py:1453 tclCommands/TclCommandDrillcncjob.py:195
+msgid "Drills_Nr"
+msgstr "Taladros_nu"
+
+#: AppObjects/FlatCAMExcellon.py:1177 AppObjects/FlatCAMExcellon.py:1268
+#: AppObjects/FlatCAMExcellon.py:1453 tclCommands/TclCommandDrillcncjob.py:195
+msgid "Slots_Nr"
+msgstr "Ranuras_nu"
+
+#: AppObjects/FlatCAMExcellon.py:1257
+msgid "Milling tool for SLOTS is larger than hole size. Cancelled."
+msgstr ""
+"La herramienta de fresado para SLOTS es más grande que el tamaño del "
+"orificio. Cancelado."
+
+#: AppObjects/FlatCAMExcellon.py:1361 AppObjects/FlatCAMGeometry.py:1625
+msgid "Focus Z"
+msgstr "Enfoque Z"
+
+#: AppObjects/FlatCAMExcellon.py:1380 AppObjects/FlatCAMGeometry.py:1644
+msgid "Laser Power"
+msgstr "Poder del laser"
+
+#: AppObjects/FlatCAMExcellon.py:1510 AppObjects/FlatCAMGeometry.py:2077
+#: AppObjects/FlatCAMGeometry.py:2081 AppObjects/FlatCAMGeometry.py:2232
+msgid "Generating CNC Code"
+msgstr "Generando Código CNC"
+
+#: AppObjects/FlatCAMExcellon.py:1563 AppObjects/FlatCAMGeometry.py:2542
+#, fuzzy
+#| msgid "Delete failed. Select a tool to delete."
+msgid "Delete failed. There are no exclusion areas to delete."
+msgstr "Eliminar falló. Seleccione una herramienta para eliminar."
+
+#: AppObjects/FlatCAMExcellon.py:1580 AppObjects/FlatCAMGeometry.py:2559
+#, fuzzy
+#| msgid "Failed. Nothing selected."
+msgid "Delete failed. Nothing is selected."
+msgstr "Ha fallado. Nada seleccionado."
+
+#: AppObjects/FlatCAMExcellon.py:1804 AppTools/ToolNCC.py:918
+#: AppTools/ToolPaint.py:843
+msgid "Current Tool parameters were applied to all tools."
+msgstr ""
+"Los parámetros actuales de la herramienta se aplicaron a todas las "
+"herramientas."
+
+#: AppObjects/FlatCAMGeometry.py:123 AppObjects/FlatCAMGeometry.py:1289
+#: AppObjects/FlatCAMGeometry.py:1290 AppObjects/FlatCAMGeometry.py:1299
+msgid "Iso"
+msgstr "Aisl"
+
+#: AppObjects/FlatCAMGeometry.py:123 AppObjects/FlatCAMGeometry.py:515
+#: AppObjects/FlatCAMGeometry.py:911 AppObjects/FlatCAMGerber.py:891
+#: AppObjects/FlatCAMGerber.py:1039 AppTools/ToolCutOut.py:690
+#: AppTools/ToolCutOut.py:886 AppTools/ToolCutOut.py:1046
+msgid "Rough"
+msgstr "Áspero"
+
+#: AppObjects/FlatCAMGeometry.py:123
+msgid "Finish"
+msgstr "Terminar"
+
+#: AppObjects/FlatCAMGeometry.py:550
+msgid "Add from Tool DB"
+msgstr "Agregar desde la DB de herramientas"
+
+#: AppObjects/FlatCAMGeometry.py:930
+msgid "Tool added in Tool Table."
+msgstr "Herramienta añadida en la tabla de herramientas."
+
+#: AppObjects/FlatCAMGeometry.py:1039 AppObjects/FlatCAMGeometry.py:1048
+msgid "Failed. Select a tool to copy."
+msgstr "Ha fallado. Seleccione una herramienta para copiar."
+
+#: AppObjects/FlatCAMGeometry.py:1077
+msgid "Tool was copied in Tool Table."
+msgstr "La herramienta se copió en la tabla de herramientas."
+
+#: AppObjects/FlatCAMGeometry.py:1104
+msgid "Tool was edited in Tool Table."
+msgstr "La herramienta fue editada en la tabla de herramientas."
+
+#: AppObjects/FlatCAMGeometry.py:1133 AppObjects/FlatCAMGeometry.py:1142
+msgid "Failed. Select a tool to delete."
+msgstr "Ha fallado. Seleccione una herramienta para eliminar."
+
+#: AppObjects/FlatCAMGeometry.py:1166
+msgid "Tool was deleted in Tool Table."
+msgstr "La herramienta se eliminó en la tabla de herramientas."
+
+#: AppObjects/FlatCAMGeometry.py:1203 AppObjects/FlatCAMGeometry.py:1212
+msgid ""
+"Disabled because the tool is V-shape.\n"
+"For V-shape tools the depth of cut is\n"
+"calculated from other parameters like:\n"
+"- 'V-tip Angle' -> angle at the tip of the tool\n"
+"- 'V-tip Dia' -> diameter at the tip of the tool \n"
+"- Tool Dia -> 'Dia' column found in the Tool Table\n"
+"NB: a value of zero means that Tool Dia = 'V-tip Dia'"
+msgstr ""
+"Deshabilitado porque la herramienta tiene forma de V.\n"
+"Para herramientas en forma de V, la profundidad de corte es\n"
+"calculado a partir de otros parámetros como:\n"
+"- 'Ángulo de punta en V' -> ángulo en la punta de la herramienta\n"
+"- 'Diámetro de punta en V' -> diámetro en la punta de la herramienta\n"
+"- Herramienta Dia -> columna 'Dia' encontrada en la tabla de herramientas\n"
+"NB: un valor de cero significa que Tool Dia = 'V-tip Dia'"
+
+#: AppObjects/FlatCAMGeometry.py:1697
+msgid "This Geometry can't be processed because it is"
+msgstr "Esta geometría no se puede procesar porque es"
+
+#: AppObjects/FlatCAMGeometry.py:1697
+msgid "geometry"
+msgstr "geometría"
+
+#: AppObjects/FlatCAMGeometry.py:1738
+msgid "Failed. No tool selected in the tool table ..."
+msgstr ""
+"Ha fallado. Ninguna herramienta seleccionada en la tabla de herramientas ..."
+
+#: AppObjects/FlatCAMGeometry.py:1836 AppObjects/FlatCAMGeometry.py:1986
+msgid ""
+"Tool Offset is selected in Tool Table but no value is provided.\n"
+"Add a Tool Offset or change the Offset Type."
+msgstr ""
+"La Herramienta de desplazamiento se selecciona en la Tabla de herramientas "
+"pero no se proporciona ningún valor.\n"
+"Agregue una Herramienta de compensación o cambie el Tipo de compensación."
+
+#: AppObjects/FlatCAMGeometry.py:1902 AppObjects/FlatCAMGeometry.py:2048
+msgid "G-Code parsing in progress..."
+msgstr "Análisis de código G en progreso ..."
+
+#: AppObjects/FlatCAMGeometry.py:1904 AppObjects/FlatCAMGeometry.py:2050
+msgid "G-Code parsing finished..."
+msgstr "Análisis de código G terminado ..."
+
+#: AppObjects/FlatCAMGeometry.py:1912
+msgid "Finished G-Code processing"
+msgstr "Procesamiento de código G terminado"
+
+#: AppObjects/FlatCAMGeometry.py:1914 AppObjects/FlatCAMGeometry.py:2062
+msgid "G-Code processing failed with error"
+msgstr "El procesamiento del código G falló con error"
+
+#: AppObjects/FlatCAMGeometry.py:1956 AppTools/ToolSolderPaste.py:1301
+msgid "Cancelled. Empty file, it has no geometry"
+msgstr "Cancelado. Archivo vacío, no tiene geometría"
+
+#: AppObjects/FlatCAMGeometry.py:2060 AppObjects/FlatCAMGeometry.py:2227
+msgid "Finished G-Code processing..."
+msgstr "Procesamiento de código G terminado ..."
+
+#: AppObjects/FlatCAMGeometry.py:2079 AppObjects/FlatCAMGeometry.py:2083
+#: AppObjects/FlatCAMGeometry.py:2234
+msgid "CNCjob created"
+msgstr "CNCjob creado"
+
+#: AppObjects/FlatCAMGeometry.py:2265 AppObjects/FlatCAMGeometry.py:2274
+#: AppParsers/ParseGerber.py:1866 AppParsers/ParseGerber.py:1876
+msgid "Scale factor has to be a number: integer or float."
+msgstr "El factor de escala debe ser un número: entero o Real."
+
+#: AppObjects/FlatCAMGeometry.py:2337
+msgid "Geometry Scale done."
+msgstr "Escala de geometría realizada."
+
+#: AppObjects/FlatCAMGeometry.py:2354 AppParsers/ParseGerber.py:1992
+msgid ""
+"An (x,y) pair of values are needed. Probable you entered only one value in "
+"the Offset field."
+msgstr ""
+"Se necesita un par de valores (x, y). Probablemente haya ingresado un solo "
+"valor en el campo Desplazamiento."
+
+#: AppObjects/FlatCAMGeometry.py:2410
+msgid "Geometry Offset done."
+msgstr "Desplazamiento de geometría realizado."
+
+#: AppObjects/FlatCAMGeometry.py:2439
+msgid ""
+"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, "
+"y)\n"
+"but now there is only one value, not two."
+msgstr ""
+"El campo Toolchange X, Y en Editar -> Preferencias tiene que estar en el "
+"formato (x, y)\n"
+"pero ahora solo hay un valor, no dos."
+
+#: AppObjects/FlatCAMGerber.py:494
+msgid "Buffering solid geometry"
+msgstr "Amortiguación de geometría sólida"
+
+#: AppObjects/FlatCAMGerber.py:503
+msgid "Done"
+msgstr "Hecho"
+
+#: AppObjects/FlatCAMGerber.py:529 AppObjects/FlatCAMGerber.py:555
+msgid "Operation could not be done."
+msgstr "La operación no se pudo hacer."
+
+#: AppObjects/FlatCAMGerber.py:572
+msgid "Isolating..."
+msgstr "Aislando ..."
+
+#: AppObjects/FlatCAMGerber.py:631
+msgid "Click on a polygon to isolate it."
+msgstr "Haga clic en un polígono para aislarlo."
+
+#: AppObjects/FlatCAMGerber.py:670 AppObjects/FlatCAMGerber.py:774
+#: AppTools/ToolPaint.py:1515
+msgid "Added polygon"
+msgstr "Polígono agregado"
+
+#: AppObjects/FlatCAMGerber.py:671 AppObjects/FlatCAMGerber.py:776
+msgid "Click to add next polygon or right click to start isolation."
+msgstr ""
+"Haga clic para agregar el siguiente polígono o haga clic con el botón "
+"derecho para iniciar el aislamiento."
+
+#: AppObjects/FlatCAMGerber.py:683 AppTools/ToolPaint.py:1529
+msgid "Removed polygon"
+msgstr "Polígono eliminado"
+
+#: AppObjects/FlatCAMGerber.py:684
+msgid "Click to add/remove next polygon or right click to start isolation."
+msgstr ""
+"Haga clic para agregar / eliminar el siguiente polígono o haga clic con el "
+"botón derecho para iniciar el aislamiento."
+
+#: AppObjects/FlatCAMGerber.py:689 AppTools/ToolPaint.py:1535
+msgid "No polygon detected under click position."
+msgstr "No se detectó ningún polígono bajo la posición de clic."
+
+#: AppObjects/FlatCAMGerber.py:710 AppTools/ToolPaint.py:1564
+msgid "List of single polygons is empty. Aborting."
+msgstr "La lista de polígonos individuales está vacía. Abortar."
+
+#: AppObjects/FlatCAMGerber.py:779
+msgid "No polygon in selection."
+msgstr "No hay polígono en la selección."
+
+#: AppObjects/FlatCAMGerber.py:907 AppObjects/FlatCAMGerber.py:986
+#: AppTools/ToolNCC.py:2097 AppTools/ToolNCC.py:3183 AppTools/ToolNCC.py:3562
+msgid "Isolation geometry could not be generated."
+msgstr "La geometría de aislamiento no se pudo generar."
+
+#: AppObjects/FlatCAMGerber.py:932 AppObjects/FlatCAMGerber.py:1064
+msgid "Isolation geometry created"
+msgstr "Geometría de aislamiento creada"
+
+#: AppObjects/FlatCAMGerber.py:941 AppObjects/FlatCAMGerber.py:1071
+msgid "Subtracting Geo"
+msgstr "Restando Geo"
+
+#: AppObjects/FlatCAMGerber.py:1396
+msgid "Plotting Apertures"
+msgstr "Aperturas de trazado"
+
+#: AppObjects/FlatCAMObj.py:232
+msgid "Name changed from"
+msgstr "Nombre cambiado de"
+
+#: AppObjects/FlatCAMObj.py:232
+msgid "to"
+msgstr "a"
+
+#: AppObjects/FlatCAMObj.py:243
+msgid "Offsetting..."
+msgstr "Compensación ..."
+
+#: AppObjects/FlatCAMObj.py:257 AppObjects/FlatCAMObj.py:262
+msgid "Scaling could not be executed."
+msgstr "No se pudo ejecutar el escalado."
+
+#: AppObjects/FlatCAMObj.py:266 AppObjects/FlatCAMObj.py:274
+msgid "Scale done."
+msgstr "Escala hecha."
+
+#: AppObjects/FlatCAMObj.py:272
+msgid "Scaling..."
+msgstr "Escalando..."
+
+#: AppObjects/FlatCAMObj.py:290
+msgid "Skewing..."
+msgstr "Sesgar..."
+
+#: AppObjects/FlatCAMScript.py:163
+msgid "Script Editor"
+msgstr "Editor de guiones"
+
+#: AppObjects/ObjectCollection.py:513
+#, python-brace-format
+msgid "Object renamed from {old} to {new}"
+msgstr "Objeto renombrado de {old} a {new}"
+
+#: AppObjects/ObjectCollection.py:925 AppObjects/ObjectCollection.py:931
+#: AppObjects/ObjectCollection.py:937 AppObjects/ObjectCollection.py:943
+#: AppObjects/ObjectCollection.py:949 AppObjects/ObjectCollection.py:955
+#: App_Main.py:6158 App_Main.py:6164 App_Main.py:6170 App_Main.py:6176
+msgid "selected"
+msgstr "seleccionado"
+
+#: AppObjects/ObjectCollection.py:986
+msgid "Cause of error"
+msgstr "Causa del error"
+
+#: AppObjects/ObjectCollection.py:1187
+msgid "All objects are selected."
+msgstr "Todos los objetos están seleccionados."
+
+#: AppObjects/ObjectCollection.py:1197
+msgid "Objects selection is cleared."
+msgstr "La selección de objetos se borra."
+
+#: AppParsers/ParseExcellon.py:315
+msgid "This is GCODE mark"
+msgstr "Esta es la marca GCODE"
+
+#: AppParsers/ParseExcellon.py:432
+msgid ""
+"No tool diameter info's. See shell.\n"
+"A tool change event: T"
+msgstr ""
+"No hay información de diámetro de herramienta. Ver caparazón.\n"
+"Un evento de cambio de herramienta: T"
+
+#: AppParsers/ParseExcellon.py:435
+msgid ""
+"was found but the Excellon file have no informations regarding the tool "
+"diameters therefore the application will try to load it by using some 'fake' "
+"diameters.\n"
+"The user needs to edit the resulting Excellon object and change the "
+"diameters to reflect the real diameters."
+msgstr ""
+"se encontró pero el archivo Excellon no tiene información sobre los "
+"diámetros de la herramienta, por lo tanto, la aplicación intentará cargarlo "
+"utilizando algunos diámetros 'falsos'.\n"
+"El usuario necesita editar el objeto Excellon resultante y cambiar los "
+"diámetros para reflejar los diámetros reales."
+
+#: AppParsers/ParseExcellon.py:899
+msgid ""
+"Excellon Parser error.\n"
+"Parsing Failed. Line"
+msgstr ""
+"Error del analizador Excellon.\n"
+"El análisis falló. Línea"
+
+#: AppParsers/ParseExcellon.py:981
+msgid ""
+"Excellon.create_geometry() -> a drill location was skipped due of not having "
+"a tool associated.\n"
+"Check the resulting GCode."
+msgstr ""
+"Excellon.create_geometry() -> se omitió la ubicación de un taladro por no "
+"tener una herramienta asociada.\n"
+"Compruebe el GCode resultante."
+
+#: AppParsers/ParseFont.py:303
+msgid "Font not supported, try another one."
+msgstr "Fuente no compatible, prueba con otra."
+
+#: AppParsers/ParseGerber.py:425
+msgid "Gerber processing. Parsing"
+msgstr "Procesamiento de Gerber. Analizando"
+
+#: AppParsers/ParseGerber.py:425 AppParsers/ParseHPGL2.py:181
+msgid "lines"
+msgstr "líneas"
+
+#: AppParsers/ParseGerber.py:1001 AppParsers/ParseGerber.py:1101
+#: AppParsers/ParseHPGL2.py:274 AppParsers/ParseHPGL2.py:288
+#: AppParsers/ParseHPGL2.py:307 AppParsers/ParseHPGL2.py:331
+#: AppParsers/ParseHPGL2.py:366
+msgid "Coordinates missing, line ignored"
+msgstr "Coordenadas faltantes, línea ignorada"
+
+#: AppParsers/ParseGerber.py:1003 AppParsers/ParseGerber.py:1103
+msgid "GERBER file might be CORRUPT. Check the file !!!"
+msgstr "GERBER archivo podría ser Dañado. Revisa el archivo !!!"
+
+#: AppParsers/ParseGerber.py:1057
+msgid ""
+"Region does not have enough points. File will be processed but there are "
+"parser errors. Line number"
+msgstr ""
+"Región no tiene suficientes puntos. El archivo será procesado pero hay "
+"errores del analizador. Línea de números: %s"
+
+#: AppParsers/ParseGerber.py:1487 AppParsers/ParseHPGL2.py:401
+msgid "Gerber processing. Joining polygons"
+msgstr "Procesamiento de Gerber. Unir polígonos"
+
+#: AppParsers/ParseGerber.py:1504
+msgid "Gerber processing. Applying Gerber polarity."
+msgstr "Procesamiento de Gerber. Aplicando la polaridad de Gerber."
+
+#: AppParsers/ParseGerber.py:1564
+msgid "Gerber Line"
+msgstr "Linea Gerber"
+
+#: AppParsers/ParseGerber.py:1564
+msgid "Gerber Line Content"
+msgstr "Contenido de la línea Gerber"
+
+#: AppParsers/ParseGerber.py:1566
+msgid "Gerber Parser ERROR"
+msgstr "Analizador Gerber ERROR"
+
+#: AppParsers/ParseGerber.py:1956
+msgid "Gerber Scale done."
+msgstr "Escala de Gerber hecha."
+
+#: AppParsers/ParseGerber.py:2048
+msgid "Gerber Offset done."
+msgstr "Gerber Offset hecho."
+
+#: AppParsers/ParseGerber.py:2124
+msgid "Gerber Mirror done."
+msgstr "Espejo Gerber hecho."
+
+#: AppParsers/ParseGerber.py:2198
+msgid "Gerber Skew done."
+msgstr "Gerber Sesgo hecho."
+
+#: AppParsers/ParseGerber.py:2260
+msgid "Gerber Rotate done."
+msgstr "Rotar Gerber hecho."
+
+#: AppParsers/ParseGerber.py:2417
+msgid "Gerber Buffer done."
+msgstr "Gerber Buffer hecho."
+
+#: AppParsers/ParseHPGL2.py:181
+msgid "HPGL2 processing. Parsing"
+msgstr "Procesamiento de HPGL2 . Analizando"
+
+#: AppParsers/ParseHPGL2.py:413
+msgid "HPGL2 Line"
+msgstr "Línea HPGL2"
+
+#: AppParsers/ParseHPGL2.py:413
+msgid "HPGL2 Line Content"
+msgstr "Contenido de línea HPGL2"
+
+#: AppParsers/ParseHPGL2.py:414
+msgid "HPGL2 Parser ERROR"
+msgstr "Analizador HPGL2 ERROR"
+
+#: AppProcess.py:172
+msgid "processes running."
+msgstr "procesos en ejecución."
+
+#: AppTools/ToolAlignObjects.py:32
+msgid "Align Objects"
+msgstr "Alinear objetos"
+
+#: AppTools/ToolAlignObjects.py:61
+msgid "MOVING object"
+msgstr "Objeto en movimiento"
+
+#: AppTools/ToolAlignObjects.py:65
+msgid ""
+"Specify the type of object to be aligned.\n"
+"It can be of type: Gerber or Excellon.\n"
+"The selection here decide the type of objects that will be\n"
+"in the Object combobox."
+msgstr ""
+"Especifique el tipo de objeto a alinear.\n"
+"Puede ser de tipo: Gerber o Excellon.\n"
+"La selección aquí decide el tipo de objetos que serán\n"
+"en el cuadro combinado Objeto."
+
+#: AppTools/ToolAlignObjects.py:86
+msgid "Object to be aligned."
+msgstr "Objeto a alinear."
+
+#: AppTools/ToolAlignObjects.py:98
+msgid "TARGET object"
+msgstr "Objeto OBJETIVO"
+
+#: AppTools/ToolAlignObjects.py:100
+msgid ""
+"Specify the type of object to be aligned to.\n"
+"It can be of type: Gerber or Excellon.\n"
+"The selection here decide the type of objects that will be\n"
+"in the Object combobox."
+msgstr ""
+"Especifique el tipo de objeto a alinear.\n"
+"Puede ser de tipo: Gerber o Excellon.\n"
+"La selección aquí decide el tipo de objetos que serán\n"
+"en el cuadro combinado Objeto."
+
+#: AppTools/ToolAlignObjects.py:122
+msgid "Object to be aligned to. Aligner."
+msgstr "Objeto a alinear. Alineador."
+
+#: AppTools/ToolAlignObjects.py:135
+msgid "Alignment Type"
+msgstr "Tipo de alineación"
+
+#: AppTools/ToolAlignObjects.py:137
+msgid ""
+"The type of alignment can be:\n"
+"- Single Point -> it require a single point of sync, the action will be a "
+"translation\n"
+"- Dual Point -> it require two points of sync, the action will be "
+"translation followed by rotation"
+msgstr ""
+"El tipo de alineación puede ser:\n"
+"- Punto único -> requiere un único punto de sincronización, la acción será "
+"una traducción\n"
+"- Punto doble -> requiere dos puntos de sincronización, la acción será "
+"traslación seguida de rotación"
+
+#: AppTools/ToolAlignObjects.py:143
+msgid "Single Point"
+msgstr "Punto único"
+
+#: AppTools/ToolAlignObjects.py:144
+msgid "Dual Point"
+msgstr "Punto doble"
+
+#: AppTools/ToolAlignObjects.py:159
+msgid "Align Object"
+msgstr "Alinear objeto"
+
+#: AppTools/ToolAlignObjects.py:161
+msgid ""
+"Align the specified object to the aligner object.\n"
+"If only one point is used then it assumes translation.\n"
+"If tho points are used it assume translation and rotation."
+msgstr ""
+"Alinee el objeto especificado con el objeto alineador.\n"
+"Si solo se utiliza un punto, se supone que se traduce.\n"
+"Si se utilizan estos puntos, se supone traslación y rotación."
+
+#: AppTools/ToolAlignObjects.py:176 AppTools/ToolCalculators.py:246
+#: AppTools/ToolCalibration.py:683 AppTools/ToolCopperThieving.py:484
+#: AppTools/ToolCorners.py:173 AppTools/ToolCutOut.py:362
+#: AppTools/ToolDblSided.py:471 AppTools/ToolEtchCompensation.py:136
+#: AppTools/ToolExtractDrills.py:310 AppTools/ToolFiducials.py:318
+#: AppTools/ToolFilm.py:503 AppTools/ToolInvertGerber.py:140
+#: AppTools/ToolNCC.py:612 AppTools/ToolOptimal.py:237
+#: AppTools/ToolPaint.py:555 AppTools/ToolPanelize.py:280
+#: AppTools/ToolPunchGerber.py:339 AppTools/ToolQRCode.py:314
+#: AppTools/ToolRulesCheck.py:516 AppTools/ToolSolderPaste.py:473
+#: AppTools/ToolSub.py:176 AppTools/ToolTransform.py:398
+msgid "Reset Tool"
+msgstr "Restablecer la Herramienta"
+
+#: AppTools/ToolAlignObjects.py:178 AppTools/ToolCalculators.py:248
+#: AppTools/ToolCalibration.py:685 AppTools/ToolCopperThieving.py:486
+#: AppTools/ToolCorners.py:175 AppTools/ToolCutOut.py:364
+#: AppTools/ToolDblSided.py:473 AppTools/ToolEtchCompensation.py:138
+#: AppTools/ToolExtractDrills.py:312 AppTools/ToolFiducials.py:320
+#: AppTools/ToolFilm.py:505 AppTools/ToolInvertGerber.py:142
+#: AppTools/ToolNCC.py:614 AppTools/ToolOptimal.py:239
+#: AppTools/ToolPaint.py:557 AppTools/ToolPanelize.py:282
+#: AppTools/ToolPunchGerber.py:341 AppTools/ToolQRCode.py:316
+#: AppTools/ToolRulesCheck.py:518 AppTools/ToolSolderPaste.py:475
+#: AppTools/ToolSub.py:178 AppTools/ToolTransform.py:400
+msgid "Will reset the tool parameters."
+msgstr "Restablecerá los parámetros de la herramienta."
+
+#: AppTools/ToolAlignObjects.py:244
+msgid "Align Tool"
+msgstr "Herram. de Alineación"
+
+#: AppTools/ToolAlignObjects.py:289
+msgid "There is no aligned FlatCAM object selected..."
+msgstr "No hay ningún objeto FlatCAM alineado seleccionado ..."
+
+#: AppTools/ToolAlignObjects.py:299
+msgid "There is no aligner FlatCAM object selected..."
+msgstr "No hay ningún objeto FlatCAM alineador seleccionado ..."
+
+#: AppTools/ToolAlignObjects.py:325 AppTools/ToolAlignObjects.py:385
+msgid "First Point"
+msgstr "Primer Punto"
+
+#: AppTools/ToolAlignObjects.py:325 AppTools/ToolAlignObjects.py:400
+msgid "Click on the START point."
+msgstr "Haga clic en el punto de INICIO."
+
+#: AppTools/ToolAlignObjects.py:380 AppTools/ToolCalibration.py:920
+msgid "Cancelled by user request."
+msgstr "Cancelado por solicitud del usuario."
+
+#: AppTools/ToolAlignObjects.py:385 AppTools/ToolAlignObjects.py:407
+msgid "Click on the DESTINATION point."
+msgstr "Haga clic en el punto DESTINO."
+
+#: AppTools/ToolAlignObjects.py:385 AppTools/ToolAlignObjects.py:400
+#: AppTools/ToolAlignObjects.py:407
+msgid "Or right click to cancel."
+msgstr "O haga clic derecho para cancelar."
+
+#: AppTools/ToolAlignObjects.py:400 AppTools/ToolAlignObjects.py:407
+#: AppTools/ToolFiducials.py:111
+msgid "Second Point"
+msgstr "Segundo punto"
+
+#: AppTools/ToolCalculators.py:24
+msgid "Calculators"
+msgstr "Calculadoras"
+
+#: AppTools/ToolCalculators.py:26
+msgid "Units Calculator"
+msgstr "Calculadora de unidades"
+
+#: AppTools/ToolCalculators.py:70
+msgid "Here you enter the value to be converted from INCH to MM"
+msgstr "Aquí ingresa el valor a convertir de PULGADAS a MM"
+
+#: AppTools/ToolCalculators.py:75
+msgid "Here you enter the value to be converted from MM to INCH"
+msgstr "Aquí ingresa el valor a convertir de MM a PULGADA"
+
+#: AppTools/ToolCalculators.py:111
+msgid ""
+"This is the angle of the tip of the tool.\n"
+"It is specified by manufacturer."
+msgstr ""
+"Este es el ángulo de la punta de la herramienta.\n"
+"Está especificado por el fabricante."
+
+#: AppTools/ToolCalculators.py:120
+msgid ""
+"This is the depth to cut into the material.\n"
+"In the CNCJob is the CutZ parameter."
+msgstr ""
+"Esta es la profundidad para cortar el material.\n"
+"En el CNCJob se encuentra el parámetro CutZ."
+
+#: AppTools/ToolCalculators.py:128
+msgid ""
+"This is the tool diameter to be entered into\n"
+"FlatCAM Gerber section.\n"
+"In the CNCJob section it is called >Tool dia<."
+msgstr ""
+"Este es el diámetro de la herramienta a ingresar\n"
+"Sección FlatCAM Gerber.\n"
+"En la sección CNCJob se llama >diá. de herra.<."
+
+#: AppTools/ToolCalculators.py:139 AppTools/ToolCalculators.py:235
+msgid "Calculate"
+msgstr "Calcular"
+
+#: AppTools/ToolCalculators.py:142
+msgid ""
+"Calculate either the Cut Z or the effective tool diameter,\n"
+" depending on which is desired and which is known. "
+msgstr ""
+"Calcule el corte Z o el diámetro efectivo de la herramienta,\n"
+"dependiendo de cuál se desee y cuál se conozca. "
+
+#: AppTools/ToolCalculators.py:205
+msgid "Current Value"
+msgstr "Valor actual"
+
+#: AppTools/ToolCalculators.py:212
+msgid ""
+"This is the current intensity value\n"
+"to be set on the Power Supply. In Amps."
+msgstr ""
+"Este es el valor de intensidad actual\n"
+"para configurar en la fuente de alimentación. En amperios."
+
+#: AppTools/ToolCalculators.py:216
+msgid "Time"
+msgstr "Hora"
+
+#: AppTools/ToolCalculators.py:223
+msgid ""
+"This is the calculated time required for the procedure.\n"
+"In minutes."
+msgstr ""
+"Este es el tiempo calculado requerido para el procedimiento.\n"
+"En minutos."
+
+#: AppTools/ToolCalculators.py:238
+msgid ""
+"Calculate the current intensity value and the procedure time,\n"
+"depending on the parameters above"
+msgstr ""
+"Calcule el valor de intensidad actual y el tiempo del procedimiento,\n"
+"dependiendo de los parámetros anteriores"
+
+#: AppTools/ToolCalculators.py:299
+msgid "Calc. Tool"
+msgstr "Calc. Herramienta"
+
+#: AppTools/ToolCalibration.py:67
+msgid "GCode Parameters"
+msgstr "Parámetros GCode"
+
+#: AppTools/ToolCalibration.py:69
+msgid "Parameters used when creating the GCode in this tool."
+msgstr "Parámetros utilizados al crear el GCode en esta herramienta."
+
+#: AppTools/ToolCalibration.py:173
+msgid "STEP 1: Acquire Calibration Points"
+msgstr "PASO 1: Adquiera puntos de calibración"
+
+#: AppTools/ToolCalibration.py:175
+msgid ""
+"Pick four points by clicking on canvas.\n"
+"Those four points should be in the four\n"
+"(as much as possible) corners of the object."
+msgstr ""
+"Elija cuatro puntos haciendo clic en el lienzo.\n"
+"Esos cuatro puntos deberían estar en los cuatro\n"
+"(tanto como sea posible) esquinas del objeto."
+
+#: AppTools/ToolCalibration.py:193 AppTools/ToolFilm.py:71
+#: AppTools/ToolImage.py:54 AppTools/ToolPanelize.py:77
+#: AppTools/ToolProperties.py:177
+msgid "Object Type"
+msgstr "Tipo de objeto"
+
+#: AppTools/ToolCalibration.py:210
+msgid "Source object selection"
+msgstr "Selección de objeto de origen"
+
+#: AppTools/ToolCalibration.py:212
+msgid "FlatCAM Object to be used as a source for reference points."
+msgstr "Objeto FlatCAM que se utilizará como fuente de puntos de referencia."
+
+#: AppTools/ToolCalibration.py:218
+msgid "Calibration Points"
+msgstr "Puntos de calibración"
+
+#: AppTools/ToolCalibration.py:220
+msgid ""
+"Contain the expected calibration points and the\n"
+"ones measured."
+msgstr ""
+"Contiene los puntos de calibración esperados y el\n"
+"los medidos."
+
+#: AppTools/ToolCalibration.py:235 AppTools/ToolSub.py:76
+#: AppTools/ToolSub.py:131
+msgid "Target"
+msgstr "Objetivo"
+
+#: AppTools/ToolCalibration.py:236
+msgid "Found Delta"
+msgstr "Delta encontrado"
+
+#: AppTools/ToolCalibration.py:248
+msgid "Bot Left X"
+msgstr "Abajo a la izquierda X"
+
+#: AppTools/ToolCalibration.py:257
+msgid "Bot Left Y"
+msgstr "Abajo a la izquierda Y"
+
+#: AppTools/ToolCalibration.py:275
+msgid "Bot Right X"
+msgstr "Abajo a la derecho X"
+
+#: AppTools/ToolCalibration.py:285
+msgid "Bot Right Y"
+msgstr "Abajo a la derecho Y"
+
+#: AppTools/ToolCalibration.py:300
+msgid "Top Left X"
+msgstr "Arriba a la izquierda X"
+
+#: AppTools/ToolCalibration.py:309
+msgid "Top Left Y"
+msgstr "Arriba a la izquierda Y"
+
+#: AppTools/ToolCalibration.py:324
+msgid "Top Right X"
+msgstr "Arriba a la derecho X"
+
+#: AppTools/ToolCalibration.py:334
+msgid "Top Right Y"
+msgstr "Arriba a la derecho Y"
+
+#: AppTools/ToolCalibration.py:367
+msgid "Get Points"
+msgstr "Obtener puntos"
+
+#: AppTools/ToolCalibration.py:369
+msgid ""
+"Pick four points by clicking on canvas if the source choice\n"
+"is 'free' or inside the object geometry if the source is 'object'.\n"
+"Those four points should be in the four squares of\n"
+"the object."
+msgstr ""
+"Elija cuatro puntos haciendo clic en el lienzo si la opción de origen\n"
+"es 'libre' o está dentro de la geometría del objeto si la fuente es "
+"'objeto'.\n"
+"Esos cuatro puntos deben estar en los cuatro cuadrados de\n"
+"el objeto."
+
+#: AppTools/ToolCalibration.py:390
+msgid "STEP 2: Verification GCode"
+msgstr "PASO 2: Verificación GCode"
+
+#: AppTools/ToolCalibration.py:392 AppTools/ToolCalibration.py:405
+msgid ""
+"Generate GCode file to locate and align the PCB by using\n"
+"the four points acquired above.\n"
+"The points sequence is:\n"
+"- first point -> set the origin\n"
+"- second point -> alignment point. Can be: top-left or bottom-right.\n"
+"- third point -> check point. Can be: top-left or bottom-right.\n"
+"- forth point -> final verification point. Just for evaluation."
+msgstr ""
+"Genere un archivo GCode para localizar y alinear la PCB utilizando\n"
+"Los cuatro puntos adquiridos anteriormente.\n"
+"La secuencia de puntos es:\n"
+"- primer punto -> establecer el origen\n"
+"- segundo punto -> punto de alineación. Puede ser: arriba a la izquierda o "
+"abajo a la derecha.\n"
+"- tercer punto -> punto de control. Puede ser: arriba a la izquierda o abajo "
+"a la derecha.\n"
+"- cuarto punto -> punto de verificación final. Solo para evaluación."
+
+#: AppTools/ToolCalibration.py:403 AppTools/ToolSolderPaste.py:348
+msgid "Generate GCode"
+msgstr "Generar GCode"
+
+#: AppTools/ToolCalibration.py:429
+msgid "STEP 3: Adjustments"
+msgstr "PASO 3: Ajustes"
+
+#: AppTools/ToolCalibration.py:431 AppTools/ToolCalibration.py:440
+msgid ""
+"Calculate Scale and Skew factors based on the differences (delta)\n"
+"found when checking the PCB pattern. The differences must be filled\n"
+"in the fields Found (Delta)."
+msgstr ""
+"Calcular factores de escala y sesgo basados en las diferencias (delta)\n"
+"encontrado al verificar el patrón de PCB. Las diferencias deben llenarse\n"
+"en los campos encontrados (Delta)."
+
+#: AppTools/ToolCalibration.py:438
+msgid "Calculate Factors"
+msgstr "Calcular factores"
+
+#: AppTools/ToolCalibration.py:460
+msgid "STEP 4: Adjusted GCode"
+msgstr "PASO 4: Código GC ajustado"
+
+#: AppTools/ToolCalibration.py:462
+msgid ""
+"Generate verification GCode file adjusted with\n"
+"the factors above."
+msgstr ""
+"Generar un archivo GCode de verificación ajustado con\n"
+"Los factores anteriores."
+
+#: AppTools/ToolCalibration.py:467
+msgid "Scale Factor X:"
+msgstr "Factor de escala X:"
+
+#: AppTools/ToolCalibration.py:479
+msgid "Scale Factor Y:"
+msgstr "Factor de escala Y:"
+
+#: AppTools/ToolCalibration.py:491
+msgid "Apply Scale Factors"
+msgstr "Aplicar factores de escala"
+
+#: AppTools/ToolCalibration.py:493
+msgid "Apply Scale factors on the calibration points."
+msgstr "Aplicar factores de escala en los puntos de calibración."
+
+#: AppTools/ToolCalibration.py:503
+msgid "Skew Angle X:"
+msgstr "Ángulo de Sesgar X:"
+
+#: AppTools/ToolCalibration.py:516
+msgid "Skew Angle Y:"
+msgstr "Ángulo de Sesgar Y:"
+
+#: AppTools/ToolCalibration.py:529
+msgid "Apply Skew Factors"
+msgstr "Aplicar factores Sesgados"
+
+#: AppTools/ToolCalibration.py:531
+msgid "Apply Skew factors on the calibration points."
+msgstr "Aplicar factores de inclinación en los puntos de calibración."
+
+#: AppTools/ToolCalibration.py:600
+msgid "Generate Adjusted GCode"
+msgstr "Generar código GC ajustado"
+
+#: AppTools/ToolCalibration.py:602
+msgid ""
+"Generate verification GCode file adjusted with\n"
+"the factors set above.\n"
+"The GCode parameters can be readjusted\n"
+"before clicking this button."
+msgstr ""
+"Generar un archivo GCode de verificación ajustado con\n"
+"Los factores establecidos anteriormente.\n"
+"Los parámetros GCode se pueden reajustar\n"
+"antes de hacer clic en este botón."
+
+#: AppTools/ToolCalibration.py:623
+msgid "STEP 5: Calibrate FlatCAM Objects"
+msgstr "PASO 5: Calibrar objetos FlatCAM"
+
+#: AppTools/ToolCalibration.py:625
+msgid ""
+"Adjust the FlatCAM objects\n"
+"with the factors determined and verified above."
+msgstr ""
+"Ajuste los objetos FlatCAM\n"
+"con los factores determinados y verificados anteriormente."
+
+#: AppTools/ToolCalibration.py:637
+msgid "Adjusted object type"
+msgstr "Tipo de objeto ajustado"
+
+#: AppTools/ToolCalibration.py:638
+msgid "Type of the FlatCAM Object to be adjusted."
+msgstr "Tipo del objeto FlatCAM que se ajustará."
+
+#: AppTools/ToolCalibration.py:651
+msgid "Adjusted object selection"
+msgstr "Selección de objeto ajustada"
+
+#: AppTools/ToolCalibration.py:653
+msgid "The FlatCAM Object to be adjusted."
+msgstr "El objeto FlatCAM a ajustar."
+
+#: AppTools/ToolCalibration.py:660
+msgid "Calibrate"
+msgstr "Calibrar"
+
+#: AppTools/ToolCalibration.py:662
+msgid ""
+"Adjust (scale and/or skew) the objects\n"
+"with the factors determined above."
+msgstr ""
+"Ajustar (escalar y / o sesgar) los objetos\n"
+"con los factores determinados anteriormente."
+
+#: AppTools/ToolCalibration.py:770 AppTools/ToolCalibration.py:771
+msgid "Origin"
+msgstr "Origen"
+
+#: AppTools/ToolCalibration.py:800
+msgid "Tool initialized"
+msgstr "Herramienta inicializada"
+
+#: AppTools/ToolCalibration.py:838
+msgid "There is no source FlatCAM object selected..."
+msgstr "No hay ningún objeto FlatCAM de origen seleccionado ..."
+
+#: AppTools/ToolCalibration.py:859
+msgid "Get First calibration point. Bottom Left..."
+msgstr "Obtenga el primer punto de calibración. Abajo a la izquierda ..."
+
+#: AppTools/ToolCalibration.py:926
+msgid "Get Second calibration point. Bottom Right (Top Left)..."
+msgstr ""
+"Obtenga el segundo punto de calibración. Abajo a la derecha (arriba a la "
+"izquierda) ..."
+
+#: AppTools/ToolCalibration.py:930
+msgid "Get Third calibration point. Top Left (Bottom Right)..."
+msgstr ""
+"Obtenga el tercer punto de calibración. Arriba a la izquierda, abajo a la "
+"derecha)..."
+
+#: AppTools/ToolCalibration.py:934
+msgid "Get Forth calibration point. Top Right..."
+msgstr "Obtenga el punto de calibración Forth. Parte superior derecha..."
+
+#: AppTools/ToolCalibration.py:938
+msgid "Done. All four points have been acquired."
+msgstr "Hecho. Los cuatro puntos han sido adquiridos."
+
+#: AppTools/ToolCalibration.py:969
+msgid "Verification GCode for FlatCAM Calibration Tool"
+msgstr "Verificación GCode para la herramienta de calibración FlatCAM"
+
+#: AppTools/ToolCalibration.py:981 AppTools/ToolCalibration.py:1067
+msgid "Gcode Viewer"
+msgstr "Visor de Gcode"
+
+#: AppTools/ToolCalibration.py:997
+msgid "Cancelled. Four points are needed for GCode generation."
+msgstr "Cancelado. Se necesitan cuatro puntos para la generación de GCode."
+
+#: AppTools/ToolCalibration.py:1253 AppTools/ToolCalibration.py:1349
+msgid "There is no FlatCAM object selected..."
+msgstr "No hay ningún objeto FlatCAM seleccionado ..."
+
+#: AppTools/ToolCopperThieving.py:76 AppTools/ToolFiducials.py:261
+msgid "Gerber Object to which will be added a copper thieving."
+msgstr "Gerber Objeto al que se agregará un Copper Thieving."
+
+#: AppTools/ToolCopperThieving.py:98
+msgid ""
+"This set the distance between the copper thieving components\n"
+"(the polygon fill may be split in multiple polygons)\n"
+"and the copper traces in the Gerber file."
+msgstr ""
+"Esto establece la distancia entre los componentes de Copper Thieving\n"
+"(el relleno de polígono puede dividirse en múltiples polígonos)\n"
+"y las rastros de cobre en el archivo Gerber."
+
+#: AppTools/ToolCopperThieving.py:131
+msgid ""
+"- 'Itself' - the copper thieving extent is based on the object extent.\n"
+"- 'Area Selection' - left mouse click to start selection of the area to be "
+"filled.\n"
+"- 'Reference Object' - will do copper thieving within the area specified by "
+"another object."
+msgstr ""
+"- 'Sí mismo': la extensión de Copper Thieving se basa en la extensión del "
+"objeto.\n"
+"- 'Selección de área': haga clic con el botón izquierdo del mouse para "
+"iniciar la selección del área a rellenar.\n"
+"- 'Objeto de referencia': 'Copper Thieving' dentro del área especificada por "
+"otro objeto."
+
+#: AppTools/ToolCopperThieving.py:138 AppTools/ToolNCC.py:552
+#: AppTools/ToolPaint.py:495
+msgid "Ref. Type"
+msgstr "Tipo de Ref"
+
+#: AppTools/ToolCopperThieving.py:140
+msgid ""
+"The type of FlatCAM object to be used as copper thieving reference.\n"
+"It can be Gerber, Excellon or Geometry."
+msgstr ""
+"El tipo de objeto FlatCAM que se utilizará como referencia de 'Copper "
+"Thieving'.\n"
+"Puede ser Gerber, Excellon o Geometry."
+
+#: AppTools/ToolCopperThieving.py:149 AppTools/ToolNCC.py:562
+#: AppTools/ToolPaint.py:505
+msgid "Ref. Object"
+msgstr "Objeto de Ref"
+
+#: AppTools/ToolCopperThieving.py:151 AppTools/ToolNCC.py:564
+#: AppTools/ToolPaint.py:507
+msgid "The FlatCAM object to be used as non copper clearing reference."
+msgstr ""
+"El objeto FlatCAM que se utilizará como referencia de compensación sin cobre."
+
+#: AppTools/ToolCopperThieving.py:327
+msgid "Insert Copper thieving"
+msgstr "Insertar Copper thieving"
+
+#: AppTools/ToolCopperThieving.py:329
+msgid ""
+"Will add a polygon (may be split in multiple parts)\n"
+"that will surround the actual Gerber traces at a certain distance."
+msgstr ""
+"Agregará un polígono (puede dividirse en varias partes)\n"
+"eso rodeará las huellas reales de Gerber a cierta distancia."
+
+#: AppTools/ToolCopperThieving.py:388
+msgid "Insert Robber Bar"
+msgstr "Insertar Robber Bar"
+
+#: AppTools/ToolCopperThieving.py:390
+msgid ""
+"Will add a polygon with a defined thickness\n"
+"that will surround the actual Gerber object\n"
+"at a certain distance.\n"
+"Required when doing holes pattern plating."
+msgstr ""
+"Agregará un polígono con un grosor definido\n"
+"que rodeará el objeto real de Gerber\n"
+"a cierta distancia.\n"
+"Se requiere cuando se hace un patrón de agujeros."
+
+#: AppTools/ToolCopperThieving.py:414
+msgid "Select Soldermask object"
+msgstr "Seleccionar objeto Soldermask"
+
+#: AppTools/ToolCopperThieving.py:416
+msgid ""
+"Gerber Object with the soldermask.\n"
+"It will be used as a base for\n"
+"the pattern plating mask."
+msgstr ""
+"Objeto Gerber con la máscara de soldadura.\n"
+"Se utilizará como base para\n"
+"El patrón de la máscara de recubrimiento."
+
+#: AppTools/ToolCopperThieving.py:445
+msgid "Plated area"
+msgstr "Área chapada"
+
+#: AppTools/ToolCopperThieving.py:447
+msgid ""
+"The area to be plated by pattern plating.\n"
+"Basically is made from the openings in the plating mask.\n"
+"\n"
+"<> - the calculated area is actually a bit larger\n"
+"due of the fact that the soldermask openings are by design\n"
+"a bit larger than the copper pads, and this area is\n"
+"calculated from the soldermask openings."
+msgstr ""
+"El área a ser chapada por patrón de chapado.\n"
+"Básicamente está hecho de las aberturas en la máscara de recubrimiento.\n"
+"\n"
+"<> - el área calculada es en realidad un poco más grande\n"
+"Debido al hecho de que las aberturas de la máscara de soldadura son por "
+"diseño\n"
+"un poco más grande que las almohadillas de cobre, y esta área es\n"
+"calculado a partir de las aberturas de la máscara de soldadura."
+
+#: AppTools/ToolCopperThieving.py:458
+msgid "mm"
+msgstr "mm"
+
+#: AppTools/ToolCopperThieving.py:460
+msgid "in"
+msgstr "in"
+
+#: AppTools/ToolCopperThieving.py:467
+msgid "Generate pattern plating mask"
+msgstr "Generar máscara de recubrimiento de patrón"
+
+#: AppTools/ToolCopperThieving.py:469
+msgid ""
+"Will add to the soldermask gerber geometry\n"
+"the geometries of the copper thieving and/or\n"
+"the robber bar if those were generated."
+msgstr ""
+"Agregará a la máscara de soldadura la geometría gerber\n"
+"Las geometrías de Copper Thieving y / o\n"
+"la Robber Bar si esos fueron generados."
+
+#: AppTools/ToolCopperThieving.py:625 AppTools/ToolCopperThieving.py:650
+msgid "Lines Grid works only for 'itself' reference ..."
+msgstr "La cuadrícula de líneas funciona solo para referencia 'sí mismo' ..."
+
+#: AppTools/ToolCopperThieving.py:636
+msgid "Solid fill selected."
+msgstr "Relleno sólido seleccionado."
+
+#: AppTools/ToolCopperThieving.py:641
+msgid "Dots grid fill selected."
+msgstr "Relleno de cuadrícula de puntos seleccionado."
+
+#: AppTools/ToolCopperThieving.py:646
+msgid "Squares grid fill selected."
+msgstr "Rellenar cuadrícula de cuadrados seleccionados."
+
+#: AppTools/ToolCopperThieving.py:667 AppTools/ToolCopperThieving.py:749
+#: AppTools/ToolCopperThieving.py:1351 AppTools/ToolCorners.py:251
+#: AppTools/ToolDblSided.py:657 AppTools/ToolExtractDrills.py:436
+#: AppTools/ToolFiducials.py:467 AppTools/ToolFiducials.py:744
+#: AppTools/ToolOptimal.py:342 AppTools/ToolPunchGerber.py:512
+#: AppTools/ToolQRCode.py:426
+msgid "There is no Gerber object loaded ..."
+msgstr "No hay ningún objeto Gerber cargado ..."
+
+#: AppTools/ToolCopperThieving.py:680 AppTools/ToolCopperThieving.py:1279
+msgid "Append geometry"
+msgstr "Añadir geometría"
+
+#: AppTools/ToolCopperThieving.py:724 AppTools/ToolCopperThieving.py:1312
+#: AppTools/ToolCopperThieving.py:1465
+msgid "Append source file"
+msgstr "Agregar archivo fuente"
+
+#: AppTools/ToolCopperThieving.py:732 AppTools/ToolCopperThieving.py:1320
+msgid "Copper Thieving Tool done."
+msgstr "Herramienta Copper Thieving hecha."
+
+#: AppTools/ToolCopperThieving.py:759 AppTools/ToolCopperThieving.py:792
+#: AppTools/ToolCutOut.py:519 AppTools/ToolCutOut.py:724
+#: AppTools/ToolEtchCompensation.py:208 AppTools/ToolInvertGerber.py:208
+#: AppTools/ToolNCC.py:1599 AppTools/ToolNCC.py:1641 AppTools/ToolNCC.py:1670
+#: AppTools/ToolPaint.py:1473 AppTools/ToolPanelize.py:423
+#: AppTools/ToolPanelize.py:437 AppTools/ToolSub.py:294 AppTools/ToolSub.py:307
+#: AppTools/ToolSub.py:498 AppTools/ToolSub.py:513
+#: tclCommands/TclCommandCopperClear.py:97 tclCommands/TclCommandPaint.py:99
+msgid "Could not retrieve object"
+msgstr "No se pudo recuperar el objeto"
+
+#: AppTools/ToolCopperThieving.py:769 AppTools/ToolNCC.py:1649 Common.py:200
+msgid "Click the start point of the area."
+msgstr "Haga clic en el punto de inicio del área."
+
+#: AppTools/ToolCopperThieving.py:820
+msgid "Click the end point of the filling area."
+msgstr "Haga clic en el punto final del área de relleno."
+
+#: AppTools/ToolCopperThieving.py:826 AppTools/ToolNCC.py:1711
+#: AppTools/ToolNCC.py:1763 AppTools/ToolPaint.py:1605
+#: AppTools/ToolPaint.py:1656 Common.py:256 Common.py:356
+msgid "Zone added. Click to start adding next zone or right click to finish."
+msgstr ""
+"Zona agregada. Haga clic para comenzar a agregar la siguiente zona o haga "
+"clic con el botón derecho para finalizar."
+
+#: AppTools/ToolCopperThieving.py:948 AppTools/ToolCopperThieving.py:952
+#: AppTools/ToolCopperThieving.py:1013
+msgid "Thieving"
+msgstr "Ladrón"
+
+#: AppTools/ToolCopperThieving.py:959
+msgid "Copper Thieving Tool started. Reading parameters."
+msgstr "Herramienta de Copper Thieving iniciada. Parámetros de lectura."
+
+#: AppTools/ToolCopperThieving.py:984
+msgid "Copper Thieving Tool. Preparing isolation polygons."
+msgstr "Herramienta Copper Thieving. Preparación de polígonos de aislamiento."
+
+#: AppTools/ToolCopperThieving.py:1029
+msgid "Copper Thieving Tool. Preparing areas to fill with copper."
+msgstr ""
+"Herramienta Copper Thieving. Preparación de áreas para rellenar con cobre."
+
+#: AppTools/ToolCopperThieving.py:1040 AppTools/ToolOptimal.py:349
+#: AppTools/ToolPanelize.py:810 AppTools/ToolRulesCheck.py:1127
+msgid "Working..."
+msgstr "Trabajando..."
+
+#: AppTools/ToolCopperThieving.py:1067
+msgid "Geometry not supported for bounding box"
+msgstr "Geometría no admitida para cuadro delimitador"
+
+#: AppTools/ToolCopperThieving.py:1073 AppTools/ToolNCC.py:1942
+#: AppTools/ToolNCC.py:1997 AppTools/ToolNCC.py:3038 AppTools/ToolPaint.py:3385
+msgid "No object available."
+msgstr "No hay objeto disponible."
+
+#: AppTools/ToolCopperThieving.py:1110 AppTools/ToolNCC.py:1967
+#: AppTools/ToolNCC.py:2020 AppTools/ToolNCC.py:3080
+msgid "The reference object type is not supported."
+msgstr "El tipo de objeto de referencia no es compatible."
+
+#: AppTools/ToolCopperThieving.py:1115
+msgid "Copper Thieving Tool. Appending new geometry and buffering."
+msgstr ""
+"Herramienta Coppe Thieving. Anexar nueva geometría y almacenamiento en búfer."
+
+#: AppTools/ToolCopperThieving.py:1131
+msgid "Create geometry"
+msgstr "Crear geometría"
+
+#: AppTools/ToolCopperThieving.py:1331 AppTools/ToolCopperThieving.py:1335
+msgid "P-Plating Mask"
+msgstr "Mascarilla P"
+
+#: AppTools/ToolCopperThieving.py:1357
+msgid "Append PP-M geometry"
+msgstr "Añadir geometría de máscara de recubrimiento P"
+
+#: AppTools/ToolCopperThieving.py:1483
+msgid "Generating Pattern Plating Mask done."
+msgstr "Generando patrón de recubrimiento de máscara hecho."
+
+#: AppTools/ToolCopperThieving.py:1555
+msgid "Copper Thieving Tool exit."
+msgstr "Salida de herramienta de Copper Thieving."
+
+#: AppTools/ToolCorners.py:57
+#, fuzzy
+#| msgid "Gerber Object to which will be added a copper thieving."
+msgid "The Gerber object that to which will be added corner markers."
+msgstr "Gerber Objeto al que se agregará un Copper Thieving."
+
+#: AppTools/ToolCorners.py:73
+#, fuzzy
+#| msgid "Location"
+msgid "Locations"
+msgstr "Ubicación"
+
+#: AppTools/ToolCorners.py:75
+msgid "Locations where to place corner markers."
+msgstr ""
+
+#: AppTools/ToolCorners.py:92 AppTools/ToolFiducials.py:99
+msgid "Top Right"
+msgstr "Arriba a la derecha"
+
+#: AppTools/ToolCorners.py:158
+#, fuzzy
+#| msgid "Add area"
+msgid "Add Marker"
+msgstr "Agregar áreaAñadir Pista"
+
+#: AppTools/ToolCorners.py:160
+msgid "Will add corner markers to the selected Gerber file."
+msgstr ""
+
+#: AppTools/ToolCorners.py:225
+#, fuzzy
+#| msgid "QRCode Tool"
+msgid "Corners Tool"
+msgstr "Herramienta QRCode"
+
+#: AppTools/ToolCorners.py:288
+msgid "Please select at least a location"
+msgstr ""
+
+#: AppTools/ToolCorners.py:423
+#, fuzzy
+#| msgid "Copper Thieving Tool exit."
+msgid "Corners Tool exit."
+msgstr "Salida de herramienta de Copper Thieving."
+
+#: AppTools/ToolCutOut.py:41
+msgid "Cutout PCB"
+msgstr "PCB de corte"
+
+#: AppTools/ToolCutOut.py:69 AppTools/ToolPanelize.py:53
+msgid "Source Object"
+msgstr "Objeto fuente"
+
+#: AppTools/ToolCutOut.py:70
+msgid "Object to be cutout"
+msgstr "Objeto a recortar"
+
+#: AppTools/ToolCutOut.py:75
+msgid "Kind"
+msgstr "Tipo"
+
+#: AppTools/ToolCutOut.py:97
+msgid ""
+"Specify the type of object to be cutout.\n"
+"It can be of type: Gerber or Geometry.\n"
+"What is selected here will dictate the kind\n"
+"of objects that will populate the 'Object' combobox."
+msgstr ""
+"Especifique el tipo de objeto a recortar.\n"
+"Puede ser de tipo: Gerber o Geometría.\n"
+"Lo que se seleccione aquí dictará el tipo\n"
+"de objetos que llenarán el cuadro combinado 'Objeto'."
+
+#: AppTools/ToolCutOut.py:121
+msgid "Tool Parameters"
+msgstr "Parámetros de Herram."
+
+#: AppTools/ToolCutOut.py:238
+msgid "A. Automatic Bridge Gaps"
+msgstr "A. Brechas automáticas del puente"
+
+#: AppTools/ToolCutOut.py:240
+msgid "This section handle creation of automatic bridge gaps."
+msgstr "Esta sección maneja la creación de espacios de puente automáticos."
+
+#: AppTools/ToolCutOut.py:247
+msgid ""
+"Number of gaps used for the Automatic cutout.\n"
+"There can be maximum 8 bridges/gaps.\n"
+"The choices are:\n"
+"- None - no gaps\n"
+"- lr - left + right\n"
+"- tb - top + bottom\n"
+"- 4 - left + right +top + bottom\n"
+"- 2lr - 2*left + 2*right\n"
+"- 2tb - 2*top + 2*bottom\n"
+"- 8 - 2*left + 2*right +2*top + 2*bottom"
+msgstr ""
+"Número de huecos utilizados para el recorte automático.\n"
+"Puede haber un máximo de 8 puentes / huecos.\n"
+"Las opciones son:\n"
+"- Ninguno - sin espacios\n"
+"- lr - izquierda + derecha\n"
+"- tb - arriba + abajo\n"
+"- 4 - izquierda + derecha + arriba + abajo\n"
+"- 2lr - 2 * izquierda + 2 * derecha\n"
+"- 2tb - 2 * arriba + 2 * abajo\n"
+"- 8 - 2 * izquierda + 2 * derecha + 2 * arriba + 2 * abajo"
+
+#: AppTools/ToolCutOut.py:269
+msgid "Generate Freeform Geometry"
+msgstr "Generar geometría de forma libre"
+
+#: AppTools/ToolCutOut.py:271
+msgid ""
+"Cutout the selected object.\n"
+"The cutout shape can be of any shape.\n"
+"Useful when the PCB has a non-rectangular shape."
+msgstr ""
+"Recorta el objeto seleccionado.\n"
+"La forma recortada puede ser de cualquier forma.\n"
+"Útil cuando la PCB tiene una forma no rectangular."
+
+#: AppTools/ToolCutOut.py:283
+msgid "Generate Rectangular Geometry"
+msgstr "Generar geometría rectangular"
+
+#: AppTools/ToolCutOut.py:285
+msgid ""
+"Cutout the selected object.\n"
+"The resulting cutout shape is\n"
+"always a rectangle shape and it will be\n"
+"the bounding box of the Object."
+msgstr ""
+"Recorta el objeto seleccionado.\n"
+"La forma de corte resultante es\n"
+"siempre una forma rectangular y será\n"
+"El cuadro delimitador del objeto."
+
+#: AppTools/ToolCutOut.py:304
+msgid "B. Manual Bridge Gaps"
+msgstr "B. Brechas manuales del puente"
+
+#: AppTools/ToolCutOut.py:306
+msgid ""
+"This section handle creation of manual bridge gaps.\n"
+"This is done by mouse clicking on the perimeter of the\n"
+"Geometry object that is used as a cutout object. "
+msgstr ""
+"Esta sección maneja la creación de espacios de puente manuales.\n"
+"Esto se hace haciendo clic con el mouse en el perímetro del\n"
+"Objeto de geometría que se utiliza como objeto recortado. "
+
+#: AppTools/ToolCutOut.py:321
+msgid "Geometry object used to create the manual cutout."
+msgstr "Objeto de geometría utilizado para crear el recorte manual."
+
+#: AppTools/ToolCutOut.py:328
+msgid "Generate Manual Geometry"
+msgstr "Generar geometría manual"
+
+#: AppTools/ToolCutOut.py:330
+msgid ""
+"If the object to be cutout is a Gerber\n"
+"first create a Geometry that surrounds it,\n"
+"to be used as the cutout, if one doesn't exist yet.\n"
+"Select the source Gerber file in the top object combobox."
+msgstr ""
+"Si el objeto a recortar es un Gerber\n"
+"primero crea una Geometría que lo rodea,\n"
+"para ser utilizado como recorte, si aún no existe.\n"
+"Seleccione el archivo fuente de Gerber en el cuadro combinado de objeto "
+"superior."
+
+#: AppTools/ToolCutOut.py:343
+msgid "Manual Add Bridge Gaps"
+msgstr "Agregar huecos de puente manuales"
+
+#: AppTools/ToolCutOut.py:345
+msgid ""
+"Use the left mouse button (LMB) click\n"
+"to create a bridge gap to separate the PCB from\n"
+"the surrounding material.\n"
+"The LMB click has to be done on the perimeter of\n"
+"the Geometry object used as a cutout geometry."
+msgstr ""
+"Haga clic con el botón izquierdo del mouse (LMB)\n"
+"para crear un espacio de puente para separar la PCB de\n"
+"El material circundante.\n"
+"El clic LMB debe hacerse en el perímetro de\n"
+"El objeto Geometry utilizado como geometría de recorte."
+
+#: AppTools/ToolCutOut.py:524
+msgid ""
+"There is no object selected for Cutout.\n"
+"Select one and try again."
+msgstr ""
+"No hay ningún objeto seleccionado para Recorte.\n"
+"Seleccione uno e intente nuevamente."
+
+#: AppTools/ToolCutOut.py:530 AppTools/ToolCutOut.py:733
+#: AppTools/ToolCutOut.py:914 AppTools/ToolCutOut.py:996
+#: tclCommands/TclCommandGeoCutout.py:184
+msgid "Tool Diameter is zero value. Change it to a positive real number."
+msgstr "Diá. de herramienta es valor cero. Cámbielo a un número real positivo."
+
+#: AppTools/ToolCutOut.py:544 AppTools/ToolCutOut.py:748
+msgid "Number of gaps value is missing. Add it and retry."
+msgstr "Falta el valor del número de huecos. Añádelo y vuelve a intentarlo."
+
+#: AppTools/ToolCutOut.py:549 AppTools/ToolCutOut.py:752
+msgid ""
+"Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. "
+"Fill in a correct value and retry. "
+msgstr ""
+"El valor de las brechas solo puede ser uno de: 'Ninguno', 'lr', 'tb', '2lr', "
+"'2tb', 4 u 8. Complete un valor correcto y vuelva a intentarlo. "
+
+#: AppTools/ToolCutOut.py:554 AppTools/ToolCutOut.py:758
+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 ""
+"La operación de recorte no se puede hacer en una Geometría multi-geo.\n"
+"Opcionalmente, esta Geometría Multi-Geo se puede convertir a Geometría "
+"Single-Geo,\n"
+"y después de eso realiza el recorte."
+
+#: AppTools/ToolCutOut.py:706 AppTools/ToolCutOut.py:903
+msgid "Any form CutOut operation finished."
+msgstr "Cualquier forma de operación de corte finalizada."
+
+#: AppTools/ToolCutOut.py:728 AppTools/ToolEtchCompensation.py:214
+#: AppTools/ToolInvertGerber.py:214 AppTools/ToolNCC.py:1603
+#: AppTools/ToolPaint.py:1396 AppTools/ToolPanelize.py:428
+#: tclCommands/TclCommandBbox.py:71 tclCommands/TclCommandNregions.py:71
+msgid "Object not found"
+msgstr "Objeto no encontrado"
+
+#: AppTools/ToolCutOut.py:872
+msgid "Rectangular cutout with negative margin is not possible."
+msgstr "El corte rectangular con margen negativo no es posible."
+
+#: AppTools/ToolCutOut.py:908
+msgid ""
+"Click on the selected geometry object perimeter to create a bridge gap ..."
+msgstr ""
+"Haga clic en el perímetro del objeto de geometría seleccionado para crear un "
+"espacio de puente ..."
+
+#: AppTools/ToolCutOut.py:925 AppTools/ToolCutOut.py:951
+msgid "Could not retrieve Geometry object"
+msgstr "No se pudo recuperar el objeto Geometry"
+
+#: AppTools/ToolCutOut.py:956
+msgid "Geometry object for manual cutout not found"
+msgstr "Objeto de geometría para corte manual no encontrado"
+
+#: AppTools/ToolCutOut.py:966
+msgid "Added manual Bridge Gap."
+msgstr "Se agregó brecha de puente manual."
+
+#: AppTools/ToolCutOut.py:978
+msgid "Could not retrieve Gerber object"
+msgstr "No se pudo recuperar el objeto Gerber"
+
+#: AppTools/ToolCutOut.py:983
+msgid ""
+"There is no Gerber object selected for Cutout.\n"
+"Select one and try again."
+msgstr ""
+"No hay ningún objeto Gerber seleccionado para Recorte.\n"
+"Seleccione uno e intente nuevamente."
+
+#: AppTools/ToolCutOut.py:989
+msgid ""
+"The selected object has to be of Gerber type.\n"
+"Select a Gerber file and try again."
+msgstr ""
+"El objeto seleccionado debe ser del tipo Gerber.\n"
+"Seleccione un archivo Gerber e intente nuevamente."
+
+#: AppTools/ToolCutOut.py:1024
+msgid "Geometry not supported for cutout"
+msgstr "Geometría no admitida para recorte"
+
+#: AppTools/ToolCutOut.py:1099
+msgid "Making manual bridge gap..."
+msgstr "Hacer un puente manual ..."
+
+#: AppTools/ToolDblSided.py:26
+msgid "2-Sided PCB"
+msgstr "PCB a 2 caras"
+
+#: AppTools/ToolDblSided.py:52
+msgid "Mirror Operation"
+msgstr "Operación Espejo"
+
+#: AppTools/ToolDblSided.py:53
+msgid "Objects to be mirrored"
+msgstr "Objetos a ser reflejados"
+
+#: AppTools/ToolDblSided.py:65
+msgid "Gerber to be mirrored"
+msgstr "Gerber para ser reflejado"
+
+#: AppTools/ToolDblSided.py:69 AppTools/ToolDblSided.py:97
+#: AppTools/ToolDblSided.py:127
+msgid ""
+"Mirrors (flips) the specified object around \n"
+"the specified axis. Does not create a new \n"
+"object, but modifies it."
+msgstr ""
+"Refleja (voltea) el objeto especificado alrededor\n"
+"El eje especificado. No crea un nuevo\n"
+"objeto, pero lo modifica."
+
+#: AppTools/ToolDblSided.py:93
+msgid "Excellon Object to be mirrored."
+msgstr "Excellon Objeto a ser reflejado."
+
+#: AppTools/ToolDblSided.py:122
+msgid "Geometry Obj to be mirrored."
+msgstr "Obj de geometría para ser reflejado."
+
+#: AppTools/ToolDblSided.py:158
+msgid "Mirror Parameters"
+msgstr "Parámetros de Espejo"
+
+#: AppTools/ToolDblSided.py:159
+msgid "Parameters for the mirror operation"
+msgstr "Parámetros para la operación Reflejar"
+
+#: AppTools/ToolDblSided.py:164
+msgid "Mirror Axis"
+msgstr "Eje espejo"
+
+#: AppTools/ToolDblSided.py:175
+msgid ""
+"The coordinates used as reference for the mirror operation.\n"
+"Can be:\n"
+"- Point -> a set of coordinates (x,y) around which the object is mirrored\n"
+"- Box -> a set of coordinates (x, y) obtained from the center of the\n"
+"bounding box of another object selected below"
+msgstr ""
+"Las coordenadas utilizadas como referencia para la operación espejo.\n"
+"Puede ser:\n"
+"- Punto -> un conjunto de coordenadas (x, y) alrededor del cual se refleja "
+"el objeto\n"
+"- Cuadro -> un conjunto de coordenadas (x, y) obtenidas del centro de la\n"
+"cuadro delimitador de otro objeto seleccionado a continuación"
+
+#: AppTools/ToolDblSided.py:189
+msgid "Point coordinates"
+msgstr "Coordenadas de puntos"
+
+#: AppTools/ToolDblSided.py:194
+msgid ""
+"Add the coordinates in format (x, y) through which the mirroring "
+"axis\n"
+" selected in 'MIRROR AXIS' pass.\n"
+"The (x, y) coordinates are captured by pressing SHIFT key\n"
+"and left mouse button click on canvas or you can enter the coordinates "
+"manually."
+msgstr ""
+"Agregue las coordenadas en formato (x, y) a través del cual el eje "
+"de reflejo\n"
+"seleccionado en el pase 'EJE DE ESPEJO'.\n"
+"Las coordenadas (x, y) se capturan presionando la tecla MAYÚS\n"
+"y haga clic con el botón izquierdo del mouse en el lienzo o puede ingresar "
+"las coordenadas manualmente."
+
+#: AppTools/ToolDblSided.py:218
+msgid ""
+"It can be of type: Gerber or Excellon or Geometry.\n"
+"The coordinates of the center of the bounding box are used\n"
+"as reference for mirror operation."
+msgstr ""
+"Puede ser de tipo: Gerber o Excellon o Geometry.\n"
+"Se utilizan las coordenadas del centro del cuadro delimitador.\n"
+"como referencia para la operación del espejo."
+
+#: AppTools/ToolDblSided.py:252
+msgid "Bounds Values"
+msgstr "Valores de límites"
+
+#: AppTools/ToolDblSided.py:254
+msgid ""
+"Select on canvas the object(s)\n"
+"for which to calculate bounds values."
+msgstr ""
+"Seleccione en lienzo los objetos\n"
+"para el cual calcular valores de límites."
+
+#: AppTools/ToolDblSided.py:264
+msgid "X min"
+msgstr "X min"
+
+#: AppTools/ToolDblSided.py:266 AppTools/ToolDblSided.py:280
+msgid "Minimum location."
+msgstr "Ubicacion minima."
+
+#: AppTools/ToolDblSided.py:278
+msgid "Y min"
+msgstr "Y min"
+
+#: AppTools/ToolDblSided.py:292
+msgid "X max"
+msgstr "X max"
+
+#: AppTools/ToolDblSided.py:294 AppTools/ToolDblSided.py:308
+msgid "Maximum location."
+msgstr "Máxima ubicación."
+
+#: AppTools/ToolDblSided.py:306
+msgid "Y max"
+msgstr "Y max"
+
+#: AppTools/ToolDblSided.py:317
+msgid "Center point coordinates"
+msgstr "Coords del punto central"
+
+#: AppTools/ToolDblSided.py:319
+msgid "Centroid"
+msgstr "Centroide"
+
+#: AppTools/ToolDblSided.py:321
+msgid ""
+"The center point location for the rectangular\n"
+"bounding shape. Centroid. Format is (x, y)."
+msgstr ""
+"La ubicación del punto central para el rectangular\n"
+"forma delimitadora. Centroide. El formato es (x, y)."
+
+#: AppTools/ToolDblSided.py:330
+msgid "Calculate Bounds Values"
+msgstr "Calcular valores de límites"
+
+#: AppTools/ToolDblSided.py:332
+msgid ""
+"Calculate the enveloping rectangular shape coordinates,\n"
+"for the selection of objects.\n"
+"The envelope shape is parallel with the X, Y axis."
+msgstr ""
+"Calcule las coordenadas de forma rectangular envolvente,\n"
+"para la selección de objetos.\n"
+"La forma de la envoltura es paralela al eje X, Y."
+
+#: AppTools/ToolDblSided.py:352
+msgid "PCB Alignment"
+msgstr "Alineación de PCB"
+
+#: AppTools/ToolDblSided.py:354 AppTools/ToolDblSided.py:456
+msgid ""
+"Creates an Excellon Object containing the\n"
+"specified alignment holes and their mirror\n"
+"images."
+msgstr ""
+"Crea un objeto Excellon que contiene el\n"
+"agujeros de alineación especificados y su espejo\n"
+"imágenes."
+
+#: AppTools/ToolDblSided.py:361
+msgid "Drill Diameter"
+msgstr "Diá del Taladro"
+
+#: AppTools/ToolDblSided.py:390 AppTools/ToolDblSided.py:397
+msgid ""
+"The reference point used to create the second alignment drill\n"
+"from the first alignment drill, by doing mirror.\n"
+"It can be modified in the Mirror Parameters -> Reference section"
+msgstr ""
+"El punto de referencia utilizado para crear el segundo ejercicio de "
+"alineación.\n"
+"desde el primer ejercicio de alineación, haciendo espejo.\n"
+"Se puede modificar en la sección Parámetros Espejo -> Referencia"
+
+#: AppTools/ToolDblSided.py:410
+msgid "Alignment Drill Coordinates"
+msgstr "Taladro de alineación Coords"
+
+#: AppTools/ToolDblSided.py:412
+msgid ""
+"Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For "
+"each set of (x, y) coordinates\n"
+"entered here, a pair of drills will be created:\n"
+"\n"
+"- one drill at the coordinates from the field\n"
+"- one drill in mirror position over the axis selected above in the 'Align "
+"Axis'."
+msgstr ""
+"Agujeros de alineación (x1, y1), (x2, y2), ... en un lado del eje del "
+"espejo. Para cada conjunto de coordenadas (x, y)\n"
+"ingresado aquí, se crearán un par de simulacros:\n"
+"\n"
+"- un ejercicio en las coordenadas del campo\n"
+"- un taladro en posición de espejo sobre el eje seleccionado arriba en "
+"'Alinear eje'."
+
+#: AppTools/ToolDblSided.py:420
+msgid "Drill coordinates"
+msgstr "Coords de Perforación"
+
+#: AppTools/ToolDblSided.py:427
+msgid ""
+"Add alignment drill holes coordinates in the format: (x1, y1), (x2, "
+"y2), ... \n"
+"on one side of the alignment axis.\n"
+"\n"
+"The coordinates set can be obtained:\n"
+"- press SHIFT key and left mouse clicking on canvas. Then click Add.\n"
+"- press SHIFT key and left mouse clicking on canvas. Then Ctrl+V in the "
+"field.\n"
+"- press SHIFT key and left mouse clicking on canvas. Then RMB click in the "
+"field and click Paste.\n"
+"- by entering the coords manually in the format: (x1, y1), (x2, y2), ..."
+msgstr ""
+"Agregue coordenadas de taladros de alineación en el formato: (x1, y1), (x2, "
+"y2), ...\n"
+"en un lado del eje de alineación.\n"
+"\n"
+"El conjunto de coordenadas se puede obtener:\n"
+"- presione la tecla SHIFT y haga clic con el botón izquierdo del mouse en el "
+"lienzo. Luego haga clic en Agregar.\n"
+"- presione la tecla SHIFT y haga clic con el botón izquierdo en el lienzo "
+"Luego Ctrl + V en el campo.\n"
+"- presione la tecla SHIFT y haga clic con el botón izquierdo del mouse en el "
+"lienzo. Luego, haga clic en RMB en el campo y haga clic en Pegar.\n"
+"- ingresando las coordenadas manualmente en el formato: (x1, y1), (x2, "
+"y2), ..."
+
+#: AppTools/ToolDblSided.py:442
+msgid "Delete Last"
+msgstr "Eliminar último"
+
+#: AppTools/ToolDblSided.py:444
+msgid "Delete the last coordinates tuple in the list."
+msgstr "Eliminar la última tupla de coordenadas en la lista."
+
+#: AppTools/ToolDblSided.py:454
+msgid "Create Excellon Object"
+msgstr "Crear objeto Excellon"
+
+#: AppTools/ToolDblSided.py:541
+msgid "2-Sided Tool"
+msgstr "Herra. de 2 lados"
+
+#: AppTools/ToolDblSided.py:581
+msgid ""
+"'Point' reference is selected and 'Point' coordinates are missing. Add them "
+"and retry."
+msgstr ""
+"Se selecciona la referencia 'Punto' y faltan las coordenadas 'Punto'. "
+"Añádelos y vuelve a intentarlo."
+
+#: AppTools/ToolDblSided.py:600
+msgid "There is no Box reference object loaded. Load one and retry."
+msgstr ""
+"No hay ningún objeto de referencia de cuadro cargado. Cargue uno y vuelva a "
+"intentarlo."
+
+#: AppTools/ToolDblSided.py:612
+msgid "No value or wrong format in Drill Dia entry. Add it and retry."
+msgstr ""
+"Sin valor o formato incorrecto en la entrada de diá. de perforación. Añádelo "
+"y vuelve a intentarlo."
+
+#: AppTools/ToolDblSided.py:623
+msgid "There are no Alignment Drill Coordinates to use. Add them and retry."
+msgstr ""
+"No hay coordenadas de taladro de alineación para usar. Añádelos y vuelve a "
+"intentarlo."
+
+#: AppTools/ToolDblSided.py:648
+msgid "Excellon object with alignment drills created..."
+msgstr "Objeto Excellon con taladros de alineación creados ..."
+
+#: AppTools/ToolDblSided.py:661 AppTools/ToolDblSided.py:704
+#: AppTools/ToolDblSided.py:748
+msgid "Only Gerber, Excellon and Geometry objects can be mirrored."
+msgstr "Solo los objetos Gerber, Excellon y Geometry se pueden reflejar."
+
+#: AppTools/ToolDblSided.py:671 AppTools/ToolDblSided.py:715
+msgid ""
+"There are no Point coordinates in the Point field. Add coords and try "
+"again ..."
+msgstr ""
+"No hay coordenadas de punto en el campo Punto. Agregue coords e intente "
+"nuevamente ..."
+
+#: AppTools/ToolDblSided.py:681 AppTools/ToolDblSided.py:725
+#: AppTools/ToolDblSided.py:762
+msgid "There is no Box object loaded ..."
+msgstr "No hay ningún objeto caja cargado ..."
+
+#: AppTools/ToolDblSided.py:691 AppTools/ToolDblSided.py:735
+#: AppTools/ToolDblSided.py:772
+msgid "was mirrored"
+msgstr "fue reflejado"
+
+#: AppTools/ToolDblSided.py:700 AppTools/ToolPunchGerber.py:533
+msgid "There is no Excellon object loaded ..."
+msgstr "No hay ningún objeto Excellon cargado ..."
+
+#: AppTools/ToolDblSided.py:744
+msgid "There is no Geometry object loaded ..."
+msgstr "No hay ningún objeto de geometría cargado ..."
+
+#: AppTools/ToolDblSided.py:818 App_Main.py:4322 App_Main.py:4477
+msgid "Failed. No object(s) selected..."
+msgstr "Ha fallado. Ningún objeto (s) seleccionado ..."
+
+#: AppTools/ToolDistance.py:57 AppTools/ToolDistanceMin.py:50
+msgid "Those are the units in which the distance is measured."
+msgstr "Esas son las unidades en las que se mide la distancia."
+
+#: AppTools/ToolDistance.py:58 AppTools/ToolDistanceMin.py:51
+msgid "METRIC (mm)"
+msgstr "MÉTRICO (mm)"
+
+#: AppTools/ToolDistance.py:58 AppTools/ToolDistanceMin.py:51
+msgid "INCH (in)"
+msgstr "PULGADA (en)"
+
+#: AppTools/ToolDistance.py:64
+msgid "Snap to center"
+msgstr "Ajustar al centro"
+
+#: AppTools/ToolDistance.py:66
+msgid ""
+"Mouse cursor will snap to the center of the pad/drill\n"
+"when it is hovering over the geometry of the pad/drill."
+msgstr ""
+"El cursor del mouse se ajustará al centro de la almohadilla / taladro\n"
+"cuando se cierne sobre la geometría de la almohadilla / taladro."
+
+#: AppTools/ToolDistance.py:76
+msgid "Start Coords"
+msgstr "Iniciar coordenadas"
+
+#: AppTools/ToolDistance.py:77 AppTools/ToolDistance.py:82
+msgid "This is measuring Start point coordinates."
+msgstr "Esto mide las coordenadas del punto de inicio."
+
+#: AppTools/ToolDistance.py:87
+msgid "Stop Coords"
+msgstr "Detener coordenadas"
+
+#: AppTools/ToolDistance.py:88 AppTools/ToolDistance.py:93
+msgid "This is the measuring Stop point coordinates."
+msgstr "Estas son las coordenadas del punto de parada de medición."
+
+#: AppTools/ToolDistance.py:98 AppTools/ToolDistanceMin.py:62
+msgid "Dx"
+msgstr "Dx"
+
+#: AppTools/ToolDistance.py:99 AppTools/ToolDistance.py:104
+#: AppTools/ToolDistanceMin.py:63 AppTools/ToolDistanceMin.py:92
+msgid "This is the distance measured over the X axis."
+msgstr "Esta es la distancia medida sobre el eje X."
+
+#: AppTools/ToolDistance.py:109 AppTools/ToolDistanceMin.py:65
+msgid "Dy"
+msgstr "Dy"
+
+#: AppTools/ToolDistance.py:110 AppTools/ToolDistance.py:115
+#: AppTools/ToolDistanceMin.py:66 AppTools/ToolDistanceMin.py:97
+msgid "This is the distance measured over the Y axis."
+msgstr "Esta es la distancia medida sobre el eje Y."
+
+#: AppTools/ToolDistance.py:121 AppTools/ToolDistance.py:126
+#: AppTools/ToolDistanceMin.py:69 AppTools/ToolDistanceMin.py:102
+msgid "This is orientation angle of the measuring line."
+msgstr "Este es el ángulo de orientación de la línea de medición."
+
+#: AppTools/ToolDistance.py:131 AppTools/ToolDistanceMin.py:71
+msgid "DISTANCE"
+msgstr "DISTANCIA"
+
+#: AppTools/ToolDistance.py:132 AppTools/ToolDistance.py:137
+msgid "This is the point to point Euclidian distance."
+msgstr "Este es el punto a punto de la distancia euclidiana."
+
+#: AppTools/ToolDistance.py:142 AppTools/ToolDistance.py:339
+#: AppTools/ToolDistanceMin.py:114
+msgid "Measure"
+msgstr "Medida"
+
+#: AppTools/ToolDistance.py:274
+msgid "Working"
+msgstr "Trabajando"
+
+#: AppTools/ToolDistance.py:279
+msgid "MEASURING: Click on the Start point ..."
+msgstr "MEDICIÓN: haga clic en el punto de inicio ..."
+
+#: AppTools/ToolDistance.py:389
+msgid "Distance Tool finished."
+msgstr "Herramienta de Distancia terminada."
+
+#: AppTools/ToolDistance.py:461
+msgid "Pads overlapped. Aborting."
+msgstr "Almohadillas superpuestas. Abortar."
+
+#: AppTools/ToolDistance.py:489
+#, fuzzy
+#| msgid "Distance Tool finished."
+msgid "Distance Tool cancelled."
+msgstr "Herramienta de Distancia terminada."
+
+#: AppTools/ToolDistance.py:494
+msgid "MEASURING: Click on the Destination point ..."
+msgstr "MEDICIÓN: haga clic en el punto de destino ..."
+
+#: AppTools/ToolDistance.py:503 AppTools/ToolDistanceMin.py:284
+msgid "MEASURING"
+msgstr "MEDICIÓN"
+
+#: AppTools/ToolDistance.py:504 AppTools/ToolDistanceMin.py:285
+msgid "Result"
+msgstr "Resultado"
+
+#: AppTools/ToolDistanceMin.py:31 AppTools/ToolDistanceMin.py:143
+msgid "Minimum Distance Tool"
+msgstr "Herramienta de Distancia Mínima"
+
+#: AppTools/ToolDistanceMin.py:54
+msgid "First object point"
+msgstr "Primer punto"
+
+#: AppTools/ToolDistanceMin.py:55 AppTools/ToolDistanceMin.py:80
+msgid ""
+"This is first object point coordinates.\n"
+"This is the start point for measuring distance."
+msgstr ""
+"Este es el primer objeto de coordenadas de puntos.\n"
+"Este es el punto de partida para medir la distancia."
+
+#: AppTools/ToolDistanceMin.py:58
+msgid "Second object point"
+msgstr "Segundo punto"
+
+#: AppTools/ToolDistanceMin.py:59 AppTools/ToolDistanceMin.py:86
+msgid ""
+"This is second object point coordinates.\n"
+"This is the end point for measuring distance."
+msgstr ""
+"Este es el segundo objeto de coordenadas de puntos.\n"
+"Este es el punto final para medir la distancia."
+
+#: AppTools/ToolDistanceMin.py:72 AppTools/ToolDistanceMin.py:107
+msgid "This is the point to point Euclidean distance."
+msgstr "Este es el punto a punto de la distancia euclidiana."
+
+#: AppTools/ToolDistanceMin.py:74
+msgid "Half Point"
+msgstr "Punto Medio"
+
+#: AppTools/ToolDistanceMin.py:75 AppTools/ToolDistanceMin.py:112
+msgid "This is the middle point of the point to point Euclidean distance."
+msgstr "Este es el punto medio de la distancia euclidiana punto a punto."
+
+#: AppTools/ToolDistanceMin.py:117
+msgid "Jump to Half Point"
+msgstr "Saltar a Medio Punto"
+
+#: AppTools/ToolDistanceMin.py:154
+msgid ""
+"Select two objects and no more, to measure the distance between them ..."
+msgstr ""
+"Seleccione dos objetos y no más, para medir la distancia entre ellos ..."
+
+#: AppTools/ToolDistanceMin.py:195 AppTools/ToolDistanceMin.py:216
+#: AppTools/ToolDistanceMin.py:225 AppTools/ToolDistanceMin.py:246
+msgid "Select two objects and no more. Currently the selection has objects: "
+msgstr ""
+"Seleccione dos objetos y no más. Actualmente la selección tiene objetos: "
+
+#: AppTools/ToolDistanceMin.py:293
+msgid "Objects intersects or touch at"
+msgstr "Los objetos se cruzan o tocan"
+
+#: AppTools/ToolDistanceMin.py:299
+msgid "Jumped to the half point between the two selected objects"
+msgstr "Saltó al punto medio entre los dos objetos seleccionados"
+
+#: AppTools/ToolEtchCompensation.py:74 AppTools/ToolInvertGerber.py:74
+msgid "Gerber object that will be inverted."
+msgstr "Objeto de Gerber que se invertirá."
+
+#: AppTools/ToolEtchCompensation.py:83 AppTools/ToolInvertGerber.py:83
+msgid "Parameters for this tool"
+msgstr "Parámetros para esta herram."
+
+#: AppTools/ToolEtchCompensation.py:88
+#, fuzzy
+#| msgid "Thickness"
+msgid "Copper Thickness"
+msgstr "Espesor"
+
+#: AppTools/ToolEtchCompensation.py:90
+#, fuzzy
+#| msgid ""
+#| "How thick the copper growth is intended to be.\n"
+#| "In microns."
+msgid ""
+"The thickness of the copper foil.\n"
+"In microns [um]."
+msgstr ""
+"Qué tan grueso pretende ser el crecimiento del cobre.\n"
+"En micras."
+
+#: AppTools/ToolEtchCompensation.py:101
+#, fuzzy
+#| msgid "Location"
+msgid "Ratio"
+msgstr "Ubicación"
+
+#: AppTools/ToolEtchCompensation.py:103
+msgid ""
+"The ratio of lateral etch versus depth etch.\n"
+"Can be:\n"
+"- custom -> the user will enter a custom value\n"
+"- preselection -> value which depends on a selection of etchants"
+msgstr ""
+
+#: AppTools/ToolEtchCompensation.py:109
+#, fuzzy
+#| msgid "Selection"
+msgid "PreSelection"
+msgstr "Selección"
+
+#: AppTools/ToolEtchCompensation.py:121
+msgid "Compensate"
+msgstr ""
+
+#: AppTools/ToolEtchCompensation.py:123
+msgid ""
+"Will increase the copper features thickness to compensate the lateral etch."
+msgstr ""
+
+#: AppTools/ToolEtchCompensation.py:181 AppTools/ToolInvertGerber.py:184
+msgid "Invert Tool"
+msgstr "Herram. de Inversión"
+
+#: AppTools/ToolExtractDrills.py:29 AppTools/ToolExtractDrills.py:295
+msgid "Extract Drills"
+msgstr "Extraer Taladros"
+
+#: AppTools/ToolExtractDrills.py:62
+msgid "Gerber from which to extract drill holes"
+msgstr "Gerber de donde extraer agujeros de perforación"
+
+#: AppTools/ToolExtractDrills.py:297
+msgid "Extract drills from a given Gerber file."
+msgstr "Extraer simulacros de un archivo Gerber dado."
+
+#: AppTools/ToolExtractDrills.py:478 AppTools/ToolExtractDrills.py:563
+#: AppTools/ToolExtractDrills.py:648
+msgid "No drills extracted. Try different parameters."
+msgstr "No se extraen taladros. Prueba diferentes parámetros."
+
+#: AppTools/ToolFiducials.py:56
+msgid "Fiducials Coordinates"
+msgstr "Coordenadas Fiduciales"
+
+#: AppTools/ToolFiducials.py:58
+msgid ""
+"A table with the fiducial points coordinates,\n"
+"in the format (x, y)."
+msgstr ""
+"Una tabla con las coordenadas de los puntos fiduciales,\n"
+"en el formato (x, y)."
+
+#: AppTools/ToolFiducials.py:191
+msgid ""
+"- 'Auto' - automatic placement of fiducials in the corners of the bounding "
+"box.\n"
+" - 'Manual' - manual placement of fiducials."
+msgstr ""
+"- 'Auto' - colocación automática de fiduciales en las esquinas del cuadro "
+"delimitador.\n"
+" - 'Manual' - colocación manual de fiduciales."
+
+#: AppTools/ToolFiducials.py:237
+msgid "Thickness of the line that makes the fiducial."
+msgstr ""
+
+#: AppTools/ToolFiducials.py:259
+msgid "Copper Gerber"
+msgstr "Cobre Gerber"
+
+#: AppTools/ToolFiducials.py:268
+msgid "Add Fiducial"
+msgstr "Añadir Fiducial"
+
+#: AppTools/ToolFiducials.py:270
+msgid "Will add a polygon on the copper layer to serve as fiducial."
+msgstr "Agregará un polígono en la capa de cobre para servir como fiducial."
+
+#: AppTools/ToolFiducials.py:286
+msgid "Soldermask Gerber"
+msgstr "Soldermask Gerber"
+
+#: AppTools/ToolFiducials.py:288
+msgid "The Soldermask Gerber object."
+msgstr "El objeto Soldermask Gerber."
+
+#: AppTools/ToolFiducials.py:300
+msgid "Add Soldermask Opening"
+msgstr "Agregar apertura de Soldermask"
+
+#: AppTools/ToolFiducials.py:302
+msgid ""
+"Will add a polygon on the soldermask layer\n"
+"to serve as fiducial opening.\n"
+"The diameter is always double of the diameter\n"
+"for the copper fiducial."
+msgstr ""
+"Agregará un polígono en la capa de máscara de soldadura\n"
+"para servir como apertura fiducial.\n"
+"El diámetro siempre es el doble del diámetro.\n"
+"para el cobre fiducial."
+
+#: AppTools/ToolFiducials.py:517
+msgid "Click to add first Fiducial. Bottom Left..."
+msgstr "Haga clic para agregar primero Fiducial. Abajo a la izquierda ..."
+
+#: AppTools/ToolFiducials.py:781
+msgid "Click to add the last fiducial. Top Right..."
+msgstr "Haga clic para agregar el último fiducial. Parte superior derecha..."
+
+#: AppTools/ToolFiducials.py:786
+msgid "Click to add the second fiducial. Top Left or Bottom Right..."
+msgstr ""
+"Haga clic para agregar el segundo fiducial. Arriba a la izquierda o abajo a "
+"la derecha ..."
+
+#: AppTools/ToolFiducials.py:789 AppTools/ToolFiducials.py:798
+msgid "Done. All fiducials have been added."
+msgstr "Hecho. Se han agregado todos los fiduciales."
+
+#: AppTools/ToolFiducials.py:875
+msgid "Fiducials Tool exit."
+msgstr "Herram. Fiduciales de salida."
+
+#: AppTools/ToolFilm.py:42
+msgid "Film PCB"
+msgstr "Película de PCB"
+
+#: AppTools/ToolFilm.py:73
+msgid ""
+"Specify the type of object for which to create the film.\n"
+"The object can be of type: Gerber or Geometry.\n"
+"The selection here decide the type of objects that will be\n"
+"in the Film Object combobox."
+msgstr ""
+"Especifique el tipo de objeto para el cual crear la película.\n"
+"El objeto puede ser de tipo: Gerber o Geometry.\n"
+"La selección aquí decide el tipo de objetos que serán\n"
+"en el cuadro combinado de objeto de película."
+
+#: AppTools/ToolFilm.py:96
+msgid ""
+"Specify the type of object to be used as an container for\n"
+"film creation. It can be: Gerber or Geometry type.The selection here decide "
+"the type of objects that will be\n"
+"in the Box Object combobox."
+msgstr ""
+"Especifique el tipo de objeto que se utilizará como contenedor para\n"
+"creación cinematográfica. Puede ser: tipo Gerber o Geometría. La selección "
+"aquí decide el tipo de objetos que serán\n"
+"en el cuadro combinado Objeto de caja."
+
+#: AppTools/ToolFilm.py:256
+msgid "Film Parameters"
+msgstr "Parámetros de la película"
+
+#: AppTools/ToolFilm.py:317
+msgid "Punch drill holes"
+msgstr "Perforar Agujeros"
+
+#: AppTools/ToolFilm.py:318
+msgid ""
+"When checked the generated film will have holes in pads when\n"
+"the generated film is positive. This is done to help drilling,\n"
+"when done manually."
+msgstr ""
+"Cuando está marcada, la película generada tendrá agujeros en las "
+"almohadillas cuando\n"
+"La película generada es positiva. Esto se hace para ayudar a perforar,\n"
+"cuando se hace manualmente."
+
+#: AppTools/ToolFilm.py:336
+msgid "Source"
+msgstr "Fuente"
+
+#: AppTools/ToolFilm.py:338
+msgid ""
+"The punch hole source can be:\n"
+"- Excellon -> an Excellon holes center will serve as reference.\n"
+"- Pad Center -> will try to use the pads center as reference."
+msgstr ""
+"La fuente del orificio de perforación puede ser:\n"
+"- Excellon -> un centro de agujeros Excellon servirá como referencia.\n"
+"- Centro de almohadillas -> intentará usar el centro de almohadillas como "
+"referencia."
+
+#: AppTools/ToolFilm.py:343
+msgid "Pad center"
+msgstr "Centro de la almohadilla"
+
+#: AppTools/ToolFilm.py:348
+msgid "Excellon Obj"
+msgstr "Objeto Excellon"
+
+#: AppTools/ToolFilm.py:350
+msgid ""
+"Remove the geometry of Excellon from the Film to create the holes in pads."
+msgstr ""
+"Retire la geometría de Excellon de la película para crear los agujeros en "
+"las almohadillas."
+
+#: AppTools/ToolFilm.py:364
+msgid "Punch Size"
+msgstr "Tamaño de perforación"
+
+#: AppTools/ToolFilm.py:365
+msgid "The value here will control how big is the punch hole in the pads."
+msgstr ""
+"El valor aquí controlará qué tan grande es el agujero de perforación en los "
+"pads."
+
+#: AppTools/ToolFilm.py:485
+msgid "Save Film"
+msgstr "Guardar película"
+
+#: AppTools/ToolFilm.py:487
+msgid ""
+"Create a Film for the selected object, within\n"
+"the specified box. Does not create a new \n"
+" FlatCAM object, but directly save it in the\n"
+"selected format."
+msgstr ""
+"Crear una Película para el objeto seleccionado, dentro de\n"
+"El cuadro especificado. No crea un nuevo\n"
+"Objeto FlatCAM, pero guárdelo directamente en el\n"
+"formato seleccionado."
+
+#: AppTools/ToolFilm.py:649
+msgid ""
+"Using the Pad center does not work on Geometry objects. Only a Gerber object "
+"has pads."
+msgstr ""
+"El uso del centro de almohadilla no funciona en objetos de geometría. Solo "
+"un objeto Gerber tiene almohadillas."
+
+#: AppTools/ToolFilm.py:659
+msgid "No FlatCAM object selected. Load an object for Film and retry."
+msgstr ""
+"No se ha seleccionado ningún objeto FlatCAM. Cargue un objeto para Película "
+"y vuelva a intentarlo."
+
+#: AppTools/ToolFilm.py:666
+msgid "No FlatCAM object selected. Load an object for Box and retry."
+msgstr ""
+"No se ha seleccionado ningún objeto FlatCAM. Cargue un objeto para Box y "
+"vuelva a intentarlo."
+
+#: AppTools/ToolFilm.py:670
+msgid "No FlatCAM object selected."
+msgstr "No se ha seleccionado ningún objeto FlatCAM."
+
+#: AppTools/ToolFilm.py:681
+msgid "Generating Film ..."
+msgstr "Generando película ..."
+
+#: AppTools/ToolFilm.py:730 AppTools/ToolFilm.py:734
+msgid "Export positive film"
+msgstr "Exportar película positiva"
+
+#: AppTools/ToolFilm.py:767
+msgid ""
+"No Excellon object selected. Load an object for punching reference and retry."
+msgstr ""
+"No se seleccionó ningún objeto Excellon. Cargue un objeto para perforar la "
+"referencia y vuelva a intentarlo."
+
+#: AppTools/ToolFilm.py:791
+msgid ""
+" Could not generate punched hole film because the punch hole sizeis bigger "
+"than some of the apertures in the Gerber object."
+msgstr ""
+" No se pudo generar una película de agujero perforado porque el tamaño del "
+"agujero perforado es más grande que algunas de las aberturas en el objeto "
+"Gerber."
+
+#: AppTools/ToolFilm.py:803
+msgid ""
+"Could not generate punched hole film because the punch hole sizeis bigger "
+"than some of the apertures in the Gerber object."
+msgstr ""
+"No se pudo generar una película de agujero perforado porque el tamaño del "
+"agujero perforado es más grande que algunas de las aberturas en el objeto "
+"Gerber."
+
+#: AppTools/ToolFilm.py:821
+msgid ""
+"Could not generate punched hole film because the newly created object "
+"geometry is the same as the one in the source object geometry..."
+msgstr ""
+"No se pudo generar una película de agujero perforado porque la geometría del "
+"objeto recién creada es la misma que la de la geometría del objeto de "
+"origen ..."
+
+#: AppTools/ToolFilm.py:876 AppTools/ToolFilm.py:880
+msgid "Export negative film"
+msgstr "Exportar película negativa"
+
+#: AppTools/ToolFilm.py:941 AppTools/ToolFilm.py:1124
+#: AppTools/ToolPanelize.py:441
+msgid "No object Box. Using instead"
+msgstr "Sin objeto Caja. Usando en su lugar"
+
+#: AppTools/ToolFilm.py:1057 AppTools/ToolFilm.py:1237
+msgid "Film file exported to"
+msgstr "Archivo de película exportado a"
+
+#: AppTools/ToolFilm.py:1060 AppTools/ToolFilm.py:1240
+msgid "Generating Film ... Please wait."
+msgstr "Generando Película ... Por favor espere."
+
+#: AppTools/ToolImage.py:24
+msgid "Image as Object"
+msgstr "Imagen como objeto"
+
+#: AppTools/ToolImage.py:33
+msgid "Image to PCB"
+msgstr "Imagen a PCB"
+
+#: AppTools/ToolImage.py:56
+msgid ""
+"Specify the type of object to create from the image.\n"
+"It can be of type: Gerber or Geometry."
+msgstr ""
+"Especifique el tipo de objeto a crear a partir de la imagen.\n"
+"Puede ser de tipo: Gerber o Geometría."
+
+#: AppTools/ToolImage.py:65
+msgid "DPI value"
+msgstr "Valor de DPI"
+
+#: AppTools/ToolImage.py:66
+msgid "Specify a DPI value for the image."
+msgstr "Especifique un valor de DPI para la imagen."
+
+#: AppTools/ToolImage.py:72
+msgid "Level of detail"
+msgstr "Nivel de detalle"
+
+#: AppTools/ToolImage.py:81
+msgid "Image type"
+msgstr "Tipo de imagen"
+
+#: AppTools/ToolImage.py:83
+msgid ""
+"Choose a method for the image interpretation.\n"
+"B/W means a black & white image. Color means a colored image."
+msgstr ""
+"Elija un método para la interpretación de la imagen.\n"
+"B / N significa una imagen en blanco y negro. Color significa una imagen en "
+"color."
+
+#: AppTools/ToolImage.py:92 AppTools/ToolImage.py:107 AppTools/ToolImage.py:120
+#: AppTools/ToolImage.py:133
+msgid "Mask value"
+msgstr "Valor de la máscara"
+
+#: AppTools/ToolImage.py:94
+msgid ""
+"Mask for monochrome image.\n"
+"Takes values between [0 ... 255].\n"
+"Decides the level of details to include\n"
+"in the resulting geometry.\n"
+"0 means no detail and 255 means everything \n"
+"(which is totally black)."
+msgstr ""
+"Máscara para imagen monocroma.\n"
+"Toma valores entre [0 ... 255].\n"
+"Decide el nivel de detalles a incluir\n"
+"en la geometría resultante.\n"
+"0 significa sin detalles y 255 significa todo\n"
+"(que es totalmente negro)"
+
+#: AppTools/ToolImage.py:109
+msgid ""
+"Mask for RED color.\n"
+"Takes values between [0 ... 255].\n"
+"Decides the level of details to include\n"
+"in the resulting geometry."
+msgstr ""
+"Máscara para color ROJO.\n"
+"Toma valores entre [0 ... 255].\n"
+"Decide el nivel de detalles a incluir\n"
+"en la geometría resultante."
+
+#: AppTools/ToolImage.py:122
+msgid ""
+"Mask for GREEN color.\n"
+"Takes values between [0 ... 255].\n"
+"Decides the level of details to include\n"
+"in the resulting geometry."
+msgstr ""
+"Máscara para color VERDE.\n"
+"Toma valores entre [0 ... 255].\n"
+"Decide el nivel de detalles a incluir\n"
+"en la geometría resultante."
+
+#: AppTools/ToolImage.py:135
+msgid ""
+"Mask for BLUE color.\n"
+"Takes values between [0 ... 255].\n"
+"Decides the level of details to include\n"
+"in the resulting geometry."
+msgstr ""
+"Máscara para color AZUL.\n"
+"Toma valores entre [0 ... 255].\n"
+"Decide el nivel de detalles a incluir\n"
+"en la geometría resultante."
+
+#: AppTools/ToolImage.py:143
+msgid "Import image"
+msgstr "Importar imagen"
+
+#: AppTools/ToolImage.py:145
+msgid "Open a image of raster type and then import it in FlatCAM."
+msgstr "Abra una imagen de tipo ráster y luego impórtela en FlatCAM."
+
+#: AppTools/ToolImage.py:182
+msgid "Image Tool"
+msgstr "Herra. de imagen"
+
+#: AppTools/ToolImage.py:234 AppTools/ToolImage.py:237
+msgid "Import IMAGE"
+msgstr "Importar IMAGEN"
+
+#: AppTools/ToolImage.py:277 App_Main.py:8264 App_Main.py:8311
+msgid ""
+"Not supported type is picked as parameter. Only Geometry and Gerber are "
+"supported"
+msgstr ""
+"El tipo no soportado se elige como parámetro. Solo Geometría y Gerber son "
+"compatibles"
+
+#: AppTools/ToolImage.py:285
+msgid "Importing Image"
+msgstr "Importando imagen"
+
+#: AppTools/ToolImage.py:297 AppTools/ToolPDF.py:154 App_Main.py:8289
+#: App_Main.py:8335 App_Main.py:8399 App_Main.py:8466 App_Main.py:8532
+#: App_Main.py:8597 App_Main.py:8654
+msgid "Opened"
+msgstr "Abierto"
+
+#: AppTools/ToolInvertGerber.py:123
+msgid "Invert Gerber"
+msgstr "Invertir Gerber"
+
+#: AppTools/ToolInvertGerber.py:125
+msgid ""
+"Will invert the Gerber object: areas that have copper\n"
+"will be empty of copper and previous empty area will be\n"
+"filled with copper."
+msgstr ""
+"Invertirá el objeto Gerber: áreas que tienen cobre.\n"
+"estará vacío de cobre y el área vacía anterior será\n"
+"lleno de cobre."
+
+#: AppTools/ToolMove.py:102
+msgid "MOVE: Click on the Start point ..."
+msgstr "MOVER: haga clic en el punto de inicio ..."
+
+#: AppTools/ToolMove.py:113
+msgid "Cancelled. No object(s) to move."
+msgstr "Cancelado. Ningún objeto (s) para mover."
+
+#: AppTools/ToolMove.py:140
+msgid "MOVE: Click on the Destination point ..."
+msgstr "MOVER: haga clic en el punto de destino ..."
+
+#: AppTools/ToolMove.py:163
+msgid "Moving..."
+msgstr "Movedizo..."
+
+#: AppTools/ToolMove.py:166
+msgid "No object(s) selected."
+msgstr "No hay objetos seleccionados."
+
+#: AppTools/ToolMove.py:221
+msgid "Error when mouse left click."
+msgstr "Error al hacer clic con el botón izquierdo del mouse."
+
+#: AppTools/ToolNCC.py:42
+msgid "Non-Copper Clearing"
+msgstr "Compensación sin cobre"
+
+#: AppTools/ToolNCC.py:88
+msgid ""
+"Specify the type of object to be cleared of excess copper.\n"
+"It can be of type: Gerber or Geometry.\n"
+"What is selected here will dictate the kind\n"
+"of objects that will populate the 'Object' combobox."
+msgstr ""
+"Especifique el tipo de objeto que se eliminará del exceso de cobre.\n"
+"Puede ser de tipo: Gerber o Geometría.\n"
+"Lo que se seleccione aquí dictará el tipo\n"
+"de objetos que llenarán el cuadro combinado 'Objeto'."
+
+#: AppTools/ToolNCC.py:110
+msgid "Object to be cleared of excess copper."
+msgstr "Objeto a eliminar del exceso de cobre."
+
+#: AppTools/ToolNCC.py:122
+msgid ""
+"Tools pool from which the algorithm\n"
+"will pick the ones used for copper clearing."
+msgstr ""
+"Conjunto de herramientas desde el cual el algoritmo\n"
+"elegirá los utilizados para la limpieza de cobre."
+
+#: AppTools/ToolNCC.py:138
+msgid ""
+"This is the Tool Number.\n"
+"Non copper clearing will start with the tool with the biggest \n"
+"diameter, continuing until there are no more tools.\n"
+"Only tools that create NCC clearing geometry will still be present\n"
+"in the resulting geometry. This is because with some tools\n"
+"this function will not be able to create painting geometry."
+msgstr ""
+"Este es el número de herramienta.\n"
+"La limpieza sin cobre comenzará con la herramienta con la mayor\n"
+"diámetro, continuando hasta que no haya más herramientas.\n"
+"Solo las herramientas que crean geometría de limpieza NCC seguirán "
+"presentes\n"
+"en la geometría resultante. Esto es porque con algunas herramientas\n"
+"Esta función no podrá crear geometría de pintura."
+
+#: AppTools/ToolNCC.py:146
+msgid ""
+"Tool Diameter. It's value (in current FlatCAM units)\n"
+"is the cut width into the material."
+msgstr ""
+"Diámetro de herramienta. Su valor (en unidades actuales de FlatCAM)\n"
+"es el ancho de corte en el material."
+
+#: AppTools/ToolNCC.py:150
+msgid ""
+"The Tool Type (TT) can be:\n"
+"- Circular with 1 ... 4 teeth -> it is informative only. Being circular,\n"
+"the cut width in material is exactly the tool diameter.\n"
+"- Ball -> informative only and make reference to the Ball type endmill.\n"
+"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI "
+"form\n"
+"and enable two additional UI form fields in the resulting geometry: V-Tip "
+"Dia and\n"
+"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter "
+"such\n"
+"as the cut width into material will be equal with the value in the Tool "
+"Diameter\n"
+"column of this table.\n"
+"Choosing the 'V-Shape' Tool Type automatically will select the Operation "
+"Type\n"
+"in the resulting geometry as Isolation."
+msgstr ""
+"El tipo de herramienta (TT) puede ser:\n"
+"- Circular con 1 ... 4 dientes -> es solo informativo. Siendo circular,\n"
+"El ancho de corte en el material es exactamente el diámetro de la "
+"herramienta.\n"
+"- Bola -> solo informativo y hacer referencia a la fresa de extremo de "
+"bola.\n"
+"- Forma V -> deshabilitará el parámetro de corte Z en la forma de interfaz "
+"de usuario de geometría resultante\n"
+"y habilite dos campos de formulario de UI adicionales en la geometría "
+"resultante: V-Tip Dia y\n"
+"Ángulo de punta en V. El ajuste de esos dos valores ajustará el parámetro Z-"
+"Cut, como\n"
+"ya que el ancho de corte en el material será igual al valor en el Diámetro "
+"de la herramienta\n"
+"columna de esta tabla.\n"
+"Al elegir el tipo de herramienta 'Forma de V' automáticamente, se "
+"seleccionará el Tipo de operación\n"
+"en la geometría resultante como Aislamiento."
+
+#: AppTools/ToolNCC.py:296 AppTools/ToolPaint.py:278
+msgid ""
+"Add a new tool to the Tool Table\n"
+"with the diameter specified above."
+msgstr ""
+"Agregar una nueva herramienta a la tabla de herramientas\n"
+"con el diámetro especificado anteriormente."
+
+#: AppTools/ToolNCC.py:318 AppTools/ToolPaint.py:300
+#: AppTools/ToolSolderPaste.py:130
+msgid ""
+"Delete a selection of tools in the Tool Table\n"
+"by first selecting a row(s) in the Tool Table."
+msgstr ""
+"Eliminar una selección de herramientas en la tabla de herramientas\n"
+"seleccionando primero una (s) fila (s) en la Tabla de herramientas."
+
+#: AppTools/ToolNCC.py:554
+msgid ""
+"The type of FlatCAM object to be used as non copper clearing reference.\n"
+"It can be Gerber, Excellon or Geometry."
+msgstr ""
+"El tipo de objeto FlatCAM que se utilizará como referencia de compensación "
+"sin cobre.\n"
+"Puede ser Gerber, Excellon o Geometry."
+
+#: AppTools/ToolNCC.py:597 AppTools/ToolPaint.py:536
+msgid "Generate Geometry"
+msgstr "Generar Geometría"
+
+#: AppTools/ToolNCC.py:932 AppTools/ToolNCC.py:1431 AppTools/ToolPaint.py:857
+#: AppTools/ToolSolderPaste.py:568 AppTools/ToolSolderPaste.py:893
+#: App_Main.py:4190
+msgid "Please enter a tool diameter with non-zero value, in Float format."
+msgstr ""
+"Introduzca un diámetro de herramienta con valor distinto de cero, en formato "
+"Float."
+
+#: AppTools/ToolNCC.py:936 AppTools/ToolPaint.py:861
+#: AppTools/ToolSolderPaste.py:572 App_Main.py:4194
+msgid "Adding Tool cancelled"
+msgstr "Añadiendo herramienta cancelada"
+
+#: AppTools/ToolNCC.py:1425 AppTools/ToolPaint.py:1183
+#: AppTools/ToolSolderPaste.py:888
+msgid "Please enter a tool diameter to add, in Float format."
+msgstr "Ingrese un diámetro de herramienta para agregar, en formato decimal."
+
+#: AppTools/ToolNCC.py:1456 AppTools/ToolNCC.py:4065 AppTools/ToolPaint.py:1207
+#: AppTools/ToolPaint.py:3608 AppTools/ToolSolderPaste.py:917
+msgid "Cancelled. Tool already in Tool Table."
+msgstr "Cancelado. Herramienta ya en la tabla de herramientas."
+
+#: AppTools/ToolNCC.py:1463 AppTools/ToolNCC.py:4082 AppTools/ToolPaint.py:1212
+#: AppTools/ToolPaint.py:3625
+msgid "New tool added to Tool Table."
+msgstr "Nueva herramienta agregada a la Tabla de herramientas."
+
+#: AppTools/ToolNCC.py:1507 AppTools/ToolPaint.py:1256
+msgid "Tool from Tool Table was edited."
+msgstr "Se editó la herramienta de la tabla de herramientas."
+
+#: AppTools/ToolNCC.py:1519 AppTools/ToolPaint.py:1268
+#: AppTools/ToolSolderPaste.py:978
+msgid "Cancelled. New diameter value is already in the Tool Table."
+msgstr ""
+"Cancelado. El nuevo valor del diámetro ya está en la Tabla de herramientas."
+
+#: AppTools/ToolNCC.py:1571 AppTools/ToolPaint.py:1366
+msgid "Delete failed. Select a tool to delete."
+msgstr "Eliminar falló. Seleccione una herramienta para eliminar."
+
+#: AppTools/ToolNCC.py:1577 AppTools/ToolPaint.py:1372
+msgid "Tool(s) deleted from Tool Table."
+msgstr "Herramienta (s) eliminada de la tabla de herramientas."
+
+#: AppTools/ToolNCC.py:1620
+msgid "Wrong Tool Dia value format entered, use a number."
+msgstr ""
+"Se ingresó un formato de valor de Diámetro de herramienta incorrecta, use un "
+"número."
+
+#: AppTools/ToolNCC.py:1629 AppTools/ToolPaint.py:1423
+msgid "No selected tools in Tool Table."
+msgstr "Seleccione una herramienta en la tabla de herramientas."
+
+#: AppTools/ToolNCC.py:1705 AppTools/ToolPaint.py:1599
+msgid "Click the end point of the paint area."
+msgstr "Haga clic en el punto final del área de pintura."
+
+#: AppTools/ToolNCC.py:1985 AppTools/ToolNCC.py:3010
+msgid "NCC Tool. Preparing non-copper polygons."
+msgstr "Herramienta NCC. Preparación de polígonos sin cobre."
+
+#: AppTools/ToolNCC.py:2044 AppTools/ToolNCC.py:3138
+msgid "NCC Tool. Calculate 'empty' area."
+msgstr "Herramienta NCC. Calcule el área 'vacía'."
+
+#: AppTools/ToolNCC.py:2063 AppTools/ToolNCC.py:2172 AppTools/ToolNCC.py:2187
+#: AppTools/ToolNCC.py:3151 AppTools/ToolNCC.py:3256 AppTools/ToolNCC.py:3271
+#: AppTools/ToolNCC.py:3537 AppTools/ToolNCC.py:3638 AppTools/ToolNCC.py:3653
+msgid "Buffering finished"
+msgstr "Buffering terminado"
+
+#: AppTools/ToolNCC.py:2071 AppTools/ToolNCC.py:2194 AppTools/ToolNCC.py:3159
+#: AppTools/ToolNCC.py:3278 AppTools/ToolNCC.py:3544 AppTools/ToolNCC.py:3660
+msgid "Could not get the extent of the area to be non copper cleared."
+msgstr ""
+"No se pudo obtener la extensión del área que no fue limpiada con cobre."
+
+#: AppTools/ToolNCC.py:2101 AppTools/ToolNCC.py:2180 AppTools/ToolNCC.py:3186
+#: AppTools/ToolNCC.py:3263 AppTools/ToolNCC.py:3564 AppTools/ToolNCC.py:3645
+msgid ""
+"Isolation geometry is broken. Margin is less than isolation tool diameter."
+msgstr ""
+"La geometría de aislamiento está rota. El margen es menor que el diámetro de "
+"la herramienta de aislamiento."
+
+#: AppTools/ToolNCC.py:2197 AppTools/ToolNCC.py:3282 AppTools/ToolNCC.py:3663
+msgid "The selected object is not suitable for copper clearing."
+msgstr "El objeto seleccionado no es adecuado para la limpieza de cobre."
+
+#: AppTools/ToolNCC.py:2204 AppTools/ToolNCC.py:3289
+msgid "NCC Tool. Finished calculation of 'empty' area."
+msgstr "Herramienta NCC. Cálculo finalizado del área 'vacía'."
+
+#: AppTools/ToolNCC.py:2247
+#, fuzzy
+#| msgid "Painting polygon with method: lines."
+msgid "Clearing polygon with method: lines."
+msgstr "Pintura poligonal con método: líneas."
+
+#: AppTools/ToolNCC.py:2257
+#, fuzzy
+#| msgid "Failed. Painting polygon with method: seed."
+msgid "Failed. Clearing polygon with method: seed."
+msgstr "Ha fallado. Pintura poligonal con método: semilla."
+
+#: AppTools/ToolNCC.py:2266
+#, fuzzy
+#| msgid "Failed. Painting polygon with method: standard."
+msgid "Failed. Clearing polygon with method: standard."
+msgstr "Ha fallado. Pintura poligonal con método: estándar."
+
+#: AppTools/ToolNCC.py:2280
+#, fuzzy
+#| msgid "Geometry could not be painted completely"
+msgid "Geometry could not be cleared completely"
+msgstr "La Geometría no se pudo pintar completamente"
+
+#: AppTools/ToolNCC.py:2305 AppTools/ToolNCC.py:2307 AppTools/ToolNCC.py:2962
+#: AppTools/ToolNCC.py:2964
+msgid "Non-Copper clearing ..."
+msgstr "Limpieza sin cobre ..."
+
+#: AppTools/ToolNCC.py:2354 AppTools/ToolNCC.py:3106
+msgid ""
+"NCC Tool. Finished non-copper polygons. Normal copper clearing task started."
+msgstr ""
+"Herramienta NCC. Polígonos terminados sin cobre. Se inició la tarea normal "
+"de limpieza de cobre."
+
+#: AppTools/ToolNCC.py:2390 AppTools/ToolNCC.py:2638
+msgid "NCC Tool failed creating bounding box."
+msgstr "La herramienta NCC no pudo crear el cuadro delimitador."
+
+#: AppTools/ToolNCC.py:2405 AppTools/ToolNCC.py:2655 AppTools/ToolNCC.py:3302
+#: AppTools/ToolNCC.py:3688
+msgid "NCC Tool clearing with tool diameter"
+msgstr "La Herram. NCC se está limpiando con el diá. de la herramienta"
+
+#: AppTools/ToolNCC.py:2405 AppTools/ToolNCC.py:2655 AppTools/ToolNCC.py:3302
+#: AppTools/ToolNCC.py:3688
+msgid "started."
+msgstr "empezado."
+
+#: AppTools/ToolNCC.py:2563 AppTools/ToolNCC.py:3463
+msgid ""
+"There is no NCC 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 ""
+"No hay geometría NCC en el archivo.\n"
+"Por lo general, significa que el diámetro de la herramienta es demasiado "
+"grande para la geometría pintada.\n"
+"Cambie los parámetros de pintura e intente nuevamente."
+
+#: AppTools/ToolNCC.py:2572 AppTools/ToolNCC.py:3472
+msgid "NCC Tool clear all done."
+msgstr "Herramienta NCC borrar todo hecho."
+
+#: AppTools/ToolNCC.py:2575 AppTools/ToolNCC.py:3475
+msgid "NCC Tool clear all done but the copper features isolation is broken for"
+msgstr ""
+"La herramienta NCC borra todo, pero el aislamiento de las características de "
+"cobre está roto por"
+
+#: AppTools/ToolNCC.py:2577 AppTools/ToolNCC.py:2863 AppTools/ToolNCC.py:3477
+#: AppTools/ToolNCC.py:3860
+msgid "tools"
+msgstr "herramientas"
+
+#: AppTools/ToolNCC.py:2859 AppTools/ToolNCC.py:3856
+msgid "NCC Tool Rest Machining clear all done."
+msgstr "NCC herramienta de mecanizado de reposo claro todo hecho."
+
+#: AppTools/ToolNCC.py:2862 AppTools/ToolNCC.py:3859
+msgid ""
+"NCC Tool Rest Machining clear all done but the copper features isolation is "
+"broken for"
+msgstr ""
+"El mecanizado de reposo de herramientas NCC está claro, pero el aislamiento "
+"de características de cobre está roto por"
+
+#: AppTools/ToolNCC.py:2974
+msgid "NCC Tool started. Reading parameters."
+msgstr "Herramienta NCC iniciada. Parámetros de lectura."
+
+#: AppTools/ToolNCC.py:3958
+msgid ""
+"Try to use the Buffering Type = Full in Preferences -> Gerber General. "
+"Reload the Gerber file after this change."
+msgstr ""
+"Intente utilizar el Tipo de almacenamiento intermedio = Completo en "
+"Preferencias -> Gerber General. Vuelva a cargar el archivo Gerber después de "
+"este cambio."
+
+#: AppTools/ToolNCC.py:4022 AppTools/ToolPaint.py:3565 App_Main.py:5251
+msgid "Tool from DB added in Tool Table."
+msgstr "Herramienta de DB agregada en la Tabla de herramientas."
+
+#: AppTools/ToolOptimal.py:79
+msgid "Number of decimals kept for found distances."
+msgstr "Número de decimales guardados para distancias encontradas."
+
+#: AppTools/ToolOptimal.py:87
+msgid "Minimum distance"
+msgstr "Distancia minima"
+
+#: AppTools/ToolOptimal.py:88
+msgid "Display minimum distance between copper features."
+msgstr "Mostrar la distancia mínima entre las características de cobre."
+
+#: AppTools/ToolOptimal.py:92
+msgid "Determined"
+msgstr "Determinado"
+
+#: AppTools/ToolOptimal.py:106
+msgid "Occurring"
+msgstr "Ocurriendo"
+
+#: AppTools/ToolOptimal.py:107
+msgid "How many times this minimum is found."
+msgstr "Cuántas veces se encuentra este mínimo."
+
+#: AppTools/ToolOptimal.py:113
+msgid "Minimum points coordinates"
+msgstr "Coordenadas de puntos mínimos"
+
+#: AppTools/ToolOptimal.py:114 AppTools/ToolOptimal.py:120
+msgid "Coordinates for points where minimum distance was found."
+msgstr "Coordenadas para los puntos donde se encontró la distancia mínima."
+
+#: AppTools/ToolOptimal.py:133 AppTools/ToolOptimal.py:209
+msgid "Jump to selected position"
+msgstr "Saltar a la posición seleccionada"
+
+#: AppTools/ToolOptimal.py:135 AppTools/ToolOptimal.py:211
+msgid ""
+"Select a position in the Locations text box and then\n"
+"click this button."
+msgstr ""
+"Seleccione una posición en el cuadro de texto Ubicaciones y luego\n"
+"haga clic en este botón."
+
+#: AppTools/ToolOptimal.py:143
+msgid "Other distances"
+msgstr "Otras distancias"
+
+#: AppTools/ToolOptimal.py:144
+msgid ""
+"Will display other distances in the Gerber file ordered from\n"
+"the minimum to the maximum, not including the absolute minimum."
+msgstr ""
+"Mostrará otras distancias en el archivo Gerber ordenado a\n"
+"el mínimo al máximo, sin incluir el mínimo absoluto."
+
+#: AppTools/ToolOptimal.py:149
+msgid "Other distances points coordinates"
+msgstr "Otras distancias puntos coordenadas"
+
+#: AppTools/ToolOptimal.py:150 AppTools/ToolOptimal.py:164
+#: AppTools/ToolOptimal.py:171 AppTools/ToolOptimal.py:188
+#: AppTools/ToolOptimal.py:195
+msgid ""
+"Other distances and the coordinates for points\n"
+"where the distance was found."
+msgstr ""
+"Otras distancias y las coordenadas de los puntos.\n"
+"donde se encontró la distancia."
+
+#: AppTools/ToolOptimal.py:163
+msgid "Gerber distances"
+msgstr "Distancias de Gerber"
+
+#: AppTools/ToolOptimal.py:187
+msgid "Points coordinates"
+msgstr "Coordenadas de puntos"
+
+#: AppTools/ToolOptimal.py:219
+msgid "Find Minimum"
+msgstr "Encuentra mínimo"
+
+#: AppTools/ToolOptimal.py:221
+msgid ""
+"Calculate the minimum distance between copper features,\n"
+"this will allow the determination of the right tool to\n"
+"use for isolation or copper clearing."
+msgstr ""
+"Calcule la distancia mínima entre las características de cobre,\n"
+"esto permitirá determinar la herramienta adecuada para\n"
+"utilizar para aislamiento o limpieza de cobre."
+
+#: AppTools/ToolOptimal.py:346
+msgid "Only Gerber objects can be evaluated."
+msgstr "Solo se pueden evaluar los objetos de Gerber."
+
+#: AppTools/ToolOptimal.py:352
+msgid ""
+"Optimal Tool. Started to search for the minimum distance between copper "
+"features."
+msgstr ""
+"Herramienta óptima. Comenzó a buscar la distancia mínima entre las "
+"características de cobre."
+
+#: AppTools/ToolOptimal.py:362
+msgid "Optimal Tool. Parsing geometry for aperture"
+msgstr "Herramienta óptima. Análisis de geometría para apertura"
+
+#: AppTools/ToolOptimal.py:373
+msgid "Optimal Tool. Creating a buffer for the object geometry."
+msgstr "Herramienta óptima. Crear un búfer para la geometría del objeto."
+
+#: AppTools/ToolOptimal.py:383
+msgid ""
+"The Gerber object has one Polygon as geometry.\n"
+"There are no distances between geometry elements to be found."
+msgstr ""
+"El objeto Gerber tiene un Polígono como geometría.\n"
+"No hay distancias entre los elementos de geometría que se encuentran."
+
+#: AppTools/ToolOptimal.py:388
+msgid ""
+"Optimal Tool. Finding the distances between each two elements. Iterations"
+msgstr ""
+"Herramienta óptima. Encontrar las distancias entre cada dos elementos. "
+"Iteraciones"
+
+#: AppTools/ToolOptimal.py:423
+msgid "Optimal Tool. Finding the minimum distance."
+msgstr "Herramienta óptima. Encontrar la distancia mínima."
+
+#: AppTools/ToolOptimal.py:439
+msgid "Optimal Tool. Finished successfully."
+msgstr "Herramienta óptima. Terminado con éxito."
+
+#: AppTools/ToolPDF.py:91 AppTools/ToolPDF.py:95
+msgid "Open PDF"
+msgstr "Abrir PDF"
+
+#: AppTools/ToolPDF.py:98
+msgid "Open PDF cancelled"
+msgstr "Abrir PDF cancelado"
+
+#: AppTools/ToolPDF.py:122
+msgid "Parsing PDF file ..."
+msgstr "Analizando archivo PDF ..."
+
+#: AppTools/ToolPDF.py:138 App_Main.py:8497
+msgid "Failed to open"
+msgstr "Falló al abrir"
+
+#: AppTools/ToolPDF.py:203 AppTools/ToolPcbWizard.py:445 App_Main.py:8446
+msgid "No geometry found in file"
+msgstr "No se encontró geometría en el archivo"
+
+#: AppTools/ToolPDF.py:206 AppTools/ToolPDF.py:279
+#, python-format
+msgid "Rendering PDF layer #%d ..."
+msgstr "Renderizando la capa PDF #%d ..."
+
+#: AppTools/ToolPDF.py:210 AppTools/ToolPDF.py:283
+msgid "Open PDF file failed."
+msgstr "El archivo PDF abierto ha fallado."
+
+#: AppTools/ToolPDF.py:215 AppTools/ToolPDF.py:288
+msgid "Rendered"
+msgstr "Rendido"
+
+#: AppTools/ToolPaint.py:81
+msgid ""
+"Specify the type of object to be painted.\n"
+"It can be of type: Gerber or Geometry.\n"
+"What is selected here will dictate the kind\n"
+"of objects that will populate the 'Object' combobox."
+msgstr ""
+"Especifique el tipo de objeto a pintar.\n"
+"Puede ser de tipo: Gerber o Geometría.\n"
+"Lo que se seleccione aquí dictará el tipo\n"
+"de objetos que llenarán el cuadro combinado 'Objeto'."
+
+#: AppTools/ToolPaint.py:103
+msgid "Object to be painted."
+msgstr "Objeto a pintar."
+
+#: AppTools/ToolPaint.py:116
+msgid ""
+"Tools pool from which the algorithm\n"
+"will pick the ones used for painting."
+msgstr ""
+"Conjunto de herramientas desde el cual el algoritmo\n"
+"elegirá los que se usan para pintar."
+
+#: AppTools/ToolPaint.py:133
+msgid ""
+"This is the Tool Number.\n"
+"Painting will start with the tool with the biggest diameter,\n"
+"continuing until there are no more tools.\n"
+"Only tools that create painting geometry will still be present\n"
+"in the resulting geometry. This is because with some tools\n"
+"this function will not be able to create painting geometry."
+msgstr ""
+"Este es el número de herramienta.\n"
+"La pintura comenzará con la herramienta con el diámetro más grande,\n"
+"continuando hasta que no haya más herramientas.\n"
+"Solo las herramientas que crean geometría de pintura seguirán presentes\n"
+"en la geometría resultante. Esto es porque con algunas herramientas\n"
+"Esta función no podrá crear geometría de pintura."
+
+#: AppTools/ToolPaint.py:145
+msgid ""
+"The Tool Type (TT) can be:\n"
+"- Circular -> it is informative only. Being circular,\n"
+"the cut width in material is exactly the tool diameter.\n"
+"- Ball -> informative only and make reference to the Ball type endmill.\n"
+"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI "
+"form\n"
+"and enable two additional UI form fields in the resulting geometry: V-Tip "
+"Dia and\n"
+"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter "
+"such\n"
+"as the cut width into material will be equal with the value in the Tool "
+"Diameter\n"
+"column of this table.\n"
+"Choosing the 'V-Shape' Tool Type automatically will select the Operation "
+"Type\n"
+"in the resulting geometry as Isolation."
+msgstr ""
+"El tipo de herramienta (TT) puede ser:\n"
+"- Circular -> es solo informativo. Siendo circular,\n"
+"El ancho de corte en el material es exactamente el diámetro de la "
+"herramienta.\n"
+"- Bola -> solo informativo y hacer referencia a la fresa de extremo de "
+"bola.\n"
+"- Forma V -> deshabilitará el parámetro de corte Z en la forma de interfaz "
+"de usuario de geometría resultante\n"
+"y habilite dos campos de formulario de UI adicionales en la geometría "
+"resultante: V-Tip Dia y\n"
+"Ángulo de punta en V. El ajuste de esos dos valores ajustará el parámetro Z-"
+"Cut, como\n"
+"ya que el ancho de corte en el material será igual al valor en el Diámetro "
+"de la herramienta\n"
+"columna de esta tabla.\n"
+"Al elegir el tipo de herramienta 'Forma de V' automáticamente, se "
+"seleccionará el Tipo de operación\n"
+"en la geometría resultante como Aislamiento."
+
+#: AppTools/ToolPaint.py:497
+msgid ""
+"The type of FlatCAM object to be used as paint reference.\n"
+"It can be Gerber, Excellon or Geometry."
+msgstr ""
+"El tipo de objeto FlatCAM que se utilizará como referencia de pintura.\n"
+"Puede ser Gerber, Excellon o Geometry."
+
+#: AppTools/ToolPaint.py:538
+msgid ""
+"- 'Area Selection' - left mouse click to start selection of the area to be "
+"painted.\n"
+"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple "
+"areas.\n"
+"- 'All Polygons' - the Paint will start after click.\n"
+"- 'Reference Object' - will do non copper clearing within the area\n"
+"specified by another object."
+msgstr ""
+"- 'Selección de área': haga clic con el botón izquierdo del mouse para "
+"iniciar la selección del área a pintar.\n"
+"Mantener presionada una tecla modificadora (CTRL o SHIFT) permitirá agregar "
+"múltiples áreas.\n"
+"- 'Todos los polígonos': la pintura comenzará después de hacer clic.\n"
+"- 'Objeto de referencia' - hará una limpieza sin cobre dentro del área\n"
+"especificado por otro objeto."
+
+#: AppTools/ToolPaint.py:1392
+#, python-format
+msgid "Could not retrieve object: %s"
+msgstr "No se pudo recuperar el objeto: %s"
+
+#: AppTools/ToolPaint.py:1402
+msgid "Can't do Paint on MultiGeo geometries"
+msgstr "No se puede Pintar en geometrías de geo-múltiple"
+
+#: AppTools/ToolPaint.py:1432
+msgid "Click on a polygon to paint it."
+msgstr "Haga clic en un polígono para pintarlo."
+
+#: AppTools/ToolPaint.py:1452
+msgid "Click the start point of the paint area."
+msgstr "Haga clic en el punto de inicio del área de pintura."
+
+#: AppTools/ToolPaint.py:1517
+msgid "Click to add next polygon or right click to start painting."
+msgstr ""
+"Haga clic para agregar el siguiente polígono o haga clic con el botón "
+"derecho para comenzar a pintar."
+
+#: AppTools/ToolPaint.py:1530
+msgid "Click to add/remove next polygon or right click to start painting."
+msgstr ""
+"Haga clic para agregar / eliminar el siguiente polígono o haga clic con el "
+"botón derecho para comenzar a pintar."
+
+#: AppTools/ToolPaint.py:2034
+msgid "Painting polygon with method: lines."
+msgstr "Pintura poligonal con método: líneas."
+
+#: AppTools/ToolPaint.py:2046
+msgid "Failed. Painting polygon with method: seed."
+msgstr "Ha fallado. Pintura poligonal con método: semilla."
+
+#: AppTools/ToolPaint.py:2057
+msgid "Failed. Painting polygon with method: standard."
+msgstr "Ha fallado. Pintura poligonal con método: estándar."
+
+#: AppTools/ToolPaint.py:2073
+msgid "Geometry could not be painted completely"
+msgstr "La Geometría no se pudo pintar completamente"
+
+#: AppTools/ToolPaint.py:2102 AppTools/ToolPaint.py:2105
+#: AppTools/ToolPaint.py:2113 AppTools/ToolPaint.py:2416
+#: AppTools/ToolPaint.py:2419 AppTools/ToolPaint.py:2427
+#: AppTools/ToolPaint.py:2915 AppTools/ToolPaint.py:2918
+#: AppTools/ToolPaint.py:2924
+msgid "Paint Tool."
+msgstr "Herramienta de Pintura."
+
+#: AppTools/ToolPaint.py:2102 AppTools/ToolPaint.py:2105
+#: AppTools/ToolPaint.py:2113
+msgid "Normal painting polygon task started."
+msgstr "Se inició la tarea normal de polígono de pintura."
+
+#: AppTools/ToolPaint.py:2103 AppTools/ToolPaint.py:2417
+#: AppTools/ToolPaint.py:2916
+msgid "Buffering geometry..."
+msgstr "Almacenar la geometría ..."
+
+#: AppTools/ToolPaint.py:2125 AppTools/ToolPaint.py:2434
+#: AppTools/ToolPaint.py:2932
+msgid "No polygon found."
+msgstr "No se encontró polígono."
+
+#: AppTools/ToolPaint.py:2155
+msgid "Painting polygon..."
+msgstr "Pintar polígono ..."
+
+#: AppTools/ToolPaint.py:2165 AppTools/ToolPaint.py:2480
+#: AppTools/ToolPaint.py:2670 AppTools/ToolPaint.py:2978
+#: AppTools/ToolPaint.py:3157
+msgid "Painting with tool diameter = "
+msgstr "Pintar con diá de herram. = "
+
+#: AppTools/ToolPaint.py:2166 AppTools/ToolPaint.py:2481
+#: AppTools/ToolPaint.py:2671 AppTools/ToolPaint.py:2979
+#: AppTools/ToolPaint.py:3158
+msgid "started"
+msgstr "empezado"
+
+#: AppTools/ToolPaint.py:2191 AppTools/ToolPaint.py:2507
+#: AppTools/ToolPaint.py:2697 AppTools/ToolPaint.py:3005
+#: AppTools/ToolPaint.py:3184
+msgid "Margin parameter too big. Tool is not used"
+msgstr "El parámetro de margen es demasiado grande. La herramienta no se usa"
+
+#: AppTools/ToolPaint.py:2249 AppTools/ToolPaint.py:2576
+#: AppTools/ToolPaint.py:2754 AppTools/ToolPaint.py:3068
+#: AppTools/ToolPaint.py:3246
+msgid ""
+"Could not do Paint. Try a different combination of parameters. Or a "
+"different strategy of paint"
+msgstr ""
+"No se pudo Pintar. Pruebe con una combinación diferente de parámetros. O una "
+"estrategia diferente de pintura"
+
+#: AppTools/ToolPaint.py:2306 AppTools/ToolPaint.py:2642
+#: AppTools/ToolPaint.py:2811 AppTools/ToolPaint.py:3129
+#: AppTools/ToolPaint.py:3308
+msgid ""
+"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 ""
+"No hay Geometría de pintura en el archivo.\n"
+"Por lo general, significa que el diámetro de la herramienta es demasiado "
+"grande para la geometría pintada.\n"
+"Cambie los parámetros de pintura e intente nuevamente."
+
+#: AppTools/ToolPaint.py:2329
+msgid "Paint Single failed."
+msgstr "La pintura sola falló."
+
+#: AppTools/ToolPaint.py:2335
+msgid "Paint Single Done."
+msgstr "Pintar solo hecho."
+
+#: AppTools/ToolPaint.py:2337 AppTools/ToolPaint.py:2847
+#: AppTools/ToolPaint.py:3344
+msgid "Polygon Paint started ..."
+msgstr "Polygon Pinta comenzó ..."
+
+#: AppTools/ToolPaint.py:2416 AppTools/ToolPaint.py:2419
+#: AppTools/ToolPaint.py:2427
+msgid "Paint all polygons task started."
+msgstr "La tarea de pintar todos los polígonos comenzó."
+
+#: AppTools/ToolPaint.py:2458 AppTools/ToolPaint.py:2956
+msgid "Painting polygons..."
+msgstr "Pintar polígonos ..."
+
+#: AppTools/ToolPaint.py:2651
+msgid "Paint All Done."
+msgstr "Pintar todo listo."
+
+#: AppTools/ToolPaint.py:2820 AppTools/ToolPaint.py:3317
+msgid "Paint All with Rest-Machining done."
+msgstr "Pinte Todo con el mecanizado de descanso hecho."
+
+#: AppTools/ToolPaint.py:2839
+msgid "Paint All failed."
+msgstr "Pintar todo falló."
+
+#: AppTools/ToolPaint.py:2845
+msgid "Paint Poly All Done."
+msgstr "Pintar todos los polígonos está hecho."
+
+#: AppTools/ToolPaint.py:2915 AppTools/ToolPaint.py:2918
+#: AppTools/ToolPaint.py:2924
+msgid "Painting area task started."
+msgstr "La tarea del área de pintura comenzó."
+
+#: AppTools/ToolPaint.py:3138
+msgid "Paint Area Done."
+msgstr "Área de pintura hecha."
+
+#: AppTools/ToolPaint.py:3336
+msgid "Paint Area failed."
+msgstr "Pintar el área falló."
+
+#: AppTools/ToolPaint.py:3342
+msgid "Paint Poly Area Done."
+msgstr "Pintar el área de polígonos está hecho."
+
+#: AppTools/ToolPanelize.py:35
+msgid "Panelize PCB"
+msgstr "Panelizar PCB"
+
+#: AppTools/ToolPanelize.py:55
+msgid ""
+"Specify the type of object to be panelized\n"
+"It can be of type: Gerber, Excellon or Geometry.\n"
+"The selection here decide the type of objects that will be\n"
+"in the Object combobox."
+msgstr ""
+"Especifique el tipo de objeto a ser panelizado\n"
+"Puede ser de tipo: Gerber, Excellon o Geometry.\n"
+"La selección aquí decide el tipo de objetos que serán\n"
+"en el cuadro combinado Objeto."
+
+#: AppTools/ToolPanelize.py:88
+msgid ""
+"Object to be panelized. This means that it will\n"
+"be duplicated in an array of rows and columns."
+msgstr ""
+"Objeto a ser panelizado. Esto significa que lo hará\n"
+"ser duplicado en una matriz de filas y columnas."
+
+#: AppTools/ToolPanelize.py:100
+msgid "Penelization Reference"
+msgstr "Ref. de penelización"
+
+#: AppTools/ToolPanelize.py:102
+msgid ""
+"Choose the reference for panelization:\n"
+"- Object = the bounding box of a different object\n"
+"- Bounding Box = the bounding box of the object to be panelized\n"
+"\n"
+"The reference is useful when doing panelization for more than one\n"
+"object. The spacings (really offsets) will be applied in reference\n"
+"to this reference object therefore maintaining the panelized\n"
+"objects in sync."
+msgstr ""
+"Elija la referencia para la panelización:\n"
+"- Objeto = el cuadro delimitador de un objeto diferente\n"
+"- Cuadro delimitador = el cuadro delimitador del objeto a panelizar\n"
+"\n"
+"La referencia es útil cuando se hace panelización para más de uno.\n"
+"objeto. Los espacios (realmente desplazados) se aplicarán en referencia\n"
+"a este objeto de referencia, por lo tanto, manteniendo el panelizado\n"
+"objetos sincronizados."
+
+#: AppTools/ToolPanelize.py:123
+msgid "Box Type"
+msgstr "Tipo de caja"
+
+#: AppTools/ToolPanelize.py:125
+msgid ""
+"Specify the type of object to be used as an container for\n"
+"panelization. It can be: Gerber or Geometry type.\n"
+"The selection here decide the type of objects that will be\n"
+"in the Box Object combobox."
+msgstr ""
+"Especifique el tipo de objeto que se utilizará como contenedor para\n"
+"panelización. Puede ser: tipo Gerber o Geometría.\n"
+"La selección aquí decide el tipo de objetos que serán\n"
+"en el cuadro combinado Objeto de caja."
+
+#: AppTools/ToolPanelize.py:139
+msgid ""
+"The actual object that is used as container for the\n"
+" selected object that is to be panelized."
+msgstr ""
+"El objeto real que se utiliza como contenedor para\n"
+" objeto seleccionado que se va a panelizar."
+
+#: AppTools/ToolPanelize.py:149
+msgid "Panel Data"
+msgstr "Datos del panel"
+
+#: AppTools/ToolPanelize.py:151
+msgid ""
+"This informations will shape the resulting panel.\n"
+"The number of rows and columns will set how many\n"
+"duplicates of the original geometry will be generated.\n"
+"\n"
+"The spacings will set the distance between any two\n"
+"elements of the panel array."
+msgstr ""
+"Esta información dará forma al panel resultante.\n"
+"El número de filas y columnas establecerá cuántos\n"
+"Se generarán duplicados de la geometría original.\n"
+"\n"
+"Los espacios establecerán la distancia entre dos\n"
+"elementos de la matriz de paneles."
+
+#: AppTools/ToolPanelize.py:214
+msgid ""
+"Choose the type of object for the panel object:\n"
+"- Geometry\n"
+"- Gerber"
+msgstr ""
+"Elija el tipo de objeto para el objeto del panel:\n"
+"- Geometría\n"
+"- Gerber"
+
+#: AppTools/ToolPanelize.py:222
+msgid "Constrain panel within"
+msgstr "Restrinja el panel dentro de"
+
+#: AppTools/ToolPanelize.py:263
+msgid "Panelize Object"
+msgstr "Panelizar objeto"
+
+#: AppTools/ToolPanelize.py:265 AppTools/ToolRulesCheck.py:501
+msgid ""
+"Panelize the specified object around the specified box.\n"
+"In other words it creates multiple copies of the source object,\n"
+"arranged in a 2D array of rows and columns."
+msgstr ""
+"Panelizar el objeto especificado alrededor del cuadro especificado.\n"
+"En otras palabras, crea múltiples copias del objeto fuente,\n"
+"dispuestos en una matriz 2D de filas y columnas."
+
+#: AppTools/ToolPanelize.py:333
+msgid "Panel. Tool"
+msgstr "Herra. de Panel"
+
+#: AppTools/ToolPanelize.py:468
+msgid "Columns or Rows are zero value. Change them to a positive integer."
+msgstr ""
+"Las columnas o filas son de valor cero. Cámbialos a un entero positivo."
+
+#: AppTools/ToolPanelize.py:505
+msgid "Generating panel ... "
+msgstr "Panel generador … "
+
+#: AppTools/ToolPanelize.py:788
+msgid "Generating panel ... Adding the Gerber code."
+msgstr "Generando panel ... Agregando el código Gerber."
+
+#: AppTools/ToolPanelize.py:796
+msgid "Generating panel... Spawning copies"
+msgstr "Generando panel ... Generando copias"
+
+#: AppTools/ToolPanelize.py:803
+msgid "Panel done..."
+msgstr "Panel hecho ..."
+
+#: AppTools/ToolPanelize.py:806
+#, python-brace-format
+msgid ""
+"{text} Too big for the constrain area. Final panel has {col} columns and "
+"{row} rows"
+msgstr ""
+"{text} Demasiado grande para el área de restricción. El panel final tiene "
+"{col} columnas y {row} filas"
+
+#: AppTools/ToolPanelize.py:815
+msgid "Panel created successfully."
+msgstr "Panel creado con éxito."
+
+#: AppTools/ToolPcbWizard.py:31
+msgid "PcbWizard Import Tool"
+msgstr "Herra. de import. PcbWizard"
+
+#: AppTools/ToolPcbWizard.py:40
+msgid "Import 2-file Excellon"
+msgstr "Importar Excellon de 2 archivos"
+
+#: AppTools/ToolPcbWizard.py:51
+msgid "Load files"
+msgstr "Cargar archivos"
+
+#: AppTools/ToolPcbWizard.py:57
+msgid "Excellon file"
+msgstr "Archivo Excellon"
+
+#: AppTools/ToolPcbWizard.py:59
+msgid ""
+"Load the Excellon file.\n"
+"Usually it has a .DRL extension"
+msgstr ""
+"Cargue el archivo Excellon.\n"
+"Por lo general, tiene una extensión .DRL"
+
+#: AppTools/ToolPcbWizard.py:65
+msgid "INF file"
+msgstr "Archivo INF"
+
+#: AppTools/ToolPcbWizard.py:67
+msgid "Load the INF file."
+msgstr "Cargue el archivo INF."
+
+#: AppTools/ToolPcbWizard.py:79
+msgid "Tool Number"
+msgstr "Numero de Herram"
+
+#: AppTools/ToolPcbWizard.py:81
+msgid "Tool diameter in file units."
+msgstr "Diámetro de herramienta en unidades de archivo."
+
+#: AppTools/ToolPcbWizard.py:87
+msgid "Excellon format"
+msgstr "Formato Excellon"
+
+#: AppTools/ToolPcbWizard.py:95
+msgid "Int. digits"
+msgstr "Dígitos enteros"
+
+#: AppTools/ToolPcbWizard.py:97
+msgid "The number of digits for the integral part of the coordinates."
+msgstr "El número de dígitos para la parte integral de las coordenadas."
+
+#: AppTools/ToolPcbWizard.py:104
+msgid "Frac. digits"
+msgstr "Dígitos Fraccio"
+
+#: AppTools/ToolPcbWizard.py:106
+msgid "The number of digits for the fractional part of the coordinates."
+msgstr "El número de dígitos para la parte fraccionaria de las coordenadas."
+
+#: AppTools/ToolPcbWizard.py:113
+msgid "No Suppression"
+msgstr "Sin supresión"
+
+#: AppTools/ToolPcbWizard.py:114
+msgid "Zeros supp."
+msgstr "Supresión de Ceros"
+
+#: AppTools/ToolPcbWizard.py:116
+msgid ""
+"The type of zeros suppression used.\n"
+"Can be of type:\n"
+"- LZ = leading zeros are kept\n"
+"- TZ = trailing zeros are kept\n"
+"- No Suppression = no zero suppression"
+msgstr ""
+"El tipo de supresión de ceros utilizada.\n"
+"Puede ser de tipo:\n"
+"- LZ = los ceros iniciales se mantienen\n"
+"- TZ = los ceros finales se mantienen\n"
+"- Sin supresión = sin supresión de cero"
+
+#: AppTools/ToolPcbWizard.py:129
+msgid ""
+"The type of units that the coordinates and tool\n"
+"diameters are using. Can be INCH or MM."
+msgstr ""
+"El tipo de unidades que las coordenadas y la herramienta\n"
+"diámetros están utilizando. Puede ser PULGADAS o MM."
+
+#: AppTools/ToolPcbWizard.py:136
+msgid "Import Excellon"
+msgstr "Importar Excellon"
+
+#: AppTools/ToolPcbWizard.py:138
+msgid ""
+"Import in FlatCAM an Excellon file\n"
+"that store it's information's in 2 files.\n"
+"One usually has .DRL extension while\n"
+"the other has .INF extension."
+msgstr ""
+"Importar en FlatCAM un archivo Excellon\n"
+"que almacena su información en 2 archivos.\n"
+"Uno generalmente tiene la extensión .DRL mientras\n"
+"el otro tiene extensión .INF."
+
+#: AppTools/ToolPcbWizard.py:197
+msgid "PCBWizard Tool"
+msgstr "Herra. PCBWizard"
+
+#: AppTools/ToolPcbWizard.py:291 AppTools/ToolPcbWizard.py:295
+msgid "Load PcbWizard Excellon file"
+msgstr "Cargar archivo PcbWizard Excellon"
+
+#: AppTools/ToolPcbWizard.py:314 AppTools/ToolPcbWizard.py:318
+msgid "Load PcbWizard INF file"
+msgstr "Cargar archivo PcbWizard INF"
+
+#: AppTools/ToolPcbWizard.py:366
+msgid ""
+"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 ""
+"El archivo INF no contiene la tabla de herramientas.\n"
+"Intente abrir el archivo Excellon desde Archivo -> Abrir -> Excellon\n"
+"y edite los diámetros de taladro manualmente."
+
+#: AppTools/ToolPcbWizard.py:387
+msgid "PcbWizard .INF file loaded."
+msgstr "PcbWizard .INF archivo cargado."
+
+#: AppTools/ToolPcbWizard.py:392
+msgid "Main PcbWizard Excellon file loaded."
+msgstr "Archivo PcbWizard Excellon principal cargado."
+
+#: AppTools/ToolPcbWizard.py:424 App_Main.py:8424
+msgid "This is not Excellon file."
+msgstr "Este no es un archivo de Excellon."
+
+#: AppTools/ToolPcbWizard.py:427
+msgid "Cannot parse file"
+msgstr "No se puede analizar el archivo"
+
+#: AppTools/ToolPcbWizard.py:450
+msgid "Importing Excellon."
+msgstr "Importando Excellon."
+
+#: AppTools/ToolPcbWizard.py:457
+msgid "Import Excellon file failed."
+msgstr "Error al importar el archivo Excellon."
+
+#: AppTools/ToolPcbWizard.py:464
+msgid "Imported"
+msgstr "Importado"
+
+#: AppTools/ToolPcbWizard.py:467
+msgid "Excellon merging is in progress. Please wait..."
+msgstr "La fusión de Excellon está en progreso. Por favor espera..."
+
+#: AppTools/ToolPcbWizard.py:469
+msgid "The imported Excellon file is empty."
+msgstr "El archivo Excellon importado es Ninguno."
+
+#: AppTools/ToolProperties.py:116 App_Main.py:4664 App_Main.py:6718
+#: App_Main.py:6813 App_Main.py:6854 App_Main.py:6895 App_Main.py:6936
+#: App_Main.py:6977 App_Main.py:7021 App_Main.py:7065 App_Main.py:7585
+#: App_Main.py:7589
+msgid "No object selected."
+msgstr "Ningún objeto seleccionado."
+
+#: AppTools/ToolProperties.py:131
+msgid "Object Properties are displayed."
+msgstr "Se muestran las propiedades del objeto."
+
+#: AppTools/ToolProperties.py:136
+msgid "Properties Tool"
+msgstr "Herra. de Propiedades"
+
+#: AppTools/ToolProperties.py:150
+msgid "TYPE"
+msgstr "TIPO"
+
+#: AppTools/ToolProperties.py:151
+msgid "NAME"
+msgstr "NOMBRE"
+
+#: AppTools/ToolProperties.py:153
+msgid "Dimensions"
+msgstr "Dimensiones"
+
+#: AppTools/ToolProperties.py:181
+msgid "Geo Type"
+msgstr "Tipo de Geo"
+
+#: AppTools/ToolProperties.py:184
+msgid "Single-Geo"
+msgstr "Geo. individual"
+
+#: AppTools/ToolProperties.py:185
+msgid "Multi-Geo"
+msgstr "Geo. múltiple"
+
+#: AppTools/ToolProperties.py:196
+msgid "Calculating dimensions ... Please wait."
+msgstr "Calculando dimensiones ... Por favor espere."
+
+#: AppTools/ToolProperties.py:339 AppTools/ToolProperties.py:343
+#: AppTools/ToolProperties.py:345
+msgid "Inch"
+msgstr "Pulgada"
+
+#: AppTools/ToolProperties.py:339 AppTools/ToolProperties.py:344
+#: AppTools/ToolProperties.py:346
+msgid "Metric"
+msgstr "Métrico"
+
+#: AppTools/ToolProperties.py:421 AppTools/ToolProperties.py:486
+msgid "Drills number"
+msgstr "Número de taladros"
+
+#: AppTools/ToolProperties.py:422 AppTools/ToolProperties.py:488
+msgid "Slots number"
+msgstr "Número de tragamonedas"
+
+#: AppTools/ToolProperties.py:424
+msgid "Drills total number:"
+msgstr "Número total de taladros:"
+
+#: AppTools/ToolProperties.py:425
+msgid "Slots total number:"
+msgstr "Número total de tragamonedas:"
+
+#: AppTools/ToolProperties.py:452 AppTools/ToolProperties.py:455
+#: AppTools/ToolProperties.py:458 AppTools/ToolProperties.py:483
+msgid "Present"
+msgstr "Presente"
+
+#: AppTools/ToolProperties.py:453 AppTools/ToolProperties.py:484
+msgid "Solid Geometry"
+msgstr "Geometria solida"
+
+#: AppTools/ToolProperties.py:456
+msgid "GCode Text"
+msgstr "GCode texto"
+
+#: AppTools/ToolProperties.py:459
+msgid "GCode Geometry"
+msgstr "Geometría GCode"
+
+#: AppTools/ToolProperties.py:462
+msgid "Data"
+msgstr "Datos"
+
+#: AppTools/ToolProperties.py:495
+msgid "Depth of Cut"
+msgstr "Profundidad del corte"
+
+#: AppTools/ToolProperties.py:507
+msgid "Clearance Height"
+msgstr "Altura libre"
+
+#: AppTools/ToolProperties.py:539
+msgid "Routing time"
+msgstr "Tiempo de enrutamiento"
+
+#: AppTools/ToolProperties.py:546
+msgid "Travelled distance"
+msgstr "Distancia recorrida"
+
+#: AppTools/ToolProperties.py:564
+msgid "Width"
+msgstr "Anchura"
+
+#: AppTools/ToolProperties.py:570 AppTools/ToolProperties.py:578
+msgid "Box Area"
+msgstr "Área de caja"
+
+#: AppTools/ToolProperties.py:573 AppTools/ToolProperties.py:581
+msgid "Convex_Hull Area"
+msgstr "Área de casco convexo"
+
+#: AppTools/ToolProperties.py:588 AppTools/ToolProperties.py:591
+msgid "Copper Area"
+msgstr "Área de cobre"
+
+#: AppTools/ToolPunchGerber.py:30 AppTools/ToolPunchGerber.py:323
+msgid "Punch Gerber"
+msgstr "Gerber Perforadora"
+
+#: AppTools/ToolPunchGerber.py:65
+msgid "Gerber into which to punch holes"
+msgstr "Gerber en el que hacer agujeros"
+
+#: AppTools/ToolPunchGerber.py:85
+msgid "ALL"
+msgstr "TODAS"
+
+#: AppTools/ToolPunchGerber.py:166
+msgid ""
+"Remove the geometry of Excellon from the Gerber to create the holes in pads."
+msgstr ""
+"Retire la geometría de Excellon del Gerber para crear los agujeros en las "
+"almohadillas."
+
+#: AppTools/ToolPunchGerber.py:325
+msgid ""
+"Create a Gerber object from the selected object, within\n"
+"the specified box."
+msgstr ""
+"Cree un objeto Gerber a partir del objeto seleccionado, dentro de\n"
+"El cuadro especificado."
+
+#: AppTools/ToolPunchGerber.py:425
+msgid "Punch Tool"
+msgstr "Herram. de Perforación"
+
+#: AppTools/ToolPunchGerber.py:599
+msgid "The value of the fixed diameter is 0.0. Aborting."
+msgstr "El valor del diámetro fijo es 0.0. Abortar."
+
+#: AppTools/ToolPunchGerber.py:602
+msgid ""
+"Could not generate punched hole Gerber because the punch hole size is bigger "
+"than some of the apertures in the Gerber object."
+msgstr ""
+"No se pudo generar el agujero perforado Gerber porque el tamaño del agujero "
+"perforado es mayor que algunas de las aberturas en el objeto Gerber."
+
+#: AppTools/ToolPunchGerber.py:665
+msgid ""
+"Could not generate punched hole Gerber because the newly created object "
+"geometry is the same as the one in the source object geometry..."
+msgstr ""
+"No se pudo generar el agujero perforado Gerber porque la geometría del "
+"objeto recién creada es la misma que la de la geometría del objeto de "
+"origen ..."
+
+#: AppTools/ToolQRCode.py:80
+msgid "Gerber Object to which the QRCode will be added."
+msgstr "Objeto Gerber al que se agregará el QRCode."
+
+#: AppTools/ToolQRCode.py:93
+msgid "QRCode Parameters"
+msgstr "Parámetros QRCode"
+
+#: AppTools/ToolQRCode.py:95
+msgid "The parameters used to shape the QRCode."
+msgstr "Los parámetros utilizados para dar forma al QRCode."
+
+#: AppTools/ToolQRCode.py:207
+msgid "Export QRCode"
+msgstr "Exportar el código QR"
+
+#: AppTools/ToolQRCode.py:209
+msgid ""
+"Show a set of controls allowing to export the QRCode\n"
+"to a SVG file or an PNG file."
+msgstr ""
+"Mostrar un conjunto de controles que permiten exportar el QRCode\n"
+"a un archivo SVG o un archivo PNG."
+
+#: AppTools/ToolQRCode.py:248
+msgid "Transparent back color"
+msgstr "Color de fondo transparente"
+
+#: AppTools/ToolQRCode.py:273
+msgid "Export QRCode SVG"
+msgstr "Exportar el QRCode SVG"
+
+#: AppTools/ToolQRCode.py:275
+msgid "Export a SVG file with the QRCode content."
+msgstr "Exporte un archivo SVG con el contenido de QRCode."
+
+#: AppTools/ToolQRCode.py:286
+msgid "Export QRCode PNG"
+msgstr "Exportar el QRCode PNG"
+
+#: AppTools/ToolQRCode.py:288
+msgid "Export a PNG image file with the QRCode content."
+msgstr "Exporte un archivo de imagen PNG con el contenido de QRCode."
+
+#: AppTools/ToolQRCode.py:299
+msgid "Insert QRCode"
+msgstr "Insertar QRCode"
+
+#: AppTools/ToolQRCode.py:301
+msgid "Create the QRCode object."
+msgstr "Crea el objeto QRCode."
+
+#: AppTools/ToolQRCode.py:415 AppTools/ToolQRCode.py:750
+#: AppTools/ToolQRCode.py:799
+msgid "Cancelled. There is no QRCode Data in the text box."
+msgstr "Cancelado. No hay datos de QRCode en el cuadro de texto."
+
+#: AppTools/ToolQRCode.py:434
+msgid "Generating QRCode geometry"
+msgstr "Generando geometría QRCode"
+
+#: AppTools/ToolQRCode.py:474
+msgid "Click on the Destination point ..."
+msgstr "Haga clic en el punto de destino ..."
+
+#: AppTools/ToolQRCode.py:589
+msgid "QRCode Tool done."
+msgstr "Herramienta QRCode hecha."
+
+#: AppTools/ToolQRCode.py:782 AppTools/ToolQRCode.py:786
+msgid "Export PNG"
+msgstr "Exportar PNG"
+
+#: AppTools/ToolQRCode.py:829 AppTools/ToolQRCode.py:833 App_Main.py:6746
+#: App_Main.py:6750
+msgid "Export SVG"
+msgstr "Exportar SVG"
+
+#: AppTools/ToolRulesCheck.py:33
+msgid "Check Rules"
+msgstr "Verificar Reglas"
+
+#: AppTools/ToolRulesCheck.py:61
+msgid "Gerber Files"
+msgstr "Archivos Gerber"
+
+#: AppTools/ToolRulesCheck.py:63
+msgid "Gerber objects for which to check rules."
+msgstr "Objetos de Gerber para los cuales verificar las reglas."
+
+#: AppTools/ToolRulesCheck.py:78
+msgid "Top"
+msgstr "Top"
+
+#: AppTools/ToolRulesCheck.py:80
+msgid "The Top Gerber Copper object for which rules are checked."
+msgstr "El objeto de cobre Top Gerber para el que se verifican las reglas."
+
+#: AppTools/ToolRulesCheck.py:96
+msgid "Bottom"
+msgstr "Inferior"
+
+#: AppTools/ToolRulesCheck.py:98
+msgid "The Bottom Gerber Copper object for which rules are checked."
+msgstr ""
+"El objeto de cobre de Gerber inferior para el que se verifican las reglas."
+
+#: AppTools/ToolRulesCheck.py:114
+msgid "SM Top"
+msgstr "SM Top"
+
+#: AppTools/ToolRulesCheck.py:116
+msgid "The Top Gerber Solder Mask object for which rules are checked."
+msgstr ""
+"El objeto Máscara de soldadura de Gerber superior para el que se verifican "
+"las reglas."
+
+#: AppTools/ToolRulesCheck.py:132
+msgid "SM Bottom"
+msgstr "SM Inferior"
+
+#: AppTools/ToolRulesCheck.py:134
+msgid "The Bottom Gerber Solder Mask object for which rules are checked."
+msgstr ""
+"El objeto de máscara de soldadura de Gerber inferior para el que se "
+"verifican las reglas."
+
+#: AppTools/ToolRulesCheck.py:150
+msgid "Silk Top"
+msgstr "Top de serigrafía"
+
+#: AppTools/ToolRulesCheck.py:152
+msgid "The Top Gerber Silkscreen object for which rules are checked."
+msgstr ""
+"El objeto de serigrafía Top Gerber para el que se verifican las reglas."
+
+#: AppTools/ToolRulesCheck.py:168
+msgid "Silk Bottom"
+msgstr "Serigrafía Inferior"
+
+#: AppTools/ToolRulesCheck.py:170
+msgid "The Bottom Gerber Silkscreen object for which rules are checked."
+msgstr ""
+"El objeto Serigrafía inferior de Gerber para el que se verifican las reglas."
+
+#: AppTools/ToolRulesCheck.py:188
+msgid "The Gerber Outline (Cutout) object for which rules are checked."
+msgstr ""
+"El objeto Esquema de Gerber (Recorte) para el que se verifican las reglas."
+
+#: AppTools/ToolRulesCheck.py:199
+msgid "Excellon Objects"
+msgstr "Objetos Excellon"
+
+#: AppTools/ToolRulesCheck.py:201
+msgid "Excellon objects for which to check rules."
+msgstr "Excellon objetos para los cuales verificar las reglas."
+
+#: AppTools/ToolRulesCheck.py:213
+msgid "Excellon 1"
+msgstr "Excellon 1"
+
+#: AppTools/ToolRulesCheck.py:215
+msgid ""
+"Excellon object for which to check rules.\n"
+"Holds the plated holes or a general Excellon file content."
+msgstr ""
+"Objeto Excellon para el cual verificar las reglas.\n"
+"Contiene los agujeros chapados o un contenido general del archivo Excellon."
+
+#: AppTools/ToolRulesCheck.py:232
+msgid "Excellon 2"
+msgstr "Excellon 2"
+
+#: AppTools/ToolRulesCheck.py:234
+msgid ""
+"Excellon object for which to check rules.\n"
+"Holds the non-plated holes."
+msgstr ""
+"Objeto Excellon para el cual verificar las reglas.\n"
+"Sostiene los agujeros no chapados."
+
+#: AppTools/ToolRulesCheck.py:247
+msgid "All Rules"
+msgstr "Todas las reglas"
+
+#: AppTools/ToolRulesCheck.py:249
+msgid "This check/uncheck all the rules below."
+msgstr "Esto marca / desmarca todas las reglas a continuación."
+
+#: AppTools/ToolRulesCheck.py:499
+msgid "Run Rules Check"
+msgstr "Ejecutar Reglas Verificar"
+
+#: AppTools/ToolRulesCheck.py:1158 AppTools/ToolRulesCheck.py:1218
+#: AppTools/ToolRulesCheck.py:1255 AppTools/ToolRulesCheck.py:1327
+#: AppTools/ToolRulesCheck.py:1381 AppTools/ToolRulesCheck.py:1419
+#: AppTools/ToolRulesCheck.py:1484
+msgid "Value is not valid."
+msgstr "El valor no es valido."
+
+#: AppTools/ToolRulesCheck.py:1172
+msgid "TOP -> Copper to Copper clearance"
+msgstr "ARRIBA -> Separación de Cobre a Cobre"
+
+#: AppTools/ToolRulesCheck.py:1183
+msgid "BOTTOM -> Copper to Copper clearance"
+msgstr "ABAJO -> Separación de Cobre a Cobre"
+
+#: AppTools/ToolRulesCheck.py:1188 AppTools/ToolRulesCheck.py:1282
+#: AppTools/ToolRulesCheck.py:1446
+msgid ""
+"At least one Gerber object has to be selected for this rule but none is "
+"selected."
+msgstr ""
+"Se debe seleccionar al menos un objeto Gerber para esta regla, pero no se "
+"selecciona ninguno."
+
+#: AppTools/ToolRulesCheck.py:1224
+msgid ""
+"One of the copper Gerber objects or the Outline Gerber object is not valid."
+msgstr ""
+"Uno de los objetos de cobre de Gerber o el objeto de contorno de Gerber no "
+"es válido."
+
+#: AppTools/ToolRulesCheck.py:1237 AppTools/ToolRulesCheck.py:1401
+msgid ""
+"Outline Gerber object presence is mandatory for this rule but it is not "
+"selected."
+msgstr ""
+"La presencia del objeto Contorno Gerber es obligatoria para esta regla, pero "
+"no está seleccionada."
+
+#: AppTools/ToolRulesCheck.py:1254 AppTools/ToolRulesCheck.py:1281
+msgid "Silk to Silk clearance"
+msgstr "Distancia de Serigrafía a Serigrafía"
+
+#: AppTools/ToolRulesCheck.py:1267
+msgid "TOP -> Silk to Silk clearance"
+msgstr "ARRIBA -> Distancia de Serigrafía a Serigrafía"
+
+#: AppTools/ToolRulesCheck.py:1277
+msgid "BOTTOM -> Silk to Silk clearance"
+msgstr "ABAJO -> Distancia de Serigrafía a Serigrafía"
+
+#: AppTools/ToolRulesCheck.py:1333
+msgid "One or more of the Gerber objects is not valid."
+msgstr "Uno o más de los objetos de Gerber no son válidos."
+
+#: AppTools/ToolRulesCheck.py:1341
+msgid "TOP -> Silk to Solder Mask Clearance"
+msgstr "ARRIBA -> Distancia entre la Máscara de Soldadura y la Serigrafía"
+
+#: AppTools/ToolRulesCheck.py:1347
+msgid "BOTTOM -> Silk to Solder Mask Clearance"
+msgstr "ABAJO -> Distancia entre la Máscara de Soldadura y la Serigrafía"
+
+#: AppTools/ToolRulesCheck.py:1351
+msgid ""
+"Both Silk and Solder Mask Gerber objects has to be either both Top or both "
+"Bottom."
+msgstr ""
+"Tanto los objetos de Serigrafía como los de Máscara de soldadura Gerber "
+"deben ser tanto Superior como Inferior."
+
+#: AppTools/ToolRulesCheck.py:1387
+msgid ""
+"One of the Silk Gerber objects or the Outline Gerber object is not valid."
+msgstr ""
+"Uno de los objetos de Serigrafía Gerber o el objeto Contorno Gerber no es "
+"válido."
+
+#: AppTools/ToolRulesCheck.py:1431
+msgid "TOP -> Minimum Solder Mask Sliver"
+msgstr "ARRIBA -> Astilla de máscara de soldadura mínima"
+
+#: AppTools/ToolRulesCheck.py:1441
+msgid "BOTTOM -> Minimum Solder Mask Sliver"
+msgstr "ABAJO -> Astilla de máscara de soldadura mínima"
+
+#: AppTools/ToolRulesCheck.py:1490
+msgid "One of the Copper Gerber objects or the Excellon objects is not valid."
+msgstr "Uno de los objetos de Cobre Gerber u objetos de Excellon no es válido."
+
+#: AppTools/ToolRulesCheck.py:1506
+msgid ""
+"Excellon object presence is mandatory for this rule but none is selected."
+msgstr ""
+"La presencia de objetos Excellon es obligatoria para esta regla, pero no se "
+"selecciona ninguna."
+
+#: AppTools/ToolRulesCheck.py:1579 AppTools/ToolRulesCheck.py:1592
+#: AppTools/ToolRulesCheck.py:1603 AppTools/ToolRulesCheck.py:1616
+msgid "STATUS"
+msgstr "ESTADO"
+
+#: AppTools/ToolRulesCheck.py:1582 AppTools/ToolRulesCheck.py:1606
+msgid "FAILED"
+msgstr "HA FALLADO"
+
+#: AppTools/ToolRulesCheck.py:1595 AppTools/ToolRulesCheck.py:1619
+msgid "PASSED"
+msgstr "PASADO"
+
+#: AppTools/ToolRulesCheck.py:1596 AppTools/ToolRulesCheck.py:1620
+msgid "Violations: There are no violations for the current rule."
+msgstr "Infracciones: no hay infracciones para la regla actual."
+
+#: AppTools/ToolShell.py:74 AppTools/ToolShell.py:76
+msgid "...processing..."
+msgstr "…procesando..."
+
+#: AppTools/ToolSolderPaste.py:37
+msgid "Solder Paste Tool"
+msgstr "Herra. de Pasta de Soldadura"
+
+#: AppTools/ToolSolderPaste.py:69
+msgid "Gerber Solder paste object. "
+msgstr "Gerber Soldadura pegar objeto. "
+
+#: AppTools/ToolSolderPaste.py:76
+msgid ""
+"Tools pool from which the algorithm\n"
+"will pick the ones used for dispensing solder paste."
+msgstr ""
+"Conjunto de herramientas desde el cual el algoritmo\n"
+"elegirá los que se usan para dispensar pasta de soldadura."
+
+#: AppTools/ToolSolderPaste.py:91
+msgid ""
+"This is the Tool Number.\n"
+"The solder dispensing will start with the tool with the biggest \n"
+"diameter, continuing until there are no more Nozzle tools.\n"
+"If there are no longer tools but there are still pads not covered\n"
+" with solder paste, the app will issue a warning message box."
+msgstr ""
+"Este es el número de herramienta.\n"
+"La dispensación de soldadura comenzará con la herramienta con el mayor\n"
+"diámetro, continuando hasta que no haya más herramientas de boquilla.\n"
+"Si ya no hay herramientas pero todavía hay almohadillas no cubiertas\n"
+" con soldadura en pasta, la aplicación emitirá un cuadro de mensaje de "
+"advertencia."
+
+#: AppTools/ToolSolderPaste.py:98
+msgid ""
+"Nozzle tool Diameter. It's value (in current FlatCAM units)\n"
+"is the width of the solder paste dispensed."
+msgstr ""
+"Herramienta de boquilla de diámetro. Su valor (en unidades actuales de "
+"FlatCAM)\n"
+"es el ancho de la pasta de soldadura dispensada."
+
+#: AppTools/ToolSolderPaste.py:105
+msgid "New Nozzle Tool"
+msgstr "Nueva herra. de boquilla"
+
+#: AppTools/ToolSolderPaste.py:124
+msgid ""
+"Add a new nozzle tool to the Tool Table\n"
+"with the diameter specified above."
+msgstr ""
+"Agregue una nueva herramienta de boquilla a la tabla de herramientas\n"
+"con el diámetro especificado anteriormente."
+
+#: AppTools/ToolSolderPaste.py:136
+msgid "Generate solder paste dispensing geometry."
+msgstr "Generar geometría de dispensación de pasta de soldadura."
+
+#: AppTools/ToolSolderPaste.py:155
+msgid "STEP 1"
+msgstr "PASO 1"
+
+#: AppTools/ToolSolderPaste.py:157
+msgid ""
+"First step is to select a number of nozzle tools for usage\n"
+"and then optionally modify the GCode parameters below."
+msgstr ""
+"El primer paso es seleccionar una serie de herramientas de boquillas para su "
+"uso\n"
+"y luego opcionalmente modificar los parámetros GCode a continuación."
+
+#: AppTools/ToolSolderPaste.py:160
+msgid ""
+"Select tools.\n"
+"Modify parameters."
+msgstr ""
+"Seleccionar herramientas.\n"
+"Modificar parámetros."
+
+#: AppTools/ToolSolderPaste.py:280
+msgid ""
+"Feedrate (speed) while moving up vertically\n"
+" to Dispense position (on Z plane)."
+msgstr ""
+"Avance (velocidad) mientras se mueve verticalmente\n"
+" para dispensar la posición (en el plano Z)."
+
+#: AppTools/ToolSolderPaste.py:350
+msgid ""
+"Generate GCode for Solder Paste dispensing\n"
+"on PCB pads."
+msgstr ""
+"Generar GCodelo para dispensar pasta de soldadura\n"
+"en almohadillas de PCB."
+
+#: AppTools/ToolSolderPaste.py:371
+msgid "STEP 2"
+msgstr "PASO 2"
+
+#: AppTools/ToolSolderPaste.py:373
+msgid ""
+"Second step is to create a solder paste dispensing\n"
+"geometry out of an Solder Paste Mask Gerber file."
+msgstr ""
+"El segundo paso es crear una dispensación de pasta de soldadura\n"
+"geometría de un archivo Gerber de máscara de pasta de soldadura."
+
+#: AppTools/ToolSolderPaste.py:390
+msgid "Geo Result"
+msgstr "Resultado Geo"
+
+#: AppTools/ToolSolderPaste.py:392
+msgid ""
+"Geometry Solder Paste object.\n"
+"The name of the object has to end in:\n"
+"'_solderpaste' as a protection."
+msgstr ""
+"Objeto de pasta de soldadura de geometría.\n"
+"El nombre del objeto tiene que terminar en:\n"
+"'_solderpaste' como protección."
+
+#: AppTools/ToolSolderPaste.py:401
+msgid "STEP 3"
+msgstr "PASO 3"
+
+#: AppTools/ToolSolderPaste.py:403
+msgid ""
+"Third step is to select a solder paste dispensing geometry,\n"
+"and then generate a CNCJob object.\n"
+"\n"
+"REMEMBER: if you want to create a CNCJob with new parameters,\n"
+"first you need to generate a geometry with those new params,\n"
+"and only after that you can generate an updated CNCJob."
+msgstr ""
+"El tercer paso es seleccionar una geometría de distribución de pasta de "
+"soldadura,\n"
+"y luego generar un objeto CNCJob.\n"
+"\n"
+"RECUERDE: si desea crear un CNCJob con nuevos parámetros,\n"
+"primero necesitas generar una geometría con esos nuevos parámetros,\n"
+"y solo después de eso puede generar un CNCJob actualizado."
+
+#: AppTools/ToolSolderPaste.py:424
+msgid "CNC Result"
+msgstr "Resultado del CNC"
+
+#: AppTools/ToolSolderPaste.py:426
+msgid ""
+"CNCJob Solder paste object.\n"
+"In order to enable the GCode save section,\n"
+"the name of the object has to end in:\n"
+"'_solderpaste' as a protection."
+msgstr ""
+"CNCJob soldar pegar objeto.\n"
+"Para habilitar la sección de guardar GCode,\n"
+"el nombre del objeto debe terminar en:\n"
+"'_solderpaste' como protección."
+
+#: AppTools/ToolSolderPaste.py:436
+msgid "View GCode"
+msgstr "Ver GCode"
+
+#: AppTools/ToolSolderPaste.py:438
+msgid ""
+"View the generated GCode for Solder Paste dispensing\n"
+"on PCB pads."
+msgstr ""
+"Ver el GCode generado para la dispensación de pasta de soldadura\n"
+"en almohadillas de PCB."
+
+#: AppTools/ToolSolderPaste.py:448
+msgid "Save GCode"
+msgstr "Guardar GCode"
+
+#: AppTools/ToolSolderPaste.py:450
+msgid ""
+"Save the generated GCode for Solder Paste dispensing\n"
+"on PCB pads, to a file."
+msgstr ""
+"Guarde el GCode generado para la dispensación de pasta de soldadura\n"
+"en almohadillas de PCB, a un archivo."
+
+#: AppTools/ToolSolderPaste.py:460
+msgid "STEP 4"
+msgstr "PASO 4"
+
+#: AppTools/ToolSolderPaste.py:462
+msgid ""
+"Fourth step (and last) is to select a CNCJob made from \n"
+"a solder paste dispensing geometry, and then view/save it's GCode."
+msgstr ""
+"Cuarto paso (y último) es seleccionar un CNCJob hecho de\n"
+"una geometría de dispensación de pasta de soldadura, y luego ver / guardar "
+"su código GC."
+
+#: AppTools/ToolSolderPaste.py:922
+msgid "New Nozzle tool added to Tool Table."
+msgstr "Nueva herramienta de boquillas agregada a la tabla de herramientas."
+
+#: AppTools/ToolSolderPaste.py:965
+msgid "Nozzle tool from Tool Table was edited."
+msgstr "Nueva herramienta de boquillas agregada a la tabla de herramientas."
+
+#: AppTools/ToolSolderPaste.py:1024
+msgid "Delete failed. Select a Nozzle tool to delete."
+msgstr ""
+"Eliminar falló. Seleccione una herramienta de inyectores para eliminar."
+
+#: AppTools/ToolSolderPaste.py:1030
+msgid "Nozzle tool(s) deleted from Tool Table."
+msgstr "Herramienta de boquilla (s) eliminada de la tabla de herramientas."
+
+#: AppTools/ToolSolderPaste.py:1086
+msgid "No SolderPaste mask Gerber object loaded."
+msgstr "No se ha cargado el objeto Gerber de máscara de pasta de soldadura."
+
+#: AppTools/ToolSolderPaste.py:1104
+msgid "Creating Solder Paste dispensing geometry."
+msgstr "Creación de geometría de dispensación de pasta de soldadura."
+
+#: AppTools/ToolSolderPaste.py:1117
+msgid "No Nozzle tools in the tool table."
+msgstr "No hay herramientas de boquilla en la mesa de herramientas."
+
+#: AppTools/ToolSolderPaste.py:1243
+msgid "Cancelled. Empty file, it has no geometry..."
+msgstr "Cancelado. Archivo vacío, no tiene geometría ..."
+
+#: AppTools/ToolSolderPaste.py:1246
+msgid "Solder Paste geometry generated successfully"
+msgstr "Geometría de pasta de soldadura generada con éxito"
+
+#: AppTools/ToolSolderPaste.py:1253
+msgid "Some or all pads have no solder due of inadequate nozzle diameters..."
+msgstr ""
+"Algunas o todas las almohadillas no tienen soldadura debido a los diámetros "
+"de boquilla inadecuados ..."
+
+#: AppTools/ToolSolderPaste.py:1267
+msgid "Generating Solder Paste dispensing geometry..."
+msgstr "Generando geometría de dispensación de pasta de soldadura ..."
+
+#: AppTools/ToolSolderPaste.py:1287
+msgid "There is no Geometry object available."
+msgstr "No hay ningún objeto de Geometría disponible."
+
+#: AppTools/ToolSolderPaste.py:1292
+msgid "This Geometry can't be processed. NOT a solder_paste_tool geometry."
+msgstr ""
+"Esta Geometría no se puede procesar. NO es una geometría solder_paste_tool."
+
+#: AppTools/ToolSolderPaste.py:1328
+msgid "An internal error has ocurred. See shell.\n"
+msgstr ""
+"Ha ocurrido un error interno. Ver caparazón.\n"
+"\n"
+
+#: AppTools/ToolSolderPaste.py:1393
+msgid "ToolSolderPaste CNCjob created"
+msgstr "Herramienta soldar pegar CNCjob creado"
+
+#: AppTools/ToolSolderPaste.py:1412
+msgid "SP GCode Editor"
+msgstr "SP GCode editor"
+
+#: AppTools/ToolSolderPaste.py:1424 AppTools/ToolSolderPaste.py:1429
+#: AppTools/ToolSolderPaste.py:1484
+msgid ""
+"This CNCJob object can't be processed. NOT a solder_paste_tool CNCJob object."
+msgstr ""
+"Este objeto CNCJob no se puede procesar. NO es un objeto CNCJob de "
+"herramienta de pasta de soldadura."
+
+#: AppTools/ToolSolderPaste.py:1454
+msgid "No Gcode in the object"
+msgstr "No Gcode en el objeto"
+
+#: AppTools/ToolSolderPaste.py:1494
+msgid "Export GCode ..."
+msgstr "Exportar GCode ..."
+
+#: AppTools/ToolSolderPaste.py:1542
+msgid "Solder paste dispenser GCode file saved to"
+msgstr "Dispensador de pasta de soldadura Archivo GCode guardado en: %s"
+
+#: AppTools/ToolSub.py:65
+msgid "Gerber Objects"
+msgstr "Objetos Gerber"
+
+#: AppTools/ToolSub.py:78
+msgid ""
+"Gerber object from which to subtract\n"
+"the subtractor Gerber object."
+msgstr ""
+"Objeto de Gerber para restar\n"
+"El sustractor del objeto Gerber."
+
+#: AppTools/ToolSub.py:91 AppTools/ToolSub.py:146
+msgid "Subtractor"
+msgstr "Sustractor"
+
+#: AppTools/ToolSub.py:93
+msgid ""
+"Gerber object that will be subtracted\n"
+"from the target Gerber object."
+msgstr ""
+"Objeto de Gerber que se restará\n"
+"del objeto objetivo de Gerber."
+
+#: AppTools/ToolSub.py:100
+msgid "Subtract Gerber"
+msgstr "Restar Gerber"
+
+#: AppTools/ToolSub.py:102
+msgid ""
+"Will remove the area occupied by the subtractor\n"
+"Gerber from the Target Gerber.\n"
+"Can be used to remove the overlapping silkscreen\n"
+"over the soldermask."
+msgstr ""
+"Eliminará el área ocupada por el sustractor\n"
+"Gerber del objetivo Gerber.\n"
+"Se puede utilizar para eliminar la serigrafía superpuesta\n"
+"sobre la máscara de soldadura."
+
+#: AppTools/ToolSub.py:120
+msgid "Geometry Objects"
+msgstr "Objetos de Geometría"
+
+#: AppTools/ToolSub.py:133
+msgid ""
+"Geometry object from which to subtract\n"
+"the subtractor Geometry object."
+msgstr ""
+"Objeto de Geometría del cual restar\n"
+"El objeto de Geometría de sustractor."
+
+#: AppTools/ToolSub.py:148
+msgid ""
+"Geometry object that will be subtracted\n"
+"from the target Geometry object."
+msgstr ""
+"Objeto de Geometría que se restará\n"
+"del objeto de Geometría de destino."
+
+#: AppTools/ToolSub.py:156
+msgid ""
+"Checking this will close the paths cut by the Geometry subtractor object."
+msgstr ""
+"Marcar esto cerrará los caminos cortados por el objeto sustrato Geometry."
+
+#: AppTools/ToolSub.py:159
+msgid "Subtract Geometry"
+msgstr "Restar Geometría"
+
+#: AppTools/ToolSub.py:161
+msgid ""
+"Will remove the area occupied by the subtractor\n"
+"Geometry from the Target Geometry."
+msgstr ""
+"Eliminará el área ocupada por el sustractor\n"
+"Geometría de la Geometría Objetivo."
+
+#: AppTools/ToolSub.py:263
+msgid "Sub Tool"
+msgstr "Herra. de resta"
+
+#: AppTools/ToolSub.py:284 AppTools/ToolSub.py:489
+msgid "No Target object loaded."
+msgstr "No se ha cargado ningún objeto de destino."
+
+#: AppTools/ToolSub.py:287
+msgid "Loading geometry from Gerber objects."
+msgstr "Cargando geometría de objetos Gerber."
+
+#: AppTools/ToolSub.py:299 AppTools/ToolSub.py:504
+msgid "No Subtractor object loaded."
+msgstr "No se ha cargado ningún objeto Subtractor."
+
+#: AppTools/ToolSub.py:331
+msgid "Processing geometry from Subtractor Gerber object."
+msgstr "Procesamiento de geometría del objeto sustractor Gerber."
+
+#: AppTools/ToolSub.py:352
+msgid "Parsing geometry for aperture"
+msgstr "Análisis de geometría para apertura"
+
+#: AppTools/ToolSub.py:413
+msgid "Finished parsing geometry for aperture"
+msgstr "Geometría de análisis terminada para apertura"
+
+#: AppTools/ToolSub.py:458 AppTools/ToolSub.py:661
+msgid "Generating new object ..."
+msgstr "Generando nuevo objeto ..."
+
+#: AppTools/ToolSub.py:462 AppTools/ToolSub.py:665 AppTools/ToolSub.py:746
+msgid "Generating new object failed."
+msgstr "Generando nuevo objeto falló."
+
+#: AppTools/ToolSub.py:467 AppTools/ToolSub.py:671
+msgid "Created"
+msgstr "Creado"
+
+#: AppTools/ToolSub.py:518
+msgid "Currently, the Subtractor geometry cannot be of type Multigeo."
+msgstr ""
+"Actualmente, la geometría del sustractor no puede ser del tipo Multigeo."
+
+#: AppTools/ToolSub.py:563
+msgid "Parsing solid_geometry ..."
+msgstr "Analizando solid_geometry ..."
+
+#: AppTools/ToolSub.py:565
+msgid "Parsing solid_geometry for tool"
+msgstr "Análisis de geometría para herramienta"
+
+#: AppTools/ToolTransform.py:23
+msgid "Object Transform"
+msgstr "Transform. de objetos"
+
+#: AppTools/ToolTransform.py:78
+msgid ""
+"Rotate the selected object(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected objects."
+msgstr ""
+"Rotar los objetos seleccionados.\n"
+"El punto de referencia es el medio de\n"
+"el cuadro delimitador para todos los objetos seleccionados."
+
+#: AppTools/ToolTransform.py:99 AppTools/ToolTransform.py:120
+msgid ""
+"Angle for Skew action, in degrees.\n"
+"Float number between -360 and 360."
+msgstr ""
+"Ángulo para sesgo de acción, en grados.\n"
+"Número de flotación entre -360 y 360."
+
+#: AppTools/ToolTransform.py:109 AppTools/ToolTransform.py:130
+msgid ""
+"Skew/shear the selected object(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected objects."
+msgstr ""
+"Incline / corte los objetos seleccionados.\n"
+"El punto de referencia es el medio de\n"
+"el cuadro delimitador para todos los objetos seleccionados."
+
+#: AppTools/ToolTransform.py:159 AppTools/ToolTransform.py:179
+msgid ""
+"Scale the selected object(s).\n"
+"The point of reference depends on \n"
+"the Scale reference checkbox state."
+msgstr ""
+"Escala los objetos seleccionados.\n"
+"El punto de referencia depende de\n"
+"el estado de la casilla de verificación Escalar referencia."
+
+#: AppTools/ToolTransform.py:228 AppTools/ToolTransform.py:248
+msgid ""
+"Offset the selected object(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected objects.\n"
+msgstr ""
+"Desplazar los objetos seleccionados.\n"
+"El punto de referencia es el medio de\n"
+"el cuadro delimitador para todos los objetos seleccionados.\n"
+
+#: AppTools/ToolTransform.py:268 AppTools/ToolTransform.py:273
+msgid "Flip the selected object(s) over the X axis."
+msgstr "Voltee los objetos seleccionados sobre el eje X."
+
+#: AppTools/ToolTransform.py:297
+msgid "Ref. Point"
+msgstr "Punto de Ref"
+
+#: AppTools/ToolTransform.py:348
+msgid ""
+"Create the buffer effect on each geometry,\n"
+"element from the selected object, using the distance."
+msgstr ""
+"Crea el efecto de amortiguación en cada geometría,\n"
+"elemento del objeto seleccionado, utilizando la distancia."
+
+#: AppTools/ToolTransform.py:374
+msgid ""
+"Create the buffer effect on each geometry,\n"
+"element from the selected object, using the factor."
+msgstr ""
+"Crea el efecto de amortiguación en cada geometría,\n"
+"elemento del objeto seleccionado, utilizando el factor."
+
+#: AppTools/ToolTransform.py:479
+msgid "Buffer D"
+msgstr "Buffer D"
+
+#: AppTools/ToolTransform.py:480
+msgid "Buffer F"
+msgstr "Buffer F"
+
+#: AppTools/ToolTransform.py:557
+msgid "Rotate transformation can not be done for a value of 0."
+msgstr "La transformación de rotación no se puede hacer para un valor de 0."
+
+#: AppTools/ToolTransform.py:596 AppTools/ToolTransform.py:619
+msgid "Scale transformation can not be done for a factor of 0 or 1."
+msgstr "La transformación de escala no se puede hacer para un factor de 0 o 1."
+
+#: AppTools/ToolTransform.py:634 AppTools/ToolTransform.py:644
+msgid "Offset transformation can not be done for a value of 0."
+msgstr ""
+"La transformación de compensación no se puede hacer para un valor de 0."
+
+#: AppTools/ToolTransform.py:676
+msgid "No object selected. Please Select an object to rotate!"
+msgstr ""
+"Ningún objeto seleccionado. Por favor, seleccione un objeto para rotar!"
+
+#: AppTools/ToolTransform.py:702
+msgid "CNCJob objects can't be rotated."
+msgstr "Los objetos de CNCJob no se pueden girar."
+
+#: AppTools/ToolTransform.py:710
+msgid "Rotate done"
+msgstr "Rotar hecho"
+
+#: AppTools/ToolTransform.py:713 AppTools/ToolTransform.py:783
+#: AppTools/ToolTransform.py:833 AppTools/ToolTransform.py:887
+#: AppTools/ToolTransform.py:917 AppTools/ToolTransform.py:953
+msgid "Due of"
+msgstr "Debido a"
+
+#: AppTools/ToolTransform.py:713 AppTools/ToolTransform.py:783
+#: AppTools/ToolTransform.py:833 AppTools/ToolTransform.py:887
+#: AppTools/ToolTransform.py:917 AppTools/ToolTransform.py:953
+msgid "action was not executed."
+msgstr "la acción no se ejecutó."
+
+#: AppTools/ToolTransform.py:725
+msgid "No object selected. Please Select an object to flip"
+msgstr "Ningún objeto seleccionado. Seleccione un objeto para voltear"
+
+#: AppTools/ToolTransform.py:758
+msgid "CNCJob objects can't be mirrored/flipped."
+msgstr "Los objetos de CNCJob no se pueden reflejar / voltear."
+
+#: AppTools/ToolTransform.py:793
+msgid "Skew transformation can not be done for 0, 90 and 180 degrees."
+msgstr "La transformación oblicua no se puede hacer para 0, 90 y 180 grados."
+
+#: AppTools/ToolTransform.py:798
+msgid "No object selected. Please Select an object to shear/skew!"
+msgstr ""
+"Ningún objeto seleccionado. ¡Seleccione un objeto para cortar / sesgar!"
+
+#: AppTools/ToolTransform.py:818
+msgid "CNCJob objects can't be skewed."
+msgstr "Los objetos de CNCJob no se pueden sesgar."
+
+#: AppTools/ToolTransform.py:830
+msgid "Skew on the"
+msgstr "Sesgar en el"
+
+#: AppTools/ToolTransform.py:830 AppTools/ToolTransform.py:884
+#: AppTools/ToolTransform.py:914
+msgid "axis done"
+msgstr "eje hecho"
+
+#: AppTools/ToolTransform.py:844
+msgid "No object selected. Please Select an object to scale!"
+msgstr ""
+"Ningún objeto seleccionado. Por favor, seleccione un objeto para escalar!"
+
+#: AppTools/ToolTransform.py:875
+msgid "CNCJob objects can't be scaled."
+msgstr "Los objetos de CNCJob no se pueden escalar."
+
+#: AppTools/ToolTransform.py:884
+msgid "Scale on the"
+msgstr "Escala en el"
+
+#: AppTools/ToolTransform.py:894
+msgid "No object selected. Please Select an object to offset!"
+msgstr ""
+"Ningún objeto seleccionado. Por favor, seleccione un objeto para compensar!"
+
+#: AppTools/ToolTransform.py:901
+msgid "CNCJob objects can't be offset."
+msgstr "Los objetos CNCJob no se pueden compensar."
+
+#: AppTools/ToolTransform.py:914
+msgid "Offset on the"
+msgstr "Offset en el"
+
+#: AppTools/ToolTransform.py:924
+msgid "No object selected. Please Select an object to buffer!"
+msgstr ""
+"Ningún objeto seleccionado. Por favor, seleccione un objeto para almacenar!"
+
+#: AppTools/ToolTransform.py:927
+msgid "Applying Buffer"
+msgstr "Aplicando Tampón"
+
+#: AppTools/ToolTransform.py:931
+msgid "CNCJob objects can't be buffered."
+msgstr "Los objetos CNCJob no se pueden almacenar en búfer."
+
+#: AppTools/ToolTransform.py:948
+msgid "Buffer done"
+msgstr "Tampón hecho"
+
+#: AppTranslation.py:104
+msgid "The application will restart."
+msgstr "La aplicación se reiniciará."
+
+#: AppTranslation.py:106
+msgid "Are you sure do you want to change the current language to"
+msgstr "¿Está seguro de que desea cambiar el idioma actual a"
+
+#: AppTranslation.py:107
+msgid "Apply Language ..."
+msgstr "Aplicar Idioma ..."
+
+#: AppTranslation.py:201 App_Main.py:3047
+msgid ""
+"There are files/objects modified in FlatCAM. \n"
+"Do you want to Save the project?"
+msgstr ""
+"Hay archivos / objetos modificados en FlatCAM.\n"
+"¿Quieres guardar el proyecto?"
+
+#: AppTranslation.py:204 App_Main.py:3050 App_Main.py:6334
+msgid "Save changes"
+msgstr "Guardar cambios"
+
+#: App_Main.py:477
msgid "FlatCAM is initializing ..."
msgstr "FlatCAM se está inicializando ..."
-#: FlatCAMApp.py:639
+#: App_Main.py:620
msgid "Could not find the Language files. The App strings are missing."
msgstr ""
"No se pudieron encontrar los archivos de idioma. Las cadenas de aplicación "
"faltan."
-#: FlatCAMApp.py:709
+#: App_Main.py:692
msgid ""
"FlatCAM is initializing ...\n"
"Canvas initialization started."
@@ -40,7 +16903,7 @@ msgstr ""
"FlatCAM se está inicializando ...\n"
"Se inició la inicialización del lienzo."
-#: FlatCAMApp.py:729
+#: App_Main.py:712
msgid ""
"FlatCAM is initializing ...\n"
"Canvas initialization started.\n"
@@ -50,63 +16913,44 @@ msgstr ""
"Se inició la inicialización del lienzo.\n"
"La inicialización del lienzo terminó en"
-#: FlatCAMApp.py:1593 FlatCAMApp.py:7451
+#: App_Main.py:1542 App_Main.py:6445
msgid "New Project - Not saved"
msgstr "Proyecto nuevo: no guardado"
-#: FlatCAMApp.py:1689
+#: App_Main.py:1643
msgid ""
"Found old default preferences files. Please reboot the application to update."
msgstr ""
"Se encontraron archivos de preferencias predeterminados antiguos. Reinicie "
"la aplicación para actualizar."
-#: FlatCAMApp.py:1740 FlatCAMApp.py:2512 FlatCAMApp.py:2547 FlatCAMApp.py:2594
-#: FlatCAMApp.py:4540 FlatCAMApp.py:7535 FlatCAMApp.py:7572 FlatCAMApp.py:7614
-#: FlatCAMApp.py:7643 FlatCAMApp.py:7684 FlatCAMApp.py:7709 FlatCAMApp.py:7761
-#: FlatCAMApp.py:7796 FlatCAMApp.py:7841 FlatCAMApp.py:7882 FlatCAMApp.py:7923
-#: FlatCAMApp.py:7964 FlatCAMApp.py:8005 FlatCAMApp.py:8049 FlatCAMApp.py:8105
-#: FlatCAMApp.py:8137 FlatCAMApp.py:8169 FlatCAMApp.py:8402 FlatCAMApp.py:8440
-#: FlatCAMApp.py:8483 FlatCAMApp.py:8560 FlatCAMApp.py:8615
-#: FlatCAMBookmark.py:300 FlatCAMBookmark.py:342 FlatCAMDB.py:663
-#: FlatCAMDB.py:709 FlatCAMDB.py:2125 FlatCAMDB.py:2171
-#: flatcamEditors/FlatCAMExcEditor.py:1023
-#: flatcamEditors/FlatCAMExcEditor.py:1091
-#: flatcamEditors/FlatCAMTextEditor.py:223 flatcamGUI/FlatCAMGUI.py:3443
-#: flatcamGUI/FlatCAMGUI.py:3659 flatcamGUI/FlatCAMGUI.py:3874
-#: flatcamObjects/ObjectCollection.py:126 flatcamTools/ToolFilm.py:754
-#: flatcamTools/ToolFilm.py:900 flatcamTools/ToolImage.py:247
-#: flatcamTools/ToolMove.py:269 flatcamTools/ToolPcbWizard.py:301
-#: flatcamTools/ToolPcbWizard.py:324 flatcamTools/ToolQRCode.py:791
-#: flatcamTools/ToolQRCode.py:838
-msgid "Cancelled."
-msgstr "Cancelado."
-
-#: FlatCAMApp.py:1756
+#: App_Main.py:1710
msgid "Open Config file failed."
msgstr "El archivo de configuración abierto falló."
-#: FlatCAMApp.py:1771
+#: App_Main.py:1725
msgid "Open Script file failed."
msgstr "Error al abrir el archivo de script."
-#: FlatCAMApp.py:1797
+#: App_Main.py:1751
msgid "Open Excellon file failed."
msgstr "Abrir archivo Excellon falló."
-#: FlatCAMApp.py:1810
+#: App_Main.py:1764
msgid "Open GCode file failed."
msgstr "Error al abrir el archivo GCode."
-#: FlatCAMApp.py:1823
+#: App_Main.py:1777
msgid "Open Gerber file failed."
msgstr "Error al abrir el archivo Gerber."
-#: FlatCAMApp.py:2131
-msgid "Select a Geometry, Gerber or Excellon Object to edit."
+#: App_Main.py:2095
+#, fuzzy
+#| msgid "Select a Geometry, Gerber or Excellon Object to edit."
+msgid "Select a Geometry, Gerber, Excellon or CNCJob Object to edit."
msgstr "Seleccione un objeto Geometry, Gerber o Excellon para editar."
-#: FlatCAMApp.py:2146
+#: App_Main.py:2110
msgid ""
"Simultaneous editing of tools geometry in a MultiGeo Geometry is not "
"possible.\n"
@@ -116,196 +16960,91 @@ msgstr ""
"MultiGeo no es posible.\n"
"Edite solo una geometría a la vez."
-#: FlatCAMApp.py:2204
+#: App_Main.py:2176
msgid "Editor is activated ..."
msgstr "Editor está activado ..."
-#: FlatCAMApp.py:2225
+#: App_Main.py:2197
msgid "Do you want to save the edited object?"
msgstr "Quieres guardar el objeto editado?"
-#: FlatCAMApp.py:2226 flatcamGUI/FlatCAMGUI.py:2288
-msgid "Close Editor"
-msgstr "Cerrar Editor"
-
-#: FlatCAMApp.py:2229 FlatCAMApp.py:3518 FlatCAMApp.py:6085 FlatCAMApp.py:7345
-#: FlatCAMTranslation.py:109 FlatCAMTranslation.py:207
-#: flatcamGUI/FlatCAMGUI.py:2519
-#: flatcamGUI/preferences/PreferencesUIManager.py:1122
-msgid "Yes"
-msgstr "Sí"
-
-#: FlatCAMApp.py:2230 FlatCAMApp.py:3519 FlatCAMApp.py:6086 FlatCAMApp.py:7346
-#: FlatCAMTranslation.py:110 FlatCAMTranslation.py:208
-#: flatcamGUI/FlatCAMGUI.py:2520
-#: flatcamGUI/preferences/PreferencesUIManager.py:1123
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:164
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:150
-#: flatcamTools/ToolNCC.py:182 flatcamTools/ToolPaint.py:166
-msgid "No"
-msgstr "No"
-
-#: FlatCAMApp.py:2231 FlatCAMApp.py:3520 FlatCAMApp.py:4478 FlatCAMApp.py:5103
-#: FlatCAMApp.py:7347 FlatCAMDB.py:128 FlatCAMDB.py:1689
-#: flatcamGUI/FlatCAMGUI.py:1347
-msgid "Cancel"
-msgstr "Cancelar"
-
-#: FlatCAMApp.py:2263
+#: App_Main.py:2235
msgid "Object empty after edit."
msgstr "Objeto vacío después de editar."
-#: FlatCAMApp.py:2267 FlatCAMApp.py:2288 FlatCAMApp.py:2310
+#: App_Main.py:2239 App_Main.py:2260 App_Main.py:2282
msgid "Editor exited. Editor content saved."
msgstr "Editor salido. Contenido del editor guardado."
-#: FlatCAMApp.py:2314 FlatCAMApp.py:2337 FlatCAMApp.py:2355
+#: App_Main.py:2286 App_Main.py:2309 App_Main.py:2327
msgid "Select a Gerber, Geometry or Excellon Object to update."
msgstr "Seleccione un objeto Gerber, Geometry o Excellon para actualizar."
-#: FlatCAMApp.py:2317
+#: App_Main.py:2289
msgid "is updated, returning to App..."
msgstr "se actualiza, volviendo a la aplicación ..."
-#: FlatCAMApp.py:2324
+#: App_Main.py:2296
msgid "Editor exited. Editor content was not saved."
msgstr "Editor salido. El contenido del editor no se guardó."
-#: FlatCAMApp.py:2504 FlatCAMApp.py:2508
+#: App_Main.py:2422 App_Main.py:2426
msgid "Import FlatCAM Preferences"
msgstr "Importar preferencias de FlatCAM"
-#: FlatCAMApp.py:2519
+#: App_Main.py:2437
msgid "Imported Defaults from"
msgstr "Valores predeterminados importados de"
-#: FlatCAMApp.py:2539 FlatCAMApp.py:2544
+#: App_Main.py:2457 App_Main.py:2462
msgid "Export FlatCAM Preferences"
msgstr "Exportar preferencias de FlatCAM"
-#: FlatCAMApp.py:2558 FlatCAMApp.py:2626
-#: flatcamGUI/preferences/PreferencesUIManager.py:1018
-msgid "Failed to write defaults to file."
-msgstr "Error al escribir los valores predeterminados en el archivo."
-
-#: FlatCAMApp.py:2564
+#: App_Main.py:2482
msgid "Exported preferences to"
msgstr "Preferencias exportadas a"
-#: FlatCAMApp.py:2584 FlatCAMApp.py:2589
+#: App_Main.py:2502 App_Main.py:2507
msgid "Save to file"
msgstr "Guardar en archivo"
-#: FlatCAMApp.py:2602 FlatCAMApp.py:8859 FlatCAMApp.py:8907 FlatCAMApp.py:9032
-#: FlatCAMApp.py:9168 FlatCAMBookmark.py:308 FlatCAMDB.py:671 FlatCAMDB.py:2133
-#: flatcamEditors/FlatCAMTextEditor.py:276 flatcamObjects/FlatCAMCNCJob.py:959
-#: flatcamTools/ToolFilm.py:1031 flatcamTools/ToolFilm.py:1212
-#: flatcamTools/ToolSolderPaste.py:1534
-msgid ""
-"Permission denied, saving not possible.\n"
-"Most likely another app is holding the file open and not accessible."
-msgstr ""
-"Permiso denegado, no es posible guardar.\n"
-"Lo más probable es que otra aplicación mantenga el archivo abierto y no "
-"accesible."
-
-#: FlatCAMApp.py:2613
+#: App_Main.py:2531
msgid "Could not load the file."
msgstr "No se pudo cargar el archivo."
-#: FlatCAMApp.py:2629
+#: App_Main.py:2547
msgid "Exported file to"
msgstr "Exported file to"
-#: FlatCAMApp.py:2712
+#: App_Main.py:2584
msgid "Failed to open recent files file for writing."
msgstr "Error al abrir archivos recientes para escritura."
-#: FlatCAMApp.py:2723
+#: App_Main.py:2595
msgid "Failed to open recent projects file for writing."
msgstr "Error al abrir el archivo de proyectos recientes para escribir."
-#: FlatCAMApp.py:2806 FlatCAMApp.py:9377 FlatCAMApp.py:9441 FlatCAMApp.py:9572
-#: FlatCAMApp.py:9637 FlatCAMApp.py:10287
-#: flatcamEditors/FlatCAMGrbEditor.py:4364
-#: flatcamObjects/FlatCAMGeometry.py:1725 flatcamParsers/ParseExcellon.py:897
-#: flatcamTools/ToolPcbWizard.py:432
-msgid "An internal error has occurred. See shell.\n"
-msgstr "Ha ocurrido un error interno. Ver concha\n"
-
-#: FlatCAMApp.py:2807
-#, python-brace-format
-msgid ""
-"Object ({kind}) failed because: {error} \n"
-"\n"
-msgstr "El objeto ({kind}) falló porque: {error}\n"
-
-#: FlatCAMApp.py:2822
-msgid "Converting units to "
-msgstr "Convertir unidades a "
-
-#: FlatCAMApp.py:2931
-msgid "CREATE A NEW FLATCAM TCL SCRIPT"
-msgstr "CREA UN NUEVO SCRIPT FLATCAM TCL"
-
-#: FlatCAMApp.py:2932
-msgid "TCL Tutorial is here"
-msgstr "TCL Tutorial está aquí"
-
-#: FlatCAMApp.py:2934
-msgid "FlatCAM commands list"
-msgstr "Lista de comandos de FlatCAM"
-
-#: FlatCAMApp.py:2935
-msgid ""
-"Type >help< followed by Run Code for a list of FlatCAM Tcl Commands "
-"(displayed in Tcl Shell)."
-msgstr ""
-"Escriba> help Iconos de oNline Web Fonts"
-#: FlatCAMApp.py:3202
+#: App_Main.py:2736
msgid "Splash"
msgstr "Pantalla de bienvenida"
-#: FlatCAMApp.py:3208
+#: App_Main.py:2742
msgid "Programmers"
msgstr "Programadores"
-#: FlatCAMApp.py:3214
+#: App_Main.py:2748
msgid "Translators"
msgstr "Traductores"
-#: FlatCAMApp.py:3220
+#: App_Main.py:2754
msgid "License"
msgstr "Licencia"
-#: FlatCAMApp.py:3226
+#: App_Main.py:2760
msgid "Attributions"
msgstr "Atribuciones"
-#: FlatCAMApp.py:3249
+#: App_Main.py:2783
msgid "Programmer"
msgstr "Programador"
-#: FlatCAMApp.py:3250
+#: App_Main.py:2784
msgid "Status"
msgstr "Estado"
-#: FlatCAMApp.py:3251 FlatCAMApp.py:3331
+#: App_Main.py:2785 App_Main.py:2865
msgid "E-mail"
msgstr "Email"
-#: FlatCAMApp.py:3259
+#: App_Main.py:2788
+msgid "Program Author"
+msgstr "Autor del programa"
+
+#: App_Main.py:2793
msgid "BETA Maintainer >= 2019"
msgstr "BETA Mantenedor >= 2019"
-#: FlatCAMApp.py:3328
+#: App_Main.py:2862
msgid "Language"
msgstr "Idioma"
-#: FlatCAMApp.py:3329
+#: App_Main.py:2863
msgid "Translator"
msgstr "Traductor"
-#: FlatCAMApp.py:3330
+#: App_Main.py:2864
msgid "Corrections"
msgstr "Correcciones"
-#: FlatCAMApp.py:3455 FlatCAMApp.py:3464 flatcamGUI/FlatCAMGUI.py:527
-msgid "Bookmarks Manager"
-msgstr "Administrador de Marcadores"
-
-#: FlatCAMApp.py:3475
+#: App_Main.py:3009
msgid ""
"This entry will resolve to another website if:\n"
"\n"
@@ -443,45 +17182,29 @@ msgstr ""
"Si no puede obtener información sobre FlatCAM beta\n"
"use el enlace del canal de YouTube desde el menú Ayuda."
-#: FlatCAMApp.py:3482
+#: App_Main.py:3016
msgid "Alternative website"
msgstr "Sitio web alternativo"
-#: FlatCAMApp.py:3508 flatcamGUI/FlatCAMGUI.py:4267
-msgid "Application is saving the project. Please wait ..."
-msgstr "La aplicación es guardar el proyecto. Por favor espera ..."
-
-#: FlatCAMApp.py:3513 FlatCAMTranslation.py:202
-msgid ""
-"There are files/objects modified in FlatCAM. \n"
-"Do you want to Save the project?"
-msgstr ""
-"Hay archivos / objetos modificados en FlatCAM.\n"
-"¿Quieres guardar el proyecto?"
-
-#: FlatCAMApp.py:3516 FlatCAMApp.py:7343 FlatCAMTranslation.py:205
-msgid "Save changes"
-msgstr "Guardar cambios"
-
-#: FlatCAMApp.py:3778
+#: App_Main.py:3315
msgid "Selected Excellon file extensions registered with FlatCAM."
msgstr "Extensiones de archivo Excellon seleccionadas registradas con FlatCAM."
-#: FlatCAMApp.py:3800
+#: App_Main.py:3337
msgid "Selected GCode file extensions registered with FlatCAM."
msgstr "Extensiones de archivo GCode seleccionadas registradas con FlatCAM."
-#: FlatCAMApp.py:3822
+#: App_Main.py:3359
msgid "Selected Gerber file extensions registered with FlatCAM."
msgstr "Extensiones de archivo Gerber seleccionadas registradas con FlatCAM."
-#: FlatCAMApp.py:4010 FlatCAMApp.py:4069 FlatCAMApp.py:4097
+#: App_Main.py:3547 App_Main.py:3606 App_Main.py:3634
msgid "At least two objects are required for join. Objects currently selected"
msgstr ""
"Se requieren al menos dos objetos para unirse. Objetos actualmente "
"seleccionados"
-#: FlatCAMApp.py:4019
+#: App_Main.py:3556
msgid ""
"Failed join. The Geometry objects are of different types.\n"
"At least one is MultiGeo type and the other is SingleGeo type. A possibility "
@@ -497,47 +17220,47 @@ msgstr ""
"pueden perderse y el resultado puede no ser el esperado.\n"
"Compruebe el GCODE generado."
-#: FlatCAMApp.py:4031 FlatCAMApp.py:4041
+#: App_Main.py:3568 App_Main.py:3578
msgid "Geometry merging finished"
msgstr "Geometría fusionada terminada"
-#: FlatCAMApp.py:4064
+#: App_Main.py:3601
msgid "Failed. Excellon joining works only on Excellon objects."
msgstr "Ha fallado. La unión de Excellon funciona solo en objetos de Excellon."
-#: FlatCAMApp.py:4074
+#: App_Main.py:3611
msgid "Excellon merging finished"
msgstr "Excellon fusión finalizada"
-#: FlatCAMApp.py:4092
+#: App_Main.py:3629
msgid "Failed. Gerber joining works only on Gerber objects."
msgstr "Ha fallado. La unión de Gerber funciona solo en objetos de Gerber."
-#: FlatCAMApp.py:4102
+#: App_Main.py:3639
msgid "Gerber merging finished"
msgstr "Gerber fusión finalizada"
-#: FlatCAMApp.py:4122 FlatCAMApp.py:4159
+#: App_Main.py:3659 App_Main.py:3696
msgid "Failed. Select a Geometry Object and try again."
msgstr "Ha fallado. Seleccione un objeto de Geometría y vuelva a intentarlo."
-#: FlatCAMApp.py:4126 FlatCAMApp.py:4164
+#: App_Main.py:3663 App_Main.py:3701
msgid "Expected a GeometryObject, got"
msgstr "Se esperaba un GeometryObject, se obtuvo"
-#: FlatCAMApp.py:4141
+#: App_Main.py:3678
msgid "A Geometry object was converted to MultiGeo type."
msgstr "Un objeto Geometry fue convertido al tipo MultiGeo."
-#: FlatCAMApp.py:4179
+#: App_Main.py:3716
msgid "A Geometry object was converted to SingleGeo type."
msgstr "Un objeto Geometry fue convertido al tipo SingleGeo."
-#: FlatCAMApp.py:4472
+#: App_Main.py:3922
msgid "Toggle Units"
msgstr "(Escriba ayuda para empezar)"
-#: FlatCAMApp.py:4474
+#: App_Main.py:3924
msgid ""
"Changing the units of the project\n"
"will scale all objects.\n"
@@ -549,33 +17272,68 @@ msgstr ""
"\n"
"¿Quieres continuar?"
-#: FlatCAMApp.py:4477 FlatCAMApp.py:5025 FlatCAMApp.py:5102 FlatCAMApp.py:7728
-#: FlatCAMApp.py:7742 FlatCAMApp.py:8075 FlatCAMApp.py:8085
+#: App_Main.py:3927 App_Main.py:4201 App_Main.py:4278 App_Main.py:6722
+#: App_Main.py:6736 App_Main.py:7069 App_Main.py:7079
msgid "Ok"
msgstr "De acuerdo"
-#: FlatCAMApp.py:4526
+#: App_Main.py:3977
msgid "Converted units to"
msgstr "Convertir unidades a"
-#: FlatCAMApp.py:4928
+#: App_Main.py:4019
+#, fuzzy
+#| msgid "All plots enabled."
+msgid "Axis enabled."
+msgstr "Todas las parcelas habilitadas."
+
+#: App_Main.py:4031
+#, fuzzy
+#| msgid "All plots disabled."
+msgid "Axis disabled."
+msgstr "Todas las parcelas con discapacidad."
+
+#: App_Main.py:4039
+#, fuzzy
+#| msgid "Disabled"
+msgid "HUD disabled."
+msgstr "Discapacitado"
+
+#: App_Main.py:4041
+#, fuzzy
+#| msgid "Enabled"
+msgid "HUD enabled."
+msgstr "Habilitado"
+
+#: App_Main.py:4065
+#, fuzzy
+#| msgid "Workspace Settings"
+msgid "Grid enabled."
+msgstr "Configuración del espacio de trabajo"
+
+#: App_Main.py:4080
+#, fuzzy
+#| msgid "Workspace Settings"
+msgid "Grid disabled."
+msgstr "Configuración del espacio de trabajo"
+
+#: App_Main.py:4101
msgid "Detachable Tabs"
msgstr "Tabulacion desmontables"
-#: FlatCAMApp.py:5014 flatcamTools/ToolNCC.py:932 flatcamTools/ToolNCC.py:1431
-#: flatcamTools/ToolPaint.py:858 flatcamTools/ToolSolderPaste.py:568
-#: flatcamTools/ToolSolderPaste.py:893
-msgid "Please enter a tool diameter with non-zero value, in Float format."
-msgstr ""
-"Introduzca un diámetro de herramienta con valor distinto de cero, en formato "
-"Float."
+#: App_Main.py:4130
+#, fuzzy
+#| msgid "Workspace Settings"
+msgid "Workspace enabled."
+msgstr "Configuración del espacio de trabajo"
-#: FlatCAMApp.py:5018 flatcamTools/ToolNCC.py:936 flatcamTools/ToolPaint.py:862
-#: flatcamTools/ToolSolderPaste.py:572
-msgid "Adding Tool cancelled"
-msgstr "Añadiendo herramienta cancelada"
+#: App_Main.py:4133
+#, fuzzy
+#| msgid "Workspace Settings"
+msgid "Workspace disabled."
+msgstr "Configuración del espacio de trabajo"
-#: FlatCAMApp.py:5021
+#: App_Main.py:4197
msgid ""
"Adding Tool works only when Advanced is checked.\n"
"Go to Preferences -> General - Show Advanced Options."
@@ -583,11 +17341,11 @@ msgstr ""
"Agregar herramienta solo funciona cuando se selecciona Avanzado.\n"
"Vaya a Preferencias -> General - Mostrar opciones avanzadas."
-#: FlatCAMApp.py:5097
+#: App_Main.py:4273
msgid "Delete objects"
msgstr "Eliminar objetos"
-#: FlatCAMApp.py:5100
+#: App_Main.py:4276
msgid ""
"Are you sure you want to permanently delete\n"
"the selected objects?"
@@ -595,147 +17353,86 @@ msgstr ""
"¿Estás seguro de que deseas eliminarlo permanentemente?\n"
"los objetos seleccionados?"
-#: FlatCAMApp.py:5138
+#: App_Main.py:4314
msgid "Object(s) deleted"
msgstr "Objeto (s) eliminado"
-#: FlatCAMApp.py:5142 FlatCAMApp.py:5297 flatcamTools/ToolDblSided.py:818
-msgid "Failed. No object(s) selected..."
-msgstr "Ha fallado. Ningún objeto (s) seleccionado ..."
-
-#: FlatCAMApp.py:5144
+#: App_Main.py:4324
msgid "Save the work in Editor and try again ..."
msgstr "Guarda el trabajo en el Editor y vuelve a intentarlo ..."
-#: FlatCAMApp.py:5173
+#: App_Main.py:4353
msgid "Object deleted"
msgstr "Objeto eliminado"
-#: FlatCAMApp.py:5200
+#: App_Main.py:4380
msgid "Click to set the origin ..."
msgstr "Haga clic para establecer el origen ..."
-#: FlatCAMApp.py:5222
+#: App_Main.py:4402
msgid "Setting Origin..."
msgstr "Establecer Origen ..."
-#: FlatCAMApp.py:5235 FlatCAMApp.py:5337
+#: App_Main.py:4415 App_Main.py:4517
msgid "Origin set"
msgstr "Conjunto de origen"
-#: FlatCAMApp.py:5252
+#: App_Main.py:4432
msgid "Origin coordinates specified but incomplete."
msgstr "Origin coordinates specified but incomplete."
-#: FlatCAMApp.py:5293
+#: App_Main.py:4473
msgid "Moving to Origin..."
msgstr "Mudarse al origen ..."
-#: FlatCAMApp.py:5374
+#: App_Main.py:4554
msgid "Jump to ..."
msgstr "Salta a ..."
-#: FlatCAMApp.py:5375
+#: App_Main.py:4555
msgid "Enter the coordinates in format X,Y:"
msgstr "Introduzca las coordenadas en formato X, Y:"
-#: FlatCAMApp.py:5385
+#: App_Main.py:4565
msgid "Wrong coordinates. Enter coordinates in format: X,Y"
msgstr "Coordenadas erróneas. Introduzca las coordenadas en formato: X, Y"
-#: FlatCAMApp.py:5463 FlatCAMApp.py:5612
-#: flatcamEditors/FlatCAMExcEditor.py:3624
-#: flatcamEditors/FlatCAMExcEditor.py:3632
-#: flatcamEditors/FlatCAMGeoEditor.py:4349
-#: flatcamEditors/FlatCAMGeoEditor.py:4363
-#: flatcamEditors/FlatCAMGrbEditor.py:1087
-#: flatcamEditors/FlatCAMGrbEditor.py:1204
-#: flatcamEditors/FlatCAMGrbEditor.py:1490
-#: flatcamEditors/FlatCAMGrbEditor.py:1759
-#: flatcamEditors/FlatCAMGrbEditor.py:4622
-#: flatcamEditors/FlatCAMGrbEditor.py:4637 flatcamGUI/FlatCAMGUI.py:3424
-#: flatcamGUI/FlatCAMGUI.py:3436 flatcamTools/ToolAlignObjects.py:393
-#: flatcamTools/ToolAlignObjects.py:415
-msgid "Done."
-msgstr "Hecho."
-
-#: FlatCAMApp.py:5478 FlatCAMApp.py:7724 FlatCAMApp.py:7819 FlatCAMApp.py:7860
-#: FlatCAMApp.py:7901 FlatCAMApp.py:7942 FlatCAMApp.py:7983 FlatCAMApp.py:8027
-#: FlatCAMApp.py:8071 FlatCAMApp.py:8593 FlatCAMApp.py:8597
-#: flatcamTools/ToolProperties.py:116
-msgid "No object selected."
-msgstr "Ningún objeto seleccionado."
-
-#: FlatCAMApp.py:5497
+#: App_Main.py:4683
msgid "Bottom-Left"
msgstr "Abajo-izquierda"
-#: FlatCAMApp.py:5498 flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:131
-#: flatcamTools/ToolCalibration.py:159
-msgid "Top-Left"
-msgstr "Arriba a la izquierda"
-
-#: FlatCAMApp.py:5499 flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:132
-#: flatcamTools/ToolCalibration.py:160
-msgid "Bottom-Right"
-msgstr "Abajo a la derecha"
-
-#: FlatCAMApp.py:5500
+#: App_Main.py:4686
msgid "Top-Right"
msgstr "Top-Derecha"
-#: FlatCAMApp.py:5501 flatcamGUI/ObjectUI.py:2706
-msgid "Center"
-msgstr "Centrar"
-
-#: FlatCAMApp.py:5521
+#: App_Main.py:4707
msgid "Locate ..."
msgstr "Localizar ..."
-#: FlatCAMApp.py:5779 FlatCAMApp.py:5856
+#: App_Main.py:4970 App_Main.py:5047
msgid "No object is selected. Select an object and try again."
msgstr ""
"Ningún objeto está seleccionado. Seleccione un objeto y vuelva a intentarlo."
-#: FlatCAMApp.py:5882
+#: App_Main.py:5073
msgid ""
"Aborting. The current task will be gracefully closed as soon as possible..."
msgstr "Abortar La tarea actual se cerrará con gracia lo antes posible ..."
-#: FlatCAMApp.py:5888
+#: App_Main.py:5079
msgid "The current task was gracefully closed on user request..."
msgstr "La tarea actual se cerró correctamente a petición del usuario ..."
-#: FlatCAMApp.py:5916 flatcamGUI/preferences/PreferencesUIManager.py:905
-#: flatcamGUI/preferences/PreferencesUIManager.py:949
-#: flatcamGUI/preferences/PreferencesUIManager.py:970
-#: flatcamGUI/preferences/PreferencesUIManager.py:1075
-msgid "Preferences"
-msgstr "Preferencias"
-
-#: FlatCAMApp.py:5981 FlatCAMApp.py:6009 FlatCAMApp.py:6036 FlatCAMApp.py:6056
-#: FlatCAMDB.py:738 FlatCAMDB.py:913 FlatCAMDB.py:2200 FlatCAMDB.py:2418
-#: flatcamObjects/FlatCAMGeometry.py:890 flatcamTools/ToolNCC.py:3963
-#: flatcamTools/ToolNCC.py:4047 flatcamTools/ToolPaint.py:3553
-#: flatcamTools/ToolPaint.py:3638
-msgid "Tools Database"
-msgstr "Base de Datos de Herramientas"
-
-#: FlatCAMApp.py:6033
+#: App_Main.py:5224
msgid "Tools in Tools Database edited but not saved."
msgstr ""
"Herramientas en la base de datos de herramientas editadas pero no guardadas."
-#: FlatCAMApp.py:6060 flatcamTools/ToolNCC.py:3970
-#: flatcamTools/ToolPaint.py:3560
-msgid "Tool from DB added in Tool Table."
-msgstr "Herramienta de DB agregada en la Tabla de herramientas."
-
-#: FlatCAMApp.py:6062
+#: App_Main.py:5253
msgid "Adding tool from DB is not allowed for this object."
msgstr "No se permite agregar herramientas desde DB para este objeto."
-#: FlatCAMApp.py:6080
+#: App_Main.py:5271
msgid ""
"One or more Tools are edited.\n"
"Do you want to update the Tools Database?"
@@ -743,175 +17440,113 @@ msgstr ""
"Se editan una o más herramientas.\n"
"¿Desea actualizar la base de datos de herramientas?"
-#: FlatCAMApp.py:6082
+#: App_Main.py:5273
msgid "Save Tools Database"
msgstr "Guardar base de datos de herramientas"
-#: FlatCAMApp.py:6135
+#: App_Main.py:5326
msgid "No object selected to Flip on Y axis."
msgstr "Ningún objeto seleccionado para Voltear en el eje Y."
-#: FlatCAMApp.py:6161
+#: App_Main.py:5352
msgid "Flip on Y axis done."
msgstr "Voltear sobre el eje Y hecho."
-#: FlatCAMApp.py:6163 FlatCAMApp.py:6211
-#: flatcamEditors/FlatCAMGrbEditor.py:6059
-msgid "Flip action was not executed."
-msgstr "La acción de voltear no se ejecutó."
-
-#: FlatCAMApp.py:6183
+#: App_Main.py:5374
msgid "No object selected to Flip on X axis."
msgstr "Ningún objeto seleccionado para Voltear en el eje X."
-#: FlatCAMApp.py:6209
+#: App_Main.py:5400
msgid "Flip on X axis done."
msgstr "Voltear sobre el eje X hecho."
-#: FlatCAMApp.py:6231
+#: App_Main.py:5422
msgid "No object selected to Rotate."
msgstr "Ningún objeto seleccionado para rotar."
-#: FlatCAMApp.py:6234 FlatCAMApp.py:6287 FlatCAMApp.py:6326
+#: App_Main.py:5425 App_Main.py:5476 App_Main.py:5513
msgid "Transform"
msgstr "Transformar"
-#: FlatCAMApp.py:6234 FlatCAMApp.py:6287 FlatCAMApp.py:6326
+#: App_Main.py:5425 App_Main.py:5476 App_Main.py:5513
msgid "Enter the Angle value:"
msgstr "Ingrese el valor del ángulo:"
-#: FlatCAMApp.py:6265
+#: App_Main.py:5455
msgid "Rotation done."
msgstr "Rotación hecha."
-#: FlatCAMApp.py:6267
+#: App_Main.py:5457
msgid "Rotation movement was not executed."
msgstr "El movimiento de rotación no se ejecutó."
-#: FlatCAMApp.py:6285
+#: App_Main.py:5474
msgid "No object selected to Skew/Shear on X axis."
msgstr "Ningún objeto seleccionado para sesgar / cortar en el eje X."
-#: FlatCAMApp.py:6307
+#: App_Main.py:5495
msgid "Skew on X axis done."
msgstr "Sesgar en el eje X hecho."
-#: FlatCAMApp.py:6324
+#: App_Main.py:5511
msgid "No object selected to Skew/Shear on Y axis."
msgstr "Ningún objeto seleccionado para sesgar / cortar en el eje Y."
-#: FlatCAMApp.py:6346
+#: App_Main.py:5532
msgid "Skew on Y axis done."
msgstr "Sesgar en el eje Y hecho."
-#: FlatCAMApp.py:6497 FlatCAMApp.py:6544 flatcamGUI/FlatCAMGUI.py:503
-#: flatcamGUI/FlatCAMGUI.py:1728
-msgid "Select All"
-msgstr "Seleccionar todo"
-
-#: FlatCAMApp.py:6501 FlatCAMApp.py:6548 flatcamGUI/FlatCAMGUI.py:505
-msgid "Deselect All"
-msgstr "Deseleccionar todo"
-
-#: FlatCAMApp.py:6564
-msgid "All objects are selected."
-msgstr "Todos los objetos están seleccionados."
-
-#: FlatCAMApp.py:6574
-msgid "Objects selection is cleared."
-msgstr "La selección de objetos se borra."
-
-#: FlatCAMApp.py:6594 flatcamGUI/FlatCAMGUI.py:1721
-msgid "Grid On/Off"
-msgstr "Grid On/Off"
-
-#: FlatCAMApp.py:6606 flatcamEditors/FlatCAMGeoEditor.py:939
-#: flatcamEditors/FlatCAMGrbEditor.py:2583
-#: flatcamEditors/FlatCAMGrbEditor.py:5641 flatcamGUI/ObjectUI.py:1595
-#: flatcamTools/ToolDblSided.py:192 flatcamTools/ToolDblSided.py:425
-#: flatcamTools/ToolNCC.py:294 flatcamTools/ToolNCC.py:631
-#: flatcamTools/ToolPaint.py:277 flatcamTools/ToolPaint.py:676
-#: flatcamTools/ToolSolderPaste.py:122 flatcamTools/ToolSolderPaste.py:597
-#: flatcamTools/ToolTransform.py:478
-msgid "Add"
-msgstr "Añadir"
-
-#: FlatCAMApp.py:6608 flatcamEditors/FlatCAMGrbEditor.py:2588
-#: flatcamEditors/FlatCAMGrbEditor.py:2736 flatcamGUI/FlatCAMGUI.py:751
-#: flatcamGUI/FlatCAMGUI.py:1074 flatcamGUI/FlatCAMGUI.py:2141
-#: flatcamGUI/FlatCAMGUI.py:2284 flatcamGUI/FlatCAMGUI.py:2777
-#: flatcamGUI/ObjectUI.py:1623 flatcamObjects/FlatCAMGeometry.py:505
-#: flatcamTools/ToolNCC.py:316 flatcamTools/ToolNCC.py:637
-#: flatcamTools/ToolPaint.py:299 flatcamTools/ToolPaint.py:682
-#: flatcamTools/ToolSolderPaste.py:128 flatcamTools/ToolSolderPaste.py:600
-msgid "Delete"
-msgstr "Borrar"
-
-#: FlatCAMApp.py:6624
+#: App_Main.py:5611
msgid "New Grid ..."
msgstr "Nueva rejilla ..."
-#: FlatCAMApp.py:6625
+#: App_Main.py:5612
msgid "Enter a Grid Value:"
msgstr "Introduzca un valor de cuadrícula:"
-#: FlatCAMApp.py:6633 FlatCAMApp.py:6660
+#: App_Main.py:5620 App_Main.py:5644
msgid "Please enter a grid value with non-zero value, in Float format."
msgstr ""
"Introduzca un valor de cuadrícula con un valor distinto de cero, en formato "
"Float."
-#: FlatCAMApp.py:6639
+#: App_Main.py:5625
msgid "New Grid added"
msgstr "Nueva rejilla"
-#: FlatCAMApp.py:6642
+#: App_Main.py:5627
msgid "Grid already exists"
msgstr "La rejilla ya existe"
-#: FlatCAMApp.py:6645
+#: App_Main.py:5629
msgid "Adding New Grid cancelled"
msgstr "Agregar nueva cuadrícula cancelado"
-#: FlatCAMApp.py:6667
+#: App_Main.py:5650
msgid " Grid Value does not exist"
msgstr " El valor de cuadrícula no existe"
-#: FlatCAMApp.py:6670
+#: App_Main.py:5652
msgid "Grid Value deleted"
msgstr "Valor de cuadrícula eliminado"
-#: FlatCAMApp.py:6673
+#: App_Main.py:5654
msgid "Delete Grid value cancelled"
msgstr "Eliminar el valor de cuadrícula cancelado"
-#: FlatCAMApp.py:6679
+#: App_Main.py:5660
msgid "Key Shortcut List"
msgstr "Lista de atajos de teclas"
-#: FlatCAMApp.py:6713
+#: App_Main.py:5694
msgid " No object selected to copy it's name"
msgstr " Ningún objeto seleccionado para copiar su nombre"
-#: FlatCAMApp.py:6717
+#: App_Main.py:5698
msgid "Name copied on clipboard ..."
msgstr "Nombre copiado en el portapapeles ..."
-#: FlatCAMApp.py:6930 flatcamEditors/FlatCAMGrbEditor.py:4554
-msgid "Coordinates copied to clipboard."
-msgstr "Coordenadas copiadas al portapapeles."
-
-#: FlatCAMApp.py:7167 FlatCAMApp.py:7173 FlatCAMApp.py:7179 FlatCAMApp.py:7185
-#: flatcamObjects/ObjectCollection.py:922
-#: flatcamObjects/ObjectCollection.py:928
-#: flatcamObjects/ObjectCollection.py:934
-#: flatcamObjects/ObjectCollection.py:940
-#: flatcamObjects/ObjectCollection.py:946
-#: flatcamObjects/ObjectCollection.py:952
-msgid "selected"
-msgstr "seleccionado"
-
-#: FlatCAMApp.py:7340
+#: App_Main.py:6331
msgid ""
"There are files/objects opened in FlatCAM.\n"
"Creating a New project will delete them.\n"
@@ -921,17 +17556,12 @@ msgstr ""
"Crear un nuevo proyecto los borrará.\n"
"¿Quieres guardar el proyecto?"
-#: FlatCAMApp.py:7361
+#: App_Main.py:6352
msgid "New Project created"
msgstr "Nuevo proyecto creado"
-#: FlatCAMApp.py:7519 FlatCAMApp.py:7523 flatcamGUI/FlatCAMGUI.py:836
-#: flatcamGUI/FlatCAMGUI.py:2544
-msgid "Open Gerber"
-msgstr "Abrir gerber"
-
-#: FlatCAMApp.py:7528 FlatCAMApp.py:7565 FlatCAMApp.py:7607 FlatCAMApp.py:7677
-#: FlatCAMApp.py:8462 FlatCAMApp.py:9675 FlatCAMApp.py:9737
+#: App_Main.py:6522 App_Main.py:6559 App_Main.py:6601 App_Main.py:6671
+#: App_Main.py:7454 App_Main.py:8667 App_Main.py:8729
msgid ""
"Canvas initialization started.\n"
"Canvas initialization finished in"
@@ -939,349 +17569,294 @@ msgstr ""
"Se inició la inicialización del lienzo.\n"
"La inicialización del lienzo terminó en"
-#: FlatCAMApp.py:7530
+#: App_Main.py:6524
msgid "Opening Gerber file."
msgstr "Abriendo el archivo Gerber."
-#: FlatCAMApp.py:7557 FlatCAMApp.py:7561 flatcamGUI/FlatCAMGUI.py:838
-#: flatcamGUI/FlatCAMGUI.py:2546
-msgid "Open Excellon"
-msgstr "Abierto Excellon"
-
-#: FlatCAMApp.py:7567
+#: App_Main.py:6561
msgid "Opening Excellon file."
msgstr "Abriendo el archivo Excellon."
-#: FlatCAMApp.py:7598 FlatCAMApp.py:7602
+#: App_Main.py:6592 App_Main.py:6596
msgid "Open G-Code"
msgstr "Código G abierto"
-#: FlatCAMApp.py:7609
+#: App_Main.py:6603
msgid "Opening G-Code file."
msgstr "Abriendo el archivo G-code."
-#: FlatCAMApp.py:7632 FlatCAMApp.py:7635 flatcamGUI/FlatCAMGUI.py:1730
-msgid "Open Project"
-msgstr "Proyecto abierto"
-
-#: FlatCAMApp.py:7668 FlatCAMApp.py:7672
+#: App_Main.py:6662 App_Main.py:6666
msgid "Open HPGL2"
msgstr "Abra HPGL2"
-#: FlatCAMApp.py:7679
+#: App_Main.py:6673
msgid "Opening HPGL2 file."
msgstr "Abrir el archivo HPGL2."
-#: FlatCAMApp.py:7702 FlatCAMApp.py:7705
+#: App_Main.py:6696 App_Main.py:6699
msgid "Open Configuration File"
msgstr "Abrir archivo de configuración"
-#: FlatCAMApp.py:7725 FlatCAMApp.py:8072
+#: App_Main.py:6719 App_Main.py:7066
msgid "Please Select a Geometry object to export"
msgstr "Seleccione un objeto de geometría para exportar"
-#: FlatCAMApp.py:7739
+#: App_Main.py:6733
msgid "Only Geometry, Gerber and CNCJob objects can be used."
msgstr "Solo se pueden utilizar objetos Geometry, Gerber y CNCJob."
-#: FlatCAMApp.py:7752 FlatCAMApp.py:7756 flatcamTools/ToolQRCode.py:829
-#: flatcamTools/ToolQRCode.py:833
-msgid "Export SVG"
-msgstr "Exportar SVG"
-
-#: FlatCAMApp.py:7781
+#: App_Main.py:6775
msgid "Data must be a 3D array with last dimension 3 or 4"
msgstr "Los datos deben ser una matriz 3D con la última dimensión 3 o 4"
-#: FlatCAMApp.py:7787 FlatCAMApp.py:7791
+#: App_Main.py:6781 App_Main.py:6785
msgid "Export PNG Image"
msgstr "Exportar imagen PNG"
-#: FlatCAMApp.py:7824 FlatCAMApp.py:8032
+#: App_Main.py:6818 App_Main.py:7026
msgid "Failed. Only Gerber objects can be saved as Gerber files..."
msgstr ""
"Ha fallado. Solo los objetos Gerber se pueden guardar como archivos "
"Gerber ..."
-#: FlatCAMApp.py:7836
+#: App_Main.py:6830
msgid "Save Gerber source file"
msgstr "Guardar el archivo fuente de Gerber"
-#: FlatCAMApp.py:7865
+#: App_Main.py:6859
msgid "Failed. Only Script objects can be saved as TCL Script files..."
msgstr ""
"Ha fallado. Solo los objetos Script se pueden guardar como archivos TCL "
"Script ..."
-#: FlatCAMApp.py:7877
+#: App_Main.py:6871
msgid "Save Script source file"
msgstr "Guardar archivo fuente de script"
-#: FlatCAMApp.py:7906
+#: App_Main.py:6900
msgid "Failed. Only Document objects can be saved as Document files..."
msgstr ""
"Ha fallado. Solo los objetos de documento se pueden guardar como archivos de "
"documento ..."
-#: FlatCAMApp.py:7918
+#: App_Main.py:6912
msgid "Save Document source file"
msgstr "Guardar archivo fuente del Documento"
-#: FlatCAMApp.py:7947 FlatCAMApp.py:7988 FlatCAMApp.py:8945
+#: App_Main.py:6941 App_Main.py:6982 App_Main.py:7937
msgid "Failed. Only Excellon objects can be saved as Excellon files..."
msgstr ""
"Ha fallado. Solo los objetos Excellon se pueden guardar como archivos "
"Excellon ..."
-#: FlatCAMApp.py:7955 FlatCAMApp.py:7959
+#: App_Main.py:6949 App_Main.py:6953
msgid "Save Excellon source file"
msgstr "Guardar el archivo fuente de Excellon"
-#: FlatCAMApp.py:7996 FlatCAMApp.py:8000
+#: App_Main.py:6990 App_Main.py:6994
msgid "Export Excellon"
msgstr "Exportar Excellon"
-#: FlatCAMApp.py:8040 FlatCAMApp.py:8044
+#: App_Main.py:7034 App_Main.py:7038
msgid "Export Gerber"
msgstr "Gerber Exportación"
-#: FlatCAMApp.py:8082
+#: App_Main.py:7076
msgid "Only Geometry objects can be used."
msgstr "Solo se pueden utilizar objetos de Geometría."
-#: FlatCAMApp.py:8096 FlatCAMApp.py:8100
+#: App_Main.py:7090 App_Main.py:7094
msgid "Export DXF"
msgstr "Exportar DXF"
-#: FlatCAMApp.py:8125 FlatCAMApp.py:8128
+#: App_Main.py:7119 App_Main.py:7122
msgid "Import SVG"
msgstr "Importar SVG"
-#: FlatCAMApp.py:8156 FlatCAMApp.py:8160
+#: App_Main.py:7150 App_Main.py:7154
msgid "Import DXF"
msgstr "Importar DXF"
-#: FlatCAMApp.py:8210
+#: App_Main.py:7204
msgid "Viewing the source code of the selected object."
msgstr "Ver el código fuente del objeto seleccionado."
-#: FlatCAMApp.py:8211 flatcamObjects/FlatCAMCNCJob.py:548
-#: flatcamObjects/FlatCAMScript.py:134
-msgid "Loading..."
-msgstr "Cargando..."
-
-#: FlatCAMApp.py:8217 FlatCAMApp.py:8221
+#: App_Main.py:7211 App_Main.py:7215
msgid "Select an Gerber or Excellon file to view it's source file."
msgstr "Seleccione un archivo Gerber o Excellon para ver su archivo fuente."
-#: FlatCAMApp.py:8235
+#: App_Main.py:7229
msgid "Source Editor"
msgstr "Editor de fuente"
-#: FlatCAMApp.py:8275 FlatCAMApp.py:8282
+#: App_Main.py:7269 App_Main.py:7276
msgid "There is no selected object for which to see it's source file code."
msgstr "No hay ningún objeto seleccionado para el cual ver su código fuente."
-#: FlatCAMApp.py:8294
+#: App_Main.py:7288
msgid "Failed to load the source code for the selected object"
msgstr "Error al cargar el código fuente para el objeto seleccionado"
-#: FlatCAMApp.py:8308 flatcamObjects/FlatCAMCNCJob.py:562
-msgid "Code Editor"
-msgstr "Editor de código"
-
-#: FlatCAMApp.py:8330
+#: App_Main.py:7324
msgid "Go to Line ..."
msgstr "Ir a la línea ..."
-#: FlatCAMApp.py:8331
+#: App_Main.py:7325
msgid "Line:"
msgstr "Línea:"
-#: FlatCAMApp.py:8360
+#: App_Main.py:7352
msgid "New TCL script file created in Code Editor."
msgstr "Nuevo archivo de script TCL creado en Code Editor."
-#: FlatCAMApp.py:8396 FlatCAMApp.py:8398 FlatCAMApp.py:8434 FlatCAMApp.py:8436
+#: App_Main.py:7388 App_Main.py:7390 App_Main.py:7426 App_Main.py:7428
msgid "Open TCL script"
msgstr "Abrir script TCL"
-#: FlatCAMApp.py:8464
+#: App_Main.py:7456
msgid "Executing ScriptObject file."
msgstr "Ejecutando archivo ScriptObject."
-#: FlatCAMApp.py:8472 FlatCAMApp.py:8475
+#: App_Main.py:7464 App_Main.py:7467
msgid "Run TCL script"
msgstr "Ejecutar script TCL"
-#: FlatCAMApp.py:8498
+#: App_Main.py:7490
msgid "TCL script file opened in Code Editor and executed."
msgstr "El archivo de script TCL se abrió en el Editor de código y se ejecutó."
-#: FlatCAMApp.py:8549 FlatCAMApp.py:8555
+#: App_Main.py:7541 App_Main.py:7547
msgid "Save Project As ..."
msgstr "Guardar proyecto como ..."
-#: FlatCAMApp.py:8551 flatcamGUI/FlatCAMGUI.py:1134
-#: flatcamGUI/FlatCAMGUI.py:2176
-msgid "Project"
-msgstr "Proyecto"
-
-#: FlatCAMApp.py:8590
+#: App_Main.py:7582
msgid "FlatCAM objects print"
msgstr "Impresión de objetos FlatCAM"
-#: FlatCAMApp.py:8603 FlatCAMApp.py:8610
+#: App_Main.py:7595 App_Main.py:7602
msgid "Save Object as PDF ..."
msgstr "Guardar objeto como PDF ..."
-#: FlatCAMApp.py:8619
+#: App_Main.py:7611
msgid "Printing PDF ... Please wait."
msgstr "Imprimiendo PDF ... Por favor espere."
-#: FlatCAMApp.py:8798
+#: App_Main.py:7790
msgid "PDF file saved to"
msgstr "Archivo PDF guardado en"
-#: FlatCAMApp.py:8823
+#: App_Main.py:7815
msgid "Exporting SVG"
msgstr "Exportando SVG"
-#: FlatCAMApp.py:8866
+#: App_Main.py:7858
msgid "SVG file exported to"
msgstr "Archivo SVG exportado a"
-#: FlatCAMApp.py:8892
+#: App_Main.py:7884
msgid ""
"Save cancelled because source file is empty. Try to export the Gerber file."
msgstr ""
"Guardar cancelado porque el archivo fuente está vacío. Intenta exportar el "
"archivo Gerber."
-#: FlatCAMApp.py:9039
+#: App_Main.py:8031
msgid "Excellon file exported to"
msgstr "Archivo Excellon exportado a"
-#: FlatCAMApp.py:9048
+#: App_Main.py:8040
msgid "Exporting Excellon"
msgstr "Exportando excellon"
-#: FlatCAMApp.py:9053 FlatCAMApp.py:9060
+#: App_Main.py:8045 App_Main.py:8052
msgid "Could not export Excellon file."
msgstr "No se pudo exportar el archivo Excellon."
-#: FlatCAMApp.py:9175
+#: App_Main.py:8167
msgid "Gerber file exported to"
msgstr "Archivo Gerber exportado a"
-#: FlatCAMApp.py:9183
+#: App_Main.py:8175
msgid "Exporting Gerber"
msgstr "Gerber exportador"
-#: FlatCAMApp.py:9188 FlatCAMApp.py:9195
+#: App_Main.py:8180 App_Main.py:8187
msgid "Could not export Gerber file."
msgstr "No se pudo exportar el archivo Gerber."
-#: FlatCAMApp.py:9230
+#: App_Main.py:8222
msgid "DXF file exported to"
msgstr "Archivo DXF exportado a"
-#: FlatCAMApp.py:9236
+#: App_Main.py:8228
msgid "Exporting DXF"
msgstr "Exportando DXF"
-#: FlatCAMApp.py:9241 FlatCAMApp.py:9248
+#: App_Main.py:8233 App_Main.py:8240
msgid "Could not export DXF file."
msgstr "No se pudo exportar el archivo DXF."
-#: FlatCAMApp.py:9272 FlatCAMApp.py:9319 flatcamTools/ToolImage.py:277
-msgid ""
-"Not supported type is picked as parameter. Only Geometry and Gerber are "
-"supported"
-msgstr ""
-"El tipo no soportado se elige como parámetro. Solo Geometría y Gerber son "
-"compatibles"
-
-#: FlatCAMApp.py:9282
+#: App_Main.py:8274
msgid "Importing SVG"
msgstr "Importando SVG"
-#: FlatCAMApp.py:9290 FlatCAMApp.py:9336
+#: App_Main.py:8282 App_Main.py:8328
msgid "Import failed."
msgstr "Importación fallida."
-#: FlatCAMApp.py:9297 FlatCAMApp.py:9343 FlatCAMApp.py:9407 FlatCAMApp.py:9474
-#: FlatCAMApp.py:9540 FlatCAMApp.py:9605 FlatCAMApp.py:9662
-#: flatcamTools/ToolImage.py:297 flatcamTools/ToolPDF.py:225
-msgid "Opened"
-msgstr "Abierto"
-
-#: FlatCAMApp.py:9328
+#: App_Main.py:8320
msgid "Importing DXF"
msgstr "Importando DXF"
-#: FlatCAMApp.py:9369 FlatCAMApp.py:9564 FlatCAMApp.py:9629
+#: App_Main.py:8361 App_Main.py:8556 App_Main.py:8621
msgid "Failed to open file"
msgstr "Fallo al abrir el archivo"
-#: FlatCAMApp.py:9372 FlatCAMApp.py:9567 FlatCAMApp.py:9632
+#: App_Main.py:8364 App_Main.py:8559 App_Main.py:8624
msgid "Failed to parse file"
msgstr "Error al analizar el archivo"
-#: FlatCAMApp.py:9384
+#: App_Main.py:8376
msgid "Object is not Gerber file or empty. Aborting object creation."
msgstr ""
"El objeto no es un archivo Gerber o está vacío. Anulando la creación de "
"objetos."
-#: FlatCAMApp.py:9389
+#: App_Main.py:8381
msgid "Opening Gerber"
msgstr "Apertura de gerber"
-#: FlatCAMApp.py:9400
+#: App_Main.py:8392
msgid "Open Gerber failed. Probable not a Gerber file."
msgstr "Gerber abierto falló. Probablemente no sea un archivo Gerber."
-#: FlatCAMApp.py:9432 flatcamTools/ToolPcbWizard.py:424
-msgid "This is not Excellon file."
-msgstr "Este no es un archivo de Excellon."
-
-#: FlatCAMApp.py:9436
+#: App_Main.py:8428
msgid "Cannot open file"
msgstr "No se puede abrir el archivo"
-#: FlatCAMApp.py:9454 flatcamTools/ToolPDF.py:275
-#: flatcamTools/ToolPcbWizard.py:445
-msgid "No geometry found in file"
-msgstr "No se encontró geometría en el archivo"
-
-#: FlatCAMApp.py:9457
+#: App_Main.py:8449
msgid "Opening Excellon."
msgstr "Apertura Excellon."
-#: FlatCAMApp.py:9467
+#: App_Main.py:8459
msgid "Open Excellon file failed. Probable not an Excellon file."
msgstr ""
"Error al abrir el archivo Excellon. Probablemente no sea un archivo de "
"Excellon."
-#: FlatCAMApp.py:9499
+#: App_Main.py:8491
msgid "Reading GCode file"
msgstr "Lectura de archivo GCode"
-#: FlatCAMApp.py:9505
-msgid "Failed to open"
-msgstr "Falló al abrir"
-
-#: FlatCAMApp.py:9512
+#: App_Main.py:8504
msgid "This is not GCODE"
msgstr "Esto no es GCODE"
-#: FlatCAMApp.py:9517
+#: App_Main.py:8509
msgid "Opening G-Code."
msgstr "Apertura del código G."
-#: FlatCAMApp.py:9530
+#: App_Main.py:8522
msgid ""
"Failed to create CNCJob Object. Probable not a GCode file. Try to load it "
"from File menu.\n"
@@ -1293,118 +17868,124 @@ msgstr ""
"Intento de crear un objeto FlatCAM CNCJob desde el archivo G-Code falló "
"durante el procesamiento"
-#: FlatCAMApp.py:9586
+#: App_Main.py:8578
msgid "Object is not HPGL2 file or empty. Aborting object creation."
msgstr ""
"El objeto no es un archivo HPGL2 o está vacío. Anulando la creación de "
"objetos."
-#: FlatCAMApp.py:9591
+#: App_Main.py:8583
msgid "Opening HPGL2"
msgstr "Apertura de HPGL2"
-#: FlatCAMApp.py:9598
+#: App_Main.py:8590
msgid " Open HPGL2 failed. Probable not a HPGL2 file."
msgstr " Abrir HPGL2 falló. Probablemente no sea un archivo HPGL2."
-#: FlatCAMApp.py:9624
+#: App_Main.py:8616
msgid "TCL script file opened in Code Editor."
msgstr "Archivo de script TCL abierto en Code Editor."
-#: FlatCAMApp.py:9644
+#: App_Main.py:8636
msgid "Opening TCL Script..."
msgstr "Abriendo TCL Script ..."
-#: FlatCAMApp.py:9655
+#: App_Main.py:8647
msgid "Failed to open TCL Script."
msgstr "Error al abrir la secuencia de comandos TCL."
-#: FlatCAMApp.py:9677
+#: App_Main.py:8669
msgid "Opening FlatCAM Config file."
msgstr "Abrir el archivo de configuración de FlatCAM."
-#: FlatCAMApp.py:9705
+#: App_Main.py:8697
msgid "Failed to open config file"
msgstr "Error al abrir el archivo de configuración"
-#: FlatCAMApp.py:9734
+#: App_Main.py:8726
msgid "Loading Project ... Please Wait ..."
msgstr "Cargando proyecto ... Espere ..."
-#: FlatCAMApp.py:9739
+#: App_Main.py:8731
msgid "Opening FlatCAM Project file."
msgstr "Apertura del archivo del proyecto FlatCAM."
-#: FlatCAMApp.py:9754 FlatCAMApp.py:9758 FlatCAMApp.py:9775
+#: App_Main.py:8746 App_Main.py:8750 App_Main.py:8767
msgid "Failed to open project file"
msgstr "Error al abrir el archivo del proyecto"
-#: FlatCAMApp.py:9812
+#: App_Main.py:8804
msgid "Loading Project ... restoring"
msgstr "Cargando Proyecto ... restaurando"
-#: FlatCAMApp.py:9822
+#: App_Main.py:8814
msgid "Project loaded from"
msgstr "Proyecto cargado desde"
-#: FlatCAMApp.py:9846
+#: App_Main.py:8840
msgid "Redrawing all objects"
msgstr "Redibujando todos los objetos"
-#: FlatCAMApp.py:9934
+#: App_Main.py:8928
msgid "Failed to load recent item list."
msgstr "Error al cargar la lista de elementos recientes."
-#: FlatCAMApp.py:9941
+#: App_Main.py:8935
msgid "Failed to parse recent item list."
msgstr "Error al analizar la lista de elementos recientes."
-#: FlatCAMApp.py:9951
+#: App_Main.py:8945
msgid "Failed to load recent projects item list."
msgstr "Error al cargar la lista de elementos de proyectos recientes."
-#: FlatCAMApp.py:9958
+#: App_Main.py:8952
msgid "Failed to parse recent project item list."
msgstr "Error al analizar la lista de elementos del proyecto reciente."
-#: FlatCAMApp.py:10019
+#: App_Main.py:9013
msgid "Clear Recent projects"
msgstr "Borrar proyectos recientes"
-#: FlatCAMApp.py:10043
+#: App_Main.py:9037
msgid "Clear Recent files"
msgstr "Borrar archivos recientes"
-#: FlatCAMApp.py:10065 flatcamGUI/FlatCAMGUI.py:1363
-msgid "Shortcut Key List"
-msgstr " Lista de teclas de acceso directo "
-
-#: FlatCAMApp.py:10145
+#: App_Main.py:9139
msgid "Selected Tab - Choose an Item from Project Tab"
msgstr "Pestaña Seleccionada: elija un elemento de la pestaña Proyecto"
-#: FlatCAMApp.py:10146
+#: App_Main.py:9140
msgid "Details"
msgstr "Detalles"
-#: FlatCAMApp.py:10148
+#: App_Main.py:9142
msgid "The normal flow when working in FlatCAM is the following:"
msgstr "El flujo normal cuando se trabaja en FlatCAM es el siguiente:"
-#: FlatCAMApp.py:10149
+#: App_Main.py:9143
+#, fuzzy
+#| msgid ""
+#| "Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into "
+#| "FlatCAM using either the toolbars, key shortcuts or even dragging and "
+#| "dropping the files on the GUI."
msgid ""
"Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into "
"FlatCAM using either the toolbars, key shortcuts or even dragging and "
-"dropping the files on the GUI."
+"dropping the files on the AppGUI."
msgstr ""
"Cargue / importe un archivo Gerber, Excellon, Gcode, DXF, Raster Image o SVG "
"en FlatCAM usando las barras de herramientas, atajos de teclado o incluso "
"arrastrando y soltando los archivos en la GUI."
-#: FlatCAMApp.py:10152
+#: App_Main.py:9146
+#, fuzzy
+#| msgid ""
+#| "You can also load a FlatCAM project by double clicking on the project "
+#| "file, drag and drop of the file into the FLATCAM GUI or through the menu "
+#| "(or toolbar) actions offered within the app."
msgid ""
"You can also load a FlatCAM project by double clicking on the project file, "
-"drag and drop of the file into the FLATCAM GUI or through the menu (or "
+"drag and drop of the file into the FLATCAM AppGUI or through the menu (or "
"toolbar) actions offered within the app."
msgstr ""
"También puede cargar un proyecto FlatCAM haciendo doble clic en el archivo "
@@ -1412,7 +17993,7 @@ msgstr ""
"mediante las acciones del menú (o barra de herramientas) que se ofrecen "
"dentro de la aplicación."
-#: FlatCAMApp.py:10155
+#: App_Main.py:9149
msgid ""
"Once an object is available in the Project Tab, by selecting it and then "
"focusing on SELECTED TAB (more simpler is to double click the object name in "
@@ -1425,7 +18006,7 @@ msgstr ""
"SELECCIONADA se actualizará con las propiedades del objeto según su tipo: "
"Gerber, Objeto Excellon, Geometry o CNCJob."
-#: FlatCAMApp.py:10159
+#: App_Main.py:9153
msgid ""
"If the selection of the object is done on the canvas by single click "
"instead, and the SELECTED TAB is in focus, again the object properties will "
@@ -1439,7 +18020,7 @@ msgstr ""
"el objeto en el lienzo traerá la PESTAÑA SELECCIONADA y la completará "
"incluso si estaba fuera de foco."
-#: FlatCAMApp.py:10163
+#: App_Main.py:9157
msgid ""
"You can change the parameters in this screen and the flow direction is like "
"this:"
@@ -1447,7 +18028,7 @@ msgstr ""
"Puede cambiar los parámetros en esta pantalla y la dirección del flujo es "
"así:"
-#: FlatCAMApp.py:10164
+#: App_Main.py:9158
msgid ""
"Gerber/Excellon Object --> Change Parameter --> Generate Geometry --> "
"Geometry Object --> Add tools (change param in Selected Tab) --> Generate "
@@ -1460,7 +18041,7 @@ msgstr ""
"(mediante Edit CNC Código) y / o anexar / anteponer a GCode (nuevamente, "
"hecho en la PESTAÑA SELECCIONADA) -> Guardar GCode."
-#: FlatCAMApp.py:10168
+#: App_Main.py:9162
msgid ""
"A list of key shortcuts is available through an menu entry in Help --> "
"Shortcuts List or through its own key shortcut: F3."
@@ -1469,31 +18050,31 @@ msgstr ""
"menú en Ayuda -> Lista de atajos o mediante su propio atajo de teclado: "
"F3 ."
-#: FlatCAMApp.py:10232
+#: App_Main.py:9226
msgid "Failed checking for latest version. Could not connect."
msgstr "Falló la comprobación de la última versión. No pudo conectar."
-#: FlatCAMApp.py:10239
+#: App_Main.py:9233
msgid "Could not parse information about latest version."
msgstr "No se pudo analizar la información sobre la última versión."
-#: FlatCAMApp.py:10249
+#: App_Main.py:9243
msgid "FlatCAM is up to date!"
msgstr "FlatCAM está al día!"
-#: FlatCAMApp.py:10254
+#: App_Main.py:9248
msgid "Newer Version Available"
msgstr "Nueva versión disponible"
-#: FlatCAMApp.py:10256
+#: App_Main.py:9250
msgid "There is a newer version of FlatCAM available for download:"
msgstr "Hay una versión más nueva de FlatCAM disponible para descargar:"
-#: FlatCAMApp.py:10260
+#: App_Main.py:9254
msgid "info"
msgstr "info"
-#: FlatCAMApp.py:10288
+#: App_Main.py:9282
msgid ""
"OpenGL canvas initialization failed. HW or HW configuration not supported."
"Change the graphic engine to Legacy(2D) in Edit -> Preferences -> General "
@@ -1505,129 +18086,75 @@ msgstr ""
"pestaña General.\n"
"\n"
-#: FlatCAMApp.py:10367
+#: App_Main.py:9360
msgid "All plots disabled."
msgstr "Todas las parcelas con discapacidad."
-#: FlatCAMApp.py:10374
+#: App_Main.py:9367
msgid "All non selected plots disabled."
msgstr "Todas las parcelas no seleccionadas deshabilitadas."
-#: FlatCAMApp.py:10381
+#: App_Main.py:9374
msgid "All plots enabled."
msgstr "Todas las parcelas habilitadas."
-#: FlatCAMApp.py:10387
+#: App_Main.py:9380
msgid "Selected plots enabled..."
msgstr "Parcelas seleccionadas habilitadas ..."
-#: FlatCAMApp.py:10395
+#: App_Main.py:9388
msgid "Selected plots disabled..."
msgstr "Parcelas seleccionadas deshabilitadas ..."
-#: FlatCAMApp.py:10428
+#: App_Main.py:9421
msgid "Enabling plots ..."
msgstr "Habilitación de parcelas ..."
-#: FlatCAMApp.py:10480
+#: App_Main.py:9470
msgid "Disabling plots ..."
msgstr "Inhabilitando parcelas ..."
-#: FlatCAMApp.py:10503
+#: App_Main.py:9493
msgid "Working ..."
msgstr "Trabajando ..."
-#: FlatCAMApp.py:10558 flatcamGUI/FlatCAMGUI.py:703
-msgid "Red"
-msgstr "Rojo"
-
-#: FlatCAMApp.py:10560 flatcamGUI/FlatCAMGUI.py:706
-msgid "Blue"
-msgstr "Azul"
-
-#: FlatCAMApp.py:10563 flatcamGUI/FlatCAMGUI.py:709
-msgid "Yellow"
-msgstr "Amarillo"
-
-#: FlatCAMApp.py:10565 flatcamGUI/FlatCAMGUI.py:712
-msgid "Green"
-msgstr "Verde"
-
-#: FlatCAMApp.py:10567 flatcamGUI/FlatCAMGUI.py:715
-msgid "Purple"
-msgstr "Púrpura"
-
-#: FlatCAMApp.py:10569 flatcamGUI/FlatCAMGUI.py:718
-msgid "Brown"
-msgstr "Marrón"
-
-#: FlatCAMApp.py:10571 FlatCAMApp.py:10627 flatcamGUI/FlatCAMGUI.py:721
-msgid "White"
-msgstr "Blanca"
-
-#: FlatCAMApp.py:10573 flatcamGUI/FlatCAMGUI.py:724
-msgid "Black"
-msgstr "Negra"
-
-#: FlatCAMApp.py:10576 flatcamGUI/FlatCAMGUI.py:729
-msgid "Custom"
-msgstr "Personalizado"
-
-#: FlatCAMApp.py:10586 flatcamGUI/FlatCAMGUI.py:737
-msgid "Default"
-msgstr "Predeterminado"
-
-#: FlatCAMApp.py:10610 flatcamGUI/FlatCAMGUI.py:734
-msgid "Opacity"
-msgstr "Opacidad"
-
-#: FlatCAMApp.py:10612
+#: App_Main.py:9602
msgid "Set alpha level ..."
msgstr "Establecer nivel alfa ..."
-#: FlatCAMApp.py:10612
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:220
-#: flatcamTools/ToolExtractDrills.py:164 flatcamTools/ToolExtractDrills.py:285
-#: flatcamTools/ToolPunchGerber.py:192 flatcamTools/ToolPunchGerber.py:308
-#: flatcamTools/ToolTransform.py:357
-msgid "Value"
-msgstr "Valor"
-
-#: FlatCAMApp.py:10666
+#: App_Main.py:9656
msgid "Saving FlatCAM Project"
msgstr "Proyecto FlatCAM de ahorro"
-#: FlatCAMApp.py:10687 FlatCAMApp.py:10723
+#: App_Main.py:9677 App_Main.py:9713
msgid "Project saved to"
msgstr "Proyecto guardado en"
-#: FlatCAMApp.py:10694
+#: App_Main.py:9684
msgid "The object is used by another application."
msgstr "El objeto es utilizado por otra aplicación."
-#: FlatCAMApp.py:10708
+#: App_Main.py:9698
msgid "Failed to verify project file"
msgstr "Error al abrir el archivo de proyecto"
-#: FlatCAMApp.py:10708 FlatCAMApp.py:10716 FlatCAMApp.py:10726
+#: App_Main.py:9698 App_Main.py:9706 App_Main.py:9716
msgid "Retry to save it."
msgstr "Vuelva a intentar guardarlo."
-#: FlatCAMApp.py:10716 FlatCAMApp.py:10726
+#: App_Main.py:9706 App_Main.py:9716
msgid "Failed to parse saved project file"
msgstr "Error al analizar el archivo por defecto"
-#: FlatCAMBookmark.py:57 FlatCAMBookmark.py:84
+#: Bookmark.py:57 Bookmark.py:84
msgid "Title"
msgstr "Título"
-#: FlatCAMBookmark.py:58 FlatCAMBookmark.py:88
+#: Bookmark.py:58 Bookmark.py:88
msgid "Web Link"
msgstr "Enlace Web"
-#: FlatCAMBookmark.py:62
+#: Bookmark.py:62
msgid ""
"Index.\n"
"The rows in gray color will populate the Bookmarks menu.\n"
@@ -1637,7 +18164,7 @@ msgstr ""
"Las filas en color gris llenarán el menú Marcadores.\n"
"El número de filas de color gris se establece en Preferencias."
-#: FlatCAMBookmark.py:66
+#: Bookmark.py:66
msgid ""
"Description of the link that is set as an menu action.\n"
"Try to keep it short because it is installed as a menu item."
@@ -1645,1099 +18172,183 @@ msgstr ""
"Descripción del enlace que se establece como una acción de menú.\n"
"Intenta mantenerlo corto porque está instalado como un elemento del menú."
-#: FlatCAMBookmark.py:69
+#: Bookmark.py:69
msgid "Web Link. E.g: https://your_website.org "
msgstr "Enlace web. P.ej: https://your_website.org "
-#: FlatCAMBookmark.py:78
+#: Bookmark.py:78
msgid "New Bookmark"
msgstr "Nuevo Marcador"
-#: FlatCAMBookmark.py:97
+#: Bookmark.py:97
msgid "Add Entry"
msgstr "Añadir entrada"
-#: FlatCAMBookmark.py:98
+#: Bookmark.py:98
msgid "Remove Entry"
msgstr "Remueva la entrada"
-#: FlatCAMBookmark.py:99
+#: Bookmark.py:99
msgid "Export List"
msgstr "Exportar la lista"
-#: FlatCAMBookmark.py:100
+#: Bookmark.py:100
msgid "Import List"
msgstr "Importar la lista"
-#: FlatCAMBookmark.py:190
+#: Bookmark.py:190
msgid "Title entry is empty."
msgstr "La entrada del título está vacía."
-#: FlatCAMBookmark.py:199
+#: Bookmark.py:199
msgid "Web link entry is empty."
msgstr "La entrada del enlace web está vacía."
-#: FlatCAMBookmark.py:207
+#: Bookmark.py:207
msgid "Either the Title or the Weblink already in the table."
msgstr "Ya sea el Título o el Enlace web ya en la tabla."
-#: FlatCAMBookmark.py:227
+#: Bookmark.py:227
msgid "Bookmark added."
msgstr "Marcador agregado."
-#: FlatCAMBookmark.py:244
+#: Bookmark.py:244
msgid "This bookmark can not be removed"
msgstr "Este marcador no se puede eliminar"
-#: FlatCAMBookmark.py:275
+#: Bookmark.py:275
msgid "Bookmark removed."
msgstr "Marcador eliminado."
-#: FlatCAMBookmark.py:290
+#: Bookmark.py:290
msgid "Export FlatCAM Bookmarks"
msgstr "Exportar marcadores de FlatCAM"
-#: FlatCAMBookmark.py:293 flatcamGUI/FlatCAMGUI.py:524
-msgid "Bookmarks"
-msgstr "Marcadores"
-
-#: FlatCAMBookmark.py:319 FlatCAMBookmark.py:349
+#: Bookmark.py:319 Bookmark.py:349
msgid "Could not load bookmarks file."
msgstr "No se pudo cargar el archivo de marcadores."
-#: FlatCAMBookmark.py:329
+#: Bookmark.py:329
msgid "Failed to write bookmarks to file."
msgstr "Error al escribir marcadores en el archivo."
-#: FlatCAMBookmark.py:331
+#: Bookmark.py:331
msgid "Exported bookmarks to"
msgstr "Marcadores exportados a"
-#: FlatCAMBookmark.py:337
+#: Bookmark.py:337
msgid "Import FlatCAM Bookmarks"
msgstr "Importar marcadores de FlatCAM"
-#: FlatCAMBookmark.py:356
+#: Bookmark.py:356
msgid "Imported Bookmarks from"
msgstr "Marcadores importados de"
-#: FlatCAMCommon.py:29
+#: Common.py:37
msgid "The user requested a graceful exit of the current task."
msgstr "El usuario solicitó una salida elegante de la tarea actual."
-#: FlatCAMDB.py:86
-msgid "Add Geometry Tool in DB"
-msgstr "Agregar herramienta de geo. en DB"
+#: Common.py:250
+msgid "Click the end point of the area."
+msgstr "Haga clic en el punto final del área."
-#: FlatCAMDB.py:88 FlatCAMDB.py:1643
-msgid ""
-"Add a new tool in the Tools Database.\n"
-"It will be used in the Geometry UI.\n"
-"You can edit it after it is added."
+#: Common.py:386
+msgid "Exclusion areas added. Checking overlap with the object geometry ..."
msgstr ""
-"Agregue una nueva herramienta en la Base de datos de herramientas.\n"
-"Se utilizará en la interfaz de usuario de geometría.\n"
-"Puede editarlo después de agregarlo."
-#: FlatCAMDB.py:102 FlatCAMDB.py:1657
-msgid "Delete Tool from DB"
-msgstr "Eliminar herram. de la BD"
-
-#: FlatCAMDB.py:104 FlatCAMDB.py:1659
-msgid "Remove a selection of tools in the Tools Database."
-msgstr "Eliminar una selección de herramientas en la DB de herramientas."
-
-#: FlatCAMDB.py:108 FlatCAMDB.py:1663
-msgid "Export DB"
-msgstr "Exportar DB"
-
-#: FlatCAMDB.py:110 FlatCAMDB.py:1665
-msgid "Save the Tools Database to a custom text file."
+#: Common.py:392
+msgid "Failed. Exclusion areas intersects the object geometry ..."
msgstr ""
-"Guarde la base de datos de herramientas en un archivo de texto personalizado."
-#: FlatCAMDB.py:114 FlatCAMDB.py:1669
-msgid "Import DB"
-msgstr "Importar DB"
-
-#: FlatCAMDB.py:116 FlatCAMDB.py:1671
-msgid "Load the Tools Database information's from a custom text file."
-msgstr ""
-"Cargue la información de la DB de herramientas desde un archivo de texto "
-"personalizado."
-
-#: FlatCAMDB.py:120 FlatCAMDB.py:1681
-msgid "Add Tool from Tools DB"
-msgstr "Agregar herramienta desde DB de herramientas"
-
-#: FlatCAMDB.py:122 FlatCAMDB.py:1683
-msgid ""
-"Add a new tool in the Tools Table of the\n"
-"active Geometry object after selecting a tool\n"
-"in the Tools Database."
-msgstr ""
-"Agregue una nueva herramienta en la Tabla de herramientas del\n"
-"objeto de geometría activo después de seleccionar una herramienta\n"
-"en la base de datos de herramientas."
-
-#: FlatCAMDB.py:158 FlatCAMDB.py:833 FlatCAMDB.py:1087
-msgid "Tool Name"
-msgstr "Nombre de Herram"
-
-#: FlatCAMDB.py:159 FlatCAMDB.py:835 FlatCAMDB.py:1100
-#: flatcamEditors/FlatCAMExcEditor.py:1604 flatcamGUI/ObjectUI.py:1345
-#: flatcamGUI/ObjectUI.py:1583
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:132
-#: flatcamTools/ToolNCC.py:278 flatcamTools/ToolNCC.py:287
-#: flatcamTools/ToolPaint.py:261
-msgid "Tool Dia"
-msgstr "Diá. de Herram"
-
-#: FlatCAMDB.py:160 FlatCAMDB.py:837 FlatCAMDB.py:1281
-#: flatcamGUI/ObjectUI.py:1558
-msgid "Tool Offset"
-msgstr "Offset de Herram"
-
-#: FlatCAMDB.py:161 FlatCAMDB.py:839 FlatCAMDB.py:1298
-msgid "Custom Offset"
-msgstr "Desplazamiento personalizado"
-
-#: FlatCAMDB.py:162 FlatCAMDB.py:841 FlatCAMDB.py:1265
-#: flatcamGUI/ObjectUI.py:309
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:67
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:53
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:62
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:72
-#: flatcamTools/ToolNCC.py:213 flatcamTools/ToolNCC.py:227
-#: flatcamTools/ToolPaint.py:196
-msgid "Tool Type"
-msgstr "Tipo de herram"
-
-#: FlatCAMDB.py:163 FlatCAMDB.py:843 FlatCAMDB.py:1113
-msgid "Tool Shape"
-msgstr "Forma de la herram"
-
-#: FlatCAMDB.py:164 FlatCAMDB.py:846 FlatCAMDB.py:1129
-#: flatcamGUI/ObjectUI.py:350 flatcamGUI/ObjectUI.py:900
-#: flatcamGUI/ObjectUI.py:1703 flatcamGUI/ObjectUI.py:2336
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:93
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:48
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:107
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:78
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:58
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:105
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:113
-#: flatcamTools/ToolCalculators.py:114 flatcamTools/ToolCutOut.py:138
-#: flatcamTools/ToolNCC.py:260 flatcamTools/ToolNCC.py:268
-#: flatcamTools/ToolPaint.py:243
-msgid "Cut Z"
-msgstr "Corte Z"
-
-#: FlatCAMDB.py:165 FlatCAMDB.py:848 FlatCAMDB.py:1143
-msgid "MultiDepth"
-msgstr "Profund. Múlti"
-
-#: FlatCAMDB.py:166 FlatCAMDB.py:850 FlatCAMDB.py:1156
-msgid "DPP"
-msgstr "PPP"
-
-#: FlatCAMDB.py:167 FlatCAMDB.py:852 FlatCAMDB.py:1312
-msgid "V-Dia"
-msgstr "V-Dia"
-
-#: FlatCAMDB.py:168 FlatCAMDB.py:854 FlatCAMDB.py:1326
-msgid "V-Angle"
-msgstr "V-Ángulo"
-
-#: FlatCAMDB.py:169 FlatCAMDB.py:856 FlatCAMDB.py:1170
-#: flatcamGUI/ObjectUI.py:946 flatcamGUI/ObjectUI.py:1750
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:134
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:101
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:61
-#: flatcamObjects/FlatCAMExcellon.py:1316
-#: flatcamObjects/FlatCAMGeometry.py:1606 flatcamTools/ToolCalibration.py:74
-msgid "Travel Z"
-msgstr "Viaje Z"
-
-#: FlatCAMDB.py:170 FlatCAMDB.py:858
-msgid "FR"
-msgstr "FR"
-
-#: FlatCAMDB.py:171 FlatCAMDB.py:860
-msgid "FR Z"
-msgstr "FR Z"
-
-#: FlatCAMDB.py:172 FlatCAMDB.py:862 FlatCAMDB.py:1340
-msgid "FR Rapids"
-msgstr "Avance rápido"
-
-#: FlatCAMDB.py:173 FlatCAMDB.py:864 FlatCAMDB.py:1213
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:222
-msgid "Spindle Speed"
-msgstr "Eje de velocidad"
-
-#: FlatCAMDB.py:174 FlatCAMDB.py:866 FlatCAMDB.py:1228
-#: flatcamGUI/ObjectUI.py:1064 flatcamGUI/ObjectUI.py:1857
-msgid "Dwell"
-msgstr "Habitar"
-
-#: FlatCAMDB.py:175 FlatCAMDB.py:868 FlatCAMDB.py:1241
-msgid "Dwelltime"
-msgstr "Tiempo de permanencia"
-
-#: FlatCAMDB.py:176 FlatCAMDB.py:870 flatcamGUI/ObjectUI.py:2014
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:257
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:254
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:237
-#: flatcamTools/ToolSolderPaste.py:335
-msgid "Preprocessor"
-msgstr "Postprocesador"
-
-#: FlatCAMDB.py:177 FlatCAMDB.py:872 FlatCAMDB.py:1356
-msgid "ExtraCut"
-msgstr "Corte extra"
-
-#: FlatCAMDB.py:178 FlatCAMDB.py:874 FlatCAMDB.py:1371
-msgid "E-Cut Length"
-msgstr "Longitud de Corte extra"
-
-#: FlatCAMDB.py:179 FlatCAMDB.py:876
-msgid "Toolchange"
-msgstr "Cambio de herram"
-
-#: FlatCAMDB.py:180 FlatCAMDB.py:878
-msgid "Toolchange XY"
-msgstr "Cambio de herra X, Y"
-
-#: FlatCAMDB.py:181 FlatCAMDB.py:880
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:160
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:131
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:98
-#: flatcamTools/ToolCalibration.py:111
-msgid "Toolchange Z"
-msgstr "Cambio de herramienta Z"
-
-#: FlatCAMDB.py:182 FlatCAMDB.py:882 flatcamGUI/ObjectUI.py:1193
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:69
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:54
-msgid "Start Z"
-msgstr "Comience Z"
-
-#: FlatCAMDB.py:183 FlatCAMDB.py:885
-msgid "End Z"
-msgstr "Fin Z"
-
-#: FlatCAMDB.py:187
-msgid "Tool Index."
-msgstr "Índice de herramientas."
-
-#: FlatCAMDB.py:189 FlatCAMDB.py:1089
-msgid ""
-"Tool name.\n"
-"This is not used in the app, it's function\n"
-"is to serve as a note for the user."
-msgstr ""
-"Nombre de la herramienta.\n"
-"Esto no se usa en la aplicación, es función\n"
-"es servir como una nota para el usuario."
-
-#: FlatCAMDB.py:193 FlatCAMDB.py:1102
-msgid "Tool Diameter."
-msgstr "Diá. de Herram."
-
-#: FlatCAMDB.py:195 FlatCAMDB.py:1283
-msgid ""
-"Tool Offset.\n"
-"Can be of a few types:\n"
-"Path = zero offset\n"
-"In = offset inside by half of tool diameter\n"
-"Out = offset outside by half of tool diameter\n"
-"Custom = custom offset using the Custom Offset value"
-msgstr ""
-"Desplazamiento de herramienta.\n"
-"Puede ser de algunos tipos:\n"
-"Ruta = desplazamiento cero\n"
-"In = desplazamiento interior por la mitad del diámetro de la herramienta\n"
-"Out = desplazamiento exterior por la mitad del diámetro de la herramienta\n"
-"Personalizado = desplazamiento personalizado utilizando el valor de "
-"desplazamiento personalizado"
-
-#: FlatCAMDB.py:202 FlatCAMDB.py:1300
-msgid ""
-"Custom Offset.\n"
-"A value to be used as offset from the current path."
-msgstr ""
-"Desplazamiento personalizado.\n"
-"Un valor que se utilizará como desplazamiento de la ruta actual."
-
-#: FlatCAMDB.py:205 FlatCAMDB.py:1267
-msgid ""
-"Tool Type.\n"
-"Can be:\n"
-"Iso = isolation cut\n"
-"Rough = rough cut, low feedrate, multiple passes\n"
-"Finish = finishing cut, high feedrate"
-msgstr ""
-"Tipo de herramienta\n"
-"Puede ser:\n"
-"Iso = corte de aislamiento\n"
-"Áspero = corte rugoso, baja velocidad de avance, múltiples pasadas\n"
-"Acabado = corte de acabado, alto avance"
-
-#: FlatCAMDB.py:211 FlatCAMDB.py:1115
-msgid ""
-"Tool Shape. \n"
-"Can be:\n"
-"C1 ... C4 = circular tool with x flutes\n"
-"B = ball tip milling tool\n"
-"V = v-shape milling tool"
-msgstr ""
-"Forma de herramienta\n"
-"Puede ser:\n"
-"C1 ... C4 = herramienta circular con x flautas\n"
-"B = herramienta de fresado de punta esférica\n"
-"V = herramienta de fresado en forma de V"
-
-#: FlatCAMDB.py:217 FlatCAMDB.py:1131
-msgid ""
-"Cutting Depth.\n"
-"The depth at which to cut into material."
-msgstr ""
-"Profundidad de corte.\n"
-"La profundidad a la cual cortar en material."
-
-#: FlatCAMDB.py:220 FlatCAMDB.py:1145
-msgid ""
-"Multi Depth.\n"
-"Selecting this will allow cutting in multiple passes,\n"
-"each pass adding a DPP parameter depth."
-msgstr ""
-"Multi Profundidad.\n"
-"Seleccionar esto permitirá cortar en múltiples pasadas,\n"
-"cada pasada agrega una profundidad de parámetro PPP."
-
-#: FlatCAMDB.py:224 FlatCAMDB.py:1158
-msgid ""
-"DPP. Depth per Pass.\n"
-"The value used to cut into material on each pass."
-msgstr ""
-"PPP. Profundidad por pase.\n"
-"El valor utilizado para cortar en material en cada pasada."
-
-#: FlatCAMDB.py:227 FlatCAMDB.py:1314
-msgid ""
-"V-Dia.\n"
-"Diameter of the tip for V-Shape Tools."
-msgstr ""
-"V-Dia.\n"
-"Diámetro de la punta para herramientas en forma de V."
-
-#: FlatCAMDB.py:230 FlatCAMDB.py:1328
-msgid ""
-"V-Agle.\n"
-"Angle at the tip for the V-Shape Tools."
-msgstr ""
-"Ángulo en V.\n"
-"Ángulo en la punta para las herramientas en forma de V."
-
-#: FlatCAMDB.py:233 FlatCAMDB.py:1172
-msgid ""
-"Clearance Height.\n"
-"Height at which the milling bit will travel between cuts,\n"
-"above the surface of the material, avoiding all fixtures."
-msgstr ""
-"Altura libre.\n"
-"Altura a la que viajará la broca entre cortes,\n"
-"sobre la superficie del material, evitando todos los accesorios."
-
-#: FlatCAMDB.py:237
-msgid ""
-"FR. Feedrate\n"
-"The speed on XY plane used while cutting into material."
-msgstr ""
-"FR. Avance\n"
-"La velocidad en el plano XY utilizada al cortar material."
-
-#: FlatCAMDB.py:240
-msgid ""
-"FR Z. Feedrate Z\n"
-"The speed on Z plane."
-msgstr ""
-"FR Z. Avance Z\n"
-"La velocidad en el plano Z."
-
-#: FlatCAMDB.py:243 FlatCAMDB.py:1342
-msgid ""
-"FR Rapids. Feedrate Rapids\n"
-"Speed used while moving as fast as possible.\n"
-"This is used only by some devices that can't use\n"
-"the G0 g-code command. Mostly 3D printers."
-msgstr ""
-"FR Rapids. Avance rápido\n"
-"Velocidad utilizada mientras se mueve lo más rápido posible.\n"
-"Esto solo lo usan algunos dispositivos que no pueden usar\n"
-"el comando G0 g-code. Mayormente impresoras 3D."
-
-#: FlatCAMDB.py:248 FlatCAMDB.py:1215
-msgid ""
-"Spindle Speed.\n"
-"If it's left empty it will not be used.\n"
-"The speed of the spindle in RPM."
-msgstr ""
-"Velocidad del motor.\n"
-"Si se deja vacío, no se usará.\n"
-"La velocidad del husillo en RPM."
-
-#: FlatCAMDB.py:252 FlatCAMDB.py:1230
-msgid ""
-"Dwell.\n"
-"Check this if a delay is needed to allow\n"
-"the spindle motor to reach it's set speed."
-msgstr ""
-"Habitar.\n"
-"Marque esto si se necesita un retraso para permitir\n"
-"el motor del husillo para alcanzar su velocidad establecida."
-
-#: FlatCAMDB.py:256 FlatCAMDB.py:1243
-msgid ""
-"Dwell Time.\n"
-"A delay used to allow the motor spindle reach it's set speed."
-msgstr ""
-"Tiempo de permanencia.\n"
-"Un retraso utilizado para permitir que el eje del motor alcance su velocidad "
-"establecida."
-
-#: FlatCAMDB.py:259
-msgid ""
-"Preprocessor.\n"
-"A selection of files that will alter the generated G-code\n"
-"to fit for a number of use cases."
-msgstr ""
-"Preprocesador\n"
-"Una selección de archivos que alterarán el código G generado\n"
-"para adaptarse a una serie de casos de uso."
-
-#: FlatCAMDB.py:263 FlatCAMDB.py:1358
-msgid ""
-"Extra Cut.\n"
-"If checked, after a isolation is finished an extra cut\n"
-"will be added where the start and end of isolation meet\n"
-"such as that this point is covered by this extra cut to\n"
-"ensure a complete isolation."
-msgstr ""
-"Corte Extra\n"
-"Si está marcada, después de terminar un aislamiento, un corte adicional\n"
-"se agregará donde se encuentran el inicio y el final del aislamiento\n"
-"como que este punto está cubierto por este corte adicional para\n"
-"Garantizar un aislamiento completo."
-
-#: FlatCAMDB.py:269 FlatCAMDB.py:1373
-msgid ""
-"Extra Cut length.\n"
-"If checked, after a isolation is finished an extra cut\n"
-"will be added where the start and end of isolation meet\n"
-"such as that this point is covered by this extra cut to\n"
-"ensure a complete isolation. This is the length of\n"
-"the extra cut."
-msgstr ""
-"Longitud de corte extra.\n"
-"Si está marcada, después de terminar un aislamiento, un corte adicional\n"
-"se agregará donde se encuentran el inicio y el final del aislamiento\n"
-"como que este punto está cubierto por este corte adicional para\n"
-"Garantizar un aislamiento completo. Esta es la longitud de\n"
-"El corte extra."
-
-#: FlatCAMDB.py:276
-msgid ""
-"Toolchange.\n"
-"It will create a toolchange event.\n"
-"The kind of toolchange is determined by\n"
-"the preprocessor file."
-msgstr ""
-"Cambio de herramienta.\n"
-"Creará un evento de cambio de herramienta.\n"
-"El tipo de cambio de herramienta está determinado por\n"
-"El archivo del preprocesador."
-
-#: FlatCAMDB.py:281
-msgid ""
-"Toolchange XY.\n"
-"A set of coordinates in the format (x, y).\n"
-"Will determine the cartesian position of the point\n"
-"where the tool change event take place."
-msgstr ""
-"Cambio de herramienta XY.\n"
-"Un conjunto de coordenadas en el formato (x, y).\n"
-"Determinará la posición cartesiana del punto.\n"
-"donde tiene lugar el evento de cambio de herramienta."
-
-#: FlatCAMDB.py:286
-msgid ""
-"Toolchange Z.\n"
-"The position on Z plane where the tool change event take place."
-msgstr ""
-"Cambio de herramientas Z.\n"
-"La posición en el plano Z donde tiene lugar el evento de cambio de "
-"herramienta."
-
-#: FlatCAMDB.py:289
-msgid ""
-"Start Z.\n"
-"If it's left empty it will not be used.\n"
-"A position on Z plane to move immediately after job start."
-msgstr ""
-"Z inicio.\n"
-"Si se deja vacío, no se usará.\n"
-"Una posición en el plano Z para moverse inmediatamente después del inicio "
-"del trabajo."
-
-#: FlatCAMDB.py:293
-msgid ""
-"End Z.\n"
-"A position on Z plane to move immediately after job stop."
-msgstr ""
-"Z final.\n"
-"Una posición en el plano Z para moverse inmediatamente después de la "
-"detención del trabajo."
-
-#: FlatCAMDB.py:305 FlatCAMDB.py:682 FlatCAMDB.py:716 FlatCAMDB.py:1898
-#: FlatCAMDB.py:2144 FlatCAMDB.py:2178
-msgid "Could not load Tools DB file."
-msgstr "No se pudo cargar el archivo de herramientas DB."
-
-#: FlatCAMDB.py:313 FlatCAMDB.py:724 FlatCAMDB.py:1906 FlatCAMDB.py:2186
-msgid "Failed to parse Tools DB file."
-msgstr "Error al analizar el archivo DB de Herramientas."
-
-#: FlatCAMDB.py:316 FlatCAMDB.py:727 FlatCAMDB.py:1909 FlatCAMDB.py:2189
-msgid "Loaded FlatCAM Tools DB from"
-msgstr "Base de datos de herramientas FlatCAM cargada de"
-
-#: FlatCAMDB.py:322 FlatCAMDB.py:1823
-msgid "Add to DB"
-msgstr "Añadir a DB"
-
-#: FlatCAMDB.py:324 FlatCAMDB.py:1826
-msgid "Copy from DB"
-msgstr "Copiar de DB"
-
-#: FlatCAMDB.py:326 FlatCAMDB.py:1829
-msgid "Delete from DB"
-msgstr "Eliminar de la DB"
-
-#: FlatCAMDB.py:603 FlatCAMDB.py:2044
-msgid "Tool added to DB."
-msgstr "Herramienta agregada a la base de datos."
-
-#: FlatCAMDB.py:624 FlatCAMDB.py:2077
-msgid "Tool copied from Tools DB."
-msgstr "Herramienta copiada de Herramientas DB."
-
-#: FlatCAMDB.py:642 FlatCAMDB.py:2104
-msgid "Tool removed from Tools DB."
-msgstr "Herramienta eliminada de Herramientas DB."
-
-#: FlatCAMDB.py:653 FlatCAMDB.py:2115
-msgid "Export Tools Database"
-msgstr "Exportar la DB de herramientas"
-
-#: FlatCAMDB.py:656 FlatCAMDB.py:2118
-msgid "Tools_Database"
-msgstr "DB de herramientasram"
-
-#: FlatCAMDB.py:693 FlatCAMDB.py:696 FlatCAMDB.py:748 FlatCAMDB.py:2155
-#: FlatCAMDB.py:2158 FlatCAMDB.py:2211
-msgid "Failed to write Tools DB to file."
-msgstr "Error al escribir Herramientas DB en el archivo."
-
-#: FlatCAMDB.py:699 FlatCAMDB.py:2161
-msgid "Exported Tools DB to"
-msgstr "Exportó la base de datos de herramientas a"
-
-#: FlatCAMDB.py:706 FlatCAMDB.py:2168
-msgid "Import FlatCAM Tools DB"
-msgstr "Importe la base de datos de herramientas FlatCAM"
-
-#: FlatCAMDB.py:752 FlatCAMDB.py:2215
-msgid "Saved Tools DB."
-msgstr "Guardado el DB de herramientas."
-
-#: FlatCAMDB.py:899 FlatCAMDB.py:2405
-msgid "No Tool/row selected in the Tools Database table"
-msgstr ""
-"No se seleccionó ninguna herramienta / fila en la tabla Base de datos de "
-"herramientas"
-
-#: FlatCAMDB.py:917 FlatCAMDB.py:2422
-msgid "Cancelled adding tool from DB."
-msgstr "Se canceló la herramienta de agregar de la DB."
-
-#: FlatCAMDB.py:1018
-msgid "Basic Geo Parameters"
-msgstr "Parámetros básicos de Geo"
-
-#: FlatCAMDB.py:1030
-msgid "Advanced Geo Parameters"
-msgstr "Parámetros avanzados de Geo"
-
-#: FlatCAMDB.py:1042
-msgid "NCC Parameters"
-msgstr "NCC Parameters"
-
-#: FlatCAMDB.py:1054
-msgid "Paint Parameters"
-msgstr "Parámetros de Pintura"
-
-#: FlatCAMDB.py:1185 flatcamGUI/ObjectUI.py:967 flatcamGUI/ObjectUI.py:1769
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:185
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:148
-#: flatcamTools/ToolSolderPaste.py:253
-msgid "Feedrate X-Y"
-msgstr "Avance X-Y"
-
-#: FlatCAMDB.py:1187
-msgid ""
-"Feedrate X-Y. Feedrate\n"
-"The speed on XY plane used while cutting into material."
-msgstr ""
-"Avance X-Y. Avance\n"
-"La velocidad en el plano XY utilizada mientras se corta en material."
-
-#: FlatCAMDB.py:1199 flatcamGUI/ObjectUI.py:982 flatcamGUI/ObjectUI.py:1783
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:207
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:200
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:161
-#: flatcamTools/ToolSolderPaste.py:265
-msgid "Feedrate Z"
-msgstr "Avance Z"
-
-#: FlatCAMDB.py:1201
-msgid ""
-"Feedrate Z\n"
-"The speed on Z plane."
-msgstr ""
-"Avance Z\n"
-"La velocidad en el plano Z."
-
-#: FlatCAMDB.py:1399 flatcamGUI/ObjectUI.py:845
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:46
-#: flatcamTools/ToolNCC.py:341
-msgid "Operation"
-msgstr "Operación"
-
-#: FlatCAMDB.py:1401 flatcamTools/ToolNCC.py:343
-msgid ""
-"The 'Operation' can be:\n"
-"- Isolation -> will ensure that the non-copper clearing is always complete.\n"
-"If it's not successful then the non-copper clearing will fail, too.\n"
-"- Clear -> the regular non-copper clearing."
-msgstr ""
-"La 'Operación' puede ser:\n"
-"- Aislamiento -> asegurará que la limpieza sin cobre esté siempre completa.\n"
-"Si no tiene éxito, la limpieza sin cobre también fallará.\n"
-"- Borrar -> la limpieza regular sin cobre."
-
-#: FlatCAMDB.py:1408 flatcamEditors/FlatCAMGrbEditor.py:2742
-#: flatcamGUI/GUIElements.py:2577 flatcamTools/ToolNCC.py:350
-msgid "Clear"
-msgstr "Limpiar"
-
-#: FlatCAMDB.py:1409 flatcamTools/ToolNCC.py:351 flatcamTools/ToolNCC.py:1623
-msgid "Isolation"
-msgstr "Aislamiento"
-
-#: FlatCAMDB.py:1417 flatcamGUI/ObjectUI.py:409 flatcamGUI/ObjectUI.py:867
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:62
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:56
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:95
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:137
-#: flatcamTools/ToolNCC.py:359
-msgid "Milling Type"
-msgstr "Tipo de fresado"
-
-#: FlatCAMDB.py:1419 FlatCAMDB.py:1427
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:139
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:147
-#: flatcamTools/ToolNCC.py:361 flatcamTools/ToolNCC.py:369
-msgid ""
-"Milling type when the selected tool is of type: 'iso_op':\n"
-"- climb / best for precision milling and to reduce tool usage\n"
-"- conventional / useful when there is no backlash compensation"
-msgstr ""
-"Tipo de fresado cuando la herramienta seleccionada es de tipo: 'iso_op':\n"
-"- ascenso / mejor para fresado de precisión y para reducir el uso de "
-"herramientas\n"
-"- convencional / útil cuando no hay compensación de reacción"
-
-#: FlatCAMDB.py:1424 flatcamGUI/ObjectUI.py:415
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:62
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:102
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:144
-#: flatcamTools/ToolNCC.py:366
-msgid "Climb"
-msgstr "Subida"
-
-#: FlatCAMDB.py:1425 flatcamGUI/ObjectUI.py:416
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:63
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:103
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:145
-#: flatcamTools/ToolNCC.py:367
-msgid "Conventional"
-msgstr "Convencional"
-
-#: FlatCAMDB.py:1437 FlatCAMDB.py:1546 flatcamEditors/FlatCAMGeoEditor.py:451
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:182
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:163
-#: flatcamTools/ToolNCC.py:382 flatcamTools/ToolPaint.py:329
-msgid "Overlap"
-msgstr "Superposición"
-
-#: FlatCAMDB.py:1439 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:184
-#: flatcamTools/ToolNCC.py:384
-msgid ""
-"How much (percentage) of the tool width to overlap each tool pass.\n"
-"Adjust the value starting with lower values\n"
-"and increasing it if areas that should be cleared are still \n"
-"not cleared.\n"
-"Lower values = faster processing, faster execution on CNC.\n"
-"Higher values = slow processing and slow execution on CNC\n"
-"due of too many paths."
-msgstr ""
-"Cuánto (porcentaje) del ancho de la herramienta para superponer cada pasada "
-"de herramienta.\n"
-"Ajuste el valor comenzando con valores más bajos\n"
-"y aumentarlo si las áreas que deberían limpiarse aún están\n"
-"no borrado.\n"
-"Valores más bajos = procesamiento más rápido, ejecución más rápida en CNC.\n"
-"Valores más altos = procesamiento lento y ejecución lenta en CNC\n"
-"debido a demasiados caminos."
-
-#: FlatCAMDB.py:1458 FlatCAMDB.py:1567 flatcamEditors/FlatCAMGeoEditor.py:471
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:72
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:229
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:59
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:45
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:53
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:183
-#: flatcamTools/ToolCopperThieving.py:111
-#: flatcamTools/ToolCopperThieving.py:362 flatcamTools/ToolCutOut.py:190
-#: flatcamTools/ToolFiducials.py:172 flatcamTools/ToolInvertGerber.py:88
-#: flatcamTools/ToolInvertGerber.py:96 flatcamTools/ToolNCC.py:403
-#: flatcamTools/ToolPaint.py:350
-msgid "Margin"
-msgstr "Margen"
-
-#: FlatCAMDB.py:1460
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:74
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:61
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204
-#: flatcamTools/ToolCopperThieving.py:113 flatcamTools/ToolFiducials.py:174
-#: flatcamTools/ToolFiducials.py:237 flatcamTools/ToolNCC.py:405
-msgid "Bounding box margin."
-msgstr "Margen de cuadro delimitador."
-
-#: FlatCAMDB.py:1471 FlatCAMDB.py:1582 flatcamEditors/FlatCAMGeoEditor.py:485
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:105
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:198
-#: flatcamTools/ToolExtractDrills.py:128 flatcamTools/ToolNCC.py:416
-#: flatcamTools/ToolPaint.py:365 flatcamTools/ToolPunchGerber.py:139
-msgid "Method"
-msgstr "Método"
-
-#: FlatCAMDB.py:1473 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:217
-#: flatcamTools/ToolNCC.py:418
-msgid ""
-"Algorithm for copper clearing:\n"
-"- Standard: Fixed step inwards.\n"
-"- Seed-based: Outwards from seed.\n"
-"- Line-based: Parallel lines."
-msgstr ""
-"Algoritmo para la limpieza de cobre:\n"
-"- Estándar: paso fijo hacia adentro.\n"
-"- Basado en semillas: hacia afuera de la semilla.\n"
-"- Basado en líneas: líneas paralelas."
-
-#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 flatcamEditors/FlatCAMGeoEditor.py:499
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
-#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolNCC.py:2395
-#: flatcamTools/ToolNCC.py:2424 flatcamTools/ToolNCC.py:2693
-#: flatcamTools/ToolNCC.py:2725 flatcamTools/ToolPaint.py:390
-#: flatcamTools/ToolPaint.py:1834 tclCommands/TclCommandCopperClear.py:126
-#: tclCommands/TclCommandCopperClear.py:134 tclCommands/TclCommandPaint.py:125
-msgid "Standard"
-msgstr "Estándar"
-
-#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 defaults.py:395 defaults.py:427
-#: flatcamEditors/FlatCAMGeoEditor.py:499
-#: flatcamEditors/FlatCAMGeoEditor.py:569
-#: flatcamEditors/FlatCAMGeoEditor.py:5152
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
-#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolNCC.py:2401
-#: flatcamTools/ToolNCC.py:2429 flatcamTools/ToolNCC.py:2699
-#: flatcamTools/ToolNCC.py:2731 flatcamTools/ToolPaint.py:390
-#: flatcamTools/ToolPaint.py:1848 tclCommands/TclCommandCopperClear.py:128
-#: tclCommands/TclCommandCopperClear.py:136 tclCommands/TclCommandPaint.py:127
-msgid "Seed"
-msgstr "Semilla"
-
-#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 flatcamEditors/FlatCAMGeoEditor.py:499
-#: flatcamEditors/FlatCAMGeoEditor.py:5156
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
-#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolPaint.py:390
-#: flatcamTools/ToolPaint.py:699 flatcamTools/ToolPaint.py:1862
-#: tclCommands/TclCommandCopperClear.py:130 tclCommands/TclCommandPaint.py:129
-msgid "Lines"
-msgstr "Líneas"
-
-#: FlatCAMDB.py:1489 FlatCAMDB.py:1607
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:237
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:224
-#: flatcamTools/ToolNCC.py:439 flatcamTools/ToolPaint.py:401
-msgid "Connect"
-msgstr "Conectar"
-
-#: FlatCAMDB.py:1493 FlatCAMDB.py:1610 flatcamEditors/FlatCAMGeoEditor.py:508
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:239
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:226
-#: flatcamTools/ToolNCC.py:443 flatcamTools/ToolPaint.py:404
-msgid ""
-"Draw lines between resulting\n"
-"segments to minimize tool lifts."
-msgstr ""
-"Dibuja líneas entre el resultado\n"
-"Segmentos para minimizar elevaciones de herramientas."
-
-#: FlatCAMDB.py:1499 FlatCAMDB.py:1614
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:246
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:232
-#: flatcamTools/ToolNCC.py:449 flatcamTools/ToolPaint.py:408
-msgid "Contour"
-msgstr "Contorno"
-
-#: FlatCAMDB.py:1503 FlatCAMDB.py:1617 flatcamEditors/FlatCAMGeoEditor.py:518
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:248
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:234
-#: flatcamTools/ToolNCC.py:453 flatcamTools/ToolPaint.py:411
-msgid ""
-"Cut around the perimeter of the polygon\n"
-"to trim rough edges."
-msgstr ""
-"Corta todo el perímetro del polígono.\n"
-"Para recortar los bordes ásperos."
-
-#: FlatCAMDB.py:1509 flatcamEditors/FlatCAMGeoEditor.py:612
-#: flatcamEditors/FlatCAMGrbEditor.py:5311 flatcamGUI/ObjectUI.py:143
-#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:255
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:142
-#: flatcamTools/ToolNCC.py:459 flatcamTools/ToolTransform.py:28
-msgid "Offset"
-msgstr "Compensar"
-
-#: FlatCAMDB.py:1513 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:257
-#: flatcamTools/ToolNCC.py:463
-msgid ""
-"If used, it will add an offset to the copper features.\n"
-"The copper clearing will finish to a distance\n"
-"from the copper features.\n"
-"The value can be between 0 and 10 FlatCAM units."
-msgstr ""
-"Si se usa, agregará un desplazamiento a las características de cobre.\n"
-"El claro de cobre terminará a cierta distancia.\n"
-"de las características de cobre.\n"
-"El valor puede estar entre 0 y 10 unidades FlatCAM."
-
-#: FlatCAMDB.py:1548 flatcamEditors/FlatCAMGeoEditor.py:453
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:165
-#: flatcamTools/ToolPaint.py:331
-msgid ""
-"How much (percentage) of the tool width to overlap each tool pass.\n"
-"Adjust the value starting with lower values\n"
-"and increasing it if areas that should be painted are still \n"
-"not painted.\n"
-"Lower values = faster processing, faster execution on CNC.\n"
-"Higher values = slow processing and slow execution on CNC\n"
-"due of too many paths."
-msgstr ""
-"Cuánto (porcentaje) del ancho de la herramienta para superponer cada pasada "
-"de herramienta.\n"
-"Ajuste el valor comenzando con valores más bajos\n"
-"y aumentarlo si las áreas que deben pintarse aún están\n"
-"No pintado.\n"
-"Valores más bajos = procesamiento más rápido, ejecución más rápida en CNC.\n"
-"Valores más altos = procesamiento lento y ejecución lenta en CNC\n"
-"debido a demasiados caminos."
-
-#: FlatCAMDB.py:1569 flatcamEditors/FlatCAMGeoEditor.py:473
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:185
-#: flatcamTools/ToolPaint.py:352
-msgid ""
-"Distance by which to avoid\n"
-"the edges of the polygon to\n"
-"be painted."
-msgstr ""
-"Distancia por la cual evitar\n"
-"los bordes del polígono a\n"
-"ser pintado."
-
-#: FlatCAMDB.py:1584 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:200
-#: flatcamTools/ToolPaint.py:367
-msgid ""
-"Algorithm for painting:\n"
-"- Standard: Fixed step inwards.\n"
-"- Seed-based: Outwards from seed.\n"
-"- Line-based: Parallel lines.\n"
-"- Laser-lines: Active only for Gerber objects.\n"
-"Will create lines that follow the traces.\n"
-"- Combo: In case of failure a new method will be picked from the above\n"
-"in the order specified."
-msgstr ""
-"Algoritmo para pintar:\n"
-"- Estándar: paso fijo hacia adentro.\n"
-"- Basado en semillas: hacia afuera de la semilla.\n"
-"- Basado en líneas: líneas paralelas.\n"
-"- Líneas láser: activas solo para objetos Gerber.\n"
-"Creará líneas que siguen los rastros.\n"
-"- Combo: en caso de falla, se elegirá un nuevo método de los anteriores\n"
-"en el orden especificado."
-
-#: FlatCAMDB.py:1596 FlatCAMDB.py:1598
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
-#: flatcamTools/ToolPaint.py:390 flatcamTools/ToolPaint.py:392
-#: flatcamTools/ToolPaint.py:693 flatcamTools/ToolPaint.py:698
-#: flatcamTools/ToolPaint.py:1876 tclCommands/TclCommandPaint.py:131
-msgid "Laser_lines"
-msgstr "Lineas laser"
-
-#: FlatCAMDB.py:1596 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
-#: flatcamTools/ToolPaint.py:390 flatcamTools/ToolPaint.py:2027
-#: tclCommands/TclCommandPaint.py:133
-msgid "Combo"
-msgstr "Combo"
-
-#: FlatCAMDB.py:1641
-msgid "Add Tool in DB"
-msgstr "Agregar herramienta en DB"
-
-#: FlatCAMDB.py:1675
-msgid "Save DB"
-msgstr "Salvar DB"
-
-#: FlatCAMDB.py:1677
-msgid "Save the Tools Database information's."
-msgstr "Guarde la información de la base de datos de herramientas."
-
-#: FlatCAMProcess.py:172
-msgid "processes running."
-msgstr "procesos en ejecución."
-
-#: FlatCAMTool.py:245 FlatCAMTool.py:252 flatcamGUI/ObjectUI.py:157
-#: flatcamGUI/ObjectUI.py:164
-msgid "Edited value is out of range"
-msgstr "El valor editado está fuera de rango"
-
-#: FlatCAMTool.py:247 FlatCAMTool.py:254 flatcamGUI/ObjectUI.py:159
-#: flatcamGUI/ObjectUI.py:166
-msgid "Edited value is within limits."
-msgstr "El valor editado está dentro de los límites."
-
-#: FlatCAMTranslation.py:104
-msgid "The application will restart."
-msgstr "La aplicación se reiniciará."
-
-#: FlatCAMTranslation.py:106
-msgid "Are you sure do you want to change the current language to"
-msgstr "¿Está seguro de que desea cambiar el idioma actual a"
-
-#: FlatCAMTranslation.py:107
-msgid "Apply Language ..."
-msgstr "Aplicar Idioma ..."
+#: Common.py:396
+#, fuzzy
+#| msgid "Exclusion areas"
+msgid "Exclusion areas added."
+msgstr "Zonas de exclusión"
+
+#: Common.py:405
+#, fuzzy
+#| msgid "Exclusion areas"
+msgid "With Exclusion areas."
+msgstr "Zonas de exclusión"
+
+#: Common.py:435
+msgid "Cancelled. Area exclusion drawing was interrupted."
+msgstr "Cancelado. Se interrumpió el dibujo de exclusión de área."
+
+#: Common.py:527 Common.py:575
+#, fuzzy
+#| msgid "All objects are selected."
+msgid "All exclusion zones deleted."
+msgstr "Todos los objetos están seleccionados."
+
+#: Common.py:562
+#, fuzzy
+#| msgid "Delete all exclusion areas."
+msgid "Selected exclusion zones deleted."
+msgstr "Eliminar todas las áreas de exclusión."
#: assets/linux/flatcam-beta.desktop:3
msgid "FlatCAM Beta"
msgstr "FlatCAM Beta"
-#: assets/linux/flatcam-beta.desktop:7
-msgid "./assets/icon.png"
-msgstr "./assets/icon.png"
-
#: assets/linux/flatcam-beta.desktop:8
msgid "G-Code from GERBERS"
msgstr "Código G de GERBERS"
-#: camlib.py:597
+#: camlib.py:596
msgid "self.solid_geometry is neither BaseGeometry or list."
msgstr "self.solid_geometry no es ni BaseGeometry ni lista."
-#: camlib.py:970
+#: camlib.py:971
msgid "Pass"
msgstr "Pases"
-#: camlib.py:981 flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:146
-#: flatcamObjects/FlatCAMGerber.py:497 flatcamTools/ToolCopperThieving.py:1016
-#: flatcamTools/ToolCopperThieving.py:1205
-#: flatcamTools/ToolCopperThieving.py:1217 flatcamTools/ToolNCC.py:2050
-#: flatcamTools/ToolNCC.py:2158 flatcamTools/ToolNCC.py:2172
-#: flatcamTools/ToolNCC.py:3103 flatcamTools/ToolNCC.py:3208
-#: flatcamTools/ToolNCC.py:3223 flatcamTools/ToolNCC.py:3489
-#: flatcamTools/ToolNCC.py:3590 flatcamTools/ToolNCC.py:3605
-msgid "Buffering"
-msgstr "Tamponamiento"
-
-#: camlib.py:990
+#: camlib.py:991
msgid "Get Exteriors"
msgstr "Obtener exteriores"
-#: camlib.py:993
+#: camlib.py:994
msgid "Get Interiors"
msgstr "Obtener interiores"
-#: camlib.py:2172
+#: camlib.py:2174
msgid "Object was mirrored"
msgstr "El objeto fue reflejado"
-#: camlib.py:2174
+#: camlib.py:2176
msgid "Failed to mirror. No object selected"
msgstr "No se pudo reflejar. Ningún objeto seleccionado"
-#: camlib.py:2239
+#: camlib.py:2241
msgid "Object was rotated"
msgstr "El objeto fue girado"
-#: camlib.py:2241
+#: camlib.py:2243
msgid "Failed to rotate. No object selected"
msgstr "No se pudo rotar. Ningún objeto seleccionado"
-#: camlib.py:2307
+#: camlib.py:2309
msgid "Object was skewed"
msgstr "El objeto fue sesgado"
-#: camlib.py:2309
+#: camlib.py:2311
msgid "Failed to skew. No object selected"
msgstr "Error al sesgar. Ningún objeto seleccionado"
-#: camlib.py:2385
+#: camlib.py:2387
msgid "Object was buffered"
msgstr "El objeto fue almacenado"
-#: camlib.py:2387
+#: camlib.py:2389
msgid "Failed to buffer. No object selected"
msgstr "Error al almacenar en búfer. Ningún objeto seleccionado"
-#: camlib.py:2594
+#: camlib.py:2597
msgid "There is no such parameter"
msgstr "No hay tal parámetro"
-#: camlib.py:2654 camlib.py:2887 camlib.py:3116 camlib.py:3338
+#: camlib.py:2657 camlib.py:2898 camlib.py:3127 camlib.py:3349
msgid ""
"The Cut Z parameter has positive value. It is the depth value to drill into "
"material.\n"
@@ -2751,12 +18362,12 @@ msgstr ""
"tipográfico, por lo tanto, la aplicación convertirá el valor a negativo. "
"Compruebe el código CNC resultante (Gcode, etc.)."
-#: camlib.py:2662 camlib.py:2897 camlib.py:3126 camlib.py:3348 camlib.py:3631
-#: camlib.py:4017
+#: camlib.py:2665 camlib.py:2908 camlib.py:3137 camlib.py:3359 camlib.py:3650
+#: camlib.py:4045
msgid "The Cut Z parameter is zero. There will be no cut, skipping file"
msgstr "El parámetro Cut Z es cero. No habrá corte, saltando archivo"
-#: camlib.py:2673 camlib.py:3985
+#: camlib.py:2680 camlib.py:4013
msgid ""
"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, "
"y) \n"
@@ -2766,7 +18377,7 @@ msgstr ""
"formato (x, y)\n"
"pero ahora solo hay un valor, no dos. "
-#: camlib.py:2682 camlib.py:3582 camlib.py:3967
+#: camlib.py:2693 camlib.py:3597 camlib.py:3991
msgid ""
"The End Move X,Y field in Edit -> Preferences has to be in the format (x, y) "
"but now there is only one value, not two."
@@ -2774,31 +18385,31 @@ msgstr ""
"El campo de movimiento final X, Y en Editar -> Preferencias debe estar en el "
"formato (x, y) pero ahora solo hay un valor, no dos."
-#: camlib.py:2770
+#: camlib.py:2781
msgid "Creating a list of points to drill..."
msgstr "Crear una lista de puntos para explorar ..."
-#: camlib.py:2860 camlib.py:3729 camlib.py:4121
+#: camlib.py:2871 camlib.py:3748 camlib.py:4149
msgid "Starting G-Code"
msgstr "Iniciando el código G"
-#: camlib.py:3001 camlib.py:3220 camlib.py:3384 camlib.py:3742 camlib.py:4132
+#: camlib.py:3012 camlib.py:3231 camlib.py:3395 camlib.py:3761 camlib.py:4160
msgid "Starting G-Code for tool with diameter"
msgstr "Código G inicial para herramienta con diámetro"
-#: camlib.py:3084 camlib.py:3302 camlib.py:3470
+#: camlib.py:3095 camlib.py:3313 camlib.py:3481
msgid "G91 coordinates not implemented"
msgstr "Coordenadas G91 no implementadas"
-#: camlib.py:3090 camlib.py:3309 camlib.py:3475
+#: camlib.py:3101 camlib.py:3320 camlib.py:3486
msgid "The loaded Excellon file has no drills"
msgstr "El archivo Excellon cargado no tiene perforaciones"
-#: camlib.py:3498
+#: camlib.py:3509
msgid "Finished G-Code generation..."
msgstr "Generación de código G finalizada ..."
-#: camlib.py:3600
+#: camlib.py:3619
msgid ""
"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, "
"y) \n"
@@ -2808,7 +18419,7 @@ msgstr ""
"formato (x, y)\n"
"pero ahora solo hay un valor, no dos."
-#: camlib.py:3614 camlib.py:4000
+#: camlib.py:3633 camlib.py:4028
msgid ""
"Cut_Z parameter is None or zero. Most likely a bad combinations of other "
"parameters."
@@ -2816,7 +18427,7 @@ msgstr ""
"El parámetro Cut_Z es Ninguno o cero. Lo más probable es una mala "
"combinación de otros parámetros."
-#: camlib.py:3623 camlib.py:4009
+#: camlib.py:3642 camlib.py:4037
msgid ""
"The Cut Z parameter has positive value. It is the depth value to cut into "
"material.\n"
@@ -2830,11 +18441,11 @@ msgstr ""
"tipográfico, por lo tanto, la aplicación convertirá el valor a negativo. "
"Verifique el código CNC resultante (Gcode, etc.)."
-#: camlib.py:3636 camlib.py:4023
+#: camlib.py:3655 camlib.py:4051
msgid "Travel Z parameter is None or zero."
msgstr "El parámetro Travel Z des Ninguno o cero."
-#: camlib.py:3641 camlib.py:4028
+#: camlib.py:3660 camlib.py:4056
msgid ""
"The Travel Z parameter has negative value. It is the height value to travel "
"between cuts.\n"
@@ -2848,35 +18459,35 @@ msgstr ""
"error tipográfico, por lo tanto, la aplicación convertirá el valor a "
"positivo. Verifique el código CNC resultante (Gcode, etc.)."
-#: camlib.py:3649 camlib.py:4036
+#: camlib.py:3668 camlib.py:4064
msgid "The Z Travel parameter is zero. This is dangerous, skipping file"
msgstr ""
"El parámetro Z Travel es cero. Esto es peligroso, saltando el archive %s"
-#: camlib.py:3668 camlib.py:4059
+#: camlib.py:3687 camlib.py:4087
msgid "Indexing geometry before generating G-Code..."
msgstr "Indexación de la geometría antes de generar código G ..."
-#: camlib.py:3812 camlib.py:4201
+#: camlib.py:3831 camlib.py:4229
msgid "Finished G-Code generation"
msgstr "Generación de código G terminada"
-#: camlib.py:3812
+#: camlib.py:3831
msgid "paths traced"
msgstr "caminos trazados"
-#: camlib.py:3862
+#: camlib.py:3881
msgid "Expected a Geometry, got"
msgstr "Se esperaba una Geometría, se obtuvo"
-#: camlib.py:3869
+#: camlib.py:3888
msgid ""
"Trying to generate a CNC Job from a Geometry object without solid_geometry."
msgstr ""
"Intentando generar un trabajo de CNC desde un objeto de geometría sin "
"solid_geometry."
-#: camlib.py:3910
+#: camlib.py:3929
msgid ""
"The Tool Offset value is too negative to use for the current_geometry.\n"
"Raise the value (in module) and try again."
@@ -2885,15682 +18496,46 @@ msgstr ""
"en current_geometry.\n"
"Aumente el valor (en el módulo) e intente nuevamente."
-#: camlib.py:4201
+#: camlib.py:4229
msgid " paths traced."
msgstr " caminos trazados."
-#: camlib.py:4229
+#: camlib.py:4257
msgid "There is no tool data in the SolderPaste geometry."
msgstr "No hay datos de herramientas en la geometría SolderPaste."
-#: camlib.py:4318
+#: camlib.py:4346
msgid "Finished SolderPaste G-Code generation"
msgstr "Generación de código G de soldadura soldada terminada"
-#: camlib.py:4318
+#: camlib.py:4346
msgid "paths traced."
msgstr "caminos trazados."
-#: camlib.py:4578
+#: camlib.py:4606
msgid "Parsing GCode file. Number of lines"
msgstr "Analizando el archivo GCode. Número de líneas"
-#: camlib.py:4685
+#: camlib.py:4713
msgid "Creating Geometry from the parsed GCode file. "
msgstr "Crear geometría a partir del archivo GCode analizado. "
-#: camlib.py:4828 camlib.py:5118 camlib.py:5229 camlib.py:5385
+#: camlib.py:4856 camlib.py:5079 camlib.py:5190 camlib.py:5346
msgid "G91 coordinates not implemented ..."
msgstr "Coordenadas G91 no implementadas ..."
-#: camlib.py:4960
+#: camlib.py:4921
msgid "Unifying Geometry from parsed Geometry segments"
msgstr "Geometría unificadora de segmentos de geometría analizados"
-#: defaults.py:401
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
-#: flatcamTools/ToolCopperThieving.py:125 flatcamTools/ToolNCC.py:535
-#: flatcamTools/ToolNCC.py:1306 flatcamTools/ToolNCC.py:1634
-#: flatcamTools/ToolNCC.py:1919 flatcamTools/ToolNCC.py:1983
-#: flatcamTools/ToolNCC.py:2967 flatcamTools/ToolNCC.py:2976
-#: tclCommands/TclCommandCopperClear.py:190
-msgid "Itself"
-msgstr "Sí mismo"
-
-#: defaults.py:428 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
-#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:1427
-#: tclCommands/TclCommandPaint.py:162
-msgid "All Polygons"
-msgstr "Todos los polígonos"
-
-#: defaults.py:739
+#: defaults.py:756
msgid "Could not load defaults file."
msgstr "No se pudo cargar el archivo predeterminado."
-#: defaults.py:752
+#: defaults.py:769
msgid "Failed to parse defaults file."
msgstr "Error al analizar el archivo predeterminado."
-#: flatcamEditors/FlatCAMExcEditor.py:50 flatcamEditors/FlatCAMExcEditor.py:74
-#: flatcamEditors/FlatCAMExcEditor.py:168
-#: flatcamEditors/FlatCAMExcEditor.py:385
-#: flatcamEditors/FlatCAMExcEditor.py:589
-#: flatcamEditors/FlatCAMGrbEditor.py:243
-#: flatcamEditors/FlatCAMGrbEditor.py:250
-msgid "Click to place ..."
-msgstr "Haga clic para colocar ..."
-
-#: flatcamEditors/FlatCAMExcEditor.py:58
-msgid "To add a drill first select a tool"
-msgstr "Para agregar un taladro primero seleccione una herramienta"
-
-#: flatcamEditors/FlatCAMExcEditor.py:122
-msgid "Done. Drill added."
-msgstr "Hecho. Taladro agregado."
-
-#: flatcamEditors/FlatCAMExcEditor.py:176
-msgid "To add an Drill Array first select a tool in Tool Table"
-msgstr ""
-"Para agregar una matriz de perforación, primero seleccione una herramienta "
-"en la Tabla de herramientas"
-
-#: flatcamEditors/FlatCAMExcEditor.py:192
-#: flatcamEditors/FlatCAMExcEditor.py:415
-#: flatcamEditors/FlatCAMExcEditor.py:636
-#: flatcamEditors/FlatCAMExcEditor.py:1151
-#: flatcamEditors/FlatCAMExcEditor.py:1178
-#: flatcamEditors/FlatCAMGrbEditor.py:473
-#: flatcamEditors/FlatCAMGrbEditor.py:1937
-#: flatcamEditors/FlatCAMGrbEditor.py:1967
-msgid "Click on target location ..."
-msgstr "Haga clic en la ubicación de destino ..."
-
-#: flatcamEditors/FlatCAMExcEditor.py:211
-msgid "Click on the Drill Circular Array Start position"
-msgstr ""
-"Haga clic en la posición de inicio de la matriz circular de perforación"
-
-#: flatcamEditors/FlatCAMExcEditor.py:233
-#: flatcamEditors/FlatCAMExcEditor.py:677
-#: flatcamEditors/FlatCAMGrbEditor.py:518
-msgid "The value is not Float. Check for comma instead of dot separator."
-msgstr ""
-"El valor no es Real. Compruebe si hay coma en lugar de separador de puntos."
-
-#: flatcamEditors/FlatCAMExcEditor.py:237
-msgid "The value is mistyped. Check the value"
-msgstr "El valor está mal escrito. Comprueba el valor"
-
-#: flatcamEditors/FlatCAMExcEditor.py:336
-msgid "Too many drills for the selected spacing angle."
-msgstr "Demasiados taladros para el ángulo de separación seleccionado."
-
-#: flatcamEditors/FlatCAMExcEditor.py:354
-msgid "Done. Drill Array added."
-msgstr "Hecho. Drill Array agregado."
-
-#: flatcamEditors/FlatCAMExcEditor.py:394
-msgid "To add a slot first select a tool"
-msgstr "Para agregar un espacio primero seleccione una herramienta"
-
-#: flatcamEditors/FlatCAMExcEditor.py:454
-#: flatcamEditors/FlatCAMExcEditor.py:461
-#: flatcamEditors/FlatCAMExcEditor.py:742
-#: flatcamEditors/FlatCAMExcEditor.py:749
-msgid "Value is missing or wrong format. Add it and retry."
-msgstr ""
-"Falta el formato del formato o es incorrecto Añádelo y vuelve a intentarlo."
-
-#: flatcamEditors/FlatCAMExcEditor.py:559
-msgid "Done. Adding Slot completed."
-msgstr "Hecho. Agregar de Ranura completado."
-
-#: flatcamEditors/FlatCAMExcEditor.py:597
-msgid "To add an Slot Array first select a tool in Tool Table"
-msgstr ""
-"Para agregar una matriz de ranuras, primero seleccione una herramienta en la "
-"tabla de herramientas"
-
-#: flatcamEditors/FlatCAMExcEditor.py:655
-msgid "Click on the Slot Circular Array Start position"
-msgstr "Haga clic en la posición de inicio de la matriz circular de ranura"
-
-#: flatcamEditors/FlatCAMExcEditor.py:680
-#: flatcamEditors/FlatCAMGrbEditor.py:521
-msgid "The value is mistyped. Check the value."
-msgstr "El valor está mal escrito. Compruebe el valor."
-
-#: flatcamEditors/FlatCAMExcEditor.py:859
-msgid "Too many Slots for the selected spacing angle."
-msgstr "Demasiadas ranuras para el ángulo de separación seleccionado."
-
-#: flatcamEditors/FlatCAMExcEditor.py:882
-msgid "Done. Slot Array added."
-msgstr "Hecho. Matriz de ranuras agregada."
-
-#: flatcamEditors/FlatCAMExcEditor.py:904
-msgid "Click on the Drill(s) to resize ..."
-msgstr "Haga clic en el taladro(s) para cambiar el tamaño ..."
-
-#: flatcamEditors/FlatCAMExcEditor.py:934
-msgid "Resize drill(s) failed. Please enter a diameter for resize."
-msgstr ""
-"Falló el tamaño de los taladros. Por favor, introduzca un diámetro para "
-"cambiar el tamaño."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1112
-msgid "Done. Drill/Slot Resize completed."
-msgstr "Hecho. Tamaño de taladro / ranura completado."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1115
-msgid "Cancelled. No drills/slots selected for resize ..."
-msgstr ""
-"Cancelado. No hay taladros / ranuras seleccionados para cambiar el tamaño ..."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1153
-#: flatcamEditors/FlatCAMGrbEditor.py:1939
-msgid "Click on reference location ..."
-msgstr "Haga clic en la ubicación de referencia ..."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1210
-msgid "Done. Drill(s) Move completed."
-msgstr "Hecho. Taladro (s) Movimiento completado."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1318
-msgid "Done. Drill(s) copied."
-msgstr "Hecho. Taladro (s) copiado."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1557
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:26
-msgid "Excellon Editor"
-msgstr "Excellon Editor"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1564
-#: flatcamEditors/FlatCAMGrbEditor.py:2462
-msgid "Name:"
-msgstr "Nombre:"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1570 flatcamGUI/ObjectUI.py:761
-#: flatcamGUI/ObjectUI.py:1465 flatcamTools/ToolNCC.py:120
-#: flatcamTools/ToolPaint.py:115 flatcamTools/ToolSolderPaste.py:74
-msgid "Tools Table"
-msgstr "Tabla de herramientas"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1572 flatcamGUI/ObjectUI.py:763
-msgid ""
-"Tools in this Excellon object\n"
-"when are used for drilling."
-msgstr ""
-"Herramientas en este objeto Excellon.\n"
-"Cuando se utilizan para la perforación."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1584
-#: flatcamEditors/FlatCAMExcEditor.py:3066 flatcamGUI/ObjectUI.py:781
-#: flatcamObjects/FlatCAMExcellon.py:1098
-#: flatcamObjects/FlatCAMExcellon.py:1188
-#: flatcamObjects/FlatCAMExcellon.py:1373 flatcamTools/ToolNCC.py:132
-#: flatcamTools/ToolPaint.py:128 flatcamTools/ToolPcbWizard.py:76
-#: flatcamTools/ToolProperties.py:416 flatcamTools/ToolProperties.py:476
-#: flatcamTools/ToolSolderPaste.py:85 tclCommands/TclCommandDrillcncjob.py:193
-msgid "Diameter"
-msgstr "Diámetro"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1592
-msgid "Add/Delete Tool"
-msgstr "Añadir / Eliminar herramienta"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1594
-msgid ""
-"Add/Delete a tool to the tool list\n"
-"for this Excellon object."
-msgstr ""
-"Agregar / Eliminar una herramienta a la lista de herramientas\n"
-"para este objeto Excellon."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1606 flatcamGUI/ObjectUI.py:1585
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:57
-msgid "Diameter for the new tool"
-msgstr "Diámetro para la nueva herramienta"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1616
-msgid "Add Tool"
-msgstr "Añadir herramienta"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1618
-msgid ""
-"Add a new tool to the tool list\n"
-"with the diameter specified above."
-msgstr ""
-"Agregar una nueva herramienta a la lista de herramientas\n"
-"con el diámetro especificado anteriormente."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1630
-msgid "Delete Tool"
-msgstr "Eliminar herramienta"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1632
-msgid ""
-"Delete a tool in the tool list\n"
-"by selecting a row in the tool table."
-msgstr ""
-"Eliminar una herramienta en la lista de herramientas\n"
-"seleccionando una fila en la tabla de herramientas."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1650 flatcamGUI/FlatCAMGUI.py:2019
-msgid "Resize Drill(s)"
-msgstr "Cambiar el tamaño de taladro (s)"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1652
-msgid "Resize a drill or a selection of drills."
-msgstr "Cambiar el tamaño de un ejercicio o una selección de ejercicios."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1659
-msgid "Resize Dia"
-msgstr "Cambiar el diá"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1661
-msgid "Diameter to resize to."
-msgstr "Diámetro para redimensionar a."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1672
-msgid "Resize"
-msgstr "Redimensionar"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1674
-msgid "Resize drill(s)"
-msgstr "Cambiar el tamaño de taladro"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1699 flatcamGUI/FlatCAMGUI.py:2018
-#: flatcamGUI/FlatCAMGUI.py:2270
-msgid "Add Drill Array"
-msgstr "Añadir Drill Array"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1701
-msgid "Add an array of drills (linear or circular array)"
-msgstr "Agregar una matriz de taladros (lineal o circular)"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1707
-msgid ""
-"Select the type of drills array to create.\n"
-"It can be Linear X(Y) or Circular"
-msgstr ""
-"Seleccione el tipo de matriz de ejercicios para crear.\n"
-"Puede ser lineal X (Y) o circular"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1710
-#: flatcamEditors/FlatCAMExcEditor.py:1924
-#: flatcamEditors/FlatCAMGrbEditor.py:2775
-msgid "Linear"
-msgstr "Lineal"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1711
-#: flatcamEditors/FlatCAMExcEditor.py:1925
-#: flatcamEditors/FlatCAMGrbEditor.py:2776 flatcamGUI/ObjectUI.py:316
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:52
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:149
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:107
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:52
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:151
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:70
-#: flatcamTools/ToolExtractDrills.py:78 flatcamTools/ToolExtractDrills.py:201
-#: flatcamTools/ToolFiducials.py:220 flatcamTools/ToolNCC.py:221
-#: flatcamTools/ToolPaint.py:204 flatcamTools/ToolPunchGerber.py:89
-#: flatcamTools/ToolPunchGerber.py:229
-msgid "Circular"
-msgstr "Circular"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1719
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:68
-msgid "Nr of drills"
-msgstr "Nu. de ejercicios"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1720
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:70
-msgid "Specify how many drills to be in the array."
-msgstr "Especifique cuántos ejercicios debe estar en la matriz."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1738
-#: flatcamEditors/FlatCAMExcEditor.py:1788
-#: flatcamEditors/FlatCAMExcEditor.py:1860
-#: flatcamEditors/FlatCAMExcEditor.py:1953
-#: flatcamEditors/FlatCAMExcEditor.py:2004
-#: flatcamEditors/FlatCAMGrbEditor.py:1573
-#: flatcamEditors/FlatCAMGrbEditor.py:2804
-#: flatcamEditors/FlatCAMGrbEditor.py:2853
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:178
-msgid "Direction"
-msgstr "Dirección"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1740
-#: flatcamEditors/FlatCAMExcEditor.py:1955
-#: flatcamEditors/FlatCAMGrbEditor.py:2806
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:86
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:234
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:122
-msgid ""
-"Direction on which the linear array is oriented:\n"
-"- 'X' - horizontal axis \n"
-"- 'Y' - vertical axis or \n"
-"- 'Angle' - a custom angle for the array inclination"
-msgstr ""
-"Dirección en la que se orienta la matriz lineal:\n"
-"- 'X' - eje horizontal\n"
-"- 'Y' - eje vertical o\n"
-"- 'Ángulo': un ángulo personalizado para la inclinación de la matriz"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1747
-#: flatcamEditors/FlatCAMExcEditor.py:1869
-#: flatcamEditors/FlatCAMExcEditor.py:1962
-#: flatcamEditors/FlatCAMGrbEditor.py:2813
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:92
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:187
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:240
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:128
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:208
-#: flatcamTools/ToolFilm.py:256
-msgid "X"
-msgstr "X"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1748
-#: flatcamEditors/FlatCAMExcEditor.py:1870
-#: flatcamEditors/FlatCAMExcEditor.py:1963
-#: flatcamEditors/FlatCAMGrbEditor.py:2814
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:93
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:188
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:241
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:129
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:209
-#: flatcamTools/ToolFilm.py:257
-msgid "Y"
-msgstr "Y"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1749
-#: flatcamEditors/FlatCAMExcEditor.py:1766
-#: flatcamEditors/FlatCAMExcEditor.py:1800
-#: flatcamEditors/FlatCAMExcEditor.py:1871
-#: flatcamEditors/FlatCAMExcEditor.py:1875
-#: flatcamEditors/FlatCAMExcEditor.py:1964
-#: flatcamEditors/FlatCAMExcEditor.py:1982
-#: flatcamEditors/FlatCAMExcEditor.py:2016
-#: flatcamEditors/FlatCAMGrbEditor.py:2815
-#: flatcamEditors/FlatCAMGrbEditor.py:2832
-#: flatcamEditors/FlatCAMGrbEditor.py:2868
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:94
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:113
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:189
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:194
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:242
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:263
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:130
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:148
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:53
-#: flatcamTools/ToolDistance.py:120 flatcamTools/ToolDistanceMin.py:69
-#: flatcamTools/ToolTransform.py:60
-msgid "Angle"
-msgstr "Ángulo"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1753
-#: flatcamEditors/FlatCAMExcEditor.py:1968
-#: flatcamEditors/FlatCAMGrbEditor.py:2819
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:100
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:248
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:136
-msgid "Pitch"
-msgstr "Paso"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1755
-#: flatcamEditors/FlatCAMExcEditor.py:1970
-#: flatcamEditors/FlatCAMGrbEditor.py:2821
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:102
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:250
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:138
-msgid "Pitch = Distance between elements of the array."
-msgstr "Paso = Distancia entre elementos de la matriz."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1768
-#: flatcamEditors/FlatCAMExcEditor.py:1984
-msgid ""
-"Angle at which the linear array is placed.\n"
-"The precision is of max 2 decimals.\n"
-"Min value is: -360 degrees.\n"
-"Max value is: 360.00 degrees."
-msgstr ""
-"Ángulo en el que se coloca la matriz lineal.\n"
-"La precisión es de max 2 decimales.\n"
-"El valor mínimo es: -360 grados.\n"
-"El valor máximo es: 360.00 grados."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1789
-#: flatcamEditors/FlatCAMExcEditor.py:2005
-#: flatcamEditors/FlatCAMGrbEditor.py:2855
-msgid ""
-"Direction for circular array.Can be CW = clockwise or CCW = counter "
-"clockwise."
-msgstr ""
-"Dirección de la matriz circular. Puede ser CW = en sentido horario o CCW = "
-"en sentido antihorario."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1796
-#: flatcamEditors/FlatCAMExcEditor.py:2012
-#: flatcamEditors/FlatCAMGrbEditor.py:2863
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:129
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:136
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:286
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:142
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:170
-msgid "CW"
-msgstr "CW"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1797
-#: flatcamEditors/FlatCAMExcEditor.py:2013
-#: flatcamEditors/FlatCAMGrbEditor.py:2864
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:130
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:137
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:287
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:143
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:171
-msgid "CCW"
-msgstr "CCW"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1801
-#: flatcamEditors/FlatCAMExcEditor.py:2017
-#: flatcamEditors/FlatCAMGrbEditor.py:2870
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:115
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:145
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:265
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:295
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:150
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:179
-msgid "Angle at which each element in circular array is placed."
-msgstr "Ángulo en el que se coloca cada elemento de la matriz circular."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1835
-msgid "Slot Parameters"
-msgstr "Parámetros de ranura"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1837
-msgid ""
-"Parameters for adding a slot (hole with oval shape)\n"
-"either single or as an part of an array."
-msgstr ""
-"Parámetros para agregar una ranura (agujero con forma ovalada)\n"
-"ya sea solo o como parte de una matriz."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1846
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162
-#: flatcamTools/ToolProperties.py:559
-msgid "Length"
-msgstr "Longitud"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1848
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:164
-msgid "Length = The length of the slot."
-msgstr "Longitud = La longitud de la ranura."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1862
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:180
-msgid ""
-"Direction on which the slot is oriented:\n"
-"- 'X' - horizontal axis \n"
-"- 'Y' - vertical axis or \n"
-"- 'Angle' - a custom angle for the slot inclination"
-msgstr ""
-"Dirección en la que se orienta la ranura:\n"
-"- 'X' - eje horizontal\n"
-"- 'Y' - eje vertical o\n"
-"- 'Ángulo': un ángulo personalizado para la inclinación de la ranura"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1877
-msgid ""
-"Angle at which the slot is placed.\n"
-"The precision is of max 2 decimals.\n"
-"Min value is: -360 degrees.\n"
-"Max value is: 360.00 degrees."
-msgstr ""
-"Ángulo en el que se coloca la ranura.\n"
-"La precisión es de un máximo de 2 decimales.\n"
-"El valor mínimo es: -360 grados.\n"
-"El valor máximo es: 360.00 grados."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1910
-msgid "Slot Array Parameters"
-msgstr "Parámetros de matriz de ranuras"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1912
-msgid "Parameters for the array of slots (linear or circular array)"
-msgstr "Parámetros para la matriz de ranuras (matriz lineal o circular)"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1921
-msgid ""
-"Select the type of slot array to create.\n"
-"It can be Linear X(Y) or Circular"
-msgstr ""
-"Seleccione el tipo de matriz de ranuras para crear.\n"
-"Puede ser lineal X (Y) o circular"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1933
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:219
-msgid "Nr of slots"
-msgstr "Nro. De ranuras"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1934
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:221
-msgid "Specify how many slots to be in the array."
-msgstr "Especifique cuántas ranuras debe haber en la matriz."
-
-#: flatcamEditors/FlatCAMExcEditor.py:2452
-#: flatcamObjects/FlatCAMExcellon.py:410
-msgid "Total Drills"
-msgstr "Taladros totales"
-
-#: flatcamEditors/FlatCAMExcEditor.py:2484
-#: flatcamObjects/FlatCAMExcellon.py:441
-msgid "Total Slots"
-msgstr "Ranuras totales"
-
-#: flatcamEditors/FlatCAMExcEditor.py:2559
-#: flatcamEditors/FlatCAMGeoEditor.py:1076
-#: flatcamEditors/FlatCAMGeoEditor.py:1117
-#: flatcamEditors/FlatCAMGeoEditor.py:1145
-#: flatcamEditors/FlatCAMGeoEditor.py:1173
-#: flatcamEditors/FlatCAMGeoEditor.py:1217
-#: flatcamEditors/FlatCAMGeoEditor.py:1252
-#: flatcamEditors/FlatCAMGeoEditor.py:1280
-#: flatcamObjects/FlatCAMGeometry.py:599 flatcamObjects/FlatCAMGeometry.py:1033
-#: flatcamObjects/FlatCAMGeometry.py:1780
-#: flatcamObjects/FlatCAMGeometry.py:2424 flatcamTools/ToolNCC.py:1498
-#: flatcamTools/ToolPaint.py:1249 flatcamTools/ToolPaint.py:1420
-#: flatcamTools/ToolSolderPaste.py:883 flatcamTools/ToolSolderPaste.py:956
-msgid "Wrong value format entered, use a number."
-msgstr "Formato de valor incorrecto introducido, use un número."
-
-#: flatcamEditors/FlatCAMExcEditor.py:2570
-msgid ""
-"Tool already in the original or actual tool list.\n"
-"Save and reedit Excellon if you need to add this tool. "
-msgstr ""
-"Herramienta ya en la lista de herramientas original o real.\n"
-"Guarde y reedite Excellon si necesita agregar esta herramienta. "
-
-#: flatcamEditors/FlatCAMExcEditor.py:2579 flatcamGUI/FlatCAMGUI.py:4071
-msgid "Added new tool with dia"
-msgstr "Nueva herramienta agregada con dia"
-
-#: flatcamEditors/FlatCAMExcEditor.py:2612
-msgid "Select a tool in Tool Table"
-msgstr "Seleccione una herramienta en la tabla de herramientas"
-
-#: flatcamEditors/FlatCAMExcEditor.py:2642
-msgid "Deleted tool with diameter"
-msgstr "Herramienta eliminada con diámetro"
-
-#: flatcamEditors/FlatCAMExcEditor.py:2790
-msgid "Done. Tool edit completed."
-msgstr "Hecho. Edición de herramienta completada."
-
-#: flatcamEditors/FlatCAMExcEditor.py:3352
-msgid "There are no Tools definitions in the file. Aborting Excellon creation."
-msgstr ""
-"No hay definiciones de herramientas en el archivo. Anulando la creación de "
-"Excellon."
-
-#: flatcamEditors/FlatCAMExcEditor.py:3356
-msgid "An internal error has ocurred. See Shell.\n"
-msgstr "Ha ocurrido un error interno. Ver concha.\n"
-
-#: flatcamEditors/FlatCAMExcEditor.py:3361
-msgid "Creating Excellon."
-msgstr "Creación de Excellon."
-
-#: flatcamEditors/FlatCAMExcEditor.py:3373
-msgid "Excellon editing finished."
-msgstr "Excelente edición terminada."
-
-#: flatcamEditors/FlatCAMExcEditor.py:3390
-msgid "Cancelled. There is no Tool/Drill selected"
-msgstr "Cancelado. No hay herramienta / taladro seleccionado"
-
-#: flatcamEditors/FlatCAMExcEditor.py:4003
-msgid "Done. Drill(s) deleted."
-msgstr "Hecho. Taladro (s) eliminado (s)."
-
-#: flatcamEditors/FlatCAMExcEditor.py:4076
-#: flatcamEditors/FlatCAMExcEditor.py:4086
-#: flatcamEditors/FlatCAMGrbEditor.py:5063
-msgid "Click on the circular array Center position"
-msgstr "Haga clic en la posición del centro matriz circular"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:85
-msgid "Buffer distance:"
-msgstr "Dist. de amortiguación:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:86
-msgid "Buffer corner:"
-msgstr "Rincón del búfer:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:88
-msgid ""
-"There are 3 types of corners:\n"
-" - 'Round': the corner is rounded for exterior buffer.\n"
-" - 'Square': the corner is met in a sharp angle for exterior buffer.\n"
-" - 'Beveled': the corner is a line that directly connects the features "
-"meeting in the corner"
-msgstr ""
-"Hay 3 tipos de esquinas:\n"
-" - 'Redondo': la esquina está redondeada para el búfer exterior.\n"
-" - 'Cuadrado:' la esquina se encuentra en un ángulo agudo para el búfer "
-"exterior.\n"
-" - 'Biselado:' la esquina es una línea que conecta directamente las "
-"funciones que se encuentran en la esquina"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:94
-#: flatcamEditors/FlatCAMGrbEditor.py:2631
-msgid "Round"
-msgstr "Redondo"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:95
-#: flatcamEditors/FlatCAMGrbEditor.py:2632 flatcamGUI/ObjectUI.py:2073
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:217
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:68
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:175
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:68
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:177
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:143
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:291
-#: flatcamTools/ToolExtractDrills.py:94 flatcamTools/ToolExtractDrills.py:227
-#: flatcamTools/ToolNCC.py:583 flatcamTools/ToolPaint.py:527
-#: flatcamTools/ToolPunchGerber.py:105 flatcamTools/ToolPunchGerber.py:255
-#: flatcamTools/ToolQRCode.py:198
-msgid "Square"
-msgstr "Cuadrado"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:96
-#: flatcamEditors/FlatCAMGrbEditor.py:2633
-msgid "Beveled"
-msgstr "Biselado"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:103
-msgid "Buffer Interior"
-msgstr "Interior del amortiguador"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:105
-msgid "Buffer Exterior"
-msgstr "Amortiguador exterior"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:111
-msgid "Full Buffer"
-msgstr "Buffer lleno"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:132
-#: flatcamEditors/FlatCAMGeoEditor.py:3017 flatcamGUI/FlatCAMGUI.py:1928
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:190
-msgid "Buffer Tool"
-msgstr "Herramienta Buffer"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:144
-#: flatcamEditors/FlatCAMGeoEditor.py:161
-#: flatcamEditors/FlatCAMGeoEditor.py:178
-#: flatcamEditors/FlatCAMGeoEditor.py:3036
-#: flatcamEditors/FlatCAMGeoEditor.py:3064
-#: flatcamEditors/FlatCAMGeoEditor.py:3092
-#: flatcamEditors/FlatCAMGrbEditor.py:5116
-msgid "Buffer distance value is missing or wrong format. Add it and retry."
-msgstr ""
-"Falta el valor de la distancia del búfer o el formato es incorrecto. "
-"Agrégalo y vuelve a intentarlo."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:242
-msgid "Font"
-msgstr "Font"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:323 flatcamGUI/FlatCAMGUI.py:2208
-msgid "Text"
-msgstr "Texto"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:349
-msgid "Text Tool"
-msgstr "Herramienta de texto"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:405 flatcamGUI/FlatCAMGUI.py:511
-#: flatcamGUI/FlatCAMGUI.py:1158 flatcamGUI/ObjectUI.py:818
-#: flatcamGUI/ObjectUI.py:1662 flatcamObjects/FlatCAMExcellon.py:742
-#: flatcamObjects/FlatCAMExcellon.py:1084 flatcamObjects/FlatCAMGeometry.py:759
-#: flatcamTools/ToolNCC.py:331 flatcamTools/ToolNCC.py:797
-#: flatcamTools/ToolPaint.py:314 flatcamTools/ToolPaint.py:767
-msgid "Tool"
-msgstr "Herramienta"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:439 flatcamGUI/ObjectUI.py:364
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:43
-msgid "Tool dia"
-msgstr "Diá. de la herramienta"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:441
-msgid "Diameter of the tool to be used in the operation."
-msgstr "Diámetro de la herramienta a utilizar en la operación."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:487
-msgid ""
-"Algorithm to paint the polygons:\n"
-"- Standard: Fixed step inwards.\n"
-"- Seed-based: Outwards from seed.\n"
-"- Line-based: Parallel lines."
-msgstr ""
-"Algoritmo para pintar los polígonos:\n"
-"- Estándar: paso fijo hacia adentro.\n"
-"- Basado en semillas: hacia afuera de la semilla.\n"
-"- Basado en líneas: líneas paralelas."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:506
-msgid "Connect:"
-msgstr "Conectar:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:516
-msgid "Contour:"
-msgstr "Contorno:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:529 flatcamGUI/FlatCAMGUI.py:2212
-msgid "Paint"
-msgstr "Pintar"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:547 flatcamGUI/FlatCAMGUI.py:924
-#: flatcamGUI/FlatCAMGUI.py:2628 flatcamGUI/ObjectUI.py:2139
-#: flatcamTools/ToolPaint.py:43 flatcamTools/ToolPaint.py:738
-msgid "Paint Tool"
-msgstr "Herramienta de pintura"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:583
-#: flatcamEditors/FlatCAMGeoEditor.py:1055
-#: flatcamEditors/FlatCAMGeoEditor.py:3024
-#: flatcamEditors/FlatCAMGeoEditor.py:3052
-#: flatcamEditors/FlatCAMGeoEditor.py:3080
-#: flatcamEditors/FlatCAMGeoEditor.py:4502
-#: flatcamEditors/FlatCAMGrbEditor.py:5767
-msgid "Cancelled. No shape selected."
-msgstr "Cancelado. Ninguna forma seleccionada."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:596
-#: flatcamEditors/FlatCAMGeoEditor.py:3042
-#: flatcamEditors/FlatCAMGeoEditor.py:3070
-#: flatcamEditors/FlatCAMGeoEditor.py:3098
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:59
-#: flatcamTools/ToolProperties.py:117 flatcamTools/ToolProperties.py:162
-msgid "Tools"
-msgstr "Herramientas"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:607
-#: flatcamEditors/FlatCAMGeoEditor.py:991
-#: flatcamEditors/FlatCAMGrbEditor.py:5306
-#: flatcamEditors/FlatCAMGrbEditor.py:5703 flatcamGUI/FlatCAMGUI.py:945
-#: flatcamGUI/FlatCAMGUI.py:2649 flatcamTools/ToolTransform.py:460
-msgid "Transform Tool"
-msgstr "Herramienta de transformación"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:608
-#: flatcamEditors/FlatCAMGeoEditor.py:673
-#: flatcamEditors/FlatCAMGrbEditor.py:5307
-#: flatcamEditors/FlatCAMGrbEditor.py:5372
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:45
-#: flatcamTools/ToolTransform.py:24 flatcamTools/ToolTransform.py:466
-msgid "Rotate"
-msgstr "Girar"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:609
-#: flatcamEditors/FlatCAMGrbEditor.py:5308 flatcamTools/ToolTransform.py:25
-msgid "Skew/Shear"
-msgstr "Sesgo / cizalla"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:610
-#: flatcamEditors/FlatCAMGrbEditor.py:2680
-#: flatcamEditors/FlatCAMGrbEditor.py:5309 flatcamGUI/FlatCAMGUI.py:1063
-#: flatcamGUI/FlatCAMGUI.py:2140 flatcamGUI/FlatCAMGUI.py:2255
-#: flatcamGUI/FlatCAMGUI.py:2767 flatcamGUI/ObjectUI.py:125
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:95
-#: flatcamTools/ToolTransform.py:26
-msgid "Scale"
-msgstr "Escala"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:611
-#: flatcamEditors/FlatCAMGrbEditor.py:5310 flatcamTools/ToolTransform.py:27
-msgid "Mirror (Flip)"
-msgstr "Espejo (Flip)"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:625
-#: flatcamEditors/FlatCAMGrbEditor.py:5324 flatcamGUI/FlatCAMGUI.py:856
-#: flatcamGUI/FlatCAMGUI.py:2564
-msgid "Editor"
-msgstr "Editor"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:657
-#: flatcamEditors/FlatCAMGrbEditor.py:5356
-msgid "Angle:"
-msgstr "Ángulo:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:659
-#: flatcamEditors/FlatCAMGrbEditor.py:5358
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:55
-#: flatcamTools/ToolTransform.py:62
-msgid ""
-"Angle for Rotation action, in degrees.\n"
-"Float number between -360 and 359.\n"
-"Positive numbers for CW motion.\n"
-"Negative numbers for CCW motion."
-msgstr ""
-"Ángulo para la acción de rotación, en grados.\n"
-"Número de flotación entre -360 y 359.\n"
-"Números positivos para movimiento CW.\n"
-"Números negativos para movimiento CCW."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:675
-#: flatcamEditors/FlatCAMGrbEditor.py:5374
-msgid ""
-"Rotate the selected shape(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected shapes."
-msgstr ""
-"Gire la (s) forma (s) seleccionada (s).\n"
-"El punto de referencia es el centro de\n"
-"El cuadro delimitador para todas las formas seleccionadas."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:698
-#: flatcamEditors/FlatCAMGrbEditor.py:5397
-msgid "Angle X:"
-msgstr "Ángulo X:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:700
-#: flatcamEditors/FlatCAMGeoEditor.py:720
-#: flatcamEditors/FlatCAMGrbEditor.py:5399
-#: flatcamEditors/FlatCAMGrbEditor.py:5419
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:74
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:88
-#: flatcamTools/ToolCalibration.py:505 flatcamTools/ToolCalibration.py:518
-msgid ""
-"Angle for Skew action, in degrees.\n"
-"Float number between -360 and 359."
-msgstr ""
-"Ángulo para sesgo de acción, en grados.\n"
-"Número de flotación entre -360 y 359."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:711
-#: flatcamEditors/FlatCAMGrbEditor.py:5410 flatcamTools/ToolTransform.py:467
-msgid "Skew X"
-msgstr "Sesgo x"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:713
-#: flatcamEditors/FlatCAMGeoEditor.py:733
-#: flatcamEditors/FlatCAMGrbEditor.py:5412
-#: flatcamEditors/FlatCAMGrbEditor.py:5432
-msgid ""
-"Skew/shear the selected shape(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected shapes."
-msgstr ""
-"Sesgar / cortar la (s) forma (s) seleccionada (s).\n"
-"El punto de referencia es el centro de\n"
-"El cuadro delimitador para todas las formas seleccionadas."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:718
-#: flatcamEditors/FlatCAMGrbEditor.py:5417
-msgid "Angle Y:"
-msgstr "Ángulo Y:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:731
-#: flatcamEditors/FlatCAMGrbEditor.py:5430 flatcamTools/ToolTransform.py:468
-msgid "Skew Y"
-msgstr "Sesgo y"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:759
-#: flatcamEditors/FlatCAMGrbEditor.py:5458
-msgid "Factor X:"
-msgstr "Factor X:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:761
-#: flatcamEditors/FlatCAMGrbEditor.py:5460 flatcamTools/ToolCalibration.py:469
-msgid "Factor for Scale action over X axis."
-msgstr "Factor para la acción de escala sobre el eje X."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:771
-#: flatcamEditors/FlatCAMGrbEditor.py:5470 flatcamTools/ToolTransform.py:469
-msgid "Scale X"
-msgstr "Escala x"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:773
-#: flatcamEditors/FlatCAMGeoEditor.py:792
-#: flatcamEditors/FlatCAMGrbEditor.py:5472
-#: flatcamEditors/FlatCAMGrbEditor.py:5491
-msgid ""
-"Scale the selected shape(s).\n"
-"The point of reference depends on \n"
-"the Scale reference checkbox state."
-msgstr ""
-"Escala las formas seleccionadas.\n"
-"El punto de referencia depende de\n"
-"El estado de la casilla de verificación Escala de referencia."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:778
-#: flatcamEditors/FlatCAMGrbEditor.py:5477
-msgid "Factor Y:"
-msgstr "Factor Y:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:780
-#: flatcamEditors/FlatCAMGrbEditor.py:5479 flatcamTools/ToolCalibration.py:481
-msgid "Factor for Scale action over Y axis."
-msgstr "Factor de acción de escala sobre eje Y."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:790
-#: flatcamEditors/FlatCAMGrbEditor.py:5489 flatcamTools/ToolTransform.py:470
-msgid "Scale Y"
-msgstr "Escala Y"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:799
-#: flatcamEditors/FlatCAMGrbEditor.py:5498
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:124
-#: flatcamTools/ToolTransform.py:189
-msgid "Link"
-msgstr "Enlazar"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:801
-#: flatcamEditors/FlatCAMGrbEditor.py:5500
-msgid ""
-"Scale the selected shape(s)\n"
-"using the Scale Factor X for both axis."
-msgstr ""
-"Escala las formas seleccionadas\n"
-"Utilizando el Scale Factor X para ambos ejes."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:807
-#: flatcamEditors/FlatCAMGrbEditor.py:5506
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:132
-#: flatcamTools/ToolTransform.py:196
-msgid "Scale Reference"
-msgstr "Referencia de escala"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:809
-#: flatcamEditors/FlatCAMGrbEditor.py:5508
-msgid ""
-"Scale the selected shape(s)\n"
-"using the origin reference when checked,\n"
-"and the center of the biggest bounding box\n"
-"of the selected shapes when unchecked."
-msgstr ""
-"Escala las formas seleccionadas\n"
-"usando la referencia de origen cuando está marcada,\n"
-"y el centro del cuadro delimitador más grande.\n"
-"de las formas seleccionadas cuando no está marcada."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:837
-#: flatcamEditors/FlatCAMGrbEditor.py:5537
-msgid "Value X:"
-msgstr "Valor X:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:839
-#: flatcamEditors/FlatCAMGrbEditor.py:5539
-msgid "Value for Offset action on X axis."
-msgstr "Valor para la acción Offset en el eje X."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:849
-#: flatcamEditors/FlatCAMGrbEditor.py:5549 flatcamTools/ToolTransform.py:473
-msgid "Offset X"
-msgstr "Offset X"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:851
-#: flatcamEditors/FlatCAMGeoEditor.py:871
-#: flatcamEditors/FlatCAMGrbEditor.py:5551
-#: flatcamEditors/FlatCAMGrbEditor.py:5571
-msgid ""
-"Offset the selected shape(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected shapes.\n"
-msgstr ""
-"Desplazar las formas seleccionadas.\n"
-"El punto de referencia es el centro de\n"
-"El cuadro delimitador para todas las formas seleccionadas.\n"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:857
-#: flatcamEditors/FlatCAMGrbEditor.py:5557
-msgid "Value Y:"
-msgstr "Valor Y:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:859
-#: flatcamEditors/FlatCAMGrbEditor.py:5559
-msgid "Value for Offset action on Y axis."
-msgstr "Valor para la acción Offset en el eje Y."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:869
-#: flatcamEditors/FlatCAMGrbEditor.py:5569 flatcamTools/ToolTransform.py:474
-msgid "Offset Y"
-msgstr "Offset Y"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:900
-#: flatcamEditors/FlatCAMGrbEditor.py:5600 flatcamTools/ToolTransform.py:475
-msgid "Flip on X"
-msgstr "Voltear en X"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:902
-#: flatcamEditors/FlatCAMGeoEditor.py:909
-#: flatcamEditors/FlatCAMGrbEditor.py:5602
-#: flatcamEditors/FlatCAMGrbEditor.py:5609
-msgid ""
-"Flip the selected shape(s) over the X axis.\n"
-"Does not create a new shape."
-msgstr ""
-"Voltea la (s) forma (s) seleccionada (s) sobre el eje X.\n"
-"No crea una nueva forma."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:907
-#: flatcamEditors/FlatCAMGrbEditor.py:5607 flatcamTools/ToolTransform.py:476
-msgid "Flip on Y"
-msgstr "Voltear en Y"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:915
-#: flatcamEditors/FlatCAMGrbEditor.py:5615
-msgid "Ref Pt"
-msgstr "Punto de Ref"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:917
-#: flatcamEditors/FlatCAMGrbEditor.py:5617
-msgid ""
-"Flip the selected shape(s)\n"
-"around the point in Point Entry Field.\n"
-"\n"
-"The point coordinates can be captured by\n"
-"left click on canvas together with pressing\n"
-"SHIFT key. \n"
-"Then click Add button to insert coordinates.\n"
-"Or enter the coords in format (x, y) in the\n"
-"Point Entry field and click Flip on X(Y)"
-msgstr ""
-"Voltear la (s) forma (s) seleccionada (s)\n"
-"alrededor del punto en el campo de entrada de puntos.\n"
-"\n"
-"Las coordenadas del punto pueden ser capturadas por\n"
-"Haga clic izquierdo en el lienzo junto con la presión\n"
-"Tecla Shift.\n"
-"Luego haga clic en el botón Agregar para insertar coordenadas.\n"
-"O ingrese las coords en formato (x, y) en el\n"
-"Campo de entrada de puntos y haga clic en Girar en X (Y)"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:929
-#: flatcamEditors/FlatCAMGrbEditor.py:5629
-msgid "Point:"
-msgstr "Punto:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:931
-#: flatcamEditors/FlatCAMGrbEditor.py:5631 flatcamTools/ToolTransform.py:299
-msgid ""
-"Coordinates in format (x, y) used as reference for mirroring.\n"
-"The 'x' in (x, y) will be used when using Flip on X and\n"
-"the 'y' in (x, y) will be used when using Flip on Y."
-msgstr ""
-"Coordenadas en formato (x, y) utilizadas como referencia para la "
-"duplicación.\n"
-"La 'x' en (x, y) se usará cuando se usa Flip en X y\n"
-"la 'y' en (x, y) se usará cuando se use Flip en Y."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:941
-#: flatcamEditors/FlatCAMGrbEditor.py:5643 flatcamTools/ToolTransform.py:309
-msgid ""
-"The point coordinates can be captured by\n"
-"left click on canvas together with pressing\n"
-"SHIFT key. Then click Add button to insert."
-msgstr ""
-"Las coordenadas del punto pueden ser capturadas por\n"
-"Haga clic izquierdo en el lienzo junto con la presión\n"
-"Tecla Shift. Luego haga clic en el botón Agregar para insertar."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1304
-#: flatcamEditors/FlatCAMGrbEditor.py:5951
-msgid "No shape selected. Please Select a shape to rotate!"
-msgstr ""
-"Ninguna forma seleccionada. Por favor, seleccione una forma para rotar!"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1307
-#: flatcamEditors/FlatCAMGrbEditor.py:5954 flatcamTools/ToolTransform.py:679
-msgid "Appying Rotate"
-msgstr "Aplicando rotar"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1333
-#: flatcamEditors/FlatCAMGrbEditor.py:5986
-msgid "Done. Rotate completed."
-msgstr "Hecho. Rotación completada."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1335
-msgid "Rotation action was not executed"
-msgstr "La acción de rotación no se ejecutó"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1354
-#: flatcamEditors/FlatCAMGrbEditor.py:6005
-msgid "No shape selected. Please Select a shape to flip!"
-msgstr ""
-"Ninguna forma seleccionada. Por favor, seleccione una forma para voltear!"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1357
-#: flatcamEditors/FlatCAMGrbEditor.py:6008 flatcamTools/ToolTransform.py:728
-msgid "Applying Flip"
-msgstr "Aplicando Voltear"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1386
-#: flatcamEditors/FlatCAMGrbEditor.py:6046 flatcamTools/ToolTransform.py:769
-msgid "Flip on the Y axis done"
-msgstr "Voltear sobre el eje Y hecho"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1390
-#: flatcamEditors/FlatCAMGrbEditor.py:6055 flatcamTools/ToolTransform.py:778
-msgid "Flip on the X axis done"
-msgstr "Voltear en el eje X hecho"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1398
-msgid "Flip action was not executed"
-msgstr "La acción de voltear no se ejecutó"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1416
-#: flatcamEditors/FlatCAMGrbEditor.py:6075
-msgid "No shape selected. Please Select a shape to shear/skew!"
-msgstr ""
-"Ninguna forma seleccionada. Por favor, seleccione una forma para esquilar / "
-"sesgar!"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1419
-#: flatcamEditors/FlatCAMGrbEditor.py:6078 flatcamTools/ToolTransform.py:801
-msgid "Applying Skew"
-msgstr "Aplicando Sesgo"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1442
-#: flatcamEditors/FlatCAMGrbEditor.py:6112
-msgid "Skew on the X axis done"
-msgstr "Sesgar sobre el eje X hecho"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1444
-#: flatcamEditors/FlatCAMGrbEditor.py:6114
-msgid "Skew on the Y axis done"
-msgstr "Sesgar sobre el eje Y hecho"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1447
-msgid "Skew action was not executed"
-msgstr "La acción sesgada no se ejecutó"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1469
-#: flatcamEditors/FlatCAMGrbEditor.py:6136
-msgid "No shape selected. Please Select a shape to scale!"
-msgstr "Ninguna forma seleccionada. Por favor, seleccione una forma a escala!"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1472
-#: flatcamEditors/FlatCAMGrbEditor.py:6139 flatcamTools/ToolTransform.py:847
-msgid "Applying Scale"
-msgstr "Aplicando la escala"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1504
-#: flatcamEditors/FlatCAMGrbEditor.py:6176
-msgid "Scale on the X axis done"
-msgstr "Escala en el eje X hecho"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1506
-#: flatcamEditors/FlatCAMGrbEditor.py:6178
-msgid "Scale on the Y axis done"
-msgstr "Escala en el eje Y hecho"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1508
-msgid "Scale action was not executed"
-msgstr "La acción de escala no se ejecutó"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1523
-#: flatcamEditors/FlatCAMGrbEditor.py:6195
-msgid "No shape selected. Please Select a shape to offset!"
-msgstr ""
-"Ninguna forma seleccionada. Por favor, seleccione una forma para compensar!"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1526
-#: flatcamEditors/FlatCAMGrbEditor.py:6198 flatcamTools/ToolTransform.py:897
-msgid "Applying Offset"
-msgstr "Aplicando Offset"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1536
-#: flatcamEditors/FlatCAMGrbEditor.py:6219
-msgid "Offset on the X axis done"
-msgstr "Offset en el eje X hecho"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1538
-#: flatcamEditors/FlatCAMGrbEditor.py:6221
-msgid "Offset on the Y axis done"
-msgstr "Offset en el eje Y hecho"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1541
-msgid "Offset action was not executed"
-msgstr "La acción de desplazamiento no se ejecutó"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1545
-#: flatcamEditors/FlatCAMGrbEditor.py:6228
-msgid "Rotate ..."
-msgstr "Girar ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1546
-#: flatcamEditors/FlatCAMGeoEditor.py:1601
-#: flatcamEditors/FlatCAMGeoEditor.py:1618
-#: flatcamEditors/FlatCAMGrbEditor.py:6229
-#: flatcamEditors/FlatCAMGrbEditor.py:6278
-#: flatcamEditors/FlatCAMGrbEditor.py:6293
-msgid "Enter an Angle Value (degrees)"
-msgstr "Ingrese un valor de ángulo (grados)"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1555
-#: flatcamEditors/FlatCAMGrbEditor.py:6237
-msgid "Geometry shape rotate done"
-msgstr "Forma de geometría rotar hecho"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1559
-#: flatcamEditors/FlatCAMGrbEditor.py:6240
-msgid "Geometry shape rotate cancelled"
-msgstr "Rotación de forma de geometría cancelada"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1564
-#: flatcamEditors/FlatCAMGrbEditor.py:6245
-msgid "Offset on X axis ..."
-msgstr "Offset en el eje X ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1565
-#: flatcamEditors/FlatCAMGeoEditor.py:1584
-#: flatcamEditors/FlatCAMGrbEditor.py:6246
-#: flatcamEditors/FlatCAMGrbEditor.py:6263
-msgid "Enter a distance Value"
-msgstr "Ingrese un valor de distancia"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1574
-#: flatcamEditors/FlatCAMGrbEditor.py:6254
-msgid "Geometry shape offset on X axis done"
-msgstr "Forma de geometría compensada en el eje X hecho"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1578
-#: flatcamEditors/FlatCAMGrbEditor.py:6257
-msgid "Geometry shape offset X cancelled"
-msgstr "Desplazamiento de forma de geometría X cancelado"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1583
-#: flatcamEditors/FlatCAMGrbEditor.py:6262
-msgid "Offset on Y axis ..."
-msgstr "Offset en eje Y ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1593
-#: flatcamEditors/FlatCAMGrbEditor.py:6271
-msgid "Geometry shape offset on Y axis done"
-msgstr "Desplazamiento de forma de geometría en el eje Y hecho"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1597
-msgid "Geometry shape offset on Y axis canceled"
-msgstr "Desplazamiento de forma de geometría en eje Y cancelado"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1600
-#: flatcamEditors/FlatCAMGrbEditor.py:6277
-msgid "Skew on X axis ..."
-msgstr "Sesgar en el eje X ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1610
-#: flatcamEditors/FlatCAMGrbEditor.py:6286
-msgid "Geometry shape skew on X axis done"
-msgstr "Forma de geometría sesgada en el eje X hecho"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1614
-msgid "Geometry shape skew on X axis canceled"
-msgstr "Forma geométrica sesgada en el eje X cancelada"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1617
-#: flatcamEditors/FlatCAMGrbEditor.py:6292
-msgid "Skew on Y axis ..."
-msgstr "Sesgar en el eje Y ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1627
-#: flatcamEditors/FlatCAMGrbEditor.py:6301
-msgid "Geometry shape skew on Y axis done"
-msgstr "Forma de geometría sesgada en el eje Y hecho"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1631
-msgid "Geometry shape skew on Y axis canceled"
-msgstr "Forma geométrica sesgada en el eje Y cancelada"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2008
-#: flatcamEditors/FlatCAMGeoEditor.py:2079
-#: flatcamEditors/FlatCAMGrbEditor.py:1437
-#: flatcamEditors/FlatCAMGrbEditor.py:1515
-msgid "Click on Center point ..."
-msgstr "Haga clic en el punto central ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2021
-#: flatcamEditors/FlatCAMGrbEditor.py:1447
-msgid "Click on Perimeter point to complete ..."
-msgstr "Haga clic en el punto del perímetro para completar ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2053
-msgid "Done. Adding Circle completed."
-msgstr "Hecho. Añadiendo círculo completado."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2107
-#: flatcamEditors/FlatCAMGrbEditor.py:1548
-msgid "Click on Start point ..."
-msgstr "Haga clic en el punto de inicio ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2109
-#: flatcamEditors/FlatCAMGrbEditor.py:1550
-msgid "Click on Point3 ..."
-msgstr "Haga clic en el punto 3 ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2111
-#: flatcamEditors/FlatCAMGrbEditor.py:1552
-msgid "Click on Stop point ..."
-msgstr "Haga clic en el punto de parada ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2116
-#: flatcamEditors/FlatCAMGrbEditor.py:1557
-msgid "Click on Stop point to complete ..."
-msgstr "Haga clic en el punto de parada para completar ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2118
-#: flatcamEditors/FlatCAMGrbEditor.py:1559
-msgid "Click on Point2 to complete ..."
-msgstr "Haga clic en el punto 2 para completar ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2120
-#: flatcamEditors/FlatCAMGrbEditor.py:1561
-msgid "Click on Center point to complete ..."
-msgstr "Haga clic en el punto central para completar ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2132
-#, python-format
-msgid "Direction: %s"
-msgstr "Direccion: %s"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2146
-#: flatcamEditors/FlatCAMGrbEditor.py:1587
-msgid "Mode: Start -> Stop -> Center. Click on Start point ..."
-msgstr "Modo: Inicio -> Detener -> Centro. Haga clic en el punto de inicio ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2149
-#: flatcamEditors/FlatCAMGrbEditor.py:1590
-msgid "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..."
-msgstr "Modo: Punto1 -> Punto3 -> Punto2. Haga clic en el punto 1 ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2152
-#: flatcamEditors/FlatCAMGrbEditor.py:1593
-msgid "Mode: Center -> Start -> Stop. Click on Center point ..."
-msgstr "Modo: Centro -> Iniciar -> Detener. Haga clic en el punto central ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2293
-msgid "Done. Arc completed."
-msgstr "Hecho. Arco completado."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2324
-#: flatcamEditors/FlatCAMGeoEditor.py:2397
-msgid "Click on 1st corner ..."
-msgstr "Haga clic en la primera esquina ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2336
-msgid "Click on opposite corner to complete ..."
-msgstr "Haga clic en la esquina opuesta para completar ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2366
-msgid "Done. Rectangle completed."
-msgstr "Hecho. Rectángulo completado."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2410
-#: flatcamObjects/FlatCAMGeometry.py:2648 flatcamTools/ToolNCC.py:1733
-#: flatcamTools/ToolPaint.py:1628
-msgid "Click on next Point or click right mouse button to complete ..."
-msgstr ""
-"Haga clic en el siguiente punto o haga clic con el botón derecho del ratón "
-"para completar ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2441
-msgid "Done. Polygon completed."
-msgstr "Hecho. Polígono completado."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2455
-#: flatcamEditors/FlatCAMGeoEditor.py:2520
-#: flatcamEditors/FlatCAMGrbEditor.py:1113
-#: flatcamEditors/FlatCAMGrbEditor.py:1324
-msgid "Backtracked one point ..."
-msgstr "Retrocedido un punto ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2498
-msgid "Done. Path completed."
-msgstr "Hecho. Camino completado."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2657
-msgid "No shape selected. Select a shape to explode"
-msgstr "Ninguna forma seleccionada. Selecciona una forma para explotar"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2690
-msgid "Done. Polygons exploded into lines."
-msgstr "Hecho. Los polígonos explotaron en líneas."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2722
-msgid "MOVE: No shape selected. Select a shape to move"
-msgstr "MOVER: No se seleccionó la forma. Selecciona una forma para mover"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2725
-#: flatcamEditors/FlatCAMGeoEditor.py:2745
-msgid " MOVE: Click on reference point ..."
-msgstr " MOVER: haga clic en el punto de referencia ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2730
-msgid " Click on destination point ..."
-msgstr " Haga clic en el punto de destino ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2770
-msgid "Done. Geometry(s) Move completed."
-msgstr "Hecho. Geometría (s) Movimiento completado."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2903
-msgid "Done. Geometry(s) Copy completed."
-msgstr "Hecho. Geometría (s) Copia completada."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2934
-#: flatcamEditors/FlatCAMGrbEditor.py:899
-msgid "Click on 1st point ..."
-msgstr "Haga clic en el primer punto ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2958
-msgid ""
-"Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. "
-"Error"
-msgstr ""
-"Fuente no soportada. Solo se admiten las versiones Regular, Bold, Italic y "
-"BoldItalic. Error"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2966
-msgid "No text to add."
-msgstr "No hay texto para agregar."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2976
-msgid " Done. Adding Text completed."
-msgstr " Hecho. Agregando texto completado."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3013
-msgid "Create buffer geometry ..."
-msgstr "Crear geometría de búfer ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3048
-#: flatcamEditors/FlatCAMGrbEditor.py:5160
-msgid "Done. Buffer Tool completed."
-msgstr "Hecho. Herramienta de amortiguación completada."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3076
-msgid "Done. Buffer Int Tool completed."
-msgstr "Hecho. Herramienta interna de búfer completada."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3104
-msgid "Done. Buffer Ext Tool completed."
-msgstr "Hecho. Herramienta externa de búfer completada."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3153
-#: flatcamEditors/FlatCAMGrbEditor.py:2153
-msgid "Select a shape to act as deletion area ..."
-msgstr "Seleccione una forma para que actúe como área de eliminación ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3155
-#: flatcamEditors/FlatCAMGeoEditor.py:3181
-#: flatcamEditors/FlatCAMGeoEditor.py:3187
-#: flatcamEditors/FlatCAMGrbEditor.py:2155
-msgid "Click to pick-up the erase shape..."
-msgstr "Haga clic para recoger la forma de borrar ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3191
-#: flatcamEditors/FlatCAMGrbEditor.py:2214
-msgid "Click to erase ..."
-msgstr "Haga clic para borrar ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3220
-#: flatcamEditors/FlatCAMGrbEditor.py:2247
-msgid "Done. Eraser tool action completed."
-msgstr "Hecho. Se ha completado la acción de la herramienta de borrador."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3270
-msgid "Create Paint geometry ..."
-msgstr "Crear geometría de pintura ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3283
-#: flatcamEditors/FlatCAMGrbEditor.py:2410
-msgid "Shape transformations ..."
-msgstr "Transformaciones de formas ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3339
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:27
-msgid "Geometry Editor"
-msgstr "Editor de geometría"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3345
-#: flatcamEditors/FlatCAMGrbEditor.py:2488
-#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263
-#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326
-#: flatcamTools/ToolCutOut.py:95
-msgid "Type"
-msgstr "Tipo"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3345 flatcamGUI/ObjectUI.py:218
-#: flatcamGUI/ObjectUI.py:742 flatcamGUI/ObjectUI.py:1433
-#: flatcamGUI/ObjectUI.py:2235 flatcamGUI/ObjectUI.py:2539
-#: flatcamGUI/ObjectUI.py:2606 flatcamTools/ToolCalibration.py:234
-#: flatcamTools/ToolFiducials.py:73
-msgid "Name"
-msgstr "Nombre"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3587
-msgid "Ring"
-msgstr "Anillo"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3589
-msgid "Line"
-msgstr "Línea"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3591 flatcamGUI/FlatCAMGUI.py:2202
-#: flatcamGUI/ObjectUI.py:2074
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:218
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:328
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:292
-#: flatcamTools/ToolNCC.py:584 flatcamTools/ToolPaint.py:528
-msgid "Polygon"
-msgstr "Polígono"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3593
-msgid "Multi-Line"
-msgstr "Multilínea"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3595
-msgid "Multi-Polygon"
-msgstr "Multi-polígono"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3602
-msgid "Geo Elem"
-msgstr "Elemento de Geo"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4076
-msgid "Editing MultiGeo Geometry, tool"
-msgstr "Edición de Geometría MultiGeo, herramienta"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4078
-msgid "with diameter"
-msgstr "con diámetro"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4509 flatcamGUI/FlatCAMGUI.py:3753
-#: flatcamGUI/FlatCAMGUI.py:3799 flatcamGUI/FlatCAMGUI.py:3817
-#: flatcamGUI/FlatCAMGUI.py:3961 flatcamGUI/FlatCAMGUI.py:4000
-#: flatcamGUI/FlatCAMGUI.py:4012 flatcamGUI/FlatCAMGUI.py:4029
-msgid "Click on target point."
-msgstr "Haga clic en el punto de destino."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4823
-#: flatcamEditors/FlatCAMGeoEditor.py:4858
-msgid "A selection of at least 2 geo items is required to do Intersection."
-msgstr ""
-"Se requiere una selección de al menos 2 elementos geo para hacer "
-"Intersección."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4944
-#: flatcamEditors/FlatCAMGeoEditor.py:5048
-msgid ""
-"Negative buffer value is not accepted. Use Buffer interior to generate an "
-"'inside' shape"
-msgstr ""
-"No se acepta el valor de búfer negativo. Usa el interior del amortiguador "
-"para generar una forma 'interior'"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4954
-#: flatcamEditors/FlatCAMGeoEditor.py:5007
-#: flatcamEditors/FlatCAMGeoEditor.py:5057
-msgid "Nothing selected for buffering."
-msgstr "Nada seleccionado para el almacenamiento en búfer."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4959
-#: flatcamEditors/FlatCAMGeoEditor.py:5011
-#: flatcamEditors/FlatCAMGeoEditor.py:5062
-msgid "Invalid distance for buffering."
-msgstr "Distancia no válida para el almacenamiento en búfer."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4983
-#: flatcamEditors/FlatCAMGeoEditor.py:5082
-msgid "Failed, the result is empty. Choose a different buffer value."
-msgstr "Falló, el resultado está vacío. Elija un valor de búfer diferente."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4994
-msgid "Full buffer geometry created."
-msgstr "Geometría de búfer completa creada."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5000
-msgid "Negative buffer value is not accepted."
-msgstr "No se acepta el valor negativo del búfer."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5031
-msgid "Failed, the result is empty. Choose a smaller buffer value."
-msgstr "Falló, el resultado está vacío. Elija un valor de búfer más pequeño."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5041
-msgid "Interior buffer geometry created."
-msgstr "Geometría de búfer interior creada."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5092
-msgid "Exterior buffer geometry created."
-msgstr "Geometría de búfer exterior creada."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5098
-#, python-format
-msgid "Could not do Paint. Overlap value has to be less than 100%%."
-msgstr ""
-"No se pudo pintar. El valor de superposición debe ser inferior al 100 %%."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5105
-msgid "Nothing selected for painting."
-msgstr "Nada seleccionado para pintar."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5111
-msgid "Invalid value for"
-msgstr "Valor no válido para"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5170
-msgid ""
-"Could not do Paint. Try a different combination of parameters. Or a "
-"different method of Paint"
-msgstr ""
-"No se pudo pintar. Pruebe con una combinación diferente de parámetros. O un "
-"método diferente de pintura"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5181
-msgid "Paint done."
-msgstr "Pintura hecha."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:213
-msgid "To add an Pad first select a aperture in Aperture Table"
-msgstr ""
-"Para agregar un Pad primero, seleccione una abertura en la Tabla de Aperture"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:220
-#: flatcamEditors/FlatCAMGrbEditor.py:420
-msgid "Aperture size is zero. It needs to be greater than zero."
-msgstr "El tamaño de la abertura es cero. Tiene que ser mayor que cero."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:373
-#: flatcamEditors/FlatCAMGrbEditor.py:686
-msgid ""
-"Incompatible aperture type. Select an aperture with type 'C', 'R' or 'O'."
-msgstr ""
-"Tipo de apertura incompatible. Seleccione una abertura con el tipo 'C', 'R' "
-"o 'O'."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:385
-msgid "Done. Adding Pad completed."
-msgstr "Hecho. Añadiendo Pad completado."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:412
-msgid "To add an Pad Array first select a aperture in Aperture Table"
-msgstr ""
-"Para agregar un Pad Array, primero seleccione una abertura en la Tabla de "
-"Aperturas"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:492
-msgid "Click on the Pad Circular Array Start position"
-msgstr "Haga clic en la posición de inicio Pad Array Circular"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:712
-msgid "Too many Pads for the selected spacing angle."
-msgstr "Demasiados pads para el ángulo de espaciado seleccionado."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:735
-msgid "Done. Pad Array added."
-msgstr "Hecho. Pad Array añadido."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:760
-msgid "Select shape(s) and then click ..."
-msgstr "Seleccione forma (s) y luego haga clic en ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:772
-msgid "Failed. Nothing selected."
-msgstr "Ha fallado. Nada seleccionado."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:788
-msgid ""
-"Failed. Poligonize works only on geometries belonging to the same aperture."
-msgstr ""
-"Ha fallado. Poligonize funciona solo en geometrías pertenecientes a la misma "
-"abertura."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:842
-msgid "Done. Poligonize completed."
-msgstr "Hecho. Poligonize completado."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:897
-#: flatcamEditors/FlatCAMGrbEditor.py:1130
-#: flatcamEditors/FlatCAMGrbEditor.py:1154
-msgid "Corner Mode 1: 45 degrees ..."
-msgstr "Modo esquina 1: 45 grados ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:909
-#: flatcamEditors/FlatCAMGrbEditor.py:1239
-msgid "Click on next Point or click Right mouse button to complete ..."
-msgstr ""
-"Haga clic en el siguiente punto o haga clic con el botón derecho del mouse "
-"para completar ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1118
-#: flatcamEditors/FlatCAMGrbEditor.py:1151
-msgid "Corner Mode 2: Reverse 45 degrees ..."
-msgstr "Modo esquina 2: Invertir 45 grados ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1121
-#: flatcamEditors/FlatCAMGrbEditor.py:1148
-msgid "Corner Mode 3: 90 degrees ..."
-msgstr "Modo esquina 3: 90 grados ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1124
-#: flatcamEditors/FlatCAMGrbEditor.py:1145
-msgid "Corner Mode 4: Reverse 90 degrees ..."
-msgstr "Modo esquina 4: Invertir 90 grados ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1127
-#: flatcamEditors/FlatCAMGrbEditor.py:1142
-msgid "Corner Mode 5: Free angle ..."
-msgstr "Modo esquina 5: ángulo libre ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1184
-#: flatcamEditors/FlatCAMGrbEditor.py:1360
-#: flatcamEditors/FlatCAMGrbEditor.py:1399
-msgid "Track Mode 1: 45 degrees ..."
-msgstr "Modo de pista 1: 45 grados ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1340
-#: flatcamEditors/FlatCAMGrbEditor.py:1394
-msgid "Track Mode 2: Reverse 45 degrees ..."
-msgstr "Modo de pista 2: Invertir 45 grados ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1345
-#: flatcamEditors/FlatCAMGrbEditor.py:1389
-msgid "Track Mode 3: 90 degrees ..."
-msgstr "Modo de pista 3: 90 grados ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1350
-#: flatcamEditors/FlatCAMGrbEditor.py:1384
-msgid "Track Mode 4: Reverse 90 degrees ..."
-msgstr "Modo de pista 4: Invertir 90 grados ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1355
-#: flatcamEditors/FlatCAMGrbEditor.py:1379
-msgid "Track Mode 5: Free angle ..."
-msgstr "Modo de pista 5: ángulo libre ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1780
-msgid "Scale the selected Gerber apertures ..."
-msgstr "Escala las aperturas seleccionadas de Gerber ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1822
-msgid "Buffer the selected apertures ..."
-msgstr "Buffer de las aberturas seleccionadas ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1864
-msgid "Mark polygon areas in the edited Gerber ..."
-msgstr "Marcar áreas de polígono en el Gerber editado ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1930
-msgid "Nothing selected to move"
-msgstr "Nada seleccionado para mover"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2055
-msgid "Done. Apertures Move completed."
-msgstr "Hecho. Movimiento de aperturas completado."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2137
-msgid "Done. Apertures copied."
-msgstr "Hecho. Aberturas copiadas."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2455 flatcamGUI/FlatCAMGUI.py:2233
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:27
-msgid "Gerber Editor"
-msgstr "Gerber Editor"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2475 flatcamGUI/ObjectUI.py:228
-#: flatcamTools/ToolProperties.py:159
-msgid "Apertures"
-msgstr "Aberturas"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2477 flatcamGUI/ObjectUI.py:230
-msgid "Apertures Table for the Gerber Object."
-msgstr "Tabla de Aperturas para el Objeto Gerber."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2488
-#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263
-msgid "Code"
-msgstr "Código"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2488
-#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:103
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43
-#: flatcamTools/ToolCopperThieving.py:261
-#: flatcamTools/ToolCopperThieving.py:301 flatcamTools/ToolFiducials.py:156
-msgid "Size"
-msgstr "Tamaño"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2488
-#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263
-msgid "Dim"
-msgstr "Dim"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2493 flatcamGUI/ObjectUI.py:267
-msgid "Index"
-msgstr "Índice"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2495
-#: flatcamEditors/FlatCAMGrbEditor.py:2524 flatcamGUI/ObjectUI.py:269
-msgid "Aperture Code"
-msgstr "Código de apertura"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2497 flatcamGUI/ObjectUI.py:271
-msgid "Type of aperture: circular, rectangle, macros etc"
-msgstr "Tipo de apertura: circular, rectangular, macros, etc"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2499 flatcamGUI/ObjectUI.py:273
-msgid "Aperture Size:"
-msgstr "Tamaño de apertura:"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2501 flatcamGUI/ObjectUI.py:275
-msgid ""
-"Aperture Dimensions:\n"
-" - (width, height) for R, O type.\n"
-" - (dia, nVertices) for P type"
-msgstr ""
-"Dimensiones de la abertura:\n"
-" - (ancho, alto) para R, O tipo.\n"
-" - (dia, nVertices) para tipo P"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2525
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:58
-msgid "Code for the new aperture"
-msgstr "Código para la nueva apertura"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2534
-msgid "Aperture Size"
-msgstr "Tamaño de apertura"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2536
-msgid ""
-"Size for the new aperture.\n"
-"If aperture type is 'R' or 'O' then\n"
-"this value is automatically\n"
-"calculated as:\n"
-"sqrt(width**2 + height**2)"
-msgstr ""
-"Tamaño para la nueva apertura.\n"
-"Si el tipo de apertura es 'R' o 'O' entonces\n"
-"este valor es automáticamente\n"
-"calculado como:\n"
-"sqrt (ancho ** 2 + altura ** 2)"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2550
-msgid "Aperture Type"
-msgstr "Tipo de apertura"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2552
-msgid ""
-"Select the type of new aperture. Can be:\n"
-"C = circular\n"
-"R = rectangular\n"
-"O = oblong"
-msgstr ""
-"Seleccione el tipo de apertura nueva. Puede ser:\n"
-"C = circular\n"
-"R = rectangular\n"
-"O = oblongo"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2563
-msgid "Aperture Dim"
-msgstr "Apertura Dim"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2565
-msgid ""
-"Dimensions for the new aperture.\n"
-"Active only for rectangular apertures (type R).\n"
-"The format is (width, height)"
-msgstr ""
-"Dimensiones para la nueva apertura.\n"
-"Activo solo para aberturas rectangulares (tipo R).\n"
-"El formato es (ancho, alto)."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2574
-msgid "Add/Delete Aperture"
-msgstr "Añadir / Eliminar Apertura"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2576
-msgid "Add/Delete an aperture in the aperture table"
-msgstr "Añadir / Eliminar una apertura en la tabla de aperturas"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2585
-msgid "Add a new aperture to the aperture list."
-msgstr "Agregar una nueva apertura a la lista de apertura."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2590
-msgid "Delete a aperture in the aperture list"
-msgstr "Eliminar una abertura en la lista de aperturas"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2607
-msgid "Buffer Aperture"
-msgstr "Apertura del tampón"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2609
-msgid "Buffer a aperture in the aperture list"
-msgstr "Buffer de apertura en la lista de apertura"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2622
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:194
-msgid "Buffer distance"
-msgstr "Dist. de buffer"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2623
-msgid "Buffer corner"
-msgstr "Rincón del búfer"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2625
-msgid ""
-"There are 3 types of corners:\n"
-" - 'Round': the corner is rounded.\n"
-" - 'Square': the corner is met in a sharp angle.\n"
-" - 'Beveled': the corner is a line that directly connects the features "
-"meeting in the corner"
-msgstr ""
-"Hay 3 tipos de esquinas:\n"
-" - 'Redondo': la esquina es redondeada.\n"
-" - 'Cuadrado:' la esquina se encuentra en un ángulo agudo.\n"
-" - 'Biselado:' la esquina es una línea que conecta directamente las "
-"funciones que se encuentran en la esquina"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2640 flatcamGUI/FlatCAMGUI.py:1061
-#: flatcamGUI/FlatCAMGUI.py:2138 flatcamGUI/FlatCAMGUI.py:2210
-#: flatcamGUI/FlatCAMGUI.py:2253 flatcamGUI/FlatCAMGUI.py:2765
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:200
-#: flatcamTools/ToolTransform.py:29
-msgid "Buffer"
-msgstr "Buffer"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2655
-msgid "Scale Aperture"
-msgstr "Apertura de la escala"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2657
-msgid "Scale a aperture in the aperture list"
-msgstr "Escala una abertura en la lista de aperturas"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2665
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:209
-msgid "Scale factor"
-msgstr "Factor de escala"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2667
-msgid ""
-"The factor by which to scale the selected aperture.\n"
-"Values can be between 0.0000 and 999.9999"
-msgstr ""
-"El factor por el cual escalar la apertura seleccionada.\n"
-"Los valores pueden estar entre 0.0000 y 999.9999"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2695
-msgid "Mark polygons"
-msgstr "Marcar polígonos"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2697
-msgid "Mark the polygon areas."
-msgstr "Marca las áreas del polígono."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2705
-msgid "Area UPPER threshold"
-msgstr "Umbral SUPERIOR área"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2707
-msgid ""
-"The threshold value, all areas less than this are marked.\n"
-"Can have a value between 0.0000 and 9999.9999"
-msgstr ""
-"El valor de umbral, todas las áreas menos que esto están marcadas.\n"
-"Puede tener un valor entre 0.0000 y 9999.9999"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2714
-msgid "Area LOWER threshold"
-msgstr "Umbral inferior de la zona"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2716
-msgid ""
-"The threshold value, all areas more than this are marked.\n"
-"Can have a value between 0.0000 and 9999.9999"
-msgstr ""
-"El valor de umbral, todas las áreas más que esto están marcadas.\n"
-"Puede tener un valor entre 0.0000 y 9999.9999"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2730
-msgid "Mark"
-msgstr "Marque"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2732
-msgid "Mark the polygons that fit within limits."
-msgstr "Marque los polígonos que se ajustan dentro de los límites."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2738
-msgid "Delete all the marked polygons."
-msgstr "Eliminar todos los polígonos marcados."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2744
-msgid "Clear all the markings."
-msgstr "Borra todas las marcas."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2764 flatcamGUI/FlatCAMGUI.py:1046
-#: flatcamGUI/FlatCAMGUI.py:2138 flatcamGUI/FlatCAMGUI.py:2750
-msgid "Add Pad Array"
-msgstr "Agregar matriz de pad"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2766
-msgid "Add an array of pads (linear or circular array)"
-msgstr "Añadir una matriz de pads (lineal o circular)"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2772
-msgid ""
-"Select the type of pads array to create.\n"
-"It can be Linear X(Y) or Circular"
-msgstr ""
-"Seleccione el tipo de matriz de pads para crear.\n"
-"Puede ser Lineal X (Y) o Circular"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2783
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:95
-msgid "Nr of pads"
-msgstr "Nº de almohadillas"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2785
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:97
-msgid "Specify how many pads to be in the array."
-msgstr "Especifique cuántos pads estarán en la matriz."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2834
-msgid ""
-"Angle at which the linear array is placed.\n"
-"The precision is of max 2 decimals.\n"
-"Min value is: -359.99 degrees.\n"
-"Max value is: 360.00 degrees."
-msgstr ""
-"Ángulo en el que se coloca la matriz lineal.\n"
-"La precisión es de max 2 decimales.\n"
-"El valor mínimo es: -359.99 grados.\n"
-"El valor máximo es: 360.00 grados."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3328
-#: flatcamEditors/FlatCAMGrbEditor.py:3332
-msgid "Aperture code value is missing or wrong format. Add it and retry."
-msgstr ""
-"Falta el valor del código de apertura o el formato es incorrecto. Agrégalo y "
-"vuelve a intentarlo."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3368
-msgid ""
-"Aperture dimensions value is missing or wrong format. Add it in format "
-"(width, height) and retry."
-msgstr ""
-"Falta el valor de las dimensiones de la abertura o el formato es incorrecto. "
-"Agréguelo en formato (ancho, alto) y vuelva a intentarlo."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3381
-msgid "Aperture size value is missing or wrong format. Add it and retry."
-msgstr ""
-"Falta el valor del tamaño de la apertura o el formato es incorrecto. "
-"Agrégalo y vuelve a intentarlo."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3392
-msgid "Aperture already in the aperture table."
-msgstr "Apertura ya en la mesa de apertura."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3399
-msgid "Added new aperture with code"
-msgstr "Agregada nueva apertura con código"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3431
-msgid " Select an aperture in Aperture Table"
-msgstr " Seleccione una abertura en la Mesa de Apertura"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3439
-msgid "Select an aperture in Aperture Table -->"
-msgstr "Seleccione una abertura en la Tabla de Apertura ->"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3453
-msgid "Deleted aperture with code"
-msgstr "Apertura eliminada con código"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3521
-msgid "Dimensions need two float values separated by comma."
-msgstr ""
-"Dimensions need two float values separated by comma.Se esperaba una lista de "
-"nombres de objetos separados por comas. Tiene"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3530
-msgid "Dimensions edited."
-msgstr "Dimensiones editadas."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4084
-msgid "Loading Gerber into Editor"
-msgstr "Cargando Gerber en el Editor"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4212
-msgid "Setting up the UI"
-msgstr "Configurar la IU"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4213
-msgid "Adding geometry finished. Preparing the GUI"
-msgstr "Adición de geometría terminada. Preparando la GUI"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4222
-msgid "Finished loading the Gerber object into the editor."
-msgstr "Terminó de cargar el objeto Gerber en el editor."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4361
-msgid ""
-"There are no Aperture definitions in the file. Aborting Gerber creation."
-msgstr ""
-"No hay definiciones de Aperture en el archivo. Abortando la creación de "
-"Gerber."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4371
-msgid "Creating Gerber."
-msgstr "Creación de Gerber."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4380
-msgid "Done. Gerber editing finished."
-msgstr "La edición de gerber terminó."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4398
-msgid "Cancelled. No aperture is selected"
-msgstr "Cancelado. No se selecciona ninguna apertura"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4992
-msgid "Failed. No aperture geometry is selected."
-msgstr "Ha fallado. No se selecciona ninguna geometría de apertura."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5001
-#: flatcamEditors/FlatCAMGrbEditor.py:5272
-msgid "Done. Apertures geometry deleted."
-msgstr "Hecho. Geometría de las aberturas eliminadas."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5144
-msgid "No aperture to buffer. Select at least one aperture and try again."
-msgstr ""
-"No hay apertura para amortiguar. Seleccione al menos una abertura e intente "
-"de nuevo."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5156
-msgid "Failed."
-msgstr "Ha fallado."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5175
-msgid "Scale factor value is missing or wrong format. Add it and retry."
-msgstr ""
-"Falta el valor del factor de escala o el formato es incorrecto. Agrégalo y "
-"vuelve a intentarlo."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5207
-msgid "No aperture to scale. Select at least one aperture and try again."
-msgstr ""
-"Sin apertura a escala. Seleccione al menos una abertura e intente de nuevo."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5223
-msgid "Done. Scale Tool completed."
-msgstr "Hecho. Herramienta de escala completada."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5261
-msgid "Polygons marked."
-msgstr "Polígonos marcados."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5264
-msgid "No polygons were marked. None fit within the limits."
-msgstr "No se marcaron polígonos. Ninguno encaja dentro de los límites."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5988
-msgid "Rotation action was not executed."
-msgstr "La acción de Rotación no se ejecutó."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:6116
-msgid "Skew action was not executed."
-msgstr "La acción Sesgada no se ejecutó."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:6181
-msgid "Scale action was not executed."
-msgstr "La acción de Escala no se ejecutó."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:6224
-msgid "Offset action was not executed."
-msgstr "La acción de Desplazamiento no se ejecutó."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:6274
-msgid "Geometry shape offset Y cancelled"
-msgstr "Forma de geometría offset Y cancelada"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:6289
-msgid "Geometry shape skew X cancelled"
-msgstr "Forma geométrica sesgada X cancelada"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:6304
-msgid "Geometry shape skew Y cancelled"
-msgstr "Forma geométrica sesgada Y cancelada"
-
-#: flatcamEditors/FlatCAMTextEditor.py:74
-msgid "Print Preview"
-msgstr "Vista previa de impres"
-
-#: flatcamEditors/FlatCAMTextEditor.py:75
-msgid "Open a OS standard Preview Print window."
-msgstr ""
-"Abra una ventana de Vista previa de impresión estándar del sistema operativo."
-
-#: flatcamEditors/FlatCAMTextEditor.py:78
-msgid "Print Code"
-msgstr "Imprimir código"
-
-#: flatcamEditors/FlatCAMTextEditor.py:79
-msgid "Open a OS standard Print window."
-msgstr "Abra una ventana de impresión estándar del sistema operativo."
-
-#: flatcamEditors/FlatCAMTextEditor.py:81
-msgid "Find in Code"
-msgstr "Encontr. en codigo"
-
-#: flatcamEditors/FlatCAMTextEditor.py:82
-msgid "Will search and highlight in yellow the string in the Find box."
-msgstr "Buscará y resaltará en amarillo la cadena en el Encuentra caja."
-
-#: flatcamEditors/FlatCAMTextEditor.py:86
-msgid "Find box. Enter here the strings to be searched in the text."
-msgstr "Encuentra caja. Ingrese aquí las cadenas a buscar en el texto."
-
-#: flatcamEditors/FlatCAMTextEditor.py:88
-msgid "Replace With"
-msgstr "Reemplazar con"
-
-#: flatcamEditors/FlatCAMTextEditor.py:89
-msgid ""
-"Will replace the string from the Find box with the one in the Replace box."
-msgstr "Reemplazará la cadena del cuadro Buscar con la del cuadro Reemplazar."
-
-#: flatcamEditors/FlatCAMTextEditor.py:93
-msgid "String to replace the one in the Find box throughout the text."
-msgstr "Cadena para reemplazar la del cuadro Buscar en todo el texto."
-
-#: flatcamEditors/FlatCAMTextEditor.py:95 flatcamGUI/ObjectUI.py:486
-#: flatcamGUI/ObjectUI.py:2219
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:54
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:88
-msgid "All"
-msgstr "Todos"
-
-#: flatcamEditors/FlatCAMTextEditor.py:96
-msgid ""
-"When checked it will replace all instances in the 'Find' box\n"
-"with the text in the 'Replace' box.."
-msgstr ""
-"Cuando está marcado, reemplazará todas las instancias en el cuadro 'Buscar'\n"
-"con el texto en el cuadro 'Reemplazar' .."
-
-#: flatcamEditors/FlatCAMTextEditor.py:99
-msgid "Copy All"
-msgstr "Cópialo todo"
-
-#: flatcamEditors/FlatCAMTextEditor.py:100
-msgid "Will copy all the text in the Code Editor to the clipboard."
-msgstr "Copiará todo el texto en el Editor de Código al portapapeles."
-
-#: flatcamEditors/FlatCAMTextEditor.py:103
-msgid "Open Code"
-msgstr "Código abierto"
-
-#: flatcamEditors/FlatCAMTextEditor.py:104
-msgid "Will open a text file in the editor."
-msgstr "Se abrirá un archivo de texto en el editor."
-
-#: flatcamEditors/FlatCAMTextEditor.py:106
-msgid "Save Code"
-msgstr "Guardar código"
-
-#: flatcamEditors/FlatCAMTextEditor.py:107
-msgid "Will save the text in the editor into a file."
-msgstr "Guardará el texto en el editor en un archivo."
-
-#: flatcamEditors/FlatCAMTextEditor.py:109
-msgid "Run Code"
-msgstr "Ejecutar código"
-
-#: flatcamEditors/FlatCAMTextEditor.py:110
-msgid "Will run the TCL commands found in the text file, one by one."
-msgstr ""
-"Ejecutará los comandos TCL encontrados en el archivo de texto, uno por uno."
-
-#: flatcamEditors/FlatCAMTextEditor.py:184
-msgid "Open file"
-msgstr "Abrir documento"
-
-#: flatcamEditors/FlatCAMTextEditor.py:215
-#: flatcamEditors/FlatCAMTextEditor.py:220
-msgid "Export Code ..."
-msgstr "Exportar el código ..."
-
-#: flatcamEditors/FlatCAMTextEditor.py:272 flatcamObjects/FlatCAMCNCJob.py:955
-#: flatcamTools/ToolSolderPaste.py:1530
-msgid "No such file or directory"
-msgstr "El fichero o directorio no existe"
-
-#: flatcamEditors/FlatCAMTextEditor.py:284 flatcamObjects/FlatCAMCNCJob.py:969
-msgid "Saved to"
-msgstr "Guardado en"
-
-#: flatcamEditors/FlatCAMTextEditor.py:334
-msgid "Code Editor content copied to clipboard ..."
-msgstr "Contenido del editor de código copiado al portapapeles ..."
-
-#: flatcamGUI/FlatCAMGUI.py:78 flatcamGUI/FlatCAMGUI.py:80
-#: flatcamGUI/FlatCAMGUI.py:2163
-msgid "Toggle Panel"
-msgstr "Panel de palanca"
-
-#: flatcamGUI/FlatCAMGUI.py:90
-msgid "File"
-msgstr "Archivo"
-
-#: flatcamGUI/FlatCAMGUI.py:95
-msgid "&New Project ...\tCtrl+N"
-msgstr "&Nuevo proyecto ...\tCtrl+N"
-
-#: flatcamGUI/FlatCAMGUI.py:97
-msgid "Will create a new, blank project"
-msgstr "Creará un nuevo proyecto en blanco"
-
-#: flatcamGUI/FlatCAMGUI.py:102
-msgid "&New"
-msgstr "&Nuevo"
-
-#: flatcamGUI/FlatCAMGUI.py:106
-msgid "Geometry\tN"
-msgstr "Geometría\tN"
-
-#: flatcamGUI/FlatCAMGUI.py:108
-msgid "Will create a new, empty Geometry Object."
-msgstr "Creará un nuevo objeto vacío de geometría."
-
-#: flatcamGUI/FlatCAMGUI.py:111
-msgid "Gerber\tB"
-msgstr "Gerber\tB"
-
-#: flatcamGUI/FlatCAMGUI.py:113
-msgid "Will create a new, empty Gerber Object."
-msgstr "Creará un nuevo objeto vacío de Gerber."
-
-#: flatcamGUI/FlatCAMGUI.py:116
-msgid "Excellon\tL"
-msgstr "Excellon\tL"
-
-#: flatcamGUI/FlatCAMGUI.py:118
-msgid "Will create a new, empty Excellon Object."
-msgstr "Creará un objeto Excellon nuevo y vacío."
-
-#: flatcamGUI/FlatCAMGUI.py:123
-msgid "Document\tD"
-msgstr "Documento\tD"
-
-#: flatcamGUI/FlatCAMGUI.py:125
-msgid "Will create a new, empty Document Object."
-msgstr "Creará un nuevo objeto de Documento vacío."
-
-#: flatcamGUI/FlatCAMGUI.py:129 flatcamGUI/FlatCAMGUI.py:4420
-#: flatcamTools/ToolPcbWizard.py:62 flatcamTools/ToolPcbWizard.py:69
-msgid "Open"
-msgstr "Abierto"
-
-#: flatcamGUI/FlatCAMGUI.py:134
-msgid "Open &Project ..."
-msgstr "Abierto &Project ..."
-
-#: flatcamGUI/FlatCAMGUI.py:140 flatcamGUI/FlatCAMGUI.py:4430
-msgid "Open &Gerber ...\tCtrl+G"
-msgstr "Abierto &Gerber ...\tCtrl+G"
-
-#: flatcamGUI/FlatCAMGUI.py:145 flatcamGUI/FlatCAMGUI.py:4435
-msgid "Open &Excellon ...\tCtrl+E"
-msgstr "Abierto &Excellon ...\tCtrl+E"
-
-#: flatcamGUI/FlatCAMGUI.py:150 flatcamGUI/FlatCAMGUI.py:4440
-msgid "Open G-&Code ..."
-msgstr "Abierto G-&Code ..."
-
-#: flatcamGUI/FlatCAMGUI.py:157
-msgid "Open Config ..."
-msgstr "Abierto Config ..."
-
-#: flatcamGUI/FlatCAMGUI.py:162
-msgid "Recent projects"
-msgstr "Proyectos recientes"
-
-#: flatcamGUI/FlatCAMGUI.py:164
-msgid "Recent files"
-msgstr "Archivos recientes"
-
-#: flatcamGUI/FlatCAMGUI.py:167 flatcamGUI/FlatCAMGUI.py:753
-#: flatcamGUI/FlatCAMGUI.py:1339
-msgid "Save"
-msgstr "Salvar"
-
-#: flatcamGUI/FlatCAMGUI.py:171
-msgid "&Save Project ...\tCtrl+S"
-msgstr "Guardar proyecto...\tCtrl+S"
-
-#: flatcamGUI/FlatCAMGUI.py:176
-msgid "Save Project &As ...\tCtrl+Shift+S"
-msgstr "Guardar proyecto como...\tCtrl+Shift+S"
-
-#: flatcamGUI/FlatCAMGUI.py:191
-msgid "Scripting"
-msgstr "Scripting"
-
-#: flatcamGUI/FlatCAMGUI.py:195 flatcamGUI/FlatCAMGUI.py:903
-#: flatcamGUI/FlatCAMGUI.py:2607
-msgid "New Script ..."
-msgstr "Nuevo Script ..."
-
-#: flatcamGUI/FlatCAMGUI.py:197 flatcamGUI/FlatCAMGUI.py:905
-#: flatcamGUI/FlatCAMGUI.py:2609
-msgid "Open Script ..."
-msgstr "Abrir Script ..."
-
-#: flatcamGUI/FlatCAMGUI.py:199
-msgid "Open Example ..."
-msgstr "Abrir ejemplo ..."
-
-#: flatcamGUI/FlatCAMGUI.py:201 flatcamGUI/FlatCAMGUI.py:907
-#: flatcamGUI/FlatCAMGUI.py:2611 flatcamGUI/FlatCAMGUI.py:4409
-msgid "Run Script ..."
-msgstr "Ejecutar Script ..."
-
-#: flatcamGUI/FlatCAMGUI.py:203 flatcamGUI/FlatCAMGUI.py:4411
-msgid ""
-"Will run the opened Tcl Script thus\n"
-"enabling the automation of certain\n"
-"functions of FlatCAM."
-msgstr ""
-"Ejecutará el Script Tcl abierto así\n"
-"permitiendo la automatización de ciertos\n"
-"Funciones de FlatCAM."
-
-#: flatcamGUI/FlatCAMGUI.py:218
-msgid "Import"
-msgstr "Importar"
-
-#: flatcamGUI/FlatCAMGUI.py:220
-msgid "&SVG as Geometry Object ..."
-msgstr "&SVG como objeto de geometría ..."
-
-#: flatcamGUI/FlatCAMGUI.py:223
-msgid "&SVG as Gerber Object ..."
-msgstr "&SVG como objeto de Gerber ..."
-
-#: flatcamGUI/FlatCAMGUI.py:228
-msgid "&DXF as Geometry Object ..."
-msgstr "&DXF como objeto de geometría ..."
-
-#: flatcamGUI/FlatCAMGUI.py:231
-msgid "&DXF as Gerber Object ..."
-msgstr "&DXF como objeto de Gerber ..."
-
-#: flatcamGUI/FlatCAMGUI.py:235
-msgid "HPGL2 as Geometry Object ..."
-msgstr "HPGL2 como objeto de geometría ..."
-
-#: flatcamGUI/FlatCAMGUI.py:241
-msgid "Export"
-msgstr "Exportar"
-
-#: flatcamGUI/FlatCAMGUI.py:245
-msgid "Export &SVG ..."
-msgstr "Exportar &SVG ..."
-
-#: flatcamGUI/FlatCAMGUI.py:249
-msgid "Export DXF ..."
-msgstr "Exportar DXF ..."
-
-#: flatcamGUI/FlatCAMGUI.py:255
-msgid "Export &PNG ..."
-msgstr "Exportar &PNG ..."
-
-#: flatcamGUI/FlatCAMGUI.py:257
-msgid ""
-"Will export an image in PNG format,\n"
-"the saved image will contain the visual \n"
-"information currently in FlatCAM Plot Area."
-msgstr ""
-"Exportará una imagen en formato PNG,\n"
-"La imagen guardada contendrá lo visual.\n"
-"Información actualmente en FlatCAM Plot Area."
-
-#: flatcamGUI/FlatCAMGUI.py:266
-msgid "Export &Excellon ..."
-msgstr "Exportación y Excellon ..."
-
-#: flatcamGUI/FlatCAMGUI.py:268
-msgid ""
-"Will export an Excellon Object as Excellon file,\n"
-"the coordinates format, the file units and zeros\n"
-"are set in Preferences -> Excellon Export."
-msgstr ""
-"Exportará un objeto de Excellon como archivo de Excellon,\n"
-"El formato de las coordenadas, las unidades de archivo y los ceros.\n"
-"se configuran en Preferencias -> Exportación de Excellon."
-
-#: flatcamGUI/FlatCAMGUI.py:275
-msgid "Export &Gerber ..."
-msgstr "Exportar &Gerber ..."
-
-#: flatcamGUI/FlatCAMGUI.py:277
-msgid ""
-"Will export an Gerber Object as Gerber file,\n"
-"the coordinates format, the file units and zeros\n"
-"are set in Preferences -> Gerber Export."
-msgstr ""
-"Exportará un objeto Gerber como archivo Gerber,\n"
-"El formato de las coordenadas, las unidades de archivo y los ceros.\n"
-"se establecen en Preferencias -> Exportar Gerber."
-
-#: flatcamGUI/FlatCAMGUI.py:287
-msgid "Backup"
-msgstr "Apoyo"
-
-#: flatcamGUI/FlatCAMGUI.py:292
-msgid "Import Preferences from file ..."
-msgstr "Importar preferencias del archivo ..."
-
-#: flatcamGUI/FlatCAMGUI.py:298
-msgid "Export Preferences to file ..."
-msgstr "Exportar preferencias a un archivo ..."
-
-#: flatcamGUI/FlatCAMGUI.py:306
-#: flatcamGUI/preferences/PreferencesUIManager.py:1119
-msgid "Save Preferences"
-msgstr "Guardar Preferencias"
-
-#: flatcamGUI/FlatCAMGUI.py:312 flatcamGUI/FlatCAMGUI.py:1730
-msgid "Print (PDF)"
-msgstr "Imprimir (PDF)"
-
-#: flatcamGUI/FlatCAMGUI.py:320
-msgid "E&xit"
-msgstr "Salida"
-
-#: flatcamGUI/FlatCAMGUI.py:328 flatcamGUI/FlatCAMGUI.py:747
-#: flatcamGUI/FlatCAMGUI.py:2286
-msgid "Edit"
-msgstr "Editar"
-
-#: flatcamGUI/FlatCAMGUI.py:332
-msgid "Edit Object\tE"
-msgstr "Editar objeto\tE"
-
-#: flatcamGUI/FlatCAMGUI.py:334
-msgid "Close Editor\tCtrl+S"
-msgstr "Cerrar Editor\tCtrl+S"
-
-#: flatcamGUI/FlatCAMGUI.py:343
-msgid "Conversion"
-msgstr "Conversión"
-
-#: flatcamGUI/FlatCAMGUI.py:345
-msgid "&Join Geo/Gerber/Exc -> Geo"
-msgstr "Unirse Geo/Gerber/Exc -> Geo"
-
-#: flatcamGUI/FlatCAMGUI.py:347
-msgid ""
-"Merge a selection of objects, which can be of type:\n"
-"- Gerber\n"
-"- Excellon\n"
-"- Geometry\n"
-"into a new combo Geometry object."
-msgstr ""
-"Combine una selección de objetos, que pueden ser de tipo:\n"
-"- Gerber\n"
-"- Excellon\n"
-"- Geometría\n"
-"en un nuevo objeto de geometría combo."
-
-#: flatcamGUI/FlatCAMGUI.py:354
-msgid "Join Excellon(s) -> Excellon"
-msgstr "Únete a Excellon (s) -> Excellon"
-
-#: flatcamGUI/FlatCAMGUI.py:356
-msgid "Merge a selection of Excellon objects into a new combo Excellon object."
-msgstr ""
-"Combine una selección de objetos de Excellon en un nuevo objeto de Excellon "
-"combinado."
-
-#: flatcamGUI/FlatCAMGUI.py:359
-msgid "Join Gerber(s) -> Gerber"
-msgstr "Únete a Gerber (s) -> Gerber"
-
-#: flatcamGUI/FlatCAMGUI.py:361
-msgid "Merge a selection of Gerber objects into a new combo Gerber object."
-msgstr ""
-"Combine una selección de objetos Gerber en un nuevo objeto combo Gerber."
-
-#: flatcamGUI/FlatCAMGUI.py:366
-msgid "Convert Single to MultiGeo"
-msgstr "Convertir solo geo a multi geo"
-
-#: flatcamGUI/FlatCAMGUI.py:368
-msgid ""
-"Will convert a Geometry object from single_geometry type\n"
-"to a multi_geometry type."
-msgstr ""
-"Convertirá un objeto de geometría de un tipo de geometría única\n"
-"a un tipo de geometría múltiple."
-
-#: flatcamGUI/FlatCAMGUI.py:372
-msgid "Convert Multi to SingleGeo"
-msgstr "Convertir multi a solo Geo"
-
-#: flatcamGUI/FlatCAMGUI.py:374
-msgid ""
-"Will convert a Geometry object from multi_geometry type\n"
-"to a single_geometry type."
-msgstr ""
-"Convertirá un objeto de geometría de tipo de geometría múltiple\n"
-"a un solo tipo de geometría."
-
-#: flatcamGUI/FlatCAMGUI.py:381
-msgid "Convert Any to Geo"
-msgstr "Convertir cualquiera a Geo"
-
-#: flatcamGUI/FlatCAMGUI.py:384
-msgid "Convert Any to Gerber"
-msgstr "Convertir cualquiera a Gerber"
-
-#: flatcamGUI/FlatCAMGUI.py:390
-msgid "&Copy\tCtrl+C"
-msgstr "Dupdo\tCtrl+C"
-
-#: flatcamGUI/FlatCAMGUI.py:395
-msgid "&Delete\tDEL"
-msgstr "Borrar\tDEL"
-
-#: flatcamGUI/FlatCAMGUI.py:400
-msgid "Se&t Origin\tO"
-msgstr "Establecer origen\tO"
-
-#: flatcamGUI/FlatCAMGUI.py:402
-msgid "Move to Origin\tShift+O"
-msgstr "Mover al origen\tShift+O"
-
-#: flatcamGUI/FlatCAMGUI.py:405
-msgid "Jump to Location\tJ"
-msgstr "Ir a la ubicación\tJ"
-
-#: flatcamGUI/FlatCAMGUI.py:407
-msgid "Locate in Object\tShift+J"
-msgstr "Localizar en Objeto\tShift+J"
-
-#: flatcamGUI/FlatCAMGUI.py:412
-msgid "Toggle Units\tQ"
-msgstr "Unidades de palanca\tQ"
-
-#: flatcamGUI/FlatCAMGUI.py:414
-msgid "&Select All\tCtrl+A"
-msgstr "Seleccionar todo\tCtrl+A"
-
-#: flatcamGUI/FlatCAMGUI.py:419
-msgid "&Preferences\tShift+P"
-msgstr "Preferencias\tShift+P"
-
-#: flatcamGUI/FlatCAMGUI.py:425 flatcamTools/ToolProperties.py:155
-msgid "Options"
-msgstr "Opciones"
-
-#: flatcamGUI/FlatCAMGUI.py:427
-msgid "&Rotate Selection\tShift+(R)"
-msgstr "Rotar selección\tShift+(R)"
-
-#: flatcamGUI/FlatCAMGUI.py:432
-msgid "&Skew on X axis\tShift+X"
-msgstr "Sesgo en el eje X\tShift+X"
-
-#: flatcamGUI/FlatCAMGUI.py:434
-msgid "S&kew on Y axis\tShift+Y"
-msgstr "Sesgo en el eje Y\tShift+Y"
-
-#: flatcamGUI/FlatCAMGUI.py:439
-msgid "Flip on &X axis\tX"
-msgstr "Voltear en el eje X\tX"
-
-#: flatcamGUI/FlatCAMGUI.py:441
-msgid "Flip on &Y axis\tY"
-msgstr "Voltear en el ejeY\tY"
-
-#: flatcamGUI/FlatCAMGUI.py:446
-msgid "View source\tAlt+S"
-msgstr "Ver fuente\tAlt+S"
-
-#: flatcamGUI/FlatCAMGUI.py:448
-msgid "Tools DataBase\tCtrl+D"
-msgstr "DB de Herramientas\tCtrl+D"
-
-#: flatcamGUI/FlatCAMGUI.py:455 flatcamGUI/FlatCAMGUI.py:2183
-msgid "View"
-msgstr "Ver"
-
-#: flatcamGUI/FlatCAMGUI.py:457
-msgid "Enable all plots\tAlt+1"
-msgstr "Habilitar todas las parcelas\tAlt+1"
-
-#: flatcamGUI/FlatCAMGUI.py:459
-msgid "Disable all plots\tAlt+2"
-msgstr "Deshabilitar todas las parcelas\tAlt+2"
-
-#: flatcamGUI/FlatCAMGUI.py:461
-msgid "Disable non-selected\tAlt+3"
-msgstr "Deshabilitar no seleccionado\tAlt+3"
-
-#: flatcamGUI/FlatCAMGUI.py:465
-msgid "&Zoom Fit\tV"
-msgstr "Ajuste de zoom\tV"
-
-#: flatcamGUI/FlatCAMGUI.py:467
-msgid "&Zoom In\t="
-msgstr "Acercarse\t="
-
-#: flatcamGUI/FlatCAMGUI.py:469
-msgid "&Zoom Out\t-"
-msgstr "Disminuir el zoom\t-"
-
-#: flatcamGUI/FlatCAMGUI.py:474
-msgid "Redraw All\tF5"
-msgstr "Redibujar todo\tF5"
-
-#: flatcamGUI/FlatCAMGUI.py:478
-msgid "Toggle Code Editor\tShift+E"
-msgstr "Alternar Editor de Código\tShift+E"
-
-#: flatcamGUI/FlatCAMGUI.py:481
-msgid "&Toggle FullScreen\tAlt+F10"
-msgstr "Alternar pantalla completa\tAlt+F10"
-
-#: flatcamGUI/FlatCAMGUI.py:483
-msgid "&Toggle Plot Area\tCtrl+F10"
-msgstr "Alternar área de la parcela\tCtrl+F10"
-
-#: flatcamGUI/FlatCAMGUI.py:485
-msgid "&Toggle Project/Sel/Tool\t`"
-msgstr "Palanca Proyecto / Sel / Tool\t`"
-
-#: flatcamGUI/FlatCAMGUI.py:489
-msgid "&Toggle Grid Snap\tG"
-msgstr "Activar cuadrícula\tG"
-
-#: flatcamGUI/FlatCAMGUI.py:491
-msgid "&Toggle Grid Lines\tAlt+G"
-msgstr "Alternar Líneas de Cuadrícula\tAlt+G"
-
-#: flatcamGUI/FlatCAMGUI.py:493
-msgid "&Toggle Axis\tShift+G"
-msgstr "Eje de palanca\tShift+G"
-
-#: flatcamGUI/FlatCAMGUI.py:495
-msgid "Toggle Workspace\tShift+W"
-msgstr "Alternar espacio de trabajo\tShift+W"
-
-#: flatcamGUI/FlatCAMGUI.py:500
-msgid "Objects"
-msgstr "Objetos"
-
-#: flatcamGUI/FlatCAMGUI.py:514
-msgid "&Command Line\tS"
-msgstr "Línea de comando\tS"
-
-#: flatcamGUI/FlatCAMGUI.py:519
-msgid "Help"
-msgstr "Ayuda"
-
-#: flatcamGUI/FlatCAMGUI.py:521
-msgid "Online Help\tF1"
-msgstr "Ayuda en Online\tF1"
-
-#: flatcamGUI/FlatCAMGUI.py:531
-msgid "Report a bug"
-msgstr "Reportar un error"
-
-#: flatcamGUI/FlatCAMGUI.py:534
-msgid "Excellon Specification"
-msgstr "Especificación de Excellon"
-
-#: flatcamGUI/FlatCAMGUI.py:536
-msgid "Gerber Specification"
-msgstr "Especificación de Gerber"
-
-#: flatcamGUI/FlatCAMGUI.py:541
-msgid "Shortcuts List\tF3"
-msgstr "Lista de accesos directos\tF3"
-
-#: flatcamGUI/FlatCAMGUI.py:543
-msgid "YouTube Channel\tF4"
-msgstr "Canal de Youtube\tF4"
-
-#: flatcamGUI/FlatCAMGUI.py:554
-msgid "Add Circle\tO"
-msgstr "Añadir círculo\tO"
-
-#: flatcamGUI/FlatCAMGUI.py:557
-msgid "Add Arc\tA"
-msgstr "Añadir arco\tA"
-
-#: flatcamGUI/FlatCAMGUI.py:560
-msgid "Add Rectangle\tR"
-msgstr "Añadir rectángulo\tR"
-
-#: flatcamGUI/FlatCAMGUI.py:563
-msgid "Add Polygon\tN"
-msgstr "Añadir polígono\tN"
-
-#: flatcamGUI/FlatCAMGUI.py:566
-msgid "Add Path\tP"
-msgstr "Añadir ruta\tP"
-
-#: flatcamGUI/FlatCAMGUI.py:569
-msgid "Add Text\tT"
-msgstr "Añadir texto\tT"
-
-#: flatcamGUI/FlatCAMGUI.py:572
-msgid "Polygon Union\tU"
-msgstr "Unión de polígonos\tU"
-
-#: flatcamGUI/FlatCAMGUI.py:574
-msgid "Polygon Intersection\tE"
-msgstr "Intersección de polígonos\tE"
-
-#: flatcamGUI/FlatCAMGUI.py:576
-msgid "Polygon Subtraction\tS"
-msgstr "Sustracción de polígonos\tS"
-
-#: flatcamGUI/FlatCAMGUI.py:580
-msgid "Cut Path\tX"
-msgstr "Camino de corte\tX"
-
-#: flatcamGUI/FlatCAMGUI.py:584
-msgid "Copy Geom\tC"
-msgstr "Copia Geo\tC"
-
-#: flatcamGUI/FlatCAMGUI.py:586
-msgid "Delete Shape\tDEL"
-msgstr "Eliminar forma\tDEL"
-
-#: flatcamGUI/FlatCAMGUI.py:590 flatcamGUI/FlatCAMGUI.py:677
-msgid "Move\tM"
-msgstr "Movimiento\tM"
-
-#: flatcamGUI/FlatCAMGUI.py:592
-msgid "Buffer Tool\tB"
-msgstr "Herramienta amortiguadora\tB"
-
-#: flatcamGUI/FlatCAMGUI.py:595
-msgid "Paint Tool\tI"
-msgstr "Herramienta de pintura\tI"
-
-#: flatcamGUI/FlatCAMGUI.py:598
-msgid "Transform Tool\tAlt+R"
-msgstr "Herramienta de transformación\tAlt+R"
-
-#: flatcamGUI/FlatCAMGUI.py:602
-msgid "Toggle Corner Snap\tK"
-msgstr "Alternar esquina esquina\tK"
-
-#: flatcamGUI/FlatCAMGUI.py:608
-msgid ">Excellon Editor<"
-msgstr ">Excellon Editor<"
-
-#: flatcamGUI/FlatCAMGUI.py:612
-msgid "Add Drill Array\tA"
-msgstr "Añadir matriz de perfor.\tA"
-
-#: flatcamGUI/FlatCAMGUI.py:614
-msgid "Add Drill\tD"
-msgstr "Añadir taladro\tD"
-
-#: flatcamGUI/FlatCAMGUI.py:618
-msgid "Add Slot Array\tQ"
-msgstr "Agregar matriz de ranuras\tQ"
-
-#: flatcamGUI/FlatCAMGUI.py:620
-msgid "Add Slot\tW"
-msgstr "Agregar ranura\tW"
-
-#: flatcamGUI/FlatCAMGUI.py:624
-msgid "Resize Drill(S)\tR"
-msgstr "Cambiar el tamaño de taladro (s)\tR"
-
-#: flatcamGUI/FlatCAMGUI.py:627 flatcamGUI/FlatCAMGUI.py:671
-msgid "Copy\tC"
-msgstr "Dupdo\tC"
-
-#: flatcamGUI/FlatCAMGUI.py:629 flatcamGUI/FlatCAMGUI.py:673
-msgid "Delete\tDEL"
-msgstr "Borrar\tDEL"
-
-#: flatcamGUI/FlatCAMGUI.py:634
-msgid "Move Drill(s)\tM"
-msgstr "Mover taladro(s)\tM"
-
-#: flatcamGUI/FlatCAMGUI.py:639
-msgid ">Gerber Editor<"
-msgstr ">Gerber Editor<"
-
-#: flatcamGUI/FlatCAMGUI.py:643
-msgid "Add Pad\tP"
-msgstr "Añadir Pad\tP"
-
-#: flatcamGUI/FlatCAMGUI.py:645
-msgid "Add Pad Array\tA"
-msgstr "Agregar una matriz de pad\tA"
-
-#: flatcamGUI/FlatCAMGUI.py:647
-msgid "Add Track\tT"
-msgstr "Añadir pista\tT"
-
-#: flatcamGUI/FlatCAMGUI.py:649
-msgid "Add Region\tN"
-msgstr "Añadir región\tN"
-
-#: flatcamGUI/FlatCAMGUI.py:653
-msgid "Poligonize\tAlt+N"
-msgstr "Poligonize\tAlt+N"
-
-#: flatcamGUI/FlatCAMGUI.py:655
-msgid "Add SemiDisc\tE"
-msgstr "Añadir medio disco\tE"
-
-#: flatcamGUI/FlatCAMGUI.py:657
-msgid "Add Disc\tD"
-msgstr "Añadir disco\tD"
-
-#: flatcamGUI/FlatCAMGUI.py:659
-msgid "Buffer\tB"
-msgstr "Buffer\tB"
-
-#: flatcamGUI/FlatCAMGUI.py:661
-msgid "Scale\tS"
-msgstr "Escalar\tS"
-
-#: flatcamGUI/FlatCAMGUI.py:663
-msgid "Mark Area\tAlt+A"
-msgstr "Marcar area\tAlt+A"
-
-#: flatcamGUI/FlatCAMGUI.py:665
-msgid "Eraser\tCtrl+E"
-msgstr "Borrador\tCtrl+E"
-
-#: flatcamGUI/FlatCAMGUI.py:667
-msgid "Transform\tAlt+R"
-msgstr "Transformar\tAlt+R"
-
-#: flatcamGUI/FlatCAMGUI.py:694
-msgid "Enable Plot"
-msgstr "Habilitar Parcela"
-
-#: flatcamGUI/FlatCAMGUI.py:696
-msgid "Disable Plot"
-msgstr "Desactivar parcela"
-
-#: flatcamGUI/FlatCAMGUI.py:700
-msgid "Set Color"
-msgstr "Establecer color"
-
-#: flatcamGUI/FlatCAMGUI.py:742
-msgid "Generate CNC"
-msgstr "Generar CNC"
-
-#: flatcamGUI/FlatCAMGUI.py:744
-msgid "View Source"
-msgstr "Ver fuente"
-
-#: flatcamGUI/FlatCAMGUI.py:749 flatcamGUI/FlatCAMGUI.py:863
-#: flatcamGUI/FlatCAMGUI.py:1072 flatcamGUI/FlatCAMGUI.py:2138
-#: flatcamGUI/FlatCAMGUI.py:2282 flatcamGUI/FlatCAMGUI.py:2572
-#: flatcamGUI/FlatCAMGUI.py:2775 flatcamGUI/ObjectUI.py:1617
-#: flatcamObjects/FlatCAMGeometry.py:502 flatcamTools/ToolPanelize.py:540
-#: flatcamTools/ToolPanelize.py:567 flatcamTools/ToolPanelize.py:660
-#: flatcamTools/ToolPanelize.py:689 flatcamTools/ToolPanelize.py:751
-msgid "Copy"
-msgstr "Dupdo"
-
-#: flatcamGUI/FlatCAMGUI.py:757 flatcamGUI/FlatCAMGUI.py:2295
-#: flatcamTools/ToolProperties.py:31
-msgid "Properties"
-msgstr "Propiedades"
-
-#: flatcamGUI/FlatCAMGUI.py:786
-msgid "File Toolbar"
-msgstr "Barra de herramientas de archivo"
-
-#: flatcamGUI/FlatCAMGUI.py:790
-msgid "Edit Toolbar"
-msgstr "Barra de herramientas de edición"
-
-#: flatcamGUI/FlatCAMGUI.py:794
-msgid "View Toolbar"
-msgstr "Barra de herramientas de ver"
-
-#: flatcamGUI/FlatCAMGUI.py:798
-msgid "Shell Toolbar"
-msgstr "Barra de herramientas de Shell"
-
-#: flatcamGUI/FlatCAMGUI.py:802
-msgid "Tools Toolbar"
-msgstr "Barra de herramientas de Herramientas"
-
-#: flatcamGUI/FlatCAMGUI.py:806
-msgid "Excellon Editor Toolbar"
-msgstr "Barra de herramientas del editor de Excel"
-
-#: flatcamGUI/FlatCAMGUI.py:812
-msgid "Geometry Editor Toolbar"
-msgstr "Barra de herramientas del editor de geometría"
-
-#: flatcamGUI/FlatCAMGUI.py:816
-msgid "Gerber Editor Toolbar"
-msgstr "Barra de herramientas del editor Gerber"
-
-#: flatcamGUI/FlatCAMGUI.py:820
-msgid "Grid Toolbar"
-msgstr "Barra de herramientas de cuadrícula"
-
-#: flatcamGUI/FlatCAMGUI.py:841 flatcamGUI/FlatCAMGUI.py:2549
-msgid "Open project"
-msgstr "Proyecto abierto"
-
-#: flatcamGUI/FlatCAMGUI.py:843 flatcamGUI/FlatCAMGUI.py:2551
-msgid "Save project"
-msgstr "Guardar proyecto"
-
-#: flatcamGUI/FlatCAMGUI.py:849 flatcamGUI/FlatCAMGUI.py:2557
-msgid "New Blank Geometry"
-msgstr "Nueva geometría en blanco"
-
-#: flatcamGUI/FlatCAMGUI.py:851 flatcamGUI/FlatCAMGUI.py:2559
-msgid "New Blank Gerber"
-msgstr "Nuevo Gerber en blanco"
-
-#: flatcamGUI/FlatCAMGUI.py:853 flatcamGUI/FlatCAMGUI.py:2561
-msgid "New Blank Excellon"
-msgstr "Nueva Excellon en blanco"
-
-#: flatcamGUI/FlatCAMGUI.py:858 flatcamGUI/FlatCAMGUI.py:2567
-msgid "Save Object and close the Editor"
-msgstr "Guardar Objeto y cerrar el Editor"
-
-#: flatcamGUI/FlatCAMGUI.py:865 flatcamGUI/FlatCAMGUI.py:2574
-msgid "&Delete"
-msgstr "Borrar"
-
-#: flatcamGUI/FlatCAMGUI.py:868 flatcamGUI/FlatCAMGUI.py:1729
-#: flatcamGUI/FlatCAMGUI.py:1935 flatcamGUI/FlatCAMGUI.py:2577
-#: flatcamTools/ToolDistance.py:35 flatcamTools/ToolDistance.py:195
-msgid "Distance Tool"
-msgstr "Herramienta de Dist"
-
-#: flatcamGUI/FlatCAMGUI.py:870 flatcamGUI/FlatCAMGUI.py:2579
-msgid "Distance Min Tool"
-msgstr "Herramienta Distancia Mínima"
-
-#: flatcamGUI/FlatCAMGUI.py:872 flatcamGUI/FlatCAMGUI.py:1722
-#: flatcamGUI/FlatCAMGUI.py:2581
-msgid "Set Origin"
-msgstr "Establecer origen"
-
-#: flatcamGUI/FlatCAMGUI.py:874
-msgid "Move to Origin"
-msgstr "Mover al origen"
-
-#: flatcamGUI/FlatCAMGUI.py:877 flatcamGUI/FlatCAMGUI.py:2583
-msgid "Jump to Location"
-msgstr "Saltar a la ubicación"
-
-#: flatcamGUI/FlatCAMGUI.py:879 flatcamGUI/FlatCAMGUI.py:1734
-#: flatcamGUI/FlatCAMGUI.py:2585
-msgid "Locate in Object"
-msgstr "Localizar en objeto"
-
-#: flatcamGUI/FlatCAMGUI.py:885 flatcamGUI/FlatCAMGUI.py:2591
-msgid "&Replot"
-msgstr "Replantear"
-
-#: flatcamGUI/FlatCAMGUI.py:887 flatcamGUI/FlatCAMGUI.py:2593
-msgid "&Clear plot"
-msgstr "Gráfico clara"
-
-#: flatcamGUI/FlatCAMGUI.py:889 flatcamGUI/FlatCAMGUI.py:1725
-#: flatcamGUI/FlatCAMGUI.py:2595
-msgid "Zoom In"
-msgstr "Acercarse"
-
-#: flatcamGUI/FlatCAMGUI.py:891 flatcamGUI/FlatCAMGUI.py:1725
-#: flatcamGUI/FlatCAMGUI.py:2597
-msgid "Zoom Out"
-msgstr "Disminuir el zoom"
-
-#: flatcamGUI/FlatCAMGUI.py:893 flatcamGUI/FlatCAMGUI.py:1724
-#: flatcamGUI/FlatCAMGUI.py:2185 flatcamGUI/FlatCAMGUI.py:2599
-msgid "Zoom Fit"
-msgstr "Ajuste de zoom"
-
-#: flatcamGUI/FlatCAMGUI.py:901 flatcamGUI/FlatCAMGUI.py:2605
-msgid "&Command Line"
-msgstr "Línea de comando"
-
-#: flatcamGUI/FlatCAMGUI.py:913 flatcamGUI/FlatCAMGUI.py:2617
-msgid "2Sided Tool"
-msgstr "Herramienta de 2 Caras"
-
-#: flatcamGUI/FlatCAMGUI.py:915 flatcamGUI/FlatCAMGUI.py:1740
-#: flatcamGUI/FlatCAMGUI.py:2619
-msgid "Align Objects Tool"
-msgstr "Herram. de Alinear Objetos"
-
-#: flatcamGUI/FlatCAMGUI.py:917 flatcamGUI/FlatCAMGUI.py:1741
-#: flatcamGUI/FlatCAMGUI.py:2621 flatcamTools/ToolExtractDrills.py:393
-msgid "Extract Drills Tool"
-msgstr "Herram. de Extracción de Taladros"
-
-#: flatcamGUI/FlatCAMGUI.py:920 flatcamGUI/ObjectUI.py:596
-#: flatcamTools/ToolCutOut.py:440
-msgid "Cutout Tool"
-msgstr "Herramienta de Corte"
-
-#: flatcamGUI/FlatCAMGUI.py:922 flatcamGUI/FlatCAMGUI.py:2626
-#: flatcamGUI/ObjectUI.py:574 flatcamGUI/ObjectUI.py:2157
-#: flatcamTools/ToolNCC.py:974
-msgid "NCC Tool"
-msgstr "Herramienta NCC"
-
-#: flatcamGUI/FlatCAMGUI.py:928 flatcamGUI/FlatCAMGUI.py:2632
-msgid "Panel Tool"
-msgstr "Herramienta de Panel"
-
-#: flatcamGUI/FlatCAMGUI.py:930 flatcamGUI/FlatCAMGUI.py:2634
-#: flatcamTools/ToolFilm.py:586
-msgid "Film Tool"
-msgstr "Herramienta de Película"
-
-#: flatcamGUI/FlatCAMGUI.py:932 flatcamGUI/FlatCAMGUI.py:2636
-#: flatcamTools/ToolSolderPaste.py:553
-msgid "SolderPaste Tool"
-msgstr "Herramienta de Pasta"
-
-#: flatcamGUI/FlatCAMGUI.py:934 flatcamGUI/FlatCAMGUI.py:2638
-#: flatcamTools/ToolSub.py:35
-msgid "Subtract Tool"
-msgstr "Herramienta de Sustracción"
-
-#: flatcamGUI/FlatCAMGUI.py:936 flatcamGUI/FlatCAMGUI.py:2640
-#: flatcamTools/ToolRulesCheck.py:616
-msgid "Rules Tool"
-msgstr "Herramienta de Reglas"
-
-#: flatcamGUI/FlatCAMGUI.py:938 flatcamGUI/FlatCAMGUI.py:1743
-#: flatcamGUI/FlatCAMGUI.py:2642 flatcamTools/ToolOptimal.py:33
-#: flatcamTools/ToolOptimal.py:307
-msgid "Optimal Tool"
-msgstr "Herramienta de Óptima"
-
-#: flatcamGUI/FlatCAMGUI.py:943 flatcamGUI/FlatCAMGUI.py:1740
-#: flatcamGUI/FlatCAMGUI.py:2647
-msgid "Calculators Tool"
-msgstr "Herramienta de Calculadoras"
-
-#: flatcamGUI/FlatCAMGUI.py:947 flatcamGUI/FlatCAMGUI.py:1744
-#: flatcamGUI/FlatCAMGUI.py:2651 flatcamTools/ToolQRCode.py:43
-#: flatcamTools/ToolQRCode.py:382
-msgid "QRCode Tool"
-msgstr "Herramienta QRCode"
-
-#: flatcamGUI/FlatCAMGUI.py:949 flatcamGUI/FlatCAMGUI.py:2653
-#: flatcamTools/ToolCopperThieving.py:39 flatcamTools/ToolCopperThieving.py:568
-msgid "Copper Thieving Tool"
-msgstr "Herramienta Thieving Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:952 flatcamGUI/FlatCAMGUI.py:1741
-#: flatcamGUI/FlatCAMGUI.py:2656 flatcamTools/ToolFiducials.py:33
-#: flatcamTools/ToolFiducials.py:395
-msgid "Fiducials Tool"
-msgstr "Herramienta de Fiduciales"
-
-#: flatcamGUI/FlatCAMGUI.py:954 flatcamGUI/FlatCAMGUI.py:2658
-#: flatcamTools/ToolCalibration.py:37 flatcamTools/ToolCalibration.py:759
-msgid "Calibration Tool"
-msgstr "Herramienta de Calibración"
-
-#: flatcamGUI/FlatCAMGUI.py:956 flatcamGUI/FlatCAMGUI.py:1741
-#: flatcamGUI/FlatCAMGUI.py:2660
-msgid "Punch Gerber Tool"
-msgstr "Herram. de Perforadora Gerber"
-
-#: flatcamGUI/FlatCAMGUI.py:958 flatcamGUI/FlatCAMGUI.py:2662
-#: flatcamTools/ToolInvertGerber.py:31
-msgid "Invert Gerber Tool"
-msgstr "Herram. Invertir Gerber"
-
-#: flatcamGUI/FlatCAMGUI.py:964 flatcamGUI/FlatCAMGUI.py:990
-#: flatcamGUI/FlatCAMGUI.py:1042 flatcamGUI/FlatCAMGUI.py:2668
-#: flatcamGUI/FlatCAMGUI.py:2746
-msgid "Select"
-msgstr "Seleccionar"
-
-#: flatcamGUI/FlatCAMGUI.py:966 flatcamGUI/FlatCAMGUI.py:2670
-msgid "Add Drill Hole"
-msgstr "Añadir taladro"
-
-#: flatcamGUI/FlatCAMGUI.py:968 flatcamGUI/FlatCAMGUI.py:2672
-msgid "Add Drill Hole Array"
-msgstr "Añadir matriz de taladro"
-
-#: flatcamGUI/FlatCAMGUI.py:970 flatcamGUI/FlatCAMGUI.py:2020
-#: flatcamGUI/FlatCAMGUI.py:2273 flatcamGUI/FlatCAMGUI.py:2676
-msgid "Add Slot"
-msgstr "Agregar ranura"
-
-#: flatcamGUI/FlatCAMGUI.py:972 flatcamGUI/FlatCAMGUI.py:2019
-#: flatcamGUI/FlatCAMGUI.py:2275 flatcamGUI/FlatCAMGUI.py:2678
-msgid "Add Slot Array"
-msgstr "Agregar matriz de ranuras"
-
-#: flatcamGUI/FlatCAMGUI.py:974 flatcamGUI/FlatCAMGUI.py:2278
-#: flatcamGUI/FlatCAMGUI.py:2674
-msgid "Resize Drill"
-msgstr "Redimensionar taladro"
-
-#: flatcamGUI/FlatCAMGUI.py:978 flatcamGUI/FlatCAMGUI.py:2682
-msgid "Copy Drill"
-msgstr "Copia de taladro"
-
-#: flatcamGUI/FlatCAMGUI.py:980 flatcamGUI/FlatCAMGUI.py:2684
-msgid "Delete Drill"
-msgstr "Eliminar taladro"
-
-#: flatcamGUI/FlatCAMGUI.py:984 flatcamGUI/FlatCAMGUI.py:2688
-msgid "Move Drill"
-msgstr "Mover taladro"
-
-#: flatcamGUI/FlatCAMGUI.py:992 flatcamGUI/FlatCAMGUI.py:2696
-msgid "Add Circle"
-msgstr "Añadir Círculo"
-
-#: flatcamGUI/FlatCAMGUI.py:994 flatcamGUI/FlatCAMGUI.py:2698
-msgid "Add Arc"
-msgstr "Añadir Arco"
-
-#: flatcamGUI/FlatCAMGUI.py:996 flatcamGUI/FlatCAMGUI.py:2700
-msgid "Add Rectangle"
-msgstr "Añadir Rectángulo"
-
-#: flatcamGUI/FlatCAMGUI.py:1000 flatcamGUI/FlatCAMGUI.py:2704
-msgid "Add Path"
-msgstr "Añadir Ruta"
-
-#: flatcamGUI/FlatCAMGUI.py:1002 flatcamGUI/FlatCAMGUI.py:2706
-msgid "Add Polygon"
-msgstr "Añadir Polígono"
-
-#: flatcamGUI/FlatCAMGUI.py:1005 flatcamGUI/FlatCAMGUI.py:2709
-msgid "Add Text"
-msgstr "Añadir Texto"
-
-#: flatcamGUI/FlatCAMGUI.py:1007 flatcamGUI/FlatCAMGUI.py:2711
-msgid "Add Buffer"
-msgstr "Añadir Buffer"
-
-#: flatcamGUI/FlatCAMGUI.py:1009 flatcamGUI/FlatCAMGUI.py:2713
-msgid "Paint Shape"
-msgstr "Forma de pintura"
-
-#: flatcamGUI/FlatCAMGUI.py:1011 flatcamGUI/FlatCAMGUI.py:1068
-#: flatcamGUI/FlatCAMGUI.py:2214 flatcamGUI/FlatCAMGUI.py:2259
-#: flatcamGUI/FlatCAMGUI.py:2715 flatcamGUI/FlatCAMGUI.py:2771
-msgid "Eraser"
-msgstr "Borrador"
-
-#: flatcamGUI/FlatCAMGUI.py:1015 flatcamGUI/FlatCAMGUI.py:2719
-msgid "Polygon Union"
-msgstr "Unión de polígonos"
-
-#: flatcamGUI/FlatCAMGUI.py:1017 flatcamGUI/FlatCAMGUI.py:2721
-msgid "Polygon Explode"
-msgstr "Polígono explotar"
-
-#: flatcamGUI/FlatCAMGUI.py:1020 flatcamGUI/FlatCAMGUI.py:2724
-msgid "Polygon Intersection"
-msgstr "Intersección de polígonos"
-
-#: flatcamGUI/FlatCAMGUI.py:1022 flatcamGUI/FlatCAMGUI.py:2726
-msgid "Polygon Subtraction"
-msgstr "Sustracción de polígonos"
-
-#: flatcamGUI/FlatCAMGUI.py:1026 flatcamGUI/FlatCAMGUI.py:2730
-msgid "Cut Path"
-msgstr "Camino de Corte"
-
-#: flatcamGUI/FlatCAMGUI.py:1028
-msgid "Copy Shape(s)"
-msgstr "Copiar Forma (s)"
-
-#: flatcamGUI/FlatCAMGUI.py:1031
-msgid "Delete Shape '-'"
-msgstr "Eliminar Forma '-'"
-
-#: flatcamGUI/FlatCAMGUI.py:1033 flatcamGUI/FlatCAMGUI.py:1076
-#: flatcamGUI/FlatCAMGUI.py:2226 flatcamGUI/FlatCAMGUI.py:2263
-#: flatcamGUI/FlatCAMGUI.py:2736 flatcamGUI/FlatCAMGUI.py:2779
-#: flatcamGUI/ObjectUI.py:109
-msgid "Transformations"
-msgstr "Transformaciones"
-
-#: flatcamGUI/FlatCAMGUI.py:1036
-msgid "Move Objects "
-msgstr "Mover objetos "
-
-#: flatcamGUI/FlatCAMGUI.py:1044 flatcamGUI/FlatCAMGUI.py:2139
-#: flatcamGUI/FlatCAMGUI.py:2748
-msgid "Add Pad"
-msgstr "Añadir Pad"
-
-#: flatcamGUI/FlatCAMGUI.py:1048 flatcamGUI/FlatCAMGUI.py:2140
-#: flatcamGUI/FlatCAMGUI.py:2752
-msgid "Add Track"
-msgstr "Añadir Pista"
-
-#: flatcamGUI/FlatCAMGUI.py:1050 flatcamGUI/FlatCAMGUI.py:2139
-#: flatcamGUI/FlatCAMGUI.py:2754
-msgid "Add Region"
-msgstr "Añadir Región"
-
-#: flatcamGUI/FlatCAMGUI.py:1052 flatcamGUI/FlatCAMGUI.py:2245
-#: flatcamGUI/FlatCAMGUI.py:2756
-msgid "Poligonize"
-msgstr "Poligonizar"
-
-#: flatcamGUI/FlatCAMGUI.py:1055 flatcamGUI/FlatCAMGUI.py:2247
-#: flatcamGUI/FlatCAMGUI.py:2759
-msgid "SemiDisc"
-msgstr "Medio disco"
-
-#: flatcamGUI/FlatCAMGUI.py:1057 flatcamGUI/FlatCAMGUI.py:2249
-#: flatcamGUI/FlatCAMGUI.py:2761
-msgid "Disc"
-msgstr "Disco"
-
-#: flatcamGUI/FlatCAMGUI.py:1065 flatcamGUI/FlatCAMGUI.py:2257
-#: flatcamGUI/FlatCAMGUI.py:2769
-msgid "Mark Area"
-msgstr "Marcar area"
-
-#: flatcamGUI/FlatCAMGUI.py:1079 flatcamGUI/FlatCAMGUI.py:2139
-#: flatcamGUI/FlatCAMGUI.py:2230 flatcamGUI/FlatCAMGUI.py:2293
-#: flatcamGUI/FlatCAMGUI.py:2782 flatcamTools/ToolMove.py:27
-msgid "Move"
-msgstr "Movimiento"
-
-#: flatcamGUI/FlatCAMGUI.py:1087 flatcamGUI/FlatCAMGUI.py:2791
-msgid "Snap to grid"
-msgstr "Encajar a la cuadricula"
-
-#: flatcamGUI/FlatCAMGUI.py:1090 flatcamGUI/FlatCAMGUI.py:2794
-msgid "Grid X snapping distance"
-msgstr "Distancia de ajuste de la rejilla X"
-
-#: flatcamGUI/FlatCAMGUI.py:1095 flatcamGUI/FlatCAMGUI.py:2799
-msgid "Grid Y snapping distance"
-msgstr "Distancia de ajuste de cuadrícula Y"
-
-#: flatcamGUI/FlatCAMGUI.py:1101 flatcamGUI/FlatCAMGUI.py:2805
-msgid ""
-"When active, value on Grid_X\n"
-"is copied to the Grid_Y value."
-msgstr ""
-"Cuando está activo, el valor en Grid_X\n"
-"Se copia al valor Grid_Y."
-
-#: flatcamGUI/FlatCAMGUI.py:1108 flatcamGUI/FlatCAMGUI.py:2812
-msgid "Snap to corner"
-msgstr "Ajustar a la esquina"
-
-#: flatcamGUI/FlatCAMGUI.py:1112 flatcamGUI/FlatCAMGUI.py:2816
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:78
-msgid "Max. magnet distance"
-msgstr "Distancia máxima del imán"
-
-#: flatcamGUI/FlatCAMGUI.py:1149
-msgid "Selected"
-msgstr "Seleccionado"
-
-#: flatcamGUI/FlatCAMGUI.py:1177 flatcamGUI/FlatCAMGUI.py:1185
-msgid "Plot Area"
-msgstr "Área de la parcela"
-
-#: flatcamGUI/FlatCAMGUI.py:1212
-msgid "General"
-msgstr "General"
-
-#: flatcamGUI/FlatCAMGUI.py:1227 flatcamTools/ToolCopperThieving.py:74
-#: flatcamTools/ToolDblSided.py:64 flatcamTools/ToolExtractDrills.py:61
-#: flatcamTools/ToolInvertGerber.py:72 flatcamTools/ToolOptimal.py:71
-#: flatcamTools/ToolPunchGerber.py:64
-msgid "GERBER"
-msgstr "GERBER"
-
-#: flatcamGUI/FlatCAMGUI.py:1237 flatcamTools/ToolDblSided.py:92
-msgid "EXCELLON"
-msgstr "EXCELLON"
-
-#: flatcamGUI/FlatCAMGUI.py:1247 flatcamTools/ToolDblSided.py:120
-msgid "GEOMETRY"
-msgstr "GEOMETRÍA"
-
-#: flatcamGUI/FlatCAMGUI.py:1257
-msgid "CNC-JOB"
-msgstr "CNC-JOB"
-
-#: flatcamGUI/FlatCAMGUI.py:1266 flatcamGUI/ObjectUI.py:563
-#: flatcamGUI/ObjectUI.py:2132
-msgid "TOOLS"
-msgstr "HERRAMIENTAS"
-
-#: flatcamGUI/FlatCAMGUI.py:1275
-msgid "TOOLS 2"
-msgstr "HERRAMIENTAS 2"
-
-#: flatcamGUI/FlatCAMGUI.py:1285
-msgid "UTILITIES"
-msgstr "UTILIDADES"
-
-#: flatcamGUI/FlatCAMGUI.py:1302
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:192
-msgid "Restore Defaults"
-msgstr "Restaurar los valores predeterminados"
-
-#: flatcamGUI/FlatCAMGUI.py:1305
-msgid ""
-"Restore the entire set of default values\n"
-"to the initial values loaded after first launch."
-msgstr ""
-"Restaurar todo el conjunto de valores predeterminados\n"
-"a los valores iniciales cargados después del primer lanzamiento."
-
-#: flatcamGUI/FlatCAMGUI.py:1310
-msgid "Open Pref Folder"
-msgstr "Abrir Carpeta de Pref"
-
-#: flatcamGUI/FlatCAMGUI.py:1313
-msgid "Open the folder where FlatCAM save the preferences files."
-msgstr "Abra la carpeta donde FlatCAM guarda los archivos de preferencias."
-
-#: flatcamGUI/FlatCAMGUI.py:1317 flatcamGUI/FlatCAMGUI.py:2517
-msgid "Clear GUI Settings"
-msgstr "Borrar la configuración de la GUI"
-
-#: flatcamGUI/FlatCAMGUI.py:1321
-msgid ""
-"Clear the GUI settings for FlatCAM,\n"
-"such as: layout, gui state, style, hdpi support etc."
-msgstr ""
-"Borrar la configuración de la GUI para FlatCAM,\n"
-"tales como: diseño, estado gui, estilo, soporte hdpi etc."
-
-#: flatcamGUI/FlatCAMGUI.py:1332
-msgid "Apply"
-msgstr "Aplicar"
-
-#: flatcamGUI/FlatCAMGUI.py:1335
-msgid "Apply the current preferences without saving to a file."
-msgstr "Aplique las preferencias actuales sin guardar en un archivo."
-
-#: flatcamGUI/FlatCAMGUI.py:1342
-msgid ""
-"Save the current settings in the 'current_defaults' file\n"
-"which is the file storing the working default preferences."
-msgstr ""
-"Guarde la configuración actual en el archivo 'current_defaults'\n"
-"que es el archivo que almacena las preferencias predeterminadas de trabajo."
-
-#: flatcamGUI/FlatCAMGUI.py:1350
-msgid "Will not save the changes and will close the preferences window."
-msgstr "No guardará los cambios y cerrará la ventana de preferencias."
-
-#: flatcamGUI/FlatCAMGUI.py:1719
-msgid "SHOW SHORTCUT LIST"
-msgstr "MOSTRAR LISTA DE ACCESO CORTO"
-
-#: flatcamGUI/FlatCAMGUI.py:1719
-msgid "Switch to Project Tab"
-msgstr "Cambiar a la Pestaña Proyecto"
-
-#: flatcamGUI/FlatCAMGUI.py:1719
-msgid "Switch to Selected Tab"
-msgstr "Cambiar a la Pestaña Seleccionada"
-
-#: flatcamGUI/FlatCAMGUI.py:1720
-msgid "Switch to Tool Tab"
-msgstr "Cambiar a la Pestaña de Herramientas"
-
-#: flatcamGUI/FlatCAMGUI.py:1721
-msgid "New Gerber"
-msgstr "Nuevo Gerber"
-
-#: flatcamGUI/FlatCAMGUI.py:1721
-msgid "Edit Object (if selected)"
-msgstr "Editar objeto (si está seleccionado)"
-
-#: flatcamGUI/FlatCAMGUI.py:1721
-msgid "Jump to Coordinates"
-msgstr "Saltar a coordenadas"
-
-#: flatcamGUI/FlatCAMGUI.py:1722
-msgid "New Excellon"
-msgstr "Nueva Excellon"
-
-#: flatcamGUI/FlatCAMGUI.py:1722
-msgid "Move Obj"
-msgstr "Mover objetos"
-
-#: flatcamGUI/FlatCAMGUI.py:1722
-msgid "New Geometry"
-msgstr "Nueva geometría"
-
-#: flatcamGUI/FlatCAMGUI.py:1722
-msgid "Change Units"
-msgstr "Cambiar unidades"
-
-#: flatcamGUI/FlatCAMGUI.py:1723
-msgid "Open Properties Tool"
-msgstr "Abrir herramienta de propiedades"
-
-#: flatcamGUI/FlatCAMGUI.py:1723
-msgid "Rotate by 90 degree CW"
-msgstr "Rotar 90 grados CW"
-
-#: flatcamGUI/FlatCAMGUI.py:1723
-msgid "Shell Toggle"
-msgstr "Palanca de 'Shell'"
-
-#: flatcamGUI/FlatCAMGUI.py:1724
-msgid ""
-"Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)"
-msgstr ""
-"Agregue una herramienta (cuando esté en la pestaña Geometría seleccionada o "
-"en Herramientas NCC o Herramientas de pintura)"
-
-#: flatcamGUI/FlatCAMGUI.py:1725
-msgid "Flip on X_axis"
-msgstr "Voltear sobre el eje X"
-
-#: flatcamGUI/FlatCAMGUI.py:1725
-msgid "Flip on Y_axis"
-msgstr "Voltear sobre el eje Y"
-
-#: flatcamGUI/FlatCAMGUI.py:1728
-msgid "Copy Obj"
-msgstr "Copiar objetos"
-
-#: flatcamGUI/FlatCAMGUI.py:1728
-msgid "Open Tools Database"
-msgstr "Abrir la DB de herramientas"
-
-#: flatcamGUI/FlatCAMGUI.py:1729
-msgid "Open Excellon File"
-msgstr "Abierto Excellon"
-
-#: flatcamGUI/FlatCAMGUI.py:1729
-msgid "Open Gerber File"
-msgstr "Abrir Gerber"
-
-#: flatcamGUI/FlatCAMGUI.py:1729
-msgid "New Project"
-msgstr "Nuevo Proyecto"
-
-#: flatcamGUI/FlatCAMGUI.py:1730 flatcamTools/ToolPDF.py:42
-msgid "PDF Import Tool"
-msgstr "Herramienta de Importación de PDF"
-
-#: flatcamGUI/FlatCAMGUI.py:1730
-msgid "Save Project"
-msgstr "Guardar proyecto"
-
-#: flatcamGUI/FlatCAMGUI.py:1730
-msgid "Toggle Plot Area"
-msgstr "Alternar área de la parcela"
-
-#: flatcamGUI/FlatCAMGUI.py:1733
-msgid "Copy Obj_Name"
-msgstr "Copiar Nombre Obj"
-
-#: flatcamGUI/FlatCAMGUI.py:1734
-msgid "Toggle Code Editor"
-msgstr "Alternar editor de código"
-
-#: flatcamGUI/FlatCAMGUI.py:1734
-msgid "Toggle the axis"
-msgstr "Alternar el eje"
-
-#: flatcamGUI/FlatCAMGUI.py:1734 flatcamGUI/FlatCAMGUI.py:1933
-#: flatcamGUI/FlatCAMGUI.py:2020 flatcamGUI/FlatCAMGUI.py:2142
-msgid "Distance Minimum Tool"
-msgstr "Herramienta de Distancia Mínima"
-
-#: flatcamGUI/FlatCAMGUI.py:1735
-msgid "Open Preferences Window"
-msgstr "Abrir ventana de Preferencias"
-
-#: flatcamGUI/FlatCAMGUI.py:1736
-msgid "Rotate by 90 degree CCW"
-msgstr "Rotar en 90 grados CCW"
-
-#: flatcamGUI/FlatCAMGUI.py:1736
-msgid "Run a Script"
-msgstr "Ejecutar script TCL"
-
-#: flatcamGUI/FlatCAMGUI.py:1736
-msgid "Toggle the workspace"
-msgstr "Alternar espacio de trabajo"
-
-#: flatcamGUI/FlatCAMGUI.py:1736
-msgid "Skew on X axis"
-msgstr "Sesgar en el eje X"
-
-#: flatcamGUI/FlatCAMGUI.py:1737
-msgid "Skew on Y axis"
-msgstr "Sesgar en el eje Y"
-
-#: flatcamGUI/FlatCAMGUI.py:1740
-msgid "2-Sided PCB Tool"
-msgstr "Herra. de 2 lados"
-
-#: flatcamGUI/FlatCAMGUI.py:1740
-msgid "Transformations Tool"
-msgstr "Herramienta de Transformaciones"
-
-#: flatcamGUI/FlatCAMGUI.py:1742
-msgid "Solder Paste Dispensing Tool"
-msgstr "Herramienta de Dispensación de Pasta"
-
-#: flatcamGUI/FlatCAMGUI.py:1743
-msgid "Film PCB Tool"
-msgstr "Herramienta de Película"
-
-#: flatcamGUI/FlatCAMGUI.py:1743
-msgid "Non-Copper Clearing Tool"
-msgstr "Herramienta de Limpieza Sin Cobre"
-
-#: flatcamGUI/FlatCAMGUI.py:1744
-msgid "Paint Area Tool"
-msgstr "Herramienta de Area de Pintura"
-
-#: flatcamGUI/FlatCAMGUI.py:1744
-msgid "Rules Check Tool"
-msgstr "Herramienta de Verificación de Reglas"
-
-#: flatcamGUI/FlatCAMGUI.py:1745
-msgid "View File Source"
-msgstr "Ver fuente del archivo"
-
-#: flatcamGUI/FlatCAMGUI.py:1746
-msgid "Cutout PCB Tool"
-msgstr "Herra. de Corte"
-
-#: flatcamGUI/FlatCAMGUI.py:1746
-msgid "Enable all Plots"
-msgstr "Habilitar todas las parcelas"
-
-#: flatcamGUI/FlatCAMGUI.py:1746
-msgid "Disable all Plots"
-msgstr "Deshabilitar todas las parcelas"
-
-#: flatcamGUI/FlatCAMGUI.py:1746
-msgid "Disable Non-selected Plots"
-msgstr "Deshabilitar no seleccionado"
-
-#: flatcamGUI/FlatCAMGUI.py:1747
-msgid "Toggle Full Screen"
-msgstr "Alternar pantalla completa"
-
-#: flatcamGUI/FlatCAMGUI.py:1750
-msgid "Abort current task (gracefully)"
-msgstr "Abortar la tarea actual (con gracia)"
-
-#: flatcamGUI/FlatCAMGUI.py:1753
-msgid "Save Project As"
-msgstr "Guardar proyecto como"
-
-#: flatcamGUI/FlatCAMGUI.py:1754
-msgid ""
-"Paste Special. Will convert a Windows path style to the one required in Tcl "
-"Shell"
-msgstr ""
-"Pegado especial. Convertirá un estilo de ruta de Windows al requerido en Tcl "
-"Shell"
-
-#: flatcamGUI/FlatCAMGUI.py:1757
-msgid "Open Online Manual"
-msgstr "Abrir el manual en línea"
-
-#: flatcamGUI/FlatCAMGUI.py:1758
-msgid "Open Online Tutorials"
-msgstr "Abrir tutoriales en online"
-
-#: flatcamGUI/FlatCAMGUI.py:1758
-msgid "Refresh Plots"
-msgstr "Actualizar parcelas"
-
-#: flatcamGUI/FlatCAMGUI.py:1758 flatcamTools/ToolSolderPaste.py:509
-msgid "Delete Object"
-msgstr "Eliminar objeto"
-
-#: flatcamGUI/FlatCAMGUI.py:1758
-msgid "Alternate: Delete Tool"
-msgstr "Alt.: Eliminar herramienta"
-
-#: flatcamGUI/FlatCAMGUI.py:1759
-msgid "(left to Key_1)Toggle Notebook Area (Left Side)"
-msgstr "(izquierda a Key_1) Alternar Área del Cuaderno (lado izquierdo)"
-
-#: flatcamGUI/FlatCAMGUI.py:1759
-msgid "En(Dis)able Obj Plot"
-msgstr "(Des)habilitar trazado Obj"
-
-#: flatcamGUI/FlatCAMGUI.py:1760
-msgid "Deselects all objects"
-msgstr "Desel. todos los objetos"
-
-#: flatcamGUI/FlatCAMGUI.py:1774
-msgid "Editor Shortcut list"
-msgstr "Lista de accesos directos del editor"
-
-#: flatcamGUI/FlatCAMGUI.py:1928
-msgid "GEOMETRY EDITOR"
-msgstr "EDITOR DE GEOMETRÍA"
-
-#: flatcamGUI/FlatCAMGUI.py:1928
-msgid "Draw an Arc"
-msgstr "Dibujar un arco"
-
-#: flatcamGUI/FlatCAMGUI.py:1928
-msgid "Copy Geo Item"
-msgstr "Copia Geo"
-
-#: flatcamGUI/FlatCAMGUI.py:1929
-msgid "Within Add Arc will toogle the ARC direction: CW or CCW"
-msgstr "Dentro de agregar arco alternará la dirección del ARCO: CW o CCW"
-
-#: flatcamGUI/FlatCAMGUI.py:1929
-msgid "Polygon Intersection Tool"
-msgstr "Herram. de Intersección Poli"
-
-#: flatcamGUI/FlatCAMGUI.py:1930
-msgid "Geo Paint Tool"
-msgstr "Herram. de pintura geo"
-
-#: flatcamGUI/FlatCAMGUI.py:1930 flatcamGUI/FlatCAMGUI.py:2019
-#: flatcamGUI/FlatCAMGUI.py:2139
-msgid "Jump to Location (x, y)"
-msgstr "Saltar a la ubicación (x, y)"
-
-#: flatcamGUI/FlatCAMGUI.py:1930
-msgid "Toggle Corner Snap"
-msgstr "Alternar ajuste de esquina"
-
-#: flatcamGUI/FlatCAMGUI.py:1930
-msgid "Move Geo Item"
-msgstr "Mover elemento geo"
-
-#: flatcamGUI/FlatCAMGUI.py:1931
-msgid "Within Add Arc will cycle through the ARC modes"
-msgstr "Dentro de agregar arco, pasará por los modos de arco"
-
-#: flatcamGUI/FlatCAMGUI.py:1931
-msgid "Draw a Polygon"
-msgstr "Dibujar un polígono"
-
-#: flatcamGUI/FlatCAMGUI.py:1931
-msgid "Draw a Circle"
-msgstr "Dibuja un circulo"
-
-#: flatcamGUI/FlatCAMGUI.py:1932
-msgid "Draw a Path"
-msgstr "Dibujar un camino"
-
-#: flatcamGUI/FlatCAMGUI.py:1932
-msgid "Draw Rectangle"
-msgstr "Dibujar rectángulo"
-
-#: flatcamGUI/FlatCAMGUI.py:1932
-msgid "Polygon Subtraction Tool"
-msgstr "Herram. de Sustrac. de Polí"
-
-#: flatcamGUI/FlatCAMGUI.py:1932
-msgid "Add Text Tool"
-msgstr "Herramienta de Texto"
-
-#: flatcamGUI/FlatCAMGUI.py:1933
-msgid "Polygon Union Tool"
-msgstr "Herram. de Unión Poli"
-
-#: flatcamGUI/FlatCAMGUI.py:1933
-msgid "Flip shape on X axis"
-msgstr "Voltear en el eje X"
-
-#: flatcamGUI/FlatCAMGUI.py:1933
-msgid "Flip shape on Y axis"
-msgstr "Voltear en el eje Y"
-
-#: flatcamGUI/FlatCAMGUI.py:1934
-msgid "Skew shape on X axis"
-msgstr "Sesgar en el eje X"
-
-#: flatcamGUI/FlatCAMGUI.py:1934
-msgid "Skew shape on Y axis"
-msgstr "Sesgar en el eje Y"
-
-#: flatcamGUI/FlatCAMGUI.py:1934
-msgid "Editor Transformation Tool"
-msgstr "Herram. de transform. del editor"
-
-#: flatcamGUI/FlatCAMGUI.py:1935
-msgid "Offset shape on X axis"
-msgstr "Offset en el eje X"
-
-#: flatcamGUI/FlatCAMGUI.py:1935
-msgid "Offset shape on Y axis"
-msgstr "Offset en eje Y"
-
-#: flatcamGUI/FlatCAMGUI.py:1936 flatcamGUI/FlatCAMGUI.py:2022
-#: flatcamGUI/FlatCAMGUI.py:2144
-msgid "Save Object and Exit Editor"
-msgstr "Guardar objeto y salir del editor"
-
-#: flatcamGUI/FlatCAMGUI.py:1936
-msgid "Polygon Cut Tool"
-msgstr "Herram. de Corte Poli"
-
-#: flatcamGUI/FlatCAMGUI.py:1937
-msgid "Rotate Geometry"
-msgstr "Rotar Geometría"
-
-#: flatcamGUI/FlatCAMGUI.py:1937
-msgid "Finish drawing for certain tools"
-msgstr "Terminar el dibujo de ciertas herramientas"
-
-#: flatcamGUI/FlatCAMGUI.py:1937 flatcamGUI/FlatCAMGUI.py:2022
-#: flatcamGUI/FlatCAMGUI.py:2142
-msgid "Abort and return to Select"
-msgstr "Anular y volver a Seleccionar"
-
-#: flatcamGUI/FlatCAMGUI.py:1938 flatcamGUI/FlatCAMGUI.py:2734
-msgid "Delete Shape"
-msgstr "Eliminar forma"
-
-#: flatcamGUI/FlatCAMGUI.py:2018
-msgid "EXCELLON EDITOR"
-msgstr "EDITOR DE EXCELLON"
-
-#: flatcamGUI/FlatCAMGUI.py:2018
-msgid "Copy Drill(s)"
-msgstr "Copia de taladro"
-
-#: flatcamGUI/FlatCAMGUI.py:2018 flatcamGUI/FlatCAMGUI.py:2268
-msgid "Add Drill"
-msgstr "Añadir taladro"
-
-#: flatcamGUI/FlatCAMGUI.py:2019
-msgid "Move Drill(s)"
-msgstr "Mover taladro(s)"
-
-#: flatcamGUI/FlatCAMGUI.py:2020
-msgid "Add a new Tool"
-msgstr "Agregar una nueva herram"
-
-#: flatcamGUI/FlatCAMGUI.py:2021
-msgid "Delete Drill(s)"
-msgstr "Eliminar Taladro"
-
-#: flatcamGUI/FlatCAMGUI.py:2021
-msgid "Alternate: Delete Tool(s)"
-msgstr "Alt.: Eliminar herramienta (s)"
-
-#: flatcamGUI/FlatCAMGUI.py:2138
-msgid "GERBER EDITOR"
-msgstr "EDITOR GERBER"
-
-#: flatcamGUI/FlatCAMGUI.py:2138
-msgid "Add Disc"
-msgstr "Agregar disco"
-
-#: flatcamGUI/FlatCAMGUI.py:2138
-msgid "Add SemiDisc"
-msgstr "Añadir medio disco"
-
-#: flatcamGUI/FlatCAMGUI.py:2140
-msgid "Within Track & Region Tools will cycle in REVERSE the bend modes"
-msgstr ""
-"Dentro de la Pista y la Región, las herram.s alternarán en REVERSA los modos "
-"de plegado"
-
-#: flatcamGUI/FlatCAMGUI.py:2141
-msgid "Within Track & Region Tools will cycle FORWARD the bend modes"
-msgstr ""
-"Dentro de la Pista y la Región, las herram. avanzarán hacia adelante los "
-"modos de plegado"
-
-#: flatcamGUI/FlatCAMGUI.py:2142
-msgid "Alternate: Delete Apertures"
-msgstr "Alt.: Eliminar Aperturas"
-
-#: flatcamGUI/FlatCAMGUI.py:2143
-msgid "Eraser Tool"
-msgstr "Herramienta borrador"
-
-#: flatcamGUI/FlatCAMGUI.py:2144
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:220
-msgid "Mark Area Tool"
-msgstr "Herram. de Zona de Marca"
-
-#: flatcamGUI/FlatCAMGUI.py:2144
-msgid "Poligonize Tool"
-msgstr "Herram. de poligonización"
-
-#: flatcamGUI/FlatCAMGUI.py:2144
-msgid "Transformation Tool"
-msgstr "Herramienta de Transformación"
-
-#: flatcamGUI/FlatCAMGUI.py:2161
-msgid "Toggle Visibility"
-msgstr "Alternar visibilidad"
-
-#: flatcamGUI/FlatCAMGUI.py:2167
-msgid "New"
-msgstr "Nueva"
-
-#: flatcamGUI/FlatCAMGUI.py:2169 flatcamGUI/ObjectUI.py:450
-#: flatcamObjects/FlatCAMGerber.py:239 flatcamObjects/FlatCAMGerber.py:327
-#: flatcamTools/ToolCalibration.py:631 flatcamTools/ToolCalibration.py:648
-#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144
-#: flatcamTools/ToolCopperThieving.py:158
-#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolCutOut.py:92
-#: flatcamTools/ToolDblSided.py:226 flatcamTools/ToolFilm.py:69
-#: flatcamTools/ToolFilm.py:102 flatcamTools/ToolFilm.py:549
-#: flatcamTools/ToolFilm.py:557 flatcamTools/ToolImage.py:49
-#: flatcamTools/ToolImage.py:271 flatcamTools/ToolNCC.py:95
-#: flatcamTools/ToolNCC.py:558 flatcamTools/ToolNCC.py:1300
-#: flatcamTools/ToolPaint.py:502 flatcamTools/ToolPaint.py:706
-#: flatcamTools/ToolPanelize.py:118 flatcamTools/ToolPanelize.py:374
-#: flatcamTools/ToolPanelize.py:391
-msgid "Geometry"
-msgstr "Geometría"
-
-#: flatcamGUI/FlatCAMGUI.py:2173
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:99
-#: flatcamTools/ToolAlignObjects.py:74 flatcamTools/ToolAlignObjects.py:110
-#: flatcamTools/ToolCalibration.py:197 flatcamTools/ToolCalibration.py:631
-#: flatcamTools/ToolCalibration.py:648 flatcamTools/ToolCalibration.py:807
-#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144
-#: flatcamTools/ToolCopperThieving.py:158
-#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolDblSided.py:225
-#: flatcamTools/ToolFilm.py:359 flatcamTools/ToolNCC.py:558
-#: flatcamTools/ToolNCC.py:1300 flatcamTools/ToolPaint.py:502
-#: flatcamTools/ToolPaint.py:706 flatcamTools/ToolPanelize.py:374
-#: flatcamTools/ToolPunchGerber.py:149 flatcamTools/ToolPunchGerber.py:164
-msgid "Excellon"
-msgstr "Excellon"
-
-#: flatcamGUI/FlatCAMGUI.py:2180
-msgid "Grids"
-msgstr "Rejillas"
-
-#: flatcamGUI/FlatCAMGUI.py:2187
-msgid "Clear Plot"
-msgstr "Parcela clara"
-
-#: flatcamGUI/FlatCAMGUI.py:2189
-msgid "Replot"
-msgstr "Replantear"
-
-#: flatcamGUI/FlatCAMGUI.py:2193
-msgid "Geo Editor"
-msgstr "Geo Editor"
-
-#: flatcamGUI/FlatCAMGUI.py:2195
-msgid "Path"
-msgstr "Ruta"
-
-#: flatcamGUI/FlatCAMGUI.py:2197
-msgid "Rectangle"
-msgstr "Rectángulo"
-
-#: flatcamGUI/FlatCAMGUI.py:2200
-msgid "Circle"
-msgstr "Círculo"
-
-#: flatcamGUI/FlatCAMGUI.py:2204
-msgid "Arc"
-msgstr "Arco"
-
-#: flatcamGUI/FlatCAMGUI.py:2218
-msgid "Union"
-msgstr "Unión"
-
-#: flatcamGUI/FlatCAMGUI.py:2220
-msgid "Intersection"
-msgstr "Intersección"
-
-#: flatcamGUI/FlatCAMGUI.py:2222
-msgid "Subtraction"
-msgstr "Sustracción"
-
-#: flatcamGUI/FlatCAMGUI.py:2224 flatcamGUI/ObjectUI.py:2221
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:56
-msgid "Cut"
-msgstr "Cortar"
-
-#: flatcamGUI/FlatCAMGUI.py:2235
-msgid "Pad"
-msgstr "Pad"
-
-#: flatcamGUI/FlatCAMGUI.py:2237
-msgid "Pad Array"
-msgstr "Matriz de Pad"
-
-#: flatcamGUI/FlatCAMGUI.py:2241
-msgid "Track"
-msgstr "Pista"
-
-#: flatcamGUI/FlatCAMGUI.py:2243
-msgid "Region"
-msgstr "Región"
-
-#: flatcamGUI/FlatCAMGUI.py:2266
-msgid "Exc Editor"
-msgstr "Exc Editor"
-
-#: flatcamGUI/FlatCAMGUI.py:2311
-msgid ""
-"Relative measurement.\n"
-"Reference is last click position"
-msgstr ""
-"Medida relativa.\n"
-"La referencia es la posición del último clic"
-
-#: flatcamGUI/FlatCAMGUI.py:2317
-msgid ""
-"Absolute measurement.\n"
-"Reference is (X=0, Y= 0) position"
-msgstr ""
-"Medida absoluta.\n"
-"La referencia es (X = 0, Y = 0) posición"
-
-#: flatcamGUI/FlatCAMGUI.py:2419
-msgid "Lock Toolbars"
-msgstr "Bloquear barras de herram"
-
-#: flatcamGUI/FlatCAMGUI.py:2505
-msgid "FlatCAM Preferences Folder opened."
-msgstr "Carpeta de preferencias de FlatCAM abierta."
-
-#: flatcamGUI/FlatCAMGUI.py:2516
-msgid "Are you sure you want to delete the GUI Settings? \n"
-msgstr "¿Está seguro de que desea eliminar la configuración de la GUI?\n"
-
-#: flatcamGUI/FlatCAMGUI.py:2624
-msgid "&Cutout Tool"
-msgstr "Herramienta de recorte"
-
-#: flatcamGUI/FlatCAMGUI.py:2694
-msgid "Select 'Esc'"
-msgstr "Selecciona 'Esc'"
-
-#: flatcamGUI/FlatCAMGUI.py:2732
-msgid "Copy Objects"
-msgstr "Copiar objetos"
-
-#: flatcamGUI/FlatCAMGUI.py:2740
-msgid "Move Objects"
-msgstr "Mover objetos"
-
-#: flatcamGUI/FlatCAMGUI.py:3363
-msgid ""
-"Please first select a geometry item to be cutted\n"
-"then select the geometry item that will be cutted\n"
-"out of the first item. In the end press ~X~ key or\n"
-"the toolbar button."
-msgstr ""
-"Por favor, primero seleccione un elemento de geometría para ser cortado\n"
-"a continuación, seleccione el elemento de geometría que se cortará\n"
-"fuera del primer artículo. Al final presione la tecla ~ X ~ o\n"
-"el botón de la barra de herramientas."
-
-#: flatcamGUI/FlatCAMGUI.py:3370 flatcamGUI/FlatCAMGUI.py:3532
-#: flatcamGUI/FlatCAMGUI.py:3577 flatcamGUI/FlatCAMGUI.py:3597
-msgid "Warning"
-msgstr "Advertencia"
-
-#: flatcamGUI/FlatCAMGUI.py:3527
-msgid ""
-"Please select geometry items \n"
-"on which to perform Intersection Tool."
-msgstr ""
-"Por favor seleccione elementos de geometría\n"
-"en el que realizar Herramienta de Intersección."
-
-#: flatcamGUI/FlatCAMGUI.py:3572
-msgid ""
-"Please select geometry items \n"
-"on which to perform Substraction Tool."
-msgstr ""
-"Por favor seleccione elementos de geometría\n"
-"en el que realizar la Herramienta de Substracción."
-
-#: flatcamGUI/FlatCAMGUI.py:3592
-msgid ""
-"Please select geometry items \n"
-"on which to perform union."
-msgstr ""
-"Por favor seleccione elementos de geometría\n"
-"en el que realizar la Unión."
-
-#: flatcamGUI/FlatCAMGUI.py:3675 flatcamGUI/FlatCAMGUI.py:3890
-msgid "Cancelled. Nothing selected to delete."
-msgstr "Cancelado. Nada seleccionado para eliminar."
-
-#: flatcamGUI/FlatCAMGUI.py:3759 flatcamGUI/FlatCAMGUI.py:4006
-msgid "Cancelled. Nothing selected to copy."
-msgstr "Cancelado. Nada seleccionado para copiar."
-
-#: flatcamGUI/FlatCAMGUI.py:3805 flatcamGUI/FlatCAMGUI.py:4035
-msgid "Cancelled. Nothing selected to move."
-msgstr "Cancelado. Nada seleccionado para moverse."
-
-#: flatcamGUI/FlatCAMGUI.py:4061
-msgid "New Tool ..."
-msgstr "Nueva herramienta ..."
-
-#: flatcamGUI/FlatCAMGUI.py:4062 flatcamTools/ToolNCC.py:924
-#: flatcamTools/ToolPaint.py:850 flatcamTools/ToolSolderPaste.py:560
-msgid "Enter a Tool Diameter"
-msgstr "Introduzca un diá. de herram"
-
-#: flatcamGUI/FlatCAMGUI.py:4074
-msgid "Adding Tool cancelled ..."
-msgstr "Añadiendo herramienta cancelada ..."
-
-#: flatcamGUI/FlatCAMGUI.py:4088
-msgid "Distance Tool exit..."
-msgstr "Salida de Herramienta de Distancia ..."
-
-#: flatcamGUI/FlatCAMGUI.py:4323 flatcamGUI/FlatCAMGUI.py:4330
-msgid "Idle."
-msgstr "Ocioso."
-
-#: flatcamGUI/FlatCAMGUI.py:4361
-msgid "Application started ..."
-msgstr "Aplicacion iniciada ..."
-
-#: flatcamGUI/FlatCAMGUI.py:4362
-msgid "Hello!"
-msgstr "¡Hola!"
-
-#: flatcamGUI/FlatCAMGUI.py:4424
-msgid "Open Project ..."
-msgstr "Proyecto abierto ...Abierto &Project ..."
-
-#: flatcamGUI/FlatCAMGUI.py:4450
-msgid "Exit"
-msgstr "Salida"
-
-#: flatcamGUI/GUIElements.py:2513
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:180
-#: flatcamTools/ToolDblSided.py:173 flatcamTools/ToolDblSided.py:388
-#: flatcamTools/ToolFilm.py:219
-msgid "Reference"
-msgstr "Referencia"
-
-#: flatcamGUI/GUIElements.py:2515
-msgid ""
-"The reference can be:\n"
-"- Absolute -> the reference point is point (0,0)\n"
-"- Relative -> the reference point is the mouse position before Jump"
-msgstr ""
-"La referencia puede ser:\n"
-"- Absoluto -> el punto de referencia es el punto (0,0)\n"
-"- Relativo -> el punto de referencia es la posición del mouse antes de Jump"
-
-#: flatcamGUI/GUIElements.py:2520
-msgid "Abs"
-msgstr "Abs"
-
-#: flatcamGUI/GUIElements.py:2521
-msgid "Relative"
-msgstr "Relativo"
-
-#: flatcamGUI/GUIElements.py:2531
-msgid "Location"
-msgstr "Ubicación"
-
-#: flatcamGUI/GUIElements.py:2533
-msgid ""
-"The Location value is a tuple (x,y).\n"
-"If the reference is Absolute then the Jump will be at the position (x,y).\n"
-"If the reference is Relative then the Jump will be at the (x,y) distance\n"
-"from the current mouse location point."
-msgstr ""
-"El valor de ubicación es una tupla (x, y).\n"
-"Si la referencia es Absoluta, entonces el Salto estará en la posición (x, "
-"y).\n"
-"Si la referencia es relativa, entonces el salto estará a la distancia (x, "
-"y)\n"
-"desde el punto de ubicación actual del mouse."
-
-#: flatcamGUI/GUIElements.py:2573
-msgid "Save Log"
-msgstr "Guardar Registro"
-
-#: flatcamGUI/GUIElements.py:2592 flatcamTools/ToolShell.py:278
-msgid "Type >help< to get started"
-msgstr "Escriba >help< para comenzar"
-
-#: flatcamGUI/ObjectUI.py:38
-msgid "FlatCAM Object"
-msgstr "Objeto FlatCAM"
-
-#: flatcamGUI/ObjectUI.py:78
-msgid ""
-"BASIC is suitable for a beginner. Many parameters\n"
-"are hidden from the user in this mode.\n"
-"ADVANCED mode will make available all parameters.\n"
-"\n"
-"To change the application LEVEL, go to:\n"
-"Edit -> Preferences -> General and check:\n"
-"'APP. LEVEL' radio button."
-msgstr ""
-"BASIC es adecuado para un principiante. Muchos parámetros\n"
-"están ocultos para el usuario en este modo.\n"
-"El modo AVANZADO pondrá a disposición todos los parámetros.\n"
-"\n"
-"Para cambiar el NIVEL de la aplicación, vaya a:\n"
-"Editar -> Preferencias -> General y verificar:\n"
-"'APP. NIVEL 'botón de radio."
-
-#: flatcamGUI/ObjectUI.py:111
-msgid "Geometrical transformations of the current object."
-msgstr "Transformaciones geométricas del objeto actual."
-
-#: flatcamGUI/ObjectUI.py:120
-msgid ""
-"Factor by which to multiply\n"
-"geometric features of this object.\n"
-"Expressions are allowed. E.g: 1/25.4"
-msgstr ""
-"Factor por el cual multiplicar\n"
-"características geométricas de este objeto.\n"
-"Se permiten expresiones. Por ejemplo: 1 / 25.4"
-
-#: flatcamGUI/ObjectUI.py:127
-msgid "Perform scaling operation."
-msgstr "Realizar la operación de escalado."
-
-#: flatcamGUI/ObjectUI.py:138
-msgid ""
-"Amount by which to move the object\n"
-"in the x and y axes in (x, y) format.\n"
-"Expressions are allowed. E.g: (1/3.2, 0.5*3)"
-msgstr ""
-"Cantidad por la cual mover el objeto\n"
-"en los ejes x e y en formato (x, y).\n"
-"Se permiten expresiones. Por ejemplo: (1/3.2, 0.5*3)"
-
-#: flatcamGUI/ObjectUI.py:145
-msgid "Perform the offset operation."
-msgstr "Realice la operación de desplazamiento."
-
-#: flatcamGUI/ObjectUI.py:178
-msgid "Gerber Object"
-msgstr "Objeto Gerber"
-
-#: flatcamGUI/ObjectUI.py:187 flatcamGUI/ObjectUI.py:730
-#: flatcamGUI/ObjectUI.py:1426 flatcamGUI/ObjectUI.py:2205
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:30
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:33
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:31
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:31
-msgid "Plot Options"
-msgstr "Opciones de parcela"
-
-#: flatcamGUI/ObjectUI.py:193 flatcamGUI/ObjectUI.py:731
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:45
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:38
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119
-#: flatcamTools/ToolCopperThieving.py:191
-msgid "Solid"
-msgstr "Sólido"
-
-#: flatcamGUI/ObjectUI.py:195
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:40
-msgid "Solid color polygons."
-msgstr "Polígonos de color liso."
-
-#: flatcamGUI/ObjectUI.py:201
-msgid "Multi-Color"
-msgstr "Multicolor"
-
-#: flatcamGUI/ObjectUI.py:203
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:47
-msgid "Draw polygons in different colors."
-msgstr "Dibuja polígonos en diferentes colores."
-
-#: flatcamGUI/ObjectUI.py:209 flatcamGUI/ObjectUI.py:769
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:39
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:35
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:52
-msgid "Plot"
-msgstr "Gráfico"
-
-#: flatcamGUI/ObjectUI.py:211 flatcamGUI/ObjectUI.py:771
-#: flatcamGUI/ObjectUI.py:1486 flatcamGUI/ObjectUI.py:2315
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:41
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:37
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:54
-msgid "Plot (show) this object."
-msgstr "Trazar (mostrar) este objeto."
-
-#: flatcamGUI/ObjectUI.py:239
-msgid ""
-"Toggle the display of the Gerber Apertures Table.\n"
-"When unchecked, it will delete all mark shapes\n"
-"that are drawn on canvas."
-msgstr ""
-"Alternar la visualización de la tabla de aperturas de Gerber.\n"
-"Cuando no está marcada, eliminará todas las formas de las marcas.\n"
-"que se dibujan en lienzo."
-
-#: flatcamGUI/ObjectUI.py:249
-msgid "Mark All"
-msgstr "Márc. todo"
-
-#: flatcamGUI/ObjectUI.py:251
-msgid ""
-"When checked it will display all the apertures.\n"
-"When unchecked, it will delete all mark shapes\n"
-"that are drawn on canvas."
-msgstr ""
-"Cuando está marcado, mostrará todas las aperturas.\n"
-"Cuando no está marcada, eliminará todas las formas de las marcas.\n"
-"que se dibujan en lienzo."
-
-#: flatcamGUI/ObjectUI.py:279
-msgid "Mark the aperture instances on canvas."
-msgstr "Marque las instancias de apertura en el lienzo."
-
-#: flatcamGUI/ObjectUI.py:291
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:32
-msgid "Isolation Routing"
-msgstr "Enrutamiento de aislamiento"
-
-#: flatcamGUI/ObjectUI.py:293
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:34
-msgid ""
-"Create a Geometry object with\n"
-"toolpaths to cut outside polygons."
-msgstr ""
-"Crear un objeto de geometría con\n"
-"Trayectorias para cortar polígonos exteriores."
-
-#: flatcamGUI/ObjectUI.py:311
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:69
-msgid ""
-"Choose which tool to use for Gerber isolation:\n"
-"'Circular' or 'V-shape'.\n"
-"When the 'V-shape' is selected then the tool\n"
-"diameter will depend on the chosen cut depth."
-msgstr ""
-"Elija qué herramienta usar para el aislamiento de Gerber:\n"
-"'Circular' o 'en forma de V'.\n"
-"Cuando se selecciona la 'forma de V', entonces la herramienta\n"
-"El diámetro dependerá de la profundidad de corte elegida."
-
-#: flatcamGUI/ObjectUI.py:317
-msgid "V-Shape"
-msgstr "Forma V"
-
-#: flatcamGUI/ObjectUI.py:323 flatcamGUI/ObjectUI.py:1672
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:81
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:72
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:78
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:85
-#: flatcamTools/ToolNCC.py:233 flatcamTools/ToolNCC.py:240
-#: flatcamTools/ToolPaint.py:216
-msgid "V-Tip Dia"
-msgstr "V-Tipo Dia"
-
-#: flatcamGUI/ObjectUI.py:325 flatcamGUI/ObjectUI.py:1675
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:83
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:74
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:80
-#: flatcamTools/ToolNCC.py:235 flatcamTools/ToolPaint.py:218
-msgid "The tip diameter for V-Shape Tool"
-msgstr "El diámetro de la punta para la herramienta en forma de V"
-
-#: flatcamGUI/ObjectUI.py:336 flatcamGUI/ObjectUI.py:1687
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:94
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:84
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:91
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:99
-#: flatcamTools/ToolNCC.py:246 flatcamTools/ToolNCC.py:254
-#: flatcamTools/ToolPaint.py:229
-msgid "V-Tip Angle"
-msgstr "V-Tipo Ángulo"
-
-#: flatcamGUI/ObjectUI.py:338 flatcamGUI/ObjectUI.py:1690
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:96
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:86
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:93
-#: flatcamTools/ToolNCC.py:248 flatcamTools/ToolPaint.py:231
-msgid ""
-"The tip angle for V-Shape Tool.\n"
-"In degree."
-msgstr ""
-"El ángulo de punta para la herramienta en forma de V.\n"
-"En grado."
-
-#: flatcamGUI/ObjectUI.py:352 flatcamGUI/ObjectUI.py:1706
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:50
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:109
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61
-#: flatcamObjects/FlatCAMGeometry.py:1174 flatcamTools/ToolCutOut.py:141
-msgid ""
-"Cutting depth (negative)\n"
-"below the copper surface."
-msgstr ""
-"Profundidad de corte (negativo)\n"
-"debajo de la superficie de cobre."
-
-#: flatcamGUI/ObjectUI.py:366
-msgid ""
-"Diameter of the cutting tool.\n"
-"If you want to have an isolation path\n"
-"inside the actual shape of the Gerber\n"
-"feature, use a negative value for\n"
-"this parameter."
-msgstr ""
-"Diámetro de la herramienta de corte.\n"
-"Si quieres tener una ruta de aislamiento\n"
-"dentro de la forma real del Gerber\n"
-"característica, use un valor negativo para\n"
-"este parámetro."
-
-#: flatcamGUI/ObjectUI.py:382
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:56
-msgid "# Passes"
-msgstr "# Pases"
-
-#: flatcamGUI/ObjectUI.py:384
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:58
-msgid ""
-"Width of the isolation gap in\n"
-"number (integer) of tool widths."
-msgstr ""
-"Ancho de la brecha de aislamiento en\n"
-"Número (entero) de anchos de herramienta."
-
-#: flatcamGUI/ObjectUI.py:395
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:68
-msgid "Pass overlap"
-msgstr "Superposición de pases"
-
-#: flatcamGUI/ObjectUI.py:397
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:70
-msgid "How much (percentage) of the tool width to overlap each tool pass."
-msgstr ""
-"Cuánto (porcentaje) del ancho de la herramienta para superponer cada pasada "
-"de herramienta."
-
-#: flatcamGUI/ObjectUI.py:411
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:58
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:97
-msgid ""
-"Milling type:\n"
-"- climb / best for precision milling and to reduce tool usage\n"
-"- conventional / useful when there is no backlash compensation"
-msgstr ""
-"Tipo de fresado:\n"
-"- subir / mejor para fresado de precisión y para reducir el uso de la "
-"herramienta\n"
-"- convencional / útil cuando no hay compensación de contragolpe"
-
-#: flatcamGUI/ObjectUI.py:421
-msgid "Combine"
-msgstr "Combinar"
-
-#: flatcamGUI/ObjectUI.py:423
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:109
-msgid "Combine all passes into one object"
-msgstr "Combina todos los pases en un objeto"
-
-#: flatcamGUI/ObjectUI.py:427
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:43
-msgid "\"Follow\""
-msgstr "\"Seguir\""
-
-#: flatcamGUI/ObjectUI.py:428
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:45
-msgid ""
-"Generate a 'Follow' geometry.\n"
-"This means that it will cut through\n"
-"the middle of the trace."
-msgstr ""
-"Generar una geometría 'Seguir'.\n"
-"Esto significa que cortará a través\n"
-"El medio de la traza."
-
-#: flatcamGUI/ObjectUI.py:434
-msgid "Except"
-msgstr "Excepto"
-
-#: flatcamGUI/ObjectUI.py:437
-msgid ""
-"When the isolation geometry is generated,\n"
-"by checking this, the area of the object below\n"
-"will be subtracted from the isolation geometry."
-msgstr ""
-"Cuando se genera la geometría de Aislamiento,\n"
-"marcando esto, el área del objeto a continuación\n"
-"será restado de la geometría de aislamiento."
-
-#: flatcamGUI/ObjectUI.py:450
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:97
-#: flatcamObjects/FlatCAMGerber.py:239 flatcamObjects/FlatCAMGerber.py:327
-#: flatcamTools/ToolAlignObjects.py:73 flatcamTools/ToolAlignObjects.py:109
-#: flatcamTools/ToolCalibration.py:196 flatcamTools/ToolCalibration.py:631
-#: flatcamTools/ToolCalibration.py:648 flatcamTools/ToolCalibration.py:807
-#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144
-#: flatcamTools/ToolCopperThieving.py:158
-#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolCutOut.py:91
-#: flatcamTools/ToolDblSided.py:224 flatcamTools/ToolFilm.py:69
-#: flatcamTools/ToolFilm.py:102 flatcamTools/ToolFilm.py:549
-#: flatcamTools/ToolFilm.py:557 flatcamTools/ToolImage.py:49
-#: flatcamTools/ToolImage.py:252 flatcamTools/ToolImage.py:273
-#: flatcamTools/ToolNCC.py:96 flatcamTools/ToolNCC.py:558
-#: flatcamTools/ToolNCC.py:1300 flatcamTools/ToolPaint.py:502
-#: flatcamTools/ToolPaint.py:706 flatcamTools/ToolPanelize.py:118
-#: flatcamTools/ToolPanelize.py:204 flatcamTools/ToolPanelize.py:374
-#: flatcamTools/ToolPanelize.py:391
-msgid "Gerber"
-msgstr "Gerber"
-
-#: flatcamGUI/ObjectUI.py:457 flatcamTools/ToolNCC.py:86
-#: flatcamTools/ToolPaint.py:80
-msgid "Obj Type"
-msgstr "Tipo de obj"
-
-#: flatcamGUI/ObjectUI.py:459
-msgid ""
-"Specify the type of object to be excepted from isolation.\n"
-"It can be of type: Gerber or Geometry.\n"
-"What is selected here will dictate the kind\n"
-"of objects that will populate the 'Object' combobox."
-msgstr ""
-"Especifique el tipo de objeto que se excluirá del aislamiento.\n"
-"Puede ser de tipo: Gerber o Geometría.\n"
-"Lo que se seleccione aquí dictará el tipo\n"
-"de objetos que llenarán el cuadro combinado 'Objeto'."
-
-#: flatcamGUI/ObjectUI.py:472
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:48
-#: flatcamTools/ToolCalibration.py:186 flatcamTools/ToolNCC.py:109
-#: flatcamTools/ToolPaint.py:103 flatcamTools/ToolPanelize.py:100
-#: flatcamTools/ToolQRCode.py:78
-msgid "Object"
-msgstr "Objeto"
-
-#: flatcamGUI/ObjectUI.py:473
-msgid "Object whose area will be removed from isolation geometry."
-msgstr "Objeto cuya área se eliminará de la geometría de aislamiento."
-
-#: flatcamGUI/ObjectUI.py:480
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:82
-msgid "Scope"
-msgstr "Alcance"
-
-#: flatcamGUI/ObjectUI.py:482
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:84
-msgid ""
-"Isolation scope. Choose what to isolate:\n"
-"- 'All' -> Isolate all the polygons in the object\n"
-"- 'Selection' -> Isolate a selection of polygons."
-msgstr ""
-"Alcance de aislamiento. Elija qué aislar:\n"
-"- 'Todos' -> Aislar todos los polígonos en el objeto\n"
-"- 'Selección' -> Aislar una selección de polígonos."
-
-#: flatcamGUI/ObjectUI.py:487
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:307
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:89
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:311
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:258
-#: flatcamTools/ToolNCC.py:539 flatcamTools/ToolPaint.py:456
-msgid "Selection"
-msgstr "Selección"
-
-#: flatcamGUI/ObjectUI.py:495
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:122
-msgid "Isolation Type"
-msgstr "Tipo de aislamiento"
-
-#: flatcamGUI/ObjectUI.py:497
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:124
-msgid ""
-"Choose how the isolation will be executed:\n"
-"- 'Full' -> complete isolation of polygons\n"
-"- 'Ext' -> will isolate only on the outside\n"
-"- 'Int' -> will isolate only on the inside\n"
-"'Exterior' isolation is almost always possible\n"
-"(with the right tool) but 'Interior'\n"
-"isolation can be done only when there is an opening\n"
-"inside of the polygon (e.g polygon is a 'doughnut' shape)."
-msgstr ""
-"Elija cómo se ejecutará el aislamiento:\n"
-"- 'Completo' -> aislamiento completo de polígonos\n"
-"- 'Ext' -> aislará solo en el exterior\n"
-"- 'Int' -> aislará solo en el interior\n"
-"El aislamiento 'exterior' es casi siempre posible\n"
-"(con la herramienta adecuada) pero 'Interior'\n"
-"el aislamiento solo se puede hacer cuando hay una abertura\n"
-"dentro del polígono (por ejemplo, el polígono tiene forma de 'rosquilla')."
-
-#: flatcamGUI/ObjectUI.py:506
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:133
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:154
-msgid "Full"
-msgstr "Completo"
-
-#: flatcamGUI/ObjectUI.py:507
-msgid "Ext"
-msgstr "Exterior"
-
-#: flatcamGUI/ObjectUI.py:508
-msgid "Int"
-msgstr "Interior"
-
-#: flatcamGUI/ObjectUI.py:513
-msgid "Generate Isolation Geometry"
-msgstr "Generar geo. de aislamiento"
-
-#: flatcamGUI/ObjectUI.py:521
-msgid ""
-"Create a Geometry object with toolpaths to cut \n"
-"isolation outside, inside or on both sides of the\n"
-"object. For a Gerber object outside means outside\n"
-"of the Gerber feature and inside means inside of\n"
-"the Gerber feature, if possible at all. This means\n"
-"that only if the Gerber feature has openings inside, they\n"
-"will be isolated. If what is wanted is to cut isolation\n"
-"inside the actual Gerber feature, use a negative tool\n"
-"diameter above."
-msgstr ""
-"Cree un objeto de geometría con trayectorias de herramientas para cortar\n"
-"aislamiento afuera, adentro o en ambos lados del\n"
-"objeto. Para un objeto Gerber afuera significa afuera\n"
-"de la característica de Gerber y dentro significa dentro de\n"
-"la característica de Gerber, si es posible. Esto significa\n"
-"que solo si la función Gerber tiene aberturas adentro,\n"
-"será aislado Si lo que se quiere es cortar el aislamiento\n"
-"dentro de la función real de Gerber, use una herramienta negativa\n"
-"diámetro arriba."
-
-#: flatcamGUI/ObjectUI.py:533
-msgid "Buffer Solid Geometry"
-msgstr "Buffer la Geometria solida"
-
-#: flatcamGUI/ObjectUI.py:535
-msgid ""
-"This button is shown only when the Gerber file\n"
-"is loaded without buffering.\n"
-"Clicking this will create the buffered geometry\n"
-"required for isolation."
-msgstr ""
-"Este botón se muestra solo cuando el archivo Gerber\n"
-"se carga sin almacenamiento en búfer.\n"
-"Al hacer clic en esto, se creará la geometría almacenada\n"
-"requerido para el aislamiento."
-
-#: flatcamGUI/ObjectUI.py:567
-msgid "Clear N-copper"
-msgstr "N-cobre claro"
-
-#: flatcamGUI/ObjectUI.py:569
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:33
-msgid ""
-"Create a Geometry object with\n"
-"toolpaths to cut all non-copper regions."
-msgstr ""
-"Crear un objeto de geometría con\n"
-"Trayectorias para cortar todas las regiones sin cobre."
-
-#: flatcamGUI/ObjectUI.py:576 flatcamGUI/ObjectUI.py:2159
-#: flatcamTools/ToolNCC.py:599
-msgid ""
-"Create the Geometry Object\n"
-"for non-copper routing."
-msgstr ""
-"Crear el objeto de geometría\n"
-"para enrutamiento sin cobre."
-
-#: flatcamGUI/ObjectUI.py:589
-msgid "Board cutout"
-msgstr "Corte del tablero"
-
-#: flatcamGUI/ObjectUI.py:591
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:34
-msgid ""
-"Create toolpaths to cut around\n"
-"the PCB and separate it from\n"
-"the original board."
-msgstr ""
-"Crear caminos de herramientas para cortar alrededor\n"
-"El PCB y lo separa de\n"
-"El tablero original."
-
-#: flatcamGUI/ObjectUI.py:598
-msgid ""
-"Generate the geometry for\n"
-"the board cutout."
-msgstr ""
-"Generar la geometría para\n"
-"El recorte del tablero."
-
-#: flatcamGUI/ObjectUI.py:616
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:119
-msgid "Non-copper regions"
-msgstr "Regiones no cobre"
-
-#: flatcamGUI/ObjectUI.py:618
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:121
-msgid ""
-"Create polygons covering the\n"
-"areas without copper on the PCB.\n"
-"Equivalent to the inverse of this\n"
-"object. Can be used to remove all\n"
-"copper from a specified region."
-msgstr ""
-"Crear polígonos que cubran el\n"
-"áreas sin cobre en el PCB.\n"
-"Equivalente al inverso de este\n"
-"objeto. Se puede usar para eliminar todo\n"
-"cobre de una región específica."
-
-#: flatcamGUI/ObjectUI.py:628 flatcamGUI/ObjectUI.py:669
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:133
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:166
-msgid "Boundary Margin"
-msgstr "Margen límite"
-
-#: flatcamGUI/ObjectUI.py:630
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:135
-msgid ""
-"Specify the edge of the PCB\n"
-"by drawing a box around all\n"
-"objects with this minimum\n"
-"distance."
-msgstr ""
-"Especifique el borde de la PCB\n"
-"dibujando una caja alrededor de todos\n"
-"objetos con este mínimo\n"
-"distancia."
-
-#: flatcamGUI/ObjectUI.py:645 flatcamGUI/ObjectUI.py:683
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:148
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:179
-msgid "Rounded Geo"
-msgstr "Geo redondeado"
-
-#: flatcamGUI/ObjectUI.py:647
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:150
-msgid "Resulting geometry will have rounded corners."
-msgstr "La geometría resultante tendrá esquinas redondeadas."
-
-#: flatcamGUI/ObjectUI.py:651 flatcamGUI/ObjectUI.py:692
-#: flatcamTools/ToolSolderPaste.py:134
-msgid "Generate Geo"
-msgstr "Generar Geo"
-
-#: flatcamGUI/ObjectUI.py:661
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:160
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137
-#: flatcamTools/ToolPanelize.py:101 flatcamTools/ToolQRCode.py:192
-msgid "Bounding Box"
-msgstr "Cuadro delimitador"
-
-#: flatcamGUI/ObjectUI.py:663
-msgid ""
-"Create a geometry surrounding the Gerber object.\n"
-"Square shape."
-msgstr ""
-"Crea una geometría que rodea el objeto Gerber.\n"
-"Forma cuadrada."
-
-#: flatcamGUI/ObjectUI.py:671
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:168
-msgid ""
-"Distance of the edges of the box\n"
-"to the nearest polygon."
-msgstr ""
-"Distancia de los bordes de la caja.\n"
-"al polígono más cercano."
-
-#: flatcamGUI/ObjectUI.py:685
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:181
-msgid ""
-"If the bounding box is \n"
-"to have rounded corners\n"
-"their radius is equal to\n"
-"the margin."
-msgstr ""
-"Si el cuadro delimitador es\n"
-"tener esquinas redondeadas\n"
-"su radio es igual a\n"
-"el margen."
-
-#: flatcamGUI/ObjectUI.py:694
-msgid "Generate the Geometry object."
-msgstr "Genera el objeto Geometry."
-
-#: flatcamGUI/ObjectUI.py:721
-msgid "Excellon Object"
-msgstr "Objeto Excellon"
-
-#: flatcamGUI/ObjectUI.py:733
-msgid "Solid circles."
-msgstr "Círculos sólidos."
-
-#: flatcamGUI/ObjectUI.py:781 flatcamGUI/ObjectUI.py:876
-#: flatcamGUI/ObjectUI.py:2336
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:71
-#: flatcamTools/ToolProperties.py:166
-msgid "Drills"
-msgstr "Taladros"
-
-#: flatcamGUI/ObjectUI.py:781 flatcamGUI/ObjectUI.py:877
-#: flatcamGUI/ObjectUI.py:2336
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:158
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:72
-#: flatcamTools/ToolProperties.py:168
-msgid "Slots"
-msgstr "Muesca"
-
-#: flatcamGUI/ObjectUI.py:786
-msgid ""
-"This is the Tool Number.\n"
-"When ToolChange is checked, on toolchange event this value\n"
-"will be showed as a T1, T2 ... Tn in the Machine Code.\n"
-"\n"
-"Here the tools are selected for G-code generation."
-msgstr ""
-"Este es el número de herramienta.\n"
-"Cuando ToolChange está marcado, en el evento de cambio de herramienta este "
-"valor\n"
-"se mostrará como T1, T2 ... Tn en el Código de máquina.\n"
-"\n"
-"Aquí se seleccionan las herramientas para la generación de código G."
-
-#: flatcamGUI/ObjectUI.py:791 flatcamGUI/ObjectUI.py:1510
-#: flatcamTools/ToolPaint.py:142
-msgid ""
-"Tool Diameter. It's value (in current FlatCAM units) \n"
-"is the cut width into the material."
-msgstr ""
-"Diámetro de herramienta. Su valor (en unidades actuales de FlatCAM)\n"
-"es el ancho de corte en el material."
-
-#: flatcamGUI/ObjectUI.py:794
-msgid ""
-"The number of Drill holes. Holes that are drilled with\n"
-"a drill bit."
-msgstr ""
-"El número de agujeros de taladros. Agujeros que se taladran con\n"
-"una broca."
-
-#: flatcamGUI/ObjectUI.py:797
-msgid ""
-"The number of Slot holes. Holes that are created by\n"
-"milling them with an endmill bit."
-msgstr ""
-"El número de agujeros de muesca. Agujeros creados por\n"
-"fresándolas con una broca de fresa."
-
-#: flatcamGUI/ObjectUI.py:800
-msgid ""
-"Toggle display of the drills for the current tool.\n"
-"This does not select the tools for G-code generation."
-msgstr ""
-"Alternar la visualización de los ejercicios para la herramienta actual.\n"
-"Esto no selecciona las herramientas para la generación de código G."
-
-#: flatcamGUI/ObjectUI.py:818 flatcamGUI/ObjectUI.py:1662
-#: flatcamObjects/FlatCAMExcellon.py:514 flatcamObjects/FlatCAMExcellon.py:726
-#: flatcamObjects/FlatCAMExcellon.py:742 flatcamObjects/FlatCAMExcellon.py:746
-#: flatcamObjects/FlatCAMGeometry.py:323 flatcamObjects/FlatCAMGeometry.py:759
-#: flatcamObjects/FlatCAMGeometry.py:795 flatcamTools/ToolNCC.py:331
-#: flatcamTools/ToolNCC.py:797 flatcamTools/ToolNCC.py:811
-#: flatcamTools/ToolNCC.py:1196 flatcamTools/ToolPaint.py:314
-#: flatcamTools/ToolPaint.py:767 flatcamTools/ToolPaint.py:779
-#: flatcamTools/ToolPaint.py:1171
-msgid "Parameters for"
-msgstr "Parámetros para"
-
-#: flatcamGUI/ObjectUI.py:821 flatcamGUI/ObjectUI.py:1665
-#: flatcamTools/ToolNCC.py:334 flatcamTools/ToolPaint.py:317
-msgid ""
-"The data used for creating GCode.\n"
-"Each tool store it's own set of such data."
-msgstr ""
-"Los datos utilizados para crear GCode.\n"
-"Cada herramienta almacena su propio conjunto de datos."
-
-#: flatcamGUI/ObjectUI.py:847
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:48
-msgid ""
-"Operation type:\n"
-"- Drilling -> will drill the drills/slots associated with this tool\n"
-"- Milling -> will mill the drills/slots"
-msgstr ""
-"Tipo de operación:\n"
-"- Perforación -> perforará las perforaciones / ranuras asociadas con esta "
-"herramienta\n"
-"- Fresado -> fresará los taladros / ranuras"
-
-#: flatcamGUI/ObjectUI.py:853
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:54
-msgid "Drilling"
-msgstr "Perforación"
-
-#: flatcamGUI/ObjectUI.py:854
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:55
-msgid "Milling"
-msgstr "Fresado"
-
-#: flatcamGUI/ObjectUI.py:869
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:64
-msgid ""
-"Milling type:\n"
-"- Drills -> will mill the drills associated with this tool\n"
-"- Slots -> will mill the slots associated with this tool\n"
-"- Both -> will mill both drills and mills or whatever is available"
-msgstr ""
-"Tipo de fresado:\n"
-"- Taladros -> fresará los taladros asociados con esta herramienta\n"
-"- Ranuras -> fresará las ranuras asociadas con esta herramienta\n"
-"- Ambos -> fresarán taladros y molinos o lo que esté disponible"
-
-#: flatcamGUI/ObjectUI.py:878
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:73
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:210
-#: flatcamTools/ToolFilm.py:258
-msgid "Both"
-msgstr "Ambas"
-
-#: flatcamGUI/ObjectUI.py:886
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:80
-msgid "Milling Diameter"
-msgstr "Diá. de fresado"
-
-#: flatcamGUI/ObjectUI.py:888
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:82
-msgid "The diameter of the tool who will do the milling"
-msgstr "El diámetro de la herramienta que hará el fresado"
-
-#: flatcamGUI/ObjectUI.py:902
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:95
-msgid ""
-"Drill depth (negative)\n"
-"below the copper surface."
-msgstr ""
-"Profundidad de perforación (negativo)\n"
-"debajo de la superficie de cobre."
-
-#: flatcamGUI/ObjectUI.py:921 flatcamGUI/ObjectUI.py:1724
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:113
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:68
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79
-#: flatcamTools/ToolCutOut.py:159
-msgid "Multi-Depth"
-msgstr "Profund. Múlti"
-
-#: flatcamGUI/ObjectUI.py:924 flatcamGUI/ObjectUI.py:1727
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:116
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:71
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82
-#: flatcamTools/ToolCutOut.py:162
-msgid ""
-"Use multiple passes to limit\n"
-"the cut depth in each pass. Will\n"
-"cut multiple times until Cut Z is\n"
-"reached."
-msgstr ""
-"Usa múltiples pases para limitar\n"
-"La profundidad de corte en cada pasada. Será\n"
-"cortar varias veces hasta que el Corte Z sea\n"
-"alcanzado."
-
-#: flatcamGUI/ObjectUI.py:937 flatcamGUI/ObjectUI.py:1741
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:128
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94
-#: flatcamTools/ToolCutOut.py:176
-msgid "Depth of each pass (positive)."
-msgstr "Profundidad de cada pase (positivo)."
-
-#: flatcamGUI/ObjectUI.py:948
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:136
-msgid ""
-"Tool height when travelling\n"
-"across the XY plane."
-msgstr ""
-"Altura de herramienta al viajar\n"
-"A través del plano XY."
-
-#: flatcamGUI/ObjectUI.py:969 flatcamGUI/ObjectUI.py:1771
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:187
-msgid ""
-"Cutting speed in the XY\n"
-"plane in units per minute"
-msgstr ""
-"Velocidad de corte en el XY.\n"
-"Avion en unidades por minuto"
-
-#: flatcamGUI/ObjectUI.py:984
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:209
-msgid ""
-"Tool speed while drilling\n"
-"(in units per minute).\n"
-"So called 'Plunge' feedrate.\n"
-"This is for linear move G01."
-msgstr ""
-"Velocidad de herramienta durante la perforación\n"
-"(en unidades por minuto).\n"
-"La llamada velocidad de avance 'Plunge'.\n"
-"Esto es para el movimiento lineal G01."
-
-#: flatcamGUI/ObjectUI.py:999 flatcamGUI/ObjectUI.py:1798
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:80
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:64
-msgid "Feedrate Rapids"
-msgstr "Rápidos de avance"
-
-#: flatcamGUI/ObjectUI.py:1001
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:82
-msgid ""
-"Tool speed while drilling\n"
-"(in units per minute).\n"
-"This is for the rapid move G00.\n"
-"It is useful only for Marlin,\n"
-"ignore for any other cases."
-msgstr ""
-"Velocidad de la herramienta durante la perforación\n"
-"(en unidades por minuto).\n"
-"Esto es para el movimiento rápido G00.\n"
-"Es útil solo para Marlin,\n"
-"Ignorar para cualquier otro caso."
-
-#: flatcamGUI/ObjectUI.py:1021 flatcamGUI/ObjectUI.py:1818
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:82
-msgid "Re-cut"
-msgstr "Recortar"
-
-#: flatcamGUI/ObjectUI.py:1023 flatcamGUI/ObjectUI.py:1036
-#: flatcamGUI/ObjectUI.py:1820 flatcamGUI/ObjectUI.py:1832
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:84
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:96
-msgid ""
-"In order to remove possible\n"
-"copper leftovers where first cut\n"
-"meet with last cut, we generate an\n"
-"extended cut over the first cut section."
-msgstr ""
-"Para eliminar posibles\n"
-"sobras de cobre donde el primer corte\n"
-"Nos reunimos con el último corte, generamos un\n"
-"Corte extendido sobre la primera sección de corte."
-
-#: flatcamGUI/ObjectUI.py:1049 flatcamGUI/ObjectUI.py:1841
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:216
-#: flatcamObjects/FlatCAMExcellon.py:1332
-#: flatcamObjects/FlatCAMGeometry.py:1622
-msgid "Spindle speed"
-msgstr "Eje de velocidad"
-
-#: flatcamGUI/ObjectUI.py:1051
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:224
-msgid ""
-"Speed of the spindle\n"
-"in RPM (optional)"
-msgstr ""
-"Velocidad del husillo\n"
-"en RPM (opcional)"
-
-#: flatcamGUI/ObjectUI.py:1066 flatcamGUI/ObjectUI.py:1860
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:238
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:234
-msgid ""
-"Pause to allow the spindle to reach its\n"
-"speed before cutting."
-msgstr ""
-"Pausa para permitir que el husillo alcance su\n"
-"Velocidad antes del corte."
-
-#: flatcamGUI/ObjectUI.py:1077 flatcamGUI/ObjectUI.py:1870
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:246
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:239
-msgid "Number of time units for spindle to dwell."
-msgstr "Número de unidades de tiempo para que el husillo permanezca."
-
-#: flatcamGUI/ObjectUI.py:1087
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:46
-msgid "Offset Z"
-msgstr "Offset Z"
-
-#: flatcamGUI/ObjectUI.py:1089
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:48
-msgid ""
-"Some drill bits (the larger ones) need to drill deeper\n"
-"to create the desired exit hole diameter due of the tip shape.\n"
-"The value here can compensate the Cut Z parameter."
-msgstr ""
-"Algunas brocas (las más grandes) necesitan profundizar más\n"
-"para crear el diámetro del orificio de salida deseado debido a la forma de "
-"la punta.\n"
-"El valor aquí puede compensar el parámetro Z de corte."
-
-#: flatcamGUI/ObjectUI.py:1149 flatcamGUI/ObjectUI.py:1924
-#: flatcamTools/ToolNCC.py:492 flatcamTools/ToolPaint.py:423
-msgid "Apply parameters to all tools"
-msgstr "Aplicar Parám. a todas las herramientas"
-
-#: flatcamGUI/ObjectUI.py:1151 flatcamGUI/ObjectUI.py:1926
-#: flatcamTools/ToolNCC.py:494 flatcamTools/ToolPaint.py:425
-msgid ""
-"The parameters in the current form will be applied\n"
-"on all the tools from the Tool Table."
-msgstr ""
-"Se aplicarán los parámetros en el formulario actual\n"
-"en todas las herramientas de la tabla de herramientas."
-
-#: flatcamGUI/ObjectUI.py:1162 flatcamGUI/ObjectUI.py:1937
-#: flatcamTools/ToolNCC.py:505 flatcamTools/ToolPaint.py:436
-msgid "Common Parameters"
-msgstr "Parámetros comunes"
-
-#: flatcamGUI/ObjectUI.py:1164 flatcamGUI/ObjectUI.py:1939
-#: flatcamTools/ToolNCC.py:507 flatcamTools/ToolPaint.py:438
-msgid "Parameters that are common for all tools."
-msgstr "Parámetros que son comunes para todas las herramientas."
-
-#: flatcamGUI/ObjectUI.py:1169 flatcamGUI/ObjectUI.py:1944
-msgid "Tool change Z"
-msgstr "Cambio de herra. Z"
-
-#: flatcamGUI/ObjectUI.py:1171
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:154
-msgid ""
-"Include tool-change sequence\n"
-"in G-Code (Pause for tool change)."
-msgstr ""
-"Incluir secuencia de cambio de herramienta\n"
-"en G-Code (Pausa para cambio de herramienta)."
-
-#: flatcamGUI/ObjectUI.py:1178 flatcamGUI/ObjectUI.py:1955
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:162
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:134
-msgid ""
-"Z-axis position (height) for\n"
-"tool change."
-msgstr ""
-"Posición del eje Z (altura) para\n"
-"cambio de herramienta."
-
-#: flatcamGUI/ObjectUI.py:1195
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:71
-msgid ""
-"Height of the tool just after start.\n"
-"Delete the value if you don't need this feature."
-msgstr ""
-"Altura de la herramienta justo después del arranque.\n"
-"Elimine el valor si no necesita esta característica."
-
-#: flatcamGUI/ObjectUI.py:1204 flatcamGUI/ObjectUI.py:1983
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:178
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:153
-msgid "End move Z"
-msgstr "Fin del movi. Z"
-
-#: flatcamGUI/ObjectUI.py:1206 flatcamGUI/ObjectUI.py:1985
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:180
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:155
-msgid ""
-"Height of the tool after\n"
-"the last move at the end of the job."
-msgstr ""
-"Altura de la herramienta después de\n"
-"El último movimiento al final del trabajo."
-
-#: flatcamGUI/ObjectUI.py:1223 flatcamGUI/ObjectUI.py:2002
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:195
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:173
-msgid "End move X,Y"
-msgstr "X, Y Fin del movimiento"
-
-#: flatcamGUI/ObjectUI.py:1225 flatcamGUI/ObjectUI.py:2004
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:197
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:175
-msgid ""
-"End move X,Y position. In format (x,y).\n"
-"If no value is entered then there is no move\n"
-"on X,Y plane at the end of the job."
-msgstr ""
-"Fin movimiento X, Y posición. En formato (x, y).\n"
-"Si no se ingresa ningún valor, entonces no hay movimiento\n"
-"en el plano X, Y al final del trabajo."
-
-#: flatcamGUI/ObjectUI.py:1235 flatcamGUI/ObjectUI.py:1878
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:96
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:105
-msgid "Probe Z depth"
-msgstr "Profundidad de la sonda Z"
-
-#: flatcamGUI/ObjectUI.py:1237 flatcamGUI/ObjectUI.py:1880
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:98
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:107
-msgid ""
-"The maximum depth that the probe is allowed\n"
-"to probe. Negative value, in current units."
-msgstr ""
-"The maximum depth that the probe is allowed\n"
-"to probe. Negative value, in current units."
-
-#: flatcamGUI/ObjectUI.py:1254 flatcamGUI/ObjectUI.py:1895
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:109
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:120
-msgid "Feedrate Probe"
-msgstr "Sonda de avance"
-
-#: flatcamGUI/ObjectUI.py:1256 flatcamGUI/ObjectUI.py:1897
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:111
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:122
-msgid "The feedrate used while the probe is probing."
-msgstr "La velocidad de avance utilizada mientras la sonda está sondeando."
-
-#: flatcamGUI/ObjectUI.py:1272
-msgid "Preprocessor E"
-msgstr "Postprocesador E"
-
-#: flatcamGUI/ObjectUI.py:1274
-msgid ""
-"The preprocessor JSON file that dictates\n"
-"Gcode output for Excellon Objects."
-msgstr ""
-"El archivo JSON del preprocesador que dicta\n"
-"Salida de Gcode para objetos Excellon."
-
-#: flatcamGUI/ObjectUI.py:1284
-msgid "Preprocessor G"
-msgstr "Postprocesador G"
-
-#: flatcamGUI/ObjectUI.py:1286
-msgid ""
-"The preprocessor JSON file that dictates\n"
-"Gcode output for Geometry (Milling) Objects."
-msgstr ""
-"El archivo JSON del preprocesador que dicta\n"
-"Salida de Gcode para objetos de geometría (fresado)."
-
-#: flatcamGUI/ObjectUI.py:1310 flatcamGUI/ObjectUI.py:2108
-msgid ""
-"Add / Select at least one tool in the tool-table.\n"
-"Click the # header to select all, or Ctrl + LMB\n"
-"for custom selection of tools."
-msgstr ""
-"Agregar / Seleccionar al menos una herramienta en la tabla de herramientas.\n"
-"Haga clic en el encabezado # para seleccionar todo, o Ctrl + LMB\n"
-"para la selección personalizada de herramientas."
-
-#: flatcamGUI/ObjectUI.py:1318 flatcamGUI/ObjectUI.py:2115
-msgid "Generate CNCJob object"
-msgstr "Generar objeto CNCJob"
-
-#: flatcamGUI/ObjectUI.py:1320
-msgid ""
-"Generate the CNC Job.\n"
-"If milling then an additional Geometry object will be created"
-msgstr ""
-"Generar el trabajo del CNC.\n"
-"Si se fresa, se creará un objeto Geometry adicional"
-
-#: flatcamGUI/ObjectUI.py:1337
-msgid "Milling Geometry"
-msgstr "Geometría de fresado"
-
-#: flatcamGUI/ObjectUI.py:1339
-msgid ""
-"Create Geometry for milling holes.\n"
-"Select from the Tools Table above the hole dias to be\n"
-"milled. Use the # column to make the selection."
-msgstr ""
-"Crear geometría para fresar agujeros.\n"
-"Seleccione de la tabla de herramientas sobre los diámetros de los agujeros "
-"para\n"
-"molido. Use la columna # para hacer la selección."
-
-#: flatcamGUI/ObjectUI.py:1347
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:296
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:45
-msgid "Diameter of the cutting tool."
-msgstr "Diá. de la herramienta de corte."
-
-#: flatcamGUI/ObjectUI.py:1357
-msgid "Mill Drills"
-msgstr "Fresar los Taladros"
-
-#: flatcamGUI/ObjectUI.py:1359
-msgid ""
-"Create the Geometry Object\n"
-"for milling DRILLS toolpaths."
-msgstr ""
-"Crear el objeto de geometría\n"
-"para fresar trayectorias de taladros."
-
-#: flatcamGUI/ObjectUI.py:1377
-msgid "Mill Slots"
-msgstr "Fresar las Ranuras"
-
-#: flatcamGUI/ObjectUI.py:1379
-msgid ""
-"Create the Geometry Object\n"
-"for milling SLOTS toolpaths."
-msgstr ""
-"Crear el objeto de geometría\n"
-"para fresar recorridos de herramientas muesca."
-
-#: flatcamGUI/ObjectUI.py:1421 flatcamTools/ToolCutOut.py:319
-msgid "Geometry Object"
-msgstr "Objeto de geometría"
-
-#: flatcamGUI/ObjectUI.py:1467
-msgid ""
-"Tools in this Geometry object used for cutting.\n"
-"The 'Offset' entry will set an offset for the cut.\n"
-"'Offset' can be inside, outside, on path (none) and custom.\n"
-"'Type' entry is only informative and it allow to know the \n"
-"intent of using the current tool. \n"
-"It can be Rough(ing), Finish(ing) or Iso(lation).\n"
-"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n"
-"ball(B), or V-Shaped(V). \n"
-"When V-shaped is selected the 'Type' entry is automatically \n"
-"set to Isolation, the CutZ parameter in the UI form is\n"
-"grayed out and Cut Z is automatically calculated from the newly \n"
-"showed UI form entries named V-Tip Dia and V-Tip Angle."
-msgstr ""
-"Herramientas en este objeto de geometría utilizadas para cortar.\n"
-"La entrada 'Offset' establecerá un desplazamiento para el corte.\n"
-"'Offset' puede estar dentro, fuera, en la ruta (ninguno) y personalizado.\n"
-"La entrada 'Tipo' es solo informativa y permite conocer el\n"
-"intención de usar la herramienta actual.\n"
-"Puede ser Desbaste Acabado o Aislamiento.\n"
-"El 'Tipo de herramienta' (TT) puede ser circular con 1 a 4 dientes (C1.."
-"C4),\n"
-"bola (B) o en forma de V (V).\n"
-"Cuando se selecciona la forma de V, la entrada 'Tipo' es automáticamente\n"
-"establecido en Aislamiento, el parámetro CutZ en el formulario de IU es\n"
-"atenuado y Cut Z se calcula automáticamente a partir de la nueva\n"
-"mostró entradas de formulario de IU denominadas V-Tipo Dia y V-Tipo ángulo."
-
-#: flatcamGUI/ObjectUI.py:1484 flatcamGUI/ObjectUI.py:2313
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:40
-msgid "Plot Object"
-msgstr "Trazar objeto"
-
-#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326
-#: flatcamGUI/ObjectUI.py:2336
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138
-#: flatcamTools/ToolCopperThieving.py:221
-msgid "Dia"
-msgstr "Dia"
-
-#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326
-#: flatcamTools/ToolNCC.py:132 flatcamTools/ToolPaint.py:128
-msgid "TT"
-msgstr "TT"
-
-#: flatcamGUI/ObjectUI.py:1504
-msgid ""
-"This is the Tool Number.\n"
-"When ToolChange is checked, on toolchange event this value\n"
-"will be showed as a T1, T2 ... Tn"
-msgstr ""
-"Este es el número de herramienta.\n"
-"Cuando se marca Cambio de herramienta, en el evento de cambio de herramienta "
-"este valor\n"
-"se mostrará como un T1, T2 ... Tn"
-
-#: flatcamGUI/ObjectUI.py:1515
-msgid ""
-"The value for the Offset can be:\n"
-"- Path -> There is no offset, the tool cut will be done through the geometry "
-"line.\n"
-"- In(side) -> The tool cut will follow the geometry inside. It will create a "
-"'pocket'.\n"
-"- Out(side) -> The tool cut will follow the geometry line on the outside."
-msgstr ""
-"El valor de la compensación puede ser:\n"
-"- Trayectoria -> No hay desplazamiento, el corte de la herramienta se "
-"realizará a través de la línea de geometría.\n"
-"- En (lado) -> El corte de la herramienta seguirá la geometría interior. "
-"Creará un 'bolsillo'.\n"
-"- Fuera (lado) -> El corte de la herramienta seguirá la línea de geometría "
-"en el exterior."
-
-#: flatcamGUI/ObjectUI.py:1522
-msgid ""
-"The (Operation) Type has only informative value. Usually the UI form "
-"values \n"
-"are choose based on the operation type and this will serve as a reminder.\n"
-"Can be 'Roughing', 'Finishing' or 'Isolation'.\n"
-"For Roughing we may choose a lower Feedrate and multiDepth cut.\n"
-"For Finishing we may choose a higher Feedrate, without multiDepth.\n"
-"For Isolation we need a lower Feedrate as it use a milling bit with a fine "
-"tip."
-msgstr ""
-"El tipo (Operación) solo tiene un valor informativo. Por lo general, los "
-"valores de formulario de IU\n"
-"se eligen en función del tipo de operación y esto servirá como "
-"recordatorio.\n"
-"Puede ser 'Desbaste', 'Acabado' o 'Aislamiento'.\n"
-"Para desbaste podemos elegir un avance más bajo y un corte de profundidad "
-"múltiple.\n"
-"Para finalizar podemos elegir una velocidad de avance más alta, sin "
-"profundidad múltiple.\n"
-"Para el aislamiento, necesitamos un avance más bajo, ya que utiliza una "
-"broca de fresado con una punta fina."
-
-#: flatcamGUI/ObjectUI.py:1531
-msgid ""
-"The Tool Type (TT) can be:\n"
-"- Circular with 1 ... 4 teeth -> it is informative only. Being circular the "
-"cut width in material\n"
-"is exactly the tool diameter.\n"
-"- Ball -> informative only and make reference to the Ball type endmill.\n"
-"- V-Shape -> it will disable Z-Cut parameter in the UI form and enable two "
-"additional UI form\n"
-"fields: V-Tip Dia and V-Tip Angle. Adjusting those two values will adjust "
-"the Z-Cut parameter such\n"
-"as the cut width into material will be equal with the value in the Tool "
-"Diameter column of this table.\n"
-"Choosing the V-Shape Tool Type automatically will select the Operation Type "
-"as Isolation."
-msgstr ""
-"El tipo de herramienta (TT) puede ser:\n"
-"- Circular con 1 ... 4 dientes -> es solo informativo. Siendo circular el "
-"ancho de corte en material\n"
-"es exactamente el diámetro de la herramienta.\n"
-"- Bola -> solo informativo y hacer referencia a la fresa de extremo de "
-"bola.\n"
-"- Forma de V -> deshabilitará el parámetro de corte Z de la forma de IU y "
-"habilitará dos formas adicionales de IU\n"
-"campos: V-Tip Dia y V-Tip ángulo. El ajuste de esos dos valores ajustará el "
-"parámetro Z-Cut, como\n"
-"ya que el ancho de corte en el material será igual al valor en la columna "
-"Diámetro de herramienta de esta tabla.\n"
-"Elegir el tipo de herramienta en forma de V automáticamente seleccionará el "
-"tipo de operación como aislamiento."
-
-#: flatcamGUI/ObjectUI.py:1543
-msgid ""
-"Plot column. It is visible only for MultiGeo geometries, meaning geometries "
-"that holds the geometry\n"
-"data into the tools. For those geometries, deleting the tool will delete the "
-"geometry data also,\n"
-"so be WARNED. From the checkboxes on each row it can be enabled/disabled the "
-"plot on canvas\n"
-"for the corresponding tool."
-msgstr ""
-"Trazar columna. Es visible solo para geometrías múltiples-Geo, es decir, "
-"geometrías que contienen la geometría\n"
-"datos en las herramientas. Para esas geometrías, al eliminar la herramienta "
-"también se eliminarán los datos de geometría,\n"
-"así que ten cuidado. Desde las casillas de verificación en cada fila se "
-"puede habilitar / deshabilitar la trama en el lienzo\n"
-"para la herramienta correspondiente."
-
-#: flatcamGUI/ObjectUI.py:1561
-msgid ""
-"The value to offset the cut when \n"
-"the Offset type selected is 'Offset'.\n"
-"The value can be positive for 'outside'\n"
-"cut and negative for 'inside' cut."
-msgstr ""
-"El valor para compensar el corte cuando\n"
-"El tipo de compensación seleccionado es 'Offset'.\n"
-"El valor puede ser positivo para 'afuera'\n"
-"corte y negativo para corte 'interior'."
-
-#: flatcamGUI/ObjectUI.py:1580 flatcamTools/ToolNCC.py:209
-#: flatcamTools/ToolNCC.py:923 flatcamTools/ToolPaint.py:192
-#: flatcamTools/ToolPaint.py:849 flatcamTools/ToolSolderPaste.py:559
-msgid "New Tool"
-msgstr "Nueva Herram"
-
-#: flatcamGUI/ObjectUI.py:1597
-msgid ""
-"Add a new tool to the Tool Table\n"
-"with the specified diameter."
-msgstr ""
-"Agregar una nueva herramienta a la tabla de herramientas\n"
-"con el diámetro especificado."
-
-#: flatcamGUI/ObjectUI.py:1602 flatcamTools/ToolNCC.py:300
-#: flatcamTools/ToolNCC.py:634 flatcamTools/ToolPaint.py:283
-#: flatcamTools/ToolPaint.py:679
-msgid "Add from DB"
-msgstr "Agregar desde DB"
-
-#: flatcamGUI/ObjectUI.py:1604 flatcamTools/ToolNCC.py:302
-#: flatcamTools/ToolPaint.py:285
-msgid ""
-"Add a new tool to the Tool Table\n"
-"from the Tool DataBase."
-msgstr ""
-"Agregar una nueva herramienta a la tabla de herramientas\n"
-"de la base de datos de herramientas."
-
-#: flatcamGUI/ObjectUI.py:1619
-msgid ""
-"Copy a selection of tools in the Tool Table\n"
-"by first selecting a row in the Tool Table."
-msgstr ""
-"Copie una selección de herramientas en la tabla de herramientas\n"
-"seleccionando primero una fila en la Tabla de herramientas."
-
-#: flatcamGUI/ObjectUI.py:1625
-msgid ""
-"Delete a selection of tools in the Tool Table\n"
-"by first selecting a row in the Tool Table."
-msgstr ""
-"Eliminar una selección de herramientas en la tabla de herramientas\n"
-"seleccionando primero una fila en la Tabla de herramientas."
-
-#: flatcamGUI/ObjectUI.py:1752
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:103
-msgid ""
-"Height of the tool when\n"
-"moving without cutting."
-msgstr ""
-"Altura de la herramienta cuando\n"
-"Moviéndose sin cortar."
-
-#: flatcamGUI/ObjectUI.py:1785
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:202
-msgid ""
-"Cutting speed in the XY\n"
-"plane in units per minute.\n"
-"It is called also Plunge."
-msgstr ""
-"Velocidad de corte en el XY.\n"
-"Plano en unidades por minuto.\n"
-"Se llama también Plunge."
-
-#: flatcamGUI/ObjectUI.py:1800
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:66
-msgid ""
-"Cutting speed in the XY plane\n"
-"(in units per minute).\n"
-"This is for the rapid move G00.\n"
-"It is useful only for Marlin,\n"
-"ignore for any other cases."
-msgstr ""
-"Velocidad de corte en el plano XY.\n"
-"(en unidades por minuto).\n"
-"Esto es para el movimiento rápido G00.\n"
-"Es útil solo para Marlin,\n"
-"Ignorar para cualquier otro caso."
-
-#: flatcamGUI/ObjectUI.py:1844
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:219
-msgid ""
-"Speed of the spindle in RPM (optional).\n"
-"If LASER preprocessor is used,\n"
-"this value is the power of laser."
-msgstr ""
-"Velocidad del husillo en RPM (opcional).\n"
-"Si se utiliza el postprocesador LÁSER,\n"
-"Este valor es el poder del láser."
-
-#: flatcamGUI/ObjectUI.py:1947
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:124
-msgid ""
-"Include tool-change sequence\n"
-"in the Machine Code (Pause for tool change)."
-msgstr ""
-"Incluir secuencia de cambio de herramienta\n"
-"en el código de máquina (pausa para cambio de herramienta)."
-
-#: flatcamGUI/ObjectUI.py:2016
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:256
-msgid ""
-"The Preprocessor file that dictates\n"
-"the Machine Code (like GCode, RML, HPGL) output."
-msgstr ""
-"El archivo de postprocesador que dicta\n"
-"la salida del código de máquina (como GCode, RML, HPGL)."
-
-#: flatcamGUI/ObjectUI.py:2028
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:201
-msgid "Exclusion areas"
-msgstr "Zonas de exclusión"
-
-#: flatcamGUI/ObjectUI.py:2031
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:204
-msgid ""
-"Include exclusion areas.\n"
-"In those areas the travel of the tools\n"
-"is forbidden."
-msgstr ""
-"Incluir áreas de exclusión.\n"
-"En esas áreas el recorrido de las herramientas.\n"
-"está prohibido."
-
-#: flatcamGUI/ObjectUI.py:2053
-msgid "Add area"
-msgstr "Agregar áreaAñadir Pista"
-
-#: flatcamGUI/ObjectUI.py:2054
-msgid "Add an Exclusion Area."
-msgstr "Agregar un área de exclusión."
-
-#: flatcamGUI/ObjectUI.py:2058
-msgid "Clear areas"
-msgstr "Áreas despejadasDespeje"
-
-#: flatcamGUI/ObjectUI.py:2059
-msgid "Delete all exclusion areas."
-msgstr "Eliminar todas las áreas de exclusión."
-
-#: flatcamGUI/ObjectUI.py:2068
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:212
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:322
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:286
-#: flatcamTools/ToolNCC.py:578 flatcamTools/ToolPaint.py:522
-msgid "Shape"
-msgstr "Forma"
-
-#: flatcamGUI/ObjectUI.py:2070
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:214
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:324
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:288
-#: flatcamTools/ToolNCC.py:580 flatcamTools/ToolPaint.py:524
-msgid "The kind of selection shape used for area selection."
-msgstr "El tipo de forma de selección utilizada para la selección de área."
-
-#: flatcamGUI/ObjectUI.py:2080
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:224
-msgid "Strategy"
-msgstr "Estrategia"
-
-#: flatcamGUI/ObjectUI.py:2081
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:225
-msgid ""
-"The strategy followed when encountering an exclusion area.\n"
-"Can be:\n"
-"- Over -> when encountering the area, the tool will go to a set height\n"
-"- Around -> will avoid the exclusion area by going around the area"
-msgstr ""
-"La estrategia seguida al encontrar un área de exclusión.\n"
-"Puede ser:\n"
-"- Sobre -> al encontrar el área, la herramienta irá a una altura "
-"establecida\n"
-"- Alrededor -> evitará el área de exclusión recorriendo el área"
-
-#: flatcamGUI/ObjectUI.py:2085
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:229
-msgid "Over"
-msgstr "Sobre"
-
-#: flatcamGUI/ObjectUI.py:2086
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:230
-msgid "Around"
-msgstr "AlrededorRedondo"
-
-#: flatcamGUI/ObjectUI.py:2092
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:236
-msgid "Over Z"
-msgstr "Sobre ZSuperposición"
-
-#: flatcamGUI/ObjectUI.py:2093
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:237
-msgid ""
-"The height Z to which the tool will rise in order to avoid\n"
-"an interdiction area."
-msgstr ""
-"La altura Z a la que se elevará la herramienta para evitar\n"
-"Un área de interdicción."
-
-#: flatcamGUI/ObjectUI.py:2117
-msgid "Generate the CNC Job object."
-msgstr "Genere el objeto de trabajo CNC."
-
-#: flatcamGUI/ObjectUI.py:2134
-msgid "Launch Paint Tool in Tools Tab."
-msgstr "Inicie la herramienta Pintura en la pestaña Herramientas."
-
-#: flatcamGUI/ObjectUI.py:2142
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:35
-msgid ""
-"Creates tool paths to cover the\n"
-"whole area of a polygon (remove\n"
-"all copper). You will be asked\n"
-"to click on the desired polygon."
-msgstr ""
-"Crea recorridos de herramientas para cubrir la\n"
-"toda el área de un polígono (eliminar\n"
-"todo el cobre). Te harán preguntas\n"
-"Para hacer clic en el polígono deseado."
-
-#: flatcamGUI/ObjectUI.py:2197
-msgid "CNC Job Object"
-msgstr "Objeto de trabajo CNC"
-
-#: flatcamGUI/ObjectUI.py:2208
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:45
-msgid "Plot kind"
-msgstr "Tipo de trazado"
-
-#: flatcamGUI/ObjectUI.py:2211
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:47
-msgid ""
-"This selects the kind of geometries on the canvas to plot.\n"
-"Those can be either of type 'Travel' which means the moves\n"
-"above the work piece or it can be of type 'Cut',\n"
-"which means the moves that cut into the material."
-msgstr ""
-"Esto selecciona el tipo de geometrías en el lienzo para trazar.\n"
-"Esos pueden ser de tipo 'Viajes' lo que significa que los movimientos\n"
-"Por encima de la pieza de trabajo o puede ser de tipo 'Corte',\n"
-"Lo que significa los movimientos que cortan en el material."
-
-#: flatcamGUI/ObjectUI.py:2220
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:55
-msgid "Travel"
-msgstr "Viajar"
-
-#: flatcamGUI/ObjectUI.py:2224
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:64
-msgid "Display Annotation"
-msgstr "Mostrar anotación"
-
-#: flatcamGUI/ObjectUI.py:2226
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:66
-msgid ""
-"This selects if to display text annotation on the plot.\n"
-"When checked it will display numbers in order for each end\n"
-"of a travel line."
-msgstr ""
-"Esto selecciona si mostrar la anotación de texto en el gráfico.\n"
-"Cuando está marcado, mostrará números en orden para cada final.\n"
-"de una linea de viaje."
-
-#: flatcamGUI/ObjectUI.py:2241
-msgid "Travelled dist."
-msgstr "Dist. recorrida"
-
-#: flatcamGUI/ObjectUI.py:2243 flatcamGUI/ObjectUI.py:2248
-msgid ""
-"This is the total travelled distance on X-Y plane.\n"
-"In current units."
-msgstr ""
-"Esta es la distancia total recorrida en el plano X-Y.\n"
-"En unidades actuales."
-
-#: flatcamGUI/ObjectUI.py:2253
-msgid "Estimated time"
-msgstr "Duración estimada"
-
-#: flatcamGUI/ObjectUI.py:2255 flatcamGUI/ObjectUI.py:2260
-msgid ""
-"This is the estimated time to do the routing/drilling,\n"
-"without the time spent in ToolChange events."
-msgstr ""
-"Este es el tiempo estimado para hacer el enrutamiento / perforación,\n"
-"sin el tiempo dedicado a los eventos de cambio de herramienta."
-
-#: flatcamGUI/ObjectUI.py:2295
-msgid "CNC Tools Table"
-msgstr "Tabla de herramientas CNC"
-
-#: flatcamGUI/ObjectUI.py:2298
-msgid ""
-"Tools in this CNCJob object used for cutting.\n"
-"The tool diameter is used for plotting on canvas.\n"
-"The 'Offset' entry will set an offset for the cut.\n"
-"'Offset' can be inside, outside, on path (none) and custom.\n"
-"'Type' entry is only informative and it allow to know the \n"
-"intent of using the current tool. \n"
-"It can be Rough(ing), Finish(ing) or Iso(lation).\n"
-"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n"
-"ball(B), or V-Shaped(V)."
-msgstr ""
-"Herramientas en este objeto CNCJob utilizado para cortar.\n"
-"El diámetro de la herramienta se utiliza para trazar en el lienzo.\n"
-"La entrada 'Offset' establecerá un desplazamiento para el corte.\n"
-"'Offset' puede estar dentro, fuera, en la ruta (ninguno) y personalizado.\n"
-"La entrada 'Tipo' es solo informativa y permite conocer el\n"
-"intención de usar la herramienta actual.\n"
-"Puede ser áspero, acabado o aislamiento.\n"
-"El 'Tipo de herramienta' (TT) puede ser circular con 1 a 4 dientes (C1.."
-"C4),\n"
-"bola (B) o en forma de V (V)."
-
-#: flatcamGUI/ObjectUI.py:2326 flatcamGUI/ObjectUI.py:2337
-msgid "P"
-msgstr "P"
-
-#: flatcamGUI/ObjectUI.py:2347
-msgid "Update Plot"
-msgstr "Actualizar Trama"
-
-#: flatcamGUI/ObjectUI.py:2349
-msgid "Update the plot."
-msgstr "Actualiza la trama."
-
-#: flatcamGUI/ObjectUI.py:2356
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:30
-msgid "Export CNC Code"
-msgstr "Exportar código CNC"
-
-#: flatcamGUI/ObjectUI.py:2358
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:32
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:33
-msgid ""
-"Export and save G-Code to\n"
-"make this object to a file."
-msgstr ""
-"Exportar y guardar código G a\n"
-"Hacer este objeto a un archivo."
-
-#: flatcamGUI/ObjectUI.py:2364
-msgid "Prepend to CNC Code"
-msgstr "Anteponer al código del CNC"
-
-#: flatcamGUI/ObjectUI.py:2366 flatcamGUI/ObjectUI.py:2373
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:49
-msgid ""
-"Type here any G-Code commands you would\n"
-"like to add at the beginning of the G-Code file."
-msgstr ""
-"Escribe aquí cualquier comando de G-Code que quieras\n"
-"Me gusta agregar al principio del archivo G-Code."
-
-#: flatcamGUI/ObjectUI.py:2379
-msgid "Append to CNC Code"
-msgstr "Añadir al código CNC"
-
-#: flatcamGUI/ObjectUI.py:2381 flatcamGUI/ObjectUI.py:2389
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:65
-msgid ""
-"Type here any G-Code commands you would\n"
-"like to append to the generated file.\n"
-"I.e.: M2 (End of program)"
-msgstr ""
-"Escribe aquí cualquier comando de código G que quieras\n"
-"Me gusta adjuntar al archivo generado.\n"
-"Es decir: M2 (Fin del programa)"
-
-#: flatcamGUI/ObjectUI.py:2403
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:38
-msgid "Toolchange G-Code"
-msgstr "Cambio de herra. G-Code"
-
-#: flatcamGUI/ObjectUI.py:2406
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:41
-msgid ""
-"Type here any G-Code commands you would\n"
-"like to be executed when Toolchange event is encountered.\n"
-"This will constitute a Custom Toolchange GCode,\n"
-"or a Toolchange Macro.\n"
-"The FlatCAM variables are surrounded by '%' symbol.\n"
-"\n"
-"WARNING: it can be used only with a preprocessor file\n"
-"that has 'toolchange_custom' in it's name and this is built\n"
-"having as template the 'Toolchange Custom' posprocessor file."
-msgstr ""
-"Escriba aquí cualquier comando de código G que desee\n"
-"desea ejecutarse cuando se encuentra un evento de cambio de herramienta.\n"
-"Esto constituirá un cambio de herramienta personalizado GCode,\n"
-"o una macro de cambio de herramienta.\n"
-"Las variables de FlatCAM están rodeadas por el símbolo '%'.\n"
-"\n"
-"ADVERTENCIA: solo se puede usar con un archivo de postprocesador\n"
-"que tiene 'toolchange_custom' en su nombre y esto está construido\n"
-"teniendo como plantilla el archivo posprocesador 'Toolchange Custom'."
-
-#: flatcamGUI/ObjectUI.py:2421
-msgid ""
-"Type here any G-Code commands you would\n"
-"like to be executed when Toolchange event is encountered.\n"
-"This will constitute a Custom Toolchange GCode,\n"
-"or a Toolchange Macro.\n"
-"The FlatCAM variables are surrounded by '%' symbol.\n"
-"WARNING: it can be used only with a preprocessor file\n"
-"that has 'toolchange_custom' in it's name."
-msgstr ""
-"Escriba aquí cualquier comando de código G que desee\n"
-"desea ejecutarse cuando se encuentra el evento Toolchange.\n"
-"Esto constituirá un GCode de Custom Toolchange,\n"
-"o una macro de cambio de herramienta.\n"
-"Las variables de FlatCAM están rodeadas por el símbolo '%'.\n"
-"ADVERTENCIA: solo se puede usar con un archivo de preprocesador\n"
-"que tiene 'toolchange_custom' en su nombre."
-
-#: flatcamGUI/ObjectUI.py:2436
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:80
-msgid "Use Toolchange Macro"
-msgstr "Util. la herra. de cambio de macro"
-
-#: flatcamGUI/ObjectUI.py:2438
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:82
-msgid ""
-"Check this box if you want to use\n"
-"a Custom Toolchange GCode (macro)."
-msgstr ""
-"Marque esta casilla si desea utilizar\n"
-"una herramienta personalizada para cambiar GCode (macro)."
-
-#: flatcamGUI/ObjectUI.py:2446
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:94
-msgid ""
-"A list of the FlatCAM variables that can be used\n"
-"in the Toolchange event.\n"
-"They have to be surrounded by the '%' symbol"
-msgstr ""
-"Una lista de las variables FlatCAM que pueden usarse\n"
-"en el evento Cambio de herramienta.\n"
-"Deben estar rodeados por el símbolo '%'"
-
-#: flatcamGUI/ObjectUI.py:2453
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:101
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:30
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:31
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:37
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:36
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:36
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:36
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:36
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:30
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:32
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31
-#: flatcamTools/ToolCopperThieving.py:89 flatcamTools/ToolFiducials.py:149
-#: flatcamTools/ToolInvertGerber.py:82
-msgid "Parameters"
-msgstr "Parámetros"
-
-#: flatcamGUI/ObjectUI.py:2456
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:106
-msgid "FlatCAM CNC parameters"
-msgstr "Parámetros de FlatCAM CNC"
-
-#: flatcamGUI/ObjectUI.py:2457
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:111
-msgid "tool number"
-msgstr "número de herramienta"
-
-#: flatcamGUI/ObjectUI.py:2458
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:112
-msgid "tool diameter"
-msgstr "diámetro de herramienta"
-
-#: flatcamGUI/ObjectUI.py:2459
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:113
-msgid "for Excellon, total number of drills"
-msgstr "para Excellon, núm. total de taladros"
-
-#: flatcamGUI/ObjectUI.py:2461
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:115
-msgid "X coord for Toolchange"
-msgstr "Coord. X para Cambio de Herramienta"
-
-#: flatcamGUI/ObjectUI.py:2462
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:116
-msgid "Y coord for Toolchange"
-msgstr "Coord. Y para Cambio de Herramienta"
-
-#: flatcamGUI/ObjectUI.py:2463
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:118
-msgid "Z coord for Toolchange"
-msgstr "Coord Z para cambio de herramientas"
-
-#: flatcamGUI/ObjectUI.py:2464
-msgid "depth where to cut"
-msgstr "profundidad donde cortar"
-
-#: flatcamGUI/ObjectUI.py:2465
-msgid "height where to travel"
-msgstr "altura donde viajar"
-
-#: flatcamGUI/ObjectUI.py:2466
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:121
-msgid "the step value for multidepth cut"
-msgstr "el valor del paso para corte de profundidad múltiple"
-
-#: flatcamGUI/ObjectUI.py:2468
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:123
-msgid "the value for the spindle speed"
-msgstr "el valor de la velocidad del husillo"
-
-#: flatcamGUI/ObjectUI.py:2470
-msgid "time to dwell to allow the spindle to reach it's set RPM"
-msgstr ""
-"tiempo de espera para permitir que el husillo alcance su RPM establecido"
-
-#: flatcamGUI/ObjectUI.py:2486
-msgid "View CNC Code"
-msgstr "Ver código CNC"
-
-#: flatcamGUI/ObjectUI.py:2488
-msgid ""
-"Opens TAB to view/modify/print G-Code\n"
-"file."
-msgstr ""
-"Abre la pestaña para ver / modificar / imprimir el código G\n"
-"expediente."
-
-#: flatcamGUI/ObjectUI.py:2493
-msgid "Save CNC Code"
-msgstr "Guardar código CNC"
-
-#: flatcamGUI/ObjectUI.py:2495
-msgid ""
-"Opens dialog to save G-Code\n"
-"file."
-msgstr ""
-"Abre el diálogo para guardar el código G\n"
-"expediente."
-
-#: flatcamGUI/ObjectUI.py:2529
-msgid "Script Object"
-msgstr "Objeto de script"
-
-#: flatcamGUI/ObjectUI.py:2549 flatcamGUI/ObjectUI.py:2623
-msgid "Auto Completer"
-msgstr "Autocompletador"
-
-#: flatcamGUI/ObjectUI.py:2551
-msgid "This selects if the auto completer is enabled in the Script Editor."
-msgstr ""
-"Esto selecciona si el autocompletador está habilitado en el Editor de "
-"secuencias de comandos."
-
-#: flatcamGUI/ObjectUI.py:2596
-msgid "Document Object"
-msgstr "Objeto de Documento"
-
-#: flatcamGUI/ObjectUI.py:2625
-msgid "This selects if the auto completer is enabled in the Document Editor."
-msgstr ""
-"Esto selecciona si el autocompletador está habilitado en el Editor de "
-"Documentos."
-
-#: flatcamGUI/ObjectUI.py:2643
-msgid "Font Type"
-msgstr "Tipo de Fuente"
-
-#: flatcamGUI/ObjectUI.py:2660
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:197
-msgid "Font Size"
-msgstr "Tamaño de Fuente"
-
-#: flatcamGUI/ObjectUI.py:2696
-msgid "Alignment"
-msgstr "Alineación"
-
-#: flatcamGUI/ObjectUI.py:2701
-msgid "Align Left"
-msgstr "Alinear a la izquierda"
-
-#: flatcamGUI/ObjectUI.py:2711
-msgid "Align Right"
-msgstr "Alinear a la derecha"
-
-#: flatcamGUI/ObjectUI.py:2716
-msgid "Justify"
-msgstr "Alinear Justificar"
-
-#: flatcamGUI/ObjectUI.py:2723
-msgid "Font Color"
-msgstr "Color de Fuente"
-
-#: flatcamGUI/ObjectUI.py:2725
-msgid "Set the font color for the selected text"
-msgstr "Establecer el color de fuente para el texto seleccionado"
-
-#: flatcamGUI/ObjectUI.py:2739
-msgid "Selection Color"
-msgstr "Color de seleccion"
-
-#: flatcamGUI/ObjectUI.py:2741
-msgid "Set the selection color when doing text selection."
-msgstr "Establezca el color de selección al hacer la selección de texto."
-
-#: flatcamGUI/ObjectUI.py:2755
-msgid "Tab Size"
-msgstr "Tamaño de Pestaña"
-
-#: flatcamGUI/ObjectUI.py:2757
-msgid "Set the tab size. In pixels. Default value is 80 pixels."
-msgstr ""
-"Establece el tamaño de la pestaña. En píxeles El valor predeterminado es 80 "
-"píxeles."
-
-#: flatcamGUI/PlotCanvasLegacy.py:1299
-msgid ""
-"Could not annotate due of a difference between the number of text elements "
-"and the number of text positions."
-msgstr ""
-"No se pudo anotar debido a una diferencia entre el número de elementos de "
-"texto y el número de posiciones de texto."
-
-#: flatcamGUI/preferences/PreferencesUIManager.py:911
-msgid "Preferences applied."
-msgstr "Preferencias aplicadas."
-
-#: flatcamGUI/preferences/PreferencesUIManager.py:975
-msgid "Preferences closed without saving."
-msgstr "Preferencias cerradas sin guardar."
-
-#: flatcamGUI/preferences/PreferencesUIManager.py:987
-msgid "Preferences default values are restored."
-msgstr "Se restauran los valores predeterminados de las preferencias."
-
-#: flatcamGUI/preferences/PreferencesUIManager.py:1022
-#: flatcamGUI/preferences/PreferencesUIManager.py:1131
-msgid "Preferences saved."
-msgstr "Preferencias guardadas."
-
-#: flatcamGUI/preferences/PreferencesUIManager.py:1072
-msgid "Preferences edited but not saved."
-msgstr "Preferencias editadas pero no guardadas."
-
-#: flatcamGUI/preferences/PreferencesUIManager.py:1117
-msgid ""
-"One or more values are changed.\n"
-"Do you want to save the Preferences?"
-msgstr ""
-"Uno o más valores son cambiados.\n"
-"¿Quieres guardar las preferencias?"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:27
-msgid "CNC Job Adv. Options"
-msgstr "CNCJob Adv. Opciones"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:64
-msgid ""
-"Type here any G-Code commands you would like to be executed when Toolchange "
-"event is encountered.\n"
-"This will constitute a Custom Toolchange GCode, or a Toolchange Macro.\n"
-"The FlatCAM variables are surrounded by '%' symbol.\n"
-"WARNING: it can be used only with a preprocessor file that has "
-"'toolchange_custom' in it's name."
-msgstr ""
-"Escriba aquí los comandos de G-Code que desea ejecutar cuando se encuentre "
-"el evento Toolchange.\n"
-"Esto constituirá un GCode de Custom Toolchange o una Macro de Toolchange.\n"
-"Las variables de FlatCAM están rodeadas por el símbolo '%'.\n"
-"ADVERTENCIA: solo se puede usar con un archivo de preprocesador que tenga "
-"'toolchange_custom' en su nombre."
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:119
-msgid "Z depth for the cut"
-msgstr "Profundidad Z para el corte"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:120
-msgid "Z height for travel"
-msgstr "Altura Z para viajar"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:126
-msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM"
-msgstr ""
-"dwelltime = tiempo de espera para permitir que el husillo alcance su RPM "
-"establecido"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:145
-msgid "Annotation Size"
-msgstr "Tamaño de la anotación"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:147
-msgid "The font size of the annotation text. In pixels."
-msgstr "El tamaño de fuente del texto de anotación. En píxeles."
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:157
-msgid "Annotation Color"
-msgstr "Color de anotación"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:159
-msgid "Set the font color for the annotation texts."
-msgstr "Establecer el color de fuente para los textos de anotación."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:26
-msgid "CNC Job General"
-msgstr "CNC trabajo general"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:77
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:47
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:59
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:45
-msgid "Circle Steps"
-msgstr "Pasos del círculo"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:79
-msgid ""
-"The number of circle steps for GCode \n"
-"circle and arc shapes linear approximation."
-msgstr ""
-"El número de pasos de círculo para GCode \n"
-"Círculo y arcos de aproximación lineal."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:88
-msgid "Travel dia"
-msgstr "Dia de Viaje"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:90
-msgid ""
-"The width of the travel lines to be\n"
-"rendered in the plot."
-msgstr ""
-"El ancho de las líneas de viaje a ser\n"
-"prestados en la trama."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:103
-msgid "G-code Decimals"
-msgstr "Decimales del código G"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:106
-#: flatcamTools/ToolFiducials.py:74
-msgid "Coordinates"
-msgstr "Coordenadas"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:108
-msgid ""
-"The number of decimals to be used for \n"
-"the X, Y, Z coordinates in CNC code (GCODE, etc.)"
-msgstr ""
-"El número de decimales a utilizar para\n"
-"Las coordenadas X, Y, Z en código CNC (GCODE, etc.)"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:119
-#: flatcamTools/ToolProperties.py:519
-msgid "Feedrate"
-msgstr "Avance"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:121
-msgid ""
-"The number of decimals to be used for \n"
-"the Feedrate parameter in CNC code (GCODE, etc.)"
-msgstr ""
-"El número de decimales a utilizar para\n"
-"El parámetro de avance en código CNC (GCODE, etc.)"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:132
-msgid "Coordinates type"
-msgstr "Tipo de coordenadas"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:134
-msgid ""
-"The type of coordinates to be used in Gcode.\n"
-"Can be:\n"
-"- Absolute G90 -> the reference is the origin x=0, y=0\n"
-"- Incremental G91 -> the reference is the previous position"
-msgstr ""
-"El tipo de coordenadas que se utilizarán en Gcode.\n"
-"Puede ser:\n"
-"- G90 absoluto -> la referencia es el origen x = 0, y = 0\n"
-"- Incremental G91 -> la referencia es la posición anterior"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:140
-msgid "Absolute G90"
-msgstr "Absoluto G90"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:141
-msgid "Incremental G91"
-msgstr "G91 incremental"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:151
-msgid "Force Windows style line-ending"
-msgstr "Forzar el final de línea al estilo de Windows"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:153
-msgid ""
-"When checked will force a Windows style line-ending\n"
-"(\\r\\n) on non-Windows OS's."
-msgstr ""
-"Cuando está marcado, forzará un final de línea de estilo Windows\n"
-"(\\r \\n) en sistemas operativos que no sean de Windows."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:165
-msgid "Travel Line Color"
-msgstr "Color de Línea de Viaje"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:169
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:235
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:262
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:154
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:220
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:84
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:153
-#: flatcamTools/ToolRulesCheck.py:186
-msgid "Outline"
-msgstr "Contorno"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:171
-msgid "Set the travel line color for plotted objects."
-msgstr "Establezca el color de la línea de viaje para los objetos trazados."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:186
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:252
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:279
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:170
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:237
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:170
-msgid "Fill"
-msgstr "Llenado"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:188
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:254
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:281
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:172
-msgid ""
-"Set the fill color for plotted objects.\n"
-"First 6 digits are the color and the last 2\n"
-"digits are for alpha (transparency) level."
-msgstr ""
-"Establecer el color de relleno para los objetos trazados.\n"
-"Los primeros 6 dígitos son el color y los 2 últimos.\n"
-"Los dígitos son para el nivel alfa (transparencia)."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:205
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:298
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:190
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:257
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:189
-msgid "Alpha"
-msgstr "Alfa"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:207
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:300
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:191
-msgid "Set the fill transparency for plotted objects."
-msgstr "Establecer la transparencia de relleno para los objetos trazados."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:231
-msgid "CNCJob Object Color"
-msgstr "Color de objeto CNCJob"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:237
-msgid "Set the color for plotted objects."
-msgstr "Establecer el color para los objetos trazados."
-
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:27
-msgid "CNC Job Options"
-msgstr "Opciones de trabajo CNC"
-
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:31
-msgid "Export G-Code"
-msgstr "Exportar G-Code"
-
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:47
-msgid "Prepend to G-Code"
-msgstr "Prefijo al código G"
-
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:56
-msgid ""
-"Type here any G-Code commands you would like to add at the beginning of the "
-"G-Code file."
-msgstr ""
-"Escriba aquí los comandos de G-Code que le gustaría agregar al comienzo del "
-"archivo de G-Code."
-
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:63
-msgid "Append to G-Code"
-msgstr "Adjuntar al código G"
-
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:73
-msgid ""
-"Type here any G-Code commands you would like to append to the generated "
-"file.\n"
-"I.e.: M2 (End of program)"
-msgstr ""
-"Escriba aquí los comandos de G-Code que le gustaría agregar al archivo "
-"generado.\n"
-"Por ejemplo: M2 (Fin del programa)"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:27
-msgid "Excellon Adv. Options"
-msgstr "Excellon Adv. Opciones"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:34
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:33
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:31
-msgid "Advanced Options"
-msgstr "Opciones avanzadas"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:36
-msgid ""
-"A list of Excellon advanced parameters.\n"
-"Those parameters are available only for\n"
-"Advanced App. Level."
-msgstr ""
-"Una lista de los parámetros avanzados de Excellon.\n"
-"Esos parámetros están disponibles sólo para\n"
-"Aplicación avanzada Nivel."
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:59
-msgid "Toolchange X,Y"
-msgstr "Cambio de herra X, Y"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:61
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:47
-msgid "Toolchange X,Y position."
-msgstr "Cambio de herra X, posición Y."
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:121
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:134
-msgid "Spindle direction"
-msgstr "Dirección del motor"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:123
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:136
-msgid ""
-"This sets the direction that the spindle is rotating.\n"
-"It can be either:\n"
-"- CW = clockwise or\n"
-"- CCW = counter clockwise"
-msgstr ""
-"Esto establece la dirección en que gira el husillo.\n"
-"Puede ser:\n"
-"- CW = en el sentido de las agujas del reloj o\n"
-"- CCW = a la izquierda"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:134
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:148
-msgid "Fast Plunge"
-msgstr "Salto rápido"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:136
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:150
-msgid ""
-"By checking this, the vertical move from\n"
-"Z_Toolchange to Z_move is done with G0,\n"
-"meaning the fastest speed available.\n"
-"WARNING: the move is done at Toolchange X,Y coords."
-msgstr ""
-"Al comprobar esto, el movimiento vertical de\n"
-"Z_Toolchange a Z_move se hace con G0,\n"
-"es decir, la velocidad más rápida disponible.\n"
-"ADVERTENCIA: el movimiento se realiza en Toolchange X, Y coords."
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:143
-msgid "Fast Retract"
-msgstr "Retracción rápida"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:145
-msgid ""
-"Exit hole strategy.\n"
-" - When uncheked, while exiting the drilled hole the drill bit\n"
-"will travel slow, with set feedrate (G1), up to zero depth and then\n"
-"travel as fast as possible (G0) to the Z Move (travel height).\n"
-" - When checked the travel from Z cut (cut depth) to Z_move\n"
-"(travel height) is done as fast as possible (G0) in one move."
-msgstr ""
-"Estrategia de salida del agujero.\n"
-" - Cuando no esté enganchado, al salir del orificio perforado, la broca\n"
-"viajará lento, con velocidad de avance establecida (G1), hasta una "
-"profundidad de cero y luego\n"
-"viaje lo más rápido posible (G0) al Z Move (altura de desplazamiento).\n"
-" - Cuando se verifica el recorrido desde Z corte (profundidad de corte) a "
-"Z_move\n"
-"(altura de recorrido) se realiza lo más rápido posible (G0) en un movimiento."
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:32
-msgid "A list of Excellon Editor parameters."
-msgstr "Una lista de los parámetros de Excellon Editor."
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:40
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:41
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:41
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:194
-msgid "Selection limit"
-msgstr "Límite de selección"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:42
-msgid ""
-"Set the number of selected Excellon geometry\n"
-"items above which the utility geometry\n"
-"becomes just a selection rectangle.\n"
-"Increases the performance when moving a\n"
-"large number of geometric elements."
-msgstr ""
-"Establecer el número de geometría de Excellon seleccionada\n"
-"elementos por encima de los cuales la geometría de utilidad\n"
-"se convierte en sólo un rectángulo de selección.\n"
-"Aumenta el rendimiento al mover un\n"
-"Gran cantidad de elementos geométricos."
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:55
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:117
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:123
-msgid "New Dia"
-msgstr "Nuevo dia"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:80
-msgid "Linear Drill Array"
-msgstr "Matriz de taladro lineal"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:84
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:232
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:120
-msgid "Linear Direction"
-msgstr "Direccion lineal"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:126
-msgid "Circular Drill Array"
-msgstr "Matriz de Taladro Circ"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:130
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:280
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:164
-msgid "Circular Direction"
-msgstr "Dirección circular"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:132
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:282
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:166
-msgid ""
-"Direction for circular array.\n"
-"Can be CW = clockwise or CCW = counter clockwise."
-msgstr ""
-"Dirección para matriz circular.\n"
-"Puede ser CW = en sentido horario o CCW = en sentido antihorario."
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:143
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:293
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:177
-msgid "Circular Angle"
-msgstr "Ángulo circular"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:196
-msgid ""
-"Angle at which the slot is placed.\n"
-"The precision is of max 2 decimals.\n"
-"Min value is: -359.99 degrees.\n"
-"Max value is: 360.00 degrees."
-msgstr ""
-"Ángulo en el que se coloca la ranura.\n"
-"La precisión es de un máximo de 2 decimales.\n"
-"El valor mínimo es: -359.99 grados.\n"
-"El valor máximo es: 360.00 grados."
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:215
-msgid "Linear Slot Array"
-msgstr "Matriz Lin de Ranuras"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:276
-msgid "Circular Slot Array"
-msgstr "Matriz Circ de Ranura"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:26
-msgid "Excellon Export"
-msgstr "Excellon Exportar"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:30
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:31
-msgid "Export Options"
-msgstr "Opciones de export"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:32
-msgid ""
-"The parameters set here are used in the file exported\n"
-"when using the File -> Export -> Export Excellon menu entry."
-msgstr ""
-"Los parámetros establecidos aquí se utilizan en el archivo exportado.\n"
-"cuando se utiliza la entrada de menú Archivo -> Exportar -> Exportar "
-"Excellon."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:41
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:163
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:39
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:42
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:82
-#: flatcamTools/ToolDistance.py:56 flatcamTools/ToolDistanceMin.py:50
-#: flatcamTools/ToolPcbWizard.py:127 flatcamTools/ToolProperties.py:154
-msgid "Units"
-msgstr "Unidades"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:43
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:49
-msgid "The units used in the Excellon file."
-msgstr "Las unidades utilizadas en el archivo Excellon."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:46
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:87
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:173
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:47
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:87
-#: flatcamTools/ToolCalculators.py:61 flatcamTools/ToolPcbWizard.py:125
-msgid "INCH"
-msgstr "PULGADA"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:47
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:174
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:43
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:48
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:88
-#: flatcamTools/ToolCalculators.py:62 flatcamTools/ToolPcbWizard.py:126
-msgid "MM"
-msgstr "MM"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:55
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:56
-msgid "Int/Decimals"
-msgstr "Entero/Decimales"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:57
-msgid ""
-"The NC drill files, usually named Excellon files\n"
-"are files that can be found in different formats.\n"
-"Here we set the format used when the provided\n"
-"coordinates are not using period."
-msgstr ""
-"Los archivos de exploración NC, normalmente denominados archivos Excellon\n"
-"Son archivos que se pueden encontrar en diferentes formatos.\n"
-"Aquí configuramos el formato utilizado cuando el proporcionado\n"
-"Las coordenadas no están usando el punto."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:69
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:95
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:124
-msgid ""
-"This numbers signify the number of digits in\n"
-"the whole part of Excellon coordinates."
-msgstr ""
-"Estos números significan el número de dígitos en\n"
-"Coordina toda la parte de Excellon."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:82
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:108
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:137
-msgid ""
-"This numbers signify the number of digits in\n"
-"the decimal part of Excellon coordinates."
-msgstr ""
-"Estos números significan el número de dígitos en\n"
-"La parte decimal de las coordenadas de Excellon."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:91
-msgid "Format"
-msgstr "Formato"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:93
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:103
-msgid ""
-"Select the kind of coordinates format used.\n"
-"Coordinates can be saved with decimal point or without.\n"
-"When there is no decimal point, it is required to specify\n"
-"the number of digits for integer part and the number of decimals.\n"
-"Also it will have to be specified if LZ = leading zeros are kept\n"
-"or TZ = trailing zeros are kept."
-msgstr ""
-"Seleccione el tipo de formato de coordenadas utilizado.\n"
-"Las coordenadas se pueden guardar con punto decimal o sin.\n"
-"Cuando no hay un punto decimal, se requiere especificar\n"
-"el número de dígitos para la parte entera y el número de decimales.\n"
-"También deberá especificarse si LZ = ceros iniciales se mantienen\n"
-"o TZ = ceros finales se mantienen."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:100
-msgid "Decimal"
-msgstr "Decimal"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:101
-msgid "No-Decimal"
-msgstr "Sin-Decimal"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:114
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:145
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:96
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:97
-msgid "Zeros"
-msgstr "Ceros"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:117
-msgid ""
-"This sets the type of Excellon zeros.\n"
-"If LZ then Leading Zeros are kept and\n"
-"Trailing Zeros are removed.\n"
-"If TZ is checked then Trailing Zeros are kept\n"
-"and Leading Zeros are removed."
-msgstr ""
-"Esto establece el tipo de ceros Excellon.\n"
-"Si LZ entonces Leading Zeros se mantienen y\n"
-"Se eliminan los ceros finales.\n"
-"Si se comprueba TZ, se mantienen los ceros finales.\n"
-"y Leading Zeros se eliminan."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:124
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:158
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:106
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:107
-#: flatcamTools/ToolPcbWizard.py:111
-msgid "LZ"
-msgstr "LZ"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:125
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:159
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:107
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:108
-#: flatcamTools/ToolPcbWizard.py:112
-msgid "TZ"
-msgstr "TZ"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:127
-msgid ""
-"This sets the default type of Excellon zeros.\n"
-"If LZ then Leading Zeros are kept and\n"
-"Trailing Zeros are removed.\n"
-"If TZ is checked then Trailing Zeros are kept\n"
-"and Leading Zeros are removed."
-msgstr ""
-"Esto establece el tipo predeterminado de ceros Excellon.\n"
-"Si LZ entonces los ceros iniciales se mantienen y\n"
-"Se eliminan los ceros finales.\n"
-"Si se comprueba TZ, se mantienen los ceros finales.\n"
-"y se eliminan los ceros iniciales."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:137
-msgid "Slot type"
-msgstr "Tipo de ranura"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:140
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:150
-msgid ""
-"This sets how the slots will be exported.\n"
-"If ROUTED then the slots will be routed\n"
-"using M15/M16 commands.\n"
-"If DRILLED(G85) the slots will be exported\n"
-"using the Drilled slot command (G85)."
-msgstr ""
-"Esto establece cómo se exportarán las ranuras.\n"
-"Si se enruta, las ranuras se enrutarán\n"
-"utilizando los comandos M15 / M16.\n"
-"Si PERFORADO (G85), las ranuras se exportarán\n"
-"utilizando el comando Ranura perforada (G85)."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:147
-msgid "Routed"
-msgstr "Enrutado"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:148
-msgid "Drilled(G85)"
-msgstr "Perforado (G85)"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:29
-msgid "Excellon General"
-msgstr "Excellon General"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:62
-msgid "Excellon Format"
-msgstr "Formato Excellon"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:64
-msgid ""
-"The NC drill files, usually named Excellon files\n"
-"are files that can be found in different formats.\n"
-"Here we set the format used when the provided\n"
-"coordinates are not using period.\n"
-"\n"
-"Possible presets:\n"
-"\n"
-"PROTEUS 3:3 MM LZ\n"
-"DipTrace 5:2 MM TZ\n"
-"DipTrace 4:3 MM LZ\n"
-"\n"
-"EAGLE 3:3 MM TZ\n"
-"EAGLE 4:3 MM TZ\n"
-"EAGLE 2:5 INCH TZ\n"
-"EAGLE 3:5 INCH TZ\n"
-"\n"
-"ALTIUM 2:4 INCH LZ\n"
-"Sprint Layout 2:4 INCH LZ\n"
-"KiCAD 3:5 INCH TZ"
-msgstr ""
-"Los archivos de exploración NC, normalmente denominados archivos Excellon\n"
-"Son archivos que se pueden encontrar en diferentes formatos.\n"
-"Aquí configuramos el formato utilizado cuando el proporcionado\n"
-"Las coordenadas no están usando el punto.\n"
-"\n"
-"Posibles presets:\n"
-"\n"
-"PROTEO 3: 3 MM LZ\n"
-"DipTrace 5: 2 MM TZ\n"
-"DipTrace 4: 3 MM LZ\n"
-"\n"
-"ÁGUILA 3: 3 MM TZ\n"
-"ÁGUILA 4: 3 MM TZ\n"
-"ÁGUILA 2: 5 PULGADAS TZ\n"
-"ÁGUILA 3: 5 PULGADAS TZ\n"
-"\n"
-"ALTUM 2: 4 PULGADAS LZ\n"
-"Sprint Layout 2: 4 PULGADAS LZ\n"
-"KiCAD 3: 5 PULGADAS TZ"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:88
-msgid "Default values for INCH are 2:4"
-msgstr "Los valores predeterminados para INCH son 2:4"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:116
-msgid "METRIC"
-msgstr "MÉTRICO"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:117
-msgid "Default values for METRIC are 3:3"
-msgstr "Los valores predeterminados para Métrica son 3: 3"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:148
-msgid ""
-"This sets the type of Excellon zeros.\n"
-"If LZ then Leading Zeros are kept and\n"
-"Trailing Zeros are removed.\n"
-"If TZ is checked then Trailing Zeros are kept\n"
-"and Leading Zeros are removed.\n"
-"\n"
-"This is used when there is no information\n"
-"stored in the Excellon file."
-msgstr ""
-"Esto establece el tipo de ceros Excellon.\n"
-"Si LZ entonces Leading Zeros se mantienen y\n"
-"Se eliminan los ceros finales.\n"
-"Si se comprueba TZ, se mantienen los ceros finales.\n"
-"y Leading Zeros se eliminan.\n"
-"\n"
-"Esto se usa cuando no hay información\n"
-"almacenado en el archivo Excellon."
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:166
-msgid ""
-"This sets the default units of Excellon files.\n"
-"If it is not detected in the parsed file the value here\n"
-"will be used.Some Excellon files don't have an header\n"
-"therefore this parameter will be used."
-msgstr ""
-"Esto establece las unidades predeterminadas de los archivos de Excellon.\n"
-"Si no se detecta en el archivo analizado el valor aquí\n"
-"serán utilizados. Algunos archivos de Excellon no tienen un encabezado\n"
-"por lo tanto este parámetro será utilizado."
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:176
-msgid ""
-"This sets the units of Excellon files.\n"
-"Some Excellon files don't have an header\n"
-"therefore this parameter will be used."
-msgstr ""
-"Esto establece las unidades de archivos de Excellon.\n"
-"Algunos archivos de Excellon no tienen un encabezado\n"
-"por lo tanto este parámetro será utilizado."
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:184
-msgid "Update Export settings"
-msgstr "Actualizar configuración de exportación"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:201
-msgid "Excellon Optimization"
-msgstr "Optimización Excellon"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:204
-msgid "Algorithm:"
-msgstr "Algoritmo:"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:206
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:222
-msgid ""
-"This sets the optimization type for the Excellon drill path.\n"
-"If <> is checked then Google OR-Tools algorithm with\n"
-"MetaHeuristic Guided Local Path is used. Default search time is 3sec.\n"
-"If <> is checked then Google OR-Tools Basic algorithm is used.\n"
-"If <> is checked then Travelling Salesman algorithm is used for\n"
-"drill path optimization.\n"
-"\n"
-"If this control is disabled, then FlatCAM works in 32bit mode and it uses\n"
-"Travelling Salesman algorithm for path optimization."
-msgstr ""
-"Esto establece el tipo de optimización para la ruta de perforación "
-"Excellon.\n"
-"Si <> está marcado, el algoritmo de Google OR-Tools con\n"
-"Se utiliza la ruta local guiada metaheurística. El tiempo de búsqueda "
-"predeterminado es de 3 segundos.\n"
-"Si <> está marcado, se utiliza el algoritmo básico de Google OR-"
-"Tools.\n"
-"Si se marca <>, se utiliza el algoritmo de vendedor ambulante para\n"
-"Optimización de la ruta de perforación.\n"
-"\n"
-"Si este control está desactivado, FlatCAM funciona en modo de 32 bits y "
-"utiliza\n"
-"Algoritmo de vendedor ambulante para la optimización de rutas."
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:217
-msgid "MetaHeuristic"
-msgstr "MetaHeuristic"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:218
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:104
-#: flatcamObjects/FlatCAMExcellon.py:614 flatcamObjects/FlatCAMGeometry.py:510
-#: flatcamObjects/FlatCAMGerber.py:251
-msgid "Basic"
-msgstr "BASIC"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:219
-msgid "TSA"
-msgstr "TSA"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:236
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:245
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:237
-msgid "Duration"
-msgstr "Duración"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:239
-msgid ""
-"When OR-Tools Metaheuristic (MH) is enabled there is a\n"
-"maximum threshold for how much time is spent doing the\n"
-"path optimization. This max duration is set here.\n"
-"In seconds."
-msgstr ""
-"Cuando OR-Tools Metaheuristic (MH) está habilitado, hay un\n"
-"umbral máximo de cuánto tiempo se dedica a hacer el\n"
-"Optimización del camino. Esta duración máxima se establece aquí.\n"
-"En segundos."
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:258
-msgid "Excellon Object Color"
-msgstr "Color del objeto Excellon"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:264
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:86
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:155
-msgid "Set the line color for plotted objects."
-msgstr "Establecer el color de la línea para los objetos trazados."
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:29
-msgid "Excellon Options"
-msgstr "Excellon Opciones"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:33
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:34
-msgid "Create CNC Job"
-msgstr "Crear trabajo CNC"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:35
-msgid ""
-"Parameters used to create a CNC Job object\n"
-"for this drill object."
-msgstr ""
-"Parámetros utilizados para crear un objeto de trabajo CNC\n"
-"para este objeto taladro."
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:152
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:121
-msgid "Tool change"
-msgstr "Cambio de herram"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:236
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:232
-msgid "Enable Dwell"
-msgstr "Habilitar Permanencia"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:259
-msgid ""
-"The preprocessor JSON file that dictates\n"
-"Gcode output."
-msgstr ""
-"El archivo JSON del postprocesador que dicta\n"
-"Salida de Gcode."
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:270
-msgid "Gcode"
-msgstr "Gcode"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:272
-msgid ""
-"Choose what to use for GCode generation:\n"
-"'Drills', 'Slots' or 'Both'.\n"
-"When choosing 'Slots' or 'Both', slots will be\n"
-"converted to drills."
-msgstr ""
-"Elija qué usar para la generación de GCode:\n"
-"'Taladros', 'Tragamonedas' o 'Ambos'.\n"
-"Al elegir 'Ranuras' o 'Ambos', las ranuras serán\n"
-"convertido en taladros."
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:288
-msgid "Mill Holes"
-msgstr "Agujeros de molino"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:290
-msgid "Create Geometry for milling holes."
-msgstr "Crear geometría para fresar agujeros."
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:294
-msgid "Drill Tool dia"
-msgstr "Diá de la herra. de Perfor"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:305
-msgid "Slot Tool dia"
-msgstr "Diá. de la herra. de ranura"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:307
-msgid ""
-"Diameter of the cutting tool\n"
-"when milling slots."
-msgstr ""
-"Diámetro de la herramienta de corte\n"
-"Al fresar ranuras."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:28
-msgid "App Settings"
-msgstr "Configuración de Aplicación"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:49
-msgid "Grid Settings"
-msgstr "Configuración de cuadrícula"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:53
-msgid "X value"
-msgstr "Valor X"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:55
-msgid "This is the Grid snap value on X axis."
-msgstr "Este es el valor de ajuste de cuadrícula en el eje X."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:65
-msgid "Y value"
-msgstr "Valor Y"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:67
-msgid "This is the Grid snap value on Y axis."
-msgstr "Este es el valor de ajuste de cuadrícula en el eje Y."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:77
-msgid "Snap Max"
-msgstr "Máx. de ajuste"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:92
-msgid "Workspace Settings"
-msgstr "Configuración del espacio de trabajo"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:95
-msgid "Active"
-msgstr "Activo"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:97
-msgid ""
-"Draw a delimiting rectangle on canvas.\n"
-"The purpose is to illustrate the limits for our work."
-msgstr ""
-"Dibuja un rectángulo delimitador en el lienzo.\n"
-"El propósito es ilustrar los límites de nuestro trabajo."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:105
-msgid ""
-"Select the type of rectangle to be used on canvas,\n"
-"as valid workspace."
-msgstr ""
-"Seleccione el tipo de rectángulo a utilizar en el lienzo,\n"
-"como espacio de trabajo válido."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:171
-msgid "Orientation"
-msgstr "Orientación"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:172
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:239
-#: flatcamTools/ToolFilm.py:422
-msgid ""
-"Can be:\n"
-"- Portrait\n"
-"- Landscape"
-msgstr ""
-"Puede ser:\n"
-"- retrato\n"
-"- paisaje"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:176
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:243
-#: flatcamTools/ToolFilm.py:426
-msgid "Portrait"
-msgstr "Retrato"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:177
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:244
-#: flatcamTools/ToolFilm.py:427
-msgid "Landscape"
-msgstr "Paisaje"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:201
-msgid "Notebook"
-msgstr "Cuaderno"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:203
-msgid ""
-"This sets the font size for the elements found in the Notebook.\n"
-"The notebook is the collapsible area in the left side of the GUI,\n"
-"and include the Project, Selected and Tool tabs."
-msgstr ""
-"Esto establece el tamaño de fuente para los elementos encontrados en el "
-"Cuaderno.\n"
-"El cuaderno es el área plegable en el lado izquierdo de la GUI,\n"
-"e incluye las pestañas Proyecto, Seleccionado y Herramienta."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:222
-msgid "Axis"
-msgstr "Eje"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:224
-msgid "This sets the font size for canvas axis."
-msgstr "Esto establece el tamaño de fuente para el eje del lienzo."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:241
-msgid "Textbox"
-msgstr "Caja de texto"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:243
-msgid ""
-"This sets the font size for the Textbox GUI\n"
-"elements that are used in FlatCAM."
-msgstr ""
-"Esto establece el tamaño de fuente para la GUI del cuadro de texto\n"
-"elementos que se usan en FlatCAM."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:269
-msgid "Mouse Settings"
-msgstr "Configuraciones del mouse"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:273
-msgid "Cursor Shape"
-msgstr "Forma del cursor"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:275
-msgid ""
-"Choose a mouse cursor shape.\n"
-"- Small -> with a customizable size.\n"
-"- Big -> Infinite lines"
-msgstr ""
-"Elija la forma del cursor del mouse.\n"
-"- Pequeño -> con un tamaño personalizable.\n"
-"- Grande -> Líneas infinitas"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:281
-msgid "Small"
-msgstr "Pequeño"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:282
-msgid "Big"
-msgstr "Grande"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:289
-msgid "Cursor Size"
-msgstr "Tamaño del cursor"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:291
-msgid "Set the size of the mouse cursor, in pixels."
-msgstr "Establezca el tamaño del cursor del mouse, en píxeles."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:302
-msgid "Cursor Width"
-msgstr "Ancho del cursor"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:304
-msgid "Set the line width of the mouse cursor, in pixels."
-msgstr "Establezca el ancho de línea del cursor del mouse, en píxeles."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:315
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:322
-msgid "Cursor Color"
-msgstr "Color del cursor"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:317
-msgid "Check this box to color mouse cursor."
-msgstr "Marque esta casilla para colorear el cursor del mouse."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:324
-msgid "Set the color of the mouse cursor."
-msgstr "Establece el color del cursor del mouse."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:347
-msgid "Pan Button"
-msgstr "Botón de pan"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:349
-msgid ""
-"Select the mouse button to use for panning:\n"
-"- MMB --> Middle Mouse Button\n"
-"- RMB --> Right Mouse Button"
-msgstr ""
-"Seleccione el botón del ratón para utilizarlo en la panorámica:\n"
-"- MMB -> Botón Central Del Ratón\n"
-"- RMB -> Botón derecho del ratón"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:353
-msgid "MMB"
-msgstr "MMB"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:354
-msgid "RMB"
-msgstr "RMB"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:360
-msgid "Multiple Selection"
-msgstr "Selección múltiple"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:362
-msgid "Select the key used for multiple selection."
-msgstr "Seleccione la clave utilizada para la selección múltiple."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:364
-msgid "CTRL"
-msgstr "CTRL"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:365
-msgid "SHIFT"
-msgstr "SHIFT"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:376
-msgid "Delete object confirmation"
-msgstr "Eliminar confirmación de objeto"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:378
-msgid ""
-"When checked the application will ask for user confirmation\n"
-"whenever the Delete object(s) event is triggered, either by\n"
-"menu shortcut or key shortcut."
-msgstr ""
-"Cuando esté marcada, la aplicación solicitará la confirmación del usuario\n"
-"cada vez que se desencadena el evento Eliminar objeto (s), ya sea por\n"
-"acceso directo al menú o acceso directo a teclas."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:385
-msgid "\"Open\" behavior"
-msgstr "Comportamiento \"abierto\""
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:387
-msgid ""
-"When checked the path for the last saved file is used when saving files,\n"
-"and the path for the last opened file is used when opening files.\n"
-"\n"
-"When unchecked the path for opening files is the one used last: either the\n"
-"path for saving files or the path for opening files."
-msgstr ""
-"Cuando se verifica, la ruta del último archivo guardado se usa al guardar "
-"archivos,\n"
-"y la ruta del último archivo abierto se utiliza al abrir archivos.\n"
-"\n"
-"Cuando no está marcada, la ruta para abrir archivos es la última utilizada:\n"
-"ruta para guardar archivos o la ruta para abrir archivos."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:396
-msgid "Enable ToolTips"
-msgstr "Hab. info sobre Herram"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:398
-msgid ""
-"Check this box if you want to have toolTips displayed\n"
-"when hovering with mouse over items throughout the App."
-msgstr ""
-"Marque esta casilla si desea que se muestre información sobre herramientas\n"
-"al pasar el mouse sobre los elementos de la aplicación."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:405
-msgid "Allow Machinist Unsafe Settings"
-msgstr "Permitir configuraciones inseguras de Maquinista"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:407
-msgid ""
-"If checked, some of the application settings will be allowed\n"
-"to have values that are usually unsafe to use.\n"
-"Like Z travel negative values or Z Cut positive values.\n"
-"It will applied at the next application start.\n"
-"<>: Don't change this unless you know what you are doing !!!"
-msgstr ""
-"Si está marcada, se permitirán algunas de las configuraciones de la "
-"aplicación\n"
-"tener valores que generalmente no son seguros de usar.\n"
-"Como los valores negativos de desplazamiento Z o los valores positivos de Z "
-"Cut.\n"
-"Se aplicará en el próximo inicio de la aplicación.\n"
-"<>: ¡No cambie esto a menos que sepa lo que está haciendo!"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:419
-msgid "Bookmarks limit"
-msgstr "Límite de Marcadores"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:421
-msgid ""
-"The maximum number of bookmarks that may be installed in the menu.\n"
-"The number of bookmarks in the bookmark manager may be greater\n"
-"but the menu will hold only so much."
-msgstr ""
-"El número máximo de marcadores que se pueden instalar en el menú.\n"
-"El número de marcadores en el administrador de marcadores puede ser mayor\n"
-"pero el menú solo tendrá una cantidad considerable."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:430
-msgid "Activity Icon"
-msgstr "Ícono de actividad"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:432
-msgid "Select the GIF that show activity when FlatCAM is active."
-msgstr "Seleccione el GIF que muestra actividad cuando FlatCAM está activo."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:29
-msgid "App Preferences"
-msgstr "Preferencias de la aplicación"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:40
-msgid ""
-"The default value for FlatCAM units.\n"
-"Whatever is selected here is set every time\n"
-"FlatCAM is started."
-msgstr ""
-"El valor por defecto para las unidades FlatCAM.\n"
-"Lo que se selecciona aquí se establece cada vez\n"
-"Se inicia FLatCAM."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:44
-msgid "IN"
-msgstr "IN"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:50
-msgid "Precision MM"
-msgstr "Precisión MM"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:52
-msgid ""
-"The number of decimals used throughout the application\n"
-"when the set units are in METRIC system.\n"
-"Any change here require an application restart."
-msgstr ""
-"El número de decimales utilizados en toda la aplicación.\n"
-"cuando las unidades configuradas están en el sistema METRIC.\n"
-"Cualquier cambio aquí requiere un reinicio de la aplicación."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:64
-msgid "Precision INCH"
-msgstr "Precisión PULGADA"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:66
-msgid ""
-"The number of decimals used throughout the application\n"
-"when the set units are in INCH system.\n"
-"Any change here require an application restart."
-msgstr ""
-"El número de decimales utilizados en toda la aplicación.\n"
-"cuando las unidades configuradas están en el sistema PULGADA.\n"
-"Cualquier cambio aquí requiere un reinicio de la aplicación."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:78
-msgid "Graphic Engine"
-msgstr "Motor gráfico"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:79
-msgid ""
-"Choose what graphic engine to use in FlatCAM.\n"
-"Legacy(2D) -> reduced functionality, slow performance but enhanced "
-"compatibility.\n"
-"OpenGL(3D) -> full functionality, high performance\n"
-"Some graphic cards are too old and do not work in OpenGL(3D) mode, like:\n"
-"Intel HD3000 or older. In this case the plot area will be black therefore\n"
-"use the Legacy(2D) mode."
-msgstr ""
-"Elija qué motor gráfico usar en FlatCAM.\n"
-"Legacy (2D) -> funcionalidad reducida, rendimiento lento pero compatibilidad "
-"mejorada.\n"
-"OpenGL (3D) -> funcionalidad completa, alto rendimiento\n"
-"Algunas tarjetas gráficas son demasiado viejas y no funcionan en modo OpenGL "
-"(3D), como:\n"
-"Intel HD3000 o anterior. En este caso, el área de trazado será negra, por lo "
-"tanto\n"
-"use el modo Legacy (2D)."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:85
-msgid "Legacy(2D)"
-msgstr "Legado (2D)"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:86
-msgid "OpenGL(3D)"
-msgstr "OpenGL(3D)"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:98
-msgid "APP. LEVEL"
-msgstr "Nivel de aplicación"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:99
-msgid ""
-"Choose the default level of usage for FlatCAM.\n"
-"BASIC level -> reduced functionality, best for beginner's.\n"
-"ADVANCED level -> full functionality.\n"
-"\n"
-"The choice here will influence the parameters in\n"
-"the Selected Tab for all kinds of FlatCAM objects."
-msgstr ""
-"Elija el nivel de uso predeterminado para FlatCAM.\n"
-"Nivel BÁSICO -> funcionalidad reducida, mejor para principiantes.\n"
-"Nivel AVANZADO -> Funcionalidad completa.\n"
-"\n"
-"La elección aquí influirá en los parámetros en\n"
-"La pestaña seleccionada para todo tipo de objetos FlatCAM."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:105
-#: flatcamObjects/FlatCAMExcellon.py:627 flatcamObjects/FlatCAMGeometry.py:531
-#: flatcamObjects/FlatCAMGerber.py:278
-msgid "Advanced"
-msgstr "Avanzado"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:111
-msgid "Portable app"
-msgstr "Aplicación portátil"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:112
-msgid ""
-"Choose if the application should run as portable.\n"
-"\n"
-"If Checked the application will run portable,\n"
-"which means that the preferences files will be saved\n"
-"in the application folder, in the lib\\config subfolder."
-msgstr ""
-"Elija si la aplicación debe ejecutarse como portátil.\n"
-"\n"
-"Si está marcada, la aplicación se ejecutará portátil,\n"
-"lo que significa que los archivos de preferencias se guardarán\n"
-"en la carpeta de la aplicación, en la subcarpeta lib \\ config."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:125
-msgid "Languages"
-msgstr "Idiomas"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:126
-msgid "Set the language used throughout FlatCAM."
-msgstr "Establezca el idioma utilizado en FlatCAM."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:132
-msgid "Apply Language"
-msgstr "Aplicar idioma"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:133
-msgid ""
-"Set the language used throughout FlatCAM.\n"
-"The app will restart after click."
-msgstr ""
-"Establezca el idioma utilizado en FlatCAM.\n"
-"La aplicación se reiniciará después de hacer clic."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:147
-msgid "Startup Settings"
-msgstr "Configuraciones de inicio"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:151
-msgid "Splash Screen"
-msgstr "Pantalla de bienvenida"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:153
-msgid "Enable display of the splash screen at application startup."
-msgstr ""
-"Habilite la visualización de la pantalla de inicio al iniciar la aplicación."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:165
-msgid "Sys Tray Icon"
-msgstr "Icono de la Sys Tray"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:167
-msgid "Enable display of FlatCAM icon in Sys Tray."
-msgstr ""
-"Habilite la visualización del icono de FlatCAM en la bandeja del sistema."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:172
-msgid "Show Shell"
-msgstr "Mostrar la línea de comando"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:174
-msgid ""
-"Check this box if you want the shell to\n"
-"start automatically at startup."
-msgstr ""
-"Marque esta casilla si desea que el shell\n"
-"iniciar automáticamente en el inicio."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:181
-msgid "Show Project"
-msgstr "Mostrar proyecto"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:183
-msgid ""
-"Check this box if you want the project/selected/tool tab area to\n"
-"to be shown automatically at startup."
-msgstr ""
-"Marque esta casilla si desea que el área de la pestaña del proyecto / "
-"seleccionado / herramienta\n"
-"para ser mostrado automáticamente en el inicio."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:189
-msgid "Version Check"
-msgstr "Verificación de versión"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:191
-msgid ""
-"Check this box if you want to check\n"
-"for a new version automatically at startup."
-msgstr ""
-"Marque esta casilla si desea marcar\n"
-"para una nueva versión automáticamente en el inicio."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:198
-msgid "Send Statistics"
-msgstr "Enviar estadísticas"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:200
-msgid ""
-"Check this box if you agree to send anonymous\n"
-"stats automatically at startup, to help improve FlatCAM."
-msgstr ""
-"Marque esta casilla si acepta enviar anónimo\n"
-"Estadísticas automáticamente en el inicio, para ayudar a mejorar FlatCAM."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:214
-msgid "Workers number"
-msgstr "Número de trabajadores"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:216
-msgid ""
-"The number of Qthreads made available to the App.\n"
-"A bigger number may finish the jobs more quickly but\n"
-"depending on your computer speed, may make the App\n"
-"unresponsive. Can have a value between 2 and 16.\n"
-"Default value is 2.\n"
-"After change, it will be applied at next App start."
-msgstr ""
-"El número de Qthreads disponibles para la aplicación.\n"
-"Un número más grande puede terminar los trabajos más rápidamente pero\n"
-"Dependiendo de la velocidad de su computadora, podrá realizar la "
-"aplicación.\n"
-"insensible. Puede tener un valor entre 2 y 16.\n"
-"El valor predeterminado es 2.\n"
-"Después del cambio, se aplicará en el próximo inicio de la aplicación."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:230
-msgid "Geo Tolerance"
-msgstr "Geo Tolerancia"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:232
-msgid ""
-"This value can counter the effect of the Circle Steps\n"
-"parameter. Default value is 0.005.\n"
-"A lower value will increase the detail both in image\n"
-"and in Gcode for the circles, with a higher cost in\n"
-"performance. Higher value will provide more\n"
-"performance at the expense of level of detail."
-msgstr ""
-"Este valor puede contrarrestar el efecto de los Pasos circulares\n"
-"parámetro. El valor predeterminado es 0.005.\n"
-"Un valor más bajo aumentará el detalle tanto en la imagen\n"
-"y en Gcode para los círculos, con un mayor costo en\n"
-"actuación. Un valor más alto proporcionará más\n"
-"rendimiento a expensas del nivel de detalle."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:252
-msgid "Save Settings"
-msgstr "Configuraciones para guardar"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:256
-msgid "Save Compressed Project"
-msgstr "Guardar proyecto comprimido"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:258
-msgid ""
-"Whether to save a compressed or uncompressed project.\n"
-"When checked it will save a compressed FlatCAM project."
-msgstr ""
-"Ya sea para guardar un proyecto comprimido o sin comprimir.\n"
-"Cuando esté marcado, guardará un proyecto comprimido de FlatCAM."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:267
-msgid "Compression"
-msgstr "Compresión"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:269
-msgid ""
-"The level of compression used when saving\n"
-"a FlatCAM project. Higher value means better compression\n"
-"but require more RAM usage and more processing time."
-msgstr ""
-"El nivel de compresión utilizado al guardar\n"
-"Un proyecto FlatCAM. Un valor más alto significa una mejor compresión\n"
-"pero requieren más uso de RAM y más tiempo de procesamiento."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:280
-msgid "Enable Auto Save"
-msgstr "Habilitar guardado auto"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:282
-msgid ""
-"Check to enable the autosave feature.\n"
-"When enabled, the application will try to save a project\n"
-"at the set interval."
-msgstr ""
-"Marque para habilitar la función de autoguardado.\n"
-"Cuando está habilitada, la aplicación intentará guardar un proyecto.\n"
-"en el intervalo establecido."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:292
-msgid "Interval"
-msgstr "Intervalo"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:294
-msgid ""
-"Time interval for autosaving. In milliseconds.\n"
-"The application will try to save periodically but only\n"
-"if the project was saved manually at least once.\n"
-"While active, some operations may block this feature."
-msgstr ""
-"Intervalo de tiempo para guardar automáticamente. En milisegundos\n"
-"La aplicación intentará guardar periódicamente pero solo\n"
-"si el proyecto se guardó manualmente al menos una vez.\n"
-"Mientras está activo, algunas operaciones pueden bloquear esta función."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:310
-msgid "Text to PDF parameters"
-msgstr "Parámetros de texto a PDF"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:312
-msgid "Used when saving text in Code Editor or in FlatCAM Document objects."
-msgstr ""
-"Se utiliza al guardar texto en el Editor de código o en objetos de documento "
-"FlatCAM."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:321
-msgid "Top Margin"
-msgstr "Margen superior"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:323
-msgid "Distance between text body and the top of the PDF file."
-msgstr ""
-"Distancia entre el cuerpo del texto y la parte superior del archivo PDF."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:334
-msgid "Bottom Margin"
-msgstr "Margen inferior"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:336
-msgid "Distance between text body and the bottom of the PDF file."
-msgstr ""
-"Distancia entre el cuerpo del texto y la parte inferior del archivo PDF."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:347
-msgid "Left Margin"
-msgstr "Margen izquierdo"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:349
-msgid "Distance between text body and the left of the PDF file."
-msgstr "Distancia entre el cuerpo del texto y la izquierda del archivo PDF."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:360
-msgid "Right Margin"
-msgstr "Margen derecho"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:362
-msgid "Distance between text body and the right of the PDF file."
-msgstr "Distancia entre el cuerpo del texto y la derecha del archivo PDF."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:26
-msgid "GUI Preferences"
-msgstr "Preferencias de GUI"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:36
-msgid "Theme"
-msgstr "Tema"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:38
-msgid ""
-"Select a theme for FlatCAM.\n"
-"It will theme the plot area."
-msgstr ""
-"Seleccione un tema para FlatCAM.\n"
-"Será el tema del área de la trama."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:43
-msgid "Light"
-msgstr "Ligera"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:44
-msgid "Dark"
-msgstr "Oscuro"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:51
-msgid "Use Gray Icons"
-msgstr "Use iconos grises"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:53
-msgid ""
-"Check this box to use a set of icons with\n"
-"a lighter (gray) color. To be used when a\n"
-"full dark theme is applied."
-msgstr ""
-"Marque esta casilla para usar un conjunto de iconos con\n"
-"un color más claro (gris). Para ser utilizado cuando un\n"
-"Se aplica el tema oscuro completo."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:59
-msgid "Apply Theme"
-msgstr "Aplicar tema"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:61
-msgid ""
-"Select a theme for FlatCAM.\n"
-"It will theme the plot area.\n"
-"The application will restart after change."
-msgstr ""
-"Seleccione un tema para FlatCAM.\n"
-"Tematizará el área de trazado.\n"
-"La aplicación se reiniciará después del cambio."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:73
-msgid "Layout"
-msgstr "Diseño"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:75
-msgid ""
-"Select an layout for FlatCAM.\n"
-"It is applied immediately."
-msgstr ""
-"Seleccione un diseño para FlatCAM.\n"
-"Se aplica de inmediato."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:95
-msgid "Style"
-msgstr "Estilo"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:97
-msgid ""
-"Select an style for FlatCAM.\n"
-"It will be applied at the next app start."
-msgstr ""
-"Seleccione un estilo para FlatCAM.\n"
-"Se aplicará en el próximo inicio de la aplicación."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:111
-msgid "Activate HDPI Support"
-msgstr "Activar soporte HDPI"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:113
-msgid ""
-"Enable High DPI support for FlatCAM.\n"
-"It will be applied at the next app start."
-msgstr ""
-"Habilitar el soporte de alta DPI para FlatCAM.\n"
-"Se aplicará en el próximo inicio de la aplicación."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:127
-msgid "Display Hover Shape"
-msgstr "Mostrar forma de desplazamiento"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:129
-msgid ""
-"Enable display of a hover shape for FlatCAM objects.\n"
-"It is displayed whenever the mouse cursor is hovering\n"
-"over any kind of not-selected object."
-msgstr ""
-"Habilitar la visualización de una forma flotante para objetos FlatCAM.\n"
-"Se muestra cada vez que el cursor del mouse se desplaza\n"
-"sobre cualquier tipo de objeto no seleccionado."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:136
-msgid "Display Selection Shape"
-msgstr "Mostrar forma de selección"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:138
-msgid ""
-"Enable the display of a selection shape for FlatCAM objects.\n"
-"It is displayed whenever the mouse selects an object\n"
-"either by clicking or dragging mouse from left to right or\n"
-"right to left."
-msgstr ""
-"Habilitar la visualización de una forma de selección para objetos FlatCAM.\n"
-"Se muestra cada vez que el ratón selecciona un objeto.\n"
-"ya sea haciendo clic o arrastrando el mouse de izquierda a derecha o\n"
-"De derecha a izquierda."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:151
-msgid "Left-Right Selection Color"
-msgstr "Color de selección izquierda-derecha"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:156
-msgid "Set the line color for the 'left to right' selection box."
-msgstr ""
-"Establezca el color de línea para el cuadro de selección 'de izquierda a "
-"derecha'."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:172
-msgid ""
-"Set the fill color for the selection box\n"
-"in case that the selection is done from left to right.\n"
-"First 6 digits are the color and the last 2\n"
-"digits are for alpha (transparency) level."
-msgstr ""
-"Establecer el color de relleno para el cuadro de selección\n"
-"En caso de que la selección se realice de izquierda a derecha.\n"
-"Los primeros 6 dígitos son el color y los 2 últimos.\n"
-"Los dígitos son para el nivel alfa (transparencia)."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:192
-msgid "Set the fill transparency for the 'left to right' selection box."
-msgstr ""
-"Establezca la transparencia de relleno para el cuadro de selección 'de "
-"izquierda a derecha'."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:216
-msgid "Right-Left Selection Color"
-msgstr "Color de selección derecha-izquierda"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:222
-msgid "Set the line color for the 'right to left' selection box."
-msgstr ""
-"Establezca el color de línea para el cuadro de selección 'de derecha a "
-"izquierda'."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:239
-msgid ""
-"Set the fill color for the selection box\n"
-"in case that the selection is done from right to left.\n"
-"First 6 digits are the color and the last 2\n"
-"digits are for alpha (transparency) level."
-msgstr ""
-"Establecer el color de relleno para el cuadro de selección\n"
-"En caso de que la selección se realice de derecha a izquierda.\n"
-"Los primeros 6 dígitos son el color y los 2 últimos.\n"
-"Los dígitos son para el nivel alfa (transparencia)."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:259
-msgid "Set the fill transparency for selection 'right to left' box."
-msgstr ""
-"Establezca la transparencia de relleno para el cuadro de selección \"de "
-"derecha a izquierda\"."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:286
-msgid "Editor Color"
-msgstr "Color del editor"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:290
-msgid "Drawing"
-msgstr "Dibujo"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:292
-msgid "Set the color for the shape."
-msgstr "Establecer el color de la forma."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:309
-msgid "Set the color of the shape when selected."
-msgstr "Establecer el color de la forma cuando se selecciona."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:332
-msgid "Project Items Color"
-msgstr "Color de los elementos del proyecto"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:336
-msgid "Enabled"
-msgstr "Habilitado"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:338
-msgid "Set the color of the items in Project Tab Tree."
-msgstr ""
-"Establecer el color de los elementos en el árbol de pestañas del proyecto."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:352
-msgid "Disabled"
-msgstr "Discapacitado"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:354
-msgid ""
-"Set the color of the items in Project Tab Tree,\n"
-"for the case when the items are disabled."
-msgstr ""
-"Establecer el color de los elementos en el árbol de pestañas del proyecto,\n"
-"para el caso cuando los elementos están deshabilitados."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:370
-msgid "Project AutoHide"
-msgstr "Proyecto auto ocultar"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:372
-msgid ""
-"Check this box if you want the project/selected/tool tab area to\n"
-"hide automatically when there are no objects loaded and\n"
-"to show whenever a new object is created."
-msgstr ""
-"Marque esta casilla si desea que el área de la pestaña del proyecto / "
-"seleccionado / herramienta\n"
-"Se oculta automáticamente cuando no hay objetos cargados y\n"
-"para mostrar cada vez que se crea un nuevo objeto."
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:27
-msgid "Geometry Adv. Options"
-msgstr "Geometría Adv. Opciones"
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:35
-msgid ""
-"A list of Geometry advanced parameters.\n"
-"Those parameters are available only for\n"
-"Advanced App. Level."
-msgstr ""
-"Una lista de los parámetros avanzados de Geometría.\n"
-"Esos parámetros están disponibles sólo para\n"
-"Aplicación avanzada Nivel."
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:45
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:112
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:134
-#: flatcamTools/ToolCalibration.py:125 flatcamTools/ToolSolderPaste.py:240
-msgid "Toolchange X-Y"
-msgstr "Cambio de herra X, Y"
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:56
-msgid ""
-"Height of the tool just after starting the work.\n"
-"Delete the value if you don't need this feature."
-msgstr ""
-"Altura de la herramienta justo después de comenzar el trabajo.\n"
-"Elimine el valor si no necesita esta característica."
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:158
-msgid "Segment X size"
-msgstr "Tamaño del Seg. X"
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:160
-msgid ""
-"The size of the trace segment on the X axis.\n"
-"Useful for auto-leveling.\n"
-"A value of 0 means no segmentation on the X axis."
-msgstr ""
-"El tamaño del segmento traza en el eje X.\n"
-"Útil para la autonivelación.\n"
-"Un valor de 0 significa que no hay segmentación en el eje X."
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:174
-msgid "Segment Y size"
-msgstr "Tamaño del Seg. Y"
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:176
-msgid ""
-"The size of the trace segment on the Y axis.\n"
-"Useful for auto-leveling.\n"
-"A value of 0 means no segmentation on the Y axis."
-msgstr ""
-"El tamaño del segmento traza en el eje Y.\n"
-"Útil para la autonivelación.\n"
-"Un valor de 0 significa que no hay segmentación en el eje Y."
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:192
-msgid "Area Exclusion"
-msgstr "Exclusión de áreaSelección de área"
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:194
-msgid ""
-"Area exclusion parameters.\n"
-"Those parameters are available only for\n"
-"Advanced App. Level."
-msgstr ""
-"Parámetros de exclusión de área.\n"
-"Esos parámetros están disponibles solo para\n"
-"Aplicación avanzada Nivel."
-
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:33
-msgid "A list of Geometry Editor parameters."
-msgstr "Una lista de parámetros del editor de geometría."
-
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:43
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:196
-msgid ""
-"Set the number of selected geometry\n"
-"items above which the utility geometry\n"
-"becomes just a selection rectangle.\n"
-"Increases the performance when moving a\n"
-"large number of geometric elements."
-msgstr ""
-"Establecer el número de geometría seleccionada\n"
-"elementos por encima de los cuales la geometría de utilidad\n"
-"se convierte en sólo un rectángulo de selección.\n"
-"Aumenta el rendimiento al mover un\n"
-"Gran cantidad de elementos geométricos."
-
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:27
-msgid "Geometry General"
-msgstr "Geometría General"
-
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:49
-msgid ""
-"The number of circle steps for Geometry \n"
-"circle and arc shapes linear approximation."
-msgstr ""
-"El número de pasos de círculo para Geometría\n"
-"Círculo y arcos de aproximación lineal."
-
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:63
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:41
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:48
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:42
-msgid "Tools Dia"
-msgstr "Diá. de Herram"
-
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:65
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:108
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:43
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:50
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:44
-msgid ""
-"Diameters of the tools, separated by comma.\n"
-"The value of the diameter has to use the dot decimals separator.\n"
-"Valid values: 0.3, 1.0"
-msgstr ""
-"Diámetros de las herramientas, separados por comas.\n"
-"El valor del diámetro tiene que usar el separador de decimales de punto.\n"
-"Valores válidos: 0.3, 1.0"
-
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:80
-msgid "Geometry Object Color"
-msgstr "Color del objeto de Geometría"
-
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:28
-msgid "Geometry Options"
-msgstr "Opc. de geometría"
-
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:36
-msgid ""
-"Create a CNC Job object\n"
-"tracing the contours of this\n"
-"Geometry object."
-msgstr ""
-"Crear un objeto de trabajo CNC\n"
-"trazando los contornos de este\n"
-"Objeto de geometría."
-
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:80
-msgid "Depth/Pass"
-msgstr "Profund. / Pase"
-
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:82
-msgid ""
-"The depth to cut on each pass,\n"
-"when multidepth is enabled.\n"
-"It has positive value although\n"
-"it is a fraction from the depth\n"
-"which has negative value."
-msgstr ""
-"La profundidad a cortar en cada pasada,\n"
-"cuando está habilitado multidepto.\n"
-"Tiene valor positivo aunque\n"
-"Es una fracción de la profundidad.\n"
-"que tiene valor negativo."
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:27
-msgid "Gerber Adv. Options"
-msgstr "Opciones avan. de Gerber"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:33
-msgid ""
-"A list of Gerber advanced parameters.\n"
-"Those parameters are available only for\n"
-"Advanced App. Level."
-msgstr ""
-"Una lista de los parámetros avanzados de Gerber.\n"
-"Esos parámetros están disponibles sólo para\n"
-"Aplicación avanzada Nivel."
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:52
-msgid "Table Show/Hide"
-msgstr "Mostrar / ocultar tabla"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:54
-msgid ""
-"Toggle the display of the Gerber Apertures Table.\n"
-"Also, on hide, it will delete all mark shapes\n"
-"that are drawn on canvas."
-msgstr ""
-"Activa o desactiva la visualización de la tabla de aperturas de Gerber.\n"
-"Además, en hide, borrará todas las formas de marca.\n"
-"que se dibujan sobre lienzo."
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:134
-msgid "Exterior"
-msgstr "Exterior"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:135
-msgid "Interior"
-msgstr "Interior"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:148
-msgid ""
-"Buffering type:\n"
-"- None --> best performance, fast file loading but no so good display\n"
-"- Full --> slow file loading but good visuals. This is the default.\n"
-"<>: Don't change this unless you know what you are doing !!!"
-msgstr ""
-"Tipo de almacenamiento en búfer:\n"
-"- Ninguno -> mejor rendimiento, carga rápida de archivos pero no tan buena "
-"visualización\n"
-"- Completo -> carga lenta de archivos pero buenas imágenes. Este es el valor "
-"predeterminado.\n"
-"<>: ¡No cambie esto a menos que sepa lo que está haciendo!"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:153
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:207
-#: flatcamTools/ToolFiducials.py:201 flatcamTools/ToolFilm.py:255
-#: flatcamTools/ToolProperties.py:452 flatcamTools/ToolProperties.py:455
-#: flatcamTools/ToolProperties.py:458 flatcamTools/ToolProperties.py:483
-msgid "None"
-msgstr "Ninguno"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:159
-msgid "Simplify"
-msgstr "Simplificar"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:161
-msgid ""
-"When checked all the Gerber polygons will be\n"
-"loaded with simplification having a set tolerance.\n"
-"<>: Don't change this unless you know what you are doing !!!"
-msgstr ""
-"Cuando esté marcado, todos los polígonos de Gerber serán\n"
-"cargado de simplificación con una tolerancia establecida.\n"
-"<>: ¡No cambie esto a menos que sepa lo que está haciendo!"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:168
-msgid "Tolerance"
-msgstr "Tolerancia"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:169
-msgid "Tolerance for polygon simplification."
-msgstr "Tolerancia para la simplificación de polígonos."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:33
-msgid "A list of Gerber Editor parameters."
-msgstr "Una lista de los parámetros del editor Gerber."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:43
-msgid ""
-"Set the number of selected Gerber geometry\n"
-"items above which the utility geometry\n"
-"becomes just a selection rectangle.\n"
-"Increases the performance when moving a\n"
-"large number of geometric elements."
-msgstr ""
-"Establecer el número de geometría seleccionada de Gerber\n"
-"elementos por encima de los cuales la geometría de utilidad\n"
-"se convierte en sólo un rectángulo de selección.\n"
-"Aumenta el rendimiento al mover un\n"
-"Gran cantidad de elementos geométricos."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:56
-msgid "New Aperture code"
-msgstr "Nuevo Código de Aper"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:69
-msgid "New Aperture size"
-msgstr "Nuevo Tamaño de Aper"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:71
-msgid "Size for the new aperture"
-msgstr "Tamaño para la Nueva Aper"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:82
-msgid "New Aperture type"
-msgstr "Nuevo Tipo de Aper"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:84
-msgid ""
-"Type for the new aperture.\n"
-"Can be 'C', 'R' or 'O'."
-msgstr ""
-"Escriba para la nueva apertura.\n"
-"Puede ser 'C', 'R' u 'O'."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:106
-msgid "Aperture Dimensions"
-msgstr "Dim. de apertura"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:116
-msgid "Linear Pad Array"
-msgstr "Matriz lineal de Almohadilla"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:160
-msgid "Circular Pad Array"
-msgstr "Matriz de Almohadilla Circ"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:196
-msgid "Distance at which to buffer the Gerber element."
-msgstr "Distancia a la que buffer el elemento Gerber."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:205
-msgid "Scale Tool"
-msgstr "Herramienta de escala"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:211
-msgid "Factor to scale the Gerber element."
-msgstr "Factoriza para escalar el elemento Gerber."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:224
-msgid "Threshold low"
-msgstr "Umbral bajo"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:226
-msgid "Threshold value under which the apertures are not marked."
-msgstr "Valor de umbral por debajo del cual las aberturas no están marcadas."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:236
-msgid "Threshold high"
-msgstr "Umbral alto"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:238
-msgid "Threshold value over which the apertures are not marked."
-msgstr "Valor umbral sobre el cual las aberturas no están marcadas."
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:27
-msgid "Gerber Export"
-msgstr "Gerber Export"
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:33
-msgid ""
-"The parameters set here are used in the file exported\n"
-"when using the File -> Export -> Export Gerber menu entry."
-msgstr ""
-"Los parámetros establecidos aquí se utilizan en el archivo exportado.\n"
-"cuando se usa la entrada de menú Archivo -> Exportar -> Exportar Gerber."
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:44
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:50
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:84
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:90
-msgid "The units used in the Gerber file."
-msgstr "Las unidades utilizadas en el archivo Gerber."
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:58
-msgid ""
-"The number of digits in the whole part of the number\n"
-"and in the fractional part of the number."
-msgstr ""
-"El número de dígitos en la parte entera del número.\n"
-"y en la parte fraccionaria del número."
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:71
-msgid ""
-"This numbers signify the number of digits in\n"
-"the whole part of Gerber coordinates."
-msgstr ""
-"Estos números significan el número de dígitos en\n"
-"Toda la parte de Gerber coordina."
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:87
-msgid ""
-"This numbers signify the number of digits in\n"
-"the decimal part of Gerber coordinates."
-msgstr ""
-"Estos números significan el número de dígitos en\n"
-"La parte decimal de las coordenadas de gerber."
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:99
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:109
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:100
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:110
-msgid ""
-"This sets the type of Gerber zeros.\n"
-"If LZ then Leading Zeros are removed and\n"
-"Trailing Zeros are kept.\n"
-"If TZ is checked then Trailing Zeros are removed\n"
-"and Leading Zeros are kept."
-msgstr ""
-"Esto establece el tipo de ceros Gerber.\n"
-"Si LZ entonces los ceros iniciales se eliminan y\n"
-"Se guardan los ceros que se arrastran.\n"
-"Si se comprueba TZ, se eliminan los ceros finales\n"
-"y Leading Zeros se mantienen."
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:27
-msgid "Gerber General"
-msgstr "Gerber General"
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:45
-msgid "M-Color"
-msgstr "M-Color"
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:61
-msgid ""
-"The number of circle steps for Gerber \n"
-"circular aperture linear approximation."
-msgstr ""
-"El número de pasos de círculo para Gerber\n"
-"Apertura circular de aproximación lineal."
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:73
-msgid "Default Values"
-msgstr "Valores predeterminados"
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:75
-msgid ""
-"Those values will be used as fallback values\n"
-"in case that they are not found in the Gerber file."
-msgstr ""
-"Esos valores se usarán como valores de reserva\n"
-"en caso de que no se encuentren en el archivo Gerber."
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:126
-msgid "Clean Apertures"
-msgstr "Aberturas limpias"
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:128
-msgid ""
-"Will remove apertures that do not have geometry\n"
-"thus lowering the number of apertures in the Gerber object."
-msgstr ""
-"Eliminará las aberturas que no tengan geometría\n"
-"bajando así el número de aberturas en el objeto Gerber."
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:134
-msgid "Polarity change buffer"
-msgstr "Cambio de polaridad buffer"
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:136
-msgid ""
-"Will apply extra buffering for the\n"
-"solid geometry when we have polarity changes.\n"
-"May help loading Gerber files that otherwise\n"
-"do not load correctly."
-msgstr ""
-"Aplicará buffering adicional para el\n"
-"geometría sólida cuando tenemos cambios de polaridad.\n"
-"Puede ayudar a cargar archivos Gerber que de otra manera\n"
-"No cargar correctamente."
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:149
-msgid "Gerber Object Color"
-msgstr "Color de objeto Gerber"
-
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:29
-msgid "Gerber Options"
-msgstr "Opciones de gerber"
-
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:107
-msgid "Combine Passes"
-msgstr "Combinar pases"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:27
-msgid "Copper Thieving Tool Options"
-msgstr "Opc. de Herram. de Copper Thieving"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:39
-msgid ""
-"A tool to generate a Copper Thieving that can be added\n"
-"to a selected Gerber file."
-msgstr ""
-"Una herramienta para generar un ladrón de cobre que se puede agregar\n"
-"a un archivo Gerber seleccionado."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:47
-msgid "Number of steps (lines) used to interpolate circles."
-msgstr "Número de pasos (líneas) utilizados para interpolar círculos."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261
-#: flatcamTools/ToolCopperThieving.py:96 flatcamTools/ToolCopperThieving.py:431
-msgid "Clearance"
-msgstr "Despeje"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:59
-msgid ""
-"This set the distance between the copper Thieving components\n"
-"(the polygon fill may be split in multiple polygons)\n"
-"and the copper traces in the Gerber file."
-msgstr ""
-"Esto establece la distancia entre los componentes de Copper Thieving\n"
-"(el relleno de polígono puede dividirse en múltiples polígonos)\n"
-"y las huellas de cobre en el archivo Gerber."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
-#: flatcamTools/ToolCopperThieving.py:126 flatcamTools/ToolNCC.py:535
-#: flatcamTools/ToolNCC.py:1316 flatcamTools/ToolNCC.py:1647
-#: flatcamTools/ToolNCC.py:1935 flatcamTools/ToolNCC.py:1990
-#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:946
-#: flatcamTools/ToolPaint.py:1452
-msgid "Area Selection"
-msgstr "Selección de área"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
-#: flatcamTools/ToolCopperThieving.py:127 flatcamTools/ToolDblSided.py:216
-#: flatcamTools/ToolNCC.py:535 flatcamTools/ToolNCC.py:1663
-#: flatcamTools/ToolNCC.py:1941 flatcamTools/ToolNCC.py:1998
-#: flatcamTools/ToolNCC.py:2306 flatcamTools/ToolNCC.py:2586
-#: flatcamTools/ToolNCC.py:3012 flatcamTools/ToolPaint.py:486
-#: flatcamTools/ToolPaint.py:931 flatcamTools/ToolPaint.py:1468
-#: tclCommands/TclCommandCopperClear.py:192 tclCommands/TclCommandPaint.py:166
-msgid "Reference Object"
-msgstr "Objeto de referencia"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90
-#: flatcamTools/ToolCopperThieving.py:129
-msgid "Reference:"
-msgstr "Referencia:"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92
-msgid ""
-"- 'Itself' - the copper Thieving extent is based on the object extent.\n"
-"- 'Area Selection' - left mouse click to start selection of the area to be "
-"filled.\n"
-"- 'Reference Object' - will do copper thieving within the area specified by "
-"another object."
-msgstr ""
-"- 'Sí mismo': la extensión de Copper Thieving se basa en la extensión del "
-"objeto.\n"
-"- 'Selección de área': haga clic con el botón izquierdo del mouse para "
-"iniciar la selección del área a rellenar.\n"
-"- 'Objeto de referencia': robará cobre dentro del área especificada por otro "
-"objeto."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:76
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190
-#: flatcamTools/ToolCopperThieving.py:171 flatcamTools/ToolExtractDrills.py:102
-#: flatcamTools/ToolExtractDrills.py:240 flatcamTools/ToolPunchGerber.py:113
-#: flatcamTools/ToolPunchGerber.py:268
-msgid "Rectangular"
-msgstr "Rectangular"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102
-#: flatcamTools/ToolCopperThieving.py:172
-msgid "Minimal"
-msgstr "Mínimo"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104
-#: flatcamTools/ToolCopperThieving.py:174 flatcamTools/ToolFilm.py:113
-msgid "Box Type:"
-msgstr "Tipo de cercado:"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106
-#: flatcamTools/ToolCopperThieving.py:176
-msgid ""
-"- 'Rectangular' - the bounding box will be of rectangular shape.\n"
-"- 'Minimal' - the bounding box will be the convex hull shape."
-msgstr ""
-"- 'Rectangular': el cuadro delimitador tendrá forma rectangular.\n"
-"- 'Mínimo': el cuadro delimitador tendrá forma de casco convexo."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120
-#: flatcamTools/ToolCopperThieving.py:192
-msgid "Dots Grid"
-msgstr "Cuadrícula de puntos"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121
-#: flatcamTools/ToolCopperThieving.py:193
-msgid "Squares Grid"
-msgstr "Cuadrícula de cuadrados"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122
-#: flatcamTools/ToolCopperThieving.py:194
-msgid "Lines Grid"
-msgstr "Cuadrícula de líneas"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124
-#: flatcamTools/ToolCopperThieving.py:196
-msgid "Fill Type:"
-msgstr "Tipo de relleno:"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126
-#: flatcamTools/ToolCopperThieving.py:198
-msgid ""
-"- 'Solid' - copper thieving will be a solid polygon.\n"
-"- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n"
-"- 'Squares Grid' - the empty area will be filled with a pattern of squares.\n"
-"- 'Lines Grid' - the empty area will be filled with a pattern of lines."
-msgstr ""
-"- 'Sólido': el robo de cobre será un polígono sólido.\n"
-"- 'Cuadrícula de puntos': el área vacía se rellenará con un patrón de "
-"puntos.\n"
-"- 'Cuadrícula de cuadrados': el área vacía se rellenará con un patrón de "
-"cuadrados.\n"
-"- 'Cuadrícula de líneas': el área vacía se rellenará con un patrón de líneas."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134
-#: flatcamTools/ToolCopperThieving.py:217
-msgid "Dots Grid Parameters"
-msgstr "Parámetros de cuadrícula de puntos"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140
-#: flatcamTools/ToolCopperThieving.py:223
-msgid "Dot diameter in Dots Grid."
-msgstr "Diámetro de punto en cuadrícula de puntos."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209
-#: flatcamTools/ToolCopperThieving.py:234
-#: flatcamTools/ToolCopperThieving.py:274
-#: flatcamTools/ToolCopperThieving.py:314
-msgid "Spacing"
-msgstr "Spacing"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153
-#: flatcamTools/ToolCopperThieving.py:236
-msgid "Distance between each two dots in Dots Grid."
-msgstr "Distancia entre cada dos puntos en la cuadrícula de puntos."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163
-#: flatcamTools/ToolCopperThieving.py:257
-msgid "Squares Grid Parameters"
-msgstr "Parámetros de la cuadrícula de cuadrados"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169
-#: flatcamTools/ToolCopperThieving.py:263
-msgid "Square side size in Squares Grid."
-msgstr "Tamaño del lado cuadrado en cuadrícula de cuadrados."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182
-#: flatcamTools/ToolCopperThieving.py:276
-msgid "Distance between each two squares in Squares Grid."
-msgstr "Distancia entre cada dos cuadrados en la cuadrícula de cuadrados."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192
-#: flatcamTools/ToolCopperThieving.py:297
-msgid "Lines Grid Parameters"
-msgstr "Parámetros de cuadrícula de líneas"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198
-#: flatcamTools/ToolCopperThieving.py:303
-msgid "Line thickness size in Lines Grid."
-msgstr "Tamaño del grosor de línea en la cuadrícula de líneas."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211
-#: flatcamTools/ToolCopperThieving.py:316
-msgid "Distance between each two lines in Lines Grid."
-msgstr "Distancia entre cada dos líneas en la cuadrícula de líneas."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221
-#: flatcamTools/ToolCopperThieving.py:354
-msgid "Robber Bar Parameters"
-msgstr "Parámetros de la Robber Bar"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223
-#: flatcamTools/ToolCopperThieving.py:356
-msgid ""
-"Parameters used for the robber bar.\n"
-"Robber bar = copper border to help in pattern hole plating."
-msgstr ""
-"Parámetros utilizados para la Robber Bar.\n"
-"Robber Bar = borde de cobre para ayudar en el enchapado de agujeros."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231
-#: flatcamTools/ToolCopperThieving.py:364
-msgid "Bounding box margin for robber bar."
-msgstr "Margen límite del recinto para Robber Bar."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242
-#: flatcamTools/ToolCopperThieving.py:375
-msgid "Thickness"
-msgstr "Espesor"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244
-#: flatcamTools/ToolCopperThieving.py:377
-msgid "The robber bar thickness."
-msgstr "El grosor de la Robber Bar."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254
-#: flatcamTools/ToolCopperThieving.py:408
-msgid "Pattern Plating Mask"
-msgstr "Máscara de baño de patrones"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256
-#: flatcamTools/ToolCopperThieving.py:410
-msgid "Generate a mask for pattern plating."
-msgstr "Genere una máscara para el enchapado de patrones."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263
-#: flatcamTools/ToolCopperThieving.py:433
-msgid ""
-"The distance between the possible copper thieving elements\n"
-"and/or robber bar and the actual openings in the mask."
-msgstr ""
-"La distancia entre los posibles elementos de Copper Thieving.\n"
-"y / o Robber Bar y las aberturas reales en la máscara."
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:27
-msgid "Calibration Tool Options"
-msgstr "Opc. de Herram. de Calibración"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:38
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:38
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38
-#: flatcamTools/ToolCopperThieving.py:91 flatcamTools/ToolFiducials.py:151
-msgid "Parameters used for this tool."
-msgstr "Parámetros utilizados para esta herramienta."
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:43
-#: flatcamTools/ToolCalibration.py:181
-msgid "Source Type"
-msgstr "Tipo de Fuente"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:44
-#: flatcamTools/ToolCalibration.py:182
-msgid ""
-"The source of calibration points.\n"
-"It can be:\n"
-"- Object -> click a hole geo for Excellon or a pad for Gerber\n"
-"- Free -> click freely on canvas to acquire the calibration points"
-msgstr ""
-"La fuente de los puntos de calibración.\n"
-"Puede ser:\n"
-"- Objeto -> haga clic en un agujero geo para Excellon o una almohadilla para "
-"Gerber\n"
-"- Libre -> haga clic libremente en el lienzo para adquirir los puntos de "
-"calibración"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:49
-#: flatcamTools/ToolCalibration.py:187
-msgid "Free"
-msgstr "Libre"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:63
-#: flatcamTools/ToolCalibration.py:76
-msgid "Height (Z) for travelling between the points."
-msgstr "Altura (Z) para viajar entre los puntos."
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:75
-#: flatcamTools/ToolCalibration.py:88
-msgid "Verification Z"
-msgstr "Verificación Z"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:77
-#: flatcamTools/ToolCalibration.py:90
-msgid "Height (Z) for checking the point."
-msgstr "Altura (Z) para verificar el punto."
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:89
-#: flatcamTools/ToolCalibration.py:102
-msgid "Zero Z tool"
-msgstr "Cero la Z para Herram."
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:91
-#: flatcamTools/ToolCalibration.py:104
-msgid ""
-"Include a sequence to zero the height (Z)\n"
-"of the verification tool."
-msgstr ""
-"Incluya una secuencia para poner a cero la altura (Z)\n"
-"de la herramienta de verificación."
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:100
-#: flatcamTools/ToolCalibration.py:113
-msgid "Height (Z) for mounting the verification probe."
-msgstr "Altura (Z) para montar la sonda de verificación."
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:114
-#: flatcamTools/ToolCalibration.py:127
-msgid ""
-"Toolchange X,Y position.\n"
-"If no value is entered then the current\n"
-"(x, y) point will be used,"
-msgstr ""
-"Posición de cambio de herramienta X, Y.\n"
-"Si no se ingresa ningún valor, entonces el actual\n"
-"(x, y) se utilizará el punto,"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:125
-#: flatcamTools/ToolCalibration.py:153
-msgid "Second point"
-msgstr "Segundo punto"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:127
-#: flatcamTools/ToolCalibration.py:155
-msgid ""
-"Second point in the Gcode verification can be:\n"
-"- top-left -> the user will align the PCB vertically\n"
-"- bottom-right -> the user will align the PCB horizontally"
-msgstr ""
-"El segundo punto en la verificación de Gcode puede ser:\n"
-"- arriba a la izquierda -> el usuario alineará la PCB verticalmente\n"
-"- abajo a la derecha -> el usuario alineará la PCB horizontalmente"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:27
-msgid "Extract Drills Options"
-msgstr "Opciones de Extracción de Taladros"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42
-#: flatcamTools/ToolExtractDrills.py:68 flatcamTools/ToolPunchGerber.py:75
-msgid "Processed Pads Type"
-msgstr "Tipo de almohadillas procesadas"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44
-#: flatcamTools/ToolExtractDrills.py:70 flatcamTools/ToolPunchGerber.py:77
-msgid ""
-"The type of pads shape to be processed.\n"
-"If the PCB has many SMD pads with rectangular pads,\n"
-"disable the Rectangular aperture."
-msgstr ""
-"El tipo de forma de almohadillas que se procesará.\n"
-"Si la PCB tiene muchas almohadillas SMD con almohadillas rectangulares,\n"
-"deshabilitar la apertura rectangular."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54
-#: flatcamTools/ToolExtractDrills.py:80 flatcamTools/ToolPunchGerber.py:91
-msgid "Process Circular Pads."
-msgstr "Proceso de Almohadillas Circulares."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:60
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164
-#: flatcamTools/ToolExtractDrills.py:86 flatcamTools/ToolExtractDrills.py:214
-#: flatcamTools/ToolPunchGerber.py:97 flatcamTools/ToolPunchGerber.py:242
-msgid "Oblong"
-msgstr "Oblongo"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62
-#: flatcamTools/ToolExtractDrills.py:88 flatcamTools/ToolPunchGerber.py:99
-msgid "Process Oblong Pads."
-msgstr "Procesar almohadillas oblongas."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70
-#: flatcamTools/ToolExtractDrills.py:96 flatcamTools/ToolPunchGerber.py:107
-msgid "Process Square Pads."
-msgstr "Procesar almohadillas cuadradas."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78
-#: flatcamTools/ToolExtractDrills.py:104 flatcamTools/ToolPunchGerber.py:115
-msgid "Process Rectangular Pads."
-msgstr "Proceso Almohadillas Rectangulares."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:84
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203
-#: flatcamTools/ToolExtractDrills.py:110 flatcamTools/ToolExtractDrills.py:253
-#: flatcamTools/ToolProperties.py:172 flatcamTools/ToolPunchGerber.py:121
-#: flatcamTools/ToolPunchGerber.py:281
-msgid "Others"
-msgstr "Otros"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86
-#: flatcamTools/ToolExtractDrills.py:112 flatcamTools/ToolPunchGerber.py:123
-msgid "Process pads not in the categories above."
-msgstr "Procese los pads no en las categorías anteriores."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:99
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125
-#: flatcamTools/ToolExtractDrills.py:139 flatcamTools/ToolExtractDrills.py:156
-#: flatcamTools/ToolPunchGerber.py:150 flatcamTools/ToolPunchGerber.py:184
-msgid "Fixed Diameter"
-msgstr "Diámetro fijo"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:100
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142
-#: flatcamTools/ToolExtractDrills.py:140 flatcamTools/ToolExtractDrills.py:192
-#: flatcamTools/ToolPunchGerber.py:151 flatcamTools/ToolPunchGerber.py:214
-msgid "Fixed Annular Ring"
-msgstr "Anillo anular fijo"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102
-#: flatcamTools/ToolExtractDrills.py:141 flatcamTools/ToolPunchGerber.py:152
-msgid "Proportional"
-msgstr "Proporcional"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107
-#: flatcamTools/ToolExtractDrills.py:130
-msgid ""
-"The method for processing pads. Can be:\n"
-"- Fixed Diameter -> all holes will have a set size\n"
-"- Fixed Annular Ring -> all holes will have a set annular ring\n"
-"- Proportional -> each hole size will be a fraction of the pad size"
-msgstr ""
-"El método para procesar almohadillas. Puede ser:\n"
-"- Diámetro fijo -> todos los agujeros tendrán un tamaño establecido\n"
-"- Anillo anular fijo -> todos los agujeros tendrán un anillo anular "
-"establecido\n"
-"- Proporcional -> cada tamaño de agujero será una fracción del tamaño de la "
-"almohadilla"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135
-#: flatcamTools/ToolExtractDrills.py:166 flatcamTools/ToolPunchGerber.py:194
-msgid "Fixed hole diameter."
-msgstr "Diámetro fijo del agujero."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:142
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144
-#: flatcamTools/ToolExtractDrills.py:194 flatcamTools/ToolPunchGerber.py:216
-msgid ""
-"The size of annular ring.\n"
-"The copper sliver between the hole exterior\n"
-"and the margin of the copper pad."
-msgstr ""
-"El tamaño del anillo anular.\n"
-"La astilla de cobre entre el exterior del agujero\n"
-"y el margen de la almohadilla de cobre."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153
-#: flatcamTools/ToolExtractDrills.py:203 flatcamTools/ToolPunchGerber.py:231
-msgid "The size of annular ring for circular pads."
-msgstr "El tamaño del anillo anular para almohadillas circulares."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:164
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:166
-#: flatcamTools/ToolExtractDrills.py:216 flatcamTools/ToolPunchGerber.py:244
-msgid "The size of annular ring for oblong pads."
-msgstr "El tamaño del anillo anular para almohadillas oblongas."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:177
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:179
-#: flatcamTools/ToolExtractDrills.py:229 flatcamTools/ToolPunchGerber.py:257
-msgid "The size of annular ring for square pads."
-msgstr "El tamaño del anillo anular para almohadillas cuadradas."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:190
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:192
-#: flatcamTools/ToolExtractDrills.py:242 flatcamTools/ToolPunchGerber.py:270
-msgid "The size of annular ring for rectangular pads."
-msgstr "El tamaño del anillo anular para almohadillas rectangulares."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:203
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:205
-#: flatcamTools/ToolExtractDrills.py:255 flatcamTools/ToolPunchGerber.py:283
-msgid "The size of annular ring for other pads."
-msgstr "El tamaño del anillo anular para otras almohadillas."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:213
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:215
-#: flatcamTools/ToolExtractDrills.py:276 flatcamTools/ToolPunchGerber.py:299
-msgid "Proportional Diameter"
-msgstr "Diá. proporcional"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:222
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:224
-msgid "Factor"
-msgstr "Factor"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226
-#: flatcamTools/ToolExtractDrills.py:287 flatcamTools/ToolPunchGerber.py:310
-msgid ""
-"Proportional Diameter.\n"
-"The hole diameter will be a fraction of the pad size."
-msgstr ""
-"Diámetro proporcional.\n"
-"El diámetro del agujero será una fracción del tamaño de la almohadilla."
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:27
-msgid "Fiducials Tool Options"
-msgstr "Opc. de Herram. Fiduciales"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45
-#: flatcamTools/ToolFiducials.py:158
-msgid ""
-"This set the fiducial diameter if fiducial type is circular,\n"
-"otherwise is the size of the fiducial.\n"
-"The soldermask opening is double than that."
-msgstr ""
-"Esto establece el diámetro fiducial si el tipo fiducial es circular,\n"
-"de lo contrario es el tamaño del fiducial.\n"
-"La apertura de la máscara de soldadura es el doble que eso."
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73
-#: flatcamTools/ToolFiducials.py:186
-msgid "Auto"
-msgstr "Auto"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74
-#: flatcamTools/ToolFiducials.py:187
-msgid "Manual"
-msgstr "Manual"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76
-#: flatcamTools/ToolFiducials.py:189
-msgid "Mode:"
-msgstr "Modo:"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:78
-msgid ""
-"- 'Auto' - automatic placement of fiducials in the corners of the bounding "
-"box.\n"
-"- 'Manual' - manual placement of fiducials."
-msgstr ""
-"- 'Auto' - colocación automática de fiduciales en las esquinas del cuadro "
-"delimitador.\n"
-"- 'Manual' - colocación manual de fiduciales."
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86
-#: flatcamTools/ToolFiducials.py:199
-msgid "Up"
-msgstr "Arriba"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87
-#: flatcamTools/ToolFiducials.py:200
-msgid "Down"
-msgstr "Abajo"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90
-#: flatcamTools/ToolFiducials.py:203
-msgid "Second fiducial"
-msgstr "Segundo fiducial"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92
-#: flatcamTools/ToolFiducials.py:205
-msgid ""
-"The position for the second fiducial.\n"
-"- 'Up' - the order is: bottom-left, top-left, top-right.\n"
-"- 'Down' - the order is: bottom-left, bottom-right, top-right.\n"
-"- 'None' - there is no second fiducial. The order is: bottom-left, top-right."
-msgstr ""
-"La posición para el segundo fiducial.\n"
-"- 'Arriba' - el orden es: abajo a la izquierda, arriba a la izquierda, "
-"arriba a la derecha.\n"
-"- 'Abajo' - el orden es: abajo a la izquierda, abajo a la derecha, arriba a "
-"la derecha.\n"
-"- 'Ninguno' - no hay un segundo fiducial. El orden es: abajo a la izquierda, "
-"arriba a la derecha."
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108
-#: flatcamTools/ToolFiducials.py:221
-msgid "Cross"
-msgstr "Cruce"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109
-#: flatcamTools/ToolFiducials.py:222
-msgid "Chess"
-msgstr "Ajedrez"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112
-#: flatcamTools/ToolFiducials.py:224
-msgid "Fiducial Type"
-msgstr "Tipo fiducial"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114
-#: flatcamTools/ToolFiducials.py:226
-msgid ""
-"The type of fiducial.\n"
-"- 'Circular' - this is the regular fiducial.\n"
-"- 'Cross' - cross lines fiducial.\n"
-"- 'Chess' - chess pattern fiducial."
-msgstr ""
-"El tipo de fiducial.\n"
-"- 'Circular': este es el fiducial regular.\n"
-"- 'Cruce' - líneas cruzadas fiduciales.\n"
-"- 'Ajedrez' - patrón de ajedrez fiducial."
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123
-#: flatcamTools/ToolFiducials.py:235
-msgid "Line thickness"
-msgstr "Grosor de la línea"
-
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:27
-msgid "Invert Gerber Tool Options"
-msgstr "Opciones de la herram. Invertir Gerber"
-
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:33
-msgid ""
-"A tool to invert Gerber geometry from positive to negative\n"
-"and in revers."
-msgstr ""
-"Una herramienta para invertir la geometría de Gerber de positivo a negativo\n"
-"y a la inversa."
-
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:47
-#: flatcamTools/ToolInvertGerber.py:90
-msgid ""
-"Distance by which to avoid\n"
-"the edges of the Gerber object."
-msgstr ""
-"Distancia por la cual evitar\n"
-"Los bordes del objeto Gerber."
-
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:58
-#: flatcamTools/ToolInvertGerber.py:101
-msgid "Lines Join Style"
-msgstr "Estilo de unión de líneas"
-
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:60
-#: flatcamTools/ToolInvertGerber.py:103
-msgid ""
-"The way that the lines in the object outline will be joined.\n"
-"Can be:\n"
-"- rounded -> an arc is added between two joining lines\n"
-"- square -> the lines meet in 90 degrees angle\n"
-"- bevel -> the lines are joined by a third line"
-msgstr ""
-"La forma en que se unirán las líneas en el contorno del objeto.\n"
-"Puede ser:\n"
-"- redondeado -> se agrega un arco entre dos líneas de unión\n"
-"- cuadrado -> las líneas se encuentran en un ángulo de 90 grados\n"
-"- bisel -> las líneas están unidas por una tercera línea"
-
-#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:27
-msgid "Optimal Tool Options"
-msgstr "Opciones de Herram. Óptimas"
-
-#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:33
-msgid ""
-"A tool to find the minimum distance between\n"
-"every two Gerber geometric elements"
-msgstr ""
-"Una herramienta para encontrar la distancia mínima entre\n"
-"cada dos elementos geométricos de Gerber"
-
-#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:48
-#: flatcamTools/ToolOptimal.py:78
-msgid "Precision"
-msgstr "Precisión"
-
-#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:50
-msgid "Number of decimals for the distances and coordinates in this tool."
-msgstr ""
-"Número de decimales para las distancias y coordenadas en esta herramienta."
-
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:27
-msgid "Punch Gerber Options"
-msgstr "Opciones de Perforadora Gerber"
-
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:108
-#: flatcamTools/ToolPunchGerber.py:141
-msgid ""
-"The punch hole source can be:\n"
-"- Excellon Object-> the Excellon object drills center will serve as "
-"reference.\n"
-"- Fixed Diameter -> will try to use the pads center as reference adding "
-"fixed diameter holes.\n"
-"- Fixed Annular Ring -> will try to keep a set annular ring.\n"
-"- Proportional -> will make a Gerber punch hole having the diameter a "
-"percentage of the pad diameter."
-msgstr ""
-"La fuente del orificio de perforación puede ser:\n"
-"- Objeto Excellon-> el centro de perforación de objetos Excellon servirá "
-"como referencia.\n"
-"- Diámetro fijo -> intentará usar el centro de las almohadillas como "
-"referencia agregando agujeros de diámetro fijo.\n"
-"- Anillo anular fijo -> intentará mantener un anillo anular establecido.\n"
-"- Proporcional -> hará un orificio de perforación Gerber con un diámetro del "
-"porcentaje del diámetro de la almohadilla."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:27
-msgid "QRCode Tool Options"
-msgstr "Opciones de la herram. QRCode"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:33
-msgid ""
-"A tool to create a QRCode that can be inserted\n"
-"into a selected Gerber file, or it can be exported as a file."
-msgstr ""
-"Una herramienta para crear un QRCode que se puede insertar\n"
-"en un archivo Gerber seleccionado, o puede exportarse como un archivo."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45
-#: flatcamTools/ToolQRCode.py:100
-msgid "Version"
-msgstr "Versión"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47
-#: flatcamTools/ToolQRCode.py:102
-msgid ""
-"QRCode version can have values from 1 (21x21 boxes)\n"
-"to 40 (177x177 boxes)."
-msgstr ""
-"La versión de QRCode puede tener valores de 1 (21x21 elementos)\n"
-"a 40 (177x177 elementos)."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58
-#: flatcamTools/ToolQRCode.py:113
-msgid "Error correction"
-msgstr "Corrección de error"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71
-#: flatcamTools/ToolQRCode.py:115 flatcamTools/ToolQRCode.py:126
-#, python-format
-msgid ""
-"Parameter that controls the error correction used for the QR Code.\n"
-"L = maximum 7%% errors can be corrected\n"
-"M = maximum 15%% errors can be corrected\n"
-"Q = maximum 25%% errors can be corrected\n"
-"H = maximum 30%% errors can be corrected."
-msgstr ""
-"Parámetro que controla la corrección de errores utilizada para el código "
-"QR.\n"
-"L = máximo 7 %% de errores pueden ser corregidos\n"
-"M = máximo 15%% de errores pueden ser corregidos\n"
-"Q = se puede corregir un máximo de 25%% de errores\n"
-"H = máximo 30 %% de errores pueden ser corregidos."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81
-#: flatcamTools/ToolQRCode.py:136
-msgid "Box Size"
-msgstr "Tamaño de Elementos"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83
-#: flatcamTools/ToolQRCode.py:138
-msgid ""
-"Box size control the overall size of the QRcode\n"
-"by adjusting the size of each box in the code."
-msgstr ""
-"El tamaño del elemento controla el tamaño general del código QR\n"
-"ajustando el tamaño de cada cuadro en el código."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94
-#: flatcamTools/ToolQRCode.py:149
-msgid "Border Size"
-msgstr "Tamaño de borde"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96
-#: flatcamTools/ToolQRCode.py:151
-msgid ""
-"Size of the QRCode border. How many boxes thick is the border.\n"
-"Default value is 4. The width of the clearance around the QRCode."
-msgstr ""
-"Tamaño del borde del código QR. Cuántos elementos tiene el borde.\n"
-"El valor predeterminado es 4. El ancho del espacio libre alrededor del "
-"Código QR."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107
-#: flatcamTools/ToolQRCode.py:162
-msgid "QRCode Data"
-msgstr "Datos de QRCode"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109
-#: flatcamTools/ToolQRCode.py:164
-msgid "QRCode Data. Alphanumeric text to be encoded in the QRCode."
-msgstr "Datos de QRCode. Texto alfanumérico a codificar en el Código QR."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:113
-#: flatcamTools/ToolQRCode.py:168
-msgid "Add here the text to be included in the QRCode..."
-msgstr "Agregue aquí el texto que se incluirá en el QRCode ..."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:119
-#: flatcamTools/ToolQRCode.py:174
-msgid "Polarity"
-msgstr "Polaridad"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121
-#: flatcamTools/ToolQRCode.py:176
-msgid ""
-"Choose the polarity of the QRCode.\n"
-"It can be drawn in a negative way (squares are clear)\n"
-"or in a positive way (squares are opaque)."
-msgstr ""
-"Elija la polaridad del código QR.\n"
-"Se puede dibujar de forma negativa (los cuadrados son claros)\n"
-"o de manera positiva (los cuadrados son opacos)."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125
-#: flatcamTools/ToolFilm.py:296 flatcamTools/ToolQRCode.py:180
-msgid "Negative"
-msgstr "Negativa"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126
-#: flatcamTools/ToolFilm.py:295 flatcamTools/ToolQRCode.py:181
-msgid "Positive"
-msgstr "Positivo"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128
-#: flatcamTools/ToolQRCode.py:183
-msgid ""
-"Choose the type of QRCode to be created.\n"
-"If added on a Silkscreen Gerber file the QRCode may\n"
-"be added as positive. If it is added to a Copper Gerber\n"
-"file then perhaps the QRCode can be added as negative."
-msgstr ""
-"Elija el tipo de QRCode que se creará.\n"
-"Si se agrega en un archivo de Silkscreen Gerber, el QRCode puede\n"
-"ser agregado como positivo Si se agrega a un cobre Gerber\n"
-"entonces quizás el QRCode se pueda agregar como negativo."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145
-#: flatcamTools/ToolQRCode.py:194 flatcamTools/ToolQRCode.py:200
-msgid ""
-"The bounding box, meaning the empty space that surrounds\n"
-"the QRCode geometry, can have a rounded or a square shape."
-msgstr ""
-"El cuadro delimitador, que significa el espacio vacío que rodea\n"
-"La geometría QRCode, puede tener una forma redondeada o cuadrada."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:239
-#: flatcamTools/ToolQRCode.py:197 flatcamTools/ToolTransform.py:383
-msgid "Rounded"
-msgstr "Redondeado"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152
-#: flatcamTools/ToolQRCode.py:228
-msgid "Fill Color"
-msgstr "Color de relleno"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154
-#: flatcamTools/ToolQRCode.py:230
-msgid "Set the QRCode fill color (squares color)."
-msgstr ""
-"Establezca el color de relleno del código QR (color de cuadrados / "
-"elementos)."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:173
-#: flatcamTools/ToolQRCode.py:252
-msgid "Back Color"
-msgstr "Color de fondo"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:175
-#: flatcamTools/ToolQRCode.py:254
-msgid "Set the QRCode background color."
-msgstr "Establece el color de fondo del QRCode."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:27
-msgid "Check Rules Tool Options"
-msgstr "Opciones de la Herram. Verifique Reglas"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:32
-msgid ""
-"A tool to check if Gerber files are within a set\n"
-"of Manufacturing Rules."
-msgstr ""
-"Una herramienta para verificar si los archivos de Gerber están dentro de un "
-"conjunto\n"
-"de las normas de fabricación."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:42
-#: flatcamTools/ToolRulesCheck.py:265 flatcamTools/ToolRulesCheck.py:929
-msgid "Trace Size"
-msgstr "Tamaño de traza"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:44
-#: flatcamTools/ToolRulesCheck.py:267
-msgid "This checks if the minimum size for traces is met."
-msgstr "Esto comprueba si se cumple el tamaño mínimo para las trazas."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:54
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:74
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:94
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:114
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:134
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:154
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:174
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:194
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:216
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:236
-#: flatcamTools/ToolRulesCheck.py:277 flatcamTools/ToolRulesCheck.py:299
-#: flatcamTools/ToolRulesCheck.py:322 flatcamTools/ToolRulesCheck.py:345
-#: flatcamTools/ToolRulesCheck.py:368 flatcamTools/ToolRulesCheck.py:391
-#: flatcamTools/ToolRulesCheck.py:414 flatcamTools/ToolRulesCheck.py:437
-#: flatcamTools/ToolRulesCheck.py:462 flatcamTools/ToolRulesCheck.py:485
-msgid "Min value"
-msgstr "Valor mínimo"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:56
-#: flatcamTools/ToolRulesCheck.py:279
-msgid "Minimum acceptable trace size."
-msgstr "Tamaño de traza mínimo aceptable."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:61
-#: flatcamTools/ToolRulesCheck.py:286 flatcamTools/ToolRulesCheck.py:1157
-#: flatcamTools/ToolRulesCheck.py:1187
-msgid "Copper to Copper clearance"
-msgstr "Distancia de Cobre a Cobre"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:63
-#: flatcamTools/ToolRulesCheck.py:288
-msgid ""
-"This checks if the minimum clearance between copper\n"
-"features is met."
-msgstr ""
-"Esto comprueba si la distancia mínima entre cobre\n"
-"huellas se cumplen."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:76
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:96
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:116
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:136
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:156
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:176
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:238
-#: flatcamTools/ToolRulesCheck.py:301 flatcamTools/ToolRulesCheck.py:324
-#: flatcamTools/ToolRulesCheck.py:347 flatcamTools/ToolRulesCheck.py:370
-#: flatcamTools/ToolRulesCheck.py:393 flatcamTools/ToolRulesCheck.py:416
-#: flatcamTools/ToolRulesCheck.py:464
-msgid "Minimum acceptable clearance value."
-msgstr "Valor mínimo de distancia aceptable."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:81
-#: flatcamTools/ToolRulesCheck.py:309 flatcamTools/ToolRulesCheck.py:1217
-#: flatcamTools/ToolRulesCheck.py:1223 flatcamTools/ToolRulesCheck.py:1236
-#: flatcamTools/ToolRulesCheck.py:1243
-msgid "Copper to Outline clearance"
-msgstr "Distancia de Cobre a Contorno"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:83
-#: flatcamTools/ToolRulesCheck.py:311
-msgid ""
-"This checks if the minimum clearance between copper\n"
-"features and the outline is met."
-msgstr ""
-"Esto comprueba si la distancia mínima entre cobre\n"
-"huellas y el esquema se cumple."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:101
-#: flatcamTools/ToolRulesCheck.py:332
-msgid "Silk to Silk Clearance"
-msgstr "Distancia de Serigrafía a Serigrafía"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:103
-#: flatcamTools/ToolRulesCheck.py:334
-msgid ""
-"This checks if the minimum clearance between silkscreen\n"
-"features and silkscreen features is met."
-msgstr ""
-"Esto comprueba si la distancia mínima entre serigrafía\n"
-"huellas y huellas de serigrafía se cumplen."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:121
-#: flatcamTools/ToolRulesCheck.py:355 flatcamTools/ToolRulesCheck.py:1326
-#: flatcamTools/ToolRulesCheck.py:1332 flatcamTools/ToolRulesCheck.py:1350
-msgid "Silk to Solder Mask Clearance"
-msgstr "Serigrafía para Soldar Máscara Distancia"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:123
-#: flatcamTools/ToolRulesCheck.py:357
-msgid ""
-"This checks if the minimum clearance between silkscreen\n"
-"features and soldermask features is met."
-msgstr ""
-"Esto comprueba si la distancia mínima entre serigrafía\n"
-"Traces y soldermask traces se cumplen."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:141
-#: flatcamTools/ToolRulesCheck.py:378 flatcamTools/ToolRulesCheck.py:1380
-#: flatcamTools/ToolRulesCheck.py:1386 flatcamTools/ToolRulesCheck.py:1400
-#: flatcamTools/ToolRulesCheck.py:1407
-msgid "Silk to Outline Clearance"
-msgstr "Serigrafía para Contorno Distancia"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:143
-#: flatcamTools/ToolRulesCheck.py:380
-msgid ""
-"This checks if the minimum clearance between silk\n"
-"features and the outline is met."
-msgstr ""
-"Esto verifica si el espacio libre mínimo entre la serigrafía\n"
-"huellas y el contorno se cumple."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:161
-#: flatcamTools/ToolRulesCheck.py:401 flatcamTools/ToolRulesCheck.py:1418
-#: flatcamTools/ToolRulesCheck.py:1445
-msgid "Minimum Solder Mask Sliver"
-msgstr "Astilla de máscara de soldadura mínima"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:163
-#: flatcamTools/ToolRulesCheck.py:403
-msgid ""
-"This checks if the minimum clearance between soldermask\n"
-"features and soldermask features is met."
-msgstr ""
-"Esto verifica si la distancia mínima entre la máscara de soldadura\n"
-"rastros y rastros de máscara de soldadura se cumplen."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:181
-#: flatcamTools/ToolRulesCheck.py:424 flatcamTools/ToolRulesCheck.py:1483
-#: flatcamTools/ToolRulesCheck.py:1489 flatcamTools/ToolRulesCheck.py:1505
-#: flatcamTools/ToolRulesCheck.py:1512
-msgid "Minimum Annular Ring"
-msgstr "Anillo anular mínimo"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:183
-#: flatcamTools/ToolRulesCheck.py:426
-msgid ""
-"This checks if the minimum copper ring left by drilling\n"
-"a hole into a pad is met."
-msgstr ""
-"Esto verifica si queda el anillo de cobre mínimo al perforar\n"
-"Se encuentra un agujero en una almohadilla."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:196
-#: flatcamTools/ToolRulesCheck.py:439
-msgid "Minimum acceptable ring value."
-msgstr "Valor mínimo aceptable del anillo."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:203
-#: flatcamTools/ToolRulesCheck.py:449 flatcamTools/ToolRulesCheck.py:873
-msgid "Hole to Hole Clearance"
-msgstr "Distancia entre Agujeros"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:205
-#: flatcamTools/ToolRulesCheck.py:451
-msgid ""
-"This checks if the minimum clearance between a drill hole\n"
-"and another drill hole is met."
-msgstr ""
-"Esto verifica si la distancia mínima entre un taladro\n"
-"y se encuentra otro taladro."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:218
-#: flatcamTools/ToolRulesCheck.py:487
-msgid "Minimum acceptable drill size."
-msgstr "Tamaño mínimo aceptable de perforación."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:223
-#: flatcamTools/ToolRulesCheck.py:472 flatcamTools/ToolRulesCheck.py:847
-msgid "Hole Size"
-msgstr "Tamaño del Agujero"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:225
-#: flatcamTools/ToolRulesCheck.py:474
-msgid ""
-"This checks if the drill holes\n"
-"sizes are above the threshold."
-msgstr ""
-"Esto comprueba si los agujeros de perforación\n"
-"Los tamaños están por encima del umbral."
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:27
-msgid "2Sided Tool Options"
-msgstr "Opc. de herra. de 2 caras"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:33
-msgid ""
-"A tool to help in creating a double sided\n"
-"PCB using alignment holes."
-msgstr ""
-"Una herramienta para ayudar en la creación de una doble cara.\n"
-"PCB utilizando orificios de alineación."
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:47
-msgid "Drill dia"
-msgstr "Diá. del taladro"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49
-#: flatcamTools/ToolDblSided.py:363 flatcamTools/ToolDblSided.py:368
-msgid "Diameter of the drill for the alignment holes."
-msgstr "Diámetro del taladro para los orificios de alineación."
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:56
-#: flatcamTools/ToolDblSided.py:377
-msgid "Align Axis"
-msgstr "Alinear eje"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71
-#: flatcamTools/ToolDblSided.py:165 flatcamTools/ToolDblSided.py:379
-msgid "Mirror vertically (X) or horizontally (Y)."
-msgstr "Espejo verticalmente (X) u horizontal (Y)."
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:69
-msgid "Mirror Axis:"
-msgstr "Eje del espejo:"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:80
-#: flatcamTools/ToolDblSided.py:181
-msgid "Point"
-msgstr "Punto"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:81
-#: flatcamTools/ToolDblSided.py:182
-msgid "Box"
-msgstr "Caja"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:82
-msgid "Axis Ref"
-msgstr "Ref. del eje"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:84
-msgid ""
-"The axis should pass through a point or cut\n"
-" a specified box (in a FlatCAM object) through \n"
-"the center."
-msgstr ""
-"El eje debe pasar por un punto o cortar\n"
-" un cuadro especificado (en un objeto FlatCAM) a través de\n"
-"El centro."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:27
-msgid "Calculators Tool Options"
-msgstr "Opc. de herra. de calculadoras"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31
-#: flatcamTools/ToolCalculators.py:25
-msgid "V-Shape Tool Calculator"
-msgstr "Calc. de herra. en forma de V"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:33
-msgid ""
-"Calculate the tool diameter for a given V-shape tool,\n"
-"having the tip diameter, tip angle and\n"
-"depth-of-cut as parameters."
-msgstr ""
-"Calcule el diámetro de la herramienta para una herramienta de forma de V "
-"dada,\n"
-"teniendo el diámetro de la punta, el ángulo de la punta y\n"
-"Profundidad de corte como parámetros."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50
-#: flatcamTools/ToolCalculators.py:94
-msgid "Tip Diameter"
-msgstr "Diá. de la punta"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52
-#: flatcamTools/ToolCalculators.py:102
-msgid ""
-"This is the tool tip diameter.\n"
-"It is specified by manufacturer."
-msgstr ""
-"Este es el diámetro de la punta de la herramienta.\n"
-"Está especificado por el fabricante."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64
-#: flatcamTools/ToolCalculators.py:105
-msgid "Tip Angle"
-msgstr "Ángulo de la punta"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:66
-msgid ""
-"This is the angle on the tip of the tool.\n"
-"It is specified by manufacturer."
-msgstr ""
-"Este es el ángulo en la punta de la herramienta.\n"
-"Está especificado por el fabricante."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:80
-msgid ""
-"This is depth to cut into material.\n"
-"In the CNCJob object it is the CutZ parameter."
-msgstr ""
-"Esta es la profundidad para cortar en material.\n"
-"En el objeto de trabajo CNC es el parámetro CutZ."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87
-#: flatcamTools/ToolCalculators.py:27
-msgid "ElectroPlating Calculator"
-msgstr "Calculadora de electrochapado"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89
-#: flatcamTools/ToolCalculators.py:158
-msgid ""
-"This calculator is useful for those who plate the via/pad/drill holes,\n"
-"using a method like graphite ink or calcium hypophosphite ink or palladium "
-"chloride."
-msgstr ""
-"Esta calculadora es útil para aquellos que platican la vía / la "
-"almohadilla / los agujeros de perforación,\n"
-"Utilizando un método como tinta de graphite o tinta de hipofosfito de calcio "
-"o cloruro de paladio."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:100
-#: flatcamTools/ToolCalculators.py:167
-msgid "Board Length"
-msgstr "Longitud del tablero"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102
-#: flatcamTools/ToolCalculators.py:173
-msgid "This is the board length. In centimeters."
-msgstr "Esta es la longitud del tablero. En centímetros."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112
-#: flatcamTools/ToolCalculators.py:175
-msgid "Board Width"
-msgstr "Ancho del tablero"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114
-#: flatcamTools/ToolCalculators.py:181
-msgid "This is the board width.In centimeters."
-msgstr "Este es el ancho de la tabla. En centímetros."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119
-#: flatcamTools/ToolCalculators.py:183
-msgid "Current Density"
-msgstr "Densidad actual"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125
-#: flatcamTools/ToolCalculators.py:190
-msgid ""
-"Current density to pass through the board. \n"
-"In Amps per Square Feet ASF."
-msgstr ""
-"Densidad de corriente para pasar por el tablero.\n"
-"En amperios por pies cuadrados ASF."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:131
-#: flatcamTools/ToolCalculators.py:193
-msgid "Copper Growth"
-msgstr "Crecimiento de cobre"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137
-#: flatcamTools/ToolCalculators.py:200
-msgid ""
-"How thick the copper growth is intended to be.\n"
-"In microns."
-msgstr ""
-"Qué tan grueso pretende ser el crecimiento del cobre.\n"
-"En micras."
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:28
-msgid "Cutout Tool Options"
-msgstr "Opc. de herra. de recorte"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43
-#: flatcamTools/ToolCalculators.py:123 flatcamTools/ToolCutOut.py:129
-msgid "Tool Diameter"
-msgstr "Diá. de Herram"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45
-#: flatcamTools/ToolCutOut.py:131
-msgid ""
-"Diameter of the tool used to cutout\n"
-"the PCB shape out of the surrounding material."
-msgstr ""
-"Diámetro de la herramienta utilizada para cortar\n"
-"La forma de PCB fuera del material circundante."
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:100
-msgid "Object kind"
-msgstr "Tipo de objeto"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102
-#: flatcamTools/ToolCutOut.py:77
-msgid ""
-"Choice of what kind the object we want to cutout is.
- Single: "
-"contain a single PCB Gerber outline object.
- Panel: a panel PCB "
-"Gerber object, which is made\n"
-"out of many individual PCB outlines."
-msgstr ""
-"La elección del tipo de objeto que queremos recortar es.
- Único "
-"B>: contiene un solo objeto de esquema de PCB Gerber.
- Panel : "
-"un panel de PCB Gerber objeto, que se hace\n"
-"de muchos esquemas de PCB individuales."
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109
-#: flatcamTools/ToolCutOut.py:83
-msgid "Single"
-msgstr "Soltero"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110
-#: flatcamTools/ToolCutOut.py:84
-msgid "Panel"
-msgstr "Panel"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117
-#: flatcamTools/ToolCutOut.py:192
-msgid ""
-"Margin over bounds. A positive value here\n"
-"will make the cutout of the PCB further from\n"
-"the actual PCB border"
-msgstr ""
-"Margen sobre los límites. Un valor positivo aquí\n"
-"hará que el corte de la PCB esté más alejado de\n"
-"el borde real de PCB"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:130
-#: flatcamTools/ToolCutOut.py:203
-msgid "Gap size"
-msgstr "Tamaño de la brecha"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:132
-#: flatcamTools/ToolCutOut.py:205
-msgid ""
-"The size of the bridge gaps in the cutout\n"
-"used to keep the board connected to\n"
-"the surrounding material (the one \n"
-"from which the PCB is cutout)."
-msgstr ""
-"El tamaño de los huecos del puente en el recorte\n"
-"solía mantener la placa conectada a\n"
-"el material circundante (el\n"
-"de la cual se corta el PCB)."
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:146
-#: flatcamTools/ToolCutOut.py:245
-msgid "Gaps"
-msgstr "Brechas"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:148
-msgid ""
-"Number of gaps used for the cutout.\n"
-"There can be maximum 8 bridges/gaps.\n"
-"The choices are:\n"
-"- None - no gaps\n"
-"- lr - left + right\n"
-"- tb - top + bottom\n"
-"- 4 - left + right +top + bottom\n"
-"- 2lr - 2*left + 2*right\n"
-"- 2tb - 2*top + 2*bottom\n"
-"- 8 - 2*left + 2*right +2*top + 2*bottom"
-msgstr ""
-"Número de huecos de puente utilizados para el recorte.\n"
-"Puede haber un máximo de 8 puentes / huecos.\n"
-"Las opciones son:\n"
-"- Ninguno - sin espacios\n"
-"- lr - izquierda + derecha\n"
-"- tb - arriba + abajo\n"
-"- 4 - izquierda + derecha + arriba + abajo\n"
-"- 2lr - 2 * izquierda + 2 * derecha\n"
-"- 2tb - 2 * top + 2 * bottom\n"
-"- 8 - 2 * izquierda + 2 * derecha + 2 * arriba + 2 * abajo"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:170
-#: flatcamTools/ToolCutOut.py:222
-msgid "Convex Shape"
-msgstr "Forma convexa"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:172
-#: flatcamTools/ToolCutOut.py:225
-msgid ""
-"Create a convex shape surrounding the entire PCB.\n"
-"Used only if the source object type is Gerber."
-msgstr ""
-"Crea una forma convexa que rodea toda la PCB.\n"
-"Se usa solo si el tipo de objeto de origen es Gerber."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:27
-msgid "Film Tool Options"
-msgstr "Opc. de herra. de película"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:33
-msgid ""
-"Create a PCB film from a Gerber or Geometry\n"
-"FlatCAM object.\n"
-"The file is saved in SVG format."
-msgstr ""
-"Crear una película de PCB de un Gerber o Geometría\n"
-"Objeto FlatCAM.\n"
-"El archivo se guarda en formato SVG."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:44
-msgid "Film Type"
-msgstr "Tipo de Filme"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:46
-#: flatcamTools/ToolFilm.py:300
-msgid ""
-"Generate a Positive black film or a Negative film.\n"
-"Positive means that it will print the features\n"
-"with black on a white canvas.\n"
-"Negative means that it will print the features\n"
-"with white on a black canvas.\n"
-"The Film format is SVG."
-msgstr ""
-"Genera una película negra positiva o una película negativa.\n"
-"Positivo significa que imprimirá las características.\n"
-"Con negro sobre un lienzo blanco.\n"
-"Negativo significa que imprimirá las características.\n"
-"Con blanco sobre un lienzo negro.\n"
-"El formato de la película es SVG."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:57
-msgid "Film Color"
-msgstr "Color de la película"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:59
-msgid "Set the film color when positive film is selected."
-msgstr ""
-"Establezca el color de la película cuando se selecciona película positiva."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:82
-#: flatcamTools/ToolFilm.py:316
-msgid "Border"
-msgstr "Frontera"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:84
-#: flatcamTools/ToolFilm.py:318
-msgid ""
-"Specify a border around the object.\n"
-"Only for negative film.\n"
-"It helps if we use as a Box Object the same \n"
-"object as in Film Object. It will create a thick\n"
-"black bar around the actual print allowing for a\n"
-"better delimitation of the outline features which are of\n"
-"white color like the rest and which may confound with the\n"
-"surroundings if not for this border."
-msgstr ""
-"Especifique un borde alrededor del objeto.\n"
-"Sólo para película negativa.\n"
-"Ayuda si usamos como objeto de caja lo mismo\n"
-"objeto como en el objeto de la película. Se creará una gruesa\n"
-"barra negra alrededor de la impresión real que permite una\n"
-"mejor delimitación de las características del esquema que son de\n"
-"Color blanco como el resto y que puede confundir con el\n"
-"Entorno si no fuera por esta frontera."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:101
-#: flatcamTools/ToolFilm.py:283
-msgid "Scale Stroke"
-msgstr "Trazo de escala"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:103
-#: flatcamTools/ToolFilm.py:285
-msgid ""
-"Scale the line stroke thickness of each feature in the SVG file.\n"
-"It means that the line that envelope each SVG feature will be thicker or "
-"thinner,\n"
-"therefore the fine features may be more affected by this parameter."
-msgstr ""
-"Escale el grosor de trazo de línea de cada entidad en el archivo SVG.\n"
-"Significa que la línea que envuelve cada característica SVG será más gruesa "
-"o más delgada,\n"
-"por lo tanto, las características finas pueden verse más afectadas por este "
-"parámetro."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:110
-#: flatcamTools/ToolFilm.py:141
-msgid "Film Adjustments"
-msgstr "Ajustes de la película"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:112
-#: flatcamTools/ToolFilm.py:143
-msgid ""
-"Sometime the printers will distort the print shape, especially the Laser "
-"types.\n"
-"This section provide the tools to compensate for the print distortions."
-msgstr ""
-"En algún momento, las impresoras distorsionarán la forma de impresión, "
-"especialmente los tipos de láser.\n"
-"Esta sección proporciona las herramientas para compensar las distorsiones de "
-"impresión."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:119
-#: flatcamTools/ToolFilm.py:150
-msgid "Scale Film geometry"
-msgstr "Escalar la Geo de la Película"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:121
-#: flatcamTools/ToolFilm.py:152
-msgid ""
-"A value greater than 1 will stretch the film\n"
-"while a value less than 1 will jolt it."
-msgstr ""
-"Un valor mayor que 1 estirará la película\n"
-"mientras que un valor menor que 1 lo sacudirá."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:131
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:103
-#: flatcamTools/ToolFilm.py:162 flatcamTools/ToolTransform.py:148
-msgid "X factor"
-msgstr "Factor X"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:140
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:116
-#: flatcamTools/ToolFilm.py:171 flatcamTools/ToolTransform.py:168
-msgid "Y factor"
-msgstr "Factor Y"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:150
-#: flatcamTools/ToolFilm.py:189
-msgid "Skew Film geometry"
-msgstr "Incline la Geo de la Película"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:152
-#: flatcamTools/ToolFilm.py:191
-msgid ""
-"Positive values will skew to the right\n"
-"while negative values will skew to the left."
-msgstr ""
-"Los valores positivos se sesgarán a la derecha.\n"
-"mientras que los valores negativos se desviarán a la izquierda."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:162
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:72
-#: flatcamTools/ToolFilm.py:201 flatcamTools/ToolTransform.py:97
-msgid "X angle"
-msgstr "Ángulo X"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:171
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:86
-#: flatcamTools/ToolFilm.py:210 flatcamTools/ToolTransform.py:118
-msgid "Y angle"
-msgstr "Ángulo Y"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:182
-#: flatcamTools/ToolFilm.py:221
-msgid ""
-"The reference point to be used as origin for the skew.\n"
-"It can be one of the four points of the geometry bounding box."
-msgstr ""
-"El punto de referencia que se utilizará como origen para el sesgo.\n"
-"Puede ser uno de los cuatro puntos del cuadro delimitador de geometría."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:185
-#: flatcamTools/ToolFiducials.py:87 flatcamTools/ToolFilm.py:224
-msgid "Bottom Left"
-msgstr "Abajo a la izquierda"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:186
-#: flatcamTools/ToolFilm.py:225
-msgid "Top Left"
-msgstr "Arriba a la izquierda"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:187
-#: flatcamTools/ToolFilm.py:226
-msgid "Bottom Right"
-msgstr "Abajo a la derecha"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:188
-#: flatcamTools/ToolFilm.py:227
-msgid "Top right"
-msgstr "Arriba a la derecha"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196
-#: flatcamTools/ToolFilm.py:244
-msgid "Mirror Film geometry"
-msgstr "Refleja la Geo de la Película"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:198
-#: flatcamTools/ToolFilm.py:246
-msgid "Mirror the film geometry on the selected axis or on both."
-msgstr "Refleje la geometría de la película en el eje seleccionado o en ambos."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:212
-#: flatcamTools/ToolFilm.py:260
-msgid "Mirror axis"
-msgstr "Eje espejo"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:222
-#: flatcamTools/ToolFilm.py:405
-msgid "SVG"
-msgstr "SVG"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:223
-#: flatcamTools/ToolFilm.py:406
-msgid "PNG"
-msgstr "PNG"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:224
-#: flatcamTools/ToolFilm.py:407
-msgid "PDF"
-msgstr "PDF"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:227
-#: flatcamTools/ToolFilm.py:298 flatcamTools/ToolFilm.py:410
-msgid "Film Type:"
-msgstr "Tipo de filme:"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:229
-#: flatcamTools/ToolFilm.py:412
-msgid ""
-"The file type of the saved film. Can be:\n"
-"- 'SVG' -> open-source vectorial format\n"
-"- 'PNG' -> raster image\n"
-"- 'PDF' -> portable document format"
-msgstr ""
-"El tipo de archivo de la película guardada. Puede ser:\n"
-"- 'SVG' -> formato vectorial de código abierto\n"
-"- 'PNG' -> imagen de trama\n"
-"- 'PDF' -> formato de documento portátil"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:238
-#: flatcamTools/ToolFilm.py:421
-msgid "Page Orientation"
-msgstr "Orient. de la página"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:251
-#: flatcamTools/ToolFilm.py:434
-msgid "Page Size"
-msgstr "Tamaño de página"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:252
-#: flatcamTools/ToolFilm.py:435
-msgid "A selection of standard ISO 216 page sizes."
-msgstr "Una selección de tamaños de página estándar ISO 216."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:27
-msgid "NCC Tool Options"
-msgstr "Opc. de herra. NCC"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:49
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:57
-msgid "Comma separated values"
-msgstr "Valores Separados por Comas"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:55
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:63
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:64
-#: flatcamTools/ToolNCC.py:215 flatcamTools/ToolNCC.py:223
-#: flatcamTools/ToolPaint.py:198 flatcamTools/ToolPaint.py:206
-msgid ""
-"Default tool type:\n"
-"- 'V-shape'\n"
-"- Circular"
-msgstr ""
-"Tipo de herramienta predeterminada:\n"
-"- 'Forma V'\n"
-"- circular"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:60
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:69
-#: flatcamTools/ToolNCC.py:220 flatcamTools/ToolPaint.py:203
-msgid "V-shape"
-msgstr "Forma V"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:100
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:109
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:107
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:116
-#: flatcamTools/ToolNCC.py:262 flatcamTools/ToolNCC.py:271
-#: flatcamTools/ToolPaint.py:245 flatcamTools/ToolPaint.py:254
-msgid ""
-"Depth of cut into material. Negative value.\n"
-"In FlatCAM units."
-msgstr ""
-"Profundidad de corte en el material. Valor negativo.\n"
-"En unidades FlatCAM."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:119
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:125
-#: flatcamTools/ToolNCC.py:280 flatcamTools/ToolPaint.py:263
-msgid ""
-"Diameter for the new tool to add in the Tool Table.\n"
-"If the tool is V-shape type then this value is automatically\n"
-"calculated from the other parameters."
-msgstr ""
-"Diámetro de la nueva herramienta para agregar en la Tabla de herramientas.\n"
-"Si la herramienta es de tipo V, este valor es automáticamente\n"
-"calculado a partir de los otros parámetros."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:156
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:142
-#: flatcamTools/ToolNCC.py:174 flatcamTools/ToolPaint.py:158
-msgid "Tool order"
-msgstr "Orden de la Herram"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:157
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:167
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:143
-#: flatcamTools/ToolNCC.py:175 flatcamTools/ToolNCC.py:185
-#: flatcamTools/ToolPaint.py:159 flatcamTools/ToolPaint.py:169
-msgid ""
-"This set the way that the tools in the tools table are used.\n"
-"'No' --> means that the used order is the one in the tool table\n"
-"'Forward' --> means that the tools will be ordered from small to big\n"
-"'Reverse' --> means that the tools will ordered from big to small\n"
-"\n"
-"WARNING: using rest machining will automatically set the order\n"
-"in reverse and disable this control."
-msgstr ""
-"Esto establece la forma en que se utilizan las herramientas en la tabla de "
-"herramientas.\n"
-"'No' -> significa que el orden utilizado es el de la tabla de herramientas\n"
-"'Adelante' -> significa que las herramientas se ordenarán de pequeño a "
-"grande\n"
-"'Atras' -> means que las herramientas ordenarán de grande a pequeño\n"
-"\n"
-"ADVERTENCIA: el uso del mecanizado en reposo establecerá automáticamente el "
-"orden\n"
-"en reversa y deshabilitar este control."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:165
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:151
-#: flatcamTools/ToolNCC.py:183 flatcamTools/ToolPaint.py:167
-msgid "Forward"
-msgstr "Adelante"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:166
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:152
-#: flatcamTools/ToolNCC.py:184 flatcamTools/ToolPaint.py:168
-msgid "Reverse"
-msgstr "Atras"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:266
-msgid "Offset value"
-msgstr "Valor de Comp"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:268
-msgid ""
-"If used, it will add an offset to the copper features.\n"
-"The copper clearing will finish to a distance\n"
-"from the copper features.\n"
-"The value can be between 0.0 and 9999.9 FlatCAM units."
-msgstr ""
-"Si se usa, agregará un desplazamiento a las características de cobre.\n"
-"El claro de cobre terminará a cierta distancia.\n"
-"de las características de cobre.\n"
-"El valor puede estar entre 0 y 9999.9 unidades FlatCAM."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:288
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:244
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:245
-#: flatcamTools/ToolNCC.py:512 flatcamTools/ToolPaint.py:442
-msgid "Rest Machining"
-msgstr "Mecanizado de descanso"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:290
-#: flatcamTools/ToolNCC.py:516
-msgid ""
-"If checked, use 'rest machining'.\n"
-"Basically it will clear copper outside PCB features,\n"
-"using the biggest tool and continue with the next tools,\n"
-"from bigger to smaller, to clear areas of copper that\n"
-"could not be cleared by previous tool, until there is\n"
-"no more copper to clear or there are no more tools.\n"
-"If not checked, use the standard algorithm."
-msgstr ""
-"Si está marcado, use 'mecanizado en reposo'.\n"
-"Básicamente eliminará el cobre fuera de las características de la PCB,\n"
-"utilizando la herramienta más grande y continúe con las siguientes "
-"herramientas,\n"
-"de mayor a menor, para limpiar áreas de cobre que\n"
-"no se pudo borrar con la herramienta anterior, hasta que haya\n"
-"no más cobre para limpiar o no hay más herramientas.\n"
-"Si no está marcado, use el algoritmo estándar."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:313
-#: flatcamTools/ToolNCC.py:541
-msgid ""
-"Selection of area to be processed.\n"
-"- 'Itself' - the processing extent is based on the object that is "
-"processed.\n"
-" - 'Area Selection' - left mouse click to start selection of the area to be "
-"processed.\n"
-"- 'Reference Object' - will process the area specified by another object."
-msgstr ""
-"Selección del área a procesar.\n"
-"- 'Sí mismo': la extensión del procesamiento se basa en el objeto que se "
-"procesa.\n"
-"- 'Selección de área': haga clic con el botón izquierdo del mouse para "
-"iniciar la selección del área a procesar.\n"
-"- 'Objeto de referencia': procesará el área especificada por otro objeto."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:339
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303
-msgid "Normal"
-msgstr "Normal"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:340
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:304
-msgid "Progressive"
-msgstr "Progresivo"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:341
-msgid "NCC Plotting"
-msgstr "Trazado NCC"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:343
-msgid ""
-"- 'Normal' - normal plotting, done at the end of the NCC job\n"
-"- 'Progressive' - after each shape is generated it will be plotted."
-msgstr ""
-"- 'Normal': trazado normal, realizado al final del trabajo de NCC\n"
-"- 'Progresivo': después de generar cada forma, se trazará."
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:27
-msgid "Paint Tool Options"
-msgstr "Opc. de herra. de pintura"
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:33
-msgid "Parameters:"
-msgstr "Parámetros:"
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:247
-#: flatcamTools/ToolPaint.py:445
-msgid ""
-"If checked, use 'rest machining'.\n"
-"Basically it will clear copper outside PCB features,\n"
-"using the biggest tool and continue with the next tools,\n"
-"from bigger to smaller, to clear areas of copper that\n"
-"could not be cleared by previous tool, until there is\n"
-"no more copper to clear or there are no more tools.\n"
-"\n"
-"If not checked, use the standard algorithm."
-msgstr ""
-"Si está marcado, use 'mecanizado en reposo'.\n"
-"Básicamente eliminará el cobre fuera de las características de la PCB,\n"
-"utilizando la herramienta más grande y continúe con las siguientes "
-"herramientas,\n"
-"de mayor a menor, para limpiar áreas de cobre que\n"
-"no se pudo borrar con la herramienta anterior, hasta que haya\n"
-"no más cobre para limpiar o no hay más herramientas.\n"
-"\n"
-"Si no está marcado, use el algoritmo estándar."
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:260
-#: flatcamTools/ToolPaint.py:458
-msgid ""
-"Selection of area to be processed.\n"
-"- 'Polygon Selection' - left mouse click to add/remove polygons to be "
-"processed.\n"
-"- 'Area Selection' - left mouse click to start selection of the area to be "
-"processed.\n"
-"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple "
-"areas.\n"
-"- 'All Polygons' - the process will start after click.\n"
-"- 'Reference Object' - will process the area specified by another object."
-msgstr ""
-"Selección del área a procesar.\n"
-"- 'Selección de polígonos': haga clic con el botón izquierdo del mouse para "
-"agregar / eliminar polígonos que se procesarán.\n"
-"- 'Selección de área': haga clic con el botón izquierdo del mouse para "
-"iniciar la selección del área a procesar.\n"
-"Mantener presionada una tecla modificadora (CTRL o SHIFT) permitirá agregar "
-"múltiples áreas.\n"
-"- 'Todos los polígonos': el proceso comenzará después de hacer clic.\n"
-"- 'Objeto de referencia': procesará el área especificada por otro objeto."
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
-#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:942
-#: flatcamTools/ToolPaint.py:1432 tclCommands/TclCommandPaint.py:164
-msgid "Polygon Selection"
-msgstr "Selección de polígono"
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:305
-msgid "Paint Plotting"
-msgstr "Trazado de pintura"
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:307
-msgid ""
-"- 'Normal' - normal plotting, done at the end of the Paint job\n"
-"- 'Progressive' - after each shape is generated it will be plotted."
-msgstr ""
-"- 'Normal': trazado normal, realizado al final del trabajo de Pintura\n"
-"- 'Progresivo': después de generar cada forma, se trazará."
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:27
-msgid "Panelize Tool Options"
-msgstr "Opc. de la herra. Panelizar"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:33
-msgid ""
-"Create an object that contains an array of (x, y) elements,\n"
-"each element is a copy of the source object spaced\n"
-"at a X distance, Y distance of each other."
-msgstr ""
-"Cree un objeto que contenga una matriz de (x, y) elementos,\n"
-"Cada elemento es una copia del objeto fuente espaciado.\n"
-"a una distancia X, distancia Y entre sí."
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:50
-#: flatcamTools/ToolPanelize.py:163
-msgid "Spacing cols"
-msgstr "Col. de espaciado"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:52
-#: flatcamTools/ToolPanelize.py:165
-msgid ""
-"Spacing between columns of the desired panel.\n"
-"In current units."
-msgstr ""
-"Espaciado entre columnas del panel deseado.\n"
-"En unidades actuales."
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:64
-#: flatcamTools/ToolPanelize.py:175
-msgid "Spacing rows"
-msgstr "Separación de filas"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:66
-#: flatcamTools/ToolPanelize.py:177
-msgid ""
-"Spacing between rows of the desired panel.\n"
-"In current units."
-msgstr ""
-"Espaciado entre filas del panel deseado.\n"
-"En unidades actuales."
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:77
-#: flatcamTools/ToolPanelize.py:186
-msgid "Columns"
-msgstr "Columnas"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:79
-#: flatcamTools/ToolPanelize.py:188
-msgid "Number of columns of the desired panel"
-msgstr "Número de columnas del panel deseado"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:89
-#: flatcamTools/ToolPanelize.py:196
-msgid "Rows"
-msgstr "Filas"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:91
-#: flatcamTools/ToolPanelize.py:198
-msgid "Number of rows of the desired panel"
-msgstr "Número de filas del panel deseado"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:98
-#: flatcamTools/ToolPanelize.py:205
-msgid "Geo"
-msgstr "Geo"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:99
-#: flatcamTools/ToolPanelize.py:206
-msgid "Panel Type"
-msgstr "Tipo de panel"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:101
-msgid ""
-"Choose the type of object for the panel object:\n"
-"- Gerber\n"
-"- Geometry"
-msgstr ""
-"Elija el tipo de objeto para el objeto del panel:\n"
-"- Gerber\n"
-"- Geometría"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:110
-msgid "Constrain within"
-msgstr "Restringir dentro de"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:112
-#: flatcamTools/ToolPanelize.py:218
-msgid ""
-"Area define by DX and DY within to constrain the panel.\n"
-"DX and DY values are in current units.\n"
-"Regardless of how many columns and rows are desired,\n"
-"the final panel will have as many columns and rows as\n"
-"they fit completely within selected area."
-msgstr ""
-"Área definida por DX y DY dentro para restringir el panel.\n"
-"Los valores DX y DY están en unidades actuales.\n"
-"Independientemente de cuántas columnas y filas se deseen,\n"
-"El panel final tendrá tantas columnas y filas como\n"
-"encajan completamente dentro del área seleccionada."
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:125
-#: flatcamTools/ToolPanelize.py:230
-msgid "Width (DX)"
-msgstr "Ancho (DX)"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:127
-#: flatcamTools/ToolPanelize.py:232
-msgid ""
-"The width (DX) within which the panel must fit.\n"
-"In current units."
-msgstr ""
-"El ancho (DX) dentro del cual debe caber el panel.\n"
-"En unidades actuales."
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:138
-#: flatcamTools/ToolPanelize.py:241
-msgid "Height (DY)"
-msgstr "Altura (DY)"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:140
-#: flatcamTools/ToolPanelize.py:243
-msgid ""
-"The height (DY)within which the panel must fit.\n"
-"In current units."
-msgstr ""
-"La altura (DY) dentro de la cual debe caber el panel.\n"
-"En unidades actuales."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:27
-msgid "SolderPaste Tool Options"
-msgstr "Opc de Herram. de Pasta"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:33
-msgid ""
-"A tool to create GCode for dispensing\n"
-"solder paste onto a PCB."
-msgstr ""
-"Una herramienta para crear GCode para dispensar\n"
-"pasta de soldadura en una PCB."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:54
-msgid "New Nozzle Dia"
-msgstr "Nuevo diá de boquilla"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:56
-#: flatcamTools/ToolSolderPaste.py:107
-msgid "Diameter for the new Nozzle tool to add in the Tool Table"
-msgstr ""
-"Diámetro para la nueva herramienta de boquillas para agregar en la tabla de "
-"herramientas"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:72
-#: flatcamTools/ToolSolderPaste.py:183
-msgid "Z Dispense Start"
-msgstr "Inicio de dispen. Z"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:74
-#: flatcamTools/ToolSolderPaste.py:185
-msgid "The height (Z) when solder paste dispensing starts."
-msgstr "La altura (Z) cuando comienza la dispensación de pasta de soldadura."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:85
-#: flatcamTools/ToolSolderPaste.py:195
-msgid "Z Dispense"
-msgstr "Dispensación Z"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:87
-#: flatcamTools/ToolSolderPaste.py:197
-msgid "The height (Z) when doing solder paste dispensing."
-msgstr "La altura (Z) al dispensar pasta de soldadura."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:98
-#: flatcamTools/ToolSolderPaste.py:207
-msgid "Z Dispense Stop"
-msgstr "Parada de dispen. Z"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:100
-#: flatcamTools/ToolSolderPaste.py:209
-msgid "The height (Z) when solder paste dispensing stops."
-msgstr "La altura (Z) cuando se detiene la dispensación de pasta de soldadura."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:111
-#: flatcamTools/ToolSolderPaste.py:219
-msgid "Z Travel"
-msgstr "Viajar Z"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:113
-#: flatcamTools/ToolSolderPaste.py:221
-msgid ""
-"The height (Z) for travel between pads\n"
-"(without dispensing solder paste)."
-msgstr ""
-"La altura (Z) para viajar entre almohadillas\n"
-"(sin dispensar pasta de soldadura)."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:125
-#: flatcamTools/ToolSolderPaste.py:232
-msgid "Z Toolchange"
-msgstr "Cambio de herra. Z"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:127
-#: flatcamTools/ToolSolderPaste.py:234
-msgid "The height (Z) for tool (nozzle) change."
-msgstr "La altura (Z) para el cambio de herramienta (boquilla)."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:136
-#: flatcamTools/ToolSolderPaste.py:242
-msgid ""
-"The X,Y location for tool (nozzle) change.\n"
-"The format is (x, y) where x and y are real numbers."
-msgstr ""
-"La ubicación X, Y para el cambio de herramienta (boquilla).\n"
-"El formato es (x, y) donde x e y son números reales."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:150
-#: flatcamTools/ToolSolderPaste.py:255
-msgid "Feedrate (speed) while moving on the X-Y plane."
-msgstr "Avance (velocidad) mientras se mueve en el plano X-Y."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:163
-#: flatcamTools/ToolSolderPaste.py:267
-msgid ""
-"Feedrate (speed) while moving vertically\n"
-"(on Z plane)."
-msgstr ""
-"Avance (velocidad) mientras se mueve verticalmente\n"
-"(en el plano Z)."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:175
-#: flatcamTools/ToolSolderPaste.py:278
-msgid "Feedrate Z Dispense"
-msgstr "Avance de Dispens. Z"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:177
-msgid ""
-"Feedrate (speed) while moving up vertically\n"
-"to Dispense position (on Z plane)."
-msgstr ""
-"Avance (velocidad) mientras se mueve verticalmente\n"
-"para dispensar la posición (en el plano Z)."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:188
-#: flatcamTools/ToolSolderPaste.py:290
-msgid "Spindle Speed FWD"
-msgstr "Veloc. del husillo FWD"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:190
-#: flatcamTools/ToolSolderPaste.py:292
-msgid ""
-"The dispenser speed while pushing solder paste\n"
-"through the dispenser nozzle."
-msgstr ""
-"La velocidad del dispensador mientras empuja la pasta de soldadura\n"
-"a través de la boquilla dispensadora."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:202
-#: flatcamTools/ToolSolderPaste.py:303
-msgid "Dwell FWD"
-msgstr "Morar FWD"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:204
-#: flatcamTools/ToolSolderPaste.py:305
-msgid "Pause after solder dispensing."
-msgstr "Pausa después de la dispensación de soldadura."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:214
-#: flatcamTools/ToolSolderPaste.py:314
-msgid "Spindle Speed REV"
-msgstr "Veloc. del husillo REV"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:216
-#: flatcamTools/ToolSolderPaste.py:316
-msgid ""
-"The dispenser speed while retracting solder paste\n"
-"through the dispenser nozzle."
-msgstr ""
-"La velocidad del dispensador mientras se retrae la pasta de soldadura\n"
-"a través de la boquilla dispensadora."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:228
-#: flatcamTools/ToolSolderPaste.py:327
-msgid "Dwell REV"
-msgstr "Morar REV"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:230
-#: flatcamTools/ToolSolderPaste.py:329
-msgid ""
-"Pause after solder paste dispenser retracted,\n"
-"to allow pressure equilibrium."
-msgstr ""
-"Pausa después de que el dispensador de pasta de soldadura se retraiga,\n"
-"para permitir el equilibrio de presión."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:239
-#: flatcamTools/ToolSolderPaste.py:337
-msgid "Files that control the GCode generation."
-msgstr "Archivos que controlan la generación de GCode."
-
-#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:27
-msgid "Substractor Tool Options"
-msgstr "Opc. de herra. de substractor"
-
-#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:33
-msgid ""
-"A tool to substract one Gerber or Geometry object\n"
-"from another of the same type."
-msgstr ""
-"Una herramienta para restar un objeto Gerber o Geometry\n"
-"de otro del mismo tipo."
-
-#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:38
-#: flatcamTools/ToolSub.py:155
-msgid "Close paths"
-msgstr "Caminos cercanos"
-
-#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:39
-msgid ""
-"Checking this will close the paths cut by the Geometry substractor object."
-msgstr ""
-"Marcar esto cerrará los caminos cortados por el objeto sustrato Geometry."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:27
-msgid "Transform Tool Options"
-msgstr "Opc. de herra. de transformación"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:33
-msgid ""
-"Various transformations that can be applied\n"
-"on a FlatCAM object."
-msgstr ""
-"Diversas transformaciones que se pueden aplicar.\n"
-"en un objeto FlatCAM."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:64
-msgid "Skew"
-msgstr "Sesgar"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:105
-#: flatcamTools/ToolTransform.py:150
-msgid "Factor for scaling on X axis."
-msgstr "Factor de escalado en eje X."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:118
-#: flatcamTools/ToolTransform.py:170
-msgid "Factor for scaling on Y axis."
-msgstr "Factor de escalado en eje Y."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:126
-#: flatcamTools/ToolTransform.py:191
-msgid ""
-"Scale the selected object(s)\n"
-"using the Scale_X factor for both axis."
-msgstr ""
-"Escala el (los) objeto (s) seleccionado (s)\n"
-"utilizando el factor de escala X para ambos ejes."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:134
-#: flatcamTools/ToolTransform.py:198
-msgid ""
-"Scale the selected object(s)\n"
-"using the origin reference when checked,\n"
-"and the center of the biggest bounding box\n"
-"of the selected objects when unchecked."
-msgstr ""
-"Escala el (los) objeto (s) seleccionado (s)\n"
-"usando la referencia de origen cuando está marcada,\n"
-"y el centro del cuadro delimitador más grande.\n"
-"de los objetos seleccionados cuando no está marcada."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:150
-#: flatcamTools/ToolTransform.py:217
-msgid "X val"
-msgstr "Valor X"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:152
-#: flatcamTools/ToolTransform.py:219
-msgid "Distance to offset on X axis. In current units."
-msgstr "Distancia a desplazamiento en el eje X. En unidades actuales."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:163
-#: flatcamTools/ToolTransform.py:237
-msgid "Y val"
-msgstr "Valor Y"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:165
-#: flatcamTools/ToolTransform.py:239
-msgid "Distance to offset on Y axis. In current units."
-msgstr "Distancia a desplazamiento en el eje Y. En unidades actuales."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:171
-#: flatcamTools/ToolDblSided.py:67 flatcamTools/ToolDblSided.py:95
-#: flatcamTools/ToolDblSided.py:125
-msgid "Mirror"
-msgstr "Espejo"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:175
-#: flatcamTools/ToolTransform.py:283
-msgid "Mirror Reference"
-msgstr "Espejo de referencia"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:177
-#: flatcamTools/ToolTransform.py:285
-msgid ""
-"Flip the selected object(s)\n"
-"around the point in Point Entry Field.\n"
-"\n"
-"The point coordinates can be captured by\n"
-"left click on canvas together with pressing\n"
-"SHIFT key. \n"
-"Then click Add button to insert coordinates.\n"
-"Or enter the coords in format (x, y) in the\n"
-"Point Entry field and click Flip on X(Y)"
-msgstr ""
-"Voltear los objetos seleccionados\n"
-"alrededor del punto en el campo de entrada de puntos.\n"
-"\n"
-"Las coordenadas del punto pueden ser capturadas por\n"
-"Haga clic izquierdo en el lienzo junto con la presión\n"
-"Tecla Shift.\n"
-"Luego haga clic en el botón Agregar para insertar coordenadas.\n"
-"O ingrese las coords en formato (x, y) en el\n"
-"Campo de entrada de puntos y haga clic en Girar en X (Y)"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:188
-msgid "Mirror Reference point"
-msgstr "Punto de Ref del Espejo"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:190
-msgid ""
-"Coordinates in format (x, y) used as reference for mirroring.\n"
-"The 'x' in (x, y) will be used when using Flip on X and\n"
-"the 'y' in (x, y) will be used when using Flip on Y and"
-msgstr ""
-"Coordenadas en formato (x, y) utilizadas como referencia para la "
-"duplicación.\n"
-"La 'x' en (x, y) se usará cuando se use voltear en X y\n"
-"la 'y' en (x, y) se usará cuando se use voltear en Y y"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:203
-#: flatcamTools/ToolDistance.py:496 flatcamTools/ToolDistanceMin.py:287
-#: flatcamTools/ToolTransform.py:332
-msgid "Distance"
-msgstr "Distancia"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:205
-#: flatcamTools/ToolTransform.py:334
-msgid ""
-"A positive value will create the effect of dilation,\n"
-"while a negative value will create the effect of erosion.\n"
-"Each geometry element of the object will be increased\n"
-"or decreased with the 'distance'."
-msgstr ""
-"Un valor positivo creará el efecto de dilatación,\n"
-"mientras que un valor negativo creará el efecto de la erosión.\n"
-"Cada elemento de geometría del objeto se incrementará\n"
-"o disminuido con la 'distancia'."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:222
-#: flatcamTools/ToolTransform.py:359
-msgid ""
-"A positive value will create the effect of dilation,\n"
-"while a negative value will create the effect of erosion.\n"
-"Each geometry element of the object will be increased\n"
-"or decreased to fit the 'Value'. Value is a percentage\n"
-"of the initial dimension."
-msgstr ""
-"Un valor positivo creará el efecto de dilatación,\n"
-"mientras que un valor negativo creará el efecto de la erosión.\n"
-"Cada elemento de geometría del objeto se incrementará\n"
-"o disminuido para ajustarse al 'Valor'. El Valor es un porcentaje\n"
-"de la dimensión inicial."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:241
-#: flatcamTools/ToolTransform.py:385
-msgid ""
-"If checked then the buffer will surround the buffered shape,\n"
-"every corner will be rounded.\n"
-"If not checked then the buffer will follow the exact geometry\n"
-"of the buffered shape."
-msgstr ""
-"Si se marca, el búfer rodeará la forma tamponada,\n"
-"Cada rincón será redondeado.\n"
-"Si no está marcado, el búfer seguirá la geometría exacta\n"
-"de la forma amortiguada."
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:27
-msgid "Autocompleter Keywords"
-msgstr "Palabras clave de autocompletador"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:30
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:40
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:30
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:30
-msgid "Restore"
-msgstr "Restaurar"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:31
-msgid "Restore the autocompleter keywords list to the default state."
-msgstr ""
-"Restaure la lista de palabras clave de autocompletador al estado "
-"predeterminado."
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:32
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:42
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:32
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:32
-msgid "Delete All"
-msgstr "Eliminar todosEliminar taladro"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:33
-msgid "Delete all autocompleter keywords from the list."
-msgstr "Elimine todas las palabras clave de autocompletador de la lista."
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:41
-msgid "Keywords list"
-msgstr "Lista de palabras clave"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:43
-msgid ""
-"List of keywords used by\n"
-"the autocompleter in FlatCAM.\n"
-"The autocompleter is installed\n"
-"in the Code Editor and for the Tcl Shell."
-msgstr ""
-"Lista de palabras clave utilizadas por\n"
-"el autocompletador en FlatCAM.\n"
-"El autocompletador está instalado\n"
-"en el Editor de Código y para el Tcl Shell."
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:64
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:73
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:63
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:62
-msgid "Extension"
-msgstr "ExtensiónLista de extensiones"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:65
-msgid "A keyword to be added or deleted to the list."
-msgstr "Una palabra clave para agregar o eliminar a la lista."
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:73
-msgid "Add keyword"
-msgstr "Agregar palabra clave"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:74
-msgid "Add a keyword to the list"
-msgstr "Agregar una palabra clave a la lista"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:75
-msgid "Delete keyword"
-msgstr "Eliminar palabra clave"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:76
-msgid "Delete a keyword from the list"
-msgstr "Eliminar una palabra clave de la lista"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:27
-msgid "Excellon File associations"
-msgstr "Excellon File asociaciones"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:41
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:31
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:31
-msgid "Restore the extension list to the default state."
-msgstr "Restaurar la lista de extensiones al estado predeterminado."
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:43
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:33
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:33
-msgid "Delete all extensions from the list."
-msgstr "Eliminar todas las extensiones de la lista."
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:51
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:41
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:41
-msgid "Extensions list"
-msgstr "Lista de extensiones"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:53
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:43
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:43
-msgid ""
-"List of file extensions to be\n"
-"associated with FlatCAM."
-msgstr ""
-"Lista de extensiones de archivo para ser\n"
-"asociado con FlatCAM."
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:74
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:64
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:63
-msgid "A file extension to be added or deleted to the list."
-msgstr "Una extensión de archivo para agregar o eliminar a la lista."
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:82
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:72
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:71
-msgid "Add Extension"
-msgstr "Agregar extensión"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:83
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:73
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:72
-msgid "Add a file extension to the list"
-msgstr "Agregar una extensión de archivo a la lista"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:84
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:74
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:73
-msgid "Delete Extension"
-msgstr "Eliminar extensión"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:85
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:75
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:74
-msgid "Delete a file extension from the list"
-msgstr "Eliminar una extensión de archivo de la lista"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:92
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:82
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:81
-msgid "Apply Association"
-msgstr "Aplicar asociación"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:93
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:83
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:82
-msgid ""
-"Apply the file associations between\n"
-"FlatCAM and the files with above extensions.\n"
-"They will be active after next logon.\n"
-"This work only in Windows."
-msgstr ""
-"Aplicar las asociaciones de archivos entre\n"
-"FlatCAM y los archivos con las extensiones anteriores.\n"
-"Estarán activos después del próximo inicio de sesión.\n"
-"Esto funciona solo en Windows."
-
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:27
-msgid "GCode File associations"
-msgstr "Asociaciones de archivos GCode"
-
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:27
-msgid "Gerber File associations"
-msgstr "Asociaciones de archivos Gerber"
-
-#: flatcamObjects/FlatCAMCNCJob.py:429 flatcamObjects/FlatCAMDocument.py:71
-#: flatcamObjects/FlatCAMScript.py:82
-msgid "Basic"
-msgstr "Basic"
-
-#: flatcamObjects/FlatCAMCNCJob.py:435 flatcamObjects/FlatCAMDocument.py:75
-#: flatcamObjects/FlatCAMScript.py:86
-msgid "Advanced"
-msgstr "Avanzado"
-
-#: flatcamObjects/FlatCAMCNCJob.py:478
-msgid "Plotting..."
-msgstr "Trazando ..."
-
-#: flatcamObjects/FlatCAMCNCJob.py:507 flatcamObjects/FlatCAMCNCJob.py:512
-#: flatcamTools/ToolSolderPaste.py:1499
-msgid "Export Machine Code ..."
-msgstr "Exportar código de máquina ..."
-
-#: flatcamObjects/FlatCAMCNCJob.py:517 flatcamTools/ToolSolderPaste.py:1503
-msgid "Export Machine Code cancelled ..."
-msgstr "Exportar código de máquina cancelado ..."
-
-#: flatcamObjects/FlatCAMCNCJob.py:538
-msgid "Machine Code file saved to"
-msgstr "Archivo de código de máquina guardado en"
-
-#: flatcamObjects/FlatCAMCNCJob.py:599 flatcamTools/ToolCalibration.py:1097
-msgid "Loaded Machine Code into Code Editor"
-msgstr "Código de máquina cargado en el editor de código"
-
-#: flatcamObjects/FlatCAMCNCJob.py:740
-msgid "This CNCJob object can't be processed because it is a"
-msgstr "Este objeto CNCJob no se puede procesar porque es un"
-
-#: flatcamObjects/FlatCAMCNCJob.py:742
-msgid "CNCJob object"
-msgstr "Objeto CNCJob"
-
-#: flatcamObjects/FlatCAMCNCJob.py:922
-msgid ""
-"G-code does not have a G94 code and we will not include the code in the "
-"'Prepend to GCode' text box"
-msgstr ""
-"El código G no tiene un código G94 y no incluiremos el código en el cuadro "
-"de texto 'Anteponer al código GC'"
-
-#: flatcamObjects/FlatCAMCNCJob.py:933
-msgid "Cancelled. The Toolchange Custom code is enabled but it's empty."
-msgstr ""
-"Cancelado. El código personalizado de Toolchange está habilitado pero está "
-"vacío."
-
-#: flatcamObjects/FlatCAMCNCJob.py:938
-msgid "Toolchange G-code was replaced by a custom code."
-msgstr "El código G de Toolchange fue reemplazado por un código personalizado."
-
-#: flatcamObjects/FlatCAMCNCJob.py:986 flatcamObjects/FlatCAMCNCJob.py:996
-msgid ""
-"The used preprocessor file has to have in it's name: 'toolchange_custom'"
-msgstr ""
-"El archivo de postprocesador usado debe tener su nombre: 'toolchange_custom'"
-
-#: flatcamObjects/FlatCAMCNCJob.py:999
-msgid "There is no preprocessor file."
-msgstr "No hay archivo de postprocesador."
-
-#: flatcamObjects/FlatCAMDocument.py:175
-msgid "Document Editor"
-msgstr "Editor de Documentos"
-
-#: flatcamObjects/FlatCAMExcellon.py:514 flatcamObjects/FlatCAMExcellon.py:746
-#: flatcamObjects/FlatCAMGeometry.py:323 flatcamObjects/FlatCAMGeometry.py:795
-#: flatcamTools/ToolNCC.py:811 flatcamTools/ToolNCC.py:1196
-#: flatcamTools/ToolPaint.py:779 flatcamTools/ToolPaint.py:1171
-msgid "Multiple Tools"
-msgstr "Herramientas múltiples"
-
-#: flatcamObjects/FlatCAMExcellon.py:726
-msgid "No Tool Selected"
-msgstr "Ninguna herramienta seleccionada"
-
-#: flatcamObjects/FlatCAMExcellon.py:1076
-#: flatcamObjects/FlatCAMExcellon.py:1168
-#: flatcamObjects/FlatCAMExcellon.py:1355
-msgid "Please select one or more tools from the list and try again."
-msgstr ""
-"Por favor seleccione una o más herramientas de la lista e intente nuevamente."
-
-#: flatcamObjects/FlatCAMExcellon.py:1083
-msgid "Milling tool for DRILLS is larger than hole size. Cancelled."
-msgstr ""
-"La herramienta de fresado para TALADRO es más grande que el tamaño del "
-"orificio. Cancelado."
-
-#: flatcamObjects/FlatCAMExcellon.py:1098
-#: flatcamObjects/FlatCAMExcellon.py:1188
-#: flatcamObjects/FlatCAMExcellon.py:1373
-#: tclCommands/TclCommandDrillcncjob.py:193
-msgid "Tool_nr"
-msgstr "Herramienta_nu"
-
-#: flatcamObjects/FlatCAMExcellon.py:1098
-#: flatcamObjects/FlatCAMExcellon.py:1188
-#: flatcamObjects/FlatCAMExcellon.py:1373
-#: tclCommands/TclCommandDrillcncjob.py:193
-msgid "Drills_Nr"
-msgstr "Taladros_nu"
-
-#: flatcamObjects/FlatCAMExcellon.py:1098
-#: flatcamObjects/FlatCAMExcellon.py:1188
-#: flatcamObjects/FlatCAMExcellon.py:1373
-#: tclCommands/TclCommandDrillcncjob.py:193
-msgid "Slots_Nr"
-msgstr "Ranuras_nu"
-
-#: flatcamObjects/FlatCAMExcellon.py:1177
-msgid "Milling tool for SLOTS is larger than hole size. Cancelled."
-msgstr ""
-"La herramienta de fresado para SLOTS es más grande que el tamaño del "
-"orificio. Cancelado."
-
-#: flatcamObjects/FlatCAMExcellon.py:1281
-#: flatcamObjects/FlatCAMGeometry.py:1571
-msgid "Focus Z"
-msgstr "Enfoque Z"
-
-#: flatcamObjects/FlatCAMExcellon.py:1300
-#: flatcamObjects/FlatCAMGeometry.py:1590
-msgid "Laser Power"
-msgstr "Poder del laser"
-
-#: flatcamObjects/FlatCAMExcellon.py:1430
-#: flatcamObjects/FlatCAMGeometry.py:2027
-#: flatcamObjects/FlatCAMGeometry.py:2031
-#: flatcamObjects/FlatCAMGeometry.py:2176
-msgid "Generating CNC Code"
-msgstr "Generando Código CNC"
-
-#: flatcamObjects/FlatCAMExcellon.py:1620 flatcamTools/ToolNCC.py:918
-#: flatcamTools/ToolPaint.py:844
-msgid "Current Tool parameters were applied to all tools."
-msgstr ""
-"Los parámetros actuales de la herramienta se aplicaron a todas las "
-"herramientas."
-
-#: flatcamObjects/FlatCAMGeometry.py:124 flatcamObjects/FlatCAMGeometry.py:1235
-#: flatcamObjects/FlatCAMGeometry.py:1236
-#: flatcamObjects/FlatCAMGeometry.py:1245
-msgid "Iso"
-msgstr "Aisl"
-
-#: flatcamObjects/FlatCAMGeometry.py:124 flatcamObjects/FlatCAMGeometry.py:464
-#: flatcamObjects/FlatCAMGeometry.py:854 flatcamObjects/FlatCAMGerber.py:891
-#: flatcamObjects/FlatCAMGerber.py:1039 flatcamTools/ToolCutOut.py:690
-#: flatcamTools/ToolCutOut.py:886 flatcamTools/ToolCutOut.py:1046
-msgid "Rough"
-msgstr "Áspero"
-
-#: flatcamObjects/FlatCAMGeometry.py:124
-msgid "Finish"
-msgstr "Terminar"
-
-#: flatcamObjects/FlatCAMGeometry.py:499
-msgid "Add from Tool DB"
-msgstr "Agregar desde la DB de herramientas"
-
-#: flatcamObjects/FlatCAMGeometry.py:873
-msgid "Tool added in Tool Table."
-msgstr "Herramienta añadida en la tabla de herramientas."
-
-#: flatcamObjects/FlatCAMGeometry.py:982 flatcamObjects/FlatCAMGeometry.py:991
-msgid "Failed. Select a tool to copy."
-msgstr "Ha fallado. Seleccione una herramienta para copiar."
-
-#: flatcamObjects/FlatCAMGeometry.py:1020
-msgid "Tool was copied in Tool Table."
-msgstr "La herramienta se copió en la tabla de herramientas."
-
-#: flatcamObjects/FlatCAMGeometry.py:1047
-msgid "Tool was edited in Tool Table."
-msgstr "La herramienta fue editada en la tabla de herramientas."
-
-#: flatcamObjects/FlatCAMGeometry.py:1076
-#: flatcamObjects/FlatCAMGeometry.py:1085
-msgid "Failed. Select a tool to delete."
-msgstr "Ha fallado. Seleccione una herramienta para eliminar."
-
-#: flatcamObjects/FlatCAMGeometry.py:1109
-msgid "Tool was deleted in Tool Table."
-msgstr "La herramienta se eliminó en la tabla de herramientas."
-
-#: flatcamObjects/FlatCAMGeometry.py:1146
-#: flatcamObjects/FlatCAMGeometry.py:1156
-msgid ""
-"Disabled because the tool is V-shape.\n"
-"For V-shape tools the depth of cut is\n"
-"calculated from other parameters like:\n"
-"- 'V-tip Angle' -> angle at the tip of the tool\n"
-"- 'V-tip Dia' -> diameter at the tip of the tool \n"
-"- Tool Dia -> 'Dia' column found in the Tool Table\n"
-"NB: a value of zero means that Tool Dia = 'V-tip Dia'"
-msgstr ""
-"Deshabilitado porque la herramienta tiene forma de V.\n"
-"Para herramientas en forma de V, la profundidad de corte es\n"
-"calculado a partir de otros parámetros como:\n"
-"- 'Ángulo de punta en V' -> ángulo en la punta de la herramienta\n"
-"- 'Diámetro de punta en V' -> diámetro en la punta de la herramienta\n"
-"- Herramienta Dia -> columna 'Dia' encontrada en la tabla de herramientas\n"
-"NB: un valor de cero significa que Tool Dia = 'V-tip Dia'"
-
-#: flatcamObjects/FlatCAMGeometry.py:1643
-msgid "This Geometry can't be processed because it is"
-msgstr "Esta geometría no se puede procesar porque es"
-
-#: flatcamObjects/FlatCAMGeometry.py:1643
-msgid "geometry"
-msgstr "geometría"
-
-#: flatcamObjects/FlatCAMGeometry.py:1684
-msgid "Failed. No tool selected in the tool table ..."
-msgstr ""
-"Ha fallado. Ninguna herramienta seleccionada en la tabla de herramientas ..."
-
-#: flatcamObjects/FlatCAMGeometry.py:1786
-#: flatcamObjects/FlatCAMGeometry.py:1936
-msgid ""
-"Tool Offset is selected in Tool Table but no value is provided.\n"
-"Add a Tool Offset or change the Offset Type."
-msgstr ""
-"La Herramienta de desplazamiento se selecciona en la Tabla de herramientas "
-"pero no se proporciona ningún valor.\n"
-"Agregue una Herramienta de compensación o cambie el Tipo de compensación."
-
-#: flatcamObjects/FlatCAMGeometry.py:1852
-#: flatcamObjects/FlatCAMGeometry.py:1998
-msgid "G-Code parsing in progress..."
-msgstr "Análisis de código G en progreso ..."
-
-#: flatcamObjects/FlatCAMGeometry.py:1854
-#: flatcamObjects/FlatCAMGeometry.py:2000
-msgid "G-Code parsing finished..."
-msgstr "Análisis de código G terminado ..."
-
-#: flatcamObjects/FlatCAMGeometry.py:1862
-msgid "Finished G-Code processing"
-msgstr "Procesamiento de código G terminado"
-
-#: flatcamObjects/FlatCAMGeometry.py:1864
-#: flatcamObjects/FlatCAMGeometry.py:2012
-msgid "G-Code processing failed with error"
-msgstr "El procesamiento del código G falló con error"
-
-#: flatcamObjects/FlatCAMGeometry.py:1906 flatcamTools/ToolSolderPaste.py:1301
-msgid "Cancelled. Empty file, it has no geometry"
-msgstr "Cancelado. Archivo vacío, no tiene geometría"
-
-#: flatcamObjects/FlatCAMGeometry.py:2010
-#: flatcamObjects/FlatCAMGeometry.py:2171
-msgid "Finished G-Code processing..."
-msgstr "Procesamiento de código G terminado ..."
-
-#: flatcamObjects/FlatCAMGeometry.py:2029
-#: flatcamObjects/FlatCAMGeometry.py:2033
-#: flatcamObjects/FlatCAMGeometry.py:2178
-msgid "CNCjob created"
-msgstr "CNCjob creado"
-
-#: flatcamObjects/FlatCAMGeometry.py:2209
-#: flatcamObjects/FlatCAMGeometry.py:2218 flatcamParsers/ParseGerber.py:1867
-#: flatcamParsers/ParseGerber.py:1877
-msgid "Scale factor has to be a number: integer or float."
-msgstr "El factor de escala debe ser un número: entero o Real."
-
-#: flatcamObjects/FlatCAMGeometry.py:2281
-msgid "Geometry Scale done."
-msgstr "Escala de geometría realizada."
-
-#: flatcamObjects/FlatCAMGeometry.py:2298 flatcamParsers/ParseGerber.py:1993
-msgid ""
-"An (x,y) pair of values are needed. Probable you entered only one value in "
-"the Offset field."
-msgstr ""
-"Se necesita un par de valores (x, y). Probablemente haya ingresado un solo "
-"valor en el campo Desplazamiento."
-
-#: flatcamObjects/FlatCAMGeometry.py:2354
-msgid "Geometry Offset done."
-msgstr "Desplazamiento de geometría realizado."
-
-#: flatcamObjects/FlatCAMGeometry.py:2383
-msgid ""
-"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, "
-"y)\n"
-"but now there is only one value, not two."
-msgstr ""
-"El campo Toolchange X, Y en Editar -> Preferencias tiene que estar en el "
-"formato (x, y)\n"
-"pero ahora solo hay un valor, no dos."
-
-#: flatcamObjects/FlatCAMGeometry.py:2577
-#: flatcamTools/ToolCopperThieving.py:769 flatcamTools/ToolNCC.py:1648
-msgid "Click the start point of the area."
-msgstr "Haga clic en el punto de inicio del área."
-
-#: flatcamObjects/FlatCAMGeometry.py:2619
-msgid "Click the end point of the area."
-msgstr "Haga clic en el punto final del área."
-
-#: flatcamObjects/FlatCAMGeometry.py:2625
-#: flatcamObjects/FlatCAMGeometry.py:2677
-#: flatcamTools/ToolCopperThieving.py:826 flatcamTools/ToolNCC.py:1710
-#: flatcamTools/ToolNCC.py:1762 flatcamTools/ToolPaint.py:1606
-#: flatcamTools/ToolPaint.py:1657
-msgid "Zone added. Click to start adding next zone or right click to finish."
-msgstr ""
-"Zona agregada. Haga clic para comenzar a agregar la siguiente zona o haga "
-"clic con el botón derecho para finalizar."
-
-#: flatcamObjects/FlatCAMGeometry.py:2729
-msgid "Cancelled. Area exclusion drawing was interrupted."
-msgstr "Cancelado. Se interrumpió el dibujo de exclusión de área."
-
-#: flatcamObjects/FlatCAMGerber.py:494
-msgid "Buffering solid geometry"
-msgstr "Amortiguación de geometría sólida"
-
-#: flatcamObjects/FlatCAMGerber.py:503
-msgid "Done"
-msgstr "Hecho"
-
-#: flatcamObjects/FlatCAMGerber.py:529 flatcamObjects/FlatCAMGerber.py:555
-msgid "Operation could not be done."
-msgstr "La operación no se pudo hacer."
-
-#: flatcamObjects/FlatCAMGerber.py:572
-msgid "Isolating..."
-msgstr "Aislando ..."
-
-#: flatcamObjects/FlatCAMGerber.py:631
-msgid "Click on a polygon to isolate it."
-msgstr "Haga clic en un polígono para aislarlo."
-
-#: flatcamObjects/FlatCAMGerber.py:670 flatcamObjects/FlatCAMGerber.py:774
-#: flatcamTools/ToolPaint.py:1516
-msgid "Added polygon"
-msgstr "Polígono agregado"
-
-#: flatcamObjects/FlatCAMGerber.py:671 flatcamObjects/FlatCAMGerber.py:776
-msgid "Click to add next polygon or right click to start isolation."
-msgstr ""
-"Haga clic para agregar el siguiente polígono o haga clic con el botón "
-"derecho para iniciar el aislamiento."
-
-#: flatcamObjects/FlatCAMGerber.py:683 flatcamTools/ToolPaint.py:1530
-msgid "Removed polygon"
-msgstr "Polígono eliminado"
-
-#: flatcamObjects/FlatCAMGerber.py:684
-msgid "Click to add/remove next polygon or right click to start isolation."
-msgstr ""
-"Haga clic para agregar / eliminar el siguiente polígono o haga clic con el "
-"botón derecho para iniciar el aislamiento."
-
-#: flatcamObjects/FlatCAMGerber.py:689 flatcamTools/ToolPaint.py:1536
-msgid "No polygon detected under click position."
-msgstr "No se detectó ningún polígono bajo la posición de clic."
-
-#: flatcamObjects/FlatCAMGerber.py:710 flatcamTools/ToolPaint.py:1565
-msgid "List of single polygons is empty. Aborting."
-msgstr "La lista de polígonos individuales está vacía. Abortar."
-
-#: flatcamObjects/FlatCAMGerber.py:779
-msgid "No polygon in selection."
-msgstr "No hay polígono en la selección."
-
-#: flatcamObjects/FlatCAMGerber.py:907 flatcamObjects/FlatCAMGerber.py:986
-#: flatcamTools/ToolNCC.py:2086 flatcamTools/ToolNCC.py:3137
-#: flatcamTools/ToolNCC.py:3516
-msgid "Isolation geometry could not be generated."
-msgstr "La geometría de aislamiento no se pudo generar."
-
-#: flatcamObjects/FlatCAMGerber.py:932 flatcamObjects/FlatCAMGerber.py:1064
-msgid "Isolation geometry created"
-msgstr "Geometría de aislamiento creada"
-
-#: flatcamObjects/FlatCAMGerber.py:941 flatcamObjects/FlatCAMGerber.py:1071
-msgid "Subtracting Geo"
-msgstr "Restando Geo"
-
-#: flatcamObjects/FlatCAMGerber.py:1396
-msgid "Plotting Apertures"
-msgstr "Aperturas de trazado"
-
-#: flatcamObjects/FlatCAMObj.py:234
-msgid "Name changed from"
-msgstr "Nombre cambiado de"
-
-#: flatcamObjects/FlatCAMObj.py:234
-msgid "to"
-msgstr "a"
-
-#: flatcamObjects/FlatCAMObj.py:245
-msgid "Offsetting..."
-msgstr "Compensación ..."
-
-#: flatcamObjects/FlatCAMObj.py:259 flatcamObjects/FlatCAMObj.py:264
-msgid "Scaling could not be executed."
-msgstr "No se pudo ejecutar el escalado."
-
-#: flatcamObjects/FlatCAMObj.py:268 flatcamObjects/FlatCAMObj.py:276
-msgid "Scale done."
-msgstr "Escala hecha."
-
-#: flatcamObjects/FlatCAMObj.py:274
-msgid "Scaling..."
-msgstr "Escalando..."
-
-#: flatcamObjects/FlatCAMObj.py:292
-msgid "Skewing..."
-msgstr "Sesgar..."
-
-#: flatcamObjects/FlatCAMScript.py:163
-msgid "Script Editor"
-msgstr "Editor de guiones"
-
-#: flatcamObjects/ObjectCollection.py:510
-#, python-brace-format
-msgid "Object renamed from {old} to {new}"
-msgstr "Objeto renombrado de {old} a {new}"
-
-#: flatcamObjects/ObjectCollection.py:983
-msgid "Cause of error"
-msgstr "Causa del error"
-
-#: flatcamParsers/ParseExcellon.py:316
-msgid "This is GCODE mark"
-msgstr "Esta es la marca GCODE"
-
-#: flatcamParsers/ParseExcellon.py:433
-msgid ""
-"No tool diameter info's. See shell.\n"
-"A tool change event: T"
-msgstr ""
-"No hay información de diámetro de herramienta. Ver caparazón.\n"
-"Un evento de cambio de herramienta: T"
-
-#: flatcamParsers/ParseExcellon.py:436
-msgid ""
-"was found but the Excellon file have no informations regarding the tool "
-"diameters therefore the application will try to load it by using some 'fake' "
-"diameters.\n"
-"The user needs to edit the resulting Excellon object and change the "
-"diameters to reflect the real diameters."
-msgstr ""
-"se encontró pero el archivo Excellon no tiene información sobre los "
-"diámetros de la herramienta, por lo tanto, la aplicación intentará cargarlo "
-"utilizando algunos diámetros 'falsos'.\n"
-"El usuario necesita editar el objeto Excellon resultante y cambiar los "
-"diámetros para reflejar los diámetros reales."
-
-#: flatcamParsers/ParseExcellon.py:900
-msgid ""
-"Excellon Parser error.\n"
-"Parsing Failed. Line"
-msgstr ""
-"Error del analizador Excellon.\n"
-"El análisis falló. Línea"
-
-#: flatcamParsers/ParseExcellon.py:982
-msgid ""
-"Excellon.create_geometry() -> a drill location was skipped due of not having "
-"a tool associated.\n"
-"Check the resulting GCode."
-msgstr ""
-"Excellon.create_geometry() -> se omitió la ubicación de un taladro por no "
-"tener una herramienta asociada.\n"
-"Compruebe el GCode resultante."
-
-#: flatcamParsers/ParseFont.py:303
-msgid "Font not supported, try another one."
-msgstr "Fuente no compatible, prueba con otra."
-
-#: flatcamParsers/ParseGerber.py:426
-msgid "Gerber processing. Parsing"
-msgstr "Procesamiento de Gerber. Analizando"
-
-#: flatcamParsers/ParseGerber.py:426 flatcamParsers/ParseHPGL2.py:182
-msgid "lines"
-msgstr "líneas"
-
-#: flatcamParsers/ParseGerber.py:1002 flatcamParsers/ParseGerber.py:1102
-#: flatcamParsers/ParseHPGL2.py:275 flatcamParsers/ParseHPGL2.py:289
-#: flatcamParsers/ParseHPGL2.py:308 flatcamParsers/ParseHPGL2.py:332
-#: flatcamParsers/ParseHPGL2.py:367
-msgid "Coordinates missing, line ignored"
-msgstr "Coordenadas faltantes, línea ignorada"
-
-#: flatcamParsers/ParseGerber.py:1004 flatcamParsers/ParseGerber.py:1104
-msgid "GERBER file might be CORRUPT. Check the file !!!"
-msgstr "GERBER archivo podría ser Dañado. Revisa el archivo !!!"
-
-#: flatcamParsers/ParseGerber.py:1058
-msgid ""
-"Region does not have enough points. File will be processed but there are "
-"parser errors. Line number"
-msgstr ""
-"Región no tiene suficientes puntos. El archivo será procesado pero hay "
-"errores del analizador. Línea de números: %s"
-
-#: flatcamParsers/ParseGerber.py:1488 flatcamParsers/ParseHPGL2.py:402
-msgid "Gerber processing. Joining polygons"
-msgstr "Procesamiento de Gerber. Unir polígonos"
-
-#: flatcamParsers/ParseGerber.py:1505
-msgid "Gerber processing. Applying Gerber polarity."
-msgstr "Procesamiento de Gerber. Aplicando la polaridad de Gerber."
-
-#: flatcamParsers/ParseGerber.py:1565
-msgid "Gerber Line"
-msgstr "Linea Gerber"
-
-#: flatcamParsers/ParseGerber.py:1565
-msgid "Gerber Line Content"
-msgstr "Contenido de la línea Gerber"
-
-#: flatcamParsers/ParseGerber.py:1567
-msgid "Gerber Parser ERROR"
-msgstr "Analizador Gerber ERROR"
-
-#: flatcamParsers/ParseGerber.py:1957
-msgid "Gerber Scale done."
-msgstr "Escala de Gerber hecha."
-
-#: flatcamParsers/ParseGerber.py:2049
-msgid "Gerber Offset done."
-msgstr "Gerber Offset hecho."
-
-#: flatcamParsers/ParseGerber.py:2125
-msgid "Gerber Mirror done."
-msgstr "Espejo Gerber hecho."
-
-#: flatcamParsers/ParseGerber.py:2199
-msgid "Gerber Skew done."
-msgstr "Gerber Sesgo hecho."
-
-#: flatcamParsers/ParseGerber.py:2261
-msgid "Gerber Rotate done."
-msgstr "Rotar Gerber hecho."
-
-#: flatcamParsers/ParseGerber.py:2418
-msgid "Gerber Buffer done."
-msgstr "Gerber Buffer hecho."
-
-#: flatcamParsers/ParseHPGL2.py:182
-msgid "HPGL2 processing. Parsing"
-msgstr "Procesamiento de HPGL2 . Analizando"
-
-#: flatcamParsers/ParseHPGL2.py:414
-msgid "HPGL2 Line"
-msgstr "Línea HPGL2"
-
-#: flatcamParsers/ParseHPGL2.py:414
-msgid "HPGL2 Line Content"
-msgstr "Contenido de línea HPGL2"
-
-#: flatcamParsers/ParseHPGL2.py:415
-msgid "HPGL2 Parser ERROR"
-msgstr "Analizador HPGL2 ERROR"
-
-#: flatcamTools/ToolAlignObjects.py:32
-msgid "Align Objects"
-msgstr "Alinear objetos"
-
-#: flatcamTools/ToolAlignObjects.py:61
-msgid "MOVING object"
-msgstr "Objeto en movimiento"
-
-#: flatcamTools/ToolAlignObjects.py:65
-msgid ""
-"Specify the type of object to be aligned.\n"
-"It can be of type: Gerber or Excellon.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Object combobox."
-msgstr ""
-"Especifique el tipo de objeto a alinear.\n"
-"Puede ser de tipo: Gerber o Excellon.\n"
-"La selección aquí decide el tipo de objetos que serán\n"
-"en el cuadro combinado Objeto."
-
-#: flatcamTools/ToolAlignObjects.py:86
-msgid "Object to be aligned."
-msgstr "Objeto a alinear."
-
-#: flatcamTools/ToolAlignObjects.py:98
-msgid "TARGET object"
-msgstr "Objeto OBJETIVO"
-
-#: flatcamTools/ToolAlignObjects.py:100
-msgid ""
-"Specify the type of object to be aligned to.\n"
-"It can be of type: Gerber or Excellon.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Object combobox."
-msgstr ""
-"Especifique el tipo de objeto a alinear.\n"
-"Puede ser de tipo: Gerber o Excellon.\n"
-"La selección aquí decide el tipo de objetos que serán\n"
-"en el cuadro combinado Objeto."
-
-#: flatcamTools/ToolAlignObjects.py:122
-msgid "Object to be aligned to. Aligner."
-msgstr "Objeto a alinear. Alineador."
-
-#: flatcamTools/ToolAlignObjects.py:135
-msgid "Alignment Type"
-msgstr "Tipo de alineación"
-
-#: flatcamTools/ToolAlignObjects.py:137
-msgid ""
-"The type of alignment can be:\n"
-"- Single Point -> it require a single point of sync, the action will be a "
-"translation\n"
-"- Dual Point -> it require two points of sync, the action will be "
-"translation followed by rotation"
-msgstr ""
-"El tipo de alineación puede ser:\n"
-"- Punto único -> requiere un único punto de sincronización, la acción será "
-"una traducción\n"
-"- Punto doble -> requiere dos puntos de sincronización, la acción será "
-"traslación seguida de rotación"
-
-#: flatcamTools/ToolAlignObjects.py:143
-msgid "Single Point"
-msgstr "Punto único"
-
-#: flatcamTools/ToolAlignObjects.py:144
-msgid "Dual Point"
-msgstr "Punto doble"
-
-#: flatcamTools/ToolAlignObjects.py:159
-msgid "Align Object"
-msgstr "Alinear objeto"
-
-#: flatcamTools/ToolAlignObjects.py:161
-msgid ""
-"Align the specified object to the aligner object.\n"
-"If only one point is used then it assumes translation.\n"
-"If tho points are used it assume translation and rotation."
-msgstr ""
-"Alinee el objeto especificado con el objeto alineador.\n"
-"Si solo se utiliza un punto, se supone que se traduce.\n"
-"Si se utilizan estos puntos, se supone traslación y rotación."
-
-#: flatcamTools/ToolAlignObjects.py:176 flatcamTools/ToolCalculators.py:246
-#: flatcamTools/ToolCalibration.py:683 flatcamTools/ToolCopperThieving.py:484
-#: flatcamTools/ToolCutOut.py:362 flatcamTools/ToolDblSided.py:471
-#: flatcamTools/ToolExtractDrills.py:310 flatcamTools/ToolFiducials.py:318
-#: flatcamTools/ToolFilm.py:520 flatcamTools/ToolInvertGerber.py:140
-#: flatcamTools/ToolNCC.py:612 flatcamTools/ToolOptimal.py:237
-#: flatcamTools/ToolPaint.py:556 flatcamTools/ToolPanelize.py:269
-#: flatcamTools/ToolPunchGerber.py:339 flatcamTools/ToolQRCode.py:314
-#: flatcamTools/ToolRulesCheck.py:516 flatcamTools/ToolSolderPaste.py:473
-#: flatcamTools/ToolSub.py:176 flatcamTools/ToolTransform.py:398
-msgid "Reset Tool"
-msgstr "Restablecer la Herramienta"
-
-#: flatcamTools/ToolAlignObjects.py:178 flatcamTools/ToolCalculators.py:248
-#: flatcamTools/ToolCalibration.py:685 flatcamTools/ToolCopperThieving.py:486
-#: flatcamTools/ToolCutOut.py:364 flatcamTools/ToolDblSided.py:473
-#: flatcamTools/ToolExtractDrills.py:312 flatcamTools/ToolFiducials.py:320
-#: flatcamTools/ToolFilm.py:522 flatcamTools/ToolInvertGerber.py:142
-#: flatcamTools/ToolNCC.py:614 flatcamTools/ToolOptimal.py:239
-#: flatcamTools/ToolPaint.py:558 flatcamTools/ToolPanelize.py:271
-#: flatcamTools/ToolPunchGerber.py:341 flatcamTools/ToolQRCode.py:316
-#: flatcamTools/ToolRulesCheck.py:518 flatcamTools/ToolSolderPaste.py:475
-#: flatcamTools/ToolSub.py:178 flatcamTools/ToolTransform.py:400
-msgid "Will reset the tool parameters."
-msgstr "Restablecerá los parámetros de la herramienta."
-
-#: flatcamTools/ToolAlignObjects.py:244
-msgid "Align Tool"
-msgstr "Herram. de Alineación"
-
-#: flatcamTools/ToolAlignObjects.py:289
-msgid "There is no aligned FlatCAM object selected..."
-msgstr "No hay ningún objeto FlatCAM alineado seleccionado ..."
-
-#: flatcamTools/ToolAlignObjects.py:299
-msgid "There is no aligner FlatCAM object selected..."
-msgstr "No hay ningún objeto FlatCAM alineador seleccionado ..."
-
-#: flatcamTools/ToolAlignObjects.py:325 flatcamTools/ToolAlignObjects.py:385
-msgid "First Point"
-msgstr "Primer Punto"
-
-#: flatcamTools/ToolAlignObjects.py:325 flatcamTools/ToolAlignObjects.py:400
-msgid "Click on the START point."
-msgstr "Haga clic en el punto de INICIO."
-
-#: flatcamTools/ToolAlignObjects.py:380 flatcamTools/ToolCalibration.py:920
-msgid "Cancelled by user request."
-msgstr "Cancelado por solicitud del usuario."
-
-#: flatcamTools/ToolAlignObjects.py:385 flatcamTools/ToolAlignObjects.py:407
-msgid "Click on the DESTINATION point."
-msgstr "Haga clic en el punto DESTINO."
-
-#: flatcamTools/ToolAlignObjects.py:385 flatcamTools/ToolAlignObjects.py:400
-#: flatcamTools/ToolAlignObjects.py:407
-msgid "Or right click to cancel."
-msgstr "O haga clic derecho para cancelar."
-
-#: flatcamTools/ToolAlignObjects.py:400 flatcamTools/ToolAlignObjects.py:407
-#: flatcamTools/ToolFiducials.py:111
-msgid "Second Point"
-msgstr "Segundo punto"
-
-#: flatcamTools/ToolCalculators.py:24
-msgid "Calculators"
-msgstr "Calculadoras"
-
-#: flatcamTools/ToolCalculators.py:26
-msgid "Units Calculator"
-msgstr "Calculadora de unidades"
-
-#: flatcamTools/ToolCalculators.py:70
-msgid "Here you enter the value to be converted from INCH to MM"
-msgstr "Aquí ingresa el valor a convertir de PULGADAS a MM"
-
-#: flatcamTools/ToolCalculators.py:75
-msgid "Here you enter the value to be converted from MM to INCH"
-msgstr "Aquí ingresa el valor a convertir de MM a PULGADA"
-
-#: flatcamTools/ToolCalculators.py:111
-msgid ""
-"This is the angle of the tip of the tool.\n"
-"It is specified by manufacturer."
-msgstr ""
-"Este es el ángulo de la punta de la herramienta.\n"
-"Está especificado por el fabricante."
-
-#: flatcamTools/ToolCalculators.py:120
-msgid ""
-"This is the depth to cut into the material.\n"
-"In the CNCJob is the CutZ parameter."
-msgstr ""
-"Esta es la profundidad para cortar el material.\n"
-"En el CNCJob se encuentra el parámetro CutZ."
-
-#: flatcamTools/ToolCalculators.py:128
-msgid ""
-"This is the tool diameter to be entered into\n"
-"FlatCAM Gerber section.\n"
-"In the CNCJob section it is called >Tool dia<."
-msgstr ""
-"Este es el diámetro de la herramienta a ingresar\n"
-"Sección FlatCAM Gerber.\n"
-"En la sección CNCJob se llama >diá. de herra.<."
-
-#: flatcamTools/ToolCalculators.py:139 flatcamTools/ToolCalculators.py:235
-msgid "Calculate"
-msgstr "Calcular"
-
-#: flatcamTools/ToolCalculators.py:142
-msgid ""
-"Calculate either the Cut Z or the effective tool diameter,\n"
-" depending on which is desired and which is known. "
-msgstr ""
-"Calcule el corte Z o el diámetro efectivo de la herramienta,\n"
-"dependiendo de cuál se desee y cuál se conozca. "
-
-#: flatcamTools/ToolCalculators.py:205
-msgid "Current Value"
-msgstr "Valor actual"
-
-#: flatcamTools/ToolCalculators.py:212
-msgid ""
-"This is the current intensity value\n"
-"to be set on the Power Supply. In Amps."
-msgstr ""
-"Este es el valor de intensidad actual\n"
-"para configurar en la fuente de alimentación. En amperios."
-
-#: flatcamTools/ToolCalculators.py:216
-msgid "Time"
-msgstr "Hora"
-
-#: flatcamTools/ToolCalculators.py:223
-msgid ""
-"This is the calculated time required for the procedure.\n"
-"In minutes."
-msgstr ""
-"Este es el tiempo calculado requerido para el procedimiento.\n"
-"En minutos."
-
-#: flatcamTools/ToolCalculators.py:238
-msgid ""
-"Calculate the current intensity value and the procedure time,\n"
-"depending on the parameters above"
-msgstr ""
-"Calcule el valor de intensidad actual y el tiempo del procedimiento,\n"
-"dependiendo de los parámetros anteriores"
-
-#: flatcamTools/ToolCalculators.py:299
-msgid "Calc. Tool"
-msgstr "Calc. Herramienta"
-
-#: flatcamTools/ToolCalibration.py:67
-msgid "GCode Parameters"
-msgstr "Parámetros GCode"
-
-#: flatcamTools/ToolCalibration.py:69
-msgid "Parameters used when creating the GCode in this tool."
-msgstr "Parámetros utilizados al crear el GCode en esta herramienta."
-
-#: flatcamTools/ToolCalibration.py:173
-msgid "STEP 1: Acquire Calibration Points"
-msgstr "PASO 1: Adquiera puntos de calibración"
-
-#: flatcamTools/ToolCalibration.py:175
-msgid ""
-"Pick four points by clicking on canvas.\n"
-"Those four points should be in the four\n"
-"(as much as possible) corners of the object."
-msgstr ""
-"Elija cuatro puntos haciendo clic en el lienzo.\n"
-"Esos cuatro puntos deberían estar en los cuatro\n"
-"(tanto como sea posible) esquinas del objeto."
-
-#: flatcamTools/ToolCalibration.py:193 flatcamTools/ToolFilm.py:76
-#: flatcamTools/ToolImage.py:54 flatcamTools/ToolPanelize.py:78
-#: flatcamTools/ToolProperties.py:177
-msgid "Object Type"
-msgstr "Tipo de objeto"
-
-#: flatcamTools/ToolCalibration.py:210
-msgid "Source object selection"
-msgstr "Selección de objeto de origen"
-
-#: flatcamTools/ToolCalibration.py:212
-msgid "FlatCAM Object to be used as a source for reference points."
-msgstr "Objeto FlatCAM que se utilizará como fuente de puntos de referencia."
-
-#: flatcamTools/ToolCalibration.py:218
-msgid "Calibration Points"
-msgstr "Puntos de calibración"
-
-#: flatcamTools/ToolCalibration.py:220
-msgid ""
-"Contain the expected calibration points and the\n"
-"ones measured."
-msgstr ""
-"Contiene los puntos de calibración esperados y el\n"
-"los medidos."
-
-#: flatcamTools/ToolCalibration.py:235 flatcamTools/ToolSub.py:76
-#: flatcamTools/ToolSub.py:131
-msgid "Target"
-msgstr "Objetivo"
-
-#: flatcamTools/ToolCalibration.py:236
-msgid "Found Delta"
-msgstr "Delta encontrado"
-
-#: flatcamTools/ToolCalibration.py:248
-msgid "Bot Left X"
-msgstr "Abajo a la izquierda X"
-
-#: flatcamTools/ToolCalibration.py:257
-msgid "Bot Left Y"
-msgstr "Abajo a la izquierda Y"
-
-#: flatcamTools/ToolCalibration.py:275
-msgid "Bot Right X"
-msgstr "Abajo a la derecho X"
-
-#: flatcamTools/ToolCalibration.py:285
-msgid "Bot Right Y"
-msgstr "Abajo a la derecho Y"
-
-#: flatcamTools/ToolCalibration.py:300
-msgid "Top Left X"
-msgstr "Arriba a la izquierda X"
-
-#: flatcamTools/ToolCalibration.py:309
-msgid "Top Left Y"
-msgstr "Arriba a la izquierda Y"
-
-#: flatcamTools/ToolCalibration.py:324
-msgid "Top Right X"
-msgstr "Arriba a la derecho X"
-
-#: flatcamTools/ToolCalibration.py:334
-msgid "Top Right Y"
-msgstr "Arriba a la derecho Y"
-
-#: flatcamTools/ToolCalibration.py:367
-msgid "Get Points"
-msgstr "Obtener puntos"
-
-#: flatcamTools/ToolCalibration.py:369
-msgid ""
-"Pick four points by clicking on canvas if the source choice\n"
-"is 'free' or inside the object geometry if the source is 'object'.\n"
-"Those four points should be in the four squares of\n"
-"the object."
-msgstr ""
-"Elija cuatro puntos haciendo clic en el lienzo si la opción de origen\n"
-"es 'libre' o está dentro de la geometría del objeto si la fuente es "
-"'objeto'.\n"
-"Esos cuatro puntos deben estar en los cuatro cuadrados de\n"
-"el objeto."
-
-#: flatcamTools/ToolCalibration.py:390
-msgid "STEP 2: Verification GCode"
-msgstr "PASO 2: Verificación GCode"
-
-#: flatcamTools/ToolCalibration.py:392 flatcamTools/ToolCalibration.py:405
-msgid ""
-"Generate GCode file to locate and align the PCB by using\n"
-"the four points acquired above.\n"
-"The points sequence is:\n"
-"- first point -> set the origin\n"
-"- second point -> alignment point. Can be: top-left or bottom-right.\n"
-"- third point -> check point. Can be: top-left or bottom-right.\n"
-"- forth point -> final verification point. Just for evaluation."
-msgstr ""
-"Genere un archivo GCode para localizar y alinear la PCB utilizando\n"
-"Los cuatro puntos adquiridos anteriormente.\n"
-"La secuencia de puntos es:\n"
-"- primer punto -> establecer el origen\n"
-"- segundo punto -> punto de alineación. Puede ser: arriba a la izquierda o "
-"abajo a la derecha.\n"
-"- tercer punto -> punto de control. Puede ser: arriba a la izquierda o abajo "
-"a la derecha.\n"
-"- cuarto punto -> punto de verificación final. Solo para evaluación."
-
-#: flatcamTools/ToolCalibration.py:403 flatcamTools/ToolSolderPaste.py:348
-msgid "Generate GCode"
-msgstr "Generar GCode"
-
-#: flatcamTools/ToolCalibration.py:429
-msgid "STEP 3: Adjustments"
-msgstr "PASO 3: Ajustes"
-
-#: flatcamTools/ToolCalibration.py:431 flatcamTools/ToolCalibration.py:440
-msgid ""
-"Calculate Scale and Skew factors based on the differences (delta)\n"
-"found when checking the PCB pattern. The differences must be filled\n"
-"in the fields Found (Delta)."
-msgstr ""
-"Calcular factores de escala y sesgo basados en las diferencias (delta)\n"
-"encontrado al verificar el patrón de PCB. Las diferencias deben llenarse\n"
-"en los campos encontrados (Delta)."
-
-#: flatcamTools/ToolCalibration.py:438
-msgid "Calculate Factors"
-msgstr "Calcular factores"
-
-#: flatcamTools/ToolCalibration.py:460
-msgid "STEP 4: Adjusted GCode"
-msgstr "PASO 4: Código GC ajustado"
-
-#: flatcamTools/ToolCalibration.py:462
-msgid ""
-"Generate verification GCode file adjusted with\n"
-"the factors above."
-msgstr ""
-"Generar un archivo GCode de verificación ajustado con\n"
-"Los factores anteriores."
-
-#: flatcamTools/ToolCalibration.py:467
-msgid "Scale Factor X:"
-msgstr "Factor de escala X:"
-
-#: flatcamTools/ToolCalibration.py:479
-msgid "Scale Factor Y:"
-msgstr "Factor de escala Y:"
-
-#: flatcamTools/ToolCalibration.py:491
-msgid "Apply Scale Factors"
-msgstr "Aplicar factores de escala"
-
-#: flatcamTools/ToolCalibration.py:493
-msgid "Apply Scale factors on the calibration points."
-msgstr "Aplicar factores de escala en los puntos de calibración."
-
-#: flatcamTools/ToolCalibration.py:503
-msgid "Skew Angle X:"
-msgstr "Ángulo de Sesgar X:"
-
-#: flatcamTools/ToolCalibration.py:516
-msgid "Skew Angle Y:"
-msgstr "Ángulo de Sesgar Y:"
-
-#: flatcamTools/ToolCalibration.py:529
-msgid "Apply Skew Factors"
-msgstr "Aplicar factores Sesgados"
-
-#: flatcamTools/ToolCalibration.py:531
-msgid "Apply Skew factors on the calibration points."
-msgstr "Aplicar factores de inclinación en los puntos de calibración."
-
-#: flatcamTools/ToolCalibration.py:600
-msgid "Generate Adjusted GCode"
-msgstr "Generar código GC ajustado"
-
-#: flatcamTools/ToolCalibration.py:602
-msgid ""
-"Generate verification GCode file adjusted with\n"
-"the factors set above.\n"
-"The GCode parameters can be readjusted\n"
-"before clicking this button."
-msgstr ""
-"Generar un archivo GCode de verificación ajustado con\n"
-"Los factores establecidos anteriormente.\n"
-"Los parámetros GCode se pueden reajustar\n"
-"antes de hacer clic en este botón."
-
-#: flatcamTools/ToolCalibration.py:623
-msgid "STEP 5: Calibrate FlatCAM Objects"
-msgstr "PASO 5: Calibrar objetos FlatCAM"
-
-#: flatcamTools/ToolCalibration.py:625
-msgid ""
-"Adjust the FlatCAM objects\n"
-"with the factors determined and verified above."
-msgstr ""
-"Ajuste los objetos FlatCAM\n"
-"con los factores determinados y verificados anteriormente."
-
-#: flatcamTools/ToolCalibration.py:637
-msgid "Adjusted object type"
-msgstr "Tipo de objeto ajustado"
-
-#: flatcamTools/ToolCalibration.py:638
-msgid "Type of the FlatCAM Object to be adjusted."
-msgstr "Tipo del objeto FlatCAM que se ajustará."
-
-#: flatcamTools/ToolCalibration.py:651
-msgid "Adjusted object selection"
-msgstr "Selección de objeto ajustada"
-
-#: flatcamTools/ToolCalibration.py:653
-msgid "The FlatCAM Object to be adjusted."
-msgstr "El objeto FlatCAM a ajustar."
-
-#: flatcamTools/ToolCalibration.py:660
-msgid "Calibrate"
-msgstr "Calibrar"
-
-#: flatcamTools/ToolCalibration.py:662
-msgid ""
-"Adjust (scale and/or skew) the objects\n"
-"with the factors determined above."
-msgstr ""
-"Ajustar (escalar y / o sesgar) los objetos\n"
-"con los factores determinados anteriormente."
-
-#: flatcamTools/ToolCalibration.py:770 flatcamTools/ToolCalibration.py:771
-msgid "Origin"
-msgstr "Origen"
-
-#: flatcamTools/ToolCalibration.py:800
-msgid "Tool initialized"
-msgstr "Herramienta inicializada"
-
-#: flatcamTools/ToolCalibration.py:838
-msgid "There is no source FlatCAM object selected..."
-msgstr "No hay ningún objeto FlatCAM de origen seleccionado ..."
-
-#: flatcamTools/ToolCalibration.py:859
-msgid "Get First calibration point. Bottom Left..."
-msgstr "Obtenga el primer punto de calibración. Abajo a la izquierda ..."
-
-#: flatcamTools/ToolCalibration.py:926
-msgid "Get Second calibration point. Bottom Right (Top Left)..."
-msgstr ""
-"Obtenga el segundo punto de calibración. Abajo a la derecha (arriba a la "
-"izquierda) ..."
-
-#: flatcamTools/ToolCalibration.py:930
-msgid "Get Third calibration point. Top Left (Bottom Right)..."
-msgstr ""
-"Obtenga el tercer punto de calibración. Arriba a la izquierda, abajo a la "
-"derecha)..."
-
-#: flatcamTools/ToolCalibration.py:934
-msgid "Get Forth calibration point. Top Right..."
-msgstr "Obtenga el punto de calibración Forth. Parte superior derecha..."
-
-#: flatcamTools/ToolCalibration.py:938
-msgid "Done. All four points have been acquired."
-msgstr "Hecho. Los cuatro puntos han sido adquiridos."
-
-#: flatcamTools/ToolCalibration.py:969
-msgid "Verification GCode for FlatCAM Calibration Tool"
-msgstr "Verificación GCode para la herramienta de calibración FlatCAM"
-
-#: flatcamTools/ToolCalibration.py:981 flatcamTools/ToolCalibration.py:1067
-msgid "Gcode Viewer"
-msgstr "Visor de Gcode"
-
-#: flatcamTools/ToolCalibration.py:997
-msgid "Cancelled. Four points are needed for GCode generation."
-msgstr "Cancelado. Se necesitan cuatro puntos para la generación de GCode."
-
-#: flatcamTools/ToolCalibration.py:1253 flatcamTools/ToolCalibration.py:1349
-msgid "There is no FlatCAM object selected..."
-msgstr "No hay ningún objeto FlatCAM seleccionado ..."
-
-#: flatcamTools/ToolCopperThieving.py:76 flatcamTools/ToolFiducials.py:261
-msgid "Gerber Object to which will be added a copper thieving."
-msgstr "Gerber Objeto al que se agregará un Copper Thieving."
-
-#: flatcamTools/ToolCopperThieving.py:98
-msgid ""
-"This set the distance between the copper thieving components\n"
-"(the polygon fill may be split in multiple polygons)\n"
-"and the copper traces in the Gerber file."
-msgstr ""
-"Esto establece la distancia entre los componentes de Copper Thieving\n"
-"(el relleno de polígono puede dividirse en múltiples polígonos)\n"
-"y las rastros de cobre en el archivo Gerber."
-
-#: flatcamTools/ToolCopperThieving.py:131
-msgid ""
-"- 'Itself' - the copper thieving extent is based on the object extent.\n"
-"- 'Area Selection' - left mouse click to start selection of the area to be "
-"filled.\n"
-"- 'Reference Object' - will do copper thieving within the area specified by "
-"another object."
-msgstr ""
-"- 'Sí mismo': la extensión de Copper Thieving se basa en la extensión del "
-"objeto.\n"
-"- 'Selección de área': haga clic con el botón izquierdo del mouse para "
-"iniciar la selección del área a rellenar.\n"
-"- 'Objeto de referencia': 'Copper Thieving' dentro del área especificada por "
-"otro objeto."
-
-#: flatcamTools/ToolCopperThieving.py:138 flatcamTools/ToolNCC.py:552
-#: flatcamTools/ToolPaint.py:496
-msgid "Ref. Type"
-msgstr "Tipo de Ref"
-
-#: flatcamTools/ToolCopperThieving.py:140
-msgid ""
-"The type of FlatCAM object to be used as copper thieving reference.\n"
-"It can be Gerber, Excellon or Geometry."
-msgstr ""
-"El tipo de objeto FlatCAM que se utilizará como referencia de 'Copper "
-"Thieving'.\n"
-"Puede ser Gerber, Excellon o Geometry."
-
-#: flatcamTools/ToolCopperThieving.py:149 flatcamTools/ToolNCC.py:562
-#: flatcamTools/ToolPaint.py:506
-msgid "Ref. Object"
-msgstr "Objeto de Ref"
-
-#: flatcamTools/ToolCopperThieving.py:151 flatcamTools/ToolNCC.py:564
-#: flatcamTools/ToolPaint.py:508
-msgid "The FlatCAM object to be used as non copper clearing reference."
-msgstr ""
-"El objeto FlatCAM que se utilizará como referencia de compensación sin cobre."
-
-#: flatcamTools/ToolCopperThieving.py:327
-msgid "Insert Copper thieving"
-msgstr "Insertar Copper thieving"
-
-#: flatcamTools/ToolCopperThieving.py:329
-msgid ""
-"Will add a polygon (may be split in multiple parts)\n"
-"that will surround the actual Gerber traces at a certain distance."
-msgstr ""
-"Agregará un polígono (puede dividirse en varias partes)\n"
-"eso rodeará las huellas reales de Gerber a cierta distancia."
-
-#: flatcamTools/ToolCopperThieving.py:388
-msgid "Insert Robber Bar"
-msgstr "Insertar Robber Bar"
-
-#: flatcamTools/ToolCopperThieving.py:390
-msgid ""
-"Will add a polygon with a defined thickness\n"
-"that will surround the actual Gerber object\n"
-"at a certain distance.\n"
-"Required when doing holes pattern plating."
-msgstr ""
-"Agregará un polígono con un grosor definido\n"
-"que rodeará el objeto real de Gerber\n"
-"a cierta distancia.\n"
-"Se requiere cuando se hace un patrón de agujeros."
-
-#: flatcamTools/ToolCopperThieving.py:414
-msgid "Select Soldermask object"
-msgstr "Seleccionar objeto Soldermask"
-
-#: flatcamTools/ToolCopperThieving.py:416
-msgid ""
-"Gerber Object with the soldermask.\n"
-"It will be used as a base for\n"
-"the pattern plating mask."
-msgstr ""
-"Objeto Gerber con la máscara de soldadura.\n"
-"Se utilizará como base para\n"
-"El patrón de la máscara de recubrimiento."
-
-#: flatcamTools/ToolCopperThieving.py:445
-msgid "Plated area"
-msgstr "Área chapada"
-
-#: flatcamTools/ToolCopperThieving.py:447
-msgid ""
-"The area to be plated by pattern plating.\n"
-"Basically is made from the openings in the plating mask.\n"
-"\n"
-"<> - the calculated area is actually a bit larger\n"
-"due of the fact that the soldermask openings are by design\n"
-"a bit larger than the copper pads, and this area is\n"
-"calculated from the soldermask openings."
-msgstr ""
-"El área a ser chapada por patrón de chapado.\n"
-"Básicamente está hecho de las aberturas en la máscara de recubrimiento.\n"
-"\n"
-"<> - el área calculada es en realidad un poco más grande\n"
-"Debido al hecho de que las aberturas de la máscara de soldadura son por "
-"diseño\n"
-"un poco más grande que las almohadillas de cobre, y esta área es\n"
-"calculado a partir de las aberturas de la máscara de soldadura."
-
-#: flatcamTools/ToolCopperThieving.py:458
-msgid "mm"
-msgstr "mm"
-
-#: flatcamTools/ToolCopperThieving.py:460
-msgid "in"
-msgstr "in"
-
-#: flatcamTools/ToolCopperThieving.py:467
-msgid "Generate pattern plating mask"
-msgstr "Generar máscara de recubrimiento de patrón"
-
-#: flatcamTools/ToolCopperThieving.py:469
-msgid ""
-"Will add to the soldermask gerber geometry\n"
-"the geometries of the copper thieving and/or\n"
-"the robber bar if those were generated."
-msgstr ""
-"Agregará a la máscara de soldadura la geometría gerber\n"
-"Las geometrías de Copper Thieving y / o\n"
-"la Robber Bar si esos fueron generados."
-
-#: flatcamTools/ToolCopperThieving.py:625
-#: flatcamTools/ToolCopperThieving.py:650
-msgid "Lines Grid works only for 'itself' reference ..."
-msgstr "La cuadrícula de líneas funciona solo para referencia 'sí mismo' ..."
-
-#: flatcamTools/ToolCopperThieving.py:636
-msgid "Solid fill selected."
-msgstr "Relleno sólido seleccionado."
-
-#: flatcamTools/ToolCopperThieving.py:641
-msgid "Dots grid fill selected."
-msgstr "Relleno de cuadrícula de puntos seleccionado."
-
-#: flatcamTools/ToolCopperThieving.py:646
-msgid "Squares grid fill selected."
-msgstr "Rellenar cuadrícula de cuadrados seleccionados."
-
-#: flatcamTools/ToolCopperThieving.py:667
-#: flatcamTools/ToolCopperThieving.py:749
-#: flatcamTools/ToolCopperThieving.py:1345 flatcamTools/ToolDblSided.py:657
-#: flatcamTools/ToolExtractDrills.py:436 flatcamTools/ToolFiducials.py:466
-#: flatcamTools/ToolFiducials.py:743 flatcamTools/ToolOptimal.py:342
-#: flatcamTools/ToolPunchGerber.py:512 flatcamTools/ToolQRCode.py:426
-msgid "There is no Gerber object loaded ..."
-msgstr "No hay ningún objeto Gerber cargado ..."
-
-#: flatcamTools/ToolCopperThieving.py:680
-#: flatcamTools/ToolCopperThieving.py:1273
-msgid "Append geometry"
-msgstr "Añadir geometría"
-
-#: flatcamTools/ToolCopperThieving.py:724
-#: flatcamTools/ToolCopperThieving.py:1306
-#: flatcamTools/ToolCopperThieving.py:1459
-msgid "Append source file"
-msgstr "Agregar archivo fuente"
-
-#: flatcamTools/ToolCopperThieving.py:732
-#: flatcamTools/ToolCopperThieving.py:1314
-msgid "Copper Thieving Tool done."
-msgstr "Herramienta Copper Thieving hecha."
-
-#: flatcamTools/ToolCopperThieving.py:759
-#: flatcamTools/ToolCopperThieving.py:792 flatcamTools/ToolCutOut.py:519
-#: flatcamTools/ToolCutOut.py:724 flatcamTools/ToolInvertGerber.py:208
-#: flatcamTools/ToolNCC.py:1599 flatcamTools/ToolNCC.py:1640
-#: flatcamTools/ToolNCC.py:1669 flatcamTools/ToolPaint.py:1474
-#: flatcamTools/ToolPanelize.py:412 flatcamTools/ToolPanelize.py:426
-#: flatcamTools/ToolSub.py:294 flatcamTools/ToolSub.py:307
-#: flatcamTools/ToolSub.py:498 flatcamTools/ToolSub.py:513
-#: tclCommands/TclCommandCopperClear.py:97 tclCommands/TclCommandPaint.py:99
-msgid "Could not retrieve object"
-msgstr "No se pudo recuperar el objeto"
-
-#: flatcamTools/ToolCopperThieving.py:820
-msgid "Click the end point of the filling area."
-msgstr "Haga clic en el punto final del área de relleno."
-
-#: flatcamTools/ToolCopperThieving.py:942
-#: flatcamTools/ToolCopperThieving.py:946
-#: flatcamTools/ToolCopperThieving.py:1007
-msgid "Thieving"
-msgstr "Ladrón"
-
-#: flatcamTools/ToolCopperThieving.py:953
-msgid "Copper Thieving Tool started. Reading parameters."
-msgstr "Herramienta de Copper Thieving iniciada. Parámetros de lectura."
-
-#: flatcamTools/ToolCopperThieving.py:978
-msgid "Copper Thieving Tool. Preparing isolation polygons."
-msgstr "Herramienta Copper Thieving. Preparación de polígonos de aislamiento."
-
-#: flatcamTools/ToolCopperThieving.py:1023
-msgid "Copper Thieving Tool. Preparing areas to fill with copper."
-msgstr ""
-"Herramienta Copper Thieving. Preparación de áreas para rellenar con cobre."
-
-#: flatcamTools/ToolCopperThieving.py:1034 flatcamTools/ToolOptimal.py:349
-#: flatcamTools/ToolPanelize.py:799 flatcamTools/ToolRulesCheck.py:1127
-msgid "Working..."
-msgstr "Trabajando..."
-
-#: flatcamTools/ToolCopperThieving.py:1061
-msgid "Geometry not supported for bounding box"
-msgstr "Geometría no admitida para cuadro delimitador"
-
-#: flatcamTools/ToolCopperThieving.py:1067 flatcamTools/ToolNCC.py:1933
-#: flatcamTools/ToolNCC.py:1988 flatcamTools/ToolNCC.py:2992
-#: flatcamTools/ToolPaint.py:3380
-msgid "No object available."
-msgstr "No hay objeto disponible."
-
-#: flatcamTools/ToolCopperThieving.py:1104 flatcamTools/ToolNCC.py:1958
-#: flatcamTools/ToolNCC.py:2011 flatcamTools/ToolNCC.py:3034
-msgid "The reference object type is not supported."
-msgstr "El tipo de objeto de referencia no es compatible."
-
-#: flatcamTools/ToolCopperThieving.py:1109
-msgid "Copper Thieving Tool. Appending new geometry and buffering."
-msgstr ""
-"Herramienta Coppe Thieving. Anexar nueva geometría y almacenamiento en búfer."
-
-#: flatcamTools/ToolCopperThieving.py:1125
-msgid "Create geometry"
-msgstr "Crear geometría"
-
-#: flatcamTools/ToolCopperThieving.py:1325
-#: flatcamTools/ToolCopperThieving.py:1329
-msgid "P-Plating Mask"
-msgstr "Mascarilla P"
-
-#: flatcamTools/ToolCopperThieving.py:1351
-msgid "Append PP-M geometry"
-msgstr "Añadir geometría de máscara de recubrimiento P"
-
-#: flatcamTools/ToolCopperThieving.py:1477
-msgid "Generating Pattern Plating Mask done."
-msgstr "Generando patrón de recubrimiento de máscara hecho."
-
-#: flatcamTools/ToolCopperThieving.py:1549
-msgid "Copper Thieving Tool exit."
-msgstr "Salida de herramienta de Copper Thieving."
-
-#: flatcamTools/ToolCutOut.py:41
-msgid "Cutout PCB"
-msgstr "PCB de corte"
-
-#: flatcamTools/ToolCutOut.py:69 flatcamTools/ToolPanelize.py:54
-msgid "Source Object"
-msgstr "Objeto fuente"
-
-#: flatcamTools/ToolCutOut.py:70
-msgid "Object to be cutout"
-msgstr "Objeto a recortar"
-
-#: flatcamTools/ToolCutOut.py:75
-msgid "Kind"
-msgstr "Tipo"
-
-#: flatcamTools/ToolCutOut.py:97
-msgid ""
-"Specify the type of object to be cutout.\n"
-"It can be of type: Gerber or Geometry.\n"
-"What is selected here will dictate the kind\n"
-"of objects that will populate the 'Object' combobox."
-msgstr ""
-"Especifique el tipo de objeto a recortar.\n"
-"Puede ser de tipo: Gerber o Geometría.\n"
-"Lo que se seleccione aquí dictará el tipo\n"
-"de objetos que llenarán el cuadro combinado 'Objeto'."
-
-#: flatcamTools/ToolCutOut.py:121
-msgid "Tool Parameters"
-msgstr "Parámetros de Herram."
-
-#: flatcamTools/ToolCutOut.py:238
-msgid "A. Automatic Bridge Gaps"
-msgstr "A. Brechas automáticas del puente"
-
-#: flatcamTools/ToolCutOut.py:240
-msgid "This section handle creation of automatic bridge gaps."
-msgstr "Esta sección maneja la creación de espacios de puente automáticos."
-
-#: flatcamTools/ToolCutOut.py:247
-msgid ""
-"Number of gaps used for the Automatic cutout.\n"
-"There can be maximum 8 bridges/gaps.\n"
-"The choices are:\n"
-"- None - no gaps\n"
-"- lr - left + right\n"
-"- tb - top + bottom\n"
-"- 4 - left + right +top + bottom\n"
-"- 2lr - 2*left + 2*right\n"
-"- 2tb - 2*top + 2*bottom\n"
-"- 8 - 2*left + 2*right +2*top + 2*bottom"
-msgstr ""
-"Número de huecos utilizados para el recorte automático.\n"
-"Puede haber un máximo de 8 puentes / huecos.\n"
-"Las opciones son:\n"
-"- Ninguno - sin espacios\n"
-"- lr - izquierda + derecha\n"
-"- tb - arriba + abajo\n"
-"- 4 - izquierda + derecha + arriba + abajo\n"
-"- 2lr - 2 * izquierda + 2 * derecha\n"
-"- 2tb - 2 * arriba + 2 * abajo\n"
-"- 8 - 2 * izquierda + 2 * derecha + 2 * arriba + 2 * abajo"
-
-#: flatcamTools/ToolCutOut.py:269
-msgid "Generate Freeform Geometry"
-msgstr "Generar geometría de forma libre"
-
-#: flatcamTools/ToolCutOut.py:271
-msgid ""
-"Cutout the selected object.\n"
-"The cutout shape can be of any shape.\n"
-"Useful when the PCB has a non-rectangular shape."
-msgstr ""
-"Recorta el objeto seleccionado.\n"
-"La forma recortada puede ser de cualquier forma.\n"
-"Útil cuando la PCB tiene una forma no rectangular."
-
-#: flatcamTools/ToolCutOut.py:283
-msgid "Generate Rectangular Geometry"
-msgstr "Generar geometría rectangular"
-
-#: flatcamTools/ToolCutOut.py:285
-msgid ""
-"Cutout the selected object.\n"
-"The resulting cutout shape is\n"
-"always a rectangle shape and it will be\n"
-"the bounding box of the Object."
-msgstr ""
-"Recorta el objeto seleccionado.\n"
-"La forma de corte resultante es\n"
-"siempre una forma rectangular y será\n"
-"El cuadro delimitador del objeto."
-
-#: flatcamTools/ToolCutOut.py:304
-msgid "B. Manual Bridge Gaps"
-msgstr "B. Brechas manuales del puente"
-
-#: flatcamTools/ToolCutOut.py:306
-msgid ""
-"This section handle creation of manual bridge gaps.\n"
-"This is done by mouse clicking on the perimeter of the\n"
-"Geometry object that is used as a cutout object. "
-msgstr ""
-"Esta sección maneja la creación de espacios de puente manuales.\n"
-"Esto se hace haciendo clic con el mouse en el perímetro del\n"
-"Objeto de geometría que se utiliza como objeto recortado. "
-
-#: flatcamTools/ToolCutOut.py:321
-msgid "Geometry object used to create the manual cutout."
-msgstr "Objeto de geometría utilizado para crear el recorte manual."
-
-#: flatcamTools/ToolCutOut.py:328
-msgid "Generate Manual Geometry"
-msgstr "Generar geometría manual"
-
-#: flatcamTools/ToolCutOut.py:330
-msgid ""
-"If the object to be cutout is a Gerber\n"
-"first create a Geometry that surrounds it,\n"
-"to be used as the cutout, if one doesn't exist yet.\n"
-"Select the source Gerber file in the top object combobox."
-msgstr ""
-"Si el objeto a recortar es un Gerber\n"
-"primero crea una Geometría que lo rodea,\n"
-"para ser utilizado como recorte, si aún no existe.\n"
-"Seleccione el archivo fuente de Gerber en el cuadro combinado de objeto "
-"superior."
-
-#: flatcamTools/ToolCutOut.py:343
-msgid "Manual Add Bridge Gaps"
-msgstr "Agregar huecos de puente manuales"
-
-#: flatcamTools/ToolCutOut.py:345
-msgid ""
-"Use the left mouse button (LMB) click\n"
-"to create a bridge gap to separate the PCB from\n"
-"the surrounding material.\n"
-"The LMB click has to be done on the perimeter of\n"
-"the Geometry object used as a cutout geometry."
-msgstr ""
-"Haga clic con el botón izquierdo del mouse (LMB)\n"
-"para crear un espacio de puente para separar la PCB de\n"
-"El material circundante.\n"
-"El clic LMB debe hacerse en el perímetro de\n"
-"El objeto Geometry utilizado como geometría de recorte."
-
-#: flatcamTools/ToolCutOut.py:524
-msgid ""
-"There is no object selected for Cutout.\n"
-"Select one and try again."
-msgstr ""
-"No hay ningún objeto seleccionado para Recorte.\n"
-"Seleccione uno e intente nuevamente."
-
-#: flatcamTools/ToolCutOut.py:530 flatcamTools/ToolCutOut.py:733
-#: flatcamTools/ToolCutOut.py:914 flatcamTools/ToolCutOut.py:996
-#: tclCommands/TclCommandGeoCutout.py:184
-msgid "Tool Diameter is zero value. Change it to a positive real number."
-msgstr "Diá. de herramienta es valor cero. Cámbielo a un número real positivo."
-
-#: flatcamTools/ToolCutOut.py:544 flatcamTools/ToolCutOut.py:748
-msgid "Number of gaps value is missing. Add it and retry."
-msgstr "Falta el valor del número de huecos. Añádelo y vuelve a intentarlo."
-
-#: flatcamTools/ToolCutOut.py:549 flatcamTools/ToolCutOut.py:752
-msgid ""
-"Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. "
-"Fill in a correct value and retry. "
-msgstr ""
-"El valor de las brechas solo puede ser uno de: 'Ninguno', 'lr', 'tb', '2lr', "
-"'2tb', 4 u 8. Complete un valor correcto y vuelva a intentarlo. "
-
-#: flatcamTools/ToolCutOut.py:554 flatcamTools/ToolCutOut.py:758
-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 ""
-"La operación de recorte no se puede hacer en una Geometría multi-geo.\n"
-"Opcionalmente, esta Geometría Multi-Geo se puede convertir a Geometría "
-"Single-Geo,\n"
-"y después de eso realiza el recorte."
-
-#: flatcamTools/ToolCutOut.py:706 flatcamTools/ToolCutOut.py:903
-msgid "Any form CutOut operation finished."
-msgstr "Cualquier forma de operación de corte finalizada."
-
-#: flatcamTools/ToolCutOut.py:728 flatcamTools/ToolInvertGerber.py:214
-#: flatcamTools/ToolNCC.py:1603 flatcamTools/ToolPaint.py:1397
-#: flatcamTools/ToolPanelize.py:417 tclCommands/TclCommandBbox.py:71
-#: tclCommands/TclCommandNregions.py:71
-msgid "Object not found"
-msgstr "Objeto no encontrado"
-
-#: flatcamTools/ToolCutOut.py:872
-msgid "Rectangular cutout with negative margin is not possible."
-msgstr "El corte rectangular con margen negativo no es posible."
-
-#: flatcamTools/ToolCutOut.py:908
-msgid ""
-"Click on the selected geometry object perimeter to create a bridge gap ..."
-msgstr ""
-"Haga clic en el perímetro del objeto de geometría seleccionado para crear un "
-"espacio de puente ..."
-
-#: flatcamTools/ToolCutOut.py:925 flatcamTools/ToolCutOut.py:951
-msgid "Could not retrieve Geometry object"
-msgstr "No se pudo recuperar el objeto Geometry"
-
-#: flatcamTools/ToolCutOut.py:956
-msgid "Geometry object for manual cutout not found"
-msgstr "Objeto de geometría para corte manual no encontrado"
-
-#: flatcamTools/ToolCutOut.py:966
-msgid "Added manual Bridge Gap."
-msgstr "Se agregó brecha de puente manual."
-
-#: flatcamTools/ToolCutOut.py:978
-msgid "Could not retrieve Gerber object"
-msgstr "No se pudo recuperar el objeto Gerber"
-
-#: flatcamTools/ToolCutOut.py:983
-msgid ""
-"There is no Gerber object selected for Cutout.\n"
-"Select one and try again."
-msgstr ""
-"No hay ningún objeto Gerber seleccionado para Recorte.\n"
-"Seleccione uno e intente nuevamente."
-
-#: flatcamTools/ToolCutOut.py:989
-msgid ""
-"The selected object has to be of Gerber type.\n"
-"Select a Gerber file and try again."
-msgstr ""
-"El objeto seleccionado debe ser del tipo Gerber.\n"
-"Seleccione un archivo Gerber e intente nuevamente."
-
-#: flatcamTools/ToolCutOut.py:1024
-msgid "Geometry not supported for cutout"
-msgstr "Geometría no admitida para recorte"
-
-#: flatcamTools/ToolCutOut.py:1099
-msgid "Making manual bridge gap..."
-msgstr "Hacer un puente manual ..."
-
-#: flatcamTools/ToolDblSided.py:26
-msgid "2-Sided PCB"
-msgstr "PCB a 2 caras"
-
-#: flatcamTools/ToolDblSided.py:52
-msgid "Mirror Operation"
-msgstr "Operación Espejo"
-
-#: flatcamTools/ToolDblSided.py:53
-msgid "Objects to be mirrored"
-msgstr "Objetos a ser reflejados"
-
-#: flatcamTools/ToolDblSided.py:65
-msgid "Gerber to be mirrored"
-msgstr "Gerber para ser reflejado"
-
-#: flatcamTools/ToolDblSided.py:69 flatcamTools/ToolDblSided.py:97
-#: flatcamTools/ToolDblSided.py:127
-msgid ""
-"Mirrors (flips) the specified object around \n"
-"the specified axis. Does not create a new \n"
-"object, but modifies it."
-msgstr ""
-"Refleja (voltea) el objeto especificado alrededor\n"
-"El eje especificado. No crea un nuevo\n"
-"objeto, pero lo modifica."
-
-#: flatcamTools/ToolDblSided.py:93
-msgid "Excellon Object to be mirrored."
-msgstr "Excellon Objeto a ser reflejado."
-
-#: flatcamTools/ToolDblSided.py:122
-msgid "Geometry Obj to be mirrored."
-msgstr "Obj de geometría para ser reflejado."
-
-#: flatcamTools/ToolDblSided.py:158
-msgid "Mirror Parameters"
-msgstr "Parámetros de Espejo"
-
-#: flatcamTools/ToolDblSided.py:159
-msgid "Parameters for the mirror operation"
-msgstr "Parámetros para la operación Reflejar"
-
-#: flatcamTools/ToolDblSided.py:164
-msgid "Mirror Axis"
-msgstr "Eje espejo"
-
-#: flatcamTools/ToolDblSided.py:175
-msgid ""
-"The coordinates used as reference for the mirror operation.\n"
-"Can be:\n"
-"- Point -> a set of coordinates (x,y) around which the object is mirrored\n"
-"- Box -> a set of coordinates (x, y) obtained from the center of the\n"
-"bounding box of another object selected below"
-msgstr ""
-"Las coordenadas utilizadas como referencia para la operación espejo.\n"
-"Puede ser:\n"
-"- Punto -> un conjunto de coordenadas (x, y) alrededor del cual se refleja "
-"el objeto\n"
-"- Cuadro -> un conjunto de coordenadas (x, y) obtenidas del centro de la\n"
-"cuadro delimitador de otro objeto seleccionado a continuación"
-
-#: flatcamTools/ToolDblSided.py:189
-msgid "Point coordinates"
-msgstr "Coordenadas de puntos"
-
-#: flatcamTools/ToolDblSided.py:194
-msgid ""
-"Add the coordinates in format (x, y) through which the mirroring "
-"axis\n"
-" selected in 'MIRROR AXIS' pass.\n"
-"The (x, y) coordinates are captured by pressing SHIFT key\n"
-"and left mouse button click on canvas or you can enter the coordinates "
-"manually."
-msgstr ""
-"Agregue las coordenadas en formato (x, y) a través del cual el eje "
-"de reflejo\n"
-"seleccionado en el pase 'EJE DE ESPEJO'.\n"
-"Las coordenadas (x, y) se capturan presionando la tecla MAYÚS\n"
-"y haga clic con el botón izquierdo del mouse en el lienzo o puede ingresar "
-"las coordenadas manualmente."
-
-#: flatcamTools/ToolDblSided.py:218
-msgid ""
-"It can be of type: Gerber or Excellon or Geometry.\n"
-"The coordinates of the center of the bounding box are used\n"
-"as reference for mirror operation."
-msgstr ""
-"Puede ser de tipo: Gerber o Excellon o Geometry.\n"
-"Se utilizan las coordenadas del centro del cuadro delimitador.\n"
-"como referencia para la operación del espejo."
-
-#: flatcamTools/ToolDblSided.py:252
-msgid "Bounds Values"
-msgstr "Valores de límites"
-
-#: flatcamTools/ToolDblSided.py:254
-msgid ""
-"Select on canvas the object(s)\n"
-"for which to calculate bounds values."
-msgstr ""
-"Seleccione en lienzo los objetos\n"
-"para el cual calcular valores de límites."
-
-#: flatcamTools/ToolDblSided.py:264
-msgid "X min"
-msgstr "X min"
-
-#: flatcamTools/ToolDblSided.py:266 flatcamTools/ToolDblSided.py:280
-msgid "Minimum location."
-msgstr "Ubicacion minima."
-
-#: flatcamTools/ToolDblSided.py:278
-msgid "Y min"
-msgstr "Y min"
-
-#: flatcamTools/ToolDblSided.py:292
-msgid "X max"
-msgstr "X max"
-
-#: flatcamTools/ToolDblSided.py:294 flatcamTools/ToolDblSided.py:308
-msgid "Maximum location."
-msgstr "Máxima ubicación."
-
-#: flatcamTools/ToolDblSided.py:306
-msgid "Y max"
-msgstr "Y max"
-
-#: flatcamTools/ToolDblSided.py:317
-msgid "Center point coordinates"
-msgstr "Coords del punto central"
-
-#: flatcamTools/ToolDblSided.py:319
-msgid "Centroid"
-msgstr "Centroide"
-
-#: flatcamTools/ToolDblSided.py:321
-msgid ""
-"The center point location for the rectangular\n"
-"bounding shape. Centroid. Format is (x, y)."
-msgstr ""
-"La ubicación del punto central para el rectangular\n"
-"forma delimitadora. Centroide. El formato es (x, y)."
-
-#: flatcamTools/ToolDblSided.py:330
-msgid "Calculate Bounds Values"
-msgstr "Calcular valores de límites"
-
-#: flatcamTools/ToolDblSided.py:332
-msgid ""
-"Calculate the enveloping rectangular shape coordinates,\n"
-"for the selection of objects.\n"
-"The envelope shape is parallel with the X, Y axis."
-msgstr ""
-"Calcule las coordenadas de forma rectangular envolvente,\n"
-"para la selección de objetos.\n"
-"La forma de la envoltura es paralela al eje X, Y."
-
-#: flatcamTools/ToolDblSided.py:352
-msgid "PCB Alignment"
-msgstr "Alineación de PCB"
-
-#: flatcamTools/ToolDblSided.py:354 flatcamTools/ToolDblSided.py:456
-msgid ""
-"Creates an Excellon Object containing the\n"
-"specified alignment holes and their mirror\n"
-"images."
-msgstr ""
-"Crea un objeto Excellon que contiene el\n"
-"agujeros de alineación especificados y su espejo\n"
-"imágenes."
-
-#: flatcamTools/ToolDblSided.py:361
-msgid "Drill Diameter"
-msgstr "Diá del Taladro"
-
-#: flatcamTools/ToolDblSided.py:390 flatcamTools/ToolDblSided.py:397
-msgid ""
-"The reference point used to create the second alignment drill\n"
-"from the first alignment drill, by doing mirror.\n"
-"It can be modified in the Mirror Parameters -> Reference section"
-msgstr ""
-"El punto de referencia utilizado para crear el segundo ejercicio de "
-"alineación.\n"
-"desde el primer ejercicio de alineación, haciendo espejo.\n"
-"Se puede modificar en la sección Parámetros Espejo -> Referencia"
-
-#: flatcamTools/ToolDblSided.py:410
-msgid "Alignment Drill Coordinates"
-msgstr "Taladro de alineación Coords"
-
-#: flatcamTools/ToolDblSided.py:412
-msgid ""
-"Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For "
-"each set of (x, y) coordinates\n"
-"entered here, a pair of drills will be created:\n"
-"\n"
-"- one drill at the coordinates from the field\n"
-"- one drill in mirror position over the axis selected above in the 'Align "
-"Axis'."
-msgstr ""
-"Agujeros de alineación (x1, y1), (x2, y2), ... en un lado del eje del "
-"espejo. Para cada conjunto de coordenadas (x, y)\n"
-"ingresado aquí, se crearán un par de simulacros:\n"
-"\n"
-"- un ejercicio en las coordenadas del campo\n"
-"- un taladro en posición de espejo sobre el eje seleccionado arriba en "
-"'Alinear eje'."
-
-#: flatcamTools/ToolDblSided.py:420
-msgid "Drill coordinates"
-msgstr "Coords de Perforación"
-
-#: flatcamTools/ToolDblSided.py:427
-msgid ""
-"Add alignment drill holes coordinates in the format: (x1, y1), (x2, "
-"y2), ... \n"
-"on one side of the alignment axis.\n"
-"\n"
-"The coordinates set can be obtained:\n"
-"- press SHIFT key and left mouse clicking on canvas. Then click Add.\n"
-"- press SHIFT key and left mouse clicking on canvas. Then Ctrl+V in the "
-"field.\n"
-"- press SHIFT key and left mouse clicking on canvas. Then RMB click in the "
-"field and click Paste.\n"
-"- by entering the coords manually in the format: (x1, y1), (x2, y2), ..."
-msgstr ""
-"Agregue coordenadas de taladros de alineación en el formato: (x1, y1), (x2, "
-"y2), ...\n"
-"en un lado del eje de alineación.\n"
-"\n"
-"El conjunto de coordenadas se puede obtener:\n"
-"- presione la tecla SHIFT y haga clic con el botón izquierdo del mouse en el "
-"lienzo. Luego haga clic en Agregar.\n"
-"- presione la tecla SHIFT y haga clic con el botón izquierdo en el lienzo "
-"Luego Ctrl + V en el campo.\n"
-"- presione la tecla SHIFT y haga clic con el botón izquierdo del mouse en el "
-"lienzo. Luego, haga clic en RMB en el campo y haga clic en Pegar.\n"
-"- ingresando las coordenadas manualmente en el formato: (x1, y1), (x2, "
-"y2), ..."
-
-#: flatcamTools/ToolDblSided.py:442
-msgid "Delete Last"
-msgstr "Eliminar último"
-
-#: flatcamTools/ToolDblSided.py:444
-msgid "Delete the last coordinates tuple in the list."
-msgstr "Eliminar la última tupla de coordenadas en la lista."
-
-#: flatcamTools/ToolDblSided.py:454
-msgid "Create Excellon Object"
-msgstr "Crear objeto Excellon"
-
-#: flatcamTools/ToolDblSided.py:541
-msgid "2-Sided Tool"
-msgstr "Herra. de 2 lados"
-
-#: flatcamTools/ToolDblSided.py:581
-msgid ""
-"'Point' reference is selected and 'Point' coordinates are missing. Add them "
-"and retry."
-msgstr ""
-"Se selecciona la referencia 'Punto' y faltan las coordenadas 'Punto'. "
-"Añádelos y vuelve a intentarlo."
-
-#: flatcamTools/ToolDblSided.py:600
-msgid "There is no Box reference object loaded. Load one and retry."
-msgstr ""
-"No hay ningún objeto de referencia de cuadro cargado. Cargue uno y vuelva a "
-"intentarlo."
-
-#: flatcamTools/ToolDblSided.py:612
-msgid "No value or wrong format in Drill Dia entry. Add it and retry."
-msgstr ""
-"Sin valor o formato incorrecto en la entrada de diá. de perforación. Añádelo "
-"y vuelve a intentarlo."
-
-#: flatcamTools/ToolDblSided.py:623
-msgid "There are no Alignment Drill Coordinates to use. Add them and retry."
-msgstr ""
-"No hay coordenadas de taladro de alineación para usar. Añádelos y vuelve a "
-"intentarlo."
-
-#: flatcamTools/ToolDblSided.py:648
-msgid "Excellon object with alignment drills created..."
-msgstr "Objeto Excellon con taladros de alineación creados ..."
-
-#: flatcamTools/ToolDblSided.py:661 flatcamTools/ToolDblSided.py:704
-#: flatcamTools/ToolDblSided.py:748
-msgid "Only Gerber, Excellon and Geometry objects can be mirrored."
-msgstr "Solo los objetos Gerber, Excellon y Geometry se pueden reflejar."
-
-#: flatcamTools/ToolDblSided.py:671 flatcamTools/ToolDblSided.py:715
-msgid ""
-"There are no Point coordinates in the Point field. Add coords and try "
-"again ..."
-msgstr ""
-"No hay coordenadas de punto en el campo Punto. Agregue coords e intente "
-"nuevamente ..."
-
-#: flatcamTools/ToolDblSided.py:681 flatcamTools/ToolDblSided.py:725
-#: flatcamTools/ToolDblSided.py:762
-msgid "There is no Box object loaded ..."
-msgstr "No hay ningún objeto caja cargado ..."
-
-#: flatcamTools/ToolDblSided.py:691 flatcamTools/ToolDblSided.py:735
-#: flatcamTools/ToolDblSided.py:772
-msgid "was mirrored"
-msgstr "fue reflejado"
-
-#: flatcamTools/ToolDblSided.py:700 flatcamTools/ToolPunchGerber.py:533
-msgid "There is no Excellon object loaded ..."
-msgstr "No hay ningún objeto Excellon cargado ..."
-
-#: flatcamTools/ToolDblSided.py:744
-msgid "There is no Geometry object loaded ..."
-msgstr "No hay ningún objeto de geometría cargado ..."
-
-#: flatcamTools/ToolDistance.py:57 flatcamTools/ToolDistanceMin.py:51
-msgid "Those are the units in which the distance is measured."
-msgstr "Esas son las unidades en las que se mide la distancia."
-
-#: flatcamTools/ToolDistance.py:58 flatcamTools/ToolDistanceMin.py:52
-msgid "METRIC (mm)"
-msgstr "MÉTRICO (mm)"
-
-#: flatcamTools/ToolDistance.py:58 flatcamTools/ToolDistanceMin.py:52
-msgid "INCH (in)"
-msgstr "PULGADA (en)"
-
-#: flatcamTools/ToolDistance.py:64
-msgid "Snap to center"
-msgstr "Ajustar al centro"
-
-#: flatcamTools/ToolDistance.py:66
-msgid ""
-"Mouse cursor will snap to the center of the pad/drill\n"
-"when it is hovering over the geometry of the pad/drill."
-msgstr ""
-"El cursor del mouse se ajustará al centro de la almohadilla / taladro\n"
-"cuando se cierne sobre la geometría de la almohadilla / taladro."
-
-#: flatcamTools/ToolDistance.py:76
-msgid "Start Coords"
-msgstr "Iniciar coordenadas"
-
-#: flatcamTools/ToolDistance.py:77 flatcamTools/ToolDistance.py:82
-msgid "This is measuring Start point coordinates."
-msgstr "Esto mide las coordenadas del punto de inicio."
-
-#: flatcamTools/ToolDistance.py:87
-msgid "Stop Coords"
-msgstr "Detener coordenadas"
-
-#: flatcamTools/ToolDistance.py:88 flatcamTools/ToolDistance.py:93
-msgid "This is the measuring Stop point coordinates."
-msgstr "Estas son las coordenadas del punto de parada de medición."
-
-#: flatcamTools/ToolDistance.py:98 flatcamTools/ToolDistanceMin.py:63
-msgid "Dx"
-msgstr "Dx"
-
-#: flatcamTools/ToolDistance.py:99 flatcamTools/ToolDistance.py:104
-#: flatcamTools/ToolDistanceMin.py:64 flatcamTools/ToolDistanceMin.py:93
-msgid "This is the distance measured over the X axis."
-msgstr "Esta es la distancia medida sobre el eje X."
-
-#: flatcamTools/ToolDistance.py:109 flatcamTools/ToolDistanceMin.py:66
-msgid "Dy"
-msgstr "Dy"
-
-#: flatcamTools/ToolDistance.py:110 flatcamTools/ToolDistance.py:115
-#: flatcamTools/ToolDistanceMin.py:67 flatcamTools/ToolDistanceMin.py:98
-msgid "This is the distance measured over the Y axis."
-msgstr "Esta es la distancia medida sobre el eje Y."
-
-#: flatcamTools/ToolDistance.py:121 flatcamTools/ToolDistance.py:126
-#: flatcamTools/ToolDistanceMin.py:70 flatcamTools/ToolDistanceMin.py:103
-msgid "This is orientation angle of the measuring line."
-msgstr "Este es el ángulo de orientación de la línea de medición."
-
-#: flatcamTools/ToolDistance.py:131 flatcamTools/ToolDistanceMin.py:72
-msgid "DISTANCE"
-msgstr "DISTANCIA"
-
-#: flatcamTools/ToolDistance.py:132 flatcamTools/ToolDistance.py:137
-msgid "This is the point to point Euclidian distance."
-msgstr "Este es el punto a punto de la distancia euclidiana."
-
-#: flatcamTools/ToolDistance.py:142 flatcamTools/ToolDistance.py:337
-#: flatcamTools/ToolDistanceMin.py:115
-msgid "Measure"
-msgstr "Medida"
-
-#: flatcamTools/ToolDistance.py:272
-msgid "Working"
-msgstr "Trabajando"
-
-#: flatcamTools/ToolDistance.py:277
-msgid "MEASURING: Click on the Start point ..."
-msgstr "MEDICIÓN: haga clic en el punto de inicio ..."
-
-#: flatcamTools/ToolDistance.py:387
-msgid "Distance Tool finished."
-msgstr "Herramienta de Distancia terminada."
-
-#: flatcamTools/ToolDistance.py:455
-msgid "Pads overlapped. Aborting."
-msgstr "Almohadillas superpuestas. Abortar."
-
-#: flatcamTools/ToolDistance.py:485
-msgid "MEASURING: Click on the Destination point ..."
-msgstr "MEDICIÓN: haga clic en el punto de destino ..."
-
-#: flatcamTools/ToolDistance.py:494 flatcamTools/ToolDistanceMin.py:285
-msgid "MEASURING"
-msgstr "MEDICIÓN"
-
-#: flatcamTools/ToolDistance.py:495 flatcamTools/ToolDistanceMin.py:286
-msgid "Result"
-msgstr "Resultado"
-
-#: flatcamTools/ToolDistanceMin.py:32 flatcamTools/ToolDistanceMin.py:144
-msgid "Minimum Distance Tool"
-msgstr "Herramienta de Distancia Mínima"
-
-#: flatcamTools/ToolDistanceMin.py:55
-msgid "First object point"
-msgstr "Primer punto"
-
-#: flatcamTools/ToolDistanceMin.py:56 flatcamTools/ToolDistanceMin.py:81
-msgid ""
-"This is first object point coordinates.\n"
-"This is the start point for measuring distance."
-msgstr ""
-"Este es el primer objeto de coordenadas de puntos.\n"
-"Este es el punto de partida para medir la distancia."
-
-#: flatcamTools/ToolDistanceMin.py:59
-msgid "Second object point"
-msgstr "Segundo punto"
-
-#: flatcamTools/ToolDistanceMin.py:60 flatcamTools/ToolDistanceMin.py:87
-msgid ""
-"This is second object point coordinates.\n"
-"This is the end point for measuring distance."
-msgstr ""
-"Este es el segundo objeto de coordenadas de puntos.\n"
-"Este es el punto final para medir la distancia."
-
-#: flatcamTools/ToolDistanceMin.py:73 flatcamTools/ToolDistanceMin.py:108
-msgid "This is the point to point Euclidean distance."
-msgstr "Este es el punto a punto de la distancia euclidiana."
-
-#: flatcamTools/ToolDistanceMin.py:75
-msgid "Half Point"
-msgstr "Punto Medio"
-
-#: flatcamTools/ToolDistanceMin.py:76 flatcamTools/ToolDistanceMin.py:113
-msgid "This is the middle point of the point to point Euclidean distance."
-msgstr "Este es el punto medio de la distancia euclidiana punto a punto."
-
-#: flatcamTools/ToolDistanceMin.py:118
-msgid "Jump to Half Point"
-msgstr "Saltar a Medio Punto"
-
-#: flatcamTools/ToolDistanceMin.py:155
-msgid ""
-"Select two objects and no more, to measure the distance between them ..."
-msgstr ""
-"Seleccione dos objetos y no más, para medir la distancia entre ellos ..."
-
-#: flatcamTools/ToolDistanceMin.py:196 flatcamTools/ToolDistanceMin.py:217
-#: flatcamTools/ToolDistanceMin.py:226 flatcamTools/ToolDistanceMin.py:247
-msgid "Select two objects and no more. Currently the selection has objects: "
-msgstr ""
-"Seleccione dos objetos y no más. Actualmente la selección tiene objetos: "
-
-#: flatcamTools/ToolDistanceMin.py:294
-msgid "Objects intersects or touch at"
-msgstr "Los objetos se cruzan o tocan"
-
-#: flatcamTools/ToolDistanceMin.py:300
-msgid "Jumped to the half point between the two selected objects"
-msgstr "Saltó al punto medio entre los dos objetos seleccionados"
-
-#: flatcamTools/ToolExtractDrills.py:29 flatcamTools/ToolExtractDrills.py:295
-msgid "Extract Drills"
-msgstr "Extraer Taladros"
-
-#: flatcamTools/ToolExtractDrills.py:62
-msgid "Gerber from which to extract drill holes"
-msgstr "Gerber de donde extraer agujeros de perforación"
-
-#: flatcamTools/ToolExtractDrills.py:297
-msgid "Extract drills from a given Gerber file."
-msgstr "Extraer simulacros de un archivo Gerber dado."
-
-#: flatcamTools/ToolExtractDrills.py:478 flatcamTools/ToolExtractDrills.py:563
-#: flatcamTools/ToolExtractDrills.py:648
-msgid "No drills extracted. Try different parameters."
-msgstr "No se extraen taladros. Prueba diferentes parámetros."
-
-#: flatcamTools/ToolFiducials.py:56
-msgid "Fiducials Coordinates"
-msgstr "Coordenadas Fiduciales"
-
-#: flatcamTools/ToolFiducials.py:58
-msgid ""
-"A table with the fiducial points coordinates,\n"
-"in the format (x, y)."
-msgstr ""
-"Una tabla con las coordenadas de los puntos fiduciales,\n"
-"en el formato (x, y)."
-
-#: flatcamTools/ToolFiducials.py:99
-msgid "Top Right"
-msgstr "Arriba a la derecha"
-
-#: flatcamTools/ToolFiducials.py:191
-msgid ""
-"- 'Auto' - automatic placement of fiducials in the corners of the bounding "
-"box.\n"
-" - 'Manual' - manual placement of fiducials."
-msgstr ""
-"- 'Auto' - colocación automática de fiduciales en las esquinas del cuadro "
-"delimitador.\n"
-" - 'Manual' - colocación manual de fiduciales."
-
-#: flatcamTools/ToolFiducials.py:259
-msgid "Copper Gerber"
-msgstr "Cobre Gerber"
-
-#: flatcamTools/ToolFiducials.py:268
-msgid "Add Fiducial"
-msgstr "Añadir Fiducial"
-
-#: flatcamTools/ToolFiducials.py:270
-msgid "Will add a polygon on the copper layer to serve as fiducial."
-msgstr "Agregará un polígono en la capa de cobre para servir como fiducial."
-
-#: flatcamTools/ToolFiducials.py:286
-msgid "Soldermask Gerber"
-msgstr "Soldermask Gerber"
-
-#: flatcamTools/ToolFiducials.py:288
-msgid "The Soldermask Gerber object."
-msgstr "El objeto Soldermask Gerber."
-
-#: flatcamTools/ToolFiducials.py:300
-msgid "Add Soldermask Opening"
-msgstr "Agregar apertura de Soldermask"
-
-#: flatcamTools/ToolFiducials.py:302
-msgid ""
-"Will add a polygon on the soldermask layer\n"
-"to serve as fiducial opening.\n"
-"The diameter is always double of the diameter\n"
-"for the copper fiducial."
-msgstr ""
-"Agregará un polígono en la capa de máscara de soldadura\n"
-"para servir como apertura fiducial.\n"
-"El diámetro siempre es el doble del diámetro.\n"
-"para el cobre fiducial."
-
-#: flatcamTools/ToolFiducials.py:516
-msgid "Click to add first Fiducial. Bottom Left..."
-msgstr "Haga clic para agregar primero Fiducial. Abajo a la izquierda ..."
-
-#: flatcamTools/ToolFiducials.py:780
-msgid "Click to add the last fiducial. Top Right..."
-msgstr "Haga clic para agregar el último fiducial. Parte superior derecha..."
-
-#: flatcamTools/ToolFiducials.py:785
-msgid "Click to add the second fiducial. Top Left or Bottom Right..."
-msgstr ""
-"Haga clic para agregar el segundo fiducial. Arriba a la izquierda o abajo a "
-"la derecha ..."
-
-#: flatcamTools/ToolFiducials.py:788 flatcamTools/ToolFiducials.py:797
-msgid "Done. All fiducials have been added."
-msgstr "Hecho. Se han agregado todos los fiduciales."
-
-#: flatcamTools/ToolFiducials.py:874
-msgid "Fiducials Tool exit."
-msgstr "Herram. Fiduciales de salida."
-
-#: flatcamTools/ToolFilm.py:42
-msgid "Film PCB"
-msgstr "Película de PCB"
-
-#: flatcamTools/ToolFilm.py:78
-msgid ""
-"Specify the type of object for which to create the film.\n"
-"The object can be of type: Gerber or Geometry.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Film Object combobox."
-msgstr ""
-"Especifique el tipo de objeto para el cual crear la película.\n"
-"El objeto puede ser de tipo: Gerber o Geometry.\n"
-"La selección aquí decide el tipo de objetos que serán\n"
-"en el cuadro combinado de objeto de película."
-
-#: flatcamTools/ToolFilm.py:92
-msgid "Film Object"
-msgstr "Objeto de la película"
-
-#: flatcamTools/ToolFilm.py:94
-msgid "Object for which to create the film."
-msgstr "Objeto para el cual crear la película."
-
-#: flatcamTools/ToolFilm.py:115
-msgid ""
-"Specify the type of object to be used as an container for\n"
-"film creation. It can be: Gerber or Geometry type.The selection here decide "
-"the type of objects that will be\n"
-"in the Box Object combobox."
-msgstr ""
-"Especifique el tipo de objeto que se utilizará como contenedor para\n"
-"creación cinematográfica. Puede ser: tipo Gerber o Geometría. La selección "
-"aquí decide el tipo de objetos que serán\n"
-"en el cuadro combinado Objeto de caja."
-
-#: flatcamTools/ToolFilm.py:129
-msgid "Box Object"
-msgstr "Objeto de caja"
-
-#: flatcamTools/ToolFilm.py:131
-msgid ""
-"The actual object that is used as container for the\n"
-" selected object for which we create the film.\n"
-"Usually it is the PCB outline but it can be also the\n"
-"same object for which the film is created."
-msgstr ""
-"El objeto real que se utiliza como contenedor para\n"
-" objeto seleccionado para el que creamos la película.\n"
-"Por lo general, es el esquema de PCB pero también puede ser el\n"
-"mismo objeto para el que se crea la película."
-
-#: flatcamTools/ToolFilm.py:273
-msgid "Film Parameters"
-msgstr "Parámetros de la película"
-
-#: flatcamTools/ToolFilm.py:334
-msgid "Punch drill holes"
-msgstr "Perforar Agujeros"
-
-#: flatcamTools/ToolFilm.py:335
-msgid ""
-"When checked the generated film will have holes in pads when\n"
-"the generated film is positive. This is done to help drilling,\n"
-"when done manually."
-msgstr ""
-"Cuando está marcada, la película generada tendrá agujeros en las "
-"almohadillas cuando\n"
-"La película generada es positiva. Esto se hace para ayudar a perforar,\n"
-"cuando se hace manualmente."
-
-#: flatcamTools/ToolFilm.py:353
-msgid "Source"
-msgstr "Fuente"
-
-#: flatcamTools/ToolFilm.py:355
-msgid ""
-"The punch hole source can be:\n"
-"- Excellon -> an Excellon holes center will serve as reference.\n"
-"- Pad Center -> will try to use the pads center as reference."
-msgstr ""
-"La fuente del orificio de perforación puede ser:\n"
-"- Excellon -> un centro de agujeros Excellon servirá como referencia.\n"
-"- Centro de almohadillas -> intentará usar el centro de almohadillas como "
-"referencia."
-
-#: flatcamTools/ToolFilm.py:360
-msgid "Pad center"
-msgstr "Centro de la almohadilla"
-
-#: flatcamTools/ToolFilm.py:365
-msgid "Excellon Obj"
-msgstr "Objeto Excellon"
-
-#: flatcamTools/ToolFilm.py:367
-msgid ""
-"Remove the geometry of Excellon from the Film to create the holes in pads."
-msgstr ""
-"Retire la geometría de Excellon de la película para crear los agujeros en "
-"las almohadillas."
-
-#: flatcamTools/ToolFilm.py:381
-msgid "Punch Size"
-msgstr "Tamaño de perforación"
-
-#: flatcamTools/ToolFilm.py:382
-msgid "The value here will control how big is the punch hole in the pads."
-msgstr ""
-"El valor aquí controlará qué tan grande es el agujero de perforación en los "
-"pads."
-
-#: flatcamTools/ToolFilm.py:502
-msgid "Save Film"
-msgstr "Guardar película"
-
-#: flatcamTools/ToolFilm.py:504
-msgid ""
-"Create a Film for the selected object, within\n"
-"the specified box. Does not create a new \n"
-" FlatCAM object, but directly save it in the\n"
-"selected format."
-msgstr ""
-"Crear una Película para el objeto seleccionado, dentro de\n"
-"El cuadro especificado. No crea un nuevo\n"
-"Objeto FlatCAM, pero guárdelo directamente en el\n"
-"formato seleccionado."
-
-#: flatcamTools/ToolFilm.py:664
-msgid ""
-"Using the Pad center does not work on Geometry objects. Only a Gerber object "
-"has pads."
-msgstr ""
-"El uso del centro de almohadilla no funciona en objetos de geometría. Solo "
-"un objeto Gerber tiene almohadillas."
-
-#: flatcamTools/ToolFilm.py:674
-msgid "No FlatCAM object selected. Load an object for Film and retry."
-msgstr ""
-"No se ha seleccionado ningún objeto FlatCAM. Cargue un objeto para Película "
-"y vuelva a intentarlo."
-
-#: flatcamTools/ToolFilm.py:681
-msgid "No FlatCAM object selected. Load an object for Box and retry."
-msgstr ""
-"No se ha seleccionado ningún objeto FlatCAM. Cargue un objeto para Box y "
-"vuelva a intentarlo."
-
-#: flatcamTools/ToolFilm.py:685
-msgid "No FlatCAM object selected."
-msgstr "No se ha seleccionado ningún objeto FlatCAM."
-
-#: flatcamTools/ToolFilm.py:696
-msgid "Generating Film ..."
-msgstr "Generando película ..."
-
-#: flatcamTools/ToolFilm.py:745 flatcamTools/ToolFilm.py:749
-msgid "Export positive film"
-msgstr "Exportar película positiva"
-
-#: flatcamTools/ToolFilm.py:782
-msgid ""
-"No Excellon object selected. Load an object for punching reference and retry."
-msgstr ""
-"No se seleccionó ningún objeto Excellon. Cargue un objeto para perforar la "
-"referencia y vuelva a intentarlo."
-
-#: flatcamTools/ToolFilm.py:806
-msgid ""
-" Could not generate punched hole film because the punch hole sizeis bigger "
-"than some of the apertures in the Gerber object."
-msgstr ""
-" No se pudo generar una película de agujero perforado porque el tamaño del "
-"agujero perforado es más grande que algunas de las aberturas en el objeto "
-"Gerber."
-
-#: flatcamTools/ToolFilm.py:818
-msgid ""
-"Could not generate punched hole film because the punch hole sizeis bigger "
-"than some of the apertures in the Gerber object."
-msgstr ""
-"No se pudo generar una película de agujero perforado porque el tamaño del "
-"agujero perforado es más grande que algunas de las aberturas en el objeto "
-"Gerber."
-
-#: flatcamTools/ToolFilm.py:836
-msgid ""
-"Could not generate punched hole film because the newly created object "
-"geometry is the same as the one in the source object geometry..."
-msgstr ""
-"No se pudo generar una película de agujero perforado porque la geometría del "
-"objeto recién creada es la misma que la de la geometría del objeto de "
-"origen ..."
-
-#: flatcamTools/ToolFilm.py:891 flatcamTools/ToolFilm.py:895
-msgid "Export negative film"
-msgstr "Exportar película negativa"
-
-#: flatcamTools/ToolFilm.py:956 flatcamTools/ToolFilm.py:1139
-#: flatcamTools/ToolPanelize.py:430
-msgid "No object Box. Using instead"
-msgstr "Sin objeto Caja. Usando en su lugar"
-
-#: flatcamTools/ToolFilm.py:1072 flatcamTools/ToolFilm.py:1252
-msgid "Film file exported to"
-msgstr "Archivo de película exportado a"
-
-#: flatcamTools/ToolFilm.py:1075 flatcamTools/ToolFilm.py:1255
-msgid "Generating Film ... Please wait."
-msgstr "Generando Película ... Por favor espere."
-
-#: flatcamTools/ToolImage.py:24
-msgid "Image as Object"
-msgstr "Imagen como objeto"
-
-#: flatcamTools/ToolImage.py:33
-msgid "Image to PCB"
-msgstr "Imagen a PCB"
-
-#: flatcamTools/ToolImage.py:56
-msgid ""
-"Specify the type of object to create from the image.\n"
-"It can be of type: Gerber or Geometry."
-msgstr ""
-"Especifique el tipo de objeto a crear a partir de la imagen.\n"
-"Puede ser de tipo: Gerber o Geometría."
-
-#: flatcamTools/ToolImage.py:65
-msgid "DPI value"
-msgstr "Valor de DPI"
-
-#: flatcamTools/ToolImage.py:66
-msgid "Specify a DPI value for the image."
-msgstr "Especifique un valor de DPI para la imagen."
-
-#: flatcamTools/ToolImage.py:72
-msgid "Level of detail"
-msgstr "Nivel de detalle"
-
-#: flatcamTools/ToolImage.py:81
-msgid "Image type"
-msgstr "Tipo de imagen"
-
-#: flatcamTools/ToolImage.py:83
-msgid ""
-"Choose a method for the image interpretation.\n"
-"B/W means a black & white image. Color means a colored image."
-msgstr ""
-"Elija un método para la interpretación de la imagen.\n"
-"B / N significa una imagen en blanco y negro. Color significa una imagen en "
-"color."
-
-#: flatcamTools/ToolImage.py:92 flatcamTools/ToolImage.py:107
-#: flatcamTools/ToolImage.py:120 flatcamTools/ToolImage.py:133
-msgid "Mask value"
-msgstr "Valor de la máscara"
-
-#: flatcamTools/ToolImage.py:94
-msgid ""
-"Mask for monochrome image.\n"
-"Takes values between [0 ... 255].\n"
-"Decides the level of details to include\n"
-"in the resulting geometry.\n"
-"0 means no detail and 255 means everything \n"
-"(which is totally black)."
-msgstr ""
-"Máscara para imagen monocroma.\n"
-"Toma valores entre [0 ... 255].\n"
-"Decide el nivel de detalles a incluir\n"
-"en la geometría resultante.\n"
-"0 significa sin detalles y 255 significa todo\n"
-"(que es totalmente negro)"
-
-#: flatcamTools/ToolImage.py:109
-msgid ""
-"Mask for RED color.\n"
-"Takes values between [0 ... 255].\n"
-"Decides the level of details to include\n"
-"in the resulting geometry."
-msgstr ""
-"Máscara para color ROJO.\n"
-"Toma valores entre [0 ... 255].\n"
-"Decide el nivel de detalles a incluir\n"
-"en la geometría resultante."
-
-#: flatcamTools/ToolImage.py:122
-msgid ""
-"Mask for GREEN color.\n"
-"Takes values between [0 ... 255].\n"
-"Decides the level of details to include\n"
-"in the resulting geometry."
-msgstr ""
-"Máscara para color VERDE.\n"
-"Toma valores entre [0 ... 255].\n"
-"Decide el nivel de detalles a incluir\n"
-"en la geometría resultante."
-
-#: flatcamTools/ToolImage.py:135
-msgid ""
-"Mask for BLUE color.\n"
-"Takes values between [0 ... 255].\n"
-"Decides the level of details to include\n"
-"in the resulting geometry."
-msgstr ""
-"Máscara para color AZUL.\n"
-"Toma valores entre [0 ... 255].\n"
-"Decide el nivel de detalles a incluir\n"
-"en la geometría resultante."
-
-#: flatcamTools/ToolImage.py:143
-msgid "Import image"
-msgstr "Importar imagen"
-
-#: flatcamTools/ToolImage.py:145
-msgid "Open a image of raster type and then import it in FlatCAM."
-msgstr "Abra una imagen de tipo ráster y luego impórtela en FlatCAM."
-
-#: flatcamTools/ToolImage.py:182
-msgid "Image Tool"
-msgstr "Herra. de imagen"
-
-#: flatcamTools/ToolImage.py:234 flatcamTools/ToolImage.py:237
-msgid "Import IMAGE"
-msgstr "Importar IMAGEN"
-
-#: flatcamTools/ToolImage.py:285
-msgid "Importing Image"
-msgstr "Importando imagen"
-
-#: flatcamTools/ToolInvertGerber.py:74
-msgid "Gerber object that will be inverted."
-msgstr "Objeto de Gerber que se invertirá."
-
-#: flatcamTools/ToolInvertGerber.py:83
-msgid "Parameters for this tool"
-msgstr "Parámetros para esta herram."
-
-#: flatcamTools/ToolInvertGerber.py:123
-msgid "Invert Gerber"
-msgstr "Invertir Gerber"
-
-#: flatcamTools/ToolInvertGerber.py:125
-msgid ""
-"Will invert the Gerber object: areas that have copper\n"
-"will be empty of copper and previous empty area will be\n"
-"filled with copper."
-msgstr ""
-"Invertirá el objeto Gerber: áreas que tienen cobre.\n"
-"estará vacío de cobre y el área vacía anterior será\n"
-"lleno de cobre."
-
-#: flatcamTools/ToolInvertGerber.py:184
-msgid "Invert Tool"
-msgstr "Herram. de Inversión"
-
-#: flatcamTools/ToolMove.py:102
-msgid "MOVE: Click on the Start point ..."
-msgstr "MOVER: haga clic en el punto de inicio ..."
-
-#: flatcamTools/ToolMove.py:113
-msgid "Cancelled. No object(s) to move."
-msgstr "Cancelado. Ningún objeto (s) para mover."
-
-#: flatcamTools/ToolMove.py:140
-msgid "MOVE: Click on the Destination point ..."
-msgstr "MOVER: haga clic en el punto de destino ..."
-
-#: flatcamTools/ToolMove.py:163
-msgid "Moving..."
-msgstr "Movedizo..."
-
-#: flatcamTools/ToolMove.py:166
-msgid "No object(s) selected."
-msgstr "No hay objetos seleccionados."
-
-#: flatcamTools/ToolMove.py:221
-msgid "Error when mouse left click."
-msgstr "Error al hacer clic con el botón izquierdo del mouse."
-
-#: flatcamTools/ToolNCC.py:42
-msgid "Non-Copper Clearing"
-msgstr "Compensación sin cobre"
-
-#: flatcamTools/ToolNCC.py:88
-msgid ""
-"Specify the type of object to be cleared of excess copper.\n"
-"It can be of type: Gerber or Geometry.\n"
-"What is selected here will dictate the kind\n"
-"of objects that will populate the 'Object' combobox."
-msgstr ""
-"Especifique el tipo de objeto que se eliminará del exceso de cobre.\n"
-"Puede ser de tipo: Gerber o Geometría.\n"
-"Lo que se seleccione aquí dictará el tipo\n"
-"de objetos que llenarán el cuadro combinado 'Objeto'."
-
-#: flatcamTools/ToolNCC.py:110
-msgid "Object to be cleared of excess copper."
-msgstr "Objeto a eliminar del exceso de cobre."
-
-#: flatcamTools/ToolNCC.py:122
-msgid ""
-"Tools pool from which the algorithm\n"
-"will pick the ones used for copper clearing."
-msgstr ""
-"Conjunto de herramientas desde el cual el algoritmo\n"
-"elegirá los utilizados para la limpieza de cobre."
-
-#: flatcamTools/ToolNCC.py:138
-msgid ""
-"This is the Tool Number.\n"
-"Non copper clearing will start with the tool with the biggest \n"
-"diameter, continuing until there are no more tools.\n"
-"Only tools that create NCC clearing geometry will still be present\n"
-"in the resulting geometry. This is because with some tools\n"
-"this function will not be able to create painting geometry."
-msgstr ""
-"Este es el número de herramienta.\n"
-"La limpieza sin cobre comenzará con la herramienta con la mayor\n"
-"diámetro, continuando hasta que no haya más herramientas.\n"
-"Solo las herramientas que crean geometría de limpieza NCC seguirán "
-"presentes\n"
-"en la geometría resultante. Esto es porque con algunas herramientas\n"
-"Esta función no podrá crear geometría de pintura."
-
-#: flatcamTools/ToolNCC.py:146
-msgid ""
-"Tool Diameter. It's value (in current FlatCAM units)\n"
-"is the cut width into the material."
-msgstr ""
-"Diámetro de herramienta. Su valor (en unidades actuales de FlatCAM)\n"
-"es el ancho de corte en el material."
-
-#: flatcamTools/ToolNCC.py:150
-msgid ""
-"The Tool Type (TT) can be:\n"
-"- Circular with 1 ... 4 teeth -> it is informative only. Being circular,\n"
-"the cut width in material is exactly the tool diameter.\n"
-"- Ball -> informative only and make reference to the Ball type endmill.\n"
-"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI "
-"form\n"
-"and enable two additional UI form fields in the resulting geometry: V-Tip "
-"Dia and\n"
-"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter "
-"such\n"
-"as the cut width into material will be equal with the value in the Tool "
-"Diameter\n"
-"column of this table.\n"
-"Choosing the 'V-Shape' Tool Type automatically will select the Operation "
-"Type\n"
-"in the resulting geometry as Isolation."
-msgstr ""
-"El tipo de herramienta (TT) puede ser:\n"
-"- Circular con 1 ... 4 dientes -> es solo informativo. Siendo circular,\n"
-"El ancho de corte en el material es exactamente el diámetro de la "
-"herramienta.\n"
-"- Bola -> solo informativo y hacer referencia a la fresa de extremo de "
-"bola.\n"
-"- Forma V -> deshabilitará el parámetro de corte Z en la forma de interfaz "
-"de usuario de geometría resultante\n"
-"y habilite dos campos de formulario de UI adicionales en la geometría "
-"resultante: V-Tip Dia y\n"
-"Ángulo de punta en V. El ajuste de esos dos valores ajustará el parámetro Z-"
-"Cut, como\n"
-"ya que el ancho de corte en el material será igual al valor en el Diámetro "
-"de la herramienta\n"
-"columna de esta tabla.\n"
-"Al elegir el tipo de herramienta 'Forma de V' automáticamente, se "
-"seleccionará el Tipo de operación\n"
-"en la geometría resultante como Aislamiento."
-
-#: flatcamTools/ToolNCC.py:296 flatcamTools/ToolPaint.py:279
-msgid ""
-"Add a new tool to the Tool Table\n"
-"with the diameter specified above."
-msgstr ""
-"Agregar una nueva herramienta a la tabla de herramientas\n"
-"con el diámetro especificado anteriormente."
-
-#: flatcamTools/ToolNCC.py:318 flatcamTools/ToolPaint.py:301
-#: flatcamTools/ToolSolderPaste.py:130
-msgid ""
-"Delete a selection of tools in the Tool Table\n"
-"by first selecting a row(s) in the Tool Table."
-msgstr ""
-"Eliminar una selección de herramientas en la tabla de herramientas\n"
-"seleccionando primero una (s) fila (s) en la Tabla de herramientas."
-
-#: flatcamTools/ToolNCC.py:554
-msgid ""
-"The type of FlatCAM object to be used as non copper clearing reference.\n"
-"It can be Gerber, Excellon or Geometry."
-msgstr ""
-"El tipo de objeto FlatCAM que se utilizará como referencia de compensación "
-"sin cobre.\n"
-"Puede ser Gerber, Excellon o Geometry."
-
-#: flatcamTools/ToolNCC.py:597 flatcamTools/ToolPaint.py:537
-msgid "Generate Geometry"
-msgstr "Generar Geometría"
-
-#: flatcamTools/ToolNCC.py:1425 flatcamTools/ToolPaint.py:1184
-#: flatcamTools/ToolSolderPaste.py:888
-msgid "Please enter a tool diameter to add, in Float format."
-msgstr "Ingrese un diámetro de herramienta para agregar, en formato decimal."
-
-#: flatcamTools/ToolNCC.py:1456 flatcamTools/ToolNCC.py:4013
-#: flatcamTools/ToolPaint.py:1208 flatcamTools/ToolPaint.py:3603
-#: flatcamTools/ToolSolderPaste.py:917
-msgid "Cancelled. Tool already in Tool Table."
-msgstr "Cancelado. Herramienta ya en la tabla de herramientas."
-
-#: flatcamTools/ToolNCC.py:1463 flatcamTools/ToolNCC.py:4030
-#: flatcamTools/ToolPaint.py:1213 flatcamTools/ToolPaint.py:3620
-msgid "New tool added to Tool Table."
-msgstr "Nueva herramienta agregada a la Tabla de herramientas."
-
-#: flatcamTools/ToolNCC.py:1507 flatcamTools/ToolPaint.py:1257
-msgid "Tool from Tool Table was edited."
-msgstr "Se editó la herramienta de la tabla de herramientas."
-
-#: flatcamTools/ToolNCC.py:1519 flatcamTools/ToolPaint.py:1269
-#: flatcamTools/ToolSolderPaste.py:978
-msgid "Cancelled. New diameter value is already in the Tool Table."
-msgstr ""
-"Cancelado. El nuevo valor del diámetro ya está en la Tabla de herramientas."
-
-#: flatcamTools/ToolNCC.py:1571 flatcamTools/ToolPaint.py:1367
-msgid "Delete failed. Select a tool to delete."
-msgstr "Eliminar falló. Seleccione una herramienta para eliminar."
-
-#: flatcamTools/ToolNCC.py:1577 flatcamTools/ToolPaint.py:1373
-msgid "Tool(s) deleted from Tool Table."
-msgstr "Herramienta (s) eliminada de la tabla de herramientas."
-
-#: flatcamTools/ToolNCC.py:1619
-msgid "Wrong Tool Dia value format entered, use a number."
-msgstr ""
-"Se ingresó un formato de valor de Diámetro de herramienta incorrecta, use un "
-"número."
-
-#: flatcamTools/ToolNCC.py:1628 flatcamTools/ToolPaint.py:1424
-msgid "No selected tools in Tool Table."
-msgstr "Seleccione una herramienta en la tabla de herramientas."
-
-#: flatcamTools/ToolNCC.py:1704 flatcamTools/ToolPaint.py:1600
-msgid "Click the end point of the paint area."
-msgstr "Haga clic en el punto final del área de pintura."
-
-#: flatcamTools/ToolNCC.py:1976 flatcamTools/ToolNCC.py:2964
-msgid "NCC Tool. Preparing non-copper polygons."
-msgstr "Herramienta NCC. Preparación de polígonos sin cobre."
-
-#: flatcamTools/ToolNCC.py:2035 flatcamTools/ToolNCC.py:3092
-msgid "NCC Tool. Calculate 'empty' area."
-msgstr "Herramienta NCC. Calcule el área 'vacía'."
-
-#: flatcamTools/ToolNCC.py:2054 flatcamTools/ToolNCC.py:2160
-#: flatcamTools/ToolNCC.py:2174 flatcamTools/ToolNCC.py:3105
-#: flatcamTools/ToolNCC.py:3210 flatcamTools/ToolNCC.py:3225
-#: flatcamTools/ToolNCC.py:3491 flatcamTools/ToolNCC.py:3592
-#: flatcamTools/ToolNCC.py:3607
-msgid "Buffering finished"
-msgstr "Buffering terminado"
-
-#: flatcamTools/ToolNCC.py:2062 flatcamTools/ToolNCC.py:2181
-#: flatcamTools/ToolNCC.py:3113 flatcamTools/ToolNCC.py:3232
-#: flatcamTools/ToolNCC.py:3498 flatcamTools/ToolNCC.py:3614
-msgid "Could not get the extent of the area to be non copper cleared."
-msgstr ""
-"No se pudo obtener la extensión del área que no fue limpiada con cobre."
-
-#: flatcamTools/ToolNCC.py:2089 flatcamTools/ToolNCC.py:2167
-#: flatcamTools/ToolNCC.py:3140 flatcamTools/ToolNCC.py:3217
-#: flatcamTools/ToolNCC.py:3518 flatcamTools/ToolNCC.py:3599
-msgid ""
-"Isolation geometry is broken. Margin is less than isolation tool diameter."
-msgstr ""
-"La geometría de aislamiento está rota. El margen es menor que el diámetro de "
-"la herramienta de aislamiento."
-
-#: flatcamTools/ToolNCC.py:2184 flatcamTools/ToolNCC.py:3236
-#: flatcamTools/ToolNCC.py:3617
-msgid "The selected object is not suitable for copper clearing."
-msgstr "El objeto seleccionado no es adecuado para la limpieza de cobre."
-
-#: flatcamTools/ToolNCC.py:2191 flatcamTools/ToolNCC.py:3243
-msgid "NCC Tool. Finished calculation of 'empty' area."
-msgstr "Herramienta NCC. Cálculo finalizado del área 'vacía'."
-
-#: flatcamTools/ToolNCC.py:2222 flatcamTools/ToolNCC.py:2224
-#: flatcamTools/ToolNCC.py:2916 flatcamTools/ToolNCC.py:2918
-msgid "Non-Copper clearing ..."
-msgstr "Limpieza sin cobre ..."
-
-#: flatcamTools/ToolNCC.py:2278 flatcamTools/ToolNCC.py:3060
-msgid ""
-"NCC Tool. Finished non-copper polygons. Normal copper clearing task started."
-msgstr ""
-"Herramienta NCC. Polígonos terminados sin cobre. Se inició la tarea normal "
-"de limpieza de cobre."
-
-#: flatcamTools/ToolNCC.py:2312 flatcamTools/ToolNCC.py:2592
-msgid "NCC Tool failed creating bounding box."
-msgstr "La herramienta NCC no pudo crear el cuadro delimitador."
-
-#: flatcamTools/ToolNCC.py:2326 flatcamTools/ToolNCC.py:2609
-#: flatcamTools/ToolNCC.py:3256 flatcamTools/ToolNCC.py:3642
-msgid "NCC Tool clearing with tool diameter"
-msgstr "La Herram. NCC se está limpiando con el diá. de la herramienta"
-
-#: flatcamTools/ToolNCC.py:2326 flatcamTools/ToolNCC.py:2609
-#: flatcamTools/ToolNCC.py:3256 flatcamTools/ToolNCC.py:3642
-msgid "started."
-msgstr "empezado."
-
-#: flatcamTools/ToolNCC.py:2518 flatcamTools/ToolNCC.py:3417
-msgid ""
-"There is no NCC 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 ""
-"No hay geometría NCC en el archivo.\n"
-"Por lo general, significa que el diámetro de la herramienta es demasiado "
-"grande para la geometría pintada.\n"
-"Cambie los parámetros de pintura e intente nuevamente."
-
-#: flatcamTools/ToolNCC.py:2527 flatcamTools/ToolNCC.py:3426
-msgid "NCC Tool clear all done."
-msgstr "Herramienta NCC borrar todo hecho."
-
-#: flatcamTools/ToolNCC.py:2530 flatcamTools/ToolNCC.py:3429
-msgid "NCC Tool clear all done but the copper features isolation is broken for"
-msgstr ""
-"La herramienta NCC borra todo, pero el aislamiento de las características de "
-"cobre está roto por"
-
-#: flatcamTools/ToolNCC.py:2532 flatcamTools/ToolNCC.py:2817
-#: flatcamTools/ToolNCC.py:3431 flatcamTools/ToolNCC.py:3814
-msgid "tools"
-msgstr "herramientas"
-
-#: flatcamTools/ToolNCC.py:2813 flatcamTools/ToolNCC.py:3810
-msgid "NCC Tool Rest Machining clear all done."
-msgstr "NCC herramienta de mecanizado de reposo claro todo hecho."
-
-#: flatcamTools/ToolNCC.py:2816 flatcamTools/ToolNCC.py:3813
-msgid ""
-"NCC Tool Rest Machining clear all done but the copper features isolation is "
-"broken for"
-msgstr ""
-"El mecanizado de reposo de herramientas NCC está claro, pero el aislamiento "
-"de características de cobre está roto por"
-
-#: flatcamTools/ToolNCC.py:2928
-msgid "NCC Tool started. Reading parameters."
-msgstr "Herramienta NCC iniciada. Parámetros de lectura."
-
-#: flatcamTools/ToolNCC.py:3906
-msgid ""
-"Try to use the Buffering Type = Full in Preferences -> Gerber General. "
-"Reload the Gerber file after this change."
-msgstr ""
-"Intente utilizar el Tipo de almacenamiento intermedio = Completo en "
-"Preferencias -> Gerber General. Vuelva a cargar el archivo Gerber después de "
-"este cambio."
-
-#: flatcamTools/ToolOptimal.py:79
-msgid "Number of decimals kept for found distances."
-msgstr "Número de decimales guardados para distancias encontradas."
-
-#: flatcamTools/ToolOptimal.py:87
-msgid "Minimum distance"
-msgstr "Distancia minima"
-
-#: flatcamTools/ToolOptimal.py:88
-msgid "Display minimum distance between copper features."
-msgstr "Mostrar la distancia mínima entre las características de cobre."
-
-#: flatcamTools/ToolOptimal.py:92
-msgid "Determined"
-msgstr "Determinado"
-
-#: flatcamTools/ToolOptimal.py:106
-msgid "Occurring"
-msgstr "Ocurriendo"
-
-#: flatcamTools/ToolOptimal.py:107
-msgid "How many times this minimum is found."
-msgstr "Cuántas veces se encuentra este mínimo."
-
-#: flatcamTools/ToolOptimal.py:113
-msgid "Minimum points coordinates"
-msgstr "Coordenadas de puntos mínimos"
-
-#: flatcamTools/ToolOptimal.py:114 flatcamTools/ToolOptimal.py:120
-msgid "Coordinates for points where minimum distance was found."
-msgstr "Coordenadas para los puntos donde se encontró la distancia mínima."
-
-#: flatcamTools/ToolOptimal.py:133 flatcamTools/ToolOptimal.py:209
-msgid "Jump to selected position"
-msgstr "Saltar a la posición seleccionada"
-
-#: flatcamTools/ToolOptimal.py:135 flatcamTools/ToolOptimal.py:211
-msgid ""
-"Select a position in the Locations text box and then\n"
-"click this button."
-msgstr ""
-"Seleccione una posición en el cuadro de texto Ubicaciones y luego\n"
-"haga clic en este botón."
-
-#: flatcamTools/ToolOptimal.py:143
-msgid "Other distances"
-msgstr "Otras distancias"
-
-#: flatcamTools/ToolOptimal.py:144
-msgid ""
-"Will display other distances in the Gerber file ordered from\n"
-"the minimum to the maximum, not including the absolute minimum."
-msgstr ""
-"Mostrará otras distancias en el archivo Gerber ordenado a\n"
-"el mínimo al máximo, sin incluir el mínimo absoluto."
-
-#: flatcamTools/ToolOptimal.py:149
-msgid "Other distances points coordinates"
-msgstr "Otras distancias puntos coordenadas"
-
-#: flatcamTools/ToolOptimal.py:150 flatcamTools/ToolOptimal.py:164
-#: flatcamTools/ToolOptimal.py:171 flatcamTools/ToolOptimal.py:188
-#: flatcamTools/ToolOptimal.py:195
-msgid ""
-"Other distances and the coordinates for points\n"
-"where the distance was found."
-msgstr ""
-"Otras distancias y las coordenadas de los puntos.\n"
-"donde se encontró la distancia."
-
-#: flatcamTools/ToolOptimal.py:163
-msgid "Gerber distances"
-msgstr "Distancias de Gerber"
-
-#: flatcamTools/ToolOptimal.py:187
-msgid "Points coordinates"
-msgstr "Coordenadas de puntos"
-
-#: flatcamTools/ToolOptimal.py:219
-msgid "Find Minimum"
-msgstr "Encuentra mínimo"
-
-#: flatcamTools/ToolOptimal.py:221
-msgid ""
-"Calculate the minimum distance between copper features,\n"
-"this will allow the determination of the right tool to\n"
-"use for isolation or copper clearing."
-msgstr ""
-"Calcule la distancia mínima entre las características de cobre,\n"
-"esto permitirá determinar la herramienta adecuada para\n"
-"utilizar para aislamiento o limpieza de cobre."
-
-#: flatcamTools/ToolOptimal.py:346
-msgid "Only Gerber objects can be evaluated."
-msgstr "Solo se pueden evaluar los objetos de Gerber."
-
-#: flatcamTools/ToolOptimal.py:352
-msgid ""
-"Optimal Tool. Started to search for the minimum distance between copper "
-"features."
-msgstr ""
-"Herramienta óptima. Comenzó a buscar la distancia mínima entre las "
-"características de cobre."
-
-#: flatcamTools/ToolOptimal.py:362
-msgid "Optimal Tool. Parsing geometry for aperture"
-msgstr "Herramienta óptima. Análisis de geometría para apertura"
-
-#: flatcamTools/ToolOptimal.py:373
-msgid "Optimal Tool. Creating a buffer for the object geometry."
-msgstr "Herramienta óptima. Crear un búfer para la geometría del objeto."
-
-#: flatcamTools/ToolOptimal.py:383
-msgid ""
-"The Gerber object has one Polygon as geometry.\n"
-"There are no distances between geometry elements to be found."
-msgstr ""
-"El objeto Gerber tiene un Polígono como geometría.\n"
-"No hay distancias entre los elementos de geometría que se encuentran."
-
-#: flatcamTools/ToolOptimal.py:388
-msgid ""
-"Optimal Tool. Finding the distances between each two elements. Iterations"
-msgstr ""
-"Herramienta óptima. Encontrar las distancias entre cada dos elementos. "
-"Iteraciones"
-
-#: flatcamTools/ToolOptimal.py:423
-msgid "Optimal Tool. Finding the minimum distance."
-msgstr "Herramienta óptima. Encontrar la distancia mínima."
-
-#: flatcamTools/ToolOptimal.py:439
-msgid "Optimal Tool. Finished successfully."
-msgstr "Herramienta óptima. Terminado con éxito."
-
-#: flatcamTools/ToolPDF.py:157 flatcamTools/ToolPDF.py:161
-msgid "Open PDF"
-msgstr "Abrir PDF"
-
-#: flatcamTools/ToolPDF.py:164
-msgid "Open PDF cancelled"
-msgstr "Abrir PDF cancelado"
-
-#: flatcamTools/ToolPDF.py:195
-msgid "Parsing PDF file ..."
-msgstr "Analizando archivo PDF ..."
-
-#: flatcamTools/ToolPDF.py:278 flatcamTools/ToolPDF.py:353
-#, python-format
-msgid "Rendering PDF layer #%d ..."
-msgstr "Renderizando la capa PDF #%d ..."
-
-#: flatcamTools/ToolPDF.py:283 flatcamTools/ToolPDF.py:358
-msgid "Open PDF file failed."
-msgstr "El archivo PDF abierto ha fallado."
-
-#: flatcamTools/ToolPDF.py:289 flatcamTools/ToolPDF.py:363
-msgid "Rendered"
-msgstr "Rendido"
-
-#: flatcamTools/ToolPaint.py:82
-msgid ""
-"Specify the type of object to be painted.\n"
-"It can be of type: Gerber or Geometry.\n"
-"What is selected here will dictate the kind\n"
-"of objects that will populate the 'Object' combobox."
-msgstr ""
-"Especifique el tipo de objeto a pintar.\n"
-"Puede ser de tipo: Gerber o Geometría.\n"
-"Lo que se seleccione aquí dictará el tipo\n"
-"de objetos que llenarán el cuadro combinado 'Objeto'."
-
-#: flatcamTools/ToolPaint.py:104
-msgid "Object to be painted."
-msgstr "Objeto a pintar."
-
-#: flatcamTools/ToolPaint.py:117
-msgid ""
-"Tools pool from which the algorithm\n"
-"will pick the ones used for painting."
-msgstr ""
-"Conjunto de herramientas desde el cual el algoritmo\n"
-"elegirá los que se usan para pintar."
-
-#: flatcamTools/ToolPaint.py:134
-msgid ""
-"This is the Tool Number.\n"
-"Painting will start with the tool with the biggest diameter,\n"
-"continuing until there are no more tools.\n"
-"Only tools that create painting geometry will still be present\n"
-"in the resulting geometry. This is because with some tools\n"
-"this function will not be able to create painting geometry."
-msgstr ""
-"Este es el número de herramienta.\n"
-"La pintura comenzará con la herramienta con el diámetro más grande,\n"
-"continuando hasta que no haya más herramientas.\n"
-"Solo las herramientas que crean geometría de pintura seguirán presentes\n"
-"en la geometría resultante. Esto es porque con algunas herramientas\n"
-"Esta función no podrá crear geometría de pintura."
-
-#: flatcamTools/ToolPaint.py:146
-msgid ""
-"The Tool Type (TT) can be:\n"
-"- Circular -> it is informative only. Being circular,\n"
-"the cut width in material is exactly the tool diameter.\n"
-"- Ball -> informative only and make reference to the Ball type endmill.\n"
-"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI "
-"form\n"
-"and enable two additional UI form fields in the resulting geometry: V-Tip "
-"Dia and\n"
-"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter "
-"such\n"
-"as the cut width into material will be equal with the value in the Tool "
-"Diameter\n"
-"column of this table.\n"
-"Choosing the 'V-Shape' Tool Type automatically will select the Operation "
-"Type\n"
-"in the resulting geometry as Isolation."
-msgstr ""
-"El tipo de herramienta (TT) puede ser:\n"
-"- Circular -> es solo informativo. Siendo circular,\n"
-"El ancho de corte en el material es exactamente el diámetro de la "
-"herramienta.\n"
-"- Bola -> solo informativo y hacer referencia a la fresa de extremo de "
-"bola.\n"
-"- Forma V -> deshabilitará el parámetro de corte Z en la forma de interfaz "
-"de usuario de geometría resultante\n"
-"y habilite dos campos de formulario de UI adicionales en la geometría "
-"resultante: V-Tip Dia y\n"
-"Ángulo de punta en V. El ajuste de esos dos valores ajustará el parámetro Z-"
-"Cut, como\n"
-"ya que el ancho de corte en el material será igual al valor en el Diámetro "
-"de la herramienta\n"
-"columna de esta tabla.\n"
-"Al elegir el tipo de herramienta 'Forma de V' automáticamente, se "
-"seleccionará el Tipo de operación\n"
-"en la geometría resultante como Aislamiento."
-
-#: flatcamTools/ToolPaint.py:498
-msgid ""
-"The type of FlatCAM object to be used as paint reference.\n"
-"It can be Gerber, Excellon or Geometry."
-msgstr ""
-"El tipo de objeto FlatCAM que se utilizará como referencia de pintura.\n"
-"Puede ser Gerber, Excellon o Geometry."
-
-#: flatcamTools/ToolPaint.py:539
-msgid ""
-"- 'Area Selection' - left mouse click to start selection of the area to be "
-"painted.\n"
-"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple "
-"areas.\n"
-"- 'All Polygons' - the Paint will start after click.\n"
-"- 'Reference Object' - will do non copper clearing within the area\n"
-"specified by another object."
-msgstr ""
-"- 'Selección de área': haga clic con el botón izquierdo del mouse para "
-"iniciar la selección del área a pintar.\n"
-"Mantener presionada una tecla modificadora (CTRL o SHIFT) permitirá agregar "
-"múltiples áreas.\n"
-"- 'Todos los polígonos': la pintura comenzará después de hacer clic.\n"
-"- 'Objeto de referencia' - hará una limpieza sin cobre dentro del área\n"
-"especificado por otro objeto."
-
-#: flatcamTools/ToolPaint.py:1393
-#, python-format
-msgid "Could not retrieve object: %s"
-msgstr "No se pudo recuperar el objeto: %s"
-
-#: flatcamTools/ToolPaint.py:1403
-msgid "Can't do Paint on MultiGeo geometries"
-msgstr "No se puede Pintar en geometrías de geo-múltiple"
-
-#: flatcamTools/ToolPaint.py:1433
-msgid "Click on a polygon to paint it."
-msgstr "Haga clic en un polígono para pintarlo."
-
-#: flatcamTools/ToolPaint.py:1453
-msgid "Click the start point of the paint area."
-msgstr "Haga clic en el punto de inicio del área de pintura."
-
-#: flatcamTools/ToolPaint.py:1518
-msgid "Click to add next polygon or right click to start painting."
-msgstr ""
-"Haga clic para agregar el siguiente polígono o haga clic con el botón "
-"derecho para comenzar a pintar."
-
-#: flatcamTools/ToolPaint.py:1531
-msgid "Click to add/remove next polygon or right click to start painting."
-msgstr ""
-"Haga clic para agregar / eliminar el siguiente polígono o haga clic con el "
-"botón derecho para comenzar a pintar."
-
-#: flatcamTools/ToolPaint.py:2029
-msgid "Painting polygon with method: lines."
-msgstr "Pintura poligonal con método: líneas."
-
-#: flatcamTools/ToolPaint.py:2041
-msgid "Failed. Painting polygon with method: seed."
-msgstr "Ha fallado. Pintura poligonal con método: semilla."
-
-#: flatcamTools/ToolPaint.py:2052
-msgid "Failed. Painting polygon with method: standard."
-msgstr "Ha fallado. Pintura poligonal con método: estándar."
-
-#: flatcamTools/ToolPaint.py:2068
-msgid "Geometry could not be painted completely"
-msgstr "La Geometría no se pudo pintar completamente"
-
-#: flatcamTools/ToolPaint.py:2097 flatcamTools/ToolPaint.py:2100
-#: flatcamTools/ToolPaint.py:2108 flatcamTools/ToolPaint.py:2411
-#: flatcamTools/ToolPaint.py:2414 flatcamTools/ToolPaint.py:2422
-#: flatcamTools/ToolPaint.py:2910 flatcamTools/ToolPaint.py:2913
-#: flatcamTools/ToolPaint.py:2919
-msgid "Paint Tool."
-msgstr "Herramienta de Pintura."
-
-#: flatcamTools/ToolPaint.py:2097 flatcamTools/ToolPaint.py:2100
-#: flatcamTools/ToolPaint.py:2108
-msgid "Normal painting polygon task started."
-msgstr "Se inició la tarea normal de polígono de pintura."
-
-#: flatcamTools/ToolPaint.py:2098 flatcamTools/ToolPaint.py:2412
-#: flatcamTools/ToolPaint.py:2911
-msgid "Buffering geometry..."
-msgstr "Almacenar la geometría ..."
-
-#: flatcamTools/ToolPaint.py:2120 flatcamTools/ToolPaint.py:2429
-#: flatcamTools/ToolPaint.py:2927
-msgid "No polygon found."
-msgstr "No se encontró polígono."
-
-#: flatcamTools/ToolPaint.py:2150
-msgid "Painting polygon..."
-msgstr "Pintar polígono ..."
-
-#: flatcamTools/ToolPaint.py:2160 flatcamTools/ToolPaint.py:2475
-#: flatcamTools/ToolPaint.py:2665 flatcamTools/ToolPaint.py:2973
-#: flatcamTools/ToolPaint.py:3152
-msgid "Painting with tool diameter = "
-msgstr "Pintar con diá de herram. = "
-
-#: flatcamTools/ToolPaint.py:2161 flatcamTools/ToolPaint.py:2476
-#: flatcamTools/ToolPaint.py:2666 flatcamTools/ToolPaint.py:2974
-#: flatcamTools/ToolPaint.py:3153
-msgid "started"
-msgstr "empezado"
-
-#: flatcamTools/ToolPaint.py:2186 flatcamTools/ToolPaint.py:2502
-#: flatcamTools/ToolPaint.py:2692 flatcamTools/ToolPaint.py:3000
-#: flatcamTools/ToolPaint.py:3179
-msgid "Margin parameter too big. Tool is not used"
-msgstr "El parámetro de margen es demasiado grande. La herramienta no se usa"
-
-#: flatcamTools/ToolPaint.py:2244 flatcamTools/ToolPaint.py:2571
-#: flatcamTools/ToolPaint.py:2749 flatcamTools/ToolPaint.py:3063
-#: flatcamTools/ToolPaint.py:3241
-msgid ""
-"Could not do Paint. Try a different combination of parameters. Or a "
-"different strategy of paint"
-msgstr ""
-"No se pudo Pintar. Pruebe con una combinación diferente de parámetros. O una "
-"estrategia diferente de pintura"
-
-#: flatcamTools/ToolPaint.py:2301 flatcamTools/ToolPaint.py:2637
-#: flatcamTools/ToolPaint.py:2806 flatcamTools/ToolPaint.py:3124
-#: flatcamTools/ToolPaint.py:3303
-msgid ""
-"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 ""
-"No hay Geometría de pintura en el archivo.\n"
-"Por lo general, significa que el diámetro de la herramienta es demasiado "
-"grande para la geometría pintada.\n"
-"Cambie los parámetros de pintura e intente nuevamente."
-
-#: flatcamTools/ToolPaint.py:2324
-msgid "Paint Single failed."
-msgstr "La pintura sola falló."
-
-#: flatcamTools/ToolPaint.py:2330
-msgid "Paint Single Done."
-msgstr "Pintar solo hecho."
-
-#: flatcamTools/ToolPaint.py:2332 flatcamTools/ToolPaint.py:2842
-#: flatcamTools/ToolPaint.py:3339
-msgid "Polygon Paint started ..."
-msgstr "Polygon Pinta comenzó ..."
-
-#: flatcamTools/ToolPaint.py:2411 flatcamTools/ToolPaint.py:2414
-#: flatcamTools/ToolPaint.py:2422
-msgid "Paint all polygons task started."
-msgstr "La tarea de pintar todos los polígonos comenzó."
-
-#: flatcamTools/ToolPaint.py:2453 flatcamTools/ToolPaint.py:2951
-msgid "Painting polygons..."
-msgstr "Pintar polígonos ..."
-
-#: flatcamTools/ToolPaint.py:2646
-msgid "Paint All Done."
-msgstr "Pintar todo listo."
-
-#: flatcamTools/ToolPaint.py:2815 flatcamTools/ToolPaint.py:3312
-msgid "Paint All with Rest-Machining done."
-msgstr "Pinte Todo con el mecanizado de descanso hecho."
-
-#: flatcamTools/ToolPaint.py:2834
-msgid "Paint All failed."
-msgstr "Pintar todo falló."
-
-#: flatcamTools/ToolPaint.py:2840
-msgid "Paint Poly All Done."
-msgstr "Pintar todos los polígonos está hecho."
-
-#: flatcamTools/ToolPaint.py:2910 flatcamTools/ToolPaint.py:2913
-#: flatcamTools/ToolPaint.py:2919
-msgid "Painting area task started."
-msgstr "La tarea del área de pintura comenzó."
-
-#: flatcamTools/ToolPaint.py:3133
-msgid "Paint Area Done."
-msgstr "Área de pintura hecha."
-
-#: flatcamTools/ToolPaint.py:3331
-msgid "Paint Area failed."
-msgstr "Pintar el área falló."
-
-#: flatcamTools/ToolPaint.py:3337
-msgid "Paint Poly Area Done."
-msgstr "Pintar el área de polígonos está hecho."
-
-#: flatcamTools/ToolPanelize.py:34
-msgid "Panelize PCB"
-msgstr "Panelizar PCB"
-
-#: flatcamTools/ToolPanelize.py:56
-msgid ""
-"Specify the type of object to be panelized\n"
-"It can be of type: Gerber, Excellon or Geometry.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Object combobox."
-msgstr ""
-"Especifique el tipo de objeto a ser panelizado\n"
-"Puede ser de tipo: Gerber, Excellon o Geometry.\n"
-"La selección aquí decide el tipo de objetos que serán\n"
-"en el cuadro combinado Objeto."
-
-#: flatcamTools/ToolPanelize.py:89
-msgid ""
-"Object to be panelized. This means that it will\n"
-"be duplicated in an array of rows and columns."
-msgstr ""
-"Objeto a ser panelizado. Esto significa que lo hará\n"
-"ser duplicado en una matriz de filas y columnas."
-
-#: flatcamTools/ToolPanelize.py:102
-msgid "Penelization Reference"
-msgstr "Ref. de penelización"
-
-#: flatcamTools/ToolPanelize.py:104
-msgid ""
-"Choose the reference for panelization:\n"
-"- Object = the bounding box of a different object\n"
-"- Bounding Box = the bounding box of the object to be panelized\n"
-"\n"
-"The reference is useful when doing panelization for more than one\n"
-"object. The spacings (really offsets) will be applied in reference\n"
-"to this reference object therefore maintaining the panelized\n"
-"objects in sync."
-msgstr ""
-"Elija la referencia para la panelización:\n"
-"- Objeto = el cuadro delimitador de un objeto diferente\n"
-"- Cuadro delimitador = el cuadro delimitador del objeto a panelizar\n"
-"\n"
-"La referencia es útil cuando se hace panelización para más de uno.\n"
-"objeto. Los espacios (realmente desplazados) se aplicarán en referencia\n"
-"a este objeto de referencia, por lo tanto, manteniendo el panelizado\n"
-"objetos sincronizados."
-
-#: flatcamTools/ToolPanelize.py:125
-msgid "Box Type"
-msgstr "Tipo de caja"
-
-#: flatcamTools/ToolPanelize.py:127
-msgid ""
-"Specify the type of object to be used as an container for\n"
-"panelization. It can be: Gerber or Geometry type.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Box Object combobox."
-msgstr ""
-"Especifique el tipo de objeto que se utilizará como contenedor para\n"
-"panelización. Puede ser: tipo Gerber o Geometría.\n"
-"La selección aquí decide el tipo de objetos que serán\n"
-"en el cuadro combinado Objeto de caja."
-
-#: flatcamTools/ToolPanelize.py:141
-msgid ""
-"The actual object that is used as container for the\n"
-" selected object that is to be panelized."
-msgstr ""
-"El objeto real que se utiliza como contenedor para\n"
-" objeto seleccionado que se va a panelizar."
-
-#: flatcamTools/ToolPanelize.py:147
-msgid "Panel Data"
-msgstr "Datos del panel"
-
-#: flatcamTools/ToolPanelize.py:149
-msgid ""
-"This informations will shape the resulting panel.\n"
-"The number of rows and columns will set how many\n"
-"duplicates of the original geometry will be generated.\n"
-"\n"
-"The spacings will set the distance between any two\n"
-"elements of the panel array."
-msgstr ""
-"Esta información dará forma al panel resultante.\n"
-"El número de filas y columnas establecerá cuántos\n"
-"Se generarán duplicados de la geometría original.\n"
-"\n"
-"Los espacios establecerán la distancia entre dos\n"
-"elementos de la matriz de paneles."
-
-#: flatcamTools/ToolPanelize.py:208
-msgid ""
-"Choose the type of object for the panel object:\n"
-"- Geometry\n"
-"- Gerber"
-msgstr ""
-"Elija el tipo de objeto para el objeto del panel:\n"
-"- Geometría\n"
-"- Gerber"
-
-#: flatcamTools/ToolPanelize.py:216
-msgid "Constrain panel within"
-msgstr "Restrinja el panel dentro de"
-
-#: flatcamTools/ToolPanelize.py:252
-msgid "Panelize Object"
-msgstr "Panelizar objeto"
-
-#: flatcamTools/ToolPanelize.py:254 flatcamTools/ToolRulesCheck.py:501
-msgid ""
-"Panelize the specified object around the specified box.\n"
-"In other words it creates multiple copies of the source object,\n"
-"arranged in a 2D array of rows and columns."
-msgstr ""
-"Panelizar el objeto especificado alrededor del cuadro especificado.\n"
-"En otras palabras, crea múltiples copias del objeto fuente,\n"
-"dispuestos en una matriz 2D de filas y columnas."
-
-#: flatcamTools/ToolPanelize.py:322
-msgid "Panel. Tool"
-msgstr "Herra. de Panel"
-
-#: flatcamTools/ToolPanelize.py:457
-msgid "Columns or Rows are zero value. Change them to a positive integer."
-msgstr ""
-"Las columnas o filas son de valor cero. Cámbialos a un entero positivo."
-
-#: flatcamTools/ToolPanelize.py:494
-msgid "Generating panel ... "
-msgstr "Panel generador … "
-
-#: flatcamTools/ToolPanelize.py:777
-msgid "Generating panel ... Adding the Gerber code."
-msgstr "Generando panel ... Agregando el código Gerber."
-
-#: flatcamTools/ToolPanelize.py:785
-msgid "Generating panel... Spawning copies"
-msgstr "Generando panel ... Generando copias"
-
-#: flatcamTools/ToolPanelize.py:792
-msgid "Panel done..."
-msgstr "Panel hecho ..."
-
-#: flatcamTools/ToolPanelize.py:795
-#, python-brace-format
-msgid ""
-"{text} Too big for the constrain area. Final panel has {col} columns and "
-"{row} rows"
-msgstr ""
-"{text} Demasiado grande para el área de restricción. El panel final tiene "
-"{col} columnas y {row} filas"
-
-#: flatcamTools/ToolPanelize.py:804
-msgid "Panel created successfully."
-msgstr "Panel creado con éxito."
-
-#: flatcamTools/ToolPcbWizard.py:31
-msgid "PcbWizard Import Tool"
-msgstr "Herra. de import. PcbWizard"
-
-#: flatcamTools/ToolPcbWizard.py:40
-msgid "Import 2-file Excellon"
-msgstr "Importar Excellon de 2 archivos"
-
-#: flatcamTools/ToolPcbWizard.py:51
-msgid "Load files"
-msgstr "Cargar archivos"
-
-#: flatcamTools/ToolPcbWizard.py:57
-msgid "Excellon file"
-msgstr "Archivo Excellon"
-
-#: flatcamTools/ToolPcbWizard.py:59
-msgid ""
-"Load the Excellon file.\n"
-"Usually it has a .DRL extension"
-msgstr ""
-"Cargue el archivo Excellon.\n"
-"Por lo general, tiene una extensión .DRL"
-
-#: flatcamTools/ToolPcbWizard.py:65
-msgid "INF file"
-msgstr "Archivo INF"
-
-#: flatcamTools/ToolPcbWizard.py:67
-msgid "Load the INF file."
-msgstr "Cargue el archivo INF."
-
-#: flatcamTools/ToolPcbWizard.py:79
-msgid "Tool Number"
-msgstr "Numero de Herram"
-
-#: flatcamTools/ToolPcbWizard.py:81
-msgid "Tool diameter in file units."
-msgstr "Diámetro de herramienta en unidades de archivo."
-
-#: flatcamTools/ToolPcbWizard.py:87
-msgid "Excellon format"
-msgstr "Formato Excellon"
-
-#: flatcamTools/ToolPcbWizard.py:95
-msgid "Int. digits"
-msgstr "Dígitos enteros"
-
-#: flatcamTools/ToolPcbWizard.py:97
-msgid "The number of digits for the integral part of the coordinates."
-msgstr "El número de dígitos para la parte integral de las coordenadas."
-
-#: flatcamTools/ToolPcbWizard.py:104
-msgid "Frac. digits"
-msgstr "Dígitos Fraccio"
-
-#: flatcamTools/ToolPcbWizard.py:106
-msgid "The number of digits for the fractional part of the coordinates."
-msgstr "El número de dígitos para la parte fraccionaria de las coordenadas."
-
-#: flatcamTools/ToolPcbWizard.py:113
-msgid "No Suppression"
-msgstr "Sin supresión"
-
-#: flatcamTools/ToolPcbWizard.py:114
-msgid "Zeros supp."
-msgstr "Supresión de Ceros"
-
-#: flatcamTools/ToolPcbWizard.py:116
-msgid ""
-"The type of zeros suppression used.\n"
-"Can be of type:\n"
-"- LZ = leading zeros are kept\n"
-"- TZ = trailing zeros are kept\n"
-"- No Suppression = no zero suppression"
-msgstr ""
-"El tipo de supresión de ceros utilizada.\n"
-"Puede ser de tipo:\n"
-"- LZ = los ceros iniciales se mantienen\n"
-"- TZ = los ceros finales se mantienen\n"
-"- Sin supresión = sin supresión de cero"
-
-#: flatcamTools/ToolPcbWizard.py:129
-msgid ""
-"The type of units that the coordinates and tool\n"
-"diameters are using. Can be INCH or MM."
-msgstr ""
-"El tipo de unidades que las coordenadas y la herramienta\n"
-"diámetros están utilizando. Puede ser PULGADAS o MM."
-
-#: flatcamTools/ToolPcbWizard.py:136
-msgid "Import Excellon"
-msgstr "Importar Excellon"
-
-#: flatcamTools/ToolPcbWizard.py:138
-msgid ""
-"Import in FlatCAM an Excellon file\n"
-"that store it's information's in 2 files.\n"
-"One usually has .DRL extension while\n"
-"the other has .INF extension."
-msgstr ""
-"Importar en FlatCAM un archivo Excellon\n"
-"que almacena su información en 2 archivos.\n"
-"Uno generalmente tiene la extensión .DRL mientras\n"
-"el otro tiene extensión .INF."
-
-#: flatcamTools/ToolPcbWizard.py:197
-msgid "PCBWizard Tool"
-msgstr "Herra. PCBWizard"
-
-#: flatcamTools/ToolPcbWizard.py:291 flatcamTools/ToolPcbWizard.py:295
-msgid "Load PcbWizard Excellon file"
-msgstr "Cargar archivo PcbWizard Excellon"
-
-#: flatcamTools/ToolPcbWizard.py:314 flatcamTools/ToolPcbWizard.py:318
-msgid "Load PcbWizard INF file"
-msgstr "Cargar archivo PcbWizard INF"
-
-#: flatcamTools/ToolPcbWizard.py:366
-msgid ""
-"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 ""
-"El archivo INF no contiene la tabla de herramientas.\n"
-"Intente abrir el archivo Excellon desde Archivo -> Abrir -> Excellon\n"
-"y edite los diámetros de taladro manualmente."
-
-#: flatcamTools/ToolPcbWizard.py:387
-msgid "PcbWizard .INF file loaded."
-msgstr "PcbWizard .INF archivo cargado."
-
-#: flatcamTools/ToolPcbWizard.py:392
-msgid "Main PcbWizard Excellon file loaded."
-msgstr "Archivo PcbWizard Excellon principal cargado."
-
-#: flatcamTools/ToolPcbWizard.py:427
-msgid "Cannot parse file"
-msgstr "No se puede analizar el archivo"
-
-#: flatcamTools/ToolPcbWizard.py:450
-msgid "Importing Excellon."
-msgstr "Importando Excellon."
-
-#: flatcamTools/ToolPcbWizard.py:457
-msgid "Import Excellon file failed."
-msgstr "Error al importar el archivo Excellon."
-
-#: flatcamTools/ToolPcbWizard.py:464
-msgid "Imported"
-msgstr "Importado"
-
-#: flatcamTools/ToolPcbWizard.py:467
-msgid "Excellon merging is in progress. Please wait..."
-msgstr "La fusión de Excellon está en progreso. Por favor espera..."
-
-#: flatcamTools/ToolPcbWizard.py:469
-msgid "The imported Excellon file is empty."
-msgstr "El archivo Excellon importado es Ninguno."
-
-#: flatcamTools/ToolProperties.py:131
-msgid "Object Properties are displayed."
-msgstr "Se muestran las propiedades del objeto."
-
-#: flatcamTools/ToolProperties.py:136
-msgid "Properties Tool"
-msgstr "Herra. de Propiedades"
-
-#: flatcamTools/ToolProperties.py:150
-msgid "TYPE"
-msgstr "TIPO"
-
-#: flatcamTools/ToolProperties.py:151
-msgid "NAME"
-msgstr "NOMBRE"
-
-#: flatcamTools/ToolProperties.py:153
-msgid "Dimensions"
-msgstr "Dimensiones"
-
-#: flatcamTools/ToolProperties.py:181
-msgid "Geo Type"
-msgstr "Tipo de Geo"
-
-#: flatcamTools/ToolProperties.py:184
-msgid "Single-Geo"
-msgstr "Geo. individual"
-
-#: flatcamTools/ToolProperties.py:185
-msgid "Multi-Geo"
-msgstr "Geo. múltiple"
-
-#: flatcamTools/ToolProperties.py:196
-msgid "Calculating dimensions ... Please wait."
-msgstr "Calculando dimensiones ... Por favor espere."
-
-#: flatcamTools/ToolProperties.py:339 flatcamTools/ToolProperties.py:343
-#: flatcamTools/ToolProperties.py:345
-msgid "Inch"
-msgstr "Pulgada"
-
-#: flatcamTools/ToolProperties.py:339 flatcamTools/ToolProperties.py:344
-#: flatcamTools/ToolProperties.py:346
-msgid "Metric"
-msgstr "Métrico"
-
-#: flatcamTools/ToolProperties.py:421 flatcamTools/ToolProperties.py:486
-msgid "Drills number"
-msgstr "Número de taladros"
-
-#: flatcamTools/ToolProperties.py:422 flatcamTools/ToolProperties.py:488
-msgid "Slots number"
-msgstr "Número de tragamonedas"
-
-#: flatcamTools/ToolProperties.py:424
-msgid "Drills total number:"
-msgstr "Número total de taladros:"
-
-#: flatcamTools/ToolProperties.py:425
-msgid "Slots total number:"
-msgstr "Número total de tragamonedas:"
-
-#: flatcamTools/ToolProperties.py:452 flatcamTools/ToolProperties.py:455
-#: flatcamTools/ToolProperties.py:458 flatcamTools/ToolProperties.py:483
-msgid "Present"
-msgstr "Presente"
-
-#: flatcamTools/ToolProperties.py:453 flatcamTools/ToolProperties.py:484
-msgid "Solid Geometry"
-msgstr "Geometria solida"
-
-#: flatcamTools/ToolProperties.py:456
-msgid "GCode Text"
-msgstr "GCode texto"
-
-#: flatcamTools/ToolProperties.py:459
-msgid "GCode Geometry"
-msgstr "Geometría GCode"
-
-#: flatcamTools/ToolProperties.py:462
-msgid "Data"
-msgstr "Datos"
-
-#: flatcamTools/ToolProperties.py:495
-msgid "Depth of Cut"
-msgstr "Profundidad del corte"
-
-#: flatcamTools/ToolProperties.py:507
-msgid "Clearance Height"
-msgstr "Altura libre"
-
-#: flatcamTools/ToolProperties.py:539
-msgid "Routing time"
-msgstr "Tiempo de enrutamiento"
-
-#: flatcamTools/ToolProperties.py:546
-msgid "Travelled distance"
-msgstr "Distancia recorrida"
-
-#: flatcamTools/ToolProperties.py:564
-msgid "Width"
-msgstr "Anchura"
-
-#: flatcamTools/ToolProperties.py:570 flatcamTools/ToolProperties.py:578
-msgid "Box Area"
-msgstr "Área de caja"
-
-#: flatcamTools/ToolProperties.py:573 flatcamTools/ToolProperties.py:581
-msgid "Convex_Hull Area"
-msgstr "Área de casco convexo"
-
-#: flatcamTools/ToolProperties.py:588 flatcamTools/ToolProperties.py:591
-msgid "Copper Area"
-msgstr "Área de cobre"
-
-#: flatcamTools/ToolPunchGerber.py:30 flatcamTools/ToolPunchGerber.py:323
-msgid "Punch Gerber"
-msgstr "Gerber Perforadora"
-
-#: flatcamTools/ToolPunchGerber.py:65
-msgid "Gerber into which to punch holes"
-msgstr "Gerber en el que hacer agujeros"
-
-#: flatcamTools/ToolPunchGerber.py:85
-msgid "ALL"
-msgstr "TODAS"
-
-#: flatcamTools/ToolPunchGerber.py:166
-msgid ""
-"Remove the geometry of Excellon from the Gerber to create the holes in pads."
-msgstr ""
-"Retire la geometría de Excellon del Gerber para crear los agujeros en las "
-"almohadillas."
-
-#: flatcamTools/ToolPunchGerber.py:325
-msgid ""
-"Create a Gerber object from the selected object, within\n"
-"the specified box."
-msgstr ""
-"Cree un objeto Gerber a partir del objeto seleccionado, dentro de\n"
-"El cuadro especificado."
-
-#: flatcamTools/ToolPunchGerber.py:425
-msgid "Punch Tool"
-msgstr "Herram. de Perforación"
-
-#: flatcamTools/ToolPunchGerber.py:599
-msgid "The value of the fixed diameter is 0.0. Aborting."
-msgstr "El valor del diámetro fijo es 0.0. Abortar."
-
-#: flatcamTools/ToolPunchGerber.py:607 flatcamTools/ToolPunchGerber.py:619
-msgid ""
-"Could not generate punched hole Gerber because the punch hole size is bigger "
-"than some of the apertures in the Gerber object."
-msgstr ""
-"No se pudo generar el agujero perforado Gerber porque el tamaño del agujero "
-"perforado es mayor que algunas de las aberturas en el objeto Gerber."
-
-#: flatcamTools/ToolPunchGerber.py:656
-msgid ""
-"Could not generate punched hole Gerber because the newly created object "
-"geometry is the same as the one in the source object geometry..."
-msgstr ""
-"No se pudo generar el agujero perforado Gerber porque la geometría del "
-"objeto recién creada es la misma que la de la geometría del objeto de "
-"origen ..."
-
-#: flatcamTools/ToolQRCode.py:80
-msgid "Gerber Object to which the QRCode will be added."
-msgstr "Objeto Gerber al que se agregará el QRCode."
-
-#: flatcamTools/ToolQRCode.py:93
-msgid "QRCode Parameters"
-msgstr "Parámetros QRCode"
-
-#: flatcamTools/ToolQRCode.py:95
-msgid "The parameters used to shape the QRCode."
-msgstr "Los parámetros utilizados para dar forma al QRCode."
-
-#: flatcamTools/ToolQRCode.py:207
-msgid "Export QRCode"
-msgstr "Exportar el código QR"
-
-#: flatcamTools/ToolQRCode.py:209
-msgid ""
-"Show a set of controls allowing to export the QRCode\n"
-"to a SVG file or an PNG file."
-msgstr ""
-"Mostrar un conjunto de controles que permiten exportar el QRCode\n"
-"a un archivo SVG o un archivo PNG."
-
-#: flatcamTools/ToolQRCode.py:248
-msgid "Transparent back color"
-msgstr "Color de fondo transparente"
-
-#: flatcamTools/ToolQRCode.py:273
-msgid "Export QRCode SVG"
-msgstr "Exportar el QRCode SVG"
-
-#: flatcamTools/ToolQRCode.py:275
-msgid "Export a SVG file with the QRCode content."
-msgstr "Exporte un archivo SVG con el contenido de QRCode."
-
-#: flatcamTools/ToolQRCode.py:286
-msgid "Export QRCode PNG"
-msgstr "Exportar el QRCode PNG"
-
-#: flatcamTools/ToolQRCode.py:288
-msgid "Export a PNG image file with the QRCode content."
-msgstr "Exporte un archivo de imagen PNG con el contenido de QRCode."
-
-#: flatcamTools/ToolQRCode.py:299
-msgid "Insert QRCode"
-msgstr "Insertar QRCode"
-
-#: flatcamTools/ToolQRCode.py:301
-msgid "Create the QRCode object."
-msgstr "Crea el objeto QRCode."
-
-#: flatcamTools/ToolQRCode.py:415 flatcamTools/ToolQRCode.py:750
-#: flatcamTools/ToolQRCode.py:799
-msgid "Cancelled. There is no QRCode Data in the text box."
-msgstr "Cancelado. No hay datos de QRCode en el cuadro de texto."
-
-#: flatcamTools/ToolQRCode.py:434
-msgid "Generating QRCode geometry"
-msgstr "Generando geometría QRCode"
-
-#: flatcamTools/ToolQRCode.py:474
-msgid "Click on the Destination point ..."
-msgstr "Haga clic en el punto de destino ..."
-
-#: flatcamTools/ToolQRCode.py:589
-msgid "QRCode Tool done."
-msgstr "Herramienta QRCode hecha."
-
-#: flatcamTools/ToolQRCode.py:782 flatcamTools/ToolQRCode.py:786
-msgid "Export PNG"
-msgstr "Exportar PNG"
-
-#: flatcamTools/ToolRulesCheck.py:33
-msgid "Check Rules"
-msgstr "Verificar Reglas"
-
-#: flatcamTools/ToolRulesCheck.py:61
-msgid "Gerber Files"
-msgstr "Archivos Gerber"
-
-#: flatcamTools/ToolRulesCheck.py:63
-msgid "Gerber objects for which to check rules."
-msgstr "Objetos de Gerber para los cuales verificar las reglas."
-
-#: flatcamTools/ToolRulesCheck.py:78
-msgid "Top"
-msgstr "Top"
-
-#: flatcamTools/ToolRulesCheck.py:80
-msgid "The Top Gerber Copper object for which rules are checked."
-msgstr "El objeto de cobre Top Gerber para el que se verifican las reglas."
-
-#: flatcamTools/ToolRulesCheck.py:96
-msgid "Bottom"
-msgstr "Inferior"
-
-#: flatcamTools/ToolRulesCheck.py:98
-msgid "The Bottom Gerber Copper object for which rules are checked."
-msgstr ""
-"El objeto de cobre de Gerber inferior para el que se verifican las reglas."
-
-#: flatcamTools/ToolRulesCheck.py:114
-msgid "SM Top"
-msgstr "SM Top"
-
-#: flatcamTools/ToolRulesCheck.py:116
-msgid "The Top Gerber Solder Mask object for which rules are checked."
-msgstr ""
-"El objeto Máscara de soldadura de Gerber superior para el que se verifican "
-"las reglas."
-
-#: flatcamTools/ToolRulesCheck.py:132
-msgid "SM Bottom"
-msgstr "SM Inferior"
-
-#: flatcamTools/ToolRulesCheck.py:134
-msgid "The Bottom Gerber Solder Mask object for which rules are checked."
-msgstr ""
-"El objeto de máscara de soldadura de Gerber inferior para el que se "
-"verifican las reglas."
-
-#: flatcamTools/ToolRulesCheck.py:150
-msgid "Silk Top"
-msgstr "Top de serigrafía"
-
-#: flatcamTools/ToolRulesCheck.py:152
-msgid "The Top Gerber Silkscreen object for which rules are checked."
-msgstr ""
-"El objeto de serigrafía Top Gerber para el que se verifican las reglas."
-
-#: flatcamTools/ToolRulesCheck.py:168
-msgid "Silk Bottom"
-msgstr "Serigrafía Inferior"
-
-#: flatcamTools/ToolRulesCheck.py:170
-msgid "The Bottom Gerber Silkscreen object for which rules are checked."
-msgstr ""
-"El objeto Serigrafía inferior de Gerber para el que se verifican las reglas."
-
-#: flatcamTools/ToolRulesCheck.py:188
-msgid "The Gerber Outline (Cutout) object for which rules are checked."
-msgstr ""
-"El objeto Esquema de Gerber (Recorte) para el que se verifican las reglas."
-
-#: flatcamTools/ToolRulesCheck.py:199
-msgid "Excellon Objects"
-msgstr "Objetos Excellon"
-
-#: flatcamTools/ToolRulesCheck.py:201
-msgid "Excellon objects for which to check rules."
-msgstr "Excellon objetos para los cuales verificar las reglas."
-
-#: flatcamTools/ToolRulesCheck.py:213
-msgid "Excellon 1"
-msgstr "Excellon 1"
-
-#: flatcamTools/ToolRulesCheck.py:215
-msgid ""
-"Excellon object for which to check rules.\n"
-"Holds the plated holes or a general Excellon file content."
-msgstr ""
-"Objeto Excellon para el cual verificar las reglas.\n"
-"Contiene los agujeros chapados o un contenido general del archivo Excellon."
-
-#: flatcamTools/ToolRulesCheck.py:232
-msgid "Excellon 2"
-msgstr "Excellon 2"
-
-#: flatcamTools/ToolRulesCheck.py:234
-msgid ""
-"Excellon object for which to check rules.\n"
-"Holds the non-plated holes."
-msgstr ""
-"Objeto Excellon para el cual verificar las reglas.\n"
-"Sostiene los agujeros no chapados."
-
-#: flatcamTools/ToolRulesCheck.py:247
-msgid "All Rules"
-msgstr "Todas las reglas"
-
-#: flatcamTools/ToolRulesCheck.py:249
-msgid "This check/uncheck all the rules below."
-msgstr "Esto marca / desmarca todas las reglas a continuación."
-
-#: flatcamTools/ToolRulesCheck.py:499
-msgid "Run Rules Check"
-msgstr "Ejecutar Reglas Verificar"
-
-#: flatcamTools/ToolRulesCheck.py:1158 flatcamTools/ToolRulesCheck.py:1218
-#: flatcamTools/ToolRulesCheck.py:1255 flatcamTools/ToolRulesCheck.py:1327
-#: flatcamTools/ToolRulesCheck.py:1381 flatcamTools/ToolRulesCheck.py:1419
-#: flatcamTools/ToolRulesCheck.py:1484
-msgid "Value is not valid."
-msgstr "El valor no es valido."
-
-#: flatcamTools/ToolRulesCheck.py:1172
-msgid "TOP -> Copper to Copper clearance"
-msgstr "ARRIBA -> Separación de Cobre a Cobre"
-
-#: flatcamTools/ToolRulesCheck.py:1183
-msgid "BOTTOM -> Copper to Copper clearance"
-msgstr "ABAJO -> Separación de Cobre a Cobre"
-
-#: flatcamTools/ToolRulesCheck.py:1188 flatcamTools/ToolRulesCheck.py:1282
-#: flatcamTools/ToolRulesCheck.py:1446
-msgid ""
-"At least one Gerber object has to be selected for this rule but none is "
-"selected."
-msgstr ""
-"Se debe seleccionar al menos un objeto Gerber para esta regla, pero no se "
-"selecciona ninguno."
-
-#: flatcamTools/ToolRulesCheck.py:1224
-msgid ""
-"One of the copper Gerber objects or the Outline Gerber object is not valid."
-msgstr ""
-"Uno de los objetos de cobre de Gerber o el objeto de contorno de Gerber no "
-"es válido."
-
-#: flatcamTools/ToolRulesCheck.py:1237 flatcamTools/ToolRulesCheck.py:1401
-msgid ""
-"Outline Gerber object presence is mandatory for this rule but it is not "
-"selected."
-msgstr ""
-"La presencia del objeto Contorno Gerber es obligatoria para esta regla, pero "
-"no está seleccionada."
-
-#: flatcamTools/ToolRulesCheck.py:1254 flatcamTools/ToolRulesCheck.py:1281
-msgid "Silk to Silk clearance"
-msgstr "Distancia de Serigrafía a Serigrafía"
-
-#: flatcamTools/ToolRulesCheck.py:1267
-msgid "TOP -> Silk to Silk clearance"
-msgstr "ARRIBA -> Distancia de Serigrafía a Serigrafía"
-
-#: flatcamTools/ToolRulesCheck.py:1277
-msgid "BOTTOM -> Silk to Silk clearance"
-msgstr "ABAJO -> Distancia de Serigrafía a Serigrafía"
-
-#: flatcamTools/ToolRulesCheck.py:1333
-msgid "One or more of the Gerber objects is not valid."
-msgstr "Uno o más de los objetos de Gerber no son válidos."
-
-#: flatcamTools/ToolRulesCheck.py:1341
-msgid "TOP -> Silk to Solder Mask Clearance"
-msgstr "ARRIBA -> Distancia entre la Máscara de Soldadura y la Serigrafía"
-
-#: flatcamTools/ToolRulesCheck.py:1347
-msgid "BOTTOM -> Silk to Solder Mask Clearance"
-msgstr "ABAJO -> Distancia entre la Máscara de Soldadura y la Serigrafía"
-
-#: flatcamTools/ToolRulesCheck.py:1351
-msgid ""
-"Both Silk and Solder Mask Gerber objects has to be either both Top or both "
-"Bottom."
-msgstr ""
-"Tanto los objetos de Serigrafía como los de Máscara de soldadura Gerber "
-"deben ser tanto Superior como Inferior."
-
-#: flatcamTools/ToolRulesCheck.py:1387
-msgid ""
-"One of the Silk Gerber objects or the Outline Gerber object is not valid."
-msgstr ""
-"Uno de los objetos de Serigrafía Gerber o el objeto Contorno Gerber no es "
-"válido."
-
-#: flatcamTools/ToolRulesCheck.py:1431
-msgid "TOP -> Minimum Solder Mask Sliver"
-msgstr "ARRIBA -> Astilla de máscara de soldadura mínima"
-
-#: flatcamTools/ToolRulesCheck.py:1441
-msgid "BOTTOM -> Minimum Solder Mask Sliver"
-msgstr "ABAJO -> Astilla de máscara de soldadura mínima"
-
-#: flatcamTools/ToolRulesCheck.py:1490
-msgid "One of the Copper Gerber objects or the Excellon objects is not valid."
-msgstr "Uno de los objetos de Cobre Gerber u objetos de Excellon no es válido."
-
-#: flatcamTools/ToolRulesCheck.py:1506
-msgid ""
-"Excellon object presence is mandatory for this rule but none is selected."
-msgstr ""
-"La presencia de objetos Excellon es obligatoria para esta regla, pero no se "
-"selecciona ninguna."
-
-#: flatcamTools/ToolRulesCheck.py:1579 flatcamTools/ToolRulesCheck.py:1592
-#: flatcamTools/ToolRulesCheck.py:1603 flatcamTools/ToolRulesCheck.py:1616
-msgid "STATUS"
-msgstr "ESTADO"
-
-#: flatcamTools/ToolRulesCheck.py:1582 flatcamTools/ToolRulesCheck.py:1606
-msgid "FAILED"
-msgstr "HA FALLADO"
-
-#: flatcamTools/ToolRulesCheck.py:1595 flatcamTools/ToolRulesCheck.py:1619
-msgid "PASSED"
-msgstr "PASADO"
-
-#: flatcamTools/ToolRulesCheck.py:1596 flatcamTools/ToolRulesCheck.py:1620
-msgid "Violations: There are no violations for the current rule."
-msgstr "Infracciones: no hay infracciones para la regla actual."
-
-#: flatcamTools/ToolShell.py:74 flatcamTools/ToolShell.py:76
-msgid "...processing..."
-msgstr "…procesando..."
-
-#: flatcamTools/ToolSolderPaste.py:37
-msgid "Solder Paste Tool"
-msgstr "Herra. de Pasta de Soldadura"
-
-#: flatcamTools/ToolSolderPaste.py:69
-msgid "Gerber Solder paste object. "
-msgstr "Gerber Soldadura pegar objeto. "
-
-#: flatcamTools/ToolSolderPaste.py:76
-msgid ""
-"Tools pool from which the algorithm\n"
-"will pick the ones used for dispensing solder paste."
-msgstr ""
-"Conjunto de herramientas desde el cual el algoritmo\n"
-"elegirá los que se usan para dispensar pasta de soldadura."
-
-#: flatcamTools/ToolSolderPaste.py:91
-msgid ""
-"This is the Tool Number.\n"
-"The solder dispensing will start with the tool with the biggest \n"
-"diameter, continuing until there are no more Nozzle tools.\n"
-"If there are no longer tools but there are still pads not covered\n"
-" with solder paste, the app will issue a warning message box."
-msgstr ""
-"Este es el número de herramienta.\n"
-"La dispensación de soldadura comenzará con la herramienta con el mayor\n"
-"diámetro, continuando hasta que no haya más herramientas de boquilla.\n"
-"Si ya no hay herramientas pero todavía hay almohadillas no cubiertas\n"
-" con soldadura en pasta, la aplicación emitirá un cuadro de mensaje de "
-"advertencia."
-
-#: flatcamTools/ToolSolderPaste.py:98
-msgid ""
-"Nozzle tool Diameter. It's value (in current FlatCAM units)\n"
-"is the width of the solder paste dispensed."
-msgstr ""
-"Herramienta de boquilla de diámetro. Su valor (en unidades actuales de "
-"FlatCAM)\n"
-"es el ancho de la pasta de soldadura dispensada."
-
-#: flatcamTools/ToolSolderPaste.py:105
-msgid "New Nozzle Tool"
-msgstr "Nueva herra. de boquilla"
-
-#: flatcamTools/ToolSolderPaste.py:124
-msgid ""
-"Add a new nozzle tool to the Tool Table\n"
-"with the diameter specified above."
-msgstr ""
-"Agregue una nueva herramienta de boquilla a la tabla de herramientas\n"
-"con el diámetro especificado anteriormente."
-
-#: flatcamTools/ToolSolderPaste.py:136
-msgid "Generate solder paste dispensing geometry."
-msgstr "Generar geometría de dispensación de pasta de soldadura."
-
-#: flatcamTools/ToolSolderPaste.py:155
-msgid "STEP 1"
-msgstr "PASO 1"
-
-#: flatcamTools/ToolSolderPaste.py:157
-msgid ""
-"First step is to select a number of nozzle tools for usage\n"
-"and then optionally modify the GCode parameters below."
-msgstr ""
-"El primer paso es seleccionar una serie de herramientas de boquillas para su "
-"uso\n"
-"y luego opcionalmente modificar los parámetros GCode a continuación."
-
-#: flatcamTools/ToolSolderPaste.py:160
-msgid ""
-"Select tools.\n"
-"Modify parameters."
-msgstr ""
-"Seleccionar herramientas.\n"
-"Modificar parámetros."
-
-#: flatcamTools/ToolSolderPaste.py:280
-msgid ""
-"Feedrate (speed) while moving up vertically\n"
-" to Dispense position (on Z plane)."
-msgstr ""
-"Avance (velocidad) mientras se mueve verticalmente\n"
-" para dispensar la posición (en el plano Z)."
-
-#: flatcamTools/ToolSolderPaste.py:350
-msgid ""
-"Generate GCode for Solder Paste dispensing\n"
-"on PCB pads."
-msgstr ""
-"Generar GCodelo para dispensar pasta de soldadura\n"
-"en almohadillas de PCB."
-
-#: flatcamTools/ToolSolderPaste.py:371
-msgid "STEP 2"
-msgstr "PASO 2"
-
-#: flatcamTools/ToolSolderPaste.py:373
-msgid ""
-"Second step is to create a solder paste dispensing\n"
-"geometry out of an Solder Paste Mask Gerber file."
-msgstr ""
-"El segundo paso es crear una dispensación de pasta de soldadura\n"
-"geometría de un archivo Gerber de máscara de pasta de soldadura."
-
-#: flatcamTools/ToolSolderPaste.py:390
-msgid "Geo Result"
-msgstr "Resultado Geo"
-
-#: flatcamTools/ToolSolderPaste.py:392
-msgid ""
-"Geometry Solder Paste object.\n"
-"The name of the object has to end in:\n"
-"'_solderpaste' as a protection."
-msgstr ""
-"Objeto de pasta de soldadura de geometría.\n"
-"El nombre del objeto tiene que terminar en:\n"
-"'_solderpaste' como protección."
-
-#: flatcamTools/ToolSolderPaste.py:401
-msgid "STEP 3"
-msgstr "PASO 3"
-
-#: flatcamTools/ToolSolderPaste.py:403
-msgid ""
-"Third step is to select a solder paste dispensing geometry,\n"
-"and then generate a CNCJob object.\n"
-"\n"
-"REMEMBER: if you want to create a CNCJob with new parameters,\n"
-"first you need to generate a geometry with those new params,\n"
-"and only after that you can generate an updated CNCJob."
-msgstr ""
-"El tercer paso es seleccionar una geometría de distribución de pasta de "
-"soldadura,\n"
-"y luego generar un objeto CNCJob.\n"
-"\n"
-"RECUERDE: si desea crear un CNCJob con nuevos parámetros,\n"
-"primero necesitas generar una geometría con esos nuevos parámetros,\n"
-"y solo después de eso puede generar un CNCJob actualizado."
-
-#: flatcamTools/ToolSolderPaste.py:424
-msgid "CNC Result"
-msgstr "Resultado del CNC"
-
-#: flatcamTools/ToolSolderPaste.py:426
-msgid ""
-"CNCJob Solder paste object.\n"
-"In order to enable the GCode save section,\n"
-"the name of the object has to end in:\n"
-"'_solderpaste' as a protection."
-msgstr ""
-"CNCJob soldar pegar objeto.\n"
-"Para habilitar la sección de guardar GCode,\n"
-"el nombre del objeto debe terminar en:\n"
-"'_solderpaste' como protección."
-
-#: flatcamTools/ToolSolderPaste.py:436
-msgid "View GCode"
-msgstr "Ver GCode"
-
-#: flatcamTools/ToolSolderPaste.py:438
-msgid ""
-"View the generated GCode for Solder Paste dispensing\n"
-"on PCB pads."
-msgstr ""
-"Ver el GCode generado para la dispensación de pasta de soldadura\n"
-"en almohadillas de PCB."
-
-#: flatcamTools/ToolSolderPaste.py:448
-msgid "Save GCode"
-msgstr "Guardar GCode"
-
-#: flatcamTools/ToolSolderPaste.py:450
-msgid ""
-"Save the generated GCode for Solder Paste dispensing\n"
-"on PCB pads, to a file."
-msgstr ""
-"Guarde el GCode generado para la dispensación de pasta de soldadura\n"
-"en almohadillas de PCB, a un archivo."
-
-#: flatcamTools/ToolSolderPaste.py:460
-msgid "STEP 4"
-msgstr "PASO 4"
-
-#: flatcamTools/ToolSolderPaste.py:462
-msgid ""
-"Fourth step (and last) is to select a CNCJob made from \n"
-"a solder paste dispensing geometry, and then view/save it's GCode."
-msgstr ""
-"Cuarto paso (y último) es seleccionar un CNCJob hecho de\n"
-"una geometría de dispensación de pasta de soldadura, y luego ver / guardar "
-"su código GC."
-
-#: flatcamTools/ToolSolderPaste.py:922
-msgid "New Nozzle tool added to Tool Table."
-msgstr "Nueva herramienta de boquillas agregada a la tabla de herramientas."
-
-#: flatcamTools/ToolSolderPaste.py:965
-msgid "Nozzle tool from Tool Table was edited."
-msgstr "Nueva herramienta de boquillas agregada a la tabla de herramientas."
-
-#: flatcamTools/ToolSolderPaste.py:1024
-msgid "Delete failed. Select a Nozzle tool to delete."
-msgstr ""
-"Eliminar falló. Seleccione una herramienta de inyectores para eliminar."
-
-#: flatcamTools/ToolSolderPaste.py:1030
-msgid "Nozzle tool(s) deleted from Tool Table."
-msgstr "Herramienta de boquilla (s) eliminada de la tabla de herramientas."
-
-#: flatcamTools/ToolSolderPaste.py:1086
-msgid "No SolderPaste mask Gerber object loaded."
-msgstr "No se ha cargado el objeto Gerber de máscara de pasta de soldadura."
-
-#: flatcamTools/ToolSolderPaste.py:1104
-msgid "Creating Solder Paste dispensing geometry."
-msgstr "Creación de geometría de dispensación de pasta de soldadura."
-
-#: flatcamTools/ToolSolderPaste.py:1117
-msgid "No Nozzle tools in the tool table."
-msgstr "No hay herramientas de boquilla en la mesa de herramientas."
-
-#: flatcamTools/ToolSolderPaste.py:1243
-msgid "Cancelled. Empty file, it has no geometry..."
-msgstr "Cancelado. Archivo vacío, no tiene geometría ..."
-
-#: flatcamTools/ToolSolderPaste.py:1246
-msgid "Solder Paste geometry generated successfully"
-msgstr "Geometría de pasta de soldadura generada con éxito"
-
-#: flatcamTools/ToolSolderPaste.py:1253
-msgid "Some or all pads have no solder due of inadequate nozzle diameters..."
-msgstr ""
-"Algunas o todas las almohadillas no tienen soldadura debido a los diámetros "
-"de boquilla inadecuados ..."
-
-#: flatcamTools/ToolSolderPaste.py:1267
-msgid "Generating Solder Paste dispensing geometry..."
-msgstr "Generando geometría de dispensación de pasta de soldadura ..."
-
-#: flatcamTools/ToolSolderPaste.py:1287
-msgid "There is no Geometry object available."
-msgstr "No hay ningún objeto de Geometría disponible."
-
-#: flatcamTools/ToolSolderPaste.py:1292
-msgid "This Geometry can't be processed. NOT a solder_paste_tool geometry."
-msgstr ""
-"Esta Geometría no se puede procesar. NO es una geometría solder_paste_tool."
-
-#: flatcamTools/ToolSolderPaste.py:1328
-msgid "An internal error has ocurred. See shell.\n"
-msgstr ""
-"Ha ocurrido un error interno. Ver caparazón.\n"
-"\n"
-
-#: flatcamTools/ToolSolderPaste.py:1393
-msgid "ToolSolderPaste CNCjob created"
-msgstr "Herramienta soldar pegar CNCjob creado"
-
-#: flatcamTools/ToolSolderPaste.py:1412
-msgid "SP GCode Editor"
-msgstr "SP GCode editor"
-
-#: flatcamTools/ToolSolderPaste.py:1424 flatcamTools/ToolSolderPaste.py:1429
-#: flatcamTools/ToolSolderPaste.py:1484
-msgid ""
-"This CNCJob object can't be processed. NOT a solder_paste_tool CNCJob object."
-msgstr ""
-"Este objeto CNCJob no se puede procesar. NO es un objeto CNCJob de "
-"herramienta de pasta de soldadura."
-
-#: flatcamTools/ToolSolderPaste.py:1454
-msgid "No Gcode in the object"
-msgstr "No Gcode en el objeto"
-
-#: flatcamTools/ToolSolderPaste.py:1494
-msgid "Export GCode ..."
-msgstr "Exportar GCode ..."
-
-#: flatcamTools/ToolSolderPaste.py:1542
-msgid "Solder paste dispenser GCode file saved to"
-msgstr "Dispensador de pasta de soldadura Archivo GCode guardado en: %s"
-
-#: flatcamTools/ToolSub.py:65
-msgid "Gerber Objects"
-msgstr "Objetos Gerber"
-
-#: flatcamTools/ToolSub.py:78
-msgid ""
-"Gerber object from which to subtract\n"
-"the subtractor Gerber object."
-msgstr ""
-"Objeto de Gerber para restar\n"
-"El sustractor del objeto Gerber."
-
-#: flatcamTools/ToolSub.py:91 flatcamTools/ToolSub.py:146
-msgid "Subtractor"
-msgstr "Sustractor"
-
-#: flatcamTools/ToolSub.py:93
-msgid ""
-"Gerber object that will be subtracted\n"
-"from the target Gerber object."
-msgstr ""
-"Objeto de Gerber que se restará\n"
-"del objeto objetivo de Gerber."
-
-#: flatcamTools/ToolSub.py:100
-msgid "Subtract Gerber"
-msgstr "Restar Gerber"
-
-#: flatcamTools/ToolSub.py:102
-msgid ""
-"Will remove the area occupied by the subtractor\n"
-"Gerber from the Target Gerber.\n"
-"Can be used to remove the overlapping silkscreen\n"
-"over the soldermask."
-msgstr ""
-"Eliminará el área ocupada por el sustractor\n"
-"Gerber del objetivo Gerber.\n"
-"Se puede utilizar para eliminar la serigrafía superpuesta\n"
-"sobre la máscara de soldadura."
-
-#: flatcamTools/ToolSub.py:120
-msgid "Geometry Objects"
-msgstr "Objetos de Geometría"
-
-#: flatcamTools/ToolSub.py:133
-msgid ""
-"Geometry object from which to subtract\n"
-"the subtractor Geometry object."
-msgstr ""
-"Objeto de Geometría del cual restar\n"
-"El objeto de Geometría de sustractor."
-
-#: flatcamTools/ToolSub.py:148
-msgid ""
-"Geometry object that will be subtracted\n"
-"from the target Geometry object."
-msgstr ""
-"Objeto de Geometría que se restará\n"
-"del objeto de Geometría de destino."
-
-#: flatcamTools/ToolSub.py:156
-msgid ""
-"Checking this will close the paths cut by the Geometry subtractor object."
-msgstr ""
-"Marcar esto cerrará los caminos cortados por el objeto sustrato Geometry."
-
-#: flatcamTools/ToolSub.py:159
-msgid "Subtract Geometry"
-msgstr "Restar Geometría"
-
-#: flatcamTools/ToolSub.py:161
-msgid ""
-"Will remove the area occupied by the subtractor\n"
-"Geometry from the Target Geometry."
-msgstr ""
-"Eliminará el área ocupada por el sustractor\n"
-"Geometría de la Geometría Objetivo."
-
-#: flatcamTools/ToolSub.py:263
-msgid "Sub Tool"
-msgstr "Herra. de resta"
-
-#: flatcamTools/ToolSub.py:284 flatcamTools/ToolSub.py:489
-msgid "No Target object loaded."
-msgstr "No se ha cargado ningún objeto de destino."
-
-#: flatcamTools/ToolSub.py:287
-msgid "Loading geometry from Gerber objects."
-msgstr "Cargando geometría de objetos Gerber."
-
-#: flatcamTools/ToolSub.py:299 flatcamTools/ToolSub.py:504
-msgid "No Subtractor object loaded."
-msgstr "No se ha cargado ningún objeto Subtractor."
-
-#: flatcamTools/ToolSub.py:331
-msgid "Processing geometry from Subtractor Gerber object."
-msgstr "Procesamiento de geometría del objeto sustractor Gerber."
-
-#: flatcamTools/ToolSub.py:352
-msgid "Parsing geometry for aperture"
-msgstr "Análisis de geometría para apertura"
-
-#: flatcamTools/ToolSub.py:413
-msgid "Finished parsing geometry for aperture"
-msgstr "Geometría de análisis terminada para apertura"
-
-#: flatcamTools/ToolSub.py:458 flatcamTools/ToolSub.py:661
-msgid "Generating new object ..."
-msgstr "Generando nuevo objeto ..."
-
-#: flatcamTools/ToolSub.py:462 flatcamTools/ToolSub.py:665
-#: flatcamTools/ToolSub.py:746
-msgid "Generating new object failed."
-msgstr "Generando nuevo objeto falló."
-
-#: flatcamTools/ToolSub.py:467 flatcamTools/ToolSub.py:671
-msgid "Created"
-msgstr "Creado"
-
-#: flatcamTools/ToolSub.py:518
-msgid "Currently, the Subtractor geometry cannot be of type Multigeo."
-msgstr ""
-"Actualmente, la geometría del sustractor no puede ser del tipo Multigeo."
-
-#: flatcamTools/ToolSub.py:563
-msgid "Parsing solid_geometry ..."
-msgstr "Analizando solid_geometry ..."
-
-#: flatcamTools/ToolSub.py:565
-msgid "Parsing solid_geometry for tool"
-msgstr "Análisis de geometría para herramienta"
-
-#: flatcamTools/ToolTransform.py:23
-msgid "Object Transform"
-msgstr "Transform. de objetos"
-
-#: flatcamTools/ToolTransform.py:78
-msgid ""
-"Rotate the selected object(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected objects."
-msgstr ""
-"Rotar los objetos seleccionados.\n"
-"El punto de referencia es el medio de\n"
-"el cuadro delimitador para todos los objetos seleccionados."
-
-#: flatcamTools/ToolTransform.py:99 flatcamTools/ToolTransform.py:120
-msgid ""
-"Angle for Skew action, in degrees.\n"
-"Float number between -360 and 360."
-msgstr ""
-"Ángulo para sesgo de acción, en grados.\n"
-"Número de flotación entre -360 y 360."
-
-#: flatcamTools/ToolTransform.py:109 flatcamTools/ToolTransform.py:130
-msgid ""
-"Skew/shear the selected object(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected objects."
-msgstr ""
-"Incline / corte los objetos seleccionados.\n"
-"El punto de referencia es el medio de\n"
-"el cuadro delimitador para todos los objetos seleccionados."
-
-#: flatcamTools/ToolTransform.py:159 flatcamTools/ToolTransform.py:179
-msgid ""
-"Scale the selected object(s).\n"
-"The point of reference depends on \n"
-"the Scale reference checkbox state."
-msgstr ""
-"Escala los objetos seleccionados.\n"
-"El punto de referencia depende de\n"
-"el estado de la casilla de verificación Escalar referencia."
-
-#: flatcamTools/ToolTransform.py:228 flatcamTools/ToolTransform.py:248
-msgid ""
-"Offset the selected object(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected objects.\n"
-msgstr ""
-"Desplazar los objetos seleccionados.\n"
-"El punto de referencia es el medio de\n"
-"el cuadro delimitador para todos los objetos seleccionados.\n"
-
-#: flatcamTools/ToolTransform.py:268 flatcamTools/ToolTransform.py:273
-msgid "Flip the selected object(s) over the X axis."
-msgstr "Voltee los objetos seleccionados sobre el eje X."
-
-#: flatcamTools/ToolTransform.py:297
-msgid "Ref. Point"
-msgstr "Punto de Ref"
-
-#: flatcamTools/ToolTransform.py:348
-msgid ""
-"Create the buffer effect on each geometry,\n"
-"element from the selected object, using the distance."
-msgstr ""
-"Crea el efecto de amortiguación en cada geometría,\n"
-"elemento del objeto seleccionado, utilizando la distancia."
-
-#: flatcamTools/ToolTransform.py:374
-msgid ""
-"Create the buffer effect on each geometry,\n"
-"element from the selected object, using the factor."
-msgstr ""
-"Crea el efecto de amortiguación en cada geometría,\n"
-"elemento del objeto seleccionado, utilizando el factor."
-
-#: flatcamTools/ToolTransform.py:479
-msgid "Buffer D"
-msgstr "Buffer D"
-
-#: flatcamTools/ToolTransform.py:480
-msgid "Buffer F"
-msgstr "Buffer F"
-
-#: flatcamTools/ToolTransform.py:557
-msgid "Rotate transformation can not be done for a value of 0."
-msgstr "La transformación de rotación no se puede hacer para un valor de 0."
-
-#: flatcamTools/ToolTransform.py:596 flatcamTools/ToolTransform.py:619
-msgid "Scale transformation can not be done for a factor of 0 or 1."
-msgstr "La transformación de escala no se puede hacer para un factor de 0 o 1."
-
-#: flatcamTools/ToolTransform.py:634 flatcamTools/ToolTransform.py:644
-msgid "Offset transformation can not be done for a value of 0."
-msgstr ""
-"La transformación de compensación no se puede hacer para un valor de 0."
-
-#: flatcamTools/ToolTransform.py:676
-msgid "No object selected. Please Select an object to rotate!"
-msgstr ""
-"Ningún objeto seleccionado. Por favor, seleccione un objeto para rotar!"
-
-#: flatcamTools/ToolTransform.py:702
-msgid "CNCJob objects can't be rotated."
-msgstr "Los objetos de CNCJob no se pueden girar."
-
-#: flatcamTools/ToolTransform.py:710
-msgid "Rotate done"
-msgstr "Rotar hecho"
-
-#: flatcamTools/ToolTransform.py:713 flatcamTools/ToolTransform.py:783
-#: flatcamTools/ToolTransform.py:833 flatcamTools/ToolTransform.py:887
-#: flatcamTools/ToolTransform.py:917 flatcamTools/ToolTransform.py:953
-msgid "Due of"
-msgstr "Debido a"
-
-#: flatcamTools/ToolTransform.py:713 flatcamTools/ToolTransform.py:783
-#: flatcamTools/ToolTransform.py:833 flatcamTools/ToolTransform.py:887
-#: flatcamTools/ToolTransform.py:917 flatcamTools/ToolTransform.py:953
-msgid "action was not executed."
-msgstr "la acción no se ejecutó."
-
-#: flatcamTools/ToolTransform.py:725
-msgid "No object selected. Please Select an object to flip"
-msgstr "Ningún objeto seleccionado. Seleccione un objeto para voltear"
-
-#: flatcamTools/ToolTransform.py:758
-msgid "CNCJob objects can't be mirrored/flipped."
-msgstr "Los objetos de CNCJob no se pueden reflejar / voltear."
-
-#: flatcamTools/ToolTransform.py:793
-msgid "Skew transformation can not be done for 0, 90 and 180 degrees."
-msgstr "La transformación oblicua no se puede hacer para 0, 90 y 180 grados."
-
-#: flatcamTools/ToolTransform.py:798
-msgid "No object selected. Please Select an object to shear/skew!"
-msgstr ""
-"Ningún objeto seleccionado. ¡Seleccione un objeto para cortar / sesgar!"
-
-#: flatcamTools/ToolTransform.py:818
-msgid "CNCJob objects can't be skewed."
-msgstr "Los objetos de CNCJob no se pueden sesgar."
-
-#: flatcamTools/ToolTransform.py:830
-msgid "Skew on the"
-msgstr "Sesgar en el"
-
-#: flatcamTools/ToolTransform.py:830 flatcamTools/ToolTransform.py:884
-#: flatcamTools/ToolTransform.py:914
-msgid "axis done"
-msgstr "eje hecho"
-
-#: flatcamTools/ToolTransform.py:844
-msgid "No object selected. Please Select an object to scale!"
-msgstr ""
-"Ningún objeto seleccionado. Por favor, seleccione un objeto para escalar!"
-
-#: flatcamTools/ToolTransform.py:875
-msgid "CNCJob objects can't be scaled."
-msgstr "Los objetos de CNCJob no se pueden escalar."
-
-#: flatcamTools/ToolTransform.py:884
-msgid "Scale on the"
-msgstr "Escala en el"
-
-#: flatcamTools/ToolTransform.py:894
-msgid "No object selected. Please Select an object to offset!"
-msgstr ""
-"Ningún objeto seleccionado. Por favor, seleccione un objeto para compensar!"
-
-#: flatcamTools/ToolTransform.py:901
-msgid "CNCJob objects can't be offset."
-msgstr "Los objetos CNCJob no se pueden compensar."
-
-#: flatcamTools/ToolTransform.py:914
-msgid "Offset on the"
-msgstr "Offset en el"
-
-#: flatcamTools/ToolTransform.py:924
-msgid "No object selected. Please Select an object to buffer!"
-msgstr ""
-"Ningún objeto seleccionado. Por favor, seleccione un objeto para almacenar!"
-
-#: flatcamTools/ToolTransform.py:927
-msgid "Applying Buffer"
-msgstr "Aplicando Tampón"
-
-#: flatcamTools/ToolTransform.py:931
-msgid "CNCJob objects can't be buffered."
-msgstr "Los objetos CNCJob no se pueden almacenar en búfer."
-
-#: flatcamTools/ToolTransform.py:948
-msgid "Buffer done"
-msgstr "Tampón hecho"
-
#: tclCommands/TclCommandBbox.py:75 tclCommands/TclCommandNregions.py:74
msgid "Expected GerberObject or GeometryObject, got"
msgstr "GerberObject o GeometryObject esperado, obtuve"
@@ -18573,7 +18548,7 @@ msgstr "Se esperaba una lista de nombres de objetos separados por comas. Tiene"
msgid "TclCommand Bounds done."
msgstr "TclCommand Bounds hecho."
-#: tclCommands/TclCommandCopperClear.py:281 tclCommands/TclCommandPaint.py:277
+#: tclCommands/TclCommandCopperClear.py:281 tclCommands/TclCommandPaint.py:283
#: tclCommands/TclCommandScale.py:81
msgid "Could not retrieve box object"
msgstr "No se pudo recuperar el objeto"
@@ -18596,11 +18571,11 @@ msgstr ""
"'2tb', 4 u 8."
#: tclCommands/TclCommandGeoCutout.py:301
-#: tclCommands/TclCommandGeoCutout.py:359
+#: tclCommands/TclCommandGeoCutout.py:356
msgid "Any-form Cutout operation finished."
msgstr "Operación de recorte de cualquier forma finalizada."
-#: tclCommands/TclCommandGeoCutout.py:365
+#: tclCommands/TclCommandGeoCutout.py:362
msgid "Cancelled. Object type is not supported."
msgstr "Cancelado. El tipo de objeto no es compatible."
@@ -18616,15 +18591,15 @@ msgstr "Escriba help para su uso."
msgid "Example: help open_gerber"
msgstr "Ejemplo: help open_gerber"
-#: tclCommands/TclCommandPaint.py:249
-msgid "Expected -x and -y ."
-msgstr "Esperado -x y -y ."
+#: tclCommands/TclCommandPaint.py:250 tclCommands/TclCommandPaint.py:256
+msgid "Expected a tuple value like -single 3.2,0.1."
+msgstr ""
-#: tclCommands/TclCommandPaint.py:270
+#: tclCommands/TclCommandPaint.py:276
msgid "Expected -box ."
msgstr "Se esperaba -box ."
-#: tclCommands/TclCommandPaint.py:291
+#: tclCommands/TclCommandPaint.py:297
msgid ""
"None of the following args: 'box', 'single', 'all' were used.\n"
"Paint failed."
@@ -18649,7 +18624,7 @@ msgstr "Expected -x -y ."
msgid "Expected a pair of (x, y) coordinates. Got"
msgstr "Se esperaba un par de coordenadas (x, y). Tiene"
-#: tclCommands/TclCommandSetOrigin.py:102
+#: tclCommands/TclCommandSetOrigin.py:101
msgid "Origin set by offsetting all loaded objects with "
msgstr "Origen establecido al compensar todos los objetos cargados con "
@@ -18658,6 +18633,63 @@ msgid "No Geometry name in args. Provide a name and try again."
msgstr ""
"Sin nombre de geometría en args. Proporcione un nombre e intente nuevamente."
+#~ msgid "./assets/icon.png"
+#~ msgstr "./assets/icon.png"
+
+#~ msgid "New Blank Geometry"
+#~ msgstr "Nueva geometría en blanco"
+
+#~ msgid "New Blank Gerber"
+#~ msgstr "Nuevo Gerber en blanco"
+
+#~ msgid "New Blank Excellon"
+#~ msgstr "Nueva Excellon en blanco"
+
+#~ msgid ""
+#~ "Relative measurement.\n"
+#~ "Reference is last click position"
+#~ msgstr ""
+#~ "Medida relativa.\n"
+#~ "La referencia es la posición del último clic"
+
+#~ msgid "Clear areas"
+#~ msgstr "Áreas despejadasDespeje"
+
+#~ msgid "Apply Theme"
+#~ msgstr "Aplicar tema"
+
+#~ msgid ""
+#~ "Select a theme for FlatCAM.\n"
+#~ "It will theme the plot area.\n"
+#~ "The application will restart after change."
+#~ msgstr ""
+#~ "Seleccione un tema para FlatCAM.\n"
+#~ "Tematizará el área de trazado.\n"
+#~ "La aplicación se reiniciará después del cambio."
+
+#~ msgid "Film Object"
+#~ msgstr "Objeto de la película"
+
+#~ msgid "Object for which to create the film."
+#~ msgstr "Objeto para el cual crear la película."
+
+#~ msgid "Box Object"
+#~ msgstr "Objeto de caja"
+
+#~ msgid ""
+#~ "The actual object that is used as container for the\n"
+#~ " selected object for which we create the film.\n"
+#~ "Usually it is the PCB outline but it can be also the\n"
+#~ "same object for which the film is created."
+#~ msgstr ""
+#~ "El objeto real que se utiliza como contenedor para\n"
+#~ " objeto seleccionado para el que creamos la película.\n"
+#~ "Por lo general, es el esquema de PCB pero también puede ser el\n"
+#~ "mismo objeto para el que se crea la película."
+
+#~ msgid "Expected -x and -y ."
+#~ msgstr "Esperado -x y -y ."
+
#~ msgid "Could not load factory defaults file."
#~ msgstr "No se pudo cargar el archivo de valores predeterminados de fábrica."
@@ -19468,9 +19500,6 @@ msgstr ""
#~ "#\n"
#~ "\n"
-#~ msgid "Program Author"
-#~ msgstr "Autor del programa"
-
#~ msgid "Export G-Code ..."
#~ msgstr "Exportar G-Code ..."
diff --git a/locale/fr/LC_MESSAGES/strings.mo b/locale/fr/LC_MESSAGES/strings.mo
index df510fa6..ce14d1d4 100644
Binary files a/locale/fr/LC_MESSAGES/strings.mo and b/locale/fr/LC_MESSAGES/strings.mo differ
diff --git a/locale/fr/LC_MESSAGES/strings.po b/locale/fr/LC_MESSAGES/strings.po
index 1b244263..93000165 100644
--- a/locale/fr/LC_MESSAGES/strings.po
+++ b/locale/fr/LC_MESSAGES/strings.po
@@ -1,12 +1,13 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR , YEAR.
+# Conversion micmac@MicMac.fr Ligne 2000
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
-"POT-Creation-Date: 2020-05-03 16:04+0300\n"
-"PO-Revision-Date: 2020-05-03 16:06+0300\n"
+"POT-Creation-Date: 2020-05-19 02:25+0300\n"
+"PO-Revision-Date: 2020-05-19 02:25+0300\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: fr\n"
@@ -14,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.2.4\n"
+"X-Generator: Poedit 2.3.1\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Poedit-Basepath: ../../..\n"
"X-Poedit-SearchPath-0: .\n"
@@ -22,1724 +23,11 @@ msgstr ""
"X-Poedit-SearchPathExcluded-1: doc\n"
"X-Poedit-SearchPathExcluded-2: tests\n"
-#: FlatCAMApp.py:491
-msgid "FlatCAM is initializing ..."
-msgstr "FlatCAM est en cours d'initialisation ..."
-
-#: FlatCAMApp.py:639
-msgid "Could not find the Language files. The App strings are missing."
-msgstr ""
-"Impossible de trouver les fichiers de langue. Les chaînes de l'application "
-"sont manquantes."
-
-#: FlatCAMApp.py:709
-msgid ""
-"FlatCAM is initializing ...\n"
-"Canvas initialization started."
-msgstr ""
-"FlatCAM est en cours d'initialisation ...\n"
-"L'initialisation de la toile a commencé."
-
-#: FlatCAMApp.py:729
-msgid ""
-"FlatCAM is initializing ...\n"
-"Canvas initialization started.\n"
-"Canvas initialization finished in"
-msgstr ""
-"FlatCAM est en cours d'initialisation ...\n"
-"L'initialisation de la toile a commencé.\n"
-"Initialisation de la toile terminée en"
-
-#: FlatCAMApp.py:1593 FlatCAMApp.py:7451
-msgid "New Project - Not saved"
-msgstr "Nouveau projet - Non enregistré"
-
-#: FlatCAMApp.py:1689
-msgid ""
-"Found old default preferences files. Please reboot the application to update."
-msgstr ""
-"Anciens fichiers de préférences par défaut trouvés. Veuillez redémarrer "
-"l'application pour la mettre à jour."
-
-#: FlatCAMApp.py:1740 FlatCAMApp.py:2512 FlatCAMApp.py:2547 FlatCAMApp.py:2594
-#: FlatCAMApp.py:4540 FlatCAMApp.py:7535 FlatCAMApp.py:7572 FlatCAMApp.py:7614
-#: FlatCAMApp.py:7643 FlatCAMApp.py:7684 FlatCAMApp.py:7709 FlatCAMApp.py:7761
-#: FlatCAMApp.py:7796 FlatCAMApp.py:7841 FlatCAMApp.py:7882 FlatCAMApp.py:7923
-#: FlatCAMApp.py:7964 FlatCAMApp.py:8005 FlatCAMApp.py:8049 FlatCAMApp.py:8105
-#: FlatCAMApp.py:8137 FlatCAMApp.py:8169 FlatCAMApp.py:8402 FlatCAMApp.py:8440
-#: FlatCAMApp.py:8483 FlatCAMApp.py:8560 FlatCAMApp.py:8615
-#: FlatCAMBookmark.py:300 FlatCAMBookmark.py:342 FlatCAMDB.py:663
-#: FlatCAMDB.py:709 FlatCAMDB.py:2125 FlatCAMDB.py:2171
-#: flatcamEditors/FlatCAMExcEditor.py:1023
-#: flatcamEditors/FlatCAMExcEditor.py:1091
-#: flatcamEditors/FlatCAMTextEditor.py:223 flatcamGUI/FlatCAMGUI.py:3443
-#: flatcamGUI/FlatCAMGUI.py:3659 flatcamGUI/FlatCAMGUI.py:3874
-#: flatcamObjects/ObjectCollection.py:126 flatcamTools/ToolFilm.py:754
-#: flatcamTools/ToolFilm.py:900 flatcamTools/ToolImage.py:247
-#: flatcamTools/ToolMove.py:269 flatcamTools/ToolPcbWizard.py:301
-#: flatcamTools/ToolPcbWizard.py:324 flatcamTools/ToolQRCode.py:791
-#: flatcamTools/ToolQRCode.py:838
-msgid "Cancelled."
-msgstr "Annulé."
-
-#: FlatCAMApp.py:1756
-msgid "Open Config file failed."
-msgstr "Le fichier de configuration ouvert a échoué."
-
-#: FlatCAMApp.py:1771
-msgid "Open Script file failed."
-msgstr "Le fichier de script ouvert a échoué."
-
-#: FlatCAMApp.py:1797
-msgid "Open Excellon file failed."
-msgstr "Le fichier de Excellon ouvert a échoué."
-
-#: FlatCAMApp.py:1810
-msgid "Open GCode file failed."
-msgstr "Le fichier de G-code ouvert a échoué."
-
-#: FlatCAMApp.py:1823
-msgid "Open Gerber file failed."
-msgstr "Le fichier de Gerber ouvert a échoué."
-
-#: FlatCAMApp.py:2131
-msgid "Select a Geometry, Gerber or Excellon Object to edit."
-msgstr "Sélectionnez un objet Geometry, Gerber ou Excellon à modifier."
-
-#: FlatCAMApp.py:2146
-msgid ""
-"Simultaneous editing of tools geometry in a MultiGeo Geometry is not "
-"possible.\n"
-"Edit only one geometry at a time."
-msgstr ""
-"L'édition simultanée de la géométrie des outils dans une géométrie multi-géo "
-"n'est pas possible.\n"
-"Modifiez une seule géométrie à la fois."
-
-#: FlatCAMApp.py:2204
-msgid "Editor is activated ..."
-msgstr "L'éditeur est activé ..."
-
-#: FlatCAMApp.py:2225
-msgid "Do you want to save the edited object?"
-msgstr "Voulez-vous enregistrer l'objet édité?"
-
-#: FlatCAMApp.py:2226 flatcamGUI/FlatCAMGUI.py:2288
-msgid "Close Editor"
-msgstr "Fermer l'éditeur"
-
-#: FlatCAMApp.py:2229 FlatCAMApp.py:3518 FlatCAMApp.py:6085 FlatCAMApp.py:7345
-#: FlatCAMTranslation.py:109 FlatCAMTranslation.py:207
-#: flatcamGUI/FlatCAMGUI.py:2519
-#: flatcamGUI/preferences/PreferencesUIManager.py:1122
-msgid "Yes"
-msgstr "Oui"
-
-#: FlatCAMApp.py:2230 FlatCAMApp.py:3519 FlatCAMApp.py:6086 FlatCAMApp.py:7346
-#: FlatCAMTranslation.py:110 FlatCAMTranslation.py:208
-#: flatcamGUI/FlatCAMGUI.py:2520
-#: flatcamGUI/preferences/PreferencesUIManager.py:1123
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:164
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:150
-#: flatcamTools/ToolNCC.py:182 flatcamTools/ToolPaint.py:166
-msgid "No"
-msgstr "Non"
-
-#: FlatCAMApp.py:2231 FlatCAMApp.py:3520 FlatCAMApp.py:4478 FlatCAMApp.py:5103
-#: FlatCAMApp.py:7347 FlatCAMDB.py:128 FlatCAMDB.py:1689
-#: flatcamGUI/FlatCAMGUI.py:1347
-msgid "Cancel"
-msgstr "Annuler"
-
-#: FlatCAMApp.py:2263
-msgid "Object empty after edit."
-msgstr "Objet vide après édition."
-
-#: FlatCAMApp.py:2267 FlatCAMApp.py:2288 FlatCAMApp.py:2310
-msgid "Editor exited. Editor content saved."
-msgstr "L'éditeur est sorti. Contenu de l'éditeur enregistré."
-
-#: FlatCAMApp.py:2314 FlatCAMApp.py:2337 FlatCAMApp.py:2355
-msgid "Select a Gerber, Geometry or Excellon Object to update."
-msgstr "Sélectionnez un objet Gerber, Geometry ou Excellon à mettre à jour."
-
-#: FlatCAMApp.py:2317
-msgid "is updated, returning to App..."
-msgstr "est mis à jour, revenant à l'App ..."
-
-#: FlatCAMApp.py:2324
-msgid "Editor exited. Editor content was not saved."
-msgstr "L'éditeur est sorti. Le contenu de l'éditeur n'a pas été enregistré."
-
-#: FlatCAMApp.py:2504 FlatCAMApp.py:2508
-msgid "Import FlatCAM Preferences"
-msgstr "Importer les préférences FlatCAM"
-
-#: FlatCAMApp.py:2519
-msgid "Imported Defaults from"
-msgstr "Valeurs par défaut importées de"
-
-#: FlatCAMApp.py:2539 FlatCAMApp.py:2544
-msgid "Export FlatCAM Preferences"
-msgstr "Exporter les préférences FlatCAM"
-
-#: FlatCAMApp.py:2558 FlatCAMApp.py:2626
-#: flatcamGUI/preferences/PreferencesUIManager.py:1018
-msgid "Failed to write defaults to file."
-msgstr "Échec d'écriture par défaut dans le fichier."
-
-#: FlatCAMApp.py:2564
-msgid "Exported preferences to"
-msgstr "Préférences exportées vers"
-
-#: FlatCAMApp.py:2584 FlatCAMApp.py:2589
-msgid "Save to file"
-msgstr "Enregistrer dans un fichier"
-
-#: FlatCAMApp.py:2602 FlatCAMApp.py:8859 FlatCAMApp.py:8907 FlatCAMApp.py:9032
-#: FlatCAMApp.py:9168 FlatCAMBookmark.py:308 FlatCAMDB.py:671 FlatCAMDB.py:2133
-#: flatcamEditors/FlatCAMTextEditor.py:276 flatcamObjects/FlatCAMCNCJob.py:959
-#: flatcamTools/ToolFilm.py:1031 flatcamTools/ToolFilm.py:1212
-#: flatcamTools/ToolSolderPaste.py:1534
-msgid ""
-"Permission denied, saving not possible.\n"
-"Most likely another app is holding the file open and not accessible."
-msgstr ""
-"Autorisation refusée, économie impossible.\n"
-"Très probablement, une autre application tient le fichier ouvert et n'est "
-"pas accessible."
-
-#: FlatCAMApp.py:2613
-msgid "Could not load the file."
-msgstr "Impossible de charger le fichier."
-
-#: FlatCAMApp.py:2629
-msgid "Exported file to"
-msgstr "Fichier exporté vers"
-
-#: FlatCAMApp.py:2712
-msgid "Failed to open recent files file for writing."
-msgstr "Échec d'ouverture du fichier récent en écriture."
-
-#: FlatCAMApp.py:2723
-msgid "Failed to open recent projects file for writing."
-msgstr "Échec d'ouverture du fichier de projets récents en écriture."
-
-#: FlatCAMApp.py:2806 FlatCAMApp.py:9377 FlatCAMApp.py:9441 FlatCAMApp.py:9572
-#: FlatCAMApp.py:9637 FlatCAMApp.py:10287
-#: flatcamEditors/FlatCAMGrbEditor.py:4364
-#: flatcamObjects/FlatCAMGeometry.py:1725 flatcamParsers/ParseExcellon.py:897
-#: flatcamTools/ToolPcbWizard.py:432
-msgid "An internal error has occurred. See shell.\n"
-msgstr "Une erreur interne s'est produite. Voir shell.\n"
-
-#: FlatCAMApp.py:2807
-#, python-brace-format
-msgid ""
-"Object ({kind}) failed because: {error} \n"
-"\n"
-msgstr "L'objet ({kind}) a échoué car: {error}\n"
-
-#: FlatCAMApp.py:2822
-msgid "Converting units to "
-msgstr "Conversion d'unités en "
-
-#: FlatCAMApp.py:2931
-msgid "CREATE A NEW FLATCAM TCL SCRIPT"
-msgstr "CRÉER UN NOUVEAU SCRIPT FLATCAM TCL"
-
-#: FlatCAMApp.py:2932
-msgid "TCL Tutorial is here"
-msgstr "Le didacticiel TCL est ici"
-
-#: FlatCAMApp.py:2934
-msgid "FlatCAM commands list"
-msgstr "Liste des commandes FlatCAM"
-
-#: FlatCAMApp.py:2935
-msgid ""
-"Type >help< followed by Run Code for a list of FlatCAM Tcl Commands "
-"(displayed in Tcl Shell)."
-msgstr ""
-"Tapez >help< suivi de Run Code pour une liste des commandes FlatCAM Tcl "
-"(affichées dans Tcl Shell)."
-
-#: FlatCAMApp.py:2982 FlatCAMApp.py:2988 FlatCAMApp.py:2994 FlatCAMApp.py:3000
-#: FlatCAMApp.py:3006 FlatCAMApp.py:3012
-msgid "created/selected"
-msgstr "créé / sélectionné"
-
-#: FlatCAMApp.py:3027 FlatCAMApp.py:5189 flatcamObjects/FlatCAMObj.py:248
-#: flatcamObjects/FlatCAMObj.py:279 flatcamObjects/FlatCAMObj.py:295
-#: flatcamObjects/FlatCAMObj.py:375 flatcamTools/ToolCopperThieving.py:1481
-#: flatcamTools/ToolFiducials.py:809 flatcamTools/ToolMove.py:229
-#: flatcamTools/ToolQRCode.py:728
-msgid "Plotting"
-msgstr "Traçage"
-
-#: FlatCAMApp.py:3090 flatcamGUI/FlatCAMGUI.py:545
-msgid "About FlatCAM"
-msgstr "À propos de FlatCAM"
-
-#: FlatCAMApp.py:3116
-msgid "2D Computer-Aided Printed Circuit Board Manufacturing"
-msgstr "Fabrication de cartes de circuits imprimés 2D assistées par ordinateur"
-
-#: FlatCAMApp.py:3117
-msgid "Development"
-msgstr "Développement"
-
-#: FlatCAMApp.py:3118
-msgid "DOWNLOAD"
-msgstr "TÉLÉCHARGER"
-
-#: FlatCAMApp.py:3119
-msgid "Issue tracker"
-msgstr "Traqueur d'incidents"
-
-#: FlatCAMApp.py:3123 FlatCAMApp.py:3484 flatcamGUI/GUIElements.py:2583
-msgid "Close"
-msgstr "Proche"
-
-#: FlatCAMApp.py:3138
-msgid "Licensed under the MIT license"
-msgstr "Sous licence MIT"
-
-#: FlatCAMApp.py:3147
-msgid ""
-"Permission is hereby granted, free of charge, to any person obtaining a "
-"copy\n"
-"of this software and associated documentation files (the \"Software\"), to "
-"deal\n"
-"in the Software without restriction, including without limitation the "
-"rights\n"
-"to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n"
-"copies of the Software, and to permit persons to whom the Software is\n"
-"furnished to do so, subject to the following conditions:\n"
-"\n"
-"The above copyright notice and this permission notice shall be included in\n"
-"all copies or substantial portions of the Software.\n"
-"\n"
-"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS "
-"OR\n"
-"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n"
-"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n"
-"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n"
-"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING "
-"FROM,\n"
-"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n"
-"THE SOFTWARE."
-msgstr ""
-"Par la présente, une autorisation est accordée gratuitement à toute personne "
-"qui en obtient une copie.\n"
-"de ce logiciel et des fichiers de documentation associés (le \"Logiciel\"), "
-"pour traiter\n"
-"dans le logiciel sans restriction, y compris, sans limitation, les droits\n"
-"utiliser, copier, modifier, fusionner, publier, distribuer, concéder en sous-"
-"licence et / ou vendre\n"
-"copies du logiciel, et pour permettre aux personnes à qui le logiciel est\n"
-" meublé pour le faire, sous réserve des conditions suivantes:\n"
-"\n"
-"L'avis de copyright ci-dessus et cet avis de permission doivent être inclus "
-"dans\n"
-"toutes les copies ou parties substantielles du logiciel.\n"
-"\n"
-"LE LOGICIEL EST FOURNI \"TEL QUEL\", SANS AUCUNE GARANTIE, EXPRESSE OU\n"
-"IMPLICITE, Y COMPRIS, MAIS SANS S'Y LIMITER, LES GARANTIES DE QUALITÉ "
-"MARCHANDE,\n"
-"APTITUDE À UN USAGE PARTICULIER ET À L’ABSENCE DE VIOLATION. EN AUCUN CAS, "
-"LE\n"
-"LES AUTEURS OU LES TITULAIRES DE COPYRIGHT SONT RESPONSABLES DE TOUTE "
-"RÉCLAMATION, DE DOMMAGES OU D'AUTRES\n"
-"RESPONSABILITÉ, QU'IL SOIT DANS UN ACTION DE CONTRAT, DE TORT OU AUTREMENT, "
-"RÉSULTANT DE,\n"
-"HORS OU EN LIEN AVEC LE LOGICIEL OU L’UTILISATION OU D’AUTRES TRANSACTIONS "
-"DANS\n"
-"LES LOGICIELS."
-
-#: FlatCAMApp.py:3169
-msgid ""
-"Some of the icons used are from the following sources:
Icons by oNline Web Fonts"
-msgstr ""
-"Certaines des icônes utilisées proviennent des sources suivantes: "
-"
Icônes de "
-"oNline Web Fonts"
-
-#: FlatCAMApp.py:3202
-msgid "Splash"
-msgstr "Éclaboussure"
-
-#: FlatCAMApp.py:3208
-msgid "Programmers"
-msgstr "Programmeurs"
-
-#: FlatCAMApp.py:3214
-msgid "Translators"
-msgstr "Traducteurs"
-
-#: FlatCAMApp.py:3220
-msgid "License"
-msgstr "Licence"
-
-#: FlatCAMApp.py:3226
-msgid "Attributions"
-msgstr "Attributions"
-
-#: FlatCAMApp.py:3249
-msgid "Programmer"
-msgstr "Programmeur"
-
-#: FlatCAMApp.py:3250
-msgid "Status"
-msgstr "Statut"
-
-#: FlatCAMApp.py:3251 FlatCAMApp.py:3331
-msgid "E-mail"
-msgstr "Email"
-
-#: FlatCAMApp.py:3259
-msgid "BETA Maintainer >= 2019"
-msgstr "Mainteneur BETA> = 2019"
-
-#: FlatCAMApp.py:3328
-msgid "Language"
-msgstr "La langue"
-
-#: FlatCAMApp.py:3329
-msgid "Translator"
-msgstr "Traducteur"
-
-#: FlatCAMApp.py:3330
-msgid "Corrections"
-msgstr "Les corrections"
-
-#: FlatCAMApp.py:3455 FlatCAMApp.py:3464 flatcamGUI/FlatCAMGUI.py:527
-msgid "Bookmarks Manager"
-msgstr "Gestionnaire de favoris"
-
-#: FlatCAMApp.py:3475
-msgid ""
-"This entry will resolve to another website if:\n"
-"\n"
-"1. FlatCAM.org website is down\n"
-"2. Someone forked FlatCAM project and wants to point\n"
-"to his own website\n"
-"\n"
-"If you can't get any informations about FlatCAM beta\n"
-"use the YouTube channel link from the Help menu."
-msgstr ""
-"Cette entrée sera résolue sur un autre site Web si:\n"
-"\n"
-"1. Le site FlatCAM.org est en panne\n"
-"2. Quelqu'un a projeté FlatCAM et veut pointer\n"
-"sur son propre site web\n"
-"\n"
-"Si vous ne pouvez pas obtenir d'informations sur FlatCAM beta\n"
-"utilisez le lien de chaîne YouTube dans le menu Aide."
-
-#: FlatCAMApp.py:3482
-msgid "Alternative website"
-msgstr "Site alternatif"
-
-#: FlatCAMApp.py:3508 flatcamGUI/FlatCAMGUI.py:4267
-msgid "Application is saving the project. Please wait ..."
-msgstr "L'application enregistre le projet. S'il vous plaît, attendez ..."
-
-#: FlatCAMApp.py:3513 FlatCAMTranslation.py:202
-msgid ""
-"There are files/objects modified in FlatCAM. \n"
-"Do you want to Save the project?"
-msgstr ""
-"Il y a des fichiers / objets modifiés dans FlatCAM.\n"
-"Voulez-vous enregistrer le projet?"
-
-#: FlatCAMApp.py:3516 FlatCAMApp.py:7343 FlatCAMTranslation.py:205
-msgid "Save changes"
-msgstr "Sauvegarder les modifications"
-
-#: FlatCAMApp.py:3778
-msgid "Selected Excellon file extensions registered with FlatCAM."
-msgstr ""
-"Extensions de fichier Excellon sélectionnées enregistrées avec FlatCAM."
-
-#: FlatCAMApp.py:3800
-msgid "Selected GCode file extensions registered with FlatCAM."
-msgstr "Extensions de fichier GCode sélectionnées enregistrées avec FlatCAM."
-
-#: FlatCAMApp.py:3822
-msgid "Selected Gerber file extensions registered with FlatCAM."
-msgstr "Extensions de fichiers Gerber sélectionnées enregistrées avec FlatCAM."
-
-#: FlatCAMApp.py:4010 FlatCAMApp.py:4069 FlatCAMApp.py:4097
-msgid "At least two objects are required for join. Objects currently selected"
-msgstr ""
-"Au moins deux objets sont requis pour la jointure. Objets actuellement "
-"sélectionnés"
-
-#: FlatCAMApp.py:4019
-msgid ""
-"Failed join. The Geometry objects are of different types.\n"
-"At least one is MultiGeo type and the other is SingleGeo type. A possibility "
-"is to convert from one to another and retry joining \n"
-"but in the case of converting from MultiGeo to SingleGeo, informations may "
-"be lost and the result may not be what was expected. \n"
-"Check the generated GCODE."
-msgstr ""
-"Échec de la participation Les objets de géométrie sont de types différents.\n"
-"Au moins un est de type MultiGeo et l'autre de type SingleGeo. Une "
-"possibilité est de convertir de l'un à l'autre et réessayer de rejoindre\n"
-"mais dans le cas d'une conversion de MultiGeo en SingleGeo, des informations "
-"risquent d'être perdues et le résultat risque d'être différent de celui "
-"attendu.\n"
-"Vérifiez le GCODE généré."
-
-#: FlatCAMApp.py:4031 FlatCAMApp.py:4041
-msgid "Geometry merging finished"
-msgstr "Fusion de la géométrie terminée"
-
-#: FlatCAMApp.py:4064
-msgid "Failed. Excellon joining works only on Excellon objects."
-msgstr "Échoué. Excellon rejoindre ne travaille que sur des objets Excellon."
-
-#: FlatCAMApp.py:4074
-msgid "Excellon merging finished"
-msgstr "Fusion de la Excellon terminée"
-
-#: FlatCAMApp.py:4092
-msgid "Failed. Gerber joining works only on Gerber objects."
-msgstr "Échoué. La jonction de Gerber ne fonctionne que sur des objets Gerber."
-
-#: FlatCAMApp.py:4102
-msgid "Gerber merging finished"
-msgstr "Fusion de Gerber terminée"
-
-#: FlatCAMApp.py:4122 FlatCAMApp.py:4159
-msgid "Failed. Select a Geometry Object and try again."
-msgstr "Échoué. Sélectionnez un objet de géométrie et réessayez."
-
-#: FlatCAMApp.py:4126 FlatCAMApp.py:4164
-msgid "Expected a GeometryObject, got"
-msgstr "Échoué. Sélectionnez un objet de géométrie et réessayez"
-
-#: FlatCAMApp.py:4141
-msgid "A Geometry object was converted to MultiGeo type."
-msgstr "Un objet Geometry a été converti en type MultiGeo."
-
-#: FlatCAMApp.py:4179
-msgid "A Geometry object was converted to SingleGeo type."
-msgstr "Un objet Geometry a été converti en type SingleGeo."
-
-#: FlatCAMApp.py:4472
-msgid "Toggle Units"
-msgstr "Basculer les Unités"
-
-#: FlatCAMApp.py:4474
-msgid ""
-"Changing the units of the project\n"
-"will scale all objects.\n"
-"\n"
-"Do you want to continue?"
-msgstr ""
-"Changer les unités du projet\n"
-"mettra à l'échelle tous les objets.\n"
-"\n"
-"Voulez-vous continuer?"
-
-#: FlatCAMApp.py:4477 FlatCAMApp.py:5025 FlatCAMApp.py:5102 FlatCAMApp.py:7728
-#: FlatCAMApp.py:7742 FlatCAMApp.py:8075 FlatCAMApp.py:8085
-msgid "Ok"
-msgstr "D'accord"
-
-#: FlatCAMApp.py:4526
-msgid "Converted units to"
-msgstr "Unités converties en"
-
-#: FlatCAMApp.py:4928
-msgid "Detachable Tabs"
-msgstr "Onglets détachables"
-
-#: FlatCAMApp.py:5014 flatcamTools/ToolNCC.py:932 flatcamTools/ToolNCC.py:1431
-#: flatcamTools/ToolPaint.py:858 flatcamTools/ToolSolderPaste.py:568
-#: flatcamTools/ToolSolderPaste.py:893
-msgid "Please enter a tool diameter with non-zero value, in Float format."
-msgstr ""
-"Veuillez saisir un diamètre d’outil avec une valeur non nulle, au format "
-"réel."
-
-#: FlatCAMApp.py:5018 flatcamTools/ToolNCC.py:936 flatcamTools/ToolPaint.py:862
-#: flatcamTools/ToolSolderPaste.py:572
-msgid "Adding Tool cancelled"
-msgstr "Outil d'ajout annulé"
-
-#: FlatCAMApp.py:5021
-msgid ""
-"Adding Tool works only when Advanced is checked.\n"
-"Go to Preferences -> General - Show Advanced Options."
-msgstr ""
-"L'ajout d'outil ne fonctionne que lorsque l'option Avancé est cochée.\n"
-"Allez dans Préférences -> Général - Afficher les options avancées."
-
-#: FlatCAMApp.py:5097
-msgid "Delete objects"
-msgstr "Supprimer des objets"
-
-#: FlatCAMApp.py:5100
-msgid ""
-"Are you sure you want to permanently delete\n"
-"the selected objects?"
-msgstr ""
-"Êtes-vous sûr de vouloir supprimer définitivement\n"
-"les objets sélectionnés?"
-
-#: FlatCAMApp.py:5138
-msgid "Object(s) deleted"
-msgstr "Objet (s) supprimé (s)"
-
-#: FlatCAMApp.py:5142 FlatCAMApp.py:5297 flatcamTools/ToolDblSided.py:818
-msgid "Failed. No object(s) selected..."
-msgstr "Échoué. Aucun objet sélectionné ..."
-
-#: FlatCAMApp.py:5144
-msgid "Save the work in Editor and try again ..."
-msgstr "Enregistrez le travail dans l'éditeur et réessayez ..."
-
-#: FlatCAMApp.py:5173
-msgid "Object deleted"
-msgstr "Objet supprimé"
-
-#: FlatCAMApp.py:5200
-msgid "Click to set the origin ..."
-msgstr "Cliquez pour définir l'origine ..."
-
-#: FlatCAMApp.py:5222
-msgid "Setting Origin..."
-msgstr "Réglage de l'Origine ..."
-
-#: FlatCAMApp.py:5235 FlatCAMApp.py:5337
-msgid "Origin set"
-msgstr "Ensemble d'origine"
-
-#: FlatCAMApp.py:5252
-msgid "Origin coordinates specified but incomplete."
-msgstr "Coordonnées d'origine spécifiées mais incomplètes."
-
-#: FlatCAMApp.py:5293
-msgid "Moving to Origin..."
-msgstr "Déplacement vers l'origine ..."
-
-#: FlatCAMApp.py:5374
-msgid "Jump to ..."
-msgstr "Sauter à ..."
-
-#: FlatCAMApp.py:5375
-msgid "Enter the coordinates in format X,Y:"
-msgstr "Entrez les coordonnées au format X, Y:"
-
-#: FlatCAMApp.py:5385
-msgid "Wrong coordinates. Enter coordinates in format: X,Y"
-msgstr "Mauvaises coordonnées. Entrez les coordonnées au format: X, Y"
-
-#: FlatCAMApp.py:5463 FlatCAMApp.py:5612
-#: flatcamEditors/FlatCAMExcEditor.py:3624
-#: flatcamEditors/FlatCAMExcEditor.py:3632
-#: flatcamEditors/FlatCAMGeoEditor.py:4349
-#: flatcamEditors/FlatCAMGeoEditor.py:4363
-#: flatcamEditors/FlatCAMGrbEditor.py:1087
-#: flatcamEditors/FlatCAMGrbEditor.py:1204
-#: flatcamEditors/FlatCAMGrbEditor.py:1490
-#: flatcamEditors/FlatCAMGrbEditor.py:1759
-#: flatcamEditors/FlatCAMGrbEditor.py:4622
-#: flatcamEditors/FlatCAMGrbEditor.py:4637 flatcamGUI/FlatCAMGUI.py:3424
-#: flatcamGUI/FlatCAMGUI.py:3436 flatcamTools/ToolAlignObjects.py:393
-#: flatcamTools/ToolAlignObjects.py:415
-msgid "Done."
-msgstr "Terminé."
-
-#: FlatCAMApp.py:5478 FlatCAMApp.py:7724 FlatCAMApp.py:7819 FlatCAMApp.py:7860
-#: FlatCAMApp.py:7901 FlatCAMApp.py:7942 FlatCAMApp.py:7983 FlatCAMApp.py:8027
-#: FlatCAMApp.py:8071 FlatCAMApp.py:8593 FlatCAMApp.py:8597
-#: flatcamTools/ToolProperties.py:116
-msgid "No object selected."
-msgstr "Aucun objet sélectionné."
-
-#: FlatCAMApp.py:5497
-msgid "Bottom-Left"
-msgstr "En bas à gauche"
-
-#: FlatCAMApp.py:5498 flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:131
-#: flatcamTools/ToolCalibration.py:159
-msgid "Top-Left"
-msgstr "En haut à gauche"
-
-#: FlatCAMApp.py:5499 flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:132
-#: flatcamTools/ToolCalibration.py:160
-msgid "Bottom-Right"
-msgstr "En bas à droite"
-
-#: FlatCAMApp.py:5500
-msgid "Top-Right"
-msgstr "En haut à droite"
-
-#: FlatCAMApp.py:5501 flatcamGUI/ObjectUI.py:2706
-msgid "Center"
-msgstr "Centre"
-
-#: FlatCAMApp.py:5521
-msgid "Locate ..."
-msgstr "Localiser ..."
-
-#: FlatCAMApp.py:5779 FlatCAMApp.py:5856
-msgid "No object is selected. Select an object and try again."
-msgstr "Aucun objet n'est sélectionné. Sélectionnez un objet et réessayez."
-
-#: FlatCAMApp.py:5882
-msgid ""
-"Aborting. The current task will be gracefully closed as soon as possible..."
-msgstr ""
-"Abandonner La tâche en cours sera clôturée dans les meilleurs délais ..."
-
-#: FlatCAMApp.py:5888
-msgid "The current task was gracefully closed on user request..."
-msgstr ""
-"La tâche en cours a été fermée avec élégance à la demande de "
-"l'utilisateur ..."
-
-#: FlatCAMApp.py:5916 flatcamGUI/preferences/PreferencesUIManager.py:905
-#: flatcamGUI/preferences/PreferencesUIManager.py:949
-#: flatcamGUI/preferences/PreferencesUIManager.py:970
-#: flatcamGUI/preferences/PreferencesUIManager.py:1075
-msgid "Preferences"
-msgstr "Préférences"
-
-#: FlatCAMApp.py:5981 FlatCAMApp.py:6009 FlatCAMApp.py:6036 FlatCAMApp.py:6056
-#: FlatCAMDB.py:738 FlatCAMDB.py:913 FlatCAMDB.py:2200 FlatCAMDB.py:2418
-#: flatcamObjects/FlatCAMGeometry.py:890 flatcamTools/ToolNCC.py:3963
-#: flatcamTools/ToolNCC.py:4047 flatcamTools/ToolPaint.py:3553
-#: flatcamTools/ToolPaint.py:3638
-msgid "Tools Database"
-msgstr "Base de données d'outils"
-
-#: FlatCAMApp.py:6033
-msgid "Tools in Tools Database edited but not saved."
-msgstr ""
-"Les outils de la base de données d'outils ont été modifiés mais pas "
-"enregistrés."
-
-#: FlatCAMApp.py:6060 flatcamTools/ToolNCC.py:3970
-#: flatcamTools/ToolPaint.py:3560
-msgid "Tool from DB added in Tool Table."
-msgstr "Outil de la base de données ajouté dans la table d'outils."
-
-#: FlatCAMApp.py:6062
-msgid "Adding tool from DB is not allowed for this object."
-msgstr ""
-"L'ajout d'outil à partir de la base de données n'est pas autorisé pour cet "
-"objet."
-
-#: FlatCAMApp.py:6080
-msgid ""
-"One or more Tools are edited.\n"
-"Do you want to update the Tools Database?"
-msgstr ""
-"Un ou plusieurs outils sont modifiés.\n"
-"Voulez-vous mettre à jour la base de données d'outils?"
-
-#: FlatCAMApp.py:6082
-msgid "Save Tools Database"
-msgstr "Enregistrer la base de données d'outils"
-
-#: FlatCAMApp.py:6135
-msgid "No object selected to Flip on Y axis."
-msgstr "Aucun objet sélectionné pour basculer sur l’axe Y."
-
-#: FlatCAMApp.py:6161
-msgid "Flip on Y axis done."
-msgstr "Tournez sur l'axe des Y fait."
-
-#: FlatCAMApp.py:6163 FlatCAMApp.py:6211
-#: flatcamEditors/FlatCAMGrbEditor.py:6059
-msgid "Flip action was not executed."
-msgstr "L'Action de retournement n'a pas été exécutée."
-
-#: FlatCAMApp.py:6183
-msgid "No object selected to Flip on X axis."
-msgstr "Aucun objet sélectionné pour basculer sur l’axe X."
-
-#: FlatCAMApp.py:6209
-msgid "Flip on X axis done."
-msgstr "Tournez sur l'axe X fait."
-
-#: FlatCAMApp.py:6231
-msgid "No object selected to Rotate."
-msgstr "Aucun objet sélectionné pour faire pivoter."
-
-#: FlatCAMApp.py:6234 FlatCAMApp.py:6287 FlatCAMApp.py:6326
-msgid "Transform"
-msgstr "Transformer"
-
-#: FlatCAMApp.py:6234 FlatCAMApp.py:6287 FlatCAMApp.py:6326
-msgid "Enter the Angle value:"
-msgstr "Entrez la valeur de l'angle:"
-
-#: FlatCAMApp.py:6265
-msgid "Rotation done."
-msgstr "Rotation effectuée."
-
-#: FlatCAMApp.py:6267
-msgid "Rotation movement was not executed."
-msgstr "Le mouvement de rotation n'a pas été exécuté."
-
-#: FlatCAMApp.py:6285
-msgid "No object selected to Skew/Shear on X axis."
-msgstr "Aucun objet sélectionné pour incliner / cisailler sur l'axe X."
-
-#: FlatCAMApp.py:6307
-msgid "Skew on X axis done."
-msgstr "Inclinaison sur l'axe X terminée."
-
-#: FlatCAMApp.py:6324
-msgid "No object selected to Skew/Shear on Y axis."
-msgstr ""
-"Aucun objet sélectionné pour incliner / cisailler sur l'axe des ordonnées."
-
-#: FlatCAMApp.py:6346
-msgid "Skew on Y axis done."
-msgstr "Inclinaison sur l'axe des Y faite."
-
-#: FlatCAMApp.py:6497 FlatCAMApp.py:6544 flatcamGUI/FlatCAMGUI.py:503
-#: flatcamGUI/FlatCAMGUI.py:1728
-msgid "Select All"
-msgstr "Tout sélectionner"
-
-#: FlatCAMApp.py:6501 FlatCAMApp.py:6548 flatcamGUI/FlatCAMGUI.py:505
-msgid "Deselect All"
-msgstr "Tout déselectionner"
-
-#: FlatCAMApp.py:6564
-msgid "All objects are selected."
-msgstr "Tous les objets sont sélectionnés."
-
-#: FlatCAMApp.py:6574
-msgid "Objects selection is cleared."
-msgstr "La sélection des objets est effacée."
-
-#: FlatCAMApp.py:6594 flatcamGUI/FlatCAMGUI.py:1721
-msgid "Grid On/Off"
-msgstr "Grille On/Off"
-
-#: FlatCAMApp.py:6606 flatcamEditors/FlatCAMGeoEditor.py:939
-#: flatcamEditors/FlatCAMGrbEditor.py:2583
-#: flatcamEditors/FlatCAMGrbEditor.py:5641 flatcamGUI/ObjectUI.py:1595
-#: flatcamTools/ToolDblSided.py:192 flatcamTools/ToolDblSided.py:425
-#: flatcamTools/ToolNCC.py:294 flatcamTools/ToolNCC.py:631
-#: flatcamTools/ToolPaint.py:277 flatcamTools/ToolPaint.py:676
-#: flatcamTools/ToolSolderPaste.py:122 flatcamTools/ToolSolderPaste.py:597
-#: flatcamTools/ToolTransform.py:478
-msgid "Add"
-msgstr "Ajouter"
-
-#: FlatCAMApp.py:6608 flatcamEditors/FlatCAMGrbEditor.py:2588
-#: flatcamEditors/FlatCAMGrbEditor.py:2736 flatcamGUI/FlatCAMGUI.py:751
-#: flatcamGUI/FlatCAMGUI.py:1074 flatcamGUI/FlatCAMGUI.py:2141
-#: flatcamGUI/FlatCAMGUI.py:2284 flatcamGUI/FlatCAMGUI.py:2777
-#: flatcamGUI/ObjectUI.py:1623 flatcamObjects/FlatCAMGeometry.py:505
-#: flatcamTools/ToolNCC.py:316 flatcamTools/ToolNCC.py:637
-#: flatcamTools/ToolPaint.py:299 flatcamTools/ToolPaint.py:682
-#: flatcamTools/ToolSolderPaste.py:128 flatcamTools/ToolSolderPaste.py:600
-msgid "Delete"
-msgstr "Effacer"
-
-#: FlatCAMApp.py:6624
-msgid "New Grid ..."
-msgstr "Nouvelle grille ..."
-
-#: FlatCAMApp.py:6625
-msgid "Enter a Grid Value:"
-msgstr "Entrez une valeur de grille:"
-
-#: FlatCAMApp.py:6633 FlatCAMApp.py:6660
-msgid "Please enter a grid value with non-zero value, in Float format."
-msgstr ""
-"Veuillez entrer une valeur de grille avec une valeur non nulle, au format "
-"réel."
-
-#: FlatCAMApp.py:6639
-msgid "New Grid added"
-msgstr "Nouvelle grille ajoutée"
-
-#: FlatCAMApp.py:6642
-msgid "Grid already exists"
-msgstr "La grille existe déjà"
-
-#: FlatCAMApp.py:6645
-msgid "Adding New Grid cancelled"
-msgstr "Ajout d'une nouvelle grille annulée"
-
-#: FlatCAMApp.py:6667
-msgid " Grid Value does not exist"
-msgstr " Grid Value does not exist"
-
-#: FlatCAMApp.py:6670
-msgid "Grid Value deleted"
-msgstr "Valeur de grille supprimée"
-
-#: FlatCAMApp.py:6673
-msgid "Delete Grid value cancelled"
-msgstr "Supprimer la valeur de grille annulée"
-
-#: FlatCAMApp.py:6679
-msgid "Key Shortcut List"
-msgstr "Liste de raccourcis clavier"
-
-#: FlatCAMApp.py:6713
-msgid " No object selected to copy it's name"
-msgstr " Aucun objet sélectionné pour copier son nom"
-
-#: FlatCAMApp.py:6717
-msgid "Name copied on clipboard ..."
-msgstr "Nom copié dans le presse-papiers ..."
-
-#: FlatCAMApp.py:6930 flatcamEditors/FlatCAMGrbEditor.py:4554
-msgid "Coordinates copied to clipboard."
-msgstr "Coordonnées copiées dans le presse-papier."
-
-#: FlatCAMApp.py:7167 FlatCAMApp.py:7173 FlatCAMApp.py:7179 FlatCAMApp.py:7185
-#: flatcamObjects/ObjectCollection.py:922
-#: flatcamObjects/ObjectCollection.py:928
-#: flatcamObjects/ObjectCollection.py:934
-#: flatcamObjects/ObjectCollection.py:940
-#: flatcamObjects/ObjectCollection.py:946
-#: flatcamObjects/ObjectCollection.py:952
-msgid "selected"
-msgstr "choisi"
-
-#: FlatCAMApp.py:7340
-msgid ""
-"There are files/objects opened in FlatCAM.\n"
-"Creating a New project will delete them.\n"
-"Do you want to Save the project?"
-msgstr ""
-"Il y a des fichiers / objets ouverts dans FlatCAM.\n"
-"La création d'un nouveau projet les supprimera.\n"
-"Voulez-vous enregistrer le projet?"
-
-#: FlatCAMApp.py:7361
-msgid "New Project created"
-msgstr "Nouveau projet créé"
-
-#: FlatCAMApp.py:7519 FlatCAMApp.py:7523 flatcamGUI/FlatCAMGUI.py:836
-#: flatcamGUI/FlatCAMGUI.py:2544
-msgid "Open Gerber"
-msgstr "Gerber ouvert"
-
-#: FlatCAMApp.py:7528 FlatCAMApp.py:7565 FlatCAMApp.py:7607 FlatCAMApp.py:7677
-#: FlatCAMApp.py:8462 FlatCAMApp.py:9675 FlatCAMApp.py:9737
-msgid ""
-"Canvas initialization started.\n"
-"Canvas initialization finished in"
-msgstr ""
-"L'initialisation de la toile a commencé.\n"
-"Initialisation de la toile terminée en"
-
-#: FlatCAMApp.py:7530
-msgid "Opening Gerber file."
-msgstr "Ouvrir le fichier Gerber."
-
-#: FlatCAMApp.py:7557 FlatCAMApp.py:7561 flatcamGUI/FlatCAMGUI.py:838
-#: flatcamGUI/FlatCAMGUI.py:2546
-msgid "Open Excellon"
-msgstr "Excellon ouvert"
-
-#: FlatCAMApp.py:7567
-msgid "Opening Excellon file."
-msgstr "Ouverture du fichier Excellon."
-
-#: FlatCAMApp.py:7598 FlatCAMApp.py:7602
-msgid "Open G-Code"
-msgstr "G-code ouvert"
-
-#: FlatCAMApp.py:7609
-msgid "Opening G-Code file."
-msgstr "Ouverture du fichier G-Code."
-
-#: FlatCAMApp.py:7632 FlatCAMApp.py:7635 flatcamGUI/FlatCAMGUI.py:1730
-msgid "Open Project"
-msgstr "Projet ouvert"
-
-#: FlatCAMApp.py:7668 FlatCAMApp.py:7672
-msgid "Open HPGL2"
-msgstr "Ouvrir le HPGL2"
-
-#: FlatCAMApp.py:7679
-msgid "Opening HPGL2 file."
-msgstr "Ouvrir le fichier HPGL2."
-
-#: FlatCAMApp.py:7702 FlatCAMApp.py:7705
-msgid "Open Configuration File"
-msgstr "Ouvrir le fichier de configuration"
-
-#: FlatCAMApp.py:7725 FlatCAMApp.py:8072
-msgid "Please Select a Geometry object to export"
-msgstr "Veuillez sélectionner un objet de géométrie à exporter"
-
-#: FlatCAMApp.py:7739
-msgid "Only Geometry, Gerber and CNCJob objects can be used."
-msgstr "Seuls les objets Geometry, Gerber et CNCJob peuvent être utilisés."
-
-#: FlatCAMApp.py:7752 FlatCAMApp.py:7756 flatcamTools/ToolQRCode.py:829
-#: flatcamTools/ToolQRCode.py:833
-msgid "Export SVG"
-msgstr "Exporter en SVG"
-
-#: FlatCAMApp.py:7781
-msgid "Data must be a 3D array with last dimension 3 or 4"
-msgstr ""
-"Les données doivent être un tableau 3D avec la dernière dimension 3 ou 4"
-
-#: FlatCAMApp.py:7787 FlatCAMApp.py:7791
-msgid "Export PNG Image"
-msgstr "Exporter une image PNG"
-
-#: FlatCAMApp.py:7824 FlatCAMApp.py:8032
-msgid "Failed. Only Gerber objects can be saved as Gerber files..."
-msgstr ""
-"Échoué. Seuls les objets Gerber peuvent être enregistrés en tant que "
-"fichiers Gerber ..."
-
-#: FlatCAMApp.py:7836
-msgid "Save Gerber source file"
-msgstr "Enregistrer le fichier source Gerber"
-
-#: FlatCAMApp.py:7865
-msgid "Failed. Only Script objects can be saved as TCL Script files..."
-msgstr ""
-"Échoué. Seuls les objets de script peuvent être enregistrés en tant que "
-"fichiers de script TCL ..."
-
-#: FlatCAMApp.py:7877
-msgid "Save Script source file"
-msgstr "Enregistrer le fichier source du script"
-
-#: FlatCAMApp.py:7906
-msgid "Failed. Only Document objects can be saved as Document files..."
-msgstr ""
-"Échoué. Seuls les objets Document peuvent être enregistrés en tant que "
-"fichiers Document ..."
-
-#: FlatCAMApp.py:7918
-msgid "Save Document source file"
-msgstr "Enregistrer le fichier source du document"
-
-#: FlatCAMApp.py:7947 FlatCAMApp.py:7988 FlatCAMApp.py:8945
-msgid "Failed. Only Excellon objects can be saved as Excellon files..."
-msgstr ""
-"Échoué. Seuls les objets Excellon peuvent être enregistrés en tant que "
-"fichiers Excellon ..."
-
-#: FlatCAMApp.py:7955 FlatCAMApp.py:7959
-msgid "Save Excellon source file"
-msgstr "Enregistrer le fichier source Excellon"
-
-#: FlatCAMApp.py:7996 FlatCAMApp.py:8000
-msgid "Export Excellon"
-msgstr "Exporter Excellon"
-
-#: FlatCAMApp.py:8040 FlatCAMApp.py:8044
-msgid "Export Gerber"
-msgstr "Export Gerber"
-
-#: FlatCAMApp.py:8082
-msgid "Only Geometry objects can be used."
-msgstr "Seuls les objets de géométrie peuvent être utilisés."
-
-#: FlatCAMApp.py:8096 FlatCAMApp.py:8100
-msgid "Export DXF"
-msgstr "Exportation DXF"
-
-#: FlatCAMApp.py:8125 FlatCAMApp.py:8128
-msgid "Import SVG"
-msgstr "Importer SVG"
-
-#: FlatCAMApp.py:8156 FlatCAMApp.py:8160
-msgid "Import DXF"
-msgstr "Importation DXF"
-
-#: FlatCAMApp.py:8210
-msgid "Viewing the source code of the selected object."
-msgstr "Affichage du code source de l'objet sélectionné."
-
-#: FlatCAMApp.py:8211 flatcamObjects/FlatCAMCNCJob.py:548
-#: flatcamObjects/FlatCAMScript.py:134
-msgid "Loading..."
-msgstr "Chargement..."
-
-#: FlatCAMApp.py:8217 FlatCAMApp.py:8221
-msgid "Select an Gerber or Excellon file to view it's source file."
-msgstr ""
-"Sélectionnez un fichier Gerber ou Excellon pour afficher son fichier source."
-
-#: FlatCAMApp.py:8235
-msgid "Source Editor"
-msgstr "Éditeur de source"
-
-#: FlatCAMApp.py:8275 FlatCAMApp.py:8282
-msgid "There is no selected object for which to see it's source file code."
-msgstr ""
-"Il n'y a pas d'objet sélectionné pour lequel voir son code de fichier source."
-
-#: FlatCAMApp.py:8294
-msgid "Failed to load the source code for the selected object"
-msgstr "Échec du chargement du code source pour l'objet sélectionné"
-
-#: FlatCAMApp.py:8308 flatcamObjects/FlatCAMCNCJob.py:562
-msgid "Code Editor"
-msgstr "Éditeur de code"
-
-#: FlatCAMApp.py:8330
-msgid "Go to Line ..."
-msgstr "Aller à la ligne ..."
-
-#: FlatCAMApp.py:8331
-msgid "Line:"
-msgstr "Ligne:"
-
-#: FlatCAMApp.py:8360
-msgid "New TCL script file created in Code Editor."
-msgstr "Nouveau fichier de script TCL créé dans l'éditeur de code."
-
-#: FlatCAMApp.py:8396 FlatCAMApp.py:8398 FlatCAMApp.py:8434 FlatCAMApp.py:8436
-msgid "Open TCL script"
-msgstr "Ouvrir le script TCL"
-
-#: FlatCAMApp.py:8464
-msgid "Executing ScriptObject file."
-msgstr "Exécution du fichier ScriptObject."
-
-#: FlatCAMApp.py:8472 FlatCAMApp.py:8475
-msgid "Run TCL script"
-msgstr "Exécuter le script TCL"
-
-#: FlatCAMApp.py:8498
-msgid "TCL script file opened in Code Editor and executed."
-msgstr "Fichier de script TCL ouvert dans l'éditeur de code et exécuté."
-
-#: FlatCAMApp.py:8549 FlatCAMApp.py:8555
-msgid "Save Project As ..."
-msgstr "Enregistrer le projet sous ..."
-
-#: FlatCAMApp.py:8551 flatcamGUI/FlatCAMGUI.py:1134
-#: flatcamGUI/FlatCAMGUI.py:2176
-msgid "Project"
-msgstr "Projet"
-
-#: FlatCAMApp.py:8590
-msgid "FlatCAM objects print"
-msgstr "Impression d'objets FlatCAM"
-
-#: FlatCAMApp.py:8603 FlatCAMApp.py:8610
-msgid "Save Object as PDF ..."
-msgstr "Enregistrer l'objet au format PDF ...Enregistrer le projet sous ..."
-
-#: FlatCAMApp.py:8619
-msgid "Printing PDF ... Please wait."
-msgstr "Impression du PDF ... Veuillez patienter."
-
-#: FlatCAMApp.py:8798
-msgid "PDF file saved to"
-msgstr "Fichier PDF enregistré dans"
-
-#: FlatCAMApp.py:8823
-msgid "Exporting SVG"
-msgstr "Exporter du SVG"
-
-#: FlatCAMApp.py:8866
-msgid "SVG file exported to"
-msgstr "Fichier SVG exporté vers"
-
-#: FlatCAMApp.py:8892
-msgid ""
-"Save cancelled because source file is empty. Try to export the Gerber file."
-msgstr ""
-"Enregistrement annulé car le fichier source est vide. Essayez d'exporter le "
-"fichier Gerber."
-
-#: FlatCAMApp.py:9039
-msgid "Excellon file exported to"
-msgstr "Fichier Excellon exporté vers"
-
-#: FlatCAMApp.py:9048
-msgid "Exporting Excellon"
-msgstr "Exporter Excellon"
-
-#: FlatCAMApp.py:9053 FlatCAMApp.py:9060
-msgid "Could not export Excellon file."
-msgstr "Impossible d'exporter le fichier Excellon."
-
-#: FlatCAMApp.py:9175
-msgid "Gerber file exported to"
-msgstr "Fichier Gerber exporté vers"
-
-#: FlatCAMApp.py:9183
-msgid "Exporting Gerber"
-msgstr "Exporter Gerber"
-
-#: FlatCAMApp.py:9188 FlatCAMApp.py:9195
-msgid "Could not export Gerber file."
-msgstr "Impossible d'exporter le fichier Gerber."
-
-#: FlatCAMApp.py:9230
-msgid "DXF file exported to"
-msgstr "Fichier DXF exporté vers"
-
-#: FlatCAMApp.py:9236
-msgid "Exporting DXF"
-msgstr "Exportation DXF"
-
-#: FlatCAMApp.py:9241 FlatCAMApp.py:9248
-msgid "Could not export DXF file."
-msgstr "Impossible d'exporter le fichier DXF."
-
-#: FlatCAMApp.py:9272 FlatCAMApp.py:9319 flatcamTools/ToolImage.py:277
-msgid ""
-"Not supported type is picked as parameter. Only Geometry and Gerber are "
-"supported"
-msgstr ""
-"Le type non pris en charge est sélectionné en tant que paramètre. Seuls "
-"Geometry et Gerber sont supportés"
-
-#: FlatCAMApp.py:9282
-msgid "Importing SVG"
-msgstr "Importer du SVG"
-
-#: FlatCAMApp.py:9290 FlatCAMApp.py:9336
-msgid "Import failed."
-msgstr "L'importation a échoué."
-
-#: FlatCAMApp.py:9297 FlatCAMApp.py:9343 FlatCAMApp.py:9407 FlatCAMApp.py:9474
-#: FlatCAMApp.py:9540 FlatCAMApp.py:9605 FlatCAMApp.py:9662
-#: flatcamTools/ToolImage.py:297 flatcamTools/ToolPDF.py:225
-msgid "Opened"
-msgstr "Ouvert"
-
-#: FlatCAMApp.py:9328
-msgid "Importing DXF"
-msgstr "Importation de DXF"
-
-#: FlatCAMApp.py:9369 FlatCAMApp.py:9564 FlatCAMApp.py:9629
-msgid "Failed to open file"
-msgstr "Échec de l'ouverture du fichier"
-
-#: FlatCAMApp.py:9372 FlatCAMApp.py:9567 FlatCAMApp.py:9632
-msgid "Failed to parse file"
-msgstr "Échec de l'analyse du fichier"
-
-#: FlatCAMApp.py:9384
-msgid "Object is not Gerber file or empty. Aborting object creation."
-msgstr ""
-"L'objet n'est pas un fichier Gerber ou vide. Abandon de la création d'objet."
-
-#: FlatCAMApp.py:9389
-msgid "Opening Gerber"
-msgstr "Ouverture Gerber"
-
-#: FlatCAMApp.py:9400
-msgid "Open Gerber failed. Probable not a Gerber file."
-msgstr "Open Gerber failed. Probable not a Gerber file."
-
-#: FlatCAMApp.py:9432 flatcamTools/ToolPcbWizard.py:424
-msgid "This is not Excellon file."
-msgstr "Ce n'est pas un fichier Excellon."
-
-#: FlatCAMApp.py:9436
-msgid "Cannot open file"
-msgstr "Ne peut pas ouvrir le fichier"
-
-#: FlatCAMApp.py:9454 flatcamTools/ToolPDF.py:275
-#: flatcamTools/ToolPcbWizard.py:445
-msgid "No geometry found in file"
-msgstr "Aucune géométrie trouvée dans le fichier"
-
-#: FlatCAMApp.py:9457
-msgid "Opening Excellon."
-msgstr "Ouverture Excellon."
-
-#: FlatCAMApp.py:9467
-msgid "Open Excellon file failed. Probable not an Excellon file."
-msgstr ""
-"Le fichier Open Excellon a échoué. Probablement pas un fichier Excellon."
-
-#: FlatCAMApp.py:9499
-msgid "Reading GCode file"
-msgstr "Lecture du fichier GCode"
-
-#: FlatCAMApp.py:9505
-msgid "Failed to open"
-msgstr "Impossible d'ouvrir"
-
-#: FlatCAMApp.py:9512
-msgid "This is not GCODE"
-msgstr "Ce n'est pas GCODE"
-
-#: FlatCAMApp.py:9517
-msgid "Opening G-Code."
-msgstr "Ouverture G-Code."
-
-#: FlatCAMApp.py:9530
-msgid ""
-"Failed to create CNCJob Object. Probable not a GCode file. Try to load it "
-"from File menu.\n"
-" Attempting to create a FlatCAM CNCJob Object from G-Code file failed during "
-"processing"
-msgstr ""
-"Impossible de créer un objet CNCJob. Probablement pas un fichier GCode. "
-"Essayez de le charger à partir du menu Fichier.\n"
-"La tentative de création d'un objet FlatCAM CNCJob à partir d'un fichier G-"
-"Code a échoué pendant le traitement"
-
-#: FlatCAMApp.py:9586
-msgid "Object is not HPGL2 file or empty. Aborting object creation."
-msgstr ""
-"L'objet n'est pas un fichier HPGL2 ou vide. Abandon de la création d'objet."
-
-#: FlatCAMApp.py:9591
-msgid "Opening HPGL2"
-msgstr "Ouverture HPGL2"
-
-#: FlatCAMApp.py:9598
-msgid " Open HPGL2 failed. Probable not a HPGL2 file."
-msgstr " Open HPGL2 a échoué. Probablement pas un fichier HPGL2 ."
-
-#: FlatCAMApp.py:9624
-msgid "TCL script file opened in Code Editor."
-msgstr "Fichier de script TCL ouvert dans l'éditeur de code."
-
-#: FlatCAMApp.py:9644
-msgid "Opening TCL Script..."
-msgstr "Ouverture du script TCL ..."
-
-#: FlatCAMApp.py:9655
-msgid "Failed to open TCL Script."
-msgstr "Impossible d'ouvrir le script TCL."
-
-#: FlatCAMApp.py:9677
-msgid "Opening FlatCAM Config file."
-msgstr "Ouverture du fichier FlatCAM Config."
-
-#: FlatCAMApp.py:9705
-msgid "Failed to open config file"
-msgstr "Impossible d'ouvrir le fichier de configuration"
-
-#: FlatCAMApp.py:9734
-msgid "Loading Project ... Please Wait ..."
-msgstr "Chargement du projet ... Veuillez patienter ..."
-
-#: FlatCAMApp.py:9739
-msgid "Opening FlatCAM Project file."
-msgstr "Ouverture du fichier de projet FlatCAM."
-
-#: FlatCAMApp.py:9754 FlatCAMApp.py:9758 FlatCAMApp.py:9775
-msgid "Failed to open project file"
-msgstr "Impossible d'ouvrir le fichier de projet"
-
-#: FlatCAMApp.py:9812
-msgid "Loading Project ... restoring"
-msgstr "Chargement du projet ... en cours de restauration"
-
-#: FlatCAMApp.py:9822
-msgid "Project loaded from"
-msgstr "Projet chargé à partir de"
-
-#: FlatCAMApp.py:9846
-msgid "Redrawing all objects"
-msgstr "Redessiner tous les objets"
-
-#: FlatCAMApp.py:9934
-msgid "Failed to load recent item list."
-msgstr "Échec du chargement de la liste des éléments récents."
-
-#: FlatCAMApp.py:9941
-msgid "Failed to parse recent item list."
-msgstr "Échec de l'analyse de la liste des éléments récents."
-
-#: FlatCAMApp.py:9951
-msgid "Failed to load recent projects item list."
-msgstr "Échec du chargement de la liste d'éléments des projets récents."
-
-#: FlatCAMApp.py:9958
-msgid "Failed to parse recent project item list."
-msgstr "Échec de l'analyse de la liste des éléments de projet récents."
-
-#: FlatCAMApp.py:10019
-msgid "Clear Recent projects"
-msgstr "Effacer les projets récents"
-
-#: FlatCAMApp.py:10043
-msgid "Clear Recent files"
-msgstr "Effacer les fichiers récents"
-
-#: FlatCAMApp.py:10065 flatcamGUI/FlatCAMGUI.py:1363
-msgid "Shortcut Key List"
-msgstr "Liste des touches de raccourci"
-
-#: FlatCAMApp.py:10145
-msgid "Selected Tab - Choose an Item from Project Tab"
-msgstr "Onglet sélectionné - Choisissez un élément dans l'onglet Projet"
-
-#: FlatCAMApp.py:10146
-msgid "Details"
-msgstr "Détails"
-
-#: FlatCAMApp.py:10148
-msgid "The normal flow when working in FlatCAM is the following:"
-msgstr "Le flux normal lorsque vous travaillez dans FlatCAM est le suivant:"
-
-#: FlatCAMApp.py:10149
-msgid ""
-"Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into "
-"FlatCAM using either the toolbars, key shortcuts or even dragging and "
-"dropping the files on the GUI."
-msgstr ""
-"Chargez / importez un fichier Gerber, Excellon, Gcode, DXF, Image raster ou "
-"SVG dans FlatCAM à l'aide des barres d'outils, des raccourcis clavier ou "
-"même en glissant-déposant les fichiers sur l'interface graphique."
-
-#: FlatCAMApp.py:10152
-msgid ""
-"You can also load a FlatCAM project by double clicking on the project file, "
-"drag and drop of the file into the FLATCAM GUI or through the menu (or "
-"toolbar) actions offered within the app."
-msgstr ""
-"Vous pouvez également charger un projet FlatCAM en double-cliquant sur le "
-"fichier du projet, en le glissant-déposant dans l’interface graphique de "
-"FLATCAM ou par le biais du menu (ou de la barre d’outils) proposé dans "
-"l’application."
-
-#: FlatCAMApp.py:10155
-msgid ""
-"Once an object is available in the Project Tab, by selecting it and then "
-"focusing on SELECTED TAB (more simpler is to double click the object name in "
-"the Project Tab, SELECTED TAB will be updated with the object properties "
-"according to its kind: Gerber, Excellon, Geometry or CNCJob object."
-msgstr ""
-"Une fois qu'un objet est disponible dans l'onglet Projet, en le "
-"sélectionnant puis en vous concentrant sur SELECTED TAB (il est plus simple "
-"de cliquer deux fois sur le nom de l'objet dans l'onglet Projet. SELECTED "
-"TAB sera mis à jour avec les propriétés de l'objet en fonction de son type: "
-"Gerber, Excellon, géométrie ou objet CNCJob."
-
-#: FlatCAMApp.py:10159
-msgid ""
-"If the selection of the object is done on the canvas by single click "
-"instead, and the SELECTED TAB is in focus, again the object properties will "
-"be displayed into the Selected Tab. Alternatively, double clicking on the "
-"object on the canvas will bring the SELECTED TAB and populate it even if it "
-"was out of focus."
-msgstr ""
-"Si la sélection de l'objet est effectuée sur le canevas par un simple clic "
-"et que l'onglet sélectionné est activé, les propriétés de l'objet sont à "
-"nouveau affichées dans l'onglet sélectionné. Sinon, double-cliquez sur "
-"l'objet sur la toile pour amener l'onglet sélectionné et le renseigner même "
-"s'il n'était pas net."
-
-#: FlatCAMApp.py:10163
-msgid ""
-"You can change the parameters in this screen and the flow direction is like "
-"this:"
-msgstr ""
-"Vous pouvez modifier les paramètres dans cet écran et le sens du flux est le "
-"suivant:"
-
-#: FlatCAMApp.py:10164
-msgid ""
-"Gerber/Excellon Object --> Change Parameter --> Generate Geometry --> "
-"Geometry Object --> Add tools (change param in Selected Tab) --> Generate "
-"CNCJob --> CNCJob Object --> Verify GCode (through Edit CNC Code) and/or "
-"append/prepend to GCode (again, done in SELECTED TAB) --> Save GCode."
-msgstr ""
-"Objet Gerber / Excellon -> Paramètre de modification -> Générer une "
-"géométrie -> Objet de géométrie -> Ajouter des outils (changez le paramètre "
-"dans l'onglet Sélectionné) -> Génère un objet CNCJob -> Objet CNCJob -> "
-"Vérifier le GCode (via Edition CNC Code) et / ou ajouter / ajouter au code "
-"GCode (à nouveau dans l’onglet SÉLECTIONNÉ) -> Enregistrer le code GC."
-
-#: FlatCAMApp.py:10168
-msgid ""
-"A list of key shortcuts is available through an menu entry in Help --> "
-"Shortcuts List or through its own key shortcut: F3."
-msgstr ""
-"Une liste des raccourcis clavier est disponible via une entrée de menu dans "
-"Aide -> Liste des raccourcis ou via son propre raccourci clavier: F3."
-
-#: FlatCAMApp.py:10232
-msgid "Failed checking for latest version. Could not connect."
-msgstr ""
-"Échec de la vérification de la dernière version. N'a pas pu se connecter."
-
-#: FlatCAMApp.py:10239
-msgid "Could not parse information about latest version."
-msgstr "Impossible d'analyser les informations sur la dernière version."
-
-#: FlatCAMApp.py:10249
-msgid "FlatCAM is up to date!"
-msgstr "FlatCAM est à jour!"
-
-#: FlatCAMApp.py:10254
-msgid "Newer Version Available"
-msgstr "Nouvelle version disponible"
-
-#: FlatCAMApp.py:10256
-msgid "There is a newer version of FlatCAM available for download:"
-msgstr "Une version plus récente de FlatCAM est disponible au téléchargement:"
-
-#: FlatCAMApp.py:10260
-msgid "info"
-msgstr "info"
-
-#: FlatCAMApp.py:10288
-msgid ""
-"OpenGL canvas initialization failed. HW or HW configuration not supported."
-"Change the graphic engine to Legacy(2D) in Edit -> Preferences -> General "
-"tab.\n"
-"\n"
-msgstr ""
-"L'initialisation du canevas OpenGL a échoué. La configuration matérielle ou "
-"matérielle n'est pas prise en charge. Modifiez le moteur graphique en Hérité "
-"(2D) dans Edition -> Préférences -> onglet Général.\n"
-"\n"
-
-#: FlatCAMApp.py:10367
-msgid "All plots disabled."
-msgstr "Toutes les parcelles désactivées."
-
-#: FlatCAMApp.py:10374
-msgid "All non selected plots disabled."
-msgstr "Toutes les parcelles non sélectionnées sont désactivées."
-
-#: FlatCAMApp.py:10381
-msgid "All plots enabled."
-msgstr "Toutes les parcelles activées."
-
-#: FlatCAMApp.py:10387
-msgid "Selected plots enabled..."
-msgstr "Parcelles sélectionnées activées ..."
-
-#: FlatCAMApp.py:10395
-msgid "Selected plots disabled..."
-msgstr "Parcelles sélectionnées désactivées ..."
-
-#: FlatCAMApp.py:10428
-msgid "Enabling plots ..."
-msgstr "Activation des parcelles ..."
-
-#: FlatCAMApp.py:10480
-msgid "Disabling plots ..."
-msgstr "Désactiver les parcelles ..."
-
-#: FlatCAMApp.py:10503
-msgid "Working ..."
-msgstr "Travail ..."
-
-#: FlatCAMApp.py:10558 flatcamGUI/FlatCAMGUI.py:703
-msgid "Red"
-msgstr "Rouge"
-
-#: FlatCAMApp.py:10560 flatcamGUI/FlatCAMGUI.py:706
-msgid "Blue"
-msgstr "Bleu"
-
-#: FlatCAMApp.py:10563 flatcamGUI/FlatCAMGUI.py:709
-msgid "Yellow"
-msgstr "Jaune"
-
-#: FlatCAMApp.py:10565 flatcamGUI/FlatCAMGUI.py:712
-msgid "Green"
-msgstr "Vert"
-
-#: FlatCAMApp.py:10567 flatcamGUI/FlatCAMGUI.py:715
-msgid "Purple"
-msgstr "Violet"
-
-#: FlatCAMApp.py:10569 flatcamGUI/FlatCAMGUI.py:718
-msgid "Brown"
-msgstr "Marron"
-
-#: FlatCAMApp.py:10571 FlatCAMApp.py:10627 flatcamGUI/FlatCAMGUI.py:721
-msgid "White"
-msgstr "Blanche"
-
-#: FlatCAMApp.py:10573 flatcamGUI/FlatCAMGUI.py:724
-msgid "Black"
-msgstr "Noire"
-
-#: FlatCAMApp.py:10576 flatcamGUI/FlatCAMGUI.py:729
-msgid "Custom"
-msgstr "Personnalisé"
-
-#: FlatCAMApp.py:10586 flatcamGUI/FlatCAMGUI.py:737
-msgid "Default"
-msgstr "Défaut"
-
-#: FlatCAMApp.py:10610 flatcamGUI/FlatCAMGUI.py:734
-msgid "Opacity"
-msgstr "Opacité"
-
-#: FlatCAMApp.py:10612
-msgid "Set alpha level ..."
-msgstr "Définir le niveau alpha ..."
-
-#: FlatCAMApp.py:10612
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:220
-#: flatcamTools/ToolExtractDrills.py:164 flatcamTools/ToolExtractDrills.py:285
-#: flatcamTools/ToolPunchGerber.py:192 flatcamTools/ToolPunchGerber.py:308
-#: flatcamTools/ToolTransform.py:357
-msgid "Value"
-msgstr "Valeur"
-
-#: FlatCAMApp.py:10666
-msgid "Saving FlatCAM Project"
-msgstr "Enregistrement du projet FlatCAM"
-
-#: FlatCAMApp.py:10687 FlatCAMApp.py:10723
-msgid "Project saved to"
-msgstr "Projet enregistré dans"
-
-#: FlatCAMApp.py:10694
-msgid "The object is used by another application."
-msgstr "L'objet est utilisé par une autre application."
-
-#: FlatCAMApp.py:10708
-msgid "Failed to verify project file"
-msgstr "Échec de la vérification du fichier de projet"
-
-#: FlatCAMApp.py:10708 FlatCAMApp.py:10716 FlatCAMApp.py:10726
-msgid "Retry to save it."
-msgstr "Réessayez de le sauvegarder."
-
-#: FlatCAMApp.py:10716 FlatCAMApp.py:10726
-msgid "Failed to parse saved project file"
-msgstr "Échec de l'analyse du fichier de projet enregistré"
-
-#: FlatCAMBookmark.py:57 FlatCAMBookmark.py:84
-msgid "Title"
-msgstr "Titre"
-
-#: FlatCAMBookmark.py:58 FlatCAMBookmark.py:88
-msgid "Web Link"
-msgstr "Lien Web"
-
-#: FlatCAMBookmark.py:62
-msgid ""
-"Index.\n"
-"The rows in gray color will populate the Bookmarks menu.\n"
-"The number of gray colored rows is set in Preferences."
-msgstr ""
-"Indice.\n"
-"Les lignes de couleur grise rempliront le menu Favoris.\n"
-"Le nombre de lignes de couleur grises est défini dans Préférences."
-
-#: FlatCAMBookmark.py:66
-msgid ""
-"Description of the link that is set as an menu action.\n"
-"Try to keep it short because it is installed as a menu item."
-msgstr ""
-"Description du lien défini en tant qu'action de menu.\n"
-"Essayez de rester bref car il est installé en tant qu'élément de menu."
-
-#: FlatCAMBookmark.py:69
-msgid "Web Link. E.g: https://your_website.org "
-msgstr "Lien Web. Par exemple: https://your_website.org "
-
-#: FlatCAMBookmark.py:78
-msgid "New Bookmark"
-msgstr "Nouveau Favori"
-
-#: FlatCAMBookmark.py:97
-msgid "Add Entry"
-msgstr "Ajouter une entrée"
-
-#: FlatCAMBookmark.py:98
-msgid "Remove Entry"
-msgstr "Supprimer l'entrée"
-
-#: FlatCAMBookmark.py:99
-msgid "Export List"
-msgstr "Exporter la liste"
-
-#: FlatCAMBookmark.py:100
-msgid "Import List"
-msgstr "Importer la liste"
-
-#: FlatCAMBookmark.py:190
-msgid "Title entry is empty."
-msgstr "L'entrée de titre est vide."
-
-#: FlatCAMBookmark.py:199
-msgid "Web link entry is empty."
-msgstr "L'entrée du lien Web est vide."
-
-#: FlatCAMBookmark.py:207
-msgid "Either the Title or the Weblink already in the table."
-msgstr "Soit le titre ou le lien Web déjà dans le tableau."
-
-#: FlatCAMBookmark.py:227
-msgid "Bookmark added."
-msgstr "Signet ajouté."
-
-#: FlatCAMBookmark.py:244
-msgid "This bookmark can not be removed"
-msgstr "Ce marque-page ne peut être supprimé"
-
-#: FlatCAMBookmark.py:275
-msgid "Bookmark removed."
-msgstr "Signet supprimé."
-
-#: FlatCAMBookmark.py:290
-msgid "Export FlatCAM Bookmarks"
-msgstr "Exporter les signets FlatCAM"
-
-#: FlatCAMBookmark.py:293 flatcamGUI/FlatCAMGUI.py:524
-msgid "Bookmarks"
-msgstr "Favoris"
-
-#: FlatCAMBookmark.py:319 FlatCAMBookmark.py:349
-msgid "Could not load bookmarks file."
-msgstr "Impossible de charger le fichier de favoris."
-
-#: FlatCAMBookmark.py:329
-msgid "Failed to write bookmarks to file."
-msgstr "Échec de l'écriture des favoris dans le fichier."
-
-#: FlatCAMBookmark.py:331
-msgid "Exported bookmarks to"
-msgstr "Favoris exportés vers"
-
-#: FlatCAMBookmark.py:337
-msgid "Import FlatCAM Bookmarks"
-msgstr "Importer des favoris FlatCAM"
-
-#: FlatCAMBookmark.py:356
-msgid "Imported Bookmarks from"
-msgstr "Favoris importés de"
-
-#: FlatCAMCommon.py:29
-msgid "The user requested a graceful exit of the current task."
-msgstr "L'utilisateur a demandé une sortie en douceur de la tâche en cours."
-
-#: FlatCAMDB.py:86
+#: AppDatabase.py:86
msgid "Add Geometry Tool in DB"
msgstr "Ajouter un outil de géométrie dans la BD"
-#: FlatCAMDB.py:88 FlatCAMDB.py:1643
+#: AppDatabase.py:88 AppDatabase.py:1643
msgid ""
"Add a new tool in the Tools Database.\n"
"It will be used in the Geometry UI.\n"
@@ -1749,214 +37,217 @@ msgstr ""
"Il sera utilisé dans l'interface utilisateur de géométrie.\n"
"Vous pouvez le modifier après l'avoir ajouté."
-#: FlatCAMDB.py:102 FlatCAMDB.py:1657
+#: AppDatabase.py:102 AppDatabase.py:1657
msgid "Delete Tool from DB"
msgstr "Supprimer l'outil de la BD"
-#: FlatCAMDB.py:104 FlatCAMDB.py:1659
+#: AppDatabase.py:104 AppDatabase.py:1659
msgid "Remove a selection of tools in the Tools Database."
-msgstr "Supprimez une sélection d'outils dans la base de données d'outils."
+msgstr "Supprimez une sélection d'outils de la base de données."
-#: FlatCAMDB.py:108 FlatCAMDB.py:1663
+#: AppDatabase.py:108 AppDatabase.py:1663
msgid "Export DB"
msgstr "Exporter la BD"
-#: FlatCAMDB.py:110 FlatCAMDB.py:1665
+#: AppDatabase.py:110 AppDatabase.py:1665
msgid "Save the Tools Database to a custom text file."
msgstr ""
"Enregistrez la base de données d'outils dans un fichier texte personnalisé."
-#: FlatCAMDB.py:114 FlatCAMDB.py:1669
+#: AppDatabase.py:114 AppDatabase.py:1669
msgid "Import DB"
msgstr "Importer une BD"
-#: FlatCAMDB.py:116 FlatCAMDB.py:1671
+#: AppDatabase.py:116 AppDatabase.py:1671
msgid "Load the Tools Database information's from a custom text file."
msgstr ""
"Chargez les informations de la base de données d'outils à partir d'un "
"fichier texte personnalisé."
-#: FlatCAMDB.py:120 FlatCAMDB.py:1681
+#: AppDatabase.py:120 AppDatabase.py:1681
msgid "Add Tool from Tools DB"
-msgstr "Ajouter un outil à partir de la base de données d'outils"
+msgstr "Ajouter un outil à partir de la base de données"
-#: FlatCAMDB.py:122 FlatCAMDB.py:1683
+#: AppDatabase.py:122 AppDatabase.py:1683
msgid ""
"Add a new tool in the Tools Table of the\n"
"active Geometry object after selecting a tool\n"
"in the Tools Database."
msgstr ""
-"Ajoutez un nouvel outil dans le tableau des outils du\n"
-"objet Geometry actif après avoir sélectionné un outil\n"
+"Ajoutez un nouvel outil depuis la table des \n"
+"objets Géométrie actif, après l'avoir sélectionné\n"
"dans la base de données des outils."
-#: FlatCAMDB.py:158 FlatCAMDB.py:833 FlatCAMDB.py:1087
+#: AppDatabase.py:128 AppDatabase.py:1689 AppGUI/MainGUI.py:1347
+#: AppGUI/preferences/PreferencesUIManager.py:942 App_Main.py:2203
+#: App_Main.py:3054 App_Main.py:3928 App_Main.py:4279 App_Main.py:6338
+msgid "Cancel"
+msgstr "Annuler"
+
+#: AppDatabase.py:158 AppDatabase.py:833 AppDatabase.py:1087
msgid "Tool Name"
msgstr "Nom de l'outil"
-#: FlatCAMDB.py:159 FlatCAMDB.py:835 FlatCAMDB.py:1100
-#: flatcamEditors/FlatCAMExcEditor.py:1604 flatcamGUI/ObjectUI.py:1345
-#: flatcamGUI/ObjectUI.py:1583
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:132
-#: flatcamTools/ToolNCC.py:278 flatcamTools/ToolNCC.py:287
-#: flatcamTools/ToolPaint.py:261
+#: AppDatabase.py:159 AppDatabase.py:835 AppDatabase.py:1100
+#: AppEditors/FlatCAMExcEditor.py:1604 AppGUI/ObjectUI.py:1447
+#: AppGUI/ObjectUI.py:1685
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:132
+#: AppTools/ToolNCC.py:278 AppTools/ToolNCC.py:287 AppTools/ToolPaint.py:260
msgid "Tool Dia"
-msgstr "Dia. de l'outil"
+msgstr "Diam. de l'outil"
-#: FlatCAMDB.py:160 FlatCAMDB.py:837 FlatCAMDB.py:1281
-#: flatcamGUI/ObjectUI.py:1558
+#: AppDatabase.py:160 AppDatabase.py:837 AppDatabase.py:1281
+#: AppGUI/ObjectUI.py:1660
msgid "Tool Offset"
msgstr "Décalage d'outil"
-#: FlatCAMDB.py:161 FlatCAMDB.py:839 FlatCAMDB.py:1298
+#: AppDatabase.py:161 AppDatabase.py:839 AppDatabase.py:1298
msgid "Custom Offset"
msgstr "Décalage personnalisé"
-#: FlatCAMDB.py:162 FlatCAMDB.py:841 FlatCAMDB.py:1265
-#: flatcamGUI/ObjectUI.py:309
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:67
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:53
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:62
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:72
-#: flatcamTools/ToolNCC.py:213 flatcamTools/ToolNCC.py:227
-#: flatcamTools/ToolPaint.py:196
+#: AppDatabase.py:162 AppDatabase.py:841 AppDatabase.py:1265
+#: AppGUI/ObjectUI.py:309
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:67
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:53
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:62
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:72 AppTools/ToolNCC.py:213
+#: AppTools/ToolNCC.py:227 AppTools/ToolPaint.py:195
msgid "Tool Type"
msgstr "Type d'outil"
-#: FlatCAMDB.py:163 FlatCAMDB.py:843 FlatCAMDB.py:1113
+#: AppDatabase.py:163 AppDatabase.py:843 AppDatabase.py:1113
msgid "Tool Shape"
msgstr "Forme d'outil"
-#: FlatCAMDB.py:164 FlatCAMDB.py:846 FlatCAMDB.py:1129
-#: flatcamGUI/ObjectUI.py:350 flatcamGUI/ObjectUI.py:900
-#: flatcamGUI/ObjectUI.py:1703 flatcamGUI/ObjectUI.py:2336
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:93
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:48
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:107
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:78
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:58
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:105
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:113
-#: flatcamTools/ToolCalculators.py:114 flatcamTools/ToolCutOut.py:138
-#: flatcamTools/ToolNCC.py:260 flatcamTools/ToolNCC.py:268
-#: flatcamTools/ToolPaint.py:243
+#: AppDatabase.py:164 AppDatabase.py:846 AppDatabase.py:1129
+#: AppGUI/ObjectUI.py:350 AppGUI/ObjectUI.py:900 AppGUI/ObjectUI.py:1805
+#: AppGUI/ObjectUI.py:2466
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:93
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:48
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:107
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:78
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:58
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:105
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:113
+#: AppTools/ToolCalculators.py:114 AppTools/ToolCutOut.py:138
+#: AppTools/ToolNCC.py:260 AppTools/ToolNCC.py:268 AppTools/ToolPaint.py:242
msgid "Cut Z"
-msgstr "Couper Z"
+msgstr "Gravure Z"
-#: FlatCAMDB.py:165 FlatCAMDB.py:848 FlatCAMDB.py:1143
+#: AppDatabase.py:165 AppDatabase.py:848 AppDatabase.py:1143
msgid "MultiDepth"
-msgstr "Multi-profondeur"
+msgstr "Plusieurs Passes"
-#: FlatCAMDB.py:166 FlatCAMDB.py:850 FlatCAMDB.py:1156
+#: AppDatabase.py:166 AppDatabase.py:850 AppDatabase.py:1156
msgid "DPP"
msgstr "DPP"
-#: FlatCAMDB.py:167 FlatCAMDB.py:852 FlatCAMDB.py:1312
+#: AppDatabase.py:167 AppDatabase.py:852 AppDatabase.py:1312
msgid "V-Dia"
-msgstr "Dia. en V"
+msgstr "Diam. V"
-#: FlatCAMDB.py:168 FlatCAMDB.py:854 FlatCAMDB.py:1326
+#: AppDatabase.py:168 AppDatabase.py:854 AppDatabase.py:1326
msgid "V-Angle"
-msgstr "Angle en V"
+msgstr "Angle V"
-#: FlatCAMDB.py:169 FlatCAMDB.py:856 FlatCAMDB.py:1170
-#: flatcamGUI/ObjectUI.py:946 flatcamGUI/ObjectUI.py:1750
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:134
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:101
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:61
-#: flatcamObjects/FlatCAMExcellon.py:1316
-#: flatcamObjects/FlatCAMGeometry.py:1606 flatcamTools/ToolCalibration.py:74
+#: AppDatabase.py:169 AppDatabase.py:856 AppDatabase.py:1170
+#: AppGUI/ObjectUI.py:946 AppGUI/ObjectUI.py:1852
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:134
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:101
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:61
+#: AppObjects/FlatCAMExcellon.py:1396 AppObjects/FlatCAMGeometry.py:1660
+#: AppTools/ToolCalibration.py:74
msgid "Travel Z"
-msgstr "Voyage Z"
+msgstr "Déplacement Z"
-#: FlatCAMDB.py:170 FlatCAMDB.py:858
+#: AppDatabase.py:170 AppDatabase.py:858
msgid "FR"
msgstr "Avance"
-#: FlatCAMDB.py:171 FlatCAMDB.py:860
+#: AppDatabase.py:171 AppDatabase.py:860
msgid "FR Z"
msgstr "Avance Z"
-#: FlatCAMDB.py:172 FlatCAMDB.py:862 FlatCAMDB.py:1340
+#: AppDatabase.py:172 AppDatabase.py:862 AppDatabase.py:1340
msgid "FR Rapids"
msgstr "Avance Rapides"
-#: FlatCAMDB.py:173 FlatCAMDB.py:864 FlatCAMDB.py:1213
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:222
+#: AppDatabase.py:173 AppDatabase.py:864 AppDatabase.py:1213
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:222
msgid "Spindle Speed"
-msgstr "Vitesse de broche"
+msgstr "Vitesse du Foret"
-#: FlatCAMDB.py:174 FlatCAMDB.py:866 FlatCAMDB.py:1228
-#: flatcamGUI/ObjectUI.py:1064 flatcamGUI/ObjectUI.py:1857
+#: AppDatabase.py:174 AppDatabase.py:866 AppDatabase.py:1228
+#: AppGUI/ObjectUI.py:1064 AppGUI/ObjectUI.py:1959
msgid "Dwell"
-msgstr "Habiter"
+msgstr "Démarrage"
-#: FlatCAMDB.py:175 FlatCAMDB.py:868 FlatCAMDB.py:1241
+#: AppDatabase.py:175 AppDatabase.py:868 AppDatabase.py:1241
msgid "Dwelltime"
msgstr "Temps d'attente"
-#: FlatCAMDB.py:176 FlatCAMDB.py:870 flatcamGUI/ObjectUI.py:2014
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:257
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:254
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:237
-#: flatcamTools/ToolSolderPaste.py:335
+#: AppDatabase.py:176 AppDatabase.py:870 AppGUI/ObjectUI.py:2116
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:257
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:254
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:237
+#: AppTools/ToolSolderPaste.py:335
msgid "Preprocessor"
-msgstr "Post-processeur"
+msgstr "Pré-réglage"
-#: FlatCAMDB.py:177 FlatCAMDB.py:872 FlatCAMDB.py:1356
+#: AppDatabase.py:177 AppDatabase.py:872 AppDatabase.py:1356
msgid "ExtraCut"
-msgstr "Coupe supp."
+msgstr "Coupe suppl"
-#: FlatCAMDB.py:178 FlatCAMDB.py:874 FlatCAMDB.py:1371
+#: AppDatabase.py:178 AppDatabase.py:874 AppDatabase.py:1371
msgid "E-Cut Length"
-msgstr "L-Coupe supp."
+msgstr "L-Coupe suppl"
-#: FlatCAMDB.py:179 FlatCAMDB.py:876
+#: AppDatabase.py:179 AppDatabase.py:876
msgid "Toolchange"
msgstr "Changement d'outil"
-#: FlatCAMDB.py:180 FlatCAMDB.py:878
+#: AppDatabase.py:180 AppDatabase.py:878
msgid "Toolchange XY"
msgstr "Changement d'outils X, Y"
-#: FlatCAMDB.py:181 FlatCAMDB.py:880
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:160
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:131
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:98
-#: flatcamTools/ToolCalibration.py:111
+#: AppDatabase.py:181 AppDatabase.py:880
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:160
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:131
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:98
+#: AppTools/ToolCalibration.py:111
msgid "Toolchange Z"
msgstr "Changement d'outil Z"
-#: FlatCAMDB.py:182 FlatCAMDB.py:882 flatcamGUI/ObjectUI.py:1193
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:69
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:54
+#: AppDatabase.py:182 AppDatabase.py:882 AppGUI/ObjectUI.py:1193
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:69
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:54
msgid "Start Z"
msgstr "Démarrer Z"
-#: FlatCAMDB.py:183 FlatCAMDB.py:885
+#: AppDatabase.py:183 AppDatabase.py:885
msgid "End Z"
msgstr "Fin Z"
-#: FlatCAMDB.py:187
+#: AppDatabase.py:187
msgid "Tool Index."
-msgstr "Index d'outils."
+msgstr "Outils index."
-#: FlatCAMDB.py:189 FlatCAMDB.py:1089
+#: AppDatabase.py:189 AppDatabase.py:1089
msgid ""
"Tool name.\n"
"This is not used in the app, it's function\n"
"is to serve as a note for the user."
msgstr ""
"Nom de l'outil.\n"
-"Ce n'est pas utilisé dans l'application, c'est la fonction\n"
-"est de servir de note pour le u."
+"N'est pas utilisé dans l'application, cette fonction\n"
+"serre de note pour les utilisateurs."
-#: FlatCAMDB.py:193 FlatCAMDB.py:1102
+#: AppDatabase.py:193 AppDatabase.py:1102
msgid "Tool Diameter."
msgstr "Diamètre de l'outil."
-#: FlatCAMDB.py:195 FlatCAMDB.py:1283
+#: AppDatabase.py:195 AppDatabase.py:1283
msgid ""
"Tool Offset.\n"
"Can be of a few types:\n"
@@ -1966,22 +257,22 @@ msgid ""
"Custom = custom offset using the Custom Offset value"
msgstr ""
"Décalage d'outil.\n"
-"Peut être de quelques types:\n"
+"Peut être de différents types:\n"
"Chemin = décalage zéro\n"
-"À l'INtérieur = décalé à l'intérieur de la moitié du diamètre de l'outil\n"
+"Intérieur = décalé à l'intérieur de la moitié du diamètre de l'outil\n"
"Extérieur = décalé à l'extérieur de la moitié du diamètre de l'outil\n"
"Personnalisé = décalage personnalisé à l'aide de la valeur de décalage "
"personnalisé"
-#: FlatCAMDB.py:202 FlatCAMDB.py:1300
+#: AppDatabase.py:202 AppDatabase.py:1300
msgid ""
"Custom Offset.\n"
"A value to be used as offset from the current path."
msgstr ""
"Décalage personnalisé.\n"
-"Une valeur à utiliser comme décalage par rapport au chemin actuel."
+"Valeur à utiliser comme décalage par rapport a l'existant."
-#: FlatCAMDB.py:205 FlatCAMDB.py:1267
+#: AppDatabase.py:205 AppDatabase.py:1267
msgid ""
"Tool Type.\n"
"Can be:\n"
@@ -1995,7 +286,7 @@ msgstr ""
"Rugueux = coupe grossière, faible avance, passes multiples\n"
"Finition = coupe de finition, avance élevée"
-#: FlatCAMDB.py:211 FlatCAMDB.py:1115
+#: AppDatabase.py:211 AppDatabase.py:1115
msgid ""
"Tool Shape. \n"
"Can be:\n"
@@ -2009,15 +300,15 @@ msgstr ""
"B = outil de fraisage à pointe sphérique\n"
"V = outil de fraisage en forme de V"
-#: FlatCAMDB.py:217 FlatCAMDB.py:1131
+#: AppDatabase.py:217 AppDatabase.py:1131
msgid ""
"Cutting Depth.\n"
"The depth at which to cut into material."
msgstr ""
"Profondeur de coupe.\n"
-"La profondeur à laquelle couper en matériau."
+"Profondeur de la gravure."
-#: FlatCAMDB.py:220 FlatCAMDB.py:1145
+#: AppDatabase.py:220 AppDatabase.py:1145
msgid ""
"Multi Depth.\n"
"Selecting this will allow cutting in multiple passes,\n"
@@ -2025,18 +316,18 @@ msgid ""
msgstr ""
"Profondeur multi.\n"
"La sélection de cette option permettra de couper en plusieurs passes,\n"
-"chaque passe en ajoutant une profondeur de paramètre DPP (profondeur par "
+"chaque passe en ajoutant une profondeur de Gravure DPP (profondeur par "
"passe)."
-#: FlatCAMDB.py:224 FlatCAMDB.py:1158
+#: AppDatabase.py:224 AppDatabase.py:1158
msgid ""
"DPP. Depth per Pass.\n"
"The value used to cut into material on each pass."
msgstr ""
"DPP. Profondeur par passe.\n"
-"La valeur utilisée pour couper le matériau à chaque passage."
+"La valeur utilisée pour graver le matériau à chaque passage."
-#: FlatCAMDB.py:227 FlatCAMDB.py:1314
+#: AppDatabase.py:227 AppDatabase.py:1314
msgid ""
"V-Dia.\n"
"Diameter of the tip for V-Shape Tools."
@@ -2044,15 +335,15 @@ msgstr ""
"Diamètre en V.\n"
"Diamètre de la pointe pour les outils en forme de V."
-#: FlatCAMDB.py:230 FlatCAMDB.py:1328
+#: AppDatabase.py:230 AppDatabase.py:1328
msgid ""
"V-Agle.\n"
"Angle at the tip for the V-Shape Tools."
msgstr ""
-"V-Agle.\n"
-"Angle à la pointe pour les outils en forme de V."
+"V-Angle.\n"
+"Angle de la pointe pour les outils en forme de V."
-#: FlatCAMDB.py:233 FlatCAMDB.py:1172
+#: AppDatabase.py:233 AppDatabase.py:1172
msgid ""
"Clearance Height.\n"
"Height at which the milling bit will travel between cuts,\n"
@@ -2060,9 +351,9 @@ msgid ""
msgstr ""
"Hauteur de dégagement.\n"
"Hauteur à laquelle la fraise se déplacera entre les coupes,\n"
-"au-dessus de la surface du matériau, en évitant tous les luminaires."
+"au-dessus de la surface du matériau, en évitant tous les obstacles."
-#: FlatCAMDB.py:237
+#: AppDatabase.py:237
msgid ""
"FR. Feedrate\n"
"The speed on XY plane used while cutting into material."
@@ -2070,7 +361,7 @@ msgstr ""
"FR. Vitesse d'avance\n"
"La vitesse sur le plan XY utilisée lors de la découpe du matériau."
-#: FlatCAMDB.py:240
+#: AppDatabase.py:240
msgid ""
"FR Z. Feedrate Z\n"
"The speed on Z plane."
@@ -2078,20 +369,20 @@ msgstr ""
"FR Z. Avance Z\n"
"La vitesse sur le plan Z."
-#: FlatCAMDB.py:243 FlatCAMDB.py:1342
+#: AppDatabase.py:243 AppDatabase.py:1342
msgid ""
"FR Rapids. Feedrate Rapids\n"
"Speed used while moving as fast as possible.\n"
"This is used only by some devices that can't use\n"
"the G0 g-code command. Mostly 3D printers."
msgstr ""
-"FR Rapids. Rapides d'avance\n"
+"FR Rapids. Avance rapides \n"
"Vitesse utilisée en se déplaçant le plus vite possible.\n"
"Ceci est utilisé uniquement par certains appareils qui ne peuvent pas "
"utiliser\n"
-"la commande G0 g-code. Principalement des imprimantes 3D."
+"la commande g-code G0 . Principalement sur les imprimantes 3D."
-#: FlatCAMDB.py:248 FlatCAMDB.py:1215
+#: AppDatabase.py:248 AppDatabase.py:1215
msgid ""
"Spindle Speed.\n"
"If it's left empty it will not be used.\n"
@@ -2101,17 +392,17 @@ msgstr ""
"S'il est laissé vide, il ne sera pas utilisé.\n"
"La vitesse du moteur en tr / min."
-#: FlatCAMDB.py:252 FlatCAMDB.py:1230
+#: AppDatabase.py:252 AppDatabase.py:1230
msgid ""
"Dwell.\n"
"Check this if a delay is needed to allow\n"
"the spindle motor to reach it's set speed."
msgstr ""
-"Habiter.\n"
+"Démarrage Moteur.\n"
"Cochez cette case si un délai est nécessaire pour permettre\n"
-"le moteur pour atteindre sa vitesse définie."
+"au moteur d'atteindre sa vitesse définie."
-#: FlatCAMDB.py:256 FlatCAMDB.py:1243
+#: AppDatabase.py:256 AppDatabase.py:1243
msgid ""
"Dwell Time.\n"
"A delay used to allow the motor spindle reach it's set speed."
@@ -2119,17 +410,17 @@ msgstr ""
"Temps d'attente.\n"
"Un délai utilisé pour permettre au moteur d'atteindre sa vitesse définie."
-#: FlatCAMDB.py:259
+#: AppDatabase.py:259
msgid ""
"Preprocessor.\n"
"A selection of files that will alter the generated G-code\n"
"to fit for a number of use cases."
msgstr ""
-"Préprocesseur.\n"
+"Préréglage.\n"
"Une sélection de fichiers qui modifieront le G-code généré\n"
"pour s'adapter à un certain nombre de cas d'utilisation."
-#: FlatCAMDB.py:263 FlatCAMDB.py:1358
+#: AppDatabase.py:263 AppDatabase.py:1358
msgid ""
"Extra Cut.\n"
"If checked, after a isolation is finished an extra cut\n"
@@ -2140,10 +431,10 @@ msgstr ""
"Coupe supplémentaire.\n"
"Si coché, une fois l'isolement terminé, une coupe supplémentaire\n"
"sera ajouté là où le début et la fin de l'isolement se rencontrent\n"
-"tel que ce point est couvert par cette coupe supplémentaire\n"
-"assurer une isolation complète."
+"de sorte que ce point soit couvert par cette coupe supplémentaire\n"
+"pour assurer une isolation complète."
-#: FlatCAMDB.py:269 FlatCAMDB.py:1373
+#: AppDatabase.py:269 AppDatabase.py:1373
msgid ""
"Extra Cut length.\n"
"If checked, after a isolation is finished an extra cut\n"
@@ -2153,13 +444,9 @@ msgid ""
"the extra cut."
msgstr ""
"Longueur de coupe supplémentaire.\n"
-"Si coché, une fois l'isolement terminé, une coupe supplémentaire\n"
-"sera ajouté là où le début et la fin de l'isolement se rencontrent\n"
-"tel que ce point est couvert par cette coupe supplémentaire\n"
-"assurer une isolation complète. C'est la longueur de\n"
-"la coupe supplémentaire."
+"Valeur de réglage de la coupe supplémentaire."
-#: FlatCAMDB.py:276
+#: AppDatabase.py:276
msgid ""
"Toolchange.\n"
"It will create a toolchange event.\n"
@@ -2169,9 +456,9 @@ msgstr ""
"Changement d'outil.\n"
"Il créera un événement de changement d'outil.\n"
"Le type de changement d'outils est déterminé par\n"
-"le fichier du préprocesseur."
+"le fichier de préréglages."
-#: FlatCAMDB.py:281
+#: AppDatabase.py:281
msgid ""
"Toolchange XY.\n"
"A set of coordinates in the format (x, y).\n"
@@ -2183,158 +470,196 @@ msgstr ""
"Déterminera la position cartésienne du point\n"
"où l'événement de changement d'outil a lieu."
-#: FlatCAMDB.py:286
+#: AppDatabase.py:286
msgid ""
"Toolchange Z.\n"
"The position on Z plane where the tool change event take place."
msgstr ""
"Changement d'outil Z.\n"
-"La position sur le plan Z où l'événement de changement d'outil a lieu."
+"Hauteur où l'événement de changement d'outil a lieu."
-#: FlatCAMDB.py:289
+#: AppDatabase.py:289
msgid ""
"Start Z.\n"
"If it's left empty it will not be used.\n"
"A position on Z plane to move immediately after job start."
msgstr ""
-"Démarrez Z.\n"
+"Hauteur de Démarrage.\n"
"S'il est laissé vide, il ne sera pas utilisé.\n"
-"Une position sur le plan Z pour se déplacer immédiatement après le début du "
-"travail."
+"Position en hauteur du déplacement immédiat au début du travail."
-#: FlatCAMDB.py:293
+#: AppDatabase.py:293
msgid ""
"End Z.\n"
"A position on Z plane to move immediately after job stop."
msgstr ""
-"Fin Z.\n"
-"Une position sur le plan Z pour se déplacer immédiatement après l'arrêt du "
-"travail."
+"Hauteur de Fin.\n"
+"hauteur pour se déplacer immédiatement après l'arrêt du travail."
-#: FlatCAMDB.py:305 FlatCAMDB.py:682 FlatCAMDB.py:716 FlatCAMDB.py:1898
-#: FlatCAMDB.py:2144 FlatCAMDB.py:2178
+#: AppDatabase.py:305 AppDatabase.py:682 AppDatabase.py:716 AppDatabase.py:1898
+#: AppDatabase.py:2144 AppDatabase.py:2178
msgid "Could not load Tools DB file."
msgstr "Impossible de charger le fichier BD des outils."
-#: FlatCAMDB.py:313 FlatCAMDB.py:724 FlatCAMDB.py:1906 FlatCAMDB.py:2186
+#: AppDatabase.py:313 AppDatabase.py:724 AppDatabase.py:1906
+#: AppDatabase.py:2186
msgid "Failed to parse Tools DB file."
msgstr "Échec de l'analyse du fichier BD des outils."
-#: FlatCAMDB.py:316 FlatCAMDB.py:727 FlatCAMDB.py:1909 FlatCAMDB.py:2189
+#: AppDatabase.py:316 AppDatabase.py:727 AppDatabase.py:1909
+#: AppDatabase.py:2189
msgid "Loaded FlatCAM Tools DB from"
msgstr "Base de données des outils FlatCAM chargée depuis"
-#: FlatCAMDB.py:322 FlatCAMDB.py:1823
+#: AppDatabase.py:322 AppDatabase.py:1823
msgid "Add to DB"
msgstr "Ajouter à la BD"
-#: FlatCAMDB.py:324 FlatCAMDB.py:1826
+#: AppDatabase.py:324 AppDatabase.py:1826
msgid "Copy from DB"
msgstr "Copier depuis BD"
-#: FlatCAMDB.py:326 FlatCAMDB.py:1829
+#: AppDatabase.py:326 AppDatabase.py:1829
msgid "Delete from DB"
-msgstr "Supprimer de la BD"
+msgstr "Suppression de la BD"
-#: FlatCAMDB.py:603 FlatCAMDB.py:2044
+#: AppDatabase.py:603 AppDatabase.py:2044
msgid "Tool added to DB."
msgstr "Outil ajouté à BD."
-#: FlatCAMDB.py:624 FlatCAMDB.py:2077
+#: AppDatabase.py:624 AppDatabase.py:2077
msgid "Tool copied from Tools DB."
msgstr "Outil copié à partir de la BD d'outils."
-#: FlatCAMDB.py:642 FlatCAMDB.py:2104
+#: AppDatabase.py:642 AppDatabase.py:2104
msgid "Tool removed from Tools DB."
msgstr "Outil supprimé de la BD d'outils."
-#: FlatCAMDB.py:653 FlatCAMDB.py:2115
+#: AppDatabase.py:653 AppDatabase.py:2115
msgid "Export Tools Database"
msgstr "Exporter la BD des outils"
-#: FlatCAMDB.py:656 FlatCAMDB.py:2118
+#: AppDatabase.py:656 AppDatabase.py:2118
msgid "Tools_Database"
msgstr "Base de données d'outils"
-#: FlatCAMDB.py:693 FlatCAMDB.py:696 FlatCAMDB.py:748 FlatCAMDB.py:2155
-#: FlatCAMDB.py:2158 FlatCAMDB.py:2211
-msgid "Failed to write Tools DB to file."
-msgstr "Échec de l'écriture de la base de données des outils dans le fichier."
+#: AppDatabase.py:663 AppDatabase.py:709 AppDatabase.py:2125
+#: AppDatabase.py:2171 AppEditors/FlatCAMExcEditor.py:1023
+#: AppEditors/FlatCAMExcEditor.py:1091 AppEditors/FlatCAMTextEditor.py:223
+#: AppGUI/MainGUI.py:2690 AppGUI/MainGUI.py:2906 AppGUI/MainGUI.py:3121
+#: AppObjects/ObjectCollection.py:126 AppTools/ToolFilm.py:739
+#: AppTools/ToolFilm.py:885 AppTools/ToolImage.py:247 AppTools/ToolMove.py:269
+#: AppTools/ToolPcbWizard.py:301 AppTools/ToolPcbWizard.py:324
+#: AppTools/ToolQRCode.py:791 AppTools/ToolQRCode.py:838 App_Main.py:1694
+#: App_Main.py:2430 App_Main.py:2465 App_Main.py:2512 App_Main.py:3991
+#: App_Main.py:6529 App_Main.py:6566 App_Main.py:6608 App_Main.py:6637
+#: App_Main.py:6678 App_Main.py:6703 App_Main.py:6755 App_Main.py:6790
+#: App_Main.py:6835 App_Main.py:6876 App_Main.py:6917 App_Main.py:6958
+#: App_Main.py:6999 App_Main.py:7043 App_Main.py:7099 App_Main.py:7131
+#: App_Main.py:7163 App_Main.py:7394 App_Main.py:7432 App_Main.py:7475
+#: App_Main.py:7552 App_Main.py:7607 Bookmark.py:300 Bookmark.py:342
+msgid "Cancelled."
+msgstr "Annulé."
-#: FlatCAMDB.py:699 FlatCAMDB.py:2161
+#: AppDatabase.py:671 AppDatabase.py:2133 AppEditors/FlatCAMTextEditor.py:276
+#: AppObjects/FlatCAMCNCJob.py:959 AppTools/ToolFilm.py:1016
+#: AppTools/ToolFilm.py:1197 AppTools/ToolSolderPaste.py:1534 App_Main.py:2520
+#: App_Main.py:7851 App_Main.py:7899 App_Main.py:8024 App_Main.py:8160
+#: Bookmark.py:308
+msgid ""
+"Permission denied, saving not possible.\n"
+"Most likely another app is holding the file open and not accessible."
+msgstr ""
+"Autorisation refusée, Sauvegarde impossible.\n"
+"Fichier ouvert dans une autre application. Fermé le fichier."
+
+#: AppDatabase.py:693 AppDatabase.py:696 AppDatabase.py:748 AppDatabase.py:2155
+#: AppDatabase.py:2158 AppDatabase.py:2211
+msgid "Failed to write Tools DB to file."
+msgstr "Échec d'écriture du fichier de base de données des outils."
+
+#: AppDatabase.py:699 AppDatabase.py:2161
msgid "Exported Tools DB to"
msgstr "Base de données d'outils exportée vers"
-#: FlatCAMDB.py:706 FlatCAMDB.py:2168
+#: AppDatabase.py:706 AppDatabase.py:2168
msgid "Import FlatCAM Tools DB"
msgstr "Importer la BD des outils FlatCAM"
-#: FlatCAMDB.py:752 FlatCAMDB.py:2215
+#: AppDatabase.py:738 AppDatabase.py:913 AppDatabase.py:2200
+#: AppDatabase.py:2418 AppObjects/FlatCAMGeometry.py:947
+#: AppTools/ToolNCC.py:4015 AppTools/ToolNCC.py:4099 AppTools/ToolPaint.py:3558
+#: AppTools/ToolPaint.py:3643 App_Main.py:5172 App_Main.py:5200
+#: App_Main.py:5227 App_Main.py:5247
+msgid "Tools Database"
+msgstr "Base de données d'outils"
+
+#: AppDatabase.py:752 AppDatabase.py:2215
msgid "Saved Tools DB."
msgstr "Sauvegarde de la BD des outils."
-#: FlatCAMDB.py:899 FlatCAMDB.py:2405
+#: AppDatabase.py:899 AppDatabase.py:2405
msgid "No Tool/row selected in the Tools Database table"
-msgstr "Aucun outil / ligne sélectionné dans le tableau de la BD d'outils"
+msgstr "Aucun outil/ligne sélectionné dans le tableau de la BD d'outils"
-#: FlatCAMDB.py:917 FlatCAMDB.py:2422
+#: AppDatabase.py:917 AppDatabase.py:2422
msgid "Cancelled adding tool from DB."
-msgstr "Outil d'ajout de la BD annulé."
+msgstr "Ajout d'outil de la BD abandonné."
-#: FlatCAMDB.py:1018
+#: AppDatabase.py:1018
msgid "Basic Geo Parameters"
msgstr "Paramètres Geo de base"
-#: FlatCAMDB.py:1030
+#: AppDatabase.py:1030
msgid "Advanced Geo Parameters"
msgstr "Paramètres Geo avancés"
-#: FlatCAMDB.py:1042
+#: AppDatabase.py:1042
msgid "NCC Parameters"
msgstr "Paramètres NCC"
-#: FlatCAMDB.py:1054
+#: AppDatabase.py:1054
msgid "Paint Parameters"
msgstr "Paramètres de Peindre"
-#: FlatCAMDB.py:1185 flatcamGUI/ObjectUI.py:967 flatcamGUI/ObjectUI.py:1769
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:185
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:148
-#: flatcamTools/ToolSolderPaste.py:253
+#: AppDatabase.py:1185 AppGUI/ObjectUI.py:967 AppGUI/ObjectUI.py:1871
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:185
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:148
+#: AppTools/ToolSolderPaste.py:253
msgid "Feedrate X-Y"
-msgstr "Avance X-Y"
+msgstr "Vitesse de déplacement"
-#: FlatCAMDB.py:1187
+#: AppDatabase.py:1187
msgid ""
"Feedrate X-Y. Feedrate\n"
"The speed on XY plane used while cutting into material."
msgstr ""
-"Avance X-Y. Vitesse d'avance\n"
+"Déplacement X-Y. Vitesse d'avance\n"
"La vitesse sur le plan XY utilisée lors de la découpe du matériau."
-#: FlatCAMDB.py:1199 flatcamGUI/ObjectUI.py:982 flatcamGUI/ObjectUI.py:1783
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:207
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:200
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:161
-#: flatcamTools/ToolSolderPaste.py:265
+#: AppDatabase.py:1199 AppGUI/ObjectUI.py:982 AppGUI/ObjectUI.py:1885
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:207
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:200
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:161
+#: AppTools/ToolSolderPaste.py:265
msgid "Feedrate Z"
-msgstr "Avance Z"
+msgstr "Déplacements Hauteur"
-#: FlatCAMDB.py:1201
+#: AppDatabase.py:1201
msgid ""
"Feedrate Z\n"
"The speed on Z plane."
msgstr ""
-"Avance Z\n"
-"La vitesse sur l'avion Z."
+"Monter/Descente \n"
+"La vitesse sur l'axe Z."
-#: FlatCAMDB.py:1399 flatcamGUI/ObjectUI.py:845
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:46
-#: flatcamTools/ToolNCC.py:341
+#: AppDatabase.py:1399 AppGUI/ObjectUI.py:845
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:46
+#: AppTools/ToolNCC.py:341
msgid "Operation"
msgstr "Opération"
-#: FlatCAMDB.py:1401 flatcamTools/ToolNCC.py:343
+#: AppDatabase.py:1401 AppTools/ToolNCC.py:343
msgid ""
"The 'Operation' can be:\n"
"- Isolation -> will ensure that the non-copper clearing is always complete.\n"
@@ -2342,68 +667,65 @@ msgid ""
"- Clear -> the regular non-copper clearing."
msgstr ""
"L'opération peut être:\n"
-"- Isolement -> veillera à ce que la clairance sans cuivre soit toujours "
+"- Isolé -> veillera à ce que la clairance sans cuivre soit toujours "
"complète.\n"
"Si cela ne réussit pas, alors le clearing sans cuivre échouera aussi.\n"
-"- Clair -> le clearing régulier sans cuivre."
+"- Nettoyer -> le clearing régulier sans cuivre."
-#: FlatCAMDB.py:1408 flatcamEditors/FlatCAMGrbEditor.py:2742
-#: flatcamGUI/GUIElements.py:2577 flatcamTools/ToolNCC.py:350
+#: AppDatabase.py:1408 AppEditors/FlatCAMGrbEditor.py:2740
+#: AppGUI/GUIElements.py:2604 AppTools/ToolNCC.py:350
msgid "Clear"
-msgstr "Effacer"
+msgstr "Nettoyer"
-#: FlatCAMDB.py:1409 flatcamTools/ToolNCC.py:351 flatcamTools/ToolNCC.py:1623
+#: AppDatabase.py:1409 AppTools/ToolNCC.py:351 AppTools/ToolNCC.py:1624
msgid "Isolation"
-msgstr "Isolement"
+msgstr "Isolé"
-#: FlatCAMDB.py:1417 flatcamGUI/ObjectUI.py:409 flatcamGUI/ObjectUI.py:867
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:62
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:56
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:95
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:137
-#: flatcamTools/ToolNCC.py:359
+#: AppDatabase.py:1417 AppGUI/ObjectUI.py:409 AppGUI/ObjectUI.py:867
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:62
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:56
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:95
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:137 AppTools/ToolNCC.py:359
msgid "Milling Type"
msgstr "Type de fraisage"
-#: FlatCAMDB.py:1419 FlatCAMDB.py:1427
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:139
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:147
-#: flatcamTools/ToolNCC.py:361 flatcamTools/ToolNCC.py:369
+#: AppDatabase.py:1419 AppDatabase.py:1427
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:139
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:147 AppTools/ToolNCC.py:361
+#: AppTools/ToolNCC.py:369
msgid ""
"Milling type when the selected tool is of type: 'iso_op':\n"
"- climb / best for precision milling and to reduce tool usage\n"
"- conventional / useful when there is no backlash compensation"
msgstr ""
"Type de fraisage lorsque l'outil sélectionné est de type: 'iso_op':\n"
-"- montée / idéal pour le fraisage de précision et pour réduire l'utilisation "
+"- montée : idéal pour le fraisage de précision et pour réduire l'utilisation "
"d'outils\n"
-"- conventionnel / utile quand il n'y a pas de compensation de jeu"
+"- conventionnel : utile quand il n'y a pas de compensation de jeu"
-#: FlatCAMDB.py:1424 flatcamGUI/ObjectUI.py:415
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:62
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:102
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:144
-#: flatcamTools/ToolNCC.py:366
+#: AppDatabase.py:1424 AppGUI/ObjectUI.py:415
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:62
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:102
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:144 AppTools/ToolNCC.py:366
msgid "Climb"
msgstr "Monté"
-#: FlatCAMDB.py:1425 flatcamGUI/ObjectUI.py:416
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:63
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:103
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:145
-#: flatcamTools/ToolNCC.py:367
+#: AppDatabase.py:1425 AppGUI/ObjectUI.py:416
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:63
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:103
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:145 AppTools/ToolNCC.py:367
msgid "Conventional"
msgstr "Conventionnel"
-#: FlatCAMDB.py:1437 FlatCAMDB.py:1546 flatcamEditors/FlatCAMGeoEditor.py:451
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:182
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:163
-#: flatcamTools/ToolNCC.py:382 flatcamTools/ToolPaint.py:329
+#: AppDatabase.py:1437 AppDatabase.py:1546 AppEditors/FlatCAMGeoEditor.py:450
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:182
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:163
+#: AppTools/ToolNCC.py:382 AppTools/ToolPaint.py:328
msgid "Overlap"
msgstr "Chevauchement"
-#: FlatCAMDB.py:1439 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:184
-#: flatcamTools/ToolNCC.py:384
+#: AppDatabase.py:1439 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:184
+#: AppTools/ToolNCC.py:384
msgid ""
"How much (percentage) of the tool width to overlap each tool pass.\n"
"Adjust the value starting with lower values\n"
@@ -2416,52 +738,53 @@ msgstr ""
"La quantité (pourcentage) de la largeur d'outil qui chevauche chaque passe "
"d'outil.\n"
"Ajustez la valeur en commençant par des valeurs inférieures\n"
-"et l'augmenter si les zones qui doivent être nettoyées sont encore\n"
-"pas effacé.\n"
+"et l'augmenter si les zones qui doivent être nettoyées sont mal effacé.\n"
"Valeurs inférieures = traitement plus rapide, exécution plus rapide sur "
"CNC.\n"
"Valeurs supérieures = traitement lent et exécution lente sur CNC\n"
"en raison de trop de chemins."
-#: FlatCAMDB.py:1458 FlatCAMDB.py:1567 flatcamEditors/FlatCAMGeoEditor.py:471
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:72
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:229
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:59
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:45
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:53
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:183
-#: flatcamTools/ToolCopperThieving.py:111
-#: flatcamTools/ToolCopperThieving.py:362 flatcamTools/ToolCutOut.py:190
-#: flatcamTools/ToolFiducials.py:172 flatcamTools/ToolInvertGerber.py:88
-#: flatcamTools/ToolInvertGerber.py:96 flatcamTools/ToolNCC.py:403
-#: flatcamTools/ToolPaint.py:350
+#: AppDatabase.py:1458 AppDatabase.py:1567 AppEditors/FlatCAMGeoEditor.py:470
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:72
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:229
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:59
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:45
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:53
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:66
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:183
+#: AppTools/ToolCopperThieving.py:111 AppTools/ToolCopperThieving.py:362
+#: AppTools/ToolCorners.py:140 AppTools/ToolCutOut.py:190
+#: AppTools/ToolFiducials.py:172 AppTools/ToolInvertGerber.py:88
+#: AppTools/ToolInvertGerber.py:96 AppTools/ToolNCC.py:403
+#: AppTools/ToolPaint.py:349
msgid "Margin"
msgstr "Marge"
-#: FlatCAMDB.py:1460
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:74
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:61
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204
-#: flatcamTools/ToolCopperThieving.py:113 flatcamTools/ToolFiducials.py:174
-#: flatcamTools/ToolFiducials.py:237 flatcamTools/ToolNCC.py:405
+#: AppDatabase.py:1460
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:74
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:61
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:68
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204
+#: AppTools/ToolCopperThieving.py:113 AppTools/ToolCorners.py:142
+#: AppTools/ToolFiducials.py:174 AppTools/ToolNCC.py:405
msgid "Bounding box margin."
msgstr "Marge du cadre de sélection."
-#: FlatCAMDB.py:1471 FlatCAMDB.py:1582 flatcamEditors/FlatCAMGeoEditor.py:485
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:105
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:198
-#: flatcamTools/ToolExtractDrills.py:128 flatcamTools/ToolNCC.py:416
-#: flatcamTools/ToolPaint.py:365 flatcamTools/ToolPunchGerber.py:139
+#: AppDatabase.py:1471 AppDatabase.py:1582 AppEditors/FlatCAMGeoEditor.py:484
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:105
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:198
+#: AppTools/ToolExtractDrills.py:128 AppTools/ToolNCC.py:416
+#: AppTools/ToolPaint.py:364 AppTools/ToolPunchGerber.py:139
msgid "Method"
msgstr "Méthode"
-#: FlatCAMDB.py:1473 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:217
-#: flatcamTools/ToolNCC.py:418
+#: AppDatabase.py:1473 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:217
+#: AppTools/ToolNCC.py:418
msgid ""
"Algorithm for copper clearing:\n"
"- Standard: Fixed step inwards.\n"
@@ -2473,52 +796,57 @@ msgstr ""
"- À base de graines: à l'extérieur des graines.\n"
"- Ligne: lignes parallèles."
-#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 flatcamEditors/FlatCAMGeoEditor.py:499
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
-#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolNCC.py:2395
-#: flatcamTools/ToolNCC.py:2424 flatcamTools/ToolNCC.py:2693
-#: flatcamTools/ToolNCC.py:2725 flatcamTools/ToolPaint.py:390
-#: flatcamTools/ToolPaint.py:1834 tclCommands/TclCommandCopperClear.py:126
+#: AppDatabase.py:1481 AppDatabase.py:1596 AppEditors/FlatCAMGeoEditor.py:498
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
+#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2212 AppTools/ToolNCC.py:2739
+#: AppTools/ToolNCC.py:2771 AppTools/ToolPaint.py:389
+#: AppTools/ToolPaint.py:1839 tclCommands/TclCommandCopperClear.py:126
#: tclCommands/TclCommandCopperClear.py:134 tclCommands/TclCommandPaint.py:125
msgid "Standard"
-msgstr "La norme"
+msgstr "Standard"
-#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 defaults.py:395 defaults.py:427
-#: flatcamEditors/FlatCAMGeoEditor.py:499
-#: flatcamEditors/FlatCAMGeoEditor.py:569
-#: flatcamEditors/FlatCAMGeoEditor.py:5152
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
-#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolNCC.py:2401
-#: flatcamTools/ToolNCC.py:2429 flatcamTools/ToolNCC.py:2699
-#: flatcamTools/ToolNCC.py:2731 flatcamTools/ToolPaint.py:390
-#: flatcamTools/ToolPaint.py:1848 tclCommands/TclCommandCopperClear.py:128
+#: AppDatabase.py:1481 AppDatabase.py:1596 AppEditors/FlatCAMGeoEditor.py:498
+#: AppEditors/FlatCAMGeoEditor.py:568 AppEditors/FlatCAMGeoEditor.py:5146
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
+#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2223 AppTools/ToolNCC.py:2745
+#: AppTools/ToolNCC.py:2777 AppTools/ToolPaint.py:389
+#: AppTools/ToolPaint.py:1853 defaults.py:400 defaults.py:432
+#: tclCommands/TclCommandCopperClear.py:128
#: tclCommands/TclCommandCopperClear.py:136 tclCommands/TclCommandPaint.py:127
msgid "Seed"
msgstr "La graine"
-#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 flatcamEditors/FlatCAMGeoEditor.py:499
-#: flatcamEditors/FlatCAMGeoEditor.py:5156
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
-#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolPaint.py:390
-#: flatcamTools/ToolPaint.py:699 flatcamTools/ToolPaint.py:1862
+#: AppDatabase.py:1481 AppDatabase.py:1596 AppEditors/FlatCAMGeoEditor.py:498
+#: AppEditors/FlatCAMGeoEditor.py:5150
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
+#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2234 AppTools/ToolPaint.py:389
+#: AppTools/ToolPaint.py:698 AppTools/ToolPaint.py:1867
#: tclCommands/TclCommandCopperClear.py:130 tclCommands/TclCommandPaint.py:129
msgid "Lines"
msgstr "Lignes"
-#: FlatCAMDB.py:1489 FlatCAMDB.py:1607
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:237
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:224
-#: flatcamTools/ToolNCC.py:439 flatcamTools/ToolPaint.py:401
+#: AppDatabase.py:1481 AppDatabase.py:1596
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
+#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2245 AppTools/ToolPaint.py:389
+#: AppTools/ToolPaint.py:2032 tclCommands/TclCommandPaint.py:133
+msgid "Combo"
+msgstr "Combo"
+
+#: AppDatabase.py:1489 AppDatabase.py:1607
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:237
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:224
+#: AppTools/ToolNCC.py:439 AppTools/ToolPaint.py:400
msgid "Connect"
msgstr "Relier"
-#: FlatCAMDB.py:1493 FlatCAMDB.py:1610 flatcamEditors/FlatCAMGeoEditor.py:508
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:239
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:226
-#: flatcamTools/ToolNCC.py:443 flatcamTools/ToolPaint.py:404
+#: AppDatabase.py:1493 AppDatabase.py:1610 AppEditors/FlatCAMGeoEditor.py:507
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:239
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:226
+#: AppTools/ToolNCC.py:443 AppTools/ToolPaint.py:403
msgid ""
"Draw lines between resulting\n"
"segments to minimize tool lifts."
@@ -2526,17 +854,17 @@ msgstr ""
"Tracez des lignes entre les résultats\n"
"segments pour minimiser les montées d’outil."
-#: FlatCAMDB.py:1499 FlatCAMDB.py:1614
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:246
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:232
-#: flatcamTools/ToolNCC.py:449 flatcamTools/ToolPaint.py:408
+#: AppDatabase.py:1499 AppDatabase.py:1614
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:246
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:232
+#: AppTools/ToolNCC.py:449 AppTools/ToolPaint.py:407
msgid "Contour"
msgstr "Contour"
-#: FlatCAMDB.py:1503 FlatCAMDB.py:1617 flatcamEditors/FlatCAMGeoEditor.py:518
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:248
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:234
-#: flatcamTools/ToolNCC.py:453 flatcamTools/ToolPaint.py:411
+#: AppDatabase.py:1503 AppDatabase.py:1617 AppEditors/FlatCAMGeoEditor.py:517
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:248
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:234
+#: AppTools/ToolNCC.py:453 AppTools/ToolPaint.py:410
msgid ""
"Cut around the perimeter of the polygon\n"
"to trim rough edges."
@@ -2544,17 +872,17 @@ msgstr ""
"Couper autour du périmètre du polygone\n"
"pour couper les bords rugueux."
-#: FlatCAMDB.py:1509 flatcamEditors/FlatCAMGeoEditor.py:612
-#: flatcamEditors/FlatCAMGrbEditor.py:5311 flatcamGUI/ObjectUI.py:143
-#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:255
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:142
-#: flatcamTools/ToolNCC.py:459 flatcamTools/ToolTransform.py:28
+#: AppDatabase.py:1509 AppEditors/FlatCAMGeoEditor.py:611
+#: AppEditors/FlatCAMGrbEditor.py:5289 AppGUI/ObjectUI.py:143
+#: AppGUI/ObjectUI.py:1599 AppGUI/ObjectUI.py:2456
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:255
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:142
+#: AppTools/ToolNCC.py:459 AppTools/ToolTransform.py:28
msgid "Offset"
msgstr "Décalage"
-#: FlatCAMDB.py:1513 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:257
-#: flatcamTools/ToolNCC.py:463
+#: AppDatabase.py:1513 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:257
+#: AppTools/ToolNCC.py:463
msgid ""
"If used, it will add an offset to the copper features.\n"
"The copper clearing will finish to a distance\n"
@@ -2566,9 +894,9 @@ msgstr ""
"des caractéristiques de cuivre.\n"
"La valeur peut être comprise entre 0 et 10 unités FlatCAM."
-#: FlatCAMDB.py:1548 flatcamEditors/FlatCAMGeoEditor.py:453
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:165
-#: flatcamTools/ToolPaint.py:331
+#: AppDatabase.py:1548 AppEditors/FlatCAMGeoEditor.py:452
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:165
+#: AppTools/ToolPaint.py:330
msgid ""
"How much (percentage) of the tool width to overlap each tool pass.\n"
"Adjust the value starting with lower values\n"
@@ -2581,16 +909,15 @@ msgstr ""
"La quantité (pourcentage) de la largeur d'outil qui chevauche chaque passe "
"d'outil.\n"
"Ajustez la valeur en commençant par des valeurs inférieures\n"
-"et l'augmenter si les zones à peindre sont encore\n"
-"pas peint.\n"
+"et l'augmenter si les zones à travaillé ne le sont pas.\n"
"Valeurs inférieures = traitement plus rapide, exécution plus rapide sur "
"CNC.\n"
"Valeurs supérieures = traitement lent et exécution lente sur CNC\n"
-"en raison de trop de chemins."
+"en raison de plus de chemins."
-#: FlatCAMDB.py:1569 flatcamEditors/FlatCAMGeoEditor.py:473
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:185
-#: flatcamTools/ToolPaint.py:352
+#: AppDatabase.py:1569 AppEditors/FlatCAMGeoEditor.py:472
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:185
+#: AppTools/ToolPaint.py:351
msgid ""
"Distance by which to avoid\n"
"the edges of the polygon to\n"
@@ -2598,10 +925,10 @@ msgid ""
msgstr ""
"Distance à éviter\n"
"les bords du polygone à\n"
-"être peint."
+"être travailler."
-#: FlatCAMDB.py:1584 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:200
-#: flatcamTools/ToolPaint.py:367
+#: AppDatabase.py:1584 AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:200
+#: AppTools/ToolPaint.py:366
msgid ""
"Algorithm for painting:\n"
"- Standard: Fixed step inwards.\n"
@@ -2622,485 +949,162 @@ msgstr ""
"précédentes\n"
"dans l'ordre spécifié."
-#: FlatCAMDB.py:1596 FlatCAMDB.py:1598
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
-#: flatcamTools/ToolPaint.py:390 flatcamTools/ToolPaint.py:392
-#: flatcamTools/ToolPaint.py:693 flatcamTools/ToolPaint.py:698
-#: flatcamTools/ToolPaint.py:1876 tclCommands/TclCommandPaint.py:131
+#: AppDatabase.py:1596 AppDatabase.py:1598
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
+#: AppTools/ToolPaint.py:389 AppTools/ToolPaint.py:391
+#: AppTools/ToolPaint.py:692 AppTools/ToolPaint.py:697
+#: AppTools/ToolPaint.py:1881 tclCommands/TclCommandPaint.py:131
msgid "Laser_lines"
msgstr "Lignes_laser"
-#: FlatCAMDB.py:1596 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
-#: flatcamTools/ToolPaint.py:390 flatcamTools/ToolPaint.py:2027
-#: tclCommands/TclCommandPaint.py:133
-msgid "Combo"
-msgstr "Combo"
-
-#: FlatCAMDB.py:1641
+#: AppDatabase.py:1641
msgid "Add Tool in DB"
msgstr "Ajouter un Outil dans la BD"
-#: FlatCAMDB.py:1675
+#: AppDatabase.py:1675
msgid "Save DB"
msgstr "Sauver BD"
-#: FlatCAMDB.py:1677
+#: AppDatabase.py:1677
msgid "Save the Tools Database information's."
msgstr "Enregistrez les informations de la base de données des outils."
-#: FlatCAMProcess.py:172
-msgid "processes running."
-msgstr "processus en cours d'exécution."
-
-#: FlatCAMTool.py:245 FlatCAMTool.py:252 flatcamGUI/ObjectUI.py:157
-#: flatcamGUI/ObjectUI.py:164
-msgid "Edited value is out of range"
-msgstr "La valeur modifiée est hors limites"
-
-#: FlatCAMTool.py:247 FlatCAMTool.py:254 flatcamGUI/ObjectUI.py:159
-#: flatcamGUI/ObjectUI.py:166
-msgid "Edited value is within limits."
-msgstr "La valeur modifiée est dans les limites."
-
-#: FlatCAMTranslation.py:104
-msgid "The application will restart."
-msgstr "L'application va redémarrer."
-
-#: FlatCAMTranslation.py:106
-msgid "Are you sure do you want to change the current language to"
-msgstr "Etes-vous sûr de vouloir changer la langue actuelle en"
-
-#: FlatCAMTranslation.py:107
-msgid "Apply Language ..."
-msgstr "Appliquer la langue ..."
-
-#: assets/linux/flatcam-beta.desktop:3
-msgid "FlatCAM Beta"
-msgstr "FlatCAM Beta"
-
-#: assets/linux/flatcam-beta.desktop:7
-msgid "./assets/icon.png"
-msgstr "./assets/icon.png"
-
-#: assets/linux/flatcam-beta.desktop:8
-msgid "G-Code from GERBERS"
-msgstr "G-Code de GERBERS"
-
-#: camlib.py:597
-msgid "self.solid_geometry is neither BaseGeometry or list."
-msgstr "self.solid_geometry n'est ni BaseGeometry ni une liste."
-
-#: camlib.py:970
-msgid "Pass"
-msgstr "Passer"
-
-#: camlib.py:981 flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:146
-#: flatcamObjects/FlatCAMGerber.py:497 flatcamTools/ToolCopperThieving.py:1016
-#: flatcamTools/ToolCopperThieving.py:1205
-#: flatcamTools/ToolCopperThieving.py:1217 flatcamTools/ToolNCC.py:2050
-#: flatcamTools/ToolNCC.py:2158 flatcamTools/ToolNCC.py:2172
-#: flatcamTools/ToolNCC.py:3103 flatcamTools/ToolNCC.py:3208
-#: flatcamTools/ToolNCC.py:3223 flatcamTools/ToolNCC.py:3489
-#: flatcamTools/ToolNCC.py:3590 flatcamTools/ToolNCC.py:3605
-msgid "Buffering"
-msgstr "Mise en mémoire tampon"
-
-#: camlib.py:990
-msgid "Get Exteriors"
-msgstr "Obtenez des extérieurs"
-
-#: camlib.py:993
-msgid "Get Interiors"
-msgstr "Obtenez des intérieurs"
-
-#: camlib.py:2172
-msgid "Object was mirrored"
-msgstr "L'objet a été reflété"
-
-#: camlib.py:2174
-msgid "Failed to mirror. No object selected"
-msgstr "Impossible de refléter. Aucun objet sélectionné"
-
-#: camlib.py:2239
-msgid "Object was rotated"
-msgstr "L'objet a été tourné"
-
-#: camlib.py:2241
-msgid "Failed to rotate. No object selected"
-msgstr "Échec de la rotation. Aucun objet sélectionné"
-
-#: camlib.py:2307
-msgid "Object was skewed"
-msgstr "L'objet était de biaiser"
-
-#: camlib.py:2309
-msgid "Failed to skew. No object selected"
-msgstr "Impossible de biaiser. Aucun objet sélectionné"
-
-#: camlib.py:2385
-msgid "Object was buffered"
-msgstr "L'objet a été tamponnées"
-
-#: camlib.py:2387
-msgid "Failed to buffer. No object selected"
-msgstr "Échec de la mise en buffer. Aucun objet sélectionné"
-
-#: camlib.py:2594
-msgid "There is no such parameter"
-msgstr "Il n'y a pas de tel paramètre"
-
-#: camlib.py:2654 camlib.py:2887 camlib.py:3116 camlib.py:3338
-msgid ""
-"The Cut Z parameter has positive value. It is the depth value to drill into "
-"material.\n"
-"The Cut Z parameter needs to have a negative value, assuming it is a typo "
-"therefore the app will convert the value to negative. Check the resulting "
-"CNC code (Gcode etc)."
-msgstr ""
-"Le paramètre Cut Z a une valeur positive. C'est la valeur de profondeur à "
-"percer dans le matériau.\n"
-"Le paramètre Cut Z doit avoir une valeur négative, en supposant qu'il "
-"s'agisse d'une faute de frappe; par conséquent, l'application convertira la "
-"valeur en valeur négative. Vérifiez le code CNC résultant (Gcode, etc.)."
-
-#: camlib.py:2662 camlib.py:2897 camlib.py:3126 camlib.py:3348 camlib.py:3631
-#: camlib.py:4017
-msgid "The Cut Z parameter is zero. There will be no cut, skipping file"
-msgstr "Le paramètre Cut Z est zéro. Il n'y aura pas de fichier coupé, sautant"
-
-#: camlib.py:2673 camlib.py:3985
-msgid ""
-"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, "
-"y) \n"
-"but now there is only one value, not two. "
-msgstr ""
-"Le champ Toolchange X, Y dans Edition -> Préférences doit être au format (x, "
-"y)\n"
-"mais maintenant il n'y a qu'une seule valeur, pas deux. "
-
-#: camlib.py:2682 camlib.py:3582 camlib.py:3967
-msgid ""
-"The End Move X,Y field in Edit -> Preferences has to be in the format (x, y) "
-"but now there is only one value, not two."
-msgstr ""
-"Le champ Fin du déplacement X, Y dans Edition -> Préférences doit être au "
-"format (x, y) mais maintenant il n'y a qu'une seule valeur, pas deux."
-
-#: camlib.py:2770
-msgid "Creating a list of points to drill..."
-msgstr "Création d'une liste de points à explorer ..."
-
-#: camlib.py:2860 camlib.py:3729 camlib.py:4121
-msgid "Starting G-Code"
-msgstr "Démarrer le GCode"
-
-#: camlib.py:3001 camlib.py:3220 camlib.py:3384 camlib.py:3742 camlib.py:4132
-msgid "Starting G-Code for tool with diameter"
-msgstr "Code G de départ pour outil avec diamètre"
-
-#: camlib.py:3084 camlib.py:3302 camlib.py:3470
-msgid "G91 coordinates not implemented"
-msgstr "Coordonnées G91 non implémentées"
-
-#: camlib.py:3090 camlib.py:3309 camlib.py:3475
-msgid "The loaded Excellon file has no drills"
-msgstr "Le fichier Excellon chargé n'a pas d'exercices"
-
-#: camlib.py:3498
-msgid "Finished G-Code generation..."
-msgstr "Fini la génération de code G ..."
-
-#: camlib.py:3600
-msgid ""
-"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, "
-"y) \n"
-"but now there is only one value, not two."
-msgstr ""
-"Le champ Toolchange X, Y dans Edition -> Préférences doit être au format (x, "
-"y)\n"
-"mais maintenant il n'y a qu'une seule valeur, pas deux."
-
-#: camlib.py:3614 camlib.py:4000
-msgid ""
-"Cut_Z parameter is None or zero. Most likely a bad combinations of other "
-"parameters."
-msgstr ""
-"Le paramètre Cut_Z est Aucun ou zéro. Très probablement une mauvaise "
-"combinaison d'autres paramètres."
-
-#: camlib.py:3623 camlib.py:4009
-msgid ""
-"The Cut Z parameter has positive value. It is the depth value to cut into "
-"material.\n"
-"The Cut Z parameter needs to have a negative value, assuming it is a typo "
-"therefore the app will convert the value to negative.Check the resulting CNC "
-"code (Gcode etc)."
-msgstr ""
-"Le paramètre Cut Z a une valeur positive. C'est la valeur de profondeur à "
-"couper dans le matériau.\n"
-"Le paramètre Cut Z doit avoir une valeur négative, en supposant qu'il "
-"s'agisse d'une faute de frappe. Par conséquent, l'application convertira la "
-"valeur en valeur négative. Vérifiez le code CNC résultant (Gcode, etc.)."
-
-#: camlib.py:3636 camlib.py:4023
-msgid "Travel Z parameter is None or zero."
-msgstr "Le paramètre Voyage Z est Aucun ou zéro."
-
-#: camlib.py:3641 camlib.py:4028
-msgid ""
-"The Travel Z parameter has negative value. It is the height value to travel "
-"between cuts.\n"
-"The Z Travel parameter needs to have a positive value, assuming it is a typo "
-"therefore the app will convert the value to positive.Check the resulting CNC "
-"code (Gcode etc)."
-msgstr ""
-"Le paramètre Travel Z a une valeur négative. C'est la valeur de hauteur pour "
-"voyager entre les coupes.\n"
-"Le paramètre Z voyage doit avoir une valeur positive, en supposant qu'il "
-"s'agisse d'une faute de frappe. Par conséquent, l'application convertira la "
-"valeur en valeur positive. Vérifiez le code CNC résultant (Gcode, etc.)."
-
-#: camlib.py:3649 camlib.py:4036
-msgid "The Z Travel parameter is zero. This is dangerous, skipping file"
-msgstr "Le paramètre Z voyage est zéro. Ceci est dangereux, ignorer le fichier"
-
-#: camlib.py:3668 camlib.py:4059
-msgid "Indexing geometry before generating G-Code..."
-msgstr "Indexer la géométrie avant de générer le code G ..."
-
-#: camlib.py:3812 camlib.py:4201
-msgid "Finished G-Code generation"
-msgstr "Génération de code G terminée"
-
-#: camlib.py:3812
-msgid "paths traced"
-msgstr "chemins tracés"
-
-#: camlib.py:3862
-msgid "Expected a Geometry, got"
-msgstr "Attendait une géométrie, eu"
-
-#: camlib.py:3869
-msgid ""
-"Trying to generate a CNC Job from a Geometry object without solid_geometry."
-msgstr ""
-"Essayer de générer un travail CNC à partir d'un objet de géométrie sans "
-"solid_geometry."
-
-#: camlib.py:3910
-msgid ""
-"The Tool Offset value is too negative to use for the current_geometry.\n"
-"Raise the value (in module) and try again."
-msgstr ""
-"La valeur de décalage de l'outil est trop négative pour pouvoir être "
-"utilisée pour current_geometry.\n"
-"Augmentez la valeur (dans le module) et essayez à nouveau."
-
-#: camlib.py:4201
-msgid " paths traced."
-msgstr " chemins tracés."
-
-#: camlib.py:4229
-msgid "There is no tool data in the SolderPaste geometry."
-msgstr "Il n'y a pas de données d'outil dans la géométrie SolderPaste."
-
-#: camlib.py:4318
-msgid "Finished SolderPaste G-Code generation"
-msgstr "Génération de G-Code SolderPaste fini"
-
-#: camlib.py:4318
-msgid "paths traced."
-msgstr "chemins tracés."
-
-#: camlib.py:4578
-msgid "Parsing GCode file. Number of lines"
-msgstr "Analyse du fichier GCode. Nombre de lignes"
-
-#: camlib.py:4685
-msgid "Creating Geometry from the parsed GCode file. "
-msgstr "Création d'une géométrie à partir du fichier GCode analysé. "
-
-#: camlib.py:4828 camlib.py:5118 camlib.py:5229 camlib.py:5385
-msgid "G91 coordinates not implemented ..."
-msgstr "Coordonnées G91 non implémentées ..."
-
-#: camlib.py:4960
-msgid "Unifying Geometry from parsed Geometry segments"
-msgstr "Unifier la géométrie à partir de segments de géométrie analysés"
-
-#: defaults.py:401
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
-#: flatcamTools/ToolCopperThieving.py:125 flatcamTools/ToolNCC.py:535
-#: flatcamTools/ToolNCC.py:1306 flatcamTools/ToolNCC.py:1634
-#: flatcamTools/ToolNCC.py:1919 flatcamTools/ToolNCC.py:1983
-#: flatcamTools/ToolNCC.py:2967 flatcamTools/ToolNCC.py:2976
-#: tclCommands/TclCommandCopperClear.py:190
-msgid "Itself"
-msgstr "Lui-même"
-
-#: defaults.py:428 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
-#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:1427
-#: tclCommands/TclCommandPaint.py:162
-msgid "All Polygons"
-msgstr "Tous les polygones"
-
-#: defaults.py:739
-msgid "Could not load defaults file."
-msgstr "Impossible de charger le fichier par défaut."
-
-#: defaults.py:752
-msgid "Failed to parse defaults file."
-msgstr "Échec de l'analyse du fichier par défaut."
-
-#: flatcamEditors/FlatCAMExcEditor.py:50 flatcamEditors/FlatCAMExcEditor.py:74
-#: flatcamEditors/FlatCAMExcEditor.py:168
-#: flatcamEditors/FlatCAMExcEditor.py:385
-#: flatcamEditors/FlatCAMExcEditor.py:589
-#: flatcamEditors/FlatCAMGrbEditor.py:243
-#: flatcamEditors/FlatCAMGrbEditor.py:250
+#: AppEditors/FlatCAMExcEditor.py:50 AppEditors/FlatCAMExcEditor.py:74
+#: AppEditors/FlatCAMExcEditor.py:168 AppEditors/FlatCAMExcEditor.py:385
+#: AppEditors/FlatCAMExcEditor.py:589 AppEditors/FlatCAMGrbEditor.py:241
+#: AppEditors/FlatCAMGrbEditor.py:248
msgid "Click to place ..."
msgstr "Cliquez pour placer ..."
-#: flatcamEditors/FlatCAMExcEditor.py:58
+#: AppEditors/FlatCAMExcEditor.py:58
msgid "To add a drill first select a tool"
msgstr "Pour ajouter une perceuse, sélectionnez d'abord un outil"
-#: flatcamEditors/FlatCAMExcEditor.py:122
+#: AppEditors/FlatCAMExcEditor.py:122
msgid "Done. Drill added."
msgstr "Terminé. Drill ajouté."
-#: flatcamEditors/FlatCAMExcEditor.py:176
+#: AppEditors/FlatCAMExcEditor.py:176
msgid "To add an Drill Array first select a tool in Tool Table"
msgstr ""
"Pour ajouter une matrice de forage, sélectionnez d'abord un outil dans la "
"Table d'Outils"
-#: flatcamEditors/FlatCAMExcEditor.py:192
-#: flatcamEditors/FlatCAMExcEditor.py:415
-#: flatcamEditors/FlatCAMExcEditor.py:636
-#: flatcamEditors/FlatCAMExcEditor.py:1151
-#: flatcamEditors/FlatCAMExcEditor.py:1178
-#: flatcamEditors/FlatCAMGrbEditor.py:473
-#: flatcamEditors/FlatCAMGrbEditor.py:1937
-#: flatcamEditors/FlatCAMGrbEditor.py:1967
+#: AppEditors/FlatCAMExcEditor.py:192 AppEditors/FlatCAMExcEditor.py:415
+#: AppEditors/FlatCAMExcEditor.py:636 AppEditors/FlatCAMExcEditor.py:1151
+#: AppEditors/FlatCAMExcEditor.py:1178 AppEditors/FlatCAMGrbEditor.py:471
+#: AppEditors/FlatCAMGrbEditor.py:1935 AppEditors/FlatCAMGrbEditor.py:1965
msgid "Click on target location ..."
msgstr "Cliquez sur l'emplacement cible ..."
-#: flatcamEditors/FlatCAMExcEditor.py:211
+#: AppEditors/FlatCAMExcEditor.py:211
msgid "Click on the Drill Circular Array Start position"
msgstr "Cliquez sur la position de départ du tableau de forage circulaire"
-#: flatcamEditors/FlatCAMExcEditor.py:233
-#: flatcamEditors/FlatCAMExcEditor.py:677
-#: flatcamEditors/FlatCAMGrbEditor.py:518
+#: AppEditors/FlatCAMExcEditor.py:233 AppEditors/FlatCAMExcEditor.py:677
+#: AppEditors/FlatCAMGrbEditor.py:516
msgid "The value is not Float. Check for comma instead of dot separator."
msgstr ""
"La valeur n'est pas réelle. Vérifiez la virgule au lieu du séparateur de "
"points."
-#: flatcamEditors/FlatCAMExcEditor.py:237
+#: AppEditors/FlatCAMExcEditor.py:237
msgid "The value is mistyped. Check the value"
msgstr "La valeur est mal typée. Vérifiez la valeur"
-#: flatcamEditors/FlatCAMExcEditor.py:336
+#: AppEditors/FlatCAMExcEditor.py:336
msgid "Too many drills for the selected spacing angle."
msgstr "Trop de forages pour l'angle d'espacement sélectionné."
-#: flatcamEditors/FlatCAMExcEditor.py:354
+#: AppEditors/FlatCAMExcEditor.py:354
msgid "Done. Drill Array added."
msgstr "Terminé. Tableau de forage ajouté."
-#: flatcamEditors/FlatCAMExcEditor.py:394
+#: AppEditors/FlatCAMExcEditor.py:394
msgid "To add a slot first select a tool"
msgstr "Pour ajouter un trou de fente, sélectionnez d'abord un outil"
-#: flatcamEditors/FlatCAMExcEditor.py:454
-#: flatcamEditors/FlatCAMExcEditor.py:461
-#: flatcamEditors/FlatCAMExcEditor.py:742
-#: flatcamEditors/FlatCAMExcEditor.py:749
+#: AppEditors/FlatCAMExcEditor.py:454 AppEditors/FlatCAMExcEditor.py:461
+#: AppEditors/FlatCAMExcEditor.py:742 AppEditors/FlatCAMExcEditor.py:749
msgid "Value is missing or wrong format. Add it and retry."
msgstr "Valeur manquante ou format incorrect. Ajoutez-le et réessayez."
-#: flatcamEditors/FlatCAMExcEditor.py:559
+#: AppEditors/FlatCAMExcEditor.py:559
msgid "Done. Adding Slot completed."
msgstr "Terminé. Ajout de la fente terminée."
-#: flatcamEditors/FlatCAMExcEditor.py:597
+#: AppEditors/FlatCAMExcEditor.py:597
msgid "To add an Slot Array first select a tool in Tool Table"
msgstr ""
"Pour ajouter un tableau de trous de fente, sélectionnez d'abord un outil "
"dans la table d'outils"
-#: flatcamEditors/FlatCAMExcEditor.py:655
+#: AppEditors/FlatCAMExcEditor.py:655
msgid "Click on the Slot Circular Array Start position"
msgstr ""
"Cliquez sur la position de départ de la matrice circulaire du trou de fente"
-#: flatcamEditors/FlatCAMExcEditor.py:680
-#: flatcamEditors/FlatCAMGrbEditor.py:521
+#: AppEditors/FlatCAMExcEditor.py:680 AppEditors/FlatCAMGrbEditor.py:519
msgid "The value is mistyped. Check the value."
msgstr "La valeur est mal typée. Vérifiez la valeur."
-#: flatcamEditors/FlatCAMExcEditor.py:859
+#: AppEditors/FlatCAMExcEditor.py:859
msgid "Too many Slots for the selected spacing angle."
msgstr "Trop de trous de fente pour l'angle d'espacement sélectionné."
-#: flatcamEditors/FlatCAMExcEditor.py:882
+#: AppEditors/FlatCAMExcEditor.py:882
msgid "Done. Slot Array added."
msgstr "Terminé. Tableau de trous de fente ajouté."
-#: flatcamEditors/FlatCAMExcEditor.py:904
+#: AppEditors/FlatCAMExcEditor.py:904
msgid "Click on the Drill(s) to resize ..."
msgstr "Cliquez sur les forets pour redimensionner ..."
-#: flatcamEditors/FlatCAMExcEditor.py:934
+#: AppEditors/FlatCAMExcEditor.py:934
msgid "Resize drill(s) failed. Please enter a diameter for resize."
msgstr ""
"Redimensionner les trous de forage a échoué. Veuillez entrer un diamètre "
"pour le redimensionner."
-#: flatcamEditors/FlatCAMExcEditor.py:1112
+#: AppEditors/FlatCAMExcEditor.py:1112
msgid "Done. Drill/Slot Resize completed."
msgstr ""
"Terminé. Le redimensionnement des trous de forage / rainure est terminé."
-#: flatcamEditors/FlatCAMExcEditor.py:1115
+#: AppEditors/FlatCAMExcEditor.py:1115
msgid "Cancelled. No drills/slots selected for resize ..."
msgstr ""
"Annulé. Aucun trou de perçage / rainure sélectionné pour le "
"redimensionnement ..."
-#: flatcamEditors/FlatCAMExcEditor.py:1153
-#: flatcamEditors/FlatCAMGrbEditor.py:1939
+#: AppEditors/FlatCAMExcEditor.py:1153 AppEditors/FlatCAMGrbEditor.py:1937
msgid "Click on reference location ..."
msgstr "Cliquez sur l'emplacement de référence ..."
-#: flatcamEditors/FlatCAMExcEditor.py:1210
+#: AppEditors/FlatCAMExcEditor.py:1210
msgid "Done. Drill(s) Move completed."
msgstr "Terminé. Foret (s) Déplacement terminé."
-#: flatcamEditors/FlatCAMExcEditor.py:1318
+#: AppEditors/FlatCAMExcEditor.py:1318
msgid "Done. Drill(s) copied."
msgstr "Terminé. Percer des trous copiés."
-#: flatcamEditors/FlatCAMExcEditor.py:1557
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:26
+#: AppEditors/FlatCAMExcEditor.py:1557
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:26
msgid "Excellon Editor"
-msgstr "Excellent éditeur"
+msgstr "Editeur Excellon"
-#: flatcamEditors/FlatCAMExcEditor.py:1564
-#: flatcamEditors/FlatCAMGrbEditor.py:2462
+#: AppEditors/FlatCAMExcEditor.py:1564 AppEditors/FlatCAMGrbEditor.py:2460
msgid "Name:"
msgstr "Nom:"
-#: flatcamEditors/FlatCAMExcEditor.py:1570 flatcamGUI/ObjectUI.py:761
-#: flatcamGUI/ObjectUI.py:1465 flatcamTools/ToolNCC.py:120
-#: flatcamTools/ToolPaint.py:115 flatcamTools/ToolSolderPaste.py:74
+#: AppEditors/FlatCAMExcEditor.py:1570 AppGUI/ObjectUI.py:761
+#: AppGUI/ObjectUI.py:1567 AppTools/ToolNCC.py:120 AppTools/ToolPaint.py:114
+#: AppTools/ToolSolderPaste.py:74
msgid "Tools Table"
msgstr "Tableau des outils"
-#: flatcamEditors/FlatCAMExcEditor.py:1572 flatcamGUI/ObjectUI.py:763
+#: AppEditors/FlatCAMExcEditor.py:1572 AppGUI/ObjectUI.py:763
msgid ""
"Tools in this Excellon object\n"
"when are used for drilling."
@@ -3108,22 +1112,21 @@ msgstr ""
"Outils dans cet objet Excellon\n"
"quand sont utilisés pour le forage."
-#: flatcamEditors/FlatCAMExcEditor.py:1584
-#: flatcamEditors/FlatCAMExcEditor.py:3066 flatcamGUI/ObjectUI.py:781
-#: flatcamObjects/FlatCAMExcellon.py:1098
-#: flatcamObjects/FlatCAMExcellon.py:1188
-#: flatcamObjects/FlatCAMExcellon.py:1373 flatcamTools/ToolNCC.py:132
-#: flatcamTools/ToolPaint.py:128 flatcamTools/ToolPcbWizard.py:76
-#: flatcamTools/ToolProperties.py:416 flatcamTools/ToolProperties.py:476
-#: flatcamTools/ToolSolderPaste.py:85 tclCommands/TclCommandDrillcncjob.py:193
+#: AppEditors/FlatCAMExcEditor.py:1584 AppEditors/FlatCAMExcEditor.py:3041
+#: AppGUI/ObjectUI.py:781 AppObjects/FlatCAMExcellon.py:1177
+#: AppObjects/FlatCAMExcellon.py:1268 AppObjects/FlatCAMExcellon.py:1453
+#: AppTools/ToolNCC.py:132 AppTools/ToolPaint.py:127
+#: AppTools/ToolPcbWizard.py:76 AppTools/ToolProperties.py:416
+#: AppTools/ToolProperties.py:476 AppTools/ToolSolderPaste.py:85
+#: tclCommands/TclCommandDrillcncjob.py:195
msgid "Diameter"
msgstr "Diamètre"
-#: flatcamEditors/FlatCAMExcEditor.py:1592
+#: AppEditors/FlatCAMExcEditor.py:1592
msgid "Add/Delete Tool"
msgstr "Ajouter / Supprimer un outil"
-#: flatcamEditors/FlatCAMExcEditor.py:1594
+#: AppEditors/FlatCAMExcEditor.py:1594
msgid ""
"Add/Delete a tool to the tool list\n"
"for this Excellon object."
@@ -3131,16 +1134,16 @@ msgstr ""
"Ajouter / Supprimer un outil à la liste d'outils\n"
"pour cet objet Excellon."
-#: flatcamEditors/FlatCAMExcEditor.py:1606 flatcamGUI/ObjectUI.py:1585
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:57
+#: AppEditors/FlatCAMExcEditor.py:1606 AppGUI/ObjectUI.py:1687
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:57
msgid "Diameter for the new tool"
msgstr "Diamètre pour le nouvel outil"
-#: flatcamEditors/FlatCAMExcEditor.py:1616
+#: AppEditors/FlatCAMExcEditor.py:1616
msgid "Add Tool"
msgstr "Ajouter un Outil"
-#: flatcamEditors/FlatCAMExcEditor.py:1618
+#: AppEditors/FlatCAMExcEditor.py:1618
msgid ""
"Add a new tool to the tool list\n"
"with the diameter specified above."
@@ -3148,11 +1151,11 @@ msgstr ""
"Ajouter un nouvel outil à la liste d'outils\n"
"avec le diamètre spécifié ci-dessus."
-#: flatcamEditors/FlatCAMExcEditor.py:1630
+#: AppEditors/FlatCAMExcEditor.py:1630
msgid "Delete Tool"
msgstr "Supprimer l'outil"
-#: flatcamEditors/FlatCAMExcEditor.py:1632
+#: AppEditors/FlatCAMExcEditor.py:1632
msgid ""
"Delete a tool in the tool list\n"
"by selecting a row in the tool table."
@@ -3160,40 +1163,40 @@ msgstr ""
"Supprimer un outil dans la liste des outils\n"
"en sélectionnant une ligne dans la table d'outils."
-#: flatcamEditors/FlatCAMExcEditor.py:1650 flatcamGUI/FlatCAMGUI.py:2019
+#: AppEditors/FlatCAMExcEditor.py:1650 AppGUI/MainGUI.py:4311
msgid "Resize Drill(s)"
msgstr "Redim. les Forets"
-#: flatcamEditors/FlatCAMExcEditor.py:1652
+#: AppEditors/FlatCAMExcEditor.py:1652
msgid "Resize a drill or a selection of drills."
msgstr "Redimensionnez une perceuse ou une sélection d'exercices."
-#: flatcamEditors/FlatCAMExcEditor.py:1659
+#: AppEditors/FlatCAMExcEditor.py:1659
msgid "Resize Dia"
msgstr "Redim. le dia"
-#: flatcamEditors/FlatCAMExcEditor.py:1661
+#: AppEditors/FlatCAMExcEditor.py:1661
msgid "Diameter to resize to."
msgstr "Diamètre à redimensionner."
-#: flatcamEditors/FlatCAMExcEditor.py:1672
+#: AppEditors/FlatCAMExcEditor.py:1672
msgid "Resize"
msgstr "Redimensionner"
-#: flatcamEditors/FlatCAMExcEditor.py:1674
+#: AppEditors/FlatCAMExcEditor.py:1674
msgid "Resize drill(s)"
msgstr "Redimensionner les forets"
-#: flatcamEditors/FlatCAMExcEditor.py:1699 flatcamGUI/FlatCAMGUI.py:2018
-#: flatcamGUI/FlatCAMGUI.py:2270
+#: AppEditors/FlatCAMExcEditor.py:1699 AppGUI/MainGUI.py:1473
+#: AppGUI/MainGUI.py:4310
msgid "Add Drill Array"
msgstr "Ajouter un Tableau de Forage"
-#: flatcamEditors/FlatCAMExcEditor.py:1701
+#: AppEditors/FlatCAMExcEditor.py:1701
msgid "Add an array of drills (linear or circular array)"
msgstr "Ajouter un tableau de trous de forage (tableau linéaire ou circulaire)"
-#: flatcamEditors/FlatCAMExcEditor.py:1707
+#: AppEditors/FlatCAMExcEditor.py:1707
msgid ""
"Select the type of drills array to create.\n"
"It can be Linear X(Y) or Circular"
@@ -3201,57 +1204,50 @@ msgstr ""
"Sélectionnez le type de matrice de trous à créer.\n"
"Il peut être Linéaire X (Y) ou Circulaire"
-#: flatcamEditors/FlatCAMExcEditor.py:1710
-#: flatcamEditors/FlatCAMExcEditor.py:1924
-#: flatcamEditors/FlatCAMGrbEditor.py:2775
+#: AppEditors/FlatCAMExcEditor.py:1710 AppEditors/FlatCAMExcEditor.py:1924
+#: AppEditors/FlatCAMGrbEditor.py:2773
msgid "Linear"
msgstr "Linéaire"
-#: flatcamEditors/FlatCAMExcEditor.py:1711
-#: flatcamEditors/FlatCAMExcEditor.py:1925
-#: flatcamEditors/FlatCAMGrbEditor.py:2776 flatcamGUI/ObjectUI.py:316
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:52
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:149
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:107
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:52
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:151
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:70
-#: flatcamTools/ToolExtractDrills.py:78 flatcamTools/ToolExtractDrills.py:201
-#: flatcamTools/ToolFiducials.py:220 flatcamTools/ToolNCC.py:221
-#: flatcamTools/ToolPaint.py:204 flatcamTools/ToolPunchGerber.py:89
-#: flatcamTools/ToolPunchGerber.py:229
+#: AppEditors/FlatCAMExcEditor.py:1711 AppEditors/FlatCAMExcEditor.py:1925
+#: AppEditors/FlatCAMGrbEditor.py:2774 AppGUI/ObjectUI.py:316
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:52
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:149
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:107
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:52
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:151
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:70
+#: AppTools/ToolExtractDrills.py:78 AppTools/ToolExtractDrills.py:201
+#: AppTools/ToolFiducials.py:220 AppTools/ToolNCC.py:221
+#: AppTools/ToolPaint.py:203 AppTools/ToolPunchGerber.py:89
+#: AppTools/ToolPunchGerber.py:229
msgid "Circular"
msgstr "Circulaire"
-#: flatcamEditors/FlatCAMExcEditor.py:1719
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:68
+#: AppEditors/FlatCAMExcEditor.py:1719
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:68
msgid "Nr of drills"
msgstr "Nb de Forages"
-#: flatcamEditors/FlatCAMExcEditor.py:1720
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:70
+#: AppEditors/FlatCAMExcEditor.py:1720
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:70
msgid "Specify how many drills to be in the array."
msgstr "Spécifiez combien d'exercices doivent figurer dans le tableau."
-#: flatcamEditors/FlatCAMExcEditor.py:1738
-#: flatcamEditors/FlatCAMExcEditor.py:1788
-#: flatcamEditors/FlatCAMExcEditor.py:1860
-#: flatcamEditors/FlatCAMExcEditor.py:1953
-#: flatcamEditors/FlatCAMExcEditor.py:2004
-#: flatcamEditors/FlatCAMGrbEditor.py:1573
-#: flatcamEditors/FlatCAMGrbEditor.py:2804
-#: flatcamEditors/FlatCAMGrbEditor.py:2853
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:178
+#: AppEditors/FlatCAMExcEditor.py:1738 AppEditors/FlatCAMExcEditor.py:1788
+#: AppEditors/FlatCAMExcEditor.py:1860 AppEditors/FlatCAMExcEditor.py:1953
+#: AppEditors/FlatCAMExcEditor.py:2004 AppEditors/FlatCAMGrbEditor.py:1571
+#: AppEditors/FlatCAMGrbEditor.py:2802 AppEditors/FlatCAMGrbEditor.py:2851
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:178
msgid "Direction"
msgstr "Direction"
-#: flatcamEditors/FlatCAMExcEditor.py:1740
-#: flatcamEditors/FlatCAMExcEditor.py:1955
-#: flatcamEditors/FlatCAMGrbEditor.py:2806
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:86
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:234
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:122
+#: AppEditors/FlatCAMExcEditor.py:1740 AppEditors/FlatCAMExcEditor.py:1955
+#: AppEditors/FlatCAMGrbEditor.py:2804
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:86
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:234
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:122
msgid ""
"Direction on which the linear array is oriented:\n"
"- 'X' - horizontal axis \n"
@@ -3263,77 +1259,65 @@ msgstr ""
"- 'Y' - axe vertical ou\n"
"- 'Angle' - un angle personnalisé pour l'inclinaison du tableau"
-#: flatcamEditors/FlatCAMExcEditor.py:1747
-#: flatcamEditors/FlatCAMExcEditor.py:1869
-#: flatcamEditors/FlatCAMExcEditor.py:1962
-#: flatcamEditors/FlatCAMGrbEditor.py:2813
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:92
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:187
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:240
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:128
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:208
-#: flatcamTools/ToolFilm.py:256
+#: AppEditors/FlatCAMExcEditor.py:1747 AppEditors/FlatCAMExcEditor.py:1869
+#: AppEditors/FlatCAMExcEditor.py:1962 AppEditors/FlatCAMGrbEditor.py:2811
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:92
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:187
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:240
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:128
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:208
+#: AppTools/ToolFilm.py:239
msgid "X"
msgstr "X"
-#: flatcamEditors/FlatCAMExcEditor.py:1748
-#: flatcamEditors/FlatCAMExcEditor.py:1870
-#: flatcamEditors/FlatCAMExcEditor.py:1963
-#: flatcamEditors/FlatCAMGrbEditor.py:2814
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:93
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:188
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:241
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:129
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:209
-#: flatcamTools/ToolFilm.py:257
+#: AppEditors/FlatCAMExcEditor.py:1748 AppEditors/FlatCAMExcEditor.py:1870
+#: AppEditors/FlatCAMExcEditor.py:1963 AppEditors/FlatCAMGrbEditor.py:2812
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:93
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:188
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:241
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:129
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:209
+#: AppTools/ToolFilm.py:240
msgid "Y"
msgstr "Y"
-#: flatcamEditors/FlatCAMExcEditor.py:1749
-#: flatcamEditors/FlatCAMExcEditor.py:1766
-#: flatcamEditors/FlatCAMExcEditor.py:1800
-#: flatcamEditors/FlatCAMExcEditor.py:1871
-#: flatcamEditors/FlatCAMExcEditor.py:1875
-#: flatcamEditors/FlatCAMExcEditor.py:1964
-#: flatcamEditors/FlatCAMExcEditor.py:1982
-#: flatcamEditors/FlatCAMExcEditor.py:2016
-#: flatcamEditors/FlatCAMGrbEditor.py:2815
-#: flatcamEditors/FlatCAMGrbEditor.py:2832
-#: flatcamEditors/FlatCAMGrbEditor.py:2868
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:94
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:113
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:189
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:194
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:242
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:263
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:130
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:148
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:53
-#: flatcamTools/ToolDistance.py:120 flatcamTools/ToolDistanceMin.py:69
-#: flatcamTools/ToolTransform.py:60
+#: AppEditors/FlatCAMExcEditor.py:1749 AppEditors/FlatCAMExcEditor.py:1766
+#: AppEditors/FlatCAMExcEditor.py:1800 AppEditors/FlatCAMExcEditor.py:1871
+#: AppEditors/FlatCAMExcEditor.py:1875 AppEditors/FlatCAMExcEditor.py:1964
+#: AppEditors/FlatCAMExcEditor.py:1982 AppEditors/FlatCAMExcEditor.py:2016
+#: AppEditors/FlatCAMGrbEditor.py:2813 AppEditors/FlatCAMGrbEditor.py:2830
+#: AppEditors/FlatCAMGrbEditor.py:2866
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:94
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:113
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:189
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:194
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:242
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:263
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:130
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:148
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:53
+#: AppTools/ToolDistance.py:120 AppTools/ToolDistanceMin.py:68
+#: AppTools/ToolTransform.py:60
msgid "Angle"
msgstr "Angle"
-#: flatcamEditors/FlatCAMExcEditor.py:1753
-#: flatcamEditors/FlatCAMExcEditor.py:1968
-#: flatcamEditors/FlatCAMGrbEditor.py:2819
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:100
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:248
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:136
+#: AppEditors/FlatCAMExcEditor.py:1753 AppEditors/FlatCAMExcEditor.py:1968
+#: AppEditors/FlatCAMGrbEditor.py:2817
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:100
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:248
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:136
msgid "Pitch"
msgstr "Pas"
-#: flatcamEditors/FlatCAMExcEditor.py:1755
-#: flatcamEditors/FlatCAMExcEditor.py:1970
-#: flatcamEditors/FlatCAMGrbEditor.py:2821
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:102
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:250
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:138
+#: AppEditors/FlatCAMExcEditor.py:1755 AppEditors/FlatCAMExcEditor.py:1970
+#: AppEditors/FlatCAMGrbEditor.py:2819
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:102
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:250
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:138
msgid "Pitch = Distance between elements of the array."
msgstr "Pas = Distance entre les éléments du tableau."
-#: flatcamEditors/FlatCAMExcEditor.py:1768
-#: flatcamEditors/FlatCAMExcEditor.py:1984
+#: AppEditors/FlatCAMExcEditor.py:1768 AppEditors/FlatCAMExcEditor.py:1984
msgid ""
"Angle at which the linear array is placed.\n"
"The precision is of max 2 decimals.\n"
@@ -3345,9 +1329,8 @@ msgstr ""
"La valeur minimale est: -360 degrés.\n"
"La valeur maximale est: 360,00 degrés."
-#: flatcamEditors/FlatCAMExcEditor.py:1789
-#: flatcamEditors/FlatCAMExcEditor.py:2005
-#: flatcamEditors/FlatCAMGrbEditor.py:2855
+#: AppEditors/FlatCAMExcEditor.py:1789 AppEditors/FlatCAMExcEditor.py:2005
+#: AppEditors/FlatCAMGrbEditor.py:2853
msgid ""
"Direction for circular array.Can be CW = clockwise or CCW = counter "
"clockwise."
@@ -3355,45 +1338,42 @@ msgstr ""
"Direction pour tableau circulaire. Peut être CW = sens horaire ou CCW = sens "
"antihoraire."
-#: flatcamEditors/FlatCAMExcEditor.py:1796
-#: flatcamEditors/FlatCAMExcEditor.py:2012
-#: flatcamEditors/FlatCAMGrbEditor.py:2863
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:129
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:136
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:286
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:142
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:170
+#: AppEditors/FlatCAMExcEditor.py:1796 AppEditors/FlatCAMExcEditor.py:2012
+#: AppEditors/FlatCAMGrbEditor.py:2861
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:129
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:136
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:286
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:142
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:170
msgid "CW"
msgstr "CW"
-#: flatcamEditors/FlatCAMExcEditor.py:1797
-#: flatcamEditors/FlatCAMExcEditor.py:2013
-#: flatcamEditors/FlatCAMGrbEditor.py:2864
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:130
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:137
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:287
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:143
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:171
+#: AppEditors/FlatCAMExcEditor.py:1797 AppEditors/FlatCAMExcEditor.py:2013
+#: AppEditors/FlatCAMGrbEditor.py:2862
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:130
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:137
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:287
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:143
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:171
msgid "CCW"
msgstr "CCW"
-#: flatcamEditors/FlatCAMExcEditor.py:1801
-#: flatcamEditors/FlatCAMExcEditor.py:2017
-#: flatcamEditors/FlatCAMGrbEditor.py:2870
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:115
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:145
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:265
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:295
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:150
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:179
+#: AppEditors/FlatCAMExcEditor.py:1801 AppEditors/FlatCAMExcEditor.py:2017
+#: AppEditors/FlatCAMGrbEditor.py:2868
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:115
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:145
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:265
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:295
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:150
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:179
msgid "Angle at which each element in circular array is placed."
msgstr "Angle auquel chaque élément du tableau circulaire est placé."
-#: flatcamEditors/FlatCAMExcEditor.py:1835
+#: AppEditors/FlatCAMExcEditor.py:1835
msgid "Slot Parameters"
msgstr "Paramètres de Fente"
-#: flatcamEditors/FlatCAMExcEditor.py:1837
+#: AppEditors/FlatCAMExcEditor.py:1837
msgid ""
"Parameters for adding a slot (hole with oval shape)\n"
"either single or as an part of an array."
@@ -3401,19 +1381,20 @@ msgstr ""
"Paramètres pour l'ajout d'une fente (trou de forme ovale)\n"
"soit seul, soit faisant partie d'un tableau."
-#: flatcamEditors/FlatCAMExcEditor.py:1846
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162
-#: flatcamTools/ToolProperties.py:559
+#: AppEditors/FlatCAMExcEditor.py:1846
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:56
+#: AppTools/ToolCorners.py:127 AppTools/ToolProperties.py:559
msgid "Length"
msgstr "Longueur"
-#: flatcamEditors/FlatCAMExcEditor.py:1848
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:164
+#: AppEditors/FlatCAMExcEditor.py:1848
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:164
msgid "Length = The length of the slot."
msgstr "Longueur = La longueur de la fente."
-#: flatcamEditors/FlatCAMExcEditor.py:1862
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:180
+#: AppEditors/FlatCAMExcEditor.py:1862
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:180
msgid ""
"Direction on which the slot is oriented:\n"
"- 'X' - horizontal axis \n"
@@ -3425,7 +1406,7 @@ msgstr ""
"- 'Y' - axe vertical ou\n"
"- 'Angle' - un angle personnalisé pour l'inclinaison de la fente"
-#: flatcamEditors/FlatCAMExcEditor.py:1877
+#: AppEditors/FlatCAMExcEditor.py:1877
msgid ""
"Angle at which the slot is placed.\n"
"The precision is of max 2 decimals.\n"
@@ -3437,15 +1418,15 @@ msgstr ""
"La valeur minimale est: -360 degrés.\n"
"La valeur maximale est: 360,00 degrés."
-#: flatcamEditors/FlatCAMExcEditor.py:1910
+#: AppEditors/FlatCAMExcEditor.py:1910
msgid "Slot Array Parameters"
msgstr "Param. de la Matrice de Fentes"
-#: flatcamEditors/FlatCAMExcEditor.py:1912
+#: AppEditors/FlatCAMExcEditor.py:1912
msgid "Parameters for the array of slots (linear or circular array)"
msgstr "Paramètres pour la Matrice de Fente (matrice linéaire ou circulaire)"
-#: flatcamEditors/FlatCAMExcEditor.py:1921
+#: AppEditors/FlatCAMExcEditor.py:1921
msgid ""
"Select the type of slot array to create.\n"
"It can be Linear X(Y) or Circular"
@@ -3453,43 +1434,37 @@ msgstr ""
"Sélectionnez le type de matrice à percer.\n"
"Il peut être linéaire X (Y) ou circulaire"
-#: flatcamEditors/FlatCAMExcEditor.py:1933
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:219
+#: AppEditors/FlatCAMExcEditor.py:1933
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:219
msgid "Nr of slots"
msgstr "Nb de Fentes"
-#: flatcamEditors/FlatCAMExcEditor.py:1934
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:221
+#: AppEditors/FlatCAMExcEditor.py:1934
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:221
msgid "Specify how many slots to be in the array."
msgstr "Spécifiez le nombre de Fente dans le Tableau."
-#: flatcamEditors/FlatCAMExcEditor.py:2452
-#: flatcamObjects/FlatCAMExcellon.py:410
+#: AppEditors/FlatCAMExcEditor.py:2452 AppObjects/FlatCAMExcellon.py:423
msgid "Total Drills"
msgstr "Total Forage"
-#: flatcamEditors/FlatCAMExcEditor.py:2484
-#: flatcamObjects/FlatCAMExcellon.py:441
+#: AppEditors/FlatCAMExcEditor.py:2484 AppObjects/FlatCAMExcellon.py:454
msgid "Total Slots"
msgstr "Total de Fentes"
-#: flatcamEditors/FlatCAMExcEditor.py:2559
-#: flatcamEditors/FlatCAMGeoEditor.py:1076
-#: flatcamEditors/FlatCAMGeoEditor.py:1117
-#: flatcamEditors/FlatCAMGeoEditor.py:1145
-#: flatcamEditors/FlatCAMGeoEditor.py:1173
-#: flatcamEditors/FlatCAMGeoEditor.py:1217
-#: flatcamEditors/FlatCAMGeoEditor.py:1252
-#: flatcamEditors/FlatCAMGeoEditor.py:1280
-#: flatcamObjects/FlatCAMGeometry.py:599 flatcamObjects/FlatCAMGeometry.py:1033
-#: flatcamObjects/FlatCAMGeometry.py:1780
-#: flatcamObjects/FlatCAMGeometry.py:2424 flatcamTools/ToolNCC.py:1498
-#: flatcamTools/ToolPaint.py:1249 flatcamTools/ToolPaint.py:1420
-#: flatcamTools/ToolSolderPaste.py:883 flatcamTools/ToolSolderPaste.py:956
+#: AppEditors/FlatCAMExcEditor.py:2559 AppEditors/FlatCAMGeoEditor.py:1075
+#: AppEditors/FlatCAMGeoEditor.py:1116 AppEditors/FlatCAMGeoEditor.py:1144
+#: AppEditors/FlatCAMGeoEditor.py:1172 AppEditors/FlatCAMGeoEditor.py:1216
+#: AppEditors/FlatCAMGeoEditor.py:1251 AppEditors/FlatCAMGeoEditor.py:1279
+#: AppObjects/FlatCAMGeometry.py:656 AppObjects/FlatCAMGeometry.py:1090
+#: AppObjects/FlatCAMGeometry.py:1830 AppObjects/FlatCAMGeometry.py:2480
+#: AppTools/ToolNCC.py:1498 AppTools/ToolPaint.py:1248
+#: AppTools/ToolPaint.py:1419 AppTools/ToolSolderPaste.py:883
+#: AppTools/ToolSolderPaste.py:956
msgid "Wrong value format entered, use a number."
msgstr "Mauvais format de valeur entré, utilisez un nombre."
-#: flatcamEditors/FlatCAMExcEditor.py:2570
+#: AppEditors/FlatCAMExcEditor.py:2570
msgid ""
"Tool already in the original or actual tool list.\n"
"Save and reedit Excellon if you need to add this tool. "
@@ -3497,63 +1472,73 @@ msgstr ""
"Outil déjà dans la liste d'outils d'origine ou réelle.\n"
"Enregistrez et rééditez Excellon si vous devez ajouter cet outil. "
-#: flatcamEditors/FlatCAMExcEditor.py:2579 flatcamGUI/FlatCAMGUI.py:4071
+#: AppEditors/FlatCAMExcEditor.py:2579 AppGUI/MainGUI.py:3318
msgid "Added new tool with dia"
msgstr "Ajout d'un nouvel outil avec dia"
-#: flatcamEditors/FlatCAMExcEditor.py:2612
+#: AppEditors/FlatCAMExcEditor.py:2612
msgid "Select a tool in Tool Table"
msgstr "Sélectionner un outil dans la table d'outils"
-#: flatcamEditors/FlatCAMExcEditor.py:2642
+#: AppEditors/FlatCAMExcEditor.py:2642
msgid "Deleted tool with diameter"
msgstr "Outil supprimé avec diamètre"
-#: flatcamEditors/FlatCAMExcEditor.py:2790
+#: AppEditors/FlatCAMExcEditor.py:2790
msgid "Done. Tool edit completed."
msgstr "Terminé. L'édition de l'outil est terminée."
-#: flatcamEditors/FlatCAMExcEditor.py:3352
+#: AppEditors/FlatCAMExcEditor.py:3327
msgid "There are no Tools definitions in the file. Aborting Excellon creation."
msgstr ""
"Il n'y a pas de définition d'outils dans le fichier. Abandon de la création "
"Excellon."
-#: flatcamEditors/FlatCAMExcEditor.py:3356
+#: AppEditors/FlatCAMExcEditor.py:3331
msgid "An internal error has ocurred. See Shell.\n"
msgstr "Une erreur interne s'est produite. Voir Shell.\n"
-#: flatcamEditors/FlatCAMExcEditor.py:3361
+#: AppEditors/FlatCAMExcEditor.py:3336
msgid "Creating Excellon."
msgstr "Créer Excellon."
-#: flatcamEditors/FlatCAMExcEditor.py:3373
+#: AppEditors/FlatCAMExcEditor.py:3348
msgid "Excellon editing finished."
msgstr "Excellon édition terminée."
-#: flatcamEditors/FlatCAMExcEditor.py:3390
+#: AppEditors/FlatCAMExcEditor.py:3365
msgid "Cancelled. There is no Tool/Drill selected"
msgstr "Annulé. Aucun Outil/Foret sélectionné"
-#: flatcamEditors/FlatCAMExcEditor.py:4003
+#: AppEditors/FlatCAMExcEditor.py:3599 AppEditors/FlatCAMExcEditor.py:3607
+#: AppEditors/FlatCAMGeoEditor.py:4343 AppEditors/FlatCAMGeoEditor.py:4357
+#: AppEditors/FlatCAMGrbEditor.py:1085 AppEditors/FlatCAMGrbEditor.py:1202
+#: AppEditors/FlatCAMGrbEditor.py:1488 AppEditors/FlatCAMGrbEditor.py:1757
+#: AppEditors/FlatCAMGrbEditor.py:4595 AppEditors/FlatCAMGrbEditor.py:4610
+#: AppGUI/MainGUI.py:2671 AppGUI/MainGUI.py:2683
+#: AppTools/ToolAlignObjects.py:393 AppTools/ToolAlignObjects.py:415
+#: App_Main.py:4649 App_Main.py:4803
+msgid "Done."
+msgstr "Terminé."
+
+#: AppEditors/FlatCAMExcEditor.py:3982
msgid "Done. Drill(s) deleted."
msgstr "Terminé. Percer des trous supprimés."
-#: flatcamEditors/FlatCAMExcEditor.py:4076
-#: flatcamEditors/FlatCAMExcEditor.py:4086
-#: flatcamEditors/FlatCAMGrbEditor.py:5063
+#: AppEditors/FlatCAMExcEditor.py:4055 AppEditors/FlatCAMExcEditor.py:4065
+#: AppEditors/FlatCAMGrbEditor.py:5041
msgid "Click on the circular array Center position"
msgstr "Cliquez sur le tableau circulaire Position centrale"
-#: flatcamEditors/FlatCAMGeoEditor.py:85
+#: AppEditors/FlatCAMGeoEditor.py:84
msgid "Buffer distance:"
msgstr "Distance tampon:"
-#: flatcamEditors/FlatCAMGeoEditor.py:86
+#: AppEditors/FlatCAMGeoEditor.py:85
msgid "Buffer corner:"
msgstr "Coin tampon:"
-#: flatcamEditors/FlatCAMGeoEditor.py:88
+#: AppEditors/FlatCAMGeoEditor.py:87
msgid ""
"There are 3 types of corners:\n"
" - 'Round': the corner is rounded for exterior buffer.\n"
@@ -3567,94 +1552,88 @@ msgstr ""
" - \"Biseauté:\" le coin est une ligne qui relie directement les "
"fonctionnalités réunies dans le coin"
-#: flatcamEditors/FlatCAMGeoEditor.py:94
-#: flatcamEditors/FlatCAMGrbEditor.py:2631
+#: AppEditors/FlatCAMGeoEditor.py:93 AppEditors/FlatCAMGrbEditor.py:2629
msgid "Round"
msgstr "Rond"
-#: flatcamEditors/FlatCAMGeoEditor.py:95
-#: flatcamEditors/FlatCAMGrbEditor.py:2632 flatcamGUI/ObjectUI.py:2073
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:217
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:68
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:175
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:68
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:177
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:143
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:291
-#: flatcamTools/ToolExtractDrills.py:94 flatcamTools/ToolExtractDrills.py:227
-#: flatcamTools/ToolNCC.py:583 flatcamTools/ToolPaint.py:527
-#: flatcamTools/ToolPunchGerber.py:105 flatcamTools/ToolPunchGerber.py:255
-#: flatcamTools/ToolQRCode.py:198
+#: AppEditors/FlatCAMGeoEditor.py:94 AppEditors/FlatCAMGrbEditor.py:2630
+#: AppGUI/ObjectUI.py:1370 AppGUI/ObjectUI.py:2204
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:217
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:68
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:175
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:68
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:177
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:143
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:291
+#: AppTools/ToolExtractDrills.py:94 AppTools/ToolExtractDrills.py:227
+#: AppTools/ToolNCC.py:583 AppTools/ToolPaint.py:526
+#: AppTools/ToolPunchGerber.py:105 AppTools/ToolPunchGerber.py:255
+#: AppTools/ToolQRCode.py:198
msgid "Square"
msgstr "Carré"
-#: flatcamEditors/FlatCAMGeoEditor.py:96
-#: flatcamEditors/FlatCAMGrbEditor.py:2633
+#: AppEditors/FlatCAMGeoEditor.py:95 AppEditors/FlatCAMGrbEditor.py:2631
msgid "Beveled"
msgstr "Biseauté"
-#: flatcamEditors/FlatCAMGeoEditor.py:103
+#: AppEditors/FlatCAMGeoEditor.py:102
msgid "Buffer Interior"
msgstr "Tampon Intérieur"
-#: flatcamEditors/FlatCAMGeoEditor.py:105
+#: AppEditors/FlatCAMGeoEditor.py:104
msgid "Buffer Exterior"
msgstr "Tampon Extérieur"
-#: flatcamEditors/FlatCAMGeoEditor.py:111
+#: AppEditors/FlatCAMGeoEditor.py:110
msgid "Full Buffer"
msgstr "Plein tampon"
-#: flatcamEditors/FlatCAMGeoEditor.py:132
-#: flatcamEditors/FlatCAMGeoEditor.py:3017 flatcamGUI/FlatCAMGUI.py:1928
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:190
+#: AppEditors/FlatCAMGeoEditor.py:131 AppEditors/FlatCAMGeoEditor.py:3016
+#: AppGUI/MainGUI.py:4220
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:190
msgid "Buffer Tool"
msgstr "Outil Tampon"
-#: flatcamEditors/FlatCAMGeoEditor.py:144
-#: flatcamEditors/FlatCAMGeoEditor.py:161
-#: flatcamEditors/FlatCAMGeoEditor.py:178
-#: flatcamEditors/FlatCAMGeoEditor.py:3036
-#: flatcamEditors/FlatCAMGeoEditor.py:3064
-#: flatcamEditors/FlatCAMGeoEditor.py:3092
-#: flatcamEditors/FlatCAMGrbEditor.py:5116
+#: AppEditors/FlatCAMGeoEditor.py:143 AppEditors/FlatCAMGeoEditor.py:160
+#: AppEditors/FlatCAMGeoEditor.py:177 AppEditors/FlatCAMGeoEditor.py:3035
+#: AppEditors/FlatCAMGeoEditor.py:3063 AppEditors/FlatCAMGeoEditor.py:3091
+#: AppEditors/FlatCAMGrbEditor.py:5094
msgid "Buffer distance value is missing or wrong format. Add it and retry."
msgstr ""
"La valeur de la distance tampon est un format manquant ou incorrect. Ajoutez-"
"le et réessayez."
-#: flatcamEditors/FlatCAMGeoEditor.py:242
+#: AppEditors/FlatCAMGeoEditor.py:241
msgid "Font"
msgstr "Police"
-#: flatcamEditors/FlatCAMGeoEditor.py:323 flatcamGUI/FlatCAMGUI.py:2208
+#: AppEditors/FlatCAMGeoEditor.py:322 AppGUI/MainGUI.py:1411
msgid "Text"
msgstr "Texte"
-#: flatcamEditors/FlatCAMGeoEditor.py:349
+#: AppEditors/FlatCAMGeoEditor.py:348
msgid "Text Tool"
msgstr "Outil Texte"
-#: flatcamEditors/FlatCAMGeoEditor.py:405 flatcamGUI/FlatCAMGUI.py:511
-#: flatcamGUI/FlatCAMGUI.py:1158 flatcamGUI/ObjectUI.py:818
-#: flatcamGUI/ObjectUI.py:1662 flatcamObjects/FlatCAMExcellon.py:742
-#: flatcamObjects/FlatCAMExcellon.py:1084 flatcamObjects/FlatCAMGeometry.py:759
-#: flatcamTools/ToolNCC.py:331 flatcamTools/ToolNCC.py:797
-#: flatcamTools/ToolPaint.py:314 flatcamTools/ToolPaint.py:767
+#: AppEditors/FlatCAMGeoEditor.py:404 AppGUI/MainGUI.py:513
+#: AppGUI/MainGUI.py:1158 AppGUI/ObjectUI.py:818 AppGUI/ObjectUI.py:1764
+#: AppObjects/FlatCAMExcellon.py:821 AppObjects/FlatCAMExcellon.py:1163
+#: AppObjects/FlatCAMGeometry.py:816 AppTools/ToolNCC.py:331
+#: AppTools/ToolNCC.py:797 AppTools/ToolPaint.py:313 AppTools/ToolPaint.py:766
msgid "Tool"
msgstr "Outil"
-#: flatcamEditors/FlatCAMGeoEditor.py:439 flatcamGUI/ObjectUI.py:364
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:43
+#: AppEditors/FlatCAMGeoEditor.py:438 AppGUI/ObjectUI.py:364
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:43
msgid "Tool dia"
-msgstr "Outil dia"
+msgstr "Diam Outil"
-#: flatcamEditors/FlatCAMGeoEditor.py:441
+#: AppEditors/FlatCAMGeoEditor.py:440
msgid "Diameter of the tool to be used in the operation."
msgstr "Diamètre de l'outil à utiliser dans l'opération."
-#: flatcamEditors/FlatCAMGeoEditor.py:487
+#: AppEditors/FlatCAMGeoEditor.py:486
msgid ""
"Algorithm to paint the polygons:\n"
"- Standard: Fixed step inwards.\n"
@@ -3666,95 +1645,82 @@ msgstr ""
"- À base de graines: à l'extérieur des graines.\n"
"- Ligne: lignes parallèles."
-#: flatcamEditors/FlatCAMGeoEditor.py:506
+#: AppEditors/FlatCAMGeoEditor.py:505
msgid "Connect:"
msgstr "Relier:"
-#: flatcamEditors/FlatCAMGeoEditor.py:516
+#: AppEditors/FlatCAMGeoEditor.py:515
msgid "Contour:"
msgstr "Contour:"
-#: flatcamEditors/FlatCAMGeoEditor.py:529 flatcamGUI/FlatCAMGUI.py:2212
+#: AppEditors/FlatCAMGeoEditor.py:528 AppGUI/MainGUI.py:1415
msgid "Paint"
msgstr "Peindre"
-#: flatcamEditors/FlatCAMGeoEditor.py:547 flatcamGUI/FlatCAMGUI.py:924
-#: flatcamGUI/FlatCAMGUI.py:2628 flatcamGUI/ObjectUI.py:2139
-#: flatcamTools/ToolPaint.py:43 flatcamTools/ToolPaint.py:738
+#: AppEditors/FlatCAMGeoEditor.py:546 AppGUI/MainGUI.py:917
+#: AppGUI/MainGUI.py:1910 AppGUI/ObjectUI.py:2269 AppTools/ToolPaint.py:42
+#: AppTools/ToolPaint.py:737
msgid "Paint Tool"
msgstr "Outil de Peinture"
-#: flatcamEditors/FlatCAMGeoEditor.py:583
-#: flatcamEditors/FlatCAMGeoEditor.py:1055
-#: flatcamEditors/FlatCAMGeoEditor.py:3024
-#: flatcamEditors/FlatCAMGeoEditor.py:3052
-#: flatcamEditors/FlatCAMGeoEditor.py:3080
-#: flatcamEditors/FlatCAMGeoEditor.py:4502
-#: flatcamEditors/FlatCAMGrbEditor.py:5767
+#: AppEditors/FlatCAMGeoEditor.py:582 AppEditors/FlatCAMGeoEditor.py:1054
+#: AppEditors/FlatCAMGeoEditor.py:3023 AppEditors/FlatCAMGeoEditor.py:3051
+#: AppEditors/FlatCAMGeoEditor.py:3079 AppEditors/FlatCAMGeoEditor.py:4496
+#: AppEditors/FlatCAMGrbEditor.py:5745
msgid "Cancelled. No shape selected."
msgstr "Annulé. Aucune forme sélectionnée."
-#: flatcamEditors/FlatCAMGeoEditor.py:596
-#: flatcamEditors/FlatCAMGeoEditor.py:3042
-#: flatcamEditors/FlatCAMGeoEditor.py:3070
-#: flatcamEditors/FlatCAMGeoEditor.py:3098
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:59
-#: flatcamTools/ToolProperties.py:117 flatcamTools/ToolProperties.py:162
+#: AppEditors/FlatCAMGeoEditor.py:595 AppEditors/FlatCAMGeoEditor.py:3041
+#: AppEditors/FlatCAMGeoEditor.py:3069 AppEditors/FlatCAMGeoEditor.py:3097
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:59
+#: AppTools/ToolProperties.py:117 AppTools/ToolProperties.py:162
msgid "Tools"
msgstr "Outils"
-#: flatcamEditors/FlatCAMGeoEditor.py:607
-#: flatcamEditors/FlatCAMGeoEditor.py:991
-#: flatcamEditors/FlatCAMGrbEditor.py:5306
-#: flatcamEditors/FlatCAMGrbEditor.py:5703 flatcamGUI/FlatCAMGUI.py:945
-#: flatcamGUI/FlatCAMGUI.py:2649 flatcamTools/ToolTransform.py:460
+#: AppEditors/FlatCAMGeoEditor.py:606 AppEditors/FlatCAMGeoEditor.py:990
+#: AppEditors/FlatCAMGrbEditor.py:5284 AppEditors/FlatCAMGrbEditor.py:5681
+#: AppGUI/MainGUI.py:938 AppGUI/MainGUI.py:1931 AppTools/ToolTransform.py:460
msgid "Transform Tool"
msgstr "Outil de Transformation"
-#: flatcamEditors/FlatCAMGeoEditor.py:608
-#: flatcamEditors/FlatCAMGeoEditor.py:673
-#: flatcamEditors/FlatCAMGrbEditor.py:5307
-#: flatcamEditors/FlatCAMGrbEditor.py:5372
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:45
-#: flatcamTools/ToolTransform.py:24 flatcamTools/ToolTransform.py:466
+#: AppEditors/FlatCAMGeoEditor.py:607 AppEditors/FlatCAMGeoEditor.py:672
+#: AppEditors/FlatCAMGrbEditor.py:5285 AppEditors/FlatCAMGrbEditor.py:5350
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:45
+#: AppTools/ToolTransform.py:24 AppTools/ToolTransform.py:466
msgid "Rotate"
msgstr "Tourner"
-#: flatcamEditors/FlatCAMGeoEditor.py:609
-#: flatcamEditors/FlatCAMGrbEditor.py:5308 flatcamTools/ToolTransform.py:25
+#: AppEditors/FlatCAMGeoEditor.py:608 AppEditors/FlatCAMGrbEditor.py:5286
+#: AppTools/ToolTransform.py:25
msgid "Skew/Shear"
msgstr "Inclinaison/Cisaillement"
-#: flatcamEditors/FlatCAMGeoEditor.py:610
-#: flatcamEditors/FlatCAMGrbEditor.py:2680
-#: flatcamEditors/FlatCAMGrbEditor.py:5309 flatcamGUI/FlatCAMGUI.py:1063
-#: flatcamGUI/FlatCAMGUI.py:2140 flatcamGUI/FlatCAMGUI.py:2255
-#: flatcamGUI/FlatCAMGUI.py:2767 flatcamGUI/ObjectUI.py:125
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:95
-#: flatcamTools/ToolTransform.py:26
+#: AppEditors/FlatCAMGeoEditor.py:609 AppEditors/FlatCAMGrbEditor.py:2678
+#: AppEditors/FlatCAMGrbEditor.py:5287 AppGUI/MainGUI.py:1060
+#: AppGUI/MainGUI.py:1458 AppGUI/MainGUI.py:2053 AppGUI/MainGUI.py:4432
+#: AppGUI/ObjectUI.py:125
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:95
+#: AppTools/ToolTransform.py:26
msgid "Scale"
msgstr "Mise à l'échelle"
-#: flatcamEditors/FlatCAMGeoEditor.py:611
-#: flatcamEditors/FlatCAMGrbEditor.py:5310 flatcamTools/ToolTransform.py:27
+#: AppEditors/FlatCAMGeoEditor.py:610 AppEditors/FlatCAMGrbEditor.py:5288
+#: AppTools/ToolTransform.py:27
msgid "Mirror (Flip)"
msgstr "Miroir (flip)"
-#: flatcamEditors/FlatCAMGeoEditor.py:625
-#: flatcamEditors/FlatCAMGrbEditor.py:5324 flatcamGUI/FlatCAMGUI.py:856
-#: flatcamGUI/FlatCAMGUI.py:2564
+#: AppEditors/FlatCAMGeoEditor.py:624 AppEditors/FlatCAMGrbEditor.py:5302
+#: AppGUI/MainGUI.py:849 AppGUI/MainGUI.py:1844
msgid "Editor"
msgstr "Éditeur"
-#: flatcamEditors/FlatCAMGeoEditor.py:657
-#: flatcamEditors/FlatCAMGrbEditor.py:5356
+#: AppEditors/FlatCAMGeoEditor.py:656 AppEditors/FlatCAMGrbEditor.py:5334
msgid "Angle:"
msgstr "Angle:"
-#: flatcamEditors/FlatCAMGeoEditor.py:659
-#: flatcamEditors/FlatCAMGrbEditor.py:5358
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:55
-#: flatcamTools/ToolTransform.py:62
+#: AppEditors/FlatCAMGeoEditor.py:658 AppEditors/FlatCAMGrbEditor.py:5336
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:55
+#: AppTools/ToolTransform.py:62
msgid ""
"Angle for Rotation action, in degrees.\n"
"Float number between -360 and 359.\n"
@@ -3766,8 +1732,7 @@ msgstr ""
"Nombres positifs pour le mouvement en CW.\n"
"Nombres négatifs pour le mouvement CCW."
-#: flatcamEditors/FlatCAMGeoEditor.py:675
-#: flatcamEditors/FlatCAMGrbEditor.py:5374
+#: AppEditors/FlatCAMGeoEditor.py:674 AppEditors/FlatCAMGrbEditor.py:5352
msgid ""
"Rotate the selected shape(s).\n"
"The point of reference is the middle of\n"
@@ -3777,18 +1742,15 @@ msgstr ""
"Le point de référence est le milieu de\n"
"le cadre de sélection pour toutes les formes sélectionnées."
-#: flatcamEditors/FlatCAMGeoEditor.py:698
-#: flatcamEditors/FlatCAMGrbEditor.py:5397
+#: AppEditors/FlatCAMGeoEditor.py:697 AppEditors/FlatCAMGrbEditor.py:5375
msgid "Angle X:"
msgstr "Angle X:"
-#: flatcamEditors/FlatCAMGeoEditor.py:700
-#: flatcamEditors/FlatCAMGeoEditor.py:720
-#: flatcamEditors/FlatCAMGrbEditor.py:5399
-#: flatcamEditors/FlatCAMGrbEditor.py:5419
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:74
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:88
-#: flatcamTools/ToolCalibration.py:505 flatcamTools/ToolCalibration.py:518
+#: AppEditors/FlatCAMGeoEditor.py:699 AppEditors/FlatCAMGeoEditor.py:719
+#: AppEditors/FlatCAMGrbEditor.py:5377 AppEditors/FlatCAMGrbEditor.py:5397
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:74
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:88
+#: AppTools/ToolCalibration.py:505 AppTools/ToolCalibration.py:518
msgid ""
"Angle for Skew action, in degrees.\n"
"Float number between -360 and 359."
@@ -3796,15 +1758,13 @@ msgstr ""
"Angle pour l'action asymétrique, en degrés.\n"
"Nombre flottant entre -360 et 359."
-#: flatcamEditors/FlatCAMGeoEditor.py:711
-#: flatcamEditors/FlatCAMGrbEditor.py:5410 flatcamTools/ToolTransform.py:467
+#: AppEditors/FlatCAMGeoEditor.py:710 AppEditors/FlatCAMGrbEditor.py:5388
+#: AppTools/ToolTransform.py:467
msgid "Skew X"
-msgstr "Fausser X"
+msgstr "Inclinaison X"
-#: flatcamEditors/FlatCAMGeoEditor.py:713
-#: flatcamEditors/FlatCAMGeoEditor.py:733
-#: flatcamEditors/FlatCAMGrbEditor.py:5412
-#: flatcamEditors/FlatCAMGrbEditor.py:5432
+#: AppEditors/FlatCAMGeoEditor.py:712 AppEditors/FlatCAMGeoEditor.py:732
+#: AppEditors/FlatCAMGrbEditor.py:5390 AppEditors/FlatCAMGrbEditor.py:5410
msgid ""
"Skew/shear the selected shape(s).\n"
"The point of reference is the middle of\n"
@@ -3814,35 +1774,31 @@ msgstr ""
"Le point de référence est le milieu de\n"
"le cadre de sélection pour toutes les formes sélectionnées."
-#: flatcamEditors/FlatCAMGeoEditor.py:718
-#: flatcamEditors/FlatCAMGrbEditor.py:5417
+#: AppEditors/FlatCAMGeoEditor.py:717 AppEditors/FlatCAMGrbEditor.py:5395
msgid "Angle Y:"
msgstr "Angle Y:"
-#: flatcamEditors/FlatCAMGeoEditor.py:731
-#: flatcamEditors/FlatCAMGrbEditor.py:5430 flatcamTools/ToolTransform.py:468
+#: AppEditors/FlatCAMGeoEditor.py:730 AppEditors/FlatCAMGrbEditor.py:5408
+#: AppTools/ToolTransform.py:468
msgid "Skew Y"
-msgstr "Fausser Y"
+msgstr "Inclinaison Y"
-#: flatcamEditors/FlatCAMGeoEditor.py:759
-#: flatcamEditors/FlatCAMGrbEditor.py:5458
+#: AppEditors/FlatCAMGeoEditor.py:758 AppEditors/FlatCAMGrbEditor.py:5436
msgid "Factor X:"
msgstr "Facteur X:"
-#: flatcamEditors/FlatCAMGeoEditor.py:761
-#: flatcamEditors/FlatCAMGrbEditor.py:5460 flatcamTools/ToolCalibration.py:469
+#: AppEditors/FlatCAMGeoEditor.py:760 AppEditors/FlatCAMGrbEditor.py:5438
+#: AppTools/ToolCalibration.py:469
msgid "Factor for Scale action over X axis."
msgstr "Facteur pour l'action de mise à l'échelle sur l'axe X."
-#: flatcamEditors/FlatCAMGeoEditor.py:771
-#: flatcamEditors/FlatCAMGrbEditor.py:5470 flatcamTools/ToolTransform.py:469
+#: AppEditors/FlatCAMGeoEditor.py:770 AppEditors/FlatCAMGrbEditor.py:5448
+#: AppTools/ToolTransform.py:469
msgid "Scale X"
msgstr "Mise à l'échelle X"
-#: flatcamEditors/FlatCAMGeoEditor.py:773
-#: flatcamEditors/FlatCAMGeoEditor.py:792
-#: flatcamEditors/FlatCAMGrbEditor.py:5472
-#: flatcamEditors/FlatCAMGrbEditor.py:5491
+#: AppEditors/FlatCAMGeoEditor.py:772 AppEditors/FlatCAMGeoEditor.py:791
+#: AppEditors/FlatCAMGrbEditor.py:5450 AppEditors/FlatCAMGrbEditor.py:5469
msgid ""
"Scale the selected shape(s).\n"
"The point of reference depends on \n"
@@ -3852,30 +1808,27 @@ msgstr ""
"Le point de référence dépend de\n"
"l'état de la case à cocher référence d'échelle."
-#: flatcamEditors/FlatCAMGeoEditor.py:778
-#: flatcamEditors/FlatCAMGrbEditor.py:5477
+#: AppEditors/FlatCAMGeoEditor.py:777 AppEditors/FlatCAMGrbEditor.py:5455
msgid "Factor Y:"
msgstr "Facteur Y:"
-#: flatcamEditors/FlatCAMGeoEditor.py:780
-#: flatcamEditors/FlatCAMGrbEditor.py:5479 flatcamTools/ToolCalibration.py:481
+#: AppEditors/FlatCAMGeoEditor.py:779 AppEditors/FlatCAMGrbEditor.py:5457
+#: AppTools/ToolCalibration.py:481
msgid "Factor for Scale action over Y axis."
msgstr "Facteur de Mise à l'échelle de l'action sur l'axe des ordonnées."
-#: flatcamEditors/FlatCAMGeoEditor.py:790
-#: flatcamEditors/FlatCAMGrbEditor.py:5489 flatcamTools/ToolTransform.py:470
+#: AppEditors/FlatCAMGeoEditor.py:789 AppEditors/FlatCAMGrbEditor.py:5467
+#: AppTools/ToolTransform.py:470
msgid "Scale Y"
msgstr "Mise à l'échelle Y"
-#: flatcamEditors/FlatCAMGeoEditor.py:799
-#: flatcamEditors/FlatCAMGrbEditor.py:5498
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:124
-#: flatcamTools/ToolTransform.py:189
+#: AppEditors/FlatCAMGeoEditor.py:798 AppEditors/FlatCAMGrbEditor.py:5476
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:124
+#: AppTools/ToolTransform.py:189
msgid "Link"
msgstr "Lien"
-#: flatcamEditors/FlatCAMGeoEditor.py:801
-#: flatcamEditors/FlatCAMGrbEditor.py:5500
+#: AppEditors/FlatCAMGeoEditor.py:800 AppEditors/FlatCAMGrbEditor.py:5478
msgid ""
"Scale the selected shape(s)\n"
"using the Scale Factor X for both axis."
@@ -3883,15 +1836,13 @@ msgstr ""
"Mettre à l'échelle les formes sélectionnées\n"
"en utilisant le facteur d'échelle X pour les deux axes."
-#: flatcamEditors/FlatCAMGeoEditor.py:807
-#: flatcamEditors/FlatCAMGrbEditor.py:5506
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:132
-#: flatcamTools/ToolTransform.py:196
+#: AppEditors/FlatCAMGeoEditor.py:806 AppEditors/FlatCAMGrbEditor.py:5484
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:132
+#: AppTools/ToolTransform.py:196
msgid "Scale Reference"
msgstr "Référence d'échelle"
-#: flatcamEditors/FlatCAMGeoEditor.py:809
-#: flatcamEditors/FlatCAMGrbEditor.py:5508
+#: AppEditors/FlatCAMGeoEditor.py:808 AppEditors/FlatCAMGrbEditor.py:5486
msgid ""
"Scale the selected shape(s)\n"
"using the origin reference when checked,\n"
@@ -3903,25 +1854,21 @@ msgstr ""
"et le centre de la plus grande boîte englobante\n"
"des formes sélectionnées quand elle est décochée."
-#: flatcamEditors/FlatCAMGeoEditor.py:837
-#: flatcamEditors/FlatCAMGrbEditor.py:5537
+#: AppEditors/FlatCAMGeoEditor.py:836 AppEditors/FlatCAMGrbEditor.py:5515
msgid "Value X:"
msgstr "Valeur X:"
-#: flatcamEditors/FlatCAMGeoEditor.py:839
-#: flatcamEditors/FlatCAMGrbEditor.py:5539
+#: AppEditors/FlatCAMGeoEditor.py:838 AppEditors/FlatCAMGrbEditor.py:5517
msgid "Value for Offset action on X axis."
msgstr "Valeur pour l'action de décalage sur l'axe X."
-#: flatcamEditors/FlatCAMGeoEditor.py:849
-#: flatcamEditors/FlatCAMGrbEditor.py:5549 flatcamTools/ToolTransform.py:473
+#: AppEditors/FlatCAMGeoEditor.py:848 AppEditors/FlatCAMGrbEditor.py:5527
+#: AppTools/ToolTransform.py:473
msgid "Offset X"
msgstr "Décalage X"
-#: flatcamEditors/FlatCAMGeoEditor.py:851
-#: flatcamEditors/FlatCAMGeoEditor.py:871
-#: flatcamEditors/FlatCAMGrbEditor.py:5551
-#: flatcamEditors/FlatCAMGrbEditor.py:5571
+#: AppEditors/FlatCAMGeoEditor.py:850 AppEditors/FlatCAMGeoEditor.py:870
+#: AppEditors/FlatCAMGrbEditor.py:5529 AppEditors/FlatCAMGrbEditor.py:5549
msgid ""
"Offset the selected shape(s).\n"
"The point of reference is the middle of\n"
@@ -3931,30 +1878,26 @@ msgstr ""
"Le point de référence est le milieu de\n"
"le cadre de sélection pour toutes les formes sélectionnées.\n"
-#: flatcamEditors/FlatCAMGeoEditor.py:857
-#: flatcamEditors/FlatCAMGrbEditor.py:5557
+#: AppEditors/FlatCAMGeoEditor.py:856 AppEditors/FlatCAMGrbEditor.py:5535
msgid "Value Y:"
msgstr "Valeur Y:"
-#: flatcamEditors/FlatCAMGeoEditor.py:859
-#: flatcamEditors/FlatCAMGrbEditor.py:5559
+#: AppEditors/FlatCAMGeoEditor.py:858 AppEditors/FlatCAMGrbEditor.py:5537
msgid "Value for Offset action on Y axis."
msgstr "Valeur pour l'action de décalage sur l'axe Y."
-#: flatcamEditors/FlatCAMGeoEditor.py:869
-#: flatcamEditors/FlatCAMGrbEditor.py:5569 flatcamTools/ToolTransform.py:474
+#: AppEditors/FlatCAMGeoEditor.py:868 AppEditors/FlatCAMGrbEditor.py:5547
+#: AppTools/ToolTransform.py:474
msgid "Offset Y"
msgstr "Décalage Y"
-#: flatcamEditors/FlatCAMGeoEditor.py:900
-#: flatcamEditors/FlatCAMGrbEditor.py:5600 flatcamTools/ToolTransform.py:475
+#: AppEditors/FlatCAMGeoEditor.py:899 AppEditors/FlatCAMGrbEditor.py:5578
+#: AppTools/ToolTransform.py:475
msgid "Flip on X"
msgstr "Miroir sur X"
-#: flatcamEditors/FlatCAMGeoEditor.py:902
-#: flatcamEditors/FlatCAMGeoEditor.py:909
-#: flatcamEditors/FlatCAMGrbEditor.py:5602
-#: flatcamEditors/FlatCAMGrbEditor.py:5609
+#: AppEditors/FlatCAMGeoEditor.py:901 AppEditors/FlatCAMGeoEditor.py:908
+#: AppEditors/FlatCAMGrbEditor.py:5580 AppEditors/FlatCAMGrbEditor.py:5587
msgid ""
"Flip the selected shape(s) over the X axis.\n"
"Does not create a new shape."
@@ -3962,18 +1905,16 @@ msgstr ""
"Retournez la ou les formes sélectionnées sur l’axe X.\n"
"Ne crée pas une nouvelle forme."
-#: flatcamEditors/FlatCAMGeoEditor.py:907
-#: flatcamEditors/FlatCAMGrbEditor.py:5607 flatcamTools/ToolTransform.py:476
+#: AppEditors/FlatCAMGeoEditor.py:906 AppEditors/FlatCAMGrbEditor.py:5585
+#: AppTools/ToolTransform.py:476
msgid "Flip on Y"
msgstr "Miroir sur Y"
-#: flatcamEditors/FlatCAMGeoEditor.py:915
-#: flatcamEditors/FlatCAMGrbEditor.py:5615
+#: AppEditors/FlatCAMGeoEditor.py:914 AppEditors/FlatCAMGrbEditor.py:5593
msgid "Ref Pt"
msgstr "Point de réf"
-#: flatcamEditors/FlatCAMGeoEditor.py:917
-#: flatcamEditors/FlatCAMGrbEditor.py:5617
+#: AppEditors/FlatCAMGeoEditor.py:916 AppEditors/FlatCAMGrbEditor.py:5595
msgid ""
"Flip the selected shape(s)\n"
"around the point in Point Entry Field.\n"
@@ -3995,13 +1936,12 @@ msgstr ""
"Ou entrez les coordonnées au format (x, y) dans le champ\n"
"Pointez sur le champ Entrée et cliquez sur Basculer sur X (Y)."
-#: flatcamEditors/FlatCAMGeoEditor.py:929
-#: flatcamEditors/FlatCAMGrbEditor.py:5629
+#: AppEditors/FlatCAMGeoEditor.py:928 AppEditors/FlatCAMGrbEditor.py:5607
msgid "Point:"
msgstr "Point:"
-#: flatcamEditors/FlatCAMGeoEditor.py:931
-#: flatcamEditors/FlatCAMGrbEditor.py:5631 flatcamTools/ToolTransform.py:299
+#: AppEditors/FlatCAMGeoEditor.py:930 AppEditors/FlatCAMGrbEditor.py:5609
+#: AppTools/ToolTransform.py:299
msgid ""
"Coordinates in format (x, y) used as reference for mirroring.\n"
"The 'x' in (x, y) will be used when using Flip on X and\n"
@@ -4012,8 +1952,18 @@ msgstr ""
"Le \"x\" dans (x, y) sera utilisé lors de l'utilisation de Flip sur X et\n"
"le 'y' dans (x, y) sera utilisé lors de l'utilisation de Flip sur Y."
-#: flatcamEditors/FlatCAMGeoEditor.py:941
-#: flatcamEditors/FlatCAMGrbEditor.py:5643 flatcamTools/ToolTransform.py:309
+#: AppEditors/FlatCAMGeoEditor.py:938 AppEditors/FlatCAMGrbEditor.py:2581
+#: AppEditors/FlatCAMGrbEditor.py:5619 AppGUI/ObjectUI.py:1697
+#: AppTools/ToolDblSided.py:192 AppTools/ToolDblSided.py:425
+#: AppTools/ToolNCC.py:294 AppTools/ToolNCC.py:631 AppTools/ToolPaint.py:276
+#: AppTools/ToolPaint.py:675 AppTools/ToolSolderPaste.py:122
+#: AppTools/ToolSolderPaste.py:597 AppTools/ToolTransform.py:478
+#: App_Main.py:5593
+msgid "Add"
+msgstr "Ajouter"
+
+#: AppEditors/FlatCAMGeoEditor.py:940 AppEditors/FlatCAMGrbEditor.py:5621
+#: AppTools/ToolTransform.py:309
msgid ""
"The point coordinates can be captured by\n"
"left click on canvas together with pressing\n"
@@ -4023,358 +1973,311 @@ msgstr ""
"clic gauche sur la toile avec appui\n"
"Touche Majuscule. Puis cliquez sur le bouton Ajouter pour insérer."
-#: flatcamEditors/FlatCAMGeoEditor.py:1304
-#: flatcamEditors/FlatCAMGrbEditor.py:5951
+#: AppEditors/FlatCAMGeoEditor.py:1303 AppEditors/FlatCAMGrbEditor.py:5929
msgid "No shape selected. Please Select a shape to rotate!"
msgstr ""
"Aucune forme sélectionnée. Veuillez sélectionner une forme à faire pivoter!"
-#: flatcamEditors/FlatCAMGeoEditor.py:1307
-#: flatcamEditors/FlatCAMGrbEditor.py:5954 flatcamTools/ToolTransform.py:679
+#: AppEditors/FlatCAMGeoEditor.py:1306 AppEditors/FlatCAMGrbEditor.py:5932
+#: AppTools/ToolTransform.py:679
msgid "Appying Rotate"
msgstr "Appliquer la Rotation"
-#: flatcamEditors/FlatCAMGeoEditor.py:1333
-#: flatcamEditors/FlatCAMGrbEditor.py:5986
+#: AppEditors/FlatCAMGeoEditor.py:1332 AppEditors/FlatCAMGrbEditor.py:5964
msgid "Done. Rotate completed."
msgstr "Terminé. Rotation terminée."
-#: flatcamEditors/FlatCAMGeoEditor.py:1335
+#: AppEditors/FlatCAMGeoEditor.py:1334
msgid "Rotation action was not executed"
msgstr "L'action de rotation n'a pas été exécutée"
-#: flatcamEditors/FlatCAMGeoEditor.py:1354
-#: flatcamEditors/FlatCAMGrbEditor.py:6005
+#: AppEditors/FlatCAMGeoEditor.py:1353 AppEditors/FlatCAMGrbEditor.py:5983
msgid "No shape selected. Please Select a shape to flip!"
msgstr ""
"Aucune forme sélectionnée. Veuillez sélectionner une forme à retourner!"
-#: flatcamEditors/FlatCAMGeoEditor.py:1357
-#: flatcamEditors/FlatCAMGrbEditor.py:6008 flatcamTools/ToolTransform.py:728
+#: AppEditors/FlatCAMGeoEditor.py:1356 AppEditors/FlatCAMGrbEditor.py:5986
+#: AppTools/ToolTransform.py:728
msgid "Applying Flip"
msgstr "Appliquer Flip"
-#: flatcamEditors/FlatCAMGeoEditor.py:1386
-#: flatcamEditors/FlatCAMGrbEditor.py:6046 flatcamTools/ToolTransform.py:769
+#: AppEditors/FlatCAMGeoEditor.py:1385 AppEditors/FlatCAMGrbEditor.py:6024
+#: AppTools/ToolTransform.py:769
msgid "Flip on the Y axis done"
msgstr "Tournez sur l'axe des Y fait"
-#: flatcamEditors/FlatCAMGeoEditor.py:1390
-#: flatcamEditors/FlatCAMGrbEditor.py:6055 flatcamTools/ToolTransform.py:778
+#: AppEditors/FlatCAMGeoEditor.py:1389 AppEditors/FlatCAMGrbEditor.py:6033
+#: AppTools/ToolTransform.py:778
msgid "Flip on the X axis done"
msgstr "Tournez sur l'axe X terminé"
-#: flatcamEditors/FlatCAMGeoEditor.py:1398
+#: AppEditors/FlatCAMGeoEditor.py:1397
msgid "Flip action was not executed"
msgstr "L'action Flip n'a pas été exécutée"
-#: flatcamEditors/FlatCAMGeoEditor.py:1416
-#: flatcamEditors/FlatCAMGrbEditor.py:6075
+#: AppEditors/FlatCAMGeoEditor.py:1415 AppEditors/FlatCAMGrbEditor.py:6053
msgid "No shape selected. Please Select a shape to shear/skew!"
msgstr ""
"Aucune forme sélectionnée. Veuillez sélectionner une forme pour cisailler / "
"incliner!"
-#: flatcamEditors/FlatCAMGeoEditor.py:1419
-#: flatcamEditors/FlatCAMGrbEditor.py:6078 flatcamTools/ToolTransform.py:801
+#: AppEditors/FlatCAMGeoEditor.py:1418 AppEditors/FlatCAMGrbEditor.py:6056
+#: AppTools/ToolTransform.py:801
msgid "Applying Skew"
msgstr "Application de l'inclinaison"
-#: flatcamEditors/FlatCAMGeoEditor.py:1442
-#: flatcamEditors/FlatCAMGrbEditor.py:6112
+#: AppEditors/FlatCAMGeoEditor.py:1441 AppEditors/FlatCAMGrbEditor.py:6090
msgid "Skew on the X axis done"
msgstr "Inclinaison sur l'axe X terminée"
-#: flatcamEditors/FlatCAMGeoEditor.py:1444
-#: flatcamEditors/FlatCAMGrbEditor.py:6114
+#: AppEditors/FlatCAMGeoEditor.py:1443 AppEditors/FlatCAMGrbEditor.py:6092
msgid "Skew on the Y axis done"
msgstr "Inclinaison sur l'axe des Y faite"
-#: flatcamEditors/FlatCAMGeoEditor.py:1447
+#: AppEditors/FlatCAMGeoEditor.py:1446
msgid "Skew action was not executed"
msgstr "L'action de biais n'a pas été exécutée"
-#: flatcamEditors/FlatCAMGeoEditor.py:1469
-#: flatcamEditors/FlatCAMGrbEditor.py:6136
+#: AppEditors/FlatCAMGeoEditor.py:1468 AppEditors/FlatCAMGrbEditor.py:6114
msgid "No shape selected. Please Select a shape to scale!"
msgstr ""
"Aucune forme sélectionnée. Veuillez sélectionner une forme à mettre à "
"l'échelle!"
-#: flatcamEditors/FlatCAMGeoEditor.py:1472
-#: flatcamEditors/FlatCAMGrbEditor.py:6139 flatcamTools/ToolTransform.py:847
+#: AppEditors/FlatCAMGeoEditor.py:1471 AppEditors/FlatCAMGrbEditor.py:6117
+#: AppTools/ToolTransform.py:847
msgid "Applying Scale"
msgstr "Échelle d'application"
-#: flatcamEditors/FlatCAMGeoEditor.py:1504
-#: flatcamEditors/FlatCAMGrbEditor.py:6176
+#: AppEditors/FlatCAMGeoEditor.py:1503 AppEditors/FlatCAMGrbEditor.py:6154
msgid "Scale on the X axis done"
msgstr "Échelle terminée sur l'axe X"
-#: flatcamEditors/FlatCAMGeoEditor.py:1506
-#: flatcamEditors/FlatCAMGrbEditor.py:6178
+#: AppEditors/FlatCAMGeoEditor.py:1505 AppEditors/FlatCAMGrbEditor.py:6156
msgid "Scale on the Y axis done"
msgstr "Echelle terminée sur l'axe des Y"
-#: flatcamEditors/FlatCAMGeoEditor.py:1508
+#: AppEditors/FlatCAMGeoEditor.py:1507
msgid "Scale action was not executed"
msgstr "L'action d'échelle n'a pas été exécutée"
-#: flatcamEditors/FlatCAMGeoEditor.py:1523
-#: flatcamEditors/FlatCAMGrbEditor.py:6195
+#: AppEditors/FlatCAMGeoEditor.py:1522 AppEditors/FlatCAMGrbEditor.py:6173
msgid "No shape selected. Please Select a shape to offset!"
msgstr ""
"Aucune forme sélectionnée. Veuillez sélectionner une forme à compenser!"
-#: flatcamEditors/FlatCAMGeoEditor.py:1526
-#: flatcamEditors/FlatCAMGrbEditor.py:6198 flatcamTools/ToolTransform.py:897
+#: AppEditors/FlatCAMGeoEditor.py:1525 AppEditors/FlatCAMGrbEditor.py:6176
+#: AppTools/ToolTransform.py:897
msgid "Applying Offset"
msgstr "Appliquer un Décalage"
-#: flatcamEditors/FlatCAMGeoEditor.py:1536
-#: flatcamEditors/FlatCAMGrbEditor.py:6219
+#: AppEditors/FlatCAMGeoEditor.py:1535 AppEditors/FlatCAMGrbEditor.py:6197
msgid "Offset on the X axis done"
msgstr "Décalage sur l'axe X terminé"
-#: flatcamEditors/FlatCAMGeoEditor.py:1538
-#: flatcamEditors/FlatCAMGrbEditor.py:6221
+#: AppEditors/FlatCAMGeoEditor.py:1537 AppEditors/FlatCAMGrbEditor.py:6199
msgid "Offset on the Y axis done"
msgstr "Décalage sur l'axe Y terminé"
-#: flatcamEditors/FlatCAMGeoEditor.py:1541
+#: AppEditors/FlatCAMGeoEditor.py:1540
msgid "Offset action was not executed"
msgstr "L'action offset n'a pas été exécutée"
-#: flatcamEditors/FlatCAMGeoEditor.py:1545
-#: flatcamEditors/FlatCAMGrbEditor.py:6228
+#: AppEditors/FlatCAMGeoEditor.py:1544 AppEditors/FlatCAMGrbEditor.py:6206
msgid "Rotate ..."
msgstr "Tourner ..."
-#: flatcamEditors/FlatCAMGeoEditor.py:1546
-#: flatcamEditors/FlatCAMGeoEditor.py:1601
-#: flatcamEditors/FlatCAMGeoEditor.py:1618
-#: flatcamEditors/FlatCAMGrbEditor.py:6229
-#: flatcamEditors/FlatCAMGrbEditor.py:6278
-#: flatcamEditors/FlatCAMGrbEditor.py:6293
+#: AppEditors/FlatCAMGeoEditor.py:1545 AppEditors/FlatCAMGeoEditor.py:1600
+#: AppEditors/FlatCAMGeoEditor.py:1617 AppEditors/FlatCAMGrbEditor.py:6207
+#: AppEditors/FlatCAMGrbEditor.py:6256 AppEditors/FlatCAMGrbEditor.py:6271
msgid "Enter an Angle Value (degrees)"
msgstr "Entrer une valeur d'angle (degrés)"
-#: flatcamEditors/FlatCAMGeoEditor.py:1555
-#: flatcamEditors/FlatCAMGrbEditor.py:6237
+#: AppEditors/FlatCAMGeoEditor.py:1554 AppEditors/FlatCAMGrbEditor.py:6215
msgid "Geometry shape rotate done"
msgstr "Rotation de la forme géométrique effectuée"
-#: flatcamEditors/FlatCAMGeoEditor.py:1559
-#: flatcamEditors/FlatCAMGrbEditor.py:6240
+#: AppEditors/FlatCAMGeoEditor.py:1558 AppEditors/FlatCAMGrbEditor.py:6218
msgid "Geometry shape rotate cancelled"
msgstr "Rotation de la forme géométrique annulée"
-#: flatcamEditors/FlatCAMGeoEditor.py:1564
-#: flatcamEditors/FlatCAMGrbEditor.py:6245
+#: AppEditors/FlatCAMGeoEditor.py:1563 AppEditors/FlatCAMGrbEditor.py:6223
msgid "Offset on X axis ..."
msgstr "Décalage sur l'axe des X ..."
-#: flatcamEditors/FlatCAMGeoEditor.py:1565
-#: flatcamEditors/FlatCAMGeoEditor.py:1584
-#: flatcamEditors/FlatCAMGrbEditor.py:6246
-#: flatcamEditors/FlatCAMGrbEditor.py:6263
+#: AppEditors/FlatCAMGeoEditor.py:1564 AppEditors/FlatCAMGeoEditor.py:1583
+#: AppEditors/FlatCAMGrbEditor.py:6224 AppEditors/FlatCAMGrbEditor.py:6241
msgid "Enter a distance Value"
msgstr "Entrez une valeur de distance"
-#: flatcamEditors/FlatCAMGeoEditor.py:1574
-#: flatcamEditors/FlatCAMGrbEditor.py:6254
+#: AppEditors/FlatCAMGeoEditor.py:1573 AppEditors/FlatCAMGrbEditor.py:6232
msgid "Geometry shape offset on X axis done"
msgstr "Géométrie décalée sur l'axe des X effectuée"
-#: flatcamEditors/FlatCAMGeoEditor.py:1578
-#: flatcamEditors/FlatCAMGrbEditor.py:6257
+#: AppEditors/FlatCAMGeoEditor.py:1577 AppEditors/FlatCAMGrbEditor.py:6235
msgid "Geometry shape offset X cancelled"
msgstr "Décalage géométrique X annulé"
-#: flatcamEditors/FlatCAMGeoEditor.py:1583
-#: flatcamEditors/FlatCAMGrbEditor.py:6262
+#: AppEditors/FlatCAMGeoEditor.py:1582 AppEditors/FlatCAMGrbEditor.py:6240
msgid "Offset on Y axis ..."
msgstr "Décalage sur l'axe Y ..."
-#: flatcamEditors/FlatCAMGeoEditor.py:1593
-#: flatcamEditors/FlatCAMGrbEditor.py:6271
+#: AppEditors/FlatCAMGeoEditor.py:1592 AppEditors/FlatCAMGrbEditor.py:6249
msgid "Geometry shape offset on Y axis done"
msgstr "Géométrie décalée sur l'axe des Y effectuée"
-#: flatcamEditors/FlatCAMGeoEditor.py:1597
+#: AppEditors/FlatCAMGeoEditor.py:1596
msgid "Geometry shape offset on Y axis canceled"
msgstr "Décalage de la forme de la géométrie sur l'axe des Y"
-#: flatcamEditors/FlatCAMGeoEditor.py:1600
-#: flatcamEditors/FlatCAMGrbEditor.py:6277
+#: AppEditors/FlatCAMGeoEditor.py:1599 AppEditors/FlatCAMGrbEditor.py:6255
msgid "Skew on X axis ..."
msgstr "Skew on X axis ..."
-#: flatcamEditors/FlatCAMGeoEditor.py:1610
-#: flatcamEditors/FlatCAMGrbEditor.py:6286
+#: AppEditors/FlatCAMGeoEditor.py:1609 AppEditors/FlatCAMGrbEditor.py:6264
msgid "Geometry shape skew on X axis done"
msgstr "Forme de la géométrie inclinée sur l'axe X terminée"
-#: flatcamEditors/FlatCAMGeoEditor.py:1614
+#: AppEditors/FlatCAMGeoEditor.py:1613
msgid "Geometry shape skew on X axis canceled"
msgstr "Géométrie inclinée sur l'axe X annulée"
-#: flatcamEditors/FlatCAMGeoEditor.py:1617
-#: flatcamEditors/FlatCAMGrbEditor.py:6292
+#: AppEditors/FlatCAMGeoEditor.py:1616 AppEditors/FlatCAMGrbEditor.py:6270
msgid "Skew on Y axis ..."
msgstr "Inclinez sur l'axe Y ..."
-#: flatcamEditors/FlatCAMGeoEditor.py:1627
-#: flatcamEditors/FlatCAMGrbEditor.py:6301
+#: AppEditors/FlatCAMGeoEditor.py:1626 AppEditors/FlatCAMGrbEditor.py:6279
msgid "Geometry shape skew on Y axis done"
msgstr "Géométrie inclinée sur l'axe des Y"
-#: flatcamEditors/FlatCAMGeoEditor.py:1631
+#: AppEditors/FlatCAMGeoEditor.py:1630
msgid "Geometry shape skew on Y axis canceled"
msgstr "Géométrie inclinée sur l'axe des Y oblitérée"
-#: flatcamEditors/FlatCAMGeoEditor.py:2008
-#: flatcamEditors/FlatCAMGeoEditor.py:2079
-#: flatcamEditors/FlatCAMGrbEditor.py:1437
-#: flatcamEditors/FlatCAMGrbEditor.py:1515
+#: AppEditors/FlatCAMGeoEditor.py:2007 AppEditors/FlatCAMGeoEditor.py:2078
+#: AppEditors/FlatCAMGrbEditor.py:1435 AppEditors/FlatCAMGrbEditor.py:1513
msgid "Click on Center point ..."
msgstr "Cliquez sur Point central ..."
-#: flatcamEditors/FlatCAMGeoEditor.py:2021
-#: flatcamEditors/FlatCAMGrbEditor.py:1447
+#: AppEditors/FlatCAMGeoEditor.py:2020 AppEditors/FlatCAMGrbEditor.py:1445
msgid "Click on Perimeter point to complete ..."
msgstr "Cliquez sur le point du périmètre pour terminer ..."
-#: flatcamEditors/FlatCAMGeoEditor.py:2053
+#: AppEditors/FlatCAMGeoEditor.py:2052
msgid "Done. Adding Circle completed."
msgstr "Terminé. Ajout du cercle terminé."
-#: flatcamEditors/FlatCAMGeoEditor.py:2107
-#: flatcamEditors/FlatCAMGrbEditor.py:1548
+#: AppEditors/FlatCAMGeoEditor.py:2106 AppEditors/FlatCAMGrbEditor.py:1546
msgid "Click on Start point ..."
msgstr "Cliquez sur le point de départ ..."
-#: flatcamEditors/FlatCAMGeoEditor.py:2109
-#: flatcamEditors/FlatCAMGrbEditor.py:1550
+#: AppEditors/FlatCAMGeoEditor.py:2108 AppEditors/FlatCAMGrbEditor.py:1548
msgid "Click on Point3 ..."
msgstr "Cliquez sur le point 3 ..."
-#: flatcamEditors/FlatCAMGeoEditor.py:2111
-#: flatcamEditors/FlatCAMGrbEditor.py:1552
+#: AppEditors/FlatCAMGeoEditor.py:2110 AppEditors/FlatCAMGrbEditor.py:1550
msgid "Click on Stop point ..."
msgstr "Cliquez sur le point d'arrêt ..."
-#: flatcamEditors/FlatCAMGeoEditor.py:2116
-#: flatcamEditors/FlatCAMGrbEditor.py:1557
+#: AppEditors/FlatCAMGeoEditor.py:2115 AppEditors/FlatCAMGrbEditor.py:1555
msgid "Click on Stop point to complete ..."
msgstr "Cliquez sur le point d'arrêt pour terminer ..."
-#: flatcamEditors/FlatCAMGeoEditor.py:2118
-#: flatcamEditors/FlatCAMGrbEditor.py:1559
+#: AppEditors/FlatCAMGeoEditor.py:2117 AppEditors/FlatCAMGrbEditor.py:1557
msgid "Click on Point2 to complete ..."
msgstr "Cliquez sur le point 2 pour compléter ..."
-#: flatcamEditors/FlatCAMGeoEditor.py:2120
-#: flatcamEditors/FlatCAMGrbEditor.py:1561
+#: AppEditors/FlatCAMGeoEditor.py:2119 AppEditors/FlatCAMGrbEditor.py:1559
msgid "Click on Center point to complete ..."
msgstr "Cliquez sur le point central pour terminer ..."
-#: flatcamEditors/FlatCAMGeoEditor.py:2132
+#: AppEditors/FlatCAMGeoEditor.py:2131
#, python-format
msgid "Direction: %s"
msgstr "Direction: %s"
-#: flatcamEditors/FlatCAMGeoEditor.py:2146
-#: flatcamEditors/FlatCAMGrbEditor.py:1587
+#: AppEditors/FlatCAMGeoEditor.py:2145 AppEditors/FlatCAMGrbEditor.py:1585
msgid "Mode: Start -> Stop -> Center. Click on Start point ..."
msgstr ""
"Mode: Démarrer -> Arrêter -> Centre. Cliquez sur le point de départ ..."
-#: flatcamEditors/FlatCAMGeoEditor.py:2149
-#: flatcamEditors/FlatCAMGrbEditor.py:1590
+#: AppEditors/FlatCAMGeoEditor.py:2148 AppEditors/FlatCAMGrbEditor.py:1588
msgid "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..."
msgstr "Mode: Point 1 -> Point 3 -> Point 2. Cliquez sur Point 1 ..."
-#: flatcamEditors/FlatCAMGeoEditor.py:2152
-#: flatcamEditors/FlatCAMGrbEditor.py:1593
+#: AppEditors/FlatCAMGeoEditor.py:2151 AppEditors/FlatCAMGrbEditor.py:1591
msgid "Mode: Center -> Start -> Stop. Click on Center point ..."
msgstr "Mode: Centre -> Démarrer -> Arrêter. Cliquez sur Point central ..."
-#: flatcamEditors/FlatCAMGeoEditor.py:2293
+#: AppEditors/FlatCAMGeoEditor.py:2292
msgid "Done. Arc completed."
msgstr "Terminé. Arc terminé."
-#: flatcamEditors/FlatCAMGeoEditor.py:2324
-#: flatcamEditors/FlatCAMGeoEditor.py:2397
+#: AppEditors/FlatCAMGeoEditor.py:2323 AppEditors/FlatCAMGeoEditor.py:2396
msgid "Click on 1st corner ..."
msgstr "Cliquez sur le 1er coin ..."
-#: flatcamEditors/FlatCAMGeoEditor.py:2336
+#: AppEditors/FlatCAMGeoEditor.py:2335
msgid "Click on opposite corner to complete ..."
msgstr "Cliquez sur le coin opposé pour terminer ..."
-#: flatcamEditors/FlatCAMGeoEditor.py:2366
+#: AppEditors/FlatCAMGeoEditor.py:2365
msgid "Done. Rectangle completed."
msgstr "Terminé. Rectangle complété."
-#: flatcamEditors/FlatCAMGeoEditor.py:2410
-#: flatcamObjects/FlatCAMGeometry.py:2648 flatcamTools/ToolNCC.py:1733
-#: flatcamTools/ToolPaint.py:1628
+#: AppEditors/FlatCAMGeoEditor.py:2409 AppTools/ToolNCC.py:1734
+#: AppTools/ToolPaint.py:1627 Common.py:303
msgid "Click on next Point or click right mouse button to complete ..."
msgstr ""
"Cliquez sur le point suivant ou cliquez avec le bouton droit de la souris "
"pour terminer ..."
-#: flatcamEditors/FlatCAMGeoEditor.py:2441
+#: AppEditors/FlatCAMGeoEditor.py:2440
msgid "Done. Polygon completed."
msgstr "Terminé. Le polygone est terminé."
-#: flatcamEditors/FlatCAMGeoEditor.py:2455
-#: flatcamEditors/FlatCAMGeoEditor.py:2520
-#: flatcamEditors/FlatCAMGrbEditor.py:1113
-#: flatcamEditors/FlatCAMGrbEditor.py:1324
+#: AppEditors/FlatCAMGeoEditor.py:2454 AppEditors/FlatCAMGeoEditor.py:2519
+#: AppEditors/FlatCAMGrbEditor.py:1111 AppEditors/FlatCAMGrbEditor.py:1322
msgid "Backtracked one point ..."
msgstr "Retracé un point ..."
-#: flatcamEditors/FlatCAMGeoEditor.py:2498
+#: AppEditors/FlatCAMGeoEditor.py:2497
msgid "Done. Path completed."
msgstr "Terminé. Chemin complété."
-#: flatcamEditors/FlatCAMGeoEditor.py:2657
+#: AppEditors/FlatCAMGeoEditor.py:2656
msgid "No shape selected. Select a shape to explode"
msgstr "Aucune forme sélectionnée. Sélectionnez une forme à exploser"
-#: flatcamEditors/FlatCAMGeoEditor.py:2690
+#: AppEditors/FlatCAMGeoEditor.py:2689
msgid "Done. Polygons exploded into lines."
msgstr "Terminé. Les polygones ont explosé en lignes."
-#: flatcamEditors/FlatCAMGeoEditor.py:2722
+#: AppEditors/FlatCAMGeoEditor.py:2721
msgid "MOVE: No shape selected. Select a shape to move"
msgstr "Déplacer: Aucune forme sélectionnée. Sélectionnez une forme à déplacer"
-#: flatcamEditors/FlatCAMGeoEditor.py:2725
-#: flatcamEditors/FlatCAMGeoEditor.py:2745
+#: AppEditors/FlatCAMGeoEditor.py:2724 AppEditors/FlatCAMGeoEditor.py:2744
msgid " MOVE: Click on reference point ..."
msgstr " Déplacer: Cliquez sur le point de référence ..."
-#: flatcamEditors/FlatCAMGeoEditor.py:2730
+#: AppEditors/FlatCAMGeoEditor.py:2729
msgid " Click on destination point ..."
msgstr " Cliquez sur le point de destination ..."
-#: flatcamEditors/FlatCAMGeoEditor.py:2770
+#: AppEditors/FlatCAMGeoEditor.py:2769
msgid "Done. Geometry(s) Move completed."
msgstr "Terminé. Géométrie (s) Déplacement terminé."
-#: flatcamEditors/FlatCAMGeoEditor.py:2903
+#: AppEditors/FlatCAMGeoEditor.py:2902
msgid "Done. Geometry(s) Copy completed."
msgstr "Terminé. Géométrie (s) Copie terminée."
-#: flatcamEditors/FlatCAMGeoEditor.py:2934
-#: flatcamEditors/FlatCAMGrbEditor.py:899
+#: AppEditors/FlatCAMGeoEditor.py:2933 AppEditors/FlatCAMGrbEditor.py:897
msgid "Click on 1st point ..."
msgstr "Cliquez sur le 1er point ..."
-#: flatcamEditors/FlatCAMGeoEditor.py:2958
+#: AppEditors/FlatCAMGeoEditor.py:2957
msgid ""
"Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. "
"Error"
@@ -4382,136 +2285,135 @@ msgstr ""
"Police non supportée. Seuls les formats Normal, Gras, Italique et "
"GrasItalique sont pris en charge. Erreur"
-#: flatcamEditors/FlatCAMGeoEditor.py:2966
+#: AppEditors/FlatCAMGeoEditor.py:2965
msgid "No text to add."
msgstr "Pas de texte à ajouter."
-#: flatcamEditors/FlatCAMGeoEditor.py:2976
+#: AppEditors/FlatCAMGeoEditor.py:2975
msgid " Done. Adding Text completed."
msgstr " Terminé. Ajout de texte terminé."
-#: flatcamEditors/FlatCAMGeoEditor.py:3013
+#: AppEditors/FlatCAMGeoEditor.py:3012
msgid "Create buffer geometry ..."
msgstr "Créer une géométrie tampon ..."
-#: flatcamEditors/FlatCAMGeoEditor.py:3048
-#: flatcamEditors/FlatCAMGrbEditor.py:5160
+#: AppEditors/FlatCAMGeoEditor.py:3047 AppEditors/FlatCAMGrbEditor.py:5138
msgid "Done. Buffer Tool completed."
msgstr "Terminé. L'outil Tampon est terminé."
-#: flatcamEditors/FlatCAMGeoEditor.py:3076
+#: AppEditors/FlatCAMGeoEditor.py:3075
msgid "Done. Buffer Int Tool completed."
msgstr "Terminé. L'outil Intérieur du Tampon est terminé."
-#: flatcamEditors/FlatCAMGeoEditor.py:3104
+#: AppEditors/FlatCAMGeoEditor.py:3103
msgid "Done. Buffer Ext Tool completed."
msgstr "Terminé. L'outil Extérieur du Tampon est terminé."
-#: flatcamEditors/FlatCAMGeoEditor.py:3153
-#: flatcamEditors/FlatCAMGrbEditor.py:2153
+#: AppEditors/FlatCAMGeoEditor.py:3152 AppEditors/FlatCAMGrbEditor.py:2151
msgid "Select a shape to act as deletion area ..."
msgstr "Sélectionnez une forme pour agir comme zone de suppression ..."
-#: flatcamEditors/FlatCAMGeoEditor.py:3155
-#: flatcamEditors/FlatCAMGeoEditor.py:3181
-#: flatcamEditors/FlatCAMGeoEditor.py:3187
-#: flatcamEditors/FlatCAMGrbEditor.py:2155
+#: AppEditors/FlatCAMGeoEditor.py:3154 AppEditors/FlatCAMGeoEditor.py:3180
+#: AppEditors/FlatCAMGeoEditor.py:3186 AppEditors/FlatCAMGrbEditor.py:2153
msgid "Click to pick-up the erase shape..."
msgstr "Cliquez pour récupérer la forme à effacer ..."
-#: flatcamEditors/FlatCAMGeoEditor.py:3191
-#: flatcamEditors/FlatCAMGrbEditor.py:2214
+#: AppEditors/FlatCAMGeoEditor.py:3190 AppEditors/FlatCAMGrbEditor.py:2212
msgid "Click to erase ..."
msgstr "Cliquez pour effacer ..."
-#: flatcamEditors/FlatCAMGeoEditor.py:3220
-#: flatcamEditors/FlatCAMGrbEditor.py:2247
+#: AppEditors/FlatCAMGeoEditor.py:3219 AppEditors/FlatCAMGrbEditor.py:2245
msgid "Done. Eraser tool action completed."
msgstr "Terminé. Action de l’outil gomme terminée."
-#: flatcamEditors/FlatCAMGeoEditor.py:3270
+#: AppEditors/FlatCAMGeoEditor.py:3269
msgid "Create Paint geometry ..."
msgstr "Créer une géométrie de peinture ..."
-#: flatcamEditors/FlatCAMGeoEditor.py:3283
-#: flatcamEditors/FlatCAMGrbEditor.py:2410
+#: AppEditors/FlatCAMGeoEditor.py:3282 AppEditors/FlatCAMGrbEditor.py:2408
msgid "Shape transformations ..."
msgstr "Transformations de forme ..."
-#: flatcamEditors/FlatCAMGeoEditor.py:3339
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:27
+#: AppEditors/FlatCAMGeoEditor.py:3338
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:27
msgid "Geometry Editor"
msgstr "Éditeur de Géométrie"
-#: flatcamEditors/FlatCAMGeoEditor.py:3345
-#: flatcamEditors/FlatCAMGrbEditor.py:2488
-#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263
-#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326
-#: flatcamTools/ToolCutOut.py:95
+#: AppEditors/FlatCAMGeoEditor.py:3344 AppEditors/FlatCAMGrbEditor.py:2486
+#: AppEditors/FlatCAMGrbEditor.py:3943 AppGUI/ObjectUI.py:263
+#: AppGUI/ObjectUI.py:1599 AppGUI/ObjectUI.py:2456 AppTools/ToolCutOut.py:95
msgid "Type"
msgstr "Type"
-#: flatcamEditors/FlatCAMGeoEditor.py:3345 flatcamGUI/ObjectUI.py:218
-#: flatcamGUI/ObjectUI.py:742 flatcamGUI/ObjectUI.py:1433
-#: flatcamGUI/ObjectUI.py:2235 flatcamGUI/ObjectUI.py:2539
-#: flatcamGUI/ObjectUI.py:2606 flatcamTools/ToolCalibration.py:234
-#: flatcamTools/ToolFiducials.py:73
+#: AppEditors/FlatCAMGeoEditor.py:3344 AppGUI/ObjectUI.py:218
+#: AppGUI/ObjectUI.py:742 AppGUI/ObjectUI.py:1535 AppGUI/ObjectUI.py:2365
+#: AppGUI/ObjectUI.py:2669 AppGUI/ObjectUI.py:2736
+#: AppTools/ToolCalibration.py:234 AppTools/ToolFiducials.py:73
msgid "Name"
msgstr "Nom"
-#: flatcamEditors/FlatCAMGeoEditor.py:3587
+#: AppEditors/FlatCAMGeoEditor.py:3596
msgid "Ring"
msgstr "L'anneau"
-#: flatcamEditors/FlatCAMGeoEditor.py:3589
+#: AppEditors/FlatCAMGeoEditor.py:3598
msgid "Line"
msgstr "Ligne"
-#: flatcamEditors/FlatCAMGeoEditor.py:3591 flatcamGUI/FlatCAMGUI.py:2202
-#: flatcamGUI/ObjectUI.py:2074
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:218
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:328
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:292
-#: flatcamTools/ToolNCC.py:584 flatcamTools/ToolPaint.py:528
+#: AppEditors/FlatCAMGeoEditor.py:3600 AppGUI/MainGUI.py:1405
+#: AppGUI/ObjectUI.py:1371 AppGUI/ObjectUI.py:2205
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:218
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:328
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:292
+#: AppTools/ToolNCC.py:584 AppTools/ToolPaint.py:527
msgid "Polygon"
msgstr "Polygone"
-#: flatcamEditors/FlatCAMGeoEditor.py:3593
+#: AppEditors/FlatCAMGeoEditor.py:3602
msgid "Multi-Line"
msgstr "Multi-ligne"
-#: flatcamEditors/FlatCAMGeoEditor.py:3595
+#: AppEditors/FlatCAMGeoEditor.py:3604
msgid "Multi-Polygon"
msgstr "Multi-polygone"
-#: flatcamEditors/FlatCAMGeoEditor.py:3602
+#: AppEditors/FlatCAMGeoEditor.py:3611
msgid "Geo Elem"
msgstr "Élém. de Géo"
-#: flatcamEditors/FlatCAMGeoEditor.py:4076
+#: AppEditors/FlatCAMGeoEditor.py:4064
msgid "Editing MultiGeo Geometry, tool"
msgstr "Modification de la géométrie MultiGeo, outil"
-#: flatcamEditors/FlatCAMGeoEditor.py:4078
+#: AppEditors/FlatCAMGeoEditor.py:4066
msgid "with diameter"
msgstr "avec diamètre"
-#: flatcamEditors/FlatCAMGeoEditor.py:4509 flatcamGUI/FlatCAMGUI.py:3753
-#: flatcamGUI/FlatCAMGUI.py:3799 flatcamGUI/FlatCAMGUI.py:3817
-#: flatcamGUI/FlatCAMGUI.py:3961 flatcamGUI/FlatCAMGUI.py:4000
-#: flatcamGUI/FlatCAMGUI.py:4012 flatcamGUI/FlatCAMGUI.py:4029
+#: AppEditors/FlatCAMGeoEditor.py:4138
+#, fuzzy
+#| msgid "Workspace Settings"
+msgid "Grid snap enabled."
+msgstr "Paramètres de l'espace de travail"
+
+#: AppEditors/FlatCAMGeoEditor.py:4142
+#, fuzzy
+#| msgid "Grid X snapping distance"
+msgid "Grid snap disabled."
+msgstr "Distance d'accrochage de la grille X"
+
+#: AppEditors/FlatCAMGeoEditor.py:4503 AppGUI/MainGUI.py:3000
+#: AppGUI/MainGUI.py:3046 AppGUI/MainGUI.py:3064 AppGUI/MainGUI.py:3208
+#: AppGUI/MainGUI.py:3247 AppGUI/MainGUI.py:3259 AppGUI/MainGUI.py:3276
msgid "Click on target point."
msgstr "Cliquez sur le point cible."
-#: flatcamEditors/FlatCAMGeoEditor.py:4823
-#: flatcamEditors/FlatCAMGeoEditor.py:4858
+#: AppEditors/FlatCAMGeoEditor.py:4817 AppEditors/FlatCAMGeoEditor.py:4852
msgid "A selection of at least 2 geo items is required to do Intersection."
msgstr ""
"Une sélection d'au moins 2 éléments géographiques est requise pour effectuer "
"Intersection."
-#: flatcamEditors/FlatCAMGeoEditor.py:4944
-#: flatcamEditors/FlatCAMGeoEditor.py:5048
+#: AppEditors/FlatCAMGeoEditor.py:4938 AppEditors/FlatCAMGeoEditor.py:5042
msgid ""
"Negative buffer value is not accepted. Use Buffer interior to generate an "
"'inside' shape"
@@ -4519,61 +2421,58 @@ msgstr ""
"La valeur de tampon négative n'est pas acceptée. Utiliser l'intérieur du "
"tampon pour générer une forme «intérieure»"
-#: flatcamEditors/FlatCAMGeoEditor.py:4954
-#: flatcamEditors/FlatCAMGeoEditor.py:5007
-#: flatcamEditors/FlatCAMGeoEditor.py:5057
+#: AppEditors/FlatCAMGeoEditor.py:4948 AppEditors/FlatCAMGeoEditor.py:5001
+#: AppEditors/FlatCAMGeoEditor.py:5051
msgid "Nothing selected for buffering."
msgstr "Aucune sélection pour la mise en mémoire tampon."
-#: flatcamEditors/FlatCAMGeoEditor.py:4959
-#: flatcamEditors/FlatCAMGeoEditor.py:5011
-#: flatcamEditors/FlatCAMGeoEditor.py:5062
+#: AppEditors/FlatCAMGeoEditor.py:4953 AppEditors/FlatCAMGeoEditor.py:5005
+#: AppEditors/FlatCAMGeoEditor.py:5056
msgid "Invalid distance for buffering."
msgstr "Distance non valide pour la mise en mémoire tampon."
-#: flatcamEditors/FlatCAMGeoEditor.py:4983
-#: flatcamEditors/FlatCAMGeoEditor.py:5082
+#: AppEditors/FlatCAMGeoEditor.py:4977 AppEditors/FlatCAMGeoEditor.py:5076
msgid "Failed, the result is empty. Choose a different buffer value."
msgstr ""
"Echec, le résultat est vide. Choisissez une valeur de tampon différente."
-#: flatcamEditors/FlatCAMGeoEditor.py:4994
+#: AppEditors/FlatCAMGeoEditor.py:4988
msgid "Full buffer geometry created."
msgstr "Géométrie de tampon complète créée."
-#: flatcamEditors/FlatCAMGeoEditor.py:5000
+#: AppEditors/FlatCAMGeoEditor.py:4994
msgid "Negative buffer value is not accepted."
msgstr "La valeur de tampon négative n'est pas acceptée."
-#: flatcamEditors/FlatCAMGeoEditor.py:5031
+#: AppEditors/FlatCAMGeoEditor.py:5025
msgid "Failed, the result is empty. Choose a smaller buffer value."
msgstr ""
"Echec, le résultat est vide. Choisissez une valeur de tampon plus petite."
-#: flatcamEditors/FlatCAMGeoEditor.py:5041
+#: AppEditors/FlatCAMGeoEditor.py:5035
msgid "Interior buffer geometry created."
msgstr "Géométrie du tampon intérieur créée."
-#: flatcamEditors/FlatCAMGeoEditor.py:5092
+#: AppEditors/FlatCAMGeoEditor.py:5086
msgid "Exterior buffer geometry created."
msgstr "Géométrie tampon externe créée."
-#: flatcamEditors/FlatCAMGeoEditor.py:5098
+#: AppEditors/FlatCAMGeoEditor.py:5092
#, python-format
msgid "Could not do Paint. Overlap value has to be less than 100%%."
msgstr ""
"Impossible de peindre. La valeur de chevauchement doit être inférieure à 100 "
"%%."
-#: flatcamEditors/FlatCAMGeoEditor.py:5105
+#: AppEditors/FlatCAMGeoEditor.py:5099
msgid "Nothing selected for painting."
msgstr "Rien de sélectionné pour la peinture."
-#: flatcamEditors/FlatCAMGeoEditor.py:5111
+#: AppEditors/FlatCAMGeoEditor.py:5105
msgid "Invalid value for"
msgstr "Invalid value for"
-#: flatcamEditors/FlatCAMGeoEditor.py:5170
+#: AppEditors/FlatCAMGeoEditor.py:5164
msgid ""
"Could not do Paint. Try a different combination of parameters. Or a "
"different method of Paint"
@@ -4581,206 +2480,193 @@ msgstr ""
"Impossible de faire de la peinture. Essayez une combinaison de paramètres "
"différente. Ou une autre méthode de peinture"
-#: flatcamEditors/FlatCAMGeoEditor.py:5181
+#: AppEditors/FlatCAMGeoEditor.py:5175
msgid "Paint done."
msgstr "Peinture faite."
-#: flatcamEditors/FlatCAMGrbEditor.py:213
+#: AppEditors/FlatCAMGrbEditor.py:211
msgid "To add an Pad first select a aperture in Aperture Table"
msgstr ""
"Pour ajouter un Pad, sélectionnez d’abord une ouverture dans le tableau des "
"ouvertures"
-#: flatcamEditors/FlatCAMGrbEditor.py:220
-#: flatcamEditors/FlatCAMGrbEditor.py:420
+#: AppEditors/FlatCAMGrbEditor.py:218 AppEditors/FlatCAMGrbEditor.py:418
msgid "Aperture size is zero. It needs to be greater than zero."
msgstr "La taille de l'ouverture est zéro. Il doit être supérieur à zéro."
-#: flatcamEditors/FlatCAMGrbEditor.py:373
-#: flatcamEditors/FlatCAMGrbEditor.py:686
+#: AppEditors/FlatCAMGrbEditor.py:371 AppEditors/FlatCAMGrbEditor.py:684
msgid ""
"Incompatible aperture type. Select an aperture with type 'C', 'R' or 'O'."
msgstr ""
"Type d'ouverture incompatible. Sélectionnez une ouverture de type \"C\", \"R"
"\" ou \"O\"."
-#: flatcamEditors/FlatCAMGrbEditor.py:385
+#: AppEditors/FlatCAMGrbEditor.py:383
msgid "Done. Adding Pad completed."
msgstr "Terminé. Ajout du pad terminé."
-#: flatcamEditors/FlatCAMGrbEditor.py:412
+#: AppEditors/FlatCAMGrbEditor.py:410
msgid "To add an Pad Array first select a aperture in Aperture Table"
msgstr ""
"Pour ajouter un Tableau de pads, sélectionnez d’abord une ouverture dans le "
"tableau des ouvertures"
-#: flatcamEditors/FlatCAMGrbEditor.py:492
+#: AppEditors/FlatCAMGrbEditor.py:490
msgid "Click on the Pad Circular Array Start position"
msgstr "Cliquez sur le Tableau circulaire du Pad position de départ"
-#: flatcamEditors/FlatCAMGrbEditor.py:712
+#: AppEditors/FlatCAMGrbEditor.py:710
msgid "Too many Pads for the selected spacing angle."
msgstr "Trop de pads pour l'angle d'espacement sélectionné."
-#: flatcamEditors/FlatCAMGrbEditor.py:735
+#: AppEditors/FlatCAMGrbEditor.py:733
msgid "Done. Pad Array added."
msgstr "Terminé. Pad Tableau ajouté."
-#: flatcamEditors/FlatCAMGrbEditor.py:760
+#: AppEditors/FlatCAMGrbEditor.py:758
msgid "Select shape(s) and then click ..."
msgstr "Sélectionnez forme (s) puis cliquez sur ..."
-#: flatcamEditors/FlatCAMGrbEditor.py:772
+#: AppEditors/FlatCAMGrbEditor.py:770
msgid "Failed. Nothing selected."
msgstr "Échoué. Rien de sélectionné."
-#: flatcamEditors/FlatCAMGrbEditor.py:788
+#: AppEditors/FlatCAMGrbEditor.py:786
msgid ""
"Failed. Poligonize works only on geometries belonging to the same aperture."
msgstr ""
"Échoué. Poligonize ne fonctionne que sur les géométries appartenant à la "
"même ouverture."
-#: flatcamEditors/FlatCAMGrbEditor.py:842
+#: AppEditors/FlatCAMGrbEditor.py:840
msgid "Done. Poligonize completed."
msgstr "Terminé. Polygoniser terminé."
-#: flatcamEditors/FlatCAMGrbEditor.py:897
-#: flatcamEditors/FlatCAMGrbEditor.py:1130
-#: flatcamEditors/FlatCAMGrbEditor.py:1154
+#: AppEditors/FlatCAMGrbEditor.py:895 AppEditors/FlatCAMGrbEditor.py:1128
+#: AppEditors/FlatCAMGrbEditor.py:1152
msgid "Corner Mode 1: 45 degrees ..."
msgstr "Mode d'angle 1: 45 degrés ..."
-#: flatcamEditors/FlatCAMGrbEditor.py:909
-#: flatcamEditors/FlatCAMGrbEditor.py:1239
+#: AppEditors/FlatCAMGrbEditor.py:907 AppEditors/FlatCAMGrbEditor.py:1237
msgid "Click on next Point or click Right mouse button to complete ..."
msgstr ""
"Cliquez sur le prochain point ou cliquez avec le bouton droit de la souris "
"pour terminer ..."
-#: flatcamEditors/FlatCAMGrbEditor.py:1118
-#: flatcamEditors/FlatCAMGrbEditor.py:1151
+#: AppEditors/FlatCAMGrbEditor.py:1116 AppEditors/FlatCAMGrbEditor.py:1149
msgid "Corner Mode 2: Reverse 45 degrees ..."
msgstr "Mode de Coin 2: Inverse de 45 degrés ..."
-#: flatcamEditors/FlatCAMGrbEditor.py:1121
-#: flatcamEditors/FlatCAMGrbEditor.py:1148
+#: AppEditors/FlatCAMGrbEditor.py:1119 AppEditors/FlatCAMGrbEditor.py:1146
msgid "Corner Mode 3: 90 degrees ..."
msgstr "Mode de Coin 3: 90 degrés ..."
-#: flatcamEditors/FlatCAMGrbEditor.py:1124
-#: flatcamEditors/FlatCAMGrbEditor.py:1145
+#: AppEditors/FlatCAMGrbEditor.py:1122 AppEditors/FlatCAMGrbEditor.py:1143
msgid "Corner Mode 4: Reverse 90 degrees ..."
msgstr "Mode de Coin 4: inverser de 90 degrés ..."
-#: flatcamEditors/FlatCAMGrbEditor.py:1127
-#: flatcamEditors/FlatCAMGrbEditor.py:1142
+#: AppEditors/FlatCAMGrbEditor.py:1125 AppEditors/FlatCAMGrbEditor.py:1140
msgid "Corner Mode 5: Free angle ..."
msgstr "Mode de Coin 5: Angle libre ..."
-#: flatcamEditors/FlatCAMGrbEditor.py:1184
-#: flatcamEditors/FlatCAMGrbEditor.py:1360
-#: flatcamEditors/FlatCAMGrbEditor.py:1399
+#: AppEditors/FlatCAMGrbEditor.py:1182 AppEditors/FlatCAMGrbEditor.py:1358
+#: AppEditors/FlatCAMGrbEditor.py:1397
msgid "Track Mode 1: 45 degrees ..."
msgstr "Mode de Piste 1: 45 degrés ..."
-#: flatcamEditors/FlatCAMGrbEditor.py:1340
-#: flatcamEditors/FlatCAMGrbEditor.py:1394
+#: AppEditors/FlatCAMGrbEditor.py:1338 AppEditors/FlatCAMGrbEditor.py:1392
msgid "Track Mode 2: Reverse 45 degrees ..."
msgstr "Mode de Piste 2: Recul de 45 degrés ..."
-#: flatcamEditors/FlatCAMGrbEditor.py:1345
-#: flatcamEditors/FlatCAMGrbEditor.py:1389
+#: AppEditors/FlatCAMGrbEditor.py:1343 AppEditors/FlatCAMGrbEditor.py:1387
msgid "Track Mode 3: 90 degrees ..."
msgstr "Mode de Piste 3: 90 degrés ..."
-#: flatcamEditors/FlatCAMGrbEditor.py:1350
-#: flatcamEditors/FlatCAMGrbEditor.py:1384
+#: AppEditors/FlatCAMGrbEditor.py:1348 AppEditors/FlatCAMGrbEditor.py:1382
msgid "Track Mode 4: Reverse 90 degrees ..."
msgstr "Mode de Piste 4: Recul de 90 degrés ..."
-#: flatcamEditors/FlatCAMGrbEditor.py:1355
-#: flatcamEditors/FlatCAMGrbEditor.py:1379
+#: AppEditors/FlatCAMGrbEditor.py:1353 AppEditors/FlatCAMGrbEditor.py:1377
msgid "Track Mode 5: Free angle ..."
msgstr "Mode de Piste 5: Angle libre ..."
-#: flatcamEditors/FlatCAMGrbEditor.py:1780
+#: AppEditors/FlatCAMGrbEditor.py:1778
msgid "Scale the selected Gerber apertures ..."
msgstr "Mettez à l'échelle les ouvertures de Gerber sélectionnées ..."
-#: flatcamEditors/FlatCAMGrbEditor.py:1822
+#: AppEditors/FlatCAMGrbEditor.py:1820
msgid "Buffer the selected apertures ..."
msgstr "Tamponner les ouvertures sélectionnées ..."
-#: flatcamEditors/FlatCAMGrbEditor.py:1864
+#: AppEditors/FlatCAMGrbEditor.py:1862
msgid "Mark polygon areas in the edited Gerber ..."
msgstr "Marquer les zones polygonales dans le Gerber édité ..."
-#: flatcamEditors/FlatCAMGrbEditor.py:1930
+#: AppEditors/FlatCAMGrbEditor.py:1928
msgid "Nothing selected to move"
msgstr "Rien de sélectionné pour bouger"
-#: flatcamEditors/FlatCAMGrbEditor.py:2055
+#: AppEditors/FlatCAMGrbEditor.py:2053
msgid "Done. Apertures Move completed."
msgstr "Terminé. Déplacement des ouvertures terminé."
-#: flatcamEditors/FlatCAMGrbEditor.py:2137
+#: AppEditors/FlatCAMGrbEditor.py:2135
msgid "Done. Apertures copied."
msgstr "Terminé. Ouvertures copiées."
-#: flatcamEditors/FlatCAMGrbEditor.py:2455 flatcamGUI/FlatCAMGUI.py:2233
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:27
+#: AppEditors/FlatCAMGrbEditor.py:2453 AppGUI/MainGUI.py:1436
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:27
msgid "Gerber Editor"
-msgstr "Gerber éditeur"
+msgstr "Editeur Gerber"
-#: flatcamEditors/FlatCAMGrbEditor.py:2475 flatcamGUI/ObjectUI.py:228
-#: flatcamTools/ToolProperties.py:159
+#: AppEditors/FlatCAMGrbEditor.py:2473 AppGUI/ObjectUI.py:228
+#: AppTools/ToolProperties.py:159
msgid "Apertures"
-msgstr "Les ouvertures"
+msgstr "Ouvertures"
-#: flatcamEditors/FlatCAMGrbEditor.py:2477 flatcamGUI/ObjectUI.py:230
+#: AppEditors/FlatCAMGrbEditor.py:2475 AppGUI/ObjectUI.py:230
msgid "Apertures Table for the Gerber Object."
msgstr "Tableau des Ouvertures pour l'objet Gerber."
-#: flatcamEditors/FlatCAMGrbEditor.py:2488
-#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263
+#: AppEditors/FlatCAMGrbEditor.py:2486 AppEditors/FlatCAMGrbEditor.py:3943
+#: AppGUI/ObjectUI.py:263
msgid "Code"
msgstr "Code"
-#: flatcamEditors/FlatCAMGrbEditor.py:2488
-#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:103
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43
-#: flatcamTools/ToolCopperThieving.py:261
-#: flatcamTools/ToolCopperThieving.py:301 flatcamTools/ToolFiducials.py:156
+#: AppEditors/FlatCAMGrbEditor.py:2486 AppEditors/FlatCAMGrbEditor.py:3943
+#: AppGUI/ObjectUI.py:263
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:103
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43
+#: AppTools/ToolCopperThieving.py:261 AppTools/ToolCopperThieving.py:301
+#: AppTools/ToolFiducials.py:156
msgid "Size"
msgstr "Taille"
-#: flatcamEditors/FlatCAMGrbEditor.py:2488
-#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263
+#: AppEditors/FlatCAMGrbEditor.py:2486 AppEditors/FlatCAMGrbEditor.py:3943
+#: AppGUI/ObjectUI.py:263
msgid "Dim"
msgstr "Dim"
-#: flatcamEditors/FlatCAMGrbEditor.py:2493 flatcamGUI/ObjectUI.py:267
+#: AppEditors/FlatCAMGrbEditor.py:2491 AppGUI/ObjectUI.py:267
msgid "Index"
msgstr "Indice"
-#: flatcamEditors/FlatCAMGrbEditor.py:2495
-#: flatcamEditors/FlatCAMGrbEditor.py:2524 flatcamGUI/ObjectUI.py:269
+#: AppEditors/FlatCAMGrbEditor.py:2493 AppEditors/FlatCAMGrbEditor.py:2522
+#: AppGUI/ObjectUI.py:269
msgid "Aperture Code"
msgstr "Code d'Ouverture"
-#: flatcamEditors/FlatCAMGrbEditor.py:2497 flatcamGUI/ObjectUI.py:271
+#: AppEditors/FlatCAMGrbEditor.py:2495 AppGUI/ObjectUI.py:271
msgid "Type of aperture: circular, rectangle, macros etc"
msgstr "Type d'ouverture: circulaire, rectangle, macros, etc"
-#: flatcamEditors/FlatCAMGrbEditor.py:2499 flatcamGUI/ObjectUI.py:273
+#: AppEditors/FlatCAMGrbEditor.py:2497 AppGUI/ObjectUI.py:273
msgid "Aperture Size:"
msgstr "Taille d'Ouverture:"
-#: flatcamEditors/FlatCAMGrbEditor.py:2501 flatcamGUI/ObjectUI.py:275
+#: AppEditors/FlatCAMGrbEditor.py:2499 AppGUI/ObjectUI.py:275
msgid ""
"Aperture Dimensions:\n"
" - (width, height) for R, O type.\n"
@@ -4790,16 +2676,16 @@ msgstr ""
" - (largeur, hauteur) pour le type R, O.\n"
" - (dia, nVertices) pour le type P"
-#: flatcamEditors/FlatCAMGrbEditor.py:2525
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:58
+#: AppEditors/FlatCAMGrbEditor.py:2523
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:58
msgid "Code for the new aperture"
msgstr "Code pour la nouvelle ouverture"
-#: flatcamEditors/FlatCAMGrbEditor.py:2534
+#: AppEditors/FlatCAMGrbEditor.py:2532
msgid "Aperture Size"
msgstr "Taille d'ouverture"
-#: flatcamEditors/FlatCAMGrbEditor.py:2536
+#: AppEditors/FlatCAMGrbEditor.py:2534
msgid ""
"Size for the new aperture.\n"
"If aperture type is 'R' or 'O' then\n"
@@ -4813,11 +2699,11 @@ msgstr ""
"calculé comme:\n"
"sqrt (largeur ** 2 + hauteur ** 2)"
-#: flatcamEditors/FlatCAMGrbEditor.py:2550
+#: AppEditors/FlatCAMGrbEditor.py:2548
msgid "Aperture Type"
msgstr "Type d'ouverture"
-#: flatcamEditors/FlatCAMGrbEditor.py:2552
+#: AppEditors/FlatCAMGrbEditor.py:2550
msgid ""
"Select the type of new aperture. Can be:\n"
"C = circular\n"
@@ -4829,11 +2715,11 @@ msgstr ""
"R = rectangulaire\n"
"O = oblong"
-#: flatcamEditors/FlatCAMGrbEditor.py:2563
+#: AppEditors/FlatCAMGrbEditor.py:2561
msgid "Aperture Dim"
msgstr "Dim. d'Ouverture"
-#: flatcamEditors/FlatCAMGrbEditor.py:2565
+#: AppEditors/FlatCAMGrbEditor.py:2563
msgid ""
"Dimensions for the new aperture.\n"
"Active only for rectangular apertures (type R).\n"
@@ -4843,40 +2729,50 @@ msgstr ""
"Actif uniquement pour les ouvertures rectangulaires (type R).\n"
"Le format est (largeur, hauteur)"
-#: flatcamEditors/FlatCAMGrbEditor.py:2574
+#: AppEditors/FlatCAMGrbEditor.py:2572
msgid "Add/Delete Aperture"
-msgstr "Ajouter / Supprimer une Ouverture"
+msgstr "Ajouter / Supprimer une Sélection"
-#: flatcamEditors/FlatCAMGrbEditor.py:2576
+#: AppEditors/FlatCAMGrbEditor.py:2574
msgid "Add/Delete an aperture in the aperture table"
msgstr "Ajouter / Supprimer une ouverture dans la table des ouvertures"
-#: flatcamEditors/FlatCAMGrbEditor.py:2585
+#: AppEditors/FlatCAMGrbEditor.py:2583
msgid "Add a new aperture to the aperture list."
msgstr "Ajoutez une nouvelle ouverture à la liste des ouvertures."
-#: flatcamEditors/FlatCAMGrbEditor.py:2590
+#: AppEditors/FlatCAMGrbEditor.py:2586 AppEditors/FlatCAMGrbEditor.py:2734
+#: AppGUI/MainGUI.py:753 AppGUI/MainGUI.py:1071 AppGUI/MainGUI.py:1487
+#: AppGUI/MainGUI.py:2063 AppGUI/MainGUI.py:4433 AppGUI/ObjectUI.py:1725
+#: AppObjects/FlatCAMGeometry.py:556 AppTools/ToolNCC.py:316
+#: AppTools/ToolNCC.py:637 AppTools/ToolPaint.py:298 AppTools/ToolPaint.py:681
+#: AppTools/ToolSolderPaste.py:128 AppTools/ToolSolderPaste.py:600
+#: App_Main.py:5595
+msgid "Delete"
+msgstr "Effacer"
+
+#: AppEditors/FlatCAMGrbEditor.py:2588
msgid "Delete a aperture in the aperture list"
msgstr "Supprimer une ouverture dans la liste des ouvertures"
-#: flatcamEditors/FlatCAMGrbEditor.py:2607
+#: AppEditors/FlatCAMGrbEditor.py:2605
msgid "Buffer Aperture"
msgstr "Ouverture du Tampon"
-#: flatcamEditors/FlatCAMGrbEditor.py:2609
+#: AppEditors/FlatCAMGrbEditor.py:2607
msgid "Buffer a aperture in the aperture list"
msgstr "Buffer une ouverture dans la liste des ouvertures"
-#: flatcamEditors/FlatCAMGrbEditor.py:2622
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:194
+#: AppEditors/FlatCAMGrbEditor.py:2620
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:194
msgid "Buffer distance"
msgstr "Distance Tampon"
-#: flatcamEditors/FlatCAMGrbEditor.py:2623
+#: AppEditors/FlatCAMGrbEditor.py:2621
msgid "Buffer corner"
msgstr "Coin Tampon"
-#: flatcamEditors/FlatCAMGrbEditor.py:2625
+#: AppEditors/FlatCAMGrbEditor.py:2623
msgid ""
"There are 3 types of corners:\n"
" - 'Round': the corner is rounded.\n"
@@ -4890,28 +2786,28 @@ msgstr ""
" - \"Biseauté:\" le coin est une ligne qui relie directement les "
"fonctionnalités réunies dans le coin"
-#: flatcamEditors/FlatCAMGrbEditor.py:2640 flatcamGUI/FlatCAMGUI.py:1061
-#: flatcamGUI/FlatCAMGUI.py:2138 flatcamGUI/FlatCAMGUI.py:2210
-#: flatcamGUI/FlatCAMGUI.py:2253 flatcamGUI/FlatCAMGUI.py:2765
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:200
-#: flatcamTools/ToolTransform.py:29
+#: AppEditors/FlatCAMGrbEditor.py:2638 AppGUI/MainGUI.py:1058
+#: AppGUI/MainGUI.py:1413 AppGUI/MainGUI.py:1456 AppGUI/MainGUI.py:2051
+#: AppGUI/MainGUI.py:4430
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:200
+#: AppTools/ToolTransform.py:29
msgid "Buffer"
msgstr "Tampon"
-#: flatcamEditors/FlatCAMGrbEditor.py:2655
+#: AppEditors/FlatCAMGrbEditor.py:2653
msgid "Scale Aperture"
msgstr "Échelle d'Ouverture"
-#: flatcamEditors/FlatCAMGrbEditor.py:2657
+#: AppEditors/FlatCAMGrbEditor.py:2655
msgid "Scale a aperture in the aperture list"
msgstr "Mettre à l'échelle une ouverture dans la liste des ouvertures"
-#: flatcamEditors/FlatCAMGrbEditor.py:2665
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:209
+#: AppEditors/FlatCAMGrbEditor.py:2663
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:209
msgid "Scale factor"
msgstr "Facteur d'échelle"
-#: flatcamEditors/FlatCAMGrbEditor.py:2667
+#: AppEditors/FlatCAMGrbEditor.py:2665
msgid ""
"The factor by which to scale the selected aperture.\n"
"Values can be between 0.0000 and 999.9999"
@@ -4919,19 +2815,19 @@ msgstr ""
"Le facteur par lequel mettre à l'échelle l'ouverture sélectionnée.\n"
"Les valeurs peuvent être comprises entre 0,0000 et 999,9999"
-#: flatcamEditors/FlatCAMGrbEditor.py:2695
+#: AppEditors/FlatCAMGrbEditor.py:2693
msgid "Mark polygons"
msgstr "Marquer des polygones"
-#: flatcamEditors/FlatCAMGrbEditor.py:2697
+#: AppEditors/FlatCAMGrbEditor.py:2695
msgid "Mark the polygon areas."
msgstr "Marquez les zones polygonales."
-#: flatcamEditors/FlatCAMGrbEditor.py:2705
+#: AppEditors/FlatCAMGrbEditor.py:2703
msgid "Area UPPER threshold"
msgstr "Seuil de la zone supérieure"
-#: flatcamEditors/FlatCAMGrbEditor.py:2707
+#: AppEditors/FlatCAMGrbEditor.py:2705
msgid ""
"The threshold value, all areas less than this are marked.\n"
"Can have a value between 0.0000 and 9999.9999"
@@ -4939,11 +2835,11 @@ msgstr ""
"La valeur de seuil, toutes les zones inférieures à celle-ci sont marquées.\n"
"Peut avoir une valeur comprise entre 0.0000 et 9999.9999"
-#: flatcamEditors/FlatCAMGrbEditor.py:2714
+#: AppEditors/FlatCAMGrbEditor.py:2712
msgid "Area LOWER threshold"
msgstr "Zone inférieure seuil"
-#: flatcamEditors/FlatCAMGrbEditor.py:2716
+#: AppEditors/FlatCAMGrbEditor.py:2714
msgid ""
"The threshold value, all areas more than this are marked.\n"
"Can have a value between 0.0000 and 9999.9999"
@@ -4951,32 +2847,32 @@ msgstr ""
"La valeur de seuil, toutes les zones plus que cela sont marquées.\n"
"Peut avoir une valeur comprise entre 0.0000 et 9999.9999"
-#: flatcamEditors/FlatCAMGrbEditor.py:2730
+#: AppEditors/FlatCAMGrbEditor.py:2728
msgid "Mark"
msgstr "Marque"
-#: flatcamEditors/FlatCAMGrbEditor.py:2732
+#: AppEditors/FlatCAMGrbEditor.py:2730
msgid "Mark the polygons that fit within limits."
msgstr "Marquez les polygones qui correspondent aux limites."
-#: flatcamEditors/FlatCAMGrbEditor.py:2738
+#: AppEditors/FlatCAMGrbEditor.py:2736
msgid "Delete all the marked polygons."
msgstr "Supprimer tous les polygones marqués."
-#: flatcamEditors/FlatCAMGrbEditor.py:2744
+#: AppEditors/FlatCAMGrbEditor.py:2742
msgid "Clear all the markings."
msgstr "Effacer toutes les marques."
-#: flatcamEditors/FlatCAMGrbEditor.py:2764 flatcamGUI/FlatCAMGUI.py:1046
-#: flatcamGUI/FlatCAMGUI.py:2138 flatcamGUI/FlatCAMGUI.py:2750
+#: AppEditors/FlatCAMGrbEditor.py:2762 AppGUI/MainGUI.py:1043
+#: AppGUI/MainGUI.py:2036 AppGUI/MainGUI.py:4430
msgid "Add Pad Array"
msgstr "Ajouter un Tableau de Pads"
-#: flatcamEditors/FlatCAMGrbEditor.py:2766
+#: AppEditors/FlatCAMGrbEditor.py:2764
msgid "Add an array of pads (linear or circular array)"
msgstr "Ajouter un tableau de pads (tableau linéaire ou circulaire)"
-#: flatcamEditors/FlatCAMGrbEditor.py:2772
+#: AppEditors/FlatCAMGrbEditor.py:2770
msgid ""
"Select the type of pads array to create.\n"
"It can be Linear X(Y) or Circular"
@@ -4984,17 +2880,17 @@ msgstr ""
"Sélectionnez le type de tableau de pads à créer.\n"
"Il peut être linéaire X (Y) ou circulaire"
-#: flatcamEditors/FlatCAMGrbEditor.py:2783
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:95
+#: AppEditors/FlatCAMGrbEditor.py:2781
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:95
msgid "Nr of pads"
msgstr "Nombre de pads"
-#: flatcamEditors/FlatCAMGrbEditor.py:2785
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:97
+#: AppEditors/FlatCAMGrbEditor.py:2783
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:97
msgid "Specify how many pads to be in the array."
msgstr "Spécifiez combien de pads doivent être dans le tableau."
-#: flatcamEditors/FlatCAMGrbEditor.py:2834
+#: AppEditors/FlatCAMGrbEditor.py:2832
msgid ""
"Angle at which the linear array is placed.\n"
"The precision is of max 2 decimals.\n"
@@ -5006,14 +2902,13 @@ msgstr ""
"La valeur minimale est: -359,99 degrés.\n"
"La valeur maximale est: 360,00 degrés."
-#: flatcamEditors/FlatCAMGrbEditor.py:3328
-#: flatcamEditors/FlatCAMGrbEditor.py:3332
+#: AppEditors/FlatCAMGrbEditor.py:3326 AppEditors/FlatCAMGrbEditor.py:3330
msgid "Aperture code value is missing or wrong format. Add it and retry."
msgstr ""
"La valeur du code d'ouverture est manquante ou le format est incorrect. "
"Ajoutez-le et réessayez."
-#: flatcamEditors/FlatCAMGrbEditor.py:3368
+#: AppEditors/FlatCAMGrbEditor.py:3366
msgid ""
"Aperture dimensions value is missing or wrong format. Add it in format "
"(width, height) and retry."
@@ -5021,199 +2916,214 @@ msgstr ""
"La valeur des dimensions d’ouverture est manquante ou d’un format incorrect. "
"Ajoutez-le au format (largeur, hauteur) et réessayez."
-#: flatcamEditors/FlatCAMGrbEditor.py:3381
+#: AppEditors/FlatCAMGrbEditor.py:3379
msgid "Aperture size value is missing or wrong format. Add it and retry."
msgstr ""
"La valeur de la taille d’ouverture est manquante ou d’un format incorrect. "
"Ajoutez-le et réessayez."
-#: flatcamEditors/FlatCAMGrbEditor.py:3392
+#: AppEditors/FlatCAMGrbEditor.py:3390
msgid "Aperture already in the aperture table."
msgstr "Ouverture déjà dans la table des ouvertures."
-#: flatcamEditors/FlatCAMGrbEditor.py:3399
+#: AppEditors/FlatCAMGrbEditor.py:3397
msgid "Added new aperture with code"
msgstr "Ajout d'une nouvelle ouverture avec code"
-#: flatcamEditors/FlatCAMGrbEditor.py:3431
+#: AppEditors/FlatCAMGrbEditor.py:3429
msgid " Select an aperture in Aperture Table"
msgstr " Sélectionnez une ouverture dans le Tableau des Ouvertures"
-#: flatcamEditors/FlatCAMGrbEditor.py:3439
+#: AppEditors/FlatCAMGrbEditor.py:3437
msgid "Select an aperture in Aperture Table -->"
msgstr "Sélectionnez une ouverture dans le Tableau des Ouvertures -->"
-#: flatcamEditors/FlatCAMGrbEditor.py:3453
+#: AppEditors/FlatCAMGrbEditor.py:3451
msgid "Deleted aperture with code"
msgstr "Ouverture supprimée avec code"
-#: flatcamEditors/FlatCAMGrbEditor.py:3521
+#: AppEditors/FlatCAMGrbEditor.py:3519
msgid "Dimensions need two float values separated by comma."
msgstr ""
"Les dimensions nécessitent deux valeurs flottantes séparées par une virgule."
-#: flatcamEditors/FlatCAMGrbEditor.py:3530
+#: AppEditors/FlatCAMGrbEditor.py:3528
msgid "Dimensions edited."
msgstr "Dimensions modifiées."
-#: flatcamEditors/FlatCAMGrbEditor.py:4084
+#: AppEditors/FlatCAMGrbEditor.py:4058
msgid "Loading Gerber into Editor"
msgstr "Chargement de Gerber dans l'éditeur"
-#: flatcamEditors/FlatCAMGrbEditor.py:4212
+#: AppEditors/FlatCAMGrbEditor.py:4186
msgid "Setting up the UI"
msgstr "Configuration de IU"
-#: flatcamEditors/FlatCAMGrbEditor.py:4213
-msgid "Adding geometry finished. Preparing the GUI"
+#: AppEditors/FlatCAMGrbEditor.py:4187
+#, fuzzy
+#| msgid "Adding geometry finished. Preparing the GUI"
+msgid "Adding geometry finished. Preparing the AppGUI"
msgstr "Ajout de la géométrie terminé. Préparation de l'interface graphique"
-#: flatcamEditors/FlatCAMGrbEditor.py:4222
+#: AppEditors/FlatCAMGrbEditor.py:4196
msgid "Finished loading the Gerber object into the editor."
msgstr "Le chargement de l'objet Gerber dans l'éditeur est terminé."
-#: flatcamEditors/FlatCAMGrbEditor.py:4361
+#: AppEditors/FlatCAMGrbEditor.py:4335
msgid ""
"There are no Aperture definitions in the file. Aborting Gerber creation."
msgstr ""
"Il n'y a pas de définitions d'ouverture dans le fichier. Abandon de la "
"création de Gerber."
-#: flatcamEditors/FlatCAMGrbEditor.py:4371
+#: AppEditors/FlatCAMGrbEditor.py:4338 AppObjects/AppObject.py:133
+#: AppObjects/FlatCAMGeometry.py:1775 AppParsers/ParseExcellon.py:896
+#: AppTools/ToolPcbWizard.py:432 App_Main.py:8369 App_Main.py:8433
+#: App_Main.py:8564 App_Main.py:8629 App_Main.py:9281
+msgid "An internal error has occurred. See shell.\n"
+msgstr "Une erreur interne s'est produite. Voir shell.\n"
+
+#: AppEditors/FlatCAMGrbEditor.py:4345
msgid "Creating Gerber."
msgstr "Créer Gerber."
-#: flatcamEditors/FlatCAMGrbEditor.py:4380
+#: AppEditors/FlatCAMGrbEditor.py:4354
msgid "Done. Gerber editing finished."
msgstr "Terminé. Gerber édition terminée."
-#: flatcamEditors/FlatCAMGrbEditor.py:4398
+#: AppEditors/FlatCAMGrbEditor.py:4372
msgid "Cancelled. No aperture is selected"
msgstr "Annulé. Aucune ouverture n'est sélectionnée"
-#: flatcamEditors/FlatCAMGrbEditor.py:4992
+#: AppEditors/FlatCAMGrbEditor.py:4527 App_Main.py:5921
+msgid "Coordinates copied to clipboard."
+msgstr "Coordonnées copiées dans le presse-papier."
+
+#: AppEditors/FlatCAMGrbEditor.py:4970
msgid "Failed. No aperture geometry is selected."
msgstr "Échoué. Aucune géométrie d'ouverture n'est sélectionnée."
-#: flatcamEditors/FlatCAMGrbEditor.py:5001
-#: flatcamEditors/FlatCAMGrbEditor.py:5272
+#: AppEditors/FlatCAMGrbEditor.py:4979 AppEditors/FlatCAMGrbEditor.py:5250
msgid "Done. Apertures geometry deleted."
msgstr "Terminé. Géométrie des ouvertures supprimée."
-#: flatcamEditors/FlatCAMGrbEditor.py:5144
+#: AppEditors/FlatCAMGrbEditor.py:5122
msgid "No aperture to buffer. Select at least one aperture and try again."
msgstr ""
"Pas d'ouverture à tamponner. Sélectionnez au moins une ouverture et "
"réessayez."
-#: flatcamEditors/FlatCAMGrbEditor.py:5156
+#: AppEditors/FlatCAMGrbEditor.py:5134
msgid "Failed."
msgstr "Échoué."
-#: flatcamEditors/FlatCAMGrbEditor.py:5175
+#: AppEditors/FlatCAMGrbEditor.py:5153
msgid "Scale factor value is missing or wrong format. Add it and retry."
msgstr ""
"La valeur du facteur d'échelle est manquante ou d'un format incorrect. "
"Ajoutez-le et réessayez."
-#: flatcamEditors/FlatCAMGrbEditor.py:5207
+#: AppEditors/FlatCAMGrbEditor.py:5185
msgid "No aperture to scale. Select at least one aperture and try again."
msgstr ""
"Pas d'ouverture à l'échelle. Sélectionnez au moins une ouverture et "
"réessayez."
-#: flatcamEditors/FlatCAMGrbEditor.py:5223
+#: AppEditors/FlatCAMGrbEditor.py:5201
msgid "Done. Scale Tool completed."
msgstr "Terminé. Outil d'échelle terminé."
-#: flatcamEditors/FlatCAMGrbEditor.py:5261
+#: AppEditors/FlatCAMGrbEditor.py:5239
msgid "Polygons marked."
msgstr "Polygones marqués."
-#: flatcamEditors/FlatCAMGrbEditor.py:5264
+#: AppEditors/FlatCAMGrbEditor.py:5242
msgid "No polygons were marked. None fit within the limits."
msgstr "Aucun polygone n'a été marqué. Aucun ne rentre dans les limites."
-#: flatcamEditors/FlatCAMGrbEditor.py:5988
+#: AppEditors/FlatCAMGrbEditor.py:5966
msgid "Rotation action was not executed."
msgstr "L'action de rotation n'a pas été exécutée."
-#: flatcamEditors/FlatCAMGrbEditor.py:6116
+#: AppEditors/FlatCAMGrbEditor.py:6037 App_Main.py:5354 App_Main.py:5402
+msgid "Flip action was not executed."
+msgstr "La rotation n'a pas été exécutée."
+
+#: AppEditors/FlatCAMGrbEditor.py:6094
msgid "Skew action was not executed."
msgstr "L'action fausser n'a pas été exécutée."
-#: flatcamEditors/FlatCAMGrbEditor.py:6181
+#: AppEditors/FlatCAMGrbEditor.py:6159
msgid "Scale action was not executed."
msgstr "L'action d'échelle n'a pas été exécutée."
-#: flatcamEditors/FlatCAMGrbEditor.py:6224
+#: AppEditors/FlatCAMGrbEditor.py:6202
msgid "Offset action was not executed."
msgstr "L'action decalage n'a pas été exécutée."
-#: flatcamEditors/FlatCAMGrbEditor.py:6274
+#: AppEditors/FlatCAMGrbEditor.py:6252
msgid "Geometry shape offset Y cancelled"
msgstr "Décalage géométrique de la forme Y annulé"
-#: flatcamEditors/FlatCAMGrbEditor.py:6289
+#: AppEditors/FlatCAMGrbEditor.py:6267
msgid "Geometry shape skew X cancelled"
-msgstr "Fausser géométrique de la forme X annulé"
+msgstr "Inclinaison géométrique de la forme X annulé"
-#: flatcamEditors/FlatCAMGrbEditor.py:6304
+#: AppEditors/FlatCAMGrbEditor.py:6282
msgid "Geometry shape skew Y cancelled"
-msgstr "Fausser géométrique de la forme Y annulé"
+msgstr "Inclinaison géométrique de la forme Y annulé"
-#: flatcamEditors/FlatCAMTextEditor.py:74
+#: AppEditors/FlatCAMTextEditor.py:74
msgid "Print Preview"
msgstr "Aperçu avant imp"
-#: flatcamEditors/FlatCAMTextEditor.py:75
+#: AppEditors/FlatCAMTextEditor.py:75
msgid "Open a OS standard Preview Print window."
msgstr ""
"Ouvrez une fenêtre d'aperçu avant impression standard du système "
"d'exploitation."
-#: flatcamEditors/FlatCAMTextEditor.py:78
+#: AppEditors/FlatCAMTextEditor.py:78
msgid "Print Code"
msgstr "Code d'impression"
-#: flatcamEditors/FlatCAMTextEditor.py:79
+#: AppEditors/FlatCAMTextEditor.py:79
msgid "Open a OS standard Print window."
msgstr "Ouvrez une fenêtre d'impression standard du système d'exploitation."
-#: flatcamEditors/FlatCAMTextEditor.py:81
+#: AppEditors/FlatCAMTextEditor.py:81
msgid "Find in Code"
msgstr "Trouver dans le code"
-#: flatcamEditors/FlatCAMTextEditor.py:82
+#: AppEditors/FlatCAMTextEditor.py:82
msgid "Will search and highlight in yellow the string in the Find box."
msgstr "Recherche et surligne en jaune la chaîne dans la zone de recherche."
-#: flatcamEditors/FlatCAMTextEditor.py:86
+#: AppEditors/FlatCAMTextEditor.py:86
msgid "Find box. Enter here the strings to be searched in the text."
msgstr "Boîte de recherche. Entrez ici les chaînes à rechercher dans le texte."
-#: flatcamEditors/FlatCAMTextEditor.py:88
+#: AppEditors/FlatCAMTextEditor.py:88
msgid "Replace With"
msgstr "Remplacer par"
-#: flatcamEditors/FlatCAMTextEditor.py:89
+#: AppEditors/FlatCAMTextEditor.py:89
msgid ""
"Will replace the string from the Find box with the one in the Replace box."
msgstr ""
"Remplacera la chaîne de la zone Rechercher par celle de la zone Remplacer."
-#: flatcamEditors/FlatCAMTextEditor.py:93
+#: AppEditors/FlatCAMTextEditor.py:93
msgid "String to replace the one in the Find box throughout the text."
msgstr "Chaîne pour remplacer celle de la zone Rechercher dans tout le texte."
-#: flatcamEditors/FlatCAMTextEditor.py:95 flatcamGUI/ObjectUI.py:486
-#: flatcamGUI/ObjectUI.py:2219
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:54
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:88
+#: AppEditors/FlatCAMTextEditor.py:95 AppGUI/ObjectUI.py:486
+#: AppGUI/ObjectUI.py:2349 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:54
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:88
msgid "All"
msgstr "Tout"
-#: flatcamEditors/FlatCAMTextEditor.py:96
+#: AppEditors/FlatCAMTextEditor.py:96
msgid ""
"When checked it will replace all instances in the 'Find' box\n"
"with the text in the 'Replace' box.."
@@ -5222,248 +3132,316 @@ msgstr ""
"'Rechercher'\n"
"avec le texte dans la case 'Remplacer' .."
-#: flatcamEditors/FlatCAMTextEditor.py:99
+#: AppEditors/FlatCAMTextEditor.py:99
msgid "Copy All"
msgstr "Tout copier"
-#: flatcamEditors/FlatCAMTextEditor.py:100
+#: AppEditors/FlatCAMTextEditor.py:100
msgid "Will copy all the text in the Code Editor to the clipboard."
msgstr "Copiera tout le texte de l'éditeur de code dans le presse-papiers."
-#: flatcamEditors/FlatCAMTextEditor.py:103
+#: AppEditors/FlatCAMTextEditor.py:103
msgid "Open Code"
msgstr "Code ouvert"
-#: flatcamEditors/FlatCAMTextEditor.py:104
+#: AppEditors/FlatCAMTextEditor.py:104
msgid "Will open a text file in the editor."
msgstr "Va ouvrir un fichier texte dans l'éditeur."
-#: flatcamEditors/FlatCAMTextEditor.py:106
+#: AppEditors/FlatCAMTextEditor.py:106
msgid "Save Code"
msgstr "Enregistrer le code"
-#: flatcamEditors/FlatCAMTextEditor.py:107
+#: AppEditors/FlatCAMTextEditor.py:107
msgid "Will save the text in the editor into a file."
msgstr "Va enregistrer le texte dans l'éditeur dans un fichier."
-#: flatcamEditors/FlatCAMTextEditor.py:109
+#: AppEditors/FlatCAMTextEditor.py:109
msgid "Run Code"
msgstr "Code d'exécution"
-#: flatcamEditors/FlatCAMTextEditor.py:110
+#: AppEditors/FlatCAMTextEditor.py:110
msgid "Will run the TCL commands found in the text file, one by one."
msgstr ""
"Va exécuter les commandes TCL trouvées dans le fichier texte, une par une."
-#: flatcamEditors/FlatCAMTextEditor.py:184
+#: AppEditors/FlatCAMTextEditor.py:184
msgid "Open file"
msgstr "Fichier ouvert"
-#: flatcamEditors/FlatCAMTextEditor.py:215
-#: flatcamEditors/FlatCAMTextEditor.py:220
+#: AppEditors/FlatCAMTextEditor.py:215 AppEditors/FlatCAMTextEditor.py:220
msgid "Export Code ..."
msgstr "Exporter le code ..."
-#: flatcamEditors/FlatCAMTextEditor.py:272 flatcamObjects/FlatCAMCNCJob.py:955
-#: flatcamTools/ToolSolderPaste.py:1530
+#: AppEditors/FlatCAMTextEditor.py:272 AppObjects/FlatCAMCNCJob.py:955
+#: AppTools/ToolSolderPaste.py:1530
msgid "No such file or directory"
msgstr "Aucun fichier ou répertoire de ce nom"
-#: flatcamEditors/FlatCAMTextEditor.py:284 flatcamObjects/FlatCAMCNCJob.py:969
+#: AppEditors/FlatCAMTextEditor.py:284 AppObjects/FlatCAMCNCJob.py:969
msgid "Saved to"
msgstr "Enregistré dans"
-#: flatcamEditors/FlatCAMTextEditor.py:334
+#: AppEditors/FlatCAMTextEditor.py:334
msgid "Code Editor content copied to clipboard ..."
msgstr "Contenu de l'éditeur de code copié dans le Presse-papiers ..."
-#: flatcamGUI/FlatCAMGUI.py:78 flatcamGUI/FlatCAMGUI.py:80
-#: flatcamGUI/FlatCAMGUI.py:2163
-msgid "Toggle Panel"
-msgstr "Basculer le Panneau"
+#: AppGUI/GUIElements.py:2540
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:180
+#: AppTools/ToolDblSided.py:173 AppTools/ToolDblSided.py:388
+#: AppTools/ToolFilm.py:202
+msgid "Reference"
+msgstr "Référence"
-#: flatcamGUI/FlatCAMGUI.py:90
-msgid "File"
-msgstr "Fichier"
+#: AppGUI/GUIElements.py:2542
+msgid ""
+"The reference can be:\n"
+"- Absolute -> the reference point is point (0,0)\n"
+"- Relative -> the reference point is the mouse position before Jump"
+msgstr ""
+"La référence peut être:\n"
+"- Absolue -> le point de référence est le point (0,0)\n"
+"- Relatif -> le point de référence est la position de la souris avant le saut"
-#: flatcamGUI/FlatCAMGUI.py:95
-msgid "&New Project ...\tCtrl+N"
-msgstr "Nouveau projet ...\tCtrl+N"
+#: AppGUI/GUIElements.py:2547
+msgid "Abs"
+msgstr "Abs"
-#: flatcamGUI/FlatCAMGUI.py:97
-msgid "Will create a new, blank project"
-msgstr "Va créer un nouveau projet vierge"
+#: AppGUI/GUIElements.py:2548
+msgid "Relative"
+msgstr "Relatif"
-#: flatcamGUI/FlatCAMGUI.py:102
-msgid "&New"
-msgstr "Nouveau"
+#: AppGUI/GUIElements.py:2558
+msgid "Location"
+msgstr "Emplacement"
-#: flatcamGUI/FlatCAMGUI.py:106
-msgid "Geometry\tN"
-msgstr "Géométrie\tN"
+#: AppGUI/GUIElements.py:2560
+msgid ""
+"The Location value is a tuple (x,y).\n"
+"If the reference is Absolute then the Jump will be at the position (x,y).\n"
+"If the reference is Relative then the Jump will be at the (x,y) distance\n"
+"from the current mouse location point."
+msgstr ""
+"La valeur Emplacement est un tuple (x, y).\n"
+"Si la référence est absolue, le saut sera à la position (x, y).\n"
+"Si la référence est relative, le saut sera à la distance (x, y)\n"
+"à partir du point d'emplacement actuel de la souris."
-#: flatcamGUI/FlatCAMGUI.py:108
-msgid "Will create a new, empty Geometry Object."
-msgstr "Crée un nouvel objet de géométrie vide."
+#: AppGUI/GUIElements.py:2600
+msgid "Save Log"
+msgstr "Enregistrer le journal"
-#: flatcamGUI/FlatCAMGUI.py:111
-msgid "Gerber\tB"
-msgstr "Gerber\tB"
+#: AppGUI/GUIElements.py:2610 App_Main.py:2657 App_Main.py:3018
+msgid "Close"
+msgstr "Fermé"
-#: flatcamGUI/FlatCAMGUI.py:113
-msgid "Will create a new, empty Gerber Object."
-msgstr "Crée un nouvel objet Gerber vide."
+#: AppGUI/GUIElements.py:2619 AppTools/ToolShell.py:278
+msgid "Type >help< to get started"
+msgstr "Tapez >help< pour commencer"
-#: flatcamGUI/FlatCAMGUI.py:116
-msgid "Excellon\tL"
-msgstr "Excellon\tL"
+#: AppGUI/GUIElements.py:2990 AppGUI/GUIElements.py:2997
+msgid "Idle."
+msgstr "Au repos."
-#: flatcamGUI/FlatCAMGUI.py:118
-msgid "Will create a new, empty Excellon Object."
-msgstr "Va créer un nouvel objet vide vide."
+#: AppGUI/GUIElements.py:3030
+msgid "Application started ..."
+msgstr "Bienvenu dans FlatCam ..."
-#: flatcamGUI/FlatCAMGUI.py:123
-msgid "Document\tD"
-msgstr "Document\tD"
+#: AppGUI/GUIElements.py:3031
+msgid "Hello!"
+msgstr "Bonjours !"
-#: flatcamGUI/FlatCAMGUI.py:125
-msgid "Will create a new, empty Document Object."
-msgstr "Crée un nouvel objet de document vide."
-
-#: flatcamGUI/FlatCAMGUI.py:129 flatcamGUI/FlatCAMGUI.py:4420
-#: flatcamTools/ToolPcbWizard.py:62 flatcamTools/ToolPcbWizard.py:69
-msgid "Open"
-msgstr "Ouvert"
-
-#: flatcamGUI/FlatCAMGUI.py:134
-msgid "Open &Project ..."
-msgstr "Projet ouvert ..."
-
-#: flatcamGUI/FlatCAMGUI.py:140 flatcamGUI/FlatCAMGUI.py:4430
-msgid "Open &Gerber ...\tCtrl+G"
-msgstr "Gerber ouvert...\tCtrl+G"
-
-#: flatcamGUI/FlatCAMGUI.py:145 flatcamGUI/FlatCAMGUI.py:4435
-msgid "Open &Excellon ...\tCtrl+E"
-msgstr "Excellon ouvert ...\tCtrl+E"
-
-#: flatcamGUI/FlatCAMGUI.py:150 flatcamGUI/FlatCAMGUI.py:4440
-msgid "Open G-&Code ..."
-msgstr "Ouvrir G-Code ..."
-
-#: flatcamGUI/FlatCAMGUI.py:157
-msgid "Open Config ..."
-msgstr "Ouvrez la configuration ..."
-
-#: flatcamGUI/FlatCAMGUI.py:162
-msgid "Recent projects"
-msgstr "Les projets récents"
-
-#: flatcamGUI/FlatCAMGUI.py:164
-msgid "Recent files"
-msgstr "Fichiers récents"
-
-#: flatcamGUI/FlatCAMGUI.py:167 flatcamGUI/FlatCAMGUI.py:753
-#: flatcamGUI/FlatCAMGUI.py:1339
-msgid "Save"
-msgstr "Sauver"
-
-#: flatcamGUI/FlatCAMGUI.py:171
-msgid "&Save Project ...\tCtrl+S"
-msgstr "Sauvegarder le projet...\tCtrl+S"
-
-#: flatcamGUI/FlatCAMGUI.py:176
-msgid "Save Project &As ...\tCtrl+Shift+S"
-msgstr "Enregistrer le projet sous...\tCtrl+Shift+S"
-
-#: flatcamGUI/FlatCAMGUI.py:191
-msgid "Scripting"
-msgstr "Scripting"
-
-#: flatcamGUI/FlatCAMGUI.py:195 flatcamGUI/FlatCAMGUI.py:903
-#: flatcamGUI/FlatCAMGUI.py:2607
-msgid "New Script ..."
-msgstr "Nouveau script ..."
-
-#: flatcamGUI/FlatCAMGUI.py:197 flatcamGUI/FlatCAMGUI.py:905
-#: flatcamGUI/FlatCAMGUI.py:2609
-msgid "Open Script ..."
-msgstr "Script ouvert ..."
-
-#: flatcamGUI/FlatCAMGUI.py:199
-msgid "Open Example ..."
-msgstr "Ouvrir l'exemple ..."
-
-#: flatcamGUI/FlatCAMGUI.py:201 flatcamGUI/FlatCAMGUI.py:907
-#: flatcamGUI/FlatCAMGUI.py:2611 flatcamGUI/FlatCAMGUI.py:4409
+#: AppGUI/GUIElements.py:3078 AppGUI/MainGUI.py:201 AppGUI/MainGUI.py:900
+#: AppGUI/MainGUI.py:1893
msgid "Run Script ..."
msgstr "Exécutez le script ..."
-#: flatcamGUI/FlatCAMGUI.py:203 flatcamGUI/FlatCAMGUI.py:4411
+#: AppGUI/GUIElements.py:3080 AppGUI/MainGUI.py:203
msgid ""
"Will run the opened Tcl Script thus\n"
"enabling the automation of certain\n"
"functions of FlatCAM."
msgstr ""
-"Va exécuter le script Tcl ouvert ainsi\n"
-"permettant l’automatisation de certaines\n"
-"fonctions de FlatCAM."
+"Exécute le script Tcl ouvert.\n"
+"Permet l’automatisation de \n"
+"fonctions dans FlatCAM."
-#: flatcamGUI/FlatCAMGUI.py:218
+#: AppGUI/GUIElements.py:3089 AppGUI/MainGUI.py:129
+#: AppTools/ToolPcbWizard.py:62 AppTools/ToolPcbWizard.py:69
+msgid "Open"
+msgstr "Ouvrir"
+
+#: AppGUI/GUIElements.py:3093
+msgid "Open Project ..."
+msgstr "Ouvrir Projet ..."
+
+#: AppGUI/GUIElements.py:3099 AppGUI/MainGUI.py:140
+msgid "Open &Gerber ...\tCtrl+G"
+msgstr "Ouvrir Gerber...\tCtrl+G"
+
+#: AppGUI/GUIElements.py:3104 AppGUI/MainGUI.py:145
+msgid "Open &Excellon ...\tCtrl+E"
+msgstr "Ouvrir Excellon ...\tCtrl+E"
+
+#: AppGUI/GUIElements.py:3109 AppGUI/MainGUI.py:150
+msgid "Open G-&Code ..."
+msgstr "Ouvrir G-Code ..."
+
+#: AppGUI/GUIElements.py:3119
+msgid "Exit"
+msgstr "Quitter"
+
+#: AppGUI/MainGUI.py:78 AppGUI/MainGUI.py:80 AppGUI/MainGUI.py:1366
+msgid "Toggle Panel"
+msgstr "Basculer le Panneau"
+
+#: AppGUI/MainGUI.py:90
+msgid "File"
+msgstr "Fichier"
+
+#: AppGUI/MainGUI.py:95
+msgid "&New Project ...\tCtrl+N"
+msgstr "Nouveau projet ...\tCtrl+N"
+
+#: AppGUI/MainGUI.py:97
+msgid "Will create a new, blank project"
+msgstr "Va créer un nouveau projet vierge"
+
+#: AppGUI/MainGUI.py:102
+msgid "&New"
+msgstr "Nouveau"
+
+#: AppGUI/MainGUI.py:106
+msgid "Geometry\tN"
+msgstr "Géométrie\tN"
+
+#: AppGUI/MainGUI.py:108
+msgid "Will create a new, empty Geometry Object."
+msgstr "Crée un nouvel objet de géométrie vide."
+
+#: AppGUI/MainGUI.py:111
+msgid "Gerber\tB"
+msgstr "Gerber\tB"
+
+#: AppGUI/MainGUI.py:113
+msgid "Will create a new, empty Gerber Object."
+msgstr "Crée un nouvel objet Gerber vide."
+
+#: AppGUI/MainGUI.py:116
+msgid "Excellon\tL"
+msgstr "Excellon\tL"
+
+#: AppGUI/MainGUI.py:118
+msgid "Will create a new, empty Excellon Object."
+msgstr "Va créer un nouvel objet vide vide."
+
+#: AppGUI/MainGUI.py:123
+msgid "Document\tD"
+msgstr "Document\tD"
+
+#: AppGUI/MainGUI.py:125
+msgid "Will create a new, empty Document Object."
+msgstr "Crée un nouvel objet de document vide."
+
+#: AppGUI/MainGUI.py:134
+msgid "Open &Project ..."
+msgstr "Ouvrir Projet ..."
+
+#: AppGUI/MainGUI.py:157
+msgid "Open Config ..."
+msgstr "Configuration ..."
+
+#: AppGUI/MainGUI.py:162
+msgid "Recent projects"
+msgstr "Projets récents"
+
+#: AppGUI/MainGUI.py:164
+msgid "Recent files"
+msgstr "Fichiers récents"
+
+#: AppGUI/MainGUI.py:167 AppGUI/MainGUI.py:755 AppGUI/MainGUI.py:1339
+msgid "Save"
+msgstr "Enregister"
+
+#: AppGUI/MainGUI.py:171
+msgid "&Save Project ...\tCtrl+S"
+msgstr "Enregistrer le projet...\tCtrl+S"
+
+#: AppGUI/MainGUI.py:176
+msgid "Save Project &As ...\tCtrl+Shift+S"
+msgstr "Enregistrer le projet sous...\tCtrl+Shift+S"
+
+#: AppGUI/MainGUI.py:191
+msgid "Scripting"
+msgstr "Scripte"
+
+#: AppGUI/MainGUI.py:195 AppGUI/MainGUI.py:896 AppGUI/MainGUI.py:1889
+msgid "New Script ..."
+msgstr "Nouveau script ..."
+
+#: AppGUI/MainGUI.py:197 AppGUI/MainGUI.py:898 AppGUI/MainGUI.py:1891
+msgid "Open Script ..."
+msgstr "Ouvrir Script ..."
+
+#: AppGUI/MainGUI.py:199
+msgid "Open Example ..."
+msgstr "Ouvrir l'exemple ..."
+
+#: AppGUI/MainGUI.py:218
msgid "Import"
msgstr "Importation"
-#: flatcamGUI/FlatCAMGUI.py:220
+#: AppGUI/MainGUI.py:220
msgid "&SVG as Geometry Object ..."
msgstr "SVG comme objet de géométrie ..."
-#: flatcamGUI/FlatCAMGUI.py:223
+#: AppGUI/MainGUI.py:223
msgid "&SVG as Gerber Object ..."
msgstr "SVG comme objet Gerber ..."
-#: flatcamGUI/FlatCAMGUI.py:228
+#: AppGUI/MainGUI.py:228
msgid "&DXF as Geometry Object ..."
msgstr "DXF comme objet de géométrie ..."
-#: flatcamGUI/FlatCAMGUI.py:231
+#: AppGUI/MainGUI.py:231
msgid "&DXF as Gerber Object ..."
msgstr "DXF en tant qu'objet Gerber ..."
-#: flatcamGUI/FlatCAMGUI.py:235
+#: AppGUI/MainGUI.py:235
msgid "HPGL2 as Geometry Object ..."
msgstr "HPGL2 comme objet géométrique ..."
-#: flatcamGUI/FlatCAMGUI.py:241
+#: AppGUI/MainGUI.py:241
msgid "Export"
msgstr "Exportation"
-#: flatcamGUI/FlatCAMGUI.py:245
+#: AppGUI/MainGUI.py:245
msgid "Export &SVG ..."
msgstr "Exporter SVG ..."
-#: flatcamGUI/FlatCAMGUI.py:249
+#: AppGUI/MainGUI.py:249
msgid "Export DXF ..."
msgstr "Exporter DXF ..."
-#: flatcamGUI/FlatCAMGUI.py:255
+#: AppGUI/MainGUI.py:255
msgid "Export &PNG ..."
msgstr "Exporter PNG ..."
-#: flatcamGUI/FlatCAMGUI.py:257
+#: AppGUI/MainGUI.py:257
msgid ""
"Will export an image in PNG format,\n"
"the saved image will contain the visual \n"
"information currently in FlatCAM Plot Area."
msgstr ""
-"Exportera une image au format PNG,\n"
-"l'image enregistrée contiendra le visuel\n"
-"informations actuellement dans la zone de tracé FlatCAM."
+"Exporte une image au format PNG.\n"
+"L'image enregistrée contiendra le visuel\n"
+"de la zone de tracé de FlatCAM."
-#: flatcamGUI/FlatCAMGUI.py:266
+#: AppGUI/MainGUI.py:266
msgid "Export &Excellon ..."
msgstr "Exporter Excellon ..."
-#: flatcamGUI/FlatCAMGUI.py:268
+#: AppGUI/MainGUI.py:268
msgid ""
"Will export an Excellon Object as Excellon file,\n"
"the coordinates format, the file units and zeros\n"
@@ -5471,13 +3449,13 @@ msgid ""
msgstr ""
"Exportera un objet Excellon en tant que fichier Excellon,\n"
"le format des coordonnées, les unités de fichier et les zéros\n"
-"sont définies dans Préférences -> Excellon Export."
+"sont définies dans Paramètres -> Excellon Export."
-#: flatcamGUI/FlatCAMGUI.py:275
+#: AppGUI/MainGUI.py:275
msgid "Export &Gerber ..."
msgstr "Exporter Gerber ..."
-#: flatcamGUI/FlatCAMGUI.py:277
+#: AppGUI/MainGUI.py:277
msgid ""
"Will export an Gerber Object as Gerber file,\n"
"the coordinates format, the file units and zeros\n"
@@ -5485,55 +3463,53 @@ msgid ""
msgstr ""
"Exportera un objet Gerber en tant que fichier Gerber,\n"
"le format des coordonnées, les unités de fichier et les zéros\n"
-"sont définies dans Préférences -> Exportation Gerber."
+"sont définies dans Paramètres -> Exportation Gerber."
-#: flatcamGUI/FlatCAMGUI.py:287
+#: AppGUI/MainGUI.py:287
msgid "Backup"
-msgstr "Sauvegarde"
+msgstr "F. Paramètres"
-#: flatcamGUI/FlatCAMGUI.py:292
+#: AppGUI/MainGUI.py:292
msgid "Import Preferences from file ..."
-msgstr "Importer les préférences du fichier ..."
+msgstr "Importer les paramètres …"
-#: flatcamGUI/FlatCAMGUI.py:298
+#: AppGUI/MainGUI.py:298
msgid "Export Preferences to file ..."
-msgstr "Exporter les préférences dans un fichier ..."
+msgstr "Exporter les paramètres ..."
-#: flatcamGUI/FlatCAMGUI.py:306
-#: flatcamGUI/preferences/PreferencesUIManager.py:1119
+#: AppGUI/MainGUI.py:306 AppGUI/preferences/PreferencesUIManager.py:1176
msgid "Save Preferences"
msgstr "Enregistrer les préf"
-#: flatcamGUI/FlatCAMGUI.py:312 flatcamGUI/FlatCAMGUI.py:1730
+#: AppGUI/MainGUI.py:312 AppGUI/MainGUI.py:4022
msgid "Print (PDF)"
msgstr "Imprimer (PDF)"
-#: flatcamGUI/FlatCAMGUI.py:320
+#: AppGUI/MainGUI.py:320
msgid "E&xit"
-msgstr "Sortie"
+msgstr "Quitter"
-#: flatcamGUI/FlatCAMGUI.py:328 flatcamGUI/FlatCAMGUI.py:747
-#: flatcamGUI/FlatCAMGUI.py:2286
+#: AppGUI/MainGUI.py:328 AppGUI/MainGUI.py:749 AppGUI/MainGUI.py:1489
msgid "Edit"
msgstr "Modifier"
-#: flatcamGUI/FlatCAMGUI.py:332
+#: AppGUI/MainGUI.py:332
msgid "Edit Object\tE"
-msgstr "Editer un objet\tE"
+msgstr "Modifier un objet\tE"
-#: flatcamGUI/FlatCAMGUI.py:334
+#: AppGUI/MainGUI.py:334
msgid "Close Editor\tCtrl+S"
msgstr "Fermer l'éditeur\tCtrl+S"
-#: flatcamGUI/FlatCAMGUI.py:343
+#: AppGUI/MainGUI.py:343
msgid "Conversion"
msgstr "Conversion"
-#: flatcamGUI/FlatCAMGUI.py:345
+#: AppGUI/MainGUI.py:345
msgid "&Join Geo/Gerber/Exc -> Geo"
msgstr "Rejoindre Geo/Gerber/Exc -> Geo"
-#: flatcamGUI/FlatCAMGUI.py:347
+#: AppGUI/MainGUI.py:347
msgid ""
"Merge a selection of objects, which can be of type:\n"
"- Gerber\n"
@@ -5547,799 +3523,852 @@ msgstr ""
"- Géométrie\n"
"dans un nouvel objet de géométrie combo."
-#: flatcamGUI/FlatCAMGUI.py:354
+#: AppGUI/MainGUI.py:354
msgid "Join Excellon(s) -> Excellon"
msgstr "Rejoignez Excellon(s) -> Excellon"
-#: flatcamGUI/FlatCAMGUI.py:356
+#: AppGUI/MainGUI.py:356
msgid "Merge a selection of Excellon objects into a new combo Excellon object."
msgstr ""
"Fusionner une sélection d'objets Excellon dans un nouvel objet Excellon "
"combo."
-#: flatcamGUI/FlatCAMGUI.py:359
+#: AppGUI/MainGUI.py:359
msgid "Join Gerber(s) -> Gerber"
msgstr "Rejoindre Gerber(s) -> Gerber"
-#: flatcamGUI/FlatCAMGUI.py:361
+#: AppGUI/MainGUI.py:361
msgid "Merge a selection of Gerber objects into a new combo Gerber object."
msgstr ""
"Fusionner une sélection d'objets Gerber dans un nouvel objet Gerber combiné."
-#: flatcamGUI/FlatCAMGUI.py:366
+#: AppGUI/MainGUI.py:366
msgid "Convert Single to MultiGeo"
msgstr "Convertir Unique en MultiGeo"
-#: flatcamGUI/FlatCAMGUI.py:368
+#: AppGUI/MainGUI.py:368
msgid ""
"Will convert a Geometry object from single_geometry type\n"
"to a multi_geometry type."
msgstr ""
-"Convertira un objet Geometry à partir d'un type de géométrie unique\n"
+"Convertira un objet Géométrie à partir d'un type de géométrie unique\n"
"à un type multi géométrie."
-#: flatcamGUI/FlatCAMGUI.py:372
+#: AppGUI/MainGUI.py:372
msgid "Convert Multi to SingleGeo"
-msgstr "Convertir Multi en Unique Geo"
+msgstr "Convertir Multi en Unique Géo"
-#: flatcamGUI/FlatCAMGUI.py:374
+#: AppGUI/MainGUI.py:374
msgid ""
"Will convert a Geometry object from multi_geometry type\n"
"to a single_geometry type."
msgstr ""
-"Convertira un objet Geometry de type multi geometry\n"
-"à un seul type de géométrie."
+"Convertira un objet multi-géométrie en un type simple-géométrie "
+"(concaténation)."
-#: flatcamGUI/FlatCAMGUI.py:381
+#: AppGUI/MainGUI.py:381
msgid "Convert Any to Geo"
-msgstr "Convertir n'importe quel en Geo"
+msgstr "Convertir en Géo"
-#: flatcamGUI/FlatCAMGUI.py:384
+#: AppGUI/MainGUI.py:384
msgid "Convert Any to Gerber"
-msgstr "Convertir n'importe lequel en gerber"
+msgstr "Convertir en Gerber"
-#: flatcamGUI/FlatCAMGUI.py:390
+#: AppGUI/MainGUI.py:390
msgid "&Copy\tCtrl+C"
msgstr "Copie\tCtrl+C"
-#: flatcamGUI/FlatCAMGUI.py:395
+#: AppGUI/MainGUI.py:395
msgid "&Delete\tDEL"
msgstr "Supprimer\tDEL"
-#: flatcamGUI/FlatCAMGUI.py:400
+#: AppGUI/MainGUI.py:400
msgid "Se&t Origin\tO"
msgstr "Définir L'origine\tO"
-#: flatcamGUI/FlatCAMGUI.py:402
+#: AppGUI/MainGUI.py:402
msgid "Move to Origin\tShift+O"
msgstr "Déplacer vers l'origine\tShift+O"
-#: flatcamGUI/FlatCAMGUI.py:405
+#: AppGUI/MainGUI.py:405
msgid "Jump to Location\tJ"
msgstr "Aller à l'emplacement\tJ"
-#: flatcamGUI/FlatCAMGUI.py:407
+#: AppGUI/MainGUI.py:407
msgid "Locate in Object\tShift+J"
msgstr "Localiser dans l'objet\tShift+J"
-#: flatcamGUI/FlatCAMGUI.py:412
+#: AppGUI/MainGUI.py:412
msgid "Toggle Units\tQ"
msgstr "Basculer les Unités\tQ"
-#: flatcamGUI/FlatCAMGUI.py:414
+#: AppGUI/MainGUI.py:414
msgid "&Select All\tCtrl+A"
msgstr "Tout sélectionner\tCtrl+A"
-#: flatcamGUI/FlatCAMGUI.py:419
+#: AppGUI/MainGUI.py:419
msgid "&Preferences\tShift+P"
-msgstr "Préférences\tShift+P"
+msgstr "Paramètres \tShift+P"
-#: flatcamGUI/FlatCAMGUI.py:425 flatcamTools/ToolProperties.py:155
+#: AppGUI/MainGUI.py:425 AppTools/ToolProperties.py:155
msgid "Options"
-msgstr "Les options"
+msgstr "Options"
-#: flatcamGUI/FlatCAMGUI.py:427
+#: AppGUI/MainGUI.py:427
msgid "&Rotate Selection\tShift+(R)"
msgstr "Faire pivoter la sélection\tShift+(R)"
-#: flatcamGUI/FlatCAMGUI.py:432
+#: AppGUI/MainGUI.py:432
msgid "&Skew on X axis\tShift+X"
-msgstr "Fausser sur l'axe X\tShift+X"
+msgstr "Inclinaison sur l'axe X\tShift+X"
-#: flatcamGUI/FlatCAMGUI.py:434
+#: AppGUI/MainGUI.py:434
msgid "S&kew on Y axis\tShift+Y"
-msgstr "Fausser sur l'axe Y\tShift+Y"
+msgstr "Inclinaison sur l'axe Y\tShift+Y"
-#: flatcamGUI/FlatCAMGUI.py:439
+#: AppGUI/MainGUI.py:439
msgid "Flip on &X axis\tX"
msgstr "Miroir sur l'axe X\tX"
-#: flatcamGUI/FlatCAMGUI.py:441
+#: AppGUI/MainGUI.py:441
msgid "Flip on &Y axis\tY"
msgstr "Miroir sur l'axe Y\tY"
-#: flatcamGUI/FlatCAMGUI.py:446
+#: AppGUI/MainGUI.py:446
msgid "View source\tAlt+S"
msgstr "Voir la source\tAlt+S"
-#: flatcamGUI/FlatCAMGUI.py:448
+#: AppGUI/MainGUI.py:448
msgid "Tools DataBase\tCtrl+D"
msgstr "Base de Données d'outils\tCtrl+D"
-#: flatcamGUI/FlatCAMGUI.py:455 flatcamGUI/FlatCAMGUI.py:2183
+#: AppGUI/MainGUI.py:455 AppGUI/MainGUI.py:1386
msgid "View"
msgstr "Vue"
-#: flatcamGUI/FlatCAMGUI.py:457
+#: AppGUI/MainGUI.py:457
msgid "Enable all plots\tAlt+1"
msgstr "Activer tous les dessins\tAlt+1"
-#: flatcamGUI/FlatCAMGUI.py:459
+#: AppGUI/MainGUI.py:459
msgid "Disable all plots\tAlt+2"
msgstr "Désactiver tous les dessins\tAlt+2"
-#: flatcamGUI/FlatCAMGUI.py:461
+#: AppGUI/MainGUI.py:461
msgid "Disable non-selected\tAlt+3"
msgstr "Désactiver les non sélectionnés\tAlt+3"
-#: flatcamGUI/FlatCAMGUI.py:465
+#: AppGUI/MainGUI.py:465
msgid "&Zoom Fit\tV"
msgstr "Ajustement du Zoom\tV"
-#: flatcamGUI/FlatCAMGUI.py:467
+#: AppGUI/MainGUI.py:467
msgid "&Zoom In\t="
-msgstr "Agrandir\t="
+msgstr "Zoomer\t="
-#: flatcamGUI/FlatCAMGUI.py:469
+#: AppGUI/MainGUI.py:469
msgid "&Zoom Out\t-"
msgstr "Dézoomer\t-"
-#: flatcamGUI/FlatCAMGUI.py:474
+#: AppGUI/MainGUI.py:474
msgid "Redraw All\tF5"
msgstr "Tout redessiner\tF5"
-#: flatcamGUI/FlatCAMGUI.py:478
+#: AppGUI/MainGUI.py:478
msgid "Toggle Code Editor\tShift+E"
msgstr "Basculer l'éditeur de code\tShift+E"
-#: flatcamGUI/FlatCAMGUI.py:481
+#: AppGUI/MainGUI.py:481
msgid "&Toggle FullScreen\tAlt+F10"
msgstr "Passer en plein écran\tAlt+F10"
-#: flatcamGUI/FlatCAMGUI.py:483
+#: AppGUI/MainGUI.py:483
msgid "&Toggle Plot Area\tCtrl+F10"
msgstr "Basculer la zone de tracé\tCtrl+F10"
-#: flatcamGUI/FlatCAMGUI.py:485
+#: AppGUI/MainGUI.py:485
msgid "&Toggle Project/Sel/Tool\t`"
msgstr "Basculer Projet / Sel / Outil\t`"
-#: flatcamGUI/FlatCAMGUI.py:489
+#: AppGUI/MainGUI.py:489
msgid "&Toggle Grid Snap\tG"
msgstr "Basculer la grille\tG"
-#: flatcamGUI/FlatCAMGUI.py:491
+#: AppGUI/MainGUI.py:491
msgid "&Toggle Grid Lines\tAlt+G"
msgstr "Basculer les lignes de la grille\tAlt+G"
-#: flatcamGUI/FlatCAMGUI.py:493
+#: AppGUI/MainGUI.py:493
msgid "&Toggle Axis\tShift+G"
msgstr "Basculer l'axe\tShift+G"
-#: flatcamGUI/FlatCAMGUI.py:495
+#: AppGUI/MainGUI.py:495
msgid "Toggle Workspace\tShift+W"
msgstr "Basculer l'espace de travail\tShift+W"
-#: flatcamGUI/FlatCAMGUI.py:500
+#: AppGUI/MainGUI.py:497
+#, fuzzy
+#| msgid "Toggle Units"
+msgid "Toggle HUD\tAlt+M"
+msgstr "Changement d'unités"
+
+#: AppGUI/MainGUI.py:502
msgid "Objects"
msgstr "Objets"
-#: flatcamGUI/FlatCAMGUI.py:514
+#: AppGUI/MainGUI.py:505 AppGUI/MainGUI.py:4020
+#: AppObjects/ObjectCollection.py:1120 AppObjects/ObjectCollection.py:1167
+msgid "Select All"
+msgstr "Tout sélectionner"
+
+#: AppGUI/MainGUI.py:507 AppObjects/ObjectCollection.py:1124
+#: AppObjects/ObjectCollection.py:1171
+msgid "Deselect All"
+msgstr "Tout désélectionner"
+
+#: AppGUI/MainGUI.py:516
msgid "&Command Line\tS"
msgstr "&Ligne de commande\tS"
-#: flatcamGUI/FlatCAMGUI.py:519
+#: AppGUI/MainGUI.py:521
msgid "Help"
msgstr "Aide"
-#: flatcamGUI/FlatCAMGUI.py:521
+#: AppGUI/MainGUI.py:523
msgid "Online Help\tF1"
msgstr "Aide en ligne\tF1"
-#: flatcamGUI/FlatCAMGUI.py:531
+#: AppGUI/MainGUI.py:526 Bookmark.py:293
+msgid "Bookmarks"
+msgstr "Internet"
+
+#: AppGUI/MainGUI.py:529 App_Main.py:2989 App_Main.py:2998
+msgid "Bookmarks Manager"
+msgstr "Gestionnaire de favoris"
+
+#: AppGUI/MainGUI.py:533
msgid "Report a bug"
msgstr "Signaler une erreur"
-#: flatcamGUI/FlatCAMGUI.py:534
+#: AppGUI/MainGUI.py:536
msgid "Excellon Specification"
-msgstr "Excellon Spécification"
+msgstr "Documentation Excellon"
-#: flatcamGUI/FlatCAMGUI.py:536
+#: AppGUI/MainGUI.py:538
msgid "Gerber Specification"
-msgstr "Gerber Spécifications"
+msgstr "Documentation Gerber"
-#: flatcamGUI/FlatCAMGUI.py:541
+#: AppGUI/MainGUI.py:543
msgid "Shortcuts List\tF3"
-msgstr "Liste des raccourcis\tF3"
+msgstr "Raccourcis Clavier\tF3"
-#: flatcamGUI/FlatCAMGUI.py:543
+#: AppGUI/MainGUI.py:545
msgid "YouTube Channel\tF4"
msgstr "Chaîne Youtube\tF4"
-#: flatcamGUI/FlatCAMGUI.py:554
+#: AppGUI/MainGUI.py:547 App_Main.py:2624
+msgid "About FlatCAM"
+msgstr "À propos de FlatCAM"
+
+#: AppGUI/MainGUI.py:556
msgid "Add Circle\tO"
msgstr "Ajouter un Cercle\tO"
-#: flatcamGUI/FlatCAMGUI.py:557
+#: AppGUI/MainGUI.py:559
msgid "Add Arc\tA"
msgstr "Ajouter un Arc\tA"
-#: flatcamGUI/FlatCAMGUI.py:560
+#: AppGUI/MainGUI.py:562
msgid "Add Rectangle\tR"
msgstr "Ajouter un Rectangle\tR"
-#: flatcamGUI/FlatCAMGUI.py:563
+#: AppGUI/MainGUI.py:565
msgid "Add Polygon\tN"
msgstr "Ajouter un Polygone\tN"
-#: flatcamGUI/FlatCAMGUI.py:566
+#: AppGUI/MainGUI.py:568
msgid "Add Path\tP"
msgstr "Ajouter un Chemin\tP"
-#: flatcamGUI/FlatCAMGUI.py:569
+#: AppGUI/MainGUI.py:571
msgid "Add Text\tT"
msgstr "Ajouter du Texte\tT"
-#: flatcamGUI/FlatCAMGUI.py:572
+#: AppGUI/MainGUI.py:574
msgid "Polygon Union\tU"
msgstr "Union de Polygones\tU"
-#: flatcamGUI/FlatCAMGUI.py:574
+#: AppGUI/MainGUI.py:576
msgid "Polygon Intersection\tE"
msgstr "Intersection de Polygones\tE"
-#: flatcamGUI/FlatCAMGUI.py:576
+#: AppGUI/MainGUI.py:578
msgid "Polygon Subtraction\tS"
msgstr "Soustraction de Polygone\tS"
-#: flatcamGUI/FlatCAMGUI.py:580
+#: AppGUI/MainGUI.py:582
msgid "Cut Path\tX"
msgstr "Chemin Coupé\tX"
-#: flatcamGUI/FlatCAMGUI.py:584
+#: AppGUI/MainGUI.py:586
msgid "Copy Geom\tC"
msgstr "Copier la Géométrie\tC"
-#: flatcamGUI/FlatCAMGUI.py:586
+#: AppGUI/MainGUI.py:588
msgid "Delete Shape\tDEL"
msgstr "Supprimer la Forme\tDEL"
-#: flatcamGUI/FlatCAMGUI.py:590 flatcamGUI/FlatCAMGUI.py:677
+#: AppGUI/MainGUI.py:592 AppGUI/MainGUI.py:679
msgid "Move\tM"
msgstr "Déplacer\tM"
-#: flatcamGUI/FlatCAMGUI.py:592
+#: AppGUI/MainGUI.py:594
msgid "Buffer Tool\tB"
msgstr "Outil Tampon\tB"
-#: flatcamGUI/FlatCAMGUI.py:595
+#: AppGUI/MainGUI.py:597
msgid "Paint Tool\tI"
msgstr "Outil de Peinture\tI"
-#: flatcamGUI/FlatCAMGUI.py:598
+#: AppGUI/MainGUI.py:600
msgid "Transform Tool\tAlt+R"
msgstr "Outil de Transformation\tAlt+R"
-#: flatcamGUI/FlatCAMGUI.py:602
+#: AppGUI/MainGUI.py:604
msgid "Toggle Corner Snap\tK"
msgstr "Basculer le Coin accrocher\tK"
-#: flatcamGUI/FlatCAMGUI.py:608
+#: AppGUI/MainGUI.py:610
msgid ">Excellon Editor<"
-msgstr ">Excellent Éditeur<"
+msgstr ">Excellon Éditeur<"
-#: flatcamGUI/FlatCAMGUI.py:612
+#: AppGUI/MainGUI.py:614
msgid "Add Drill Array\tA"
msgstr "Ajouter un Tableau de Forage\tA"
-#: flatcamGUI/FlatCAMGUI.py:614
+#: AppGUI/MainGUI.py:616
msgid "Add Drill\tD"
msgstr "Ajouter une Forage\tD"
-#: flatcamGUI/FlatCAMGUI.py:618
+#: AppGUI/MainGUI.py:620
msgid "Add Slot Array\tQ"
msgstr "Ajouter un Tableau de Fente\tQ"
-#: flatcamGUI/FlatCAMGUI.py:620
+#: AppGUI/MainGUI.py:622
msgid "Add Slot\tW"
msgstr "Ajouter une Fente\tW"
-#: flatcamGUI/FlatCAMGUI.py:624
+#: AppGUI/MainGUI.py:626
msgid "Resize Drill(S)\tR"
msgstr "Redimensionner le Foret\tR"
-#: flatcamGUI/FlatCAMGUI.py:627 flatcamGUI/FlatCAMGUI.py:671
+#: AppGUI/MainGUI.py:629 AppGUI/MainGUI.py:673
msgid "Copy\tC"
msgstr "Copie\tC"
-#: flatcamGUI/FlatCAMGUI.py:629 flatcamGUI/FlatCAMGUI.py:673
+#: AppGUI/MainGUI.py:631 AppGUI/MainGUI.py:675
msgid "Delete\tDEL"
msgstr "Supprimer\tDEL"
-#: flatcamGUI/FlatCAMGUI.py:634
+#: AppGUI/MainGUI.py:636
msgid "Move Drill(s)\tM"
msgstr "Déplacer les Forets\tM"
-#: flatcamGUI/FlatCAMGUI.py:639
+#: AppGUI/MainGUI.py:641
msgid ">Gerber Editor<"
msgstr ">Gerber Éditeur<"
-#: flatcamGUI/FlatCAMGUI.py:643
+#: AppGUI/MainGUI.py:645
msgid "Add Pad\tP"
msgstr "Ajouter un Pad\tP"
-#: flatcamGUI/FlatCAMGUI.py:645
+#: AppGUI/MainGUI.py:647
msgid "Add Pad Array\tA"
msgstr "Ajouter un Tableau de Pad\tA"
-#: flatcamGUI/FlatCAMGUI.py:647
+#: AppGUI/MainGUI.py:649
msgid "Add Track\tT"
msgstr "Ajouter une Piste\tT"
-#: flatcamGUI/FlatCAMGUI.py:649
+#: AppGUI/MainGUI.py:651
msgid "Add Region\tN"
msgstr "Ajouter une Région\tN"
-#: flatcamGUI/FlatCAMGUI.py:653
+#: AppGUI/MainGUI.py:655
msgid "Poligonize\tAlt+N"
msgstr "Polygoniser\tAlt+N"
-#: flatcamGUI/FlatCAMGUI.py:655
+#: AppGUI/MainGUI.py:657
msgid "Add SemiDisc\tE"
msgstr "Ajouter un Semi-Disque\tE"
-#: flatcamGUI/FlatCAMGUI.py:657
+#: AppGUI/MainGUI.py:659
msgid "Add Disc\tD"
msgstr "Ajouter un Disque\tD"
-#: flatcamGUI/FlatCAMGUI.py:659
+#: AppGUI/MainGUI.py:661
msgid "Buffer\tB"
msgstr "Tampon\tB"
-#: flatcamGUI/FlatCAMGUI.py:661
+#: AppGUI/MainGUI.py:663
msgid "Scale\tS"
msgstr "Échelle\tS"
-#: flatcamGUI/FlatCAMGUI.py:663
+#: AppGUI/MainGUI.py:665
msgid "Mark Area\tAlt+A"
msgstr "Zone de Marque\tAlt+A"
-#: flatcamGUI/FlatCAMGUI.py:665
+#: AppGUI/MainGUI.py:667
msgid "Eraser\tCtrl+E"
msgstr "La Gomme\tCtrl+E"
-#: flatcamGUI/FlatCAMGUI.py:667
+#: AppGUI/MainGUI.py:669
msgid "Transform\tAlt+R"
msgstr "Transformation\tAlt+R"
-#: flatcamGUI/FlatCAMGUI.py:694
+#: AppGUI/MainGUI.py:696
msgid "Enable Plot"
msgstr "Activer le Tracé"
-#: flatcamGUI/FlatCAMGUI.py:696
+#: AppGUI/MainGUI.py:698
msgid "Disable Plot"
msgstr "Désactiver le Tracé"
-#: flatcamGUI/FlatCAMGUI.py:700
+#: AppGUI/MainGUI.py:702
msgid "Set Color"
msgstr "Définir la couleur"
-#: flatcamGUI/FlatCAMGUI.py:742
+#: AppGUI/MainGUI.py:705 App_Main.py:9548
+msgid "Red"
+msgstr "Rouge"
+
+#: AppGUI/MainGUI.py:708 App_Main.py:9550
+msgid "Blue"
+msgstr "Bleu"
+
+#: AppGUI/MainGUI.py:711 App_Main.py:9553
+msgid "Yellow"
+msgstr "Jaune"
+
+#: AppGUI/MainGUI.py:714 App_Main.py:9555
+msgid "Green"
+msgstr "Vert"
+
+#: AppGUI/MainGUI.py:717 App_Main.py:9557
+msgid "Purple"
+msgstr "Violet"
+
+#: AppGUI/MainGUI.py:720 App_Main.py:9559
+msgid "Brown"
+msgstr "Marron"
+
+#: AppGUI/MainGUI.py:723 App_Main.py:9561 App_Main.py:9617
+msgid "White"
+msgstr "Blanche"
+
+#: AppGUI/MainGUI.py:726 App_Main.py:9563
+msgid "Black"
+msgstr "Noire"
+
+#: AppGUI/MainGUI.py:731 AppTools/ToolEtchCompensation.py:110 App_Main.py:9566
+msgid "Custom"
+msgstr "Personnalisé"
+
+#: AppGUI/MainGUI.py:736 App_Main.py:9600
+msgid "Opacity"
+msgstr "Opacité"
+
+#: AppGUI/MainGUI.py:739 App_Main.py:9576
+msgid "Default"
+msgstr "Défaut"
+
+#: AppGUI/MainGUI.py:744
msgid "Generate CNC"
msgstr "Générer CNC"
-#: flatcamGUI/FlatCAMGUI.py:744
+#: AppGUI/MainGUI.py:746
msgid "View Source"
msgstr "Voir la source"
-#: flatcamGUI/FlatCAMGUI.py:749 flatcamGUI/FlatCAMGUI.py:863
-#: flatcamGUI/FlatCAMGUI.py:1072 flatcamGUI/FlatCAMGUI.py:2138
-#: flatcamGUI/FlatCAMGUI.py:2282 flatcamGUI/FlatCAMGUI.py:2572
-#: flatcamGUI/FlatCAMGUI.py:2775 flatcamGUI/ObjectUI.py:1617
-#: flatcamObjects/FlatCAMGeometry.py:502 flatcamTools/ToolPanelize.py:540
-#: flatcamTools/ToolPanelize.py:567 flatcamTools/ToolPanelize.py:660
-#: flatcamTools/ToolPanelize.py:689 flatcamTools/ToolPanelize.py:751
+#: AppGUI/MainGUI.py:751 AppGUI/MainGUI.py:856 AppGUI/MainGUI.py:1069
+#: AppGUI/MainGUI.py:1485 AppGUI/MainGUI.py:1852 AppGUI/MainGUI.py:2061
+#: AppGUI/MainGUI.py:4430 AppGUI/ObjectUI.py:1719
+#: AppObjects/FlatCAMGeometry.py:553 AppTools/ToolPanelize.py:551
+#: AppTools/ToolPanelize.py:578 AppTools/ToolPanelize.py:671
+#: AppTools/ToolPanelize.py:700 AppTools/ToolPanelize.py:762
msgid "Copy"
msgstr "Copie"
-#: flatcamGUI/FlatCAMGUI.py:757 flatcamGUI/FlatCAMGUI.py:2295
-#: flatcamTools/ToolProperties.py:31
+#: AppGUI/MainGUI.py:759 AppGUI/MainGUI.py:1498 AppTools/ToolProperties.py:31
msgid "Properties"
msgstr "Propriétés"
-#: flatcamGUI/FlatCAMGUI.py:786
+#: AppGUI/MainGUI.py:788
msgid "File Toolbar"
msgstr "Barre d'outils de fichiers"
-#: flatcamGUI/FlatCAMGUI.py:790
+#: AppGUI/MainGUI.py:792
msgid "Edit Toolbar"
msgstr "Barre d'outils de editer"
-#: flatcamGUI/FlatCAMGUI.py:794
+#: AppGUI/MainGUI.py:796
msgid "View Toolbar"
msgstr "Barre d'outils de vue"
-#: flatcamGUI/FlatCAMGUI.py:798
+#: AppGUI/MainGUI.py:800
msgid "Shell Toolbar"
msgstr "Barre d'outils Shell"
-#: flatcamGUI/FlatCAMGUI.py:802
+#: AppGUI/MainGUI.py:804
msgid "Tools Toolbar"
msgstr "Barre d'outils de outils"
-#: flatcamGUI/FlatCAMGUI.py:806
+#: AppGUI/MainGUI.py:808
msgid "Excellon Editor Toolbar"
msgstr "Barre d'outils de l'éditeur Excellon"
-#: flatcamGUI/FlatCAMGUI.py:812
+#: AppGUI/MainGUI.py:814
msgid "Geometry Editor Toolbar"
msgstr "Barre d'outils de l'éditeur de Géométrie"
-#: flatcamGUI/FlatCAMGUI.py:816
+#: AppGUI/MainGUI.py:818
msgid "Gerber Editor Toolbar"
msgstr "Barre d'outils de l'éditeur Gerber"
-#: flatcamGUI/FlatCAMGUI.py:820
+#: AppGUI/MainGUI.py:822
msgid "Grid Toolbar"
msgstr "Barre d'outils de la Grille"
-#: flatcamGUI/FlatCAMGUI.py:841 flatcamGUI/FlatCAMGUI.py:2549
-msgid "Open project"
-msgstr "Projet ouvert"
+#: AppGUI/MainGUI.py:836 AppGUI/MainGUI.py:1831 App_Main.py:6513
+#: App_Main.py:6517
+msgid "Open Gerber"
+msgstr "Ouvrir Gerber"
-#: flatcamGUI/FlatCAMGUI.py:843 flatcamGUI/FlatCAMGUI.py:2551
+#: AppGUI/MainGUI.py:838 AppGUI/MainGUI.py:1833 App_Main.py:6551
+#: App_Main.py:6555
+msgid "Open Excellon"
+msgstr "Ouvrir Excellon"
+
+#: AppGUI/MainGUI.py:841 AppGUI/MainGUI.py:1836
+msgid "Open project"
+msgstr "Ouvrir Projet"
+
+#: AppGUI/MainGUI.py:843 AppGUI/MainGUI.py:1838
msgid "Save project"
msgstr "Sauvegarder le projet"
-#: flatcamGUI/FlatCAMGUI.py:849 flatcamGUI/FlatCAMGUI.py:2557
-msgid "New Blank Geometry"
-msgstr "Nouvelle Géométrie vierge"
-
-#: flatcamGUI/FlatCAMGUI.py:851 flatcamGUI/FlatCAMGUI.py:2559
-msgid "New Blank Gerber"
-msgstr "Nouveau Gerber vierge"
-
-#: flatcamGUI/FlatCAMGUI.py:853 flatcamGUI/FlatCAMGUI.py:2561
-msgid "New Blank Excellon"
-msgstr "Nouveau Excellon vierge"
-
-#: flatcamGUI/FlatCAMGUI.py:858 flatcamGUI/FlatCAMGUI.py:2567
+#: AppGUI/MainGUI.py:851 AppGUI/MainGUI.py:1847
msgid "Save Object and close the Editor"
msgstr "Enregistrer un objet et fermer l'éditeur"
-#: flatcamGUI/FlatCAMGUI.py:865 flatcamGUI/FlatCAMGUI.py:2574
+#: AppGUI/MainGUI.py:858 AppGUI/MainGUI.py:1854
msgid "&Delete"
msgstr "Supprimer"
-#: flatcamGUI/FlatCAMGUI.py:868 flatcamGUI/FlatCAMGUI.py:1729
-#: flatcamGUI/FlatCAMGUI.py:1935 flatcamGUI/FlatCAMGUI.py:2577
-#: flatcamTools/ToolDistance.py:35 flatcamTools/ToolDistance.py:195
+#: AppGUI/MainGUI.py:861 AppGUI/MainGUI.py:1857 AppGUI/MainGUI.py:4021
+#: AppGUI/MainGUI.py:4227 AppTools/ToolDistance.py:35
+#: AppTools/ToolDistance.py:197
msgid "Distance Tool"
-msgstr "Outil de Distance"
+msgstr "Mesure"
-#: flatcamGUI/FlatCAMGUI.py:870 flatcamGUI/FlatCAMGUI.py:2579
+#: AppGUI/MainGUI.py:863 AppGUI/MainGUI.py:1859
msgid "Distance Min Tool"
-msgstr "Outil Distance Min"
+msgstr "Mesure Mini"
-#: flatcamGUI/FlatCAMGUI.py:872 flatcamGUI/FlatCAMGUI.py:1722
-#: flatcamGUI/FlatCAMGUI.py:2581
+#: AppGUI/MainGUI.py:865 AppGUI/MainGUI.py:1861 AppGUI/MainGUI.py:4014
msgid "Set Origin"
msgstr "Définir l'origine"
-#: flatcamGUI/FlatCAMGUI.py:874
+#: AppGUI/MainGUI.py:867 AppGUI/MainGUI.py:1863
msgid "Move to Origin"
msgstr "Déplacer vers l'origine"
-#: flatcamGUI/FlatCAMGUI.py:877 flatcamGUI/FlatCAMGUI.py:2583
+#: AppGUI/MainGUI.py:870 AppGUI/MainGUI.py:1865
msgid "Jump to Location"
msgstr "Aller à l'emplacement"
-#: flatcamGUI/FlatCAMGUI.py:879 flatcamGUI/FlatCAMGUI.py:1734
-#: flatcamGUI/FlatCAMGUI.py:2585
+#: AppGUI/MainGUI.py:872 AppGUI/MainGUI.py:1867 AppGUI/MainGUI.py:4026
msgid "Locate in Object"
msgstr "Localiser dans l'objet"
-#: flatcamGUI/FlatCAMGUI.py:885 flatcamGUI/FlatCAMGUI.py:2591
+#: AppGUI/MainGUI.py:878 AppGUI/MainGUI.py:1873
msgid "&Replot"
msgstr "Re-Tracé"
-#: flatcamGUI/FlatCAMGUI.py:887 flatcamGUI/FlatCAMGUI.py:2593
+#: AppGUI/MainGUI.py:880 AppGUI/MainGUI.py:1875
msgid "&Clear plot"
msgstr "Effacer la Trace"
-#: flatcamGUI/FlatCAMGUI.py:889 flatcamGUI/FlatCAMGUI.py:1725
-#: flatcamGUI/FlatCAMGUI.py:2595
+#: AppGUI/MainGUI.py:882 AppGUI/MainGUI.py:1877 AppGUI/MainGUI.py:4017
msgid "Zoom In"
-msgstr "Agrandir"
+msgstr "Zoomer"
-#: flatcamGUI/FlatCAMGUI.py:891 flatcamGUI/FlatCAMGUI.py:1725
-#: flatcamGUI/FlatCAMGUI.py:2597
+#: AppGUI/MainGUI.py:884 AppGUI/MainGUI.py:1879 AppGUI/MainGUI.py:4017
msgid "Zoom Out"
msgstr "Dézoomer"
-#: flatcamGUI/FlatCAMGUI.py:893 flatcamGUI/FlatCAMGUI.py:1724
-#: flatcamGUI/FlatCAMGUI.py:2185 flatcamGUI/FlatCAMGUI.py:2599
+#: AppGUI/MainGUI.py:886 AppGUI/MainGUI.py:1388 AppGUI/MainGUI.py:1881
+#: AppGUI/MainGUI.py:4016
msgid "Zoom Fit"
msgstr "Ajustement du Zoom"
-#: flatcamGUI/FlatCAMGUI.py:901 flatcamGUI/FlatCAMGUI.py:2605
+#: AppGUI/MainGUI.py:894 AppGUI/MainGUI.py:1887
msgid "&Command Line"
msgstr "&Ligne de commande"
-#: flatcamGUI/FlatCAMGUI.py:913 flatcamGUI/FlatCAMGUI.py:2617
+#: AppGUI/MainGUI.py:906 AppGUI/MainGUI.py:1899
msgid "2Sided Tool"
msgstr "Outil 2 faces"
-#: flatcamGUI/FlatCAMGUI.py:915 flatcamGUI/FlatCAMGUI.py:1740
-#: flatcamGUI/FlatCAMGUI.py:2619
+#: AppGUI/MainGUI.py:908 AppGUI/MainGUI.py:1901 AppGUI/MainGUI.py:4032
msgid "Align Objects Tool"
msgstr "Outil Aligner les objets"
-#: flatcamGUI/FlatCAMGUI.py:917 flatcamGUI/FlatCAMGUI.py:1741
-#: flatcamGUI/FlatCAMGUI.py:2621 flatcamTools/ToolExtractDrills.py:393
+#: AppGUI/MainGUI.py:910 AppGUI/MainGUI.py:1903 AppGUI/MainGUI.py:4033
+#: AppTools/ToolExtractDrills.py:393
msgid "Extract Drills Tool"
msgstr "Outil d'extraction de forets"
-#: flatcamGUI/FlatCAMGUI.py:920 flatcamGUI/ObjectUI.py:596
-#: flatcamTools/ToolCutOut.py:440
+#: AppGUI/MainGUI.py:913 AppGUI/ObjectUI.py:596 AppTools/ToolCutOut.py:440
msgid "Cutout Tool"
msgstr "Outil de Découpe"
-#: flatcamGUI/FlatCAMGUI.py:922 flatcamGUI/FlatCAMGUI.py:2626
-#: flatcamGUI/ObjectUI.py:574 flatcamGUI/ObjectUI.py:2157
-#: flatcamTools/ToolNCC.py:974
+#: AppGUI/MainGUI.py:915 AppGUI/MainGUI.py:1908 AppGUI/ObjectUI.py:574
+#: AppGUI/ObjectUI.py:2287 AppTools/ToolNCC.py:974
msgid "NCC Tool"
msgstr "Outil de la NCC"
-#: flatcamGUI/FlatCAMGUI.py:928 flatcamGUI/FlatCAMGUI.py:2632
+#: AppGUI/MainGUI.py:921 AppGUI/MainGUI.py:1914
msgid "Panel Tool"
msgstr "Outil de Panneau"
-#: flatcamGUI/FlatCAMGUI.py:930 flatcamGUI/FlatCAMGUI.py:2634
-#: flatcamTools/ToolFilm.py:586
+#: AppGUI/MainGUI.py:923 AppGUI/MainGUI.py:1916 AppTools/ToolFilm.py:569
msgid "Film Tool"
msgstr "Outil de Film"
-#: flatcamGUI/FlatCAMGUI.py:932 flatcamGUI/FlatCAMGUI.py:2636
-#: flatcamTools/ToolSolderPaste.py:553
+#: AppGUI/MainGUI.py:925 AppGUI/MainGUI.py:1918 AppTools/ToolSolderPaste.py:553
msgid "SolderPaste Tool"
msgstr "Outil de Pâte à souder"
-#: flatcamGUI/FlatCAMGUI.py:934 flatcamGUI/FlatCAMGUI.py:2638
-#: flatcamTools/ToolSub.py:35
+#: AppGUI/MainGUI.py:927 AppGUI/MainGUI.py:1920 AppTools/ToolSub.py:35
msgid "Subtract Tool"
msgstr "Outil de Soustraction"
-#: flatcamGUI/FlatCAMGUI.py:936 flatcamGUI/FlatCAMGUI.py:2640
-#: flatcamTools/ToolRulesCheck.py:616
+#: AppGUI/MainGUI.py:929 AppGUI/MainGUI.py:1922 AppTools/ToolRulesCheck.py:616
msgid "Rules Tool"
msgstr "Outil de Règles"
-#: flatcamGUI/FlatCAMGUI.py:938 flatcamGUI/FlatCAMGUI.py:1743
-#: flatcamGUI/FlatCAMGUI.py:2642 flatcamTools/ToolOptimal.py:33
-#: flatcamTools/ToolOptimal.py:307
+#: AppGUI/MainGUI.py:931 AppGUI/MainGUI.py:1924 AppGUI/MainGUI.py:4035
+#: AppTools/ToolOptimal.py:33 AppTools/ToolOptimal.py:307
msgid "Optimal Tool"
msgstr "Outil de Optimal"
-#: flatcamGUI/FlatCAMGUI.py:943 flatcamGUI/FlatCAMGUI.py:1740
-#: flatcamGUI/FlatCAMGUI.py:2647
+#: AppGUI/MainGUI.py:936 AppGUI/MainGUI.py:1929 AppGUI/MainGUI.py:4032
msgid "Calculators Tool"
-msgstr "Outil de Calcul"
+msgstr "Calculatrice"
-#: flatcamGUI/FlatCAMGUI.py:947 flatcamGUI/FlatCAMGUI.py:1744
-#: flatcamGUI/FlatCAMGUI.py:2651 flatcamTools/ToolQRCode.py:43
-#: flatcamTools/ToolQRCode.py:382
+#: AppGUI/MainGUI.py:940 AppGUI/MainGUI.py:1933 AppGUI/MainGUI.py:4036
+#: AppTools/ToolQRCode.py:43 AppTools/ToolQRCode.py:382
msgid "QRCode Tool"
-msgstr "Outil QRCode"
+msgstr "QRCode"
-#: flatcamGUI/FlatCAMGUI.py:949 flatcamGUI/FlatCAMGUI.py:2653
-#: flatcamTools/ToolCopperThieving.py:39 flatcamTools/ToolCopperThieving.py:568
+#: AppGUI/MainGUI.py:942 AppGUI/MainGUI.py:1935
+#: AppTools/ToolCopperThieving.py:39 AppTools/ToolCopperThieving.py:568
msgid "Copper Thieving Tool"
msgstr "Outil de Copper Thieving"
-#: flatcamGUI/FlatCAMGUI.py:952 flatcamGUI/FlatCAMGUI.py:1741
-#: flatcamGUI/FlatCAMGUI.py:2656 flatcamTools/ToolFiducials.py:33
-#: flatcamTools/ToolFiducials.py:395
+#: AppGUI/MainGUI.py:945 AppGUI/MainGUI.py:1938 AppGUI/MainGUI.py:4033
+#: AppTools/ToolFiducials.py:33 AppTools/ToolFiducials.py:396
msgid "Fiducials Tool"
msgstr "Outil Fiduciaire"
-#: flatcamGUI/FlatCAMGUI.py:954 flatcamGUI/FlatCAMGUI.py:2658
-#: flatcamTools/ToolCalibration.py:37 flatcamTools/ToolCalibration.py:759
+#: AppGUI/MainGUI.py:947 AppGUI/MainGUI.py:1940 AppTools/ToolCalibration.py:37
+#: AppTools/ToolCalibration.py:759
msgid "Calibration Tool"
-msgstr "Outil d'Étalonnage"
+msgstr "Réglage de l'assiette"
-#: flatcamGUI/FlatCAMGUI.py:956 flatcamGUI/FlatCAMGUI.py:1741
-#: flatcamGUI/FlatCAMGUI.py:2660
+#: AppGUI/MainGUI.py:949 AppGUI/MainGUI.py:1942 AppGUI/MainGUI.py:4033
msgid "Punch Gerber Tool"
msgstr "Outil de poinçonnage Gerber"
-#: flatcamGUI/FlatCAMGUI.py:958 flatcamGUI/FlatCAMGUI.py:2662
-#: flatcamTools/ToolInvertGerber.py:31
+#: AppGUI/MainGUI.py:951 AppGUI/MainGUI.py:1944 AppTools/ToolInvertGerber.py:31
msgid "Invert Gerber Tool"
-msgstr "Outil de Inverser Gerber"
+msgstr "Inverser Gerber"
-#: flatcamGUI/FlatCAMGUI.py:964 flatcamGUI/FlatCAMGUI.py:990
-#: flatcamGUI/FlatCAMGUI.py:1042 flatcamGUI/FlatCAMGUI.py:2668
-#: flatcamGUI/FlatCAMGUI.py:2746
+#: AppGUI/MainGUI.py:953 AppGUI/MainGUI.py:1946 AppGUI/MainGUI.py:4035
+#: AppTools/ToolCorners.py:31
+#, fuzzy
+#| msgid "Invert Gerber Tool"
+msgid "Corner Markers Tool"
+msgstr "Inverser Gerber"
+
+#: AppGUI/MainGUI.py:955 AppGUI/MainGUI.py:1948
+#: AppTools/ToolEtchCompensation.py:31
+#, fuzzy
+#| msgid "Editor Transformation Tool"
+msgid "Etch Compensation Tool"
+msgstr "Outil de transformation de l'éditeur"
+
+#: AppGUI/MainGUI.py:961 AppGUI/MainGUI.py:987 AppGUI/MainGUI.py:1039
+#: AppGUI/MainGUI.py:1954 AppGUI/MainGUI.py:2032
msgid "Select"
msgstr "Sélectionner"
-#: flatcamGUI/FlatCAMGUI.py:966 flatcamGUI/FlatCAMGUI.py:2670
+#: AppGUI/MainGUI.py:963 AppGUI/MainGUI.py:1956
msgid "Add Drill Hole"
-msgstr "Ajouter une Forage"
+msgstr "Ajouter un Perçage"
-#: flatcamGUI/FlatCAMGUI.py:968 flatcamGUI/FlatCAMGUI.py:2672
+#: AppGUI/MainGUI.py:965 AppGUI/MainGUI.py:1958
msgid "Add Drill Hole Array"
-msgstr "Ajouter un Tableau de Forage"
+msgstr "Ajouter un Tableau de Perçage"
-#: flatcamGUI/FlatCAMGUI.py:970 flatcamGUI/FlatCAMGUI.py:2020
-#: flatcamGUI/FlatCAMGUI.py:2273 flatcamGUI/FlatCAMGUI.py:2676
+#: AppGUI/MainGUI.py:967 AppGUI/MainGUI.py:1476 AppGUI/MainGUI.py:1962
+#: AppGUI/MainGUI.py:4312
msgid "Add Slot"
-msgstr "Ajouter une Fente"
+msgstr "Ajouter une découpe"
-#: flatcamGUI/FlatCAMGUI.py:972 flatcamGUI/FlatCAMGUI.py:2019
-#: flatcamGUI/FlatCAMGUI.py:2275 flatcamGUI/FlatCAMGUI.py:2678
+#: AppGUI/MainGUI.py:969 AppGUI/MainGUI.py:1478 AppGUI/MainGUI.py:1964
+#: AppGUI/MainGUI.py:4311
msgid "Add Slot Array"
-msgstr "Ajouter un Tableau de Fente"
+msgstr "Ajouter un Tableau de découpe"
-#: flatcamGUI/FlatCAMGUI.py:974 flatcamGUI/FlatCAMGUI.py:2278
-#: flatcamGUI/FlatCAMGUI.py:2674
+#: AppGUI/MainGUI.py:971 AppGUI/MainGUI.py:1481 AppGUI/MainGUI.py:1960
msgid "Resize Drill"
-msgstr "Redimensionner Forage"
+msgstr "Redimensionner découpe"
-#: flatcamGUI/FlatCAMGUI.py:978 flatcamGUI/FlatCAMGUI.py:2682
+#: AppGUI/MainGUI.py:975 AppGUI/MainGUI.py:1968
msgid "Copy Drill"
-msgstr "Copier une Forage"
+msgstr "Copier un perçage"
-#: flatcamGUI/FlatCAMGUI.py:980 flatcamGUI/FlatCAMGUI.py:2684
+#: AppGUI/MainGUI.py:977 AppGUI/MainGUI.py:1970
msgid "Delete Drill"
-msgstr "Supprimer une Forage"
+msgstr "Supprimer un perçage"
-#: flatcamGUI/FlatCAMGUI.py:984 flatcamGUI/FlatCAMGUI.py:2688
+#: AppGUI/MainGUI.py:981 AppGUI/MainGUI.py:1974
msgid "Move Drill"
-msgstr "Déplacer uen Forage"
+msgstr "Déplacer un perçage"
-#: flatcamGUI/FlatCAMGUI.py:992 flatcamGUI/FlatCAMGUI.py:2696
+#: AppGUI/MainGUI.py:989 AppGUI/MainGUI.py:1982
msgid "Add Circle"
msgstr "Ajouter un Cercle"
-#: flatcamGUI/FlatCAMGUI.py:994 flatcamGUI/FlatCAMGUI.py:2698
+#: AppGUI/MainGUI.py:991 AppGUI/MainGUI.py:1984
msgid "Add Arc"
msgstr "Ajouter un Arc"
-#: flatcamGUI/FlatCAMGUI.py:996 flatcamGUI/FlatCAMGUI.py:2700
+#: AppGUI/MainGUI.py:993 AppGUI/MainGUI.py:1986
msgid "Add Rectangle"
msgstr "Ajouter un Rectangle"
-#: flatcamGUI/FlatCAMGUI.py:1000 flatcamGUI/FlatCAMGUI.py:2704
+#: AppGUI/MainGUI.py:997 AppGUI/MainGUI.py:1990
msgid "Add Path"
msgstr "Ajouter un Chemin"
-#: flatcamGUI/FlatCAMGUI.py:1002 flatcamGUI/FlatCAMGUI.py:2706
+#: AppGUI/MainGUI.py:999 AppGUI/MainGUI.py:1992
msgid "Add Polygon"
msgstr "Ajouter un Polygone"
-#: flatcamGUI/FlatCAMGUI.py:1005 flatcamGUI/FlatCAMGUI.py:2709
+#: AppGUI/MainGUI.py:1002 AppGUI/MainGUI.py:1995
msgid "Add Text"
msgstr "Ajouter du Texte"
-#: flatcamGUI/FlatCAMGUI.py:1007 flatcamGUI/FlatCAMGUI.py:2711
+#: AppGUI/MainGUI.py:1004 AppGUI/MainGUI.py:1997
msgid "Add Buffer"
msgstr "Ajouter un Tampon"
-#: flatcamGUI/FlatCAMGUI.py:1009 flatcamGUI/FlatCAMGUI.py:2713
+#: AppGUI/MainGUI.py:1006 AppGUI/MainGUI.py:1999
msgid "Paint Shape"
msgstr "Peindre une Forme"
-#: flatcamGUI/FlatCAMGUI.py:1011 flatcamGUI/FlatCAMGUI.py:1068
-#: flatcamGUI/FlatCAMGUI.py:2214 flatcamGUI/FlatCAMGUI.py:2259
-#: flatcamGUI/FlatCAMGUI.py:2715 flatcamGUI/FlatCAMGUI.py:2771
+#: AppGUI/MainGUI.py:1008 AppGUI/MainGUI.py:1065 AppGUI/MainGUI.py:1417
+#: AppGUI/MainGUI.py:1462 AppGUI/MainGUI.py:2001 AppGUI/MainGUI.py:2057
msgid "Eraser"
-msgstr "La Gomme"
+msgstr "Effacer"
-#: flatcamGUI/FlatCAMGUI.py:1015 flatcamGUI/FlatCAMGUI.py:2719
+#: AppGUI/MainGUI.py:1012 AppGUI/MainGUI.py:2005
msgid "Polygon Union"
msgstr "Union de Polygones"
-#: flatcamGUI/FlatCAMGUI.py:1017 flatcamGUI/FlatCAMGUI.py:2721
+#: AppGUI/MainGUI.py:1014 AppGUI/MainGUI.py:2007
msgid "Polygon Explode"
msgstr "Éclatement de polygone"
-#: flatcamGUI/FlatCAMGUI.py:1020 flatcamGUI/FlatCAMGUI.py:2724
+#: AppGUI/MainGUI.py:1017 AppGUI/MainGUI.py:2010
msgid "Polygon Intersection"
msgstr "Intersection de Polygones"
-#: flatcamGUI/FlatCAMGUI.py:1022 flatcamGUI/FlatCAMGUI.py:2726
+#: AppGUI/MainGUI.py:1019 AppGUI/MainGUI.py:2012
msgid "Polygon Subtraction"
msgstr "Soustraction de Polygone"
-#: flatcamGUI/FlatCAMGUI.py:1026 flatcamGUI/FlatCAMGUI.py:2730
+#: AppGUI/MainGUI.py:1023 AppGUI/MainGUI.py:2016
msgid "Cut Path"
-msgstr "Chemin Coupé"
+msgstr "Coupé Piste"
-#: flatcamGUI/FlatCAMGUI.py:1028
+#: AppGUI/MainGUI.py:1025
msgid "Copy Shape(s)"
msgstr "Copier les Formes"
-#: flatcamGUI/FlatCAMGUI.py:1031
+#: AppGUI/MainGUI.py:1028
msgid "Delete Shape '-'"
msgstr "Supprimer la Forme"
-#: flatcamGUI/FlatCAMGUI.py:1033 flatcamGUI/FlatCAMGUI.py:1076
-#: flatcamGUI/FlatCAMGUI.py:2226 flatcamGUI/FlatCAMGUI.py:2263
-#: flatcamGUI/FlatCAMGUI.py:2736 flatcamGUI/FlatCAMGUI.py:2779
-#: flatcamGUI/ObjectUI.py:109
+#: AppGUI/MainGUI.py:1030 AppGUI/MainGUI.py:1073 AppGUI/MainGUI.py:1429
+#: AppGUI/MainGUI.py:1466 AppGUI/MainGUI.py:2022 AppGUI/MainGUI.py:2065
+#: AppGUI/ObjectUI.py:109
msgid "Transformations"
-msgstr "Transformations"
+msgstr "Changement d'échelle"
-#: flatcamGUI/FlatCAMGUI.py:1036
+#: AppGUI/MainGUI.py:1033
msgid "Move Objects "
msgstr "Déplacer des objets "
-#: flatcamGUI/FlatCAMGUI.py:1044 flatcamGUI/FlatCAMGUI.py:2139
-#: flatcamGUI/FlatCAMGUI.py:2748
+#: AppGUI/MainGUI.py:1041 AppGUI/MainGUI.py:2034 AppGUI/MainGUI.py:4431
msgid "Add Pad"
msgstr "Ajouter un Pad"
-#: flatcamGUI/FlatCAMGUI.py:1048 flatcamGUI/FlatCAMGUI.py:2140
-#: flatcamGUI/FlatCAMGUI.py:2752
+#: AppGUI/MainGUI.py:1045 AppGUI/MainGUI.py:2038 AppGUI/MainGUI.py:4432
msgid "Add Track"
msgstr "Ajouter une Piste"
-#: flatcamGUI/FlatCAMGUI.py:1050 flatcamGUI/FlatCAMGUI.py:2139
-#: flatcamGUI/FlatCAMGUI.py:2754
+#: AppGUI/MainGUI.py:1047 AppGUI/MainGUI.py:2040 AppGUI/MainGUI.py:4431
msgid "Add Region"
msgstr "Ajouter une Région"
-#: flatcamGUI/FlatCAMGUI.py:1052 flatcamGUI/FlatCAMGUI.py:2245
-#: flatcamGUI/FlatCAMGUI.py:2756
+#: AppGUI/MainGUI.py:1049 AppGUI/MainGUI.py:1448 AppGUI/MainGUI.py:2042
msgid "Poligonize"
msgstr "Polygoniser"
-#: flatcamGUI/FlatCAMGUI.py:1055 flatcamGUI/FlatCAMGUI.py:2247
-#: flatcamGUI/FlatCAMGUI.py:2759
+#: AppGUI/MainGUI.py:1052 AppGUI/MainGUI.py:1450 AppGUI/MainGUI.py:2045
msgid "SemiDisc"
msgstr "Semi Disque"
-#: flatcamGUI/FlatCAMGUI.py:1057 flatcamGUI/FlatCAMGUI.py:2249
-#: flatcamGUI/FlatCAMGUI.py:2761
+#: AppGUI/MainGUI.py:1054 AppGUI/MainGUI.py:1452 AppGUI/MainGUI.py:2047
msgid "Disc"
msgstr "Disque"
-#: flatcamGUI/FlatCAMGUI.py:1065 flatcamGUI/FlatCAMGUI.py:2257
-#: flatcamGUI/FlatCAMGUI.py:2769
+#: AppGUI/MainGUI.py:1062 AppGUI/MainGUI.py:1460 AppGUI/MainGUI.py:2055
msgid "Mark Area"
msgstr "Zone de Marque"
-#: flatcamGUI/FlatCAMGUI.py:1079 flatcamGUI/FlatCAMGUI.py:2139
-#: flatcamGUI/FlatCAMGUI.py:2230 flatcamGUI/FlatCAMGUI.py:2293
-#: flatcamGUI/FlatCAMGUI.py:2782 flatcamTools/ToolMove.py:27
+#: AppGUI/MainGUI.py:1076 AppGUI/MainGUI.py:1433 AppGUI/MainGUI.py:1496
+#: AppGUI/MainGUI.py:2068 AppGUI/MainGUI.py:4431 AppTools/ToolMove.py:27
msgid "Move"
msgstr "Déplacer"
-#: flatcamGUI/FlatCAMGUI.py:1087 flatcamGUI/FlatCAMGUI.py:2791
+#: AppGUI/MainGUI.py:1084
msgid "Snap to grid"
msgstr "Aligner sur la Grille"
-#: flatcamGUI/FlatCAMGUI.py:1090 flatcamGUI/FlatCAMGUI.py:2794
+#: AppGUI/MainGUI.py:1087
msgid "Grid X snapping distance"
msgstr "Distance d'accrochage de la grille X"
-#: flatcamGUI/FlatCAMGUI.py:1095 flatcamGUI/FlatCAMGUI.py:2799
+#: AppGUI/MainGUI.py:1092
msgid "Grid Y snapping distance"
msgstr "Distance d'accrochage de la grille Y"
-#: flatcamGUI/FlatCAMGUI.py:1101 flatcamGUI/FlatCAMGUI.py:2805
+#: AppGUI/MainGUI.py:1098
msgid ""
"When active, value on Grid_X\n"
"is copied to the Grid_Y value."
@@ -6347,65 +4376,68 @@ msgstr ""
"Lorsque actif, valeur sur Grid_X\n"
"est copié dans la valeur Grid_Y."
-#: flatcamGUI/FlatCAMGUI.py:1108 flatcamGUI/FlatCAMGUI.py:2812
+#: AppGUI/MainGUI.py:1105
msgid "Snap to corner"
msgstr "Accrocher au coin"
-#: flatcamGUI/FlatCAMGUI.py:1112 flatcamGUI/FlatCAMGUI.py:2816
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:78
+#: AppGUI/MainGUI.py:1109 AppGUI/preferences/general/GeneralAPPSetGroupUI.py:78
msgid "Max. magnet distance"
msgstr "Max. distance d'aimant"
-#: flatcamGUI/FlatCAMGUI.py:1149
-msgid "Selected"
-msgstr "Choisi"
+#: AppGUI/MainGUI.py:1134 AppGUI/MainGUI.py:1379 App_Main.py:7543
+msgid "Project"
+msgstr "Projet"
-#: flatcamGUI/FlatCAMGUI.py:1177 flatcamGUI/FlatCAMGUI.py:1185
+#: AppGUI/MainGUI.py:1149
+msgid "Selected"
+msgstr "Sélection"
+
+#: AppGUI/MainGUI.py:1177 AppGUI/MainGUI.py:1185
msgid "Plot Area"
msgstr "Zone de Dessin"
-#: flatcamGUI/FlatCAMGUI.py:1212
+#: AppGUI/MainGUI.py:1212
msgid "General"
msgstr "Général"
-#: flatcamGUI/FlatCAMGUI.py:1227 flatcamTools/ToolCopperThieving.py:74
-#: flatcamTools/ToolDblSided.py:64 flatcamTools/ToolExtractDrills.py:61
-#: flatcamTools/ToolInvertGerber.py:72 flatcamTools/ToolOptimal.py:71
-#: flatcamTools/ToolPunchGerber.py:64
+#: AppGUI/MainGUI.py:1227 AppTools/ToolCopperThieving.py:74
+#: AppTools/ToolCorners.py:55 AppTools/ToolDblSided.py:64
+#: AppTools/ToolEtchCompensation.py:72 AppTools/ToolExtractDrills.py:61
+#: AppTools/ToolInvertGerber.py:72 AppTools/ToolOptimal.py:71
+#: AppTools/ToolPunchGerber.py:64
msgid "GERBER"
msgstr "GERBER"
-#: flatcamGUI/FlatCAMGUI.py:1237 flatcamTools/ToolDblSided.py:92
+#: AppGUI/MainGUI.py:1237 AppTools/ToolDblSided.py:92
msgid "EXCELLON"
msgstr "EXCELLON"
-#: flatcamGUI/FlatCAMGUI.py:1247 flatcamTools/ToolDblSided.py:120
+#: AppGUI/MainGUI.py:1247 AppTools/ToolDblSided.py:120
msgid "GEOMETRY"
msgstr "GÉOMÉTRIE"
-#: flatcamGUI/FlatCAMGUI.py:1257
+#: AppGUI/MainGUI.py:1257
msgid "CNC-JOB"
msgstr "CNC-JOB"
-#: flatcamGUI/FlatCAMGUI.py:1266 flatcamGUI/ObjectUI.py:563
-#: flatcamGUI/ObjectUI.py:2132
+#: AppGUI/MainGUI.py:1266 AppGUI/ObjectUI.py:563 AppGUI/ObjectUI.py:2262
msgid "TOOLS"
msgstr "OUTILS"
-#: flatcamGUI/FlatCAMGUI.py:1275
+#: AppGUI/MainGUI.py:1275
msgid "TOOLS 2"
msgstr "OUTILS 2"
-#: flatcamGUI/FlatCAMGUI.py:1285
+#: AppGUI/MainGUI.py:1285
msgid "UTILITIES"
msgstr "UTILITAIRES"
-#: flatcamGUI/FlatCAMGUI.py:1302
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:192
+#: AppGUI/MainGUI.py:1302
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:192
msgid "Restore Defaults"
msgstr "Restaurer les valeurs par défaut"
-#: flatcamGUI/FlatCAMGUI.py:1305
+#: AppGUI/MainGUI.py:1305
msgid ""
"Restore the entire set of default values\n"
"to the initial values loaded after first launch."
@@ -6413,19 +4445,19 @@ msgstr ""
"Restaurer l'ensemble complet des valeurs par défaut\n"
"aux valeurs initiales chargées après le premier lancement."
-#: flatcamGUI/FlatCAMGUI.py:1310
+#: AppGUI/MainGUI.py:1310
msgid "Open Pref Folder"
msgstr "Ouvrir le dossier Pref"
-#: flatcamGUI/FlatCAMGUI.py:1313
+#: AppGUI/MainGUI.py:1313
msgid "Open the folder where FlatCAM save the preferences files."
-msgstr "Ouvrez le dossier où FlatCAM enregistre les fichiers de préférences."
+msgstr "Ouvrez le dossier où FlatCAM enregistre les fichiers de paramètres."
-#: flatcamGUI/FlatCAMGUI.py:1317 flatcamGUI/FlatCAMGUI.py:2517
+#: AppGUI/MainGUI.py:1317 AppGUI/MainGUI.py:1804
msgid "Clear GUI Settings"
msgstr "Effacer les param. de GUI"
-#: flatcamGUI/FlatCAMGUI.py:1321
+#: AppGUI/MainGUI.py:1321
msgid ""
"Clear the GUI settings for FlatCAM,\n"
"such as: layout, gui state, style, hdpi support etc."
@@ -6433,588 +4465,141 @@ msgstr ""
"Effacer les paramètres de l'interface graphique pour FlatCAM,\n"
"tels que: mise en page, état graphique, style, support hdpi, etc."
-#: flatcamGUI/FlatCAMGUI.py:1332
+#: AppGUI/MainGUI.py:1332
msgid "Apply"
msgstr "Appliquer"
-#: flatcamGUI/FlatCAMGUI.py:1335
+#: AppGUI/MainGUI.py:1335
msgid "Apply the current preferences without saving to a file."
-msgstr "Appliquez les préférences actuelles sans enregistrer dans un fichier."
+msgstr "Appliquez les paramètres actuelles sans enregistrer dans un fichier."
-#: flatcamGUI/FlatCAMGUI.py:1342
+#: AppGUI/MainGUI.py:1342
msgid ""
"Save the current settings in the 'current_defaults' file\n"
"which is the file storing the working default preferences."
msgstr ""
"Enregistrer les paramètres actuels dans le fichier 'current_defaults'\n"
-"qui est le fichier stockant les préférences de travail par défaut."
+"qui est le fichier stockant les paramètres de travail par défaut."
-#: flatcamGUI/FlatCAMGUI.py:1350
+#: AppGUI/MainGUI.py:1350
msgid "Will not save the changes and will close the preferences window."
msgstr ""
-"N'enregistrera pas les modifications et fermera la fenêtre des préférences."
+"N'enregistrera pas les modifications et fermera la fenêtre des paramètres."
-#: flatcamGUI/FlatCAMGUI.py:1719
-msgid "SHOW SHORTCUT LIST"
-msgstr "MONTRER LISTE DES RACCOURCIS"
-
-#: flatcamGUI/FlatCAMGUI.py:1719
-msgid "Switch to Project Tab"
-msgstr "Passer à l'onglet Projet"
-
-#: flatcamGUI/FlatCAMGUI.py:1719
-msgid "Switch to Selected Tab"
-msgstr "Passer à l'onglet Sélectionné"
-
-#: flatcamGUI/FlatCAMGUI.py:1720
-msgid "Switch to Tool Tab"
-msgstr "Basculer vers l'onglet Outil"
-
-#: flatcamGUI/FlatCAMGUI.py:1721
-msgid "New Gerber"
-msgstr "Nouveau Gerber"
-
-#: flatcamGUI/FlatCAMGUI.py:1721
-msgid "Edit Object (if selected)"
-msgstr "Editer objet (si sélectionné)"
-
-#: flatcamGUI/FlatCAMGUI.py:1721
-msgid "Jump to Coordinates"
-msgstr "Aller aux coordonnées"
-
-#: flatcamGUI/FlatCAMGUI.py:1722
-msgid "New Excellon"
-msgstr "Nouvelle Excellon"
-
-#: flatcamGUI/FlatCAMGUI.py:1722
-msgid "Move Obj"
-msgstr "Déplacer Obj"
-
-#: flatcamGUI/FlatCAMGUI.py:1722
-msgid "New Geometry"
-msgstr "Nouvelle Géométrie"
-
-#: flatcamGUI/FlatCAMGUI.py:1722
-msgid "Change Units"
-msgstr "Changer d'unités"
-
-#: flatcamGUI/FlatCAMGUI.py:1723
-msgid "Open Properties Tool"
-msgstr "Ouvrir les Propriétés"
-
-#: flatcamGUI/FlatCAMGUI.py:1723
-msgid "Rotate by 90 degree CW"
-msgstr "Rotation de 90 degrés CW"
-
-#: flatcamGUI/FlatCAMGUI.py:1723
-msgid "Shell Toggle"
-msgstr "Shell bascule"
-
-#: flatcamGUI/FlatCAMGUI.py:1724
-msgid ""
-"Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)"
-msgstr ""
-"Ajouter un outil (dans l'onglet Géométrie sélectionnée ou dans Outils NCC ou "
-"Outils de Peinture)"
-
-#: flatcamGUI/FlatCAMGUI.py:1725
-msgid "Flip on X_axis"
-msgstr "Miroir sur l'axe des X"
-
-#: flatcamGUI/FlatCAMGUI.py:1725
-msgid "Flip on Y_axis"
-msgstr "Miroir sur l'axe des Y"
-
-#: flatcamGUI/FlatCAMGUI.py:1728
-msgid "Copy Obj"
-msgstr "Copier Obj"
-
-#: flatcamGUI/FlatCAMGUI.py:1728
-msgid "Open Tools Database"
-msgstr "Ouvrir la BD des outils"
-
-#: flatcamGUI/FlatCAMGUI.py:1729
-msgid "Open Excellon File"
-msgstr "Ouvrir le fichier Excellon"
-
-#: flatcamGUI/FlatCAMGUI.py:1729
-msgid "Open Gerber File"
-msgstr "Ouvrir le fichier Gerber"
-
-#: flatcamGUI/FlatCAMGUI.py:1729
-msgid "New Project"
-msgstr "Nouveau Projet"
-
-#: flatcamGUI/FlatCAMGUI.py:1730 flatcamTools/ToolPDF.py:42
-msgid "PDF Import Tool"
-msgstr "Outil d'importation PDF"
-
-#: flatcamGUI/FlatCAMGUI.py:1730
-msgid "Save Project"
-msgstr "Sauvegarder le projet"
-
-#: flatcamGUI/FlatCAMGUI.py:1730
-msgid "Toggle Plot Area"
-msgstr "Basculer la Zone de Tracé"
-
-#: flatcamGUI/FlatCAMGUI.py:1733
-msgid "Copy Obj_Name"
-msgstr "Copier Nom Obj"
-
-#: flatcamGUI/FlatCAMGUI.py:1734
-msgid "Toggle Code Editor"
-msgstr "Basculer l'éditeur de Code"
-
-#: flatcamGUI/FlatCAMGUI.py:1734
-msgid "Toggle the axis"
-msgstr "Basculer l'axe"
-
-#: flatcamGUI/FlatCAMGUI.py:1734 flatcamGUI/FlatCAMGUI.py:1933
-#: flatcamGUI/FlatCAMGUI.py:2020 flatcamGUI/FlatCAMGUI.py:2142
-msgid "Distance Minimum Tool"
-msgstr "Outil de Distance Minimum"
-
-#: flatcamGUI/FlatCAMGUI.py:1735
-msgid "Open Preferences Window"
-msgstr "Ouvrir la fenêtre de Préférences"
-
-#: flatcamGUI/FlatCAMGUI.py:1736
-msgid "Rotate by 90 degree CCW"
-msgstr "Faire pivoter de 90 degrés dans le sens anti-horaire"
-
-#: flatcamGUI/FlatCAMGUI.py:1736
-msgid "Run a Script"
-msgstr "Exécuter un script"
-
-#: flatcamGUI/FlatCAMGUI.py:1736
-msgid "Toggle the workspace"
-msgstr "Basculer l'espace de travail"
-
-#: flatcamGUI/FlatCAMGUI.py:1736
-msgid "Skew on X axis"
-msgstr "Fausser sur l'axe X"
-
-#: flatcamGUI/FlatCAMGUI.py:1737
-msgid "Skew on Y axis"
-msgstr "Fausser sur l'axe Y"
-
-#: flatcamGUI/FlatCAMGUI.py:1740
-msgid "2-Sided PCB Tool"
-msgstr "Outil de PCB double face"
-
-#: flatcamGUI/FlatCAMGUI.py:1740
-msgid "Transformations Tool"
-msgstr "Outil de Transformation"
-
-#: flatcamGUI/FlatCAMGUI.py:1742
-msgid "Solder Paste Dispensing Tool"
-msgstr "Outil d'application de Pâte à souder"
-
-#: flatcamGUI/FlatCAMGUI.py:1743
-msgid "Film PCB Tool"
-msgstr "Outil de PCB film"
-
-#: flatcamGUI/FlatCAMGUI.py:1743
-msgid "Non-Copper Clearing Tool"
-msgstr "Outil de Nettoyage sans Cuivre"
-
-#: flatcamGUI/FlatCAMGUI.py:1744
-msgid "Paint Area Tool"
-msgstr "Outil de Zone de Peinture"
-
-#: flatcamGUI/FlatCAMGUI.py:1744
-msgid "Rules Check Tool"
-msgstr "Outil de Vérification des Règles"
-
-#: flatcamGUI/FlatCAMGUI.py:1745
-msgid "View File Source"
-msgstr "Voir le fichier Source"
-
-#: flatcamGUI/FlatCAMGUI.py:1746
-msgid "Cutout PCB Tool"
-msgstr "Outil de Découpe PCB"
-
-#: flatcamGUI/FlatCAMGUI.py:1746
-msgid "Enable all Plots"
-msgstr "Activer tous les Dessins"
-
-#: flatcamGUI/FlatCAMGUI.py:1746
-msgid "Disable all Plots"
-msgstr "Désactiver tous les Dessins"
-
-#: flatcamGUI/FlatCAMGUI.py:1746
-msgid "Disable Non-selected Plots"
-msgstr "Désactiver les Dessins non sélectionnés"
-
-#: flatcamGUI/FlatCAMGUI.py:1747
-msgid "Toggle Full Screen"
-msgstr "Passer en plein écran"
-
-#: flatcamGUI/FlatCAMGUI.py:1750
-msgid "Abort current task (gracefully)"
-msgstr "Abandonner la tâche en cours (avec élégance)"
-
-#: flatcamGUI/FlatCAMGUI.py:1753
-msgid "Save Project As"
-msgstr "Enregistrer le projet sous"
-
-#: flatcamGUI/FlatCAMGUI.py:1754
-msgid ""
-"Paste Special. Will convert a Windows path style to the one required in Tcl "
-"Shell"
-msgstr ""
-"Collage spécial. Convertira un style de chemin d'accès Windows en celui "
-"requis dans Tcl Shell"
-
-#: flatcamGUI/FlatCAMGUI.py:1757
-msgid "Open Online Manual"
-msgstr "Ouvrir le manuel en ligne"
-
-#: flatcamGUI/FlatCAMGUI.py:1758
-msgid "Open Online Tutorials"
-msgstr "Ouvrir des tutoriels en ligne"
-
-#: flatcamGUI/FlatCAMGUI.py:1758
-msgid "Refresh Plots"
-msgstr "Actualiser les Dessins"
-
-#: flatcamGUI/FlatCAMGUI.py:1758 flatcamTools/ToolSolderPaste.py:509
-msgid "Delete Object"
-msgstr "Supprimer un objet"
-
-#: flatcamGUI/FlatCAMGUI.py:1758
-msgid "Alternate: Delete Tool"
-msgstr "Autre: Suppression de Outil"
-
-#: flatcamGUI/FlatCAMGUI.py:1759
-msgid "(left to Key_1)Toggle Notebook Area (Left Side)"
-msgstr "(à gauche de Key_1) Basculer la Zone du bloc-notes (côté gauche)"
-
-#: flatcamGUI/FlatCAMGUI.py:1759
-msgid "En(Dis)able Obj Plot"
-msgstr "(Dés)activer Obj Dessin"
-
-#: flatcamGUI/FlatCAMGUI.py:1760
-msgid "Deselects all objects"
-msgstr "Désélectionne tous les objets"
-
-#: flatcamGUI/FlatCAMGUI.py:1774
-msgid "Editor Shortcut list"
-msgstr "Liste des raccourcis de l'éditeur"
-
-#: flatcamGUI/FlatCAMGUI.py:1928
-msgid "GEOMETRY EDITOR"
-msgstr "EDITEUR DE GEOMETRIE"
-
-#: flatcamGUI/FlatCAMGUI.py:1928
-msgid "Draw an Arc"
-msgstr "Dessiner un arc"
-
-#: flatcamGUI/FlatCAMGUI.py:1928
-msgid "Copy Geo Item"
-msgstr "Copier un élém. de Géo"
-
-#: flatcamGUI/FlatCAMGUI.py:1929
-msgid "Within Add Arc will toogle the ARC direction: CW or CCW"
-msgstr "Dans Ajouter un arc va toogle la direction de l'ARC: CW ou CCW"
-
-#: flatcamGUI/FlatCAMGUI.py:1929
-msgid "Polygon Intersection Tool"
-msgstr "Outil d'intersection de polygones"
-
-#: flatcamGUI/FlatCAMGUI.py:1930
-msgid "Geo Paint Tool"
-msgstr "Outil de peinture géo"
-
-#: flatcamGUI/FlatCAMGUI.py:1930 flatcamGUI/FlatCAMGUI.py:2019
-#: flatcamGUI/FlatCAMGUI.py:2139
-msgid "Jump to Location (x, y)"
-msgstr "Aller à l'emplacement (x, y)"
-
-#: flatcamGUI/FlatCAMGUI.py:1930
-msgid "Toggle Corner Snap"
-msgstr "Basculement d'angle"
-
-#: flatcamGUI/FlatCAMGUI.py:1930
-msgid "Move Geo Item"
-msgstr "Déplacer un élément de géométrie"
-
-#: flatcamGUI/FlatCAMGUI.py:1931
-msgid "Within Add Arc will cycle through the ARC modes"
-msgstr "Dans Ajouter Arc passera en revue les modes ARC"
-
-#: flatcamGUI/FlatCAMGUI.py:1931
-msgid "Draw a Polygon"
-msgstr "Dessine un polygone"
-
-#: flatcamGUI/FlatCAMGUI.py:1931
-msgid "Draw a Circle"
-msgstr "Dessiner un cercle"
-
-#: flatcamGUI/FlatCAMGUI.py:1932
-msgid "Draw a Path"
-msgstr "Dessiner un chemin"
-
-#: flatcamGUI/FlatCAMGUI.py:1932
-msgid "Draw Rectangle"
-msgstr "Dessiner un rectangle"
-
-#: flatcamGUI/FlatCAMGUI.py:1932
-msgid "Polygon Subtraction Tool"
-msgstr "Outil de soustraction de polygone"
-
-#: flatcamGUI/FlatCAMGUI.py:1932
-msgid "Add Text Tool"
-msgstr "Ajouter un outil de texte"
-
-#: flatcamGUI/FlatCAMGUI.py:1933
-msgid "Polygon Union Tool"
-msgstr "Outil union de polygones"
-
-#: flatcamGUI/FlatCAMGUI.py:1933
-msgid "Flip shape on X axis"
-msgstr "Refléter la forme sur l'axe X"
-
-#: flatcamGUI/FlatCAMGUI.py:1933
-msgid "Flip shape on Y axis"
-msgstr "Refléter la forme sur l'axe Y"
-
-#: flatcamGUI/FlatCAMGUI.py:1934
-msgid "Skew shape on X axis"
-msgstr "Fausser de la forme sur l'axe X"
-
-#: flatcamGUI/FlatCAMGUI.py:1934
-msgid "Skew shape on Y axis"
-msgstr "Fausser de la forme sur l'axe Y"
-
-#: flatcamGUI/FlatCAMGUI.py:1934
-msgid "Editor Transformation Tool"
-msgstr "Outil de transformation de l'éditeur"
-
-#: flatcamGUI/FlatCAMGUI.py:1935
-msgid "Offset shape on X axis"
-msgstr "Forme décalée sur l'axe X"
-
-#: flatcamGUI/FlatCAMGUI.py:1935
-msgid "Offset shape on Y axis"
-msgstr "Forme décalée sur l'axe Y"
-
-#: flatcamGUI/FlatCAMGUI.py:1936 flatcamGUI/FlatCAMGUI.py:2022
-#: flatcamGUI/FlatCAMGUI.py:2144
-msgid "Save Object and Exit Editor"
-msgstr "Enregistrer l'objet et quitter l'éditeur"
-
-#: flatcamGUI/FlatCAMGUI.py:1936
-msgid "Polygon Cut Tool"
-msgstr "Outil de coupe de polygone"
-
-#: flatcamGUI/FlatCAMGUI.py:1937
-msgid "Rotate Geometry"
-msgstr "Faire pivoter la géométrie"
-
-#: flatcamGUI/FlatCAMGUI.py:1937
-msgid "Finish drawing for certain tools"
-msgstr "Terminer le dessin pour certains outils"
-
-#: flatcamGUI/FlatCAMGUI.py:1937 flatcamGUI/FlatCAMGUI.py:2022
-#: flatcamGUI/FlatCAMGUI.py:2142
-msgid "Abort and return to Select"
-msgstr "Abort and return to Select"
-
-#: flatcamGUI/FlatCAMGUI.py:1938 flatcamGUI/FlatCAMGUI.py:2734
-msgid "Delete Shape"
-msgstr "Supprimer la forme"
-
-#: flatcamGUI/FlatCAMGUI.py:2018
-msgid "EXCELLON EDITOR"
-msgstr "ÉDITEUR EXCELLON"
-
-#: flatcamGUI/FlatCAMGUI.py:2018
-msgid "Copy Drill(s)"
-msgstr "Copier les Forets"
-
-#: flatcamGUI/FlatCAMGUI.py:2018 flatcamGUI/FlatCAMGUI.py:2268
-msgid "Add Drill"
-msgstr "Ajouter une Foret"
-
-#: flatcamGUI/FlatCAMGUI.py:2019
-msgid "Move Drill(s)"
-msgstr "Déplacer les Forets"
-
-#: flatcamGUI/FlatCAMGUI.py:2020
-msgid "Add a new Tool"
-msgstr "Ajouter un nouvel outil"
-
-#: flatcamGUI/FlatCAMGUI.py:2021
-msgid "Delete Drill(s)"
-msgstr "Supprimer les Forets"
-
-#: flatcamGUI/FlatCAMGUI.py:2021
-msgid "Alternate: Delete Tool(s)"
-msgstr "Autre: Supprimer outil(s)"
-
-#: flatcamGUI/FlatCAMGUI.py:2138
-msgid "GERBER EDITOR"
-msgstr "GERBER ÉDITEUR"
-
-#: flatcamGUI/FlatCAMGUI.py:2138
-msgid "Add Disc"
-msgstr "Ajouter un Disque"
-
-#: flatcamGUI/FlatCAMGUI.py:2138
-msgid "Add SemiDisc"
-msgstr "Ajouter un Semi-disque"
-
-#: flatcamGUI/FlatCAMGUI.py:2140
-msgid "Within Track & Region Tools will cycle in REVERSE the bend modes"
-msgstr ""
-"Dans les Outils de Piste et de Région, les modes de pliage sont inversés"
-
-#: flatcamGUI/FlatCAMGUI.py:2141
-msgid "Within Track & Region Tools will cycle FORWARD the bend modes"
-msgstr ""
-"Dans les Outils de Piste et de Région, les modes de pliage sont répétés en "
-"boucle"
-
-#: flatcamGUI/FlatCAMGUI.py:2142
-msgid "Alternate: Delete Apertures"
-msgstr "Autre: Supprimer les ouvertures"
-
-#: flatcamGUI/FlatCAMGUI.py:2143
-msgid "Eraser Tool"
-msgstr "Outil pour Effacer"
-
-#: flatcamGUI/FlatCAMGUI.py:2144
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:220
-msgid "Mark Area Tool"
-msgstr "Outil Zone de Marquage"
-
-#: flatcamGUI/FlatCAMGUI.py:2144
-msgid "Poligonize Tool"
-msgstr "Outil Polygoniser"
-
-#: flatcamGUI/FlatCAMGUI.py:2144
-msgid "Transformation Tool"
-msgstr "Outil de Transformation"
-
-#: flatcamGUI/FlatCAMGUI.py:2161
+#: AppGUI/MainGUI.py:1364
msgid "Toggle Visibility"
msgstr "Basculer la Visibilité"
-#: flatcamGUI/FlatCAMGUI.py:2167
+#: AppGUI/MainGUI.py:1370
msgid "New"
msgstr "Nouveau"
-#: flatcamGUI/FlatCAMGUI.py:2169 flatcamGUI/ObjectUI.py:450
-#: flatcamObjects/FlatCAMGerber.py:239 flatcamObjects/FlatCAMGerber.py:327
-#: flatcamTools/ToolCalibration.py:631 flatcamTools/ToolCalibration.py:648
-#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144
-#: flatcamTools/ToolCopperThieving.py:158
-#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolCutOut.py:92
-#: flatcamTools/ToolDblSided.py:226 flatcamTools/ToolFilm.py:69
-#: flatcamTools/ToolFilm.py:102 flatcamTools/ToolFilm.py:549
-#: flatcamTools/ToolFilm.py:557 flatcamTools/ToolImage.py:49
-#: flatcamTools/ToolImage.py:271 flatcamTools/ToolNCC.py:95
-#: flatcamTools/ToolNCC.py:558 flatcamTools/ToolNCC.py:1300
-#: flatcamTools/ToolPaint.py:502 flatcamTools/ToolPaint.py:706
-#: flatcamTools/ToolPanelize.py:118 flatcamTools/ToolPanelize.py:374
-#: flatcamTools/ToolPanelize.py:391
+#: AppGUI/MainGUI.py:1372 AppGUI/ObjectUI.py:450
+#: AppObjects/FlatCAMGerber.py:239 AppObjects/FlatCAMGerber.py:327
+#: AppTools/ToolCalibration.py:631 AppTools/ToolCalibration.py:648
+#: AppTools/ToolCalibration.py:815 AppTools/ToolCopperThieving.py:144
+#: AppTools/ToolCopperThieving.py:158 AppTools/ToolCopperThieving.py:604
+#: AppTools/ToolCutOut.py:92 AppTools/ToolDblSided.py:226
+#: AppTools/ToolFilm.py:69 AppTools/ToolFilm.py:92 AppTools/ToolImage.py:49
+#: AppTools/ToolImage.py:271 AppTools/ToolNCC.py:95 AppTools/ToolNCC.py:558
+#: AppTools/ToolNCC.py:1300 AppTools/ToolPaint.py:501 AppTools/ToolPaint.py:705
+#: AppTools/ToolPanelize.py:116 AppTools/ToolPanelize.py:385
+#: AppTools/ToolPanelize.py:402
msgid "Geometry"
msgstr "Géométrie"
-#: flatcamGUI/FlatCAMGUI.py:2173
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:99
-#: flatcamTools/ToolAlignObjects.py:74 flatcamTools/ToolAlignObjects.py:110
-#: flatcamTools/ToolCalibration.py:197 flatcamTools/ToolCalibration.py:631
-#: flatcamTools/ToolCalibration.py:648 flatcamTools/ToolCalibration.py:807
-#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144
-#: flatcamTools/ToolCopperThieving.py:158
-#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolDblSided.py:225
-#: flatcamTools/ToolFilm.py:359 flatcamTools/ToolNCC.py:558
-#: flatcamTools/ToolNCC.py:1300 flatcamTools/ToolPaint.py:502
-#: flatcamTools/ToolPaint.py:706 flatcamTools/ToolPanelize.py:374
-#: flatcamTools/ToolPunchGerber.py:149 flatcamTools/ToolPunchGerber.py:164
+#: AppGUI/MainGUI.py:1376
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:99
+#: AppTools/ToolAlignObjects.py:74 AppTools/ToolAlignObjects.py:110
+#: AppTools/ToolCalibration.py:197 AppTools/ToolCalibration.py:631
+#: AppTools/ToolCalibration.py:648 AppTools/ToolCalibration.py:807
+#: AppTools/ToolCalibration.py:815 AppTools/ToolCopperThieving.py:144
+#: AppTools/ToolCopperThieving.py:158 AppTools/ToolCopperThieving.py:604
+#: AppTools/ToolDblSided.py:225 AppTools/ToolFilm.py:342
+#: AppTools/ToolNCC.py:558 AppTools/ToolNCC.py:1300 AppTools/ToolPaint.py:501
+#: AppTools/ToolPaint.py:705 AppTools/ToolPanelize.py:385
+#: AppTools/ToolPunchGerber.py:149 AppTools/ToolPunchGerber.py:164
msgid "Excellon"
msgstr "Excellon"
-#: flatcamGUI/FlatCAMGUI.py:2180
+#: AppGUI/MainGUI.py:1383
msgid "Grids"
-msgstr "Des grilles"
+msgstr "Pas grilles"
-#: flatcamGUI/FlatCAMGUI.py:2187
+#: AppGUI/MainGUI.py:1390
msgid "Clear Plot"
msgstr "Effacer le Dessin"
-#: flatcamGUI/FlatCAMGUI.py:2189
+#: AppGUI/MainGUI.py:1392
msgid "Replot"
msgstr "Re-Tracé"
-#: flatcamGUI/FlatCAMGUI.py:2193
+#: AppGUI/MainGUI.py:1396
msgid "Geo Editor"
msgstr "Éditeur de Géo"
-#: flatcamGUI/FlatCAMGUI.py:2195
+#: AppGUI/MainGUI.py:1398
msgid "Path"
msgstr "Chemin"
-#: flatcamGUI/FlatCAMGUI.py:2197
+#: AppGUI/MainGUI.py:1400
msgid "Rectangle"
msgstr "Rectangle"
-#: flatcamGUI/FlatCAMGUI.py:2200
+#: AppGUI/MainGUI.py:1403
msgid "Circle"
msgstr "Cercle"
-#: flatcamGUI/FlatCAMGUI.py:2204
+#: AppGUI/MainGUI.py:1407
msgid "Arc"
msgstr "Arc"
-#: flatcamGUI/FlatCAMGUI.py:2218
+#: AppGUI/MainGUI.py:1421
msgid "Union"
msgstr "Union"
-#: flatcamGUI/FlatCAMGUI.py:2220
+#: AppGUI/MainGUI.py:1423
msgid "Intersection"
msgstr "Intersection"
-#: flatcamGUI/FlatCAMGUI.py:2222
+#: AppGUI/MainGUI.py:1425
msgid "Subtraction"
msgstr "Soustraction"
-#: flatcamGUI/FlatCAMGUI.py:2224 flatcamGUI/ObjectUI.py:2221
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:56
+#: AppGUI/MainGUI.py:1427 AppGUI/ObjectUI.py:2351
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:56
msgid "Cut"
msgstr "Couper"
-#: flatcamGUI/FlatCAMGUI.py:2235
+#: AppGUI/MainGUI.py:1438
msgid "Pad"
msgstr "Pad"
-#: flatcamGUI/FlatCAMGUI.py:2237
+#: AppGUI/MainGUI.py:1440
msgid "Pad Array"
msgstr "Tableau Pad"
-#: flatcamGUI/FlatCAMGUI.py:2241
+#: AppGUI/MainGUI.py:1444
msgid "Track"
msgstr "Piste"
-#: flatcamGUI/FlatCAMGUI.py:2243
+#: AppGUI/MainGUI.py:1446
msgid "Region"
msgstr "Région"
-#: flatcamGUI/FlatCAMGUI.py:2266
+#: AppGUI/MainGUI.py:1469
msgid "Exc Editor"
msgstr "Éditeur Excellon"
-#: flatcamGUI/FlatCAMGUI.py:2311
-msgid ""
-"Relative measurement.\n"
-"Reference is last click position"
-msgstr ""
-"Mesure relative\n"
-"La référence est la position du dernier clic"
+#: AppGUI/MainGUI.py:1471 AppGUI/MainGUI.py:4310
+msgid "Add Drill"
+msgstr "Ajouter une Foret"
-#: flatcamGUI/FlatCAMGUI.py:2317
+#: AppGUI/MainGUI.py:1491 App_Main.py:2198
+msgid "Close Editor"
+msgstr "Fermer l'éditeur"
+
+#: AppGUI/MainGUI.py:1516
msgid ""
"Absolute measurement.\n"
"Reference is (X=0, Y= 0) position"
@@ -7022,35 +4607,59 @@ msgstr ""
"Mesure absolue.\n"
"La référence est (X = 0, Y = 0) position"
-#: flatcamGUI/FlatCAMGUI.py:2419
+#: AppGUI/MainGUI.py:1523
+msgid "HUD (Heads up display)"
+msgstr ""
+
+#: AppGUI/MainGUI.py:1622
msgid "Lock Toolbars"
msgstr "Verrouiller les barres d'outils"
-#: flatcamGUI/FlatCAMGUI.py:2505
+#: AppGUI/MainGUI.py:1792
msgid "FlatCAM Preferences Folder opened."
-msgstr "Dossier Préférences FlatCAM ouvert."
+msgstr "Dossier Paramètres FlatCAM ouvert."
-#: flatcamGUI/FlatCAMGUI.py:2516
+#: AppGUI/MainGUI.py:1803
msgid "Are you sure you want to delete the GUI Settings? \n"
msgstr "Êtes-vous sûr de vouloir supprimer les paramètres de GUI?\n"
-#: flatcamGUI/FlatCAMGUI.py:2624
+#: AppGUI/MainGUI.py:1806 AppGUI/preferences/PreferencesUIManager.py:941
+#: AppGUI/preferences/PreferencesUIManager.py:1179 AppTranslation.py:109
+#: AppTranslation.py:206 App_Main.py:2201 App_Main.py:3052 App_Main.py:5276
+#: App_Main.py:6336
+msgid "Yes"
+msgstr "Oui"
+
+#: AppGUI/MainGUI.py:1807 AppGUI/preferences/PreferencesUIManager.py:1180
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:164
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:150
+#: AppTools/ToolNCC.py:182 AppTools/ToolPaint.py:165 AppTranslation.py:110
+#: AppTranslation.py:207 App_Main.py:2202 App_Main.py:3053 App_Main.py:5277
+#: App_Main.py:6337
+msgid "No"
+msgstr "Non"
+
+#: AppGUI/MainGUI.py:1906
msgid "&Cutout Tool"
msgstr "Outil de Découpe"
-#: flatcamGUI/FlatCAMGUI.py:2694
+#: AppGUI/MainGUI.py:1980
msgid "Select 'Esc'"
msgstr "Sélectionnez 'Esc'"
-#: flatcamGUI/FlatCAMGUI.py:2732
+#: AppGUI/MainGUI.py:2018
msgid "Copy Objects"
msgstr "Copier des objets"
-#: flatcamGUI/FlatCAMGUI.py:2740
+#: AppGUI/MainGUI.py:2020 AppGUI/MainGUI.py:4230
+msgid "Delete Shape"
+msgstr "Supprimer la forme"
+
+#: AppGUI/MainGUI.py:2026
msgid "Move Objects"
msgstr "Déplacer des objets"
-#: flatcamGUI/FlatCAMGUI.py:3363
+#: AppGUI/MainGUI.py:2610
msgid ""
"Please first select a geometry item to be cutted\n"
"then select the geometry item that will be cutted\n"
@@ -7062,12 +4671,12 @@ msgstr ""
"sur le premier article. Appuyez à la fin de la touche ~ X ~ ou\n"
"le bouton de la barre d'outils."
-#: flatcamGUI/FlatCAMGUI.py:3370 flatcamGUI/FlatCAMGUI.py:3532
-#: flatcamGUI/FlatCAMGUI.py:3577 flatcamGUI/FlatCAMGUI.py:3597
+#: AppGUI/MainGUI.py:2617 AppGUI/MainGUI.py:2779 AppGUI/MainGUI.py:2824
+#: AppGUI/MainGUI.py:2844
msgid "Warning"
msgstr "Attention"
-#: flatcamGUI/FlatCAMGUI.py:3527
+#: AppGUI/MainGUI.py:2774
msgid ""
"Please select geometry items \n"
"on which to perform Intersection Tool."
@@ -7075,7 +4684,7 @@ msgstr ""
"Veuillez sélectionner des éléments de géométrie\n"
"sur lequel exécuter l'outil Intersection."
-#: flatcamGUI/FlatCAMGUI.py:3572
+#: AppGUI/MainGUI.py:2819
msgid ""
"Please select geometry items \n"
"on which to perform Substraction Tool."
@@ -7083,7 +4692,7 @@ msgstr ""
"Veuillez sélectionner des éléments de géométrie\n"
"sur lequel effectuer l'outil de Soustraction."
-#: flatcamGUI/FlatCAMGUI.py:3592
+#: AppGUI/MainGUI.py:2839
msgid ""
"Please select geometry items \n"
"on which to perform union."
@@ -7091,109 +4700,494 @@ msgstr ""
"Veuillez sélectionner des éléments de géométrie\n"
"sur lequel effectuer l'union."
-#: flatcamGUI/FlatCAMGUI.py:3675 flatcamGUI/FlatCAMGUI.py:3890
+#: AppGUI/MainGUI.py:2922 AppGUI/MainGUI.py:3137
msgid "Cancelled. Nothing selected to delete."
msgstr "Annulé. Rien de sélectionné à supprimer."
-#: flatcamGUI/FlatCAMGUI.py:3759 flatcamGUI/FlatCAMGUI.py:4006
+#: AppGUI/MainGUI.py:3006 AppGUI/MainGUI.py:3253
msgid "Cancelled. Nothing selected to copy."
msgstr "Annulé. Rien n'est sélectionné pour copier."
-#: flatcamGUI/FlatCAMGUI.py:3805 flatcamGUI/FlatCAMGUI.py:4035
+#: AppGUI/MainGUI.py:3052 AppGUI/MainGUI.py:3282
msgid "Cancelled. Nothing selected to move."
msgstr "Annulé. Rien de sélectionné pour bouger."
-#: flatcamGUI/FlatCAMGUI.py:4061
+#: AppGUI/MainGUI.py:3308
msgid "New Tool ..."
msgstr "Nouvel outil ..."
-#: flatcamGUI/FlatCAMGUI.py:4062 flatcamTools/ToolNCC.py:924
-#: flatcamTools/ToolPaint.py:850 flatcamTools/ToolSolderPaste.py:560
+#: AppGUI/MainGUI.py:3309 AppTools/ToolNCC.py:924 AppTools/ToolPaint.py:849
+#: AppTools/ToolSolderPaste.py:560
msgid "Enter a Tool Diameter"
msgstr "Entrer un diamètre d'outil"
-#: flatcamGUI/FlatCAMGUI.py:4074
+#: AppGUI/MainGUI.py:3321
msgid "Adding Tool cancelled ..."
msgstr "Ajout de l'outil annulé ..."
-#: flatcamGUI/FlatCAMGUI.py:4088
+#: AppGUI/MainGUI.py:3335
msgid "Distance Tool exit..."
msgstr "Distance Outil sortie ..."
-#: flatcamGUI/FlatCAMGUI.py:4323 flatcamGUI/FlatCAMGUI.py:4330
-msgid "Idle."
-msgstr "Au repos."
+#: AppGUI/MainGUI.py:3514 App_Main.py:3042
+msgid "Application is saving the project. Please wait ..."
+msgstr "Enregistrement du projet. Attendez ..."
-#: flatcamGUI/FlatCAMGUI.py:4361
-msgid "Application started ..."
-msgstr "L'application a commencé ..."
+#: AppGUI/MainGUI.py:3649 App_Main.py:9059
+msgid "Shortcut Key List"
+msgstr "Touches de raccourci"
-#: flatcamGUI/FlatCAMGUI.py:4362
-msgid "Hello!"
-msgstr "Salut!"
+#: AppGUI/MainGUI.py:4010
+#, fuzzy
+#| msgid "Key Shortcut List"
+msgid "General Shortcut list"
+msgstr "Liste de raccourcis clavier"
-#: flatcamGUI/FlatCAMGUI.py:4424
-msgid "Open Project ..."
-msgstr "Projet ouvert ..."
+#: AppGUI/MainGUI.py:4011
+msgid "SHOW SHORTCUT LIST"
+msgstr "MONTRER LISTE DES RACCOURCIS"
-#: flatcamGUI/FlatCAMGUI.py:4450
-msgid "Exit"
-msgstr "Sortie"
+#: AppGUI/MainGUI.py:4011
+msgid "Switch to Project Tab"
+msgstr "Passer à l'onglet Projet"
-#: flatcamGUI/GUIElements.py:2513
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:180
-#: flatcamTools/ToolDblSided.py:173 flatcamTools/ToolDblSided.py:388
-#: flatcamTools/ToolFilm.py:219
-msgid "Reference"
-msgstr "Référence"
+#: AppGUI/MainGUI.py:4011
+msgid "Switch to Selected Tab"
+msgstr "Passer à l'onglet Sélectionné"
-#: flatcamGUI/GUIElements.py:2515
+#: AppGUI/MainGUI.py:4012
+msgid "Switch to Tool Tab"
+msgstr "Basculer vers l'onglet Outil"
+
+#: AppGUI/MainGUI.py:4013
+msgid "New Gerber"
+msgstr "Nouveau Gerber"
+
+#: AppGUI/MainGUI.py:4013
+msgid "Edit Object (if selected)"
+msgstr "Editer objet (si sélectionné)"
+
+#: AppGUI/MainGUI.py:4013 App_Main.py:5581
+msgid "Grid On/Off"
+msgstr "Grille On/Off"
+
+#: AppGUI/MainGUI.py:4013
+msgid "Jump to Coordinates"
+msgstr "Aller aux coordonnées"
+
+#: AppGUI/MainGUI.py:4014
+msgid "New Excellon"
+msgstr "Nouvelle Excellon"
+
+#: AppGUI/MainGUI.py:4014
+msgid "Move Obj"
+msgstr "Déplacer Obj"
+
+#: AppGUI/MainGUI.py:4014
+msgid "New Geometry"
+msgstr "Nouvelle Géométrie"
+
+#: AppGUI/MainGUI.py:4014
+msgid "Change Units"
+msgstr "Changer d'unités"
+
+#: AppGUI/MainGUI.py:4015
+msgid "Open Properties Tool"
+msgstr "Ouvrir les Propriétés"
+
+#: AppGUI/MainGUI.py:4015
+msgid "Rotate by 90 degree CW"
+msgstr "Rotation de 90 degrés CW"
+
+#: AppGUI/MainGUI.py:4015
+msgid "Shell Toggle"
+msgstr "Shell bascule"
+
+#: AppGUI/MainGUI.py:4016
msgid ""
-"The reference can be:\n"
-"- Absolute -> the reference point is point (0,0)\n"
-"- Relative -> the reference point is the mouse position before Jump"
+"Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)"
msgstr ""
-"La référence peut être:\n"
-"- Absolue -> le point de référence est le point (0,0)\n"
-"- Relatif -> le point de référence est la position de la souris avant le saut"
+"Ajouter un outil (dans l'onglet Géométrie sélectionnée ou dans Outils NCC ou "
+"Outils de Peinture)"
-#: flatcamGUI/GUIElements.py:2520
-msgid "Abs"
-msgstr "Abs"
+#: AppGUI/MainGUI.py:4017
+msgid "Flip on X_axis"
+msgstr "Miroir sur l'axe des X"
-#: flatcamGUI/GUIElements.py:2521
-msgid "Relative"
-msgstr "Relatif"
+#: AppGUI/MainGUI.py:4017
+msgid "Flip on Y_axis"
+msgstr "Miroir sur l'axe des Y"
-#: flatcamGUI/GUIElements.py:2531
-msgid "Location"
-msgstr "Emplacement"
+#: AppGUI/MainGUI.py:4020
+msgid "Copy Obj"
+msgstr "Copier Obj"
-#: flatcamGUI/GUIElements.py:2533
+#: AppGUI/MainGUI.py:4020
+msgid "Open Tools Database"
+msgstr "Ouvrir la BD des outils"
+
+#: AppGUI/MainGUI.py:4021
+msgid "Open Excellon File"
+msgstr "Ouvrir le fichier Excellon"
+
+#: AppGUI/MainGUI.py:4021
+msgid "Open Gerber File"
+msgstr "Ouvrir le fichier Gerber"
+
+#: AppGUI/MainGUI.py:4021
+msgid "New Project"
+msgstr "Nouveau Projet"
+
+#: AppGUI/MainGUI.py:4022 App_Main.py:6626 App_Main.py:6629
+msgid "Open Project"
+msgstr "Ouvrir Projet"
+
+#: AppGUI/MainGUI.py:4022 AppTools/ToolPDF.py:41
+msgid "PDF Import Tool"
+msgstr "Outil d'importation PDF"
+
+#: AppGUI/MainGUI.py:4022
+msgid "Save Project"
+msgstr "Sauvegarder le projet"
+
+#: AppGUI/MainGUI.py:4022
+msgid "Toggle Plot Area"
+msgstr "Basculer la Zone de Tracé"
+
+#: AppGUI/MainGUI.py:4025
+msgid "Copy Obj_Name"
+msgstr "Copier Nom Obj"
+
+#: AppGUI/MainGUI.py:4026
+msgid "Toggle Code Editor"
+msgstr "Basculer l'éditeur de Code"
+
+#: AppGUI/MainGUI.py:4026
+msgid "Toggle the axis"
+msgstr "Basculer l'axe"
+
+#: AppGUI/MainGUI.py:4026 AppGUI/MainGUI.py:4225 AppGUI/MainGUI.py:4312
+#: AppGUI/MainGUI.py:4434
+msgid "Distance Minimum Tool"
+msgstr "Outil de Distance Minimum"
+
+#: AppGUI/MainGUI.py:4027
+msgid "Open Preferences Window"
+msgstr "Ouvrir la fenêtre de Paramètres "
+
+#: AppGUI/MainGUI.py:4028
+msgid "Rotate by 90 degree CCW"
+msgstr "Faire pivoter de 90 degrés dans le sens anti-horaire"
+
+#: AppGUI/MainGUI.py:4028
+msgid "Run a Script"
+msgstr "Exécuter un script"
+
+#: AppGUI/MainGUI.py:4028
+msgid "Toggle the workspace"
+msgstr "Basculer l'espace de travail"
+
+#: AppGUI/MainGUI.py:4028
+msgid "Skew on X axis"
+msgstr "Inclinaison sur l'axe X"
+
+#: AppGUI/MainGUI.py:4029
+msgid "Skew on Y axis"
+msgstr "Inclinaison sur l'axe Y"
+
+#: AppGUI/MainGUI.py:4032
+msgid "2-Sided PCB Tool"
+msgstr "Outil de PCB double face"
+
+#: AppGUI/MainGUI.py:4032
+msgid "Transformations Tool"
+msgstr "Outil de Transformation"
+
+#: AppGUI/MainGUI.py:4034
+msgid "Solder Paste Dispensing Tool"
+msgstr "Outil d'application de Pâte à souder"
+
+#: AppGUI/MainGUI.py:4035
+msgid "Film PCB Tool"
+msgstr "Outil de PCB film"
+
+#: AppGUI/MainGUI.py:4035
+msgid "Non-Copper Clearing Tool"
+msgstr "Outil de Nettoyage sans Cuivre"
+
+#: AppGUI/MainGUI.py:4036
+msgid "Paint Area Tool"
+msgstr "Outil de Zone de Peinture"
+
+#: AppGUI/MainGUI.py:4036
+msgid "Rules Check Tool"
+msgstr "Outil de Vérification des Règles"
+
+#: AppGUI/MainGUI.py:4037
+msgid "View File Source"
+msgstr "Voir le fichier Source"
+
+#: AppGUI/MainGUI.py:4038
+msgid "Cutout PCB Tool"
+msgstr "Outil de Découpe PCB"
+
+#: AppGUI/MainGUI.py:4038
+msgid "Enable all Plots"
+msgstr "Activer tous les Dessins"
+
+#: AppGUI/MainGUI.py:4038
+msgid "Disable all Plots"
+msgstr "Désactiver tous les Dessins"
+
+#: AppGUI/MainGUI.py:4038
+msgid "Disable Non-selected Plots"
+msgstr "Désactiver les Dessins non sélectionnés"
+
+#: AppGUI/MainGUI.py:4039
+msgid "Toggle Full Screen"
+msgstr "Passer en plein écran"
+
+#: AppGUI/MainGUI.py:4042
+msgid "Abort current task (gracefully)"
+msgstr "Abandonner la tâche en cours (avec élégance)"
+
+#: AppGUI/MainGUI.py:4045
+msgid "Save Project As"
+msgstr "Enregistrer le projet sous"
+
+#: AppGUI/MainGUI.py:4046
msgid ""
-"The Location value is a tuple (x,y).\n"
-"If the reference is Absolute then the Jump will be at the position (x,y).\n"
-"If the reference is Relative then the Jump will be at the (x,y) distance\n"
-"from the current mouse location point."
+"Paste Special. Will convert a Windows path style to the one required in Tcl "
+"Shell"
msgstr ""
-"La valeur Emplacement est un tuple (x, y).\n"
-"Si la référence est absolue, le saut sera à la position (x, y).\n"
-"Si la référence est relative, le saut sera à la distance (x, y)\n"
-"à partir du point d'emplacement actuel de la souris."
+"Collage spécial. Convertira un style de chemin d'accès Windows en celui "
+"requis dans Tcl Shell"
-#: flatcamGUI/GUIElements.py:2573
-msgid "Save Log"
-msgstr "Enregistrer le journal"
+#: AppGUI/MainGUI.py:4049
+msgid "Open Online Manual"
+msgstr "Ouvrir le manuel en ligne"
-#: flatcamGUI/GUIElements.py:2592 flatcamTools/ToolShell.py:278
-msgid "Type >help< to get started"
-msgstr "Tapez >help< pour commencer"
+#: AppGUI/MainGUI.py:4050
+msgid "Open Online Tutorials"
+msgstr "Ouvrir des tutoriels en ligne"
-#: flatcamGUI/ObjectUI.py:38
+#: AppGUI/MainGUI.py:4050
+msgid "Refresh Plots"
+msgstr "Actualiser les Dessins"
+
+#: AppGUI/MainGUI.py:4050 AppTools/ToolSolderPaste.py:509
+msgid "Delete Object"
+msgstr "Supprimer un objet"
+
+#: AppGUI/MainGUI.py:4050
+msgid "Alternate: Delete Tool"
+msgstr "Autre: Suppression de Outil"
+
+#: AppGUI/MainGUI.py:4051
+msgid "(left to Key_1)Toggle Notebook Area (Left Side)"
+msgstr "(à gauche de Key_1) Basculer la Zone du bloc-notes (côté gauche)"
+
+#: AppGUI/MainGUI.py:4051
+msgid "En(Dis)able Obj Plot"
+msgstr "(Dés)activer Obj Dessin"
+
+#: AppGUI/MainGUI.py:4052
+msgid "Deselects all objects"
+msgstr "Désélectionne tous les objets"
+
+#: AppGUI/MainGUI.py:4066
+msgid "Editor Shortcut list"
+msgstr "Liste des raccourcis de l'éditeur"
+
+#: AppGUI/MainGUI.py:4220
+msgid "GEOMETRY EDITOR"
+msgstr "EDITEUR DE GEOMETRIE"
+
+#: AppGUI/MainGUI.py:4220
+msgid "Draw an Arc"
+msgstr "Dessiner un arc"
+
+#: AppGUI/MainGUI.py:4220
+msgid "Copy Geo Item"
+msgstr "Copier un élém. de Géo"
+
+#: AppGUI/MainGUI.py:4221
+msgid "Within Add Arc will toogle the ARC direction: CW or CCW"
+msgstr "Dans Ajouter un arc va toogle la direction de l'ARC: CW ou CCW"
+
+#: AppGUI/MainGUI.py:4221
+msgid "Polygon Intersection Tool"
+msgstr "Outil d'intersection de polygones"
+
+#: AppGUI/MainGUI.py:4222
+msgid "Geo Paint Tool"
+msgstr "Outil de peinture géo"
+
+#: AppGUI/MainGUI.py:4222 AppGUI/MainGUI.py:4311 AppGUI/MainGUI.py:4431
+msgid "Jump to Location (x, y)"
+msgstr "Aller à l'emplacement (x, y)"
+
+#: AppGUI/MainGUI.py:4222
+msgid "Toggle Corner Snap"
+msgstr "Basculement d'angle"
+
+#: AppGUI/MainGUI.py:4222
+msgid "Move Geo Item"
+msgstr "Déplacer un élément de géométrie"
+
+#: AppGUI/MainGUI.py:4223
+msgid "Within Add Arc will cycle through the ARC modes"
+msgstr "Dans Ajouter Arc passera en revue les modes ARC"
+
+#: AppGUI/MainGUI.py:4223
+msgid "Draw a Polygon"
+msgstr "Dessine un polygone"
+
+#: AppGUI/MainGUI.py:4223
+msgid "Draw a Circle"
+msgstr "Dessiner un cercle"
+
+#: AppGUI/MainGUI.py:4224
+msgid "Draw a Path"
+msgstr "Dessiner un chemin"
+
+#: AppGUI/MainGUI.py:4224
+msgid "Draw Rectangle"
+msgstr "Dessiner un rectangle"
+
+#: AppGUI/MainGUI.py:4224
+msgid "Polygon Subtraction Tool"
+msgstr "Outil de soustraction de polygone"
+
+#: AppGUI/MainGUI.py:4224
+msgid "Add Text Tool"
+msgstr "Ajouter un outil de texte"
+
+#: AppGUI/MainGUI.py:4225
+msgid "Polygon Union Tool"
+msgstr "Outil union de polygones"
+
+#: AppGUI/MainGUI.py:4225
+msgid "Flip shape on X axis"
+msgstr "Refléter la forme sur l'axe X"
+
+#: AppGUI/MainGUI.py:4225
+msgid "Flip shape on Y axis"
+msgstr "Refléter la forme sur l'axe Y"
+
+#: AppGUI/MainGUI.py:4226
+msgid "Skew shape on X axis"
+msgstr "Inclinaison de la forme sur l'axe X"
+
+#: AppGUI/MainGUI.py:4226
+msgid "Skew shape on Y axis"
+msgstr "Inclinaison de la forme sur l'axe Y"
+
+#: AppGUI/MainGUI.py:4226
+msgid "Editor Transformation Tool"
+msgstr "Outil de transformation de l'éditeur"
+
+#: AppGUI/MainGUI.py:4227
+msgid "Offset shape on X axis"
+msgstr "Forme décalée sur l'axe X"
+
+#: AppGUI/MainGUI.py:4227
+msgid "Offset shape on Y axis"
+msgstr "Forme décalée sur l'axe Y"
+
+#: AppGUI/MainGUI.py:4228 AppGUI/MainGUI.py:4314 AppGUI/MainGUI.py:4436
+msgid "Save Object and Exit Editor"
+msgstr "Enregistrer l'objet et quitter l'éditeur"
+
+#: AppGUI/MainGUI.py:4228
+msgid "Polygon Cut Tool"
+msgstr "Outil de coupe de polygone"
+
+#: AppGUI/MainGUI.py:4229
+msgid "Rotate Geometry"
+msgstr "Faire pivoter la géométrie"
+
+#: AppGUI/MainGUI.py:4229
+msgid "Finish drawing for certain tools"
+msgstr "Terminer le dessin pour certains outils"
+
+#: AppGUI/MainGUI.py:4229 AppGUI/MainGUI.py:4314 AppGUI/MainGUI.py:4434
+msgid "Abort and return to Select"
+msgstr "Abort and return to Select"
+
+#: AppGUI/MainGUI.py:4310
+msgid "EXCELLON EDITOR"
+msgstr "ÉDITEUR EXCELLON"
+
+#: AppGUI/MainGUI.py:4310
+msgid "Copy Drill(s)"
+msgstr "Copier les Forets"
+
+#: AppGUI/MainGUI.py:4311
+msgid "Move Drill(s)"
+msgstr "Déplacer les Forets"
+
+#: AppGUI/MainGUI.py:4312
+msgid "Add a new Tool"
+msgstr "Ajouter un nouvel outil"
+
+#: AppGUI/MainGUI.py:4313
+msgid "Delete Drill(s)"
+msgstr "Supprimer les Forets"
+
+#: AppGUI/MainGUI.py:4313
+msgid "Alternate: Delete Tool(s)"
+msgstr "Autre: Supprimer outil(s)"
+
+#: AppGUI/MainGUI.py:4430
+msgid "GERBER EDITOR"
+msgstr "GERBER ÉDITEUR"
+
+#: AppGUI/MainGUI.py:4430
+msgid "Add Disc"
+msgstr "Ajouter un Disque"
+
+#: AppGUI/MainGUI.py:4430
+msgid "Add SemiDisc"
+msgstr "Ajouter un Semi-disque"
+
+#: AppGUI/MainGUI.py:4432
+msgid "Within Track & Region Tools will cycle in REVERSE the bend modes"
+msgstr ""
+"Dans les Outils de Piste et de Région, les modes de pliage sont inversés"
+
+#: AppGUI/MainGUI.py:4433
+msgid "Within Track & Region Tools will cycle FORWARD the bend modes"
+msgstr ""
+"Dans les Outils de Piste et de Région, les modes de pliage sont répétés en "
+"boucle"
+
+#: AppGUI/MainGUI.py:4434
+msgid "Alternate: Delete Apertures"
+msgstr "Autre: Supprimer les ouvertures"
+
+#: AppGUI/MainGUI.py:4435
+msgid "Eraser Tool"
+msgstr "Outil pour Effacer"
+
+#: AppGUI/MainGUI.py:4436
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:220
+msgid "Mark Area Tool"
+msgstr "Outil Zone de Marquage"
+
+#: AppGUI/MainGUI.py:4436
+msgid "Poligonize Tool"
+msgstr "Outil Polygoniser"
+
+#: AppGUI/MainGUI.py:4436
+msgid "Transformation Tool"
+msgstr "Outil de Transformation"
+
+#: AppGUI/ObjectUI.py:38
msgid "FlatCAM Object"
msgstr "Objet FlatCAM"
-#: flatcamGUI/ObjectUI.py:78
+#: AppGUI/ObjectUI.py:78
msgid ""
"BASIC is suitable for a beginner. Many parameters\n"
"are hidden from the user in this mode.\n"
@@ -7208,14 +5202,14 @@ msgstr ""
"Le mode Avancé rendra disponible tous les paramètres.\n"
"\n"
"Pour changer le niveau de l'application, allez à:\n"
-"Édition -> Préférences -> Général et vérifiez:\n"
+"Édition -> Paramètres -> Général et vérifiez:\n"
"Bouton radio 'APP. NIVEAU'."
-#: flatcamGUI/ObjectUI.py:111
+#: AppGUI/ObjectUI.py:111
msgid "Geometrical transformations of the current object."
msgstr "Transformations géométriques de l'objet courant."
-#: flatcamGUI/ObjectUI.py:120
+#: AppGUI/ObjectUI.py:120
msgid ""
"Factor by which to multiply\n"
"geometric features of this object.\n"
@@ -7225,11 +5219,11 @@ msgstr ""
"caractéristiques géométriques de cet objet.\n"
"Les expressions sont autorisées. Par exemple: 1 / 25.4"
-#: flatcamGUI/ObjectUI.py:127
+#: AppGUI/ObjectUI.py:127
msgid "Perform scaling operation."
msgstr "Effectuer l'opération de mise à l'échelle."
-#: flatcamGUI/ObjectUI.py:138
+#: AppGUI/ObjectUI.py:138
msgid ""
"Amount by which to move the object\n"
"in the x and y axes in (x, y) format.\n"
@@ -7239,61 +5233,65 @@ msgstr ""
"dans les axes x et y au format (x, y).\n"
"Les expressions sont autorisées. Par exemple: (1/3.2, 0.5*3)"
-#: flatcamGUI/ObjectUI.py:145
+#: AppGUI/ObjectUI.py:145
msgid "Perform the offset operation."
msgstr "Effectuer l'opération de décalage."
-#: flatcamGUI/ObjectUI.py:178
-msgid "Gerber Object"
-msgstr "Objet de Gerber"
+#: AppGUI/ObjectUI.py:157 AppGUI/ObjectUI.py:164 AppTool.py:281 AppTool.py:287
+msgid "Edited value is out of range"
+msgstr "La valeur modifiée est hors limites"
-#: flatcamGUI/ObjectUI.py:187 flatcamGUI/ObjectUI.py:730
-#: flatcamGUI/ObjectUI.py:1426 flatcamGUI/ObjectUI.py:2205
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:30
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:33
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:31
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:31
+#: AppGUI/ObjectUI.py:159 AppGUI/ObjectUI.py:166 AppTool.py:283 AppTool.py:289
+msgid "Edited value is within limits."
+msgstr "La valeur modifiée est dans les limites."
+
+#: AppGUI/ObjectUI.py:178
+msgid "Gerber Object"
+msgstr "Objet Gerber"
+
+#: AppGUI/ObjectUI.py:187 AppGUI/ObjectUI.py:730 AppGUI/ObjectUI.py:1528
+#: AppGUI/ObjectUI.py:2335 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:30
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:33
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:31
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:31
msgid "Plot Options"
msgstr "Options de Tracé"
-#: flatcamGUI/ObjectUI.py:193 flatcamGUI/ObjectUI.py:731
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:45
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:38
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119
-#: flatcamTools/ToolCopperThieving.py:191
+#: AppGUI/ObjectUI.py:193 AppGUI/ObjectUI.py:731
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:45
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:38
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119
+#: AppTools/ToolCopperThieving.py:191
msgid "Solid"
msgstr "Solide"
-#: flatcamGUI/ObjectUI.py:195
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:40
+#: AppGUI/ObjectUI.py:195 AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:40
msgid "Solid color polygons."
msgstr "Polygones de couleur unie."
-#: flatcamGUI/ObjectUI.py:201
+#: AppGUI/ObjectUI.py:201
msgid "Multi-Color"
msgstr "Multicolore"
-#: flatcamGUI/ObjectUI.py:203
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:47
+#: AppGUI/ObjectUI.py:203 AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:47
msgid "Draw polygons in different colors."
msgstr "Dessine des polygones de différentes couleurs."
-#: flatcamGUI/ObjectUI.py:209 flatcamGUI/ObjectUI.py:769
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:39
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:35
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:52
+#: AppGUI/ObjectUI.py:209 AppGUI/ObjectUI.py:769
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:39
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:35
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:52
msgid "Plot"
msgstr "Dessin"
-#: flatcamGUI/ObjectUI.py:211 flatcamGUI/ObjectUI.py:771
-#: flatcamGUI/ObjectUI.py:1486 flatcamGUI/ObjectUI.py:2315
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:41
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:37
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:54
+#: AppGUI/ObjectUI.py:211 AppGUI/ObjectUI.py:771 AppGUI/ObjectUI.py:1588
+#: AppGUI/ObjectUI.py:2445 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:41
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:37
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:54
msgid "Plot (show) this object."
msgstr "Tracer (afficher) cet objet."
-#: flatcamGUI/ObjectUI.py:239
+#: AppGUI/ObjectUI.py:239
msgid ""
"Toggle the display of the Gerber Apertures Table.\n"
"When unchecked, it will delete all mark shapes\n"
@@ -7304,11 +5302,11 @@ msgstr ""
"supprimées\n"
"qui sont dessinés sur une toile."
-#: flatcamGUI/ObjectUI.py:249
+#: AppGUI/ObjectUI.py:249
msgid "Mark All"
msgstr "Marquer tout"
-#: flatcamGUI/ObjectUI.py:251
+#: AppGUI/ObjectUI.py:251
msgid ""
"When checked it will display all the apertures.\n"
"When unchecked, it will delete all mark shapes\n"
@@ -7319,17 +5317,15 @@ msgstr ""
"supprimées\n"
"qui sont dessinés sur une toile."
-#: flatcamGUI/ObjectUI.py:279
+#: AppGUI/ObjectUI.py:279
msgid "Mark the aperture instances on canvas."
msgstr "Marquez les occurrences d’ouverture sur la toile."
-#: flatcamGUI/ObjectUI.py:291
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:32
+#: AppGUI/ObjectUI.py:291 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:32
msgid "Isolation Routing"
msgstr "Routage d'isolement"
-#: flatcamGUI/ObjectUI.py:293
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:34
+#: AppGUI/ObjectUI.py:293 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:34
msgid ""
"Create a Geometry object with\n"
"toolpaths to cut outside polygons."
@@ -7337,8 +5333,8 @@ msgstr ""
"Créez un objet de géométrie avec\n"
"parcours d’outils pour couper des polygones extérieurs."
-#: flatcamGUI/ObjectUI.py:311
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:69
+#: AppGUI/ObjectUI.py:311
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:69
msgid ""
"Choose which tool to use for Gerber isolation:\n"
"'Circular' or 'V-shape'.\n"
@@ -7350,43 +5346,41 @@ msgstr ""
"Lorsque la \"Forme en V\" est sélectionnée, l'outil\n"
"Le diamètre dépendra de la profondeur de coupe choisie."
-#: flatcamGUI/ObjectUI.py:317
+#: AppGUI/ObjectUI.py:317
msgid "V-Shape"
msgstr "Forme en V"
-#: flatcamGUI/ObjectUI.py:323 flatcamGUI/ObjectUI.py:1672
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:81
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:72
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:78
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:85
-#: flatcamTools/ToolNCC.py:233 flatcamTools/ToolNCC.py:240
-#: flatcamTools/ToolPaint.py:216
+#: AppGUI/ObjectUI.py:323 AppGUI/ObjectUI.py:1774
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:81
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:72
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:78
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:85 AppTools/ToolNCC.py:233
+#: AppTools/ToolNCC.py:240 AppTools/ToolPaint.py:215
msgid "V-Tip Dia"
-msgstr "Dia V-Tip"
+msgstr "Diam V-Tip"
-#: flatcamGUI/ObjectUI.py:325 flatcamGUI/ObjectUI.py:1675
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:83
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:74
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:80
-#: flatcamTools/ToolNCC.py:235 flatcamTools/ToolPaint.py:218
+#: AppGUI/ObjectUI.py:325 AppGUI/ObjectUI.py:1777
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:83
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:74
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:80 AppTools/ToolNCC.py:235
+#: AppTools/ToolPaint.py:217
msgid "The tip diameter for V-Shape Tool"
msgstr "Le diamètre de la pointe pour l'outil en forme de V"
-#: flatcamGUI/ObjectUI.py:336 flatcamGUI/ObjectUI.py:1687
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:94
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:84
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:91
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:99
-#: flatcamTools/ToolNCC.py:246 flatcamTools/ToolNCC.py:254
-#: flatcamTools/ToolPaint.py:229
+#: AppGUI/ObjectUI.py:336 AppGUI/ObjectUI.py:1789
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:94
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:84
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:91
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:99 AppTools/ToolNCC.py:246
+#: AppTools/ToolNCC.py:254 AppTools/ToolPaint.py:228
msgid "V-Tip Angle"
msgstr "Angle en V-tip"
-#: flatcamGUI/ObjectUI.py:338 flatcamGUI/ObjectUI.py:1690
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:96
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:86
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:93
-#: flatcamTools/ToolNCC.py:248 flatcamTools/ToolPaint.py:231
+#: AppGUI/ObjectUI.py:338 AppGUI/ObjectUI.py:1792
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:96
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:86
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:93 AppTools/ToolNCC.py:248
+#: AppTools/ToolPaint.py:230
msgid ""
"The tip angle for V-Shape Tool.\n"
"In degree."
@@ -7394,11 +5388,11 @@ msgstr ""
"L'angle de pointe pour l'outil en forme de V\n"
"En degré."
-#: flatcamGUI/ObjectUI.py:352 flatcamGUI/ObjectUI.py:1706
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:50
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:109
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61
-#: flatcamObjects/FlatCAMGeometry.py:1174 flatcamTools/ToolCutOut.py:141
+#: AppGUI/ObjectUI.py:352 AppGUI/ObjectUI.py:1808
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:50
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:109
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61
+#: AppObjects/FlatCAMGeometry.py:1229 AppTools/ToolCutOut.py:141
msgid ""
"Cutting depth (negative)\n"
"below the copper surface."
@@ -7406,7 +5400,7 @@ msgstr ""
"Profondeur de coupe (négatif)\n"
"sous la surface de cuivre."
-#: flatcamGUI/ObjectUI.py:366
+#: AppGUI/ObjectUI.py:366
msgid ""
"Diameter of the cutting tool.\n"
"If you want to have an isolation path\n"
@@ -7420,13 +5414,11 @@ msgstr ""
"fonction, utilisez une valeur négative pour\n"
"ce paramètre."
-#: flatcamGUI/ObjectUI.py:382
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:56
+#: AppGUI/ObjectUI.py:382 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:56
msgid "# Passes"
-msgstr "# Passes"
+msgstr "Nbres Passes"
-#: flatcamGUI/ObjectUI.py:384
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:58
+#: AppGUI/ObjectUI.py:384 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:58
msgid ""
"Width of the isolation gap in\n"
"number (integer) of tool widths."
@@ -7434,21 +5426,19 @@ msgstr ""
"Largeur du fossé d'isolement dans\n"
"nombre (entier) de largeurs d'outil."
-#: flatcamGUI/ObjectUI.py:395
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:68
+#: AppGUI/ObjectUI.py:395 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:68
msgid "Pass overlap"
-msgstr "Passe chevauchement"
+msgstr "Chevauchement"
-#: flatcamGUI/ObjectUI.py:397
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:70
+#: AppGUI/ObjectUI.py:397 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:70
msgid "How much (percentage) of the tool width to overlap each tool pass."
msgstr ""
"La quantité (pourcentage) de la largeur d'outil qui chevauche chaque passe "
"d'outil."
-#: flatcamGUI/ObjectUI.py:411
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:58
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:97
+#: AppGUI/ObjectUI.py:411
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:58
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:97
msgid ""
"Milling type:\n"
"- climb / best for precision milling and to reduce tool usage\n"
@@ -7459,22 +5449,21 @@ msgstr ""
"d'outils\n"
"- conventionnel / utile quand il n'y a pas de compensation de jeu"
-#: flatcamGUI/ObjectUI.py:421
+#: AppGUI/ObjectUI.py:421
msgid "Combine"
msgstr "Combiner"
-#: flatcamGUI/ObjectUI.py:423
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:109
+#: AppGUI/ObjectUI.py:423 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:109
msgid "Combine all passes into one object"
msgstr "Combine tous les passages dans un objet"
-#: flatcamGUI/ObjectUI.py:427
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:43
+#: AppGUI/ObjectUI.py:427
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:43
msgid "\"Follow\""
msgstr "\"Suivre\""
-#: flatcamGUI/ObjectUI.py:428
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:45
+#: AppGUI/ObjectUI.py:428
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:45
msgid ""
"Generate a 'Follow' geometry.\n"
"This means that it will cut through\n"
@@ -7484,11 +5473,11 @@ msgstr ""
"Cela signifie qu'il va couper à travers\n"
"le milieu de la trace."
-#: flatcamGUI/ObjectUI.py:434
+#: AppGUI/ObjectUI.py:434
msgid "Except"
msgstr "Sauf"
-#: flatcamGUI/ObjectUI.py:437
+#: AppGUI/ObjectUI.py:437
msgid ""
"When the isolation geometry is generated,\n"
"by checking this, the area of the object below\n"
@@ -7498,33 +5487,29 @@ msgstr ""
"en vérifiant cela, la zone de l'objet ci-dessous\n"
"sera soustrait de la géométrie d'isolement."
-#: flatcamGUI/ObjectUI.py:450
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:97
-#: flatcamObjects/FlatCAMGerber.py:239 flatcamObjects/FlatCAMGerber.py:327
-#: flatcamTools/ToolAlignObjects.py:73 flatcamTools/ToolAlignObjects.py:109
-#: flatcamTools/ToolCalibration.py:196 flatcamTools/ToolCalibration.py:631
-#: flatcamTools/ToolCalibration.py:648 flatcamTools/ToolCalibration.py:807
-#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144
-#: flatcamTools/ToolCopperThieving.py:158
-#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolCutOut.py:91
-#: flatcamTools/ToolDblSided.py:224 flatcamTools/ToolFilm.py:69
-#: flatcamTools/ToolFilm.py:102 flatcamTools/ToolFilm.py:549
-#: flatcamTools/ToolFilm.py:557 flatcamTools/ToolImage.py:49
-#: flatcamTools/ToolImage.py:252 flatcamTools/ToolImage.py:273
-#: flatcamTools/ToolNCC.py:96 flatcamTools/ToolNCC.py:558
-#: flatcamTools/ToolNCC.py:1300 flatcamTools/ToolPaint.py:502
-#: flatcamTools/ToolPaint.py:706 flatcamTools/ToolPanelize.py:118
-#: flatcamTools/ToolPanelize.py:204 flatcamTools/ToolPanelize.py:374
-#: flatcamTools/ToolPanelize.py:391
+#: AppGUI/ObjectUI.py:450
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:97
+#: AppObjects/FlatCAMGerber.py:239 AppObjects/FlatCAMGerber.py:327
+#: AppTools/ToolAlignObjects.py:73 AppTools/ToolAlignObjects.py:109
+#: AppTools/ToolCalibration.py:196 AppTools/ToolCalibration.py:631
+#: AppTools/ToolCalibration.py:648 AppTools/ToolCalibration.py:807
+#: AppTools/ToolCalibration.py:815 AppTools/ToolCopperThieving.py:144
+#: AppTools/ToolCopperThieving.py:158 AppTools/ToolCopperThieving.py:604
+#: AppTools/ToolCutOut.py:91 AppTools/ToolDblSided.py:224
+#: AppTools/ToolFilm.py:68 AppTools/ToolFilm.py:91 AppTools/ToolImage.py:49
+#: AppTools/ToolImage.py:252 AppTools/ToolImage.py:273 AppTools/ToolNCC.py:96
+#: AppTools/ToolNCC.py:558 AppTools/ToolNCC.py:1300 AppTools/ToolPaint.py:501
+#: AppTools/ToolPaint.py:705 AppTools/ToolPanelize.py:116
+#: AppTools/ToolPanelize.py:210 AppTools/ToolPanelize.py:385
+#: AppTools/ToolPanelize.py:402
msgid "Gerber"
msgstr "Gerber"
-#: flatcamGUI/ObjectUI.py:457 flatcamTools/ToolNCC.py:86
-#: flatcamTools/ToolPaint.py:80
+#: AppGUI/ObjectUI.py:457 AppTools/ToolNCC.py:86 AppTools/ToolPaint.py:79
msgid "Obj Type"
msgstr "Type d'objet"
-#: flatcamGUI/ObjectUI.py:459
+#: AppGUI/ObjectUI.py:459
msgid ""
"Specify the type of object to be excepted from isolation.\n"
"It can be of type: Gerber or Geometry.\n"
@@ -7536,25 +5521,23 @@ msgstr ""
"Ce qui est sélectionné ici dictera le genre\n"
"des objets qui vont remplir la liste déroulante 'Object'."
-#: flatcamGUI/ObjectUI.py:472
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:48
-#: flatcamTools/ToolCalibration.py:186 flatcamTools/ToolNCC.py:109
-#: flatcamTools/ToolPaint.py:103 flatcamTools/ToolPanelize.py:100
-#: flatcamTools/ToolQRCode.py:78
+#: AppGUI/ObjectUI.py:472 AppGUI/ObjectUI.py:1324 AppGUI/ObjectUI.py:2158
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:48
+#: AppTools/ToolCalibration.py:186 AppTools/ToolNCC.py:109
+#: AppTools/ToolPaint.py:102 AppTools/ToolPanelize.py:98
+#: AppTools/ToolQRCode.py:78
msgid "Object"
msgstr "Objet"
-#: flatcamGUI/ObjectUI.py:473
+#: AppGUI/ObjectUI.py:473
msgid "Object whose area will be removed from isolation geometry."
msgstr "Objet dont l'aire sera retirée de la géométrie d'isolation."
-#: flatcamGUI/ObjectUI.py:480
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:82
+#: AppGUI/ObjectUI.py:480 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:82
msgid "Scope"
msgstr "Portée"
-#: flatcamGUI/ObjectUI.py:482
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:84
+#: AppGUI/ObjectUI.py:482 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:84
msgid ""
"Isolation scope. Choose what to isolate:\n"
"- 'All' -> Isolate all the polygons in the object\n"
@@ -7564,22 +5547,22 @@ msgstr ""
"- 'Tout' -> Isoler tous les polygones de l'objet\n"
"- 'Sélection' -> Isoler une sélection de polygones."
-#: flatcamGUI/ObjectUI.py:487
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:307
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:89
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:311
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:258
-#: flatcamTools/ToolNCC.py:539 flatcamTools/ToolPaint.py:456
+#: AppGUI/ObjectUI.py:487
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:307
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:89
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:311
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:258
+#: AppTools/ToolNCC.py:539 AppTools/ToolPaint.py:455
msgid "Selection"
msgstr "Sélection"
-#: flatcamGUI/ObjectUI.py:495
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:122
+#: AppGUI/ObjectUI.py:495
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:122
msgid "Isolation Type"
msgstr "Type d'isolement"
-#: flatcamGUI/ObjectUI.py:497
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:124
+#: AppGUI/ObjectUI.py:497
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:124
msgid ""
"Choose how the isolation will be executed:\n"
"- 'Full' -> complete isolation of polygons\n"
@@ -7600,25 +5583,25 @@ msgstr ""
"à l'intérieur du polygone (par exemple, le polygone est une forme de `` "
"beignet '')."
-#: flatcamGUI/ObjectUI.py:506
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:133
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:154
+#: AppGUI/ObjectUI.py:506
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:133
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:154
msgid "Full"
msgstr "Plein"
-#: flatcamGUI/ObjectUI.py:507
+#: AppGUI/ObjectUI.py:507
msgid "Ext"
msgstr "Ext"
-#: flatcamGUI/ObjectUI.py:508
+#: AppGUI/ObjectUI.py:508
msgid "Int"
msgstr "Int"
-#: flatcamGUI/ObjectUI.py:513
+#: AppGUI/ObjectUI.py:513
msgid "Generate Isolation Geometry"
msgstr "Générer une géométrie d'isolation"
-#: flatcamGUI/ObjectUI.py:521
+#: AppGUI/ObjectUI.py:521
msgid ""
"Create a Geometry object with toolpaths to cut \n"
"isolation outside, inside or on both sides of the\n"
@@ -7630,7 +5613,7 @@ msgid ""
"inside the actual Gerber feature, use a negative tool\n"
"diameter above."
msgstr ""
-"Créer un objet Geometry avec des parcours à couper\n"
+"Créer un objet Géometrie avec des parcours à couper\n"
"isolement à l'extérieur, à l'intérieur ou des deux côtés du\n"
"objet. Pour un objet Gerber dehors signifie dehors\n"
"de la fonction Gerber et à l'intérieur des moyens à l'intérieur de\n"
@@ -7640,11 +5623,11 @@ msgstr ""
"à l'intérieur de la fonction Gerber, utilisez un outil négatif\n"
"diamètre ci-dessus."
-#: flatcamGUI/ObjectUI.py:533
+#: AppGUI/ObjectUI.py:533
msgid "Buffer Solid Geometry"
msgstr "Tampon Géométrie Solide"
-#: flatcamGUI/ObjectUI.py:535
+#: AppGUI/ObjectUI.py:535
msgid ""
"This button is shown only when the Gerber file\n"
"is loaded without buffering.\n"
@@ -7656,12 +5639,11 @@ msgstr ""
"En cliquant sur cela créera la géométrie en mémoire tampon\n"
"requis pour l'isolement."
-#: flatcamGUI/ObjectUI.py:567
+#: AppGUI/ObjectUI.py:567
msgid "Clear N-copper"
msgstr "N-Cuivre Clair"
-#: flatcamGUI/ObjectUI.py:569
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:33
+#: AppGUI/ObjectUI.py:569 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:33
msgid ""
"Create a Geometry object with\n"
"toolpaths to cut all non-copper regions."
@@ -7669,8 +5651,7 @@ msgstr ""
"Créez un objet de géométrie avec\n"
"des parcours pour couper toutes les régions non-cuivre."
-#: flatcamGUI/ObjectUI.py:576 flatcamGUI/ObjectUI.py:2159
-#: flatcamTools/ToolNCC.py:599
+#: AppGUI/ObjectUI.py:576 AppGUI/ObjectUI.py:2289 AppTools/ToolNCC.py:599
msgid ""
"Create the Geometry Object\n"
"for non-copper routing."
@@ -7678,22 +5659,20 @@ msgstr ""
"Créer l'objet de géométrie\n"
"pour un routage non-cuivre."
-#: flatcamGUI/ObjectUI.py:589
+#: AppGUI/ObjectUI.py:589
msgid "Board cutout"
-msgstr "Découpe de la planche"
+msgstr "Découpe de la plaque"
-#: flatcamGUI/ObjectUI.py:591
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:34
+#: AppGUI/ObjectUI.py:591 AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:34
msgid ""
"Create toolpaths to cut around\n"
"the PCB and separate it from\n"
"the original board."
msgstr ""
-"Créer des parcours d'outil à découper\n"
-"le PCB et séparez-le de\n"
-"la planche d'origine."
+"Créer un parcours afin de découper\n"
+"la Plaque PCB."
-#: flatcamGUI/ObjectUI.py:598
+#: AppGUI/ObjectUI.py:598
msgid ""
"Generate the geometry for\n"
"the board cutout."
@@ -7701,13 +5680,11 @@ msgstr ""
"Générer la géométrie pour\n"
"la découpe de la planche."
-#: flatcamGUI/ObjectUI.py:616
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:119
+#: AppGUI/ObjectUI.py:616 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:119
msgid "Non-copper regions"
msgstr "Régions non-cuivre"
-#: flatcamGUI/ObjectUI.py:618
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:121
+#: AppGUI/ObjectUI.py:618 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:121
msgid ""
"Create polygons covering the\n"
"areas without copper on the PCB.\n"
@@ -7721,14 +5698,13 @@ msgstr ""
"objet. Peut être utilisé pour tout enlever\n"
"cuivre provenant d'une région spécifiée."
-#: flatcamGUI/ObjectUI.py:628 flatcamGUI/ObjectUI.py:669
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:133
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:166
+#: AppGUI/ObjectUI.py:628 AppGUI/ObjectUI.py:669
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:133
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:166
msgid "Boundary Margin"
msgstr "Marge limite"
-#: flatcamGUI/ObjectUI.py:630
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:135
+#: AppGUI/ObjectUI.py:630 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:135
msgid ""
"Specify the edge of the PCB\n"
"by drawing a box around all\n"
@@ -7740,30 +5716,28 @@ msgstr ""
"objets avec ce minimum\n"
"distance."
-#: flatcamGUI/ObjectUI.py:645 flatcamGUI/ObjectUI.py:683
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:148
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:179
+#: AppGUI/ObjectUI.py:645 AppGUI/ObjectUI.py:683
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:148
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:179
msgid "Rounded Geo"
msgstr "Géométrie Arrondie"
-#: flatcamGUI/ObjectUI.py:647
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:150
+#: AppGUI/ObjectUI.py:647 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:150
msgid "Resulting geometry will have rounded corners."
msgstr "La géométrie résultante aura des coins arrondis."
-#: flatcamGUI/ObjectUI.py:651 flatcamGUI/ObjectUI.py:692
-#: flatcamTools/ToolSolderPaste.py:134
+#: AppGUI/ObjectUI.py:651 AppGUI/ObjectUI.py:692
+#: AppTools/ToolSolderPaste.py:134
msgid "Generate Geo"
msgstr "Générer de la Géo"
-#: flatcamGUI/ObjectUI.py:661
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:160
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137
-#: flatcamTools/ToolPanelize.py:101 flatcamTools/ToolQRCode.py:192
+#: AppGUI/ObjectUI.py:661 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:160
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137
+#: AppTools/ToolPanelize.py:99 AppTools/ToolQRCode.py:192
msgid "Bounding Box"
msgstr "Cadre de sélection"
-#: flatcamGUI/ObjectUI.py:663
+#: AppGUI/ObjectUI.py:663
msgid ""
"Create a geometry surrounding the Gerber object.\n"
"Square shape."
@@ -7771,8 +5745,7 @@ msgstr ""
"Créez une géométrie entourant l'objet Gerber.\n"
"Forme carree."
-#: flatcamGUI/ObjectUI.py:671
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:168
+#: AppGUI/ObjectUI.py:671 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:168
msgid ""
"Distance of the edges of the box\n"
"to the nearest polygon."
@@ -7780,8 +5753,7 @@ msgstr ""
"Distance des bords de la boîte\n"
"au polygone le plus proche."
-#: flatcamGUI/ObjectUI.py:685
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:181
+#: AppGUI/ObjectUI.py:685 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:181
msgid ""
"If the bounding box is \n"
"to have rounded corners\n"
@@ -7793,34 +5765,32 @@ msgstr ""
"leur rayon est égal à\n"
"la marge."
-#: flatcamGUI/ObjectUI.py:694
+#: AppGUI/ObjectUI.py:694
msgid "Generate the Geometry object."
-msgstr "Générez l'objet Geometry."
+msgstr "Générez l'objet Géométrie."
-#: flatcamGUI/ObjectUI.py:721
+#: AppGUI/ObjectUI.py:721
msgid "Excellon Object"
-msgstr "Excellent objet"
+msgstr "Excellon objet"
-#: flatcamGUI/ObjectUI.py:733
+#: AppGUI/ObjectUI.py:733
msgid "Solid circles."
msgstr "Cercles pleins."
-#: flatcamGUI/ObjectUI.py:781 flatcamGUI/ObjectUI.py:876
-#: flatcamGUI/ObjectUI.py:2336
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:71
-#: flatcamTools/ToolProperties.py:166
+#: AppGUI/ObjectUI.py:781 AppGUI/ObjectUI.py:876 AppGUI/ObjectUI.py:2466
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:71
+#: AppTools/ToolProperties.py:166
msgid "Drills"
msgstr "Forage"
-#: flatcamGUI/ObjectUI.py:781 flatcamGUI/ObjectUI.py:877
-#: flatcamGUI/ObjectUI.py:2336
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:158
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:72
-#: flatcamTools/ToolProperties.py:168
+#: AppGUI/ObjectUI.py:781 AppGUI/ObjectUI.py:877 AppGUI/ObjectUI.py:2466
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:158
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:72
+#: AppTools/ToolProperties.py:168
msgid "Slots"
msgstr "Fentes"
-#: flatcamGUI/ObjectUI.py:786
+#: AppGUI/ObjectUI.py:786
msgid ""
"This is the Tool Number.\n"
"When ToolChange is checked, on toolchange event this value\n"
@@ -7833,10 +5803,9 @@ msgstr ""
"cette valeur\n"
"sera affiché en tant que T1, T2 ... Tn dans le code machine.\n"
"\n"
-"Ici, les outils sont sélectionnés pour la génération de code G."
+"Ici, les outils sont sélectionnés pour la génération de GCode."
-#: flatcamGUI/ObjectUI.py:791 flatcamGUI/ObjectUI.py:1510
-#: flatcamTools/ToolPaint.py:142
+#: AppGUI/ObjectUI.py:791 AppGUI/ObjectUI.py:1612 AppTools/ToolPaint.py:141
msgid ""
"Tool Diameter. It's value (in current FlatCAM units) \n"
"is the cut width into the material."
@@ -7844,7 +5813,7 @@ msgstr ""
"Diamètre de l'outil. C'est sa valeur (en unités FlatCAM actuelles)\n"
"est la largeur de coupe dans le matériau."
-#: flatcamGUI/ObjectUI.py:794
+#: AppGUI/ObjectUI.py:794
msgid ""
"The number of Drill holes. Holes that are drilled with\n"
"a drill bit."
@@ -7852,7 +5821,7 @@ msgstr ""
"Le nombre de trous de forage. Trous percés de\n"
"un foret."
-#: flatcamGUI/ObjectUI.py:797
+#: AppGUI/ObjectUI.py:797
msgid ""
"The number of Slot holes. Holes that are created by\n"
"milling them with an endmill bit."
@@ -7860,7 +5829,7 @@ msgstr ""
"Le nombre de trous de fente. Trous créés par\n"
"les fraiser avec un bit de fraise."
-#: flatcamGUI/ObjectUI.py:800
+#: AppGUI/ObjectUI.py:800
msgid ""
"Toggle display of the drills for the current tool.\n"
"This does not select the tools for G-code generation."
@@ -7868,20 +5837,19 @@ msgstr ""
"Basculer l'affichage des exercices pour l'outil actuel.\n"
"Cela ne sélectionne pas les outils pour la génération de G-code."
-#: flatcamGUI/ObjectUI.py:818 flatcamGUI/ObjectUI.py:1662
-#: flatcamObjects/FlatCAMExcellon.py:514 flatcamObjects/FlatCAMExcellon.py:726
-#: flatcamObjects/FlatCAMExcellon.py:742 flatcamObjects/FlatCAMExcellon.py:746
-#: flatcamObjects/FlatCAMGeometry.py:323 flatcamObjects/FlatCAMGeometry.py:759
-#: flatcamObjects/FlatCAMGeometry.py:795 flatcamTools/ToolNCC.py:331
-#: flatcamTools/ToolNCC.py:797 flatcamTools/ToolNCC.py:811
-#: flatcamTools/ToolNCC.py:1196 flatcamTools/ToolPaint.py:314
-#: flatcamTools/ToolPaint.py:767 flatcamTools/ToolPaint.py:779
-#: flatcamTools/ToolPaint.py:1171
+#: AppGUI/ObjectUI.py:818 AppGUI/ObjectUI.py:1764
+#: AppObjects/FlatCAMExcellon.py:527 AppObjects/FlatCAMExcellon.py:805
+#: AppObjects/FlatCAMExcellon.py:821 AppObjects/FlatCAMExcellon.py:825
+#: AppObjects/FlatCAMGeometry.py:322 AppObjects/FlatCAMGeometry.py:816
+#: AppObjects/FlatCAMGeometry.py:852 AppTools/ToolNCC.py:331
+#: AppTools/ToolNCC.py:797 AppTools/ToolNCC.py:811 AppTools/ToolNCC.py:1196
+#: AppTools/ToolPaint.py:313 AppTools/ToolPaint.py:766
+#: AppTools/ToolPaint.py:778 AppTools/ToolPaint.py:1170
msgid "Parameters for"
msgstr "Paramètres pour"
-#: flatcamGUI/ObjectUI.py:821 flatcamGUI/ObjectUI.py:1665
-#: flatcamTools/ToolNCC.py:334 flatcamTools/ToolPaint.py:317
+#: AppGUI/ObjectUI.py:821 AppGUI/ObjectUI.py:1767 AppTools/ToolNCC.py:334
+#: AppTools/ToolPaint.py:316
msgid ""
"The data used for creating GCode.\n"
"Each tool store it's own set of such data."
@@ -7889,8 +5857,8 @@ msgstr ""
"Les données utilisées pour créer le GCode.\n"
"Chaque outil stocke son propre ensemble de données."
-#: flatcamGUI/ObjectUI.py:847
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:48
+#: AppGUI/ObjectUI.py:847
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:48
msgid ""
"Operation type:\n"
"- Drilling -> will drill the drills/slots associated with this tool\n"
@@ -7900,18 +5868,18 @@ msgstr ""
"- Perçage -> va percer les forets / emplacements associés à cet outil\n"
"- Fraisage -> fraisera les forets / fentes"
-#: flatcamGUI/ObjectUI.py:853
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:54
+#: AppGUI/ObjectUI.py:853
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:54
msgid "Drilling"
msgstr "Forage"
-#: flatcamGUI/ObjectUI.py:854
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:55
+#: AppGUI/ObjectUI.py:854
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:55
msgid "Milling"
msgstr "Fraisage"
-#: flatcamGUI/ObjectUI.py:869
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:64
+#: AppGUI/ObjectUI.py:869
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:64
msgid ""
"Milling type:\n"
"- Drills -> will mill the drills associated with this tool\n"
@@ -7924,25 +5892,25 @@ msgstr ""
"- Les deux -> fraisera les forets et les fraises ou tout ce qui est "
"disponible"
-#: flatcamGUI/ObjectUI.py:878
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:73
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:210
-#: flatcamTools/ToolFilm.py:258
+#: AppGUI/ObjectUI.py:878
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:73
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:210
+#: AppTools/ToolFilm.py:241
msgid "Both"
msgstr "Tous les deux"
-#: flatcamGUI/ObjectUI.py:886
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:80
+#: AppGUI/ObjectUI.py:886
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:80
msgid "Milling Diameter"
-msgstr "Dia. de fraisage"
+msgstr "Diam de fraisage"
-#: flatcamGUI/ObjectUI.py:888
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:82
+#: AppGUI/ObjectUI.py:888
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:82
msgid "The diameter of the tool who will do the milling"
msgstr "Le diamètre de l'outil qui fera le fraisage"
-#: flatcamGUI/ObjectUI.py:902
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:95
+#: AppGUI/ObjectUI.py:902
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:95
msgid ""
"Drill depth (negative)\n"
"below the copper surface."
@@ -7950,19 +5918,19 @@ msgstr ""
"Profondeur de forage (négatif)\n"
"sous la surface de cuivre."
-#: flatcamGUI/ObjectUI.py:921 flatcamGUI/ObjectUI.py:1724
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:113
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:68
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79
-#: flatcamTools/ToolCutOut.py:159
+#: AppGUI/ObjectUI.py:921 AppGUI/ObjectUI.py:1826
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:113
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:68
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79
+#: AppTools/ToolCutOut.py:159
msgid "Multi-Depth"
msgstr "Multi-profondeur"
-#: flatcamGUI/ObjectUI.py:924 flatcamGUI/ObjectUI.py:1727
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:116
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:71
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82
-#: flatcamTools/ToolCutOut.py:162
+#: AppGUI/ObjectUI.py:924 AppGUI/ObjectUI.py:1829
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:116
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:71
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82
+#: AppTools/ToolCutOut.py:162
msgid ""
"Use multiple passes to limit\n"
"the cut depth in each pass. Will\n"
@@ -7974,15 +5942,15 @@ msgstr ""
"couper plusieurs fois jusqu'à ce que Cut Z soit\n"
"atteint."
-#: flatcamGUI/ObjectUI.py:937 flatcamGUI/ObjectUI.py:1741
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:128
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94
-#: flatcamTools/ToolCutOut.py:176
+#: AppGUI/ObjectUI.py:937 AppGUI/ObjectUI.py:1843
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:128
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94
+#: AppTools/ToolCutOut.py:176
msgid "Depth of each pass (positive)."
msgstr "Profondeur de chaque passage (positif)."
-#: flatcamGUI/ObjectUI.py:948
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:136
+#: AppGUI/ObjectUI.py:948
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:136
msgid ""
"Tool height when travelling\n"
"across the XY plane."
@@ -7990,8 +5958,8 @@ msgstr ""
"Hauteur de l'outil en voyage\n"
"à travers le plan XY."
-#: flatcamGUI/ObjectUI.py:969 flatcamGUI/ObjectUI.py:1771
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:187
+#: AppGUI/ObjectUI.py:969 AppGUI/ObjectUI.py:1873
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:187
msgid ""
"Cutting speed in the XY\n"
"plane in units per minute"
@@ -7999,8 +5967,8 @@ msgstr ""
"Vitesse de coupe dans le XY\n"
"avion en unités par minute"
-#: flatcamGUI/ObjectUI.py:984
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:209
+#: AppGUI/ObjectUI.py:984
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:209
msgid ""
"Tool speed while drilling\n"
"(in units per minute).\n"
@@ -8012,14 +5980,14 @@ msgstr ""
"Ce qu'on appelle \"avance\".\n"
"Ceci est pour le mouvement linéaire G01."
-#: flatcamGUI/ObjectUI.py:999 flatcamGUI/ObjectUI.py:1798
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:80
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:64
+#: AppGUI/ObjectUI.py:999 AppGUI/ObjectUI.py:1900
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:80
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:64
msgid "Feedrate Rapids"
msgstr "Avance rapide"
-#: flatcamGUI/ObjectUI.py:1001
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:82
+#: AppGUI/ObjectUI.py:1001
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:82
msgid ""
"Tool speed while drilling\n"
"(in units per minute).\n"
@@ -8033,15 +6001,15 @@ msgstr ""
"C'est utile seulement pour Marlin,\n"
"ignorer pour les autres cas."
-#: flatcamGUI/ObjectUI.py:1021 flatcamGUI/ObjectUI.py:1818
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:82
+#: AppGUI/ObjectUI.py:1021 AppGUI/ObjectUI.py:1920
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:82
msgid "Re-cut"
msgstr "Re-coupé"
-#: flatcamGUI/ObjectUI.py:1023 flatcamGUI/ObjectUI.py:1036
-#: flatcamGUI/ObjectUI.py:1820 flatcamGUI/ObjectUI.py:1832
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:84
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:96
+#: AppGUI/ObjectUI.py:1023 AppGUI/ObjectUI.py:1036 AppGUI/ObjectUI.py:1922
+#: AppGUI/ObjectUI.py:1934
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:84
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:96
msgid ""
"In order to remove possible\n"
"copper leftovers where first cut\n"
@@ -8053,15 +6021,14 @@ msgstr ""
"rencontre avec la dernière coupe, nous générons un\n"
"coupe étendue sur la première section coupée."
-#: flatcamGUI/ObjectUI.py:1049 flatcamGUI/ObjectUI.py:1841
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:216
-#: flatcamObjects/FlatCAMExcellon.py:1332
-#: flatcamObjects/FlatCAMGeometry.py:1622
+#: AppGUI/ObjectUI.py:1049 AppGUI/ObjectUI.py:1943
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:216
+#: AppObjects/FlatCAMExcellon.py:1412 AppObjects/FlatCAMGeometry.py:1676
msgid "Spindle speed"
msgstr "Vitesse de broche"
-#: flatcamGUI/ObjectUI.py:1051
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:224
+#: AppGUI/ObjectUI.py:1051
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:224
msgid ""
"Speed of the spindle\n"
"in RPM (optional)"
@@ -8069,9 +6036,9 @@ msgstr ""
"Vitesse de la broche\n"
"en tours / minute (optionnel)"
-#: flatcamGUI/ObjectUI.py:1066 flatcamGUI/ObjectUI.py:1860
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:238
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:234
+#: AppGUI/ObjectUI.py:1066 AppGUI/ObjectUI.py:1962
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:238
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:234
msgid ""
"Pause to allow the spindle to reach its\n"
"speed before cutting."
@@ -8079,19 +6046,19 @@ msgstr ""
"Pause pour permettre à la broche d’atteindre son\n"
"vitesse avant de couper."
-#: flatcamGUI/ObjectUI.py:1077 flatcamGUI/ObjectUI.py:1870
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:246
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:239
+#: AppGUI/ObjectUI.py:1077 AppGUI/ObjectUI.py:1972
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:246
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:239
msgid "Number of time units for spindle to dwell."
msgstr "Nombre d'unités de temps pendant lesquelles la broche s'arrête."
-#: flatcamGUI/ObjectUI.py:1087
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:46
+#: AppGUI/ObjectUI.py:1087
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:46
msgid "Offset Z"
msgstr "Décalage Z"
-#: flatcamGUI/ObjectUI.py:1089
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:48
+#: AppGUI/ObjectUI.py:1089
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:48
msgid ""
"Some drill bits (the larger ones) need to drill deeper\n"
"to create the desired exit hole diameter due of the tip shape.\n"
@@ -8102,13 +6069,13 @@ msgstr ""
"la pointe.\n"
"La valeur ici peut compenser le paramètre Cut Z."
-#: flatcamGUI/ObjectUI.py:1149 flatcamGUI/ObjectUI.py:1924
-#: flatcamTools/ToolNCC.py:492 flatcamTools/ToolPaint.py:423
+#: AppGUI/ObjectUI.py:1149 AppGUI/ObjectUI.py:2026 AppTools/ToolNCC.py:492
+#: AppTools/ToolPaint.py:422
msgid "Apply parameters to all tools"
msgstr "Appliquer des paramètres à tous les outils"
-#: flatcamGUI/ObjectUI.py:1151 flatcamGUI/ObjectUI.py:1926
-#: flatcamTools/ToolNCC.py:494 flatcamTools/ToolPaint.py:425
+#: AppGUI/ObjectUI.py:1151 AppGUI/ObjectUI.py:2028 AppTools/ToolNCC.py:494
+#: AppTools/ToolPaint.py:424
msgid ""
"The parameters in the current form will be applied\n"
"on all the tools from the Tool Table."
@@ -8116,22 +6083,22 @@ msgstr ""
"Les paramètres du formulaire actuel seront appliqués\n"
"sur tous les outils de la table d'outils."
-#: flatcamGUI/ObjectUI.py:1162 flatcamGUI/ObjectUI.py:1937
-#: flatcamTools/ToolNCC.py:505 flatcamTools/ToolPaint.py:436
+#: AppGUI/ObjectUI.py:1162 AppGUI/ObjectUI.py:2039 AppTools/ToolNCC.py:505
+#: AppTools/ToolPaint.py:435
msgid "Common Parameters"
msgstr "Paramètres communs"
-#: flatcamGUI/ObjectUI.py:1164 flatcamGUI/ObjectUI.py:1939
-#: flatcamTools/ToolNCC.py:507 flatcamTools/ToolPaint.py:438
+#: AppGUI/ObjectUI.py:1164 AppGUI/ObjectUI.py:2041 AppTools/ToolNCC.py:507
+#: AppTools/ToolPaint.py:437
msgid "Parameters that are common for all tools."
msgstr "Paramètres communs à tous les outils."
-#: flatcamGUI/ObjectUI.py:1169 flatcamGUI/ObjectUI.py:1944
+#: AppGUI/ObjectUI.py:1169 AppGUI/ObjectUI.py:2046
msgid "Tool change Z"
msgstr "Changement d'outil Z"
-#: flatcamGUI/ObjectUI.py:1171
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:154
+#: AppGUI/ObjectUI.py:1171
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:154
msgid ""
"Include tool-change sequence\n"
"in G-Code (Pause for tool change)."
@@ -8139,9 +6106,9 @@ msgstr ""
"Inclure la séquence de changement d'outil\n"
"dans G-Code (Pause pour changement d’outil)."
-#: flatcamGUI/ObjectUI.py:1178 flatcamGUI/ObjectUI.py:1955
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:162
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:134
+#: AppGUI/ObjectUI.py:1178 AppGUI/ObjectUI.py:2057
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:162
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:134
msgid ""
"Z-axis position (height) for\n"
"tool change."
@@ -8149,8 +6116,8 @@ msgstr ""
"Position de l'axe Z (hauteur) pour\n"
"changement d'outil."
-#: flatcamGUI/ObjectUI.py:1195
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:71
+#: AppGUI/ObjectUI.py:1195
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:71
msgid ""
"Height of the tool just after start.\n"
"Delete the value if you don't need this feature."
@@ -8158,15 +6125,15 @@ msgstr ""
"Hauteur de l'outil juste après le démarrage.\n"
"Supprimez la valeur si vous n'avez pas besoin de cette fonctionnalité."
-#: flatcamGUI/ObjectUI.py:1204 flatcamGUI/ObjectUI.py:1983
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:178
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:153
+#: AppGUI/ObjectUI.py:1204 AppGUI/ObjectUI.py:2085
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:178
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:153
msgid "End move Z"
msgstr "Fin du mouve. Z"
-#: flatcamGUI/ObjectUI.py:1206 flatcamGUI/ObjectUI.py:1985
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:180
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:155
+#: AppGUI/ObjectUI.py:1206 AppGUI/ObjectUI.py:2087
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:180
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:155
msgid ""
"Height of the tool after\n"
"the last move at the end of the job."
@@ -8174,15 +6141,15 @@ msgstr ""
"Hauteur de l'outil après\n"
"le dernier mouvement à la fin du travail."
-#: flatcamGUI/ObjectUI.py:1223 flatcamGUI/ObjectUI.py:2002
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:195
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:173
+#: AppGUI/ObjectUI.py:1223 AppGUI/ObjectUI.py:2104
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:195
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:173
msgid "End move X,Y"
msgstr "Fin de coup X, Y"
-#: flatcamGUI/ObjectUI.py:1225 flatcamGUI/ObjectUI.py:2004
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:197
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:175
+#: AppGUI/ObjectUI.py:1225 AppGUI/ObjectUI.py:2106
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:197
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:175
msgid ""
"End move X,Y position. In format (x,y).\n"
"If no value is entered then there is no move\n"
@@ -8192,15 +6159,15 @@ msgstr ""
"Si aucune valeur n'est entrée, il n'y a pas de mouvement\n"
"sur l'avion X, Y à la fin du travail."
-#: flatcamGUI/ObjectUI.py:1235 flatcamGUI/ObjectUI.py:1878
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:96
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:105
+#: AppGUI/ObjectUI.py:1235 AppGUI/ObjectUI.py:1980
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:96
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:105
msgid "Probe Z depth"
msgstr "Prof.r de la sonde Z"
-#: flatcamGUI/ObjectUI.py:1237 flatcamGUI/ObjectUI.py:1880
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:98
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:107
+#: AppGUI/ObjectUI.py:1237 AppGUI/ObjectUI.py:1982
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:98
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:107
msgid ""
"The maximum depth that the probe is allowed\n"
"to probe. Negative value, in current units."
@@ -8208,23 +6175,23 @@ msgstr ""
"La profondeur maximale autorisée pour la sonde\n"
"sonder. Valeur négative, en unités actuelles."
-#: flatcamGUI/ObjectUI.py:1254 flatcamGUI/ObjectUI.py:1895
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:109
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:120
+#: AppGUI/ObjectUI.py:1254 AppGUI/ObjectUI.py:1997
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:109
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:120
msgid "Feedrate Probe"
msgstr "Sonde d'avance"
-#: flatcamGUI/ObjectUI.py:1256 flatcamGUI/ObjectUI.py:1897
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:111
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:122
+#: AppGUI/ObjectUI.py:1256 AppGUI/ObjectUI.py:1999
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:111
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:122
msgid "The feedrate used while the probe is probing."
msgstr "L'avance utilisée pendant le sondage."
-#: flatcamGUI/ObjectUI.py:1272
+#: AppGUI/ObjectUI.py:1272
msgid "Preprocessor E"
msgstr "Post-processeur E"
-#: flatcamGUI/ObjectUI.py:1274
+#: AppGUI/ObjectUI.py:1274
msgid ""
"The preprocessor JSON file that dictates\n"
"Gcode output for Excellon Objects."
@@ -8232,11 +6199,11 @@ msgstr ""
"Le fichier JSON du préprocesseur qui dicte\n"
"Sortie Gcode pour Excellon Objects."
-#: flatcamGUI/ObjectUI.py:1284
+#: AppGUI/ObjectUI.py:1284
msgid "Preprocessor G"
msgstr "Post-processeur G"
-#: flatcamGUI/ObjectUI.py:1286
+#: AppGUI/ObjectUI.py:1286
msgid ""
"The preprocessor JSON file that dictates\n"
"Gcode output for Geometry (Milling) Objects."
@@ -8244,7 +6211,131 @@ msgstr ""
"Le fichier JSON du préprocesseur qui dicte\n"
"Sortie Gcode pour les objets de géométrie (fraisage)."
-#: flatcamGUI/ObjectUI.py:1310 flatcamGUI/ObjectUI.py:2108
+#: AppGUI/ObjectUI.py:1300 AppGUI/ObjectUI.py:2134
+msgid "Add exclusion areas"
+msgstr ""
+
+#: AppGUI/ObjectUI.py:1303 AppGUI/ObjectUI.py:2137
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:204
+msgid ""
+"Include exclusion areas.\n"
+"In those areas the travel of the tools\n"
+"is forbidden."
+msgstr ""
+
+#: AppGUI/ObjectUI.py:1324 AppGUI/ObjectUI.py:1343 AppGUI/ObjectUI.py:2158
+#: AppGUI/ObjectUI.py:2177
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:224
+msgid "Strategy"
+msgstr ""
+
+#: AppGUI/ObjectUI.py:1324 AppGUI/ObjectUI.py:1355 AppGUI/ObjectUI.py:2158
+#: AppGUI/ObjectUI.py:2189
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:236
+#, fuzzy
+#| msgid "Overlap"
+msgid "Over Z"
+msgstr "Chevauchement"
+
+#: AppGUI/ObjectUI.py:1326 AppGUI/ObjectUI.py:2160
+msgid "This is the Area ID."
+msgstr ""
+
+#: AppGUI/ObjectUI.py:1328 AppGUI/ObjectUI.py:2162
+msgid "Type of the object where the exclusion area was added."
+msgstr ""
+
+#: AppGUI/ObjectUI.py:1330 AppGUI/ObjectUI.py:2164
+msgid ""
+"The strategy used for exclusion area. Go around the exclusion areas or over "
+"it."
+msgstr ""
+
+#: AppGUI/ObjectUI.py:1332 AppGUI/ObjectUI.py:2166
+msgid ""
+"If the strategy is to go over the area then this is the height at which the "
+"tool will go to avoid the exclusion area."
+msgstr ""
+
+#: AppGUI/ObjectUI.py:1344 AppGUI/ObjectUI.py:2178
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:225
+msgid ""
+"The strategy followed when encountering an exclusion area.\n"
+"Can be:\n"
+"- Over -> when encountering the area, the tool will go to a set height\n"
+"- Around -> will avoid the exclusion area by going around the area"
+msgstr ""
+
+#: AppGUI/ObjectUI.py:1348 AppGUI/ObjectUI.py:2182
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:229
+#, fuzzy
+#| msgid "Overlap"
+msgid "Over"
+msgstr "Chevauchement"
+
+#: AppGUI/ObjectUI.py:1349 AppGUI/ObjectUI.py:2183
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:230
+#, fuzzy
+#| msgid "Round"
+msgid "Around"
+msgstr "Rond"
+
+#: AppGUI/ObjectUI.py:1356 AppGUI/ObjectUI.py:2190
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:237
+msgid ""
+"The height Z to which the tool will rise in order to avoid\n"
+"an interdiction area."
+msgstr ""
+
+#: AppGUI/ObjectUI.py:1366 AppGUI/ObjectUI.py:2200
+#, fuzzy
+#| msgid "Add Track"
+msgid "Add area:"
+msgstr "Ajouter une Piste"
+
+#: AppGUI/ObjectUI.py:1367 AppGUI/ObjectUI.py:2201
+msgid "Add an Exclusion Area."
+msgstr ""
+
+#: AppGUI/ObjectUI.py:1373 AppGUI/ObjectUI.py:2207
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:214
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:324
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:288
+#: AppTools/ToolNCC.py:580 AppTools/ToolPaint.py:523
+msgid "The kind of selection shape used for area selection."
+msgstr "Type de forme de sélection utilisé pour la sélection de zone."
+
+#: AppGUI/ObjectUI.py:1383 AppGUI/ObjectUI.py:2217
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:32
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:42
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:32
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:32
+msgid "Delete All"
+msgstr "Supprimer tout"
+
+#: AppGUI/ObjectUI.py:1384 AppGUI/ObjectUI.py:2218
+#, fuzzy
+#| msgid "Delete all extensions from the list."
+msgid "Delete all exclusion areas."
+msgstr "Supprimer toutes les extensions de la liste."
+
+#: AppGUI/ObjectUI.py:1387 AppGUI/ObjectUI.py:2221
+#, fuzzy
+#| msgid "Delete Object"
+msgid "Delete Selected"
+msgstr "Supprimer un objet"
+
+#: AppGUI/ObjectUI.py:1388 AppGUI/ObjectUI.py:2222
+#, fuzzy
+#| msgid ""
+#| "Delete a tool in the tool list\n"
+#| "by selecting a row in the tool table."
+msgid "Delete all exclusion areas that are selected in the table."
+msgstr ""
+"Supprimer un outil dans la liste des outils\n"
+"en sélectionnant une ligne dans la table d'outils."
+
+#: AppGUI/ObjectUI.py:1412 AppGUI/ObjectUI.py:2238
msgid ""
"Add / Select at least one tool in the tool-table.\n"
"Click the # header to select all, or Ctrl + LMB\n"
@@ -8254,23 +6345,23 @@ msgstr ""
"Cliquez sur l'en-tête # pour tout sélectionner ou sur Ctrl + LMB\n"
"pour une sélection personnalisée d'outils."
-#: flatcamGUI/ObjectUI.py:1318 flatcamGUI/ObjectUI.py:2115
+#: AppGUI/ObjectUI.py:1420 AppGUI/ObjectUI.py:2245
msgid "Generate CNCJob object"
-msgstr "Générer un objet CNCJob"
+msgstr "Générer l'objet CNC Job"
-#: flatcamGUI/ObjectUI.py:1320
+#: AppGUI/ObjectUI.py:1422
msgid ""
"Generate the CNC Job.\n"
"If milling then an additional Geometry object will be created"
msgstr ""
"Générez le travail CNC.\n"
-"En cas de fraisage, un objet Geometry supplémentaire sera créé"
+"En cas de fraisage, un objet Géométrie supplémentaire sera créé"
-#: flatcamGUI/ObjectUI.py:1337
+#: AppGUI/ObjectUI.py:1439
msgid "Milling Geometry"
msgstr "Géo. de fraisage"
-#: flatcamGUI/ObjectUI.py:1339
+#: AppGUI/ObjectUI.py:1441
msgid ""
"Create Geometry for milling holes.\n"
"Select from the Tools Table above the hole dias to be\n"
@@ -8280,17 +6371,17 @@ msgstr ""
"Sélectionnez dans le tableau des outils au-dessus du diamètre du trou à\n"
"fraisé. Utilisez la colonne # pour effectuer la sélection."
-#: flatcamGUI/ObjectUI.py:1347
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:296
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:45
+#: AppGUI/ObjectUI.py:1449
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:296
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:45
msgid "Diameter of the cutting tool."
msgstr "Diamètre de l'outil de coupe."
-#: flatcamGUI/ObjectUI.py:1357
+#: AppGUI/ObjectUI.py:1459
msgid "Mill Drills"
msgstr "Fraiser les Forets"
-#: flatcamGUI/ObjectUI.py:1359
+#: AppGUI/ObjectUI.py:1461
msgid ""
"Create the Geometry Object\n"
"for milling DRILLS toolpaths."
@@ -8298,11 +6389,11 @@ msgstr ""
"Créer l'objet de géométrie\n"
"pour fraiser des parcours d’outils."
-#: flatcamGUI/ObjectUI.py:1377
+#: AppGUI/ObjectUI.py:1479
msgid "Mill Slots"
msgstr "Fraiser les Fentes"
-#: flatcamGUI/ObjectUI.py:1379
+#: AppGUI/ObjectUI.py:1481
msgid ""
"Create the Geometry Object\n"
"for milling SLOTS toolpaths."
@@ -8310,11 +6401,11 @@ msgstr ""
"Créer l'objet de géométrie\n"
"pour fraiser des parcours d’outils."
-#: flatcamGUI/ObjectUI.py:1421 flatcamTools/ToolCutOut.py:319
+#: AppGUI/ObjectUI.py:1523 AppTools/ToolCutOut.py:319
msgid "Geometry Object"
msgstr "Objet de géométrie"
-#: flatcamGUI/ObjectUI.py:1467
+#: AppGUI/ObjectUI.py:1569
msgid ""
"Tools in this Geometry object used for cutting.\n"
"The 'Offset' entry will set an offset for the cut.\n"
@@ -8329,7 +6420,7 @@ msgid ""
"grayed out and Cut Z is automatically calculated from the newly \n"
"showed UI form entries named V-Tip Dia and V-Tip Angle."
msgstr ""
-"Outils dans cet objet Geometry utilisé pour la découpe.\n"
+"Outils dans cet objet Géométrie utilisé pour la découpe.\n"
"L'entrée 'Décalage' définira un décalage pour la coupe.\n"
"Le «décalage» peut être à l'intérieur, à l'extérieur, sur le chemin (aucun) "
"et personnalisé.\n"
@@ -8342,27 +6433,26 @@ msgstr ""
"sélectionnée.\n"
"défini sur Isolation, le paramètre CutZ sous la forme d’UI est\n"
"grisé et Cut Z est automatiquement calculé à partir de la nouvelle\n"
-"a montré des entrées de formulaire d’interface utilisateur nommées V-Tip Dia "
-"et V-Tip Angle."
+"a montré des entrées de formulaire d’interface utilisateur nommées V-Tip "
+"Diam et V-Tip Angle."
-#: flatcamGUI/ObjectUI.py:1484 flatcamGUI/ObjectUI.py:2313
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:40
+#: AppGUI/ObjectUI.py:1586 AppGUI/ObjectUI.py:2443
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:40
msgid "Plot Object"
msgstr "Dessiner un objet"
-#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326
-#: flatcamGUI/ObjectUI.py:2336
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138
-#: flatcamTools/ToolCopperThieving.py:221
+#: AppGUI/ObjectUI.py:1599 AppGUI/ObjectUI.py:2456 AppGUI/ObjectUI.py:2466
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138
+#: AppTools/ToolCopperThieving.py:221
msgid "Dia"
-msgstr "Dia"
+msgstr "Diam"
-#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326
-#: flatcamTools/ToolNCC.py:132 flatcamTools/ToolPaint.py:128
+#: AppGUI/ObjectUI.py:1599 AppGUI/ObjectUI.py:2456 AppTools/ToolNCC.py:132
+#: AppTools/ToolPaint.py:127
msgid "TT"
msgstr "TT"
-#: flatcamGUI/ObjectUI.py:1504
+#: AppGUI/ObjectUI.py:1606
msgid ""
"This is the Tool Number.\n"
"When ToolChange is checked, on toolchange event this value\n"
@@ -8373,7 +6463,7 @@ msgstr ""
"cette valeur\n"
"sera montré comme un T1, T2 ... Tn"
-#: flatcamGUI/ObjectUI.py:1515
+#: AppGUI/ObjectUI.py:1617
msgid ""
"The value for the Offset can be:\n"
"- Path -> There is no offset, the tool cut will be done through the geometry "
@@ -8389,7 +6479,7 @@ msgstr ""
"créer une \"poche\".\n"
"- Extérieur -> L'outil coupé suivra la ligne géométrique à l'extérieur."
-#: flatcamGUI/ObjectUI.py:1522
+#: AppGUI/ObjectUI.py:1624
msgid ""
"The (Operation) Type has only informative value. Usually the UI form "
"values \n"
@@ -8411,7 +6501,7 @@ msgstr ""
"Pour l'isolation, nous avons besoin d'une vitesse d'avance plus faible car "
"elle utilise un foret à pointe fine."
-#: flatcamGUI/ObjectUI.py:1531
+#: AppGUI/ObjectUI.py:1633
msgid ""
"The Tool Type (TT) can be:\n"
"- Circular with 1 ... 4 teeth -> it is informative only. Being circular the "
@@ -8442,7 +6532,7 @@ msgstr ""
"Le choix automatique du type d'outil en forme de V sélectionne le type "
"d'opération comme isolement."
-#: flatcamGUI/ObjectUI.py:1543
+#: AppGUI/ObjectUI.py:1645
msgid ""
"Plot column. It is visible only for MultiGeo geometries, meaning geometries "
"that holds the geometry\n"
@@ -8460,7 +6550,7 @@ msgstr ""
"activer / désactiver le tracé sur le canevas.\n"
"pour l'outil correspondant."
-#: flatcamGUI/ObjectUI.py:1561
+#: AppGUI/ObjectUI.py:1663
msgid ""
"The value to offset the cut when \n"
"the Offset type selected is 'Offset'.\n"
@@ -8472,13 +6562,13 @@ msgstr ""
"La valeur peut être positive pour 'dehors'\n"
"coupé et négatif pour «à l'intérieur» coupé."
-#: flatcamGUI/ObjectUI.py:1580 flatcamTools/ToolNCC.py:209
-#: flatcamTools/ToolNCC.py:923 flatcamTools/ToolPaint.py:192
-#: flatcamTools/ToolPaint.py:849 flatcamTools/ToolSolderPaste.py:559
+#: AppGUI/ObjectUI.py:1682 AppTools/ToolNCC.py:209 AppTools/ToolNCC.py:923
+#: AppTools/ToolPaint.py:191 AppTools/ToolPaint.py:848
+#: AppTools/ToolSolderPaste.py:559
msgid "New Tool"
msgstr "Nouvel Outil"
-#: flatcamGUI/ObjectUI.py:1597
+#: AppGUI/ObjectUI.py:1699
msgid ""
"Add a new tool to the Tool Table\n"
"with the specified diameter."
@@ -8486,14 +6576,12 @@ msgstr ""
"Ajouter un nouvel outil à la table d'outils\n"
"avec le diamètre spécifié."
-#: flatcamGUI/ObjectUI.py:1602 flatcamTools/ToolNCC.py:300
-#: flatcamTools/ToolNCC.py:634 flatcamTools/ToolPaint.py:283
-#: flatcamTools/ToolPaint.py:679
+#: AppGUI/ObjectUI.py:1704 AppTools/ToolNCC.py:300 AppTools/ToolNCC.py:634
+#: AppTools/ToolPaint.py:282 AppTools/ToolPaint.py:678
msgid "Add from DB"
msgstr "Ajouter depuis la BD"
-#: flatcamGUI/ObjectUI.py:1604 flatcamTools/ToolNCC.py:302
-#: flatcamTools/ToolPaint.py:285
+#: AppGUI/ObjectUI.py:1706 AppTools/ToolNCC.py:302 AppTools/ToolPaint.py:284
msgid ""
"Add a new tool to the Tool Table\n"
"from the Tool DataBase."
@@ -8501,7 +6589,7 @@ msgstr ""
"Ajouter un nouvel outil à la table d'outils\n"
"à partir de la base de données d'outils."
-#: flatcamGUI/ObjectUI.py:1619
+#: AppGUI/ObjectUI.py:1721
msgid ""
"Copy a selection of tools in the Tool Table\n"
"by first selecting a row in the Tool Table."
@@ -8509,7 +6597,7 @@ msgstr ""
"Copier une sélection d'outils dans la table d'outils\n"
"en sélectionnant d'abord une ligne dans la table d'outils."
-#: flatcamGUI/ObjectUI.py:1625
+#: AppGUI/ObjectUI.py:1727
msgid ""
"Delete a selection of tools in the Tool Table\n"
"by first selecting a row in the Tool Table."
@@ -8517,8 +6605,8 @@ msgstr ""
"Supprimer une sélection d'outils dans la table d'outils\n"
"en sélectionnant d'abord une ligne dans la table d'outils."
-#: flatcamGUI/ObjectUI.py:1752
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:103
+#: AppGUI/ObjectUI.py:1854
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:103
msgid ""
"Height of the tool when\n"
"moving without cutting."
@@ -8526,8 +6614,8 @@ msgstr ""
"Hauteur de l'outil quand\n"
"se déplacer sans couper."
-#: flatcamGUI/ObjectUI.py:1785
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:202
+#: AppGUI/ObjectUI.py:1887
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:202
msgid ""
"Cutting speed in the XY\n"
"plane in units per minute.\n"
@@ -8537,8 +6625,8 @@ msgstr ""
"avion en unités par minute.\n"
"Cela s'appelle aussi plonger."
-#: flatcamGUI/ObjectUI.py:1800
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:66
+#: AppGUI/ObjectUI.py:1902
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:66
msgid ""
"Cutting speed in the XY plane\n"
"(in units per minute).\n"
@@ -8552,8 +6640,8 @@ msgstr ""
"C'est utile seulement pour Marlin,\n"
"ignorer pour les autres cas."
-#: flatcamGUI/ObjectUI.py:1844
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:219
+#: AppGUI/ObjectUI.py:1946
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:219
msgid ""
"Speed of the spindle in RPM (optional).\n"
"If LASER preprocessor is used,\n"
@@ -8563,8 +6651,8 @@ msgstr ""
"Si le post-processeur LASER est utilisé,\n"
"cette valeur est la puissance du laser."
-#: flatcamGUI/ObjectUI.py:1947
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:124
+#: AppGUI/ObjectUI.py:2049
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:124
msgid ""
"Include tool-change sequence\n"
"in the Machine Code (Pause for tool change)."
@@ -8572,8 +6660,8 @@ msgstr ""
"Inclure la séquence de changement d'outil\n"
"dans le code machine (pause pour changement d'outil)."
-#: flatcamGUI/ObjectUI.py:2016
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:256
+#: AppGUI/ObjectUI.py:2118
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:256
msgid ""
"The Preprocessor file that dictates\n"
"the Machine Code (like GCode, RML, HPGL) output."
@@ -8581,107 +6669,15 @@ msgstr ""
"Le fichier post-processeur qui dicte\n"
"le code machine (comme GCode, RML, HPGL."
-#: flatcamGUI/ObjectUI.py:2028
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:201
-msgid "Exclusion areas"
-msgstr "Zones d'exclusion"
-
-#: flatcamGUI/ObjectUI.py:2031
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:204
-msgid ""
-"Include exclusion areas.\n"
-"In those areas the travel of the tools\n"
-"is forbidden."
-msgstr ""
-"Inclure les zones d'exclusion.\n"
-"Dans ces zones, le déplacement des outils\n"
-"est interdit."
-
-#: flatcamGUI/ObjectUI.py:2053
-msgid "Add area"
-msgstr "Ajouter une zone"
-
-#: flatcamGUI/ObjectUI.py:2054
-msgid "Add an Exclusion Area."
-msgstr "Ajoutez une zone d'exclusion."
-
-#: flatcamGUI/ObjectUI.py:2058
-msgid "Clear areas"
-msgstr "Zones claires"
-
-#: flatcamGUI/ObjectUI.py:2059
-msgid "Delete all exclusion areas."
-msgstr "Supprimez toutes les zones d'exclusion."
-
-#: flatcamGUI/ObjectUI.py:2068
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:212
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:322
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:286
-#: flatcamTools/ToolNCC.py:578 flatcamTools/ToolPaint.py:522
-msgid "Shape"
-msgstr "Forme"
-
-#: flatcamGUI/ObjectUI.py:2070
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:214
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:324
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:288
-#: flatcamTools/ToolNCC.py:580 flatcamTools/ToolPaint.py:524
-msgid "The kind of selection shape used for area selection."
-msgstr "Type de forme de sélection utilisé pour la sélection de zone."
-
-#: flatcamGUI/ObjectUI.py:2080
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:224
-msgid "Strategy"
-msgstr "Stratégie"
-
-#: flatcamGUI/ObjectUI.py:2081
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:225
-msgid ""
-"The strategy followed when encountering an exclusion area.\n"
-"Can be:\n"
-"- Over -> when encountering the area, the tool will go to a set height\n"
-"- Around -> will avoid the exclusion area by going around the area"
-msgstr ""
-"La stratégie a suivi lors de la rencontre d'une zone d'exclusion.\n"
-"Peut être:\n"
-"- Plus -> lors de la rencontre de la zone, l'outil ira à une hauteur "
-"définie\n"
-"- Autour -> évitera la zone d'exclusion en faisant le tour de la zone"
-
-#: flatcamGUI/ObjectUI.py:2085
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:229
-msgid "Over"
-msgstr "Au dessus"
-
-#: flatcamGUI/ObjectUI.py:2086
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:230
-msgid "Around"
-msgstr "Autour"
-
-#: flatcamGUI/ObjectUI.py:2092
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:236
-msgid "Over Z"
-msgstr "Plus de Z"
-
-#: flatcamGUI/ObjectUI.py:2093
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:237
-msgid ""
-"The height Z to which the tool will rise in order to avoid\n"
-"an interdiction area."
-msgstr ""
-"La hauteur Z à laquelle l'outil va s'élever afin d'éviter\n"
-"une zone d'interdiction."
-
-#: flatcamGUI/ObjectUI.py:2117
+#: AppGUI/ObjectUI.py:2247 Common.py:405 Common.py:520 Common.py:573
msgid "Generate the CNC Job object."
msgstr "Générez l'objet Travail CNC."
-#: flatcamGUI/ObjectUI.py:2134
+#: AppGUI/ObjectUI.py:2264
msgid "Launch Paint Tool in Tools Tab."
msgstr "Lancer L'outil de Peinture dans l'onglet Outils."
-#: flatcamGUI/ObjectUI.py:2142
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:35
+#: AppGUI/ObjectUI.py:2272 AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:35
msgid ""
"Creates tool paths to cover the\n"
"whole area of a polygon (remove\n"
@@ -8693,17 +6689,15 @@ msgstr ""
"tout en cuivre). Tu vas être interrogé\n"
"cliquer sur le polygone désiré."
-#: flatcamGUI/ObjectUI.py:2197
+#: AppGUI/ObjectUI.py:2327
msgid "CNC Job Object"
msgstr "Objet de travail CNC"
-#: flatcamGUI/ObjectUI.py:2208
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:45
+#: AppGUI/ObjectUI.py:2338 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:45
msgid "Plot kind"
msgstr "Dessiner genre"
-#: flatcamGUI/ObjectUI.py:2211
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:47
+#: AppGUI/ObjectUI.py:2341 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:47
msgid ""
"This selects the kind of geometries on the canvas to plot.\n"
"Those can be either of type 'Travel' which means the moves\n"
@@ -8715,18 +6709,15 @@ msgstr ""
"au-dessus de la pièce ou il peut être de type 'Couper',\n"
"ce qui signifie les mouvements qui coupent dans le matériau."
-#: flatcamGUI/ObjectUI.py:2220
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:55
+#: AppGUI/ObjectUI.py:2350 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:55
msgid "Travel"
msgstr "Voyage"
-#: flatcamGUI/ObjectUI.py:2224
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:64
+#: AppGUI/ObjectUI.py:2354 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:64
msgid "Display Annotation"
msgstr "Afficher l'annotation"
-#: flatcamGUI/ObjectUI.py:2226
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:66
+#: AppGUI/ObjectUI.py:2356 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:66
msgid ""
"This selects if to display text annotation on the plot.\n"
"When checked it will display numbers in order for each end\n"
@@ -8736,11 +6727,11 @@ msgstr ""
"Lorsque coché, il affichera les numéros dans l'ordre pour chaque extrémité\n"
"d'une ligne de voyage."
-#: flatcamGUI/ObjectUI.py:2241
+#: AppGUI/ObjectUI.py:2371
msgid "Travelled dist."
-msgstr "Dist. parcourue"
+msgstr "Dist. parcourue."
-#: flatcamGUI/ObjectUI.py:2243 flatcamGUI/ObjectUI.py:2248
+#: AppGUI/ObjectUI.py:2373 AppGUI/ObjectUI.py:2378
msgid ""
"This is the total travelled distance on X-Y plane.\n"
"In current units."
@@ -8748,11 +6739,11 @@ msgstr ""
"C’est la distance totale parcourue sur l’avion X-Y.\n"
"En unités actuelles."
-#: flatcamGUI/ObjectUI.py:2253
+#: AppGUI/ObjectUI.py:2383
msgid "Estimated time"
msgstr "Temps estimé"
-#: flatcamGUI/ObjectUI.py:2255 flatcamGUI/ObjectUI.py:2260
+#: AppGUI/ObjectUI.py:2385 AppGUI/ObjectUI.py:2390
msgid ""
"This is the estimated time to do the routing/drilling,\n"
"without the time spent in ToolChange events."
@@ -8760,11 +6751,11 @@ msgstr ""
"Ceci est le temps estimé pour faire le routage / forage,\n"
"sans le temps passé dans les événements ToolChange."
-#: flatcamGUI/ObjectUI.py:2295
+#: AppGUI/ObjectUI.py:2425
msgid "CNC Tools Table"
msgstr "Table d'outils CNC"
-#: flatcamGUI/ObjectUI.py:2298
+#: AppGUI/ObjectUI.py:2428
msgid ""
"Tools in this CNCJob object used for cutting.\n"
"The tool diameter is used for plotting on canvas.\n"
@@ -8787,39 +6778,37 @@ msgstr ""
"Le 'type d'outil' (TT) peut être circulaire avec 1 à 4 dents (C1..C4),\n"
"balle (B) ou en forme de V (V)."
-#: flatcamGUI/ObjectUI.py:2326 flatcamGUI/ObjectUI.py:2337
+#: AppGUI/ObjectUI.py:2456 AppGUI/ObjectUI.py:2467
msgid "P"
msgstr "P"
-#: flatcamGUI/ObjectUI.py:2347
+#: AppGUI/ObjectUI.py:2477
msgid "Update Plot"
msgstr "Mise à jour du Tracé"
-#: flatcamGUI/ObjectUI.py:2349
+#: AppGUI/ObjectUI.py:2479
msgid "Update the plot."
msgstr "Mettre à jour le dessin."
-#: flatcamGUI/ObjectUI.py:2356
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:30
+#: AppGUI/ObjectUI.py:2486
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:30
msgid "Export CNC Code"
msgstr "Exporter le code CNC"
-#: flatcamGUI/ObjectUI.py:2358
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:32
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:33
+#: AppGUI/ObjectUI.py:2488
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:32
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:33
msgid ""
"Export and save G-Code to\n"
"make this object to a file."
-msgstr ""
-"Exporter et sauvegarder le code G dans\n"
-"transformez cet objet en fichier."
+msgstr "Exporter et sauvegarder le GCode dans objet fichier."
-#: flatcamGUI/ObjectUI.py:2364
+#: AppGUI/ObjectUI.py:2494
msgid "Prepend to CNC Code"
msgstr "Ajouter au début un code CNC"
-#: flatcamGUI/ObjectUI.py:2366 flatcamGUI/ObjectUI.py:2373
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:49
+#: AppGUI/ObjectUI.py:2496 AppGUI/ObjectUI.py:2503
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:49
msgid ""
"Type here any G-Code commands you would\n"
"like to add at the beginning of the G-Code file."
@@ -8827,12 +6816,12 @@ msgstr ""
"Tapez ici toutes les commandes G-Code que vous feriez\n"
"souhaite ajouter au début du fichier G-Code."
-#: flatcamGUI/ObjectUI.py:2379
+#: AppGUI/ObjectUI.py:2509
msgid "Append to CNC Code"
msgstr "Ajouter au code CNC final"
-#: flatcamGUI/ObjectUI.py:2381 flatcamGUI/ObjectUI.py:2389
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:65
+#: AppGUI/ObjectUI.py:2511 AppGUI/ObjectUI.py:2519
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:65
msgid ""
"Type here any G-Code commands you would\n"
"like to append to the generated file.\n"
@@ -8842,13 +6831,13 @@ msgstr ""
"tiens à ajouter à la fin du fichier généré.\n"
"I.e .: M2 (fin du programme)"
-#: flatcamGUI/ObjectUI.py:2403
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:38
+#: AppGUI/ObjectUI.py:2533
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:38
msgid "Toolchange G-Code"
msgstr "Code de changement d'outils"
-#: flatcamGUI/ObjectUI.py:2406
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:41
+#: AppGUI/ObjectUI.py:2536
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:41
msgid ""
"Type here any G-Code commands you would\n"
"like to be executed when Toolchange event is encountered.\n"
@@ -8870,7 +6859,7 @@ msgstr ""
"qui a 'toolchange_custom' dans son nom et qui est construit\n"
"ayant comme modèle le fichier posprocessor 'Toolchange Custom'."
-#: flatcamGUI/ObjectUI.py:2421
+#: AppGUI/ObjectUI.py:2551
msgid ""
"Type here any G-Code commands you would\n"
"like to be executed when Toolchange event is encountered.\n"
@@ -8888,13 +6877,13 @@ msgstr ""
"WARNING: it can be used only with a preprocessor file\n"
"that has 'toolchange_custom' in it's name."
-#: flatcamGUI/ObjectUI.py:2436
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:80
+#: AppGUI/ObjectUI.py:2566
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:80
msgid "Use Toolchange Macro"
msgstr "Utiliser la macro Toolchange"
-#: flatcamGUI/ObjectUI.py:2438
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:82
+#: AppGUI/ObjectUI.py:2568
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:82
msgid ""
"Check this box if you want to use\n"
"a Custom Toolchange GCode (macro)."
@@ -8902,8 +6891,8 @@ msgstr ""
"Cochez cette case si vous souhaitez utiliser\n"
"un GCode personnalisé Toolchange (macro)."
-#: flatcamGUI/ObjectUI.py:2446
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:94
+#: AppGUI/ObjectUI.py:2576
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:94
msgid ""
"A list of the FlatCAM variables that can be used\n"
"in the Toolchange event.\n"
@@ -8913,191 +6902,193 @@ msgstr ""
"dans l'événement Toolchange.\n"
"Ils doivent être entourés du symbole '%%'"
-#: flatcamGUI/ObjectUI.py:2453
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:101
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:30
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:31
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:37
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:36
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:36
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:36
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:36
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:30
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:32
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31
-#: flatcamTools/ToolCopperThieving.py:89 flatcamTools/ToolFiducials.py:149
-#: flatcamTools/ToolInvertGerber.py:82
+#: AppGUI/ObjectUI.py:2583
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:101
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:30
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:31
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:31
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:37
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:36
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:36
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:36
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:31
+#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:31
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:36
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:31
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:30
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:35
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:32
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31
+#: AppTools/ToolCopperThieving.py:89 AppTools/ToolCorners.py:106
+#: AppTools/ToolEtchCompensation.py:82 AppTools/ToolFiducials.py:149
+#: AppTools/ToolInvertGerber.py:82
msgid "Parameters"
msgstr "Paramètres"
-#: flatcamGUI/ObjectUI.py:2456
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:106
+#: AppGUI/ObjectUI.py:2586
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:106
msgid "FlatCAM CNC parameters"
msgstr "Paramètres CNC FlatCAM"
-#: flatcamGUI/ObjectUI.py:2457
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:111
+#: AppGUI/ObjectUI.py:2587
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:111
msgid "tool number"
msgstr "numéro d'outil"
-#: flatcamGUI/ObjectUI.py:2458
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:112
+#: AppGUI/ObjectUI.py:2588
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:112
msgid "tool diameter"
msgstr "diamètre de l'outil"
-#: flatcamGUI/ObjectUI.py:2459
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:113
+#: AppGUI/ObjectUI.py:2589
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:113
msgid "for Excellon, total number of drills"
msgstr "pour Excellon, nombre total de trous de forage"
-#: flatcamGUI/ObjectUI.py:2461
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:115
+#: AppGUI/ObjectUI.py:2591
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:115
msgid "X coord for Toolchange"
msgstr "Coord X pour changement d'outil"
-#: flatcamGUI/ObjectUI.py:2462
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:116
+#: AppGUI/ObjectUI.py:2592
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:116
msgid "Y coord for Toolchange"
msgstr "Coord Y pour changement d'outil"
-#: flatcamGUI/ObjectUI.py:2463
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:118
+#: AppGUI/ObjectUI.py:2593
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:118
msgid "Z coord for Toolchange"
msgstr "Coords Z pour le Changement d'Outil"
-#: flatcamGUI/ObjectUI.py:2464
+#: AppGUI/ObjectUI.py:2594
msgid "depth where to cut"
msgstr "profondeur où couper"
-#: flatcamGUI/ObjectUI.py:2465
+#: AppGUI/ObjectUI.py:2595
msgid "height where to travel"
msgstr "hauteur où voyager"
-#: flatcamGUI/ObjectUI.py:2466
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:121
+#: AppGUI/ObjectUI.py:2596
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:121
msgid "the step value for multidepth cut"
msgstr "la valeur de pas pour la coupe multiple"
-#: flatcamGUI/ObjectUI.py:2468
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:123
+#: AppGUI/ObjectUI.py:2598
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:123
msgid "the value for the spindle speed"
msgstr "la valeur de la vitesse de broche"
-#: flatcamGUI/ObjectUI.py:2470
+#: AppGUI/ObjectUI.py:2600
msgid "time to dwell to allow the spindle to reach it's set RPM"
msgstr ""
"temps de repos pour permettre à la broche d'atteindre son régime défini"
-#: flatcamGUI/ObjectUI.py:2486
+#: AppGUI/ObjectUI.py:2616
msgid "View CNC Code"
msgstr "Voir le code CNC"
-#: flatcamGUI/ObjectUI.py:2488
+#: AppGUI/ObjectUI.py:2618
msgid ""
"Opens TAB to view/modify/print G-Code\n"
"file."
-msgstr ""
-"Ouvre l'onglet pour afficher / modifier / imprimer le code G\n"
-"fichier."
+msgstr "Ouvre l'onglet pour afficher / modifier / imprimer le Fichier GCode."
-#: flatcamGUI/ObjectUI.py:2493
+#: AppGUI/ObjectUI.py:2623
msgid "Save CNC Code"
msgstr "Enregistrer le code CNC"
-#: flatcamGUI/ObjectUI.py:2495
+#: AppGUI/ObjectUI.py:2625
msgid ""
"Opens dialog to save G-Code\n"
"file."
-msgstr ""
-"Ouvre la boîte de dialogue pour enregistrer le code G\n"
-"fichier."
+msgstr "Ouvre la boîte de dialogue pour enregistrer le Fichier GCode."
-#: flatcamGUI/ObjectUI.py:2529
+#: AppGUI/ObjectUI.py:2659
msgid "Script Object"
msgstr "Objet de script"
-#: flatcamGUI/ObjectUI.py:2549 flatcamGUI/ObjectUI.py:2623
+#: AppGUI/ObjectUI.py:2679 AppGUI/ObjectUI.py:2753
msgid "Auto Completer"
msgstr "Compléteur automatique"
-#: flatcamGUI/ObjectUI.py:2551
+#: AppGUI/ObjectUI.py:2681
msgid "This selects if the auto completer is enabled in the Script Editor."
msgstr ""
"Ceci sélectionne si le compléteur automatique est activé dans l'éditeur de "
"script."
-#: flatcamGUI/ObjectUI.py:2596
+#: AppGUI/ObjectUI.py:2726
msgid "Document Object"
msgstr "Objet de Document"
-#: flatcamGUI/ObjectUI.py:2625
+#: AppGUI/ObjectUI.py:2755
msgid "This selects if the auto completer is enabled in the Document Editor."
msgstr ""
"Ceci sélectionne si le compléteur automatique est activé dans l'éditeur de "
"document."
-#: flatcamGUI/ObjectUI.py:2643
+#: AppGUI/ObjectUI.py:2773
msgid "Font Type"
msgstr "Type de Police"
-#: flatcamGUI/ObjectUI.py:2660
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:197
+#: AppGUI/ObjectUI.py:2790
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:197
msgid "Font Size"
msgstr "Taille de Police"
-#: flatcamGUI/ObjectUI.py:2696
+#: AppGUI/ObjectUI.py:2826
msgid "Alignment"
msgstr "Alignement"
-#: flatcamGUI/ObjectUI.py:2701
+#: AppGUI/ObjectUI.py:2831
msgid "Align Left"
msgstr "Alignez à gauche"
-#: flatcamGUI/ObjectUI.py:2711
+#: AppGUI/ObjectUI.py:2836 App_Main.py:4687
+msgid "Center"
+msgstr "Centre"
+
+#: AppGUI/ObjectUI.py:2841
msgid "Align Right"
msgstr "Aligner à droite"
-#: flatcamGUI/ObjectUI.py:2716
+#: AppGUI/ObjectUI.py:2846
msgid "Justify"
msgstr "Aligner à justifier"
-#: flatcamGUI/ObjectUI.py:2723
+#: AppGUI/ObjectUI.py:2853
msgid "Font Color"
msgstr "Couleur de la Police"
-#: flatcamGUI/ObjectUI.py:2725
+#: AppGUI/ObjectUI.py:2855
msgid "Set the font color for the selected text"
msgstr "Définir la couleur de la police pour le texte sélectionné"
-#: flatcamGUI/ObjectUI.py:2739
+#: AppGUI/ObjectUI.py:2869
msgid "Selection Color"
msgstr "Couleur de sélection"
-#: flatcamGUI/ObjectUI.py:2741
+#: AppGUI/ObjectUI.py:2871
msgid "Set the selection color when doing text selection."
msgstr "Définissez la couleur de sélection lors de la sélection du texte."
-#: flatcamGUI/ObjectUI.py:2755
+#: AppGUI/ObjectUI.py:2885
msgid "Tab Size"
msgstr "Taille de l'onglet"
-#: flatcamGUI/ObjectUI.py:2757
+#: AppGUI/ObjectUI.py:2887
msgid "Set the tab size. In pixels. Default value is 80 pixels."
msgstr ""
"Définissez la taille de l'onglet. En pixels. La valeur par défaut est 80 "
"pixels."
-#: flatcamGUI/PlotCanvasLegacy.py:1299
+#: AppGUI/PlotCanvasLegacy.py:1464
msgid ""
"Could not annotate due of a difference between the number of text elements "
"and the number of text positions."
@@ -9105,40 +7096,64 @@ msgstr ""
"Impossible d'annoter en raison d'une différence entre le nombre d'éléments "
"de texte et le nombre de positions de texte."
-#: flatcamGUI/preferences/PreferencesUIManager.py:911
+#: AppGUI/preferences/PreferencesUIManager.py:911
+#: AppGUI/preferences/PreferencesUIManager.py:1002
+#: AppGUI/preferences/PreferencesUIManager.py:1026
+#: AppGUI/preferences/PreferencesUIManager.py:1132 App_Main.py:5107
+msgid "Preferences"
+msgstr "Paramètres "
+
+#: AppGUI/preferences/PreferencesUIManager.py:917
msgid "Preferences applied."
-msgstr "Préférences appliquées."
+msgstr "Paramètres appliquées."
-#: flatcamGUI/preferences/PreferencesUIManager.py:975
+#: AppGUI/preferences/PreferencesUIManager.py:937
+#, fuzzy
+#| msgid "Are you sure you want to delete the GUI Settings? \n"
+msgid "Are you sure you want to continue?"
+msgstr "Êtes-vous sûr de vouloir supprimer les paramètres de GUI?\n"
+
+#: AppGUI/preferences/PreferencesUIManager.py:938
+#, fuzzy
+#| msgid "Application started ..."
+msgid "Application restart"
+msgstr "Bienvenu dans FlatCam ..."
+
+#: AppGUI/preferences/PreferencesUIManager.py:1031
msgid "Preferences closed without saving."
-msgstr "Les préférences se sont fermées sans enregistrer."
+msgstr "Les paramètres se sont fermées sans enregistrer."
-#: flatcamGUI/preferences/PreferencesUIManager.py:987
+#: AppGUI/preferences/PreferencesUIManager.py:1043
msgid "Preferences default values are restored."
-msgstr "Les valeurs par défaut des préférences sont restaurées."
+msgstr "Les valeurs par défaut des paramètres sont restaurées."
-#: flatcamGUI/preferences/PreferencesUIManager.py:1022
-#: flatcamGUI/preferences/PreferencesUIManager.py:1131
+#: AppGUI/preferences/PreferencesUIManager.py:1075 App_Main.py:2476
+#: App_Main.py:2544
+msgid "Failed to write defaults to file."
+msgstr "Échec d'écriture du fichier."
+
+#: AppGUI/preferences/PreferencesUIManager.py:1079
+#: AppGUI/preferences/PreferencesUIManager.py:1188
msgid "Preferences saved."
-msgstr "Préférences enregistrées."
+msgstr "Paramètres enregistrées."
-#: flatcamGUI/preferences/PreferencesUIManager.py:1072
+#: AppGUI/preferences/PreferencesUIManager.py:1129
msgid "Preferences edited but not saved."
-msgstr "Préférences modifiées mais non enregistrées."
+msgstr "Paramètres modifiées mais non enregistrées."
-#: flatcamGUI/preferences/PreferencesUIManager.py:1117
+#: AppGUI/preferences/PreferencesUIManager.py:1174
msgid ""
"One or more values are changed.\n"
"Do you want to save the Preferences?"
msgstr ""
"Une ou plusieurs valeurs sont modifiées.\n"
-"Voulez-vous enregistrer les préférences?"
+"Voulez-vous enregistrer les paramètres?"
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:27
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:27
msgid "CNC Job Adv. Options"
msgstr "Options avan. de CNCjob"
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:64
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:64
msgid ""
"Type here any G-Code commands you would like to be executed when Toolchange "
"event is encountered.\n"
@@ -9155,48 +7170,48 @@ msgstr ""
"AVERTISSEMENT: il ne peut être utilisé qu'avec un fichier de préprocesseur "
"qui a «toolchange_custom» dans son nom."
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:119
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:119
msgid "Z depth for the cut"
msgstr "Z profondeur pour la coupe"
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:120
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:120
msgid "Z height for travel"
msgstr "Z hauteur pour le voyage"
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:126
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:126
msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM"
msgstr ""
"dwelltime = temps de repos pour permettre à la broche d'atteindre son régime "
"défini"
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:145
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:145
msgid "Annotation Size"
msgstr "Taille de l'annotation"
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:147
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:147
msgid "The font size of the annotation text. In pixels."
msgstr "La taille de la police du texte d'annotation. En pixels."
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:157
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:157
msgid "Annotation Color"
msgstr "Couleur de l'annotation"
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:159
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:159
msgid "Set the font color for the annotation texts."
msgstr "Définissez la couleur de la police pour les textes d'annotation."
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:26
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:26
msgid "CNC Job General"
msgstr "CNCJob Général"
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:77
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:47
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:59
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:45
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:77
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:47
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:59
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:45
msgid "Circle Steps"
msgstr "Étapes de cercle"
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:79
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:79
msgid ""
"The number of circle steps for GCode \n"
"circle and arc shapes linear approximation."
@@ -9204,11 +7219,11 @@ msgstr ""
"Nombre d'étapes du cercle pour GCode\n"
"approximation linéaire des formes de cercle et d'arc."
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:88
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:88
msgid "Travel dia"
msgstr "Voyage DIa"
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:90
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:90
msgid ""
"The width of the travel lines to be\n"
"rendered in the plot."
@@ -9216,16 +7231,16 @@ msgstr ""
"La largeur des lignes de voyage à être\n"
"rendu dans l'intrigue."
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:103
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:103
msgid "G-code Decimals"
msgstr "Décimales G-code"
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:106
-#: flatcamTools/ToolFiducials.py:74
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:106
+#: AppTools/ToolFiducials.py:74
msgid "Coordinates"
msgstr "Coordonnées"
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:108
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:108
msgid ""
"The number of decimals to be used for \n"
"the X, Y, Z coordinates in CNC code (GCODE, etc.)"
@@ -9233,12 +7248,12 @@ msgstr ""
"Le nombre de décimales à utiliser pour\n"
"les coordonnées X, Y, Z en code CNC (GCODE, etc.)"
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:119
-#: flatcamTools/ToolProperties.py:519
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:119
+#: AppTools/ToolProperties.py:519
msgid "Feedrate"
msgstr "Vitesse d'avance"
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:121
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:121
msgid ""
"The number of decimals to be used for \n"
"the Feedrate parameter in CNC code (GCODE, etc.)"
@@ -9246,11 +7261,11 @@ msgstr ""
"Le nombre de décimales à utiliser pour\n"
"le paramètre Feedrate en code CNC (GCODE, etc.)"
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:132
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:132
msgid "Coordinates type"
msgstr "Type de coord"
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:134
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:134
msgid ""
"The type of coordinates to be used in Gcode.\n"
"Can be:\n"
@@ -9262,19 +7277,19 @@ msgstr ""
"- G90 absolu -> la référence est l'origine x = 0, y = 0\n"
"- Incrémental G91 -> la référence est la position précédente"
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:140
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:140
msgid "Absolute G90"
msgstr "G90 absolu"
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:141
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:141
msgid "Incremental G91"
msgstr "G91 incrémentiel"
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:151
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:151
msgid "Force Windows style line-ending"
msgstr "Forcer la fin de ligne de style Windows"
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:153
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:153
msgid ""
"When checked will force a Windows style line-ending\n"
"(\\r\\n) on non-Windows OS's."
@@ -9282,39 +7297,39 @@ msgstr ""
"Lorsqu'elle est cochée, la fin de ligne de style Windows\n"
"(\\r \\n) sur les systèmes d'exploitation non Windows."
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:165
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:165
msgid "Travel Line Color"
msgstr "Couleur de la ligne de voyage"
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:169
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:235
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:262
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:154
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:220
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:84
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:153
-#: flatcamTools/ToolRulesCheck.py:186
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:169
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:235
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:262
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:154
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:220
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:84
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:153
+#: AppTools/ToolRulesCheck.py:186
msgid "Outline"
msgstr "Contour"
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:171
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:171
msgid "Set the travel line color for plotted objects."
msgstr ""
"Définissez la couleur de la ligne de déplacement pour les objets tracés."
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:186
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:252
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:279
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:170
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:237
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:170
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:186
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:252
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:279
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:170
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:237
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:170
msgid "Fill"
msgstr "Contenu"
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:188
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:254
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:281
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:172
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:188
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:254
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:281
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:172
msgid ""
"Set the fill color for plotted objects.\n"
"First 6 digits are the color and the last 2\n"
@@ -9324,41 +7339,41 @@ msgstr ""
"Les 6 premiers chiffres correspondent à la couleur et les 2 derniers\n"
"les chiffres correspondent au niveau alpha (transparence)."
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:205
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:298
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:190
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:257
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:189
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:205
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:298
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:190
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:257
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:189
msgid "Alpha"
msgstr "Alpha"
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:207
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:300
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:191
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:207
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:300
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:191
msgid "Set the fill transparency for plotted objects."
msgstr "Définissez la transparence de remplissage pour les objets tracés."
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:231
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:231
msgid "CNCJob Object Color"
msgstr "Couleur d'objet CNCJob"
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:237
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:237
msgid "Set the color for plotted objects."
msgstr "Définissez la couleur des objets tracés."
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:27
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:27
msgid "CNC Job Options"
msgstr "Options CNCjob"
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:31
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:31
msgid "Export G-Code"
-msgstr "Exporter le code G"
+msgstr "Exporter le GCcode"
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:47
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:47
msgid "Prepend to G-Code"
msgstr "Préfixer au G-Code"
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:56
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:56
msgid ""
"Type here any G-Code commands you would like to add at the beginning of the "
"G-Code file."
@@ -9366,11 +7381,11 @@ msgstr ""
"Tapez ici toutes les commandes G-Code que vous souhaitez ajouter au début du "
"fichier G-Code."
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:63
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:63
msgid "Append to G-Code"
msgstr "Ajouter au G-Code"
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:73
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:73
msgid ""
"Type here any G-Code commands you would like to append to the generated "
"file.\n"
@@ -9380,17 +7395,17 @@ msgstr ""
"généré.\n"
"Par exemple: M2 (Fin du programme)"
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:27
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:27
msgid "Excellon Adv. Options"
msgstr "Excellon Opt. avancées"
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:34
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:33
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:31
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:34
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:33
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:31
msgid "Advanced Options"
msgstr "Options avancées"
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:36
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:36
msgid ""
"A list of Excellon advanced parameters.\n"
"Those parameters are available only for\n"
@@ -9400,22 +7415,22 @@ msgstr ""
"Ces paramètres ne sont disponibles que pour\n"
"App avancée. Niveau."
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:59
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:59
msgid "Toolchange X,Y"
msgstr "Changement d'outils X, Y"
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:61
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:47
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:61
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:47
msgid "Toolchange X,Y position."
msgstr "Changement d'outil en position X et Y."
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:121
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:134
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:121
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:134
msgid "Spindle direction"
msgstr "Direction du moteur"
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:123
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:136
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:123
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:136
msgid ""
"This sets the direction that the spindle is rotating.\n"
"It can be either:\n"
@@ -9427,13 +7442,13 @@ msgstr ""
"- CW = dans le sens des aiguilles d'une montre ou\n"
"- CCW = dans le sens antihoraire"
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:134
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:148
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:134
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:148
msgid "Fast Plunge"
msgstr "Plongée rapide"
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:136
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:150
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:136
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:150
msgid ""
"By checking this, the vertical move from\n"
"Z_Toolchange to Z_move is done with G0,\n"
@@ -9446,11 +7461,11 @@ msgstr ""
"AVERTISSEMENT: le déplacement est effectué à l'aide de Toolchange X, Y "
"coords."
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:143
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:143
msgid "Fast Retract"
msgstr "Retrait Rapide"
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:145
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:145
msgid ""
"Exit hole strategy.\n"
" - When uncheked, while exiting the drilled hole the drill bit\n"
@@ -9469,18 +7484,18 @@ msgstr ""
"(hauteur de déplacement) est fait aussi vite que possible (G0) en un seul "
"mouvement."
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:32
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:32
msgid "A list of Excellon Editor parameters."
msgstr "Une liste des paramètres de l'éditeur Excellon."
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:40
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:41
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:41
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:194
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:40
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:41
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:41
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:194
msgid "Selection limit"
msgstr "Limite de sélection"
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:42
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:42
msgid ""
"Set the number of selected Excellon geometry\n"
"items above which the utility geometry\n"
@@ -9494,35 +7509,35 @@ msgstr ""
"Augmente les performances lors du déplacement d'un\n"
"grand nombre d'éléments géométriques."
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:55
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:117
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:123
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:55
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:117
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:123
msgid "New Dia"
-msgstr "Nouvel Dia"
+msgstr "Nouveau Diam"
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:80
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:80
msgid "Linear Drill Array"
msgstr "Matrice de Forage Linéaire"
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:84
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:232
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:120
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:84
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:232
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:120
msgid "Linear Direction"
msgstr "Direction linéaire"
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:126
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:126
msgid "Circular Drill Array"
msgstr "Matrice de Forage Circulaires"
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:130
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:280
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:164
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:130
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:280
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:164
msgid "Circular Direction"
msgstr "Direction circulaire"
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:132
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:282
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:166
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:132
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:282
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:166
msgid ""
"Direction for circular array.\n"
"Can be CW = clockwise or CCW = counter clockwise."
@@ -9530,13 +7545,13 @@ msgstr ""
"Direction pour tableau circulaire.\n"
"Peut être CW = sens horaire ou CCW = sens antihoraire."
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:143
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:293
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:177
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:143
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:293
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:177
msgid "Circular Angle"
msgstr "Angle Circulaire"
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:196
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:196
msgid ""
"Angle at which the slot is placed.\n"
"The precision is of max 2 decimals.\n"
@@ -9548,24 +7563,24 @@ msgstr ""
"La valeur minimale est: -359,99 degrés.\n"
"La valeur maximale est: 360,00 degrés."
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:215
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:215
msgid "Linear Slot Array"
msgstr "Matrice de Fente Linéaire"
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:276
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:276
msgid "Circular Slot Array"
msgstr "Matrice de Fente Circulaire"
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:26
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:26
msgid "Excellon Export"
msgstr "Excellon exportation"
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:30
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:31
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:30
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:31
msgid "Export Options"
msgstr "Options d'exportation"
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:32
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:32
msgid ""
"The parameters set here are used in the file exported\n"
"when using the File -> Export -> Export Excellon menu entry."
@@ -9574,45 +7589,45 @@ msgstr ""
"lors de l'utilisation de l'entrée de menu Fichier -> Exporter -> Exporter "
"Excellon."
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:41
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:163
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:39
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:42
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:82
-#: flatcamTools/ToolDistance.py:56 flatcamTools/ToolDistanceMin.py:50
-#: flatcamTools/ToolPcbWizard.py:127 flatcamTools/ToolProperties.py:154
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:41
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:163
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:39
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:42
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:82
+#: AppTools/ToolDistance.py:56 AppTools/ToolDistanceMin.py:49
+#: AppTools/ToolPcbWizard.py:127 AppTools/ToolProperties.py:154
msgid "Units"
msgstr "Unités"
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:43
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:49
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:43
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:49
msgid "The units used in the Excellon file."
msgstr "Les unités utilisées dans le fichier Excellon."
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:46
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:87
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:173
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:47
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:87
-#: flatcamTools/ToolCalculators.py:61 flatcamTools/ToolPcbWizard.py:125
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:46
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:87
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:173
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:47
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:87
+#: AppTools/ToolCalculators.py:61 AppTools/ToolPcbWizard.py:125
msgid "INCH"
msgstr "PO"
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:47
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:174
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:43
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:48
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:88
-#: flatcamTools/ToolCalculators.py:62 flatcamTools/ToolPcbWizard.py:126
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:47
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:174
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:43
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:48
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:88
+#: AppTools/ToolCalculators.py:62 AppTools/ToolPcbWizard.py:126
msgid "MM"
msgstr "MM"
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:55
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:56
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:55
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:56
msgid "Int/Decimals"
msgstr "Entiers/Décim"
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:57
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:57
msgid ""
"The NC drill files, usually named Excellon files\n"
"are files that can be found in different formats.\n"
@@ -9624,9 +7639,9 @@ msgstr ""
"Ici, nous définissons le format utilisé lorsque le\n"
"les coordonnées n'utilisent pas de période."
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:69
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:95
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:124
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:69
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:95
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:124
msgid ""
"This numbers signify the number of digits in\n"
"the whole part of Excellon coordinates."
@@ -9634,9 +7649,9 @@ msgstr ""
"Ces chiffres représentent le nombre de chiffres en\n"
"toute la partie des coordonnées Excellon."
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:82
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:108
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:137
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:82
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:108
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:137
msgid ""
"This numbers signify the number of digits in\n"
"the decimal part of Excellon coordinates."
@@ -9644,12 +7659,12 @@ msgstr ""
"Ces chiffres représentent le nombre de chiffres en\n"
"la partie décimale des coordonnées Excellon."
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:91
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:91
msgid "Format"
msgstr "Format"
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:93
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:103
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:93
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:103
msgid ""
"Select the kind of coordinates format used.\n"
"Coordinates can be saved with decimal point or without.\n"
@@ -9665,22 +7680,22 @@ msgstr ""
"De plus, il faudra préciser si LZ = zéros non significatifs sont conservés\n"
"ou TZ = les zéros de fin sont conservés."
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:100
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:100
msgid "Decimal"
msgstr "Décimal"
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:101
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:101
msgid "No-Decimal"
msgstr "Aucune décimale"
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:114
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:145
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:96
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:97
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:114
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:145
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:96
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:97
msgid "Zeros"
msgstr "Zéros"
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:117
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:117
msgid ""
"This sets the type of Excellon zeros.\n"
"If LZ then Leading Zeros are kept and\n"
@@ -9694,23 +7709,23 @@ msgstr ""
"Si TZ est coché, les zéros suivants sont conservés\n"
"et les zéros non significatifs sont supprimés."
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:124
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:158
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:106
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:107
-#: flatcamTools/ToolPcbWizard.py:111
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:124
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:158
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:106
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:107
+#: AppTools/ToolPcbWizard.py:111
msgid "LZ"
msgstr "LZ"
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:125
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:159
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:107
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:108
-#: flatcamTools/ToolPcbWizard.py:112
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:125
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:159
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:107
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:108
+#: AppTools/ToolPcbWizard.py:112
msgid "TZ"
msgstr "TZ"
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:127
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:127
msgid ""
"This sets the default type of Excellon zeros.\n"
"If LZ then Leading Zeros are kept and\n"
@@ -9724,12 +7739,12 @@ msgstr ""
"Si TZ est coché, les zéros suivants sont conservés\n"
"et les zéros non significatifs sont supprimés."
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:137
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:137
msgid "Slot type"
msgstr "Type d'fentes"
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:140
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:150
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:140
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:150
msgid ""
"This sets how the slots will be exported.\n"
"If ROUTED then the slots will be routed\n"
@@ -9743,23 +7758,23 @@ msgstr ""
"Si percé (G85) les emplacements seront exportés\n"
"en utilisant la commande slot foré (G85)."
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:147
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:147
msgid "Routed"
msgstr "Routé"
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:148
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:148
msgid "Drilled(G85)"
msgstr "Percé(G85)"
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:29
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:29
msgid "Excellon General"
msgstr "Excellon Général"
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:62
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:62
msgid "Excellon Format"
msgstr "Format Excellon"
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:64
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:64
msgid ""
"The NC drill files, usually named Excellon files\n"
"are files that can be found in different formats.\n"
@@ -9801,19 +7816,19 @@ msgstr ""
"Sprint Layout 2: 4 INCH LZ\n"
"KiCAD 3: 5 IN TZ"
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:88
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:88
msgid "Default values for INCH are 2:4"
msgstr "Les valeurs par défaut pour INCH sont 2: 4"
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:116
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:116
msgid "METRIC"
msgstr "MÉTRIQUE"
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:117
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:117
msgid "Default values for METRIC are 3:3"
msgstr "Les valeurs par défaut pour MÉTRIQUE sont 3: 3"
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:148
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:148
msgid ""
"This sets the type of Excellon zeros.\n"
"If LZ then Leading Zeros are kept and\n"
@@ -9833,7 +7848,7 @@ msgstr ""
"Ceci est utilisé lorsqu'il n'y a pas d'informations\n"
"stocké dans le fichier Excellon."
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:166
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:166
msgid ""
"This sets the default units of Excellon files.\n"
"If it is not detected in the parsed file the value here\n"
@@ -9845,7 +7860,7 @@ msgstr ""
"sera utilisé. Certains fichiers Excellon n’ont pas d’en-tête\n"
"donc ce paramètre sera utilisé."
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:176
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:176
msgid ""
"This sets the units of Excellon files.\n"
"Some Excellon files don't have an header\n"
@@ -9855,20 +7870,20 @@ msgstr ""
"Certains fichiers Excellon n'ont pas d'en-tête\n"
"donc ce paramètre sera utilisé."
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:184
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:184
msgid "Update Export settings"
msgstr "Mettre à jour les param d'export"
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:201
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:201
msgid "Excellon Optimization"
msgstr "Optimisation Excellon"
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:204
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:204
msgid "Algorithm:"
msgstr "Algorithme:"
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:206
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:222
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:206
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:222
msgid ""
"This sets the optimization type for the Excellon drill path.\n"
"If <> is checked then Google OR-Tools algorithm with\n"
@@ -9891,28 +7906,28 @@ msgstr ""
"Si ce contrôle est désactivé, FlatCAM fonctionne en mode 32 bits et utilise\n"
"Algorithme Travelling Salesman pour l’optimisation des chemins."
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:217
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:217
msgid "MetaHeuristic"
msgstr "MetaHeuristic"
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:218
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:104
-#: flatcamObjects/FlatCAMExcellon.py:614 flatcamObjects/FlatCAMGeometry.py:510
-#: flatcamObjects/FlatCAMGerber.py:251
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:218
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:104
+#: AppObjects/FlatCAMExcellon.py:683 AppObjects/FlatCAMGeometry.py:561
+#: AppObjects/FlatCAMGerber.py:251
msgid "Basic"
msgstr "De base"
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:219
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:219
msgid "TSA"
msgstr "TSA"
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:236
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:245
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:237
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:236
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:245
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:237
msgid "Duration"
msgstr "Durée"
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:239
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:239
msgid ""
"When OR-Tools Metaheuristic (MH) is enabled there is a\n"
"maximum threshold for how much time is spent doing the\n"
@@ -9924,26 +7939,26 @@ msgstr ""
"optimisation du chemin. Cette durée maximale est définie ici.\n"
"En secondes."
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:258
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:258
msgid "Excellon Object Color"
msgstr "Couleur d'objet Excellon"
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:264
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:86
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:155
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:264
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:86
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:155
msgid "Set the line color for plotted objects."
msgstr "Définissez la couleur de trait pour les objets tracés."
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:29
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:29
msgid "Excellon Options"
msgstr "Les options Excellon"
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:33
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:34
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:33
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:34
msgid "Create CNC Job"
msgstr "Créer un travail CNC"
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:35
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:35
msgid ""
"Parameters used to create a CNC Job object\n"
"for this drill object."
@@ -9951,17 +7966,17 @@ msgstr ""
"Paramètres utilisés pour créer un objet Travail CNC\n"
"pour cet objet de forage."
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:152
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:121
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:152
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:121
msgid "Tool change"
msgstr "Changement d'outil"
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:236
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:232
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:236
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:232
msgid "Enable Dwell"
msgstr "Activer la Pause"
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:259
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:259
msgid ""
"The preprocessor JSON file that dictates\n"
"Gcode output."
@@ -9969,11 +7984,11 @@ msgstr ""
"Le fichier JSON post-processeur qui dicte\n"
"Sortie Gcode."
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:270
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:270
msgid "Gcode"
msgstr "Gcode"
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:272
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:272
msgid ""
"Choose what to use for GCode generation:\n"
"'Drills', 'Slots' or 'Both'.\n"
@@ -9985,23 +8000,23 @@ msgstr ""
"Lorsque vous choisissez \"Fentes\" ou \"Les Deux\", les fentes seront\n"
"converti en forages."
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:288
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:288
msgid "Mill Holes"
msgstr "Fraiser les Trous"
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:290
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:290
msgid "Create Geometry for milling holes."
msgstr "Créer une géométrie pour fraiser des trous."
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:294
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:294
msgid "Drill Tool dia"
-msgstr "Dia. de l'outil de forage"
+msgstr "Diam. de l'outil de forage"
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:305
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:305
msgid "Slot Tool dia"
-msgstr "Fente outil dia"
+msgstr "Diam fente outil"
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:307
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:307
msgid ""
"Diameter of the cutting tool\n"
"when milling slots."
@@ -10009,43 +8024,43 @@ msgstr ""
"Diamètre de l'outil de coupe\n"
"lors du fraisage des fentes."
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:28
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:28
msgid "App Settings"
msgstr "Paramètres de l'application"
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:49
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:49
msgid "Grid Settings"
msgstr "Paramètres de la grille"
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:53
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:53
msgid "X value"
msgstr "Valeur X"
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:55
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:55
msgid "This is the Grid snap value on X axis."
msgstr "Il s'agit de la valeur d'accrochage de la grille sur l'axe des X."
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:65
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:65
msgid "Y value"
msgstr "Valeur Y"
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:67
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:67
msgid "This is the Grid snap value on Y axis."
msgstr "Il s'agit de la valeur d'accrochage de la grille sur l'axe des Y."
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:77
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:77
msgid "Snap Max"
msgstr "Accrocher max"
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:92
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:92
msgid "Workspace Settings"
msgstr "Paramètres de l'espace de travail"
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:95
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:95
msgid "Active"
msgstr "Actif"
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:97
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:97
msgid ""
"Draw a delimiting rectangle on canvas.\n"
"The purpose is to illustrate the limits for our work."
@@ -10053,7 +8068,7 @@ msgstr ""
"Dessinez un rectangle de délimitation sur la toile.\n"
"Le but est d’illustrer les limites de notre travail."
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:105
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:105
msgid ""
"Select the type of rectangle to be used on canvas,\n"
"as valid workspace."
@@ -10061,13 +8076,13 @@ msgstr ""
"Sélectionnez le type de rectangle à utiliser sur la toile,\n"
"comme espace de travail valide."
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:171
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:171
msgid "Orientation"
msgstr "Orientation"
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:172
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:239
-#: flatcamTools/ToolFilm.py:422
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:172
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:239
+#: AppTools/ToolFilm.py:405
msgid ""
"Can be:\n"
"- Portrait\n"
@@ -10077,26 +8092,31 @@ msgstr ""
"- Portrait\n"
"- Paysage"
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:176
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:243
-#: flatcamTools/ToolFilm.py:426
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:176
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:243
+#: AppTools/ToolFilm.py:409
msgid "Portrait"
msgstr "Portrait"
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:177
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:244
-#: flatcamTools/ToolFilm.py:427
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:177
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:244
+#: AppTools/ToolFilm.py:410
msgid "Landscape"
msgstr "Paysage"
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:201
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:201
msgid "Notebook"
msgstr "Carnet"
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:203
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:203
+#, fuzzy
+#| msgid ""
+#| "This sets the font size for the elements found in the Notebook.\n"
+#| "The notebook is the collapsible area in the left side of the GUI,\n"
+#| "and include the Project, Selected and Tool tabs."
msgid ""
"This sets the font size for the elements found in the Notebook.\n"
-"The notebook is the collapsible area in the left side of the GUI,\n"
+"The notebook is the collapsible area in the left side of the AppGUI,\n"
"and include the Project, Selected and Tool tabs."
msgstr ""
"Ceci définit la taille de la police pour les éléments présents dans le "
@@ -10105,36 +8125,50 @@ msgstr ""
"graphique,\n"
"et incluez les onglets Projet, Sélectionné et Outil."
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:222
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:222
msgid "Axis"
msgstr "Axe"
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:224
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:224
msgid "This sets the font size for canvas axis."
msgstr "Ceci définit la taille de la police pour l'axe de la toile."
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:241
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:241
msgid "Textbox"
msgstr "Zone de texte"
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:243
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:243
+#, fuzzy
+#| msgid ""
+#| "This sets the font size for the Textbox GUI\n"
+#| "elements that are used in FlatCAM."
msgid ""
-"This sets the font size for the Textbox GUI\n"
+"This sets the font size for the Textbox AppGUI\n"
"elements that are used in FlatCAM."
msgstr ""
"Ceci définit la taille de la police pour l'interface graphique de la zone de "
"texte\n"
"éléments utilisés dans FlatCAM."
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:269
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:261
+msgid "HUD"
+msgstr ""
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:263
+#, fuzzy
+#| msgid "This sets the font size for canvas axis."
+msgid "This sets the font size for the Heads Up Display."
+msgstr "Ceci définit la taille de la police pour l'axe de la toile."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:288
msgid "Mouse Settings"
msgstr "Paramètres de la souris"
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:273
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:292
msgid "Cursor Shape"
msgstr "Forme du curseur"
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:275
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:294
msgid ""
"Choose a mouse cursor shape.\n"
"- Small -> with a customizable size.\n"
@@ -10144,48 +8178,48 @@ msgstr ""
"- Petit -> avec une taille personnalisable.\n"
"- Grand -> Lignes infinies"
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:281
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:300
msgid "Small"
msgstr "Petit"
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:282
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:301
msgid "Big"
msgstr "Grand"
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:289
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:308
msgid "Cursor Size"
msgstr "Taille du curseur"
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:291
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:310
msgid "Set the size of the mouse cursor, in pixels."
msgstr "Définissez la taille du curseur de la souris, en pixels."
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:302
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:321
msgid "Cursor Width"
msgstr "Largeur du curseur"
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:304
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:323
msgid "Set the line width of the mouse cursor, in pixels."
msgstr "Définissez la largeur de ligne du curseur de la souris, en pixels."
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:315
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:322
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:334
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:341
msgid "Cursor Color"
msgstr "Couleur du curseur"
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:317
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:336
msgid "Check this box to color mouse cursor."
msgstr "Cochez cette case pour colorer le curseur de la souris."
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:324
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:343
msgid "Set the color of the mouse cursor."
msgstr "Définissez la couleur du curseur de la souris."
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:347
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:366
msgid "Pan Button"
msgstr "Bouton pan"
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:349
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:368
msgid ""
"Select the mouse button to use for panning:\n"
"- MMB --> Middle Mouse Button\n"
@@ -10195,35 +8229,35 @@ msgstr ""
"- MMB -> Bouton central de la souris\n"
"- RMB -> bouton droit de la souris"
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:353
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:372
msgid "MMB"
msgstr "MMB"
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:354
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:373
msgid "RMB"
msgstr "RMB"
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:360
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:379
msgid "Multiple Selection"
msgstr "Sélection multiple"
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:362
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:381
msgid "Select the key used for multiple selection."
msgstr "Sélectionnez la clé utilisée pour la sélection multiple."
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:364
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:383
msgid "CTRL"
msgstr "CTRL"
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:365
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:384
msgid "SHIFT"
msgstr "SHIFT"
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:376
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:395
msgid "Delete object confirmation"
msgstr "Supprimer la conf. de l'objet"
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:378
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:397
msgid ""
"When checked the application will ask for user confirmation\n"
"whenever the Delete object(s) event is triggered, either by\n"
@@ -10233,11 +8267,11 @@ msgstr ""
"chaque fois que l'événement Delete object (s) est déclenché, soit par\n"
"raccourci de menu ou raccourci clavier."
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:385
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:404
msgid "\"Open\" behavior"
msgstr "Comportement \"ouvert\""
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:387
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:406
msgid ""
"When checked the path for the last saved file is used when saving files,\n"
"and the path for the last opened file is used when opening files.\n"
@@ -10254,11 +8288,11 @@ msgstr ""
"dernier: soit le\n"
"chemin pour sauvegarder les fichiers ou chemin pour ouvrir les fichiers."
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:396
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:415
msgid "Enable ToolTips"
msgstr "Activer les info-bulles"
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:398
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:417
msgid ""
"Check this box if you want to have toolTips displayed\n"
"when hovering with mouse over items throughout the App."
@@ -10266,11 +8300,11 @@ msgstr ""
"Cochez cette case si vous souhaitez afficher les info-bulles\n"
"lorsque vous survolez avec la souris sur des éléments dans l’application."
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:405
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:424
msgid "Allow Machinist Unsafe Settings"
msgstr "Autoriser les paramètres dangereux du machiniste"
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:407
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:426
msgid ""
"If checked, some of the application settings will be allowed\n"
"to have values that are usually unsafe to use.\n"
@@ -10287,11 +8321,11 @@ msgstr ""
"<>: Ne changez rien à moins que vous sachiez ce que vous "
"faites !!!"
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:419
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:438
msgid "Bookmarks limit"
msgstr "Limite de favoris"
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:421
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:440
msgid ""
"The maximum number of bookmarks that may be installed in the menu.\n"
"The number of bookmarks in the bookmark manager may be greater\n"
@@ -10301,19 +8335,19 @@ msgstr ""
"Le nombre de signets dans le gestionnaire de favoris peut être supérieur\n"
"mais le menu tiendra seulement beaucoup."
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:430
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:449
msgid "Activity Icon"
msgstr "Icône d'activité"
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:432
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:451
msgid "Select the GIF that show activity when FlatCAM is active."
msgstr "Sélectionnez le GIF qui affiche l'activité lorsque FlatCAM est actif."
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:29
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:29
msgid "App Preferences"
-msgstr "Préférences de l'app"
+msgstr "Paramètres de l'app"
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:40
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:40
msgid ""
"The default value for FlatCAM units.\n"
"Whatever is selected here is set every time\n"
@@ -10323,15 +8357,15 @@ msgstr ""
"Tout ce qui est sélectionné ici est défini à chaque fois\n"
"FLatCAM est démarré."
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:44
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:44
msgid "IN"
msgstr "PO"
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:50
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:50
msgid "Precision MM"
msgstr "Précision MM"
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:52
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:52
msgid ""
"The number of decimals used throughout the application\n"
"when the set units are in METRIC system.\n"
@@ -10341,11 +8375,11 @@ msgstr ""
"lorsque les unités définies sont dans le système METRIC.\n"
"Toute modification ici nécessite un redémarrage de l'application."
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:64
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:64
msgid "Precision INCH"
msgstr "Précision INCH"
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:66
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:66
msgid ""
"The number of decimals used throughout the application\n"
"when the set units are in INCH system.\n"
@@ -10355,11 +8389,11 @@ msgstr ""
"lorsque les unités définies sont dans le système INCH.\n"
"Toute modification ici nécessite un redémarrage de l'application."
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:78
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:78
msgid "Graphic Engine"
msgstr "Moteur graphique"
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:79
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:79
msgid ""
"Choose what graphic engine to use in FlatCAM.\n"
"Legacy(2D) -> reduced functionality, slow performance but enhanced "
@@ -10379,19 +8413,19 @@ msgstr ""
"donc\n"
"utilisez le mode Héritage (2D)."
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:85
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:85
msgid "Legacy(2D)"
msgstr "Heritage(2D)"
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:86
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:86
msgid "OpenGL(3D)"
msgstr "OpenGL(3D)"
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:98
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:98
msgid "APP. LEVEL"
msgstr "APP. NIVEAU"
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:99
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:99
msgid ""
"Choose the default level of usage for FlatCAM.\n"
"BASIC level -> reduced functionality, best for beginner's.\n"
@@ -10407,17 +8441,17 @@ msgstr ""
"Le choix ici influencera les paramètres dans\n"
"l'onglet Sélectionné pour toutes sortes d'objets FlatCAM."
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:105
-#: flatcamObjects/FlatCAMExcellon.py:627 flatcamObjects/FlatCAMGeometry.py:531
-#: flatcamObjects/FlatCAMGerber.py:278
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:105
+#: AppObjects/FlatCAMExcellon.py:696 AppObjects/FlatCAMGeometry.py:582
+#: AppObjects/FlatCAMGerber.py:278
msgid "Advanced"
msgstr "Avancé"
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:111
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:111
msgid "Portable app"
msgstr "App. portable"
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:112
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:112
msgid ""
"Choose if the application should run as portable.\n"
"\n"
@@ -10428,22 +8462,22 @@ msgstr ""
"Choisissez si l'application doit être exécutée en tant que portable.\n"
"\n"
"Si coché, l'application fonctionnera en mode portable,\n"
-"ce qui signifie que les fichiers de préférences seront sauvegardés\n"
+"ce qui signifie que les fichiers de paramètres seront sauvegardés\n"
"dans le dossier de l'application, dans le sous-dossier lib\\config."
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:125
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:125
msgid "Languages"
msgstr "Langages"
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:126
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:126
msgid "Set the language used throughout FlatCAM."
msgstr "Définissez la langue utilisée dans FlatCAM."
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:132
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:132
msgid "Apply Language"
msgstr "Appliquer la langue"
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:133
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:133
msgid ""
"Set the language used throughout FlatCAM.\n"
"The app will restart after click."
@@ -10451,32 +8485,32 @@ msgstr ""
"Définissez la langue utilisée dans FlatCAM.\n"
"L'application redémarrera après un clic."
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:147
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:147
msgid "Startup Settings"
msgstr "Paramètres de démarrage"
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:151
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:151
msgid "Splash Screen"
msgstr "Écran de démarrage"
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:153
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:153
msgid "Enable display of the splash screen at application startup."
msgstr ""
"Activer l'affichage de l'écran de démarrage au démarrage de l'application."
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:165
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:165
msgid "Sys Tray Icon"
msgstr "Icône Sys Tray"
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:167
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:167
msgid "Enable display of FlatCAM icon in Sys Tray."
msgstr "Activer l’affichage de l’icône FlatCAM dans Sys Tray."
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:172
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:172
msgid "Show Shell"
msgstr "Afficher la ligne de commande"
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:174
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:174
msgid ""
"Check this box if you want the shell to\n"
"start automatically at startup."
@@ -10484,11 +8518,11 @@ msgstr ""
"Cochez cette case si vous voulez que le shell\n"
"démarrer automatiquement au démarrage."
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:181
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:181
msgid "Show Project"
msgstr "Afficher le projet"
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:183
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:183
msgid ""
"Check this box if you want the project/selected/tool tab area to\n"
"to be shown automatically at startup."
@@ -10497,11 +8531,11 @@ msgstr ""
"outil\n"
"à afficher automatiquement au démarrage."
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:189
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:189
msgid "Version Check"
msgstr "Vérification de version"
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:191
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:191
msgid ""
"Check this box if you want to check\n"
"for a new version automatically at startup."
@@ -10509,11 +8543,11 @@ msgstr ""
"Cochez cette case si vous voulez vérifier\n"
"pour une nouvelle version automatiquement au démarrage."
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:198
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:198
msgid "Send Statistics"
msgstr "Envoyer des statistiques"
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:200
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:200
msgid ""
"Check this box if you agree to send anonymous\n"
"stats automatically at startup, to help improve FlatCAM."
@@ -10521,11 +8555,11 @@ msgstr ""
"Cochez cette case si vous acceptez d'envoyer un message anonyme\n"
"stats automatiquement au démarrage, pour aider à améliorer FlatCAM."
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:214
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:214
msgid "Workers number"
msgstr "No de travailleurs"
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:216
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:216
msgid ""
"The number of Qthreads made available to the App.\n"
"A bigger number may finish the jobs more quickly but\n"
@@ -10541,11 +8575,11 @@ msgstr ""
"La valeur par défaut est 2.\n"
"Après modification, il sera appliqué au prochain démarrage de l'application."
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:230
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:230
msgid "Geo Tolerance"
msgstr "Géo Tolérance"
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:232
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:232
msgid ""
"This value can counter the effect of the Circle Steps\n"
"parameter. Default value is 0.005.\n"
@@ -10561,15 +8595,15 @@ msgstr ""
"performance. Une valeur plus élevée fournira plus\n"
"performance au détriment du niveau de détail."
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:252
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:252
msgid "Save Settings"
msgstr "Paramètres d'enregistrement"
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:256
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:256
msgid "Save Compressed Project"
msgstr "Enregistrer le projet compressé"
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:258
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:258
msgid ""
"Whether to save a compressed or uncompressed project.\n"
"When checked it will save a compressed FlatCAM project."
@@ -10577,11 +8611,11 @@ msgstr ""
"Que ce soit pour sauvegarder un projet compressé ou non compressé.\n"
"Lorsque coché, un projet FlatCAM compressé sera enregistré."
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:267
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:267
msgid "Compression"
msgstr "Compression"
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:269
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:269
msgid ""
"The level of compression used when saving\n"
"a FlatCAM project. Higher value means better compression\n"
@@ -10592,11 +8626,11 @@ msgstr ""
"compression\n"
"mais nécessitent plus d’utilisation de RAM et plus de temps de traitement."
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:280
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:280
msgid "Enable Auto Save"
msgstr "Activer l'enregistrement auto"
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:282
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:282
msgid ""
"Check to enable the autosave feature.\n"
"When enabled, the application will try to save a project\n"
@@ -10606,11 +8640,11 @@ msgstr ""
"Lorsqu'elle est activée, l'application essaiera d'enregistrer un projet\n"
"à l'intervalle défini."
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:292
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:292
msgid "Interval"
msgstr "Intervalle"
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:294
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:294
msgid ""
"Time interval for autosaving. In milliseconds.\n"
"The application will try to save periodically but only\n"
@@ -10623,57 +8657,57 @@ msgstr ""
"Lorsqu'elles sont actives, certaines opérations peuvent bloquer cette "
"fonctionnalité."
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:310
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:310
msgid "Text to PDF parameters"
msgstr "Paramètres texte en PDF"
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:312
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:312
msgid "Used when saving text in Code Editor or in FlatCAM Document objects."
msgstr ""
"Utilisé lors de l'enregistrement de texte dans l'éditeur de code ou dans des "
"objets de document FlatCAM."
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:321
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:321
msgid "Top Margin"
msgstr "Marge supérieure"
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:323
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:323
msgid "Distance between text body and the top of the PDF file."
msgstr "Distance entre le corps du texte et le haut du fichier PDF."
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:334
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:334
msgid "Bottom Margin"
msgstr "Marge inférieure"
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:336
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:336
msgid "Distance between text body and the bottom of the PDF file."
msgstr "Distance entre le corps du texte et le bas du fichier PDF."
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:347
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:347
msgid "Left Margin"
msgstr "Marge de gauche"
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:349
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:349
msgid "Distance between text body and the left of the PDF file."
msgstr "Distance entre le corps du texte et la gauche du fichier PDF."
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:360
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:360
msgid "Right Margin"
msgstr "Marge droite"
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:362
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:362
msgid "Distance between text body and the right of the PDF file."
msgstr "Distance entre le corps du texte et la droite du fichier PDF."
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:26
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:26
msgid "GUI Preferences"
-msgstr "Préférences de GUI"
+msgstr "Paramètres de GUI"
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:36
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:36
msgid "Theme"
msgstr "Thème"
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:38
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:38
msgid ""
"Select a theme for FlatCAM.\n"
"It will theme the plot area."
@@ -10681,19 +8715,19 @@ msgstr ""
"Sélectionnez un thème pour FlatCAM.\n"
"Il aura pour thème la zone de traçage."
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:43
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:43
msgid "Light"
msgstr "Lumière"
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:44
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:44
msgid "Dark"
msgstr "Noir"
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:51
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:51
msgid "Use Gray Icons"
msgstr "Utiliser des icônes grises"
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:53
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:53
msgid ""
"Check this box to use a set of icons with\n"
"a lighter (gray) color. To be used when a\n"
@@ -10703,25 +8737,11 @@ msgstr ""
"une couleur plus claire (grise). À utiliser lorsqu'un\n"
"le thème sombre complet est appliqué."
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:59
-msgid "Apply Theme"
-msgstr "Appliquer le thème"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:61
-msgid ""
-"Select a theme for FlatCAM.\n"
-"It will theme the plot area.\n"
-"The application will restart after change."
-msgstr ""
-"Sélectionnez un thème pour FlatCAM.\n"
-"Il aura pour thème la zone de traçage.\n"
-"L'application redémarrera après le changement."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:73
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:73
msgid "Layout"
msgstr "Disposition"
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:75
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:75
msgid ""
"Select an layout for FlatCAM.\n"
"It is applied immediately."
@@ -10729,11 +8749,11 @@ msgstr ""
"Sélectionnez une mise en page pour FlatCAM.\n"
"Il est appliqué immédiatement."
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:95
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:95
msgid "Style"
msgstr "Style"
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:97
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:97
msgid ""
"Select an style for FlatCAM.\n"
"It will be applied at the next app start."
@@ -10741,11 +8761,11 @@ msgstr ""
"Sélectionnez un style pour FlatCAM.\n"
"Il sera appliqué au prochain démarrage de l'application."
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:111
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:111
msgid "Activate HDPI Support"
msgstr "Activer le support HDPI"
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:113
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:113
msgid ""
"Enable High DPI support for FlatCAM.\n"
"It will be applied at the next app start."
@@ -10753,11 +8773,11 @@ msgstr ""
"Activer la prise en charge haute DPI pour FlatCAM.\n"
"Il sera appliqué au prochain démarrage de l'application."
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:127
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:127
msgid "Display Hover Shape"
msgstr "Afficher la forme de survol"
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:129
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:129
msgid ""
"Enable display of a hover shape for FlatCAM objects.\n"
"It is displayed whenever the mouse cursor is hovering\n"
@@ -10768,11 +8788,11 @@ msgstr ""
"stationnaire\n"
"sur tout type d'objet non sélectionné."
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:136
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:136
msgid "Display Selection Shape"
msgstr "Afficher la forme de sélection"
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:138
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:138
msgid ""
"Enable the display of a selection shape for FlatCAM objects.\n"
"It is displayed whenever the mouse selects an object\n"
@@ -10784,16 +8804,16 @@ msgstr ""
"soit en cliquant ou en faisant glisser la souris de gauche à droite ou\n"
"de droite à gauche."
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:151
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:151
msgid "Left-Right Selection Color"
msgstr "Couleur de sélection gauche-droite"
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:156
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:156
msgid "Set the line color for the 'left to right' selection box."
msgstr ""
"Définissez la couleur de ligne pour la zone de sélection \"gauche à droite\"."
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:172
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:172
msgid ""
"Set the fill color for the selection box\n"
"in case that the selection is done from left to right.\n"
@@ -10805,22 +8825,22 @@ msgstr ""
"Les 6 premiers chiffres correspondent à la couleur et les 2 derniers\n"
"les chiffres correspondent au niveau alpha (transparence)."
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:192
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:192
msgid "Set the fill transparency for the 'left to right' selection box."
msgstr ""
"Définissez la transparence de remplissage pour la zone de sélection \"gauche "
"à droite\"."
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:216
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:216
msgid "Right-Left Selection Color"
msgstr "Couleur de sélection droite-gauche"
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:222
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:222
msgid "Set the line color for the 'right to left' selection box."
msgstr ""
"Définissez la couleur de ligne pour la zone de sélection «droite à gauche»."
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:239
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:239
msgid ""
"Set the fill color for the selection box\n"
"in case that the selection is done from right to left.\n"
@@ -10832,46 +8852,46 @@ msgstr ""
"Les 6 premiers chiffres correspondent à la couleur et les 2 derniers\n"
"les chiffres correspondent au niveau alpha (transparence)."
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:259
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:259
msgid "Set the fill transparency for selection 'right to left' box."
msgstr ""
"Définissez la transparence de remplissage pour la zone de sélection \"Droite "
"à gauche\"."
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:286
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:286
msgid "Editor Color"
msgstr "Couleur de l'éditeur"
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:290
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:290
msgid "Drawing"
msgstr "Dessin"
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:292
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:292
msgid "Set the color for the shape."
msgstr "Définissez la couleur pour la forme."
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:309
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:309
msgid "Set the color of the shape when selected."
msgstr "Définit la couleur de la forme lorsqu'elle est sélectionnée."
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:332
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:332
msgid "Project Items Color"
msgstr "Éléments du projet Couleur"
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:336
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:336
msgid "Enabled"
msgstr "Activé"
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:338
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:338
msgid "Set the color of the items in Project Tab Tree."
msgstr ""
"Définissez la couleur des éléments dans l'arborescence de l'onglet Projet."
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:352
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:352
msgid "Disabled"
msgstr "Désactivé"
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:354
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:354
msgid ""
"Set the color of the items in Project Tab Tree,\n"
"for the case when the items are disabled."
@@ -10879,11 +8899,11 @@ msgstr ""
"Définir la couleur des éléments dans l'arborescence de l'onglet Projet,\n"
"pour le cas où les éléments sont désactivés."
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:370
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:370
msgid "Project AutoHide"
msgstr "Masquer auto le projet"
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:372
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:372
msgid ""
"Check this box if you want the project/selected/tool tab area to\n"
"hide automatically when there are no objects loaded and\n"
@@ -10894,11 +8914,11 @@ msgstr ""
"se cacher automatiquement quand il n'y a pas d'objets chargés et\n"
"pour montrer chaque fois qu'un nouvel objet est créé."
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:27
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:27
msgid "Geometry Adv. Options"
msgstr "Géométrie Adv. Les options"
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:35
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:35
msgid ""
"A list of Geometry advanced parameters.\n"
"Those parameters are available only for\n"
@@ -10908,14 +8928,14 @@ msgstr ""
"Ces paramètres ne sont disponibles que pour\n"
"App avancée. Niveau."
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:45
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:112
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:134
-#: flatcamTools/ToolCalibration.py:125 flatcamTools/ToolSolderPaste.py:240
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:45
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:112
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:134
+#: AppTools/ToolCalibration.py:125 AppTools/ToolSolderPaste.py:240
msgid "Toolchange X-Y"
msgstr "Changement d'outils X-Y"
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:56
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:56
msgid ""
"Height of the tool just after starting the work.\n"
"Delete the value if you don't need this feature."
@@ -10923,11 +8943,11 @@ msgstr ""
"Hauteur de l'outil juste après le début du travail.\n"
"Supprimez la valeur si vous n'avez pas besoin de cette fonctionnalité."
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:158
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:158
msgid "Segment X size"
msgstr "Taille du seg. X"
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:160
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:160
msgid ""
"The size of the trace segment on the X axis.\n"
"Useful for auto-leveling.\n"
@@ -10937,11 +8957,11 @@ msgstr ""
"Utile pour le nivellement automatique.\n"
"Une valeur de 0 signifie aucune segmentation sur l'axe X."
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:174
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:174
msgid "Segment Y size"
msgstr "Taille du seg. Y"
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:176
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:176
msgid ""
"The size of the trace segment on the Y axis.\n"
"Useful for auto-leveling.\n"
@@ -10951,26 +8971,44 @@ msgstr ""
"Utile pour le nivellement automatique.\n"
"Une valeur de 0 signifie aucune segmentation sur l'axe Y."
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:192
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:192
+#, fuzzy
+#| msgid "Area Selection"
msgid "Area Exclusion"
-msgstr "Exclusion de zone"
+msgstr "Sélection de zone"
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:194
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:194
+#, fuzzy
+#| msgid ""
+#| "A list of Excellon advanced parameters.\n"
+#| "Those parameters are available only for\n"
+#| "Advanced App. Level."
msgid ""
"Area exclusion parameters.\n"
"Those parameters are available only for\n"
"Advanced App. Level."
msgstr ""
-"Paramètres d'exclusion de zone.\n"
-"Ces paramètres sont disponibles uniquement pour\n"
-"Application avancée. Niveau."
+"Une liste des paramètres avancés d’Excellon.\n"
+"Ces paramètres ne sont disponibles que pour\n"
+"App avancée. Niveau."
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:33
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:201
+msgid "Exclusion areas"
+msgstr ""
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:212
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:322
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:286
+#: AppTools/ToolNCC.py:578 AppTools/ToolPaint.py:521
+msgid "Shape"
+msgstr "Forme"
+
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:33
msgid "A list of Geometry Editor parameters."
msgstr "Une liste de paramètres de L'éditeur de Géométrie."
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:43
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:196
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:43
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:196
msgid ""
"Set the number of selected geometry\n"
"items above which the utility geometry\n"
@@ -10984,11 +9022,11 @@ msgstr ""
"Augmente les performances lors du déplacement d'un\n"
"grand nombre d'éléments géométriques."
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:27
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:27
msgid "Geometry General"
msgstr "Géométrie Général"
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:49
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:49
msgid ""
"The number of circle steps for Geometry \n"
"circle and arc shapes linear approximation."
@@ -10996,18 +9034,18 @@ msgstr ""
"Nombre d'étapes de cercle pour Géométrie\n"
"approximation linéaire des formes de cercle et d'arc."
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:63
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:41
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:48
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:42
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:63
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:41
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:48
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:42
msgid "Tools Dia"
-msgstr "Dia. de l'outils"
+msgstr "Diam. de l'outils"
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:65
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:108
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:43
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:50
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:44
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:65
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:108
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:43
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:50
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:44
msgid ""
"Diameters of the tools, separated by comma.\n"
"The value of the diameter has to use the dot decimals separator.\n"
@@ -11017,15 +9055,15 @@ msgstr ""
"La valeur du diamètre doit utiliser le séparateur de décimales de points.\n"
"Valeurs valides: 0,3, 1,0"
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:80
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:80
msgid "Geometry Object Color"
msgstr "Couleur de l'objet Géométrie"
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:28
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:28
msgid "Geometry Options"
msgstr "Options de Géométrie"
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:36
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:36
msgid ""
"Create a CNC Job object\n"
"tracing the contours of this\n"
@@ -11035,11 +9073,11 @@ msgstr ""
"traçant les contours de cette\n"
"Objet de géométrie."
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:80
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:80
msgid "Depth/Pass"
msgstr "Profondeur/Pass"
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:82
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:82
msgid ""
"The depth to cut on each pass,\n"
"when multidepth is enabled.\n"
@@ -11053,11 +9091,11 @@ msgstr ""
"c'est une fraction de la profondeur\n"
"qui a une valeur négative."
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:27
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:27
msgid "Gerber Adv. Options"
msgstr "Options avancées Gerber"
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:33
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:33
msgid ""
"A list of Gerber advanced parameters.\n"
"Those parameters are available only for\n"
@@ -11067,11 +9105,11 @@ msgstr ""
"Ces paramètres ne sont disponibles que pour\n"
"App avancée. Niveau."
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:52
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:52
msgid "Table Show/Hide"
msgstr "Tableau Afficher/Masquer"
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:54
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:54
msgid ""
"Toggle the display of the Gerber Apertures Table.\n"
"Also, on hide, it will delete all mark shapes\n"
@@ -11081,15 +9119,25 @@ msgstr ""
"En outre, sur cacher, il va supprimer toutes les formes de marque\n"
"qui sont dessinés sur une toile."
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:134
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:134
msgid "Exterior"
msgstr "Extérieur"
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:135
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:135
msgid "Interior"
msgstr "Intérieur"
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:148
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:146
+#: AppObjects/FlatCAMGerber.py:497 AppTools/ToolCopperThieving.py:1022
+#: AppTools/ToolCopperThieving.py:1211 AppTools/ToolCopperThieving.py:1223
+#: AppTools/ToolNCC.py:2059 AppTools/ToolNCC.py:2170 AppTools/ToolNCC.py:2185
+#: AppTools/ToolNCC.py:3149 AppTools/ToolNCC.py:3254 AppTools/ToolNCC.py:3269
+#: AppTools/ToolNCC.py:3535 AppTools/ToolNCC.py:3636 AppTools/ToolNCC.py:3651
+#: camlib.py:982
+msgid "Buffering"
+msgstr "Mise en mémoire tampon"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:148
msgid ""
"Buffering type:\n"
"- None --> best performance, fast file loading but no so good display\n"
@@ -11103,20 +9151,20 @@ msgstr ""
"par défaut.\n"
"<< AVERTISSEMENT >>: Ne changez cela que si vous savez ce que vous faites !!!"
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:153
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:207
-#: flatcamTools/ToolFiducials.py:201 flatcamTools/ToolFilm.py:255
-#: flatcamTools/ToolProperties.py:452 flatcamTools/ToolProperties.py:455
-#: flatcamTools/ToolProperties.py:458 flatcamTools/ToolProperties.py:483
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:153
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:207
+#: AppTools/ToolFiducials.py:201 AppTools/ToolFilm.py:238
+#: AppTools/ToolProperties.py:452 AppTools/ToolProperties.py:455
+#: AppTools/ToolProperties.py:458 AppTools/ToolProperties.py:483
msgid "None"
msgstr "Aucun"
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:159
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:159
msgid "Simplify"
msgstr "Simplifier"
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:161
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:161
msgid ""
"When checked all the Gerber polygons will be\n"
"loaded with simplification having a set tolerance.\n"
@@ -11126,19 +9174,19 @@ msgstr ""
"chargé de simplification ayant une tolérance définie.\n"
"<< AVERTISSEMENT >>: Ne changez cela que si vous savez ce que vous faites !!!"
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:168
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:168
msgid "Tolerance"
msgstr "Tolérance"
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:169
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:169
msgid "Tolerance for polygon simplification."
msgstr "Tolérance pour la simplification des polygones."
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:33
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:33
msgid "A list of Gerber Editor parameters."
msgstr "Une liste de paramètres de l'éditeur Gerber."
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:43
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:43
msgid ""
"Set the number of selected Gerber geometry\n"
"items above which the utility geometry\n"
@@ -11152,23 +9200,23 @@ msgstr ""
"Augmente les performances lors du déplacement d'un\n"
"grand nombre d'éléments géométriques."
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:56
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:56
msgid "New Aperture code"
msgstr "Nouveau code d'ouverture"
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:69
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:69
msgid "New Aperture size"
msgstr "Nouvelle taille d'ouverture"
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:71
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:71
msgid "Size for the new aperture"
msgstr "Taille pour la nouvelle ouverture"
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:82
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:82
msgid "New Aperture type"
msgstr "Nouveau type d'ouverture"
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:84
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:84
msgid ""
"Type for the new aperture.\n"
"Can be 'C', 'R' or 'O'."
@@ -11176,51 +9224,51 @@ msgstr ""
"Tapez pour la nouvelle ouverture.\n"
"Peut être 'C', 'R' ou 'O'."
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:106
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:106
msgid "Aperture Dimensions"
msgstr "Dimensions d'ouverture"
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:116
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:116
msgid "Linear Pad Array"
msgstr "Tableau de Pad Linéaire"
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:160
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:160
msgid "Circular Pad Array"
msgstr "Tableau de Pad Circulaire"
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:196
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:196
msgid "Distance at which to buffer the Gerber element."
msgstr "Distance à laquelle tamponner l'élément de Gerber."
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:205
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:205
msgid "Scale Tool"
msgstr "Outil d'échelle"
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:211
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:211
msgid "Factor to scale the Gerber element."
msgstr "Facteur d'échelle de l'élément de Gerber."
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:224
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:224
msgid "Threshold low"
msgstr "Seuil bas"
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:226
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:226
msgid "Threshold value under which the apertures are not marked."
msgstr "Valeur seuil sous laquelle les ouvertures ne sont pas marquées."
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:236
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:236
msgid "Threshold high"
msgstr "Seuil haut"
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:238
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:238
msgid "Threshold value over which the apertures are not marked."
msgstr "Valeur seuil sur laquelle les ouvertures ne sont pas marquées."
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:27
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:27
msgid "Gerber Export"
msgstr "Gerber exportation"
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:33
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:33
msgid ""
"The parameters set here are used in the file exported\n"
"when using the File -> Export -> Export Gerber menu entry."
@@ -11229,14 +9277,14 @@ msgstr ""
"lors de l'utilisation de l'entrée de menu Fichier -> Exporter -> Exporter "
"Gerber."
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:44
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:50
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:84
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:90
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:44
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:50
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:84
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:90
msgid "The units used in the Gerber file."
msgstr "Les unités utilisées dans le fichier Gerber."
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:58
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:58
msgid ""
"The number of digits in the whole part of the number\n"
"and in the fractional part of the number."
@@ -11244,7 +9292,7 @@ msgstr ""
"Le nombre de chiffres dans la partie entière du numéro\n"
"et dans la fraction du nombre."
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:71
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:71
msgid ""
"This numbers signify the number of digits in\n"
"the whole part of Gerber coordinates."
@@ -11252,7 +9300,7 @@ msgstr ""
"Ces chiffres représentent le nombre de chiffres en\n"
"toute la partie des coordonnées de Gerber."
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:87
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:87
msgid ""
"This numbers signify the number of digits in\n"
"the decimal part of Gerber coordinates."
@@ -11260,10 +9308,10 @@ msgstr ""
"Ces chiffres représentent le nombre de chiffres en\n"
"la partie décimale des coordonnées de Gerber."
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:99
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:109
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:100
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:110
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:99
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:109
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:100
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:110
msgid ""
"This sets the type of Gerber zeros.\n"
"If LZ then Leading Zeros are removed and\n"
@@ -11277,15 +9325,15 @@ msgstr ""
"Si TZ est coché, les zéros de fin sont supprimés\n"
"et les principaux zéros sont conservés."
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:27
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:27
msgid "Gerber General"
msgstr "Gerber Général"
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:45
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:45
msgid "M-Color"
msgstr "Couleur-M"
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:61
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:61
msgid ""
"The number of circle steps for Gerber \n"
"circular aperture linear approximation."
@@ -11293,11 +9341,11 @@ msgstr ""
"Le nombre d'étapes du cercle pour Gerber\n"
"approximation linéaire ouverture circulaire."
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:73
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:73
msgid "Default Values"
msgstr "Défauts"
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:75
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:75
msgid ""
"Those values will be used as fallback values\n"
"in case that they are not found in the Gerber file."
@@ -11305,11 +9353,11 @@ msgstr ""
"Ces valeurs seront utilisées comme valeurs de secours\n"
"au cas où ils ne seraient pas trouvés dans le fichier Gerber."
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:126
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:126
msgid "Clean Apertures"
msgstr "Ouvertures propres"
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:128
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:128
msgid ""
"Will remove apertures that do not have geometry\n"
"thus lowering the number of apertures in the Gerber object."
@@ -11317,11 +9365,11 @@ msgstr ""
"Supprime les ouvertures qui n'ont pas de géométrie\n"
"abaissant ainsi le nombre d'ouvertures dans l'objet Gerber."
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:134
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:134
msgid "Polarity change buffer"
msgstr "Tampon de changement de polarité"
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:136
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:136
msgid ""
"Will apply extra buffering for the\n"
"solid geometry when we have polarity changes.\n"
@@ -11333,23 +9381,23 @@ msgstr ""
"Peut aider à charger des fichiers Gerber qui autrement\n"
"ne se charge pas correctement."
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:149
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:149
msgid "Gerber Object Color"
msgstr "Couleur d'objet Gerber"
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:29
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:29
msgid "Gerber Options"
msgstr "Options de Gerber"
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:107
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:107
msgid "Combine Passes"
msgstr "Combiner les passes"
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:27
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:27
msgid "Copper Thieving Tool Options"
msgstr "Options d'outils de Copper Thieving"
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:39
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:39
msgid ""
"A tool to generate a Copper Thieving that can be added\n"
"to a selected Gerber file."
@@ -11357,17 +9405,17 @@ msgstr ""
"Un outil pour générer un Copper Thieving qui peut être ajouté\n"
"dans un fichier Gerber sélectionné."
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:47
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:47
msgid "Number of steps (lines) used to interpolate circles."
msgstr "Nombre d'étapes (lignes) utilisées pour interpoler les cercles."
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261
-#: flatcamTools/ToolCopperThieving.py:96 flatcamTools/ToolCopperThieving.py:431
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261
+#: AppTools/ToolCopperThieving.py:96 AppTools/ToolCopperThieving.py:431
msgid "Clearance"
msgstr "Dégagement"
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:59
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:59
msgid ""
"This set the distance between the copper Thieving components\n"
"(the polygon fill may be split in multiple polygons)\n"
@@ -11377,36 +9425,43 @@ msgstr ""
"(le remplissage du polygone peut être divisé en plusieurs polygones)\n"
"et les traces de cuivre dans le fichier Gerber."
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
-#: flatcamTools/ToolCopperThieving.py:126 flatcamTools/ToolNCC.py:535
-#: flatcamTools/ToolNCC.py:1316 flatcamTools/ToolNCC.py:1647
-#: flatcamTools/ToolNCC.py:1935 flatcamTools/ToolNCC.py:1990
-#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:946
-#: flatcamTools/ToolPaint.py:1452
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
+#: AppTools/ToolCopperThieving.py:125 AppTools/ToolNCC.py:535
+#: AppTools/ToolNCC.py:1306 AppTools/ToolNCC.py:1635 AppTools/ToolNCC.py:1928
+#: AppTools/ToolNCC.py:1992 AppTools/ToolNCC.py:3013 AppTools/ToolNCC.py:3022
+#: defaults.py:406 tclCommands/TclCommandCopperClear.py:190
+msgid "Itself"
+msgstr "Lui-même"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
+#: AppTools/ToolCopperThieving.py:126 AppTools/ToolNCC.py:535
+#: AppTools/ToolNCC.py:1316 AppTools/ToolNCC.py:1648 AppTools/ToolNCC.py:1944
+#: AppTools/ToolNCC.py:1999 AppTools/ToolPaint.py:485 AppTools/ToolPaint.py:945
+#: AppTools/ToolPaint.py:1451
msgid "Area Selection"
msgstr "Sélection de zone"
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
-#: flatcamTools/ToolCopperThieving.py:127 flatcamTools/ToolDblSided.py:216
-#: flatcamTools/ToolNCC.py:535 flatcamTools/ToolNCC.py:1663
-#: flatcamTools/ToolNCC.py:1941 flatcamTools/ToolNCC.py:1998
-#: flatcamTools/ToolNCC.py:2306 flatcamTools/ToolNCC.py:2586
-#: flatcamTools/ToolNCC.py:3012 flatcamTools/ToolPaint.py:486
-#: flatcamTools/ToolPaint.py:931 flatcamTools/ToolPaint.py:1468
-#: tclCommands/TclCommandCopperClear.py:192 tclCommands/TclCommandPaint.py:166
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
+#: AppTools/ToolCopperThieving.py:127 AppTools/ToolDblSided.py:216
+#: AppTools/ToolNCC.py:535 AppTools/ToolNCC.py:1664 AppTools/ToolNCC.py:1950
+#: AppTools/ToolNCC.py:2007 AppTools/ToolNCC.py:2383 AppTools/ToolNCC.py:2631
+#: AppTools/ToolNCC.py:3058 AppTools/ToolPaint.py:485 AppTools/ToolPaint.py:930
+#: AppTools/ToolPaint.py:1467 tclCommands/TclCommandCopperClear.py:192
+#: tclCommands/TclCommandPaint.py:166
msgid "Reference Object"
msgstr "Objet de référence"
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90
-#: flatcamTools/ToolCopperThieving.py:129
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90
+#: AppTools/ToolCopperThieving.py:129
msgid "Reference:"
msgstr "Référence:"
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92
msgid ""
"- 'Itself' - the copper Thieving extent is based on the object extent.\n"
"- 'Area Selection' - left mouse click to start selection of the area to be "
@@ -11421,29 +9476,29 @@ msgstr ""
"- «Objet de référence» - effectuera un vol de cuivre dans la zone spécifiée "
"par un autre objet."
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:76
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190
-#: flatcamTools/ToolCopperThieving.py:171 flatcamTools/ToolExtractDrills.py:102
-#: flatcamTools/ToolExtractDrills.py:240 flatcamTools/ToolPunchGerber.py:113
-#: flatcamTools/ToolPunchGerber.py:268
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:76
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190
+#: AppTools/ToolCopperThieving.py:171 AppTools/ToolExtractDrills.py:102
+#: AppTools/ToolExtractDrills.py:240 AppTools/ToolPunchGerber.py:113
+#: AppTools/ToolPunchGerber.py:268
msgid "Rectangular"
msgstr "Rectangulaire"
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102
-#: flatcamTools/ToolCopperThieving.py:172
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102
+#: AppTools/ToolCopperThieving.py:172
msgid "Minimal"
msgstr "Minimal"
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104
-#: flatcamTools/ToolCopperThieving.py:174 flatcamTools/ToolFilm.py:113
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104
+#: AppTools/ToolCopperThieving.py:174 AppTools/ToolFilm.py:94
msgid "Box Type:"
msgstr "Type de Box:"
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106
-#: flatcamTools/ToolCopperThieving.py:176
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106
+#: AppTools/ToolCopperThieving.py:176
msgid ""
"- 'Rectangular' - the bounding box will be of rectangular shape.\n"
"- 'Minimal' - the bounding box will be the convex hull shape."
@@ -11451,28 +9506,28 @@ msgstr ""
"- 'Rectangulaire' - le cadre de délimitation sera de forme rectangulaire.\n"
"- 'Minimal' - le cadre de délimitation aura la forme d'une coque convexe."
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120
-#: flatcamTools/ToolCopperThieving.py:192
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120
+#: AppTools/ToolCopperThieving.py:192
msgid "Dots Grid"
msgstr "Grille de points"
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121
-#: flatcamTools/ToolCopperThieving.py:193
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121
+#: AppTools/ToolCopperThieving.py:193
msgid "Squares Grid"
msgstr "Grille de carrés"
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122
-#: flatcamTools/ToolCopperThieving.py:194
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122
+#: AppTools/ToolCopperThieving.py:194
msgid "Lines Grid"
msgstr "Grille de lignes"
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124
-#: flatcamTools/ToolCopperThieving.py:196
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124
+#: AppTools/ToolCopperThieving.py:196
msgid "Fill Type:"
msgstr "Type de remplissage:"
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126
-#: flatcamTools/ToolCopperThieving.py:198
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126
+#: AppTools/ToolCopperThieving.py:198
msgid ""
"- 'Solid' - copper thieving will be a solid polygon.\n"
"- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n"
@@ -11484,67 +9539,66 @@ msgstr ""
"- 'Grille de carrés' - la zone vide sera remplie d'un motif de carrés.\n"
"- 'Grille de lignes' - la zone vide sera remplie d'un motif de lignes."
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134
-#: flatcamTools/ToolCopperThieving.py:217
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134
+#: AppTools/ToolCopperThieving.py:217
msgid "Dots Grid Parameters"
msgstr "Paramètres de la grille de points"
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140
-#: flatcamTools/ToolCopperThieving.py:223
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140
+#: AppTools/ToolCopperThieving.py:223
msgid "Dot diameter in Dots Grid."
msgstr "Diamètre des points dans la grille des points."
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209
-#: flatcamTools/ToolCopperThieving.py:234
-#: flatcamTools/ToolCopperThieving.py:274
-#: flatcamTools/ToolCopperThieving.py:314
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209
+#: AppTools/ToolCopperThieving.py:234 AppTools/ToolCopperThieving.py:274
+#: AppTools/ToolCopperThieving.py:314
msgid "Spacing"
msgstr "Espacement"
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153
-#: flatcamTools/ToolCopperThieving.py:236
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153
+#: AppTools/ToolCopperThieving.py:236
msgid "Distance between each two dots in Dots Grid."
msgstr "Distance entre deux points dans la grille de points."
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163
-#: flatcamTools/ToolCopperThieving.py:257
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163
+#: AppTools/ToolCopperThieving.py:257
msgid "Squares Grid Parameters"
msgstr "Paramètres de la grille des carrés"
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169
-#: flatcamTools/ToolCopperThieving.py:263
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169
+#: AppTools/ToolCopperThieving.py:263
msgid "Square side size in Squares Grid."
msgstr "Taille du côté carré dans la grille des carrés."
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182
-#: flatcamTools/ToolCopperThieving.py:276
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182
+#: AppTools/ToolCopperThieving.py:276
msgid "Distance between each two squares in Squares Grid."
msgstr "Distance entre deux carrés dans la grille des carrés."
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192
-#: flatcamTools/ToolCopperThieving.py:297
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192
+#: AppTools/ToolCopperThieving.py:297
msgid "Lines Grid Parameters"
msgstr "Paramètres de grille de lignes"
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198
-#: flatcamTools/ToolCopperThieving.py:303
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198
+#: AppTools/ToolCopperThieving.py:303
msgid "Line thickness size in Lines Grid."
msgstr "Taille d'épaisseur de ligne dans la grille de lignes."
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211
-#: flatcamTools/ToolCopperThieving.py:316
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211
+#: AppTools/ToolCopperThieving.py:316
msgid "Distance between each two lines in Lines Grid."
msgstr "Distance entre deux lignes dans la grille de lignes."
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221
-#: flatcamTools/ToolCopperThieving.py:354
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221
+#: AppTools/ToolCopperThieving.py:354
msgid "Robber Bar Parameters"
msgstr "Paramètres de la Robber Bar"
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223
-#: flatcamTools/ToolCopperThieving.py:356
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223
+#: AppTools/ToolCopperThieving.py:356
msgid ""
"Parameters used for the robber bar.\n"
"Robber bar = copper border to help in pattern hole plating."
@@ -11552,33 +9606,35 @@ msgstr ""
"Paramètres utilisés pour la Robber Bar.\n"
"Robber Bar = bordure en cuivre pour faciliter le placage des trous."
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231
-#: flatcamTools/ToolCopperThieving.py:364
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231
+#: AppTools/ToolCopperThieving.py:364
msgid "Bounding box margin for robber bar."
msgstr "Marge de la zone de délimitation pour la Robber Bar."
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242
-#: flatcamTools/ToolCopperThieving.py:375
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:42
+#: AppTools/ToolCopperThieving.py:375 AppTools/ToolCorners.py:113
+#: AppTools/ToolEtchCompensation.py:96
msgid "Thickness"
msgstr "Épaisseur"
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244
-#: flatcamTools/ToolCopperThieving.py:377
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244
+#: AppTools/ToolCopperThieving.py:377
msgid "The robber bar thickness."
msgstr "L'épaisseur de la Robber Bar."
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254
-#: flatcamTools/ToolCopperThieving.py:408
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254
+#: AppTools/ToolCopperThieving.py:408
msgid "Pattern Plating Mask"
msgstr "Masque de placage de motifs"
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256
-#: flatcamTools/ToolCopperThieving.py:410
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256
+#: AppTools/ToolCopperThieving.py:410
msgid "Generate a mask for pattern plating."
msgstr "Générez un masque pour le placage de motifs."
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263
-#: flatcamTools/ToolCopperThieving.py:433
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263
+#: AppTools/ToolCopperThieving.py:433
msgid ""
"The distance between the possible copper thieving elements\n"
"and/or robber bar and the actual openings in the mask."
@@ -11586,25 +9642,27 @@ msgstr ""
"La distance entre les éléments de Copper Thieving possibles\n"
"et / ou Robber Bar et les ouvertures réelles dans le masque."
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:27
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:27
msgid "Calibration Tool Options"
msgstr "Options de l'outil d'Étalonnage"
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:38
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:38
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38
-#: flatcamTools/ToolCopperThieving.py:91 flatcamTools/ToolFiducials.py:151
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:38
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:38
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:37
+#: AppTools/ToolCopperThieving.py:91 AppTools/ToolCorners.py:108
+#: AppTools/ToolFiducials.py:151
msgid "Parameters used for this tool."
msgstr "Paramètres utilisés pour cet outil."
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:43
-#: flatcamTools/ToolCalibration.py:181
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:43
+#: AppTools/ToolCalibration.py:181
msgid "Source Type"
msgstr "Type de Source"
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:44
-#: flatcamTools/ToolCalibration.py:182
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:44
+#: AppTools/ToolCalibration.py:182
msgid ""
"The source of calibration points.\n"
"It can be:\n"
@@ -11617,33 +9675,33 @@ msgstr ""
"- Libre -> cliquez librement sur le canevas pour acquérir les points "
"d'étalonnage"
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:49
-#: flatcamTools/ToolCalibration.py:187
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:49
+#: AppTools/ToolCalibration.py:187
msgid "Free"
msgstr "Libre"
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:63
-#: flatcamTools/ToolCalibration.py:76
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:63
+#: AppTools/ToolCalibration.py:76
msgid "Height (Z) for travelling between the points."
msgstr "Hauteur (Z) pour voyager entre les points."
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:75
-#: flatcamTools/ToolCalibration.py:88
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:75
+#: AppTools/ToolCalibration.py:88
msgid "Verification Z"
msgstr "Vérification Z"
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:77
-#: flatcamTools/ToolCalibration.py:90
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:77
+#: AppTools/ToolCalibration.py:90
msgid "Height (Z) for checking the point."
msgstr "Hauteur (Z) pour vérifier le point."
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:89
-#: flatcamTools/ToolCalibration.py:102
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:89
+#: AppTools/ToolCalibration.py:102
msgid "Zero Z tool"
msgstr "Remise à Zéro du Z pour l'Outil"
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:91
-#: flatcamTools/ToolCalibration.py:104
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:91
+#: AppTools/ToolCalibration.py:104
msgid ""
"Include a sequence to zero the height (Z)\n"
"of the verification tool."
@@ -11651,13 +9709,13 @@ msgstr ""
"Inclure une séquence pour mettre à zéro la hauteur (Z)\n"
"de l'outil de vérification."
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:100
-#: flatcamTools/ToolCalibration.py:113
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:100
+#: AppTools/ToolCalibration.py:113
msgid "Height (Z) for mounting the verification probe."
msgstr "Hauteur (Z) pour le montage de la sonde de vérification."
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:114
-#: flatcamTools/ToolCalibration.py:127
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:114
+#: AppTools/ToolCalibration.py:127
msgid ""
"Toolchange X,Y position.\n"
"If no value is entered then the current\n"
@@ -11667,13 +9725,13 @@ msgstr ""
"Si aucune valeur n'est entrée, le courant\n"
"(x, y) le point sera utilisé,"
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:125
-#: flatcamTools/ToolCalibration.py:153
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:125
+#: AppTools/ToolCalibration.py:153
msgid "Second point"
msgstr "Deuxième point"
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:127
-#: flatcamTools/ToolCalibration.py:155
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:127
+#: AppTools/ToolCalibration.py:155
msgid ""
"Second point in the Gcode verification can be:\n"
"- top-left -> the user will align the PCB vertically\n"
@@ -11683,19 +9741,29 @@ msgstr ""
"- en haut à gauche -> l'utilisateur alignera le PCB verticalement\n"
"- en bas à droite -> l'utilisateur alignera le PCB horizontalement"
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:27
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:131
+#: AppTools/ToolCalibration.py:159 App_Main.py:4684
+msgid "Top-Left"
+msgstr "En haut à gauche"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:132
+#: AppTools/ToolCalibration.py:160 App_Main.py:4685
+msgid "Bottom-Right"
+msgstr "En bas à droite"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:27
msgid "Extract Drills Options"
msgstr "Options d'Extraction de Forets"
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42
-#: flatcamTools/ToolExtractDrills.py:68 flatcamTools/ToolPunchGerber.py:75
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42
+#: AppTools/ToolExtractDrills.py:68 AppTools/ToolPunchGerber.py:75
msgid "Processed Pads Type"
msgstr "Type de tampons traités"
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44
-#: flatcamTools/ToolExtractDrills.py:70 flatcamTools/ToolPunchGerber.py:77
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44
+#: AppTools/ToolExtractDrills.py:70 AppTools/ToolPunchGerber.py:77
msgid ""
"The type of pads shape to be processed.\n"
"If the PCB has many SMD pads with rectangular pads,\n"
@@ -11705,81 +9773,81 @@ msgstr ""
"Si le PCB a de nombreux pads SMD avec des pads rectangulaires,\n"
"désactiver l'ouverture rectangulaire."
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54
-#: flatcamTools/ToolExtractDrills.py:80 flatcamTools/ToolPunchGerber.py:91
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54
+#: AppTools/ToolExtractDrills.py:80 AppTools/ToolPunchGerber.py:91
msgid "Process Circular Pads."
msgstr "Processus tampons circulaires."
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:60
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164
-#: flatcamTools/ToolExtractDrills.py:86 flatcamTools/ToolExtractDrills.py:214
-#: flatcamTools/ToolPunchGerber.py:97 flatcamTools/ToolPunchGerber.py:242
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:60
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164
+#: AppTools/ToolExtractDrills.py:86 AppTools/ToolExtractDrills.py:214
+#: AppTools/ToolPunchGerber.py:97 AppTools/ToolPunchGerber.py:242
msgid "Oblong"
msgstr "Oblong"
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62
-#: flatcamTools/ToolExtractDrills.py:88 flatcamTools/ToolPunchGerber.py:99
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62
+#: AppTools/ToolExtractDrills.py:88 AppTools/ToolPunchGerber.py:99
msgid "Process Oblong Pads."
msgstr "Processus Tampons oblongs."
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70
-#: flatcamTools/ToolExtractDrills.py:96 flatcamTools/ToolPunchGerber.py:107
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70
+#: AppTools/ToolExtractDrills.py:96 AppTools/ToolPunchGerber.py:107
msgid "Process Square Pads."
msgstr "Processus Tampons carrés."
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78
-#: flatcamTools/ToolExtractDrills.py:104 flatcamTools/ToolPunchGerber.py:115
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78
+#: AppTools/ToolExtractDrills.py:104 AppTools/ToolPunchGerber.py:115
msgid "Process Rectangular Pads."
msgstr "Processus Tampons rectangulaires."
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:84
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203
-#: flatcamTools/ToolExtractDrills.py:110 flatcamTools/ToolExtractDrills.py:253
-#: flatcamTools/ToolProperties.py:172 flatcamTools/ToolPunchGerber.py:121
-#: flatcamTools/ToolPunchGerber.py:281
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:84
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203
+#: AppTools/ToolExtractDrills.py:110 AppTools/ToolExtractDrills.py:253
+#: AppTools/ToolProperties.py:172 AppTools/ToolPunchGerber.py:121
+#: AppTools/ToolPunchGerber.py:281
msgid "Others"
msgstr "Autres"
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86
-#: flatcamTools/ToolExtractDrills.py:112 flatcamTools/ToolPunchGerber.py:123
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86
+#: AppTools/ToolExtractDrills.py:112 AppTools/ToolPunchGerber.py:123
msgid "Process pads not in the categories above."
msgstr "Processus tampons n'appartenant pas aux catégories ci-dessus."
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:99
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125
-#: flatcamTools/ToolExtractDrills.py:139 flatcamTools/ToolExtractDrills.py:156
-#: flatcamTools/ToolPunchGerber.py:150 flatcamTools/ToolPunchGerber.py:184
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:99
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125
+#: AppTools/ToolExtractDrills.py:139 AppTools/ToolExtractDrills.py:156
+#: AppTools/ToolPunchGerber.py:150 AppTools/ToolPunchGerber.py:184
msgid "Fixed Diameter"
msgstr "Diamètre fixe"
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:100
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142
-#: flatcamTools/ToolExtractDrills.py:140 flatcamTools/ToolExtractDrills.py:192
-#: flatcamTools/ToolPunchGerber.py:151 flatcamTools/ToolPunchGerber.py:214
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:100
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142
+#: AppTools/ToolExtractDrills.py:140 AppTools/ToolExtractDrills.py:192
+#: AppTools/ToolPunchGerber.py:151 AppTools/ToolPunchGerber.py:214
msgid "Fixed Annular Ring"
msgstr "Anneau fixe annulaire"
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102
-#: flatcamTools/ToolExtractDrills.py:141 flatcamTools/ToolPunchGerber.py:152
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102
+#: AppTools/ToolExtractDrills.py:141 AppTools/ToolPunchGerber.py:152
msgid "Proportional"
msgstr "Proportionnel"
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107
-#: flatcamTools/ToolExtractDrills.py:130
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107
+#: AppTools/ToolExtractDrills.py:130
msgid ""
"The method for processing pads. Can be:\n"
"- Fixed Diameter -> all holes will have a set size\n"
@@ -11792,15 +9860,24 @@ msgstr ""
"- Proportionnel -> chaque taille de trou sera une fraction de la taille du "
"tampon"
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135
-#: flatcamTools/ToolExtractDrills.py:166 flatcamTools/ToolPunchGerber.py:194
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:220
+#: AppTools/ToolExtractDrills.py:164 AppTools/ToolExtractDrills.py:285
+#: AppTools/ToolPunchGerber.py:192 AppTools/ToolPunchGerber.py:308
+#: AppTools/ToolTransform.py:357 App_Main.py:9602
+msgid "Value"
+msgstr "Valeur"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135
+#: AppTools/ToolExtractDrills.py:166 AppTools/ToolPunchGerber.py:194
msgid "Fixed hole diameter."
msgstr "Diamètre du trou fixe."
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:142
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144
-#: flatcamTools/ToolExtractDrills.py:194 flatcamTools/ToolPunchGerber.py:216
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:142
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144
+#: AppTools/ToolExtractDrills.py:194 AppTools/ToolPunchGerber.py:216
msgid ""
"The size of annular ring.\n"
"The copper sliver between the hole exterior\n"
@@ -11810,50 +9887,50 @@ msgstr ""
"Le ruban de cuivre entre l'extérieur du trou\n"
"et la marge du tampon de cuivre."
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153
-#: flatcamTools/ToolExtractDrills.py:203 flatcamTools/ToolPunchGerber.py:231
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153
+#: AppTools/ToolExtractDrills.py:203 AppTools/ToolPunchGerber.py:231
msgid "The size of annular ring for circular pads."
msgstr "La taille de l'anneau annulaire pour les coussinets circulaires."
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:164
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:166
-#: flatcamTools/ToolExtractDrills.py:216 flatcamTools/ToolPunchGerber.py:244
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:164
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:166
+#: AppTools/ToolExtractDrills.py:216 AppTools/ToolPunchGerber.py:244
msgid "The size of annular ring for oblong pads."
msgstr "La taille de l'anneau annulaire pour les coussinets oblongs."
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:177
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:179
-#: flatcamTools/ToolExtractDrills.py:229 flatcamTools/ToolPunchGerber.py:257
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:177
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:179
+#: AppTools/ToolExtractDrills.py:229 AppTools/ToolPunchGerber.py:257
msgid "The size of annular ring for square pads."
msgstr "La taille de l'anneau annulaire pour les coussinets carrés."
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:190
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:192
-#: flatcamTools/ToolExtractDrills.py:242 flatcamTools/ToolPunchGerber.py:270
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:190
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:192
+#: AppTools/ToolExtractDrills.py:242 AppTools/ToolPunchGerber.py:270
msgid "The size of annular ring for rectangular pads."
msgstr "La taille de l'anneau annulaire pour les coussinets rectangulaires."
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:203
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:205
-#: flatcamTools/ToolExtractDrills.py:255 flatcamTools/ToolPunchGerber.py:283
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:203
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:205
+#: AppTools/ToolExtractDrills.py:255 AppTools/ToolPunchGerber.py:283
msgid "The size of annular ring for other pads."
msgstr "La taille de l'anneau annulaire pour les autres tampons."
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:213
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:215
-#: flatcamTools/ToolExtractDrills.py:276 flatcamTools/ToolPunchGerber.py:299
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:213
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:215
+#: AppTools/ToolExtractDrills.py:276 AppTools/ToolPunchGerber.py:299
msgid "Proportional Diameter"
-msgstr "Dia. proportionnel"
+msgstr "Diam. proportionnel"
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:222
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:224
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:222
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:224
msgid "Factor"
msgstr "Facteur"
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226
-#: flatcamTools/ToolExtractDrills.py:287 flatcamTools/ToolPunchGerber.py:310
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226
+#: AppTools/ToolExtractDrills.py:287 AppTools/ToolPunchGerber.py:310
msgid ""
"Proportional Diameter.\n"
"The hole diameter will be a fraction of the pad size."
@@ -11861,12 +9938,12 @@ msgstr ""
"Diamètre proportionnel.\n"
"Le diamètre du trou sera une fraction de la taille du tampon."
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:27
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:27
msgid "Fiducials Tool Options"
msgstr "Options de l'outil Fiducials"
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45
-#: flatcamTools/ToolFiducials.py:158
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45
+#: AppTools/ToolFiducials.py:158
msgid ""
"This set the fiducial diameter if fiducial type is circular,\n"
"otherwise is the size of the fiducial.\n"
@@ -11876,22 +9953,22 @@ msgstr ""
"sinon, c'est la taille du fiduciaire.\n"
"L'ouverture du masque de soldat est double."
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73
-#: flatcamTools/ToolFiducials.py:186
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73
+#: AppTools/ToolFiducials.py:186
msgid "Auto"
msgstr "Auto"
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74
-#: flatcamTools/ToolFiducials.py:187
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74
+#: AppTools/ToolFiducials.py:187
msgid "Manual"
msgstr "Manuel"
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76
-#: flatcamTools/ToolFiducials.py:189
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76
+#: AppTools/ToolFiducials.py:189
msgid "Mode:"
msgstr "Mode:"
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:78
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:78
msgid ""
"- 'Auto' - automatic placement of fiducials in the corners of the bounding "
"box.\n"
@@ -11901,23 +9978,23 @@ msgstr ""
"sélection.\n"
"- «Manuel» - placement manuel des fiduciaires."
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86
-#: flatcamTools/ToolFiducials.py:199
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86
+#: AppTools/ToolFiducials.py:199
msgid "Up"
msgstr "Haut"
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87
-#: flatcamTools/ToolFiducials.py:200
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87
+#: AppTools/ToolFiducials.py:200
msgid "Down"
msgstr "Bas"
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90
-#: flatcamTools/ToolFiducials.py:203
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90
+#: AppTools/ToolFiducials.py:203
msgid "Second fiducial"
msgstr "Deuxième fiducial"
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92
-#: flatcamTools/ToolFiducials.py:205
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92
+#: AppTools/ToolFiducials.py:205
msgid ""
"The position for the second fiducial.\n"
"- 'Up' - the order is: bottom-left, top-left, top-right.\n"
@@ -11931,23 +10008,23 @@ msgstr ""
"- «Aucun» - il n'y a pas de deuxième fiduciaire. L'ordre est: en bas à "
"gauche, en haut à droite."
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108
-#: flatcamTools/ToolFiducials.py:221
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108
+#: AppTools/ToolFiducials.py:221
msgid "Cross"
msgstr "Croix"
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109
-#: flatcamTools/ToolFiducials.py:222
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109
+#: AppTools/ToolFiducials.py:222
msgid "Chess"
msgstr "Échecs"
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112
-#: flatcamTools/ToolFiducials.py:224
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112
+#: AppTools/ToolFiducials.py:224
msgid "Fiducial Type"
msgstr "Type fiduciaire"
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114
-#: flatcamTools/ToolFiducials.py:226
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114
+#: AppTools/ToolFiducials.py:226
msgid ""
"The type of fiducial.\n"
"- 'Circular' - this is the regular fiducial.\n"
@@ -11959,16 +10036,16 @@ msgstr ""
"- 'Croix' - croix lignes fiduciales.\n"
"- 'Échecs' - modèle d'échecs fiducial."
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123
-#: flatcamTools/ToolFiducials.py:235
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123
+#: AppTools/ToolFiducials.py:235
msgid "Line thickness"
msgstr "Épaisseur de ligne"
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:27
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:27
msgid "Invert Gerber Tool Options"
msgstr "Options de l'outil Inverser Gerber"
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:33
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:33
msgid ""
"A tool to invert Gerber geometry from positive to negative\n"
"and in revers."
@@ -11976,8 +10053,8 @@ msgstr ""
"Un outil pour inverser la géométrie Gerber du positif au négatif\n"
"et en sens inverse."
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:47
-#: flatcamTools/ToolInvertGerber.py:90
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:47
+#: AppTools/ToolInvertGerber.py:90
msgid ""
"Distance by which to avoid\n"
"the edges of the Gerber object."
@@ -11985,13 +10062,13 @@ msgstr ""
"Distance à éviter\n"
"les bords de l'objet Gerber."
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:58
-#: flatcamTools/ToolInvertGerber.py:101
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:58
+#: AppTools/ToolInvertGerber.py:101
msgid "Lines Join Style"
msgstr "Style de jointure des lignes"
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:60
-#: flatcamTools/ToolInvertGerber.py:103
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:60
+#: AppTools/ToolInvertGerber.py:103
msgid ""
"The way that the lines in the object outline will be joined.\n"
"Can be:\n"
@@ -12005,34 +10082,34 @@ msgstr ""
"- carré -> les lignes se rencontrent dans un angle de 90 degrés\n"
"- biseau -> les lignes sont reliées par une troisième ligne"
-#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:27
+#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:27
msgid "Optimal Tool Options"
msgstr "Options de l'outil 'Optimal'"
-#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:33
+#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:33
msgid ""
"A tool to find the minimum distance between\n"
"every two Gerber geometric elements"
msgstr ""
-"Un outil pour trouver la distance minimale entre\n"
-"tous les deux éléments géométriques de Gerber"
+"Outil de mesure minimale entre\n"
+"deux éléments géométriques de Gerber"
-#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:48
-#: flatcamTools/ToolOptimal.py:78
+#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:48
+#: AppTools/ToolOptimal.py:78
msgid "Precision"
msgstr "Précision"
-#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:50
+#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:50
msgid "Number of decimals for the distances and coordinates in this tool."
msgstr ""
"Nombre de décimales pour les distances et les coordonnées dans cet outil."
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:27
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:27
msgid "Punch Gerber Options"
msgstr "Options de poinçonnage Gerber"
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:108
-#: flatcamTools/ToolPunchGerber.py:141
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:108
+#: AppTools/ToolPunchGerber.py:141
msgid ""
"The punch hole source can be:\n"
"- Excellon Object-> the Excellon object drills center will serve as "
@@ -12052,11 +10129,11 @@ msgstr ""
"- Proportionnel -> fera un trou de poinçon Gerber ayant le diamètre un "
"pourcentage du diamètre du tampon."
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:27
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:27
msgid "QRCode Tool Options"
msgstr "Options de l'outil QRCode"
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:33
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:33
msgid ""
"A tool to create a QRCode that can be inserted\n"
"into a selected Gerber file, or it can be exported as a file."
@@ -12065,13 +10142,13 @@ msgstr ""
"dans un fichier Gerber sélectionné, ou il peut être exporté en tant que "
"fichier."
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45
-#: flatcamTools/ToolQRCode.py:100
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45
+#: AppTools/ToolQRCode.py:100
msgid "Version"
msgstr "Version"
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47
-#: flatcamTools/ToolQRCode.py:102
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47
+#: AppTools/ToolQRCode.py:102
msgid ""
"QRCode version can have values from 1 (21x21 boxes)\n"
"to 40 (177x177 boxes)."
@@ -12079,14 +10156,14 @@ msgstr ""
"La version QRCode peut avoir des valeurs de 1 (éléments 21x21)\n"
"jusqu'à 40 (éléments 177x177)."
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58
-#: flatcamTools/ToolQRCode.py:113
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58
+#: AppTools/ToolQRCode.py:113
msgid "Error correction"
msgstr "Correction des erreurs"
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71
-#: flatcamTools/ToolQRCode.py:115 flatcamTools/ToolQRCode.py:126
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71
+#: AppTools/ToolQRCode.py:115 AppTools/ToolQRCode.py:126
#, python-format
msgid ""
"Parameter that controls the error correction used for the QR Code.\n"
@@ -12101,13 +10178,13 @@ msgstr ""
"Q = 25 %% maximum d'erreurs peuvent être corrigées\n"
"H = maximum 30 %% d'erreurs peuvent être corrigées."
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81
-#: flatcamTools/ToolQRCode.py:136
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81
+#: AppTools/ToolQRCode.py:136
msgid "Box Size"
msgstr "Taille d'élément"
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83
-#: flatcamTools/ToolQRCode.py:138
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83
+#: AppTools/ToolQRCode.py:138
msgid ""
"Box size control the overall size of the QRcode\n"
"by adjusting the size of each box in the code."
@@ -12115,13 +10192,13 @@ msgstr ""
"La taille de l'élément contrôle la taille globale du QRcode\n"
"en ajustant la taille de chaque case du code."
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94
-#: flatcamTools/ToolQRCode.py:149
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94
+#: AppTools/ToolQRCode.py:149
msgid "Border Size"
msgstr "Taille de bordure"
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96
-#: flatcamTools/ToolQRCode.py:151
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96
+#: AppTools/ToolQRCode.py:151
msgid ""
"Size of the QRCode border. How many boxes thick is the border.\n"
"Default value is 4. The width of the clearance around the QRCode."
@@ -12129,28 +10206,28 @@ msgstr ""
"Taille de la bordure QRCode. Combien d'éléments sont épais la bordure.\n"
"La valeur par défaut est 4. La largeur du jeu autour du QRCode."
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107
-#: flatcamTools/ToolQRCode.py:162
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107
+#: AppTools/ToolQRCode.py:162
msgid "QRCode Data"
msgstr "Données QRCode"
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109
-#: flatcamTools/ToolQRCode.py:164
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109
+#: AppTools/ToolQRCode.py:164
msgid "QRCode Data. Alphanumeric text to be encoded in the QRCode."
msgstr "Données QRCode. Texte alphanumérique à encoder dans le QRCode."
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:113
-#: flatcamTools/ToolQRCode.py:168
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:113
+#: AppTools/ToolQRCode.py:168
msgid "Add here the text to be included in the QRCode..."
msgstr "Ajoutez ici le texte à inclure dans le QRCode ..."
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:119
-#: flatcamTools/ToolQRCode.py:174
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:119
+#: AppTools/ToolQRCode.py:174
msgid "Polarity"
msgstr "Polarité"
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121
-#: flatcamTools/ToolQRCode.py:176
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121
+#: AppTools/ToolQRCode.py:176
msgid ""
"Choose the polarity of the QRCode.\n"
"It can be drawn in a negative way (squares are clear)\n"
@@ -12160,18 +10237,18 @@ msgstr ""
"Il peut être dessiné de manière négative (les carrés sont clairs)\n"
"ou d'une manière positive (les carrés sont opaques)."
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125
-#: flatcamTools/ToolFilm.py:296 flatcamTools/ToolQRCode.py:180
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125
+#: AppTools/ToolFilm.py:279 AppTools/ToolQRCode.py:180
msgid "Negative"
msgstr "Négatif"
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126
-#: flatcamTools/ToolFilm.py:295 flatcamTools/ToolQRCode.py:181
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126
+#: AppTools/ToolFilm.py:278 AppTools/ToolQRCode.py:181
msgid "Positive"
msgstr "Positif"
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128
-#: flatcamTools/ToolQRCode.py:183
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128
+#: AppTools/ToolQRCode.py:183
msgid ""
"Choose the type of QRCode to be created.\n"
"If added on a Silkscreen Gerber file the QRCode may\n"
@@ -12183,9 +10260,9 @@ msgstr ""
"être ajouté comme positif. S'il est ajouté à un Gerber de cuivre\n"
"fichier alors peut-être le QRCode peut être ajouté comme négatif."
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145
-#: flatcamTools/ToolQRCode.py:194 flatcamTools/ToolQRCode.py:200
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145
+#: AppTools/ToolQRCode.py:194 AppTools/ToolQRCode.py:200
msgid ""
"The bounding box, meaning the empty space that surrounds\n"
"the QRCode geometry, can have a rounded or a square shape."
@@ -12193,37 +10270,37 @@ msgstr ""
"La boîte englobante, ce qui signifie l'espace vide qui entoure\n"
"la géométrie QRCode, peut avoir une forme arrondie ou carrée."
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:239
-#: flatcamTools/ToolQRCode.py:197 flatcamTools/ToolTransform.py:383
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:239
+#: AppTools/ToolQRCode.py:197 AppTools/ToolTransform.py:383
msgid "Rounded"
msgstr "Arrondi"
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152
-#: flatcamTools/ToolQRCode.py:228
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152
+#: AppTools/ToolQRCode.py:228
msgid "Fill Color"
msgstr "La couleur de remplissage"
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154
-#: flatcamTools/ToolQRCode.py:230
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154
+#: AppTools/ToolQRCode.py:230
msgid "Set the QRCode fill color (squares color)."
msgstr "Définissez la couleur de remplissage QRCode (couleur des éléments)."
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:173
-#: flatcamTools/ToolQRCode.py:252
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:173
+#: AppTools/ToolQRCode.py:252
msgid "Back Color"
msgstr "Couleur de fond"
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:175
-#: flatcamTools/ToolQRCode.py:254
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:175
+#: AppTools/ToolQRCode.py:254
msgid "Set the QRCode background color."
msgstr "Définissez la couleur d'arrière-plan QRCode."
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:27
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:27
msgid "Check Rules Tool Options"
msgstr "Options de l'outil de Vérif. des Règles"
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:32
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:32
msgid ""
"A tool to check if Gerber files are within a set\n"
"of Manufacturing Rules."
@@ -12231,47 +10308,47 @@ msgstr ""
"Un outil pour vérifier si les fichiers Gerber sont dans un ensemble\n"
"des règles de fabrication."
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:42
-#: flatcamTools/ToolRulesCheck.py:265 flatcamTools/ToolRulesCheck.py:929
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:42
+#: AppTools/ToolRulesCheck.py:265 AppTools/ToolRulesCheck.py:929
msgid "Trace Size"
msgstr "Taille de trace"
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:44
-#: flatcamTools/ToolRulesCheck.py:267
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:44
+#: AppTools/ToolRulesCheck.py:267
msgid "This checks if the minimum size for traces is met."
msgstr "Ceci vérifie si la taille minimale des traces est respectée."
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:54
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:74
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:94
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:114
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:134
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:154
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:174
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:194
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:216
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:236
-#: flatcamTools/ToolRulesCheck.py:277 flatcamTools/ToolRulesCheck.py:299
-#: flatcamTools/ToolRulesCheck.py:322 flatcamTools/ToolRulesCheck.py:345
-#: flatcamTools/ToolRulesCheck.py:368 flatcamTools/ToolRulesCheck.py:391
-#: flatcamTools/ToolRulesCheck.py:414 flatcamTools/ToolRulesCheck.py:437
-#: flatcamTools/ToolRulesCheck.py:462 flatcamTools/ToolRulesCheck.py:485
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:54
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:74
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:94
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:114
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:134
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:154
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:174
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:194
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:216
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:236
+#: AppTools/ToolRulesCheck.py:277 AppTools/ToolRulesCheck.py:299
+#: AppTools/ToolRulesCheck.py:322 AppTools/ToolRulesCheck.py:345
+#: AppTools/ToolRulesCheck.py:368 AppTools/ToolRulesCheck.py:391
+#: AppTools/ToolRulesCheck.py:414 AppTools/ToolRulesCheck.py:437
+#: AppTools/ToolRulesCheck.py:462 AppTools/ToolRulesCheck.py:485
msgid "Min value"
msgstr "Valeur min"
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:56
-#: flatcamTools/ToolRulesCheck.py:279
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:56
+#: AppTools/ToolRulesCheck.py:279
msgid "Minimum acceptable trace size."
msgstr "Taille de trace minimale acceptable."
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:61
-#: flatcamTools/ToolRulesCheck.py:286 flatcamTools/ToolRulesCheck.py:1157
-#: flatcamTools/ToolRulesCheck.py:1187
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:61
+#: AppTools/ToolRulesCheck.py:286 AppTools/ToolRulesCheck.py:1157
+#: AppTools/ToolRulesCheck.py:1187
msgid "Copper to Copper clearance"
msgstr "Distance de cuivre à cuivre"
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:63
-#: flatcamTools/ToolRulesCheck.py:288
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:63
+#: AppTools/ToolRulesCheck.py:288
msgid ""
"This checks if the minimum clearance between copper\n"
"features is met."
@@ -12279,29 +10356,29 @@ msgstr ""
"Ceci vérifie si le jeu minimum entre le cuivre\n"
"traces est rencontré."
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:76
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:96
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:116
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:136
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:156
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:176
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:238
-#: flatcamTools/ToolRulesCheck.py:301 flatcamTools/ToolRulesCheck.py:324
-#: flatcamTools/ToolRulesCheck.py:347 flatcamTools/ToolRulesCheck.py:370
-#: flatcamTools/ToolRulesCheck.py:393 flatcamTools/ToolRulesCheck.py:416
-#: flatcamTools/ToolRulesCheck.py:464
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:76
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:96
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:116
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:136
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:156
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:176
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:238
+#: AppTools/ToolRulesCheck.py:301 AppTools/ToolRulesCheck.py:324
+#: AppTools/ToolRulesCheck.py:347 AppTools/ToolRulesCheck.py:370
+#: AppTools/ToolRulesCheck.py:393 AppTools/ToolRulesCheck.py:416
+#: AppTools/ToolRulesCheck.py:464
msgid "Minimum acceptable clearance value."
msgstr "Distance minimale acceptable."
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:81
-#: flatcamTools/ToolRulesCheck.py:309 flatcamTools/ToolRulesCheck.py:1217
-#: flatcamTools/ToolRulesCheck.py:1223 flatcamTools/ToolRulesCheck.py:1236
-#: flatcamTools/ToolRulesCheck.py:1243
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:81
+#: AppTools/ToolRulesCheck.py:309 AppTools/ToolRulesCheck.py:1217
+#: AppTools/ToolRulesCheck.py:1223 AppTools/ToolRulesCheck.py:1236
+#: AppTools/ToolRulesCheck.py:1243
msgid "Copper to Outline clearance"
msgstr "Cuivre à la distance de contour"
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:83
-#: flatcamTools/ToolRulesCheck.py:311
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:83
+#: AppTools/ToolRulesCheck.py:311
msgid ""
"This checks if the minimum clearance between copper\n"
"features and the outline is met."
@@ -12309,13 +10386,13 @@ msgstr ""
"Ceci vérifie si la distance minimale entre le cuivre\n"
"traces et le contour est rencontré."
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:101
-#: flatcamTools/ToolRulesCheck.py:332
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:101
+#: AppTools/ToolRulesCheck.py:332
msgid "Silk to Silk Clearance"
msgstr "Sérigraphie à sérigraphie distance"
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:103
-#: flatcamTools/ToolRulesCheck.py:334
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:103
+#: AppTools/ToolRulesCheck.py:334
msgid ""
"This checks if the minimum clearance between silkscreen\n"
"features and silkscreen features is met."
@@ -12323,14 +10400,14 @@ msgstr ""
"Ceci vérifie si la distance minimale entre sérigraphie\n"
"les fonctionnalités et les fonctions de sérigraphie sont remplies."
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:121
-#: flatcamTools/ToolRulesCheck.py:355 flatcamTools/ToolRulesCheck.py:1326
-#: flatcamTools/ToolRulesCheck.py:1332 flatcamTools/ToolRulesCheck.py:1350
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:121
+#: AppTools/ToolRulesCheck.py:355 AppTools/ToolRulesCheck.py:1326
+#: AppTools/ToolRulesCheck.py:1332 AppTools/ToolRulesCheck.py:1350
msgid "Silk to Solder Mask Clearance"
msgstr "Distance de sérigraphie à masque de soudure"
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:123
-#: flatcamTools/ToolRulesCheck.py:357
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:123
+#: AppTools/ToolRulesCheck.py:357
msgid ""
"This checks if the minimum clearance between silkscreen\n"
"features and soldermask features is met."
@@ -12338,15 +10415,15 @@ msgstr ""
"Ceci vérifie si la distance minimale entre sérigraphie\n"
"les fonctionnalités et les fonctionnalités soldermask sont remplies."
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:141
-#: flatcamTools/ToolRulesCheck.py:378 flatcamTools/ToolRulesCheck.py:1380
-#: flatcamTools/ToolRulesCheck.py:1386 flatcamTools/ToolRulesCheck.py:1400
-#: flatcamTools/ToolRulesCheck.py:1407
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:141
+#: AppTools/ToolRulesCheck.py:378 AppTools/ToolRulesCheck.py:1380
+#: AppTools/ToolRulesCheck.py:1386 AppTools/ToolRulesCheck.py:1400
+#: AppTools/ToolRulesCheck.py:1407
msgid "Silk to Outline Clearance"
msgstr "Sérigraphie à contour distance"
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:143
-#: flatcamTools/ToolRulesCheck.py:380
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:143
+#: AppTools/ToolRulesCheck.py:380
msgid ""
"This checks if the minimum clearance between silk\n"
"features and the outline is met."
@@ -12354,14 +10431,14 @@ msgstr ""
"Ceci vérifie si la distance minimale entre sérigraphie\n"
"traces et le contour est rencontré."
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:161
-#: flatcamTools/ToolRulesCheck.py:401 flatcamTools/ToolRulesCheck.py:1418
-#: flatcamTools/ToolRulesCheck.py:1445
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:161
+#: AppTools/ToolRulesCheck.py:401 AppTools/ToolRulesCheck.py:1418
+#: AppTools/ToolRulesCheck.py:1445
msgid "Minimum Solder Mask Sliver"
msgstr "Ruban de masque de soudure minimum"
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:163
-#: flatcamTools/ToolRulesCheck.py:403
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:163
+#: AppTools/ToolRulesCheck.py:403
msgid ""
"This checks if the minimum clearance between soldermask\n"
"features and soldermask features is met."
@@ -12369,15 +10446,15 @@ msgstr ""
"Cette vérifie si la distance minimale entre soldermask\n"
"traces et soldermask traces est rencontré."
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:181
-#: flatcamTools/ToolRulesCheck.py:424 flatcamTools/ToolRulesCheck.py:1483
-#: flatcamTools/ToolRulesCheck.py:1489 flatcamTools/ToolRulesCheck.py:1505
-#: flatcamTools/ToolRulesCheck.py:1512
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:181
+#: AppTools/ToolRulesCheck.py:424 AppTools/ToolRulesCheck.py:1483
+#: AppTools/ToolRulesCheck.py:1489 AppTools/ToolRulesCheck.py:1505
+#: AppTools/ToolRulesCheck.py:1512
msgid "Minimum Annular Ring"
msgstr "Anneau Minimum"
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:183
-#: flatcamTools/ToolRulesCheck.py:426
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:183
+#: AppTools/ToolRulesCheck.py:426
msgid ""
"This checks if the minimum copper ring left by drilling\n"
"a hole into a pad is met."
@@ -12385,18 +10462,18 @@ msgstr ""
"Ceci vérifie si l'anneau de cuivre minimum laissé par le forage\n"
"un trou dans un pad est rencontré."
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:196
-#: flatcamTools/ToolRulesCheck.py:439
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:196
+#: AppTools/ToolRulesCheck.py:439
msgid "Minimum acceptable ring value."
msgstr "Valeur de sonnerie minimale acceptable."
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:203
-#: flatcamTools/ToolRulesCheck.py:449 flatcamTools/ToolRulesCheck.py:873
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:203
+#: AppTools/ToolRulesCheck.py:449 AppTools/ToolRulesCheck.py:873
msgid "Hole to Hole Clearance"
msgstr "Distance trou à trou"
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:205
-#: flatcamTools/ToolRulesCheck.py:451
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:205
+#: AppTools/ToolRulesCheck.py:451
msgid ""
"This checks if the minimum clearance between a drill hole\n"
"and another drill hole is met."
@@ -12404,18 +10481,18 @@ msgstr ""
"Ceci vérifie si le jeu minimum entre un trou de forage\n"
"et un autre trou de forage est rencontré."
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:218
-#: flatcamTools/ToolRulesCheck.py:487
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:218
+#: AppTools/ToolRulesCheck.py:487
msgid "Minimum acceptable drill size."
msgstr "Taille minimale acceptable du foret."
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:223
-#: flatcamTools/ToolRulesCheck.py:472 flatcamTools/ToolRulesCheck.py:847
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:223
+#: AppTools/ToolRulesCheck.py:472 AppTools/ToolRulesCheck.py:847
msgid "Hole Size"
msgstr "Taille du trou"
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:225
-#: flatcamTools/ToolRulesCheck.py:474
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:225
+#: AppTools/ToolRulesCheck.py:474
msgid ""
"This checks if the drill holes\n"
"sizes are above the threshold."
@@ -12423,11 +10500,11 @@ msgstr ""
"Ceci vérifie si les trous de forage\n"
"les tailles sont au dessus du seuil."
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:27
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:27
msgid "2Sided Tool Options"
msgstr "Options des Outils 2 faces"
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:33
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:33
msgid ""
"A tool to help in creating a double sided\n"
"PCB using alignment holes."
@@ -12435,45 +10512,45 @@ msgstr ""
"Un outil pour aider à créer un double face\n"
"PCB utilisant des trous d'alignement."
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:47
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:47
msgid "Drill dia"
msgstr "Forage dia"
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49
-#: flatcamTools/ToolDblSided.py:363 flatcamTools/ToolDblSided.py:368
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49
+#: AppTools/ToolDblSided.py:363 AppTools/ToolDblSided.py:368
msgid "Diameter of the drill for the alignment holes."
msgstr "Diamètre du foret pour les trous d'alignement."
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:56
-#: flatcamTools/ToolDblSided.py:377
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:56
+#: AppTools/ToolDblSided.py:377
msgid "Align Axis"
msgstr "Aligner l'axe"
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71
-#: flatcamTools/ToolDblSided.py:165 flatcamTools/ToolDblSided.py:379
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71
+#: AppTools/ToolDblSided.py:165 AppTools/ToolDblSided.py:379
msgid "Mirror vertically (X) or horizontally (Y)."
msgstr "Miroir verticalement (X) ou horizontalement (Y)."
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:69
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:69
msgid "Mirror Axis:"
msgstr "Axe du miroir:"
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:80
-#: flatcamTools/ToolDblSided.py:181
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:80
+#: AppTools/ToolDblSided.py:181
msgid "Point"
msgstr "Point"
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:81
-#: flatcamTools/ToolDblSided.py:182
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:81
+#: AppTools/ToolDblSided.py:182
msgid "Box"
msgstr "Box"
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:82
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:82
msgid "Axis Ref"
msgstr "Réf d'axe"
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:84
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:84
msgid ""
"The axis should pass through a point or cut\n"
" a specified box (in a FlatCAM object) through \n"
@@ -12483,16 +10560,16 @@ msgstr ""
"une zone spécifiée (dans un objet FlatCAM) via\n"
"le centre."
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:27
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:27
msgid "Calculators Tool Options"
msgstr "Options de l'Outil Calcul"
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31
-#: flatcamTools/ToolCalculators.py:25
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31
+#: AppTools/ToolCalculators.py:25
msgid "V-Shape Tool Calculator"
msgstr "Calculateur d'Outils en V"
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:33
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:33
msgid ""
"Calculate the tool diameter for a given V-shape tool,\n"
"having the tip diameter, tip angle and\n"
@@ -12502,13 +10579,13 @@ msgstr ""
"ayant le diamètre de la pointe, son angle et\n"
"profondeur de coupe en tant que paramètres."
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50
-#: flatcamTools/ToolCalculators.py:94
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50
+#: AppTools/ToolCalculators.py:94
msgid "Tip Diameter"
-msgstr "Dia de la pointe"
+msgstr "Diam de la pointe"
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52
-#: flatcamTools/ToolCalculators.py:102
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52
+#: AppTools/ToolCalculators.py:102
msgid ""
"This is the tool tip diameter.\n"
"It is specified by manufacturer."
@@ -12516,12 +10593,12 @@ msgstr ""
"C'est le diamètre de la pointe de l'outil.\n"
"Il est spécifié par le fabricant."
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64
-#: flatcamTools/ToolCalculators.py:105
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64
+#: AppTools/ToolCalculators.py:105
msgid "Tip Angle"
msgstr "Angle de pointe"
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:66
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:66
msgid ""
"This is the angle on the tip of the tool.\n"
"It is specified by manufacturer."
@@ -12529,7 +10606,7 @@ msgstr ""
"C'est l'angle sur la pointe de l'outil.\n"
"Il est spécifié par le fabricant."
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:80
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:80
msgid ""
"This is depth to cut into material.\n"
"In the CNCJob object it is the CutZ parameter."
@@ -12537,13 +10614,13 @@ msgstr ""
"C'est la profondeur à couper dans le matériau.\n"
"Dans l'objet CNCJob, il s'agit du paramètre CutZ."
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87
-#: flatcamTools/ToolCalculators.py:27
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87
+#: AppTools/ToolCalculators.py:27
msgid "ElectroPlating Calculator"
msgstr "Calculateur d'électrodéposition"
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89
-#: flatcamTools/ToolCalculators.py:158
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89
+#: AppTools/ToolCalculators.py:158
msgid ""
"This calculator is useful for those who plate the via/pad/drill holes,\n"
"using a method like graphite ink or calcium hypophosphite ink or palladium "
@@ -12554,33 +10631,33 @@ msgstr ""
"en utilisant une méthode comme l’encre grahite, l’encre hypophosphite de "
"calcium ou le chlorure de palladium."
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:100
-#: flatcamTools/ToolCalculators.py:167
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:100
+#: AppTools/ToolCalculators.py:167
msgid "Board Length"
msgstr "Longueur"
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102
-#: flatcamTools/ToolCalculators.py:173
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102
+#: AppTools/ToolCalculators.py:173
msgid "This is the board length. In centimeters."
msgstr "Ceci est la longueur du conseil. En centimètres."
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112
-#: flatcamTools/ToolCalculators.py:175
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112
+#: AppTools/ToolCalculators.py:175
msgid "Board Width"
msgstr "Largeur"
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114
-#: flatcamTools/ToolCalculators.py:181
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114
+#: AppTools/ToolCalculators.py:181
msgid "This is the board width.In centimeters."
msgstr "C'est la largeur de la planche.En centimètres."
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119
-#: flatcamTools/ToolCalculators.py:183
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119
+#: AppTools/ToolCalculators.py:183
msgid "Current Density"
msgstr "Densité de courant"
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125
-#: flatcamTools/ToolCalculators.py:190
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125
+#: AppTools/ToolCalculators.py:190
msgid ""
"Current density to pass through the board. \n"
"In Amps per Square Feet ASF."
@@ -12588,13 +10665,13 @@ msgstr ""
"Densité de courant électrique à traverser le tableau.\n"
"En ampères par pieds carrés ASF."
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:131
-#: flatcamTools/ToolCalculators.py:193
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:131
+#: AppTools/ToolCalculators.py:193
msgid "Copper Growth"
msgstr "Croissance du cuivre"
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137
-#: flatcamTools/ToolCalculators.py:200
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137
+#: AppTools/ToolCalculators.py:200
msgid ""
"How thick the copper growth is intended to be.\n"
"In microns."
@@ -12602,17 +10679,33 @@ msgstr ""
"Quelle épaisseur doit avoir la croissance du cuivre.\n"
"En microns."
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:28
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:27
+#, fuzzy
+#| msgid "Gerber Options"
+msgid "Corner Markers Options"
+msgstr "Options de Gerber"
+
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:44
+#: AppTools/ToolCorners.py:115
+msgid "The thickness of the line that makes the corner marker."
+msgstr ""
+
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:58
+#: AppTools/ToolCorners.py:129
+msgid "The length of the line that makes the corner marker."
+msgstr ""
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:28
msgid "Cutout Tool Options"
msgstr "Options de l'Outil de Découpe"
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43
-#: flatcamTools/ToolCalculators.py:123 flatcamTools/ToolCutOut.py:129
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43
+#: AppTools/ToolCalculators.py:123 AppTools/ToolCutOut.py:129
msgid "Tool Diameter"
-msgstr "Dia de l'outil"
+msgstr "Diam de l'outil"
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45
-#: flatcamTools/ToolCutOut.py:131
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45
+#: AppTools/ToolCutOut.py:131
msgid ""
"Diameter of the tool used to cutout\n"
"the PCB shape out of the surrounding material."
@@ -12620,12 +10713,12 @@ msgstr ""
"Diamètre de l'outil utilisé pour la découpe\n"
"la forme de PCB hors du matériau environnant."
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:100
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:100
msgid "Object kind"
msgstr "Type d'objet"
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102
-#: flatcamTools/ToolCutOut.py:77
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102
+#: AppTools/ToolCutOut.py:77
msgid ""
"Choice of what kind the object we want to cutout is.
- Single: "
"contain a single PCB Gerber outline object.
- Panel: a panel PCB "
@@ -12637,18 +10730,18 @@ msgstr ""
"est fait\n"
"sur beaucoup de contours individuels de PCB."
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109
-#: flatcamTools/ToolCutOut.py:83
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109
+#: AppTools/ToolCutOut.py:83
msgid "Single"
msgstr "Seul"
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110
-#: flatcamTools/ToolCutOut.py:84
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110
+#: AppTools/ToolCutOut.py:84
msgid "Panel"
msgstr "Panneau"
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117
-#: flatcamTools/ToolCutOut.py:192
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117
+#: AppTools/ToolCutOut.py:192
msgid ""
"Margin over bounds. A positive value here\n"
"will make the cutout of the PCB further from\n"
@@ -12658,30 +10751,30 @@ msgstr ""
"fera la découpe du PCB plus loin de\n"
"la frontière de PCB"
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:130
-#: flatcamTools/ToolCutOut.py:203
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:130
+#: AppTools/ToolCutOut.py:203
msgid "Gap size"
msgstr "Taille de l'espace"
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:132
-#: flatcamTools/ToolCutOut.py:205
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:132
+#: AppTools/ToolCutOut.py:205
msgid ""
"The size of the bridge gaps in the cutout\n"
"used to keep the board connected to\n"
"the surrounding material (the one \n"
"from which the PCB is cutout)."
msgstr ""
-"La taille des lacunes de pont dans la découpe\n"
-"utilisé pour garder le conseil connecté à\n"
-"le matériau environnant (celui\n"
-"à partir duquel le circuit imprimé est découpé)."
+"Taille des ponts dans la découpe\n"
+"utilisé pour garder le PCB connecté au\n"
+"matériau environnant (celui à partir duquel\n"
+" le circuit imprimé est découpé)."
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:146
-#: flatcamTools/ToolCutOut.py:245
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:146
+#: AppTools/ToolCutOut.py:245
msgid "Gaps"
-msgstr "Lacunes"
+msgstr "Nbres Ponts"
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:148
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:148
msgid ""
"Number of gaps used for the cutout.\n"
"There can be maximum 8 bridges/gaps.\n"
@@ -12694,24 +10787,24 @@ msgid ""
"- 2tb - 2*top + 2*bottom\n"
"- 8 - 2*left + 2*right +2*top + 2*bottom"
msgstr ""
-"Nombre de trous utilisés pour la découpe.\n"
-"Il peut y avoir au maximum 8 ponts / lacunes.\n"
+"Nombres de ponts à garder lors de la découpe.\n"
+"Il peut y avoir au maximum 8 ponts.\n"
"Les choix sont:\n"
-"- Aucun - pas de lacunes\n"
-"- lr - gauche + droite\n"
-"- tb - haut + bas\n"
-"- 4 - gauche + droite + haut + bas\n"
-"- 2lr - 2 * gauche + 2 * droite\n"
-"- 2tb - 2 * Haut + 2 * Bas\n"
-"- 8 - 2 * gauche + 2 * droite + 2 * en haut + 2 * en bas"
+"- Aucun - Découpe total\n"
+"- LR - Gauche + Droite\n"
+"- TB - Haut + Bas\n"
+"- 4 - Gauche + Droite + Haut + Bas\n"
+"- 2LR - 2 Gauche + 2 Droite\n"
+"- 2TB - 2 Haut + 2 Bas\n"
+"- 8 - 2 Gauches + 2 Droites + 2 Hauts + 2 Bas"
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:170
-#: flatcamTools/ToolCutOut.py:222
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:170
+#: AppTools/ToolCutOut.py:222
msgid "Convex Shape"
msgstr "Forme convexe"
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:172
-#: flatcamTools/ToolCutOut.py:225
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:172
+#: AppTools/ToolCutOut.py:225
msgid ""
"Create a convex shape surrounding the entire PCB.\n"
"Used only if the source object type is Gerber."
@@ -12719,11 +10812,11 @@ msgstr ""
"Créez une forme convexe entourant tout le circuit imprimé.\n"
"Utilisé uniquement si le type d'objet source est Gerber."
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:27
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:27
msgid "Film Tool Options"
msgstr "Options de l'Outil de Film"
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:33
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:33
msgid ""
"Create a PCB film from a Gerber or Geometry\n"
"FlatCAM object.\n"
@@ -12733,12 +10826,11 @@ msgstr ""
"Objet FlatCAM.\n"
"Le fichier est enregistré au format SVG."
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:44
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:44
msgid "Film Type"
msgstr "Type de Film"
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:46
-#: flatcamTools/ToolFilm.py:300
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:46 AppTools/ToolFilm.py:283
msgid ""
"Generate a Positive black film or a Negative film.\n"
"Positive means that it will print the features\n"
@@ -12754,21 +10846,19 @@ msgstr ""
"avec du blanc sur une toile noire.\n"
"Le format de film est SVG."
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:57
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:57
msgid "Film Color"
msgstr "Couleur du film"
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:59
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:59
msgid "Set the film color when positive film is selected."
msgstr "Définissez la couleur du film lorsque le film positif est sélectionné."
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:82
-#: flatcamTools/ToolFilm.py:316
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:82 AppTools/ToolFilm.py:299
msgid "Border"
msgstr "Bordure"
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:84
-#: flatcamTools/ToolFilm.py:318
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:84 AppTools/ToolFilm.py:301
msgid ""
"Specify a border around the object.\n"
"Only for negative film.\n"
@@ -12788,13 +10878,13 @@ msgstr ""
"couleur blanche comme le reste et qui peut confondre avec le\n"
"environnement si pas pour cette frontière."
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:101
-#: flatcamTools/ToolFilm.py:283
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:101
+#: AppTools/ToolFilm.py:266
msgid "Scale Stroke"
msgstr "Course de l'échelle"
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:103
-#: flatcamTools/ToolFilm.py:285
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:103
+#: AppTools/ToolFilm.py:268
msgid ""
"Scale the line stroke thickness of each feature in the SVG file.\n"
"It means that the line that envelope each SVG feature will be thicker or "
@@ -12807,13 +10897,13 @@ msgstr ""
"par conséquent, les caractéristiques fines peuvent être plus affectées par "
"ce paramètre."
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:110
-#: flatcamTools/ToolFilm.py:141
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:110
+#: AppTools/ToolFilm.py:124
msgid "Film Adjustments"
msgstr "Ajustements de film"
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:112
-#: flatcamTools/ToolFilm.py:143
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:112
+#: AppTools/ToolFilm.py:126
msgid ""
"Sometime the printers will distort the print shape, especially the Laser "
"types.\n"
@@ -12824,13 +10914,13 @@ msgstr ""
"Cette section fournit les outils permettant de compenser les distorsions "
"d’impression."
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:119
-#: flatcamTools/ToolFilm.py:150
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:119
+#: AppTools/ToolFilm.py:133
msgid "Scale Film geometry"
msgstr "Mettre à l'échelle la géo du film"
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:121
-#: flatcamTools/ToolFilm.py:152
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:121
+#: AppTools/ToolFilm.py:135
msgid ""
"A value greater than 1 will stretch the film\n"
"while a value less than 1 will jolt it."
@@ -12838,25 +10928,25 @@ msgstr ""
"Une valeur supérieure à 1 étendra le film\n"
"alors qu'une valeur inférieure à 1 la secouera."
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:131
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:103
-#: flatcamTools/ToolFilm.py:162 flatcamTools/ToolTransform.py:148
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:131
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:103
+#: AppTools/ToolFilm.py:145 AppTools/ToolTransform.py:148
msgid "X factor"
msgstr "Facteur X"
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:140
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:116
-#: flatcamTools/ToolFilm.py:171 flatcamTools/ToolTransform.py:168
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:140
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:116
+#: AppTools/ToolFilm.py:154 AppTools/ToolTransform.py:168
msgid "Y factor"
msgstr "Facteur Y"
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:150
-#: flatcamTools/ToolFilm.py:189
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:150
+#: AppTools/ToolFilm.py:172
msgid "Skew Film geometry"
msgstr "Inclinez la géo du film"
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:152
-#: flatcamTools/ToolFilm.py:191
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:152
+#: AppTools/ToolFilm.py:174
msgid ""
"Positive values will skew to the right\n"
"while negative values will skew to the left."
@@ -12864,20 +10954,20 @@ msgstr ""
"Les valeurs positives seront biaisées vers la droite\n"
"tandis que les valeurs négatives inclineront vers la gauche."
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:162
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:72
-#: flatcamTools/ToolFilm.py:201 flatcamTools/ToolTransform.py:97
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:162
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:72
+#: AppTools/ToolFilm.py:184 AppTools/ToolTransform.py:97
msgid "X angle"
msgstr "Angle X"
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:171
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:86
-#: flatcamTools/ToolFilm.py:210 flatcamTools/ToolTransform.py:118
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:171
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:86
+#: AppTools/ToolFilm.py:193 AppTools/ToolTransform.py:118
msgid "Y angle"
msgstr "Angle Y"
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:182
-#: flatcamTools/ToolFilm.py:221
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:182
+#: AppTools/ToolFilm.py:204
msgid ""
"The reference point to be used as origin for the skew.\n"
"It can be one of the four points of the geometry bounding box."
@@ -12885,63 +10975,64 @@ msgstr ""
"Le point de référence à utiliser comme origine pour l'inclinaison.\n"
"Ce peut être l'un des quatre points de la boîte englobante de la géométrie."
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:185
-#: flatcamTools/ToolFiducials.py:87 flatcamTools/ToolFilm.py:224
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:185
+#: AppTools/ToolCorners.py:80 AppTools/ToolFiducials.py:87
+#: AppTools/ToolFilm.py:207
msgid "Bottom Left"
msgstr "En bas à gauche"
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:186
-#: flatcamTools/ToolFilm.py:225
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:186
+#: AppTools/ToolCorners.py:88 AppTools/ToolFilm.py:208
msgid "Top Left"
msgstr "En haut à gauche"
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:187
-#: flatcamTools/ToolFilm.py:226
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:187
+#: AppTools/ToolCorners.py:84 AppTools/ToolFilm.py:209
msgid "Bottom Right"
msgstr "En bas à droite"
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:188
-#: flatcamTools/ToolFilm.py:227
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:188
+#: AppTools/ToolFilm.py:210
msgid "Top right"
msgstr "En haut à droite"
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196
-#: flatcamTools/ToolFilm.py:244
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196
+#: AppTools/ToolFilm.py:227
msgid "Mirror Film geometry"
msgstr "Refléter la géo du film"
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:198
-#: flatcamTools/ToolFilm.py:246
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:198
+#: AppTools/ToolFilm.py:229
msgid "Mirror the film geometry on the selected axis or on both."
msgstr "Reflétez la géométrie du film sur l'axe sélectionné ou sur les deux."
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:212
-#: flatcamTools/ToolFilm.py:260
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:212
+#: AppTools/ToolFilm.py:243
msgid "Mirror axis"
msgstr "Axe du miroir"
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:222
-#: flatcamTools/ToolFilm.py:405
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:222
+#: AppTools/ToolFilm.py:388
msgid "SVG"
msgstr "SVG"
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:223
-#: flatcamTools/ToolFilm.py:406
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:223
+#: AppTools/ToolFilm.py:389
msgid "PNG"
msgstr "PNG"
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:224
-#: flatcamTools/ToolFilm.py:407
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:224
+#: AppTools/ToolFilm.py:390
msgid "PDF"
msgstr "PDF"
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:227
-#: flatcamTools/ToolFilm.py:298 flatcamTools/ToolFilm.py:410
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:227
+#: AppTools/ToolFilm.py:281 AppTools/ToolFilm.py:393
msgid "Film Type:"
msgstr "Type de Film:"
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:229
-#: flatcamTools/ToolFilm.py:412
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:229
+#: AppTools/ToolFilm.py:395
msgid ""
"The file type of the saved film. Can be:\n"
"- 'SVG' -> open-source vectorial format\n"
@@ -12953,35 +11044,34 @@ msgstr ""
"- 'PNG' -> image raster\n"
"- 'PDF' -> format de document portable"
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:238
-#: flatcamTools/ToolFilm.py:421
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:238
+#: AppTools/ToolFilm.py:404
msgid "Page Orientation"
msgstr "Orientation de la page"
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:251
-#: flatcamTools/ToolFilm.py:434
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:251
+#: AppTools/ToolFilm.py:417
msgid "Page Size"
msgstr "Taille de la page"
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:252
-#: flatcamTools/ToolFilm.py:435
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:252
+#: AppTools/ToolFilm.py:418
msgid "A selection of standard ISO 216 page sizes."
msgstr "Une sélection de formats de page ISO 216 standard."
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:27
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:27
msgid "NCC Tool Options"
msgstr "Options de L'outil de la NCC"
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:49
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:57
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:49
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:57
msgid "Comma separated values"
msgstr "Valeurs séparées par des virgules"
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:55
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:63
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:64
-#: flatcamTools/ToolNCC.py:215 flatcamTools/ToolNCC.py:223
-#: flatcamTools/ToolPaint.py:198 flatcamTools/ToolPaint.py:206
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:55
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:63
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:64 AppTools/ToolNCC.py:215
+#: AppTools/ToolNCC.py:223 AppTools/ToolPaint.py:197 AppTools/ToolPaint.py:205
msgid ""
"Default tool type:\n"
"- 'V-shape'\n"
@@ -12991,18 +11081,18 @@ msgstr ""
"- 'Forme en V'\n"
"- circulaire"
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:60
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:69
-#: flatcamTools/ToolNCC.py:220 flatcamTools/ToolPaint.py:203
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:60
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:69 AppTools/ToolNCC.py:220
+#: AppTools/ToolPaint.py:202
msgid "V-shape"
msgstr "Forme en V"
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:100
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:109
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:107
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:116
-#: flatcamTools/ToolNCC.py:262 flatcamTools/ToolNCC.py:271
-#: flatcamTools/ToolPaint.py:245 flatcamTools/ToolPaint.py:254
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:100
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:109
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:107
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:116
+#: AppTools/ToolNCC.py:262 AppTools/ToolNCC.py:271 AppTools/ToolPaint.py:244
+#: AppTools/ToolPaint.py:253
msgid ""
"Depth of cut into material. Negative value.\n"
"In FlatCAM units."
@@ -13010,9 +11100,9 @@ msgstr ""
"Profondeur de la coupe dans le matériau. Valeur négative.\n"
"En unités FlatCAM."
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:119
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:125
-#: flatcamTools/ToolNCC.py:280 flatcamTools/ToolPaint.py:263
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:119
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:125
+#: AppTools/ToolNCC.py:280 AppTools/ToolPaint.py:262
msgid ""
"Diameter for the new tool to add in the Tool Table.\n"
"If the tool is V-shape type then this value is automatically\n"
@@ -13022,17 +11112,17 @@ msgstr ""
"Si l'outil est de type V, cette valeur est automatiquement\n"
"calculé à partir des autres paramètres."
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:156
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:142
-#: flatcamTools/ToolNCC.py:174 flatcamTools/ToolPaint.py:158
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:156
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:142
+#: AppTools/ToolNCC.py:174 AppTools/ToolPaint.py:157
msgid "Tool order"
msgstr "L'ordre des Outils"
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:157
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:167
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:143
-#: flatcamTools/ToolNCC.py:175 flatcamTools/ToolNCC.py:185
-#: flatcamTools/ToolPaint.py:159 flatcamTools/ToolPaint.py:169
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:157
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:167
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:143
+#: AppTools/ToolNCC.py:175 AppTools/ToolNCC.py:185 AppTools/ToolPaint.py:158
+#: AppTools/ToolPaint.py:168
msgid ""
"This set the way that the tools in the tools table are used.\n"
"'No' --> means that the used order is the one in the tool table\n"
@@ -13054,23 +11144,23 @@ msgstr ""
"commande\n"
"en sens inverse et désactivez ce contrôle."
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:165
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:151
-#: flatcamTools/ToolNCC.py:183 flatcamTools/ToolPaint.py:167
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:165
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:151
+#: AppTools/ToolNCC.py:183 AppTools/ToolPaint.py:166
msgid "Forward"
msgstr "L'avant"
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:166
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:152
-#: flatcamTools/ToolNCC.py:184 flatcamTools/ToolPaint.py:168
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:166
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:152
+#: AppTools/ToolNCC.py:184 AppTools/ToolPaint.py:167
msgid "Reverse"
msgstr "Inverse"
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:266
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:266
msgid "Offset value"
msgstr "Valeur de Décalage"
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:268
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:268
msgid ""
"If used, it will add an offset to the copper features.\n"
"The copper clearing will finish to a distance\n"
@@ -13082,15 +11172,14 @@ msgstr ""
"des caractéristiques de cuivre.\n"
"La valeur peut être comprise entre 0 et 9999.9 unités FlatCAM."
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:288
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:244
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:245
-#: flatcamTools/ToolNCC.py:512 flatcamTools/ToolPaint.py:442
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:288
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:244
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:245
+#: AppTools/ToolNCC.py:512 AppTools/ToolPaint.py:441
msgid "Rest Machining"
msgstr "Usinage de Repos"
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:290
-#: flatcamTools/ToolNCC.py:516
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:290 AppTools/ToolNCC.py:516
msgid ""
"If checked, use 'rest machining'.\n"
"Basically it will clear copper outside PCB features,\n"
@@ -13108,8 +11197,7 @@ msgstr ""
"plus de cuivre à nettoyer ou il n'y a plus d'outils.\n"
"Si non coché, utilisez l'algorithme standard."
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:313
-#: flatcamTools/ToolNCC.py:541
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:313 AppTools/ToolNCC.py:541
msgid ""
"Selection of area to be processed.\n"
"- 'Itself' - the processing extent is based on the object that is "
@@ -13124,21 +11212,21 @@ msgstr ""
"de la zone à traiter.\n"
"- 'Objet de référence' - traitera la zone spécifiée par un autre objet."
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:339
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:339
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303
msgid "Normal"
msgstr "Ordinaire"
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:340
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:304
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:340
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:304
msgid "Progressive"
msgstr "Progressif"
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:341
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:341
msgid "NCC Plotting"
msgstr "Dessin de la NCC"
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:343
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:343
msgid ""
"- 'Normal' - normal plotting, done at the end of the NCC job\n"
"- 'Progressive' - after each shape is generated it will be plotted."
@@ -13146,16 +11234,16 @@ msgstr ""
"- 'Normal' - tracé normal, effectué à la fin du travail de la NCC\n"
"- 'Progressif' - après chaque forme générée, elle sera tracée."
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:27
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:27
msgid "Paint Tool Options"
msgstr "Options de l'Outil de Peinture"
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:33
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:33
msgid "Parameters:"
msgstr "Paramètres:"
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:247
-#: flatcamTools/ToolPaint.py:445
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:247
+#: AppTools/ToolPaint.py:444
msgid ""
"If checked, use 'rest machining'.\n"
"Basically it will clear copper outside PCB features,\n"
@@ -13175,8 +11263,8 @@ msgstr ""
"\n"
"Si non coché, utilisez l'algorithme standard."
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:260
-#: flatcamTools/ToolPaint.py:458
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:260
+#: AppTools/ToolPaint.py:457
msgid ""
"Selection of area to be processed.\n"
"- 'Polygon Selection' - left mouse click to add/remove polygons to be "
@@ -13198,17 +11286,23 @@ msgstr ""
"- «Tous les polygones» - le processus démarrera après le clic.\n"
"- «Objet de reference» - traitera la zone spécifiée par un autre objet."
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
-#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:942
-#: flatcamTools/ToolPaint.py:1432 tclCommands/TclCommandPaint.py:164
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
+#: AppTools/ToolPaint.py:485 AppTools/ToolPaint.py:941
+#: AppTools/ToolPaint.py:1431 tclCommands/TclCommandPaint.py:164
msgid "Polygon Selection"
msgstr "Sélection de polygone"
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:305
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
+#: AppTools/ToolPaint.py:485 AppTools/ToolPaint.py:1426 defaults.py:433
+#: tclCommands/TclCommandPaint.py:162
+msgid "All Polygons"
+msgstr "Tous les polygones"
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:305
msgid "Paint Plotting"
msgstr "Peinture dessin"
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:307
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:307
msgid ""
"- 'Normal' - normal plotting, done at the end of the Paint job\n"
"- 'Progressive' - after each shape is generated it will be plotted."
@@ -13216,11 +11310,11 @@ msgstr ""
"- 'Normal' - traçage normal, effectué à la fin du travail de peinture\n"
"- 'Progressif' - après chaque forme générée, elle sera tracée."
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:27
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:27
msgid "Panelize Tool Options"
msgstr "Options de l'Outil Panéliser"
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:33
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:33
msgid ""
"Create an object that contains an array of (x, y) elements,\n"
"each element is a copy of the source object spaced\n"
@@ -13230,13 +11324,13 @@ msgstr ""
"chaque élément est une copie de l'objet source espacé\n"
"à une distance X, Y distance les uns des autres."
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:50
-#: flatcamTools/ToolPanelize.py:163
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:50
+#: AppTools/ToolPanelize.py:165
msgid "Spacing cols"
msgstr "Colonnes d'espacement"
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:52
-#: flatcamTools/ToolPanelize.py:165
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:52
+#: AppTools/ToolPanelize.py:167
msgid ""
"Spacing between columns of the desired panel.\n"
"In current units."
@@ -13244,13 +11338,13 @@ msgstr ""
"Espacement entre les colonnes du panneau souhaité.\n"
"En unités actuelles."
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:64
-#: flatcamTools/ToolPanelize.py:175
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:64
+#: AppTools/ToolPanelize.py:177
msgid "Spacing rows"
msgstr "Lignes d'espacement"
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:66
-#: flatcamTools/ToolPanelize.py:177
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:66
+#: AppTools/ToolPanelize.py:179
msgid ""
"Spacing between rows of the desired panel.\n"
"In current units."
@@ -13258,37 +11352,37 @@ msgstr ""
"Espacement entre les lignes du panneau souhaité.\n"
"En unités actuelles."
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:77
-#: flatcamTools/ToolPanelize.py:186
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:77
+#: AppTools/ToolPanelize.py:188
msgid "Columns"
msgstr "Colonnes"
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:79
-#: flatcamTools/ToolPanelize.py:188
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:79
+#: AppTools/ToolPanelize.py:190
msgid "Number of columns of the desired panel"
msgstr "Nombre de colonnes du panneau désiré"
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:89
-#: flatcamTools/ToolPanelize.py:196
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:89
+#: AppTools/ToolPanelize.py:198
msgid "Rows"
msgstr "Lignes"
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:91
-#: flatcamTools/ToolPanelize.py:198
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:91
+#: AppTools/ToolPanelize.py:200
msgid "Number of rows of the desired panel"
msgstr "Nombre de lignes du panneau désiré"
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:98
-#: flatcamTools/ToolPanelize.py:205
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:98
+#: AppTools/ToolPanelize.py:211
msgid "Geo"
msgstr "Géo"
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:99
-#: flatcamTools/ToolPanelize.py:206
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:99
+#: AppTools/ToolPanelize.py:212
msgid "Panel Type"
msgstr "Type de Panneau"
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:101
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:101
msgid ""
"Choose the type of object for the panel object:\n"
"- Gerber\n"
@@ -13298,12 +11392,12 @@ msgstr ""
"- Gerber\n"
"- Géométrie"
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:110
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:110
msgid "Constrain within"
msgstr "Contraindre à l'intérieur"
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:112
-#: flatcamTools/ToolPanelize.py:218
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:112
+#: AppTools/ToolPanelize.py:224
msgid ""
"Area define by DX and DY within to constrain the panel.\n"
"DX and DY values are in current units.\n"
@@ -13317,13 +11411,13 @@ msgstr ""
"le panneau final aura autant de colonnes et de lignes que\n"
"ils correspondent parfaitement à la zone sélectionnée."
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:125
-#: flatcamTools/ToolPanelize.py:230
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:125
+#: AppTools/ToolPanelize.py:236
msgid "Width (DX)"
msgstr "Largeur (DX)"
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:127
-#: flatcamTools/ToolPanelize.py:232
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:127
+#: AppTools/ToolPanelize.py:238
msgid ""
"The width (DX) within which the panel must fit.\n"
"In current units."
@@ -13331,13 +11425,13 @@ msgstr ""
"La largeur (DX) dans laquelle le panneau doit tenir.\n"
"En unités actuelles."
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:138
-#: flatcamTools/ToolPanelize.py:241
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:138
+#: AppTools/ToolPanelize.py:247
msgid "Height (DY)"
msgstr "Hauteur (DY)"
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:140
-#: flatcamTools/ToolPanelize.py:243
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:140
+#: AppTools/ToolPanelize.py:249
msgid ""
"The height (DY)within which the panel must fit.\n"
"In current units."
@@ -13345,11 +11439,11 @@ msgstr ""
"La hauteur (DY) à laquelle le panneau doit s’adapter.\n"
"En unités actuelles."
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:27
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:27
msgid "SolderPaste Tool Options"
msgstr "Options de l'Outil Pâte à souder"
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:33
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:33
msgid ""
"A tool to create GCode for dispensing\n"
"solder paste onto a PCB."
@@ -13357,52 +11451,52 @@ msgstr ""
"Un outil pour créer le GCode pour la distribution\n"
"souder la pâte sur un PCB."
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:54
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:54
msgid "New Nozzle Dia"
-msgstr "Nouvelle Buse Dia"
+msgstr "Diam Nouvelle Buse"
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:56
-#: flatcamTools/ToolSolderPaste.py:107
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:56
+#: AppTools/ToolSolderPaste.py:107
msgid "Diameter for the new Nozzle tool to add in the Tool Table"
msgstr "Diamètre du nouvel outil Buse à ajouter dans le tableau des outils"
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:72
-#: flatcamTools/ToolSolderPaste.py:183
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:72
+#: AppTools/ToolSolderPaste.py:183
msgid "Z Dispense Start"
msgstr "Z début de la distribution"
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:74
-#: flatcamTools/ToolSolderPaste.py:185
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:74
+#: AppTools/ToolSolderPaste.py:185
msgid "The height (Z) when solder paste dispensing starts."
msgstr "La hauteur (Z) au début de la distribution de la pâte à braser."
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:85
-#: flatcamTools/ToolSolderPaste.py:195
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:85
+#: AppTools/ToolSolderPaste.py:195
msgid "Z Dispense"
msgstr "Z dispenser"
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:87
-#: flatcamTools/ToolSolderPaste.py:197
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:87
+#: AppTools/ToolSolderPaste.py:197
msgid "The height (Z) when doing solder paste dispensing."
msgstr "La hauteur (Z) lors de la distribution de la pâte à braser."
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:98
-#: flatcamTools/ToolSolderPaste.py:207
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:98
+#: AppTools/ToolSolderPaste.py:207
msgid "Z Dispense Stop"
msgstr "Z arrêt de distribution"
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:100
-#: flatcamTools/ToolSolderPaste.py:209
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:100
+#: AppTools/ToolSolderPaste.py:209
msgid "The height (Z) when solder paste dispensing stops."
msgstr "La hauteur (Z) lorsque la distribution de la pâte à braser s’arrête."
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:111
-#: flatcamTools/ToolSolderPaste.py:219
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:111
+#: AppTools/ToolSolderPaste.py:219
msgid "Z Travel"
msgstr "Z Voyage"
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:113
-#: flatcamTools/ToolSolderPaste.py:221
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:113
+#: AppTools/ToolSolderPaste.py:221
msgid ""
"The height (Z) for travel between pads\n"
"(without dispensing solder paste)."
@@ -13410,18 +11504,18 @@ msgstr ""
"La hauteur (Z) pour le déplacement entre les patins\n"
"(sans distribution de pâte à braser)."
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:125
-#: flatcamTools/ToolSolderPaste.py:232
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:125
+#: AppTools/ToolSolderPaste.py:232
msgid "Z Toolchange"
msgstr "Changement d'outil Z"
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:127
-#: flatcamTools/ToolSolderPaste.py:234
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:127
+#: AppTools/ToolSolderPaste.py:234
msgid "The height (Z) for tool (nozzle) change."
msgstr "La hauteur (Z) de l'outil (buse) change."
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:136
-#: flatcamTools/ToolSolderPaste.py:242
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:136
+#: AppTools/ToolSolderPaste.py:242
msgid ""
"The X,Y location for tool (nozzle) change.\n"
"The format is (x, y) where x and y are real numbers."
@@ -13429,13 +11523,13 @@ msgstr ""
"L'emplacement X, Y de l'outil (buse) change.\n"
"Le format est (x, y) où x et y sont des nombres réels."
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:150
-#: flatcamTools/ToolSolderPaste.py:255
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:150
+#: AppTools/ToolSolderPaste.py:255
msgid "Feedrate (speed) while moving on the X-Y plane."
msgstr "Avance (vitesse) en se déplaçant sur le plan X-Y."
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:163
-#: flatcamTools/ToolSolderPaste.py:267
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:163
+#: AppTools/ToolSolderPaste.py:267
msgid ""
"Feedrate (speed) while moving vertically\n"
"(on Z plane)."
@@ -13443,12 +11537,12 @@ msgstr ""
"Avance (vitesse) en se déplaçant verticalement\n"
"(sur le plan Z)."
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:175
-#: flatcamTools/ToolSolderPaste.py:278
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:175
+#: AppTools/ToolSolderPaste.py:278
msgid "Feedrate Z Dispense"
msgstr "Avance Z Distribution"
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:177
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:177
msgid ""
"Feedrate (speed) while moving up vertically\n"
"to Dispense position (on Z plane)."
@@ -13456,13 +11550,13 @@ msgstr ""
"Avance (vitesse) en montant verticalement\n"
"position de distribution (sur le plan Z)."
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:188
-#: flatcamTools/ToolSolderPaste.py:290
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:188
+#: AppTools/ToolSolderPaste.py:290
msgid "Spindle Speed FWD"
msgstr "Vitesse de Rot FWD"
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:190
-#: flatcamTools/ToolSolderPaste.py:292
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:190
+#: AppTools/ToolSolderPaste.py:292
msgid ""
"The dispenser speed while pushing solder paste\n"
"through the dispenser nozzle."
@@ -13470,23 +11564,23 @@ msgstr ""
"La vitesse du distributeur en poussant la pâte à souder\n"
"à travers la buse du distributeur."
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:202
-#: flatcamTools/ToolSolderPaste.py:303
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:202
+#: AppTools/ToolSolderPaste.py:303
msgid "Dwell FWD"
msgstr "Habiter AVANT"
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:204
-#: flatcamTools/ToolSolderPaste.py:305
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:204
+#: AppTools/ToolSolderPaste.py:305
msgid "Pause after solder dispensing."
msgstr "Pause après la distribution de la brasure."
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:214
-#: flatcamTools/ToolSolderPaste.py:314
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:214
+#: AppTools/ToolSolderPaste.py:314
msgid "Spindle Speed REV"
msgstr "Vitesse du moteur en REV"
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:216
-#: flatcamTools/ToolSolderPaste.py:316
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:216
+#: AppTools/ToolSolderPaste.py:316
msgid ""
"The dispenser speed while retracting solder paste\n"
"through the dispenser nozzle."
@@ -13494,13 +11588,13 @@ msgstr ""
"La vitesse du distributeur lors du retrait de la pâte à souder\n"
"à travers la buse du distributeur."
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:228
-#: flatcamTools/ToolSolderPaste.py:327
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:228
+#: AppTools/ToolSolderPaste.py:327
msgid "Dwell REV"
msgstr "Habiter INVERSE"
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:230
-#: flatcamTools/ToolSolderPaste.py:329
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:230
+#: AppTools/ToolSolderPaste.py:329
msgid ""
"Pause after solder paste dispenser retracted,\n"
"to allow pressure equilibrium."
@@ -13508,40 +11602,39 @@ msgstr ""
"Pause après rétraction du distributeur de pâte à souder,\n"
"permettre l'équilibre de la pression."
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:239
-#: flatcamTools/ToolSolderPaste.py:337
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:239
+#: AppTools/ToolSolderPaste.py:337
msgid "Files that control the GCode generation."
msgstr "Fichiers qui contrôlent la génération de GCode."
-#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:27
+#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:27
msgid "Substractor Tool Options"
msgstr "Options de l'Outil Soustracteur"
-#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:33
+#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:33
msgid ""
"A tool to substract one Gerber or Geometry object\n"
"from another of the same type."
msgstr ""
-"Un outil pour soustraire un objet Gerber ou Geometry\n"
+"Un outil pour soustraire un objet Gerber ou Géométrie\n"
"d'un autre du même type."
-#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:38
-#: flatcamTools/ToolSub.py:155
+#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:38 AppTools/ToolSub.py:155
msgid "Close paths"
msgstr "Fermer les chemins"
-#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:39
+#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:39
msgid ""
"Checking this will close the paths cut by the Geometry substractor object."
msgstr ""
"En cochant cette case, vous fermez les chemins coupés par l'objet "
"soustracteur de géométrie."
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:27
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:27
msgid "Transform Tool Options"
msgstr "Options de l'Outil de Transformation"
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:33
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:33
msgid ""
"Various transformations that can be applied\n"
"on a FlatCAM object."
@@ -13549,22 +11642,22 @@ msgstr ""
"Diverses transformations pouvant être appliquées\n"
"sur un objet FlatCAM."
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:64
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:64
msgid "Skew"
-msgstr "Fausser"
+msgstr "Inclinaison"
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:105
-#: flatcamTools/ToolTransform.py:150
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:105
+#: AppTools/ToolTransform.py:150
msgid "Factor for scaling on X axis."
msgstr "Facteur de mise à l'échelle sur l'axe X."
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:118
-#: flatcamTools/ToolTransform.py:170
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:118
+#: AppTools/ToolTransform.py:170
msgid "Factor for scaling on Y axis."
msgstr "Facteur de mise à l'échelle sur l'axe Y."
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:126
-#: flatcamTools/ToolTransform.py:191
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:126
+#: AppTools/ToolTransform.py:191
msgid ""
"Scale the selected object(s)\n"
"using the Scale_X factor for both axis."
@@ -13572,8 +11665,8 @@ msgstr ""
"Mettre à l'échelle le ou les objets sélectionnés\n"
"en utilisant le facteur d'échelle X pour les deux axes."
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:134
-#: flatcamTools/ToolTransform.py:198
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:134
+#: AppTools/ToolTransform.py:198
msgid ""
"Scale the selected object(s)\n"
"using the origin reference when checked,\n"
@@ -13585,39 +11678,39 @@ msgstr ""
"et le centre de la plus grande boîte englobante\n"
"des objets sélectionnés lorsqu'il est décoché."
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:150
-#: flatcamTools/ToolTransform.py:217
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:150
+#: AppTools/ToolTransform.py:217
msgid "X val"
msgstr "Valeur X"
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:152
-#: flatcamTools/ToolTransform.py:219
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:152
+#: AppTools/ToolTransform.py:219
msgid "Distance to offset on X axis. In current units."
msgstr "Distance à compenser sur l'axe X. En unités actuelles."
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:163
-#: flatcamTools/ToolTransform.py:237
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:163
+#: AppTools/ToolTransform.py:237
msgid "Y val"
msgstr "Valeur Y"
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:165
-#: flatcamTools/ToolTransform.py:239
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:165
+#: AppTools/ToolTransform.py:239
msgid "Distance to offset on Y axis. In current units."
msgstr "Distance à compenser sur l'axe X. En unités actuelles."
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:171
-#: flatcamTools/ToolDblSided.py:67 flatcamTools/ToolDblSided.py:95
-#: flatcamTools/ToolDblSided.py:125
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:171
+#: AppTools/ToolDblSided.py:67 AppTools/ToolDblSided.py:95
+#: AppTools/ToolDblSided.py:125
msgid "Mirror"
msgstr "Miroir"
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:175
-#: flatcamTools/ToolTransform.py:283
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:175
+#: AppTools/ToolTransform.py:283
msgid "Mirror Reference"
msgstr "Référence du miroir"
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:177
-#: flatcamTools/ToolTransform.py:285
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:177
+#: AppTools/ToolTransform.py:285
msgid ""
"Flip the selected object(s)\n"
"around the point in Point Entry Field.\n"
@@ -13639,11 +11732,11 @@ msgstr ""
"Ou entrez les coordonnées au format (x, y) dans le champ\n"
"Pointez sur le champ Entrée et cliquez sur Basculer sur X (Y)."
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:188
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:188
msgid "Mirror Reference point"
msgstr "Miroir Point de référence"
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:190
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:190
msgid ""
"Coordinates in format (x, y) used as reference for mirroring.\n"
"The 'x' in (x, y) will be used when using Flip on X and\n"
@@ -13654,14 +11747,14 @@ msgstr ""
"Le \"x\" dans (x, y) sera utilisé lors de l'utilisation de Flip sur X et\n"
"le 'y' dans (x, y) sera utilisé lors de l'utilisation de Flip sur Y et"
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:203
-#: flatcamTools/ToolDistance.py:496 flatcamTools/ToolDistanceMin.py:287
-#: flatcamTools/ToolTransform.py:332
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:203
+#: AppTools/ToolDistance.py:505 AppTools/ToolDistanceMin.py:286
+#: AppTools/ToolTransform.py:332
msgid "Distance"
msgstr "Distance"
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:205
-#: flatcamTools/ToolTransform.py:334
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:205
+#: AppTools/ToolTransform.py:334
msgid ""
"A positive value will create the effect of dilation,\n"
"while a negative value will create the effect of erosion.\n"
@@ -13673,8 +11766,8 @@ msgstr ""
"Chaque élément de géométrie de l'objet sera augmenté\n"
"ou diminué avec la «distance»."
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:222
-#: flatcamTools/ToolTransform.py:359
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:222
+#: AppTools/ToolTransform.py:359
msgid ""
"A positive value will create the effect of dilation,\n"
"while a negative value will create the effect of erosion.\n"
@@ -13688,8 +11781,8 @@ msgstr ""
"ou diminué pour correspondre à la «valeur». La valeur est un pourcentage\n"
"de la dimension initiale."
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:241
-#: flatcamTools/ToolTransform.py:385
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:241
+#: AppTools/ToolTransform.py:385
msgid ""
"If checked then the buffer will surround the buffered shape,\n"
"every corner will be rounded.\n"
@@ -13701,37 +11794,30 @@ msgstr ""
"S'il n'est pas coché, le tampon suivra la géométrie exacte\n"
"de la forme tamponnée."
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:27
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:27
msgid "Autocompleter Keywords"
msgstr "Mots-clés d'auto-complétion"
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:30
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:40
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:30
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:30
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:30
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:40
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:30
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:30
msgid "Restore"
msgstr "Restaurer"
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:31
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:31
msgid "Restore the autocompleter keywords list to the default state."
msgstr "Restaurez la liste de mots-clés d'auto-complétion à l'état par défaut."
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:32
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:42
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:32
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:32
-msgid "Delete All"
-msgstr "Supprimer tout"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:33
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:33
msgid "Delete all autocompleter keywords from the list."
msgstr "Supprimer tous les mots clés autocompleter de la liste."
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:41
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:41
msgid "Keywords list"
msgstr "Liste des mots clés"
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:43
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:43
msgid ""
"List of keywords used by\n"
"the autocompleter in FlatCAM.\n"
@@ -13743,58 +11829,58 @@ msgstr ""
"L'auto-compléteur est installé\n"
"dans l'éditeur de code et pour le shell Tcl."
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:64
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:73
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:63
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:62
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:64
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:73
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:63
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:62
msgid "Extension"
msgstr "Extension"
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:65
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:65
msgid "A keyword to be added or deleted to the list."
msgstr "Un mot clé à ajouter ou à supprimer à la liste."
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:73
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:73
msgid "Add keyword"
msgstr "Ajouter un mot clé"
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:74
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:74
msgid "Add a keyword to the list"
msgstr "Ajouter un mot clé à la liste"
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:75
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:75
msgid "Delete keyword"
msgstr "Supprimer le mot clé"
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:76
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:76
msgid "Delete a keyword from the list"
msgstr "Supprimer un mot clé de la liste"
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:27
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:27
msgid "Excellon File associations"
msgstr "Associations de fichiers Excellon"
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:41
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:31
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:31
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:41
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:31
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:31
msgid "Restore the extension list to the default state."
msgstr "Restaurez la liste des extensions à l'état par défaut."
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:43
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:33
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:33
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:43
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:33
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:33
msgid "Delete all extensions from the list."
msgstr "Supprimer toutes les extensions de la liste."
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:51
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:41
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:41
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:51
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:41
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:41
msgid "Extensions list"
msgstr "Liste d'extensions"
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:53
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:43
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:43
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:53
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:43
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:43
msgid ""
"List of file extensions to be\n"
"associated with FlatCAM."
@@ -13802,45 +11888,45 @@ msgstr ""
"Liste des extensions de fichier à être\n"
"associé à FlatCAM."
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:74
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:64
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:63
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:74
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:64
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:63
msgid "A file extension to be added or deleted to the list."
msgstr "Une extension de fichier à ajouter ou à supprimer à la liste."
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:82
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:72
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:71
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:82
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:72
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:71
msgid "Add Extension"
msgstr "Ajouter une extension"
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:83
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:73
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:72
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:83
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:73
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:72
msgid "Add a file extension to the list"
msgstr "Ajouter une extension de fichier à la liste"
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:84
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:74
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:73
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:84
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:74
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:73
msgid "Delete Extension"
msgstr "Supprimer l'extension"
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:85
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:75
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:74
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:85
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:75
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:74
msgid "Delete a file extension from the list"
msgstr "Supprimer une extension de fichier de la liste"
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:92
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:82
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:81
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:92
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:82
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:81
msgid "Apply Association"
msgstr "Appliquer l'association"
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:93
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:83
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:82
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:93
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:83
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:82
msgid ""
"Apply the file associations between\n"
"FlatCAM and the files with above extensions.\n"
@@ -13852,203 +11938,255 @@ msgstr ""
"Ils seront actifs après la prochaine ouverture de session.\n"
"Cela ne fonctionne que sous Windows."
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:27
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:27
msgid "GCode File associations"
msgstr "Associations de fichiers GCode"
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:27
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:27
msgid "Gerber File associations"
msgstr "Associations de fichiers Gerber"
-#: flatcamObjects/FlatCAMCNCJob.py:429 flatcamObjects/FlatCAMDocument.py:71
-#: flatcamObjects/FlatCAMScript.py:82
+#: AppObjects/AppObject.py:134
+#, python-brace-format
+msgid ""
+"Object ({kind}) failed because: {error} \n"
+"\n"
+msgstr "L'objet ({kind}) a échoué car: {error}\n"
+
+#: AppObjects/AppObject.py:149
+msgid "Converting units to "
+msgstr "Conversion de l'unités en "
+
+#: AppObjects/AppObject.py:254
+msgid "CREATE A NEW FLATCAM TCL SCRIPT"
+msgstr "CRÉER UN NOUVEAU SCRIPT FLATCAM TCL"
+
+#: AppObjects/AppObject.py:255
+msgid "TCL Tutorial is here"
+msgstr "Le didacticiel TCL est ici"
+
+#: AppObjects/AppObject.py:257
+msgid "FlatCAM commands list"
+msgstr "Liste des commandes FlatCAM"
+
+#: AppObjects/AppObject.py:258
+msgid ""
+"Type >help< followed by Run Code for a list of FlatCAM Tcl Commands "
+"(displayed in Tcl Shell)."
+msgstr ""
+"Tapez >help< suivi du Run Code pour lister les commandes FlatCAM Tcl "
+"(affichées dans Tcl Shell)."
+
+#: AppObjects/AppObject.py:304 AppObjects/AppObject.py:310
+#: AppObjects/AppObject.py:316 AppObjects/AppObject.py:322
+#: AppObjects/AppObject.py:328 AppObjects/AppObject.py:334
+msgid "created/selected"
+msgstr "créé/sélectionné"
+
+#: AppObjects/AppObject.py:349 AppObjects/FlatCAMObj.py:246
+#: AppObjects/FlatCAMObj.py:277 AppObjects/FlatCAMObj.py:293
+#: AppObjects/FlatCAMObj.py:373 AppTools/ToolCopperThieving.py:1487
+#: AppTools/ToolCorners.py:394 AppTools/ToolFiducials.py:810
+#: AppTools/ToolMove.py:229 AppTools/ToolQRCode.py:728 App_Main.py:4369
+msgid "Plotting"
+msgstr "Traçage"
+
+#: AppObjects/FlatCAMCNCJob.py:429 AppObjects/FlatCAMDocument.py:71
+#: AppObjects/FlatCAMScript.py:82
msgid "Basic"
msgstr "De base"
-#: flatcamObjects/FlatCAMCNCJob.py:435 flatcamObjects/FlatCAMDocument.py:75
-#: flatcamObjects/FlatCAMScript.py:86
+#: AppObjects/FlatCAMCNCJob.py:435 AppObjects/FlatCAMDocument.py:75
+#: AppObjects/FlatCAMScript.py:86
msgid "Advanced"
msgstr "Avancé"
-#: flatcamObjects/FlatCAMCNCJob.py:478
+#: AppObjects/FlatCAMCNCJob.py:478
msgid "Plotting..."
msgstr "Traçage..."
-#: flatcamObjects/FlatCAMCNCJob.py:507 flatcamObjects/FlatCAMCNCJob.py:512
-#: flatcamTools/ToolSolderPaste.py:1499
+#: AppObjects/FlatCAMCNCJob.py:507 AppObjects/FlatCAMCNCJob.py:512
+#: AppTools/ToolSolderPaste.py:1499
msgid "Export Machine Code ..."
msgstr "Exporter le code machine ..."
-#: flatcamObjects/FlatCAMCNCJob.py:517 flatcamTools/ToolSolderPaste.py:1503
+#: AppObjects/FlatCAMCNCJob.py:517 AppTools/ToolSolderPaste.py:1503
msgid "Export Machine Code cancelled ..."
msgstr "Exporter le code machine annulé ..."
-#: flatcamObjects/FlatCAMCNCJob.py:538
+#: AppObjects/FlatCAMCNCJob.py:538
msgid "Machine Code file saved to"
msgstr "Fichier de code machine enregistré dans"
-#: flatcamObjects/FlatCAMCNCJob.py:599 flatcamTools/ToolCalibration.py:1097
+#: AppObjects/FlatCAMCNCJob.py:548 AppObjects/FlatCAMScript.py:134
+#: App_Main.py:7205
+msgid "Loading..."
+msgstr "Chargement..."
+
+#: AppObjects/FlatCAMCNCJob.py:562 App_Main.py:7302
+msgid "Code Editor"
+msgstr "Éditeur de code"
+
+#: AppObjects/FlatCAMCNCJob.py:599 AppTools/ToolCalibration.py:1097
msgid "Loaded Machine Code into Code Editor"
msgstr "Code machine chargé dans l'éditeur de code"
-#: flatcamObjects/FlatCAMCNCJob.py:740
+#: AppObjects/FlatCAMCNCJob.py:740
msgid "This CNCJob object can't be processed because it is a"
msgstr "Cet objet CNCJob ne peut pas être traité car il est"
-#: flatcamObjects/FlatCAMCNCJob.py:742
+#: AppObjects/FlatCAMCNCJob.py:742
msgid "CNCJob object"
msgstr "Objet CNCJob"
-#: flatcamObjects/FlatCAMCNCJob.py:922
+#: AppObjects/FlatCAMCNCJob.py:922
msgid ""
"G-code does not have a G94 code and we will not include the code in the "
"'Prepend to GCode' text box"
msgstr ""
-"Le code G n'a pas de code G94 et nous n'inclurons pas le code dans la zone "
-"de texte 'Prepend to GCode'"
+"G-code does not have a G94 code and we will not include the code in the "
+"'Prepend to GCode' text box"
-#: flatcamObjects/FlatCAMCNCJob.py:933
+#: AppObjects/FlatCAMCNCJob.py:933
msgid "Cancelled. The Toolchange Custom code is enabled but it's empty."
msgstr "Annulé. Le code personnalisé Toolchange est activé mais vide."
-#: flatcamObjects/FlatCAMCNCJob.py:938
+#: AppObjects/FlatCAMCNCJob.py:938
msgid "Toolchange G-code was replaced by a custom code."
msgstr "Toolchange G-code a été remplacé par un code personnalisé."
-#: flatcamObjects/FlatCAMCNCJob.py:986 flatcamObjects/FlatCAMCNCJob.py:996
+#: AppObjects/FlatCAMCNCJob.py:986 AppObjects/FlatCAMCNCJob.py:996
msgid ""
"The used preprocessor file has to have in it's name: 'toolchange_custom'"
msgstr ""
"Le fichier de post-traitement utilisé doit avoir pour nom: "
"'toolchange_custom'"
-#: flatcamObjects/FlatCAMCNCJob.py:999
+#: AppObjects/FlatCAMCNCJob.py:999
msgid "There is no preprocessor file."
msgstr "Il n'y a pas de fichier de post-processeur."
-#: flatcamObjects/FlatCAMDocument.py:175
+#: AppObjects/FlatCAMDocument.py:175
msgid "Document Editor"
msgstr "Éditeur de Document"
-#: flatcamObjects/FlatCAMExcellon.py:514 flatcamObjects/FlatCAMExcellon.py:746
-#: flatcamObjects/FlatCAMGeometry.py:323 flatcamObjects/FlatCAMGeometry.py:795
-#: flatcamTools/ToolNCC.py:811 flatcamTools/ToolNCC.py:1196
-#: flatcamTools/ToolPaint.py:779 flatcamTools/ToolPaint.py:1171
+#: AppObjects/FlatCAMExcellon.py:527 AppObjects/FlatCAMExcellon.py:825
+#: AppObjects/FlatCAMGeometry.py:322 AppObjects/FlatCAMGeometry.py:852
+#: AppTools/ToolNCC.py:811 AppTools/ToolNCC.py:1196 AppTools/ToolPaint.py:778
+#: AppTools/ToolPaint.py:1170
msgid "Multiple Tools"
msgstr "Outils multiples"
-#: flatcamObjects/FlatCAMExcellon.py:726
+#: AppObjects/FlatCAMExcellon.py:805
msgid "No Tool Selected"
msgstr "Aucun Outil sélectionné"
-#: flatcamObjects/FlatCAMExcellon.py:1076
-#: flatcamObjects/FlatCAMExcellon.py:1168
-#: flatcamObjects/FlatCAMExcellon.py:1355
+#: AppObjects/FlatCAMExcellon.py:1155 AppObjects/FlatCAMExcellon.py:1248
+#: AppObjects/FlatCAMExcellon.py:1435
msgid "Please select one or more tools from the list and try again."
msgstr ""
"Veuillez sélectionner un ou plusieurs outils dans la liste et réessayer."
-#: flatcamObjects/FlatCAMExcellon.py:1083
+#: AppObjects/FlatCAMExcellon.py:1162
msgid "Milling tool for DRILLS is larger than hole size. Cancelled."
msgstr ""
"L'outil de fraisage pour PERÇAGES est supérieur à la taille du trou. Annulé."
-#: flatcamObjects/FlatCAMExcellon.py:1098
-#: flatcamObjects/FlatCAMExcellon.py:1188
-#: flatcamObjects/FlatCAMExcellon.py:1373
-#: tclCommands/TclCommandDrillcncjob.py:193
+#: AppObjects/FlatCAMExcellon.py:1177 AppObjects/FlatCAMExcellon.py:1268
+#: AppObjects/FlatCAMExcellon.py:1453 tclCommands/TclCommandDrillcncjob.py:195
msgid "Tool_nr"
msgstr "Numéro d'outil"
-#: flatcamObjects/FlatCAMExcellon.py:1098
-#: flatcamObjects/FlatCAMExcellon.py:1188
-#: flatcamObjects/FlatCAMExcellon.py:1373
-#: tclCommands/TclCommandDrillcncjob.py:193
+#: AppObjects/FlatCAMExcellon.py:1177 AppObjects/FlatCAMExcellon.py:1268
+#: AppObjects/FlatCAMExcellon.py:1453 tclCommands/TclCommandDrillcncjob.py:195
msgid "Drills_Nr"
msgstr "Forets Nr"
-#: flatcamObjects/FlatCAMExcellon.py:1098
-#: flatcamObjects/FlatCAMExcellon.py:1188
-#: flatcamObjects/FlatCAMExcellon.py:1373
-#: tclCommands/TclCommandDrillcncjob.py:193
+#: AppObjects/FlatCAMExcellon.py:1177 AppObjects/FlatCAMExcellon.py:1268
+#: AppObjects/FlatCAMExcellon.py:1453 tclCommands/TclCommandDrillcncjob.py:195
msgid "Slots_Nr"
msgstr "Fentes Nr"
-#: flatcamObjects/FlatCAMExcellon.py:1177
+#: AppObjects/FlatCAMExcellon.py:1257
msgid "Milling tool for SLOTS is larger than hole size. Cancelled."
msgstr ""
"L'outil de fraisage pour FENTES est supérieur à la taille du trou. Annulé."
-#: flatcamObjects/FlatCAMExcellon.py:1281
-#: flatcamObjects/FlatCAMGeometry.py:1571
+#: AppObjects/FlatCAMExcellon.py:1361 AppObjects/FlatCAMGeometry.py:1625
msgid "Focus Z"
msgstr "Focus Z"
-#: flatcamObjects/FlatCAMExcellon.py:1300
-#: flatcamObjects/FlatCAMGeometry.py:1590
+#: AppObjects/FlatCAMExcellon.py:1380 AppObjects/FlatCAMGeometry.py:1644
msgid "Laser Power"
msgstr "Puissance laser"
-#: flatcamObjects/FlatCAMExcellon.py:1430
-#: flatcamObjects/FlatCAMGeometry.py:2027
-#: flatcamObjects/FlatCAMGeometry.py:2031
-#: flatcamObjects/FlatCAMGeometry.py:2176
+#: AppObjects/FlatCAMExcellon.py:1510 AppObjects/FlatCAMGeometry.py:2077
+#: AppObjects/FlatCAMGeometry.py:2081 AppObjects/FlatCAMGeometry.py:2232
msgid "Generating CNC Code"
msgstr "Génération de code CNC"
-#: flatcamObjects/FlatCAMExcellon.py:1620 flatcamTools/ToolNCC.py:918
-#: flatcamTools/ToolPaint.py:844
+#: AppObjects/FlatCAMExcellon.py:1563 AppObjects/FlatCAMGeometry.py:2542
+#, fuzzy
+#| msgid "Delete failed. Select a tool to delete."
+msgid "Delete failed. There are no exclusion areas to delete."
+msgstr "La suppression a échoué. Sélectionnez un outil à supprimer."
+
+#: AppObjects/FlatCAMExcellon.py:1580 AppObjects/FlatCAMGeometry.py:2559
+#, fuzzy
+#| msgid "Failed. Nothing selected."
+msgid "Delete failed. Nothing is selected."
+msgstr "Échoué. Rien de sélectionné."
+
+#: AppObjects/FlatCAMExcellon.py:1804 AppTools/ToolNCC.py:918
+#: AppTools/ToolPaint.py:843
msgid "Current Tool parameters were applied to all tools."
msgstr "Les paramètres d'outil actuels ont été appliqués à tous les outils."
-#: flatcamObjects/FlatCAMGeometry.py:124 flatcamObjects/FlatCAMGeometry.py:1235
-#: flatcamObjects/FlatCAMGeometry.py:1236
-#: flatcamObjects/FlatCAMGeometry.py:1245
+#: AppObjects/FlatCAMGeometry.py:123 AppObjects/FlatCAMGeometry.py:1289
+#: AppObjects/FlatCAMGeometry.py:1290 AppObjects/FlatCAMGeometry.py:1299
msgid "Iso"
msgstr "Iso"
-#: flatcamObjects/FlatCAMGeometry.py:124 flatcamObjects/FlatCAMGeometry.py:464
-#: flatcamObjects/FlatCAMGeometry.py:854 flatcamObjects/FlatCAMGerber.py:891
-#: flatcamObjects/FlatCAMGerber.py:1039 flatcamTools/ToolCutOut.py:690
-#: flatcamTools/ToolCutOut.py:886 flatcamTools/ToolCutOut.py:1046
+#: AppObjects/FlatCAMGeometry.py:123 AppObjects/FlatCAMGeometry.py:515
+#: AppObjects/FlatCAMGeometry.py:911 AppObjects/FlatCAMGerber.py:891
+#: AppObjects/FlatCAMGerber.py:1039 AppTools/ToolCutOut.py:690
+#: AppTools/ToolCutOut.py:886 AppTools/ToolCutOut.py:1046
msgid "Rough"
msgstr "Rugueux"
-#: flatcamObjects/FlatCAMGeometry.py:124
+#: AppObjects/FlatCAMGeometry.py:123
msgid "Finish"
msgstr "Finition"
-#: flatcamObjects/FlatCAMGeometry.py:499
+#: AppObjects/FlatCAMGeometry.py:550
msgid "Add from Tool DB"
msgstr "Ajouter à partir de la BD d'outils"
-#: flatcamObjects/FlatCAMGeometry.py:873
+#: AppObjects/FlatCAMGeometry.py:930
msgid "Tool added in Tool Table."
msgstr "Outil ajouté dans la table d'outils."
-#: flatcamObjects/FlatCAMGeometry.py:982 flatcamObjects/FlatCAMGeometry.py:991
+#: AppObjects/FlatCAMGeometry.py:1039 AppObjects/FlatCAMGeometry.py:1048
msgid "Failed. Select a tool to copy."
msgstr "Échoué. Sélectionnez un outil à copier."
-#: flatcamObjects/FlatCAMGeometry.py:1020
+#: AppObjects/FlatCAMGeometry.py:1077
msgid "Tool was copied in Tool Table."
msgstr "L'outil a été copié dans la table d'outils."
-#: flatcamObjects/FlatCAMGeometry.py:1047
+#: AppObjects/FlatCAMGeometry.py:1104
msgid "Tool was edited in Tool Table."
msgstr "L'outil a été édité dans Tool Table."
-#: flatcamObjects/FlatCAMGeometry.py:1076
-#: flatcamObjects/FlatCAMGeometry.py:1085
+#: AppObjects/FlatCAMGeometry.py:1133 AppObjects/FlatCAMGeometry.py:1142
msgid "Failed. Select a tool to delete."
msgstr "Échoué. Sélectionnez un outil à supprimer."
-#: flatcamObjects/FlatCAMGeometry.py:1109
+#: AppObjects/FlatCAMGeometry.py:1166
msgid "Tool was deleted in Tool Table."
msgstr "L'outil a été supprimé dans la table d'outils."
-#: flatcamObjects/FlatCAMGeometry.py:1146
-#: flatcamObjects/FlatCAMGeometry.py:1156
+#: AppObjects/FlatCAMGeometry.py:1203 AppObjects/FlatCAMGeometry.py:1212
msgid ""
"Disabled because the tool is V-shape.\n"
"For V-shape tools the depth of cut is\n"
@@ -14062,24 +12200,23 @@ msgstr ""
"Pour les outils en forme de V, la profondeur de coupe est\n"
"calculé à partir d'autres paramètres comme:\n"
"- 'Angle V-tip' -> angle à la pointe de l'outil\n"
-"- 'V-tip Dia' -> diamètre à la pointe de l'outil\n"
-"- Outil Dia -> colonne 'Dia' trouvée dans le tableau d'outils\n"
-"NB: une valeur nulle signifie que Tool Dia = 'V-tip Dia'"
+"- 'V-tip Diam' -> diamètre à la pointe de l'outil\n"
+"- Outil Diam -> colonne 'Diam' trouvée dans le tableau d'outils\n"
+"NB: une valeur nulle signifie que Outil Diam = 'V-tip Diam'"
-#: flatcamObjects/FlatCAMGeometry.py:1643
+#: AppObjects/FlatCAMGeometry.py:1697
msgid "This Geometry can't be processed because it is"
msgstr "Cette géométrie ne peut pas être traitée car elle est"
-#: flatcamObjects/FlatCAMGeometry.py:1643
+#: AppObjects/FlatCAMGeometry.py:1697
msgid "geometry"
-msgstr "geometry"
+msgstr "Géométrie"
-#: flatcamObjects/FlatCAMGeometry.py:1684
+#: AppObjects/FlatCAMGeometry.py:1738
msgid "Failed. No tool selected in the tool table ..."
msgstr "Échoué. Aucun outil sélectionné dans la table d'outils ..."
-#: flatcamObjects/FlatCAMGeometry.py:1786
-#: flatcamObjects/FlatCAMGeometry.py:1936
+#: AppObjects/FlatCAMGeometry.py:1836 AppObjects/FlatCAMGeometry.py:1986
msgid ""
"Tool Offset is selected in Tool Table but no value is provided.\n"
"Add a Tool Offset or change the Offset Type."
@@ -14088,51 +12225,45 @@ msgstr ""
"n’est fournie.\n"
"Ajoutez un décalage d'outil ou changez le type de décalage."
-#: flatcamObjects/FlatCAMGeometry.py:1852
-#: flatcamObjects/FlatCAMGeometry.py:1998
+#: AppObjects/FlatCAMGeometry.py:1902 AppObjects/FlatCAMGeometry.py:2048
msgid "G-Code parsing in progress..."
-msgstr "Analyse du code G en cours ..."
+msgstr "Analyse du GCcode en cours ..."
-#: flatcamObjects/FlatCAMGeometry.py:1854
-#: flatcamObjects/FlatCAMGeometry.py:2000
+#: AppObjects/FlatCAMGeometry.py:1904 AppObjects/FlatCAMGeometry.py:2050
msgid "G-Code parsing finished..."
-msgstr "L'analyse du code G est terminée ..."
+msgstr "L'analyse du GCcode est terminée ..."
-#: flatcamObjects/FlatCAMGeometry.py:1862
+#: AppObjects/FlatCAMGeometry.py:1912
msgid "Finished G-Code processing"
-msgstr "Traitement du code G terminé"
+msgstr "Traitement du GCode terminé"
-#: flatcamObjects/FlatCAMGeometry.py:1864
-#: flatcamObjects/FlatCAMGeometry.py:2012
+#: AppObjects/FlatCAMGeometry.py:1914 AppObjects/FlatCAMGeometry.py:2062
msgid "G-Code processing failed with error"
-msgstr "Le traitement du code G a échoué avec une erreur"
+msgstr "Le traitement du GCode a échoué avec une erreur"
-#: flatcamObjects/FlatCAMGeometry.py:1906 flatcamTools/ToolSolderPaste.py:1301
+#: AppObjects/FlatCAMGeometry.py:1956 AppTools/ToolSolderPaste.py:1301
msgid "Cancelled. Empty file, it has no geometry"
msgstr "Annulé. Fichier vide, il n'a pas de géométrie"
-#: flatcamObjects/FlatCAMGeometry.py:2010
-#: flatcamObjects/FlatCAMGeometry.py:2171
+#: AppObjects/FlatCAMGeometry.py:2060 AppObjects/FlatCAMGeometry.py:2227
msgid "Finished G-Code processing..."
-msgstr "Traitement terminé du code G ..."
+msgstr "Traitement terminé du GCode ..."
-#: flatcamObjects/FlatCAMGeometry.py:2029
-#: flatcamObjects/FlatCAMGeometry.py:2033
-#: flatcamObjects/FlatCAMGeometry.py:2178
+#: AppObjects/FlatCAMGeometry.py:2079 AppObjects/FlatCAMGeometry.py:2083
+#: AppObjects/FlatCAMGeometry.py:2234
msgid "CNCjob created"
msgstr "CNCjob créé"
-#: flatcamObjects/FlatCAMGeometry.py:2209
-#: flatcamObjects/FlatCAMGeometry.py:2218 flatcamParsers/ParseGerber.py:1867
-#: flatcamParsers/ParseGerber.py:1877
+#: AppObjects/FlatCAMGeometry.py:2265 AppObjects/FlatCAMGeometry.py:2274
+#: AppParsers/ParseGerber.py:1866 AppParsers/ParseGerber.py:1876
msgid "Scale factor has to be a number: integer or float."
msgstr "Le facteur d'échelle doit être un nombre: entier ou réel."
-#: flatcamObjects/FlatCAMGeometry.py:2281
+#: AppObjects/FlatCAMGeometry.py:2337
msgid "Geometry Scale done."
msgstr "Échelle de géométrie terminée."
-#: flatcamObjects/FlatCAMGeometry.py:2298 flatcamParsers/ParseGerber.py:1993
+#: AppObjects/FlatCAMGeometry.py:2354 AppParsers/ParseGerber.py:1992
msgid ""
"An (x,y) pair of values are needed. Probable you entered only one value in "
"the Offset field."
@@ -14140,160 +12271,151 @@ msgstr ""
"Une paire de valeurs (x, y) est nécessaire. Vous avez probablement entré une "
"seule valeur dans le champ Décalage."
-#: flatcamObjects/FlatCAMGeometry.py:2354
+#: AppObjects/FlatCAMGeometry.py:2410
msgid "Geometry Offset done."
msgstr "Décalage de géométrie effectué."
-#: flatcamObjects/FlatCAMGeometry.py:2383
+#: AppObjects/FlatCAMGeometry.py:2439
msgid ""
"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, "
"y)\n"
"but now there is only one value, not two."
msgstr ""
-"Le champ Toolchange X, Y dans Edition -> Préférences doit être au format (x, "
+"Le champ Toolchange X, Y dans Edition -> Paramètres doit être au format (x, "
"y)\n"
"mais maintenant il n'y a qu'une seule valeur, pas deux."
-#: flatcamObjects/FlatCAMGeometry.py:2577
-#: flatcamTools/ToolCopperThieving.py:769 flatcamTools/ToolNCC.py:1648
-msgid "Click the start point of the area."
-msgstr "Cliquez sur le point de départ de la zone."
-
-#: flatcamObjects/FlatCAMGeometry.py:2619
-msgid "Click the end point of the area."
-msgstr "Cliquez sur le point final de la zone."
-
-#: flatcamObjects/FlatCAMGeometry.py:2625
-#: flatcamObjects/FlatCAMGeometry.py:2677
-#: flatcamTools/ToolCopperThieving.py:826 flatcamTools/ToolNCC.py:1710
-#: flatcamTools/ToolNCC.py:1762 flatcamTools/ToolPaint.py:1606
-#: flatcamTools/ToolPaint.py:1657
-msgid "Zone added. Click to start adding next zone or right click to finish."
-msgstr ""
-"Zone ajoutée. Cliquez pour commencer à ajouter la zone suivante ou faites un "
-"clic droit pour terminer."
-
-#: flatcamObjects/FlatCAMGeometry.py:2729
-msgid "Cancelled. Area exclusion drawing was interrupted."
-msgstr "Annulé. Le dessin d'exclusion de zone a été interrompu."
-
-#: flatcamObjects/FlatCAMGerber.py:494
+#: AppObjects/FlatCAMGerber.py:494
msgid "Buffering solid geometry"
msgstr "Mise en tampon de la géométrie solide"
-#: flatcamObjects/FlatCAMGerber.py:503
+#: AppObjects/FlatCAMGerber.py:503
msgid "Done"
msgstr "Terminé"
-#: flatcamObjects/FlatCAMGerber.py:529 flatcamObjects/FlatCAMGerber.py:555
+#: AppObjects/FlatCAMGerber.py:529 AppObjects/FlatCAMGerber.py:555
msgid "Operation could not be done."
msgstr "L'opération n'a pas pu être effectuée."
-#: flatcamObjects/FlatCAMGerber.py:572
+#: AppObjects/FlatCAMGerber.py:572
msgid "Isolating..."
msgstr "Isoler ..."
-#: flatcamObjects/FlatCAMGerber.py:631
+#: AppObjects/FlatCAMGerber.py:631
msgid "Click on a polygon to isolate it."
msgstr "Cliquez sur un polygone pour l'isoler."
-#: flatcamObjects/FlatCAMGerber.py:670 flatcamObjects/FlatCAMGerber.py:774
-#: flatcamTools/ToolPaint.py:1516
+#: AppObjects/FlatCAMGerber.py:670 AppObjects/FlatCAMGerber.py:774
+#: AppTools/ToolPaint.py:1515
msgid "Added polygon"
msgstr "Polygone ajouté"
-#: flatcamObjects/FlatCAMGerber.py:671 flatcamObjects/FlatCAMGerber.py:776
+#: AppObjects/FlatCAMGerber.py:671 AppObjects/FlatCAMGerber.py:776
msgid "Click to add next polygon or right click to start isolation."
msgstr ""
"Cliquez pour ajouter le polygone suivant ou cliquez avec le bouton droit "
"pour démarrer l'isolement."
-#: flatcamObjects/FlatCAMGerber.py:683 flatcamTools/ToolPaint.py:1530
+#: AppObjects/FlatCAMGerber.py:683 AppTools/ToolPaint.py:1529
msgid "Removed polygon"
msgstr "Polygone supprimé"
-#: flatcamObjects/FlatCAMGerber.py:684
+#: AppObjects/FlatCAMGerber.py:684
msgid "Click to add/remove next polygon or right click to start isolation."
msgstr ""
"Cliquez pour ajouter / supprimer le polygone suivant ou cliquez avec le "
"bouton droit pour démarrer l'isolement."
-#: flatcamObjects/FlatCAMGerber.py:689 flatcamTools/ToolPaint.py:1536
+#: AppObjects/FlatCAMGerber.py:689 AppTools/ToolPaint.py:1535
msgid "No polygon detected under click position."
msgstr "Aucun polygone détecté sous la position du clic."
-#: flatcamObjects/FlatCAMGerber.py:710 flatcamTools/ToolPaint.py:1565
+#: AppObjects/FlatCAMGerber.py:710 AppTools/ToolPaint.py:1564
msgid "List of single polygons is empty. Aborting."
msgstr "La liste des polygones simples est vide. Abandon."
-#: flatcamObjects/FlatCAMGerber.py:779
+#: AppObjects/FlatCAMGerber.py:779
msgid "No polygon in selection."
msgstr "Aucun polygone dans la sélection."
-#: flatcamObjects/FlatCAMGerber.py:907 flatcamObjects/FlatCAMGerber.py:986
-#: flatcamTools/ToolNCC.py:2086 flatcamTools/ToolNCC.py:3137
-#: flatcamTools/ToolNCC.py:3516
+#: AppObjects/FlatCAMGerber.py:907 AppObjects/FlatCAMGerber.py:986
+#: AppTools/ToolNCC.py:2097 AppTools/ToolNCC.py:3183 AppTools/ToolNCC.py:3562
msgid "Isolation geometry could not be generated."
msgstr "La géométrie d'isolation n'a pas pu être générée."
-#: flatcamObjects/FlatCAMGerber.py:932 flatcamObjects/FlatCAMGerber.py:1064
+#: AppObjects/FlatCAMGerber.py:932 AppObjects/FlatCAMGerber.py:1064
msgid "Isolation geometry created"
msgstr "Géométrie d'isolement créée"
-#: flatcamObjects/FlatCAMGerber.py:941 flatcamObjects/FlatCAMGerber.py:1071
+#: AppObjects/FlatCAMGerber.py:941 AppObjects/FlatCAMGerber.py:1071
msgid "Subtracting Geo"
msgstr "Soustraction Geo"
-#: flatcamObjects/FlatCAMGerber.py:1396
+#: AppObjects/FlatCAMGerber.py:1396
msgid "Plotting Apertures"
msgstr "Traçage des ouvertures"
-#: flatcamObjects/FlatCAMObj.py:234
+#: AppObjects/FlatCAMObj.py:232
msgid "Name changed from"
msgstr "Nom changé de"
-#: flatcamObjects/FlatCAMObj.py:234
+#: AppObjects/FlatCAMObj.py:232
msgid "to"
msgstr "à"
-#: flatcamObjects/FlatCAMObj.py:245
+#: AppObjects/FlatCAMObj.py:243
msgid "Offsetting..."
msgstr "Compenser ..."
-#: flatcamObjects/FlatCAMObj.py:259 flatcamObjects/FlatCAMObj.py:264
+#: AppObjects/FlatCAMObj.py:257 AppObjects/FlatCAMObj.py:262
msgid "Scaling could not be executed."
msgstr "La mise à l'échelle n'a pas pu être exécutée."
-#: flatcamObjects/FlatCAMObj.py:268 flatcamObjects/FlatCAMObj.py:276
+#: AppObjects/FlatCAMObj.py:266 AppObjects/FlatCAMObj.py:274
msgid "Scale done."
msgstr "Échelle terminée."
-#: flatcamObjects/FlatCAMObj.py:274
+#: AppObjects/FlatCAMObj.py:272
msgid "Scaling..."
msgstr "Mise à l'échelle..."
-#: flatcamObjects/FlatCAMObj.py:292
+#: AppObjects/FlatCAMObj.py:290
msgid "Skewing..."
-msgstr "Fausser..."
+msgstr "Inclinaison..."
-#: flatcamObjects/FlatCAMScript.py:163
+#: AppObjects/FlatCAMScript.py:163
msgid "Script Editor"
msgstr "Éditeur de script"
-#: flatcamObjects/ObjectCollection.py:510
+#: AppObjects/ObjectCollection.py:513
#, python-brace-format
msgid "Object renamed from {old} to {new}"
msgstr "Objet renommé de {old} à {new}"
-#: flatcamObjects/ObjectCollection.py:983
+#: AppObjects/ObjectCollection.py:925 AppObjects/ObjectCollection.py:931
+#: AppObjects/ObjectCollection.py:937 AppObjects/ObjectCollection.py:943
+#: AppObjects/ObjectCollection.py:949 AppObjects/ObjectCollection.py:955
+#: App_Main.py:6158 App_Main.py:6164 App_Main.py:6170 App_Main.py:6176
+msgid "selected"
+msgstr "choisir"
+
+#: AppObjects/ObjectCollection.py:986
msgid "Cause of error"
msgstr "Cause d'erreur"
-#: flatcamParsers/ParseExcellon.py:316
+#: AppObjects/ObjectCollection.py:1187
+msgid "All objects are selected."
+msgstr "Tous les objets sont sélectionnés."
+
+#: AppObjects/ObjectCollection.py:1197
+msgid "Objects selection is cleared."
+msgstr "La sélection des objets est effacée."
+
+#: AppParsers/ParseExcellon.py:315
msgid "This is GCODE mark"
msgstr "C'est la marque GCODE"
-#: flatcamParsers/ParseExcellon.py:433
+#: AppParsers/ParseExcellon.py:432
msgid ""
"No tool diameter info's. See shell.\n"
"A tool change event: T"
@@ -14301,7 +12423,7 @@ msgstr ""
"Aucune information sur le diamètre de l'outil. Voir shell.\n"
"Un événement de changement d'outil: T"
-#: flatcamParsers/ParseExcellon.py:436
+#: AppParsers/ParseExcellon.py:435
msgid ""
"was found but the Excellon file have no informations regarding the tool "
"diameters therefore the application will try to load it by using some 'fake' "
@@ -14315,7 +12437,7 @@ msgstr ""
"L'utilisateur doit modifier l'objet Excellon résultant et modifier les "
"diamètres pour refléter les diamètres réels."
-#: flatcamParsers/ParseExcellon.py:900
+#: AppParsers/ParseExcellon.py:899
msgid ""
"Excellon Parser error.\n"
"Parsing Failed. Line"
@@ -14323,40 +12445,40 @@ msgstr ""
"Erreur de l'analyseur Excellon.\n"
"Échec de l'analyse. Ligne"
-#: flatcamParsers/ParseExcellon.py:982
+#: AppParsers/ParseExcellon.py:981
msgid ""
"Excellon.create_geometry() -> a drill location was skipped due of not having "
"a tool associated.\n"
"Check the resulting GCode."
msgstr ""
-"Excellon.create_geometry () -> un emplacement d’exploration a été ignoré car "
-"aucun outil n’était associé.\n"
+"Excellon.create_géométrie () -> un emplacement d’exploration a été ignoré "
+"car aucun outil n’était associé.\n"
"Vérifiez le GCode résultant."
-#: flatcamParsers/ParseFont.py:303
+#: AppParsers/ParseFont.py:303
msgid "Font not supported, try another one."
msgstr "Police non supportée, essayez-en une autre."
-#: flatcamParsers/ParseGerber.py:426
+#: AppParsers/ParseGerber.py:425
msgid "Gerber processing. Parsing"
msgstr "Traitement Gerber. L'analyse"
-#: flatcamParsers/ParseGerber.py:426 flatcamParsers/ParseHPGL2.py:182
+#: AppParsers/ParseGerber.py:425 AppParsers/ParseHPGL2.py:181
msgid "lines"
msgstr "lignes"
-#: flatcamParsers/ParseGerber.py:1002 flatcamParsers/ParseGerber.py:1102
-#: flatcamParsers/ParseHPGL2.py:275 flatcamParsers/ParseHPGL2.py:289
-#: flatcamParsers/ParseHPGL2.py:308 flatcamParsers/ParseHPGL2.py:332
-#: flatcamParsers/ParseHPGL2.py:367
+#: AppParsers/ParseGerber.py:1001 AppParsers/ParseGerber.py:1101
+#: AppParsers/ParseHPGL2.py:274 AppParsers/ParseHPGL2.py:288
+#: AppParsers/ParseHPGL2.py:307 AppParsers/ParseHPGL2.py:331
+#: AppParsers/ParseHPGL2.py:366
msgid "Coordinates missing, line ignored"
msgstr "Coordonnées manquantes, ligne ignorée"
-#: flatcamParsers/ParseGerber.py:1004 flatcamParsers/ParseGerber.py:1104
+#: AppParsers/ParseGerber.py:1003 AppParsers/ParseGerber.py:1103
msgid "GERBER file might be CORRUPT. Check the file !!!"
msgstr "Le fichier GERBER est peut-être corrompu. Vérifiez le fichier !!!"
-#: flatcamParsers/ParseGerber.py:1058
+#: AppParsers/ParseGerber.py:1057
msgid ""
"Region does not have enough points. File will be processed but there are "
"parser errors. Line number"
@@ -14364,75 +12486,79 @@ msgstr ""
"La région n'a pas assez de points. Le fichier sera traité, mais il y a des "
"erreurs d'analyse. Numéro de ligne"
-#: flatcamParsers/ParseGerber.py:1488 flatcamParsers/ParseHPGL2.py:402
+#: AppParsers/ParseGerber.py:1487 AppParsers/ParseHPGL2.py:401
msgid "Gerber processing. Joining polygons"
msgstr "Traitement Gerber. Jointure de polygones"
-#: flatcamParsers/ParseGerber.py:1505
+#: AppParsers/ParseGerber.py:1504
msgid "Gerber processing. Applying Gerber polarity."
msgstr "Traitement Gerber. Appliquer la polarité de Gerber."
-#: flatcamParsers/ParseGerber.py:1565
+#: AppParsers/ParseGerber.py:1564
msgid "Gerber Line"
msgstr "Ligne Gerber"
-#: flatcamParsers/ParseGerber.py:1565
+#: AppParsers/ParseGerber.py:1564
msgid "Gerber Line Content"
msgstr "Contenu de la ligne Gerber"
-#: flatcamParsers/ParseGerber.py:1567
+#: AppParsers/ParseGerber.py:1566
msgid "Gerber Parser ERROR"
msgstr "Gerber Parser ERREUR"
-#: flatcamParsers/ParseGerber.py:1957
+#: AppParsers/ParseGerber.py:1956
msgid "Gerber Scale done."
msgstr "Échelle de Gerber fait."
-#: flatcamParsers/ParseGerber.py:2049
+#: AppParsers/ParseGerber.py:2048
msgid "Gerber Offset done."
msgstr "Gerber offset fait."
-#: flatcamParsers/ParseGerber.py:2125
+#: AppParsers/ParseGerber.py:2124
msgid "Gerber Mirror done."
msgstr "Le miroir de Gerber est fait."
-#: flatcamParsers/ParseGerber.py:2199
+#: AppParsers/ParseGerber.py:2198
msgid "Gerber Skew done."
msgstr "Gerber incline fait."
-#: flatcamParsers/ParseGerber.py:2261
+#: AppParsers/ParseGerber.py:2260
msgid "Gerber Rotate done."
msgstr "La rotation de Gerber est fait."
-#: flatcamParsers/ParseGerber.py:2418
+#: AppParsers/ParseGerber.py:2417
msgid "Gerber Buffer done."
msgstr "Gerber Buffer fait."
-#: flatcamParsers/ParseHPGL2.py:182
+#: AppParsers/ParseHPGL2.py:181
msgid "HPGL2 processing. Parsing"
msgstr "Traitement HPGL2. Analyse"
-#: flatcamParsers/ParseHPGL2.py:414
+#: AppParsers/ParseHPGL2.py:413
msgid "HPGL2 Line"
msgstr "Ligne HPGL2"
-#: flatcamParsers/ParseHPGL2.py:414
+#: AppParsers/ParseHPGL2.py:413
msgid "HPGL2 Line Content"
msgstr "Contenu de la ligne HPGL2"
-#: flatcamParsers/ParseHPGL2.py:415
+#: AppParsers/ParseHPGL2.py:414
msgid "HPGL2 Parser ERROR"
msgstr "ERREUR de l'analyseur HPGL2"
-#: flatcamTools/ToolAlignObjects.py:32
+#: AppProcess.py:172
+msgid "processes running."
+msgstr "processus en cours d'exécution."
+
+#: AppTools/ToolAlignObjects.py:32
msgid "Align Objects"
msgstr "Aligner les objets"
-#: flatcamTools/ToolAlignObjects.py:61
+#: AppTools/ToolAlignObjects.py:61
msgid "MOVING object"
msgstr "Objet en mouvement"
-#: flatcamTools/ToolAlignObjects.py:65
+#: AppTools/ToolAlignObjects.py:65
msgid ""
"Specify the type of object to be aligned.\n"
"It can be of type: Gerber or Excellon.\n"
@@ -14444,15 +12570,15 @@ msgstr ""
"La sélection ici décide du type d'objets qui seront\n"
"dans la zone de liste déroulante Objet."
-#: flatcamTools/ToolAlignObjects.py:86
+#: AppTools/ToolAlignObjects.py:86
msgid "Object to be aligned."
msgstr "Objet à aligner."
-#: flatcamTools/ToolAlignObjects.py:98
+#: AppTools/ToolAlignObjects.py:98
msgid "TARGET object"
msgstr "Objet CIBLE"
-#: flatcamTools/ToolAlignObjects.py:100
+#: AppTools/ToolAlignObjects.py:100
msgid ""
"Specify the type of object to be aligned to.\n"
"It can be of type: Gerber or Excellon.\n"
@@ -14464,15 +12590,15 @@ msgstr ""
"La sélection ici décide du type d'objets qui seront\n"
"dans la zone de liste déroulante Objet."
-#: flatcamTools/ToolAlignObjects.py:122
+#: AppTools/ToolAlignObjects.py:122
msgid "Object to be aligned to. Aligner."
msgstr "Objet à aligner. Aligner."
-#: flatcamTools/ToolAlignObjects.py:135
+#: AppTools/ToolAlignObjects.py:135
msgid "Alignment Type"
msgstr "Type d'alignement"
-#: flatcamTools/ToolAlignObjects.py:137
+#: AppTools/ToolAlignObjects.py:137
msgid ""
"The type of alignment can be:\n"
"- Single Point -> it require a single point of sync, the action will be a "
@@ -14486,19 +12612,19 @@ msgstr ""
"- Double point -> il nécessite deux points de synchronisation, l'action sera "
"la traduction suivie d'une rotation"
-#: flatcamTools/ToolAlignObjects.py:143
+#: AppTools/ToolAlignObjects.py:143
msgid "Single Point"
msgstr "Point unique"
-#: flatcamTools/ToolAlignObjects.py:144
+#: AppTools/ToolAlignObjects.py:144
msgid "Dual Point"
msgstr "Double point"
-#: flatcamTools/ToolAlignObjects.py:159
+#: AppTools/ToolAlignObjects.py:159
msgid "Align Object"
msgstr "Aligner l'objet"
-#: flatcamTools/ToolAlignObjects.py:161
+#: AppTools/ToolAlignObjects.py:161
msgid ""
"Align the specified object to the aligner object.\n"
"If only one point is used then it assumes translation.\n"
@@ -14508,87 +12634,89 @@ msgstr ""
"Si un seul point est utilisé, il suppose la traduction.\n"
"Si ces points sont utilisés, cela suppose une translation et une rotation."
-#: flatcamTools/ToolAlignObjects.py:176 flatcamTools/ToolCalculators.py:246
-#: flatcamTools/ToolCalibration.py:683 flatcamTools/ToolCopperThieving.py:484
-#: flatcamTools/ToolCutOut.py:362 flatcamTools/ToolDblSided.py:471
-#: flatcamTools/ToolExtractDrills.py:310 flatcamTools/ToolFiducials.py:318
-#: flatcamTools/ToolFilm.py:520 flatcamTools/ToolInvertGerber.py:140
-#: flatcamTools/ToolNCC.py:612 flatcamTools/ToolOptimal.py:237
-#: flatcamTools/ToolPaint.py:556 flatcamTools/ToolPanelize.py:269
-#: flatcamTools/ToolPunchGerber.py:339 flatcamTools/ToolQRCode.py:314
-#: flatcamTools/ToolRulesCheck.py:516 flatcamTools/ToolSolderPaste.py:473
-#: flatcamTools/ToolSub.py:176 flatcamTools/ToolTransform.py:398
+#: AppTools/ToolAlignObjects.py:176 AppTools/ToolCalculators.py:246
+#: AppTools/ToolCalibration.py:683 AppTools/ToolCopperThieving.py:484
+#: AppTools/ToolCorners.py:173 AppTools/ToolCutOut.py:362
+#: AppTools/ToolDblSided.py:471 AppTools/ToolEtchCompensation.py:136
+#: AppTools/ToolExtractDrills.py:310 AppTools/ToolFiducials.py:318
+#: AppTools/ToolFilm.py:503 AppTools/ToolInvertGerber.py:140
+#: AppTools/ToolNCC.py:612 AppTools/ToolOptimal.py:237
+#: AppTools/ToolPaint.py:555 AppTools/ToolPanelize.py:280
+#: AppTools/ToolPunchGerber.py:339 AppTools/ToolQRCode.py:314
+#: AppTools/ToolRulesCheck.py:516 AppTools/ToolSolderPaste.py:473
+#: AppTools/ToolSub.py:176 AppTools/ToolTransform.py:398
msgid "Reset Tool"
msgstr "Réinitialiser l'outil"
-#: flatcamTools/ToolAlignObjects.py:178 flatcamTools/ToolCalculators.py:248
-#: flatcamTools/ToolCalibration.py:685 flatcamTools/ToolCopperThieving.py:486
-#: flatcamTools/ToolCutOut.py:364 flatcamTools/ToolDblSided.py:473
-#: flatcamTools/ToolExtractDrills.py:312 flatcamTools/ToolFiducials.py:320
-#: flatcamTools/ToolFilm.py:522 flatcamTools/ToolInvertGerber.py:142
-#: flatcamTools/ToolNCC.py:614 flatcamTools/ToolOptimal.py:239
-#: flatcamTools/ToolPaint.py:558 flatcamTools/ToolPanelize.py:271
-#: flatcamTools/ToolPunchGerber.py:341 flatcamTools/ToolQRCode.py:316
-#: flatcamTools/ToolRulesCheck.py:518 flatcamTools/ToolSolderPaste.py:475
-#: flatcamTools/ToolSub.py:178 flatcamTools/ToolTransform.py:400
+#: AppTools/ToolAlignObjects.py:178 AppTools/ToolCalculators.py:248
+#: AppTools/ToolCalibration.py:685 AppTools/ToolCopperThieving.py:486
+#: AppTools/ToolCorners.py:175 AppTools/ToolCutOut.py:364
+#: AppTools/ToolDblSided.py:473 AppTools/ToolEtchCompensation.py:138
+#: AppTools/ToolExtractDrills.py:312 AppTools/ToolFiducials.py:320
+#: AppTools/ToolFilm.py:505 AppTools/ToolInvertGerber.py:142
+#: AppTools/ToolNCC.py:614 AppTools/ToolOptimal.py:239
+#: AppTools/ToolPaint.py:557 AppTools/ToolPanelize.py:282
+#: AppTools/ToolPunchGerber.py:341 AppTools/ToolQRCode.py:316
+#: AppTools/ToolRulesCheck.py:518 AppTools/ToolSolderPaste.py:475
+#: AppTools/ToolSub.py:178 AppTools/ToolTransform.py:400
msgid "Will reset the tool parameters."
msgstr "Réinitialise les paramètres de l'outil."
-#: flatcamTools/ToolAlignObjects.py:244
+#: AppTools/ToolAlignObjects.py:244
msgid "Align Tool"
msgstr "Outil d'alignement"
-#: flatcamTools/ToolAlignObjects.py:289
+#: AppTools/ToolAlignObjects.py:289
msgid "There is no aligned FlatCAM object selected..."
msgstr "Aucun objet FlatCAM aligné n'est sélectionné ..."
-#: flatcamTools/ToolAlignObjects.py:299
+#: AppTools/ToolAlignObjects.py:299
msgid "There is no aligner FlatCAM object selected..."
msgstr "Aucun objet d'alignement FlatCAM n'est sélectionné ..."
-#: flatcamTools/ToolAlignObjects.py:325 flatcamTools/ToolAlignObjects.py:385
+#: AppTools/ToolAlignObjects.py:325 AppTools/ToolAlignObjects.py:385
msgid "First Point"
msgstr "Premier point"
-#: flatcamTools/ToolAlignObjects.py:325 flatcamTools/ToolAlignObjects.py:400
+#: AppTools/ToolAlignObjects.py:325 AppTools/ToolAlignObjects.py:400
msgid "Click on the START point."
msgstr "Cliquez sur le point de Départ."
-#: flatcamTools/ToolAlignObjects.py:380 flatcamTools/ToolCalibration.py:920
+#: AppTools/ToolAlignObjects.py:380 AppTools/ToolCalibration.py:920
msgid "Cancelled by user request."
msgstr "Annulé par demande de l'utilisateur."
-#: flatcamTools/ToolAlignObjects.py:385 flatcamTools/ToolAlignObjects.py:407
+#: AppTools/ToolAlignObjects.py:385 AppTools/ToolAlignObjects.py:407
msgid "Click on the DESTINATION point."
msgstr "Cliquez sur le point de Destination."
-#: flatcamTools/ToolAlignObjects.py:385 flatcamTools/ToolAlignObjects.py:400
-#: flatcamTools/ToolAlignObjects.py:407
+#: AppTools/ToolAlignObjects.py:385 AppTools/ToolAlignObjects.py:400
+#: AppTools/ToolAlignObjects.py:407
msgid "Or right click to cancel."
msgstr "Ou cliquez avec le bouton droit pour annuler."
-#: flatcamTools/ToolAlignObjects.py:400 flatcamTools/ToolAlignObjects.py:407
-#: flatcamTools/ToolFiducials.py:111
+#: AppTools/ToolAlignObjects.py:400 AppTools/ToolAlignObjects.py:407
+#: AppTools/ToolFiducials.py:111
msgid "Second Point"
msgstr "Deuxième point"
-#: flatcamTools/ToolCalculators.py:24
+#: AppTools/ToolCalculators.py:24
msgid "Calculators"
msgstr "Calculatrices"
-#: flatcamTools/ToolCalculators.py:26
+#: AppTools/ToolCalculators.py:26
msgid "Units Calculator"
msgstr "Calculateur d'unités"
-#: flatcamTools/ToolCalculators.py:70
+#: AppTools/ToolCalculators.py:70
msgid "Here you enter the value to be converted from INCH to MM"
msgstr "Ici, vous entrez la valeur à convertir de Pouce en MM"
-#: flatcamTools/ToolCalculators.py:75
+#: AppTools/ToolCalculators.py:75
msgid "Here you enter the value to be converted from MM to INCH"
msgstr "Ici, vous entrez la valeur à convertir de MM en Pouces"
-#: flatcamTools/ToolCalculators.py:111
+#: AppTools/ToolCalculators.py:111
msgid ""
"This is the angle of the tip of the tool.\n"
"It is specified by manufacturer."
@@ -14596,7 +12724,7 @@ msgstr ""
"C'est l'angle de la pointe de l'outil.\n"
"Il est spécifié par le fabricant."
-#: flatcamTools/ToolCalculators.py:120
+#: AppTools/ToolCalculators.py:120
msgid ""
"This is the depth to cut into the material.\n"
"In the CNCJob is the CutZ parameter."
@@ -14604,7 +12732,7 @@ msgstr ""
"C'est la profondeur à couper dans le matériau.\n"
"Dans le CNCJob est le paramètre CutZ."
-#: flatcamTools/ToolCalculators.py:128
+#: AppTools/ToolCalculators.py:128
msgid ""
"This is the tool diameter to be entered into\n"
"FlatCAM Gerber section.\n"
@@ -14614,11 +12742,11 @@ msgstr ""
"Section FlatCAM Gerber.\n"
"Dans la section CNCJob, cela s'appelle >Tool dia<."
-#: flatcamTools/ToolCalculators.py:139 flatcamTools/ToolCalculators.py:235
+#: AppTools/ToolCalculators.py:139 AppTools/ToolCalculators.py:235
msgid "Calculate"
msgstr "Calculer"
-#: flatcamTools/ToolCalculators.py:142
+#: AppTools/ToolCalculators.py:142
msgid ""
"Calculate either the Cut Z or the effective tool diameter,\n"
" depending on which is desired and which is known. "
@@ -14626,11 +12754,11 @@ msgstr ""
"Calculez la coupe Z ou le diamètre d'outil effectif,\n"
"selon ce qui est souhaité et ce qui est connu. "
-#: flatcamTools/ToolCalculators.py:205
+#: AppTools/ToolCalculators.py:205
msgid "Current Value"
msgstr "Valeur du courant"
-#: flatcamTools/ToolCalculators.py:212
+#: AppTools/ToolCalculators.py:212
msgid ""
"This is the current intensity value\n"
"to be set on the Power Supply. In Amps."
@@ -14638,11 +12766,11 @@ msgstr ""
"C'est la valeur d'intensité actuelle\n"
"à régler sur l’alimentation. En ampères."
-#: flatcamTools/ToolCalculators.py:216
+#: AppTools/ToolCalculators.py:216
msgid "Time"
msgstr "Temps"
-#: flatcamTools/ToolCalculators.py:223
+#: AppTools/ToolCalculators.py:223
msgid ""
"This is the calculated time required for the procedure.\n"
"In minutes."
@@ -14650,7 +12778,7 @@ msgstr ""
"C'est le temps calculé requis pour la procédure.\n"
"En quelques minutes."
-#: flatcamTools/ToolCalculators.py:238
+#: AppTools/ToolCalculators.py:238
msgid ""
"Calculate the current intensity value and the procedure time,\n"
"depending on the parameters above"
@@ -14658,23 +12786,23 @@ msgstr ""
"Calculer la valeur d'intensité actuelle et le temps de procédure,\n"
"en fonction des paramètres ci-dessus"
-#: flatcamTools/ToolCalculators.py:299
+#: AppTools/ToolCalculators.py:299
msgid "Calc. Tool"
msgstr "Calc. Outil"
-#: flatcamTools/ToolCalibration.py:67
+#: AppTools/ToolCalibration.py:67
msgid "GCode Parameters"
msgstr "Paramètres GCode"
-#: flatcamTools/ToolCalibration.py:69
+#: AppTools/ToolCalibration.py:69
msgid "Parameters used when creating the GCode in this tool."
msgstr "Paramètres utilisés lors de la création du GCode dans cet outil."
-#: flatcamTools/ToolCalibration.py:173
+#: AppTools/ToolCalibration.py:173
msgid "STEP 1: Acquire Calibration Points"
msgstr "ÉTAPE 1: Acquérir des points d'étalonnage"
-#: flatcamTools/ToolCalibration.py:175
+#: AppTools/ToolCalibration.py:175
msgid ""
"Pick four points by clicking on canvas.\n"
"Those four points should be in the four\n"
@@ -14684,25 +12812,25 @@ msgstr ""
"Ces quatre points devraient figurer dans les quatre\n"
"(autant que possible) coins de l'objet."
-#: flatcamTools/ToolCalibration.py:193 flatcamTools/ToolFilm.py:76
-#: flatcamTools/ToolImage.py:54 flatcamTools/ToolPanelize.py:78
-#: flatcamTools/ToolProperties.py:177
+#: AppTools/ToolCalibration.py:193 AppTools/ToolFilm.py:71
+#: AppTools/ToolImage.py:54 AppTools/ToolPanelize.py:77
+#: AppTools/ToolProperties.py:177
msgid "Object Type"
msgstr "Type d'objet"
-#: flatcamTools/ToolCalibration.py:210
+#: AppTools/ToolCalibration.py:210
msgid "Source object selection"
msgstr "Sélection d'objet source"
-#: flatcamTools/ToolCalibration.py:212
+#: AppTools/ToolCalibration.py:212
msgid "FlatCAM Object to be used as a source for reference points."
msgstr "Objet FlatCAM à utiliser comme source pour les points de référence."
-#: flatcamTools/ToolCalibration.py:218
+#: AppTools/ToolCalibration.py:218
msgid "Calibration Points"
msgstr "Points d'étalonnage"
-#: flatcamTools/ToolCalibration.py:220
+#: AppTools/ToolCalibration.py:220
msgid ""
"Contain the expected calibration points and the\n"
"ones measured."
@@ -14710,52 +12838,52 @@ msgstr ""
"Contiennent les points d'étalonnage attendus et le\n"
"ceux mesurés."
-#: flatcamTools/ToolCalibration.py:235 flatcamTools/ToolSub.py:76
-#: flatcamTools/ToolSub.py:131
+#: AppTools/ToolCalibration.py:235 AppTools/ToolSub.py:76
+#: AppTools/ToolSub.py:131
msgid "Target"
msgstr "Cible"
-#: flatcamTools/ToolCalibration.py:236
+#: AppTools/ToolCalibration.py:236
msgid "Found Delta"
msgstr "Delta trouvé"
-#: flatcamTools/ToolCalibration.py:248
+#: AppTools/ToolCalibration.py:248
msgid "Bot Left X"
msgstr "En bas à gauche X"
-#: flatcamTools/ToolCalibration.py:257
+#: AppTools/ToolCalibration.py:257
msgid "Bot Left Y"
msgstr "En bas à gauche Y"
-#: flatcamTools/ToolCalibration.py:275
+#: AppTools/ToolCalibration.py:275
msgid "Bot Right X"
msgstr "En bas à droite X"
-#: flatcamTools/ToolCalibration.py:285
+#: AppTools/ToolCalibration.py:285
msgid "Bot Right Y"
msgstr "En bas à droite Y"
-#: flatcamTools/ToolCalibration.py:300
+#: AppTools/ToolCalibration.py:300
msgid "Top Left X"
msgstr "En haut à gauche X"
-#: flatcamTools/ToolCalibration.py:309
+#: AppTools/ToolCalibration.py:309
msgid "Top Left Y"
msgstr "En haut à gauche Y"
-#: flatcamTools/ToolCalibration.py:324
+#: AppTools/ToolCalibration.py:324
msgid "Top Right X"
msgstr "En haut à droite X"
-#: flatcamTools/ToolCalibration.py:334
+#: AppTools/ToolCalibration.py:334
msgid "Top Right Y"
msgstr "En haut à droite Y"
-#: flatcamTools/ToolCalibration.py:367
+#: AppTools/ToolCalibration.py:367
msgid "Get Points"
msgstr "Obtenir des points"
-#: flatcamTools/ToolCalibration.py:369
+#: AppTools/ToolCalibration.py:369
msgid ""
"Pick four points by clicking on canvas if the source choice\n"
"is 'free' or inside the object geometry if the source is 'object'.\n"
@@ -14769,11 +12897,11 @@ msgstr ""
"Ces quatre points devraient être dans les quatre carrés de\n"
"L'object."
-#: flatcamTools/ToolCalibration.py:390
+#: AppTools/ToolCalibration.py:390
msgid "STEP 2: Verification GCode"
msgstr "ÉTAPE 2: Vérification GCode"
-#: flatcamTools/ToolCalibration.py:392 flatcamTools/ToolCalibration.py:405
+#: AppTools/ToolCalibration.py:392 AppTools/ToolCalibration.py:405
msgid ""
"Generate GCode file to locate and align the PCB by using\n"
"the four points acquired above.\n"
@@ -14793,15 +12921,15 @@ msgstr ""
"bas à droite.\n"
"- quatrième point -> point de vérification final. Juste pour évaluation."
-#: flatcamTools/ToolCalibration.py:403 flatcamTools/ToolSolderPaste.py:348
+#: AppTools/ToolCalibration.py:403 AppTools/ToolSolderPaste.py:348
msgid "Generate GCode"
msgstr "Générer du GCode"
-#: flatcamTools/ToolCalibration.py:429
+#: AppTools/ToolCalibration.py:429
msgid "STEP 3: Adjustments"
msgstr "ÉTAPE 3: Ajustements"
-#: flatcamTools/ToolCalibration.py:431 flatcamTools/ToolCalibration.py:440
+#: AppTools/ToolCalibration.py:431 AppTools/ToolCalibration.py:440
msgid ""
"Calculate Scale and Skew factors based on the differences (delta)\n"
"found when checking the PCB pattern. The differences must be filled\n"
@@ -14813,15 +12941,15 @@ msgstr ""
"être comblées\n"
"dans les champs Trouvé (Delta)."
-#: flatcamTools/ToolCalibration.py:438
+#: AppTools/ToolCalibration.py:438
msgid "Calculate Factors"
msgstr "Calculer les facteurs"
-#: flatcamTools/ToolCalibration.py:460
+#: AppTools/ToolCalibration.py:460
msgid "STEP 4: Adjusted GCode"
msgstr "ÉTAPE 4: GCode ajusté"
-#: flatcamTools/ToolCalibration.py:462
+#: AppTools/ToolCalibration.py:462
msgid ""
"Generate verification GCode file adjusted with\n"
"the factors above."
@@ -14829,43 +12957,43 @@ msgstr ""
"Générer un fichier GCode de vérification ajusté avec\n"
"les facteurs ci-dessus."
-#: flatcamTools/ToolCalibration.py:467
+#: AppTools/ToolCalibration.py:467
msgid "Scale Factor X:"
msgstr "Facteur d'échelle X:"
-#: flatcamTools/ToolCalibration.py:479
+#: AppTools/ToolCalibration.py:479
msgid "Scale Factor Y:"
msgstr "Facteur d'échelle Y:"
-#: flatcamTools/ToolCalibration.py:491
+#: AppTools/ToolCalibration.py:491
msgid "Apply Scale Factors"
msgstr "Appliquer des facteurs d'échelle"
-#: flatcamTools/ToolCalibration.py:493
+#: AppTools/ToolCalibration.py:493
msgid "Apply Scale factors on the calibration points."
msgstr "Appliquez des facteurs d'échelle aux points d'étalonnage."
-#: flatcamTools/ToolCalibration.py:503
+#: AppTools/ToolCalibration.py:503
msgid "Skew Angle X:"
msgstr "Angle d'inclinaison X:"
-#: flatcamTools/ToolCalibration.py:516
+#: AppTools/ToolCalibration.py:516
msgid "Skew Angle Y:"
msgstr "Angle d'inclinaison Y:"
-#: flatcamTools/ToolCalibration.py:529
+#: AppTools/ToolCalibration.py:529
msgid "Apply Skew Factors"
msgstr "Appliquer les facteurs d'inclinaison"
-#: flatcamTools/ToolCalibration.py:531
+#: AppTools/ToolCalibration.py:531
msgid "Apply Skew factors on the calibration points."
msgstr "Appliquer des facteurs d'inclinaison sur les points d'étalonnage."
-#: flatcamTools/ToolCalibration.py:600
+#: AppTools/ToolCalibration.py:600
msgid "Generate Adjusted GCode"
msgstr "Générer un GCode ajusté"
-#: flatcamTools/ToolCalibration.py:602
+#: AppTools/ToolCalibration.py:602
msgid ""
"Generate verification GCode file adjusted with\n"
"the factors set above.\n"
@@ -14877,11 +13005,11 @@ msgstr ""
"Les paramètres GCode peuvent être réajustés\n"
"avant de cliquer sur ce bouton."
-#: flatcamTools/ToolCalibration.py:623
+#: AppTools/ToolCalibration.py:623
msgid "STEP 5: Calibrate FlatCAM Objects"
msgstr "ÉTAPE 5: Calibrer les objets FlatCAM"
-#: flatcamTools/ToolCalibration.py:625
+#: AppTools/ToolCalibration.py:625
msgid ""
"Adjust the FlatCAM objects\n"
"with the factors determined and verified above."
@@ -14889,27 +13017,27 @@ msgstr ""
"Ajuster les objets FlatCAM\n"
"avec les facteurs déterminés et vérifiés ci-dessus."
-#: flatcamTools/ToolCalibration.py:637
+#: AppTools/ToolCalibration.py:637
msgid "Adjusted object type"
msgstr "Type d'objet ajusté"
-#: flatcamTools/ToolCalibration.py:638
+#: AppTools/ToolCalibration.py:638
msgid "Type of the FlatCAM Object to be adjusted."
msgstr "Type de l'objet FlatCAM à ajuster."
-#: flatcamTools/ToolCalibration.py:651
+#: AppTools/ToolCalibration.py:651
msgid "Adjusted object selection"
msgstr "Sélection d'objet ajustée"
-#: flatcamTools/ToolCalibration.py:653
+#: AppTools/ToolCalibration.py:653
msgid "The FlatCAM Object to be adjusted."
msgstr "L'objet FlatCAM à ajuster."
-#: flatcamTools/ToolCalibration.py:660
+#: AppTools/ToolCalibration.py:660
msgid "Calibrate"
msgstr "Étalonner"
-#: flatcamTools/ToolCalibration.py:662
+#: AppTools/ToolCalibration.py:662
msgid ""
"Adjust (scale and/or skew) the objects\n"
"with the factors determined above."
@@ -14917,63 +13045,63 @@ msgstr ""
"Ajustez (redimensionnez et / ou inclinez) les objets\n"
"avec les facteurs déterminés ci-dessus."
-#: flatcamTools/ToolCalibration.py:770 flatcamTools/ToolCalibration.py:771
+#: AppTools/ToolCalibration.py:770 AppTools/ToolCalibration.py:771
msgid "Origin"
msgstr "Origine"
-#: flatcamTools/ToolCalibration.py:800
+#: AppTools/ToolCalibration.py:800
msgid "Tool initialized"
msgstr "Outil initialisé"
-#: flatcamTools/ToolCalibration.py:838
+#: AppTools/ToolCalibration.py:838
msgid "There is no source FlatCAM object selected..."
msgstr "Aucun objet FlatCAM source n'est sélectionné ..."
-#: flatcamTools/ToolCalibration.py:859
+#: AppTools/ToolCalibration.py:859
msgid "Get First calibration point. Bottom Left..."
msgstr "Obtenez le premier point d'étalonnage. En bas à gauche..."
-#: flatcamTools/ToolCalibration.py:926
+#: AppTools/ToolCalibration.py:926
msgid "Get Second calibration point. Bottom Right (Top Left)..."
msgstr ""
"Obtenez le deuxième point d'étalonnage. En bas à droite (en haut à "
"gauche) ..."
-#: flatcamTools/ToolCalibration.py:930
+#: AppTools/ToolCalibration.py:930
msgid "Get Third calibration point. Top Left (Bottom Right)..."
msgstr ""
"Obtenez le troisième point d'étalonnage. En haut à gauche (en bas à "
"droite) ..."
-#: flatcamTools/ToolCalibration.py:934
+#: AppTools/ToolCalibration.py:934
msgid "Get Forth calibration point. Top Right..."
msgstr "Obtenez le quatrième point d'étalonnage. En haut à droite..."
-#: flatcamTools/ToolCalibration.py:938
+#: AppTools/ToolCalibration.py:938
msgid "Done. All four points have been acquired."
msgstr "Terminé. Les quatre points ont été acquis."
-#: flatcamTools/ToolCalibration.py:969
+#: AppTools/ToolCalibration.py:969
msgid "Verification GCode for FlatCAM Calibration Tool"
msgstr "Vérification GCode pour l'outil d'étalonnage FlatCAM"
-#: flatcamTools/ToolCalibration.py:981 flatcamTools/ToolCalibration.py:1067
+#: AppTools/ToolCalibration.py:981 AppTools/ToolCalibration.py:1067
msgid "Gcode Viewer"
msgstr "Visionneuse Gcode"
-#: flatcamTools/ToolCalibration.py:997
+#: AppTools/ToolCalibration.py:997
msgid "Cancelled. Four points are needed for GCode generation."
msgstr "Annulé. Quatre points sont nécessaires pour la génération de GCode."
-#: flatcamTools/ToolCalibration.py:1253 flatcamTools/ToolCalibration.py:1349
+#: AppTools/ToolCalibration.py:1253 AppTools/ToolCalibration.py:1349
msgid "There is no FlatCAM object selected..."
msgstr "Aucun objet FlatCAM n'est sélectionné ..."
-#: flatcamTools/ToolCopperThieving.py:76 flatcamTools/ToolFiducials.py:261
+#: AppTools/ToolCopperThieving.py:76 AppTools/ToolFiducials.py:261
msgid "Gerber Object to which will be added a copper thieving."
msgstr "Objet Gerber auquel sera ajouté un voleur de cuivre."
-#: flatcamTools/ToolCopperThieving.py:98
+#: AppTools/ToolCopperThieving.py:98
msgid ""
"This set the distance between the copper thieving components\n"
"(the polygon fill may be split in multiple polygons)\n"
@@ -14983,7 +13111,7 @@ msgstr ""
"(le remplissage du polygone peut être divisé en plusieurs polygones)\n"
"et les traces de cuivre dans le fichier Gerber."
-#: flatcamTools/ToolCopperThieving.py:131
+#: AppTools/ToolCopperThieving.py:131
msgid ""
"- 'Itself' - the copper thieving extent is based on the object extent.\n"
"- 'Area Selection' - left mouse click to start selection of the area to be "
@@ -14998,34 +13126,34 @@ msgstr ""
"- «Objet de référence» - effectuera un Copper Thieving dans la zone "
"spécifiée par un autre objet."
-#: flatcamTools/ToolCopperThieving.py:138 flatcamTools/ToolNCC.py:552
-#: flatcamTools/ToolPaint.py:496
+#: AppTools/ToolCopperThieving.py:138 AppTools/ToolNCC.py:552
+#: AppTools/ToolPaint.py:495
msgid "Ref. Type"
msgstr "Type de Réf"
-#: flatcamTools/ToolCopperThieving.py:140
+#: AppTools/ToolCopperThieving.py:140
msgid ""
"The type of FlatCAM object to be used as copper thieving reference.\n"
"It can be Gerber, Excellon or Geometry."
msgstr ""
"Type d'objet FlatCAM à utiliser comme référence de Copper Thieving.\n"
-"Il peut s'agir de Gerber, Excellon ou Geometry."
+"Il peut s'agir de Gerber, Excellon ou Géométrie."
-#: flatcamTools/ToolCopperThieving.py:149 flatcamTools/ToolNCC.py:562
-#: flatcamTools/ToolPaint.py:506
+#: AppTools/ToolCopperThieving.py:149 AppTools/ToolNCC.py:562
+#: AppTools/ToolPaint.py:505
msgid "Ref. Object"
msgstr "Réf. Objet"
-#: flatcamTools/ToolCopperThieving.py:151 flatcamTools/ToolNCC.py:564
-#: flatcamTools/ToolPaint.py:508
+#: AppTools/ToolCopperThieving.py:151 AppTools/ToolNCC.py:564
+#: AppTools/ToolPaint.py:507
msgid "The FlatCAM object to be used as non copper clearing reference."
msgstr "L'objet FlatCAM à utiliser comme référence d'effacement non en cuivre."
-#: flatcamTools/ToolCopperThieving.py:327
+#: AppTools/ToolCopperThieving.py:327
msgid "Insert Copper thieving"
msgstr "Insérer Copper Thieving"
-#: flatcamTools/ToolCopperThieving.py:329
+#: AppTools/ToolCopperThieving.py:329
msgid ""
"Will add a polygon (may be split in multiple parts)\n"
"that will surround the actual Gerber traces at a certain distance."
@@ -15033,11 +13161,11 @@ msgstr ""
"Ajoutera un polygone (peut être divisé en plusieurs parties)\n"
"qui entourera les traces réelles de Gerber à une certaine distance."
-#: flatcamTools/ToolCopperThieving.py:388
+#: AppTools/ToolCopperThieving.py:388
msgid "Insert Robber Bar"
msgstr "Insérer une Robber Bar"
-#: flatcamTools/ToolCopperThieving.py:390
+#: AppTools/ToolCopperThieving.py:390
msgid ""
"Will add a polygon with a defined thickness\n"
"that will surround the actual Gerber object\n"
@@ -15049,11 +13177,11 @@ msgstr ""
"à une certaine distance.\n"
"Requis lors du placage des trous."
-#: flatcamTools/ToolCopperThieving.py:414
+#: AppTools/ToolCopperThieving.py:414
msgid "Select Soldermask object"
msgstr "Sélectionner un objet Soldermask"
-#: flatcamTools/ToolCopperThieving.py:416
+#: AppTools/ToolCopperThieving.py:416
msgid ""
"Gerber Object with the soldermask.\n"
"It will be used as a base for\n"
@@ -15063,11 +13191,11 @@ msgstr ""
"Il sera utilisé comme base pour\n"
"le masque de placage de motifs."
-#: flatcamTools/ToolCopperThieving.py:445
+#: AppTools/ToolCopperThieving.py:445
msgid "Plated area"
msgstr "Zone plaquée"
-#: flatcamTools/ToolCopperThieving.py:447
+#: AppTools/ToolCopperThieving.py:447
msgid ""
"The area to be plated by pattern plating.\n"
"Basically is made from the openings in the plating mask.\n"
@@ -15086,19 +13214,19 @@ msgstr ""
"un peu plus grand que les tampons en cuivre, et cette zone est\n"
"calculé à partir des ouvertures du masque de soldat."
-#: flatcamTools/ToolCopperThieving.py:458
+#: AppTools/ToolCopperThieving.py:458
msgid "mm"
msgstr "mm"
-#: flatcamTools/ToolCopperThieving.py:460
+#: AppTools/ToolCopperThieving.py:460
msgid "in"
msgstr "in"
-#: flatcamTools/ToolCopperThieving.py:467
+#: AppTools/ToolCopperThieving.py:467
msgid "Generate pattern plating mask"
msgstr "Générer un masque de placage de motifs"
-#: flatcamTools/ToolCopperThieving.py:469
+#: AppTools/ToolCopperThieving.py:469
msgid ""
"Will add to the soldermask gerber geometry\n"
"the geometries of the copper thieving and/or\n"
@@ -15108,147 +13236,197 @@ msgstr ""
"les géométries du Copper Thieving et / ou\n"
"la Robber Bar si ceux-ci ont été générés."
-#: flatcamTools/ToolCopperThieving.py:625
-#: flatcamTools/ToolCopperThieving.py:650
+#: AppTools/ToolCopperThieving.py:625 AppTools/ToolCopperThieving.py:650
msgid "Lines Grid works only for 'itself' reference ..."
msgstr ""
"La grille de lignes fonctionne uniquement pour la référence «elle-même» ..."
-#: flatcamTools/ToolCopperThieving.py:636
+#: AppTools/ToolCopperThieving.py:636
msgid "Solid fill selected."
msgstr "Remplissage solide sélectionné."
-#: flatcamTools/ToolCopperThieving.py:641
+#: AppTools/ToolCopperThieving.py:641
msgid "Dots grid fill selected."
msgstr "Remplissage de la grille de points sélectionné."
-#: flatcamTools/ToolCopperThieving.py:646
+#: AppTools/ToolCopperThieving.py:646
msgid "Squares grid fill selected."
msgstr "Remplissage de la grille des carrés sélectionné."
-#: flatcamTools/ToolCopperThieving.py:667
-#: flatcamTools/ToolCopperThieving.py:749
-#: flatcamTools/ToolCopperThieving.py:1345 flatcamTools/ToolDblSided.py:657
-#: flatcamTools/ToolExtractDrills.py:436 flatcamTools/ToolFiducials.py:466
-#: flatcamTools/ToolFiducials.py:743 flatcamTools/ToolOptimal.py:342
-#: flatcamTools/ToolPunchGerber.py:512 flatcamTools/ToolQRCode.py:426
+#: AppTools/ToolCopperThieving.py:667 AppTools/ToolCopperThieving.py:749
+#: AppTools/ToolCopperThieving.py:1351 AppTools/ToolCorners.py:251
+#: AppTools/ToolDblSided.py:657 AppTools/ToolExtractDrills.py:436
+#: AppTools/ToolFiducials.py:467 AppTools/ToolFiducials.py:744
+#: AppTools/ToolOptimal.py:342 AppTools/ToolPunchGerber.py:512
+#: AppTools/ToolQRCode.py:426
msgid "There is no Gerber object loaded ..."
msgstr "Il n'y a pas d'objet Gerber chargé ..."
-#: flatcamTools/ToolCopperThieving.py:680
-#: flatcamTools/ToolCopperThieving.py:1273
+#: AppTools/ToolCopperThieving.py:680 AppTools/ToolCopperThieving.py:1279
msgid "Append geometry"
msgstr "Ajouter une géométrie"
-#: flatcamTools/ToolCopperThieving.py:724
-#: flatcamTools/ToolCopperThieving.py:1306
-#: flatcamTools/ToolCopperThieving.py:1459
+#: AppTools/ToolCopperThieving.py:724 AppTools/ToolCopperThieving.py:1312
+#: AppTools/ToolCopperThieving.py:1465
msgid "Append source file"
msgstr "Ajouter un fichier source"
-#: flatcamTools/ToolCopperThieving.py:732
-#: flatcamTools/ToolCopperThieving.py:1314
+#: AppTools/ToolCopperThieving.py:732 AppTools/ToolCopperThieving.py:1320
msgid "Copper Thieving Tool done."
msgstr "Outil de Copper Thieving fait."
-#: flatcamTools/ToolCopperThieving.py:759
-#: flatcamTools/ToolCopperThieving.py:792 flatcamTools/ToolCutOut.py:519
-#: flatcamTools/ToolCutOut.py:724 flatcamTools/ToolInvertGerber.py:208
-#: flatcamTools/ToolNCC.py:1599 flatcamTools/ToolNCC.py:1640
-#: flatcamTools/ToolNCC.py:1669 flatcamTools/ToolPaint.py:1474
-#: flatcamTools/ToolPanelize.py:412 flatcamTools/ToolPanelize.py:426
-#: flatcamTools/ToolSub.py:294 flatcamTools/ToolSub.py:307
-#: flatcamTools/ToolSub.py:498 flatcamTools/ToolSub.py:513
+#: AppTools/ToolCopperThieving.py:759 AppTools/ToolCopperThieving.py:792
+#: AppTools/ToolCutOut.py:519 AppTools/ToolCutOut.py:724
+#: AppTools/ToolEtchCompensation.py:208 AppTools/ToolInvertGerber.py:208
+#: AppTools/ToolNCC.py:1599 AppTools/ToolNCC.py:1641 AppTools/ToolNCC.py:1670
+#: AppTools/ToolPaint.py:1473 AppTools/ToolPanelize.py:423
+#: AppTools/ToolPanelize.py:437 AppTools/ToolSub.py:294 AppTools/ToolSub.py:307
+#: AppTools/ToolSub.py:498 AppTools/ToolSub.py:513
#: tclCommands/TclCommandCopperClear.py:97 tclCommands/TclCommandPaint.py:99
msgid "Could not retrieve object"
msgstr "Impossible de récupérer l'objet"
-#: flatcamTools/ToolCopperThieving.py:820
+#: AppTools/ToolCopperThieving.py:769 AppTools/ToolNCC.py:1649 Common.py:200
+msgid "Click the start point of the area."
+msgstr "Cliquez sur le point de départ de la zone."
+
+#: AppTools/ToolCopperThieving.py:820
msgid "Click the end point of the filling area."
msgstr "Cliquez sur le point final de la zone de remplissage."
-#: flatcamTools/ToolCopperThieving.py:942
-#: flatcamTools/ToolCopperThieving.py:946
-#: flatcamTools/ToolCopperThieving.py:1007
+#: AppTools/ToolCopperThieving.py:826 AppTools/ToolNCC.py:1711
+#: AppTools/ToolNCC.py:1763 AppTools/ToolPaint.py:1605
+#: AppTools/ToolPaint.py:1656 Common.py:256 Common.py:356
+msgid "Zone added. Click to start adding next zone or right click to finish."
+msgstr ""
+"Zone ajoutée. Cliquez pour commencer à ajouter la zone suivante ou faites un "
+"clic droit pour terminer."
+
+#: AppTools/ToolCopperThieving.py:948 AppTools/ToolCopperThieving.py:952
+#: AppTools/ToolCopperThieving.py:1013
msgid "Thieving"
msgstr "Voleur"
-#: flatcamTools/ToolCopperThieving.py:953
+#: AppTools/ToolCopperThieving.py:959
msgid "Copper Thieving Tool started. Reading parameters."
msgstr "L'outil de Copper Thieving a démarré. Lecture des paramètres."
-#: flatcamTools/ToolCopperThieving.py:978
+#: AppTools/ToolCopperThieving.py:984
msgid "Copper Thieving Tool. Preparing isolation polygons."
msgstr "Outil de Copper Thieving. Préparation des polygones d'isolement."
-#: flatcamTools/ToolCopperThieving.py:1023
+#: AppTools/ToolCopperThieving.py:1029
msgid "Copper Thieving Tool. Preparing areas to fill with copper."
msgstr "Outil de Copper Thieving. Préparer les zones à remplir de cuivre."
-#: flatcamTools/ToolCopperThieving.py:1034 flatcamTools/ToolOptimal.py:349
-#: flatcamTools/ToolPanelize.py:799 flatcamTools/ToolRulesCheck.py:1127
+#: AppTools/ToolCopperThieving.py:1040 AppTools/ToolOptimal.py:349
+#: AppTools/ToolPanelize.py:810 AppTools/ToolRulesCheck.py:1127
msgid "Working..."
msgstr "Travail..."
-#: flatcamTools/ToolCopperThieving.py:1061
+#: AppTools/ToolCopperThieving.py:1067
msgid "Geometry not supported for bounding box"
msgstr "Géométrie non prise en charge pour le cadre de sélection"
-#: flatcamTools/ToolCopperThieving.py:1067 flatcamTools/ToolNCC.py:1933
-#: flatcamTools/ToolNCC.py:1988 flatcamTools/ToolNCC.py:2992
-#: flatcamTools/ToolPaint.py:3380
+#: AppTools/ToolCopperThieving.py:1073 AppTools/ToolNCC.py:1942
+#: AppTools/ToolNCC.py:1997 AppTools/ToolNCC.py:3038 AppTools/ToolPaint.py:3385
msgid "No object available."
msgstr "Aucun objet disponible."
-#: flatcamTools/ToolCopperThieving.py:1104 flatcamTools/ToolNCC.py:1958
-#: flatcamTools/ToolNCC.py:2011 flatcamTools/ToolNCC.py:3034
+#: AppTools/ToolCopperThieving.py:1110 AppTools/ToolNCC.py:1967
+#: AppTools/ToolNCC.py:2020 AppTools/ToolNCC.py:3080
msgid "The reference object type is not supported."
msgstr "Le type d'objet de référence n'est pas pris en charge."
-#: flatcamTools/ToolCopperThieving.py:1109
+#: AppTools/ToolCopperThieving.py:1115
msgid "Copper Thieving Tool. Appending new geometry and buffering."
msgstr ""
"Outil de Copper Thieving. Ajout d'une nouvelle géométrie et mise en mémoire "
"tampon."
-#: flatcamTools/ToolCopperThieving.py:1125
+#: AppTools/ToolCopperThieving.py:1131
msgid "Create geometry"
msgstr "Créer une géométrie"
-#: flatcamTools/ToolCopperThieving.py:1325
-#: flatcamTools/ToolCopperThieving.py:1329
+#: AppTools/ToolCopperThieving.py:1331 AppTools/ToolCopperThieving.py:1335
msgid "P-Plating Mask"
msgstr "Masque de placage P"
-#: flatcamTools/ToolCopperThieving.py:1351
+#: AppTools/ToolCopperThieving.py:1357
msgid "Append PP-M geometry"
msgstr "Ajouter la géométrie du masque P de placage"
-#: flatcamTools/ToolCopperThieving.py:1477
+#: AppTools/ToolCopperThieving.py:1483
msgid "Generating Pattern Plating Mask done."
msgstr "Génération du masque de placage de motif terminée."
-#: flatcamTools/ToolCopperThieving.py:1549
+#: AppTools/ToolCopperThieving.py:1555
msgid "Copper Thieving Tool exit."
msgstr "Sortie de l'outil de Copper Thieving."
-#: flatcamTools/ToolCutOut.py:41
+#: AppTools/ToolCorners.py:57
+#, fuzzy
+#| msgid "Gerber Object to which will be added a copper thieving."
+msgid "The Gerber object that to which will be added corner markers."
+msgstr "Objet Gerber auquel sera ajouté un voleur de cuivre."
+
+#: AppTools/ToolCorners.py:73
+#, fuzzy
+#| msgid "Location"
+msgid "Locations"
+msgstr "Emplacement"
+
+#: AppTools/ToolCorners.py:75
+msgid "Locations where to place corner markers."
+msgstr ""
+
+#: AppTools/ToolCorners.py:92 AppTools/ToolFiducials.py:99
+msgid "Top Right"
+msgstr "En haut à droite"
+
+#: AppTools/ToolCorners.py:158
+#, fuzzy
+#| msgid "Add keyword"
+msgid "Add Marker"
+msgstr "Ajouter un mot clé"
+
+#: AppTools/ToolCorners.py:160
+msgid "Will add corner markers to the selected Gerber file."
+msgstr ""
+
+#: AppTools/ToolCorners.py:225
+#, fuzzy
+#| msgid "QRCode Tool"
+msgid "Corners Tool"
+msgstr "QRCode"
+
+#: AppTools/ToolCorners.py:288
+msgid "Please select at least a location"
+msgstr ""
+
+#: AppTools/ToolCorners.py:423
+#, fuzzy
+#| msgid "Copper Thieving Tool exit."
+msgid "Corners Tool exit."
+msgstr "Sortie de l'outil de Copper Thieving."
+
+#: AppTools/ToolCutOut.py:41
msgid "Cutout PCB"
msgstr "Découpe de PCB"
-#: flatcamTools/ToolCutOut.py:69 flatcamTools/ToolPanelize.py:54
+#: AppTools/ToolCutOut.py:69 AppTools/ToolPanelize.py:53
msgid "Source Object"
msgstr "Objet source"
-#: flatcamTools/ToolCutOut.py:70
+#: AppTools/ToolCutOut.py:70
msgid "Object to be cutout"
msgstr "Objet à découper"
-#: flatcamTools/ToolCutOut.py:75
+#: AppTools/ToolCutOut.py:75
msgid "Kind"
msgstr "Sorte"
-#: flatcamTools/ToolCutOut.py:97
+#: AppTools/ToolCutOut.py:97
msgid ""
"Specify the type of object to be cutout.\n"
"It can be of type: Gerber or Geometry.\n"
@@ -15260,19 +13438,19 @@ msgstr ""
"Ce qui est sélectionné ici dictera le genre\n"
"des objets qui vont remplir la liste déroulante 'Object'."
-#: flatcamTools/ToolCutOut.py:121
+#: AppTools/ToolCutOut.py:121
msgid "Tool Parameters"
msgstr "Paramètres d'outil"
-#: flatcamTools/ToolCutOut.py:238
+#: AppTools/ToolCutOut.py:238
msgid "A. Automatic Bridge Gaps"
-msgstr "A. Lacunes automatiques des ponts"
+msgstr "A. Pont de maintient Automatique"
-#: flatcamTools/ToolCutOut.py:240
+#: AppTools/ToolCutOut.py:240
msgid "This section handle creation of automatic bridge gaps."
-msgstr "Cette section gère la création d'espaces de pontage automatiques."
+msgstr "Cette section gère la création des ponts de maintient automatiques."
-#: flatcamTools/ToolCutOut.py:247
+#: AppTools/ToolCutOut.py:247
msgid ""
"Number of gaps used for the Automatic cutout.\n"
"There can be maximum 8 bridges/gaps.\n"
@@ -15285,22 +13463,22 @@ msgid ""
"- 2tb - 2*top + 2*bottom\n"
"- 8 - 2*left + 2*right +2*top + 2*bottom"
msgstr ""
-"Nombre de trous utilisés pour la découpe automatique.\n"
-"Il peut y avoir au maximum 8 ponts / lacunes.\n"
+"Nombres de ponts à garder lors de la découpe.\n"
+"Il peut y avoir au maximum 8 ponts.\n"
"Les choix sont:\n"
-"- Aucun - pas de lacunes\n"
-"- lr - gauche + droite\n"
-"- tb - haut + bas\n"
-"- 4 - gauche + droite + haut + bas\n"
-"- 2lr - 2 * gauche + 2 * droite\n"
-"- 2tb - 2 * Haut + 2 * Bas\n"
-"- 8 - 2 * gauche + 2 * droite + 2 * en haut + 2 * en bas"
+"- Aucun - Découpe total\n"
+"- LR - Gauche + Droite\n"
+"- TB - Haut + Bas\n"
+"- 4 - Gauche + Droite + Haut + Bas\n"
+"- 2LR - 2 Gauche + 2 Droite\n"
+"- 2TB - 2 Haut + 2 Bas\n"
+"- 8 - 2 Gauches + 2 Droites + 2 Hauts + 2 Bas"
-#: flatcamTools/ToolCutOut.py:269
+#: AppTools/ToolCutOut.py:269
msgid "Generate Freeform Geometry"
msgstr "Générer une géométrie de forme libre"
-#: flatcamTools/ToolCutOut.py:271
+#: AppTools/ToolCutOut.py:271
msgid ""
"Cutout the selected object.\n"
"The cutout shape can be of any shape.\n"
@@ -15310,11 +13488,11 @@ msgstr ""
"La forme de la découpe peut être de n'importe quelle forme.\n"
"Utile lorsque le circuit imprimé a une forme non rectangulaire."
-#: flatcamTools/ToolCutOut.py:283
+#: AppTools/ToolCutOut.py:283
msgid "Generate Rectangular Geometry"
msgstr "Générer une géométrie rectangulaire"
-#: flatcamTools/ToolCutOut.py:285
+#: AppTools/ToolCutOut.py:285
msgid ""
"Cutout the selected object.\n"
"The resulting cutout shape is\n"
@@ -15326,11 +13504,11 @@ msgstr ""
"toujours une forme de rectangle et ce sera\n"
"la boîte englobante de l'objet."
-#: flatcamTools/ToolCutOut.py:304
+#: AppTools/ToolCutOut.py:304
msgid "B. Manual Bridge Gaps"
-msgstr "B. Lacunes manuelles du pont"
+msgstr "B. Pont de maintient Manuel"
-#: flatcamTools/ToolCutOut.py:306
+#: AppTools/ToolCutOut.py:306
msgid ""
"This section handle creation of manual bridge gaps.\n"
"This is done by mouse clicking on the perimeter of the\n"
@@ -15340,15 +13518,15 @@ msgstr ""
"Cela se fait en cliquant avec la souris sur le périmètre de la\n"
"Objet de géométrie utilisé comme objet de découpe. "
-#: flatcamTools/ToolCutOut.py:321
+#: AppTools/ToolCutOut.py:321
msgid "Geometry object used to create the manual cutout."
msgstr "Objet de géométrie utilisé pour créer la découpe manuelle."
-#: flatcamTools/ToolCutOut.py:328
+#: AppTools/ToolCutOut.py:328
msgid "Generate Manual Geometry"
msgstr "Générer une géométrie manuelle"
-#: flatcamTools/ToolCutOut.py:330
+#: AppTools/ToolCutOut.py:330
msgid ""
"If the object to be cutout is a Gerber\n"
"first create a Geometry that surrounds it,\n"
@@ -15361,11 +13539,11 @@ msgstr ""
"Sélectionnez le fichier Gerber source dans la liste déroulante d'objets "
"supérieure."
-#: flatcamTools/ToolCutOut.py:343
+#: AppTools/ToolCutOut.py:343
msgid "Manual Add Bridge Gaps"
-msgstr "Ajout manuel de lacunes dans les ponts"
+msgstr "Ajout manuel de ponts dans la découpe"
-#: flatcamTools/ToolCutOut.py:345
+#: AppTools/ToolCutOut.py:345
msgid ""
"Use the left mouse button (LMB) click\n"
"to create a bridge gap to separate the PCB from\n"
@@ -15377,9 +13555,9 @@ msgstr ""
"créer un pont pour séparer PCB de\n"
"le matériau environnant.\n"
"Le clic LMB doit être fait sur le périmètre de\n"
-"l'objet Geometry utilisé en tant que géométrie de découpe."
+"l'objet Géométrie utilisé en tant que géométrie de découpe."
-#: flatcamTools/ToolCutOut.py:524
+#: AppTools/ToolCutOut.py:524
msgid ""
"There is no object selected for Cutout.\n"
"Select one and try again."
@@ -15387,27 +13565,27 @@ msgstr ""
"Aucun objet n'est sélectionné pour la découpe.\n"
"Sélectionnez-en un et réessayez."
-#: flatcamTools/ToolCutOut.py:530 flatcamTools/ToolCutOut.py:733
-#: flatcamTools/ToolCutOut.py:914 flatcamTools/ToolCutOut.py:996
+#: AppTools/ToolCutOut.py:530 AppTools/ToolCutOut.py:733
+#: AppTools/ToolCutOut.py:914 AppTools/ToolCutOut.py:996
#: tclCommands/TclCommandGeoCutout.py:184
msgid "Tool Diameter is zero value. Change it to a positive real number."
msgstr ""
"Le diamètre de l'outil est égal à zéro. Changez-le en un nombre réel positif."
-#: flatcamTools/ToolCutOut.py:544 flatcamTools/ToolCutOut.py:748
+#: AppTools/ToolCutOut.py:544 AppTools/ToolCutOut.py:748
msgid "Number of gaps value is missing. Add it and retry."
msgstr "Le nombre de lacunes est manquant. Ajoutez-le et réessayez."
-#: flatcamTools/ToolCutOut.py:549 flatcamTools/ToolCutOut.py:752
+#: AppTools/ToolCutOut.py:549 AppTools/ToolCutOut.py:752
msgid ""
"Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. "
"Fill in a correct value and retry. "
msgstr ""
-"La valeur d'espacement ne peut être que l'une des valeurs suivantes: "
-"'Aucune', 'lr', 'tb', '2lr', '2tb', 4 ou 8. Saisissez une valeur correcte, "
-"puis réessayez. "
+"Le nombres des ponts ne peut être que l'une des valeurs suivantes: 'Aucune', "
+"'None', 'LR', 'TB', '2LR','2TB', 4 ou 8. Saisissez une valeur correcte, puis "
+"réessayez. "
-#: flatcamTools/ToolCutOut.py:554 flatcamTools/ToolCutOut.py:758
+#: AppTools/ToolCutOut.py:554 AppTools/ToolCutOut.py:758
msgid ""
"Cutout operation cannot be done on a multi-geo Geometry.\n"
"Optionally, this Multi-geo Geometry can be converted to Single-geo "
@@ -15420,45 +13598,45 @@ msgstr ""
"géo,\n"
"et après cela effectuer la découpe."
-#: flatcamTools/ToolCutOut.py:706 flatcamTools/ToolCutOut.py:903
+#: AppTools/ToolCutOut.py:706 AppTools/ToolCutOut.py:903
msgid "Any form CutOut operation finished."
msgstr "Opération de découpe Forme Libre terminée."
-#: flatcamTools/ToolCutOut.py:728 flatcamTools/ToolInvertGerber.py:214
-#: flatcamTools/ToolNCC.py:1603 flatcamTools/ToolPaint.py:1397
-#: flatcamTools/ToolPanelize.py:417 tclCommands/TclCommandBbox.py:71
-#: tclCommands/TclCommandNregions.py:71
+#: AppTools/ToolCutOut.py:728 AppTools/ToolEtchCompensation.py:214
+#: AppTools/ToolInvertGerber.py:214 AppTools/ToolNCC.py:1603
+#: AppTools/ToolPaint.py:1396 AppTools/ToolPanelize.py:428
+#: tclCommands/TclCommandBbox.py:71 tclCommands/TclCommandNregions.py:71
msgid "Object not found"
msgstr "Objet non trouvé"
-#: flatcamTools/ToolCutOut.py:872
+#: AppTools/ToolCutOut.py:872
msgid "Rectangular cutout with negative margin is not possible."
msgstr "Une découpe rectangulaire avec une marge négative n'est pas possible."
-#: flatcamTools/ToolCutOut.py:908
+#: AppTools/ToolCutOut.py:908
msgid ""
"Click on the selected geometry object perimeter to create a bridge gap ..."
msgstr ""
"Cliquez sur le périmètre de l'objet géométrique sélectionné pour créer un "
"intervalle de pont ..."
-#: flatcamTools/ToolCutOut.py:925 flatcamTools/ToolCutOut.py:951
+#: AppTools/ToolCutOut.py:925 AppTools/ToolCutOut.py:951
msgid "Could not retrieve Geometry object"
msgstr "Impossible de récupérer l'objet de géométrie"
-#: flatcamTools/ToolCutOut.py:956
+#: AppTools/ToolCutOut.py:956
msgid "Geometry object for manual cutout not found"
msgstr "Objet de géométrie pour découpe manuelle introuvable"
-#: flatcamTools/ToolCutOut.py:966
+#: AppTools/ToolCutOut.py:966
msgid "Added manual Bridge Gap."
msgstr "Ajout d'un écart de pont manuel."
-#: flatcamTools/ToolCutOut.py:978
+#: AppTools/ToolCutOut.py:978
msgid "Could not retrieve Gerber object"
msgstr "Impossible de récupérer l'objet Gerber"
-#: flatcamTools/ToolCutOut.py:983
+#: AppTools/ToolCutOut.py:983
msgid ""
"There is no Gerber object selected for Cutout.\n"
"Select one and try again."
@@ -15466,7 +13644,7 @@ msgstr ""
"Aucun objet Gerber n'a été sélectionné pour la découpe.\n"
"Sélectionnez-en un et réessayez."
-#: flatcamTools/ToolCutOut.py:989
+#: AppTools/ToolCutOut.py:989
msgid ""
"The selected object has to be of Gerber type.\n"
"Select a Gerber file and try again."
@@ -15474,32 +13652,32 @@ msgstr ""
"L'objet sélectionné doit être de type Gerber.\n"
"Sélectionnez un fichier Gerber et réessayez."
-#: flatcamTools/ToolCutOut.py:1024
+#: AppTools/ToolCutOut.py:1024
msgid "Geometry not supported for cutout"
msgstr "Géométrie non prise en charge pour la découpe"
-#: flatcamTools/ToolCutOut.py:1099
+#: AppTools/ToolCutOut.py:1099
msgid "Making manual bridge gap..."
msgstr "Faire un pont manuel ..."
-#: flatcamTools/ToolDblSided.py:26
+#: AppTools/ToolDblSided.py:26
msgid "2-Sided PCB"
msgstr "PCB double face"
-#: flatcamTools/ToolDblSided.py:52
+#: AppTools/ToolDblSided.py:52
msgid "Mirror Operation"
msgstr "Miroir Opération"
-#: flatcamTools/ToolDblSided.py:53
+#: AppTools/ToolDblSided.py:53
msgid "Objects to be mirrored"
msgstr "Objets à mettre en miroir"
-#: flatcamTools/ToolDblSided.py:65
+#: AppTools/ToolDblSided.py:65
msgid "Gerber to be mirrored"
msgstr "Gerber en miroir"
-#: flatcamTools/ToolDblSided.py:69 flatcamTools/ToolDblSided.py:97
-#: flatcamTools/ToolDblSided.py:127
+#: AppTools/ToolDblSided.py:69 AppTools/ToolDblSided.py:97
+#: AppTools/ToolDblSided.py:127
msgid ""
"Mirrors (flips) the specified object around \n"
"the specified axis. Does not create a new \n"
@@ -15509,27 +13687,27 @@ msgstr ""
"l'axe spécifié. Ne crée pas de nouveau\n"
"objet, mais le modifie."
-#: flatcamTools/ToolDblSided.py:93
+#: AppTools/ToolDblSided.py:93
msgid "Excellon Object to be mirrored."
msgstr "Excellon Objet à refléter."
-#: flatcamTools/ToolDblSided.py:122
+#: AppTools/ToolDblSided.py:122
msgid "Geometry Obj to be mirrored."
msgstr "Objet de géométrie à refléter."
-#: flatcamTools/ToolDblSided.py:158
+#: AppTools/ToolDblSided.py:158
msgid "Mirror Parameters"
msgstr "Paramètres de Miroir"
-#: flatcamTools/ToolDblSided.py:159
+#: AppTools/ToolDblSided.py:159
msgid "Parameters for the mirror operation"
msgstr "Paramètres de l'opération Miroir"
-#: flatcamTools/ToolDblSided.py:164
+#: AppTools/ToolDblSided.py:164
msgid "Mirror Axis"
msgstr "Axe de Miroir"
-#: flatcamTools/ToolDblSided.py:175
+#: AppTools/ToolDblSided.py:175
msgid ""
"The coordinates used as reference for the mirror operation.\n"
"Can be:\n"
@@ -15545,11 +13723,11 @@ msgstr ""
"la\n"
"cadre de délimitation d'un autre objet sélectionné ci-dessous"
-#: flatcamTools/ToolDblSided.py:189
+#: AppTools/ToolDblSided.py:189
msgid "Point coordinates"
msgstr "Coordonnées du point"
-#: flatcamTools/ToolDblSided.py:194
+#: AppTools/ToolDblSided.py:194
msgid ""
"Add the coordinates in format (x, y) through which the mirroring "
"axis\n"
@@ -15565,7 +13743,7 @@ msgstr ""
"et cliquez avec le bouton gauche de la souris sur la toile ou vous pouvez "
"entrer les coordonnées manuellement."
-#: flatcamTools/ToolDblSided.py:218
+#: AppTools/ToolDblSided.py:218
msgid ""
"It can be of type: Gerber or Excellon or Geometry.\n"
"The coordinates of the center of the bounding box are used\n"
@@ -15575,11 +13753,11 @@ msgstr ""
"Les coordonnées du centre du cadre de sélection sont utilisées\n"
"comme référence pour le fonctionnement du miroir."
-#: flatcamTools/ToolDblSided.py:252
+#: AppTools/ToolDblSided.py:252
msgid "Bounds Values"
msgstr "Valeurs limites"
-#: flatcamTools/ToolDblSided.py:254
+#: AppTools/ToolDblSided.py:254
msgid ""
"Select on canvas the object(s)\n"
"for which to calculate bounds values."
@@ -15587,39 +13765,39 @@ msgstr ""
"Sélectionnez sur le canevas le ou les objets\n"
"pour lequel calculer les valeurs limites."
-#: flatcamTools/ToolDblSided.py:264
+#: AppTools/ToolDblSided.py:264
msgid "X min"
msgstr "X min"
-#: flatcamTools/ToolDblSided.py:266 flatcamTools/ToolDblSided.py:280
+#: AppTools/ToolDblSided.py:266 AppTools/ToolDblSided.py:280
msgid "Minimum location."
msgstr "Emplacement minimum."
-#: flatcamTools/ToolDblSided.py:278
+#: AppTools/ToolDblSided.py:278
msgid "Y min"
msgstr "Y min"
-#: flatcamTools/ToolDblSided.py:292
+#: AppTools/ToolDblSided.py:292
msgid "X max"
msgstr "X max"
-#: flatcamTools/ToolDblSided.py:294 flatcamTools/ToolDblSided.py:308
+#: AppTools/ToolDblSided.py:294 AppTools/ToolDblSided.py:308
msgid "Maximum location."
msgstr "Emplacement maximum."
-#: flatcamTools/ToolDblSided.py:306
+#: AppTools/ToolDblSided.py:306
msgid "Y max"
msgstr "Y max"
-#: flatcamTools/ToolDblSided.py:317
+#: AppTools/ToolDblSided.py:317
msgid "Center point coordinates"
msgstr "Coordonnées du point central"
-#: flatcamTools/ToolDblSided.py:319
+#: AppTools/ToolDblSided.py:319
msgid "Centroid"
msgstr "Centroïde"
-#: flatcamTools/ToolDblSided.py:321
+#: AppTools/ToolDblSided.py:321
msgid ""
"The center point location for the rectangular\n"
"bounding shape. Centroid. Format is (x, y)."
@@ -15627,11 +13805,11 @@ msgstr ""
"L'emplacement du point central pour le rectangulaire\n"
"forme de délimitation. Centroïde. Le format est (x, y)."
-#: flatcamTools/ToolDblSided.py:330
+#: AppTools/ToolDblSided.py:330
msgid "Calculate Bounds Values"
msgstr "Calculer les valeurs limites"
-#: flatcamTools/ToolDblSided.py:332
+#: AppTools/ToolDblSided.py:332
msgid ""
"Calculate the enveloping rectangular shape coordinates,\n"
"for the selection of objects.\n"
@@ -15641,11 +13819,11 @@ msgstr ""
"pour la sélection d'objets.\n"
"La forme de l'enveloppe est parallèle à l'axe X, Y."
-#: flatcamTools/ToolDblSided.py:352
+#: AppTools/ToolDblSided.py:352
msgid "PCB Alignment"
msgstr "Alignement PCB"
-#: flatcamTools/ToolDblSided.py:354 flatcamTools/ToolDblSided.py:456
+#: AppTools/ToolDblSided.py:354 AppTools/ToolDblSided.py:456
msgid ""
"Creates an Excellon Object containing the\n"
"specified alignment holes and their mirror\n"
@@ -15655,11 +13833,11 @@ msgstr ""
"trous d'alignement spécifiés et leur miroir\n"
"images."
-#: flatcamTools/ToolDblSided.py:361
+#: AppTools/ToolDblSided.py:361
msgid "Drill Diameter"
-msgstr "Dia. de perçage"
+msgstr "Diam. de perçage"
-#: flatcamTools/ToolDblSided.py:390 flatcamTools/ToolDblSided.py:397
+#: AppTools/ToolDblSided.py:390 AppTools/ToolDblSided.py:397
msgid ""
"The reference point used to create the second alignment drill\n"
"from the first alignment drill, by doing mirror.\n"
@@ -15669,11 +13847,11 @@ msgstr ""
"du premier foret d'alignement, en faisant miroir.\n"
"Il peut être modifié dans la section Paramètres miroir -> Référence"
-#: flatcamTools/ToolDblSided.py:410
+#: AppTools/ToolDblSided.py:410
msgid "Alignment Drill Coordinates"
msgstr "Coordonnées du foret d'alignement"
-#: flatcamTools/ToolDblSided.py:412
+#: AppTools/ToolDblSided.py:412
msgid ""
"Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For "
"each set of (x, y) coordinates\n"
@@ -15691,11 +13869,11 @@ msgstr ""
"- un foret en position miroir sur l'axe sélectionné ci-dessus dans 'Aligner "
"l'axe'."
-#: flatcamTools/ToolDblSided.py:420
+#: AppTools/ToolDblSided.py:420
msgid "Drill coordinates"
msgstr "Coordonnées de forage"
-#: flatcamTools/ToolDblSided.py:427
+#: AppTools/ToolDblSided.py:427
msgid ""
"Add alignment drill holes coordinates in the format: (x1, y1), (x2, "
"y2), ... \n"
@@ -15723,23 +13901,23 @@ msgstr ""
"- en saisissant manuellement les coordonnées au format: (x1, y1), (x2, "
"y2), ..."
-#: flatcamTools/ToolDblSided.py:442
+#: AppTools/ToolDblSided.py:442
msgid "Delete Last"
msgstr "Supprimer le dernier"
-#: flatcamTools/ToolDblSided.py:444
+#: AppTools/ToolDblSided.py:444
msgid "Delete the last coordinates tuple in the list."
msgstr "Supprimez le dernier tuple de coordonnées de la liste."
-#: flatcamTools/ToolDblSided.py:454
+#: AppTools/ToolDblSided.py:454
msgid "Create Excellon Object"
msgstr "Créer un objet Excellon"
-#: flatcamTools/ToolDblSided.py:541
+#: AppTools/ToolDblSided.py:541
msgid "2-Sided Tool"
msgstr "Outil de PCB double face"
-#: flatcamTools/ToolDblSided.py:581
+#: AppTools/ToolDblSided.py:581
msgid ""
"'Point' reference is selected and 'Point' coordinates are missing. Add them "
"and retry."
@@ -15747,34 +13925,34 @@ msgstr ""
"La référence 'Point' est sélectionnée et les coordonnées 'Point' sont "
"manquantes. Ajoutez-les et réessayez."
-#: flatcamTools/ToolDblSided.py:600
+#: AppTools/ToolDblSided.py:600
msgid "There is no Box reference object loaded. Load one and retry."
msgstr ""
"Il n'y a pas d'objet de référence Box chargé. Chargez-en un et réessayez."
-#: flatcamTools/ToolDblSided.py:612
+#: AppTools/ToolDblSided.py:612
msgid "No value or wrong format in Drill Dia entry. Add it and retry."
msgstr ""
"Aucune valeur ou format incorrect dans l'entrée du diamètre du Forage. "
"Ajoutez-le et réessayez."
-#: flatcamTools/ToolDblSided.py:623
+#: AppTools/ToolDblSided.py:623
msgid "There are no Alignment Drill Coordinates to use. Add them and retry."
msgstr ""
-"Il n’ya pas de coordonnées de perceuse d’alignement à utiliser. Ajoutez-les "
+"Il n’y a pas de coordonnées de perceuse d’alignement à utiliser. Ajoutez-les "
"et réessayez."
-#: flatcamTools/ToolDblSided.py:648
+#: AppTools/ToolDblSided.py:648
msgid "Excellon object with alignment drills created..."
msgstr "Excellon objet avec des exercices d'alignement créé ..."
-#: flatcamTools/ToolDblSided.py:661 flatcamTools/ToolDblSided.py:704
-#: flatcamTools/ToolDblSided.py:748
+#: AppTools/ToolDblSided.py:661 AppTools/ToolDblSided.py:704
+#: AppTools/ToolDblSided.py:748
msgid "Only Gerber, Excellon and Geometry objects can be mirrored."
msgstr ""
-"Seuls les objets Gerber, Excellon et Geometry peuvent être mis en miroir."
+"Seuls les objets Gerber, Excellon et Géométrie peuvent être mis en miroir."
-#: flatcamTools/ToolDblSided.py:671 flatcamTools/ToolDblSided.py:715
+#: AppTools/ToolDblSided.py:671 AppTools/ToolDblSided.py:715
msgid ""
"There are no Point coordinates in the Point field. Add coords and try "
"again ..."
@@ -15782,41 +13960,45 @@ msgstr ""
"Il n'y a pas de coordonnées de point dans le champ Point. Ajoutez des "
"coordonnées et réessayez ..."
-#: flatcamTools/ToolDblSided.py:681 flatcamTools/ToolDblSided.py:725
-#: flatcamTools/ToolDblSided.py:762
+#: AppTools/ToolDblSided.py:681 AppTools/ToolDblSided.py:725
+#: AppTools/ToolDblSided.py:762
msgid "There is no Box object loaded ..."
msgstr "Il n'y a pas d'objet Box chargé ..."
-#: flatcamTools/ToolDblSided.py:691 flatcamTools/ToolDblSided.py:735
-#: flatcamTools/ToolDblSided.py:772
+#: AppTools/ToolDblSided.py:691 AppTools/ToolDblSided.py:735
+#: AppTools/ToolDblSided.py:772
msgid "was mirrored"
msgstr "a été mis en miroir"
-#: flatcamTools/ToolDblSided.py:700 flatcamTools/ToolPunchGerber.py:533
+#: AppTools/ToolDblSided.py:700 AppTools/ToolPunchGerber.py:533
msgid "There is no Excellon object loaded ..."
msgstr "Il n'y a pas d'objet Excellon chargé ..."
-#: flatcamTools/ToolDblSided.py:744
+#: AppTools/ToolDblSided.py:744
msgid "There is no Geometry object loaded ..."
-msgstr "Il n'y a pas d'objet Geometry chargé ..."
+msgstr "Il n'y a pas d'objet Géométrie chargé ..."
-#: flatcamTools/ToolDistance.py:57 flatcamTools/ToolDistanceMin.py:51
+#: AppTools/ToolDblSided.py:818 App_Main.py:4322 App_Main.py:4477
+msgid "Failed. No object(s) selected..."
+msgstr "Érreur. Aucun objet sélectionné ..."
+
+#: AppTools/ToolDistance.py:57 AppTools/ToolDistanceMin.py:50
msgid "Those are the units in which the distance is measured."
msgstr "Ce sont les unités dans lesquelles la distance est mesurée."
-#: flatcamTools/ToolDistance.py:58 flatcamTools/ToolDistanceMin.py:52
+#: AppTools/ToolDistance.py:58 AppTools/ToolDistanceMin.py:51
msgid "METRIC (mm)"
msgstr "MÉTRIQUE (mm)"
-#: flatcamTools/ToolDistance.py:58 flatcamTools/ToolDistanceMin.py:52
+#: AppTools/ToolDistance.py:58 AppTools/ToolDistanceMin.py:51
msgid "INCH (in)"
msgstr "POUCES (po)"
-#: flatcamTools/ToolDistance.py:64
+#: AppTools/ToolDistance.py:64
msgid "Snap to center"
msgstr "Accrocher au centre"
-#: flatcamTools/ToolDistance.py:66
+#: AppTools/ToolDistance.py:66
msgid ""
"Mouse cursor will snap to the center of the pad/drill\n"
"when it is hovering over the geometry of the pad/drill."
@@ -15824,95 +14006,101 @@ msgstr ""
"Le curseur de la souris se positionnera au centre du pad / drill\n"
"lorsqu'il survole la géométrie du tampon / de la perceuse."
-#: flatcamTools/ToolDistance.py:76
+#: AppTools/ToolDistance.py:76
msgid "Start Coords"
msgstr "Démarrer Coords"
-#: flatcamTools/ToolDistance.py:77 flatcamTools/ToolDistance.py:82
+#: AppTools/ToolDistance.py:77 AppTools/ToolDistance.py:82
msgid "This is measuring Start point coordinates."
msgstr "Ceci mesure les coordonnées du point de départ."
-#: flatcamTools/ToolDistance.py:87
+#: AppTools/ToolDistance.py:87
msgid "Stop Coords"
msgstr "Arrêtez Coords"
-#: flatcamTools/ToolDistance.py:88 flatcamTools/ToolDistance.py:93
+#: AppTools/ToolDistance.py:88 AppTools/ToolDistance.py:93
msgid "This is the measuring Stop point coordinates."
msgstr "Ce sont les coordonnées du point d'arrêt de la mesure."
-#: flatcamTools/ToolDistance.py:98 flatcamTools/ToolDistanceMin.py:63
+#: AppTools/ToolDistance.py:98 AppTools/ToolDistanceMin.py:62
msgid "Dx"
msgstr "Dx"
-#: flatcamTools/ToolDistance.py:99 flatcamTools/ToolDistance.py:104
-#: flatcamTools/ToolDistanceMin.py:64 flatcamTools/ToolDistanceMin.py:93
+#: AppTools/ToolDistance.py:99 AppTools/ToolDistance.py:104
+#: AppTools/ToolDistanceMin.py:63 AppTools/ToolDistanceMin.py:92
msgid "This is the distance measured over the X axis."
msgstr "C'est la distance mesurée sur l'axe X."
-#: flatcamTools/ToolDistance.py:109 flatcamTools/ToolDistanceMin.py:66
+#: AppTools/ToolDistance.py:109 AppTools/ToolDistanceMin.py:65
msgid "Dy"
msgstr "Dy"
-#: flatcamTools/ToolDistance.py:110 flatcamTools/ToolDistance.py:115
-#: flatcamTools/ToolDistanceMin.py:67 flatcamTools/ToolDistanceMin.py:98
+#: AppTools/ToolDistance.py:110 AppTools/ToolDistance.py:115
+#: AppTools/ToolDistanceMin.py:66 AppTools/ToolDistanceMin.py:97
msgid "This is the distance measured over the Y axis."
msgstr "C'est la distance mesurée sur l'axe Y."
-#: flatcamTools/ToolDistance.py:121 flatcamTools/ToolDistance.py:126
-#: flatcamTools/ToolDistanceMin.py:70 flatcamTools/ToolDistanceMin.py:103
+#: AppTools/ToolDistance.py:121 AppTools/ToolDistance.py:126
+#: AppTools/ToolDistanceMin.py:69 AppTools/ToolDistanceMin.py:102
msgid "This is orientation angle of the measuring line."
msgstr "C'est l'angle d'orientation de la ligne de mesure."
-#: flatcamTools/ToolDistance.py:131 flatcamTools/ToolDistanceMin.py:72
+#: AppTools/ToolDistance.py:131 AppTools/ToolDistanceMin.py:71
msgid "DISTANCE"
msgstr "DISTANCE"
-#: flatcamTools/ToolDistance.py:132 flatcamTools/ToolDistance.py:137
+#: AppTools/ToolDistance.py:132 AppTools/ToolDistance.py:137
msgid "This is the point to point Euclidian distance."
msgstr "C'est la distance euclidienne de point à point."
-#: flatcamTools/ToolDistance.py:142 flatcamTools/ToolDistance.py:337
-#: flatcamTools/ToolDistanceMin.py:115
+#: AppTools/ToolDistance.py:142 AppTools/ToolDistance.py:339
+#: AppTools/ToolDistanceMin.py:114
msgid "Measure"
msgstr "Mesure"
-#: flatcamTools/ToolDistance.py:272
+#: AppTools/ToolDistance.py:274
msgid "Working"
msgstr "Travail"
-#: flatcamTools/ToolDistance.py:277
+#: AppTools/ToolDistance.py:279
msgid "MEASURING: Click on the Start point ..."
msgstr "MESURE: Cliquez sur le point de départ ..."
-#: flatcamTools/ToolDistance.py:387
+#: AppTools/ToolDistance.py:389
msgid "Distance Tool finished."
msgstr "Outil Distance terminé."
-#: flatcamTools/ToolDistance.py:455
+#: AppTools/ToolDistance.py:461
msgid "Pads overlapped. Aborting."
msgstr "Les coussinets se chevauchaient. Abandon."
-#: flatcamTools/ToolDistance.py:485
+#: AppTools/ToolDistance.py:489
+#, fuzzy
+#| msgid "Distance Tool finished."
+msgid "Distance Tool cancelled."
+msgstr "Outil Distance terminé."
+
+#: AppTools/ToolDistance.py:494
msgid "MEASURING: Click on the Destination point ..."
msgstr "MESURE: Cliquez sur le point de destination ..."
-#: flatcamTools/ToolDistance.py:494 flatcamTools/ToolDistanceMin.py:285
+#: AppTools/ToolDistance.py:503 AppTools/ToolDistanceMin.py:284
msgid "MEASURING"
msgstr "MESURE"
-#: flatcamTools/ToolDistance.py:495 flatcamTools/ToolDistanceMin.py:286
+#: AppTools/ToolDistance.py:504 AppTools/ToolDistanceMin.py:285
msgid "Result"
msgstr "Résultat"
-#: flatcamTools/ToolDistanceMin.py:32 flatcamTools/ToolDistanceMin.py:144
+#: AppTools/ToolDistanceMin.py:31 AppTools/ToolDistanceMin.py:143
msgid "Minimum Distance Tool"
-msgstr "Outil de Distance Minimale"
+msgstr "Mesure Distance Mini"
-#: flatcamTools/ToolDistanceMin.py:55
+#: AppTools/ToolDistanceMin.py:54
msgid "First object point"
msgstr "Premier point"
-#: flatcamTools/ToolDistanceMin.py:56 flatcamTools/ToolDistanceMin.py:81
+#: AppTools/ToolDistanceMin.py:55 AppTools/ToolDistanceMin.py:80
msgid ""
"This is first object point coordinates.\n"
"This is the start point for measuring distance."
@@ -15920,11 +14108,11 @@ msgstr ""
"Ce sont les premières coordonnées du point d'objet.\n"
"C'est le point de départ pour mesurer la distance."
-#: flatcamTools/ToolDistanceMin.py:59
+#: AppTools/ToolDistanceMin.py:58
msgid "Second object point"
msgstr "Deuxième point"
-#: flatcamTools/ToolDistanceMin.py:60 flatcamTools/ToolDistanceMin.py:87
+#: AppTools/ToolDistanceMin.py:59 AppTools/ToolDistanceMin.py:86
msgid ""
"This is second object point coordinates.\n"
"This is the end point for measuring distance."
@@ -15932,66 +14120,123 @@ msgstr ""
"Ce sont les coordonnées du deuxième point de l'objet.\n"
"C'est le point final pour mesurer la distance."
-#: flatcamTools/ToolDistanceMin.py:73 flatcamTools/ToolDistanceMin.py:108
+#: AppTools/ToolDistanceMin.py:72 AppTools/ToolDistanceMin.py:107
msgid "This is the point to point Euclidean distance."
msgstr "C'est la distance euclidienne de point à point."
-#: flatcamTools/ToolDistanceMin.py:75
+#: AppTools/ToolDistanceMin.py:74
msgid "Half Point"
msgstr "Demi point"
-#: flatcamTools/ToolDistanceMin.py:76 flatcamTools/ToolDistanceMin.py:113
+#: AppTools/ToolDistanceMin.py:75 AppTools/ToolDistanceMin.py:112
msgid "This is the middle point of the point to point Euclidean distance."
msgstr "C'est le point central de la distance euclidienne point à point."
-#: flatcamTools/ToolDistanceMin.py:118
+#: AppTools/ToolDistanceMin.py:117
msgid "Jump to Half Point"
msgstr "Aller au demi point"
-#: flatcamTools/ToolDistanceMin.py:155
+#: AppTools/ToolDistanceMin.py:154
msgid ""
"Select two objects and no more, to measure the distance between them ..."
msgstr ""
"Sélectionnez deux objets et pas plus, pour mesurer la distance qui les "
"sépare ..."
-#: flatcamTools/ToolDistanceMin.py:196 flatcamTools/ToolDistanceMin.py:217
-#: flatcamTools/ToolDistanceMin.py:226 flatcamTools/ToolDistanceMin.py:247
+#: AppTools/ToolDistanceMin.py:195 AppTools/ToolDistanceMin.py:216
+#: AppTools/ToolDistanceMin.py:225 AppTools/ToolDistanceMin.py:246
msgid "Select two objects and no more. Currently the selection has objects: "
-msgstr ""
-"Sélectionnez deux objets et pas plus. Actuellement, la sélection a des "
-"objets: "
+msgstr "Ne sélectionnez pas plus de 2 objets. Nombres de sélections en cours "
-#: flatcamTools/ToolDistanceMin.py:294
+#: AppTools/ToolDistanceMin.py:293
msgid "Objects intersects or touch at"
msgstr "Les objets se croisent ou se touchent à"
-#: flatcamTools/ToolDistanceMin.py:300
+#: AppTools/ToolDistanceMin.py:299
msgid "Jumped to the half point between the two selected objects"
msgstr "Sauté au demi-point entre les deux objets sélectionnés"
-#: flatcamTools/ToolExtractDrills.py:29 flatcamTools/ToolExtractDrills.py:295
+#: AppTools/ToolEtchCompensation.py:74 AppTools/ToolInvertGerber.py:74
+msgid "Gerber object that will be inverted."
+msgstr "Objet Gerber qui sera inversé."
+
+#: AppTools/ToolEtchCompensation.py:83 AppTools/ToolInvertGerber.py:83
+msgid "Parameters for this tool"
+msgstr "Paramètres pour cet outil"
+
+#: AppTools/ToolEtchCompensation.py:88
+#, fuzzy
+#| msgid "Thickness"
+msgid "Copper Thickness"
+msgstr "Épaisseur"
+
+#: AppTools/ToolEtchCompensation.py:90
+#, fuzzy
+#| msgid ""
+#| "How thick the copper growth is intended to be.\n"
+#| "In microns."
+msgid ""
+"The thickness of the copper foil.\n"
+"In microns [um]."
+msgstr ""
+"Quelle épaisseur doit avoir la croissance du cuivre.\n"
+"En microns."
+
+#: AppTools/ToolEtchCompensation.py:101
+#, fuzzy
+#| msgid "Location"
+msgid "Ratio"
+msgstr "Emplacement"
+
+#: AppTools/ToolEtchCompensation.py:103
+msgid ""
+"The ratio of lateral etch versus depth etch.\n"
+"Can be:\n"
+"- custom -> the user will enter a custom value\n"
+"- preselection -> value which depends on a selection of etchants"
+msgstr ""
+
+#: AppTools/ToolEtchCompensation.py:109
+#, fuzzy
+#| msgid "Selection"
+msgid "PreSelection"
+msgstr "Sélection"
+
+#: AppTools/ToolEtchCompensation.py:121
+msgid "Compensate"
+msgstr ""
+
+#: AppTools/ToolEtchCompensation.py:123
+msgid ""
+"Will increase the copper features thickness to compensate the lateral etch."
+msgstr ""
+
+#: AppTools/ToolEtchCompensation.py:181 AppTools/ToolInvertGerber.py:184
+msgid "Invert Tool"
+msgstr "Outil Inverser"
+
+#: AppTools/ToolExtractDrills.py:29 AppTools/ToolExtractDrills.py:295
msgid "Extract Drills"
msgstr "Extraire des forets"
-#: flatcamTools/ToolExtractDrills.py:62
+#: AppTools/ToolExtractDrills.py:62
msgid "Gerber from which to extract drill holes"
msgstr "Gerber d'où extraire les trous de forage"
-#: flatcamTools/ToolExtractDrills.py:297
+#: AppTools/ToolExtractDrills.py:297
msgid "Extract drills from a given Gerber file."
msgstr "Extraire les trous de forage d'un fichier Gerber donné."
-#: flatcamTools/ToolExtractDrills.py:478 flatcamTools/ToolExtractDrills.py:563
-#: flatcamTools/ToolExtractDrills.py:648
+#: AppTools/ToolExtractDrills.py:478 AppTools/ToolExtractDrills.py:563
+#: AppTools/ToolExtractDrills.py:648
msgid "No drills extracted. Try different parameters."
msgstr "Aucun trou de forage extrait. Essayez différents paramètres."
-#: flatcamTools/ToolFiducials.py:56
+#: AppTools/ToolFiducials.py:56
msgid "Fiducials Coordinates"
msgstr "Coordonnées de Fiducials"
-#: flatcamTools/ToolFiducials.py:58
+#: AppTools/ToolFiducials.py:58
msgid ""
"A table with the fiducial points coordinates,\n"
"in the format (x, y)."
@@ -15999,11 +14244,7 @@ msgstr ""
"Un tableau avec les coordonnées des points de repère,\n"
"au format (x, y)."
-#: flatcamTools/ToolFiducials.py:99
-msgid "Top Right"
-msgstr "En haut à droite"
-
-#: flatcamTools/ToolFiducials.py:191
+#: AppTools/ToolFiducials.py:191
msgid ""
"- 'Auto' - automatic placement of fiducials in the corners of the bounding "
"box.\n"
@@ -16013,31 +14254,35 @@ msgstr ""
"sélection.\n"
"- «Manuel» - placement manuel des fiduciaires."
-#: flatcamTools/ToolFiducials.py:259
+#: AppTools/ToolFiducials.py:237
+msgid "Thickness of the line that makes the fiducial."
+msgstr ""
+
+#: AppTools/ToolFiducials.py:259
msgid "Copper Gerber"
msgstr "Gerber cuivré"
-#: flatcamTools/ToolFiducials.py:268
+#: AppTools/ToolFiducials.py:268
msgid "Add Fiducial"
msgstr "Ajouter Fiducial"
-#: flatcamTools/ToolFiducials.py:270
+#: AppTools/ToolFiducials.py:270
msgid "Will add a polygon on the copper layer to serve as fiducial."
msgstr "Ajoutera un polygone sur la couche de cuivre pour servir de repère."
-#: flatcamTools/ToolFiducials.py:286
+#: AppTools/ToolFiducials.py:286
msgid "Soldermask Gerber"
msgstr "Soldermask Gerber"
-#: flatcamTools/ToolFiducials.py:288
+#: AppTools/ToolFiducials.py:288
msgid "The Soldermask Gerber object."
msgstr "L'objet Soldermask Gerber."
-#: flatcamTools/ToolFiducials.py:300
+#: AppTools/ToolFiducials.py:300
msgid "Add Soldermask Opening"
msgstr "Ajouter une ouverture de Soldermask"
-#: flatcamTools/ToolFiducials.py:302
+#: AppTools/ToolFiducials.py:302
msgid ""
"Will add a polygon on the soldermask layer\n"
"to serve as fiducial opening.\n"
@@ -16049,33 +14294,33 @@ msgstr ""
"Le diamètre est toujours le double du diamètre\n"
"pour le cuivre fiducial."
-#: flatcamTools/ToolFiducials.py:516
+#: AppTools/ToolFiducials.py:517
msgid "Click to add first Fiducial. Bottom Left..."
msgstr "Cliquez pour ajouter le premier Fiducial. En bas à gauche..."
-#: flatcamTools/ToolFiducials.py:780
+#: AppTools/ToolFiducials.py:781
msgid "Click to add the last fiducial. Top Right..."
msgstr "Cliquez pour ajouter la dernière fiducie. En haut à droite..."
-#: flatcamTools/ToolFiducials.py:785
+#: AppTools/ToolFiducials.py:786
msgid "Click to add the second fiducial. Top Left or Bottom Right..."
msgstr ""
"Cliquez pour ajouter le deuxième repère. En haut à gauche ou en bas à "
"droite ..."
-#: flatcamTools/ToolFiducials.py:788 flatcamTools/ToolFiducials.py:797
+#: AppTools/ToolFiducials.py:789 AppTools/ToolFiducials.py:798
msgid "Done. All fiducials have been added."
msgstr "Terminé. Tous les fiduciaux ont été ajoutés."
-#: flatcamTools/ToolFiducials.py:874
+#: AppTools/ToolFiducials.py:875
msgid "Fiducials Tool exit."
msgstr "Sortie de l'outil Fiducials."
-#: flatcamTools/ToolFilm.py:42
+#: AppTools/ToolFilm.py:42
msgid "Film PCB"
msgstr "Film PCB"
-#: flatcamTools/ToolFilm.py:78
+#: AppTools/ToolFilm.py:73
msgid ""
"Specify the type of object for which to create the film.\n"
"The object can be of type: Gerber or Geometry.\n"
@@ -16087,15 +14332,7 @@ msgstr ""
"La sélection ici décide du type d’objets qui seront\n"
"dans la liste déroulante d'objets Film."
-#: flatcamTools/ToolFilm.py:92
-msgid "Film Object"
-msgstr "Objet de Film"
-
-#: flatcamTools/ToolFilm.py:94
-msgid "Object for which to create the film."
-msgstr "Objet pour lequel créer le film."
-
-#: flatcamTools/ToolFilm.py:115
+#: AppTools/ToolFilm.py:96
msgid ""
"Specify the type of object to be used as an container for\n"
"film creation. It can be: Gerber or Geometry type.The selection here decide "
@@ -16107,31 +14344,15 @@ msgstr ""
"sélection ici détermine le type d'objets qui seront\n"
"dans la liste déroulante Objet de Box."
-#: flatcamTools/ToolFilm.py:129
-msgid "Box Object"
-msgstr "Objet Box"
-
-#: flatcamTools/ToolFilm.py:131
-msgid ""
-"The actual object that is used as container for the\n"
-" selected object for which we create the film.\n"
-"Usually it is the PCB outline but it can be also the\n"
-"same object for which the film is created."
-msgstr ""
-"L'objet réel qui utilise un conteneur pour la\n"
-" objet sélectionné pour lequel nous créons le film.\n"
-"Habituellement, c’est le contour du PCB, mais cela peut aussi être le\n"
-"même objet pour lequel le film est créé."
-
-#: flatcamTools/ToolFilm.py:273
+#: AppTools/ToolFilm.py:256
msgid "Film Parameters"
msgstr "Paramètres du Film"
-#: flatcamTools/ToolFilm.py:334
+#: AppTools/ToolFilm.py:317
msgid "Punch drill holes"
msgstr "Percer des trous"
-#: flatcamTools/ToolFilm.py:335
+#: AppTools/ToolFilm.py:318
msgid ""
"When checked the generated film will have holes in pads when\n"
"the generated film is positive. This is done to help drilling,\n"
@@ -16141,11 +14362,11 @@ msgstr ""
"le film généré est positif. Ceci est fait pour aider au forage,\n"
"lorsque cela est fait manuellement."
-#: flatcamTools/ToolFilm.py:353
+#: AppTools/ToolFilm.py:336
msgid "Source"
msgstr "La source"
-#: flatcamTools/ToolFilm.py:355
+#: AppTools/ToolFilm.py:338
msgid ""
"The punch hole source can be:\n"
"- Excellon -> an Excellon holes center will serve as reference.\n"
@@ -16155,34 +14376,34 @@ msgstr ""
"- Excellon -> un centre Excellon trous servira de référence.\n"
"- Pad centre -> essayera d'utiliser le centre des pads comme référence."
-#: flatcamTools/ToolFilm.py:360
+#: AppTools/ToolFilm.py:343
msgid "Pad center"
msgstr "Centre pad"
-#: flatcamTools/ToolFilm.py:365
+#: AppTools/ToolFilm.py:348
msgid "Excellon Obj"
msgstr "Excellon objet"
-#: flatcamTools/ToolFilm.py:367
+#: AppTools/ToolFilm.py:350
msgid ""
"Remove the geometry of Excellon from the Film to create the holes in pads."
msgstr ""
"Supprimez la géométrie d’Excellon du film pour créer les trous dans les pads."
-#: flatcamTools/ToolFilm.py:381
+#: AppTools/ToolFilm.py:364
msgid "Punch Size"
msgstr "Taille du poinçon"
-#: flatcamTools/ToolFilm.py:382
+#: AppTools/ToolFilm.py:365
msgid "The value here will control how big is the punch hole in the pads."
msgstr ""
"La valeur ici contrôlera la taille du trou de perforation dans les pads."
-#: flatcamTools/ToolFilm.py:502
+#: AppTools/ToolFilm.py:485
msgid "Save Film"
msgstr "Enregistrer le Film"
-#: flatcamTools/ToolFilm.py:504
+#: AppTools/ToolFilm.py:487
msgid ""
"Create a Film for the selected object, within\n"
"the specified box. Does not create a new \n"
@@ -16194,7 +14415,7 @@ msgstr ""
"Objet FlatCAM, mais enregistrez-le directement dans le\n"
"format sélectionné."
-#: flatcamTools/ToolFilm.py:664
+#: AppTools/ToolFilm.py:649
msgid ""
"Using the Pad center does not work on Geometry objects. Only a Gerber object "
"has pads."
@@ -16202,36 +14423,36 @@ msgstr ""
"L'utilisation du pavé central ne fonctionne pas avec les objets "
"géométriques. Seul un objet Gerber a des pads."
-#: flatcamTools/ToolFilm.py:674
+#: AppTools/ToolFilm.py:659
msgid "No FlatCAM object selected. Load an object for Film and retry."
msgstr ""
"Aucun objet FlatCAM sélectionné. Chargez un objet pour Film et réessayez."
-#: flatcamTools/ToolFilm.py:681
+#: AppTools/ToolFilm.py:666
msgid "No FlatCAM object selected. Load an object for Box and retry."
msgstr ""
"Aucun objet FlatCAM sélectionné. Chargez un objet pour Box et réessayez."
-#: flatcamTools/ToolFilm.py:685
+#: AppTools/ToolFilm.py:670
msgid "No FlatCAM object selected."
msgstr "Aucun objet FlatCAM sélectionné."
-#: flatcamTools/ToolFilm.py:696
+#: AppTools/ToolFilm.py:681
msgid "Generating Film ..."
msgstr "Génération de Film ..."
-#: flatcamTools/ToolFilm.py:745 flatcamTools/ToolFilm.py:749
+#: AppTools/ToolFilm.py:730 AppTools/ToolFilm.py:734
msgid "Export positive film"
msgstr "Exporter un film positif"
-#: flatcamTools/ToolFilm.py:782
+#: AppTools/ToolFilm.py:767
msgid ""
"No Excellon object selected. Load an object for punching reference and retry."
msgstr ""
"Aucun objet Excellon sélectionné. Charger un objet pour la référence de "
"poinçonnage et réessayer."
-#: flatcamTools/ToolFilm.py:806
+#: AppTools/ToolFilm.py:791
msgid ""
" Could not generate punched hole film because the punch hole sizeis bigger "
"than some of the apertures in the Gerber object."
@@ -16239,7 +14460,7 @@ msgstr ""
" Impossible de générer un film perforé car la taille du trou perforé est "
"plus grande que certaines des ouvertures de l’objet Gerber."
-#: flatcamTools/ToolFilm.py:818
+#: AppTools/ToolFilm.py:803
msgid ""
"Could not generate punched hole film because the punch hole sizeis bigger "
"than some of the apertures in the Gerber object."
@@ -16247,7 +14468,7 @@ msgstr ""
"Impossible de générer un film perforé car la taille du trou perforé est plus "
"grande que certaines des ouvertures de l’objet Gerber."
-#: flatcamTools/ToolFilm.py:836
+#: AppTools/ToolFilm.py:821
msgid ""
"Could not generate punched hole film because the newly created object "
"geometry is the same as the one in the source object geometry..."
@@ -16255,32 +14476,32 @@ msgstr ""
"Impossible de générer un film perforé car la géométrie d'objet nouvellement "
"créée est identique à celle de la géométrie de l'objet source ..."
-#: flatcamTools/ToolFilm.py:891 flatcamTools/ToolFilm.py:895
+#: AppTools/ToolFilm.py:876 AppTools/ToolFilm.py:880
msgid "Export negative film"
msgstr "Exporter un film négatif"
-#: flatcamTools/ToolFilm.py:956 flatcamTools/ToolFilm.py:1139
-#: flatcamTools/ToolPanelize.py:430
+#: AppTools/ToolFilm.py:941 AppTools/ToolFilm.py:1124
+#: AppTools/ToolPanelize.py:441
msgid "No object Box. Using instead"
msgstr "Aucune Boîte d'objet. Utiliser à la place"
-#: flatcamTools/ToolFilm.py:1072 flatcamTools/ToolFilm.py:1252
+#: AppTools/ToolFilm.py:1057 AppTools/ToolFilm.py:1237
msgid "Film file exported to"
msgstr "Fichier de film exporté vers"
-#: flatcamTools/ToolFilm.py:1075 flatcamTools/ToolFilm.py:1255
+#: AppTools/ToolFilm.py:1060 AppTools/ToolFilm.py:1240
msgid "Generating Film ... Please wait."
msgstr "Génération de film ... Veuillez patienter."
-#: flatcamTools/ToolImage.py:24
+#: AppTools/ToolImage.py:24
msgid "Image as Object"
msgstr "Image comme objet"
-#: flatcamTools/ToolImage.py:33
+#: AppTools/ToolImage.py:33
msgid "Image to PCB"
msgstr "Image au PCB"
-#: flatcamTools/ToolImage.py:56
+#: AppTools/ToolImage.py:56
msgid ""
"Specify the type of object to create from the image.\n"
"It can be of type: Gerber or Geometry."
@@ -16288,23 +14509,23 @@ msgstr ""
"Spécifiez le type d'objet à créer à partir de l'image.\n"
"Il peut être de type: Gerber ou Géométrie."
-#: flatcamTools/ToolImage.py:65
+#: AppTools/ToolImage.py:65
msgid "DPI value"
msgstr "Valeur DPI"
-#: flatcamTools/ToolImage.py:66
+#: AppTools/ToolImage.py:66
msgid "Specify a DPI value for the image."
msgstr "Spécifiez une valeur DPI pour l'image."
-#: flatcamTools/ToolImage.py:72
+#: AppTools/ToolImage.py:72
msgid "Level of detail"
msgstr "Niveau de détail"
-#: flatcamTools/ToolImage.py:81
+#: AppTools/ToolImage.py:81
msgid "Image type"
msgstr "Type d'image"
-#: flatcamTools/ToolImage.py:83
+#: AppTools/ToolImage.py:83
msgid ""
"Choose a method for the image interpretation.\n"
"B/W means a black & white image. Color means a colored image."
@@ -16313,12 +14534,12 @@ msgstr ""
"N / B signifie une image en noir et blanc. Couleur signifie une image "
"colorée."
-#: flatcamTools/ToolImage.py:92 flatcamTools/ToolImage.py:107
-#: flatcamTools/ToolImage.py:120 flatcamTools/ToolImage.py:133
+#: AppTools/ToolImage.py:92 AppTools/ToolImage.py:107 AppTools/ToolImage.py:120
+#: AppTools/ToolImage.py:133
msgid "Mask value"
msgstr "Valeur du masque"
-#: flatcamTools/ToolImage.py:94
+#: AppTools/ToolImage.py:94
msgid ""
"Mask for monochrome image.\n"
"Takes values between [0 ... 255].\n"
@@ -16334,7 +14555,7 @@ msgstr ""
"0 signifie pas de détail et 255 signifie tout\n"
"(qui est totalement noir)."
-#: flatcamTools/ToolImage.py:109
+#: AppTools/ToolImage.py:109
msgid ""
"Mask for RED color.\n"
"Takes values between [0 ... 255].\n"
@@ -16346,7 +14567,7 @@ msgstr ""
"Décide du niveau de détails à inclure\n"
"dans la géométrie résultante."
-#: flatcamTools/ToolImage.py:122
+#: AppTools/ToolImage.py:122
msgid ""
"Mask for GREEN color.\n"
"Takes values between [0 ... 255].\n"
@@ -16358,7 +14579,7 @@ msgstr ""
"Décide du niveau de détails à inclure\n"
"dans la géométrie résultante."
-#: flatcamTools/ToolImage.py:135
+#: AppTools/ToolImage.py:135
msgid ""
"Mask for BLUE color.\n"
"Takes values between [0 ... 255].\n"
@@ -16370,39 +14591,45 @@ msgstr ""
"Décide du niveau de détails à inclure\n"
"dans la géométrie résultante."
-#: flatcamTools/ToolImage.py:143
+#: AppTools/ToolImage.py:143
msgid "Import image"
msgstr "Importer une image"
-#: flatcamTools/ToolImage.py:145
+#: AppTools/ToolImage.py:145
msgid "Open a image of raster type and then import it in FlatCAM."
msgstr "Ouvrez une image de type raster, puis importez-la dans FlatCAM."
-#: flatcamTools/ToolImage.py:182
+#: AppTools/ToolImage.py:182
msgid "Image Tool"
msgstr "Outil Image"
-#: flatcamTools/ToolImage.py:234 flatcamTools/ToolImage.py:237
+#: AppTools/ToolImage.py:234 AppTools/ToolImage.py:237
msgid "Import IMAGE"
msgstr "Importer une Image"
-#: flatcamTools/ToolImage.py:285
+#: AppTools/ToolImage.py:277 App_Main.py:8264 App_Main.py:8311
+msgid ""
+"Not supported type is picked as parameter. Only Geometry and Gerber are "
+"supported"
+msgstr ""
+"Type non pris en charge sélectionné en tant que paramètre. Seuls Géométrie "
+"et Gerber sont supportés"
+
+#: AppTools/ToolImage.py:285
msgid "Importing Image"
msgstr "Importation d'Image"
-#: flatcamTools/ToolInvertGerber.py:74
-msgid "Gerber object that will be inverted."
-msgstr "Objet Gerber qui sera inversé."
+#: AppTools/ToolImage.py:297 AppTools/ToolPDF.py:154 App_Main.py:8289
+#: App_Main.py:8335 App_Main.py:8399 App_Main.py:8466 App_Main.py:8532
+#: App_Main.py:8597 App_Main.py:8654
+msgid "Opened"
+msgstr "Ouvrir"
-#: flatcamTools/ToolInvertGerber.py:83
-msgid "Parameters for this tool"
-msgstr "Paramètres pour cet outil"
-
-#: flatcamTools/ToolInvertGerber.py:123
+#: AppTools/ToolInvertGerber.py:123
msgid "Invert Gerber"
msgstr "Inverser Gerber"
-#: flatcamTools/ToolInvertGerber.py:125
+#: AppTools/ToolInvertGerber.py:125
msgid ""
"Will invert the Gerber object: areas that have copper\n"
"will be empty of copper and previous empty area will be\n"
@@ -16412,39 +14639,35 @@ msgstr ""
"sera vide de cuivre et la zone vide précédente sera\n"
"rempli de cuivre."
-#: flatcamTools/ToolInvertGerber.py:184
-msgid "Invert Tool"
-msgstr "Outil Inverser"
-
-#: flatcamTools/ToolMove.py:102
+#: AppTools/ToolMove.py:102
msgid "MOVE: Click on the Start point ..."
msgstr "Déplacer: Cliquez sur le point de départ ..."
-#: flatcamTools/ToolMove.py:113
+#: AppTools/ToolMove.py:113
msgid "Cancelled. No object(s) to move."
msgstr "Annulé. Aucun objet à déplacer."
-#: flatcamTools/ToolMove.py:140
+#: AppTools/ToolMove.py:140
msgid "MOVE: Click on the Destination point ..."
msgstr "Déplacer: Cliquez sur le point de destination ..."
-#: flatcamTools/ToolMove.py:163
+#: AppTools/ToolMove.py:163
msgid "Moving..."
msgstr "En mouvement..."
-#: flatcamTools/ToolMove.py:166
+#: AppTools/ToolMove.py:166
msgid "No object(s) selected."
msgstr "Aucun objet sélectionné."
-#: flatcamTools/ToolMove.py:221
+#: AppTools/ToolMove.py:221
msgid "Error when mouse left click."
msgstr "Erreur lorsque le clic gauche de la souris."
-#: flatcamTools/ToolNCC.py:42
+#: AppTools/ToolNCC.py:42
msgid "Non-Copper Clearing"
msgstr "Compensation de la NCC"
-#: flatcamTools/ToolNCC.py:88
+#: AppTools/ToolNCC.py:88
msgid ""
"Specify the type of object to be cleared of excess copper.\n"
"It can be of type: Gerber or Geometry.\n"
@@ -16456,11 +14679,11 @@ msgstr ""
"Ce qui est sélectionné ici dictera le genre\n"
"des objets qui vont remplir la liste déroulante 'Object'."
-#: flatcamTools/ToolNCC.py:110
+#: AppTools/ToolNCC.py:110
msgid "Object to be cleared of excess copper."
msgstr "Objet à nettoyer de l'excès de cuivre."
-#: flatcamTools/ToolNCC.py:122
+#: AppTools/ToolNCC.py:122
msgid ""
"Tools pool from which the algorithm\n"
"will pick the ones used for copper clearing."
@@ -16468,7 +14691,7 @@ msgstr ""
"Pool d'outils à partir duquel l'algorithme\n"
"choisira ceux utilisés pour le nettoyage du cuivre."
-#: flatcamTools/ToolNCC.py:138
+#: AppTools/ToolNCC.py:138
msgid ""
"This is the Tool Number.\n"
"Non copper clearing will start with the tool with the biggest \n"
@@ -16485,7 +14708,7 @@ msgstr ""
"dans la géométrie résultante. C’est parce qu’avec certains outils\n"
"cette fonction ne pourra pas créer de géométrie de peinture."
-#: flatcamTools/ToolNCC.py:146
+#: AppTools/ToolNCC.py:146
msgid ""
"Tool Diameter. It's value (in current FlatCAM units)\n"
"is the cut width into the material."
@@ -16493,7 +14716,7 @@ msgstr ""
"Diamètre de l'outil. C'est sa valeur (en unités FlatCAM actuelles)\n"
"est la largeur de coupe dans le matériau."
-#: flatcamTools/ToolNCC.py:150
+#: AppTools/ToolNCC.py:150
msgid ""
"The Tool Type (TT) can be:\n"
"- Circular with 1 ... 4 teeth -> it is informative only. Being circular,\n"
@@ -16522,7 +14745,7 @@ msgstr ""
"- Forme en V -> il désactivera le paramètre Z-Cut dans la forme d'interface "
"utilisateur de géométrie résultante\n"
"et activer deux champs de formulaire d'interface utilisateur supplémentaires "
-"dans la géométrie résultante: V-Tip Dia et\n"
+"dans la géométrie résultante: V-Tip Diam et\n"
"Angle V-Tip. Le réglage de ces deux valeurs ajustera le paramètre Z-Cut tel\n"
"car la largeur de coupe dans le matériau sera égale à la valeur dans le "
"diamètre de l'outil\n"
@@ -16531,7 +14754,7 @@ msgstr ""
"d'opération\n"
"dans la géométrie résultante comme isolement."
-#: flatcamTools/ToolNCC.py:296 flatcamTools/ToolPaint.py:279
+#: AppTools/ToolNCC.py:296 AppTools/ToolPaint.py:278
msgid ""
"Add a new tool to the Tool Table\n"
"with the diameter specified above."
@@ -16539,8 +14762,8 @@ msgstr ""
"Ajouter un nouvel outil à la table d'outils\n"
"avec le diamètre spécifié ci-dessus."
-#: flatcamTools/ToolNCC.py:318 flatcamTools/ToolPaint.py:301
-#: flatcamTools/ToolSolderPaste.py:130
+#: AppTools/ToolNCC.py:318 AppTools/ToolPaint.py:300
+#: AppTools/ToolSolderPaste.py:130
msgid ""
"Delete a selection of tools in the Tool Table\n"
"by first selecting a row(s) in the Tool Table."
@@ -16548,7 +14771,7 @@ msgstr ""
"Supprimer une sélection d'outils dans la table d'outils\n"
"en sélectionnant d’abord une ou plusieurs lignes dans la table d’outils."
-#: flatcamTools/ToolNCC.py:554
+#: AppTools/ToolNCC.py:554
msgid ""
"The type of FlatCAM object to be used as non copper clearing reference.\n"
"It can be Gerber, Excellon or Geometry."
@@ -16556,123 +14779,154 @@ msgstr ""
"Type d'objet FlatCAM à utiliser comme référence d'effacement non en cuivre.\n"
"Ce peut être Gerber, Excellon ou Géométrie."
-#: flatcamTools/ToolNCC.py:597 flatcamTools/ToolPaint.py:537
+#: AppTools/ToolNCC.py:597 AppTools/ToolPaint.py:536
msgid "Generate Geometry"
msgstr "Générer de la Géométrie"
-#: flatcamTools/ToolNCC.py:1425 flatcamTools/ToolPaint.py:1184
-#: flatcamTools/ToolSolderPaste.py:888
+#: AppTools/ToolNCC.py:932 AppTools/ToolNCC.py:1431 AppTools/ToolPaint.py:857
+#: AppTools/ToolSolderPaste.py:568 AppTools/ToolSolderPaste.py:893
+#: App_Main.py:4190
+msgid "Please enter a tool diameter with non-zero value, in Float format."
+msgstr ""
+"Veuillez saisir un diamètre d’outil avec une valeur non nulle, au format "
+"réel."
+
+#: AppTools/ToolNCC.py:936 AppTools/ToolPaint.py:861
+#: AppTools/ToolSolderPaste.py:572 App_Main.py:4194
+msgid "Adding Tool cancelled"
+msgstr "Ajout d'outil annulé"
+
+#: AppTools/ToolNCC.py:1425 AppTools/ToolPaint.py:1183
+#: AppTools/ToolSolderPaste.py:888
msgid "Please enter a tool diameter to add, in Float format."
msgstr "Veuillez saisir un diamètre d'outil à ajouter, au format réel."
-#: flatcamTools/ToolNCC.py:1456 flatcamTools/ToolNCC.py:4013
-#: flatcamTools/ToolPaint.py:1208 flatcamTools/ToolPaint.py:3603
-#: flatcamTools/ToolSolderPaste.py:917
+#: AppTools/ToolNCC.py:1456 AppTools/ToolNCC.py:4065 AppTools/ToolPaint.py:1207
+#: AppTools/ToolPaint.py:3608 AppTools/ToolSolderPaste.py:917
msgid "Cancelled. Tool already in Tool Table."
msgstr "Annulé. Outil déjà dans la table d'outils."
-#: flatcamTools/ToolNCC.py:1463 flatcamTools/ToolNCC.py:4030
-#: flatcamTools/ToolPaint.py:1213 flatcamTools/ToolPaint.py:3620
+#: AppTools/ToolNCC.py:1463 AppTools/ToolNCC.py:4082 AppTools/ToolPaint.py:1212
+#: AppTools/ToolPaint.py:3625
msgid "New tool added to Tool Table."
msgstr "Nouvel outil ajouté à la table d'outils."
-#: flatcamTools/ToolNCC.py:1507 flatcamTools/ToolPaint.py:1257
+#: AppTools/ToolNCC.py:1507 AppTools/ToolPaint.py:1256
msgid "Tool from Tool Table was edited."
msgstr "L'outil de la table d'outils a été modifié."
-#: flatcamTools/ToolNCC.py:1519 flatcamTools/ToolPaint.py:1269
-#: flatcamTools/ToolSolderPaste.py:978
+#: AppTools/ToolNCC.py:1519 AppTools/ToolPaint.py:1268
+#: AppTools/ToolSolderPaste.py:978
msgid "Cancelled. New diameter value is already in the Tool Table."
msgstr ""
"Annulé. La nouvelle valeur de diamètre est déjà dans la table d'outils."
-#: flatcamTools/ToolNCC.py:1571 flatcamTools/ToolPaint.py:1367
+#: AppTools/ToolNCC.py:1571 AppTools/ToolPaint.py:1366
msgid "Delete failed. Select a tool to delete."
msgstr "La suppression a échoué. Sélectionnez un outil à supprimer."
-#: flatcamTools/ToolNCC.py:1577 flatcamTools/ToolPaint.py:1373
+#: AppTools/ToolNCC.py:1577 AppTools/ToolPaint.py:1372
msgid "Tool(s) deleted from Tool Table."
msgstr "Outil (s) supprimé (s) de la table d'outils."
-#: flatcamTools/ToolNCC.py:1619
+#: AppTools/ToolNCC.py:1620
msgid "Wrong Tool Dia value format entered, use a number."
-msgstr "Mauvais outil Format de valeur Dia entré, utilisez un nombre."
+msgstr "Mauvais outil Format de valeur Diam entré, utilisez un nombre."
-#: flatcamTools/ToolNCC.py:1628 flatcamTools/ToolPaint.py:1424
+#: AppTools/ToolNCC.py:1629 AppTools/ToolPaint.py:1423
msgid "No selected tools in Tool Table."
msgstr "Aucun outil sélectionné dans la table d'outils."
-#: flatcamTools/ToolNCC.py:1704 flatcamTools/ToolPaint.py:1600
+#: AppTools/ToolNCC.py:1705 AppTools/ToolPaint.py:1599
msgid "Click the end point of the paint area."
msgstr "Cliquez sur le point final de la zone de peinture."
-#: flatcamTools/ToolNCC.py:1976 flatcamTools/ToolNCC.py:2964
+#: AppTools/ToolNCC.py:1985 AppTools/ToolNCC.py:3010
msgid "NCC Tool. Preparing non-copper polygons."
msgstr "Outil de la NCC. Préparer des polygones non en cuivre."
-#: flatcamTools/ToolNCC.py:2035 flatcamTools/ToolNCC.py:3092
+#: AppTools/ToolNCC.py:2044 AppTools/ToolNCC.py:3138
msgid "NCC Tool. Calculate 'empty' area."
msgstr "Outil de la NCC. Calculez la surface \"vide\"."
-#: flatcamTools/ToolNCC.py:2054 flatcamTools/ToolNCC.py:2160
-#: flatcamTools/ToolNCC.py:2174 flatcamTools/ToolNCC.py:3105
-#: flatcamTools/ToolNCC.py:3210 flatcamTools/ToolNCC.py:3225
-#: flatcamTools/ToolNCC.py:3491 flatcamTools/ToolNCC.py:3592
-#: flatcamTools/ToolNCC.py:3607
+#: AppTools/ToolNCC.py:2063 AppTools/ToolNCC.py:2172 AppTools/ToolNCC.py:2187
+#: AppTools/ToolNCC.py:3151 AppTools/ToolNCC.py:3256 AppTools/ToolNCC.py:3271
+#: AppTools/ToolNCC.py:3537 AppTools/ToolNCC.py:3638 AppTools/ToolNCC.py:3653
msgid "Buffering finished"
msgstr "Mise en mémoire tampon terminée"
-#: flatcamTools/ToolNCC.py:2062 flatcamTools/ToolNCC.py:2181
-#: flatcamTools/ToolNCC.py:3113 flatcamTools/ToolNCC.py:3232
-#: flatcamTools/ToolNCC.py:3498 flatcamTools/ToolNCC.py:3614
+#: AppTools/ToolNCC.py:2071 AppTools/ToolNCC.py:2194 AppTools/ToolNCC.py:3159
+#: AppTools/ToolNCC.py:3278 AppTools/ToolNCC.py:3544 AppTools/ToolNCC.py:3660
msgid "Could not get the extent of the area to be non copper cleared."
msgstr "Impossible d'obtenir que l'étendue de la zone soit non dépolluée."
-#: flatcamTools/ToolNCC.py:2089 flatcamTools/ToolNCC.py:2167
-#: flatcamTools/ToolNCC.py:3140 flatcamTools/ToolNCC.py:3217
-#: flatcamTools/ToolNCC.py:3518 flatcamTools/ToolNCC.py:3599
+#: AppTools/ToolNCC.py:2101 AppTools/ToolNCC.py:2180 AppTools/ToolNCC.py:3186
+#: AppTools/ToolNCC.py:3263 AppTools/ToolNCC.py:3564 AppTools/ToolNCC.py:3645
msgid ""
"Isolation geometry is broken. Margin is less than isolation tool diameter."
msgstr ""
"La géométrie d'isolement est rompue. La marge est inférieure au diamètre de "
"l'outil d'isolation."
-#: flatcamTools/ToolNCC.py:2184 flatcamTools/ToolNCC.py:3236
-#: flatcamTools/ToolNCC.py:3617
+#: AppTools/ToolNCC.py:2197 AppTools/ToolNCC.py:3282 AppTools/ToolNCC.py:3663
msgid "The selected object is not suitable for copper clearing."
msgstr "L'objet sélectionné ne convient pas à la clarification du cuivre."
-#: flatcamTools/ToolNCC.py:2191 flatcamTools/ToolNCC.py:3243
+#: AppTools/ToolNCC.py:2204 AppTools/ToolNCC.py:3289
msgid "NCC Tool. Finished calculation of 'empty' area."
msgstr "Outil de la NCC. Terminé le calcul de la zone \"vide\"."
-#: flatcamTools/ToolNCC.py:2222 flatcamTools/ToolNCC.py:2224
-#: flatcamTools/ToolNCC.py:2916 flatcamTools/ToolNCC.py:2918
+#: AppTools/ToolNCC.py:2247
+#, fuzzy
+#| msgid "Painting polygon with method: lines."
+msgid "Clearing polygon with method: lines."
+msgstr "Peinture polygone avec méthode: lignes."
+
+#: AppTools/ToolNCC.py:2257
+#, fuzzy
+#| msgid "Failed. Painting polygon with method: seed."
+msgid "Failed. Clearing polygon with method: seed."
+msgstr "Échoué. Peinture polygone avec méthode: graine."
+
+#: AppTools/ToolNCC.py:2266
+#, fuzzy
+#| msgid "Failed. Painting polygon with method: standard."
+msgid "Failed. Clearing polygon with method: standard."
+msgstr "Échoué. Peinture polygone avec méthode: standard."
+
+#: AppTools/ToolNCC.py:2280
+#, fuzzy
+#| msgid "Geometry could not be painted completely"
+msgid "Geometry could not be cleared completely"
+msgstr "La géométrie n'a pas pu être peinte complètement"
+
+#: AppTools/ToolNCC.py:2305 AppTools/ToolNCC.py:2307 AppTools/ToolNCC.py:2962
+#: AppTools/ToolNCC.py:2964
msgid "Non-Copper clearing ..."
msgstr "Dégagement sans cuivre ..."
-#: flatcamTools/ToolNCC.py:2278 flatcamTools/ToolNCC.py:3060
+#: AppTools/ToolNCC.py:2354 AppTools/ToolNCC.py:3106
msgid ""
"NCC Tool. Finished non-copper polygons. Normal copper clearing task started."
msgstr ""
"Outil de la NCC. Polygones non-cuivre finis. La tâche normale de nettoyage "
"du cuivre a commencé."
-#: flatcamTools/ToolNCC.py:2312 flatcamTools/ToolNCC.py:2592
+#: AppTools/ToolNCC.py:2390 AppTools/ToolNCC.py:2638
msgid "NCC Tool failed creating bounding box."
msgstr "L'outil NCC n'a pas pu créer de boîte englobante."
-#: flatcamTools/ToolNCC.py:2326 flatcamTools/ToolNCC.py:2609
-#: flatcamTools/ToolNCC.py:3256 flatcamTools/ToolNCC.py:3642
+#: AppTools/ToolNCC.py:2405 AppTools/ToolNCC.py:2655 AppTools/ToolNCC.py:3302
+#: AppTools/ToolNCC.py:3688
msgid "NCC Tool clearing with tool diameter"
msgstr "L'outil NCC s'efface avec le diamètre de l'outil"
-#: flatcamTools/ToolNCC.py:2326 flatcamTools/ToolNCC.py:2609
-#: flatcamTools/ToolNCC.py:3256 flatcamTools/ToolNCC.py:3642
+#: AppTools/ToolNCC.py:2405 AppTools/ToolNCC.py:2655 AppTools/ToolNCC.py:3302
+#: AppTools/ToolNCC.py:3688
msgid "started."
msgstr "commencé."
-#: flatcamTools/ToolNCC.py:2518 flatcamTools/ToolNCC.py:3417
+#: AppTools/ToolNCC.py:2563 AppTools/ToolNCC.py:3463
msgid ""
"There is no NCC Geometry in the file.\n"
"Usually it means that the tool diameter is too big for the painted "
@@ -16684,26 +14938,26 @@ msgstr ""
"géométrie peinte.\n"
"Modifiez les paramètres de peinture et réessayez."
-#: flatcamTools/ToolNCC.py:2527 flatcamTools/ToolNCC.py:3426
+#: AppTools/ToolNCC.py:2572 AppTools/ToolNCC.py:3472
msgid "NCC Tool clear all done."
msgstr "Outil de la NCC. Effacer tout fait."
-#: flatcamTools/ToolNCC.py:2530 flatcamTools/ToolNCC.py:3429
+#: AppTools/ToolNCC.py:2575 AppTools/ToolNCC.py:3475
msgid "NCC Tool clear all done but the copper features isolation is broken for"
msgstr ""
"Outil de la CCN. Effacer tout fait, mais l'isolation des caractéristiques de "
"cuivre est cassée pour"
-#: flatcamTools/ToolNCC.py:2532 flatcamTools/ToolNCC.py:2817
-#: flatcamTools/ToolNCC.py:3431 flatcamTools/ToolNCC.py:3814
+#: AppTools/ToolNCC.py:2577 AppTools/ToolNCC.py:2863 AppTools/ToolNCC.py:3477
+#: AppTools/ToolNCC.py:3860
msgid "tools"
msgstr "outils"
-#: flatcamTools/ToolNCC.py:2813 flatcamTools/ToolNCC.py:3810
+#: AppTools/ToolNCC.py:2859 AppTools/ToolNCC.py:3856
msgid "NCC Tool Rest Machining clear all done."
msgstr "Outil de la NCC. Reste l'usinage clair tout fait."
-#: flatcamTools/ToolNCC.py:2816 flatcamTools/ToolNCC.py:3813
+#: AppTools/ToolNCC.py:2862 AppTools/ToolNCC.py:3859
msgid ""
"NCC Tool Rest Machining clear all done but the copper features isolation is "
"broken for"
@@ -16711,55 +14965,59 @@ msgstr ""
"Outil de la NCC. Reste l'usinage clair, tout est fait, mais l'isolation des "
"caractéristiques en cuivre est cassée"
-#: flatcamTools/ToolNCC.py:2928
+#: AppTools/ToolNCC.py:2974
msgid "NCC Tool started. Reading parameters."
msgstr "L'outil NCC a commencé. Lecture des paramètres."
-#: flatcamTools/ToolNCC.py:3906
+#: AppTools/ToolNCC.py:3958
msgid ""
"Try to use the Buffering Type = Full in Preferences -> Gerber General. "
"Reload the Gerber file after this change."
msgstr ""
-"Essayez d'utiliser le type de mise en tampon = Plein dans Préférences -> "
+"Essayez d'utiliser le type de mise en tampon = Plein dans Paramètres -> "
"Général Gerber. Rechargez le fichier Gerber après cette modification."
-#: flatcamTools/ToolOptimal.py:79
+#: AppTools/ToolNCC.py:4022 AppTools/ToolPaint.py:3565 App_Main.py:5251
+msgid "Tool from DB added in Tool Table."
+msgstr "Outil ajouté a base de données."
+
+#: AppTools/ToolOptimal.py:79
msgid "Number of decimals kept for found distances."
msgstr "Nombre de décimales conservées pour les distances trouvées."
-#: flatcamTools/ToolOptimal.py:87
+#: AppTools/ToolOptimal.py:87
msgid "Minimum distance"
msgstr "Distance minimale"
-#: flatcamTools/ToolOptimal.py:88
+#: AppTools/ToolOptimal.py:88
msgid "Display minimum distance between copper features."
msgstr "Afficher la distance minimale entre les entités en cuivre."
-#: flatcamTools/ToolOptimal.py:92
+#: AppTools/ToolOptimal.py:92
msgid "Determined"
msgstr "Déterminé"
-#: flatcamTools/ToolOptimal.py:106
+#: AppTools/ToolOptimal.py:106
msgid "Occurring"
msgstr "Se produisant"
-#: flatcamTools/ToolOptimal.py:107
+#: AppTools/ToolOptimal.py:107
msgid "How many times this minimum is found."
msgstr "Combien de fois ce minimum est trouvé."
-#: flatcamTools/ToolOptimal.py:113
+#: AppTools/ToolOptimal.py:113
msgid "Minimum points coordinates"
msgstr "Coordonnées des points minimum"
-#: flatcamTools/ToolOptimal.py:114 flatcamTools/ToolOptimal.py:120
+#: AppTools/ToolOptimal.py:114 AppTools/ToolOptimal.py:120
msgid "Coordinates for points where minimum distance was found."
msgstr "Coordonnées des points où une distance minimale a été trouvée."
-#: flatcamTools/ToolOptimal.py:133 flatcamTools/ToolOptimal.py:209
+#: AppTools/ToolOptimal.py:133 AppTools/ToolOptimal.py:209
msgid "Jump to selected position"
msgstr "Aller à la position sélectionnée"
-#: flatcamTools/ToolOptimal.py:135 flatcamTools/ToolOptimal.py:211
+#: AppTools/ToolOptimal.py:135 AppTools/ToolOptimal.py:211
msgid ""
"Select a position in the Locations text box and then\n"
"click this button."
@@ -16767,11 +15025,11 @@ msgstr ""
"Sélectionnez une position dans la zone de texte Emplacements, puis\n"
"cliquez sur ce bouton."
-#: flatcamTools/ToolOptimal.py:143
+#: AppTools/ToolOptimal.py:143
msgid "Other distances"
msgstr "Autres distances"
-#: flatcamTools/ToolOptimal.py:144
+#: AppTools/ToolOptimal.py:144
msgid ""
"Will display other distances in the Gerber file ordered from\n"
"the minimum to the maximum, not including the absolute minimum."
@@ -16779,13 +15037,13 @@ msgstr ""
"Affiche les autres distances dans le fichier Gerber commandé à\n"
"le minimum au maximum, sans compter le minimum absolu."
-#: flatcamTools/ToolOptimal.py:149
+#: AppTools/ToolOptimal.py:149
msgid "Other distances points coordinates"
msgstr "Autres points de coordonnées"
-#: flatcamTools/ToolOptimal.py:150 flatcamTools/ToolOptimal.py:164
-#: flatcamTools/ToolOptimal.py:171 flatcamTools/ToolOptimal.py:188
-#: flatcamTools/ToolOptimal.py:195
+#: AppTools/ToolOptimal.py:150 AppTools/ToolOptimal.py:164
+#: AppTools/ToolOptimal.py:171 AppTools/ToolOptimal.py:188
+#: AppTools/ToolOptimal.py:195
msgid ""
"Other distances and the coordinates for points\n"
"where the distance was found."
@@ -16793,19 +15051,19 @@ msgstr ""
"Autres distances et coordonnées des points\n"
"où la distance a été trouvée."
-#: flatcamTools/ToolOptimal.py:163
+#: AppTools/ToolOptimal.py:163
msgid "Gerber distances"
msgstr "Distances de Gerber"
-#: flatcamTools/ToolOptimal.py:187
+#: AppTools/ToolOptimal.py:187
msgid "Points coordinates"
msgstr "Coords des points"
-#: flatcamTools/ToolOptimal.py:219
+#: AppTools/ToolOptimal.py:219
msgid "Find Minimum"
msgstr "Trouver le minimum"
-#: flatcamTools/ToolOptimal.py:221
+#: AppTools/ToolOptimal.py:221
msgid ""
"Calculate the minimum distance between copper features,\n"
"this will allow the determination of the right tool to\n"
@@ -16815,11 +15073,11 @@ msgstr ""
"cela permettra de déterminer le bon outil pour\n"
"utiliser pour l'isolation ou le nettoyage du cuivre."
-#: flatcamTools/ToolOptimal.py:346
+#: AppTools/ToolOptimal.py:346
msgid "Only Gerber objects can be evaluated."
msgstr "Seuls les objets de Gerber peuvent être évalués."
-#: flatcamTools/ToolOptimal.py:352
+#: AppTools/ToolOptimal.py:352
msgid ""
"Optimal Tool. Started to search for the minimum distance between copper "
"features."
@@ -16827,15 +15085,15 @@ msgstr ""
"Outil Optimal. Commencé à rechercher la distance minimale entre les entités "
"en cuivre."
-#: flatcamTools/ToolOptimal.py:362
+#: AppTools/ToolOptimal.py:362
msgid "Optimal Tool. Parsing geometry for aperture"
msgstr "Outil Optimal. Analyser la géométrie pour l'ouverture"
-#: flatcamTools/ToolOptimal.py:373
+#: AppTools/ToolOptimal.py:373
msgid "Optimal Tool. Creating a buffer for the object geometry."
msgstr "Outil Optimal. Création d'un tampon pour la géométrie de l'objet."
-#: flatcamTools/ToolOptimal.py:383
+#: AppTools/ToolOptimal.py:383
msgid ""
"The Gerber object has one Polygon as geometry.\n"
"There are no distances between geometry elements to be found."
@@ -16843,47 +15101,55 @@ msgstr ""
"L'objet Gerber a un polygone comme géométrie.\n"
"Il n'y a pas de distance entre les éléments géométriques à trouver."
-#: flatcamTools/ToolOptimal.py:388
+#: AppTools/ToolOptimal.py:388
msgid ""
"Optimal Tool. Finding the distances between each two elements. Iterations"
msgstr ""
"Outil Optimal. Trouver les distances entre chacun des deux éléments. "
"Itérations"
-#: flatcamTools/ToolOptimal.py:423
+#: AppTools/ToolOptimal.py:423
msgid "Optimal Tool. Finding the minimum distance."
msgstr "Outil Optimal. Trouver la distance minimale."
-#: flatcamTools/ToolOptimal.py:439
+#: AppTools/ToolOptimal.py:439
msgid "Optimal Tool. Finished successfully."
msgstr "Outil Optimal. Terminé avec succès."
-#: flatcamTools/ToolPDF.py:157 flatcamTools/ToolPDF.py:161
+#: AppTools/ToolPDF.py:91 AppTools/ToolPDF.py:95
msgid "Open PDF"
msgstr "Ouvrir le PDF"
-#: flatcamTools/ToolPDF.py:164
+#: AppTools/ToolPDF.py:98
msgid "Open PDF cancelled"
msgstr "Ouvrir le PDF annulé"
-#: flatcamTools/ToolPDF.py:195
+#: AppTools/ToolPDF.py:122
msgid "Parsing PDF file ..."
msgstr "Analyse du fichier PDF ..."
-#: flatcamTools/ToolPDF.py:278 flatcamTools/ToolPDF.py:353
+#: AppTools/ToolPDF.py:138 App_Main.py:8497
+msgid "Failed to open"
+msgstr "Impossible d'ouvrir"
+
+#: AppTools/ToolPDF.py:203 AppTools/ToolPcbWizard.py:445 App_Main.py:8446
+msgid "No geometry found in file"
+msgstr "Aucune géométrie trouvée dans le fichier"
+
+#: AppTools/ToolPDF.py:206 AppTools/ToolPDF.py:279
#, python-format
msgid "Rendering PDF layer #%d ..."
msgstr "Rendu du calque PDF #%d ..."
-#: flatcamTools/ToolPDF.py:283 flatcamTools/ToolPDF.py:358
+#: AppTools/ToolPDF.py:210 AppTools/ToolPDF.py:283
msgid "Open PDF file failed."
msgstr "Le fichier PDF ouvert a échoué."
-#: flatcamTools/ToolPDF.py:289 flatcamTools/ToolPDF.py:363
+#: AppTools/ToolPDF.py:215 AppTools/ToolPDF.py:288
msgid "Rendered"
msgstr "Rendu"
-#: flatcamTools/ToolPaint.py:82
+#: AppTools/ToolPaint.py:81
msgid ""
"Specify the type of object to be painted.\n"
"It can be of type: Gerber or Geometry.\n"
@@ -16895,11 +15161,11 @@ msgstr ""
"Ce qui est sélectionné ici dictera le genre\n"
"des objets qui vont remplir la liste déroulante 'Object'."
-#: flatcamTools/ToolPaint.py:104
+#: AppTools/ToolPaint.py:103
msgid "Object to be painted."
msgstr "Objet à peindre."
-#: flatcamTools/ToolPaint.py:117
+#: AppTools/ToolPaint.py:116
msgid ""
"Tools pool from which the algorithm\n"
"will pick the ones used for painting."
@@ -16907,7 +15173,7 @@ msgstr ""
"Pool d'outils à partir duquel l'algorithme\n"
"choisira ceux utilisés pour la peinture."
-#: flatcamTools/ToolPaint.py:134
+#: AppTools/ToolPaint.py:133
msgid ""
"This is the Tool Number.\n"
"Painting will start with the tool with the biggest diameter,\n"
@@ -16923,7 +15189,7 @@ msgstr ""
"dans la géométrie résultante. C’est parce qu’avec certains outils\n"
"cette fonction ne pourra pas créer de géométrie de peinture."
-#: flatcamTools/ToolPaint.py:146
+#: AppTools/ToolPaint.py:145
msgid ""
"The Tool Type (TT) can be:\n"
"- Circular -> it is informative only. Being circular,\n"
@@ -16951,7 +15217,7 @@ msgstr ""
"- Forme en V -> il désactivera le paramètre Z-Cut dans la forme d'interface "
"utilisateur de géométrie résultante\n"
"et activer deux champs de formulaire d'interface utilisateur supplémentaires "
-"dans la géométrie résultante: V-Tip Dia et\n"
+"dans la géométrie résultante: V-Tip Diam et\n"
"Angle V-Tip. Le réglage de ces deux valeurs ajustera le paramètre Z-Cut tel\n"
"car la largeur de coupe dans le matériau sera égale à la valeur dans le "
"diamètre de l'outil\n"
@@ -16960,7 +15226,7 @@ msgstr ""
"d'opération\n"
"dans la géométrie résultante comme isolement."
-#: flatcamTools/ToolPaint.py:498
+#: AppTools/ToolPaint.py:497
msgid ""
"The type of FlatCAM object to be used as paint reference.\n"
"It can be Gerber, Excellon or Geometry."
@@ -16968,7 +15234,7 @@ msgstr ""
"Le type d'objet FlatCAM à utiliser comme référence de peinture.\n"
"Ce peut être Gerber, Excellon ou Géométrie."
-#: flatcamTools/ToolPaint.py:539
+#: AppTools/ToolPaint.py:538
msgid ""
"- 'Area Selection' - left mouse click to start selection of the area to be "
"painted.\n"
@@ -16986,99 +15252,99 @@ msgstr ""
"- 'Objet de référence' - effectuera un nettoyage sans cuivre dans la zone\n"
"spécifié par un autre objet."
-#: flatcamTools/ToolPaint.py:1393
+#: AppTools/ToolPaint.py:1392
#, python-format
msgid "Could not retrieve object: %s"
msgstr "Impossible de récupérer l'objet: %s"
-#: flatcamTools/ToolPaint.py:1403
+#: AppTools/ToolPaint.py:1402
msgid "Can't do Paint on MultiGeo geometries"
msgstr "Impossible de peindre sur des géométries MultiGeo"
-#: flatcamTools/ToolPaint.py:1433
+#: AppTools/ToolPaint.py:1432
msgid "Click on a polygon to paint it."
msgstr "Cliquez sur un polygone pour le peindre."
-#: flatcamTools/ToolPaint.py:1453
+#: AppTools/ToolPaint.py:1452
msgid "Click the start point of the paint area."
msgstr "Cliquez sur le point de départ de la zone de peinture."
-#: flatcamTools/ToolPaint.py:1518
+#: AppTools/ToolPaint.py:1517
msgid "Click to add next polygon or right click to start painting."
msgstr ""
"Cliquez pour ajouter le polygone suivant ou cliquez avec le bouton droit "
"pour commencer à peindre."
-#: flatcamTools/ToolPaint.py:1531
+#: AppTools/ToolPaint.py:1530
msgid "Click to add/remove next polygon or right click to start painting."
msgstr ""
"Cliquez pour ajouter / supprimer le polygone suivant ou cliquez avec le "
"bouton droit pour commencer à peindre."
-#: flatcamTools/ToolPaint.py:2029
+#: AppTools/ToolPaint.py:2034
msgid "Painting polygon with method: lines."
msgstr "Peinture polygone avec méthode: lignes."
-#: flatcamTools/ToolPaint.py:2041
+#: AppTools/ToolPaint.py:2046
msgid "Failed. Painting polygon with method: seed."
msgstr "Échoué. Peinture polygone avec méthode: graine."
-#: flatcamTools/ToolPaint.py:2052
+#: AppTools/ToolPaint.py:2057
msgid "Failed. Painting polygon with method: standard."
msgstr "Échoué. Peinture polygone avec méthode: standard."
-#: flatcamTools/ToolPaint.py:2068
+#: AppTools/ToolPaint.py:2073
msgid "Geometry could not be painted completely"
msgstr "La géométrie n'a pas pu être peinte complètement"
-#: flatcamTools/ToolPaint.py:2097 flatcamTools/ToolPaint.py:2100
-#: flatcamTools/ToolPaint.py:2108 flatcamTools/ToolPaint.py:2411
-#: flatcamTools/ToolPaint.py:2414 flatcamTools/ToolPaint.py:2422
-#: flatcamTools/ToolPaint.py:2910 flatcamTools/ToolPaint.py:2913
-#: flatcamTools/ToolPaint.py:2919
+#: AppTools/ToolPaint.py:2102 AppTools/ToolPaint.py:2105
+#: AppTools/ToolPaint.py:2113 AppTools/ToolPaint.py:2416
+#: AppTools/ToolPaint.py:2419 AppTools/ToolPaint.py:2427
+#: AppTools/ToolPaint.py:2915 AppTools/ToolPaint.py:2918
+#: AppTools/ToolPaint.py:2924
msgid "Paint Tool."
msgstr "Outil de Peinture."
-#: flatcamTools/ToolPaint.py:2097 flatcamTools/ToolPaint.py:2100
-#: flatcamTools/ToolPaint.py:2108
+#: AppTools/ToolPaint.py:2102 AppTools/ToolPaint.py:2105
+#: AppTools/ToolPaint.py:2113
msgid "Normal painting polygon task started."
msgstr "La tâche de peinture normale du polygone a commencé."
-#: flatcamTools/ToolPaint.py:2098 flatcamTools/ToolPaint.py:2412
-#: flatcamTools/ToolPaint.py:2911
+#: AppTools/ToolPaint.py:2103 AppTools/ToolPaint.py:2417
+#: AppTools/ToolPaint.py:2916
msgid "Buffering geometry..."
msgstr "Mise en tampon de la géométrie ..."
-#: flatcamTools/ToolPaint.py:2120 flatcamTools/ToolPaint.py:2429
-#: flatcamTools/ToolPaint.py:2927
+#: AppTools/ToolPaint.py:2125 AppTools/ToolPaint.py:2434
+#: AppTools/ToolPaint.py:2932
msgid "No polygon found."
msgstr "Aucun polygone trouvé."
-#: flatcamTools/ToolPaint.py:2150
+#: AppTools/ToolPaint.py:2155
msgid "Painting polygon..."
msgstr "Peinture polygone ..."
-#: flatcamTools/ToolPaint.py:2160 flatcamTools/ToolPaint.py:2475
-#: flatcamTools/ToolPaint.py:2665 flatcamTools/ToolPaint.py:2973
-#: flatcamTools/ToolPaint.py:3152
+#: AppTools/ToolPaint.py:2165 AppTools/ToolPaint.py:2480
+#: AppTools/ToolPaint.py:2670 AppTools/ToolPaint.py:2978
+#: AppTools/ToolPaint.py:3157
msgid "Painting with tool diameter = "
msgstr "Peinture avec diamètre d'outil = "
-#: flatcamTools/ToolPaint.py:2161 flatcamTools/ToolPaint.py:2476
-#: flatcamTools/ToolPaint.py:2666 flatcamTools/ToolPaint.py:2974
-#: flatcamTools/ToolPaint.py:3153
+#: AppTools/ToolPaint.py:2166 AppTools/ToolPaint.py:2481
+#: AppTools/ToolPaint.py:2671 AppTools/ToolPaint.py:2979
+#: AppTools/ToolPaint.py:3158
msgid "started"
msgstr "commencé"
-#: flatcamTools/ToolPaint.py:2186 flatcamTools/ToolPaint.py:2502
-#: flatcamTools/ToolPaint.py:2692 flatcamTools/ToolPaint.py:3000
-#: flatcamTools/ToolPaint.py:3179
+#: AppTools/ToolPaint.py:2191 AppTools/ToolPaint.py:2507
+#: AppTools/ToolPaint.py:2697 AppTools/ToolPaint.py:3005
+#: AppTools/ToolPaint.py:3184
msgid "Margin parameter too big. Tool is not used"
msgstr "Paramètre de marge trop grand. L'outil n'est pas utilisé"
-#: flatcamTools/ToolPaint.py:2244 flatcamTools/ToolPaint.py:2571
-#: flatcamTools/ToolPaint.py:2749 flatcamTools/ToolPaint.py:3063
-#: flatcamTools/ToolPaint.py:3241
+#: AppTools/ToolPaint.py:2249 AppTools/ToolPaint.py:2576
+#: AppTools/ToolPaint.py:2754 AppTools/ToolPaint.py:3068
+#: AppTools/ToolPaint.py:3246
msgid ""
"Could not do Paint. Try a different combination of parameters. Or a "
"different strategy of paint"
@@ -17086,9 +15352,9 @@ msgstr ""
"Impossible de faire de la Peinture. Essayez une combinaison de paramètres "
"différente. Ou une stratégie de peinture différente"
-#: flatcamTools/ToolPaint.py:2301 flatcamTools/ToolPaint.py:2637
-#: flatcamTools/ToolPaint.py:2806 flatcamTools/ToolPaint.py:3124
-#: flatcamTools/ToolPaint.py:3303
+#: AppTools/ToolPaint.py:2306 AppTools/ToolPaint.py:2642
+#: AppTools/ToolPaint.py:2811 AppTools/ToolPaint.py:3129
+#: AppTools/ToolPaint.py:3308
msgid ""
"There is no Painting Geometry in the file.\n"
"Usually it means that the tool diameter is too big for the painted "
@@ -17100,66 +15366,66 @@ msgstr ""
"géométrie peinte.\n"
"Modifiez les paramètres de peinture et réessayez."
-#: flatcamTools/ToolPaint.py:2324
+#: AppTools/ToolPaint.py:2329
msgid "Paint Single failed."
msgstr "La peinture «simple» a échoué."
-#: flatcamTools/ToolPaint.py:2330
+#: AppTools/ToolPaint.py:2335
msgid "Paint Single Done."
msgstr "La Peinture Simple était terminée."
-#: flatcamTools/ToolPaint.py:2332 flatcamTools/ToolPaint.py:2842
-#: flatcamTools/ToolPaint.py:3339
+#: AppTools/ToolPaint.py:2337 AppTools/ToolPaint.py:2847
+#: AppTools/ToolPaint.py:3344
msgid "Polygon Paint started ..."
msgstr "Polygon Paint a commencé ..."
-#: flatcamTools/ToolPaint.py:2411 flatcamTools/ToolPaint.py:2414
-#: flatcamTools/ToolPaint.py:2422
+#: AppTools/ToolPaint.py:2416 AppTools/ToolPaint.py:2419
+#: AppTools/ToolPaint.py:2427
msgid "Paint all polygons task started."
msgstr "La tâche de peinture de tous les polygones a commencé."
-#: flatcamTools/ToolPaint.py:2453 flatcamTools/ToolPaint.py:2951
+#: AppTools/ToolPaint.py:2458 AppTools/ToolPaint.py:2956
msgid "Painting polygons..."
msgstr "Peindre des polygones ..."
-#: flatcamTools/ToolPaint.py:2646
+#: AppTools/ToolPaint.py:2651
msgid "Paint All Done."
msgstr "Peindre Tout fait."
-#: flatcamTools/ToolPaint.py:2815 flatcamTools/ToolPaint.py:3312
+#: AppTools/ToolPaint.py:2820 AppTools/ToolPaint.py:3317
msgid "Paint All with Rest-Machining done."
msgstr "Peignez tout avec le reste de l'usinage fait."
-#: flatcamTools/ToolPaint.py:2834
+#: AppTools/ToolPaint.py:2839
msgid "Paint All failed."
msgstr "La peinture «Tout» a échoué."
-#: flatcamTools/ToolPaint.py:2840
+#: AppTools/ToolPaint.py:2845
msgid "Paint Poly All Done."
msgstr "Peinture poly tout fait."
-#: flatcamTools/ToolPaint.py:2910 flatcamTools/ToolPaint.py:2913
-#: flatcamTools/ToolPaint.py:2919
+#: AppTools/ToolPaint.py:2915 AppTools/ToolPaint.py:2918
+#: AppTools/ToolPaint.py:2924
msgid "Painting area task started."
msgstr "La tâche de zone de peinture a commencé."
-#: flatcamTools/ToolPaint.py:3133
+#: AppTools/ToolPaint.py:3138
msgid "Paint Area Done."
msgstr "Peinture de la Zone réalisée."
-#: flatcamTools/ToolPaint.py:3331
+#: AppTools/ToolPaint.py:3336
msgid "Paint Area failed."
msgstr "Échec de la peinture de la Zone."
-#: flatcamTools/ToolPaint.py:3337
+#: AppTools/ToolPaint.py:3342
msgid "Paint Poly Area Done."
msgstr "La peinture 'Poly Zone' est terminée."
-#: flatcamTools/ToolPanelize.py:34
+#: AppTools/ToolPanelize.py:35
msgid "Panelize PCB"
msgstr "Panéliser PCB"
-#: flatcamTools/ToolPanelize.py:56
+#: AppTools/ToolPanelize.py:55
msgid ""
"Specify the type of object to be panelized\n"
"It can be of type: Gerber, Excellon or Geometry.\n"
@@ -17171,7 +15437,7 @@ msgstr ""
"La sélection ici décide du type d’objets qui seront\n"
"dans la liste déroulante d'objets."
-#: flatcamTools/ToolPanelize.py:89
+#: AppTools/ToolPanelize.py:88
msgid ""
"Object to be panelized. This means that it will\n"
"be duplicated in an array of rows and columns."
@@ -17179,11 +15445,11 @@ msgstr ""
"Objet à paramétrer. Cela signifie qu'il sera\n"
"être dupliqué dans un tableau de lignes et de colonnes."
-#: flatcamTools/ToolPanelize.py:102
+#: AppTools/ToolPanelize.py:100
msgid "Penelization Reference"
msgstr "Référence de pénalisation"
-#: flatcamTools/ToolPanelize.py:104
+#: AppTools/ToolPanelize.py:102
msgid ""
"Choose the reference for panelization:\n"
"- Object = the bounding box of a different object\n"
@@ -17203,11 +15469,11 @@ msgstr ""
"à cet objet de référence maintenant donc le panneau\n"
"objets synchronisés."
-#: flatcamTools/ToolPanelize.py:125
+#: AppTools/ToolPanelize.py:123
msgid "Box Type"
msgstr "Type de Box"
-#: flatcamTools/ToolPanelize.py:127
+#: AppTools/ToolPanelize.py:125
msgid ""
"Specify the type of object to be used as an container for\n"
"panelization. It can be: Gerber or Geometry type.\n"
@@ -17219,7 +15485,7 @@ msgstr ""
"La sélection ici décide du type d’objets qui seront\n"
"dans la liste déroulante Objet de Box."
-#: flatcamTools/ToolPanelize.py:141
+#: AppTools/ToolPanelize.py:139
msgid ""
"The actual object that is used as container for the\n"
" selected object that is to be panelized."
@@ -17227,11 +15493,11 @@ msgstr ""
"L'objet réel qui utilise un conteneur pour la\n"
"objet sélectionné à panéliser."
-#: flatcamTools/ToolPanelize.py:147
+#: AppTools/ToolPanelize.py:149
msgid "Panel Data"
msgstr "Données du Panneau"
-#: flatcamTools/ToolPanelize.py:149
+#: AppTools/ToolPanelize.py:151
msgid ""
"This informations will shape the resulting panel.\n"
"The number of rows and columns will set how many\n"
@@ -17247,7 +15513,7 @@ msgstr ""
"Les espacements détermineront la distance entre deux\n"
"éléments du tableau de panneaux."
-#: flatcamTools/ToolPanelize.py:208
+#: AppTools/ToolPanelize.py:214
msgid ""
"Choose the type of object for the panel object:\n"
"- Geometry\n"
@@ -17257,15 +15523,15 @@ msgstr ""
"- Géométrie\n"
"- Gerber"
-#: flatcamTools/ToolPanelize.py:216
+#: AppTools/ToolPanelize.py:222
msgid "Constrain panel within"
msgstr "Contraindre le panneau dans"
-#: flatcamTools/ToolPanelize.py:252
+#: AppTools/ToolPanelize.py:263
msgid "Panelize Object"
msgstr "Objet Panelize"
-#: flatcamTools/ToolPanelize.py:254 flatcamTools/ToolRulesCheck.py:501
+#: AppTools/ToolPanelize.py:265 AppTools/ToolRulesCheck.py:501
msgid ""
"Panelize the specified object around the specified box.\n"
"In other words it creates multiple copies of the source object,\n"
@@ -17275,33 +15541,33 @@ msgstr ""
"En d'autres termes, il crée plusieurs copies de l'objet source,\n"
"disposés dans un tableau 2D de lignes et de colonnes."
-#: flatcamTools/ToolPanelize.py:322
+#: AppTools/ToolPanelize.py:333
msgid "Panel. Tool"
msgstr "Panneau. Outil"
-#: flatcamTools/ToolPanelize.py:457
+#: AppTools/ToolPanelize.py:468
msgid "Columns or Rows are zero value. Change them to a positive integer."
msgstr ""
"Les colonnes ou les lignes ont une valeur zéro. Changez-les en un entier "
"positif."
-#: flatcamTools/ToolPanelize.py:494
+#: AppTools/ToolPanelize.py:505
msgid "Generating panel ... "
msgstr "Panneau de génération ... "
-#: flatcamTools/ToolPanelize.py:777
+#: AppTools/ToolPanelize.py:788
msgid "Generating panel ... Adding the Gerber code."
msgstr "Panneau de génération ... Ajout du code Gerber."
-#: flatcamTools/ToolPanelize.py:785
+#: AppTools/ToolPanelize.py:796
msgid "Generating panel... Spawning copies"
msgstr "Génération de panneau ... Création de copies"
-#: flatcamTools/ToolPanelize.py:792
+#: AppTools/ToolPanelize.py:803
msgid "Panel done..."
msgstr "Panel terminé ..."
-#: flatcamTools/ToolPanelize.py:795
+#: AppTools/ToolPanelize.py:806
#, python-brace-format
msgid ""
"{text} Too big for the constrain area. Final panel has {col} columns and "
@@ -17310,27 +15576,27 @@ msgstr ""
"{text} Trop grand pour la zone contrainte. Le panneau final contient {col} "
"colonnes et {row}"
-#: flatcamTools/ToolPanelize.py:804
+#: AppTools/ToolPanelize.py:815
msgid "Panel created successfully."
msgstr "Panneau créé avec succès."
-#: flatcamTools/ToolPcbWizard.py:31
+#: AppTools/ToolPcbWizard.py:31
msgid "PcbWizard Import Tool"
msgstr "Outil d'importation PcbWizard"
-#: flatcamTools/ToolPcbWizard.py:40
+#: AppTools/ToolPcbWizard.py:40
msgid "Import 2-file Excellon"
msgstr "Importer 2-fichiers Excellon"
-#: flatcamTools/ToolPcbWizard.py:51
+#: AppTools/ToolPcbWizard.py:51
msgid "Load files"
msgstr "Charger des fichiers"
-#: flatcamTools/ToolPcbWizard.py:57
+#: AppTools/ToolPcbWizard.py:57
msgid "Excellon file"
msgstr "Fichier Excellon"
-#: flatcamTools/ToolPcbWizard.py:59
+#: AppTools/ToolPcbWizard.py:59
msgid ""
"Load the Excellon file.\n"
"Usually it has a .DRL extension"
@@ -17338,51 +15604,51 @@ msgstr ""
"Chargez le fichier Excellon.\n"
"Il a généralement une extension .DRL"
-#: flatcamTools/ToolPcbWizard.py:65
+#: AppTools/ToolPcbWizard.py:65
msgid "INF file"
msgstr "Fichier INF"
-#: flatcamTools/ToolPcbWizard.py:67
+#: AppTools/ToolPcbWizard.py:67
msgid "Load the INF file."
msgstr "Chargez le fichier INF."
-#: flatcamTools/ToolPcbWizard.py:79
+#: AppTools/ToolPcbWizard.py:79
msgid "Tool Number"
msgstr "Numéro d'outil"
-#: flatcamTools/ToolPcbWizard.py:81
+#: AppTools/ToolPcbWizard.py:81
msgid "Tool diameter in file units."
msgstr "Diamètre de l'outil en unités de fichier."
-#: flatcamTools/ToolPcbWizard.py:87
+#: AppTools/ToolPcbWizard.py:87
msgid "Excellon format"
msgstr "Excellon format"
-#: flatcamTools/ToolPcbWizard.py:95
+#: AppTools/ToolPcbWizard.py:95
msgid "Int. digits"
msgstr "Chiffres entiers"
-#: flatcamTools/ToolPcbWizard.py:97
+#: AppTools/ToolPcbWizard.py:97
msgid "The number of digits for the integral part of the coordinates."
msgstr "Le nombre de chiffres pour la partie intégrale des coordonnées."
-#: flatcamTools/ToolPcbWizard.py:104
+#: AppTools/ToolPcbWizard.py:104
msgid "Frac. digits"
msgstr "Chiffres fract"
-#: flatcamTools/ToolPcbWizard.py:106
+#: AppTools/ToolPcbWizard.py:106
msgid "The number of digits for the fractional part of the coordinates."
msgstr "Le nombre de chiffres pour la partie décimale des coordonnées."
-#: flatcamTools/ToolPcbWizard.py:113
+#: AppTools/ToolPcbWizard.py:113
msgid "No Suppression"
msgstr "Pas de suppression"
-#: flatcamTools/ToolPcbWizard.py:114
+#: AppTools/ToolPcbWizard.py:114
msgid "Zeros supp."
msgstr "Zéros Supp."
-#: flatcamTools/ToolPcbWizard.py:116
+#: AppTools/ToolPcbWizard.py:116
msgid ""
"The type of zeros suppression used.\n"
"Can be of type:\n"
@@ -17396,7 +15662,7 @@ msgstr ""
"- TZ = les zéros à la fin sont conservés\n"
"- Pas de suppression = pas de suppression de zéro"
-#: flatcamTools/ToolPcbWizard.py:129
+#: AppTools/ToolPcbWizard.py:129
msgid ""
"The type of units that the coordinates and tool\n"
"diameters are using. Can be INCH or MM."
@@ -17404,11 +15670,11 @@ msgstr ""
"Le type d'unités que les coordonnées et l'outil\n"
"diamètres utilisent. Peut être Pouce ou MM."
-#: flatcamTools/ToolPcbWizard.py:136
+#: AppTools/ToolPcbWizard.py:136
msgid "Import Excellon"
msgstr "Importer un fichier Excellon"
-#: flatcamTools/ToolPcbWizard.py:138
+#: AppTools/ToolPcbWizard.py:138
msgid ""
"Import in FlatCAM an Excellon file\n"
"that store it's information's in 2 files.\n"
@@ -17420,19 +15686,19 @@ msgstr ""
"On a généralement une extension .DRL alors que\n"
"l'autre a une extension .INF."
-#: flatcamTools/ToolPcbWizard.py:197
+#: AppTools/ToolPcbWizard.py:197
msgid "PCBWizard Tool"
msgstr "Outil PCBWizard"
-#: flatcamTools/ToolPcbWizard.py:291 flatcamTools/ToolPcbWizard.py:295
+#: AppTools/ToolPcbWizard.py:291 AppTools/ToolPcbWizard.py:295
msgid "Load PcbWizard Excellon file"
msgstr "Charger le fichier Excellon PcbWizard"
-#: flatcamTools/ToolPcbWizard.py:314 flatcamTools/ToolPcbWizard.py:318
+#: AppTools/ToolPcbWizard.py:314 AppTools/ToolPcbWizard.py:318
msgid "Load PcbWizard INF file"
msgstr "Charger le fichier INF PcbWizard"
-#: flatcamTools/ToolPcbWizard.py:366
+#: AppTools/ToolPcbWizard.py:366
msgid ""
"The INF file does not contain the tool table.\n"
"Try to open the Excellon file from File -> Open -> Excellon\n"
@@ -17443,173 +15709,184 @@ msgstr ""
"Excellon.\n"
"et éditez les diamètres de perçage manuellement."
-#: flatcamTools/ToolPcbWizard.py:387
+#: AppTools/ToolPcbWizard.py:387
msgid "PcbWizard .INF file loaded."
msgstr "Fichier PcbWizard .INF chargé."
-#: flatcamTools/ToolPcbWizard.py:392
+#: AppTools/ToolPcbWizard.py:392
msgid "Main PcbWizard Excellon file loaded."
msgstr "Le fichier principal de PcbWizard Excellon est chargé."
-#: flatcamTools/ToolPcbWizard.py:427
+#: AppTools/ToolPcbWizard.py:424 App_Main.py:8424
+msgid "This is not Excellon file."
+msgstr "Ce n'est pas un fichier Excellon."
+
+#: AppTools/ToolPcbWizard.py:427
msgid "Cannot parse file"
msgstr "Impossible d'analyser le fichier"
-#: flatcamTools/ToolPcbWizard.py:450
+#: AppTools/ToolPcbWizard.py:450
msgid "Importing Excellon."
msgstr "Importer Excellon."
-#: flatcamTools/ToolPcbWizard.py:457
+#: AppTools/ToolPcbWizard.py:457
msgid "Import Excellon file failed."
msgstr "L'importation du fichier Excellon a échoué."
-#: flatcamTools/ToolPcbWizard.py:464
+#: AppTools/ToolPcbWizard.py:464
msgid "Imported"
msgstr "Importé"
-#: flatcamTools/ToolPcbWizard.py:467
+#: AppTools/ToolPcbWizard.py:467
msgid "Excellon merging is in progress. Please wait..."
msgstr "Excellon fusion est en cours. S'il vous plaît, attendez..."
-#: flatcamTools/ToolPcbWizard.py:469
+#: AppTools/ToolPcbWizard.py:469
msgid "The imported Excellon file is empty."
msgstr "Le fichier Excellon importé est Aucun."
-#: flatcamTools/ToolProperties.py:131
+#: AppTools/ToolProperties.py:116 App_Main.py:4664 App_Main.py:6718
+#: App_Main.py:6813 App_Main.py:6854 App_Main.py:6895 App_Main.py:6936
+#: App_Main.py:6977 App_Main.py:7021 App_Main.py:7065 App_Main.py:7585
+#: App_Main.py:7589
+msgid "No object selected."
+msgstr "Aucun objet sélectionné."
+
+#: AppTools/ToolProperties.py:131
msgid "Object Properties are displayed."
msgstr "Les Propriétés de l'objet sont affichées."
-#: flatcamTools/ToolProperties.py:136
+#: AppTools/ToolProperties.py:136
msgid "Properties Tool"
msgstr "Outil de Propriétés"
-#: flatcamTools/ToolProperties.py:150
+#: AppTools/ToolProperties.py:150
msgid "TYPE"
msgstr "TYPE"
-#: flatcamTools/ToolProperties.py:151
+#: AppTools/ToolProperties.py:151
msgid "NAME"
msgstr "NOM"
-#: flatcamTools/ToolProperties.py:153
+#: AppTools/ToolProperties.py:153
msgid "Dimensions"
msgstr "Dimensions"
-#: flatcamTools/ToolProperties.py:181
+#: AppTools/ToolProperties.py:181
msgid "Geo Type"
msgstr "Type de géo"
-#: flatcamTools/ToolProperties.py:184
+#: AppTools/ToolProperties.py:184
msgid "Single-Geo"
msgstr "Géo-unique"
-#: flatcamTools/ToolProperties.py:185
+#: AppTools/ToolProperties.py:185
msgid "Multi-Geo"
msgstr "Multi-géo"
-#: flatcamTools/ToolProperties.py:196
+#: AppTools/ToolProperties.py:196
msgid "Calculating dimensions ... Please wait."
msgstr "Calcul des dimensions ... Veuillez patienter."
-#: flatcamTools/ToolProperties.py:339 flatcamTools/ToolProperties.py:343
-#: flatcamTools/ToolProperties.py:345
+#: AppTools/ToolProperties.py:339 AppTools/ToolProperties.py:343
+#: AppTools/ToolProperties.py:345
msgid "Inch"
msgstr "Pouce"
-#: flatcamTools/ToolProperties.py:339 flatcamTools/ToolProperties.py:344
-#: flatcamTools/ToolProperties.py:346
+#: AppTools/ToolProperties.py:339 AppTools/ToolProperties.py:344
+#: AppTools/ToolProperties.py:346
msgid "Metric"
msgstr "Métrique"
-#: flatcamTools/ToolProperties.py:421 flatcamTools/ToolProperties.py:486
+#: AppTools/ToolProperties.py:421 AppTools/ToolProperties.py:486
msgid "Drills number"
msgstr "Nombre de forets"
-#: flatcamTools/ToolProperties.py:422 flatcamTools/ToolProperties.py:488
+#: AppTools/ToolProperties.py:422 AppTools/ToolProperties.py:488
msgid "Slots number"
msgstr "Nombre d'emplacements"
-#: flatcamTools/ToolProperties.py:424
+#: AppTools/ToolProperties.py:424
msgid "Drills total number:"
msgstr "Nombre total de forets:"
-#: flatcamTools/ToolProperties.py:425
+#: AppTools/ToolProperties.py:425
msgid "Slots total number:"
msgstr "Nombre total d'emplacements:"
-#: flatcamTools/ToolProperties.py:452 flatcamTools/ToolProperties.py:455
-#: flatcamTools/ToolProperties.py:458 flatcamTools/ToolProperties.py:483
+#: AppTools/ToolProperties.py:452 AppTools/ToolProperties.py:455
+#: AppTools/ToolProperties.py:458 AppTools/ToolProperties.py:483
msgid "Present"
msgstr "Présent"
-#: flatcamTools/ToolProperties.py:453 flatcamTools/ToolProperties.py:484
+#: AppTools/ToolProperties.py:453 AppTools/ToolProperties.py:484
msgid "Solid Geometry"
msgstr "Géométrie solide"
-#: flatcamTools/ToolProperties.py:456
+#: AppTools/ToolProperties.py:456
msgid "GCode Text"
msgstr "Texte GCode"
-#: flatcamTools/ToolProperties.py:459
+#: AppTools/ToolProperties.py:459
msgid "GCode Geometry"
msgstr "Géométrie GCode"
-#: flatcamTools/ToolProperties.py:462
+#: AppTools/ToolProperties.py:462
msgid "Data"
msgstr "Les données"
-#: flatcamTools/ToolProperties.py:495
+#: AppTools/ToolProperties.py:495
msgid "Depth of Cut"
msgstr "Profondeur de coupe"
-#: flatcamTools/ToolProperties.py:507
+#: AppTools/ToolProperties.py:507
msgid "Clearance Height"
msgstr "Hauteur de dégagement"
-#: flatcamTools/ToolProperties.py:539
+#: AppTools/ToolProperties.py:539
msgid "Routing time"
msgstr "Temps d'acheminement"
-#: flatcamTools/ToolProperties.py:546
+#: AppTools/ToolProperties.py:546
msgid "Travelled distance"
msgstr "Distance parcourue"
-#: flatcamTools/ToolProperties.py:564
+#: AppTools/ToolProperties.py:564
msgid "Width"
msgstr "Largeur"
-#: flatcamTools/ToolProperties.py:570 flatcamTools/ToolProperties.py:578
+#: AppTools/ToolProperties.py:570 AppTools/ToolProperties.py:578
msgid "Box Area"
msgstr "Zone de la boîte"
-#: flatcamTools/ToolProperties.py:573 flatcamTools/ToolProperties.py:581
+#: AppTools/ToolProperties.py:573 AppTools/ToolProperties.py:581
msgid "Convex_Hull Area"
msgstr "Zone de coque convexe"
-#: flatcamTools/ToolProperties.py:588 flatcamTools/ToolProperties.py:591
+#: AppTools/ToolProperties.py:588 AppTools/ToolProperties.py:591
msgid "Copper Area"
msgstr "Zone de cuivre"
-#: flatcamTools/ToolPunchGerber.py:30 flatcamTools/ToolPunchGerber.py:323
+#: AppTools/ToolPunchGerber.py:30 AppTools/ToolPunchGerber.py:323
msgid "Punch Gerber"
msgstr "Percer Gerber"
-#: flatcamTools/ToolPunchGerber.py:65
+#: AppTools/ToolPunchGerber.py:65
msgid "Gerber into which to punch holes"
msgstr "Gerber pour percer des trous"
-#: flatcamTools/ToolPunchGerber.py:85
+#: AppTools/ToolPunchGerber.py:85
msgid "ALL"
msgstr "TOUT"
-#: flatcamTools/ToolPunchGerber.py:166
+#: AppTools/ToolPunchGerber.py:166
msgid ""
"Remove the geometry of Excellon from the Gerber to create the holes in pads."
msgstr ""
"Retirez la géométrie d'Excellon du Gerber pour créer les trous dans les "
"coussinets."
-#: flatcamTools/ToolPunchGerber.py:325
+#: AppTools/ToolPunchGerber.py:325
msgid ""
"Create a Gerber object from the selected object, within\n"
"the specified box."
@@ -17617,15 +15894,15 @@ msgstr ""
"Créez un objet Gerber à partir de l'objet sélectionné, dans\n"
"la case spécifiée."
-#: flatcamTools/ToolPunchGerber.py:425
+#: AppTools/ToolPunchGerber.py:425
msgid "Punch Tool"
msgstr "Outil de Poinçonnage"
-#: flatcamTools/ToolPunchGerber.py:599
+#: AppTools/ToolPunchGerber.py:599
msgid "The value of the fixed diameter is 0.0. Aborting."
msgstr "La valeur du diamètre fixe est de 0,0. Abandon."
-#: flatcamTools/ToolPunchGerber.py:607 flatcamTools/ToolPunchGerber.py:619
+#: AppTools/ToolPunchGerber.py:602
msgid ""
"Could not generate punched hole Gerber because the punch hole size is bigger "
"than some of the apertures in the Gerber object."
@@ -17633,7 +15910,7 @@ msgstr ""
"Impossible de générer le trou perforé Gerber car la taille du trou poinçonné "
"est plus grande que certaines des ouvertures de l'objet Gerber."
-#: flatcamTools/ToolPunchGerber.py:656
+#: AppTools/ToolPunchGerber.py:665
msgid ""
"Could not generate punched hole Gerber because the newly created object "
"geometry is the same as the one in the source object geometry..."
@@ -17642,23 +15919,23 @@ msgstr ""
"nouvellement créée est la même que celle de la géométrie de l'objet "
"source ..."
-#: flatcamTools/ToolQRCode.py:80
+#: AppTools/ToolQRCode.py:80
msgid "Gerber Object to which the QRCode will be added."
msgstr "Objet Gerber auquel le QRCode sera ajouté."
-#: flatcamTools/ToolQRCode.py:93
+#: AppTools/ToolQRCode.py:93
msgid "QRCode Parameters"
msgstr "Paramètres QRCode"
-#: flatcamTools/ToolQRCode.py:95
+#: AppTools/ToolQRCode.py:95
msgid "The parameters used to shape the QRCode."
msgstr "Les paramètres utilisés pour façonner le QRCode."
-#: flatcamTools/ToolQRCode.py:207
+#: AppTools/ToolQRCode.py:207
msgid "Export QRCode"
msgstr "Exporter le QRCode"
-#: flatcamTools/ToolQRCode.py:209
+#: AppTools/ToolQRCode.py:209
msgid ""
"Show a set of controls allowing to export the QRCode\n"
"to a SVG file or an PNG file."
@@ -17666,140 +15943,145 @@ msgstr ""
"Afficher un ensemble de contrôles permettant d'exporter le QRCode\n"
"vers un fichier SVG ou un fichier PNG."
-#: flatcamTools/ToolQRCode.py:248
+#: AppTools/ToolQRCode.py:248
msgid "Transparent back color"
msgstr "Couleur arrière transparente"
-#: flatcamTools/ToolQRCode.py:273
+#: AppTools/ToolQRCode.py:273
msgid "Export QRCode SVG"
msgstr "Exporter le QRCode SVG"
-#: flatcamTools/ToolQRCode.py:275
+#: AppTools/ToolQRCode.py:275
msgid "Export a SVG file with the QRCode content."
msgstr "Exportez un fichier SVG avec le contenu QRCode."
-#: flatcamTools/ToolQRCode.py:286
+#: AppTools/ToolQRCode.py:286
msgid "Export QRCode PNG"
msgstr "Exporter le QRCode PNG"
-#: flatcamTools/ToolQRCode.py:288
+#: AppTools/ToolQRCode.py:288
msgid "Export a PNG image file with the QRCode content."
msgstr "Exportez un fichier image PNG avec le contenu QRCode."
-#: flatcamTools/ToolQRCode.py:299
+#: AppTools/ToolQRCode.py:299
msgid "Insert QRCode"
msgstr "Insérez QRCode"
-#: flatcamTools/ToolQRCode.py:301
+#: AppTools/ToolQRCode.py:301
msgid "Create the QRCode object."
msgstr "Créez l'objet QRCode."
-#: flatcamTools/ToolQRCode.py:415 flatcamTools/ToolQRCode.py:750
-#: flatcamTools/ToolQRCode.py:799
+#: AppTools/ToolQRCode.py:415 AppTools/ToolQRCode.py:750
+#: AppTools/ToolQRCode.py:799
msgid "Cancelled. There is no QRCode Data in the text box."
msgstr "Annulé. Il n'y a pas de données QRCode dans la zone de texte."
-#: flatcamTools/ToolQRCode.py:434
+#: AppTools/ToolQRCode.py:434
msgid "Generating QRCode geometry"
msgstr "Génération de la géométrie QRCode"
-#: flatcamTools/ToolQRCode.py:474
+#: AppTools/ToolQRCode.py:474
msgid "Click on the Destination point ..."
msgstr "Cliquez sur le point de destination ..."
-#: flatcamTools/ToolQRCode.py:589
+#: AppTools/ToolQRCode.py:589
msgid "QRCode Tool done."
msgstr "Outil QRCode terminé."
-#: flatcamTools/ToolQRCode.py:782 flatcamTools/ToolQRCode.py:786
+#: AppTools/ToolQRCode.py:782 AppTools/ToolQRCode.py:786
msgid "Export PNG"
msgstr "Exporter en PNG"
-#: flatcamTools/ToolRulesCheck.py:33
+#: AppTools/ToolQRCode.py:829 AppTools/ToolQRCode.py:833 App_Main.py:6746
+#: App_Main.py:6750
+msgid "Export SVG"
+msgstr "Exporter en SVG"
+
+#: AppTools/ToolRulesCheck.py:33
msgid "Check Rules"
msgstr "Vérifiez les Règles"
-#: flatcamTools/ToolRulesCheck.py:61
+#: AppTools/ToolRulesCheck.py:61
msgid "Gerber Files"
msgstr "Fichiers Gerber"
-#: flatcamTools/ToolRulesCheck.py:63
+#: AppTools/ToolRulesCheck.py:63
msgid "Gerber objects for which to check rules."
msgstr "Objets Gerber pour lesquels vérifier les règles."
-#: flatcamTools/ToolRulesCheck.py:78
+#: AppTools/ToolRulesCheck.py:78
msgid "Top"
msgstr "Haut"
-#: flatcamTools/ToolRulesCheck.py:80
+#: AppTools/ToolRulesCheck.py:80
msgid "The Top Gerber Copper object for which rules are checked."
msgstr "L'objet cuivre supérieur Gerber pour lequel les règles sont vérifiées."
-#: flatcamTools/ToolRulesCheck.py:96
+#: AppTools/ToolRulesCheck.py:96
msgid "Bottom"
msgstr "Bas"
-#: flatcamTools/ToolRulesCheck.py:98
+#: AppTools/ToolRulesCheck.py:98
msgid "The Bottom Gerber Copper object for which rules are checked."
msgstr ""
"Objet de cuivre Gerber inférieur pour lequel les règles sont vérifiées."
-#: flatcamTools/ToolRulesCheck.py:114
+#: AppTools/ToolRulesCheck.py:114
msgid "SM Top"
msgstr "SM Top"
-#: flatcamTools/ToolRulesCheck.py:116
+#: AppTools/ToolRulesCheck.py:116
msgid "The Top Gerber Solder Mask object for which rules are checked."
msgstr ""
"Objet de masque de soudure Gerber supérieur pour lequel les règles sont "
"vérifiées."
-#: flatcamTools/ToolRulesCheck.py:132
+#: AppTools/ToolRulesCheck.py:132
msgid "SM Bottom"
msgstr "SM Bas"
-#: flatcamTools/ToolRulesCheck.py:134
+#: AppTools/ToolRulesCheck.py:134
msgid "The Bottom Gerber Solder Mask object for which rules are checked."
msgstr ""
"Objet de masque de soudure Gerber inférieur pour lequel les règles sont "
"vérifiées."
-#: flatcamTools/ToolRulesCheck.py:150
+#: AppTools/ToolRulesCheck.py:150
msgid "Silk Top"
msgstr "Sérigraphie Haut"
-#: flatcamTools/ToolRulesCheck.py:152
+#: AppTools/ToolRulesCheck.py:152
msgid "The Top Gerber Silkscreen object for which rules are checked."
msgstr ""
"Objet de la sérigraphie Top Gerber pour lequel les règles sont vérifiées."
-#: flatcamTools/ToolRulesCheck.py:168
+#: AppTools/ToolRulesCheck.py:168
msgid "Silk Bottom"
msgstr "Fond sérigraphie"
-#: flatcamTools/ToolRulesCheck.py:170
+#: AppTools/ToolRulesCheck.py:170
msgid "The Bottom Gerber Silkscreen object for which rules are checked."
msgstr ""
"L'objet Gerber Silkscreen inférieur pour lequel les règles sont vérifiées."
-#: flatcamTools/ToolRulesCheck.py:188
+#: AppTools/ToolRulesCheck.py:188
msgid "The Gerber Outline (Cutout) object for which rules are checked."
msgstr ""
"Objet de contour de Gerber (découpe) pour lequel les règles sont vérifiées."
-#: flatcamTools/ToolRulesCheck.py:199
+#: AppTools/ToolRulesCheck.py:199
msgid "Excellon Objects"
msgstr "Excellon Objets"
-#: flatcamTools/ToolRulesCheck.py:201
+#: AppTools/ToolRulesCheck.py:201
msgid "Excellon objects for which to check rules."
msgstr "Excellon objets pour lesquels vérifier les règles."
-#: flatcamTools/ToolRulesCheck.py:213
+#: AppTools/ToolRulesCheck.py:213
msgid "Excellon 1"
msgstr "Excellon 1"
-#: flatcamTools/ToolRulesCheck.py:215
+#: AppTools/ToolRulesCheck.py:215
msgid ""
"Excellon object for which to check rules.\n"
"Holds the plated holes or a general Excellon file content."
@@ -17807,11 +16089,11 @@ msgstr ""
"Objet Excellon pour lequel vérifier les règles.\n"
"Contient les trous métallisés ou le contenu général d’un fichier Excellon."
-#: flatcamTools/ToolRulesCheck.py:232
+#: AppTools/ToolRulesCheck.py:232
msgid "Excellon 2"
msgstr "Excellon 2"
-#: flatcamTools/ToolRulesCheck.py:234
+#: AppTools/ToolRulesCheck.py:234
msgid ""
"Excellon object for which to check rules.\n"
"Holds the non-plated holes."
@@ -17819,35 +16101,35 @@ msgstr ""
"Objet Excellon pour lequel vérifier les règles.\n"
"Maintient les trous non plaqués."
-#: flatcamTools/ToolRulesCheck.py:247
+#: AppTools/ToolRulesCheck.py:247
msgid "All Rules"
msgstr "Toutes les règles"
-#: flatcamTools/ToolRulesCheck.py:249
+#: AppTools/ToolRulesCheck.py:249
msgid "This check/uncheck all the rules below."
msgstr "Cette case à cocher / décocher toutes les règles ci-dessous."
-#: flatcamTools/ToolRulesCheck.py:499
+#: AppTools/ToolRulesCheck.py:499
msgid "Run Rules Check"
msgstr "Exécuter la Vér. des Règles"
-#: flatcamTools/ToolRulesCheck.py:1158 flatcamTools/ToolRulesCheck.py:1218
-#: flatcamTools/ToolRulesCheck.py:1255 flatcamTools/ToolRulesCheck.py:1327
-#: flatcamTools/ToolRulesCheck.py:1381 flatcamTools/ToolRulesCheck.py:1419
-#: flatcamTools/ToolRulesCheck.py:1484
+#: AppTools/ToolRulesCheck.py:1158 AppTools/ToolRulesCheck.py:1218
+#: AppTools/ToolRulesCheck.py:1255 AppTools/ToolRulesCheck.py:1327
+#: AppTools/ToolRulesCheck.py:1381 AppTools/ToolRulesCheck.py:1419
+#: AppTools/ToolRulesCheck.py:1484
msgid "Value is not valid."
msgstr "La valeur n'est pas valide."
-#: flatcamTools/ToolRulesCheck.py:1172
+#: AppTools/ToolRulesCheck.py:1172
msgid "TOP -> Copper to Copper clearance"
msgstr "TOP -> Distance de cuivre à cuivre"
-#: flatcamTools/ToolRulesCheck.py:1183
+#: AppTools/ToolRulesCheck.py:1183
msgid "BOTTOM -> Copper to Copper clearance"
msgstr "EN BAS -> Distance de cuivre à cuivre"
-#: flatcamTools/ToolRulesCheck.py:1188 flatcamTools/ToolRulesCheck.py:1282
-#: flatcamTools/ToolRulesCheck.py:1446
+#: AppTools/ToolRulesCheck.py:1188 AppTools/ToolRulesCheck.py:1282
+#: AppTools/ToolRulesCheck.py:1446
msgid ""
"At least one Gerber object has to be selected for this rule but none is "
"selected."
@@ -17855,13 +16137,13 @@ msgstr ""
"Au moins un objet Gerber doit être sélectionné pour cette règle, mais aucun "
"n'est sélectionné."
-#: flatcamTools/ToolRulesCheck.py:1224
+#: AppTools/ToolRulesCheck.py:1224
msgid ""
"One of the copper Gerber objects or the Outline Gerber object is not valid."
msgstr ""
"L'un des objets cuivre Gerber ou l'objet Contour Gerber n'est pas valide."
-#: flatcamTools/ToolRulesCheck.py:1237 flatcamTools/ToolRulesCheck.py:1401
+#: AppTools/ToolRulesCheck.py:1237 AppTools/ToolRulesCheck.py:1401
msgid ""
"Outline Gerber object presence is mandatory for this rule but it is not "
"selected."
@@ -17869,31 +16151,31 @@ msgstr ""
"La présence de l’objet Gerber est obligatoire pour cette règle, mais elle "
"n’est pas sélectionnée."
-#: flatcamTools/ToolRulesCheck.py:1254 flatcamTools/ToolRulesCheck.py:1281
+#: AppTools/ToolRulesCheck.py:1254 AppTools/ToolRulesCheck.py:1281
msgid "Silk to Silk clearance"
msgstr "Sérigraphie à distance de sérigraphie"
-#: flatcamTools/ToolRulesCheck.py:1267
+#: AppTools/ToolRulesCheck.py:1267
msgid "TOP -> Silk to Silk clearance"
msgstr "TOP -> Distance de sérigraphie à sérigraphie"
-#: flatcamTools/ToolRulesCheck.py:1277
+#: AppTools/ToolRulesCheck.py:1277
msgid "BOTTOM -> Silk to Silk clearance"
msgstr "BAS -> Distance de sérigraphie à sérigraphie"
-#: flatcamTools/ToolRulesCheck.py:1333
+#: AppTools/ToolRulesCheck.py:1333
msgid "One or more of the Gerber objects is not valid."
msgstr "Un ou plusieurs objets Gerber n'est pas valide."
-#: flatcamTools/ToolRulesCheck.py:1341
+#: AppTools/ToolRulesCheck.py:1341
msgid "TOP -> Silk to Solder Mask Clearance"
msgstr "TOP -> Distance entre masque et masque de soudure"
-#: flatcamTools/ToolRulesCheck.py:1347
+#: AppTools/ToolRulesCheck.py:1347
msgid "BOTTOM -> Silk to Solder Mask Clearance"
msgstr "EN BAS -> Distance de sérigraphie à masque de soudure"
-#: flatcamTools/ToolRulesCheck.py:1351
+#: AppTools/ToolRulesCheck.py:1351
msgid ""
"Both Silk and Solder Mask Gerber objects has to be either both Top or both "
"Bottom."
@@ -17901,62 +16183,62 @@ msgstr ""
"Les objets Gerber Mask de sérigraphie et de masque de soudure doivent être "
"tous les deux supérieurs ou inférieurs."
-#: flatcamTools/ToolRulesCheck.py:1387
+#: AppTools/ToolRulesCheck.py:1387
msgid ""
"One of the Silk Gerber objects or the Outline Gerber object is not valid."
msgstr ""
"L'un des objets Gerber en sérigraphie ou l'objet Contour Gerber n'est pas "
"valide."
-#: flatcamTools/ToolRulesCheck.py:1431
+#: AppTools/ToolRulesCheck.py:1431
msgid "TOP -> Minimum Solder Mask Sliver"
msgstr "TOP -> ruban de masque de soudure minimum"
-#: flatcamTools/ToolRulesCheck.py:1441
+#: AppTools/ToolRulesCheck.py:1441
msgid "BOTTOM -> Minimum Solder Mask Sliver"
msgstr "BAS-> ruban de masque de soudure minimum"
-#: flatcamTools/ToolRulesCheck.py:1490
+#: AppTools/ToolRulesCheck.py:1490
msgid "One of the Copper Gerber objects or the Excellon objects is not valid."
msgstr "L'un des objets Copper Gerber ou Excellon n'est pas valide."
-#: flatcamTools/ToolRulesCheck.py:1506
+#: AppTools/ToolRulesCheck.py:1506
msgid ""
"Excellon object presence is mandatory for this rule but none is selected."
msgstr ""
"La présence d'objet Excellon est obligatoire pour cette règle, mais aucune "
"n'est sélectionnée."
-#: flatcamTools/ToolRulesCheck.py:1579 flatcamTools/ToolRulesCheck.py:1592
-#: flatcamTools/ToolRulesCheck.py:1603 flatcamTools/ToolRulesCheck.py:1616
+#: AppTools/ToolRulesCheck.py:1579 AppTools/ToolRulesCheck.py:1592
+#: AppTools/ToolRulesCheck.py:1603 AppTools/ToolRulesCheck.py:1616
msgid "STATUS"
msgstr "STATUT"
-#: flatcamTools/ToolRulesCheck.py:1582 flatcamTools/ToolRulesCheck.py:1606
+#: AppTools/ToolRulesCheck.py:1582 AppTools/ToolRulesCheck.py:1606
msgid "FAILED"
msgstr "ÉCHOUÉ"
-#: flatcamTools/ToolRulesCheck.py:1595 flatcamTools/ToolRulesCheck.py:1619
+#: AppTools/ToolRulesCheck.py:1595 AppTools/ToolRulesCheck.py:1619
msgid "PASSED"
msgstr "PASSÉ"
-#: flatcamTools/ToolRulesCheck.py:1596 flatcamTools/ToolRulesCheck.py:1620
+#: AppTools/ToolRulesCheck.py:1596 AppTools/ToolRulesCheck.py:1620
msgid "Violations: There are no violations for the current rule."
msgstr "Violations: Il n'y a pas de violations pour la règle actuelle."
-#: flatcamTools/ToolShell.py:74 flatcamTools/ToolShell.py:76
+#: AppTools/ToolShell.py:74 AppTools/ToolShell.py:76
msgid "...processing..."
msgstr "...En traitement..."
-#: flatcamTools/ToolSolderPaste.py:37
+#: AppTools/ToolSolderPaste.py:37
msgid "Solder Paste Tool"
msgstr "Outil de Pâte à souder"
-#: flatcamTools/ToolSolderPaste.py:69
+#: AppTools/ToolSolderPaste.py:69
msgid "Gerber Solder paste object. "
msgstr "Objet de pâte à souder Gerber. "
-#: flatcamTools/ToolSolderPaste.py:76
+#: AppTools/ToolSolderPaste.py:76
msgid ""
"Tools pool from which the algorithm\n"
"will pick the ones used for dispensing solder paste."
@@ -17964,7 +16246,7 @@ msgstr ""
"Pool d'outils à partir duquel l'algorithme\n"
"choisira ceux utilisés pour la distribution de la pâte à souder."
-#: flatcamTools/ToolSolderPaste.py:91
+#: AppTools/ToolSolderPaste.py:91
msgid ""
"This is the Tool Number.\n"
"The solder dispensing will start with the tool with the biggest \n"
@@ -17979,7 +16261,7 @@ msgstr ""
" avec la pâte à souder, l'application émettra une boîte de message "
"d'avertissement."
-#: flatcamTools/ToolSolderPaste.py:98
+#: AppTools/ToolSolderPaste.py:98
msgid ""
"Nozzle tool Diameter. It's value (in current FlatCAM units)\n"
"is the width of the solder paste dispensed."
@@ -17987,11 +16269,11 @@ msgstr ""
"Diamètre de l'outil de buse. C'est sa valeur (en unités FlatCAM actuelles)\n"
"est la largeur de la pâte à braser distribuée."
-#: flatcamTools/ToolSolderPaste.py:105
+#: AppTools/ToolSolderPaste.py:105
msgid "New Nozzle Tool"
msgstr "Nouvel Outil de Buse"
-#: flatcamTools/ToolSolderPaste.py:124
+#: AppTools/ToolSolderPaste.py:124
msgid ""
"Add a new nozzle tool to the Tool Table\n"
"with the diameter specified above."
@@ -17999,15 +16281,15 @@ msgstr ""
"Ajouter un nouvel outil de buse à la table d'outils\n"
"avec le diamètre spécifié ci-dessus."
-#: flatcamTools/ToolSolderPaste.py:136
+#: AppTools/ToolSolderPaste.py:136
msgid "Generate solder paste dispensing geometry."
msgstr "Générer la géométrie de distribution de la pâte à souder."
-#: flatcamTools/ToolSolderPaste.py:155
+#: AppTools/ToolSolderPaste.py:155
msgid "STEP 1"
msgstr "ÉTAPE 1"
-#: flatcamTools/ToolSolderPaste.py:157
+#: AppTools/ToolSolderPaste.py:157
msgid ""
"First step is to select a number of nozzle tools for usage\n"
"and then optionally modify the GCode parameters below."
@@ -18016,7 +16298,7 @@ msgstr ""
"à utiliser.\n"
"et éventuellement modifier les paramètres GCode ci-dessous."
-#: flatcamTools/ToolSolderPaste.py:160
+#: AppTools/ToolSolderPaste.py:160
msgid ""
"Select tools.\n"
"Modify parameters."
@@ -18024,7 +16306,7 @@ msgstr ""
"Sélectionnez des outils.\n"
"Modifier les paramètres."
-#: flatcamTools/ToolSolderPaste.py:280
+#: AppTools/ToolSolderPaste.py:280
msgid ""
"Feedrate (speed) while moving up vertically\n"
" to Dispense position (on Z plane)."
@@ -18032,7 +16314,7 @@ msgstr ""
"Avance (vitesse) en montant verticalement\n"
"position de distribution (sur le plan Z)."
-#: flatcamTools/ToolSolderPaste.py:350
+#: AppTools/ToolSolderPaste.py:350
msgid ""
"Generate GCode for Solder Paste dispensing\n"
"on PCB pads."
@@ -18040,11 +16322,11 @@ msgstr ""
"Générer GCode pour la distribution de pâte à souder\n"
"sur les PCB pads."
-#: flatcamTools/ToolSolderPaste.py:371
+#: AppTools/ToolSolderPaste.py:371
msgid "STEP 2"
msgstr "ÉTAPE 2"
-#: flatcamTools/ToolSolderPaste.py:373
+#: AppTools/ToolSolderPaste.py:373
msgid ""
"Second step is to create a solder paste dispensing\n"
"geometry out of an Solder Paste Mask Gerber file."
@@ -18052,11 +16334,11 @@ msgstr ""
"La deuxième étape consiste à créer une distribution de pâte à braser\n"
"géométrie d'un fichier Gerber de masque de collage de soudure."
-#: flatcamTools/ToolSolderPaste.py:390
+#: AppTools/ToolSolderPaste.py:390
msgid "Geo Result"
msgstr "Résultat de la Géo"
-#: flatcamTools/ToolSolderPaste.py:392
+#: AppTools/ToolSolderPaste.py:392
msgid ""
"Geometry Solder Paste object.\n"
"The name of the object has to end in:\n"
@@ -18066,11 +16348,11 @@ msgstr ""
"Le nom de l'objet doit se terminer par:\n"
"'_solderpaste' comme protection."
-#: flatcamTools/ToolSolderPaste.py:401
+#: AppTools/ToolSolderPaste.py:401
msgid "STEP 3"
msgstr "ÉTAPE 3"
-#: flatcamTools/ToolSolderPaste.py:403
+#: AppTools/ToolSolderPaste.py:403
msgid ""
"Third step is to select a solder paste dispensing geometry,\n"
"and then generate a CNCJob object.\n"
@@ -18087,11 +16369,11 @@ msgstr ""
"vous devez d’abord générer une géométrie avec ces nouveaux paramètres,\n"
"et seulement après cela, vous pouvez générer un CNCJob mis à jour."
-#: flatcamTools/ToolSolderPaste.py:424
+#: AppTools/ToolSolderPaste.py:424
msgid "CNC Result"
msgstr "Résultat CNC"
-#: flatcamTools/ToolSolderPaste.py:426
+#: AppTools/ToolSolderPaste.py:426
msgid ""
"CNCJob Solder paste object.\n"
"In order to enable the GCode save section,\n"
@@ -18103,11 +16385,11 @@ msgstr ""
"le nom de l'objet doit se terminer par:\n"
"'_solderpaste' comme protection."
-#: flatcamTools/ToolSolderPaste.py:436
+#: AppTools/ToolSolderPaste.py:436
msgid "View GCode"
msgstr "Voir le GCode"
-#: flatcamTools/ToolSolderPaste.py:438
+#: AppTools/ToolSolderPaste.py:438
msgid ""
"View the generated GCode for Solder Paste dispensing\n"
"on PCB pads."
@@ -18115,11 +16397,11 @@ msgstr ""
"Afficher le GCode généré pour la distribution de pâte à souder\n"
"sur les plaquettes de circuits imprimés."
-#: flatcamTools/ToolSolderPaste.py:448
+#: AppTools/ToolSolderPaste.py:448
msgid "Save GCode"
msgstr "Enregistrer le GCode"
-#: flatcamTools/ToolSolderPaste.py:450
+#: AppTools/ToolSolderPaste.py:450
msgid ""
"Save the generated GCode for Solder Paste dispensing\n"
"on PCB pads, to a file."
@@ -18127,11 +16409,11 @@ msgstr ""
"Sauvegarder le GCode généré pour la distribution de pâte à souder\n"
"sur des plaquettes de circuits imprimés, dans un fichier."
-#: flatcamTools/ToolSolderPaste.py:460
+#: AppTools/ToolSolderPaste.py:460
msgid "STEP 4"
msgstr "ÉTAPE 4"
-#: flatcamTools/ToolSolderPaste.py:462
+#: AppTools/ToolSolderPaste.py:462
msgid ""
"Fourth step (and last) is to select a CNCJob made from \n"
"a solder paste dispensing geometry, and then view/save it's GCode."
@@ -18141,99 +16423,99 @@ msgstr ""
"une géométrie de distribution de la pâte à souder, puis affichez / "
"enregistrez son GCode."
-#: flatcamTools/ToolSolderPaste.py:922
+#: AppTools/ToolSolderPaste.py:922
msgid "New Nozzle tool added to Tool Table."
msgstr "Nouvel Outil de Buse ajouté à la table d'outils."
-#: flatcamTools/ToolSolderPaste.py:965
+#: AppTools/ToolSolderPaste.py:965
msgid "Nozzle tool from Tool Table was edited."
msgstr "L'outil de buse de la table d'outils a été modifié."
-#: flatcamTools/ToolSolderPaste.py:1024
+#: AppTools/ToolSolderPaste.py:1024
msgid "Delete failed. Select a Nozzle tool to delete."
msgstr "La suppression a échoué. Sélectionnez un outil de buse à supprimer."
-#: flatcamTools/ToolSolderPaste.py:1030
+#: AppTools/ToolSolderPaste.py:1030
msgid "Nozzle tool(s) deleted from Tool Table."
msgstr "Outil (s) de buse supprimé (s) de la table d'outils."
-#: flatcamTools/ToolSolderPaste.py:1086
+#: AppTools/ToolSolderPaste.py:1086
msgid "No SolderPaste mask Gerber object loaded."
msgstr "Aucun objet Gerber de masque de pâte à souder chargé."
-#: flatcamTools/ToolSolderPaste.py:1104
+#: AppTools/ToolSolderPaste.py:1104
msgid "Creating Solder Paste dispensing geometry."
msgstr "Création de la géométrie de distribution de pâte à souder."
-#: flatcamTools/ToolSolderPaste.py:1117
+#: AppTools/ToolSolderPaste.py:1117
msgid "No Nozzle tools in the tool table."
msgstr "Aucun outil de buse dans la table à outils."
-#: flatcamTools/ToolSolderPaste.py:1243
+#: AppTools/ToolSolderPaste.py:1243
msgid "Cancelled. Empty file, it has no geometry..."
msgstr "Annulé. Fichier vide, il n'a pas de géométrie ..."
-#: flatcamTools/ToolSolderPaste.py:1246
+#: AppTools/ToolSolderPaste.py:1246
msgid "Solder Paste geometry generated successfully"
msgstr "Géométrie de pâte à souder générée avec succès"
-#: flatcamTools/ToolSolderPaste.py:1253
+#: AppTools/ToolSolderPaste.py:1253
msgid "Some or all pads have no solder due of inadequate nozzle diameters..."
msgstr ""
"Certains ou tous les tampons n'ont pas de soudure en raison de diamètres de "
"buse inadéquats ..."
-#: flatcamTools/ToolSolderPaste.py:1267
+#: AppTools/ToolSolderPaste.py:1267
msgid "Generating Solder Paste dispensing geometry..."
msgstr "Génération de géométrie de distribution de pâte à souder ..."
-#: flatcamTools/ToolSolderPaste.py:1287
+#: AppTools/ToolSolderPaste.py:1287
msgid "There is no Geometry object available."
msgstr "Il n'y a pas d'objet Géométrie disponible."
-#: flatcamTools/ToolSolderPaste.py:1292
+#: AppTools/ToolSolderPaste.py:1292
msgid "This Geometry can't be processed. NOT a solder_paste_tool geometry."
msgstr ""
"Cette géométrie ne peut pas être traitée. PAS une géométrie "
"solder_paste_tool."
-#: flatcamTools/ToolSolderPaste.py:1328
+#: AppTools/ToolSolderPaste.py:1328
msgid "An internal error has ocurred. See shell.\n"
msgstr "Une erreur interne s'est produite. Voir shell.\n"
-#: flatcamTools/ToolSolderPaste.py:1393
+#: AppTools/ToolSolderPaste.py:1393
msgid "ToolSolderPaste CNCjob created"
msgstr "Outil de Pâte à Souder CNCjob créé"
-#: flatcamTools/ToolSolderPaste.py:1412
+#: AppTools/ToolSolderPaste.py:1412
msgid "SP GCode Editor"
msgstr "Éditeur SP GCode"
-#: flatcamTools/ToolSolderPaste.py:1424 flatcamTools/ToolSolderPaste.py:1429
-#: flatcamTools/ToolSolderPaste.py:1484
+#: AppTools/ToolSolderPaste.py:1424 AppTools/ToolSolderPaste.py:1429
+#: AppTools/ToolSolderPaste.py:1484
msgid ""
"This CNCJob object can't be processed. NOT a solder_paste_tool CNCJob object."
msgstr ""
"Cet objet CNCJob ne peut pas être traité. PAS un objet CNCJob "
"solder_paste_tool."
-#: flatcamTools/ToolSolderPaste.py:1454
+#: AppTools/ToolSolderPaste.py:1454
msgid "No Gcode in the object"
msgstr "Pas de Gcode dans l'objet"
-#: flatcamTools/ToolSolderPaste.py:1494
+#: AppTools/ToolSolderPaste.py:1494
msgid "Export GCode ..."
msgstr "Exporter le GCode ..."
-#: flatcamTools/ToolSolderPaste.py:1542
+#: AppTools/ToolSolderPaste.py:1542
msgid "Solder paste dispenser GCode file saved to"
msgstr "Fichier GCode du distributeur de pâte à souder enregistré dans"
-#: flatcamTools/ToolSub.py:65
+#: AppTools/ToolSub.py:65
msgid "Gerber Objects"
msgstr "Objets Gerber"
-#: flatcamTools/ToolSub.py:78
+#: AppTools/ToolSub.py:78
msgid ""
"Gerber object from which to subtract\n"
"the subtractor Gerber object."
@@ -18241,11 +16523,11 @@ msgstr ""
"Objet de Gerber auquel soustraire\n"
"l'objet soustracteur Gerber."
-#: flatcamTools/ToolSub.py:91 flatcamTools/ToolSub.py:146
+#: AppTools/ToolSub.py:91 AppTools/ToolSub.py:146
msgid "Subtractor"
msgstr "Soustracteur"
-#: flatcamTools/ToolSub.py:93
+#: AppTools/ToolSub.py:93
msgid ""
"Gerber object that will be subtracted\n"
"from the target Gerber object."
@@ -18253,11 +16535,11 @@ msgstr ""
"Objet Gerber qui sera soustrait\n"
"à partir de l'objet Gerber cible."
-#: flatcamTools/ToolSub.py:100
+#: AppTools/ToolSub.py:100
msgid "Subtract Gerber"
msgstr "Soustraire Gerber"
-#: flatcamTools/ToolSub.py:102
+#: AppTools/ToolSub.py:102
msgid ""
"Will remove the area occupied by the subtractor\n"
"Gerber from the Target Gerber.\n"
@@ -18269,11 +16551,11 @@ msgstr ""
"Peut être utilisé pour enlever la sérigraphie qui se chevauchent\n"
"sur le masque de soudure."
-#: flatcamTools/ToolSub.py:120
+#: AppTools/ToolSub.py:120
msgid "Geometry Objects"
msgstr "Objets géométriques"
-#: flatcamTools/ToolSub.py:133
+#: AppTools/ToolSub.py:133
msgid ""
"Geometry object from which to subtract\n"
"the subtractor Geometry object."
@@ -18281,7 +16563,7 @@ msgstr ""
"Objet de géométrie à soustraire\n"
"l'objet géométrique soustracteur."
-#: flatcamTools/ToolSub.py:148
+#: AppTools/ToolSub.py:148
msgid ""
"Geometry object that will be subtracted\n"
"from the target Geometry object."
@@ -18289,18 +16571,18 @@ msgstr ""
"Objet de géométrie qui sera soustrait\n"
"à partir de l'objet de géométrie cible."
-#: flatcamTools/ToolSub.py:156
+#: AppTools/ToolSub.py:156
msgid ""
"Checking this will close the paths cut by the Geometry subtractor object."
msgstr ""
"En cochant cette case, vous fermez les chemins coupés par l'objet "
"soustracteur de géométrie."
-#: flatcamTools/ToolSub.py:159
+#: AppTools/ToolSub.py:159
msgid "Subtract Geometry"
msgstr "Soustraire la géométrie"
-#: flatcamTools/ToolSub.py:161
+#: AppTools/ToolSub.py:161
msgid ""
"Will remove the area occupied by the subtractor\n"
"Geometry from the Target Geometry."
@@ -18308,66 +16590,65 @@ msgstr ""
"Va supprimer la zone occupée par le soustracteur\n"
"Géométrie à partir de la géométrie cible."
-#: flatcamTools/ToolSub.py:263
+#: AppTools/ToolSub.py:263
msgid "Sub Tool"
msgstr "Outil Sous"
-#: flatcamTools/ToolSub.py:284 flatcamTools/ToolSub.py:489
+#: AppTools/ToolSub.py:284 AppTools/ToolSub.py:489
msgid "No Target object loaded."
msgstr "Aucun objet cible chargé."
-#: flatcamTools/ToolSub.py:287
+#: AppTools/ToolSub.py:287
msgid "Loading geometry from Gerber objects."
msgstr "Chargement de la géométrie à partir d'objets Gerber."
-#: flatcamTools/ToolSub.py:299 flatcamTools/ToolSub.py:504
+#: AppTools/ToolSub.py:299 AppTools/ToolSub.py:504
msgid "No Subtractor object loaded."
msgstr "Aucun objet soustracteur n'a été chargé."
-#: flatcamTools/ToolSub.py:331
+#: AppTools/ToolSub.py:331
msgid "Processing geometry from Subtractor Gerber object."
msgstr "Traitement de la géométrie de l'objet Gerber soustracteur."
-#: flatcamTools/ToolSub.py:352
+#: AppTools/ToolSub.py:352
msgid "Parsing geometry for aperture"
msgstr "Analyser la géométrie pour l'ouverture"
-#: flatcamTools/ToolSub.py:413
+#: AppTools/ToolSub.py:413
msgid "Finished parsing geometry for aperture"
msgstr "Géométrie d'analyse terminée pour l'ouverture"
-#: flatcamTools/ToolSub.py:458 flatcamTools/ToolSub.py:661
+#: AppTools/ToolSub.py:458 AppTools/ToolSub.py:661
msgid "Generating new object ..."
msgstr "Générer un nouvel objet ..."
-#: flatcamTools/ToolSub.py:462 flatcamTools/ToolSub.py:665
-#: flatcamTools/ToolSub.py:746
+#: AppTools/ToolSub.py:462 AppTools/ToolSub.py:665 AppTools/ToolSub.py:746
msgid "Generating new object failed."
msgstr "La génération du nouvel objet a échoué."
-#: flatcamTools/ToolSub.py:467 flatcamTools/ToolSub.py:671
+#: AppTools/ToolSub.py:467 AppTools/ToolSub.py:671
msgid "Created"
msgstr "Établi"
-#: flatcamTools/ToolSub.py:518
+#: AppTools/ToolSub.py:518
msgid "Currently, the Subtractor geometry cannot be of type Multigeo."
msgstr ""
"Actuellement, la géométrie du soustracteur ne peut pas être de type multi-"
"géo."
-#: flatcamTools/ToolSub.py:563
+#: AppTools/ToolSub.py:563
msgid "Parsing solid_geometry ..."
-msgstr "Analyse de solid_geometry ..."
+msgstr "Analyse de solid_géométrie ..."
-#: flatcamTools/ToolSub.py:565
+#: AppTools/ToolSub.py:565
msgid "Parsing solid_geometry for tool"
-msgstr "Analyse de solid_geometry pour l'outil"
+msgstr "Analyse de solid_géométrie pour l'outil"
-#: flatcamTools/ToolTransform.py:23
+#: AppTools/ToolTransform.py:23
msgid "Object Transform"
msgstr "Transformation d'objet"
-#: flatcamTools/ToolTransform.py:78
+#: AppTools/ToolTransform.py:78
msgid ""
"Rotate the selected object(s).\n"
"The point of reference is the middle of\n"
@@ -18377,7 +16658,7 @@ msgstr ""
"Le point de référence est le milieu de\n"
"le cadre de sélection pour tous les objets sélectionnés."
-#: flatcamTools/ToolTransform.py:99 flatcamTools/ToolTransform.py:120
+#: AppTools/ToolTransform.py:99 AppTools/ToolTransform.py:120
msgid ""
"Angle for Skew action, in degrees.\n"
"Float number between -360 and 360."
@@ -18385,7 +16666,7 @@ msgstr ""
"Angle pour l'action asymétrique, en degrés.\n"
"Nombre flottant entre -360 et 360."
-#: flatcamTools/ToolTransform.py:109 flatcamTools/ToolTransform.py:130
+#: AppTools/ToolTransform.py:109 AppTools/ToolTransform.py:130
msgid ""
"Skew/shear the selected object(s).\n"
"The point of reference is the middle of\n"
@@ -18395,7 +16676,7 @@ msgstr ""
"Le point de référence est le milieu de\n"
"le cadre de sélection pour tous les objets sélectionnés."
-#: flatcamTools/ToolTransform.py:159 flatcamTools/ToolTransform.py:179
+#: AppTools/ToolTransform.py:159 AppTools/ToolTransform.py:179
msgid ""
"Scale the selected object(s).\n"
"The point of reference depends on \n"
@@ -18405,7 +16686,7 @@ msgstr ""
"Le point de référence dépend de\n"
"l'état de la case à cocher référence d'échelle."
-#: flatcamTools/ToolTransform.py:228 flatcamTools/ToolTransform.py:248
+#: AppTools/ToolTransform.py:228 AppTools/ToolTransform.py:248
msgid ""
"Offset the selected object(s).\n"
"The point of reference is the middle of\n"
@@ -18415,15 +16696,15 @@ msgstr ""
"Le point de référence est le milieu de\n"
"le cadre de sélection pour tous les objets sélectionnés.\n"
-#: flatcamTools/ToolTransform.py:268 flatcamTools/ToolTransform.py:273
+#: AppTools/ToolTransform.py:268 AppTools/ToolTransform.py:273
msgid "Flip the selected object(s) over the X axis."
msgstr "Retournez le ou les objets sélectionnés sur l’axe X."
-#: flatcamTools/ToolTransform.py:297
+#: AppTools/ToolTransform.py:297
msgid "Ref. Point"
msgstr "Miroir Réf. Point"
-#: flatcamTools/ToolTransform.py:348
+#: AppTools/ToolTransform.py:348
msgid ""
"Create the buffer effect on each geometry,\n"
"element from the selected object, using the distance."
@@ -18431,7 +16712,7 @@ msgstr ""
"Créez l'effet tampon sur chaque géométrie,\n"
"élément de l'objet sélectionné, en utilisant la distance."
-#: flatcamTools/ToolTransform.py:374
+#: AppTools/ToolTransform.py:374
msgid ""
"Create the buffer effect on each geometry,\n"
"element from the selected object, using the factor."
@@ -18439,131 +16720,1799 @@ msgstr ""
"Créez l'effet tampon sur chaque géométrie,\n"
"élément de l'objet sélectionné, en utilisant le facteur."
-#: flatcamTools/ToolTransform.py:479
+#: AppTools/ToolTransform.py:479
msgid "Buffer D"
msgstr "Tampon D"
-#: flatcamTools/ToolTransform.py:480
+#: AppTools/ToolTransform.py:480
msgid "Buffer F"
msgstr "Tampon F"
-#: flatcamTools/ToolTransform.py:557
+#: AppTools/ToolTransform.py:557
msgid "Rotate transformation can not be done for a value of 0."
msgstr ""
"La transformation par rotation ne peut pas être effectuée pour une valeur de "
"0."
-#: flatcamTools/ToolTransform.py:596 flatcamTools/ToolTransform.py:619
+#: AppTools/ToolTransform.py:596 AppTools/ToolTransform.py:619
msgid "Scale transformation can not be done for a factor of 0 or 1."
msgstr ""
"La transformation d'échelle ne peut pas être effectuée pour un facteur de 0 "
"ou 1."
-#: flatcamTools/ToolTransform.py:634 flatcamTools/ToolTransform.py:644
+#: AppTools/ToolTransform.py:634 AppTools/ToolTransform.py:644
msgid "Offset transformation can not be done for a value of 0."
msgstr ""
"La transformation de décalage ne peut pas être effectuée pour une valeur de "
"0."
-#: flatcamTools/ToolTransform.py:676
+#: AppTools/ToolTransform.py:676
msgid "No object selected. Please Select an object to rotate!"
msgstr ""
"Aucun objet sélectionné. Veuillez sélectionner un objet à faire pivoter!"
-#: flatcamTools/ToolTransform.py:702
+#: AppTools/ToolTransform.py:702
msgid "CNCJob objects can't be rotated."
msgstr "Les objets CNCJob ne peuvent pas être pivotés."
-#: flatcamTools/ToolTransform.py:710
+#: AppTools/ToolTransform.py:710
msgid "Rotate done"
msgstr "Faire pivoter"
-#: flatcamTools/ToolTransform.py:713 flatcamTools/ToolTransform.py:783
-#: flatcamTools/ToolTransform.py:833 flatcamTools/ToolTransform.py:887
-#: flatcamTools/ToolTransform.py:917 flatcamTools/ToolTransform.py:953
+#: AppTools/ToolTransform.py:713 AppTools/ToolTransform.py:783
+#: AppTools/ToolTransform.py:833 AppTools/ToolTransform.py:887
+#: AppTools/ToolTransform.py:917 AppTools/ToolTransform.py:953
msgid "Due of"
msgstr "À cause de"
-#: flatcamTools/ToolTransform.py:713 flatcamTools/ToolTransform.py:783
-#: flatcamTools/ToolTransform.py:833 flatcamTools/ToolTransform.py:887
-#: flatcamTools/ToolTransform.py:917 flatcamTools/ToolTransform.py:953
+#: AppTools/ToolTransform.py:713 AppTools/ToolTransform.py:783
+#: AppTools/ToolTransform.py:833 AppTools/ToolTransform.py:887
+#: AppTools/ToolTransform.py:917 AppTools/ToolTransform.py:953
msgid "action was not executed."
msgstr "l'action n'a pas été exécutée."
-#: flatcamTools/ToolTransform.py:725
+#: AppTools/ToolTransform.py:725
msgid "No object selected. Please Select an object to flip"
msgstr "Aucun objet sélectionné. Veuillez sélectionner un objet à refléter"
-#: flatcamTools/ToolTransform.py:758
+#: AppTools/ToolTransform.py:758
msgid "CNCJob objects can't be mirrored/flipped."
msgstr "Les objets CNCJob ne peuvent pas être inversés / inversés."
-#: flatcamTools/ToolTransform.py:793
+#: AppTools/ToolTransform.py:793
msgid "Skew transformation can not be done for 0, 90 and 180 degrees."
msgstr ""
"La transformation asymétrique ne peut pas être effectuée pour 0, 90 et 180 "
"degrés."
-#: flatcamTools/ToolTransform.py:798
+#: AppTools/ToolTransform.py:798
msgid "No object selected. Please Select an object to shear/skew!"
msgstr ""
"Aucun objet sélectionné. Veuillez sélectionner un objet à cisailler / "
"incliner!"
-#: flatcamTools/ToolTransform.py:818
+#: AppTools/ToolTransform.py:818
msgid "CNCJob objects can't be skewed."
msgstr "Les objets CNCJob ne peuvent pas être biaisés."
-#: flatcamTools/ToolTransform.py:830
+#: AppTools/ToolTransform.py:830
msgid "Skew on the"
msgstr "Biais sur le"
-#: flatcamTools/ToolTransform.py:830 flatcamTools/ToolTransform.py:884
-#: flatcamTools/ToolTransform.py:914
+#: AppTools/ToolTransform.py:830 AppTools/ToolTransform.py:884
+#: AppTools/ToolTransform.py:914
msgid "axis done"
msgstr "axe fait"
-#: flatcamTools/ToolTransform.py:844
+#: AppTools/ToolTransform.py:844
msgid "No object selected. Please Select an object to scale!"
msgstr ""
"Aucun objet sélectionné. Veuillez sélectionner un objet à mettre à l'échelle!"
-#: flatcamTools/ToolTransform.py:875
+#: AppTools/ToolTransform.py:875
msgid "CNCJob objects can't be scaled."
msgstr "Les objets CNCJob ne peuvent pas être mis à l'échelle."
-#: flatcamTools/ToolTransform.py:884
+#: AppTools/ToolTransform.py:884
msgid "Scale on the"
msgstr "Échelle sur le"
-#: flatcamTools/ToolTransform.py:894
+#: AppTools/ToolTransform.py:894
msgid "No object selected. Please Select an object to offset!"
msgstr "Aucun objet sélectionné. Veuillez sélectionner un objet à compenser!"
-#: flatcamTools/ToolTransform.py:901
+#: AppTools/ToolTransform.py:901
msgid "CNCJob objects can't be offset."
-msgstr "CNCJob objects can't be offset."
+msgstr "Les objets CNCJob ne peuvent pas être décalés."
-#: flatcamTools/ToolTransform.py:914
+#: AppTools/ToolTransform.py:914
msgid "Offset on the"
msgstr "Compenser sur le"
-#: flatcamTools/ToolTransform.py:924
+#: AppTools/ToolTransform.py:924
msgid "No object selected. Please Select an object to buffer!"
msgstr "Aucun objet sélectionné. Veuillez sélectionner un objet à tamponner!"
-#: flatcamTools/ToolTransform.py:927
+#: AppTools/ToolTransform.py:927
msgid "Applying Buffer"
msgstr "Application du tampon"
-#: flatcamTools/ToolTransform.py:931
+#: AppTools/ToolTransform.py:931
msgid "CNCJob objects can't be buffered."
msgstr "Les objets CNCJob ne peuvent pas être mis en mémoire tampon."
-#: flatcamTools/ToolTransform.py:948
+#: AppTools/ToolTransform.py:948
msgid "Buffer done"
msgstr "Tampon terminé"
+#: AppTranslation.py:104
+msgid "The application will restart."
+msgstr "L'application va redémarrer."
+
+#: AppTranslation.py:106
+msgid "Are you sure do you want to change the current language to"
+msgstr "Etes-vous sûr de vouloir changer la langue actuelle en"
+
+#: AppTranslation.py:107
+msgid "Apply Language ..."
+msgstr "Appliquer la langue ..."
+
+#: AppTranslation.py:201 App_Main.py:3047
+msgid ""
+"There are files/objects modified in FlatCAM. \n"
+"Do you want to Save the project?"
+msgstr ""
+"Il y a eu des modifications dans FlatCAM.\n"
+"Voulez-vous enregistrer le projet?"
+
+#: AppTranslation.py:204 App_Main.py:3050 App_Main.py:6334
+msgid "Save changes"
+msgstr "Sauvegarder les modifications"
+
+#: App_Main.py:477
+msgid "FlatCAM is initializing ..."
+msgstr "FlatCAM est en cours d'initialisation ..."
+
+#: App_Main.py:620
+msgid "Could not find the Language files. The App strings are missing."
+msgstr "Impossible de trouver les fichiers de languages. Fichiers Absent."
+
+#: App_Main.py:692
+msgid ""
+"FlatCAM is initializing ...\n"
+"Canvas initialization started."
+msgstr ""
+"FlatCAM est en cours d'initialisation ...\n"
+"Initialisation du Canevas."
+
+#: App_Main.py:712
+msgid ""
+"FlatCAM is initializing ...\n"
+"Canvas initialization started.\n"
+"Canvas initialization finished in"
+msgstr ""
+"FlatCAM est en cours d'initialisation ...\n"
+"Initialisation du Canevas\n"
+"Initialisation terminée en"
+
+#: App_Main.py:1542 App_Main.py:6445
+msgid "New Project - Not saved"
+msgstr "Nouveau projet - Non enregistré"
+
+#: App_Main.py:1643
+msgid ""
+"Found old default preferences files. Please reboot the application to update."
+msgstr ""
+"Anciens fichiers par défaut trouvés. Veuillez redémarrer pour mettre à jour "
+"l'application."
+
+#: App_Main.py:1710
+msgid "Open Config file failed."
+msgstr "Défaut d'ouverture du fichier de configuration."
+
+#: App_Main.py:1725
+msgid "Open Script file failed."
+msgstr "Défaut d'ouverture du fichier Script."
+
+#: App_Main.py:1751
+msgid "Open Excellon file failed."
+msgstr "Défaut d'ouverture du fichier Excellon."
+
+#: App_Main.py:1764
+msgid "Open GCode file failed."
+msgstr "Défaut d'ouverture du fichier G-code."
+
+#: App_Main.py:1777
+msgid "Open Gerber file failed."
+msgstr "Défaut d'ouverture du fichier Gerber."
+
+#: App_Main.py:2095
+#, fuzzy
+#| msgid "Select a Geometry, Gerber or Excellon Object to edit."
+msgid "Select a Geometry, Gerber, Excellon or CNCJob Object to edit."
+msgstr "Sélectionnez l'objet, Gerber ou Excellon à modifier."
+
+#: App_Main.py:2110
+msgid ""
+"Simultaneous editing of tools geometry in a MultiGeo Geometry is not "
+"possible.\n"
+"Edit only one geometry at a time."
+msgstr ""
+"L'édition simultanée de plusieurs géométrie n'est pas possible.\n"
+"Modifiez une seule géométrie à la fois."
+
+#: App_Main.py:2176
+msgid "Editor is activated ..."
+msgstr "Editeur activé ..."
+
+#: App_Main.py:2197
+msgid "Do you want to save the edited object?"
+msgstr "Voulez-vous enregistrer l'objet ?"
+
+#: App_Main.py:2235
+msgid "Object empty after edit."
+msgstr "Objet vide après édition."
+
+#: App_Main.py:2239 App_Main.py:2260 App_Main.py:2282
+msgid "Editor exited. Editor content saved."
+msgstr "Sortie de l'éditeur. Contenu enregistré."
+
+#: App_Main.py:2286 App_Main.py:2309 App_Main.py:2327
+msgid "Select a Gerber, Geometry or Excellon Object to update."
+msgstr "Sélectionnez l'objet Géométrie, Gerber, ou Excellon à mettre à jour."
+
+#: App_Main.py:2289
+msgid "is updated, returning to App..."
+msgstr "est mis à jour, Retour au programme..."
+
+#: App_Main.py:2296
+msgid "Editor exited. Editor content was not saved."
+msgstr "Sortie de l'editeur. Contenu non enregistré."
+
+#: App_Main.py:2422 App_Main.py:2426
+msgid "Import FlatCAM Preferences"
+msgstr "Importer les paramètres FlatCAM"
+
+#: App_Main.py:2437
+msgid "Imported Defaults from"
+msgstr "Valeurs par défaut importées de"
+
+#: App_Main.py:2457 App_Main.py:2462
+msgid "Export FlatCAM Preferences"
+msgstr "Exporter les paramètres FlatCAM"
+
+#: App_Main.py:2482
+msgid "Exported preferences to"
+msgstr "Paramètres exportées vers"
+
+#: App_Main.py:2502 App_Main.py:2507
+msgid "Save to file"
+msgstr "Enregistrer dans un fichier"
+
+#: App_Main.py:2531
+msgid "Could not load the file."
+msgstr "Chargement du fichier Impossible."
+
+#: App_Main.py:2547
+msgid "Exported file to"
+msgstr "Fichier exporté vers"
+
+#: App_Main.py:2584
+msgid "Failed to open recent files file for writing."
+msgstr "Échec d'ouverture du fichier en écriture."
+
+#: App_Main.py:2595
+msgid "Failed to open recent projects file for writing."
+msgstr "Échec d'ouverture des fichiers de projets en écriture."
+
+#: App_Main.py:2650
+msgid "2D Computer-Aided Printed Circuit Board Manufacturing"
+msgstr "Fabrication de dessin de circuits imprimés 2D assistées par ordinateur"
+
+#: App_Main.py:2651
+msgid "Development"
+msgstr "Développement"
+
+#: App_Main.py:2652
+msgid "DOWNLOAD"
+msgstr "TÉLÉCHARGER"
+
+#: App_Main.py:2653
+msgid "Issue tracker"
+msgstr "Traqueur d'incidents"
+
+#: App_Main.py:2672
+msgid "Licensed under the MIT license"
+msgstr "Sous licence MIT"
+
+#: App_Main.py:2681
+msgid ""
+"Permission is hereby granted, free of charge, to any person obtaining a "
+"copy\n"
+"of this software and associated documentation files (the \"Software\"), to "
+"deal\n"
+"in the Software without restriction, including without limitation the "
+"rights\n"
+"to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n"
+"copies of the Software, and to permit persons to whom the Software is\n"
+"furnished to do so, subject to the following conditions:\n"
+"\n"
+"The above copyright notice and this permission notice shall be included in\n"
+"all copies or substantial portions of the Software.\n"
+"\n"
+"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS "
+"OR\n"
+"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n"
+"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n"
+"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n"
+"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING "
+"FROM,\n"
+"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n"
+"THE SOFTWARE."
+msgstr ""
+"Par la présente, une autorisation est accordée gratuitement à toute personne "
+"qui obtient une copie.\n"
+"de ce logiciel et des fichiers de documentation associés pour fonctionner\n"
+"Le logiciel est sans restriction ni limitation.\n"
+"Utiliser, copier, modifier, fusionner, publier, distribuer, concéder en sous-"
+"licence et/ou vendre copies du logiciel,\n"
+"permettre aux personnes à qui le logiciel est utile\n"
+" devra ce faire sous réserve des conditions suivantes:\n"
+"\n"
+"L'avis de copyright ci-dessus et cet avis de permission doivent être inclus "
+"dans\n"
+"toutes copies intégrales ou partielles du logiciel.\n"
+"\n"
+"\n"
+"\n"
+"LE LOGICIEL EST FOURNI «TEL QUEL», SANS GARANTIE D'AUCUNE SORTE, EXPRESSE OU "
+"IMPLICITE, \n"
+"MAIS SANS LIMITER LES GARANTIES DE QUALITÉ MARCHANDE, ADAPTER À USAGE DES "
+"PARTICULIERS \n"
+"SANS CONTREFAÇON. \n"
+"EN AUCUN CAS LES AUTEURS OU LES DÉTENTEURS DE DROITS D'AUTEUR NE SERONT "
+"RESPONSABLES \n"
+"DE TOUTES RÉCLAMATIONS, DOMMAGES OU AUTRES RESPONSABILITÉS, QUE CE SOIT DANS "
+"UNE \n"
+"ACTION CONTRACTUELLE, OU AUTRE, DÉCOULANT DU LOGICIEL, DE SONT UTILISATION "
+"OU \n"
+"D'AUTRES OPÉRATIONS DANS LE LOGICIEL.LES LOGICIELS."
+
+#: App_Main.py:2703
+msgid ""
+"Some of the icons used are from the following sources:
Icons by oNline Web Fonts"
+msgstr ""
+"Certaines des icônes utilisées proviennent des sources suivantes: "
+"
Icônes de "
+"oNline Web Fonts"
+
+#: App_Main.py:2736
+msgid "Splash"
+msgstr "A Propos"
+
+#: App_Main.py:2742
+msgid "Programmers"
+msgstr "Programmeurs"
+
+#: App_Main.py:2748
+msgid "Translators"
+msgstr "Traducteurs"
+
+#: App_Main.py:2754
+msgid "License"
+msgstr "Licence"
+
+#: App_Main.py:2760
+msgid "Attributions"
+msgstr "Attributions"
+
+#: App_Main.py:2783
+msgid "Programmer"
+msgstr "Programmeur"
+
+#: App_Main.py:2784
+msgid "Status"
+msgstr "Statut"
+
+#: App_Main.py:2785 App_Main.py:2865
+msgid "E-mail"
+msgstr "Email"
+
+#: App_Main.py:2788
+msgid "Program Author"
+msgstr "Auteur du programme"
+
+#: App_Main.py:2793
+msgid "BETA Maintainer >= 2019"
+msgstr "Mainteneur BETA> = 2019"
+
+#: App_Main.py:2862
+msgid "Language"
+msgstr "Langue"
+
+#: App_Main.py:2863
+msgid "Translator"
+msgstr "Traducteur"
+
+#: App_Main.py:2864
+msgid "Corrections"
+msgstr "Corrections"
+
+#: App_Main.py:3009
+msgid ""
+"This entry will resolve to another website if:\n"
+"\n"
+"1. FlatCAM.org website is down\n"
+"2. Someone forked FlatCAM project and wants to point\n"
+"to his own website\n"
+"\n"
+"If you can't get any informations about FlatCAM beta\n"
+"use the YouTube channel link from the Help menu."
+msgstr ""
+"Cette entrée sera dirigé vers un autre site Web si:\n"
+"\n"
+"1. Le site FlatCAM.org est en panne\n"
+"2. Détournement d'URL\n"
+"\n"
+"Si vous ne pouvez pas obtenir d'informations sur FlatCAM beta\n"
+"utilisez le lien de chaîne YouTube dans le menu Aide."
+
+#: App_Main.py:3016
+msgid "Alternative website"
+msgstr "Site alternatif"
+
+#: App_Main.py:3315
+msgid "Selected Excellon file extensions registered with FlatCAM."
+msgstr "Extensions de fichier Excellon sélectionnées enregistrées."
+
+#: App_Main.py:3337
+msgid "Selected GCode file extensions registered with FlatCAM."
+msgstr "Extensions de fichier GCode sélectionnées enregistrées."
+
+#: App_Main.py:3359
+msgid "Selected Gerber file extensions registered with FlatCAM."
+msgstr "Extensions de fichiers Gerber sélectionnées enregistrées."
+
+#: App_Main.py:3547 App_Main.py:3606 App_Main.py:3634
+msgid "At least two objects are required for join. Objects currently selected"
+msgstr ""
+"Deux objets sont requis pour etre joint. Objets actuellement sélectionnés"
+
+#: App_Main.py:3556
+msgid ""
+"Failed join. The Geometry objects are of different types.\n"
+"At least one is MultiGeo type and the other is SingleGeo type. A possibility "
+"is to convert from one to another and retry joining \n"
+"but in the case of converting from MultiGeo to SingleGeo, informations may "
+"be lost and the result may not be what was expected. \n"
+"Check the generated GCODE."
+msgstr ""
+"Échec de la fonction. Les objets de géométrie sont de types différents.\n"
+"Au moins un est de type MultiGeo et l'autre de type SingleGeo. \n"
+"Une des possibilité est de les convertir et de réessayer\n"
+"Attention, dans une conversion de MultiGeo vers SingleGeo, \n"
+"des informations risquent d'être perdues et le résultat risque d'être "
+"inattendu \n"
+"Vérifiez le GCODE généré."
+
+#: App_Main.py:3568 App_Main.py:3578
+msgid "Geometry merging finished"
+msgstr "Fusion de la géométrie terminée"
+
+#: App_Main.py:3601
+msgid "Failed. Excellon joining works only on Excellon objects."
+msgstr "Érreur. Excellon ne travaille que sur des objets Excellon."
+
+#: App_Main.py:3611
+msgid "Excellon merging finished"
+msgstr "Fusion Excellon terminée"
+
+#: App_Main.py:3629
+msgid "Failed. Gerber joining works only on Gerber objects."
+msgstr "Érreur. Les jonctions Gerber ne fonctionne que sur des objets Gerber."
+
+#: App_Main.py:3639
+msgid "Gerber merging finished"
+msgstr "Fusion Gerber terminée"
+
+#: App_Main.py:3659 App_Main.py:3696
+msgid "Failed. Select a Geometry Object and try again."
+msgstr "Érreur. Sélectionnez un objet de géométrie et réessayez."
+
+#: App_Main.py:3663 App_Main.py:3701
+msgid "Expected a GeometryObject, got"
+msgstr "Érreur. Sélectionnez un objet de géométrie et réessayez"
+
+#: App_Main.py:3678
+msgid "A Geometry object was converted to MultiGeo type."
+msgstr "Un objet Géométrie a été converti au format MultiGeo."
+
+#: App_Main.py:3716
+msgid "A Geometry object was converted to SingleGeo type."
+msgstr "L'objet Géométrie a été converti au format SingleGeo."
+
+#: App_Main.py:3922
+msgid "Toggle Units"
+msgstr "Changement d'unités"
+
+#: App_Main.py:3924
+msgid ""
+"Changing the units of the project\n"
+"will scale all objects.\n"
+"\n"
+"Do you want to continue?"
+msgstr ""
+"Le changement d'unités\n"
+"mettra à l'échelle tous les objets.\n"
+"\n"
+"Voulez-vous continuer?"
+
+#: App_Main.py:3927 App_Main.py:4201 App_Main.py:4278 App_Main.py:6722
+#: App_Main.py:6736 App_Main.py:7069 App_Main.py:7079
+msgid "Ok"
+msgstr "D'accord"
+
+#: App_Main.py:3977
+msgid "Converted units to"
+msgstr "Unités converties en"
+
+#: App_Main.py:4019
+#, fuzzy
+#| msgid "All plots enabled."
+msgid "Axis enabled."
+msgstr "Activation de tous les Plots."
+
+#: App_Main.py:4031
+#, fuzzy
+#| msgid "All plots disabled."
+msgid "Axis disabled."
+msgstr "Désactivation de tous les Plots."
+
+#: App_Main.py:4039
+#, fuzzy
+#| msgid "Disabled"
+msgid "HUD disabled."
+msgstr "Désactivé"
+
+#: App_Main.py:4041
+#, fuzzy
+#| msgid "Enabled"
+msgid "HUD enabled."
+msgstr "Activé"
+
+#: App_Main.py:4065
+#, fuzzy
+#| msgid "Workspace Settings"
+msgid "Grid enabled."
+msgstr "Paramètres de l'espace de travail"
+
+#: App_Main.py:4080
+#, fuzzy
+#| msgid "Workspace Settings"
+msgid "Grid disabled."
+msgstr "Paramètres de l'espace de travail"
+
+#: App_Main.py:4101
+msgid "Detachable Tabs"
+msgstr "Onglets détachables"
+
+#: App_Main.py:4130
+#, fuzzy
+#| msgid "Workspace Settings"
+msgid "Workspace enabled."
+msgstr "Paramètres de l'espace de travail"
+
+#: App_Main.py:4133
+#, fuzzy
+#| msgid "Workspace Settings"
+msgid "Workspace disabled."
+msgstr "Paramètres de l'espace de travail"
+
+#: App_Main.py:4197
+msgid ""
+"Adding Tool works only when Advanced is checked.\n"
+"Go to Preferences -> General - Show Advanced Options."
+msgstr ""
+"L'ajout d'outil ne fonctionne que lorsque l'option Avancé est cochée.\n"
+"Allez dans Paramètres -> Général - Afficher les options avancées."
+
+#: App_Main.py:4273
+msgid "Delete objects"
+msgstr "Supprimer des objets"
+
+#: App_Main.py:4276
+msgid ""
+"Are you sure you want to permanently delete\n"
+"the selected objects?"
+msgstr ""
+"Êtes-vous sûr de vouloir supprimer définitivement\n"
+"les objets sélectionnés?"
+
+#: App_Main.py:4314
+msgid "Object(s) deleted"
+msgstr "Objets supprimés"
+
+#: App_Main.py:4324
+msgid "Save the work in Editor and try again ..."
+msgstr "Enregistrez le travail de l'éditeur et réessayez ..."
+
+#: App_Main.py:4353
+msgid "Object deleted"
+msgstr "Objet supprimé"
+
+#: App_Main.py:4380
+msgid "Click to set the origin ..."
+msgstr "Cliquez pour définir l'origine ..."
+
+#: App_Main.py:4402
+msgid "Setting Origin..."
+msgstr "Réglage de l'Origine ..."
+
+#: App_Main.py:4415 App_Main.py:4517
+msgid "Origin set"
+msgstr "Réglage de l'origine effectué"
+
+#: App_Main.py:4432
+msgid "Origin coordinates specified but incomplete."
+msgstr "Coordonnées d'origine spécifiées mais incomplètes."
+
+#: App_Main.py:4473
+msgid "Moving to Origin..."
+msgstr "Déplacement vers l'origine ..."
+
+#: App_Main.py:4554
+msgid "Jump to ..."
+msgstr "Sauter à ..."
+
+#: App_Main.py:4555
+msgid "Enter the coordinates in format X,Y:"
+msgstr "Entrez les coordonnées au format X, Y:"
+
+#: App_Main.py:4565
+msgid "Wrong coordinates. Enter coordinates in format: X,Y"
+msgstr "Mauvaises coordonnées. Entrez les coordonnées au format: X, Y"
+
+#: App_Main.py:4683
+msgid "Bottom-Left"
+msgstr "En bas à gauche"
+
+#: App_Main.py:4686
+msgid "Top-Right"
+msgstr "En haut à droite"
+
+#: App_Main.py:4707
+msgid "Locate ..."
+msgstr "Localiser ..."
+
+#: App_Main.py:4970 App_Main.py:5047
+msgid "No object is selected. Select an object and try again."
+msgstr "Aucun objet n'est sélectionné. Sélectionnez un objet et réessayez."
+
+#: App_Main.py:5073
+msgid ""
+"Aborting. The current task will be gracefully closed as soon as possible..."
+msgstr "Abandon de la tâche en cours si possible ..."
+
+#: App_Main.py:5079
+msgid "The current task was gracefully closed on user request..."
+msgstr ""
+"La tâche en cours a été fermée avec succès à la demande de l'utilisateur ..."
+
+#: App_Main.py:5224
+msgid "Tools in Tools Database edited but not saved."
+msgstr "La base de données outils a été modifiés mais pas enregistrés."
+
+#: App_Main.py:5253
+msgid "Adding tool from DB is not allowed for this object."
+msgstr ""
+"L'ajout d'outil à partir de la base de données n'est pas autorisé pour cet "
+"objet."
+
+#: App_Main.py:5271
+msgid ""
+"One or more Tools are edited.\n"
+"Do you want to update the Tools Database?"
+msgstr ""
+"Un ou plusieurs outils ont été modifiés.\n"
+"Voulez-vous mettre à jour la base de données?"
+
+#: App_Main.py:5273
+msgid "Save Tools Database"
+msgstr "Enregistrement de la base de données d'outils"
+
+#: App_Main.py:5326
+msgid "No object selected to Flip on Y axis."
+msgstr "Aucun objet sélectionné pour basculer sur l’axe Y."
+
+#: App_Main.py:5352
+msgid "Flip on Y axis done."
+msgstr "Rotation sur l'axe des Y effectué."
+
+#: App_Main.py:5374
+msgid "No object selected to Flip on X axis."
+msgstr "Aucun objet sélectionné pour basculer sur l’axe X."
+
+#: App_Main.py:5400
+msgid "Flip on X axis done."
+msgstr "Rotation sur l'axe des X effectué."
+
+#: App_Main.py:5422
+msgid "No object selected to Rotate."
+msgstr "Aucun objet sélectionné pour faire pivoter."
+
+#: App_Main.py:5425 App_Main.py:5476 App_Main.py:5513
+msgid "Transform"
+msgstr "Transformer"
+
+#: App_Main.py:5425 App_Main.py:5476 App_Main.py:5513
+msgid "Enter the Angle value:"
+msgstr "Entrez la valeur de l'angle:"
+
+#: App_Main.py:5455
+msgid "Rotation done."
+msgstr "Rotation effectuée."
+
+#: App_Main.py:5457
+msgid "Rotation movement was not executed."
+msgstr "Le mouvement de rotation n'a pas été exécuté."
+
+#: App_Main.py:5474
+msgid "No object selected to Skew/Shear on X axis."
+msgstr "Aucun objet sélectionné pour incliner/cisailler sur l'axe X."
+
+#: App_Main.py:5495
+msgid "Skew on X axis done."
+msgstr "Inclinaison sur l'axe X terminée."
+
+#: App_Main.py:5511
+msgid "No object selected to Skew/Shear on Y axis."
+msgstr "Aucun objet sélectionné pour incliner/cisailler sur l'axe Y."
+
+#: App_Main.py:5532
+msgid "Skew on Y axis done."
+msgstr "Inclinaison sur l'axe des Y effectué."
+
+#: App_Main.py:5611
+msgid "New Grid ..."
+msgstr "Nouvelle grille ..."
+
+#: App_Main.py:5612
+msgid "Enter a Grid Value:"
+msgstr "Entrez une valeur de grille:"
+
+#: App_Main.py:5620 App_Main.py:5644
+msgid "Please enter a grid value with non-zero value, in Float format."
+msgstr ""
+"Veuillez entrer une valeur de grille avec une valeur non nulle, au format "
+"réel."
+
+#: App_Main.py:5625
+msgid "New Grid added"
+msgstr "Nouvelle grille ajoutée"
+
+#: App_Main.py:5627
+msgid "Grid already exists"
+msgstr "La grille existe déjà"
+
+#: App_Main.py:5629
+msgid "Adding New Grid cancelled"
+msgstr "Ajout d'une nouvelle grille annulée"
+
+#: App_Main.py:5650
+msgid " Grid Value does not exist"
+msgstr " Valeur de la grille n'existe pas"
+
+#: App_Main.py:5652
+msgid "Grid Value deleted"
+msgstr "Valeur de grille supprimée"
+
+#: App_Main.py:5654
+msgid "Delete Grid value cancelled"
+msgstr "Suppression valeur de grille annulée"
+
+#: App_Main.py:5660
+msgid "Key Shortcut List"
+msgstr "Liste de raccourcis clavier"
+
+#: App_Main.py:5694
+msgid " No object selected to copy it's name"
+msgstr " Aucun objet sélectionné pour copier son nom"
+
+#: App_Main.py:5698
+msgid "Name copied on clipboard ..."
+msgstr "Nom copié dans le presse-papiers ..."
+
+#: App_Main.py:6331
+msgid ""
+"There are files/objects opened in FlatCAM.\n"
+"Creating a New project will delete them.\n"
+"Do you want to Save the project?"
+msgstr ""
+"Fichiers ou objets ouverts dans FlatCAM.\n"
+"La création d'un nouveau projet les supprimera.\n"
+"Voulez-vous enregistrer le projet?"
+
+#: App_Main.py:6352
+msgid "New Project created"
+msgstr "Nouveau projet"
+
+#: App_Main.py:6522 App_Main.py:6559 App_Main.py:6601 App_Main.py:6671
+#: App_Main.py:7454 App_Main.py:8667 App_Main.py:8729
+msgid ""
+"Canvas initialization started.\n"
+"Canvas initialization finished in"
+msgstr ""
+"Initialisation du canevas commencé.\n"
+"Initialisation du canevas terminée en"
+
+#: App_Main.py:6524
+msgid "Opening Gerber file."
+msgstr "Ouvrir le fichier Gerber."
+
+#: App_Main.py:6561
+msgid "Opening Excellon file."
+msgstr "Ouverture du fichier Excellon."
+
+#: App_Main.py:6592 App_Main.py:6596
+msgid "Open G-Code"
+msgstr "Ouvrir G-code"
+
+#: App_Main.py:6603
+msgid "Opening G-Code file."
+msgstr "Ouverture du fichier G-Code."
+
+#: App_Main.py:6662 App_Main.py:6666
+msgid "Open HPGL2"
+msgstr "Ouvrir HPGL2"
+
+#: App_Main.py:6673
+msgid "Opening HPGL2 file."
+msgstr "Ouverture de fichier HPGL2."
+
+#: App_Main.py:6696 App_Main.py:6699
+msgid "Open Configuration File"
+msgstr "Ouvrir Fichier de configuration"
+
+#: App_Main.py:6719 App_Main.py:7066
+msgid "Please Select a Geometry object to export"
+msgstr "Sélectionner un objet de géométrie à exporter"
+
+#: App_Main.py:6733
+msgid "Only Geometry, Gerber and CNCJob objects can be used."
+msgstr "Seuls les objets Géométrie, Gerber et CNCJob peuvent être utilisés."
+
+#: App_Main.py:6775
+msgid "Data must be a 3D array with last dimension 3 or 4"
+msgstr ""
+"Les données doivent être un tableau 3D avec la dernière dimension 3 ou 4"
+
+#: App_Main.py:6781 App_Main.py:6785
+msgid "Export PNG Image"
+msgstr "Exporter une image PNG"
+
+#: App_Main.py:6818 App_Main.py:7026
+msgid "Failed. Only Gerber objects can be saved as Gerber files..."
+msgstr ""
+"Érreur. Seuls les objets Gerber peuvent être enregistrés en tant que "
+"fichiers Gerber ..."
+
+#: App_Main.py:6830
+msgid "Save Gerber source file"
+msgstr "Enregistrer le fichier source Gerber"
+
+#: App_Main.py:6859
+msgid "Failed. Only Script objects can be saved as TCL Script files..."
+msgstr ""
+"Érreur. Seuls les objets de script peuvent être enregistrés en tant que "
+"fichiers de script TCL ..."
+
+#: App_Main.py:6871
+msgid "Save Script source file"
+msgstr "Enregistrer le fichier source du script"
+
+#: App_Main.py:6900
+msgid "Failed. Only Document objects can be saved as Document files..."
+msgstr ""
+"Échoué. Seuls les objets Document peuvent être enregistrés en tant que "
+"fichiers Document ..."
+
+#: App_Main.py:6912
+msgid "Save Document source file"
+msgstr "Enregistrer le fichier source du document"
+
+#: App_Main.py:6941 App_Main.py:6982 App_Main.py:7937
+msgid "Failed. Only Excellon objects can be saved as Excellon files..."
+msgstr ""
+"Érreur. Seuls les objets Excellon peuvent être enregistrés en tant que "
+"fichiers Excellon ..."
+
+#: App_Main.py:6949 App_Main.py:6953
+msgid "Save Excellon source file"
+msgstr "Enregistrer le fichier source Excellon"
+
+#: App_Main.py:6990 App_Main.py:6994
+msgid "Export Excellon"
+msgstr "Exporter Excellon"
+
+#: App_Main.py:7034 App_Main.py:7038
+msgid "Export Gerber"
+msgstr "Export Gerber"
+
+#: App_Main.py:7076
+msgid "Only Geometry objects can be used."
+msgstr "Seuls les objets de géométrie peuvent être utilisés."
+
+#: App_Main.py:7090 App_Main.py:7094
+msgid "Export DXF"
+msgstr "Exportation DXF"
+
+#: App_Main.py:7119 App_Main.py:7122
+msgid "Import SVG"
+msgstr "Importer SVG"
+
+#: App_Main.py:7150 App_Main.py:7154
+msgid "Import DXF"
+msgstr "Importation DXF"
+
+#: App_Main.py:7204
+msgid "Viewing the source code of the selected object."
+msgstr "Affichage du code source de l'objet sélectionné."
+
+#: App_Main.py:7211 App_Main.py:7215
+msgid "Select an Gerber or Excellon file to view it's source file."
+msgstr ""
+"Sélectionnez un fichier Gerber ou Excellon pour afficher son fichier source."
+
+#: App_Main.py:7229
+msgid "Source Editor"
+msgstr "Éditeur de source"
+
+#: App_Main.py:7269 App_Main.py:7276
+msgid "There is no selected object for which to see it's source file code."
+msgstr "Il n'y a pas d'objet sélectionné auxquelles voir son code source."
+
+#: App_Main.py:7288
+msgid "Failed to load the source code for the selected object"
+msgstr "Échec du chargement du code source pour l'objet sélectionné"
+
+#: App_Main.py:7324
+msgid "Go to Line ..."
+msgstr "Aller à la ligne ..."
+
+#: App_Main.py:7325
+msgid "Line:"
+msgstr "Ligne:"
+
+#: App_Main.py:7352
+msgid "New TCL script file created in Code Editor."
+msgstr "Nouveau fichier de script TCL créé dans l'éditeur de code."
+
+#: App_Main.py:7388 App_Main.py:7390 App_Main.py:7426 App_Main.py:7428
+msgid "Open TCL script"
+msgstr "Ouvrir le script TCL"
+
+#: App_Main.py:7456
+msgid "Executing ScriptObject file."
+msgstr "Exécution du fichier ScriptObject."
+
+#: App_Main.py:7464 App_Main.py:7467
+msgid "Run TCL script"
+msgstr "Exécuter le script TCL"
+
+#: App_Main.py:7490
+msgid "TCL script file opened in Code Editor and executed."
+msgstr "Fichier de script TCL ouvert dans l'éditeur de code exécuté."
+
+#: App_Main.py:7541 App_Main.py:7547
+msgid "Save Project As ..."
+msgstr "Enregistrer le projet sous ..."
+
+#: App_Main.py:7582
+msgid "FlatCAM objects print"
+msgstr "Impression d'objets FlatCAM"
+
+#: App_Main.py:7595 App_Main.py:7602
+msgid "Save Object as PDF ..."
+msgstr "Enregistrement au format PDF ...Enregistrer le projet sous ..."
+
+#: App_Main.py:7611
+msgid "Printing PDF ... Please wait."
+msgstr "Impression du PDF ... Veuillez patienter."
+
+#: App_Main.py:7790
+msgid "PDF file saved to"
+msgstr "Fichier PDF enregistré dans"
+
+#: App_Main.py:7815
+msgid "Exporting SVG"
+msgstr "Exporter du SVG"
+
+#: App_Main.py:7858
+msgid "SVG file exported to"
+msgstr "Fichier SVG exporté vers"
+
+#: App_Main.py:7884
+msgid ""
+"Save cancelled because source file is empty. Try to export the Gerber file."
+msgstr ""
+"Enregistrement annulé car le fichier source est vide. Essayez d'exporter le "
+"fichier Gerber."
+
+#: App_Main.py:8031
+msgid "Excellon file exported to"
+msgstr "Fichier Excellon exporté vers"
+
+#: App_Main.py:8040
+msgid "Exporting Excellon"
+msgstr "Exporter Excellon"
+
+#: App_Main.py:8045 App_Main.py:8052
+msgid "Could not export Excellon file."
+msgstr "Impossible d'exporter le fichier Excellon."
+
+#: App_Main.py:8167
+msgid "Gerber file exported to"
+msgstr "Fichier Gerber exporté vers"
+
+#: App_Main.py:8175
+msgid "Exporting Gerber"
+msgstr "Exporter Gerber"
+
+#: App_Main.py:8180 App_Main.py:8187
+msgid "Could not export Gerber file."
+msgstr "Impossible d'exporter le fichier Gerber."
+
+#: App_Main.py:8222
+msgid "DXF file exported to"
+msgstr "Fichier DXF exporté vers"
+
+#: App_Main.py:8228
+msgid "Exporting DXF"
+msgstr "Exportation DXF"
+
+#: App_Main.py:8233 App_Main.py:8240
+msgid "Could not export DXF file."
+msgstr "Impossible d'exporter le fichier DXF."
+
+#: App_Main.py:8274
+msgid "Importing SVG"
+msgstr "Importer du SVG"
+
+#: App_Main.py:8282 App_Main.py:8328
+msgid "Import failed."
+msgstr "L'importation a échoué."
+
+#: App_Main.py:8320
+msgid "Importing DXF"
+msgstr "Importation de DXF"
+
+#: App_Main.py:8361 App_Main.py:8556 App_Main.py:8621
+msgid "Failed to open file"
+msgstr "Échec à l'ouverture du fichier"
+
+#: App_Main.py:8364 App_Main.py:8559 App_Main.py:8624
+msgid "Failed to parse file"
+msgstr "Échec de l'analyse du fichier"
+
+#: App_Main.py:8376
+msgid "Object is not Gerber file or empty. Aborting object creation."
+msgstr ""
+"L'objet n'est pas un fichier Gerber ou vide. Abandon de la création d'objet."
+
+#: App_Main.py:8381
+msgid "Opening Gerber"
+msgstr "Ouverture Gerber"
+
+#: App_Main.py:8392
+msgid "Open Gerber failed. Probable not a Gerber file."
+msgstr "Ouverture Gerber échoué. Probablement pas un fichier Gerber."
+
+#: App_Main.py:8428
+msgid "Cannot open file"
+msgstr "Ne peut pas ouvrir le fichier"
+
+#: App_Main.py:8449
+msgid "Opening Excellon."
+msgstr "Ouverture Excellon."
+
+#: App_Main.py:8459
+msgid "Open Excellon file failed. Probable not an Excellon file."
+msgstr "Ouverture Excellon échoué. Probablement pas un fichier Excellon."
+
+#: App_Main.py:8491
+msgid "Reading GCode file"
+msgstr "Lecture du fichier GCode"
+
+#: App_Main.py:8504
+msgid "This is not GCODE"
+msgstr "Ce n'est pas du GCODE"
+
+#: App_Main.py:8509
+msgid "Opening G-Code."
+msgstr "Ouverture G-Code."
+
+#: App_Main.py:8522
+msgid ""
+"Failed to create CNCJob Object. Probable not a GCode file. Try to load it "
+"from File menu.\n"
+" Attempting to create a FlatCAM CNCJob Object from G-Code file failed during "
+"processing"
+msgstr ""
+"Impossible de créer un objet CNCJob. Probablement pas un fichier GCode. "
+"Essayez de charger à partir du menu Fichier.\n"
+"La tentative de création d'un objet FlatCAM CNCJob à partir d'un fichier G-"
+"Code a échoué pendant le traitement"
+
+#: App_Main.py:8578
+msgid "Object is not HPGL2 file or empty. Aborting object creation."
+msgstr "Objet vide ou non HPGL2. Abandon de la création d'objet."
+
+#: App_Main.py:8583
+msgid "Opening HPGL2"
+msgstr "Ouverture HPGL2"
+
+#: App_Main.py:8590
+msgid " Open HPGL2 failed. Probable not a HPGL2 file."
+msgstr " Ouverture HPGL2 échoué. Probablement pas un fichier HPGL2 ."
+
+#: App_Main.py:8616
+msgid "TCL script file opened in Code Editor."
+msgstr "Fichier de script TCL ouvert dans l'éditeur de code."
+
+#: App_Main.py:8636
+msgid "Opening TCL Script..."
+msgstr "Ouverture du script TCL ..."
+
+#: App_Main.py:8647
+msgid "Failed to open TCL Script."
+msgstr "Impossible d'ouvrir le script TCL."
+
+#: App_Main.py:8669
+msgid "Opening FlatCAM Config file."
+msgstr "Ouverture du fichier de configuration FlatCAM."
+
+#: App_Main.py:8697
+msgid "Failed to open config file"
+msgstr "Impossible d'ouvrir le fichier de configuration"
+
+#: App_Main.py:8726
+msgid "Loading Project ... Please Wait ..."
+msgstr "Chargement du projet ... Veuillez patienter ..."
+
+#: App_Main.py:8731
+msgid "Opening FlatCAM Project file."
+msgstr "Ouverture du fichier de projet FlatCAM."
+
+#: App_Main.py:8746 App_Main.py:8750 App_Main.py:8767
+msgid "Failed to open project file"
+msgstr "Impossible d'ouvrir le fichier de projet"
+
+#: App_Main.py:8804
+msgid "Loading Project ... restoring"
+msgstr "Chargement du projet ... en cours de restauration"
+
+#: App_Main.py:8814
+msgid "Project loaded from"
+msgstr "Projet chargé à partir de"
+
+#: App_Main.py:8840
+msgid "Redrawing all objects"
+msgstr "Redessiner tous les objets"
+
+#: App_Main.py:8928
+msgid "Failed to load recent item list."
+msgstr "Échec du chargement des éléments récents."
+
+#: App_Main.py:8935
+msgid "Failed to parse recent item list."
+msgstr "Échec d'analyse des éléments récents."
+
+#: App_Main.py:8945
+msgid "Failed to load recent projects item list."
+msgstr "Échec du chargement des éléments des projets récents."
+
+#: App_Main.py:8952
+msgid "Failed to parse recent project item list."
+msgstr "Échec de l'analyse de la liste des éléments de projet récents."
+
+#: App_Main.py:9013
+msgid "Clear Recent projects"
+msgstr "Effacer les projets récents"
+
+#: App_Main.py:9037
+msgid "Clear Recent files"
+msgstr "Effacer les fichiers récents"
+
+#: App_Main.py:9139
+msgid "Selected Tab - Choose an Item from Project Tab"
+msgstr ""
+"Onglet sélection - \n"
+"Choisissez un élément dans l'onglet Projet"
+
+#: App_Main.py:9140
+msgid "Details"
+msgstr "Détails"
+
+#: App_Main.py:9142
+msgid "The normal flow when working in FlatCAM is the following:"
+msgstr "Chronologie de travaille dans FlatCAM:"
+
+#: App_Main.py:9143
+#, fuzzy
+#| msgid ""
+#| "Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into "
+#| "FlatCAM using either the toolbars, key shortcuts or even dragging and "
+#| "dropping the files on the GUI."
+msgid ""
+"Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into "
+"FlatCAM using either the toolbars, key shortcuts or even dragging and "
+"dropping the files on the AppGUI."
+msgstr ""
+"Chargez / importez un fichier Gerber, Excellon, Gcode, DXF,\n"
+"Image raster ou SVG dans FlatCAM à l'aide des barres d'outils, \n"
+"des raccourcis clavier ou même en glissant-déposant les fichiers \n"
+"sur l'interface graphique."
+
+#: App_Main.py:9146
+#, fuzzy
+#| msgid ""
+#| "You can also load a FlatCAM project by double clicking on the project "
+#| "file, drag and drop of the file into the FLATCAM GUI or through the menu "
+#| "(or toolbar) actions offered within the app."
+msgid ""
+"You can also load a FlatCAM project by double clicking on the project file, "
+"drag and drop of the file into the FLATCAM AppGUI or through the menu (or "
+"toolbar) actions offered within the app."
+msgstr ""
+"Vous pouvez également charger un projet FlatCAM en double-cliquant sur le "
+"fichier du projet, en le glissant-déposant dans l’interface graphique de "
+"FLATCAM ou par le biais du menu (ou de la barre d’outils) proposé dans "
+"l’application."
+
+#: App_Main.py:9149
+msgid ""
+"Once an object is available in the Project Tab, by selecting it and then "
+"focusing on SELECTED TAB (more simpler is to double click the object name in "
+"the Project Tab, SELECTED TAB will be updated with the object properties "
+"according to its kind: Gerber, Excellon, Geometry or CNCJob object."
+msgstr ""
+"Une fois la sélection d'un objet dans \"Projet\", L'onglet \"Sélection\" "
+"sera mis à jour avec les propriétés de l'objet en fonction de son type: "
+"Gerber, Excellon, géométrie ou CNCJob."
+
+#: App_Main.py:9153
+msgid ""
+"If the selection of the object is done on the canvas by single click "
+"instead, and the SELECTED TAB is in focus, again the object properties will "
+"be displayed into the Selected Tab. Alternatively, double clicking on the "
+"object on the canvas will bring the SELECTED TAB and populate it even if it "
+"was out of focus."
+msgstr ""
+"La sélection de l'objet est importé par un simple clic depuis le l'onglet "
+"\"projet\". L'onglet \"sélection\" est automatiquement affecté des "
+"propriétés de l'objet Gerber, Excellon, Géométrie, ou CNC Job de façon "
+"interactive. Double-cliquez sur l'objet de la table pour activer l'onglet "
+"\"Sélectionné\" et disposé des propriétés de l'objet."
+
+#: App_Main.py:9157
+msgid ""
+"You can change the parameters in this screen and the flow direction is like "
+"this:"
+msgstr "Vous pouvez modifier les paramètres de la façon suivante:"
+
+#: App_Main.py:9158
+msgid ""
+"Gerber/Excellon Object --> Change Parameter --> Generate Geometry --> "
+"Geometry Object --> Add tools (change param in Selected Tab) --> Generate "
+"CNCJob --> CNCJob Object --> Verify GCode (through Edit CNC Code) and/or "
+"append/prepend to GCode (again, done in SELECTED TAB) --> Save GCode."
+msgstr ""
+"Exemple:\n"
+"Importer puis choisissez un Objet Gerber -> Signet \"Sélection\" -> Réglé "
+"les paramètre de travaille à votre convenance -> \"Générer une géométrie "
+"d'isolation\" -> le fichier de travaille nouvellement Créer apparait dans "
+"CNC Job. Ce sont les fichiers CNC Job qui permettrons le travaille de votre "
+"appareille de gravure."
+
+#: App_Main.py:9162
+msgid ""
+"A list of key shortcuts is available through an menu entry in Help --> "
+"Shortcuts List or through its own key shortcut: F3."
+msgstr ""
+"Une liste des raccourcis clavier est disponible via le menu dans \"Aide\" "
+"ou avec la touche de raccourci F3."
+
+#: App_Main.py:9226
+msgid "Failed checking for latest version. Could not connect."
+msgstr "Échec de vérification de mise a jour. Connection impossible."
+
+#: App_Main.py:9233
+msgid "Could not parse information about latest version."
+msgstr "Impossible d'analyser les informations sur la dernière version."
+
+#: App_Main.py:9243
+msgid "FlatCAM is up to date!"
+msgstr "FlatCAM est à jour!"
+
+#: App_Main.py:9248
+msgid "Newer Version Available"
+msgstr "Nouvelle version FlatCam disponible"
+
+#: App_Main.py:9250
+msgid "There is a newer version of FlatCAM available for download:"
+msgstr "Une version plus récente de FlatCAM est disponible au téléchargement:"
+
+#: App_Main.py:9254
+msgid "info"
+msgstr "info"
+
+#: App_Main.py:9282
+msgid ""
+"OpenGL canvas initialization failed. HW or HW configuration not supported."
+"Change the graphic engine to Legacy(2D) in Edit -> Preferences -> General "
+"tab.\n"
+"\n"
+msgstr ""
+"L'initialisation du canevas OpenGL a échoué. La configuration matérielle "
+"n'est pas prise en charge. Modifiez le moteur graphique en Legacy(2D) dans "
+"Edition -> Paramètres -> onglet Général.\n"
+"\n"
+
+#: App_Main.py:9360
+msgid "All plots disabled."
+msgstr "Désactivation de tous les Plots."
+
+#: App_Main.py:9367
+msgid "All non selected plots disabled."
+msgstr "Désélection de tous les Plots."
+
+#: App_Main.py:9374
+msgid "All plots enabled."
+msgstr "Activation de tous les Plots."
+
+#: App_Main.py:9380
+msgid "Selected plots enabled..."
+msgstr "Sélection de tous les Plots activés ..."
+
+#: App_Main.py:9388
+msgid "Selected plots disabled..."
+msgstr "Selection de tous les Plots désactivés ..."
+
+#: App_Main.py:9421
+msgid "Enabling plots ..."
+msgstr "Activation des plots ..."
+
+#: App_Main.py:9470
+msgid "Disabling plots ..."
+msgstr "Désactiver les plots ..."
+
+#: App_Main.py:9493
+msgid "Working ..."
+msgstr "Travail ..."
+
+#: App_Main.py:9602
+msgid "Set alpha level ..."
+msgstr "Définir le premier niveau ..."
+
+#: App_Main.py:9656
+msgid "Saving FlatCAM Project"
+msgstr "Enregistrement du projet FlatCAM"
+
+#: App_Main.py:9677 App_Main.py:9713
+msgid "Project saved to"
+msgstr "Projet enregistré dans"
+
+#: App_Main.py:9684
+msgid "The object is used by another application."
+msgstr "L'objet est utilisé par une autre application."
+
+#: App_Main.py:9698
+msgid "Failed to verify project file"
+msgstr "Échec de vérification du fichier projet"
+
+#: App_Main.py:9698 App_Main.py:9706 App_Main.py:9716
+msgid "Retry to save it."
+msgstr "Réessayez de le sauvegarder."
+
+#: App_Main.py:9706 App_Main.py:9716
+msgid "Failed to parse saved project file"
+msgstr "Échec d'analyse du fichier de projet enregistré"
+
+#: Bookmark.py:57 Bookmark.py:84
+msgid "Title"
+msgstr "Titre"
+
+#: Bookmark.py:58 Bookmark.py:88
+msgid "Web Link"
+msgstr "Lien Web"
+
+#: Bookmark.py:62
+msgid ""
+"Index.\n"
+"The rows in gray color will populate the Bookmarks menu.\n"
+"The number of gray colored rows is set in Preferences."
+msgstr ""
+"Index.\n"
+"Les lignes seront grisé dans le menu.\n"
+"Le nombre de lignes de couleur grises est défini dans Paramètres ."
+
+#: Bookmark.py:66
+msgid ""
+"Description of the link that is set as an menu action.\n"
+"Try to keep it short because it is installed as a menu item."
+msgstr ""
+"Description du lien défini dans le menu.\n"
+"Rester bref car il est installé en tant qu'élément de menu."
+
+#: Bookmark.py:69
+msgid "Web Link. E.g: https://your_website.org "
+msgstr "Lien Web. Par exemple: https://your_website.org "
+
+#: Bookmark.py:78
+msgid "New Bookmark"
+msgstr "Nouveau Menu"
+
+#: Bookmark.py:97
+msgid "Add Entry"
+msgstr "Ajouter une entrée"
+
+#: Bookmark.py:98
+msgid "Remove Entry"
+msgstr "Supprimer l'entrée"
+
+#: Bookmark.py:99
+msgid "Export List"
+msgstr "Exporter la liste"
+
+#: Bookmark.py:100
+msgid "Import List"
+msgstr "Importer la liste"
+
+#: Bookmark.py:190
+msgid "Title entry is empty."
+msgstr "L'entrée de titre est vide."
+
+#: Bookmark.py:199
+msgid "Web link entry is empty."
+msgstr "L'entrée du lien Web est vide."
+
+#: Bookmark.py:207
+msgid "Either the Title or the Weblink already in the table."
+msgstr "Titre ou lien Web déjà dans le tableau."
+
+#: Bookmark.py:227
+msgid "Bookmark added."
+msgstr "Signet ajouté."
+
+#: Bookmark.py:244
+msgid "This bookmark can not be removed"
+msgstr "Ce menu ne peut être supprimé"
+
+#: Bookmark.py:275
+msgid "Bookmark removed."
+msgstr "Signet supprimé."
+
+#: Bookmark.py:290
+msgid "Export FlatCAM Bookmarks"
+msgstr "Exporter les signets FlatCAM"
+
+#: Bookmark.py:319 Bookmark.py:349
+msgid "Could not load bookmarks file."
+msgstr "Impossible de charger le fichier des Menus."
+
+#: Bookmark.py:329
+msgid "Failed to write bookmarks to file."
+msgstr "Échec de l'écriture des signet dans le fichier."
+
+#: Bookmark.py:331
+msgid "Exported bookmarks to"
+msgstr "Menu exportés vers"
+
+#: Bookmark.py:337
+msgid "Import FlatCAM Bookmarks"
+msgstr "Importer des signet FlatCAM"
+
+#: Bookmark.py:356
+msgid "Imported Bookmarks from"
+msgstr "Signet importés de"
+
+#: Common.py:37
+msgid "The user requested a graceful exit of the current task."
+msgstr "L'utilisateur a demandé une sortie de la tâche en cours."
+
+#: Common.py:250
+#, fuzzy
+#| msgid "Click the end point of the paint area."
+msgid "Click the end point of the area."
+msgstr "Cliquez sur le point final de la zone de peinture."
+
+#: Common.py:386
+msgid "Exclusion areas added. Checking overlap with the object geometry ..."
+msgstr ""
+
+#: Common.py:392
+msgid "Failed. Exclusion areas intersects the object geometry ..."
+msgstr ""
+
+#: Common.py:396
+msgid "Exclusion areas added."
+msgstr ""
+
+#: Common.py:405
+msgid "With Exclusion areas."
+msgstr ""
+
+#: Common.py:435
+msgid "Cancelled. Area exclusion drawing was interrupted."
+msgstr ""
+
+#: Common.py:527 Common.py:575
+#, fuzzy
+#| msgid "All objects are selected."
+msgid "All exclusion zones deleted."
+msgstr "Tous les objets sont sélectionnés."
+
+#: Common.py:562
+#, fuzzy
+#| msgid "Selected plots enabled..."
+msgid "Selected exclusion zones deleted."
+msgstr "Sélection de tous les Plots activés ..."
+
+#: assets/linux/flatcam-beta.desktop:3
+msgid "FlatCAM Beta"
+msgstr "FlatCAM Beta"
+
+#: assets/linux/flatcam-beta.desktop:8
+msgid "G-Code from GERBERS"
+msgstr "G-Code de GERBERS"
+
+#: camlib.py:596
+msgid "self.solid_geometry is neither BaseGeometry or list."
+msgstr "self.solid_géométrie n'est ni BaseGeometry ni une liste."
+
+#: camlib.py:971
+msgid "Pass"
+msgstr "Passer"
+
+#: camlib.py:991
+msgid "Get Exteriors"
+msgstr "Obtenez des extérieurs"
+
+#: camlib.py:994
+msgid "Get Interiors"
+msgstr "Obtenez des intérieurs"
+
+#: camlib.py:2174
+msgid "Object was mirrored"
+msgstr "L'objet a été reflété"
+
+#: camlib.py:2176
+msgid "Failed to mirror. No object selected"
+msgstr "Impossible de refléter. Aucun objet sélectionné"
+
+#: camlib.py:2241
+msgid "Object was rotated"
+msgstr "L'objet a été tourné"
+
+#: camlib.py:2243
+msgid "Failed to rotate. No object selected"
+msgstr "Échec de la rotation. Aucun objet sélectionné"
+
+#: camlib.py:2309
+msgid "Object was skewed"
+msgstr "L'objet était de biaiser"
+
+#: camlib.py:2311
+msgid "Failed to skew. No object selected"
+msgstr "Impossible de biaiser. Aucun objet sélectionné"
+
+#: camlib.py:2387
+msgid "Object was buffered"
+msgstr "L'objet a été tamponnées"
+
+#: camlib.py:2389
+msgid "Failed to buffer. No object selected"
+msgstr "Échec de la mise en buffer. Aucun objet sélectionné"
+
+#: camlib.py:2597
+msgid "There is no such parameter"
+msgstr "Il n'y a pas de tel paramètre"
+
+#: camlib.py:2657 camlib.py:2898 camlib.py:3127 camlib.py:3349
+msgid ""
+"The Cut Z parameter has positive value. It is the depth value to drill into "
+"material.\n"
+"The Cut Z parameter needs to have a negative value, assuming it is a typo "
+"therefore the app will convert the value to negative. Check the resulting "
+"CNC code (Gcode etc)."
+msgstr ""
+"Le paramètre Cut Z a une valeur positive. C'est la valeur de profondeur à "
+"percer dans le matériau.\n"
+"Le paramètre Cut Z doit avoir une valeur négative, en supposant qu'il "
+"s'agisse d'une faute de frappe; par conséquent, l'application convertira la "
+"valeur en valeur négative. Vérifiez le code CNC résultant (Gcode, etc.)."
+
+#: camlib.py:2665 camlib.py:2908 camlib.py:3137 camlib.py:3359 camlib.py:3650
+#: camlib.py:4045
+msgid "The Cut Z parameter is zero. There will be no cut, skipping file"
+msgstr "Le paramètre Cut Z est zéro. Il n'y aura pas de fichier coupé, sautant"
+
+#: camlib.py:2680 camlib.py:4013
+msgid ""
+"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, "
+"y) \n"
+"but now there is only one value, not two. "
+msgstr ""
+"Le champ Toolchange X, Y dans Edition -> Paramètres doit être au format (x, "
+"y)\n"
+"mais maintenant il n'y a qu'une seule valeur, pas deux. "
+
+#: camlib.py:2693 camlib.py:3597 camlib.py:3991
+msgid ""
+"The End Move X,Y field in Edit -> Preferences has to be in the format (x, y) "
+"but now there is only one value, not two."
+msgstr ""
+"Le champ Fin du déplacement X, Y dans Edition -> Paramètres doit être au "
+"format (x, y) mais maintenant il n'y a qu'une seule valeur, pas deux."
+
+#: camlib.py:2781
+msgid "Creating a list of points to drill..."
+msgstr "Création d'une liste de points à explorer ..."
+
+#: camlib.py:2871 camlib.py:3748 camlib.py:4149
+msgid "Starting G-Code"
+msgstr "Démarrer le GCode"
+
+#: camlib.py:3012 camlib.py:3231 camlib.py:3395 camlib.py:3761 camlib.py:4160
+msgid "Starting G-Code for tool with diameter"
+msgstr "Code G de départ pour outil avec diamètre"
+
+#: camlib.py:3095 camlib.py:3313 camlib.py:3481
+msgid "G91 coordinates not implemented"
+msgstr "Coordonnées G91 non implémentées"
+
+#: camlib.py:3101 camlib.py:3320 camlib.py:3486
+msgid "The loaded Excellon file has no drills"
+msgstr "Le fichier Excellon chargé n'a pas d'exercices"
+
+#: camlib.py:3509
+msgid "Finished G-Code generation..."
+msgstr "Fini la génération de GCode ..."
+
+#: camlib.py:3619
+msgid ""
+"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, "
+"y) \n"
+"but now there is only one value, not two."
+msgstr ""
+"Le champ Toolchange X, Y dans Edition -> Paramètres doit être au format (x, "
+"y)\n"
+"mais maintenant il n'y a qu'une seule valeur, pas deux."
+
+#: camlib.py:3633 camlib.py:4028
+msgid ""
+"Cut_Z parameter is None or zero. Most likely a bad combinations of other "
+"parameters."
+msgstr ""
+"Le paramètre Cut_Z est Aucun ou zéro. Très probablement une mauvaise "
+"combinaison d'autres paramètres."
+
+#: camlib.py:3642 camlib.py:4037
+msgid ""
+"The Cut Z parameter has positive value. It is the depth value to cut into "
+"material.\n"
+"The Cut Z parameter needs to have a negative value, assuming it is a typo "
+"therefore the app will convert the value to negative.Check the resulting CNC "
+"code (Gcode etc)."
+msgstr ""
+"Le paramètre Cut Z a une valeur positive. C'est la valeur de profondeur à "
+"couper dans le matériau.\n"
+"Le paramètre Cut Z doit avoir une valeur négative, en supposant qu'il "
+"s'agisse d'une faute de frappe. Par conséquent, l'application convertira la "
+"valeur en valeur négative. Vérifiez le code CNC résultant (Gcode, etc.)."
+
+#: camlib.py:3655 camlib.py:4051
+msgid "Travel Z parameter is None or zero."
+msgstr "Le paramètre Voyage Z est Aucun ou zéro."
+
+#: camlib.py:3660 camlib.py:4056
+msgid ""
+"The Travel Z parameter has negative value. It is the height value to travel "
+"between cuts.\n"
+"The Z Travel parameter needs to have a positive value, assuming it is a typo "
+"therefore the app will convert the value to positive.Check the resulting CNC "
+"code (Gcode etc)."
+msgstr ""
+"Le paramètre Travel Z a une valeur négative. C'est la valeur de hauteur pour "
+"voyager entre les coupes.\n"
+"Le paramètre Z voyage doit avoir une valeur positive, en supposant qu'il "
+"s'agisse d'une faute de frappe. Par conséquent, l'application convertira la "
+"valeur en valeur positive. Vérifiez le code CNC résultant (Gcode, etc.)."
+
+#: camlib.py:3668 camlib.py:4064
+msgid "The Z Travel parameter is zero. This is dangerous, skipping file"
+msgstr "Le paramètre Z voyage est zéro. Ceci est dangereux, ignorer le fichier"
+
+#: camlib.py:3687 camlib.py:4087
+msgid "Indexing geometry before generating G-Code..."
+msgstr "Indexer la géométrie avant de générer le GCode ..."
+
+#: camlib.py:3831 camlib.py:4229
+msgid "Finished G-Code generation"
+msgstr "Génération de GCode terminée"
+
+#: camlib.py:3831
+msgid "paths traced"
+msgstr "chemins tracés"
+
+#: camlib.py:3881
+msgid "Expected a Geometry, got"
+msgstr "Attendait une géométrie, eu"
+
+#: camlib.py:3888
+msgid ""
+"Trying to generate a CNC Job from a Geometry object without solid_geometry."
+msgstr ""
+"Essayer de générer un travail CNC à partir d'un objet de géométrie sans "
+"solid_géométrie."
+
+#: camlib.py:3929
+msgid ""
+"The Tool Offset value is too negative to use for the current_geometry.\n"
+"Raise the value (in module) and try again."
+msgstr ""
+"La valeur de décalage de l'outil est trop négative pour pouvoir être "
+"utilisée pour current_géométrie.\n"
+"Augmentez la valeur (dans le module) et essayez à nouveau."
+
+#: camlib.py:4229
+msgid " paths traced."
+msgstr " chemins tracés."
+
+#: camlib.py:4257
+msgid "There is no tool data in the SolderPaste geometry."
+msgstr "Il n'y a pas de données d'outil dans la géométrie SolderPaste."
+
+#: camlib.py:4346
+msgid "Finished SolderPaste G-Code generation"
+msgstr "Génération de G-Code SolderPaste fini"
+
+#: camlib.py:4346
+msgid "paths traced."
+msgstr "chemins tracés."
+
+#: camlib.py:4606
+msgid "Parsing GCode file. Number of lines"
+msgstr "Analyse du fichier GCode. Nombre de lignes"
+
+#: camlib.py:4713
+msgid "Creating Geometry from the parsed GCode file. "
+msgstr "Création d'une géométrie à partir du fichier GCode analysé. "
+
+#: camlib.py:4856 camlib.py:5079 camlib.py:5190 camlib.py:5346
+msgid "G91 coordinates not implemented ..."
+msgstr "Coordonnées G91 non implémentées ..."
+
+#: camlib.py:4921
+msgid "Unifying Geometry from parsed Geometry segments"
+msgstr "Unifier la géométrie à partir de segments de géométrie analysés"
+
+#: defaults.py:756
+msgid "Could not load defaults file."
+msgstr "Impossible de charger le fichier par défaut."
+
+#: defaults.py:769
+msgid "Failed to parse defaults file."
+msgstr "Échec de l'analyse du fichier par défaut."
+
#: tclCommands/TclCommandBbox.py:75 tclCommands/TclCommandNregions.py:74
msgid "Expected GerberObject or GeometryObject, got"
msgstr "GerberObject ou GeometryObject attendu, obtenu"
@@ -18576,7 +18525,7 @@ msgstr "Attendu une liste de noms d'objets séparés par une virgule. Eu"
msgid "TclCommand Bounds done."
msgstr "TclCommand Bounds terminé."
-#: tclCommands/TclCommandCopperClear.py:281 tclCommands/TclCommandPaint.py:277
+#: tclCommands/TclCommandCopperClear.py:281 tclCommands/TclCommandPaint.py:283
#: tclCommands/TclCommandScale.py:81
msgid "Could not retrieve box object"
msgstr "Impossible de récupérer l'objet boîte"
@@ -18595,15 +18544,15 @@ msgstr ""
#: tclCommands/TclCommandGeoCutout.py:189
msgid "Gaps value can be only one of: 'lr', 'tb', '2lr', '2tb', 4 or 8."
msgstr ""
-"La valeur d'espacement ne peut être que l'une des valeurs suivantes: "
-"'Aucune', 'lr', 'tb', '2lr', '2tb', 4 ou 8."
+"Le nombre des ponts ne peut avoir que l'une des valeurs suivantes: 'None', "
+"'LR', 'TB', '2LR', '2TB', 4 ou 8."
#: tclCommands/TclCommandGeoCutout.py:301
-#: tclCommands/TclCommandGeoCutout.py:359
+#: tclCommands/TclCommandGeoCutout.py:356
msgid "Any-form Cutout operation finished."
msgstr "L'opération de découpe sous n'importe quelle forme est terminée."
-#: tclCommands/TclCommandGeoCutout.py:365
+#: tclCommands/TclCommandGeoCutout.py:362
msgid "Cancelled. Object type is not supported."
msgstr "Annulé. Le type d'objet n'est pas pris en charge."
@@ -18619,15 +18568,15 @@ msgstr "Tapez help pour l'utiliser."
msgid "Example: help open_gerber"
msgstr "Exemple: help open_gerber"
-#: tclCommands/TclCommandPaint.py:249
-msgid "Expected -x and -y ."
-msgstr "Attendu -x et -y ."
+#: tclCommands/TclCommandPaint.py:250 tclCommands/TclCommandPaint.py:256
+msgid "Expected a tuple value like -single 3.2,0.1."
+msgstr ""
-#: tclCommands/TclCommandPaint.py:270
+#: tclCommands/TclCommandPaint.py:276
msgid "Expected -box ."
msgstr "Attendu -box ."
-#: tclCommands/TclCommandPaint.py:291
+#: tclCommands/TclCommandPaint.py:297
msgid ""
"None of the following args: 'box', 'single', 'all' were used.\n"
"Paint failed."
@@ -18651,7 +18600,7 @@ msgstr "Attendu -x -y ."
msgid "Expected a pair of (x, y) coordinates. Got"
msgstr "Une paire de coordonnées (x, y) attendue. Eu"
-#: tclCommands/TclCommandSetOrigin.py:102
+#: tclCommands/TclCommandSetOrigin.py:101
msgid "Origin set by offsetting all loaded objects with "
msgstr "Origine définie en décalant tous les objets chargés avec "
@@ -18660,6 +18609,60 @@ msgid "No Geometry name in args. Provide a name and try again."
msgstr ""
"Aucun nom de géométrie dans les arguments. Indiquez un nom et réessayez."
+#~ msgid "./assets/icon.png"
+#~ msgstr "./assets/icon.png"
+
+#~ msgid "New Blank Geometry"
+#~ msgstr "Nouvelle Géométrie vierge"
+
+#~ msgid "New Blank Gerber"
+#~ msgstr "Nouveau Gerber vierge"
+
+#~ msgid "New Blank Excellon"
+#~ msgstr "Nouveau Excellon vierge"
+
+#~ msgid ""
+#~ "Relative measurement.\n"
+#~ "Reference is last click position"
+#~ msgstr ""
+#~ "Mesure relative\n"
+#~ "La référence est la position du dernier clic"
+
+#~ msgid "Apply Theme"
+#~ msgstr "Appliquer le thème"
+
+#~ msgid ""
+#~ "Select a theme for FlatCAM.\n"
+#~ "It will theme the plot area.\n"
+#~ "The application will restart after change."
+#~ msgstr ""
+#~ "Sélectionnez un thème pour FlatCAM.\n"
+#~ "Il aura pour thème la zone de traçage.\n"
+#~ "L'application redémarrera après le changement."
+
+#~ msgid "Film Object"
+#~ msgstr "Objet de Film"
+
+#~ msgid "Object for which to create the film."
+#~ msgstr "Objet pour lequel créer le film."
+
+#~ msgid "Box Object"
+#~ msgstr "Objet Box"
+
+#~ msgid ""
+#~ "The actual object that is used as container for the\n"
+#~ " selected object for which we create the film.\n"
+#~ "Usually it is the PCB outline but it can be also the\n"
+#~ "same object for which the film is created."
+#~ msgstr ""
+#~ "L'objet réel qui utilise un conteneur pour la\n"
+#~ " objet sélectionné pour lequel nous créons le film.\n"
+#~ "Habituellement, c’est le contour du PCB, mais cela peut aussi être le\n"
+#~ "même objet pour lequel le film est créé."
+
+#~ msgid "Expected -x and -y ."
+#~ msgstr "Attendu -x et -y ."
+
#~ msgid "Could not load factory defaults file."
#~ msgstr "Impossible de charger le fichier de paramètres d'usine."
@@ -18957,7 +18960,7 @@ msgstr ""
#~ msgid ""
#~ "- 'Itself' - the non copper clearing extent\n"
#~ "is based on the object that is copper cleared.\n"
-#~ "- 'Area Selection' - left mouse click to start selection of the area to "
+#~ " - 'Area Selection' - left mouse click to start selection of the area to "
#~ "be painted.\n"
#~ "Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple "
#~ "areas.\n"
@@ -19353,9 +19356,6 @@ msgstr ""
#~ "#\n"
#~ "\n"
-#~ msgid "Program Author"
-#~ msgstr "Auteur du programme"
-
#~ msgid "Change project units ..."
#~ msgstr "Changer les unités du projet ..."
diff --git a/locale/hu/LC_MESSAGES/strings.mo b/locale/hu/LC_MESSAGES/strings.mo
index 4df649ec..f16c4687 100644
Binary files a/locale/hu/LC_MESSAGES/strings.mo and b/locale/hu/LC_MESSAGES/strings.mo differ
diff --git a/locale/hu/LC_MESSAGES/strings.po b/locale/hu/LC_MESSAGES/strings.po
index 526e63b8..cdff25eb 100644
--- a/locale/hu/LC_MESSAGES/strings.po
+++ b/locale/hu/LC_MESSAGES/strings.po
@@ -5,8 +5,8 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
-"POT-Creation-Date: 2020-05-03 16:07+0300\n"
-"PO-Revision-Date: 2020-05-03 16:07+0300\n"
+"POT-Creation-Date: 2020-05-19 02:25+0300\n"
+"PO-Revision-Date: 2020-05-19 02:26+0300\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: en\n"
@@ -14,7 +14,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.2.4\n"
+"X-Generator: Poedit 2.3.1\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Poedit-Basepath: ../../..\n"
"X-Poedit-SearchPath-0: .\n"
@@ -22,182 +22,547 @@ msgstr ""
"X-Poedit-SearchPathExcluded-1: doc\n"
"X-Poedit-SearchPathExcluded-2: tests\n"
-#: FlatCAMApp.py:491
-msgid "FlatCAM is initializing ..."
-msgstr "FlatCAM is initializing ..."
+#: AppDatabase.py:86
+msgid "Add Geometry Tool in DB"
+msgstr "Add Geometry Tool in DB"
-#: FlatCAMApp.py:639
-msgid "Could not find the Language files. The App strings are missing."
-msgstr "Could not find the Language files. The App strings are missing."
-
-#: FlatCAMApp.py:709
+#: AppDatabase.py:88 AppDatabase.py:1643
msgid ""
-"FlatCAM is initializing ...\n"
-"Canvas initialization started."
+"Add a new tool in the Tools Database.\n"
+"It will be used in the Geometry UI.\n"
+"You can edit it after it is added."
msgstr ""
-"FlatCAM is initializing ...\n"
-"Canvas initialization started."
+"Add a new tool in the Tools Database.\n"
+"It will be used in the Geometry UI.\n"
+"You can edit it after it is added."
-#: FlatCAMApp.py:729
+#: AppDatabase.py:102 AppDatabase.py:1657
+msgid "Delete Tool from DB"
+msgstr "Delete Tool from DB"
+
+#: AppDatabase.py:104 AppDatabase.py:1659
+msgid "Remove a selection of tools in the Tools Database."
+msgstr "Remove a selection of tools in the Tools Database."
+
+#: AppDatabase.py:108 AppDatabase.py:1663
+msgid "Export DB"
+msgstr "Export DB"
+
+#: AppDatabase.py:110 AppDatabase.py:1665
+msgid "Save the Tools Database to a custom text file."
+msgstr "Save the Tools Database to a custom text file."
+
+#: AppDatabase.py:114 AppDatabase.py:1669
+msgid "Import DB"
+msgstr "Import DB"
+
+#: AppDatabase.py:116 AppDatabase.py:1671
+msgid "Load the Tools Database information's from a custom text file."
+msgstr "Load the Tools Database information's from a custom text file."
+
+#: AppDatabase.py:120 AppDatabase.py:1681
+msgid "Add Tool from Tools DB"
+msgstr "Add Tool from Tools DB"
+
+#: AppDatabase.py:122 AppDatabase.py:1683
msgid ""
-"FlatCAM is initializing ...\n"
-"Canvas initialization started.\n"
-"Canvas initialization finished in"
+"Add a new tool in the Tools Table of the\n"
+"active Geometry object after selecting a tool\n"
+"in the Tools Database."
msgstr ""
-"FlatCAM is initializing ...\n"
-"Canvas initialization started.\n"
-"Canvas initialization finished in"
+"Add a new tool in the Tools Table of the\n"
+"active Geometry object after selecting a tool\n"
+"in the Tools Database."
-#: FlatCAMApp.py:1593 FlatCAMApp.py:7451
-msgid "New Project - Not saved"
-msgstr "New Project - Not saved"
-
-#: FlatCAMApp.py:1689
-msgid ""
-"Found old default preferences files. Please reboot the application to update."
-msgstr ""
-"Found old default preferences files. Please reboot the application to update."
-
-#: FlatCAMApp.py:1740 FlatCAMApp.py:2512 FlatCAMApp.py:2547 FlatCAMApp.py:2594
-#: FlatCAMApp.py:4540 FlatCAMApp.py:7535 FlatCAMApp.py:7572 FlatCAMApp.py:7614
-#: FlatCAMApp.py:7643 FlatCAMApp.py:7684 FlatCAMApp.py:7709 FlatCAMApp.py:7761
-#: FlatCAMApp.py:7796 FlatCAMApp.py:7841 FlatCAMApp.py:7882 FlatCAMApp.py:7923
-#: FlatCAMApp.py:7964 FlatCAMApp.py:8005 FlatCAMApp.py:8049 FlatCAMApp.py:8105
-#: FlatCAMApp.py:8137 FlatCAMApp.py:8169 FlatCAMApp.py:8402 FlatCAMApp.py:8440
-#: FlatCAMApp.py:8483 FlatCAMApp.py:8560 FlatCAMApp.py:8615
-#: FlatCAMBookmark.py:300 FlatCAMBookmark.py:342 FlatCAMDB.py:663
-#: FlatCAMDB.py:709 FlatCAMDB.py:2125 FlatCAMDB.py:2171
-#: flatcamEditors/FlatCAMExcEditor.py:1023
-#: flatcamEditors/FlatCAMExcEditor.py:1091
-#: flatcamEditors/FlatCAMTextEditor.py:223 flatcamGUI/FlatCAMGUI.py:3443
-#: flatcamGUI/FlatCAMGUI.py:3659 flatcamGUI/FlatCAMGUI.py:3874
-#: flatcamObjects/ObjectCollection.py:126 flatcamTools/ToolFilm.py:754
-#: flatcamTools/ToolFilm.py:900 flatcamTools/ToolImage.py:247
-#: flatcamTools/ToolMove.py:269 flatcamTools/ToolPcbWizard.py:301
-#: flatcamTools/ToolPcbWizard.py:324 flatcamTools/ToolQRCode.py:791
-#: flatcamTools/ToolQRCode.py:838
-msgid "Cancelled."
-msgstr "Cancelled."
-
-#: FlatCAMApp.py:1756
-msgid "Open Config file failed."
-msgstr "Open Config file failed."
-
-#: FlatCAMApp.py:1771
-msgid "Open Script file failed."
-msgstr "Open Script file failed."
-
-#: FlatCAMApp.py:1797
-msgid "Open Excellon file failed."
-msgstr "Open Excellon file failed."
-
-#: FlatCAMApp.py:1810
-msgid "Open GCode file failed."
-msgstr "Open GCode file failed."
-
-#: FlatCAMApp.py:1823
-msgid "Open Gerber file failed."
-msgstr "Open Gerber file failed."
-
-#: FlatCAMApp.py:2131
-msgid "Select a Geometry, Gerber or Excellon Object to edit."
-msgstr "Select a Geometry, Gerber or Excellon Object to edit."
-
-#: FlatCAMApp.py:2146
-msgid ""
-"Simultaneous editing of tools geometry in a MultiGeo Geometry is not "
-"possible.\n"
-"Edit only one geometry at a time."
-msgstr ""
-"Simultaneous editing of tools geometry in a MultiGeo Geometry is not "
-"possible.\n"
-"Edit only one geometry at a time."
-
-#: FlatCAMApp.py:2204
-msgid "Editor is activated ..."
-msgstr "Editor is activated ..."
-
-#: FlatCAMApp.py:2225
-msgid "Do you want to save the edited object?"
-msgstr "Do you want to save the edited object?"
-
-#: FlatCAMApp.py:2226 flatcamGUI/FlatCAMGUI.py:2288
-msgid "Close Editor"
-msgstr "Close Editor"
-
-#: FlatCAMApp.py:2229 FlatCAMApp.py:3518 FlatCAMApp.py:6085 FlatCAMApp.py:7345
-#: FlatCAMTranslation.py:109 FlatCAMTranslation.py:207
-#: flatcamGUI/FlatCAMGUI.py:2519
-#: flatcamGUI/preferences/PreferencesUIManager.py:1122
-msgid "Yes"
-msgstr "Yes"
-
-#: FlatCAMApp.py:2230 FlatCAMApp.py:3519 FlatCAMApp.py:6086 FlatCAMApp.py:7346
-#: FlatCAMTranslation.py:110 FlatCAMTranslation.py:208
-#: flatcamGUI/FlatCAMGUI.py:2520
-#: flatcamGUI/preferences/PreferencesUIManager.py:1123
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:164
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:150
-#: flatcamTools/ToolNCC.py:182 flatcamTools/ToolPaint.py:166
-msgid "No"
-msgstr "No"
-
-#: FlatCAMApp.py:2231 FlatCAMApp.py:3520 FlatCAMApp.py:4478 FlatCAMApp.py:5103
-#: FlatCAMApp.py:7347 FlatCAMDB.py:128 FlatCAMDB.py:1689
-#: flatcamGUI/FlatCAMGUI.py:1347
+#: AppDatabase.py:128 AppDatabase.py:1689 AppGUI/MainGUI.py:1347
+#: AppGUI/preferences/PreferencesUIManager.py:942 App_Main.py:2203
+#: App_Main.py:3054 App_Main.py:3928 App_Main.py:4279 App_Main.py:6338
msgid "Cancel"
msgstr "Cancel"
-#: FlatCAMApp.py:2263
-msgid "Object empty after edit."
-msgstr "Object empty after edit."
+#: AppDatabase.py:158 AppDatabase.py:833 AppDatabase.py:1087
+msgid "Tool Name"
+msgstr "Tool Name"
-#: FlatCAMApp.py:2267 FlatCAMApp.py:2288 FlatCAMApp.py:2310
-msgid "Editor exited. Editor content saved."
-msgstr "Editor exited. Editor content saved."
+#: AppDatabase.py:159 AppDatabase.py:835 AppDatabase.py:1100
+#: AppEditors/FlatCAMExcEditor.py:1604 AppGUI/ObjectUI.py:1447
+#: AppGUI/ObjectUI.py:1685
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:132
+#: AppTools/ToolNCC.py:278 AppTools/ToolNCC.py:287 AppTools/ToolPaint.py:260
+msgid "Tool Dia"
+msgstr "Tool Dia"
-#: FlatCAMApp.py:2314 FlatCAMApp.py:2337 FlatCAMApp.py:2355
-msgid "Select a Gerber, Geometry or Excellon Object to update."
-msgstr "Select a Gerber, Geometry or Excellon Object to update."
+#: AppDatabase.py:160 AppDatabase.py:837 AppDatabase.py:1281
+#: AppGUI/ObjectUI.py:1660
+msgid "Tool Offset"
+msgstr "Tool Offset"
-#: FlatCAMApp.py:2317
-msgid "is updated, returning to App..."
-msgstr "is updated, returning to App..."
+#: AppDatabase.py:161 AppDatabase.py:839 AppDatabase.py:1298
+msgid "Custom Offset"
+msgstr "Custom Offset"
-#: FlatCAMApp.py:2324
-msgid "Editor exited. Editor content was not saved."
-msgstr "Editor exited. Editor content was not saved."
+#: AppDatabase.py:162 AppDatabase.py:841 AppDatabase.py:1265
+#: AppGUI/ObjectUI.py:309
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:67
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:53
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:62
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:72 AppTools/ToolNCC.py:213
+#: AppTools/ToolNCC.py:227 AppTools/ToolPaint.py:195
+msgid "Tool Type"
+msgstr "Tool Type"
-#: FlatCAMApp.py:2504 FlatCAMApp.py:2508
-msgid "Import FlatCAM Preferences"
-msgstr "Import FlatCAM Preferences"
+#: AppDatabase.py:163 AppDatabase.py:843 AppDatabase.py:1113
+msgid "Tool Shape"
+msgstr "Tool Shape"
-#: FlatCAMApp.py:2519
-msgid "Imported Defaults from"
-msgstr "Imported Defaults from"
+#: AppDatabase.py:164 AppDatabase.py:846 AppDatabase.py:1129
+#: AppGUI/ObjectUI.py:350 AppGUI/ObjectUI.py:900 AppGUI/ObjectUI.py:1805
+#: AppGUI/ObjectUI.py:2466
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:93
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:48
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:107
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:78
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:58
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:105
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:113
+#: AppTools/ToolCalculators.py:114 AppTools/ToolCutOut.py:138
+#: AppTools/ToolNCC.py:260 AppTools/ToolNCC.py:268 AppTools/ToolPaint.py:242
+msgid "Cut Z"
+msgstr "Cut Z"
-#: FlatCAMApp.py:2539 FlatCAMApp.py:2544
-msgid "Export FlatCAM Preferences"
-msgstr "Export FlatCAM Preferences"
+#: AppDatabase.py:165 AppDatabase.py:848 AppDatabase.py:1143
+msgid "MultiDepth"
+msgstr "MultiDepth"
-#: FlatCAMApp.py:2558 FlatCAMApp.py:2626
-#: flatcamGUI/preferences/PreferencesUIManager.py:1018
-msgid "Failed to write defaults to file."
-msgstr "Failed to write defaults to file."
+#: AppDatabase.py:166 AppDatabase.py:850 AppDatabase.py:1156
+msgid "DPP"
+msgstr "DPP"
-#: FlatCAMApp.py:2564
-msgid "Exported preferences to"
-msgstr "Exported preferences to"
+#: AppDatabase.py:167 AppDatabase.py:852 AppDatabase.py:1312
+msgid "V-Dia"
+msgstr "V-Dia"
-#: FlatCAMApp.py:2584 FlatCAMApp.py:2589
-msgid "Save to file"
-msgstr "Save to file"
+#: AppDatabase.py:168 AppDatabase.py:854 AppDatabase.py:1326
+msgid "V-Angle"
+msgstr "V-Angle"
-#: FlatCAMApp.py:2602 FlatCAMApp.py:8859 FlatCAMApp.py:8907 FlatCAMApp.py:9032
-#: FlatCAMApp.py:9168 FlatCAMBookmark.py:308 FlatCAMDB.py:671 FlatCAMDB.py:2133
-#: flatcamEditors/FlatCAMTextEditor.py:276 flatcamObjects/FlatCAMCNCJob.py:959
-#: flatcamTools/ToolFilm.py:1031 flatcamTools/ToolFilm.py:1212
-#: flatcamTools/ToolSolderPaste.py:1534
+#: AppDatabase.py:169 AppDatabase.py:856 AppDatabase.py:1170
+#: AppGUI/ObjectUI.py:946 AppGUI/ObjectUI.py:1852
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:134
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:101
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:61
+#: AppObjects/FlatCAMExcellon.py:1396 AppObjects/FlatCAMGeometry.py:1660
+#: AppTools/ToolCalibration.py:74
+msgid "Travel Z"
+msgstr "Travel Z"
+
+#: AppDatabase.py:170 AppDatabase.py:858
+msgid "FR"
+msgstr "FR"
+
+#: AppDatabase.py:171 AppDatabase.py:860
+msgid "FR Z"
+msgstr "FR Z"
+
+#: AppDatabase.py:172 AppDatabase.py:862 AppDatabase.py:1340
+msgid "FR Rapids"
+msgstr "FR Rapids"
+
+#: AppDatabase.py:173 AppDatabase.py:864 AppDatabase.py:1213
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:222
+msgid "Spindle Speed"
+msgstr "Spindle Speed"
+
+#: AppDatabase.py:174 AppDatabase.py:866 AppDatabase.py:1228
+#: AppGUI/ObjectUI.py:1064 AppGUI/ObjectUI.py:1959
+msgid "Dwell"
+msgstr "Dwell"
+
+#: AppDatabase.py:175 AppDatabase.py:868 AppDatabase.py:1241
+msgid "Dwelltime"
+msgstr "Dwelltime"
+
+#: AppDatabase.py:176 AppDatabase.py:870 AppGUI/ObjectUI.py:2116
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:257
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:254
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:237
+#: AppTools/ToolSolderPaste.py:335
+msgid "Preprocessor"
+msgstr "Preprocessor"
+
+#: AppDatabase.py:177 AppDatabase.py:872 AppDatabase.py:1356
+msgid "ExtraCut"
+msgstr "ExtraCut"
+
+#: AppDatabase.py:178 AppDatabase.py:874 AppDatabase.py:1371
+msgid "E-Cut Length"
+msgstr "E-Cut Length"
+
+#: AppDatabase.py:179 AppDatabase.py:876
+msgid "Toolchange"
+msgstr "Toolchange"
+
+#: AppDatabase.py:180 AppDatabase.py:878
+msgid "Toolchange XY"
+msgstr "Toolchange XY"
+
+#: AppDatabase.py:181 AppDatabase.py:880
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:160
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:131
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:98
+#: AppTools/ToolCalibration.py:111
+msgid "Toolchange Z"
+msgstr "Toolchange Z"
+
+#: AppDatabase.py:182 AppDatabase.py:882 AppGUI/ObjectUI.py:1193
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:69
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:54
+msgid "Start Z"
+msgstr "Start Z"
+
+#: AppDatabase.py:183 AppDatabase.py:885
+msgid "End Z"
+msgstr "End Z"
+
+#: AppDatabase.py:187
+msgid "Tool Index."
+msgstr "Tool Index."
+
+#: AppDatabase.py:189 AppDatabase.py:1089
+msgid ""
+"Tool name.\n"
+"This is not used in the app, it's function\n"
+"is to serve as a note for the user."
+msgstr ""
+"Tool name.\n"
+"This is not used in the app, it's function\n"
+"is to serve as a note for the user."
+
+#: AppDatabase.py:193 AppDatabase.py:1102
+msgid "Tool Diameter."
+msgstr "Tool Diameter."
+
+#: AppDatabase.py:195 AppDatabase.py:1283
+msgid ""
+"Tool Offset.\n"
+"Can be of a few types:\n"
+"Path = zero offset\n"
+"In = offset inside by half of tool diameter\n"
+"Out = offset outside by half of tool diameter\n"
+"Custom = custom offset using the Custom Offset value"
+msgstr ""
+"Tool Offset.\n"
+"Can be of a few types:\n"
+"Path = zero offset\n"
+"In = offset inside by half of tool diameter\n"
+"Out = offset outside by half of tool diameter\n"
+"Custom = custom offset using the Custom Offset value"
+
+#: AppDatabase.py:202 AppDatabase.py:1300
+msgid ""
+"Custom Offset.\n"
+"A value to be used as offset from the current path."
+msgstr ""
+"Custom Offset.\n"
+"A value to be used as offset from the current path."
+
+#: AppDatabase.py:205 AppDatabase.py:1267
+msgid ""
+"Tool Type.\n"
+"Can be:\n"
+"Iso = isolation cut\n"
+"Rough = rough cut, low feedrate, multiple passes\n"
+"Finish = finishing cut, high feedrate"
+msgstr ""
+"Tool Type.\n"
+"Can be:\n"
+"Iso = isolation cut\n"
+"Rough = rough cut, low feedrate, multiple passes\n"
+"Finish = finishing cut, high feedrate"
+
+#: AppDatabase.py:211 AppDatabase.py:1115
+msgid ""
+"Tool Shape. \n"
+"Can be:\n"
+"C1 ... C4 = circular tool with x flutes\n"
+"B = ball tip milling tool\n"
+"V = v-shape milling tool"
+msgstr ""
+"Tool Shape. \n"
+"Can be:\n"
+"C1 ... C4 = circular tool with x flutes\n"
+"B = ball tip milling tool\n"
+"V = v-shape milling tool"
+
+#: AppDatabase.py:217 AppDatabase.py:1131
+msgid ""
+"Cutting Depth.\n"
+"The depth at which to cut into material."
+msgstr ""
+"Cutting Depth.\n"
+"The depth at which to cut into material."
+
+#: AppDatabase.py:220 AppDatabase.py:1145
+msgid ""
+"Multi Depth.\n"
+"Selecting this will allow cutting in multiple passes,\n"
+"each pass adding a DPP parameter depth."
+msgstr ""
+"Multi Depth.\n"
+"Selecting this will allow cutting in multiple passes,\n"
+"each pass adding a DPP parameter depth."
+
+#: AppDatabase.py:224 AppDatabase.py:1158
+msgid ""
+"DPP. Depth per Pass.\n"
+"The value used to cut into material on each pass."
+msgstr ""
+"DPP. Depth per Pass.\n"
+"The value used to cut into material on each pass."
+
+#: AppDatabase.py:227 AppDatabase.py:1314
+msgid ""
+"V-Dia.\n"
+"Diameter of the tip for V-Shape Tools."
+msgstr ""
+"V-Dia.\n"
+"Diameter of the tip for V-Shape Tools."
+
+#: AppDatabase.py:230 AppDatabase.py:1328
+msgid ""
+"V-Agle.\n"
+"Angle at the tip for the V-Shape Tools."
+msgstr ""
+"V-Agle.\n"
+"Angle at the tip for the V-Shape Tools."
+
+#: AppDatabase.py:233 AppDatabase.py:1172
+msgid ""
+"Clearance Height.\n"
+"Height at which the milling bit will travel between cuts,\n"
+"above the surface of the material, avoiding all fixtures."
+msgstr ""
+"Clearance Height.\n"
+"Height at which the milling bit will travel between cuts,\n"
+"above the surface of the material, avoiding all fixtures."
+
+#: AppDatabase.py:237
+msgid ""
+"FR. Feedrate\n"
+"The speed on XY plane used while cutting into material."
+msgstr ""
+"FR. Feedrate\n"
+"The speed on XY plane used while cutting into material."
+
+#: AppDatabase.py:240
+msgid ""
+"FR Z. Feedrate Z\n"
+"The speed on Z plane."
+msgstr ""
+"FR Z. Feedrate Z\n"
+"The speed on Z plane."
+
+#: AppDatabase.py:243 AppDatabase.py:1342
+msgid ""
+"FR Rapids. Feedrate Rapids\n"
+"Speed used while moving as fast as possible.\n"
+"This is used only by some devices that can't use\n"
+"the G0 g-code command. Mostly 3D printers."
+msgstr ""
+"FR Rapids. Feedrate Rapids\n"
+"Speed used while moving as fast as possible.\n"
+"This is used only by some devices that can't use\n"
+"the G0 g-code command. Mostly 3D printers."
+
+#: AppDatabase.py:248 AppDatabase.py:1215
+msgid ""
+"Spindle Speed.\n"
+"If it's left empty it will not be used.\n"
+"The speed of the spindle in RPM."
+msgstr ""
+"Spindle Speed.\n"
+"If it's left empty it will not be used.\n"
+"The speed of the spindle in RPM."
+
+#: AppDatabase.py:252 AppDatabase.py:1230
+msgid ""
+"Dwell.\n"
+"Check this if a delay is needed to allow\n"
+"the spindle motor to reach it's set speed."
+msgstr ""
+"Dwell.\n"
+"Check this if a delay is needed to allow\n"
+"the spindle motor to reach it's set speed."
+
+#: AppDatabase.py:256 AppDatabase.py:1243
+msgid ""
+"Dwell Time.\n"
+"A delay used to allow the motor spindle reach it's set speed."
+msgstr ""
+"Dwell Time.\n"
+"A delay used to allow the motor spindle reach it's set speed."
+
+#: AppDatabase.py:259
+msgid ""
+"Preprocessor.\n"
+"A selection of files that will alter the generated G-code\n"
+"to fit for a number of use cases."
+msgstr ""
+"Preprocessor.\n"
+"A selection of files that will alter the generated G-code\n"
+"to fit for a number of use cases."
+
+#: AppDatabase.py:263 AppDatabase.py:1358
+msgid ""
+"Extra Cut.\n"
+"If checked, after a isolation is finished an extra cut\n"
+"will be added where the start and end of isolation meet\n"
+"such as that this point is covered by this extra cut to\n"
+"ensure a complete isolation."
+msgstr ""
+"Extra Cut.\n"
+"If checked, after a isolation is finished an extra cut\n"
+"will be added where the start and end of isolation meet\n"
+"such as that this point is covered by this extra cut to\n"
+"ensure a complete isolation."
+
+#: AppDatabase.py:269 AppDatabase.py:1373
+msgid ""
+"Extra Cut length.\n"
+"If checked, after a isolation is finished an extra cut\n"
+"will be added where the start and end of isolation meet\n"
+"such as that this point is covered by this extra cut to\n"
+"ensure a complete isolation. This is the length of\n"
+"the extra cut."
+msgstr ""
+"Extra Cut length.\n"
+"If checked, after a isolation is finished an extra cut\n"
+"will be added where the start and end of isolation meet\n"
+"such as that this point is covered by this extra cut to\n"
+"ensure a complete isolation. This is the length of\n"
+"the extra cut."
+
+#: AppDatabase.py:276
+msgid ""
+"Toolchange.\n"
+"It will create a toolchange event.\n"
+"The kind of toolchange is determined by\n"
+"the preprocessor file."
+msgstr ""
+"Toolchange.\n"
+"It will create a toolchange event.\n"
+"The kind of toolchange is determined by\n"
+"the preprocessor file."
+
+#: AppDatabase.py:281
+msgid ""
+"Toolchange XY.\n"
+"A set of coordinates in the format (x, y).\n"
+"Will determine the cartesian position of the point\n"
+"where the tool change event take place."
+msgstr ""
+"Toolchange XY.\n"
+"A set of coordinates in the format (x, y).\n"
+"Will determine the cartesian position of the point\n"
+"where the tool change event take place."
+
+#: AppDatabase.py:286
+msgid ""
+"Toolchange Z.\n"
+"The position on Z plane where the tool change event take place."
+msgstr ""
+"Toolchange Z.\n"
+"The position on Z plane where the tool change event take place."
+
+#: AppDatabase.py:289
+msgid ""
+"Start Z.\n"
+"If it's left empty it will not be used.\n"
+"A position on Z plane to move immediately after job start."
+msgstr ""
+"Start Z.\n"
+"If it's left empty it will not be used.\n"
+"A position on Z plane to move immediately after job start."
+
+#: AppDatabase.py:293
+msgid ""
+"End Z.\n"
+"A position on Z plane to move immediately after job stop."
+msgstr ""
+"End Z.\n"
+"A position on Z plane to move immediately after job stop."
+
+#: AppDatabase.py:305 AppDatabase.py:682 AppDatabase.py:716 AppDatabase.py:1898
+#: AppDatabase.py:2144 AppDatabase.py:2178
+msgid "Could not load Tools DB file."
+msgstr "Could not load Tools DB file."
+
+#: AppDatabase.py:313 AppDatabase.py:724 AppDatabase.py:1906
+#: AppDatabase.py:2186
+msgid "Failed to parse Tools DB file."
+msgstr "Failed to parse Tools DB file."
+
+#: AppDatabase.py:316 AppDatabase.py:727 AppDatabase.py:1909
+#: AppDatabase.py:2189
+msgid "Loaded FlatCAM Tools DB from"
+msgstr "Loaded FlatCAM Tools DB from"
+
+#: AppDatabase.py:322 AppDatabase.py:1823
+msgid "Add to DB"
+msgstr "Add to DB"
+
+#: AppDatabase.py:324 AppDatabase.py:1826
+msgid "Copy from DB"
+msgstr "Copy from DB"
+
+#: AppDatabase.py:326 AppDatabase.py:1829
+msgid "Delete from DB"
+msgstr "Delete from DB"
+
+#: AppDatabase.py:603 AppDatabase.py:2044
+msgid "Tool added to DB."
+msgstr "Tool added to DB."
+
+#: AppDatabase.py:624 AppDatabase.py:2077
+msgid "Tool copied from Tools DB."
+msgstr "Tool copied from Tools DB."
+
+#: AppDatabase.py:642 AppDatabase.py:2104
+msgid "Tool removed from Tools DB."
+msgstr "Tool removed from Tools DB."
+
+#: AppDatabase.py:653 AppDatabase.py:2115
+msgid "Export Tools Database"
+msgstr "Export Tools Database"
+
+#: AppDatabase.py:656 AppDatabase.py:2118
+msgid "Tools_Database"
+msgstr "Tools_Database"
+
+#: AppDatabase.py:663 AppDatabase.py:709 AppDatabase.py:2125
+#: AppDatabase.py:2171 AppEditors/FlatCAMExcEditor.py:1023
+#: AppEditors/FlatCAMExcEditor.py:1091 AppEditors/FlatCAMTextEditor.py:223
+#: AppGUI/MainGUI.py:2690 AppGUI/MainGUI.py:2906 AppGUI/MainGUI.py:3121
+#: AppObjects/ObjectCollection.py:126 AppTools/ToolFilm.py:739
+#: AppTools/ToolFilm.py:885 AppTools/ToolImage.py:247 AppTools/ToolMove.py:269
+#: AppTools/ToolPcbWizard.py:301 AppTools/ToolPcbWizard.py:324
+#: AppTools/ToolQRCode.py:791 AppTools/ToolQRCode.py:838 App_Main.py:1694
+#: App_Main.py:2430 App_Main.py:2465 App_Main.py:2512 App_Main.py:3991
+#: App_Main.py:6529 App_Main.py:6566 App_Main.py:6608 App_Main.py:6637
+#: App_Main.py:6678 App_Main.py:6703 App_Main.py:6755 App_Main.py:6790
+#: App_Main.py:6835 App_Main.py:6876 App_Main.py:6917 App_Main.py:6958
+#: App_Main.py:6999 App_Main.py:7043 App_Main.py:7099 App_Main.py:7131
+#: App_Main.py:7163 App_Main.py:7394 App_Main.py:7432 App_Main.py:7475
+#: App_Main.py:7552 App_Main.py:7607 Bookmark.py:300 Bookmark.py:342
+msgid "Cancelled."
+msgstr "Cancelled."
+
+#: AppDatabase.py:671 AppDatabase.py:2133 AppEditors/FlatCAMTextEditor.py:276
+#: AppObjects/FlatCAMCNCJob.py:959 AppTools/ToolFilm.py:1016
+#: AppTools/ToolFilm.py:1197 AppTools/ToolSolderPaste.py:1534 App_Main.py:2520
+#: App_Main.py:7851 App_Main.py:7899 App_Main.py:8024 App_Main.py:8160
+#: Bookmark.py:308
msgid ""
"Permission denied, saving not possible.\n"
"Most likely another app is holding the file open and not accessible."
@@ -205,31 +570,11201 @@ msgstr ""
"Permission denied, saving not possible.\n"
"Most likely another app is holding the file open and not accessible."
-#: FlatCAMApp.py:2613
-msgid "Could not load the file."
-msgstr "Could not load the file."
+#: AppDatabase.py:693 AppDatabase.py:696 AppDatabase.py:748 AppDatabase.py:2155
+#: AppDatabase.py:2158 AppDatabase.py:2211
+msgid "Failed to write Tools DB to file."
+msgstr "Failed to write Tools DB to file."
-#: FlatCAMApp.py:2629
-msgid "Exported file to"
-msgstr "Exported file to"
+#: AppDatabase.py:699 AppDatabase.py:2161
+msgid "Exported Tools DB to"
+msgstr "Exported Tools DB to"
-#: FlatCAMApp.py:2712
-msgid "Failed to open recent files file for writing."
-msgstr "Failed to open recent files file for writing."
+#: AppDatabase.py:706 AppDatabase.py:2168
+msgid "Import FlatCAM Tools DB"
+msgstr "Import FlatCAM Tools DB"
-#: FlatCAMApp.py:2723
-msgid "Failed to open recent projects file for writing."
-msgstr "Failed to open recent projects file for writing."
+#: AppDatabase.py:738 AppDatabase.py:913 AppDatabase.py:2200
+#: AppDatabase.py:2418 AppObjects/FlatCAMGeometry.py:947
+#: AppTools/ToolNCC.py:4015 AppTools/ToolNCC.py:4099 AppTools/ToolPaint.py:3558
+#: AppTools/ToolPaint.py:3643 App_Main.py:5172 App_Main.py:5200
+#: App_Main.py:5227 App_Main.py:5247
+msgid "Tools Database"
+msgstr "Tools Database"
-#: FlatCAMApp.py:2806 FlatCAMApp.py:9377 FlatCAMApp.py:9441 FlatCAMApp.py:9572
-#: FlatCAMApp.py:9637 FlatCAMApp.py:10287
-#: flatcamEditors/FlatCAMGrbEditor.py:4364
-#: flatcamObjects/FlatCAMGeometry.py:1725 flatcamParsers/ParseExcellon.py:897
-#: flatcamTools/ToolPcbWizard.py:432
+#: AppDatabase.py:752 AppDatabase.py:2215
+msgid "Saved Tools DB."
+msgstr "Saved Tools DB."
+
+#: AppDatabase.py:899 AppDatabase.py:2405
+msgid "No Tool/row selected in the Tools Database table"
+msgstr "No Tool/row selected in the Tools Database table"
+
+#: AppDatabase.py:917 AppDatabase.py:2422
+msgid "Cancelled adding tool from DB."
+msgstr "Cancelled adding tool from DB."
+
+#: AppDatabase.py:1018
+msgid "Basic Geo Parameters"
+msgstr "Basic Geo Parameters"
+
+#: AppDatabase.py:1030
+msgid "Advanced Geo Parameters"
+msgstr "Advanced Geo Parameters"
+
+#: AppDatabase.py:1042
+msgid "NCC Parameters"
+msgstr "NCC Parameters"
+
+#: AppDatabase.py:1054
+msgid "Paint Parameters"
+msgstr "Paint Parameters"
+
+#: AppDatabase.py:1185 AppGUI/ObjectUI.py:967 AppGUI/ObjectUI.py:1871
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:185
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:148
+#: AppTools/ToolSolderPaste.py:253
+msgid "Feedrate X-Y"
+msgstr "Feedrate X-Y"
+
+#: AppDatabase.py:1187
+msgid ""
+"Feedrate X-Y. Feedrate\n"
+"The speed on XY plane used while cutting into material."
+msgstr ""
+"Feedrate X-Y. Feedrate\n"
+"The speed on XY plane used while cutting into material."
+
+#: AppDatabase.py:1199 AppGUI/ObjectUI.py:982 AppGUI/ObjectUI.py:1885
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:207
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:200
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:161
+#: AppTools/ToolSolderPaste.py:265
+msgid "Feedrate Z"
+msgstr "Feedrate Z"
+
+#: AppDatabase.py:1201
+msgid ""
+"Feedrate Z\n"
+"The speed on Z plane."
+msgstr ""
+"Feedrate Z\n"
+"The speed on Z plane."
+
+#: AppDatabase.py:1399 AppGUI/ObjectUI.py:845
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:46
+#: AppTools/ToolNCC.py:341
+msgid "Operation"
+msgstr "Operation"
+
+#: AppDatabase.py:1401 AppTools/ToolNCC.py:343
+msgid ""
+"The 'Operation' can be:\n"
+"- Isolation -> will ensure that the non-copper clearing is always complete.\n"
+"If it's not successful then the non-copper clearing will fail, too.\n"
+"- Clear -> the regular non-copper clearing."
+msgstr ""
+"The 'Operation' can be:\n"
+"- Isolation -> will ensure that the non-copper clearing is always complete.\n"
+"If it's not successful then the non-copper clearing will fail, too.\n"
+"- Clear -> the regular non-copper clearing."
+
+#: AppDatabase.py:1408 AppEditors/FlatCAMGrbEditor.py:2740
+#: AppGUI/GUIElements.py:2604 AppTools/ToolNCC.py:350
+msgid "Clear"
+msgstr "Clear"
+
+#: AppDatabase.py:1409 AppTools/ToolNCC.py:351 AppTools/ToolNCC.py:1624
+msgid "Isolation"
+msgstr "Isolation"
+
+#: AppDatabase.py:1417 AppGUI/ObjectUI.py:409 AppGUI/ObjectUI.py:867
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:62
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:56
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:95
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:137 AppTools/ToolNCC.py:359
+msgid "Milling Type"
+msgstr "Milling Type"
+
+#: AppDatabase.py:1419 AppDatabase.py:1427
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:139
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:147 AppTools/ToolNCC.py:361
+#: AppTools/ToolNCC.py:369
+msgid ""
+"Milling type when the selected tool is of type: 'iso_op':\n"
+"- climb / best for precision milling and to reduce tool usage\n"
+"- conventional / useful when there is no backlash compensation"
+msgstr ""
+"Milling type when the selected tool is of type: 'iso_op':\n"
+"- climb / best for precision milling and to reduce tool usage\n"
+"- conventional / useful when there is no backlash compensation"
+
+#: AppDatabase.py:1424 AppGUI/ObjectUI.py:415
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:62
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:102
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:144 AppTools/ToolNCC.py:366
+msgid "Climb"
+msgstr "Climb"
+
+#: AppDatabase.py:1425 AppGUI/ObjectUI.py:416
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:63
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:103
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:145 AppTools/ToolNCC.py:367
+msgid "Conventional"
+msgstr "Conventional"
+
+#: AppDatabase.py:1437 AppDatabase.py:1546 AppEditors/FlatCAMGeoEditor.py:450
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:182
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:163
+#: AppTools/ToolNCC.py:382 AppTools/ToolPaint.py:328
+msgid "Overlap"
+msgstr "Overlap"
+
+#: AppDatabase.py:1439 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:184
+#: AppTools/ToolNCC.py:384
+msgid ""
+"How much (percentage) of the tool width to overlap each tool pass.\n"
+"Adjust the value starting with lower values\n"
+"and increasing it if areas that should be cleared are still \n"
+"not cleared.\n"
+"Lower values = faster processing, faster execution on CNC.\n"
+"Higher values = slow processing and slow execution on CNC\n"
+"due of too many paths."
+msgstr ""
+"How much (percentage) of the tool width to overlap each tool pass.\n"
+"Adjust the value starting with lower values\n"
+"and increasing it if areas that should be cleared are still \n"
+"not cleared.\n"
+"Lower values = faster processing, faster execution on CNC.\n"
+"Higher values = slow processing and slow execution on CNC\n"
+"due of too many paths."
+
+#: AppDatabase.py:1458 AppDatabase.py:1567 AppEditors/FlatCAMGeoEditor.py:470
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:72
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:229
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:59
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:45
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:53
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:66
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:183
+#: AppTools/ToolCopperThieving.py:111 AppTools/ToolCopperThieving.py:362
+#: AppTools/ToolCorners.py:140 AppTools/ToolCutOut.py:190
+#: AppTools/ToolFiducials.py:172 AppTools/ToolInvertGerber.py:88
+#: AppTools/ToolInvertGerber.py:96 AppTools/ToolNCC.py:403
+#: AppTools/ToolPaint.py:349
+msgid "Margin"
+msgstr "Margin"
+
+#: AppDatabase.py:1460
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:74
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:61
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:68
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204
+#: AppTools/ToolCopperThieving.py:113 AppTools/ToolCorners.py:142
+#: AppTools/ToolFiducials.py:174 AppTools/ToolNCC.py:405
+msgid "Bounding box margin."
+msgstr "Bounding box margin."
+
+#: AppDatabase.py:1471 AppDatabase.py:1582 AppEditors/FlatCAMGeoEditor.py:484
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:105
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:198
+#: AppTools/ToolExtractDrills.py:128 AppTools/ToolNCC.py:416
+#: AppTools/ToolPaint.py:364 AppTools/ToolPunchGerber.py:139
+msgid "Method"
+msgstr "Method"
+
+#: AppDatabase.py:1473 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:217
+#: AppTools/ToolNCC.py:418
+msgid ""
+"Algorithm for copper clearing:\n"
+"- Standard: Fixed step inwards.\n"
+"- Seed-based: Outwards from seed.\n"
+"- Line-based: Parallel lines."
+msgstr ""
+"Algorithm for copper clearing:\n"
+"- Standard: Fixed step inwards.\n"
+"- Seed-based: Outwards from seed.\n"
+"- Line-based: Parallel lines."
+
+#: AppDatabase.py:1481 AppDatabase.py:1596 AppEditors/FlatCAMGeoEditor.py:498
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
+#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2212 AppTools/ToolNCC.py:2739
+#: AppTools/ToolNCC.py:2771 AppTools/ToolPaint.py:389
+#: AppTools/ToolPaint.py:1839 tclCommands/TclCommandCopperClear.py:126
+#: tclCommands/TclCommandCopperClear.py:134 tclCommands/TclCommandPaint.py:125
+msgid "Standard"
+msgstr "Standard"
+
+#: AppDatabase.py:1481 AppDatabase.py:1596 AppEditors/FlatCAMGeoEditor.py:498
+#: AppEditors/FlatCAMGeoEditor.py:568 AppEditors/FlatCAMGeoEditor.py:5146
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
+#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2223 AppTools/ToolNCC.py:2745
+#: AppTools/ToolNCC.py:2777 AppTools/ToolPaint.py:389
+#: AppTools/ToolPaint.py:1853 defaults.py:400 defaults.py:432
+#: tclCommands/TclCommandCopperClear.py:128
+#: tclCommands/TclCommandCopperClear.py:136 tclCommands/TclCommandPaint.py:127
+msgid "Seed"
+msgstr "Seed"
+
+#: AppDatabase.py:1481 AppDatabase.py:1596 AppEditors/FlatCAMGeoEditor.py:498
+#: AppEditors/FlatCAMGeoEditor.py:5150
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
+#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2234 AppTools/ToolPaint.py:389
+#: AppTools/ToolPaint.py:698 AppTools/ToolPaint.py:1867
+#: tclCommands/TclCommandCopperClear.py:130 tclCommands/TclCommandPaint.py:129
+msgid "Lines"
+msgstr "Lines"
+
+#: AppDatabase.py:1481 AppDatabase.py:1596
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
+#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2245 AppTools/ToolPaint.py:389
+#: AppTools/ToolPaint.py:2032 tclCommands/TclCommandPaint.py:133
+msgid "Combo"
+msgstr "Combo"
+
+#: AppDatabase.py:1489 AppDatabase.py:1607
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:237
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:224
+#: AppTools/ToolNCC.py:439 AppTools/ToolPaint.py:400
+msgid "Connect"
+msgstr "Connect"
+
+#: AppDatabase.py:1493 AppDatabase.py:1610 AppEditors/FlatCAMGeoEditor.py:507
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:239
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:226
+#: AppTools/ToolNCC.py:443 AppTools/ToolPaint.py:403
+msgid ""
+"Draw lines between resulting\n"
+"segments to minimize tool lifts."
+msgstr ""
+"Draw lines between resulting\n"
+"segments to minimize tool lifts."
+
+#: AppDatabase.py:1499 AppDatabase.py:1614
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:246
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:232
+#: AppTools/ToolNCC.py:449 AppTools/ToolPaint.py:407
+msgid "Contour"
+msgstr "Contour"
+
+#: AppDatabase.py:1503 AppDatabase.py:1617 AppEditors/FlatCAMGeoEditor.py:517
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:248
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:234
+#: AppTools/ToolNCC.py:453 AppTools/ToolPaint.py:410
+msgid ""
+"Cut around the perimeter of the polygon\n"
+"to trim rough edges."
+msgstr ""
+"Cut around the perimeter of the polygon\n"
+"to trim rough edges."
+
+#: AppDatabase.py:1509 AppEditors/FlatCAMGeoEditor.py:611
+#: AppEditors/FlatCAMGrbEditor.py:5289 AppGUI/ObjectUI.py:143
+#: AppGUI/ObjectUI.py:1599 AppGUI/ObjectUI.py:2456
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:255
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:142
+#: AppTools/ToolNCC.py:459 AppTools/ToolTransform.py:28
+msgid "Offset"
+msgstr "Offset"
+
+#: AppDatabase.py:1513 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:257
+#: AppTools/ToolNCC.py:463
+msgid ""
+"If used, it will add an offset to the copper features.\n"
+"The copper clearing will finish to a distance\n"
+"from the copper features.\n"
+"The value can be between 0 and 10 FlatCAM units."
+msgstr ""
+"If used, it will add an offset to the copper features.\n"
+"The copper clearing will finish to a distance\n"
+"from the copper features.\n"
+"The value can be between 0 and 10 FlatCAM units."
+
+#: AppDatabase.py:1548 AppEditors/FlatCAMGeoEditor.py:452
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:165
+#: AppTools/ToolPaint.py:330
+msgid ""
+"How much (percentage) of the tool width to overlap each tool pass.\n"
+"Adjust the value starting with lower values\n"
+"and increasing it if areas that should be painted are still \n"
+"not painted.\n"
+"Lower values = faster processing, faster execution on CNC.\n"
+"Higher values = slow processing and slow execution on CNC\n"
+"due of too many paths."
+msgstr ""
+"How much (percentage) of the tool width to overlap each tool pass.\n"
+"Adjust the value starting with lower values\n"
+"and increasing it if areas that should be painted are still \n"
+"not painted.\n"
+"Lower values = faster processing, faster execution on CNC.\n"
+"Higher values = slow processing and slow execution on CNC\n"
+"due of too many paths."
+
+#: AppDatabase.py:1569 AppEditors/FlatCAMGeoEditor.py:472
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:185
+#: AppTools/ToolPaint.py:351
+msgid ""
+"Distance by which to avoid\n"
+"the edges of the polygon to\n"
+"be painted."
+msgstr ""
+"Distance by which to avoid\n"
+"the edges of the polygon to\n"
+"be painted."
+
+#: AppDatabase.py:1584 AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:200
+#: AppTools/ToolPaint.py:366
+msgid ""
+"Algorithm for painting:\n"
+"- Standard: Fixed step inwards.\n"
+"- Seed-based: Outwards from seed.\n"
+"- Line-based: Parallel lines.\n"
+"- Laser-lines: Active only for Gerber objects.\n"
+"Will create lines that follow the traces.\n"
+"- Combo: In case of failure a new method will be picked from the above\n"
+"in the order specified."
+msgstr ""
+"Algorithm for painting:\n"
+"- Standard: Fixed step inwards.\n"
+"- Seed-based: Outwards from seed.\n"
+"- Line-based: Parallel lines.\n"
+"- Laser-lines: Active only for Gerber objects.\n"
+"Will create lines that follow the traces.\n"
+"- Combo: In case of failure a new method will be picked from the above\n"
+"in the order specified."
+
+#: AppDatabase.py:1596 AppDatabase.py:1598
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
+#: AppTools/ToolPaint.py:389 AppTools/ToolPaint.py:391
+#: AppTools/ToolPaint.py:692 AppTools/ToolPaint.py:697
+#: AppTools/ToolPaint.py:1881 tclCommands/TclCommandPaint.py:131
+msgid "Laser_lines"
+msgstr "Laser_lines"
+
+#: AppDatabase.py:1641
+msgid "Add Tool in DB"
+msgstr "Add Tool in DB"
+
+#: AppDatabase.py:1675
+msgid "Save DB"
+msgstr "Save DB"
+
+#: AppDatabase.py:1677
+msgid "Save the Tools Database information's."
+msgstr "Save the Tools Database information's."
+
+#: AppEditors/FlatCAMExcEditor.py:50 AppEditors/FlatCAMExcEditor.py:74
+#: AppEditors/FlatCAMExcEditor.py:168 AppEditors/FlatCAMExcEditor.py:385
+#: AppEditors/FlatCAMExcEditor.py:589 AppEditors/FlatCAMGrbEditor.py:241
+#: AppEditors/FlatCAMGrbEditor.py:248
+msgid "Click to place ..."
+msgstr "Click to place ..."
+
+#: AppEditors/FlatCAMExcEditor.py:58
+msgid "To add a drill first select a tool"
+msgstr "To add a drill first select a tool"
+
+#: AppEditors/FlatCAMExcEditor.py:122
+msgid "Done. Drill added."
+msgstr "Done. Drill added."
+
+#: AppEditors/FlatCAMExcEditor.py:176
+msgid "To add an Drill Array first select a tool in Tool Table"
+msgstr "To add an Drill Array first select a tool in Tool Table"
+
+#: AppEditors/FlatCAMExcEditor.py:192 AppEditors/FlatCAMExcEditor.py:415
+#: AppEditors/FlatCAMExcEditor.py:636 AppEditors/FlatCAMExcEditor.py:1151
+#: AppEditors/FlatCAMExcEditor.py:1178 AppEditors/FlatCAMGrbEditor.py:471
+#: AppEditors/FlatCAMGrbEditor.py:1935 AppEditors/FlatCAMGrbEditor.py:1965
+msgid "Click on target location ..."
+msgstr "Click on target location ..."
+
+#: AppEditors/FlatCAMExcEditor.py:211
+msgid "Click on the Drill Circular Array Start position"
+msgstr "Click on the Drill Circular Array Start position"
+
+#: AppEditors/FlatCAMExcEditor.py:233 AppEditors/FlatCAMExcEditor.py:677
+#: AppEditors/FlatCAMGrbEditor.py:516
+msgid "The value is not Float. Check for comma instead of dot separator."
+msgstr "The value is not Float. Check for comma instead of dot separator."
+
+#: AppEditors/FlatCAMExcEditor.py:237
+msgid "The value is mistyped. Check the value"
+msgstr "The value is mistyped. Check the value"
+
+#: AppEditors/FlatCAMExcEditor.py:336
+msgid "Too many drills for the selected spacing angle."
+msgstr "Too many drills for the selected spacing angle."
+
+#: AppEditors/FlatCAMExcEditor.py:354
+msgid "Done. Drill Array added."
+msgstr "Done. Drill Array added."
+
+#: AppEditors/FlatCAMExcEditor.py:394
+msgid "To add a slot first select a tool"
+msgstr "To add a slot first select a tool"
+
+#: AppEditors/FlatCAMExcEditor.py:454 AppEditors/FlatCAMExcEditor.py:461
+#: AppEditors/FlatCAMExcEditor.py:742 AppEditors/FlatCAMExcEditor.py:749
+msgid "Value is missing or wrong format. Add it and retry."
+msgstr "Value is missing or wrong format. Add it and retry."
+
+#: AppEditors/FlatCAMExcEditor.py:559
+msgid "Done. Adding Slot completed."
+msgstr "Done. Adding Slot completed."
+
+#: AppEditors/FlatCAMExcEditor.py:597
+msgid "To add an Slot Array first select a tool in Tool Table"
+msgstr "To add an Slot Array first select a tool in Tool Table"
+
+#: AppEditors/FlatCAMExcEditor.py:655
+msgid "Click on the Slot Circular Array Start position"
+msgstr "Click on the Slot Circular Array Start position"
+
+#: AppEditors/FlatCAMExcEditor.py:680 AppEditors/FlatCAMGrbEditor.py:519
+msgid "The value is mistyped. Check the value."
+msgstr "The value is mistyped. Check the value."
+
+#: AppEditors/FlatCAMExcEditor.py:859
+msgid "Too many Slots for the selected spacing angle."
+msgstr "Too many Slots for the selected spacing angle."
+
+#: AppEditors/FlatCAMExcEditor.py:882
+msgid "Done. Slot Array added."
+msgstr "Done. Slot Array added."
+
+#: AppEditors/FlatCAMExcEditor.py:904
+msgid "Click on the Drill(s) to resize ..."
+msgstr "Click on the Drill(s) to resize ..."
+
+#: AppEditors/FlatCAMExcEditor.py:934
+msgid "Resize drill(s) failed. Please enter a diameter for resize."
+msgstr "Resize drill(s) failed. Please enter a diameter for resize."
+
+#: AppEditors/FlatCAMExcEditor.py:1112
+msgid "Done. Drill/Slot Resize completed."
+msgstr "Done. Drill/Slot Resize completed."
+
+#: AppEditors/FlatCAMExcEditor.py:1115
+msgid "Cancelled. No drills/slots selected for resize ..."
+msgstr "Cancelled. No drills/slots selected for resize ..."
+
+#: AppEditors/FlatCAMExcEditor.py:1153 AppEditors/FlatCAMGrbEditor.py:1937
+msgid "Click on reference location ..."
+msgstr "Click on reference location ..."
+
+#: AppEditors/FlatCAMExcEditor.py:1210
+msgid "Done. Drill(s) Move completed."
+msgstr "Done. Drill(s) Move completed."
+
+#: AppEditors/FlatCAMExcEditor.py:1318
+msgid "Done. Drill(s) copied."
+msgstr "Done. Drill(s) copied."
+
+#: AppEditors/FlatCAMExcEditor.py:1557
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:26
+msgid "Excellon Editor"
+msgstr "Excellon Editor"
+
+#: AppEditors/FlatCAMExcEditor.py:1564 AppEditors/FlatCAMGrbEditor.py:2460
+msgid "Name:"
+msgstr "Name:"
+
+#: AppEditors/FlatCAMExcEditor.py:1570 AppGUI/ObjectUI.py:761
+#: AppGUI/ObjectUI.py:1567 AppTools/ToolNCC.py:120 AppTools/ToolPaint.py:114
+#: AppTools/ToolSolderPaste.py:74
+msgid "Tools Table"
+msgstr "Tools Table"
+
+#: AppEditors/FlatCAMExcEditor.py:1572 AppGUI/ObjectUI.py:763
+msgid ""
+"Tools in this Excellon object\n"
+"when are used for drilling."
+msgstr ""
+"Tools in this Excellon object\n"
+"when are used for drilling."
+
+#: AppEditors/FlatCAMExcEditor.py:1584 AppEditors/FlatCAMExcEditor.py:3041
+#: AppGUI/ObjectUI.py:781 AppObjects/FlatCAMExcellon.py:1177
+#: AppObjects/FlatCAMExcellon.py:1268 AppObjects/FlatCAMExcellon.py:1453
+#: AppTools/ToolNCC.py:132 AppTools/ToolPaint.py:127
+#: AppTools/ToolPcbWizard.py:76 AppTools/ToolProperties.py:416
+#: AppTools/ToolProperties.py:476 AppTools/ToolSolderPaste.py:85
+#: tclCommands/TclCommandDrillcncjob.py:195
+msgid "Diameter"
+msgstr "Diameter"
+
+#: AppEditors/FlatCAMExcEditor.py:1592
+msgid "Add/Delete Tool"
+msgstr "Add/Delete Tool"
+
+#: AppEditors/FlatCAMExcEditor.py:1594
+msgid ""
+"Add/Delete a tool to the tool list\n"
+"for this Excellon object."
+msgstr ""
+"Add/Delete a tool to the tool list\n"
+"for this Excellon object."
+
+#: AppEditors/FlatCAMExcEditor.py:1606 AppGUI/ObjectUI.py:1687
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:57
+msgid "Diameter for the new tool"
+msgstr "Diameter for the new tool"
+
+#: AppEditors/FlatCAMExcEditor.py:1616
+msgid "Add Tool"
+msgstr "Add Tool"
+
+#: AppEditors/FlatCAMExcEditor.py:1618
+msgid ""
+"Add a new tool to the tool list\n"
+"with the diameter specified above."
+msgstr ""
+"Add a new tool to the tool list\n"
+"with the diameter specified above."
+
+#: AppEditors/FlatCAMExcEditor.py:1630
+msgid "Delete Tool"
+msgstr "Delete Tool"
+
+#: AppEditors/FlatCAMExcEditor.py:1632
+msgid ""
+"Delete a tool in the tool list\n"
+"by selecting a row in the tool table."
+msgstr ""
+"Delete a tool in the tool list\n"
+"by selecting a row in the tool table."
+
+#: AppEditors/FlatCAMExcEditor.py:1650 AppGUI/MainGUI.py:4311
+msgid "Resize Drill(s)"
+msgstr "Resize Drill(s)"
+
+#: AppEditors/FlatCAMExcEditor.py:1652
+msgid "Resize a drill or a selection of drills."
+msgstr "Resize a drill or a selection of drills."
+
+#: AppEditors/FlatCAMExcEditor.py:1659
+msgid "Resize Dia"
+msgstr "Resize Dia"
+
+#: AppEditors/FlatCAMExcEditor.py:1661
+msgid "Diameter to resize to."
+msgstr "Diameter to resize to."
+
+#: AppEditors/FlatCAMExcEditor.py:1672
+msgid "Resize"
+msgstr "Resize"
+
+#: AppEditors/FlatCAMExcEditor.py:1674
+msgid "Resize drill(s)"
+msgstr "Resize drill(s)"
+
+#: AppEditors/FlatCAMExcEditor.py:1699 AppGUI/MainGUI.py:1473
+#: AppGUI/MainGUI.py:4310
+msgid "Add Drill Array"
+msgstr "Add Drill Array"
+
+#: AppEditors/FlatCAMExcEditor.py:1701
+msgid "Add an array of drills (linear or circular array)"
+msgstr "Add an array of drills (linear or circular array)"
+
+#: AppEditors/FlatCAMExcEditor.py:1707
+msgid ""
+"Select the type of drills array to create.\n"
+"It can be Linear X(Y) or Circular"
+msgstr ""
+"Select the type of drills array to create.\n"
+"It can be Linear X(Y) or Circular"
+
+#: AppEditors/FlatCAMExcEditor.py:1710 AppEditors/FlatCAMExcEditor.py:1924
+#: AppEditors/FlatCAMGrbEditor.py:2773
+msgid "Linear"
+msgstr "Linear"
+
+#: AppEditors/FlatCAMExcEditor.py:1711 AppEditors/FlatCAMExcEditor.py:1925
+#: AppEditors/FlatCAMGrbEditor.py:2774 AppGUI/ObjectUI.py:316
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:52
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:149
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:107
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:52
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:151
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:70
+#: AppTools/ToolExtractDrills.py:78 AppTools/ToolExtractDrills.py:201
+#: AppTools/ToolFiducials.py:220 AppTools/ToolNCC.py:221
+#: AppTools/ToolPaint.py:203 AppTools/ToolPunchGerber.py:89
+#: AppTools/ToolPunchGerber.py:229
+msgid "Circular"
+msgstr "Circular"
+
+#: AppEditors/FlatCAMExcEditor.py:1719
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:68
+msgid "Nr of drills"
+msgstr "Nr of drills"
+
+#: AppEditors/FlatCAMExcEditor.py:1720
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:70
+msgid "Specify how many drills to be in the array."
+msgstr "Specify how many drills to be in the array."
+
+#: AppEditors/FlatCAMExcEditor.py:1738 AppEditors/FlatCAMExcEditor.py:1788
+#: AppEditors/FlatCAMExcEditor.py:1860 AppEditors/FlatCAMExcEditor.py:1953
+#: AppEditors/FlatCAMExcEditor.py:2004 AppEditors/FlatCAMGrbEditor.py:1571
+#: AppEditors/FlatCAMGrbEditor.py:2802 AppEditors/FlatCAMGrbEditor.py:2851
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:178
+msgid "Direction"
+msgstr "Direction"
+
+#: AppEditors/FlatCAMExcEditor.py:1740 AppEditors/FlatCAMExcEditor.py:1955
+#: AppEditors/FlatCAMGrbEditor.py:2804
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:86
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:234
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:122
+msgid ""
+"Direction on which the linear array is oriented:\n"
+"- 'X' - horizontal axis \n"
+"- 'Y' - vertical axis or \n"
+"- 'Angle' - a custom angle for the array inclination"
+msgstr ""
+"Direction on which the linear array is oriented:\n"
+"- 'X' - horizontal axis \n"
+"- 'Y' - vertical axis or \n"
+"- 'Angle' - a custom angle for the array inclination"
+
+#: AppEditors/FlatCAMExcEditor.py:1747 AppEditors/FlatCAMExcEditor.py:1869
+#: AppEditors/FlatCAMExcEditor.py:1962 AppEditors/FlatCAMGrbEditor.py:2811
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:92
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:187
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:240
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:128
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:208
+#: AppTools/ToolFilm.py:239
+msgid "X"
+msgstr "X"
+
+#: AppEditors/FlatCAMExcEditor.py:1748 AppEditors/FlatCAMExcEditor.py:1870
+#: AppEditors/FlatCAMExcEditor.py:1963 AppEditors/FlatCAMGrbEditor.py:2812
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:93
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:188
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:241
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:129
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:209
+#: AppTools/ToolFilm.py:240
+msgid "Y"
+msgstr "Y"
+
+#: AppEditors/FlatCAMExcEditor.py:1749 AppEditors/FlatCAMExcEditor.py:1766
+#: AppEditors/FlatCAMExcEditor.py:1800 AppEditors/FlatCAMExcEditor.py:1871
+#: AppEditors/FlatCAMExcEditor.py:1875 AppEditors/FlatCAMExcEditor.py:1964
+#: AppEditors/FlatCAMExcEditor.py:1982 AppEditors/FlatCAMExcEditor.py:2016
+#: AppEditors/FlatCAMGrbEditor.py:2813 AppEditors/FlatCAMGrbEditor.py:2830
+#: AppEditors/FlatCAMGrbEditor.py:2866
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:94
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:113
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:189
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:194
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:242
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:263
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:130
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:148
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:53
+#: AppTools/ToolDistance.py:120 AppTools/ToolDistanceMin.py:68
+#: AppTools/ToolTransform.py:60
+msgid "Angle"
+msgstr "Angle"
+
+#: AppEditors/FlatCAMExcEditor.py:1753 AppEditors/FlatCAMExcEditor.py:1968
+#: AppEditors/FlatCAMGrbEditor.py:2817
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:100
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:248
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:136
+msgid "Pitch"
+msgstr "Pitch"
+
+#: AppEditors/FlatCAMExcEditor.py:1755 AppEditors/FlatCAMExcEditor.py:1970
+#: AppEditors/FlatCAMGrbEditor.py:2819
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:102
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:250
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:138
+msgid "Pitch = Distance between elements of the array."
+msgstr "Pitch = Distance between elements of the array."
+
+#: AppEditors/FlatCAMExcEditor.py:1768 AppEditors/FlatCAMExcEditor.py:1984
+msgid ""
+"Angle at which the linear array is placed.\n"
+"The precision is of max 2 decimals.\n"
+"Min value is: -360 degrees.\n"
+"Max value is: 360.00 degrees."
+msgstr ""
+"Angle at which the linear array is placed.\n"
+"The precision is of max 2 decimals.\n"
+"Min value is: -360 degrees.\n"
+"Max value is: 360.00 degrees."
+
+#: AppEditors/FlatCAMExcEditor.py:1789 AppEditors/FlatCAMExcEditor.py:2005
+#: AppEditors/FlatCAMGrbEditor.py:2853
+msgid ""
+"Direction for circular array.Can be CW = clockwise or CCW = counter "
+"clockwise."
+msgstr ""
+"Direction for circular array.Can be CW = clockwise or CCW = counter "
+"clockwise."
+
+#: AppEditors/FlatCAMExcEditor.py:1796 AppEditors/FlatCAMExcEditor.py:2012
+#: AppEditors/FlatCAMGrbEditor.py:2861
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:129
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:136
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:286
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:142
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:170
+msgid "CW"
+msgstr "CW"
+
+#: AppEditors/FlatCAMExcEditor.py:1797 AppEditors/FlatCAMExcEditor.py:2013
+#: AppEditors/FlatCAMGrbEditor.py:2862
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:130
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:137
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:287
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:143
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:171
+msgid "CCW"
+msgstr "CCW"
+
+#: AppEditors/FlatCAMExcEditor.py:1801 AppEditors/FlatCAMExcEditor.py:2017
+#: AppEditors/FlatCAMGrbEditor.py:2868
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:115
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:145
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:265
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:295
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:150
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:179
+msgid "Angle at which each element in circular array is placed."
+msgstr "Angle at which each element in circular array is placed."
+
+#: AppEditors/FlatCAMExcEditor.py:1835
+msgid "Slot Parameters"
+msgstr "Slot Parameters"
+
+#: AppEditors/FlatCAMExcEditor.py:1837
+msgid ""
+"Parameters for adding a slot (hole with oval shape)\n"
+"either single or as an part of an array."
+msgstr ""
+"Parameters for adding a slot (hole with oval shape)\n"
+"either single or as an part of an array."
+
+#: AppEditors/FlatCAMExcEditor.py:1846
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:56
+#: AppTools/ToolCorners.py:127 AppTools/ToolProperties.py:559
+msgid "Length"
+msgstr "Length"
+
+#: AppEditors/FlatCAMExcEditor.py:1848
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:164
+msgid "Length = The length of the slot."
+msgstr "Length = The length of the slot."
+
+#: AppEditors/FlatCAMExcEditor.py:1862
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:180
+msgid ""
+"Direction on which the slot is oriented:\n"
+"- 'X' - horizontal axis \n"
+"- 'Y' - vertical axis or \n"
+"- 'Angle' - a custom angle for the slot inclination"
+msgstr ""
+"Direction on which the slot is oriented:\n"
+"- 'X' - horizontal axis \n"
+"- 'Y' - vertical axis or \n"
+"- 'Angle' - a custom angle for the slot inclination"
+
+#: AppEditors/FlatCAMExcEditor.py:1877
+msgid ""
+"Angle at which the slot is placed.\n"
+"The precision is of max 2 decimals.\n"
+"Min value is: -360 degrees.\n"
+"Max value is: 360.00 degrees."
+msgstr ""
+"Angle at which the slot is placed.\n"
+"The precision is of max 2 decimals.\n"
+"Min value is: -360 degrees.\n"
+"Max value is: 360.00 degrees."
+
+#: AppEditors/FlatCAMExcEditor.py:1910
+msgid "Slot Array Parameters"
+msgstr "Slot Array Parameters"
+
+#: AppEditors/FlatCAMExcEditor.py:1912
+msgid "Parameters for the array of slots (linear or circular array)"
+msgstr "Parameters for the array of slots (linear or circular array)"
+
+#: AppEditors/FlatCAMExcEditor.py:1921
+msgid ""
+"Select the type of slot array to create.\n"
+"It can be Linear X(Y) or Circular"
+msgstr ""
+"Select the type of slot array to create.\n"
+"It can be Linear X(Y) or Circular"
+
+#: AppEditors/FlatCAMExcEditor.py:1933
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:219
+msgid "Nr of slots"
+msgstr "Nr of slots"
+
+#: AppEditors/FlatCAMExcEditor.py:1934
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:221
+msgid "Specify how many slots to be in the array."
+msgstr "Specify how many slots to be in the array."
+
+#: AppEditors/FlatCAMExcEditor.py:2452 AppObjects/FlatCAMExcellon.py:423
+msgid "Total Drills"
+msgstr "Total Drills"
+
+#: AppEditors/FlatCAMExcEditor.py:2484 AppObjects/FlatCAMExcellon.py:454
+msgid "Total Slots"
+msgstr "Total Slots"
+
+#: AppEditors/FlatCAMExcEditor.py:2559 AppEditors/FlatCAMGeoEditor.py:1075
+#: AppEditors/FlatCAMGeoEditor.py:1116 AppEditors/FlatCAMGeoEditor.py:1144
+#: AppEditors/FlatCAMGeoEditor.py:1172 AppEditors/FlatCAMGeoEditor.py:1216
+#: AppEditors/FlatCAMGeoEditor.py:1251 AppEditors/FlatCAMGeoEditor.py:1279
+#: AppObjects/FlatCAMGeometry.py:656 AppObjects/FlatCAMGeometry.py:1090
+#: AppObjects/FlatCAMGeometry.py:1830 AppObjects/FlatCAMGeometry.py:2480
+#: AppTools/ToolNCC.py:1498 AppTools/ToolPaint.py:1248
+#: AppTools/ToolPaint.py:1419 AppTools/ToolSolderPaste.py:883
+#: AppTools/ToolSolderPaste.py:956
+msgid "Wrong value format entered, use a number."
+msgstr "Wrong value format entered, use a number."
+
+#: AppEditors/FlatCAMExcEditor.py:2570
+msgid ""
+"Tool already in the original or actual tool list.\n"
+"Save and reedit Excellon if you need to add this tool. "
+msgstr ""
+"Tool already in the original or actual tool list.\n"
+"Save and reedit Excellon if you need to add this tool. "
+
+#: AppEditors/FlatCAMExcEditor.py:2579 AppGUI/MainGUI.py:3318
+msgid "Added new tool with dia"
+msgstr "Added new tool with dia"
+
+#: AppEditors/FlatCAMExcEditor.py:2612
+msgid "Select a tool in Tool Table"
+msgstr "Select a tool in Tool Table"
+
+#: AppEditors/FlatCAMExcEditor.py:2642
+msgid "Deleted tool with diameter"
+msgstr "Deleted tool with diameter"
+
+#: AppEditors/FlatCAMExcEditor.py:2790
+msgid "Done. Tool edit completed."
+msgstr "Done. Tool edit completed."
+
+#: AppEditors/FlatCAMExcEditor.py:3327
+msgid "There are no Tools definitions in the file. Aborting Excellon creation."
+msgstr ""
+"There are no Tools definitions in the file. Aborting Excellon creation."
+
+#: AppEditors/FlatCAMExcEditor.py:3331
+msgid "An internal error has ocurred. See Shell.\n"
+msgstr "An internal error has ocurred. See Shell.\n"
+
+#: AppEditors/FlatCAMExcEditor.py:3336
+msgid "Creating Excellon."
+msgstr "Creating Excellon."
+
+#: AppEditors/FlatCAMExcEditor.py:3348
+msgid "Excellon editing finished."
+msgstr "Excellon editing finished."
+
+#: AppEditors/FlatCAMExcEditor.py:3365
+msgid "Cancelled. There is no Tool/Drill selected"
+msgstr "Cancelled. There is no Tool/Drill selected"
+
+#: AppEditors/FlatCAMExcEditor.py:3599 AppEditors/FlatCAMExcEditor.py:3607
+#: AppEditors/FlatCAMGeoEditor.py:4343 AppEditors/FlatCAMGeoEditor.py:4357
+#: AppEditors/FlatCAMGrbEditor.py:1085 AppEditors/FlatCAMGrbEditor.py:1202
+#: AppEditors/FlatCAMGrbEditor.py:1488 AppEditors/FlatCAMGrbEditor.py:1757
+#: AppEditors/FlatCAMGrbEditor.py:4595 AppEditors/FlatCAMGrbEditor.py:4610
+#: AppGUI/MainGUI.py:2671 AppGUI/MainGUI.py:2683
+#: AppTools/ToolAlignObjects.py:393 AppTools/ToolAlignObjects.py:415
+#: App_Main.py:4649 App_Main.py:4803
+msgid "Done."
+msgstr "Done."
+
+#: AppEditors/FlatCAMExcEditor.py:3982
+msgid "Done. Drill(s) deleted."
+msgstr "Done. Drill(s) deleted."
+
+#: AppEditors/FlatCAMExcEditor.py:4055 AppEditors/FlatCAMExcEditor.py:4065
+#: AppEditors/FlatCAMGrbEditor.py:5041
+msgid "Click on the circular array Center position"
+msgstr "Click on the circular array Center position"
+
+#: AppEditors/FlatCAMGeoEditor.py:84
+msgid "Buffer distance:"
+msgstr "Buffer distance:"
+
+#: AppEditors/FlatCAMGeoEditor.py:85
+msgid "Buffer corner:"
+msgstr "Buffer corner:"
+
+#: AppEditors/FlatCAMGeoEditor.py:87
+msgid ""
+"There are 3 types of corners:\n"
+" - 'Round': the corner is rounded for exterior buffer.\n"
+" - 'Square': the corner is met in a sharp angle for exterior buffer.\n"
+" - 'Beveled': the corner is a line that directly connects the features "
+"meeting in the corner"
+msgstr ""
+"There are 3 types of corners:\n"
+" - 'Round': the corner is rounded for exterior buffer.\n"
+" - 'Square': the corner is met in a sharp angle for exterior buffer.\n"
+" - 'Beveled': the corner is a line that directly connects the features "
+"meeting in the corner"
+
+#: AppEditors/FlatCAMGeoEditor.py:93 AppEditors/FlatCAMGrbEditor.py:2629
+msgid "Round"
+msgstr "Round"
+
+#: AppEditors/FlatCAMGeoEditor.py:94 AppEditors/FlatCAMGrbEditor.py:2630
+#: AppGUI/ObjectUI.py:1370 AppGUI/ObjectUI.py:2204
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:217
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:68
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:175
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:68
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:177
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:143
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:291
+#: AppTools/ToolExtractDrills.py:94 AppTools/ToolExtractDrills.py:227
+#: AppTools/ToolNCC.py:583 AppTools/ToolPaint.py:526
+#: AppTools/ToolPunchGerber.py:105 AppTools/ToolPunchGerber.py:255
+#: AppTools/ToolQRCode.py:198
+msgid "Square"
+msgstr "Square"
+
+#: AppEditors/FlatCAMGeoEditor.py:95 AppEditors/FlatCAMGrbEditor.py:2631
+msgid "Beveled"
+msgstr "Beveled"
+
+#: AppEditors/FlatCAMGeoEditor.py:102
+msgid "Buffer Interior"
+msgstr "Buffer Interior"
+
+#: AppEditors/FlatCAMGeoEditor.py:104
+msgid "Buffer Exterior"
+msgstr "Buffer Exterior"
+
+#: AppEditors/FlatCAMGeoEditor.py:110
+msgid "Full Buffer"
+msgstr "Full Buffer"
+
+#: AppEditors/FlatCAMGeoEditor.py:131 AppEditors/FlatCAMGeoEditor.py:3016
+#: AppGUI/MainGUI.py:4220
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:190
+msgid "Buffer Tool"
+msgstr "Buffer Tool"
+
+#: AppEditors/FlatCAMGeoEditor.py:143 AppEditors/FlatCAMGeoEditor.py:160
+#: AppEditors/FlatCAMGeoEditor.py:177 AppEditors/FlatCAMGeoEditor.py:3035
+#: AppEditors/FlatCAMGeoEditor.py:3063 AppEditors/FlatCAMGeoEditor.py:3091
+#: AppEditors/FlatCAMGrbEditor.py:5094
+msgid "Buffer distance value is missing or wrong format. Add it and retry."
+msgstr "Buffer distance value is missing or wrong format. Add it and retry."
+
+#: AppEditors/FlatCAMGeoEditor.py:241
+msgid "Font"
+msgstr "Font"
+
+#: AppEditors/FlatCAMGeoEditor.py:322 AppGUI/MainGUI.py:1411
+msgid "Text"
+msgstr "Text"
+
+#: AppEditors/FlatCAMGeoEditor.py:348
+msgid "Text Tool"
+msgstr "Text Tool"
+
+#: AppEditors/FlatCAMGeoEditor.py:404 AppGUI/MainGUI.py:513
+#: AppGUI/MainGUI.py:1158 AppGUI/ObjectUI.py:818 AppGUI/ObjectUI.py:1764
+#: AppObjects/FlatCAMExcellon.py:821 AppObjects/FlatCAMExcellon.py:1163
+#: AppObjects/FlatCAMGeometry.py:816 AppTools/ToolNCC.py:331
+#: AppTools/ToolNCC.py:797 AppTools/ToolPaint.py:313 AppTools/ToolPaint.py:766
+msgid "Tool"
+msgstr "Tool"
+
+#: AppEditors/FlatCAMGeoEditor.py:438 AppGUI/ObjectUI.py:364
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:43
+msgid "Tool dia"
+msgstr "Tool dia"
+
+#: AppEditors/FlatCAMGeoEditor.py:440
+msgid "Diameter of the tool to be used in the operation."
+msgstr "Diameter of the tool to be used in the operation."
+
+#: AppEditors/FlatCAMGeoEditor.py:486
+msgid ""
+"Algorithm to paint the polygons:\n"
+"- Standard: Fixed step inwards.\n"
+"- Seed-based: Outwards from seed.\n"
+"- Line-based: Parallel lines."
+msgstr ""
+"Algorithm to paint the polygons:\n"
+"- Standard: Fixed step inwards.\n"
+"- Seed-based: Outwards from seed.\n"
+"- Line-based: Parallel lines."
+
+#: AppEditors/FlatCAMGeoEditor.py:505
+msgid "Connect:"
+msgstr "Connect:"
+
+#: AppEditors/FlatCAMGeoEditor.py:515
+msgid "Contour:"
+msgstr "Contour:"
+
+#: AppEditors/FlatCAMGeoEditor.py:528 AppGUI/MainGUI.py:1415
+msgid "Paint"
+msgstr "Paint"
+
+#: AppEditors/FlatCAMGeoEditor.py:546 AppGUI/MainGUI.py:917
+#: AppGUI/MainGUI.py:1910 AppGUI/ObjectUI.py:2269 AppTools/ToolPaint.py:42
+#: AppTools/ToolPaint.py:737
+msgid "Paint Tool"
+msgstr "Paint Tool"
+
+#: AppEditors/FlatCAMGeoEditor.py:582 AppEditors/FlatCAMGeoEditor.py:1054
+#: AppEditors/FlatCAMGeoEditor.py:3023 AppEditors/FlatCAMGeoEditor.py:3051
+#: AppEditors/FlatCAMGeoEditor.py:3079 AppEditors/FlatCAMGeoEditor.py:4496
+#: AppEditors/FlatCAMGrbEditor.py:5745
+msgid "Cancelled. No shape selected."
+msgstr "Cancelled. No shape selected."
+
+#: AppEditors/FlatCAMGeoEditor.py:595 AppEditors/FlatCAMGeoEditor.py:3041
+#: AppEditors/FlatCAMGeoEditor.py:3069 AppEditors/FlatCAMGeoEditor.py:3097
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:59
+#: AppTools/ToolProperties.py:117 AppTools/ToolProperties.py:162
+msgid "Tools"
+msgstr "Tools"
+
+#: AppEditors/FlatCAMGeoEditor.py:606 AppEditors/FlatCAMGeoEditor.py:990
+#: AppEditors/FlatCAMGrbEditor.py:5284 AppEditors/FlatCAMGrbEditor.py:5681
+#: AppGUI/MainGUI.py:938 AppGUI/MainGUI.py:1931 AppTools/ToolTransform.py:460
+msgid "Transform Tool"
+msgstr "Transform Tool"
+
+#: AppEditors/FlatCAMGeoEditor.py:607 AppEditors/FlatCAMGeoEditor.py:672
+#: AppEditors/FlatCAMGrbEditor.py:5285 AppEditors/FlatCAMGrbEditor.py:5350
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:45
+#: AppTools/ToolTransform.py:24 AppTools/ToolTransform.py:466
+msgid "Rotate"
+msgstr "Rotate"
+
+#: AppEditors/FlatCAMGeoEditor.py:608 AppEditors/FlatCAMGrbEditor.py:5286
+#: AppTools/ToolTransform.py:25
+msgid "Skew/Shear"
+msgstr "Skew/Shear"
+
+#: AppEditors/FlatCAMGeoEditor.py:609 AppEditors/FlatCAMGrbEditor.py:2678
+#: AppEditors/FlatCAMGrbEditor.py:5287 AppGUI/MainGUI.py:1060
+#: AppGUI/MainGUI.py:1458 AppGUI/MainGUI.py:2053 AppGUI/MainGUI.py:4432
+#: AppGUI/ObjectUI.py:125
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:95
+#: AppTools/ToolTransform.py:26
+msgid "Scale"
+msgstr "Scale"
+
+#: AppEditors/FlatCAMGeoEditor.py:610 AppEditors/FlatCAMGrbEditor.py:5288
+#: AppTools/ToolTransform.py:27
+msgid "Mirror (Flip)"
+msgstr "Mirror (Flip)"
+
+#: AppEditors/FlatCAMGeoEditor.py:624 AppEditors/FlatCAMGrbEditor.py:5302
+#: AppGUI/MainGUI.py:849 AppGUI/MainGUI.py:1844
+msgid "Editor"
+msgstr "Editor"
+
+#: AppEditors/FlatCAMGeoEditor.py:656 AppEditors/FlatCAMGrbEditor.py:5334
+msgid "Angle:"
+msgstr "Angle:"
+
+#: AppEditors/FlatCAMGeoEditor.py:658 AppEditors/FlatCAMGrbEditor.py:5336
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:55
+#: AppTools/ToolTransform.py:62
+msgid ""
+"Angle for Rotation action, in degrees.\n"
+"Float number between -360 and 359.\n"
+"Positive numbers for CW motion.\n"
+"Negative numbers for CCW motion."
+msgstr ""
+"Angle for Rotation action, in degrees.\n"
+"Float number between -360 and 359.\n"
+"Positive numbers for CW motion.\n"
+"Negative numbers for CCW motion."
+
+#: AppEditors/FlatCAMGeoEditor.py:674 AppEditors/FlatCAMGrbEditor.py:5352
+msgid ""
+"Rotate the selected shape(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected shapes."
+msgstr ""
+"Rotate the selected shape(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected shapes."
+
+#: AppEditors/FlatCAMGeoEditor.py:697 AppEditors/FlatCAMGrbEditor.py:5375
+msgid "Angle X:"
+msgstr "Angle X:"
+
+#: AppEditors/FlatCAMGeoEditor.py:699 AppEditors/FlatCAMGeoEditor.py:719
+#: AppEditors/FlatCAMGrbEditor.py:5377 AppEditors/FlatCAMGrbEditor.py:5397
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:74
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:88
+#: AppTools/ToolCalibration.py:505 AppTools/ToolCalibration.py:518
+msgid ""
+"Angle for Skew action, in degrees.\n"
+"Float number between -360 and 359."
+msgstr ""
+"Angle for Skew action, in degrees.\n"
+"Float number between -360 and 359."
+
+#: AppEditors/FlatCAMGeoEditor.py:710 AppEditors/FlatCAMGrbEditor.py:5388
+#: AppTools/ToolTransform.py:467
+msgid "Skew X"
+msgstr "Skew X"
+
+#: AppEditors/FlatCAMGeoEditor.py:712 AppEditors/FlatCAMGeoEditor.py:732
+#: AppEditors/FlatCAMGrbEditor.py:5390 AppEditors/FlatCAMGrbEditor.py:5410
+msgid ""
+"Skew/shear the selected shape(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected shapes."
+msgstr ""
+"Skew/shear the selected shape(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected shapes."
+
+#: AppEditors/FlatCAMGeoEditor.py:717 AppEditors/FlatCAMGrbEditor.py:5395
+msgid "Angle Y:"
+msgstr "Angle Y:"
+
+#: AppEditors/FlatCAMGeoEditor.py:730 AppEditors/FlatCAMGrbEditor.py:5408
+#: AppTools/ToolTransform.py:468
+msgid "Skew Y"
+msgstr "Skew Y"
+
+#: AppEditors/FlatCAMGeoEditor.py:758 AppEditors/FlatCAMGrbEditor.py:5436
+msgid "Factor X:"
+msgstr "Factor X:"
+
+#: AppEditors/FlatCAMGeoEditor.py:760 AppEditors/FlatCAMGrbEditor.py:5438
+#: AppTools/ToolCalibration.py:469
+msgid "Factor for Scale action over X axis."
+msgstr "Factor for Scale action over X axis."
+
+#: AppEditors/FlatCAMGeoEditor.py:770 AppEditors/FlatCAMGrbEditor.py:5448
+#: AppTools/ToolTransform.py:469
+msgid "Scale X"
+msgstr "Scale X"
+
+#: AppEditors/FlatCAMGeoEditor.py:772 AppEditors/FlatCAMGeoEditor.py:791
+#: AppEditors/FlatCAMGrbEditor.py:5450 AppEditors/FlatCAMGrbEditor.py:5469
+msgid ""
+"Scale the selected shape(s).\n"
+"The point of reference depends on \n"
+"the Scale reference checkbox state."
+msgstr ""
+"Scale the selected shape(s).\n"
+"The point of reference depends on \n"
+"the Scale reference checkbox state."
+
+#: AppEditors/FlatCAMGeoEditor.py:777 AppEditors/FlatCAMGrbEditor.py:5455
+msgid "Factor Y:"
+msgstr "Factor Y:"
+
+#: AppEditors/FlatCAMGeoEditor.py:779 AppEditors/FlatCAMGrbEditor.py:5457
+#: AppTools/ToolCalibration.py:481
+msgid "Factor for Scale action over Y axis."
+msgstr "Factor for Scale action over Y axis."
+
+#: AppEditors/FlatCAMGeoEditor.py:789 AppEditors/FlatCAMGrbEditor.py:5467
+#: AppTools/ToolTransform.py:470
+msgid "Scale Y"
+msgstr "Scale Y"
+
+#: AppEditors/FlatCAMGeoEditor.py:798 AppEditors/FlatCAMGrbEditor.py:5476
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:124
+#: AppTools/ToolTransform.py:189
+msgid "Link"
+msgstr "Link"
+
+#: AppEditors/FlatCAMGeoEditor.py:800 AppEditors/FlatCAMGrbEditor.py:5478
+msgid ""
+"Scale the selected shape(s)\n"
+"using the Scale Factor X for both axis."
+msgstr ""
+"Scale the selected shape(s)\n"
+"using the Scale Factor X for both axis."
+
+#: AppEditors/FlatCAMGeoEditor.py:806 AppEditors/FlatCAMGrbEditor.py:5484
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:132
+#: AppTools/ToolTransform.py:196
+msgid "Scale Reference"
+msgstr "Scale Reference"
+
+#: AppEditors/FlatCAMGeoEditor.py:808 AppEditors/FlatCAMGrbEditor.py:5486
+msgid ""
+"Scale the selected shape(s)\n"
+"using the origin reference when checked,\n"
+"and the center of the biggest bounding box\n"
+"of the selected shapes when unchecked."
+msgstr ""
+"Scale the selected shape(s)\n"
+"using the origin reference when checked,\n"
+"and the center of the biggest bounding box\n"
+"of the selected shapes when unchecked."
+
+#: AppEditors/FlatCAMGeoEditor.py:836 AppEditors/FlatCAMGrbEditor.py:5515
+msgid "Value X:"
+msgstr "Value X:"
+
+#: AppEditors/FlatCAMGeoEditor.py:838 AppEditors/FlatCAMGrbEditor.py:5517
+msgid "Value for Offset action on X axis."
+msgstr "Value for Offset action on X axis."
+
+#: AppEditors/FlatCAMGeoEditor.py:848 AppEditors/FlatCAMGrbEditor.py:5527
+#: AppTools/ToolTransform.py:473
+msgid "Offset X"
+msgstr "Offset X"
+
+#: AppEditors/FlatCAMGeoEditor.py:850 AppEditors/FlatCAMGeoEditor.py:870
+#: AppEditors/FlatCAMGrbEditor.py:5529 AppEditors/FlatCAMGrbEditor.py:5549
+msgid ""
+"Offset the selected shape(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected shapes.\n"
+msgstr ""
+"Offset the selected shape(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected shapes.\n"
+
+#: AppEditors/FlatCAMGeoEditor.py:856 AppEditors/FlatCAMGrbEditor.py:5535
+msgid "Value Y:"
+msgstr "Value Y:"
+
+#: AppEditors/FlatCAMGeoEditor.py:858 AppEditors/FlatCAMGrbEditor.py:5537
+msgid "Value for Offset action on Y axis."
+msgstr "Value for Offset action on Y axis."
+
+#: AppEditors/FlatCAMGeoEditor.py:868 AppEditors/FlatCAMGrbEditor.py:5547
+#: AppTools/ToolTransform.py:474
+msgid "Offset Y"
+msgstr "Offset Y"
+
+#: AppEditors/FlatCAMGeoEditor.py:899 AppEditors/FlatCAMGrbEditor.py:5578
+#: AppTools/ToolTransform.py:475
+msgid "Flip on X"
+msgstr "Flip on X"
+
+#: AppEditors/FlatCAMGeoEditor.py:901 AppEditors/FlatCAMGeoEditor.py:908
+#: AppEditors/FlatCAMGrbEditor.py:5580 AppEditors/FlatCAMGrbEditor.py:5587
+msgid ""
+"Flip the selected shape(s) over the X axis.\n"
+"Does not create a new shape."
+msgstr ""
+"Flip the selected shape(s) over the X axis.\n"
+"Does not create a new shape."
+
+#: AppEditors/FlatCAMGeoEditor.py:906 AppEditors/FlatCAMGrbEditor.py:5585
+#: AppTools/ToolTransform.py:476
+msgid "Flip on Y"
+msgstr "Flip on Y"
+
+#: AppEditors/FlatCAMGeoEditor.py:914 AppEditors/FlatCAMGrbEditor.py:5593
+msgid "Ref Pt"
+msgstr "Ref Pt"
+
+#: AppEditors/FlatCAMGeoEditor.py:916 AppEditors/FlatCAMGrbEditor.py:5595
+msgid ""
+"Flip the selected shape(s)\n"
+"around the point in Point Entry Field.\n"
+"\n"
+"The point coordinates can be captured by\n"
+"left click on canvas together with pressing\n"
+"SHIFT key. \n"
+"Then click Add button to insert coordinates.\n"
+"Or enter the coords in format (x, y) in the\n"
+"Point Entry field and click Flip on X(Y)"
+msgstr ""
+"Flip the selected shape(s)\n"
+"around the point in Point Entry Field.\n"
+"\n"
+"The point coordinates can be captured by\n"
+"left click on canvas together with pressing\n"
+"SHIFT key. \n"
+"Then click Add button to insert coordinates.\n"
+"Or enter the coords in format (x, y) in the\n"
+"Point Entry field and click Flip on X(Y)"
+
+#: AppEditors/FlatCAMGeoEditor.py:928 AppEditors/FlatCAMGrbEditor.py:5607
+msgid "Point:"
+msgstr "Point:"
+
+#: AppEditors/FlatCAMGeoEditor.py:930 AppEditors/FlatCAMGrbEditor.py:5609
+#: AppTools/ToolTransform.py:299
+msgid ""
+"Coordinates in format (x, y) used as reference for mirroring.\n"
+"The 'x' in (x, y) will be used when using Flip on X and\n"
+"the 'y' in (x, y) will be used when using Flip on Y."
+msgstr ""
+"Coordinates in format (x, y) used as reference for mirroring.\n"
+"The 'x' in (x, y) will be used when using Flip on X and\n"
+"the 'y' in (x, y) will be used when using Flip on Y."
+
+#: AppEditors/FlatCAMGeoEditor.py:938 AppEditors/FlatCAMGrbEditor.py:2581
+#: AppEditors/FlatCAMGrbEditor.py:5619 AppGUI/ObjectUI.py:1697
+#: AppTools/ToolDblSided.py:192 AppTools/ToolDblSided.py:425
+#: AppTools/ToolNCC.py:294 AppTools/ToolNCC.py:631 AppTools/ToolPaint.py:276
+#: AppTools/ToolPaint.py:675 AppTools/ToolSolderPaste.py:122
+#: AppTools/ToolSolderPaste.py:597 AppTools/ToolTransform.py:478
+#: App_Main.py:5593
+msgid "Add"
+msgstr "Add"
+
+#: AppEditors/FlatCAMGeoEditor.py:940 AppEditors/FlatCAMGrbEditor.py:5621
+#: AppTools/ToolTransform.py:309
+msgid ""
+"The point coordinates can be captured by\n"
+"left click on canvas together with pressing\n"
+"SHIFT key. Then click Add button to insert."
+msgstr ""
+"The point coordinates can be captured by\n"
+"left click on canvas together with pressing\n"
+"SHIFT key. Then click Add button to insert."
+
+#: AppEditors/FlatCAMGeoEditor.py:1303 AppEditors/FlatCAMGrbEditor.py:5929
+msgid "No shape selected. Please Select a shape to rotate!"
+msgstr "No shape selected. Please Select a shape to rotate!"
+
+#: AppEditors/FlatCAMGeoEditor.py:1306 AppEditors/FlatCAMGrbEditor.py:5932
+#: AppTools/ToolTransform.py:679
+msgid "Appying Rotate"
+msgstr "Appying Rotate"
+
+#: AppEditors/FlatCAMGeoEditor.py:1332 AppEditors/FlatCAMGrbEditor.py:5964
+msgid "Done. Rotate completed."
+msgstr "Done. Rotate completed."
+
+#: AppEditors/FlatCAMGeoEditor.py:1334
+msgid "Rotation action was not executed"
+msgstr "Rotation action was not executed"
+
+#: AppEditors/FlatCAMGeoEditor.py:1353 AppEditors/FlatCAMGrbEditor.py:5983
+msgid "No shape selected. Please Select a shape to flip!"
+msgstr "No shape selected. Please Select a shape to flip!"
+
+#: AppEditors/FlatCAMGeoEditor.py:1356 AppEditors/FlatCAMGrbEditor.py:5986
+#: AppTools/ToolTransform.py:728
+msgid "Applying Flip"
+msgstr "Applying Flip"
+
+#: AppEditors/FlatCAMGeoEditor.py:1385 AppEditors/FlatCAMGrbEditor.py:6024
+#: AppTools/ToolTransform.py:769
+msgid "Flip on the Y axis done"
+msgstr "Flip on the Y axis done"
+
+#: AppEditors/FlatCAMGeoEditor.py:1389 AppEditors/FlatCAMGrbEditor.py:6033
+#: AppTools/ToolTransform.py:778
+msgid "Flip on the X axis done"
+msgstr "Flip on the X axis done"
+
+#: AppEditors/FlatCAMGeoEditor.py:1397
+msgid "Flip action was not executed"
+msgstr "Flip action was not executed"
+
+#: AppEditors/FlatCAMGeoEditor.py:1415 AppEditors/FlatCAMGrbEditor.py:6053
+msgid "No shape selected. Please Select a shape to shear/skew!"
+msgstr "No shape selected. Please Select a shape to shear/skew!"
+
+#: AppEditors/FlatCAMGeoEditor.py:1418 AppEditors/FlatCAMGrbEditor.py:6056
+#: AppTools/ToolTransform.py:801
+msgid "Applying Skew"
+msgstr "Applying Skew"
+
+#: AppEditors/FlatCAMGeoEditor.py:1441 AppEditors/FlatCAMGrbEditor.py:6090
+msgid "Skew on the X axis done"
+msgstr "Skew on the X axis done"
+
+#: AppEditors/FlatCAMGeoEditor.py:1443 AppEditors/FlatCAMGrbEditor.py:6092
+msgid "Skew on the Y axis done"
+msgstr "Skew on the Y axis done"
+
+#: AppEditors/FlatCAMGeoEditor.py:1446
+msgid "Skew action was not executed"
+msgstr "Skew action was not executed"
+
+#: AppEditors/FlatCAMGeoEditor.py:1468 AppEditors/FlatCAMGrbEditor.py:6114
+msgid "No shape selected. Please Select a shape to scale!"
+msgstr "No shape selected. Please Select a shape to scale!"
+
+#: AppEditors/FlatCAMGeoEditor.py:1471 AppEditors/FlatCAMGrbEditor.py:6117
+#: AppTools/ToolTransform.py:847
+msgid "Applying Scale"
+msgstr "Applying Scale"
+
+#: AppEditors/FlatCAMGeoEditor.py:1503 AppEditors/FlatCAMGrbEditor.py:6154
+msgid "Scale on the X axis done"
+msgstr "Scale on the X axis done"
+
+#: AppEditors/FlatCAMGeoEditor.py:1505 AppEditors/FlatCAMGrbEditor.py:6156
+msgid "Scale on the Y axis done"
+msgstr "Scale on the Y axis done"
+
+#: AppEditors/FlatCAMGeoEditor.py:1507
+msgid "Scale action was not executed"
+msgstr "Scale action was not executed"
+
+#: AppEditors/FlatCAMGeoEditor.py:1522 AppEditors/FlatCAMGrbEditor.py:6173
+msgid "No shape selected. Please Select a shape to offset!"
+msgstr "No shape selected. Please Select a shape to offset!"
+
+#: AppEditors/FlatCAMGeoEditor.py:1525 AppEditors/FlatCAMGrbEditor.py:6176
+#: AppTools/ToolTransform.py:897
+msgid "Applying Offset"
+msgstr "Applying Offset"
+
+#: AppEditors/FlatCAMGeoEditor.py:1535 AppEditors/FlatCAMGrbEditor.py:6197
+msgid "Offset on the X axis done"
+msgstr "Offset on the X axis done"
+
+#: AppEditors/FlatCAMGeoEditor.py:1537 AppEditors/FlatCAMGrbEditor.py:6199
+msgid "Offset on the Y axis done"
+msgstr "Offset on the Y axis done"
+
+#: AppEditors/FlatCAMGeoEditor.py:1540
+msgid "Offset action was not executed"
+msgstr "Offset action was not executed"
+
+#: AppEditors/FlatCAMGeoEditor.py:1544 AppEditors/FlatCAMGrbEditor.py:6206
+msgid "Rotate ..."
+msgstr "Rotate ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:1545 AppEditors/FlatCAMGeoEditor.py:1600
+#: AppEditors/FlatCAMGeoEditor.py:1617 AppEditors/FlatCAMGrbEditor.py:6207
+#: AppEditors/FlatCAMGrbEditor.py:6256 AppEditors/FlatCAMGrbEditor.py:6271
+msgid "Enter an Angle Value (degrees)"
+msgstr "Enter an Angle Value (degrees)"
+
+#: AppEditors/FlatCAMGeoEditor.py:1554 AppEditors/FlatCAMGrbEditor.py:6215
+msgid "Geometry shape rotate done"
+msgstr "Geometry shape rotate done"
+
+#: AppEditors/FlatCAMGeoEditor.py:1558 AppEditors/FlatCAMGrbEditor.py:6218
+msgid "Geometry shape rotate cancelled"
+msgstr "Geometry shape rotate cancelled"
+
+#: AppEditors/FlatCAMGeoEditor.py:1563 AppEditors/FlatCAMGrbEditor.py:6223
+msgid "Offset on X axis ..."
+msgstr "Offset on X axis ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:1564 AppEditors/FlatCAMGeoEditor.py:1583
+#: AppEditors/FlatCAMGrbEditor.py:6224 AppEditors/FlatCAMGrbEditor.py:6241
+msgid "Enter a distance Value"
+msgstr "Enter a distance Value"
+
+#: AppEditors/FlatCAMGeoEditor.py:1573 AppEditors/FlatCAMGrbEditor.py:6232
+msgid "Geometry shape offset on X axis done"
+msgstr "Geometry shape offset on X axis done"
+
+#: AppEditors/FlatCAMGeoEditor.py:1577 AppEditors/FlatCAMGrbEditor.py:6235
+msgid "Geometry shape offset X cancelled"
+msgstr "Geometry shape offset X cancelled"
+
+#: AppEditors/FlatCAMGeoEditor.py:1582 AppEditors/FlatCAMGrbEditor.py:6240
+msgid "Offset on Y axis ..."
+msgstr "Offset on Y axis ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:1592 AppEditors/FlatCAMGrbEditor.py:6249
+msgid "Geometry shape offset on Y axis done"
+msgstr "Geometry shape offset on Y axis done"
+
+#: AppEditors/FlatCAMGeoEditor.py:1596
+msgid "Geometry shape offset on Y axis canceled"
+msgstr "Geometry shape offset on Y axis canceled"
+
+#: AppEditors/FlatCAMGeoEditor.py:1599 AppEditors/FlatCAMGrbEditor.py:6255
+msgid "Skew on X axis ..."
+msgstr "Skew on X axis ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:1609 AppEditors/FlatCAMGrbEditor.py:6264
+msgid "Geometry shape skew on X axis done"
+msgstr "Geometry shape skew on X axis done"
+
+#: AppEditors/FlatCAMGeoEditor.py:1613
+msgid "Geometry shape skew on X axis canceled"
+msgstr "Geometry shape skew on X axis canceled"
+
+#: AppEditors/FlatCAMGeoEditor.py:1616 AppEditors/FlatCAMGrbEditor.py:6270
+msgid "Skew on Y axis ..."
+msgstr "Skew on Y axis ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:1626 AppEditors/FlatCAMGrbEditor.py:6279
+msgid "Geometry shape skew on Y axis done"
+msgstr "Geometry shape skew on Y axis done"
+
+#: AppEditors/FlatCAMGeoEditor.py:1630
+msgid "Geometry shape skew on Y axis canceled"
+msgstr "Geometry shape skew on Y axis canceled"
+
+#: AppEditors/FlatCAMGeoEditor.py:2007 AppEditors/FlatCAMGeoEditor.py:2078
+#: AppEditors/FlatCAMGrbEditor.py:1435 AppEditors/FlatCAMGrbEditor.py:1513
+msgid "Click on Center point ..."
+msgstr "Click on Center point ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2020 AppEditors/FlatCAMGrbEditor.py:1445
+msgid "Click on Perimeter point to complete ..."
+msgstr "Click on Perimeter point to complete ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2052
+msgid "Done. Adding Circle completed."
+msgstr "Done. Adding Circle completed."
+
+#: AppEditors/FlatCAMGeoEditor.py:2106 AppEditors/FlatCAMGrbEditor.py:1546
+msgid "Click on Start point ..."
+msgstr "Click on Start point ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2108 AppEditors/FlatCAMGrbEditor.py:1548
+msgid "Click on Point3 ..."
+msgstr "Click on Point3 ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2110 AppEditors/FlatCAMGrbEditor.py:1550
+msgid "Click on Stop point ..."
+msgstr "Click on Stop point ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2115 AppEditors/FlatCAMGrbEditor.py:1555
+msgid "Click on Stop point to complete ..."
+msgstr "Click on Stop point to complete ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2117 AppEditors/FlatCAMGrbEditor.py:1557
+msgid "Click on Point2 to complete ..."
+msgstr "Click on Point2 to complete ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2119 AppEditors/FlatCAMGrbEditor.py:1559
+msgid "Click on Center point to complete ..."
+msgstr "Click on Center point to complete ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2131
+#, python-format
+msgid "Direction: %s"
+msgstr "Direction: %s"
+
+#: AppEditors/FlatCAMGeoEditor.py:2145 AppEditors/FlatCAMGrbEditor.py:1585
+msgid "Mode: Start -> Stop -> Center. Click on Start point ..."
+msgstr "Mode: Start -> Stop -> Center. Click on Start point ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2148 AppEditors/FlatCAMGrbEditor.py:1588
+msgid "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..."
+msgstr "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2151 AppEditors/FlatCAMGrbEditor.py:1591
+msgid "Mode: Center -> Start -> Stop. Click on Center point ..."
+msgstr "Mode: Center -> Start -> Stop. Click on Center point ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2292
+msgid "Done. Arc completed."
+msgstr "Done. Arc completed."
+
+#: AppEditors/FlatCAMGeoEditor.py:2323 AppEditors/FlatCAMGeoEditor.py:2396
+msgid "Click on 1st corner ..."
+msgstr "Click on 1st corner ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2335
+msgid "Click on opposite corner to complete ..."
+msgstr "Click on opposite corner to complete ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2365
+msgid "Done. Rectangle completed."
+msgstr "Done. Rectangle completed."
+
+#: AppEditors/FlatCAMGeoEditor.py:2409 AppTools/ToolNCC.py:1734
+#: AppTools/ToolPaint.py:1627 Common.py:303
+msgid "Click on next Point or click right mouse button to complete ..."
+msgstr "Click on next Point or click right mouse button to complete ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2440
+msgid "Done. Polygon completed."
+msgstr "Done. Polygon completed."
+
+#: AppEditors/FlatCAMGeoEditor.py:2454 AppEditors/FlatCAMGeoEditor.py:2519
+#: AppEditors/FlatCAMGrbEditor.py:1111 AppEditors/FlatCAMGrbEditor.py:1322
+msgid "Backtracked one point ..."
+msgstr "Backtracked one point ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2497
+msgid "Done. Path completed."
+msgstr "Done. Path completed."
+
+#: AppEditors/FlatCAMGeoEditor.py:2656
+msgid "No shape selected. Select a shape to explode"
+msgstr "No shape selected. Select a shape to explode"
+
+#: AppEditors/FlatCAMGeoEditor.py:2689
+msgid "Done. Polygons exploded into lines."
+msgstr "Done. Polygons exploded into lines."
+
+#: AppEditors/FlatCAMGeoEditor.py:2721
+msgid "MOVE: No shape selected. Select a shape to move"
+msgstr "MOVE: No shape selected. Select a shape to move"
+
+#: AppEditors/FlatCAMGeoEditor.py:2724 AppEditors/FlatCAMGeoEditor.py:2744
+msgid " MOVE: Click on reference point ..."
+msgstr " MOVE: Click on reference point ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2729
+msgid " Click on destination point ..."
+msgstr " Click on destination point ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2769
+msgid "Done. Geometry(s) Move completed."
+msgstr "Done. Geometry(s) Move completed."
+
+#: AppEditors/FlatCAMGeoEditor.py:2902
+msgid "Done. Geometry(s) Copy completed."
+msgstr "Done. Geometry(s) Copy completed."
+
+#: AppEditors/FlatCAMGeoEditor.py:2933 AppEditors/FlatCAMGrbEditor.py:897
+msgid "Click on 1st point ..."
+msgstr "Click on 1st point ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2957
+msgid ""
+"Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. "
+"Error"
+msgstr ""
+"Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. "
+"Error"
+
+#: AppEditors/FlatCAMGeoEditor.py:2965
+msgid "No text to add."
+msgstr "No text to add."
+
+#: AppEditors/FlatCAMGeoEditor.py:2975
+msgid " Done. Adding Text completed."
+msgstr " Done. Adding Text completed."
+
+#: AppEditors/FlatCAMGeoEditor.py:3012
+msgid "Create buffer geometry ..."
+msgstr "Create buffer geometry ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:3047 AppEditors/FlatCAMGrbEditor.py:5138
+msgid "Done. Buffer Tool completed."
+msgstr "Done. Buffer Tool completed."
+
+#: AppEditors/FlatCAMGeoEditor.py:3075
+msgid "Done. Buffer Int Tool completed."
+msgstr "Done. Buffer Int Tool completed."
+
+#: AppEditors/FlatCAMGeoEditor.py:3103
+msgid "Done. Buffer Ext Tool completed."
+msgstr "Done. Buffer Ext Tool completed."
+
+#: AppEditors/FlatCAMGeoEditor.py:3152 AppEditors/FlatCAMGrbEditor.py:2151
+msgid "Select a shape to act as deletion area ..."
+msgstr "Select a shape to act as deletion area ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:3154 AppEditors/FlatCAMGeoEditor.py:3180
+#: AppEditors/FlatCAMGeoEditor.py:3186 AppEditors/FlatCAMGrbEditor.py:2153
+msgid "Click to pick-up the erase shape..."
+msgstr "Click to pick-up the erase shape..."
+
+#: AppEditors/FlatCAMGeoEditor.py:3190 AppEditors/FlatCAMGrbEditor.py:2212
+msgid "Click to erase ..."
+msgstr "Click to erase ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:3219 AppEditors/FlatCAMGrbEditor.py:2245
+msgid "Done. Eraser tool action completed."
+msgstr "Done. Eraser tool action completed."
+
+#: AppEditors/FlatCAMGeoEditor.py:3269
+msgid "Create Paint geometry ..."
+msgstr "Create Paint geometry ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:3282 AppEditors/FlatCAMGrbEditor.py:2408
+msgid "Shape transformations ..."
+msgstr "Shape transformations ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:3338
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:27
+msgid "Geometry Editor"
+msgstr "Geometry Editor"
+
+#: AppEditors/FlatCAMGeoEditor.py:3344 AppEditors/FlatCAMGrbEditor.py:2486
+#: AppEditors/FlatCAMGrbEditor.py:3943 AppGUI/ObjectUI.py:263
+#: AppGUI/ObjectUI.py:1599 AppGUI/ObjectUI.py:2456 AppTools/ToolCutOut.py:95
+msgid "Type"
+msgstr "Type"
+
+#: AppEditors/FlatCAMGeoEditor.py:3344 AppGUI/ObjectUI.py:218
+#: AppGUI/ObjectUI.py:742 AppGUI/ObjectUI.py:1535 AppGUI/ObjectUI.py:2365
+#: AppGUI/ObjectUI.py:2669 AppGUI/ObjectUI.py:2736
+#: AppTools/ToolCalibration.py:234 AppTools/ToolFiducials.py:73
+msgid "Name"
+msgstr "Name"
+
+#: AppEditors/FlatCAMGeoEditor.py:3596
+msgid "Ring"
+msgstr "Ring"
+
+#: AppEditors/FlatCAMGeoEditor.py:3598
+msgid "Line"
+msgstr "Line"
+
+#: AppEditors/FlatCAMGeoEditor.py:3600 AppGUI/MainGUI.py:1405
+#: AppGUI/ObjectUI.py:1371 AppGUI/ObjectUI.py:2205
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:218
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:328
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:292
+#: AppTools/ToolNCC.py:584 AppTools/ToolPaint.py:527
+msgid "Polygon"
+msgstr "Polygon"
+
+#: AppEditors/FlatCAMGeoEditor.py:3602
+msgid "Multi-Line"
+msgstr "Multi-Line"
+
+#: AppEditors/FlatCAMGeoEditor.py:3604
+msgid "Multi-Polygon"
+msgstr "Multi-Polygon"
+
+#: AppEditors/FlatCAMGeoEditor.py:3611
+msgid "Geo Elem"
+msgstr "Geo Elem"
+
+#: AppEditors/FlatCAMGeoEditor.py:4064
+msgid "Editing MultiGeo Geometry, tool"
+msgstr "Editing MultiGeo Geometry, tool"
+
+#: AppEditors/FlatCAMGeoEditor.py:4066
+msgid "with diameter"
+msgstr "with diameter"
+
+#: AppEditors/FlatCAMGeoEditor.py:4138
+#| msgid "Workspace enabled."
+msgid "Grid snap enabled."
+msgstr "Grid snap enabled."
+
+#: AppEditors/FlatCAMGeoEditor.py:4142
+#| msgid "Grid X snapping distance"
+msgid "Grid snap disabled."
+msgstr "Grid snap disabled."
+
+#: AppEditors/FlatCAMGeoEditor.py:4503 AppGUI/MainGUI.py:3000
+#: AppGUI/MainGUI.py:3046 AppGUI/MainGUI.py:3064 AppGUI/MainGUI.py:3208
+#: AppGUI/MainGUI.py:3247 AppGUI/MainGUI.py:3259 AppGUI/MainGUI.py:3276
+msgid "Click on target point."
+msgstr "Click on target point."
+
+#: AppEditors/FlatCAMGeoEditor.py:4817 AppEditors/FlatCAMGeoEditor.py:4852
+msgid "A selection of at least 2 geo items is required to do Intersection."
+msgstr "A selection of at least 2 geo items is required to do Intersection."
+
+#: AppEditors/FlatCAMGeoEditor.py:4938 AppEditors/FlatCAMGeoEditor.py:5042
+msgid ""
+"Negative buffer value is not accepted. Use Buffer interior to generate an "
+"'inside' shape"
+msgstr ""
+"Negative buffer value is not accepted. Use Buffer interior to generate an "
+"'inside' shape"
+
+#: AppEditors/FlatCAMGeoEditor.py:4948 AppEditors/FlatCAMGeoEditor.py:5001
+#: AppEditors/FlatCAMGeoEditor.py:5051
+msgid "Nothing selected for buffering."
+msgstr "Nothing selected for buffering."
+
+#: AppEditors/FlatCAMGeoEditor.py:4953 AppEditors/FlatCAMGeoEditor.py:5005
+#: AppEditors/FlatCAMGeoEditor.py:5056
+msgid "Invalid distance for buffering."
+msgstr "Invalid distance for buffering."
+
+#: AppEditors/FlatCAMGeoEditor.py:4977 AppEditors/FlatCAMGeoEditor.py:5076
+msgid "Failed, the result is empty. Choose a different buffer value."
+msgstr "Failed, the result is empty. Choose a different buffer value."
+
+#: AppEditors/FlatCAMGeoEditor.py:4988
+msgid "Full buffer geometry created."
+msgstr "Full buffer geometry created."
+
+#: AppEditors/FlatCAMGeoEditor.py:4994
+msgid "Negative buffer value is not accepted."
+msgstr "Negative buffer value is not accepted."
+
+#: AppEditors/FlatCAMGeoEditor.py:5025
+msgid "Failed, the result is empty. Choose a smaller buffer value."
+msgstr "Failed, the result is empty. Choose a smaller buffer value."
+
+#: AppEditors/FlatCAMGeoEditor.py:5035
+msgid "Interior buffer geometry created."
+msgstr "Interior buffer geometry created."
+
+#: AppEditors/FlatCAMGeoEditor.py:5086
+msgid "Exterior buffer geometry created."
+msgstr "Exterior buffer geometry created."
+
+#: AppEditors/FlatCAMGeoEditor.py:5092
+#, python-format
+msgid "Could not do Paint. Overlap value has to be less than 100%%."
+msgstr "Could not do Paint. Overlap value has to be less than 100%%."
+
+#: AppEditors/FlatCAMGeoEditor.py:5099
+msgid "Nothing selected for painting."
+msgstr "Nothing selected for painting."
+
+#: AppEditors/FlatCAMGeoEditor.py:5105
+msgid "Invalid value for"
+msgstr "Invalid value for"
+
+#: AppEditors/FlatCAMGeoEditor.py:5164
+msgid ""
+"Could not do Paint. Try a different combination of parameters. Or a "
+"different method of Paint"
+msgstr ""
+"Could not do Paint. Try a different combination of parameters. Or a "
+"different method of Paint"
+
+#: AppEditors/FlatCAMGeoEditor.py:5175
+msgid "Paint done."
+msgstr "Paint done."
+
+#: AppEditors/FlatCAMGrbEditor.py:211
+msgid "To add an Pad first select a aperture in Aperture Table"
+msgstr "To add an Pad first select a aperture in Aperture Table"
+
+#: AppEditors/FlatCAMGrbEditor.py:218 AppEditors/FlatCAMGrbEditor.py:418
+msgid "Aperture size is zero. It needs to be greater than zero."
+msgstr "Aperture size is zero. It needs to be greater than zero."
+
+#: AppEditors/FlatCAMGrbEditor.py:371 AppEditors/FlatCAMGrbEditor.py:684
+msgid ""
+"Incompatible aperture type. Select an aperture with type 'C', 'R' or 'O'."
+msgstr ""
+"Incompatible aperture type. Select an aperture with type 'C', 'R' or 'O'."
+
+#: AppEditors/FlatCAMGrbEditor.py:383
+msgid "Done. Adding Pad completed."
+msgstr "Done. Adding Pad completed."
+
+#: AppEditors/FlatCAMGrbEditor.py:410
+msgid "To add an Pad Array first select a aperture in Aperture Table"
+msgstr "To add an Pad Array first select a aperture in Aperture Table"
+
+#: AppEditors/FlatCAMGrbEditor.py:490
+msgid "Click on the Pad Circular Array Start position"
+msgstr "Click on the Pad Circular Array Start position"
+
+#: AppEditors/FlatCAMGrbEditor.py:710
+msgid "Too many Pads for the selected spacing angle."
+msgstr "Too many Pads for the selected spacing angle."
+
+#: AppEditors/FlatCAMGrbEditor.py:733
+msgid "Done. Pad Array added."
+msgstr "Done. Pad Array added."
+
+#: AppEditors/FlatCAMGrbEditor.py:758
+msgid "Select shape(s) and then click ..."
+msgstr "Select shape(s) and then click ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:770
+msgid "Failed. Nothing selected."
+msgstr "Failed. Nothing selected."
+
+#: AppEditors/FlatCAMGrbEditor.py:786
+msgid ""
+"Failed. Poligonize works only on geometries belonging to the same aperture."
+msgstr ""
+"Failed. Poligonize works only on geometries belonging to the same aperture."
+
+#: AppEditors/FlatCAMGrbEditor.py:840
+msgid "Done. Poligonize completed."
+msgstr "Done. Poligonize completed."
+
+#: AppEditors/FlatCAMGrbEditor.py:895 AppEditors/FlatCAMGrbEditor.py:1128
+#: AppEditors/FlatCAMGrbEditor.py:1152
+msgid "Corner Mode 1: 45 degrees ..."
+msgstr "Corner Mode 1: 45 degrees ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:907 AppEditors/FlatCAMGrbEditor.py:1237
+msgid "Click on next Point or click Right mouse button to complete ..."
+msgstr "Click on next Point or click Right mouse button to complete ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1116 AppEditors/FlatCAMGrbEditor.py:1149
+msgid "Corner Mode 2: Reverse 45 degrees ..."
+msgstr "Corner Mode 2: Reverse 45 degrees ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1119 AppEditors/FlatCAMGrbEditor.py:1146
+msgid "Corner Mode 3: 90 degrees ..."
+msgstr "Corner Mode 3: 90 degrees ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1122 AppEditors/FlatCAMGrbEditor.py:1143
+msgid "Corner Mode 4: Reverse 90 degrees ..."
+msgstr "Corner Mode 4: Reverse 90 degrees ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1125 AppEditors/FlatCAMGrbEditor.py:1140
+msgid "Corner Mode 5: Free angle ..."
+msgstr "Corner Mode 5: Free angle ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1182 AppEditors/FlatCAMGrbEditor.py:1358
+#: AppEditors/FlatCAMGrbEditor.py:1397
+msgid "Track Mode 1: 45 degrees ..."
+msgstr "Track Mode 1: 45 degrees ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1338 AppEditors/FlatCAMGrbEditor.py:1392
+msgid "Track Mode 2: Reverse 45 degrees ..."
+msgstr "Track Mode 2: Reverse 45 degrees ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1343 AppEditors/FlatCAMGrbEditor.py:1387
+msgid "Track Mode 3: 90 degrees ..."
+msgstr "Track Mode 3: 90 degrees ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1348 AppEditors/FlatCAMGrbEditor.py:1382
+msgid "Track Mode 4: Reverse 90 degrees ..."
+msgstr "Track Mode 4: Reverse 90 degrees ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1353 AppEditors/FlatCAMGrbEditor.py:1377
+msgid "Track Mode 5: Free angle ..."
+msgstr "Track Mode 5: Free angle ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1778
+msgid "Scale the selected Gerber apertures ..."
+msgstr "Scale the selected Gerber apertures ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1820
+msgid "Buffer the selected apertures ..."
+msgstr "Buffer the selected apertures ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1862
+msgid "Mark polygon areas in the edited Gerber ..."
+msgstr "Mark polygon areas in the edited Gerber ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1928
+msgid "Nothing selected to move"
+msgstr "Nothing selected to move"
+
+#: AppEditors/FlatCAMGrbEditor.py:2053
+msgid "Done. Apertures Move completed."
+msgstr "Done. Apertures Move completed."
+
+#: AppEditors/FlatCAMGrbEditor.py:2135
+msgid "Done. Apertures copied."
+msgstr "Done. Apertures copied."
+
+#: AppEditors/FlatCAMGrbEditor.py:2453 AppGUI/MainGUI.py:1436
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:27
+msgid "Gerber Editor"
+msgstr "Gerber Editor"
+
+#: AppEditors/FlatCAMGrbEditor.py:2473 AppGUI/ObjectUI.py:228
+#: AppTools/ToolProperties.py:159
+msgid "Apertures"
+msgstr "Apertures"
+
+#: AppEditors/FlatCAMGrbEditor.py:2475 AppGUI/ObjectUI.py:230
+msgid "Apertures Table for the Gerber Object."
+msgstr "Apertures Table for the Gerber Object."
+
+#: AppEditors/FlatCAMGrbEditor.py:2486 AppEditors/FlatCAMGrbEditor.py:3943
+#: AppGUI/ObjectUI.py:263
+msgid "Code"
+msgstr "Code"
+
+#: AppEditors/FlatCAMGrbEditor.py:2486 AppEditors/FlatCAMGrbEditor.py:3943
+#: AppGUI/ObjectUI.py:263
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:103
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43
+#: AppTools/ToolCopperThieving.py:261 AppTools/ToolCopperThieving.py:301
+#: AppTools/ToolFiducials.py:156
+msgid "Size"
+msgstr "Size"
+
+#: AppEditors/FlatCAMGrbEditor.py:2486 AppEditors/FlatCAMGrbEditor.py:3943
+#: AppGUI/ObjectUI.py:263
+msgid "Dim"
+msgstr "Dim"
+
+#: AppEditors/FlatCAMGrbEditor.py:2491 AppGUI/ObjectUI.py:267
+msgid "Index"
+msgstr "Index"
+
+#: AppEditors/FlatCAMGrbEditor.py:2493 AppEditors/FlatCAMGrbEditor.py:2522
+#: AppGUI/ObjectUI.py:269
+msgid "Aperture Code"
+msgstr "Aperture Code"
+
+#: AppEditors/FlatCAMGrbEditor.py:2495 AppGUI/ObjectUI.py:271
+msgid "Type of aperture: circular, rectangle, macros etc"
+msgstr "Type of aperture: circular, rectangle, macros etc"
+
+#: AppEditors/FlatCAMGrbEditor.py:2497 AppGUI/ObjectUI.py:273
+msgid "Aperture Size:"
+msgstr "Aperture Size:"
+
+#: AppEditors/FlatCAMGrbEditor.py:2499 AppGUI/ObjectUI.py:275
+msgid ""
+"Aperture Dimensions:\n"
+" - (width, height) for R, O type.\n"
+" - (dia, nVertices) for P type"
+msgstr ""
+"Aperture Dimensions:\n"
+" - (width, height) for R, O type.\n"
+" - (dia, nVertices) for P type"
+
+#: AppEditors/FlatCAMGrbEditor.py:2523
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:58
+msgid "Code for the new aperture"
+msgstr "Code for the new aperture"
+
+#: AppEditors/FlatCAMGrbEditor.py:2532
+msgid "Aperture Size"
+msgstr "Aperture Size"
+
+#: AppEditors/FlatCAMGrbEditor.py:2534
+msgid ""
+"Size for the new aperture.\n"
+"If aperture type is 'R' or 'O' then\n"
+"this value is automatically\n"
+"calculated as:\n"
+"sqrt(width**2 + height**2)"
+msgstr ""
+"Size for the new aperture.\n"
+"If aperture type is 'R' or 'O' then\n"
+"this value is automatically\n"
+"calculated as:\n"
+"sqrt(width**2 + height**2)"
+
+#: AppEditors/FlatCAMGrbEditor.py:2548
+msgid "Aperture Type"
+msgstr "Aperture Type"
+
+#: AppEditors/FlatCAMGrbEditor.py:2550
+msgid ""
+"Select the type of new aperture. Can be:\n"
+"C = circular\n"
+"R = rectangular\n"
+"O = oblong"
+msgstr ""
+"Select the type of new aperture. Can be:\n"
+"C = circular\n"
+"R = rectangular\n"
+"O = oblong"
+
+#: AppEditors/FlatCAMGrbEditor.py:2561
+msgid "Aperture Dim"
+msgstr "Aperture Dim"
+
+#: AppEditors/FlatCAMGrbEditor.py:2563
+msgid ""
+"Dimensions for the new aperture.\n"
+"Active only for rectangular apertures (type R).\n"
+"The format is (width, height)"
+msgstr ""
+"Dimensions for the new aperture.\n"
+"Active only for rectangular apertures (type R).\n"
+"The format is (width, height)"
+
+#: AppEditors/FlatCAMGrbEditor.py:2572
+msgid "Add/Delete Aperture"
+msgstr "Add/Delete Aperture"
+
+#: AppEditors/FlatCAMGrbEditor.py:2574
+msgid "Add/Delete an aperture in the aperture table"
+msgstr "Add/Delete an aperture in the aperture table"
+
+#: AppEditors/FlatCAMGrbEditor.py:2583
+msgid "Add a new aperture to the aperture list."
+msgstr "Add a new aperture to the aperture list."
+
+#: AppEditors/FlatCAMGrbEditor.py:2586 AppEditors/FlatCAMGrbEditor.py:2734
+#: AppGUI/MainGUI.py:753 AppGUI/MainGUI.py:1071 AppGUI/MainGUI.py:1487
+#: AppGUI/MainGUI.py:2063 AppGUI/MainGUI.py:4433 AppGUI/ObjectUI.py:1725
+#: AppObjects/FlatCAMGeometry.py:556 AppTools/ToolNCC.py:316
+#: AppTools/ToolNCC.py:637 AppTools/ToolPaint.py:298 AppTools/ToolPaint.py:681
+#: AppTools/ToolSolderPaste.py:128 AppTools/ToolSolderPaste.py:600
+#: App_Main.py:5595
+msgid "Delete"
+msgstr "Delete"
+
+#: AppEditors/FlatCAMGrbEditor.py:2588
+msgid "Delete a aperture in the aperture list"
+msgstr "Delete a aperture in the aperture list"
+
+#: AppEditors/FlatCAMGrbEditor.py:2605
+msgid "Buffer Aperture"
+msgstr "Buffer Aperture"
+
+#: AppEditors/FlatCAMGrbEditor.py:2607
+msgid "Buffer a aperture in the aperture list"
+msgstr "Buffer a aperture in the aperture list"
+
+#: AppEditors/FlatCAMGrbEditor.py:2620
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:194
+msgid "Buffer distance"
+msgstr "Buffer distance"
+
+#: AppEditors/FlatCAMGrbEditor.py:2621
+msgid "Buffer corner"
+msgstr "Buffer corner"
+
+#: AppEditors/FlatCAMGrbEditor.py:2623
+msgid ""
+"There are 3 types of corners:\n"
+" - 'Round': the corner is rounded.\n"
+" - 'Square': the corner is met in a sharp angle.\n"
+" - 'Beveled': the corner is a line that directly connects the features "
+"meeting in the corner"
+msgstr ""
+"There are 3 types of corners:\n"
+" - 'Round': the corner is rounded.\n"
+" - 'Square': the corner is met in a sharp angle.\n"
+" - 'Beveled': the corner is a line that directly connects the features "
+"meeting in the corner"
+
+#: AppEditors/FlatCAMGrbEditor.py:2638 AppGUI/MainGUI.py:1058
+#: AppGUI/MainGUI.py:1413 AppGUI/MainGUI.py:1456 AppGUI/MainGUI.py:2051
+#: AppGUI/MainGUI.py:4430
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:200
+#: AppTools/ToolTransform.py:29
+msgid "Buffer"
+msgstr "Buffer"
+
+#: AppEditors/FlatCAMGrbEditor.py:2653
+msgid "Scale Aperture"
+msgstr "Scale Aperture"
+
+#: AppEditors/FlatCAMGrbEditor.py:2655
+msgid "Scale a aperture in the aperture list"
+msgstr "Scale a aperture in the aperture list"
+
+#: AppEditors/FlatCAMGrbEditor.py:2663
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:209
+msgid "Scale factor"
+msgstr "Scale factor"
+
+#: AppEditors/FlatCAMGrbEditor.py:2665
+msgid ""
+"The factor by which to scale the selected aperture.\n"
+"Values can be between 0.0000 and 999.9999"
+msgstr ""
+"The factor by which to scale the selected aperture.\n"
+"Values can be between 0.0000 and 999.9999"
+
+#: AppEditors/FlatCAMGrbEditor.py:2693
+msgid "Mark polygons"
+msgstr "Mark polygons"
+
+#: AppEditors/FlatCAMGrbEditor.py:2695
+msgid "Mark the polygon areas."
+msgstr "Mark the polygon areas."
+
+#: AppEditors/FlatCAMGrbEditor.py:2703
+msgid "Area UPPER threshold"
+msgstr "Area UPPER threshold"
+
+#: AppEditors/FlatCAMGrbEditor.py:2705
+msgid ""
+"The threshold value, all areas less than this are marked.\n"
+"Can have a value between 0.0000 and 9999.9999"
+msgstr ""
+"The threshold value, all areas less than this are marked.\n"
+"Can have a value between 0.0000 and 9999.9999"
+
+#: AppEditors/FlatCAMGrbEditor.py:2712
+msgid "Area LOWER threshold"
+msgstr "Area LOWER threshold"
+
+#: AppEditors/FlatCAMGrbEditor.py:2714
+msgid ""
+"The threshold value, all areas more than this are marked.\n"
+"Can have a value between 0.0000 and 9999.9999"
+msgstr ""
+"The threshold value, all areas more than this are marked.\n"
+"Can have a value between 0.0000 and 9999.9999"
+
+#: AppEditors/FlatCAMGrbEditor.py:2728
+msgid "Mark"
+msgstr "Mark"
+
+#: AppEditors/FlatCAMGrbEditor.py:2730
+msgid "Mark the polygons that fit within limits."
+msgstr "Mark the polygons that fit within limits."
+
+#: AppEditors/FlatCAMGrbEditor.py:2736
+msgid "Delete all the marked polygons."
+msgstr "Delete all the marked polygons."
+
+#: AppEditors/FlatCAMGrbEditor.py:2742
+msgid "Clear all the markings."
+msgstr "Clear all the markings."
+
+#: AppEditors/FlatCAMGrbEditor.py:2762 AppGUI/MainGUI.py:1043
+#: AppGUI/MainGUI.py:2036 AppGUI/MainGUI.py:4430
+msgid "Add Pad Array"
+msgstr "Add Pad Array"
+
+#: AppEditors/FlatCAMGrbEditor.py:2764
+msgid "Add an array of pads (linear or circular array)"
+msgstr "Add an array of pads (linear or circular array)"
+
+#: AppEditors/FlatCAMGrbEditor.py:2770
+msgid ""
+"Select the type of pads array to create.\n"
+"It can be Linear X(Y) or Circular"
+msgstr ""
+"Select the type of pads array to create.\n"
+"It can be Linear X(Y) or Circular"
+
+#: AppEditors/FlatCAMGrbEditor.py:2781
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:95
+msgid "Nr of pads"
+msgstr "Nr of pads"
+
+#: AppEditors/FlatCAMGrbEditor.py:2783
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:97
+msgid "Specify how many pads to be in the array."
+msgstr "Specify how many pads to be in the array."
+
+#: AppEditors/FlatCAMGrbEditor.py:2832
+msgid ""
+"Angle at which the linear array is placed.\n"
+"The precision is of max 2 decimals.\n"
+"Min value is: -359.99 degrees.\n"
+"Max value is: 360.00 degrees."
+msgstr ""
+"Angle at which the linear array is placed.\n"
+"The precision is of max 2 decimals.\n"
+"Min value is: -359.99 degrees.\n"
+"Max value is: 360.00 degrees."
+
+#: AppEditors/FlatCAMGrbEditor.py:3326 AppEditors/FlatCAMGrbEditor.py:3330
+msgid "Aperture code value is missing or wrong format. Add it and retry."
+msgstr "Aperture code value is missing or wrong format. Add it and retry."
+
+#: AppEditors/FlatCAMGrbEditor.py:3366
+msgid ""
+"Aperture dimensions value is missing or wrong format. Add it in format "
+"(width, height) and retry."
+msgstr ""
+"Aperture dimensions value is missing or wrong format. Add it in format "
+"(width, height) and retry."
+
+#: AppEditors/FlatCAMGrbEditor.py:3379
+msgid "Aperture size value is missing or wrong format. Add it and retry."
+msgstr "Aperture size value is missing or wrong format. Add it and retry."
+
+#: AppEditors/FlatCAMGrbEditor.py:3390
+msgid "Aperture already in the aperture table."
+msgstr "Aperture already in the aperture table."
+
+#: AppEditors/FlatCAMGrbEditor.py:3397
+msgid "Added new aperture with code"
+msgstr "Added new aperture with code"
+
+#: AppEditors/FlatCAMGrbEditor.py:3429
+msgid " Select an aperture in Aperture Table"
+msgstr " Select an aperture in Aperture Table"
+
+#: AppEditors/FlatCAMGrbEditor.py:3437
+msgid "Select an aperture in Aperture Table -->"
+msgstr "Select an aperture in Aperture Table -->"
+
+#: AppEditors/FlatCAMGrbEditor.py:3451
+msgid "Deleted aperture with code"
+msgstr "Deleted aperture with code"
+
+#: AppEditors/FlatCAMGrbEditor.py:3519
+msgid "Dimensions need two float values separated by comma."
+msgstr "Dimensions need two float values separated by comma."
+
+#: AppEditors/FlatCAMGrbEditor.py:3528
+msgid "Dimensions edited."
+msgstr "Dimensions edited."
+
+#: AppEditors/FlatCAMGrbEditor.py:4058
+msgid "Loading Gerber into Editor"
+msgstr "Loading Gerber into Editor"
+
+#: AppEditors/FlatCAMGrbEditor.py:4186
+msgid "Setting up the UI"
+msgstr "Setting up the UI"
+
+#: AppEditors/FlatCAMGrbEditor.py:4187
+msgid "Adding geometry finished. Preparing the AppGUI"
+msgstr "Adding geometry finished. Preparing the AppGUI"
+
+#: AppEditors/FlatCAMGrbEditor.py:4196
+msgid "Finished loading the Gerber object into the editor."
+msgstr "Finished loading the Gerber object into the editor."
+
+#: AppEditors/FlatCAMGrbEditor.py:4335
+msgid ""
+"There are no Aperture definitions in the file. Aborting Gerber creation."
+msgstr ""
+"There are no Aperture definitions in the file. Aborting Gerber creation."
+
+#: AppEditors/FlatCAMGrbEditor.py:4338 AppObjects/AppObject.py:133
+#: AppObjects/FlatCAMGeometry.py:1775 AppParsers/ParseExcellon.py:896
+#: AppTools/ToolPcbWizard.py:432 App_Main.py:8369 App_Main.py:8433
+#: App_Main.py:8564 App_Main.py:8629 App_Main.py:9281
msgid "An internal error has occurred. See shell.\n"
msgstr "An internal error has occurred. See shell.\n"
-#: FlatCAMApp.py:2807
+#: AppEditors/FlatCAMGrbEditor.py:4345
+msgid "Creating Gerber."
+msgstr "Creating Gerber."
+
+#: AppEditors/FlatCAMGrbEditor.py:4354
+msgid "Done. Gerber editing finished."
+msgstr "Done. Gerber editing finished."
+
+#: AppEditors/FlatCAMGrbEditor.py:4372
+msgid "Cancelled. No aperture is selected"
+msgstr "Cancelled. No aperture is selected"
+
+#: AppEditors/FlatCAMGrbEditor.py:4527 App_Main.py:5921
+msgid "Coordinates copied to clipboard."
+msgstr "Coordinates copied to clipboard."
+
+#: AppEditors/FlatCAMGrbEditor.py:4970
+msgid "Failed. No aperture geometry is selected."
+msgstr "Failed. No aperture geometry is selected."
+
+#: AppEditors/FlatCAMGrbEditor.py:4979 AppEditors/FlatCAMGrbEditor.py:5250
+msgid "Done. Apertures geometry deleted."
+msgstr "Done. Apertures geometry deleted."
+
+#: AppEditors/FlatCAMGrbEditor.py:5122
+msgid "No aperture to buffer. Select at least one aperture and try again."
+msgstr "No aperture to buffer. Select at least one aperture and try again."
+
+#: AppEditors/FlatCAMGrbEditor.py:5134
+msgid "Failed."
+msgstr "Failed."
+
+#: AppEditors/FlatCAMGrbEditor.py:5153
+msgid "Scale factor value is missing or wrong format. Add it and retry."
+msgstr "Scale factor value is missing or wrong format. Add it and retry."
+
+#: AppEditors/FlatCAMGrbEditor.py:5185
+msgid "No aperture to scale. Select at least one aperture and try again."
+msgstr "No aperture to scale. Select at least one aperture and try again."
+
+#: AppEditors/FlatCAMGrbEditor.py:5201
+msgid "Done. Scale Tool completed."
+msgstr "Done. Scale Tool completed."
+
+#: AppEditors/FlatCAMGrbEditor.py:5239
+msgid "Polygons marked."
+msgstr "Polygons marked."
+
+#: AppEditors/FlatCAMGrbEditor.py:5242
+msgid "No polygons were marked. None fit within the limits."
+msgstr "No polygons were marked. None fit within the limits."
+
+#: AppEditors/FlatCAMGrbEditor.py:5966
+msgid "Rotation action was not executed."
+msgstr "Rotation action was not executed."
+
+#: AppEditors/FlatCAMGrbEditor.py:6037 App_Main.py:5354 App_Main.py:5402
+msgid "Flip action was not executed."
+msgstr "Flip action was not executed."
+
+#: AppEditors/FlatCAMGrbEditor.py:6094
+msgid "Skew action was not executed."
+msgstr "Skew action was not executed."
+
+#: AppEditors/FlatCAMGrbEditor.py:6159
+msgid "Scale action was not executed."
+msgstr "Scale action was not executed."
+
+#: AppEditors/FlatCAMGrbEditor.py:6202
+msgid "Offset action was not executed."
+msgstr "Offset action was not executed."
+
+#: AppEditors/FlatCAMGrbEditor.py:6252
+msgid "Geometry shape offset Y cancelled"
+msgstr "Geometry shape offset Y cancelled"
+
+#: AppEditors/FlatCAMGrbEditor.py:6267
+msgid "Geometry shape skew X cancelled"
+msgstr "Geometry shape skew X cancelled"
+
+#: AppEditors/FlatCAMGrbEditor.py:6282
+msgid "Geometry shape skew Y cancelled"
+msgstr "Geometry shape skew Y cancelled"
+
+#: AppEditors/FlatCAMTextEditor.py:74
+msgid "Print Preview"
+msgstr "Print Preview"
+
+#: AppEditors/FlatCAMTextEditor.py:75
+msgid "Open a OS standard Preview Print window."
+msgstr "Open a OS standard Preview Print window."
+
+#: AppEditors/FlatCAMTextEditor.py:78
+msgid "Print Code"
+msgstr "Print Code"
+
+#: AppEditors/FlatCAMTextEditor.py:79
+msgid "Open a OS standard Print window."
+msgstr "Open a OS standard Print window."
+
+#: AppEditors/FlatCAMTextEditor.py:81
+msgid "Find in Code"
+msgstr "Find in Code"
+
+#: AppEditors/FlatCAMTextEditor.py:82
+msgid "Will search and highlight in yellow the string in the Find box."
+msgstr "Will search and highlight in yellow the string in the Find box."
+
+#: AppEditors/FlatCAMTextEditor.py:86
+msgid "Find box. Enter here the strings to be searched in the text."
+msgstr "Find box. Enter here the strings to be searched in the text."
+
+#: AppEditors/FlatCAMTextEditor.py:88
+msgid "Replace With"
+msgstr "Replace With"
+
+#: AppEditors/FlatCAMTextEditor.py:89
+msgid ""
+"Will replace the string from the Find box with the one in the Replace box."
+msgstr ""
+"Will replace the string from the Find box with the one in the Replace box."
+
+#: AppEditors/FlatCAMTextEditor.py:93
+msgid "String to replace the one in the Find box throughout the text."
+msgstr "String to replace the one in the Find box throughout the text."
+
+#: AppEditors/FlatCAMTextEditor.py:95 AppGUI/ObjectUI.py:486
+#: AppGUI/ObjectUI.py:2349 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:54
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:88
+msgid "All"
+msgstr "All"
+
+#: AppEditors/FlatCAMTextEditor.py:96
+msgid ""
+"When checked it will replace all instances in the 'Find' box\n"
+"with the text in the 'Replace' box.."
+msgstr ""
+"When checked it will replace all instances in the 'Find' box\n"
+"with the text in the 'Replace' box.."
+
+#: AppEditors/FlatCAMTextEditor.py:99
+msgid "Copy All"
+msgstr "Copy All"
+
+#: AppEditors/FlatCAMTextEditor.py:100
+msgid "Will copy all the text in the Code Editor to the clipboard."
+msgstr "Will copy all the text in the Code Editor to the clipboard."
+
+#: AppEditors/FlatCAMTextEditor.py:103
+msgid "Open Code"
+msgstr "Open Code"
+
+#: AppEditors/FlatCAMTextEditor.py:104
+msgid "Will open a text file in the editor."
+msgstr "Will open a text file in the editor."
+
+#: AppEditors/FlatCAMTextEditor.py:106
+msgid "Save Code"
+msgstr "Save Code"
+
+#: AppEditors/FlatCAMTextEditor.py:107
+msgid "Will save the text in the editor into a file."
+msgstr "Will save the text in the editor into a file."
+
+#: AppEditors/FlatCAMTextEditor.py:109
+msgid "Run Code"
+msgstr "Run Code"
+
+#: AppEditors/FlatCAMTextEditor.py:110
+msgid "Will run the TCL commands found in the text file, one by one."
+msgstr "Will run the TCL commands found in the text file, one by one."
+
+#: AppEditors/FlatCAMTextEditor.py:184
+msgid "Open file"
+msgstr "Open file"
+
+#: AppEditors/FlatCAMTextEditor.py:215 AppEditors/FlatCAMTextEditor.py:220
+msgid "Export Code ..."
+msgstr "Export Code ..."
+
+#: AppEditors/FlatCAMTextEditor.py:272 AppObjects/FlatCAMCNCJob.py:955
+#: AppTools/ToolSolderPaste.py:1530
+msgid "No such file or directory"
+msgstr "No such file or directory"
+
+#: AppEditors/FlatCAMTextEditor.py:284 AppObjects/FlatCAMCNCJob.py:969
+msgid "Saved to"
+msgstr "Saved to"
+
+#: AppEditors/FlatCAMTextEditor.py:334
+msgid "Code Editor content copied to clipboard ..."
+msgstr "Code Editor content copied to clipboard ..."
+
+#: AppGUI/GUIElements.py:2540
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:180
+#: AppTools/ToolDblSided.py:173 AppTools/ToolDblSided.py:388
+#: AppTools/ToolFilm.py:202
+msgid "Reference"
+msgstr "Reference"
+
+#: AppGUI/GUIElements.py:2542
+msgid ""
+"The reference can be:\n"
+"- Absolute -> the reference point is point (0,0)\n"
+"- Relative -> the reference point is the mouse position before Jump"
+msgstr ""
+"The reference can be:\n"
+"- Absolute -> the reference point is point (0,0)\n"
+"- Relative -> the reference point is the mouse position before Jump"
+
+#: AppGUI/GUIElements.py:2547
+msgid "Abs"
+msgstr "Abs"
+
+#: AppGUI/GUIElements.py:2548
+msgid "Relative"
+msgstr "Relative"
+
+#: AppGUI/GUIElements.py:2558
+msgid "Location"
+msgstr "Location"
+
+#: AppGUI/GUIElements.py:2560
+msgid ""
+"The Location value is a tuple (x,y).\n"
+"If the reference is Absolute then the Jump will be at the position (x,y).\n"
+"If the reference is Relative then the Jump will be at the (x,y) distance\n"
+"from the current mouse location point."
+msgstr ""
+"The Location value is a tuple (x,y).\n"
+"If the reference is Absolute then the Jump will be at the position (x,y).\n"
+"If the reference is Relative then the Jump will be at the (x,y) distance\n"
+"from the current mouse location point."
+
+#: AppGUI/GUIElements.py:2600
+msgid "Save Log"
+msgstr "Save Log"
+
+#: AppGUI/GUIElements.py:2610 App_Main.py:2657 App_Main.py:3018
+msgid "Close"
+msgstr "Close"
+
+#: AppGUI/GUIElements.py:2619 AppTools/ToolShell.py:278
+msgid "Type >help< to get started"
+msgstr "Type >help< to get started"
+
+#: AppGUI/GUIElements.py:2990 AppGUI/GUIElements.py:2997
+msgid "Idle."
+msgstr "Idle."
+
+#: AppGUI/GUIElements.py:3030
+msgid "Application started ..."
+msgstr "Application started ..."
+
+#: AppGUI/GUIElements.py:3031
+msgid "Hello!"
+msgstr "Hello!"
+
+#: AppGUI/GUIElements.py:3078 AppGUI/MainGUI.py:201 AppGUI/MainGUI.py:900
+#: AppGUI/MainGUI.py:1893
+msgid "Run Script ..."
+msgstr "Run Script ..."
+
+#: AppGUI/GUIElements.py:3080 AppGUI/MainGUI.py:203
+msgid ""
+"Will run the opened Tcl Script thus\n"
+"enabling the automation of certain\n"
+"functions of FlatCAM."
+msgstr ""
+"Will run the opened Tcl Script thus\n"
+"enabling the automation of certain\n"
+"functions of FlatCAM."
+
+#: AppGUI/GUIElements.py:3089 AppGUI/MainGUI.py:129
+#: AppTools/ToolPcbWizard.py:62 AppTools/ToolPcbWizard.py:69
+msgid "Open"
+msgstr "Open"
+
+#: AppGUI/GUIElements.py:3093
+msgid "Open Project ..."
+msgstr "Open Project ..."
+
+#: AppGUI/GUIElements.py:3099 AppGUI/MainGUI.py:140
+msgid "Open &Gerber ...\tCtrl+G"
+msgstr "Open &Gerber ...\tCtrl+G"
+
+#: AppGUI/GUIElements.py:3104 AppGUI/MainGUI.py:145
+msgid "Open &Excellon ...\tCtrl+E"
+msgstr "Open &Excellon ...\tCtrl+E"
+
+#: AppGUI/GUIElements.py:3109 AppGUI/MainGUI.py:150
+msgid "Open G-&Code ..."
+msgstr "Open G-&Code ..."
+
+#: AppGUI/GUIElements.py:3119
+msgid "Exit"
+msgstr "Exit"
+
+#: AppGUI/MainGUI.py:78 AppGUI/MainGUI.py:80 AppGUI/MainGUI.py:1366
+msgid "Toggle Panel"
+msgstr "Toggle Panel"
+
+#: AppGUI/MainGUI.py:90
+msgid "File"
+msgstr "File"
+
+#: AppGUI/MainGUI.py:95
+msgid "&New Project ...\tCtrl+N"
+msgstr "&New Project ...\tCtrl+N"
+
+#: AppGUI/MainGUI.py:97
+msgid "Will create a new, blank project"
+msgstr "Will create a new, blank project"
+
+#: AppGUI/MainGUI.py:102
+msgid "&New"
+msgstr "&New"
+
+#: AppGUI/MainGUI.py:106
+msgid "Geometry\tN"
+msgstr "Geometry\tN"
+
+#: AppGUI/MainGUI.py:108
+msgid "Will create a new, empty Geometry Object."
+msgstr "Will create a new, empty Geometry Object."
+
+#: AppGUI/MainGUI.py:111
+msgid "Gerber\tB"
+msgstr "Gerber\tB"
+
+#: AppGUI/MainGUI.py:113
+msgid "Will create a new, empty Gerber Object."
+msgstr "Will create a new, empty Gerber Object."
+
+#: AppGUI/MainGUI.py:116
+msgid "Excellon\tL"
+msgstr "Excellon\tL"
+
+#: AppGUI/MainGUI.py:118
+msgid "Will create a new, empty Excellon Object."
+msgstr "Will create a new, empty Excellon Object."
+
+#: AppGUI/MainGUI.py:123
+msgid "Document\tD"
+msgstr "Document\tD"
+
+#: AppGUI/MainGUI.py:125
+msgid "Will create a new, empty Document Object."
+msgstr "Will create a new, empty Document Object."
+
+#: AppGUI/MainGUI.py:134
+msgid "Open &Project ..."
+msgstr "Open &Project ..."
+
+#: AppGUI/MainGUI.py:157
+msgid "Open Config ..."
+msgstr "Open Config ..."
+
+#: AppGUI/MainGUI.py:162
+msgid "Recent projects"
+msgstr "Recent projects"
+
+#: AppGUI/MainGUI.py:164
+msgid "Recent files"
+msgstr "Recent files"
+
+#: AppGUI/MainGUI.py:167 AppGUI/MainGUI.py:755 AppGUI/MainGUI.py:1339
+msgid "Save"
+msgstr "Save"
+
+#: AppGUI/MainGUI.py:171
+msgid "&Save Project ...\tCtrl+S"
+msgstr "&Save Project ...\tCtrl+S"
+
+#: AppGUI/MainGUI.py:176
+msgid "Save Project &As ...\tCtrl+Shift+S"
+msgstr "Save Project &As ...\tCtrl+Shift+S"
+
+#: AppGUI/MainGUI.py:191
+msgid "Scripting"
+msgstr "Scripting"
+
+#: AppGUI/MainGUI.py:195 AppGUI/MainGUI.py:896 AppGUI/MainGUI.py:1889
+msgid "New Script ..."
+msgstr "New Script ..."
+
+#: AppGUI/MainGUI.py:197 AppGUI/MainGUI.py:898 AppGUI/MainGUI.py:1891
+msgid "Open Script ..."
+msgstr "Open Script ..."
+
+#: AppGUI/MainGUI.py:199
+msgid "Open Example ..."
+msgstr "Open Example ..."
+
+#: AppGUI/MainGUI.py:218
+msgid "Import"
+msgstr "Import"
+
+#: AppGUI/MainGUI.py:220
+msgid "&SVG as Geometry Object ..."
+msgstr "&SVG as Geometry Object ..."
+
+#: AppGUI/MainGUI.py:223
+msgid "&SVG as Gerber Object ..."
+msgstr "&SVG as Gerber Object ..."
+
+#: AppGUI/MainGUI.py:228
+msgid "&DXF as Geometry Object ..."
+msgstr "&DXF as Geometry Object ..."
+
+#: AppGUI/MainGUI.py:231
+msgid "&DXF as Gerber Object ..."
+msgstr "&DXF as Gerber Object ..."
+
+#: AppGUI/MainGUI.py:235
+msgid "HPGL2 as Geometry Object ..."
+msgstr "HPGL2 as Geometry Object ..."
+
+#: AppGUI/MainGUI.py:241
+msgid "Export"
+msgstr "Export"
+
+#: AppGUI/MainGUI.py:245
+msgid "Export &SVG ..."
+msgstr "Export &SVG ..."
+
+#: AppGUI/MainGUI.py:249
+msgid "Export DXF ..."
+msgstr "Export DXF ..."
+
+#: AppGUI/MainGUI.py:255
+msgid "Export &PNG ..."
+msgstr "Export &PNG ..."
+
+#: AppGUI/MainGUI.py:257
+msgid ""
+"Will export an image in PNG format,\n"
+"the saved image will contain the visual \n"
+"information currently in FlatCAM Plot Area."
+msgstr ""
+"Will export an image in PNG format,\n"
+"the saved image will contain the visual \n"
+"information currently in FlatCAM Plot Area."
+
+#: AppGUI/MainGUI.py:266
+msgid "Export &Excellon ..."
+msgstr "Export &Excellon ..."
+
+#: AppGUI/MainGUI.py:268
+msgid ""
+"Will export an Excellon Object as Excellon file,\n"
+"the coordinates format, the file units and zeros\n"
+"are set in Preferences -> Excellon Export."
+msgstr ""
+"Will export an Excellon Object as Excellon file,\n"
+"the coordinates format, the file units and zeros\n"
+"are set in Preferences -> Excellon Export."
+
+#: AppGUI/MainGUI.py:275
+msgid "Export &Gerber ..."
+msgstr "Export &Gerber ..."
+
+#: AppGUI/MainGUI.py:277
+msgid ""
+"Will export an Gerber Object as Gerber file,\n"
+"the coordinates format, the file units and zeros\n"
+"are set in Preferences -> Gerber Export."
+msgstr ""
+"Will export an Gerber Object as Gerber file,\n"
+"the coordinates format, the file units and zeros\n"
+"are set in Preferences -> Gerber Export."
+
+#: AppGUI/MainGUI.py:287
+msgid "Backup"
+msgstr "Backup"
+
+#: AppGUI/MainGUI.py:292
+msgid "Import Preferences from file ..."
+msgstr "Import Preferences from file ..."
+
+#: AppGUI/MainGUI.py:298
+msgid "Export Preferences to file ..."
+msgstr "Export Preferences to file ..."
+
+#: AppGUI/MainGUI.py:306 AppGUI/preferences/PreferencesUIManager.py:1176
+msgid "Save Preferences"
+msgstr "Save Preferences"
+
+#: AppGUI/MainGUI.py:312 AppGUI/MainGUI.py:4022
+msgid "Print (PDF)"
+msgstr "Print (PDF)"
+
+#: AppGUI/MainGUI.py:320
+msgid "E&xit"
+msgstr "E&xit"
+
+#: AppGUI/MainGUI.py:328 AppGUI/MainGUI.py:749 AppGUI/MainGUI.py:1489
+msgid "Edit"
+msgstr "Edit"
+
+#: AppGUI/MainGUI.py:332
+msgid "Edit Object\tE"
+msgstr "Edit Object\tE"
+
+#: AppGUI/MainGUI.py:334
+msgid "Close Editor\tCtrl+S"
+msgstr "Close Editor\tCtrl+S"
+
+#: AppGUI/MainGUI.py:343
+msgid "Conversion"
+msgstr "Conversion"
+
+#: AppGUI/MainGUI.py:345
+msgid "&Join Geo/Gerber/Exc -> Geo"
+msgstr "&Join Geo/Gerber/Exc -> Geo"
+
+#: AppGUI/MainGUI.py:347
+msgid ""
+"Merge a selection of objects, which can be of type:\n"
+"- Gerber\n"
+"- Excellon\n"
+"- Geometry\n"
+"into a new combo Geometry object."
+msgstr ""
+"Merge a selection of objects, which can be of type:\n"
+"- Gerber\n"
+"- Excellon\n"
+"- Geometry\n"
+"into a new combo Geometry object."
+
+#: AppGUI/MainGUI.py:354
+msgid "Join Excellon(s) -> Excellon"
+msgstr "Join Excellon(s) -> Excellon"
+
+#: AppGUI/MainGUI.py:356
+msgid "Merge a selection of Excellon objects into a new combo Excellon object."
+msgstr ""
+"Merge a selection of Excellon objects into a new combo Excellon object."
+
+#: AppGUI/MainGUI.py:359
+msgid "Join Gerber(s) -> Gerber"
+msgstr "Join Gerber(s) -> Gerber"
+
+#: AppGUI/MainGUI.py:361
+msgid "Merge a selection of Gerber objects into a new combo Gerber object."
+msgstr "Merge a selection of Gerber objects into a new combo Gerber object."
+
+#: AppGUI/MainGUI.py:366
+msgid "Convert Single to MultiGeo"
+msgstr "Convert Single to MultiGeo"
+
+#: AppGUI/MainGUI.py:368
+msgid ""
+"Will convert a Geometry object from single_geometry type\n"
+"to a multi_geometry type."
+msgstr ""
+"Will convert a Geometry object from single_geometry type\n"
+"to a multi_geometry type."
+
+#: AppGUI/MainGUI.py:372
+msgid "Convert Multi to SingleGeo"
+msgstr "Convert Multi to SingleGeo"
+
+#: AppGUI/MainGUI.py:374
+msgid ""
+"Will convert a Geometry object from multi_geometry type\n"
+"to a single_geometry type."
+msgstr ""
+"Will convert a Geometry object from multi_geometry type\n"
+"to a single_geometry type."
+
+#: AppGUI/MainGUI.py:381
+msgid "Convert Any to Geo"
+msgstr "Convert Any to Geo"
+
+#: AppGUI/MainGUI.py:384
+msgid "Convert Any to Gerber"
+msgstr "Convert Any to Gerber"
+
+#: AppGUI/MainGUI.py:390
+msgid "&Copy\tCtrl+C"
+msgstr "&Copy\tCtrl+C"
+
+#: AppGUI/MainGUI.py:395
+msgid "&Delete\tDEL"
+msgstr "&Delete\tDEL"
+
+#: AppGUI/MainGUI.py:400
+msgid "Se&t Origin\tO"
+msgstr "Se&t Origin\tO"
+
+#: AppGUI/MainGUI.py:402
+msgid "Move to Origin\tShift+O"
+msgstr "Move to Origin\tShift+O"
+
+#: AppGUI/MainGUI.py:405
+msgid "Jump to Location\tJ"
+msgstr "Jump to Location\tJ"
+
+#: AppGUI/MainGUI.py:407
+msgid "Locate in Object\tShift+J"
+msgstr "Locate in Object\tShift+J"
+
+#: AppGUI/MainGUI.py:412
+msgid "Toggle Units\tQ"
+msgstr "Toggle Units\tQ"
+
+#: AppGUI/MainGUI.py:414
+msgid "&Select All\tCtrl+A"
+msgstr "&Select All\tCtrl+A"
+
+#: AppGUI/MainGUI.py:419
+msgid "&Preferences\tShift+P"
+msgstr "&Preferences\tShift+P"
+
+#: AppGUI/MainGUI.py:425 AppTools/ToolProperties.py:155
+msgid "Options"
+msgstr "Options"
+
+#: AppGUI/MainGUI.py:427
+msgid "&Rotate Selection\tShift+(R)"
+msgstr "&Rotate Selection\tShift+(R)"
+
+#: AppGUI/MainGUI.py:432
+msgid "&Skew on X axis\tShift+X"
+msgstr "&Skew on X axis\tShift+X"
+
+#: AppGUI/MainGUI.py:434
+msgid "S&kew on Y axis\tShift+Y"
+msgstr "S&kew on Y axis\tShift+Y"
+
+#: AppGUI/MainGUI.py:439
+msgid "Flip on &X axis\tX"
+msgstr "Flip on &X axis\tX"
+
+#: AppGUI/MainGUI.py:441
+msgid "Flip on &Y axis\tY"
+msgstr "Flip on &Y axis\tY"
+
+#: AppGUI/MainGUI.py:446
+msgid "View source\tAlt+S"
+msgstr "View source\tAlt+S"
+
+#: AppGUI/MainGUI.py:448
+msgid "Tools DataBase\tCtrl+D"
+msgstr "Tools DataBase\tCtrl+D"
+
+#: AppGUI/MainGUI.py:455 AppGUI/MainGUI.py:1386
+msgid "View"
+msgstr "View"
+
+#: AppGUI/MainGUI.py:457
+msgid "Enable all plots\tAlt+1"
+msgstr "Enable all plots\tAlt+1"
+
+#: AppGUI/MainGUI.py:459
+msgid "Disable all plots\tAlt+2"
+msgstr "Disable all plots\tAlt+2"
+
+#: AppGUI/MainGUI.py:461
+msgid "Disable non-selected\tAlt+3"
+msgstr "Disable non-selected\tAlt+3"
+
+#: AppGUI/MainGUI.py:465
+msgid "&Zoom Fit\tV"
+msgstr "&Zoom Fit\tV"
+
+#: AppGUI/MainGUI.py:467
+msgid "&Zoom In\t="
+msgstr "&Zoom In\t="
+
+#: AppGUI/MainGUI.py:469
+msgid "&Zoom Out\t-"
+msgstr "&Zoom Out\t-"
+
+#: AppGUI/MainGUI.py:474
+msgid "Redraw All\tF5"
+msgstr "Redraw All\tF5"
+
+#: AppGUI/MainGUI.py:478
+msgid "Toggle Code Editor\tShift+E"
+msgstr "Toggle Code Editor\tShift+E"
+
+#: AppGUI/MainGUI.py:481
+msgid "&Toggle FullScreen\tAlt+F10"
+msgstr "&Toggle FullScreen\tAlt+F10"
+
+#: AppGUI/MainGUI.py:483
+msgid "&Toggle Plot Area\tCtrl+F10"
+msgstr "&Toggle Plot Area\tCtrl+F10"
+
+#: AppGUI/MainGUI.py:485
+msgid "&Toggle Project/Sel/Tool\t`"
+msgstr "&Toggle Project/Sel/Tool\t`"
+
+#: AppGUI/MainGUI.py:489
+msgid "&Toggle Grid Snap\tG"
+msgstr "&Toggle Grid Snap\tG"
+
+#: AppGUI/MainGUI.py:491
+msgid "&Toggle Grid Lines\tAlt+G"
+msgstr "&Toggle Grid Lines\tAlt+G"
+
+#: AppGUI/MainGUI.py:493
+msgid "&Toggle Axis\tShift+G"
+msgstr "&Toggle Axis\tShift+G"
+
+#: AppGUI/MainGUI.py:495
+msgid "Toggle Workspace\tShift+W"
+msgstr "Toggle Workspace\tShift+W"
+
+#: AppGUI/MainGUI.py:497
+msgid "Toggle HUD\tAlt+M"
+msgstr "Toggle HUD\tAlt+M"
+
+#: AppGUI/MainGUI.py:502
+msgid "Objects"
+msgstr "Objects"
+
+#: AppGUI/MainGUI.py:505 AppGUI/MainGUI.py:4020
+#: AppObjects/ObjectCollection.py:1120 AppObjects/ObjectCollection.py:1167
+msgid "Select All"
+msgstr "Select All"
+
+#: AppGUI/MainGUI.py:507 AppObjects/ObjectCollection.py:1124
+#: AppObjects/ObjectCollection.py:1171
+msgid "Deselect All"
+msgstr "Deselect All"
+
+#: AppGUI/MainGUI.py:516
+msgid "&Command Line\tS"
+msgstr "&Command Line\tS"
+
+#: AppGUI/MainGUI.py:521
+msgid "Help"
+msgstr "Help"
+
+#: AppGUI/MainGUI.py:523
+msgid "Online Help\tF1"
+msgstr "Online Help\tF1"
+
+#: AppGUI/MainGUI.py:526 Bookmark.py:293
+msgid "Bookmarks"
+msgstr "Bookmarks"
+
+#: AppGUI/MainGUI.py:529 App_Main.py:2989 App_Main.py:2998
+msgid "Bookmarks Manager"
+msgstr "Bookmarks Manager"
+
+#: AppGUI/MainGUI.py:533
+msgid "Report a bug"
+msgstr "Report a bug"
+
+#: AppGUI/MainGUI.py:536
+msgid "Excellon Specification"
+msgstr "Excellon Specification"
+
+#: AppGUI/MainGUI.py:538
+msgid "Gerber Specification"
+msgstr "Gerber Specification"
+
+#: AppGUI/MainGUI.py:543
+msgid "Shortcuts List\tF3"
+msgstr "Shortcuts List\tF3"
+
+#: AppGUI/MainGUI.py:545
+msgid "YouTube Channel\tF4"
+msgstr "YouTube Channel\tF4"
+
+#: AppGUI/MainGUI.py:547 App_Main.py:2624
+msgid "About FlatCAM"
+msgstr "About FlatCAM"
+
+#: AppGUI/MainGUI.py:556
+msgid "Add Circle\tO"
+msgstr "Add Circle\tO"
+
+#: AppGUI/MainGUI.py:559
+msgid "Add Arc\tA"
+msgstr "Add Arc\tA"
+
+#: AppGUI/MainGUI.py:562
+msgid "Add Rectangle\tR"
+msgstr "Add Rectangle\tR"
+
+#: AppGUI/MainGUI.py:565
+msgid "Add Polygon\tN"
+msgstr "Add Polygon\tN"
+
+#: AppGUI/MainGUI.py:568
+msgid "Add Path\tP"
+msgstr "Add Path\tP"
+
+#: AppGUI/MainGUI.py:571
+msgid "Add Text\tT"
+msgstr "Add Text\tT"
+
+#: AppGUI/MainGUI.py:574
+msgid "Polygon Union\tU"
+msgstr "Polygon Union\tU"
+
+#: AppGUI/MainGUI.py:576
+msgid "Polygon Intersection\tE"
+msgstr "Polygon Intersection\tE"
+
+#: AppGUI/MainGUI.py:578
+msgid "Polygon Subtraction\tS"
+msgstr "Polygon Subtraction\tS"
+
+#: AppGUI/MainGUI.py:582
+msgid "Cut Path\tX"
+msgstr "Cut Path\tX"
+
+#: AppGUI/MainGUI.py:586
+msgid "Copy Geom\tC"
+msgstr "Copy Geom\tC"
+
+#: AppGUI/MainGUI.py:588
+msgid "Delete Shape\tDEL"
+msgstr "Delete Shape\tDEL"
+
+#: AppGUI/MainGUI.py:592 AppGUI/MainGUI.py:679
+msgid "Move\tM"
+msgstr "Move\tM"
+
+#: AppGUI/MainGUI.py:594
+msgid "Buffer Tool\tB"
+msgstr "Buffer Tool\tB"
+
+#: AppGUI/MainGUI.py:597
+msgid "Paint Tool\tI"
+msgstr "Paint Tool\tI"
+
+#: AppGUI/MainGUI.py:600
+msgid "Transform Tool\tAlt+R"
+msgstr "Transform Tool\tAlt+R"
+
+#: AppGUI/MainGUI.py:604
+msgid "Toggle Corner Snap\tK"
+msgstr "Toggle Corner Snap\tK"
+
+#: AppGUI/MainGUI.py:610
+msgid ">Excellon Editor<"
+msgstr ">Excellon Editor<"
+
+#: AppGUI/MainGUI.py:614
+msgid "Add Drill Array\tA"
+msgstr "Add Drill Array\tA"
+
+#: AppGUI/MainGUI.py:616
+msgid "Add Drill\tD"
+msgstr "Add Drill\tD"
+
+#: AppGUI/MainGUI.py:620
+msgid "Add Slot Array\tQ"
+msgstr "Add Slot Array\tQ"
+
+#: AppGUI/MainGUI.py:622
+msgid "Add Slot\tW"
+msgstr "Add Slot\tW"
+
+#: AppGUI/MainGUI.py:626
+msgid "Resize Drill(S)\tR"
+msgstr "Resize Drill(S)\tR"
+
+#: AppGUI/MainGUI.py:629 AppGUI/MainGUI.py:673
+msgid "Copy\tC"
+msgstr "Copy\tC"
+
+#: AppGUI/MainGUI.py:631 AppGUI/MainGUI.py:675
+msgid "Delete\tDEL"
+msgstr "Delete\tDEL"
+
+#: AppGUI/MainGUI.py:636
+msgid "Move Drill(s)\tM"
+msgstr "Move Drill(s)\tM"
+
+#: AppGUI/MainGUI.py:641
+msgid ">Gerber Editor<"
+msgstr ">Gerber Editor<"
+
+#: AppGUI/MainGUI.py:645
+msgid "Add Pad\tP"
+msgstr "Add Pad\tP"
+
+#: AppGUI/MainGUI.py:647
+msgid "Add Pad Array\tA"
+msgstr "Add Pad Array\tA"
+
+#: AppGUI/MainGUI.py:649
+msgid "Add Track\tT"
+msgstr "Add Track\tT"
+
+#: AppGUI/MainGUI.py:651
+msgid "Add Region\tN"
+msgstr "Add Region\tN"
+
+#: AppGUI/MainGUI.py:655
+msgid "Poligonize\tAlt+N"
+msgstr "Poligonize\tAlt+N"
+
+#: AppGUI/MainGUI.py:657
+msgid "Add SemiDisc\tE"
+msgstr "Add SemiDisc\tE"
+
+#: AppGUI/MainGUI.py:659
+msgid "Add Disc\tD"
+msgstr "Add Disc\tD"
+
+#: AppGUI/MainGUI.py:661
+msgid "Buffer\tB"
+msgstr "Buffer\tB"
+
+#: AppGUI/MainGUI.py:663
+msgid "Scale\tS"
+msgstr "Scale\tS"
+
+#: AppGUI/MainGUI.py:665
+msgid "Mark Area\tAlt+A"
+msgstr "Mark Area\tAlt+A"
+
+#: AppGUI/MainGUI.py:667
+msgid "Eraser\tCtrl+E"
+msgstr "Eraser\tCtrl+E"
+
+#: AppGUI/MainGUI.py:669
+msgid "Transform\tAlt+R"
+msgstr "Transform\tAlt+R"
+
+#: AppGUI/MainGUI.py:696
+msgid "Enable Plot"
+msgstr "Enable Plot"
+
+#: AppGUI/MainGUI.py:698
+msgid "Disable Plot"
+msgstr "Disable Plot"
+
+#: AppGUI/MainGUI.py:702
+msgid "Set Color"
+msgstr "Set Color"
+
+#: AppGUI/MainGUI.py:705 App_Main.py:9548
+msgid "Red"
+msgstr "Red"
+
+#: AppGUI/MainGUI.py:708 App_Main.py:9550
+msgid "Blue"
+msgstr "Blue"
+
+#: AppGUI/MainGUI.py:711 App_Main.py:9553
+msgid "Yellow"
+msgstr "Yellow"
+
+#: AppGUI/MainGUI.py:714 App_Main.py:9555
+msgid "Green"
+msgstr "Green"
+
+#: AppGUI/MainGUI.py:717 App_Main.py:9557
+msgid "Purple"
+msgstr "Purple"
+
+#: AppGUI/MainGUI.py:720 App_Main.py:9559
+msgid "Brown"
+msgstr "Brown"
+
+#: AppGUI/MainGUI.py:723 App_Main.py:9561 App_Main.py:9617
+msgid "White"
+msgstr "White"
+
+#: AppGUI/MainGUI.py:726 App_Main.py:9563
+msgid "Black"
+msgstr "Black"
+
+#: AppGUI/MainGUI.py:731 AppTools/ToolEtchCompensation.py:110 App_Main.py:9566
+msgid "Custom"
+msgstr "Custom"
+
+#: AppGUI/MainGUI.py:736 App_Main.py:9600
+msgid "Opacity"
+msgstr "Opacity"
+
+#: AppGUI/MainGUI.py:739 App_Main.py:9576
+msgid "Default"
+msgstr "Default"
+
+#: AppGUI/MainGUI.py:744
+msgid "Generate CNC"
+msgstr "Generate CNC"
+
+#: AppGUI/MainGUI.py:746
+msgid "View Source"
+msgstr "View Source"
+
+#: AppGUI/MainGUI.py:751 AppGUI/MainGUI.py:856 AppGUI/MainGUI.py:1069
+#: AppGUI/MainGUI.py:1485 AppGUI/MainGUI.py:1852 AppGUI/MainGUI.py:2061
+#: AppGUI/MainGUI.py:4430 AppGUI/ObjectUI.py:1719
+#: AppObjects/FlatCAMGeometry.py:553 AppTools/ToolPanelize.py:551
+#: AppTools/ToolPanelize.py:578 AppTools/ToolPanelize.py:671
+#: AppTools/ToolPanelize.py:700 AppTools/ToolPanelize.py:762
+msgid "Copy"
+msgstr "Copy"
+
+#: AppGUI/MainGUI.py:759 AppGUI/MainGUI.py:1498 AppTools/ToolProperties.py:31
+msgid "Properties"
+msgstr "Properties"
+
+#: AppGUI/MainGUI.py:788
+msgid "File Toolbar"
+msgstr "File Toolbar"
+
+#: AppGUI/MainGUI.py:792
+msgid "Edit Toolbar"
+msgstr "Edit Toolbar"
+
+#: AppGUI/MainGUI.py:796
+msgid "View Toolbar"
+msgstr "View Toolbar"
+
+#: AppGUI/MainGUI.py:800
+msgid "Shell Toolbar"
+msgstr "Shell Toolbar"
+
+#: AppGUI/MainGUI.py:804
+msgid "Tools Toolbar"
+msgstr "Tools Toolbar"
+
+#: AppGUI/MainGUI.py:808
+msgid "Excellon Editor Toolbar"
+msgstr "Excellon Editor Toolbar"
+
+#: AppGUI/MainGUI.py:814
+msgid "Geometry Editor Toolbar"
+msgstr "Geometry Editor Toolbar"
+
+#: AppGUI/MainGUI.py:818
+msgid "Gerber Editor Toolbar"
+msgstr "Gerber Editor Toolbar"
+
+#: AppGUI/MainGUI.py:822
+msgid "Grid Toolbar"
+msgstr "Grid Toolbar"
+
+#: AppGUI/MainGUI.py:836 AppGUI/MainGUI.py:1831 App_Main.py:6513
+#: App_Main.py:6517
+msgid "Open Gerber"
+msgstr "Open Gerber"
+
+#: AppGUI/MainGUI.py:838 AppGUI/MainGUI.py:1833 App_Main.py:6551
+#: App_Main.py:6555
+msgid "Open Excellon"
+msgstr "Open Excellon"
+
+#: AppGUI/MainGUI.py:841 AppGUI/MainGUI.py:1836
+msgid "Open project"
+msgstr "Open project"
+
+#: AppGUI/MainGUI.py:843 AppGUI/MainGUI.py:1838
+msgid "Save project"
+msgstr "Save project"
+
+#: AppGUI/MainGUI.py:851 AppGUI/MainGUI.py:1847
+msgid "Save Object and close the Editor"
+msgstr "Save Object and close the Editor"
+
+#: AppGUI/MainGUI.py:858 AppGUI/MainGUI.py:1854
+msgid "&Delete"
+msgstr "&Delete"
+
+#: AppGUI/MainGUI.py:861 AppGUI/MainGUI.py:1857 AppGUI/MainGUI.py:4021
+#: AppGUI/MainGUI.py:4227 AppTools/ToolDistance.py:35
+#: AppTools/ToolDistance.py:197
+msgid "Distance Tool"
+msgstr "Distance Tool"
+
+#: AppGUI/MainGUI.py:863 AppGUI/MainGUI.py:1859
+msgid "Distance Min Tool"
+msgstr "Distance Min Tool"
+
+#: AppGUI/MainGUI.py:865 AppGUI/MainGUI.py:1861 AppGUI/MainGUI.py:4014
+msgid "Set Origin"
+msgstr "Set Origin"
+
+#: AppGUI/MainGUI.py:867 AppGUI/MainGUI.py:1863
+msgid "Move to Origin"
+msgstr "Move to Origin"
+
+#: AppGUI/MainGUI.py:870 AppGUI/MainGUI.py:1865
+msgid "Jump to Location"
+msgstr "Jump to Location"
+
+#: AppGUI/MainGUI.py:872 AppGUI/MainGUI.py:1867 AppGUI/MainGUI.py:4026
+msgid "Locate in Object"
+msgstr "Locate in Object"
+
+#: AppGUI/MainGUI.py:878 AppGUI/MainGUI.py:1873
+msgid "&Replot"
+msgstr "&Replot"
+
+#: AppGUI/MainGUI.py:880 AppGUI/MainGUI.py:1875
+msgid "&Clear plot"
+msgstr "&Clear plot"
+
+#: AppGUI/MainGUI.py:882 AppGUI/MainGUI.py:1877 AppGUI/MainGUI.py:4017
+msgid "Zoom In"
+msgstr "Zoom In"
+
+#: AppGUI/MainGUI.py:884 AppGUI/MainGUI.py:1879 AppGUI/MainGUI.py:4017
+msgid "Zoom Out"
+msgstr "Zoom Out"
+
+#: AppGUI/MainGUI.py:886 AppGUI/MainGUI.py:1388 AppGUI/MainGUI.py:1881
+#: AppGUI/MainGUI.py:4016
+msgid "Zoom Fit"
+msgstr "Zoom Fit"
+
+#: AppGUI/MainGUI.py:894 AppGUI/MainGUI.py:1887
+msgid "&Command Line"
+msgstr "&Command Line"
+
+#: AppGUI/MainGUI.py:906 AppGUI/MainGUI.py:1899
+msgid "2Sided Tool"
+msgstr "2Sided Tool"
+
+#: AppGUI/MainGUI.py:908 AppGUI/MainGUI.py:1901 AppGUI/MainGUI.py:4032
+msgid "Align Objects Tool"
+msgstr "Align Objects Tool"
+
+#: AppGUI/MainGUI.py:910 AppGUI/MainGUI.py:1903 AppGUI/MainGUI.py:4033
+#: AppTools/ToolExtractDrills.py:393
+msgid "Extract Drills Tool"
+msgstr "Extract Drills Tool"
+
+#: AppGUI/MainGUI.py:913 AppGUI/ObjectUI.py:596 AppTools/ToolCutOut.py:440
+msgid "Cutout Tool"
+msgstr "Cutout Tool"
+
+#: AppGUI/MainGUI.py:915 AppGUI/MainGUI.py:1908 AppGUI/ObjectUI.py:574
+#: AppGUI/ObjectUI.py:2287 AppTools/ToolNCC.py:974
+msgid "NCC Tool"
+msgstr "NCC Tool"
+
+#: AppGUI/MainGUI.py:921 AppGUI/MainGUI.py:1914
+msgid "Panel Tool"
+msgstr "Panel Tool"
+
+#: AppGUI/MainGUI.py:923 AppGUI/MainGUI.py:1916 AppTools/ToolFilm.py:569
+msgid "Film Tool"
+msgstr "Film Tool"
+
+#: AppGUI/MainGUI.py:925 AppGUI/MainGUI.py:1918 AppTools/ToolSolderPaste.py:553
+msgid "SolderPaste Tool"
+msgstr "SolderPaste Tool"
+
+#: AppGUI/MainGUI.py:927 AppGUI/MainGUI.py:1920 AppTools/ToolSub.py:35
+msgid "Subtract Tool"
+msgstr "Subtract Tool"
+
+#: AppGUI/MainGUI.py:929 AppGUI/MainGUI.py:1922 AppTools/ToolRulesCheck.py:616
+msgid "Rules Tool"
+msgstr "Rules Tool"
+
+#: AppGUI/MainGUI.py:931 AppGUI/MainGUI.py:1924 AppGUI/MainGUI.py:4035
+#: AppTools/ToolOptimal.py:33 AppTools/ToolOptimal.py:307
+msgid "Optimal Tool"
+msgstr "Optimal Tool"
+
+#: AppGUI/MainGUI.py:936 AppGUI/MainGUI.py:1929 AppGUI/MainGUI.py:4032
+msgid "Calculators Tool"
+msgstr "Calculators Tool"
+
+#: AppGUI/MainGUI.py:940 AppGUI/MainGUI.py:1933 AppGUI/MainGUI.py:4036
+#: AppTools/ToolQRCode.py:43 AppTools/ToolQRCode.py:382
+msgid "QRCode Tool"
+msgstr "QRCode Tool"
+
+#: AppGUI/MainGUI.py:942 AppGUI/MainGUI.py:1935
+#: AppTools/ToolCopperThieving.py:39 AppTools/ToolCopperThieving.py:568
+msgid "Copper Thieving Tool"
+msgstr "Copper Thieving Tool"
+
+#: AppGUI/MainGUI.py:945 AppGUI/MainGUI.py:1938 AppGUI/MainGUI.py:4033
+#: AppTools/ToolFiducials.py:33 AppTools/ToolFiducials.py:396
+msgid "Fiducials Tool"
+msgstr "Fiducials Tool"
+
+#: AppGUI/MainGUI.py:947 AppGUI/MainGUI.py:1940 AppTools/ToolCalibration.py:37
+#: AppTools/ToolCalibration.py:759
+msgid "Calibration Tool"
+msgstr "Calibration Tool"
+
+#: AppGUI/MainGUI.py:949 AppGUI/MainGUI.py:1942 AppGUI/MainGUI.py:4033
+msgid "Punch Gerber Tool"
+msgstr "Punch Gerber Tool"
+
+#: AppGUI/MainGUI.py:951 AppGUI/MainGUI.py:1944 AppTools/ToolInvertGerber.py:31
+msgid "Invert Gerber Tool"
+msgstr "Invert Gerber Tool"
+
+#: AppGUI/MainGUI.py:953 AppGUI/MainGUI.py:1946 AppGUI/MainGUI.py:4035
+#: AppTools/ToolCorners.py:31
+msgid "Corner Markers Tool"
+msgstr "Corner Markers Tool"
+
+#: AppGUI/MainGUI.py:955 AppGUI/MainGUI.py:1948
+#: AppTools/ToolEtchCompensation.py:31
+#| msgid "Editor Transformation Tool"
+msgid "Etch Compensation Tool"
+msgstr "Etch Compensation Tool"
+
+#: AppGUI/MainGUI.py:961 AppGUI/MainGUI.py:987 AppGUI/MainGUI.py:1039
+#: AppGUI/MainGUI.py:1954 AppGUI/MainGUI.py:2032
+msgid "Select"
+msgstr "Select"
+
+#: AppGUI/MainGUI.py:963 AppGUI/MainGUI.py:1956
+msgid "Add Drill Hole"
+msgstr "Add Drill Hole"
+
+#: AppGUI/MainGUI.py:965 AppGUI/MainGUI.py:1958
+msgid "Add Drill Hole Array"
+msgstr "Add Drill Hole Array"
+
+#: AppGUI/MainGUI.py:967 AppGUI/MainGUI.py:1476 AppGUI/MainGUI.py:1962
+#: AppGUI/MainGUI.py:4312
+msgid "Add Slot"
+msgstr "Add Slot"
+
+#: AppGUI/MainGUI.py:969 AppGUI/MainGUI.py:1478 AppGUI/MainGUI.py:1964
+#: AppGUI/MainGUI.py:4311
+msgid "Add Slot Array"
+msgstr "Add Slot Array"
+
+#: AppGUI/MainGUI.py:971 AppGUI/MainGUI.py:1481 AppGUI/MainGUI.py:1960
+msgid "Resize Drill"
+msgstr "Resize Drill"
+
+#: AppGUI/MainGUI.py:975 AppGUI/MainGUI.py:1968
+msgid "Copy Drill"
+msgstr "Copy Drill"
+
+#: AppGUI/MainGUI.py:977 AppGUI/MainGUI.py:1970
+msgid "Delete Drill"
+msgstr "Delete Drill"
+
+#: AppGUI/MainGUI.py:981 AppGUI/MainGUI.py:1974
+msgid "Move Drill"
+msgstr "Move Drill"
+
+#: AppGUI/MainGUI.py:989 AppGUI/MainGUI.py:1982
+msgid "Add Circle"
+msgstr "Add Circle"
+
+#: AppGUI/MainGUI.py:991 AppGUI/MainGUI.py:1984
+msgid "Add Arc"
+msgstr "Add Arc"
+
+#: AppGUI/MainGUI.py:993 AppGUI/MainGUI.py:1986
+msgid "Add Rectangle"
+msgstr "Add Rectangle"
+
+#: AppGUI/MainGUI.py:997 AppGUI/MainGUI.py:1990
+msgid "Add Path"
+msgstr "Add Path"
+
+#: AppGUI/MainGUI.py:999 AppGUI/MainGUI.py:1992
+msgid "Add Polygon"
+msgstr "Add Polygon"
+
+#: AppGUI/MainGUI.py:1002 AppGUI/MainGUI.py:1995
+msgid "Add Text"
+msgstr "Add Text"
+
+#: AppGUI/MainGUI.py:1004 AppGUI/MainGUI.py:1997
+msgid "Add Buffer"
+msgstr "Add Buffer"
+
+#: AppGUI/MainGUI.py:1006 AppGUI/MainGUI.py:1999
+msgid "Paint Shape"
+msgstr "Paint Shape"
+
+#: AppGUI/MainGUI.py:1008 AppGUI/MainGUI.py:1065 AppGUI/MainGUI.py:1417
+#: AppGUI/MainGUI.py:1462 AppGUI/MainGUI.py:2001 AppGUI/MainGUI.py:2057
+msgid "Eraser"
+msgstr "Eraser"
+
+#: AppGUI/MainGUI.py:1012 AppGUI/MainGUI.py:2005
+msgid "Polygon Union"
+msgstr "Polygon Union"
+
+#: AppGUI/MainGUI.py:1014 AppGUI/MainGUI.py:2007
+msgid "Polygon Explode"
+msgstr "Polygon Explode"
+
+#: AppGUI/MainGUI.py:1017 AppGUI/MainGUI.py:2010
+msgid "Polygon Intersection"
+msgstr "Polygon Intersection"
+
+#: AppGUI/MainGUI.py:1019 AppGUI/MainGUI.py:2012
+msgid "Polygon Subtraction"
+msgstr "Polygon Subtraction"
+
+#: AppGUI/MainGUI.py:1023 AppGUI/MainGUI.py:2016
+msgid "Cut Path"
+msgstr "Cut Path"
+
+#: AppGUI/MainGUI.py:1025
+msgid "Copy Shape(s)"
+msgstr "Copy Shape(s)"
+
+#: AppGUI/MainGUI.py:1028
+msgid "Delete Shape '-'"
+msgstr "Delete Shape '-'"
+
+#: AppGUI/MainGUI.py:1030 AppGUI/MainGUI.py:1073 AppGUI/MainGUI.py:1429
+#: AppGUI/MainGUI.py:1466 AppGUI/MainGUI.py:2022 AppGUI/MainGUI.py:2065
+#: AppGUI/ObjectUI.py:109
+msgid "Transformations"
+msgstr "Transformations"
+
+#: AppGUI/MainGUI.py:1033
+msgid "Move Objects "
+msgstr "Move Objects "
+
+#: AppGUI/MainGUI.py:1041 AppGUI/MainGUI.py:2034 AppGUI/MainGUI.py:4431
+msgid "Add Pad"
+msgstr "Add Pad"
+
+#: AppGUI/MainGUI.py:1045 AppGUI/MainGUI.py:2038 AppGUI/MainGUI.py:4432
+msgid "Add Track"
+msgstr "Add Track"
+
+#: AppGUI/MainGUI.py:1047 AppGUI/MainGUI.py:2040 AppGUI/MainGUI.py:4431
+msgid "Add Region"
+msgstr "Add Region"
+
+#: AppGUI/MainGUI.py:1049 AppGUI/MainGUI.py:1448 AppGUI/MainGUI.py:2042
+msgid "Poligonize"
+msgstr "Poligonize"
+
+#: AppGUI/MainGUI.py:1052 AppGUI/MainGUI.py:1450 AppGUI/MainGUI.py:2045
+msgid "SemiDisc"
+msgstr "SemiDisc"
+
+#: AppGUI/MainGUI.py:1054 AppGUI/MainGUI.py:1452 AppGUI/MainGUI.py:2047
+msgid "Disc"
+msgstr "Disc"
+
+#: AppGUI/MainGUI.py:1062 AppGUI/MainGUI.py:1460 AppGUI/MainGUI.py:2055
+msgid "Mark Area"
+msgstr "Mark Area"
+
+#: AppGUI/MainGUI.py:1076 AppGUI/MainGUI.py:1433 AppGUI/MainGUI.py:1496
+#: AppGUI/MainGUI.py:2068 AppGUI/MainGUI.py:4431 AppTools/ToolMove.py:27
+msgid "Move"
+msgstr "Move"
+
+#: AppGUI/MainGUI.py:1084
+msgid "Snap to grid"
+msgstr "Snap to grid"
+
+#: AppGUI/MainGUI.py:1087
+msgid "Grid X snapping distance"
+msgstr "Grid X snapping distance"
+
+#: AppGUI/MainGUI.py:1092
+msgid "Grid Y snapping distance"
+msgstr "Grid Y snapping distance"
+
+#: AppGUI/MainGUI.py:1098
+msgid ""
+"When active, value on Grid_X\n"
+"is copied to the Grid_Y value."
+msgstr ""
+"When active, value on Grid_X\n"
+"is copied to the Grid_Y value."
+
+#: AppGUI/MainGUI.py:1105
+msgid "Snap to corner"
+msgstr "Snap to corner"
+
+#: AppGUI/MainGUI.py:1109 AppGUI/preferences/general/GeneralAPPSetGroupUI.py:78
+msgid "Max. magnet distance"
+msgstr "Max. magnet distance"
+
+#: AppGUI/MainGUI.py:1134 AppGUI/MainGUI.py:1379 App_Main.py:7543
+msgid "Project"
+msgstr "Project"
+
+#: AppGUI/MainGUI.py:1149
+msgid "Selected"
+msgstr "Selected"
+
+#: AppGUI/MainGUI.py:1177 AppGUI/MainGUI.py:1185
+msgid "Plot Area"
+msgstr "Plot Area"
+
+#: AppGUI/MainGUI.py:1212
+msgid "General"
+msgstr "General"
+
+#: AppGUI/MainGUI.py:1227 AppTools/ToolCopperThieving.py:74
+#: AppTools/ToolCorners.py:55 AppTools/ToolDblSided.py:64
+#: AppTools/ToolEtchCompensation.py:72 AppTools/ToolExtractDrills.py:61
+#: AppTools/ToolInvertGerber.py:72 AppTools/ToolOptimal.py:71
+#: AppTools/ToolPunchGerber.py:64
+msgid "GERBER"
+msgstr "GERBER"
+
+#: AppGUI/MainGUI.py:1237 AppTools/ToolDblSided.py:92
+msgid "EXCELLON"
+msgstr "EXCELLON"
+
+#: AppGUI/MainGUI.py:1247 AppTools/ToolDblSided.py:120
+msgid "GEOMETRY"
+msgstr "GEOMETRY"
+
+#: AppGUI/MainGUI.py:1257
+msgid "CNC-JOB"
+msgstr "CNC-JOB"
+
+#: AppGUI/MainGUI.py:1266 AppGUI/ObjectUI.py:563 AppGUI/ObjectUI.py:2262
+msgid "TOOLS"
+msgstr "TOOLS"
+
+#: AppGUI/MainGUI.py:1275
+msgid "TOOLS 2"
+msgstr "TOOLS 2"
+
+#: AppGUI/MainGUI.py:1285
+msgid "UTILITIES"
+msgstr "UTILITIES"
+
+#: AppGUI/MainGUI.py:1302
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:192
+msgid "Restore Defaults"
+msgstr "Restore Defaults"
+
+#: AppGUI/MainGUI.py:1305
+msgid ""
+"Restore the entire set of default values\n"
+"to the initial values loaded after first launch."
+msgstr ""
+"Restore the entire set of default values\n"
+"to the initial values loaded after first launch."
+
+#: AppGUI/MainGUI.py:1310
+msgid "Open Pref Folder"
+msgstr "Open Pref Folder"
+
+#: AppGUI/MainGUI.py:1313
+msgid "Open the folder where FlatCAM save the preferences files."
+msgstr "Open the folder where FlatCAM save the preferences files."
+
+#: AppGUI/MainGUI.py:1317 AppGUI/MainGUI.py:1804
+msgid "Clear GUI Settings"
+msgstr "Clear GUI Settings"
+
+#: AppGUI/MainGUI.py:1321
+msgid ""
+"Clear the GUI settings for FlatCAM,\n"
+"such as: layout, gui state, style, hdpi support etc."
+msgstr ""
+"Clear the GUI settings for FlatCAM,\n"
+"such as: layout, gui state, style, hdpi support etc."
+
+#: AppGUI/MainGUI.py:1332
+msgid "Apply"
+msgstr "Apply"
+
+#: AppGUI/MainGUI.py:1335
+msgid "Apply the current preferences without saving to a file."
+msgstr "Apply the current preferences without saving to a file."
+
+#: AppGUI/MainGUI.py:1342
+msgid ""
+"Save the current settings in the 'current_defaults' file\n"
+"which is the file storing the working default preferences."
+msgstr ""
+"Save the current settings in the 'current_defaults' file\n"
+"which is the file storing the working default preferences."
+
+#: AppGUI/MainGUI.py:1350
+msgid "Will not save the changes and will close the preferences window."
+msgstr "Will not save the changes and will close the preferences window."
+
+#: AppGUI/MainGUI.py:1364
+msgid "Toggle Visibility"
+msgstr "Toggle Visibility"
+
+#: AppGUI/MainGUI.py:1370
+msgid "New"
+msgstr "New"
+
+#: AppGUI/MainGUI.py:1372 AppGUI/ObjectUI.py:450
+#: AppObjects/FlatCAMGerber.py:239 AppObjects/FlatCAMGerber.py:327
+#: AppTools/ToolCalibration.py:631 AppTools/ToolCalibration.py:648
+#: AppTools/ToolCalibration.py:815 AppTools/ToolCopperThieving.py:144
+#: AppTools/ToolCopperThieving.py:158 AppTools/ToolCopperThieving.py:604
+#: AppTools/ToolCutOut.py:92 AppTools/ToolDblSided.py:226
+#: AppTools/ToolFilm.py:69 AppTools/ToolFilm.py:92 AppTools/ToolImage.py:49
+#: AppTools/ToolImage.py:271 AppTools/ToolNCC.py:95 AppTools/ToolNCC.py:558
+#: AppTools/ToolNCC.py:1300 AppTools/ToolPaint.py:501 AppTools/ToolPaint.py:705
+#: AppTools/ToolPanelize.py:116 AppTools/ToolPanelize.py:385
+#: AppTools/ToolPanelize.py:402
+msgid "Geometry"
+msgstr "Geometry"
+
+#: AppGUI/MainGUI.py:1376
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:99
+#: AppTools/ToolAlignObjects.py:74 AppTools/ToolAlignObjects.py:110
+#: AppTools/ToolCalibration.py:197 AppTools/ToolCalibration.py:631
+#: AppTools/ToolCalibration.py:648 AppTools/ToolCalibration.py:807
+#: AppTools/ToolCalibration.py:815 AppTools/ToolCopperThieving.py:144
+#: AppTools/ToolCopperThieving.py:158 AppTools/ToolCopperThieving.py:604
+#: AppTools/ToolDblSided.py:225 AppTools/ToolFilm.py:342
+#: AppTools/ToolNCC.py:558 AppTools/ToolNCC.py:1300 AppTools/ToolPaint.py:501
+#: AppTools/ToolPaint.py:705 AppTools/ToolPanelize.py:385
+#: AppTools/ToolPunchGerber.py:149 AppTools/ToolPunchGerber.py:164
+msgid "Excellon"
+msgstr "Excellon"
+
+#: AppGUI/MainGUI.py:1383
+msgid "Grids"
+msgstr "Grids"
+
+#: AppGUI/MainGUI.py:1390
+msgid "Clear Plot"
+msgstr "Clear Plot"
+
+#: AppGUI/MainGUI.py:1392
+msgid "Replot"
+msgstr "Replot"
+
+#: AppGUI/MainGUI.py:1396
+msgid "Geo Editor"
+msgstr "Geo Editor"
+
+#: AppGUI/MainGUI.py:1398
+msgid "Path"
+msgstr "Path"
+
+#: AppGUI/MainGUI.py:1400
+msgid "Rectangle"
+msgstr "Rectangle"
+
+#: AppGUI/MainGUI.py:1403
+msgid "Circle"
+msgstr "Circle"
+
+#: AppGUI/MainGUI.py:1407
+msgid "Arc"
+msgstr "Arc"
+
+#: AppGUI/MainGUI.py:1421
+msgid "Union"
+msgstr "Union"
+
+#: AppGUI/MainGUI.py:1423
+msgid "Intersection"
+msgstr "Intersection"
+
+#: AppGUI/MainGUI.py:1425
+msgid "Subtraction"
+msgstr "Subtraction"
+
+#: AppGUI/MainGUI.py:1427 AppGUI/ObjectUI.py:2351
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:56
+msgid "Cut"
+msgstr "Cut"
+
+#: AppGUI/MainGUI.py:1438
+msgid "Pad"
+msgstr "Pad"
+
+#: AppGUI/MainGUI.py:1440
+msgid "Pad Array"
+msgstr "Pad Array"
+
+#: AppGUI/MainGUI.py:1444
+msgid "Track"
+msgstr "Track"
+
+#: AppGUI/MainGUI.py:1446
+msgid "Region"
+msgstr "Region"
+
+#: AppGUI/MainGUI.py:1469
+msgid "Exc Editor"
+msgstr "Exc Editor"
+
+#: AppGUI/MainGUI.py:1471 AppGUI/MainGUI.py:4310
+msgid "Add Drill"
+msgstr "Add Drill"
+
+#: AppGUI/MainGUI.py:1491 App_Main.py:2198
+msgid "Close Editor"
+msgstr "Close Editor"
+
+#: AppGUI/MainGUI.py:1516
+msgid ""
+"Absolute measurement.\n"
+"Reference is (X=0, Y= 0) position"
+msgstr ""
+"Absolute measurement.\n"
+"Reference is (X=0, Y= 0) position"
+
+#: AppGUI/MainGUI.py:1523
+msgid "HUD (Heads up display)"
+msgstr "HUD (Heads up display)"
+
+#: AppGUI/MainGUI.py:1622
+msgid "Lock Toolbars"
+msgstr "Lock Toolbars"
+
+#: AppGUI/MainGUI.py:1792
+msgid "FlatCAM Preferences Folder opened."
+msgstr "FlatCAM Preferences Folder opened."
+
+#: AppGUI/MainGUI.py:1803
+msgid "Are you sure you want to delete the GUI Settings? \n"
+msgstr "Are you sure you want to delete the GUI Settings? \n"
+
+#: AppGUI/MainGUI.py:1806 AppGUI/preferences/PreferencesUIManager.py:941
+#: AppGUI/preferences/PreferencesUIManager.py:1179 AppTranslation.py:109
+#: AppTranslation.py:206 App_Main.py:2201 App_Main.py:3052 App_Main.py:5276
+#: App_Main.py:6336
+msgid "Yes"
+msgstr "Yes"
+
+#: AppGUI/MainGUI.py:1807 AppGUI/preferences/PreferencesUIManager.py:1180
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:164
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:150
+#: AppTools/ToolNCC.py:182 AppTools/ToolPaint.py:165 AppTranslation.py:110
+#: AppTranslation.py:207 App_Main.py:2202 App_Main.py:3053 App_Main.py:5277
+#: App_Main.py:6337
+msgid "No"
+msgstr "No"
+
+#: AppGUI/MainGUI.py:1906
+msgid "&Cutout Tool"
+msgstr "&Cutout Tool"
+
+#: AppGUI/MainGUI.py:1980
+msgid "Select 'Esc'"
+msgstr "Select 'Esc'"
+
+#: AppGUI/MainGUI.py:2018
+msgid "Copy Objects"
+msgstr "Copy Objects"
+
+#: AppGUI/MainGUI.py:2020 AppGUI/MainGUI.py:4230
+msgid "Delete Shape"
+msgstr "Delete Shape"
+
+#: AppGUI/MainGUI.py:2026
+msgid "Move Objects"
+msgstr "Move Objects"
+
+#: AppGUI/MainGUI.py:2610
+msgid ""
+"Please first select a geometry item to be cutted\n"
+"then select the geometry item that will be cutted\n"
+"out of the first item. In the end press ~X~ key or\n"
+"the toolbar button."
+msgstr ""
+"Please first select a geometry item to be cutted\n"
+"then select the geometry item that will be cutted\n"
+"out of the first item. In the end press ~X~ key or\n"
+"the toolbar button."
+
+#: AppGUI/MainGUI.py:2617 AppGUI/MainGUI.py:2779 AppGUI/MainGUI.py:2824
+#: AppGUI/MainGUI.py:2844
+msgid "Warning"
+msgstr "Warning"
+
+#: AppGUI/MainGUI.py:2774
+msgid ""
+"Please select geometry items \n"
+"on which to perform Intersection Tool."
+msgstr ""
+"Please select geometry items \n"
+"on which to perform Intersection Tool."
+
+#: AppGUI/MainGUI.py:2819
+msgid ""
+"Please select geometry items \n"
+"on which to perform Substraction Tool."
+msgstr ""
+"Please select geometry items \n"
+"on which to perform Substraction Tool."
+
+#: AppGUI/MainGUI.py:2839
+msgid ""
+"Please select geometry items \n"
+"on which to perform union."
+msgstr ""
+"Please select geometry items \n"
+"on which to perform union."
+
+#: AppGUI/MainGUI.py:2922 AppGUI/MainGUI.py:3137
+msgid "Cancelled. Nothing selected to delete."
+msgstr "Cancelled. Nothing selected to delete."
+
+#: AppGUI/MainGUI.py:3006 AppGUI/MainGUI.py:3253
+msgid "Cancelled. Nothing selected to copy."
+msgstr "Cancelled. Nothing selected to copy."
+
+#: AppGUI/MainGUI.py:3052 AppGUI/MainGUI.py:3282
+msgid "Cancelled. Nothing selected to move."
+msgstr "Cancelled. Nothing selected to move."
+
+#: AppGUI/MainGUI.py:3308
+msgid "New Tool ..."
+msgstr "New Tool ..."
+
+#: AppGUI/MainGUI.py:3309 AppTools/ToolNCC.py:924 AppTools/ToolPaint.py:849
+#: AppTools/ToolSolderPaste.py:560
+msgid "Enter a Tool Diameter"
+msgstr "Enter a Tool Diameter"
+
+#: AppGUI/MainGUI.py:3321
+msgid "Adding Tool cancelled ..."
+msgstr "Adding Tool cancelled ..."
+
+#: AppGUI/MainGUI.py:3335
+msgid "Distance Tool exit..."
+msgstr "Distance Tool exit..."
+
+#: AppGUI/MainGUI.py:3514 App_Main.py:3042
+msgid "Application is saving the project. Please wait ..."
+msgstr "Application is saving the project. Please wait ..."
+
+#: AppGUI/MainGUI.py:3649 App_Main.py:9059
+msgid "Shortcut Key List"
+msgstr "Shortcut Key List"
+
+#: AppGUI/MainGUI.py:4010
+msgid "General Shortcut list"
+msgstr "General Shortcut list"
+
+#: AppGUI/MainGUI.py:4011
+msgid "SHOW SHORTCUT LIST"
+msgstr "SHOW SHORTCUT LIST"
+
+#: AppGUI/MainGUI.py:4011
+msgid "Switch to Project Tab"
+msgstr "Switch to Project Tab"
+
+#: AppGUI/MainGUI.py:4011
+msgid "Switch to Selected Tab"
+msgstr "Switch to Selected Tab"
+
+#: AppGUI/MainGUI.py:4012
+msgid "Switch to Tool Tab"
+msgstr "Switch to Tool Tab"
+
+#: AppGUI/MainGUI.py:4013
+msgid "New Gerber"
+msgstr "New Gerber"
+
+#: AppGUI/MainGUI.py:4013
+msgid "Edit Object (if selected)"
+msgstr "Edit Object (if selected)"
+
+#: AppGUI/MainGUI.py:4013 App_Main.py:5581
+msgid "Grid On/Off"
+msgstr "Grid On/Off"
+
+#: AppGUI/MainGUI.py:4013
+msgid "Jump to Coordinates"
+msgstr "Jump to Coordinates"
+
+#: AppGUI/MainGUI.py:4014
+msgid "New Excellon"
+msgstr "New Excellon"
+
+#: AppGUI/MainGUI.py:4014
+msgid "Move Obj"
+msgstr "Move Obj"
+
+#: AppGUI/MainGUI.py:4014
+msgid "New Geometry"
+msgstr "New Geometry"
+
+#: AppGUI/MainGUI.py:4014
+msgid "Change Units"
+msgstr "Change Units"
+
+#: AppGUI/MainGUI.py:4015
+msgid "Open Properties Tool"
+msgstr "Open Properties Tool"
+
+#: AppGUI/MainGUI.py:4015
+msgid "Rotate by 90 degree CW"
+msgstr "Rotate by 90 degree CW"
+
+#: AppGUI/MainGUI.py:4015
+msgid "Shell Toggle"
+msgstr "Shell Toggle"
+
+#: AppGUI/MainGUI.py:4016
+msgid ""
+"Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)"
+msgstr ""
+"Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)"
+
+#: AppGUI/MainGUI.py:4017
+msgid "Flip on X_axis"
+msgstr "Flip on X_axis"
+
+#: AppGUI/MainGUI.py:4017
+msgid "Flip on Y_axis"
+msgstr "Flip on Y_axis"
+
+#: AppGUI/MainGUI.py:4020
+msgid "Copy Obj"
+msgstr "Copy Obj"
+
+#: AppGUI/MainGUI.py:4020
+msgid "Open Tools Database"
+msgstr "Open Tools Database"
+
+#: AppGUI/MainGUI.py:4021
+msgid "Open Excellon File"
+msgstr "Open Excellon File"
+
+#: AppGUI/MainGUI.py:4021
+msgid "Open Gerber File"
+msgstr "Open Gerber File"
+
+#: AppGUI/MainGUI.py:4021
+msgid "New Project"
+msgstr "New Project"
+
+#: AppGUI/MainGUI.py:4022 App_Main.py:6626 App_Main.py:6629
+msgid "Open Project"
+msgstr "Open Project"
+
+#: AppGUI/MainGUI.py:4022 AppTools/ToolPDF.py:41
+msgid "PDF Import Tool"
+msgstr "PDF Import Tool"
+
+#: AppGUI/MainGUI.py:4022
+msgid "Save Project"
+msgstr "Save Project"
+
+#: AppGUI/MainGUI.py:4022
+msgid "Toggle Plot Area"
+msgstr "Toggle Plot Area"
+
+#: AppGUI/MainGUI.py:4025
+msgid "Copy Obj_Name"
+msgstr "Copy Obj_Name"
+
+#: AppGUI/MainGUI.py:4026
+msgid "Toggle Code Editor"
+msgstr "Toggle Code Editor"
+
+#: AppGUI/MainGUI.py:4026
+msgid "Toggle the axis"
+msgstr "Toggle the axis"
+
+#: AppGUI/MainGUI.py:4026 AppGUI/MainGUI.py:4225 AppGUI/MainGUI.py:4312
+#: AppGUI/MainGUI.py:4434
+msgid "Distance Minimum Tool"
+msgstr "Distance Minimum Tool"
+
+#: AppGUI/MainGUI.py:4027
+msgid "Open Preferences Window"
+msgstr "Open Preferences Window"
+
+#: AppGUI/MainGUI.py:4028
+msgid "Rotate by 90 degree CCW"
+msgstr "Rotate by 90 degree CCW"
+
+#: AppGUI/MainGUI.py:4028
+msgid "Run a Script"
+msgstr "Run a Script"
+
+#: AppGUI/MainGUI.py:4028
+msgid "Toggle the workspace"
+msgstr "Toggle the workspace"
+
+#: AppGUI/MainGUI.py:4028
+msgid "Skew on X axis"
+msgstr "Skew on X axis"
+
+#: AppGUI/MainGUI.py:4029
+msgid "Skew on Y axis"
+msgstr "Skew on Y axis"
+
+#: AppGUI/MainGUI.py:4032
+msgid "2-Sided PCB Tool"
+msgstr "2-Sided PCB Tool"
+
+#: AppGUI/MainGUI.py:4032
+msgid "Transformations Tool"
+msgstr "Transformations Tool"
+
+#: AppGUI/MainGUI.py:4034
+msgid "Solder Paste Dispensing Tool"
+msgstr "Solder Paste Dispensing Tool"
+
+#: AppGUI/MainGUI.py:4035
+msgid "Film PCB Tool"
+msgstr "Film PCB Tool"
+
+#: AppGUI/MainGUI.py:4035
+msgid "Non-Copper Clearing Tool"
+msgstr "Non-Copper Clearing Tool"
+
+#: AppGUI/MainGUI.py:4036
+msgid "Paint Area Tool"
+msgstr "Paint Area Tool"
+
+#: AppGUI/MainGUI.py:4036
+msgid "Rules Check Tool"
+msgstr "Rules Check Tool"
+
+#: AppGUI/MainGUI.py:4037
+msgid "View File Source"
+msgstr "View File Source"
+
+#: AppGUI/MainGUI.py:4038
+msgid "Cutout PCB Tool"
+msgstr "Cutout PCB Tool"
+
+#: AppGUI/MainGUI.py:4038
+msgid "Enable all Plots"
+msgstr "Enable all Plots"
+
+#: AppGUI/MainGUI.py:4038
+msgid "Disable all Plots"
+msgstr "Disable all Plots"
+
+#: AppGUI/MainGUI.py:4038
+msgid "Disable Non-selected Plots"
+msgstr "Disable Non-selected Plots"
+
+#: AppGUI/MainGUI.py:4039
+msgid "Toggle Full Screen"
+msgstr "Toggle Full Screen"
+
+#: AppGUI/MainGUI.py:4042
+msgid "Abort current task (gracefully)"
+msgstr "Abort current task (gracefully)"
+
+#: AppGUI/MainGUI.py:4045
+msgid "Save Project As"
+msgstr "Save Project As"
+
+#: AppGUI/MainGUI.py:4046
+msgid ""
+"Paste Special. Will convert a Windows path style to the one required in Tcl "
+"Shell"
+msgstr ""
+"Paste Special. Will convert a Windows path style to the one required in Tcl "
+"Shell"
+
+#: AppGUI/MainGUI.py:4049
+msgid "Open Online Manual"
+msgstr "Open Online Manual"
+
+#: AppGUI/MainGUI.py:4050
+msgid "Open Online Tutorials"
+msgstr "Open Online Tutorials"
+
+#: AppGUI/MainGUI.py:4050
+msgid "Refresh Plots"
+msgstr "Refresh Plots"
+
+#: AppGUI/MainGUI.py:4050 AppTools/ToolSolderPaste.py:509
+msgid "Delete Object"
+msgstr "Delete Object"
+
+#: AppGUI/MainGUI.py:4050
+msgid "Alternate: Delete Tool"
+msgstr "Alternate: Delete Tool"
+
+#: AppGUI/MainGUI.py:4051
+msgid "(left to Key_1)Toggle Notebook Area (Left Side)"
+msgstr "(left to Key_1)Toggle Notebook Area (Left Side)"
+
+#: AppGUI/MainGUI.py:4051
+msgid "En(Dis)able Obj Plot"
+msgstr "En(Dis)able Obj Plot"
+
+#: AppGUI/MainGUI.py:4052
+msgid "Deselects all objects"
+msgstr "Deselects all objects"
+
+#: AppGUI/MainGUI.py:4066
+msgid "Editor Shortcut list"
+msgstr "Editor Shortcut list"
+
+#: AppGUI/MainGUI.py:4220
+msgid "GEOMETRY EDITOR"
+msgstr "GEOMETRY EDITOR"
+
+#: AppGUI/MainGUI.py:4220
+msgid "Draw an Arc"
+msgstr "Draw an Arc"
+
+#: AppGUI/MainGUI.py:4220
+msgid "Copy Geo Item"
+msgstr "Copy Geo Item"
+
+#: AppGUI/MainGUI.py:4221
+msgid "Within Add Arc will toogle the ARC direction: CW or CCW"
+msgstr "Within Add Arc will toogle the ARC direction: CW or CCW"
+
+#: AppGUI/MainGUI.py:4221
+msgid "Polygon Intersection Tool"
+msgstr "Polygon Intersection Tool"
+
+#: AppGUI/MainGUI.py:4222
+msgid "Geo Paint Tool"
+msgstr "Geo Paint Tool"
+
+#: AppGUI/MainGUI.py:4222 AppGUI/MainGUI.py:4311 AppGUI/MainGUI.py:4431
+msgid "Jump to Location (x, y)"
+msgstr "Jump to Location (x, y)"
+
+#: AppGUI/MainGUI.py:4222
+msgid "Toggle Corner Snap"
+msgstr "Toggle Corner Snap"
+
+#: AppGUI/MainGUI.py:4222
+msgid "Move Geo Item"
+msgstr "Move Geo Item"
+
+#: AppGUI/MainGUI.py:4223
+msgid "Within Add Arc will cycle through the ARC modes"
+msgstr "Within Add Arc will cycle through the ARC modes"
+
+#: AppGUI/MainGUI.py:4223
+msgid "Draw a Polygon"
+msgstr "Draw a Polygon"
+
+#: AppGUI/MainGUI.py:4223
+msgid "Draw a Circle"
+msgstr "Draw a Circle"
+
+#: AppGUI/MainGUI.py:4224
+msgid "Draw a Path"
+msgstr "Draw a Path"
+
+#: AppGUI/MainGUI.py:4224
+msgid "Draw Rectangle"
+msgstr "Draw Rectangle"
+
+#: AppGUI/MainGUI.py:4224
+msgid "Polygon Subtraction Tool"
+msgstr "Polygon Subtraction Tool"
+
+#: AppGUI/MainGUI.py:4224
+msgid "Add Text Tool"
+msgstr "Add Text Tool"
+
+#: AppGUI/MainGUI.py:4225
+msgid "Polygon Union Tool"
+msgstr "Polygon Union Tool"
+
+#: AppGUI/MainGUI.py:4225
+msgid "Flip shape on X axis"
+msgstr "Flip shape on X axis"
+
+#: AppGUI/MainGUI.py:4225
+msgid "Flip shape on Y axis"
+msgstr "Flip shape on Y axis"
+
+#: AppGUI/MainGUI.py:4226
+msgid "Skew shape on X axis"
+msgstr "Skew shape on X axis"
+
+#: AppGUI/MainGUI.py:4226
+msgid "Skew shape on Y axis"
+msgstr "Skew shape on Y axis"
+
+#: AppGUI/MainGUI.py:4226
+msgid "Editor Transformation Tool"
+msgstr "Editor Transformation Tool"
+
+#: AppGUI/MainGUI.py:4227
+msgid "Offset shape on X axis"
+msgstr "Offset shape on X axis"
+
+#: AppGUI/MainGUI.py:4227
+msgid "Offset shape on Y axis"
+msgstr "Offset shape on Y axis"
+
+#: AppGUI/MainGUI.py:4228 AppGUI/MainGUI.py:4314 AppGUI/MainGUI.py:4436
+msgid "Save Object and Exit Editor"
+msgstr "Save Object and Exit Editor"
+
+#: AppGUI/MainGUI.py:4228
+msgid "Polygon Cut Tool"
+msgstr "Polygon Cut Tool"
+
+#: AppGUI/MainGUI.py:4229
+msgid "Rotate Geometry"
+msgstr "Rotate Geometry"
+
+#: AppGUI/MainGUI.py:4229
+msgid "Finish drawing for certain tools"
+msgstr "Finish drawing for certain tools"
+
+#: AppGUI/MainGUI.py:4229 AppGUI/MainGUI.py:4314 AppGUI/MainGUI.py:4434
+msgid "Abort and return to Select"
+msgstr "Abort and return to Select"
+
+#: AppGUI/MainGUI.py:4310
+msgid "EXCELLON EDITOR"
+msgstr "EXCELLON EDITOR"
+
+#: AppGUI/MainGUI.py:4310
+msgid "Copy Drill(s)"
+msgstr "Copy Drill(s)"
+
+#: AppGUI/MainGUI.py:4311
+msgid "Move Drill(s)"
+msgstr "Move Drill(s)"
+
+#: AppGUI/MainGUI.py:4312
+msgid "Add a new Tool"
+msgstr "Add a new Tool"
+
+#: AppGUI/MainGUI.py:4313
+msgid "Delete Drill(s)"
+msgstr "Delete Drill(s)"
+
+#: AppGUI/MainGUI.py:4313
+msgid "Alternate: Delete Tool(s)"
+msgstr "Alternate: Delete Tool(s)"
+
+#: AppGUI/MainGUI.py:4430
+msgid "GERBER EDITOR"
+msgstr "GERBER EDITOR"
+
+#: AppGUI/MainGUI.py:4430
+msgid "Add Disc"
+msgstr "Add Disc"
+
+#: AppGUI/MainGUI.py:4430
+msgid "Add SemiDisc"
+msgstr "Add SemiDisc"
+
+#: AppGUI/MainGUI.py:4432
+msgid "Within Track & Region Tools will cycle in REVERSE the bend modes"
+msgstr "Within Track & Region Tools will cycle in REVERSE the bend modes"
+
+#: AppGUI/MainGUI.py:4433
+msgid "Within Track & Region Tools will cycle FORWARD the bend modes"
+msgstr "Within Track & Region Tools will cycle FORWARD the bend modes"
+
+#: AppGUI/MainGUI.py:4434
+msgid "Alternate: Delete Apertures"
+msgstr "Alternate: Delete Apertures"
+
+#: AppGUI/MainGUI.py:4435
+msgid "Eraser Tool"
+msgstr "Eraser Tool"
+
+#: AppGUI/MainGUI.py:4436
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:220
+msgid "Mark Area Tool"
+msgstr "Mark Area Tool"
+
+#: AppGUI/MainGUI.py:4436
+msgid "Poligonize Tool"
+msgstr "Poligonize Tool"
+
+#: AppGUI/MainGUI.py:4436
+msgid "Transformation Tool"
+msgstr "Transformation Tool"
+
+#: AppGUI/ObjectUI.py:38
+msgid "FlatCAM Object"
+msgstr "FlatCAM Object"
+
+#: AppGUI/ObjectUI.py:78
+msgid ""
+"BASIC is suitable for a beginner. Many parameters\n"
+"are hidden from the user in this mode.\n"
+"ADVANCED mode will make available all parameters.\n"
+"\n"
+"To change the application LEVEL, go to:\n"
+"Edit -> Preferences -> General and check:\n"
+"'APP. LEVEL' radio button."
+msgstr ""
+"BASIC is suitable for a beginner. Many parameters\n"
+"are hidden from the user in this mode.\n"
+"ADVANCED mode will make available all parameters.\n"
+"\n"
+"To change the application LEVEL, go to:\n"
+"Edit -> Preferences -> General and check:\n"
+"'APP. LEVEL' radio button."
+
+#: AppGUI/ObjectUI.py:111
+msgid "Geometrical transformations of the current object."
+msgstr "Geometrical transformations of the current object."
+
+#: AppGUI/ObjectUI.py:120
+msgid ""
+"Factor by which to multiply\n"
+"geometric features of this object.\n"
+"Expressions are allowed. E.g: 1/25.4"
+msgstr ""
+"Factor by which to multiply\n"
+"geometric features of this object.\n"
+"Expressions are allowed. E.g: 1/25.4"
+
+#: AppGUI/ObjectUI.py:127
+msgid "Perform scaling operation."
+msgstr "Perform scaling operation."
+
+#: AppGUI/ObjectUI.py:138
+msgid ""
+"Amount by which to move the object\n"
+"in the x and y axes in (x, y) format.\n"
+"Expressions are allowed. E.g: (1/3.2, 0.5*3)"
+msgstr ""
+"Amount by which to move the object\n"
+"in the x and y axes in (x, y) format.\n"
+"Expressions are allowed. E.g: (1/3.2, 0.5*3)"
+
+#: AppGUI/ObjectUI.py:145
+msgid "Perform the offset operation."
+msgstr "Perform the offset operation."
+
+#: AppGUI/ObjectUI.py:157 AppGUI/ObjectUI.py:164 AppTool.py:281 AppTool.py:287
+msgid "Edited value is out of range"
+msgstr "Edited value is out of range"
+
+#: AppGUI/ObjectUI.py:159 AppGUI/ObjectUI.py:166 AppTool.py:283 AppTool.py:289
+msgid "Edited value is within limits."
+msgstr "Edited value is within limits."
+
+#: AppGUI/ObjectUI.py:178
+msgid "Gerber Object"
+msgstr "Gerber Object"
+
+#: AppGUI/ObjectUI.py:187 AppGUI/ObjectUI.py:730 AppGUI/ObjectUI.py:1528
+#: AppGUI/ObjectUI.py:2335 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:30
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:33
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:31
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:31
+msgid "Plot Options"
+msgstr "Plot Options"
+
+#: AppGUI/ObjectUI.py:193 AppGUI/ObjectUI.py:731
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:45
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:38
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119
+#: AppTools/ToolCopperThieving.py:191
+msgid "Solid"
+msgstr "Solid"
+
+#: AppGUI/ObjectUI.py:195 AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:40
+msgid "Solid color polygons."
+msgstr "Solid color polygons."
+
+#: AppGUI/ObjectUI.py:201
+msgid "Multi-Color"
+msgstr "Multi-Color"
+
+#: AppGUI/ObjectUI.py:203 AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:47
+msgid "Draw polygons in different colors."
+msgstr "Draw polygons in different colors."
+
+#: AppGUI/ObjectUI.py:209 AppGUI/ObjectUI.py:769
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:39
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:35
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:52
+msgid "Plot"
+msgstr "Plot"
+
+#: AppGUI/ObjectUI.py:211 AppGUI/ObjectUI.py:771 AppGUI/ObjectUI.py:1588
+#: AppGUI/ObjectUI.py:2445 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:41
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:37
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:54
+msgid "Plot (show) this object."
+msgstr "Plot (show) this object."
+
+#: AppGUI/ObjectUI.py:239
+msgid ""
+"Toggle the display of the Gerber Apertures Table.\n"
+"When unchecked, it will delete all mark shapes\n"
+"that are drawn on canvas."
+msgstr ""
+"Toggle the display of the Gerber Apertures Table.\n"
+"When unchecked, it will delete all mark shapes\n"
+"that are drawn on canvas."
+
+#: AppGUI/ObjectUI.py:249
+msgid "Mark All"
+msgstr "Mark All"
+
+#: AppGUI/ObjectUI.py:251
+msgid ""
+"When checked it will display all the apertures.\n"
+"When unchecked, it will delete all mark shapes\n"
+"that are drawn on canvas."
+msgstr ""
+"When checked it will display all the apertures.\n"
+"When unchecked, it will delete all mark shapes\n"
+"that are drawn on canvas."
+
+#: AppGUI/ObjectUI.py:279
+msgid "Mark the aperture instances on canvas."
+msgstr "Mark the aperture instances on canvas."
+
+#: AppGUI/ObjectUI.py:291 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:32
+msgid "Isolation Routing"
+msgstr "Isolation Routing"
+
+#: AppGUI/ObjectUI.py:293 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:34
+msgid ""
+"Create a Geometry object with\n"
+"toolpaths to cut outside polygons."
+msgstr ""
+"Create a Geometry object with\n"
+"toolpaths to cut outside polygons."
+
+#: AppGUI/ObjectUI.py:311
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:69
+msgid ""
+"Choose which tool to use for Gerber isolation:\n"
+"'Circular' or 'V-shape'.\n"
+"When the 'V-shape' is selected then the tool\n"
+"diameter will depend on the chosen cut depth."
+msgstr ""
+"Choose which tool to use for Gerber isolation:\n"
+"'Circular' or 'V-shape'.\n"
+"When the 'V-shape' is selected then the tool\n"
+"diameter will depend on the chosen cut depth."
+
+#: AppGUI/ObjectUI.py:317
+msgid "V-Shape"
+msgstr "V-Shape"
+
+#: AppGUI/ObjectUI.py:323 AppGUI/ObjectUI.py:1774
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:81
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:72
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:78
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:85 AppTools/ToolNCC.py:233
+#: AppTools/ToolNCC.py:240 AppTools/ToolPaint.py:215
+msgid "V-Tip Dia"
+msgstr "V-Tip Dia"
+
+#: AppGUI/ObjectUI.py:325 AppGUI/ObjectUI.py:1777
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:83
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:74
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:80 AppTools/ToolNCC.py:235
+#: AppTools/ToolPaint.py:217
+msgid "The tip diameter for V-Shape Tool"
+msgstr "The tip diameter for V-Shape Tool"
+
+#: AppGUI/ObjectUI.py:336 AppGUI/ObjectUI.py:1789
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:94
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:84
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:91
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:99 AppTools/ToolNCC.py:246
+#: AppTools/ToolNCC.py:254 AppTools/ToolPaint.py:228
+msgid "V-Tip Angle"
+msgstr "V-Tip Angle"
+
+#: AppGUI/ObjectUI.py:338 AppGUI/ObjectUI.py:1792
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:96
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:86
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:93 AppTools/ToolNCC.py:248
+#: AppTools/ToolPaint.py:230
+msgid ""
+"The tip angle for V-Shape Tool.\n"
+"In degree."
+msgstr ""
+"The tip angle for V-Shape Tool.\n"
+"In degree."
+
+#: AppGUI/ObjectUI.py:352 AppGUI/ObjectUI.py:1808
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:50
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:109
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61
+#: AppObjects/FlatCAMGeometry.py:1229 AppTools/ToolCutOut.py:141
+msgid ""
+"Cutting depth (negative)\n"
+"below the copper surface."
+msgstr ""
+"Cutting depth (negative)\n"
+"below the copper surface."
+
+#: AppGUI/ObjectUI.py:366
+msgid ""
+"Diameter of the cutting tool.\n"
+"If you want to have an isolation path\n"
+"inside the actual shape of the Gerber\n"
+"feature, use a negative value for\n"
+"this parameter."
+msgstr ""
+"Diameter of the cutting tool.\n"
+"If you want to have an isolation path\n"
+"inside the actual shape of the Gerber\n"
+"feature, use a negative value for\n"
+"this parameter."
+
+#: AppGUI/ObjectUI.py:382 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:56
+msgid "# Passes"
+msgstr "# Passes"
+
+#: AppGUI/ObjectUI.py:384 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:58
+msgid ""
+"Width of the isolation gap in\n"
+"number (integer) of tool widths."
+msgstr ""
+"Width of the isolation gap in\n"
+"number (integer) of tool widths."
+
+#: AppGUI/ObjectUI.py:395 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:68
+msgid "Pass overlap"
+msgstr "Pass overlap"
+
+#: AppGUI/ObjectUI.py:397 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:70
+msgid "How much (percentage) of the tool width to overlap each tool pass."
+msgstr "How much (percentage) of the tool width to overlap each tool pass."
+
+#: AppGUI/ObjectUI.py:411
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:58
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:97
+msgid ""
+"Milling type:\n"
+"- climb / best for precision milling and to reduce tool usage\n"
+"- conventional / useful when there is no backlash compensation"
+msgstr ""
+"Milling type:\n"
+"- climb / best for precision milling and to reduce tool usage\n"
+"- conventional / useful when there is no backlash compensation"
+
+#: AppGUI/ObjectUI.py:421
+msgid "Combine"
+msgstr "Combine"
+
+#: AppGUI/ObjectUI.py:423 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:109
+msgid "Combine all passes into one object"
+msgstr "Combine all passes into one object"
+
+#: AppGUI/ObjectUI.py:427
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:43
+msgid "\"Follow\""
+msgstr "\"Follow\""
+
+#: AppGUI/ObjectUI.py:428
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:45
+msgid ""
+"Generate a 'Follow' geometry.\n"
+"This means that it will cut through\n"
+"the middle of the trace."
+msgstr ""
+"Generate a 'Follow' geometry.\n"
+"This means that it will cut through\n"
+"the middle of the trace."
+
+#: AppGUI/ObjectUI.py:434
+msgid "Except"
+msgstr "Except"
+
+#: AppGUI/ObjectUI.py:437
+msgid ""
+"When the isolation geometry is generated,\n"
+"by checking this, the area of the object below\n"
+"will be subtracted from the isolation geometry."
+msgstr ""
+"When the isolation geometry is generated,\n"
+"by checking this, the area of the object below\n"
+"will be subtracted from the isolation geometry."
+
+#: AppGUI/ObjectUI.py:450
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:97
+#: AppObjects/FlatCAMGerber.py:239 AppObjects/FlatCAMGerber.py:327
+#: AppTools/ToolAlignObjects.py:73 AppTools/ToolAlignObjects.py:109
+#: AppTools/ToolCalibration.py:196 AppTools/ToolCalibration.py:631
+#: AppTools/ToolCalibration.py:648 AppTools/ToolCalibration.py:807
+#: AppTools/ToolCalibration.py:815 AppTools/ToolCopperThieving.py:144
+#: AppTools/ToolCopperThieving.py:158 AppTools/ToolCopperThieving.py:604
+#: AppTools/ToolCutOut.py:91 AppTools/ToolDblSided.py:224
+#: AppTools/ToolFilm.py:68 AppTools/ToolFilm.py:91 AppTools/ToolImage.py:49
+#: AppTools/ToolImage.py:252 AppTools/ToolImage.py:273 AppTools/ToolNCC.py:96
+#: AppTools/ToolNCC.py:558 AppTools/ToolNCC.py:1300 AppTools/ToolPaint.py:501
+#: AppTools/ToolPaint.py:705 AppTools/ToolPanelize.py:116
+#: AppTools/ToolPanelize.py:210 AppTools/ToolPanelize.py:385
+#: AppTools/ToolPanelize.py:402
+msgid "Gerber"
+msgstr "Gerber"
+
+#: AppGUI/ObjectUI.py:457 AppTools/ToolNCC.py:86 AppTools/ToolPaint.py:79
+msgid "Obj Type"
+msgstr "Obj Type"
+
+#: AppGUI/ObjectUI.py:459
+msgid ""
+"Specify the type of object to be excepted from isolation.\n"
+"It can be of type: Gerber or Geometry.\n"
+"What is selected here will dictate the kind\n"
+"of objects that will populate the 'Object' combobox."
+msgstr ""
+"Specify the type of object to be excepted from isolation.\n"
+"It can be of type: Gerber or Geometry.\n"
+"What is selected here will dictate the kind\n"
+"of objects that will populate the 'Object' combobox."
+
+#: AppGUI/ObjectUI.py:472 AppGUI/ObjectUI.py:1324 AppGUI/ObjectUI.py:2158
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:48
+#: AppTools/ToolCalibration.py:186 AppTools/ToolNCC.py:109
+#: AppTools/ToolPaint.py:102 AppTools/ToolPanelize.py:98
+#: AppTools/ToolQRCode.py:78
+msgid "Object"
+msgstr "Object"
+
+#: AppGUI/ObjectUI.py:473
+msgid "Object whose area will be removed from isolation geometry."
+msgstr "Object whose area will be removed from isolation geometry."
+
+#: AppGUI/ObjectUI.py:480 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:82
+msgid "Scope"
+msgstr "Scope"
+
+#: AppGUI/ObjectUI.py:482 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:84
+msgid ""
+"Isolation scope. Choose what to isolate:\n"
+"- 'All' -> Isolate all the polygons in the object\n"
+"- 'Selection' -> Isolate a selection of polygons."
+msgstr ""
+"Isolation scope. Choose what to isolate:\n"
+"- 'All' -> Isolate all the polygons in the object\n"
+"- 'Selection' -> Isolate a selection of polygons."
+
+#: AppGUI/ObjectUI.py:487
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:307
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:89
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:311
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:258
+#: AppTools/ToolNCC.py:539 AppTools/ToolPaint.py:455
+msgid "Selection"
+msgstr "Selection"
+
+#: AppGUI/ObjectUI.py:495
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:122
+msgid "Isolation Type"
+msgstr "Isolation Type"
+
+#: AppGUI/ObjectUI.py:497
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:124
+msgid ""
+"Choose how the isolation will be executed:\n"
+"- 'Full' -> complete isolation of polygons\n"
+"- 'Ext' -> will isolate only on the outside\n"
+"- 'Int' -> will isolate only on the inside\n"
+"'Exterior' isolation is almost always possible\n"
+"(with the right tool) but 'Interior'\n"
+"isolation can be done only when there is an opening\n"
+"inside of the polygon (e.g polygon is a 'doughnut' shape)."
+msgstr ""
+"Choose how the isolation will be executed:\n"
+"- 'Full' -> complete isolation of polygons\n"
+"- 'Ext' -> will isolate only on the outside\n"
+"- 'Int' -> will isolate only on the inside\n"
+"'Exterior' isolation is almost always possible\n"
+"(with the right tool) but 'Interior'\n"
+"isolation can be done only when there is an opening\n"
+"inside of the polygon (e.g polygon is a 'doughnut' shape)."
+
+#: AppGUI/ObjectUI.py:506
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:133
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:154
+msgid "Full"
+msgstr "Full"
+
+#: AppGUI/ObjectUI.py:507
+msgid "Ext"
+msgstr "Ext"
+
+#: AppGUI/ObjectUI.py:508
+msgid "Int"
+msgstr "Int"
+
+#: AppGUI/ObjectUI.py:513
+msgid "Generate Isolation Geometry"
+msgstr "Generate Isolation Geometry"
+
+#: AppGUI/ObjectUI.py:521
+msgid ""
+"Create a Geometry object with toolpaths to cut \n"
+"isolation outside, inside or on both sides of the\n"
+"object. For a Gerber object outside means outside\n"
+"of the Gerber feature and inside means inside of\n"
+"the Gerber feature, if possible at all. This means\n"
+"that only if the Gerber feature has openings inside, they\n"
+"will be isolated. If what is wanted is to cut isolation\n"
+"inside the actual Gerber feature, use a negative tool\n"
+"diameter above."
+msgstr ""
+"Create a Geometry object with toolpaths to cut \n"
+"isolation outside, inside or on both sides of the\n"
+"object. For a Gerber object outside means outside\n"
+"of the Gerber feature and inside means inside of\n"
+"the Gerber feature, if possible at all. This means\n"
+"that only if the Gerber feature has openings inside, they\n"
+"will be isolated. If what is wanted is to cut isolation\n"
+"inside the actual Gerber feature, use a negative tool\n"
+"diameter above."
+
+#: AppGUI/ObjectUI.py:533
+msgid "Buffer Solid Geometry"
+msgstr "Buffer Solid Geometry"
+
+#: AppGUI/ObjectUI.py:535
+msgid ""
+"This button is shown only when the Gerber file\n"
+"is loaded without buffering.\n"
+"Clicking this will create the buffered geometry\n"
+"required for isolation."
+msgstr ""
+"This button is shown only when the Gerber file\n"
+"is loaded without buffering.\n"
+"Clicking this will create the buffered geometry\n"
+"required for isolation."
+
+#: AppGUI/ObjectUI.py:567
+msgid "Clear N-copper"
+msgstr "Clear N-copper"
+
+#: AppGUI/ObjectUI.py:569 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:33
+msgid ""
+"Create a Geometry object with\n"
+"toolpaths to cut all non-copper regions."
+msgstr ""
+"Create a Geometry object with\n"
+"toolpaths to cut all non-copper regions."
+
+#: AppGUI/ObjectUI.py:576 AppGUI/ObjectUI.py:2289 AppTools/ToolNCC.py:599
+msgid ""
+"Create the Geometry Object\n"
+"for non-copper routing."
+msgstr ""
+"Create the Geometry Object\n"
+"for non-copper routing."
+
+#: AppGUI/ObjectUI.py:589
+msgid "Board cutout"
+msgstr "Board cutout"
+
+#: AppGUI/ObjectUI.py:591 AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:34
+msgid ""
+"Create toolpaths to cut around\n"
+"the PCB and separate it from\n"
+"the original board."
+msgstr ""
+"Create toolpaths to cut around\n"
+"the PCB and separate it from\n"
+"the original board."
+
+#: AppGUI/ObjectUI.py:598
+msgid ""
+"Generate the geometry for\n"
+"the board cutout."
+msgstr ""
+"Generate the geometry for\n"
+"the board cutout."
+
+#: AppGUI/ObjectUI.py:616 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:119
+msgid "Non-copper regions"
+msgstr "Non-copper regions"
+
+#: AppGUI/ObjectUI.py:618 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:121
+msgid ""
+"Create polygons covering the\n"
+"areas without copper on the PCB.\n"
+"Equivalent to the inverse of this\n"
+"object. Can be used to remove all\n"
+"copper from a specified region."
+msgstr ""
+"Create polygons covering the\n"
+"areas without copper on the PCB.\n"
+"Equivalent to the inverse of this\n"
+"object. Can be used to remove all\n"
+"copper from a specified region."
+
+#: AppGUI/ObjectUI.py:628 AppGUI/ObjectUI.py:669
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:133
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:166
+msgid "Boundary Margin"
+msgstr "Boundary Margin"
+
+#: AppGUI/ObjectUI.py:630 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:135
+msgid ""
+"Specify the edge of the PCB\n"
+"by drawing a box around all\n"
+"objects with this minimum\n"
+"distance."
+msgstr ""
+"Specify the edge of the PCB\n"
+"by drawing a box around all\n"
+"objects with this minimum\n"
+"distance."
+
+#: AppGUI/ObjectUI.py:645 AppGUI/ObjectUI.py:683
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:148
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:179
+msgid "Rounded Geo"
+msgstr "Rounded Geo"
+
+#: AppGUI/ObjectUI.py:647 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:150
+msgid "Resulting geometry will have rounded corners."
+msgstr "Resulting geometry will have rounded corners."
+
+#: AppGUI/ObjectUI.py:651 AppGUI/ObjectUI.py:692
+#: AppTools/ToolSolderPaste.py:134
+msgid "Generate Geo"
+msgstr "Generate Geo"
+
+#: AppGUI/ObjectUI.py:661 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:160
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137
+#: AppTools/ToolPanelize.py:99 AppTools/ToolQRCode.py:192
+msgid "Bounding Box"
+msgstr "Bounding Box"
+
+#: AppGUI/ObjectUI.py:663
+msgid ""
+"Create a geometry surrounding the Gerber object.\n"
+"Square shape."
+msgstr ""
+"Create a geometry surrounding the Gerber object.\n"
+"Square shape."
+
+#: AppGUI/ObjectUI.py:671 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:168
+msgid ""
+"Distance of the edges of the box\n"
+"to the nearest polygon."
+msgstr ""
+"Distance of the edges of the box\n"
+"to the nearest polygon."
+
+#: AppGUI/ObjectUI.py:685 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:181
+msgid ""
+"If the bounding box is \n"
+"to have rounded corners\n"
+"their radius is equal to\n"
+"the margin."
+msgstr ""
+"If the bounding box is \n"
+"to have rounded corners\n"
+"their radius is equal to\n"
+"the margin."
+
+#: AppGUI/ObjectUI.py:694
+msgid "Generate the Geometry object."
+msgstr "Generate the Geometry object."
+
+#: AppGUI/ObjectUI.py:721
+msgid "Excellon Object"
+msgstr "Excellon Object"
+
+#: AppGUI/ObjectUI.py:733
+msgid "Solid circles."
+msgstr "Solid circles."
+
+#: AppGUI/ObjectUI.py:781 AppGUI/ObjectUI.py:876 AppGUI/ObjectUI.py:2466
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:71
+#: AppTools/ToolProperties.py:166
+msgid "Drills"
+msgstr "Drills"
+
+#: AppGUI/ObjectUI.py:781 AppGUI/ObjectUI.py:877 AppGUI/ObjectUI.py:2466
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:158
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:72
+#: AppTools/ToolProperties.py:168
+msgid "Slots"
+msgstr "Slots"
+
+#: AppGUI/ObjectUI.py:786
+msgid ""
+"This is the Tool Number.\n"
+"When ToolChange is checked, on toolchange event this value\n"
+"will be showed as a T1, T2 ... Tn in the Machine Code.\n"
+"\n"
+"Here the tools are selected for G-code generation."
+msgstr ""
+"This is the Tool Number.\n"
+"When ToolChange is checked, on toolchange event this value\n"
+"will be showed as a T1, T2 ... Tn in the Machine Code.\n"
+"\n"
+"Here the tools are selected for G-code generation."
+
+#: AppGUI/ObjectUI.py:791 AppGUI/ObjectUI.py:1612 AppTools/ToolPaint.py:141
+msgid ""
+"Tool Diameter. It's value (in current FlatCAM units) \n"
+"is the cut width into the material."
+msgstr ""
+"Tool Diameter. It's value (in current FlatCAM units) \n"
+"is the cut width into the material."
+
+#: AppGUI/ObjectUI.py:794
+msgid ""
+"The number of Drill holes. Holes that are drilled with\n"
+"a drill bit."
+msgstr ""
+"The number of Drill holes. Holes that are drilled with\n"
+"a drill bit."
+
+#: AppGUI/ObjectUI.py:797
+msgid ""
+"The number of Slot holes. Holes that are created by\n"
+"milling them with an endmill bit."
+msgstr ""
+"The number of Slot holes. Holes that are created by\n"
+"milling them with an endmill bit."
+
+#: AppGUI/ObjectUI.py:800
+msgid ""
+"Toggle display of the drills for the current tool.\n"
+"This does not select the tools for G-code generation."
+msgstr ""
+"Toggle display of the drills for the current tool.\n"
+"This does not select the tools for G-code generation."
+
+#: AppGUI/ObjectUI.py:818 AppGUI/ObjectUI.py:1764
+#: AppObjects/FlatCAMExcellon.py:527 AppObjects/FlatCAMExcellon.py:805
+#: AppObjects/FlatCAMExcellon.py:821 AppObjects/FlatCAMExcellon.py:825
+#: AppObjects/FlatCAMGeometry.py:322 AppObjects/FlatCAMGeometry.py:816
+#: AppObjects/FlatCAMGeometry.py:852 AppTools/ToolNCC.py:331
+#: AppTools/ToolNCC.py:797 AppTools/ToolNCC.py:811 AppTools/ToolNCC.py:1196
+#: AppTools/ToolPaint.py:313 AppTools/ToolPaint.py:766
+#: AppTools/ToolPaint.py:778 AppTools/ToolPaint.py:1170
+msgid "Parameters for"
+msgstr "Parameters for"
+
+#: AppGUI/ObjectUI.py:821 AppGUI/ObjectUI.py:1767 AppTools/ToolNCC.py:334
+#: AppTools/ToolPaint.py:316
+msgid ""
+"The data used for creating GCode.\n"
+"Each tool store it's own set of such data."
+msgstr ""
+"The data used for creating GCode.\n"
+"Each tool store it's own set of such data."
+
+#: AppGUI/ObjectUI.py:847
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:48
+msgid ""
+"Operation type:\n"
+"- Drilling -> will drill the drills/slots associated with this tool\n"
+"- Milling -> will mill the drills/slots"
+msgstr ""
+"Operation type:\n"
+"- Drilling -> will drill the drills/slots associated with this tool\n"
+"- Milling -> will mill the drills/slots"
+
+#: AppGUI/ObjectUI.py:853
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:54
+msgid "Drilling"
+msgstr "Drilling"
+
+#: AppGUI/ObjectUI.py:854
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:55
+msgid "Milling"
+msgstr "Milling"
+
+#: AppGUI/ObjectUI.py:869
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:64
+msgid ""
+"Milling type:\n"
+"- Drills -> will mill the drills associated with this tool\n"
+"- Slots -> will mill the slots associated with this tool\n"
+"- Both -> will mill both drills and mills or whatever is available"
+msgstr ""
+"Milling type:\n"
+"- Drills -> will mill the drills associated with this tool\n"
+"- Slots -> will mill the slots associated with this tool\n"
+"- Both -> will mill both drills and mills or whatever is available"
+
+#: AppGUI/ObjectUI.py:878
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:73
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:210
+#: AppTools/ToolFilm.py:241
+msgid "Both"
+msgstr "Both"
+
+#: AppGUI/ObjectUI.py:886
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:80
+msgid "Milling Diameter"
+msgstr "Milling Diameter"
+
+#: AppGUI/ObjectUI.py:888
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:82
+msgid "The diameter of the tool who will do the milling"
+msgstr "The diameter of the tool who will do the milling"
+
+#: AppGUI/ObjectUI.py:902
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:95
+msgid ""
+"Drill depth (negative)\n"
+"below the copper surface."
+msgstr ""
+"Drill depth (negative)\n"
+"below the copper surface."
+
+#: AppGUI/ObjectUI.py:921 AppGUI/ObjectUI.py:1826
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:113
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:68
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79
+#: AppTools/ToolCutOut.py:159
+msgid "Multi-Depth"
+msgstr "Multi-Depth"
+
+#: AppGUI/ObjectUI.py:924 AppGUI/ObjectUI.py:1829
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:116
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:71
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82
+#: AppTools/ToolCutOut.py:162
+msgid ""
+"Use multiple passes to limit\n"
+"the cut depth in each pass. Will\n"
+"cut multiple times until Cut Z is\n"
+"reached."
+msgstr ""
+"Use multiple passes to limit\n"
+"the cut depth in each pass. Will\n"
+"cut multiple times until Cut Z is\n"
+"reached."
+
+#: AppGUI/ObjectUI.py:937 AppGUI/ObjectUI.py:1843
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:128
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94
+#: AppTools/ToolCutOut.py:176
+msgid "Depth of each pass (positive)."
+msgstr "Depth of each pass (positive)."
+
+#: AppGUI/ObjectUI.py:948
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:136
+msgid ""
+"Tool height when travelling\n"
+"across the XY plane."
+msgstr ""
+"Tool height when travelling\n"
+"across the XY plane."
+
+#: AppGUI/ObjectUI.py:969 AppGUI/ObjectUI.py:1873
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:187
+msgid ""
+"Cutting speed in the XY\n"
+"plane in units per minute"
+msgstr ""
+"Cutting speed in the XY\n"
+"plane in units per minute"
+
+#: AppGUI/ObjectUI.py:984
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:209
+msgid ""
+"Tool speed while drilling\n"
+"(in units per minute).\n"
+"So called 'Plunge' feedrate.\n"
+"This is for linear move G01."
+msgstr ""
+"Tool speed while drilling\n"
+"(in units per minute).\n"
+"So called 'Plunge' feedrate.\n"
+"This is for linear move G01."
+
+#: AppGUI/ObjectUI.py:999 AppGUI/ObjectUI.py:1900
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:80
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:64
+msgid "Feedrate Rapids"
+msgstr "Feedrate Rapids"
+
+#: AppGUI/ObjectUI.py:1001
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:82
+msgid ""
+"Tool speed while drilling\n"
+"(in units per minute).\n"
+"This is for the rapid move G00.\n"
+"It is useful only for Marlin,\n"
+"ignore for any other cases."
+msgstr ""
+"Tool speed while drilling\n"
+"(in units per minute).\n"
+"This is for the rapid move G00.\n"
+"It is useful only for Marlin,\n"
+"ignore for any other cases."
+
+#: AppGUI/ObjectUI.py:1021 AppGUI/ObjectUI.py:1920
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:82
+msgid "Re-cut"
+msgstr "Re-cut"
+
+#: AppGUI/ObjectUI.py:1023 AppGUI/ObjectUI.py:1036 AppGUI/ObjectUI.py:1922
+#: AppGUI/ObjectUI.py:1934
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:84
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:96
+msgid ""
+"In order to remove possible\n"
+"copper leftovers where first cut\n"
+"meet with last cut, we generate an\n"
+"extended cut over the first cut section."
+msgstr ""
+"In order to remove possible\n"
+"copper leftovers where first cut\n"
+"meet with last cut, we generate an\n"
+"extended cut over the first cut section."
+
+#: AppGUI/ObjectUI.py:1049 AppGUI/ObjectUI.py:1943
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:216
+#: AppObjects/FlatCAMExcellon.py:1412 AppObjects/FlatCAMGeometry.py:1676
+msgid "Spindle speed"
+msgstr "Spindle speed"
+
+#: AppGUI/ObjectUI.py:1051
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:224
+msgid ""
+"Speed of the spindle\n"
+"in RPM (optional)"
+msgstr ""
+"Speed of the spindle\n"
+"in RPM (optional)"
+
+#: AppGUI/ObjectUI.py:1066 AppGUI/ObjectUI.py:1962
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:238
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:234
+msgid ""
+"Pause to allow the spindle to reach its\n"
+"speed before cutting."
+msgstr ""
+"Pause to allow the spindle to reach its\n"
+"speed before cutting."
+
+#: AppGUI/ObjectUI.py:1077 AppGUI/ObjectUI.py:1972
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:246
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:239
+msgid "Number of time units for spindle to dwell."
+msgstr "Number of time units for spindle to dwell."
+
+#: AppGUI/ObjectUI.py:1087
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:46
+msgid "Offset Z"
+msgstr "Offset Z"
+
+#: AppGUI/ObjectUI.py:1089
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:48
+msgid ""
+"Some drill bits (the larger ones) need to drill deeper\n"
+"to create the desired exit hole diameter due of the tip shape.\n"
+"The value here can compensate the Cut Z parameter."
+msgstr ""
+"Some drill bits (the larger ones) need to drill deeper\n"
+"to create the desired exit hole diameter due of the tip shape.\n"
+"The value here can compensate the Cut Z parameter."
+
+#: AppGUI/ObjectUI.py:1149 AppGUI/ObjectUI.py:2026 AppTools/ToolNCC.py:492
+#: AppTools/ToolPaint.py:422
+msgid "Apply parameters to all tools"
+msgstr "Apply parameters to all tools"
+
+#: AppGUI/ObjectUI.py:1151 AppGUI/ObjectUI.py:2028 AppTools/ToolNCC.py:494
+#: AppTools/ToolPaint.py:424
+msgid ""
+"The parameters in the current form will be applied\n"
+"on all the tools from the Tool Table."
+msgstr ""
+"The parameters in the current form will be applied\n"
+"on all the tools from the Tool Table."
+
+#: AppGUI/ObjectUI.py:1162 AppGUI/ObjectUI.py:2039 AppTools/ToolNCC.py:505
+#: AppTools/ToolPaint.py:435
+msgid "Common Parameters"
+msgstr "Common Parameters"
+
+#: AppGUI/ObjectUI.py:1164 AppGUI/ObjectUI.py:2041 AppTools/ToolNCC.py:507
+#: AppTools/ToolPaint.py:437
+msgid "Parameters that are common for all tools."
+msgstr "Parameters that are common for all tools."
+
+#: AppGUI/ObjectUI.py:1169 AppGUI/ObjectUI.py:2046
+msgid "Tool change Z"
+msgstr "Tool change Z"
+
+#: AppGUI/ObjectUI.py:1171
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:154
+msgid ""
+"Include tool-change sequence\n"
+"in G-Code (Pause for tool change)."
+msgstr ""
+"Include tool-change sequence\n"
+"in G-Code (Pause for tool change)."
+
+#: AppGUI/ObjectUI.py:1178 AppGUI/ObjectUI.py:2057
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:162
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:134
+msgid ""
+"Z-axis position (height) for\n"
+"tool change."
+msgstr ""
+"Z-axis position (height) for\n"
+"tool change."
+
+#: AppGUI/ObjectUI.py:1195
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:71
+msgid ""
+"Height of the tool just after start.\n"
+"Delete the value if you don't need this feature."
+msgstr ""
+"Height of the tool just after start.\n"
+"Delete the value if you don't need this feature."
+
+#: AppGUI/ObjectUI.py:1204 AppGUI/ObjectUI.py:2085
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:178
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:153
+msgid "End move Z"
+msgstr "End move Z"
+
+#: AppGUI/ObjectUI.py:1206 AppGUI/ObjectUI.py:2087
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:180
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:155
+msgid ""
+"Height of the tool after\n"
+"the last move at the end of the job."
+msgstr ""
+"Height of the tool after\n"
+"the last move at the end of the job."
+
+#: AppGUI/ObjectUI.py:1223 AppGUI/ObjectUI.py:2104
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:195
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:173
+msgid "End move X,Y"
+msgstr "End move X,Y"
+
+#: AppGUI/ObjectUI.py:1225 AppGUI/ObjectUI.py:2106
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:197
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:175
+msgid ""
+"End move X,Y position. In format (x,y).\n"
+"If no value is entered then there is no move\n"
+"on X,Y plane at the end of the job."
+msgstr ""
+"End move X,Y position. In format (x,y).\n"
+"If no value is entered then there is no move\n"
+"on X,Y plane at the end of the job."
+
+#: AppGUI/ObjectUI.py:1235 AppGUI/ObjectUI.py:1980
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:96
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:105
+msgid "Probe Z depth"
+msgstr "Probe Z depth"
+
+#: AppGUI/ObjectUI.py:1237 AppGUI/ObjectUI.py:1982
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:98
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:107
+msgid ""
+"The maximum depth that the probe is allowed\n"
+"to probe. Negative value, in current units."
+msgstr ""
+"The maximum depth that the probe is allowed\n"
+"to probe. Negative value, in current units."
+
+#: AppGUI/ObjectUI.py:1254 AppGUI/ObjectUI.py:1997
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:109
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:120
+msgid "Feedrate Probe"
+msgstr "Feedrate Probe"
+
+#: AppGUI/ObjectUI.py:1256 AppGUI/ObjectUI.py:1999
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:111
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:122
+msgid "The feedrate used while the probe is probing."
+msgstr "The feedrate used while the probe is probing."
+
+#: AppGUI/ObjectUI.py:1272
+msgid "Preprocessor E"
+msgstr "Preprocessor E"
+
+#: AppGUI/ObjectUI.py:1274
+msgid ""
+"The preprocessor JSON file that dictates\n"
+"Gcode output for Excellon Objects."
+msgstr ""
+"The preprocessor JSON file that dictates\n"
+"Gcode output for Excellon Objects."
+
+#: AppGUI/ObjectUI.py:1284
+msgid "Preprocessor G"
+msgstr "Preprocessor G"
+
+#: AppGUI/ObjectUI.py:1286
+msgid ""
+"The preprocessor JSON file that dictates\n"
+"Gcode output for Geometry (Milling) Objects."
+msgstr ""
+"The preprocessor JSON file that dictates\n"
+"Gcode output for Geometry (Milling) Objects."
+
+#: AppGUI/ObjectUI.py:1300 AppGUI/ObjectUI.py:2134
+msgid "Add exclusion areas"
+msgstr "Add exclusion areas"
+
+#: AppGUI/ObjectUI.py:1303 AppGUI/ObjectUI.py:2137
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:204
+msgid ""
+"Include exclusion areas.\n"
+"In those areas the travel of the tools\n"
+"is forbidden."
+msgstr ""
+"Include exclusion areas.\n"
+"In those areas the travel of the tools\n"
+"is forbidden."
+
+#: AppGUI/ObjectUI.py:1324 AppGUI/ObjectUI.py:1343 AppGUI/ObjectUI.py:2158
+#: AppGUI/ObjectUI.py:2177
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:224
+msgid "Strategy"
+msgstr "Strategy"
+
+#: AppGUI/ObjectUI.py:1324 AppGUI/ObjectUI.py:1355 AppGUI/ObjectUI.py:2158
+#: AppGUI/ObjectUI.py:2189
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:236
+msgid "Over Z"
+msgstr "Over Z"
+
+#: AppGUI/ObjectUI.py:1326 AppGUI/ObjectUI.py:2160
+msgid "This is the Area ID."
+msgstr "This is the Area ID."
+
+#: AppGUI/ObjectUI.py:1328 AppGUI/ObjectUI.py:2162
+msgid "Type of the object where the exclusion area was added."
+msgstr "Type of the object where the exclusion area was added."
+
+#: AppGUI/ObjectUI.py:1330 AppGUI/ObjectUI.py:2164
+msgid ""
+"The strategy used for exclusion area. Go around the exclusion areas or over "
+"it."
+msgstr ""
+"The strategy used for exclusion area. Go around the exclusion areas or over "
+"it."
+
+#: AppGUI/ObjectUI.py:1332 AppGUI/ObjectUI.py:2166
+msgid ""
+"If the strategy is to go over the area then this is the height at which the "
+"tool will go to avoid the exclusion area."
+msgstr ""
+"If the strategy is to go over the area then this is the height at which the "
+"tool will go to avoid the exclusion area."
+
+#: AppGUI/ObjectUI.py:1344 AppGUI/ObjectUI.py:2178
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:225
+msgid ""
+"The strategy followed when encountering an exclusion area.\n"
+"Can be:\n"
+"- Over -> when encountering the area, the tool will go to a set height\n"
+"- Around -> will avoid the exclusion area by going around the area"
+msgstr ""
+"The strategy followed when encountering an exclusion area.\n"
+"Can be:\n"
+"- Over -> when encountering the area, the tool will go to a set height\n"
+"- Around -> will avoid the exclusion area by going around the area"
+
+#: AppGUI/ObjectUI.py:1348 AppGUI/ObjectUI.py:2182
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:229
+msgid "Over"
+msgstr "Over"
+
+#: AppGUI/ObjectUI.py:1349 AppGUI/ObjectUI.py:2183
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:230
+msgid "Around"
+msgstr "Around"
+
+#: AppGUI/ObjectUI.py:1356 AppGUI/ObjectUI.py:2190
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:237
+msgid ""
+"The height Z to which the tool will rise in order to avoid\n"
+"an interdiction area."
+msgstr ""
+"The height Z to which the tool will rise in order to avoid\n"
+"an interdiction area."
+
+#: AppGUI/ObjectUI.py:1366 AppGUI/ObjectUI.py:2200
+msgid "Add area:"
+msgstr "Add area:"
+
+#: AppGUI/ObjectUI.py:1367 AppGUI/ObjectUI.py:2201
+msgid "Add an Exclusion Area."
+msgstr "Add an Exclusion Area."
+
+#: AppGUI/ObjectUI.py:1373 AppGUI/ObjectUI.py:2207
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:214
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:324
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:288
+#: AppTools/ToolNCC.py:580 AppTools/ToolPaint.py:523
+msgid "The kind of selection shape used for area selection."
+msgstr "The kind of selection shape used for area selection."
+
+#: AppGUI/ObjectUI.py:1383 AppGUI/ObjectUI.py:2217
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:32
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:42
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:32
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:32
+msgid "Delete All"
+msgstr "Delete All"
+
+#: AppGUI/ObjectUI.py:1384 AppGUI/ObjectUI.py:2218
+msgid "Delete all exclusion areas."
+msgstr "Delete all exclusion areas."
+
+#: AppGUI/ObjectUI.py:1387 AppGUI/ObjectUI.py:2221
+msgid "Delete Selected"
+msgstr "Delete Selected"
+
+#: AppGUI/ObjectUI.py:1388 AppGUI/ObjectUI.py:2222
+msgid "Delete all exclusion areas that are selected in the table."
+msgstr "Delete all exclusion areas that are selected in the table."
+
+#: AppGUI/ObjectUI.py:1412 AppGUI/ObjectUI.py:2238
+msgid ""
+"Add / Select at least one tool in the tool-table.\n"
+"Click the # header to select all, or Ctrl + LMB\n"
+"for custom selection of tools."
+msgstr ""
+"Add / Select at least one tool in the tool-table.\n"
+"Click the # header to select all, or Ctrl + LMB\n"
+"for custom selection of tools."
+
+#: AppGUI/ObjectUI.py:1420 AppGUI/ObjectUI.py:2245
+msgid "Generate CNCJob object"
+msgstr "Generate CNCJob object"
+
+#: AppGUI/ObjectUI.py:1422
+msgid ""
+"Generate the CNC Job.\n"
+"If milling then an additional Geometry object will be created"
+msgstr ""
+"Generate the CNC Job.\n"
+"If milling then an additional Geometry object will be created"
+
+#: AppGUI/ObjectUI.py:1439
+msgid "Milling Geometry"
+msgstr "Milling Geometry"
+
+#: AppGUI/ObjectUI.py:1441
+msgid ""
+"Create Geometry for milling holes.\n"
+"Select from the Tools Table above the hole dias to be\n"
+"milled. Use the # column to make the selection."
+msgstr ""
+"Create Geometry for milling holes.\n"
+"Select from the Tools Table above the hole dias to be\n"
+"milled. Use the # column to make the selection."
+
+#: AppGUI/ObjectUI.py:1449
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:296
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:45
+msgid "Diameter of the cutting tool."
+msgstr "Diameter of the cutting tool."
+
+#: AppGUI/ObjectUI.py:1459
+msgid "Mill Drills"
+msgstr "Mill Drills"
+
+#: AppGUI/ObjectUI.py:1461
+msgid ""
+"Create the Geometry Object\n"
+"for milling DRILLS toolpaths."
+msgstr ""
+"Create the Geometry Object\n"
+"for milling DRILLS toolpaths."
+
+#: AppGUI/ObjectUI.py:1479
+msgid "Mill Slots"
+msgstr "Mill Slots"
+
+#: AppGUI/ObjectUI.py:1481
+msgid ""
+"Create the Geometry Object\n"
+"for milling SLOTS toolpaths."
+msgstr ""
+"Create the Geometry Object\n"
+"for milling SLOTS toolpaths."
+
+#: AppGUI/ObjectUI.py:1523 AppTools/ToolCutOut.py:319
+msgid "Geometry Object"
+msgstr "Geometry Object"
+
+#: AppGUI/ObjectUI.py:1569
+msgid ""
+"Tools in this Geometry object used for cutting.\n"
+"The 'Offset' entry will set an offset for the cut.\n"
+"'Offset' can be inside, outside, on path (none) and custom.\n"
+"'Type' entry is only informative and it allow to know the \n"
+"intent of using the current tool. \n"
+"It can be Rough(ing), Finish(ing) or Iso(lation).\n"
+"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n"
+"ball(B), or V-Shaped(V). \n"
+"When V-shaped is selected the 'Type' entry is automatically \n"
+"set to Isolation, the CutZ parameter in the UI form is\n"
+"grayed out and Cut Z is automatically calculated from the newly \n"
+"showed UI form entries named V-Tip Dia and V-Tip Angle."
+msgstr ""
+"Tools in this Geometry object used for cutting.\n"
+"The 'Offset' entry will set an offset for the cut.\n"
+"'Offset' can be inside, outside, on path (none) and custom.\n"
+"'Type' entry is only informative and it allow to know the \n"
+"intent of using the current tool. \n"
+"It can be Rough(ing), Finish(ing) or Iso(lation).\n"
+"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n"
+"ball(B), or V-Shaped(V). \n"
+"When V-shaped is selected the 'Type' entry is automatically \n"
+"set to Isolation, the CutZ parameter in the UI form is\n"
+"grayed out and Cut Z is automatically calculated from the newly \n"
+"showed UI form entries named V-Tip Dia and V-Tip Angle."
+
+#: AppGUI/ObjectUI.py:1586 AppGUI/ObjectUI.py:2443
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:40
+msgid "Plot Object"
+msgstr "Plot Object"
+
+#: AppGUI/ObjectUI.py:1599 AppGUI/ObjectUI.py:2456 AppGUI/ObjectUI.py:2466
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138
+#: AppTools/ToolCopperThieving.py:221
+msgid "Dia"
+msgstr "Dia"
+
+#: AppGUI/ObjectUI.py:1599 AppGUI/ObjectUI.py:2456 AppTools/ToolNCC.py:132
+#: AppTools/ToolPaint.py:127
+msgid "TT"
+msgstr "TT"
+
+#: AppGUI/ObjectUI.py:1606
+msgid ""
+"This is the Tool Number.\n"
+"When ToolChange is checked, on toolchange event this value\n"
+"will be showed as a T1, T2 ... Tn"
+msgstr ""
+"This is the Tool Number.\n"
+"When ToolChange is checked, on toolchange event this value\n"
+"will be showed as a T1, T2 ... Tn"
+
+#: AppGUI/ObjectUI.py:1617
+msgid ""
+"The value for the Offset can be:\n"
+"- Path -> There is no offset, the tool cut will be done through the geometry "
+"line.\n"
+"- In(side) -> The tool cut will follow the geometry inside. It will create a "
+"'pocket'.\n"
+"- Out(side) -> The tool cut will follow the geometry line on the outside."
+msgstr ""
+"The value for the Offset can be:\n"
+"- Path -> There is no offset, the tool cut will be done through the geometry "
+"line.\n"
+"- In(side) -> The tool cut will follow the geometry inside. It will create a "
+"'pocket'.\n"
+"- Out(side) -> The tool cut will follow the geometry line on the outside."
+
+#: AppGUI/ObjectUI.py:1624
+msgid ""
+"The (Operation) Type has only informative value. Usually the UI form "
+"values \n"
+"are choose based on the operation type and this will serve as a reminder.\n"
+"Can be 'Roughing', 'Finishing' or 'Isolation'.\n"
+"For Roughing we may choose a lower Feedrate and multiDepth cut.\n"
+"For Finishing we may choose a higher Feedrate, without multiDepth.\n"
+"For Isolation we need a lower Feedrate as it use a milling bit with a fine "
+"tip."
+msgstr ""
+"The (Operation) Type has only informative value. Usually the UI form "
+"values \n"
+"are choose based on the operation type and this will serve as a reminder.\n"
+"Can be 'Roughing', 'Finishing' or 'Isolation'.\n"
+"For Roughing we may choose a lower Feedrate and multiDepth cut.\n"
+"For Finishing we may choose a higher Feedrate, without multiDepth.\n"
+"For Isolation we need a lower Feedrate as it use a milling bit with a fine "
+"tip."
+
+#: AppGUI/ObjectUI.py:1633
+msgid ""
+"The Tool Type (TT) can be:\n"
+"- Circular with 1 ... 4 teeth -> it is informative only. Being circular the "
+"cut width in material\n"
+"is exactly the tool diameter.\n"
+"- Ball -> informative only and make reference to the Ball type endmill.\n"
+"- V-Shape -> it will disable Z-Cut parameter in the UI form and enable two "
+"additional UI form\n"
+"fields: V-Tip Dia and V-Tip Angle. Adjusting those two values will adjust "
+"the Z-Cut parameter such\n"
+"as the cut width into material will be equal with the value in the Tool "
+"Diameter column of this table.\n"
+"Choosing the V-Shape Tool Type automatically will select the Operation Type "
+"as Isolation."
+msgstr ""
+"The Tool Type (TT) can be:\n"
+"- Circular with 1 ... 4 teeth -> it is informative only. Being circular the "
+"cut width in material\n"
+"is exactly the tool diameter.\n"
+"- Ball -> informative only and make reference to the Ball type endmill.\n"
+"- V-Shape -> it will disable Z-Cut parameter in the UI form and enable two "
+"additional UI form\n"
+"fields: V-Tip Dia and V-Tip Angle. Adjusting those two values will adjust "
+"the Z-Cut parameter such\n"
+"as the cut width into material will be equal with the value in the Tool "
+"Diameter column of this table.\n"
+"Choosing the V-Shape Tool Type automatically will select the Operation Type "
+"as Isolation."
+
+#: AppGUI/ObjectUI.py:1645
+msgid ""
+"Plot column. It is visible only for MultiGeo geometries, meaning geometries "
+"that holds the geometry\n"
+"data into the tools. For those geometries, deleting the tool will delete the "
+"geometry data also,\n"
+"so be WARNED. From the checkboxes on each row it can be enabled/disabled the "
+"plot on canvas\n"
+"for the corresponding tool."
+msgstr ""
+"Plot column. It is visible only for MultiGeo geometries, meaning geometries "
+"that holds the geometry\n"
+"data into the tools. For those geometries, deleting the tool will delete the "
+"geometry data also,\n"
+"so be WARNED. From the checkboxes on each row it can be enabled/disabled the "
+"plot on canvas\n"
+"for the corresponding tool."
+
+#: AppGUI/ObjectUI.py:1663
+msgid ""
+"The value to offset the cut when \n"
+"the Offset type selected is 'Offset'.\n"
+"The value can be positive for 'outside'\n"
+"cut and negative for 'inside' cut."
+msgstr ""
+"The value to offset the cut when \n"
+"the Offset type selected is 'Offset'.\n"
+"The value can be positive for 'outside'\n"
+"cut and negative for 'inside' cut."
+
+#: AppGUI/ObjectUI.py:1682 AppTools/ToolNCC.py:209 AppTools/ToolNCC.py:923
+#: AppTools/ToolPaint.py:191 AppTools/ToolPaint.py:848
+#: AppTools/ToolSolderPaste.py:559
+msgid "New Tool"
+msgstr "New Tool"
+
+#: AppGUI/ObjectUI.py:1699
+msgid ""
+"Add a new tool to the Tool Table\n"
+"with the specified diameter."
+msgstr ""
+"Add a new tool to the Tool Table\n"
+"with the specified diameter."
+
+#: AppGUI/ObjectUI.py:1704 AppTools/ToolNCC.py:300 AppTools/ToolNCC.py:634
+#: AppTools/ToolPaint.py:282 AppTools/ToolPaint.py:678
+msgid "Add from DB"
+msgstr "Add from DB"
+
+#: AppGUI/ObjectUI.py:1706 AppTools/ToolNCC.py:302 AppTools/ToolPaint.py:284
+msgid ""
+"Add a new tool to the Tool Table\n"
+"from the Tool DataBase."
+msgstr ""
+"Add a new tool to the Tool Table\n"
+"from the Tool DataBase."
+
+#: AppGUI/ObjectUI.py:1721
+msgid ""
+"Copy a selection of tools in the Tool Table\n"
+"by first selecting a row in the Tool Table."
+msgstr ""
+"Copy a selection of tools in the Tool Table\n"
+"by first selecting a row in the Tool Table."
+
+#: AppGUI/ObjectUI.py:1727
+msgid ""
+"Delete a selection of tools in the Tool Table\n"
+"by first selecting a row in the Tool Table."
+msgstr ""
+"Delete a selection of tools in the Tool Table\n"
+"by first selecting a row in the Tool Table."
+
+#: AppGUI/ObjectUI.py:1854
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:103
+msgid ""
+"Height of the tool when\n"
+"moving without cutting."
+msgstr ""
+"Height of the tool when\n"
+"moving without cutting."
+
+#: AppGUI/ObjectUI.py:1887
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:202
+msgid ""
+"Cutting speed in the XY\n"
+"plane in units per minute.\n"
+"It is called also Plunge."
+msgstr ""
+"Cutting speed in the XY\n"
+"plane in units per minute.\n"
+"It is called also Plunge."
+
+#: AppGUI/ObjectUI.py:1902
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:66
+msgid ""
+"Cutting speed in the XY plane\n"
+"(in units per minute).\n"
+"This is for the rapid move G00.\n"
+"It is useful only for Marlin,\n"
+"ignore for any other cases."
+msgstr ""
+"Cutting speed in the XY plane\n"
+"(in units per minute).\n"
+"This is for the rapid move G00.\n"
+"It is useful only for Marlin,\n"
+"ignore for any other cases."
+
+#: AppGUI/ObjectUI.py:1946
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:219
+msgid ""
+"Speed of the spindle in RPM (optional).\n"
+"If LASER preprocessor is used,\n"
+"this value is the power of laser."
+msgstr ""
+"Speed of the spindle in RPM (optional).\n"
+"If LASER preprocessor is used,\n"
+"this value is the power of laser."
+
+#: AppGUI/ObjectUI.py:2049
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:124
+msgid ""
+"Include tool-change sequence\n"
+"in the Machine Code (Pause for tool change)."
+msgstr ""
+"Include tool-change sequence\n"
+"in the Machine Code (Pause for tool change)."
+
+#: AppGUI/ObjectUI.py:2118
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:256
+msgid ""
+"The Preprocessor file that dictates\n"
+"the Machine Code (like GCode, RML, HPGL) output."
+msgstr ""
+"The Preprocessor file that dictates\n"
+"the Machine Code (like GCode, RML, HPGL) output."
+
+#: AppGUI/ObjectUI.py:2247 Common.py:405 Common.py:520 Common.py:573
+msgid "Generate the CNC Job object."
+msgstr "Generate the CNC Job object."
+
+#: AppGUI/ObjectUI.py:2264
+msgid "Launch Paint Tool in Tools Tab."
+msgstr "Launch Paint Tool in Tools Tab."
+
+#: AppGUI/ObjectUI.py:2272 AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:35
+msgid ""
+"Creates tool paths to cover the\n"
+"whole area of a polygon (remove\n"
+"all copper). You will be asked\n"
+"to click on the desired polygon."
+msgstr ""
+"Creates tool paths to cover the\n"
+"whole area of a polygon (remove\n"
+"all copper). You will be asked\n"
+"to click on the desired polygon."
+
+#: AppGUI/ObjectUI.py:2327
+msgid "CNC Job Object"
+msgstr "CNC Job Object"
+
+#: AppGUI/ObjectUI.py:2338 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:45
+msgid "Plot kind"
+msgstr "Plot kind"
+
+#: AppGUI/ObjectUI.py:2341 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:47
+msgid ""
+"This selects the kind of geometries on the canvas to plot.\n"
+"Those can be either of type 'Travel' which means the moves\n"
+"above the work piece or it can be of type 'Cut',\n"
+"which means the moves that cut into the material."
+msgstr ""
+"This selects the kind of geometries on the canvas to plot.\n"
+"Those can be either of type 'Travel' which means the moves\n"
+"above the work piece or it can be of type 'Cut',\n"
+"which means the moves that cut into the material."
+
+#: AppGUI/ObjectUI.py:2350 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:55
+msgid "Travel"
+msgstr "Travel"
+
+#: AppGUI/ObjectUI.py:2354 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:64
+msgid "Display Annotation"
+msgstr "Display Annotation"
+
+#: AppGUI/ObjectUI.py:2356 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:66
+msgid ""
+"This selects if to display text annotation on the plot.\n"
+"When checked it will display numbers in order for each end\n"
+"of a travel line."
+msgstr ""
+"This selects if to display text annotation on the plot.\n"
+"When checked it will display numbers in order for each end\n"
+"of a travel line."
+
+#: AppGUI/ObjectUI.py:2371
+msgid "Travelled dist."
+msgstr "Travelled dist."
+
+#: AppGUI/ObjectUI.py:2373 AppGUI/ObjectUI.py:2378
+msgid ""
+"This is the total travelled distance on X-Y plane.\n"
+"In current units."
+msgstr ""
+"This is the total travelled distance on X-Y plane.\n"
+"In current units."
+
+#: AppGUI/ObjectUI.py:2383
+msgid "Estimated time"
+msgstr "Estimated time"
+
+#: AppGUI/ObjectUI.py:2385 AppGUI/ObjectUI.py:2390
+msgid ""
+"This is the estimated time to do the routing/drilling,\n"
+"without the time spent in ToolChange events."
+msgstr ""
+"This is the estimated time to do the routing/drilling,\n"
+"without the time spent in ToolChange events."
+
+#: AppGUI/ObjectUI.py:2425
+msgid "CNC Tools Table"
+msgstr "CNC Tools Table"
+
+#: AppGUI/ObjectUI.py:2428
+msgid ""
+"Tools in this CNCJob object used for cutting.\n"
+"The tool diameter is used for plotting on canvas.\n"
+"The 'Offset' entry will set an offset for the cut.\n"
+"'Offset' can be inside, outside, on path (none) and custom.\n"
+"'Type' entry is only informative and it allow to know the \n"
+"intent of using the current tool. \n"
+"It can be Rough(ing), Finish(ing) or Iso(lation).\n"
+"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n"
+"ball(B), or V-Shaped(V)."
+msgstr ""
+"Tools in this CNCJob object used for cutting.\n"
+"The tool diameter is used for plotting on canvas.\n"
+"The 'Offset' entry will set an offset for the cut.\n"
+"'Offset' can be inside, outside, on path (none) and custom.\n"
+"'Type' entry is only informative and it allow to know the \n"
+"intent of using the current tool. \n"
+"It can be Rough(ing), Finish(ing) or Iso(lation).\n"
+"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n"
+"ball(B), or V-Shaped(V)."
+
+#: AppGUI/ObjectUI.py:2456 AppGUI/ObjectUI.py:2467
+msgid "P"
+msgstr "P"
+
+#: AppGUI/ObjectUI.py:2477
+msgid "Update Plot"
+msgstr "Update Plot"
+
+#: AppGUI/ObjectUI.py:2479
+msgid "Update the plot."
+msgstr "Update the plot."
+
+#: AppGUI/ObjectUI.py:2486
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:30
+msgid "Export CNC Code"
+msgstr "Export CNC Code"
+
+#: AppGUI/ObjectUI.py:2488
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:32
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:33
+msgid ""
+"Export and save G-Code to\n"
+"make this object to a file."
+msgstr ""
+"Export and save G-Code to\n"
+"make this object to a file."
+
+#: AppGUI/ObjectUI.py:2494
+msgid "Prepend to CNC Code"
+msgstr "Prepend to CNC Code"
+
+#: AppGUI/ObjectUI.py:2496 AppGUI/ObjectUI.py:2503
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:49
+msgid ""
+"Type here any G-Code commands you would\n"
+"like to add at the beginning of the G-Code file."
+msgstr ""
+"Type here any G-Code commands you would\n"
+"like to add at the beginning of the G-Code file."
+
+#: AppGUI/ObjectUI.py:2509
+msgid "Append to CNC Code"
+msgstr "Append to CNC Code"
+
+#: AppGUI/ObjectUI.py:2511 AppGUI/ObjectUI.py:2519
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:65
+msgid ""
+"Type here any G-Code commands you would\n"
+"like to append to the generated file.\n"
+"I.e.: M2 (End of program)"
+msgstr ""
+"Type here any G-Code commands you would\n"
+"like to append to the generated file.\n"
+"I.e.: M2 (End of program)"
+
+#: AppGUI/ObjectUI.py:2533
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:38
+msgid "Toolchange G-Code"
+msgstr "Toolchange G-Code"
+
+#: AppGUI/ObjectUI.py:2536
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:41
+msgid ""
+"Type here any G-Code commands you would\n"
+"like to be executed when Toolchange event is encountered.\n"
+"This will constitute a Custom Toolchange GCode,\n"
+"or a Toolchange Macro.\n"
+"The FlatCAM variables are surrounded by '%' symbol.\n"
+"\n"
+"WARNING: it can be used only with a preprocessor file\n"
+"that has 'toolchange_custom' in it's name and this is built\n"
+"having as template the 'Toolchange Custom' posprocessor file."
+msgstr ""
+"Type here any G-Code commands you would\n"
+"like to be executed when Toolchange event is encountered.\n"
+"This will constitute a Custom Toolchange GCode,\n"
+"or a Toolchange Macro.\n"
+"The FlatCAM variables are surrounded by '%' symbol.\n"
+"\n"
+"WARNING: it can be used only with a preprocessor file\n"
+"that has 'toolchange_custom' in it's name and this is built\n"
+"having as template the 'Toolchange Custom' posprocessor file."
+
+#: AppGUI/ObjectUI.py:2551
+msgid ""
+"Type here any G-Code commands you would\n"
+"like to be executed when Toolchange event is encountered.\n"
+"This will constitute a Custom Toolchange GCode,\n"
+"or a Toolchange Macro.\n"
+"The FlatCAM variables are surrounded by '%' symbol.\n"
+"WARNING: it can be used only with a preprocessor file\n"
+"that has 'toolchange_custom' in it's name."
+msgstr ""
+"Type here any G-Code commands you would\n"
+"like to be executed when Toolchange event is encountered.\n"
+"This will constitute a Custom Toolchange GCode,\n"
+"or a Toolchange Macro.\n"
+"The FlatCAM variables are surrounded by '%' symbol.\n"
+"WARNING: it can be used only with a preprocessor file\n"
+"that has 'toolchange_custom' in it's name."
+
+#: AppGUI/ObjectUI.py:2566
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:80
+msgid "Use Toolchange Macro"
+msgstr "Use Toolchange Macro"
+
+#: AppGUI/ObjectUI.py:2568
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:82
+msgid ""
+"Check this box if you want to use\n"
+"a Custom Toolchange GCode (macro)."
+msgstr ""
+"Check this box if you want to use\n"
+"a Custom Toolchange GCode (macro)."
+
+#: AppGUI/ObjectUI.py:2576
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:94
+msgid ""
+"A list of the FlatCAM variables that can be used\n"
+"in the Toolchange event.\n"
+"They have to be surrounded by the '%' symbol"
+msgstr ""
+"A list of the FlatCAM variables that can be used\n"
+"in the Toolchange event.\n"
+"They have to be surrounded by the '%' symbol"
+
+#: AppGUI/ObjectUI.py:2583
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:101
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:30
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:31
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:31
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:37
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:36
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:36
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:36
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:31
+#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:31
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:36
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:31
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:30
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:35
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:32
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31
+#: AppTools/ToolCopperThieving.py:89 AppTools/ToolCorners.py:106
+#: AppTools/ToolEtchCompensation.py:82 AppTools/ToolFiducials.py:149
+#: AppTools/ToolInvertGerber.py:82
+msgid "Parameters"
+msgstr "Parameters"
+
+#: AppGUI/ObjectUI.py:2586
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:106
+msgid "FlatCAM CNC parameters"
+msgstr "FlatCAM CNC parameters"
+
+#: AppGUI/ObjectUI.py:2587
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:111
+msgid "tool number"
+msgstr "tool number"
+
+#: AppGUI/ObjectUI.py:2588
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:112
+msgid "tool diameter"
+msgstr "tool diameter"
+
+#: AppGUI/ObjectUI.py:2589
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:113
+msgid "for Excellon, total number of drills"
+msgstr "for Excellon, total number of drills"
+
+#: AppGUI/ObjectUI.py:2591
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:115
+msgid "X coord for Toolchange"
+msgstr "X coord for Toolchange"
+
+#: AppGUI/ObjectUI.py:2592
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:116
+msgid "Y coord for Toolchange"
+msgstr "Y coord for Toolchange"
+
+#: AppGUI/ObjectUI.py:2593
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:118
+msgid "Z coord for Toolchange"
+msgstr "Z coord for Toolchange"
+
+#: AppGUI/ObjectUI.py:2594
+msgid "depth where to cut"
+msgstr "depth where to cut"
+
+#: AppGUI/ObjectUI.py:2595
+msgid "height where to travel"
+msgstr "height where to travel"
+
+#: AppGUI/ObjectUI.py:2596
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:121
+msgid "the step value for multidepth cut"
+msgstr "the step value for multidepth cut"
+
+#: AppGUI/ObjectUI.py:2598
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:123
+msgid "the value for the spindle speed"
+msgstr "the value for the spindle speed"
+
+#: AppGUI/ObjectUI.py:2600
+msgid "time to dwell to allow the spindle to reach it's set RPM"
+msgstr "time to dwell to allow the spindle to reach it's set RPM"
+
+#: AppGUI/ObjectUI.py:2616
+msgid "View CNC Code"
+msgstr "View CNC Code"
+
+#: AppGUI/ObjectUI.py:2618
+msgid ""
+"Opens TAB to view/modify/print G-Code\n"
+"file."
+msgstr ""
+"Opens TAB to view/modify/print G-Code\n"
+"file."
+
+#: AppGUI/ObjectUI.py:2623
+msgid "Save CNC Code"
+msgstr "Save CNC Code"
+
+#: AppGUI/ObjectUI.py:2625
+msgid ""
+"Opens dialog to save G-Code\n"
+"file."
+msgstr ""
+"Opens dialog to save G-Code\n"
+"file."
+
+#: AppGUI/ObjectUI.py:2659
+msgid "Script Object"
+msgstr "Script Object"
+
+#: AppGUI/ObjectUI.py:2679 AppGUI/ObjectUI.py:2753
+msgid "Auto Completer"
+msgstr "Auto Completer"
+
+#: AppGUI/ObjectUI.py:2681
+msgid "This selects if the auto completer is enabled in the Script Editor."
+msgstr "This selects if the auto completer is enabled in the Script Editor."
+
+#: AppGUI/ObjectUI.py:2726
+msgid "Document Object"
+msgstr "Document Object"
+
+#: AppGUI/ObjectUI.py:2755
+msgid "This selects if the auto completer is enabled in the Document Editor."
+msgstr "This selects if the auto completer is enabled in the Document Editor."
+
+#: AppGUI/ObjectUI.py:2773
+msgid "Font Type"
+msgstr "Font Type"
+
+#: AppGUI/ObjectUI.py:2790
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:197
+msgid "Font Size"
+msgstr "Font Size"
+
+#: AppGUI/ObjectUI.py:2826
+msgid "Alignment"
+msgstr "Alignment"
+
+#: AppGUI/ObjectUI.py:2831
+msgid "Align Left"
+msgstr "Align Left"
+
+#: AppGUI/ObjectUI.py:2836 App_Main.py:4687
+msgid "Center"
+msgstr "Center"
+
+#: AppGUI/ObjectUI.py:2841
+msgid "Align Right"
+msgstr "Align Right"
+
+#: AppGUI/ObjectUI.py:2846
+msgid "Justify"
+msgstr "Justify"
+
+#: AppGUI/ObjectUI.py:2853
+msgid "Font Color"
+msgstr "Font Color"
+
+#: AppGUI/ObjectUI.py:2855
+msgid "Set the font color for the selected text"
+msgstr "Set the font color for the selected text"
+
+#: AppGUI/ObjectUI.py:2869
+msgid "Selection Color"
+msgstr "Selection Color"
+
+#: AppGUI/ObjectUI.py:2871
+msgid "Set the selection color when doing text selection."
+msgstr "Set the selection color when doing text selection."
+
+#: AppGUI/ObjectUI.py:2885
+msgid "Tab Size"
+msgstr "Tab Size"
+
+#: AppGUI/ObjectUI.py:2887
+msgid "Set the tab size. In pixels. Default value is 80 pixels."
+msgstr "Set the tab size. In pixels. Default value is 80 pixels."
+
+#: AppGUI/PlotCanvasLegacy.py:1464
+msgid ""
+"Could not annotate due of a difference between the number of text elements "
+"and the number of text positions."
+msgstr ""
+"Could not annotate due of a difference between the number of text elements "
+"and the number of text positions."
+
+#: AppGUI/preferences/PreferencesUIManager.py:911
+#: AppGUI/preferences/PreferencesUIManager.py:1002
+#: AppGUI/preferences/PreferencesUIManager.py:1026
+#: AppGUI/preferences/PreferencesUIManager.py:1132 App_Main.py:5107
+msgid "Preferences"
+msgstr "Preferences"
+
+#: AppGUI/preferences/PreferencesUIManager.py:917
+msgid "Preferences applied."
+msgstr "Preferences applied."
+
+#: AppGUI/preferences/PreferencesUIManager.py:937
+msgid "Are you sure you want to continue?"
+msgstr "Are you sure you want to continue?"
+
+#: AppGUI/preferences/PreferencesUIManager.py:938
+msgid "Application restart"
+msgstr "Application restart"
+
+#: AppGUI/preferences/PreferencesUIManager.py:1031
+msgid "Preferences closed without saving."
+msgstr "Preferences closed without saving."
+
+#: AppGUI/preferences/PreferencesUIManager.py:1043
+msgid "Preferences default values are restored."
+msgstr "Preferences default values are restored."
+
+#: AppGUI/preferences/PreferencesUIManager.py:1075 App_Main.py:2476
+#: App_Main.py:2544
+msgid "Failed to write defaults to file."
+msgstr "Failed to write defaults to file."
+
+#: AppGUI/preferences/PreferencesUIManager.py:1079
+#: AppGUI/preferences/PreferencesUIManager.py:1188
+msgid "Preferences saved."
+msgstr "Preferences saved."
+
+#: AppGUI/preferences/PreferencesUIManager.py:1129
+msgid "Preferences edited but not saved."
+msgstr "Preferences edited but not saved."
+
+#: AppGUI/preferences/PreferencesUIManager.py:1174
+msgid ""
+"One or more values are changed.\n"
+"Do you want to save the Preferences?"
+msgstr ""
+"One or more values are changed.\n"
+"Do you want to save the Preferences?"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:27
+msgid "CNC Job Adv. Options"
+msgstr "CNC Job Adv. Options"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:64
+msgid ""
+"Type here any G-Code commands you would like to be executed when Toolchange "
+"event is encountered.\n"
+"This will constitute a Custom Toolchange GCode, or a Toolchange Macro.\n"
+"The FlatCAM variables are surrounded by '%' symbol.\n"
+"WARNING: it can be used only with a preprocessor file that has "
+"'toolchange_custom' in it's name."
+msgstr ""
+"Type here any G-Code commands you would like to be executed when Toolchange "
+"event is encountered.\n"
+"This will constitute a Custom Toolchange GCode, or a Toolchange Macro.\n"
+"The FlatCAM variables are surrounded by '%' symbol.\n"
+"WARNING: it can be used only with a preprocessor file that has "
+"'toolchange_custom' in it's name."
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:119
+msgid "Z depth for the cut"
+msgstr "Z depth for the cut"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:120
+msgid "Z height for travel"
+msgstr "Z height for travel"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:126
+msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM"
+msgstr "dwelltime = time to dwell to allow the spindle to reach it's set RPM"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:145
+msgid "Annotation Size"
+msgstr "Annotation Size"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:147
+msgid "The font size of the annotation text. In pixels."
+msgstr "The font size of the annotation text. In pixels."
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:157
+msgid "Annotation Color"
+msgstr "Annotation Color"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:159
+msgid "Set the font color for the annotation texts."
+msgstr "Set the font color for the annotation texts."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:26
+msgid "CNC Job General"
+msgstr "CNC Job General"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:77
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:47
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:59
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:45
+msgid "Circle Steps"
+msgstr "Circle Steps"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:79
+msgid ""
+"The number of circle steps for GCode \n"
+"circle and arc shapes linear approximation."
+msgstr ""
+"The number of circle steps for GCode \n"
+"circle and arc shapes linear approximation."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:88
+msgid "Travel dia"
+msgstr "Travel dia"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:90
+msgid ""
+"The width of the travel lines to be\n"
+"rendered in the plot."
+msgstr ""
+"The width of the travel lines to be\n"
+"rendered in the plot."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:103
+msgid "G-code Decimals"
+msgstr "G-code Decimals"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:106
+#: AppTools/ToolFiducials.py:74
+msgid "Coordinates"
+msgstr "Coordinates"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:108
+msgid ""
+"The number of decimals to be used for \n"
+"the X, Y, Z coordinates in CNC code (GCODE, etc.)"
+msgstr ""
+"The number of decimals to be used for \n"
+"the X, Y, Z coordinates in CNC code (GCODE, etc.)"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:119
+#: AppTools/ToolProperties.py:519
+msgid "Feedrate"
+msgstr "Feedrate"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:121
+msgid ""
+"The number of decimals to be used for \n"
+"the Feedrate parameter in CNC code (GCODE, etc.)"
+msgstr ""
+"The number of decimals to be used for \n"
+"the Feedrate parameter in CNC code (GCODE, etc.)"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:132
+msgid "Coordinates type"
+msgstr "Coordinates type"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:134
+msgid ""
+"The type of coordinates to be used in Gcode.\n"
+"Can be:\n"
+"- Absolute G90 -> the reference is the origin x=0, y=0\n"
+"- Incremental G91 -> the reference is the previous position"
+msgstr ""
+"The type of coordinates to be used in Gcode.\n"
+"Can be:\n"
+"- Absolute G90 -> the reference is the origin x=0, y=0\n"
+"- Incremental G91 -> the reference is the previous position"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:140
+msgid "Absolute G90"
+msgstr "Absolute G90"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:141
+msgid "Incremental G91"
+msgstr "Incremental G91"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:151
+msgid "Force Windows style line-ending"
+msgstr "Force Windows style line-ending"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:153
+msgid ""
+"When checked will force a Windows style line-ending\n"
+"(\\r\\n) on non-Windows OS's."
+msgstr ""
+"When checked will force a Windows style line-ending\n"
+"(\\r\\n) on non-Windows OS's."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:165
+msgid "Travel Line Color"
+msgstr "Travel Line Color"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:169
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:235
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:262
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:154
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:220
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:84
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:153
+#: AppTools/ToolRulesCheck.py:186
+msgid "Outline"
+msgstr "Outline"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:171
+msgid "Set the travel line color for plotted objects."
+msgstr "Set the travel line color for plotted objects."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:186
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:252
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:279
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:170
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:237
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:170
+msgid "Fill"
+msgstr "Fill"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:188
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:254
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:281
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:172
+msgid ""
+"Set the fill color for plotted objects.\n"
+"First 6 digits are the color and the last 2\n"
+"digits are for alpha (transparency) level."
+msgstr ""
+"Set the fill color for plotted objects.\n"
+"First 6 digits are the color and the last 2\n"
+"digits are for alpha (transparency) level."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:205
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:298
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:190
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:257
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:189
+msgid "Alpha"
+msgstr "Alpha"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:207
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:300
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:191
+msgid "Set the fill transparency for plotted objects."
+msgstr "Set the fill transparency for plotted objects."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:231
+msgid "CNCJob Object Color"
+msgstr "CNCJob Object Color"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:237
+msgid "Set the color for plotted objects."
+msgstr "Set the color for plotted objects."
+
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:27
+msgid "CNC Job Options"
+msgstr "CNC Job Options"
+
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:31
+msgid "Export G-Code"
+msgstr "Export G-Code"
+
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:47
+msgid "Prepend to G-Code"
+msgstr "Prepend to G-Code"
+
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:56
+msgid ""
+"Type here any G-Code commands you would like to add at the beginning of the "
+"G-Code file."
+msgstr ""
+"Type here any G-Code commands you would like to add at the beginning of the "
+"G-Code file."
+
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:63
+msgid "Append to G-Code"
+msgstr "Append to G-Code"
+
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:73
+msgid ""
+"Type here any G-Code commands you would like to append to the generated "
+"file.\n"
+"I.e.: M2 (End of program)"
+msgstr ""
+"Type here any G-Code commands you would like to append to the generated "
+"file.\n"
+"I.e.: M2 (End of program)"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:27
+msgid "Excellon Adv. Options"
+msgstr "Excellon Adv. Options"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:34
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:33
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:31
+msgid "Advanced Options"
+msgstr "Advanced Options"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:36
+msgid ""
+"A list of Excellon advanced parameters.\n"
+"Those parameters are available only for\n"
+"Advanced App. Level."
+msgstr ""
+"A list of Excellon advanced parameters.\n"
+"Those parameters are available only for\n"
+"Advanced App. Level."
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:59
+msgid "Toolchange X,Y"
+msgstr "Toolchange X,Y"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:61
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:47
+msgid "Toolchange X,Y position."
+msgstr "Toolchange X,Y position."
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:121
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:134
+msgid "Spindle direction"
+msgstr "Spindle direction"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:123
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:136
+msgid ""
+"This sets the direction that the spindle is rotating.\n"
+"It can be either:\n"
+"- CW = clockwise or\n"
+"- CCW = counter clockwise"
+msgstr ""
+"This sets the direction that the spindle is rotating.\n"
+"It can be either:\n"
+"- CW = clockwise or\n"
+"- CCW = counter clockwise"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:134
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:148
+msgid "Fast Plunge"
+msgstr "Fast Plunge"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:136
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:150
+msgid ""
+"By checking this, the vertical move from\n"
+"Z_Toolchange to Z_move is done with G0,\n"
+"meaning the fastest speed available.\n"
+"WARNING: the move is done at Toolchange X,Y coords."
+msgstr ""
+"By checking this, the vertical move from\n"
+"Z_Toolchange to Z_move is done with G0,\n"
+"meaning the fastest speed available.\n"
+"WARNING: the move is done at Toolchange X,Y coords."
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:143
+msgid "Fast Retract"
+msgstr "Fast Retract"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:145
+msgid ""
+"Exit hole strategy.\n"
+" - When uncheked, while exiting the drilled hole the drill bit\n"
+"will travel slow, with set feedrate (G1), up to zero depth and then\n"
+"travel as fast as possible (G0) to the Z Move (travel height).\n"
+" - When checked the travel from Z cut (cut depth) to Z_move\n"
+"(travel height) is done as fast as possible (G0) in one move."
+msgstr ""
+"Exit hole strategy.\n"
+" - When uncheked, while exiting the drilled hole the drill bit\n"
+"will travel slow, with set feedrate (G1), up to zero depth and then\n"
+"travel as fast as possible (G0) to the Z Move (travel height).\n"
+" - When checked the travel from Z cut (cut depth) to Z_move\n"
+"(travel height) is done as fast as possible (G0) in one move."
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:32
+msgid "A list of Excellon Editor parameters."
+msgstr "A list of Excellon Editor parameters."
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:40
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:41
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:41
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:194
+msgid "Selection limit"
+msgstr "Selection limit"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:42
+msgid ""
+"Set the number of selected Excellon geometry\n"
+"items above which the utility geometry\n"
+"becomes just a selection rectangle.\n"
+"Increases the performance when moving a\n"
+"large number of geometric elements."
+msgstr ""
+"Set the number of selected Excellon geometry\n"
+"items above which the utility geometry\n"
+"becomes just a selection rectangle.\n"
+"Increases the performance when moving a\n"
+"large number of geometric elements."
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:55
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:117
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:123
+msgid "New Dia"
+msgstr "New Dia"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:80
+msgid "Linear Drill Array"
+msgstr "Linear Drill Array"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:84
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:232
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:120
+msgid "Linear Direction"
+msgstr "Linear Direction"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:126
+msgid "Circular Drill Array"
+msgstr "Circular Drill Array"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:130
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:280
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:164
+msgid "Circular Direction"
+msgstr "Circular Direction"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:132
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:282
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:166
+msgid ""
+"Direction for circular array.\n"
+"Can be CW = clockwise or CCW = counter clockwise."
+msgstr ""
+"Direction for circular array.\n"
+"Can be CW = clockwise or CCW = counter clockwise."
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:143
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:293
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:177
+msgid "Circular Angle"
+msgstr "Circular Angle"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:196
+msgid ""
+"Angle at which the slot is placed.\n"
+"The precision is of max 2 decimals.\n"
+"Min value is: -359.99 degrees.\n"
+"Max value is: 360.00 degrees."
+msgstr ""
+"Angle at which the slot is placed.\n"
+"The precision is of max 2 decimals.\n"
+"Min value is: -359.99 degrees.\n"
+"Max value is: 360.00 degrees."
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:215
+msgid "Linear Slot Array"
+msgstr "Linear Slot Array"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:276
+msgid "Circular Slot Array"
+msgstr "Circular Slot Array"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:26
+msgid "Excellon Export"
+msgstr "Excellon Export"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:30
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:31
+msgid "Export Options"
+msgstr "Export Options"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:32
+msgid ""
+"The parameters set here are used in the file exported\n"
+"when using the File -> Export -> Export Excellon menu entry."
+msgstr ""
+"The parameters set here are used in the file exported\n"
+"when using the File -> Export -> Export Excellon menu entry."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:41
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:163
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:39
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:42
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:82
+#: AppTools/ToolDistance.py:56 AppTools/ToolDistanceMin.py:49
+#: AppTools/ToolPcbWizard.py:127 AppTools/ToolProperties.py:154
+msgid "Units"
+msgstr "Units"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:43
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:49
+msgid "The units used in the Excellon file."
+msgstr "The units used in the Excellon file."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:46
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:87
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:173
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:47
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:87
+#: AppTools/ToolCalculators.py:61 AppTools/ToolPcbWizard.py:125
+msgid "INCH"
+msgstr "INCH"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:47
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:174
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:43
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:48
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:88
+#: AppTools/ToolCalculators.py:62 AppTools/ToolPcbWizard.py:126
+msgid "MM"
+msgstr "MM"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:55
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:56
+msgid "Int/Decimals"
+msgstr "Int/Decimals"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:57
+msgid ""
+"The NC drill files, usually named Excellon files\n"
+"are files that can be found in different formats.\n"
+"Here we set the format used when the provided\n"
+"coordinates are not using period."
+msgstr ""
+"The NC drill files, usually named Excellon files\n"
+"are files that can be found in different formats.\n"
+"Here we set the format used when the provided\n"
+"coordinates are not using period."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:69
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:95
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:124
+msgid ""
+"This numbers signify the number of digits in\n"
+"the whole part of Excellon coordinates."
+msgstr ""
+"This numbers signify the number of digits in\n"
+"the whole part of Excellon coordinates."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:82
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:108
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:137
+msgid ""
+"This numbers signify the number of digits in\n"
+"the decimal part of Excellon coordinates."
+msgstr ""
+"This numbers signify the number of digits in\n"
+"the decimal part of Excellon coordinates."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:91
+msgid "Format"
+msgstr "Format"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:93
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:103
+msgid ""
+"Select the kind of coordinates format used.\n"
+"Coordinates can be saved with decimal point or without.\n"
+"When there is no decimal point, it is required to specify\n"
+"the number of digits for integer part and the number of decimals.\n"
+"Also it will have to be specified if LZ = leading zeros are kept\n"
+"or TZ = trailing zeros are kept."
+msgstr ""
+"Select the kind of coordinates format used.\n"
+"Coordinates can be saved with decimal point or without.\n"
+"When there is no decimal point, it is required to specify\n"
+"the number of digits for integer part and the number of decimals.\n"
+"Also it will have to be specified if LZ = leading zeros are kept\n"
+"or TZ = trailing zeros are kept."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:100
+msgid "Decimal"
+msgstr "Decimal"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:101
+msgid "No-Decimal"
+msgstr "No-Decimal"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:114
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:145
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:96
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:97
+msgid "Zeros"
+msgstr "Zeros"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:117
+msgid ""
+"This sets the type of Excellon zeros.\n"
+"If LZ then Leading Zeros are kept and\n"
+"Trailing Zeros are removed.\n"
+"If TZ is checked then Trailing Zeros are kept\n"
+"and Leading Zeros are removed."
+msgstr ""
+"This sets the type of Excellon zeros.\n"
+"If LZ then Leading Zeros are kept and\n"
+"Trailing Zeros are removed.\n"
+"If TZ is checked then Trailing Zeros are kept\n"
+"and Leading Zeros are removed."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:124
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:158
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:106
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:107
+#: AppTools/ToolPcbWizard.py:111
+msgid "LZ"
+msgstr "LZ"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:125
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:159
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:107
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:108
+#: AppTools/ToolPcbWizard.py:112
+msgid "TZ"
+msgstr "TZ"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:127
+msgid ""
+"This sets the default type of Excellon zeros.\n"
+"If LZ then Leading Zeros are kept and\n"
+"Trailing Zeros are removed.\n"
+"If TZ is checked then Trailing Zeros are kept\n"
+"and Leading Zeros are removed."
+msgstr ""
+"This sets the default type of Excellon zeros.\n"
+"If LZ then Leading Zeros are kept and\n"
+"Trailing Zeros are removed.\n"
+"If TZ is checked then Trailing Zeros are kept\n"
+"and Leading Zeros are removed."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:137
+msgid "Slot type"
+msgstr "Slot type"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:140
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:150
+msgid ""
+"This sets how the slots will be exported.\n"
+"If ROUTED then the slots will be routed\n"
+"using M15/M16 commands.\n"
+"If DRILLED(G85) the slots will be exported\n"
+"using the Drilled slot command (G85)."
+msgstr ""
+"This sets how the slots will be exported.\n"
+"If ROUTED then the slots will be routed\n"
+"using M15/M16 commands.\n"
+"If DRILLED(G85) the slots will be exported\n"
+"using the Drilled slot command (G85)."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:147
+msgid "Routed"
+msgstr "Routed"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:148
+msgid "Drilled(G85)"
+msgstr "Drilled(G85)"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:29
+msgid "Excellon General"
+msgstr "Excellon General"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:62
+msgid "Excellon Format"
+msgstr "Excellon Format"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:64
+msgid ""
+"The NC drill files, usually named Excellon files\n"
+"are files that can be found in different formats.\n"
+"Here we set the format used when the provided\n"
+"coordinates are not using period.\n"
+"\n"
+"Possible presets:\n"
+"\n"
+"PROTEUS 3:3 MM LZ\n"
+"DipTrace 5:2 MM TZ\n"
+"DipTrace 4:3 MM LZ\n"
+"\n"
+"EAGLE 3:3 MM TZ\n"
+"EAGLE 4:3 MM TZ\n"
+"EAGLE 2:5 INCH TZ\n"
+"EAGLE 3:5 INCH TZ\n"
+"\n"
+"ALTIUM 2:4 INCH LZ\n"
+"Sprint Layout 2:4 INCH LZ\n"
+"KiCAD 3:5 INCH TZ"
+msgstr ""
+"The NC drill files, usually named Excellon files\n"
+"are files that can be found in different formats.\n"
+"Here we set the format used when the provided\n"
+"coordinates are not using period.\n"
+"\n"
+"Possible presets:\n"
+"\n"
+"PROTEUS 3:3 MM LZ\n"
+"DipTrace 5:2 MM TZ\n"
+"DipTrace 4:3 MM LZ\n"
+"\n"
+"EAGLE 3:3 MM TZ\n"
+"EAGLE 4:3 MM TZ\n"
+"EAGLE 2:5 INCH TZ\n"
+"EAGLE 3:5 INCH TZ\n"
+"\n"
+"ALTIUM 2:4 INCH LZ\n"
+"Sprint Layout 2:4 INCH LZ\n"
+"KiCAD 3:5 INCH TZ"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:88
+msgid "Default values for INCH are 2:4"
+msgstr "Default values for INCH are 2:4"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:116
+msgid "METRIC"
+msgstr "METRIC"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:117
+msgid "Default values for METRIC are 3:3"
+msgstr "Default values for METRIC are 3:3"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:148
+msgid ""
+"This sets the type of Excellon zeros.\n"
+"If LZ then Leading Zeros are kept and\n"
+"Trailing Zeros are removed.\n"
+"If TZ is checked then Trailing Zeros are kept\n"
+"and Leading Zeros are removed.\n"
+"\n"
+"This is used when there is no information\n"
+"stored in the Excellon file."
+msgstr ""
+"This sets the type of Excellon zeros.\n"
+"If LZ then Leading Zeros are kept and\n"
+"Trailing Zeros are removed.\n"
+"If TZ is checked then Trailing Zeros are kept\n"
+"and Leading Zeros are removed.\n"
+"\n"
+"This is used when there is no information\n"
+"stored in the Excellon file."
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:166
+msgid ""
+"This sets the default units of Excellon files.\n"
+"If it is not detected in the parsed file the value here\n"
+"will be used.Some Excellon files don't have an header\n"
+"therefore this parameter will be used."
+msgstr ""
+"This sets the default units of Excellon files.\n"
+"If it is not detected in the parsed file the value here\n"
+"will be used.Some Excellon files don't have an header\n"
+"therefore this parameter will be used."
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:176
+msgid ""
+"This sets the units of Excellon files.\n"
+"Some Excellon files don't have an header\n"
+"therefore this parameter will be used."
+msgstr ""
+"This sets the units of Excellon files.\n"
+"Some Excellon files don't have an header\n"
+"therefore this parameter will be used."
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:184
+msgid "Update Export settings"
+msgstr "Update Export settings"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:201
+msgid "Excellon Optimization"
+msgstr "Excellon Optimization"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:204
+msgid "Algorithm:"
+msgstr "Algorithm:"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:206
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:222
+msgid ""
+"This sets the optimization type for the Excellon drill path.\n"
+"If <> is checked then Google OR-Tools algorithm with\n"
+"MetaHeuristic Guided Local Path is used. Default search time is 3sec.\n"
+"If <> is checked then Google OR-Tools Basic algorithm is used.\n"
+"If <> is checked then Travelling Salesman algorithm is used for\n"
+"drill path optimization.\n"
+"\n"
+"If this control is disabled, then FlatCAM works in 32bit mode and it uses\n"
+"Travelling Salesman algorithm for path optimization."
+msgstr ""
+"This sets the optimization type for the Excellon drill path.\n"
+"If <> is checked then Google OR-Tools algorithm with\n"
+"MetaHeuristic Guided Local Path is used. Default search time is 3sec.\n"
+"If <> is checked then Google OR-Tools Basic algorithm is used.\n"
+"If <> is checked then Travelling Salesman algorithm is used for\n"
+"drill path optimization.\n"
+"\n"
+"If this control is disabled, then FlatCAM works in 32bit mode and it uses\n"
+"Travelling Salesman algorithm for path optimization."
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:217
+msgid "MetaHeuristic"
+msgstr "MetaHeuristic"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:218
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:104
+#: AppObjects/FlatCAMExcellon.py:683 AppObjects/FlatCAMGeometry.py:561
+#: AppObjects/FlatCAMGerber.py:251
+msgid "Basic"
+msgstr "Basic"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:219
+msgid "TSA"
+msgstr "TSA"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:236
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:245
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:237
+msgid "Duration"
+msgstr "Duration"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:239
+msgid ""
+"When OR-Tools Metaheuristic (MH) is enabled there is a\n"
+"maximum threshold for how much time is spent doing the\n"
+"path optimization. This max duration is set here.\n"
+"In seconds."
+msgstr ""
+"When OR-Tools Metaheuristic (MH) is enabled there is a\n"
+"maximum threshold for how much time is spent doing the\n"
+"path optimization. This max duration is set here.\n"
+"In seconds."
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:258
+msgid "Excellon Object Color"
+msgstr "Excellon Object Color"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:264
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:86
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:155
+msgid "Set the line color for plotted objects."
+msgstr "Set the line color for plotted objects."
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:29
+msgid "Excellon Options"
+msgstr "Excellon Options"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:33
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:34
+msgid "Create CNC Job"
+msgstr "Create CNC Job"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:35
+msgid ""
+"Parameters used to create a CNC Job object\n"
+"for this drill object."
+msgstr ""
+"Parameters used to create a CNC Job object\n"
+"for this drill object."
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:152
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:121
+msgid "Tool change"
+msgstr "Tool change"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:236
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:232
+msgid "Enable Dwell"
+msgstr "Enable Dwell"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:259
+msgid ""
+"The preprocessor JSON file that dictates\n"
+"Gcode output."
+msgstr ""
+"The preprocessor JSON file that dictates\n"
+"Gcode output."
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:270
+msgid "Gcode"
+msgstr "Gcode"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:272
+msgid ""
+"Choose what to use for GCode generation:\n"
+"'Drills', 'Slots' or 'Both'.\n"
+"When choosing 'Slots' or 'Both', slots will be\n"
+"converted to drills."
+msgstr ""
+"Choose what to use for GCode generation:\n"
+"'Drills', 'Slots' or 'Both'.\n"
+"When choosing 'Slots' or 'Both', slots will be\n"
+"converted to drills."
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:288
+msgid "Mill Holes"
+msgstr "Mill Holes"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:290
+msgid "Create Geometry for milling holes."
+msgstr "Create Geometry for milling holes."
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:294
+msgid "Drill Tool dia"
+msgstr "Drill Tool dia"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:305
+msgid "Slot Tool dia"
+msgstr "Slot Tool dia"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:307
+msgid ""
+"Diameter of the cutting tool\n"
+"when milling slots."
+msgstr ""
+"Diameter of the cutting tool\n"
+"when milling slots."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:28
+msgid "App Settings"
+msgstr "App Settings"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:49
+msgid "Grid Settings"
+msgstr "Grid Settings"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:53
+msgid "X value"
+msgstr "X value"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:55
+msgid "This is the Grid snap value on X axis."
+msgstr "This is the Grid snap value on X axis."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:65
+msgid "Y value"
+msgstr "Y value"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:67
+msgid "This is the Grid snap value on Y axis."
+msgstr "This is the Grid snap value on Y axis."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:77
+msgid "Snap Max"
+msgstr "Snap Max"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:92
+msgid "Workspace Settings"
+msgstr "Workspace Settings"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:95
+msgid "Active"
+msgstr "Active"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:97
+msgid ""
+"Draw a delimiting rectangle on canvas.\n"
+"The purpose is to illustrate the limits for our work."
+msgstr ""
+"Draw a delimiting rectangle on canvas.\n"
+"The purpose is to illustrate the limits for our work."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:105
+msgid ""
+"Select the type of rectangle to be used on canvas,\n"
+"as valid workspace."
+msgstr ""
+"Select the type of rectangle to be used on canvas,\n"
+"as valid workspace."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:171
+msgid "Orientation"
+msgstr "Orientation"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:172
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:239
+#: AppTools/ToolFilm.py:405
+msgid ""
+"Can be:\n"
+"- Portrait\n"
+"- Landscape"
+msgstr ""
+"Can be:\n"
+"- Portrait\n"
+"- Landscape"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:176
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:243
+#: AppTools/ToolFilm.py:409
+msgid "Portrait"
+msgstr "Portrait"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:177
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:244
+#: AppTools/ToolFilm.py:410
+msgid "Landscape"
+msgstr "Landscape"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:201
+msgid "Notebook"
+msgstr "Notebook"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:203
+msgid ""
+"This sets the font size for the elements found in the Notebook.\n"
+"The notebook is the collapsible area in the left side of the AppGUI,\n"
+"and include the Project, Selected and Tool tabs."
+msgstr ""
+"This sets the font size for the elements found in the Notebook.\n"
+"The notebook is the collapsible area in the left side of the AppGUI,\n"
+"and include the Project, Selected and Tool tabs."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:222
+msgid "Axis"
+msgstr "Axis"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:224
+msgid "This sets the font size for canvas axis."
+msgstr "This sets the font size for canvas axis."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:241
+msgid "Textbox"
+msgstr "Textbox"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:243
+msgid ""
+"This sets the font size for the Textbox AppGUI\n"
+"elements that are used in FlatCAM."
+msgstr ""
+"This sets the font size for the Textbox AppGUI\n"
+"elements that are used in FlatCAM."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:261
+msgid "HUD"
+msgstr "HUD"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:263
+msgid "This sets the font size for the Heads Up Display."
+msgstr "This sets the font size for the Heads Up Display."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:288
+msgid "Mouse Settings"
+msgstr "Mouse Settings"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:292
+msgid "Cursor Shape"
+msgstr "Cursor Shape"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:294
+msgid ""
+"Choose a mouse cursor shape.\n"
+"- Small -> with a customizable size.\n"
+"- Big -> Infinite lines"
+msgstr ""
+"Choose a mouse cursor shape.\n"
+"- Small -> with a customizable size.\n"
+"- Big -> Infinite lines"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:300
+msgid "Small"
+msgstr "Small"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:301
+msgid "Big"
+msgstr "Big"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:308
+msgid "Cursor Size"
+msgstr "Cursor Size"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:310
+msgid "Set the size of the mouse cursor, in pixels."
+msgstr "Set the size of the mouse cursor, in pixels."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:321
+msgid "Cursor Width"
+msgstr "Cursor Width"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:323
+msgid "Set the line width of the mouse cursor, in pixels."
+msgstr "Set the line width of the mouse cursor, in pixels."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:334
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:341
+msgid "Cursor Color"
+msgstr "Cursor Color"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:336
+msgid "Check this box to color mouse cursor."
+msgstr "Check this box to color mouse cursor."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:343
+msgid "Set the color of the mouse cursor."
+msgstr "Set the color of the mouse cursor."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:366
+msgid "Pan Button"
+msgstr "Pan Button"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:368
+msgid ""
+"Select the mouse button to use for panning:\n"
+"- MMB --> Middle Mouse Button\n"
+"- RMB --> Right Mouse Button"
+msgstr ""
+"Select the mouse button to use for panning:\n"
+"- MMB --> Middle Mouse Button\n"
+"- RMB --> Right Mouse Button"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:372
+msgid "MMB"
+msgstr "MMB"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:373
+msgid "RMB"
+msgstr "RMB"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:379
+msgid "Multiple Selection"
+msgstr "Multiple Selection"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:381
+msgid "Select the key used for multiple selection."
+msgstr "Select the key used for multiple selection."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:383
+msgid "CTRL"
+msgstr "CTRL"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:384
+msgid "SHIFT"
+msgstr "SHIFT"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:395
+msgid "Delete object confirmation"
+msgstr "Delete object confirmation"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:397
+msgid ""
+"When checked the application will ask for user confirmation\n"
+"whenever the Delete object(s) event is triggered, either by\n"
+"menu shortcut or key shortcut."
+msgstr ""
+"When checked the application will ask for user confirmation\n"
+"whenever the Delete object(s) event is triggered, either by\n"
+"menu shortcut or key shortcut."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:404
+msgid "\"Open\" behavior"
+msgstr "\"Open\" behavior"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:406
+msgid ""
+"When checked the path for the last saved file is used when saving files,\n"
+"and the path for the last opened file is used when opening files.\n"
+"\n"
+"When unchecked the path for opening files is the one used last: either the\n"
+"path for saving files or the path for opening files."
+msgstr ""
+"When checked the path for the last saved file is used when saving files,\n"
+"and the path for the last opened file is used when opening files.\n"
+"\n"
+"When unchecked the path for opening files is the one used last: either the\n"
+"path for saving files or the path for opening files."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:415
+msgid "Enable ToolTips"
+msgstr "Enable ToolTips"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:417
+msgid ""
+"Check this box if you want to have toolTips displayed\n"
+"when hovering with mouse over items throughout the App."
+msgstr ""
+"Check this box if you want to have toolTips displayed\n"
+"when hovering with mouse over items throughout the App."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:424
+msgid "Allow Machinist Unsafe Settings"
+msgstr "Allow Machinist Unsafe Settings"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:426
+msgid ""
+"If checked, some of the application settings will be allowed\n"
+"to have values that are usually unsafe to use.\n"
+"Like Z travel negative values or Z Cut positive values.\n"
+"It will applied at the next application start.\n"
+"<>: Don't change this unless you know what you are doing !!!"
+msgstr ""
+"If checked, some of the application settings will be allowed\n"
+"to have values that are usually unsafe to use.\n"
+"Like Z travel negative values or Z Cut positive values.\n"
+"It will applied at the next application start.\n"
+"<>: Don't change this unless you know what you are doing !!!"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:438
+msgid "Bookmarks limit"
+msgstr "Bookmarks limit"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:440
+msgid ""
+"The maximum number of bookmarks that may be installed in the menu.\n"
+"The number of bookmarks in the bookmark manager may be greater\n"
+"but the menu will hold only so much."
+msgstr ""
+"The maximum number of bookmarks that may be installed in the menu.\n"
+"The number of bookmarks in the bookmark manager may be greater\n"
+"but the menu will hold only so much."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:449
+msgid "Activity Icon"
+msgstr "Activity Icon"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:451
+msgid "Select the GIF that show activity when FlatCAM is active."
+msgstr "Select the GIF that show activity when FlatCAM is active."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:29
+msgid "App Preferences"
+msgstr "App Preferences"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:40
+msgid ""
+"The default value for FlatCAM units.\n"
+"Whatever is selected here is set every time\n"
+"FlatCAM is started."
+msgstr ""
+"The default value for FlatCAM units.\n"
+"Whatever is selected here is set every time\n"
+"FlatCAM is started."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:44
+msgid "IN"
+msgstr "IN"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:50
+msgid "Precision MM"
+msgstr "Precision MM"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:52
+msgid ""
+"The number of decimals used throughout the application\n"
+"when the set units are in METRIC system.\n"
+"Any change here require an application restart."
+msgstr ""
+"The number of decimals used throughout the application\n"
+"when the set units are in METRIC system.\n"
+"Any change here require an application restart."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:64
+msgid "Precision INCH"
+msgstr "Precision INCH"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:66
+msgid ""
+"The number of decimals used throughout the application\n"
+"when the set units are in INCH system.\n"
+"Any change here require an application restart."
+msgstr ""
+"The number of decimals used throughout the application\n"
+"when the set units are in INCH system.\n"
+"Any change here require an application restart."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:78
+msgid "Graphic Engine"
+msgstr "Graphic Engine"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:79
+msgid ""
+"Choose what graphic engine to use in FlatCAM.\n"
+"Legacy(2D) -> reduced functionality, slow performance but enhanced "
+"compatibility.\n"
+"OpenGL(3D) -> full functionality, high performance\n"
+"Some graphic cards are too old and do not work in OpenGL(3D) mode, like:\n"
+"Intel HD3000 or older. In this case the plot area will be black therefore\n"
+"use the Legacy(2D) mode."
+msgstr ""
+"Choose what graphic engine to use in FlatCAM.\n"
+"Legacy(2D) -> reduced functionality, slow performance but enhanced "
+"compatibility.\n"
+"OpenGL(3D) -> full functionality, high performance\n"
+"Some graphic cards are too old and do not work in OpenGL(3D) mode, like:\n"
+"Intel HD3000 or older. In this case the plot area will be black therefore\n"
+"use the Legacy(2D) mode."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:85
+msgid "Legacy(2D)"
+msgstr "Legacy(2D)"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:86
+msgid "OpenGL(3D)"
+msgstr "OpenGL(3D)"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:98
+msgid "APP. LEVEL"
+msgstr "APP. LEVEL"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:99
+msgid ""
+"Choose the default level of usage for FlatCAM.\n"
+"BASIC level -> reduced functionality, best for beginner's.\n"
+"ADVANCED level -> full functionality.\n"
+"\n"
+"The choice here will influence the parameters in\n"
+"the Selected Tab for all kinds of FlatCAM objects."
+msgstr ""
+"Choose the default level of usage for FlatCAM.\n"
+"BASIC level -> reduced functionality, best for beginner's.\n"
+"ADVANCED level -> full functionality.\n"
+"\n"
+"The choice here will influence the parameters in\n"
+"the Selected Tab for all kinds of FlatCAM objects."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:105
+#: AppObjects/FlatCAMExcellon.py:696 AppObjects/FlatCAMGeometry.py:582
+#: AppObjects/FlatCAMGerber.py:278
+msgid "Advanced"
+msgstr "Advanced"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:111
+msgid "Portable app"
+msgstr "Portable app"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:112
+msgid ""
+"Choose if the application should run as portable.\n"
+"\n"
+"If Checked the application will run portable,\n"
+"which means that the preferences files will be saved\n"
+"in the application folder, in the lib\\config subfolder."
+msgstr ""
+"Choose if the application should run as portable.\n"
+"\n"
+"If Checked the application will run portable,\n"
+"which means that the preferences files will be saved\n"
+"in the application folder, in the lib\\config subfolder."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:125
+msgid "Languages"
+msgstr "Languages"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:126
+msgid "Set the language used throughout FlatCAM."
+msgstr "Set the language used throughout FlatCAM."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:132
+msgid "Apply Language"
+msgstr "Apply Language"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:133
+msgid ""
+"Set the language used throughout FlatCAM.\n"
+"The app will restart after click."
+msgstr ""
+"Set the language used throughout FlatCAM.\n"
+"The app will restart after click."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:147
+msgid "Startup Settings"
+msgstr "Startup Settings"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:151
+msgid "Splash Screen"
+msgstr "Splash Screen"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:153
+msgid "Enable display of the splash screen at application startup."
+msgstr "Enable display of the splash screen at application startup."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:165
+msgid "Sys Tray Icon"
+msgstr "Sys Tray Icon"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:167
+msgid "Enable display of FlatCAM icon in Sys Tray."
+msgstr "Enable display of FlatCAM icon in Sys Tray."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:172
+msgid "Show Shell"
+msgstr "Show Shell"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:174
+msgid ""
+"Check this box if you want the shell to\n"
+"start automatically at startup."
+msgstr ""
+"Check this box if you want the shell to\n"
+"start automatically at startup."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:181
+msgid "Show Project"
+msgstr "Show Project"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:183
+msgid ""
+"Check this box if you want the project/selected/tool tab area to\n"
+"to be shown automatically at startup."
+msgstr ""
+"Check this box if you want the project/selected/tool tab area to\n"
+"to be shown automatically at startup."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:189
+msgid "Version Check"
+msgstr "Version Check"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:191
+msgid ""
+"Check this box if you want to check\n"
+"for a new version automatically at startup."
+msgstr ""
+"Check this box if you want to check\n"
+"for a new version automatically at startup."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:198
+msgid "Send Statistics"
+msgstr "Send Statistics"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:200
+msgid ""
+"Check this box if you agree to send anonymous\n"
+"stats automatically at startup, to help improve FlatCAM."
+msgstr ""
+"Check this box if you agree to send anonymous\n"
+"stats automatically at startup, to help improve FlatCAM."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:214
+msgid "Workers number"
+msgstr "Workers number"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:216
+msgid ""
+"The number of Qthreads made available to the App.\n"
+"A bigger number may finish the jobs more quickly but\n"
+"depending on your computer speed, may make the App\n"
+"unresponsive. Can have a value between 2 and 16.\n"
+"Default value is 2.\n"
+"After change, it will be applied at next App start."
+msgstr ""
+"The number of Qthreads made available to the App.\n"
+"A bigger number may finish the jobs more quickly but\n"
+"depending on your computer speed, may make the App\n"
+"unresponsive. Can have a value between 2 and 16.\n"
+"Default value is 2.\n"
+"After change, it will be applied at next App start."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:230
+msgid "Geo Tolerance"
+msgstr "Geo Tolerance"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:232
+msgid ""
+"This value can counter the effect of the Circle Steps\n"
+"parameter. Default value is 0.005.\n"
+"A lower value will increase the detail both in image\n"
+"and in Gcode for the circles, with a higher cost in\n"
+"performance. Higher value will provide more\n"
+"performance at the expense of level of detail."
+msgstr ""
+"This value can counter the effect of the Circle Steps\n"
+"parameter. Default value is 0.005.\n"
+"A lower value will increase the detail both in image\n"
+"and in Gcode for the circles, with a higher cost in\n"
+"performance. Higher value will provide more\n"
+"performance at the expense of level of detail."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:252
+msgid "Save Settings"
+msgstr "Save Settings"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:256
+msgid "Save Compressed Project"
+msgstr "Save Compressed Project"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:258
+msgid ""
+"Whether to save a compressed or uncompressed project.\n"
+"When checked it will save a compressed FlatCAM project."
+msgstr ""
+"Whether to save a compressed or uncompressed project.\n"
+"When checked it will save a compressed FlatCAM project."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:267
+msgid "Compression"
+msgstr "Compression"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:269
+msgid ""
+"The level of compression used when saving\n"
+"a FlatCAM project. Higher value means better compression\n"
+"but require more RAM usage and more processing time."
+msgstr ""
+"The level of compression used when saving\n"
+"a FlatCAM project. Higher value means better compression\n"
+"but require more RAM usage and more processing time."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:280
+msgid "Enable Auto Save"
+msgstr "Enable Auto Save"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:282
+msgid ""
+"Check to enable the autosave feature.\n"
+"When enabled, the application will try to save a project\n"
+"at the set interval."
+msgstr ""
+"Check to enable the autosave feature.\n"
+"When enabled, the application will try to save a project\n"
+"at the set interval."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:292
+msgid "Interval"
+msgstr "Interval"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:294
+msgid ""
+"Time interval for autosaving. In milliseconds.\n"
+"The application will try to save periodically but only\n"
+"if the project was saved manually at least once.\n"
+"While active, some operations may block this feature."
+msgstr ""
+"Time interval for autosaving. In milliseconds.\n"
+"The application will try to save periodically but only\n"
+"if the project was saved manually at least once.\n"
+"While active, some operations may block this feature."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:310
+msgid "Text to PDF parameters"
+msgstr "Text to PDF parameters"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:312
+msgid "Used when saving text in Code Editor or in FlatCAM Document objects."
+msgstr "Used when saving text in Code Editor or in FlatCAM Document objects."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:321
+msgid "Top Margin"
+msgstr "Top Margin"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:323
+msgid "Distance between text body and the top of the PDF file."
+msgstr "Distance between text body and the top of the PDF file."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:334
+msgid "Bottom Margin"
+msgstr "Bottom Margin"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:336
+msgid "Distance between text body and the bottom of the PDF file."
+msgstr "Distance between text body and the bottom of the PDF file."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:347
+msgid "Left Margin"
+msgstr "Left Margin"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:349
+msgid "Distance between text body and the left of the PDF file."
+msgstr "Distance between text body and the left of the PDF file."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:360
+msgid "Right Margin"
+msgstr "Right Margin"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:362
+msgid "Distance between text body and the right of the PDF file."
+msgstr "Distance between text body and the right of the PDF file."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:26
+msgid "GUI Preferences"
+msgstr "GUI Preferences"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:36
+msgid "Theme"
+msgstr "Theme"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:38
+msgid ""
+"Select a theme for FlatCAM.\n"
+"It will theme the plot area."
+msgstr ""
+"Select a theme for FlatCAM.\n"
+"It will theme the plot area."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:43
+msgid "Light"
+msgstr "Light"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:44
+msgid "Dark"
+msgstr "Dark"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:51
+msgid "Use Gray Icons"
+msgstr "Use Gray Icons"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:53
+msgid ""
+"Check this box to use a set of icons with\n"
+"a lighter (gray) color. To be used when a\n"
+"full dark theme is applied."
+msgstr ""
+"Check this box to use a set of icons with\n"
+"a lighter (gray) color. To be used when a\n"
+"full dark theme is applied."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:73
+msgid "Layout"
+msgstr "Layout"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:75
+msgid ""
+"Select an layout for FlatCAM.\n"
+"It is applied immediately."
+msgstr ""
+"Select an layout for FlatCAM.\n"
+"It is applied immediately."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:95
+msgid "Style"
+msgstr "Style"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:97
+msgid ""
+"Select an style for FlatCAM.\n"
+"It will be applied at the next app start."
+msgstr ""
+"Select an style for FlatCAM.\n"
+"It will be applied at the next app start."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:111
+msgid "Activate HDPI Support"
+msgstr "Activate HDPI Support"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:113
+msgid ""
+"Enable High DPI support for FlatCAM.\n"
+"It will be applied at the next app start."
+msgstr ""
+"Enable High DPI support for FlatCAM.\n"
+"It will be applied at the next app start."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:127
+msgid "Display Hover Shape"
+msgstr "Display Hover Shape"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:129
+msgid ""
+"Enable display of a hover shape for FlatCAM objects.\n"
+"It is displayed whenever the mouse cursor is hovering\n"
+"over any kind of not-selected object."
+msgstr ""
+"Enable display of a hover shape for FlatCAM objects.\n"
+"It is displayed whenever the mouse cursor is hovering\n"
+"over any kind of not-selected object."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:136
+msgid "Display Selection Shape"
+msgstr "Display Selection Shape"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:138
+msgid ""
+"Enable the display of a selection shape for FlatCAM objects.\n"
+"It is displayed whenever the mouse selects an object\n"
+"either by clicking or dragging mouse from left to right or\n"
+"right to left."
+msgstr ""
+"Enable the display of a selection shape for FlatCAM objects.\n"
+"It is displayed whenever the mouse selects an object\n"
+"either by clicking or dragging mouse from left to right or\n"
+"right to left."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:151
+msgid "Left-Right Selection Color"
+msgstr "Left-Right Selection Color"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:156
+msgid "Set the line color for the 'left to right' selection box."
+msgstr "Set the line color for the 'left to right' selection box."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:172
+msgid ""
+"Set the fill color for the selection box\n"
+"in case that the selection is done from left to right.\n"
+"First 6 digits are the color and the last 2\n"
+"digits are for alpha (transparency) level."
+msgstr ""
+"Set the fill color for the selection box\n"
+"in case that the selection is done from left to right.\n"
+"First 6 digits are the color and the last 2\n"
+"digits are for alpha (transparency) level."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:192
+msgid "Set the fill transparency for the 'left to right' selection box."
+msgstr "Set the fill transparency for the 'left to right' selection box."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:216
+msgid "Right-Left Selection Color"
+msgstr "Right-Left Selection Color"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:222
+msgid "Set the line color for the 'right to left' selection box."
+msgstr "Set the line color for the 'right to left' selection box."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:239
+msgid ""
+"Set the fill color for the selection box\n"
+"in case that the selection is done from right to left.\n"
+"First 6 digits are the color and the last 2\n"
+"digits are for alpha (transparency) level."
+msgstr ""
+"Set the fill color for the selection box\n"
+"in case that the selection is done from right to left.\n"
+"First 6 digits are the color and the last 2\n"
+"digits are for alpha (transparency) level."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:259
+msgid "Set the fill transparency for selection 'right to left' box."
+msgstr "Set the fill transparency for selection 'right to left' box."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:286
+msgid "Editor Color"
+msgstr "Editor Color"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:290
+msgid "Drawing"
+msgstr "Drawing"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:292
+msgid "Set the color for the shape."
+msgstr "Set the color for the shape."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:309
+msgid "Set the color of the shape when selected."
+msgstr "Set the color of the shape when selected."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:332
+msgid "Project Items Color"
+msgstr "Project Items Color"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:336
+msgid "Enabled"
+msgstr "Enabled"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:338
+msgid "Set the color of the items in Project Tab Tree."
+msgstr "Set the color of the items in Project Tab Tree."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:352
+msgid "Disabled"
+msgstr "Disabled"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:354
+msgid ""
+"Set the color of the items in Project Tab Tree,\n"
+"for the case when the items are disabled."
+msgstr ""
+"Set the color of the items in Project Tab Tree,\n"
+"for the case when the items are disabled."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:370
+msgid "Project AutoHide"
+msgstr "Project AutoHide"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:372
+msgid ""
+"Check this box if you want the project/selected/tool tab area to\n"
+"hide automatically when there are no objects loaded and\n"
+"to show whenever a new object is created."
+msgstr ""
+"Check this box if you want the project/selected/tool tab area to\n"
+"hide automatically when there are no objects loaded and\n"
+"to show whenever a new object is created."
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:27
+msgid "Geometry Adv. Options"
+msgstr "Geometry Adv. Options"
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:35
+msgid ""
+"A list of Geometry advanced parameters.\n"
+"Those parameters are available only for\n"
+"Advanced App. Level."
+msgstr ""
+"A list of Geometry advanced parameters.\n"
+"Those parameters are available only for\n"
+"Advanced App. Level."
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:45
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:112
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:134
+#: AppTools/ToolCalibration.py:125 AppTools/ToolSolderPaste.py:240
+msgid "Toolchange X-Y"
+msgstr "Toolchange X-Y"
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:56
+msgid ""
+"Height of the tool just after starting the work.\n"
+"Delete the value if you don't need this feature."
+msgstr ""
+"Height of the tool just after starting the work.\n"
+"Delete the value if you don't need this feature."
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:158
+msgid "Segment X size"
+msgstr "Segment X size"
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:160
+msgid ""
+"The size of the trace segment on the X axis.\n"
+"Useful for auto-leveling.\n"
+"A value of 0 means no segmentation on the X axis."
+msgstr ""
+"The size of the trace segment on the X axis.\n"
+"Useful for auto-leveling.\n"
+"A value of 0 means no segmentation on the X axis."
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:174
+msgid "Segment Y size"
+msgstr "Segment Y size"
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:176
+msgid ""
+"The size of the trace segment on the Y axis.\n"
+"Useful for auto-leveling.\n"
+"A value of 0 means no segmentation on the Y axis."
+msgstr ""
+"The size of the trace segment on the Y axis.\n"
+"Useful for auto-leveling.\n"
+"A value of 0 means no segmentation on the Y axis."
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:192
+msgid "Area Exclusion"
+msgstr "Area Exclusion"
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:194
+msgid ""
+"Area exclusion parameters.\n"
+"Those parameters are available only for\n"
+"Advanced App. Level."
+msgstr ""
+"Area exclusion parameters.\n"
+"Those parameters are available only for\n"
+"Advanced App. Level."
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:201
+msgid "Exclusion areas"
+msgstr "Exclusion areas"
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:212
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:322
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:286
+#: AppTools/ToolNCC.py:578 AppTools/ToolPaint.py:521
+msgid "Shape"
+msgstr "Shape"
+
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:33
+msgid "A list of Geometry Editor parameters."
+msgstr "A list of Geometry Editor parameters."
+
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:43
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:196
+msgid ""
+"Set the number of selected geometry\n"
+"items above which the utility geometry\n"
+"becomes just a selection rectangle.\n"
+"Increases the performance when moving a\n"
+"large number of geometric elements."
+msgstr ""
+"Set the number of selected geometry\n"
+"items above which the utility geometry\n"
+"becomes just a selection rectangle.\n"
+"Increases the performance when moving a\n"
+"large number of geometric elements."
+
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:27
+msgid "Geometry General"
+msgstr "Geometry General"
+
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:49
+msgid ""
+"The number of circle steps for Geometry \n"
+"circle and arc shapes linear approximation."
+msgstr ""
+"The number of circle steps for Geometry \n"
+"circle and arc shapes linear approximation."
+
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:63
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:41
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:48
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:42
+msgid "Tools Dia"
+msgstr "Tools Dia"
+
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:65
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:108
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:43
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:50
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:44
+msgid ""
+"Diameters of the tools, separated by comma.\n"
+"The value of the diameter has to use the dot decimals separator.\n"
+"Valid values: 0.3, 1.0"
+msgstr ""
+"Diameters of the tools, separated by comma.\n"
+"The value of the diameter has to use the dot decimals separator.\n"
+"Valid values: 0.3, 1.0"
+
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:80
+msgid "Geometry Object Color"
+msgstr "Geometry Object Color"
+
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:28
+msgid "Geometry Options"
+msgstr "Geometry Options"
+
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:36
+msgid ""
+"Create a CNC Job object\n"
+"tracing the contours of this\n"
+"Geometry object."
+msgstr ""
+"Create a CNC Job object\n"
+"tracing the contours of this\n"
+"Geometry object."
+
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:80
+msgid "Depth/Pass"
+msgstr "Depth/Pass"
+
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:82
+msgid ""
+"The depth to cut on each pass,\n"
+"when multidepth is enabled.\n"
+"It has positive value although\n"
+"it is a fraction from the depth\n"
+"which has negative value."
+msgstr ""
+"The depth to cut on each pass,\n"
+"when multidepth is enabled.\n"
+"It has positive value although\n"
+"it is a fraction from the depth\n"
+"which has negative value."
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:27
+msgid "Gerber Adv. Options"
+msgstr "Gerber Adv. Options"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:33
+msgid ""
+"A list of Gerber advanced parameters.\n"
+"Those parameters are available only for\n"
+"Advanced App. Level."
+msgstr ""
+"A list of Gerber advanced parameters.\n"
+"Those parameters are available only for\n"
+"Advanced App. Level."
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:52
+msgid "Table Show/Hide"
+msgstr "Table Show/Hide"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:54
+msgid ""
+"Toggle the display of the Gerber Apertures Table.\n"
+"Also, on hide, it will delete all mark shapes\n"
+"that are drawn on canvas."
+msgstr ""
+"Toggle the display of the Gerber Apertures Table.\n"
+"Also, on hide, it will delete all mark shapes\n"
+"that are drawn on canvas."
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:134
+msgid "Exterior"
+msgstr "Exterior"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:135
+msgid "Interior"
+msgstr "Interior"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:146
+#: AppObjects/FlatCAMGerber.py:497 AppTools/ToolCopperThieving.py:1022
+#: AppTools/ToolCopperThieving.py:1211 AppTools/ToolCopperThieving.py:1223
+#: AppTools/ToolNCC.py:2059 AppTools/ToolNCC.py:2170 AppTools/ToolNCC.py:2185
+#: AppTools/ToolNCC.py:3149 AppTools/ToolNCC.py:3254 AppTools/ToolNCC.py:3269
+#: AppTools/ToolNCC.py:3535 AppTools/ToolNCC.py:3636 AppTools/ToolNCC.py:3651
+#: camlib.py:982
+msgid "Buffering"
+msgstr "Buffering"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:148
+msgid ""
+"Buffering type:\n"
+"- None --> best performance, fast file loading but no so good display\n"
+"- Full --> slow file loading but good visuals. This is the default.\n"
+"<>: Don't change this unless you know what you are doing !!!"
+msgstr ""
+"Buffering type:\n"
+"- None --> best performance, fast file loading but no so good display\n"
+"- Full --> slow file loading but good visuals. This is the default.\n"
+"<>: Don't change this unless you know what you are doing !!!"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:153
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:207
+#: AppTools/ToolFiducials.py:201 AppTools/ToolFilm.py:238
+#: AppTools/ToolProperties.py:452 AppTools/ToolProperties.py:455
+#: AppTools/ToolProperties.py:458 AppTools/ToolProperties.py:483
+msgid "None"
+msgstr "None"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:159
+msgid "Simplify"
+msgstr "Simplify"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:161
+msgid ""
+"When checked all the Gerber polygons will be\n"
+"loaded with simplification having a set tolerance.\n"
+"<>: Don't change this unless you know what you are doing !!!"
+msgstr ""
+"When checked all the Gerber polygons will be\n"
+"loaded with simplification having a set tolerance.\n"
+"<>: Don't change this unless you know what you are doing !!!"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:168
+msgid "Tolerance"
+msgstr "Tolerance"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:169
+msgid "Tolerance for polygon simplification."
+msgstr "Tolerance for polygon simplification."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:33
+msgid "A list of Gerber Editor parameters."
+msgstr "A list of Gerber Editor parameters."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:43
+msgid ""
+"Set the number of selected Gerber geometry\n"
+"items above which the utility geometry\n"
+"becomes just a selection rectangle.\n"
+"Increases the performance when moving a\n"
+"large number of geometric elements."
+msgstr ""
+"Set the number of selected Gerber geometry\n"
+"items above which the utility geometry\n"
+"becomes just a selection rectangle.\n"
+"Increases the performance when moving a\n"
+"large number of geometric elements."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:56
+msgid "New Aperture code"
+msgstr "New Aperture code"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:69
+msgid "New Aperture size"
+msgstr "New Aperture size"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:71
+msgid "Size for the new aperture"
+msgstr "Size for the new aperture"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:82
+msgid "New Aperture type"
+msgstr "New Aperture type"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:84
+msgid ""
+"Type for the new aperture.\n"
+"Can be 'C', 'R' or 'O'."
+msgstr ""
+"Type for the new aperture.\n"
+"Can be 'C', 'R' or 'O'."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:106
+msgid "Aperture Dimensions"
+msgstr "Aperture Dimensions"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:116
+msgid "Linear Pad Array"
+msgstr "Linear Pad Array"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:160
+msgid "Circular Pad Array"
+msgstr "Circular Pad Array"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:196
+msgid "Distance at which to buffer the Gerber element."
+msgstr "Distance at which to buffer the Gerber element."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:205
+msgid "Scale Tool"
+msgstr "Scale Tool"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:211
+msgid "Factor to scale the Gerber element."
+msgstr "Factor to scale the Gerber element."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:224
+msgid "Threshold low"
+msgstr "Threshold low"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:226
+msgid "Threshold value under which the apertures are not marked."
+msgstr "Threshold value under which the apertures are not marked."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:236
+msgid "Threshold high"
+msgstr "Threshold high"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:238
+msgid "Threshold value over which the apertures are not marked."
+msgstr "Threshold value over which the apertures are not marked."
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:27
+msgid "Gerber Export"
+msgstr "Gerber Export"
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:33
+msgid ""
+"The parameters set here are used in the file exported\n"
+"when using the File -> Export -> Export Gerber menu entry."
+msgstr ""
+"The parameters set here are used in the file exported\n"
+"when using the File -> Export -> Export Gerber menu entry."
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:44
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:50
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:84
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:90
+msgid "The units used in the Gerber file."
+msgstr "The units used in the Gerber file."
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:58
+msgid ""
+"The number of digits in the whole part of the number\n"
+"and in the fractional part of the number."
+msgstr ""
+"The number of digits in the whole part of the number\n"
+"and in the fractional part of the number."
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:71
+msgid ""
+"This numbers signify the number of digits in\n"
+"the whole part of Gerber coordinates."
+msgstr ""
+"This numbers signify the number of digits in\n"
+"the whole part of Gerber coordinates."
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:87
+msgid ""
+"This numbers signify the number of digits in\n"
+"the decimal part of Gerber coordinates."
+msgstr ""
+"This numbers signify the number of digits in\n"
+"the decimal part of Gerber coordinates."
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:99
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:109
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:100
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:110
+msgid ""
+"This sets the type of Gerber zeros.\n"
+"If LZ then Leading Zeros are removed and\n"
+"Trailing Zeros are kept.\n"
+"If TZ is checked then Trailing Zeros are removed\n"
+"and Leading Zeros are kept."
+msgstr ""
+"This sets the type of Gerber zeros.\n"
+"If LZ then Leading Zeros are removed and\n"
+"Trailing Zeros are kept.\n"
+"If TZ is checked then Trailing Zeros are removed\n"
+"and Leading Zeros are kept."
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:27
+msgid "Gerber General"
+msgstr "Gerber General"
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:45
+msgid "M-Color"
+msgstr "M-Color"
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:61
+msgid ""
+"The number of circle steps for Gerber \n"
+"circular aperture linear approximation."
+msgstr ""
+"The number of circle steps for Gerber \n"
+"circular aperture linear approximation."
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:73
+msgid "Default Values"
+msgstr "Default Values"
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:75
+msgid ""
+"Those values will be used as fallback values\n"
+"in case that they are not found in the Gerber file."
+msgstr ""
+"Those values will be used as fallback values\n"
+"in case that they are not found in the Gerber file."
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:126
+msgid "Clean Apertures"
+msgstr "Clean Apertures"
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:128
+msgid ""
+"Will remove apertures that do not have geometry\n"
+"thus lowering the number of apertures in the Gerber object."
+msgstr ""
+"Will remove apertures that do not have geometry\n"
+"thus lowering the number of apertures in the Gerber object."
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:134
+msgid "Polarity change buffer"
+msgstr "Polarity change buffer"
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:136
+msgid ""
+"Will apply extra buffering for the\n"
+"solid geometry when we have polarity changes.\n"
+"May help loading Gerber files that otherwise\n"
+"do not load correctly."
+msgstr ""
+"Will apply extra buffering for the\n"
+"solid geometry when we have polarity changes.\n"
+"May help loading Gerber files that otherwise\n"
+"do not load correctly."
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:149
+msgid "Gerber Object Color"
+msgstr "Gerber Object Color"
+
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:29
+msgid "Gerber Options"
+msgstr "Gerber Options"
+
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:107
+msgid "Combine Passes"
+msgstr "Combine Passes"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:27
+msgid "Copper Thieving Tool Options"
+msgstr "Copper Thieving Tool Options"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:39
+msgid ""
+"A tool to generate a Copper Thieving that can be added\n"
+"to a selected Gerber file."
+msgstr ""
+"A tool to generate a Copper Thieving that can be added\n"
+"to a selected Gerber file."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:47
+msgid "Number of steps (lines) used to interpolate circles."
+msgstr "Number of steps (lines) used to interpolate circles."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261
+#: AppTools/ToolCopperThieving.py:96 AppTools/ToolCopperThieving.py:431
+msgid "Clearance"
+msgstr "Clearance"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:59
+msgid ""
+"This set the distance between the copper Thieving components\n"
+"(the polygon fill may be split in multiple polygons)\n"
+"and the copper traces in the Gerber file."
+msgstr ""
+"This set the distance between the copper Thieving components\n"
+"(the polygon fill may be split in multiple polygons)\n"
+"and the copper traces in the Gerber file."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
+#: AppTools/ToolCopperThieving.py:125 AppTools/ToolNCC.py:535
+#: AppTools/ToolNCC.py:1306 AppTools/ToolNCC.py:1635 AppTools/ToolNCC.py:1928
+#: AppTools/ToolNCC.py:1992 AppTools/ToolNCC.py:3013 AppTools/ToolNCC.py:3022
+#: defaults.py:406 tclCommands/TclCommandCopperClear.py:190
+msgid "Itself"
+msgstr "Itself"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
+#: AppTools/ToolCopperThieving.py:126 AppTools/ToolNCC.py:535
+#: AppTools/ToolNCC.py:1316 AppTools/ToolNCC.py:1648 AppTools/ToolNCC.py:1944
+#: AppTools/ToolNCC.py:1999 AppTools/ToolPaint.py:485 AppTools/ToolPaint.py:945
+#: AppTools/ToolPaint.py:1451
+msgid "Area Selection"
+msgstr "Area Selection"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
+#: AppTools/ToolCopperThieving.py:127 AppTools/ToolDblSided.py:216
+#: AppTools/ToolNCC.py:535 AppTools/ToolNCC.py:1664 AppTools/ToolNCC.py:1950
+#: AppTools/ToolNCC.py:2007 AppTools/ToolNCC.py:2383 AppTools/ToolNCC.py:2631
+#: AppTools/ToolNCC.py:3058 AppTools/ToolPaint.py:485 AppTools/ToolPaint.py:930
+#: AppTools/ToolPaint.py:1467 tclCommands/TclCommandCopperClear.py:192
+#: tclCommands/TclCommandPaint.py:166
+msgid "Reference Object"
+msgstr "Reference Object"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90
+#: AppTools/ToolCopperThieving.py:129
+msgid "Reference:"
+msgstr "Reference:"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92
+msgid ""
+"- 'Itself' - the copper Thieving extent is based on the object extent.\n"
+"- 'Area Selection' - left mouse click to start selection of the area to be "
+"filled.\n"
+"- 'Reference Object' - will do copper thieving within the area specified by "
+"another object."
+msgstr ""
+"- 'Itself' - the copper Thieving extent is based on the object extent.\n"
+"- 'Area Selection' - left mouse click to start selection of the area to be "
+"filled.\n"
+"- 'Reference Object' - will do copper thieving within the area specified by "
+"another object."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:76
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190
+#: AppTools/ToolCopperThieving.py:171 AppTools/ToolExtractDrills.py:102
+#: AppTools/ToolExtractDrills.py:240 AppTools/ToolPunchGerber.py:113
+#: AppTools/ToolPunchGerber.py:268
+msgid "Rectangular"
+msgstr "Rectangular"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102
+#: AppTools/ToolCopperThieving.py:172
+msgid "Minimal"
+msgstr "Minimal"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104
+#: AppTools/ToolCopperThieving.py:174 AppTools/ToolFilm.py:94
+msgid "Box Type:"
+msgstr "Box Type:"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106
+#: AppTools/ToolCopperThieving.py:176
+msgid ""
+"- 'Rectangular' - the bounding box will be of rectangular shape.\n"
+"- 'Minimal' - the bounding box will be the convex hull shape."
+msgstr ""
+"- 'Rectangular' - the bounding box will be of rectangular shape.\n"
+"- 'Minimal' - the bounding box will be the convex hull shape."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120
+#: AppTools/ToolCopperThieving.py:192
+msgid "Dots Grid"
+msgstr "Dots Grid"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121
+#: AppTools/ToolCopperThieving.py:193
+msgid "Squares Grid"
+msgstr "Squares Grid"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122
+#: AppTools/ToolCopperThieving.py:194
+msgid "Lines Grid"
+msgstr "Lines Grid"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124
+#: AppTools/ToolCopperThieving.py:196
+msgid "Fill Type:"
+msgstr "Fill Type:"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126
+#: AppTools/ToolCopperThieving.py:198
+msgid ""
+"- 'Solid' - copper thieving will be a solid polygon.\n"
+"- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n"
+"- 'Squares Grid' - the empty area will be filled with a pattern of squares.\n"
+"- 'Lines Grid' - the empty area will be filled with a pattern of lines."
+msgstr ""
+"- 'Solid' - copper thieving will be a solid polygon.\n"
+"- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n"
+"- 'Squares Grid' - the empty area will be filled with a pattern of squares.\n"
+"- 'Lines Grid' - the empty area will be filled with a pattern of lines."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134
+#: AppTools/ToolCopperThieving.py:217
+msgid "Dots Grid Parameters"
+msgstr "Dots Grid Parameters"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140
+#: AppTools/ToolCopperThieving.py:223
+msgid "Dot diameter in Dots Grid."
+msgstr "Dot diameter in Dots Grid."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209
+#: AppTools/ToolCopperThieving.py:234 AppTools/ToolCopperThieving.py:274
+#: AppTools/ToolCopperThieving.py:314
+msgid "Spacing"
+msgstr "Spacing"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153
+#: AppTools/ToolCopperThieving.py:236
+msgid "Distance between each two dots in Dots Grid."
+msgstr "Distance between each two dots in Dots Grid."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163
+#: AppTools/ToolCopperThieving.py:257
+msgid "Squares Grid Parameters"
+msgstr "Squares Grid Parameters"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169
+#: AppTools/ToolCopperThieving.py:263
+msgid "Square side size in Squares Grid."
+msgstr "Square side size in Squares Grid."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182
+#: AppTools/ToolCopperThieving.py:276
+msgid "Distance between each two squares in Squares Grid."
+msgstr "Distance between each two squares in Squares Grid."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192
+#: AppTools/ToolCopperThieving.py:297
+msgid "Lines Grid Parameters"
+msgstr "Lines Grid Parameters"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198
+#: AppTools/ToolCopperThieving.py:303
+msgid "Line thickness size in Lines Grid."
+msgstr "Line thickness size in Lines Grid."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211
+#: AppTools/ToolCopperThieving.py:316
+msgid "Distance between each two lines in Lines Grid."
+msgstr "Distance between each two lines in Lines Grid."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221
+#: AppTools/ToolCopperThieving.py:354
+msgid "Robber Bar Parameters"
+msgstr "Robber Bar Parameters"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223
+#: AppTools/ToolCopperThieving.py:356
+msgid ""
+"Parameters used for the robber bar.\n"
+"Robber bar = copper border to help in pattern hole plating."
+msgstr ""
+"Parameters used for the robber bar.\n"
+"Robber bar = copper border to help in pattern hole plating."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231
+#: AppTools/ToolCopperThieving.py:364
+msgid "Bounding box margin for robber bar."
+msgstr "Bounding box margin for robber bar."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:42
+#: AppTools/ToolCopperThieving.py:375 AppTools/ToolCorners.py:113
+#: AppTools/ToolEtchCompensation.py:96
+msgid "Thickness"
+msgstr "Thickness"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244
+#: AppTools/ToolCopperThieving.py:377
+msgid "The robber bar thickness."
+msgstr "The robber bar thickness."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254
+#: AppTools/ToolCopperThieving.py:408
+msgid "Pattern Plating Mask"
+msgstr "Pattern Plating Mask"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256
+#: AppTools/ToolCopperThieving.py:410
+msgid "Generate a mask for pattern plating."
+msgstr "Generate a mask for pattern plating."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263
+#: AppTools/ToolCopperThieving.py:433
+msgid ""
+"The distance between the possible copper thieving elements\n"
+"and/or robber bar and the actual openings in the mask."
+msgstr ""
+"The distance between the possible copper thieving elements\n"
+"and/or robber bar and the actual openings in the mask."
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:27
+msgid "Calibration Tool Options"
+msgstr "Calibration Tool Options"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:38
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:38
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:37
+#: AppTools/ToolCopperThieving.py:91 AppTools/ToolCorners.py:108
+#: AppTools/ToolFiducials.py:151
+msgid "Parameters used for this tool."
+msgstr "Parameters used for this tool."
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:43
+#: AppTools/ToolCalibration.py:181
+msgid "Source Type"
+msgstr "Source Type"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:44
+#: AppTools/ToolCalibration.py:182
+msgid ""
+"The source of calibration points.\n"
+"It can be:\n"
+"- Object -> click a hole geo for Excellon or a pad for Gerber\n"
+"- Free -> click freely on canvas to acquire the calibration points"
+msgstr ""
+"The source of calibration points.\n"
+"It can be:\n"
+"- Object -> click a hole geo for Excellon or a pad for Gerber\n"
+"- Free -> click freely on canvas to acquire the calibration points"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:49
+#: AppTools/ToolCalibration.py:187
+msgid "Free"
+msgstr "Free"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:63
+#: AppTools/ToolCalibration.py:76
+msgid "Height (Z) for travelling between the points."
+msgstr "Height (Z) for travelling between the points."
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:75
+#: AppTools/ToolCalibration.py:88
+msgid "Verification Z"
+msgstr "Verification Z"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:77
+#: AppTools/ToolCalibration.py:90
+msgid "Height (Z) for checking the point."
+msgstr "Height (Z) for checking the point."
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:89
+#: AppTools/ToolCalibration.py:102
+msgid "Zero Z tool"
+msgstr "Zero Z tool"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:91
+#: AppTools/ToolCalibration.py:104
+msgid ""
+"Include a sequence to zero the height (Z)\n"
+"of the verification tool."
+msgstr ""
+"Include a sequence to zero the height (Z)\n"
+"of the verification tool."
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:100
+#: AppTools/ToolCalibration.py:113
+msgid "Height (Z) for mounting the verification probe."
+msgstr "Height (Z) for mounting the verification probe."
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:114
+#: AppTools/ToolCalibration.py:127
+msgid ""
+"Toolchange X,Y position.\n"
+"If no value is entered then the current\n"
+"(x, y) point will be used,"
+msgstr ""
+"Toolchange X,Y position.\n"
+"If no value is entered then the current\n"
+"(x, y) point will be used,"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:125
+#: AppTools/ToolCalibration.py:153
+msgid "Second point"
+msgstr "Second point"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:127
+#: AppTools/ToolCalibration.py:155
+msgid ""
+"Second point in the Gcode verification can be:\n"
+"- top-left -> the user will align the PCB vertically\n"
+"- bottom-right -> the user will align the PCB horizontally"
+msgstr ""
+"Second point in the Gcode verification can be:\n"
+"- top-left -> the user will align the PCB vertically\n"
+"- bottom-right -> the user will align the PCB horizontally"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:131
+#: AppTools/ToolCalibration.py:159 App_Main.py:4684
+msgid "Top-Left"
+msgstr "Top-Left"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:132
+#: AppTools/ToolCalibration.py:160 App_Main.py:4685
+msgid "Bottom-Right"
+msgstr "Bottom-Right"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:27
+msgid "Extract Drills Options"
+msgstr "Extract Drills Options"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42
+#: AppTools/ToolExtractDrills.py:68 AppTools/ToolPunchGerber.py:75
+msgid "Processed Pads Type"
+msgstr "Processed Pads Type"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44
+#: AppTools/ToolExtractDrills.py:70 AppTools/ToolPunchGerber.py:77
+msgid ""
+"The type of pads shape to be processed.\n"
+"If the PCB has many SMD pads with rectangular pads,\n"
+"disable the Rectangular aperture."
+msgstr ""
+"The type of pads shape to be processed.\n"
+"If the PCB has many SMD pads with rectangular pads,\n"
+"disable the Rectangular aperture."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54
+#: AppTools/ToolExtractDrills.py:80 AppTools/ToolPunchGerber.py:91
+msgid "Process Circular Pads."
+msgstr "Process Circular Pads."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:60
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164
+#: AppTools/ToolExtractDrills.py:86 AppTools/ToolExtractDrills.py:214
+#: AppTools/ToolPunchGerber.py:97 AppTools/ToolPunchGerber.py:242
+msgid "Oblong"
+msgstr "Oblong"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62
+#: AppTools/ToolExtractDrills.py:88 AppTools/ToolPunchGerber.py:99
+msgid "Process Oblong Pads."
+msgstr "Process Oblong Pads."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70
+#: AppTools/ToolExtractDrills.py:96 AppTools/ToolPunchGerber.py:107
+msgid "Process Square Pads."
+msgstr "Process Square Pads."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78
+#: AppTools/ToolExtractDrills.py:104 AppTools/ToolPunchGerber.py:115
+msgid "Process Rectangular Pads."
+msgstr "Process Rectangular Pads."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:84
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203
+#: AppTools/ToolExtractDrills.py:110 AppTools/ToolExtractDrills.py:253
+#: AppTools/ToolProperties.py:172 AppTools/ToolPunchGerber.py:121
+#: AppTools/ToolPunchGerber.py:281
+msgid "Others"
+msgstr "Others"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86
+#: AppTools/ToolExtractDrills.py:112 AppTools/ToolPunchGerber.py:123
+msgid "Process pads not in the categories above."
+msgstr "Process pads not in the categories above."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:99
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125
+#: AppTools/ToolExtractDrills.py:139 AppTools/ToolExtractDrills.py:156
+#: AppTools/ToolPunchGerber.py:150 AppTools/ToolPunchGerber.py:184
+msgid "Fixed Diameter"
+msgstr "Fixed Diameter"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:100
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142
+#: AppTools/ToolExtractDrills.py:140 AppTools/ToolExtractDrills.py:192
+#: AppTools/ToolPunchGerber.py:151 AppTools/ToolPunchGerber.py:214
+msgid "Fixed Annular Ring"
+msgstr "Fixed Annular Ring"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102
+#: AppTools/ToolExtractDrills.py:141 AppTools/ToolPunchGerber.py:152
+msgid "Proportional"
+msgstr "Proportional"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107
+#: AppTools/ToolExtractDrills.py:130
+msgid ""
+"The method for processing pads. Can be:\n"
+"- Fixed Diameter -> all holes will have a set size\n"
+"- Fixed Annular Ring -> all holes will have a set annular ring\n"
+"- Proportional -> each hole size will be a fraction of the pad size"
+msgstr ""
+"The method for processing pads. Can be:\n"
+"- Fixed Diameter -> all holes will have a set size\n"
+"- Fixed Annular Ring -> all holes will have a set annular ring\n"
+"- Proportional -> each hole size will be a fraction of the pad size"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:220
+#: AppTools/ToolExtractDrills.py:164 AppTools/ToolExtractDrills.py:285
+#: AppTools/ToolPunchGerber.py:192 AppTools/ToolPunchGerber.py:308
+#: AppTools/ToolTransform.py:357 App_Main.py:9602
+msgid "Value"
+msgstr "Value"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135
+#: AppTools/ToolExtractDrills.py:166 AppTools/ToolPunchGerber.py:194
+msgid "Fixed hole diameter."
+msgstr "Fixed hole diameter."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:142
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144
+#: AppTools/ToolExtractDrills.py:194 AppTools/ToolPunchGerber.py:216
+msgid ""
+"The size of annular ring.\n"
+"The copper sliver between the hole exterior\n"
+"and the margin of the copper pad."
+msgstr ""
+"The size of annular ring.\n"
+"The copper sliver between the hole exterior\n"
+"and the margin of the copper pad."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153
+#: AppTools/ToolExtractDrills.py:203 AppTools/ToolPunchGerber.py:231
+msgid "The size of annular ring for circular pads."
+msgstr "The size of annular ring for circular pads."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:164
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:166
+#: AppTools/ToolExtractDrills.py:216 AppTools/ToolPunchGerber.py:244
+msgid "The size of annular ring for oblong pads."
+msgstr "The size of annular ring for oblong pads."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:177
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:179
+#: AppTools/ToolExtractDrills.py:229 AppTools/ToolPunchGerber.py:257
+msgid "The size of annular ring for square pads."
+msgstr "The size of annular ring for square pads."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:190
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:192
+#: AppTools/ToolExtractDrills.py:242 AppTools/ToolPunchGerber.py:270
+msgid "The size of annular ring for rectangular pads."
+msgstr "The size of annular ring for rectangular pads."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:203
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:205
+#: AppTools/ToolExtractDrills.py:255 AppTools/ToolPunchGerber.py:283
+msgid "The size of annular ring for other pads."
+msgstr "The size of annular ring for other pads."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:213
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:215
+#: AppTools/ToolExtractDrills.py:276 AppTools/ToolPunchGerber.py:299
+msgid "Proportional Diameter"
+msgstr "Proportional Diameter"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:222
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:224
+msgid "Factor"
+msgstr "Factor"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226
+#: AppTools/ToolExtractDrills.py:287 AppTools/ToolPunchGerber.py:310
+msgid ""
+"Proportional Diameter.\n"
+"The hole diameter will be a fraction of the pad size."
+msgstr ""
+"Proportional Diameter.\n"
+"The hole diameter will be a fraction of the pad size."
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:27
+msgid "Fiducials Tool Options"
+msgstr "Fiducials Tool Options"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45
+#: AppTools/ToolFiducials.py:158
+msgid ""
+"This set the fiducial diameter if fiducial type is circular,\n"
+"otherwise is the size of the fiducial.\n"
+"The soldermask opening is double than that."
+msgstr ""
+"This set the fiducial diameter if fiducial type is circular,\n"
+"otherwise is the size of the fiducial.\n"
+"The soldermask opening is double than that."
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73
+#: AppTools/ToolFiducials.py:186
+msgid "Auto"
+msgstr "Auto"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74
+#: AppTools/ToolFiducials.py:187
+msgid "Manual"
+msgstr "Manual"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76
+#: AppTools/ToolFiducials.py:189
+msgid "Mode:"
+msgstr "Mode:"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:78
+msgid ""
+"- 'Auto' - automatic placement of fiducials in the corners of the bounding "
+"box.\n"
+"- 'Manual' - manual placement of fiducials."
+msgstr ""
+"- 'Auto' - automatic placement of fiducials in the corners of the bounding "
+"box.\n"
+"- 'Manual' - manual placement of fiducials."
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86
+#: AppTools/ToolFiducials.py:199
+msgid "Up"
+msgstr "Up"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87
+#: AppTools/ToolFiducials.py:200
+msgid "Down"
+msgstr "Down"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90
+#: AppTools/ToolFiducials.py:203
+msgid "Second fiducial"
+msgstr "Second fiducial"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92
+#: AppTools/ToolFiducials.py:205
+msgid ""
+"The position for the second fiducial.\n"
+"- 'Up' - the order is: bottom-left, top-left, top-right.\n"
+"- 'Down' - the order is: bottom-left, bottom-right, top-right.\n"
+"- 'None' - there is no second fiducial. The order is: bottom-left, top-right."
+msgstr ""
+"The position for the second fiducial.\n"
+"- 'Up' - the order is: bottom-left, top-left, top-right.\n"
+"- 'Down' - the order is: bottom-left, bottom-right, top-right.\n"
+"- 'None' - there is no second fiducial. The order is: bottom-left, top-right."
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108
+#: AppTools/ToolFiducials.py:221
+msgid "Cross"
+msgstr "Cross"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109
+#: AppTools/ToolFiducials.py:222
+msgid "Chess"
+msgstr "Chess"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112
+#: AppTools/ToolFiducials.py:224
+msgid "Fiducial Type"
+msgstr "Fiducial Type"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114
+#: AppTools/ToolFiducials.py:226
+msgid ""
+"The type of fiducial.\n"
+"- 'Circular' - this is the regular fiducial.\n"
+"- 'Cross' - cross lines fiducial.\n"
+"- 'Chess' - chess pattern fiducial."
+msgstr ""
+"The type of fiducial.\n"
+"- 'Circular' - this is the regular fiducial.\n"
+"- 'Cross' - cross lines fiducial.\n"
+"- 'Chess' - chess pattern fiducial."
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123
+#: AppTools/ToolFiducials.py:235
+msgid "Line thickness"
+msgstr "Line thickness"
+
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:27
+msgid "Invert Gerber Tool Options"
+msgstr "Invert Gerber Tool Options"
+
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:33
+msgid ""
+"A tool to invert Gerber geometry from positive to negative\n"
+"and in revers."
+msgstr ""
+"A tool to invert Gerber geometry from positive to negative\n"
+"and in revers."
+
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:47
+#: AppTools/ToolInvertGerber.py:90
+msgid ""
+"Distance by which to avoid\n"
+"the edges of the Gerber object."
+msgstr ""
+"Distance by which to avoid\n"
+"the edges of the Gerber object."
+
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:58
+#: AppTools/ToolInvertGerber.py:101
+msgid "Lines Join Style"
+msgstr "Lines Join Style"
+
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:60
+#: AppTools/ToolInvertGerber.py:103
+msgid ""
+"The way that the lines in the object outline will be joined.\n"
+"Can be:\n"
+"- rounded -> an arc is added between two joining lines\n"
+"- square -> the lines meet in 90 degrees angle\n"
+"- bevel -> the lines are joined by a third line"
+msgstr ""
+"The way that the lines in the object outline will be joined.\n"
+"Can be:\n"
+"- rounded -> an arc is added between two joining lines\n"
+"- square -> the lines meet in 90 degrees angle\n"
+"- bevel -> the lines are joined by a third line"
+
+#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:27
+msgid "Optimal Tool Options"
+msgstr "Optimal Tool Options"
+
+#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:33
+msgid ""
+"A tool to find the minimum distance between\n"
+"every two Gerber geometric elements"
+msgstr ""
+"A tool to find the minimum distance between\n"
+"every two Gerber geometric elements"
+
+#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:48
+#: AppTools/ToolOptimal.py:78
+msgid "Precision"
+msgstr "Precision"
+
+#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:50
+msgid "Number of decimals for the distances and coordinates in this tool."
+msgstr "Number of decimals for the distances and coordinates in this tool."
+
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:27
+msgid "Punch Gerber Options"
+msgstr "Punch Gerber Options"
+
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:108
+#: AppTools/ToolPunchGerber.py:141
+msgid ""
+"The punch hole source can be:\n"
+"- Excellon Object-> the Excellon object drills center will serve as "
+"reference.\n"
+"- Fixed Diameter -> will try to use the pads center as reference adding "
+"fixed diameter holes.\n"
+"- Fixed Annular Ring -> will try to keep a set annular ring.\n"
+"- Proportional -> will make a Gerber punch hole having the diameter a "
+"percentage of the pad diameter."
+msgstr ""
+"The punch hole source can be:\n"
+"- Excellon Object-> the Excellon object drills center will serve as "
+"reference.\n"
+"- Fixed Diameter -> will try to use the pads center as reference adding "
+"fixed diameter holes.\n"
+"- Fixed Annular Ring -> will try to keep a set annular ring.\n"
+"- Proportional -> will make a Gerber punch hole having the diameter a "
+"percentage of the pad diameter."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:27
+msgid "QRCode Tool Options"
+msgstr "QRCode Tool Options"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:33
+msgid ""
+"A tool to create a QRCode that can be inserted\n"
+"into a selected Gerber file, or it can be exported as a file."
+msgstr ""
+"A tool to create a QRCode that can be inserted\n"
+"into a selected Gerber file, or it can be exported as a file."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45
+#: AppTools/ToolQRCode.py:100
+msgid "Version"
+msgstr "Version"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47
+#: AppTools/ToolQRCode.py:102
+msgid ""
+"QRCode version can have values from 1 (21x21 boxes)\n"
+"to 40 (177x177 boxes)."
+msgstr ""
+"QRCode version can have values from 1 (21x21 boxes)\n"
+"to 40 (177x177 boxes)."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58
+#: AppTools/ToolQRCode.py:113
+msgid "Error correction"
+msgstr "Error correction"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71
+#: AppTools/ToolQRCode.py:115 AppTools/ToolQRCode.py:126
+#, python-format
+msgid ""
+"Parameter that controls the error correction used for the QR Code.\n"
+"L = maximum 7%% errors can be corrected\n"
+"M = maximum 15%% errors can be corrected\n"
+"Q = maximum 25%% errors can be corrected\n"
+"H = maximum 30%% errors can be corrected."
+msgstr ""
+"Parameter that controls the error correction used for the QR Code.\n"
+"L = maximum 7%% errors can be corrected\n"
+"M = maximum 15%% errors can be corrected\n"
+"Q = maximum 25%% errors can be corrected\n"
+"H = maximum 30%% errors can be corrected."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81
+#: AppTools/ToolQRCode.py:136
+msgid "Box Size"
+msgstr "Box Size"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83
+#: AppTools/ToolQRCode.py:138
+msgid ""
+"Box size control the overall size of the QRcode\n"
+"by adjusting the size of each box in the code."
+msgstr ""
+"Box size control the overall size of the QRcode\n"
+"by adjusting the size of each box in the code."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94
+#: AppTools/ToolQRCode.py:149
+msgid "Border Size"
+msgstr "Border Size"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96
+#: AppTools/ToolQRCode.py:151
+msgid ""
+"Size of the QRCode border. How many boxes thick is the border.\n"
+"Default value is 4. The width of the clearance around the QRCode."
+msgstr ""
+"Size of the QRCode border. How many boxes thick is the border.\n"
+"Default value is 4. The width of the clearance around the QRCode."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107
+#: AppTools/ToolQRCode.py:162
+msgid "QRCode Data"
+msgstr "QRCode Data"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109
+#: AppTools/ToolQRCode.py:164
+msgid "QRCode Data. Alphanumeric text to be encoded in the QRCode."
+msgstr "QRCode Data. Alphanumeric text to be encoded in the QRCode."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:113
+#: AppTools/ToolQRCode.py:168
+msgid "Add here the text to be included in the QRCode..."
+msgstr "Add here the text to be included in the QRCode..."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:119
+#: AppTools/ToolQRCode.py:174
+msgid "Polarity"
+msgstr "Polarity"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121
+#: AppTools/ToolQRCode.py:176
+msgid ""
+"Choose the polarity of the QRCode.\n"
+"It can be drawn in a negative way (squares are clear)\n"
+"or in a positive way (squares are opaque)."
+msgstr ""
+"Choose the polarity of the QRCode.\n"
+"It can be drawn in a negative way (squares are clear)\n"
+"or in a positive way (squares are opaque)."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125
+#: AppTools/ToolFilm.py:279 AppTools/ToolQRCode.py:180
+msgid "Negative"
+msgstr "Negative"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126
+#: AppTools/ToolFilm.py:278 AppTools/ToolQRCode.py:181
+msgid "Positive"
+msgstr "Positive"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128
+#: AppTools/ToolQRCode.py:183
+msgid ""
+"Choose the type of QRCode to be created.\n"
+"If added on a Silkscreen Gerber file the QRCode may\n"
+"be added as positive. If it is added to a Copper Gerber\n"
+"file then perhaps the QRCode can be added as negative."
+msgstr ""
+"Choose the type of QRCode to be created.\n"
+"If added on a Silkscreen Gerber file the QRCode may\n"
+"be added as positive. If it is added to a Copper Gerber\n"
+"file then perhaps the QRCode can be added as negative."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145
+#: AppTools/ToolQRCode.py:194 AppTools/ToolQRCode.py:200
+msgid ""
+"The bounding box, meaning the empty space that surrounds\n"
+"the QRCode geometry, can have a rounded or a square shape."
+msgstr ""
+"The bounding box, meaning the empty space that surrounds\n"
+"the QRCode geometry, can have a rounded or a square shape."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:239
+#: AppTools/ToolQRCode.py:197 AppTools/ToolTransform.py:383
+msgid "Rounded"
+msgstr "Rounded"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152
+#: AppTools/ToolQRCode.py:228
+msgid "Fill Color"
+msgstr "Fill Color"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154
+#: AppTools/ToolQRCode.py:230
+msgid "Set the QRCode fill color (squares color)."
+msgstr "Set the QRCode fill color (squares color)."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:173
+#: AppTools/ToolQRCode.py:252
+msgid "Back Color"
+msgstr "Back Color"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:175
+#: AppTools/ToolQRCode.py:254
+msgid "Set the QRCode background color."
+msgstr "Set the QRCode background color."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:27
+msgid "Check Rules Tool Options"
+msgstr "Check Rules Tool Options"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:32
+msgid ""
+"A tool to check if Gerber files are within a set\n"
+"of Manufacturing Rules."
+msgstr ""
+"A tool to check if Gerber files are within a set\n"
+"of Manufacturing Rules."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:42
+#: AppTools/ToolRulesCheck.py:265 AppTools/ToolRulesCheck.py:929
+msgid "Trace Size"
+msgstr "Trace Size"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:44
+#: AppTools/ToolRulesCheck.py:267
+msgid "This checks if the minimum size for traces is met."
+msgstr "This checks if the minimum size for traces is met."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:54
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:74
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:94
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:114
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:134
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:154
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:174
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:194
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:216
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:236
+#: AppTools/ToolRulesCheck.py:277 AppTools/ToolRulesCheck.py:299
+#: AppTools/ToolRulesCheck.py:322 AppTools/ToolRulesCheck.py:345
+#: AppTools/ToolRulesCheck.py:368 AppTools/ToolRulesCheck.py:391
+#: AppTools/ToolRulesCheck.py:414 AppTools/ToolRulesCheck.py:437
+#: AppTools/ToolRulesCheck.py:462 AppTools/ToolRulesCheck.py:485
+msgid "Min value"
+msgstr "Min value"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:56
+#: AppTools/ToolRulesCheck.py:279
+msgid "Minimum acceptable trace size."
+msgstr "Minimum acceptable trace size."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:61
+#: AppTools/ToolRulesCheck.py:286 AppTools/ToolRulesCheck.py:1157
+#: AppTools/ToolRulesCheck.py:1187
+msgid "Copper to Copper clearance"
+msgstr "Copper to Copper clearance"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:63
+#: AppTools/ToolRulesCheck.py:288
+msgid ""
+"This checks if the minimum clearance between copper\n"
+"features is met."
+msgstr ""
+"This checks if the minimum clearance between copper\n"
+"features is met."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:76
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:96
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:116
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:136
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:156
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:176
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:238
+#: AppTools/ToolRulesCheck.py:301 AppTools/ToolRulesCheck.py:324
+#: AppTools/ToolRulesCheck.py:347 AppTools/ToolRulesCheck.py:370
+#: AppTools/ToolRulesCheck.py:393 AppTools/ToolRulesCheck.py:416
+#: AppTools/ToolRulesCheck.py:464
+msgid "Minimum acceptable clearance value."
+msgstr "Minimum acceptable clearance value."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:81
+#: AppTools/ToolRulesCheck.py:309 AppTools/ToolRulesCheck.py:1217
+#: AppTools/ToolRulesCheck.py:1223 AppTools/ToolRulesCheck.py:1236
+#: AppTools/ToolRulesCheck.py:1243
+msgid "Copper to Outline clearance"
+msgstr "Copper to Outline clearance"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:83
+#: AppTools/ToolRulesCheck.py:311
+msgid ""
+"This checks if the minimum clearance between copper\n"
+"features and the outline is met."
+msgstr ""
+"This checks if the minimum clearance between copper\n"
+"features and the outline is met."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:101
+#: AppTools/ToolRulesCheck.py:332
+msgid "Silk to Silk Clearance"
+msgstr "Silk to Silk Clearance"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:103
+#: AppTools/ToolRulesCheck.py:334
+msgid ""
+"This checks if the minimum clearance between silkscreen\n"
+"features and silkscreen features is met."
+msgstr ""
+"This checks if the minimum clearance between silkscreen\n"
+"features and silkscreen features is met."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:121
+#: AppTools/ToolRulesCheck.py:355 AppTools/ToolRulesCheck.py:1326
+#: AppTools/ToolRulesCheck.py:1332 AppTools/ToolRulesCheck.py:1350
+msgid "Silk to Solder Mask Clearance"
+msgstr "Silk to Solder Mask Clearance"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:123
+#: AppTools/ToolRulesCheck.py:357
+msgid ""
+"This checks if the minimum clearance between silkscreen\n"
+"features and soldermask features is met."
+msgstr ""
+"This checks if the minimum clearance between silkscreen\n"
+"features and soldermask features is met."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:141
+#: AppTools/ToolRulesCheck.py:378 AppTools/ToolRulesCheck.py:1380
+#: AppTools/ToolRulesCheck.py:1386 AppTools/ToolRulesCheck.py:1400
+#: AppTools/ToolRulesCheck.py:1407
+msgid "Silk to Outline Clearance"
+msgstr "Silk to Outline Clearance"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:143
+#: AppTools/ToolRulesCheck.py:380
+msgid ""
+"This checks if the minimum clearance between silk\n"
+"features and the outline is met."
+msgstr ""
+"This checks if the minimum clearance between silk\n"
+"features and the outline is met."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:161
+#: AppTools/ToolRulesCheck.py:401 AppTools/ToolRulesCheck.py:1418
+#: AppTools/ToolRulesCheck.py:1445
+msgid "Minimum Solder Mask Sliver"
+msgstr "Minimum Solder Mask Sliver"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:163
+#: AppTools/ToolRulesCheck.py:403
+msgid ""
+"This checks if the minimum clearance between soldermask\n"
+"features and soldermask features is met."
+msgstr ""
+"This checks if the minimum clearance between soldermask\n"
+"features and soldermask features is met."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:181
+#: AppTools/ToolRulesCheck.py:424 AppTools/ToolRulesCheck.py:1483
+#: AppTools/ToolRulesCheck.py:1489 AppTools/ToolRulesCheck.py:1505
+#: AppTools/ToolRulesCheck.py:1512
+msgid "Minimum Annular Ring"
+msgstr "Minimum Annular Ring"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:183
+#: AppTools/ToolRulesCheck.py:426
+msgid ""
+"This checks if the minimum copper ring left by drilling\n"
+"a hole into a pad is met."
+msgstr ""
+"This checks if the minimum copper ring left by drilling\n"
+"a hole into a pad is met."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:196
+#: AppTools/ToolRulesCheck.py:439
+msgid "Minimum acceptable ring value."
+msgstr "Minimum acceptable ring value."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:203
+#: AppTools/ToolRulesCheck.py:449 AppTools/ToolRulesCheck.py:873
+msgid "Hole to Hole Clearance"
+msgstr "Hole to Hole Clearance"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:205
+#: AppTools/ToolRulesCheck.py:451
+msgid ""
+"This checks if the minimum clearance between a drill hole\n"
+"and another drill hole is met."
+msgstr ""
+"This checks if the minimum clearance between a drill hole\n"
+"and another drill hole is met."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:218
+#: AppTools/ToolRulesCheck.py:487
+msgid "Minimum acceptable drill size."
+msgstr "Minimum acceptable drill size."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:223
+#: AppTools/ToolRulesCheck.py:472 AppTools/ToolRulesCheck.py:847
+msgid "Hole Size"
+msgstr "Hole Size"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:225
+#: AppTools/ToolRulesCheck.py:474
+msgid ""
+"This checks if the drill holes\n"
+"sizes are above the threshold."
+msgstr ""
+"This checks if the drill holes\n"
+"sizes are above the threshold."
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:27
+msgid "2Sided Tool Options"
+msgstr "2Sided Tool Options"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:33
+msgid ""
+"A tool to help in creating a double sided\n"
+"PCB using alignment holes."
+msgstr ""
+"A tool to help in creating a double sided\n"
+"PCB using alignment holes."
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:47
+msgid "Drill dia"
+msgstr "Drill dia"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49
+#: AppTools/ToolDblSided.py:363 AppTools/ToolDblSided.py:368
+msgid "Diameter of the drill for the alignment holes."
+msgstr "Diameter of the drill for the alignment holes."
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:56
+#: AppTools/ToolDblSided.py:377
+msgid "Align Axis"
+msgstr "Align Axis"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71
+#: AppTools/ToolDblSided.py:165 AppTools/ToolDblSided.py:379
+msgid "Mirror vertically (X) or horizontally (Y)."
+msgstr "Mirror vertically (X) or horizontally (Y)."
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:69
+msgid "Mirror Axis:"
+msgstr "Mirror Axis:"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:80
+#: AppTools/ToolDblSided.py:181
+msgid "Point"
+msgstr "Point"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:81
+#: AppTools/ToolDblSided.py:182
+msgid "Box"
+msgstr "Box"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:82
+msgid "Axis Ref"
+msgstr "Axis Ref"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:84
+msgid ""
+"The axis should pass through a point or cut\n"
+" a specified box (in a FlatCAM object) through \n"
+"the center."
+msgstr ""
+"The axis should pass through a point or cut\n"
+" a specified box (in a FlatCAM object) through \n"
+"the center."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:27
+msgid "Calculators Tool Options"
+msgstr "Calculators Tool Options"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31
+#: AppTools/ToolCalculators.py:25
+msgid "V-Shape Tool Calculator"
+msgstr "V-Shape Tool Calculator"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:33
+msgid ""
+"Calculate the tool diameter for a given V-shape tool,\n"
+"having the tip diameter, tip angle and\n"
+"depth-of-cut as parameters."
+msgstr ""
+"Calculate the tool diameter for a given V-shape tool,\n"
+"having the tip diameter, tip angle and\n"
+"depth-of-cut as parameters."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50
+#: AppTools/ToolCalculators.py:94
+msgid "Tip Diameter"
+msgstr "Tip Diameter"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52
+#: AppTools/ToolCalculators.py:102
+msgid ""
+"This is the tool tip diameter.\n"
+"It is specified by manufacturer."
+msgstr ""
+"This is the tool tip diameter.\n"
+"It is specified by manufacturer."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64
+#: AppTools/ToolCalculators.py:105
+msgid "Tip Angle"
+msgstr "Tip Angle"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:66
+msgid ""
+"This is the angle on the tip of the tool.\n"
+"It is specified by manufacturer."
+msgstr ""
+"This is the angle on the tip of the tool.\n"
+"It is specified by manufacturer."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:80
+msgid ""
+"This is depth to cut into material.\n"
+"In the CNCJob object it is the CutZ parameter."
+msgstr ""
+"This is depth to cut into material.\n"
+"In the CNCJob object it is the CutZ parameter."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87
+#: AppTools/ToolCalculators.py:27
+msgid "ElectroPlating Calculator"
+msgstr "ElectroPlating Calculator"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89
+#: AppTools/ToolCalculators.py:158
+msgid ""
+"This calculator is useful for those who plate the via/pad/drill holes,\n"
+"using a method like graphite ink or calcium hypophosphite ink or palladium "
+"chloride."
+msgstr ""
+"This calculator is useful for those who plate the via/pad/drill holes,\n"
+"using a method like graphite ink or calcium hypophosphite ink or palladium "
+"chloride."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:100
+#: AppTools/ToolCalculators.py:167
+msgid "Board Length"
+msgstr "Board Length"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102
+#: AppTools/ToolCalculators.py:173
+msgid "This is the board length. In centimeters."
+msgstr "This is the board length. In centimeters."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112
+#: AppTools/ToolCalculators.py:175
+msgid "Board Width"
+msgstr "Board Width"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114
+#: AppTools/ToolCalculators.py:181
+msgid "This is the board width.In centimeters."
+msgstr "This is the board width.In centimeters."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119
+#: AppTools/ToolCalculators.py:183
+msgid "Current Density"
+msgstr "Current Density"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125
+#: AppTools/ToolCalculators.py:190
+msgid ""
+"Current density to pass through the board. \n"
+"In Amps per Square Feet ASF."
+msgstr ""
+"Current density to pass through the board. \n"
+"In Amps per Square Feet ASF."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:131
+#: AppTools/ToolCalculators.py:193
+msgid "Copper Growth"
+msgstr "Copper Growth"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137
+#: AppTools/ToolCalculators.py:200
+msgid ""
+"How thick the copper growth is intended to be.\n"
+"In microns."
+msgstr ""
+"How thick the copper growth is intended to be.\n"
+"In microns."
+
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:27
+msgid "Corner Markers Options"
+msgstr "Corner Markers Options"
+
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:44
+#: AppTools/ToolCorners.py:115
+msgid "The thickness of the line that makes the corner marker."
+msgstr "The thickness of the line that makes the corner marker."
+
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:58
+#: AppTools/ToolCorners.py:129
+msgid "The length of the line that makes the corner marker."
+msgstr "The length of the line that makes the corner marker."
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:28
+msgid "Cutout Tool Options"
+msgstr "Cutout Tool Options"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43
+#: AppTools/ToolCalculators.py:123 AppTools/ToolCutOut.py:129
+msgid "Tool Diameter"
+msgstr "Tool Diameter"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45
+#: AppTools/ToolCutOut.py:131
+msgid ""
+"Diameter of the tool used to cutout\n"
+"the PCB shape out of the surrounding material."
+msgstr ""
+"Diameter of the tool used to cutout\n"
+"the PCB shape out of the surrounding material."
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:100
+msgid "Object kind"
+msgstr "Object kind"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102
+#: AppTools/ToolCutOut.py:77
+msgid ""
+"Choice of what kind the object we want to cutout is.
- Single: "
+"contain a single PCB Gerber outline object.
- Panel: a panel PCB "
+"Gerber object, which is made\n"
+"out of many individual PCB outlines."
+msgstr ""
+"Choice of what kind the object we want to cutout is.
- Single: "
+"contain a single PCB Gerber outline object.
- Panel: a panel PCB "
+"Gerber object, which is made\n"
+"out of many individual PCB outlines."
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109
+#: AppTools/ToolCutOut.py:83
+msgid "Single"
+msgstr "Single"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110
+#: AppTools/ToolCutOut.py:84
+msgid "Panel"
+msgstr "Panel"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117
+#: AppTools/ToolCutOut.py:192
+msgid ""
+"Margin over bounds. A positive value here\n"
+"will make the cutout of the PCB further from\n"
+"the actual PCB border"
+msgstr ""
+"Margin over bounds. A positive value here\n"
+"will make the cutout of the PCB further from\n"
+"the actual PCB border"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:130
+#: AppTools/ToolCutOut.py:203
+msgid "Gap size"
+msgstr "Gap size"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:132
+#: AppTools/ToolCutOut.py:205
+msgid ""
+"The size of the bridge gaps in the cutout\n"
+"used to keep the board connected to\n"
+"the surrounding material (the one \n"
+"from which the PCB is cutout)."
+msgstr ""
+"The size of the bridge gaps in the cutout\n"
+"used to keep the board connected to\n"
+"the surrounding material (the one \n"
+"from which the PCB is cutout)."
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:146
+#: AppTools/ToolCutOut.py:245
+msgid "Gaps"
+msgstr "Gaps"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:148
+msgid ""
+"Number of gaps used for the cutout.\n"
+"There can be maximum 8 bridges/gaps.\n"
+"The choices are:\n"
+"- None - no gaps\n"
+"- lr - left + right\n"
+"- tb - top + bottom\n"
+"- 4 - left + right +top + bottom\n"
+"- 2lr - 2*left + 2*right\n"
+"- 2tb - 2*top + 2*bottom\n"
+"- 8 - 2*left + 2*right +2*top + 2*bottom"
+msgstr ""
+"Number of gaps used for the cutout.\n"
+"There can be maximum 8 bridges/gaps.\n"
+"The choices are:\n"
+"- None - no gaps\n"
+"- lr - left + right\n"
+"- tb - top + bottom\n"
+"- 4 - left + right +top + bottom\n"
+"- 2lr - 2*left + 2*right\n"
+"- 2tb - 2*top + 2*bottom\n"
+"- 8 - 2*left + 2*right +2*top + 2*bottom"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:170
+#: AppTools/ToolCutOut.py:222
+msgid "Convex Shape"
+msgstr "Convex Shape"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:172
+#: AppTools/ToolCutOut.py:225
+msgid ""
+"Create a convex shape surrounding the entire PCB.\n"
+"Used only if the source object type is Gerber."
+msgstr ""
+"Create a convex shape surrounding the entire PCB.\n"
+"Used only if the source object type is Gerber."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:27
+msgid "Film Tool Options"
+msgstr "Film Tool Options"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:33
+msgid ""
+"Create a PCB film from a Gerber or Geometry\n"
+"FlatCAM object.\n"
+"The file is saved in SVG format."
+msgstr ""
+"Create a PCB film from a Gerber or Geometry\n"
+"FlatCAM object.\n"
+"The file is saved in SVG format."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:44
+msgid "Film Type"
+msgstr "Film Type"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:46 AppTools/ToolFilm.py:283
+msgid ""
+"Generate a Positive black film or a Negative film.\n"
+"Positive means that it will print the features\n"
+"with black on a white canvas.\n"
+"Negative means that it will print the features\n"
+"with white on a black canvas.\n"
+"The Film format is SVG."
+msgstr ""
+"Generate a Positive black film or a Negative film.\n"
+"Positive means that it will print the features\n"
+"with black on a white canvas.\n"
+"Negative means that it will print the features\n"
+"with white on a black canvas.\n"
+"The Film format is SVG."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:57
+msgid "Film Color"
+msgstr "Film Color"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:59
+msgid "Set the film color when positive film is selected."
+msgstr "Set the film color when positive film is selected."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:82 AppTools/ToolFilm.py:299
+msgid "Border"
+msgstr "Border"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:84 AppTools/ToolFilm.py:301
+msgid ""
+"Specify a border around the object.\n"
+"Only for negative film.\n"
+"It helps if we use as a Box Object the same \n"
+"object as in Film Object. It will create a thick\n"
+"black bar around the actual print allowing for a\n"
+"better delimitation of the outline features which are of\n"
+"white color like the rest and which may confound with the\n"
+"surroundings if not for this border."
+msgstr ""
+"Specify a border around the object.\n"
+"Only for negative film.\n"
+"It helps if we use as a Box Object the same \n"
+"object as in Film Object. It will create a thick\n"
+"black bar around the actual print allowing for a\n"
+"better delimitation of the outline features which are of\n"
+"white color like the rest and which may confound with the\n"
+"surroundings if not for this border."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:101
+#: AppTools/ToolFilm.py:266
+msgid "Scale Stroke"
+msgstr "Scale Stroke"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:103
+#: AppTools/ToolFilm.py:268
+msgid ""
+"Scale the line stroke thickness of each feature in the SVG file.\n"
+"It means that the line that envelope each SVG feature will be thicker or "
+"thinner,\n"
+"therefore the fine features may be more affected by this parameter."
+msgstr ""
+"Scale the line stroke thickness of each feature in the SVG file.\n"
+"It means that the line that envelope each SVG feature will be thicker or "
+"thinner,\n"
+"therefore the fine features may be more affected by this parameter."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:110
+#: AppTools/ToolFilm.py:124
+msgid "Film Adjustments"
+msgstr "Film Adjustments"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:112
+#: AppTools/ToolFilm.py:126
+msgid ""
+"Sometime the printers will distort the print shape, especially the Laser "
+"types.\n"
+"This section provide the tools to compensate for the print distortions."
+msgstr ""
+"Sometime the printers will distort the print shape, especially the Laser "
+"types.\n"
+"This section provide the tools to compensate for the print distortions."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:119
+#: AppTools/ToolFilm.py:133
+msgid "Scale Film geometry"
+msgstr "Scale Film geometry"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:121
+#: AppTools/ToolFilm.py:135
+msgid ""
+"A value greater than 1 will stretch the film\n"
+"while a value less than 1 will jolt it."
+msgstr ""
+"A value greater than 1 will stretch the film\n"
+"while a value less than 1 will jolt it."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:131
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:103
+#: AppTools/ToolFilm.py:145 AppTools/ToolTransform.py:148
+msgid "X factor"
+msgstr "X factor"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:140
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:116
+#: AppTools/ToolFilm.py:154 AppTools/ToolTransform.py:168
+msgid "Y factor"
+msgstr "Y factor"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:150
+#: AppTools/ToolFilm.py:172
+msgid "Skew Film geometry"
+msgstr "Skew Film geometry"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:152
+#: AppTools/ToolFilm.py:174
+msgid ""
+"Positive values will skew to the right\n"
+"while negative values will skew to the left."
+msgstr ""
+"Positive values will skew to the right\n"
+"while negative values will skew to the left."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:162
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:72
+#: AppTools/ToolFilm.py:184 AppTools/ToolTransform.py:97
+msgid "X angle"
+msgstr "X angle"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:171
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:86
+#: AppTools/ToolFilm.py:193 AppTools/ToolTransform.py:118
+msgid "Y angle"
+msgstr "Y angle"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:182
+#: AppTools/ToolFilm.py:204
+msgid ""
+"The reference point to be used as origin for the skew.\n"
+"It can be one of the four points of the geometry bounding box."
+msgstr ""
+"The reference point to be used as origin for the skew.\n"
+"It can be one of the four points of the geometry bounding box."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:185
+#: AppTools/ToolCorners.py:80 AppTools/ToolFiducials.py:87
+#: AppTools/ToolFilm.py:207
+msgid "Bottom Left"
+msgstr "Bottom Left"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:186
+#: AppTools/ToolCorners.py:88 AppTools/ToolFilm.py:208
+msgid "Top Left"
+msgstr "Top Left"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:187
+#: AppTools/ToolCorners.py:84 AppTools/ToolFilm.py:209
+msgid "Bottom Right"
+msgstr "Bottom Right"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:188
+#: AppTools/ToolFilm.py:210
+msgid "Top right"
+msgstr "Top right"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196
+#: AppTools/ToolFilm.py:227
+msgid "Mirror Film geometry"
+msgstr "Mirror Film geometry"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:198
+#: AppTools/ToolFilm.py:229
+msgid "Mirror the film geometry on the selected axis or on both."
+msgstr "Mirror the film geometry on the selected axis or on both."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:212
+#: AppTools/ToolFilm.py:243
+msgid "Mirror axis"
+msgstr "Mirror axis"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:222
+#: AppTools/ToolFilm.py:388
+msgid "SVG"
+msgstr "SVG"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:223
+#: AppTools/ToolFilm.py:389
+msgid "PNG"
+msgstr "PNG"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:224
+#: AppTools/ToolFilm.py:390
+msgid "PDF"
+msgstr "PDF"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:227
+#: AppTools/ToolFilm.py:281 AppTools/ToolFilm.py:393
+msgid "Film Type:"
+msgstr "Film Type:"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:229
+#: AppTools/ToolFilm.py:395
+msgid ""
+"The file type of the saved film. Can be:\n"
+"- 'SVG' -> open-source vectorial format\n"
+"- 'PNG' -> raster image\n"
+"- 'PDF' -> portable document format"
+msgstr ""
+"The file type of the saved film. Can be:\n"
+"- 'SVG' -> open-source vectorial format\n"
+"- 'PNG' -> raster image\n"
+"- 'PDF' -> portable document format"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:238
+#: AppTools/ToolFilm.py:404
+msgid "Page Orientation"
+msgstr "Page Orientation"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:251
+#: AppTools/ToolFilm.py:417
+msgid "Page Size"
+msgstr "Page Size"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:252
+#: AppTools/ToolFilm.py:418
+msgid "A selection of standard ISO 216 page sizes."
+msgstr "A selection of standard ISO 216 page sizes."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:27
+msgid "NCC Tool Options"
+msgstr "NCC Tool Options"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:49
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:57
+msgid "Comma separated values"
+msgstr "Comma separated values"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:55
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:63
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:64 AppTools/ToolNCC.py:215
+#: AppTools/ToolNCC.py:223 AppTools/ToolPaint.py:197 AppTools/ToolPaint.py:205
+msgid ""
+"Default tool type:\n"
+"- 'V-shape'\n"
+"- Circular"
+msgstr ""
+"Default tool type:\n"
+"- 'V-shape'\n"
+"- Circular"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:60
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:69 AppTools/ToolNCC.py:220
+#: AppTools/ToolPaint.py:202
+msgid "V-shape"
+msgstr "V-shape"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:100
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:109
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:107
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:116
+#: AppTools/ToolNCC.py:262 AppTools/ToolNCC.py:271 AppTools/ToolPaint.py:244
+#: AppTools/ToolPaint.py:253
+msgid ""
+"Depth of cut into material. Negative value.\n"
+"In FlatCAM units."
+msgstr ""
+"Depth of cut into material. Negative value.\n"
+"In FlatCAM units."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:119
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:125
+#: AppTools/ToolNCC.py:280 AppTools/ToolPaint.py:262
+msgid ""
+"Diameter for the new tool to add in the Tool Table.\n"
+"If the tool is V-shape type then this value is automatically\n"
+"calculated from the other parameters."
+msgstr ""
+"Diameter for the new tool to add in the Tool Table.\n"
+"If the tool is V-shape type then this value is automatically\n"
+"calculated from the other parameters."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:156
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:142
+#: AppTools/ToolNCC.py:174 AppTools/ToolPaint.py:157
+msgid "Tool order"
+msgstr "Tool order"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:157
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:167
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:143
+#: AppTools/ToolNCC.py:175 AppTools/ToolNCC.py:185 AppTools/ToolPaint.py:158
+#: AppTools/ToolPaint.py:168
+msgid ""
+"This set the way that the tools in the tools table are used.\n"
+"'No' --> means that the used order is the one in the tool table\n"
+"'Forward' --> means that the tools will be ordered from small to big\n"
+"'Reverse' --> means that the tools will ordered from big to small\n"
+"\n"
+"WARNING: using rest machining will automatically set the order\n"
+"in reverse and disable this control."
+msgstr ""
+"This set the way that the tools in the tools table are used.\n"
+"'No' --> means that the used order is the one in the tool table\n"
+"'Forward' --> means that the tools will be ordered from small to big\n"
+"'Reverse' --> means that the tools will ordered from big to small\n"
+"\n"
+"WARNING: using rest machining will automatically set the order\n"
+"in reverse and disable this control."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:165
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:151
+#: AppTools/ToolNCC.py:183 AppTools/ToolPaint.py:166
+msgid "Forward"
+msgstr "Forward"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:166
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:152
+#: AppTools/ToolNCC.py:184 AppTools/ToolPaint.py:167
+msgid "Reverse"
+msgstr "Reverse"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:266
+msgid "Offset value"
+msgstr "Offset value"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:268
+msgid ""
+"If used, it will add an offset to the copper features.\n"
+"The copper clearing will finish to a distance\n"
+"from the copper features.\n"
+"The value can be between 0.0 and 9999.9 FlatCAM units."
+msgstr ""
+"If used, it will add an offset to the copper features.\n"
+"The copper clearing will finish to a distance\n"
+"from the copper features.\n"
+"The value can be between 0.0 and 9999.9 FlatCAM units."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:288
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:244
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:245
+#: AppTools/ToolNCC.py:512 AppTools/ToolPaint.py:441
+msgid "Rest Machining"
+msgstr "Rest Machining"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:290 AppTools/ToolNCC.py:516
+msgid ""
+"If checked, use 'rest machining'.\n"
+"Basically it will clear copper outside PCB features,\n"
+"using the biggest tool and continue with the next tools,\n"
+"from bigger to smaller, to clear areas of copper that\n"
+"could not be cleared by previous tool, until there is\n"
+"no more copper to clear or there are no more tools.\n"
+"If not checked, use the standard algorithm."
+msgstr ""
+"If checked, use 'rest machining'.\n"
+"Basically it will clear copper outside PCB features,\n"
+"using the biggest tool and continue with the next tools,\n"
+"from bigger to smaller, to clear areas of copper that\n"
+"could not be cleared by previous tool, until there is\n"
+"no more copper to clear or there are no more tools.\n"
+"If not checked, use the standard algorithm."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:313 AppTools/ToolNCC.py:541
+msgid ""
+"Selection of area to be processed.\n"
+"- 'Itself' - the processing extent is based on the object that is "
+"processed.\n"
+" - 'Area Selection' - left mouse click to start selection of the area to be "
+"processed.\n"
+"- 'Reference Object' - will process the area specified by another object."
+msgstr ""
+"Selection of area to be processed.\n"
+"- 'Itself' - the processing extent is based on the object that is "
+"processed.\n"
+" - 'Area Selection' - left mouse click to start selection of the area to be "
+"processed.\n"
+"- 'Reference Object' - will process the area specified by another object."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:339
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303
+msgid "Normal"
+msgstr "Normal"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:340
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:304
+msgid "Progressive"
+msgstr "Progressive"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:341
+msgid "NCC Plotting"
+msgstr "NCC Plotting"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:343
+msgid ""
+"- 'Normal' - normal plotting, done at the end of the NCC job\n"
+"- 'Progressive' - after each shape is generated it will be plotted."
+msgstr ""
+"- 'Normal' - normal plotting, done at the end of the NCC job\n"
+"- 'Progressive' - after each shape is generated it will be plotted."
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:27
+msgid "Paint Tool Options"
+msgstr "Paint Tool Options"
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:33
+msgid "Parameters:"
+msgstr "Parameters:"
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:247
+#: AppTools/ToolPaint.py:444
+msgid ""
+"If checked, use 'rest machining'.\n"
+"Basically it will clear copper outside PCB features,\n"
+"using the biggest tool and continue with the next tools,\n"
+"from bigger to smaller, to clear areas of copper that\n"
+"could not be cleared by previous tool, until there is\n"
+"no more copper to clear or there are no more tools.\n"
+"\n"
+"If not checked, use the standard algorithm."
+msgstr ""
+"If checked, use 'rest machining'.\n"
+"Basically it will clear copper outside PCB features,\n"
+"using the biggest tool and continue with the next tools,\n"
+"from bigger to smaller, to clear areas of copper that\n"
+"could not be cleared by previous tool, until there is\n"
+"no more copper to clear or there are no more tools.\n"
+"\n"
+"If not checked, use the standard algorithm."
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:260
+#: AppTools/ToolPaint.py:457
+msgid ""
+"Selection of area to be processed.\n"
+"- 'Polygon Selection' - left mouse click to add/remove polygons to be "
+"processed.\n"
+"- 'Area Selection' - left mouse click to start selection of the area to be "
+"processed.\n"
+"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple "
+"areas.\n"
+"- 'All Polygons' - the process will start after click.\n"
+"- 'Reference Object' - will process the area specified by another object."
+msgstr ""
+"Selection of area to be processed.\n"
+"- 'Polygon Selection' - left mouse click to add/remove polygons to be "
+"processed.\n"
+"- 'Area Selection' - left mouse click to start selection of the area to be "
+"processed.\n"
+"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple "
+"areas.\n"
+"- 'All Polygons' - the process will start after click.\n"
+"- 'Reference Object' - will process the area specified by another object."
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
+#: AppTools/ToolPaint.py:485 AppTools/ToolPaint.py:941
+#: AppTools/ToolPaint.py:1431 tclCommands/TclCommandPaint.py:164
+msgid "Polygon Selection"
+msgstr "Polygon Selection"
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
+#: AppTools/ToolPaint.py:485 AppTools/ToolPaint.py:1426 defaults.py:433
+#: tclCommands/TclCommandPaint.py:162
+msgid "All Polygons"
+msgstr "All Polygons"
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:305
+msgid "Paint Plotting"
+msgstr "Paint Plotting"
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:307
+msgid ""
+"- 'Normal' - normal plotting, done at the end of the Paint job\n"
+"- 'Progressive' - after each shape is generated it will be plotted."
+msgstr ""
+"- 'Normal' - normal plotting, done at the end of the Paint job\n"
+"- 'Progressive' - after each shape is generated it will be plotted."
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:27
+msgid "Panelize Tool Options"
+msgstr "Panelize Tool Options"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:33
+msgid ""
+"Create an object that contains an array of (x, y) elements,\n"
+"each element is a copy of the source object spaced\n"
+"at a X distance, Y distance of each other."
+msgstr ""
+"Create an object that contains an array of (x, y) elements,\n"
+"each element is a copy of the source object spaced\n"
+"at a X distance, Y distance of each other."
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:50
+#: AppTools/ToolPanelize.py:165
+msgid "Spacing cols"
+msgstr "Spacing cols"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:52
+#: AppTools/ToolPanelize.py:167
+msgid ""
+"Spacing between columns of the desired panel.\n"
+"In current units."
+msgstr ""
+"Spacing between columns of the desired panel.\n"
+"In current units."
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:64
+#: AppTools/ToolPanelize.py:177
+msgid "Spacing rows"
+msgstr "Spacing rows"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:66
+#: AppTools/ToolPanelize.py:179
+msgid ""
+"Spacing between rows of the desired panel.\n"
+"In current units."
+msgstr ""
+"Spacing between rows of the desired panel.\n"
+"In current units."
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:77
+#: AppTools/ToolPanelize.py:188
+msgid "Columns"
+msgstr "Columns"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:79
+#: AppTools/ToolPanelize.py:190
+msgid "Number of columns of the desired panel"
+msgstr "Number of columns of the desired panel"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:89
+#: AppTools/ToolPanelize.py:198
+msgid "Rows"
+msgstr "Rows"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:91
+#: AppTools/ToolPanelize.py:200
+msgid "Number of rows of the desired panel"
+msgstr "Number of rows of the desired panel"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:98
+#: AppTools/ToolPanelize.py:211
+msgid "Geo"
+msgstr "Geo"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:99
+#: AppTools/ToolPanelize.py:212
+msgid "Panel Type"
+msgstr "Panel Type"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:101
+msgid ""
+"Choose the type of object for the panel object:\n"
+"- Gerber\n"
+"- Geometry"
+msgstr ""
+"Choose the type of object for the panel object:\n"
+"- Gerber\n"
+"- Geometry"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:110
+msgid "Constrain within"
+msgstr "Constrain within"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:112
+#: AppTools/ToolPanelize.py:224
+msgid ""
+"Area define by DX and DY within to constrain the panel.\n"
+"DX and DY values are in current units.\n"
+"Regardless of how many columns and rows are desired,\n"
+"the final panel will have as many columns and rows as\n"
+"they fit completely within selected area."
+msgstr ""
+"Area define by DX and DY within to constrain the panel.\n"
+"DX and DY values are in current units.\n"
+"Regardless of how many columns and rows are desired,\n"
+"the final panel will have as many columns and rows as\n"
+"they fit completely within selected area."
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:125
+#: AppTools/ToolPanelize.py:236
+msgid "Width (DX)"
+msgstr "Width (DX)"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:127
+#: AppTools/ToolPanelize.py:238
+msgid ""
+"The width (DX) within which the panel must fit.\n"
+"In current units."
+msgstr ""
+"The width (DX) within which the panel must fit.\n"
+"In current units."
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:138
+#: AppTools/ToolPanelize.py:247
+msgid "Height (DY)"
+msgstr "Height (DY)"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:140
+#: AppTools/ToolPanelize.py:249
+msgid ""
+"The height (DY)within which the panel must fit.\n"
+"In current units."
+msgstr ""
+"The height (DY)within which the panel must fit.\n"
+"In current units."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:27
+msgid "SolderPaste Tool Options"
+msgstr "SolderPaste Tool Options"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:33
+msgid ""
+"A tool to create GCode for dispensing\n"
+"solder paste onto a PCB."
+msgstr ""
+"A tool to create GCode for dispensing\n"
+"solder paste onto a PCB."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:54
+msgid "New Nozzle Dia"
+msgstr "New Nozzle Dia"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:56
+#: AppTools/ToolSolderPaste.py:107
+msgid "Diameter for the new Nozzle tool to add in the Tool Table"
+msgstr "Diameter for the new Nozzle tool to add in the Tool Table"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:72
+#: AppTools/ToolSolderPaste.py:183
+msgid "Z Dispense Start"
+msgstr "Z Dispense Start"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:74
+#: AppTools/ToolSolderPaste.py:185
+msgid "The height (Z) when solder paste dispensing starts."
+msgstr "The height (Z) when solder paste dispensing starts."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:85
+#: AppTools/ToolSolderPaste.py:195
+msgid "Z Dispense"
+msgstr "Z Dispense"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:87
+#: AppTools/ToolSolderPaste.py:197
+msgid "The height (Z) when doing solder paste dispensing."
+msgstr "The height (Z) when doing solder paste dispensing."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:98
+#: AppTools/ToolSolderPaste.py:207
+msgid "Z Dispense Stop"
+msgstr "Z Dispense Stop"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:100
+#: AppTools/ToolSolderPaste.py:209
+msgid "The height (Z) when solder paste dispensing stops."
+msgstr "The height (Z) when solder paste dispensing stops."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:111
+#: AppTools/ToolSolderPaste.py:219
+msgid "Z Travel"
+msgstr "Z Travel"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:113
+#: AppTools/ToolSolderPaste.py:221
+msgid ""
+"The height (Z) for travel between pads\n"
+"(without dispensing solder paste)."
+msgstr ""
+"The height (Z) for travel between pads\n"
+"(without dispensing solder paste)."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:125
+#: AppTools/ToolSolderPaste.py:232
+msgid "Z Toolchange"
+msgstr "Z Toolchange"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:127
+#: AppTools/ToolSolderPaste.py:234
+msgid "The height (Z) for tool (nozzle) change."
+msgstr "The height (Z) for tool (nozzle) change."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:136
+#: AppTools/ToolSolderPaste.py:242
+msgid ""
+"The X,Y location for tool (nozzle) change.\n"
+"The format is (x, y) where x and y are real numbers."
+msgstr ""
+"The X,Y location for tool (nozzle) change.\n"
+"The format is (x, y) where x and y are real numbers."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:150
+#: AppTools/ToolSolderPaste.py:255
+msgid "Feedrate (speed) while moving on the X-Y plane."
+msgstr "Feedrate (speed) while moving on the X-Y plane."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:163
+#: AppTools/ToolSolderPaste.py:267
+msgid ""
+"Feedrate (speed) while moving vertically\n"
+"(on Z plane)."
+msgstr ""
+"Feedrate (speed) while moving vertically\n"
+"(on Z plane)."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:175
+#: AppTools/ToolSolderPaste.py:278
+msgid "Feedrate Z Dispense"
+msgstr "Feedrate Z Dispense"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:177
+msgid ""
+"Feedrate (speed) while moving up vertically\n"
+"to Dispense position (on Z plane)."
+msgstr ""
+"Feedrate (speed) while moving up vertically\n"
+"to Dispense position (on Z plane)."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:188
+#: AppTools/ToolSolderPaste.py:290
+msgid "Spindle Speed FWD"
+msgstr "Spindle Speed FWD"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:190
+#: AppTools/ToolSolderPaste.py:292
+msgid ""
+"The dispenser speed while pushing solder paste\n"
+"through the dispenser nozzle."
+msgstr ""
+"The dispenser speed while pushing solder paste\n"
+"through the dispenser nozzle."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:202
+#: AppTools/ToolSolderPaste.py:303
+msgid "Dwell FWD"
+msgstr "Dwell FWD"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:204
+#: AppTools/ToolSolderPaste.py:305
+msgid "Pause after solder dispensing."
+msgstr "Pause after solder dispensing."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:214
+#: AppTools/ToolSolderPaste.py:314
+msgid "Spindle Speed REV"
+msgstr "Spindle Speed REV"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:216
+#: AppTools/ToolSolderPaste.py:316
+msgid ""
+"The dispenser speed while retracting solder paste\n"
+"through the dispenser nozzle."
+msgstr ""
+"The dispenser speed while retracting solder paste\n"
+"through the dispenser nozzle."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:228
+#: AppTools/ToolSolderPaste.py:327
+msgid "Dwell REV"
+msgstr "Dwell REV"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:230
+#: AppTools/ToolSolderPaste.py:329
+msgid ""
+"Pause after solder paste dispenser retracted,\n"
+"to allow pressure equilibrium."
+msgstr ""
+"Pause after solder paste dispenser retracted,\n"
+"to allow pressure equilibrium."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:239
+#: AppTools/ToolSolderPaste.py:337
+msgid "Files that control the GCode generation."
+msgstr "Files that control the GCode generation."
+
+#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:27
+msgid "Substractor Tool Options"
+msgstr "Substractor Tool Options"
+
+#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:33
+msgid ""
+"A tool to substract one Gerber or Geometry object\n"
+"from another of the same type."
+msgstr ""
+"A tool to substract one Gerber or Geometry object\n"
+"from another of the same type."
+
+#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:38 AppTools/ToolSub.py:155
+msgid "Close paths"
+msgstr "Close paths"
+
+#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:39
+msgid ""
+"Checking this will close the paths cut by the Geometry substractor object."
+msgstr ""
+"Checking this will close the paths cut by the Geometry substractor object."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:27
+msgid "Transform Tool Options"
+msgstr "Transform Tool Options"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:33
+msgid ""
+"Various transformations that can be applied\n"
+"on a FlatCAM object."
+msgstr ""
+"Various transformations that can be applied\n"
+"on a FlatCAM object."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:64
+msgid "Skew"
+msgstr "Skew"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:105
+#: AppTools/ToolTransform.py:150
+msgid "Factor for scaling on X axis."
+msgstr "Factor for scaling on X axis."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:118
+#: AppTools/ToolTransform.py:170
+msgid "Factor for scaling on Y axis."
+msgstr "Factor for scaling on Y axis."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:126
+#: AppTools/ToolTransform.py:191
+msgid ""
+"Scale the selected object(s)\n"
+"using the Scale_X factor for both axis."
+msgstr ""
+"Scale the selected object(s)\n"
+"using the Scale_X factor for both axis."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:134
+#: AppTools/ToolTransform.py:198
+msgid ""
+"Scale the selected object(s)\n"
+"using the origin reference when checked,\n"
+"and the center of the biggest bounding box\n"
+"of the selected objects when unchecked."
+msgstr ""
+"Scale the selected object(s)\n"
+"using the origin reference when checked,\n"
+"and the center of the biggest bounding box\n"
+"of the selected objects when unchecked."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:150
+#: AppTools/ToolTransform.py:217
+msgid "X val"
+msgstr "X val"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:152
+#: AppTools/ToolTransform.py:219
+msgid "Distance to offset on X axis. In current units."
+msgstr "Distance to offset on X axis. In current units."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:163
+#: AppTools/ToolTransform.py:237
+msgid "Y val"
+msgstr "Y val"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:165
+#: AppTools/ToolTransform.py:239
+msgid "Distance to offset on Y axis. In current units."
+msgstr "Distance to offset on Y axis. In current units."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:171
+#: AppTools/ToolDblSided.py:67 AppTools/ToolDblSided.py:95
+#: AppTools/ToolDblSided.py:125
+msgid "Mirror"
+msgstr "Mirror"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:175
+#: AppTools/ToolTransform.py:283
+msgid "Mirror Reference"
+msgstr "Mirror Reference"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:177
+#: AppTools/ToolTransform.py:285
+msgid ""
+"Flip the selected object(s)\n"
+"around the point in Point Entry Field.\n"
+"\n"
+"The point coordinates can be captured by\n"
+"left click on canvas together with pressing\n"
+"SHIFT key. \n"
+"Then click Add button to insert coordinates.\n"
+"Or enter the coords in format (x, y) in the\n"
+"Point Entry field and click Flip on X(Y)"
+msgstr ""
+"Flip the selected object(s)\n"
+"around the point in Point Entry Field.\n"
+"\n"
+"The point coordinates can be captured by\n"
+"left click on canvas together with pressing\n"
+"SHIFT key. \n"
+"Then click Add button to insert coordinates.\n"
+"Or enter the coords in format (x, y) in the\n"
+"Point Entry field and click Flip on X(Y)"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:188
+msgid "Mirror Reference point"
+msgstr "Mirror Reference point"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:190
+msgid ""
+"Coordinates in format (x, y) used as reference for mirroring.\n"
+"The 'x' in (x, y) will be used when using Flip on X and\n"
+"the 'y' in (x, y) will be used when using Flip on Y and"
+msgstr ""
+"Coordinates in format (x, y) used as reference for mirroring.\n"
+"The 'x' in (x, y) will be used when using Flip on X and\n"
+"the 'y' in (x, y) will be used when using Flip on Y and"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:203
+#: AppTools/ToolDistance.py:505 AppTools/ToolDistanceMin.py:286
+#: AppTools/ToolTransform.py:332
+msgid "Distance"
+msgstr "Distance"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:205
+#: AppTools/ToolTransform.py:334
+msgid ""
+"A positive value will create the effect of dilation,\n"
+"while a negative value will create the effect of erosion.\n"
+"Each geometry element of the object will be increased\n"
+"or decreased with the 'distance'."
+msgstr ""
+"A positive value will create the effect of dilation,\n"
+"while a negative value will create the effect of erosion.\n"
+"Each geometry element of the object will be increased\n"
+"or decreased with the 'distance'."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:222
+#: AppTools/ToolTransform.py:359
+msgid ""
+"A positive value will create the effect of dilation,\n"
+"while a negative value will create the effect of erosion.\n"
+"Each geometry element of the object will be increased\n"
+"or decreased to fit the 'Value'. Value is a percentage\n"
+"of the initial dimension."
+msgstr ""
+"A positive value will create the effect of dilation,\n"
+"while a negative value will create the effect of erosion.\n"
+"Each geometry element of the object will be increased\n"
+"or decreased to fit the 'Value'. Value is a percentage\n"
+"of the initial dimension."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:241
+#: AppTools/ToolTransform.py:385
+msgid ""
+"If checked then the buffer will surround the buffered shape,\n"
+"every corner will be rounded.\n"
+"If not checked then the buffer will follow the exact geometry\n"
+"of the buffered shape."
+msgstr ""
+"If checked then the buffer will surround the buffered shape,\n"
+"every corner will be rounded.\n"
+"If not checked then the buffer will follow the exact geometry\n"
+"of the buffered shape."
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:27
+msgid "Autocompleter Keywords"
+msgstr "Autocompleter Keywords"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:30
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:40
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:30
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:30
+msgid "Restore"
+msgstr "Restore"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:31
+msgid "Restore the autocompleter keywords list to the default state."
+msgstr "Restore the autocompleter keywords list to the default state."
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:33
+msgid "Delete all autocompleter keywords from the list."
+msgstr "Delete all autocompleter keywords from the list."
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:41
+msgid "Keywords list"
+msgstr "Keywords list"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:43
+msgid ""
+"List of keywords used by\n"
+"the autocompleter in FlatCAM.\n"
+"The autocompleter is installed\n"
+"in the Code Editor and for the Tcl Shell."
+msgstr ""
+"List of keywords used by\n"
+"the autocompleter in FlatCAM.\n"
+"The autocompleter is installed\n"
+"in the Code Editor and for the Tcl Shell."
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:64
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:73
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:63
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:62
+msgid "Extension"
+msgstr "Extension"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:65
+msgid "A keyword to be added or deleted to the list."
+msgstr "A keyword to be added or deleted to the list."
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:73
+msgid "Add keyword"
+msgstr "Add keyword"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:74
+msgid "Add a keyword to the list"
+msgstr "Add a keyword to the list"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:75
+msgid "Delete keyword"
+msgstr "Delete keyword"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:76
+msgid "Delete a keyword from the list"
+msgstr "Delete a keyword from the list"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:27
+msgid "Excellon File associations"
+msgstr "Excellon File associations"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:41
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:31
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:31
+msgid "Restore the extension list to the default state."
+msgstr "Restore the extension list to the default state."
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:43
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:33
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:33
+msgid "Delete all extensions from the list."
+msgstr "Delete all extensions from the list."
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:51
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:41
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:41
+msgid "Extensions list"
+msgstr "Extensions list"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:53
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:43
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:43
+msgid ""
+"List of file extensions to be\n"
+"associated with FlatCAM."
+msgstr ""
+"List of file extensions to be\n"
+"associated with FlatCAM."
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:74
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:64
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:63
+msgid "A file extension to be added or deleted to the list."
+msgstr "A file extension to be added or deleted to the list."
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:82
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:72
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:71
+msgid "Add Extension"
+msgstr "Add Extension"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:83
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:73
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:72
+msgid "Add a file extension to the list"
+msgstr "Add a file extension to the list"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:84
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:74
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:73
+msgid "Delete Extension"
+msgstr "Delete Extension"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:85
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:75
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:74
+msgid "Delete a file extension from the list"
+msgstr "Delete a file extension from the list"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:92
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:82
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:81
+msgid "Apply Association"
+msgstr "Apply Association"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:93
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:83
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:82
+msgid ""
+"Apply the file associations between\n"
+"FlatCAM and the files with above extensions.\n"
+"They will be active after next logon.\n"
+"This work only in Windows."
+msgstr ""
+"Apply the file associations between\n"
+"FlatCAM and the files with above extensions.\n"
+"They will be active after next logon.\n"
+"This work only in Windows."
+
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:27
+msgid "GCode File associations"
+msgstr "GCode File associations"
+
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:27
+msgid "Gerber File associations"
+msgstr "Gerber File associations"
+
+#: AppObjects/AppObject.py:134
#, python-brace-format
msgid ""
"Object ({kind}) failed because: {error} \n"
@@ -238,23 +11773,23 @@ msgstr ""
"Object ({kind}) failed because: {error} \n"
"\n"
-#: FlatCAMApp.py:2822
+#: AppObjects/AppObject.py:149
msgid "Converting units to "
msgstr "Converting units to "
-#: FlatCAMApp.py:2931
+#: AppObjects/AppObject.py:254
msgid "CREATE A NEW FLATCAM TCL SCRIPT"
msgstr "CREATE A NEW FLATCAM TCL SCRIPT"
-#: FlatCAMApp.py:2932
+#: AppObjects/AppObject.py:255
msgid "TCL Tutorial is here"
msgstr "TCL Tutorial is here"
-#: FlatCAMApp.py:2934
+#: AppObjects/AppObject.py:257
msgid "FlatCAM commands list"
msgstr "FlatCAM commands list"
-#: FlatCAMApp.py:2935
+#: AppObjects/AppObject.py:258
msgid ""
"Type >help< followed by Run Code for a list of FlatCAM Tcl Commands "
"(displayed in Tcl Shell)."
@@ -262,2439 +11797,6176 @@ msgstr ""
"Type >help< followed by Run Code for a list of FlatCAM Tcl Commands "
"(displayed in Tcl Shell)."
-#: FlatCAMApp.py:2982 FlatCAMApp.py:2988 FlatCAMApp.py:2994 FlatCAMApp.py:3000
-#: FlatCAMApp.py:3006 FlatCAMApp.py:3012
+#: AppObjects/AppObject.py:304 AppObjects/AppObject.py:310
+#: AppObjects/AppObject.py:316 AppObjects/AppObject.py:322
+#: AppObjects/AppObject.py:328 AppObjects/AppObject.py:334
msgid "created/selected"
msgstr "created/selected"
-#: FlatCAMApp.py:3027 FlatCAMApp.py:5189 flatcamObjects/FlatCAMObj.py:248
-#: flatcamObjects/FlatCAMObj.py:279 flatcamObjects/FlatCAMObj.py:295
-#: flatcamObjects/FlatCAMObj.py:375 flatcamTools/ToolCopperThieving.py:1481
-#: flatcamTools/ToolFiducials.py:809 flatcamTools/ToolMove.py:229
-#: flatcamTools/ToolQRCode.py:728
+#: AppObjects/AppObject.py:349 AppObjects/FlatCAMObj.py:246
+#: AppObjects/FlatCAMObj.py:277 AppObjects/FlatCAMObj.py:293
+#: AppObjects/FlatCAMObj.py:373 AppTools/ToolCopperThieving.py:1487
+#: AppTools/ToolCorners.py:394 AppTools/ToolFiducials.py:810
+#: AppTools/ToolMove.py:229 AppTools/ToolQRCode.py:728 App_Main.py:4369
msgid "Plotting"
msgstr "Plotting"
-#: FlatCAMApp.py:3090 flatcamGUI/FlatCAMGUI.py:545
-msgid "About FlatCAM"
-msgstr "About FlatCAM"
-
-#: FlatCAMApp.py:3116
-msgid "2D Computer-Aided Printed Circuit Board Manufacturing"
-msgstr "2D Computer-Aided Printed Circuit Board Manufacturing"
-
-#: FlatCAMApp.py:3117
-msgid "Development"
-msgstr "Development"
-
-#: FlatCAMApp.py:3118
-msgid "DOWNLOAD"
-msgstr "DOWNLOAD"
-
-#: FlatCAMApp.py:3119
-msgid "Issue tracker"
-msgstr "Issue tracker"
-
-#: FlatCAMApp.py:3123 FlatCAMApp.py:3484 flatcamGUI/GUIElements.py:2583
-msgid "Close"
-msgstr "Close"
-
-#: FlatCAMApp.py:3138
-msgid "Licensed under the MIT license"
-msgstr "Licensed under the MIT license"
-
-#: FlatCAMApp.py:3147
-msgid ""
-"Permission is hereby granted, free of charge, to any person obtaining a "
-"copy\n"
-"of this software and associated documentation files (the \"Software\"), to "
-"deal\n"
-"in the Software without restriction, including without limitation the "
-"rights\n"
-"to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n"
-"copies of the Software, and to permit persons to whom the Software is\n"
-"furnished to do so, subject to the following conditions:\n"
-"\n"
-"The above copyright notice and this permission notice shall be included in\n"
-"all copies or substantial portions of the Software.\n"
-"\n"
-"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS "
-"OR\n"
-"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n"
-"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n"
-"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n"
-"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING "
-"FROM,\n"
-"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n"
-"THE SOFTWARE."
-msgstr ""
-"Permission is hereby granted, free of charge, to any person obtaining a "
-"copy\n"
-"of this software and associated documentation files (the \"Software\"), to "
-"deal\n"
-"in the Software without restriction, including without limitation the "
-"rights\n"
-"to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n"
-"copies of the Software, and to permit persons to whom the Software is\n"
-"furnished to do so, subject to the following conditions:\n"
-"\n"
-"The above copyright notice and this permission notice shall be included in\n"
-"all copies or substantial portions of the Software.\n"
-"\n"
-"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS "
-"OR\n"
-"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n"
-"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n"
-"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n"
-"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING "
-"FROM,\n"
-"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n"
-"THE SOFTWARE."
-
-#: FlatCAMApp.py:3169
-msgid ""
-"Some of the icons used are from the following sources:
Icons by oNline Web Fonts"
-msgstr ""
-"Some of the icons used are from the following sources:
Icons by oNline Web Fonts"
-
-#: FlatCAMApp.py:3202
-msgid "Splash"
-msgstr "Splash"
-
-#: FlatCAMApp.py:3208
-msgid "Programmers"
-msgstr "Programmers"
-
-#: FlatCAMApp.py:3214
-msgid "Translators"
-msgstr "Translators"
-
-#: FlatCAMApp.py:3220
-msgid "License"
-msgstr "License"
-
-#: FlatCAMApp.py:3226
-msgid "Attributions"
-msgstr "Attributions"
-
-#: FlatCAMApp.py:3249
-msgid "Programmer"
-msgstr "Programmer"
-
-#: FlatCAMApp.py:3250
-msgid "Status"
-msgstr "Status"
-
-#: FlatCAMApp.py:3251 FlatCAMApp.py:3331
-msgid "E-mail"
-msgstr "E-mail"
-
-#: FlatCAMApp.py:3259
-msgid "BETA Maintainer >= 2019"
-msgstr "BETA Maintainer >= 2019"
-
-#: FlatCAMApp.py:3328
-msgid "Language"
-msgstr "Language"
-
-#: FlatCAMApp.py:3329
-msgid "Translator"
-msgstr "Translator"
-
-#: FlatCAMApp.py:3330
-msgid "Corrections"
-msgstr "Corrections"
-
-#: FlatCAMApp.py:3455 FlatCAMApp.py:3464 flatcamGUI/FlatCAMGUI.py:527
-msgid "Bookmarks Manager"
-msgstr "Bookmarks Manager"
-
-#: FlatCAMApp.py:3475
-msgid ""
-"This entry will resolve to another website if:\n"
-"\n"
-"1. FlatCAM.org website is down\n"
-"2. Someone forked FlatCAM project and wants to point\n"
-"to his own website\n"
-"\n"
-"If you can't get any informations about FlatCAM beta\n"
-"use the YouTube channel link from the Help menu."
-msgstr ""
-"This entry will resolve to another website if:\n"
-"\n"
-"1. FlatCAM.org website is down\n"
-"2. Someone forked FlatCAM project and wants to point\n"
-"to his own website\n"
-"\n"
-"If you can't get any informations about FlatCAM beta\n"
-"use the YouTube channel link from the Help menu."
-
-#: FlatCAMApp.py:3482
-msgid "Alternative website"
-msgstr "Alternative website"
-
-#: FlatCAMApp.py:3508 flatcamGUI/FlatCAMGUI.py:4267
-msgid "Application is saving the project. Please wait ..."
-msgstr "Application is saving the project. Please wait ..."
-
-#: FlatCAMApp.py:3513 FlatCAMTranslation.py:202
-msgid ""
-"There are files/objects modified in FlatCAM. \n"
-"Do you want to Save the project?"
-msgstr ""
-"There are files/objects modified in FlatCAM. \n"
-"Do you want to Save the project?"
-
-#: FlatCAMApp.py:3516 FlatCAMApp.py:7343 FlatCAMTranslation.py:205
-msgid "Save changes"
-msgstr "Save changes"
-
-#: FlatCAMApp.py:3778
-msgid "Selected Excellon file extensions registered with FlatCAM."
-msgstr "Selected Excellon file extensions registered with FlatCAM."
-
-#: FlatCAMApp.py:3800
-msgid "Selected GCode file extensions registered with FlatCAM."
-msgstr "Selected GCode file extensions registered with FlatCAM."
-
-#: FlatCAMApp.py:3822
-msgid "Selected Gerber file extensions registered with FlatCAM."
-msgstr "Selected Gerber file extensions registered with FlatCAM."
-
-#: FlatCAMApp.py:4010 FlatCAMApp.py:4069 FlatCAMApp.py:4097
-msgid "At least two objects are required for join. Objects currently selected"
-msgstr "At least two objects are required for join. Objects currently selected"
-
-#: FlatCAMApp.py:4019
-msgid ""
-"Failed join. The Geometry objects are of different types.\n"
-"At least one is MultiGeo type and the other is SingleGeo type. A possibility "
-"is to convert from one to another and retry joining \n"
-"but in the case of converting from MultiGeo to SingleGeo, informations may "
-"be lost and the result may not be what was expected. \n"
-"Check the generated GCODE."
-msgstr ""
-"Failed join. The Geometry objects are of different types.\n"
-"At least one is MultiGeo type and the other is SingleGeo type. A possibility "
-"is to convert from one to another and retry joining \n"
-"but in the case of converting from MultiGeo to SingleGeo, informations may "
-"be lost and the result may not be what was expected. \n"
-"Check the generated GCODE."
-
-#: FlatCAMApp.py:4031 FlatCAMApp.py:4041
-msgid "Geometry merging finished"
-msgstr "Geometry merging finished"
-
-#: FlatCAMApp.py:4064
-msgid "Failed. Excellon joining works only on Excellon objects."
-msgstr "Failed. Excellon joining works only on Excellon objects."
-
-#: FlatCAMApp.py:4074
-msgid "Excellon merging finished"
-msgstr "Excellon merging finished"
-
-#: FlatCAMApp.py:4092
-msgid "Failed. Gerber joining works only on Gerber objects."
-msgstr "Failed. Gerber joining works only on Gerber objects."
-
-#: FlatCAMApp.py:4102
-msgid "Gerber merging finished"
-msgstr "Gerber merging finished"
-
-#: FlatCAMApp.py:4122 FlatCAMApp.py:4159
-msgid "Failed. Select a Geometry Object and try again."
-msgstr "Failed. Select a Geometry Object and try again."
-
-#: FlatCAMApp.py:4126 FlatCAMApp.py:4164
-msgid "Expected a GeometryObject, got"
-msgstr "Expected a GeometryObject, got"
-
-#: FlatCAMApp.py:4141
-msgid "A Geometry object was converted to MultiGeo type."
-msgstr "A Geometry object was converted to MultiGeo type."
-
-#: FlatCAMApp.py:4179
-msgid "A Geometry object was converted to SingleGeo type."
-msgstr "A Geometry object was converted to SingleGeo type."
-
-#: FlatCAMApp.py:4472
-msgid "Toggle Units"
-msgstr "Toggle Units"
-
-#: FlatCAMApp.py:4474
-msgid ""
-"Changing the units of the project\n"
-"will scale all objects.\n"
-"\n"
-"Do you want to continue?"
-msgstr ""
-"Changing the units of the project\n"
-"will scale all objects.\n"
-"\n"
-"Do you want to continue?"
-
-#: FlatCAMApp.py:4477 FlatCAMApp.py:5025 FlatCAMApp.py:5102 FlatCAMApp.py:7728
-#: FlatCAMApp.py:7742 FlatCAMApp.py:8075 FlatCAMApp.py:8085
-msgid "Ok"
-msgstr "Ok"
-
-#: FlatCAMApp.py:4526
-msgid "Converted units to"
-msgstr "Converted units to"
-
-#: FlatCAMApp.py:4928
-msgid "Detachable Tabs"
-msgstr "Detachable Tabs"
-
-#: FlatCAMApp.py:5014 flatcamTools/ToolNCC.py:932 flatcamTools/ToolNCC.py:1431
-#: flatcamTools/ToolPaint.py:858 flatcamTools/ToolSolderPaste.py:568
-#: flatcamTools/ToolSolderPaste.py:893
-msgid "Please enter a tool diameter with non-zero value, in Float format."
-msgstr "Please enter a tool diameter with non-zero value, in Float format."
-
-#: FlatCAMApp.py:5018 flatcamTools/ToolNCC.py:936 flatcamTools/ToolPaint.py:862
-#: flatcamTools/ToolSolderPaste.py:572
-msgid "Adding Tool cancelled"
-msgstr "Adding Tool cancelled"
-
-#: FlatCAMApp.py:5021
-msgid ""
-"Adding Tool works only when Advanced is checked.\n"
-"Go to Preferences -> General - Show Advanced Options."
-msgstr ""
-"Adding Tool works only when Advanced is checked.\n"
-"Go to Preferences -> General - Show Advanced Options."
-
-#: FlatCAMApp.py:5097
-msgid "Delete objects"
-msgstr "Delete objects"
-
-#: FlatCAMApp.py:5100
-msgid ""
-"Are you sure you want to permanently delete\n"
-"the selected objects?"
-msgstr ""
-"Are you sure you want to permanently delete\n"
-"the selected objects?"
-
-#: FlatCAMApp.py:5138
-msgid "Object(s) deleted"
-msgstr "Object(s) deleted"
-
-#: FlatCAMApp.py:5142 FlatCAMApp.py:5297 flatcamTools/ToolDblSided.py:818
-msgid "Failed. No object(s) selected..."
-msgstr "Failed. No object(s) selected..."
-
-#: FlatCAMApp.py:5144
-msgid "Save the work in Editor and try again ..."
-msgstr "Save the work in Editor and try again ..."
-
-#: FlatCAMApp.py:5173
-msgid "Object deleted"
-msgstr "Object deleted"
-
-#: FlatCAMApp.py:5200
-msgid "Click to set the origin ..."
-msgstr "Click to set the origin ..."
-
-#: FlatCAMApp.py:5222
-msgid "Setting Origin..."
-msgstr "Setting Origin..."
-
-#: FlatCAMApp.py:5235 FlatCAMApp.py:5337
-msgid "Origin set"
-msgstr "Origin set"
-
-#: FlatCAMApp.py:5252
-msgid "Origin coordinates specified but incomplete."
-msgstr "Origin coordinates specified but incomplete."
-
-#: FlatCAMApp.py:5293
-msgid "Moving to Origin..."
-msgstr "Moving to Origin..."
-
-#: FlatCAMApp.py:5374
-msgid "Jump to ..."
-msgstr "Jump to ..."
-
-#: FlatCAMApp.py:5375
-msgid "Enter the coordinates in format X,Y:"
-msgstr "Enter the coordinates in format X,Y:"
-
-#: FlatCAMApp.py:5385
-msgid "Wrong coordinates. Enter coordinates in format: X,Y"
-msgstr "Wrong coordinates. Enter coordinates in format: X,Y"
-
-#: FlatCAMApp.py:5463 FlatCAMApp.py:5612
-#: flatcamEditors/FlatCAMExcEditor.py:3624
-#: flatcamEditors/FlatCAMExcEditor.py:3632
-#: flatcamEditors/FlatCAMGeoEditor.py:4349
-#: flatcamEditors/FlatCAMGeoEditor.py:4363
-#: flatcamEditors/FlatCAMGrbEditor.py:1087
-#: flatcamEditors/FlatCAMGrbEditor.py:1204
-#: flatcamEditors/FlatCAMGrbEditor.py:1490
-#: flatcamEditors/FlatCAMGrbEditor.py:1759
-#: flatcamEditors/FlatCAMGrbEditor.py:4622
-#: flatcamEditors/FlatCAMGrbEditor.py:4637 flatcamGUI/FlatCAMGUI.py:3424
-#: flatcamGUI/FlatCAMGUI.py:3436 flatcamTools/ToolAlignObjects.py:393
-#: flatcamTools/ToolAlignObjects.py:415
-msgid "Done."
-msgstr "Done."
-
-#: FlatCAMApp.py:5478 FlatCAMApp.py:7724 FlatCAMApp.py:7819 FlatCAMApp.py:7860
-#: FlatCAMApp.py:7901 FlatCAMApp.py:7942 FlatCAMApp.py:7983 FlatCAMApp.py:8027
-#: FlatCAMApp.py:8071 FlatCAMApp.py:8593 FlatCAMApp.py:8597
-#: flatcamTools/ToolProperties.py:116
-msgid "No object selected."
-msgstr "No object selected."
-
-#: FlatCAMApp.py:5497
-msgid "Bottom-Left"
-msgstr "Bottom-Left"
-
-#: FlatCAMApp.py:5498 flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:131
-#: flatcamTools/ToolCalibration.py:159
-msgid "Top-Left"
-msgstr "Top-Left"
-
-#: FlatCAMApp.py:5499 flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:132
-#: flatcamTools/ToolCalibration.py:160
-msgid "Bottom-Right"
-msgstr "Bottom-Right"
-
-#: FlatCAMApp.py:5500
-msgid "Top-Right"
-msgstr "Top-Right"
-
-#: FlatCAMApp.py:5501 flatcamGUI/ObjectUI.py:2706
-msgid "Center"
-msgstr "Center"
-
-#: FlatCAMApp.py:5521
-msgid "Locate ..."
-msgstr "Locate ..."
-
-#: FlatCAMApp.py:5779 FlatCAMApp.py:5856
-msgid "No object is selected. Select an object and try again."
-msgstr "No object is selected. Select an object and try again."
-
-#: FlatCAMApp.py:5882
-msgid ""
-"Aborting. The current task will be gracefully closed as soon as possible..."
-msgstr ""
-"Aborting. The current task will be gracefully closed as soon as possible..."
-
-#: FlatCAMApp.py:5888
-msgid "The current task was gracefully closed on user request..."
-msgstr "The current task was gracefully closed on user request..."
-
-#: FlatCAMApp.py:5916 flatcamGUI/preferences/PreferencesUIManager.py:905
-#: flatcamGUI/preferences/PreferencesUIManager.py:949
-#: flatcamGUI/preferences/PreferencesUIManager.py:970
-#: flatcamGUI/preferences/PreferencesUIManager.py:1075
-msgid "Preferences"
-msgstr "Preferences"
-
-#: FlatCAMApp.py:5981 FlatCAMApp.py:6009 FlatCAMApp.py:6036 FlatCAMApp.py:6056
-#: FlatCAMDB.py:738 FlatCAMDB.py:913 FlatCAMDB.py:2200 FlatCAMDB.py:2418
-#: flatcamObjects/FlatCAMGeometry.py:890 flatcamTools/ToolNCC.py:3963
-#: flatcamTools/ToolNCC.py:4047 flatcamTools/ToolPaint.py:3553
-#: flatcamTools/ToolPaint.py:3638
-msgid "Tools Database"
-msgstr "Tools Database"
-
-#: FlatCAMApp.py:6033
-msgid "Tools in Tools Database edited but not saved."
-msgstr "Tools in Tools Database edited but not saved."
-
-#: FlatCAMApp.py:6060 flatcamTools/ToolNCC.py:3970
-#: flatcamTools/ToolPaint.py:3560
-msgid "Tool from DB added in Tool Table."
-msgstr "Tool from DB added in Tool Table."
-
-#: FlatCAMApp.py:6062
-msgid "Adding tool from DB is not allowed for this object."
-msgstr "Adding tool from DB is not allowed for this object."
-
-#: FlatCAMApp.py:6080
-msgid ""
-"One or more Tools are edited.\n"
-"Do you want to update the Tools Database?"
-msgstr ""
-"One or more Tools are edited.\n"
-"Do you want to update the Tools Database?"
-
-#: FlatCAMApp.py:6082
-msgid "Save Tools Database"
-msgstr "Save Tools Database"
-
-#: FlatCAMApp.py:6135
-msgid "No object selected to Flip on Y axis."
-msgstr "No object selected to Flip on Y axis."
-
-#: FlatCAMApp.py:6161
-msgid "Flip on Y axis done."
-msgstr "Flip on Y axis done."
-
-#: FlatCAMApp.py:6163 FlatCAMApp.py:6211
-#: flatcamEditors/FlatCAMGrbEditor.py:6059
-msgid "Flip action was not executed."
-msgstr "Flip action was not executed."
-
-#: FlatCAMApp.py:6183
-msgid "No object selected to Flip on X axis."
-msgstr "No object selected to Flip on X axis."
-
-#: FlatCAMApp.py:6209
-msgid "Flip on X axis done."
-msgstr "Flip on X axis done."
-
-#: FlatCAMApp.py:6231
-msgid "No object selected to Rotate."
-msgstr "No object selected to Rotate."
-
-#: FlatCAMApp.py:6234 FlatCAMApp.py:6287 FlatCAMApp.py:6326
-msgid "Transform"
-msgstr "Transform"
-
-#: FlatCAMApp.py:6234 FlatCAMApp.py:6287 FlatCAMApp.py:6326
-msgid "Enter the Angle value:"
-msgstr "Enter the Angle value:"
-
-#: FlatCAMApp.py:6265
-msgid "Rotation done."
-msgstr "Rotation done."
-
-#: FlatCAMApp.py:6267
-msgid "Rotation movement was not executed."
-msgstr "Rotation movement was not executed."
-
-#: FlatCAMApp.py:6285
-msgid "No object selected to Skew/Shear on X axis."
-msgstr "No object selected to Skew/Shear on X axis."
-
-#: FlatCAMApp.py:6307
-msgid "Skew on X axis done."
-msgstr "Skew on X axis done."
-
-#: FlatCAMApp.py:6324
-msgid "No object selected to Skew/Shear on Y axis."
-msgstr "No object selected to Skew/Shear on Y axis."
-
-#: FlatCAMApp.py:6346
-msgid "Skew on Y axis done."
-msgstr "Skew on Y axis done."
-
-#: FlatCAMApp.py:6497 FlatCAMApp.py:6544 flatcamGUI/FlatCAMGUI.py:503
-#: flatcamGUI/FlatCAMGUI.py:1728
-msgid "Select All"
-msgstr "Select All"
-
-#: FlatCAMApp.py:6501 FlatCAMApp.py:6548 flatcamGUI/FlatCAMGUI.py:505
-msgid "Deselect All"
-msgstr "Deselect All"
-
-#: FlatCAMApp.py:6564
-msgid "All objects are selected."
-msgstr "All objects are selected."
-
-#: FlatCAMApp.py:6574
-msgid "Objects selection is cleared."
-msgstr "Objects selection is cleared."
-
-#: FlatCAMApp.py:6594 flatcamGUI/FlatCAMGUI.py:1721
-msgid "Grid On/Off"
-msgstr "Grid On/Off"
-
-#: FlatCAMApp.py:6606 flatcamEditors/FlatCAMGeoEditor.py:939
-#: flatcamEditors/FlatCAMGrbEditor.py:2583
-#: flatcamEditors/FlatCAMGrbEditor.py:5641 flatcamGUI/ObjectUI.py:1595
-#: flatcamTools/ToolDblSided.py:192 flatcamTools/ToolDblSided.py:425
-#: flatcamTools/ToolNCC.py:294 flatcamTools/ToolNCC.py:631
-#: flatcamTools/ToolPaint.py:277 flatcamTools/ToolPaint.py:676
-#: flatcamTools/ToolSolderPaste.py:122 flatcamTools/ToolSolderPaste.py:597
-#: flatcamTools/ToolTransform.py:478
-msgid "Add"
-msgstr "Add"
-
-#: FlatCAMApp.py:6608 flatcamEditors/FlatCAMGrbEditor.py:2588
-#: flatcamEditors/FlatCAMGrbEditor.py:2736 flatcamGUI/FlatCAMGUI.py:751
-#: flatcamGUI/FlatCAMGUI.py:1074 flatcamGUI/FlatCAMGUI.py:2141
-#: flatcamGUI/FlatCAMGUI.py:2284 flatcamGUI/FlatCAMGUI.py:2777
-#: flatcamGUI/ObjectUI.py:1623 flatcamObjects/FlatCAMGeometry.py:505
-#: flatcamTools/ToolNCC.py:316 flatcamTools/ToolNCC.py:637
-#: flatcamTools/ToolPaint.py:299 flatcamTools/ToolPaint.py:682
-#: flatcamTools/ToolSolderPaste.py:128 flatcamTools/ToolSolderPaste.py:600
-msgid "Delete"
-msgstr "Delete"
-
-#: FlatCAMApp.py:6624
-msgid "New Grid ..."
-msgstr "New Grid ..."
-
-#: FlatCAMApp.py:6625
-msgid "Enter a Grid Value:"
-msgstr "Enter a Grid Value:"
-
-#: FlatCAMApp.py:6633 FlatCAMApp.py:6660
-msgid "Please enter a grid value with non-zero value, in Float format."
-msgstr "Please enter a grid value with non-zero value, in Float format."
-
-#: FlatCAMApp.py:6639
-msgid "New Grid added"
-msgstr "New Grid added"
-
-#: FlatCAMApp.py:6642
-msgid "Grid already exists"
-msgstr "Grid already exists"
-
-#: FlatCAMApp.py:6645
-msgid "Adding New Grid cancelled"
-msgstr "Adding New Grid cancelled"
-
-#: FlatCAMApp.py:6667
-msgid " Grid Value does not exist"
-msgstr " Grid Value does not exist"
-
-#: FlatCAMApp.py:6670
-msgid "Grid Value deleted"
-msgstr "Grid Value deleted"
-
-#: FlatCAMApp.py:6673
-msgid "Delete Grid value cancelled"
-msgstr "Delete Grid value cancelled"
-
-#: FlatCAMApp.py:6679
-msgid "Key Shortcut List"
-msgstr "Key Shortcut List"
-
-#: FlatCAMApp.py:6713
-msgid " No object selected to copy it's name"
-msgstr " No object selected to copy it's name"
-
-#: FlatCAMApp.py:6717
-msgid "Name copied on clipboard ..."
-msgstr "Name copied on clipboard ..."
-
-#: FlatCAMApp.py:6930 flatcamEditors/FlatCAMGrbEditor.py:4554
-msgid "Coordinates copied to clipboard."
-msgstr "Coordinates copied to clipboard."
-
-#: FlatCAMApp.py:7167 FlatCAMApp.py:7173 FlatCAMApp.py:7179 FlatCAMApp.py:7185
-#: flatcamObjects/ObjectCollection.py:922
-#: flatcamObjects/ObjectCollection.py:928
-#: flatcamObjects/ObjectCollection.py:934
-#: flatcamObjects/ObjectCollection.py:940
-#: flatcamObjects/ObjectCollection.py:946
-#: flatcamObjects/ObjectCollection.py:952
-msgid "selected"
-msgstr "selected"
-
-#: FlatCAMApp.py:7340
-msgid ""
-"There are files/objects opened in FlatCAM.\n"
-"Creating a New project will delete them.\n"
-"Do you want to Save the project?"
-msgstr ""
-"There are files/objects opened in FlatCAM.\n"
-"Creating a New project will delete them.\n"
-"Do you want to Save the project?"
-
-#: FlatCAMApp.py:7361
-msgid "New Project created"
-msgstr "New Project created"
-
-#: FlatCAMApp.py:7519 FlatCAMApp.py:7523 flatcamGUI/FlatCAMGUI.py:836
-#: flatcamGUI/FlatCAMGUI.py:2544
-msgid "Open Gerber"
-msgstr "Open Gerber"
-
-#: FlatCAMApp.py:7528 FlatCAMApp.py:7565 FlatCAMApp.py:7607 FlatCAMApp.py:7677
-#: FlatCAMApp.py:8462 FlatCAMApp.py:9675 FlatCAMApp.py:9737
-msgid ""
-"Canvas initialization started.\n"
-"Canvas initialization finished in"
-msgstr ""
-"Canvas initialization started.\n"
-"Canvas initialization finished in"
-
-#: FlatCAMApp.py:7530
-msgid "Opening Gerber file."
-msgstr "Opening Gerber file."
-
-#: FlatCAMApp.py:7557 FlatCAMApp.py:7561 flatcamGUI/FlatCAMGUI.py:838
-#: flatcamGUI/FlatCAMGUI.py:2546
-msgid "Open Excellon"
-msgstr "Open Excellon"
-
-#: FlatCAMApp.py:7567
-msgid "Opening Excellon file."
-msgstr "Opening Excellon file."
-
-#: FlatCAMApp.py:7598 FlatCAMApp.py:7602
-msgid "Open G-Code"
-msgstr "Open G-Code"
-
-#: FlatCAMApp.py:7609
-msgid "Opening G-Code file."
-msgstr "Opening G-Code file."
-
-#: FlatCAMApp.py:7632 FlatCAMApp.py:7635 flatcamGUI/FlatCAMGUI.py:1730
-msgid "Open Project"
-msgstr "Open Project"
-
-#: FlatCAMApp.py:7668 FlatCAMApp.py:7672
-msgid "Open HPGL2"
-msgstr "Open HPGL2"
-
-#: FlatCAMApp.py:7679
-msgid "Opening HPGL2 file."
-msgstr "Opening HPGL2 file."
-
-#: FlatCAMApp.py:7702 FlatCAMApp.py:7705
-msgid "Open Configuration File"
-msgstr "Open Configuration File"
-
-#: FlatCAMApp.py:7725 FlatCAMApp.py:8072
-msgid "Please Select a Geometry object to export"
-msgstr "Please Select a Geometry object to export"
-
-#: FlatCAMApp.py:7739
-msgid "Only Geometry, Gerber and CNCJob objects can be used."
-msgstr "Only Geometry, Gerber and CNCJob objects can be used."
-
-#: FlatCAMApp.py:7752 FlatCAMApp.py:7756 flatcamTools/ToolQRCode.py:829
-#: flatcamTools/ToolQRCode.py:833
-msgid "Export SVG"
-msgstr "Export SVG"
-
-#: FlatCAMApp.py:7781
-msgid "Data must be a 3D array with last dimension 3 or 4"
-msgstr "Data must be a 3D array with last dimension 3 or 4"
-
-#: FlatCAMApp.py:7787 FlatCAMApp.py:7791
-msgid "Export PNG Image"
-msgstr "Export PNG Image"
-
-#: FlatCAMApp.py:7824 FlatCAMApp.py:8032
-msgid "Failed. Only Gerber objects can be saved as Gerber files..."
-msgstr "Failed. Only Gerber objects can be saved as Gerber files..."
-
-#: FlatCAMApp.py:7836
-msgid "Save Gerber source file"
-msgstr "Save Gerber source file"
-
-#: FlatCAMApp.py:7865
-msgid "Failed. Only Script objects can be saved as TCL Script files..."
-msgstr "Failed. Only Script objects can be saved as TCL Script files..."
-
-#: FlatCAMApp.py:7877
-msgid "Save Script source file"
-msgstr "Save Script source file"
-
-#: FlatCAMApp.py:7906
-msgid "Failed. Only Document objects can be saved as Document files..."
-msgstr "Failed. Only Document objects can be saved as Document files..."
-
-#: FlatCAMApp.py:7918
-msgid "Save Document source file"
-msgstr "Save Document source file"
-
-#: FlatCAMApp.py:7947 FlatCAMApp.py:7988 FlatCAMApp.py:8945
-msgid "Failed. Only Excellon objects can be saved as Excellon files..."
-msgstr "Failed. Only Excellon objects can be saved as Excellon files..."
-
-#: FlatCAMApp.py:7955 FlatCAMApp.py:7959
-msgid "Save Excellon source file"
-msgstr "Save Excellon source file"
-
-#: FlatCAMApp.py:7996 FlatCAMApp.py:8000
-msgid "Export Excellon"
-msgstr "Export Excellon"
-
-#: FlatCAMApp.py:8040 FlatCAMApp.py:8044
-msgid "Export Gerber"
-msgstr "Export Gerber"
-
-#: FlatCAMApp.py:8082
-msgid "Only Geometry objects can be used."
-msgstr "Only Geometry objects can be used."
-
-#: FlatCAMApp.py:8096 FlatCAMApp.py:8100
-msgid "Export DXF"
-msgstr "Export DXF"
-
-#: FlatCAMApp.py:8125 FlatCAMApp.py:8128
-msgid "Import SVG"
-msgstr "Import SVG"
-
-#: FlatCAMApp.py:8156 FlatCAMApp.py:8160
-msgid "Import DXF"
-msgstr "Import DXF"
-
-#: FlatCAMApp.py:8210
-msgid "Viewing the source code of the selected object."
-msgstr "Viewing the source code of the selected object."
-
-#: FlatCAMApp.py:8211 flatcamObjects/FlatCAMCNCJob.py:548
-#: flatcamObjects/FlatCAMScript.py:134
+#: AppObjects/FlatCAMCNCJob.py:429 AppObjects/FlatCAMDocument.py:71
+#: AppObjects/FlatCAMScript.py:82
+msgid "Basic"
+msgstr "Basic"
+
+#: AppObjects/FlatCAMCNCJob.py:435 AppObjects/FlatCAMDocument.py:75
+#: AppObjects/FlatCAMScript.py:86
+msgid "Advanced"
+msgstr "Advanced"
+
+#: AppObjects/FlatCAMCNCJob.py:478
+msgid "Plotting..."
+msgstr "Plotting..."
+
+#: AppObjects/FlatCAMCNCJob.py:507 AppObjects/FlatCAMCNCJob.py:512
+#: AppTools/ToolSolderPaste.py:1499
+msgid "Export Machine Code ..."
+msgstr "Export Machine Code ..."
+
+#: AppObjects/FlatCAMCNCJob.py:517 AppTools/ToolSolderPaste.py:1503
+msgid "Export Machine Code cancelled ..."
+msgstr "Export Machine Code cancelled ..."
+
+#: AppObjects/FlatCAMCNCJob.py:538
+msgid "Machine Code file saved to"
+msgstr "Machine Code file saved to"
+
+#: AppObjects/FlatCAMCNCJob.py:548 AppObjects/FlatCAMScript.py:134
+#: App_Main.py:7205
msgid "Loading..."
msgstr "Loading..."
-#: FlatCAMApp.py:8217 FlatCAMApp.py:8221
-msgid "Select an Gerber or Excellon file to view it's source file."
-msgstr "Select an Gerber or Excellon file to view it's source file."
-
-#: FlatCAMApp.py:8235
-msgid "Source Editor"
-msgstr "Source Editor"
-
-#: FlatCAMApp.py:8275 FlatCAMApp.py:8282
-msgid "There is no selected object for which to see it's source file code."
-msgstr "There is no selected object for which to see it's source file code."
-
-#: FlatCAMApp.py:8294
-msgid "Failed to load the source code for the selected object"
-msgstr "Failed to load the source code for the selected object"
-
-#: FlatCAMApp.py:8308 flatcamObjects/FlatCAMCNCJob.py:562
+#: AppObjects/FlatCAMCNCJob.py:562 App_Main.py:7302
msgid "Code Editor"
msgstr "Code Editor"
-#: FlatCAMApp.py:8330
-msgid "Go to Line ..."
-msgstr "Go to Line ..."
+#: AppObjects/FlatCAMCNCJob.py:599 AppTools/ToolCalibration.py:1097
+msgid "Loaded Machine Code into Code Editor"
+msgstr "Loaded Machine Code into Code Editor"
-#: FlatCAMApp.py:8331
-msgid "Line:"
-msgstr "Line:"
+#: AppObjects/FlatCAMCNCJob.py:740
+msgid "This CNCJob object can't be processed because it is a"
+msgstr "This CNCJob object can't be processed because it is a"
-#: FlatCAMApp.py:8360
-msgid "New TCL script file created in Code Editor."
-msgstr "New TCL script file created in Code Editor."
+#: AppObjects/FlatCAMCNCJob.py:742
+msgid "CNCJob object"
+msgstr "CNCJob object"
-#: FlatCAMApp.py:8396 FlatCAMApp.py:8398 FlatCAMApp.py:8434 FlatCAMApp.py:8436
-msgid "Open TCL script"
-msgstr "Open TCL script"
-
-#: FlatCAMApp.py:8464
-msgid "Executing ScriptObject file."
-msgstr "Executing ScriptObject file."
-
-#: FlatCAMApp.py:8472 FlatCAMApp.py:8475
-msgid "Run TCL script"
-msgstr "Run TCL script"
-
-#: FlatCAMApp.py:8498
-msgid "TCL script file opened in Code Editor and executed."
-msgstr "TCL script file opened in Code Editor and executed."
-
-#: FlatCAMApp.py:8549 FlatCAMApp.py:8555
-msgid "Save Project As ..."
-msgstr "Save Project As ..."
-
-#: FlatCAMApp.py:8551 flatcamGUI/FlatCAMGUI.py:1134
-#: flatcamGUI/FlatCAMGUI.py:2176
-msgid "Project"
-msgstr "Project"
-
-#: FlatCAMApp.py:8590
-msgid "FlatCAM objects print"
-msgstr "FlatCAM objects print"
-
-#: FlatCAMApp.py:8603 FlatCAMApp.py:8610
-msgid "Save Object as PDF ..."
-msgstr "Save Object as PDF ..."
-
-#: FlatCAMApp.py:8619
-msgid "Printing PDF ... Please wait."
-msgstr "Printing PDF ... Please wait."
-
-#: FlatCAMApp.py:8798
-msgid "PDF file saved to"
-msgstr "PDF file saved to"
-
-#: FlatCAMApp.py:8823
-msgid "Exporting SVG"
-msgstr "Exporting SVG"
-
-#: FlatCAMApp.py:8866
-msgid "SVG file exported to"
-msgstr "SVG file exported to"
-
-#: FlatCAMApp.py:8892
+#: AppObjects/FlatCAMCNCJob.py:922
msgid ""
-"Save cancelled because source file is empty. Try to export the Gerber file."
+"G-code does not have a G94 code and we will not include the code in the "
+"'Prepend to GCode' text box"
msgstr ""
-"Save cancelled because source file is empty. Try to export the Gerber file."
+"G-code does not have a G94 code and we will not include the code in the "
+"'Prepend to GCode' text box"
-#: FlatCAMApp.py:9039
-msgid "Excellon file exported to"
-msgstr "Excellon file exported to"
+#: AppObjects/FlatCAMCNCJob.py:933
+msgid "Cancelled. The Toolchange Custom code is enabled but it's empty."
+msgstr "Cancelled. The Toolchange Custom code is enabled but it's empty."
-#: FlatCAMApp.py:9048
-msgid "Exporting Excellon"
-msgstr "Exporting Excellon"
+#: AppObjects/FlatCAMCNCJob.py:938
+msgid "Toolchange G-code was replaced by a custom code."
+msgstr "Toolchange G-code was replaced by a custom code."
-#: FlatCAMApp.py:9053 FlatCAMApp.py:9060
-msgid "Could not export Excellon file."
-msgstr "Could not export Excellon file."
-
-#: FlatCAMApp.py:9175
-msgid "Gerber file exported to"
-msgstr "Gerber file exported to"
-
-#: FlatCAMApp.py:9183
-msgid "Exporting Gerber"
-msgstr "Exporting Gerber"
-
-#: FlatCAMApp.py:9188 FlatCAMApp.py:9195
-msgid "Could not export Gerber file."
-msgstr "Could not export Gerber file."
-
-#: FlatCAMApp.py:9230
-msgid "DXF file exported to"
-msgstr "DXF file exported to"
-
-#: FlatCAMApp.py:9236
-msgid "Exporting DXF"
-msgstr "Exporting DXF"
-
-#: FlatCAMApp.py:9241 FlatCAMApp.py:9248
-msgid "Could not export DXF file."
-msgstr "Could not export DXF file."
-
-#: FlatCAMApp.py:9272 FlatCAMApp.py:9319 flatcamTools/ToolImage.py:277
+#: AppObjects/FlatCAMCNCJob.py:986 AppObjects/FlatCAMCNCJob.py:996
msgid ""
-"Not supported type is picked as parameter. Only Geometry and Gerber are "
-"supported"
+"The used preprocessor file has to have in it's name: 'toolchange_custom'"
msgstr ""
-"Not supported type is picked as parameter. Only Geometry and Gerber are "
-"supported"
+"The used preprocessor file has to have in it's name: 'toolchange_custom'"
-#: FlatCAMApp.py:9282
-msgid "Importing SVG"
-msgstr "Importing SVG"
+#: AppObjects/FlatCAMCNCJob.py:999
+msgid "There is no preprocessor file."
+msgstr "There is no preprocessor file."
-#: FlatCAMApp.py:9290 FlatCAMApp.py:9336
-msgid "Import failed."
-msgstr "Import failed."
+#: AppObjects/FlatCAMDocument.py:175
+msgid "Document Editor"
+msgstr "Document Editor"
-#: FlatCAMApp.py:9297 FlatCAMApp.py:9343 FlatCAMApp.py:9407 FlatCAMApp.py:9474
-#: FlatCAMApp.py:9540 FlatCAMApp.py:9605 FlatCAMApp.py:9662
-#: flatcamTools/ToolImage.py:297 flatcamTools/ToolPDF.py:225
-msgid "Opened"
-msgstr "Opened"
+#: AppObjects/FlatCAMExcellon.py:527 AppObjects/FlatCAMExcellon.py:825
+#: AppObjects/FlatCAMGeometry.py:322 AppObjects/FlatCAMGeometry.py:852
+#: AppTools/ToolNCC.py:811 AppTools/ToolNCC.py:1196 AppTools/ToolPaint.py:778
+#: AppTools/ToolPaint.py:1170
+msgid "Multiple Tools"
+msgstr "Multiple Tools"
-#: FlatCAMApp.py:9328
-msgid "Importing DXF"
-msgstr "Importing DXF"
+#: AppObjects/FlatCAMExcellon.py:805
+msgid "No Tool Selected"
+msgstr "No Tool Selected"
-#: FlatCAMApp.py:9369 FlatCAMApp.py:9564 FlatCAMApp.py:9629
-msgid "Failed to open file"
-msgstr "Failed to open file"
+#: AppObjects/FlatCAMExcellon.py:1155 AppObjects/FlatCAMExcellon.py:1248
+#: AppObjects/FlatCAMExcellon.py:1435
+msgid "Please select one or more tools from the list and try again."
+msgstr "Please select one or more tools from the list and try again."
-#: FlatCAMApp.py:9372 FlatCAMApp.py:9567 FlatCAMApp.py:9632
-msgid "Failed to parse file"
-msgstr "Failed to parse file"
+#: AppObjects/FlatCAMExcellon.py:1162
+msgid "Milling tool for DRILLS is larger than hole size. Cancelled."
+msgstr "Milling tool for DRILLS is larger than hole size. Cancelled."
-#: FlatCAMApp.py:9384
-msgid "Object is not Gerber file or empty. Aborting object creation."
-msgstr "Object is not Gerber file or empty. Aborting object creation."
+#: AppObjects/FlatCAMExcellon.py:1177 AppObjects/FlatCAMExcellon.py:1268
+#: AppObjects/FlatCAMExcellon.py:1453 tclCommands/TclCommandDrillcncjob.py:195
+msgid "Tool_nr"
+msgstr "Tool_nr"
-#: FlatCAMApp.py:9389
-msgid "Opening Gerber"
-msgstr "Opening Gerber"
+#: AppObjects/FlatCAMExcellon.py:1177 AppObjects/FlatCAMExcellon.py:1268
+#: AppObjects/FlatCAMExcellon.py:1453 tclCommands/TclCommandDrillcncjob.py:195
+msgid "Drills_Nr"
+msgstr "Drills_Nr"
-#: FlatCAMApp.py:9400
-msgid "Open Gerber failed. Probable not a Gerber file."
-msgstr "Open Gerber failed. Probable not a Gerber file."
+#: AppObjects/FlatCAMExcellon.py:1177 AppObjects/FlatCAMExcellon.py:1268
+#: AppObjects/FlatCAMExcellon.py:1453 tclCommands/TclCommandDrillcncjob.py:195
+msgid "Slots_Nr"
+msgstr "Slots_Nr"
-#: FlatCAMApp.py:9432 flatcamTools/ToolPcbWizard.py:424
-msgid "This is not Excellon file."
-msgstr "This is not Excellon file."
+#: AppObjects/FlatCAMExcellon.py:1257
+msgid "Milling tool for SLOTS is larger than hole size. Cancelled."
+msgstr "Milling tool for SLOTS is larger than hole size. Cancelled."
-#: FlatCAMApp.py:9436
-msgid "Cannot open file"
-msgstr "Cannot open file"
+#: AppObjects/FlatCAMExcellon.py:1361 AppObjects/FlatCAMGeometry.py:1625
+msgid "Focus Z"
+msgstr "Focus Z"
-#: FlatCAMApp.py:9454 flatcamTools/ToolPDF.py:275
-#: flatcamTools/ToolPcbWizard.py:445
-msgid "No geometry found in file"
-msgstr "No geometry found in file"
+#: AppObjects/FlatCAMExcellon.py:1380 AppObjects/FlatCAMGeometry.py:1644
+msgid "Laser Power"
+msgstr "Laser Power"
-#: FlatCAMApp.py:9457
-msgid "Opening Excellon."
-msgstr "Opening Excellon."
+#: AppObjects/FlatCAMExcellon.py:1510 AppObjects/FlatCAMGeometry.py:2077
+#: AppObjects/FlatCAMGeometry.py:2081 AppObjects/FlatCAMGeometry.py:2232
+msgid "Generating CNC Code"
+msgstr "Generating CNC Code"
-#: FlatCAMApp.py:9467
-msgid "Open Excellon file failed. Probable not an Excellon file."
-msgstr "Open Excellon file failed. Probable not an Excellon file."
+#: AppObjects/FlatCAMExcellon.py:1563 AppObjects/FlatCAMGeometry.py:2542
+msgid "Delete failed. There are no exclusion areas to delete."
+msgstr "Delete failed. There are no exclusion areas to delete."
-#: FlatCAMApp.py:9499
-msgid "Reading GCode file"
-msgstr "Reading GCode file"
+#: AppObjects/FlatCAMExcellon.py:1580 AppObjects/FlatCAMGeometry.py:2559
+msgid "Delete failed. Nothing is selected."
+msgstr "Delete failed. Nothing is selected."
-#: FlatCAMApp.py:9505
-msgid "Failed to open"
-msgstr "Failed to open"
+#: AppObjects/FlatCAMExcellon.py:1804 AppTools/ToolNCC.py:918
+#: AppTools/ToolPaint.py:843
+msgid "Current Tool parameters were applied to all tools."
+msgstr "Current Tool parameters were applied to all tools."
-#: FlatCAMApp.py:9512
-msgid "This is not GCODE"
-msgstr "This is not GCODE"
+#: AppObjects/FlatCAMGeometry.py:123 AppObjects/FlatCAMGeometry.py:1289
+#: AppObjects/FlatCAMGeometry.py:1290 AppObjects/FlatCAMGeometry.py:1299
+msgid "Iso"
+msgstr "Iso"
-#: FlatCAMApp.py:9517
-msgid "Opening G-Code."
-msgstr "Opening G-Code."
+#: AppObjects/FlatCAMGeometry.py:123 AppObjects/FlatCAMGeometry.py:515
+#: AppObjects/FlatCAMGeometry.py:911 AppObjects/FlatCAMGerber.py:891
+#: AppObjects/FlatCAMGerber.py:1039 AppTools/ToolCutOut.py:690
+#: AppTools/ToolCutOut.py:886 AppTools/ToolCutOut.py:1046
+msgid "Rough"
+msgstr "Rough"
-#: FlatCAMApp.py:9530
+#: AppObjects/FlatCAMGeometry.py:123
+msgid "Finish"
+msgstr "Finish"
+
+#: AppObjects/FlatCAMGeometry.py:550
+msgid "Add from Tool DB"
+msgstr "Add from Tool DB"
+
+#: AppObjects/FlatCAMGeometry.py:930
+msgid "Tool added in Tool Table."
+msgstr "Tool added in Tool Table."
+
+#: AppObjects/FlatCAMGeometry.py:1039 AppObjects/FlatCAMGeometry.py:1048
+msgid "Failed. Select a tool to copy."
+msgstr "Failed. Select a tool to copy."
+
+#: AppObjects/FlatCAMGeometry.py:1077
+msgid "Tool was copied in Tool Table."
+msgstr "Tool was copied in Tool Table."
+
+#: AppObjects/FlatCAMGeometry.py:1104
+msgid "Tool was edited in Tool Table."
+msgstr "Tool was edited in Tool Table."
+
+#: AppObjects/FlatCAMGeometry.py:1133 AppObjects/FlatCAMGeometry.py:1142
+msgid "Failed. Select a tool to delete."
+msgstr "Failed. Select a tool to delete."
+
+#: AppObjects/FlatCAMGeometry.py:1166
+msgid "Tool was deleted in Tool Table."
+msgstr "Tool was deleted in Tool Table."
+
+#: AppObjects/FlatCAMGeometry.py:1203 AppObjects/FlatCAMGeometry.py:1212
msgid ""
-"Failed to create CNCJob Object. Probable not a GCode file. Try to load it "
-"from File menu.\n"
-" Attempting to create a FlatCAM CNCJob Object from G-Code file failed during "
-"processing"
+"Disabled because the tool is V-shape.\n"
+"For V-shape tools the depth of cut is\n"
+"calculated from other parameters like:\n"
+"- 'V-tip Angle' -> angle at the tip of the tool\n"
+"- 'V-tip Dia' -> diameter at the tip of the tool \n"
+"- Tool Dia -> 'Dia' column found in the Tool Table\n"
+"NB: a value of zero means that Tool Dia = 'V-tip Dia'"
msgstr ""
-"Failed to create CNCJob Object. Probable not a GCode file. Try to load it "
-"from File menu.\n"
-" Attempting to create a FlatCAM CNCJob Object from G-Code file failed during "
-"processing"
+"Disabled because the tool is V-shape.\n"
+"For V-shape tools the depth of cut is\n"
+"calculated from other parameters like:\n"
+"- 'V-tip Angle' -> angle at the tip of the tool\n"
+"- 'V-tip Dia' -> diameter at the tip of the tool \n"
+"- Tool Dia -> 'Dia' column found in the Tool Table\n"
+"NB: a value of zero means that Tool Dia = 'V-tip Dia'"
-#: FlatCAMApp.py:9586
-msgid "Object is not HPGL2 file or empty. Aborting object creation."
-msgstr "Object is not HPGL2 file or empty. Aborting object creation."
+#: AppObjects/FlatCAMGeometry.py:1697
+msgid "This Geometry can't be processed because it is"
+msgstr "This Geometry can't be processed because it is"
-#: FlatCAMApp.py:9591
-msgid "Opening HPGL2"
-msgstr "Opening HPGL2"
+#: AppObjects/FlatCAMGeometry.py:1697
+msgid "geometry"
+msgstr "geometry"
-#: FlatCAMApp.py:9598
-msgid " Open HPGL2 failed. Probable not a HPGL2 file."
-msgstr " Open HPGL2 failed. Probable not a HPGL2 file."
+#: AppObjects/FlatCAMGeometry.py:1738
+msgid "Failed. No tool selected in the tool table ..."
+msgstr "Failed. No tool selected in the tool table ..."
-#: FlatCAMApp.py:9624
-msgid "TCL script file opened in Code Editor."
-msgstr "TCL script file opened in Code Editor."
-
-#: FlatCAMApp.py:9644
-msgid "Opening TCL Script..."
-msgstr "Opening TCL Script..."
-
-#: FlatCAMApp.py:9655
-msgid "Failed to open TCL Script."
-msgstr "Failed to open TCL Script."
-
-#: FlatCAMApp.py:9677
-msgid "Opening FlatCAM Config file."
-msgstr "Opening FlatCAM Config file."
-
-#: FlatCAMApp.py:9705
-msgid "Failed to open config file"
-msgstr "Failed to open config file"
-
-#: FlatCAMApp.py:9734
-msgid "Loading Project ... Please Wait ..."
-msgstr "Loading Project ... Please Wait ..."
-
-#: FlatCAMApp.py:9739
-msgid "Opening FlatCAM Project file."
-msgstr "Opening FlatCAM Project file."
-
-#: FlatCAMApp.py:9754 FlatCAMApp.py:9758 FlatCAMApp.py:9775
-msgid "Failed to open project file"
-msgstr "Failed to open project file"
-
-#: FlatCAMApp.py:9812
-msgid "Loading Project ... restoring"
-msgstr "Loading Project ... restoring"
-
-#: FlatCAMApp.py:9822
-msgid "Project loaded from"
-msgstr "Project loaded from"
-
-#: FlatCAMApp.py:9846
-msgid "Redrawing all objects"
-msgstr "Redrawing all objects"
-
-#: FlatCAMApp.py:9934
-msgid "Failed to load recent item list."
-msgstr "Failed to load recent item list."
-
-#: FlatCAMApp.py:9941
-msgid "Failed to parse recent item list."
-msgstr "Failed to parse recent item list."
-
-#: FlatCAMApp.py:9951
-msgid "Failed to load recent projects item list."
-msgstr "Failed to load recent projects item list."
-
-#: FlatCAMApp.py:9958
-msgid "Failed to parse recent project item list."
-msgstr "Failed to parse recent project item list."
-
-#: FlatCAMApp.py:10019
-msgid "Clear Recent projects"
-msgstr "Clear Recent projects"
-
-#: FlatCAMApp.py:10043
-msgid "Clear Recent files"
-msgstr "Clear Recent files"
-
-#: FlatCAMApp.py:10065 flatcamGUI/FlatCAMGUI.py:1363
-msgid "Shortcut Key List"
-msgstr "Shortcut Key List"
-
-#: FlatCAMApp.py:10145
-msgid "Selected Tab - Choose an Item from Project Tab"
-msgstr "Selected Tab - Choose an Item from Project Tab"
-
-#: FlatCAMApp.py:10146
-msgid "Details"
-msgstr "Details"
-
-#: FlatCAMApp.py:10148
-msgid "The normal flow when working in FlatCAM is the following:"
-msgstr "The normal flow when working in FlatCAM is the following:"
-
-#: FlatCAMApp.py:10149
+#: AppObjects/FlatCAMGeometry.py:1836 AppObjects/FlatCAMGeometry.py:1986
msgid ""
-"Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into "
-"FlatCAM using either the toolbars, key shortcuts or even dragging and "
-"dropping the files on the GUI."
+"Tool Offset is selected in Tool Table but no value is provided.\n"
+"Add a Tool Offset or change the Offset Type."
msgstr ""
-"Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into "
-"FlatCAM using either the toolbars, key shortcuts or even dragging and "
-"dropping the files on the GUI."
+"Tool Offset is selected in Tool Table but no value is provided.\n"
+"Add a Tool Offset or change the Offset Type."
-#: FlatCAMApp.py:10152
+#: AppObjects/FlatCAMGeometry.py:1902 AppObjects/FlatCAMGeometry.py:2048
+msgid "G-Code parsing in progress..."
+msgstr "G-Code parsing in progress..."
+
+#: AppObjects/FlatCAMGeometry.py:1904 AppObjects/FlatCAMGeometry.py:2050
+msgid "G-Code parsing finished..."
+msgstr "G-Code parsing finished..."
+
+#: AppObjects/FlatCAMGeometry.py:1912
+msgid "Finished G-Code processing"
+msgstr "Finished G-Code processing"
+
+#: AppObjects/FlatCAMGeometry.py:1914 AppObjects/FlatCAMGeometry.py:2062
+msgid "G-Code processing failed with error"
+msgstr "G-Code processing failed with error"
+
+#: AppObjects/FlatCAMGeometry.py:1956 AppTools/ToolSolderPaste.py:1301
+msgid "Cancelled. Empty file, it has no geometry"
+msgstr "Cancelled. Empty file, it has no geometry"
+
+#: AppObjects/FlatCAMGeometry.py:2060 AppObjects/FlatCAMGeometry.py:2227
+msgid "Finished G-Code processing..."
+msgstr "Finished G-Code processing..."
+
+#: AppObjects/FlatCAMGeometry.py:2079 AppObjects/FlatCAMGeometry.py:2083
+#: AppObjects/FlatCAMGeometry.py:2234
+msgid "CNCjob created"
+msgstr "CNCjob created"
+
+#: AppObjects/FlatCAMGeometry.py:2265 AppObjects/FlatCAMGeometry.py:2274
+#: AppParsers/ParseGerber.py:1866 AppParsers/ParseGerber.py:1876
+msgid "Scale factor has to be a number: integer or float."
+msgstr "Scale factor has to be a number: integer or float."
+
+#: AppObjects/FlatCAMGeometry.py:2337
+msgid "Geometry Scale done."
+msgstr "Geometry Scale done."
+
+#: AppObjects/FlatCAMGeometry.py:2354 AppParsers/ParseGerber.py:1992
msgid ""
-"You can also load a FlatCAM project by double clicking on the project file, "
-"drag and drop of the file into the FLATCAM GUI or through the menu (or "
-"toolbar) actions offered within the app."
+"An (x,y) pair of values are needed. Probable you entered only one value in "
+"the Offset field."
msgstr ""
-"You can also load a FlatCAM project by double clicking on the project file, "
-"drag and drop of the file into the FLATCAM GUI or through the menu (or "
-"toolbar) actions offered within the app."
+"An (x,y) pair of values are needed. Probable you entered only one value in "
+"the Offset field."
-#: FlatCAMApp.py:10155
+#: AppObjects/FlatCAMGeometry.py:2410
+msgid "Geometry Offset done."
+msgstr "Geometry Offset done."
+
+#: AppObjects/FlatCAMGeometry.py:2439
msgid ""
-"Once an object is available in the Project Tab, by selecting it and then "
-"focusing on SELECTED TAB (more simpler is to double click the object name in "
-"the Project Tab, SELECTED TAB will be updated with the object properties "
-"according to its kind: Gerber, Excellon, Geometry or CNCJob object."
+"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, "
+"y)\n"
+"but now there is only one value, not two."
msgstr ""
-"Once an object is available in the Project Tab, by selecting it and then "
-"focusing on SELECTED TAB (more simpler is to double click the object name in "
-"the Project Tab, SELECTED TAB will be updated with the object properties "
-"according to its kind: Gerber, Excellon, Geometry or CNCJob object."
+"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, "
+"y)\n"
+"but now there is only one value, not two."
-#: FlatCAMApp.py:10159
+#: AppObjects/FlatCAMGerber.py:494
+msgid "Buffering solid geometry"
+msgstr "Buffering solid geometry"
+
+#: AppObjects/FlatCAMGerber.py:503
+msgid "Done"
+msgstr "Done"
+
+#: AppObjects/FlatCAMGerber.py:529 AppObjects/FlatCAMGerber.py:555
+msgid "Operation could not be done."
+msgstr "Operation could not be done."
+
+#: AppObjects/FlatCAMGerber.py:572
+msgid "Isolating..."
+msgstr "Isolating..."
+
+#: AppObjects/FlatCAMGerber.py:631
+msgid "Click on a polygon to isolate it."
+msgstr "Click on a polygon to isolate it."
+
+#: AppObjects/FlatCAMGerber.py:670 AppObjects/FlatCAMGerber.py:774
+#: AppTools/ToolPaint.py:1515
+msgid "Added polygon"
+msgstr "Added polygon"
+
+#: AppObjects/FlatCAMGerber.py:671 AppObjects/FlatCAMGerber.py:776
+msgid "Click to add next polygon or right click to start isolation."
+msgstr "Click to add next polygon or right click to start isolation."
+
+#: AppObjects/FlatCAMGerber.py:683 AppTools/ToolPaint.py:1529
+msgid "Removed polygon"
+msgstr "Removed polygon"
+
+#: AppObjects/FlatCAMGerber.py:684
+msgid "Click to add/remove next polygon or right click to start isolation."
+msgstr "Click to add/remove next polygon or right click to start isolation."
+
+#: AppObjects/FlatCAMGerber.py:689 AppTools/ToolPaint.py:1535
+msgid "No polygon detected under click position."
+msgstr "No polygon detected under click position."
+
+#: AppObjects/FlatCAMGerber.py:710 AppTools/ToolPaint.py:1564
+msgid "List of single polygons is empty. Aborting."
+msgstr "List of single polygons is empty. Aborting."
+
+#: AppObjects/FlatCAMGerber.py:779
+msgid "No polygon in selection."
+msgstr "No polygon in selection."
+
+#: AppObjects/FlatCAMGerber.py:907 AppObjects/FlatCAMGerber.py:986
+#: AppTools/ToolNCC.py:2097 AppTools/ToolNCC.py:3183 AppTools/ToolNCC.py:3562
+msgid "Isolation geometry could not be generated."
+msgstr "Isolation geometry could not be generated."
+
+#: AppObjects/FlatCAMGerber.py:932 AppObjects/FlatCAMGerber.py:1064
+msgid "Isolation geometry created"
+msgstr "Isolation geometry created"
+
+#: AppObjects/FlatCAMGerber.py:941 AppObjects/FlatCAMGerber.py:1071
+msgid "Subtracting Geo"
+msgstr "Subtracting Geo"
+
+#: AppObjects/FlatCAMGerber.py:1396
+msgid "Plotting Apertures"
+msgstr "Plotting Apertures"
+
+#: AppObjects/FlatCAMObj.py:232
+msgid "Name changed from"
+msgstr "Name changed from"
+
+#: AppObjects/FlatCAMObj.py:232
+msgid "to"
+msgstr "to"
+
+#: AppObjects/FlatCAMObj.py:243
+msgid "Offsetting..."
+msgstr "Offsetting..."
+
+#: AppObjects/FlatCAMObj.py:257 AppObjects/FlatCAMObj.py:262
+msgid "Scaling could not be executed."
+msgstr "Scaling could not be executed."
+
+#: AppObjects/FlatCAMObj.py:266 AppObjects/FlatCAMObj.py:274
+msgid "Scale done."
+msgstr "Scale done."
+
+#: AppObjects/FlatCAMObj.py:272
+msgid "Scaling..."
+msgstr "Scaling..."
+
+#: AppObjects/FlatCAMObj.py:290
+msgid "Skewing..."
+msgstr "Skewing..."
+
+#: AppObjects/FlatCAMScript.py:163
+msgid "Script Editor"
+msgstr "Script Editor"
+
+#: AppObjects/ObjectCollection.py:513
+#, python-brace-format
+msgid "Object renamed from {old} to {new}"
+msgstr "Object renamed from {old} to {new}"
+
+#: AppObjects/ObjectCollection.py:925 AppObjects/ObjectCollection.py:931
+#: AppObjects/ObjectCollection.py:937 AppObjects/ObjectCollection.py:943
+#: AppObjects/ObjectCollection.py:949 AppObjects/ObjectCollection.py:955
+#: App_Main.py:6158 App_Main.py:6164 App_Main.py:6170 App_Main.py:6176
+msgid "selected"
+msgstr "selected"
+
+#: AppObjects/ObjectCollection.py:986
+msgid "Cause of error"
+msgstr "Cause of error"
+
+#: AppObjects/ObjectCollection.py:1187
+msgid "All objects are selected."
+msgstr "All objects are selected."
+
+#: AppObjects/ObjectCollection.py:1197
+msgid "Objects selection is cleared."
+msgstr "Objects selection is cleared."
+
+#: AppParsers/ParseExcellon.py:315
+msgid "This is GCODE mark"
+msgstr "This is GCODE mark"
+
+#: AppParsers/ParseExcellon.py:432
msgid ""
-"If the selection of the object is done on the canvas by single click "
-"instead, and the SELECTED TAB is in focus, again the object properties will "
-"be displayed into the Selected Tab. Alternatively, double clicking on the "
-"object on the canvas will bring the SELECTED TAB and populate it even if it "
-"was out of focus."
+"No tool diameter info's. See shell.\n"
+"A tool change event: T"
msgstr ""
-"If the selection of the object is done on the canvas by single click "
-"instead, and the SELECTED TAB is in focus, again the object properties will "
-"be displayed into the Selected Tab. Alternatively, double clicking on the "
-"object on the canvas will bring the SELECTED TAB and populate it even if it "
-"was out of focus."
+"No tool diameter info's. See shell.\n"
+"A tool change event: T"
-#: FlatCAMApp.py:10163
+#: AppParsers/ParseExcellon.py:435
msgid ""
-"You can change the parameters in this screen and the flow direction is like "
-"this:"
+"was found but the Excellon file have no informations regarding the tool "
+"diameters therefore the application will try to load it by using some 'fake' "
+"diameters.\n"
+"The user needs to edit the resulting Excellon object and change the "
+"diameters to reflect the real diameters."
msgstr ""
-"You can change the parameters in this screen and the flow direction is like "
-"this:"
+"was found but the Excellon file have no informations regarding the tool "
+"diameters therefore the application will try to load it by using some 'fake' "
+"diameters.\n"
+"The user needs to edit the resulting Excellon object and change the "
+"diameters to reflect the real diameters."
-#: FlatCAMApp.py:10164
+#: AppParsers/ParseExcellon.py:899
msgid ""
-"Gerber/Excellon Object --> Change Parameter --> Generate Geometry --> "
-"Geometry Object --> Add tools (change param in Selected Tab) --> Generate "
-"CNCJob --> CNCJob Object --> Verify GCode (through Edit CNC Code) and/or "
-"append/prepend to GCode (again, done in SELECTED TAB) --> Save GCode."
+"Excellon Parser error.\n"
+"Parsing Failed. Line"
msgstr ""
-"Gerber/Excellon Object --> Change Parameter --> Generate Geometry --> "
-"Geometry Object --> Add tools (change param in Selected Tab) --> Generate "
-"CNCJob --> CNCJob Object --> Verify GCode (through Edit CNC Code) and/or "
-"append/prepend to GCode (again, done in SELECTED TAB) --> Save GCode."
+"Excellon Parser error.\n"
+"Parsing Failed. Line"
-#: FlatCAMApp.py:10168
+#: AppParsers/ParseExcellon.py:981
msgid ""
-"A list of key shortcuts is available through an menu entry in Help --> "
-"Shortcuts List or through its own key shortcut: F3."
+"Excellon.create_geometry() -> a drill location was skipped due of not having "
+"a tool associated.\n"
+"Check the resulting GCode."
msgstr ""
-"A list of key shortcuts is available through an menu entry in Help --> "
-"Shortcuts List or through its own key shortcut: F3."
+"Excellon.create_geometry() -> a drill location was skipped due of not having "
+"a tool associated.\n"
+"Check the resulting GCode."
-#: FlatCAMApp.py:10232
-msgid "Failed checking for latest version. Could not connect."
-msgstr "Failed checking for latest version. Could not connect."
+#: AppParsers/ParseFont.py:303
+msgid "Font not supported, try another one."
+msgstr "Font not supported, try another one."
-#: FlatCAMApp.py:10239
-msgid "Could not parse information about latest version."
-msgstr "Could not parse information about latest version."
+#: AppParsers/ParseGerber.py:425
+msgid "Gerber processing. Parsing"
+msgstr "Gerber processing. Parsing"
-#: FlatCAMApp.py:10249
-msgid "FlatCAM is up to date!"
-msgstr "FlatCAM is up to date!"
+#: AppParsers/ParseGerber.py:425 AppParsers/ParseHPGL2.py:181
+msgid "lines"
+msgstr "lines"
-#: FlatCAMApp.py:10254
-msgid "Newer Version Available"
-msgstr "Newer Version Available"
+#: AppParsers/ParseGerber.py:1001 AppParsers/ParseGerber.py:1101
+#: AppParsers/ParseHPGL2.py:274 AppParsers/ParseHPGL2.py:288
+#: AppParsers/ParseHPGL2.py:307 AppParsers/ParseHPGL2.py:331
+#: AppParsers/ParseHPGL2.py:366
+msgid "Coordinates missing, line ignored"
+msgstr "Coordinates missing, line ignored"
-#: FlatCAMApp.py:10256
-msgid "There is a newer version of FlatCAM available for download:"
-msgstr "There is a newer version of FlatCAM available for download:"
+#: AppParsers/ParseGerber.py:1003 AppParsers/ParseGerber.py:1103
+msgid "GERBER file might be CORRUPT. Check the file !!!"
+msgstr "GERBER file might be CORRUPT. Check the file !!!"
-#: FlatCAMApp.py:10260
-msgid "info"
-msgstr "info"
-
-#: FlatCAMApp.py:10288
+#: AppParsers/ParseGerber.py:1057
msgid ""
-"OpenGL canvas initialization failed. HW or HW configuration not supported."
-"Change the graphic engine to Legacy(2D) in Edit -> Preferences -> General "
-"tab.\n"
-"\n"
+"Region does not have enough points. File will be processed but there are "
+"parser errors. Line number"
msgstr ""
-"OpenGL canvas initialization failed. HW or HW configuration not supported."
-"Change the graphic engine to Legacy(2D) in Edit -> Preferences -> General "
-"tab.\n"
-"\n"
+"Region does not have enough points. File will be processed but there are "
+"parser errors. Line number"
-#: FlatCAMApp.py:10367
-msgid "All plots disabled."
-msgstr "All plots disabled."
+#: AppParsers/ParseGerber.py:1487 AppParsers/ParseHPGL2.py:401
+msgid "Gerber processing. Joining polygons"
+msgstr "Gerber processing. Joining polygons"
-#: FlatCAMApp.py:10374
-msgid "All non selected plots disabled."
-msgstr "All non selected plots disabled."
+#: AppParsers/ParseGerber.py:1504
+msgid "Gerber processing. Applying Gerber polarity."
+msgstr "Gerber processing. Applying Gerber polarity."
-#: FlatCAMApp.py:10381
-msgid "All plots enabled."
-msgstr "All plots enabled."
+#: AppParsers/ParseGerber.py:1564
+msgid "Gerber Line"
+msgstr "Gerber Line"
-#: FlatCAMApp.py:10387
-msgid "Selected plots enabled..."
-msgstr "Selected plots enabled..."
+#: AppParsers/ParseGerber.py:1564
+msgid "Gerber Line Content"
+msgstr "Gerber Line Content"
-#: FlatCAMApp.py:10395
-msgid "Selected plots disabled..."
-msgstr "Selected plots disabled..."
+#: AppParsers/ParseGerber.py:1566
+msgid "Gerber Parser ERROR"
+msgstr "Gerber Parser ERROR"
-#: FlatCAMApp.py:10428
-msgid "Enabling plots ..."
-msgstr "Enabling plots ..."
+#: AppParsers/ParseGerber.py:1956
+msgid "Gerber Scale done."
+msgstr "Gerber Scale done."
-#: FlatCAMApp.py:10480
-msgid "Disabling plots ..."
-msgstr "Disabling plots ..."
+#: AppParsers/ParseGerber.py:2048
+msgid "Gerber Offset done."
+msgstr "Gerber Offset done."
-#: FlatCAMApp.py:10503
-msgid "Working ..."
-msgstr "Working ..."
+#: AppParsers/ParseGerber.py:2124
+msgid "Gerber Mirror done."
+msgstr "Gerber Mirror done."
-#: FlatCAMApp.py:10558 flatcamGUI/FlatCAMGUI.py:703
-msgid "Red"
-msgstr "Red"
+#: AppParsers/ParseGerber.py:2198
+msgid "Gerber Skew done."
+msgstr "Gerber Skew done."
-#: FlatCAMApp.py:10560 flatcamGUI/FlatCAMGUI.py:706
-msgid "Blue"
-msgstr "Blue"
+#: AppParsers/ParseGerber.py:2260
+msgid "Gerber Rotate done."
+msgstr "Gerber Rotate done."
-#: FlatCAMApp.py:10563 flatcamGUI/FlatCAMGUI.py:709
-msgid "Yellow"
-msgstr "Yellow"
+#: AppParsers/ParseGerber.py:2417
+msgid "Gerber Buffer done."
+msgstr "Gerber Buffer done."
-#: FlatCAMApp.py:10565 flatcamGUI/FlatCAMGUI.py:712
-msgid "Green"
-msgstr "Green"
+#: AppParsers/ParseHPGL2.py:181
+msgid "HPGL2 processing. Parsing"
+msgstr "HPGL2 processing. Parsing"
-#: FlatCAMApp.py:10567 flatcamGUI/FlatCAMGUI.py:715
-msgid "Purple"
-msgstr "Purple"
+#: AppParsers/ParseHPGL2.py:413
+msgid "HPGL2 Line"
+msgstr "HPGL2 Line"
-#: FlatCAMApp.py:10569 flatcamGUI/FlatCAMGUI.py:718
-msgid "Brown"
-msgstr "Brown"
+#: AppParsers/ParseHPGL2.py:413
+msgid "HPGL2 Line Content"
+msgstr "HPGL2 Line Content"
-#: FlatCAMApp.py:10571 FlatCAMApp.py:10627 flatcamGUI/FlatCAMGUI.py:721
-msgid "White"
-msgstr "White"
+#: AppParsers/ParseHPGL2.py:414
+msgid "HPGL2 Parser ERROR"
+msgstr "HPGL2 Parser ERROR"
-#: FlatCAMApp.py:10573 flatcamGUI/FlatCAMGUI.py:724
-msgid "Black"
-msgstr "Black"
-
-#: FlatCAMApp.py:10576 flatcamGUI/FlatCAMGUI.py:729
-msgid "Custom"
-msgstr "Custom"
-
-#: FlatCAMApp.py:10586 flatcamGUI/FlatCAMGUI.py:737
-msgid "Default"
-msgstr "Default"
-
-#: FlatCAMApp.py:10610 flatcamGUI/FlatCAMGUI.py:734
-msgid "Opacity"
-msgstr "Opacity"
-
-#: FlatCAMApp.py:10612
-msgid "Set alpha level ..."
-msgstr "Set alpha level ..."
-
-#: FlatCAMApp.py:10612
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:220
-#: flatcamTools/ToolExtractDrills.py:164 flatcamTools/ToolExtractDrills.py:285
-#: flatcamTools/ToolPunchGerber.py:192 flatcamTools/ToolPunchGerber.py:308
-#: flatcamTools/ToolTransform.py:357
-msgid "Value"
-msgstr "Value"
-
-#: FlatCAMApp.py:10666
-msgid "Saving FlatCAM Project"
-msgstr "Saving FlatCAM Project"
-
-#: FlatCAMApp.py:10687 FlatCAMApp.py:10723
-msgid "Project saved to"
-msgstr "Project saved to"
-
-#: FlatCAMApp.py:10694
-msgid "The object is used by another application."
-msgstr "The object is used by another application."
-
-#: FlatCAMApp.py:10708
-msgid "Failed to verify project file"
-msgstr "Failed to verify project file"
-
-#: FlatCAMApp.py:10708 FlatCAMApp.py:10716 FlatCAMApp.py:10726
-msgid "Retry to save it."
-msgstr "Retry to save it."
-
-#: FlatCAMApp.py:10716 FlatCAMApp.py:10726
-msgid "Failed to parse saved project file"
-msgstr "Failed to parse saved project file"
-
-#: FlatCAMBookmark.py:57 FlatCAMBookmark.py:84
-msgid "Title"
-msgstr "Title"
-
-#: FlatCAMBookmark.py:58 FlatCAMBookmark.py:88
-msgid "Web Link"
-msgstr "Web Link"
-
-#: FlatCAMBookmark.py:62
-msgid ""
-"Index.\n"
-"The rows in gray color will populate the Bookmarks menu.\n"
-"The number of gray colored rows is set in Preferences."
-msgstr ""
-"Index.\n"
-"The rows in gray color will populate the Bookmarks menu.\n"
-"The number of gray colored rows is set in Preferences."
-
-#: FlatCAMBookmark.py:66
-msgid ""
-"Description of the link that is set as an menu action.\n"
-"Try to keep it short because it is installed as a menu item."
-msgstr ""
-"Description of the link that is set as an menu action.\n"
-"Try to keep it short because it is installed as a menu item."
-
-#: FlatCAMBookmark.py:69
-msgid "Web Link. E.g: https://your_website.org "
-msgstr "Web Link. E.g: https://your_website.org "
-
-#: FlatCAMBookmark.py:78
-msgid "New Bookmark"
-msgstr "New Bookmark"
-
-#: FlatCAMBookmark.py:97
-msgid "Add Entry"
-msgstr "Add Entry"
-
-#: FlatCAMBookmark.py:98
-msgid "Remove Entry"
-msgstr "Remove Entry"
-
-#: FlatCAMBookmark.py:99
-msgid "Export List"
-msgstr "Export List"
-
-#: FlatCAMBookmark.py:100
-msgid "Import List"
-msgstr "Import List"
-
-#: FlatCAMBookmark.py:190
-msgid "Title entry is empty."
-msgstr "Title entry is empty."
-
-#: FlatCAMBookmark.py:199
-msgid "Web link entry is empty."
-msgstr "Web link entry is empty."
-
-#: FlatCAMBookmark.py:207
-msgid "Either the Title or the Weblink already in the table."
-msgstr "Either the Title or the Weblink already in the table."
-
-#: FlatCAMBookmark.py:227
-msgid "Bookmark added."
-msgstr "Bookmark added."
-
-#: FlatCAMBookmark.py:244
-msgid "This bookmark can not be removed"
-msgstr "This bookmark can not be removed"
-
-#: FlatCAMBookmark.py:275
-msgid "Bookmark removed."
-msgstr "Bookmark removed."
-
-#: FlatCAMBookmark.py:290
-msgid "Export FlatCAM Bookmarks"
-msgstr "Export FlatCAM Bookmarks"
-
-#: FlatCAMBookmark.py:293 flatcamGUI/FlatCAMGUI.py:524
-msgid "Bookmarks"
-msgstr "Bookmarks"
-
-#: FlatCAMBookmark.py:319 FlatCAMBookmark.py:349
-msgid "Could not load bookmarks file."
-msgstr "Could not load bookmarks file."
-
-#: FlatCAMBookmark.py:329
-msgid "Failed to write bookmarks to file."
-msgstr "Failed to write bookmarks to file."
-
-#: FlatCAMBookmark.py:331
-msgid "Exported bookmarks to"
-msgstr "Exported bookmarks to"
-
-#: FlatCAMBookmark.py:337
-msgid "Import FlatCAM Bookmarks"
-msgstr "Import FlatCAM Bookmarks"
-
-#: FlatCAMBookmark.py:356
-msgid "Imported Bookmarks from"
-msgstr "Imported Bookmarks from"
-
-#: FlatCAMCommon.py:29
-msgid "The user requested a graceful exit of the current task."
-msgstr "The user requested a graceful exit of the current task."
-
-#: FlatCAMDB.py:86
-msgid "Add Geometry Tool in DB"
-msgstr "Add Geometry Tool in DB"
-
-#: FlatCAMDB.py:88 FlatCAMDB.py:1643
-msgid ""
-"Add a new tool in the Tools Database.\n"
-"It will be used in the Geometry UI.\n"
-"You can edit it after it is added."
-msgstr ""
-"Add a new tool in the Tools Database.\n"
-"It will be used in the Geometry UI.\n"
-"You can edit it after it is added."
-
-#: FlatCAMDB.py:102 FlatCAMDB.py:1657
-msgid "Delete Tool from DB"
-msgstr "Delete Tool from DB"
-
-#: FlatCAMDB.py:104 FlatCAMDB.py:1659
-msgid "Remove a selection of tools in the Tools Database."
-msgstr "Remove a selection of tools in the Tools Database."
-
-#: FlatCAMDB.py:108 FlatCAMDB.py:1663
-msgid "Export DB"
-msgstr "Export DB"
-
-#: FlatCAMDB.py:110 FlatCAMDB.py:1665
-msgid "Save the Tools Database to a custom text file."
-msgstr "Save the Tools Database to a custom text file."
-
-#: FlatCAMDB.py:114 FlatCAMDB.py:1669
-msgid "Import DB"
-msgstr "Import DB"
-
-#: FlatCAMDB.py:116 FlatCAMDB.py:1671
-msgid "Load the Tools Database information's from a custom text file."
-msgstr "Load the Tools Database information's from a custom text file."
-
-#: FlatCAMDB.py:120 FlatCAMDB.py:1681
-msgid "Add Tool from Tools DB"
-msgstr "Add Tool from Tools DB"
-
-#: FlatCAMDB.py:122 FlatCAMDB.py:1683
-msgid ""
-"Add a new tool in the Tools Table of the\n"
-"active Geometry object after selecting a tool\n"
-"in the Tools Database."
-msgstr ""
-"Add a new tool in the Tools Table of the\n"
-"active Geometry object after selecting a tool\n"
-"in the Tools Database."
-
-#: FlatCAMDB.py:158 FlatCAMDB.py:833 FlatCAMDB.py:1087
-msgid "Tool Name"
-msgstr "Tool Name"
-
-#: FlatCAMDB.py:159 FlatCAMDB.py:835 FlatCAMDB.py:1100
-#: flatcamEditors/FlatCAMExcEditor.py:1604 flatcamGUI/ObjectUI.py:1345
-#: flatcamGUI/ObjectUI.py:1583
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:132
-#: flatcamTools/ToolNCC.py:278 flatcamTools/ToolNCC.py:287
-#: flatcamTools/ToolPaint.py:261
-msgid "Tool Dia"
-msgstr "Tool Dia"
-
-#: FlatCAMDB.py:160 FlatCAMDB.py:837 FlatCAMDB.py:1281
-#: flatcamGUI/ObjectUI.py:1558
-msgid "Tool Offset"
-msgstr "Tool Offset"
-
-#: FlatCAMDB.py:161 FlatCAMDB.py:839 FlatCAMDB.py:1298
-msgid "Custom Offset"
-msgstr "Custom Offset"
-
-#: FlatCAMDB.py:162 FlatCAMDB.py:841 FlatCAMDB.py:1265
-#: flatcamGUI/ObjectUI.py:309
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:67
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:53
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:62
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:72
-#: flatcamTools/ToolNCC.py:213 flatcamTools/ToolNCC.py:227
-#: flatcamTools/ToolPaint.py:196
-msgid "Tool Type"
-msgstr "Tool Type"
-
-#: FlatCAMDB.py:163 FlatCAMDB.py:843 FlatCAMDB.py:1113
-msgid "Tool Shape"
-msgstr "Tool Shape"
-
-#: FlatCAMDB.py:164 FlatCAMDB.py:846 FlatCAMDB.py:1129
-#: flatcamGUI/ObjectUI.py:350 flatcamGUI/ObjectUI.py:900
-#: flatcamGUI/ObjectUI.py:1703 flatcamGUI/ObjectUI.py:2336
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:93
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:48
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:107
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:78
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:58
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:105
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:113
-#: flatcamTools/ToolCalculators.py:114 flatcamTools/ToolCutOut.py:138
-#: flatcamTools/ToolNCC.py:260 flatcamTools/ToolNCC.py:268
-#: flatcamTools/ToolPaint.py:243
-msgid "Cut Z"
-msgstr "Cut Z"
-
-#: FlatCAMDB.py:165 FlatCAMDB.py:848 FlatCAMDB.py:1143
-msgid "MultiDepth"
-msgstr "MultiDepth"
-
-#: FlatCAMDB.py:166 FlatCAMDB.py:850 FlatCAMDB.py:1156
-msgid "DPP"
-msgstr "DPP"
-
-#: FlatCAMDB.py:167 FlatCAMDB.py:852 FlatCAMDB.py:1312
-msgid "V-Dia"
-msgstr "V-Dia"
-
-#: FlatCAMDB.py:168 FlatCAMDB.py:854 FlatCAMDB.py:1326
-msgid "V-Angle"
-msgstr "V-Angle"
-
-#: FlatCAMDB.py:169 FlatCAMDB.py:856 FlatCAMDB.py:1170
-#: flatcamGUI/ObjectUI.py:946 flatcamGUI/ObjectUI.py:1750
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:134
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:101
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:61
-#: flatcamObjects/FlatCAMExcellon.py:1316
-#: flatcamObjects/FlatCAMGeometry.py:1606 flatcamTools/ToolCalibration.py:74
-msgid "Travel Z"
-msgstr "Travel Z"
-
-#: FlatCAMDB.py:170 FlatCAMDB.py:858
-msgid "FR"
-msgstr "FR"
-
-#: FlatCAMDB.py:171 FlatCAMDB.py:860
-msgid "FR Z"
-msgstr "FR Z"
-
-#: FlatCAMDB.py:172 FlatCAMDB.py:862 FlatCAMDB.py:1340
-msgid "FR Rapids"
-msgstr "FR Rapids"
-
-#: FlatCAMDB.py:173 FlatCAMDB.py:864 FlatCAMDB.py:1213
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:222
-msgid "Spindle Speed"
-msgstr "Spindle Speed"
-
-#: FlatCAMDB.py:174 FlatCAMDB.py:866 FlatCAMDB.py:1228
-#: flatcamGUI/ObjectUI.py:1064 flatcamGUI/ObjectUI.py:1857
-msgid "Dwell"
-msgstr "Dwell"
-
-#: FlatCAMDB.py:175 FlatCAMDB.py:868 FlatCAMDB.py:1241
-msgid "Dwelltime"
-msgstr "Dwelltime"
-
-#: FlatCAMDB.py:176 FlatCAMDB.py:870 flatcamGUI/ObjectUI.py:2014
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:257
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:254
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:237
-#: flatcamTools/ToolSolderPaste.py:335
-msgid "Preprocessor"
-msgstr "Preprocessor"
-
-#: FlatCAMDB.py:177 FlatCAMDB.py:872 FlatCAMDB.py:1356
-msgid "ExtraCut"
-msgstr "ExtraCut"
-
-#: FlatCAMDB.py:178 FlatCAMDB.py:874 FlatCAMDB.py:1371
-msgid "E-Cut Length"
-msgstr "E-Cut Length"
-
-#: FlatCAMDB.py:179 FlatCAMDB.py:876
-msgid "Toolchange"
-msgstr "Toolchange"
-
-#: FlatCAMDB.py:180 FlatCAMDB.py:878
-msgid "Toolchange XY"
-msgstr "Toolchange XY"
-
-#: FlatCAMDB.py:181 FlatCAMDB.py:880
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:160
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:131
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:98
-#: flatcamTools/ToolCalibration.py:111
-msgid "Toolchange Z"
-msgstr "Toolchange Z"
-
-#: FlatCAMDB.py:182 FlatCAMDB.py:882 flatcamGUI/ObjectUI.py:1193
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:69
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:54
-msgid "Start Z"
-msgstr "Start Z"
-
-#: FlatCAMDB.py:183 FlatCAMDB.py:885
-msgid "End Z"
-msgstr "End Z"
-
-#: FlatCAMDB.py:187
-msgid "Tool Index."
-msgstr "Tool Index."
-
-#: FlatCAMDB.py:189 FlatCAMDB.py:1089
-msgid ""
-"Tool name.\n"
-"This is not used in the app, it's function\n"
-"is to serve as a note for the user."
-msgstr ""
-"Tool name.\n"
-"This is not used in the app, it's function\n"
-"is to serve as a note for the user."
-
-#: FlatCAMDB.py:193 FlatCAMDB.py:1102
-msgid "Tool Diameter."
-msgstr "Tool Diameter."
-
-#: FlatCAMDB.py:195 FlatCAMDB.py:1283
-msgid ""
-"Tool Offset.\n"
-"Can be of a few types:\n"
-"Path = zero offset\n"
-"In = offset inside by half of tool diameter\n"
-"Out = offset outside by half of tool diameter\n"
-"Custom = custom offset using the Custom Offset value"
-msgstr ""
-"Tool Offset.\n"
-"Can be of a few types:\n"
-"Path = zero offset\n"
-"In = offset inside by half of tool diameter\n"
-"Out = offset outside by half of tool diameter\n"
-"Custom = custom offset using the Custom Offset value"
-
-#: FlatCAMDB.py:202 FlatCAMDB.py:1300
-msgid ""
-"Custom Offset.\n"
-"A value to be used as offset from the current path."
-msgstr ""
-"Custom Offset.\n"
-"A value to be used as offset from the current path."
-
-#: FlatCAMDB.py:205 FlatCAMDB.py:1267
-msgid ""
-"Tool Type.\n"
-"Can be:\n"
-"Iso = isolation cut\n"
-"Rough = rough cut, low feedrate, multiple passes\n"
-"Finish = finishing cut, high feedrate"
-msgstr ""
-"Tool Type.\n"
-"Can be:\n"
-"Iso = isolation cut\n"
-"Rough = rough cut, low feedrate, multiple passes\n"
-"Finish = finishing cut, high feedrate"
-
-#: FlatCAMDB.py:211 FlatCAMDB.py:1115
-msgid ""
-"Tool Shape. \n"
-"Can be:\n"
-"C1 ... C4 = circular tool with x flutes\n"
-"B = ball tip milling tool\n"
-"V = v-shape milling tool"
-msgstr ""
-"Tool Shape. \n"
-"Can be:\n"
-"C1 ... C4 = circular tool with x flutes\n"
-"B = ball tip milling tool\n"
-"V = v-shape milling tool"
-
-#: FlatCAMDB.py:217 FlatCAMDB.py:1131
-msgid ""
-"Cutting Depth.\n"
-"The depth at which to cut into material."
-msgstr ""
-"Cutting Depth.\n"
-"The depth at which to cut into material."
-
-#: FlatCAMDB.py:220 FlatCAMDB.py:1145
-msgid ""
-"Multi Depth.\n"
-"Selecting this will allow cutting in multiple passes,\n"
-"each pass adding a DPP parameter depth."
-msgstr ""
-"Multi Depth.\n"
-"Selecting this will allow cutting in multiple passes,\n"
-"each pass adding a DPP parameter depth."
-
-#: FlatCAMDB.py:224 FlatCAMDB.py:1158
-msgid ""
-"DPP. Depth per Pass.\n"
-"The value used to cut into material on each pass."
-msgstr ""
-"DPP. Depth per Pass.\n"
-"The value used to cut into material on each pass."
-
-#: FlatCAMDB.py:227 FlatCAMDB.py:1314
-msgid ""
-"V-Dia.\n"
-"Diameter of the tip for V-Shape Tools."
-msgstr ""
-"V-Dia.\n"
-"Diameter of the tip for V-Shape Tools."
-
-#: FlatCAMDB.py:230 FlatCAMDB.py:1328
-msgid ""
-"V-Agle.\n"
-"Angle at the tip for the V-Shape Tools."
-msgstr ""
-"V-Agle.\n"
-"Angle at the tip for the V-Shape Tools."
-
-#: FlatCAMDB.py:233 FlatCAMDB.py:1172
-msgid ""
-"Clearance Height.\n"
-"Height at which the milling bit will travel between cuts,\n"
-"above the surface of the material, avoiding all fixtures."
-msgstr ""
-"Clearance Height.\n"
-"Height at which the milling bit will travel between cuts,\n"
-"above the surface of the material, avoiding all fixtures."
-
-#: FlatCAMDB.py:237
-msgid ""
-"FR. Feedrate\n"
-"The speed on XY plane used while cutting into material."
-msgstr ""
-"FR. Feedrate\n"
-"The speed on XY plane used while cutting into material."
-
-#: FlatCAMDB.py:240
-msgid ""
-"FR Z. Feedrate Z\n"
-"The speed on Z plane."
-msgstr ""
-"FR Z. Feedrate Z\n"
-"The speed on Z plane."
-
-#: FlatCAMDB.py:243 FlatCAMDB.py:1342
-msgid ""
-"FR Rapids. Feedrate Rapids\n"
-"Speed used while moving as fast as possible.\n"
-"This is used only by some devices that can't use\n"
-"the G0 g-code command. Mostly 3D printers."
-msgstr ""
-"FR Rapids. Feedrate Rapids\n"
-"Speed used while moving as fast as possible.\n"
-"This is used only by some devices that can't use\n"
-"the G0 g-code command. Mostly 3D printers."
-
-#: FlatCAMDB.py:248 FlatCAMDB.py:1215
-msgid ""
-"Spindle Speed.\n"
-"If it's left empty it will not be used.\n"
-"The speed of the spindle in RPM."
-msgstr ""
-"Spindle Speed.\n"
-"If it's left empty it will not be used.\n"
-"The speed of the spindle in RPM."
-
-#: FlatCAMDB.py:252 FlatCAMDB.py:1230
-msgid ""
-"Dwell.\n"
-"Check this if a delay is needed to allow\n"
-"the spindle motor to reach it's set speed."
-msgstr ""
-"Dwell.\n"
-"Check this if a delay is needed to allow\n"
-"the spindle motor to reach it's set speed."
-
-#: FlatCAMDB.py:256 FlatCAMDB.py:1243
-msgid ""
-"Dwell Time.\n"
-"A delay used to allow the motor spindle reach it's set speed."
-msgstr ""
-"Dwell Time.\n"
-"A delay used to allow the motor spindle reach it's set speed."
-
-#: FlatCAMDB.py:259
-msgid ""
-"Preprocessor.\n"
-"A selection of files that will alter the generated G-code\n"
-"to fit for a number of use cases."
-msgstr ""
-"Preprocessor.\n"
-"A selection of files that will alter the generated G-code\n"
-"to fit for a number of use cases."
-
-#: FlatCAMDB.py:263 FlatCAMDB.py:1358
-msgid ""
-"Extra Cut.\n"
-"If checked, after a isolation is finished an extra cut\n"
-"will be added where the start and end of isolation meet\n"
-"such as that this point is covered by this extra cut to\n"
-"ensure a complete isolation."
-msgstr ""
-"Extra Cut.\n"
-"If checked, after a isolation is finished an extra cut\n"
-"will be added where the start and end of isolation meet\n"
-"such as that this point is covered by this extra cut to\n"
-"ensure a complete isolation."
-
-#: FlatCAMDB.py:269 FlatCAMDB.py:1373
-msgid ""
-"Extra Cut length.\n"
-"If checked, after a isolation is finished an extra cut\n"
-"will be added where the start and end of isolation meet\n"
-"such as that this point is covered by this extra cut to\n"
-"ensure a complete isolation. This is the length of\n"
-"the extra cut."
-msgstr ""
-"Extra Cut length.\n"
-"If checked, after a isolation is finished an extra cut\n"
-"will be added where the start and end of isolation meet\n"
-"such as that this point is covered by this extra cut to\n"
-"ensure a complete isolation. This is the length of\n"
-"the extra cut."
-
-#: FlatCAMDB.py:276
-msgid ""
-"Toolchange.\n"
-"It will create a toolchange event.\n"
-"The kind of toolchange is determined by\n"
-"the preprocessor file."
-msgstr ""
-"Toolchange.\n"
-"It will create a toolchange event.\n"
-"The kind of toolchange is determined by\n"
-"the preprocessor file."
-
-#: FlatCAMDB.py:281
-msgid ""
-"Toolchange XY.\n"
-"A set of coordinates in the format (x, y).\n"
-"Will determine the cartesian position of the point\n"
-"where the tool change event take place."
-msgstr ""
-"Toolchange XY.\n"
-"A set of coordinates in the format (x, y).\n"
-"Will determine the cartesian position of the point\n"
-"where the tool change event take place."
-
-#: FlatCAMDB.py:286
-msgid ""
-"Toolchange Z.\n"
-"The position on Z plane where the tool change event take place."
-msgstr ""
-"Toolchange Z.\n"
-"The position on Z plane where the tool change event take place."
-
-#: FlatCAMDB.py:289
-msgid ""
-"Start Z.\n"
-"If it's left empty it will not be used.\n"
-"A position on Z plane to move immediately after job start."
-msgstr ""
-"Start Z.\n"
-"If it's left empty it will not be used.\n"
-"A position on Z plane to move immediately after job start."
-
-#: FlatCAMDB.py:293
-msgid ""
-"End Z.\n"
-"A position on Z plane to move immediately after job stop."
-msgstr ""
-"End Z.\n"
-"A position on Z plane to move immediately after job stop."
-
-#: FlatCAMDB.py:305 FlatCAMDB.py:682 FlatCAMDB.py:716 FlatCAMDB.py:1898
-#: FlatCAMDB.py:2144 FlatCAMDB.py:2178
-msgid "Could not load Tools DB file."
-msgstr "Could not load Tools DB file."
-
-#: FlatCAMDB.py:313 FlatCAMDB.py:724 FlatCAMDB.py:1906 FlatCAMDB.py:2186
-msgid "Failed to parse Tools DB file."
-msgstr "Failed to parse Tools DB file."
-
-#: FlatCAMDB.py:316 FlatCAMDB.py:727 FlatCAMDB.py:1909 FlatCAMDB.py:2189
-msgid "Loaded FlatCAM Tools DB from"
-msgstr "Loaded FlatCAM Tools DB from"
-
-#: FlatCAMDB.py:322 FlatCAMDB.py:1823
-msgid "Add to DB"
-msgstr "Add to DB"
-
-#: FlatCAMDB.py:324 FlatCAMDB.py:1826
-msgid "Copy from DB"
-msgstr "Copy from DB"
-
-#: FlatCAMDB.py:326 FlatCAMDB.py:1829
-msgid "Delete from DB"
-msgstr "Delete from DB"
-
-#: FlatCAMDB.py:603 FlatCAMDB.py:2044
-msgid "Tool added to DB."
-msgstr "Tool added to DB."
-
-#: FlatCAMDB.py:624 FlatCAMDB.py:2077
-msgid "Tool copied from Tools DB."
-msgstr "Tool copied from Tools DB."
-
-#: FlatCAMDB.py:642 FlatCAMDB.py:2104
-msgid "Tool removed from Tools DB."
-msgstr "Tool removed from Tools DB."
-
-#: FlatCAMDB.py:653 FlatCAMDB.py:2115
-msgid "Export Tools Database"
-msgstr "Export Tools Database"
-
-#: FlatCAMDB.py:656 FlatCAMDB.py:2118
-msgid "Tools_Database"
-msgstr "Tools_Database"
-
-#: FlatCAMDB.py:693 FlatCAMDB.py:696 FlatCAMDB.py:748 FlatCAMDB.py:2155
-#: FlatCAMDB.py:2158 FlatCAMDB.py:2211
-msgid "Failed to write Tools DB to file."
-msgstr "Failed to write Tools DB to file."
-
-#: FlatCAMDB.py:699 FlatCAMDB.py:2161
-msgid "Exported Tools DB to"
-msgstr "Exported Tools DB to"
-
-#: FlatCAMDB.py:706 FlatCAMDB.py:2168
-msgid "Import FlatCAM Tools DB"
-msgstr "Import FlatCAM Tools DB"
-
-#: FlatCAMDB.py:752 FlatCAMDB.py:2215
-msgid "Saved Tools DB."
-msgstr "Saved Tools DB."
-
-#: FlatCAMDB.py:899 FlatCAMDB.py:2405
-msgid "No Tool/row selected in the Tools Database table"
-msgstr "No Tool/row selected in the Tools Database table"
-
-#: FlatCAMDB.py:917 FlatCAMDB.py:2422
-msgid "Cancelled adding tool from DB."
-msgstr "Cancelled adding tool from DB."
-
-#: FlatCAMDB.py:1018
-msgid "Basic Geo Parameters"
-msgstr "Basic Geo Parameters"
-
-#: FlatCAMDB.py:1030
-msgid "Advanced Geo Parameters"
-msgstr "Advanced Geo Parameters"
-
-#: FlatCAMDB.py:1042
-msgid "NCC Parameters"
-msgstr "NCC Parameters"
-
-#: FlatCAMDB.py:1054
-msgid "Paint Parameters"
-msgstr "Paint Parameters"
-
-#: FlatCAMDB.py:1185 flatcamGUI/ObjectUI.py:967 flatcamGUI/ObjectUI.py:1769
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:185
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:148
-#: flatcamTools/ToolSolderPaste.py:253
-msgid "Feedrate X-Y"
-msgstr "Feedrate X-Y"
-
-#: FlatCAMDB.py:1187
-msgid ""
-"Feedrate X-Y. Feedrate\n"
-"The speed on XY plane used while cutting into material."
-msgstr ""
-"Feedrate X-Y. Feedrate\n"
-"The speed on XY plane used while cutting into material."
-
-#: FlatCAMDB.py:1199 flatcamGUI/ObjectUI.py:982 flatcamGUI/ObjectUI.py:1783
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:207
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:200
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:161
-#: flatcamTools/ToolSolderPaste.py:265
-msgid "Feedrate Z"
-msgstr "Feedrate Z"
-
-#: FlatCAMDB.py:1201
-msgid ""
-"Feedrate Z\n"
-"The speed on Z plane."
-msgstr ""
-"Feedrate Z\n"
-"The speed on Z plane."
-
-#: FlatCAMDB.py:1399 flatcamGUI/ObjectUI.py:845
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:46
-#: flatcamTools/ToolNCC.py:341
-msgid "Operation"
-msgstr "Operation"
-
-#: FlatCAMDB.py:1401 flatcamTools/ToolNCC.py:343
-msgid ""
-"The 'Operation' can be:\n"
-"- Isolation -> will ensure that the non-copper clearing is always complete.\n"
-"If it's not successful then the non-copper clearing will fail, too.\n"
-"- Clear -> the regular non-copper clearing."
-msgstr ""
-"The 'Operation' can be:\n"
-"- Isolation -> will ensure that the non-copper clearing is always complete.\n"
-"If it's not successful then the non-copper clearing will fail, too.\n"
-"- Clear -> the regular non-copper clearing."
-
-#: FlatCAMDB.py:1408 flatcamEditors/FlatCAMGrbEditor.py:2742
-#: flatcamGUI/GUIElements.py:2577 flatcamTools/ToolNCC.py:350
-msgid "Clear"
-msgstr "Clear"
-
-#: FlatCAMDB.py:1409 flatcamTools/ToolNCC.py:351 flatcamTools/ToolNCC.py:1623
-msgid "Isolation"
-msgstr "Isolation"
-
-#: FlatCAMDB.py:1417 flatcamGUI/ObjectUI.py:409 flatcamGUI/ObjectUI.py:867
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:62
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:56
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:95
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:137
-#: flatcamTools/ToolNCC.py:359
-msgid "Milling Type"
-msgstr "Milling Type"
-
-#: FlatCAMDB.py:1419 FlatCAMDB.py:1427
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:139
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:147
-#: flatcamTools/ToolNCC.py:361 flatcamTools/ToolNCC.py:369
-msgid ""
-"Milling type when the selected tool is of type: 'iso_op':\n"
-"- climb / best for precision milling and to reduce tool usage\n"
-"- conventional / useful when there is no backlash compensation"
-msgstr ""
-"Milling type when the selected tool is of type: 'iso_op':\n"
-"- climb / best for precision milling and to reduce tool usage\n"
-"- conventional / useful when there is no backlash compensation"
-
-#: FlatCAMDB.py:1424 flatcamGUI/ObjectUI.py:415
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:62
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:102
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:144
-#: flatcamTools/ToolNCC.py:366
-msgid "Climb"
-msgstr "Climb"
-
-#: FlatCAMDB.py:1425 flatcamGUI/ObjectUI.py:416
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:63
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:103
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:145
-#: flatcamTools/ToolNCC.py:367
-msgid "Conventional"
-msgstr "Conventional"
-
-#: FlatCAMDB.py:1437 FlatCAMDB.py:1546 flatcamEditors/FlatCAMGeoEditor.py:451
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:182
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:163
-#: flatcamTools/ToolNCC.py:382 flatcamTools/ToolPaint.py:329
-msgid "Overlap"
-msgstr "Overlap"
-
-#: FlatCAMDB.py:1439 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:184
-#: flatcamTools/ToolNCC.py:384
-msgid ""
-"How much (percentage) of the tool width to overlap each tool pass.\n"
-"Adjust the value starting with lower values\n"
-"and increasing it if areas that should be cleared are still \n"
-"not cleared.\n"
-"Lower values = faster processing, faster execution on CNC.\n"
-"Higher values = slow processing and slow execution on CNC\n"
-"due of too many paths."
-msgstr ""
-"How much (percentage) of the tool width to overlap each tool pass.\n"
-"Adjust the value starting with lower values\n"
-"and increasing it if areas that should be cleared are still \n"
-"not cleared.\n"
-"Lower values = faster processing, faster execution on CNC.\n"
-"Higher values = slow processing and slow execution on CNC\n"
-"due of too many paths."
-
-#: FlatCAMDB.py:1458 FlatCAMDB.py:1567 flatcamEditors/FlatCAMGeoEditor.py:471
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:72
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:229
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:59
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:45
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:53
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:183
-#: flatcamTools/ToolCopperThieving.py:111
-#: flatcamTools/ToolCopperThieving.py:362 flatcamTools/ToolCutOut.py:190
-#: flatcamTools/ToolFiducials.py:172 flatcamTools/ToolInvertGerber.py:88
-#: flatcamTools/ToolInvertGerber.py:96 flatcamTools/ToolNCC.py:403
-#: flatcamTools/ToolPaint.py:350
-msgid "Margin"
-msgstr "Margin"
-
-#: FlatCAMDB.py:1460
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:74
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:61
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204
-#: flatcamTools/ToolCopperThieving.py:113 flatcamTools/ToolFiducials.py:174
-#: flatcamTools/ToolFiducials.py:237 flatcamTools/ToolNCC.py:405
-msgid "Bounding box margin."
-msgstr "Bounding box margin."
-
-#: FlatCAMDB.py:1471 FlatCAMDB.py:1582 flatcamEditors/FlatCAMGeoEditor.py:485
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:105
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:198
-#: flatcamTools/ToolExtractDrills.py:128 flatcamTools/ToolNCC.py:416
-#: flatcamTools/ToolPaint.py:365 flatcamTools/ToolPunchGerber.py:139
-msgid "Method"
-msgstr "Method"
-
-#: FlatCAMDB.py:1473 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:217
-#: flatcamTools/ToolNCC.py:418
-msgid ""
-"Algorithm for copper clearing:\n"
-"- Standard: Fixed step inwards.\n"
-"- Seed-based: Outwards from seed.\n"
-"- Line-based: Parallel lines."
-msgstr ""
-"Algorithm for copper clearing:\n"
-"- Standard: Fixed step inwards.\n"
-"- Seed-based: Outwards from seed.\n"
-"- Line-based: Parallel lines."
-
-#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 flatcamEditors/FlatCAMGeoEditor.py:499
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
-#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolNCC.py:2395
-#: flatcamTools/ToolNCC.py:2424 flatcamTools/ToolNCC.py:2693
-#: flatcamTools/ToolNCC.py:2725 flatcamTools/ToolPaint.py:390
-#: flatcamTools/ToolPaint.py:1834 tclCommands/TclCommandCopperClear.py:126
-#: tclCommands/TclCommandCopperClear.py:134 tclCommands/TclCommandPaint.py:125
-msgid "Standard"
-msgstr "Standard"
-
-#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 defaults.py:395 defaults.py:427
-#: flatcamEditors/FlatCAMGeoEditor.py:499
-#: flatcamEditors/FlatCAMGeoEditor.py:569
-#: flatcamEditors/FlatCAMGeoEditor.py:5152
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
-#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolNCC.py:2401
-#: flatcamTools/ToolNCC.py:2429 flatcamTools/ToolNCC.py:2699
-#: flatcamTools/ToolNCC.py:2731 flatcamTools/ToolPaint.py:390
-#: flatcamTools/ToolPaint.py:1848 tclCommands/TclCommandCopperClear.py:128
-#: tclCommands/TclCommandCopperClear.py:136 tclCommands/TclCommandPaint.py:127
-msgid "Seed"
-msgstr "Seed"
-
-#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 flatcamEditors/FlatCAMGeoEditor.py:499
-#: flatcamEditors/FlatCAMGeoEditor.py:5156
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
-#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolPaint.py:390
-#: flatcamTools/ToolPaint.py:699 flatcamTools/ToolPaint.py:1862
-#: tclCommands/TclCommandCopperClear.py:130 tclCommands/TclCommandPaint.py:129
-msgid "Lines"
-msgstr "Lines"
-
-#: FlatCAMDB.py:1489 FlatCAMDB.py:1607
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:237
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:224
-#: flatcamTools/ToolNCC.py:439 flatcamTools/ToolPaint.py:401
-msgid "Connect"
-msgstr "Connect"
-
-#: FlatCAMDB.py:1493 FlatCAMDB.py:1610 flatcamEditors/FlatCAMGeoEditor.py:508
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:239
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:226
-#: flatcamTools/ToolNCC.py:443 flatcamTools/ToolPaint.py:404
-msgid ""
-"Draw lines between resulting\n"
-"segments to minimize tool lifts."
-msgstr ""
-"Draw lines between resulting\n"
-"segments to minimize tool lifts."
-
-#: FlatCAMDB.py:1499 FlatCAMDB.py:1614
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:246
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:232
-#: flatcamTools/ToolNCC.py:449 flatcamTools/ToolPaint.py:408
-msgid "Contour"
-msgstr "Contour"
-
-#: FlatCAMDB.py:1503 FlatCAMDB.py:1617 flatcamEditors/FlatCAMGeoEditor.py:518
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:248
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:234
-#: flatcamTools/ToolNCC.py:453 flatcamTools/ToolPaint.py:411
-msgid ""
-"Cut around the perimeter of the polygon\n"
-"to trim rough edges."
-msgstr ""
-"Cut around the perimeter of the polygon\n"
-"to trim rough edges."
-
-#: FlatCAMDB.py:1509 flatcamEditors/FlatCAMGeoEditor.py:612
-#: flatcamEditors/FlatCAMGrbEditor.py:5311 flatcamGUI/ObjectUI.py:143
-#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:255
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:142
-#: flatcamTools/ToolNCC.py:459 flatcamTools/ToolTransform.py:28
-msgid "Offset"
-msgstr "Offset"
-
-#: FlatCAMDB.py:1513 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:257
-#: flatcamTools/ToolNCC.py:463
-msgid ""
-"If used, it will add an offset to the copper features.\n"
-"The copper clearing will finish to a distance\n"
-"from the copper features.\n"
-"The value can be between 0 and 10 FlatCAM units."
-msgstr ""
-"If used, it will add an offset to the copper features.\n"
-"The copper clearing will finish to a distance\n"
-"from the copper features.\n"
-"The value can be between 0 and 10 FlatCAM units."
-
-#: FlatCAMDB.py:1548 flatcamEditors/FlatCAMGeoEditor.py:453
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:165
-#: flatcamTools/ToolPaint.py:331
-msgid ""
-"How much (percentage) of the tool width to overlap each tool pass.\n"
-"Adjust the value starting with lower values\n"
-"and increasing it if areas that should be painted are still \n"
-"not painted.\n"
-"Lower values = faster processing, faster execution on CNC.\n"
-"Higher values = slow processing and slow execution on CNC\n"
-"due of too many paths."
-msgstr ""
-"How much (percentage) of the tool width to overlap each tool pass.\n"
-"Adjust the value starting with lower values\n"
-"and increasing it if areas that should be painted are still \n"
-"not painted.\n"
-"Lower values = faster processing, faster execution on CNC.\n"
-"Higher values = slow processing and slow execution on CNC\n"
-"due of too many paths."
-
-#: FlatCAMDB.py:1569 flatcamEditors/FlatCAMGeoEditor.py:473
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:185
-#: flatcamTools/ToolPaint.py:352
-msgid ""
-"Distance by which to avoid\n"
-"the edges of the polygon to\n"
-"be painted."
-msgstr ""
-"Distance by which to avoid\n"
-"the edges of the polygon to\n"
-"be painted."
-
-#: FlatCAMDB.py:1584 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:200
-#: flatcamTools/ToolPaint.py:367
-msgid ""
-"Algorithm for painting:\n"
-"- Standard: Fixed step inwards.\n"
-"- Seed-based: Outwards from seed.\n"
-"- Line-based: Parallel lines.\n"
-"- Laser-lines: Active only for Gerber objects.\n"
-"Will create lines that follow the traces.\n"
-"- Combo: In case of failure a new method will be picked from the above\n"
-"in the order specified."
-msgstr ""
-"Algorithm for painting:\n"
-"- Standard: Fixed step inwards.\n"
-"- Seed-based: Outwards from seed.\n"
-"- Line-based: Parallel lines.\n"
-"- Laser-lines: Active only for Gerber objects.\n"
-"Will create lines that follow the traces.\n"
-"- Combo: In case of failure a new method will be picked from the above\n"
-"in the order specified."
-
-#: FlatCAMDB.py:1596 FlatCAMDB.py:1598
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
-#: flatcamTools/ToolPaint.py:390 flatcamTools/ToolPaint.py:392
-#: flatcamTools/ToolPaint.py:693 flatcamTools/ToolPaint.py:698
-#: flatcamTools/ToolPaint.py:1876 tclCommands/TclCommandPaint.py:131
-msgid "Laser_lines"
-msgstr "Laser_lines"
-
-#: FlatCAMDB.py:1596 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
-#: flatcamTools/ToolPaint.py:390 flatcamTools/ToolPaint.py:2027
-#: tclCommands/TclCommandPaint.py:133
-msgid "Combo"
-msgstr "Combo"
-
-#: FlatCAMDB.py:1641
-msgid "Add Tool in DB"
-msgstr "Add Tool in DB"
-
-#: FlatCAMDB.py:1675
-msgid "Save DB"
-msgstr "Save DB"
-
-#: FlatCAMDB.py:1677
-msgid "Save the Tools Database information's."
-msgstr "Save the Tools Database information's."
-
-#: FlatCAMProcess.py:172
+#: AppProcess.py:172
msgid "processes running."
msgstr "processes running."
-#: FlatCAMTool.py:245 FlatCAMTool.py:252 flatcamGUI/ObjectUI.py:157
-#: flatcamGUI/ObjectUI.py:164
-msgid "Edited value is out of range"
-msgstr "Edited value is out of range"
+#: AppTools/ToolAlignObjects.py:32
+msgid "Align Objects"
+msgstr "Align Objects"
-#: FlatCAMTool.py:247 FlatCAMTool.py:254 flatcamGUI/ObjectUI.py:159
-#: flatcamGUI/ObjectUI.py:166
-msgid "Edited value is within limits."
-msgstr "Edited value is within limits."
+#: AppTools/ToolAlignObjects.py:61
+msgid "MOVING object"
+msgstr "MOVING object"
-#: FlatCAMTranslation.py:104
+#: AppTools/ToolAlignObjects.py:65
+msgid ""
+"Specify the type of object to be aligned.\n"
+"It can be of type: Gerber or Excellon.\n"
+"The selection here decide the type of objects that will be\n"
+"in the Object combobox."
+msgstr ""
+"Specify the type of object to be aligned.\n"
+"It can be of type: Gerber or Excellon.\n"
+"The selection here decide the type of objects that will be\n"
+"in the Object combobox."
+
+#: AppTools/ToolAlignObjects.py:86
+msgid "Object to be aligned."
+msgstr "Object to be aligned."
+
+#: AppTools/ToolAlignObjects.py:98
+msgid "TARGET object"
+msgstr "TARGET object"
+
+#: AppTools/ToolAlignObjects.py:100
+msgid ""
+"Specify the type of object to be aligned to.\n"
+"It can be of type: Gerber or Excellon.\n"
+"The selection here decide the type of objects that will be\n"
+"in the Object combobox."
+msgstr ""
+"Specify the type of object to be aligned to.\n"
+"It can be of type: Gerber or Excellon.\n"
+"The selection here decide the type of objects that will be\n"
+"in the Object combobox."
+
+#: AppTools/ToolAlignObjects.py:122
+msgid "Object to be aligned to. Aligner."
+msgstr "Object to be aligned to. Aligner."
+
+#: AppTools/ToolAlignObjects.py:135
+msgid "Alignment Type"
+msgstr "Alignment Type"
+
+#: AppTools/ToolAlignObjects.py:137
+msgid ""
+"The type of alignment can be:\n"
+"- Single Point -> it require a single point of sync, the action will be a "
+"translation\n"
+"- Dual Point -> it require two points of sync, the action will be "
+"translation followed by rotation"
+msgstr ""
+"The type of alignment can be:\n"
+"- Single Point -> it require a single point of sync, the action will be a "
+"translation\n"
+"- Dual Point -> it require two points of sync, the action will be "
+"translation followed by rotation"
+
+#: AppTools/ToolAlignObjects.py:143
+msgid "Single Point"
+msgstr "Single Point"
+
+#: AppTools/ToolAlignObjects.py:144
+msgid "Dual Point"
+msgstr "Dual Point"
+
+#: AppTools/ToolAlignObjects.py:159
+msgid "Align Object"
+msgstr "Align Object"
+
+#: AppTools/ToolAlignObjects.py:161
+msgid ""
+"Align the specified object to the aligner object.\n"
+"If only one point is used then it assumes translation.\n"
+"If tho points are used it assume translation and rotation."
+msgstr ""
+"Align the specified object to the aligner object.\n"
+"If only one point is used then it assumes translation.\n"
+"If tho points are used it assume translation and rotation."
+
+#: AppTools/ToolAlignObjects.py:176 AppTools/ToolCalculators.py:246
+#: AppTools/ToolCalibration.py:683 AppTools/ToolCopperThieving.py:484
+#: AppTools/ToolCorners.py:173 AppTools/ToolCutOut.py:362
+#: AppTools/ToolDblSided.py:471 AppTools/ToolEtchCompensation.py:136
+#: AppTools/ToolExtractDrills.py:310 AppTools/ToolFiducials.py:318
+#: AppTools/ToolFilm.py:503 AppTools/ToolInvertGerber.py:140
+#: AppTools/ToolNCC.py:612 AppTools/ToolOptimal.py:237
+#: AppTools/ToolPaint.py:555 AppTools/ToolPanelize.py:280
+#: AppTools/ToolPunchGerber.py:339 AppTools/ToolQRCode.py:314
+#: AppTools/ToolRulesCheck.py:516 AppTools/ToolSolderPaste.py:473
+#: AppTools/ToolSub.py:176 AppTools/ToolTransform.py:398
+msgid "Reset Tool"
+msgstr "Reset Tool"
+
+#: AppTools/ToolAlignObjects.py:178 AppTools/ToolCalculators.py:248
+#: AppTools/ToolCalibration.py:685 AppTools/ToolCopperThieving.py:486
+#: AppTools/ToolCorners.py:175 AppTools/ToolCutOut.py:364
+#: AppTools/ToolDblSided.py:473 AppTools/ToolEtchCompensation.py:138
+#: AppTools/ToolExtractDrills.py:312 AppTools/ToolFiducials.py:320
+#: AppTools/ToolFilm.py:505 AppTools/ToolInvertGerber.py:142
+#: AppTools/ToolNCC.py:614 AppTools/ToolOptimal.py:239
+#: AppTools/ToolPaint.py:557 AppTools/ToolPanelize.py:282
+#: AppTools/ToolPunchGerber.py:341 AppTools/ToolQRCode.py:316
+#: AppTools/ToolRulesCheck.py:518 AppTools/ToolSolderPaste.py:475
+#: AppTools/ToolSub.py:178 AppTools/ToolTransform.py:400
+msgid "Will reset the tool parameters."
+msgstr "Will reset the tool parameters."
+
+#: AppTools/ToolAlignObjects.py:244
+msgid "Align Tool"
+msgstr "Align Tool"
+
+#: AppTools/ToolAlignObjects.py:289
+msgid "There is no aligned FlatCAM object selected..."
+msgstr "There is no aligned FlatCAM object selected..."
+
+#: AppTools/ToolAlignObjects.py:299
+msgid "There is no aligner FlatCAM object selected..."
+msgstr "There is no aligner FlatCAM object selected..."
+
+#: AppTools/ToolAlignObjects.py:325 AppTools/ToolAlignObjects.py:385
+msgid "First Point"
+msgstr "First Point"
+
+#: AppTools/ToolAlignObjects.py:325 AppTools/ToolAlignObjects.py:400
+msgid "Click on the START point."
+msgstr "Click on the START point."
+
+#: AppTools/ToolAlignObjects.py:380 AppTools/ToolCalibration.py:920
+msgid "Cancelled by user request."
+msgstr "Cancelled by user request."
+
+#: AppTools/ToolAlignObjects.py:385 AppTools/ToolAlignObjects.py:407
+msgid "Click on the DESTINATION point."
+msgstr "Click on the DESTINATION point."
+
+#: AppTools/ToolAlignObjects.py:385 AppTools/ToolAlignObjects.py:400
+#: AppTools/ToolAlignObjects.py:407
+msgid "Or right click to cancel."
+msgstr "Or right click to cancel."
+
+#: AppTools/ToolAlignObjects.py:400 AppTools/ToolAlignObjects.py:407
+#: AppTools/ToolFiducials.py:111
+msgid "Second Point"
+msgstr "Second Point"
+
+#: AppTools/ToolCalculators.py:24
+msgid "Calculators"
+msgstr "Calculators"
+
+#: AppTools/ToolCalculators.py:26
+msgid "Units Calculator"
+msgstr "Units Calculator"
+
+#: AppTools/ToolCalculators.py:70
+msgid "Here you enter the value to be converted from INCH to MM"
+msgstr "Here you enter the value to be converted from INCH to MM"
+
+#: AppTools/ToolCalculators.py:75
+msgid "Here you enter the value to be converted from MM to INCH"
+msgstr "Here you enter the value to be converted from MM to INCH"
+
+#: AppTools/ToolCalculators.py:111
+msgid ""
+"This is the angle of the tip of the tool.\n"
+"It is specified by manufacturer."
+msgstr ""
+"This is the angle of the tip of the tool.\n"
+"It is specified by manufacturer."
+
+#: AppTools/ToolCalculators.py:120
+msgid ""
+"This is the depth to cut into the material.\n"
+"In the CNCJob is the CutZ parameter."
+msgstr ""
+"This is the depth to cut into the material.\n"
+"In the CNCJob is the CutZ parameter."
+
+#: AppTools/ToolCalculators.py:128
+msgid ""
+"This is the tool diameter to be entered into\n"
+"FlatCAM Gerber section.\n"
+"In the CNCJob section it is called >Tool dia<."
+msgstr ""
+"This is the tool diameter to be entered into\n"
+"FlatCAM Gerber section.\n"
+"In the CNCJob section it is called >Tool dia<."
+
+#: AppTools/ToolCalculators.py:139 AppTools/ToolCalculators.py:235
+msgid "Calculate"
+msgstr "Calculate"
+
+#: AppTools/ToolCalculators.py:142
+msgid ""
+"Calculate either the Cut Z or the effective tool diameter,\n"
+" depending on which is desired and which is known. "
+msgstr ""
+"Calculate either the Cut Z or the effective tool diameter,\n"
+" depending on which is desired and which is known. "
+
+#: AppTools/ToolCalculators.py:205
+msgid "Current Value"
+msgstr "Current Value"
+
+#: AppTools/ToolCalculators.py:212
+msgid ""
+"This is the current intensity value\n"
+"to be set on the Power Supply. In Amps."
+msgstr ""
+"This is the current intensity value\n"
+"to be set on the Power Supply. In Amps."
+
+#: AppTools/ToolCalculators.py:216
+msgid "Time"
+msgstr "Time"
+
+#: AppTools/ToolCalculators.py:223
+msgid ""
+"This is the calculated time required for the procedure.\n"
+"In minutes."
+msgstr ""
+"This is the calculated time required for the procedure.\n"
+"In minutes."
+
+#: AppTools/ToolCalculators.py:238
+msgid ""
+"Calculate the current intensity value and the procedure time,\n"
+"depending on the parameters above"
+msgstr ""
+"Calculate the current intensity value and the procedure time,\n"
+"depending on the parameters above"
+
+#: AppTools/ToolCalculators.py:299
+msgid "Calc. Tool"
+msgstr "Calc. Tool"
+
+#: AppTools/ToolCalibration.py:67
+msgid "GCode Parameters"
+msgstr "GCode Parameters"
+
+#: AppTools/ToolCalibration.py:69
+msgid "Parameters used when creating the GCode in this tool."
+msgstr "Parameters used when creating the GCode in this tool."
+
+#: AppTools/ToolCalibration.py:173
+msgid "STEP 1: Acquire Calibration Points"
+msgstr "STEP 1: Acquire Calibration Points"
+
+#: AppTools/ToolCalibration.py:175
+msgid ""
+"Pick four points by clicking on canvas.\n"
+"Those four points should be in the four\n"
+"(as much as possible) corners of the object."
+msgstr ""
+"Pick four points by clicking on canvas.\n"
+"Those four points should be in the four\n"
+"(as much as possible) corners of the object."
+
+#: AppTools/ToolCalibration.py:193 AppTools/ToolFilm.py:71
+#: AppTools/ToolImage.py:54 AppTools/ToolPanelize.py:77
+#: AppTools/ToolProperties.py:177
+msgid "Object Type"
+msgstr "Object Type"
+
+#: AppTools/ToolCalibration.py:210
+msgid "Source object selection"
+msgstr "Source object selection"
+
+#: AppTools/ToolCalibration.py:212
+msgid "FlatCAM Object to be used as a source for reference points."
+msgstr "FlatCAM Object to be used as a source for reference points."
+
+#: AppTools/ToolCalibration.py:218
+msgid "Calibration Points"
+msgstr "Calibration Points"
+
+#: AppTools/ToolCalibration.py:220
+msgid ""
+"Contain the expected calibration points and the\n"
+"ones measured."
+msgstr ""
+"Contain the expected calibration points and the\n"
+"ones measured."
+
+#: AppTools/ToolCalibration.py:235 AppTools/ToolSub.py:76
+#: AppTools/ToolSub.py:131
+msgid "Target"
+msgstr "Target"
+
+#: AppTools/ToolCalibration.py:236
+msgid "Found Delta"
+msgstr "Found Delta"
+
+#: AppTools/ToolCalibration.py:248
+msgid "Bot Left X"
+msgstr "Bot Left X"
+
+#: AppTools/ToolCalibration.py:257
+msgid "Bot Left Y"
+msgstr "Bot Left Y"
+
+#: AppTools/ToolCalibration.py:275
+msgid "Bot Right X"
+msgstr "Bot Right X"
+
+#: AppTools/ToolCalibration.py:285
+msgid "Bot Right Y"
+msgstr "Bot Right Y"
+
+#: AppTools/ToolCalibration.py:300
+msgid "Top Left X"
+msgstr "Top Left X"
+
+#: AppTools/ToolCalibration.py:309
+msgid "Top Left Y"
+msgstr "Top Left Y"
+
+#: AppTools/ToolCalibration.py:324
+msgid "Top Right X"
+msgstr "Top Right X"
+
+#: AppTools/ToolCalibration.py:334
+msgid "Top Right Y"
+msgstr "Top Right Y"
+
+#: AppTools/ToolCalibration.py:367
+msgid "Get Points"
+msgstr "Get Points"
+
+#: AppTools/ToolCalibration.py:369
+msgid ""
+"Pick four points by clicking on canvas if the source choice\n"
+"is 'free' or inside the object geometry if the source is 'object'.\n"
+"Those four points should be in the four squares of\n"
+"the object."
+msgstr ""
+"Pick four points by clicking on canvas if the source choice\n"
+"is 'free' or inside the object geometry if the source is 'object'.\n"
+"Those four points should be in the four squares of\n"
+"the object."
+
+#: AppTools/ToolCalibration.py:390
+msgid "STEP 2: Verification GCode"
+msgstr "STEP 2: Verification GCode"
+
+#: AppTools/ToolCalibration.py:392 AppTools/ToolCalibration.py:405
+msgid ""
+"Generate GCode file to locate and align the PCB by using\n"
+"the four points acquired above.\n"
+"The points sequence is:\n"
+"- first point -> set the origin\n"
+"- second point -> alignment point. Can be: top-left or bottom-right.\n"
+"- third point -> check point. Can be: top-left or bottom-right.\n"
+"- forth point -> final verification point. Just for evaluation."
+msgstr ""
+"Generate GCode file to locate and align the PCB by using\n"
+"the four points acquired above.\n"
+"The points sequence is:\n"
+"- first point -> set the origin\n"
+"- second point -> alignment point. Can be: top-left or bottom-right.\n"
+"- third point -> check point. Can be: top-left or bottom-right.\n"
+"- forth point -> final verification point. Just for evaluation."
+
+#: AppTools/ToolCalibration.py:403 AppTools/ToolSolderPaste.py:348
+msgid "Generate GCode"
+msgstr "Generate GCode"
+
+#: AppTools/ToolCalibration.py:429
+msgid "STEP 3: Adjustments"
+msgstr "STEP 3: Adjustments"
+
+#: AppTools/ToolCalibration.py:431 AppTools/ToolCalibration.py:440
+msgid ""
+"Calculate Scale and Skew factors based on the differences (delta)\n"
+"found when checking the PCB pattern. The differences must be filled\n"
+"in the fields Found (Delta)."
+msgstr ""
+"Calculate Scale and Skew factors based on the differences (delta)\n"
+"found when checking the PCB pattern. The differences must be filled\n"
+"in the fields Found (Delta)."
+
+#: AppTools/ToolCalibration.py:438
+msgid "Calculate Factors"
+msgstr "Calculate Factors"
+
+#: AppTools/ToolCalibration.py:460
+msgid "STEP 4: Adjusted GCode"
+msgstr "STEP 4: Adjusted GCode"
+
+#: AppTools/ToolCalibration.py:462
+msgid ""
+"Generate verification GCode file adjusted with\n"
+"the factors above."
+msgstr ""
+"Generate verification GCode file adjusted with\n"
+"the factors above."
+
+#: AppTools/ToolCalibration.py:467
+msgid "Scale Factor X:"
+msgstr "Scale Factor X:"
+
+#: AppTools/ToolCalibration.py:479
+msgid "Scale Factor Y:"
+msgstr "Scale Factor Y:"
+
+#: AppTools/ToolCalibration.py:491
+msgid "Apply Scale Factors"
+msgstr "Apply Scale Factors"
+
+#: AppTools/ToolCalibration.py:493
+msgid "Apply Scale factors on the calibration points."
+msgstr "Apply Scale factors on the calibration points."
+
+#: AppTools/ToolCalibration.py:503
+msgid "Skew Angle X:"
+msgstr "Skew Angle X:"
+
+#: AppTools/ToolCalibration.py:516
+msgid "Skew Angle Y:"
+msgstr "Skew Angle Y:"
+
+#: AppTools/ToolCalibration.py:529
+msgid "Apply Skew Factors"
+msgstr "Apply Skew Factors"
+
+#: AppTools/ToolCalibration.py:531
+msgid "Apply Skew factors on the calibration points."
+msgstr "Apply Skew factors on the calibration points."
+
+#: AppTools/ToolCalibration.py:600
+msgid "Generate Adjusted GCode"
+msgstr "Generate Adjusted GCode"
+
+#: AppTools/ToolCalibration.py:602
+msgid ""
+"Generate verification GCode file adjusted with\n"
+"the factors set above.\n"
+"The GCode parameters can be readjusted\n"
+"before clicking this button."
+msgstr ""
+"Generate verification GCode file adjusted with\n"
+"the factors set above.\n"
+"The GCode parameters can be readjusted\n"
+"before clicking this button."
+
+#: AppTools/ToolCalibration.py:623
+msgid "STEP 5: Calibrate FlatCAM Objects"
+msgstr "STEP 5: Calibrate FlatCAM Objects"
+
+#: AppTools/ToolCalibration.py:625
+msgid ""
+"Adjust the FlatCAM objects\n"
+"with the factors determined and verified above."
+msgstr ""
+"Adjust the FlatCAM objects\n"
+"with the factors determined and verified above."
+
+#: AppTools/ToolCalibration.py:637
+msgid "Adjusted object type"
+msgstr "Adjusted object type"
+
+#: AppTools/ToolCalibration.py:638
+msgid "Type of the FlatCAM Object to be adjusted."
+msgstr "Type of the FlatCAM Object to be adjusted."
+
+#: AppTools/ToolCalibration.py:651
+msgid "Adjusted object selection"
+msgstr "Adjusted object selection"
+
+#: AppTools/ToolCalibration.py:653
+msgid "The FlatCAM Object to be adjusted."
+msgstr "The FlatCAM Object to be adjusted."
+
+#: AppTools/ToolCalibration.py:660
+msgid "Calibrate"
+msgstr "Calibrate"
+
+#: AppTools/ToolCalibration.py:662
+msgid ""
+"Adjust (scale and/or skew) the objects\n"
+"with the factors determined above."
+msgstr ""
+"Adjust (scale and/or skew) the objects\n"
+"with the factors determined above."
+
+#: AppTools/ToolCalibration.py:770 AppTools/ToolCalibration.py:771
+msgid "Origin"
+msgstr "Origin"
+
+#: AppTools/ToolCalibration.py:800
+msgid "Tool initialized"
+msgstr "Tool initialized"
+
+#: AppTools/ToolCalibration.py:838
+msgid "There is no source FlatCAM object selected..."
+msgstr "There is no source FlatCAM object selected..."
+
+#: AppTools/ToolCalibration.py:859
+msgid "Get First calibration point. Bottom Left..."
+msgstr "Get First calibration point. Bottom Left..."
+
+#: AppTools/ToolCalibration.py:926
+msgid "Get Second calibration point. Bottom Right (Top Left)..."
+msgstr "Get Second calibration point. Bottom Right (Top Left)..."
+
+#: AppTools/ToolCalibration.py:930
+msgid "Get Third calibration point. Top Left (Bottom Right)..."
+msgstr "Get Third calibration point. Top Left (Bottom Right)..."
+
+#: AppTools/ToolCalibration.py:934
+msgid "Get Forth calibration point. Top Right..."
+msgstr "Get Forth calibration point. Top Right..."
+
+#: AppTools/ToolCalibration.py:938
+msgid "Done. All four points have been acquired."
+msgstr "Done. All four points have been acquired."
+
+#: AppTools/ToolCalibration.py:969
+msgid "Verification GCode for FlatCAM Calibration Tool"
+msgstr "Verification GCode for FlatCAM Calibration Tool"
+
+#: AppTools/ToolCalibration.py:981 AppTools/ToolCalibration.py:1067
+msgid "Gcode Viewer"
+msgstr "Gcode Viewer"
+
+#: AppTools/ToolCalibration.py:997
+msgid "Cancelled. Four points are needed for GCode generation."
+msgstr "Cancelled. Four points are needed for GCode generation."
+
+#: AppTools/ToolCalibration.py:1253 AppTools/ToolCalibration.py:1349
+msgid "There is no FlatCAM object selected..."
+msgstr "There is no FlatCAM object selected..."
+
+#: AppTools/ToolCopperThieving.py:76 AppTools/ToolFiducials.py:261
+msgid "Gerber Object to which will be added a copper thieving."
+msgstr "Gerber Object to which will be added a copper thieving."
+
+#: AppTools/ToolCopperThieving.py:98
+msgid ""
+"This set the distance between the copper thieving components\n"
+"(the polygon fill may be split in multiple polygons)\n"
+"and the copper traces in the Gerber file."
+msgstr ""
+"This set the distance between the copper thieving components\n"
+"(the polygon fill may be split in multiple polygons)\n"
+"and the copper traces in the Gerber file."
+
+#: AppTools/ToolCopperThieving.py:131
+msgid ""
+"- 'Itself' - the copper thieving extent is based on the object extent.\n"
+"- 'Area Selection' - left mouse click to start selection of the area to be "
+"filled.\n"
+"- 'Reference Object' - will do copper thieving within the area specified by "
+"another object."
+msgstr ""
+"- 'Itself' - the copper thieving extent is based on the object extent.\n"
+"- 'Area Selection' - left mouse click to start selection of the area to be "
+"filled.\n"
+"- 'Reference Object' - will do copper thieving within the area specified by "
+"another object."
+
+#: AppTools/ToolCopperThieving.py:138 AppTools/ToolNCC.py:552
+#: AppTools/ToolPaint.py:495
+msgid "Ref. Type"
+msgstr "Ref. Type"
+
+#: AppTools/ToolCopperThieving.py:140
+msgid ""
+"The type of FlatCAM object to be used as copper thieving reference.\n"
+"It can be Gerber, Excellon or Geometry."
+msgstr ""
+"The type of FlatCAM object to be used as copper thieving reference.\n"
+"It can be Gerber, Excellon or Geometry."
+
+#: AppTools/ToolCopperThieving.py:149 AppTools/ToolNCC.py:562
+#: AppTools/ToolPaint.py:505
+msgid "Ref. Object"
+msgstr "Ref. Object"
+
+#: AppTools/ToolCopperThieving.py:151 AppTools/ToolNCC.py:564
+#: AppTools/ToolPaint.py:507
+msgid "The FlatCAM object to be used as non copper clearing reference."
+msgstr "The FlatCAM object to be used as non copper clearing reference."
+
+#: AppTools/ToolCopperThieving.py:327
+msgid "Insert Copper thieving"
+msgstr "Insert Copper thieving"
+
+#: AppTools/ToolCopperThieving.py:329
+msgid ""
+"Will add a polygon (may be split in multiple parts)\n"
+"that will surround the actual Gerber traces at a certain distance."
+msgstr ""
+"Will add a polygon (may be split in multiple parts)\n"
+"that will surround the actual Gerber traces at a certain distance."
+
+#: AppTools/ToolCopperThieving.py:388
+msgid "Insert Robber Bar"
+msgstr "Insert Robber Bar"
+
+#: AppTools/ToolCopperThieving.py:390
+msgid ""
+"Will add a polygon with a defined thickness\n"
+"that will surround the actual Gerber object\n"
+"at a certain distance.\n"
+"Required when doing holes pattern plating."
+msgstr ""
+"Will add a polygon with a defined thickness\n"
+"that will surround the actual Gerber object\n"
+"at a certain distance.\n"
+"Required when doing holes pattern plating."
+
+#: AppTools/ToolCopperThieving.py:414
+msgid "Select Soldermask object"
+msgstr "Select Soldermask object"
+
+#: AppTools/ToolCopperThieving.py:416
+msgid ""
+"Gerber Object with the soldermask.\n"
+"It will be used as a base for\n"
+"the pattern plating mask."
+msgstr ""
+"Gerber Object with the soldermask.\n"
+"It will be used as a base for\n"
+"the pattern plating mask."
+
+#: AppTools/ToolCopperThieving.py:445
+msgid "Plated area"
+msgstr "Plated area"
+
+#: AppTools/ToolCopperThieving.py:447
+msgid ""
+"The area to be plated by pattern plating.\n"
+"Basically is made from the openings in the plating mask.\n"
+"\n"
+"<> - the calculated area is actually a bit larger\n"
+"due of the fact that the soldermask openings are by design\n"
+"a bit larger than the copper pads, and this area is\n"
+"calculated from the soldermask openings."
+msgstr ""
+"The area to be plated by pattern plating.\n"
+"Basically is made from the openings in the plating mask.\n"
+"\n"
+"<> - the calculated area is actually a bit larger\n"
+"due of the fact that the soldermask openings are by design\n"
+"a bit larger than the copper pads, and this area is\n"
+"calculated from the soldermask openings."
+
+#: AppTools/ToolCopperThieving.py:458
+msgid "mm"
+msgstr "mm"
+
+#: AppTools/ToolCopperThieving.py:460
+msgid "in"
+msgstr "in"
+
+#: AppTools/ToolCopperThieving.py:467
+msgid "Generate pattern plating mask"
+msgstr "Generate pattern plating mask"
+
+#: AppTools/ToolCopperThieving.py:469
+msgid ""
+"Will add to the soldermask gerber geometry\n"
+"the geometries of the copper thieving and/or\n"
+"the robber bar if those were generated."
+msgstr ""
+"Will add to the soldermask gerber geometry\n"
+"the geometries of the copper thieving and/or\n"
+"the robber bar if those were generated."
+
+#: AppTools/ToolCopperThieving.py:625 AppTools/ToolCopperThieving.py:650
+msgid "Lines Grid works only for 'itself' reference ..."
+msgstr "Lines Grid works only for 'itself' reference ..."
+
+#: AppTools/ToolCopperThieving.py:636
+msgid "Solid fill selected."
+msgstr "Solid fill selected."
+
+#: AppTools/ToolCopperThieving.py:641
+msgid "Dots grid fill selected."
+msgstr "Dots grid fill selected."
+
+#: AppTools/ToolCopperThieving.py:646
+msgid "Squares grid fill selected."
+msgstr "Squares grid fill selected."
+
+#: AppTools/ToolCopperThieving.py:667 AppTools/ToolCopperThieving.py:749
+#: AppTools/ToolCopperThieving.py:1351 AppTools/ToolCorners.py:251
+#: AppTools/ToolDblSided.py:657 AppTools/ToolExtractDrills.py:436
+#: AppTools/ToolFiducials.py:467 AppTools/ToolFiducials.py:744
+#: AppTools/ToolOptimal.py:342 AppTools/ToolPunchGerber.py:512
+#: AppTools/ToolQRCode.py:426
+msgid "There is no Gerber object loaded ..."
+msgstr "There is no Gerber object loaded ..."
+
+#: AppTools/ToolCopperThieving.py:680 AppTools/ToolCopperThieving.py:1279
+msgid "Append geometry"
+msgstr "Append geometry"
+
+#: AppTools/ToolCopperThieving.py:724 AppTools/ToolCopperThieving.py:1312
+#: AppTools/ToolCopperThieving.py:1465
+msgid "Append source file"
+msgstr "Append source file"
+
+#: AppTools/ToolCopperThieving.py:732 AppTools/ToolCopperThieving.py:1320
+msgid "Copper Thieving Tool done."
+msgstr "Copper Thieving Tool done."
+
+#: AppTools/ToolCopperThieving.py:759 AppTools/ToolCopperThieving.py:792
+#: AppTools/ToolCutOut.py:519 AppTools/ToolCutOut.py:724
+#: AppTools/ToolEtchCompensation.py:208 AppTools/ToolInvertGerber.py:208
+#: AppTools/ToolNCC.py:1599 AppTools/ToolNCC.py:1641 AppTools/ToolNCC.py:1670
+#: AppTools/ToolPaint.py:1473 AppTools/ToolPanelize.py:423
+#: AppTools/ToolPanelize.py:437 AppTools/ToolSub.py:294 AppTools/ToolSub.py:307
+#: AppTools/ToolSub.py:498 AppTools/ToolSub.py:513
+#: tclCommands/TclCommandCopperClear.py:97 tclCommands/TclCommandPaint.py:99
+msgid "Could not retrieve object"
+msgstr "Could not retrieve object"
+
+#: AppTools/ToolCopperThieving.py:769 AppTools/ToolNCC.py:1649 Common.py:200
+msgid "Click the start point of the area."
+msgstr "Click the start point of the area."
+
+#: AppTools/ToolCopperThieving.py:820
+msgid "Click the end point of the filling area."
+msgstr "Click the end point of the filling area."
+
+#: AppTools/ToolCopperThieving.py:826 AppTools/ToolNCC.py:1711
+#: AppTools/ToolNCC.py:1763 AppTools/ToolPaint.py:1605
+#: AppTools/ToolPaint.py:1656 Common.py:256 Common.py:356
+msgid "Zone added. Click to start adding next zone or right click to finish."
+msgstr "Zone added. Click to start adding next zone or right click to finish."
+
+#: AppTools/ToolCopperThieving.py:948 AppTools/ToolCopperThieving.py:952
+#: AppTools/ToolCopperThieving.py:1013
+msgid "Thieving"
+msgstr "Thieving"
+
+#: AppTools/ToolCopperThieving.py:959
+msgid "Copper Thieving Tool started. Reading parameters."
+msgstr "Copper Thieving Tool started. Reading parameters."
+
+#: AppTools/ToolCopperThieving.py:984
+msgid "Copper Thieving Tool. Preparing isolation polygons."
+msgstr "Copper Thieving Tool. Preparing isolation polygons."
+
+#: AppTools/ToolCopperThieving.py:1029
+msgid "Copper Thieving Tool. Preparing areas to fill with copper."
+msgstr "Copper Thieving Tool. Preparing areas to fill with copper."
+
+#: AppTools/ToolCopperThieving.py:1040 AppTools/ToolOptimal.py:349
+#: AppTools/ToolPanelize.py:810 AppTools/ToolRulesCheck.py:1127
+msgid "Working..."
+msgstr "Working..."
+
+#: AppTools/ToolCopperThieving.py:1067
+msgid "Geometry not supported for bounding box"
+msgstr "Geometry not supported for bounding box"
+
+#: AppTools/ToolCopperThieving.py:1073 AppTools/ToolNCC.py:1942
+#: AppTools/ToolNCC.py:1997 AppTools/ToolNCC.py:3038 AppTools/ToolPaint.py:3385
+msgid "No object available."
+msgstr "No object available."
+
+#: AppTools/ToolCopperThieving.py:1110 AppTools/ToolNCC.py:1967
+#: AppTools/ToolNCC.py:2020 AppTools/ToolNCC.py:3080
+msgid "The reference object type is not supported."
+msgstr "The reference object type is not supported."
+
+#: AppTools/ToolCopperThieving.py:1115
+msgid "Copper Thieving Tool. Appending new geometry and buffering."
+msgstr "Copper Thieving Tool. Appending new geometry and buffering."
+
+#: AppTools/ToolCopperThieving.py:1131
+msgid "Create geometry"
+msgstr "Create geometry"
+
+#: AppTools/ToolCopperThieving.py:1331 AppTools/ToolCopperThieving.py:1335
+msgid "P-Plating Mask"
+msgstr "P-Plating Mask"
+
+#: AppTools/ToolCopperThieving.py:1357
+msgid "Append PP-M geometry"
+msgstr "Append PP-M geometry"
+
+#: AppTools/ToolCopperThieving.py:1483
+msgid "Generating Pattern Plating Mask done."
+msgstr "Generating Pattern Plating Mask done."
+
+#: AppTools/ToolCopperThieving.py:1555
+msgid "Copper Thieving Tool exit."
+msgstr "Copper Thieving Tool exit."
+
+#: AppTools/ToolCorners.py:57
+msgid "The Gerber object that to which will be added corner markers."
+msgstr "The Gerber object that to which will be added corner markers."
+
+#: AppTools/ToolCorners.py:73
+msgid "Locations"
+msgstr "Locations"
+
+#: AppTools/ToolCorners.py:75
+msgid "Locations where to place corner markers."
+msgstr "Locations where to place corner markers."
+
+#: AppTools/ToolCorners.py:92 AppTools/ToolFiducials.py:99
+msgid "Top Right"
+msgstr "Top Right"
+
+#: AppTools/ToolCorners.py:158
+msgid "Add Marker"
+msgstr "Add Marker"
+
+#: AppTools/ToolCorners.py:160
+msgid "Will add corner markers to the selected Gerber file."
+msgstr "Will add corner markers to the selected Gerber file."
+
+#: AppTools/ToolCorners.py:225
+msgid "Corners Tool"
+msgstr "Corners Tool"
+
+#: AppTools/ToolCorners.py:288
+msgid "Please select at least a location"
+msgstr "Please select at least a location"
+
+#: AppTools/ToolCorners.py:423
+msgid "Corners Tool exit."
+msgstr "Corners Tool exit."
+
+#: AppTools/ToolCutOut.py:41
+msgid "Cutout PCB"
+msgstr "Cutout PCB"
+
+#: AppTools/ToolCutOut.py:69 AppTools/ToolPanelize.py:53
+msgid "Source Object"
+msgstr "Source Object"
+
+#: AppTools/ToolCutOut.py:70
+msgid "Object to be cutout"
+msgstr "Object to be cutout"
+
+#: AppTools/ToolCutOut.py:75
+msgid "Kind"
+msgstr "Kind"
+
+#: AppTools/ToolCutOut.py:97
+msgid ""
+"Specify the type of object to be cutout.\n"
+"It can be of type: Gerber or Geometry.\n"
+"What is selected here will dictate the kind\n"
+"of objects that will populate the 'Object' combobox."
+msgstr ""
+"Specify the type of object to be cutout.\n"
+"It can be of type: Gerber or Geometry.\n"
+"What is selected here will dictate the kind\n"
+"of objects that will populate the 'Object' combobox."
+
+#: AppTools/ToolCutOut.py:121
+msgid "Tool Parameters"
+msgstr "Tool Parameters"
+
+#: AppTools/ToolCutOut.py:238
+msgid "A. Automatic Bridge Gaps"
+msgstr "A. Automatic Bridge Gaps"
+
+#: AppTools/ToolCutOut.py:240
+msgid "This section handle creation of automatic bridge gaps."
+msgstr "This section handle creation of automatic bridge gaps."
+
+#: AppTools/ToolCutOut.py:247
+msgid ""
+"Number of gaps used for the Automatic cutout.\n"
+"There can be maximum 8 bridges/gaps.\n"
+"The choices are:\n"
+"- None - no gaps\n"
+"- lr - left + right\n"
+"- tb - top + bottom\n"
+"- 4 - left + right +top + bottom\n"
+"- 2lr - 2*left + 2*right\n"
+"- 2tb - 2*top + 2*bottom\n"
+"- 8 - 2*left + 2*right +2*top + 2*bottom"
+msgstr ""
+"Number of gaps used for the Automatic cutout.\n"
+"There can be maximum 8 bridges/gaps.\n"
+"The choices are:\n"
+"- None - no gaps\n"
+"- lr - left + right\n"
+"- tb - top + bottom\n"
+"- 4 - left + right +top + bottom\n"
+"- 2lr - 2*left + 2*right\n"
+"- 2tb - 2*top + 2*bottom\n"
+"- 8 - 2*left + 2*right +2*top + 2*bottom"
+
+#: AppTools/ToolCutOut.py:269
+msgid "Generate Freeform Geometry"
+msgstr "Generate Freeform Geometry"
+
+#: AppTools/ToolCutOut.py:271
+msgid ""
+"Cutout the selected object.\n"
+"The cutout shape can be of any shape.\n"
+"Useful when the PCB has a non-rectangular shape."
+msgstr ""
+"Cutout the selected object.\n"
+"The cutout shape can be of any shape.\n"
+"Useful when the PCB has a non-rectangular shape."
+
+#: AppTools/ToolCutOut.py:283
+msgid "Generate Rectangular Geometry"
+msgstr "Generate Rectangular Geometry"
+
+#: AppTools/ToolCutOut.py:285
+msgid ""
+"Cutout the selected object.\n"
+"The resulting cutout shape is\n"
+"always a rectangle shape and it will be\n"
+"the bounding box of the Object."
+msgstr ""
+"Cutout the selected object.\n"
+"The resulting cutout shape is\n"
+"always a rectangle shape and it will be\n"
+"the bounding box of the Object."
+
+#: AppTools/ToolCutOut.py:304
+msgid "B. Manual Bridge Gaps"
+msgstr "B. Manual Bridge Gaps"
+
+#: AppTools/ToolCutOut.py:306
+msgid ""
+"This section handle creation of manual bridge gaps.\n"
+"This is done by mouse clicking on the perimeter of the\n"
+"Geometry object that is used as a cutout object. "
+msgstr ""
+"This section handle creation of manual bridge gaps.\n"
+"This is done by mouse clicking on the perimeter of the\n"
+"Geometry object that is used as a cutout object. "
+
+#: AppTools/ToolCutOut.py:321
+msgid "Geometry object used to create the manual cutout."
+msgstr "Geometry object used to create the manual cutout."
+
+#: AppTools/ToolCutOut.py:328
+msgid "Generate Manual Geometry"
+msgstr "Generate Manual Geometry"
+
+#: AppTools/ToolCutOut.py:330
+msgid ""
+"If the object to be cutout is a Gerber\n"
+"first create a Geometry that surrounds it,\n"
+"to be used as the cutout, if one doesn't exist yet.\n"
+"Select the source Gerber file in the top object combobox."
+msgstr ""
+"If the object to be cutout is a Gerber\n"
+"first create a Geometry that surrounds it,\n"
+"to be used as the cutout, if one doesn't exist yet.\n"
+"Select the source Gerber file in the top object combobox."
+
+#: AppTools/ToolCutOut.py:343
+msgid "Manual Add Bridge Gaps"
+msgstr "Manual Add Bridge Gaps"
+
+#: AppTools/ToolCutOut.py:345
+msgid ""
+"Use the left mouse button (LMB) click\n"
+"to create a bridge gap to separate the PCB from\n"
+"the surrounding material.\n"
+"The LMB click has to be done on the perimeter of\n"
+"the Geometry object used as a cutout geometry."
+msgstr ""
+"Use the left mouse button (LMB) click\n"
+"to create a bridge gap to separate the PCB from\n"
+"the surrounding material.\n"
+"The LMB click has to be done on the perimeter of\n"
+"the Geometry object used as a cutout geometry."
+
+#: AppTools/ToolCutOut.py:524
+msgid ""
+"There is no object selected for Cutout.\n"
+"Select one and try again."
+msgstr ""
+"There is no object selected for Cutout.\n"
+"Select one and try again."
+
+#: AppTools/ToolCutOut.py:530 AppTools/ToolCutOut.py:733
+#: AppTools/ToolCutOut.py:914 AppTools/ToolCutOut.py:996
+#: tclCommands/TclCommandGeoCutout.py:184
+msgid "Tool Diameter is zero value. Change it to a positive real number."
+msgstr "Tool Diameter is zero value. Change it to a positive real number."
+
+#: AppTools/ToolCutOut.py:544 AppTools/ToolCutOut.py:748
+msgid "Number of gaps value is missing. Add it and retry."
+msgstr "Number of gaps value is missing. Add it and retry."
+
+#: AppTools/ToolCutOut.py:549 AppTools/ToolCutOut.py:752
+msgid ""
+"Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. "
+"Fill in a correct value and retry. "
+msgstr ""
+"Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. "
+"Fill in a correct value and retry. "
+
+#: AppTools/ToolCutOut.py:554 AppTools/ToolCutOut.py:758
+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 ""
+"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."
+
+#: AppTools/ToolCutOut.py:706 AppTools/ToolCutOut.py:903
+msgid "Any form CutOut operation finished."
+msgstr "Any form CutOut operation finished."
+
+#: AppTools/ToolCutOut.py:728 AppTools/ToolEtchCompensation.py:214
+#: AppTools/ToolInvertGerber.py:214 AppTools/ToolNCC.py:1603
+#: AppTools/ToolPaint.py:1396 AppTools/ToolPanelize.py:428
+#: tclCommands/TclCommandBbox.py:71 tclCommands/TclCommandNregions.py:71
+msgid "Object not found"
+msgstr "Object not found"
+
+#: AppTools/ToolCutOut.py:872
+msgid "Rectangular cutout with negative margin is not possible."
+msgstr "Rectangular cutout with negative margin is not possible."
+
+#: AppTools/ToolCutOut.py:908
+msgid ""
+"Click on the selected geometry object perimeter to create a bridge gap ..."
+msgstr ""
+"Click on the selected geometry object perimeter to create a bridge gap ..."
+
+#: AppTools/ToolCutOut.py:925 AppTools/ToolCutOut.py:951
+msgid "Could not retrieve Geometry object"
+msgstr "Could not retrieve Geometry object"
+
+#: AppTools/ToolCutOut.py:956
+msgid "Geometry object for manual cutout not found"
+msgstr "Geometry object for manual cutout not found"
+
+#: AppTools/ToolCutOut.py:966
+msgid "Added manual Bridge Gap."
+msgstr "Added manual Bridge Gap."
+
+#: AppTools/ToolCutOut.py:978
+msgid "Could not retrieve Gerber object"
+msgstr "Could not retrieve Gerber object"
+
+#: AppTools/ToolCutOut.py:983
+msgid ""
+"There is no Gerber object selected for Cutout.\n"
+"Select one and try again."
+msgstr ""
+"There is no Gerber object selected for Cutout.\n"
+"Select one and try again."
+
+#: AppTools/ToolCutOut.py:989
+msgid ""
+"The selected object has to be of Gerber type.\n"
+"Select a Gerber file and try again."
+msgstr ""
+"The selected object has to be of Gerber type.\n"
+"Select a Gerber file and try again."
+
+#: AppTools/ToolCutOut.py:1024
+msgid "Geometry not supported for cutout"
+msgstr "Geometry not supported for cutout"
+
+#: AppTools/ToolCutOut.py:1099
+msgid "Making manual bridge gap..."
+msgstr "Making manual bridge gap..."
+
+#: AppTools/ToolDblSided.py:26
+msgid "2-Sided PCB"
+msgstr "2-Sided PCB"
+
+#: AppTools/ToolDblSided.py:52
+msgid "Mirror Operation"
+msgstr "Mirror Operation"
+
+#: AppTools/ToolDblSided.py:53
+msgid "Objects to be mirrored"
+msgstr "Objects to be mirrored"
+
+#: AppTools/ToolDblSided.py:65
+msgid "Gerber to be mirrored"
+msgstr "Gerber to be mirrored"
+
+#: AppTools/ToolDblSided.py:69 AppTools/ToolDblSided.py:97
+#: AppTools/ToolDblSided.py:127
+msgid ""
+"Mirrors (flips) the specified object around \n"
+"the specified axis. Does not create a new \n"
+"object, but modifies it."
+msgstr ""
+"Mirrors (flips) the specified object around \n"
+"the specified axis. Does not create a new \n"
+"object, but modifies it."
+
+#: AppTools/ToolDblSided.py:93
+msgid "Excellon Object to be mirrored."
+msgstr "Excellon Object to be mirrored."
+
+#: AppTools/ToolDblSided.py:122
+msgid "Geometry Obj to be mirrored."
+msgstr "Geometry Obj to be mirrored."
+
+#: AppTools/ToolDblSided.py:158
+msgid "Mirror Parameters"
+msgstr "Mirror Parameters"
+
+#: AppTools/ToolDblSided.py:159
+msgid "Parameters for the mirror operation"
+msgstr "Parameters for the mirror operation"
+
+#: AppTools/ToolDblSided.py:164
+msgid "Mirror Axis"
+msgstr "Mirror Axis"
+
+#: AppTools/ToolDblSided.py:175
+msgid ""
+"The coordinates used as reference for the mirror operation.\n"
+"Can be:\n"
+"- Point -> a set of coordinates (x,y) around which the object is mirrored\n"
+"- Box -> a set of coordinates (x, y) obtained from the center of the\n"
+"bounding box of another object selected below"
+msgstr ""
+"The coordinates used as reference for the mirror operation.\n"
+"Can be:\n"
+"- Point -> a set of coordinates (x,y) around which the object is mirrored\n"
+"- Box -> a set of coordinates (x, y) obtained from the center of the\n"
+"bounding box of another object selected below"
+
+#: AppTools/ToolDblSided.py:189
+msgid "Point coordinates"
+msgstr "Point coordinates"
+
+#: AppTools/ToolDblSided.py:194
+msgid ""
+"Add the coordinates in format (x, y) through which the mirroring "
+"axis\n"
+" selected in 'MIRROR AXIS' pass.\n"
+"The (x, y) coordinates are captured by pressing SHIFT key\n"
+"and left mouse button click on canvas or you can enter the coordinates "
+"manually."
+msgstr ""
+"Add the coordinates in format (x, y) through which the mirroring "
+"axis\n"
+" selected in 'MIRROR AXIS' pass.\n"
+"The (x, y) coordinates are captured by pressing SHIFT key\n"
+"and left mouse button click on canvas or you can enter the coordinates "
+"manually."
+
+#: AppTools/ToolDblSided.py:218
+msgid ""
+"It can be of type: Gerber or Excellon or Geometry.\n"
+"The coordinates of the center of the bounding box are used\n"
+"as reference for mirror operation."
+msgstr ""
+"It can be of type: Gerber or Excellon or Geometry.\n"
+"The coordinates of the center of the bounding box are used\n"
+"as reference for mirror operation."
+
+#: AppTools/ToolDblSided.py:252
+msgid "Bounds Values"
+msgstr "Bounds Values"
+
+#: AppTools/ToolDblSided.py:254
+msgid ""
+"Select on canvas the object(s)\n"
+"for which to calculate bounds values."
+msgstr ""
+"Select on canvas the object(s)\n"
+"for which to calculate bounds values."
+
+#: AppTools/ToolDblSided.py:264
+msgid "X min"
+msgstr "X min"
+
+#: AppTools/ToolDblSided.py:266 AppTools/ToolDblSided.py:280
+msgid "Minimum location."
+msgstr "Minimum location."
+
+#: AppTools/ToolDblSided.py:278
+msgid "Y min"
+msgstr "Y min"
+
+#: AppTools/ToolDblSided.py:292
+msgid "X max"
+msgstr "X max"
+
+#: AppTools/ToolDblSided.py:294 AppTools/ToolDblSided.py:308
+msgid "Maximum location."
+msgstr "Maximum location."
+
+#: AppTools/ToolDblSided.py:306
+msgid "Y max"
+msgstr "Y max"
+
+#: AppTools/ToolDblSided.py:317
+msgid "Center point coordinates"
+msgstr "Center point coordinates"
+
+#: AppTools/ToolDblSided.py:319
+msgid "Centroid"
+msgstr "Centroid"
+
+#: AppTools/ToolDblSided.py:321
+msgid ""
+"The center point location for the rectangular\n"
+"bounding shape. Centroid. Format is (x, y)."
+msgstr ""
+"The center point location for the rectangular\n"
+"bounding shape. Centroid. Format is (x, y)."
+
+#: AppTools/ToolDblSided.py:330
+msgid "Calculate Bounds Values"
+msgstr "Calculate Bounds Values"
+
+#: AppTools/ToolDblSided.py:332
+msgid ""
+"Calculate the enveloping rectangular shape coordinates,\n"
+"for the selection of objects.\n"
+"The envelope shape is parallel with the X, Y axis."
+msgstr ""
+"Calculate the enveloping rectangular shape coordinates,\n"
+"for the selection of objects.\n"
+"The envelope shape is parallel with the X, Y axis."
+
+#: AppTools/ToolDblSided.py:352
+msgid "PCB Alignment"
+msgstr "PCB Alignment"
+
+#: AppTools/ToolDblSided.py:354 AppTools/ToolDblSided.py:456
+msgid ""
+"Creates an Excellon Object containing the\n"
+"specified alignment holes and their mirror\n"
+"images."
+msgstr ""
+"Creates an Excellon Object containing the\n"
+"specified alignment holes and their mirror\n"
+"images."
+
+#: AppTools/ToolDblSided.py:361
+msgid "Drill Diameter"
+msgstr "Drill Diameter"
+
+#: AppTools/ToolDblSided.py:390 AppTools/ToolDblSided.py:397
+msgid ""
+"The reference point used to create the second alignment drill\n"
+"from the first alignment drill, by doing mirror.\n"
+"It can be modified in the Mirror Parameters -> Reference section"
+msgstr ""
+"The reference point used to create the second alignment drill\n"
+"from the first alignment drill, by doing mirror.\n"
+"It can be modified in the Mirror Parameters -> Reference section"
+
+#: AppTools/ToolDblSided.py:410
+msgid "Alignment Drill Coordinates"
+msgstr "Alignment Drill Coordinates"
+
+#: AppTools/ToolDblSided.py:412
+msgid ""
+"Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For "
+"each set of (x, y) coordinates\n"
+"entered here, a pair of drills will be created:\n"
+"\n"
+"- one drill at the coordinates from the field\n"
+"- one drill in mirror position over the axis selected above in the 'Align "
+"Axis'."
+msgstr ""
+"Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For "
+"each set of (x, y) coordinates\n"
+"entered here, a pair of drills will be created:\n"
+"\n"
+"- one drill at the coordinates from the field\n"
+"- one drill in mirror position over the axis selected above in the 'Align "
+"Axis'."
+
+#: AppTools/ToolDblSided.py:420
+msgid "Drill coordinates"
+msgstr "Drill coordinates"
+
+#: AppTools/ToolDblSided.py:427
+msgid ""
+"Add alignment drill holes coordinates in the format: (x1, y1), (x2, "
+"y2), ... \n"
+"on one side of the alignment axis.\n"
+"\n"
+"The coordinates set can be obtained:\n"
+"- press SHIFT key and left mouse clicking on canvas. Then click Add.\n"
+"- press SHIFT key and left mouse clicking on canvas. Then Ctrl+V in the "
+"field.\n"
+"- press SHIFT key and left mouse clicking on canvas. Then RMB click in the "
+"field and click Paste.\n"
+"- by entering the coords manually in the format: (x1, y1), (x2, y2), ..."
+msgstr ""
+"Add alignment drill holes coordinates in the format: (x1, y1), (x2, "
+"y2), ... \n"
+"on one side of the alignment axis.\n"
+"\n"
+"The coordinates set can be obtained:\n"
+"- press SHIFT key and left mouse clicking on canvas. Then click Add.\n"
+"- press SHIFT key and left mouse clicking on canvas. Then Ctrl+V in the "
+"field.\n"
+"- press SHIFT key and left mouse clicking on canvas. Then RMB click in the "
+"field and click Paste.\n"
+"- by entering the coords manually in the format: (x1, y1), (x2, y2), ..."
+
+#: AppTools/ToolDblSided.py:442
+msgid "Delete Last"
+msgstr "Delete Last"
+
+#: AppTools/ToolDblSided.py:444
+msgid "Delete the last coordinates tuple in the list."
+msgstr "Delete the last coordinates tuple in the list."
+
+#: AppTools/ToolDblSided.py:454
+msgid "Create Excellon Object"
+msgstr "Create Excellon Object"
+
+#: AppTools/ToolDblSided.py:541
+msgid "2-Sided Tool"
+msgstr "2-Sided Tool"
+
+#: AppTools/ToolDblSided.py:581
+msgid ""
+"'Point' reference is selected and 'Point' coordinates are missing. Add them "
+"and retry."
+msgstr ""
+"'Point' reference is selected and 'Point' coordinates are missing. Add them "
+"and retry."
+
+#: AppTools/ToolDblSided.py:600
+msgid "There is no Box reference object loaded. Load one and retry."
+msgstr "There is no Box reference object loaded. Load one and retry."
+
+#: AppTools/ToolDblSided.py:612
+msgid "No value or wrong format in Drill Dia entry. Add it and retry."
+msgstr "No value or wrong format in Drill Dia entry. Add it and retry."
+
+#: AppTools/ToolDblSided.py:623
+msgid "There are no Alignment Drill Coordinates to use. Add them and retry."
+msgstr "There are no Alignment Drill Coordinates to use. Add them and retry."
+
+#: AppTools/ToolDblSided.py:648
+msgid "Excellon object with alignment drills created..."
+msgstr "Excellon object with alignment drills created..."
+
+#: AppTools/ToolDblSided.py:661 AppTools/ToolDblSided.py:704
+#: AppTools/ToolDblSided.py:748
+msgid "Only Gerber, Excellon and Geometry objects can be mirrored."
+msgstr "Only Gerber, Excellon and Geometry objects can be mirrored."
+
+#: AppTools/ToolDblSided.py:671 AppTools/ToolDblSided.py:715
+msgid ""
+"There are no Point coordinates in the Point field. Add coords and try "
+"again ..."
+msgstr ""
+"There are no Point coordinates in the Point field. Add coords and try "
+"again ..."
+
+#: AppTools/ToolDblSided.py:681 AppTools/ToolDblSided.py:725
+#: AppTools/ToolDblSided.py:762
+msgid "There is no Box object loaded ..."
+msgstr "There is no Box object loaded ..."
+
+#: AppTools/ToolDblSided.py:691 AppTools/ToolDblSided.py:735
+#: AppTools/ToolDblSided.py:772
+msgid "was mirrored"
+msgstr "was mirrored"
+
+#: AppTools/ToolDblSided.py:700 AppTools/ToolPunchGerber.py:533
+msgid "There is no Excellon object loaded ..."
+msgstr "There is no Excellon object loaded ..."
+
+#: AppTools/ToolDblSided.py:744
+msgid "There is no Geometry object loaded ..."
+msgstr "There is no Geometry object loaded ..."
+
+#: AppTools/ToolDblSided.py:818 App_Main.py:4322 App_Main.py:4477
+msgid "Failed. No object(s) selected..."
+msgstr "Failed. No object(s) selected..."
+
+#: AppTools/ToolDistance.py:57 AppTools/ToolDistanceMin.py:50
+msgid "Those are the units in which the distance is measured."
+msgstr "Those are the units in which the distance is measured."
+
+#: AppTools/ToolDistance.py:58 AppTools/ToolDistanceMin.py:51
+msgid "METRIC (mm)"
+msgstr "METRIC (mm)"
+
+#: AppTools/ToolDistance.py:58 AppTools/ToolDistanceMin.py:51
+msgid "INCH (in)"
+msgstr "INCH (in)"
+
+#: AppTools/ToolDistance.py:64
+msgid "Snap to center"
+msgstr "Snap to center"
+
+#: AppTools/ToolDistance.py:66
+msgid ""
+"Mouse cursor will snap to the center of the pad/drill\n"
+"when it is hovering over the geometry of the pad/drill."
+msgstr ""
+"Mouse cursor will snap to the center of the pad/drill\n"
+"when it is hovering over the geometry of the pad/drill."
+
+#: AppTools/ToolDistance.py:76
+msgid "Start Coords"
+msgstr "Start Coords"
+
+#: AppTools/ToolDistance.py:77 AppTools/ToolDistance.py:82
+msgid "This is measuring Start point coordinates."
+msgstr "This is measuring Start point coordinates."
+
+#: AppTools/ToolDistance.py:87
+msgid "Stop Coords"
+msgstr "Stop Coords"
+
+#: AppTools/ToolDistance.py:88 AppTools/ToolDistance.py:93
+msgid "This is the measuring Stop point coordinates."
+msgstr "This is the measuring Stop point coordinates."
+
+#: AppTools/ToolDistance.py:98 AppTools/ToolDistanceMin.py:62
+msgid "Dx"
+msgstr "Dx"
+
+#: AppTools/ToolDistance.py:99 AppTools/ToolDistance.py:104
+#: AppTools/ToolDistanceMin.py:63 AppTools/ToolDistanceMin.py:92
+msgid "This is the distance measured over the X axis."
+msgstr "This is the distance measured over the X axis."
+
+#: AppTools/ToolDistance.py:109 AppTools/ToolDistanceMin.py:65
+msgid "Dy"
+msgstr "Dy"
+
+#: AppTools/ToolDistance.py:110 AppTools/ToolDistance.py:115
+#: AppTools/ToolDistanceMin.py:66 AppTools/ToolDistanceMin.py:97
+msgid "This is the distance measured over the Y axis."
+msgstr "This is the distance measured over the Y axis."
+
+#: AppTools/ToolDistance.py:121 AppTools/ToolDistance.py:126
+#: AppTools/ToolDistanceMin.py:69 AppTools/ToolDistanceMin.py:102
+msgid "This is orientation angle of the measuring line."
+msgstr "This is orientation angle of the measuring line."
+
+#: AppTools/ToolDistance.py:131 AppTools/ToolDistanceMin.py:71
+msgid "DISTANCE"
+msgstr "DISTANCE"
+
+#: AppTools/ToolDistance.py:132 AppTools/ToolDistance.py:137
+msgid "This is the point to point Euclidian distance."
+msgstr "This is the point to point Euclidian distance."
+
+#: AppTools/ToolDistance.py:142 AppTools/ToolDistance.py:339
+#: AppTools/ToolDistanceMin.py:114
+msgid "Measure"
+msgstr "Measure"
+
+#: AppTools/ToolDistance.py:274
+msgid "Working"
+msgstr "Working"
+
+#: AppTools/ToolDistance.py:279
+msgid "MEASURING: Click on the Start point ..."
+msgstr "MEASURING: Click on the Start point ..."
+
+#: AppTools/ToolDistance.py:389
+msgid "Distance Tool finished."
+msgstr "Distance Tool finished."
+
+#: AppTools/ToolDistance.py:461
+msgid "Pads overlapped. Aborting."
+msgstr "Pads overlapped. Aborting."
+
+#: AppTools/ToolDistance.py:489
+msgid "Distance Tool cancelled."
+msgstr "Distance Tool cancelled."
+
+#: AppTools/ToolDistance.py:494
+msgid "MEASURING: Click on the Destination point ..."
+msgstr "MEASURING: Click on the Destination point ..."
+
+#: AppTools/ToolDistance.py:503 AppTools/ToolDistanceMin.py:284
+msgid "MEASURING"
+msgstr "MEASURING"
+
+#: AppTools/ToolDistance.py:504 AppTools/ToolDistanceMin.py:285
+msgid "Result"
+msgstr "Result"
+
+#: AppTools/ToolDistanceMin.py:31 AppTools/ToolDistanceMin.py:143
+msgid "Minimum Distance Tool"
+msgstr "Minimum Distance Tool"
+
+#: AppTools/ToolDistanceMin.py:54
+msgid "First object point"
+msgstr "First object point"
+
+#: AppTools/ToolDistanceMin.py:55 AppTools/ToolDistanceMin.py:80
+msgid ""
+"This is first object point coordinates.\n"
+"This is the start point for measuring distance."
+msgstr ""
+"This is first object point coordinates.\n"
+"This is the start point for measuring distance."
+
+#: AppTools/ToolDistanceMin.py:58
+msgid "Second object point"
+msgstr "Second object point"
+
+#: AppTools/ToolDistanceMin.py:59 AppTools/ToolDistanceMin.py:86
+msgid ""
+"This is second object point coordinates.\n"
+"This is the end point for measuring distance."
+msgstr ""
+"This is second object point coordinates.\n"
+"This is the end point for measuring distance."
+
+#: AppTools/ToolDistanceMin.py:72 AppTools/ToolDistanceMin.py:107
+msgid "This is the point to point Euclidean distance."
+msgstr "This is the point to point Euclidean distance."
+
+#: AppTools/ToolDistanceMin.py:74
+msgid "Half Point"
+msgstr "Half Point"
+
+#: AppTools/ToolDistanceMin.py:75 AppTools/ToolDistanceMin.py:112
+msgid "This is the middle point of the point to point Euclidean distance."
+msgstr "This is the middle point of the point to point Euclidean distance."
+
+#: AppTools/ToolDistanceMin.py:117
+msgid "Jump to Half Point"
+msgstr "Jump to Half Point"
+
+#: AppTools/ToolDistanceMin.py:154
+msgid ""
+"Select two objects and no more, to measure the distance between them ..."
+msgstr ""
+"Select two objects and no more, to measure the distance between them ..."
+
+#: AppTools/ToolDistanceMin.py:195 AppTools/ToolDistanceMin.py:216
+#: AppTools/ToolDistanceMin.py:225 AppTools/ToolDistanceMin.py:246
+msgid "Select two objects and no more. Currently the selection has objects: "
+msgstr "Select two objects and no more. Currently the selection has objects: "
+
+#: AppTools/ToolDistanceMin.py:293
+msgid "Objects intersects or touch at"
+msgstr "Objects intersects or touch at"
+
+#: AppTools/ToolDistanceMin.py:299
+msgid "Jumped to the half point between the two selected objects"
+msgstr "Jumped to the half point between the two selected objects"
+
+#: AppTools/ToolEtchCompensation.py:74 AppTools/ToolInvertGerber.py:74
+msgid "Gerber object that will be inverted."
+msgstr "Gerber object that will be inverted."
+
+#: AppTools/ToolEtchCompensation.py:83 AppTools/ToolInvertGerber.py:83
+msgid "Parameters for this tool"
+msgstr "Parameters for this tool"
+
+#: AppTools/ToolEtchCompensation.py:88
+#| msgid "Thickness"
+msgid "Copper Thickness"
+msgstr "Copper Thickness"
+
+#: AppTools/ToolEtchCompensation.py:90
+#| msgid ""
+#| "How thick the copper growth is intended to be.\n"
+#| "In microns."
+msgid ""
+"The thickness of the copper foil.\n"
+"In microns [um]."
+msgstr ""
+"The thickness of the copper foil.\n"
+"In microns [um]."
+
+#: AppTools/ToolEtchCompensation.py:101
+#| msgid "Location"
+msgid "Ratio"
+msgstr "Ratio"
+
+#: AppTools/ToolEtchCompensation.py:103
+msgid ""
+"The ratio of lateral etch versus depth etch.\n"
+"Can be:\n"
+"- custom -> the user will enter a custom value\n"
+"- preselection -> value which depends on a selection of etchants"
+msgstr ""
+"The ratio of lateral etch versus depth etch.\n"
+"Can be:\n"
+"- custom -> the user will enter a custom value\n"
+"- preselection -> value which depends on a selection of etchants"
+
+#: AppTools/ToolEtchCompensation.py:109
+#| msgid "Selection"
+msgid "PreSelection"
+msgstr "PreSelection"
+
+#: AppTools/ToolEtchCompensation.py:121
+msgid "Compensate"
+msgstr "Compensate"
+
+#: AppTools/ToolEtchCompensation.py:123
+msgid ""
+"Will increase the copper features thickness to compensate the lateral etch."
+msgstr ""
+"Will increase the copper features thickness to compensate the lateral etch."
+
+#: AppTools/ToolEtchCompensation.py:181 AppTools/ToolInvertGerber.py:184
+msgid "Invert Tool"
+msgstr "Invert Tool"
+
+#: AppTools/ToolExtractDrills.py:29 AppTools/ToolExtractDrills.py:295
+msgid "Extract Drills"
+msgstr "Extract Drills"
+
+#: AppTools/ToolExtractDrills.py:62
+msgid "Gerber from which to extract drill holes"
+msgstr "Gerber from which to extract drill holes"
+
+#: AppTools/ToolExtractDrills.py:297
+msgid "Extract drills from a given Gerber file."
+msgstr "Extract drills from a given Gerber file."
+
+#: AppTools/ToolExtractDrills.py:478 AppTools/ToolExtractDrills.py:563
+#: AppTools/ToolExtractDrills.py:648
+msgid "No drills extracted. Try different parameters."
+msgstr "No drills extracted. Try different parameters."
+
+#: AppTools/ToolFiducials.py:56
+msgid "Fiducials Coordinates"
+msgstr "Fiducials Coordinates"
+
+#: AppTools/ToolFiducials.py:58
+msgid ""
+"A table with the fiducial points coordinates,\n"
+"in the format (x, y)."
+msgstr ""
+"A table with the fiducial points coordinates,\n"
+"in the format (x, y)."
+
+#: AppTools/ToolFiducials.py:191
+msgid ""
+"- 'Auto' - automatic placement of fiducials in the corners of the bounding "
+"box.\n"
+" - 'Manual' - manual placement of fiducials."
+msgstr ""
+"- 'Auto' - automatic placement of fiducials in the corners of the bounding "
+"box.\n"
+" - 'Manual' - manual placement of fiducials."
+
+#: AppTools/ToolFiducials.py:237
+msgid "Thickness of the line that makes the fiducial."
+msgstr "Thickness of the line that makes the fiducial."
+
+#: AppTools/ToolFiducials.py:259
+msgid "Copper Gerber"
+msgstr "Copper Gerber"
+
+#: AppTools/ToolFiducials.py:268
+msgid "Add Fiducial"
+msgstr "Add Fiducial"
+
+#: AppTools/ToolFiducials.py:270
+msgid "Will add a polygon on the copper layer to serve as fiducial."
+msgstr "Will add a polygon on the copper layer to serve as fiducial."
+
+#: AppTools/ToolFiducials.py:286
+msgid "Soldermask Gerber"
+msgstr "Soldermask Gerber"
+
+#: AppTools/ToolFiducials.py:288
+msgid "The Soldermask Gerber object."
+msgstr "The Soldermask Gerber object."
+
+#: AppTools/ToolFiducials.py:300
+msgid "Add Soldermask Opening"
+msgstr "Add Soldermask Opening"
+
+#: AppTools/ToolFiducials.py:302
+msgid ""
+"Will add a polygon on the soldermask layer\n"
+"to serve as fiducial opening.\n"
+"The diameter is always double of the diameter\n"
+"for the copper fiducial."
+msgstr ""
+"Will add a polygon on the soldermask layer\n"
+"to serve as fiducial opening.\n"
+"The diameter is always double of the diameter\n"
+"for the copper fiducial."
+
+#: AppTools/ToolFiducials.py:517
+msgid "Click to add first Fiducial. Bottom Left..."
+msgstr "Click to add first Fiducial. Bottom Left..."
+
+#: AppTools/ToolFiducials.py:781
+msgid "Click to add the last fiducial. Top Right..."
+msgstr "Click to add the last fiducial. Top Right..."
+
+#: AppTools/ToolFiducials.py:786
+msgid "Click to add the second fiducial. Top Left or Bottom Right..."
+msgstr "Click to add the second fiducial. Top Left or Bottom Right..."
+
+#: AppTools/ToolFiducials.py:789 AppTools/ToolFiducials.py:798
+msgid "Done. All fiducials have been added."
+msgstr "Done. All fiducials have been added."
+
+#: AppTools/ToolFiducials.py:875
+msgid "Fiducials Tool exit."
+msgstr "Fiducials Tool exit."
+
+#: AppTools/ToolFilm.py:42
+msgid "Film PCB"
+msgstr "Film PCB"
+
+#: AppTools/ToolFilm.py:73
+msgid ""
+"Specify the type of object for which to create the film.\n"
+"The object can be of type: Gerber or Geometry.\n"
+"The selection here decide the type of objects that will be\n"
+"in the Film Object combobox."
+msgstr ""
+"Specify the type of object for which to create the film.\n"
+"The object can be of type: Gerber or Geometry.\n"
+"The selection here decide the type of objects that will be\n"
+"in the Film Object combobox."
+
+#: AppTools/ToolFilm.py:96
+msgid ""
+"Specify the type of object to be used as an container for\n"
+"film creation. It can be: Gerber or Geometry type.The selection here decide "
+"the type of objects that will be\n"
+"in the Box Object combobox."
+msgstr ""
+"Specify the type of object to be used as an container for\n"
+"film creation. It can be: Gerber or Geometry type.The selection here decide "
+"the type of objects that will be\n"
+"in the Box Object combobox."
+
+#: AppTools/ToolFilm.py:256
+msgid "Film Parameters"
+msgstr "Film Parameters"
+
+#: AppTools/ToolFilm.py:317
+msgid "Punch drill holes"
+msgstr "Punch drill holes"
+
+#: AppTools/ToolFilm.py:318
+msgid ""
+"When checked the generated film will have holes in pads when\n"
+"the generated film is positive. This is done to help drilling,\n"
+"when done manually."
+msgstr ""
+"When checked the generated film will have holes in pads when\n"
+"the generated film is positive. This is done to help drilling,\n"
+"when done manually."
+
+#: AppTools/ToolFilm.py:336
+msgid "Source"
+msgstr "Source"
+
+#: AppTools/ToolFilm.py:338
+msgid ""
+"The punch hole source can be:\n"
+"- Excellon -> an Excellon holes center will serve as reference.\n"
+"- Pad Center -> will try to use the pads center as reference."
+msgstr ""
+"The punch hole source can be:\n"
+"- Excellon -> an Excellon holes center will serve as reference.\n"
+"- Pad Center -> will try to use the pads center as reference."
+
+#: AppTools/ToolFilm.py:343
+msgid "Pad center"
+msgstr "Pad center"
+
+#: AppTools/ToolFilm.py:348
+msgid "Excellon Obj"
+msgstr "Excellon Obj"
+
+#: AppTools/ToolFilm.py:350
+msgid ""
+"Remove the geometry of Excellon from the Film to create the holes in pads."
+msgstr ""
+"Remove the geometry of Excellon from the Film to create the holes in pads."
+
+#: AppTools/ToolFilm.py:364
+msgid "Punch Size"
+msgstr "Punch Size"
+
+#: AppTools/ToolFilm.py:365
+msgid "The value here will control how big is the punch hole in the pads."
+msgstr "The value here will control how big is the punch hole in the pads."
+
+#: AppTools/ToolFilm.py:485
+msgid "Save Film"
+msgstr "Save Film"
+
+#: AppTools/ToolFilm.py:487
+msgid ""
+"Create a Film for the selected object, within\n"
+"the specified box. Does not create a new \n"
+" FlatCAM object, but directly save it in the\n"
+"selected format."
+msgstr ""
+"Create a Film for the selected object, within\n"
+"the specified box. Does not create a new \n"
+" FlatCAM object, but directly save it in the\n"
+"selected format."
+
+#: AppTools/ToolFilm.py:649
+msgid ""
+"Using the Pad center does not work on Geometry objects. Only a Gerber object "
+"has pads."
+msgstr ""
+"Using the Pad center does not work on Geometry objects. Only a Gerber object "
+"has pads."
+
+#: AppTools/ToolFilm.py:659
+msgid "No FlatCAM object selected. Load an object for Film and retry."
+msgstr "No FlatCAM object selected. Load an object for Film and retry."
+
+#: AppTools/ToolFilm.py:666
+msgid "No FlatCAM object selected. Load an object for Box and retry."
+msgstr "No FlatCAM object selected. Load an object for Box and retry."
+
+#: AppTools/ToolFilm.py:670
+msgid "No FlatCAM object selected."
+msgstr "No FlatCAM object selected."
+
+#: AppTools/ToolFilm.py:681
+msgid "Generating Film ..."
+msgstr "Generating Film ..."
+
+#: AppTools/ToolFilm.py:730 AppTools/ToolFilm.py:734
+msgid "Export positive film"
+msgstr "Export positive film"
+
+#: AppTools/ToolFilm.py:767
+msgid ""
+"No Excellon object selected. Load an object for punching reference and retry."
+msgstr ""
+"No Excellon object selected. Load an object for punching reference and retry."
+
+#: AppTools/ToolFilm.py:791
+msgid ""
+" Could not generate punched hole film because the punch hole sizeis bigger "
+"than some of the apertures in the Gerber object."
+msgstr ""
+" Could not generate punched hole film because the punch hole sizeis bigger "
+"than some of the apertures in the Gerber object."
+
+#: AppTools/ToolFilm.py:803
+msgid ""
+"Could not generate punched hole film because the punch hole sizeis bigger "
+"than some of the apertures in the Gerber object."
+msgstr ""
+"Could not generate punched hole film because the punch hole sizeis bigger "
+"than some of the apertures in the Gerber object."
+
+#: AppTools/ToolFilm.py:821
+msgid ""
+"Could not generate punched hole film because the newly created object "
+"geometry is the same as the one in the source object geometry..."
+msgstr ""
+"Could not generate punched hole film because the newly created object "
+"geometry is the same as the one in the source object geometry..."
+
+#: AppTools/ToolFilm.py:876 AppTools/ToolFilm.py:880
+msgid "Export negative film"
+msgstr "Export negative film"
+
+#: AppTools/ToolFilm.py:941 AppTools/ToolFilm.py:1124
+#: AppTools/ToolPanelize.py:441
+msgid "No object Box. Using instead"
+msgstr "No object Box. Using instead"
+
+#: AppTools/ToolFilm.py:1057 AppTools/ToolFilm.py:1237
+msgid "Film file exported to"
+msgstr "Film file exported to"
+
+#: AppTools/ToolFilm.py:1060 AppTools/ToolFilm.py:1240
+msgid "Generating Film ... Please wait."
+msgstr "Generating Film ... Please wait."
+
+#: AppTools/ToolImage.py:24
+msgid "Image as Object"
+msgstr "Image as Object"
+
+#: AppTools/ToolImage.py:33
+msgid "Image to PCB"
+msgstr "Image to PCB"
+
+#: AppTools/ToolImage.py:56
+msgid ""
+"Specify the type of object to create from the image.\n"
+"It can be of type: Gerber or Geometry."
+msgstr ""
+"Specify the type of object to create from the image.\n"
+"It can be of type: Gerber or Geometry."
+
+#: AppTools/ToolImage.py:65
+msgid "DPI value"
+msgstr "DPI value"
+
+#: AppTools/ToolImage.py:66
+msgid "Specify a DPI value for the image."
+msgstr "Specify a DPI value for the image."
+
+#: AppTools/ToolImage.py:72
+msgid "Level of detail"
+msgstr "Level of detail"
+
+#: AppTools/ToolImage.py:81
+msgid "Image type"
+msgstr "Image type"
+
+#: AppTools/ToolImage.py:83
+msgid ""
+"Choose a method for the image interpretation.\n"
+"B/W means a black & white image. Color means a colored image."
+msgstr ""
+"Choose a method for the image interpretation.\n"
+"B/W means a black & white image. Color means a colored image."
+
+#: AppTools/ToolImage.py:92 AppTools/ToolImage.py:107 AppTools/ToolImage.py:120
+#: AppTools/ToolImage.py:133
+msgid "Mask value"
+msgstr "Mask value"
+
+#: AppTools/ToolImage.py:94
+msgid ""
+"Mask for monochrome image.\n"
+"Takes values between [0 ... 255].\n"
+"Decides the level of details to include\n"
+"in the resulting geometry.\n"
+"0 means no detail and 255 means everything \n"
+"(which is totally black)."
+msgstr ""
+"Mask for monochrome image.\n"
+"Takes values between [0 ... 255].\n"
+"Decides the level of details to include\n"
+"in the resulting geometry.\n"
+"0 means no detail and 255 means everything \n"
+"(which is totally black)."
+
+#: AppTools/ToolImage.py:109
+msgid ""
+"Mask for RED color.\n"
+"Takes values between [0 ... 255].\n"
+"Decides the level of details to include\n"
+"in the resulting geometry."
+msgstr ""
+"Mask for RED color.\n"
+"Takes values between [0 ... 255].\n"
+"Decides the level of details to include\n"
+"in the resulting geometry."
+
+#: AppTools/ToolImage.py:122
+msgid ""
+"Mask for GREEN color.\n"
+"Takes values between [0 ... 255].\n"
+"Decides the level of details to include\n"
+"in the resulting geometry."
+msgstr ""
+"Mask for GREEN color.\n"
+"Takes values between [0 ... 255].\n"
+"Decides the level of details to include\n"
+"in the resulting geometry."
+
+#: AppTools/ToolImage.py:135
+msgid ""
+"Mask for BLUE color.\n"
+"Takes values between [0 ... 255].\n"
+"Decides the level of details to include\n"
+"in the resulting geometry."
+msgstr ""
+"Mask for BLUE color.\n"
+"Takes values between [0 ... 255].\n"
+"Decides the level of details to include\n"
+"in the resulting geometry."
+
+#: AppTools/ToolImage.py:143
+msgid "Import image"
+msgstr "Import image"
+
+#: AppTools/ToolImage.py:145
+msgid "Open a image of raster type and then import it in FlatCAM."
+msgstr "Open a image of raster type and then import it in FlatCAM."
+
+#: AppTools/ToolImage.py:182
+msgid "Image Tool"
+msgstr "Image Tool"
+
+#: AppTools/ToolImage.py:234 AppTools/ToolImage.py:237
+msgid "Import IMAGE"
+msgstr "Import IMAGE"
+
+#: AppTools/ToolImage.py:277 App_Main.py:8264 App_Main.py:8311
+msgid ""
+"Not supported type is picked as parameter. Only Geometry and Gerber are "
+"supported"
+msgstr ""
+"Not supported type is picked as parameter. Only Geometry and Gerber are "
+"supported"
+
+#: AppTools/ToolImage.py:285
+msgid "Importing Image"
+msgstr "Importing Image"
+
+#: AppTools/ToolImage.py:297 AppTools/ToolPDF.py:154 App_Main.py:8289
+#: App_Main.py:8335 App_Main.py:8399 App_Main.py:8466 App_Main.py:8532
+#: App_Main.py:8597 App_Main.py:8654
+msgid "Opened"
+msgstr "Opened"
+
+#: AppTools/ToolInvertGerber.py:123
+msgid "Invert Gerber"
+msgstr "Invert Gerber"
+
+#: AppTools/ToolInvertGerber.py:125
+msgid ""
+"Will invert the Gerber object: areas that have copper\n"
+"will be empty of copper and previous empty area will be\n"
+"filled with copper."
+msgstr ""
+"Will invert the Gerber object: areas that have copper\n"
+"will be empty of copper and previous empty area will be\n"
+"filled with copper."
+
+#: AppTools/ToolMove.py:102
+msgid "MOVE: Click on the Start point ..."
+msgstr "MOVE: Click on the Start point ..."
+
+#: AppTools/ToolMove.py:113
+msgid "Cancelled. No object(s) to move."
+msgstr "Cancelled. No object(s) to move."
+
+#: AppTools/ToolMove.py:140
+msgid "MOVE: Click on the Destination point ..."
+msgstr "MOVE: Click on the Destination point ..."
+
+#: AppTools/ToolMove.py:163
+msgid "Moving..."
+msgstr "Moving..."
+
+#: AppTools/ToolMove.py:166
+msgid "No object(s) selected."
+msgstr "No object(s) selected."
+
+#: AppTools/ToolMove.py:221
+msgid "Error when mouse left click."
+msgstr "Error when mouse left click."
+
+#: AppTools/ToolNCC.py:42
+msgid "Non-Copper Clearing"
+msgstr "Non-Copper Clearing"
+
+#: AppTools/ToolNCC.py:88
+msgid ""
+"Specify the type of object to be cleared of excess copper.\n"
+"It can be of type: Gerber or Geometry.\n"
+"What is selected here will dictate the kind\n"
+"of objects that will populate the 'Object' combobox."
+msgstr ""
+"Specify the type of object to be cleared of excess copper.\n"
+"It can be of type: Gerber or Geometry.\n"
+"What is selected here will dictate the kind\n"
+"of objects that will populate the 'Object' combobox."
+
+#: AppTools/ToolNCC.py:110
+msgid "Object to be cleared of excess copper."
+msgstr "Object to be cleared of excess copper."
+
+#: AppTools/ToolNCC.py:122
+msgid ""
+"Tools pool from which the algorithm\n"
+"will pick the ones used for copper clearing."
+msgstr ""
+"Tools pool from which the algorithm\n"
+"will pick the ones used for copper clearing."
+
+#: AppTools/ToolNCC.py:138
+msgid ""
+"This is the Tool Number.\n"
+"Non copper clearing will start with the tool with the biggest \n"
+"diameter, continuing until there are no more tools.\n"
+"Only tools that create NCC clearing geometry will still be present\n"
+"in the resulting geometry. This is because with some tools\n"
+"this function will not be able to create painting geometry."
+msgstr ""
+"This is the Tool Number.\n"
+"Non copper clearing will start with the tool with the biggest \n"
+"diameter, continuing until there are no more tools.\n"
+"Only tools that create NCC clearing geometry will still be present\n"
+"in the resulting geometry. This is because with some tools\n"
+"this function will not be able to create painting geometry."
+
+#: AppTools/ToolNCC.py:146
+msgid ""
+"Tool Diameter. It's value (in current FlatCAM units)\n"
+"is the cut width into the material."
+msgstr ""
+"Tool Diameter. It's value (in current FlatCAM units)\n"
+"is the cut width into the material."
+
+#: AppTools/ToolNCC.py:150
+msgid ""
+"The Tool Type (TT) can be:\n"
+"- Circular with 1 ... 4 teeth -> it is informative only. Being circular,\n"
+"the cut width in material is exactly the tool diameter.\n"
+"- Ball -> informative only and make reference to the Ball type endmill.\n"
+"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI "
+"form\n"
+"and enable two additional UI form fields in the resulting geometry: V-Tip "
+"Dia and\n"
+"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter "
+"such\n"
+"as the cut width into material will be equal with the value in the Tool "
+"Diameter\n"
+"column of this table.\n"
+"Choosing the 'V-Shape' Tool Type automatically will select the Operation "
+"Type\n"
+"in the resulting geometry as Isolation."
+msgstr ""
+"The Tool Type (TT) can be:\n"
+"- Circular with 1 ... 4 teeth -> it is informative only. Being circular,\n"
+"the cut width in material is exactly the tool diameter.\n"
+"- Ball -> informative only and make reference to the Ball type endmill.\n"
+"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI "
+"form\n"
+"and enable two additional UI form fields in the resulting geometry: V-Tip "
+"Dia and\n"
+"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter "
+"such\n"
+"as the cut width into material will be equal with the value in the Tool "
+"Diameter\n"
+"column of this table.\n"
+"Choosing the 'V-Shape' Tool Type automatically will select the Operation "
+"Type\n"
+"in the resulting geometry as Isolation."
+
+#: AppTools/ToolNCC.py:296 AppTools/ToolPaint.py:278
+msgid ""
+"Add a new tool to the Tool Table\n"
+"with the diameter specified above."
+msgstr ""
+"Add a new tool to the Tool Table\n"
+"with the diameter specified above."
+
+#: AppTools/ToolNCC.py:318 AppTools/ToolPaint.py:300
+#: AppTools/ToolSolderPaste.py:130
+msgid ""
+"Delete a selection of tools in the Tool Table\n"
+"by first selecting a row(s) in the Tool Table."
+msgstr ""
+"Delete a selection of tools in the Tool Table\n"
+"by first selecting a row(s) in the Tool Table."
+
+#: AppTools/ToolNCC.py:554
+msgid ""
+"The type of FlatCAM object to be used as non copper clearing reference.\n"
+"It can be Gerber, Excellon or Geometry."
+msgstr ""
+"The type of FlatCAM object to be used as non copper clearing reference.\n"
+"It can be Gerber, Excellon or Geometry."
+
+#: AppTools/ToolNCC.py:597 AppTools/ToolPaint.py:536
+msgid "Generate Geometry"
+msgstr "Generate Geometry"
+
+#: AppTools/ToolNCC.py:932 AppTools/ToolNCC.py:1431 AppTools/ToolPaint.py:857
+#: AppTools/ToolSolderPaste.py:568 AppTools/ToolSolderPaste.py:893
+#: App_Main.py:4190
+msgid "Please enter a tool diameter with non-zero value, in Float format."
+msgstr "Please enter a tool diameter with non-zero value, in Float format."
+
+#: AppTools/ToolNCC.py:936 AppTools/ToolPaint.py:861
+#: AppTools/ToolSolderPaste.py:572 App_Main.py:4194
+msgid "Adding Tool cancelled"
+msgstr "Adding Tool cancelled"
+
+#: AppTools/ToolNCC.py:1425 AppTools/ToolPaint.py:1183
+#: AppTools/ToolSolderPaste.py:888
+msgid "Please enter a tool diameter to add, in Float format."
+msgstr "Please enter a tool diameter to add, in Float format."
+
+#: AppTools/ToolNCC.py:1456 AppTools/ToolNCC.py:4065 AppTools/ToolPaint.py:1207
+#: AppTools/ToolPaint.py:3608 AppTools/ToolSolderPaste.py:917
+msgid "Cancelled. Tool already in Tool Table."
+msgstr "Cancelled. Tool already in Tool Table."
+
+#: AppTools/ToolNCC.py:1463 AppTools/ToolNCC.py:4082 AppTools/ToolPaint.py:1212
+#: AppTools/ToolPaint.py:3625
+msgid "New tool added to Tool Table."
+msgstr "New tool added to Tool Table."
+
+#: AppTools/ToolNCC.py:1507 AppTools/ToolPaint.py:1256
+msgid "Tool from Tool Table was edited."
+msgstr "Tool from Tool Table was edited."
+
+#: AppTools/ToolNCC.py:1519 AppTools/ToolPaint.py:1268
+#: AppTools/ToolSolderPaste.py:978
+msgid "Cancelled. New diameter value is already in the Tool Table."
+msgstr "Cancelled. New diameter value is already in the Tool Table."
+
+#: AppTools/ToolNCC.py:1571 AppTools/ToolPaint.py:1366
+msgid "Delete failed. Select a tool to delete."
+msgstr "Delete failed. Select a tool to delete."
+
+#: AppTools/ToolNCC.py:1577 AppTools/ToolPaint.py:1372
+msgid "Tool(s) deleted from Tool Table."
+msgstr "Tool(s) deleted from Tool Table."
+
+#: AppTools/ToolNCC.py:1620
+msgid "Wrong Tool Dia value format entered, use a number."
+msgstr "Wrong Tool Dia value format entered, use a number."
+
+#: AppTools/ToolNCC.py:1629 AppTools/ToolPaint.py:1423
+msgid "No selected tools in Tool Table."
+msgstr "No selected tools in Tool Table."
+
+#: AppTools/ToolNCC.py:1705 AppTools/ToolPaint.py:1599
+msgid "Click the end point of the paint area."
+msgstr "Click the end point of the paint area."
+
+#: AppTools/ToolNCC.py:1985 AppTools/ToolNCC.py:3010
+msgid "NCC Tool. Preparing non-copper polygons."
+msgstr "NCC Tool. Preparing non-copper polygons."
+
+#: AppTools/ToolNCC.py:2044 AppTools/ToolNCC.py:3138
+msgid "NCC Tool. Calculate 'empty' area."
+msgstr "NCC Tool. Calculate 'empty' area."
+
+#: AppTools/ToolNCC.py:2063 AppTools/ToolNCC.py:2172 AppTools/ToolNCC.py:2187
+#: AppTools/ToolNCC.py:3151 AppTools/ToolNCC.py:3256 AppTools/ToolNCC.py:3271
+#: AppTools/ToolNCC.py:3537 AppTools/ToolNCC.py:3638 AppTools/ToolNCC.py:3653
+msgid "Buffering finished"
+msgstr "Buffering finished"
+
+#: AppTools/ToolNCC.py:2071 AppTools/ToolNCC.py:2194 AppTools/ToolNCC.py:3159
+#: AppTools/ToolNCC.py:3278 AppTools/ToolNCC.py:3544 AppTools/ToolNCC.py:3660
+msgid "Could not get the extent of the area to be non copper cleared."
+msgstr "Could not get the extent of the area to be non copper cleared."
+
+#: AppTools/ToolNCC.py:2101 AppTools/ToolNCC.py:2180 AppTools/ToolNCC.py:3186
+#: AppTools/ToolNCC.py:3263 AppTools/ToolNCC.py:3564 AppTools/ToolNCC.py:3645
+msgid ""
+"Isolation geometry is broken. Margin is less than isolation tool diameter."
+msgstr ""
+"Isolation geometry is broken. Margin is less than isolation tool diameter."
+
+#: AppTools/ToolNCC.py:2197 AppTools/ToolNCC.py:3282 AppTools/ToolNCC.py:3663
+msgid "The selected object is not suitable for copper clearing."
+msgstr "The selected object is not suitable for copper clearing."
+
+#: AppTools/ToolNCC.py:2204 AppTools/ToolNCC.py:3289
+msgid "NCC Tool. Finished calculation of 'empty' area."
+msgstr "NCC Tool. Finished calculation of 'empty' area."
+
+#: AppTools/ToolNCC.py:2247
+msgid "Clearing polygon with method: lines."
+msgstr "Clearing polygon with method: lines."
+
+#: AppTools/ToolNCC.py:2257
+msgid "Failed. Clearing polygon with method: seed."
+msgstr "Failed. Clearing polygon with method: seed."
+
+#: AppTools/ToolNCC.py:2266
+msgid "Failed. Clearing polygon with method: standard."
+msgstr "Failed. Clearing polygon with method: standard."
+
+#: AppTools/ToolNCC.py:2280
+msgid "Geometry could not be cleared completely"
+msgstr "Geometry could not be cleared completely"
+
+#: AppTools/ToolNCC.py:2305 AppTools/ToolNCC.py:2307 AppTools/ToolNCC.py:2962
+#: AppTools/ToolNCC.py:2964
+msgid "Non-Copper clearing ..."
+msgstr "Non-Copper clearing ..."
+
+#: AppTools/ToolNCC.py:2354 AppTools/ToolNCC.py:3106
+msgid ""
+"NCC Tool. Finished non-copper polygons. Normal copper clearing task started."
+msgstr ""
+"NCC Tool. Finished non-copper polygons. Normal copper clearing task started."
+
+#: AppTools/ToolNCC.py:2390 AppTools/ToolNCC.py:2638
+msgid "NCC Tool failed creating bounding box."
+msgstr "NCC Tool failed creating bounding box."
+
+#: AppTools/ToolNCC.py:2405 AppTools/ToolNCC.py:2655 AppTools/ToolNCC.py:3302
+#: AppTools/ToolNCC.py:3688
+msgid "NCC Tool clearing with tool diameter"
+msgstr "NCC Tool clearing with tool diameter"
+
+#: AppTools/ToolNCC.py:2405 AppTools/ToolNCC.py:2655 AppTools/ToolNCC.py:3302
+#: AppTools/ToolNCC.py:3688
+msgid "started."
+msgstr "started."
+
+#: AppTools/ToolNCC.py:2563 AppTools/ToolNCC.py:3463
+msgid ""
+"There is no NCC 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 ""
+"There is no NCC 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."
+
+#: AppTools/ToolNCC.py:2572 AppTools/ToolNCC.py:3472
+msgid "NCC Tool clear all done."
+msgstr "NCC Tool clear all done."
+
+#: AppTools/ToolNCC.py:2575 AppTools/ToolNCC.py:3475
+msgid "NCC Tool clear all done but the copper features isolation is broken for"
+msgstr ""
+"NCC Tool clear all done but the copper features isolation is broken for"
+
+#: AppTools/ToolNCC.py:2577 AppTools/ToolNCC.py:2863 AppTools/ToolNCC.py:3477
+#: AppTools/ToolNCC.py:3860
+msgid "tools"
+msgstr "tools"
+
+#: AppTools/ToolNCC.py:2859 AppTools/ToolNCC.py:3856
+msgid "NCC Tool Rest Machining clear all done."
+msgstr "NCC Tool Rest Machining clear all done."
+
+#: AppTools/ToolNCC.py:2862 AppTools/ToolNCC.py:3859
+msgid ""
+"NCC Tool Rest Machining clear all done but the copper features isolation is "
+"broken for"
+msgstr ""
+"NCC Tool Rest Machining clear all done but the copper features isolation is "
+"broken for"
+
+#: AppTools/ToolNCC.py:2974
+msgid "NCC Tool started. Reading parameters."
+msgstr "NCC Tool started. Reading parameters."
+
+#: AppTools/ToolNCC.py:3958
+msgid ""
+"Try to use the Buffering Type = Full in Preferences -> Gerber General. "
+"Reload the Gerber file after this change."
+msgstr ""
+"Try to use the Buffering Type = Full in Preferences -> Gerber General. "
+"Reload the Gerber file after this change."
+
+#: AppTools/ToolNCC.py:4022 AppTools/ToolPaint.py:3565 App_Main.py:5251
+msgid "Tool from DB added in Tool Table."
+msgstr "Tool from DB added in Tool Table."
+
+#: AppTools/ToolOptimal.py:79
+msgid "Number of decimals kept for found distances."
+msgstr "Number of decimals kept for found distances."
+
+#: AppTools/ToolOptimal.py:87
+msgid "Minimum distance"
+msgstr "Minimum distance"
+
+#: AppTools/ToolOptimal.py:88
+msgid "Display minimum distance between copper features."
+msgstr "Display minimum distance between copper features."
+
+#: AppTools/ToolOptimal.py:92
+msgid "Determined"
+msgstr "Determined"
+
+#: AppTools/ToolOptimal.py:106
+msgid "Occurring"
+msgstr "Occurring"
+
+#: AppTools/ToolOptimal.py:107
+msgid "How many times this minimum is found."
+msgstr "How many times this minimum is found."
+
+#: AppTools/ToolOptimal.py:113
+msgid "Minimum points coordinates"
+msgstr "Minimum points coordinates"
+
+#: AppTools/ToolOptimal.py:114 AppTools/ToolOptimal.py:120
+msgid "Coordinates for points where minimum distance was found."
+msgstr "Coordinates for points where minimum distance was found."
+
+#: AppTools/ToolOptimal.py:133 AppTools/ToolOptimal.py:209
+msgid "Jump to selected position"
+msgstr "Jump to selected position"
+
+#: AppTools/ToolOptimal.py:135 AppTools/ToolOptimal.py:211
+msgid ""
+"Select a position in the Locations text box and then\n"
+"click this button."
+msgstr ""
+"Select a position in the Locations text box and then\n"
+"click this button."
+
+#: AppTools/ToolOptimal.py:143
+msgid "Other distances"
+msgstr "Other distances"
+
+#: AppTools/ToolOptimal.py:144
+msgid ""
+"Will display other distances in the Gerber file ordered from\n"
+"the minimum to the maximum, not including the absolute minimum."
+msgstr ""
+"Will display other distances in the Gerber file ordered from\n"
+"the minimum to the maximum, not including the absolute minimum."
+
+#: AppTools/ToolOptimal.py:149
+msgid "Other distances points coordinates"
+msgstr "Other distances points coordinates"
+
+#: AppTools/ToolOptimal.py:150 AppTools/ToolOptimal.py:164
+#: AppTools/ToolOptimal.py:171 AppTools/ToolOptimal.py:188
+#: AppTools/ToolOptimal.py:195
+msgid ""
+"Other distances and the coordinates for points\n"
+"where the distance was found."
+msgstr ""
+"Other distances and the coordinates for points\n"
+"where the distance was found."
+
+#: AppTools/ToolOptimal.py:163
+msgid "Gerber distances"
+msgstr "Gerber distances"
+
+#: AppTools/ToolOptimal.py:187
+msgid "Points coordinates"
+msgstr "Points coordinates"
+
+#: AppTools/ToolOptimal.py:219
+msgid "Find Minimum"
+msgstr "Find Minimum"
+
+#: AppTools/ToolOptimal.py:221
+msgid ""
+"Calculate the minimum distance between copper features,\n"
+"this will allow the determination of the right tool to\n"
+"use for isolation or copper clearing."
+msgstr ""
+"Calculate the minimum distance between copper features,\n"
+"this will allow the determination of the right tool to\n"
+"use for isolation or copper clearing."
+
+#: AppTools/ToolOptimal.py:346
+msgid "Only Gerber objects can be evaluated."
+msgstr "Only Gerber objects can be evaluated."
+
+#: AppTools/ToolOptimal.py:352
+msgid ""
+"Optimal Tool. Started to search for the minimum distance between copper "
+"features."
+msgstr ""
+"Optimal Tool. Started to search for the minimum distance between copper "
+"features."
+
+#: AppTools/ToolOptimal.py:362
+msgid "Optimal Tool. Parsing geometry for aperture"
+msgstr "Optimal Tool. Parsing geometry for aperture"
+
+#: AppTools/ToolOptimal.py:373
+msgid "Optimal Tool. Creating a buffer for the object geometry."
+msgstr "Optimal Tool. Creating a buffer for the object geometry."
+
+#: AppTools/ToolOptimal.py:383
+msgid ""
+"The Gerber object has one Polygon as geometry.\n"
+"There are no distances between geometry elements to be found."
+msgstr ""
+"The Gerber object has one Polygon as geometry.\n"
+"There are no distances between geometry elements to be found."
+
+#: AppTools/ToolOptimal.py:388
+msgid ""
+"Optimal Tool. Finding the distances between each two elements. Iterations"
+msgstr ""
+"Optimal Tool. Finding the distances between each two elements. Iterations"
+
+#: AppTools/ToolOptimal.py:423
+msgid "Optimal Tool. Finding the minimum distance."
+msgstr "Optimal Tool. Finding the minimum distance."
+
+#: AppTools/ToolOptimal.py:439
+msgid "Optimal Tool. Finished successfully."
+msgstr "Optimal Tool. Finished successfully."
+
+#: AppTools/ToolPDF.py:91 AppTools/ToolPDF.py:95
+msgid "Open PDF"
+msgstr "Open PDF"
+
+#: AppTools/ToolPDF.py:98
+msgid "Open PDF cancelled"
+msgstr "Open PDF cancelled"
+
+#: AppTools/ToolPDF.py:122
+msgid "Parsing PDF file ..."
+msgstr "Parsing PDF file ..."
+
+#: AppTools/ToolPDF.py:138 App_Main.py:8497
+msgid "Failed to open"
+msgstr "Failed to open"
+
+#: AppTools/ToolPDF.py:203 AppTools/ToolPcbWizard.py:445 App_Main.py:8446
+msgid "No geometry found in file"
+msgstr "No geometry found in file"
+
+#: AppTools/ToolPDF.py:206 AppTools/ToolPDF.py:279
+#, python-format
+msgid "Rendering PDF layer #%d ..."
+msgstr "Rendering PDF layer #%d ..."
+
+#: AppTools/ToolPDF.py:210 AppTools/ToolPDF.py:283
+msgid "Open PDF file failed."
+msgstr "Open PDF file failed."
+
+#: AppTools/ToolPDF.py:215 AppTools/ToolPDF.py:288
+msgid "Rendered"
+msgstr "Rendered"
+
+#: AppTools/ToolPaint.py:81
+msgid ""
+"Specify the type of object to be painted.\n"
+"It can be of type: Gerber or Geometry.\n"
+"What is selected here will dictate the kind\n"
+"of objects that will populate the 'Object' combobox."
+msgstr ""
+"Specify the type of object to be painted.\n"
+"It can be of type: Gerber or Geometry.\n"
+"What is selected here will dictate the kind\n"
+"of objects that will populate the 'Object' combobox."
+
+#: AppTools/ToolPaint.py:103
+msgid "Object to be painted."
+msgstr "Object to be painted."
+
+#: AppTools/ToolPaint.py:116
+msgid ""
+"Tools pool from which the algorithm\n"
+"will pick the ones used for painting."
+msgstr ""
+"Tools pool from which the algorithm\n"
+"will pick the ones used for painting."
+
+#: AppTools/ToolPaint.py:133
+msgid ""
+"This is the Tool Number.\n"
+"Painting will start with the tool with the biggest diameter,\n"
+"continuing until there are no more tools.\n"
+"Only tools that create painting geometry will still be present\n"
+"in the resulting geometry. This is because with some tools\n"
+"this function will not be able to create painting geometry."
+msgstr ""
+"This is the Tool Number.\n"
+"Painting will start with the tool with the biggest diameter,\n"
+"continuing until there are no more tools.\n"
+"Only tools that create painting geometry will still be present\n"
+"in the resulting geometry. This is because with some tools\n"
+"this function will not be able to create painting geometry."
+
+#: AppTools/ToolPaint.py:145
+msgid ""
+"The Tool Type (TT) can be:\n"
+"- Circular -> it is informative only. Being circular,\n"
+"the cut width in material is exactly the tool diameter.\n"
+"- Ball -> informative only and make reference to the Ball type endmill.\n"
+"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI "
+"form\n"
+"and enable two additional UI form fields in the resulting geometry: V-Tip "
+"Dia and\n"
+"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter "
+"such\n"
+"as the cut width into material will be equal with the value in the Tool "
+"Diameter\n"
+"column of this table.\n"
+"Choosing the 'V-Shape' Tool Type automatically will select the Operation "
+"Type\n"
+"in the resulting geometry as Isolation."
+msgstr ""
+"The Tool Type (TT) can be:\n"
+"- Circular -> it is informative only. Being circular,\n"
+"the cut width in material is exactly the tool diameter.\n"
+"- Ball -> informative only and make reference to the Ball type endmill.\n"
+"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI "
+"form\n"
+"and enable two additional UI form fields in the resulting geometry: V-Tip "
+"Dia and\n"
+"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter "
+"such\n"
+"as the cut width into material will be equal with the value in the Tool "
+"Diameter\n"
+"column of this table.\n"
+"Choosing the 'V-Shape' Tool Type automatically will select the Operation "
+"Type\n"
+"in the resulting geometry as Isolation."
+
+#: AppTools/ToolPaint.py:497
+msgid ""
+"The type of FlatCAM object to be used as paint reference.\n"
+"It can be Gerber, Excellon or Geometry."
+msgstr ""
+"The type of FlatCAM object to be used as paint reference.\n"
+"It can be Gerber, Excellon or Geometry."
+
+#: AppTools/ToolPaint.py:538
+msgid ""
+"- 'Area Selection' - left mouse click to start selection of the area to be "
+"painted.\n"
+"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple "
+"areas.\n"
+"- 'All Polygons' - the Paint will start after click.\n"
+"- 'Reference Object' - will do non copper clearing within the area\n"
+"specified by another object."
+msgstr ""
+"- 'Area Selection' - left mouse click to start selection of the area to be "
+"painted.\n"
+"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple "
+"areas.\n"
+"- 'All Polygons' - the Paint will start after click.\n"
+"- 'Reference Object' - will do non copper clearing within the area\n"
+"specified by another object."
+
+#: AppTools/ToolPaint.py:1392
+#, python-format
+msgid "Could not retrieve object: %s"
+msgstr "Could not retrieve object: %s"
+
+#: AppTools/ToolPaint.py:1402
+msgid "Can't do Paint on MultiGeo geometries"
+msgstr "Can't do Paint on MultiGeo geometries"
+
+#: AppTools/ToolPaint.py:1432
+msgid "Click on a polygon to paint it."
+msgstr "Click on a polygon to paint it."
+
+#: AppTools/ToolPaint.py:1452
+msgid "Click the start point of the paint area."
+msgstr "Click the start point of the paint area."
+
+#: AppTools/ToolPaint.py:1517
+msgid "Click to add next polygon or right click to start painting."
+msgstr "Click to add next polygon or right click to start painting."
+
+#: AppTools/ToolPaint.py:1530
+msgid "Click to add/remove next polygon or right click to start painting."
+msgstr "Click to add/remove next polygon or right click to start painting."
+
+#: AppTools/ToolPaint.py:2034
+msgid "Painting polygon with method: lines."
+msgstr "Painting polygon with method: lines."
+
+#: AppTools/ToolPaint.py:2046
+msgid "Failed. Painting polygon with method: seed."
+msgstr "Failed. Painting polygon with method: seed."
+
+#: AppTools/ToolPaint.py:2057
+msgid "Failed. Painting polygon with method: standard."
+msgstr "Failed. Painting polygon with method: standard."
+
+#: AppTools/ToolPaint.py:2073
+msgid "Geometry could not be painted completely"
+msgstr "Geometry could not be painted completely"
+
+#: AppTools/ToolPaint.py:2102 AppTools/ToolPaint.py:2105
+#: AppTools/ToolPaint.py:2113 AppTools/ToolPaint.py:2416
+#: AppTools/ToolPaint.py:2419 AppTools/ToolPaint.py:2427
+#: AppTools/ToolPaint.py:2915 AppTools/ToolPaint.py:2918
+#: AppTools/ToolPaint.py:2924
+msgid "Paint Tool."
+msgstr "Paint Tool."
+
+#: AppTools/ToolPaint.py:2102 AppTools/ToolPaint.py:2105
+#: AppTools/ToolPaint.py:2113
+msgid "Normal painting polygon task started."
+msgstr "Normal painting polygon task started."
+
+#: AppTools/ToolPaint.py:2103 AppTools/ToolPaint.py:2417
+#: AppTools/ToolPaint.py:2916
+msgid "Buffering geometry..."
+msgstr "Buffering geometry..."
+
+#: AppTools/ToolPaint.py:2125 AppTools/ToolPaint.py:2434
+#: AppTools/ToolPaint.py:2932
+msgid "No polygon found."
+msgstr "No polygon found."
+
+#: AppTools/ToolPaint.py:2155
+msgid "Painting polygon..."
+msgstr "Painting polygon..."
+
+#: AppTools/ToolPaint.py:2165 AppTools/ToolPaint.py:2480
+#: AppTools/ToolPaint.py:2670 AppTools/ToolPaint.py:2978
+#: AppTools/ToolPaint.py:3157
+msgid "Painting with tool diameter = "
+msgstr "Painting with tool diameter = "
+
+#: AppTools/ToolPaint.py:2166 AppTools/ToolPaint.py:2481
+#: AppTools/ToolPaint.py:2671 AppTools/ToolPaint.py:2979
+#: AppTools/ToolPaint.py:3158
+msgid "started"
+msgstr "started"
+
+#: AppTools/ToolPaint.py:2191 AppTools/ToolPaint.py:2507
+#: AppTools/ToolPaint.py:2697 AppTools/ToolPaint.py:3005
+#: AppTools/ToolPaint.py:3184
+msgid "Margin parameter too big. Tool is not used"
+msgstr "Margin parameter too big. Tool is not used"
+
+#: AppTools/ToolPaint.py:2249 AppTools/ToolPaint.py:2576
+#: AppTools/ToolPaint.py:2754 AppTools/ToolPaint.py:3068
+#: AppTools/ToolPaint.py:3246
+msgid ""
+"Could not do Paint. Try a different combination of parameters. Or a "
+"different strategy of paint"
+msgstr ""
+"Could not do Paint. Try a different combination of parameters. Or a "
+"different strategy of paint"
+
+#: AppTools/ToolPaint.py:2306 AppTools/ToolPaint.py:2642
+#: AppTools/ToolPaint.py:2811 AppTools/ToolPaint.py:3129
+#: AppTools/ToolPaint.py:3308
+msgid ""
+"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 ""
+"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."
+
+#: AppTools/ToolPaint.py:2329
+msgid "Paint Single failed."
+msgstr "Paint Single failed."
+
+#: AppTools/ToolPaint.py:2335
+msgid "Paint Single Done."
+msgstr "Paint Single Done."
+
+#: AppTools/ToolPaint.py:2337 AppTools/ToolPaint.py:2847
+#: AppTools/ToolPaint.py:3344
+msgid "Polygon Paint started ..."
+msgstr "Polygon Paint started ..."
+
+#: AppTools/ToolPaint.py:2416 AppTools/ToolPaint.py:2419
+#: AppTools/ToolPaint.py:2427
+msgid "Paint all polygons task started."
+msgstr "Paint all polygons task started."
+
+#: AppTools/ToolPaint.py:2458 AppTools/ToolPaint.py:2956
+msgid "Painting polygons..."
+msgstr "Painting polygons..."
+
+#: AppTools/ToolPaint.py:2651
+msgid "Paint All Done."
+msgstr "Paint All Done."
+
+#: AppTools/ToolPaint.py:2820 AppTools/ToolPaint.py:3317
+msgid "Paint All with Rest-Machining done."
+msgstr "Paint All with Rest-Machining done."
+
+#: AppTools/ToolPaint.py:2839
+msgid "Paint All failed."
+msgstr "Paint All failed."
+
+#: AppTools/ToolPaint.py:2845
+msgid "Paint Poly All Done."
+msgstr "Paint Poly All Done."
+
+#: AppTools/ToolPaint.py:2915 AppTools/ToolPaint.py:2918
+#: AppTools/ToolPaint.py:2924
+msgid "Painting area task started."
+msgstr "Painting area task started."
+
+#: AppTools/ToolPaint.py:3138
+msgid "Paint Area Done."
+msgstr "Paint Area Done."
+
+#: AppTools/ToolPaint.py:3336
+msgid "Paint Area failed."
+msgstr "Paint Area failed."
+
+#: AppTools/ToolPaint.py:3342
+msgid "Paint Poly Area Done."
+msgstr "Paint Poly Area Done."
+
+#: AppTools/ToolPanelize.py:35
+msgid "Panelize PCB"
+msgstr "Panelize PCB"
+
+#: AppTools/ToolPanelize.py:55
+msgid ""
+"Specify the type of object to be panelized\n"
+"It can be of type: Gerber, Excellon or Geometry.\n"
+"The selection here decide the type of objects that will be\n"
+"in the Object combobox."
+msgstr ""
+"Specify the type of object to be panelized\n"
+"It can be of type: Gerber, Excellon or Geometry.\n"
+"The selection here decide the type of objects that will be\n"
+"in the Object combobox."
+
+#: AppTools/ToolPanelize.py:88
+msgid ""
+"Object to be panelized. This means that it will\n"
+"be duplicated in an array of rows and columns."
+msgstr ""
+"Object to be panelized. This means that it will\n"
+"be duplicated in an array of rows and columns."
+
+#: AppTools/ToolPanelize.py:100
+msgid "Penelization Reference"
+msgstr "Penelization Reference"
+
+#: AppTools/ToolPanelize.py:102
+msgid ""
+"Choose the reference for panelization:\n"
+"- Object = the bounding box of a different object\n"
+"- Bounding Box = the bounding box of the object to be panelized\n"
+"\n"
+"The reference is useful when doing panelization for more than one\n"
+"object. The spacings (really offsets) will be applied in reference\n"
+"to this reference object therefore maintaining the panelized\n"
+"objects in sync."
+msgstr ""
+"Choose the reference for panelization:\n"
+"- Object = the bounding box of a different object\n"
+"- Bounding Box = the bounding box of the object to be panelized\n"
+"\n"
+"The reference is useful when doing panelization for more than one\n"
+"object. The spacings (really offsets) will be applied in reference\n"
+"to this reference object therefore maintaining the panelized\n"
+"objects in sync."
+
+#: AppTools/ToolPanelize.py:123
+msgid "Box Type"
+msgstr "Box Type"
+
+#: AppTools/ToolPanelize.py:125
+msgid ""
+"Specify the type of object to be used as an container for\n"
+"panelization. It can be: Gerber or Geometry type.\n"
+"The selection here decide the type of objects that will be\n"
+"in the Box Object combobox."
+msgstr ""
+"Specify the type of object to be used as an container for\n"
+"panelization. It can be: Gerber or Geometry type.\n"
+"The selection here decide the type of objects that will be\n"
+"in the Box Object combobox."
+
+#: AppTools/ToolPanelize.py:139
+msgid ""
+"The actual object that is used as container for the\n"
+" selected object that is to be panelized."
+msgstr ""
+"The actual object that is used as container for the\n"
+" selected object that is to be panelized."
+
+#: AppTools/ToolPanelize.py:149
+msgid "Panel Data"
+msgstr "Panel Data"
+
+#: AppTools/ToolPanelize.py:151
+msgid ""
+"This informations will shape the resulting panel.\n"
+"The number of rows and columns will set how many\n"
+"duplicates of the original geometry will be generated.\n"
+"\n"
+"The spacings will set the distance between any two\n"
+"elements of the panel array."
+msgstr ""
+"This informations will shape the resulting panel.\n"
+"The number of rows and columns will set how many\n"
+"duplicates of the original geometry will be generated.\n"
+"\n"
+"The spacings will set the distance between any two\n"
+"elements of the panel array."
+
+#: AppTools/ToolPanelize.py:214
+msgid ""
+"Choose the type of object for the panel object:\n"
+"- Geometry\n"
+"- Gerber"
+msgstr ""
+"Choose the type of object for the panel object:\n"
+"- Geometry\n"
+"- Gerber"
+
+#: AppTools/ToolPanelize.py:222
+msgid "Constrain panel within"
+msgstr "Constrain panel within"
+
+#: AppTools/ToolPanelize.py:263
+msgid "Panelize Object"
+msgstr "Panelize Object"
+
+#: AppTools/ToolPanelize.py:265 AppTools/ToolRulesCheck.py:501
+msgid ""
+"Panelize the specified object around the specified box.\n"
+"In other words it creates multiple copies of the source object,\n"
+"arranged in a 2D array of rows and columns."
+msgstr ""
+"Panelize the specified object around the specified box.\n"
+"In other words it creates multiple copies of the source object,\n"
+"arranged in a 2D array of rows and columns."
+
+#: AppTools/ToolPanelize.py:333
+msgid "Panel. Tool"
+msgstr "Panel. Tool"
+
+#: AppTools/ToolPanelize.py:468
+msgid "Columns or Rows are zero value. Change them to a positive integer."
+msgstr "Columns or Rows are zero value. Change them to a positive integer."
+
+#: AppTools/ToolPanelize.py:505
+msgid "Generating panel ... "
+msgstr "Generating panel ... "
+
+#: AppTools/ToolPanelize.py:788
+msgid "Generating panel ... Adding the Gerber code."
+msgstr "Generating panel ... Adding the Gerber code."
+
+#: AppTools/ToolPanelize.py:796
+msgid "Generating panel... Spawning copies"
+msgstr "Generating panel... Spawning copies"
+
+#: AppTools/ToolPanelize.py:803
+msgid "Panel done..."
+msgstr "Panel done..."
+
+#: AppTools/ToolPanelize.py:806
+#, python-brace-format
+msgid ""
+"{text} Too big for the constrain area. Final panel has {col} columns and "
+"{row} rows"
+msgstr ""
+"{text} Too big for the constrain area. Final panel has {col} columns and "
+"{row} rows"
+
+#: AppTools/ToolPanelize.py:815
+msgid "Panel created successfully."
+msgstr "Panel created successfully."
+
+#: AppTools/ToolPcbWizard.py:31
+msgid "PcbWizard Import Tool"
+msgstr "PcbWizard Import Tool"
+
+#: AppTools/ToolPcbWizard.py:40
+msgid "Import 2-file Excellon"
+msgstr "Import 2-file Excellon"
+
+#: AppTools/ToolPcbWizard.py:51
+msgid "Load files"
+msgstr "Load files"
+
+#: AppTools/ToolPcbWizard.py:57
+msgid "Excellon file"
+msgstr "Excellon file"
+
+#: AppTools/ToolPcbWizard.py:59
+msgid ""
+"Load the Excellon file.\n"
+"Usually it has a .DRL extension"
+msgstr ""
+"Load the Excellon file.\n"
+"Usually it has a .DRL extension"
+
+#: AppTools/ToolPcbWizard.py:65
+msgid "INF file"
+msgstr "INF file"
+
+#: AppTools/ToolPcbWizard.py:67
+msgid "Load the INF file."
+msgstr "Load the INF file."
+
+#: AppTools/ToolPcbWizard.py:79
+msgid "Tool Number"
+msgstr "Tool Number"
+
+#: AppTools/ToolPcbWizard.py:81
+msgid "Tool diameter in file units."
+msgstr "Tool diameter in file units."
+
+#: AppTools/ToolPcbWizard.py:87
+msgid "Excellon format"
+msgstr "Excellon format"
+
+#: AppTools/ToolPcbWizard.py:95
+msgid "Int. digits"
+msgstr "Int. digits"
+
+#: AppTools/ToolPcbWizard.py:97
+msgid "The number of digits for the integral part of the coordinates."
+msgstr "The number of digits for the integral part of the coordinates."
+
+#: AppTools/ToolPcbWizard.py:104
+msgid "Frac. digits"
+msgstr "Frac. digits"
+
+#: AppTools/ToolPcbWizard.py:106
+msgid "The number of digits for the fractional part of the coordinates."
+msgstr "The number of digits for the fractional part of the coordinates."
+
+#: AppTools/ToolPcbWizard.py:113
+msgid "No Suppression"
+msgstr "No Suppression"
+
+#: AppTools/ToolPcbWizard.py:114
+msgid "Zeros supp."
+msgstr "Zeros supp."
+
+#: AppTools/ToolPcbWizard.py:116
+msgid ""
+"The type of zeros suppression used.\n"
+"Can be of type:\n"
+"- LZ = leading zeros are kept\n"
+"- TZ = trailing zeros are kept\n"
+"- No Suppression = no zero suppression"
+msgstr ""
+"The type of zeros suppression used.\n"
+"Can be of type:\n"
+"- LZ = leading zeros are kept\n"
+"- TZ = trailing zeros are kept\n"
+"- No Suppression = no zero suppression"
+
+#: AppTools/ToolPcbWizard.py:129
+msgid ""
+"The type of units that the coordinates and tool\n"
+"diameters are using. Can be INCH or MM."
+msgstr ""
+"The type of units that the coordinates and tool\n"
+"diameters are using. Can be INCH or MM."
+
+#: AppTools/ToolPcbWizard.py:136
+msgid "Import Excellon"
+msgstr "Import Excellon"
+
+#: AppTools/ToolPcbWizard.py:138
+msgid ""
+"Import in FlatCAM an Excellon file\n"
+"that store it's information's in 2 files.\n"
+"One usually has .DRL extension while\n"
+"the other has .INF extension."
+msgstr ""
+"Import in FlatCAM an Excellon file\n"
+"that store it's information's in 2 files.\n"
+"One usually has .DRL extension while\n"
+"the other has .INF extension."
+
+#: AppTools/ToolPcbWizard.py:197
+msgid "PCBWizard Tool"
+msgstr "PCBWizard Tool"
+
+#: AppTools/ToolPcbWizard.py:291 AppTools/ToolPcbWizard.py:295
+msgid "Load PcbWizard Excellon file"
+msgstr "Load PcbWizard Excellon file"
+
+#: AppTools/ToolPcbWizard.py:314 AppTools/ToolPcbWizard.py:318
+msgid "Load PcbWizard INF file"
+msgstr "Load PcbWizard INF file"
+
+#: AppTools/ToolPcbWizard.py:366
+msgid ""
+"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 ""
+"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."
+
+#: AppTools/ToolPcbWizard.py:387
+msgid "PcbWizard .INF file loaded."
+msgstr "PcbWizard .INF file loaded."
+
+#: AppTools/ToolPcbWizard.py:392
+msgid "Main PcbWizard Excellon file loaded."
+msgstr "Main PcbWizard Excellon file loaded."
+
+#: AppTools/ToolPcbWizard.py:424 App_Main.py:8424
+msgid "This is not Excellon file."
+msgstr "This is not Excellon file."
+
+#: AppTools/ToolPcbWizard.py:427
+msgid "Cannot parse file"
+msgstr "Cannot parse file"
+
+#: AppTools/ToolPcbWizard.py:450
+msgid "Importing Excellon."
+msgstr "Importing Excellon."
+
+#: AppTools/ToolPcbWizard.py:457
+msgid "Import Excellon file failed."
+msgstr "Import Excellon file failed."
+
+#: AppTools/ToolPcbWizard.py:464
+msgid "Imported"
+msgstr "Imported"
+
+#: AppTools/ToolPcbWizard.py:467
+msgid "Excellon merging is in progress. Please wait..."
+msgstr "Excellon merging is in progress. Please wait..."
+
+#: AppTools/ToolPcbWizard.py:469
+msgid "The imported Excellon file is empty."
+msgstr "The imported Excellon file is empty."
+
+#: AppTools/ToolProperties.py:116 App_Main.py:4664 App_Main.py:6718
+#: App_Main.py:6813 App_Main.py:6854 App_Main.py:6895 App_Main.py:6936
+#: App_Main.py:6977 App_Main.py:7021 App_Main.py:7065 App_Main.py:7585
+#: App_Main.py:7589
+msgid "No object selected."
+msgstr "No object selected."
+
+#: AppTools/ToolProperties.py:131
+msgid "Object Properties are displayed."
+msgstr "Object Properties are displayed."
+
+#: AppTools/ToolProperties.py:136
+msgid "Properties Tool"
+msgstr "Properties Tool"
+
+#: AppTools/ToolProperties.py:150
+msgid "TYPE"
+msgstr "TYPE"
+
+#: AppTools/ToolProperties.py:151
+msgid "NAME"
+msgstr "NAME"
+
+#: AppTools/ToolProperties.py:153
+msgid "Dimensions"
+msgstr "Dimensions"
+
+#: AppTools/ToolProperties.py:181
+msgid "Geo Type"
+msgstr "Geo Type"
+
+#: AppTools/ToolProperties.py:184
+msgid "Single-Geo"
+msgstr "Single-Geo"
+
+#: AppTools/ToolProperties.py:185
+msgid "Multi-Geo"
+msgstr "Multi-Geo"
+
+#: AppTools/ToolProperties.py:196
+msgid "Calculating dimensions ... Please wait."
+msgstr "Calculating dimensions ... Please wait."
+
+#: AppTools/ToolProperties.py:339 AppTools/ToolProperties.py:343
+#: AppTools/ToolProperties.py:345
+msgid "Inch"
+msgstr "Inch"
+
+#: AppTools/ToolProperties.py:339 AppTools/ToolProperties.py:344
+#: AppTools/ToolProperties.py:346
+msgid "Metric"
+msgstr "Metric"
+
+#: AppTools/ToolProperties.py:421 AppTools/ToolProperties.py:486
+msgid "Drills number"
+msgstr "Drills number"
+
+#: AppTools/ToolProperties.py:422 AppTools/ToolProperties.py:488
+msgid "Slots number"
+msgstr "Slots number"
+
+#: AppTools/ToolProperties.py:424
+msgid "Drills total number:"
+msgstr "Drills total number:"
+
+#: AppTools/ToolProperties.py:425
+msgid "Slots total number:"
+msgstr "Slots total number:"
+
+#: AppTools/ToolProperties.py:452 AppTools/ToolProperties.py:455
+#: AppTools/ToolProperties.py:458 AppTools/ToolProperties.py:483
+msgid "Present"
+msgstr "Present"
+
+#: AppTools/ToolProperties.py:453 AppTools/ToolProperties.py:484
+msgid "Solid Geometry"
+msgstr "Solid Geometry"
+
+#: AppTools/ToolProperties.py:456
+msgid "GCode Text"
+msgstr "GCode Text"
+
+#: AppTools/ToolProperties.py:459
+msgid "GCode Geometry"
+msgstr "GCode Geometry"
+
+#: AppTools/ToolProperties.py:462
+msgid "Data"
+msgstr "Data"
+
+#: AppTools/ToolProperties.py:495
+msgid "Depth of Cut"
+msgstr "Depth of Cut"
+
+#: AppTools/ToolProperties.py:507
+msgid "Clearance Height"
+msgstr "Clearance Height"
+
+#: AppTools/ToolProperties.py:539
+msgid "Routing time"
+msgstr "Routing time"
+
+#: AppTools/ToolProperties.py:546
+msgid "Travelled distance"
+msgstr "Travelled distance"
+
+#: AppTools/ToolProperties.py:564
+msgid "Width"
+msgstr "Width"
+
+#: AppTools/ToolProperties.py:570 AppTools/ToolProperties.py:578
+msgid "Box Area"
+msgstr "Box Area"
+
+#: AppTools/ToolProperties.py:573 AppTools/ToolProperties.py:581
+msgid "Convex_Hull Area"
+msgstr "Convex_Hull Area"
+
+#: AppTools/ToolProperties.py:588 AppTools/ToolProperties.py:591
+msgid "Copper Area"
+msgstr "Copper Area"
+
+#: AppTools/ToolPunchGerber.py:30 AppTools/ToolPunchGerber.py:323
+msgid "Punch Gerber"
+msgstr "Punch Gerber"
+
+#: AppTools/ToolPunchGerber.py:65
+msgid "Gerber into which to punch holes"
+msgstr "Gerber into which to punch holes"
+
+#: AppTools/ToolPunchGerber.py:85
+msgid "ALL"
+msgstr "ALL"
+
+#: AppTools/ToolPunchGerber.py:166
+msgid ""
+"Remove the geometry of Excellon from the Gerber to create the holes in pads."
+msgstr ""
+"Remove the geometry of Excellon from the Gerber to create the holes in pads."
+
+#: AppTools/ToolPunchGerber.py:325
+msgid ""
+"Create a Gerber object from the selected object, within\n"
+"the specified box."
+msgstr ""
+"Create a Gerber object from the selected object, within\n"
+"the specified box."
+
+#: AppTools/ToolPunchGerber.py:425
+msgid "Punch Tool"
+msgstr "Punch Tool"
+
+#: AppTools/ToolPunchGerber.py:599
+msgid "The value of the fixed diameter is 0.0. Aborting."
+msgstr "The value of the fixed diameter is 0.0. Aborting."
+
+#: AppTools/ToolPunchGerber.py:602
+msgid ""
+"Could not generate punched hole Gerber because the punch hole size is bigger "
+"than some of the apertures in the Gerber object."
+msgstr ""
+"Could not generate punched hole Gerber because the punch hole size is bigger "
+"than some of the apertures in the Gerber object."
+
+#: AppTools/ToolPunchGerber.py:665
+msgid ""
+"Could not generate punched hole Gerber because the newly created object "
+"geometry is the same as the one in the source object geometry..."
+msgstr ""
+"Could not generate punched hole Gerber because the newly created object "
+"geometry is the same as the one in the source object geometry..."
+
+#: AppTools/ToolQRCode.py:80
+msgid "Gerber Object to which the QRCode will be added."
+msgstr "Gerber Object to which the QRCode will be added."
+
+#: AppTools/ToolQRCode.py:93
+msgid "QRCode Parameters"
+msgstr "QRCode Parameters"
+
+#: AppTools/ToolQRCode.py:95
+msgid "The parameters used to shape the QRCode."
+msgstr "The parameters used to shape the QRCode."
+
+#: AppTools/ToolQRCode.py:207
+msgid "Export QRCode"
+msgstr "Export QRCode"
+
+#: AppTools/ToolQRCode.py:209
+msgid ""
+"Show a set of controls allowing to export the QRCode\n"
+"to a SVG file or an PNG file."
+msgstr ""
+"Show a set of controls allowing to export the QRCode\n"
+"to a SVG file or an PNG file."
+
+#: AppTools/ToolQRCode.py:248
+msgid "Transparent back color"
+msgstr "Transparent back color"
+
+#: AppTools/ToolQRCode.py:273
+msgid "Export QRCode SVG"
+msgstr "Export QRCode SVG"
+
+#: AppTools/ToolQRCode.py:275
+msgid "Export a SVG file with the QRCode content."
+msgstr "Export a SVG file with the QRCode content."
+
+#: AppTools/ToolQRCode.py:286
+msgid "Export QRCode PNG"
+msgstr "Export QRCode PNG"
+
+#: AppTools/ToolQRCode.py:288
+msgid "Export a PNG image file with the QRCode content."
+msgstr "Export a PNG image file with the QRCode content."
+
+#: AppTools/ToolQRCode.py:299
+msgid "Insert QRCode"
+msgstr "Insert QRCode"
+
+#: AppTools/ToolQRCode.py:301
+msgid "Create the QRCode object."
+msgstr "Create the QRCode object."
+
+#: AppTools/ToolQRCode.py:415 AppTools/ToolQRCode.py:750
+#: AppTools/ToolQRCode.py:799
+msgid "Cancelled. There is no QRCode Data in the text box."
+msgstr "Cancelled. There is no QRCode Data in the text box."
+
+#: AppTools/ToolQRCode.py:434
+msgid "Generating QRCode geometry"
+msgstr "Generating QRCode geometry"
+
+#: AppTools/ToolQRCode.py:474
+msgid "Click on the Destination point ..."
+msgstr "Click on the Destination point ..."
+
+#: AppTools/ToolQRCode.py:589
+msgid "QRCode Tool done."
+msgstr "QRCode Tool done."
+
+#: AppTools/ToolQRCode.py:782 AppTools/ToolQRCode.py:786
+msgid "Export PNG"
+msgstr "Export PNG"
+
+#: AppTools/ToolQRCode.py:829 AppTools/ToolQRCode.py:833 App_Main.py:6746
+#: App_Main.py:6750
+msgid "Export SVG"
+msgstr "Export SVG"
+
+#: AppTools/ToolRulesCheck.py:33
+msgid "Check Rules"
+msgstr "Check Rules"
+
+#: AppTools/ToolRulesCheck.py:61
+msgid "Gerber Files"
+msgstr "Gerber Files"
+
+#: AppTools/ToolRulesCheck.py:63
+msgid "Gerber objects for which to check rules."
+msgstr "Gerber objects for which to check rules."
+
+#: AppTools/ToolRulesCheck.py:78
+msgid "Top"
+msgstr "Top"
+
+#: AppTools/ToolRulesCheck.py:80
+msgid "The Top Gerber Copper object for which rules are checked."
+msgstr "The Top Gerber Copper object for which rules are checked."
+
+#: AppTools/ToolRulesCheck.py:96
+msgid "Bottom"
+msgstr "Bottom"
+
+#: AppTools/ToolRulesCheck.py:98
+msgid "The Bottom Gerber Copper object for which rules are checked."
+msgstr "The Bottom Gerber Copper object for which rules are checked."
+
+#: AppTools/ToolRulesCheck.py:114
+msgid "SM Top"
+msgstr "SM Top"
+
+#: AppTools/ToolRulesCheck.py:116
+msgid "The Top Gerber Solder Mask object for which rules are checked."
+msgstr "The Top Gerber Solder Mask object for which rules are checked."
+
+#: AppTools/ToolRulesCheck.py:132
+msgid "SM Bottom"
+msgstr "SM Bottom"
+
+#: AppTools/ToolRulesCheck.py:134
+msgid "The Bottom Gerber Solder Mask object for which rules are checked."
+msgstr "The Bottom Gerber Solder Mask object for which rules are checked."
+
+#: AppTools/ToolRulesCheck.py:150
+msgid "Silk Top"
+msgstr "Silk Top"
+
+#: AppTools/ToolRulesCheck.py:152
+msgid "The Top Gerber Silkscreen object for which rules are checked."
+msgstr "The Top Gerber Silkscreen object for which rules are checked."
+
+#: AppTools/ToolRulesCheck.py:168
+msgid "Silk Bottom"
+msgstr "Silk Bottom"
+
+#: AppTools/ToolRulesCheck.py:170
+msgid "The Bottom Gerber Silkscreen object for which rules are checked."
+msgstr "The Bottom Gerber Silkscreen object for which rules are checked."
+
+#: AppTools/ToolRulesCheck.py:188
+msgid "The Gerber Outline (Cutout) object for which rules are checked."
+msgstr "The Gerber Outline (Cutout) object for which rules are checked."
+
+#: AppTools/ToolRulesCheck.py:199
+msgid "Excellon Objects"
+msgstr "Excellon Objects"
+
+#: AppTools/ToolRulesCheck.py:201
+msgid "Excellon objects for which to check rules."
+msgstr "Excellon objects for which to check rules."
+
+#: AppTools/ToolRulesCheck.py:213
+msgid "Excellon 1"
+msgstr "Excellon 1"
+
+#: AppTools/ToolRulesCheck.py:215
+msgid ""
+"Excellon object for which to check rules.\n"
+"Holds the plated holes or a general Excellon file content."
+msgstr ""
+"Excellon object for which to check rules.\n"
+"Holds the plated holes or a general Excellon file content."
+
+#: AppTools/ToolRulesCheck.py:232
+msgid "Excellon 2"
+msgstr "Excellon 2"
+
+#: AppTools/ToolRulesCheck.py:234
+msgid ""
+"Excellon object for which to check rules.\n"
+"Holds the non-plated holes."
+msgstr ""
+"Excellon object for which to check rules.\n"
+"Holds the non-plated holes."
+
+#: AppTools/ToolRulesCheck.py:247
+msgid "All Rules"
+msgstr "All Rules"
+
+#: AppTools/ToolRulesCheck.py:249
+msgid "This check/uncheck all the rules below."
+msgstr "This check/uncheck all the rules below."
+
+#: AppTools/ToolRulesCheck.py:499
+msgid "Run Rules Check"
+msgstr "Run Rules Check"
+
+#: AppTools/ToolRulesCheck.py:1158 AppTools/ToolRulesCheck.py:1218
+#: AppTools/ToolRulesCheck.py:1255 AppTools/ToolRulesCheck.py:1327
+#: AppTools/ToolRulesCheck.py:1381 AppTools/ToolRulesCheck.py:1419
+#: AppTools/ToolRulesCheck.py:1484
+msgid "Value is not valid."
+msgstr "Value is not valid."
+
+#: AppTools/ToolRulesCheck.py:1172
+msgid "TOP -> Copper to Copper clearance"
+msgstr "TOP -> Copper to Copper clearance"
+
+#: AppTools/ToolRulesCheck.py:1183
+msgid "BOTTOM -> Copper to Copper clearance"
+msgstr "BOTTOM -> Copper to Copper clearance"
+
+#: AppTools/ToolRulesCheck.py:1188 AppTools/ToolRulesCheck.py:1282
+#: AppTools/ToolRulesCheck.py:1446
+msgid ""
+"At least one Gerber object has to be selected for this rule but none is "
+"selected."
+msgstr ""
+"At least one Gerber object has to be selected for this rule but none is "
+"selected."
+
+#: AppTools/ToolRulesCheck.py:1224
+msgid ""
+"One of the copper Gerber objects or the Outline Gerber object is not valid."
+msgstr ""
+"One of the copper Gerber objects or the Outline Gerber object is not valid."
+
+#: AppTools/ToolRulesCheck.py:1237 AppTools/ToolRulesCheck.py:1401
+msgid ""
+"Outline Gerber object presence is mandatory for this rule but it is not "
+"selected."
+msgstr ""
+"Outline Gerber object presence is mandatory for this rule but it is not "
+"selected."
+
+#: AppTools/ToolRulesCheck.py:1254 AppTools/ToolRulesCheck.py:1281
+msgid "Silk to Silk clearance"
+msgstr "Silk to Silk clearance"
+
+#: AppTools/ToolRulesCheck.py:1267
+msgid "TOP -> Silk to Silk clearance"
+msgstr "TOP -> Silk to Silk clearance"
+
+#: AppTools/ToolRulesCheck.py:1277
+msgid "BOTTOM -> Silk to Silk clearance"
+msgstr "BOTTOM -> Silk to Silk clearance"
+
+#: AppTools/ToolRulesCheck.py:1333
+msgid "One or more of the Gerber objects is not valid."
+msgstr "One or more of the Gerber objects is not valid."
+
+#: AppTools/ToolRulesCheck.py:1341
+msgid "TOP -> Silk to Solder Mask Clearance"
+msgstr "TOP -> Silk to Solder Mask Clearance"
+
+#: AppTools/ToolRulesCheck.py:1347
+msgid "BOTTOM -> Silk to Solder Mask Clearance"
+msgstr "BOTTOM -> Silk to Solder Mask Clearance"
+
+#: AppTools/ToolRulesCheck.py:1351
+msgid ""
+"Both Silk and Solder Mask Gerber objects has to be either both Top or both "
+"Bottom."
+msgstr ""
+"Both Silk and Solder Mask Gerber objects has to be either both Top or both "
+"Bottom."
+
+#: AppTools/ToolRulesCheck.py:1387
+msgid ""
+"One of the Silk Gerber objects or the Outline Gerber object is not valid."
+msgstr ""
+"One of the Silk Gerber objects or the Outline Gerber object is not valid."
+
+#: AppTools/ToolRulesCheck.py:1431
+msgid "TOP -> Minimum Solder Mask Sliver"
+msgstr "TOP -> Minimum Solder Mask Sliver"
+
+#: AppTools/ToolRulesCheck.py:1441
+msgid "BOTTOM -> Minimum Solder Mask Sliver"
+msgstr "BOTTOM -> Minimum Solder Mask Sliver"
+
+#: AppTools/ToolRulesCheck.py:1490
+msgid "One of the Copper Gerber objects or the Excellon objects is not valid."
+msgstr "One of the Copper Gerber objects or the Excellon objects is not valid."
+
+#: AppTools/ToolRulesCheck.py:1506
+msgid ""
+"Excellon object presence is mandatory for this rule but none is selected."
+msgstr ""
+"Excellon object presence is mandatory for this rule but none is selected."
+
+#: AppTools/ToolRulesCheck.py:1579 AppTools/ToolRulesCheck.py:1592
+#: AppTools/ToolRulesCheck.py:1603 AppTools/ToolRulesCheck.py:1616
+msgid "STATUS"
+msgstr "STATUS"
+
+#: AppTools/ToolRulesCheck.py:1582 AppTools/ToolRulesCheck.py:1606
+msgid "FAILED"
+msgstr "FAILED"
+
+#: AppTools/ToolRulesCheck.py:1595 AppTools/ToolRulesCheck.py:1619
+msgid "PASSED"
+msgstr "PASSED"
+
+#: AppTools/ToolRulesCheck.py:1596 AppTools/ToolRulesCheck.py:1620
+msgid "Violations: There are no violations for the current rule."
+msgstr "Violations: There are no violations for the current rule."
+
+#: AppTools/ToolShell.py:74 AppTools/ToolShell.py:76
+msgid "...processing..."
+msgstr "...processing..."
+
+#: AppTools/ToolSolderPaste.py:37
+msgid "Solder Paste Tool"
+msgstr "Solder Paste Tool"
+
+#: AppTools/ToolSolderPaste.py:69
+msgid "Gerber Solder paste object. "
+msgstr "Gerber Solder paste object. "
+
+#: AppTools/ToolSolderPaste.py:76
+msgid ""
+"Tools pool from which the algorithm\n"
+"will pick the ones used for dispensing solder paste."
+msgstr ""
+"Tools pool from which the algorithm\n"
+"will pick the ones used for dispensing solder paste."
+
+#: AppTools/ToolSolderPaste.py:91
+msgid ""
+"This is the Tool Number.\n"
+"The solder dispensing will start with the tool with the biggest \n"
+"diameter, continuing until there are no more Nozzle tools.\n"
+"If there are no longer tools but there are still pads not covered\n"
+" with solder paste, the app will issue a warning message box."
+msgstr ""
+"This is the Tool Number.\n"
+"The solder dispensing will start with the tool with the biggest \n"
+"diameter, continuing until there are no more Nozzle tools.\n"
+"If there are no longer tools but there are still pads not covered\n"
+" with solder paste, the app will issue a warning message box."
+
+#: AppTools/ToolSolderPaste.py:98
+msgid ""
+"Nozzle tool Diameter. It's value (in current FlatCAM units)\n"
+"is the width of the solder paste dispensed."
+msgstr ""
+"Nozzle tool Diameter. It's value (in current FlatCAM units)\n"
+"is the width of the solder paste dispensed."
+
+#: AppTools/ToolSolderPaste.py:105
+msgid "New Nozzle Tool"
+msgstr "New Nozzle Tool"
+
+#: AppTools/ToolSolderPaste.py:124
+msgid ""
+"Add a new nozzle tool to the Tool Table\n"
+"with the diameter specified above."
+msgstr ""
+"Add a new nozzle tool to the Tool Table\n"
+"with the diameter specified above."
+
+#: AppTools/ToolSolderPaste.py:136
+msgid "Generate solder paste dispensing geometry."
+msgstr "Generate solder paste dispensing geometry."
+
+#: AppTools/ToolSolderPaste.py:155
+msgid "STEP 1"
+msgstr "STEP 1"
+
+#: AppTools/ToolSolderPaste.py:157
+msgid ""
+"First step is to select a number of nozzle tools for usage\n"
+"and then optionally modify the GCode parameters below."
+msgstr ""
+"First step is to select a number of nozzle tools for usage\n"
+"and then optionally modify the GCode parameters below."
+
+#: AppTools/ToolSolderPaste.py:160
+msgid ""
+"Select tools.\n"
+"Modify parameters."
+msgstr ""
+"Select tools.\n"
+"Modify parameters."
+
+#: AppTools/ToolSolderPaste.py:280
+msgid ""
+"Feedrate (speed) while moving up vertically\n"
+" to Dispense position (on Z plane)."
+msgstr ""
+"Feedrate (speed) while moving up vertically\n"
+" to Dispense position (on Z plane)."
+
+#: AppTools/ToolSolderPaste.py:350
+msgid ""
+"Generate GCode for Solder Paste dispensing\n"
+"on PCB pads."
+msgstr ""
+"Generate GCode for Solder Paste dispensing\n"
+"on PCB pads."
+
+#: AppTools/ToolSolderPaste.py:371
+msgid "STEP 2"
+msgstr "STEP 2"
+
+#: AppTools/ToolSolderPaste.py:373
+msgid ""
+"Second step is to create a solder paste dispensing\n"
+"geometry out of an Solder Paste Mask Gerber file."
+msgstr ""
+"Second step is to create a solder paste dispensing\n"
+"geometry out of an Solder Paste Mask Gerber file."
+
+#: AppTools/ToolSolderPaste.py:390
+msgid "Geo Result"
+msgstr "Geo Result"
+
+#: AppTools/ToolSolderPaste.py:392
+msgid ""
+"Geometry Solder Paste object.\n"
+"The name of the object has to end in:\n"
+"'_solderpaste' as a protection."
+msgstr ""
+"Geometry Solder Paste object.\n"
+"The name of the object has to end in:\n"
+"'_solderpaste' as a protection."
+
+#: AppTools/ToolSolderPaste.py:401
+msgid "STEP 3"
+msgstr "STEP 3"
+
+#: AppTools/ToolSolderPaste.py:403
+msgid ""
+"Third step is to select a solder paste dispensing geometry,\n"
+"and then generate a CNCJob object.\n"
+"\n"
+"REMEMBER: if you want to create a CNCJob with new parameters,\n"
+"first you need to generate a geometry with those new params,\n"
+"and only after that you can generate an updated CNCJob."
+msgstr ""
+"Third step is to select a solder paste dispensing geometry,\n"
+"and then generate a CNCJob object.\n"
+"\n"
+"REMEMBER: if you want to create a CNCJob with new parameters,\n"
+"first you need to generate a geometry with those new params,\n"
+"and only after that you can generate an updated CNCJob."
+
+#: AppTools/ToolSolderPaste.py:424
+msgid "CNC Result"
+msgstr "CNC Result"
+
+#: AppTools/ToolSolderPaste.py:426
+msgid ""
+"CNCJob Solder paste object.\n"
+"In order to enable the GCode save section,\n"
+"the name of the object has to end in:\n"
+"'_solderpaste' as a protection."
+msgstr ""
+"CNCJob Solder paste object.\n"
+"In order to enable the GCode save section,\n"
+"the name of the object has to end in:\n"
+"'_solderpaste' as a protection."
+
+#: AppTools/ToolSolderPaste.py:436
+msgid "View GCode"
+msgstr "View GCode"
+
+#: AppTools/ToolSolderPaste.py:438
+msgid ""
+"View the generated GCode for Solder Paste dispensing\n"
+"on PCB pads."
+msgstr ""
+"View the generated GCode for Solder Paste dispensing\n"
+"on PCB pads."
+
+#: AppTools/ToolSolderPaste.py:448
+msgid "Save GCode"
+msgstr "Save GCode"
+
+#: AppTools/ToolSolderPaste.py:450
+msgid ""
+"Save the generated GCode for Solder Paste dispensing\n"
+"on PCB pads, to a file."
+msgstr ""
+"Save the generated GCode for Solder Paste dispensing\n"
+"on PCB pads, to a file."
+
+#: AppTools/ToolSolderPaste.py:460
+msgid "STEP 4"
+msgstr "STEP 4"
+
+#: AppTools/ToolSolderPaste.py:462
+msgid ""
+"Fourth step (and last) is to select a CNCJob made from \n"
+"a solder paste dispensing geometry, and then view/save it's GCode."
+msgstr ""
+"Fourth step (and last) is to select a CNCJob made from \n"
+"a solder paste dispensing geometry, and then view/save it's GCode."
+
+#: AppTools/ToolSolderPaste.py:922
+msgid "New Nozzle tool added to Tool Table."
+msgstr "New Nozzle tool added to Tool Table."
+
+#: AppTools/ToolSolderPaste.py:965
+msgid "Nozzle tool from Tool Table was edited."
+msgstr "Nozzle tool from Tool Table was edited."
+
+#: AppTools/ToolSolderPaste.py:1024
+msgid "Delete failed. Select a Nozzle tool to delete."
+msgstr "Delete failed. Select a Nozzle tool to delete."
+
+#: AppTools/ToolSolderPaste.py:1030
+msgid "Nozzle tool(s) deleted from Tool Table."
+msgstr "Nozzle tool(s) deleted from Tool Table."
+
+#: AppTools/ToolSolderPaste.py:1086
+msgid "No SolderPaste mask Gerber object loaded."
+msgstr "No SolderPaste mask Gerber object loaded."
+
+#: AppTools/ToolSolderPaste.py:1104
+msgid "Creating Solder Paste dispensing geometry."
+msgstr "Creating Solder Paste dispensing geometry."
+
+#: AppTools/ToolSolderPaste.py:1117
+msgid "No Nozzle tools in the tool table."
+msgstr "No Nozzle tools in the tool table."
+
+#: AppTools/ToolSolderPaste.py:1243
+msgid "Cancelled. Empty file, it has no geometry..."
+msgstr "Cancelled. Empty file, it has no geometry..."
+
+#: AppTools/ToolSolderPaste.py:1246
+msgid "Solder Paste geometry generated successfully"
+msgstr "Solder Paste geometry generated successfully"
+
+#: AppTools/ToolSolderPaste.py:1253
+msgid "Some or all pads have no solder due of inadequate nozzle diameters..."
+msgstr "Some or all pads have no solder due of inadequate nozzle diameters..."
+
+#: AppTools/ToolSolderPaste.py:1267
+msgid "Generating Solder Paste dispensing geometry..."
+msgstr "Generating Solder Paste dispensing geometry..."
+
+#: AppTools/ToolSolderPaste.py:1287
+msgid "There is no Geometry object available."
+msgstr "There is no Geometry object available."
+
+#: AppTools/ToolSolderPaste.py:1292
+msgid "This Geometry can't be processed. NOT a solder_paste_tool geometry."
+msgstr "This Geometry can't be processed. NOT a solder_paste_tool geometry."
+
+#: AppTools/ToolSolderPaste.py:1328
+msgid "An internal error has ocurred. See shell.\n"
+msgstr "An internal error has ocurred. See shell.\n"
+
+#: AppTools/ToolSolderPaste.py:1393
+msgid "ToolSolderPaste CNCjob created"
+msgstr "ToolSolderPaste CNCjob created"
+
+#: AppTools/ToolSolderPaste.py:1412
+msgid "SP GCode Editor"
+msgstr "SP GCode Editor"
+
+#: AppTools/ToolSolderPaste.py:1424 AppTools/ToolSolderPaste.py:1429
+#: AppTools/ToolSolderPaste.py:1484
+msgid ""
+"This CNCJob object can't be processed. NOT a solder_paste_tool CNCJob object."
+msgstr ""
+"This CNCJob object can't be processed. NOT a solder_paste_tool CNCJob object."
+
+#: AppTools/ToolSolderPaste.py:1454
+msgid "No Gcode in the object"
+msgstr "No Gcode in the object"
+
+#: AppTools/ToolSolderPaste.py:1494
+msgid "Export GCode ..."
+msgstr "Export GCode ..."
+
+#: AppTools/ToolSolderPaste.py:1542
+msgid "Solder paste dispenser GCode file saved to"
+msgstr "Solder paste dispenser GCode file saved to"
+
+#: AppTools/ToolSub.py:65
+msgid "Gerber Objects"
+msgstr "Gerber Objects"
+
+#: AppTools/ToolSub.py:78
+msgid ""
+"Gerber object from which to subtract\n"
+"the subtractor Gerber object."
+msgstr ""
+"Gerber object from which to subtract\n"
+"the subtractor Gerber object."
+
+#: AppTools/ToolSub.py:91 AppTools/ToolSub.py:146
+msgid "Subtractor"
+msgstr "Subtractor"
+
+#: AppTools/ToolSub.py:93
+msgid ""
+"Gerber object that will be subtracted\n"
+"from the target Gerber object."
+msgstr ""
+"Gerber object that will be subtracted\n"
+"from the target Gerber object."
+
+#: AppTools/ToolSub.py:100
+msgid "Subtract Gerber"
+msgstr "Subtract Gerber"
+
+#: AppTools/ToolSub.py:102
+msgid ""
+"Will remove the area occupied by the subtractor\n"
+"Gerber from the Target Gerber.\n"
+"Can be used to remove the overlapping silkscreen\n"
+"over the soldermask."
+msgstr ""
+"Will remove the area occupied by the subtractor\n"
+"Gerber from the Target Gerber.\n"
+"Can be used to remove the overlapping silkscreen\n"
+"over the soldermask."
+
+#: AppTools/ToolSub.py:120
+msgid "Geometry Objects"
+msgstr "Geometry Objects"
+
+#: AppTools/ToolSub.py:133
+msgid ""
+"Geometry object from which to subtract\n"
+"the subtractor Geometry object."
+msgstr ""
+"Geometry object from which to subtract\n"
+"the subtractor Geometry object."
+
+#: AppTools/ToolSub.py:148
+msgid ""
+"Geometry object that will be subtracted\n"
+"from the target Geometry object."
+msgstr ""
+"Geometry object that will be subtracted\n"
+"from the target Geometry object."
+
+#: AppTools/ToolSub.py:156
+msgid ""
+"Checking this will close the paths cut by the Geometry subtractor object."
+msgstr ""
+"Checking this will close the paths cut by the Geometry subtractor object."
+
+#: AppTools/ToolSub.py:159
+msgid "Subtract Geometry"
+msgstr "Subtract Geometry"
+
+#: AppTools/ToolSub.py:161
+msgid ""
+"Will remove the area occupied by the subtractor\n"
+"Geometry from the Target Geometry."
+msgstr ""
+"Will remove the area occupied by the subtractor\n"
+"Geometry from the Target Geometry."
+
+#: AppTools/ToolSub.py:263
+msgid "Sub Tool"
+msgstr "Sub Tool"
+
+#: AppTools/ToolSub.py:284 AppTools/ToolSub.py:489
+msgid "No Target object loaded."
+msgstr "No Target object loaded."
+
+#: AppTools/ToolSub.py:287
+msgid "Loading geometry from Gerber objects."
+msgstr "Loading geometry from Gerber objects."
+
+#: AppTools/ToolSub.py:299 AppTools/ToolSub.py:504
+msgid "No Subtractor object loaded."
+msgstr "No Subtractor object loaded."
+
+#: AppTools/ToolSub.py:331
+msgid "Processing geometry from Subtractor Gerber object."
+msgstr "Processing geometry from Subtractor Gerber object."
+
+#: AppTools/ToolSub.py:352
+msgid "Parsing geometry for aperture"
+msgstr "Parsing geometry for aperture"
+
+#: AppTools/ToolSub.py:413
+msgid "Finished parsing geometry for aperture"
+msgstr "Finished parsing geometry for aperture"
+
+#: AppTools/ToolSub.py:458 AppTools/ToolSub.py:661
+msgid "Generating new object ..."
+msgstr "Generating new object ..."
+
+#: AppTools/ToolSub.py:462 AppTools/ToolSub.py:665 AppTools/ToolSub.py:746
+msgid "Generating new object failed."
+msgstr "Generating new object failed."
+
+#: AppTools/ToolSub.py:467 AppTools/ToolSub.py:671
+msgid "Created"
+msgstr "Created"
+
+#: AppTools/ToolSub.py:518
+msgid "Currently, the Subtractor geometry cannot be of type Multigeo."
+msgstr "Currently, the Subtractor geometry cannot be of type Multigeo."
+
+#: AppTools/ToolSub.py:563
+msgid "Parsing solid_geometry ..."
+msgstr "Parsing solid_geometry ..."
+
+#: AppTools/ToolSub.py:565
+msgid "Parsing solid_geometry for tool"
+msgstr "Parsing solid_geometry for tool"
+
+#: AppTools/ToolTransform.py:23
+msgid "Object Transform"
+msgstr "Object Transform"
+
+#: AppTools/ToolTransform.py:78
+msgid ""
+"Rotate the selected object(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected objects."
+msgstr ""
+"Rotate the selected object(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected objects."
+
+#: AppTools/ToolTransform.py:99 AppTools/ToolTransform.py:120
+msgid ""
+"Angle for Skew action, in degrees.\n"
+"Float number between -360 and 360."
+msgstr ""
+"Angle for Skew action, in degrees.\n"
+"Float number between -360 and 360."
+
+#: AppTools/ToolTransform.py:109 AppTools/ToolTransform.py:130
+msgid ""
+"Skew/shear the selected object(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected objects."
+msgstr ""
+"Skew/shear the selected object(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected objects."
+
+#: AppTools/ToolTransform.py:159 AppTools/ToolTransform.py:179
+msgid ""
+"Scale the selected object(s).\n"
+"The point of reference depends on \n"
+"the Scale reference checkbox state."
+msgstr ""
+"Scale the selected object(s).\n"
+"The point of reference depends on \n"
+"the Scale reference checkbox state."
+
+#: AppTools/ToolTransform.py:228 AppTools/ToolTransform.py:248
+msgid ""
+"Offset the selected object(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected objects.\n"
+msgstr ""
+"Offset the selected object(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected objects.\n"
+
+#: AppTools/ToolTransform.py:268 AppTools/ToolTransform.py:273
+msgid "Flip the selected object(s) over the X axis."
+msgstr "Flip the selected object(s) over the X axis."
+
+#: AppTools/ToolTransform.py:297
+msgid "Ref. Point"
+msgstr "Ref. Point"
+
+#: AppTools/ToolTransform.py:348
+msgid ""
+"Create the buffer effect on each geometry,\n"
+"element from the selected object, using the distance."
+msgstr ""
+"Create the buffer effect on each geometry,\n"
+"element from the selected object, using the distance."
+
+#: AppTools/ToolTransform.py:374
+msgid ""
+"Create the buffer effect on each geometry,\n"
+"element from the selected object, using the factor."
+msgstr ""
+"Create the buffer effect on each geometry,\n"
+"element from the selected object, using the factor."
+
+#: AppTools/ToolTransform.py:479
+msgid "Buffer D"
+msgstr "Buffer D"
+
+#: AppTools/ToolTransform.py:480
+msgid "Buffer F"
+msgstr "Buffer F"
+
+#: AppTools/ToolTransform.py:557
+msgid "Rotate transformation can not be done for a value of 0."
+msgstr "Rotate transformation can not be done for a value of 0."
+
+#: AppTools/ToolTransform.py:596 AppTools/ToolTransform.py:619
+msgid "Scale transformation can not be done for a factor of 0 or 1."
+msgstr "Scale transformation can not be done for a factor of 0 or 1."
+
+#: AppTools/ToolTransform.py:634 AppTools/ToolTransform.py:644
+msgid "Offset transformation can not be done for a value of 0."
+msgstr "Offset transformation can not be done for a value of 0."
+
+#: AppTools/ToolTransform.py:676
+msgid "No object selected. Please Select an object to rotate!"
+msgstr "No object selected. Please Select an object to rotate!"
+
+#: AppTools/ToolTransform.py:702
+msgid "CNCJob objects can't be rotated."
+msgstr "CNCJob objects can't be rotated."
+
+#: AppTools/ToolTransform.py:710
+msgid "Rotate done"
+msgstr "Rotate done"
+
+#: AppTools/ToolTransform.py:713 AppTools/ToolTransform.py:783
+#: AppTools/ToolTransform.py:833 AppTools/ToolTransform.py:887
+#: AppTools/ToolTransform.py:917 AppTools/ToolTransform.py:953
+msgid "Due of"
+msgstr "Due of"
+
+#: AppTools/ToolTransform.py:713 AppTools/ToolTransform.py:783
+#: AppTools/ToolTransform.py:833 AppTools/ToolTransform.py:887
+#: AppTools/ToolTransform.py:917 AppTools/ToolTransform.py:953
+msgid "action was not executed."
+msgstr "action was not executed."
+
+#: AppTools/ToolTransform.py:725
+msgid "No object selected. Please Select an object to flip"
+msgstr "No object selected. Please Select an object to flip"
+
+#: AppTools/ToolTransform.py:758
+msgid "CNCJob objects can't be mirrored/flipped."
+msgstr "CNCJob objects can't be mirrored/flipped."
+
+#: AppTools/ToolTransform.py:793
+msgid "Skew transformation can not be done for 0, 90 and 180 degrees."
+msgstr "Skew transformation can not be done for 0, 90 and 180 degrees."
+
+#: AppTools/ToolTransform.py:798
+msgid "No object selected. Please Select an object to shear/skew!"
+msgstr "No object selected. Please Select an object to shear/skew!"
+
+#: AppTools/ToolTransform.py:818
+msgid "CNCJob objects can't be skewed."
+msgstr "CNCJob objects can't be skewed."
+
+#: AppTools/ToolTransform.py:830
+msgid "Skew on the"
+msgstr "Skew on the"
+
+#: AppTools/ToolTransform.py:830 AppTools/ToolTransform.py:884
+#: AppTools/ToolTransform.py:914
+msgid "axis done"
+msgstr "axis done"
+
+#: AppTools/ToolTransform.py:844
+msgid "No object selected. Please Select an object to scale!"
+msgstr "No object selected. Please Select an object to scale!"
+
+#: AppTools/ToolTransform.py:875
+msgid "CNCJob objects can't be scaled."
+msgstr "CNCJob objects can't be scaled."
+
+#: AppTools/ToolTransform.py:884
+msgid "Scale on the"
+msgstr "Scale on the"
+
+#: AppTools/ToolTransform.py:894
+msgid "No object selected. Please Select an object to offset!"
+msgstr "No object selected. Please Select an object to offset!"
+
+#: AppTools/ToolTransform.py:901
+msgid "CNCJob objects can't be offset."
+msgstr "CNCJob objects can't be offset."
+
+#: AppTools/ToolTransform.py:914
+msgid "Offset on the"
+msgstr "Offset on the"
+
+#: AppTools/ToolTransform.py:924
+msgid "No object selected. Please Select an object to buffer!"
+msgstr "No object selected. Please Select an object to buffer!"
+
+#: AppTools/ToolTransform.py:927
+msgid "Applying Buffer"
+msgstr "Applying Buffer"
+
+#: AppTools/ToolTransform.py:931
+msgid "CNCJob objects can't be buffered."
+msgstr "CNCJob objects can't be buffered."
+
+#: AppTools/ToolTransform.py:948
+msgid "Buffer done"
+msgstr "Buffer done"
+
+#: AppTranslation.py:104
msgid "The application will restart."
msgstr "The application will restart."
-#: FlatCAMTranslation.py:106
+#: AppTranslation.py:106
msgid "Are you sure do you want to change the current language to"
msgstr "Are you sure do you want to change the current language to"
-#: FlatCAMTranslation.py:107
+#: AppTranslation.py:107
msgid "Apply Language ..."
msgstr "Apply Language ..."
+#: AppTranslation.py:201 App_Main.py:3047
+msgid ""
+"There are files/objects modified in FlatCAM. \n"
+"Do you want to Save the project?"
+msgstr ""
+"There are files/objects modified in FlatCAM. \n"
+"Do you want to Save the project?"
+
+#: AppTranslation.py:204 App_Main.py:3050 App_Main.py:6334
+msgid "Save changes"
+msgstr "Save changes"
+
+#: App_Main.py:477
+msgid "FlatCAM is initializing ..."
+msgstr "FlatCAM is initializing ..."
+
+#: App_Main.py:620
+msgid "Could not find the Language files. The App strings are missing."
+msgstr "Could not find the Language files. The App strings are missing."
+
+#: App_Main.py:692
+msgid ""
+"FlatCAM is initializing ...\n"
+"Canvas initialization started."
+msgstr ""
+"FlatCAM is initializing ...\n"
+"Canvas initialization started."
+
+#: App_Main.py:712
+msgid ""
+"FlatCAM is initializing ...\n"
+"Canvas initialization started.\n"
+"Canvas initialization finished in"
+msgstr ""
+"FlatCAM is initializing ...\n"
+"Canvas initialization started.\n"
+"Canvas initialization finished in"
+
+#: App_Main.py:1542 App_Main.py:6445
+msgid "New Project - Not saved"
+msgstr "New Project - Not saved"
+
+#: App_Main.py:1643
+msgid ""
+"Found old default preferences files. Please reboot the application to update."
+msgstr ""
+"Found old default preferences files. Please reboot the application to update."
+
+#: App_Main.py:1710
+msgid "Open Config file failed."
+msgstr "Open Config file failed."
+
+#: App_Main.py:1725
+msgid "Open Script file failed."
+msgstr "Open Script file failed."
+
+#: App_Main.py:1751
+msgid "Open Excellon file failed."
+msgstr "Open Excellon file failed."
+
+#: App_Main.py:1764
+msgid "Open GCode file failed."
+msgstr "Open GCode file failed."
+
+#: App_Main.py:1777
+msgid "Open Gerber file failed."
+msgstr "Open Gerber file failed."
+
+#: App_Main.py:2095
+msgid "Select a Geometry, Gerber, Excellon or CNCJob Object to edit."
+msgstr "Select a Geometry, Gerber, Excellon or CNCJob Object to edit."
+
+#: App_Main.py:2110
+msgid ""
+"Simultaneous editing of tools geometry in a MultiGeo Geometry is not "
+"possible.\n"
+"Edit only one geometry at a time."
+msgstr ""
+"Simultaneous editing of tools geometry in a MultiGeo Geometry is not "
+"possible.\n"
+"Edit only one geometry at a time."
+
+#: App_Main.py:2176
+msgid "Editor is activated ..."
+msgstr "Editor is activated ..."
+
+#: App_Main.py:2197
+msgid "Do you want to save the edited object?"
+msgstr "Do you want to save the edited object?"
+
+#: App_Main.py:2235
+msgid "Object empty after edit."
+msgstr "Object empty after edit."
+
+#: App_Main.py:2239 App_Main.py:2260 App_Main.py:2282
+msgid "Editor exited. Editor content saved."
+msgstr "Editor exited. Editor content saved."
+
+#: App_Main.py:2286 App_Main.py:2309 App_Main.py:2327
+msgid "Select a Gerber, Geometry or Excellon Object to update."
+msgstr "Select a Gerber, Geometry or Excellon Object to update."
+
+#: App_Main.py:2289
+msgid "is updated, returning to App..."
+msgstr "is updated, returning to App..."
+
+#: App_Main.py:2296
+msgid "Editor exited. Editor content was not saved."
+msgstr "Editor exited. Editor content was not saved."
+
+#: App_Main.py:2422 App_Main.py:2426
+msgid "Import FlatCAM Preferences"
+msgstr "Import FlatCAM Preferences"
+
+#: App_Main.py:2437
+msgid "Imported Defaults from"
+msgstr "Imported Defaults from"
+
+#: App_Main.py:2457 App_Main.py:2462
+msgid "Export FlatCAM Preferences"
+msgstr "Export FlatCAM Preferences"
+
+#: App_Main.py:2482
+msgid "Exported preferences to"
+msgstr "Exported preferences to"
+
+#: App_Main.py:2502 App_Main.py:2507
+msgid "Save to file"
+msgstr "Save to file"
+
+#: App_Main.py:2531
+msgid "Could not load the file."
+msgstr "Could not load the file."
+
+#: App_Main.py:2547
+msgid "Exported file to"
+msgstr "Exported file to"
+
+#: App_Main.py:2584
+msgid "Failed to open recent files file for writing."
+msgstr "Failed to open recent files file for writing."
+
+#: App_Main.py:2595
+msgid "Failed to open recent projects file for writing."
+msgstr "Failed to open recent projects file for writing."
+
+#: App_Main.py:2650
+msgid "2D Computer-Aided Printed Circuit Board Manufacturing"
+msgstr "2D Computer-Aided Printed Circuit Board Manufacturing"
+
+#: App_Main.py:2651
+msgid "Development"
+msgstr "Development"
+
+#: App_Main.py:2652
+msgid "DOWNLOAD"
+msgstr "DOWNLOAD"
+
+#: App_Main.py:2653
+msgid "Issue tracker"
+msgstr "Issue tracker"
+
+#: App_Main.py:2672
+msgid "Licensed under the MIT license"
+msgstr "Licensed under the MIT license"
+
+#: App_Main.py:2681
+msgid ""
+"Permission is hereby granted, free of charge, to any person obtaining a "
+"copy\n"
+"of this software and associated documentation files (the \"Software\"), to "
+"deal\n"
+"in the Software without restriction, including without limitation the "
+"rights\n"
+"to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n"
+"copies of the Software, and to permit persons to whom the Software is\n"
+"furnished to do so, subject to the following conditions:\n"
+"\n"
+"The above copyright notice and this permission notice shall be included in\n"
+"all copies or substantial portions of the Software.\n"
+"\n"
+"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS "
+"OR\n"
+"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n"
+"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n"
+"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n"
+"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING "
+"FROM,\n"
+"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n"
+"THE SOFTWARE."
+msgstr ""
+"Permission is hereby granted, free of charge, to any person obtaining a "
+"copy\n"
+"of this software and associated documentation files (the \"Software\"), to "
+"deal\n"
+"in the Software without restriction, including without limitation the "
+"rights\n"
+"to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n"
+"copies of the Software, and to permit persons to whom the Software is\n"
+"furnished to do so, subject to the following conditions:\n"
+"\n"
+"The above copyright notice and this permission notice shall be included in\n"
+"all copies or substantial portions of the Software.\n"
+"\n"
+"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS "
+"OR\n"
+"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n"
+"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n"
+"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n"
+"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING "
+"FROM,\n"
+"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n"
+"THE SOFTWARE."
+
+#: App_Main.py:2703
+msgid ""
+"Some of the icons used are from the following sources:
Icons by oNline Web Fonts"
+msgstr ""
+"Some of the icons used are from the following sources:
Icons by oNline Web Fonts"
+
+#: App_Main.py:2736
+msgid "Splash"
+msgstr "Splash"
+
+#: App_Main.py:2742
+msgid "Programmers"
+msgstr "Programmers"
+
+#: App_Main.py:2748
+msgid "Translators"
+msgstr "Translators"
+
+#: App_Main.py:2754
+msgid "License"
+msgstr "License"
+
+#: App_Main.py:2760
+msgid "Attributions"
+msgstr "Attributions"
+
+#: App_Main.py:2783
+msgid "Programmer"
+msgstr "Programmer"
+
+#: App_Main.py:2784
+msgid "Status"
+msgstr "Status"
+
+#: App_Main.py:2785 App_Main.py:2865
+msgid "E-mail"
+msgstr "E-mail"
+
+#: App_Main.py:2788
+msgid "Program Author"
+msgstr "Program Author"
+
+#: App_Main.py:2793
+msgid "BETA Maintainer >= 2019"
+msgstr "BETA Maintainer >= 2019"
+
+#: App_Main.py:2862
+msgid "Language"
+msgstr "Language"
+
+#: App_Main.py:2863
+msgid "Translator"
+msgstr "Translator"
+
+#: App_Main.py:2864
+msgid "Corrections"
+msgstr "Corrections"
+
+#: App_Main.py:3009
+msgid ""
+"This entry will resolve to another website if:\n"
+"\n"
+"1. FlatCAM.org website is down\n"
+"2. Someone forked FlatCAM project and wants to point\n"
+"to his own website\n"
+"\n"
+"If you can't get any informations about FlatCAM beta\n"
+"use the YouTube channel link from the Help menu."
+msgstr ""
+"This entry will resolve to another website if:\n"
+"\n"
+"1. FlatCAM.org website is down\n"
+"2. Someone forked FlatCAM project and wants to point\n"
+"to his own website\n"
+"\n"
+"If you can't get any informations about FlatCAM beta\n"
+"use the YouTube channel link from the Help menu."
+
+#: App_Main.py:3016
+msgid "Alternative website"
+msgstr "Alternative website"
+
+#: App_Main.py:3315
+msgid "Selected Excellon file extensions registered with FlatCAM."
+msgstr "Selected Excellon file extensions registered with FlatCAM."
+
+#: App_Main.py:3337
+msgid "Selected GCode file extensions registered with FlatCAM."
+msgstr "Selected GCode file extensions registered with FlatCAM."
+
+#: App_Main.py:3359
+msgid "Selected Gerber file extensions registered with FlatCAM."
+msgstr "Selected Gerber file extensions registered with FlatCAM."
+
+#: App_Main.py:3547 App_Main.py:3606 App_Main.py:3634
+msgid "At least two objects are required for join. Objects currently selected"
+msgstr "At least two objects are required for join. Objects currently selected"
+
+#: App_Main.py:3556
+msgid ""
+"Failed join. The Geometry objects are of different types.\n"
+"At least one is MultiGeo type and the other is SingleGeo type. A possibility "
+"is to convert from one to another and retry joining \n"
+"but in the case of converting from MultiGeo to SingleGeo, informations may "
+"be lost and the result may not be what was expected. \n"
+"Check the generated GCODE."
+msgstr ""
+"Failed join. The Geometry objects are of different types.\n"
+"At least one is MultiGeo type and the other is SingleGeo type. A possibility "
+"is to convert from one to another and retry joining \n"
+"but in the case of converting from MultiGeo to SingleGeo, informations may "
+"be lost and the result may not be what was expected. \n"
+"Check the generated GCODE."
+
+#: App_Main.py:3568 App_Main.py:3578
+msgid "Geometry merging finished"
+msgstr "Geometry merging finished"
+
+#: App_Main.py:3601
+msgid "Failed. Excellon joining works only on Excellon objects."
+msgstr "Failed. Excellon joining works only on Excellon objects."
+
+#: App_Main.py:3611
+msgid "Excellon merging finished"
+msgstr "Excellon merging finished"
+
+#: App_Main.py:3629
+msgid "Failed. Gerber joining works only on Gerber objects."
+msgstr "Failed. Gerber joining works only on Gerber objects."
+
+#: App_Main.py:3639
+msgid "Gerber merging finished"
+msgstr "Gerber merging finished"
+
+#: App_Main.py:3659 App_Main.py:3696
+msgid "Failed. Select a Geometry Object and try again."
+msgstr "Failed. Select a Geometry Object and try again."
+
+#: App_Main.py:3663 App_Main.py:3701
+msgid "Expected a GeometryObject, got"
+msgstr "Expected a GeometryObject, got"
+
+#: App_Main.py:3678
+msgid "A Geometry object was converted to MultiGeo type."
+msgstr "A Geometry object was converted to MultiGeo type."
+
+#: App_Main.py:3716
+msgid "A Geometry object was converted to SingleGeo type."
+msgstr "A Geometry object was converted to SingleGeo type."
+
+#: App_Main.py:3922
+msgid "Toggle Units"
+msgstr "Toggle Units"
+
+#: App_Main.py:3924
+msgid ""
+"Changing the units of the project\n"
+"will scale all objects.\n"
+"\n"
+"Do you want to continue?"
+msgstr ""
+"Changing the units of the project\n"
+"will scale all objects.\n"
+"\n"
+"Do you want to continue?"
+
+#: App_Main.py:3927 App_Main.py:4201 App_Main.py:4278 App_Main.py:6722
+#: App_Main.py:6736 App_Main.py:7069 App_Main.py:7079
+msgid "Ok"
+msgstr "Ok"
+
+#: App_Main.py:3977
+msgid "Converted units to"
+msgstr "Converted units to"
+
+#: App_Main.py:4019
+#| msgid "All plots enabled."
+msgid "Axis enabled."
+msgstr "Axis enabled."
+
+#: App_Main.py:4031
+#| msgid "All plots disabled."
+msgid "Axis disabled."
+msgstr "Axis disabled."
+
+#: App_Main.py:4039
+#| msgid "Disabled"
+msgid "HUD disabled."
+msgstr "HUD disabled."
+
+#: App_Main.py:4041
+#| msgid "Enabled"
+msgid "HUD enabled."
+msgstr "HUD enabled."
+
+#: App_Main.py:4065
+#| msgid "Workspace enabled."
+msgid "Grid enabled."
+msgstr "Grid enabled."
+
+#: App_Main.py:4080
+#| msgid "Workspace disabled."
+msgid "Grid disabled."
+msgstr "Grid disabled."
+
+#: App_Main.py:4101
+msgid "Detachable Tabs"
+msgstr "Detachable Tabs"
+
+#: App_Main.py:4130
+msgid "Workspace enabled."
+msgstr "Workspace enabled."
+
+#: App_Main.py:4133
+msgid "Workspace disabled."
+msgstr "Workspace disabled."
+
+#: App_Main.py:4197
+msgid ""
+"Adding Tool works only when Advanced is checked.\n"
+"Go to Preferences -> General - Show Advanced Options."
+msgstr ""
+"Adding Tool works only when Advanced is checked.\n"
+"Go to Preferences -> General - Show Advanced Options."
+
+#: App_Main.py:4273
+msgid "Delete objects"
+msgstr "Delete objects"
+
+#: App_Main.py:4276
+msgid ""
+"Are you sure you want to permanently delete\n"
+"the selected objects?"
+msgstr ""
+"Are you sure you want to permanently delete\n"
+"the selected objects?"
+
+#: App_Main.py:4314
+msgid "Object(s) deleted"
+msgstr "Object(s) deleted"
+
+#: App_Main.py:4324
+msgid "Save the work in Editor and try again ..."
+msgstr "Save the work in Editor and try again ..."
+
+#: App_Main.py:4353
+msgid "Object deleted"
+msgstr "Object deleted"
+
+#: App_Main.py:4380
+msgid "Click to set the origin ..."
+msgstr "Click to set the origin ..."
+
+#: App_Main.py:4402
+msgid "Setting Origin..."
+msgstr "Setting Origin..."
+
+#: App_Main.py:4415 App_Main.py:4517
+msgid "Origin set"
+msgstr "Origin set"
+
+#: App_Main.py:4432
+msgid "Origin coordinates specified but incomplete."
+msgstr "Origin coordinates specified but incomplete."
+
+#: App_Main.py:4473
+msgid "Moving to Origin..."
+msgstr "Moving to Origin..."
+
+#: App_Main.py:4554
+msgid "Jump to ..."
+msgstr "Jump to ..."
+
+#: App_Main.py:4555
+msgid "Enter the coordinates in format X,Y:"
+msgstr "Enter the coordinates in format X,Y:"
+
+#: App_Main.py:4565
+msgid "Wrong coordinates. Enter coordinates in format: X,Y"
+msgstr "Wrong coordinates. Enter coordinates in format: X,Y"
+
+#: App_Main.py:4683
+msgid "Bottom-Left"
+msgstr "Bottom-Left"
+
+#: App_Main.py:4686
+msgid "Top-Right"
+msgstr "Top-Right"
+
+#: App_Main.py:4707
+msgid "Locate ..."
+msgstr "Locate ..."
+
+#: App_Main.py:4970 App_Main.py:5047
+msgid "No object is selected. Select an object and try again."
+msgstr "No object is selected. Select an object and try again."
+
+#: App_Main.py:5073
+msgid ""
+"Aborting. The current task will be gracefully closed as soon as possible..."
+msgstr ""
+"Aborting. The current task will be gracefully closed as soon as possible..."
+
+#: App_Main.py:5079
+msgid "The current task was gracefully closed on user request..."
+msgstr "The current task was gracefully closed on user request..."
+
+#: App_Main.py:5224
+msgid "Tools in Tools Database edited but not saved."
+msgstr "Tools in Tools Database edited but not saved."
+
+#: App_Main.py:5253
+msgid "Adding tool from DB is not allowed for this object."
+msgstr "Adding tool from DB is not allowed for this object."
+
+#: App_Main.py:5271
+msgid ""
+"One or more Tools are edited.\n"
+"Do you want to update the Tools Database?"
+msgstr ""
+"One or more Tools are edited.\n"
+"Do you want to update the Tools Database?"
+
+#: App_Main.py:5273
+msgid "Save Tools Database"
+msgstr "Save Tools Database"
+
+#: App_Main.py:5326
+msgid "No object selected to Flip on Y axis."
+msgstr "No object selected to Flip on Y axis."
+
+#: App_Main.py:5352
+msgid "Flip on Y axis done."
+msgstr "Flip on Y axis done."
+
+#: App_Main.py:5374
+msgid "No object selected to Flip on X axis."
+msgstr "No object selected to Flip on X axis."
+
+#: App_Main.py:5400
+msgid "Flip on X axis done."
+msgstr "Flip on X axis done."
+
+#: App_Main.py:5422
+msgid "No object selected to Rotate."
+msgstr "No object selected to Rotate."
+
+#: App_Main.py:5425 App_Main.py:5476 App_Main.py:5513
+msgid "Transform"
+msgstr "Transform"
+
+#: App_Main.py:5425 App_Main.py:5476 App_Main.py:5513
+msgid "Enter the Angle value:"
+msgstr "Enter the Angle value:"
+
+#: App_Main.py:5455
+msgid "Rotation done."
+msgstr "Rotation done."
+
+#: App_Main.py:5457
+msgid "Rotation movement was not executed."
+msgstr "Rotation movement was not executed."
+
+#: App_Main.py:5474
+msgid "No object selected to Skew/Shear on X axis."
+msgstr "No object selected to Skew/Shear on X axis."
+
+#: App_Main.py:5495
+msgid "Skew on X axis done."
+msgstr "Skew on X axis done."
+
+#: App_Main.py:5511
+msgid "No object selected to Skew/Shear on Y axis."
+msgstr "No object selected to Skew/Shear on Y axis."
+
+#: App_Main.py:5532
+msgid "Skew on Y axis done."
+msgstr "Skew on Y axis done."
+
+#: App_Main.py:5611
+msgid "New Grid ..."
+msgstr "New Grid ..."
+
+#: App_Main.py:5612
+msgid "Enter a Grid Value:"
+msgstr "Enter a Grid Value:"
+
+#: App_Main.py:5620 App_Main.py:5644
+msgid "Please enter a grid value with non-zero value, in Float format."
+msgstr "Please enter a grid value with non-zero value, in Float format."
+
+#: App_Main.py:5625
+msgid "New Grid added"
+msgstr "New Grid added"
+
+#: App_Main.py:5627
+msgid "Grid already exists"
+msgstr "Grid already exists"
+
+#: App_Main.py:5629
+msgid "Adding New Grid cancelled"
+msgstr "Adding New Grid cancelled"
+
+#: App_Main.py:5650
+msgid " Grid Value does not exist"
+msgstr " Grid Value does not exist"
+
+#: App_Main.py:5652
+msgid "Grid Value deleted"
+msgstr "Grid Value deleted"
+
+#: App_Main.py:5654
+msgid "Delete Grid value cancelled"
+msgstr "Delete Grid value cancelled"
+
+#: App_Main.py:5660
+msgid "Key Shortcut List"
+msgstr "Key Shortcut List"
+
+#: App_Main.py:5694
+msgid " No object selected to copy it's name"
+msgstr " No object selected to copy it's name"
+
+#: App_Main.py:5698
+msgid "Name copied on clipboard ..."
+msgstr "Name copied on clipboard ..."
+
+#: App_Main.py:6331
+msgid ""
+"There are files/objects opened in FlatCAM.\n"
+"Creating a New project will delete them.\n"
+"Do you want to Save the project?"
+msgstr ""
+"There are files/objects opened in FlatCAM.\n"
+"Creating a New project will delete them.\n"
+"Do you want to Save the project?"
+
+#: App_Main.py:6352
+msgid "New Project created"
+msgstr "New Project created"
+
+#: App_Main.py:6522 App_Main.py:6559 App_Main.py:6601 App_Main.py:6671
+#: App_Main.py:7454 App_Main.py:8667 App_Main.py:8729
+msgid ""
+"Canvas initialization started.\n"
+"Canvas initialization finished in"
+msgstr ""
+"Canvas initialization started.\n"
+"Canvas initialization finished in"
+
+#: App_Main.py:6524
+msgid "Opening Gerber file."
+msgstr "Opening Gerber file."
+
+#: App_Main.py:6561
+msgid "Opening Excellon file."
+msgstr "Opening Excellon file."
+
+#: App_Main.py:6592 App_Main.py:6596
+msgid "Open G-Code"
+msgstr "Open G-Code"
+
+#: App_Main.py:6603
+msgid "Opening G-Code file."
+msgstr "Opening G-Code file."
+
+#: App_Main.py:6662 App_Main.py:6666
+msgid "Open HPGL2"
+msgstr "Open HPGL2"
+
+#: App_Main.py:6673
+msgid "Opening HPGL2 file."
+msgstr "Opening HPGL2 file."
+
+#: App_Main.py:6696 App_Main.py:6699
+msgid "Open Configuration File"
+msgstr "Open Configuration File"
+
+#: App_Main.py:6719 App_Main.py:7066
+msgid "Please Select a Geometry object to export"
+msgstr "Please Select a Geometry object to export"
+
+#: App_Main.py:6733
+msgid "Only Geometry, Gerber and CNCJob objects can be used."
+msgstr "Only Geometry, Gerber and CNCJob objects can be used."
+
+#: App_Main.py:6775
+msgid "Data must be a 3D array with last dimension 3 or 4"
+msgstr "Data must be a 3D array with last dimension 3 or 4"
+
+#: App_Main.py:6781 App_Main.py:6785
+msgid "Export PNG Image"
+msgstr "Export PNG Image"
+
+#: App_Main.py:6818 App_Main.py:7026
+msgid "Failed. Only Gerber objects can be saved as Gerber files..."
+msgstr "Failed. Only Gerber objects can be saved as Gerber files..."
+
+#: App_Main.py:6830
+msgid "Save Gerber source file"
+msgstr "Save Gerber source file"
+
+#: App_Main.py:6859
+msgid "Failed. Only Script objects can be saved as TCL Script files..."
+msgstr "Failed. Only Script objects can be saved as TCL Script files..."
+
+#: App_Main.py:6871
+msgid "Save Script source file"
+msgstr "Save Script source file"
+
+#: App_Main.py:6900
+msgid "Failed. Only Document objects can be saved as Document files..."
+msgstr "Failed. Only Document objects can be saved as Document files..."
+
+#: App_Main.py:6912
+msgid "Save Document source file"
+msgstr "Save Document source file"
+
+#: App_Main.py:6941 App_Main.py:6982 App_Main.py:7937
+msgid "Failed. Only Excellon objects can be saved as Excellon files..."
+msgstr "Failed. Only Excellon objects can be saved as Excellon files..."
+
+#: App_Main.py:6949 App_Main.py:6953
+msgid "Save Excellon source file"
+msgstr "Save Excellon source file"
+
+#: App_Main.py:6990 App_Main.py:6994
+msgid "Export Excellon"
+msgstr "Export Excellon"
+
+#: App_Main.py:7034 App_Main.py:7038
+msgid "Export Gerber"
+msgstr "Export Gerber"
+
+#: App_Main.py:7076
+msgid "Only Geometry objects can be used."
+msgstr "Only Geometry objects can be used."
+
+#: App_Main.py:7090 App_Main.py:7094
+msgid "Export DXF"
+msgstr "Export DXF"
+
+#: App_Main.py:7119 App_Main.py:7122
+msgid "Import SVG"
+msgstr "Import SVG"
+
+#: App_Main.py:7150 App_Main.py:7154
+msgid "Import DXF"
+msgstr "Import DXF"
+
+#: App_Main.py:7204
+msgid "Viewing the source code of the selected object."
+msgstr "Viewing the source code of the selected object."
+
+#: App_Main.py:7211 App_Main.py:7215
+msgid "Select an Gerber or Excellon file to view it's source file."
+msgstr "Select an Gerber or Excellon file to view it's source file."
+
+#: App_Main.py:7229
+msgid "Source Editor"
+msgstr "Source Editor"
+
+#: App_Main.py:7269 App_Main.py:7276
+msgid "There is no selected object for which to see it's source file code."
+msgstr "There is no selected object for which to see it's source file code."
+
+#: App_Main.py:7288
+msgid "Failed to load the source code for the selected object"
+msgstr "Failed to load the source code for the selected object"
+
+#: App_Main.py:7324
+msgid "Go to Line ..."
+msgstr "Go to Line ..."
+
+#: App_Main.py:7325
+msgid "Line:"
+msgstr "Line:"
+
+#: App_Main.py:7352
+msgid "New TCL script file created in Code Editor."
+msgstr "New TCL script file created in Code Editor."
+
+#: App_Main.py:7388 App_Main.py:7390 App_Main.py:7426 App_Main.py:7428
+msgid "Open TCL script"
+msgstr "Open TCL script"
+
+#: App_Main.py:7456
+msgid "Executing ScriptObject file."
+msgstr "Executing ScriptObject file."
+
+#: App_Main.py:7464 App_Main.py:7467
+msgid "Run TCL script"
+msgstr "Run TCL script"
+
+#: App_Main.py:7490
+msgid "TCL script file opened in Code Editor and executed."
+msgstr "TCL script file opened in Code Editor and executed."
+
+#: App_Main.py:7541 App_Main.py:7547
+msgid "Save Project As ..."
+msgstr "Save Project As ..."
+
+#: App_Main.py:7582
+msgid "FlatCAM objects print"
+msgstr "FlatCAM objects print"
+
+#: App_Main.py:7595 App_Main.py:7602
+msgid "Save Object as PDF ..."
+msgstr "Save Object as PDF ..."
+
+#: App_Main.py:7611
+msgid "Printing PDF ... Please wait."
+msgstr "Printing PDF ... Please wait."
+
+#: App_Main.py:7790
+msgid "PDF file saved to"
+msgstr "PDF file saved to"
+
+#: App_Main.py:7815
+msgid "Exporting SVG"
+msgstr "Exporting SVG"
+
+#: App_Main.py:7858
+msgid "SVG file exported to"
+msgstr "SVG file exported to"
+
+#: App_Main.py:7884
+msgid ""
+"Save cancelled because source file is empty. Try to export the Gerber file."
+msgstr ""
+"Save cancelled because source file is empty. Try to export the Gerber file."
+
+#: App_Main.py:8031
+msgid "Excellon file exported to"
+msgstr "Excellon file exported to"
+
+#: App_Main.py:8040
+msgid "Exporting Excellon"
+msgstr "Exporting Excellon"
+
+#: App_Main.py:8045 App_Main.py:8052
+msgid "Could not export Excellon file."
+msgstr "Could not export Excellon file."
+
+#: App_Main.py:8167
+msgid "Gerber file exported to"
+msgstr "Gerber file exported to"
+
+#: App_Main.py:8175
+msgid "Exporting Gerber"
+msgstr "Exporting Gerber"
+
+#: App_Main.py:8180 App_Main.py:8187
+msgid "Could not export Gerber file."
+msgstr "Could not export Gerber file."
+
+#: App_Main.py:8222
+msgid "DXF file exported to"
+msgstr "DXF file exported to"
+
+#: App_Main.py:8228
+msgid "Exporting DXF"
+msgstr "Exporting DXF"
+
+#: App_Main.py:8233 App_Main.py:8240
+msgid "Could not export DXF file."
+msgstr "Could not export DXF file."
+
+#: App_Main.py:8274
+msgid "Importing SVG"
+msgstr "Importing SVG"
+
+#: App_Main.py:8282 App_Main.py:8328
+msgid "Import failed."
+msgstr "Import failed."
+
+#: App_Main.py:8320
+msgid "Importing DXF"
+msgstr "Importing DXF"
+
+#: App_Main.py:8361 App_Main.py:8556 App_Main.py:8621
+msgid "Failed to open file"
+msgstr "Failed to open file"
+
+#: App_Main.py:8364 App_Main.py:8559 App_Main.py:8624
+msgid "Failed to parse file"
+msgstr "Failed to parse file"
+
+#: App_Main.py:8376
+msgid "Object is not Gerber file or empty. Aborting object creation."
+msgstr "Object is not Gerber file or empty. Aborting object creation."
+
+#: App_Main.py:8381
+msgid "Opening Gerber"
+msgstr "Opening Gerber"
+
+#: App_Main.py:8392
+msgid "Open Gerber failed. Probable not a Gerber file."
+msgstr "Open Gerber failed. Probable not a Gerber file."
+
+#: App_Main.py:8428
+msgid "Cannot open file"
+msgstr "Cannot open file"
+
+#: App_Main.py:8449
+msgid "Opening Excellon."
+msgstr "Opening Excellon."
+
+#: App_Main.py:8459
+msgid "Open Excellon file failed. Probable not an Excellon file."
+msgstr "Open Excellon file failed. Probable not an Excellon file."
+
+#: App_Main.py:8491
+msgid "Reading GCode file"
+msgstr "Reading GCode file"
+
+#: App_Main.py:8504
+msgid "This is not GCODE"
+msgstr "This is not GCODE"
+
+#: App_Main.py:8509
+msgid "Opening G-Code."
+msgstr "Opening G-Code."
+
+#: App_Main.py:8522
+msgid ""
+"Failed to create CNCJob Object. Probable not a GCode file. Try to load it "
+"from File menu.\n"
+" Attempting to create a FlatCAM CNCJob Object from G-Code file failed during "
+"processing"
+msgstr ""
+"Failed to create CNCJob Object. Probable not a GCode file. Try to load it "
+"from File menu.\n"
+" Attempting to create a FlatCAM CNCJob Object from G-Code file failed during "
+"processing"
+
+#: App_Main.py:8578
+msgid "Object is not HPGL2 file or empty. Aborting object creation."
+msgstr "Object is not HPGL2 file or empty. Aborting object creation."
+
+#: App_Main.py:8583
+msgid "Opening HPGL2"
+msgstr "Opening HPGL2"
+
+#: App_Main.py:8590
+msgid " Open HPGL2 failed. Probable not a HPGL2 file."
+msgstr " Open HPGL2 failed. Probable not a HPGL2 file."
+
+#: App_Main.py:8616
+msgid "TCL script file opened in Code Editor."
+msgstr "TCL script file opened in Code Editor."
+
+#: App_Main.py:8636
+msgid "Opening TCL Script..."
+msgstr "Opening TCL Script..."
+
+#: App_Main.py:8647
+msgid "Failed to open TCL Script."
+msgstr "Failed to open TCL Script."
+
+#: App_Main.py:8669
+msgid "Opening FlatCAM Config file."
+msgstr "Opening FlatCAM Config file."
+
+#: App_Main.py:8697
+msgid "Failed to open config file"
+msgstr "Failed to open config file"
+
+#: App_Main.py:8726
+msgid "Loading Project ... Please Wait ..."
+msgstr "Loading Project ... Please Wait ..."
+
+#: App_Main.py:8731
+msgid "Opening FlatCAM Project file."
+msgstr "Opening FlatCAM Project file."
+
+#: App_Main.py:8746 App_Main.py:8750 App_Main.py:8767
+msgid "Failed to open project file"
+msgstr "Failed to open project file"
+
+#: App_Main.py:8804
+msgid "Loading Project ... restoring"
+msgstr "Loading Project ... restoring"
+
+#: App_Main.py:8814
+msgid "Project loaded from"
+msgstr "Project loaded from"
+
+#: App_Main.py:8840
+msgid "Redrawing all objects"
+msgstr "Redrawing all objects"
+
+#: App_Main.py:8928
+msgid "Failed to load recent item list."
+msgstr "Failed to load recent item list."
+
+#: App_Main.py:8935
+msgid "Failed to parse recent item list."
+msgstr "Failed to parse recent item list."
+
+#: App_Main.py:8945
+msgid "Failed to load recent projects item list."
+msgstr "Failed to load recent projects item list."
+
+#: App_Main.py:8952
+msgid "Failed to parse recent project item list."
+msgstr "Failed to parse recent project item list."
+
+#: App_Main.py:9013
+msgid "Clear Recent projects"
+msgstr "Clear Recent projects"
+
+#: App_Main.py:9037
+msgid "Clear Recent files"
+msgstr "Clear Recent files"
+
+#: App_Main.py:9139
+msgid "Selected Tab - Choose an Item from Project Tab"
+msgstr "Selected Tab - Choose an Item from Project Tab"
+
+#: App_Main.py:9140
+msgid "Details"
+msgstr "Details"
+
+#: App_Main.py:9142
+msgid "The normal flow when working in FlatCAM is the following:"
+msgstr "The normal flow when working in FlatCAM is the following:"
+
+#: App_Main.py:9143
+msgid ""
+"Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into "
+"FlatCAM using either the toolbars, key shortcuts or even dragging and "
+"dropping the files on the AppGUI."
+msgstr ""
+"Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into "
+"FlatCAM using either the toolbars, key shortcuts or even dragging and "
+"dropping the files on the AppGUI."
+
+#: App_Main.py:9146
+msgid ""
+"You can also load a FlatCAM project by double clicking on the project file, "
+"drag and drop of the file into the FLATCAM AppGUI or through the menu (or "
+"toolbar) actions offered within the app."
+msgstr ""
+"You can also load a FlatCAM project by double clicking on the project file, "
+"drag and drop of the file into the FLATCAM AppGUI or through the menu (or "
+"toolbar) actions offered within the app."
+
+#: App_Main.py:9149
+msgid ""
+"Once an object is available in the Project Tab, by selecting it and then "
+"focusing on SELECTED TAB (more simpler is to double click the object name in "
+"the Project Tab, SELECTED TAB will be updated with the object properties "
+"according to its kind: Gerber, Excellon, Geometry or CNCJob object."
+msgstr ""
+"Once an object is available in the Project Tab, by selecting it and then "
+"focusing on SELECTED TAB (more simpler is to double click the object name in "
+"the Project Tab, SELECTED TAB will be updated with the object properties "
+"according to its kind: Gerber, Excellon, Geometry or CNCJob object."
+
+#: App_Main.py:9153
+msgid ""
+"If the selection of the object is done on the canvas by single click "
+"instead, and the SELECTED TAB is in focus, again the object properties will "
+"be displayed into the Selected Tab. Alternatively, double clicking on the "
+"object on the canvas will bring the SELECTED TAB and populate it even if it "
+"was out of focus."
+msgstr ""
+"If the selection of the object is done on the canvas by single click "
+"instead, and the SELECTED TAB is in focus, again the object properties will "
+"be displayed into the Selected Tab. Alternatively, double clicking on the "
+"object on the canvas will bring the SELECTED TAB and populate it even if it "
+"was out of focus."
+
+#: App_Main.py:9157
+msgid ""
+"You can change the parameters in this screen and the flow direction is like "
+"this:"
+msgstr ""
+"You can change the parameters in this screen and the flow direction is like "
+"this:"
+
+#: App_Main.py:9158
+msgid ""
+"Gerber/Excellon Object --> Change Parameter --> Generate Geometry --> "
+"Geometry Object --> Add tools (change param in Selected Tab) --> Generate "
+"CNCJob --> CNCJob Object --> Verify GCode (through Edit CNC Code) and/or "
+"append/prepend to GCode (again, done in SELECTED TAB) --> Save GCode."
+msgstr ""
+"Gerber/Excellon Object --> Change Parameter --> Generate Geometry --> "
+"Geometry Object --> Add tools (change param in Selected Tab) --> Generate "
+"CNCJob --> CNCJob Object --> Verify GCode (through Edit CNC Code) and/or "
+"append/prepend to GCode (again, done in SELECTED TAB) --> Save GCode."
+
+#: App_Main.py:9162
+msgid ""
+"A list of key shortcuts is available through an menu entry in Help --> "
+"Shortcuts List or through its own key shortcut: F3."
+msgstr ""
+"A list of key shortcuts is available through an menu entry in Help --> "
+"Shortcuts List or through its own key shortcut: F3."
+
+#: App_Main.py:9226
+msgid "Failed checking for latest version. Could not connect."
+msgstr "Failed checking for latest version. Could not connect."
+
+#: App_Main.py:9233
+msgid "Could not parse information about latest version."
+msgstr "Could not parse information about latest version."
+
+#: App_Main.py:9243
+msgid "FlatCAM is up to date!"
+msgstr "FlatCAM is up to date!"
+
+#: App_Main.py:9248
+msgid "Newer Version Available"
+msgstr "Newer Version Available"
+
+#: App_Main.py:9250
+msgid "There is a newer version of FlatCAM available for download:"
+msgstr "There is a newer version of FlatCAM available for download:"
+
+#: App_Main.py:9254
+msgid "info"
+msgstr "info"
+
+#: App_Main.py:9282
+msgid ""
+"OpenGL canvas initialization failed. HW or HW configuration not supported."
+"Change the graphic engine to Legacy(2D) in Edit -> Preferences -> General "
+"tab.\n"
+"\n"
+msgstr ""
+"OpenGL canvas initialization failed. HW or HW configuration not supported."
+"Change the graphic engine to Legacy(2D) in Edit -> Preferences -> General "
+"tab.\n"
+"\n"
+
+#: App_Main.py:9360
+msgid "All plots disabled."
+msgstr "All plots disabled."
+
+#: App_Main.py:9367
+msgid "All non selected plots disabled."
+msgstr "All non selected plots disabled."
+
+#: App_Main.py:9374
+msgid "All plots enabled."
+msgstr "All plots enabled."
+
+#: App_Main.py:9380
+msgid "Selected plots enabled..."
+msgstr "Selected plots enabled..."
+
+#: App_Main.py:9388
+msgid "Selected plots disabled..."
+msgstr "Selected plots disabled..."
+
+#: App_Main.py:9421
+msgid "Enabling plots ..."
+msgstr "Enabling plots ..."
+
+#: App_Main.py:9470
+msgid "Disabling plots ..."
+msgstr "Disabling plots ..."
+
+#: App_Main.py:9493
+msgid "Working ..."
+msgstr "Working ..."
+
+#: App_Main.py:9602
+msgid "Set alpha level ..."
+msgstr "Set alpha level ..."
+
+#: App_Main.py:9656
+msgid "Saving FlatCAM Project"
+msgstr "Saving FlatCAM Project"
+
+#: App_Main.py:9677 App_Main.py:9713
+msgid "Project saved to"
+msgstr "Project saved to"
+
+#: App_Main.py:9684
+msgid "The object is used by another application."
+msgstr "The object is used by another application."
+
+#: App_Main.py:9698
+msgid "Failed to verify project file"
+msgstr "Failed to verify project file"
+
+#: App_Main.py:9698 App_Main.py:9706 App_Main.py:9716
+msgid "Retry to save it."
+msgstr "Retry to save it."
+
+#: App_Main.py:9706 App_Main.py:9716
+msgid "Failed to parse saved project file"
+msgstr "Failed to parse saved project file"
+
+#: Bookmark.py:57 Bookmark.py:84
+msgid "Title"
+msgstr "Title"
+
+#: Bookmark.py:58 Bookmark.py:88
+msgid "Web Link"
+msgstr "Web Link"
+
+#: Bookmark.py:62
+msgid ""
+"Index.\n"
+"The rows in gray color will populate the Bookmarks menu.\n"
+"The number of gray colored rows is set in Preferences."
+msgstr ""
+"Index.\n"
+"The rows in gray color will populate the Bookmarks menu.\n"
+"The number of gray colored rows is set in Preferences."
+
+#: Bookmark.py:66
+msgid ""
+"Description of the link that is set as an menu action.\n"
+"Try to keep it short because it is installed as a menu item."
+msgstr ""
+"Description of the link that is set as an menu action.\n"
+"Try to keep it short because it is installed as a menu item."
+
+#: Bookmark.py:69
+msgid "Web Link. E.g: https://your_website.org "
+msgstr "Web Link. E.g: https://your_website.org "
+
+#: Bookmark.py:78
+msgid "New Bookmark"
+msgstr "New Bookmark"
+
+#: Bookmark.py:97
+msgid "Add Entry"
+msgstr "Add Entry"
+
+#: Bookmark.py:98
+msgid "Remove Entry"
+msgstr "Remove Entry"
+
+#: Bookmark.py:99
+msgid "Export List"
+msgstr "Export List"
+
+#: Bookmark.py:100
+msgid "Import List"
+msgstr "Import List"
+
+#: Bookmark.py:190
+msgid "Title entry is empty."
+msgstr "Title entry is empty."
+
+#: Bookmark.py:199
+msgid "Web link entry is empty."
+msgstr "Web link entry is empty."
+
+#: Bookmark.py:207
+msgid "Either the Title or the Weblink already in the table."
+msgstr "Either the Title or the Weblink already in the table."
+
+#: Bookmark.py:227
+msgid "Bookmark added."
+msgstr "Bookmark added."
+
+#: Bookmark.py:244
+msgid "This bookmark can not be removed"
+msgstr "This bookmark can not be removed"
+
+#: Bookmark.py:275
+msgid "Bookmark removed."
+msgstr "Bookmark removed."
+
+#: Bookmark.py:290
+msgid "Export FlatCAM Bookmarks"
+msgstr "Export FlatCAM Bookmarks"
+
+#: Bookmark.py:319 Bookmark.py:349
+msgid "Could not load bookmarks file."
+msgstr "Could not load bookmarks file."
+
+#: Bookmark.py:329
+msgid "Failed to write bookmarks to file."
+msgstr "Failed to write bookmarks to file."
+
+#: Bookmark.py:331
+msgid "Exported bookmarks to"
+msgstr "Exported bookmarks to"
+
+#: Bookmark.py:337
+msgid "Import FlatCAM Bookmarks"
+msgstr "Import FlatCAM Bookmarks"
+
+#: Bookmark.py:356
+msgid "Imported Bookmarks from"
+msgstr "Imported Bookmarks from"
+
+#: Common.py:37
+msgid "The user requested a graceful exit of the current task."
+msgstr "The user requested a graceful exit of the current task."
+
+#: Common.py:250
+msgid "Click the end point of the area."
+msgstr "Click the end point of the area."
+
+#: Common.py:386
+msgid "Exclusion areas added. Checking overlap with the object geometry ..."
+msgstr "Exclusion areas added. Checking overlap with the object geometry ..."
+
+#: Common.py:392
+msgid "Failed. Exclusion areas intersects the object geometry ..."
+msgstr "Failed. Exclusion areas intersects the object geometry ..."
+
+#: Common.py:396
+msgid "Exclusion areas added."
+msgstr "Exclusion areas added."
+
+#: Common.py:405
+msgid "With Exclusion areas."
+msgstr "With Exclusion areas."
+
+#: Common.py:435
+msgid "Cancelled. Area exclusion drawing was interrupted."
+msgstr "Cancelled. Area exclusion drawing was interrupted."
+
+#: Common.py:527 Common.py:575
+msgid "All exclusion zones deleted."
+msgstr "All exclusion zones deleted."
+
+#: Common.py:562
+msgid "Selected exclusion zones deleted."
+msgstr "Selected exclusion zones deleted."
+
#: assets/linux/flatcam-beta.desktop:3
msgid "FlatCAM Beta"
msgstr "FlatCAM Beta"
-#: assets/linux/flatcam-beta.desktop:7
-msgid "./assets/icon.png"
-msgstr "./assets/icon.png"
-
#: assets/linux/flatcam-beta.desktop:8
msgid "G-Code from GERBERS"
msgstr "G-Code from GERBERS"
-#: camlib.py:597
+#: camlib.py:596
msgid "self.solid_geometry is neither BaseGeometry or list."
msgstr "self.solid_geometry is neither BaseGeometry or list."
-#: camlib.py:970
+#: camlib.py:971
msgid "Pass"
msgstr "Pass"
-#: camlib.py:981 flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:146
-#: flatcamObjects/FlatCAMGerber.py:497 flatcamTools/ToolCopperThieving.py:1016
-#: flatcamTools/ToolCopperThieving.py:1205
-#: flatcamTools/ToolCopperThieving.py:1217 flatcamTools/ToolNCC.py:2050
-#: flatcamTools/ToolNCC.py:2158 flatcamTools/ToolNCC.py:2172
-#: flatcamTools/ToolNCC.py:3103 flatcamTools/ToolNCC.py:3208
-#: flatcamTools/ToolNCC.py:3223 flatcamTools/ToolNCC.py:3489
-#: flatcamTools/ToolNCC.py:3590 flatcamTools/ToolNCC.py:3605
-msgid "Buffering"
-msgstr "Buffering"
-
-#: camlib.py:990
+#: camlib.py:991
msgid "Get Exteriors"
msgstr "Get Exteriors"
-#: camlib.py:993
+#: camlib.py:994
msgid "Get Interiors"
msgstr "Get Interiors"
-#: camlib.py:2172
+#: camlib.py:2174
msgid "Object was mirrored"
msgstr "Object was mirrored"
-#: camlib.py:2174
+#: camlib.py:2176
msgid "Failed to mirror. No object selected"
msgstr "Failed to mirror. No object selected"
-#: camlib.py:2239
+#: camlib.py:2241
msgid "Object was rotated"
msgstr "Object was rotated"
-#: camlib.py:2241
+#: camlib.py:2243
msgid "Failed to rotate. No object selected"
msgstr "Failed to rotate. No object selected"
-#: camlib.py:2307
+#: camlib.py:2309
msgid "Object was skewed"
msgstr "Object was skewed"
-#: camlib.py:2309
+#: camlib.py:2311
msgid "Failed to skew. No object selected"
msgstr "Failed to skew. No object selected"
-#: camlib.py:2385
+#: camlib.py:2387
msgid "Object was buffered"
msgstr "Object was buffered"
-#: camlib.py:2387
+#: camlib.py:2389
msgid "Failed to buffer. No object selected"
msgstr "Failed to buffer. No object selected"
-#: camlib.py:2594
+#: camlib.py:2597
msgid "There is no such parameter"
msgstr "There is no such parameter"
-#: camlib.py:2654 camlib.py:2887 camlib.py:3116 camlib.py:3338
+#: camlib.py:2657 camlib.py:2898 camlib.py:3127 camlib.py:3349
msgid ""
"The Cut Z parameter has positive value. It is the depth value to drill into "
"material.\n"
@@ -2708,12 +17980,12 @@ msgstr ""
"therefore the app will convert the value to negative. Check the resulting "
"CNC code (Gcode etc)."
-#: camlib.py:2662 camlib.py:2897 camlib.py:3126 camlib.py:3348 camlib.py:3631
-#: camlib.py:4017
+#: camlib.py:2665 camlib.py:2908 camlib.py:3137 camlib.py:3359 camlib.py:3650
+#: camlib.py:4045
msgid "The Cut Z parameter is zero. There will be no cut, skipping file"
msgstr "The Cut Z parameter is zero. There will be no cut, skipping file"
-#: camlib.py:2673 camlib.py:3985
+#: camlib.py:2680 camlib.py:4013
msgid ""
"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, "
"y) \n"
@@ -2723,7 +17995,7 @@ msgstr ""
"y) \n"
"but now there is only one value, not two. "
-#: camlib.py:2682 camlib.py:3582 camlib.py:3967
+#: camlib.py:2693 camlib.py:3597 camlib.py:3991
msgid ""
"The End Move X,Y field in Edit -> Preferences has to be in the format (x, y) "
"but now there is only one value, not two."
@@ -2731,31 +18003,31 @@ msgstr ""
"The End Move X,Y field in Edit -> Preferences has to be in the format (x, y) "
"but now there is only one value, not two."
-#: camlib.py:2770
+#: camlib.py:2781
msgid "Creating a list of points to drill..."
msgstr "Creating a list of points to drill..."
-#: camlib.py:2860 camlib.py:3729 camlib.py:4121
+#: camlib.py:2871 camlib.py:3748 camlib.py:4149
msgid "Starting G-Code"
msgstr "Starting G-Code"
-#: camlib.py:3001 camlib.py:3220 camlib.py:3384 camlib.py:3742 camlib.py:4132
+#: camlib.py:3012 camlib.py:3231 camlib.py:3395 camlib.py:3761 camlib.py:4160
msgid "Starting G-Code for tool with diameter"
msgstr "Starting G-Code for tool with diameter"
-#: camlib.py:3084 camlib.py:3302 camlib.py:3470
+#: camlib.py:3095 camlib.py:3313 camlib.py:3481
msgid "G91 coordinates not implemented"
msgstr "G91 coordinates not implemented"
-#: camlib.py:3090 camlib.py:3309 camlib.py:3475
+#: camlib.py:3101 camlib.py:3320 camlib.py:3486
msgid "The loaded Excellon file has no drills"
msgstr "The loaded Excellon file has no drills"
-#: camlib.py:3498
+#: camlib.py:3509
msgid "Finished G-Code generation..."
msgstr "Finished G-Code generation..."
-#: camlib.py:3600
+#: camlib.py:3619
msgid ""
"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, "
"y) \n"
@@ -2765,7 +18037,7 @@ msgstr ""
"y) \n"
"but now there is only one value, not two."
-#: camlib.py:3614 camlib.py:4000
+#: camlib.py:3633 camlib.py:4028
msgid ""
"Cut_Z parameter is None or zero. Most likely a bad combinations of other "
"parameters."
@@ -2773,7 +18045,7 @@ msgstr ""
"Cut_Z parameter is None or zero. Most likely a bad combinations of other "
"parameters."
-#: camlib.py:3623 camlib.py:4009
+#: camlib.py:3642 camlib.py:4037
msgid ""
"The Cut Z parameter has positive value. It is the depth value to cut into "
"material.\n"
@@ -2787,11 +18059,11 @@ msgstr ""
"therefore the app will convert the value to negative.Check the resulting CNC "
"code (Gcode etc)."
-#: camlib.py:3636 camlib.py:4023
+#: camlib.py:3655 camlib.py:4051
msgid "Travel Z parameter is None or zero."
msgstr "Travel Z parameter is None or zero."
-#: camlib.py:3641 camlib.py:4028
+#: camlib.py:3660 camlib.py:4056
msgid ""
"The Travel Z parameter has negative value. It is the height value to travel "
"between cuts.\n"
@@ -2805,33 +18077,33 @@ msgstr ""
"therefore the app will convert the value to positive.Check the resulting CNC "
"code (Gcode etc)."
-#: camlib.py:3649 camlib.py:4036
+#: camlib.py:3668 camlib.py:4064
msgid "The Z Travel parameter is zero. This is dangerous, skipping file"
msgstr "The Z Travel parameter is zero. This is dangerous, skipping file"
-#: camlib.py:3668 camlib.py:4059
+#: camlib.py:3687 camlib.py:4087
msgid "Indexing geometry before generating G-Code..."
msgstr "Indexing geometry before generating G-Code..."
-#: camlib.py:3812 camlib.py:4201
+#: camlib.py:3831 camlib.py:4229
msgid "Finished G-Code generation"
msgstr "Finished G-Code generation"
-#: camlib.py:3812
+#: camlib.py:3831
msgid "paths traced"
msgstr "paths traced"
-#: camlib.py:3862
+#: camlib.py:3881
msgid "Expected a Geometry, got"
msgstr "Expected a Geometry, got"
-#: camlib.py:3869
+#: camlib.py:3888
msgid ""
"Trying to generate a CNC Job from a Geometry object without solid_geometry."
msgstr ""
"Trying to generate a CNC Job from a Geometry object without solid_geometry."
-#: camlib.py:3910
+#: camlib.py:3929
msgid ""
"The Tool Offset value is too negative to use for the current_geometry.\n"
"Raise the value (in module) and try again."
@@ -2839,15440 +18111,46 @@ msgstr ""
"The Tool Offset value is too negative to use for the current_geometry.\n"
"Raise the value (in module) and try again."
-#: camlib.py:4201
+#: camlib.py:4229
msgid " paths traced."
msgstr " paths traced."
-#: camlib.py:4229
+#: camlib.py:4257
msgid "There is no tool data in the SolderPaste geometry."
msgstr "There is no tool data in the SolderPaste geometry."
-#: camlib.py:4318
+#: camlib.py:4346
msgid "Finished SolderPaste G-Code generation"
msgstr "Finished SolderPaste G-Code generation"
-#: camlib.py:4318
+#: camlib.py:4346
msgid "paths traced."
msgstr "paths traced."
-#: camlib.py:4578
+#: camlib.py:4606
msgid "Parsing GCode file. Number of lines"
msgstr "Parsing GCode file. Number of lines"
-#: camlib.py:4685
+#: camlib.py:4713
msgid "Creating Geometry from the parsed GCode file. "
msgstr "Creating Geometry from the parsed GCode file. "
-#: camlib.py:4828 camlib.py:5118 camlib.py:5229 camlib.py:5385
+#: camlib.py:4856 camlib.py:5079 camlib.py:5190 camlib.py:5346
msgid "G91 coordinates not implemented ..."
msgstr "G91 coordinates not implemented ..."
-#: camlib.py:4960
+#: camlib.py:4921
msgid "Unifying Geometry from parsed Geometry segments"
msgstr "Unifying Geometry from parsed Geometry segments"
-#: defaults.py:401
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
-#: flatcamTools/ToolCopperThieving.py:125 flatcamTools/ToolNCC.py:535
-#: flatcamTools/ToolNCC.py:1306 flatcamTools/ToolNCC.py:1634
-#: flatcamTools/ToolNCC.py:1919 flatcamTools/ToolNCC.py:1983
-#: flatcamTools/ToolNCC.py:2967 flatcamTools/ToolNCC.py:2976
-#: tclCommands/TclCommandCopperClear.py:190
-msgid "Itself"
-msgstr "Itself"
-
-#: defaults.py:428 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
-#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:1427
-#: tclCommands/TclCommandPaint.py:162
-msgid "All Polygons"
-msgstr "All Polygons"
-
-#: defaults.py:739
+#: defaults.py:756
msgid "Could not load defaults file."
msgstr "Could not load defaults file."
-#: defaults.py:752
+#: defaults.py:769
msgid "Failed to parse defaults file."
msgstr "Failed to parse defaults file."
-#: flatcamEditors/FlatCAMExcEditor.py:50 flatcamEditors/FlatCAMExcEditor.py:74
-#: flatcamEditors/FlatCAMExcEditor.py:168
-#: flatcamEditors/FlatCAMExcEditor.py:385
-#: flatcamEditors/FlatCAMExcEditor.py:589
-#: flatcamEditors/FlatCAMGrbEditor.py:243
-#: flatcamEditors/FlatCAMGrbEditor.py:250
-msgid "Click to place ..."
-msgstr "Click to place ..."
-
-#: flatcamEditors/FlatCAMExcEditor.py:58
-msgid "To add a drill first select a tool"
-msgstr "To add a drill first select a tool"
-
-#: flatcamEditors/FlatCAMExcEditor.py:122
-msgid "Done. Drill added."
-msgstr "Done. Drill added."
-
-#: flatcamEditors/FlatCAMExcEditor.py:176
-msgid "To add an Drill Array first select a tool in Tool Table"
-msgstr "To add an Drill Array first select a tool in Tool Table"
-
-#: flatcamEditors/FlatCAMExcEditor.py:192
-#: flatcamEditors/FlatCAMExcEditor.py:415
-#: flatcamEditors/FlatCAMExcEditor.py:636
-#: flatcamEditors/FlatCAMExcEditor.py:1151
-#: flatcamEditors/FlatCAMExcEditor.py:1178
-#: flatcamEditors/FlatCAMGrbEditor.py:473
-#: flatcamEditors/FlatCAMGrbEditor.py:1937
-#: flatcamEditors/FlatCAMGrbEditor.py:1967
-msgid "Click on target location ..."
-msgstr "Click on target location ..."
-
-#: flatcamEditors/FlatCAMExcEditor.py:211
-msgid "Click on the Drill Circular Array Start position"
-msgstr "Click on the Drill Circular Array Start position"
-
-#: flatcamEditors/FlatCAMExcEditor.py:233
-#: flatcamEditors/FlatCAMExcEditor.py:677
-#: flatcamEditors/FlatCAMGrbEditor.py:518
-msgid "The value is not Float. Check for comma instead of dot separator."
-msgstr "The value is not Float. Check for comma instead of dot separator."
-
-#: flatcamEditors/FlatCAMExcEditor.py:237
-msgid "The value is mistyped. Check the value"
-msgstr "The value is mistyped. Check the value"
-
-#: flatcamEditors/FlatCAMExcEditor.py:336
-msgid "Too many drills for the selected spacing angle."
-msgstr "Too many drills for the selected spacing angle."
-
-#: flatcamEditors/FlatCAMExcEditor.py:354
-msgid "Done. Drill Array added."
-msgstr "Done. Drill Array added."
-
-#: flatcamEditors/FlatCAMExcEditor.py:394
-msgid "To add a slot first select a tool"
-msgstr "To add a slot first select a tool"
-
-#: flatcamEditors/FlatCAMExcEditor.py:454
-#: flatcamEditors/FlatCAMExcEditor.py:461
-#: flatcamEditors/FlatCAMExcEditor.py:742
-#: flatcamEditors/FlatCAMExcEditor.py:749
-msgid "Value is missing or wrong format. Add it and retry."
-msgstr "Value is missing or wrong format. Add it and retry."
-
-#: flatcamEditors/FlatCAMExcEditor.py:559
-msgid "Done. Adding Slot completed."
-msgstr "Done. Adding Slot completed."
-
-#: flatcamEditors/FlatCAMExcEditor.py:597
-msgid "To add an Slot Array first select a tool in Tool Table"
-msgstr "To add an Slot Array first select a tool in Tool Table"
-
-#: flatcamEditors/FlatCAMExcEditor.py:655
-msgid "Click on the Slot Circular Array Start position"
-msgstr "Click on the Slot Circular Array Start position"
-
-#: flatcamEditors/FlatCAMExcEditor.py:680
-#: flatcamEditors/FlatCAMGrbEditor.py:521
-msgid "The value is mistyped. Check the value."
-msgstr "The value is mistyped. Check the value."
-
-#: flatcamEditors/FlatCAMExcEditor.py:859
-msgid "Too many Slots for the selected spacing angle."
-msgstr "Too many Slots for the selected spacing angle."
-
-#: flatcamEditors/FlatCAMExcEditor.py:882
-msgid "Done. Slot Array added."
-msgstr "Done. Slot Array added."
-
-#: flatcamEditors/FlatCAMExcEditor.py:904
-msgid "Click on the Drill(s) to resize ..."
-msgstr "Click on the Drill(s) to resize ..."
-
-#: flatcamEditors/FlatCAMExcEditor.py:934
-msgid "Resize drill(s) failed. Please enter a diameter for resize."
-msgstr "Resize drill(s) failed. Please enter a diameter for resize."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1112
-msgid "Done. Drill/Slot Resize completed."
-msgstr "Done. Drill/Slot Resize completed."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1115
-msgid "Cancelled. No drills/slots selected for resize ..."
-msgstr "Cancelled. No drills/slots selected for resize ..."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1153
-#: flatcamEditors/FlatCAMGrbEditor.py:1939
-msgid "Click on reference location ..."
-msgstr "Click on reference location ..."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1210
-msgid "Done. Drill(s) Move completed."
-msgstr "Done. Drill(s) Move completed."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1318
-msgid "Done. Drill(s) copied."
-msgstr "Done. Drill(s) copied."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1557
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:26
-msgid "Excellon Editor"
-msgstr "Excellon Editor"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1564
-#: flatcamEditors/FlatCAMGrbEditor.py:2462
-msgid "Name:"
-msgstr "Name:"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1570 flatcamGUI/ObjectUI.py:761
-#: flatcamGUI/ObjectUI.py:1465 flatcamTools/ToolNCC.py:120
-#: flatcamTools/ToolPaint.py:115 flatcamTools/ToolSolderPaste.py:74
-msgid "Tools Table"
-msgstr "Tools Table"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1572 flatcamGUI/ObjectUI.py:763
-msgid ""
-"Tools in this Excellon object\n"
-"when are used for drilling."
-msgstr ""
-"Tools in this Excellon object\n"
-"when are used for drilling."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1584
-#: flatcamEditors/FlatCAMExcEditor.py:3066 flatcamGUI/ObjectUI.py:781
-#: flatcamObjects/FlatCAMExcellon.py:1098
-#: flatcamObjects/FlatCAMExcellon.py:1188
-#: flatcamObjects/FlatCAMExcellon.py:1373 flatcamTools/ToolNCC.py:132
-#: flatcamTools/ToolPaint.py:128 flatcamTools/ToolPcbWizard.py:76
-#: flatcamTools/ToolProperties.py:416 flatcamTools/ToolProperties.py:476
-#: flatcamTools/ToolSolderPaste.py:85 tclCommands/TclCommandDrillcncjob.py:193
-msgid "Diameter"
-msgstr "Diameter"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1592
-msgid "Add/Delete Tool"
-msgstr "Add/Delete Tool"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1594
-msgid ""
-"Add/Delete a tool to the tool list\n"
-"for this Excellon object."
-msgstr ""
-"Add/Delete a tool to the tool list\n"
-"for this Excellon object."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1606 flatcamGUI/ObjectUI.py:1585
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:57
-msgid "Diameter for the new tool"
-msgstr "Diameter for the new tool"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1616
-msgid "Add Tool"
-msgstr "Add Tool"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1618
-msgid ""
-"Add a new tool to the tool list\n"
-"with the diameter specified above."
-msgstr ""
-"Add a new tool to the tool list\n"
-"with the diameter specified above."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1630
-msgid "Delete Tool"
-msgstr "Delete Tool"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1632
-msgid ""
-"Delete a tool in the tool list\n"
-"by selecting a row in the tool table."
-msgstr ""
-"Delete a tool in the tool list\n"
-"by selecting a row in the tool table."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1650 flatcamGUI/FlatCAMGUI.py:2019
-msgid "Resize Drill(s)"
-msgstr "Resize Drill(s)"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1652
-msgid "Resize a drill or a selection of drills."
-msgstr "Resize a drill or a selection of drills."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1659
-msgid "Resize Dia"
-msgstr "Resize Dia"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1661
-msgid "Diameter to resize to."
-msgstr "Diameter to resize to."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1672
-msgid "Resize"
-msgstr "Resize"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1674
-msgid "Resize drill(s)"
-msgstr "Resize drill(s)"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1699 flatcamGUI/FlatCAMGUI.py:2018
-#: flatcamGUI/FlatCAMGUI.py:2270
-msgid "Add Drill Array"
-msgstr "Add Drill Array"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1701
-msgid "Add an array of drills (linear or circular array)"
-msgstr "Add an array of drills (linear or circular array)"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1707
-msgid ""
-"Select the type of drills array to create.\n"
-"It can be Linear X(Y) or Circular"
-msgstr ""
-"Select the type of drills array to create.\n"
-"It can be Linear X(Y) or Circular"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1710
-#: flatcamEditors/FlatCAMExcEditor.py:1924
-#: flatcamEditors/FlatCAMGrbEditor.py:2775
-msgid "Linear"
-msgstr "Linear"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1711
-#: flatcamEditors/FlatCAMExcEditor.py:1925
-#: flatcamEditors/FlatCAMGrbEditor.py:2776 flatcamGUI/ObjectUI.py:316
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:52
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:149
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:107
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:52
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:151
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:70
-#: flatcamTools/ToolExtractDrills.py:78 flatcamTools/ToolExtractDrills.py:201
-#: flatcamTools/ToolFiducials.py:220 flatcamTools/ToolNCC.py:221
-#: flatcamTools/ToolPaint.py:204 flatcamTools/ToolPunchGerber.py:89
-#: flatcamTools/ToolPunchGerber.py:229
-msgid "Circular"
-msgstr "Circular"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1719
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:68
-msgid "Nr of drills"
-msgstr "Nr of drills"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1720
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:70
-msgid "Specify how many drills to be in the array."
-msgstr "Specify how many drills to be in the array."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1738
-#: flatcamEditors/FlatCAMExcEditor.py:1788
-#: flatcamEditors/FlatCAMExcEditor.py:1860
-#: flatcamEditors/FlatCAMExcEditor.py:1953
-#: flatcamEditors/FlatCAMExcEditor.py:2004
-#: flatcamEditors/FlatCAMGrbEditor.py:1573
-#: flatcamEditors/FlatCAMGrbEditor.py:2804
-#: flatcamEditors/FlatCAMGrbEditor.py:2853
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:178
-msgid "Direction"
-msgstr "Direction"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1740
-#: flatcamEditors/FlatCAMExcEditor.py:1955
-#: flatcamEditors/FlatCAMGrbEditor.py:2806
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:86
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:234
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:122
-msgid ""
-"Direction on which the linear array is oriented:\n"
-"- 'X' - horizontal axis \n"
-"- 'Y' - vertical axis or \n"
-"- 'Angle' - a custom angle for the array inclination"
-msgstr ""
-"Direction on which the linear array is oriented:\n"
-"- 'X' - horizontal axis \n"
-"- 'Y' - vertical axis or \n"
-"- 'Angle' - a custom angle for the array inclination"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1747
-#: flatcamEditors/FlatCAMExcEditor.py:1869
-#: flatcamEditors/FlatCAMExcEditor.py:1962
-#: flatcamEditors/FlatCAMGrbEditor.py:2813
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:92
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:187
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:240
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:128
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:208
-#: flatcamTools/ToolFilm.py:256
-msgid "X"
-msgstr "X"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1748
-#: flatcamEditors/FlatCAMExcEditor.py:1870
-#: flatcamEditors/FlatCAMExcEditor.py:1963
-#: flatcamEditors/FlatCAMGrbEditor.py:2814
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:93
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:188
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:241
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:129
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:209
-#: flatcamTools/ToolFilm.py:257
-msgid "Y"
-msgstr "Y"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1749
-#: flatcamEditors/FlatCAMExcEditor.py:1766
-#: flatcamEditors/FlatCAMExcEditor.py:1800
-#: flatcamEditors/FlatCAMExcEditor.py:1871
-#: flatcamEditors/FlatCAMExcEditor.py:1875
-#: flatcamEditors/FlatCAMExcEditor.py:1964
-#: flatcamEditors/FlatCAMExcEditor.py:1982
-#: flatcamEditors/FlatCAMExcEditor.py:2016
-#: flatcamEditors/FlatCAMGrbEditor.py:2815
-#: flatcamEditors/FlatCAMGrbEditor.py:2832
-#: flatcamEditors/FlatCAMGrbEditor.py:2868
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:94
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:113
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:189
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:194
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:242
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:263
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:130
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:148
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:53
-#: flatcamTools/ToolDistance.py:120 flatcamTools/ToolDistanceMin.py:69
-#: flatcamTools/ToolTransform.py:60
-msgid "Angle"
-msgstr "Angle"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1753
-#: flatcamEditors/FlatCAMExcEditor.py:1968
-#: flatcamEditors/FlatCAMGrbEditor.py:2819
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:100
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:248
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:136
-msgid "Pitch"
-msgstr "Pitch"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1755
-#: flatcamEditors/FlatCAMExcEditor.py:1970
-#: flatcamEditors/FlatCAMGrbEditor.py:2821
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:102
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:250
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:138
-msgid "Pitch = Distance between elements of the array."
-msgstr "Pitch = Distance between elements of the array."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1768
-#: flatcamEditors/FlatCAMExcEditor.py:1984
-msgid ""
-"Angle at which the linear array is placed.\n"
-"The precision is of max 2 decimals.\n"
-"Min value is: -360 degrees.\n"
-"Max value is: 360.00 degrees."
-msgstr ""
-"Angle at which the linear array is placed.\n"
-"The precision is of max 2 decimals.\n"
-"Min value is: -360 degrees.\n"
-"Max value is: 360.00 degrees."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1789
-#: flatcamEditors/FlatCAMExcEditor.py:2005
-#: flatcamEditors/FlatCAMGrbEditor.py:2855
-msgid ""
-"Direction for circular array.Can be CW = clockwise or CCW = counter "
-"clockwise."
-msgstr ""
-"Direction for circular array.Can be CW = clockwise or CCW = counter "
-"clockwise."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1796
-#: flatcamEditors/FlatCAMExcEditor.py:2012
-#: flatcamEditors/FlatCAMGrbEditor.py:2863
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:129
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:136
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:286
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:142
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:170
-msgid "CW"
-msgstr "CW"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1797
-#: flatcamEditors/FlatCAMExcEditor.py:2013
-#: flatcamEditors/FlatCAMGrbEditor.py:2864
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:130
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:137
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:287
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:143
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:171
-msgid "CCW"
-msgstr "CCW"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1801
-#: flatcamEditors/FlatCAMExcEditor.py:2017
-#: flatcamEditors/FlatCAMGrbEditor.py:2870
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:115
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:145
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:265
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:295
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:150
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:179
-msgid "Angle at which each element in circular array is placed."
-msgstr "Angle at which each element in circular array is placed."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1835
-msgid "Slot Parameters"
-msgstr "Slot Parameters"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1837
-msgid ""
-"Parameters for adding a slot (hole with oval shape)\n"
-"either single or as an part of an array."
-msgstr ""
-"Parameters for adding a slot (hole with oval shape)\n"
-"either single or as an part of an array."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1846
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162
-#: flatcamTools/ToolProperties.py:559
-msgid "Length"
-msgstr "Length"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1848
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:164
-msgid "Length = The length of the slot."
-msgstr "Length = The length of the slot."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1862
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:180
-msgid ""
-"Direction on which the slot is oriented:\n"
-"- 'X' - horizontal axis \n"
-"- 'Y' - vertical axis or \n"
-"- 'Angle' - a custom angle for the slot inclination"
-msgstr ""
-"Direction on which the slot is oriented:\n"
-"- 'X' - horizontal axis \n"
-"- 'Y' - vertical axis or \n"
-"- 'Angle' - a custom angle for the slot inclination"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1877
-msgid ""
-"Angle at which the slot is placed.\n"
-"The precision is of max 2 decimals.\n"
-"Min value is: -360 degrees.\n"
-"Max value is: 360.00 degrees."
-msgstr ""
-"Angle at which the slot is placed.\n"
-"The precision is of max 2 decimals.\n"
-"Min value is: -360 degrees.\n"
-"Max value is: 360.00 degrees."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1910
-msgid "Slot Array Parameters"
-msgstr "Slot Array Parameters"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1912
-msgid "Parameters for the array of slots (linear or circular array)"
-msgstr "Parameters for the array of slots (linear or circular array)"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1921
-msgid ""
-"Select the type of slot array to create.\n"
-"It can be Linear X(Y) or Circular"
-msgstr ""
-"Select the type of slot array to create.\n"
-"It can be Linear X(Y) or Circular"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1933
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:219
-msgid "Nr of slots"
-msgstr "Nr of slots"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1934
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:221
-msgid "Specify how many slots to be in the array."
-msgstr "Specify how many slots to be in the array."
-
-#: flatcamEditors/FlatCAMExcEditor.py:2452
-#: flatcamObjects/FlatCAMExcellon.py:410
-msgid "Total Drills"
-msgstr "Total Drills"
-
-#: flatcamEditors/FlatCAMExcEditor.py:2484
-#: flatcamObjects/FlatCAMExcellon.py:441
-msgid "Total Slots"
-msgstr "Total Slots"
-
-#: flatcamEditors/FlatCAMExcEditor.py:2559
-#: flatcamEditors/FlatCAMGeoEditor.py:1076
-#: flatcamEditors/FlatCAMGeoEditor.py:1117
-#: flatcamEditors/FlatCAMGeoEditor.py:1145
-#: flatcamEditors/FlatCAMGeoEditor.py:1173
-#: flatcamEditors/FlatCAMGeoEditor.py:1217
-#: flatcamEditors/FlatCAMGeoEditor.py:1252
-#: flatcamEditors/FlatCAMGeoEditor.py:1280
-#: flatcamObjects/FlatCAMGeometry.py:599 flatcamObjects/FlatCAMGeometry.py:1033
-#: flatcamObjects/FlatCAMGeometry.py:1780
-#: flatcamObjects/FlatCAMGeometry.py:2424 flatcamTools/ToolNCC.py:1498
-#: flatcamTools/ToolPaint.py:1249 flatcamTools/ToolPaint.py:1420
-#: flatcamTools/ToolSolderPaste.py:883 flatcamTools/ToolSolderPaste.py:956
-msgid "Wrong value format entered, use a number."
-msgstr "Wrong value format entered, use a number."
-
-#: flatcamEditors/FlatCAMExcEditor.py:2570
-msgid ""
-"Tool already in the original or actual tool list.\n"
-"Save and reedit Excellon if you need to add this tool. "
-msgstr ""
-"Tool already in the original or actual tool list.\n"
-"Save and reedit Excellon if you need to add this tool. "
-
-#: flatcamEditors/FlatCAMExcEditor.py:2579 flatcamGUI/FlatCAMGUI.py:4071
-msgid "Added new tool with dia"
-msgstr "Added new tool with dia"
-
-#: flatcamEditors/FlatCAMExcEditor.py:2612
-msgid "Select a tool in Tool Table"
-msgstr "Select a tool in Tool Table"
-
-#: flatcamEditors/FlatCAMExcEditor.py:2642
-msgid "Deleted tool with diameter"
-msgstr "Deleted tool with diameter"
-
-#: flatcamEditors/FlatCAMExcEditor.py:2790
-msgid "Done. Tool edit completed."
-msgstr "Done. Tool edit completed."
-
-#: flatcamEditors/FlatCAMExcEditor.py:3352
-msgid "There are no Tools definitions in the file. Aborting Excellon creation."
-msgstr ""
-"There are no Tools definitions in the file. Aborting Excellon creation."
-
-#: flatcamEditors/FlatCAMExcEditor.py:3356
-msgid "An internal error has ocurred. See Shell.\n"
-msgstr "An internal error has ocurred. See Shell.\n"
-
-#: flatcamEditors/FlatCAMExcEditor.py:3361
-msgid "Creating Excellon."
-msgstr "Creating Excellon."
-
-#: flatcamEditors/FlatCAMExcEditor.py:3373
-msgid "Excellon editing finished."
-msgstr "Excellon editing finished."
-
-#: flatcamEditors/FlatCAMExcEditor.py:3390
-msgid "Cancelled. There is no Tool/Drill selected"
-msgstr "Cancelled. There is no Tool/Drill selected"
-
-#: flatcamEditors/FlatCAMExcEditor.py:4003
-msgid "Done. Drill(s) deleted."
-msgstr "Done. Drill(s) deleted."
-
-#: flatcamEditors/FlatCAMExcEditor.py:4076
-#: flatcamEditors/FlatCAMExcEditor.py:4086
-#: flatcamEditors/FlatCAMGrbEditor.py:5063
-msgid "Click on the circular array Center position"
-msgstr "Click on the circular array Center position"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:85
-msgid "Buffer distance:"
-msgstr "Buffer distance:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:86
-msgid "Buffer corner:"
-msgstr "Buffer corner:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:88
-msgid ""
-"There are 3 types of corners:\n"
-" - 'Round': the corner is rounded for exterior buffer.\n"
-" - 'Square': the corner is met in a sharp angle for exterior buffer.\n"
-" - 'Beveled': the corner is a line that directly connects the features "
-"meeting in the corner"
-msgstr ""
-"There are 3 types of corners:\n"
-" - 'Round': the corner is rounded for exterior buffer.\n"
-" - 'Square': the corner is met in a sharp angle for exterior buffer.\n"
-" - 'Beveled': the corner is a line that directly connects the features "
-"meeting in the corner"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:94
-#: flatcamEditors/FlatCAMGrbEditor.py:2631
-msgid "Round"
-msgstr "Round"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:95
-#: flatcamEditors/FlatCAMGrbEditor.py:2632 flatcamGUI/ObjectUI.py:2073
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:217
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:68
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:175
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:68
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:177
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:143
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:291
-#: flatcamTools/ToolExtractDrills.py:94 flatcamTools/ToolExtractDrills.py:227
-#: flatcamTools/ToolNCC.py:583 flatcamTools/ToolPaint.py:527
-#: flatcamTools/ToolPunchGerber.py:105 flatcamTools/ToolPunchGerber.py:255
-#: flatcamTools/ToolQRCode.py:198
-msgid "Square"
-msgstr "Square"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:96
-#: flatcamEditors/FlatCAMGrbEditor.py:2633
-msgid "Beveled"
-msgstr "Beveled"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:103
-msgid "Buffer Interior"
-msgstr "Buffer Interior"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:105
-msgid "Buffer Exterior"
-msgstr "Buffer Exterior"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:111
-msgid "Full Buffer"
-msgstr "Full Buffer"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:132
-#: flatcamEditors/FlatCAMGeoEditor.py:3017 flatcamGUI/FlatCAMGUI.py:1928
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:190
-msgid "Buffer Tool"
-msgstr "Buffer Tool"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:144
-#: flatcamEditors/FlatCAMGeoEditor.py:161
-#: flatcamEditors/FlatCAMGeoEditor.py:178
-#: flatcamEditors/FlatCAMGeoEditor.py:3036
-#: flatcamEditors/FlatCAMGeoEditor.py:3064
-#: flatcamEditors/FlatCAMGeoEditor.py:3092
-#: flatcamEditors/FlatCAMGrbEditor.py:5116
-msgid "Buffer distance value is missing or wrong format. Add it and retry."
-msgstr "Buffer distance value is missing or wrong format. Add it and retry."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:242
-msgid "Font"
-msgstr "Font"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:323 flatcamGUI/FlatCAMGUI.py:2208
-msgid "Text"
-msgstr "Text"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:349
-msgid "Text Tool"
-msgstr "Text Tool"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:405 flatcamGUI/FlatCAMGUI.py:511
-#: flatcamGUI/FlatCAMGUI.py:1158 flatcamGUI/ObjectUI.py:818
-#: flatcamGUI/ObjectUI.py:1662 flatcamObjects/FlatCAMExcellon.py:742
-#: flatcamObjects/FlatCAMExcellon.py:1084 flatcamObjects/FlatCAMGeometry.py:759
-#: flatcamTools/ToolNCC.py:331 flatcamTools/ToolNCC.py:797
-#: flatcamTools/ToolPaint.py:314 flatcamTools/ToolPaint.py:767
-msgid "Tool"
-msgstr "Tool"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:439 flatcamGUI/ObjectUI.py:364
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:43
-msgid "Tool dia"
-msgstr "Tool dia"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:441
-msgid "Diameter of the tool to be used in the operation."
-msgstr "Diameter of the tool to be used in the operation."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:487
-msgid ""
-"Algorithm to paint the polygons:\n"
-"- Standard: Fixed step inwards.\n"
-"- Seed-based: Outwards from seed.\n"
-"- Line-based: Parallel lines."
-msgstr ""
-"Algorithm to paint the polygons:\n"
-"- Standard: Fixed step inwards.\n"
-"- Seed-based: Outwards from seed.\n"
-"- Line-based: Parallel lines."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:506
-msgid "Connect:"
-msgstr "Connect:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:516
-msgid "Contour:"
-msgstr "Contour:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:529 flatcamGUI/FlatCAMGUI.py:2212
-msgid "Paint"
-msgstr "Paint"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:547 flatcamGUI/FlatCAMGUI.py:924
-#: flatcamGUI/FlatCAMGUI.py:2628 flatcamGUI/ObjectUI.py:2139
-#: flatcamTools/ToolPaint.py:43 flatcamTools/ToolPaint.py:738
-msgid "Paint Tool"
-msgstr "Paint Tool"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:583
-#: flatcamEditors/FlatCAMGeoEditor.py:1055
-#: flatcamEditors/FlatCAMGeoEditor.py:3024
-#: flatcamEditors/FlatCAMGeoEditor.py:3052
-#: flatcamEditors/FlatCAMGeoEditor.py:3080
-#: flatcamEditors/FlatCAMGeoEditor.py:4502
-#: flatcamEditors/FlatCAMGrbEditor.py:5767
-msgid "Cancelled. No shape selected."
-msgstr "Cancelled. No shape selected."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:596
-#: flatcamEditors/FlatCAMGeoEditor.py:3042
-#: flatcamEditors/FlatCAMGeoEditor.py:3070
-#: flatcamEditors/FlatCAMGeoEditor.py:3098
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:59
-#: flatcamTools/ToolProperties.py:117 flatcamTools/ToolProperties.py:162
-msgid "Tools"
-msgstr "Tools"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:607
-#: flatcamEditors/FlatCAMGeoEditor.py:991
-#: flatcamEditors/FlatCAMGrbEditor.py:5306
-#: flatcamEditors/FlatCAMGrbEditor.py:5703 flatcamGUI/FlatCAMGUI.py:945
-#: flatcamGUI/FlatCAMGUI.py:2649 flatcamTools/ToolTransform.py:460
-msgid "Transform Tool"
-msgstr "Transform Tool"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:608
-#: flatcamEditors/FlatCAMGeoEditor.py:673
-#: flatcamEditors/FlatCAMGrbEditor.py:5307
-#: flatcamEditors/FlatCAMGrbEditor.py:5372
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:45
-#: flatcamTools/ToolTransform.py:24 flatcamTools/ToolTransform.py:466
-msgid "Rotate"
-msgstr "Rotate"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:609
-#: flatcamEditors/FlatCAMGrbEditor.py:5308 flatcamTools/ToolTransform.py:25
-msgid "Skew/Shear"
-msgstr "Skew/Shear"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:610
-#: flatcamEditors/FlatCAMGrbEditor.py:2680
-#: flatcamEditors/FlatCAMGrbEditor.py:5309 flatcamGUI/FlatCAMGUI.py:1063
-#: flatcamGUI/FlatCAMGUI.py:2140 flatcamGUI/FlatCAMGUI.py:2255
-#: flatcamGUI/FlatCAMGUI.py:2767 flatcamGUI/ObjectUI.py:125
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:95
-#: flatcamTools/ToolTransform.py:26
-msgid "Scale"
-msgstr "Scale"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:611
-#: flatcamEditors/FlatCAMGrbEditor.py:5310 flatcamTools/ToolTransform.py:27
-msgid "Mirror (Flip)"
-msgstr "Mirror (Flip)"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:625
-#: flatcamEditors/FlatCAMGrbEditor.py:5324 flatcamGUI/FlatCAMGUI.py:856
-#: flatcamGUI/FlatCAMGUI.py:2564
-msgid "Editor"
-msgstr "Editor"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:657
-#: flatcamEditors/FlatCAMGrbEditor.py:5356
-msgid "Angle:"
-msgstr "Angle:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:659
-#: flatcamEditors/FlatCAMGrbEditor.py:5358
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:55
-#: flatcamTools/ToolTransform.py:62
-msgid ""
-"Angle for Rotation action, in degrees.\n"
-"Float number between -360 and 359.\n"
-"Positive numbers for CW motion.\n"
-"Negative numbers for CCW motion."
-msgstr ""
-"Angle for Rotation action, in degrees.\n"
-"Float number between -360 and 359.\n"
-"Positive numbers for CW motion.\n"
-"Negative numbers for CCW motion."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:675
-#: flatcamEditors/FlatCAMGrbEditor.py:5374
-msgid ""
-"Rotate the selected shape(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected shapes."
-msgstr ""
-"Rotate the selected shape(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected shapes."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:698
-#: flatcamEditors/FlatCAMGrbEditor.py:5397
-msgid "Angle X:"
-msgstr "Angle X:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:700
-#: flatcamEditors/FlatCAMGeoEditor.py:720
-#: flatcamEditors/FlatCAMGrbEditor.py:5399
-#: flatcamEditors/FlatCAMGrbEditor.py:5419
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:74
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:88
-#: flatcamTools/ToolCalibration.py:505 flatcamTools/ToolCalibration.py:518
-msgid ""
-"Angle for Skew action, in degrees.\n"
-"Float number between -360 and 359."
-msgstr ""
-"Angle for Skew action, in degrees.\n"
-"Float number between -360 and 359."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:711
-#: flatcamEditors/FlatCAMGrbEditor.py:5410 flatcamTools/ToolTransform.py:467
-msgid "Skew X"
-msgstr "Skew X"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:713
-#: flatcamEditors/FlatCAMGeoEditor.py:733
-#: flatcamEditors/FlatCAMGrbEditor.py:5412
-#: flatcamEditors/FlatCAMGrbEditor.py:5432
-msgid ""
-"Skew/shear the selected shape(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected shapes."
-msgstr ""
-"Skew/shear the selected shape(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected shapes."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:718
-#: flatcamEditors/FlatCAMGrbEditor.py:5417
-msgid "Angle Y:"
-msgstr "Angle Y:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:731
-#: flatcamEditors/FlatCAMGrbEditor.py:5430 flatcamTools/ToolTransform.py:468
-msgid "Skew Y"
-msgstr "Skew Y"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:759
-#: flatcamEditors/FlatCAMGrbEditor.py:5458
-msgid "Factor X:"
-msgstr "Factor X:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:761
-#: flatcamEditors/FlatCAMGrbEditor.py:5460 flatcamTools/ToolCalibration.py:469
-msgid "Factor for Scale action over X axis."
-msgstr "Factor for Scale action over X axis."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:771
-#: flatcamEditors/FlatCAMGrbEditor.py:5470 flatcamTools/ToolTransform.py:469
-msgid "Scale X"
-msgstr "Scale X"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:773
-#: flatcamEditors/FlatCAMGeoEditor.py:792
-#: flatcamEditors/FlatCAMGrbEditor.py:5472
-#: flatcamEditors/FlatCAMGrbEditor.py:5491
-msgid ""
-"Scale the selected shape(s).\n"
-"The point of reference depends on \n"
-"the Scale reference checkbox state."
-msgstr ""
-"Scale the selected shape(s).\n"
-"The point of reference depends on \n"
-"the Scale reference checkbox state."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:778
-#: flatcamEditors/FlatCAMGrbEditor.py:5477
-msgid "Factor Y:"
-msgstr "Factor Y:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:780
-#: flatcamEditors/FlatCAMGrbEditor.py:5479 flatcamTools/ToolCalibration.py:481
-msgid "Factor for Scale action over Y axis."
-msgstr "Factor for Scale action over Y axis."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:790
-#: flatcamEditors/FlatCAMGrbEditor.py:5489 flatcamTools/ToolTransform.py:470
-msgid "Scale Y"
-msgstr "Scale Y"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:799
-#: flatcamEditors/FlatCAMGrbEditor.py:5498
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:124
-#: flatcamTools/ToolTransform.py:189
-msgid "Link"
-msgstr "Link"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:801
-#: flatcamEditors/FlatCAMGrbEditor.py:5500
-msgid ""
-"Scale the selected shape(s)\n"
-"using the Scale Factor X for both axis."
-msgstr ""
-"Scale the selected shape(s)\n"
-"using the Scale Factor X for both axis."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:807
-#: flatcamEditors/FlatCAMGrbEditor.py:5506
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:132
-#: flatcamTools/ToolTransform.py:196
-msgid "Scale Reference"
-msgstr "Scale Reference"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:809
-#: flatcamEditors/FlatCAMGrbEditor.py:5508
-msgid ""
-"Scale the selected shape(s)\n"
-"using the origin reference when checked,\n"
-"and the center of the biggest bounding box\n"
-"of the selected shapes when unchecked."
-msgstr ""
-"Scale the selected shape(s)\n"
-"using the origin reference when checked,\n"
-"and the center of the biggest bounding box\n"
-"of the selected shapes when unchecked."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:837
-#: flatcamEditors/FlatCAMGrbEditor.py:5537
-msgid "Value X:"
-msgstr "Value X:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:839
-#: flatcamEditors/FlatCAMGrbEditor.py:5539
-msgid "Value for Offset action on X axis."
-msgstr "Value for Offset action on X axis."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:849
-#: flatcamEditors/FlatCAMGrbEditor.py:5549 flatcamTools/ToolTransform.py:473
-msgid "Offset X"
-msgstr "Offset X"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:851
-#: flatcamEditors/FlatCAMGeoEditor.py:871
-#: flatcamEditors/FlatCAMGrbEditor.py:5551
-#: flatcamEditors/FlatCAMGrbEditor.py:5571
-msgid ""
-"Offset the selected shape(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected shapes.\n"
-msgstr ""
-"Offset the selected shape(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected shapes.\n"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:857
-#: flatcamEditors/FlatCAMGrbEditor.py:5557
-msgid "Value Y:"
-msgstr "Value Y:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:859
-#: flatcamEditors/FlatCAMGrbEditor.py:5559
-msgid "Value for Offset action on Y axis."
-msgstr "Value for Offset action on Y axis."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:869
-#: flatcamEditors/FlatCAMGrbEditor.py:5569 flatcamTools/ToolTransform.py:474
-msgid "Offset Y"
-msgstr "Offset Y"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:900
-#: flatcamEditors/FlatCAMGrbEditor.py:5600 flatcamTools/ToolTransform.py:475
-msgid "Flip on X"
-msgstr "Flip on X"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:902
-#: flatcamEditors/FlatCAMGeoEditor.py:909
-#: flatcamEditors/FlatCAMGrbEditor.py:5602
-#: flatcamEditors/FlatCAMGrbEditor.py:5609
-msgid ""
-"Flip the selected shape(s) over the X axis.\n"
-"Does not create a new shape."
-msgstr ""
-"Flip the selected shape(s) over the X axis.\n"
-"Does not create a new shape."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:907
-#: flatcamEditors/FlatCAMGrbEditor.py:5607 flatcamTools/ToolTransform.py:476
-msgid "Flip on Y"
-msgstr "Flip on Y"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:915
-#: flatcamEditors/FlatCAMGrbEditor.py:5615
-msgid "Ref Pt"
-msgstr "Ref Pt"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:917
-#: flatcamEditors/FlatCAMGrbEditor.py:5617
-msgid ""
-"Flip the selected shape(s)\n"
-"around the point in Point Entry Field.\n"
-"\n"
-"The point coordinates can be captured by\n"
-"left click on canvas together with pressing\n"
-"SHIFT key. \n"
-"Then click Add button to insert coordinates.\n"
-"Or enter the coords in format (x, y) in the\n"
-"Point Entry field and click Flip on X(Y)"
-msgstr ""
-"Flip the selected shape(s)\n"
-"around the point in Point Entry Field.\n"
-"\n"
-"The point coordinates can be captured by\n"
-"left click on canvas together with pressing\n"
-"SHIFT key. \n"
-"Then click Add button to insert coordinates.\n"
-"Or enter the coords in format (x, y) in the\n"
-"Point Entry field and click Flip on X(Y)"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:929
-#: flatcamEditors/FlatCAMGrbEditor.py:5629
-msgid "Point:"
-msgstr "Point:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:931
-#: flatcamEditors/FlatCAMGrbEditor.py:5631 flatcamTools/ToolTransform.py:299
-msgid ""
-"Coordinates in format (x, y) used as reference for mirroring.\n"
-"The 'x' in (x, y) will be used when using Flip on X and\n"
-"the 'y' in (x, y) will be used when using Flip on Y."
-msgstr ""
-"Coordinates in format (x, y) used as reference for mirroring.\n"
-"The 'x' in (x, y) will be used when using Flip on X and\n"
-"the 'y' in (x, y) will be used when using Flip on Y."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:941
-#: flatcamEditors/FlatCAMGrbEditor.py:5643 flatcamTools/ToolTransform.py:309
-msgid ""
-"The point coordinates can be captured by\n"
-"left click on canvas together with pressing\n"
-"SHIFT key. Then click Add button to insert."
-msgstr ""
-"The point coordinates can be captured by\n"
-"left click on canvas together with pressing\n"
-"SHIFT key. Then click Add button to insert."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1304
-#: flatcamEditors/FlatCAMGrbEditor.py:5951
-msgid "No shape selected. Please Select a shape to rotate!"
-msgstr "No shape selected. Please Select a shape to rotate!"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1307
-#: flatcamEditors/FlatCAMGrbEditor.py:5954 flatcamTools/ToolTransform.py:679
-msgid "Appying Rotate"
-msgstr "Appying Rotate"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1333
-#: flatcamEditors/FlatCAMGrbEditor.py:5986
-msgid "Done. Rotate completed."
-msgstr "Done. Rotate completed."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1335
-msgid "Rotation action was not executed"
-msgstr "Rotation action was not executed"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1354
-#: flatcamEditors/FlatCAMGrbEditor.py:6005
-msgid "No shape selected. Please Select a shape to flip!"
-msgstr "No shape selected. Please Select a shape to flip!"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1357
-#: flatcamEditors/FlatCAMGrbEditor.py:6008 flatcamTools/ToolTransform.py:728
-msgid "Applying Flip"
-msgstr "Applying Flip"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1386
-#: flatcamEditors/FlatCAMGrbEditor.py:6046 flatcamTools/ToolTransform.py:769
-msgid "Flip on the Y axis done"
-msgstr "Flip on the Y axis done"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1390
-#: flatcamEditors/FlatCAMGrbEditor.py:6055 flatcamTools/ToolTransform.py:778
-msgid "Flip on the X axis done"
-msgstr "Flip on the X axis done"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1398
-msgid "Flip action was not executed"
-msgstr "Flip action was not executed"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1416
-#: flatcamEditors/FlatCAMGrbEditor.py:6075
-msgid "No shape selected. Please Select a shape to shear/skew!"
-msgstr "No shape selected. Please Select a shape to shear/skew!"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1419
-#: flatcamEditors/FlatCAMGrbEditor.py:6078 flatcamTools/ToolTransform.py:801
-msgid "Applying Skew"
-msgstr "Applying Skew"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1442
-#: flatcamEditors/FlatCAMGrbEditor.py:6112
-msgid "Skew on the X axis done"
-msgstr "Skew on the X axis done"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1444
-#: flatcamEditors/FlatCAMGrbEditor.py:6114
-msgid "Skew on the Y axis done"
-msgstr "Skew on the Y axis done"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1447
-msgid "Skew action was not executed"
-msgstr "Skew action was not executed"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1469
-#: flatcamEditors/FlatCAMGrbEditor.py:6136
-msgid "No shape selected. Please Select a shape to scale!"
-msgstr "No shape selected. Please Select a shape to scale!"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1472
-#: flatcamEditors/FlatCAMGrbEditor.py:6139 flatcamTools/ToolTransform.py:847
-msgid "Applying Scale"
-msgstr "Applying Scale"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1504
-#: flatcamEditors/FlatCAMGrbEditor.py:6176
-msgid "Scale on the X axis done"
-msgstr "Scale on the X axis done"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1506
-#: flatcamEditors/FlatCAMGrbEditor.py:6178
-msgid "Scale on the Y axis done"
-msgstr "Scale on the Y axis done"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1508
-msgid "Scale action was not executed"
-msgstr "Scale action was not executed"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1523
-#: flatcamEditors/FlatCAMGrbEditor.py:6195
-msgid "No shape selected. Please Select a shape to offset!"
-msgstr "No shape selected. Please Select a shape to offset!"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1526
-#: flatcamEditors/FlatCAMGrbEditor.py:6198 flatcamTools/ToolTransform.py:897
-msgid "Applying Offset"
-msgstr "Applying Offset"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1536
-#: flatcamEditors/FlatCAMGrbEditor.py:6219
-msgid "Offset on the X axis done"
-msgstr "Offset on the X axis done"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1538
-#: flatcamEditors/FlatCAMGrbEditor.py:6221
-msgid "Offset on the Y axis done"
-msgstr "Offset on the Y axis done"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1541
-msgid "Offset action was not executed"
-msgstr "Offset action was not executed"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1545
-#: flatcamEditors/FlatCAMGrbEditor.py:6228
-msgid "Rotate ..."
-msgstr "Rotate ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1546
-#: flatcamEditors/FlatCAMGeoEditor.py:1601
-#: flatcamEditors/FlatCAMGeoEditor.py:1618
-#: flatcamEditors/FlatCAMGrbEditor.py:6229
-#: flatcamEditors/FlatCAMGrbEditor.py:6278
-#: flatcamEditors/FlatCAMGrbEditor.py:6293
-msgid "Enter an Angle Value (degrees)"
-msgstr "Enter an Angle Value (degrees)"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1555
-#: flatcamEditors/FlatCAMGrbEditor.py:6237
-msgid "Geometry shape rotate done"
-msgstr "Geometry shape rotate done"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1559
-#: flatcamEditors/FlatCAMGrbEditor.py:6240
-msgid "Geometry shape rotate cancelled"
-msgstr "Geometry shape rotate cancelled"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1564
-#: flatcamEditors/FlatCAMGrbEditor.py:6245
-msgid "Offset on X axis ..."
-msgstr "Offset on X axis ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1565
-#: flatcamEditors/FlatCAMGeoEditor.py:1584
-#: flatcamEditors/FlatCAMGrbEditor.py:6246
-#: flatcamEditors/FlatCAMGrbEditor.py:6263
-msgid "Enter a distance Value"
-msgstr "Enter a distance Value"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1574
-#: flatcamEditors/FlatCAMGrbEditor.py:6254
-msgid "Geometry shape offset on X axis done"
-msgstr "Geometry shape offset on X axis done"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1578
-#: flatcamEditors/FlatCAMGrbEditor.py:6257
-msgid "Geometry shape offset X cancelled"
-msgstr "Geometry shape offset X cancelled"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1583
-#: flatcamEditors/FlatCAMGrbEditor.py:6262
-msgid "Offset on Y axis ..."
-msgstr "Offset on Y axis ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1593
-#: flatcamEditors/FlatCAMGrbEditor.py:6271
-msgid "Geometry shape offset on Y axis done"
-msgstr "Geometry shape offset on Y axis done"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1597
-msgid "Geometry shape offset on Y axis canceled"
-msgstr "Geometry shape offset on Y axis canceled"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1600
-#: flatcamEditors/FlatCAMGrbEditor.py:6277
-msgid "Skew on X axis ..."
-msgstr "Skew on X axis ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1610
-#: flatcamEditors/FlatCAMGrbEditor.py:6286
-msgid "Geometry shape skew on X axis done"
-msgstr "Geometry shape skew on X axis done"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1614
-msgid "Geometry shape skew on X axis canceled"
-msgstr "Geometry shape skew on X axis canceled"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1617
-#: flatcamEditors/FlatCAMGrbEditor.py:6292
-msgid "Skew on Y axis ..."
-msgstr "Skew on Y axis ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1627
-#: flatcamEditors/FlatCAMGrbEditor.py:6301
-msgid "Geometry shape skew on Y axis done"
-msgstr "Geometry shape skew on Y axis done"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1631
-msgid "Geometry shape skew on Y axis canceled"
-msgstr "Geometry shape skew on Y axis canceled"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2008
-#: flatcamEditors/FlatCAMGeoEditor.py:2079
-#: flatcamEditors/FlatCAMGrbEditor.py:1437
-#: flatcamEditors/FlatCAMGrbEditor.py:1515
-msgid "Click on Center point ..."
-msgstr "Click on Center point ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2021
-#: flatcamEditors/FlatCAMGrbEditor.py:1447
-msgid "Click on Perimeter point to complete ..."
-msgstr "Click on Perimeter point to complete ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2053
-msgid "Done. Adding Circle completed."
-msgstr "Done. Adding Circle completed."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2107
-#: flatcamEditors/FlatCAMGrbEditor.py:1548
-msgid "Click on Start point ..."
-msgstr "Click on Start point ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2109
-#: flatcamEditors/FlatCAMGrbEditor.py:1550
-msgid "Click on Point3 ..."
-msgstr "Click on Point3 ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2111
-#: flatcamEditors/FlatCAMGrbEditor.py:1552
-msgid "Click on Stop point ..."
-msgstr "Click on Stop point ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2116
-#: flatcamEditors/FlatCAMGrbEditor.py:1557
-msgid "Click on Stop point to complete ..."
-msgstr "Click on Stop point to complete ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2118
-#: flatcamEditors/FlatCAMGrbEditor.py:1559
-msgid "Click on Point2 to complete ..."
-msgstr "Click on Point2 to complete ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2120
-#: flatcamEditors/FlatCAMGrbEditor.py:1561
-msgid "Click on Center point to complete ..."
-msgstr "Click on Center point to complete ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2132
-#, python-format
-msgid "Direction: %s"
-msgstr "Direction: %s"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2146
-#: flatcamEditors/FlatCAMGrbEditor.py:1587
-msgid "Mode: Start -> Stop -> Center. Click on Start point ..."
-msgstr "Mode: Start -> Stop -> Center. Click on Start point ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2149
-#: flatcamEditors/FlatCAMGrbEditor.py:1590
-msgid "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..."
-msgstr "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2152
-#: flatcamEditors/FlatCAMGrbEditor.py:1593
-msgid "Mode: Center -> Start -> Stop. Click on Center point ..."
-msgstr "Mode: Center -> Start -> Stop. Click on Center point ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2293
-msgid "Done. Arc completed."
-msgstr "Done. Arc completed."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2324
-#: flatcamEditors/FlatCAMGeoEditor.py:2397
-msgid "Click on 1st corner ..."
-msgstr "Click on 1st corner ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2336
-msgid "Click on opposite corner to complete ..."
-msgstr "Click on opposite corner to complete ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2366
-msgid "Done. Rectangle completed."
-msgstr "Done. Rectangle completed."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2410
-#: flatcamObjects/FlatCAMGeometry.py:2648 flatcamTools/ToolNCC.py:1733
-#: flatcamTools/ToolPaint.py:1628
-msgid "Click on next Point or click right mouse button to complete ..."
-msgstr "Click on next Point or click right mouse button to complete ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2441
-msgid "Done. Polygon completed."
-msgstr "Done. Polygon completed."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2455
-#: flatcamEditors/FlatCAMGeoEditor.py:2520
-#: flatcamEditors/FlatCAMGrbEditor.py:1113
-#: flatcamEditors/FlatCAMGrbEditor.py:1324
-msgid "Backtracked one point ..."
-msgstr "Backtracked one point ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2498
-msgid "Done. Path completed."
-msgstr "Done. Path completed."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2657
-msgid "No shape selected. Select a shape to explode"
-msgstr "No shape selected. Select a shape to explode"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2690
-msgid "Done. Polygons exploded into lines."
-msgstr "Done. Polygons exploded into lines."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2722
-msgid "MOVE: No shape selected. Select a shape to move"
-msgstr "MOVE: No shape selected. Select a shape to move"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2725
-#: flatcamEditors/FlatCAMGeoEditor.py:2745
-msgid " MOVE: Click on reference point ..."
-msgstr " MOVE: Click on reference point ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2730
-msgid " Click on destination point ..."
-msgstr " Click on destination point ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2770
-msgid "Done. Geometry(s) Move completed."
-msgstr "Done. Geometry(s) Move completed."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2903
-msgid "Done. Geometry(s) Copy completed."
-msgstr "Done. Geometry(s) Copy completed."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2934
-#: flatcamEditors/FlatCAMGrbEditor.py:899
-msgid "Click on 1st point ..."
-msgstr "Click on 1st point ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2958
-msgid ""
-"Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. "
-"Error"
-msgstr ""
-"Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. "
-"Error"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2966
-msgid "No text to add."
-msgstr "No text to add."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2976
-msgid " Done. Adding Text completed."
-msgstr " Done. Adding Text completed."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3013
-msgid "Create buffer geometry ..."
-msgstr "Create buffer geometry ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3048
-#: flatcamEditors/FlatCAMGrbEditor.py:5160
-msgid "Done. Buffer Tool completed."
-msgstr "Done. Buffer Tool completed."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3076
-msgid "Done. Buffer Int Tool completed."
-msgstr "Done. Buffer Int Tool completed."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3104
-msgid "Done. Buffer Ext Tool completed."
-msgstr "Done. Buffer Ext Tool completed."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3153
-#: flatcamEditors/FlatCAMGrbEditor.py:2153
-msgid "Select a shape to act as deletion area ..."
-msgstr "Select a shape to act as deletion area ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3155
-#: flatcamEditors/FlatCAMGeoEditor.py:3181
-#: flatcamEditors/FlatCAMGeoEditor.py:3187
-#: flatcamEditors/FlatCAMGrbEditor.py:2155
-msgid "Click to pick-up the erase shape..."
-msgstr "Click to pick-up the erase shape..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3191
-#: flatcamEditors/FlatCAMGrbEditor.py:2214
-msgid "Click to erase ..."
-msgstr "Click to erase ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3220
-#: flatcamEditors/FlatCAMGrbEditor.py:2247
-msgid "Done. Eraser tool action completed."
-msgstr "Done. Eraser tool action completed."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3270
-msgid "Create Paint geometry ..."
-msgstr "Create Paint geometry ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3283
-#: flatcamEditors/FlatCAMGrbEditor.py:2410
-msgid "Shape transformations ..."
-msgstr "Shape transformations ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3339
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:27
-msgid "Geometry Editor"
-msgstr "Geometry Editor"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3345
-#: flatcamEditors/FlatCAMGrbEditor.py:2488
-#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263
-#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326
-#: flatcamTools/ToolCutOut.py:95
-msgid "Type"
-msgstr "Type"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3345 flatcamGUI/ObjectUI.py:218
-#: flatcamGUI/ObjectUI.py:742 flatcamGUI/ObjectUI.py:1433
-#: flatcamGUI/ObjectUI.py:2235 flatcamGUI/ObjectUI.py:2539
-#: flatcamGUI/ObjectUI.py:2606 flatcamTools/ToolCalibration.py:234
-#: flatcamTools/ToolFiducials.py:73
-msgid "Name"
-msgstr "Name"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3587
-msgid "Ring"
-msgstr "Ring"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3589
-msgid "Line"
-msgstr "Line"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3591 flatcamGUI/FlatCAMGUI.py:2202
-#: flatcamGUI/ObjectUI.py:2074
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:218
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:328
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:292
-#: flatcamTools/ToolNCC.py:584 flatcamTools/ToolPaint.py:528
-msgid "Polygon"
-msgstr "Polygon"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3593
-msgid "Multi-Line"
-msgstr "Multi-Line"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3595
-msgid "Multi-Polygon"
-msgstr "Multi-Polygon"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3602
-msgid "Geo Elem"
-msgstr "Geo Elem"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4076
-msgid "Editing MultiGeo Geometry, tool"
-msgstr "Editing MultiGeo Geometry, tool"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4078
-msgid "with diameter"
-msgstr "with diameter"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4509 flatcamGUI/FlatCAMGUI.py:3753
-#: flatcamGUI/FlatCAMGUI.py:3799 flatcamGUI/FlatCAMGUI.py:3817
-#: flatcamGUI/FlatCAMGUI.py:3961 flatcamGUI/FlatCAMGUI.py:4000
-#: flatcamGUI/FlatCAMGUI.py:4012 flatcamGUI/FlatCAMGUI.py:4029
-msgid "Click on target point."
-msgstr "Click on target point."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4823
-#: flatcamEditors/FlatCAMGeoEditor.py:4858
-msgid "A selection of at least 2 geo items is required to do Intersection."
-msgstr "A selection of at least 2 geo items is required to do Intersection."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4944
-#: flatcamEditors/FlatCAMGeoEditor.py:5048
-msgid ""
-"Negative buffer value is not accepted. Use Buffer interior to generate an "
-"'inside' shape"
-msgstr ""
-"Negative buffer value is not accepted. Use Buffer interior to generate an "
-"'inside' shape"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4954
-#: flatcamEditors/FlatCAMGeoEditor.py:5007
-#: flatcamEditors/FlatCAMGeoEditor.py:5057
-msgid "Nothing selected for buffering."
-msgstr "Nothing selected for buffering."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4959
-#: flatcamEditors/FlatCAMGeoEditor.py:5011
-#: flatcamEditors/FlatCAMGeoEditor.py:5062
-msgid "Invalid distance for buffering."
-msgstr "Invalid distance for buffering."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4983
-#: flatcamEditors/FlatCAMGeoEditor.py:5082
-msgid "Failed, the result is empty. Choose a different buffer value."
-msgstr "Failed, the result is empty. Choose a different buffer value."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4994
-msgid "Full buffer geometry created."
-msgstr "Full buffer geometry created."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5000
-msgid "Negative buffer value is not accepted."
-msgstr "Negative buffer value is not accepted."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5031
-msgid "Failed, the result is empty. Choose a smaller buffer value."
-msgstr "Failed, the result is empty. Choose a smaller buffer value."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5041
-msgid "Interior buffer geometry created."
-msgstr "Interior buffer geometry created."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5092
-msgid "Exterior buffer geometry created."
-msgstr "Exterior buffer geometry created."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5098
-#, python-format
-msgid "Could not do Paint. Overlap value has to be less than 100%%."
-msgstr "Could not do Paint. Overlap value has to be less than 100%%."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5105
-msgid "Nothing selected for painting."
-msgstr "Nothing selected for painting."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5111
-msgid "Invalid value for"
-msgstr "Invalid value for"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5170
-msgid ""
-"Could not do Paint. Try a different combination of parameters. Or a "
-"different method of Paint"
-msgstr ""
-"Could not do Paint. Try a different combination of parameters. Or a "
-"different method of Paint"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5181
-msgid "Paint done."
-msgstr "Paint done."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:213
-msgid "To add an Pad first select a aperture in Aperture Table"
-msgstr "To add an Pad first select a aperture in Aperture Table"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:220
-#: flatcamEditors/FlatCAMGrbEditor.py:420
-msgid "Aperture size is zero. It needs to be greater than zero."
-msgstr "Aperture size is zero. It needs to be greater than zero."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:373
-#: flatcamEditors/FlatCAMGrbEditor.py:686
-msgid ""
-"Incompatible aperture type. Select an aperture with type 'C', 'R' or 'O'."
-msgstr ""
-"Incompatible aperture type. Select an aperture with type 'C', 'R' or 'O'."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:385
-msgid "Done. Adding Pad completed."
-msgstr "Done. Adding Pad completed."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:412
-msgid "To add an Pad Array first select a aperture in Aperture Table"
-msgstr "To add an Pad Array first select a aperture in Aperture Table"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:492
-msgid "Click on the Pad Circular Array Start position"
-msgstr "Click on the Pad Circular Array Start position"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:712
-msgid "Too many Pads for the selected spacing angle."
-msgstr "Too many Pads for the selected spacing angle."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:735
-msgid "Done. Pad Array added."
-msgstr "Done. Pad Array added."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:760
-msgid "Select shape(s) and then click ..."
-msgstr "Select shape(s) and then click ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:772
-msgid "Failed. Nothing selected."
-msgstr "Failed. Nothing selected."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:788
-msgid ""
-"Failed. Poligonize works only on geometries belonging to the same aperture."
-msgstr ""
-"Failed. Poligonize works only on geometries belonging to the same aperture."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:842
-msgid "Done. Poligonize completed."
-msgstr "Done. Poligonize completed."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:897
-#: flatcamEditors/FlatCAMGrbEditor.py:1130
-#: flatcamEditors/FlatCAMGrbEditor.py:1154
-msgid "Corner Mode 1: 45 degrees ..."
-msgstr "Corner Mode 1: 45 degrees ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:909
-#: flatcamEditors/FlatCAMGrbEditor.py:1239
-msgid "Click on next Point or click Right mouse button to complete ..."
-msgstr "Click on next Point or click Right mouse button to complete ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1118
-#: flatcamEditors/FlatCAMGrbEditor.py:1151
-msgid "Corner Mode 2: Reverse 45 degrees ..."
-msgstr "Corner Mode 2: Reverse 45 degrees ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1121
-#: flatcamEditors/FlatCAMGrbEditor.py:1148
-msgid "Corner Mode 3: 90 degrees ..."
-msgstr "Corner Mode 3: 90 degrees ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1124
-#: flatcamEditors/FlatCAMGrbEditor.py:1145
-msgid "Corner Mode 4: Reverse 90 degrees ..."
-msgstr "Corner Mode 4: Reverse 90 degrees ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1127
-#: flatcamEditors/FlatCAMGrbEditor.py:1142
-msgid "Corner Mode 5: Free angle ..."
-msgstr "Corner Mode 5: Free angle ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1184
-#: flatcamEditors/FlatCAMGrbEditor.py:1360
-#: flatcamEditors/FlatCAMGrbEditor.py:1399
-msgid "Track Mode 1: 45 degrees ..."
-msgstr "Track Mode 1: 45 degrees ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1340
-#: flatcamEditors/FlatCAMGrbEditor.py:1394
-msgid "Track Mode 2: Reverse 45 degrees ..."
-msgstr "Track Mode 2: Reverse 45 degrees ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1345
-#: flatcamEditors/FlatCAMGrbEditor.py:1389
-msgid "Track Mode 3: 90 degrees ..."
-msgstr "Track Mode 3: 90 degrees ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1350
-#: flatcamEditors/FlatCAMGrbEditor.py:1384
-msgid "Track Mode 4: Reverse 90 degrees ..."
-msgstr "Track Mode 4: Reverse 90 degrees ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1355
-#: flatcamEditors/FlatCAMGrbEditor.py:1379
-msgid "Track Mode 5: Free angle ..."
-msgstr "Track Mode 5: Free angle ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1780
-msgid "Scale the selected Gerber apertures ..."
-msgstr "Scale the selected Gerber apertures ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1822
-msgid "Buffer the selected apertures ..."
-msgstr "Buffer the selected apertures ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1864
-msgid "Mark polygon areas in the edited Gerber ..."
-msgstr "Mark polygon areas in the edited Gerber ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1930
-msgid "Nothing selected to move"
-msgstr "Nothing selected to move"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2055
-msgid "Done. Apertures Move completed."
-msgstr "Done. Apertures Move completed."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2137
-msgid "Done. Apertures copied."
-msgstr "Done. Apertures copied."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2455 flatcamGUI/FlatCAMGUI.py:2233
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:27
-msgid "Gerber Editor"
-msgstr "Gerber Editor"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2475 flatcamGUI/ObjectUI.py:228
-#: flatcamTools/ToolProperties.py:159
-msgid "Apertures"
-msgstr "Apertures"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2477 flatcamGUI/ObjectUI.py:230
-msgid "Apertures Table for the Gerber Object."
-msgstr "Apertures Table for the Gerber Object."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2488
-#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263
-msgid "Code"
-msgstr "Code"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2488
-#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:103
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43
-#: flatcamTools/ToolCopperThieving.py:261
-#: flatcamTools/ToolCopperThieving.py:301 flatcamTools/ToolFiducials.py:156
-msgid "Size"
-msgstr "Size"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2488
-#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263
-msgid "Dim"
-msgstr "Dim"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2493 flatcamGUI/ObjectUI.py:267
-msgid "Index"
-msgstr "Index"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2495
-#: flatcamEditors/FlatCAMGrbEditor.py:2524 flatcamGUI/ObjectUI.py:269
-msgid "Aperture Code"
-msgstr "Aperture Code"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2497 flatcamGUI/ObjectUI.py:271
-msgid "Type of aperture: circular, rectangle, macros etc"
-msgstr "Type of aperture: circular, rectangle, macros etc"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2499 flatcamGUI/ObjectUI.py:273
-msgid "Aperture Size:"
-msgstr "Aperture Size:"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2501 flatcamGUI/ObjectUI.py:275
-msgid ""
-"Aperture Dimensions:\n"
-" - (width, height) for R, O type.\n"
-" - (dia, nVertices) for P type"
-msgstr ""
-"Aperture Dimensions:\n"
-" - (width, height) for R, O type.\n"
-" - (dia, nVertices) for P type"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2525
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:58
-msgid "Code for the new aperture"
-msgstr "Code for the new aperture"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2534
-msgid "Aperture Size"
-msgstr "Aperture Size"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2536
-msgid ""
-"Size for the new aperture.\n"
-"If aperture type is 'R' or 'O' then\n"
-"this value is automatically\n"
-"calculated as:\n"
-"sqrt(width**2 + height**2)"
-msgstr ""
-"Size for the new aperture.\n"
-"If aperture type is 'R' or 'O' then\n"
-"this value is automatically\n"
-"calculated as:\n"
-"sqrt(width**2 + height**2)"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2550
-msgid "Aperture Type"
-msgstr "Aperture Type"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2552
-msgid ""
-"Select the type of new aperture. Can be:\n"
-"C = circular\n"
-"R = rectangular\n"
-"O = oblong"
-msgstr ""
-"Select the type of new aperture. Can be:\n"
-"C = circular\n"
-"R = rectangular\n"
-"O = oblong"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2563
-msgid "Aperture Dim"
-msgstr "Aperture Dim"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2565
-msgid ""
-"Dimensions for the new aperture.\n"
-"Active only for rectangular apertures (type R).\n"
-"The format is (width, height)"
-msgstr ""
-"Dimensions for the new aperture.\n"
-"Active only for rectangular apertures (type R).\n"
-"The format is (width, height)"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2574
-msgid "Add/Delete Aperture"
-msgstr "Add/Delete Aperture"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2576
-msgid "Add/Delete an aperture in the aperture table"
-msgstr "Add/Delete an aperture in the aperture table"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2585
-msgid "Add a new aperture to the aperture list."
-msgstr "Add a new aperture to the aperture list."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2590
-msgid "Delete a aperture in the aperture list"
-msgstr "Delete a aperture in the aperture list"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2607
-msgid "Buffer Aperture"
-msgstr "Buffer Aperture"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2609
-msgid "Buffer a aperture in the aperture list"
-msgstr "Buffer a aperture in the aperture list"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2622
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:194
-msgid "Buffer distance"
-msgstr "Buffer distance"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2623
-msgid "Buffer corner"
-msgstr "Buffer corner"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2625
-msgid ""
-"There are 3 types of corners:\n"
-" - 'Round': the corner is rounded.\n"
-" - 'Square': the corner is met in a sharp angle.\n"
-" - 'Beveled': the corner is a line that directly connects the features "
-"meeting in the corner"
-msgstr ""
-"There are 3 types of corners:\n"
-" - 'Round': the corner is rounded.\n"
-" - 'Square': the corner is met in a sharp angle.\n"
-" - 'Beveled': the corner is a line that directly connects the features "
-"meeting in the corner"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2640 flatcamGUI/FlatCAMGUI.py:1061
-#: flatcamGUI/FlatCAMGUI.py:2138 flatcamGUI/FlatCAMGUI.py:2210
-#: flatcamGUI/FlatCAMGUI.py:2253 flatcamGUI/FlatCAMGUI.py:2765
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:200
-#: flatcamTools/ToolTransform.py:29
-msgid "Buffer"
-msgstr "Buffer"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2655
-msgid "Scale Aperture"
-msgstr "Scale Aperture"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2657
-msgid "Scale a aperture in the aperture list"
-msgstr "Scale a aperture in the aperture list"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2665
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:209
-msgid "Scale factor"
-msgstr "Scale factor"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2667
-msgid ""
-"The factor by which to scale the selected aperture.\n"
-"Values can be between 0.0000 and 999.9999"
-msgstr ""
-"The factor by which to scale the selected aperture.\n"
-"Values can be between 0.0000 and 999.9999"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2695
-msgid "Mark polygons"
-msgstr "Mark polygons"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2697
-msgid "Mark the polygon areas."
-msgstr "Mark the polygon areas."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2705
-msgid "Area UPPER threshold"
-msgstr "Area UPPER threshold"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2707
-msgid ""
-"The threshold value, all areas less than this are marked.\n"
-"Can have a value between 0.0000 and 9999.9999"
-msgstr ""
-"The threshold value, all areas less than this are marked.\n"
-"Can have a value between 0.0000 and 9999.9999"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2714
-msgid "Area LOWER threshold"
-msgstr "Area LOWER threshold"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2716
-msgid ""
-"The threshold value, all areas more than this are marked.\n"
-"Can have a value between 0.0000 and 9999.9999"
-msgstr ""
-"The threshold value, all areas more than this are marked.\n"
-"Can have a value between 0.0000 and 9999.9999"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2730
-msgid "Mark"
-msgstr "Mark"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2732
-msgid "Mark the polygons that fit within limits."
-msgstr "Mark the polygons that fit within limits."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2738
-msgid "Delete all the marked polygons."
-msgstr "Delete all the marked polygons."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2744
-msgid "Clear all the markings."
-msgstr "Clear all the markings."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2764 flatcamGUI/FlatCAMGUI.py:1046
-#: flatcamGUI/FlatCAMGUI.py:2138 flatcamGUI/FlatCAMGUI.py:2750
-msgid "Add Pad Array"
-msgstr "Add Pad Array"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2766
-msgid "Add an array of pads (linear or circular array)"
-msgstr "Add an array of pads (linear or circular array)"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2772
-msgid ""
-"Select the type of pads array to create.\n"
-"It can be Linear X(Y) or Circular"
-msgstr ""
-"Select the type of pads array to create.\n"
-"It can be Linear X(Y) or Circular"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2783
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:95
-msgid "Nr of pads"
-msgstr "Nr of pads"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2785
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:97
-msgid "Specify how many pads to be in the array."
-msgstr "Specify how many pads to be in the array."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2834
-msgid ""
-"Angle at which the linear array is placed.\n"
-"The precision is of max 2 decimals.\n"
-"Min value is: -359.99 degrees.\n"
-"Max value is: 360.00 degrees."
-msgstr ""
-"Angle at which the linear array is placed.\n"
-"The precision is of max 2 decimals.\n"
-"Min value is: -359.99 degrees.\n"
-"Max value is: 360.00 degrees."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3328
-#: flatcamEditors/FlatCAMGrbEditor.py:3332
-msgid "Aperture code value is missing or wrong format. Add it and retry."
-msgstr "Aperture code value is missing or wrong format. Add it and retry."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3368
-msgid ""
-"Aperture dimensions value is missing or wrong format. Add it in format "
-"(width, height) and retry."
-msgstr ""
-"Aperture dimensions value is missing or wrong format. Add it in format "
-"(width, height) and retry."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3381
-msgid "Aperture size value is missing or wrong format. Add it and retry."
-msgstr "Aperture size value is missing or wrong format. Add it and retry."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3392
-msgid "Aperture already in the aperture table."
-msgstr "Aperture already in the aperture table."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3399
-msgid "Added new aperture with code"
-msgstr "Added new aperture with code"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3431
-msgid " Select an aperture in Aperture Table"
-msgstr " Select an aperture in Aperture Table"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3439
-msgid "Select an aperture in Aperture Table -->"
-msgstr "Select an aperture in Aperture Table -->"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3453
-msgid "Deleted aperture with code"
-msgstr "Deleted aperture with code"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3521
-msgid "Dimensions need two float values separated by comma."
-msgstr "Dimensions need two float values separated by comma."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3530
-msgid "Dimensions edited."
-msgstr "Dimensions edited."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4084
-msgid "Loading Gerber into Editor"
-msgstr "Loading Gerber into Editor"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4212
-msgid "Setting up the UI"
-msgstr "Setting up the UI"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4213
-msgid "Adding geometry finished. Preparing the GUI"
-msgstr "Adding geometry finished. Preparing the GUI"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4222
-msgid "Finished loading the Gerber object into the editor."
-msgstr "Finished loading the Gerber object into the editor."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4361
-msgid ""
-"There are no Aperture definitions in the file. Aborting Gerber creation."
-msgstr ""
-"There are no Aperture definitions in the file. Aborting Gerber creation."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4371
-msgid "Creating Gerber."
-msgstr "Creating Gerber."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4380
-msgid "Done. Gerber editing finished."
-msgstr "Done. Gerber editing finished."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4398
-msgid "Cancelled. No aperture is selected"
-msgstr "Cancelled. No aperture is selected"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4992
-msgid "Failed. No aperture geometry is selected."
-msgstr "Failed. No aperture geometry is selected."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5001
-#: flatcamEditors/FlatCAMGrbEditor.py:5272
-msgid "Done. Apertures geometry deleted."
-msgstr "Done. Apertures geometry deleted."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5144
-msgid "No aperture to buffer. Select at least one aperture and try again."
-msgstr "No aperture to buffer. Select at least one aperture and try again."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5156
-msgid "Failed."
-msgstr "Failed."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5175
-msgid "Scale factor value is missing or wrong format. Add it and retry."
-msgstr "Scale factor value is missing or wrong format. Add it and retry."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5207
-msgid "No aperture to scale. Select at least one aperture and try again."
-msgstr "No aperture to scale. Select at least one aperture and try again."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5223
-msgid "Done. Scale Tool completed."
-msgstr "Done. Scale Tool completed."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5261
-msgid "Polygons marked."
-msgstr "Polygons marked."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5264
-msgid "No polygons were marked. None fit within the limits."
-msgstr "No polygons were marked. None fit within the limits."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5988
-msgid "Rotation action was not executed."
-msgstr "Rotation action was not executed."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:6116
-msgid "Skew action was not executed."
-msgstr "Skew action was not executed."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:6181
-msgid "Scale action was not executed."
-msgstr "Scale action was not executed."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:6224
-msgid "Offset action was not executed."
-msgstr "Offset action was not executed."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:6274
-msgid "Geometry shape offset Y cancelled"
-msgstr "Geometry shape offset Y cancelled"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:6289
-msgid "Geometry shape skew X cancelled"
-msgstr "Geometry shape skew X cancelled"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:6304
-msgid "Geometry shape skew Y cancelled"
-msgstr "Geometry shape skew Y cancelled"
-
-#: flatcamEditors/FlatCAMTextEditor.py:74
-msgid "Print Preview"
-msgstr "Print Preview"
-
-#: flatcamEditors/FlatCAMTextEditor.py:75
-msgid "Open a OS standard Preview Print window."
-msgstr "Open a OS standard Preview Print window."
-
-#: flatcamEditors/FlatCAMTextEditor.py:78
-msgid "Print Code"
-msgstr "Print Code"
-
-#: flatcamEditors/FlatCAMTextEditor.py:79
-msgid "Open a OS standard Print window."
-msgstr "Open a OS standard Print window."
-
-#: flatcamEditors/FlatCAMTextEditor.py:81
-msgid "Find in Code"
-msgstr "Find in Code"
-
-#: flatcamEditors/FlatCAMTextEditor.py:82
-msgid "Will search and highlight in yellow the string in the Find box."
-msgstr "Will search and highlight in yellow the string in the Find box."
-
-#: flatcamEditors/FlatCAMTextEditor.py:86
-msgid "Find box. Enter here the strings to be searched in the text."
-msgstr "Find box. Enter here the strings to be searched in the text."
-
-#: flatcamEditors/FlatCAMTextEditor.py:88
-msgid "Replace With"
-msgstr "Replace With"
-
-#: flatcamEditors/FlatCAMTextEditor.py:89
-msgid ""
-"Will replace the string from the Find box with the one in the Replace box."
-msgstr ""
-"Will replace the string from the Find box with the one in the Replace box."
-
-#: flatcamEditors/FlatCAMTextEditor.py:93
-msgid "String to replace the one in the Find box throughout the text."
-msgstr "String to replace the one in the Find box throughout the text."
-
-#: flatcamEditors/FlatCAMTextEditor.py:95 flatcamGUI/ObjectUI.py:486
-#: flatcamGUI/ObjectUI.py:2219
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:54
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:88
-msgid "All"
-msgstr "All"
-
-#: flatcamEditors/FlatCAMTextEditor.py:96
-msgid ""
-"When checked it will replace all instances in the 'Find' box\n"
-"with the text in the 'Replace' box.."
-msgstr ""
-"When checked it will replace all instances in the 'Find' box\n"
-"with the text in the 'Replace' box.."
-
-#: flatcamEditors/FlatCAMTextEditor.py:99
-msgid "Copy All"
-msgstr "Copy All"
-
-#: flatcamEditors/FlatCAMTextEditor.py:100
-msgid "Will copy all the text in the Code Editor to the clipboard."
-msgstr "Will copy all the text in the Code Editor to the clipboard."
-
-#: flatcamEditors/FlatCAMTextEditor.py:103
-msgid "Open Code"
-msgstr "Open Code"
-
-#: flatcamEditors/FlatCAMTextEditor.py:104
-msgid "Will open a text file in the editor."
-msgstr "Will open a text file in the editor."
-
-#: flatcamEditors/FlatCAMTextEditor.py:106
-msgid "Save Code"
-msgstr "Save Code"
-
-#: flatcamEditors/FlatCAMTextEditor.py:107
-msgid "Will save the text in the editor into a file."
-msgstr "Will save the text in the editor into a file."
-
-#: flatcamEditors/FlatCAMTextEditor.py:109
-msgid "Run Code"
-msgstr "Run Code"
-
-#: flatcamEditors/FlatCAMTextEditor.py:110
-msgid "Will run the TCL commands found in the text file, one by one."
-msgstr "Will run the TCL commands found in the text file, one by one."
-
-#: flatcamEditors/FlatCAMTextEditor.py:184
-msgid "Open file"
-msgstr "Open file"
-
-#: flatcamEditors/FlatCAMTextEditor.py:215
-#: flatcamEditors/FlatCAMTextEditor.py:220
-msgid "Export Code ..."
-msgstr "Export Code ..."
-
-#: flatcamEditors/FlatCAMTextEditor.py:272 flatcamObjects/FlatCAMCNCJob.py:955
-#: flatcamTools/ToolSolderPaste.py:1530
-msgid "No such file or directory"
-msgstr "No such file or directory"
-
-#: flatcamEditors/FlatCAMTextEditor.py:284 flatcamObjects/FlatCAMCNCJob.py:969
-msgid "Saved to"
-msgstr "Saved to"
-
-#: flatcamEditors/FlatCAMTextEditor.py:334
-msgid "Code Editor content copied to clipboard ..."
-msgstr "Code Editor content copied to clipboard ..."
-
-#: flatcamGUI/FlatCAMGUI.py:78 flatcamGUI/FlatCAMGUI.py:80
-#: flatcamGUI/FlatCAMGUI.py:2163
-msgid "Toggle Panel"
-msgstr "Toggle Panel"
-
-#: flatcamGUI/FlatCAMGUI.py:90
-msgid "File"
-msgstr "File"
-
-#: flatcamGUI/FlatCAMGUI.py:95
-msgid "&New Project ...\tCtrl+N"
-msgstr "&New Project ...\tCtrl+N"
-
-#: flatcamGUI/FlatCAMGUI.py:97
-msgid "Will create a new, blank project"
-msgstr "Will create a new, blank project"
-
-#: flatcamGUI/FlatCAMGUI.py:102
-msgid "&New"
-msgstr "&New"
-
-#: flatcamGUI/FlatCAMGUI.py:106
-msgid "Geometry\tN"
-msgstr "Geometry\tN"
-
-#: flatcamGUI/FlatCAMGUI.py:108
-msgid "Will create a new, empty Geometry Object."
-msgstr "Will create a new, empty Geometry Object."
-
-#: flatcamGUI/FlatCAMGUI.py:111
-msgid "Gerber\tB"
-msgstr "Gerber\tB"
-
-#: flatcamGUI/FlatCAMGUI.py:113
-msgid "Will create a new, empty Gerber Object."
-msgstr "Will create a new, empty Gerber Object."
-
-#: flatcamGUI/FlatCAMGUI.py:116
-msgid "Excellon\tL"
-msgstr "Excellon\tL"
-
-#: flatcamGUI/FlatCAMGUI.py:118
-msgid "Will create a new, empty Excellon Object."
-msgstr "Will create a new, empty Excellon Object."
-
-#: flatcamGUI/FlatCAMGUI.py:123
-msgid "Document\tD"
-msgstr "Document\tD"
-
-#: flatcamGUI/FlatCAMGUI.py:125
-msgid "Will create a new, empty Document Object."
-msgstr "Will create a new, empty Document Object."
-
-#: flatcamGUI/FlatCAMGUI.py:129 flatcamGUI/FlatCAMGUI.py:4420
-#: flatcamTools/ToolPcbWizard.py:62 flatcamTools/ToolPcbWizard.py:69
-msgid "Open"
-msgstr "Open"
-
-#: flatcamGUI/FlatCAMGUI.py:134
-msgid "Open &Project ..."
-msgstr "Open &Project ..."
-
-#: flatcamGUI/FlatCAMGUI.py:140 flatcamGUI/FlatCAMGUI.py:4430
-msgid "Open &Gerber ...\tCtrl+G"
-msgstr "Open &Gerber ...\tCtrl+G"
-
-#: flatcamGUI/FlatCAMGUI.py:145 flatcamGUI/FlatCAMGUI.py:4435
-msgid "Open &Excellon ...\tCtrl+E"
-msgstr "Open &Excellon ...\tCtrl+E"
-
-#: flatcamGUI/FlatCAMGUI.py:150 flatcamGUI/FlatCAMGUI.py:4440
-msgid "Open G-&Code ..."
-msgstr "Open G-&Code ..."
-
-#: flatcamGUI/FlatCAMGUI.py:157
-msgid "Open Config ..."
-msgstr "Open Config ..."
-
-#: flatcamGUI/FlatCAMGUI.py:162
-msgid "Recent projects"
-msgstr "Recent projects"
-
-#: flatcamGUI/FlatCAMGUI.py:164
-msgid "Recent files"
-msgstr "Recent files"
-
-#: flatcamGUI/FlatCAMGUI.py:167 flatcamGUI/FlatCAMGUI.py:753
-#: flatcamGUI/FlatCAMGUI.py:1339
-msgid "Save"
-msgstr "Save"
-
-#: flatcamGUI/FlatCAMGUI.py:171
-msgid "&Save Project ...\tCtrl+S"
-msgstr "&Save Project ...\tCtrl+S"
-
-#: flatcamGUI/FlatCAMGUI.py:176
-msgid "Save Project &As ...\tCtrl+Shift+S"
-msgstr "Save Project &As ...\tCtrl+Shift+S"
-
-#: flatcamGUI/FlatCAMGUI.py:191
-msgid "Scripting"
-msgstr "Scripting"
-
-#: flatcamGUI/FlatCAMGUI.py:195 flatcamGUI/FlatCAMGUI.py:903
-#: flatcamGUI/FlatCAMGUI.py:2607
-msgid "New Script ..."
-msgstr "New Script ..."
-
-#: flatcamGUI/FlatCAMGUI.py:197 flatcamGUI/FlatCAMGUI.py:905
-#: flatcamGUI/FlatCAMGUI.py:2609
-msgid "Open Script ..."
-msgstr "Open Script ..."
-
-#: flatcamGUI/FlatCAMGUI.py:199
-msgid "Open Example ..."
-msgstr "Open Example ..."
-
-#: flatcamGUI/FlatCAMGUI.py:201 flatcamGUI/FlatCAMGUI.py:907
-#: flatcamGUI/FlatCAMGUI.py:2611 flatcamGUI/FlatCAMGUI.py:4409
-msgid "Run Script ..."
-msgstr "Run Script ..."
-
-#: flatcamGUI/FlatCAMGUI.py:203 flatcamGUI/FlatCAMGUI.py:4411
-msgid ""
-"Will run the opened Tcl Script thus\n"
-"enabling the automation of certain\n"
-"functions of FlatCAM."
-msgstr ""
-"Will run the opened Tcl Script thus\n"
-"enabling the automation of certain\n"
-"functions of FlatCAM."
-
-#: flatcamGUI/FlatCAMGUI.py:218
-msgid "Import"
-msgstr "Import"
-
-#: flatcamGUI/FlatCAMGUI.py:220
-msgid "&SVG as Geometry Object ..."
-msgstr "&SVG as Geometry Object ..."
-
-#: flatcamGUI/FlatCAMGUI.py:223
-msgid "&SVG as Gerber Object ..."
-msgstr "&SVG as Gerber Object ..."
-
-#: flatcamGUI/FlatCAMGUI.py:228
-msgid "&DXF as Geometry Object ..."
-msgstr "&DXF as Geometry Object ..."
-
-#: flatcamGUI/FlatCAMGUI.py:231
-msgid "&DXF as Gerber Object ..."
-msgstr "&DXF as Gerber Object ..."
-
-#: flatcamGUI/FlatCAMGUI.py:235
-msgid "HPGL2 as Geometry Object ..."
-msgstr "HPGL2 as Geometry Object ..."
-
-#: flatcamGUI/FlatCAMGUI.py:241
-msgid "Export"
-msgstr "Export"
-
-#: flatcamGUI/FlatCAMGUI.py:245
-msgid "Export &SVG ..."
-msgstr "Export &SVG ..."
-
-#: flatcamGUI/FlatCAMGUI.py:249
-msgid "Export DXF ..."
-msgstr "Export DXF ..."
-
-#: flatcamGUI/FlatCAMGUI.py:255
-msgid "Export &PNG ..."
-msgstr "Export &PNG ..."
-
-#: flatcamGUI/FlatCAMGUI.py:257
-msgid ""
-"Will export an image in PNG format,\n"
-"the saved image will contain the visual \n"
-"information currently in FlatCAM Plot Area."
-msgstr ""
-"Will export an image in PNG format,\n"
-"the saved image will contain the visual \n"
-"information currently in FlatCAM Plot Area."
-
-#: flatcamGUI/FlatCAMGUI.py:266
-msgid "Export &Excellon ..."
-msgstr "Export &Excellon ..."
-
-#: flatcamGUI/FlatCAMGUI.py:268
-msgid ""
-"Will export an Excellon Object as Excellon file,\n"
-"the coordinates format, the file units and zeros\n"
-"are set in Preferences -> Excellon Export."
-msgstr ""
-"Will export an Excellon Object as Excellon file,\n"
-"the coordinates format, the file units and zeros\n"
-"are set in Preferences -> Excellon Export."
-
-#: flatcamGUI/FlatCAMGUI.py:275
-msgid "Export &Gerber ..."
-msgstr "Export &Gerber ..."
-
-#: flatcamGUI/FlatCAMGUI.py:277
-msgid ""
-"Will export an Gerber Object as Gerber file,\n"
-"the coordinates format, the file units and zeros\n"
-"are set in Preferences -> Gerber Export."
-msgstr ""
-"Will export an Gerber Object as Gerber file,\n"
-"the coordinates format, the file units and zeros\n"
-"are set in Preferences -> Gerber Export."
-
-#: flatcamGUI/FlatCAMGUI.py:287
-msgid "Backup"
-msgstr "Backup"
-
-#: flatcamGUI/FlatCAMGUI.py:292
-msgid "Import Preferences from file ..."
-msgstr "Import Preferences from file ..."
-
-#: flatcamGUI/FlatCAMGUI.py:298
-msgid "Export Preferences to file ..."
-msgstr "Export Preferences to file ..."
-
-#: flatcamGUI/FlatCAMGUI.py:306
-#: flatcamGUI/preferences/PreferencesUIManager.py:1119
-msgid "Save Preferences"
-msgstr "Save Preferences"
-
-#: flatcamGUI/FlatCAMGUI.py:312 flatcamGUI/FlatCAMGUI.py:1730
-msgid "Print (PDF)"
-msgstr "Print (PDF)"
-
-#: flatcamGUI/FlatCAMGUI.py:320
-msgid "E&xit"
-msgstr "E&xit"
-
-#: flatcamGUI/FlatCAMGUI.py:328 flatcamGUI/FlatCAMGUI.py:747
-#: flatcamGUI/FlatCAMGUI.py:2286
-msgid "Edit"
-msgstr "Edit"
-
-#: flatcamGUI/FlatCAMGUI.py:332
-msgid "Edit Object\tE"
-msgstr "Edit Object\tE"
-
-#: flatcamGUI/FlatCAMGUI.py:334
-msgid "Close Editor\tCtrl+S"
-msgstr "Close Editor\tCtrl+S"
-
-#: flatcamGUI/FlatCAMGUI.py:343
-msgid "Conversion"
-msgstr "Conversion"
-
-#: flatcamGUI/FlatCAMGUI.py:345
-msgid "&Join Geo/Gerber/Exc -> Geo"
-msgstr "&Join Geo/Gerber/Exc -> Geo"
-
-#: flatcamGUI/FlatCAMGUI.py:347
-msgid ""
-"Merge a selection of objects, which can be of type:\n"
-"- Gerber\n"
-"- Excellon\n"
-"- Geometry\n"
-"into a new combo Geometry object."
-msgstr ""
-"Merge a selection of objects, which can be of type:\n"
-"- Gerber\n"
-"- Excellon\n"
-"- Geometry\n"
-"into a new combo Geometry object."
-
-#: flatcamGUI/FlatCAMGUI.py:354
-msgid "Join Excellon(s) -> Excellon"
-msgstr "Join Excellon(s) -> Excellon"
-
-#: flatcamGUI/FlatCAMGUI.py:356
-msgid "Merge a selection of Excellon objects into a new combo Excellon object."
-msgstr ""
-"Merge a selection of Excellon objects into a new combo Excellon object."
-
-#: flatcamGUI/FlatCAMGUI.py:359
-msgid "Join Gerber(s) -> Gerber"
-msgstr "Join Gerber(s) -> Gerber"
-
-#: flatcamGUI/FlatCAMGUI.py:361
-msgid "Merge a selection of Gerber objects into a new combo Gerber object."
-msgstr "Merge a selection of Gerber objects into a new combo Gerber object."
-
-#: flatcamGUI/FlatCAMGUI.py:366
-msgid "Convert Single to MultiGeo"
-msgstr "Convert Single to MultiGeo"
-
-#: flatcamGUI/FlatCAMGUI.py:368
-msgid ""
-"Will convert a Geometry object from single_geometry type\n"
-"to a multi_geometry type."
-msgstr ""
-"Will convert a Geometry object from single_geometry type\n"
-"to a multi_geometry type."
-
-#: flatcamGUI/FlatCAMGUI.py:372
-msgid "Convert Multi to SingleGeo"
-msgstr "Convert Multi to SingleGeo"
-
-#: flatcamGUI/FlatCAMGUI.py:374
-msgid ""
-"Will convert a Geometry object from multi_geometry type\n"
-"to a single_geometry type."
-msgstr ""
-"Will convert a Geometry object from multi_geometry type\n"
-"to a single_geometry type."
-
-#: flatcamGUI/FlatCAMGUI.py:381
-msgid "Convert Any to Geo"
-msgstr "Convert Any to Geo"
-
-#: flatcamGUI/FlatCAMGUI.py:384
-msgid "Convert Any to Gerber"
-msgstr "Convert Any to Gerber"
-
-#: flatcamGUI/FlatCAMGUI.py:390
-msgid "&Copy\tCtrl+C"
-msgstr "&Copy\tCtrl+C"
-
-#: flatcamGUI/FlatCAMGUI.py:395
-msgid "&Delete\tDEL"
-msgstr "&Delete\tDEL"
-
-#: flatcamGUI/FlatCAMGUI.py:400
-msgid "Se&t Origin\tO"
-msgstr "Se&t Origin\tO"
-
-#: flatcamGUI/FlatCAMGUI.py:402
-msgid "Move to Origin\tShift+O"
-msgstr "Move to Origin\tShift+O"
-
-#: flatcamGUI/FlatCAMGUI.py:405
-msgid "Jump to Location\tJ"
-msgstr "Jump to Location\tJ"
-
-#: flatcamGUI/FlatCAMGUI.py:407
-msgid "Locate in Object\tShift+J"
-msgstr "Locate in Object\tShift+J"
-
-#: flatcamGUI/FlatCAMGUI.py:412
-msgid "Toggle Units\tQ"
-msgstr "Toggle Units\tQ"
-
-#: flatcamGUI/FlatCAMGUI.py:414
-msgid "&Select All\tCtrl+A"
-msgstr "&Select All\tCtrl+A"
-
-#: flatcamGUI/FlatCAMGUI.py:419
-msgid "&Preferences\tShift+P"
-msgstr "&Preferences\tShift+P"
-
-#: flatcamGUI/FlatCAMGUI.py:425 flatcamTools/ToolProperties.py:155
-msgid "Options"
-msgstr "Options"
-
-#: flatcamGUI/FlatCAMGUI.py:427
-msgid "&Rotate Selection\tShift+(R)"
-msgstr "&Rotate Selection\tShift+(R)"
-
-#: flatcamGUI/FlatCAMGUI.py:432
-msgid "&Skew on X axis\tShift+X"
-msgstr "&Skew on X axis\tShift+X"
-
-#: flatcamGUI/FlatCAMGUI.py:434
-msgid "S&kew on Y axis\tShift+Y"
-msgstr "S&kew on Y axis\tShift+Y"
-
-#: flatcamGUI/FlatCAMGUI.py:439
-msgid "Flip on &X axis\tX"
-msgstr "Flip on &X axis\tX"
-
-#: flatcamGUI/FlatCAMGUI.py:441
-msgid "Flip on &Y axis\tY"
-msgstr "Flip on &Y axis\tY"
-
-#: flatcamGUI/FlatCAMGUI.py:446
-msgid "View source\tAlt+S"
-msgstr "View source\tAlt+S"
-
-#: flatcamGUI/FlatCAMGUI.py:448
-msgid "Tools DataBase\tCtrl+D"
-msgstr "Tools DataBase\tCtrl+D"
-
-#: flatcamGUI/FlatCAMGUI.py:455 flatcamGUI/FlatCAMGUI.py:2183
-msgid "View"
-msgstr "View"
-
-#: flatcamGUI/FlatCAMGUI.py:457
-msgid "Enable all plots\tAlt+1"
-msgstr "Enable all plots\tAlt+1"
-
-#: flatcamGUI/FlatCAMGUI.py:459
-msgid "Disable all plots\tAlt+2"
-msgstr "Disable all plots\tAlt+2"
-
-#: flatcamGUI/FlatCAMGUI.py:461
-msgid "Disable non-selected\tAlt+3"
-msgstr "Disable non-selected\tAlt+3"
-
-#: flatcamGUI/FlatCAMGUI.py:465
-msgid "&Zoom Fit\tV"
-msgstr "&Zoom Fit\tV"
-
-#: flatcamGUI/FlatCAMGUI.py:467
-msgid "&Zoom In\t="
-msgstr "&Zoom In\t="
-
-#: flatcamGUI/FlatCAMGUI.py:469
-msgid "&Zoom Out\t-"
-msgstr "&Zoom Out\t-"
-
-#: flatcamGUI/FlatCAMGUI.py:474
-msgid "Redraw All\tF5"
-msgstr "Redraw All\tF5"
-
-#: flatcamGUI/FlatCAMGUI.py:478
-msgid "Toggle Code Editor\tShift+E"
-msgstr "Toggle Code Editor\tShift+E"
-
-#: flatcamGUI/FlatCAMGUI.py:481
-msgid "&Toggle FullScreen\tAlt+F10"
-msgstr "&Toggle FullScreen\tAlt+F10"
-
-#: flatcamGUI/FlatCAMGUI.py:483
-msgid "&Toggle Plot Area\tCtrl+F10"
-msgstr "&Toggle Plot Area\tCtrl+F10"
-
-#: flatcamGUI/FlatCAMGUI.py:485
-msgid "&Toggle Project/Sel/Tool\t`"
-msgstr "&Toggle Project/Sel/Tool\t`"
-
-#: flatcamGUI/FlatCAMGUI.py:489
-msgid "&Toggle Grid Snap\tG"
-msgstr "&Toggle Grid Snap\tG"
-
-#: flatcamGUI/FlatCAMGUI.py:491
-msgid "&Toggle Grid Lines\tAlt+G"
-msgstr "&Toggle Grid Lines\tAlt+G"
-
-#: flatcamGUI/FlatCAMGUI.py:493
-msgid "&Toggle Axis\tShift+G"
-msgstr "&Toggle Axis\tShift+G"
-
-#: flatcamGUI/FlatCAMGUI.py:495
-msgid "Toggle Workspace\tShift+W"
-msgstr "Toggle Workspace\tShift+W"
-
-#: flatcamGUI/FlatCAMGUI.py:500
-msgid "Objects"
-msgstr "Objects"
-
-#: flatcamGUI/FlatCAMGUI.py:514
-msgid "&Command Line\tS"
-msgstr "&Command Line\tS"
-
-#: flatcamGUI/FlatCAMGUI.py:519
-msgid "Help"
-msgstr "Help"
-
-#: flatcamGUI/FlatCAMGUI.py:521
-msgid "Online Help\tF1"
-msgstr "Online Help\tF1"
-
-#: flatcamGUI/FlatCAMGUI.py:531
-msgid "Report a bug"
-msgstr "Report a bug"
-
-#: flatcamGUI/FlatCAMGUI.py:534
-msgid "Excellon Specification"
-msgstr "Excellon Specification"
-
-#: flatcamGUI/FlatCAMGUI.py:536
-msgid "Gerber Specification"
-msgstr "Gerber Specification"
-
-#: flatcamGUI/FlatCAMGUI.py:541
-msgid "Shortcuts List\tF3"
-msgstr "Shortcuts List\tF3"
-
-#: flatcamGUI/FlatCAMGUI.py:543
-msgid "YouTube Channel\tF4"
-msgstr "YouTube Channel\tF4"
-
-#: flatcamGUI/FlatCAMGUI.py:554
-msgid "Add Circle\tO"
-msgstr "Add Circle\tO"
-
-#: flatcamGUI/FlatCAMGUI.py:557
-msgid "Add Arc\tA"
-msgstr "Add Arc\tA"
-
-#: flatcamGUI/FlatCAMGUI.py:560
-msgid "Add Rectangle\tR"
-msgstr "Add Rectangle\tR"
-
-#: flatcamGUI/FlatCAMGUI.py:563
-msgid "Add Polygon\tN"
-msgstr "Add Polygon\tN"
-
-#: flatcamGUI/FlatCAMGUI.py:566
-msgid "Add Path\tP"
-msgstr "Add Path\tP"
-
-#: flatcamGUI/FlatCAMGUI.py:569
-msgid "Add Text\tT"
-msgstr "Add Text\tT"
-
-#: flatcamGUI/FlatCAMGUI.py:572
-msgid "Polygon Union\tU"
-msgstr "Polygon Union\tU"
-
-#: flatcamGUI/FlatCAMGUI.py:574
-msgid "Polygon Intersection\tE"
-msgstr "Polygon Intersection\tE"
-
-#: flatcamGUI/FlatCAMGUI.py:576
-msgid "Polygon Subtraction\tS"
-msgstr "Polygon Subtraction\tS"
-
-#: flatcamGUI/FlatCAMGUI.py:580
-msgid "Cut Path\tX"
-msgstr "Cut Path\tX"
-
-#: flatcamGUI/FlatCAMGUI.py:584
-msgid "Copy Geom\tC"
-msgstr "Copy Geom\tC"
-
-#: flatcamGUI/FlatCAMGUI.py:586
-msgid "Delete Shape\tDEL"
-msgstr "Delete Shape\tDEL"
-
-#: flatcamGUI/FlatCAMGUI.py:590 flatcamGUI/FlatCAMGUI.py:677
-msgid "Move\tM"
-msgstr "Move\tM"
-
-#: flatcamGUI/FlatCAMGUI.py:592
-msgid "Buffer Tool\tB"
-msgstr "Buffer Tool\tB"
-
-#: flatcamGUI/FlatCAMGUI.py:595
-msgid "Paint Tool\tI"
-msgstr "Paint Tool\tI"
-
-#: flatcamGUI/FlatCAMGUI.py:598
-msgid "Transform Tool\tAlt+R"
-msgstr "Transform Tool\tAlt+R"
-
-#: flatcamGUI/FlatCAMGUI.py:602
-msgid "Toggle Corner Snap\tK"
-msgstr "Toggle Corner Snap\tK"
-
-#: flatcamGUI/FlatCAMGUI.py:608
-msgid ">Excellon Editor<"
-msgstr ">Excellon Editor<"
-
-#: flatcamGUI/FlatCAMGUI.py:612
-msgid "Add Drill Array\tA"
-msgstr "Add Drill Array\tA"
-
-#: flatcamGUI/FlatCAMGUI.py:614
-msgid "Add Drill\tD"
-msgstr "Add Drill\tD"
-
-#: flatcamGUI/FlatCAMGUI.py:618
-msgid "Add Slot Array\tQ"
-msgstr "Add Slot Array\tQ"
-
-#: flatcamGUI/FlatCAMGUI.py:620
-msgid "Add Slot\tW"
-msgstr "Add Slot\tW"
-
-#: flatcamGUI/FlatCAMGUI.py:624
-msgid "Resize Drill(S)\tR"
-msgstr "Resize Drill(S)\tR"
-
-#: flatcamGUI/FlatCAMGUI.py:627 flatcamGUI/FlatCAMGUI.py:671
-msgid "Copy\tC"
-msgstr "Copy\tC"
-
-#: flatcamGUI/FlatCAMGUI.py:629 flatcamGUI/FlatCAMGUI.py:673
-msgid "Delete\tDEL"
-msgstr "Delete\tDEL"
-
-#: flatcamGUI/FlatCAMGUI.py:634
-msgid "Move Drill(s)\tM"
-msgstr "Move Drill(s)\tM"
-
-#: flatcamGUI/FlatCAMGUI.py:639
-msgid ">Gerber Editor<"
-msgstr ">Gerber Editor<"
-
-#: flatcamGUI/FlatCAMGUI.py:643
-msgid "Add Pad\tP"
-msgstr "Add Pad\tP"
-
-#: flatcamGUI/FlatCAMGUI.py:645
-msgid "Add Pad Array\tA"
-msgstr "Add Pad Array\tA"
-
-#: flatcamGUI/FlatCAMGUI.py:647
-msgid "Add Track\tT"
-msgstr "Add Track\tT"
-
-#: flatcamGUI/FlatCAMGUI.py:649
-msgid "Add Region\tN"
-msgstr "Add Region\tN"
-
-#: flatcamGUI/FlatCAMGUI.py:653
-msgid "Poligonize\tAlt+N"
-msgstr "Poligonize\tAlt+N"
-
-#: flatcamGUI/FlatCAMGUI.py:655
-msgid "Add SemiDisc\tE"
-msgstr "Add SemiDisc\tE"
-
-#: flatcamGUI/FlatCAMGUI.py:657
-msgid "Add Disc\tD"
-msgstr "Add Disc\tD"
-
-#: flatcamGUI/FlatCAMGUI.py:659
-msgid "Buffer\tB"
-msgstr "Buffer\tB"
-
-#: flatcamGUI/FlatCAMGUI.py:661
-msgid "Scale\tS"
-msgstr "Scale\tS"
-
-#: flatcamGUI/FlatCAMGUI.py:663
-msgid "Mark Area\tAlt+A"
-msgstr "Mark Area\tAlt+A"
-
-#: flatcamGUI/FlatCAMGUI.py:665
-msgid "Eraser\tCtrl+E"
-msgstr "Eraser\tCtrl+E"
-
-#: flatcamGUI/FlatCAMGUI.py:667
-msgid "Transform\tAlt+R"
-msgstr "Transform\tAlt+R"
-
-#: flatcamGUI/FlatCAMGUI.py:694
-msgid "Enable Plot"
-msgstr "Enable Plot"
-
-#: flatcamGUI/FlatCAMGUI.py:696
-msgid "Disable Plot"
-msgstr "Disable Plot"
-
-#: flatcamGUI/FlatCAMGUI.py:700
-msgid "Set Color"
-msgstr "Set Color"
-
-#: flatcamGUI/FlatCAMGUI.py:742
-msgid "Generate CNC"
-msgstr "Generate CNC"
-
-#: flatcamGUI/FlatCAMGUI.py:744
-msgid "View Source"
-msgstr "View Source"
-
-#: flatcamGUI/FlatCAMGUI.py:749 flatcamGUI/FlatCAMGUI.py:863
-#: flatcamGUI/FlatCAMGUI.py:1072 flatcamGUI/FlatCAMGUI.py:2138
-#: flatcamGUI/FlatCAMGUI.py:2282 flatcamGUI/FlatCAMGUI.py:2572
-#: flatcamGUI/FlatCAMGUI.py:2775 flatcamGUI/ObjectUI.py:1617
-#: flatcamObjects/FlatCAMGeometry.py:502 flatcamTools/ToolPanelize.py:540
-#: flatcamTools/ToolPanelize.py:567 flatcamTools/ToolPanelize.py:660
-#: flatcamTools/ToolPanelize.py:689 flatcamTools/ToolPanelize.py:751
-msgid "Copy"
-msgstr "Copy"
-
-#: flatcamGUI/FlatCAMGUI.py:757 flatcamGUI/FlatCAMGUI.py:2295
-#: flatcamTools/ToolProperties.py:31
-msgid "Properties"
-msgstr "Properties"
-
-#: flatcamGUI/FlatCAMGUI.py:786
-msgid "File Toolbar"
-msgstr "File Toolbar"
-
-#: flatcamGUI/FlatCAMGUI.py:790
-msgid "Edit Toolbar"
-msgstr "Edit Toolbar"
-
-#: flatcamGUI/FlatCAMGUI.py:794
-msgid "View Toolbar"
-msgstr "View Toolbar"
-
-#: flatcamGUI/FlatCAMGUI.py:798
-msgid "Shell Toolbar"
-msgstr "Shell Toolbar"
-
-#: flatcamGUI/FlatCAMGUI.py:802
-msgid "Tools Toolbar"
-msgstr "Tools Toolbar"
-
-#: flatcamGUI/FlatCAMGUI.py:806
-msgid "Excellon Editor Toolbar"
-msgstr "Excellon Editor Toolbar"
-
-#: flatcamGUI/FlatCAMGUI.py:812
-msgid "Geometry Editor Toolbar"
-msgstr "Geometry Editor Toolbar"
-
-#: flatcamGUI/FlatCAMGUI.py:816
-msgid "Gerber Editor Toolbar"
-msgstr "Gerber Editor Toolbar"
-
-#: flatcamGUI/FlatCAMGUI.py:820
-msgid "Grid Toolbar"
-msgstr "Grid Toolbar"
-
-#: flatcamGUI/FlatCAMGUI.py:841 flatcamGUI/FlatCAMGUI.py:2549
-msgid "Open project"
-msgstr "Open project"
-
-#: flatcamGUI/FlatCAMGUI.py:843 flatcamGUI/FlatCAMGUI.py:2551
-msgid "Save project"
-msgstr "Save project"
-
-#: flatcamGUI/FlatCAMGUI.py:849 flatcamGUI/FlatCAMGUI.py:2557
-msgid "New Blank Geometry"
-msgstr "New Blank Geometry"
-
-#: flatcamGUI/FlatCAMGUI.py:851 flatcamGUI/FlatCAMGUI.py:2559
-msgid "New Blank Gerber"
-msgstr "New Blank Gerber"
-
-#: flatcamGUI/FlatCAMGUI.py:853 flatcamGUI/FlatCAMGUI.py:2561
-msgid "New Blank Excellon"
-msgstr "New Blank Excellon"
-
-#: flatcamGUI/FlatCAMGUI.py:858 flatcamGUI/FlatCAMGUI.py:2567
-msgid "Save Object and close the Editor"
-msgstr "Save Object and close the Editor"
-
-#: flatcamGUI/FlatCAMGUI.py:865 flatcamGUI/FlatCAMGUI.py:2574
-msgid "&Delete"
-msgstr "&Delete"
-
-#: flatcamGUI/FlatCAMGUI.py:868 flatcamGUI/FlatCAMGUI.py:1729
-#: flatcamGUI/FlatCAMGUI.py:1935 flatcamGUI/FlatCAMGUI.py:2577
-#: flatcamTools/ToolDistance.py:35 flatcamTools/ToolDistance.py:195
-msgid "Distance Tool"
-msgstr "Distance Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:870 flatcamGUI/FlatCAMGUI.py:2579
-msgid "Distance Min Tool"
-msgstr "Distance Min Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:872 flatcamGUI/FlatCAMGUI.py:1722
-#: flatcamGUI/FlatCAMGUI.py:2581
-msgid "Set Origin"
-msgstr "Set Origin"
-
-#: flatcamGUI/FlatCAMGUI.py:874
-msgid "Move to Origin"
-msgstr "Move to Origin"
-
-#: flatcamGUI/FlatCAMGUI.py:877 flatcamGUI/FlatCAMGUI.py:2583
-msgid "Jump to Location"
-msgstr "Jump to Location"
-
-#: flatcamGUI/FlatCAMGUI.py:879 flatcamGUI/FlatCAMGUI.py:1734
-#: flatcamGUI/FlatCAMGUI.py:2585
-msgid "Locate in Object"
-msgstr "Locate in Object"
-
-#: flatcamGUI/FlatCAMGUI.py:885 flatcamGUI/FlatCAMGUI.py:2591
-msgid "&Replot"
-msgstr "&Replot"
-
-#: flatcamGUI/FlatCAMGUI.py:887 flatcamGUI/FlatCAMGUI.py:2593
-msgid "&Clear plot"
-msgstr "&Clear plot"
-
-#: flatcamGUI/FlatCAMGUI.py:889 flatcamGUI/FlatCAMGUI.py:1725
-#: flatcamGUI/FlatCAMGUI.py:2595
-msgid "Zoom In"
-msgstr "Zoom In"
-
-#: flatcamGUI/FlatCAMGUI.py:891 flatcamGUI/FlatCAMGUI.py:1725
-#: flatcamGUI/FlatCAMGUI.py:2597
-msgid "Zoom Out"
-msgstr "Zoom Out"
-
-#: flatcamGUI/FlatCAMGUI.py:893 flatcamGUI/FlatCAMGUI.py:1724
-#: flatcamGUI/FlatCAMGUI.py:2185 flatcamGUI/FlatCAMGUI.py:2599
-msgid "Zoom Fit"
-msgstr "Zoom Fit"
-
-#: flatcamGUI/FlatCAMGUI.py:901 flatcamGUI/FlatCAMGUI.py:2605
-msgid "&Command Line"
-msgstr "&Command Line"
-
-#: flatcamGUI/FlatCAMGUI.py:913 flatcamGUI/FlatCAMGUI.py:2617
-msgid "2Sided Tool"
-msgstr "2Sided Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:915 flatcamGUI/FlatCAMGUI.py:1740
-#: flatcamGUI/FlatCAMGUI.py:2619
-msgid "Align Objects Tool"
-msgstr "Align Objects Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:917 flatcamGUI/FlatCAMGUI.py:1741
-#: flatcamGUI/FlatCAMGUI.py:2621 flatcamTools/ToolExtractDrills.py:393
-msgid "Extract Drills Tool"
-msgstr "Extract Drills Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:920 flatcamGUI/ObjectUI.py:596
-#: flatcamTools/ToolCutOut.py:440
-msgid "Cutout Tool"
-msgstr "Cutout Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:922 flatcamGUI/FlatCAMGUI.py:2626
-#: flatcamGUI/ObjectUI.py:574 flatcamGUI/ObjectUI.py:2157
-#: flatcamTools/ToolNCC.py:974
-msgid "NCC Tool"
-msgstr "NCC Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:928 flatcamGUI/FlatCAMGUI.py:2632
-msgid "Panel Tool"
-msgstr "Panel Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:930 flatcamGUI/FlatCAMGUI.py:2634
-#: flatcamTools/ToolFilm.py:586
-msgid "Film Tool"
-msgstr "Film Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:932 flatcamGUI/FlatCAMGUI.py:2636
-#: flatcamTools/ToolSolderPaste.py:553
-msgid "SolderPaste Tool"
-msgstr "SolderPaste Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:934 flatcamGUI/FlatCAMGUI.py:2638
-#: flatcamTools/ToolSub.py:35
-msgid "Subtract Tool"
-msgstr "Subtract Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:936 flatcamGUI/FlatCAMGUI.py:2640
-#: flatcamTools/ToolRulesCheck.py:616
-msgid "Rules Tool"
-msgstr "Rules Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:938 flatcamGUI/FlatCAMGUI.py:1743
-#: flatcamGUI/FlatCAMGUI.py:2642 flatcamTools/ToolOptimal.py:33
-#: flatcamTools/ToolOptimal.py:307
-msgid "Optimal Tool"
-msgstr "Optimal Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:943 flatcamGUI/FlatCAMGUI.py:1740
-#: flatcamGUI/FlatCAMGUI.py:2647
-msgid "Calculators Tool"
-msgstr "Calculators Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:947 flatcamGUI/FlatCAMGUI.py:1744
-#: flatcamGUI/FlatCAMGUI.py:2651 flatcamTools/ToolQRCode.py:43
-#: flatcamTools/ToolQRCode.py:382
-msgid "QRCode Tool"
-msgstr "QRCode Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:949 flatcamGUI/FlatCAMGUI.py:2653
-#: flatcamTools/ToolCopperThieving.py:39 flatcamTools/ToolCopperThieving.py:568
-msgid "Copper Thieving Tool"
-msgstr "Copper Thieving Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:952 flatcamGUI/FlatCAMGUI.py:1741
-#: flatcamGUI/FlatCAMGUI.py:2656 flatcamTools/ToolFiducials.py:33
-#: flatcamTools/ToolFiducials.py:395
-msgid "Fiducials Tool"
-msgstr "Fiducials Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:954 flatcamGUI/FlatCAMGUI.py:2658
-#: flatcamTools/ToolCalibration.py:37 flatcamTools/ToolCalibration.py:759
-msgid "Calibration Tool"
-msgstr "Calibration Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:956 flatcamGUI/FlatCAMGUI.py:1741
-#: flatcamGUI/FlatCAMGUI.py:2660
-msgid "Punch Gerber Tool"
-msgstr "Punch Gerber Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:958 flatcamGUI/FlatCAMGUI.py:2662
-#: flatcamTools/ToolInvertGerber.py:31
-msgid "Invert Gerber Tool"
-msgstr "Invert Gerber Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:964 flatcamGUI/FlatCAMGUI.py:990
-#: flatcamGUI/FlatCAMGUI.py:1042 flatcamGUI/FlatCAMGUI.py:2668
-#: flatcamGUI/FlatCAMGUI.py:2746
-msgid "Select"
-msgstr "Select"
-
-#: flatcamGUI/FlatCAMGUI.py:966 flatcamGUI/FlatCAMGUI.py:2670
-msgid "Add Drill Hole"
-msgstr "Add Drill Hole"
-
-#: flatcamGUI/FlatCAMGUI.py:968 flatcamGUI/FlatCAMGUI.py:2672
-msgid "Add Drill Hole Array"
-msgstr "Add Drill Hole Array"
-
-#: flatcamGUI/FlatCAMGUI.py:970 flatcamGUI/FlatCAMGUI.py:2020
-#: flatcamGUI/FlatCAMGUI.py:2273 flatcamGUI/FlatCAMGUI.py:2676
-msgid "Add Slot"
-msgstr "Add Slot"
-
-#: flatcamGUI/FlatCAMGUI.py:972 flatcamGUI/FlatCAMGUI.py:2019
-#: flatcamGUI/FlatCAMGUI.py:2275 flatcamGUI/FlatCAMGUI.py:2678
-msgid "Add Slot Array"
-msgstr "Add Slot Array"
-
-#: flatcamGUI/FlatCAMGUI.py:974 flatcamGUI/FlatCAMGUI.py:2278
-#: flatcamGUI/FlatCAMGUI.py:2674
-msgid "Resize Drill"
-msgstr "Resize Drill"
-
-#: flatcamGUI/FlatCAMGUI.py:978 flatcamGUI/FlatCAMGUI.py:2682
-msgid "Copy Drill"
-msgstr "Copy Drill"
-
-#: flatcamGUI/FlatCAMGUI.py:980 flatcamGUI/FlatCAMGUI.py:2684
-msgid "Delete Drill"
-msgstr "Delete Drill"
-
-#: flatcamGUI/FlatCAMGUI.py:984 flatcamGUI/FlatCAMGUI.py:2688
-msgid "Move Drill"
-msgstr "Move Drill"
-
-#: flatcamGUI/FlatCAMGUI.py:992 flatcamGUI/FlatCAMGUI.py:2696
-msgid "Add Circle"
-msgstr "Add Circle"
-
-#: flatcamGUI/FlatCAMGUI.py:994 flatcamGUI/FlatCAMGUI.py:2698
-msgid "Add Arc"
-msgstr "Add Arc"
-
-#: flatcamGUI/FlatCAMGUI.py:996 flatcamGUI/FlatCAMGUI.py:2700
-msgid "Add Rectangle"
-msgstr "Add Rectangle"
-
-#: flatcamGUI/FlatCAMGUI.py:1000 flatcamGUI/FlatCAMGUI.py:2704
-msgid "Add Path"
-msgstr "Add Path"
-
-#: flatcamGUI/FlatCAMGUI.py:1002 flatcamGUI/FlatCAMGUI.py:2706
-msgid "Add Polygon"
-msgstr "Add Polygon"
-
-#: flatcamGUI/FlatCAMGUI.py:1005 flatcamGUI/FlatCAMGUI.py:2709
-msgid "Add Text"
-msgstr "Add Text"
-
-#: flatcamGUI/FlatCAMGUI.py:1007 flatcamGUI/FlatCAMGUI.py:2711
-msgid "Add Buffer"
-msgstr "Add Buffer"
-
-#: flatcamGUI/FlatCAMGUI.py:1009 flatcamGUI/FlatCAMGUI.py:2713
-msgid "Paint Shape"
-msgstr "Paint Shape"
-
-#: flatcamGUI/FlatCAMGUI.py:1011 flatcamGUI/FlatCAMGUI.py:1068
-#: flatcamGUI/FlatCAMGUI.py:2214 flatcamGUI/FlatCAMGUI.py:2259
-#: flatcamGUI/FlatCAMGUI.py:2715 flatcamGUI/FlatCAMGUI.py:2771
-msgid "Eraser"
-msgstr "Eraser"
-
-#: flatcamGUI/FlatCAMGUI.py:1015 flatcamGUI/FlatCAMGUI.py:2719
-msgid "Polygon Union"
-msgstr "Polygon Union"
-
-#: flatcamGUI/FlatCAMGUI.py:1017 flatcamGUI/FlatCAMGUI.py:2721
-msgid "Polygon Explode"
-msgstr "Polygon Explode"
-
-#: flatcamGUI/FlatCAMGUI.py:1020 flatcamGUI/FlatCAMGUI.py:2724
-msgid "Polygon Intersection"
-msgstr "Polygon Intersection"
-
-#: flatcamGUI/FlatCAMGUI.py:1022 flatcamGUI/FlatCAMGUI.py:2726
-msgid "Polygon Subtraction"
-msgstr "Polygon Subtraction"
-
-#: flatcamGUI/FlatCAMGUI.py:1026 flatcamGUI/FlatCAMGUI.py:2730
-msgid "Cut Path"
-msgstr "Cut Path"
-
-#: flatcamGUI/FlatCAMGUI.py:1028
-msgid "Copy Shape(s)"
-msgstr "Copy Shape(s)"
-
-#: flatcamGUI/FlatCAMGUI.py:1031
-msgid "Delete Shape '-'"
-msgstr "Delete Shape '-'"
-
-#: flatcamGUI/FlatCAMGUI.py:1033 flatcamGUI/FlatCAMGUI.py:1076
-#: flatcamGUI/FlatCAMGUI.py:2226 flatcamGUI/FlatCAMGUI.py:2263
-#: flatcamGUI/FlatCAMGUI.py:2736 flatcamGUI/FlatCAMGUI.py:2779
-#: flatcamGUI/ObjectUI.py:109
-msgid "Transformations"
-msgstr "Transformations"
-
-#: flatcamGUI/FlatCAMGUI.py:1036
-msgid "Move Objects "
-msgstr "Move Objects "
-
-#: flatcamGUI/FlatCAMGUI.py:1044 flatcamGUI/FlatCAMGUI.py:2139
-#: flatcamGUI/FlatCAMGUI.py:2748
-msgid "Add Pad"
-msgstr "Add Pad"
-
-#: flatcamGUI/FlatCAMGUI.py:1048 flatcamGUI/FlatCAMGUI.py:2140
-#: flatcamGUI/FlatCAMGUI.py:2752
-msgid "Add Track"
-msgstr "Add Track"
-
-#: flatcamGUI/FlatCAMGUI.py:1050 flatcamGUI/FlatCAMGUI.py:2139
-#: flatcamGUI/FlatCAMGUI.py:2754
-msgid "Add Region"
-msgstr "Add Region"
-
-#: flatcamGUI/FlatCAMGUI.py:1052 flatcamGUI/FlatCAMGUI.py:2245
-#: flatcamGUI/FlatCAMGUI.py:2756
-msgid "Poligonize"
-msgstr "Poligonize"
-
-#: flatcamGUI/FlatCAMGUI.py:1055 flatcamGUI/FlatCAMGUI.py:2247
-#: flatcamGUI/FlatCAMGUI.py:2759
-msgid "SemiDisc"
-msgstr "SemiDisc"
-
-#: flatcamGUI/FlatCAMGUI.py:1057 flatcamGUI/FlatCAMGUI.py:2249
-#: flatcamGUI/FlatCAMGUI.py:2761
-msgid "Disc"
-msgstr "Disc"
-
-#: flatcamGUI/FlatCAMGUI.py:1065 flatcamGUI/FlatCAMGUI.py:2257
-#: flatcamGUI/FlatCAMGUI.py:2769
-msgid "Mark Area"
-msgstr "Mark Area"
-
-#: flatcamGUI/FlatCAMGUI.py:1079 flatcamGUI/FlatCAMGUI.py:2139
-#: flatcamGUI/FlatCAMGUI.py:2230 flatcamGUI/FlatCAMGUI.py:2293
-#: flatcamGUI/FlatCAMGUI.py:2782 flatcamTools/ToolMove.py:27
-msgid "Move"
-msgstr "Move"
-
-#: flatcamGUI/FlatCAMGUI.py:1087 flatcamGUI/FlatCAMGUI.py:2791
-msgid "Snap to grid"
-msgstr "Snap to grid"
-
-#: flatcamGUI/FlatCAMGUI.py:1090 flatcamGUI/FlatCAMGUI.py:2794
-msgid "Grid X snapping distance"
-msgstr "Grid X snapping distance"
-
-#: flatcamGUI/FlatCAMGUI.py:1095 flatcamGUI/FlatCAMGUI.py:2799
-msgid "Grid Y snapping distance"
-msgstr "Grid Y snapping distance"
-
-#: flatcamGUI/FlatCAMGUI.py:1101 flatcamGUI/FlatCAMGUI.py:2805
-msgid ""
-"When active, value on Grid_X\n"
-"is copied to the Grid_Y value."
-msgstr ""
-"When active, value on Grid_X\n"
-"is copied to the Grid_Y value."
-
-#: flatcamGUI/FlatCAMGUI.py:1108 flatcamGUI/FlatCAMGUI.py:2812
-msgid "Snap to corner"
-msgstr "Snap to corner"
-
-#: flatcamGUI/FlatCAMGUI.py:1112 flatcamGUI/FlatCAMGUI.py:2816
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:78
-msgid "Max. magnet distance"
-msgstr "Max. magnet distance"
-
-#: flatcamGUI/FlatCAMGUI.py:1149
-msgid "Selected"
-msgstr "Selected"
-
-#: flatcamGUI/FlatCAMGUI.py:1177 flatcamGUI/FlatCAMGUI.py:1185
-msgid "Plot Area"
-msgstr "Plot Area"
-
-#: flatcamGUI/FlatCAMGUI.py:1212
-msgid "General"
-msgstr "General"
-
-#: flatcamGUI/FlatCAMGUI.py:1227 flatcamTools/ToolCopperThieving.py:74
-#: flatcamTools/ToolDblSided.py:64 flatcamTools/ToolExtractDrills.py:61
-#: flatcamTools/ToolInvertGerber.py:72 flatcamTools/ToolOptimal.py:71
-#: flatcamTools/ToolPunchGerber.py:64
-msgid "GERBER"
-msgstr "GERBER"
-
-#: flatcamGUI/FlatCAMGUI.py:1237 flatcamTools/ToolDblSided.py:92
-msgid "EXCELLON"
-msgstr "EXCELLON"
-
-#: flatcamGUI/FlatCAMGUI.py:1247 flatcamTools/ToolDblSided.py:120
-msgid "GEOMETRY"
-msgstr "GEOMETRY"
-
-#: flatcamGUI/FlatCAMGUI.py:1257
-msgid "CNC-JOB"
-msgstr "CNC-JOB"
-
-#: flatcamGUI/FlatCAMGUI.py:1266 flatcamGUI/ObjectUI.py:563
-#: flatcamGUI/ObjectUI.py:2132
-msgid "TOOLS"
-msgstr "TOOLS"
-
-#: flatcamGUI/FlatCAMGUI.py:1275
-msgid "TOOLS 2"
-msgstr "TOOLS 2"
-
-#: flatcamGUI/FlatCAMGUI.py:1285
-msgid "UTILITIES"
-msgstr "UTILITIES"
-
-#: flatcamGUI/FlatCAMGUI.py:1302
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:192
-msgid "Restore Defaults"
-msgstr "Restore Defaults"
-
-#: flatcamGUI/FlatCAMGUI.py:1305
-msgid ""
-"Restore the entire set of default values\n"
-"to the initial values loaded after first launch."
-msgstr ""
-"Restore the entire set of default values\n"
-"to the initial values loaded after first launch."
-
-#: flatcamGUI/FlatCAMGUI.py:1310
-msgid "Open Pref Folder"
-msgstr "Open Pref Folder"
-
-#: flatcamGUI/FlatCAMGUI.py:1313
-msgid "Open the folder where FlatCAM save the preferences files."
-msgstr "Open the folder where FlatCAM save the preferences files."
-
-#: flatcamGUI/FlatCAMGUI.py:1317 flatcamGUI/FlatCAMGUI.py:2517
-msgid "Clear GUI Settings"
-msgstr "Clear GUI Settings"
-
-#: flatcamGUI/FlatCAMGUI.py:1321
-msgid ""
-"Clear the GUI settings for FlatCAM,\n"
-"such as: layout, gui state, style, hdpi support etc."
-msgstr ""
-"Clear the GUI settings for FlatCAM,\n"
-"such as: layout, gui state, style, hdpi support etc."
-
-#: flatcamGUI/FlatCAMGUI.py:1332
-msgid "Apply"
-msgstr "Apply"
-
-#: flatcamGUI/FlatCAMGUI.py:1335
-msgid "Apply the current preferences without saving to a file."
-msgstr "Apply the current preferences without saving to a file."
-
-#: flatcamGUI/FlatCAMGUI.py:1342
-msgid ""
-"Save the current settings in the 'current_defaults' file\n"
-"which is the file storing the working default preferences."
-msgstr ""
-"Save the current settings in the 'current_defaults' file\n"
-"which is the file storing the working default preferences."
-
-#: flatcamGUI/FlatCAMGUI.py:1350
-msgid "Will not save the changes and will close the preferences window."
-msgstr "Will not save the changes and will close the preferences window."
-
-#: flatcamGUI/FlatCAMGUI.py:1719
-msgid "SHOW SHORTCUT LIST"
-msgstr "SHOW SHORTCUT LIST"
-
-#: flatcamGUI/FlatCAMGUI.py:1719
-msgid "Switch to Project Tab"
-msgstr "Switch to Project Tab"
-
-#: flatcamGUI/FlatCAMGUI.py:1719
-msgid "Switch to Selected Tab"
-msgstr "Switch to Selected Tab"
-
-#: flatcamGUI/FlatCAMGUI.py:1720
-msgid "Switch to Tool Tab"
-msgstr "Switch to Tool Tab"
-
-#: flatcamGUI/FlatCAMGUI.py:1721
-msgid "New Gerber"
-msgstr "New Gerber"
-
-#: flatcamGUI/FlatCAMGUI.py:1721
-msgid "Edit Object (if selected)"
-msgstr "Edit Object (if selected)"
-
-#: flatcamGUI/FlatCAMGUI.py:1721
-msgid "Jump to Coordinates"
-msgstr "Jump to Coordinates"
-
-#: flatcamGUI/FlatCAMGUI.py:1722
-msgid "New Excellon"
-msgstr "New Excellon"
-
-#: flatcamGUI/FlatCAMGUI.py:1722
-msgid "Move Obj"
-msgstr "Move Obj"
-
-#: flatcamGUI/FlatCAMGUI.py:1722
-msgid "New Geometry"
-msgstr "New Geometry"
-
-#: flatcamGUI/FlatCAMGUI.py:1722
-msgid "Change Units"
-msgstr "Change Units"
-
-#: flatcamGUI/FlatCAMGUI.py:1723
-msgid "Open Properties Tool"
-msgstr "Open Properties Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1723
-msgid "Rotate by 90 degree CW"
-msgstr "Rotate by 90 degree CW"
-
-#: flatcamGUI/FlatCAMGUI.py:1723
-msgid "Shell Toggle"
-msgstr "Shell Toggle"
-
-#: flatcamGUI/FlatCAMGUI.py:1724
-msgid ""
-"Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)"
-msgstr ""
-"Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)"
-
-#: flatcamGUI/FlatCAMGUI.py:1725
-msgid "Flip on X_axis"
-msgstr "Flip on X_axis"
-
-#: flatcamGUI/FlatCAMGUI.py:1725
-msgid "Flip on Y_axis"
-msgstr "Flip on Y_axis"
-
-#: flatcamGUI/FlatCAMGUI.py:1728
-msgid "Copy Obj"
-msgstr "Copy Obj"
-
-#: flatcamGUI/FlatCAMGUI.py:1728
-msgid "Open Tools Database"
-msgstr "Open Tools Database"
-
-#: flatcamGUI/FlatCAMGUI.py:1729
-msgid "Open Excellon File"
-msgstr "Open Excellon File"
-
-#: flatcamGUI/FlatCAMGUI.py:1729
-msgid "Open Gerber File"
-msgstr "Open Gerber File"
-
-#: flatcamGUI/FlatCAMGUI.py:1729
-msgid "New Project"
-msgstr "New Project"
-
-#: flatcamGUI/FlatCAMGUI.py:1730 flatcamTools/ToolPDF.py:42
-msgid "PDF Import Tool"
-msgstr "PDF Import Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1730
-msgid "Save Project"
-msgstr "Save Project"
-
-#: flatcamGUI/FlatCAMGUI.py:1730
-msgid "Toggle Plot Area"
-msgstr "Toggle Plot Area"
-
-#: flatcamGUI/FlatCAMGUI.py:1733
-msgid "Copy Obj_Name"
-msgstr "Copy Obj_Name"
-
-#: flatcamGUI/FlatCAMGUI.py:1734
-msgid "Toggle Code Editor"
-msgstr "Toggle Code Editor"
-
-#: flatcamGUI/FlatCAMGUI.py:1734
-msgid "Toggle the axis"
-msgstr "Toggle the axis"
-
-#: flatcamGUI/FlatCAMGUI.py:1734 flatcamGUI/FlatCAMGUI.py:1933
-#: flatcamGUI/FlatCAMGUI.py:2020 flatcamGUI/FlatCAMGUI.py:2142
-msgid "Distance Minimum Tool"
-msgstr "Distance Minimum Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1735
-msgid "Open Preferences Window"
-msgstr "Open Preferences Window"
-
-#: flatcamGUI/FlatCAMGUI.py:1736
-msgid "Rotate by 90 degree CCW"
-msgstr "Rotate by 90 degree CCW"
-
-#: flatcamGUI/FlatCAMGUI.py:1736
-msgid "Run a Script"
-msgstr "Run a Script"
-
-#: flatcamGUI/FlatCAMGUI.py:1736
-msgid "Toggle the workspace"
-msgstr "Toggle the workspace"
-
-#: flatcamGUI/FlatCAMGUI.py:1736
-msgid "Skew on X axis"
-msgstr "Skew on X axis"
-
-#: flatcamGUI/FlatCAMGUI.py:1737
-msgid "Skew on Y axis"
-msgstr "Skew on Y axis"
-
-#: flatcamGUI/FlatCAMGUI.py:1740
-msgid "2-Sided PCB Tool"
-msgstr "2-Sided PCB Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1740
-msgid "Transformations Tool"
-msgstr "Transformations Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1742
-msgid "Solder Paste Dispensing Tool"
-msgstr "Solder Paste Dispensing Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1743
-msgid "Film PCB Tool"
-msgstr "Film PCB Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1743
-msgid "Non-Copper Clearing Tool"
-msgstr "Non-Copper Clearing Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1744
-msgid "Paint Area Tool"
-msgstr "Paint Area Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1744
-msgid "Rules Check Tool"
-msgstr "Rules Check Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1745
-msgid "View File Source"
-msgstr "View File Source"
-
-#: flatcamGUI/FlatCAMGUI.py:1746
-msgid "Cutout PCB Tool"
-msgstr "Cutout PCB Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1746
-msgid "Enable all Plots"
-msgstr "Enable all Plots"
-
-#: flatcamGUI/FlatCAMGUI.py:1746
-msgid "Disable all Plots"
-msgstr "Disable all Plots"
-
-#: flatcamGUI/FlatCAMGUI.py:1746
-msgid "Disable Non-selected Plots"
-msgstr "Disable Non-selected Plots"
-
-#: flatcamGUI/FlatCAMGUI.py:1747
-msgid "Toggle Full Screen"
-msgstr "Toggle Full Screen"
-
-#: flatcamGUI/FlatCAMGUI.py:1750
-msgid "Abort current task (gracefully)"
-msgstr "Abort current task (gracefully)"
-
-#: flatcamGUI/FlatCAMGUI.py:1753
-msgid "Save Project As"
-msgstr "Save Project As"
-
-#: flatcamGUI/FlatCAMGUI.py:1754
-msgid ""
-"Paste Special. Will convert a Windows path style to the one required in Tcl "
-"Shell"
-msgstr ""
-"Paste Special. Will convert a Windows path style to the one required in Tcl "
-"Shell"
-
-#: flatcamGUI/FlatCAMGUI.py:1757
-msgid "Open Online Manual"
-msgstr "Open Online Manual"
-
-#: flatcamGUI/FlatCAMGUI.py:1758
-msgid "Open Online Tutorials"
-msgstr "Open Online Tutorials"
-
-#: flatcamGUI/FlatCAMGUI.py:1758
-msgid "Refresh Plots"
-msgstr "Refresh Plots"
-
-#: flatcamGUI/FlatCAMGUI.py:1758 flatcamTools/ToolSolderPaste.py:509
-msgid "Delete Object"
-msgstr "Delete Object"
-
-#: flatcamGUI/FlatCAMGUI.py:1758
-msgid "Alternate: Delete Tool"
-msgstr "Alternate: Delete Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1759
-msgid "(left to Key_1)Toggle Notebook Area (Left Side)"
-msgstr "(left to Key_1)Toggle Notebook Area (Left Side)"
-
-#: flatcamGUI/FlatCAMGUI.py:1759
-msgid "En(Dis)able Obj Plot"
-msgstr "En(Dis)able Obj Plot"
-
-#: flatcamGUI/FlatCAMGUI.py:1760
-msgid "Deselects all objects"
-msgstr "Deselects all objects"
-
-#: flatcamGUI/FlatCAMGUI.py:1774
-msgid "Editor Shortcut list"
-msgstr "Editor Shortcut list"
-
-#: flatcamGUI/FlatCAMGUI.py:1928
-msgid "GEOMETRY EDITOR"
-msgstr "GEOMETRY EDITOR"
-
-#: flatcamGUI/FlatCAMGUI.py:1928
-msgid "Draw an Arc"
-msgstr "Draw an Arc"
-
-#: flatcamGUI/FlatCAMGUI.py:1928
-msgid "Copy Geo Item"
-msgstr "Copy Geo Item"
-
-#: flatcamGUI/FlatCAMGUI.py:1929
-msgid "Within Add Arc will toogle the ARC direction: CW or CCW"
-msgstr "Within Add Arc will toogle the ARC direction: CW or CCW"
-
-#: flatcamGUI/FlatCAMGUI.py:1929
-msgid "Polygon Intersection Tool"
-msgstr "Polygon Intersection Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1930
-msgid "Geo Paint Tool"
-msgstr "Geo Paint Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1930 flatcamGUI/FlatCAMGUI.py:2019
-#: flatcamGUI/FlatCAMGUI.py:2139
-msgid "Jump to Location (x, y)"
-msgstr "Jump to Location (x, y)"
-
-#: flatcamGUI/FlatCAMGUI.py:1930
-msgid "Toggle Corner Snap"
-msgstr "Toggle Corner Snap"
-
-#: flatcamGUI/FlatCAMGUI.py:1930
-msgid "Move Geo Item"
-msgstr "Move Geo Item"
-
-#: flatcamGUI/FlatCAMGUI.py:1931
-msgid "Within Add Arc will cycle through the ARC modes"
-msgstr "Within Add Arc will cycle through the ARC modes"
-
-#: flatcamGUI/FlatCAMGUI.py:1931
-msgid "Draw a Polygon"
-msgstr "Draw a Polygon"
-
-#: flatcamGUI/FlatCAMGUI.py:1931
-msgid "Draw a Circle"
-msgstr "Draw a Circle"
-
-#: flatcamGUI/FlatCAMGUI.py:1932
-msgid "Draw a Path"
-msgstr "Draw a Path"
-
-#: flatcamGUI/FlatCAMGUI.py:1932
-msgid "Draw Rectangle"
-msgstr "Draw Rectangle"
-
-#: flatcamGUI/FlatCAMGUI.py:1932
-msgid "Polygon Subtraction Tool"
-msgstr "Polygon Subtraction Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1932
-msgid "Add Text Tool"
-msgstr "Add Text Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1933
-msgid "Polygon Union Tool"
-msgstr "Polygon Union Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1933
-msgid "Flip shape on X axis"
-msgstr "Flip shape on X axis"
-
-#: flatcamGUI/FlatCAMGUI.py:1933
-msgid "Flip shape on Y axis"
-msgstr "Flip shape on Y axis"
-
-#: flatcamGUI/FlatCAMGUI.py:1934
-msgid "Skew shape on X axis"
-msgstr "Skew shape on X axis"
-
-#: flatcamGUI/FlatCAMGUI.py:1934
-msgid "Skew shape on Y axis"
-msgstr "Skew shape on Y axis"
-
-#: flatcamGUI/FlatCAMGUI.py:1934
-msgid "Editor Transformation Tool"
-msgstr "Editor Transformation Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1935
-msgid "Offset shape on X axis"
-msgstr "Offset shape on X axis"
-
-#: flatcamGUI/FlatCAMGUI.py:1935
-msgid "Offset shape on Y axis"
-msgstr "Offset shape on Y axis"
-
-#: flatcamGUI/FlatCAMGUI.py:1936 flatcamGUI/FlatCAMGUI.py:2022
-#: flatcamGUI/FlatCAMGUI.py:2144
-msgid "Save Object and Exit Editor"
-msgstr "Save Object and Exit Editor"
-
-#: flatcamGUI/FlatCAMGUI.py:1936
-msgid "Polygon Cut Tool"
-msgstr "Polygon Cut Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:1937
-msgid "Rotate Geometry"
-msgstr "Rotate Geometry"
-
-#: flatcamGUI/FlatCAMGUI.py:1937
-msgid "Finish drawing for certain tools"
-msgstr "Finish drawing for certain tools"
-
-#: flatcamGUI/FlatCAMGUI.py:1937 flatcamGUI/FlatCAMGUI.py:2022
-#: flatcamGUI/FlatCAMGUI.py:2142
-msgid "Abort and return to Select"
-msgstr "Abort and return to Select"
-
-#: flatcamGUI/FlatCAMGUI.py:1938 flatcamGUI/FlatCAMGUI.py:2734
-msgid "Delete Shape"
-msgstr "Delete Shape"
-
-#: flatcamGUI/FlatCAMGUI.py:2018
-msgid "EXCELLON EDITOR"
-msgstr "EXCELLON EDITOR"
-
-#: flatcamGUI/FlatCAMGUI.py:2018
-msgid "Copy Drill(s)"
-msgstr "Copy Drill(s)"
-
-#: flatcamGUI/FlatCAMGUI.py:2018 flatcamGUI/FlatCAMGUI.py:2268
-msgid "Add Drill"
-msgstr "Add Drill"
-
-#: flatcamGUI/FlatCAMGUI.py:2019
-msgid "Move Drill(s)"
-msgstr "Move Drill(s)"
-
-#: flatcamGUI/FlatCAMGUI.py:2020
-msgid "Add a new Tool"
-msgstr "Add a new Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:2021
-msgid "Delete Drill(s)"
-msgstr "Delete Drill(s)"
-
-#: flatcamGUI/FlatCAMGUI.py:2021
-msgid "Alternate: Delete Tool(s)"
-msgstr "Alternate: Delete Tool(s)"
-
-#: flatcamGUI/FlatCAMGUI.py:2138
-msgid "GERBER EDITOR"
-msgstr "GERBER EDITOR"
-
-#: flatcamGUI/FlatCAMGUI.py:2138
-msgid "Add Disc"
-msgstr "Add Disc"
-
-#: flatcamGUI/FlatCAMGUI.py:2138
-msgid "Add SemiDisc"
-msgstr "Add SemiDisc"
-
-#: flatcamGUI/FlatCAMGUI.py:2140
-msgid "Within Track & Region Tools will cycle in REVERSE the bend modes"
-msgstr "Within Track & Region Tools will cycle in REVERSE the bend modes"
-
-#: flatcamGUI/FlatCAMGUI.py:2141
-msgid "Within Track & Region Tools will cycle FORWARD the bend modes"
-msgstr "Within Track & Region Tools will cycle FORWARD the bend modes"
-
-#: flatcamGUI/FlatCAMGUI.py:2142
-msgid "Alternate: Delete Apertures"
-msgstr "Alternate: Delete Apertures"
-
-#: flatcamGUI/FlatCAMGUI.py:2143
-msgid "Eraser Tool"
-msgstr "Eraser Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:2144
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:220
-msgid "Mark Area Tool"
-msgstr "Mark Area Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:2144
-msgid "Poligonize Tool"
-msgstr "Poligonize Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:2144
-msgid "Transformation Tool"
-msgstr "Transformation Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:2161
-msgid "Toggle Visibility"
-msgstr "Toggle Visibility"
-
-#: flatcamGUI/FlatCAMGUI.py:2167
-msgid "New"
-msgstr "New"
-
-#: flatcamGUI/FlatCAMGUI.py:2169 flatcamGUI/ObjectUI.py:450
-#: flatcamObjects/FlatCAMGerber.py:239 flatcamObjects/FlatCAMGerber.py:327
-#: flatcamTools/ToolCalibration.py:631 flatcamTools/ToolCalibration.py:648
-#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144
-#: flatcamTools/ToolCopperThieving.py:158
-#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolCutOut.py:92
-#: flatcamTools/ToolDblSided.py:226 flatcamTools/ToolFilm.py:69
-#: flatcamTools/ToolFilm.py:102 flatcamTools/ToolFilm.py:549
-#: flatcamTools/ToolFilm.py:557 flatcamTools/ToolImage.py:49
-#: flatcamTools/ToolImage.py:271 flatcamTools/ToolNCC.py:95
-#: flatcamTools/ToolNCC.py:558 flatcamTools/ToolNCC.py:1300
-#: flatcamTools/ToolPaint.py:502 flatcamTools/ToolPaint.py:706
-#: flatcamTools/ToolPanelize.py:118 flatcamTools/ToolPanelize.py:374
-#: flatcamTools/ToolPanelize.py:391
-msgid "Geometry"
-msgstr "Geometry"
-
-#: flatcamGUI/FlatCAMGUI.py:2173
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:99
-#: flatcamTools/ToolAlignObjects.py:74 flatcamTools/ToolAlignObjects.py:110
-#: flatcamTools/ToolCalibration.py:197 flatcamTools/ToolCalibration.py:631
-#: flatcamTools/ToolCalibration.py:648 flatcamTools/ToolCalibration.py:807
-#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144
-#: flatcamTools/ToolCopperThieving.py:158
-#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolDblSided.py:225
-#: flatcamTools/ToolFilm.py:359 flatcamTools/ToolNCC.py:558
-#: flatcamTools/ToolNCC.py:1300 flatcamTools/ToolPaint.py:502
-#: flatcamTools/ToolPaint.py:706 flatcamTools/ToolPanelize.py:374
-#: flatcamTools/ToolPunchGerber.py:149 flatcamTools/ToolPunchGerber.py:164
-msgid "Excellon"
-msgstr "Excellon"
-
-#: flatcamGUI/FlatCAMGUI.py:2180
-msgid "Grids"
-msgstr "Grids"
-
-#: flatcamGUI/FlatCAMGUI.py:2187
-msgid "Clear Plot"
-msgstr "Clear Plot"
-
-#: flatcamGUI/FlatCAMGUI.py:2189
-msgid "Replot"
-msgstr "Replot"
-
-#: flatcamGUI/FlatCAMGUI.py:2193
-msgid "Geo Editor"
-msgstr "Geo Editor"
-
-#: flatcamGUI/FlatCAMGUI.py:2195
-msgid "Path"
-msgstr "Path"
-
-#: flatcamGUI/FlatCAMGUI.py:2197
-msgid "Rectangle"
-msgstr "Rectangle"
-
-#: flatcamGUI/FlatCAMGUI.py:2200
-msgid "Circle"
-msgstr "Circle"
-
-#: flatcamGUI/FlatCAMGUI.py:2204
-msgid "Arc"
-msgstr "Arc"
-
-#: flatcamGUI/FlatCAMGUI.py:2218
-msgid "Union"
-msgstr "Union"
-
-#: flatcamGUI/FlatCAMGUI.py:2220
-msgid "Intersection"
-msgstr "Intersection"
-
-#: flatcamGUI/FlatCAMGUI.py:2222
-msgid "Subtraction"
-msgstr "Subtraction"
-
-#: flatcamGUI/FlatCAMGUI.py:2224 flatcamGUI/ObjectUI.py:2221
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:56
-msgid "Cut"
-msgstr "Cut"
-
-#: flatcamGUI/FlatCAMGUI.py:2235
-msgid "Pad"
-msgstr "Pad"
-
-#: flatcamGUI/FlatCAMGUI.py:2237
-msgid "Pad Array"
-msgstr "Pad Array"
-
-#: flatcamGUI/FlatCAMGUI.py:2241
-msgid "Track"
-msgstr "Track"
-
-#: flatcamGUI/FlatCAMGUI.py:2243
-msgid "Region"
-msgstr "Region"
-
-#: flatcamGUI/FlatCAMGUI.py:2266
-msgid "Exc Editor"
-msgstr "Exc Editor"
-
-#: flatcamGUI/FlatCAMGUI.py:2311
-msgid ""
-"Relative measurement.\n"
-"Reference is last click position"
-msgstr ""
-"Relative measurement.\n"
-"Reference is last click position"
-
-#: flatcamGUI/FlatCAMGUI.py:2317
-msgid ""
-"Absolute measurement.\n"
-"Reference is (X=0, Y= 0) position"
-msgstr ""
-"Absolute measurement.\n"
-"Reference is (X=0, Y= 0) position"
-
-#: flatcamGUI/FlatCAMGUI.py:2419
-msgid "Lock Toolbars"
-msgstr "Lock Toolbars"
-
-#: flatcamGUI/FlatCAMGUI.py:2505
-msgid "FlatCAM Preferences Folder opened."
-msgstr "FlatCAM Preferences Folder opened."
-
-#: flatcamGUI/FlatCAMGUI.py:2516
-msgid "Are you sure you want to delete the GUI Settings? \n"
-msgstr "Are you sure you want to delete the GUI Settings? \n"
-
-#: flatcamGUI/FlatCAMGUI.py:2624
-msgid "&Cutout Tool"
-msgstr "&Cutout Tool"
-
-#: flatcamGUI/FlatCAMGUI.py:2694
-msgid "Select 'Esc'"
-msgstr "Select 'Esc'"
-
-#: flatcamGUI/FlatCAMGUI.py:2732
-msgid "Copy Objects"
-msgstr "Copy Objects"
-
-#: flatcamGUI/FlatCAMGUI.py:2740
-msgid "Move Objects"
-msgstr "Move Objects"
-
-#: flatcamGUI/FlatCAMGUI.py:3363
-msgid ""
-"Please first select a geometry item to be cutted\n"
-"then select the geometry item that will be cutted\n"
-"out of the first item. In the end press ~X~ key or\n"
-"the toolbar button."
-msgstr ""
-"Please first select a geometry item to be cutted\n"
-"then select the geometry item that will be cutted\n"
-"out of the first item. In the end press ~X~ key or\n"
-"the toolbar button."
-
-#: flatcamGUI/FlatCAMGUI.py:3370 flatcamGUI/FlatCAMGUI.py:3532
-#: flatcamGUI/FlatCAMGUI.py:3577 flatcamGUI/FlatCAMGUI.py:3597
-msgid "Warning"
-msgstr "Warning"
-
-#: flatcamGUI/FlatCAMGUI.py:3527
-msgid ""
-"Please select geometry items \n"
-"on which to perform Intersection Tool."
-msgstr ""
-"Please select geometry items \n"
-"on which to perform Intersection Tool."
-
-#: flatcamGUI/FlatCAMGUI.py:3572
-msgid ""
-"Please select geometry items \n"
-"on which to perform Substraction Tool."
-msgstr ""
-"Please select geometry items \n"
-"on which to perform Substraction Tool."
-
-#: flatcamGUI/FlatCAMGUI.py:3592
-msgid ""
-"Please select geometry items \n"
-"on which to perform union."
-msgstr ""
-"Please select geometry items \n"
-"on which to perform union."
-
-#: flatcamGUI/FlatCAMGUI.py:3675 flatcamGUI/FlatCAMGUI.py:3890
-msgid "Cancelled. Nothing selected to delete."
-msgstr "Cancelled. Nothing selected to delete."
-
-#: flatcamGUI/FlatCAMGUI.py:3759 flatcamGUI/FlatCAMGUI.py:4006
-msgid "Cancelled. Nothing selected to copy."
-msgstr "Cancelled. Nothing selected to copy."
-
-#: flatcamGUI/FlatCAMGUI.py:3805 flatcamGUI/FlatCAMGUI.py:4035
-msgid "Cancelled. Nothing selected to move."
-msgstr "Cancelled. Nothing selected to move."
-
-#: flatcamGUI/FlatCAMGUI.py:4061
-msgid "New Tool ..."
-msgstr "New Tool ..."
-
-#: flatcamGUI/FlatCAMGUI.py:4062 flatcamTools/ToolNCC.py:924
-#: flatcamTools/ToolPaint.py:850 flatcamTools/ToolSolderPaste.py:560
-msgid "Enter a Tool Diameter"
-msgstr "Enter a Tool Diameter"
-
-#: flatcamGUI/FlatCAMGUI.py:4074
-msgid "Adding Tool cancelled ..."
-msgstr "Adding Tool cancelled ..."
-
-#: flatcamGUI/FlatCAMGUI.py:4088
-msgid "Distance Tool exit..."
-msgstr "Distance Tool exit..."
-
-#: flatcamGUI/FlatCAMGUI.py:4323 flatcamGUI/FlatCAMGUI.py:4330
-msgid "Idle."
-msgstr "Idle."
-
-#: flatcamGUI/FlatCAMGUI.py:4361
-msgid "Application started ..."
-msgstr "Application started ..."
-
-#: flatcamGUI/FlatCAMGUI.py:4362
-msgid "Hello!"
-msgstr "Hello!"
-
-#: flatcamGUI/FlatCAMGUI.py:4424
-msgid "Open Project ..."
-msgstr "Open Project ..."
-
-#: flatcamGUI/FlatCAMGUI.py:4450
-msgid "Exit"
-msgstr "Exit"
-
-#: flatcamGUI/GUIElements.py:2513
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:180
-#: flatcamTools/ToolDblSided.py:173 flatcamTools/ToolDblSided.py:388
-#: flatcamTools/ToolFilm.py:219
-msgid "Reference"
-msgstr "Reference"
-
-#: flatcamGUI/GUIElements.py:2515
-msgid ""
-"The reference can be:\n"
-"- Absolute -> the reference point is point (0,0)\n"
-"- Relative -> the reference point is the mouse position before Jump"
-msgstr ""
-"The reference can be:\n"
-"- Absolute -> the reference point is point (0,0)\n"
-"- Relative -> the reference point is the mouse position before Jump"
-
-#: flatcamGUI/GUIElements.py:2520
-msgid "Abs"
-msgstr "Abs"
-
-#: flatcamGUI/GUIElements.py:2521
-msgid "Relative"
-msgstr "Relative"
-
-#: flatcamGUI/GUIElements.py:2531
-msgid "Location"
-msgstr "Location"
-
-#: flatcamGUI/GUIElements.py:2533
-msgid ""
-"The Location value is a tuple (x,y).\n"
-"If the reference is Absolute then the Jump will be at the position (x,y).\n"
-"If the reference is Relative then the Jump will be at the (x,y) distance\n"
-"from the current mouse location point."
-msgstr ""
-"The Location value is a tuple (x,y).\n"
-"If the reference is Absolute then the Jump will be at the position (x,y).\n"
-"If the reference is Relative then the Jump will be at the (x,y) distance\n"
-"from the current mouse location point."
-
-#: flatcamGUI/GUIElements.py:2573
-msgid "Save Log"
-msgstr "Save Log"
-
-#: flatcamGUI/GUIElements.py:2592 flatcamTools/ToolShell.py:278
-msgid "Type >help< to get started"
-msgstr "Type >help< to get started"
-
-#: flatcamGUI/ObjectUI.py:38
-msgid "FlatCAM Object"
-msgstr "FlatCAM Object"
-
-#: flatcamGUI/ObjectUI.py:78
-msgid ""
-"BASIC is suitable for a beginner. Many parameters\n"
-"are hidden from the user in this mode.\n"
-"ADVANCED mode will make available all parameters.\n"
-"\n"
-"To change the application LEVEL, go to:\n"
-"Edit -> Preferences -> General and check:\n"
-"'APP. LEVEL' radio button."
-msgstr ""
-"BASIC is suitable for a beginner. Many parameters\n"
-"are hidden from the user in this mode.\n"
-"ADVANCED mode will make available all parameters.\n"
-"\n"
-"To change the application LEVEL, go to:\n"
-"Edit -> Preferences -> General and check:\n"
-"'APP. LEVEL' radio button."
-
-#: flatcamGUI/ObjectUI.py:111
-msgid "Geometrical transformations of the current object."
-msgstr "Geometrical transformations of the current object."
-
-#: flatcamGUI/ObjectUI.py:120
-msgid ""
-"Factor by which to multiply\n"
-"geometric features of this object.\n"
-"Expressions are allowed. E.g: 1/25.4"
-msgstr ""
-"Factor by which to multiply\n"
-"geometric features of this object.\n"
-"Expressions are allowed. E.g: 1/25.4"
-
-#: flatcamGUI/ObjectUI.py:127
-msgid "Perform scaling operation."
-msgstr "Perform scaling operation."
-
-#: flatcamGUI/ObjectUI.py:138
-msgid ""
-"Amount by which to move the object\n"
-"in the x and y axes in (x, y) format.\n"
-"Expressions are allowed. E.g: (1/3.2, 0.5*3)"
-msgstr ""
-"Amount by which to move the object\n"
-"in the x and y axes in (x, y) format.\n"
-"Expressions are allowed. E.g: (1/3.2, 0.5*3)"
-
-#: flatcamGUI/ObjectUI.py:145
-msgid "Perform the offset operation."
-msgstr "Perform the offset operation."
-
-#: flatcamGUI/ObjectUI.py:178
-msgid "Gerber Object"
-msgstr "Gerber Object"
-
-#: flatcamGUI/ObjectUI.py:187 flatcamGUI/ObjectUI.py:730
-#: flatcamGUI/ObjectUI.py:1426 flatcamGUI/ObjectUI.py:2205
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:30
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:33
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:31
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:31
-msgid "Plot Options"
-msgstr "Plot Options"
-
-#: flatcamGUI/ObjectUI.py:193 flatcamGUI/ObjectUI.py:731
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:45
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:38
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119
-#: flatcamTools/ToolCopperThieving.py:191
-msgid "Solid"
-msgstr "Solid"
-
-#: flatcamGUI/ObjectUI.py:195
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:40
-msgid "Solid color polygons."
-msgstr "Solid color polygons."
-
-#: flatcamGUI/ObjectUI.py:201
-msgid "Multi-Color"
-msgstr "Multi-Color"
-
-#: flatcamGUI/ObjectUI.py:203
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:47
-msgid "Draw polygons in different colors."
-msgstr "Draw polygons in different colors."
-
-#: flatcamGUI/ObjectUI.py:209 flatcamGUI/ObjectUI.py:769
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:39
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:35
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:52
-msgid "Plot"
-msgstr "Plot"
-
-#: flatcamGUI/ObjectUI.py:211 flatcamGUI/ObjectUI.py:771
-#: flatcamGUI/ObjectUI.py:1486 flatcamGUI/ObjectUI.py:2315
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:41
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:37
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:54
-msgid "Plot (show) this object."
-msgstr "Plot (show) this object."
-
-#: flatcamGUI/ObjectUI.py:239
-msgid ""
-"Toggle the display of the Gerber Apertures Table.\n"
-"When unchecked, it will delete all mark shapes\n"
-"that are drawn on canvas."
-msgstr ""
-"Toggle the display of the Gerber Apertures Table.\n"
-"When unchecked, it will delete all mark shapes\n"
-"that are drawn on canvas."
-
-#: flatcamGUI/ObjectUI.py:249
-msgid "Mark All"
-msgstr "Mark All"
-
-#: flatcamGUI/ObjectUI.py:251
-msgid ""
-"When checked it will display all the apertures.\n"
-"When unchecked, it will delete all mark shapes\n"
-"that are drawn on canvas."
-msgstr ""
-"When checked it will display all the apertures.\n"
-"When unchecked, it will delete all mark shapes\n"
-"that are drawn on canvas."
-
-#: flatcamGUI/ObjectUI.py:279
-msgid "Mark the aperture instances on canvas."
-msgstr "Mark the aperture instances on canvas."
-
-#: flatcamGUI/ObjectUI.py:291
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:32
-msgid "Isolation Routing"
-msgstr "Isolation Routing"
-
-#: flatcamGUI/ObjectUI.py:293
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:34
-msgid ""
-"Create a Geometry object with\n"
-"toolpaths to cut outside polygons."
-msgstr ""
-"Create a Geometry object with\n"
-"toolpaths to cut outside polygons."
-
-#: flatcamGUI/ObjectUI.py:311
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:69
-msgid ""
-"Choose which tool to use for Gerber isolation:\n"
-"'Circular' or 'V-shape'.\n"
-"When the 'V-shape' is selected then the tool\n"
-"diameter will depend on the chosen cut depth."
-msgstr ""
-"Choose which tool to use for Gerber isolation:\n"
-"'Circular' or 'V-shape'.\n"
-"When the 'V-shape' is selected then the tool\n"
-"diameter will depend on the chosen cut depth."
-
-#: flatcamGUI/ObjectUI.py:317
-msgid "V-Shape"
-msgstr "V-Shape"
-
-#: flatcamGUI/ObjectUI.py:323 flatcamGUI/ObjectUI.py:1672
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:81
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:72
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:78
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:85
-#: flatcamTools/ToolNCC.py:233 flatcamTools/ToolNCC.py:240
-#: flatcamTools/ToolPaint.py:216
-msgid "V-Tip Dia"
-msgstr "V-Tip Dia"
-
-#: flatcamGUI/ObjectUI.py:325 flatcamGUI/ObjectUI.py:1675
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:83
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:74
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:80
-#: flatcamTools/ToolNCC.py:235 flatcamTools/ToolPaint.py:218
-msgid "The tip diameter for V-Shape Tool"
-msgstr "The tip diameter for V-Shape Tool"
-
-#: flatcamGUI/ObjectUI.py:336 flatcamGUI/ObjectUI.py:1687
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:94
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:84
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:91
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:99
-#: flatcamTools/ToolNCC.py:246 flatcamTools/ToolNCC.py:254
-#: flatcamTools/ToolPaint.py:229
-msgid "V-Tip Angle"
-msgstr "V-Tip Angle"
-
-#: flatcamGUI/ObjectUI.py:338 flatcamGUI/ObjectUI.py:1690
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:96
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:86
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:93
-#: flatcamTools/ToolNCC.py:248 flatcamTools/ToolPaint.py:231
-msgid ""
-"The tip angle for V-Shape Tool.\n"
-"In degree."
-msgstr ""
-"The tip angle for V-Shape Tool.\n"
-"In degree."
-
-#: flatcamGUI/ObjectUI.py:352 flatcamGUI/ObjectUI.py:1706
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:50
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:109
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61
-#: flatcamObjects/FlatCAMGeometry.py:1174 flatcamTools/ToolCutOut.py:141
-msgid ""
-"Cutting depth (negative)\n"
-"below the copper surface."
-msgstr ""
-"Cutting depth (negative)\n"
-"below the copper surface."
-
-#: flatcamGUI/ObjectUI.py:366
-msgid ""
-"Diameter of the cutting tool.\n"
-"If you want to have an isolation path\n"
-"inside the actual shape of the Gerber\n"
-"feature, use a negative value for\n"
-"this parameter."
-msgstr ""
-"Diameter of the cutting tool.\n"
-"If you want to have an isolation path\n"
-"inside the actual shape of the Gerber\n"
-"feature, use a negative value for\n"
-"this parameter."
-
-#: flatcamGUI/ObjectUI.py:382
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:56
-msgid "# Passes"
-msgstr "# Passes"
-
-#: flatcamGUI/ObjectUI.py:384
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:58
-msgid ""
-"Width of the isolation gap in\n"
-"number (integer) of tool widths."
-msgstr ""
-"Width of the isolation gap in\n"
-"number (integer) of tool widths."
-
-#: flatcamGUI/ObjectUI.py:395
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:68
-msgid "Pass overlap"
-msgstr "Pass overlap"
-
-#: flatcamGUI/ObjectUI.py:397
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:70
-msgid "How much (percentage) of the tool width to overlap each tool pass."
-msgstr "How much (percentage) of the tool width to overlap each tool pass."
-
-#: flatcamGUI/ObjectUI.py:411
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:58
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:97
-msgid ""
-"Milling type:\n"
-"- climb / best for precision milling and to reduce tool usage\n"
-"- conventional / useful when there is no backlash compensation"
-msgstr ""
-"Milling type:\n"
-"- climb / best for precision milling and to reduce tool usage\n"
-"- conventional / useful when there is no backlash compensation"
-
-#: flatcamGUI/ObjectUI.py:421
-msgid "Combine"
-msgstr "Combine"
-
-#: flatcamGUI/ObjectUI.py:423
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:109
-msgid "Combine all passes into one object"
-msgstr "Combine all passes into one object"
-
-#: flatcamGUI/ObjectUI.py:427
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:43
-msgid "\"Follow\""
-msgstr "\"Follow\""
-
-#: flatcamGUI/ObjectUI.py:428
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:45
-msgid ""
-"Generate a 'Follow' geometry.\n"
-"This means that it will cut through\n"
-"the middle of the trace."
-msgstr ""
-"Generate a 'Follow' geometry.\n"
-"This means that it will cut through\n"
-"the middle of the trace."
-
-#: flatcamGUI/ObjectUI.py:434
-msgid "Except"
-msgstr "Except"
-
-#: flatcamGUI/ObjectUI.py:437
-msgid ""
-"When the isolation geometry is generated,\n"
-"by checking this, the area of the object below\n"
-"will be subtracted from the isolation geometry."
-msgstr ""
-"When the isolation geometry is generated,\n"
-"by checking this, the area of the object below\n"
-"will be subtracted from the isolation geometry."
-
-#: flatcamGUI/ObjectUI.py:450
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:97
-#: flatcamObjects/FlatCAMGerber.py:239 flatcamObjects/FlatCAMGerber.py:327
-#: flatcamTools/ToolAlignObjects.py:73 flatcamTools/ToolAlignObjects.py:109
-#: flatcamTools/ToolCalibration.py:196 flatcamTools/ToolCalibration.py:631
-#: flatcamTools/ToolCalibration.py:648 flatcamTools/ToolCalibration.py:807
-#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144
-#: flatcamTools/ToolCopperThieving.py:158
-#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolCutOut.py:91
-#: flatcamTools/ToolDblSided.py:224 flatcamTools/ToolFilm.py:69
-#: flatcamTools/ToolFilm.py:102 flatcamTools/ToolFilm.py:549
-#: flatcamTools/ToolFilm.py:557 flatcamTools/ToolImage.py:49
-#: flatcamTools/ToolImage.py:252 flatcamTools/ToolImage.py:273
-#: flatcamTools/ToolNCC.py:96 flatcamTools/ToolNCC.py:558
-#: flatcamTools/ToolNCC.py:1300 flatcamTools/ToolPaint.py:502
-#: flatcamTools/ToolPaint.py:706 flatcamTools/ToolPanelize.py:118
-#: flatcamTools/ToolPanelize.py:204 flatcamTools/ToolPanelize.py:374
-#: flatcamTools/ToolPanelize.py:391
-msgid "Gerber"
-msgstr "Gerber"
-
-#: flatcamGUI/ObjectUI.py:457 flatcamTools/ToolNCC.py:86
-#: flatcamTools/ToolPaint.py:80
-msgid "Obj Type"
-msgstr "Obj Type"
-
-#: flatcamGUI/ObjectUI.py:459
-msgid ""
-"Specify the type of object to be excepted from isolation.\n"
-"It can be of type: Gerber or Geometry.\n"
-"What is selected here will dictate the kind\n"
-"of objects that will populate the 'Object' combobox."
-msgstr ""
-"Specify the type of object to be excepted from isolation.\n"
-"It can be of type: Gerber or Geometry.\n"
-"What is selected here will dictate the kind\n"
-"of objects that will populate the 'Object' combobox."
-
-#: flatcamGUI/ObjectUI.py:472
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:48
-#: flatcamTools/ToolCalibration.py:186 flatcamTools/ToolNCC.py:109
-#: flatcamTools/ToolPaint.py:103 flatcamTools/ToolPanelize.py:100
-#: flatcamTools/ToolQRCode.py:78
-msgid "Object"
-msgstr "Object"
-
-#: flatcamGUI/ObjectUI.py:473
-msgid "Object whose area will be removed from isolation geometry."
-msgstr "Object whose area will be removed from isolation geometry."
-
-#: flatcamGUI/ObjectUI.py:480
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:82
-msgid "Scope"
-msgstr "Scope"
-
-#: flatcamGUI/ObjectUI.py:482
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:84
-msgid ""
-"Isolation scope. Choose what to isolate:\n"
-"- 'All' -> Isolate all the polygons in the object\n"
-"- 'Selection' -> Isolate a selection of polygons."
-msgstr ""
-"Isolation scope. Choose what to isolate:\n"
-"- 'All' -> Isolate all the polygons in the object\n"
-"- 'Selection' -> Isolate a selection of polygons."
-
-#: flatcamGUI/ObjectUI.py:487
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:307
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:89
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:311
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:258
-#: flatcamTools/ToolNCC.py:539 flatcamTools/ToolPaint.py:456
-msgid "Selection"
-msgstr "Selection"
-
-#: flatcamGUI/ObjectUI.py:495
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:122
-msgid "Isolation Type"
-msgstr "Isolation Type"
-
-#: flatcamGUI/ObjectUI.py:497
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:124
-msgid ""
-"Choose how the isolation will be executed:\n"
-"- 'Full' -> complete isolation of polygons\n"
-"- 'Ext' -> will isolate only on the outside\n"
-"- 'Int' -> will isolate only on the inside\n"
-"'Exterior' isolation is almost always possible\n"
-"(with the right tool) but 'Interior'\n"
-"isolation can be done only when there is an opening\n"
-"inside of the polygon (e.g polygon is a 'doughnut' shape)."
-msgstr ""
-"Choose how the isolation will be executed:\n"
-"- 'Full' -> complete isolation of polygons\n"
-"- 'Ext' -> will isolate only on the outside\n"
-"- 'Int' -> will isolate only on the inside\n"
-"'Exterior' isolation is almost always possible\n"
-"(with the right tool) but 'Interior'\n"
-"isolation can be done only when there is an opening\n"
-"inside of the polygon (e.g polygon is a 'doughnut' shape)."
-
-#: flatcamGUI/ObjectUI.py:506
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:133
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:154
-msgid "Full"
-msgstr "Full"
-
-#: flatcamGUI/ObjectUI.py:507
-msgid "Ext"
-msgstr "Ext"
-
-#: flatcamGUI/ObjectUI.py:508
-msgid "Int"
-msgstr "Int"
-
-#: flatcamGUI/ObjectUI.py:513
-msgid "Generate Isolation Geometry"
-msgstr "Generate Isolation Geometry"
-
-#: flatcamGUI/ObjectUI.py:521
-msgid ""
-"Create a Geometry object with toolpaths to cut \n"
-"isolation outside, inside or on both sides of the\n"
-"object. For a Gerber object outside means outside\n"
-"of the Gerber feature and inside means inside of\n"
-"the Gerber feature, if possible at all. This means\n"
-"that only if the Gerber feature has openings inside, they\n"
-"will be isolated. If what is wanted is to cut isolation\n"
-"inside the actual Gerber feature, use a negative tool\n"
-"diameter above."
-msgstr ""
-"Create a Geometry object with toolpaths to cut \n"
-"isolation outside, inside or on both sides of the\n"
-"object. For a Gerber object outside means outside\n"
-"of the Gerber feature and inside means inside of\n"
-"the Gerber feature, if possible at all. This means\n"
-"that only if the Gerber feature has openings inside, they\n"
-"will be isolated. If what is wanted is to cut isolation\n"
-"inside the actual Gerber feature, use a negative tool\n"
-"diameter above."
-
-#: flatcamGUI/ObjectUI.py:533
-msgid "Buffer Solid Geometry"
-msgstr "Buffer Solid Geometry"
-
-#: flatcamGUI/ObjectUI.py:535
-msgid ""
-"This button is shown only when the Gerber file\n"
-"is loaded without buffering.\n"
-"Clicking this will create the buffered geometry\n"
-"required for isolation."
-msgstr ""
-"This button is shown only when the Gerber file\n"
-"is loaded without buffering.\n"
-"Clicking this will create the buffered geometry\n"
-"required for isolation."
-
-#: flatcamGUI/ObjectUI.py:567
-msgid "Clear N-copper"
-msgstr "Clear N-copper"
-
-#: flatcamGUI/ObjectUI.py:569
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:33
-msgid ""
-"Create a Geometry object with\n"
-"toolpaths to cut all non-copper regions."
-msgstr ""
-"Create a Geometry object with\n"
-"toolpaths to cut all non-copper regions."
-
-#: flatcamGUI/ObjectUI.py:576 flatcamGUI/ObjectUI.py:2159
-#: flatcamTools/ToolNCC.py:599
-msgid ""
-"Create the Geometry Object\n"
-"for non-copper routing."
-msgstr ""
-"Create the Geometry Object\n"
-"for non-copper routing."
-
-#: flatcamGUI/ObjectUI.py:589
-msgid "Board cutout"
-msgstr "Board cutout"
-
-#: flatcamGUI/ObjectUI.py:591
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:34
-msgid ""
-"Create toolpaths to cut around\n"
-"the PCB and separate it from\n"
-"the original board."
-msgstr ""
-"Create toolpaths to cut around\n"
-"the PCB and separate it from\n"
-"the original board."
-
-#: flatcamGUI/ObjectUI.py:598
-msgid ""
-"Generate the geometry for\n"
-"the board cutout."
-msgstr ""
-"Generate the geometry for\n"
-"the board cutout."
-
-#: flatcamGUI/ObjectUI.py:616
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:119
-msgid "Non-copper regions"
-msgstr "Non-copper regions"
-
-#: flatcamGUI/ObjectUI.py:618
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:121
-msgid ""
-"Create polygons covering the\n"
-"areas without copper on the PCB.\n"
-"Equivalent to the inverse of this\n"
-"object. Can be used to remove all\n"
-"copper from a specified region."
-msgstr ""
-"Create polygons covering the\n"
-"areas without copper on the PCB.\n"
-"Equivalent to the inverse of this\n"
-"object. Can be used to remove all\n"
-"copper from a specified region."
-
-#: flatcamGUI/ObjectUI.py:628 flatcamGUI/ObjectUI.py:669
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:133
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:166
-msgid "Boundary Margin"
-msgstr "Boundary Margin"
-
-#: flatcamGUI/ObjectUI.py:630
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:135
-msgid ""
-"Specify the edge of the PCB\n"
-"by drawing a box around all\n"
-"objects with this minimum\n"
-"distance."
-msgstr ""
-"Specify the edge of the PCB\n"
-"by drawing a box around all\n"
-"objects with this minimum\n"
-"distance."
-
-#: flatcamGUI/ObjectUI.py:645 flatcamGUI/ObjectUI.py:683
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:148
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:179
-msgid "Rounded Geo"
-msgstr "Rounded Geo"
-
-#: flatcamGUI/ObjectUI.py:647
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:150
-msgid "Resulting geometry will have rounded corners."
-msgstr "Resulting geometry will have rounded corners."
-
-#: flatcamGUI/ObjectUI.py:651 flatcamGUI/ObjectUI.py:692
-#: flatcamTools/ToolSolderPaste.py:134
-msgid "Generate Geo"
-msgstr "Generate Geo"
-
-#: flatcamGUI/ObjectUI.py:661
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:160
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137
-#: flatcamTools/ToolPanelize.py:101 flatcamTools/ToolQRCode.py:192
-msgid "Bounding Box"
-msgstr "Bounding Box"
-
-#: flatcamGUI/ObjectUI.py:663
-msgid ""
-"Create a geometry surrounding the Gerber object.\n"
-"Square shape."
-msgstr ""
-"Create a geometry surrounding the Gerber object.\n"
-"Square shape."
-
-#: flatcamGUI/ObjectUI.py:671
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:168
-msgid ""
-"Distance of the edges of the box\n"
-"to the nearest polygon."
-msgstr ""
-"Distance of the edges of the box\n"
-"to the nearest polygon."
-
-#: flatcamGUI/ObjectUI.py:685
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:181
-msgid ""
-"If the bounding box is \n"
-"to have rounded corners\n"
-"their radius is equal to\n"
-"the margin."
-msgstr ""
-"If the bounding box is \n"
-"to have rounded corners\n"
-"their radius is equal to\n"
-"the margin."
-
-#: flatcamGUI/ObjectUI.py:694
-msgid "Generate the Geometry object."
-msgstr "Generate the Geometry object."
-
-#: flatcamGUI/ObjectUI.py:721
-msgid "Excellon Object"
-msgstr "Excellon Object"
-
-#: flatcamGUI/ObjectUI.py:733
-msgid "Solid circles."
-msgstr "Solid circles."
-
-#: flatcamGUI/ObjectUI.py:781 flatcamGUI/ObjectUI.py:876
-#: flatcamGUI/ObjectUI.py:2336
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:71
-#: flatcamTools/ToolProperties.py:166
-msgid "Drills"
-msgstr "Drills"
-
-#: flatcamGUI/ObjectUI.py:781 flatcamGUI/ObjectUI.py:877
-#: flatcamGUI/ObjectUI.py:2336
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:158
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:72
-#: flatcamTools/ToolProperties.py:168
-msgid "Slots"
-msgstr "Slots"
-
-#: flatcamGUI/ObjectUI.py:786
-msgid ""
-"This is the Tool Number.\n"
-"When ToolChange is checked, on toolchange event this value\n"
-"will be showed as a T1, T2 ... Tn in the Machine Code.\n"
-"\n"
-"Here the tools are selected for G-code generation."
-msgstr ""
-"This is the Tool Number.\n"
-"When ToolChange is checked, on toolchange event this value\n"
-"will be showed as a T1, T2 ... Tn in the Machine Code.\n"
-"\n"
-"Here the tools are selected for G-code generation."
-
-#: flatcamGUI/ObjectUI.py:791 flatcamGUI/ObjectUI.py:1510
-#: flatcamTools/ToolPaint.py:142
-msgid ""
-"Tool Diameter. It's value (in current FlatCAM units) \n"
-"is the cut width into the material."
-msgstr ""
-"Tool Diameter. It's value (in current FlatCAM units) \n"
-"is the cut width into the material."
-
-#: flatcamGUI/ObjectUI.py:794
-msgid ""
-"The number of Drill holes. Holes that are drilled with\n"
-"a drill bit."
-msgstr ""
-"The number of Drill holes. Holes that are drilled with\n"
-"a drill bit."
-
-#: flatcamGUI/ObjectUI.py:797
-msgid ""
-"The number of Slot holes. Holes that are created by\n"
-"milling them with an endmill bit."
-msgstr ""
-"The number of Slot holes. Holes that are created by\n"
-"milling them with an endmill bit."
-
-#: flatcamGUI/ObjectUI.py:800
-msgid ""
-"Toggle display of the drills for the current tool.\n"
-"This does not select the tools for G-code generation."
-msgstr ""
-"Toggle display of the drills for the current tool.\n"
-"This does not select the tools for G-code generation."
-
-#: flatcamGUI/ObjectUI.py:818 flatcamGUI/ObjectUI.py:1662
-#: flatcamObjects/FlatCAMExcellon.py:514 flatcamObjects/FlatCAMExcellon.py:726
-#: flatcamObjects/FlatCAMExcellon.py:742 flatcamObjects/FlatCAMExcellon.py:746
-#: flatcamObjects/FlatCAMGeometry.py:323 flatcamObjects/FlatCAMGeometry.py:759
-#: flatcamObjects/FlatCAMGeometry.py:795 flatcamTools/ToolNCC.py:331
-#: flatcamTools/ToolNCC.py:797 flatcamTools/ToolNCC.py:811
-#: flatcamTools/ToolNCC.py:1196 flatcamTools/ToolPaint.py:314
-#: flatcamTools/ToolPaint.py:767 flatcamTools/ToolPaint.py:779
-#: flatcamTools/ToolPaint.py:1171
-msgid "Parameters for"
-msgstr "Parameters for"
-
-#: flatcamGUI/ObjectUI.py:821 flatcamGUI/ObjectUI.py:1665
-#: flatcamTools/ToolNCC.py:334 flatcamTools/ToolPaint.py:317
-msgid ""
-"The data used for creating GCode.\n"
-"Each tool store it's own set of such data."
-msgstr ""
-"The data used for creating GCode.\n"
-"Each tool store it's own set of such data."
-
-#: flatcamGUI/ObjectUI.py:847
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:48
-msgid ""
-"Operation type:\n"
-"- Drilling -> will drill the drills/slots associated with this tool\n"
-"- Milling -> will mill the drills/slots"
-msgstr ""
-"Operation type:\n"
-"- Drilling -> will drill the drills/slots associated with this tool\n"
-"- Milling -> will mill the drills/slots"
-
-#: flatcamGUI/ObjectUI.py:853
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:54
-msgid "Drilling"
-msgstr "Drilling"
-
-#: flatcamGUI/ObjectUI.py:854
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:55
-msgid "Milling"
-msgstr "Milling"
-
-#: flatcamGUI/ObjectUI.py:869
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:64
-msgid ""
-"Milling type:\n"
-"- Drills -> will mill the drills associated with this tool\n"
-"- Slots -> will mill the slots associated with this tool\n"
-"- Both -> will mill both drills and mills or whatever is available"
-msgstr ""
-"Milling type:\n"
-"- Drills -> will mill the drills associated with this tool\n"
-"- Slots -> will mill the slots associated with this tool\n"
-"- Both -> will mill both drills and mills or whatever is available"
-
-#: flatcamGUI/ObjectUI.py:878
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:73
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:210
-#: flatcamTools/ToolFilm.py:258
-msgid "Both"
-msgstr "Both"
-
-#: flatcamGUI/ObjectUI.py:886
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:80
-msgid "Milling Diameter"
-msgstr "Milling Diameter"
-
-#: flatcamGUI/ObjectUI.py:888
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:82
-msgid "The diameter of the tool who will do the milling"
-msgstr "The diameter of the tool who will do the milling"
-
-#: flatcamGUI/ObjectUI.py:902
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:95
-msgid ""
-"Drill depth (negative)\n"
-"below the copper surface."
-msgstr ""
-"Drill depth (negative)\n"
-"below the copper surface."
-
-#: flatcamGUI/ObjectUI.py:921 flatcamGUI/ObjectUI.py:1724
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:113
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:68
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79
-#: flatcamTools/ToolCutOut.py:159
-msgid "Multi-Depth"
-msgstr "Multi-Depth"
-
-#: flatcamGUI/ObjectUI.py:924 flatcamGUI/ObjectUI.py:1727
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:116
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:71
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82
-#: flatcamTools/ToolCutOut.py:162
-msgid ""
-"Use multiple passes to limit\n"
-"the cut depth in each pass. Will\n"
-"cut multiple times until Cut Z is\n"
-"reached."
-msgstr ""
-"Use multiple passes to limit\n"
-"the cut depth in each pass. Will\n"
-"cut multiple times until Cut Z is\n"
-"reached."
-
-#: flatcamGUI/ObjectUI.py:937 flatcamGUI/ObjectUI.py:1741
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:128
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94
-#: flatcamTools/ToolCutOut.py:176
-msgid "Depth of each pass (positive)."
-msgstr "Depth of each pass (positive)."
-
-#: flatcamGUI/ObjectUI.py:948
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:136
-msgid ""
-"Tool height when travelling\n"
-"across the XY plane."
-msgstr ""
-"Tool height when travelling\n"
-"across the XY plane."
-
-#: flatcamGUI/ObjectUI.py:969 flatcamGUI/ObjectUI.py:1771
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:187
-msgid ""
-"Cutting speed in the XY\n"
-"plane in units per minute"
-msgstr ""
-"Cutting speed in the XY\n"
-"plane in units per minute"
-
-#: flatcamGUI/ObjectUI.py:984
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:209
-msgid ""
-"Tool speed while drilling\n"
-"(in units per minute).\n"
-"So called 'Plunge' feedrate.\n"
-"This is for linear move G01."
-msgstr ""
-"Tool speed while drilling\n"
-"(in units per minute).\n"
-"So called 'Plunge' feedrate.\n"
-"This is for linear move G01."
-
-#: flatcamGUI/ObjectUI.py:999 flatcamGUI/ObjectUI.py:1798
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:80
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:64
-msgid "Feedrate Rapids"
-msgstr "Feedrate Rapids"
-
-#: flatcamGUI/ObjectUI.py:1001
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:82
-msgid ""
-"Tool speed while drilling\n"
-"(in units per minute).\n"
-"This is for the rapid move G00.\n"
-"It is useful only for Marlin,\n"
-"ignore for any other cases."
-msgstr ""
-"Tool speed while drilling\n"
-"(in units per minute).\n"
-"This is for the rapid move G00.\n"
-"It is useful only for Marlin,\n"
-"ignore for any other cases."
-
-#: flatcamGUI/ObjectUI.py:1021 flatcamGUI/ObjectUI.py:1818
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:82
-msgid "Re-cut"
-msgstr "Re-cut"
-
-#: flatcamGUI/ObjectUI.py:1023 flatcamGUI/ObjectUI.py:1036
-#: flatcamGUI/ObjectUI.py:1820 flatcamGUI/ObjectUI.py:1832
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:84
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:96
-msgid ""
-"In order to remove possible\n"
-"copper leftovers where first cut\n"
-"meet with last cut, we generate an\n"
-"extended cut over the first cut section."
-msgstr ""
-"In order to remove possible\n"
-"copper leftovers where first cut\n"
-"meet with last cut, we generate an\n"
-"extended cut over the first cut section."
-
-#: flatcamGUI/ObjectUI.py:1049 flatcamGUI/ObjectUI.py:1841
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:216
-#: flatcamObjects/FlatCAMExcellon.py:1332
-#: flatcamObjects/FlatCAMGeometry.py:1622
-msgid "Spindle speed"
-msgstr "Spindle speed"
-
-#: flatcamGUI/ObjectUI.py:1051
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:224
-msgid ""
-"Speed of the spindle\n"
-"in RPM (optional)"
-msgstr ""
-"Speed of the spindle\n"
-"in RPM (optional)"
-
-#: flatcamGUI/ObjectUI.py:1066 flatcamGUI/ObjectUI.py:1860
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:238
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:234
-msgid ""
-"Pause to allow the spindle to reach its\n"
-"speed before cutting."
-msgstr ""
-"Pause to allow the spindle to reach its\n"
-"speed before cutting."
-
-#: flatcamGUI/ObjectUI.py:1077 flatcamGUI/ObjectUI.py:1870
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:246
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:239
-msgid "Number of time units for spindle to dwell."
-msgstr "Number of time units for spindle to dwell."
-
-#: flatcamGUI/ObjectUI.py:1087
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:46
-msgid "Offset Z"
-msgstr "Offset Z"
-
-#: flatcamGUI/ObjectUI.py:1089
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:48
-msgid ""
-"Some drill bits (the larger ones) need to drill deeper\n"
-"to create the desired exit hole diameter due of the tip shape.\n"
-"The value here can compensate the Cut Z parameter."
-msgstr ""
-"Some drill bits (the larger ones) need to drill deeper\n"
-"to create the desired exit hole diameter due of the tip shape.\n"
-"The value here can compensate the Cut Z parameter."
-
-#: flatcamGUI/ObjectUI.py:1149 flatcamGUI/ObjectUI.py:1924
-#: flatcamTools/ToolNCC.py:492 flatcamTools/ToolPaint.py:423
-msgid "Apply parameters to all tools"
-msgstr "Apply parameters to all tools"
-
-#: flatcamGUI/ObjectUI.py:1151 flatcamGUI/ObjectUI.py:1926
-#: flatcamTools/ToolNCC.py:494 flatcamTools/ToolPaint.py:425
-msgid ""
-"The parameters in the current form will be applied\n"
-"on all the tools from the Tool Table."
-msgstr ""
-"The parameters in the current form will be applied\n"
-"on all the tools from the Tool Table."
-
-#: flatcamGUI/ObjectUI.py:1162 flatcamGUI/ObjectUI.py:1937
-#: flatcamTools/ToolNCC.py:505 flatcamTools/ToolPaint.py:436
-msgid "Common Parameters"
-msgstr "Common Parameters"
-
-#: flatcamGUI/ObjectUI.py:1164 flatcamGUI/ObjectUI.py:1939
-#: flatcamTools/ToolNCC.py:507 flatcamTools/ToolPaint.py:438
-msgid "Parameters that are common for all tools."
-msgstr "Parameters that are common for all tools."
-
-#: flatcamGUI/ObjectUI.py:1169 flatcamGUI/ObjectUI.py:1944
-msgid "Tool change Z"
-msgstr "Tool change Z"
-
-#: flatcamGUI/ObjectUI.py:1171
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:154
-msgid ""
-"Include tool-change sequence\n"
-"in G-Code (Pause for tool change)."
-msgstr ""
-"Include tool-change sequence\n"
-"in G-Code (Pause for tool change)."
-
-#: flatcamGUI/ObjectUI.py:1178 flatcamGUI/ObjectUI.py:1955
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:162
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:134
-msgid ""
-"Z-axis position (height) for\n"
-"tool change."
-msgstr ""
-"Z-axis position (height) for\n"
-"tool change."
-
-#: flatcamGUI/ObjectUI.py:1195
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:71
-msgid ""
-"Height of the tool just after start.\n"
-"Delete the value if you don't need this feature."
-msgstr ""
-"Height of the tool just after start.\n"
-"Delete the value if you don't need this feature."
-
-#: flatcamGUI/ObjectUI.py:1204 flatcamGUI/ObjectUI.py:1983
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:178
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:153
-msgid "End move Z"
-msgstr "End move Z"
-
-#: flatcamGUI/ObjectUI.py:1206 flatcamGUI/ObjectUI.py:1985
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:180
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:155
-msgid ""
-"Height of the tool after\n"
-"the last move at the end of the job."
-msgstr ""
-"Height of the tool after\n"
-"the last move at the end of the job."
-
-#: flatcamGUI/ObjectUI.py:1223 flatcamGUI/ObjectUI.py:2002
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:195
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:173
-msgid "End move X,Y"
-msgstr "End move X,Y"
-
-#: flatcamGUI/ObjectUI.py:1225 flatcamGUI/ObjectUI.py:2004
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:197
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:175
-msgid ""
-"End move X,Y position. In format (x,y).\n"
-"If no value is entered then there is no move\n"
-"on X,Y plane at the end of the job."
-msgstr ""
-"End move X,Y position. In format (x,y).\n"
-"If no value is entered then there is no move\n"
-"on X,Y plane at the end of the job."
-
-#: flatcamGUI/ObjectUI.py:1235 flatcamGUI/ObjectUI.py:1878
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:96
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:105
-msgid "Probe Z depth"
-msgstr "Probe Z depth"
-
-#: flatcamGUI/ObjectUI.py:1237 flatcamGUI/ObjectUI.py:1880
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:98
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:107
-msgid ""
-"The maximum depth that the probe is allowed\n"
-"to probe. Negative value, in current units."
-msgstr ""
-"The maximum depth that the probe is allowed\n"
-"to probe. Negative value, in current units."
-
-#: flatcamGUI/ObjectUI.py:1254 flatcamGUI/ObjectUI.py:1895
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:109
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:120
-msgid "Feedrate Probe"
-msgstr "Feedrate Probe"
-
-#: flatcamGUI/ObjectUI.py:1256 flatcamGUI/ObjectUI.py:1897
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:111
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:122
-msgid "The feedrate used while the probe is probing."
-msgstr "The feedrate used while the probe is probing."
-
-#: flatcamGUI/ObjectUI.py:1272
-msgid "Preprocessor E"
-msgstr "Preprocessor E"
-
-#: flatcamGUI/ObjectUI.py:1274
-msgid ""
-"The preprocessor JSON file that dictates\n"
-"Gcode output for Excellon Objects."
-msgstr ""
-"The preprocessor JSON file that dictates\n"
-"Gcode output for Excellon Objects."
-
-#: flatcamGUI/ObjectUI.py:1284
-msgid "Preprocessor G"
-msgstr "Preprocessor G"
-
-#: flatcamGUI/ObjectUI.py:1286
-msgid ""
-"The preprocessor JSON file that dictates\n"
-"Gcode output for Geometry (Milling) Objects."
-msgstr ""
-"The preprocessor JSON file that dictates\n"
-"Gcode output for Geometry (Milling) Objects."
-
-#: flatcamGUI/ObjectUI.py:1310 flatcamGUI/ObjectUI.py:2108
-msgid ""
-"Add / Select at least one tool in the tool-table.\n"
-"Click the # header to select all, or Ctrl + LMB\n"
-"for custom selection of tools."
-msgstr ""
-"Add / Select at least one tool in the tool-table.\n"
-"Click the # header to select all, or Ctrl + LMB\n"
-"for custom selection of tools."
-
-#: flatcamGUI/ObjectUI.py:1318 flatcamGUI/ObjectUI.py:2115
-msgid "Generate CNCJob object"
-msgstr "Generate CNCJob object"
-
-#: flatcamGUI/ObjectUI.py:1320
-msgid ""
-"Generate the CNC Job.\n"
-"If milling then an additional Geometry object will be created"
-msgstr ""
-"Generate the CNC Job.\n"
-"If milling then an additional Geometry object will be created"
-
-#: flatcamGUI/ObjectUI.py:1337
-msgid "Milling Geometry"
-msgstr "Milling Geometry"
-
-#: flatcamGUI/ObjectUI.py:1339
-msgid ""
-"Create Geometry for milling holes.\n"
-"Select from the Tools Table above the hole dias to be\n"
-"milled. Use the # column to make the selection."
-msgstr ""
-"Create Geometry for milling holes.\n"
-"Select from the Tools Table above the hole dias to be\n"
-"milled. Use the # column to make the selection."
-
-#: flatcamGUI/ObjectUI.py:1347
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:296
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:45
-msgid "Diameter of the cutting tool."
-msgstr "Diameter of the cutting tool."
-
-#: flatcamGUI/ObjectUI.py:1357
-msgid "Mill Drills"
-msgstr "Mill Drills"
-
-#: flatcamGUI/ObjectUI.py:1359
-msgid ""
-"Create the Geometry Object\n"
-"for milling DRILLS toolpaths."
-msgstr ""
-"Create the Geometry Object\n"
-"for milling DRILLS toolpaths."
-
-#: flatcamGUI/ObjectUI.py:1377
-msgid "Mill Slots"
-msgstr "Mill Slots"
-
-#: flatcamGUI/ObjectUI.py:1379
-msgid ""
-"Create the Geometry Object\n"
-"for milling SLOTS toolpaths."
-msgstr ""
-"Create the Geometry Object\n"
-"for milling SLOTS toolpaths."
-
-#: flatcamGUI/ObjectUI.py:1421 flatcamTools/ToolCutOut.py:319
-msgid "Geometry Object"
-msgstr "Geometry Object"
-
-#: flatcamGUI/ObjectUI.py:1467
-msgid ""
-"Tools in this Geometry object used for cutting.\n"
-"The 'Offset' entry will set an offset for the cut.\n"
-"'Offset' can be inside, outside, on path (none) and custom.\n"
-"'Type' entry is only informative and it allow to know the \n"
-"intent of using the current tool. \n"
-"It can be Rough(ing), Finish(ing) or Iso(lation).\n"
-"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n"
-"ball(B), or V-Shaped(V). \n"
-"When V-shaped is selected the 'Type' entry is automatically \n"
-"set to Isolation, the CutZ parameter in the UI form is\n"
-"grayed out and Cut Z is automatically calculated from the newly \n"
-"showed UI form entries named V-Tip Dia and V-Tip Angle."
-msgstr ""
-"Tools in this Geometry object used for cutting.\n"
-"The 'Offset' entry will set an offset for the cut.\n"
-"'Offset' can be inside, outside, on path (none) and custom.\n"
-"'Type' entry is only informative and it allow to know the \n"
-"intent of using the current tool. \n"
-"It can be Rough(ing), Finish(ing) or Iso(lation).\n"
-"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n"
-"ball(B), or V-Shaped(V). \n"
-"When V-shaped is selected the 'Type' entry is automatically \n"
-"set to Isolation, the CutZ parameter in the UI form is\n"
-"grayed out and Cut Z is automatically calculated from the newly \n"
-"showed UI form entries named V-Tip Dia and V-Tip Angle."
-
-#: flatcamGUI/ObjectUI.py:1484 flatcamGUI/ObjectUI.py:2313
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:40
-msgid "Plot Object"
-msgstr "Plot Object"
-
-#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326
-#: flatcamGUI/ObjectUI.py:2336
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138
-#: flatcamTools/ToolCopperThieving.py:221
-msgid "Dia"
-msgstr "Dia"
-
-#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326
-#: flatcamTools/ToolNCC.py:132 flatcamTools/ToolPaint.py:128
-msgid "TT"
-msgstr "TT"
-
-#: flatcamGUI/ObjectUI.py:1504
-msgid ""
-"This is the Tool Number.\n"
-"When ToolChange is checked, on toolchange event this value\n"
-"will be showed as a T1, T2 ... Tn"
-msgstr ""
-"This is the Tool Number.\n"
-"When ToolChange is checked, on toolchange event this value\n"
-"will be showed as a T1, T2 ... Tn"
-
-#: flatcamGUI/ObjectUI.py:1515
-msgid ""
-"The value for the Offset can be:\n"
-"- Path -> There is no offset, the tool cut will be done through the geometry "
-"line.\n"
-"- In(side) -> The tool cut will follow the geometry inside. It will create a "
-"'pocket'.\n"
-"- Out(side) -> The tool cut will follow the geometry line on the outside."
-msgstr ""
-"The value for the Offset can be:\n"
-"- Path -> There is no offset, the tool cut will be done through the geometry "
-"line.\n"
-"- In(side) -> The tool cut will follow the geometry inside. It will create a "
-"'pocket'.\n"
-"- Out(side) -> The tool cut will follow the geometry line on the outside."
-
-#: flatcamGUI/ObjectUI.py:1522
-msgid ""
-"The (Operation) Type has only informative value. Usually the UI form "
-"values \n"
-"are choose based on the operation type and this will serve as a reminder.\n"
-"Can be 'Roughing', 'Finishing' or 'Isolation'.\n"
-"For Roughing we may choose a lower Feedrate and multiDepth cut.\n"
-"For Finishing we may choose a higher Feedrate, without multiDepth.\n"
-"For Isolation we need a lower Feedrate as it use a milling bit with a fine "
-"tip."
-msgstr ""
-"The (Operation) Type has only informative value. Usually the UI form "
-"values \n"
-"are choose based on the operation type and this will serve as a reminder.\n"
-"Can be 'Roughing', 'Finishing' or 'Isolation'.\n"
-"For Roughing we may choose a lower Feedrate and multiDepth cut.\n"
-"For Finishing we may choose a higher Feedrate, without multiDepth.\n"
-"For Isolation we need a lower Feedrate as it use a milling bit with a fine "
-"tip."
-
-#: flatcamGUI/ObjectUI.py:1531
-msgid ""
-"The Tool Type (TT) can be:\n"
-"- Circular with 1 ... 4 teeth -> it is informative only. Being circular the "
-"cut width in material\n"
-"is exactly the tool diameter.\n"
-"- Ball -> informative only and make reference to the Ball type endmill.\n"
-"- V-Shape -> it will disable Z-Cut parameter in the UI form and enable two "
-"additional UI form\n"
-"fields: V-Tip Dia and V-Tip Angle. Adjusting those two values will adjust "
-"the Z-Cut parameter such\n"
-"as the cut width into material will be equal with the value in the Tool "
-"Diameter column of this table.\n"
-"Choosing the V-Shape Tool Type automatically will select the Operation Type "
-"as Isolation."
-msgstr ""
-"The Tool Type (TT) can be:\n"
-"- Circular with 1 ... 4 teeth -> it is informative only. Being circular the "
-"cut width in material\n"
-"is exactly the tool diameter.\n"
-"- Ball -> informative only and make reference to the Ball type endmill.\n"
-"- V-Shape -> it will disable Z-Cut parameter in the UI form and enable two "
-"additional UI form\n"
-"fields: V-Tip Dia and V-Tip Angle. Adjusting those two values will adjust "
-"the Z-Cut parameter such\n"
-"as the cut width into material will be equal with the value in the Tool "
-"Diameter column of this table.\n"
-"Choosing the V-Shape Tool Type automatically will select the Operation Type "
-"as Isolation."
-
-#: flatcamGUI/ObjectUI.py:1543
-msgid ""
-"Plot column. It is visible only for MultiGeo geometries, meaning geometries "
-"that holds the geometry\n"
-"data into the tools. For those geometries, deleting the tool will delete the "
-"geometry data also,\n"
-"so be WARNED. From the checkboxes on each row it can be enabled/disabled the "
-"plot on canvas\n"
-"for the corresponding tool."
-msgstr ""
-"Plot column. It is visible only for MultiGeo geometries, meaning geometries "
-"that holds the geometry\n"
-"data into the tools. For those geometries, deleting the tool will delete the "
-"geometry data also,\n"
-"so be WARNED. From the checkboxes on each row it can be enabled/disabled the "
-"plot on canvas\n"
-"for the corresponding tool."
-
-#: flatcamGUI/ObjectUI.py:1561
-msgid ""
-"The value to offset the cut when \n"
-"the Offset type selected is 'Offset'.\n"
-"The value can be positive for 'outside'\n"
-"cut and negative for 'inside' cut."
-msgstr ""
-"The value to offset the cut when \n"
-"the Offset type selected is 'Offset'.\n"
-"The value can be positive for 'outside'\n"
-"cut and negative for 'inside' cut."
-
-#: flatcamGUI/ObjectUI.py:1580 flatcamTools/ToolNCC.py:209
-#: flatcamTools/ToolNCC.py:923 flatcamTools/ToolPaint.py:192
-#: flatcamTools/ToolPaint.py:849 flatcamTools/ToolSolderPaste.py:559
-msgid "New Tool"
-msgstr "New Tool"
-
-#: flatcamGUI/ObjectUI.py:1597
-msgid ""
-"Add a new tool to the Tool Table\n"
-"with the specified diameter."
-msgstr ""
-"Add a new tool to the Tool Table\n"
-"with the specified diameter."
-
-#: flatcamGUI/ObjectUI.py:1602 flatcamTools/ToolNCC.py:300
-#: flatcamTools/ToolNCC.py:634 flatcamTools/ToolPaint.py:283
-#: flatcamTools/ToolPaint.py:679
-msgid "Add from DB"
-msgstr "Add from DB"
-
-#: flatcamGUI/ObjectUI.py:1604 flatcamTools/ToolNCC.py:302
-#: flatcamTools/ToolPaint.py:285
-msgid ""
-"Add a new tool to the Tool Table\n"
-"from the Tool DataBase."
-msgstr ""
-"Add a new tool to the Tool Table\n"
-"from the Tool DataBase."
-
-#: flatcamGUI/ObjectUI.py:1619
-msgid ""
-"Copy a selection of tools in the Tool Table\n"
-"by first selecting a row in the Tool Table."
-msgstr ""
-"Copy a selection of tools in the Tool Table\n"
-"by first selecting a row in the Tool Table."
-
-#: flatcamGUI/ObjectUI.py:1625
-msgid ""
-"Delete a selection of tools in the Tool Table\n"
-"by first selecting a row in the Tool Table."
-msgstr ""
-"Delete a selection of tools in the Tool Table\n"
-"by first selecting a row in the Tool Table."
-
-#: flatcamGUI/ObjectUI.py:1752
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:103
-msgid ""
-"Height of the tool when\n"
-"moving without cutting."
-msgstr ""
-"Height of the tool when\n"
-"moving without cutting."
-
-#: flatcamGUI/ObjectUI.py:1785
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:202
-msgid ""
-"Cutting speed in the XY\n"
-"plane in units per minute.\n"
-"It is called also Plunge."
-msgstr ""
-"Cutting speed in the XY\n"
-"plane in units per minute.\n"
-"It is called also Plunge."
-
-#: flatcamGUI/ObjectUI.py:1800
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:66
-msgid ""
-"Cutting speed in the XY plane\n"
-"(in units per minute).\n"
-"This is for the rapid move G00.\n"
-"It is useful only for Marlin,\n"
-"ignore for any other cases."
-msgstr ""
-"Cutting speed in the XY plane\n"
-"(in units per minute).\n"
-"This is for the rapid move G00.\n"
-"It is useful only for Marlin,\n"
-"ignore for any other cases."
-
-#: flatcamGUI/ObjectUI.py:1844
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:219
-msgid ""
-"Speed of the spindle in RPM (optional).\n"
-"If LASER preprocessor is used,\n"
-"this value is the power of laser."
-msgstr ""
-"Speed of the spindle in RPM (optional).\n"
-"If LASER preprocessor is used,\n"
-"this value is the power of laser."
-
-#: flatcamGUI/ObjectUI.py:1947
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:124
-msgid ""
-"Include tool-change sequence\n"
-"in the Machine Code (Pause for tool change)."
-msgstr ""
-"Include tool-change sequence\n"
-"in the Machine Code (Pause for tool change)."
-
-#: flatcamGUI/ObjectUI.py:2016
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:256
-msgid ""
-"The Preprocessor file that dictates\n"
-"the Machine Code (like GCode, RML, HPGL) output."
-msgstr ""
-"The Preprocessor file that dictates\n"
-"the Machine Code (like GCode, RML, HPGL) output."
-
-#: flatcamGUI/ObjectUI.py:2028
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:201
-msgid "Exclusion areas"
-msgstr "Exclusion areas"
-
-#: flatcamGUI/ObjectUI.py:2031
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:204
-msgid ""
-"Include exclusion areas.\n"
-"In those areas the travel of the tools\n"
-"is forbidden."
-msgstr ""
-"Include exclusion areas.\n"
-"In those areas the travel of the tools\n"
-"is forbidden."
-
-#: flatcamGUI/ObjectUI.py:2053
-#| msgid "Add Track"
-msgid "Add area"
-msgstr "Add area"
-
-#: flatcamGUI/ObjectUI.py:2054
-msgid "Add an Exclusion Area."
-msgstr "Add an Exclusion Area."
-
-#: flatcamGUI/ObjectUI.py:2058
-#| msgid "Clearance"
-msgid "Clear areas"
-msgstr "Clear areas"
-
-#: flatcamGUI/ObjectUI.py:2059
-#| msgid "Delete all extensions from the list."
-msgid "Delete all exclusion areas."
-msgstr "Delete all exclusion areas."
-
-#: flatcamGUI/ObjectUI.py:2068
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:212
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:322
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:286
-#: flatcamTools/ToolNCC.py:578 flatcamTools/ToolPaint.py:522
-msgid "Shape"
-msgstr "Shape"
-
-#: flatcamGUI/ObjectUI.py:2070
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:214
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:324
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:288
-#: flatcamTools/ToolNCC.py:580 flatcamTools/ToolPaint.py:524
-msgid "The kind of selection shape used for area selection."
-msgstr "The kind of selection shape used for area selection."
-
-#: flatcamGUI/ObjectUI.py:2080
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:224
-msgid "Strategy"
-msgstr "Strategy"
-
-#: flatcamGUI/ObjectUI.py:2081
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:225
-msgid ""
-"The strategy followed when encountering an exclusion area.\n"
-"Can be:\n"
-"- Over -> when encountering the area, the tool will go to a set height\n"
-"- Around -> will avoid the exclusion area by going around the area"
-msgstr ""
-"The strategy followed when encountering an exclusion area.\n"
-"Can be:\n"
-"- Over -> when encountering the area, the tool will go to a set height\n"
-"- Around -> will avoid the exclusion area by going around the area"
-
-#: flatcamGUI/ObjectUI.py:2085
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:229
-#| msgid "Overlap"
-msgid "Over"
-msgstr "Over"
-
-#: flatcamGUI/ObjectUI.py:2086
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:230
-#| msgid "Round"
-msgid "Around"
-msgstr "Around"
-
-#: flatcamGUI/ObjectUI.py:2092
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:236
-#| msgid "Overlap"
-msgid "Over Z"
-msgstr "Over Z"
-
-#: flatcamGUI/ObjectUI.py:2093
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:237
-msgid ""
-"The height Z to which the tool will rise in order to avoid\n"
-"an interdiction area."
-msgstr ""
-"The height Z to which the tool will rise in order to avoid\n"
-"an interdiction area."
-
-#: flatcamGUI/ObjectUI.py:2117
-msgid "Generate the CNC Job object."
-msgstr "Generate the CNC Job object."
-
-#: flatcamGUI/ObjectUI.py:2134
-msgid "Launch Paint Tool in Tools Tab."
-msgstr "Launch Paint Tool in Tools Tab."
-
-#: flatcamGUI/ObjectUI.py:2142
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:35
-msgid ""
-"Creates tool paths to cover the\n"
-"whole area of a polygon (remove\n"
-"all copper). You will be asked\n"
-"to click on the desired polygon."
-msgstr ""
-"Creates tool paths to cover the\n"
-"whole area of a polygon (remove\n"
-"all copper). You will be asked\n"
-"to click on the desired polygon."
-
-#: flatcamGUI/ObjectUI.py:2197
-msgid "CNC Job Object"
-msgstr "CNC Job Object"
-
-#: flatcamGUI/ObjectUI.py:2208
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:45
-msgid "Plot kind"
-msgstr "Plot kind"
-
-#: flatcamGUI/ObjectUI.py:2211
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:47
-msgid ""
-"This selects the kind of geometries on the canvas to plot.\n"
-"Those can be either of type 'Travel' which means the moves\n"
-"above the work piece or it can be of type 'Cut',\n"
-"which means the moves that cut into the material."
-msgstr ""
-"This selects the kind of geometries on the canvas to plot.\n"
-"Those can be either of type 'Travel' which means the moves\n"
-"above the work piece or it can be of type 'Cut',\n"
-"which means the moves that cut into the material."
-
-#: flatcamGUI/ObjectUI.py:2220
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:55
-msgid "Travel"
-msgstr "Travel"
-
-#: flatcamGUI/ObjectUI.py:2224
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:64
-msgid "Display Annotation"
-msgstr "Display Annotation"
-
-#: flatcamGUI/ObjectUI.py:2226
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:66
-msgid ""
-"This selects if to display text annotation on the plot.\n"
-"When checked it will display numbers in order for each end\n"
-"of a travel line."
-msgstr ""
-"This selects if to display text annotation on the plot.\n"
-"When checked it will display numbers in order for each end\n"
-"of a travel line."
-
-#: flatcamGUI/ObjectUI.py:2241
-msgid "Travelled dist."
-msgstr "Travelled dist."
-
-#: flatcamGUI/ObjectUI.py:2243 flatcamGUI/ObjectUI.py:2248
-msgid ""
-"This is the total travelled distance on X-Y plane.\n"
-"In current units."
-msgstr ""
-"This is the total travelled distance on X-Y plane.\n"
-"In current units."
-
-#: flatcamGUI/ObjectUI.py:2253
-msgid "Estimated time"
-msgstr "Estimated time"
-
-#: flatcamGUI/ObjectUI.py:2255 flatcamGUI/ObjectUI.py:2260
-msgid ""
-"This is the estimated time to do the routing/drilling,\n"
-"without the time spent in ToolChange events."
-msgstr ""
-"This is the estimated time to do the routing/drilling,\n"
-"without the time spent in ToolChange events."
-
-#: flatcamGUI/ObjectUI.py:2295
-msgid "CNC Tools Table"
-msgstr "CNC Tools Table"
-
-#: flatcamGUI/ObjectUI.py:2298
-msgid ""
-"Tools in this CNCJob object used for cutting.\n"
-"The tool diameter is used for plotting on canvas.\n"
-"The 'Offset' entry will set an offset for the cut.\n"
-"'Offset' can be inside, outside, on path (none) and custom.\n"
-"'Type' entry is only informative and it allow to know the \n"
-"intent of using the current tool. \n"
-"It can be Rough(ing), Finish(ing) or Iso(lation).\n"
-"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n"
-"ball(B), or V-Shaped(V)."
-msgstr ""
-"Tools in this CNCJob object used for cutting.\n"
-"The tool diameter is used for plotting on canvas.\n"
-"The 'Offset' entry will set an offset for the cut.\n"
-"'Offset' can be inside, outside, on path (none) and custom.\n"
-"'Type' entry is only informative and it allow to know the \n"
-"intent of using the current tool. \n"
-"It can be Rough(ing), Finish(ing) or Iso(lation).\n"
-"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n"
-"ball(B), or V-Shaped(V)."
-
-#: flatcamGUI/ObjectUI.py:2326 flatcamGUI/ObjectUI.py:2337
-msgid "P"
-msgstr "P"
-
-#: flatcamGUI/ObjectUI.py:2347
-msgid "Update Plot"
-msgstr "Update Plot"
-
-#: flatcamGUI/ObjectUI.py:2349
-msgid "Update the plot."
-msgstr "Update the plot."
-
-#: flatcamGUI/ObjectUI.py:2356
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:30
-msgid "Export CNC Code"
-msgstr "Export CNC Code"
-
-#: flatcamGUI/ObjectUI.py:2358
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:32
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:33
-msgid ""
-"Export and save G-Code to\n"
-"make this object to a file."
-msgstr ""
-"Export and save G-Code to\n"
-"make this object to a file."
-
-#: flatcamGUI/ObjectUI.py:2364
-msgid "Prepend to CNC Code"
-msgstr "Prepend to CNC Code"
-
-#: flatcamGUI/ObjectUI.py:2366 flatcamGUI/ObjectUI.py:2373
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:49
-msgid ""
-"Type here any G-Code commands you would\n"
-"like to add at the beginning of the G-Code file."
-msgstr ""
-"Type here any G-Code commands you would\n"
-"like to add at the beginning of the G-Code file."
-
-#: flatcamGUI/ObjectUI.py:2379
-msgid "Append to CNC Code"
-msgstr "Append to CNC Code"
-
-#: flatcamGUI/ObjectUI.py:2381 flatcamGUI/ObjectUI.py:2389
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:65
-msgid ""
-"Type here any G-Code commands you would\n"
-"like to append to the generated file.\n"
-"I.e.: M2 (End of program)"
-msgstr ""
-"Type here any G-Code commands you would\n"
-"like to append to the generated file.\n"
-"I.e.: M2 (End of program)"
-
-#: flatcamGUI/ObjectUI.py:2403
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:38
-msgid "Toolchange G-Code"
-msgstr "Toolchange G-Code"
-
-#: flatcamGUI/ObjectUI.py:2406
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:41
-msgid ""
-"Type here any G-Code commands you would\n"
-"like to be executed when Toolchange event is encountered.\n"
-"This will constitute a Custom Toolchange GCode,\n"
-"or a Toolchange Macro.\n"
-"The FlatCAM variables are surrounded by '%' symbol.\n"
-"\n"
-"WARNING: it can be used only with a preprocessor file\n"
-"that has 'toolchange_custom' in it's name and this is built\n"
-"having as template the 'Toolchange Custom' posprocessor file."
-msgstr ""
-"Type here any G-Code commands you would\n"
-"like to be executed when Toolchange event is encountered.\n"
-"This will constitute a Custom Toolchange GCode,\n"
-"or a Toolchange Macro.\n"
-"The FlatCAM variables are surrounded by '%' symbol.\n"
-"\n"
-"WARNING: it can be used only with a preprocessor file\n"
-"that has 'toolchange_custom' in it's name and this is built\n"
-"having as template the 'Toolchange Custom' posprocessor file."
-
-#: flatcamGUI/ObjectUI.py:2421
-msgid ""
-"Type here any G-Code commands you would\n"
-"like to be executed when Toolchange event is encountered.\n"
-"This will constitute a Custom Toolchange GCode,\n"
-"or a Toolchange Macro.\n"
-"The FlatCAM variables are surrounded by '%' symbol.\n"
-"WARNING: it can be used only with a preprocessor file\n"
-"that has 'toolchange_custom' in it's name."
-msgstr ""
-"Type here any G-Code commands you would\n"
-"like to be executed when Toolchange event is encountered.\n"
-"This will constitute a Custom Toolchange GCode,\n"
-"or a Toolchange Macro.\n"
-"The FlatCAM variables are surrounded by '%' symbol.\n"
-"WARNING: it can be used only with a preprocessor file\n"
-"that has 'toolchange_custom' in it's name."
-
-#: flatcamGUI/ObjectUI.py:2436
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:80
-msgid "Use Toolchange Macro"
-msgstr "Use Toolchange Macro"
-
-#: flatcamGUI/ObjectUI.py:2438
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:82
-msgid ""
-"Check this box if you want to use\n"
-"a Custom Toolchange GCode (macro)."
-msgstr ""
-"Check this box if you want to use\n"
-"a Custom Toolchange GCode (macro)."
-
-#: flatcamGUI/ObjectUI.py:2446
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:94
-msgid ""
-"A list of the FlatCAM variables that can be used\n"
-"in the Toolchange event.\n"
-"They have to be surrounded by the '%' symbol"
-msgstr ""
-"A list of the FlatCAM variables that can be used\n"
-"in the Toolchange event.\n"
-"They have to be surrounded by the '%' symbol"
-
-#: flatcamGUI/ObjectUI.py:2453
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:101
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:30
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:31
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:37
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:36
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:36
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:36
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:36
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:30
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:32
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31
-#: flatcamTools/ToolCopperThieving.py:89 flatcamTools/ToolFiducials.py:149
-#: flatcamTools/ToolInvertGerber.py:82
-msgid "Parameters"
-msgstr "Parameters"
-
-#: flatcamGUI/ObjectUI.py:2456
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:106
-msgid "FlatCAM CNC parameters"
-msgstr "FlatCAM CNC parameters"
-
-#: flatcamGUI/ObjectUI.py:2457
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:111
-msgid "tool number"
-msgstr "tool number"
-
-#: flatcamGUI/ObjectUI.py:2458
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:112
-msgid "tool diameter"
-msgstr "tool diameter"
-
-#: flatcamGUI/ObjectUI.py:2459
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:113
-msgid "for Excellon, total number of drills"
-msgstr "for Excellon, total number of drills"
-
-#: flatcamGUI/ObjectUI.py:2461
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:115
-msgid "X coord for Toolchange"
-msgstr "X coord for Toolchange"
-
-#: flatcamGUI/ObjectUI.py:2462
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:116
-msgid "Y coord for Toolchange"
-msgstr "Y coord for Toolchange"
-
-#: flatcamGUI/ObjectUI.py:2463
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:118
-msgid "Z coord for Toolchange"
-msgstr "Z coord for Toolchange"
-
-#: flatcamGUI/ObjectUI.py:2464
-msgid "depth where to cut"
-msgstr "depth where to cut"
-
-#: flatcamGUI/ObjectUI.py:2465
-msgid "height where to travel"
-msgstr "height where to travel"
-
-#: flatcamGUI/ObjectUI.py:2466
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:121
-msgid "the step value for multidepth cut"
-msgstr "the step value for multidepth cut"
-
-#: flatcamGUI/ObjectUI.py:2468
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:123
-msgid "the value for the spindle speed"
-msgstr "the value for the spindle speed"
-
-#: flatcamGUI/ObjectUI.py:2470
-msgid "time to dwell to allow the spindle to reach it's set RPM"
-msgstr "time to dwell to allow the spindle to reach it's set RPM"
-
-#: flatcamGUI/ObjectUI.py:2486
-msgid "View CNC Code"
-msgstr "View CNC Code"
-
-#: flatcamGUI/ObjectUI.py:2488
-msgid ""
-"Opens TAB to view/modify/print G-Code\n"
-"file."
-msgstr ""
-"Opens TAB to view/modify/print G-Code\n"
-"file."
-
-#: flatcamGUI/ObjectUI.py:2493
-msgid "Save CNC Code"
-msgstr "Save CNC Code"
-
-#: flatcamGUI/ObjectUI.py:2495
-msgid ""
-"Opens dialog to save G-Code\n"
-"file."
-msgstr ""
-"Opens dialog to save G-Code\n"
-"file."
-
-#: flatcamGUI/ObjectUI.py:2529
-msgid "Script Object"
-msgstr "Script Object"
-
-#: flatcamGUI/ObjectUI.py:2549 flatcamGUI/ObjectUI.py:2623
-msgid "Auto Completer"
-msgstr "Auto Completer"
-
-#: flatcamGUI/ObjectUI.py:2551
-msgid "This selects if the auto completer is enabled in the Script Editor."
-msgstr "This selects if the auto completer is enabled in the Script Editor."
-
-#: flatcamGUI/ObjectUI.py:2596
-msgid "Document Object"
-msgstr "Document Object"
-
-#: flatcamGUI/ObjectUI.py:2625
-msgid "This selects if the auto completer is enabled in the Document Editor."
-msgstr "This selects if the auto completer is enabled in the Document Editor."
-
-#: flatcamGUI/ObjectUI.py:2643
-msgid "Font Type"
-msgstr "Font Type"
-
-#: flatcamGUI/ObjectUI.py:2660
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:197
-msgid "Font Size"
-msgstr "Font Size"
-
-#: flatcamGUI/ObjectUI.py:2696
-msgid "Alignment"
-msgstr "Alignment"
-
-#: flatcamGUI/ObjectUI.py:2701
-msgid "Align Left"
-msgstr "Align Left"
-
-#: flatcamGUI/ObjectUI.py:2711
-msgid "Align Right"
-msgstr "Align Right"
-
-#: flatcamGUI/ObjectUI.py:2716
-msgid "Justify"
-msgstr "Justify"
-
-#: flatcamGUI/ObjectUI.py:2723
-msgid "Font Color"
-msgstr "Font Color"
-
-#: flatcamGUI/ObjectUI.py:2725
-msgid "Set the font color for the selected text"
-msgstr "Set the font color for the selected text"
-
-#: flatcamGUI/ObjectUI.py:2739
-msgid "Selection Color"
-msgstr "Selection Color"
-
-#: flatcamGUI/ObjectUI.py:2741
-msgid "Set the selection color when doing text selection."
-msgstr "Set the selection color when doing text selection."
-
-#: flatcamGUI/ObjectUI.py:2755
-msgid "Tab Size"
-msgstr "Tab Size"
-
-#: flatcamGUI/ObjectUI.py:2757
-msgid "Set the tab size. In pixels. Default value is 80 pixels."
-msgstr "Set the tab size. In pixels. Default value is 80 pixels."
-
-#: flatcamGUI/PlotCanvasLegacy.py:1299
-msgid ""
-"Could not annotate due of a difference between the number of text elements "
-"and the number of text positions."
-msgstr ""
-"Could not annotate due of a difference between the number of text elements "
-"and the number of text positions."
-
-#: flatcamGUI/preferences/PreferencesUIManager.py:911
-msgid "Preferences applied."
-msgstr "Preferences applied."
-
-#: flatcamGUI/preferences/PreferencesUIManager.py:975
-msgid "Preferences closed without saving."
-msgstr "Preferences closed without saving."
-
-#: flatcamGUI/preferences/PreferencesUIManager.py:987
-msgid "Preferences default values are restored."
-msgstr "Preferences default values are restored."
-
-#: flatcamGUI/preferences/PreferencesUIManager.py:1022
-#: flatcamGUI/preferences/PreferencesUIManager.py:1131
-msgid "Preferences saved."
-msgstr "Preferences saved."
-
-#: flatcamGUI/preferences/PreferencesUIManager.py:1072
-msgid "Preferences edited but not saved."
-msgstr "Preferences edited but not saved."
-
-#: flatcamGUI/preferences/PreferencesUIManager.py:1117
-msgid ""
-"One or more values are changed.\n"
-"Do you want to save the Preferences?"
-msgstr ""
-"One or more values are changed.\n"
-"Do you want to save the Preferences?"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:27
-msgid "CNC Job Adv. Options"
-msgstr "CNC Job Adv. Options"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:64
-msgid ""
-"Type here any G-Code commands you would like to be executed when Toolchange "
-"event is encountered.\n"
-"This will constitute a Custom Toolchange GCode, or a Toolchange Macro.\n"
-"The FlatCAM variables are surrounded by '%' symbol.\n"
-"WARNING: it can be used only with a preprocessor file that has "
-"'toolchange_custom' in it's name."
-msgstr ""
-"Type here any G-Code commands you would like to be executed when Toolchange "
-"event is encountered.\n"
-"This will constitute a Custom Toolchange GCode, or a Toolchange Macro.\n"
-"The FlatCAM variables are surrounded by '%' symbol.\n"
-"WARNING: it can be used only with a preprocessor file that has "
-"'toolchange_custom' in it's name."
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:119
-msgid "Z depth for the cut"
-msgstr "Z depth for the cut"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:120
-msgid "Z height for travel"
-msgstr "Z height for travel"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:126
-msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM"
-msgstr "dwelltime = time to dwell to allow the spindle to reach it's set RPM"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:145
-msgid "Annotation Size"
-msgstr "Annotation Size"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:147
-msgid "The font size of the annotation text. In pixels."
-msgstr "The font size of the annotation text. In pixels."
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:157
-msgid "Annotation Color"
-msgstr "Annotation Color"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:159
-msgid "Set the font color for the annotation texts."
-msgstr "Set the font color for the annotation texts."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:26
-msgid "CNC Job General"
-msgstr "CNC Job General"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:77
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:47
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:59
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:45
-msgid "Circle Steps"
-msgstr "Circle Steps"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:79
-msgid ""
-"The number of circle steps for GCode \n"
-"circle and arc shapes linear approximation."
-msgstr ""
-"The number of circle steps for GCode \n"
-"circle and arc shapes linear approximation."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:88
-msgid "Travel dia"
-msgstr "Travel dia"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:90
-msgid ""
-"The width of the travel lines to be\n"
-"rendered in the plot."
-msgstr ""
-"The width of the travel lines to be\n"
-"rendered in the plot."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:103
-msgid "G-code Decimals"
-msgstr "G-code Decimals"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:106
-#: flatcamTools/ToolFiducials.py:74
-msgid "Coordinates"
-msgstr "Coordinates"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:108
-msgid ""
-"The number of decimals to be used for \n"
-"the X, Y, Z coordinates in CNC code (GCODE, etc.)"
-msgstr ""
-"The number of decimals to be used for \n"
-"the X, Y, Z coordinates in CNC code (GCODE, etc.)"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:119
-#: flatcamTools/ToolProperties.py:519
-msgid "Feedrate"
-msgstr "Feedrate"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:121
-msgid ""
-"The number of decimals to be used for \n"
-"the Feedrate parameter in CNC code (GCODE, etc.)"
-msgstr ""
-"The number of decimals to be used for \n"
-"the Feedrate parameter in CNC code (GCODE, etc.)"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:132
-msgid "Coordinates type"
-msgstr "Coordinates type"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:134
-msgid ""
-"The type of coordinates to be used in Gcode.\n"
-"Can be:\n"
-"- Absolute G90 -> the reference is the origin x=0, y=0\n"
-"- Incremental G91 -> the reference is the previous position"
-msgstr ""
-"The type of coordinates to be used in Gcode.\n"
-"Can be:\n"
-"- Absolute G90 -> the reference is the origin x=0, y=0\n"
-"- Incremental G91 -> the reference is the previous position"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:140
-msgid "Absolute G90"
-msgstr "Absolute G90"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:141
-msgid "Incremental G91"
-msgstr "Incremental G91"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:151
-msgid "Force Windows style line-ending"
-msgstr "Force Windows style line-ending"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:153
-msgid ""
-"When checked will force a Windows style line-ending\n"
-"(\\r\\n) on non-Windows OS's."
-msgstr ""
-"When checked will force a Windows style line-ending\n"
-"(\\r\\n) on non-Windows OS's."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:165
-msgid "Travel Line Color"
-msgstr "Travel Line Color"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:169
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:235
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:262
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:154
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:220
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:84
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:153
-#: flatcamTools/ToolRulesCheck.py:186
-msgid "Outline"
-msgstr "Outline"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:171
-msgid "Set the travel line color for plotted objects."
-msgstr "Set the travel line color for plotted objects."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:186
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:252
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:279
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:170
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:237
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:170
-msgid "Fill"
-msgstr "Fill"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:188
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:254
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:281
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:172
-msgid ""
-"Set the fill color for plotted objects.\n"
-"First 6 digits are the color and the last 2\n"
-"digits are for alpha (transparency) level."
-msgstr ""
-"Set the fill color for plotted objects.\n"
-"First 6 digits are the color and the last 2\n"
-"digits are for alpha (transparency) level."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:205
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:298
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:190
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:257
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:189
-msgid "Alpha"
-msgstr "Alpha"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:207
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:300
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:191
-msgid "Set the fill transparency for plotted objects."
-msgstr "Set the fill transparency for plotted objects."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:231
-msgid "CNCJob Object Color"
-msgstr "CNCJob Object Color"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:237
-msgid "Set the color for plotted objects."
-msgstr "Set the color for plotted objects."
-
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:27
-msgid "CNC Job Options"
-msgstr "CNC Job Options"
-
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:31
-msgid "Export G-Code"
-msgstr "Export G-Code"
-
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:47
-msgid "Prepend to G-Code"
-msgstr "Prepend to G-Code"
-
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:56
-msgid ""
-"Type here any G-Code commands you would like to add at the beginning of the "
-"G-Code file."
-msgstr ""
-"Type here any G-Code commands you would like to add at the beginning of the "
-"G-Code file."
-
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:63
-msgid "Append to G-Code"
-msgstr "Append to G-Code"
-
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:73
-msgid ""
-"Type here any G-Code commands you would like to append to the generated "
-"file.\n"
-"I.e.: M2 (End of program)"
-msgstr ""
-"Type here any G-Code commands you would like to append to the generated "
-"file.\n"
-"I.e.: M2 (End of program)"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:27
-msgid "Excellon Adv. Options"
-msgstr "Excellon Adv. Options"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:34
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:33
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:31
-msgid "Advanced Options"
-msgstr "Advanced Options"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:36
-msgid ""
-"A list of Excellon advanced parameters.\n"
-"Those parameters are available only for\n"
-"Advanced App. Level."
-msgstr ""
-"A list of Excellon advanced parameters.\n"
-"Those parameters are available only for\n"
-"Advanced App. Level."
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:59
-msgid "Toolchange X,Y"
-msgstr "Toolchange X,Y"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:61
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:47
-msgid "Toolchange X,Y position."
-msgstr "Toolchange X,Y position."
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:121
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:134
-msgid "Spindle direction"
-msgstr "Spindle direction"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:123
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:136
-msgid ""
-"This sets the direction that the spindle is rotating.\n"
-"It can be either:\n"
-"- CW = clockwise or\n"
-"- CCW = counter clockwise"
-msgstr ""
-"This sets the direction that the spindle is rotating.\n"
-"It can be either:\n"
-"- CW = clockwise or\n"
-"- CCW = counter clockwise"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:134
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:148
-msgid "Fast Plunge"
-msgstr "Fast Plunge"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:136
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:150
-msgid ""
-"By checking this, the vertical move from\n"
-"Z_Toolchange to Z_move is done with G0,\n"
-"meaning the fastest speed available.\n"
-"WARNING: the move is done at Toolchange X,Y coords."
-msgstr ""
-"By checking this, the vertical move from\n"
-"Z_Toolchange to Z_move is done with G0,\n"
-"meaning the fastest speed available.\n"
-"WARNING: the move is done at Toolchange X,Y coords."
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:143
-msgid "Fast Retract"
-msgstr "Fast Retract"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:145
-msgid ""
-"Exit hole strategy.\n"
-" - When uncheked, while exiting the drilled hole the drill bit\n"
-"will travel slow, with set feedrate (G1), up to zero depth and then\n"
-"travel as fast as possible (G0) to the Z Move (travel height).\n"
-" - When checked the travel from Z cut (cut depth) to Z_move\n"
-"(travel height) is done as fast as possible (G0) in one move."
-msgstr ""
-"Exit hole strategy.\n"
-" - When uncheked, while exiting the drilled hole the drill bit\n"
-"will travel slow, with set feedrate (G1), up to zero depth and then\n"
-"travel as fast as possible (G0) to the Z Move (travel height).\n"
-" - When checked the travel from Z cut (cut depth) to Z_move\n"
-"(travel height) is done as fast as possible (G0) in one move."
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:32
-msgid "A list of Excellon Editor parameters."
-msgstr "A list of Excellon Editor parameters."
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:40
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:41
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:41
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:194
-msgid "Selection limit"
-msgstr "Selection limit"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:42
-msgid ""
-"Set the number of selected Excellon geometry\n"
-"items above which the utility geometry\n"
-"becomes just a selection rectangle.\n"
-"Increases the performance when moving a\n"
-"large number of geometric elements."
-msgstr ""
-"Set the number of selected Excellon geometry\n"
-"items above which the utility geometry\n"
-"becomes just a selection rectangle.\n"
-"Increases the performance when moving a\n"
-"large number of geometric elements."
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:55
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:117
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:123
-msgid "New Dia"
-msgstr "New Dia"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:80
-msgid "Linear Drill Array"
-msgstr "Linear Drill Array"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:84
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:232
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:120
-msgid "Linear Direction"
-msgstr "Linear Direction"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:126
-msgid "Circular Drill Array"
-msgstr "Circular Drill Array"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:130
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:280
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:164
-msgid "Circular Direction"
-msgstr "Circular Direction"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:132
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:282
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:166
-msgid ""
-"Direction for circular array.\n"
-"Can be CW = clockwise or CCW = counter clockwise."
-msgstr ""
-"Direction for circular array.\n"
-"Can be CW = clockwise or CCW = counter clockwise."
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:143
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:293
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:177
-msgid "Circular Angle"
-msgstr "Circular Angle"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:196
-msgid ""
-"Angle at which the slot is placed.\n"
-"The precision is of max 2 decimals.\n"
-"Min value is: -359.99 degrees.\n"
-"Max value is: 360.00 degrees."
-msgstr ""
-"Angle at which the slot is placed.\n"
-"The precision is of max 2 decimals.\n"
-"Min value is: -359.99 degrees.\n"
-"Max value is: 360.00 degrees."
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:215
-msgid "Linear Slot Array"
-msgstr "Linear Slot Array"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:276
-msgid "Circular Slot Array"
-msgstr "Circular Slot Array"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:26
-msgid "Excellon Export"
-msgstr "Excellon Export"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:30
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:31
-msgid "Export Options"
-msgstr "Export Options"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:32
-msgid ""
-"The parameters set here are used in the file exported\n"
-"when using the File -> Export -> Export Excellon menu entry."
-msgstr ""
-"The parameters set here are used in the file exported\n"
-"when using the File -> Export -> Export Excellon menu entry."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:41
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:163
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:39
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:42
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:82
-#: flatcamTools/ToolDistance.py:56 flatcamTools/ToolDistanceMin.py:50
-#: flatcamTools/ToolPcbWizard.py:127 flatcamTools/ToolProperties.py:154
-msgid "Units"
-msgstr "Units"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:43
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:49
-msgid "The units used in the Excellon file."
-msgstr "The units used in the Excellon file."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:46
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:87
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:173
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:47
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:87
-#: flatcamTools/ToolCalculators.py:61 flatcamTools/ToolPcbWizard.py:125
-msgid "INCH"
-msgstr "INCH"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:47
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:174
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:43
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:48
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:88
-#: flatcamTools/ToolCalculators.py:62 flatcamTools/ToolPcbWizard.py:126
-msgid "MM"
-msgstr "MM"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:55
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:56
-msgid "Int/Decimals"
-msgstr "Int/Decimals"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:57
-msgid ""
-"The NC drill files, usually named Excellon files\n"
-"are files that can be found in different formats.\n"
-"Here we set the format used when the provided\n"
-"coordinates are not using period."
-msgstr ""
-"The NC drill files, usually named Excellon files\n"
-"are files that can be found in different formats.\n"
-"Here we set the format used when the provided\n"
-"coordinates are not using period."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:69
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:95
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:124
-msgid ""
-"This numbers signify the number of digits in\n"
-"the whole part of Excellon coordinates."
-msgstr ""
-"This numbers signify the number of digits in\n"
-"the whole part of Excellon coordinates."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:82
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:108
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:137
-msgid ""
-"This numbers signify the number of digits in\n"
-"the decimal part of Excellon coordinates."
-msgstr ""
-"This numbers signify the number of digits in\n"
-"the decimal part of Excellon coordinates."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:91
-msgid "Format"
-msgstr "Format"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:93
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:103
-msgid ""
-"Select the kind of coordinates format used.\n"
-"Coordinates can be saved with decimal point or without.\n"
-"When there is no decimal point, it is required to specify\n"
-"the number of digits for integer part and the number of decimals.\n"
-"Also it will have to be specified if LZ = leading zeros are kept\n"
-"or TZ = trailing zeros are kept."
-msgstr ""
-"Select the kind of coordinates format used.\n"
-"Coordinates can be saved with decimal point or without.\n"
-"When there is no decimal point, it is required to specify\n"
-"the number of digits for integer part and the number of decimals.\n"
-"Also it will have to be specified if LZ = leading zeros are kept\n"
-"or TZ = trailing zeros are kept."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:100
-msgid "Decimal"
-msgstr "Decimal"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:101
-msgid "No-Decimal"
-msgstr "No-Decimal"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:114
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:145
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:96
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:97
-msgid "Zeros"
-msgstr "Zeros"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:117
-msgid ""
-"This sets the type of Excellon zeros.\n"
-"If LZ then Leading Zeros are kept and\n"
-"Trailing Zeros are removed.\n"
-"If TZ is checked then Trailing Zeros are kept\n"
-"and Leading Zeros are removed."
-msgstr ""
-"This sets the type of Excellon zeros.\n"
-"If LZ then Leading Zeros are kept and\n"
-"Trailing Zeros are removed.\n"
-"If TZ is checked then Trailing Zeros are kept\n"
-"and Leading Zeros are removed."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:124
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:158
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:106
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:107
-#: flatcamTools/ToolPcbWizard.py:111
-msgid "LZ"
-msgstr "LZ"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:125
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:159
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:107
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:108
-#: flatcamTools/ToolPcbWizard.py:112
-msgid "TZ"
-msgstr "TZ"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:127
-msgid ""
-"This sets the default type of Excellon zeros.\n"
-"If LZ then Leading Zeros are kept and\n"
-"Trailing Zeros are removed.\n"
-"If TZ is checked then Trailing Zeros are kept\n"
-"and Leading Zeros are removed."
-msgstr ""
-"This sets the default type of Excellon zeros.\n"
-"If LZ then Leading Zeros are kept and\n"
-"Trailing Zeros are removed.\n"
-"If TZ is checked then Trailing Zeros are kept\n"
-"and Leading Zeros are removed."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:137
-msgid "Slot type"
-msgstr "Slot type"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:140
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:150
-msgid ""
-"This sets how the slots will be exported.\n"
-"If ROUTED then the slots will be routed\n"
-"using M15/M16 commands.\n"
-"If DRILLED(G85) the slots will be exported\n"
-"using the Drilled slot command (G85)."
-msgstr ""
-"This sets how the slots will be exported.\n"
-"If ROUTED then the slots will be routed\n"
-"using M15/M16 commands.\n"
-"If DRILLED(G85) the slots will be exported\n"
-"using the Drilled slot command (G85)."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:147
-msgid "Routed"
-msgstr "Routed"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:148
-msgid "Drilled(G85)"
-msgstr "Drilled(G85)"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:29
-msgid "Excellon General"
-msgstr "Excellon General"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:62
-msgid "Excellon Format"
-msgstr "Excellon Format"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:64
-msgid ""
-"The NC drill files, usually named Excellon files\n"
-"are files that can be found in different formats.\n"
-"Here we set the format used when the provided\n"
-"coordinates are not using period.\n"
-"\n"
-"Possible presets:\n"
-"\n"
-"PROTEUS 3:3 MM LZ\n"
-"DipTrace 5:2 MM TZ\n"
-"DipTrace 4:3 MM LZ\n"
-"\n"
-"EAGLE 3:3 MM TZ\n"
-"EAGLE 4:3 MM TZ\n"
-"EAGLE 2:5 INCH TZ\n"
-"EAGLE 3:5 INCH TZ\n"
-"\n"
-"ALTIUM 2:4 INCH LZ\n"
-"Sprint Layout 2:4 INCH LZ\n"
-"KiCAD 3:5 INCH TZ"
-msgstr ""
-"The NC drill files, usually named Excellon files\n"
-"are files that can be found in different formats.\n"
-"Here we set the format used when the provided\n"
-"coordinates are not using period.\n"
-"\n"
-"Possible presets:\n"
-"\n"
-"PROTEUS 3:3 MM LZ\n"
-"DipTrace 5:2 MM TZ\n"
-"DipTrace 4:3 MM LZ\n"
-"\n"
-"EAGLE 3:3 MM TZ\n"
-"EAGLE 4:3 MM TZ\n"
-"EAGLE 2:5 INCH TZ\n"
-"EAGLE 3:5 INCH TZ\n"
-"\n"
-"ALTIUM 2:4 INCH LZ\n"
-"Sprint Layout 2:4 INCH LZ\n"
-"KiCAD 3:5 INCH TZ"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:88
-msgid "Default values for INCH are 2:4"
-msgstr "Default values for INCH are 2:4"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:116
-msgid "METRIC"
-msgstr "METRIC"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:117
-msgid "Default values for METRIC are 3:3"
-msgstr "Default values for METRIC are 3:3"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:148
-msgid ""
-"This sets the type of Excellon zeros.\n"
-"If LZ then Leading Zeros are kept and\n"
-"Trailing Zeros are removed.\n"
-"If TZ is checked then Trailing Zeros are kept\n"
-"and Leading Zeros are removed.\n"
-"\n"
-"This is used when there is no information\n"
-"stored in the Excellon file."
-msgstr ""
-"This sets the type of Excellon zeros.\n"
-"If LZ then Leading Zeros are kept and\n"
-"Trailing Zeros are removed.\n"
-"If TZ is checked then Trailing Zeros are kept\n"
-"and Leading Zeros are removed.\n"
-"\n"
-"This is used when there is no information\n"
-"stored in the Excellon file."
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:166
-msgid ""
-"This sets the default units of Excellon files.\n"
-"If it is not detected in the parsed file the value here\n"
-"will be used.Some Excellon files don't have an header\n"
-"therefore this parameter will be used."
-msgstr ""
-"This sets the default units of Excellon files.\n"
-"If it is not detected in the parsed file the value here\n"
-"will be used.Some Excellon files don't have an header\n"
-"therefore this parameter will be used."
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:176
-msgid ""
-"This sets the units of Excellon files.\n"
-"Some Excellon files don't have an header\n"
-"therefore this parameter will be used."
-msgstr ""
-"This sets the units of Excellon files.\n"
-"Some Excellon files don't have an header\n"
-"therefore this parameter will be used."
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:184
-msgid "Update Export settings"
-msgstr "Update Export settings"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:201
-msgid "Excellon Optimization"
-msgstr "Excellon Optimization"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:204
-msgid "Algorithm:"
-msgstr "Algorithm:"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:206
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:222
-msgid ""
-"This sets the optimization type for the Excellon drill path.\n"
-"If <> is checked then Google OR-Tools algorithm with\n"
-"MetaHeuristic Guided Local Path is used. Default search time is 3sec.\n"
-"If <> is checked then Google OR-Tools Basic algorithm is used.\n"
-"If <> is checked then Travelling Salesman algorithm is used for\n"
-"drill path optimization.\n"
-"\n"
-"If this control is disabled, then FlatCAM works in 32bit mode and it uses\n"
-"Travelling Salesman algorithm for path optimization."
-msgstr ""
-"This sets the optimization type for the Excellon drill path.\n"
-"If <> is checked then Google OR-Tools algorithm with\n"
-"MetaHeuristic Guided Local Path is used. Default search time is 3sec.\n"
-"If <> is checked then Google OR-Tools Basic algorithm is used.\n"
-"If <> is checked then Travelling Salesman algorithm is used for\n"
-"drill path optimization.\n"
-"\n"
-"If this control is disabled, then FlatCAM works in 32bit mode and it uses\n"
-"Travelling Salesman algorithm for path optimization."
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:217
-msgid "MetaHeuristic"
-msgstr "MetaHeuristic"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:218
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:104
-#: flatcamObjects/FlatCAMExcellon.py:614 flatcamObjects/FlatCAMGeometry.py:510
-#: flatcamObjects/FlatCAMGerber.py:251
-msgid "Basic"
-msgstr "Basic"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:219
-msgid "TSA"
-msgstr "TSA"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:236
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:245
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:237
-msgid "Duration"
-msgstr "Duration"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:239
-msgid ""
-"When OR-Tools Metaheuristic (MH) is enabled there is a\n"
-"maximum threshold for how much time is spent doing the\n"
-"path optimization. This max duration is set here.\n"
-"In seconds."
-msgstr ""
-"When OR-Tools Metaheuristic (MH) is enabled there is a\n"
-"maximum threshold for how much time is spent doing the\n"
-"path optimization. This max duration is set here.\n"
-"In seconds."
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:258
-msgid "Excellon Object Color"
-msgstr "Excellon Object Color"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:264
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:86
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:155
-msgid "Set the line color for plotted objects."
-msgstr "Set the line color for plotted objects."
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:29
-msgid "Excellon Options"
-msgstr "Excellon Options"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:33
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:34
-msgid "Create CNC Job"
-msgstr "Create CNC Job"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:35
-msgid ""
-"Parameters used to create a CNC Job object\n"
-"for this drill object."
-msgstr ""
-"Parameters used to create a CNC Job object\n"
-"for this drill object."
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:152
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:121
-msgid "Tool change"
-msgstr "Tool change"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:236
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:232
-msgid "Enable Dwell"
-msgstr "Enable Dwell"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:259
-msgid ""
-"The preprocessor JSON file that dictates\n"
-"Gcode output."
-msgstr ""
-"The preprocessor JSON file that dictates\n"
-"Gcode output."
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:270
-msgid "Gcode"
-msgstr "Gcode"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:272
-msgid ""
-"Choose what to use for GCode generation:\n"
-"'Drills', 'Slots' or 'Both'.\n"
-"When choosing 'Slots' or 'Both', slots will be\n"
-"converted to drills."
-msgstr ""
-"Choose what to use for GCode generation:\n"
-"'Drills', 'Slots' or 'Both'.\n"
-"When choosing 'Slots' or 'Both', slots will be\n"
-"converted to drills."
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:288
-msgid "Mill Holes"
-msgstr "Mill Holes"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:290
-msgid "Create Geometry for milling holes."
-msgstr "Create Geometry for milling holes."
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:294
-msgid "Drill Tool dia"
-msgstr "Drill Tool dia"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:305
-msgid "Slot Tool dia"
-msgstr "Slot Tool dia"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:307
-msgid ""
-"Diameter of the cutting tool\n"
-"when milling slots."
-msgstr ""
-"Diameter of the cutting tool\n"
-"when milling slots."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:28
-msgid "App Settings"
-msgstr "App Settings"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:49
-msgid "Grid Settings"
-msgstr "Grid Settings"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:53
-msgid "X value"
-msgstr "X value"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:55
-msgid "This is the Grid snap value on X axis."
-msgstr "This is the Grid snap value on X axis."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:65
-msgid "Y value"
-msgstr "Y value"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:67
-msgid "This is the Grid snap value on Y axis."
-msgstr "This is the Grid snap value on Y axis."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:77
-msgid "Snap Max"
-msgstr "Snap Max"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:92
-msgid "Workspace Settings"
-msgstr "Workspace Settings"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:95
-msgid "Active"
-msgstr "Active"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:97
-msgid ""
-"Draw a delimiting rectangle on canvas.\n"
-"The purpose is to illustrate the limits for our work."
-msgstr ""
-"Draw a delimiting rectangle on canvas.\n"
-"The purpose is to illustrate the limits for our work."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:105
-msgid ""
-"Select the type of rectangle to be used on canvas,\n"
-"as valid workspace."
-msgstr ""
-"Select the type of rectangle to be used on canvas,\n"
-"as valid workspace."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:171
-msgid "Orientation"
-msgstr "Orientation"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:172
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:239
-#: flatcamTools/ToolFilm.py:422
-msgid ""
-"Can be:\n"
-"- Portrait\n"
-"- Landscape"
-msgstr ""
-"Can be:\n"
-"- Portrait\n"
-"- Landscape"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:176
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:243
-#: flatcamTools/ToolFilm.py:426
-msgid "Portrait"
-msgstr "Portrait"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:177
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:244
-#: flatcamTools/ToolFilm.py:427
-msgid "Landscape"
-msgstr "Landscape"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:201
-msgid "Notebook"
-msgstr "Notebook"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:203
-msgid ""
-"This sets the font size for the elements found in the Notebook.\n"
-"The notebook is the collapsible area in the left side of the GUI,\n"
-"and include the Project, Selected and Tool tabs."
-msgstr ""
-"This sets the font size for the elements found in the Notebook.\n"
-"The notebook is the collapsible area in the left side of the GUI,\n"
-"and include the Project, Selected and Tool tabs."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:222
-msgid "Axis"
-msgstr "Axis"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:224
-msgid "This sets the font size for canvas axis."
-msgstr "This sets the font size for canvas axis."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:241
-msgid "Textbox"
-msgstr "Textbox"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:243
-msgid ""
-"This sets the font size for the Textbox GUI\n"
-"elements that are used in FlatCAM."
-msgstr ""
-"This sets the font size for the Textbox GUI\n"
-"elements that are used in FlatCAM."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:269
-msgid "Mouse Settings"
-msgstr "Mouse Settings"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:273
-msgid "Cursor Shape"
-msgstr "Cursor Shape"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:275
-msgid ""
-"Choose a mouse cursor shape.\n"
-"- Small -> with a customizable size.\n"
-"- Big -> Infinite lines"
-msgstr ""
-"Choose a mouse cursor shape.\n"
-"- Small -> with a customizable size.\n"
-"- Big -> Infinite lines"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:281
-msgid "Small"
-msgstr "Small"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:282
-msgid "Big"
-msgstr "Big"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:289
-msgid "Cursor Size"
-msgstr "Cursor Size"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:291
-msgid "Set the size of the mouse cursor, in pixels."
-msgstr "Set the size of the mouse cursor, in pixels."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:302
-msgid "Cursor Width"
-msgstr "Cursor Width"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:304
-msgid "Set the line width of the mouse cursor, in pixels."
-msgstr "Set the line width of the mouse cursor, in pixels."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:315
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:322
-msgid "Cursor Color"
-msgstr "Cursor Color"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:317
-msgid "Check this box to color mouse cursor."
-msgstr "Check this box to color mouse cursor."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:324
-msgid "Set the color of the mouse cursor."
-msgstr "Set the color of the mouse cursor."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:347
-msgid "Pan Button"
-msgstr "Pan Button"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:349
-msgid ""
-"Select the mouse button to use for panning:\n"
-"- MMB --> Middle Mouse Button\n"
-"- RMB --> Right Mouse Button"
-msgstr ""
-"Select the mouse button to use for panning:\n"
-"- MMB --> Middle Mouse Button\n"
-"- RMB --> Right Mouse Button"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:353
-msgid "MMB"
-msgstr "MMB"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:354
-msgid "RMB"
-msgstr "RMB"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:360
-msgid "Multiple Selection"
-msgstr "Multiple Selection"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:362
-msgid "Select the key used for multiple selection."
-msgstr "Select the key used for multiple selection."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:364
-msgid "CTRL"
-msgstr "CTRL"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:365
-msgid "SHIFT"
-msgstr "SHIFT"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:376
-msgid "Delete object confirmation"
-msgstr "Delete object confirmation"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:378
-msgid ""
-"When checked the application will ask for user confirmation\n"
-"whenever the Delete object(s) event is triggered, either by\n"
-"menu shortcut or key shortcut."
-msgstr ""
-"When checked the application will ask for user confirmation\n"
-"whenever the Delete object(s) event is triggered, either by\n"
-"menu shortcut or key shortcut."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:385
-msgid "\"Open\" behavior"
-msgstr "\"Open\" behavior"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:387
-msgid ""
-"When checked the path for the last saved file is used when saving files,\n"
-"and the path for the last opened file is used when opening files.\n"
-"\n"
-"When unchecked the path for opening files is the one used last: either the\n"
-"path for saving files or the path for opening files."
-msgstr ""
-"When checked the path for the last saved file is used when saving files,\n"
-"and the path for the last opened file is used when opening files.\n"
-"\n"
-"When unchecked the path for opening files is the one used last: either the\n"
-"path for saving files or the path for opening files."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:396
-msgid "Enable ToolTips"
-msgstr "Enable ToolTips"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:398
-msgid ""
-"Check this box if you want to have toolTips displayed\n"
-"when hovering with mouse over items throughout the App."
-msgstr ""
-"Check this box if you want to have toolTips displayed\n"
-"when hovering with mouse over items throughout the App."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:405
-msgid "Allow Machinist Unsafe Settings"
-msgstr "Allow Machinist Unsafe Settings"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:407
-msgid ""
-"If checked, some of the application settings will be allowed\n"
-"to have values that are usually unsafe to use.\n"
-"Like Z travel negative values or Z Cut positive values.\n"
-"It will applied at the next application start.\n"
-"<>: Don't change this unless you know what you are doing !!!"
-msgstr ""
-"If checked, some of the application settings will be allowed\n"
-"to have values that are usually unsafe to use.\n"
-"Like Z travel negative values or Z Cut positive values.\n"
-"It will applied at the next application start.\n"
-"<>: Don't change this unless you know what you are doing !!!"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:419
-msgid "Bookmarks limit"
-msgstr "Bookmarks limit"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:421
-msgid ""
-"The maximum number of bookmarks that may be installed in the menu.\n"
-"The number of bookmarks in the bookmark manager may be greater\n"
-"but the menu will hold only so much."
-msgstr ""
-"The maximum number of bookmarks that may be installed in the menu.\n"
-"The number of bookmarks in the bookmark manager may be greater\n"
-"but the menu will hold only so much."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:430
-msgid "Activity Icon"
-msgstr "Activity Icon"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:432
-msgid "Select the GIF that show activity when FlatCAM is active."
-msgstr "Select the GIF that show activity when FlatCAM is active."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:29
-msgid "App Preferences"
-msgstr "App Preferences"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:40
-msgid ""
-"The default value for FlatCAM units.\n"
-"Whatever is selected here is set every time\n"
-"FlatCAM is started."
-msgstr ""
-"The default value for FlatCAM units.\n"
-"Whatever is selected here is set every time\n"
-"FlatCAM is started."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:44
-msgid "IN"
-msgstr "IN"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:50
-msgid "Precision MM"
-msgstr "Precision MM"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:52
-msgid ""
-"The number of decimals used throughout the application\n"
-"when the set units are in METRIC system.\n"
-"Any change here require an application restart."
-msgstr ""
-"The number of decimals used throughout the application\n"
-"when the set units are in METRIC system.\n"
-"Any change here require an application restart."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:64
-msgid "Precision INCH"
-msgstr "Precision INCH"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:66
-msgid ""
-"The number of decimals used throughout the application\n"
-"when the set units are in INCH system.\n"
-"Any change here require an application restart."
-msgstr ""
-"The number of decimals used throughout the application\n"
-"when the set units are in INCH system.\n"
-"Any change here require an application restart."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:78
-msgid "Graphic Engine"
-msgstr "Graphic Engine"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:79
-msgid ""
-"Choose what graphic engine to use in FlatCAM.\n"
-"Legacy(2D) -> reduced functionality, slow performance but enhanced "
-"compatibility.\n"
-"OpenGL(3D) -> full functionality, high performance\n"
-"Some graphic cards are too old and do not work in OpenGL(3D) mode, like:\n"
-"Intel HD3000 or older. In this case the plot area will be black therefore\n"
-"use the Legacy(2D) mode."
-msgstr ""
-"Choose what graphic engine to use in FlatCAM.\n"
-"Legacy(2D) -> reduced functionality, slow performance but enhanced "
-"compatibility.\n"
-"OpenGL(3D) -> full functionality, high performance\n"
-"Some graphic cards are too old and do not work in OpenGL(3D) mode, like:\n"
-"Intel HD3000 or older. In this case the plot area will be black therefore\n"
-"use the Legacy(2D) mode."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:85
-msgid "Legacy(2D)"
-msgstr "Legacy(2D)"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:86
-msgid "OpenGL(3D)"
-msgstr "OpenGL(3D)"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:98
-msgid "APP. LEVEL"
-msgstr "APP. LEVEL"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:99
-msgid ""
-"Choose the default level of usage for FlatCAM.\n"
-"BASIC level -> reduced functionality, best for beginner's.\n"
-"ADVANCED level -> full functionality.\n"
-"\n"
-"The choice here will influence the parameters in\n"
-"the Selected Tab for all kinds of FlatCAM objects."
-msgstr ""
-"Choose the default level of usage for FlatCAM.\n"
-"BASIC level -> reduced functionality, best for beginner's.\n"
-"ADVANCED level -> full functionality.\n"
-"\n"
-"The choice here will influence the parameters in\n"
-"the Selected Tab for all kinds of FlatCAM objects."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:105
-#: flatcamObjects/FlatCAMExcellon.py:627 flatcamObjects/FlatCAMGeometry.py:531
-#: flatcamObjects/FlatCAMGerber.py:278
-msgid "Advanced"
-msgstr "Advanced"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:111
-msgid "Portable app"
-msgstr "Portable app"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:112
-msgid ""
-"Choose if the application should run as portable.\n"
-"\n"
-"If Checked the application will run portable,\n"
-"which means that the preferences files will be saved\n"
-"in the application folder, in the lib\\config subfolder."
-msgstr ""
-"Choose if the application should run as portable.\n"
-"\n"
-"If Checked the application will run portable,\n"
-"which means that the preferences files will be saved\n"
-"in the application folder, in the lib\\config subfolder."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:125
-msgid "Languages"
-msgstr "Languages"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:126
-msgid "Set the language used throughout FlatCAM."
-msgstr "Set the language used throughout FlatCAM."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:132
-msgid "Apply Language"
-msgstr "Apply Language"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:133
-msgid ""
-"Set the language used throughout FlatCAM.\n"
-"The app will restart after click."
-msgstr ""
-"Set the language used throughout FlatCAM.\n"
-"The app will restart after click."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:147
-msgid "Startup Settings"
-msgstr "Startup Settings"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:151
-msgid "Splash Screen"
-msgstr "Splash Screen"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:153
-msgid "Enable display of the splash screen at application startup."
-msgstr "Enable display of the splash screen at application startup."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:165
-msgid "Sys Tray Icon"
-msgstr "Sys Tray Icon"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:167
-msgid "Enable display of FlatCAM icon in Sys Tray."
-msgstr "Enable display of FlatCAM icon in Sys Tray."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:172
-msgid "Show Shell"
-msgstr "Show Shell"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:174
-msgid ""
-"Check this box if you want the shell to\n"
-"start automatically at startup."
-msgstr ""
-"Check this box if you want the shell to\n"
-"start automatically at startup."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:181
-msgid "Show Project"
-msgstr "Show Project"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:183
-msgid ""
-"Check this box if you want the project/selected/tool tab area to\n"
-"to be shown automatically at startup."
-msgstr ""
-"Check this box if you want the project/selected/tool tab area to\n"
-"to be shown automatically at startup."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:189
-msgid "Version Check"
-msgstr "Version Check"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:191
-msgid ""
-"Check this box if you want to check\n"
-"for a new version automatically at startup."
-msgstr ""
-"Check this box if you want to check\n"
-"for a new version automatically at startup."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:198
-msgid "Send Statistics"
-msgstr "Send Statistics"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:200
-msgid ""
-"Check this box if you agree to send anonymous\n"
-"stats automatically at startup, to help improve FlatCAM."
-msgstr ""
-"Check this box if you agree to send anonymous\n"
-"stats automatically at startup, to help improve FlatCAM."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:214
-msgid "Workers number"
-msgstr "Workers number"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:216
-msgid ""
-"The number of Qthreads made available to the App.\n"
-"A bigger number may finish the jobs more quickly but\n"
-"depending on your computer speed, may make the App\n"
-"unresponsive. Can have a value between 2 and 16.\n"
-"Default value is 2.\n"
-"After change, it will be applied at next App start."
-msgstr ""
-"The number of Qthreads made available to the App.\n"
-"A bigger number may finish the jobs more quickly but\n"
-"depending on your computer speed, may make the App\n"
-"unresponsive. Can have a value between 2 and 16.\n"
-"Default value is 2.\n"
-"After change, it will be applied at next App start."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:230
-msgid "Geo Tolerance"
-msgstr "Geo Tolerance"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:232
-msgid ""
-"This value can counter the effect of the Circle Steps\n"
-"parameter. Default value is 0.005.\n"
-"A lower value will increase the detail both in image\n"
-"and in Gcode for the circles, with a higher cost in\n"
-"performance. Higher value will provide more\n"
-"performance at the expense of level of detail."
-msgstr ""
-"This value can counter the effect of the Circle Steps\n"
-"parameter. Default value is 0.005.\n"
-"A lower value will increase the detail both in image\n"
-"and in Gcode for the circles, with a higher cost in\n"
-"performance. Higher value will provide more\n"
-"performance at the expense of level of detail."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:252
-msgid "Save Settings"
-msgstr "Save Settings"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:256
-msgid "Save Compressed Project"
-msgstr "Save Compressed Project"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:258
-msgid ""
-"Whether to save a compressed or uncompressed project.\n"
-"When checked it will save a compressed FlatCAM project."
-msgstr ""
-"Whether to save a compressed or uncompressed project.\n"
-"When checked it will save a compressed FlatCAM project."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:267
-msgid "Compression"
-msgstr "Compression"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:269
-msgid ""
-"The level of compression used when saving\n"
-"a FlatCAM project. Higher value means better compression\n"
-"but require more RAM usage and more processing time."
-msgstr ""
-"The level of compression used when saving\n"
-"a FlatCAM project. Higher value means better compression\n"
-"but require more RAM usage and more processing time."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:280
-msgid "Enable Auto Save"
-msgstr "Enable Auto Save"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:282
-msgid ""
-"Check to enable the autosave feature.\n"
-"When enabled, the application will try to save a project\n"
-"at the set interval."
-msgstr ""
-"Check to enable the autosave feature.\n"
-"When enabled, the application will try to save a project\n"
-"at the set interval."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:292
-msgid "Interval"
-msgstr "Interval"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:294
-msgid ""
-"Time interval for autosaving. In milliseconds.\n"
-"The application will try to save periodically but only\n"
-"if the project was saved manually at least once.\n"
-"While active, some operations may block this feature."
-msgstr ""
-"Time interval for autosaving. In milliseconds.\n"
-"The application will try to save periodically but only\n"
-"if the project was saved manually at least once.\n"
-"While active, some operations may block this feature."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:310
-msgid "Text to PDF parameters"
-msgstr "Text to PDF parameters"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:312
-msgid "Used when saving text in Code Editor or in FlatCAM Document objects."
-msgstr "Used when saving text in Code Editor or in FlatCAM Document objects."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:321
-msgid "Top Margin"
-msgstr "Top Margin"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:323
-msgid "Distance between text body and the top of the PDF file."
-msgstr "Distance between text body and the top of the PDF file."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:334
-msgid "Bottom Margin"
-msgstr "Bottom Margin"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:336
-msgid "Distance between text body and the bottom of the PDF file."
-msgstr "Distance between text body and the bottom of the PDF file."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:347
-msgid "Left Margin"
-msgstr "Left Margin"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:349
-msgid "Distance between text body and the left of the PDF file."
-msgstr "Distance between text body and the left of the PDF file."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:360
-msgid "Right Margin"
-msgstr "Right Margin"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:362
-msgid "Distance between text body and the right of the PDF file."
-msgstr "Distance between text body and the right of the PDF file."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:26
-msgid "GUI Preferences"
-msgstr "GUI Preferences"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:36
-msgid "Theme"
-msgstr "Theme"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:38
-msgid ""
-"Select a theme for FlatCAM.\n"
-"It will theme the plot area."
-msgstr ""
-"Select a theme for FlatCAM.\n"
-"It will theme the plot area."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:43
-msgid "Light"
-msgstr "Light"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:44
-msgid "Dark"
-msgstr "Dark"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:51
-msgid "Use Gray Icons"
-msgstr "Use Gray Icons"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:53
-msgid ""
-"Check this box to use a set of icons with\n"
-"a lighter (gray) color. To be used when a\n"
-"full dark theme is applied."
-msgstr ""
-"Check this box to use a set of icons with\n"
-"a lighter (gray) color. To be used when a\n"
-"full dark theme is applied."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:59
-msgid "Apply Theme"
-msgstr "Apply Theme"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:61
-msgid ""
-"Select a theme for FlatCAM.\n"
-"It will theme the plot area.\n"
-"The application will restart after change."
-msgstr ""
-"Select a theme for FlatCAM.\n"
-"It will theme the plot area.\n"
-"The application will restart after change."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:73
-msgid "Layout"
-msgstr "Layout"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:75
-msgid ""
-"Select an layout for FlatCAM.\n"
-"It is applied immediately."
-msgstr ""
-"Select an layout for FlatCAM.\n"
-"It is applied immediately."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:95
-msgid "Style"
-msgstr "Style"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:97
-msgid ""
-"Select an style for FlatCAM.\n"
-"It will be applied at the next app start."
-msgstr ""
-"Select an style for FlatCAM.\n"
-"It will be applied at the next app start."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:111
-msgid "Activate HDPI Support"
-msgstr "Activate HDPI Support"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:113
-msgid ""
-"Enable High DPI support for FlatCAM.\n"
-"It will be applied at the next app start."
-msgstr ""
-"Enable High DPI support for FlatCAM.\n"
-"It will be applied at the next app start."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:127
-msgid "Display Hover Shape"
-msgstr "Display Hover Shape"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:129
-msgid ""
-"Enable display of a hover shape for FlatCAM objects.\n"
-"It is displayed whenever the mouse cursor is hovering\n"
-"over any kind of not-selected object."
-msgstr ""
-"Enable display of a hover shape for FlatCAM objects.\n"
-"It is displayed whenever the mouse cursor is hovering\n"
-"over any kind of not-selected object."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:136
-msgid "Display Selection Shape"
-msgstr "Display Selection Shape"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:138
-msgid ""
-"Enable the display of a selection shape for FlatCAM objects.\n"
-"It is displayed whenever the mouse selects an object\n"
-"either by clicking or dragging mouse from left to right or\n"
-"right to left."
-msgstr ""
-"Enable the display of a selection shape for FlatCAM objects.\n"
-"It is displayed whenever the mouse selects an object\n"
-"either by clicking or dragging mouse from left to right or\n"
-"right to left."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:151
-msgid "Left-Right Selection Color"
-msgstr "Left-Right Selection Color"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:156
-msgid "Set the line color for the 'left to right' selection box."
-msgstr "Set the line color for the 'left to right' selection box."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:172
-msgid ""
-"Set the fill color for the selection box\n"
-"in case that the selection is done from left to right.\n"
-"First 6 digits are the color and the last 2\n"
-"digits are for alpha (transparency) level."
-msgstr ""
-"Set the fill color for the selection box\n"
-"in case that the selection is done from left to right.\n"
-"First 6 digits are the color and the last 2\n"
-"digits are for alpha (transparency) level."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:192
-msgid "Set the fill transparency for the 'left to right' selection box."
-msgstr "Set the fill transparency for the 'left to right' selection box."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:216
-msgid "Right-Left Selection Color"
-msgstr "Right-Left Selection Color"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:222
-msgid "Set the line color for the 'right to left' selection box."
-msgstr "Set the line color for the 'right to left' selection box."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:239
-msgid ""
-"Set the fill color for the selection box\n"
-"in case that the selection is done from right to left.\n"
-"First 6 digits are the color and the last 2\n"
-"digits are for alpha (transparency) level."
-msgstr ""
-"Set the fill color for the selection box\n"
-"in case that the selection is done from right to left.\n"
-"First 6 digits are the color and the last 2\n"
-"digits are for alpha (transparency) level."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:259
-msgid "Set the fill transparency for selection 'right to left' box."
-msgstr "Set the fill transparency for selection 'right to left' box."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:286
-msgid "Editor Color"
-msgstr "Editor Color"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:290
-msgid "Drawing"
-msgstr "Drawing"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:292
-msgid "Set the color for the shape."
-msgstr "Set the color for the shape."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:309
-msgid "Set the color of the shape when selected."
-msgstr "Set the color of the shape when selected."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:332
-msgid "Project Items Color"
-msgstr "Project Items Color"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:336
-msgid "Enabled"
-msgstr "Enabled"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:338
-msgid "Set the color of the items in Project Tab Tree."
-msgstr "Set the color of the items in Project Tab Tree."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:352
-msgid "Disabled"
-msgstr "Disabled"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:354
-msgid ""
-"Set the color of the items in Project Tab Tree,\n"
-"for the case when the items are disabled."
-msgstr ""
-"Set the color of the items in Project Tab Tree,\n"
-"for the case when the items are disabled."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:370
-msgid "Project AutoHide"
-msgstr "Project AutoHide"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:372
-msgid ""
-"Check this box if you want the project/selected/tool tab area to\n"
-"hide automatically when there are no objects loaded and\n"
-"to show whenever a new object is created."
-msgstr ""
-"Check this box if you want the project/selected/tool tab area to\n"
-"hide automatically when there are no objects loaded and\n"
-"to show whenever a new object is created."
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:27
-msgid "Geometry Adv. Options"
-msgstr "Geometry Adv. Options"
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:35
-msgid ""
-"A list of Geometry advanced parameters.\n"
-"Those parameters are available only for\n"
-"Advanced App. Level."
-msgstr ""
-"A list of Geometry advanced parameters.\n"
-"Those parameters are available only for\n"
-"Advanced App. Level."
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:45
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:112
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:134
-#: flatcamTools/ToolCalibration.py:125 flatcamTools/ToolSolderPaste.py:240
-msgid "Toolchange X-Y"
-msgstr "Toolchange X-Y"
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:56
-msgid ""
-"Height of the tool just after starting the work.\n"
-"Delete the value if you don't need this feature."
-msgstr ""
-"Height of the tool just after starting the work.\n"
-"Delete the value if you don't need this feature."
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:158
-msgid "Segment X size"
-msgstr "Segment X size"
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:160
-msgid ""
-"The size of the trace segment on the X axis.\n"
-"Useful for auto-leveling.\n"
-"A value of 0 means no segmentation on the X axis."
-msgstr ""
-"The size of the trace segment on the X axis.\n"
-"Useful for auto-leveling.\n"
-"A value of 0 means no segmentation on the X axis."
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:174
-msgid "Segment Y size"
-msgstr "Segment Y size"
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:176
-msgid ""
-"The size of the trace segment on the Y axis.\n"
-"Useful for auto-leveling.\n"
-"A value of 0 means no segmentation on the Y axis."
-msgstr ""
-"The size of the trace segment on the Y axis.\n"
-"Useful for auto-leveling.\n"
-"A value of 0 means no segmentation on the Y axis."
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:192
-#| msgid "Area Selection"
-msgid "Area Exclusion"
-msgstr "Area Exclusion"
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:194
-#| msgid ""
-#| "A list of Excellon advanced parameters.\n"
-#| "Those parameters are available only for\n"
-#| "Advanced App. Level."
-msgid ""
-"Area exclusion parameters.\n"
-"Those parameters are available only for\n"
-"Advanced App. Level."
-msgstr ""
-"Area exclusion parameters.\n"
-"Those parameters are available only for\n"
-"Advanced App. Level."
-
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:33
-msgid "A list of Geometry Editor parameters."
-msgstr "A list of Geometry Editor parameters."
-
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:43
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:196
-msgid ""
-"Set the number of selected geometry\n"
-"items above which the utility geometry\n"
-"becomes just a selection rectangle.\n"
-"Increases the performance when moving a\n"
-"large number of geometric elements."
-msgstr ""
-"Set the number of selected geometry\n"
-"items above which the utility geometry\n"
-"becomes just a selection rectangle.\n"
-"Increases the performance when moving a\n"
-"large number of geometric elements."
-
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:27
-msgid "Geometry General"
-msgstr "Geometry General"
-
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:49
-msgid ""
-"The number of circle steps for Geometry \n"
-"circle and arc shapes linear approximation."
-msgstr ""
-"The number of circle steps for Geometry \n"
-"circle and arc shapes linear approximation."
-
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:63
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:41
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:48
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:42
-msgid "Tools Dia"
-msgstr "Tools Dia"
-
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:65
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:108
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:43
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:50
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:44
-msgid ""
-"Diameters of the tools, separated by comma.\n"
-"The value of the diameter has to use the dot decimals separator.\n"
-"Valid values: 0.3, 1.0"
-msgstr ""
-"Diameters of the tools, separated by comma.\n"
-"The value of the diameter has to use the dot decimals separator.\n"
-"Valid values: 0.3, 1.0"
-
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:80
-msgid "Geometry Object Color"
-msgstr "Geometry Object Color"
-
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:28
-msgid "Geometry Options"
-msgstr "Geometry Options"
-
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:36
-msgid ""
-"Create a CNC Job object\n"
-"tracing the contours of this\n"
-"Geometry object."
-msgstr ""
-"Create a CNC Job object\n"
-"tracing the contours of this\n"
-"Geometry object."
-
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:80
-msgid "Depth/Pass"
-msgstr "Depth/Pass"
-
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:82
-msgid ""
-"The depth to cut on each pass,\n"
-"when multidepth is enabled.\n"
-"It has positive value although\n"
-"it is a fraction from the depth\n"
-"which has negative value."
-msgstr ""
-"The depth to cut on each pass,\n"
-"when multidepth is enabled.\n"
-"It has positive value although\n"
-"it is a fraction from the depth\n"
-"which has negative value."
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:27
-msgid "Gerber Adv. Options"
-msgstr "Gerber Adv. Options"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:33
-msgid ""
-"A list of Gerber advanced parameters.\n"
-"Those parameters are available only for\n"
-"Advanced App. Level."
-msgstr ""
-"A list of Gerber advanced parameters.\n"
-"Those parameters are available only for\n"
-"Advanced App. Level."
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:52
-msgid "Table Show/Hide"
-msgstr "Table Show/Hide"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:54
-msgid ""
-"Toggle the display of the Gerber Apertures Table.\n"
-"Also, on hide, it will delete all mark shapes\n"
-"that are drawn on canvas."
-msgstr ""
-"Toggle the display of the Gerber Apertures Table.\n"
-"Also, on hide, it will delete all mark shapes\n"
-"that are drawn on canvas."
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:134
-msgid "Exterior"
-msgstr "Exterior"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:135
-msgid "Interior"
-msgstr "Interior"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:148
-msgid ""
-"Buffering type:\n"
-"- None --> best performance, fast file loading but no so good display\n"
-"- Full --> slow file loading but good visuals. This is the default.\n"
-"<>: Don't change this unless you know what you are doing !!!"
-msgstr ""
-"Buffering type:\n"
-"- None --> best performance, fast file loading but no so good display\n"
-"- Full --> slow file loading but good visuals. This is the default.\n"
-"<>: Don't change this unless you know what you are doing !!!"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:153
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:207
-#: flatcamTools/ToolFiducials.py:201 flatcamTools/ToolFilm.py:255
-#: flatcamTools/ToolProperties.py:452 flatcamTools/ToolProperties.py:455
-#: flatcamTools/ToolProperties.py:458 flatcamTools/ToolProperties.py:483
-msgid "None"
-msgstr "None"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:159
-msgid "Simplify"
-msgstr "Simplify"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:161
-msgid ""
-"When checked all the Gerber polygons will be\n"
-"loaded with simplification having a set tolerance.\n"
-"<>: Don't change this unless you know what you are doing !!!"
-msgstr ""
-"When checked all the Gerber polygons will be\n"
-"loaded with simplification having a set tolerance.\n"
-"<>: Don't change this unless you know what you are doing !!!"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:168
-msgid "Tolerance"
-msgstr "Tolerance"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:169
-msgid "Tolerance for polygon simplification."
-msgstr "Tolerance for polygon simplification."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:33
-msgid "A list of Gerber Editor parameters."
-msgstr "A list of Gerber Editor parameters."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:43
-msgid ""
-"Set the number of selected Gerber geometry\n"
-"items above which the utility geometry\n"
-"becomes just a selection rectangle.\n"
-"Increases the performance when moving a\n"
-"large number of geometric elements."
-msgstr ""
-"Set the number of selected Gerber geometry\n"
-"items above which the utility geometry\n"
-"becomes just a selection rectangle.\n"
-"Increases the performance when moving a\n"
-"large number of geometric elements."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:56
-msgid "New Aperture code"
-msgstr "New Aperture code"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:69
-msgid "New Aperture size"
-msgstr "New Aperture size"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:71
-msgid "Size for the new aperture"
-msgstr "Size for the new aperture"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:82
-msgid "New Aperture type"
-msgstr "New Aperture type"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:84
-msgid ""
-"Type for the new aperture.\n"
-"Can be 'C', 'R' or 'O'."
-msgstr ""
-"Type for the new aperture.\n"
-"Can be 'C', 'R' or 'O'."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:106
-msgid "Aperture Dimensions"
-msgstr "Aperture Dimensions"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:116
-msgid "Linear Pad Array"
-msgstr "Linear Pad Array"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:160
-msgid "Circular Pad Array"
-msgstr "Circular Pad Array"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:196
-msgid "Distance at which to buffer the Gerber element."
-msgstr "Distance at which to buffer the Gerber element."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:205
-msgid "Scale Tool"
-msgstr "Scale Tool"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:211
-msgid "Factor to scale the Gerber element."
-msgstr "Factor to scale the Gerber element."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:224
-msgid "Threshold low"
-msgstr "Threshold low"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:226
-msgid "Threshold value under which the apertures are not marked."
-msgstr "Threshold value under which the apertures are not marked."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:236
-msgid "Threshold high"
-msgstr "Threshold high"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:238
-msgid "Threshold value over which the apertures are not marked."
-msgstr "Threshold value over which the apertures are not marked."
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:27
-msgid "Gerber Export"
-msgstr "Gerber Export"
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:33
-msgid ""
-"The parameters set here are used in the file exported\n"
-"when using the File -> Export -> Export Gerber menu entry."
-msgstr ""
-"The parameters set here are used in the file exported\n"
-"when using the File -> Export -> Export Gerber menu entry."
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:44
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:50
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:84
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:90
-msgid "The units used in the Gerber file."
-msgstr "The units used in the Gerber file."
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:58
-msgid ""
-"The number of digits in the whole part of the number\n"
-"and in the fractional part of the number."
-msgstr ""
-"The number of digits in the whole part of the number\n"
-"and in the fractional part of the number."
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:71
-msgid ""
-"This numbers signify the number of digits in\n"
-"the whole part of Gerber coordinates."
-msgstr ""
-"This numbers signify the number of digits in\n"
-"the whole part of Gerber coordinates."
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:87
-msgid ""
-"This numbers signify the number of digits in\n"
-"the decimal part of Gerber coordinates."
-msgstr ""
-"This numbers signify the number of digits in\n"
-"the decimal part of Gerber coordinates."
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:99
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:109
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:100
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:110
-msgid ""
-"This sets the type of Gerber zeros.\n"
-"If LZ then Leading Zeros are removed and\n"
-"Trailing Zeros are kept.\n"
-"If TZ is checked then Trailing Zeros are removed\n"
-"and Leading Zeros are kept."
-msgstr ""
-"This sets the type of Gerber zeros.\n"
-"If LZ then Leading Zeros are removed and\n"
-"Trailing Zeros are kept.\n"
-"If TZ is checked then Trailing Zeros are removed\n"
-"and Leading Zeros are kept."
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:27
-msgid "Gerber General"
-msgstr "Gerber General"
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:45
-msgid "M-Color"
-msgstr "M-Color"
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:61
-msgid ""
-"The number of circle steps for Gerber \n"
-"circular aperture linear approximation."
-msgstr ""
-"The number of circle steps for Gerber \n"
-"circular aperture linear approximation."
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:73
-msgid "Default Values"
-msgstr "Default Values"
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:75
-msgid ""
-"Those values will be used as fallback values\n"
-"in case that they are not found in the Gerber file."
-msgstr ""
-"Those values will be used as fallback values\n"
-"in case that they are not found in the Gerber file."
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:126
-msgid "Clean Apertures"
-msgstr "Clean Apertures"
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:128
-msgid ""
-"Will remove apertures that do not have geometry\n"
-"thus lowering the number of apertures in the Gerber object."
-msgstr ""
-"Will remove apertures that do not have geometry\n"
-"thus lowering the number of apertures in the Gerber object."
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:134
-msgid "Polarity change buffer"
-msgstr "Polarity change buffer"
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:136
-msgid ""
-"Will apply extra buffering for the\n"
-"solid geometry when we have polarity changes.\n"
-"May help loading Gerber files that otherwise\n"
-"do not load correctly."
-msgstr ""
-"Will apply extra buffering for the\n"
-"solid geometry when we have polarity changes.\n"
-"May help loading Gerber files that otherwise\n"
-"do not load correctly."
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:149
-msgid "Gerber Object Color"
-msgstr "Gerber Object Color"
-
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:29
-msgid "Gerber Options"
-msgstr "Gerber Options"
-
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:107
-msgid "Combine Passes"
-msgstr "Combine Passes"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:27
-msgid "Copper Thieving Tool Options"
-msgstr "Copper Thieving Tool Options"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:39
-msgid ""
-"A tool to generate a Copper Thieving that can be added\n"
-"to a selected Gerber file."
-msgstr ""
-"A tool to generate a Copper Thieving that can be added\n"
-"to a selected Gerber file."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:47
-msgid "Number of steps (lines) used to interpolate circles."
-msgstr "Number of steps (lines) used to interpolate circles."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261
-#: flatcamTools/ToolCopperThieving.py:96 flatcamTools/ToolCopperThieving.py:431
-msgid "Clearance"
-msgstr "Clearance"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:59
-msgid ""
-"This set the distance between the copper Thieving components\n"
-"(the polygon fill may be split in multiple polygons)\n"
-"and the copper traces in the Gerber file."
-msgstr ""
-"This set the distance between the copper Thieving components\n"
-"(the polygon fill may be split in multiple polygons)\n"
-"and the copper traces in the Gerber file."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
-#: flatcamTools/ToolCopperThieving.py:126 flatcamTools/ToolNCC.py:535
-#: flatcamTools/ToolNCC.py:1316 flatcamTools/ToolNCC.py:1647
-#: flatcamTools/ToolNCC.py:1935 flatcamTools/ToolNCC.py:1990
-#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:946
-#: flatcamTools/ToolPaint.py:1452
-msgid "Area Selection"
-msgstr "Area Selection"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
-#: flatcamTools/ToolCopperThieving.py:127 flatcamTools/ToolDblSided.py:216
-#: flatcamTools/ToolNCC.py:535 flatcamTools/ToolNCC.py:1663
-#: flatcamTools/ToolNCC.py:1941 flatcamTools/ToolNCC.py:1998
-#: flatcamTools/ToolNCC.py:2306 flatcamTools/ToolNCC.py:2586
-#: flatcamTools/ToolNCC.py:3012 flatcamTools/ToolPaint.py:486
-#: flatcamTools/ToolPaint.py:931 flatcamTools/ToolPaint.py:1468
-#: tclCommands/TclCommandCopperClear.py:192 tclCommands/TclCommandPaint.py:166
-msgid "Reference Object"
-msgstr "Reference Object"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90
-#: flatcamTools/ToolCopperThieving.py:129
-msgid "Reference:"
-msgstr "Reference:"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92
-msgid ""
-"- 'Itself' - the copper Thieving extent is based on the object extent.\n"
-"- 'Area Selection' - left mouse click to start selection of the area to be "
-"filled.\n"
-"- 'Reference Object' - will do copper thieving within the area specified by "
-"another object."
-msgstr ""
-"- 'Itself' - the copper Thieving extent is based on the object extent.\n"
-"- 'Area Selection' - left mouse click to start selection of the area to be "
-"filled.\n"
-"- 'Reference Object' - will do copper thieving within the area specified by "
-"another object."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:76
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190
-#: flatcamTools/ToolCopperThieving.py:171 flatcamTools/ToolExtractDrills.py:102
-#: flatcamTools/ToolExtractDrills.py:240 flatcamTools/ToolPunchGerber.py:113
-#: flatcamTools/ToolPunchGerber.py:268
-msgid "Rectangular"
-msgstr "Rectangular"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102
-#: flatcamTools/ToolCopperThieving.py:172
-msgid "Minimal"
-msgstr "Minimal"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104
-#: flatcamTools/ToolCopperThieving.py:174 flatcamTools/ToolFilm.py:113
-msgid "Box Type:"
-msgstr "Box Type:"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106
-#: flatcamTools/ToolCopperThieving.py:176
-msgid ""
-"- 'Rectangular' - the bounding box will be of rectangular shape.\n"
-"- 'Minimal' - the bounding box will be the convex hull shape."
-msgstr ""
-"- 'Rectangular' - the bounding box will be of rectangular shape.\n"
-"- 'Minimal' - the bounding box will be the convex hull shape."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120
-#: flatcamTools/ToolCopperThieving.py:192
-msgid "Dots Grid"
-msgstr "Dots Grid"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121
-#: flatcamTools/ToolCopperThieving.py:193
-msgid "Squares Grid"
-msgstr "Squares Grid"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122
-#: flatcamTools/ToolCopperThieving.py:194
-msgid "Lines Grid"
-msgstr "Lines Grid"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124
-#: flatcamTools/ToolCopperThieving.py:196
-msgid "Fill Type:"
-msgstr "Fill Type:"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126
-#: flatcamTools/ToolCopperThieving.py:198
-msgid ""
-"- 'Solid' - copper thieving will be a solid polygon.\n"
-"- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n"
-"- 'Squares Grid' - the empty area will be filled with a pattern of squares.\n"
-"- 'Lines Grid' - the empty area will be filled with a pattern of lines."
-msgstr ""
-"- 'Solid' - copper thieving will be a solid polygon.\n"
-"- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n"
-"- 'Squares Grid' - the empty area will be filled with a pattern of squares.\n"
-"- 'Lines Grid' - the empty area will be filled with a pattern of lines."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134
-#: flatcamTools/ToolCopperThieving.py:217
-msgid "Dots Grid Parameters"
-msgstr "Dots Grid Parameters"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140
-#: flatcamTools/ToolCopperThieving.py:223
-msgid "Dot diameter in Dots Grid."
-msgstr "Dot diameter in Dots Grid."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209
-#: flatcamTools/ToolCopperThieving.py:234
-#: flatcamTools/ToolCopperThieving.py:274
-#: flatcamTools/ToolCopperThieving.py:314
-msgid "Spacing"
-msgstr "Spacing"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153
-#: flatcamTools/ToolCopperThieving.py:236
-msgid "Distance between each two dots in Dots Grid."
-msgstr "Distance between each two dots in Dots Grid."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163
-#: flatcamTools/ToolCopperThieving.py:257
-msgid "Squares Grid Parameters"
-msgstr "Squares Grid Parameters"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169
-#: flatcamTools/ToolCopperThieving.py:263
-msgid "Square side size in Squares Grid."
-msgstr "Square side size in Squares Grid."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182
-#: flatcamTools/ToolCopperThieving.py:276
-msgid "Distance between each two squares in Squares Grid."
-msgstr "Distance between each two squares in Squares Grid."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192
-#: flatcamTools/ToolCopperThieving.py:297
-msgid "Lines Grid Parameters"
-msgstr "Lines Grid Parameters"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198
-#: flatcamTools/ToolCopperThieving.py:303
-msgid "Line thickness size in Lines Grid."
-msgstr "Line thickness size in Lines Grid."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211
-#: flatcamTools/ToolCopperThieving.py:316
-msgid "Distance between each two lines in Lines Grid."
-msgstr "Distance between each two lines in Lines Grid."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221
-#: flatcamTools/ToolCopperThieving.py:354
-msgid "Robber Bar Parameters"
-msgstr "Robber Bar Parameters"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223
-#: flatcamTools/ToolCopperThieving.py:356
-msgid ""
-"Parameters used for the robber bar.\n"
-"Robber bar = copper border to help in pattern hole plating."
-msgstr ""
-"Parameters used for the robber bar.\n"
-"Robber bar = copper border to help in pattern hole plating."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231
-#: flatcamTools/ToolCopperThieving.py:364
-msgid "Bounding box margin for robber bar."
-msgstr "Bounding box margin for robber bar."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242
-#: flatcamTools/ToolCopperThieving.py:375
-msgid "Thickness"
-msgstr "Thickness"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244
-#: flatcamTools/ToolCopperThieving.py:377
-msgid "The robber bar thickness."
-msgstr "The robber bar thickness."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254
-#: flatcamTools/ToolCopperThieving.py:408
-msgid "Pattern Plating Mask"
-msgstr "Pattern Plating Mask"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256
-#: flatcamTools/ToolCopperThieving.py:410
-msgid "Generate a mask for pattern plating."
-msgstr "Generate a mask for pattern plating."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263
-#: flatcamTools/ToolCopperThieving.py:433
-msgid ""
-"The distance between the possible copper thieving elements\n"
-"and/or robber bar and the actual openings in the mask."
-msgstr ""
-"The distance between the possible copper thieving elements\n"
-"and/or robber bar and the actual openings in the mask."
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:27
-msgid "Calibration Tool Options"
-msgstr "Calibration Tool Options"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:38
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:38
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38
-#: flatcamTools/ToolCopperThieving.py:91 flatcamTools/ToolFiducials.py:151
-msgid "Parameters used for this tool."
-msgstr "Parameters used for this tool."
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:43
-#: flatcamTools/ToolCalibration.py:181
-msgid "Source Type"
-msgstr "Source Type"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:44
-#: flatcamTools/ToolCalibration.py:182
-msgid ""
-"The source of calibration points.\n"
-"It can be:\n"
-"- Object -> click a hole geo for Excellon or a pad for Gerber\n"
-"- Free -> click freely on canvas to acquire the calibration points"
-msgstr ""
-"The source of calibration points.\n"
-"It can be:\n"
-"- Object -> click a hole geo for Excellon or a pad for Gerber\n"
-"- Free -> click freely on canvas to acquire the calibration points"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:49
-#: flatcamTools/ToolCalibration.py:187
-msgid "Free"
-msgstr "Free"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:63
-#: flatcamTools/ToolCalibration.py:76
-msgid "Height (Z) for travelling between the points."
-msgstr "Height (Z) for travelling between the points."
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:75
-#: flatcamTools/ToolCalibration.py:88
-msgid "Verification Z"
-msgstr "Verification Z"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:77
-#: flatcamTools/ToolCalibration.py:90
-msgid "Height (Z) for checking the point."
-msgstr "Height (Z) for checking the point."
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:89
-#: flatcamTools/ToolCalibration.py:102
-msgid "Zero Z tool"
-msgstr "Zero Z tool"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:91
-#: flatcamTools/ToolCalibration.py:104
-msgid ""
-"Include a sequence to zero the height (Z)\n"
-"of the verification tool."
-msgstr ""
-"Include a sequence to zero the height (Z)\n"
-"of the verification tool."
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:100
-#: flatcamTools/ToolCalibration.py:113
-msgid "Height (Z) for mounting the verification probe."
-msgstr "Height (Z) for mounting the verification probe."
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:114
-#: flatcamTools/ToolCalibration.py:127
-msgid ""
-"Toolchange X,Y position.\n"
-"If no value is entered then the current\n"
-"(x, y) point will be used,"
-msgstr ""
-"Toolchange X,Y position.\n"
-"If no value is entered then the current\n"
-"(x, y) point will be used,"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:125
-#: flatcamTools/ToolCalibration.py:153
-msgid "Second point"
-msgstr "Second point"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:127
-#: flatcamTools/ToolCalibration.py:155
-msgid ""
-"Second point in the Gcode verification can be:\n"
-"- top-left -> the user will align the PCB vertically\n"
-"- bottom-right -> the user will align the PCB horizontally"
-msgstr ""
-"Second point in the Gcode verification can be:\n"
-"- top-left -> the user will align the PCB vertically\n"
-"- bottom-right -> the user will align the PCB horizontally"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:27
-msgid "Extract Drills Options"
-msgstr "Extract Drills Options"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42
-#: flatcamTools/ToolExtractDrills.py:68 flatcamTools/ToolPunchGerber.py:75
-msgid "Processed Pads Type"
-msgstr "Processed Pads Type"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44
-#: flatcamTools/ToolExtractDrills.py:70 flatcamTools/ToolPunchGerber.py:77
-msgid ""
-"The type of pads shape to be processed.\n"
-"If the PCB has many SMD pads with rectangular pads,\n"
-"disable the Rectangular aperture."
-msgstr ""
-"The type of pads shape to be processed.\n"
-"If the PCB has many SMD pads with rectangular pads,\n"
-"disable the Rectangular aperture."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54
-#: flatcamTools/ToolExtractDrills.py:80 flatcamTools/ToolPunchGerber.py:91
-msgid "Process Circular Pads."
-msgstr "Process Circular Pads."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:60
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164
-#: flatcamTools/ToolExtractDrills.py:86 flatcamTools/ToolExtractDrills.py:214
-#: flatcamTools/ToolPunchGerber.py:97 flatcamTools/ToolPunchGerber.py:242
-msgid "Oblong"
-msgstr "Oblong"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62
-#: flatcamTools/ToolExtractDrills.py:88 flatcamTools/ToolPunchGerber.py:99
-msgid "Process Oblong Pads."
-msgstr "Process Oblong Pads."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70
-#: flatcamTools/ToolExtractDrills.py:96 flatcamTools/ToolPunchGerber.py:107
-msgid "Process Square Pads."
-msgstr "Process Square Pads."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78
-#: flatcamTools/ToolExtractDrills.py:104 flatcamTools/ToolPunchGerber.py:115
-msgid "Process Rectangular Pads."
-msgstr "Process Rectangular Pads."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:84
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203
-#: flatcamTools/ToolExtractDrills.py:110 flatcamTools/ToolExtractDrills.py:253
-#: flatcamTools/ToolProperties.py:172 flatcamTools/ToolPunchGerber.py:121
-#: flatcamTools/ToolPunchGerber.py:281
-msgid "Others"
-msgstr "Others"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86
-#: flatcamTools/ToolExtractDrills.py:112 flatcamTools/ToolPunchGerber.py:123
-msgid "Process pads not in the categories above."
-msgstr "Process pads not in the categories above."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:99
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125
-#: flatcamTools/ToolExtractDrills.py:139 flatcamTools/ToolExtractDrills.py:156
-#: flatcamTools/ToolPunchGerber.py:150 flatcamTools/ToolPunchGerber.py:184
-msgid "Fixed Diameter"
-msgstr "Fixed Diameter"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:100
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142
-#: flatcamTools/ToolExtractDrills.py:140 flatcamTools/ToolExtractDrills.py:192
-#: flatcamTools/ToolPunchGerber.py:151 flatcamTools/ToolPunchGerber.py:214
-msgid "Fixed Annular Ring"
-msgstr "Fixed Annular Ring"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102
-#: flatcamTools/ToolExtractDrills.py:141 flatcamTools/ToolPunchGerber.py:152
-msgid "Proportional"
-msgstr "Proportional"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107
-#: flatcamTools/ToolExtractDrills.py:130
-msgid ""
-"The method for processing pads. Can be:\n"
-"- Fixed Diameter -> all holes will have a set size\n"
-"- Fixed Annular Ring -> all holes will have a set annular ring\n"
-"- Proportional -> each hole size will be a fraction of the pad size"
-msgstr ""
-"The method for processing pads. Can be:\n"
-"- Fixed Diameter -> all holes will have a set size\n"
-"- Fixed Annular Ring -> all holes will have a set annular ring\n"
-"- Proportional -> each hole size will be a fraction of the pad size"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135
-#: flatcamTools/ToolExtractDrills.py:166 flatcamTools/ToolPunchGerber.py:194
-msgid "Fixed hole diameter."
-msgstr "Fixed hole diameter."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:142
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144
-#: flatcamTools/ToolExtractDrills.py:194 flatcamTools/ToolPunchGerber.py:216
-msgid ""
-"The size of annular ring.\n"
-"The copper sliver between the hole exterior\n"
-"and the margin of the copper pad."
-msgstr ""
-"The size of annular ring.\n"
-"The copper sliver between the hole exterior\n"
-"and the margin of the copper pad."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153
-#: flatcamTools/ToolExtractDrills.py:203 flatcamTools/ToolPunchGerber.py:231
-msgid "The size of annular ring for circular pads."
-msgstr "The size of annular ring for circular pads."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:164
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:166
-#: flatcamTools/ToolExtractDrills.py:216 flatcamTools/ToolPunchGerber.py:244
-msgid "The size of annular ring for oblong pads."
-msgstr "The size of annular ring for oblong pads."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:177
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:179
-#: flatcamTools/ToolExtractDrills.py:229 flatcamTools/ToolPunchGerber.py:257
-msgid "The size of annular ring for square pads."
-msgstr "The size of annular ring for square pads."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:190
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:192
-#: flatcamTools/ToolExtractDrills.py:242 flatcamTools/ToolPunchGerber.py:270
-msgid "The size of annular ring for rectangular pads."
-msgstr "The size of annular ring for rectangular pads."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:203
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:205
-#: flatcamTools/ToolExtractDrills.py:255 flatcamTools/ToolPunchGerber.py:283
-msgid "The size of annular ring for other pads."
-msgstr "The size of annular ring for other pads."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:213
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:215
-#: flatcamTools/ToolExtractDrills.py:276 flatcamTools/ToolPunchGerber.py:299
-msgid "Proportional Diameter"
-msgstr "Proportional Diameter"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:222
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:224
-msgid "Factor"
-msgstr "Factor"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226
-#: flatcamTools/ToolExtractDrills.py:287 flatcamTools/ToolPunchGerber.py:310
-msgid ""
-"Proportional Diameter.\n"
-"The hole diameter will be a fraction of the pad size."
-msgstr ""
-"Proportional Diameter.\n"
-"The hole diameter will be a fraction of the pad size."
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:27
-msgid "Fiducials Tool Options"
-msgstr "Fiducials Tool Options"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45
-#: flatcamTools/ToolFiducials.py:158
-msgid ""
-"This set the fiducial diameter if fiducial type is circular,\n"
-"otherwise is the size of the fiducial.\n"
-"The soldermask opening is double than that."
-msgstr ""
-"This set the fiducial diameter if fiducial type is circular,\n"
-"otherwise is the size of the fiducial.\n"
-"The soldermask opening is double than that."
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73
-#: flatcamTools/ToolFiducials.py:186
-msgid "Auto"
-msgstr "Auto"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74
-#: flatcamTools/ToolFiducials.py:187
-msgid "Manual"
-msgstr "Manual"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76
-#: flatcamTools/ToolFiducials.py:189
-msgid "Mode:"
-msgstr "Mode:"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:78
-msgid ""
-"- 'Auto' - automatic placement of fiducials in the corners of the bounding "
-"box.\n"
-"- 'Manual' - manual placement of fiducials."
-msgstr ""
-"- 'Auto' - automatic placement of fiducials in the corners of the bounding "
-"box.\n"
-"- 'Manual' - manual placement of fiducials."
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86
-#: flatcamTools/ToolFiducials.py:199
-msgid "Up"
-msgstr "Up"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87
-#: flatcamTools/ToolFiducials.py:200
-msgid "Down"
-msgstr "Down"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90
-#: flatcamTools/ToolFiducials.py:203
-msgid "Second fiducial"
-msgstr "Second fiducial"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92
-#: flatcamTools/ToolFiducials.py:205
-msgid ""
-"The position for the second fiducial.\n"
-"- 'Up' - the order is: bottom-left, top-left, top-right.\n"
-"- 'Down' - the order is: bottom-left, bottom-right, top-right.\n"
-"- 'None' - there is no second fiducial. The order is: bottom-left, top-right."
-msgstr ""
-"The position for the second fiducial.\n"
-"- 'Up' - the order is: bottom-left, top-left, top-right.\n"
-"- 'Down' - the order is: bottom-left, bottom-right, top-right.\n"
-"- 'None' - there is no second fiducial. The order is: bottom-left, top-right."
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108
-#: flatcamTools/ToolFiducials.py:221
-msgid "Cross"
-msgstr "Cross"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109
-#: flatcamTools/ToolFiducials.py:222
-msgid "Chess"
-msgstr "Chess"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112
-#: flatcamTools/ToolFiducials.py:224
-msgid "Fiducial Type"
-msgstr "Fiducial Type"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114
-#: flatcamTools/ToolFiducials.py:226
-msgid ""
-"The type of fiducial.\n"
-"- 'Circular' - this is the regular fiducial.\n"
-"- 'Cross' - cross lines fiducial.\n"
-"- 'Chess' - chess pattern fiducial."
-msgstr ""
-"The type of fiducial.\n"
-"- 'Circular' - this is the regular fiducial.\n"
-"- 'Cross' - cross lines fiducial.\n"
-"- 'Chess' - chess pattern fiducial."
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123
-#: flatcamTools/ToolFiducials.py:235
-msgid "Line thickness"
-msgstr "Line thickness"
-
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:27
-msgid "Invert Gerber Tool Options"
-msgstr "Invert Gerber Tool Options"
-
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:33
-msgid ""
-"A tool to invert Gerber geometry from positive to negative\n"
-"and in revers."
-msgstr ""
-"A tool to invert Gerber geometry from positive to negative\n"
-"and in revers."
-
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:47
-#: flatcamTools/ToolInvertGerber.py:90
-msgid ""
-"Distance by which to avoid\n"
-"the edges of the Gerber object."
-msgstr ""
-"Distance by which to avoid\n"
-"the edges of the Gerber object."
-
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:58
-#: flatcamTools/ToolInvertGerber.py:101
-msgid "Lines Join Style"
-msgstr "Lines Join Style"
-
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:60
-#: flatcamTools/ToolInvertGerber.py:103
-msgid ""
-"The way that the lines in the object outline will be joined.\n"
-"Can be:\n"
-"- rounded -> an arc is added between two joining lines\n"
-"- square -> the lines meet in 90 degrees angle\n"
-"- bevel -> the lines are joined by a third line"
-msgstr ""
-"The way that the lines in the object outline will be joined.\n"
-"Can be:\n"
-"- rounded -> an arc is added between two joining lines\n"
-"- square -> the lines meet in 90 degrees angle\n"
-"- bevel -> the lines are joined by a third line"
-
-#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:27
-msgid "Optimal Tool Options"
-msgstr "Optimal Tool Options"
-
-#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:33
-msgid ""
-"A tool to find the minimum distance between\n"
-"every two Gerber geometric elements"
-msgstr ""
-"A tool to find the minimum distance between\n"
-"every two Gerber geometric elements"
-
-#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:48
-#: flatcamTools/ToolOptimal.py:78
-msgid "Precision"
-msgstr "Precision"
-
-#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:50
-msgid "Number of decimals for the distances and coordinates in this tool."
-msgstr "Number of decimals for the distances and coordinates in this tool."
-
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:27
-msgid "Punch Gerber Options"
-msgstr "Punch Gerber Options"
-
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:108
-#: flatcamTools/ToolPunchGerber.py:141
-msgid ""
-"The punch hole source can be:\n"
-"- Excellon Object-> the Excellon object drills center will serve as "
-"reference.\n"
-"- Fixed Diameter -> will try to use the pads center as reference adding "
-"fixed diameter holes.\n"
-"- Fixed Annular Ring -> will try to keep a set annular ring.\n"
-"- Proportional -> will make a Gerber punch hole having the diameter a "
-"percentage of the pad diameter."
-msgstr ""
-"The punch hole source can be:\n"
-"- Excellon Object-> the Excellon object drills center will serve as "
-"reference.\n"
-"- Fixed Diameter -> will try to use the pads center as reference adding "
-"fixed diameter holes.\n"
-"- Fixed Annular Ring -> will try to keep a set annular ring.\n"
-"- Proportional -> will make a Gerber punch hole having the diameter a "
-"percentage of the pad diameter."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:27
-msgid "QRCode Tool Options"
-msgstr "QRCode Tool Options"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:33
-msgid ""
-"A tool to create a QRCode that can be inserted\n"
-"into a selected Gerber file, or it can be exported as a file."
-msgstr ""
-"A tool to create a QRCode that can be inserted\n"
-"into a selected Gerber file, or it can be exported as a file."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45
-#: flatcamTools/ToolQRCode.py:100
-msgid "Version"
-msgstr "Version"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47
-#: flatcamTools/ToolQRCode.py:102
-msgid ""
-"QRCode version can have values from 1 (21x21 boxes)\n"
-"to 40 (177x177 boxes)."
-msgstr ""
-"QRCode version can have values from 1 (21x21 boxes)\n"
-"to 40 (177x177 boxes)."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58
-#: flatcamTools/ToolQRCode.py:113
-msgid "Error correction"
-msgstr "Error correction"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71
-#: flatcamTools/ToolQRCode.py:115 flatcamTools/ToolQRCode.py:126
-#, python-format
-msgid ""
-"Parameter that controls the error correction used for the QR Code.\n"
-"L = maximum 7%% errors can be corrected\n"
-"M = maximum 15%% errors can be corrected\n"
-"Q = maximum 25%% errors can be corrected\n"
-"H = maximum 30%% errors can be corrected."
-msgstr ""
-"Parameter that controls the error correction used for the QR Code.\n"
-"L = maximum 7%% errors can be corrected\n"
-"M = maximum 15%% errors can be corrected\n"
-"Q = maximum 25%% errors can be corrected\n"
-"H = maximum 30%% errors can be corrected."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81
-#: flatcamTools/ToolQRCode.py:136
-msgid "Box Size"
-msgstr "Box Size"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83
-#: flatcamTools/ToolQRCode.py:138
-msgid ""
-"Box size control the overall size of the QRcode\n"
-"by adjusting the size of each box in the code."
-msgstr ""
-"Box size control the overall size of the QRcode\n"
-"by adjusting the size of each box in the code."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94
-#: flatcamTools/ToolQRCode.py:149
-msgid "Border Size"
-msgstr "Border Size"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96
-#: flatcamTools/ToolQRCode.py:151
-msgid ""
-"Size of the QRCode border. How many boxes thick is the border.\n"
-"Default value is 4. The width of the clearance around the QRCode."
-msgstr ""
-"Size of the QRCode border. How many boxes thick is the border.\n"
-"Default value is 4. The width of the clearance around the QRCode."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107
-#: flatcamTools/ToolQRCode.py:162
-msgid "QRCode Data"
-msgstr "QRCode Data"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109
-#: flatcamTools/ToolQRCode.py:164
-msgid "QRCode Data. Alphanumeric text to be encoded in the QRCode."
-msgstr "QRCode Data. Alphanumeric text to be encoded in the QRCode."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:113
-#: flatcamTools/ToolQRCode.py:168
-msgid "Add here the text to be included in the QRCode..."
-msgstr "Add here the text to be included in the QRCode..."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:119
-#: flatcamTools/ToolQRCode.py:174
-msgid "Polarity"
-msgstr "Polarity"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121
-#: flatcamTools/ToolQRCode.py:176
-msgid ""
-"Choose the polarity of the QRCode.\n"
-"It can be drawn in a negative way (squares are clear)\n"
-"or in a positive way (squares are opaque)."
-msgstr ""
-"Choose the polarity of the QRCode.\n"
-"It can be drawn in a negative way (squares are clear)\n"
-"or in a positive way (squares are opaque)."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125
-#: flatcamTools/ToolFilm.py:296 flatcamTools/ToolQRCode.py:180
-msgid "Negative"
-msgstr "Negative"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126
-#: flatcamTools/ToolFilm.py:295 flatcamTools/ToolQRCode.py:181
-msgid "Positive"
-msgstr "Positive"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128
-#: flatcamTools/ToolQRCode.py:183
-msgid ""
-"Choose the type of QRCode to be created.\n"
-"If added on a Silkscreen Gerber file the QRCode may\n"
-"be added as positive. If it is added to a Copper Gerber\n"
-"file then perhaps the QRCode can be added as negative."
-msgstr ""
-"Choose the type of QRCode to be created.\n"
-"If added on a Silkscreen Gerber file the QRCode may\n"
-"be added as positive. If it is added to a Copper Gerber\n"
-"file then perhaps the QRCode can be added as negative."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145
-#: flatcamTools/ToolQRCode.py:194 flatcamTools/ToolQRCode.py:200
-msgid ""
-"The bounding box, meaning the empty space that surrounds\n"
-"the QRCode geometry, can have a rounded or a square shape."
-msgstr ""
-"The bounding box, meaning the empty space that surrounds\n"
-"the QRCode geometry, can have a rounded or a square shape."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:239
-#: flatcamTools/ToolQRCode.py:197 flatcamTools/ToolTransform.py:383
-msgid "Rounded"
-msgstr "Rounded"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152
-#: flatcamTools/ToolQRCode.py:228
-msgid "Fill Color"
-msgstr "Fill Color"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154
-#: flatcamTools/ToolQRCode.py:230
-msgid "Set the QRCode fill color (squares color)."
-msgstr "Set the QRCode fill color (squares color)."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:173
-#: flatcamTools/ToolQRCode.py:252
-msgid "Back Color"
-msgstr "Back Color"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:175
-#: flatcamTools/ToolQRCode.py:254
-msgid "Set the QRCode background color."
-msgstr "Set the QRCode background color."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:27
-msgid "Check Rules Tool Options"
-msgstr "Check Rules Tool Options"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:32
-msgid ""
-"A tool to check if Gerber files are within a set\n"
-"of Manufacturing Rules."
-msgstr ""
-"A tool to check if Gerber files are within a set\n"
-"of Manufacturing Rules."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:42
-#: flatcamTools/ToolRulesCheck.py:265 flatcamTools/ToolRulesCheck.py:929
-msgid "Trace Size"
-msgstr "Trace Size"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:44
-#: flatcamTools/ToolRulesCheck.py:267
-msgid "This checks if the minimum size for traces is met."
-msgstr "This checks if the minimum size for traces is met."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:54
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:74
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:94
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:114
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:134
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:154
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:174
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:194
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:216
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:236
-#: flatcamTools/ToolRulesCheck.py:277 flatcamTools/ToolRulesCheck.py:299
-#: flatcamTools/ToolRulesCheck.py:322 flatcamTools/ToolRulesCheck.py:345
-#: flatcamTools/ToolRulesCheck.py:368 flatcamTools/ToolRulesCheck.py:391
-#: flatcamTools/ToolRulesCheck.py:414 flatcamTools/ToolRulesCheck.py:437
-#: flatcamTools/ToolRulesCheck.py:462 flatcamTools/ToolRulesCheck.py:485
-msgid "Min value"
-msgstr "Min value"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:56
-#: flatcamTools/ToolRulesCheck.py:279
-msgid "Minimum acceptable trace size."
-msgstr "Minimum acceptable trace size."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:61
-#: flatcamTools/ToolRulesCheck.py:286 flatcamTools/ToolRulesCheck.py:1157
-#: flatcamTools/ToolRulesCheck.py:1187
-msgid "Copper to Copper clearance"
-msgstr "Copper to Copper clearance"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:63
-#: flatcamTools/ToolRulesCheck.py:288
-msgid ""
-"This checks if the minimum clearance between copper\n"
-"features is met."
-msgstr ""
-"This checks if the minimum clearance between copper\n"
-"features is met."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:76
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:96
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:116
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:136
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:156
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:176
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:238
-#: flatcamTools/ToolRulesCheck.py:301 flatcamTools/ToolRulesCheck.py:324
-#: flatcamTools/ToolRulesCheck.py:347 flatcamTools/ToolRulesCheck.py:370
-#: flatcamTools/ToolRulesCheck.py:393 flatcamTools/ToolRulesCheck.py:416
-#: flatcamTools/ToolRulesCheck.py:464
-msgid "Minimum acceptable clearance value."
-msgstr "Minimum acceptable clearance value."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:81
-#: flatcamTools/ToolRulesCheck.py:309 flatcamTools/ToolRulesCheck.py:1217
-#: flatcamTools/ToolRulesCheck.py:1223 flatcamTools/ToolRulesCheck.py:1236
-#: flatcamTools/ToolRulesCheck.py:1243
-msgid "Copper to Outline clearance"
-msgstr "Copper to Outline clearance"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:83
-#: flatcamTools/ToolRulesCheck.py:311
-msgid ""
-"This checks if the minimum clearance between copper\n"
-"features and the outline is met."
-msgstr ""
-"This checks if the minimum clearance between copper\n"
-"features and the outline is met."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:101
-#: flatcamTools/ToolRulesCheck.py:332
-msgid "Silk to Silk Clearance"
-msgstr "Silk to Silk Clearance"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:103
-#: flatcamTools/ToolRulesCheck.py:334
-msgid ""
-"This checks if the minimum clearance between silkscreen\n"
-"features and silkscreen features is met."
-msgstr ""
-"This checks if the minimum clearance between silkscreen\n"
-"features and silkscreen features is met."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:121
-#: flatcamTools/ToolRulesCheck.py:355 flatcamTools/ToolRulesCheck.py:1326
-#: flatcamTools/ToolRulesCheck.py:1332 flatcamTools/ToolRulesCheck.py:1350
-msgid "Silk to Solder Mask Clearance"
-msgstr "Silk to Solder Mask Clearance"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:123
-#: flatcamTools/ToolRulesCheck.py:357
-msgid ""
-"This checks if the minimum clearance between silkscreen\n"
-"features and soldermask features is met."
-msgstr ""
-"This checks if the minimum clearance between silkscreen\n"
-"features and soldermask features is met."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:141
-#: flatcamTools/ToolRulesCheck.py:378 flatcamTools/ToolRulesCheck.py:1380
-#: flatcamTools/ToolRulesCheck.py:1386 flatcamTools/ToolRulesCheck.py:1400
-#: flatcamTools/ToolRulesCheck.py:1407
-msgid "Silk to Outline Clearance"
-msgstr "Silk to Outline Clearance"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:143
-#: flatcamTools/ToolRulesCheck.py:380
-msgid ""
-"This checks if the minimum clearance between silk\n"
-"features and the outline is met."
-msgstr ""
-"This checks if the minimum clearance between silk\n"
-"features and the outline is met."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:161
-#: flatcamTools/ToolRulesCheck.py:401 flatcamTools/ToolRulesCheck.py:1418
-#: flatcamTools/ToolRulesCheck.py:1445
-msgid "Minimum Solder Mask Sliver"
-msgstr "Minimum Solder Mask Sliver"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:163
-#: flatcamTools/ToolRulesCheck.py:403
-msgid ""
-"This checks if the minimum clearance between soldermask\n"
-"features and soldermask features is met."
-msgstr ""
-"This checks if the minimum clearance between soldermask\n"
-"features and soldermask features is met."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:181
-#: flatcamTools/ToolRulesCheck.py:424 flatcamTools/ToolRulesCheck.py:1483
-#: flatcamTools/ToolRulesCheck.py:1489 flatcamTools/ToolRulesCheck.py:1505
-#: flatcamTools/ToolRulesCheck.py:1512
-msgid "Minimum Annular Ring"
-msgstr "Minimum Annular Ring"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:183
-#: flatcamTools/ToolRulesCheck.py:426
-msgid ""
-"This checks if the minimum copper ring left by drilling\n"
-"a hole into a pad is met."
-msgstr ""
-"This checks if the minimum copper ring left by drilling\n"
-"a hole into a pad is met."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:196
-#: flatcamTools/ToolRulesCheck.py:439
-msgid "Minimum acceptable ring value."
-msgstr "Minimum acceptable ring value."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:203
-#: flatcamTools/ToolRulesCheck.py:449 flatcamTools/ToolRulesCheck.py:873
-msgid "Hole to Hole Clearance"
-msgstr "Hole to Hole Clearance"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:205
-#: flatcamTools/ToolRulesCheck.py:451
-msgid ""
-"This checks if the minimum clearance between a drill hole\n"
-"and another drill hole is met."
-msgstr ""
-"This checks if the minimum clearance between a drill hole\n"
-"and another drill hole is met."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:218
-#: flatcamTools/ToolRulesCheck.py:487
-msgid "Minimum acceptable drill size."
-msgstr "Minimum acceptable drill size."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:223
-#: flatcamTools/ToolRulesCheck.py:472 flatcamTools/ToolRulesCheck.py:847
-msgid "Hole Size"
-msgstr "Hole Size"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:225
-#: flatcamTools/ToolRulesCheck.py:474
-msgid ""
-"This checks if the drill holes\n"
-"sizes are above the threshold."
-msgstr ""
-"This checks if the drill holes\n"
-"sizes are above the threshold."
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:27
-msgid "2Sided Tool Options"
-msgstr "2Sided Tool Options"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:33
-msgid ""
-"A tool to help in creating a double sided\n"
-"PCB using alignment holes."
-msgstr ""
-"A tool to help in creating a double sided\n"
-"PCB using alignment holes."
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:47
-msgid "Drill dia"
-msgstr "Drill dia"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49
-#: flatcamTools/ToolDblSided.py:363 flatcamTools/ToolDblSided.py:368
-msgid "Diameter of the drill for the alignment holes."
-msgstr "Diameter of the drill for the alignment holes."
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:56
-#: flatcamTools/ToolDblSided.py:377
-msgid "Align Axis"
-msgstr "Align Axis"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71
-#: flatcamTools/ToolDblSided.py:165 flatcamTools/ToolDblSided.py:379
-msgid "Mirror vertically (X) or horizontally (Y)."
-msgstr "Mirror vertically (X) or horizontally (Y)."
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:69
-msgid "Mirror Axis:"
-msgstr "Mirror Axis:"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:80
-#: flatcamTools/ToolDblSided.py:181
-msgid "Point"
-msgstr "Point"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:81
-#: flatcamTools/ToolDblSided.py:182
-msgid "Box"
-msgstr "Box"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:82
-msgid "Axis Ref"
-msgstr "Axis Ref"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:84
-msgid ""
-"The axis should pass through a point or cut\n"
-" a specified box (in a FlatCAM object) through \n"
-"the center."
-msgstr ""
-"The axis should pass through a point or cut\n"
-" a specified box (in a FlatCAM object) through \n"
-"the center."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:27
-msgid "Calculators Tool Options"
-msgstr "Calculators Tool Options"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31
-#: flatcamTools/ToolCalculators.py:25
-msgid "V-Shape Tool Calculator"
-msgstr "V-Shape Tool Calculator"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:33
-msgid ""
-"Calculate the tool diameter for a given V-shape tool,\n"
-"having the tip diameter, tip angle and\n"
-"depth-of-cut as parameters."
-msgstr ""
-"Calculate the tool diameter for a given V-shape tool,\n"
-"having the tip diameter, tip angle and\n"
-"depth-of-cut as parameters."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50
-#: flatcamTools/ToolCalculators.py:94
-msgid "Tip Diameter"
-msgstr "Tip Diameter"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52
-#: flatcamTools/ToolCalculators.py:102
-msgid ""
-"This is the tool tip diameter.\n"
-"It is specified by manufacturer."
-msgstr ""
-"This is the tool tip diameter.\n"
-"It is specified by manufacturer."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64
-#: flatcamTools/ToolCalculators.py:105
-msgid "Tip Angle"
-msgstr "Tip Angle"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:66
-msgid ""
-"This is the angle on the tip of the tool.\n"
-"It is specified by manufacturer."
-msgstr ""
-"This is the angle on the tip of the tool.\n"
-"It is specified by manufacturer."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:80
-msgid ""
-"This is depth to cut into material.\n"
-"In the CNCJob object it is the CutZ parameter."
-msgstr ""
-"This is depth to cut into material.\n"
-"In the CNCJob object it is the CutZ parameter."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87
-#: flatcamTools/ToolCalculators.py:27
-msgid "ElectroPlating Calculator"
-msgstr "ElectroPlating Calculator"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89
-#: flatcamTools/ToolCalculators.py:158
-msgid ""
-"This calculator is useful for those who plate the via/pad/drill holes,\n"
-"using a method like graphite ink or calcium hypophosphite ink or palladium "
-"chloride."
-msgstr ""
-"This calculator is useful for those who plate the via/pad/drill holes,\n"
-"using a method like graphite ink or calcium hypophosphite ink or palladium "
-"chloride."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:100
-#: flatcamTools/ToolCalculators.py:167
-msgid "Board Length"
-msgstr "Board Length"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102
-#: flatcamTools/ToolCalculators.py:173
-msgid "This is the board length. In centimeters."
-msgstr "This is the board length. In centimeters."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112
-#: flatcamTools/ToolCalculators.py:175
-msgid "Board Width"
-msgstr "Board Width"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114
-#: flatcamTools/ToolCalculators.py:181
-msgid "This is the board width.In centimeters."
-msgstr "This is the board width.In centimeters."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119
-#: flatcamTools/ToolCalculators.py:183
-msgid "Current Density"
-msgstr "Current Density"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125
-#: flatcamTools/ToolCalculators.py:190
-msgid ""
-"Current density to pass through the board. \n"
-"In Amps per Square Feet ASF."
-msgstr ""
-"Current density to pass through the board. \n"
-"In Amps per Square Feet ASF."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:131
-#: flatcamTools/ToolCalculators.py:193
-msgid "Copper Growth"
-msgstr "Copper Growth"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137
-#: flatcamTools/ToolCalculators.py:200
-msgid ""
-"How thick the copper growth is intended to be.\n"
-"In microns."
-msgstr ""
-"How thick the copper growth is intended to be.\n"
-"In microns."
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:28
-msgid "Cutout Tool Options"
-msgstr "Cutout Tool Options"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43
-#: flatcamTools/ToolCalculators.py:123 flatcamTools/ToolCutOut.py:129
-msgid "Tool Diameter"
-msgstr "Tool Diameter"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45
-#: flatcamTools/ToolCutOut.py:131
-msgid ""
-"Diameter of the tool used to cutout\n"
-"the PCB shape out of the surrounding material."
-msgstr ""
-"Diameter of the tool used to cutout\n"
-"the PCB shape out of the surrounding material."
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:100
-msgid "Object kind"
-msgstr "Object kind"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102
-#: flatcamTools/ToolCutOut.py:77
-msgid ""
-"Choice of what kind the object we want to cutout is.
- Single: "
-"contain a single PCB Gerber outline object.
- Panel: a panel PCB "
-"Gerber object, which is made\n"
-"out of many individual PCB outlines."
-msgstr ""
-"Choice of what kind the object we want to cutout is.
- Single: "
-"contain a single PCB Gerber outline object.
- Panel: a panel PCB "
-"Gerber object, which is made\n"
-"out of many individual PCB outlines."
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109
-#: flatcamTools/ToolCutOut.py:83
-msgid "Single"
-msgstr "Single"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110
-#: flatcamTools/ToolCutOut.py:84
-msgid "Panel"
-msgstr "Panel"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117
-#: flatcamTools/ToolCutOut.py:192
-msgid ""
-"Margin over bounds. A positive value here\n"
-"will make the cutout of the PCB further from\n"
-"the actual PCB border"
-msgstr ""
-"Margin over bounds. A positive value here\n"
-"will make the cutout of the PCB further from\n"
-"the actual PCB border"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:130
-#: flatcamTools/ToolCutOut.py:203
-msgid "Gap size"
-msgstr "Gap size"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:132
-#: flatcamTools/ToolCutOut.py:205
-msgid ""
-"The size of the bridge gaps in the cutout\n"
-"used to keep the board connected to\n"
-"the surrounding material (the one \n"
-"from which the PCB is cutout)."
-msgstr ""
-"The size of the bridge gaps in the cutout\n"
-"used to keep the board connected to\n"
-"the surrounding material (the one \n"
-"from which the PCB is cutout)."
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:146
-#: flatcamTools/ToolCutOut.py:245
-msgid "Gaps"
-msgstr "Gaps"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:148
-msgid ""
-"Number of gaps used for the cutout.\n"
-"There can be maximum 8 bridges/gaps.\n"
-"The choices are:\n"
-"- None - no gaps\n"
-"- lr - left + right\n"
-"- tb - top + bottom\n"
-"- 4 - left + right +top + bottom\n"
-"- 2lr - 2*left + 2*right\n"
-"- 2tb - 2*top + 2*bottom\n"
-"- 8 - 2*left + 2*right +2*top + 2*bottom"
-msgstr ""
-"Number of gaps used for the cutout.\n"
-"There can be maximum 8 bridges/gaps.\n"
-"The choices are:\n"
-"- None - no gaps\n"
-"- lr - left + right\n"
-"- tb - top + bottom\n"
-"- 4 - left + right +top + bottom\n"
-"- 2lr - 2*left + 2*right\n"
-"- 2tb - 2*top + 2*bottom\n"
-"- 8 - 2*left + 2*right +2*top + 2*bottom"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:170
-#: flatcamTools/ToolCutOut.py:222
-msgid "Convex Shape"
-msgstr "Convex Shape"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:172
-#: flatcamTools/ToolCutOut.py:225
-msgid ""
-"Create a convex shape surrounding the entire PCB.\n"
-"Used only if the source object type is Gerber."
-msgstr ""
-"Create a convex shape surrounding the entire PCB.\n"
-"Used only if the source object type is Gerber."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:27
-msgid "Film Tool Options"
-msgstr "Film Tool Options"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:33
-msgid ""
-"Create a PCB film from a Gerber or Geometry\n"
-"FlatCAM object.\n"
-"The file is saved in SVG format."
-msgstr ""
-"Create a PCB film from a Gerber or Geometry\n"
-"FlatCAM object.\n"
-"The file is saved in SVG format."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:44
-msgid "Film Type"
-msgstr "Film Type"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:46
-#: flatcamTools/ToolFilm.py:300
-msgid ""
-"Generate a Positive black film or a Negative film.\n"
-"Positive means that it will print the features\n"
-"with black on a white canvas.\n"
-"Negative means that it will print the features\n"
-"with white on a black canvas.\n"
-"The Film format is SVG."
-msgstr ""
-"Generate a Positive black film or a Negative film.\n"
-"Positive means that it will print the features\n"
-"with black on a white canvas.\n"
-"Negative means that it will print the features\n"
-"with white on a black canvas.\n"
-"The Film format is SVG."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:57
-msgid "Film Color"
-msgstr "Film Color"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:59
-msgid "Set the film color when positive film is selected."
-msgstr "Set the film color when positive film is selected."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:82
-#: flatcamTools/ToolFilm.py:316
-msgid "Border"
-msgstr "Border"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:84
-#: flatcamTools/ToolFilm.py:318
-msgid ""
-"Specify a border around the object.\n"
-"Only for negative film.\n"
-"It helps if we use as a Box Object the same \n"
-"object as in Film Object. It will create a thick\n"
-"black bar around the actual print allowing for a\n"
-"better delimitation of the outline features which are of\n"
-"white color like the rest and which may confound with the\n"
-"surroundings if not for this border."
-msgstr ""
-"Specify a border around the object.\n"
-"Only for negative film.\n"
-"It helps if we use as a Box Object the same \n"
-"object as in Film Object. It will create a thick\n"
-"black bar around the actual print allowing for a\n"
-"better delimitation of the outline features which are of\n"
-"white color like the rest and which may confound with the\n"
-"surroundings if not for this border."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:101
-#: flatcamTools/ToolFilm.py:283
-msgid "Scale Stroke"
-msgstr "Scale Stroke"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:103
-#: flatcamTools/ToolFilm.py:285
-msgid ""
-"Scale the line stroke thickness of each feature in the SVG file.\n"
-"It means that the line that envelope each SVG feature will be thicker or "
-"thinner,\n"
-"therefore the fine features may be more affected by this parameter."
-msgstr ""
-"Scale the line stroke thickness of each feature in the SVG file.\n"
-"It means that the line that envelope each SVG feature will be thicker or "
-"thinner,\n"
-"therefore the fine features may be more affected by this parameter."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:110
-#: flatcamTools/ToolFilm.py:141
-msgid "Film Adjustments"
-msgstr "Film Adjustments"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:112
-#: flatcamTools/ToolFilm.py:143
-msgid ""
-"Sometime the printers will distort the print shape, especially the Laser "
-"types.\n"
-"This section provide the tools to compensate for the print distortions."
-msgstr ""
-"Sometime the printers will distort the print shape, especially the Laser "
-"types.\n"
-"This section provide the tools to compensate for the print distortions."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:119
-#: flatcamTools/ToolFilm.py:150
-msgid "Scale Film geometry"
-msgstr "Scale Film geometry"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:121
-#: flatcamTools/ToolFilm.py:152
-msgid ""
-"A value greater than 1 will stretch the film\n"
-"while a value less than 1 will jolt it."
-msgstr ""
-"A value greater than 1 will stretch the film\n"
-"while a value less than 1 will jolt it."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:131
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:103
-#: flatcamTools/ToolFilm.py:162 flatcamTools/ToolTransform.py:148
-msgid "X factor"
-msgstr "X factor"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:140
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:116
-#: flatcamTools/ToolFilm.py:171 flatcamTools/ToolTransform.py:168
-msgid "Y factor"
-msgstr "Y factor"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:150
-#: flatcamTools/ToolFilm.py:189
-msgid "Skew Film geometry"
-msgstr "Skew Film geometry"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:152
-#: flatcamTools/ToolFilm.py:191
-msgid ""
-"Positive values will skew to the right\n"
-"while negative values will skew to the left."
-msgstr ""
-"Positive values will skew to the right\n"
-"while negative values will skew to the left."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:162
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:72
-#: flatcamTools/ToolFilm.py:201 flatcamTools/ToolTransform.py:97
-msgid "X angle"
-msgstr "X angle"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:171
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:86
-#: flatcamTools/ToolFilm.py:210 flatcamTools/ToolTransform.py:118
-msgid "Y angle"
-msgstr "Y angle"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:182
-#: flatcamTools/ToolFilm.py:221
-msgid ""
-"The reference point to be used as origin for the skew.\n"
-"It can be one of the four points of the geometry bounding box."
-msgstr ""
-"The reference point to be used as origin for the skew.\n"
-"It can be one of the four points of the geometry bounding box."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:185
-#: flatcamTools/ToolFiducials.py:87 flatcamTools/ToolFilm.py:224
-msgid "Bottom Left"
-msgstr "Bottom Left"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:186
-#: flatcamTools/ToolFilm.py:225
-msgid "Top Left"
-msgstr "Top Left"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:187
-#: flatcamTools/ToolFilm.py:226
-msgid "Bottom Right"
-msgstr "Bottom Right"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:188
-#: flatcamTools/ToolFilm.py:227
-msgid "Top right"
-msgstr "Top right"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196
-#: flatcamTools/ToolFilm.py:244
-msgid "Mirror Film geometry"
-msgstr "Mirror Film geometry"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:198
-#: flatcamTools/ToolFilm.py:246
-msgid "Mirror the film geometry on the selected axis or on both."
-msgstr "Mirror the film geometry on the selected axis or on both."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:212
-#: flatcamTools/ToolFilm.py:260
-msgid "Mirror axis"
-msgstr "Mirror axis"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:222
-#: flatcamTools/ToolFilm.py:405
-msgid "SVG"
-msgstr "SVG"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:223
-#: flatcamTools/ToolFilm.py:406
-msgid "PNG"
-msgstr "PNG"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:224
-#: flatcamTools/ToolFilm.py:407
-msgid "PDF"
-msgstr "PDF"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:227
-#: flatcamTools/ToolFilm.py:298 flatcamTools/ToolFilm.py:410
-msgid "Film Type:"
-msgstr "Film Type:"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:229
-#: flatcamTools/ToolFilm.py:412
-msgid ""
-"The file type of the saved film. Can be:\n"
-"- 'SVG' -> open-source vectorial format\n"
-"- 'PNG' -> raster image\n"
-"- 'PDF' -> portable document format"
-msgstr ""
-"The file type of the saved film. Can be:\n"
-"- 'SVG' -> open-source vectorial format\n"
-"- 'PNG' -> raster image\n"
-"- 'PDF' -> portable document format"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:238
-#: flatcamTools/ToolFilm.py:421
-msgid "Page Orientation"
-msgstr "Page Orientation"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:251
-#: flatcamTools/ToolFilm.py:434
-msgid "Page Size"
-msgstr "Page Size"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:252
-#: flatcamTools/ToolFilm.py:435
-msgid "A selection of standard ISO 216 page sizes."
-msgstr "A selection of standard ISO 216 page sizes."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:27
-msgid "NCC Tool Options"
-msgstr "NCC Tool Options"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:49
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:57
-msgid "Comma separated values"
-msgstr "Comma separated values"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:55
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:63
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:64
-#: flatcamTools/ToolNCC.py:215 flatcamTools/ToolNCC.py:223
-#: flatcamTools/ToolPaint.py:198 flatcamTools/ToolPaint.py:206
-msgid ""
-"Default tool type:\n"
-"- 'V-shape'\n"
-"- Circular"
-msgstr ""
-"Default tool type:\n"
-"- 'V-shape'\n"
-"- Circular"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:60
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:69
-#: flatcamTools/ToolNCC.py:220 flatcamTools/ToolPaint.py:203
-msgid "V-shape"
-msgstr "V-shape"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:100
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:109
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:107
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:116
-#: flatcamTools/ToolNCC.py:262 flatcamTools/ToolNCC.py:271
-#: flatcamTools/ToolPaint.py:245 flatcamTools/ToolPaint.py:254
-msgid ""
-"Depth of cut into material. Negative value.\n"
-"In FlatCAM units."
-msgstr ""
-"Depth of cut into material. Negative value.\n"
-"In FlatCAM units."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:119
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:125
-#: flatcamTools/ToolNCC.py:280 flatcamTools/ToolPaint.py:263
-msgid ""
-"Diameter for the new tool to add in the Tool Table.\n"
-"If the tool is V-shape type then this value is automatically\n"
-"calculated from the other parameters."
-msgstr ""
-"Diameter for the new tool to add in the Tool Table.\n"
-"If the tool is V-shape type then this value is automatically\n"
-"calculated from the other parameters."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:156
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:142
-#: flatcamTools/ToolNCC.py:174 flatcamTools/ToolPaint.py:158
-msgid "Tool order"
-msgstr "Tool order"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:157
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:167
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:143
-#: flatcamTools/ToolNCC.py:175 flatcamTools/ToolNCC.py:185
-#: flatcamTools/ToolPaint.py:159 flatcamTools/ToolPaint.py:169
-msgid ""
-"This set the way that the tools in the tools table are used.\n"
-"'No' --> means that the used order is the one in the tool table\n"
-"'Forward' --> means that the tools will be ordered from small to big\n"
-"'Reverse' --> means that the tools will ordered from big to small\n"
-"\n"
-"WARNING: using rest machining will automatically set the order\n"
-"in reverse and disable this control."
-msgstr ""
-"This set the way that the tools in the tools table are used.\n"
-"'No' --> means that the used order is the one in the tool table\n"
-"'Forward' --> means that the tools will be ordered from small to big\n"
-"'Reverse' --> means that the tools will ordered from big to small\n"
-"\n"
-"WARNING: using rest machining will automatically set the order\n"
-"in reverse and disable this control."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:165
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:151
-#: flatcamTools/ToolNCC.py:183 flatcamTools/ToolPaint.py:167
-msgid "Forward"
-msgstr "Forward"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:166
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:152
-#: flatcamTools/ToolNCC.py:184 flatcamTools/ToolPaint.py:168
-msgid "Reverse"
-msgstr "Reverse"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:266
-msgid "Offset value"
-msgstr "Offset value"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:268
-msgid ""
-"If used, it will add an offset to the copper features.\n"
-"The copper clearing will finish to a distance\n"
-"from the copper features.\n"
-"The value can be between 0.0 and 9999.9 FlatCAM units."
-msgstr ""
-"If used, it will add an offset to the copper features.\n"
-"The copper clearing will finish to a distance\n"
-"from the copper features.\n"
-"The value can be between 0.0 and 9999.9 FlatCAM units."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:288
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:244
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:245
-#: flatcamTools/ToolNCC.py:512 flatcamTools/ToolPaint.py:442
-msgid "Rest Machining"
-msgstr "Rest Machining"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:290
-#: flatcamTools/ToolNCC.py:516
-msgid ""
-"If checked, use 'rest machining'.\n"
-"Basically it will clear copper outside PCB features,\n"
-"using the biggest tool and continue with the next tools,\n"
-"from bigger to smaller, to clear areas of copper that\n"
-"could not be cleared by previous tool, until there is\n"
-"no more copper to clear or there are no more tools.\n"
-"If not checked, use the standard algorithm."
-msgstr ""
-"If checked, use 'rest machining'.\n"
-"Basically it will clear copper outside PCB features,\n"
-"using the biggest tool and continue with the next tools,\n"
-"from bigger to smaller, to clear areas of copper that\n"
-"could not be cleared by previous tool, until there is\n"
-"no more copper to clear or there are no more tools.\n"
-"If not checked, use the standard algorithm."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:313
-#: flatcamTools/ToolNCC.py:541
-msgid ""
-"Selection of area to be processed.\n"
-"- 'Itself' - the processing extent is based on the object that is "
-"processed.\n"
-" - 'Area Selection' - left mouse click to start selection of the area to be "
-"processed.\n"
-"- 'Reference Object' - will process the area specified by another object."
-msgstr ""
-"Selection of area to be processed.\n"
-"- 'Itself' - the processing extent is based on the object that is "
-"processed.\n"
-" - 'Area Selection' - left mouse click to start selection of the area to be "
-"processed.\n"
-"- 'Reference Object' - will process the area specified by another object."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:339
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303
-msgid "Normal"
-msgstr "Normal"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:340
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:304
-msgid "Progressive"
-msgstr "Progressive"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:341
-msgid "NCC Plotting"
-msgstr "NCC Plotting"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:343
-msgid ""
-"- 'Normal' - normal plotting, done at the end of the NCC job\n"
-"- 'Progressive' - after each shape is generated it will be plotted."
-msgstr ""
-"- 'Normal' - normal plotting, done at the end of the NCC job\n"
-"- 'Progressive' - after each shape is generated it will be plotted."
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:27
-msgid "Paint Tool Options"
-msgstr "Paint Tool Options"
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:33
-msgid "Parameters:"
-msgstr "Parameters:"
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:247
-#: flatcamTools/ToolPaint.py:445
-msgid ""
-"If checked, use 'rest machining'.\n"
-"Basically it will clear copper outside PCB features,\n"
-"using the biggest tool and continue with the next tools,\n"
-"from bigger to smaller, to clear areas of copper that\n"
-"could not be cleared by previous tool, until there is\n"
-"no more copper to clear or there are no more tools.\n"
-"\n"
-"If not checked, use the standard algorithm."
-msgstr ""
-"If checked, use 'rest machining'.\n"
-"Basically it will clear copper outside PCB features,\n"
-"using the biggest tool and continue with the next tools,\n"
-"from bigger to smaller, to clear areas of copper that\n"
-"could not be cleared by previous tool, until there is\n"
-"no more copper to clear or there are no more tools.\n"
-"\n"
-"If not checked, use the standard algorithm."
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:260
-#: flatcamTools/ToolPaint.py:458
-msgid ""
-"Selection of area to be processed.\n"
-"- 'Polygon Selection' - left mouse click to add/remove polygons to be "
-"processed.\n"
-"- 'Area Selection' - left mouse click to start selection of the area to be "
-"processed.\n"
-"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple "
-"areas.\n"
-"- 'All Polygons' - the process will start after click.\n"
-"- 'Reference Object' - will process the area specified by another object."
-msgstr ""
-"Selection of area to be processed.\n"
-"- 'Polygon Selection' - left mouse click to add/remove polygons to be "
-"processed.\n"
-"- 'Area Selection' - left mouse click to start selection of the area to be "
-"processed.\n"
-"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple "
-"areas.\n"
-"- 'All Polygons' - the process will start after click.\n"
-"- 'Reference Object' - will process the area specified by another object."
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
-#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:942
-#: flatcamTools/ToolPaint.py:1432 tclCommands/TclCommandPaint.py:164
-msgid "Polygon Selection"
-msgstr "Polygon Selection"
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:305
-msgid "Paint Plotting"
-msgstr "Paint Plotting"
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:307
-msgid ""
-"- 'Normal' - normal plotting, done at the end of the Paint job\n"
-"- 'Progressive' - after each shape is generated it will be plotted."
-msgstr ""
-"- 'Normal' - normal plotting, done at the end of the Paint job\n"
-"- 'Progressive' - after each shape is generated it will be plotted."
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:27
-msgid "Panelize Tool Options"
-msgstr "Panelize Tool Options"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:33
-msgid ""
-"Create an object that contains an array of (x, y) elements,\n"
-"each element is a copy of the source object spaced\n"
-"at a X distance, Y distance of each other."
-msgstr ""
-"Create an object that contains an array of (x, y) elements,\n"
-"each element is a copy of the source object spaced\n"
-"at a X distance, Y distance of each other."
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:50
-#: flatcamTools/ToolPanelize.py:163
-msgid "Spacing cols"
-msgstr "Spacing cols"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:52
-#: flatcamTools/ToolPanelize.py:165
-msgid ""
-"Spacing between columns of the desired panel.\n"
-"In current units."
-msgstr ""
-"Spacing between columns of the desired panel.\n"
-"In current units."
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:64
-#: flatcamTools/ToolPanelize.py:175
-msgid "Spacing rows"
-msgstr "Spacing rows"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:66
-#: flatcamTools/ToolPanelize.py:177
-msgid ""
-"Spacing between rows of the desired panel.\n"
-"In current units."
-msgstr ""
-"Spacing between rows of the desired panel.\n"
-"In current units."
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:77
-#: flatcamTools/ToolPanelize.py:186
-msgid "Columns"
-msgstr "Columns"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:79
-#: flatcamTools/ToolPanelize.py:188
-msgid "Number of columns of the desired panel"
-msgstr "Number of columns of the desired panel"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:89
-#: flatcamTools/ToolPanelize.py:196
-msgid "Rows"
-msgstr "Rows"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:91
-#: flatcamTools/ToolPanelize.py:198
-msgid "Number of rows of the desired panel"
-msgstr "Number of rows of the desired panel"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:98
-#: flatcamTools/ToolPanelize.py:205
-msgid "Geo"
-msgstr "Geo"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:99
-#: flatcamTools/ToolPanelize.py:206
-msgid "Panel Type"
-msgstr "Panel Type"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:101
-msgid ""
-"Choose the type of object for the panel object:\n"
-"- Gerber\n"
-"- Geometry"
-msgstr ""
-"Choose the type of object for the panel object:\n"
-"- Gerber\n"
-"- Geometry"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:110
-msgid "Constrain within"
-msgstr "Constrain within"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:112
-#: flatcamTools/ToolPanelize.py:218
-msgid ""
-"Area define by DX and DY within to constrain the panel.\n"
-"DX and DY values are in current units.\n"
-"Regardless of how many columns and rows are desired,\n"
-"the final panel will have as many columns and rows as\n"
-"they fit completely within selected area."
-msgstr ""
-"Area define by DX and DY within to constrain the panel.\n"
-"DX and DY values are in current units.\n"
-"Regardless of how many columns and rows are desired,\n"
-"the final panel will have as many columns and rows as\n"
-"they fit completely within selected area."
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:125
-#: flatcamTools/ToolPanelize.py:230
-msgid "Width (DX)"
-msgstr "Width (DX)"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:127
-#: flatcamTools/ToolPanelize.py:232
-msgid ""
-"The width (DX) within which the panel must fit.\n"
-"In current units."
-msgstr ""
-"The width (DX) within which the panel must fit.\n"
-"In current units."
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:138
-#: flatcamTools/ToolPanelize.py:241
-msgid "Height (DY)"
-msgstr "Height (DY)"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:140
-#: flatcamTools/ToolPanelize.py:243
-msgid ""
-"The height (DY)within which the panel must fit.\n"
-"In current units."
-msgstr ""
-"The height (DY)within which the panel must fit.\n"
-"In current units."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:27
-msgid "SolderPaste Tool Options"
-msgstr "SolderPaste Tool Options"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:33
-msgid ""
-"A tool to create GCode for dispensing\n"
-"solder paste onto a PCB."
-msgstr ""
-"A tool to create GCode for dispensing\n"
-"solder paste onto a PCB."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:54
-msgid "New Nozzle Dia"
-msgstr "New Nozzle Dia"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:56
-#: flatcamTools/ToolSolderPaste.py:107
-msgid "Diameter for the new Nozzle tool to add in the Tool Table"
-msgstr "Diameter for the new Nozzle tool to add in the Tool Table"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:72
-#: flatcamTools/ToolSolderPaste.py:183
-msgid "Z Dispense Start"
-msgstr "Z Dispense Start"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:74
-#: flatcamTools/ToolSolderPaste.py:185
-msgid "The height (Z) when solder paste dispensing starts."
-msgstr "The height (Z) when solder paste dispensing starts."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:85
-#: flatcamTools/ToolSolderPaste.py:195
-msgid "Z Dispense"
-msgstr "Z Dispense"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:87
-#: flatcamTools/ToolSolderPaste.py:197
-msgid "The height (Z) when doing solder paste dispensing."
-msgstr "The height (Z) when doing solder paste dispensing."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:98
-#: flatcamTools/ToolSolderPaste.py:207
-msgid "Z Dispense Stop"
-msgstr "Z Dispense Stop"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:100
-#: flatcamTools/ToolSolderPaste.py:209
-msgid "The height (Z) when solder paste dispensing stops."
-msgstr "The height (Z) when solder paste dispensing stops."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:111
-#: flatcamTools/ToolSolderPaste.py:219
-msgid "Z Travel"
-msgstr "Z Travel"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:113
-#: flatcamTools/ToolSolderPaste.py:221
-msgid ""
-"The height (Z) for travel between pads\n"
-"(without dispensing solder paste)."
-msgstr ""
-"The height (Z) for travel between pads\n"
-"(without dispensing solder paste)."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:125
-#: flatcamTools/ToolSolderPaste.py:232
-msgid "Z Toolchange"
-msgstr "Z Toolchange"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:127
-#: flatcamTools/ToolSolderPaste.py:234
-msgid "The height (Z) for tool (nozzle) change."
-msgstr "The height (Z) for tool (nozzle) change."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:136
-#: flatcamTools/ToolSolderPaste.py:242
-msgid ""
-"The X,Y location for tool (nozzle) change.\n"
-"The format is (x, y) where x and y are real numbers."
-msgstr ""
-"The X,Y location for tool (nozzle) change.\n"
-"The format is (x, y) where x and y are real numbers."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:150
-#: flatcamTools/ToolSolderPaste.py:255
-msgid "Feedrate (speed) while moving on the X-Y plane."
-msgstr "Feedrate (speed) while moving on the X-Y plane."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:163
-#: flatcamTools/ToolSolderPaste.py:267
-msgid ""
-"Feedrate (speed) while moving vertically\n"
-"(on Z plane)."
-msgstr ""
-"Feedrate (speed) while moving vertically\n"
-"(on Z plane)."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:175
-#: flatcamTools/ToolSolderPaste.py:278
-msgid "Feedrate Z Dispense"
-msgstr "Feedrate Z Dispense"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:177
-msgid ""
-"Feedrate (speed) while moving up vertically\n"
-"to Dispense position (on Z plane)."
-msgstr ""
-"Feedrate (speed) while moving up vertically\n"
-"to Dispense position (on Z plane)."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:188
-#: flatcamTools/ToolSolderPaste.py:290
-msgid "Spindle Speed FWD"
-msgstr "Spindle Speed FWD"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:190
-#: flatcamTools/ToolSolderPaste.py:292
-msgid ""
-"The dispenser speed while pushing solder paste\n"
-"through the dispenser nozzle."
-msgstr ""
-"The dispenser speed while pushing solder paste\n"
-"through the dispenser nozzle."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:202
-#: flatcamTools/ToolSolderPaste.py:303
-msgid "Dwell FWD"
-msgstr "Dwell FWD"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:204
-#: flatcamTools/ToolSolderPaste.py:305
-msgid "Pause after solder dispensing."
-msgstr "Pause after solder dispensing."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:214
-#: flatcamTools/ToolSolderPaste.py:314
-msgid "Spindle Speed REV"
-msgstr "Spindle Speed REV"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:216
-#: flatcamTools/ToolSolderPaste.py:316
-msgid ""
-"The dispenser speed while retracting solder paste\n"
-"through the dispenser nozzle."
-msgstr ""
-"The dispenser speed while retracting solder paste\n"
-"through the dispenser nozzle."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:228
-#: flatcamTools/ToolSolderPaste.py:327
-msgid "Dwell REV"
-msgstr "Dwell REV"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:230
-#: flatcamTools/ToolSolderPaste.py:329
-msgid ""
-"Pause after solder paste dispenser retracted,\n"
-"to allow pressure equilibrium."
-msgstr ""
-"Pause after solder paste dispenser retracted,\n"
-"to allow pressure equilibrium."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:239
-#: flatcamTools/ToolSolderPaste.py:337
-msgid "Files that control the GCode generation."
-msgstr "Files that control the GCode generation."
-
-#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:27
-msgid "Substractor Tool Options"
-msgstr "Substractor Tool Options"
-
-#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:33
-msgid ""
-"A tool to substract one Gerber or Geometry object\n"
-"from another of the same type."
-msgstr ""
-"A tool to substract one Gerber or Geometry object\n"
-"from another of the same type."
-
-#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:38
-#: flatcamTools/ToolSub.py:155
-msgid "Close paths"
-msgstr "Close paths"
-
-#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:39
-msgid ""
-"Checking this will close the paths cut by the Geometry substractor object."
-msgstr ""
-"Checking this will close the paths cut by the Geometry substractor object."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:27
-msgid "Transform Tool Options"
-msgstr "Transform Tool Options"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:33
-msgid ""
-"Various transformations that can be applied\n"
-"on a FlatCAM object."
-msgstr ""
-"Various transformations that can be applied\n"
-"on a FlatCAM object."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:64
-msgid "Skew"
-msgstr "Skew"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:105
-#: flatcamTools/ToolTransform.py:150
-msgid "Factor for scaling on X axis."
-msgstr "Factor for scaling on X axis."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:118
-#: flatcamTools/ToolTransform.py:170
-msgid "Factor for scaling on Y axis."
-msgstr "Factor for scaling on Y axis."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:126
-#: flatcamTools/ToolTransform.py:191
-msgid ""
-"Scale the selected object(s)\n"
-"using the Scale_X factor for both axis."
-msgstr ""
-"Scale the selected object(s)\n"
-"using the Scale_X factor for both axis."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:134
-#: flatcamTools/ToolTransform.py:198
-msgid ""
-"Scale the selected object(s)\n"
-"using the origin reference when checked,\n"
-"and the center of the biggest bounding box\n"
-"of the selected objects when unchecked."
-msgstr ""
-"Scale the selected object(s)\n"
-"using the origin reference when checked,\n"
-"and the center of the biggest bounding box\n"
-"of the selected objects when unchecked."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:150
-#: flatcamTools/ToolTransform.py:217
-msgid "X val"
-msgstr "X val"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:152
-#: flatcamTools/ToolTransform.py:219
-msgid "Distance to offset on X axis. In current units."
-msgstr "Distance to offset on X axis. In current units."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:163
-#: flatcamTools/ToolTransform.py:237
-msgid "Y val"
-msgstr "Y val"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:165
-#: flatcamTools/ToolTransform.py:239
-msgid "Distance to offset on Y axis. In current units."
-msgstr "Distance to offset on Y axis. In current units."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:171
-#: flatcamTools/ToolDblSided.py:67 flatcamTools/ToolDblSided.py:95
-#: flatcamTools/ToolDblSided.py:125
-msgid "Mirror"
-msgstr "Mirror"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:175
-#: flatcamTools/ToolTransform.py:283
-msgid "Mirror Reference"
-msgstr "Mirror Reference"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:177
-#: flatcamTools/ToolTransform.py:285
-msgid ""
-"Flip the selected object(s)\n"
-"around the point in Point Entry Field.\n"
-"\n"
-"The point coordinates can be captured by\n"
-"left click on canvas together with pressing\n"
-"SHIFT key. \n"
-"Then click Add button to insert coordinates.\n"
-"Or enter the coords in format (x, y) in the\n"
-"Point Entry field and click Flip on X(Y)"
-msgstr ""
-"Flip the selected object(s)\n"
-"around the point in Point Entry Field.\n"
-"\n"
-"The point coordinates can be captured by\n"
-"left click on canvas together with pressing\n"
-"SHIFT key. \n"
-"Then click Add button to insert coordinates.\n"
-"Or enter the coords in format (x, y) in the\n"
-"Point Entry field and click Flip on X(Y)"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:188
-msgid "Mirror Reference point"
-msgstr "Mirror Reference point"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:190
-msgid ""
-"Coordinates in format (x, y) used as reference for mirroring.\n"
-"The 'x' in (x, y) will be used when using Flip on X and\n"
-"the 'y' in (x, y) will be used when using Flip on Y and"
-msgstr ""
-"Coordinates in format (x, y) used as reference for mirroring.\n"
-"The 'x' in (x, y) will be used when using Flip on X and\n"
-"the 'y' in (x, y) will be used when using Flip on Y and"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:203
-#: flatcamTools/ToolDistance.py:496 flatcamTools/ToolDistanceMin.py:287
-#: flatcamTools/ToolTransform.py:332
-msgid "Distance"
-msgstr "Distance"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:205
-#: flatcamTools/ToolTransform.py:334
-msgid ""
-"A positive value will create the effect of dilation,\n"
-"while a negative value will create the effect of erosion.\n"
-"Each geometry element of the object will be increased\n"
-"or decreased with the 'distance'."
-msgstr ""
-"A positive value will create the effect of dilation,\n"
-"while a negative value will create the effect of erosion.\n"
-"Each geometry element of the object will be increased\n"
-"or decreased with the 'distance'."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:222
-#: flatcamTools/ToolTransform.py:359
-msgid ""
-"A positive value will create the effect of dilation,\n"
-"while a negative value will create the effect of erosion.\n"
-"Each geometry element of the object will be increased\n"
-"or decreased to fit the 'Value'. Value is a percentage\n"
-"of the initial dimension."
-msgstr ""
-"A positive value will create the effect of dilation,\n"
-"while a negative value will create the effect of erosion.\n"
-"Each geometry element of the object will be increased\n"
-"or decreased to fit the 'Value'. Value is a percentage\n"
-"of the initial dimension."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:241
-#: flatcamTools/ToolTransform.py:385
-msgid ""
-"If checked then the buffer will surround the buffered shape,\n"
-"every corner will be rounded.\n"
-"If not checked then the buffer will follow the exact geometry\n"
-"of the buffered shape."
-msgstr ""
-"If checked then the buffer will surround the buffered shape,\n"
-"every corner will be rounded.\n"
-"If not checked then the buffer will follow the exact geometry\n"
-"of the buffered shape."
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:27
-msgid "Autocompleter Keywords"
-msgstr "Autocompleter Keywords"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:30
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:40
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:30
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:30
-msgid "Restore"
-msgstr "Restore"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:31
-msgid "Restore the autocompleter keywords list to the default state."
-msgstr "Restore the autocompleter keywords list to the default state."
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:32
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:42
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:32
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:32
-msgid "Delete All"
-msgstr "Delete All"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:33
-msgid "Delete all autocompleter keywords from the list."
-msgstr "Delete all autocompleter keywords from the list."
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:41
-msgid "Keywords list"
-msgstr "Keywords list"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:43
-msgid ""
-"List of keywords used by\n"
-"the autocompleter in FlatCAM.\n"
-"The autocompleter is installed\n"
-"in the Code Editor and for the Tcl Shell."
-msgstr ""
-"List of keywords used by\n"
-"the autocompleter in FlatCAM.\n"
-"The autocompleter is installed\n"
-"in the Code Editor and for the Tcl Shell."
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:64
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:73
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:63
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:62
-msgid "Extension"
-msgstr "Extension"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:65
-msgid "A keyword to be added or deleted to the list."
-msgstr "A keyword to be added or deleted to the list."
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:73
-msgid "Add keyword"
-msgstr "Add keyword"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:74
-msgid "Add a keyword to the list"
-msgstr "Add a keyword to the list"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:75
-msgid "Delete keyword"
-msgstr "Delete keyword"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:76
-msgid "Delete a keyword from the list"
-msgstr "Delete a keyword from the list"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:27
-msgid "Excellon File associations"
-msgstr "Excellon File associations"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:41
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:31
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:31
-msgid "Restore the extension list to the default state."
-msgstr "Restore the extension list to the default state."
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:43
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:33
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:33
-msgid "Delete all extensions from the list."
-msgstr "Delete all extensions from the list."
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:51
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:41
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:41
-msgid "Extensions list"
-msgstr "Extensions list"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:53
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:43
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:43
-msgid ""
-"List of file extensions to be\n"
-"associated with FlatCAM."
-msgstr ""
-"List of file extensions to be\n"
-"associated with FlatCAM."
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:74
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:64
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:63
-msgid "A file extension to be added or deleted to the list."
-msgstr "A file extension to be added or deleted to the list."
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:82
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:72
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:71
-msgid "Add Extension"
-msgstr "Add Extension"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:83
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:73
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:72
-msgid "Add a file extension to the list"
-msgstr "Add a file extension to the list"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:84
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:74
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:73
-msgid "Delete Extension"
-msgstr "Delete Extension"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:85
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:75
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:74
-msgid "Delete a file extension from the list"
-msgstr "Delete a file extension from the list"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:92
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:82
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:81
-msgid "Apply Association"
-msgstr "Apply Association"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:93
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:83
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:82
-msgid ""
-"Apply the file associations between\n"
-"FlatCAM and the files with above extensions.\n"
-"They will be active after next logon.\n"
-"This work only in Windows."
-msgstr ""
-"Apply the file associations between\n"
-"FlatCAM and the files with above extensions.\n"
-"They will be active after next logon.\n"
-"This work only in Windows."
-
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:27
-msgid "GCode File associations"
-msgstr "GCode File associations"
-
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:27
-msgid "Gerber File associations"
-msgstr "Gerber File associations"
-
-#: flatcamObjects/FlatCAMCNCJob.py:429 flatcamObjects/FlatCAMDocument.py:71
-#: flatcamObjects/FlatCAMScript.py:82
-msgid "Basic"
-msgstr "Basic"
-
-#: flatcamObjects/FlatCAMCNCJob.py:435 flatcamObjects/FlatCAMDocument.py:75
-#: flatcamObjects/FlatCAMScript.py:86
-msgid "Advanced"
-msgstr "Advanced"
-
-#: flatcamObjects/FlatCAMCNCJob.py:478
-msgid "Plotting..."
-msgstr "Plotting..."
-
-#: flatcamObjects/FlatCAMCNCJob.py:507 flatcamObjects/FlatCAMCNCJob.py:512
-#: flatcamTools/ToolSolderPaste.py:1499
-msgid "Export Machine Code ..."
-msgstr "Export Machine Code ..."
-
-#: flatcamObjects/FlatCAMCNCJob.py:517 flatcamTools/ToolSolderPaste.py:1503
-msgid "Export Machine Code cancelled ..."
-msgstr "Export Machine Code cancelled ..."
-
-#: flatcamObjects/FlatCAMCNCJob.py:538
-msgid "Machine Code file saved to"
-msgstr "Machine Code file saved to"
-
-#: flatcamObjects/FlatCAMCNCJob.py:599 flatcamTools/ToolCalibration.py:1097
-msgid "Loaded Machine Code into Code Editor"
-msgstr "Loaded Machine Code into Code Editor"
-
-#: flatcamObjects/FlatCAMCNCJob.py:740
-msgid "This CNCJob object can't be processed because it is a"
-msgstr "This CNCJob object can't be processed because it is a"
-
-#: flatcamObjects/FlatCAMCNCJob.py:742
-msgid "CNCJob object"
-msgstr "CNCJob object"
-
-#: flatcamObjects/FlatCAMCNCJob.py:922
-msgid ""
-"G-code does not have a G94 code and we will not include the code in the "
-"'Prepend to GCode' text box"
-msgstr ""
-"G-code does not have a G94 code and we will not include the code in the "
-"'Prepend to GCode' text box"
-
-#: flatcamObjects/FlatCAMCNCJob.py:933
-msgid "Cancelled. The Toolchange Custom code is enabled but it's empty."
-msgstr "Cancelled. The Toolchange Custom code is enabled but it's empty."
-
-#: flatcamObjects/FlatCAMCNCJob.py:938
-msgid "Toolchange G-code was replaced by a custom code."
-msgstr "Toolchange G-code was replaced by a custom code."
-
-#: flatcamObjects/FlatCAMCNCJob.py:986 flatcamObjects/FlatCAMCNCJob.py:996
-msgid ""
-"The used preprocessor file has to have in it's name: 'toolchange_custom'"
-msgstr ""
-"The used preprocessor file has to have in it's name: 'toolchange_custom'"
-
-#: flatcamObjects/FlatCAMCNCJob.py:999
-msgid "There is no preprocessor file."
-msgstr "There is no preprocessor file."
-
-#: flatcamObjects/FlatCAMDocument.py:175
-msgid "Document Editor"
-msgstr "Document Editor"
-
-#: flatcamObjects/FlatCAMExcellon.py:514 flatcamObjects/FlatCAMExcellon.py:746
-#: flatcamObjects/FlatCAMGeometry.py:323 flatcamObjects/FlatCAMGeometry.py:795
-#: flatcamTools/ToolNCC.py:811 flatcamTools/ToolNCC.py:1196
-#: flatcamTools/ToolPaint.py:779 flatcamTools/ToolPaint.py:1171
-msgid "Multiple Tools"
-msgstr "Multiple Tools"
-
-#: flatcamObjects/FlatCAMExcellon.py:726
-msgid "No Tool Selected"
-msgstr "No Tool Selected"
-
-#: flatcamObjects/FlatCAMExcellon.py:1076
-#: flatcamObjects/FlatCAMExcellon.py:1168
-#: flatcamObjects/FlatCAMExcellon.py:1355
-msgid "Please select one or more tools from the list and try again."
-msgstr "Please select one or more tools from the list and try again."
-
-#: flatcamObjects/FlatCAMExcellon.py:1083
-msgid "Milling tool for DRILLS is larger than hole size. Cancelled."
-msgstr "Milling tool for DRILLS is larger than hole size. Cancelled."
-
-#: flatcamObjects/FlatCAMExcellon.py:1098
-#: flatcamObjects/FlatCAMExcellon.py:1188
-#: flatcamObjects/FlatCAMExcellon.py:1373
-#: tclCommands/TclCommandDrillcncjob.py:193
-msgid "Tool_nr"
-msgstr "Tool_nr"
-
-#: flatcamObjects/FlatCAMExcellon.py:1098
-#: flatcamObjects/FlatCAMExcellon.py:1188
-#: flatcamObjects/FlatCAMExcellon.py:1373
-#: tclCommands/TclCommandDrillcncjob.py:193
-msgid "Drills_Nr"
-msgstr "Drills_Nr"
-
-#: flatcamObjects/FlatCAMExcellon.py:1098
-#: flatcamObjects/FlatCAMExcellon.py:1188
-#: flatcamObjects/FlatCAMExcellon.py:1373
-#: tclCommands/TclCommandDrillcncjob.py:193
-msgid "Slots_Nr"
-msgstr "Slots_Nr"
-
-#: flatcamObjects/FlatCAMExcellon.py:1177
-msgid "Milling tool for SLOTS is larger than hole size. Cancelled."
-msgstr "Milling tool for SLOTS is larger than hole size. Cancelled."
-
-#: flatcamObjects/FlatCAMExcellon.py:1281
-#: flatcamObjects/FlatCAMGeometry.py:1571
-msgid "Focus Z"
-msgstr "Focus Z"
-
-#: flatcamObjects/FlatCAMExcellon.py:1300
-#: flatcamObjects/FlatCAMGeometry.py:1590
-msgid "Laser Power"
-msgstr "Laser Power"
-
-#: flatcamObjects/FlatCAMExcellon.py:1430
-#: flatcamObjects/FlatCAMGeometry.py:2027
-#: flatcamObjects/FlatCAMGeometry.py:2031
-#: flatcamObjects/FlatCAMGeometry.py:2176
-msgid "Generating CNC Code"
-msgstr "Generating CNC Code"
-
-#: flatcamObjects/FlatCAMExcellon.py:1620 flatcamTools/ToolNCC.py:918
-#: flatcamTools/ToolPaint.py:844
-msgid "Current Tool parameters were applied to all tools."
-msgstr "Current Tool parameters were applied to all tools."
-
-#: flatcamObjects/FlatCAMGeometry.py:124 flatcamObjects/FlatCAMGeometry.py:1235
-#: flatcamObjects/FlatCAMGeometry.py:1236
-#: flatcamObjects/FlatCAMGeometry.py:1245
-msgid "Iso"
-msgstr "Iso"
-
-#: flatcamObjects/FlatCAMGeometry.py:124 flatcamObjects/FlatCAMGeometry.py:464
-#: flatcamObjects/FlatCAMGeometry.py:854 flatcamObjects/FlatCAMGerber.py:891
-#: flatcamObjects/FlatCAMGerber.py:1039 flatcamTools/ToolCutOut.py:690
-#: flatcamTools/ToolCutOut.py:886 flatcamTools/ToolCutOut.py:1046
-msgid "Rough"
-msgstr "Rough"
-
-#: flatcamObjects/FlatCAMGeometry.py:124
-msgid "Finish"
-msgstr "Finish"
-
-#: flatcamObjects/FlatCAMGeometry.py:499
-msgid "Add from Tool DB"
-msgstr "Add from Tool DB"
-
-#: flatcamObjects/FlatCAMGeometry.py:873
-msgid "Tool added in Tool Table."
-msgstr "Tool added in Tool Table."
-
-#: flatcamObjects/FlatCAMGeometry.py:982 flatcamObjects/FlatCAMGeometry.py:991
-msgid "Failed. Select a tool to copy."
-msgstr "Failed. Select a tool to copy."
-
-#: flatcamObjects/FlatCAMGeometry.py:1020
-msgid "Tool was copied in Tool Table."
-msgstr "Tool was copied in Tool Table."
-
-#: flatcamObjects/FlatCAMGeometry.py:1047
-msgid "Tool was edited in Tool Table."
-msgstr "Tool was edited in Tool Table."
-
-#: flatcamObjects/FlatCAMGeometry.py:1076
-#: flatcamObjects/FlatCAMGeometry.py:1085
-msgid "Failed. Select a tool to delete."
-msgstr "Failed. Select a tool to delete."
-
-#: flatcamObjects/FlatCAMGeometry.py:1109
-msgid "Tool was deleted in Tool Table."
-msgstr "Tool was deleted in Tool Table."
-
-#: flatcamObjects/FlatCAMGeometry.py:1146
-#: flatcamObjects/FlatCAMGeometry.py:1156
-msgid ""
-"Disabled because the tool is V-shape.\n"
-"For V-shape tools the depth of cut is\n"
-"calculated from other parameters like:\n"
-"- 'V-tip Angle' -> angle at the tip of the tool\n"
-"- 'V-tip Dia' -> diameter at the tip of the tool \n"
-"- Tool Dia -> 'Dia' column found in the Tool Table\n"
-"NB: a value of zero means that Tool Dia = 'V-tip Dia'"
-msgstr ""
-"Disabled because the tool is V-shape.\n"
-"For V-shape tools the depth of cut is\n"
-"calculated from other parameters like:\n"
-"- 'V-tip Angle' -> angle at the tip of the tool\n"
-"- 'V-tip Dia' -> diameter at the tip of the tool \n"
-"- Tool Dia -> 'Dia' column found in the Tool Table\n"
-"NB: a value of zero means that Tool Dia = 'V-tip Dia'"
-
-#: flatcamObjects/FlatCAMGeometry.py:1643
-msgid "This Geometry can't be processed because it is"
-msgstr "This Geometry can't be processed because it is"
-
-#: flatcamObjects/FlatCAMGeometry.py:1643
-msgid "geometry"
-msgstr "geometry"
-
-#: flatcamObjects/FlatCAMGeometry.py:1684
-msgid "Failed. No tool selected in the tool table ..."
-msgstr "Failed. No tool selected in the tool table ..."
-
-#: flatcamObjects/FlatCAMGeometry.py:1786
-#: flatcamObjects/FlatCAMGeometry.py:1936
-msgid ""
-"Tool Offset is selected in Tool Table but no value is provided.\n"
-"Add a Tool Offset or change the Offset Type."
-msgstr ""
-"Tool Offset is selected in Tool Table but no value is provided.\n"
-"Add a Tool Offset or change the Offset Type."
-
-#: flatcamObjects/FlatCAMGeometry.py:1852
-#: flatcamObjects/FlatCAMGeometry.py:1998
-msgid "G-Code parsing in progress..."
-msgstr "G-Code parsing in progress..."
-
-#: flatcamObjects/FlatCAMGeometry.py:1854
-#: flatcamObjects/FlatCAMGeometry.py:2000
-msgid "G-Code parsing finished..."
-msgstr "G-Code parsing finished..."
-
-#: flatcamObjects/FlatCAMGeometry.py:1862
-msgid "Finished G-Code processing"
-msgstr "Finished G-Code processing"
-
-#: flatcamObjects/FlatCAMGeometry.py:1864
-#: flatcamObjects/FlatCAMGeometry.py:2012
-msgid "G-Code processing failed with error"
-msgstr "G-Code processing failed with error"
-
-#: flatcamObjects/FlatCAMGeometry.py:1906 flatcamTools/ToolSolderPaste.py:1301
-msgid "Cancelled. Empty file, it has no geometry"
-msgstr "Cancelled. Empty file, it has no geometry"
-
-#: flatcamObjects/FlatCAMGeometry.py:2010
-#: flatcamObjects/FlatCAMGeometry.py:2171
-msgid "Finished G-Code processing..."
-msgstr "Finished G-Code processing..."
-
-#: flatcamObjects/FlatCAMGeometry.py:2029
-#: flatcamObjects/FlatCAMGeometry.py:2033
-#: flatcamObjects/FlatCAMGeometry.py:2178
-msgid "CNCjob created"
-msgstr "CNCjob created"
-
-#: flatcamObjects/FlatCAMGeometry.py:2209
-#: flatcamObjects/FlatCAMGeometry.py:2218 flatcamParsers/ParseGerber.py:1867
-#: flatcamParsers/ParseGerber.py:1877
-msgid "Scale factor has to be a number: integer or float."
-msgstr "Scale factor has to be a number: integer or float."
-
-#: flatcamObjects/FlatCAMGeometry.py:2281
-msgid "Geometry Scale done."
-msgstr "Geometry Scale done."
-
-#: flatcamObjects/FlatCAMGeometry.py:2298 flatcamParsers/ParseGerber.py:1993
-msgid ""
-"An (x,y) pair of values are needed. Probable you entered only one value in "
-"the Offset field."
-msgstr ""
-"An (x,y) pair of values are needed. Probable you entered only one value in "
-"the Offset field."
-
-#: flatcamObjects/FlatCAMGeometry.py:2354
-msgid "Geometry Offset done."
-msgstr "Geometry Offset done."
-
-#: flatcamObjects/FlatCAMGeometry.py:2383
-msgid ""
-"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, "
-"y)\n"
-"but now there is only one value, not two."
-msgstr ""
-"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, "
-"y)\n"
-"but now there is only one value, not two."
-
-#: flatcamObjects/FlatCAMGeometry.py:2577
-#: flatcamTools/ToolCopperThieving.py:769 flatcamTools/ToolNCC.py:1648
-msgid "Click the start point of the area."
-msgstr "Click the start point of the area."
-
-#: flatcamObjects/FlatCAMGeometry.py:2619
-#| msgid "Click the end point of the paint area."
-msgid "Click the end point of the area."
-msgstr "Click the end point of the area."
-
-#: flatcamObjects/FlatCAMGeometry.py:2625
-#: flatcamObjects/FlatCAMGeometry.py:2677
-#: flatcamTools/ToolCopperThieving.py:826 flatcamTools/ToolNCC.py:1710
-#: flatcamTools/ToolNCC.py:1762 flatcamTools/ToolPaint.py:1606
-#: flatcamTools/ToolPaint.py:1657
-msgid "Zone added. Click to start adding next zone or right click to finish."
-msgstr "Zone added. Click to start adding next zone or right click to finish."
-
-#: flatcamObjects/FlatCAMGeometry.py:2729
-msgid "Cancelled. Area exclusion drawing was interrupted."
-msgstr "Cancelled. Area exclusion drawing was interrupted."
-
-#: flatcamObjects/FlatCAMGerber.py:494
-msgid "Buffering solid geometry"
-msgstr "Buffering solid geometry"
-
-#: flatcamObjects/FlatCAMGerber.py:503
-msgid "Done"
-msgstr "Done"
-
-#: flatcamObjects/FlatCAMGerber.py:529 flatcamObjects/FlatCAMGerber.py:555
-msgid "Operation could not be done."
-msgstr "Operation could not be done."
-
-#: flatcamObjects/FlatCAMGerber.py:572
-msgid "Isolating..."
-msgstr "Isolating..."
-
-#: flatcamObjects/FlatCAMGerber.py:631
-msgid "Click on a polygon to isolate it."
-msgstr "Click on a polygon to isolate it."
-
-#: flatcamObjects/FlatCAMGerber.py:670 flatcamObjects/FlatCAMGerber.py:774
-#: flatcamTools/ToolPaint.py:1516
-msgid "Added polygon"
-msgstr "Added polygon"
-
-#: flatcamObjects/FlatCAMGerber.py:671 flatcamObjects/FlatCAMGerber.py:776
-msgid "Click to add next polygon or right click to start isolation."
-msgstr "Click to add next polygon or right click to start isolation."
-
-#: flatcamObjects/FlatCAMGerber.py:683 flatcamTools/ToolPaint.py:1530
-msgid "Removed polygon"
-msgstr "Removed polygon"
-
-#: flatcamObjects/FlatCAMGerber.py:684
-msgid "Click to add/remove next polygon or right click to start isolation."
-msgstr "Click to add/remove next polygon or right click to start isolation."
-
-#: flatcamObjects/FlatCAMGerber.py:689 flatcamTools/ToolPaint.py:1536
-msgid "No polygon detected under click position."
-msgstr "No polygon detected under click position."
-
-#: flatcamObjects/FlatCAMGerber.py:710 flatcamTools/ToolPaint.py:1565
-msgid "List of single polygons is empty. Aborting."
-msgstr "List of single polygons is empty. Aborting."
-
-#: flatcamObjects/FlatCAMGerber.py:779
-msgid "No polygon in selection."
-msgstr "No polygon in selection."
-
-#: flatcamObjects/FlatCAMGerber.py:907 flatcamObjects/FlatCAMGerber.py:986
-#: flatcamTools/ToolNCC.py:2086 flatcamTools/ToolNCC.py:3137
-#: flatcamTools/ToolNCC.py:3516
-msgid "Isolation geometry could not be generated."
-msgstr "Isolation geometry could not be generated."
-
-#: flatcamObjects/FlatCAMGerber.py:932 flatcamObjects/FlatCAMGerber.py:1064
-msgid "Isolation geometry created"
-msgstr "Isolation geometry created"
-
-#: flatcamObjects/FlatCAMGerber.py:941 flatcamObjects/FlatCAMGerber.py:1071
-msgid "Subtracting Geo"
-msgstr "Subtracting Geo"
-
-#: flatcamObjects/FlatCAMGerber.py:1396
-msgid "Plotting Apertures"
-msgstr "Plotting Apertures"
-
-#: flatcamObjects/FlatCAMObj.py:234
-msgid "Name changed from"
-msgstr "Name changed from"
-
-#: flatcamObjects/FlatCAMObj.py:234
-msgid "to"
-msgstr "to"
-
-#: flatcamObjects/FlatCAMObj.py:245
-msgid "Offsetting..."
-msgstr "Offsetting..."
-
-#: flatcamObjects/FlatCAMObj.py:259 flatcamObjects/FlatCAMObj.py:264
-msgid "Scaling could not be executed."
-msgstr "Scaling could not be executed."
-
-#: flatcamObjects/FlatCAMObj.py:268 flatcamObjects/FlatCAMObj.py:276
-msgid "Scale done."
-msgstr "Scale done."
-
-#: flatcamObjects/FlatCAMObj.py:274
-msgid "Scaling..."
-msgstr "Scaling..."
-
-#: flatcamObjects/FlatCAMObj.py:292
-msgid "Skewing..."
-msgstr "Skewing..."
-
-#: flatcamObjects/FlatCAMScript.py:163
-msgid "Script Editor"
-msgstr "Script Editor"
-
-#: flatcamObjects/ObjectCollection.py:510
-#, python-brace-format
-msgid "Object renamed from {old} to {new}"
-msgstr "Object renamed from {old} to {new}"
-
-#: flatcamObjects/ObjectCollection.py:983
-msgid "Cause of error"
-msgstr "Cause of error"
-
-#: flatcamParsers/ParseExcellon.py:316
-msgid "This is GCODE mark"
-msgstr "This is GCODE mark"
-
-#: flatcamParsers/ParseExcellon.py:433
-msgid ""
-"No tool diameter info's. See shell.\n"
-"A tool change event: T"
-msgstr ""
-"No tool diameter info's. See shell.\n"
-"A tool change event: T"
-
-#: flatcamParsers/ParseExcellon.py:436
-msgid ""
-"was found but the Excellon file have no informations regarding the tool "
-"diameters therefore the application will try to load it by using some 'fake' "
-"diameters.\n"
-"The user needs to edit the resulting Excellon object and change the "
-"diameters to reflect the real diameters."
-msgstr ""
-"was found but the Excellon file have no informations regarding the tool "
-"diameters therefore the application will try to load it by using some 'fake' "
-"diameters.\n"
-"The user needs to edit the resulting Excellon object and change the "
-"diameters to reflect the real diameters."
-
-#: flatcamParsers/ParseExcellon.py:900
-msgid ""
-"Excellon Parser error.\n"
-"Parsing Failed. Line"
-msgstr ""
-"Excellon Parser error.\n"
-"Parsing Failed. Line"
-
-#: flatcamParsers/ParseExcellon.py:982
-msgid ""
-"Excellon.create_geometry() -> a drill location was skipped due of not having "
-"a tool associated.\n"
-"Check the resulting GCode."
-msgstr ""
-"Excellon.create_geometry() -> a drill location was skipped due of not having "
-"a tool associated.\n"
-"Check the resulting GCode."
-
-#: flatcamParsers/ParseFont.py:303
-msgid "Font not supported, try another one."
-msgstr "Font not supported, try another one."
-
-#: flatcamParsers/ParseGerber.py:426
-msgid "Gerber processing. Parsing"
-msgstr "Gerber processing. Parsing"
-
-#: flatcamParsers/ParseGerber.py:426 flatcamParsers/ParseHPGL2.py:182
-msgid "lines"
-msgstr "lines"
-
-#: flatcamParsers/ParseGerber.py:1002 flatcamParsers/ParseGerber.py:1102
-#: flatcamParsers/ParseHPGL2.py:275 flatcamParsers/ParseHPGL2.py:289
-#: flatcamParsers/ParseHPGL2.py:308 flatcamParsers/ParseHPGL2.py:332
-#: flatcamParsers/ParseHPGL2.py:367
-msgid "Coordinates missing, line ignored"
-msgstr "Coordinates missing, line ignored"
-
-#: flatcamParsers/ParseGerber.py:1004 flatcamParsers/ParseGerber.py:1104
-msgid "GERBER file might be CORRUPT. Check the file !!!"
-msgstr "GERBER file might be CORRUPT. Check the file !!!"
-
-#: flatcamParsers/ParseGerber.py:1058
-msgid ""
-"Region does not have enough points. File will be processed but there are "
-"parser errors. Line number"
-msgstr ""
-"Region does not have enough points. File will be processed but there are "
-"parser errors. Line number"
-
-#: flatcamParsers/ParseGerber.py:1488 flatcamParsers/ParseHPGL2.py:402
-msgid "Gerber processing. Joining polygons"
-msgstr "Gerber processing. Joining polygons"
-
-#: flatcamParsers/ParseGerber.py:1505
-msgid "Gerber processing. Applying Gerber polarity."
-msgstr "Gerber processing. Applying Gerber polarity."
-
-#: flatcamParsers/ParseGerber.py:1565
-msgid "Gerber Line"
-msgstr "Gerber Line"
-
-#: flatcamParsers/ParseGerber.py:1565
-msgid "Gerber Line Content"
-msgstr "Gerber Line Content"
-
-#: flatcamParsers/ParseGerber.py:1567
-msgid "Gerber Parser ERROR"
-msgstr "Gerber Parser ERROR"
-
-#: flatcamParsers/ParseGerber.py:1957
-msgid "Gerber Scale done."
-msgstr "Gerber Scale done."
-
-#: flatcamParsers/ParseGerber.py:2049
-msgid "Gerber Offset done."
-msgstr "Gerber Offset done."
-
-#: flatcamParsers/ParseGerber.py:2125
-msgid "Gerber Mirror done."
-msgstr "Gerber Mirror done."
-
-#: flatcamParsers/ParseGerber.py:2199
-msgid "Gerber Skew done."
-msgstr "Gerber Skew done."
-
-#: flatcamParsers/ParseGerber.py:2261
-msgid "Gerber Rotate done."
-msgstr "Gerber Rotate done."
-
-#: flatcamParsers/ParseGerber.py:2418
-msgid "Gerber Buffer done."
-msgstr "Gerber Buffer done."
-
-#: flatcamParsers/ParseHPGL2.py:182
-msgid "HPGL2 processing. Parsing"
-msgstr "HPGL2 processing. Parsing"
-
-#: flatcamParsers/ParseHPGL2.py:414
-msgid "HPGL2 Line"
-msgstr "HPGL2 Line"
-
-#: flatcamParsers/ParseHPGL2.py:414
-msgid "HPGL2 Line Content"
-msgstr "HPGL2 Line Content"
-
-#: flatcamParsers/ParseHPGL2.py:415
-msgid "HPGL2 Parser ERROR"
-msgstr "HPGL2 Parser ERROR"
-
-#: flatcamTools/ToolAlignObjects.py:32
-msgid "Align Objects"
-msgstr "Align Objects"
-
-#: flatcamTools/ToolAlignObjects.py:61
-msgid "MOVING object"
-msgstr "MOVING object"
-
-#: flatcamTools/ToolAlignObjects.py:65
-msgid ""
-"Specify the type of object to be aligned.\n"
-"It can be of type: Gerber or Excellon.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Object combobox."
-msgstr ""
-"Specify the type of object to be aligned.\n"
-"It can be of type: Gerber or Excellon.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Object combobox."
-
-#: flatcamTools/ToolAlignObjects.py:86
-msgid "Object to be aligned."
-msgstr "Object to be aligned."
-
-#: flatcamTools/ToolAlignObjects.py:98
-msgid "TARGET object"
-msgstr "TARGET object"
-
-#: flatcamTools/ToolAlignObjects.py:100
-msgid ""
-"Specify the type of object to be aligned to.\n"
-"It can be of type: Gerber or Excellon.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Object combobox."
-msgstr ""
-"Specify the type of object to be aligned to.\n"
-"It can be of type: Gerber or Excellon.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Object combobox."
-
-#: flatcamTools/ToolAlignObjects.py:122
-msgid "Object to be aligned to. Aligner."
-msgstr "Object to be aligned to. Aligner."
-
-#: flatcamTools/ToolAlignObjects.py:135
-msgid "Alignment Type"
-msgstr "Alignment Type"
-
-#: flatcamTools/ToolAlignObjects.py:137
-msgid ""
-"The type of alignment can be:\n"
-"- Single Point -> it require a single point of sync, the action will be a "
-"translation\n"
-"- Dual Point -> it require two points of sync, the action will be "
-"translation followed by rotation"
-msgstr ""
-"The type of alignment can be:\n"
-"- Single Point -> it require a single point of sync, the action will be a "
-"translation\n"
-"- Dual Point -> it require two points of sync, the action will be "
-"translation followed by rotation"
-
-#: flatcamTools/ToolAlignObjects.py:143
-msgid "Single Point"
-msgstr "Single Point"
-
-#: flatcamTools/ToolAlignObjects.py:144
-msgid "Dual Point"
-msgstr "Dual Point"
-
-#: flatcamTools/ToolAlignObjects.py:159
-msgid "Align Object"
-msgstr "Align Object"
-
-#: flatcamTools/ToolAlignObjects.py:161
-msgid ""
-"Align the specified object to the aligner object.\n"
-"If only one point is used then it assumes translation.\n"
-"If tho points are used it assume translation and rotation."
-msgstr ""
-"Align the specified object to the aligner object.\n"
-"If only one point is used then it assumes translation.\n"
-"If tho points are used it assume translation and rotation."
-
-#: flatcamTools/ToolAlignObjects.py:176 flatcamTools/ToolCalculators.py:246
-#: flatcamTools/ToolCalibration.py:683 flatcamTools/ToolCopperThieving.py:484
-#: flatcamTools/ToolCutOut.py:362 flatcamTools/ToolDblSided.py:471
-#: flatcamTools/ToolExtractDrills.py:310 flatcamTools/ToolFiducials.py:318
-#: flatcamTools/ToolFilm.py:520 flatcamTools/ToolInvertGerber.py:140
-#: flatcamTools/ToolNCC.py:612 flatcamTools/ToolOptimal.py:237
-#: flatcamTools/ToolPaint.py:556 flatcamTools/ToolPanelize.py:269
-#: flatcamTools/ToolPunchGerber.py:339 flatcamTools/ToolQRCode.py:314
-#: flatcamTools/ToolRulesCheck.py:516 flatcamTools/ToolSolderPaste.py:473
-#: flatcamTools/ToolSub.py:176 flatcamTools/ToolTransform.py:398
-msgid "Reset Tool"
-msgstr "Reset Tool"
-
-#: flatcamTools/ToolAlignObjects.py:178 flatcamTools/ToolCalculators.py:248
-#: flatcamTools/ToolCalibration.py:685 flatcamTools/ToolCopperThieving.py:486
-#: flatcamTools/ToolCutOut.py:364 flatcamTools/ToolDblSided.py:473
-#: flatcamTools/ToolExtractDrills.py:312 flatcamTools/ToolFiducials.py:320
-#: flatcamTools/ToolFilm.py:522 flatcamTools/ToolInvertGerber.py:142
-#: flatcamTools/ToolNCC.py:614 flatcamTools/ToolOptimal.py:239
-#: flatcamTools/ToolPaint.py:558 flatcamTools/ToolPanelize.py:271
-#: flatcamTools/ToolPunchGerber.py:341 flatcamTools/ToolQRCode.py:316
-#: flatcamTools/ToolRulesCheck.py:518 flatcamTools/ToolSolderPaste.py:475
-#: flatcamTools/ToolSub.py:178 flatcamTools/ToolTransform.py:400
-msgid "Will reset the tool parameters."
-msgstr "Will reset the tool parameters."
-
-#: flatcamTools/ToolAlignObjects.py:244
-msgid "Align Tool"
-msgstr "Align Tool"
-
-#: flatcamTools/ToolAlignObjects.py:289
-msgid "There is no aligned FlatCAM object selected..."
-msgstr "There is no aligned FlatCAM object selected..."
-
-#: flatcamTools/ToolAlignObjects.py:299
-msgid "There is no aligner FlatCAM object selected..."
-msgstr "There is no aligner FlatCAM object selected..."
-
-#: flatcamTools/ToolAlignObjects.py:325 flatcamTools/ToolAlignObjects.py:385
-msgid "First Point"
-msgstr "First Point"
-
-#: flatcamTools/ToolAlignObjects.py:325 flatcamTools/ToolAlignObjects.py:400
-msgid "Click on the START point."
-msgstr "Click on the START point."
-
-#: flatcamTools/ToolAlignObjects.py:380 flatcamTools/ToolCalibration.py:920
-msgid "Cancelled by user request."
-msgstr "Cancelled by user request."
-
-#: flatcamTools/ToolAlignObjects.py:385 flatcamTools/ToolAlignObjects.py:407
-msgid "Click on the DESTINATION point."
-msgstr "Click on the DESTINATION point."
-
-#: flatcamTools/ToolAlignObjects.py:385 flatcamTools/ToolAlignObjects.py:400
-#: flatcamTools/ToolAlignObjects.py:407
-msgid "Or right click to cancel."
-msgstr "Or right click to cancel."
-
-#: flatcamTools/ToolAlignObjects.py:400 flatcamTools/ToolAlignObjects.py:407
-#: flatcamTools/ToolFiducials.py:111
-msgid "Second Point"
-msgstr "Second Point"
-
-#: flatcamTools/ToolCalculators.py:24
-msgid "Calculators"
-msgstr "Calculators"
-
-#: flatcamTools/ToolCalculators.py:26
-msgid "Units Calculator"
-msgstr "Units Calculator"
-
-#: flatcamTools/ToolCalculators.py:70
-msgid "Here you enter the value to be converted from INCH to MM"
-msgstr "Here you enter the value to be converted from INCH to MM"
-
-#: flatcamTools/ToolCalculators.py:75
-msgid "Here you enter the value to be converted from MM to INCH"
-msgstr "Here you enter the value to be converted from MM to INCH"
-
-#: flatcamTools/ToolCalculators.py:111
-msgid ""
-"This is the angle of the tip of the tool.\n"
-"It is specified by manufacturer."
-msgstr ""
-"This is the angle of the tip of the tool.\n"
-"It is specified by manufacturer."
-
-#: flatcamTools/ToolCalculators.py:120
-msgid ""
-"This is the depth to cut into the material.\n"
-"In the CNCJob is the CutZ parameter."
-msgstr ""
-"This is the depth to cut into the material.\n"
-"In the CNCJob is the CutZ parameter."
-
-#: flatcamTools/ToolCalculators.py:128
-msgid ""
-"This is the tool diameter to be entered into\n"
-"FlatCAM Gerber section.\n"
-"In the CNCJob section it is called >Tool dia<."
-msgstr ""
-"This is the tool diameter to be entered into\n"
-"FlatCAM Gerber section.\n"
-"In the CNCJob section it is called >Tool dia<."
-
-#: flatcamTools/ToolCalculators.py:139 flatcamTools/ToolCalculators.py:235
-msgid "Calculate"
-msgstr "Calculate"
-
-#: flatcamTools/ToolCalculators.py:142
-msgid ""
-"Calculate either the Cut Z or the effective tool diameter,\n"
-" depending on which is desired and which is known. "
-msgstr ""
-"Calculate either the Cut Z or the effective tool diameter,\n"
-" depending on which is desired and which is known. "
-
-#: flatcamTools/ToolCalculators.py:205
-msgid "Current Value"
-msgstr "Current Value"
-
-#: flatcamTools/ToolCalculators.py:212
-msgid ""
-"This is the current intensity value\n"
-"to be set on the Power Supply. In Amps."
-msgstr ""
-"This is the current intensity value\n"
-"to be set on the Power Supply. In Amps."
-
-#: flatcamTools/ToolCalculators.py:216
-msgid "Time"
-msgstr "Time"
-
-#: flatcamTools/ToolCalculators.py:223
-msgid ""
-"This is the calculated time required for the procedure.\n"
-"In minutes."
-msgstr ""
-"This is the calculated time required for the procedure.\n"
-"In minutes."
-
-#: flatcamTools/ToolCalculators.py:238
-msgid ""
-"Calculate the current intensity value and the procedure time,\n"
-"depending on the parameters above"
-msgstr ""
-"Calculate the current intensity value and the procedure time,\n"
-"depending on the parameters above"
-
-#: flatcamTools/ToolCalculators.py:299
-msgid "Calc. Tool"
-msgstr "Calc. Tool"
-
-#: flatcamTools/ToolCalibration.py:67
-msgid "GCode Parameters"
-msgstr "GCode Parameters"
-
-#: flatcamTools/ToolCalibration.py:69
-msgid "Parameters used when creating the GCode in this tool."
-msgstr "Parameters used when creating the GCode in this tool."
-
-#: flatcamTools/ToolCalibration.py:173
-msgid "STEP 1: Acquire Calibration Points"
-msgstr "STEP 1: Acquire Calibration Points"
-
-#: flatcamTools/ToolCalibration.py:175
-msgid ""
-"Pick four points by clicking on canvas.\n"
-"Those four points should be in the four\n"
-"(as much as possible) corners of the object."
-msgstr ""
-"Pick four points by clicking on canvas.\n"
-"Those four points should be in the four\n"
-"(as much as possible) corners of the object."
-
-#: flatcamTools/ToolCalibration.py:193 flatcamTools/ToolFilm.py:76
-#: flatcamTools/ToolImage.py:54 flatcamTools/ToolPanelize.py:78
-#: flatcamTools/ToolProperties.py:177
-msgid "Object Type"
-msgstr "Object Type"
-
-#: flatcamTools/ToolCalibration.py:210
-msgid "Source object selection"
-msgstr "Source object selection"
-
-#: flatcamTools/ToolCalibration.py:212
-msgid "FlatCAM Object to be used as a source for reference points."
-msgstr "FlatCAM Object to be used as a source for reference points."
-
-#: flatcamTools/ToolCalibration.py:218
-msgid "Calibration Points"
-msgstr "Calibration Points"
-
-#: flatcamTools/ToolCalibration.py:220
-msgid ""
-"Contain the expected calibration points and the\n"
-"ones measured."
-msgstr ""
-"Contain the expected calibration points and the\n"
-"ones measured."
-
-#: flatcamTools/ToolCalibration.py:235 flatcamTools/ToolSub.py:76
-#: flatcamTools/ToolSub.py:131
-msgid "Target"
-msgstr "Target"
-
-#: flatcamTools/ToolCalibration.py:236
-msgid "Found Delta"
-msgstr "Found Delta"
-
-#: flatcamTools/ToolCalibration.py:248
-msgid "Bot Left X"
-msgstr "Bot Left X"
-
-#: flatcamTools/ToolCalibration.py:257
-msgid "Bot Left Y"
-msgstr "Bot Left Y"
-
-#: flatcamTools/ToolCalibration.py:275
-msgid "Bot Right X"
-msgstr "Bot Right X"
-
-#: flatcamTools/ToolCalibration.py:285
-msgid "Bot Right Y"
-msgstr "Bot Right Y"
-
-#: flatcamTools/ToolCalibration.py:300
-msgid "Top Left X"
-msgstr "Top Left X"
-
-#: flatcamTools/ToolCalibration.py:309
-msgid "Top Left Y"
-msgstr "Top Left Y"
-
-#: flatcamTools/ToolCalibration.py:324
-msgid "Top Right X"
-msgstr "Top Right X"
-
-#: flatcamTools/ToolCalibration.py:334
-msgid "Top Right Y"
-msgstr "Top Right Y"
-
-#: flatcamTools/ToolCalibration.py:367
-msgid "Get Points"
-msgstr "Get Points"
-
-#: flatcamTools/ToolCalibration.py:369
-msgid ""
-"Pick four points by clicking on canvas if the source choice\n"
-"is 'free' or inside the object geometry if the source is 'object'.\n"
-"Those four points should be in the four squares of\n"
-"the object."
-msgstr ""
-"Pick four points by clicking on canvas if the source choice\n"
-"is 'free' or inside the object geometry if the source is 'object'.\n"
-"Those four points should be in the four squares of\n"
-"the object."
-
-#: flatcamTools/ToolCalibration.py:390
-msgid "STEP 2: Verification GCode"
-msgstr "STEP 2: Verification GCode"
-
-#: flatcamTools/ToolCalibration.py:392 flatcamTools/ToolCalibration.py:405
-msgid ""
-"Generate GCode file to locate and align the PCB by using\n"
-"the four points acquired above.\n"
-"The points sequence is:\n"
-"- first point -> set the origin\n"
-"- second point -> alignment point. Can be: top-left or bottom-right.\n"
-"- third point -> check point. Can be: top-left or bottom-right.\n"
-"- forth point -> final verification point. Just for evaluation."
-msgstr ""
-"Generate GCode file to locate and align the PCB by using\n"
-"the four points acquired above.\n"
-"The points sequence is:\n"
-"- first point -> set the origin\n"
-"- second point -> alignment point. Can be: top-left or bottom-right.\n"
-"- third point -> check point. Can be: top-left or bottom-right.\n"
-"- forth point -> final verification point. Just for evaluation."
-
-#: flatcamTools/ToolCalibration.py:403 flatcamTools/ToolSolderPaste.py:348
-msgid "Generate GCode"
-msgstr "Generate GCode"
-
-#: flatcamTools/ToolCalibration.py:429
-msgid "STEP 3: Adjustments"
-msgstr "STEP 3: Adjustments"
-
-#: flatcamTools/ToolCalibration.py:431 flatcamTools/ToolCalibration.py:440
-msgid ""
-"Calculate Scale and Skew factors based on the differences (delta)\n"
-"found when checking the PCB pattern. The differences must be filled\n"
-"in the fields Found (Delta)."
-msgstr ""
-"Calculate Scale and Skew factors based on the differences (delta)\n"
-"found when checking the PCB pattern. The differences must be filled\n"
-"in the fields Found (Delta)."
-
-#: flatcamTools/ToolCalibration.py:438
-msgid "Calculate Factors"
-msgstr "Calculate Factors"
-
-#: flatcamTools/ToolCalibration.py:460
-msgid "STEP 4: Adjusted GCode"
-msgstr "STEP 4: Adjusted GCode"
-
-#: flatcamTools/ToolCalibration.py:462
-msgid ""
-"Generate verification GCode file adjusted with\n"
-"the factors above."
-msgstr ""
-"Generate verification GCode file adjusted with\n"
-"the factors above."
-
-#: flatcamTools/ToolCalibration.py:467
-msgid "Scale Factor X:"
-msgstr "Scale Factor X:"
-
-#: flatcamTools/ToolCalibration.py:479
-msgid "Scale Factor Y:"
-msgstr "Scale Factor Y:"
-
-#: flatcamTools/ToolCalibration.py:491
-msgid "Apply Scale Factors"
-msgstr "Apply Scale Factors"
-
-#: flatcamTools/ToolCalibration.py:493
-msgid "Apply Scale factors on the calibration points."
-msgstr "Apply Scale factors on the calibration points."
-
-#: flatcamTools/ToolCalibration.py:503
-msgid "Skew Angle X:"
-msgstr "Skew Angle X:"
-
-#: flatcamTools/ToolCalibration.py:516
-msgid "Skew Angle Y:"
-msgstr "Skew Angle Y:"
-
-#: flatcamTools/ToolCalibration.py:529
-msgid "Apply Skew Factors"
-msgstr "Apply Skew Factors"
-
-#: flatcamTools/ToolCalibration.py:531
-msgid "Apply Skew factors on the calibration points."
-msgstr "Apply Skew factors on the calibration points."
-
-#: flatcamTools/ToolCalibration.py:600
-msgid "Generate Adjusted GCode"
-msgstr "Generate Adjusted GCode"
-
-#: flatcamTools/ToolCalibration.py:602
-msgid ""
-"Generate verification GCode file adjusted with\n"
-"the factors set above.\n"
-"The GCode parameters can be readjusted\n"
-"before clicking this button."
-msgstr ""
-"Generate verification GCode file adjusted with\n"
-"the factors set above.\n"
-"The GCode parameters can be readjusted\n"
-"before clicking this button."
-
-#: flatcamTools/ToolCalibration.py:623
-msgid "STEP 5: Calibrate FlatCAM Objects"
-msgstr "STEP 5: Calibrate FlatCAM Objects"
-
-#: flatcamTools/ToolCalibration.py:625
-msgid ""
-"Adjust the FlatCAM objects\n"
-"with the factors determined and verified above."
-msgstr ""
-"Adjust the FlatCAM objects\n"
-"with the factors determined and verified above."
-
-#: flatcamTools/ToolCalibration.py:637
-msgid "Adjusted object type"
-msgstr "Adjusted object type"
-
-#: flatcamTools/ToolCalibration.py:638
-msgid "Type of the FlatCAM Object to be adjusted."
-msgstr "Type of the FlatCAM Object to be adjusted."
-
-#: flatcamTools/ToolCalibration.py:651
-msgid "Adjusted object selection"
-msgstr "Adjusted object selection"
-
-#: flatcamTools/ToolCalibration.py:653
-msgid "The FlatCAM Object to be adjusted."
-msgstr "The FlatCAM Object to be adjusted."
-
-#: flatcamTools/ToolCalibration.py:660
-msgid "Calibrate"
-msgstr "Calibrate"
-
-#: flatcamTools/ToolCalibration.py:662
-msgid ""
-"Adjust (scale and/or skew) the objects\n"
-"with the factors determined above."
-msgstr ""
-"Adjust (scale and/or skew) the objects\n"
-"with the factors determined above."
-
-#: flatcamTools/ToolCalibration.py:770 flatcamTools/ToolCalibration.py:771
-msgid "Origin"
-msgstr "Origin"
-
-#: flatcamTools/ToolCalibration.py:800
-msgid "Tool initialized"
-msgstr "Tool initialized"
-
-#: flatcamTools/ToolCalibration.py:838
-msgid "There is no source FlatCAM object selected..."
-msgstr "There is no source FlatCAM object selected..."
-
-#: flatcamTools/ToolCalibration.py:859
-msgid "Get First calibration point. Bottom Left..."
-msgstr "Get First calibration point. Bottom Left..."
-
-#: flatcamTools/ToolCalibration.py:926
-msgid "Get Second calibration point. Bottom Right (Top Left)..."
-msgstr "Get Second calibration point. Bottom Right (Top Left)..."
-
-#: flatcamTools/ToolCalibration.py:930
-msgid "Get Third calibration point. Top Left (Bottom Right)..."
-msgstr "Get Third calibration point. Top Left (Bottom Right)..."
-
-#: flatcamTools/ToolCalibration.py:934
-msgid "Get Forth calibration point. Top Right..."
-msgstr "Get Forth calibration point. Top Right..."
-
-#: flatcamTools/ToolCalibration.py:938
-msgid "Done. All four points have been acquired."
-msgstr "Done. All four points have been acquired."
-
-#: flatcamTools/ToolCalibration.py:969
-msgid "Verification GCode for FlatCAM Calibration Tool"
-msgstr "Verification GCode for FlatCAM Calibration Tool"
-
-#: flatcamTools/ToolCalibration.py:981 flatcamTools/ToolCalibration.py:1067
-msgid "Gcode Viewer"
-msgstr "Gcode Viewer"
-
-#: flatcamTools/ToolCalibration.py:997
-msgid "Cancelled. Four points are needed for GCode generation."
-msgstr "Cancelled. Four points are needed for GCode generation."
-
-#: flatcamTools/ToolCalibration.py:1253 flatcamTools/ToolCalibration.py:1349
-msgid "There is no FlatCAM object selected..."
-msgstr "There is no FlatCAM object selected..."
-
-#: flatcamTools/ToolCopperThieving.py:76 flatcamTools/ToolFiducials.py:261
-msgid "Gerber Object to which will be added a copper thieving."
-msgstr "Gerber Object to which will be added a copper thieving."
-
-#: flatcamTools/ToolCopperThieving.py:98
-msgid ""
-"This set the distance between the copper thieving components\n"
-"(the polygon fill may be split in multiple polygons)\n"
-"and the copper traces in the Gerber file."
-msgstr ""
-"This set the distance between the copper thieving components\n"
-"(the polygon fill may be split in multiple polygons)\n"
-"and the copper traces in the Gerber file."
-
-#: flatcamTools/ToolCopperThieving.py:131
-msgid ""
-"- 'Itself' - the copper thieving extent is based on the object extent.\n"
-"- 'Area Selection' - left mouse click to start selection of the area to be "
-"filled.\n"
-"- 'Reference Object' - will do copper thieving within the area specified by "
-"another object."
-msgstr ""
-"- 'Itself' - the copper thieving extent is based on the object extent.\n"
-"- 'Area Selection' - left mouse click to start selection of the area to be "
-"filled.\n"
-"- 'Reference Object' - will do copper thieving within the area specified by "
-"another object."
-
-#: flatcamTools/ToolCopperThieving.py:138 flatcamTools/ToolNCC.py:552
-#: flatcamTools/ToolPaint.py:496
-msgid "Ref. Type"
-msgstr "Ref. Type"
-
-#: flatcamTools/ToolCopperThieving.py:140
-msgid ""
-"The type of FlatCAM object to be used as copper thieving reference.\n"
-"It can be Gerber, Excellon or Geometry."
-msgstr ""
-"The type of FlatCAM object to be used as copper thieving reference.\n"
-"It can be Gerber, Excellon or Geometry."
-
-#: flatcamTools/ToolCopperThieving.py:149 flatcamTools/ToolNCC.py:562
-#: flatcamTools/ToolPaint.py:506
-msgid "Ref. Object"
-msgstr "Ref. Object"
-
-#: flatcamTools/ToolCopperThieving.py:151 flatcamTools/ToolNCC.py:564
-#: flatcamTools/ToolPaint.py:508
-msgid "The FlatCAM object to be used as non copper clearing reference."
-msgstr "The FlatCAM object to be used as non copper clearing reference."
-
-#: flatcamTools/ToolCopperThieving.py:327
-msgid "Insert Copper thieving"
-msgstr "Insert Copper thieving"
-
-#: flatcamTools/ToolCopperThieving.py:329
-msgid ""
-"Will add a polygon (may be split in multiple parts)\n"
-"that will surround the actual Gerber traces at a certain distance."
-msgstr ""
-"Will add a polygon (may be split in multiple parts)\n"
-"that will surround the actual Gerber traces at a certain distance."
-
-#: flatcamTools/ToolCopperThieving.py:388
-msgid "Insert Robber Bar"
-msgstr "Insert Robber Bar"
-
-#: flatcamTools/ToolCopperThieving.py:390
-msgid ""
-"Will add a polygon with a defined thickness\n"
-"that will surround the actual Gerber object\n"
-"at a certain distance.\n"
-"Required when doing holes pattern plating."
-msgstr ""
-"Will add a polygon with a defined thickness\n"
-"that will surround the actual Gerber object\n"
-"at a certain distance.\n"
-"Required when doing holes pattern plating."
-
-#: flatcamTools/ToolCopperThieving.py:414
-msgid "Select Soldermask object"
-msgstr "Select Soldermask object"
-
-#: flatcamTools/ToolCopperThieving.py:416
-msgid ""
-"Gerber Object with the soldermask.\n"
-"It will be used as a base for\n"
-"the pattern plating mask."
-msgstr ""
-"Gerber Object with the soldermask.\n"
-"It will be used as a base for\n"
-"the pattern plating mask."
-
-#: flatcamTools/ToolCopperThieving.py:445
-msgid "Plated area"
-msgstr "Plated area"
-
-#: flatcamTools/ToolCopperThieving.py:447
-msgid ""
-"The area to be plated by pattern plating.\n"
-"Basically is made from the openings in the plating mask.\n"
-"\n"
-"<> - the calculated area is actually a bit larger\n"
-"due of the fact that the soldermask openings are by design\n"
-"a bit larger than the copper pads, and this area is\n"
-"calculated from the soldermask openings."
-msgstr ""
-"The area to be plated by pattern plating.\n"
-"Basically is made from the openings in the plating mask.\n"
-"\n"
-"<> - the calculated area is actually a bit larger\n"
-"due of the fact that the soldermask openings are by design\n"
-"a bit larger than the copper pads, and this area is\n"
-"calculated from the soldermask openings."
-
-#: flatcamTools/ToolCopperThieving.py:458
-msgid "mm"
-msgstr "mm"
-
-#: flatcamTools/ToolCopperThieving.py:460
-msgid "in"
-msgstr "in"
-
-#: flatcamTools/ToolCopperThieving.py:467
-msgid "Generate pattern plating mask"
-msgstr "Generate pattern plating mask"
-
-#: flatcamTools/ToolCopperThieving.py:469
-msgid ""
-"Will add to the soldermask gerber geometry\n"
-"the geometries of the copper thieving and/or\n"
-"the robber bar if those were generated."
-msgstr ""
-"Will add to the soldermask gerber geometry\n"
-"the geometries of the copper thieving and/or\n"
-"the robber bar if those were generated."
-
-#: flatcamTools/ToolCopperThieving.py:625
-#: flatcamTools/ToolCopperThieving.py:650
-msgid "Lines Grid works only for 'itself' reference ..."
-msgstr "Lines Grid works only for 'itself' reference ..."
-
-#: flatcamTools/ToolCopperThieving.py:636
-msgid "Solid fill selected."
-msgstr "Solid fill selected."
-
-#: flatcamTools/ToolCopperThieving.py:641
-msgid "Dots grid fill selected."
-msgstr "Dots grid fill selected."
-
-#: flatcamTools/ToolCopperThieving.py:646
-msgid "Squares grid fill selected."
-msgstr "Squares grid fill selected."
-
-#: flatcamTools/ToolCopperThieving.py:667
-#: flatcamTools/ToolCopperThieving.py:749
-#: flatcamTools/ToolCopperThieving.py:1345 flatcamTools/ToolDblSided.py:657
-#: flatcamTools/ToolExtractDrills.py:436 flatcamTools/ToolFiducials.py:466
-#: flatcamTools/ToolFiducials.py:743 flatcamTools/ToolOptimal.py:342
-#: flatcamTools/ToolPunchGerber.py:512 flatcamTools/ToolQRCode.py:426
-msgid "There is no Gerber object loaded ..."
-msgstr "There is no Gerber object loaded ..."
-
-#: flatcamTools/ToolCopperThieving.py:680
-#: flatcamTools/ToolCopperThieving.py:1273
-msgid "Append geometry"
-msgstr "Append geometry"
-
-#: flatcamTools/ToolCopperThieving.py:724
-#: flatcamTools/ToolCopperThieving.py:1306
-#: flatcamTools/ToolCopperThieving.py:1459
-msgid "Append source file"
-msgstr "Append source file"
-
-#: flatcamTools/ToolCopperThieving.py:732
-#: flatcamTools/ToolCopperThieving.py:1314
-msgid "Copper Thieving Tool done."
-msgstr "Copper Thieving Tool done."
-
-#: flatcamTools/ToolCopperThieving.py:759
-#: flatcamTools/ToolCopperThieving.py:792 flatcamTools/ToolCutOut.py:519
-#: flatcamTools/ToolCutOut.py:724 flatcamTools/ToolInvertGerber.py:208
-#: flatcamTools/ToolNCC.py:1599 flatcamTools/ToolNCC.py:1640
-#: flatcamTools/ToolNCC.py:1669 flatcamTools/ToolPaint.py:1474
-#: flatcamTools/ToolPanelize.py:412 flatcamTools/ToolPanelize.py:426
-#: flatcamTools/ToolSub.py:294 flatcamTools/ToolSub.py:307
-#: flatcamTools/ToolSub.py:498 flatcamTools/ToolSub.py:513
-#: tclCommands/TclCommandCopperClear.py:97 tclCommands/TclCommandPaint.py:99
-msgid "Could not retrieve object"
-msgstr "Could not retrieve object"
-
-#: flatcamTools/ToolCopperThieving.py:820
-msgid "Click the end point of the filling area."
-msgstr "Click the end point of the filling area."
-
-#: flatcamTools/ToolCopperThieving.py:942
-#: flatcamTools/ToolCopperThieving.py:946
-#: flatcamTools/ToolCopperThieving.py:1007
-msgid "Thieving"
-msgstr "Thieving"
-
-#: flatcamTools/ToolCopperThieving.py:953
-msgid "Copper Thieving Tool started. Reading parameters."
-msgstr "Copper Thieving Tool started. Reading parameters."
-
-#: flatcamTools/ToolCopperThieving.py:978
-msgid "Copper Thieving Tool. Preparing isolation polygons."
-msgstr "Copper Thieving Tool. Preparing isolation polygons."
-
-#: flatcamTools/ToolCopperThieving.py:1023
-msgid "Copper Thieving Tool. Preparing areas to fill with copper."
-msgstr "Copper Thieving Tool. Preparing areas to fill with copper."
-
-#: flatcamTools/ToolCopperThieving.py:1034 flatcamTools/ToolOptimal.py:349
-#: flatcamTools/ToolPanelize.py:799 flatcamTools/ToolRulesCheck.py:1127
-msgid "Working..."
-msgstr "Working..."
-
-#: flatcamTools/ToolCopperThieving.py:1061
-msgid "Geometry not supported for bounding box"
-msgstr "Geometry not supported for bounding box"
-
-#: flatcamTools/ToolCopperThieving.py:1067 flatcamTools/ToolNCC.py:1933
-#: flatcamTools/ToolNCC.py:1988 flatcamTools/ToolNCC.py:2992
-#: flatcamTools/ToolPaint.py:3380
-msgid "No object available."
-msgstr "No object available."
-
-#: flatcamTools/ToolCopperThieving.py:1104 flatcamTools/ToolNCC.py:1958
-#: flatcamTools/ToolNCC.py:2011 flatcamTools/ToolNCC.py:3034
-msgid "The reference object type is not supported."
-msgstr "The reference object type is not supported."
-
-#: flatcamTools/ToolCopperThieving.py:1109
-msgid "Copper Thieving Tool. Appending new geometry and buffering."
-msgstr "Copper Thieving Tool. Appending new geometry and buffering."
-
-#: flatcamTools/ToolCopperThieving.py:1125
-msgid "Create geometry"
-msgstr "Create geometry"
-
-#: flatcamTools/ToolCopperThieving.py:1325
-#: flatcamTools/ToolCopperThieving.py:1329
-msgid "P-Plating Mask"
-msgstr "P-Plating Mask"
-
-#: flatcamTools/ToolCopperThieving.py:1351
-msgid "Append PP-M geometry"
-msgstr "Append PP-M geometry"
-
-#: flatcamTools/ToolCopperThieving.py:1477
-msgid "Generating Pattern Plating Mask done."
-msgstr "Generating Pattern Plating Mask done."
-
-#: flatcamTools/ToolCopperThieving.py:1549
-msgid "Copper Thieving Tool exit."
-msgstr "Copper Thieving Tool exit."
-
-#: flatcamTools/ToolCutOut.py:41
-msgid "Cutout PCB"
-msgstr "Cutout PCB"
-
-#: flatcamTools/ToolCutOut.py:69 flatcamTools/ToolPanelize.py:54
-msgid "Source Object"
-msgstr "Source Object"
-
-#: flatcamTools/ToolCutOut.py:70
-msgid "Object to be cutout"
-msgstr "Object to be cutout"
-
-#: flatcamTools/ToolCutOut.py:75
-msgid "Kind"
-msgstr "Kind"
-
-#: flatcamTools/ToolCutOut.py:97
-msgid ""
-"Specify the type of object to be cutout.\n"
-"It can be of type: Gerber or Geometry.\n"
-"What is selected here will dictate the kind\n"
-"of objects that will populate the 'Object' combobox."
-msgstr ""
-"Specify the type of object to be cutout.\n"
-"It can be of type: Gerber or Geometry.\n"
-"What is selected here will dictate the kind\n"
-"of objects that will populate the 'Object' combobox."
-
-#: flatcamTools/ToolCutOut.py:121
-msgid "Tool Parameters"
-msgstr "Tool Parameters"
-
-#: flatcamTools/ToolCutOut.py:238
-msgid "A. Automatic Bridge Gaps"
-msgstr "A. Automatic Bridge Gaps"
-
-#: flatcamTools/ToolCutOut.py:240
-msgid "This section handle creation of automatic bridge gaps."
-msgstr "This section handle creation of automatic bridge gaps."
-
-#: flatcamTools/ToolCutOut.py:247
-msgid ""
-"Number of gaps used for the Automatic cutout.\n"
-"There can be maximum 8 bridges/gaps.\n"
-"The choices are:\n"
-"- None - no gaps\n"
-"- lr - left + right\n"
-"- tb - top + bottom\n"
-"- 4 - left + right +top + bottom\n"
-"- 2lr - 2*left + 2*right\n"
-"- 2tb - 2*top + 2*bottom\n"
-"- 8 - 2*left + 2*right +2*top + 2*bottom"
-msgstr ""
-"Number of gaps used for the Automatic cutout.\n"
-"There can be maximum 8 bridges/gaps.\n"
-"The choices are:\n"
-"- None - no gaps\n"
-"- lr - left + right\n"
-"- tb - top + bottom\n"
-"- 4 - left + right +top + bottom\n"
-"- 2lr - 2*left + 2*right\n"
-"- 2tb - 2*top + 2*bottom\n"
-"- 8 - 2*left + 2*right +2*top + 2*bottom"
-
-#: flatcamTools/ToolCutOut.py:269
-msgid "Generate Freeform Geometry"
-msgstr "Generate Freeform Geometry"
-
-#: flatcamTools/ToolCutOut.py:271
-msgid ""
-"Cutout the selected object.\n"
-"The cutout shape can be of any shape.\n"
-"Useful when the PCB has a non-rectangular shape."
-msgstr ""
-"Cutout the selected object.\n"
-"The cutout shape can be of any shape.\n"
-"Useful when the PCB has a non-rectangular shape."
-
-#: flatcamTools/ToolCutOut.py:283
-msgid "Generate Rectangular Geometry"
-msgstr "Generate Rectangular Geometry"
-
-#: flatcamTools/ToolCutOut.py:285
-msgid ""
-"Cutout the selected object.\n"
-"The resulting cutout shape is\n"
-"always a rectangle shape and it will be\n"
-"the bounding box of the Object."
-msgstr ""
-"Cutout the selected object.\n"
-"The resulting cutout shape is\n"
-"always a rectangle shape and it will be\n"
-"the bounding box of the Object."
-
-#: flatcamTools/ToolCutOut.py:304
-msgid "B. Manual Bridge Gaps"
-msgstr "B. Manual Bridge Gaps"
-
-#: flatcamTools/ToolCutOut.py:306
-msgid ""
-"This section handle creation of manual bridge gaps.\n"
-"This is done by mouse clicking on the perimeter of the\n"
-"Geometry object that is used as a cutout object. "
-msgstr ""
-"This section handle creation of manual bridge gaps.\n"
-"This is done by mouse clicking on the perimeter of the\n"
-"Geometry object that is used as a cutout object. "
-
-#: flatcamTools/ToolCutOut.py:321
-msgid "Geometry object used to create the manual cutout."
-msgstr "Geometry object used to create the manual cutout."
-
-#: flatcamTools/ToolCutOut.py:328
-msgid "Generate Manual Geometry"
-msgstr "Generate Manual Geometry"
-
-#: flatcamTools/ToolCutOut.py:330
-msgid ""
-"If the object to be cutout is a Gerber\n"
-"first create a Geometry that surrounds it,\n"
-"to be used as the cutout, if one doesn't exist yet.\n"
-"Select the source Gerber file in the top object combobox."
-msgstr ""
-"If the object to be cutout is a Gerber\n"
-"first create a Geometry that surrounds it,\n"
-"to be used as the cutout, if one doesn't exist yet.\n"
-"Select the source Gerber file in the top object combobox."
-
-#: flatcamTools/ToolCutOut.py:343
-msgid "Manual Add Bridge Gaps"
-msgstr "Manual Add Bridge Gaps"
-
-#: flatcamTools/ToolCutOut.py:345
-msgid ""
-"Use the left mouse button (LMB) click\n"
-"to create a bridge gap to separate the PCB from\n"
-"the surrounding material.\n"
-"The LMB click has to be done on the perimeter of\n"
-"the Geometry object used as a cutout geometry."
-msgstr ""
-"Use the left mouse button (LMB) click\n"
-"to create a bridge gap to separate the PCB from\n"
-"the surrounding material.\n"
-"The LMB click has to be done on the perimeter of\n"
-"the Geometry object used as a cutout geometry."
-
-#: flatcamTools/ToolCutOut.py:524
-msgid ""
-"There is no object selected for Cutout.\n"
-"Select one and try again."
-msgstr ""
-"There is no object selected for Cutout.\n"
-"Select one and try again."
-
-#: flatcamTools/ToolCutOut.py:530 flatcamTools/ToolCutOut.py:733
-#: flatcamTools/ToolCutOut.py:914 flatcamTools/ToolCutOut.py:996
-#: tclCommands/TclCommandGeoCutout.py:184
-msgid "Tool Diameter is zero value. Change it to a positive real number."
-msgstr "Tool Diameter is zero value. Change it to a positive real number."
-
-#: flatcamTools/ToolCutOut.py:544 flatcamTools/ToolCutOut.py:748
-msgid "Number of gaps value is missing. Add it and retry."
-msgstr "Number of gaps value is missing. Add it and retry."
-
-#: flatcamTools/ToolCutOut.py:549 flatcamTools/ToolCutOut.py:752
-msgid ""
-"Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. "
-"Fill in a correct value and retry. "
-msgstr ""
-"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:554 flatcamTools/ToolCutOut.py:758
-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 ""
-"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."
-
-#: flatcamTools/ToolCutOut.py:706 flatcamTools/ToolCutOut.py:903
-msgid "Any form CutOut operation finished."
-msgstr "Any form CutOut operation finished."
-
-#: flatcamTools/ToolCutOut.py:728 flatcamTools/ToolInvertGerber.py:214
-#: flatcamTools/ToolNCC.py:1603 flatcamTools/ToolPaint.py:1397
-#: flatcamTools/ToolPanelize.py:417 tclCommands/TclCommandBbox.py:71
-#: tclCommands/TclCommandNregions.py:71
-msgid "Object not found"
-msgstr "Object not found"
-
-#: flatcamTools/ToolCutOut.py:872
-msgid "Rectangular cutout with negative margin is not possible."
-msgstr "Rectangular cutout with negative margin is not possible."
-
-#: flatcamTools/ToolCutOut.py:908
-msgid ""
-"Click on the selected geometry object perimeter to create a bridge gap ..."
-msgstr ""
-"Click on the selected geometry object perimeter to create a bridge gap ..."
-
-#: flatcamTools/ToolCutOut.py:925 flatcamTools/ToolCutOut.py:951
-msgid "Could not retrieve Geometry object"
-msgstr "Could not retrieve Geometry object"
-
-#: flatcamTools/ToolCutOut.py:956
-msgid "Geometry object for manual cutout not found"
-msgstr "Geometry object for manual cutout not found"
-
-#: flatcamTools/ToolCutOut.py:966
-msgid "Added manual Bridge Gap."
-msgstr "Added manual Bridge Gap."
-
-#: flatcamTools/ToolCutOut.py:978
-msgid "Could not retrieve Gerber object"
-msgstr "Could not retrieve Gerber object"
-
-#: flatcamTools/ToolCutOut.py:983
-msgid ""
-"There is no Gerber object selected for Cutout.\n"
-"Select one and try again."
-msgstr ""
-"There is no Gerber object selected for Cutout.\n"
-"Select one and try again."
-
-#: flatcamTools/ToolCutOut.py:989
-msgid ""
-"The selected object has to be of Gerber type.\n"
-"Select a Gerber file and try again."
-msgstr ""
-"The selected object has to be of Gerber type.\n"
-"Select a Gerber file and try again."
-
-#: flatcamTools/ToolCutOut.py:1024
-msgid "Geometry not supported for cutout"
-msgstr "Geometry not supported for cutout"
-
-#: flatcamTools/ToolCutOut.py:1099
-msgid "Making manual bridge gap..."
-msgstr "Making manual bridge gap..."
-
-#: flatcamTools/ToolDblSided.py:26
-msgid "2-Sided PCB"
-msgstr "2-Sided PCB"
-
-#: flatcamTools/ToolDblSided.py:52
-msgid "Mirror Operation"
-msgstr "Mirror Operation"
-
-#: flatcamTools/ToolDblSided.py:53
-msgid "Objects to be mirrored"
-msgstr "Objects to be mirrored"
-
-#: flatcamTools/ToolDblSided.py:65
-msgid "Gerber to be mirrored"
-msgstr "Gerber to be mirrored"
-
-#: flatcamTools/ToolDblSided.py:69 flatcamTools/ToolDblSided.py:97
-#: flatcamTools/ToolDblSided.py:127
-msgid ""
-"Mirrors (flips) the specified object around \n"
-"the specified axis. Does not create a new \n"
-"object, but modifies it."
-msgstr ""
-"Mirrors (flips) the specified object around \n"
-"the specified axis. Does not create a new \n"
-"object, but modifies it."
-
-#: flatcamTools/ToolDblSided.py:93
-msgid "Excellon Object to be mirrored."
-msgstr "Excellon Object to be mirrored."
-
-#: flatcamTools/ToolDblSided.py:122
-msgid "Geometry Obj to be mirrored."
-msgstr "Geometry Obj to be mirrored."
-
-#: flatcamTools/ToolDblSided.py:158
-msgid "Mirror Parameters"
-msgstr "Mirror Parameters"
-
-#: flatcamTools/ToolDblSided.py:159
-msgid "Parameters for the mirror operation"
-msgstr "Parameters for the mirror operation"
-
-#: flatcamTools/ToolDblSided.py:164
-msgid "Mirror Axis"
-msgstr "Mirror Axis"
-
-#: flatcamTools/ToolDblSided.py:175
-msgid ""
-"The coordinates used as reference for the mirror operation.\n"
-"Can be:\n"
-"- Point -> a set of coordinates (x,y) around which the object is mirrored\n"
-"- Box -> a set of coordinates (x, y) obtained from the center of the\n"
-"bounding box of another object selected below"
-msgstr ""
-"The coordinates used as reference for the mirror operation.\n"
-"Can be:\n"
-"- Point -> a set of coordinates (x,y) around which the object is mirrored\n"
-"- Box -> a set of coordinates (x, y) obtained from the center of the\n"
-"bounding box of another object selected below"
-
-#: flatcamTools/ToolDblSided.py:189
-msgid "Point coordinates"
-msgstr "Point coordinates"
-
-#: flatcamTools/ToolDblSided.py:194
-msgid ""
-"Add the coordinates in format (x, y) through which the mirroring "
-"axis\n"
-" selected in 'MIRROR AXIS' pass.\n"
-"The (x, y) coordinates are captured by pressing SHIFT key\n"
-"and left mouse button click on canvas or you can enter the coordinates "
-"manually."
-msgstr ""
-"Add the coordinates in format (x, y) through which the mirroring "
-"axis\n"
-" selected in 'MIRROR AXIS' pass.\n"
-"The (x, y) coordinates are captured by pressing SHIFT key\n"
-"and left mouse button click on canvas or you can enter the coordinates "
-"manually."
-
-#: flatcamTools/ToolDblSided.py:218
-msgid ""
-"It can be of type: Gerber or Excellon or Geometry.\n"
-"The coordinates of the center of the bounding box are used\n"
-"as reference for mirror operation."
-msgstr ""
-"It can be of type: Gerber or Excellon or Geometry.\n"
-"The coordinates of the center of the bounding box are used\n"
-"as reference for mirror operation."
-
-#: flatcamTools/ToolDblSided.py:252
-msgid "Bounds Values"
-msgstr "Bounds Values"
-
-#: flatcamTools/ToolDblSided.py:254
-msgid ""
-"Select on canvas the object(s)\n"
-"for which to calculate bounds values."
-msgstr ""
-"Select on canvas the object(s)\n"
-"for which to calculate bounds values."
-
-#: flatcamTools/ToolDblSided.py:264
-msgid "X min"
-msgstr "X min"
-
-#: flatcamTools/ToolDblSided.py:266 flatcamTools/ToolDblSided.py:280
-msgid "Minimum location."
-msgstr "Minimum location."
-
-#: flatcamTools/ToolDblSided.py:278
-msgid "Y min"
-msgstr "Y min"
-
-#: flatcamTools/ToolDblSided.py:292
-msgid "X max"
-msgstr "X max"
-
-#: flatcamTools/ToolDblSided.py:294 flatcamTools/ToolDblSided.py:308
-msgid "Maximum location."
-msgstr "Maximum location."
-
-#: flatcamTools/ToolDblSided.py:306
-msgid "Y max"
-msgstr "Y max"
-
-#: flatcamTools/ToolDblSided.py:317
-msgid "Center point coordinates"
-msgstr "Center point coordinates"
-
-#: flatcamTools/ToolDblSided.py:319
-msgid "Centroid"
-msgstr "Centroid"
-
-#: flatcamTools/ToolDblSided.py:321
-msgid ""
-"The center point location for the rectangular\n"
-"bounding shape. Centroid. Format is (x, y)."
-msgstr ""
-"The center point location for the rectangular\n"
-"bounding shape. Centroid. Format is (x, y)."
-
-#: flatcamTools/ToolDblSided.py:330
-msgid "Calculate Bounds Values"
-msgstr "Calculate Bounds Values"
-
-#: flatcamTools/ToolDblSided.py:332
-msgid ""
-"Calculate the enveloping rectangular shape coordinates,\n"
-"for the selection of objects.\n"
-"The envelope shape is parallel with the X, Y axis."
-msgstr ""
-"Calculate the enveloping rectangular shape coordinates,\n"
-"for the selection of objects.\n"
-"The envelope shape is parallel with the X, Y axis."
-
-#: flatcamTools/ToolDblSided.py:352
-msgid "PCB Alignment"
-msgstr "PCB Alignment"
-
-#: flatcamTools/ToolDblSided.py:354 flatcamTools/ToolDblSided.py:456
-msgid ""
-"Creates an Excellon Object containing the\n"
-"specified alignment holes and their mirror\n"
-"images."
-msgstr ""
-"Creates an Excellon Object containing the\n"
-"specified alignment holes and their mirror\n"
-"images."
-
-#: flatcamTools/ToolDblSided.py:361
-msgid "Drill Diameter"
-msgstr "Drill Diameter"
-
-#: flatcamTools/ToolDblSided.py:390 flatcamTools/ToolDblSided.py:397
-msgid ""
-"The reference point used to create the second alignment drill\n"
-"from the first alignment drill, by doing mirror.\n"
-"It can be modified in the Mirror Parameters -> Reference section"
-msgstr ""
-"The reference point used to create the second alignment drill\n"
-"from the first alignment drill, by doing mirror.\n"
-"It can be modified in the Mirror Parameters -> Reference section"
-
-#: flatcamTools/ToolDblSided.py:410
-msgid "Alignment Drill Coordinates"
-msgstr "Alignment Drill Coordinates"
-
-#: flatcamTools/ToolDblSided.py:412
-msgid ""
-"Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For "
-"each set of (x, y) coordinates\n"
-"entered here, a pair of drills will be created:\n"
-"\n"
-"- one drill at the coordinates from the field\n"
-"- one drill in mirror position over the axis selected above in the 'Align "
-"Axis'."
-msgstr ""
-"Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For "
-"each set of (x, y) coordinates\n"
-"entered here, a pair of drills will be created:\n"
-"\n"
-"- one drill at the coordinates from the field\n"
-"- one drill in mirror position over the axis selected above in the 'Align "
-"Axis'."
-
-#: flatcamTools/ToolDblSided.py:420
-msgid "Drill coordinates"
-msgstr "Drill coordinates"
-
-#: flatcamTools/ToolDblSided.py:427
-msgid ""
-"Add alignment drill holes coordinates in the format: (x1, y1), (x2, "
-"y2), ... \n"
-"on one side of the alignment axis.\n"
-"\n"
-"The coordinates set can be obtained:\n"
-"- press SHIFT key and left mouse clicking on canvas. Then click Add.\n"
-"- press SHIFT key and left mouse clicking on canvas. Then Ctrl+V in the "
-"field.\n"
-"- press SHIFT key and left mouse clicking on canvas. Then RMB click in the "
-"field and click Paste.\n"
-"- by entering the coords manually in the format: (x1, y1), (x2, y2), ..."
-msgstr ""
-"Add alignment drill holes coordinates in the format: (x1, y1), (x2, "
-"y2), ... \n"
-"on one side of the alignment axis.\n"
-"\n"
-"The coordinates set can be obtained:\n"
-"- press SHIFT key and left mouse clicking on canvas. Then click Add.\n"
-"- press SHIFT key and left mouse clicking on canvas. Then Ctrl+V in the "
-"field.\n"
-"- press SHIFT key and left mouse clicking on canvas. Then RMB click in the "
-"field and click Paste.\n"
-"- by entering the coords manually in the format: (x1, y1), (x2, y2), ..."
-
-#: flatcamTools/ToolDblSided.py:442
-msgid "Delete Last"
-msgstr "Delete Last"
-
-#: flatcamTools/ToolDblSided.py:444
-msgid "Delete the last coordinates tuple in the list."
-msgstr "Delete the last coordinates tuple in the list."
-
-#: flatcamTools/ToolDblSided.py:454
-msgid "Create Excellon Object"
-msgstr "Create Excellon Object"
-
-#: flatcamTools/ToolDblSided.py:541
-msgid "2-Sided Tool"
-msgstr "2-Sided Tool"
-
-#: flatcamTools/ToolDblSided.py:581
-msgid ""
-"'Point' reference is selected and 'Point' coordinates are missing. Add them "
-"and retry."
-msgstr ""
-"'Point' reference is selected and 'Point' coordinates are missing. Add them "
-"and retry."
-
-#: flatcamTools/ToolDblSided.py:600
-msgid "There is no Box reference object loaded. Load one and retry."
-msgstr "There is no Box reference object loaded. Load one and retry."
-
-#: flatcamTools/ToolDblSided.py:612
-msgid "No value or wrong format in Drill Dia entry. Add it and retry."
-msgstr "No value or wrong format in Drill Dia entry. Add it and retry."
-
-#: flatcamTools/ToolDblSided.py:623
-msgid "There are no Alignment Drill Coordinates to use. Add them and retry."
-msgstr "There are no Alignment Drill Coordinates to use. Add them and retry."
-
-#: flatcamTools/ToolDblSided.py:648
-msgid "Excellon object with alignment drills created..."
-msgstr "Excellon object with alignment drills created..."
-
-#: flatcamTools/ToolDblSided.py:661 flatcamTools/ToolDblSided.py:704
-#: flatcamTools/ToolDblSided.py:748
-msgid "Only Gerber, Excellon and Geometry objects can be mirrored."
-msgstr "Only Gerber, Excellon and Geometry objects can be mirrored."
-
-#: flatcamTools/ToolDblSided.py:671 flatcamTools/ToolDblSided.py:715
-msgid ""
-"There are no Point coordinates in the Point field. Add coords and try "
-"again ..."
-msgstr ""
-"There are no Point coordinates in the Point field. Add coords and try "
-"again ..."
-
-#: flatcamTools/ToolDblSided.py:681 flatcamTools/ToolDblSided.py:725
-#: flatcamTools/ToolDblSided.py:762
-msgid "There is no Box object loaded ..."
-msgstr "There is no Box object loaded ..."
-
-#: flatcamTools/ToolDblSided.py:691 flatcamTools/ToolDblSided.py:735
-#: flatcamTools/ToolDblSided.py:772
-msgid "was mirrored"
-msgstr "was mirrored"
-
-#: flatcamTools/ToolDblSided.py:700 flatcamTools/ToolPunchGerber.py:533
-msgid "There is no Excellon object loaded ..."
-msgstr "There is no Excellon object loaded ..."
-
-#: flatcamTools/ToolDblSided.py:744
-msgid "There is no Geometry object loaded ..."
-msgstr "There is no Geometry object loaded ..."
-
-#: flatcamTools/ToolDistance.py:57 flatcamTools/ToolDistanceMin.py:51
-msgid "Those are the units in which the distance is measured."
-msgstr "Those are the units in which the distance is measured."
-
-#: flatcamTools/ToolDistance.py:58 flatcamTools/ToolDistanceMin.py:52
-msgid "METRIC (mm)"
-msgstr "METRIC (mm)"
-
-#: flatcamTools/ToolDistance.py:58 flatcamTools/ToolDistanceMin.py:52
-msgid "INCH (in)"
-msgstr "INCH (in)"
-
-#: flatcamTools/ToolDistance.py:64
-msgid "Snap to center"
-msgstr "Snap to center"
-
-#: flatcamTools/ToolDistance.py:66
-msgid ""
-"Mouse cursor will snap to the center of the pad/drill\n"
-"when it is hovering over the geometry of the pad/drill."
-msgstr ""
-"Mouse cursor will snap to the center of the pad/drill\n"
-"when it is hovering over the geometry of the pad/drill."
-
-#: flatcamTools/ToolDistance.py:76
-msgid "Start Coords"
-msgstr "Start Coords"
-
-#: flatcamTools/ToolDistance.py:77 flatcamTools/ToolDistance.py:82
-msgid "This is measuring Start point coordinates."
-msgstr "This is measuring Start point coordinates."
-
-#: flatcamTools/ToolDistance.py:87
-msgid "Stop Coords"
-msgstr "Stop Coords"
-
-#: flatcamTools/ToolDistance.py:88 flatcamTools/ToolDistance.py:93
-msgid "This is the measuring Stop point coordinates."
-msgstr "This is the measuring Stop point coordinates."
-
-#: flatcamTools/ToolDistance.py:98 flatcamTools/ToolDistanceMin.py:63
-msgid "Dx"
-msgstr "Dx"
-
-#: flatcamTools/ToolDistance.py:99 flatcamTools/ToolDistance.py:104
-#: flatcamTools/ToolDistanceMin.py:64 flatcamTools/ToolDistanceMin.py:93
-msgid "This is the distance measured over the X axis."
-msgstr "This is the distance measured over the X axis."
-
-#: flatcamTools/ToolDistance.py:109 flatcamTools/ToolDistanceMin.py:66
-msgid "Dy"
-msgstr "Dy"
-
-#: flatcamTools/ToolDistance.py:110 flatcamTools/ToolDistance.py:115
-#: flatcamTools/ToolDistanceMin.py:67 flatcamTools/ToolDistanceMin.py:98
-msgid "This is the distance measured over the Y axis."
-msgstr "This is the distance measured over the Y axis."
-
-#: flatcamTools/ToolDistance.py:121 flatcamTools/ToolDistance.py:126
-#: flatcamTools/ToolDistanceMin.py:70 flatcamTools/ToolDistanceMin.py:103
-msgid "This is orientation angle of the measuring line."
-msgstr "This is orientation angle of the measuring line."
-
-#: flatcamTools/ToolDistance.py:131 flatcamTools/ToolDistanceMin.py:72
-msgid "DISTANCE"
-msgstr "DISTANCE"
-
-#: flatcamTools/ToolDistance.py:132 flatcamTools/ToolDistance.py:137
-msgid "This is the point to point Euclidian distance."
-msgstr "This is the point to point Euclidian distance."
-
-#: flatcamTools/ToolDistance.py:142 flatcamTools/ToolDistance.py:337
-#: flatcamTools/ToolDistanceMin.py:115
-msgid "Measure"
-msgstr "Measure"
-
-#: flatcamTools/ToolDistance.py:272
-msgid "Working"
-msgstr "Working"
-
-#: flatcamTools/ToolDistance.py:277
-msgid "MEASURING: Click on the Start point ..."
-msgstr "MEASURING: Click on the Start point ..."
-
-#: flatcamTools/ToolDistance.py:387
-msgid "Distance Tool finished."
-msgstr "Distance Tool finished."
-
-#: flatcamTools/ToolDistance.py:455
-msgid "Pads overlapped. Aborting."
-msgstr "Pads overlapped. Aborting."
-
-#: flatcamTools/ToolDistance.py:485
-msgid "MEASURING: Click on the Destination point ..."
-msgstr "MEASURING: Click on the Destination point ..."
-
-#: flatcamTools/ToolDistance.py:494 flatcamTools/ToolDistanceMin.py:285
-msgid "MEASURING"
-msgstr "MEASURING"
-
-#: flatcamTools/ToolDistance.py:495 flatcamTools/ToolDistanceMin.py:286
-msgid "Result"
-msgstr "Result"
-
-#: flatcamTools/ToolDistanceMin.py:32 flatcamTools/ToolDistanceMin.py:144
-msgid "Minimum Distance Tool"
-msgstr "Minimum Distance Tool"
-
-#: flatcamTools/ToolDistanceMin.py:55
-msgid "First object point"
-msgstr "First object point"
-
-#: flatcamTools/ToolDistanceMin.py:56 flatcamTools/ToolDistanceMin.py:81
-msgid ""
-"This is first object point coordinates.\n"
-"This is the start point for measuring distance."
-msgstr ""
-"This is first object point coordinates.\n"
-"This is the start point for measuring distance."
-
-#: flatcamTools/ToolDistanceMin.py:59
-msgid "Second object point"
-msgstr "Second object point"
-
-#: flatcamTools/ToolDistanceMin.py:60 flatcamTools/ToolDistanceMin.py:87
-msgid ""
-"This is second object point coordinates.\n"
-"This is the end point for measuring distance."
-msgstr ""
-"This is second object point coordinates.\n"
-"This is the end point for measuring distance."
-
-#: flatcamTools/ToolDistanceMin.py:73 flatcamTools/ToolDistanceMin.py:108
-msgid "This is the point to point Euclidean distance."
-msgstr "This is the point to point Euclidean distance."
-
-#: flatcamTools/ToolDistanceMin.py:75
-msgid "Half Point"
-msgstr "Half Point"
-
-#: flatcamTools/ToolDistanceMin.py:76 flatcamTools/ToolDistanceMin.py:113
-msgid "This is the middle point of the point to point Euclidean distance."
-msgstr "This is the middle point of the point to point Euclidean distance."
-
-#: flatcamTools/ToolDistanceMin.py:118
-msgid "Jump to Half Point"
-msgstr "Jump to Half Point"
-
-#: flatcamTools/ToolDistanceMin.py:155
-msgid ""
-"Select two objects and no more, to measure the distance between them ..."
-msgstr ""
-"Select two objects and no more, to measure the distance between them ..."
-
-#: flatcamTools/ToolDistanceMin.py:196 flatcamTools/ToolDistanceMin.py:217
-#: flatcamTools/ToolDistanceMin.py:226 flatcamTools/ToolDistanceMin.py:247
-msgid "Select two objects and no more. Currently the selection has objects: "
-msgstr "Select two objects and no more. Currently the selection has objects: "
-
-#: flatcamTools/ToolDistanceMin.py:294
-msgid "Objects intersects or touch at"
-msgstr "Objects intersects or touch at"
-
-#: flatcamTools/ToolDistanceMin.py:300
-msgid "Jumped to the half point between the two selected objects"
-msgstr "Jumped to the half point between the two selected objects"
-
-#: flatcamTools/ToolExtractDrills.py:29 flatcamTools/ToolExtractDrills.py:295
-msgid "Extract Drills"
-msgstr "Extract Drills"
-
-#: flatcamTools/ToolExtractDrills.py:62
-msgid "Gerber from which to extract drill holes"
-msgstr "Gerber from which to extract drill holes"
-
-#: flatcamTools/ToolExtractDrills.py:297
-msgid "Extract drills from a given Gerber file."
-msgstr "Extract drills from a given Gerber file."
-
-#: flatcamTools/ToolExtractDrills.py:478 flatcamTools/ToolExtractDrills.py:563
-#: flatcamTools/ToolExtractDrills.py:648
-msgid "No drills extracted. Try different parameters."
-msgstr "No drills extracted. Try different parameters."
-
-#: flatcamTools/ToolFiducials.py:56
-msgid "Fiducials Coordinates"
-msgstr "Fiducials Coordinates"
-
-#: flatcamTools/ToolFiducials.py:58
-msgid ""
-"A table with the fiducial points coordinates,\n"
-"in the format (x, y)."
-msgstr ""
-"A table with the fiducial points coordinates,\n"
-"in the format (x, y)."
-
-#: flatcamTools/ToolFiducials.py:99
-msgid "Top Right"
-msgstr "Top Right"
-
-#: flatcamTools/ToolFiducials.py:191
-msgid ""
-"- 'Auto' - automatic placement of fiducials in the corners of the bounding "
-"box.\n"
-" - 'Manual' - manual placement of fiducials."
-msgstr ""
-"- 'Auto' - automatic placement of fiducials in the corners of the bounding "
-"box.\n"
-" - 'Manual' - manual placement of fiducials."
-
-#: flatcamTools/ToolFiducials.py:259
-msgid "Copper Gerber"
-msgstr "Copper Gerber"
-
-#: flatcamTools/ToolFiducials.py:268
-msgid "Add Fiducial"
-msgstr "Add Fiducial"
-
-#: flatcamTools/ToolFiducials.py:270
-msgid "Will add a polygon on the copper layer to serve as fiducial."
-msgstr "Will add a polygon on the copper layer to serve as fiducial."
-
-#: flatcamTools/ToolFiducials.py:286
-msgid "Soldermask Gerber"
-msgstr "Soldermask Gerber"
-
-#: flatcamTools/ToolFiducials.py:288
-msgid "The Soldermask Gerber object."
-msgstr "The Soldermask Gerber object."
-
-#: flatcamTools/ToolFiducials.py:300
-msgid "Add Soldermask Opening"
-msgstr "Add Soldermask Opening"
-
-#: flatcamTools/ToolFiducials.py:302
-msgid ""
-"Will add a polygon on the soldermask layer\n"
-"to serve as fiducial opening.\n"
-"The diameter is always double of the diameter\n"
-"for the copper fiducial."
-msgstr ""
-"Will add a polygon on the soldermask layer\n"
-"to serve as fiducial opening.\n"
-"The diameter is always double of the diameter\n"
-"for the copper fiducial."
-
-#: flatcamTools/ToolFiducials.py:516
-msgid "Click to add first Fiducial. Bottom Left..."
-msgstr "Click to add first Fiducial. Bottom Left..."
-
-#: flatcamTools/ToolFiducials.py:780
-msgid "Click to add the last fiducial. Top Right..."
-msgstr "Click to add the last fiducial. Top Right..."
-
-#: flatcamTools/ToolFiducials.py:785
-msgid "Click to add the second fiducial. Top Left or Bottom Right..."
-msgstr "Click to add the second fiducial. Top Left or Bottom Right..."
-
-#: flatcamTools/ToolFiducials.py:788 flatcamTools/ToolFiducials.py:797
-msgid "Done. All fiducials have been added."
-msgstr "Done. All fiducials have been added."
-
-#: flatcamTools/ToolFiducials.py:874
-msgid "Fiducials Tool exit."
-msgstr "Fiducials Tool exit."
-
-#: flatcamTools/ToolFilm.py:42
-msgid "Film PCB"
-msgstr "Film PCB"
-
-#: flatcamTools/ToolFilm.py:78
-msgid ""
-"Specify the type of object for which to create the film.\n"
-"The object can be of type: Gerber or Geometry.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Film Object combobox."
-msgstr ""
-"Specify the type of object for which to create the film.\n"
-"The object can be of type: Gerber or Geometry.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Film Object combobox."
-
-#: flatcamTools/ToolFilm.py:92
-msgid "Film Object"
-msgstr "Film Object"
-
-#: flatcamTools/ToolFilm.py:94
-msgid "Object for which to create the film."
-msgstr "Object for which to create the film."
-
-#: flatcamTools/ToolFilm.py:115
-msgid ""
-"Specify the type of object to be used as an container for\n"
-"film creation. It can be: Gerber or Geometry type.The selection here decide "
-"the type of objects that will be\n"
-"in the Box Object combobox."
-msgstr ""
-"Specify the type of object to be used as an container for\n"
-"film creation. It can be: Gerber or Geometry type.The selection here decide "
-"the type of objects that will be\n"
-"in the Box Object combobox."
-
-#: flatcamTools/ToolFilm.py:129
-msgid "Box Object"
-msgstr "Box Object"
-
-#: flatcamTools/ToolFilm.py:131
-msgid ""
-"The actual object that is used as container for the\n"
-" selected object for which we create the film.\n"
-"Usually it is the PCB outline but it can be also the\n"
-"same object for which the film is created."
-msgstr ""
-"The actual object that is used as container for the\n"
-" selected object for which we create the film.\n"
-"Usually it is the PCB outline but it can be also the\n"
-"same object for which the film is created."
-
-#: flatcamTools/ToolFilm.py:273
-msgid "Film Parameters"
-msgstr "Film Parameters"
-
-#: flatcamTools/ToolFilm.py:334
-msgid "Punch drill holes"
-msgstr "Punch drill holes"
-
-#: flatcamTools/ToolFilm.py:335
-msgid ""
-"When checked the generated film will have holes in pads when\n"
-"the generated film is positive. This is done to help drilling,\n"
-"when done manually."
-msgstr ""
-"When checked the generated film will have holes in pads when\n"
-"the generated film is positive. This is done to help drilling,\n"
-"when done manually."
-
-#: flatcamTools/ToolFilm.py:353
-msgid "Source"
-msgstr "Source"
-
-#: flatcamTools/ToolFilm.py:355
-msgid ""
-"The punch hole source can be:\n"
-"- Excellon -> an Excellon holes center will serve as reference.\n"
-"- Pad Center -> will try to use the pads center as reference."
-msgstr ""
-"The punch hole source can be:\n"
-"- Excellon -> an Excellon holes center will serve as reference.\n"
-"- Pad Center -> will try to use the pads center as reference."
-
-#: flatcamTools/ToolFilm.py:360
-msgid "Pad center"
-msgstr "Pad center"
-
-#: flatcamTools/ToolFilm.py:365
-msgid "Excellon Obj"
-msgstr "Excellon Obj"
-
-#: flatcamTools/ToolFilm.py:367
-msgid ""
-"Remove the geometry of Excellon from the Film to create the holes in pads."
-msgstr ""
-"Remove the geometry of Excellon from the Film to create the holes in pads."
-
-#: flatcamTools/ToolFilm.py:381
-msgid "Punch Size"
-msgstr "Punch Size"
-
-#: flatcamTools/ToolFilm.py:382
-msgid "The value here will control how big is the punch hole in the pads."
-msgstr "The value here will control how big is the punch hole in the pads."
-
-#: flatcamTools/ToolFilm.py:502
-msgid "Save Film"
-msgstr "Save Film"
-
-#: flatcamTools/ToolFilm.py:504
-msgid ""
-"Create a Film for the selected object, within\n"
-"the specified box. Does not create a new \n"
-" FlatCAM object, but directly save it in the\n"
-"selected format."
-msgstr ""
-"Create a Film for the selected object, within\n"
-"the specified box. Does not create a new \n"
-" FlatCAM object, but directly save it in the\n"
-"selected format."
-
-#: flatcamTools/ToolFilm.py:664
-msgid ""
-"Using the Pad center does not work on Geometry objects. Only a Gerber object "
-"has pads."
-msgstr ""
-"Using the Pad center does not work on Geometry objects. Only a Gerber object "
-"has pads."
-
-#: flatcamTools/ToolFilm.py:674
-msgid "No FlatCAM object selected. Load an object for Film and retry."
-msgstr "No FlatCAM object selected. Load an object for Film and retry."
-
-#: flatcamTools/ToolFilm.py:681
-msgid "No FlatCAM object selected. Load an object for Box and retry."
-msgstr "No FlatCAM object selected. Load an object for Box and retry."
-
-#: flatcamTools/ToolFilm.py:685
-msgid "No FlatCAM object selected."
-msgstr "No FlatCAM object selected."
-
-#: flatcamTools/ToolFilm.py:696
-msgid "Generating Film ..."
-msgstr "Generating Film ..."
-
-#: flatcamTools/ToolFilm.py:745 flatcamTools/ToolFilm.py:749
-msgid "Export positive film"
-msgstr "Export positive film"
-
-#: flatcamTools/ToolFilm.py:782
-msgid ""
-"No Excellon object selected. Load an object for punching reference and retry."
-msgstr ""
-"No Excellon object selected. Load an object for punching reference and retry."
-
-#: flatcamTools/ToolFilm.py:806
-msgid ""
-" Could not generate punched hole film because the punch hole sizeis bigger "
-"than some of the apertures in the Gerber object."
-msgstr ""
-" Could not generate punched hole film because the punch hole sizeis bigger "
-"than some of the apertures in the Gerber object."
-
-#: flatcamTools/ToolFilm.py:818
-msgid ""
-"Could not generate punched hole film because the punch hole sizeis bigger "
-"than some of the apertures in the Gerber object."
-msgstr ""
-"Could not generate punched hole film because the punch hole sizeis bigger "
-"than some of the apertures in the Gerber object."
-
-#: flatcamTools/ToolFilm.py:836
-msgid ""
-"Could not generate punched hole film because the newly created object "
-"geometry is the same as the one in the source object geometry..."
-msgstr ""
-"Could not generate punched hole film because the newly created object "
-"geometry is the same as the one in the source object geometry..."
-
-#: flatcamTools/ToolFilm.py:891 flatcamTools/ToolFilm.py:895
-msgid "Export negative film"
-msgstr "Export negative film"
-
-#: flatcamTools/ToolFilm.py:956 flatcamTools/ToolFilm.py:1139
-#: flatcamTools/ToolPanelize.py:430
-msgid "No object Box. Using instead"
-msgstr "No object Box. Using instead"
-
-#: flatcamTools/ToolFilm.py:1072 flatcamTools/ToolFilm.py:1252
-msgid "Film file exported to"
-msgstr "Film file exported to"
-
-#: flatcamTools/ToolFilm.py:1075 flatcamTools/ToolFilm.py:1255
-msgid "Generating Film ... Please wait."
-msgstr "Generating Film ... Please wait."
-
-#: flatcamTools/ToolImage.py:24
-msgid "Image as Object"
-msgstr "Image as Object"
-
-#: flatcamTools/ToolImage.py:33
-msgid "Image to PCB"
-msgstr "Image to PCB"
-
-#: flatcamTools/ToolImage.py:56
-msgid ""
-"Specify the type of object to create from the image.\n"
-"It can be of type: Gerber or Geometry."
-msgstr ""
-"Specify the type of object to create from the image.\n"
-"It can be of type: Gerber or Geometry."
-
-#: flatcamTools/ToolImage.py:65
-msgid "DPI value"
-msgstr "DPI value"
-
-#: flatcamTools/ToolImage.py:66
-msgid "Specify a DPI value for the image."
-msgstr "Specify a DPI value for the image."
-
-#: flatcamTools/ToolImage.py:72
-msgid "Level of detail"
-msgstr "Level of detail"
-
-#: flatcamTools/ToolImage.py:81
-msgid "Image type"
-msgstr "Image type"
-
-#: flatcamTools/ToolImage.py:83
-msgid ""
-"Choose a method for the image interpretation.\n"
-"B/W means a black & white image. Color means a colored image."
-msgstr ""
-"Choose a method for the image interpretation.\n"
-"B/W means a black & white image. Color means a colored image."
-
-#: flatcamTools/ToolImage.py:92 flatcamTools/ToolImage.py:107
-#: flatcamTools/ToolImage.py:120 flatcamTools/ToolImage.py:133
-msgid "Mask value"
-msgstr "Mask value"
-
-#: flatcamTools/ToolImage.py:94
-msgid ""
-"Mask for monochrome image.\n"
-"Takes values between [0 ... 255].\n"
-"Decides the level of details to include\n"
-"in the resulting geometry.\n"
-"0 means no detail and 255 means everything \n"
-"(which is totally black)."
-msgstr ""
-"Mask for monochrome image.\n"
-"Takes values between [0 ... 255].\n"
-"Decides the level of details to include\n"
-"in the resulting geometry.\n"
-"0 means no detail and 255 means everything \n"
-"(which is totally black)."
-
-#: flatcamTools/ToolImage.py:109
-msgid ""
-"Mask for RED color.\n"
-"Takes values between [0 ... 255].\n"
-"Decides the level of details to include\n"
-"in the resulting geometry."
-msgstr ""
-"Mask for RED color.\n"
-"Takes values between [0 ... 255].\n"
-"Decides the level of details to include\n"
-"in the resulting geometry."
-
-#: flatcamTools/ToolImage.py:122
-msgid ""
-"Mask for GREEN color.\n"
-"Takes values between [0 ... 255].\n"
-"Decides the level of details to include\n"
-"in the resulting geometry."
-msgstr ""
-"Mask for GREEN color.\n"
-"Takes values between [0 ... 255].\n"
-"Decides the level of details to include\n"
-"in the resulting geometry."
-
-#: flatcamTools/ToolImage.py:135
-msgid ""
-"Mask for BLUE color.\n"
-"Takes values between [0 ... 255].\n"
-"Decides the level of details to include\n"
-"in the resulting geometry."
-msgstr ""
-"Mask for BLUE color.\n"
-"Takes values between [0 ... 255].\n"
-"Decides the level of details to include\n"
-"in the resulting geometry."
-
-#: flatcamTools/ToolImage.py:143
-msgid "Import image"
-msgstr "Import image"
-
-#: flatcamTools/ToolImage.py:145
-msgid "Open a image of raster type and then import it in FlatCAM."
-msgstr "Open a image of raster type and then import it in FlatCAM."
-
-#: flatcamTools/ToolImage.py:182
-msgid "Image Tool"
-msgstr "Image Tool"
-
-#: flatcamTools/ToolImage.py:234 flatcamTools/ToolImage.py:237
-msgid "Import IMAGE"
-msgstr "Import IMAGE"
-
-#: flatcamTools/ToolImage.py:285
-msgid "Importing Image"
-msgstr "Importing Image"
-
-#: flatcamTools/ToolInvertGerber.py:74
-msgid "Gerber object that will be inverted."
-msgstr "Gerber object that will be inverted."
-
-#: flatcamTools/ToolInvertGerber.py:83
-msgid "Parameters for this tool"
-msgstr "Parameters for this tool"
-
-#: flatcamTools/ToolInvertGerber.py:123
-msgid "Invert Gerber"
-msgstr "Invert Gerber"
-
-#: flatcamTools/ToolInvertGerber.py:125
-msgid ""
-"Will invert the Gerber object: areas that have copper\n"
-"will be empty of copper and previous empty area will be\n"
-"filled with copper."
-msgstr ""
-"Will invert the Gerber object: areas that have copper\n"
-"will be empty of copper and previous empty area will be\n"
-"filled with copper."
-
-#: flatcamTools/ToolInvertGerber.py:184
-msgid "Invert Tool"
-msgstr "Invert Tool"
-
-#: flatcamTools/ToolMove.py:102
-msgid "MOVE: Click on the Start point ..."
-msgstr "MOVE: Click on the Start point ..."
-
-#: flatcamTools/ToolMove.py:113
-msgid "Cancelled. No object(s) to move."
-msgstr "Cancelled. No object(s) to move."
-
-#: flatcamTools/ToolMove.py:140
-msgid "MOVE: Click on the Destination point ..."
-msgstr "MOVE: Click on the Destination point ..."
-
-#: flatcamTools/ToolMove.py:163
-msgid "Moving..."
-msgstr "Moving..."
-
-#: flatcamTools/ToolMove.py:166
-msgid "No object(s) selected."
-msgstr "No object(s) selected."
-
-#: flatcamTools/ToolMove.py:221
-msgid "Error when mouse left click."
-msgstr "Error when mouse left click."
-
-#: flatcamTools/ToolNCC.py:42
-msgid "Non-Copper Clearing"
-msgstr "Non-Copper Clearing"
-
-#: flatcamTools/ToolNCC.py:88
-msgid ""
-"Specify the type of object to be cleared of excess copper.\n"
-"It can be of type: Gerber or Geometry.\n"
-"What is selected here will dictate the kind\n"
-"of objects that will populate the 'Object' combobox."
-msgstr ""
-"Specify the type of object to be cleared of excess copper.\n"
-"It can be of type: Gerber or Geometry.\n"
-"What is selected here will dictate the kind\n"
-"of objects that will populate the 'Object' combobox."
-
-#: flatcamTools/ToolNCC.py:110
-msgid "Object to be cleared of excess copper."
-msgstr "Object to be cleared of excess copper."
-
-#: flatcamTools/ToolNCC.py:122
-msgid ""
-"Tools pool from which the algorithm\n"
-"will pick the ones used for copper clearing."
-msgstr ""
-"Tools pool from which the algorithm\n"
-"will pick the ones used for copper clearing."
-
-#: flatcamTools/ToolNCC.py:138
-msgid ""
-"This is the Tool Number.\n"
-"Non copper clearing will start with the tool with the biggest \n"
-"diameter, continuing until there are no more tools.\n"
-"Only tools that create NCC clearing geometry will still be present\n"
-"in the resulting geometry. This is because with some tools\n"
-"this function will not be able to create painting geometry."
-msgstr ""
-"This is the Tool Number.\n"
-"Non copper clearing will start with the tool with the biggest \n"
-"diameter, continuing until there are no more tools.\n"
-"Only tools that create NCC clearing geometry will still be present\n"
-"in the resulting geometry. This is because with some tools\n"
-"this function will not be able to create painting geometry."
-
-#: flatcamTools/ToolNCC.py:146
-msgid ""
-"Tool Diameter. It's value (in current FlatCAM units)\n"
-"is the cut width into the material."
-msgstr ""
-"Tool Diameter. It's value (in current FlatCAM units)\n"
-"is the cut width into the material."
-
-#: flatcamTools/ToolNCC.py:150
-msgid ""
-"The Tool Type (TT) can be:\n"
-"- Circular with 1 ... 4 teeth -> it is informative only. Being circular,\n"
-"the cut width in material is exactly the tool diameter.\n"
-"- Ball -> informative only and make reference to the Ball type endmill.\n"
-"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI "
-"form\n"
-"and enable two additional UI form fields in the resulting geometry: V-Tip "
-"Dia and\n"
-"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter "
-"such\n"
-"as the cut width into material will be equal with the value in the Tool "
-"Diameter\n"
-"column of this table.\n"
-"Choosing the 'V-Shape' Tool Type automatically will select the Operation "
-"Type\n"
-"in the resulting geometry as Isolation."
-msgstr ""
-"The Tool Type (TT) can be:\n"
-"- Circular with 1 ... 4 teeth -> it is informative only. Being circular,\n"
-"the cut width in material is exactly the tool diameter.\n"
-"- Ball -> informative only and make reference to the Ball type endmill.\n"
-"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI "
-"form\n"
-"and enable two additional UI form fields in the resulting geometry: V-Tip "
-"Dia and\n"
-"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter "
-"such\n"
-"as the cut width into material will be equal with the value in the Tool "
-"Diameter\n"
-"column of this table.\n"
-"Choosing the 'V-Shape' Tool Type automatically will select the Operation "
-"Type\n"
-"in the resulting geometry as Isolation."
-
-#: flatcamTools/ToolNCC.py:296 flatcamTools/ToolPaint.py:279
-msgid ""
-"Add a new tool to the Tool Table\n"
-"with the diameter specified above."
-msgstr ""
-"Add a new tool to the Tool Table\n"
-"with the diameter specified above."
-
-#: flatcamTools/ToolNCC.py:318 flatcamTools/ToolPaint.py:301
-#: flatcamTools/ToolSolderPaste.py:130
-msgid ""
-"Delete a selection of tools in the Tool Table\n"
-"by first selecting a row(s) in the Tool Table."
-msgstr ""
-"Delete a selection of tools in the Tool Table\n"
-"by first selecting a row(s) in the Tool Table."
-
-#: flatcamTools/ToolNCC.py:554
-msgid ""
-"The type of FlatCAM object to be used as non copper clearing reference.\n"
-"It can be Gerber, Excellon or Geometry."
-msgstr ""
-"The type of FlatCAM object to be used as non copper clearing reference.\n"
-"It can be Gerber, Excellon or Geometry."
-
-#: flatcamTools/ToolNCC.py:597 flatcamTools/ToolPaint.py:537
-msgid "Generate Geometry"
-msgstr "Generate Geometry"
-
-#: flatcamTools/ToolNCC.py:1425 flatcamTools/ToolPaint.py:1184
-#: flatcamTools/ToolSolderPaste.py:888
-msgid "Please enter a tool diameter to add, in Float format."
-msgstr "Please enter a tool diameter to add, in Float format."
-
-#: flatcamTools/ToolNCC.py:1456 flatcamTools/ToolNCC.py:4013
-#: flatcamTools/ToolPaint.py:1208 flatcamTools/ToolPaint.py:3603
-#: flatcamTools/ToolSolderPaste.py:917
-msgid "Cancelled. Tool already in Tool Table."
-msgstr "Cancelled. Tool already in Tool Table."
-
-#: flatcamTools/ToolNCC.py:1463 flatcamTools/ToolNCC.py:4030
-#: flatcamTools/ToolPaint.py:1213 flatcamTools/ToolPaint.py:3620
-msgid "New tool added to Tool Table."
-msgstr "New tool added to Tool Table."
-
-#: flatcamTools/ToolNCC.py:1507 flatcamTools/ToolPaint.py:1257
-msgid "Tool from Tool Table was edited."
-msgstr "Tool from Tool Table was edited."
-
-#: flatcamTools/ToolNCC.py:1519 flatcamTools/ToolPaint.py:1269
-#: flatcamTools/ToolSolderPaste.py:978
-msgid "Cancelled. New diameter value is already in the Tool Table."
-msgstr "Cancelled. New diameter value is already in the Tool Table."
-
-#: flatcamTools/ToolNCC.py:1571 flatcamTools/ToolPaint.py:1367
-msgid "Delete failed. Select a tool to delete."
-msgstr "Delete failed. Select a tool to delete."
-
-#: flatcamTools/ToolNCC.py:1577 flatcamTools/ToolPaint.py:1373
-msgid "Tool(s) deleted from Tool Table."
-msgstr "Tool(s) deleted from Tool Table."
-
-#: flatcamTools/ToolNCC.py:1619
-msgid "Wrong Tool Dia value format entered, use a number."
-msgstr "Wrong Tool Dia value format entered, use a number."
-
-#: flatcamTools/ToolNCC.py:1628 flatcamTools/ToolPaint.py:1424
-msgid "No selected tools in Tool Table."
-msgstr "No selected tools in Tool Table."
-
-#: flatcamTools/ToolNCC.py:1704 flatcamTools/ToolPaint.py:1600
-msgid "Click the end point of the paint area."
-msgstr "Click the end point of the paint area."
-
-#: flatcamTools/ToolNCC.py:1976 flatcamTools/ToolNCC.py:2964
-msgid "NCC Tool. Preparing non-copper polygons."
-msgstr "NCC Tool. Preparing non-copper polygons."
-
-#: flatcamTools/ToolNCC.py:2035 flatcamTools/ToolNCC.py:3092
-msgid "NCC Tool. Calculate 'empty' area."
-msgstr "NCC Tool. Calculate 'empty' area."
-
-#: flatcamTools/ToolNCC.py:2054 flatcamTools/ToolNCC.py:2160
-#: flatcamTools/ToolNCC.py:2174 flatcamTools/ToolNCC.py:3105
-#: flatcamTools/ToolNCC.py:3210 flatcamTools/ToolNCC.py:3225
-#: flatcamTools/ToolNCC.py:3491 flatcamTools/ToolNCC.py:3592
-#: flatcamTools/ToolNCC.py:3607
-msgid "Buffering finished"
-msgstr "Buffering finished"
-
-#: flatcamTools/ToolNCC.py:2062 flatcamTools/ToolNCC.py:2181
-#: flatcamTools/ToolNCC.py:3113 flatcamTools/ToolNCC.py:3232
-#: flatcamTools/ToolNCC.py:3498 flatcamTools/ToolNCC.py:3614
-msgid "Could not get the extent of the area to be non copper cleared."
-msgstr "Could not get the extent of the area to be non copper cleared."
-
-#: flatcamTools/ToolNCC.py:2089 flatcamTools/ToolNCC.py:2167
-#: flatcamTools/ToolNCC.py:3140 flatcamTools/ToolNCC.py:3217
-#: flatcamTools/ToolNCC.py:3518 flatcamTools/ToolNCC.py:3599
-msgid ""
-"Isolation geometry is broken. Margin is less than isolation tool diameter."
-msgstr ""
-"Isolation geometry is broken. Margin is less than isolation tool diameter."
-
-#: flatcamTools/ToolNCC.py:2184 flatcamTools/ToolNCC.py:3236
-#: flatcamTools/ToolNCC.py:3617
-msgid "The selected object is not suitable for copper clearing."
-msgstr "The selected object is not suitable for copper clearing."
-
-#: flatcamTools/ToolNCC.py:2191 flatcamTools/ToolNCC.py:3243
-msgid "NCC Tool. Finished calculation of 'empty' area."
-msgstr "NCC Tool. Finished calculation of 'empty' area."
-
-#: flatcamTools/ToolNCC.py:2222 flatcamTools/ToolNCC.py:2224
-#: flatcamTools/ToolNCC.py:2916 flatcamTools/ToolNCC.py:2918
-msgid "Non-Copper clearing ..."
-msgstr "Non-Copper clearing ..."
-
-#: flatcamTools/ToolNCC.py:2278 flatcamTools/ToolNCC.py:3060
-msgid ""
-"NCC Tool. Finished non-copper polygons. Normal copper clearing task started."
-msgstr ""
-"NCC Tool. Finished non-copper polygons. Normal copper clearing task started."
-
-#: flatcamTools/ToolNCC.py:2312 flatcamTools/ToolNCC.py:2592
-msgid "NCC Tool failed creating bounding box."
-msgstr "NCC Tool failed creating bounding box."
-
-#: flatcamTools/ToolNCC.py:2326 flatcamTools/ToolNCC.py:2609
-#: flatcamTools/ToolNCC.py:3256 flatcamTools/ToolNCC.py:3642
-msgid "NCC Tool clearing with tool diameter"
-msgstr "NCC Tool clearing with tool diameter"
-
-#: flatcamTools/ToolNCC.py:2326 flatcamTools/ToolNCC.py:2609
-#: flatcamTools/ToolNCC.py:3256 flatcamTools/ToolNCC.py:3642
-msgid "started."
-msgstr "started."
-
-#: flatcamTools/ToolNCC.py:2518 flatcamTools/ToolNCC.py:3417
-msgid ""
-"There is no NCC 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 ""
-"There is no NCC 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."
-
-#: flatcamTools/ToolNCC.py:2527 flatcamTools/ToolNCC.py:3426
-msgid "NCC Tool clear all done."
-msgstr "NCC Tool clear all done."
-
-#: flatcamTools/ToolNCC.py:2530 flatcamTools/ToolNCC.py:3429
-msgid "NCC Tool clear all done but the copper features isolation is broken for"
-msgstr ""
-"NCC Tool clear all done but the copper features isolation is broken for"
-
-#: flatcamTools/ToolNCC.py:2532 flatcamTools/ToolNCC.py:2817
-#: flatcamTools/ToolNCC.py:3431 flatcamTools/ToolNCC.py:3814
-msgid "tools"
-msgstr "tools"
-
-#: flatcamTools/ToolNCC.py:2813 flatcamTools/ToolNCC.py:3810
-msgid "NCC Tool Rest Machining clear all done."
-msgstr "NCC Tool Rest Machining clear all done."
-
-#: flatcamTools/ToolNCC.py:2816 flatcamTools/ToolNCC.py:3813
-msgid ""
-"NCC Tool Rest Machining clear all done but the copper features isolation is "
-"broken for"
-msgstr ""
-"NCC Tool Rest Machining clear all done but the copper features isolation is "
-"broken for"
-
-#: flatcamTools/ToolNCC.py:2928
-msgid "NCC Tool started. Reading parameters."
-msgstr "NCC Tool started. Reading parameters."
-
-#: flatcamTools/ToolNCC.py:3906
-msgid ""
-"Try to use the Buffering Type = Full in Preferences -> Gerber General. "
-"Reload the Gerber file after this change."
-msgstr ""
-"Try to use the Buffering Type = Full in Preferences -> Gerber General. "
-"Reload the Gerber file after this change."
-
-#: flatcamTools/ToolOptimal.py:79
-msgid "Number of decimals kept for found distances."
-msgstr "Number of decimals kept for found distances."
-
-#: flatcamTools/ToolOptimal.py:87
-msgid "Minimum distance"
-msgstr "Minimum distance"
-
-#: flatcamTools/ToolOptimal.py:88
-msgid "Display minimum distance between copper features."
-msgstr "Display minimum distance between copper features."
-
-#: flatcamTools/ToolOptimal.py:92
-msgid "Determined"
-msgstr "Determined"
-
-#: flatcamTools/ToolOptimal.py:106
-msgid "Occurring"
-msgstr "Occurring"
-
-#: flatcamTools/ToolOptimal.py:107
-msgid "How many times this minimum is found."
-msgstr "How many times this minimum is found."
-
-#: flatcamTools/ToolOptimal.py:113
-msgid "Minimum points coordinates"
-msgstr "Minimum points coordinates"
-
-#: flatcamTools/ToolOptimal.py:114 flatcamTools/ToolOptimal.py:120
-msgid "Coordinates for points where minimum distance was found."
-msgstr "Coordinates for points where minimum distance was found."
-
-#: flatcamTools/ToolOptimal.py:133 flatcamTools/ToolOptimal.py:209
-msgid "Jump to selected position"
-msgstr "Jump to selected position"
-
-#: flatcamTools/ToolOptimal.py:135 flatcamTools/ToolOptimal.py:211
-msgid ""
-"Select a position in the Locations text box and then\n"
-"click this button."
-msgstr ""
-"Select a position in the Locations text box and then\n"
-"click this button."
-
-#: flatcamTools/ToolOptimal.py:143
-msgid "Other distances"
-msgstr "Other distances"
-
-#: flatcamTools/ToolOptimal.py:144
-msgid ""
-"Will display other distances in the Gerber file ordered from\n"
-"the minimum to the maximum, not including the absolute minimum."
-msgstr ""
-"Will display other distances in the Gerber file ordered from\n"
-"the minimum to the maximum, not including the absolute minimum."
-
-#: flatcamTools/ToolOptimal.py:149
-msgid "Other distances points coordinates"
-msgstr "Other distances points coordinates"
-
-#: flatcamTools/ToolOptimal.py:150 flatcamTools/ToolOptimal.py:164
-#: flatcamTools/ToolOptimal.py:171 flatcamTools/ToolOptimal.py:188
-#: flatcamTools/ToolOptimal.py:195
-msgid ""
-"Other distances and the coordinates for points\n"
-"where the distance was found."
-msgstr ""
-"Other distances and the coordinates for points\n"
-"where the distance was found."
-
-#: flatcamTools/ToolOptimal.py:163
-msgid "Gerber distances"
-msgstr "Gerber distances"
-
-#: flatcamTools/ToolOptimal.py:187
-msgid "Points coordinates"
-msgstr "Points coordinates"
-
-#: flatcamTools/ToolOptimal.py:219
-msgid "Find Minimum"
-msgstr "Find Minimum"
-
-#: flatcamTools/ToolOptimal.py:221
-msgid ""
-"Calculate the minimum distance between copper features,\n"
-"this will allow the determination of the right tool to\n"
-"use for isolation or copper clearing."
-msgstr ""
-"Calculate the minimum distance between copper features,\n"
-"this will allow the determination of the right tool to\n"
-"use for isolation or copper clearing."
-
-#: flatcamTools/ToolOptimal.py:346
-msgid "Only Gerber objects can be evaluated."
-msgstr "Only Gerber objects can be evaluated."
-
-#: flatcamTools/ToolOptimal.py:352
-msgid ""
-"Optimal Tool. Started to search for the minimum distance between copper "
-"features."
-msgstr ""
-"Optimal Tool. Started to search for the minimum distance between copper "
-"features."
-
-#: flatcamTools/ToolOptimal.py:362
-msgid "Optimal Tool. Parsing geometry for aperture"
-msgstr "Optimal Tool. Parsing geometry for aperture"
-
-#: flatcamTools/ToolOptimal.py:373
-msgid "Optimal Tool. Creating a buffer for the object geometry."
-msgstr "Optimal Tool. Creating a buffer for the object geometry."
-
-#: flatcamTools/ToolOptimal.py:383
-msgid ""
-"The Gerber object has one Polygon as geometry.\n"
-"There are no distances between geometry elements to be found."
-msgstr ""
-"The Gerber object has one Polygon as geometry.\n"
-"There are no distances between geometry elements to be found."
-
-#: flatcamTools/ToolOptimal.py:388
-msgid ""
-"Optimal Tool. Finding the distances between each two elements. Iterations"
-msgstr ""
-"Optimal Tool. Finding the distances between each two elements. Iterations"
-
-#: flatcamTools/ToolOptimal.py:423
-msgid "Optimal Tool. Finding the minimum distance."
-msgstr "Optimal Tool. Finding the minimum distance."
-
-#: flatcamTools/ToolOptimal.py:439
-msgid "Optimal Tool. Finished successfully."
-msgstr "Optimal Tool. Finished successfully."
-
-#: flatcamTools/ToolPDF.py:157 flatcamTools/ToolPDF.py:161
-msgid "Open PDF"
-msgstr "Open PDF"
-
-#: flatcamTools/ToolPDF.py:164
-msgid "Open PDF cancelled"
-msgstr "Open PDF cancelled"
-
-#: flatcamTools/ToolPDF.py:195
-msgid "Parsing PDF file ..."
-msgstr "Parsing PDF file ..."
-
-#: flatcamTools/ToolPDF.py:278 flatcamTools/ToolPDF.py:353
-#, python-format
-msgid "Rendering PDF layer #%d ..."
-msgstr "Rendering PDF layer #%d ..."
-
-#: flatcamTools/ToolPDF.py:283 flatcamTools/ToolPDF.py:358
-msgid "Open PDF file failed."
-msgstr "Open PDF file failed."
-
-#: flatcamTools/ToolPDF.py:289 flatcamTools/ToolPDF.py:363
-msgid "Rendered"
-msgstr "Rendered"
-
-#: flatcamTools/ToolPaint.py:82
-msgid ""
-"Specify the type of object to be painted.\n"
-"It can be of type: Gerber or Geometry.\n"
-"What is selected here will dictate the kind\n"
-"of objects that will populate the 'Object' combobox."
-msgstr ""
-"Specify the type of object to be painted.\n"
-"It can be of type: Gerber or Geometry.\n"
-"What is selected here will dictate the kind\n"
-"of objects that will populate the 'Object' combobox."
-
-#: flatcamTools/ToolPaint.py:104
-msgid "Object to be painted."
-msgstr "Object to be painted."
-
-#: flatcamTools/ToolPaint.py:117
-msgid ""
-"Tools pool from which the algorithm\n"
-"will pick the ones used for painting."
-msgstr ""
-"Tools pool from which the algorithm\n"
-"will pick the ones used for painting."
-
-#: flatcamTools/ToolPaint.py:134
-msgid ""
-"This is the Tool Number.\n"
-"Painting will start with the tool with the biggest diameter,\n"
-"continuing until there are no more tools.\n"
-"Only tools that create painting geometry will still be present\n"
-"in the resulting geometry. This is because with some tools\n"
-"this function will not be able to create painting geometry."
-msgstr ""
-"This is the Tool Number.\n"
-"Painting will start with the tool with the biggest diameter,\n"
-"continuing until there are no more tools.\n"
-"Only tools that create painting geometry will still be present\n"
-"in the resulting geometry. This is because with some tools\n"
-"this function will not be able to create painting geometry."
-
-#: flatcamTools/ToolPaint.py:146
-msgid ""
-"The Tool Type (TT) can be:\n"
-"- Circular -> it is informative only. Being circular,\n"
-"the cut width in material is exactly the tool diameter.\n"
-"- Ball -> informative only and make reference to the Ball type endmill.\n"
-"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI "
-"form\n"
-"and enable two additional UI form fields in the resulting geometry: V-Tip "
-"Dia and\n"
-"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter "
-"such\n"
-"as the cut width into material will be equal with the value in the Tool "
-"Diameter\n"
-"column of this table.\n"
-"Choosing the 'V-Shape' Tool Type automatically will select the Operation "
-"Type\n"
-"in the resulting geometry as Isolation."
-msgstr ""
-"The Tool Type (TT) can be:\n"
-"- Circular -> it is informative only. Being circular,\n"
-"the cut width in material is exactly the tool diameter.\n"
-"- Ball -> informative only and make reference to the Ball type endmill.\n"
-"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI "
-"form\n"
-"and enable two additional UI form fields in the resulting geometry: V-Tip "
-"Dia and\n"
-"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter "
-"such\n"
-"as the cut width into material will be equal with the value in the Tool "
-"Diameter\n"
-"column of this table.\n"
-"Choosing the 'V-Shape' Tool Type automatically will select the Operation "
-"Type\n"
-"in the resulting geometry as Isolation."
-
-#: flatcamTools/ToolPaint.py:498
-msgid ""
-"The type of FlatCAM object to be used as paint reference.\n"
-"It can be Gerber, Excellon or Geometry."
-msgstr ""
-"The type of FlatCAM object to be used as paint reference.\n"
-"It can be Gerber, Excellon or Geometry."
-
-#: flatcamTools/ToolPaint.py:539
-msgid ""
-"- 'Area Selection' - left mouse click to start selection of the area to be "
-"painted.\n"
-"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple "
-"areas.\n"
-"- 'All Polygons' - the Paint will start after click.\n"
-"- 'Reference Object' - will do non copper clearing within the area\n"
-"specified by another object."
-msgstr ""
-"- 'Area Selection' - left mouse click to start selection of the area to be "
-"painted.\n"
-"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple "
-"areas.\n"
-"- 'All Polygons' - the Paint will start after click.\n"
-"- 'Reference Object' - will do non copper clearing within the area\n"
-"specified by another object."
-
-#: flatcamTools/ToolPaint.py:1393
-#, python-format
-msgid "Could not retrieve object: %s"
-msgstr "Could not retrieve object: %s"
-
-#: flatcamTools/ToolPaint.py:1403
-msgid "Can't do Paint on MultiGeo geometries"
-msgstr "Can't do Paint on MultiGeo geometries"
-
-#: flatcamTools/ToolPaint.py:1433
-msgid "Click on a polygon to paint it."
-msgstr "Click on a polygon to paint it."
-
-#: flatcamTools/ToolPaint.py:1453
-msgid "Click the start point of the paint area."
-msgstr "Click the start point of the paint area."
-
-#: flatcamTools/ToolPaint.py:1518
-msgid "Click to add next polygon or right click to start painting."
-msgstr "Click to add next polygon or right click to start painting."
-
-#: flatcamTools/ToolPaint.py:1531
-msgid "Click to add/remove next polygon or right click to start painting."
-msgstr "Click to add/remove next polygon or right click to start painting."
-
-#: flatcamTools/ToolPaint.py:2029
-msgid "Painting polygon with method: lines."
-msgstr "Painting polygon with method: lines."
-
-#: flatcamTools/ToolPaint.py:2041
-msgid "Failed. Painting polygon with method: seed."
-msgstr "Failed. Painting polygon with method: seed."
-
-#: flatcamTools/ToolPaint.py:2052
-msgid "Failed. Painting polygon with method: standard."
-msgstr "Failed. Painting polygon with method: standard."
-
-#: flatcamTools/ToolPaint.py:2068
-msgid "Geometry could not be painted completely"
-msgstr "Geometry could not be painted completely"
-
-#: flatcamTools/ToolPaint.py:2097 flatcamTools/ToolPaint.py:2100
-#: flatcamTools/ToolPaint.py:2108 flatcamTools/ToolPaint.py:2411
-#: flatcamTools/ToolPaint.py:2414 flatcamTools/ToolPaint.py:2422
-#: flatcamTools/ToolPaint.py:2910 flatcamTools/ToolPaint.py:2913
-#: flatcamTools/ToolPaint.py:2919
-msgid "Paint Tool."
-msgstr "Paint Tool."
-
-#: flatcamTools/ToolPaint.py:2097 flatcamTools/ToolPaint.py:2100
-#: flatcamTools/ToolPaint.py:2108
-msgid "Normal painting polygon task started."
-msgstr "Normal painting polygon task started."
-
-#: flatcamTools/ToolPaint.py:2098 flatcamTools/ToolPaint.py:2412
-#: flatcamTools/ToolPaint.py:2911
-msgid "Buffering geometry..."
-msgstr "Buffering geometry..."
-
-#: flatcamTools/ToolPaint.py:2120 flatcamTools/ToolPaint.py:2429
-#: flatcamTools/ToolPaint.py:2927
-msgid "No polygon found."
-msgstr "No polygon found."
-
-#: flatcamTools/ToolPaint.py:2150
-msgid "Painting polygon..."
-msgstr "Painting polygon..."
-
-#: flatcamTools/ToolPaint.py:2160 flatcamTools/ToolPaint.py:2475
-#: flatcamTools/ToolPaint.py:2665 flatcamTools/ToolPaint.py:2973
-#: flatcamTools/ToolPaint.py:3152
-msgid "Painting with tool diameter = "
-msgstr "Painting with tool diameter = "
-
-#: flatcamTools/ToolPaint.py:2161 flatcamTools/ToolPaint.py:2476
-#: flatcamTools/ToolPaint.py:2666 flatcamTools/ToolPaint.py:2974
-#: flatcamTools/ToolPaint.py:3153
-msgid "started"
-msgstr "started"
-
-#: flatcamTools/ToolPaint.py:2186 flatcamTools/ToolPaint.py:2502
-#: flatcamTools/ToolPaint.py:2692 flatcamTools/ToolPaint.py:3000
-#: flatcamTools/ToolPaint.py:3179
-msgid "Margin parameter too big. Tool is not used"
-msgstr "Margin parameter too big. Tool is not used"
-
-#: flatcamTools/ToolPaint.py:2244 flatcamTools/ToolPaint.py:2571
-#: flatcamTools/ToolPaint.py:2749 flatcamTools/ToolPaint.py:3063
-#: flatcamTools/ToolPaint.py:3241
-msgid ""
-"Could not do Paint. Try a different combination of parameters. Or a "
-"different strategy of paint"
-msgstr ""
-"Could not do Paint. Try a different combination of parameters. Or a "
-"different strategy of paint"
-
-#: flatcamTools/ToolPaint.py:2301 flatcamTools/ToolPaint.py:2637
-#: flatcamTools/ToolPaint.py:2806 flatcamTools/ToolPaint.py:3124
-#: flatcamTools/ToolPaint.py:3303
-msgid ""
-"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 ""
-"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."
-
-#: flatcamTools/ToolPaint.py:2324
-msgid "Paint Single failed."
-msgstr "Paint Single failed."
-
-#: flatcamTools/ToolPaint.py:2330
-msgid "Paint Single Done."
-msgstr "Paint Single Done."
-
-#: flatcamTools/ToolPaint.py:2332 flatcamTools/ToolPaint.py:2842
-#: flatcamTools/ToolPaint.py:3339
-msgid "Polygon Paint started ..."
-msgstr "Polygon Paint started ..."
-
-#: flatcamTools/ToolPaint.py:2411 flatcamTools/ToolPaint.py:2414
-#: flatcamTools/ToolPaint.py:2422
-msgid "Paint all polygons task started."
-msgstr "Paint all polygons task started."
-
-#: flatcamTools/ToolPaint.py:2453 flatcamTools/ToolPaint.py:2951
-msgid "Painting polygons..."
-msgstr "Painting polygons..."
-
-#: flatcamTools/ToolPaint.py:2646
-msgid "Paint All Done."
-msgstr "Paint All Done."
-
-#: flatcamTools/ToolPaint.py:2815 flatcamTools/ToolPaint.py:3312
-msgid "Paint All with Rest-Machining done."
-msgstr "Paint All with Rest-Machining done."
-
-#: flatcamTools/ToolPaint.py:2834
-msgid "Paint All failed."
-msgstr "Paint All failed."
-
-#: flatcamTools/ToolPaint.py:2840
-msgid "Paint Poly All Done."
-msgstr "Paint Poly All Done."
-
-#: flatcamTools/ToolPaint.py:2910 flatcamTools/ToolPaint.py:2913
-#: flatcamTools/ToolPaint.py:2919
-msgid "Painting area task started."
-msgstr "Painting area task started."
-
-#: flatcamTools/ToolPaint.py:3133
-msgid "Paint Area Done."
-msgstr "Paint Area Done."
-
-#: flatcamTools/ToolPaint.py:3331
-msgid "Paint Area failed."
-msgstr "Paint Area failed."
-
-#: flatcamTools/ToolPaint.py:3337
-msgid "Paint Poly Area Done."
-msgstr "Paint Poly Area Done."
-
-#: flatcamTools/ToolPanelize.py:34
-msgid "Panelize PCB"
-msgstr "Panelize PCB"
-
-#: flatcamTools/ToolPanelize.py:56
-msgid ""
-"Specify the type of object to be panelized\n"
-"It can be of type: Gerber, Excellon or Geometry.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Object combobox."
-msgstr ""
-"Specify the type of object to be panelized\n"
-"It can be of type: Gerber, Excellon or Geometry.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Object combobox."
-
-#: flatcamTools/ToolPanelize.py:89
-msgid ""
-"Object to be panelized. This means that it will\n"
-"be duplicated in an array of rows and columns."
-msgstr ""
-"Object to be panelized. This means that it will\n"
-"be duplicated in an array of rows and columns."
-
-#: flatcamTools/ToolPanelize.py:102
-msgid "Penelization Reference"
-msgstr "Penelization Reference"
-
-#: flatcamTools/ToolPanelize.py:104
-msgid ""
-"Choose the reference for panelization:\n"
-"- Object = the bounding box of a different object\n"
-"- Bounding Box = the bounding box of the object to be panelized\n"
-"\n"
-"The reference is useful when doing panelization for more than one\n"
-"object. The spacings (really offsets) will be applied in reference\n"
-"to this reference object therefore maintaining the panelized\n"
-"objects in sync."
-msgstr ""
-"Choose the reference for panelization:\n"
-"- Object = the bounding box of a different object\n"
-"- Bounding Box = the bounding box of the object to be panelized\n"
-"\n"
-"The reference is useful when doing panelization for more than one\n"
-"object. The spacings (really offsets) will be applied in reference\n"
-"to this reference object therefore maintaining the panelized\n"
-"objects in sync."
-
-#: flatcamTools/ToolPanelize.py:125
-msgid "Box Type"
-msgstr "Box Type"
-
-#: flatcamTools/ToolPanelize.py:127
-msgid ""
-"Specify the type of object to be used as an container for\n"
-"panelization. It can be: Gerber or Geometry type.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Box Object combobox."
-msgstr ""
-"Specify the type of object to be used as an container for\n"
-"panelization. It can be: Gerber or Geometry type.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Box Object combobox."
-
-#: flatcamTools/ToolPanelize.py:141
-msgid ""
-"The actual object that is used as container for the\n"
-" selected object that is to be panelized."
-msgstr ""
-"The actual object that is used as container for the\n"
-" selected object that is to be panelized."
-
-#: flatcamTools/ToolPanelize.py:147
-msgid "Panel Data"
-msgstr "Panel Data"
-
-#: flatcamTools/ToolPanelize.py:149
-msgid ""
-"This informations will shape the resulting panel.\n"
-"The number of rows and columns will set how many\n"
-"duplicates of the original geometry will be generated.\n"
-"\n"
-"The spacings will set the distance between any two\n"
-"elements of the panel array."
-msgstr ""
-"This informations will shape the resulting panel.\n"
-"The number of rows and columns will set how many\n"
-"duplicates of the original geometry will be generated.\n"
-"\n"
-"The spacings will set the distance between any two\n"
-"elements of the panel array."
-
-#: flatcamTools/ToolPanelize.py:208
-msgid ""
-"Choose the type of object for the panel object:\n"
-"- Geometry\n"
-"- Gerber"
-msgstr ""
-"Choose the type of object for the panel object:\n"
-"- Geometry\n"
-"- Gerber"
-
-#: flatcamTools/ToolPanelize.py:216
-msgid "Constrain panel within"
-msgstr "Constrain panel within"
-
-#: flatcamTools/ToolPanelize.py:252
-msgid "Panelize Object"
-msgstr "Panelize Object"
-
-#: flatcamTools/ToolPanelize.py:254 flatcamTools/ToolRulesCheck.py:501
-msgid ""
-"Panelize the specified object around the specified box.\n"
-"In other words it creates multiple copies of the source object,\n"
-"arranged in a 2D array of rows and columns."
-msgstr ""
-"Panelize the specified object around the specified box.\n"
-"In other words it creates multiple copies of the source object,\n"
-"arranged in a 2D array of rows and columns."
-
-#: flatcamTools/ToolPanelize.py:322
-msgid "Panel. Tool"
-msgstr "Panel. Tool"
-
-#: flatcamTools/ToolPanelize.py:457
-msgid "Columns or Rows are zero value. Change them to a positive integer."
-msgstr "Columns or Rows are zero value. Change them to a positive integer."
-
-#: flatcamTools/ToolPanelize.py:494
-msgid "Generating panel ... "
-msgstr "Generating panel ... "
-
-#: flatcamTools/ToolPanelize.py:777
-msgid "Generating panel ... Adding the Gerber code."
-msgstr "Generating panel ... Adding the Gerber code."
-
-#: flatcamTools/ToolPanelize.py:785
-msgid "Generating panel... Spawning copies"
-msgstr "Generating panel... Spawning copies"
-
-#: flatcamTools/ToolPanelize.py:792
-msgid "Panel done..."
-msgstr "Panel done..."
-
-#: flatcamTools/ToolPanelize.py:795
-#, python-brace-format
-msgid ""
-"{text} Too big for the constrain area. Final panel has {col} columns and "
-"{row} rows"
-msgstr ""
-"{text} Too big for the constrain area. Final panel has {col} columns and "
-"{row} rows"
-
-#: flatcamTools/ToolPanelize.py:804
-msgid "Panel created successfully."
-msgstr "Panel created successfully."
-
-#: flatcamTools/ToolPcbWizard.py:31
-msgid "PcbWizard Import Tool"
-msgstr "PcbWizard Import Tool"
-
-#: flatcamTools/ToolPcbWizard.py:40
-msgid "Import 2-file Excellon"
-msgstr "Import 2-file Excellon"
-
-#: flatcamTools/ToolPcbWizard.py:51
-msgid "Load files"
-msgstr "Load files"
-
-#: flatcamTools/ToolPcbWizard.py:57
-msgid "Excellon file"
-msgstr "Excellon file"
-
-#: flatcamTools/ToolPcbWizard.py:59
-msgid ""
-"Load the Excellon file.\n"
-"Usually it has a .DRL extension"
-msgstr ""
-"Load the Excellon file.\n"
-"Usually it has a .DRL extension"
-
-#: flatcamTools/ToolPcbWizard.py:65
-msgid "INF file"
-msgstr "INF file"
-
-#: flatcamTools/ToolPcbWizard.py:67
-msgid "Load the INF file."
-msgstr "Load the INF file."
-
-#: flatcamTools/ToolPcbWizard.py:79
-msgid "Tool Number"
-msgstr "Tool Number"
-
-#: flatcamTools/ToolPcbWizard.py:81
-msgid "Tool diameter in file units."
-msgstr "Tool diameter in file units."
-
-#: flatcamTools/ToolPcbWizard.py:87
-msgid "Excellon format"
-msgstr "Excellon format"
-
-#: flatcamTools/ToolPcbWizard.py:95
-msgid "Int. digits"
-msgstr "Int. digits"
-
-#: flatcamTools/ToolPcbWizard.py:97
-msgid "The number of digits for the integral part of the coordinates."
-msgstr "The number of digits for the integral part of the coordinates."
-
-#: flatcamTools/ToolPcbWizard.py:104
-msgid "Frac. digits"
-msgstr "Frac. digits"
-
-#: flatcamTools/ToolPcbWizard.py:106
-msgid "The number of digits for the fractional part of the coordinates."
-msgstr "The number of digits for the fractional part of the coordinates."
-
-#: flatcamTools/ToolPcbWizard.py:113
-msgid "No Suppression"
-msgstr "No Suppression"
-
-#: flatcamTools/ToolPcbWizard.py:114
-msgid "Zeros supp."
-msgstr "Zeros supp."
-
-#: flatcamTools/ToolPcbWizard.py:116
-msgid ""
-"The type of zeros suppression used.\n"
-"Can be of type:\n"
-"- LZ = leading zeros are kept\n"
-"- TZ = trailing zeros are kept\n"
-"- No Suppression = no zero suppression"
-msgstr ""
-"The type of zeros suppression used.\n"
-"Can be of type:\n"
-"- LZ = leading zeros are kept\n"
-"- TZ = trailing zeros are kept\n"
-"- No Suppression = no zero suppression"
-
-#: flatcamTools/ToolPcbWizard.py:129
-msgid ""
-"The type of units that the coordinates and tool\n"
-"diameters are using. Can be INCH or MM."
-msgstr ""
-"The type of units that the coordinates and tool\n"
-"diameters are using. Can be INCH or MM."
-
-#: flatcamTools/ToolPcbWizard.py:136
-msgid "Import Excellon"
-msgstr "Import Excellon"
-
-#: flatcamTools/ToolPcbWizard.py:138
-msgid ""
-"Import in FlatCAM an Excellon file\n"
-"that store it's information's in 2 files.\n"
-"One usually has .DRL extension while\n"
-"the other has .INF extension."
-msgstr ""
-"Import in FlatCAM an Excellon file\n"
-"that store it's information's in 2 files.\n"
-"One usually has .DRL extension while\n"
-"the other has .INF extension."
-
-#: flatcamTools/ToolPcbWizard.py:197
-msgid "PCBWizard Tool"
-msgstr "PCBWizard Tool"
-
-#: flatcamTools/ToolPcbWizard.py:291 flatcamTools/ToolPcbWizard.py:295
-msgid "Load PcbWizard Excellon file"
-msgstr "Load PcbWizard Excellon file"
-
-#: flatcamTools/ToolPcbWizard.py:314 flatcamTools/ToolPcbWizard.py:318
-msgid "Load PcbWizard INF file"
-msgstr "Load PcbWizard INF file"
-
-#: flatcamTools/ToolPcbWizard.py:366
-msgid ""
-"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 ""
-"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."
-
-#: flatcamTools/ToolPcbWizard.py:387
-msgid "PcbWizard .INF file loaded."
-msgstr "PcbWizard .INF file loaded."
-
-#: flatcamTools/ToolPcbWizard.py:392
-msgid "Main PcbWizard Excellon file loaded."
-msgstr "Main PcbWizard Excellon file loaded."
-
-#: flatcamTools/ToolPcbWizard.py:427
-msgid "Cannot parse file"
-msgstr "Cannot parse file"
-
-#: flatcamTools/ToolPcbWizard.py:450
-msgid "Importing Excellon."
-msgstr "Importing Excellon."
-
-#: flatcamTools/ToolPcbWizard.py:457
-msgid "Import Excellon file failed."
-msgstr "Import Excellon file failed."
-
-#: flatcamTools/ToolPcbWizard.py:464
-msgid "Imported"
-msgstr "Imported"
-
-#: flatcamTools/ToolPcbWizard.py:467
-msgid "Excellon merging is in progress. Please wait..."
-msgstr "Excellon merging is in progress. Please wait..."
-
-#: flatcamTools/ToolPcbWizard.py:469
-msgid "The imported Excellon file is empty."
-msgstr "The imported Excellon file is empty."
-
-#: flatcamTools/ToolProperties.py:131
-msgid "Object Properties are displayed."
-msgstr "Object Properties are displayed."
-
-#: flatcamTools/ToolProperties.py:136
-msgid "Properties Tool"
-msgstr "Properties Tool"
-
-#: flatcamTools/ToolProperties.py:150
-msgid "TYPE"
-msgstr "TYPE"
-
-#: flatcamTools/ToolProperties.py:151
-msgid "NAME"
-msgstr "NAME"
-
-#: flatcamTools/ToolProperties.py:153
-msgid "Dimensions"
-msgstr "Dimensions"
-
-#: flatcamTools/ToolProperties.py:181
-msgid "Geo Type"
-msgstr "Geo Type"
-
-#: flatcamTools/ToolProperties.py:184
-msgid "Single-Geo"
-msgstr "Single-Geo"
-
-#: flatcamTools/ToolProperties.py:185
-msgid "Multi-Geo"
-msgstr "Multi-Geo"
-
-#: flatcamTools/ToolProperties.py:196
-msgid "Calculating dimensions ... Please wait."
-msgstr "Calculating dimensions ... Please wait."
-
-#: flatcamTools/ToolProperties.py:339 flatcamTools/ToolProperties.py:343
-#: flatcamTools/ToolProperties.py:345
-msgid "Inch"
-msgstr "Inch"
-
-#: flatcamTools/ToolProperties.py:339 flatcamTools/ToolProperties.py:344
-#: flatcamTools/ToolProperties.py:346
-msgid "Metric"
-msgstr "Metric"
-
-#: flatcamTools/ToolProperties.py:421 flatcamTools/ToolProperties.py:486
-msgid "Drills number"
-msgstr "Drills number"
-
-#: flatcamTools/ToolProperties.py:422 flatcamTools/ToolProperties.py:488
-msgid "Slots number"
-msgstr "Slots number"
-
-#: flatcamTools/ToolProperties.py:424
-msgid "Drills total number:"
-msgstr "Drills total number:"
-
-#: flatcamTools/ToolProperties.py:425
-msgid "Slots total number:"
-msgstr "Slots total number:"
-
-#: flatcamTools/ToolProperties.py:452 flatcamTools/ToolProperties.py:455
-#: flatcamTools/ToolProperties.py:458 flatcamTools/ToolProperties.py:483
-msgid "Present"
-msgstr "Present"
-
-#: flatcamTools/ToolProperties.py:453 flatcamTools/ToolProperties.py:484
-msgid "Solid Geometry"
-msgstr "Solid Geometry"
-
-#: flatcamTools/ToolProperties.py:456
-msgid "GCode Text"
-msgstr "GCode Text"
-
-#: flatcamTools/ToolProperties.py:459
-msgid "GCode Geometry"
-msgstr "GCode Geometry"
-
-#: flatcamTools/ToolProperties.py:462
-msgid "Data"
-msgstr "Data"
-
-#: flatcamTools/ToolProperties.py:495
-msgid "Depth of Cut"
-msgstr "Depth of Cut"
-
-#: flatcamTools/ToolProperties.py:507
-msgid "Clearance Height"
-msgstr "Clearance Height"
-
-#: flatcamTools/ToolProperties.py:539
-msgid "Routing time"
-msgstr "Routing time"
-
-#: flatcamTools/ToolProperties.py:546
-msgid "Travelled distance"
-msgstr "Travelled distance"
-
-#: flatcamTools/ToolProperties.py:564
-msgid "Width"
-msgstr "Width"
-
-#: flatcamTools/ToolProperties.py:570 flatcamTools/ToolProperties.py:578
-msgid "Box Area"
-msgstr "Box Area"
-
-#: flatcamTools/ToolProperties.py:573 flatcamTools/ToolProperties.py:581
-msgid "Convex_Hull Area"
-msgstr "Convex_Hull Area"
-
-#: flatcamTools/ToolProperties.py:588 flatcamTools/ToolProperties.py:591
-msgid "Copper Area"
-msgstr "Copper Area"
-
-#: flatcamTools/ToolPunchGerber.py:30 flatcamTools/ToolPunchGerber.py:323
-msgid "Punch Gerber"
-msgstr "Punch Gerber"
-
-#: flatcamTools/ToolPunchGerber.py:65
-msgid "Gerber into which to punch holes"
-msgstr "Gerber into which to punch holes"
-
-#: flatcamTools/ToolPunchGerber.py:85
-msgid "ALL"
-msgstr "ALL"
-
-#: flatcamTools/ToolPunchGerber.py:166
-msgid ""
-"Remove the geometry of Excellon from the Gerber to create the holes in pads."
-msgstr ""
-"Remove the geometry of Excellon from the Gerber to create the holes in pads."
-
-#: flatcamTools/ToolPunchGerber.py:325
-msgid ""
-"Create a Gerber object from the selected object, within\n"
-"the specified box."
-msgstr ""
-"Create a Gerber object from the selected object, within\n"
-"the specified box."
-
-#: flatcamTools/ToolPunchGerber.py:425
-msgid "Punch Tool"
-msgstr "Punch Tool"
-
-#: flatcamTools/ToolPunchGerber.py:599
-msgid "The value of the fixed diameter is 0.0. Aborting."
-msgstr "The value of the fixed diameter is 0.0. Aborting."
-
-#: flatcamTools/ToolPunchGerber.py:607 flatcamTools/ToolPunchGerber.py:619
-msgid ""
-"Could not generate punched hole Gerber because the punch hole size is bigger "
-"than some of the apertures in the Gerber object."
-msgstr ""
-"Could not generate punched hole Gerber because the punch hole size is bigger "
-"than some of the apertures in the Gerber object."
-
-#: flatcamTools/ToolPunchGerber.py:656
-msgid ""
-"Could not generate punched hole Gerber because the newly created object "
-"geometry is the same as the one in the source object geometry..."
-msgstr ""
-"Could not generate punched hole Gerber because the newly created object "
-"geometry is the same as the one in the source object geometry..."
-
-#: flatcamTools/ToolQRCode.py:80
-msgid "Gerber Object to which the QRCode will be added."
-msgstr "Gerber Object to which the QRCode will be added."
-
-#: flatcamTools/ToolQRCode.py:93
-msgid "QRCode Parameters"
-msgstr "QRCode Parameters"
-
-#: flatcamTools/ToolQRCode.py:95
-msgid "The parameters used to shape the QRCode."
-msgstr "The parameters used to shape the QRCode."
-
-#: flatcamTools/ToolQRCode.py:207
-msgid "Export QRCode"
-msgstr "Export QRCode"
-
-#: flatcamTools/ToolQRCode.py:209
-msgid ""
-"Show a set of controls allowing to export the QRCode\n"
-"to a SVG file or an PNG file."
-msgstr ""
-"Show a set of controls allowing to export the QRCode\n"
-"to a SVG file or an PNG file."
-
-#: flatcamTools/ToolQRCode.py:248
-msgid "Transparent back color"
-msgstr "Transparent back color"
-
-#: flatcamTools/ToolQRCode.py:273
-msgid "Export QRCode SVG"
-msgstr "Export QRCode SVG"
-
-#: flatcamTools/ToolQRCode.py:275
-msgid "Export a SVG file with the QRCode content."
-msgstr "Export a SVG file with the QRCode content."
-
-#: flatcamTools/ToolQRCode.py:286
-msgid "Export QRCode PNG"
-msgstr "Export QRCode PNG"
-
-#: flatcamTools/ToolQRCode.py:288
-msgid "Export a PNG image file with the QRCode content."
-msgstr "Export a PNG image file with the QRCode content."
-
-#: flatcamTools/ToolQRCode.py:299
-msgid "Insert QRCode"
-msgstr "Insert QRCode"
-
-#: flatcamTools/ToolQRCode.py:301
-msgid "Create the QRCode object."
-msgstr "Create the QRCode object."
-
-#: flatcamTools/ToolQRCode.py:415 flatcamTools/ToolQRCode.py:750
-#: flatcamTools/ToolQRCode.py:799
-msgid "Cancelled. There is no QRCode Data in the text box."
-msgstr "Cancelled. There is no QRCode Data in the text box."
-
-#: flatcamTools/ToolQRCode.py:434
-msgid "Generating QRCode geometry"
-msgstr "Generating QRCode geometry"
-
-#: flatcamTools/ToolQRCode.py:474
-msgid "Click on the Destination point ..."
-msgstr "Click on the Destination point ..."
-
-#: flatcamTools/ToolQRCode.py:589
-msgid "QRCode Tool done."
-msgstr "QRCode Tool done."
-
-#: flatcamTools/ToolQRCode.py:782 flatcamTools/ToolQRCode.py:786
-msgid "Export PNG"
-msgstr "Export PNG"
-
-#: flatcamTools/ToolRulesCheck.py:33
-msgid "Check Rules"
-msgstr "Check Rules"
-
-#: flatcamTools/ToolRulesCheck.py:61
-msgid "Gerber Files"
-msgstr "Gerber Files"
-
-#: flatcamTools/ToolRulesCheck.py:63
-msgid "Gerber objects for which to check rules."
-msgstr "Gerber objects for which to check rules."
-
-#: flatcamTools/ToolRulesCheck.py:78
-msgid "Top"
-msgstr "Top"
-
-#: flatcamTools/ToolRulesCheck.py:80
-msgid "The Top Gerber Copper object for which rules are checked."
-msgstr "The Top Gerber Copper object for which rules are checked."
-
-#: flatcamTools/ToolRulesCheck.py:96
-msgid "Bottom"
-msgstr "Bottom"
-
-#: flatcamTools/ToolRulesCheck.py:98
-msgid "The Bottom Gerber Copper object for which rules are checked."
-msgstr "The Bottom Gerber Copper object for which rules are checked."
-
-#: flatcamTools/ToolRulesCheck.py:114
-msgid "SM Top"
-msgstr "SM Top"
-
-#: flatcamTools/ToolRulesCheck.py:116
-msgid "The Top Gerber Solder Mask object for which rules are checked."
-msgstr "The Top Gerber Solder Mask object for which rules are checked."
-
-#: flatcamTools/ToolRulesCheck.py:132
-msgid "SM Bottom"
-msgstr "SM Bottom"
-
-#: flatcamTools/ToolRulesCheck.py:134
-msgid "The Bottom Gerber Solder Mask object for which rules are checked."
-msgstr "The Bottom Gerber Solder Mask object for which rules are checked."
-
-#: flatcamTools/ToolRulesCheck.py:150
-msgid "Silk Top"
-msgstr "Silk Top"
-
-#: flatcamTools/ToolRulesCheck.py:152
-msgid "The Top Gerber Silkscreen object for which rules are checked."
-msgstr "The Top Gerber Silkscreen object for which rules are checked."
-
-#: flatcamTools/ToolRulesCheck.py:168
-msgid "Silk Bottom"
-msgstr "Silk Bottom"
-
-#: flatcamTools/ToolRulesCheck.py:170
-msgid "The Bottom Gerber Silkscreen object for which rules are checked."
-msgstr "The Bottom Gerber Silkscreen object for which rules are checked."
-
-#: flatcamTools/ToolRulesCheck.py:188
-msgid "The Gerber Outline (Cutout) object for which rules are checked."
-msgstr "The Gerber Outline (Cutout) object for which rules are checked."
-
-#: flatcamTools/ToolRulesCheck.py:199
-msgid "Excellon Objects"
-msgstr "Excellon Objects"
-
-#: flatcamTools/ToolRulesCheck.py:201
-msgid "Excellon objects for which to check rules."
-msgstr "Excellon objects for which to check rules."
-
-#: flatcamTools/ToolRulesCheck.py:213
-msgid "Excellon 1"
-msgstr "Excellon 1"
-
-#: flatcamTools/ToolRulesCheck.py:215
-msgid ""
-"Excellon object for which to check rules.\n"
-"Holds the plated holes or a general Excellon file content."
-msgstr ""
-"Excellon object for which to check rules.\n"
-"Holds the plated holes or a general Excellon file content."
-
-#: flatcamTools/ToolRulesCheck.py:232
-msgid "Excellon 2"
-msgstr "Excellon 2"
-
-#: flatcamTools/ToolRulesCheck.py:234
-msgid ""
-"Excellon object for which to check rules.\n"
-"Holds the non-plated holes."
-msgstr ""
-"Excellon object for which to check rules.\n"
-"Holds the non-plated holes."
-
-#: flatcamTools/ToolRulesCheck.py:247
-msgid "All Rules"
-msgstr "All Rules"
-
-#: flatcamTools/ToolRulesCheck.py:249
-msgid "This check/uncheck all the rules below."
-msgstr "This check/uncheck all the rules below."
-
-#: flatcamTools/ToolRulesCheck.py:499
-msgid "Run Rules Check"
-msgstr "Run Rules Check"
-
-#: flatcamTools/ToolRulesCheck.py:1158 flatcamTools/ToolRulesCheck.py:1218
-#: flatcamTools/ToolRulesCheck.py:1255 flatcamTools/ToolRulesCheck.py:1327
-#: flatcamTools/ToolRulesCheck.py:1381 flatcamTools/ToolRulesCheck.py:1419
-#: flatcamTools/ToolRulesCheck.py:1484
-msgid "Value is not valid."
-msgstr "Value is not valid."
-
-#: flatcamTools/ToolRulesCheck.py:1172
-msgid "TOP -> Copper to Copper clearance"
-msgstr "TOP -> Copper to Copper clearance"
-
-#: flatcamTools/ToolRulesCheck.py:1183
-msgid "BOTTOM -> Copper to Copper clearance"
-msgstr "BOTTOM -> Copper to Copper clearance"
-
-#: flatcamTools/ToolRulesCheck.py:1188 flatcamTools/ToolRulesCheck.py:1282
-#: flatcamTools/ToolRulesCheck.py:1446
-msgid ""
-"At least one Gerber object has to be selected for this rule but none is "
-"selected."
-msgstr ""
-"At least one Gerber object has to be selected for this rule but none is "
-"selected."
-
-#: flatcamTools/ToolRulesCheck.py:1224
-msgid ""
-"One of the copper Gerber objects or the Outline Gerber object is not valid."
-msgstr ""
-"One of the copper Gerber objects or the Outline Gerber object is not valid."
-
-#: flatcamTools/ToolRulesCheck.py:1237 flatcamTools/ToolRulesCheck.py:1401
-msgid ""
-"Outline Gerber object presence is mandatory for this rule but it is not "
-"selected."
-msgstr ""
-"Outline Gerber object presence is mandatory for this rule but it is not "
-"selected."
-
-#: flatcamTools/ToolRulesCheck.py:1254 flatcamTools/ToolRulesCheck.py:1281
-msgid "Silk to Silk clearance"
-msgstr "Silk to Silk clearance"
-
-#: flatcamTools/ToolRulesCheck.py:1267
-msgid "TOP -> Silk to Silk clearance"
-msgstr "TOP -> Silk to Silk clearance"
-
-#: flatcamTools/ToolRulesCheck.py:1277
-msgid "BOTTOM -> Silk to Silk clearance"
-msgstr "BOTTOM -> Silk to Silk clearance"
-
-#: flatcamTools/ToolRulesCheck.py:1333
-msgid "One or more of the Gerber objects is not valid."
-msgstr "One or more of the Gerber objects is not valid."
-
-#: flatcamTools/ToolRulesCheck.py:1341
-msgid "TOP -> Silk to Solder Mask Clearance"
-msgstr "TOP -> Silk to Solder Mask Clearance"
-
-#: flatcamTools/ToolRulesCheck.py:1347
-msgid "BOTTOM -> Silk to Solder Mask Clearance"
-msgstr "BOTTOM -> Silk to Solder Mask Clearance"
-
-#: flatcamTools/ToolRulesCheck.py:1351
-msgid ""
-"Both Silk and Solder Mask Gerber objects has to be either both Top or both "
-"Bottom."
-msgstr ""
-"Both Silk and Solder Mask Gerber objects has to be either both Top or both "
-"Bottom."
-
-#: flatcamTools/ToolRulesCheck.py:1387
-msgid ""
-"One of the Silk Gerber objects or the Outline Gerber object is not valid."
-msgstr ""
-"One of the Silk Gerber objects or the Outline Gerber object is not valid."
-
-#: flatcamTools/ToolRulesCheck.py:1431
-msgid "TOP -> Minimum Solder Mask Sliver"
-msgstr "TOP -> Minimum Solder Mask Sliver"
-
-#: flatcamTools/ToolRulesCheck.py:1441
-msgid "BOTTOM -> Minimum Solder Mask Sliver"
-msgstr "BOTTOM -> Minimum Solder Mask Sliver"
-
-#: flatcamTools/ToolRulesCheck.py:1490
-msgid "One of the Copper Gerber objects or the Excellon objects is not valid."
-msgstr "One of the Copper Gerber objects or the Excellon objects is not valid."
-
-#: flatcamTools/ToolRulesCheck.py:1506
-msgid ""
-"Excellon object presence is mandatory for this rule but none is selected."
-msgstr ""
-"Excellon object presence is mandatory for this rule but none is selected."
-
-#: flatcamTools/ToolRulesCheck.py:1579 flatcamTools/ToolRulesCheck.py:1592
-#: flatcamTools/ToolRulesCheck.py:1603 flatcamTools/ToolRulesCheck.py:1616
-msgid "STATUS"
-msgstr "STATUS"
-
-#: flatcamTools/ToolRulesCheck.py:1582 flatcamTools/ToolRulesCheck.py:1606
-msgid "FAILED"
-msgstr "FAILED"
-
-#: flatcamTools/ToolRulesCheck.py:1595 flatcamTools/ToolRulesCheck.py:1619
-msgid "PASSED"
-msgstr "PASSED"
-
-#: flatcamTools/ToolRulesCheck.py:1596 flatcamTools/ToolRulesCheck.py:1620
-msgid "Violations: There are no violations for the current rule."
-msgstr "Violations: There are no violations for the current rule."
-
-#: flatcamTools/ToolShell.py:74 flatcamTools/ToolShell.py:76
-msgid "...processing..."
-msgstr "...processing..."
-
-#: flatcamTools/ToolSolderPaste.py:37
-msgid "Solder Paste Tool"
-msgstr "Solder Paste Tool"
-
-#: flatcamTools/ToolSolderPaste.py:69
-msgid "Gerber Solder paste object. "
-msgstr "Gerber Solder paste object. "
-
-#: flatcamTools/ToolSolderPaste.py:76
-msgid ""
-"Tools pool from which the algorithm\n"
-"will pick the ones used for dispensing solder paste."
-msgstr ""
-"Tools pool from which the algorithm\n"
-"will pick the ones used for dispensing solder paste."
-
-#: flatcamTools/ToolSolderPaste.py:91
-msgid ""
-"This is the Tool Number.\n"
-"The solder dispensing will start with the tool with the biggest \n"
-"diameter, continuing until there are no more Nozzle tools.\n"
-"If there are no longer tools but there are still pads not covered\n"
-" with solder paste, the app will issue a warning message box."
-msgstr ""
-"This is the Tool Number.\n"
-"The solder dispensing will start with the tool with the biggest \n"
-"diameter, continuing until there are no more Nozzle tools.\n"
-"If there are no longer tools but there are still pads not covered\n"
-" with solder paste, the app will issue a warning message box."
-
-#: flatcamTools/ToolSolderPaste.py:98
-msgid ""
-"Nozzle tool Diameter. It's value (in current FlatCAM units)\n"
-"is the width of the solder paste dispensed."
-msgstr ""
-"Nozzle tool Diameter. It's value (in current FlatCAM units)\n"
-"is the width of the solder paste dispensed."
-
-#: flatcamTools/ToolSolderPaste.py:105
-msgid "New Nozzle Tool"
-msgstr "New Nozzle Tool"
-
-#: flatcamTools/ToolSolderPaste.py:124
-msgid ""
-"Add a new nozzle tool to the Tool Table\n"
-"with the diameter specified above."
-msgstr ""
-"Add a new nozzle tool to the Tool Table\n"
-"with the diameter specified above."
-
-#: flatcamTools/ToolSolderPaste.py:136
-msgid "Generate solder paste dispensing geometry."
-msgstr "Generate solder paste dispensing geometry."
-
-#: flatcamTools/ToolSolderPaste.py:155
-msgid "STEP 1"
-msgstr "STEP 1"
-
-#: flatcamTools/ToolSolderPaste.py:157
-msgid ""
-"First step is to select a number of nozzle tools for usage\n"
-"and then optionally modify the GCode parameters below."
-msgstr ""
-"First step is to select a number of nozzle tools for usage\n"
-"and then optionally modify the GCode parameters below."
-
-#: flatcamTools/ToolSolderPaste.py:160
-msgid ""
-"Select tools.\n"
-"Modify parameters."
-msgstr ""
-"Select tools.\n"
-"Modify parameters."
-
-#: flatcamTools/ToolSolderPaste.py:280
-msgid ""
-"Feedrate (speed) while moving up vertically\n"
-" to Dispense position (on Z plane)."
-msgstr ""
-"Feedrate (speed) while moving up vertically\n"
-" to Dispense position (on Z plane)."
-
-#: flatcamTools/ToolSolderPaste.py:350
-msgid ""
-"Generate GCode for Solder Paste dispensing\n"
-"on PCB pads."
-msgstr ""
-"Generate GCode for Solder Paste dispensing\n"
-"on PCB pads."
-
-#: flatcamTools/ToolSolderPaste.py:371
-msgid "STEP 2"
-msgstr "STEP 2"
-
-#: flatcamTools/ToolSolderPaste.py:373
-msgid ""
-"Second step is to create a solder paste dispensing\n"
-"geometry out of an Solder Paste Mask Gerber file."
-msgstr ""
-"Second step is to create a solder paste dispensing\n"
-"geometry out of an Solder Paste Mask Gerber file."
-
-#: flatcamTools/ToolSolderPaste.py:390
-msgid "Geo Result"
-msgstr "Geo Result"
-
-#: flatcamTools/ToolSolderPaste.py:392
-msgid ""
-"Geometry Solder Paste object.\n"
-"The name of the object has to end in:\n"
-"'_solderpaste' as a protection."
-msgstr ""
-"Geometry Solder Paste object.\n"
-"The name of the object has to end in:\n"
-"'_solderpaste' as a protection."
-
-#: flatcamTools/ToolSolderPaste.py:401
-msgid "STEP 3"
-msgstr "STEP 3"
-
-#: flatcamTools/ToolSolderPaste.py:403
-msgid ""
-"Third step is to select a solder paste dispensing geometry,\n"
-"and then generate a CNCJob object.\n"
-"\n"
-"REMEMBER: if you want to create a CNCJob with new parameters,\n"
-"first you need to generate a geometry with those new params,\n"
-"and only after that you can generate an updated CNCJob."
-msgstr ""
-"Third step is to select a solder paste dispensing geometry,\n"
-"and then generate a CNCJob object.\n"
-"\n"
-"REMEMBER: if you want to create a CNCJob with new parameters,\n"
-"first you need to generate a geometry with those new params,\n"
-"and only after that you can generate an updated CNCJob."
-
-#: flatcamTools/ToolSolderPaste.py:424
-msgid "CNC Result"
-msgstr "CNC Result"
-
-#: flatcamTools/ToolSolderPaste.py:426
-msgid ""
-"CNCJob Solder paste object.\n"
-"In order to enable the GCode save section,\n"
-"the name of the object has to end in:\n"
-"'_solderpaste' as a protection."
-msgstr ""
-"CNCJob Solder paste object.\n"
-"In order to enable the GCode save section,\n"
-"the name of the object has to end in:\n"
-"'_solderpaste' as a protection."
-
-#: flatcamTools/ToolSolderPaste.py:436
-msgid "View GCode"
-msgstr "View GCode"
-
-#: flatcamTools/ToolSolderPaste.py:438
-msgid ""
-"View the generated GCode for Solder Paste dispensing\n"
-"on PCB pads."
-msgstr ""
-"View the generated GCode for Solder Paste dispensing\n"
-"on PCB pads."
-
-#: flatcamTools/ToolSolderPaste.py:448
-msgid "Save GCode"
-msgstr "Save GCode"
-
-#: flatcamTools/ToolSolderPaste.py:450
-msgid ""
-"Save the generated GCode for Solder Paste dispensing\n"
-"on PCB pads, to a file."
-msgstr ""
-"Save the generated GCode for Solder Paste dispensing\n"
-"on PCB pads, to a file."
-
-#: flatcamTools/ToolSolderPaste.py:460
-msgid "STEP 4"
-msgstr "STEP 4"
-
-#: flatcamTools/ToolSolderPaste.py:462
-msgid ""
-"Fourth step (and last) is to select a CNCJob made from \n"
-"a solder paste dispensing geometry, and then view/save it's GCode."
-msgstr ""
-"Fourth step (and last) is to select a CNCJob made from \n"
-"a solder paste dispensing geometry, and then view/save it's GCode."
-
-#: flatcamTools/ToolSolderPaste.py:922
-msgid "New Nozzle tool added to Tool Table."
-msgstr "New Nozzle tool added to Tool Table."
-
-#: flatcamTools/ToolSolderPaste.py:965
-msgid "Nozzle tool from Tool Table was edited."
-msgstr "Nozzle tool from Tool Table was edited."
-
-#: flatcamTools/ToolSolderPaste.py:1024
-msgid "Delete failed. Select a Nozzle tool to delete."
-msgstr "Delete failed. Select a Nozzle tool to delete."
-
-#: flatcamTools/ToolSolderPaste.py:1030
-msgid "Nozzle tool(s) deleted from Tool Table."
-msgstr "Nozzle tool(s) deleted from Tool Table."
-
-#: flatcamTools/ToolSolderPaste.py:1086
-msgid "No SolderPaste mask Gerber object loaded."
-msgstr "No SolderPaste mask Gerber object loaded."
-
-#: flatcamTools/ToolSolderPaste.py:1104
-msgid "Creating Solder Paste dispensing geometry."
-msgstr "Creating Solder Paste dispensing geometry."
-
-#: flatcamTools/ToolSolderPaste.py:1117
-msgid "No Nozzle tools in the tool table."
-msgstr "No Nozzle tools in the tool table."
-
-#: flatcamTools/ToolSolderPaste.py:1243
-msgid "Cancelled. Empty file, it has no geometry..."
-msgstr "Cancelled. Empty file, it has no geometry..."
-
-#: flatcamTools/ToolSolderPaste.py:1246
-msgid "Solder Paste geometry generated successfully"
-msgstr "Solder Paste geometry generated successfully"
-
-#: flatcamTools/ToolSolderPaste.py:1253
-msgid "Some or all pads have no solder due of inadequate nozzle diameters..."
-msgstr "Some or all pads have no solder due of inadequate nozzle diameters..."
-
-#: flatcamTools/ToolSolderPaste.py:1267
-msgid "Generating Solder Paste dispensing geometry..."
-msgstr "Generating Solder Paste dispensing geometry..."
-
-#: flatcamTools/ToolSolderPaste.py:1287
-msgid "There is no Geometry object available."
-msgstr "There is no Geometry object available."
-
-#: flatcamTools/ToolSolderPaste.py:1292
-msgid "This Geometry can't be processed. NOT a solder_paste_tool geometry."
-msgstr "This Geometry can't be processed. NOT a solder_paste_tool geometry."
-
-#: flatcamTools/ToolSolderPaste.py:1328
-msgid "An internal error has ocurred. See shell.\n"
-msgstr "An internal error has ocurred. See shell.\n"
-
-#: flatcamTools/ToolSolderPaste.py:1393
-msgid "ToolSolderPaste CNCjob created"
-msgstr "ToolSolderPaste CNCjob created"
-
-#: flatcamTools/ToolSolderPaste.py:1412
-msgid "SP GCode Editor"
-msgstr "SP GCode Editor"
-
-#: flatcamTools/ToolSolderPaste.py:1424 flatcamTools/ToolSolderPaste.py:1429
-#: flatcamTools/ToolSolderPaste.py:1484
-msgid ""
-"This CNCJob object can't be processed. NOT a solder_paste_tool CNCJob object."
-msgstr ""
-"This CNCJob object can't be processed. NOT a solder_paste_tool CNCJob object."
-
-#: flatcamTools/ToolSolderPaste.py:1454
-msgid "No Gcode in the object"
-msgstr "No Gcode in the object"
-
-#: flatcamTools/ToolSolderPaste.py:1494
-msgid "Export GCode ..."
-msgstr "Export GCode ..."
-
-#: flatcamTools/ToolSolderPaste.py:1542
-msgid "Solder paste dispenser GCode file saved to"
-msgstr "Solder paste dispenser GCode file saved to"
-
-#: flatcamTools/ToolSub.py:65
-msgid "Gerber Objects"
-msgstr "Gerber Objects"
-
-#: flatcamTools/ToolSub.py:78
-msgid ""
-"Gerber object from which to subtract\n"
-"the subtractor Gerber object."
-msgstr ""
-"Gerber object from which to subtract\n"
-"the subtractor Gerber object."
-
-#: flatcamTools/ToolSub.py:91 flatcamTools/ToolSub.py:146
-msgid "Subtractor"
-msgstr "Subtractor"
-
-#: flatcamTools/ToolSub.py:93
-msgid ""
-"Gerber object that will be subtracted\n"
-"from the target Gerber object."
-msgstr ""
-"Gerber object that will be subtracted\n"
-"from the target Gerber object."
-
-#: flatcamTools/ToolSub.py:100
-msgid "Subtract Gerber"
-msgstr "Subtract Gerber"
-
-#: flatcamTools/ToolSub.py:102
-msgid ""
-"Will remove the area occupied by the subtractor\n"
-"Gerber from the Target Gerber.\n"
-"Can be used to remove the overlapping silkscreen\n"
-"over the soldermask."
-msgstr ""
-"Will remove the area occupied by the subtractor\n"
-"Gerber from the Target Gerber.\n"
-"Can be used to remove the overlapping silkscreen\n"
-"over the soldermask."
-
-#: flatcamTools/ToolSub.py:120
-msgid "Geometry Objects"
-msgstr "Geometry Objects"
-
-#: flatcamTools/ToolSub.py:133
-msgid ""
-"Geometry object from which to subtract\n"
-"the subtractor Geometry object."
-msgstr ""
-"Geometry object from which to subtract\n"
-"the subtractor Geometry object."
-
-#: flatcamTools/ToolSub.py:148
-msgid ""
-"Geometry object that will be subtracted\n"
-"from the target Geometry object."
-msgstr ""
-"Geometry object that will be subtracted\n"
-"from the target Geometry object."
-
-#: flatcamTools/ToolSub.py:156
-msgid ""
-"Checking this will close the paths cut by the Geometry subtractor object."
-msgstr ""
-"Checking this will close the paths cut by the Geometry subtractor object."
-
-#: flatcamTools/ToolSub.py:159
-msgid "Subtract Geometry"
-msgstr "Subtract Geometry"
-
-#: flatcamTools/ToolSub.py:161
-msgid ""
-"Will remove the area occupied by the subtractor\n"
-"Geometry from the Target Geometry."
-msgstr ""
-"Will remove the area occupied by the subtractor\n"
-"Geometry from the Target Geometry."
-
-#: flatcamTools/ToolSub.py:263
-msgid "Sub Tool"
-msgstr "Sub Tool"
-
-#: flatcamTools/ToolSub.py:284 flatcamTools/ToolSub.py:489
-msgid "No Target object loaded."
-msgstr "No Target object loaded."
-
-#: flatcamTools/ToolSub.py:287
-msgid "Loading geometry from Gerber objects."
-msgstr "Loading geometry from Gerber objects."
-
-#: flatcamTools/ToolSub.py:299 flatcamTools/ToolSub.py:504
-msgid "No Subtractor object loaded."
-msgstr "No Subtractor object loaded."
-
-#: flatcamTools/ToolSub.py:331
-msgid "Processing geometry from Subtractor Gerber object."
-msgstr "Processing geometry from Subtractor Gerber object."
-
-#: flatcamTools/ToolSub.py:352
-msgid "Parsing geometry for aperture"
-msgstr "Parsing geometry for aperture"
-
-#: flatcamTools/ToolSub.py:413
-msgid "Finished parsing geometry for aperture"
-msgstr "Finished parsing geometry for aperture"
-
-#: flatcamTools/ToolSub.py:458 flatcamTools/ToolSub.py:661
-msgid "Generating new object ..."
-msgstr "Generating new object ..."
-
-#: flatcamTools/ToolSub.py:462 flatcamTools/ToolSub.py:665
-#: flatcamTools/ToolSub.py:746
-msgid "Generating new object failed."
-msgstr "Generating new object failed."
-
-#: flatcamTools/ToolSub.py:467 flatcamTools/ToolSub.py:671
-msgid "Created"
-msgstr "Created"
-
-#: flatcamTools/ToolSub.py:518
-msgid "Currently, the Subtractor geometry cannot be of type Multigeo."
-msgstr "Currently, the Subtractor geometry cannot be of type Multigeo."
-
-#: flatcamTools/ToolSub.py:563
-msgid "Parsing solid_geometry ..."
-msgstr "Parsing solid_geometry ..."
-
-#: flatcamTools/ToolSub.py:565
-msgid "Parsing solid_geometry for tool"
-msgstr "Parsing solid_geometry for tool"
-
-#: flatcamTools/ToolTransform.py:23
-msgid "Object Transform"
-msgstr "Object Transform"
-
-#: flatcamTools/ToolTransform.py:78
-msgid ""
-"Rotate the selected object(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected objects."
-msgstr ""
-"Rotate the selected object(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected objects."
-
-#: flatcamTools/ToolTransform.py:99 flatcamTools/ToolTransform.py:120
-msgid ""
-"Angle for Skew action, in degrees.\n"
-"Float number between -360 and 360."
-msgstr ""
-"Angle for Skew action, in degrees.\n"
-"Float number between -360 and 360."
-
-#: flatcamTools/ToolTransform.py:109 flatcamTools/ToolTransform.py:130
-msgid ""
-"Skew/shear the selected object(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected objects."
-msgstr ""
-"Skew/shear the selected object(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected objects."
-
-#: flatcamTools/ToolTransform.py:159 flatcamTools/ToolTransform.py:179
-msgid ""
-"Scale the selected object(s).\n"
-"The point of reference depends on \n"
-"the Scale reference checkbox state."
-msgstr ""
-"Scale the selected object(s).\n"
-"The point of reference depends on \n"
-"the Scale reference checkbox state."
-
-#: flatcamTools/ToolTransform.py:228 flatcamTools/ToolTransform.py:248
-msgid ""
-"Offset the selected object(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected objects.\n"
-msgstr ""
-"Offset the selected object(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected objects.\n"
-
-#: flatcamTools/ToolTransform.py:268 flatcamTools/ToolTransform.py:273
-msgid "Flip the selected object(s) over the X axis."
-msgstr "Flip the selected object(s) over the X axis."
-
-#: flatcamTools/ToolTransform.py:297
-msgid "Ref. Point"
-msgstr "Ref. Point"
-
-#: flatcamTools/ToolTransform.py:348
-msgid ""
-"Create the buffer effect on each geometry,\n"
-"element from the selected object, using the distance."
-msgstr ""
-"Create the buffer effect on each geometry,\n"
-"element from the selected object, using the distance."
-
-#: flatcamTools/ToolTransform.py:374
-msgid ""
-"Create the buffer effect on each geometry,\n"
-"element from the selected object, using the factor."
-msgstr ""
-"Create the buffer effect on each geometry,\n"
-"element from the selected object, using the factor."
-
-#: flatcamTools/ToolTransform.py:479
-msgid "Buffer D"
-msgstr "Buffer D"
-
-#: flatcamTools/ToolTransform.py:480
-msgid "Buffer F"
-msgstr "Buffer F"
-
-#: flatcamTools/ToolTransform.py:557
-msgid "Rotate transformation can not be done for a value of 0."
-msgstr "Rotate transformation can not be done for a value of 0."
-
-#: flatcamTools/ToolTransform.py:596 flatcamTools/ToolTransform.py:619
-msgid "Scale transformation can not be done for a factor of 0 or 1."
-msgstr "Scale transformation can not be done for a factor of 0 or 1."
-
-#: flatcamTools/ToolTransform.py:634 flatcamTools/ToolTransform.py:644
-msgid "Offset transformation can not be done for a value of 0."
-msgstr "Offset transformation can not be done for a value of 0."
-
-#: flatcamTools/ToolTransform.py:676
-msgid "No object selected. Please Select an object to rotate!"
-msgstr "No object selected. Please Select an object to rotate!"
-
-#: flatcamTools/ToolTransform.py:702
-msgid "CNCJob objects can't be rotated."
-msgstr "CNCJob objects can't be rotated."
-
-#: flatcamTools/ToolTransform.py:710
-msgid "Rotate done"
-msgstr "Rotate done"
-
-#: flatcamTools/ToolTransform.py:713 flatcamTools/ToolTransform.py:783
-#: flatcamTools/ToolTransform.py:833 flatcamTools/ToolTransform.py:887
-#: flatcamTools/ToolTransform.py:917 flatcamTools/ToolTransform.py:953
-msgid "Due of"
-msgstr "Due of"
-
-#: flatcamTools/ToolTransform.py:713 flatcamTools/ToolTransform.py:783
-#: flatcamTools/ToolTransform.py:833 flatcamTools/ToolTransform.py:887
-#: flatcamTools/ToolTransform.py:917 flatcamTools/ToolTransform.py:953
-msgid "action was not executed."
-msgstr "action was not executed."
-
-#: flatcamTools/ToolTransform.py:725
-msgid "No object selected. Please Select an object to flip"
-msgstr "No object selected. Please Select an object to flip"
-
-#: flatcamTools/ToolTransform.py:758
-msgid "CNCJob objects can't be mirrored/flipped."
-msgstr "CNCJob objects can't be mirrored/flipped."
-
-#: flatcamTools/ToolTransform.py:793
-msgid "Skew transformation can not be done for 0, 90 and 180 degrees."
-msgstr "Skew transformation can not be done for 0, 90 and 180 degrees."
-
-#: flatcamTools/ToolTransform.py:798
-msgid "No object selected. Please Select an object to shear/skew!"
-msgstr "No object selected. Please Select an object to shear/skew!"
-
-#: flatcamTools/ToolTransform.py:818
-msgid "CNCJob objects can't be skewed."
-msgstr "CNCJob objects can't be skewed."
-
-#: flatcamTools/ToolTransform.py:830
-msgid "Skew on the"
-msgstr "Skew on the"
-
-#: flatcamTools/ToolTransform.py:830 flatcamTools/ToolTransform.py:884
-#: flatcamTools/ToolTransform.py:914
-msgid "axis done"
-msgstr "axis done"
-
-#: flatcamTools/ToolTransform.py:844
-msgid "No object selected. Please Select an object to scale!"
-msgstr "No object selected. Please Select an object to scale!"
-
-#: flatcamTools/ToolTransform.py:875
-msgid "CNCJob objects can't be scaled."
-msgstr "CNCJob objects can't be scaled."
-
-#: flatcamTools/ToolTransform.py:884
-msgid "Scale on the"
-msgstr "Scale on the"
-
-#: flatcamTools/ToolTransform.py:894
-msgid "No object selected. Please Select an object to offset!"
-msgstr "No object selected. Please Select an object to offset!"
-
-#: flatcamTools/ToolTransform.py:901
-msgid "CNCJob objects can't be offset."
-msgstr "CNCJob objects can't be offset."
-
-#: flatcamTools/ToolTransform.py:914
-msgid "Offset on the"
-msgstr "Offset on the"
-
-#: flatcamTools/ToolTransform.py:924
-msgid "No object selected. Please Select an object to buffer!"
-msgstr "No object selected. Please Select an object to buffer!"
-
-#: flatcamTools/ToolTransform.py:927
-msgid "Applying Buffer"
-msgstr "Applying Buffer"
-
-#: flatcamTools/ToolTransform.py:931
-msgid "CNCJob objects can't be buffered."
-msgstr "CNCJob objects can't be buffered."
-
-#: flatcamTools/ToolTransform.py:948
-msgid "Buffer done"
-msgstr "Buffer done"
-
#: tclCommands/TclCommandBbox.py:75 tclCommands/TclCommandNregions.py:74
msgid "Expected GerberObject or GeometryObject, got"
msgstr "Expected GerberObject or GeometryObject, got"
@@ -18285,7 +18163,7 @@ msgstr "Expected a list of objects names separated by comma. Got"
msgid "TclCommand Bounds done."
msgstr "TclCommand Bounds done."
-#: tclCommands/TclCommandCopperClear.py:281 tclCommands/TclCommandPaint.py:277
+#: tclCommands/TclCommandCopperClear.py:281 tclCommands/TclCommandPaint.py:283
#: tclCommands/TclCommandScale.py:81
msgid "Could not retrieve box object"
msgstr "Could not retrieve box object"
@@ -18305,11 +18183,11 @@ msgid "Gaps value can be only one of: 'lr', 'tb', '2lr', '2tb', 4 or 8."
msgstr "Gaps value can be only one of: 'lr', 'tb', '2lr', '2tb', 4 or 8."
#: tclCommands/TclCommandGeoCutout.py:301
-#: tclCommands/TclCommandGeoCutout.py:359
+#: tclCommands/TclCommandGeoCutout.py:356
msgid "Any-form Cutout operation finished."
msgstr "Any-form Cutout operation finished."
-#: tclCommands/TclCommandGeoCutout.py:365
+#: tclCommands/TclCommandGeoCutout.py:362
msgid "Cancelled. Object type is not supported."
msgstr "Cancelled. Object type is not supported."
@@ -18325,15 +18203,15 @@ msgstr "Type help for usage."
msgid "Example: help open_gerber"
msgstr "Example: help open_gerber"
-#: tclCommands/TclCommandPaint.py:249
-msgid "Expected -x and -y ."
-msgstr "Expected -x and -y ."
+#: tclCommands/TclCommandPaint.py:250 tclCommands/TclCommandPaint.py:256
+msgid "Expected a tuple value like -single 3.2,0.1."
+msgstr "Expected a tuple value like -single 3.2,0.1."
-#: tclCommands/TclCommandPaint.py:270
+#: tclCommands/TclCommandPaint.py:276
msgid "Expected -box ."
msgstr "Expected -box ."
-#: tclCommands/TclCommandPaint.py:291
+#: tclCommands/TclCommandPaint.py:297
msgid ""
"None of the following args: 'box', 'single', 'all' were used.\n"
"Paint failed."
@@ -18357,7 +18235,7 @@ msgstr "Expected -x -y ."
msgid "Expected a pair of (x, y) coordinates. Got"
msgstr "Expected a pair of (x, y) coordinates. Got"
-#: tclCommands/TclCommandSetOrigin.py:102
+#: tclCommands/TclCommandSetOrigin.py:101
msgid "Origin set by offsetting all loaded objects with "
msgstr "Origin set by offsetting all loaded objects with "
@@ -18365,6 +18243,64 @@ msgstr "Origin set by offsetting all loaded objects with "
msgid "No Geometry name in args. Provide a name and try again."
msgstr "No Geometry name in args. Provide a name and try again."
+#~ msgid "./assets/icon.png"
+#~ msgstr "./assets/icon.png"
+
+#~ msgid "New Blank Geometry"
+#~ msgstr "New Blank Geometry"
+
+#~ msgid "New Blank Gerber"
+#~ msgstr "New Blank Gerber"
+
+#~ msgid "New Blank Excellon"
+#~ msgstr "New Blank Excellon"
+
+#~ msgid ""
+#~ "Relative measurement.\n"
+#~ "Reference is last click position"
+#~ msgstr ""
+#~ "Relative measurement.\n"
+#~ "Reference is last click position"
+
+#~| msgid "Clearance"
+#~ msgid "Clear areas"
+#~ msgstr "Clear areas"
+
+#~ msgid "Apply Theme"
+#~ msgstr "Apply Theme"
+
+#~ msgid ""
+#~ "Select a theme for FlatCAM.\n"
+#~ "It will theme the plot area.\n"
+#~ "The application will restart after change."
+#~ msgstr ""
+#~ "Select a theme for FlatCAM.\n"
+#~ "It will theme the plot area.\n"
+#~ "The application will restart after change."
+
+#~ msgid "Film Object"
+#~ msgstr "Film Object"
+
+#~ msgid "Object for which to create the film."
+#~ msgstr "Object for which to create the film."
+
+#~ msgid "Box Object"
+#~ msgstr "Box Object"
+
+#~ msgid ""
+#~ "The actual object that is used as container for the\n"
+#~ " selected object for which we create the film.\n"
+#~ "Usually it is the PCB outline but it can be also the\n"
+#~ "same object for which the film is created."
+#~ msgstr ""
+#~ "The actual object that is used as container for the\n"
+#~ " selected object for which we create the film.\n"
+#~ "Usually it is the PCB outline but it can be also the\n"
+#~ "same object for which the film is created."
+
+#~ msgid "Expected -x and -y ."
+#~ msgstr "Expected -x and -y ."
+
#~ msgid "Could not load factory defaults file."
#~ msgstr "Could not load factory defaults file."
@@ -19174,9 +19110,6 @@ msgstr "No Geometry name in args. Provide a name and try again."
#~ "#\n"
#~ "\n"
-#~ msgid "Program Author"
-#~ msgstr "Program Author"
-
#~ msgid "Export G-Code ..."
#~ msgstr "Export G-Code ..."
diff --git a/locale/it/LC_MESSAGES/strings.mo b/locale/it/LC_MESSAGES/strings.mo
index 901dcb85..bd7318f3 100644
Binary files a/locale/it/LC_MESSAGES/strings.mo and b/locale/it/LC_MESSAGES/strings.mo differ
diff --git a/locale/it/LC_MESSAGES/strings.po b/locale/it/LC_MESSAGES/strings.po
index 33e36c59..3dcf0c89 100644
--- a/locale/it/LC_MESSAGES/strings.po
+++ b/locale/it/LC_MESSAGES/strings.po
@@ -5,8 +5,8 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
-"POT-Creation-Date: 2020-05-02 23:49+0300\n"
-"PO-Revision-Date: 2020-05-03 12:06+0200\n"
+"POT-Creation-Date: 2020-05-19 02:26+0300\n"
+"PO-Revision-Date: 2020-05-19 02:26+0300\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: it\n"
@@ -14,7 +14,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.3\n"
+"X-Generator: Poedit 2.3.1\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Poedit-Basepath: ../../..\n"
"X-Poedit-SearchPath-0: .\n"
@@ -22,89 +22,16817 @@ msgstr ""
"X-Poedit-SearchPathExcluded-1: doc\n"
"X-Poedit-SearchPathExcluded-2: tests\n"
-#: FlatCAMApp.py:490
+#: AppDatabase.py:86
+msgid "Add Geometry Tool in DB"
+msgstr "Aggiunti strumento geometria in DB"
+
+#: AppDatabase.py:88 AppDatabase.py:1643
+msgid ""
+"Add a new tool in the Tools Database.\n"
+"It will be used in the Geometry UI.\n"
+"You can edit it after it is added."
+msgstr ""
+"Aggiunge uno strumento nel DataBase degli strumenti.\n"
+"Sarà usato nella UI delle Geometrie.\n"
+"Puoi modificarlo una volta aggiunto."
+
+#: AppDatabase.py:102 AppDatabase.py:1657
+msgid "Delete Tool from DB"
+msgstr "Cancella strumento dal DB"
+
+#: AppDatabase.py:104 AppDatabase.py:1659
+msgid "Remove a selection of tools in the Tools Database."
+msgstr "Rimuovi una selezione di strumenti dal Database strumenti."
+
+#: AppDatabase.py:108 AppDatabase.py:1663
+msgid "Export DB"
+msgstr "Esporta DB"
+
+#: AppDatabase.py:110 AppDatabase.py:1665
+msgid "Save the Tools Database to a custom text file."
+msgstr "Salva il Database strumenti in un file."
+
+#: AppDatabase.py:114 AppDatabase.py:1669
+msgid "Import DB"
+msgstr "Importa DB"
+
+#: AppDatabase.py:116 AppDatabase.py:1671
+msgid "Load the Tools Database information's from a custom text file."
+msgstr "Carica il Databse strumenti da un file esterno."
+
+#: AppDatabase.py:120 AppDatabase.py:1681
+msgid "Add Tool from Tools DB"
+msgstr "Aggiungi strumento dal DB strumenti"
+
+#: AppDatabase.py:122 AppDatabase.py:1683
+msgid ""
+"Add a new tool in the Tools Table of the\n"
+"active Geometry object after selecting a tool\n"
+"in the Tools Database."
+msgstr ""
+"Add a new tool in the Tools Table of the\n"
+"active Geometry object after selecting a tool\n"
+"in the Tools Database."
+
+#: AppDatabase.py:128 AppDatabase.py:1689 AppGUI/MainGUI.py:1347
+#: AppGUI/preferences/PreferencesUIManager.py:942 App_Main.py:2203
+#: App_Main.py:3054 App_Main.py:3928 App_Main.py:4279 App_Main.py:6338
+msgid "Cancel"
+msgstr "Cancellare"
+
+#: AppDatabase.py:158 AppDatabase.py:833 AppDatabase.py:1087
+msgid "Tool Name"
+msgstr "Nome utensile"
+
+#: AppDatabase.py:159 AppDatabase.py:835 AppDatabase.py:1100
+#: AppEditors/FlatCAMExcEditor.py:1604 AppGUI/ObjectUI.py:1447
+#: AppGUI/ObjectUI.py:1685
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:132
+#: AppTools/ToolNCC.py:278 AppTools/ToolNCC.py:287 AppTools/ToolPaint.py:260
+msgid "Tool Dia"
+msgstr "Diametro utensile"
+
+#: AppDatabase.py:160 AppDatabase.py:837 AppDatabase.py:1281
+#: AppGUI/ObjectUI.py:1660
+msgid "Tool Offset"
+msgstr "Offset utensile"
+
+#: AppDatabase.py:161 AppDatabase.py:839 AppDatabase.py:1298
+msgid "Custom Offset"
+msgstr "Utensile personalizzato"
+
+#: AppDatabase.py:162 AppDatabase.py:841 AppDatabase.py:1265
+#: AppGUI/ObjectUI.py:309
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:67
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:53
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:62
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:72 AppTools/ToolNCC.py:213
+#: AppTools/ToolNCC.py:227 AppTools/ToolPaint.py:195
+msgid "Tool Type"
+msgstr "Tipo utensile"
+
+#: AppDatabase.py:163 AppDatabase.py:843 AppDatabase.py:1113
+msgid "Tool Shape"
+msgstr "Forma utensile"
+
+#: AppDatabase.py:164 AppDatabase.py:846 AppDatabase.py:1129
+#: AppGUI/ObjectUI.py:350 AppGUI/ObjectUI.py:900 AppGUI/ObjectUI.py:1805
+#: AppGUI/ObjectUI.py:2466
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:93
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:48
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:107
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:78
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:58
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:105
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:113
+#: AppTools/ToolCalculators.py:114 AppTools/ToolCutOut.py:138
+#: AppTools/ToolNCC.py:260 AppTools/ToolNCC.py:268 AppTools/ToolPaint.py:242
+msgid "Cut Z"
+msgstr "Taglio Z"
+
+#: AppDatabase.py:165 AppDatabase.py:848 AppDatabase.py:1143
+msgid "MultiDepth"
+msgstr "Multi profondità"
+
+#: AppDatabase.py:166 AppDatabase.py:850 AppDatabase.py:1156
+msgid "DPP"
+msgstr "DPP"
+
+#: AppDatabase.py:167 AppDatabase.py:852 AppDatabase.py:1312
+msgid "V-Dia"
+msgstr "Diametro V"
+
+#: AppDatabase.py:168 AppDatabase.py:854 AppDatabase.py:1326
+msgid "V-Angle"
+msgstr "Angolo V"
+
+#: AppDatabase.py:169 AppDatabase.py:856 AppDatabase.py:1170
+#: AppGUI/ObjectUI.py:946 AppGUI/ObjectUI.py:1852
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:134
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:101
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:61
+#: AppObjects/FlatCAMExcellon.py:1396 AppObjects/FlatCAMGeometry.py:1660
+#: AppTools/ToolCalibration.py:74
+msgid "Travel Z"
+msgstr "Travel Z"
+
+#: AppDatabase.py:170 AppDatabase.py:858
+msgid "FR"
+msgstr "FR"
+
+#: AppDatabase.py:171 AppDatabase.py:860
+msgid "FR Z"
+msgstr "FR Z"
+
+#: AppDatabase.py:172 AppDatabase.py:862 AppDatabase.py:1340
+msgid "FR Rapids"
+msgstr "FR Rapidi"
+
+#: AppDatabase.py:173 AppDatabase.py:864 AppDatabase.py:1213
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:222
+msgid "Spindle Speed"
+msgstr "Velocità mandrino"
+
+#: AppDatabase.py:174 AppDatabase.py:866 AppDatabase.py:1228
+#: AppGUI/ObjectUI.py:1064 AppGUI/ObjectUI.py:1959
+msgid "Dwell"
+msgstr "Dimora"
+
+#: AppDatabase.py:175 AppDatabase.py:868 AppDatabase.py:1241
+msgid "Dwelltime"
+msgstr "Tempo dimora"
+
+#: AppDatabase.py:176 AppDatabase.py:870 AppGUI/ObjectUI.py:2116
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:257
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:254
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:237
+#: AppTools/ToolSolderPaste.py:335
+msgid "Preprocessor"
+msgstr "Preprocessore"
+
+#: AppDatabase.py:177 AppDatabase.py:872 AppDatabase.py:1356
+msgid "ExtraCut"
+msgstr "Taglio extra"
+
+#: AppDatabase.py:178 AppDatabase.py:874 AppDatabase.py:1371
+msgid "E-Cut Length"
+msgstr "Lunghezza E-taglio"
+
+#: AppDatabase.py:179 AppDatabase.py:876
+msgid "Toolchange"
+msgstr "Cambio utensile"
+
+#: AppDatabase.py:180 AppDatabase.py:878
+msgid "Toolchange XY"
+msgstr "Cambio utensile XY"
+
+#: AppDatabase.py:181 AppDatabase.py:880
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:160
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:131
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:98
+#: AppTools/ToolCalibration.py:111
+msgid "Toolchange Z"
+msgstr "Cambio utensile Z"
+
+#: AppDatabase.py:182 AppDatabase.py:882 AppGUI/ObjectUI.py:1193
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:69
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:54
+msgid "Start Z"
+msgstr "Z iniziale"
+
+#: AppDatabase.py:183 AppDatabase.py:885
+msgid "End Z"
+msgstr "Z finale"
+
+#: AppDatabase.py:187
+msgid "Tool Index."
+msgstr "Indice utensile."
+
+#: AppDatabase.py:189 AppDatabase.py:1089
+msgid ""
+"Tool name.\n"
+"This is not used in the app, it's function\n"
+"is to serve as a note for the user."
+msgstr ""
+"Nome utensile.\n"
+"Non è usato dalla app, la sua funzione\n"
+"è solo una nota per l'utente."
+
+#: AppDatabase.py:193 AppDatabase.py:1102
+msgid "Tool Diameter."
+msgstr "Diametro utensile."
+
+#: AppDatabase.py:195 AppDatabase.py:1283
+msgid ""
+"Tool Offset.\n"
+"Can be of a few types:\n"
+"Path = zero offset\n"
+"In = offset inside by half of tool diameter\n"
+"Out = offset outside by half of tool diameter\n"
+"Custom = custom offset using the Custom Offset value"
+msgstr ""
+"Offset utensile.\n"
+"Può essere di vari tipi:\n"
+"Path = senza offset\n"
+"In = all'interno per metà del diametro dell'utensile\n"
+"Out = all'esterno per metà del diametro dell'utensile\n"
+"Custom = offset personalizzato usando il campo Offset Personale"
+
+#: AppDatabase.py:202 AppDatabase.py:1300
+msgid ""
+"Custom Offset.\n"
+"A value to be used as offset from the current path."
+msgstr ""
+"Offset Personale.\n"
+"Valore da usare come offset nel percorso attuale."
+
+#: AppDatabase.py:205 AppDatabase.py:1267
+msgid ""
+"Tool Type.\n"
+"Can be:\n"
+"Iso = isolation cut\n"
+"Rough = rough cut, low feedrate, multiple passes\n"
+"Finish = finishing cut, high feedrate"
+msgstr ""
+"Tipo di utensile.\n"
+"Può essere:\n"
+"Iso = taglio isolante\n"
+"Rough = taglio grezzo, basso feedrate, passate multiple\n"
+"Finish = taglio finale, alto feedrate"
+
+#: AppDatabase.py:211 AppDatabase.py:1115
+msgid ""
+"Tool Shape. \n"
+"Can be:\n"
+"C1 ... C4 = circular tool with x flutes\n"
+"B = ball tip milling tool\n"
+"V = v-shape milling tool"
+msgstr ""
+"Forma utensile. \n"
+"Può essere:\n"
+"C1 ... C4 = utensile circolare con x flutes\n"
+"B = punta sferica da incisione\n"
+"V = utensile da incisione a V"
+
+#: AppDatabase.py:217 AppDatabase.py:1131
+msgid ""
+"Cutting Depth.\n"
+"The depth at which to cut into material."
+msgstr ""
+"Profondità taglio.\n"
+"Profondità nella quale affondare nel materiale."
+
+#: AppDatabase.py:220 AppDatabase.py:1145
+msgid ""
+"Multi Depth.\n"
+"Selecting this will allow cutting in multiple passes,\n"
+"each pass adding a DPP parameter depth."
+msgstr ""
+"Passaggi multipli.\n"
+"Selezionandolo verrà tagliato in più passate,\n"
+"ogni passata aggiunge una profondità del parametro DPP."
+
+#: AppDatabase.py:224 AppDatabase.py:1158
+msgid ""
+"DPP. Depth per Pass.\n"
+"The value used to cut into material on each pass."
+msgstr ""
+"DPP. Profondità per passata.\n"
+"Valore usato per tagliare il materiale in più passaggi."
+
+#: AppDatabase.py:227 AppDatabase.py:1314
+msgid ""
+"V-Dia.\n"
+"Diameter of the tip for V-Shape Tools."
+msgstr ""
+"Diametro V.\n"
+"Diameter della punta dell'utensile a V."
+
+#: AppDatabase.py:230 AppDatabase.py:1328
+msgid ""
+"V-Agle.\n"
+"Angle at the tip for the V-Shape Tools."
+msgstr ""
+"Angolo V.\n"
+"Angolo alla punta dell'utensile a V."
+
+#: AppDatabase.py:233 AppDatabase.py:1172
+msgid ""
+"Clearance Height.\n"
+"Height at which the milling bit will travel between cuts,\n"
+"above the surface of the material, avoiding all fixtures."
+msgstr ""
+"Altezza libera.\n"
+"Altezza alla quale l'utensile si sposta tra i tagli,\n"
+"sopra alla superficie del materiale, evitando collisioni."
+
+#: AppDatabase.py:237
+msgid ""
+"FR. Feedrate\n"
+"The speed on XY plane used while cutting into material."
+msgstr ""
+"FR. Feedrate\n"
+"Velocità usata sul piano XY durante il taglio nel materiale."
+
+#: AppDatabase.py:240
+msgid ""
+"FR Z. Feedrate Z\n"
+"The speed on Z plane."
+msgstr ""
+"FR Z. Feedrate Z\n"
+"La velocità nell'asse Z."
+
+#: AppDatabase.py:243 AppDatabase.py:1342
+msgid ""
+"FR Rapids. Feedrate Rapids\n"
+"Speed used while moving as fast as possible.\n"
+"This is used only by some devices that can't use\n"
+"the G0 g-code command. Mostly 3D printers."
+msgstr ""
+"FR Rapidi. Feedrate Rapidi\n"
+"Velocità degli spostamenti alla velocità massima possibile.\n"
+"Usata da alcuni device che non possono usare il comando\n"
+"G-code G0. Principalmente stampanti 3D."
+
+#: AppDatabase.py:248 AppDatabase.py:1215
+msgid ""
+"Spindle Speed.\n"
+"If it's left empty it will not be used.\n"
+"The speed of the spindle in RPM."
+msgstr ""
+"Velocità mandrino.\n"
+"Se vuota non sarà usata.\n"
+"La velocità del mandrino in RPM."
+
+#: AppDatabase.py:252 AppDatabase.py:1230
+msgid ""
+"Dwell.\n"
+"Check this if a delay is needed to allow\n"
+"the spindle motor to reach it's set speed."
+msgstr ""
+"Dimora.\n"
+"Abilitare se è necessaria una attesa per permettere\n"
+"al motore di raggiungere la velocità impostata."
+
+#: AppDatabase.py:256 AppDatabase.py:1243
+msgid ""
+"Dwell Time.\n"
+"A delay used to allow the motor spindle reach it's set speed."
+msgstr ""
+"Tempo dimora.\n"
+"Il tempo da aspettare affinchè il mandrino raggiunga la sua velocità."
+
+#: AppDatabase.py:259
+msgid ""
+"Preprocessor.\n"
+"A selection of files that will alter the generated G-code\n"
+"to fit for a number of use cases."
+msgstr ""
+"Preprocessore.\n"
+"Una selezione di files che alterano il G-Code generato\n"
+"per adattarsi a vari casi."
+
+#: AppDatabase.py:263 AppDatabase.py:1358
+msgid ""
+"Extra Cut.\n"
+"If checked, after a isolation is finished an extra cut\n"
+"will be added where the start and end of isolation meet\n"
+"such as that this point is covered by this extra cut to\n"
+"ensure a complete isolation."
+msgstr ""
+"Taglio extra.\n"
+"Se abilitato, dopo il termine di un isolamento sarà aggiunto\n"
+"un taglio extra dove si incontrano l'inizio e la fine del taglio\n"
+"così da assicurare un completo isolamento."
+
+#: AppDatabase.py:269 AppDatabase.py:1373
+msgid ""
+"Extra Cut length.\n"
+"If checked, after a isolation is finished an extra cut\n"
+"will be added where the start and end of isolation meet\n"
+"such as that this point is covered by this extra cut to\n"
+"ensure a complete isolation. This is the length of\n"
+"the extra cut."
+msgstr ""
+"Lunghezza taglio extra.\n"
+"Se abilitato, dopo il termine di un isolamento sarà aggiunto\n"
+"un taglio extra dove si incontrano l'inizio e la fine del taglio\n"
+"così da assicurare un completo isolamento. Questa è la\n"
+"lunghezza del taglio extra."
+
+#: AppDatabase.py:276
+msgid ""
+"Toolchange.\n"
+"It will create a toolchange event.\n"
+"The kind of toolchange is determined by\n"
+"the preprocessor file."
+msgstr ""
+"Cambio utensile.\n"
+"Genererà un evento di cambio utensile.\n"
+"Il tipo di cambio utensile è determinato dal\n"
+"file del preprocessore."
+
+#: AppDatabase.py:281
+msgid ""
+"Toolchange XY.\n"
+"A set of coordinates in the format (x, y).\n"
+"Will determine the cartesian position of the point\n"
+"where the tool change event take place."
+msgstr ""
+"Cambio utensile XY.\n"
+"Set di coordinate in formato (x, y).\n"
+"Determinano la posizione cartesiana del punto\n"
+"dove avverrà il cambio utensile."
+
+#: AppDatabase.py:286
+msgid ""
+"Toolchange Z.\n"
+"The position on Z plane where the tool change event take place."
+msgstr ""
+"Cambio utensile Z.\n"
+"La posizione in Z dove avverrà il cambio utensile."
+
+#: AppDatabase.py:289
+msgid ""
+"Start Z.\n"
+"If it's left empty it will not be used.\n"
+"A position on Z plane to move immediately after job start."
+msgstr ""
+"Z iniziale.\n"
+"Se lasciato vuoto non sarà usato.\n"
+"Posizione in Z a cui spostarsi per iniziare la lavorazione."
+
+#: AppDatabase.py:293
+msgid ""
+"End Z.\n"
+"A position on Z plane to move immediately after job stop."
+msgstr ""
+"Z finale.\n"
+"Posizione in Z alla quale posizionarsi a fine lavoro."
+
+#: AppDatabase.py:305 AppDatabase.py:682 AppDatabase.py:716 AppDatabase.py:1898
+#: AppDatabase.py:2144 AppDatabase.py:2178
+msgid "Could not load Tools DB file."
+msgstr "Impossibile caricare il file del DB utensili."
+
+#: AppDatabase.py:313 AppDatabase.py:724 AppDatabase.py:1906
+#: AppDatabase.py:2186
+msgid "Failed to parse Tools DB file."
+msgstr "Impossibile processare il file del DB utensili."
+
+#: AppDatabase.py:316 AppDatabase.py:727 AppDatabase.py:1909
+#: AppDatabase.py:2189
+msgid "Loaded FlatCAM Tools DB from"
+msgstr "Database utensili FlatCAM caricato da"
+
+#: AppDatabase.py:322 AppDatabase.py:1823
+msgid "Add to DB"
+msgstr "Aggiungi a DB"
+
+#: AppDatabase.py:324 AppDatabase.py:1826
+msgid "Copy from DB"
+msgstr "Copia da DB"
+
+#: AppDatabase.py:326 AppDatabase.py:1829
+msgid "Delete from DB"
+msgstr "Cancella da DB"
+
+#: AppDatabase.py:603 AppDatabase.py:2044
+msgid "Tool added to DB."
+msgstr "Utensile aggiunto al DB."
+
+#: AppDatabase.py:624 AppDatabase.py:2077
+msgid "Tool copied from Tools DB."
+msgstr "Utensile copiato dal DB utensile."
+
+#: AppDatabase.py:642 AppDatabase.py:2104
+msgid "Tool removed from Tools DB."
+msgstr "Utensile rimosso dal DB utensili."
+
+#: AppDatabase.py:653 AppDatabase.py:2115
+msgid "Export Tools Database"
+msgstr "Esportazione DataBase utensili"
+
+#: AppDatabase.py:656 AppDatabase.py:2118
+msgid "Tools_Database"
+msgstr "Databse_utensili"
+
+#: AppDatabase.py:663 AppDatabase.py:709 AppDatabase.py:2125
+#: AppDatabase.py:2171 AppEditors/FlatCAMExcEditor.py:1023
+#: AppEditors/FlatCAMExcEditor.py:1091 AppEditors/FlatCAMTextEditor.py:223
+#: AppGUI/MainGUI.py:2690 AppGUI/MainGUI.py:2906 AppGUI/MainGUI.py:3121
+#: AppObjects/ObjectCollection.py:126 AppTools/ToolFilm.py:739
+#: AppTools/ToolFilm.py:885 AppTools/ToolImage.py:247 AppTools/ToolMove.py:269
+#: AppTools/ToolPcbWizard.py:301 AppTools/ToolPcbWizard.py:324
+#: AppTools/ToolQRCode.py:791 AppTools/ToolQRCode.py:838 App_Main.py:1694
+#: App_Main.py:2430 App_Main.py:2465 App_Main.py:2512 App_Main.py:3991
+#: App_Main.py:6529 App_Main.py:6566 App_Main.py:6608 App_Main.py:6637
+#: App_Main.py:6678 App_Main.py:6703 App_Main.py:6755 App_Main.py:6790
+#: App_Main.py:6835 App_Main.py:6876 App_Main.py:6917 App_Main.py:6958
+#: App_Main.py:6999 App_Main.py:7043 App_Main.py:7099 App_Main.py:7131
+#: App_Main.py:7163 App_Main.py:7394 App_Main.py:7432 App_Main.py:7475
+#: App_Main.py:7552 App_Main.py:7607 Bookmark.py:300 Bookmark.py:342
+msgid "Cancelled."
+msgstr "Cancellato."
+
+#: AppDatabase.py:671 AppDatabase.py:2133 AppEditors/FlatCAMTextEditor.py:276
+#: AppObjects/FlatCAMCNCJob.py:959 AppTools/ToolFilm.py:1016
+#: AppTools/ToolFilm.py:1197 AppTools/ToolSolderPaste.py:1534 App_Main.py:2520
+#: App_Main.py:7851 App_Main.py:7899 App_Main.py:8024 App_Main.py:8160
+#: Bookmark.py:308
+msgid ""
+"Permission denied, saving not possible.\n"
+"Most likely another app is holding the file open and not accessible."
+msgstr ""
+"Autorizzazione negata, salvataggio impossibile.\n"
+"Molto probabilmente un'altra app tiene il file aperto e non accessibile."
+
+#: AppDatabase.py:693 AppDatabase.py:696 AppDatabase.py:748 AppDatabase.py:2155
+#: AppDatabase.py:2158 AppDatabase.py:2211
+msgid "Failed to write Tools DB to file."
+msgstr "Errore nella scrittura del file del DB utensili."
+
+#: AppDatabase.py:699 AppDatabase.py:2161
+msgid "Exported Tools DB to"
+msgstr "DB utensili esportato in"
+
+#: AppDatabase.py:706 AppDatabase.py:2168
+msgid "Import FlatCAM Tools DB"
+msgstr "Importazione DB FlatCAM utensili"
+
+#: AppDatabase.py:738 AppDatabase.py:913 AppDatabase.py:2200
+#: AppDatabase.py:2418 AppObjects/FlatCAMGeometry.py:947
+#: AppTools/ToolNCC.py:4015 AppTools/ToolNCC.py:4099 AppTools/ToolPaint.py:3558
+#: AppTools/ToolPaint.py:3643 App_Main.py:5172 App_Main.py:5200
+#: App_Main.py:5227 App_Main.py:5247
+msgid "Tools Database"
+msgstr "Database degli utensili"
+
+#: AppDatabase.py:752 AppDatabase.py:2215
+msgid "Saved Tools DB."
+msgstr "DB utensili salvati."
+
+#: AppDatabase.py:899 AppDatabase.py:2405
+msgid "No Tool/row selected in the Tools Database table"
+msgstr "Nessun utensile/colonna selezionato nella tabella DB degli utensili"
+
+#: AppDatabase.py:917 AppDatabase.py:2422
+msgid "Cancelled adding tool from DB."
+msgstr "Aggiunta utensile in DB annullata."
+
+#: AppDatabase.py:1018
+msgid "Basic Geo Parameters"
+msgstr "Parametri Geo Basic"
+
+#: AppDatabase.py:1030
+msgid "Advanced Geo Parameters"
+msgstr "Parametri Geo avanzati"
+
+#: AppDatabase.py:1042
+msgid "NCC Parameters"
+msgstr "Parametri NCC"
+
+#: AppDatabase.py:1054
+msgid "Paint Parameters"
+msgstr "Parametri pittura"
+
+#: AppDatabase.py:1185 AppGUI/ObjectUI.py:967 AppGUI/ObjectUI.py:1871
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:185
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:148
+#: AppTools/ToolSolderPaste.py:253
+msgid "Feedrate X-Y"
+msgstr "Avanzamento X-Y"
+
+#: AppDatabase.py:1187
+msgid ""
+"Feedrate X-Y. Feedrate\n"
+"The speed on XY plane used while cutting into material."
+msgstr ""
+"Avanzamento X-Y. Feedrate\n"
+"Velocità usata sul piano XY durante il taglio nel materiale."
+
+#: AppDatabase.py:1199 AppGUI/ObjectUI.py:982 AppGUI/ObjectUI.py:1885
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:207
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:200
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:161
+#: AppTools/ToolSolderPaste.py:265
+msgid "Feedrate Z"
+msgstr "Avanzamento Z"
+
+#: AppDatabase.py:1201
+msgid ""
+"Feedrate Z\n"
+"The speed on Z plane."
+msgstr ""
+"Avanzamento Z. Feedrate Z\n"
+"La velocità sull'asse Z."
+
+#: AppDatabase.py:1399 AppGUI/ObjectUI.py:845
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:46
+#: AppTools/ToolNCC.py:341
+msgid "Operation"
+msgstr "Operazione"
+
+#: AppDatabase.py:1401 AppTools/ToolNCC.py:343
+msgid ""
+"The 'Operation' can be:\n"
+"- Isolation -> will ensure that the non-copper clearing is always complete.\n"
+"If it's not successful then the non-copper clearing will fail, too.\n"
+"- Clear -> the regular non-copper clearing."
+msgstr ""
+"L' 'Operazione' può essere:\n"
+"- Isolamento -> assicurerà che la rimozione non-rame sia sempre completa.\n"
+"Se non ha esito positivo, anche la pulizia non-rame avrà esito negativo.\n"
+"- Cancella -> la normale pulizia non-rame."
+
+#: AppDatabase.py:1408 AppEditors/FlatCAMGrbEditor.py:2740
+#: AppGUI/GUIElements.py:2604 AppTools/ToolNCC.py:350
+msgid "Clear"
+msgstr "Pulisci"
+
+#: AppDatabase.py:1409 AppTools/ToolNCC.py:351 AppTools/ToolNCC.py:1624
+msgid "Isolation"
+msgstr "Isolamento"
+
+#: AppDatabase.py:1417 AppGUI/ObjectUI.py:409 AppGUI/ObjectUI.py:867
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:62
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:56
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:95
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:137 AppTools/ToolNCC.py:359
+msgid "Milling Type"
+msgstr "Tipo di fresatura"
+
+#: AppDatabase.py:1419 AppDatabase.py:1427
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:139
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:147 AppTools/ToolNCC.py:361
+#: AppTools/ToolNCC.py:369
+msgid ""
+"Milling type when the selected tool is of type: 'iso_op':\n"
+"- climb / best for precision milling and to reduce tool usage\n"
+"- conventional / useful when there is no backlash compensation"
+msgstr ""
+"Tipo di fresatura quando l'utensile selezionato è di tipo: 'iso_op':\n"
+"- salita / migliore per fresatura di precisione e riduzione dell'uso degli "
+"utensili\n"
+"- convenzionale / utile in assenza di compensazione del gioco"
+
+#: AppDatabase.py:1424 AppGUI/ObjectUI.py:415
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:62
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:102
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:144 AppTools/ToolNCC.py:366
+msgid "Climb"
+msgstr "Salita"
+
+#: AppDatabase.py:1425 AppGUI/ObjectUI.py:416
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:63
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:103
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:145 AppTools/ToolNCC.py:367
+msgid "Conventional"
+msgstr "Convenzionale"
+
+#: AppDatabase.py:1437 AppDatabase.py:1546 AppEditors/FlatCAMGeoEditor.py:450
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:182
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:163
+#: AppTools/ToolNCC.py:382 AppTools/ToolPaint.py:328
+msgid "Overlap"
+msgstr "Sovrapposizione"
+
+#: AppDatabase.py:1439 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:184
+#: AppTools/ToolNCC.py:384
+msgid ""
+"How much (percentage) of the tool width to overlap each tool pass.\n"
+"Adjust the value starting with lower values\n"
+"and increasing it if areas that should be cleared are still \n"
+"not cleared.\n"
+"Lower values = faster processing, faster execution on CNC.\n"
+"Higher values = slow processing and slow execution on CNC\n"
+"due of too many paths."
+msgstr ""
+"Quanta (frazione) della larghezza dell'utensile da sovrapporre ad\n"
+"ogni passaggio dell'utensile. Regola il valore iniziando con valori\n"
+"più bassi e aumentandolo se le aree da eliminare sono ancora\n"
+"presenti.\n"
+"Valori più bassi = elaborazione più rapida, esecuzione più veloce su CNC.\n"
+"Valori più alti = elaborazione lenta ed esecuzione lenta su CNC\n"
+"per i molti percorsi."
+
+#: AppDatabase.py:1458 AppDatabase.py:1567 AppEditors/FlatCAMGeoEditor.py:470
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:72
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:229
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:59
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:45
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:53
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:66
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:183
+#: AppTools/ToolCopperThieving.py:111 AppTools/ToolCopperThieving.py:362
+#: AppTools/ToolCorners.py:140 AppTools/ToolCutOut.py:190
+#: AppTools/ToolFiducials.py:172 AppTools/ToolInvertGerber.py:88
+#: AppTools/ToolInvertGerber.py:96 AppTools/ToolNCC.py:403
+#: AppTools/ToolPaint.py:349
+msgid "Margin"
+msgstr "Margine"
+
+#: AppDatabase.py:1460
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:74
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:61
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:68
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204
+#: AppTools/ToolCopperThieving.py:113 AppTools/ToolCorners.py:142
+#: AppTools/ToolFiducials.py:174 AppTools/ToolNCC.py:405
+msgid "Bounding box margin."
+msgstr "Margine del riquadro di delimitazione."
+
+#: AppDatabase.py:1471 AppDatabase.py:1582 AppEditors/FlatCAMGeoEditor.py:484
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:105
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:198
+#: AppTools/ToolExtractDrills.py:128 AppTools/ToolNCC.py:416
+#: AppTools/ToolPaint.py:364 AppTools/ToolPunchGerber.py:139
+msgid "Method"
+msgstr "Metodo"
+
+#: AppDatabase.py:1473 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:217
+#: AppTools/ToolNCC.py:418
+msgid ""
+"Algorithm for copper clearing:\n"
+"- Standard: Fixed step inwards.\n"
+"- Seed-based: Outwards from seed.\n"
+"- Line-based: Parallel lines."
+msgstr ""
+"Algoritmo per la pittura:\n"
+"- Standard: passo fisso verso l'interno.\n"
+"- A base di semi: verso l'esterno dal seme.\n"
+"- Basato su linee: linee parallele."
+
+#: AppDatabase.py:1481 AppDatabase.py:1596 AppEditors/FlatCAMGeoEditor.py:498
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
+#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2212 AppTools/ToolNCC.py:2739
+#: AppTools/ToolNCC.py:2771 AppTools/ToolPaint.py:389
+#: AppTools/ToolPaint.py:1839 tclCommands/TclCommandCopperClear.py:126
+#: tclCommands/TclCommandCopperClear.py:134 tclCommands/TclCommandPaint.py:125
+msgid "Standard"
+msgstr "Standard"
+
+#: AppDatabase.py:1481 AppDatabase.py:1596 AppEditors/FlatCAMGeoEditor.py:498
+#: AppEditors/FlatCAMGeoEditor.py:568 AppEditors/FlatCAMGeoEditor.py:5146
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
+#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2223 AppTools/ToolNCC.py:2745
+#: AppTools/ToolNCC.py:2777 AppTools/ToolPaint.py:389
+#: AppTools/ToolPaint.py:1853 defaults.py:400 defaults.py:432
+#: tclCommands/TclCommandCopperClear.py:128
+#: tclCommands/TclCommandCopperClear.py:136 tclCommands/TclCommandPaint.py:127
+msgid "Seed"
+msgstr "Seme"
+
+#: AppDatabase.py:1481 AppDatabase.py:1596 AppEditors/FlatCAMGeoEditor.py:498
+#: AppEditors/FlatCAMGeoEditor.py:5150
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
+#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2234 AppTools/ToolPaint.py:389
+#: AppTools/ToolPaint.py:698 AppTools/ToolPaint.py:1867
+#: tclCommands/TclCommandCopperClear.py:130 tclCommands/TclCommandPaint.py:129
+msgid "Lines"
+msgstr "Righe"
+
+#: AppDatabase.py:1481 AppDatabase.py:1596
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
+#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2245 AppTools/ToolPaint.py:389
+#: AppTools/ToolPaint.py:2032 tclCommands/TclCommandPaint.py:133
+msgid "Combo"
+msgstr "Combinata"
+
+#: AppDatabase.py:1489 AppDatabase.py:1607
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:237
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:224
+#: AppTools/ToolNCC.py:439 AppTools/ToolPaint.py:400
+msgid "Connect"
+msgstr "Connetti"
+
+#: AppDatabase.py:1493 AppDatabase.py:1610 AppEditors/FlatCAMGeoEditor.py:507
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:239
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:226
+#: AppTools/ToolNCC.py:443 AppTools/ToolPaint.py:403
+msgid ""
+"Draw lines between resulting\n"
+"segments to minimize tool lifts."
+msgstr ""
+"Disegna linee tra segmenti risultanti\n"
+"per minimizzare i sollevamenti dell'utensile."
+
+#: AppDatabase.py:1499 AppDatabase.py:1614
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:246
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:232
+#: AppTools/ToolNCC.py:449 AppTools/ToolPaint.py:407
+msgid "Contour"
+msgstr "Controno"
+
+#: AppDatabase.py:1503 AppDatabase.py:1617 AppEditors/FlatCAMGeoEditor.py:517
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:248
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:234
+#: AppTools/ToolNCC.py:453 AppTools/ToolPaint.py:410
+msgid ""
+"Cut around the perimeter of the polygon\n"
+"to trim rough edges."
+msgstr ""
+"Taglia attorno al perimetro del poligono\n"
+"per rifinire bordi grezzi."
+
+#: AppDatabase.py:1509 AppEditors/FlatCAMGeoEditor.py:611
+#: AppEditors/FlatCAMGrbEditor.py:5289 AppGUI/ObjectUI.py:143
+#: AppGUI/ObjectUI.py:1599 AppGUI/ObjectUI.py:2456
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:255
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:142
+#: AppTools/ToolNCC.py:459 AppTools/ToolTransform.py:28
+msgid "Offset"
+msgstr "Offset"
+
+#: AppDatabase.py:1513 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:257
+#: AppTools/ToolNCC.py:463
+msgid ""
+"If used, it will add an offset to the copper features.\n"
+"The copper clearing will finish to a distance\n"
+"from the copper features.\n"
+"The value can be between 0 and 10 FlatCAM units."
+msgstr ""
+"Se utilizzato, aggiungerà un offset alle lavorazioni su rame.\n"
+"La rimozione del del rame finirà a una data distanza\n"
+"dalle lavorazioni sul rame.\n"
+"Il valore può essere compreso tra 0 e 10 unità FlatCAM."
+
+#: AppDatabase.py:1548 AppEditors/FlatCAMGeoEditor.py:452
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:165
+#: AppTools/ToolPaint.py:330
+msgid ""
+"How much (percentage) of the tool width to overlap each tool pass.\n"
+"Adjust the value starting with lower values\n"
+"and increasing it if areas that should be painted are still \n"
+"not painted.\n"
+"Lower values = faster processing, faster execution on CNC.\n"
+"Higher values = slow processing and slow execution on CNC\n"
+"due of too many paths."
+msgstr ""
+"Quanta larghezza dell'utensile (frazione) da sovrapporre ad ogni passaggio.\n"
+"Sistema il valore partendo da valori bassi\n"
+"ed aumentalo se aree da colorare non lo sono.\n"
+"Valori bassi = velocità di elaborazione, velocità di esecuzione su CNC.\n"
+"Valori elevati = bassa velocità di elaborazione e bassa velocità di "
+"esecuzione su CNC\n"
+"causata dai troppo percorsi."
+
+#: AppDatabase.py:1569 AppEditors/FlatCAMGeoEditor.py:472
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:185
+#: AppTools/ToolPaint.py:351
+msgid ""
+"Distance by which to avoid\n"
+"the edges of the polygon to\n"
+"be painted."
+msgstr ""
+"Distanza alla quale evitare\n"
+"i bordi dei poligoni da\n"
+"disegnare."
+
+#: AppDatabase.py:1584 AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:200
+#: AppTools/ToolPaint.py:366
+msgid ""
+"Algorithm for painting:\n"
+"- Standard: Fixed step inwards.\n"
+"- Seed-based: Outwards from seed.\n"
+"- Line-based: Parallel lines.\n"
+"- Laser-lines: Active only for Gerber objects.\n"
+"Will create lines that follow the traces.\n"
+"- Combo: In case of failure a new method will be picked from the above\n"
+"in the order specified."
+msgstr ""
+"Algoritmo per la pittura: \n"
+"- Standard: passo fisso verso l'interno.\n"
+"- A base di semi: verso l'esterno dal seme.\n"
+"- Basato su linee: linee parallele.\n"
+"- Linee laser: attivo solo per oggetti Gerber.\n"
+"Creerà linee che seguono le tracce.\n"
+"- Combo: in caso di guasto verrà scelto un nuovo metodo tra quelli sopra "
+"indicati\n"
+"nell'ordine specificato."
+
+#: AppDatabase.py:1596 AppDatabase.py:1598
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
+#: AppTools/ToolPaint.py:389 AppTools/ToolPaint.py:391
+#: AppTools/ToolPaint.py:692 AppTools/ToolPaint.py:697
+#: AppTools/ToolPaint.py:1881 tclCommands/TclCommandPaint.py:131
+msgid "Laser_lines"
+msgstr "Laser_lines"
+
+#: AppDatabase.py:1641
+msgid "Add Tool in DB"
+msgstr "Aggiunti utensile nel DB"
+
+#: AppDatabase.py:1675
+msgid "Save DB"
+msgstr "Salva DB"
+
+#: AppDatabase.py:1677
+msgid "Save the Tools Database information's."
+msgstr "Salva le informazioni del Databse utensili."
+
+#: AppEditors/FlatCAMExcEditor.py:50 AppEditors/FlatCAMExcEditor.py:74
+#: AppEditors/FlatCAMExcEditor.py:168 AppEditors/FlatCAMExcEditor.py:385
+#: AppEditors/FlatCAMExcEditor.py:589 AppEditors/FlatCAMGrbEditor.py:241
+#: AppEditors/FlatCAMGrbEditor.py:248
+msgid "Click to place ..."
+msgstr "Clicca per posizionare ..."
+
+#: AppEditors/FlatCAMExcEditor.py:58
+msgid "To add a drill first select a tool"
+msgstr "Per aggiungere un foro prima seleziona un utensile"
+
+#: AppEditors/FlatCAMExcEditor.py:122
+msgid "Done. Drill added."
+msgstr "Fatto. Foro aggiunto."
+
+#: AppEditors/FlatCAMExcEditor.py:176
+msgid "To add an Drill Array first select a tool in Tool Table"
+msgstr "Per aggiungere una matrice di punti prima seleziona un utensile"
+
+#: AppEditors/FlatCAMExcEditor.py:192 AppEditors/FlatCAMExcEditor.py:415
+#: AppEditors/FlatCAMExcEditor.py:636 AppEditors/FlatCAMExcEditor.py:1151
+#: AppEditors/FlatCAMExcEditor.py:1178 AppEditors/FlatCAMGrbEditor.py:471
+#: AppEditors/FlatCAMGrbEditor.py:1935 AppEditors/FlatCAMGrbEditor.py:1965
+msgid "Click on target location ..."
+msgstr "Clicca sulla posizione di destinazione ..."
+
+#: AppEditors/FlatCAMExcEditor.py:211
+msgid "Click on the Drill Circular Array Start position"
+msgstr "Clicca sulla posizione di inizio della matrice fori circolare"
+
+#: AppEditors/FlatCAMExcEditor.py:233 AppEditors/FlatCAMExcEditor.py:677
+#: AppEditors/FlatCAMGrbEditor.py:516
+msgid "The value is not Float. Check for comma instead of dot separator."
+msgstr "Il valore non è float. Controlla che il punto non sia una virgola."
+
+#: AppEditors/FlatCAMExcEditor.py:237
+msgid "The value is mistyped. Check the value"
+msgstr "Valore erroneo. Controlla il valore"
+
+#: AppEditors/FlatCAMExcEditor.py:336
+msgid "Too many drills for the selected spacing angle."
+msgstr "Troppi fori per l'angolo selezionato."
+
+#: AppEditors/FlatCAMExcEditor.py:354
+msgid "Done. Drill Array added."
+msgstr "Fatto. Matrice fori aggiunta."
+
+#: AppEditors/FlatCAMExcEditor.py:394
+msgid "To add a slot first select a tool"
+msgstr "Per aggiungere uno slot prima seleziona un utensile"
+
+#: AppEditors/FlatCAMExcEditor.py:454 AppEditors/FlatCAMExcEditor.py:461
+#: AppEditors/FlatCAMExcEditor.py:742 AppEditors/FlatCAMExcEditor.py:749
+msgid "Value is missing or wrong format. Add it and retry."
+msgstr "Valore con formato errato o mancante. Aggiungilo e riprova."
+
+#: AppEditors/FlatCAMExcEditor.py:559
+msgid "Done. Adding Slot completed."
+msgstr "Fatto. Slot aggiunto."
+
+#: AppEditors/FlatCAMExcEditor.py:597
+msgid "To add an Slot Array first select a tool in Tool Table"
+msgstr ""
+"Per aggiungere una matrice di slot seleziona prima un utensile dalla tabella"
+
+#: AppEditors/FlatCAMExcEditor.py:655
+msgid "Click on the Slot Circular Array Start position"
+msgstr "Clicca sulla posizione iniziale della matrice circolare di slot"
+
+#: AppEditors/FlatCAMExcEditor.py:680 AppEditors/FlatCAMGrbEditor.py:519
+msgid "The value is mistyped. Check the value."
+msgstr "Valore errato. Controllalo."
+
+#: AppEditors/FlatCAMExcEditor.py:859
+msgid "Too many Slots for the selected spacing angle."
+msgstr "Troppi slot per l'angolo selezionato."
+
+#: AppEditors/FlatCAMExcEditor.py:882
+msgid "Done. Slot Array added."
+msgstr "Fatto. Matrice di slot aggiunta."
+
+#: AppEditors/FlatCAMExcEditor.py:904
+msgid "Click on the Drill(s) to resize ..."
+msgstr "Clicca sul foro(i) da ridimensionare ..."
+
+#: AppEditors/FlatCAMExcEditor.py:934
+msgid "Resize drill(s) failed. Please enter a diameter for resize."
+msgstr ""
+"Ridimensionamento fallito. Inserisci un diametro per il ridimensionamento."
+
+#: AppEditors/FlatCAMExcEditor.py:1112
+msgid "Done. Drill/Slot Resize completed."
+msgstr "Fatto. Ridimensionamento Foro/Slot completato."
+
+#: AppEditors/FlatCAMExcEditor.py:1115
+msgid "Cancelled. No drills/slots selected for resize ..."
+msgstr "Cancellato. Nessun foro/slot selezionato per il ridimensionamento ..."
+
+#: AppEditors/FlatCAMExcEditor.py:1153 AppEditors/FlatCAMGrbEditor.py:1937
+msgid "Click on reference location ..."
+msgstr "Clicca sulla posizione di riferimento ..."
+
+#: AppEditors/FlatCAMExcEditor.py:1210
+msgid "Done. Drill(s) Move completed."
+msgstr "Fatto. Foro(i) spostato(i) correttamente."
+
+#: AppEditors/FlatCAMExcEditor.py:1318
+msgid "Done. Drill(s) copied."
+msgstr "Fatto. Foro(i) copiato(i)."
+
+#: AppEditors/FlatCAMExcEditor.py:1557
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:26
+msgid "Excellon Editor"
+msgstr "Editor Excellon"
+
+#: AppEditors/FlatCAMExcEditor.py:1564 AppEditors/FlatCAMGrbEditor.py:2460
+msgid "Name:"
+msgstr "Nome:"
+
+#: AppEditors/FlatCAMExcEditor.py:1570 AppGUI/ObjectUI.py:761
+#: AppGUI/ObjectUI.py:1567 AppTools/ToolNCC.py:120 AppTools/ToolPaint.py:114
+#: AppTools/ToolSolderPaste.py:74
+msgid "Tools Table"
+msgstr "Tabella utensili"
+
+#: AppEditors/FlatCAMExcEditor.py:1572 AppGUI/ObjectUI.py:763
+msgid ""
+"Tools in this Excellon object\n"
+"when are used for drilling."
+msgstr ""
+"Utensili in questo oggetto Excellon\n"
+"quando usati per la foratura."
+
+#: AppEditors/FlatCAMExcEditor.py:1584 AppEditors/FlatCAMExcEditor.py:3041
+#: AppGUI/ObjectUI.py:781 AppObjects/FlatCAMExcellon.py:1177
+#: AppObjects/FlatCAMExcellon.py:1268 AppObjects/FlatCAMExcellon.py:1453
+#: AppTools/ToolNCC.py:132 AppTools/ToolPaint.py:127
+#: AppTools/ToolPcbWizard.py:76 AppTools/ToolProperties.py:416
+#: AppTools/ToolProperties.py:476 AppTools/ToolSolderPaste.py:85
+#: tclCommands/TclCommandDrillcncjob.py:195
+msgid "Diameter"
+msgstr "Diametro"
+
+#: AppEditors/FlatCAMExcEditor.py:1592
+msgid "Add/Delete Tool"
+msgstr "Aggiungi/Modifica utensile"
+
+#: AppEditors/FlatCAMExcEditor.py:1594
+msgid ""
+"Add/Delete a tool to the tool list\n"
+"for this Excellon object."
+msgstr ""
+"Aggiungi/Modifica un utensile dalla lista utensili\n"
+"per questo oggetto Excellon."
+
+#: AppEditors/FlatCAMExcEditor.py:1606 AppGUI/ObjectUI.py:1687
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:57
+msgid "Diameter for the new tool"
+msgstr "Diametro del nuovo utensile"
+
+#: AppEditors/FlatCAMExcEditor.py:1616
+msgid "Add Tool"
+msgstr "Aggiunge utensile"
+
+#: AppEditors/FlatCAMExcEditor.py:1618
+msgid ""
+"Add a new tool to the tool list\n"
+"with the diameter specified above."
+msgstr ""
+"Aggiungi un nuovo utensile alla lista\n"
+"con il diametro specificato sopra."
+
+#: AppEditors/FlatCAMExcEditor.py:1630
+msgid "Delete Tool"
+msgstr "Cancella utensile"
+
+#: AppEditors/FlatCAMExcEditor.py:1632
+msgid ""
+"Delete a tool in the tool list\n"
+"by selecting a row in the tool table."
+msgstr ""
+"Cancella un utensile dalla lista\n"
+"selezionandone la riga nella tabella."
+
+#: AppEditors/FlatCAMExcEditor.py:1650 AppGUI/MainGUI.py:4311
+msgid "Resize Drill(s)"
+msgstr "Ridimensiona foro(i)"
+
+#: AppEditors/FlatCAMExcEditor.py:1652
+msgid "Resize a drill or a selection of drills."
+msgstr "Ridimensiona un foro o una selezione di fori."
+
+#: AppEditors/FlatCAMExcEditor.py:1659
+msgid "Resize Dia"
+msgstr "Diametro ridimensionamento"
+
+#: AppEditors/FlatCAMExcEditor.py:1661
+msgid "Diameter to resize to."
+msgstr "Diametro al quale ridimensionare."
+
+#: AppEditors/FlatCAMExcEditor.py:1672
+msgid "Resize"
+msgstr "Ridimensiona"
+
+#: AppEditors/FlatCAMExcEditor.py:1674
+msgid "Resize drill(s)"
+msgstr "Ridimensiona foro(i)"
+
+#: AppEditors/FlatCAMExcEditor.py:1699 AppGUI/MainGUI.py:1473
+#: AppGUI/MainGUI.py:4310
+msgid "Add Drill Array"
+msgstr "Aggiungi matrice di fori"
+
+#: AppEditors/FlatCAMExcEditor.py:1701
+msgid "Add an array of drills (linear or circular array)"
+msgstr "Aggiunge una matrice di fori (lineare o circolare)"
+
+#: AppEditors/FlatCAMExcEditor.py:1707
+msgid ""
+"Select the type of drills array to create.\n"
+"It can be Linear X(Y) or Circular"
+msgstr ""
+"Seleziona il tipo di matrice di fori da creare.\n"
+"Può essere lineare X(Y) o circolare"
+
+#: AppEditors/FlatCAMExcEditor.py:1710 AppEditors/FlatCAMExcEditor.py:1924
+#: AppEditors/FlatCAMGrbEditor.py:2773
+msgid "Linear"
+msgstr "Lineare"
+
+#: AppEditors/FlatCAMExcEditor.py:1711 AppEditors/FlatCAMExcEditor.py:1925
+#: AppEditors/FlatCAMGrbEditor.py:2774 AppGUI/ObjectUI.py:316
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:52
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:149
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:107
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:52
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:151
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:70
+#: AppTools/ToolExtractDrills.py:78 AppTools/ToolExtractDrills.py:201
+#: AppTools/ToolFiducials.py:220 AppTools/ToolNCC.py:221
+#: AppTools/ToolPaint.py:203 AppTools/ToolPunchGerber.py:89
+#: AppTools/ToolPunchGerber.py:229
+msgid "Circular"
+msgstr "Circolare"
+
+#: AppEditors/FlatCAMExcEditor.py:1719
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:68
+msgid "Nr of drills"
+msgstr "Numero di fori"
+
+#: AppEditors/FlatCAMExcEditor.py:1720
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:70
+msgid "Specify how many drills to be in the array."
+msgstr "Specifica quanti fori sono presenti nella matrice."
+
+#: AppEditors/FlatCAMExcEditor.py:1738 AppEditors/FlatCAMExcEditor.py:1788
+#: AppEditors/FlatCAMExcEditor.py:1860 AppEditors/FlatCAMExcEditor.py:1953
+#: AppEditors/FlatCAMExcEditor.py:2004 AppEditors/FlatCAMGrbEditor.py:1571
+#: AppEditors/FlatCAMGrbEditor.py:2802 AppEditors/FlatCAMGrbEditor.py:2851
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:178
+msgid "Direction"
+msgstr "Direzione"
+
+#: AppEditors/FlatCAMExcEditor.py:1740 AppEditors/FlatCAMExcEditor.py:1955
+#: AppEditors/FlatCAMGrbEditor.py:2804
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:86
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:234
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:122
+msgid ""
+"Direction on which the linear array is oriented:\n"
+"- 'X' - horizontal axis \n"
+"- 'Y' - vertical axis or \n"
+"- 'Angle' - a custom angle for the array inclination"
+msgstr ""
+"Direzione di orientamento della matrice lineare:\n"
+"- 'X' - asse orizzontale \n"
+"- 'Y' - asse verticale o\n"
+"- 'Angolo' - angolo per l'inclinazione della matrice"
+
+#: AppEditors/FlatCAMExcEditor.py:1747 AppEditors/FlatCAMExcEditor.py:1869
+#: AppEditors/FlatCAMExcEditor.py:1962 AppEditors/FlatCAMGrbEditor.py:2811
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:92
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:187
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:240
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:128
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:208
+#: AppTools/ToolFilm.py:239
+msgid "X"
+msgstr "X"
+
+#: AppEditors/FlatCAMExcEditor.py:1748 AppEditors/FlatCAMExcEditor.py:1870
+#: AppEditors/FlatCAMExcEditor.py:1963 AppEditors/FlatCAMGrbEditor.py:2812
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:93
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:188
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:241
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:129
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:209
+#: AppTools/ToolFilm.py:240
+msgid "Y"
+msgstr "Y"
+
+#: AppEditors/FlatCAMExcEditor.py:1749 AppEditors/FlatCAMExcEditor.py:1766
+#: AppEditors/FlatCAMExcEditor.py:1800 AppEditors/FlatCAMExcEditor.py:1871
+#: AppEditors/FlatCAMExcEditor.py:1875 AppEditors/FlatCAMExcEditor.py:1964
+#: AppEditors/FlatCAMExcEditor.py:1982 AppEditors/FlatCAMExcEditor.py:2016
+#: AppEditors/FlatCAMGrbEditor.py:2813 AppEditors/FlatCAMGrbEditor.py:2830
+#: AppEditors/FlatCAMGrbEditor.py:2866
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:94
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:113
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:189
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:194
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:242
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:263
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:130
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:148
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:53
+#: AppTools/ToolDistance.py:120 AppTools/ToolDistanceMin.py:68
+#: AppTools/ToolTransform.py:60
+msgid "Angle"
+msgstr "Angolo"
+
+#: AppEditors/FlatCAMExcEditor.py:1753 AppEditors/FlatCAMExcEditor.py:1968
+#: AppEditors/FlatCAMGrbEditor.py:2817
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:100
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:248
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:136
+msgid "Pitch"
+msgstr "Passo"
+
+#: AppEditors/FlatCAMExcEditor.py:1755 AppEditors/FlatCAMExcEditor.py:1970
+#: AppEditors/FlatCAMGrbEditor.py:2819
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:102
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:250
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:138
+msgid "Pitch = Distance between elements of the array."
+msgstr "Passo = distanza tra due elementi della matrice."
+
+#: AppEditors/FlatCAMExcEditor.py:1768 AppEditors/FlatCAMExcEditor.py:1984
+msgid ""
+"Angle at which the linear array is placed.\n"
+"The precision is of max 2 decimals.\n"
+"Min value is: -360 degrees.\n"
+"Max value is: 360.00 degrees."
+msgstr ""
+"Angolo al quale è posizionata la matrice lineare.\n"
+"La precisione è al massimo di 2 decimali.\n"
+"Valore minimo: -360 gradi.\n"
+"Valore massimo: 360.00 gradi."
+
+#: AppEditors/FlatCAMExcEditor.py:1789 AppEditors/FlatCAMExcEditor.py:2005
+#: AppEditors/FlatCAMGrbEditor.py:2853
+msgid ""
+"Direction for circular array.Can be CW = clockwise or CCW = counter "
+"clockwise."
+msgstr ""
+"Direzione matrice circolare. Può essere CW = senso orario o CCW = senso "
+"antiorario."
+
+#: AppEditors/FlatCAMExcEditor.py:1796 AppEditors/FlatCAMExcEditor.py:2012
+#: AppEditors/FlatCAMGrbEditor.py:2861
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:129
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:136
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:286
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:142
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:170
+msgid "CW"
+msgstr "CW"
+
+#: AppEditors/FlatCAMExcEditor.py:1797 AppEditors/FlatCAMExcEditor.py:2013
+#: AppEditors/FlatCAMGrbEditor.py:2862
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:130
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:137
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:287
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:143
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:171
+msgid "CCW"
+msgstr "CCW"
+
+#: AppEditors/FlatCAMExcEditor.py:1801 AppEditors/FlatCAMExcEditor.py:2017
+#: AppEditors/FlatCAMGrbEditor.py:2868
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:115
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:145
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:265
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:295
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:150
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:179
+msgid "Angle at which each element in circular array is placed."
+msgstr "Angolo al quale è posizionato ogni elementodella matrice circolare."
+
+#: AppEditors/FlatCAMExcEditor.py:1835
+msgid "Slot Parameters"
+msgstr "Parametri Slot"
+
+#: AppEditors/FlatCAMExcEditor.py:1837
+msgid ""
+"Parameters for adding a slot (hole with oval shape)\n"
+"either single or as an part of an array."
+msgstr ""
+"Parametri per aggiungere uno slot (foro con bordi ovali)\n"
+"sia singolo sia come parte di una matrice."
+
+#: AppEditors/FlatCAMExcEditor.py:1846
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:56
+#: AppTools/ToolCorners.py:127 AppTools/ToolProperties.py:559
+msgid "Length"
+msgstr "Lunghezza"
+
+#: AppEditors/FlatCAMExcEditor.py:1848
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:164
+msgid "Length = The length of the slot."
+msgstr "Lunghezza = lunghezza dello slot."
+
+#: AppEditors/FlatCAMExcEditor.py:1862
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:180
+msgid ""
+"Direction on which the slot is oriented:\n"
+"- 'X' - horizontal axis \n"
+"- 'Y' - vertical axis or \n"
+"- 'Angle' - a custom angle for the slot inclination"
+msgstr ""
+"Direzione alla quale è orientato lo slot:\n"
+"- 'X' - asse orizzontale\n"
+"- 'Y' - asse verticale o \n"
+"- 'Angolo' - ancolo per l'inclinazione dello slot"
+
+#: AppEditors/FlatCAMExcEditor.py:1877
+msgid ""
+"Angle at which the slot is placed.\n"
+"The precision is of max 2 decimals.\n"
+"Min value is: -360 degrees.\n"
+"Max value is: 360.00 degrees."
+msgstr ""
+"Angolo al quale è posizionato lo slot.\n"
+"La precisione è di massimo 2 decimali.\n"
+"Valore minimo: -360 gradi.\n"
+"Valore massimo: 360.00 gradi."
+
+#: AppEditors/FlatCAMExcEditor.py:1910
+msgid "Slot Array Parameters"
+msgstr "Parametri matrice slot"
+
+#: AppEditors/FlatCAMExcEditor.py:1912
+msgid "Parameters for the array of slots (linear or circular array)"
+msgstr "Parametri per la matrice di slot (matrice lineare o circolare)"
+
+#: AppEditors/FlatCAMExcEditor.py:1921
+msgid ""
+"Select the type of slot array to create.\n"
+"It can be Linear X(Y) or Circular"
+msgstr ""
+"Seleziona il tipo di matrice di slot da creare.\n"
+"Può essere lineare (X,Y) o circolare"
+
+#: AppEditors/FlatCAMExcEditor.py:1933
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:219
+msgid "Nr of slots"
+msgstr "Numero di Slot"
+
+#: AppEditors/FlatCAMExcEditor.py:1934
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:221
+msgid "Specify how many slots to be in the array."
+msgstr "Specifica il numero di slot che comporranno la matrice."
+
+#: AppEditors/FlatCAMExcEditor.py:2452 AppObjects/FlatCAMExcellon.py:423
+msgid "Total Drills"
+msgstr "Fori totali"
+
+#: AppEditors/FlatCAMExcEditor.py:2484 AppObjects/FlatCAMExcellon.py:454
+msgid "Total Slots"
+msgstr "Slot totali"
+
+#: AppEditors/FlatCAMExcEditor.py:2559 AppEditors/FlatCAMGeoEditor.py:1075
+#: AppEditors/FlatCAMGeoEditor.py:1116 AppEditors/FlatCAMGeoEditor.py:1144
+#: AppEditors/FlatCAMGeoEditor.py:1172 AppEditors/FlatCAMGeoEditor.py:1216
+#: AppEditors/FlatCAMGeoEditor.py:1251 AppEditors/FlatCAMGeoEditor.py:1279
+#: AppObjects/FlatCAMGeometry.py:656 AppObjects/FlatCAMGeometry.py:1090
+#: AppObjects/FlatCAMGeometry.py:1830 AppObjects/FlatCAMGeometry.py:2480
+#: AppTools/ToolNCC.py:1498 AppTools/ToolPaint.py:1248
+#: AppTools/ToolPaint.py:1419 AppTools/ToolSolderPaste.py:883
+#: AppTools/ToolSolderPaste.py:956
+msgid "Wrong value format entered, use a number."
+msgstr "Formato valore errato, inserire un numero."
+
+#: AppEditors/FlatCAMExcEditor.py:2570
+msgid ""
+"Tool already in the original or actual tool list.\n"
+"Save and reedit Excellon if you need to add this tool. "
+msgstr ""
+"Utensile già presente nella lista.\n"
+"Salva e riedita l'Excellon se vuoi aggiungere questo utensile. "
+
+#: AppEditors/FlatCAMExcEditor.py:2579 AppGUI/MainGUI.py:3318
+msgid "Added new tool with dia"
+msgstr "Aggiunto nuovo utensile con diametro"
+
+#: AppEditors/FlatCAMExcEditor.py:2612
+msgid "Select a tool in Tool Table"
+msgstr "Seleziona un utensile dalla tabella"
+
+#: AppEditors/FlatCAMExcEditor.py:2642
+msgid "Deleted tool with diameter"
+msgstr "Eliminato utensile con diametro"
+
+#: AppEditors/FlatCAMExcEditor.py:2790
+msgid "Done. Tool edit completed."
+msgstr "Fatto. Modifica utensile completata."
+
+#: AppEditors/FlatCAMExcEditor.py:3327
+msgid "There are no Tools definitions in the file. Aborting Excellon creation."
+msgstr ""
+"Non ci sono definizioni di utensili nel file. Annullo creazione Excellon."
+
+#: AppEditors/FlatCAMExcEditor.py:3331
+msgid "An internal error has ocurred. See Shell.\n"
+msgstr "Errore interno. Vedi shell.\n"
+
+#: AppEditors/FlatCAMExcEditor.py:3336
+msgid "Creating Excellon."
+msgstr "Creazione Excellon."
+
+#: AppEditors/FlatCAMExcEditor.py:3348
+msgid "Excellon editing finished."
+msgstr "Modifica Excellon terminata."
+
+#: AppEditors/FlatCAMExcEditor.py:3365
+msgid "Cancelled. There is no Tool/Drill selected"
+msgstr "Errore: Nessun utensile/Foro selezionato"
+
+#: AppEditors/FlatCAMExcEditor.py:3599 AppEditors/FlatCAMExcEditor.py:3607
+#: AppEditors/FlatCAMGeoEditor.py:4343 AppEditors/FlatCAMGeoEditor.py:4357
+#: AppEditors/FlatCAMGrbEditor.py:1085 AppEditors/FlatCAMGrbEditor.py:1202
+#: AppEditors/FlatCAMGrbEditor.py:1488 AppEditors/FlatCAMGrbEditor.py:1757
+#: AppEditors/FlatCAMGrbEditor.py:4595 AppEditors/FlatCAMGrbEditor.py:4610
+#: AppGUI/MainGUI.py:2671 AppGUI/MainGUI.py:2683
+#: AppTools/ToolAlignObjects.py:393 AppTools/ToolAlignObjects.py:415
+#: App_Main.py:4649 App_Main.py:4803
+msgid "Done."
+msgstr "Fatto."
+
+#: AppEditors/FlatCAMExcEditor.py:3982
+msgid "Done. Drill(s) deleted."
+msgstr "Fatto. Foro(i) cancellato(i)."
+
+#: AppEditors/FlatCAMExcEditor.py:4055 AppEditors/FlatCAMExcEditor.py:4065
+#: AppEditors/FlatCAMGrbEditor.py:5041
+msgid "Click on the circular array Center position"
+msgstr "Clicca sulla posizione centrale della matrice circolare"
+
+#: AppEditors/FlatCAMGeoEditor.py:84
+msgid "Buffer distance:"
+msgstr "Riempimento distanza:"
+
+#: AppEditors/FlatCAMGeoEditor.py:85
+msgid "Buffer corner:"
+msgstr "Riempimento angolo:"
+
+#: AppEditors/FlatCAMGeoEditor.py:87
+msgid ""
+"There are 3 types of corners:\n"
+" - 'Round': the corner is rounded for exterior buffer.\n"
+" - 'Square': the corner is met in a sharp angle for exterior buffer.\n"
+" - 'Beveled': the corner is a line that directly connects the features "
+"meeting in the corner"
+msgstr ""
+"Ci sono 3 tipi di angoli:\n"
+"- 'Arrotondato' : l'angolo è arrotondato per il buffer esterno.\n"
+"- 'Squadrato': l'angolo fiene raggiunto con un angolo acuto.\n"
+"- 'Smussato': l'angolo è una linea che connette direttamente le varie sezioni"
+
+#: AppEditors/FlatCAMGeoEditor.py:93 AppEditors/FlatCAMGrbEditor.py:2629
+msgid "Round"
+msgstr "Arrotondato"
+
+#: AppEditors/FlatCAMGeoEditor.py:94 AppEditors/FlatCAMGrbEditor.py:2630
+#: AppGUI/ObjectUI.py:1370 AppGUI/ObjectUI.py:2204
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:217
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:68
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:175
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:68
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:177
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:143
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:291
+#: AppTools/ToolExtractDrills.py:94 AppTools/ToolExtractDrills.py:227
+#: AppTools/ToolNCC.py:583 AppTools/ToolPaint.py:526
+#: AppTools/ToolPunchGerber.py:105 AppTools/ToolPunchGerber.py:255
+#: AppTools/ToolQRCode.py:198
+msgid "Square"
+msgstr "Squadrato"
+
+#: AppEditors/FlatCAMGeoEditor.py:95 AppEditors/FlatCAMGrbEditor.py:2631
+msgid "Beveled"
+msgstr "Smussato"
+
+#: AppEditors/FlatCAMGeoEditor.py:102
+msgid "Buffer Interior"
+msgstr "Buffer Interiore"
+
+#: AppEditors/FlatCAMGeoEditor.py:104
+msgid "Buffer Exterior"
+msgstr "Buffer Esteriore"
+
+#: AppEditors/FlatCAMGeoEditor.py:110
+msgid "Full Buffer"
+msgstr "Buffer completo"
+
+#: AppEditors/FlatCAMGeoEditor.py:131 AppEditors/FlatCAMGeoEditor.py:3016
+#: AppGUI/MainGUI.py:4220
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:190
+msgid "Buffer Tool"
+msgstr "Utensile buffer"
+
+#: AppEditors/FlatCAMGeoEditor.py:143 AppEditors/FlatCAMGeoEditor.py:160
+#: AppEditors/FlatCAMGeoEditor.py:177 AppEditors/FlatCAMGeoEditor.py:3035
+#: AppEditors/FlatCAMGeoEditor.py:3063 AppEditors/FlatCAMGeoEditor.py:3091
+#: AppEditors/FlatCAMGrbEditor.py:5094
+msgid "Buffer distance value is missing or wrong format. Add it and retry."
+msgstr ""
+"Valore per la distanza buffer mancante o del formato errato. Aggiungilo e "
+"riprova."
+
+#: AppEditors/FlatCAMGeoEditor.py:241
+msgid "Font"
+msgstr "Font"
+
+#: AppEditors/FlatCAMGeoEditor.py:322 AppGUI/MainGUI.py:1411
+msgid "Text"
+msgstr "Testo"
+
+#: AppEditors/FlatCAMGeoEditor.py:348
+msgid "Text Tool"
+msgstr "Utensile testo"
+
+#: AppEditors/FlatCAMGeoEditor.py:404 AppGUI/MainGUI.py:513
+#: AppGUI/MainGUI.py:1158 AppGUI/ObjectUI.py:818 AppGUI/ObjectUI.py:1764
+#: AppObjects/FlatCAMExcellon.py:821 AppObjects/FlatCAMExcellon.py:1163
+#: AppObjects/FlatCAMGeometry.py:816 AppTools/ToolNCC.py:331
+#: AppTools/ToolNCC.py:797 AppTools/ToolPaint.py:313 AppTools/ToolPaint.py:766
+msgid "Tool"
+msgstr "Strumenti"
+
+#: AppEditors/FlatCAMGeoEditor.py:438 AppGUI/ObjectUI.py:364
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:43
+msgid "Tool dia"
+msgstr "Diametro utensile"
+
+#: AppEditors/FlatCAMGeoEditor.py:440
+msgid "Diameter of the tool to be used in the operation."
+msgstr "Diametro dell'utensile da usare per questa operazione."
+
+#: AppEditors/FlatCAMGeoEditor.py:486
+msgid ""
+"Algorithm to paint the polygons:\n"
+"- Standard: Fixed step inwards.\n"
+"- Seed-based: Outwards from seed.\n"
+"- Line-based: Parallel lines."
+msgstr ""
+"Algoritmo per la pittura:\n"
+"- Standard: passo fisso verso l'interno.\n"
+"- A base di semi: verso l'esterno dal seme.\n"
+"- Basato su linee: linee parallele."
+
+#: AppEditors/FlatCAMGeoEditor.py:505
+msgid "Connect:"
+msgstr "Connetti:"
+
+#: AppEditors/FlatCAMGeoEditor.py:515
+msgid "Contour:"
+msgstr "Contorno:"
+
+#: AppEditors/FlatCAMGeoEditor.py:528 AppGUI/MainGUI.py:1415
+msgid "Paint"
+msgstr "Disegno"
+
+#: AppEditors/FlatCAMGeoEditor.py:546 AppGUI/MainGUI.py:917
+#: AppGUI/MainGUI.py:1910 AppGUI/ObjectUI.py:2269 AppTools/ToolPaint.py:42
+#: AppTools/ToolPaint.py:737
+msgid "Paint Tool"
+msgstr "Strumento disegno"
+
+#: AppEditors/FlatCAMGeoEditor.py:582 AppEditors/FlatCAMGeoEditor.py:1054
+#: AppEditors/FlatCAMGeoEditor.py:3023 AppEditors/FlatCAMGeoEditor.py:3051
+#: AppEditors/FlatCAMGeoEditor.py:3079 AppEditors/FlatCAMGeoEditor.py:4496
+#: AppEditors/FlatCAMGrbEditor.py:5745
+msgid "Cancelled. No shape selected."
+msgstr "Cancellato. Nessuna forma selezionata."
+
+#: AppEditors/FlatCAMGeoEditor.py:595 AppEditors/FlatCAMGeoEditor.py:3041
+#: AppEditors/FlatCAMGeoEditor.py:3069 AppEditors/FlatCAMGeoEditor.py:3097
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:59
+#: AppTools/ToolProperties.py:117 AppTools/ToolProperties.py:162
+msgid "Tools"
+msgstr "Strumento"
+
+#: AppEditors/FlatCAMGeoEditor.py:606 AppEditors/FlatCAMGeoEditor.py:990
+#: AppEditors/FlatCAMGrbEditor.py:5284 AppEditors/FlatCAMGrbEditor.py:5681
+#: AppGUI/MainGUI.py:938 AppGUI/MainGUI.py:1931 AppTools/ToolTransform.py:460
+msgid "Transform Tool"
+msgstr "Strumento trasformazione"
+
+#: AppEditors/FlatCAMGeoEditor.py:607 AppEditors/FlatCAMGeoEditor.py:672
+#: AppEditors/FlatCAMGrbEditor.py:5285 AppEditors/FlatCAMGrbEditor.py:5350
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:45
+#: AppTools/ToolTransform.py:24 AppTools/ToolTransform.py:466
+msgid "Rotate"
+msgstr "Ruota"
+
+#: AppEditors/FlatCAMGeoEditor.py:608 AppEditors/FlatCAMGrbEditor.py:5286
+#: AppTools/ToolTransform.py:25
+msgid "Skew/Shear"
+msgstr "Inclina/Taglia"
+
+#: AppEditors/FlatCAMGeoEditor.py:609 AppEditors/FlatCAMGrbEditor.py:2678
+#: AppEditors/FlatCAMGrbEditor.py:5287 AppGUI/MainGUI.py:1060
+#: AppGUI/MainGUI.py:1458 AppGUI/MainGUI.py:2053 AppGUI/MainGUI.py:4432
+#: AppGUI/ObjectUI.py:125
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:95
+#: AppTools/ToolTransform.py:26
+msgid "Scale"
+msgstr "Scala"
+
+#: AppEditors/FlatCAMGeoEditor.py:610 AppEditors/FlatCAMGrbEditor.py:5288
+#: AppTools/ToolTransform.py:27
+msgid "Mirror (Flip)"
+msgstr "Specchia"
+
+#: AppEditors/FlatCAMGeoEditor.py:624 AppEditors/FlatCAMGrbEditor.py:5302
+#: AppGUI/MainGUI.py:849 AppGUI/MainGUI.py:1844
+msgid "Editor"
+msgstr "Editor"
+
+#: AppEditors/FlatCAMGeoEditor.py:656 AppEditors/FlatCAMGrbEditor.py:5334
+msgid "Angle:"
+msgstr "Angolo:"
+
+#: AppEditors/FlatCAMGeoEditor.py:658 AppEditors/FlatCAMGrbEditor.py:5336
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:55
+#: AppTools/ToolTransform.py:62
+msgid ""
+"Angle for Rotation action, in degrees.\n"
+"Float number between -360 and 359.\n"
+"Positive numbers for CW motion.\n"
+"Negative numbers for CCW motion."
+msgstr ""
+"Angolo per la rotazione, in gradi.\n"
+"Numeri float da -360 e 359.\n"
+"Numeri positivi per il senso orario.\n"
+"Numeri negativi per il senso antiorario."
+
+#: AppEditors/FlatCAMGeoEditor.py:674 AppEditors/FlatCAMGrbEditor.py:5352
+msgid ""
+"Rotate the selected shape(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected shapes."
+msgstr ""
+"Ruota le forme selezionate.\n"
+"Il punto di riferimento è al centro del rettangolo\n"
+"di selezione per tutte le forme selezionate."
+
+#: AppEditors/FlatCAMGeoEditor.py:697 AppEditors/FlatCAMGrbEditor.py:5375
+msgid "Angle X:"
+msgstr "Angolo X:"
+
+#: AppEditors/FlatCAMGeoEditor.py:699 AppEditors/FlatCAMGeoEditor.py:719
+#: AppEditors/FlatCAMGrbEditor.py:5377 AppEditors/FlatCAMGrbEditor.py:5397
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:74
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:88
+#: AppTools/ToolCalibration.py:505 AppTools/ToolCalibration.py:518
+msgid ""
+"Angle for Skew action, in degrees.\n"
+"Float number between -360 and 359."
+msgstr ""
+"Angolo per l'inclinazione, in gradi.\n"
+"Numeri float tra -360 e 359."
+
+#: AppEditors/FlatCAMGeoEditor.py:710 AppEditors/FlatCAMGrbEditor.py:5388
+#: AppTools/ToolTransform.py:467
+msgid "Skew X"
+msgstr "Inclinazione X"
+
+#: AppEditors/FlatCAMGeoEditor.py:712 AppEditors/FlatCAMGeoEditor.py:732
+#: AppEditors/FlatCAMGrbEditor.py:5390 AppEditors/FlatCAMGrbEditor.py:5410
+msgid ""
+"Skew/shear the selected shape(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected shapes."
+msgstr ""
+"Inclina le forme selezionate.\n"
+"Il punto di riferimento è il centro del rettangolo\n"
+"che contiene tutte le forme selezionate."
+
+#: AppEditors/FlatCAMGeoEditor.py:717 AppEditors/FlatCAMGrbEditor.py:5395
+msgid "Angle Y:"
+msgstr "Angolo Y:"
+
+#: AppEditors/FlatCAMGeoEditor.py:730 AppEditors/FlatCAMGrbEditor.py:5408
+#: AppTools/ToolTransform.py:468
+msgid "Skew Y"
+msgstr "Inclina Y"
+
+#: AppEditors/FlatCAMGeoEditor.py:758 AppEditors/FlatCAMGrbEditor.py:5436
+msgid "Factor X:"
+msgstr "Fattore X:"
+
+#: AppEditors/FlatCAMGeoEditor.py:760 AppEditors/FlatCAMGrbEditor.py:5438
+#: AppTools/ToolCalibration.py:469
+msgid "Factor for Scale action over X axis."
+msgstr "Fattore per l'azione scala sull'asse X."
+
+#: AppEditors/FlatCAMGeoEditor.py:770 AppEditors/FlatCAMGrbEditor.py:5448
+#: AppTools/ToolTransform.py:469
+msgid "Scale X"
+msgstr "Scala X"
+
+#: AppEditors/FlatCAMGeoEditor.py:772 AppEditors/FlatCAMGeoEditor.py:791
+#: AppEditors/FlatCAMGrbEditor.py:5450 AppEditors/FlatCAMGrbEditor.py:5469
+msgid ""
+"Scale the selected shape(s).\n"
+"The point of reference depends on \n"
+"the Scale reference checkbox state."
+msgstr ""
+"Ridimensiona le forme selezionate.\n"
+"Il punto di riferimento dipende dallo\n"
+"stato del checkbox Riferimento scala."
+
+#: AppEditors/FlatCAMGeoEditor.py:777 AppEditors/FlatCAMGrbEditor.py:5455
+msgid "Factor Y:"
+msgstr "Fattore Y:"
+
+#: AppEditors/FlatCAMGeoEditor.py:779 AppEditors/FlatCAMGrbEditor.py:5457
+#: AppTools/ToolCalibration.py:481
+msgid "Factor for Scale action over Y axis."
+msgstr "Fattore per l'azione scala sull'asse Y."
+
+#: AppEditors/FlatCAMGeoEditor.py:789 AppEditors/FlatCAMGrbEditor.py:5467
+#: AppTools/ToolTransform.py:470
+msgid "Scale Y"
+msgstr "Scala Y"
+
+#: AppEditors/FlatCAMGeoEditor.py:798 AppEditors/FlatCAMGrbEditor.py:5476
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:124
+#: AppTools/ToolTransform.py:189
+msgid "Link"
+msgstr "Collegamento"
+
+#: AppEditors/FlatCAMGeoEditor.py:800 AppEditors/FlatCAMGrbEditor.py:5478
+msgid ""
+"Scale the selected shape(s)\n"
+"using the Scale Factor X for both axis."
+msgstr ""
+"Scale the selected shape(s).\n"
+"usando il fattore di scala X per entrambi gli assi."
+
+#: AppEditors/FlatCAMGeoEditor.py:806 AppEditors/FlatCAMGrbEditor.py:5484
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:132
+#: AppTools/ToolTransform.py:196
+msgid "Scale Reference"
+msgstr "Riferimento scala"
+
+#: AppEditors/FlatCAMGeoEditor.py:808 AppEditors/FlatCAMGrbEditor.py:5486
+msgid ""
+"Scale the selected shape(s)\n"
+"using the origin reference when checked,\n"
+"and the center of the biggest bounding box\n"
+"of the selected shapes when unchecked."
+msgstr ""
+"Ridimensiona le forme selezionate\n"
+"utilizzando il riferimento di origine quando selezionato,\n"
+"e il centro del più grande rettangolo di selezione\n"
+"delle forme selezionate se non selezionata."
+
+#: AppEditors/FlatCAMGeoEditor.py:836 AppEditors/FlatCAMGrbEditor.py:5515
+msgid "Value X:"
+msgstr "Valore X:"
+
+#: AppEditors/FlatCAMGeoEditor.py:838 AppEditors/FlatCAMGrbEditor.py:5517
+msgid "Value for Offset action on X axis."
+msgstr "Valore per l'azione Offset sull'asse X."
+
+#: AppEditors/FlatCAMGeoEditor.py:848 AppEditors/FlatCAMGrbEditor.py:5527
+#: AppTools/ToolTransform.py:473
+msgid "Offset X"
+msgstr "Offset X"
+
+#: AppEditors/FlatCAMGeoEditor.py:850 AppEditors/FlatCAMGeoEditor.py:870
+#: AppEditors/FlatCAMGrbEditor.py:5529 AppEditors/FlatCAMGrbEditor.py:5549
+msgid ""
+"Offset the selected shape(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected shapes.\n"
+msgstr ""
+"Offset delle forme selezionate.\n"
+"Il punto di riferimento è il centro del\n"
+"rettangolo di selezione per tutte le forme selezionate.\n"
+
+#: AppEditors/FlatCAMGeoEditor.py:856 AppEditors/FlatCAMGrbEditor.py:5535
+msgid "Value Y:"
+msgstr "Valore Y:"
+
+#: AppEditors/FlatCAMGeoEditor.py:858 AppEditors/FlatCAMGrbEditor.py:5537
+msgid "Value for Offset action on Y axis."
+msgstr "Valore per l'azione Offset sull'asse Y."
+
+#: AppEditors/FlatCAMGeoEditor.py:868 AppEditors/FlatCAMGrbEditor.py:5547
+#: AppTools/ToolTransform.py:474
+msgid "Offset Y"
+msgstr "Offset X"
+
+#: AppEditors/FlatCAMGeoEditor.py:899 AppEditors/FlatCAMGrbEditor.py:5578
+#: AppTools/ToolTransform.py:475
+msgid "Flip on X"
+msgstr "Capovolgi in X"
+
+#: AppEditors/FlatCAMGeoEditor.py:901 AppEditors/FlatCAMGeoEditor.py:908
+#: AppEditors/FlatCAMGrbEditor.py:5580 AppEditors/FlatCAMGrbEditor.py:5587
+msgid ""
+"Flip the selected shape(s) over the X axis.\n"
+"Does not create a new shape."
+msgstr ""
+"Capovolgi le forme selezionate sull'asse X.\n"
+"Non crea una nuova forma."
+
+#: AppEditors/FlatCAMGeoEditor.py:906 AppEditors/FlatCAMGrbEditor.py:5585
+#: AppTools/ToolTransform.py:476
+msgid "Flip on Y"
+msgstr "Capovolgi in Y"
+
+#: AppEditors/FlatCAMGeoEditor.py:914 AppEditors/FlatCAMGrbEditor.py:5593
+msgid "Ref Pt"
+msgstr "Punto di riferimento"
+
+#: AppEditors/FlatCAMGeoEditor.py:916 AppEditors/FlatCAMGrbEditor.py:5595
+msgid ""
+"Flip the selected shape(s)\n"
+"around the point in Point Entry Field.\n"
+"\n"
+"The point coordinates can be captured by\n"
+"left click on canvas together with pressing\n"
+"SHIFT key. \n"
+"Then click Add button to insert coordinates.\n"
+"Or enter the coords in format (x, y) in the\n"
+"Point Entry field and click Flip on X(Y)"
+msgstr ""
+"Capovolgi le forme selezionate\n"
+"attorno al punto nel campo di inserimento punti.\n"
+"\n"
+"Le coordinate del punto possono essere acquisite da\n"
+"un clic sinistro sui canvas assieme\n"
+"al tasto SHIFT.\n"
+"Quindi fare clic sul pulsante Aggiungi per inserire le coordinate.\n"
+"Oppure inserisci le coordinate nel formato (x, y) nel\n"
+"campo Inserisci Punto e fai clic su Capovolgi su X(Y)"
+
+#: AppEditors/FlatCAMGeoEditor.py:928 AppEditors/FlatCAMGrbEditor.py:5607
+msgid "Point:"
+msgstr "Punto:"
+
+#: AppEditors/FlatCAMGeoEditor.py:930 AppEditors/FlatCAMGrbEditor.py:5609
+#: AppTools/ToolTransform.py:299
+msgid ""
+"Coordinates in format (x, y) used as reference for mirroring.\n"
+"The 'x' in (x, y) will be used when using Flip on X and\n"
+"the 'y' in (x, y) will be used when using Flip on Y."
+msgstr ""
+"Coordinate in formato (x, y) utilizzate come riferimento per il mirroring.\n"
+"La 'x' in (x, y) verrà utilizzata quando si utilizza Capovolgi su X e\n"
+"la 'y' in (x, y) verrà usata quando si usa Capovolgi su Y."
+
+#: AppEditors/FlatCAMGeoEditor.py:938 AppEditors/FlatCAMGrbEditor.py:2581
+#: AppEditors/FlatCAMGrbEditor.py:5619 AppGUI/ObjectUI.py:1697
+#: AppTools/ToolDblSided.py:192 AppTools/ToolDblSided.py:425
+#: AppTools/ToolNCC.py:294 AppTools/ToolNCC.py:631 AppTools/ToolPaint.py:276
+#: AppTools/ToolPaint.py:675 AppTools/ToolSolderPaste.py:122
+#: AppTools/ToolSolderPaste.py:597 AppTools/ToolTransform.py:478
+#: App_Main.py:5593
+msgid "Add"
+msgstr "Aggiungi"
+
+#: AppEditors/FlatCAMGeoEditor.py:940 AppEditors/FlatCAMGrbEditor.py:5621
+#: AppTools/ToolTransform.py:309
+msgid ""
+"The point coordinates can be captured by\n"
+"left click on canvas together with pressing\n"
+"SHIFT key. Then click Add button to insert."
+msgstr ""
+"Le coordinate del punto possono essere acquisite da\n"
+"un click sinistro sul canvas premendo anche il tasto\n"
+"SHIFT. Quindi fare clic sul pulsante Aggiungi per inserire."
+
+#: AppEditors/FlatCAMGeoEditor.py:1303 AppEditors/FlatCAMGrbEditor.py:5929
+msgid "No shape selected. Please Select a shape to rotate!"
+msgstr "Nessuna forma selezionata. Seleziona una forma da ruotare!"
+
+#: AppEditors/FlatCAMGeoEditor.py:1306 AppEditors/FlatCAMGrbEditor.py:5932
+#: AppTools/ToolTransform.py:679
+msgid "Appying Rotate"
+msgstr "Applico Rotazione"
+
+#: AppEditors/FlatCAMGeoEditor.py:1332 AppEditors/FlatCAMGrbEditor.py:5964
+msgid "Done. Rotate completed."
+msgstr "Fatto. Rotazione completata."
+
+#: AppEditors/FlatCAMGeoEditor.py:1334
+msgid "Rotation action was not executed"
+msgstr "Azione rotazione non effettuata"
+
+#: AppEditors/FlatCAMGeoEditor.py:1353 AppEditors/FlatCAMGrbEditor.py:5983
+msgid "No shape selected. Please Select a shape to flip!"
+msgstr "Nessuna forma selezionata. Seleziona una forma da capovolgere!"
+
+#: AppEditors/FlatCAMGeoEditor.py:1356 AppEditors/FlatCAMGrbEditor.py:5986
+#: AppTools/ToolTransform.py:728
+msgid "Applying Flip"
+msgstr "Applico il capovolgimento"
+
+#: AppEditors/FlatCAMGeoEditor.py:1385 AppEditors/FlatCAMGrbEditor.py:6024
+#: AppTools/ToolTransform.py:769
+msgid "Flip on the Y axis done"
+msgstr "Capovolgimento sull'asse Y effettuato"
+
+#: AppEditors/FlatCAMGeoEditor.py:1389 AppEditors/FlatCAMGrbEditor.py:6033
+#: AppTools/ToolTransform.py:778
+msgid "Flip on the X axis done"
+msgstr "Capovolgimento sull'asse X effettuato"
+
+#: AppEditors/FlatCAMGeoEditor.py:1397
+msgid "Flip action was not executed"
+msgstr "Azione capovolgimento non effettuata"
+
+#: AppEditors/FlatCAMGeoEditor.py:1415 AppEditors/FlatCAMGrbEditor.py:6053
+msgid "No shape selected. Please Select a shape to shear/skew!"
+msgstr "Nessuna forma selezionata. Seleziona una forma da inclinare!"
+
+#: AppEditors/FlatCAMGeoEditor.py:1418 AppEditors/FlatCAMGrbEditor.py:6056
+#: AppTools/ToolTransform.py:801
+msgid "Applying Skew"
+msgstr "Applico inclinazione"
+
+#: AppEditors/FlatCAMGeoEditor.py:1441 AppEditors/FlatCAMGrbEditor.py:6090
+msgid "Skew on the X axis done"
+msgstr "Inclinazione sull'asse X effettuata"
+
+#: AppEditors/FlatCAMGeoEditor.py:1443 AppEditors/FlatCAMGrbEditor.py:6092
+msgid "Skew on the Y axis done"
+msgstr "Inclinazione sull'asse Y effettuata"
+
+#: AppEditors/FlatCAMGeoEditor.py:1446
+msgid "Skew action was not executed"
+msgstr "Azione inclinazione non effettuata"
+
+#: AppEditors/FlatCAMGeoEditor.py:1468 AppEditors/FlatCAMGrbEditor.py:6114
+msgid "No shape selected. Please Select a shape to scale!"
+msgstr "Nessuna forma selezionata. Seleziona una forma da riscalare!"
+
+#: AppEditors/FlatCAMGeoEditor.py:1471 AppEditors/FlatCAMGrbEditor.py:6117
+#: AppTools/ToolTransform.py:847
+msgid "Applying Scale"
+msgstr "Applicare scala"
+
+#: AppEditors/FlatCAMGeoEditor.py:1503 AppEditors/FlatCAMGrbEditor.py:6154
+msgid "Scale on the X axis done"
+msgstr "Riscalatura su asse X effettuata"
+
+#: AppEditors/FlatCAMGeoEditor.py:1505 AppEditors/FlatCAMGrbEditor.py:6156
+msgid "Scale on the Y axis done"
+msgstr "Riscalatura su asse Y effettuata"
+
+#: AppEditors/FlatCAMGeoEditor.py:1507
+msgid "Scale action was not executed"
+msgstr "Azione riscalatura non effettuata"
+
+#: AppEditors/FlatCAMGeoEditor.py:1522 AppEditors/FlatCAMGrbEditor.py:6173
+msgid "No shape selected. Please Select a shape to offset!"
+msgstr "Nessuna forma selezionata. Seleziona una forma a cui applicare offset!"
+
+#: AppEditors/FlatCAMGeoEditor.py:1525 AppEditors/FlatCAMGrbEditor.py:6176
+#: AppTools/ToolTransform.py:897
+msgid "Applying Offset"
+msgstr "Applicazione offset"
+
+#: AppEditors/FlatCAMGeoEditor.py:1535 AppEditors/FlatCAMGrbEditor.py:6197
+msgid "Offset on the X axis done"
+msgstr "Offset sull'asse X applicato"
+
+#: AppEditors/FlatCAMGeoEditor.py:1537 AppEditors/FlatCAMGrbEditor.py:6199
+msgid "Offset on the Y axis done"
+msgstr "Offset sull'asse Y applicato"
+
+#: AppEditors/FlatCAMGeoEditor.py:1540
+msgid "Offset action was not executed"
+msgstr "Offset non applicato"
+
+#: AppEditors/FlatCAMGeoEditor.py:1544 AppEditors/FlatCAMGrbEditor.py:6206
+msgid "Rotate ..."
+msgstr "Ruota ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:1545 AppEditors/FlatCAMGeoEditor.py:1600
+#: AppEditors/FlatCAMGeoEditor.py:1617 AppEditors/FlatCAMGrbEditor.py:6207
+#: AppEditors/FlatCAMGrbEditor.py:6256 AppEditors/FlatCAMGrbEditor.py:6271
+msgid "Enter an Angle Value (degrees)"
+msgstr "Inserire un angolo (in gradi)"
+
+#: AppEditors/FlatCAMGeoEditor.py:1554 AppEditors/FlatCAMGrbEditor.py:6215
+msgid "Geometry shape rotate done"
+msgstr "Forme geometriche ruotate"
+
+#: AppEditors/FlatCAMGeoEditor.py:1558 AppEditors/FlatCAMGrbEditor.py:6218
+msgid "Geometry shape rotate cancelled"
+msgstr "Forme geometriche NON ruotate"
+
+#: AppEditors/FlatCAMGeoEditor.py:1563 AppEditors/FlatCAMGrbEditor.py:6223
+msgid "Offset on X axis ..."
+msgstr "Offset su asse X ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:1564 AppEditors/FlatCAMGeoEditor.py:1583
+#: AppEditors/FlatCAMGrbEditor.py:6224 AppEditors/FlatCAMGrbEditor.py:6241
+msgid "Enter a distance Value"
+msgstr "Valore di distanza"
+
+#: AppEditors/FlatCAMGeoEditor.py:1573 AppEditors/FlatCAMGrbEditor.py:6232
+msgid "Geometry shape offset on X axis done"
+msgstr "Offset su forme geometria su asse X applicato"
+
+#: AppEditors/FlatCAMGeoEditor.py:1577 AppEditors/FlatCAMGrbEditor.py:6235
+msgid "Geometry shape offset X cancelled"
+msgstr "Offset su forme geometria su asse X annullato"
+
+#: AppEditors/FlatCAMGeoEditor.py:1582 AppEditors/FlatCAMGrbEditor.py:6240
+msgid "Offset on Y axis ..."
+msgstr "Offset su asse Y ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:1592 AppEditors/FlatCAMGrbEditor.py:6249
+msgid "Geometry shape offset on Y axis done"
+msgstr "Offset su forme geometria su asse Y applicato"
+
+#: AppEditors/FlatCAMGeoEditor.py:1596
+msgid "Geometry shape offset on Y axis canceled"
+msgstr "Offset su forme geometria su asse Y annullato"
+
+#: AppEditors/FlatCAMGeoEditor.py:1599 AppEditors/FlatCAMGrbEditor.py:6255
+msgid "Skew on X axis ..."
+msgstr "Inclinazione su asse Y ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:1609 AppEditors/FlatCAMGrbEditor.py:6264
+msgid "Geometry shape skew on X axis done"
+msgstr "Inclinazione su asse X effettuato"
+
+#: AppEditors/FlatCAMGeoEditor.py:1613
+msgid "Geometry shape skew on X axis canceled"
+msgstr "Inclinazione su asse X annullata"
+
+#: AppEditors/FlatCAMGeoEditor.py:1616 AppEditors/FlatCAMGrbEditor.py:6270
+msgid "Skew on Y axis ..."
+msgstr "Inclinazione su asse Y ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:1626 AppEditors/FlatCAMGrbEditor.py:6279
+msgid "Geometry shape skew on Y axis done"
+msgstr "Inclinazione su asse Y effettuato"
+
+#: AppEditors/FlatCAMGeoEditor.py:1630
+msgid "Geometry shape skew on Y axis canceled"
+msgstr "Inclinazione su asse Y annullata"
+
+#: AppEditors/FlatCAMGeoEditor.py:2007 AppEditors/FlatCAMGeoEditor.py:2078
+#: AppEditors/FlatCAMGrbEditor.py:1435 AppEditors/FlatCAMGrbEditor.py:1513
+msgid "Click on Center point ..."
+msgstr "Clicca sul punto centrale ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2020 AppEditors/FlatCAMGrbEditor.py:1445
+msgid "Click on Perimeter point to complete ..."
+msgstr "Fare clic sul punto perimetrale per completare ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2052
+msgid "Done. Adding Circle completed."
+msgstr "Fatto. Aggiungi cerchio completato."
+
+#: AppEditors/FlatCAMGeoEditor.py:2106 AppEditors/FlatCAMGrbEditor.py:1546
+msgid "Click on Start point ..."
+msgstr "Fare clic sul punto iniziale ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2108 AppEditors/FlatCAMGrbEditor.py:1548
+msgid "Click on Point3 ..."
+msgstr "Clicca sul punto 3 ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2110 AppEditors/FlatCAMGrbEditor.py:1550
+msgid "Click on Stop point ..."
+msgstr "Clicca sul punto di stop ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2115 AppEditors/FlatCAMGrbEditor.py:1555
+msgid "Click on Stop point to complete ..."
+msgstr "Clicca sul punto di stop per completare ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2117 AppEditors/FlatCAMGrbEditor.py:1557
+msgid "Click on Point2 to complete ..."
+msgstr "Clicca sul punto 2 per completare ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2119 AppEditors/FlatCAMGrbEditor.py:1559
+msgid "Click on Center point to complete ..."
+msgstr "Clicca sul punto centrale per completare ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2131
+#, python-format
+msgid "Direction: %s"
+msgstr "Direzione: %s"
+
+#: AppEditors/FlatCAMGeoEditor.py:2145 AppEditors/FlatCAMGrbEditor.py:1585
+msgid "Mode: Start -> Stop -> Center. Click on Start point ..."
+msgstr "Modo: Start -> Stop -> Centro. Clicca sul punto di partenza ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2148 AppEditors/FlatCAMGrbEditor.py:1588
+msgid "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..."
+msgstr "Modo: Punto1 -> Punto3 -> Punto2. Clicca sul punto1 ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2151 AppEditors/FlatCAMGrbEditor.py:1591
+msgid "Mode: Center -> Start -> Stop. Click on Center point ..."
+msgstr "Modo: Centro -> Start -> Stop. Clicca sul punto centrale ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2292
+msgid "Done. Arc completed."
+msgstr "Fatto. Arco completato."
+
+#: AppEditors/FlatCAMGeoEditor.py:2323 AppEditors/FlatCAMGeoEditor.py:2396
+msgid "Click on 1st corner ..."
+msgstr "Clicca sul primo angolo ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2335
+msgid "Click on opposite corner to complete ..."
+msgstr "Clicca sull'angolo opposto per completare ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2365
+msgid "Done. Rectangle completed."
+msgstr "Fatto. Rettangolo completato."
+
+#: AppEditors/FlatCAMGeoEditor.py:2409 AppTools/ToolNCC.py:1734
+#: AppTools/ToolPaint.py:1627 Common.py:303
+msgid "Click on next Point or click right mouse button to complete ..."
+msgstr ""
+"Cliccare sul punto successivo o fare clic con il tasto destro del mouse per "
+"completare ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2440
+msgid "Done. Polygon completed."
+msgstr "Fatto. Poligono completato."
+
+#: AppEditors/FlatCAMGeoEditor.py:2454 AppEditors/FlatCAMGeoEditor.py:2519
+#: AppEditors/FlatCAMGrbEditor.py:1111 AppEditors/FlatCAMGrbEditor.py:1322
+msgid "Backtracked one point ..."
+msgstr "Indietro di un punto ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2497
+msgid "Done. Path completed."
+msgstr "Fatto. Percorso completato."
+
+#: AppEditors/FlatCAMGeoEditor.py:2656
+msgid "No shape selected. Select a shape to explode"
+msgstr "Nessuna forma selezionata. Seleziona una forma da esplodere"
+
+#: AppEditors/FlatCAMGeoEditor.py:2689
+msgid "Done. Polygons exploded into lines."
+msgstr "Fatto. Poligono esploso in linee."
+
+#: AppEditors/FlatCAMGeoEditor.py:2721
+msgid "MOVE: No shape selected. Select a shape to move"
+msgstr "SPOSTA: nessuna forma selezionata. Seleziona una forma da spostare"
+
+#: AppEditors/FlatCAMGeoEditor.py:2724 AppEditors/FlatCAMGeoEditor.py:2744
+msgid " MOVE: Click on reference point ..."
+msgstr " SPOSTA: fare clic sul punto di riferimento ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2729
+msgid " Click on destination point ..."
+msgstr " Clicca sul punto di riferimento ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2769
+msgid "Done. Geometry(s) Move completed."
+msgstr "Fatto. Spostamento geometria(e) completato."
+
+#: AppEditors/FlatCAMGeoEditor.py:2902
+msgid "Done. Geometry(s) Copy completed."
+msgstr "Fatto. Copia geometria(e) completata."
+
+#: AppEditors/FlatCAMGeoEditor.py:2933 AppEditors/FlatCAMGrbEditor.py:897
+msgid "Click on 1st point ..."
+msgstr "Clicca sul primo punto ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2957
+msgid ""
+"Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. "
+"Error"
+msgstr ""
+"Font (carattere) non supportato. Sono supportati solo Regular, Bold, Italic "
+"e BoldItalic. Errore"
+
+#: AppEditors/FlatCAMGeoEditor.py:2965
+msgid "No text to add."
+msgstr "Nessun testo da aggiungere."
+
+#: AppEditors/FlatCAMGeoEditor.py:2975
+msgid " Done. Adding Text completed."
+msgstr " Fatto. Testo aggiunto."
+
+#: AppEditors/FlatCAMGeoEditor.py:3012
+msgid "Create buffer geometry ..."
+msgstr "Crea geometria buffer ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:3047 AppEditors/FlatCAMGrbEditor.py:5138
+msgid "Done. Buffer Tool completed."
+msgstr "Fatto. Strumento buffer completato."
+
+#: AppEditors/FlatCAMGeoEditor.py:3075
+msgid "Done. Buffer Int Tool completed."
+msgstr "Fatto. Strumento buffer interno completato."
+
+#: AppEditors/FlatCAMGeoEditor.py:3103
+msgid "Done. Buffer Ext Tool completed."
+msgstr "Fatto. Strumento buffer esterno completato."
+
+#: AppEditors/FlatCAMGeoEditor.py:3152 AppEditors/FlatCAMGrbEditor.py:2151
+msgid "Select a shape to act as deletion area ..."
+msgstr "Seleziona una forma da utilizzare come area di eliminazione ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:3154 AppEditors/FlatCAMGeoEditor.py:3180
+#: AppEditors/FlatCAMGeoEditor.py:3186 AppEditors/FlatCAMGrbEditor.py:2153
+msgid "Click to pick-up the erase shape..."
+msgstr "Fai clic per selezionare la forma di cancellazione ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:3190 AppEditors/FlatCAMGrbEditor.py:2212
+msgid "Click to erase ..."
+msgstr "Clicca per cancellare ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:3219 AppEditors/FlatCAMGrbEditor.py:2245
+msgid "Done. Eraser tool action completed."
+msgstr "Fatto. Azione dello strumento gomma completata."
+
+#: AppEditors/FlatCAMGeoEditor.py:3269
+msgid "Create Paint geometry ..."
+msgstr "Crea geometria di disegno ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:3282 AppEditors/FlatCAMGrbEditor.py:2408
+msgid "Shape transformations ..."
+msgstr "Trasformazioni di forma ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:3338
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:27
+msgid "Geometry Editor"
+msgstr "Editor Geometrie"
+
+#: AppEditors/FlatCAMGeoEditor.py:3344 AppEditors/FlatCAMGrbEditor.py:2486
+#: AppEditors/FlatCAMGrbEditor.py:3943 AppGUI/ObjectUI.py:263
+#: AppGUI/ObjectUI.py:1599 AppGUI/ObjectUI.py:2456 AppTools/ToolCutOut.py:95
+msgid "Type"
+msgstr "Tipo"
+
+#: AppEditors/FlatCAMGeoEditor.py:3344 AppGUI/ObjectUI.py:218
+#: AppGUI/ObjectUI.py:742 AppGUI/ObjectUI.py:1535 AppGUI/ObjectUI.py:2365
+#: AppGUI/ObjectUI.py:2669 AppGUI/ObjectUI.py:2736
+#: AppTools/ToolCalibration.py:234 AppTools/ToolFiducials.py:73
+msgid "Name"
+msgstr "Nome"
+
+#: AppEditors/FlatCAMGeoEditor.py:3596
+msgid "Ring"
+msgstr "Anello"
+
+#: AppEditors/FlatCAMGeoEditor.py:3598
+msgid "Line"
+msgstr "Linea"
+
+#: AppEditors/FlatCAMGeoEditor.py:3600 AppGUI/MainGUI.py:1405
+#: AppGUI/ObjectUI.py:1371 AppGUI/ObjectUI.py:2205
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:218
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:328
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:292
+#: AppTools/ToolNCC.py:584 AppTools/ToolPaint.py:527
+msgid "Polygon"
+msgstr "Poligono"
+
+#: AppEditors/FlatCAMGeoEditor.py:3602
+msgid "Multi-Line"
+msgstr "Multi-Linea"
+
+#: AppEditors/FlatCAMGeoEditor.py:3604
+msgid "Multi-Polygon"
+msgstr "Multi-Poligono"
+
+#: AppEditors/FlatCAMGeoEditor.py:3611
+msgid "Geo Elem"
+msgstr "Elemento Geom"
+
+#: AppEditors/FlatCAMGeoEditor.py:4064
+msgid "Editing MultiGeo Geometry, tool"
+msgstr "Modifica di Geometria MultiGeo, strumento"
+
+#: AppEditors/FlatCAMGeoEditor.py:4066
+msgid "with diameter"
+msgstr "con diametro"
+
+#: AppEditors/FlatCAMGeoEditor.py:4138
+#, fuzzy
+#| msgid "All plots enabled."
+msgid "Grid snap enabled."
+msgstr "Tutte le tracce sono abilitate."
+
+#: AppEditors/FlatCAMGeoEditor.py:4142
+#, fuzzy
+#| msgid "Grid X snapping distance"
+msgid "Grid snap disabled."
+msgstr "Distanza aggancio gliglia X"
+
+#: AppEditors/FlatCAMGeoEditor.py:4503 AppGUI/MainGUI.py:3000
+#: AppGUI/MainGUI.py:3046 AppGUI/MainGUI.py:3064 AppGUI/MainGUI.py:3208
+#: AppGUI/MainGUI.py:3247 AppGUI/MainGUI.py:3259 AppGUI/MainGUI.py:3276
+msgid "Click on target point."
+msgstr "Fai clic sul punto target."
+
+#: AppEditors/FlatCAMGeoEditor.py:4817 AppEditors/FlatCAMGeoEditor.py:4852
+msgid "A selection of at least 2 geo items is required to do Intersection."
+msgstr ""
+"Per effettuare l'intersezione è necessaria una selezione di almeno 2 "
+"elementi geometrici."
+
+#: AppEditors/FlatCAMGeoEditor.py:4938 AppEditors/FlatCAMGeoEditor.py:5042
+msgid ""
+"Negative buffer value is not accepted. Use Buffer interior to generate an "
+"'inside' shape"
+msgstr ""
+"Valore di buffer negativi non accettati. Usa l'interno del buffer per "
+"generare una forma \"interna\""
+
+#: AppEditors/FlatCAMGeoEditor.py:4948 AppEditors/FlatCAMGeoEditor.py:5001
+#: AppEditors/FlatCAMGeoEditor.py:5051
+msgid "Nothing selected for buffering."
+msgstr "Niente di selezionato per il buffering."
+
+#: AppEditors/FlatCAMGeoEditor.py:4953 AppEditors/FlatCAMGeoEditor.py:5005
+#: AppEditors/FlatCAMGeoEditor.py:5056
+msgid "Invalid distance for buffering."
+msgstr "Distanza non valida per il buffering."
+
+#: AppEditors/FlatCAMGeoEditor.py:4977 AppEditors/FlatCAMGeoEditor.py:5076
+msgid "Failed, the result is empty. Choose a different buffer value."
+msgstr "Fallito, il risultato è vuoto. Scegli un valore di buffer diverso."
+
+#: AppEditors/FlatCAMGeoEditor.py:4988
+msgid "Full buffer geometry created."
+msgstr "Geometria buffer completa creata."
+
+#: AppEditors/FlatCAMGeoEditor.py:4994
+msgid "Negative buffer value is not accepted."
+msgstr "Il valore negativo del buffer non è accettato."
+
+#: AppEditors/FlatCAMGeoEditor.py:5025
+msgid "Failed, the result is empty. Choose a smaller buffer value."
+msgstr "Fallito, il risultato è vuoto. Scegli un valore di buffer più piccolo."
+
+#: AppEditors/FlatCAMGeoEditor.py:5035
+msgid "Interior buffer geometry created."
+msgstr "Geometria del buffer interno creata."
+
+#: AppEditors/FlatCAMGeoEditor.py:5086
+msgid "Exterior buffer geometry created."
+msgstr "Geometria del buffer esterno creata."
+
+#: AppEditors/FlatCAMGeoEditor.py:5092
+#, python-format
+msgid "Could not do Paint. Overlap value has to be less than 100%%."
+msgstr ""
+"Impossibile fare Paint. Il valore di sovrapposizione deve essere inferiore a "
+"100%%."
+
+#: AppEditors/FlatCAMGeoEditor.py:5099
+msgid "Nothing selected for painting."
+msgstr "Nulla di selezionato per Paint."
+
+#: AppEditors/FlatCAMGeoEditor.py:5105
+msgid "Invalid value for"
+msgstr "Valore non valido per"
+
+#: AppEditors/FlatCAMGeoEditor.py:5164
+msgid ""
+"Could not do Paint. Try a different combination of parameters. Or a "
+"different method of Paint"
+msgstr ""
+"Impossibile fare Paint. Prova una diversa combinazione di parametri. O un "
+"metodo diverso di Paint"
+
+#: AppEditors/FlatCAMGeoEditor.py:5175
+msgid "Paint done."
+msgstr "Paint fatto."
+
+#: AppEditors/FlatCAMGrbEditor.py:211
+msgid "To add an Pad first select a aperture in Aperture Table"
+msgstr ""
+"Per aggiungere un pad, seleziona prima un'apertura nella tabella Aperture"
+
+#: AppEditors/FlatCAMGrbEditor.py:218 AppEditors/FlatCAMGrbEditor.py:418
+msgid "Aperture size is zero. It needs to be greater than zero."
+msgstr "La dimensione dell'apertura è zero. Deve essere maggiore di zero."
+
+#: AppEditors/FlatCAMGrbEditor.py:371 AppEditors/FlatCAMGrbEditor.py:684
+msgid ""
+"Incompatible aperture type. Select an aperture with type 'C', 'R' or 'O'."
+msgstr ""
+"Tipo di apertura incompatibile. Seleziona un'apertura con tipo 'C', 'R' o "
+"'O'."
+
+#: AppEditors/FlatCAMGrbEditor.py:383
+msgid "Done. Adding Pad completed."
+msgstr "Fatto. Aggiunta del pad completata."
+
+#: AppEditors/FlatCAMGrbEditor.py:410
+msgid "To add an Pad Array first select a aperture in Aperture Table"
+msgstr ""
+"Per aggiungere una matrice pad, selezionare prima un'apertura nella tabella "
+"Aperture"
+
+#: AppEditors/FlatCAMGrbEditor.py:490
+msgid "Click on the Pad Circular Array Start position"
+msgstr "Fare clic sulla posizione iniziale della matrice circolare del pad"
+
+#: AppEditors/FlatCAMGrbEditor.py:710
+msgid "Too many Pads for the selected spacing angle."
+msgstr "Troppi pad per l'angolo di spaziatura selezionato."
+
+#: AppEditors/FlatCAMGrbEditor.py:733
+msgid "Done. Pad Array added."
+msgstr "Fatto. Matrice di Pad aggiunta."
+
+#: AppEditors/FlatCAMGrbEditor.py:758
+msgid "Select shape(s) and then click ..."
+msgstr "Seleziona la forma(e) e quindi fai clic su ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:770
+msgid "Failed. Nothing selected."
+msgstr "Errore. Niente di selezionato."
+
+#: AppEditors/FlatCAMGrbEditor.py:786
+msgid ""
+"Failed. Poligonize works only on geometries belonging to the same aperture."
+msgstr ""
+"Errore. Poligonizza funziona solo su geometrie appartenenti alla stessa "
+"apertura."
+
+#: AppEditors/FlatCAMGrbEditor.py:840
+msgid "Done. Poligonize completed."
+msgstr "Fatto. Poligonizza completata."
+
+#: AppEditors/FlatCAMGrbEditor.py:895 AppEditors/FlatCAMGrbEditor.py:1128
+#: AppEditors/FlatCAMGrbEditor.py:1152
+msgid "Corner Mode 1: 45 degrees ..."
+msgstr "Modalità angolo 1: 45 gradi ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:907 AppEditors/FlatCAMGrbEditor.py:1237
+msgid "Click on next Point or click Right mouse button to complete ..."
+msgstr ""
+"Fare clic sul punto successivo o fare clic con il pulsante destro del mouse "
+"per completare ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1116 AppEditors/FlatCAMGrbEditor.py:1149
+msgid "Corner Mode 2: Reverse 45 degrees ..."
+msgstr "Modalità angolo 2: indietro di 45 gradi ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1119 AppEditors/FlatCAMGrbEditor.py:1146
+msgid "Corner Mode 3: 90 degrees ..."
+msgstr "Modalità angolo 3: 90 gradi ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1122 AppEditors/FlatCAMGrbEditor.py:1143
+msgid "Corner Mode 4: Reverse 90 degrees ..."
+msgstr "Modalità angolo 4: indietro di 90 gradi ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1125 AppEditors/FlatCAMGrbEditor.py:1140
+msgid "Corner Mode 5: Free angle ..."
+msgstr "Modalità angolo 5: angolo libero ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1182 AppEditors/FlatCAMGrbEditor.py:1358
+#: AppEditors/FlatCAMGrbEditor.py:1397
+msgid "Track Mode 1: 45 degrees ..."
+msgstr "Traccia modalità 1: 45 gradi ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1338 AppEditors/FlatCAMGrbEditor.py:1392
+msgid "Track Mode 2: Reverse 45 degrees ..."
+msgstr "Traccia modalità 2: indietro 45 gradi ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1343 AppEditors/FlatCAMGrbEditor.py:1387
+msgid "Track Mode 3: 90 degrees ..."
+msgstr "Traccia modalità 3: 90 gradi ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1348 AppEditors/FlatCAMGrbEditor.py:1382
+msgid "Track Mode 4: Reverse 90 degrees ..."
+msgstr "Traccia modalità 4: indietro 90 gradi ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1353 AppEditors/FlatCAMGrbEditor.py:1377
+msgid "Track Mode 5: Free angle ..."
+msgstr "Traccia modalità 5: angolo libero ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1778
+msgid "Scale the selected Gerber apertures ..."
+msgstr "Ridimensiona le aperture Gerber selezionate ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1820
+msgid "Buffer the selected apertures ..."
+msgstr "Buffer delle aperture selezionate ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1862
+msgid "Mark polygon areas in the edited Gerber ..."
+msgstr "Contrassegna le aree poligonali nel Gerber modificato ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1928
+msgid "Nothing selected to move"
+msgstr "Nulla di selezionato da spostare"
+
+#: AppEditors/FlatCAMGrbEditor.py:2053
+msgid "Done. Apertures Move completed."
+msgstr "Fatto. Spostamento aperture completato."
+
+#: AppEditors/FlatCAMGrbEditor.py:2135
+msgid "Done. Apertures copied."
+msgstr "Fatto. Aperture copiate."
+
+#: AppEditors/FlatCAMGrbEditor.py:2453 AppGUI/MainGUI.py:1436
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:27
+msgid "Gerber Editor"
+msgstr "Editor Gerber"
+
+#: AppEditors/FlatCAMGrbEditor.py:2473 AppGUI/ObjectUI.py:228
+#: AppTools/ToolProperties.py:159
+msgid "Apertures"
+msgstr "Aperture"
+
+#: AppEditors/FlatCAMGrbEditor.py:2475 AppGUI/ObjectUI.py:230
+msgid "Apertures Table for the Gerber Object."
+msgstr "Tabella delle aperture per l'oggetto Gerber."
+
+#: AppEditors/FlatCAMGrbEditor.py:2486 AppEditors/FlatCAMGrbEditor.py:3943
+#: AppGUI/ObjectUI.py:263
+msgid "Code"
+msgstr "Codice"
+
+#: AppEditors/FlatCAMGrbEditor.py:2486 AppEditors/FlatCAMGrbEditor.py:3943
+#: AppGUI/ObjectUI.py:263
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:103
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43
+#: AppTools/ToolCopperThieving.py:261 AppTools/ToolCopperThieving.py:301
+#: AppTools/ToolFiducials.py:156
+msgid "Size"
+msgstr "Dimensione"
+
+#: AppEditors/FlatCAMGrbEditor.py:2486 AppEditors/FlatCAMGrbEditor.py:3943
+#: AppGUI/ObjectUI.py:263
+msgid "Dim"
+msgstr "Dim"
+
+#: AppEditors/FlatCAMGrbEditor.py:2491 AppGUI/ObjectUI.py:267
+msgid "Index"
+msgstr "Indice"
+
+#: AppEditors/FlatCAMGrbEditor.py:2493 AppEditors/FlatCAMGrbEditor.py:2522
+#: AppGUI/ObjectUI.py:269
+msgid "Aperture Code"
+msgstr "Codice apertura"
+
+#: AppEditors/FlatCAMGrbEditor.py:2495 AppGUI/ObjectUI.py:271
+msgid "Type of aperture: circular, rectangle, macros etc"
+msgstr "Tipo di apertura: circolare, rettangolo, macro ecc"
+
+#: AppEditors/FlatCAMGrbEditor.py:2497 AppGUI/ObjectUI.py:273
+msgid "Aperture Size:"
+msgstr "Dimensione apertura:"
+
+#: AppEditors/FlatCAMGrbEditor.py:2499 AppGUI/ObjectUI.py:275
+msgid ""
+"Aperture Dimensions:\n"
+" - (width, height) for R, O type.\n"
+" - (dia, nVertices) for P type"
+msgstr ""
+"Dimensioni apertura:\n"
+"- (larghezza, altezza) per tipo R, O.\n"
+"- (diametro, nVertices) per il tipo P"
+
+#: AppEditors/FlatCAMGrbEditor.py:2523
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:58
+msgid "Code for the new aperture"
+msgstr "Codice della nuova apertura"
+
+#: AppEditors/FlatCAMGrbEditor.py:2532
+msgid "Aperture Size"
+msgstr "Dimensione apertura"
+
+#: AppEditors/FlatCAMGrbEditor.py:2534
+msgid ""
+"Size for the new aperture.\n"
+"If aperture type is 'R' or 'O' then\n"
+"this value is automatically\n"
+"calculated as:\n"
+"sqrt(width**2 + height**2)"
+msgstr ""
+"Dimensioni per la nuova apertura.\n"
+"Se il tipo di apertura è 'R' o 'O', allora\n"
+"questo valore è automaticamente\n"
+"calcolato come:\n"
+"sqrt (larghezza**2 + altezza**2)"
+
+#: AppEditors/FlatCAMGrbEditor.py:2548
+msgid "Aperture Type"
+msgstr "Tipo apertura"
+
+#: AppEditors/FlatCAMGrbEditor.py:2550
+msgid ""
+"Select the type of new aperture. Can be:\n"
+"C = circular\n"
+"R = rectangular\n"
+"O = oblong"
+msgstr ""
+"Seleziona il tipo di nuova apertura. Può essere:\n"
+"C = circolare\n"
+"R = rettangolare\n"
+"O = oblungo"
+
+#: AppEditors/FlatCAMGrbEditor.py:2561
+msgid "Aperture Dim"
+msgstr "Dim apertura"
+
+#: AppEditors/FlatCAMGrbEditor.py:2563
+msgid ""
+"Dimensions for the new aperture.\n"
+"Active only for rectangular apertures (type R).\n"
+"The format is (width, height)"
+msgstr ""
+"Dimensioni per la nuova apertura.\n"
+"Attivo solo per aperture rettangolari (tipo R).\n"
+"Il formato è (larghezza, altezza)"
+
+#: AppEditors/FlatCAMGrbEditor.py:2572
+msgid "Add/Delete Aperture"
+msgstr "Aggiungi/Cancella apertura"
+
+#: AppEditors/FlatCAMGrbEditor.py:2574
+msgid "Add/Delete an aperture in the aperture table"
+msgstr "Aggiungi/Cancella apertura dalla tabella"
+
+#: AppEditors/FlatCAMGrbEditor.py:2583
+msgid "Add a new aperture to the aperture list."
+msgstr "Aggiungi una apertura nella lista aperture."
+
+#: AppEditors/FlatCAMGrbEditor.py:2586 AppEditors/FlatCAMGrbEditor.py:2734
+#: AppGUI/MainGUI.py:753 AppGUI/MainGUI.py:1071 AppGUI/MainGUI.py:1487
+#: AppGUI/MainGUI.py:2063 AppGUI/MainGUI.py:4433 AppGUI/ObjectUI.py:1725
+#: AppObjects/FlatCAMGeometry.py:556 AppTools/ToolNCC.py:316
+#: AppTools/ToolNCC.py:637 AppTools/ToolPaint.py:298 AppTools/ToolPaint.py:681
+#: AppTools/ToolSolderPaste.py:128 AppTools/ToolSolderPaste.py:600
+#: App_Main.py:5595
+msgid "Delete"
+msgstr "Cancella"
+
+#: AppEditors/FlatCAMGrbEditor.py:2588
+msgid "Delete a aperture in the aperture list"
+msgstr "Cancella una apertura dalla lista aperture"
+
+#: AppEditors/FlatCAMGrbEditor.py:2605
+msgid "Buffer Aperture"
+msgstr "Aperture buffer"
+
+#: AppEditors/FlatCAMGrbEditor.py:2607
+msgid "Buffer a aperture in the aperture list"
+msgstr "Buffer di un'apertura nella lista aperture"
+
+#: AppEditors/FlatCAMGrbEditor.py:2620
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:194
+msgid "Buffer distance"
+msgstr "Buffer distanza"
+
+#: AppEditors/FlatCAMGrbEditor.py:2621
+msgid "Buffer corner"
+msgstr "Buffer angolo"
+
+#: AppEditors/FlatCAMGrbEditor.py:2623
+msgid ""
+"There are 3 types of corners:\n"
+" - 'Round': the corner is rounded.\n"
+" - 'Square': the corner is met in a sharp angle.\n"
+" - 'Beveled': the corner is a line that directly connects the features "
+"meeting in the corner"
+msgstr ""
+"Esistono 3 tipi di angoli:\n"
+"- 'Round': l'angolo è arrotondato.\n"
+"- 'Quadrato': l'angolo è incontrato in un angolo acuto.\n"
+"- \"Smussato\": l'angolo è una linea che collega direttamente le funzioni "
+"che si incontrano nell'angolo"
+
+#: AppEditors/FlatCAMGrbEditor.py:2638 AppGUI/MainGUI.py:1058
+#: AppGUI/MainGUI.py:1413 AppGUI/MainGUI.py:1456 AppGUI/MainGUI.py:2051
+#: AppGUI/MainGUI.py:4430
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:200
+#: AppTools/ToolTransform.py:29
+msgid "Buffer"
+msgstr "Buffer"
+
+#: AppEditors/FlatCAMGrbEditor.py:2653
+msgid "Scale Aperture"
+msgstr "Scala apertura"
+
+#: AppEditors/FlatCAMGrbEditor.py:2655
+msgid "Scale a aperture in the aperture list"
+msgstr "Scala apertura nella lista aperture"
+
+#: AppEditors/FlatCAMGrbEditor.py:2663
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:209
+msgid "Scale factor"
+msgstr "Fattore di scala"
+
+#: AppEditors/FlatCAMGrbEditor.py:2665
+msgid ""
+"The factor by which to scale the selected aperture.\n"
+"Values can be between 0.0000 and 999.9999"
+msgstr ""
+"Il fattore in base al quale ridimensionare l'apertura selezionata.\n"
+"I valori possono essere compresi tra 0,0000 e 999,9999"
+
+#: AppEditors/FlatCAMGrbEditor.py:2693
+msgid "Mark polygons"
+msgstr "Marchia poligoni"
+
+#: AppEditors/FlatCAMGrbEditor.py:2695
+msgid "Mark the polygon areas."
+msgstr "Marchia aree poligoni."
+
+#: AppEditors/FlatCAMGrbEditor.py:2703
+msgid "Area UPPER threshold"
+msgstr "Area Soglia SUPERIORE"
+
+#: AppEditors/FlatCAMGrbEditor.py:2705
+msgid ""
+"The threshold value, all areas less than this are marked.\n"
+"Can have a value between 0.0000 and 9999.9999"
+msgstr ""
+"Il valore di soglia, tutte le aree inferiori a questa sono contrassegnate.\n"
+"Può avere un valore compreso tra 0,0000 e 9999,9999"
+
+#: AppEditors/FlatCAMGrbEditor.py:2712
+msgid "Area LOWER threshold"
+msgstr "Area Soglia INFERIORE"
+
+#: AppEditors/FlatCAMGrbEditor.py:2714
+msgid ""
+"The threshold value, all areas more than this are marked.\n"
+"Can have a value between 0.0000 and 9999.9999"
+msgstr ""
+"Il valore di soglia, tutte le aree più di questa sono contrassegnate.\n"
+"Può avere un valore compreso tra 0,0000 e 9999,9999"
+
+#: AppEditors/FlatCAMGrbEditor.py:2728
+msgid "Mark"
+msgstr "Contrassegna"
+
+#: AppEditors/FlatCAMGrbEditor.py:2730
+msgid "Mark the polygons that fit within limits."
+msgstr "Contrassegna i poligoni che rientrano nei limiti."
+
+#: AppEditors/FlatCAMGrbEditor.py:2736
+msgid "Delete all the marked polygons."
+msgstr "Cancella i poligoni contrassegnati."
+
+#: AppEditors/FlatCAMGrbEditor.py:2742
+msgid "Clear all the markings."
+msgstr "Pulisci tutte le marchiature."
+
+#: AppEditors/FlatCAMGrbEditor.py:2762 AppGUI/MainGUI.py:1043
+#: AppGUI/MainGUI.py:2036 AppGUI/MainGUI.py:4430
+msgid "Add Pad Array"
+msgstr "Aggiungi matrice di pad"
+
+#: AppEditors/FlatCAMGrbEditor.py:2764
+msgid "Add an array of pads (linear or circular array)"
+msgstr "Aggiunge una matrice di pad (lineare o circolare)"
+
+#: AppEditors/FlatCAMGrbEditor.py:2770
+msgid ""
+"Select the type of pads array to create.\n"
+"It can be Linear X(Y) or Circular"
+msgstr ""
+"Seleziona il tipo di array di pad da creare.\n"
+"Può essere lineare X(Y) o circolare"
+
+#: AppEditors/FlatCAMGrbEditor.py:2781
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:95
+msgid "Nr of pads"
+msgstr "Numero di pad"
+
+#: AppEditors/FlatCAMGrbEditor.py:2783
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:97
+msgid "Specify how many pads to be in the array."
+msgstr "Specifica quanti pad inserire nella matrice."
+
+#: AppEditors/FlatCAMGrbEditor.py:2832
+msgid ""
+"Angle at which the linear array is placed.\n"
+"The precision is of max 2 decimals.\n"
+"Min value is: -359.99 degrees.\n"
+"Max value is: 360.00 degrees."
+msgstr ""
+"Angolo a cui è posizionata la matrice lineare.\n"
+"La precisione è di massimo 2 decimali.\n"
+"Il valore minimo è: -359,99 gradi.\n"
+"Il valore massimo è: 360,00 gradi."
+
+#: AppEditors/FlatCAMGrbEditor.py:3326 AppEditors/FlatCAMGrbEditor.py:3330
+msgid "Aperture code value is missing or wrong format. Add it and retry."
+msgstr ""
+"Il valore del codice di apertura è mancante o nel formato errato. Aggiungilo "
+"e riprova."
+
+#: AppEditors/FlatCAMGrbEditor.py:3366
+msgid ""
+"Aperture dimensions value is missing or wrong format. Add it in format "
+"(width, height) and retry."
+msgstr ""
+"Il valore delle dimensioni dell'apertura è mancante o nel formato errato. "
+"Aggiungilo nel formato (larghezza, altezza) e riprova."
+
+#: AppEditors/FlatCAMGrbEditor.py:3379
+msgid "Aperture size value is missing or wrong format. Add it and retry."
+msgstr ""
+"Il valore della dimensione dell'apertura è mancante o nel formato errato. "
+"Aggiungilo e riprova."
+
+#: AppEditors/FlatCAMGrbEditor.py:3390
+msgid "Aperture already in the aperture table."
+msgstr "Apertura già nella tabella di apertura."
+
+#: AppEditors/FlatCAMGrbEditor.py:3397
+msgid "Added new aperture with code"
+msgstr "Aggiunta nuova apertura con codice"
+
+#: AppEditors/FlatCAMGrbEditor.py:3429
+msgid " Select an aperture in Aperture Table"
+msgstr " Seleziona un'apertura nella tabella Aperture"
+
+#: AppEditors/FlatCAMGrbEditor.py:3437
+msgid "Select an aperture in Aperture Table -->"
+msgstr "Seleziona un'apertura in Tabella apertura ->"
+
+#: AppEditors/FlatCAMGrbEditor.py:3451
+msgid "Deleted aperture with code"
+msgstr "Apertura eliminata con codice"
+
+#: AppEditors/FlatCAMGrbEditor.py:3519
+msgid "Dimensions need two float values separated by comma."
+msgstr "Le dimensioni necessitano di valori float separati da una virgola."
+
+#: AppEditors/FlatCAMGrbEditor.py:3528
+msgid "Dimensions edited."
+msgstr "Dimensioni modificate."
+
+#: AppEditors/FlatCAMGrbEditor.py:4058
+msgid "Loading Gerber into Editor"
+msgstr "Caricamento Gerber in Editor"
+
+#: AppEditors/FlatCAMGrbEditor.py:4186
+msgid "Setting up the UI"
+msgstr "Impostazione della UI"
+
+#: AppEditors/FlatCAMGrbEditor.py:4187
+#, fuzzy
+#| msgid "Adding geometry finished. Preparing the GUI"
+msgid "Adding geometry finished. Preparing the AppGUI"
+msgstr "Aggiunta della geometria terminata. Preparazione della GUI"
+
+#: AppEditors/FlatCAMGrbEditor.py:4196
+msgid "Finished loading the Gerber object into the editor."
+msgstr "Terminato il caricamento dell'oggetto Gerber nell'editor."
+
+#: AppEditors/FlatCAMGrbEditor.py:4335
+msgid ""
+"There are no Aperture definitions in the file. Aborting Gerber creation."
+msgstr ""
+"Non ci sono definizioni di Aperture nel file. Interruzione della creazione "
+"di Gerber."
+
+#: AppEditors/FlatCAMGrbEditor.py:4338 AppObjects/AppObject.py:133
+#: AppObjects/FlatCAMGeometry.py:1775 AppParsers/ParseExcellon.py:896
+#: AppTools/ToolPcbWizard.py:432 App_Main.py:8369 App_Main.py:8433
+#: App_Main.py:8564 App_Main.py:8629 App_Main.py:9281
+msgid "An internal error has occurred. See shell.\n"
+msgstr "Errore interno. Vedi shell.\n"
+
+#: AppEditors/FlatCAMGrbEditor.py:4345
+msgid "Creating Gerber."
+msgstr "Creazioen Gerber."
+
+#: AppEditors/FlatCAMGrbEditor.py:4354
+msgid "Done. Gerber editing finished."
+msgstr "Fatto. Modifica di Gerber terminata."
+
+#: AppEditors/FlatCAMGrbEditor.py:4372
+msgid "Cancelled. No aperture is selected"
+msgstr "Annullato. Nessuna apertura selezionata"
+
+#: AppEditors/FlatCAMGrbEditor.py:4527 App_Main.py:5921
+msgid "Coordinates copied to clipboard."
+msgstr "Coordinate copiate negli appunti."
+
+#: AppEditors/FlatCAMGrbEditor.py:4970
+msgid "Failed. No aperture geometry is selected."
+msgstr "Impossibile. Nessuna geometria di apertura selezionata."
+
+#: AppEditors/FlatCAMGrbEditor.py:4979 AppEditors/FlatCAMGrbEditor.py:5250
+msgid "Done. Apertures geometry deleted."
+msgstr "Fatto. Geometria delle aperture cancellata."
+
+#: AppEditors/FlatCAMGrbEditor.py:5122
+msgid "No aperture to buffer. Select at least one aperture and try again."
+msgstr "Nessuna apertura al buffer. Seleziona almeno un'apertura e riprova."
+
+#: AppEditors/FlatCAMGrbEditor.py:5134
+msgid "Failed."
+msgstr "Fallito."
+
+#: AppEditors/FlatCAMGrbEditor.py:5153
+msgid "Scale factor value is missing or wrong format. Add it and retry."
+msgstr ""
+"Valore del fattore di scala mancante o formato errato. Aggiungilo e riprova."
+
+#: AppEditors/FlatCAMGrbEditor.py:5185
+msgid "No aperture to scale. Select at least one aperture and try again."
+msgstr ""
+"Nessuna apertura da ridimensionare. Seleziona almeno un'apertura e riprova."
+
+#: AppEditors/FlatCAMGrbEditor.py:5201
+msgid "Done. Scale Tool completed."
+msgstr "Fatto. Strumento buffer completato."
+
+#: AppEditors/FlatCAMGrbEditor.py:5239
+msgid "Polygons marked."
+msgstr "Poligoni contrassegnati."
+
+#: AppEditors/FlatCAMGrbEditor.py:5242
+msgid "No polygons were marked. None fit within the limits."
+msgstr "Nessun poligono contrassegnato. Nessuno risponde ai criteri."
+
+#: AppEditors/FlatCAMGrbEditor.py:5966
+msgid "Rotation action was not executed."
+msgstr "Azione rotazione non effettuata."
+
+#: AppEditors/FlatCAMGrbEditor.py:6037 App_Main.py:5354 App_Main.py:5402
+msgid "Flip action was not executed."
+msgstr "Capovolgimento non eseguito."
+
+#: AppEditors/FlatCAMGrbEditor.py:6094
+msgid "Skew action was not executed."
+msgstr "Azione inclinazione non effettuata."
+
+#: AppEditors/FlatCAMGrbEditor.py:6159
+msgid "Scale action was not executed."
+msgstr "Azione riscalatura non effettuata."
+
+#: AppEditors/FlatCAMGrbEditor.py:6202
+msgid "Offset action was not executed."
+msgstr "Offset non applicato."
+
+#: AppEditors/FlatCAMGrbEditor.py:6252
+msgid "Geometry shape offset Y cancelled"
+msgstr "Offset su forme geometria su asse Y annullato"
+
+#: AppEditors/FlatCAMGrbEditor.py:6267
+msgid "Geometry shape skew X cancelled"
+msgstr "Offset su forme geometria su asse X annullato"
+
+#: AppEditors/FlatCAMGrbEditor.py:6282
+msgid "Geometry shape skew Y cancelled"
+msgstr "Inclinazione su asse Y annullato"
+
+#: AppEditors/FlatCAMTextEditor.py:74
+msgid "Print Preview"
+msgstr "Anteprima di Stampa"
+
+#: AppEditors/FlatCAMTextEditor.py:75
+msgid "Open a OS standard Preview Print window."
+msgstr ""
+"Aprire una finestra di stampa di anteprima standard del sistema operativo."
+
+#: AppEditors/FlatCAMTextEditor.py:78
+msgid "Print Code"
+msgstr "Stampa codice"
+
+#: AppEditors/FlatCAMTextEditor.py:79
+msgid "Open a OS standard Print window."
+msgstr "Aprire una finestra di stampa standard del sistema operativo."
+
+#: AppEditors/FlatCAMTextEditor.py:81
+msgid "Find in Code"
+msgstr "Cerca nel Codice"
+
+#: AppEditors/FlatCAMTextEditor.py:82
+msgid "Will search and highlight in yellow the string in the Find box."
+msgstr "Cercherà ed evidenzierà in giallo la stringa nella casella Trova."
+
+#: AppEditors/FlatCAMTextEditor.py:86
+msgid "Find box. Enter here the strings to be searched in the text."
+msgstr "Trova la scatola. Inserisci qui le stringhe da cercare nel testo."
+
+#: AppEditors/FlatCAMTextEditor.py:88
+msgid "Replace With"
+msgstr "Sostituisci con"
+
+#: AppEditors/FlatCAMTextEditor.py:89
+msgid ""
+"Will replace the string from the Find box with the one in the Replace box."
+msgstr ""
+"Sostituirà la stringa dalla casella Trova con quella nella casella "
+"Sostituisci."
+
+#: AppEditors/FlatCAMTextEditor.py:93
+msgid "String to replace the one in the Find box throughout the text."
+msgstr "Stringa per sostituire quella nella casella Trova in tutto il testo."
+
+#: AppEditors/FlatCAMTextEditor.py:95 AppGUI/ObjectUI.py:486
+#: AppGUI/ObjectUI.py:2349 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:54
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:88
+msgid "All"
+msgstr "Tutto"
+
+#: AppEditors/FlatCAMTextEditor.py:96
+msgid ""
+"When checked it will replace all instances in the 'Find' box\n"
+"with the text in the 'Replace' box.."
+msgstr ""
+"Se selezionato, sostituirà tutte le istanze nella casella \"Trova\"\n"
+"con il testo nella casella \"Sostituisci\"."
+
+#: AppEditors/FlatCAMTextEditor.py:99
+msgid "Copy All"
+msgstr "Copia tutto"
+
+#: AppEditors/FlatCAMTextEditor.py:100
+msgid "Will copy all the text in the Code Editor to the clipboard."
+msgstr "Copia tutto il testo nell'editor di codice negli Appunti."
+
+#: AppEditors/FlatCAMTextEditor.py:103
+msgid "Open Code"
+msgstr "Apri G-Code"
+
+#: AppEditors/FlatCAMTextEditor.py:104
+msgid "Will open a text file in the editor."
+msgstr "Aprirà un file di testo nell'editor."
+
+#: AppEditors/FlatCAMTextEditor.py:106
+msgid "Save Code"
+msgstr "Salva codice"
+
+#: AppEditors/FlatCAMTextEditor.py:107
+msgid "Will save the text in the editor into a file."
+msgstr "Salverà il testo nell'editor in un file."
+
+#: AppEditors/FlatCAMTextEditor.py:109
+msgid "Run Code"
+msgstr "Esegui codice"
+
+#: AppEditors/FlatCAMTextEditor.py:110
+msgid "Will run the TCL commands found in the text file, one by one."
+msgstr "Saranno eseguiti i comandi TCL trovati nel file di testo, uno per uno."
+
+#: AppEditors/FlatCAMTextEditor.py:184
+msgid "Open file"
+msgstr "Apri il file"
+
+#: AppEditors/FlatCAMTextEditor.py:215 AppEditors/FlatCAMTextEditor.py:220
+msgid "Export Code ..."
+msgstr "Esporta il Codice ..."
+
+#: AppEditors/FlatCAMTextEditor.py:272 AppObjects/FlatCAMCNCJob.py:955
+#: AppTools/ToolSolderPaste.py:1530
+msgid "No such file or directory"
+msgstr "File o directory inesistente"
+
+#: AppEditors/FlatCAMTextEditor.py:284 AppObjects/FlatCAMCNCJob.py:969
+msgid "Saved to"
+msgstr "Salvato in"
+
+#: AppEditors/FlatCAMTextEditor.py:334
+msgid "Code Editor content copied to clipboard ..."
+msgstr "Contenuto dell'editor di codice copiato negli appunti ..."
+
+#: AppGUI/GUIElements.py:2540
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:180
+#: AppTools/ToolDblSided.py:173 AppTools/ToolDblSided.py:388
+#: AppTools/ToolFilm.py:202
+msgid "Reference"
+msgstr "Riferimento"
+
+#: AppGUI/GUIElements.py:2542
+msgid ""
+"The reference can be:\n"
+"- Absolute -> the reference point is point (0,0)\n"
+"- Relative -> the reference point is the mouse position before Jump"
+msgstr ""
+"Il riferimento può essere:\n"
+"- Assoluto -> il punto di riferimento è punto (0,0)\n"
+"- Relativo -> il punto di riferimento è la posizione del mouse prima del "
+"salto"
+
+#: AppGUI/GUIElements.py:2547
+msgid "Abs"
+msgstr "Assoluto"
+
+#: AppGUI/GUIElements.py:2548
+msgid "Relative"
+msgstr "Relativo"
+
+#: AppGUI/GUIElements.py:2558
+msgid "Location"
+msgstr "Locazione"
+
+#: AppGUI/GUIElements.py:2560
+msgid ""
+"The Location value is a tuple (x,y).\n"
+"If the reference is Absolute then the Jump will be at the position (x,y).\n"
+"If the reference is Relative then the Jump will be at the (x,y) distance\n"
+"from the current mouse location point."
+msgstr ""
+"Il valore Posizione è una tupla (x,y).\n"
+"Se il riferimento è Assoluto, il Salto sarà nella posizione (x,y).\n"
+"Se il riferimento è relativo, il salto sarà alla distanza (x,y)\n"
+"dal punto di posizione attuale del mouse."
+
+#: AppGUI/GUIElements.py:2600
+msgid "Save Log"
+msgstr "Salva log"
+
+#: AppGUI/GUIElements.py:2610 App_Main.py:2657 App_Main.py:3018
+msgid "Close"
+msgstr "Chiudi"
+
+#: AppGUI/GUIElements.py:2619 AppTools/ToolShell.py:278
+msgid "Type >help< to get started"
+msgstr "Digita >help< per iniziare"
+
+#: AppGUI/GUIElements.py:2990 AppGUI/GUIElements.py:2997
+msgid "Idle."
+msgstr "Inattivo."
+
+#: AppGUI/GUIElements.py:3030
+msgid "Application started ..."
+msgstr "Applicazione avviata ..."
+
+#: AppGUI/GUIElements.py:3031
+msgid "Hello!"
+msgstr "Ciao!"
+
+#: AppGUI/GUIElements.py:3078 AppGUI/MainGUI.py:201 AppGUI/MainGUI.py:900
+#: AppGUI/MainGUI.py:1893
+msgid "Run Script ..."
+msgstr "Esegui Script ..."
+
+#: AppGUI/GUIElements.py:3080 AppGUI/MainGUI.py:203
+msgid ""
+"Will run the opened Tcl Script thus\n"
+"enabling the automation of certain\n"
+"functions of FlatCAM."
+msgstr ""
+"Eseguirà lo script Tcl aperto per\n"
+"consentire l'automazione di alcune\n"
+"funzioni di FlatCAM."
+
+#: AppGUI/GUIElements.py:3089 AppGUI/MainGUI.py:129
+#: AppTools/ToolPcbWizard.py:62 AppTools/ToolPcbWizard.py:69
+msgid "Open"
+msgstr "Apri"
+
+#: AppGUI/GUIElements.py:3093
+msgid "Open Project ..."
+msgstr "Apri progetto ..."
+
+#: AppGUI/GUIElements.py:3099 AppGUI/MainGUI.py:140
+msgid "Open &Gerber ...\tCtrl+G"
+msgstr "Apri &Gerber...\tCtrl+G"
+
+#: AppGUI/GUIElements.py:3104 AppGUI/MainGUI.py:145
+msgid "Open &Excellon ...\tCtrl+E"
+msgstr "Apri &Excellon ...\tCtrl+E"
+
+#: AppGUI/GUIElements.py:3109 AppGUI/MainGUI.py:150
+msgid "Open G-&Code ..."
+msgstr "Apri G-&Code ..."
+
+#: AppGUI/GUIElements.py:3119
+msgid "Exit"
+msgstr "Esci"
+
+#: AppGUI/MainGUI.py:78 AppGUI/MainGUI.py:80 AppGUI/MainGUI.py:1366
+msgid "Toggle Panel"
+msgstr "Attiva / disattiva pannello"
+
+#: AppGUI/MainGUI.py:90
+msgid "File"
+msgstr "File"
+
+#: AppGUI/MainGUI.py:95
+msgid "&New Project ...\tCtrl+N"
+msgstr "&Nuovo progetto ...\tCtrl+N"
+
+#: AppGUI/MainGUI.py:97
+msgid "Will create a new, blank project"
+msgstr "Creerà un nuovo progetto vuoto"
+
+#: AppGUI/MainGUI.py:102
+msgid "&New"
+msgstr "&Nuovo"
+
+#: AppGUI/MainGUI.py:106
+msgid "Geometry\tN"
+msgstr "Geometria\tN"
+
+#: AppGUI/MainGUI.py:108
+msgid "Will create a new, empty Geometry Object."
+msgstr "Creerà un nuovo oggetto Geometria vuoto."
+
+#: AppGUI/MainGUI.py:111
+msgid "Gerber\tB"
+msgstr "Gerber\tB"
+
+#: AppGUI/MainGUI.py:113
+msgid "Will create a new, empty Gerber Object."
+msgstr "Creerà un nuovo oggetto Gerber vuoto."
+
+#: AppGUI/MainGUI.py:116
+msgid "Excellon\tL"
+msgstr "Excellon\tL"
+
+#: AppGUI/MainGUI.py:118
+msgid "Will create a new, empty Excellon Object."
+msgstr "Creerà un nuovo oggetto Excellon vuoto."
+
+#: AppGUI/MainGUI.py:123
+msgid "Document\tD"
+msgstr "Documento\tD"
+
+#: AppGUI/MainGUI.py:125
+msgid "Will create a new, empty Document Object."
+msgstr "Creerà un nuovo oggetto Documento vuoto."
+
+#: AppGUI/MainGUI.py:134
+msgid "Open &Project ..."
+msgstr "Apri &Progetto ..."
+
+#: AppGUI/MainGUI.py:157
+msgid "Open Config ..."
+msgstr "Apri Config ..."
+
+#: AppGUI/MainGUI.py:162
+msgid "Recent projects"
+msgstr "Progetti recenti"
+
+#: AppGUI/MainGUI.py:164
+msgid "Recent files"
+msgstr "File recenti"
+
+#: AppGUI/MainGUI.py:167 AppGUI/MainGUI.py:755 AppGUI/MainGUI.py:1339
+msgid "Save"
+msgstr "Salva"
+
+#: AppGUI/MainGUI.py:171
+msgid "&Save Project ...\tCtrl+S"
+msgstr "&Salva progetto con nome ...\tCtrl+S"
+
+#: AppGUI/MainGUI.py:176
+msgid "Save Project &As ...\tCtrl+Shift+S"
+msgstr "S&alva progetto con nome ...\tCtrl+Shift+S"
+
+#: AppGUI/MainGUI.py:191
+msgid "Scripting"
+msgstr "Scripting"
+
+#: AppGUI/MainGUI.py:195 AppGUI/MainGUI.py:896 AppGUI/MainGUI.py:1889
+msgid "New Script ..."
+msgstr "Nuovo Script ..."
+
+#: AppGUI/MainGUI.py:197 AppGUI/MainGUI.py:898 AppGUI/MainGUI.py:1891
+msgid "Open Script ..."
+msgstr "Apri Script ..."
+
+#: AppGUI/MainGUI.py:199
+msgid "Open Example ..."
+msgstr "Apri esempio ..."
+
+#: AppGUI/MainGUI.py:218
+msgid "Import"
+msgstr "Importa"
+
+#: AppGUI/MainGUI.py:220
+msgid "&SVG as Geometry Object ..."
+msgstr "&SVG come oggetto Geometry ..."
+
+#: AppGUI/MainGUI.py:223
+msgid "&SVG as Gerber Object ..."
+msgstr "&SVG come oggetto Gerber ..."
+
+#: AppGUI/MainGUI.py:228
+msgid "&DXF as Geometry Object ..."
+msgstr "&DXF come oggetto Geometria ..."
+
+#: AppGUI/MainGUI.py:231
+msgid "&DXF as Gerber Object ..."
+msgstr "&DXF come oggetto Gerber ..."
+
+#: AppGUI/MainGUI.py:235
+msgid "HPGL2 as Geometry Object ..."
+msgstr "HPGL2 come oggetto Geometry ..."
+
+#: AppGUI/MainGUI.py:241
+msgid "Export"
+msgstr "Esporta"
+
+#: AppGUI/MainGUI.py:245
+msgid "Export &SVG ..."
+msgstr "Esporta &SVG ..."
+
+#: AppGUI/MainGUI.py:249
+msgid "Export DXF ..."
+msgstr "Esporta &DXF ..."
+
+#: AppGUI/MainGUI.py:255
+msgid "Export &PNG ..."
+msgstr "Esporta &PNG ..."
+
+#: AppGUI/MainGUI.py:257
+msgid ""
+"Will export an image in PNG format,\n"
+"the saved image will contain the visual \n"
+"information currently in FlatCAM Plot Area."
+msgstr ""
+"Esporterà un'immagine in formato PNG,\n"
+"l'immagine salvata conterrà le informazioni\n"
+"visive attualmente nell'area del grafico FlatCAM."
+
+#: AppGUI/MainGUI.py:266
+msgid "Export &Excellon ..."
+msgstr "Export &Excellon ..."
+
+#: AppGUI/MainGUI.py:268
+msgid ""
+"Will export an Excellon Object as Excellon file,\n"
+"the coordinates format, the file units and zeros\n"
+"are set in Preferences -> Excellon Export."
+msgstr ""
+"Esporterà un oggetto Excellon come file Excellon,\n"
+"il formato delle coordinate, le unità di file e gli zeri\n"
+"sono impostati in Preferenze -> Esporta Excellon."
+
+#: AppGUI/MainGUI.py:275
+msgid "Export &Gerber ..."
+msgstr "Esporta &Gerber ..."
+
+#: AppGUI/MainGUI.py:277
+msgid ""
+"Will export an Gerber Object as Gerber file,\n"
+"the coordinates format, the file units and zeros\n"
+"are set in Preferences -> Gerber Export."
+msgstr ""
+"Esporterà un oggetto Gerber come file Gerber,\n"
+"il formato delle coordinate, le unità di file e gli zeri\n"
+"sono impostati in Preferenze -> Esportazione Gerber."
+
+#: AppGUI/MainGUI.py:287
+msgid "Backup"
+msgstr "Backup"
+
+#: AppGUI/MainGUI.py:292
+msgid "Import Preferences from file ..."
+msgstr "Importa preferenze da file ..."
+
+#: AppGUI/MainGUI.py:298
+msgid "Export Preferences to file ..."
+msgstr "Esporta preferenze su file ..."
+
+#: AppGUI/MainGUI.py:306 AppGUI/preferences/PreferencesUIManager.py:1176
+msgid "Save Preferences"
+msgstr "Salva Preferenze"
+
+#: AppGUI/MainGUI.py:312 AppGUI/MainGUI.py:4022
+msgid "Print (PDF)"
+msgstr "Stampa (PDF)"
+
+#: AppGUI/MainGUI.py:320
+msgid "E&xit"
+msgstr "Esci (&X)"
+
+#: AppGUI/MainGUI.py:328 AppGUI/MainGUI.py:749 AppGUI/MainGUI.py:1489
+msgid "Edit"
+msgstr "Modifica"
+
+#: AppGUI/MainGUI.py:332
+msgid "Edit Object\tE"
+msgstr "Modifica oggetto\tE"
+
+#: AppGUI/MainGUI.py:334
+msgid "Close Editor\tCtrl+S"
+msgstr "Chiudi editor\tCtrl+S"
+
+#: AppGUI/MainGUI.py:343
+msgid "Conversion"
+msgstr "Conversione"
+
+#: AppGUI/MainGUI.py:345
+msgid "&Join Geo/Gerber/Exc -> Geo"
+msgstr "(&J) Unisci Geo/Gerber/Exc -> Geo"
+
+#: AppGUI/MainGUI.py:347
+msgid ""
+"Merge a selection of objects, which can be of type:\n"
+"- Gerber\n"
+"- Excellon\n"
+"- Geometry\n"
+"into a new combo Geometry object."
+msgstr ""
+"Unisci una selezione di oggetti, che possono essere di tipo:\n"
+"- Gerber\n"
+"- Excellon\n"
+"- Geometria\n"
+"in un nuovo oggetto Geometria combinato."
+
+#: AppGUI/MainGUI.py:354
+msgid "Join Excellon(s) -> Excellon"
+msgstr "Unisci Excellon -> Excellon"
+
+#: AppGUI/MainGUI.py:356
+msgid "Merge a selection of Excellon objects into a new combo Excellon object."
+msgstr ""
+"Unisci una selezione di oggetti Excellon in un nuovo oggetto combinato "
+"Excellon."
+
+#: AppGUI/MainGUI.py:359
+msgid "Join Gerber(s) -> Gerber"
+msgstr "Unisci Gerber(s) -> Gerber"
+
+#: AppGUI/MainGUI.py:361
+msgid "Merge a selection of Gerber objects into a new combo Gerber object."
+msgstr ""
+"Unisci una selezione di oggetti Gerber in un nuovo oggetto Gerber combinato."
+
+#: AppGUI/MainGUI.py:366
+msgid "Convert Single to MultiGeo"
+msgstr "Converti da Single a MultiGeo"
+
+#: AppGUI/MainGUI.py:368
+msgid ""
+"Will convert a Geometry object from single_geometry type\n"
+"to a multi_geometry type."
+msgstr ""
+"Converte un oggetto Geometry dal tipo single_geometry\n"
+"a un tipo multi_geometry."
+
+#: AppGUI/MainGUI.py:372
+msgid "Convert Multi to SingleGeo"
+msgstr "Converti da Multi a SingleGeo"
+
+#: AppGUI/MainGUI.py:374
+msgid ""
+"Will convert a Geometry object from multi_geometry type\n"
+"to a single_geometry type."
+msgstr ""
+"Converte un oggetto Geometry dal tipo multi_geometry\n"
+"a un tipo single_geometry."
+
+#: AppGUI/MainGUI.py:381
+msgid "Convert Any to Geo"
+msgstr "Converti tutto in Geo"
+
+#: AppGUI/MainGUI.py:384
+msgid "Convert Any to Gerber"
+msgstr "Converti tutto in Gerber"
+
+#: AppGUI/MainGUI.py:390
+msgid "&Copy\tCtrl+C"
+msgstr "&Copia\tCtrl+C"
+
+#: AppGUI/MainGUI.py:395
+msgid "&Delete\tDEL"
+msgstr "Cancella (&D)\tDEL"
+
+#: AppGUI/MainGUI.py:400
+msgid "Se&t Origin\tO"
+msgstr "Impos&ta Origine\tO"
+
+#: AppGUI/MainGUI.py:402
+msgid "Move to Origin\tShift+O"
+msgstr "Sposta su Origine\tShift+O"
+
+#: AppGUI/MainGUI.py:405
+msgid "Jump to Location\tJ"
+msgstr "Vai a locazione\tJ"
+
+#: AppGUI/MainGUI.py:407
+msgid "Locate in Object\tShift+J"
+msgstr "Trova nell'oggetto\tShift+J"
+
+#: AppGUI/MainGUI.py:412
+msgid "Toggle Units\tQ"
+msgstr "Attiva/disattiva Unità\tQ"
+
+#: AppGUI/MainGUI.py:414
+msgid "&Select All\tCtrl+A"
+msgstr "&Seleziona tutto\tCtrl+A"
+
+#: AppGUI/MainGUI.py:419
+msgid "&Preferences\tShift+P"
+msgstr "&Preferenze\tShift+P"
+
+#: AppGUI/MainGUI.py:425 AppTools/ToolProperties.py:155
+msgid "Options"
+msgstr "Opzioni"
+
+#: AppGUI/MainGUI.py:427
+msgid "&Rotate Selection\tShift+(R)"
+msgstr "&Ruota Selezione\tShift+(R)"
+
+#: AppGUI/MainGUI.py:432
+msgid "&Skew on X axis\tShift+X"
+msgstr "Inclina nell'a&sse X\tShift+X"
+
+#: AppGUI/MainGUI.py:434
+msgid "S&kew on Y axis\tShift+Y"
+msgstr "Inclina nell'asse Y\tShift+Y"
+
+#: AppGUI/MainGUI.py:439
+msgid "Flip on &X axis\tX"
+msgstr "Capovolgi in &X\tX"
+
+#: AppGUI/MainGUI.py:441
+msgid "Flip on &Y axis\tY"
+msgstr "Capovolgi in &Y\tY"
+
+#: AppGUI/MainGUI.py:446
+msgid "View source\tAlt+S"
+msgstr "Vedi sorgente\tAlt+S"
+
+#: AppGUI/MainGUI.py:448
+msgid "Tools DataBase\tCtrl+D"
+msgstr "DataBase Utensili\tCtrl+D"
+
+#: AppGUI/MainGUI.py:455 AppGUI/MainGUI.py:1386
+msgid "View"
+msgstr "Vedi"
+
+#: AppGUI/MainGUI.py:457
+msgid "Enable all plots\tAlt+1"
+msgstr "Abilita tutti i plot\tAlt+1"
+
+#: AppGUI/MainGUI.py:459
+msgid "Disable all plots\tAlt+2"
+msgstr "Disabilita tutti i plot\tAlt+2"
+
+#: AppGUI/MainGUI.py:461
+msgid "Disable non-selected\tAlt+3"
+msgstr "Disabilita non selezionati\tAlt+3"
+
+#: AppGUI/MainGUI.py:465
+msgid "&Zoom Fit\tV"
+msgstr "&Zoom tutto\tV"
+
+#: AppGUI/MainGUI.py:467
+msgid "&Zoom In\t="
+msgstr "&Zoom In\t="
+
+#: AppGUI/MainGUI.py:469
+msgid "&Zoom Out\t-"
+msgstr "&Zoom Fuori\t-"
+
+#: AppGUI/MainGUI.py:474
+msgid "Redraw All\tF5"
+msgstr "Ridisegna tutto\tF5"
+
+#: AppGUI/MainGUI.py:478
+msgid "Toggle Code Editor\tShift+E"
+msgstr "Attiva/disattiva Editor codice\tShift+E"
+
+#: AppGUI/MainGUI.py:481
+msgid "&Toggle FullScreen\tAlt+F10"
+msgstr "(Dis)abili&ta schermo intero\tAlt+F10"
+
+#: AppGUI/MainGUI.py:483
+msgid "&Toggle Plot Area\tCtrl+F10"
+msgstr "(Dis)a&ttiva area del diagramma\tCtrl+F10"
+
+#: AppGUI/MainGUI.py:485
+msgid "&Toggle Project/Sel/Tool\t`"
+msgstr "(Dis)a&ttiva Progetto/Sel/Strumento\t`"
+
+#: AppGUI/MainGUI.py:489
+msgid "&Toggle Grid Snap\tG"
+msgstr "(Dis)a&ttiva lo snap alla griglia\tG"
+
+#: AppGUI/MainGUI.py:491
+msgid "&Toggle Grid Lines\tAlt+G"
+msgstr "(Dis)&attiva linee griglia\tG"
+
+#: AppGUI/MainGUI.py:493
+msgid "&Toggle Axis\tShift+G"
+msgstr "(Dis)a&ttiva assi\tShift+G"
+
+#: AppGUI/MainGUI.py:495
+msgid "Toggle Workspace\tShift+W"
+msgstr "(Dis)attiva area di lavoro\tShift+W"
+
+#: AppGUI/MainGUI.py:497
+#, fuzzy
+#| msgid "Toggle Units"
+msgid "Toggle HUD\tAlt+M"
+msgstr "Camba unità"
+
+#: AppGUI/MainGUI.py:502
+msgid "Objects"
+msgstr "Oggetti"
+
+#: AppGUI/MainGUI.py:505 AppGUI/MainGUI.py:4020
+#: AppObjects/ObjectCollection.py:1120 AppObjects/ObjectCollection.py:1167
+msgid "Select All"
+msgstr "Seleziona tutto"
+
+#: AppGUI/MainGUI.py:507 AppObjects/ObjectCollection.py:1124
+#: AppObjects/ObjectCollection.py:1171
+msgid "Deselect All"
+msgstr "Deseleziona tutto"
+
+#: AppGUI/MainGUI.py:516
+msgid "&Command Line\tS"
+msgstr "Riga &Comandi\tS"
+
+#: AppGUI/MainGUI.py:521
+msgid "Help"
+msgstr "Aiuto"
+
+#: AppGUI/MainGUI.py:523
+msgid "Online Help\tF1"
+msgstr "Aiuto Online\tF1"
+
+#: AppGUI/MainGUI.py:526 Bookmark.py:293
+msgid "Bookmarks"
+msgstr "Segnalibri"
+
+#: AppGUI/MainGUI.py:529 App_Main.py:2989 App_Main.py:2998
+msgid "Bookmarks Manager"
+msgstr "Gestore segnalibri"
+
+#: AppGUI/MainGUI.py:533
+msgid "Report a bug"
+msgstr "Riporta un bug"
+
+#: AppGUI/MainGUI.py:536
+msgid "Excellon Specification"
+msgstr "Specifiche Excellon"
+
+#: AppGUI/MainGUI.py:538
+msgid "Gerber Specification"
+msgstr "Specifiche Gerber"
+
+#: AppGUI/MainGUI.py:543
+msgid "Shortcuts List\tF3"
+msgstr "Elenco Shortcuts\tF3"
+
+#: AppGUI/MainGUI.py:545
+msgid "YouTube Channel\tF4"
+msgstr "Canale YouTube\tF4"
+
+#: AppGUI/MainGUI.py:547 App_Main.py:2624
+msgid "About FlatCAM"
+msgstr "Informazioni su FlatCAM"
+
+#: AppGUI/MainGUI.py:556
+msgid "Add Circle\tO"
+msgstr "Aggiungi cerchio\tO"
+
+#: AppGUI/MainGUI.py:559
+msgid "Add Arc\tA"
+msgstr "Aggiungi Arco\tA"
+
+#: AppGUI/MainGUI.py:562
+msgid "Add Rectangle\tR"
+msgstr "Aggiungi rettangolo\tR"
+
+#: AppGUI/MainGUI.py:565
+msgid "Add Polygon\tN"
+msgstr "Aggiungi poligono\tN"
+
+#: AppGUI/MainGUI.py:568
+msgid "Add Path\tP"
+msgstr "Aggiungi percorso\tP"
+
+#: AppGUI/MainGUI.py:571
+msgid "Add Text\tT"
+msgstr "Aggiungi Testo\tT"
+
+#: AppGUI/MainGUI.py:574
+msgid "Polygon Union\tU"
+msgstr "Unisci poligono\tU"
+
+#: AppGUI/MainGUI.py:576
+msgid "Polygon Intersection\tE"
+msgstr "Interseca poligono\tE"
+
+#: AppGUI/MainGUI.py:578
+msgid "Polygon Subtraction\tS"
+msgstr "Sottrai poligono\tS"
+
+#: AppGUI/MainGUI.py:582
+msgid "Cut Path\tX"
+msgstr "Taglia percorso\tX"
+
+#: AppGUI/MainGUI.py:586
+msgid "Copy Geom\tC"
+msgstr "Copia Geometria\tC"
+
+#: AppGUI/MainGUI.py:588
+msgid "Delete Shape\tDEL"
+msgstr "Cancella forma\tCANC"
+
+#: AppGUI/MainGUI.py:592 AppGUI/MainGUI.py:679
+msgid "Move\tM"
+msgstr "Sposta\tM"
+
+#: AppGUI/MainGUI.py:594
+msgid "Buffer Tool\tB"
+msgstr "Strumento Buffer\tB"
+
+#: AppGUI/MainGUI.py:597
+msgid "Paint Tool\tI"
+msgstr "Strumento Pittura\tI"
+
+#: AppGUI/MainGUI.py:600
+msgid "Transform Tool\tAlt+R"
+msgstr "Strumento Trasforma\tAlt+R"
+
+#: AppGUI/MainGUI.py:604
+msgid "Toggle Corner Snap\tK"
+msgstr "Attiva/disattiva Snap angoli\tK"
+
+#: AppGUI/MainGUI.py:610
+msgid ">Excellon Editor<"
+msgstr ">Editor Excellon<"
+
+#: AppGUI/MainGUI.py:614
+msgid "Add Drill Array\tA"
+msgstr "Aggiungi matrice fori\tA"
+
+#: AppGUI/MainGUI.py:616
+msgid "Add Drill\tD"
+msgstr "Aggiungi Foro\tD"
+
+#: AppGUI/MainGUI.py:620
+msgid "Add Slot Array\tQ"
+msgstr "Aggiungi Matrice slot\tQ"
+
+#: AppGUI/MainGUI.py:622
+msgid "Add Slot\tW"
+msgstr "Aggiungi Slot\tW"
+
+#: AppGUI/MainGUI.py:626
+msgid "Resize Drill(S)\tR"
+msgstr "Ridimensiona Foro(i)\tR"
+
+#: AppGUI/MainGUI.py:629 AppGUI/MainGUI.py:673
+msgid "Copy\tC"
+msgstr "Copia\tC"
+
+#: AppGUI/MainGUI.py:631 AppGUI/MainGUI.py:675
+msgid "Delete\tDEL"
+msgstr "Cancella\tCANC"
+
+#: AppGUI/MainGUI.py:636
+msgid "Move Drill(s)\tM"
+msgstr "Sposta foro(i)\tM"
+
+#: AppGUI/MainGUI.py:641
+msgid ">Gerber Editor<"
+msgstr ">Editor Gerber<"
+
+#: AppGUI/MainGUI.py:645
+msgid "Add Pad\tP"
+msgstr "Aggiungi Pad\tP"
+
+#: AppGUI/MainGUI.py:647
+msgid "Add Pad Array\tA"
+msgstr "Aggiungi matrice Pad\tA"
+
+#: AppGUI/MainGUI.py:649
+msgid "Add Track\tT"
+msgstr "Aggiungi Traccia\tT"
+
+#: AppGUI/MainGUI.py:651
+msgid "Add Region\tN"
+msgstr "Aggiungi regione\tN"
+
+#: AppGUI/MainGUI.py:655
+msgid "Poligonize\tAlt+N"
+msgstr "Poligonizza\tAlt+N"
+
+#: AppGUI/MainGUI.py:657
+msgid "Add SemiDisc\tE"
+msgstr "Aggiungi SemiDisco\tE"
+
+#: AppGUI/MainGUI.py:659
+msgid "Add Disc\tD"
+msgstr "Aggiungi Disco\tD"
+
+#: AppGUI/MainGUI.py:661
+msgid "Buffer\tB"
+msgstr "Buffer\tB"
+
+#: AppGUI/MainGUI.py:663
+msgid "Scale\tS"
+msgstr "Scala\tS"
+
+#: AppGUI/MainGUI.py:665
+msgid "Mark Area\tAlt+A"
+msgstr "Marchia Area\tAlt+A"
+
+#: AppGUI/MainGUI.py:667
+msgid "Eraser\tCtrl+E"
+msgstr "Gomma\tCtrl+E"
+
+#: AppGUI/MainGUI.py:669
+msgid "Transform\tAlt+R"
+msgstr "Trasforma\tAlt+R"
+
+#: AppGUI/MainGUI.py:696
+msgid "Enable Plot"
+msgstr "Abilita Plot"
+
+#: AppGUI/MainGUI.py:698
+msgid "Disable Plot"
+msgstr "Disabilita Plot"
+
+#: AppGUI/MainGUI.py:702
+msgid "Set Color"
+msgstr "Imposta Colore"
+
+#: AppGUI/MainGUI.py:705 App_Main.py:9548
+msgid "Red"
+msgstr "Rosso"
+
+#: AppGUI/MainGUI.py:708 App_Main.py:9550
+msgid "Blue"
+msgstr "Blu"
+
+#: AppGUI/MainGUI.py:711 App_Main.py:9553
+msgid "Yellow"
+msgstr "Giallo"
+
+#: AppGUI/MainGUI.py:714 App_Main.py:9555
+msgid "Green"
+msgstr "Verde"
+
+#: AppGUI/MainGUI.py:717 App_Main.py:9557
+msgid "Purple"
+msgstr "Porpora"
+
+#: AppGUI/MainGUI.py:720 App_Main.py:9559
+msgid "Brown"
+msgstr "Marrone"
+
+#: AppGUI/MainGUI.py:723 App_Main.py:9561 App_Main.py:9617
+msgid "White"
+msgstr "Bianco"
+
+#: AppGUI/MainGUI.py:726 App_Main.py:9563
+msgid "Black"
+msgstr "Nero"
+
+#: AppGUI/MainGUI.py:731 AppTools/ToolEtchCompensation.py:110 App_Main.py:9566
+msgid "Custom"
+msgstr "Personalizzato"
+
+#: AppGUI/MainGUI.py:736 App_Main.py:9600
+msgid "Opacity"
+msgstr "Trasparenza"
+
+#: AppGUI/MainGUI.py:739 App_Main.py:9576
+msgid "Default"
+msgstr "Valori di default"
+
+#: AppGUI/MainGUI.py:744
+msgid "Generate CNC"
+msgstr "Genera CNC"
+
+#: AppGUI/MainGUI.py:746
+msgid "View Source"
+msgstr "Vedi sorgente"
+
+#: AppGUI/MainGUI.py:751 AppGUI/MainGUI.py:856 AppGUI/MainGUI.py:1069
+#: AppGUI/MainGUI.py:1485 AppGUI/MainGUI.py:1852 AppGUI/MainGUI.py:2061
+#: AppGUI/MainGUI.py:4430 AppGUI/ObjectUI.py:1719
+#: AppObjects/FlatCAMGeometry.py:553 AppTools/ToolPanelize.py:551
+#: AppTools/ToolPanelize.py:578 AppTools/ToolPanelize.py:671
+#: AppTools/ToolPanelize.py:700 AppTools/ToolPanelize.py:762
+msgid "Copy"
+msgstr "Copia"
+
+#: AppGUI/MainGUI.py:759 AppGUI/MainGUI.py:1498 AppTools/ToolProperties.py:31
+msgid "Properties"
+msgstr "Proprietà"
+
+#: AppGUI/MainGUI.py:788
+msgid "File Toolbar"
+msgstr "Strumenti File"
+
+#: AppGUI/MainGUI.py:792
+msgid "Edit Toolbar"
+msgstr "Strumenti Edit"
+
+#: AppGUI/MainGUI.py:796
+msgid "View Toolbar"
+msgstr "Strumenti Vedi"
+
+#: AppGUI/MainGUI.py:800
+msgid "Shell Toolbar"
+msgstr "Strumenti Shell"
+
+#: AppGUI/MainGUI.py:804
+msgid "Tools Toolbar"
+msgstr "Strumenti Utensili"
+
+#: AppGUI/MainGUI.py:808
+msgid "Excellon Editor Toolbar"
+msgstr "Strumenti Editor Excellon"
+
+#: AppGUI/MainGUI.py:814
+msgid "Geometry Editor Toolbar"
+msgstr "Strumenti Editor Geometrie"
+
+#: AppGUI/MainGUI.py:818
+msgid "Gerber Editor Toolbar"
+msgstr "Strumenti Editor Gerber"
+
+#: AppGUI/MainGUI.py:822
+msgid "Grid Toolbar"
+msgstr "Strumenti Griglia"
+
+#: AppGUI/MainGUI.py:836 AppGUI/MainGUI.py:1831 App_Main.py:6513
+#: App_Main.py:6517
+msgid "Open Gerber"
+msgstr "Apri Gerber"
+
+#: AppGUI/MainGUI.py:838 AppGUI/MainGUI.py:1833 App_Main.py:6551
+#: App_Main.py:6555
+msgid "Open Excellon"
+msgstr "Apri Excellon"
+
+#: AppGUI/MainGUI.py:841 AppGUI/MainGUI.py:1836
+msgid "Open project"
+msgstr "Apri progetto"
+
+#: AppGUI/MainGUI.py:843 AppGUI/MainGUI.py:1838
+msgid "Save project"
+msgstr "Salva progetto"
+
+#: AppGUI/MainGUI.py:851 AppGUI/MainGUI.py:1847
+msgid "Save Object and close the Editor"
+msgstr "Salva Oggetto e chiudi editor"
+
+#: AppGUI/MainGUI.py:858 AppGUI/MainGUI.py:1854
+msgid "&Delete"
+msgstr "&Cancella"
+
+#: AppGUI/MainGUI.py:861 AppGUI/MainGUI.py:1857 AppGUI/MainGUI.py:4021
+#: AppGUI/MainGUI.py:4227 AppTools/ToolDistance.py:35
+#: AppTools/ToolDistance.py:197
+msgid "Distance Tool"
+msgstr "Strumento distanza"
+
+#: AppGUI/MainGUI.py:863 AppGUI/MainGUI.py:1859
+msgid "Distance Min Tool"
+msgstr "Strumento distanza minima"
+
+#: AppGUI/MainGUI.py:865 AppGUI/MainGUI.py:1861 AppGUI/MainGUI.py:4014
+msgid "Set Origin"
+msgstr "Imposta origine"
+
+#: AppGUI/MainGUI.py:867 AppGUI/MainGUI.py:1863
+msgid "Move to Origin"
+msgstr "Sposta su origine"
+
+#: AppGUI/MainGUI.py:870 AppGUI/MainGUI.py:1865
+msgid "Jump to Location"
+msgstr "Vai a posizione"
+
+#: AppGUI/MainGUI.py:872 AppGUI/MainGUI.py:1867 AppGUI/MainGUI.py:4026
+msgid "Locate in Object"
+msgstr "Trova nell'oggetto"
+
+#: AppGUI/MainGUI.py:878 AppGUI/MainGUI.py:1873
+msgid "&Replot"
+msgstr "&Ridisegna"
+
+#: AppGUI/MainGUI.py:880 AppGUI/MainGUI.py:1875
+msgid "&Clear plot"
+msgstr "&Cancella plot"
+
+#: AppGUI/MainGUI.py:882 AppGUI/MainGUI.py:1877 AppGUI/MainGUI.py:4017
+msgid "Zoom In"
+msgstr "Zoom In"
+
+#: AppGUI/MainGUI.py:884 AppGUI/MainGUI.py:1879 AppGUI/MainGUI.py:4017
+msgid "Zoom Out"
+msgstr "Zoom Out"
+
+#: AppGUI/MainGUI.py:886 AppGUI/MainGUI.py:1388 AppGUI/MainGUI.py:1881
+#: AppGUI/MainGUI.py:4016
+msgid "Zoom Fit"
+msgstr "Zoom Tutto"
+
+#: AppGUI/MainGUI.py:894 AppGUI/MainGUI.py:1887
+msgid "&Command Line"
+msgstr "Riga &Comandi"
+
+#: AppGUI/MainGUI.py:906 AppGUI/MainGUI.py:1899
+msgid "2Sided Tool"
+msgstr "Strumento 2 facce"
+
+#: AppGUI/MainGUI.py:908 AppGUI/MainGUI.py:1901 AppGUI/MainGUI.py:4032
+msgid "Align Objects Tool"
+msgstr "Strumento allinea oggetti"
+
+#: AppGUI/MainGUI.py:910 AppGUI/MainGUI.py:1903 AppGUI/MainGUI.py:4033
+#: AppTools/ToolExtractDrills.py:393
+msgid "Extract Drills Tool"
+msgstr "Strumento estrai fori"
+
+#: AppGUI/MainGUI.py:913 AppGUI/ObjectUI.py:596 AppTools/ToolCutOut.py:440
+msgid "Cutout Tool"
+msgstr "Strumento Ritaglia"
+
+#: AppGUI/MainGUI.py:915 AppGUI/MainGUI.py:1908 AppGUI/ObjectUI.py:574
+#: AppGUI/ObjectUI.py:2287 AppTools/ToolNCC.py:974
+msgid "NCC Tool"
+msgstr "Strumento NCC"
+
+#: AppGUI/MainGUI.py:921 AppGUI/MainGUI.py:1914
+msgid "Panel Tool"
+msgstr "Stromento Pannello"
+
+#: AppGUI/MainGUI.py:923 AppGUI/MainGUI.py:1916 AppTools/ToolFilm.py:569
+msgid "Film Tool"
+msgstr "Strumento Film"
+
+#: AppGUI/MainGUI.py:925 AppGUI/MainGUI.py:1918 AppTools/ToolSolderPaste.py:553
+msgid "SolderPaste Tool"
+msgstr "Strumento SolderPaste"
+
+#: AppGUI/MainGUI.py:927 AppGUI/MainGUI.py:1920 AppTools/ToolSub.py:35
+msgid "Subtract Tool"
+msgstr "Strumento Sottrai"
+
+#: AppGUI/MainGUI.py:929 AppGUI/MainGUI.py:1922 AppTools/ToolRulesCheck.py:616
+msgid "Rules Tool"
+msgstr "Strumento Righello"
+
+#: AppGUI/MainGUI.py:931 AppGUI/MainGUI.py:1924 AppGUI/MainGUI.py:4035
+#: AppTools/ToolOptimal.py:33 AppTools/ToolOptimal.py:307
+msgid "Optimal Tool"
+msgstr "Strumento Ottimo"
+
+#: AppGUI/MainGUI.py:936 AppGUI/MainGUI.py:1929 AppGUI/MainGUI.py:4032
+msgid "Calculators Tool"
+msgstr "Strumento Calcolatrici"
+
+#: AppGUI/MainGUI.py:940 AppGUI/MainGUI.py:1933 AppGUI/MainGUI.py:4036
+#: AppTools/ToolQRCode.py:43 AppTools/ToolQRCode.py:382
+msgid "QRCode Tool"
+msgstr "Strumento QRCode"
+
+#: AppGUI/MainGUI.py:942 AppGUI/MainGUI.py:1935
+#: AppTools/ToolCopperThieving.py:39 AppTools/ToolCopperThieving.py:568
+msgid "Copper Thieving Tool"
+msgstr "Strumento Copper Thieving"
+
+#: AppGUI/MainGUI.py:945 AppGUI/MainGUI.py:1938 AppGUI/MainGUI.py:4033
+#: AppTools/ToolFiducials.py:33 AppTools/ToolFiducials.py:396
+msgid "Fiducials Tool"
+msgstr "Strumento Fiducial"
+
+#: AppGUI/MainGUI.py:947 AppGUI/MainGUI.py:1940 AppTools/ToolCalibration.py:37
+#: AppTools/ToolCalibration.py:759
+msgid "Calibration Tool"
+msgstr "Strumento Calibrazione"
+
+#: AppGUI/MainGUI.py:949 AppGUI/MainGUI.py:1942 AppGUI/MainGUI.py:4033
+msgid "Punch Gerber Tool"
+msgstr "Strumento punzone gerber"
+
+#: AppGUI/MainGUI.py:951 AppGUI/MainGUI.py:1944 AppTools/ToolInvertGerber.py:31
+msgid "Invert Gerber Tool"
+msgstr "Strumento inverti gerber"
+
+#: AppGUI/MainGUI.py:953 AppGUI/MainGUI.py:1946 AppGUI/MainGUI.py:4035
+#: AppTools/ToolCorners.py:31
+#, fuzzy
+#| msgid "Invert Gerber Tool"
+msgid "Corner Markers Tool"
+msgstr "Strumento inverti gerber"
+
+#: AppGUI/MainGUI.py:955 AppGUI/MainGUI.py:1948
+#: AppTools/ToolEtchCompensation.py:31
+#, fuzzy
+#| msgid "Editor Transformation Tool"
+msgid "Etch Compensation Tool"
+msgstr "Strumento Edito trasformazione"
+
+#: AppGUI/MainGUI.py:961 AppGUI/MainGUI.py:987 AppGUI/MainGUI.py:1039
+#: AppGUI/MainGUI.py:1954 AppGUI/MainGUI.py:2032
+msgid "Select"
+msgstr "Seleziona"
+
+#: AppGUI/MainGUI.py:963 AppGUI/MainGUI.py:1956
+msgid "Add Drill Hole"
+msgstr "Aggiungi Foro"
+
+#: AppGUI/MainGUI.py:965 AppGUI/MainGUI.py:1958
+msgid "Add Drill Hole Array"
+msgstr "Aggiungi matrice Fori"
+
+#: AppGUI/MainGUI.py:967 AppGUI/MainGUI.py:1476 AppGUI/MainGUI.py:1962
+#: AppGUI/MainGUI.py:4312
+msgid "Add Slot"
+msgstr "Aggiungi Slot"
+
+#: AppGUI/MainGUI.py:969 AppGUI/MainGUI.py:1478 AppGUI/MainGUI.py:1964
+#: AppGUI/MainGUI.py:4311
+msgid "Add Slot Array"
+msgstr "Aggiungi matrici Slot"
+
+#: AppGUI/MainGUI.py:971 AppGUI/MainGUI.py:1481 AppGUI/MainGUI.py:1960
+msgid "Resize Drill"
+msgstr "Ridimensiona Foro"
+
+#: AppGUI/MainGUI.py:975 AppGUI/MainGUI.py:1968
+msgid "Copy Drill"
+msgstr "Copia Foro"
+
+#: AppGUI/MainGUI.py:977 AppGUI/MainGUI.py:1970
+msgid "Delete Drill"
+msgstr "Cancella Foro"
+
+#: AppGUI/MainGUI.py:981 AppGUI/MainGUI.py:1974
+msgid "Move Drill"
+msgstr "Sposta Foro"
+
+#: AppGUI/MainGUI.py:989 AppGUI/MainGUI.py:1982
+msgid "Add Circle"
+msgstr "Aggiungi Cerchio"
+
+#: AppGUI/MainGUI.py:991 AppGUI/MainGUI.py:1984
+msgid "Add Arc"
+msgstr "Aggiungi Arco"
+
+#: AppGUI/MainGUI.py:993 AppGUI/MainGUI.py:1986
+msgid "Add Rectangle"
+msgstr "Aggiungi rettangolo"
+
+#: AppGUI/MainGUI.py:997 AppGUI/MainGUI.py:1990
+msgid "Add Path"
+msgstr "Aggiungi Percorso"
+
+#: AppGUI/MainGUI.py:999 AppGUI/MainGUI.py:1992
+msgid "Add Polygon"
+msgstr "Aggiungi Poligono"
+
+#: AppGUI/MainGUI.py:1002 AppGUI/MainGUI.py:1995
+msgid "Add Text"
+msgstr "Aggiungi Testo"
+
+#: AppGUI/MainGUI.py:1004 AppGUI/MainGUI.py:1997
+msgid "Add Buffer"
+msgstr "Aggiungi Buffer"
+
+#: AppGUI/MainGUI.py:1006 AppGUI/MainGUI.py:1999
+msgid "Paint Shape"
+msgstr "Disegna Figura"
+
+#: AppGUI/MainGUI.py:1008 AppGUI/MainGUI.py:1065 AppGUI/MainGUI.py:1417
+#: AppGUI/MainGUI.py:1462 AppGUI/MainGUI.py:2001 AppGUI/MainGUI.py:2057
+msgid "Eraser"
+msgstr "Gomma"
+
+#: AppGUI/MainGUI.py:1012 AppGUI/MainGUI.py:2005
+msgid "Polygon Union"
+msgstr "Unione Poligono"
+
+#: AppGUI/MainGUI.py:1014 AppGUI/MainGUI.py:2007
+msgid "Polygon Explode"
+msgstr "Explodi Poligono"
+
+#: AppGUI/MainGUI.py:1017 AppGUI/MainGUI.py:2010
+msgid "Polygon Intersection"
+msgstr "Interseca Poligono"
+
+#: AppGUI/MainGUI.py:1019 AppGUI/MainGUI.py:2012
+msgid "Polygon Subtraction"
+msgstr "Sottrai Poligono"
+
+#: AppGUI/MainGUI.py:1023 AppGUI/MainGUI.py:2016
+msgid "Cut Path"
+msgstr "Taglia Percorso"
+
+#: AppGUI/MainGUI.py:1025
+msgid "Copy Shape(s)"
+msgstr "Copia Forma(e)"
+
+#: AppGUI/MainGUI.py:1028
+msgid "Delete Shape '-'"
+msgstr "Cancella Forme '-'"
+
+#: AppGUI/MainGUI.py:1030 AppGUI/MainGUI.py:1073 AppGUI/MainGUI.py:1429
+#: AppGUI/MainGUI.py:1466 AppGUI/MainGUI.py:2022 AppGUI/MainGUI.py:2065
+#: AppGUI/ObjectUI.py:109
+msgid "Transformations"
+msgstr "Trasformazioni"
+
+#: AppGUI/MainGUI.py:1033
+msgid "Move Objects "
+msgstr "Sposta Oggetti "
+
+#: AppGUI/MainGUI.py:1041 AppGUI/MainGUI.py:2034 AppGUI/MainGUI.py:4431
+msgid "Add Pad"
+msgstr "Aggiungi Pad"
+
+#: AppGUI/MainGUI.py:1045 AppGUI/MainGUI.py:2038 AppGUI/MainGUI.py:4432
+msgid "Add Track"
+msgstr "Aggiungi Traccia"
+
+#: AppGUI/MainGUI.py:1047 AppGUI/MainGUI.py:2040 AppGUI/MainGUI.py:4431
+msgid "Add Region"
+msgstr "Aggiungi Regione"
+
+#: AppGUI/MainGUI.py:1049 AppGUI/MainGUI.py:1448 AppGUI/MainGUI.py:2042
+msgid "Poligonize"
+msgstr "Poligonizza"
+
+#: AppGUI/MainGUI.py:1052 AppGUI/MainGUI.py:1450 AppGUI/MainGUI.py:2045
+msgid "SemiDisc"
+msgstr "SemiDisco"
+
+#: AppGUI/MainGUI.py:1054 AppGUI/MainGUI.py:1452 AppGUI/MainGUI.py:2047
+msgid "Disc"
+msgstr "Disco"
+
+#: AppGUI/MainGUI.py:1062 AppGUI/MainGUI.py:1460 AppGUI/MainGUI.py:2055
+msgid "Mark Area"
+msgstr "Marchia Area"
+
+#: AppGUI/MainGUI.py:1076 AppGUI/MainGUI.py:1433 AppGUI/MainGUI.py:1496
+#: AppGUI/MainGUI.py:2068 AppGUI/MainGUI.py:4431 AppTools/ToolMove.py:27
+msgid "Move"
+msgstr "Sposta"
+
+#: AppGUI/MainGUI.py:1084
+msgid "Snap to grid"
+msgstr "Aggancia alla griglia"
+
+#: AppGUI/MainGUI.py:1087
+msgid "Grid X snapping distance"
+msgstr "Distanza aggancio gliglia X"
+
+#: AppGUI/MainGUI.py:1092
+msgid "Grid Y snapping distance"
+msgstr "Distanza aggancio gliglia Y"
+
+#: AppGUI/MainGUI.py:1098
+msgid ""
+"When active, value on Grid_X\n"
+"is copied to the Grid_Y value."
+msgstr ""
+"Se attivo, valore su Grid_X\n"
+"sarà copiato nel valore Grid_Y."
+
+#: AppGUI/MainGUI.py:1105
+msgid "Snap to corner"
+msgstr "Aggancia all'angolo"
+
+#: AppGUI/MainGUI.py:1109 AppGUI/preferences/general/GeneralAPPSetGroupUI.py:78
+msgid "Max. magnet distance"
+msgstr "Massima distanza magnete"
+
+#: AppGUI/MainGUI.py:1134 AppGUI/MainGUI.py:1379 App_Main.py:7543
+msgid "Project"
+msgstr "Progetto"
+
+#: AppGUI/MainGUI.py:1149
+msgid "Selected"
+msgstr "Selezionato"
+
+#: AppGUI/MainGUI.py:1177 AppGUI/MainGUI.py:1185
+msgid "Plot Area"
+msgstr "Area Grafica"
+
+#: AppGUI/MainGUI.py:1212
+msgid "General"
+msgstr "Generale"
+
+#: AppGUI/MainGUI.py:1227 AppTools/ToolCopperThieving.py:74
+#: AppTools/ToolCorners.py:55 AppTools/ToolDblSided.py:64
+#: AppTools/ToolEtchCompensation.py:72 AppTools/ToolExtractDrills.py:61
+#: AppTools/ToolInvertGerber.py:72 AppTools/ToolOptimal.py:71
+#: AppTools/ToolPunchGerber.py:64
+msgid "GERBER"
+msgstr "GERBER"
+
+#: AppGUI/MainGUI.py:1237 AppTools/ToolDblSided.py:92
+msgid "EXCELLON"
+msgstr "EXCELLON"
+
+#: AppGUI/MainGUI.py:1247 AppTools/ToolDblSided.py:120
+msgid "GEOMETRY"
+msgstr "GEOMETRIA"
+
+#: AppGUI/MainGUI.py:1257
+msgid "CNC-JOB"
+msgstr "CNC-JOB"
+
+#: AppGUI/MainGUI.py:1266 AppGUI/ObjectUI.py:563 AppGUI/ObjectUI.py:2262
+msgid "TOOLS"
+msgstr "UTENSILI"
+
+#: AppGUI/MainGUI.py:1275
+msgid "TOOLS 2"
+msgstr "UTENSILI 2"
+
+#: AppGUI/MainGUI.py:1285
+msgid "UTILITIES"
+msgstr "UTILITA'"
+
+#: AppGUI/MainGUI.py:1302
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:192
+msgid "Restore Defaults"
+msgstr "Ripristina Defaults"
+
+#: AppGUI/MainGUI.py:1305
+msgid ""
+"Restore the entire set of default values\n"
+"to the initial values loaded after first launch."
+msgstr ""
+"Ripristina l'intero set di valori predefiniti\n"
+"ai valori iniziali caricati dopo il primo avvio."
+
+#: AppGUI/MainGUI.py:1310
+msgid "Open Pref Folder"
+msgstr "Aprii cartella preferenze"
+
+#: AppGUI/MainGUI.py:1313
+msgid "Open the folder where FlatCAM save the preferences files."
+msgstr "Apri la cartella dove FlatCAM salva il file delle preferenze."
+
+#: AppGUI/MainGUI.py:1317 AppGUI/MainGUI.py:1804
+msgid "Clear GUI Settings"
+msgstr "Pulisci impostazioni GUI"
+
+#: AppGUI/MainGUI.py:1321
+msgid ""
+"Clear the GUI settings for FlatCAM,\n"
+"such as: layout, gui state, style, hdpi support etc."
+msgstr ""
+"Cancella le impostazioni della GUI per FlatCAM,\n"
+"come: layout, stato gui, stile, supporto hdpi ecc."
+
+#: AppGUI/MainGUI.py:1332
+msgid "Apply"
+msgstr "Applica"
+
+#: AppGUI/MainGUI.py:1335
+msgid "Apply the current preferences without saving to a file."
+msgstr "Applica le impostazioni correnti senza salvarle su file."
+
+#: AppGUI/MainGUI.py:1342
+msgid ""
+"Save the current settings in the 'current_defaults' file\n"
+"which is the file storing the working default preferences."
+msgstr ""
+"Salva le impostazioni correnti nel file \"current_defaults\",\n"
+"file che memorizza le preferenze predefinite di lavoro."
+
+#: AppGUI/MainGUI.py:1350
+msgid "Will not save the changes and will close the preferences window."
+msgstr "Non salverà le modifiche e chiuderà la finestra delle preferenze."
+
+#: AppGUI/MainGUI.py:1364
+msgid "Toggle Visibility"
+msgstr "(Dis)abilita visibilità"
+
+#: AppGUI/MainGUI.py:1370
+msgid "New"
+msgstr "Nuovo"
+
+#: AppGUI/MainGUI.py:1372 AppGUI/ObjectUI.py:450
+#: AppObjects/FlatCAMGerber.py:239 AppObjects/FlatCAMGerber.py:327
+#: AppTools/ToolCalibration.py:631 AppTools/ToolCalibration.py:648
+#: AppTools/ToolCalibration.py:815 AppTools/ToolCopperThieving.py:144
+#: AppTools/ToolCopperThieving.py:158 AppTools/ToolCopperThieving.py:604
+#: AppTools/ToolCutOut.py:92 AppTools/ToolDblSided.py:226
+#: AppTools/ToolFilm.py:69 AppTools/ToolFilm.py:92 AppTools/ToolImage.py:49
+#: AppTools/ToolImage.py:271 AppTools/ToolNCC.py:95 AppTools/ToolNCC.py:558
+#: AppTools/ToolNCC.py:1300 AppTools/ToolPaint.py:501 AppTools/ToolPaint.py:705
+#: AppTools/ToolPanelize.py:116 AppTools/ToolPanelize.py:385
+#: AppTools/ToolPanelize.py:402
+msgid "Geometry"
+msgstr "Geometria"
+
+#: AppGUI/MainGUI.py:1376
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:99
+#: AppTools/ToolAlignObjects.py:74 AppTools/ToolAlignObjects.py:110
+#: AppTools/ToolCalibration.py:197 AppTools/ToolCalibration.py:631
+#: AppTools/ToolCalibration.py:648 AppTools/ToolCalibration.py:807
+#: AppTools/ToolCalibration.py:815 AppTools/ToolCopperThieving.py:144
+#: AppTools/ToolCopperThieving.py:158 AppTools/ToolCopperThieving.py:604
+#: AppTools/ToolDblSided.py:225 AppTools/ToolFilm.py:342
+#: AppTools/ToolNCC.py:558 AppTools/ToolNCC.py:1300 AppTools/ToolPaint.py:501
+#: AppTools/ToolPaint.py:705 AppTools/ToolPanelize.py:385
+#: AppTools/ToolPunchGerber.py:149 AppTools/ToolPunchGerber.py:164
+msgid "Excellon"
+msgstr "Excellon"
+
+#: AppGUI/MainGUI.py:1383
+msgid "Grids"
+msgstr "Griglie"
+
+#: AppGUI/MainGUI.py:1390
+msgid "Clear Plot"
+msgstr "Svuota Plot"
+
+#: AppGUI/MainGUI.py:1392
+msgid "Replot"
+msgstr "Ridisegna"
+
+#: AppGUI/MainGUI.py:1396
+msgid "Geo Editor"
+msgstr "Edito geometria"
+
+#: AppGUI/MainGUI.py:1398
+msgid "Path"
+msgstr "Percorso"
+
+#: AppGUI/MainGUI.py:1400
+msgid "Rectangle"
+msgstr "Rettangolo"
+
+#: AppGUI/MainGUI.py:1403
+msgid "Circle"
+msgstr "Cerchio"
+
+#: AppGUI/MainGUI.py:1407
+msgid "Arc"
+msgstr "Arco"
+
+#: AppGUI/MainGUI.py:1421
+msgid "Union"
+msgstr "Unione"
+
+#: AppGUI/MainGUI.py:1423
+msgid "Intersection"
+msgstr "Intersezione"
+
+#: AppGUI/MainGUI.py:1425
+msgid "Subtraction"
+msgstr "Sottrazione"
+
+#: AppGUI/MainGUI.py:1427 AppGUI/ObjectUI.py:2351
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:56
+msgid "Cut"
+msgstr "Taglia"
+
+#: AppGUI/MainGUI.py:1438
+msgid "Pad"
+msgstr "Pad"
+
+#: AppGUI/MainGUI.py:1440
+msgid "Pad Array"
+msgstr "Matrice di Pad"
+
+#: AppGUI/MainGUI.py:1444
+msgid "Track"
+msgstr "Traccia"
+
+#: AppGUI/MainGUI.py:1446
+msgid "Region"
+msgstr "RegioneRegione"
+
+#: AppGUI/MainGUI.py:1469
+msgid "Exc Editor"
+msgstr "Editor Excellon"
+
+#: AppGUI/MainGUI.py:1471 AppGUI/MainGUI.py:4310
+msgid "Add Drill"
+msgstr "Aggiungi foro"
+
+#: AppGUI/MainGUI.py:1491 App_Main.py:2198
+msgid "Close Editor"
+msgstr "Chiudi Editor"
+
+#: AppGUI/MainGUI.py:1516
+msgid ""
+"Absolute measurement.\n"
+"Reference is (X=0, Y= 0) position"
+msgstr ""
+"Misure relative.\n"
+"Il riferimento è la posizione (X=0, Y=0)"
+
+#: AppGUI/MainGUI.py:1523
+msgid "HUD (Heads up display)"
+msgstr ""
+
+#: AppGUI/MainGUI.py:1622
+msgid "Lock Toolbars"
+msgstr "Strumenti di blocco"
+
+#: AppGUI/MainGUI.py:1792
+msgid "FlatCAM Preferences Folder opened."
+msgstr "Cartella preferenze FlatCAM aperta."
+
+#: AppGUI/MainGUI.py:1803
+msgid "Are you sure you want to delete the GUI Settings? \n"
+msgstr "Sicuro di voler cancellare le impostazioni GUI?\n"
+
+#: AppGUI/MainGUI.py:1806 AppGUI/preferences/PreferencesUIManager.py:941
+#: AppGUI/preferences/PreferencesUIManager.py:1179 AppTranslation.py:109
+#: AppTranslation.py:206 App_Main.py:2201 App_Main.py:3052 App_Main.py:5276
+#: App_Main.py:6336
+msgid "Yes"
+msgstr "Sì"
+
+#: AppGUI/MainGUI.py:1807 AppGUI/preferences/PreferencesUIManager.py:1180
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:164
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:150
+#: AppTools/ToolNCC.py:182 AppTools/ToolPaint.py:165 AppTranslation.py:110
+#: AppTranslation.py:207 App_Main.py:2202 App_Main.py:3053 App_Main.py:5277
+#: App_Main.py:6337
+msgid "No"
+msgstr "No"
+
+#: AppGUI/MainGUI.py:1906
+msgid "&Cutout Tool"
+msgstr "Strumento Ritaglia"
+
+#: AppGUI/MainGUI.py:1980
+msgid "Select 'Esc'"
+msgstr "Seleziona 'Esc'"
+
+#: AppGUI/MainGUI.py:2018
+msgid "Copy Objects"
+msgstr "Copia oggetti"
+
+#: AppGUI/MainGUI.py:2020 AppGUI/MainGUI.py:4230
+msgid "Delete Shape"
+msgstr "Cancella forma"
+
+#: AppGUI/MainGUI.py:2026
+msgid "Move Objects"
+msgstr "Sposta oggetti"
+
+#: AppGUI/MainGUI.py:2610
+msgid ""
+"Please first select a geometry item to be cutted\n"
+"then select the geometry item that will be cutted\n"
+"out of the first item. In the end press ~X~ key or\n"
+"the toolbar button."
+msgstr ""
+"Seleziona prima un elemento di geometria da tagliare\n"
+"quindi seleziona l'elemento della geometria che verrà tagliato\n"
+"dal primo elemento. Alla fine premere il tasto ~ X ~ o\n"
+"il pulsante della barra degli strumenti."
+
+#: AppGUI/MainGUI.py:2617 AppGUI/MainGUI.py:2779 AppGUI/MainGUI.py:2824
+#: AppGUI/MainGUI.py:2844
+msgid "Warning"
+msgstr "Avvertenza"
+
+#: AppGUI/MainGUI.py:2774
+msgid ""
+"Please select geometry items \n"
+"on which to perform Intersection Tool."
+msgstr ""
+"Seleziona gli elementi della geometria\n"
+"su cui eseguire lo strumento Intersezione."
+
+#: AppGUI/MainGUI.py:2819
+msgid ""
+"Please select geometry items \n"
+"on which to perform Substraction Tool."
+msgstr ""
+"Seleziona gli elementi della geometria\n"
+"su cui eseguire lo strumento Sottrazione."
+
+#: AppGUI/MainGUI.py:2839
+msgid ""
+"Please select geometry items \n"
+"on which to perform union."
+msgstr ""
+"Seleziona gli elementi della geometria\n"
+"su cui eseguire lo strumento Unione."
+
+#: AppGUI/MainGUI.py:2922 AppGUI/MainGUI.py:3137
+msgid "Cancelled. Nothing selected to delete."
+msgstr "Cancellato. Nessuna seleziona da cancellare."
+
+#: AppGUI/MainGUI.py:3006 AppGUI/MainGUI.py:3253
+msgid "Cancelled. Nothing selected to copy."
+msgstr "Cancellato. Nessuna seleziona da copiare."
+
+#: AppGUI/MainGUI.py:3052 AppGUI/MainGUI.py:3282
+msgid "Cancelled. Nothing selected to move."
+msgstr "Cancellato. Nessuna seleziona da spostare."
+
+#: AppGUI/MainGUI.py:3308
+msgid "New Tool ..."
+msgstr "Nuovo utensile ..."
+
+#: AppGUI/MainGUI.py:3309 AppTools/ToolNCC.py:924 AppTools/ToolPaint.py:849
+#: AppTools/ToolSolderPaste.py:560
+msgid "Enter a Tool Diameter"
+msgstr "Diametro utensile"
+
+#: AppGUI/MainGUI.py:3321
+msgid "Adding Tool cancelled ..."
+msgstr "Aggiunta utensile annullata ..."
+
+#: AppGUI/MainGUI.py:3335
+msgid "Distance Tool exit..."
+msgstr "Uscita dallo strumento Distanza..."
+
+#: AppGUI/MainGUI.py:3514 App_Main.py:3042
+msgid "Application is saving the project. Please wait ..."
+msgstr "L'applicazione sta salvando il progetto. Attendere ..."
+
+#: AppGUI/MainGUI.py:3649 App_Main.py:9059
+msgid "Shortcut Key List"
+msgstr "Elenco tasti scorciatoia"
+
+#: AppGUI/MainGUI.py:4010
+#, fuzzy
+#| msgid "Key Shortcut List"
+msgid "General Shortcut list"
+msgstr "Lista tasti Shortcuts"
+
+#: AppGUI/MainGUI.py:4011
+msgid "SHOW SHORTCUT LIST"
+msgstr "Lista tasti Shortcuts"
+
+#: AppGUI/MainGUI.py:4011
+msgid "Switch to Project Tab"
+msgstr "Vai alla Tab Progetto"
+
+#: AppGUI/MainGUI.py:4011
+msgid "Switch to Selected Tab"
+msgstr "Vai alla Tab Seleziona"
+
+#: AppGUI/MainGUI.py:4012
+msgid "Switch to Tool Tab"
+msgstr "Vai alla Tab Strumenti"
+
+#: AppGUI/MainGUI.py:4013
+msgid "New Gerber"
+msgstr "Nuovo Gerber"
+
+#: AppGUI/MainGUI.py:4013
+msgid "Edit Object (if selected)"
+msgstr "Modifica oggetto (se selezionato)"
+
+#: AppGUI/MainGUI.py:4013 App_Main.py:5581
+msgid "Grid On/Off"
+msgstr "Griglia On/Off"
+
+#: AppGUI/MainGUI.py:4013
+msgid "Jump to Coordinates"
+msgstr "Vai alle coordinate"
+
+#: AppGUI/MainGUI.py:4014
+msgid "New Excellon"
+msgstr "Nuovo Excellon"
+
+#: AppGUI/MainGUI.py:4014
+msgid "Move Obj"
+msgstr "Sposta Oggetto"
+
+#: AppGUI/MainGUI.py:4014
+msgid "New Geometry"
+msgstr "Nuova Geometria"
+
+#: AppGUI/MainGUI.py:4014
+msgid "Change Units"
+msgstr "Cambia unità"
+
+#: AppGUI/MainGUI.py:4015
+msgid "Open Properties Tool"
+msgstr "Apri Strumento Proprietà"
+
+#: AppGUI/MainGUI.py:4015
+msgid "Rotate by 90 degree CW"
+msgstr "Ruota di 90 gradi orari"
+
+#: AppGUI/MainGUI.py:4015
+msgid "Shell Toggle"
+msgstr "Attiva/Disattiva Shell"
+
+#: AppGUI/MainGUI.py:4016
+msgid ""
+"Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)"
+msgstr ""
+"Aggiungi utensile (in Tab Geometrie selezionate o in NCC o Strumento Paint)"
+
+#: AppGUI/MainGUI.py:4017
+msgid "Flip on X_axis"
+msgstr "Capovolsi sull'asse X"
+
+#: AppGUI/MainGUI.py:4017
+msgid "Flip on Y_axis"
+msgstr "Capovolsi sull'asse Y"
+
+#: AppGUI/MainGUI.py:4020
+msgid "Copy Obj"
+msgstr "Copia Oggetto"
+
+#: AppGUI/MainGUI.py:4020
+msgid "Open Tools Database"
+msgstr "Apri DataBase Utensili"
+
+#: AppGUI/MainGUI.py:4021
+msgid "Open Excellon File"
+msgstr "Apri file Excellon"
+
+#: AppGUI/MainGUI.py:4021
+msgid "Open Gerber File"
+msgstr "Apri file Gerber"
+
+#: AppGUI/MainGUI.py:4021
+msgid "New Project"
+msgstr "Nuovo Progetto"
+
+#: AppGUI/MainGUI.py:4022 App_Main.py:6626 App_Main.py:6629
+msgid "Open Project"
+msgstr "Apri progetto"
+
+#: AppGUI/MainGUI.py:4022 AppTools/ToolPDF.py:41
+msgid "PDF Import Tool"
+msgstr "Strumento importazione PDF"
+
+#: AppGUI/MainGUI.py:4022
+msgid "Save Project"
+msgstr "Salva progetto"
+
+#: AppGUI/MainGUI.py:4022
+msgid "Toggle Plot Area"
+msgstr "Attiva/disattiva Area disegno"
+
+#: AppGUI/MainGUI.py:4025
+msgid "Copy Obj_Name"
+msgstr "Copia Nome Oggetto"
+
+#: AppGUI/MainGUI.py:4026
+msgid "Toggle Code Editor"
+msgstr "Attiva/Disattiva Editor codice"
+
+#: AppGUI/MainGUI.py:4026
+msgid "Toggle the axis"
+msgstr "Commuta assi"
+
+#: AppGUI/MainGUI.py:4026 AppGUI/MainGUI.py:4225 AppGUI/MainGUI.py:4312
+#: AppGUI/MainGUI.py:4434
+msgid "Distance Minimum Tool"
+msgstr "Strumento distanza minima"
+
+#: AppGUI/MainGUI.py:4027
+msgid "Open Preferences Window"
+msgstr "Apri finestra preferenze"
+
+#: AppGUI/MainGUI.py:4028
+msgid "Rotate by 90 degree CCW"
+msgstr "Ruota 90 gradi antiorari"
+
+#: AppGUI/MainGUI.py:4028
+msgid "Run a Script"
+msgstr "Esegui Script"
+
+#: AppGUI/MainGUI.py:4028
+msgid "Toggle the workspace"
+msgstr "(Dis)abilita area di lavoro"
+
+#: AppGUI/MainGUI.py:4028
+msgid "Skew on X axis"
+msgstr "Inclina sull'asse X"
+
+#: AppGUI/MainGUI.py:4029
+msgid "Skew on Y axis"
+msgstr "Inclina sull'asse Y"
+
+#: AppGUI/MainGUI.py:4032
+msgid "2-Sided PCB Tool"
+msgstr "Strumento PCB doppia faccia"
+
+#: AppGUI/MainGUI.py:4032
+msgid "Transformations Tool"
+msgstr "Strumento Trasformazioni"
+
+#: AppGUI/MainGUI.py:4034
+msgid "Solder Paste Dispensing Tool"
+msgstr "Strumento dispensa solder paste"
+
+#: AppGUI/MainGUI.py:4035
+msgid "Film PCB Tool"
+msgstr "Strumento Film PCB"
+
+#: AppGUI/MainGUI.py:4035
+msgid "Non-Copper Clearing Tool"
+msgstr "Strumento No Copper Clearing (No Rame)"
+
+#: AppGUI/MainGUI.py:4036
+msgid "Paint Area Tool"
+msgstr "Strumento disegna area"
+
+#: AppGUI/MainGUI.py:4036
+msgid "Rules Check Tool"
+msgstr "Strumento controllo regole"
+
+#: AppGUI/MainGUI.py:4037
+msgid "View File Source"
+msgstr "Vedi file sorgente"
+
+#: AppGUI/MainGUI.py:4038
+msgid "Cutout PCB Tool"
+msgstr "Strumento ritaglia PCB"
+
+#: AppGUI/MainGUI.py:4038
+msgid "Enable all Plots"
+msgstr "Abilita tutti i plot"
+
+#: AppGUI/MainGUI.py:4038
+msgid "Disable all Plots"
+msgstr "Disabilita tutti i plot"
+
+#: AppGUI/MainGUI.py:4038
+msgid "Disable Non-selected Plots"
+msgstr "Disabilita i plot non selezionati"
+
+#: AppGUI/MainGUI.py:4039
+msgid "Toggle Full Screen"
+msgstr "(Dis)abilita schermo intero"
+
+#: AppGUI/MainGUI.py:4042
+msgid "Abort current task (gracefully)"
+msgstr "Annulla l'azione corrente"
+
+#: AppGUI/MainGUI.py:4045
+msgid "Save Project As"
+msgstr "Salva Progetto con nome"
+
+#: AppGUI/MainGUI.py:4046
+msgid ""
+"Paste Special. Will convert a Windows path style to the one required in Tcl "
+"Shell"
+msgstr ""
+"Incolla speciale. Converte uno stile di percorso Windows in quello richiesto "
+"in Tcl Shell"
+
+#: AppGUI/MainGUI.py:4049
+msgid "Open Online Manual"
+msgstr "Apri manuale online"
+
+#: AppGUI/MainGUI.py:4050
+msgid "Open Online Tutorials"
+msgstr "Apri tutorial online"
+
+#: AppGUI/MainGUI.py:4050
+msgid "Refresh Plots"
+msgstr "Aggiorna plot"
+
+#: AppGUI/MainGUI.py:4050 AppTools/ToolSolderPaste.py:509
+msgid "Delete Object"
+msgstr "Cancella oggetto"
+
+#: AppGUI/MainGUI.py:4050
+msgid "Alternate: Delete Tool"
+msgstr "Alternativo: strumento elimina"
+
+#: AppGUI/MainGUI.py:4051
+msgid "(left to Key_1)Toggle Notebook Area (Left Side)"
+msgstr "(da sinistra a Key_1) (Dis)attiva area blocco note (lato sinistro)"
+
+#: AppGUI/MainGUI.py:4051
+msgid "En(Dis)able Obj Plot"
+msgstr "(Dis)abilita il plot degli oggetti"
+
+#: AppGUI/MainGUI.py:4052
+msgid "Deselects all objects"
+msgstr "Deseleziona oggetti"
+
+#: AppGUI/MainGUI.py:4066
+msgid "Editor Shortcut list"
+msgstr "Lista shortcut dell'editor"
+
+#: AppGUI/MainGUI.py:4220
+msgid "GEOMETRY EDITOR"
+msgstr "EDITOR GEOMETRIE"
+
+#: AppGUI/MainGUI.py:4220
+msgid "Draw an Arc"
+msgstr "Disegna un arco"
+
+#: AppGUI/MainGUI.py:4220
+msgid "Copy Geo Item"
+msgstr "Copia elemento Geometria"
+
+#: AppGUI/MainGUI.py:4221
+msgid "Within Add Arc will toogle the ARC direction: CW or CCW"
+msgstr ""
+"All'interno di Aggiungi arco verrà visualizzata la direzione: oraria CW o "
+"antioraria CCW"
+
+#: AppGUI/MainGUI.py:4221
+msgid "Polygon Intersection Tool"
+msgstr "Strumento intersezione poligoni"
+
+#: AppGUI/MainGUI.py:4222
+msgid "Geo Paint Tool"
+msgstr "Strumento disegno geometria"
+
+#: AppGUI/MainGUI.py:4222 AppGUI/MainGUI.py:4311 AppGUI/MainGUI.py:4431
+msgid "Jump to Location (x, y)"
+msgstr "Vai alla posizione (x, y)"
+
+#: AppGUI/MainGUI.py:4222
+msgid "Toggle Corner Snap"
+msgstr "(Dis)abilita l'aggancio agli angoli"
+
+#: AppGUI/MainGUI.py:4222
+msgid "Move Geo Item"
+msgstr "Sposta elemento Geometria"
+
+#: AppGUI/MainGUI.py:4223
+msgid "Within Add Arc will cycle through the ARC modes"
+msgstr "All'interno di Aggiungi arco verranno scorse le modalità degli archi"
+
+#: AppGUI/MainGUI.py:4223
+msgid "Draw a Polygon"
+msgstr "Disegna un poligono"
+
+#: AppGUI/MainGUI.py:4223
+msgid "Draw a Circle"
+msgstr "Disegna un cerchio"
+
+#: AppGUI/MainGUI.py:4224
+msgid "Draw a Path"
+msgstr "Disegna un persorso"
+
+#: AppGUI/MainGUI.py:4224
+msgid "Draw Rectangle"
+msgstr "Disegna un rettangolo"
+
+#: AppGUI/MainGUI.py:4224
+msgid "Polygon Subtraction Tool"
+msgstr "Strumento sottrazione poligono"
+
+#: AppGUI/MainGUI.py:4224
+msgid "Add Text Tool"
+msgstr "Strumento aggiungi testo"
+
+#: AppGUI/MainGUI.py:4225
+msgid "Polygon Union Tool"
+msgstr "Strumento unisci poligono"
+
+#: AppGUI/MainGUI.py:4225
+msgid "Flip shape on X axis"
+msgstr "Ribalta forme sull'asse X"
+
+#: AppGUI/MainGUI.py:4225
+msgid "Flip shape on Y axis"
+msgstr "Ribalta forme sull'asse Y"
+
+#: AppGUI/MainGUI.py:4226
+msgid "Skew shape on X axis"
+msgstr "Inclina forme sull'asse X"
+
+#: AppGUI/MainGUI.py:4226
+msgid "Skew shape on Y axis"
+msgstr "Inclina forme sull'asse Y"
+
+#: AppGUI/MainGUI.py:4226
+msgid "Editor Transformation Tool"
+msgstr "Strumento Edito trasformazione"
+
+#: AppGUI/MainGUI.py:4227
+msgid "Offset shape on X axis"
+msgstr "Applica offset alle forme sull'asse X"
+
+#: AppGUI/MainGUI.py:4227
+msgid "Offset shape on Y axis"
+msgstr "Applica offset alle forme sull'asse Y"
+
+#: AppGUI/MainGUI.py:4228 AppGUI/MainGUI.py:4314 AppGUI/MainGUI.py:4436
+msgid "Save Object and Exit Editor"
+msgstr "Salva oggetto ed esci dall'Editor"
+
+#: AppGUI/MainGUI.py:4228
+msgid "Polygon Cut Tool"
+msgstr "Strumento taglia poligono"
+
+#: AppGUI/MainGUI.py:4229
+msgid "Rotate Geometry"
+msgstr "Ruota Geometria"
+
+#: AppGUI/MainGUI.py:4229
+msgid "Finish drawing for certain tools"
+msgstr "Completa disegno per alcuni utensili"
+
+#: AppGUI/MainGUI.py:4229 AppGUI/MainGUI.py:4314 AppGUI/MainGUI.py:4434
+msgid "Abort and return to Select"
+msgstr "Annulla e torna a Seleziona"
+
+#: AppGUI/MainGUI.py:4310
+msgid "EXCELLON EDITOR"
+msgstr "EDITOR EXCELLON"
+
+#: AppGUI/MainGUI.py:4310
+msgid "Copy Drill(s)"
+msgstr "Copia foro(i)"
+
+#: AppGUI/MainGUI.py:4311
+msgid "Move Drill(s)"
+msgstr "Sposta foro(i)"
+
+#: AppGUI/MainGUI.py:4312
+msgid "Add a new Tool"
+msgstr "Aggiungi un nuovo TOOL"
+
+#: AppGUI/MainGUI.py:4313
+msgid "Delete Drill(s)"
+msgstr "Cancella foro(i)"
+
+#: AppGUI/MainGUI.py:4313
+msgid "Alternate: Delete Tool(s)"
+msgstr "Alternativo: strumenti di cancellazione"
+
+#: AppGUI/MainGUI.py:4430
+msgid "GERBER EDITOR"
+msgstr "EDITOR GERBER"
+
+#: AppGUI/MainGUI.py:4430
+msgid "Add Disc"
+msgstr "Aggiungi disco"
+
+#: AppGUI/MainGUI.py:4430
+msgid "Add SemiDisc"
+msgstr "Aggiungi semidisco"
+
+#: AppGUI/MainGUI.py:4432
+msgid "Within Track & Region Tools will cycle in REVERSE the bend modes"
+msgstr ""
+"All'interno dello strumento Tracce & Regioni le modalità piegature "
+"scorreranno all'indietro"
+
+#: AppGUI/MainGUI.py:4433
+msgid "Within Track & Region Tools will cycle FORWARD the bend modes"
+msgstr ""
+"All'interno dello strumento Tracce & Regioni le modalità piegature "
+"scorreranno in avanti"
+
+#: AppGUI/MainGUI.py:4434
+msgid "Alternate: Delete Apertures"
+msgstr "Alternativo: cancella aperture"
+
+#: AppGUI/MainGUI.py:4435
+msgid "Eraser Tool"
+msgstr "Strumento cancella"
+
+#: AppGUI/MainGUI.py:4436
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:220
+msgid "Mark Area Tool"
+msgstr "Strumento marca area"
+
+#: AppGUI/MainGUI.py:4436
+msgid "Poligonize Tool"
+msgstr "Strumento Poligonizza"
+
+#: AppGUI/MainGUI.py:4436
+msgid "Transformation Tool"
+msgstr "Strumento trasformazione"
+
+#: AppGUI/ObjectUI.py:38
+msgid "FlatCAM Object"
+msgstr "Oggetto FlatCAM"
+
+#: AppGUI/ObjectUI.py:78
+msgid ""
+"BASIC is suitable for a beginner. Many parameters\n"
+"are hidden from the user in this mode.\n"
+"ADVANCED mode will make available all parameters.\n"
+"\n"
+"To change the application LEVEL, go to:\n"
+"Edit -> Preferences -> General and check:\n"
+"'APP. LEVEL' radio button."
+msgstr ""
+"BASIC è adatto per un principiante. Molti parametri\n"
+"sono nascosti all'utente in questa modalità.\n"
+"La modalità AVANZATA renderà disponibili tutti i parametri.\n"
+"\n"
+"Per modificare il LIVELLO dell'applicazione, vai su:\n"
+"Modifica -> Preferenze -> Generale e seleziona:\n"
+"il pulsante 'APP. Livello'."
+
+#: AppGUI/ObjectUI.py:111
+msgid "Geometrical transformations of the current object."
+msgstr "Trasformazioni geometriche dell'oggetto corrente."
+
+#: AppGUI/ObjectUI.py:120
+msgid ""
+"Factor by which to multiply\n"
+"geometric features of this object.\n"
+"Expressions are allowed. E.g: 1/25.4"
+msgstr ""
+"Fattore per cui moltiplicare\n"
+"le feature geometriche dell'oggetto.\n"
+"Sono permesse espressioni. Es: 1/25.4"
+
+#: AppGUI/ObjectUI.py:127
+msgid "Perform scaling operation."
+msgstr "Esegui azione di riscalatura."
+
+#: AppGUI/ObjectUI.py:138
+msgid ""
+"Amount by which to move the object\n"
+"in the x and y axes in (x, y) format.\n"
+"Expressions are allowed. E.g: (1/3.2, 0.5*3)"
+msgstr ""
+"Quantità per cui muovere l'oggetto\n"
+"negli assi X ed Y nel formato (x,y).\n"
+"Sono permesse espressioni. Es: (1/3.2,0.5*3)"
+
+#: AppGUI/ObjectUI.py:145
+msgid "Perform the offset operation."
+msgstr "Esegui l'operazione offset."
+
+#: AppGUI/ObjectUI.py:157 AppGUI/ObjectUI.py:164 AppTool.py:281 AppTool.py:287
+msgid "Edited value is out of range"
+msgstr "Il valore modificato è fuori range"
+
+#: AppGUI/ObjectUI.py:159 AppGUI/ObjectUI.py:166 AppTool.py:283 AppTool.py:289
+msgid "Edited value is within limits."
+msgstr "Il valore editato è entro i limiti."
+
+#: AppGUI/ObjectUI.py:178
+msgid "Gerber Object"
+msgstr "Oggetto Gerber"
+
+#: AppGUI/ObjectUI.py:187 AppGUI/ObjectUI.py:730 AppGUI/ObjectUI.py:1528
+#: AppGUI/ObjectUI.py:2335 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:30
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:33
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:31
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:31
+msgid "Plot Options"
+msgstr "Opzioni disegno"
+
+#: AppGUI/ObjectUI.py:193 AppGUI/ObjectUI.py:731
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:45
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:38
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119
+#: AppTools/ToolCopperThieving.py:191
+msgid "Solid"
+msgstr "Solido"
+
+#: AppGUI/ObjectUI.py:195 AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:40
+msgid "Solid color polygons."
+msgstr "Poligono colore pieno."
+
+#: AppGUI/ObjectUI.py:201
+msgid "Multi-Color"
+msgstr "Multi-Colore"
+
+#: AppGUI/ObjectUI.py:203 AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:47
+msgid "Draw polygons in different colors."
+msgstr "Disegna poligoni in colori diversi."
+
+#: AppGUI/ObjectUI.py:209 AppGUI/ObjectUI.py:769
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:39
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:35
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:52
+msgid "Plot"
+msgstr "Disegna"
+
+#: AppGUI/ObjectUI.py:211 AppGUI/ObjectUI.py:771 AppGUI/ObjectUI.py:1588
+#: AppGUI/ObjectUI.py:2445 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:41
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:37
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:54
+msgid "Plot (show) this object."
+msgstr "Disegna (mostra) questo oggetto."
+
+#: AppGUI/ObjectUI.py:239
+msgid ""
+"Toggle the display of the Gerber Apertures Table.\n"
+"When unchecked, it will delete all mark shapes\n"
+"that are drawn on canvas."
+msgstr ""
+"(Dis)attiva la visualizzazione della tabella delle aperture del Gerber.\n"
+"Se deselezionato, eliminerà tutte le forme dei segni disegnati."
+
+#: AppGUI/ObjectUI.py:249
+msgid "Mark All"
+msgstr "Marchia tutto"
+
+#: AppGUI/ObjectUI.py:251
+msgid ""
+"When checked it will display all the apertures.\n"
+"When unchecked, it will delete all mark shapes\n"
+"that are drawn on canvas."
+msgstr ""
+"Se selezionato, mostrerà tutte le aperture.\n"
+"Se deselezionato, eliminerà tutte le forme disegnati."
+
+#: AppGUI/ObjectUI.py:279
+msgid "Mark the aperture instances on canvas."
+msgstr "Marchia le aperture."
+
+#: AppGUI/ObjectUI.py:291 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:32
+msgid "Isolation Routing"
+msgstr "Percorso di isolamento"
+
+#: AppGUI/ObjectUI.py:293 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:34
+msgid ""
+"Create a Geometry object with\n"
+"toolpaths to cut outside polygons."
+msgstr ""
+"Crea un oggetto Geometria con\n"
+"percorsi utensile per tagliare esternamente i poligoni."
+
+#: AppGUI/ObjectUI.py:311
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:69
+msgid ""
+"Choose which tool to use for Gerber isolation:\n"
+"'Circular' or 'V-shape'.\n"
+"When the 'V-shape' is selected then the tool\n"
+"diameter will depend on the chosen cut depth."
+msgstr ""
+"Scegli quale strumento utilizzare per l'isolamento Gerber:\n"
+"'Circolare' o 'a V'.\n"
+"Quando è selezionata la forma 'a V', il diametro\n"
+"dell'utensile dipenderà dalla profondità di taglio scelta."
+
+#: AppGUI/ObjectUI.py:317
+msgid "V-Shape"
+msgstr "Punta a V"
+
+#: AppGUI/ObjectUI.py:323 AppGUI/ObjectUI.py:1774
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:81
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:72
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:78
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:85 AppTools/ToolNCC.py:233
+#: AppTools/ToolNCC.py:240 AppTools/ToolPaint.py:215
+msgid "V-Tip Dia"
+msgstr "Diametro punta a V"
+
+#: AppGUI/ObjectUI.py:325 AppGUI/ObjectUI.py:1777
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:83
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:74
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:80 AppTools/ToolNCC.py:235
+#: AppTools/ToolPaint.py:217
+msgid "The tip diameter for V-Shape Tool"
+msgstr "Il diametro sulla punta dell'utensile a V"
+
+#: AppGUI/ObjectUI.py:336 AppGUI/ObjectUI.py:1789
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:94
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:84
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:91
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:99 AppTools/ToolNCC.py:246
+#: AppTools/ToolNCC.py:254 AppTools/ToolPaint.py:228
+msgid "V-Tip Angle"
+msgstr "Angolo punta a V"
+
+#: AppGUI/ObjectUI.py:338 AppGUI/ObjectUI.py:1792
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:96
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:86
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:93 AppTools/ToolNCC.py:248
+#: AppTools/ToolPaint.py:230
+msgid ""
+"The tip angle for V-Shape Tool.\n"
+"In degree."
+msgstr ""
+"L'angolo alla punta dell'utensile a V\n"
+"In gradi."
+
+#: AppGUI/ObjectUI.py:352 AppGUI/ObjectUI.py:1808
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:50
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:109
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61
+#: AppObjects/FlatCAMGeometry.py:1229 AppTools/ToolCutOut.py:141
+msgid ""
+"Cutting depth (negative)\n"
+"below the copper surface."
+msgstr ""
+"Profondità di taglio (negativo)\n"
+"sotto la superficie del rame."
+
+#: AppGUI/ObjectUI.py:366
+msgid ""
+"Diameter of the cutting tool.\n"
+"If you want to have an isolation path\n"
+"inside the actual shape of the Gerber\n"
+"feature, use a negative value for\n"
+"this parameter."
+msgstr ""
+"Diametro dell'utensile da taglio.\n"
+"Se vuoi avere un percorso di isolamento\n"
+"all'interno della forma reale del Gerber,\n"
+"usa un valore negativo per questo parametro."
+
+#: AppGUI/ObjectUI.py:382 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:56
+msgid "# Passes"
+msgstr "# Passate"
+
+#: AppGUI/ObjectUI.py:384 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:58
+msgid ""
+"Width of the isolation gap in\n"
+"number (integer) of tool widths."
+msgstr ""
+"Larghezza della distanza di isolamento in\n"
+"numero (intero) di larghezze dell'utensile."
+
+#: AppGUI/ObjectUI.py:395 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:68
+msgid "Pass overlap"
+msgstr "Sovrapposizione passate"
+
+#: AppGUI/ObjectUI.py:397 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:70
+msgid "How much (percentage) of the tool width to overlap each tool pass."
+msgstr ""
+"Quanto (in frazione) della larghezza dell'utensile sarà sovrapposto ad ogni "
+"passaggio dell'utensile."
+
+#: AppGUI/ObjectUI.py:411
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:58
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:97
+msgid ""
+"Milling type:\n"
+"- climb / best for precision milling and to reduce tool usage\n"
+"- conventional / useful when there is no backlash compensation"
+msgstr ""
+"Tipo di fresatura:\n"
+"- salita / migliore per fresatura di precisione e riduzione dell'uso degli "
+"utensili\n"
+"- convenzionale / utile in assenza di compensazione del gioco"
+
+#: AppGUI/ObjectUI.py:421
+msgid "Combine"
+msgstr "Combinata"
+
+#: AppGUI/ObjectUI.py:423 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:109
+msgid "Combine all passes into one object"
+msgstr "Combina tutti i passaggi in un oggetto"
+
+#: AppGUI/ObjectUI.py:427
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:43
+msgid "\"Follow\""
+msgstr "\"Segui\""
+
+#: AppGUI/ObjectUI.py:428
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:45
+msgid ""
+"Generate a 'Follow' geometry.\n"
+"This means that it will cut through\n"
+"the middle of the trace."
+msgstr ""
+"Genera una geometria 'Segui'.\n"
+"Ciò significa che taglierà\n"
+"al centro della traccia."
+
+#: AppGUI/ObjectUI.py:434
+msgid "Except"
+msgstr "Eccetto"
+
+#: AppGUI/ObjectUI.py:437
+msgid ""
+"When the isolation geometry is generated,\n"
+"by checking this, the area of the object below\n"
+"will be subtracted from the isolation geometry."
+msgstr ""
+"Quando viene generata la geometria di isolamento,\n"
+"abilitandolo, l'area dell'oggetto in basso\n"
+"sarà sottratto dalla geometria di isolamento."
+
+#: AppGUI/ObjectUI.py:450
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:97
+#: AppObjects/FlatCAMGerber.py:239 AppObjects/FlatCAMGerber.py:327
+#: AppTools/ToolAlignObjects.py:73 AppTools/ToolAlignObjects.py:109
+#: AppTools/ToolCalibration.py:196 AppTools/ToolCalibration.py:631
+#: AppTools/ToolCalibration.py:648 AppTools/ToolCalibration.py:807
+#: AppTools/ToolCalibration.py:815 AppTools/ToolCopperThieving.py:144
+#: AppTools/ToolCopperThieving.py:158 AppTools/ToolCopperThieving.py:604
+#: AppTools/ToolCutOut.py:91 AppTools/ToolDblSided.py:224
+#: AppTools/ToolFilm.py:68 AppTools/ToolFilm.py:91 AppTools/ToolImage.py:49
+#: AppTools/ToolImage.py:252 AppTools/ToolImage.py:273 AppTools/ToolNCC.py:96
+#: AppTools/ToolNCC.py:558 AppTools/ToolNCC.py:1300 AppTools/ToolPaint.py:501
+#: AppTools/ToolPaint.py:705 AppTools/ToolPanelize.py:116
+#: AppTools/ToolPanelize.py:210 AppTools/ToolPanelize.py:385
+#: AppTools/ToolPanelize.py:402
+msgid "Gerber"
+msgstr "Gerber"
+
+#: AppGUI/ObjectUI.py:457 AppTools/ToolNCC.py:86 AppTools/ToolPaint.py:79
+msgid "Obj Type"
+msgstr "Tipo oggetto"
+
+#: AppGUI/ObjectUI.py:459
+msgid ""
+"Specify the type of object to be excepted from isolation.\n"
+"It can be of type: Gerber or Geometry.\n"
+"What is selected here will dictate the kind\n"
+"of objects that will populate the 'Object' combobox."
+msgstr ""
+"Specificare il tipo di oggetto da escludere dall'isolamento.\n"
+"Può essere di tipo: Gerber o Geometria.\n"
+"Ciò che è selezionato qui detterà il tipo\n"
+"di oggetti che popoleranno la casella 'Oggetto'."
+
+#: AppGUI/ObjectUI.py:472 AppGUI/ObjectUI.py:1324 AppGUI/ObjectUI.py:2158
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:48
+#: AppTools/ToolCalibration.py:186 AppTools/ToolNCC.py:109
+#: AppTools/ToolPaint.py:102 AppTools/ToolPanelize.py:98
+#: AppTools/ToolQRCode.py:78
+msgid "Object"
+msgstr "Oggetto"
+
+#: AppGUI/ObjectUI.py:473
+msgid "Object whose area will be removed from isolation geometry."
+msgstr "Oggetto la cui area verrà rimossa dalla geometria di isolamento."
+
+#: AppGUI/ObjectUI.py:480 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:82
+msgid "Scope"
+msgstr "Scopo"
+
+#: AppGUI/ObjectUI.py:482 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:84
+msgid ""
+"Isolation scope. Choose what to isolate:\n"
+"- 'All' -> Isolate all the polygons in the object\n"
+"- 'Selection' -> Isolate a selection of polygons."
+msgstr ""
+"Obiettivo dell'isolamento. Scegli cosa isolare:\n"
+"- 'Tutto' -> Isola tutti i poligoni nell'oggetto\n"
+"- 'Selezione' -> Isola una selezione di poligoni."
+
+#: AppGUI/ObjectUI.py:487
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:307
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:89
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:311
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:258
+#: AppTools/ToolNCC.py:539 AppTools/ToolPaint.py:455
+msgid "Selection"
+msgstr "Selezione"
+
+#: AppGUI/ObjectUI.py:495
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:122
+msgid "Isolation Type"
+msgstr "Tipo isolamento"
+
+#: AppGUI/ObjectUI.py:497
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:124
+msgid ""
+"Choose how the isolation will be executed:\n"
+"- 'Full' -> complete isolation of polygons\n"
+"- 'Ext' -> will isolate only on the outside\n"
+"- 'Int' -> will isolate only on the inside\n"
+"'Exterior' isolation is almost always possible\n"
+"(with the right tool) but 'Interior'\n"
+"isolation can be done only when there is an opening\n"
+"inside of the polygon (e.g polygon is a 'doughnut' shape)."
+msgstr ""
+"Scegli come verrà eseguito l'isolamento:\n"
+"- 'Completo' -> completo isolamento dei poligoni\n"
+"- 'Ext' -> isolerà solo all'esterno\n"
+"- 'Int' -> isolerà solo all'interno\n"
+"L'isolamento 'esterno' è quasi sempre possibile\n"
+"(con lo strumento giusto) ma 'Interno' può\n"
+"essere fatto solo quando c'è un'apertura all'interno\n"
+"del poligono (ad esempio il poligono ha una forma a \"ciambella\")."
+
+#: AppGUI/ObjectUI.py:506
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:133
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:154
+msgid "Full"
+msgstr "Completo"
+
+#: AppGUI/ObjectUI.py:507
+msgid "Ext"
+msgstr "Ext"
+
+#: AppGUI/ObjectUI.py:508
+msgid "Int"
+msgstr "Int"
+
+#: AppGUI/ObjectUI.py:513
+msgid "Generate Isolation Geometry"
+msgstr "Genera geometria di isolamento"
+
+#: AppGUI/ObjectUI.py:521
+msgid ""
+"Create a Geometry object with toolpaths to cut \n"
+"isolation outside, inside or on both sides of the\n"
+"object. For a Gerber object outside means outside\n"
+"of the Gerber feature and inside means inside of\n"
+"the Gerber feature, if possible at all. This means\n"
+"that only if the Gerber feature has openings inside, they\n"
+"will be isolated. If what is wanted is to cut isolation\n"
+"inside the actual Gerber feature, use a negative tool\n"
+"diameter above."
+msgstr ""
+"Crea un oggetto Geometrie con i percorsi utensile per isolare\n"
+"all'esterno, all'interno o su entrambi i lati dell'oggetto.\n"
+"Per un oggetto Gerber esterno significa esterno\n"
+"della funzione Gerber e dentro significa dentro\n"
+"la funzione Gerber, se possibile effettuarlo. Questo significa\n"
+"che solo se la funzione Gerber ha delle aperture interne, possono\n"
+"essere isolate. Se ciò che si desidera è tagliare l'isolamento\n"
+"all'interno dell'attuale funzione Gerber, usa uno strumento con diametro\n"
+"negativo."
+
+#: AppGUI/ObjectUI.py:533
+msgid "Buffer Solid Geometry"
+msgstr "Geometria solida del buffer"
+
+#: AppGUI/ObjectUI.py:535
+msgid ""
+"This button is shown only when the Gerber file\n"
+"is loaded without buffering.\n"
+"Clicking this will create the buffered geometry\n"
+"required for isolation."
+msgstr ""
+"Questo pulsante viene visualizzato solo quando il file Gerber\n"
+"viene caricato senza buffering.\n"
+"Facendo clic su questo si creerà la geometria bufferizzata\n"
+"richiesta per l'isolamento."
+
+#: AppGUI/ObjectUI.py:567
+msgid "Clear N-copper"
+msgstr "Azzera N-Copper (non rame)"
+
+#: AppGUI/ObjectUI.py:569 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:33
+msgid ""
+"Create a Geometry object with\n"
+"toolpaths to cut all non-copper regions."
+msgstr ""
+"Crea un oggetto Geometry con\n"
+"percorsi utensile per tagliare tutte le regioni non rame."
+
+#: AppGUI/ObjectUI.py:576 AppGUI/ObjectUI.py:2289 AppTools/ToolNCC.py:599
+msgid ""
+"Create the Geometry Object\n"
+"for non-copper routing."
+msgstr ""
+"Crea l'oggetto Geometria\n"
+"per l'isolamento non-rame."
+
+#: AppGUI/ObjectUI.py:589
+msgid "Board cutout"
+msgstr "Ritaglia scheda"
+
+#: AppGUI/ObjectUI.py:591 AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:34
+msgid ""
+"Create toolpaths to cut around\n"
+"the PCB and separate it from\n"
+"the original board."
+msgstr ""
+"Crea percorsi utensile per ritagliare\n"
+"il PCB e separarlo dalla\n"
+"scheda originale."
+
+#: AppGUI/ObjectUI.py:598
+msgid ""
+"Generate the geometry for\n"
+"the board cutout."
+msgstr ""
+"Genera la geometria per\n"
+"il ritaglio della scheda."
+
+#: AppGUI/ObjectUI.py:616 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:119
+msgid "Non-copper regions"
+msgstr "Regioni non-rame"
+
+#: AppGUI/ObjectUI.py:618 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:121
+msgid ""
+"Create polygons covering the\n"
+"areas without copper on the PCB.\n"
+"Equivalent to the inverse of this\n"
+"object. Can be used to remove all\n"
+"copper from a specified region."
+msgstr ""
+"Crea poligoni che coprono le\n"
+"aree senza rame sul PCB.\n"
+"Equivalente all'inverso di questo\n"
+"oggetto. Può essere usato per rimuovere tutto\n"
+"il rame da una regione specifica."
+
+#: AppGUI/ObjectUI.py:628 AppGUI/ObjectUI.py:669
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:133
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:166
+msgid "Boundary Margin"
+msgstr "Margine dei bordi"
+
+#: AppGUI/ObjectUI.py:630 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:135
+msgid ""
+"Specify the edge of the PCB\n"
+"by drawing a box around all\n"
+"objects with this minimum\n"
+"distance."
+msgstr ""
+"Specifica il bordo del PCB\n"
+"disegnando una contenitore intorno a tutti\n"
+"gli oggetti con questa distanza minima."
+
+#: AppGUI/ObjectUI.py:645 AppGUI/ObjectUI.py:683
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:148
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:179
+msgid "Rounded Geo"
+msgstr "Geometria arrotondata"
+
+#: AppGUI/ObjectUI.py:647 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:150
+msgid "Resulting geometry will have rounded corners."
+msgstr "La geometria risultante avrà angoli arrotondati."
+
+#: AppGUI/ObjectUI.py:651 AppGUI/ObjectUI.py:692
+#: AppTools/ToolSolderPaste.py:134
+msgid "Generate Geo"
+msgstr "Genera Geometria"
+
+#: AppGUI/ObjectUI.py:661 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:160
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137
+#: AppTools/ToolPanelize.py:99 AppTools/ToolQRCode.py:192
+msgid "Bounding Box"
+msgstr "Rettangolo contenitore"
+
+#: AppGUI/ObjectUI.py:663
+msgid ""
+"Create a geometry surrounding the Gerber object.\n"
+"Square shape."
+msgstr ""
+"Crea una geometria che circonda l'oggetto Gerber.\n"
+"Forma quadrata."
+
+#: AppGUI/ObjectUI.py:671 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:168
+msgid ""
+"Distance of the edges of the box\n"
+"to the nearest polygon."
+msgstr ""
+"Distanza del contenitore dai bordi\n"
+"al poligono più vicino."
+
+#: AppGUI/ObjectUI.py:685 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:181
+msgid ""
+"If the bounding box is \n"
+"to have rounded corners\n"
+"their radius is equal to\n"
+"the margin."
+msgstr ""
+"Se il rettangolo contenitore deve\n"
+"avere angoli arrotondati\n"
+"il loro raggio è uguale al\n"
+"margine."
+
+#: AppGUI/ObjectUI.py:694
+msgid "Generate the Geometry object."
+msgstr "Genera l'oggetto geometria."
+
+#: AppGUI/ObjectUI.py:721
+msgid "Excellon Object"
+msgstr "Oggetto Excellon"
+
+#: AppGUI/ObjectUI.py:733
+msgid "Solid circles."
+msgstr "Cercio pieno."
+
+#: AppGUI/ObjectUI.py:781 AppGUI/ObjectUI.py:876 AppGUI/ObjectUI.py:2466
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:71
+#: AppTools/ToolProperties.py:166
+msgid "Drills"
+msgstr "Fori"
+
+#: AppGUI/ObjectUI.py:781 AppGUI/ObjectUI.py:877 AppGUI/ObjectUI.py:2466
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:158
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:72
+#: AppTools/ToolProperties.py:168
+msgid "Slots"
+msgstr "Slots"
+
+#: AppGUI/ObjectUI.py:786
+msgid ""
+"This is the Tool Number.\n"
+"When ToolChange is checked, on toolchange event this value\n"
+"will be showed as a T1, T2 ... Tn in the Machine Code.\n"
+"\n"
+"Here the tools are selected for G-code generation."
+msgstr ""
+"Questo è il numero dello strumento.\n"
+"Quando CambioUtensile è attivo, in caso di cambio utensile questo valore\n"
+"verrà mostrato come T1, T2 ... Tn nel codice macchina.\n"
+"\n"
+"Qui vengono selezionati gli utensili per la generazione del codice G."
+
+#: AppGUI/ObjectUI.py:791 AppGUI/ObjectUI.py:1612 AppTools/ToolPaint.py:141
+msgid ""
+"Tool Diameter. It's value (in current FlatCAM units) \n"
+"is the cut width into the material."
+msgstr ""
+"Diametro utensile. Il suo valore (in unità FlatCAM) \n"
+"è la larghezza di taglio nel materiale."
+
+#: AppGUI/ObjectUI.py:794
+msgid ""
+"The number of Drill holes. Holes that are drilled with\n"
+"a drill bit."
+msgstr ""
+"Numero di fori da realizzare. Fori realizzati con una\n"
+"punta da trapano."
+
+#: AppGUI/ObjectUI.py:797
+msgid ""
+"The number of Slot holes. Holes that are created by\n"
+"milling them with an endmill bit."
+msgstr ""
+"Numero di fori slot da realizzare. Fori realizzati fresando\n"
+"con un utensile a candela."
+
+#: AppGUI/ObjectUI.py:800
+msgid ""
+"Toggle display of the drills for the current tool.\n"
+"This does not select the tools for G-code generation."
+msgstr ""
+"(Dis)attiva la visualizzazione delle punte per lo strumento corrente.\n"
+"Non seleziona gli utensili per la generazione del codice G."
+
+#: AppGUI/ObjectUI.py:818 AppGUI/ObjectUI.py:1764
+#: AppObjects/FlatCAMExcellon.py:527 AppObjects/FlatCAMExcellon.py:805
+#: AppObjects/FlatCAMExcellon.py:821 AppObjects/FlatCAMExcellon.py:825
+#: AppObjects/FlatCAMGeometry.py:322 AppObjects/FlatCAMGeometry.py:816
+#: AppObjects/FlatCAMGeometry.py:852 AppTools/ToolNCC.py:331
+#: AppTools/ToolNCC.py:797 AppTools/ToolNCC.py:811 AppTools/ToolNCC.py:1196
+#: AppTools/ToolPaint.py:313 AppTools/ToolPaint.py:766
+#: AppTools/ToolPaint.py:778 AppTools/ToolPaint.py:1170
+msgid "Parameters for"
+msgstr "Parametri per"
+
+#: AppGUI/ObjectUI.py:821 AppGUI/ObjectUI.py:1767 AppTools/ToolNCC.py:334
+#: AppTools/ToolPaint.py:316
+msgid ""
+"The data used for creating GCode.\n"
+"Each tool store it's own set of such data."
+msgstr ""
+"Dati usati per la creazione di GCode.\n"
+"Ogni deposito di Utensili ha il proprio set di dati."
+
+#: AppGUI/ObjectUI.py:847
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:48
+msgid ""
+"Operation type:\n"
+"- Drilling -> will drill the drills/slots associated with this tool\n"
+"- Milling -> will mill the drills/slots"
+msgstr ""
+"Tipo di operazione:\n"
+"- Foratura -> eseguirà i fori/slot associati a questo strumento\n"
+"- Fresatura -> freserà i fori(slot"
+
+#: AppGUI/ObjectUI.py:853
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:54
+msgid "Drilling"
+msgstr "Foratura"
+
+#: AppGUI/ObjectUI.py:854
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:55
+msgid "Milling"
+msgstr "Fresatura"
+
+#: AppGUI/ObjectUI.py:869
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:64
+msgid ""
+"Milling type:\n"
+"- Drills -> will mill the drills associated with this tool\n"
+"- Slots -> will mill the slots associated with this tool\n"
+"- Both -> will mill both drills and mills or whatever is available"
+msgstr ""
+"Tipo di fresatura:\n"
+"- Fori -> eseguirà la fresatura dei fori associati a questo strumento\n"
+"- Slot -> eseguirà la fresatura degli slot associati a questo strumento\n"
+"- Entrambi -> eseguirà la fresatura di trapani e mulini o qualsiasi altra "
+"cosa sia disponibile"
+
+#: AppGUI/ObjectUI.py:878
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:73
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:210
+#: AppTools/ToolFilm.py:241
+msgid "Both"
+msgstr "Entrambi"
+
+#: AppGUI/ObjectUI.py:886
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:80
+msgid "Milling Diameter"
+msgstr "Diametro fresa"
+
+#: AppGUI/ObjectUI.py:888
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:82
+msgid "The diameter of the tool who will do the milling"
+msgstr "Diametro dell'utensile che freserà"
+
+#: AppGUI/ObjectUI.py:902
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:95
+msgid ""
+"Drill depth (negative)\n"
+"below the copper surface."
+msgstr ""
+"Profondità della foratura (negativo)\n"
+"sotto la superficie del rame."
+
+#: AppGUI/ObjectUI.py:921 AppGUI/ObjectUI.py:1826
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:113
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:68
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79
+#: AppTools/ToolCutOut.py:159
+msgid "Multi-Depth"
+msgstr "Multi-Profondità"
+
+#: AppGUI/ObjectUI.py:924 AppGUI/ObjectUI.py:1829
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:116
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:71
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82
+#: AppTools/ToolCutOut.py:162
+msgid ""
+"Use multiple passes to limit\n"
+"the cut depth in each pass. Will\n"
+"cut multiple times until Cut Z is\n"
+"reached."
+msgstr ""
+"Usa più passaggi per limitare\n"
+"la profondità di taglio in ogni passaggio.\n"
+"Taglierà più volte fino a quando non avrà raggiunto\n"
+"Cut Z (profondità di taglio)."
+
+#: AppGUI/ObjectUI.py:937 AppGUI/ObjectUI.py:1843
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:128
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94
+#: AppTools/ToolCutOut.py:176
+msgid "Depth of each pass (positive)."
+msgstr "Profondità di ogni passaggio (positivo)."
+
+#: AppGUI/ObjectUI.py:948
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:136
+msgid ""
+"Tool height when travelling\n"
+"across the XY plane."
+msgstr ""
+"Altezza dell'utensile durante gli spostamenti\n"
+"sul piano XY."
+
+#: AppGUI/ObjectUI.py:969 AppGUI/ObjectUI.py:1873
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:187
+msgid ""
+"Cutting speed in the XY\n"
+"plane in units per minute"
+msgstr ""
+"Velocità di taglio sul piano XY\n"
+"in unità al minuto"
+
+#: AppGUI/ObjectUI.py:984
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:209
+msgid ""
+"Tool speed while drilling\n"
+"(in units per minute).\n"
+"So called 'Plunge' feedrate.\n"
+"This is for linear move G01."
+msgstr ""
+"Velocità dell'utensile durante la perforazione\n"
+"(in unità al minuto).\n"
+"E' la cosiddetta velocità di avanzamento \"a tuffo\".\n"
+"Questo è per lo spostamento lineare G01."
+
+#: AppGUI/ObjectUI.py:999 AppGUI/ObjectUI.py:1900
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:80
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:64
+msgid "Feedrate Rapids"
+msgstr "Avanzamenti rapidi"
+
+#: AppGUI/ObjectUI.py:1001
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:82
+msgid ""
+"Tool speed while drilling\n"
+"(in units per minute).\n"
+"This is for the rapid move G00.\n"
+"It is useful only for Marlin,\n"
+"ignore for any other cases."
+msgstr ""
+"Velocità dell'utensile durante la perforazione\n"
+"(in unità al minuto).\n"
+"Questo è per la mossa rapida G00.\n"
+"È utile solo per Marlin,\n"
+"ignora in tutti gli altri casi."
+
+#: AppGUI/ObjectUI.py:1021 AppGUI/ObjectUI.py:1920
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:82
+msgid "Re-cut"
+msgstr "Ri-taglia"
+
+#: AppGUI/ObjectUI.py:1023 AppGUI/ObjectUI.py:1036 AppGUI/ObjectUI.py:1922
+#: AppGUI/ObjectUI.py:1934
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:84
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:96
+msgid ""
+"In order to remove possible\n"
+"copper leftovers where first cut\n"
+"meet with last cut, we generate an\n"
+"extended cut over the first cut section."
+msgstr ""
+"Per rimuovere possibili residui\n"
+"di rame rimasti dove l'inizio del taglio\n"
+"incontria l'ultimo taglio, generiamo un\n"
+"taglio esteso sulla prima sezione di taglio."
+
+#: AppGUI/ObjectUI.py:1049 AppGUI/ObjectUI.py:1943
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:216
+#: AppObjects/FlatCAMExcellon.py:1412 AppObjects/FlatCAMGeometry.py:1676
+msgid "Spindle speed"
+msgstr "Velocità mandrino"
+
+#: AppGUI/ObjectUI.py:1051
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:224
+msgid ""
+"Speed of the spindle\n"
+"in RPM (optional)"
+msgstr ""
+"Valocità del mandrino\n"
+"in RMP (opzionale)"
+
+#: AppGUI/ObjectUI.py:1066 AppGUI/ObjectUI.py:1962
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:238
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:234
+msgid ""
+"Pause to allow the spindle to reach its\n"
+"speed before cutting."
+msgstr ""
+"Pausa per consentire al mandrino di raggiungere la sua\n"
+"velocità prima del taglio."
+
+#: AppGUI/ObjectUI.py:1077 AppGUI/ObjectUI.py:1972
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:246
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:239
+msgid "Number of time units for spindle to dwell."
+msgstr "Numero di unità di tempo in cui il mandrino deve aspettare."
+
+#: AppGUI/ObjectUI.py:1087
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:46
+msgid "Offset Z"
+msgstr "Distanza Z"
+
+#: AppGUI/ObjectUI.py:1089
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:48
+msgid ""
+"Some drill bits (the larger ones) need to drill deeper\n"
+"to create the desired exit hole diameter due of the tip shape.\n"
+"The value here can compensate the Cut Z parameter."
+msgstr ""
+"Alcune punte (quelle più grandi) devono forare più in profondità\n"
+"per creare il diametro del foro di uscita desiderato a causa della forma "
+"della punta.\n"
+"Questo valore può compensare il parametro Cut Z."
+
+#: AppGUI/ObjectUI.py:1149 AppGUI/ObjectUI.py:2026 AppTools/ToolNCC.py:492
+#: AppTools/ToolPaint.py:422
+msgid "Apply parameters to all tools"
+msgstr "Applica parametri a tutti gli utensili"
+
+#: AppGUI/ObjectUI.py:1151 AppGUI/ObjectUI.py:2028 AppTools/ToolNCC.py:494
+#: AppTools/ToolPaint.py:424
+msgid ""
+"The parameters in the current form will be applied\n"
+"on all the tools from the Tool Table."
+msgstr ""
+"Saranno applicati i parametri nel modulo corrente\n"
+"su tutti gli utensili dalla tabella."
+
+#: AppGUI/ObjectUI.py:1162 AppGUI/ObjectUI.py:2039 AppTools/ToolNCC.py:505
+#: AppTools/ToolPaint.py:435
+msgid "Common Parameters"
+msgstr "Parametri comuni"
+
+#: AppGUI/ObjectUI.py:1164 AppGUI/ObjectUI.py:2041 AppTools/ToolNCC.py:507
+#: AppTools/ToolPaint.py:437
+msgid "Parameters that are common for all tools."
+msgstr "Parametri usati da tutti gli utensili."
+
+#: AppGUI/ObjectUI.py:1169 AppGUI/ObjectUI.py:2046
+msgid "Tool change Z"
+msgstr "Z cambio utensile"
+
+#: AppGUI/ObjectUI.py:1171
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:154
+msgid ""
+"Include tool-change sequence\n"
+"in G-Code (Pause for tool change)."
+msgstr ""
+"Includi sequenza di cambio utensile\n"
+"nel codice G (Pausa per cambio utensile)."
+
+#: AppGUI/ObjectUI.py:1178 AppGUI/ObjectUI.py:2057
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:162
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:134
+msgid ""
+"Z-axis position (height) for\n"
+"tool change."
+msgstr ""
+"Posizione sull'asse Z (altezza) per\n"
+"il cambio utensile."
+
+#: AppGUI/ObjectUI.py:1195
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:71
+msgid ""
+"Height of the tool just after start.\n"
+"Delete the value if you don't need this feature."
+msgstr ""
+"Altezza dell'utensile subito dopo l'avvio.\n"
+"Elimina il valore se non hai bisogno di questa funzione."
+
+#: AppGUI/ObjectUI.py:1204 AppGUI/ObjectUI.py:2085
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:178
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:153
+msgid "End move Z"
+msgstr "Spostamento finale Z"
+
+#: AppGUI/ObjectUI.py:1206 AppGUI/ObjectUI.py:2087
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:180
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:155
+msgid ""
+"Height of the tool after\n"
+"the last move at the end of the job."
+msgstr ""
+"Altezza dell'utensile dopo\n"
+"l'ultimo movimento alla fine del lavoro."
+
+#: AppGUI/ObjectUI.py:1223 AppGUI/ObjectUI.py:2104
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:195
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:173
+msgid "End move X,Y"
+msgstr "Spostamento finale X,Y"
+
+#: AppGUI/ObjectUI.py:1225 AppGUI/ObjectUI.py:2106
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:197
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:175
+msgid ""
+"End move X,Y position. In format (x,y).\n"
+"If no value is entered then there is no move\n"
+"on X,Y plane at the end of the job."
+msgstr ""
+"Posizione movimento finale X,Y. Nel formato (x, y).\n"
+"Se non viene inserito alcun valore, non sarà possibile spostare\n"
+"sul piano X,Y alla fine del lavoro."
+
+#: AppGUI/ObjectUI.py:1235 AppGUI/ObjectUI.py:1980
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:96
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:105
+msgid "Probe Z depth"
+msgstr "Tastatore profondità Z"
+
+#: AppGUI/ObjectUI.py:1237 AppGUI/ObjectUI.py:1982
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:98
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:107
+msgid ""
+"The maximum depth that the probe is allowed\n"
+"to probe. Negative value, in current units."
+msgstr ""
+"La profondità massima consentita di testare\n"
+"alla sonda. Valore negativo, in attuali unità."
+
+#: AppGUI/ObjectUI.py:1254 AppGUI/ObjectUI.py:1997
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:109
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:120
+msgid "Feedrate Probe"
+msgstr "Velocità avanzamento sonda"
+
+#: AppGUI/ObjectUI.py:1256 AppGUI/ObjectUI.py:1999
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:111
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:122
+msgid "The feedrate used while the probe is probing."
+msgstr "La velocità usata durante l'avanzamento del tastatore."
+
+#: AppGUI/ObjectUI.py:1272
+msgid "Preprocessor E"
+msgstr "Preprocessore E"
+
+#: AppGUI/ObjectUI.py:1274
+msgid ""
+"The preprocessor JSON file that dictates\n"
+"Gcode output for Excellon Objects."
+msgstr ""
+"File JSON del preprocessore che istruisce\n"
+"il GCode di uscita per oggetti Excellon."
+
+#: AppGUI/ObjectUI.py:1284
+msgid "Preprocessor G"
+msgstr "Preprocessore G"
+
+#: AppGUI/ObjectUI.py:1286
+msgid ""
+"The preprocessor JSON file that dictates\n"
+"Gcode output for Geometry (Milling) Objects."
+msgstr ""
+"File JSON del preprocessore che istruisce\n"
+"il GCode di uscita da oggetti Geometria (fresatura)."
+
+#: AppGUI/ObjectUI.py:1300 AppGUI/ObjectUI.py:2134
+msgid "Add exclusion areas"
+msgstr ""
+
+#: AppGUI/ObjectUI.py:1303 AppGUI/ObjectUI.py:2137
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:204
+msgid ""
+"Include exclusion areas.\n"
+"In those areas the travel of the tools\n"
+"is forbidden."
+msgstr ""
+
+#: AppGUI/ObjectUI.py:1324 AppGUI/ObjectUI.py:1343 AppGUI/ObjectUI.py:2158
+#: AppGUI/ObjectUI.py:2177
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:224
+msgid "Strategy"
+msgstr ""
+
+#: AppGUI/ObjectUI.py:1324 AppGUI/ObjectUI.py:1355 AppGUI/ObjectUI.py:2158
+#: AppGUI/ObjectUI.py:2189
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:236
+#, fuzzy
+#| msgid "Overlap"
+msgid "Over Z"
+msgstr "Sovrapposizione"
+
+#: AppGUI/ObjectUI.py:1326 AppGUI/ObjectUI.py:2160
+msgid "This is the Area ID."
+msgstr ""
+
+#: AppGUI/ObjectUI.py:1328 AppGUI/ObjectUI.py:2162
+msgid "Type of the object where the exclusion area was added."
+msgstr ""
+
+#: AppGUI/ObjectUI.py:1330 AppGUI/ObjectUI.py:2164
+msgid ""
+"The strategy used for exclusion area. Go around the exclusion areas or over "
+"it."
+msgstr ""
+
+#: AppGUI/ObjectUI.py:1332 AppGUI/ObjectUI.py:2166
+msgid ""
+"If the strategy is to go over the area then this is the height at which the "
+"tool will go to avoid the exclusion area."
+msgstr ""
+
+#: AppGUI/ObjectUI.py:1344 AppGUI/ObjectUI.py:2178
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:225
+msgid ""
+"The strategy followed when encountering an exclusion area.\n"
+"Can be:\n"
+"- Over -> when encountering the area, the tool will go to a set height\n"
+"- Around -> will avoid the exclusion area by going around the area"
+msgstr ""
+
+#: AppGUI/ObjectUI.py:1348 AppGUI/ObjectUI.py:2182
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:229
+#, fuzzy
+#| msgid "Overlap"
+msgid "Over"
+msgstr "Sovrapposizione"
+
+#: AppGUI/ObjectUI.py:1349 AppGUI/ObjectUI.py:2183
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:230
+#, fuzzy
+#| msgid "Round"
+msgid "Around"
+msgstr "Arrotondato"
+
+#: AppGUI/ObjectUI.py:1356 AppGUI/ObjectUI.py:2190
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:237
+msgid ""
+"The height Z to which the tool will rise in order to avoid\n"
+"an interdiction area."
+msgstr ""
+
+#: AppGUI/ObjectUI.py:1366 AppGUI/ObjectUI.py:2200
+#, fuzzy
+#| msgid "Add Track"
+msgid "Add area:"
+msgstr "Aggiungi Traccia"
+
+#: AppGUI/ObjectUI.py:1367 AppGUI/ObjectUI.py:2201
+msgid "Add an Exclusion Area."
+msgstr ""
+
+#: AppGUI/ObjectUI.py:1373 AppGUI/ObjectUI.py:2207
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:214
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:324
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:288
+#: AppTools/ToolNCC.py:580 AppTools/ToolPaint.py:523
+msgid "The kind of selection shape used for area selection."
+msgstr "Il tipo di forma di selezione utilizzata per la selezione dell'area."
+
+#: AppGUI/ObjectUI.py:1383 AppGUI/ObjectUI.py:2217
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:32
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:42
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:32
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:32
+msgid "Delete All"
+msgstr "Cancella tutto"
+
+#: AppGUI/ObjectUI.py:1384 AppGUI/ObjectUI.py:2218
+#, fuzzy
+#| msgid "Delete all extensions from the list."
+msgid "Delete all exclusion areas."
+msgstr "Cancella tutte le estensioni dalla lista."
+
+#: AppGUI/ObjectUI.py:1387 AppGUI/ObjectUI.py:2221
+#, fuzzy
+#| msgid "Delete Object"
+msgid "Delete Selected"
+msgstr "Cancella oggetto"
+
+#: AppGUI/ObjectUI.py:1388 AppGUI/ObjectUI.py:2222
+#, fuzzy
+#| msgid ""
+#| "Delete a tool in the tool list\n"
+#| "by selecting a row in the tool table."
+msgid "Delete all exclusion areas that are selected in the table."
+msgstr ""
+"Cancella un utensile dalla lista\n"
+"selezionandone la riga nella tabella."
+
+#: AppGUI/ObjectUI.py:1412 AppGUI/ObjectUI.py:2238
+msgid ""
+"Add / Select at least one tool in the tool-table.\n"
+"Click the # header to select all, or Ctrl + LMB\n"
+"for custom selection of tools."
+msgstr ""
+"Aggiungi almeno un utensile alla tabella degli utensili.\n"
+"Fai clic su # per selezionare tutto, oppure Ctrl + click sinistro\n"
+"per la selezione personalizzata degli utensili."
+
+#: AppGUI/ObjectUI.py:1420 AppGUI/ObjectUI.py:2245
+msgid "Generate CNCJob object"
+msgstr "Genera oggetto CNCJob"
+
+#: AppGUI/ObjectUI.py:1422
+msgid ""
+"Generate the CNC Job.\n"
+"If milling then an additional Geometry object will be created"
+msgstr ""
+"Generare il lavoro CNC.\n"
+"Se si sta fresando, verrà creato un oggetto Geometry aggiuntivo"
+
+#: AppGUI/ObjectUI.py:1439
+msgid "Milling Geometry"
+msgstr "Geometria fresatura"
+
+#: AppGUI/ObjectUI.py:1441
+msgid ""
+"Create Geometry for milling holes.\n"
+"Select from the Tools Table above the hole dias to be\n"
+"milled. Use the # column to make the selection."
+msgstr ""
+"Crea geometria per la fresatura dei fori.\n"
+"Selezionare dalla tabella degli strumenti sopra i diametri dei fori\n"
+"da fresare. Utilizzare la colonna # per effettuare la selezione."
+
+#: AppGUI/ObjectUI.py:1449
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:296
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:45
+msgid "Diameter of the cutting tool."
+msgstr "Diametri dell'utensile da taglio."
+
+#: AppGUI/ObjectUI.py:1459
+msgid "Mill Drills"
+msgstr "Fresatura fori"
+
+#: AppGUI/ObjectUI.py:1461
+msgid ""
+"Create the Geometry Object\n"
+"for milling DRILLS toolpaths."
+msgstr ""
+"Crea l'oggetto Geometry\n"
+"per la fresatura di percorsi utensile FORI."
+
+#: AppGUI/ObjectUI.py:1479
+msgid "Mill Slots"
+msgstr "Fresatura slot"
+
+#: AppGUI/ObjectUI.py:1481
+msgid ""
+"Create the Geometry Object\n"
+"for milling SLOTS toolpaths."
+msgstr ""
+"Crea oggetto geometria\n"
+"per fresare gli slot."
+
+#: AppGUI/ObjectUI.py:1523 AppTools/ToolCutOut.py:319
+msgid "Geometry Object"
+msgstr "Oggetto geometria"
+
+#: AppGUI/ObjectUI.py:1569
+msgid ""
+"Tools in this Geometry object used for cutting.\n"
+"The 'Offset' entry will set an offset for the cut.\n"
+"'Offset' can be inside, outside, on path (none) and custom.\n"
+"'Type' entry is only informative and it allow to know the \n"
+"intent of using the current tool. \n"
+"It can be Rough(ing), Finish(ing) or Iso(lation).\n"
+"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n"
+"ball(B), or V-Shaped(V). \n"
+"When V-shaped is selected the 'Type' entry is automatically \n"
+"set to Isolation, the CutZ parameter in the UI form is\n"
+"grayed out and Cut Z is automatically calculated from the newly \n"
+"showed UI form entries named V-Tip Dia and V-Tip Angle."
+msgstr ""
+"Strumenti in questo oggetto Geometria sono usati per il taglio.\n"
+"La voce 'Offset' imposta un offset per il taglio.\n"
+"'Offset' può essere all'interno, all'esterno, sul percorso (nessuno) e "
+"personalizzato.\n"
+"La voce 'Tipo' è solo informativa e consente di conoscere\n"
+"lo scopo d'utilizzo dello strumento corrente.\n"
+"Può essere grezzo, fine o isolamento.\n"
+"Il 'tipo di utensile' (TT) può essere circolare con da 1 a 4 denti (C1.."
+"C4),\n"
+"a palla (B) o a forma di V (V).\n"
+"Quando è selezionata la forma a V, la voce 'Tipo' è automaticamente\n"
+"impostato su Isolamento, il parametro CutZ nel modulo UI è\n"
+"non selezionabile e Cut Z viene calcolato automaticamente dalla nuova\n"
+"UI dalle voci Diametro V-Tip e Angolo V-Tip."
+
+#: AppGUI/ObjectUI.py:1586 AppGUI/ObjectUI.py:2443
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:40
+msgid "Plot Object"
+msgstr "Disegna oggetto"
+
+#: AppGUI/ObjectUI.py:1599 AppGUI/ObjectUI.py:2456 AppGUI/ObjectUI.py:2466
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138
+#: AppTools/ToolCopperThieving.py:221
+msgid "Dia"
+msgstr "Diametro"
+
+#: AppGUI/ObjectUI.py:1599 AppGUI/ObjectUI.py:2456 AppTools/ToolNCC.py:132
+#: AppTools/ToolPaint.py:127
+msgid "TT"
+msgstr "TT"
+
+#: AppGUI/ObjectUI.py:1606
+msgid ""
+"This is the Tool Number.\n"
+"When ToolChange is checked, on toolchange event this value\n"
+"will be showed as a T1, T2 ... Tn"
+msgstr ""
+"Questo è il numero dell'utensile.\n"
+"Quando Cambio Utensile è selezionato, in caso di cambio utensile questo "
+"valore\n"
+"verrà mostrato come T1, T2 ... Tn"
+
+#: AppGUI/ObjectUI.py:1617
+msgid ""
+"The value for the Offset can be:\n"
+"- Path -> There is no offset, the tool cut will be done through the geometry "
+"line.\n"
+"- In(side) -> The tool cut will follow the geometry inside. It will create a "
+"'pocket'.\n"
+"- Out(side) -> The tool cut will follow the geometry line on the outside."
+msgstr ""
+"Il valore per l'offset può essere:\n"
+"- Percorso -> Non è presente alcun offset, il taglio dell'utensile verrà "
+"eseguito attraverso la linea della geometria.\n"
+"- In(terno) -> Il taglio dell'utensile seguirà la geometria all'interno. "
+"Creerà una 'tasca'.\n"
+"- Est(erno) -> Il taglio dell'utensile seguirà la linea della geometria "
+"all'esterno."
+
+#: AppGUI/ObjectUI.py:1624
+msgid ""
+"The (Operation) Type has only informative value. Usually the UI form "
+"values \n"
+"are choose based on the operation type and this will serve as a reminder.\n"
+"Can be 'Roughing', 'Finishing' or 'Isolation'.\n"
+"For Roughing we may choose a lower Feedrate and multiDepth cut.\n"
+"For Finishing we may choose a higher Feedrate, without multiDepth.\n"
+"For Isolation we need a lower Feedrate as it use a milling bit with a fine "
+"tip."
+msgstr ""
+"Il tipo di operazione ha solo valore informativo. Di solito i valori nella "
+"UI\n"
+"vengono scelti in base al tipo di operazione e questo servirà come "
+"promemoria.\n"
+"Può essere 'Sgrossatura', 'Finitura' o 'Isolamento'.\n"
+"Per la sgrossatura possiamo scegliere un avanzamento inferiore e un taglio "
+"multi-profondità.\n"
+"Per la finitura possiamo scegliere una velocità di avanzamento più elevata, "
+"senza multi-profondità.\n"
+"Per l'isolamento abbiamo bisogno di un avanzamento inferiore poiché si una "
+"punta di fresatura con una punta fine."
+
+#: AppGUI/ObjectUI.py:1633
+msgid ""
+"The Tool Type (TT) can be:\n"
+"- Circular with 1 ... 4 teeth -> it is informative only. Being circular the "
+"cut width in material\n"
+"is exactly the tool diameter.\n"
+"- Ball -> informative only and make reference to the Ball type endmill.\n"
+"- V-Shape -> it will disable Z-Cut parameter in the UI form and enable two "
+"additional UI form\n"
+"fields: V-Tip Dia and V-Tip Angle. Adjusting those two values will adjust "
+"the Z-Cut parameter such\n"
+"as the cut width into material will be equal with the value in the Tool "
+"Diameter column of this table.\n"
+"Choosing the V-Shape Tool Type automatically will select the Operation Type "
+"as Isolation."
+msgstr ""
+"Il tipo di utensile (TT) può essere:\n"
+"- Circolare con 1 ... 4 denti -> è solo informativo. Essendo circolare la "
+"larghezza del taglio nel materiale\n"
+"è esattamente il diametro dell'utensile.\n"
+"- Sfera -> solo informativo e fare riferimento alla fresa sferica.\n"
+"- a V -> disabiliterà il parametro di Z-Cut nel modulo UI e abiliterà due "
+"moduli UI aggiuntivi\n"
+"campi: Diametro V-Tip e Angolo V-Tip. La regolazione di questi due valori "
+"regolerà tale parametro Z-Cut\n"
+"poiché la larghezza del taglio nel materiale sarà uguale al valore nella "
+"colonna Diametro utensile di questa tabella.\n"
+"Scegliendo il tipo di strumento a forma di V si selezionerà automaticamente "
+"il tipo di operazione come isolamento."
+
+#: AppGUI/ObjectUI.py:1645
+msgid ""
+"Plot column. It is visible only for MultiGeo geometries, meaning geometries "
+"that holds the geometry\n"
+"data into the tools. For those geometries, deleting the tool will delete the "
+"geometry data also,\n"
+"so be WARNED. From the checkboxes on each row it can be enabled/disabled the "
+"plot on canvas\n"
+"for the corresponding tool."
+msgstr ""
+"Traccia colonna. È visibile solo per le geometrie MultiGeo, ovvero geometrie "
+"che trattengono i dati della\n"
+"geometria negli strumenti. Per tali geometrie, l'eliminazione dello "
+"strumento eliminerà anche i dati della geometria,\n"
+"quindi ATTENZIONE. Dalle caselle di controllo su ogni riga è possibile "
+"abilitare/disabilitare la tracciatura\n"
+"dello strumento corrispondente."
+
+#: AppGUI/ObjectUI.py:1663
+msgid ""
+"The value to offset the cut when \n"
+"the Offset type selected is 'Offset'.\n"
+"The value can be positive for 'outside'\n"
+"cut and negative for 'inside' cut."
+msgstr ""
+"Il valore per compensare il taglio quando\n"
+"il tipo di offset selezionato è 'Offset'.\n"
+"Il valore può essere positivo per 'esterno'\n"
+"taglio e negativo per il taglio 'interno'."
+
+#: AppGUI/ObjectUI.py:1682 AppTools/ToolNCC.py:209 AppTools/ToolNCC.py:923
+#: AppTools/ToolPaint.py:191 AppTools/ToolPaint.py:848
+#: AppTools/ToolSolderPaste.py:559
+msgid "New Tool"
+msgstr "Nuovo utensile"
+
+#: AppGUI/ObjectUI.py:1699
+msgid ""
+"Add a new tool to the Tool Table\n"
+"with the specified diameter."
+msgstr ""
+"Aggiungi un nuovo utensile alla tabella degli utensili\n"
+"con il diametro specificato."
+
+#: AppGUI/ObjectUI.py:1704 AppTools/ToolNCC.py:300 AppTools/ToolNCC.py:634
+#: AppTools/ToolPaint.py:282 AppTools/ToolPaint.py:678
+msgid "Add from DB"
+msgstr "Aggiungi dal DB"
+
+#: AppGUI/ObjectUI.py:1706 AppTools/ToolNCC.py:302 AppTools/ToolPaint.py:284
+msgid ""
+"Add a new tool to the Tool Table\n"
+"from the Tool DataBase."
+msgstr ""
+"Aggiungi un nuovo utensile alla tabella degli utensili\n"
+"dal DataBase utensili."
+
+#: AppGUI/ObjectUI.py:1721
+msgid ""
+"Copy a selection of tools in the Tool Table\n"
+"by first selecting a row in the Tool Table."
+msgstr ""
+"Copia una selezione di utensili nella tabella degli utensili\n"
+"selezionando prima una riga nella tabella."
+
+#: AppGUI/ObjectUI.py:1727
+msgid ""
+"Delete a selection of tools in the Tool Table\n"
+"by first selecting a row in the Tool Table."
+msgstr ""
+"Elimina una selezione di utensili nella tabella degli utensili\n"
+"selezionando prima una riga."
+
+#: AppGUI/ObjectUI.py:1854
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:103
+msgid ""
+"Height of the tool when\n"
+"moving without cutting."
+msgstr ""
+"Altezza dello strumento quando\n"
+"si sposta senza tagliare."
+
+#: AppGUI/ObjectUI.py:1887
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:202
+msgid ""
+"Cutting speed in the XY\n"
+"plane in units per minute.\n"
+"It is called also Plunge."
+msgstr ""
+"Velocità di taglio nel piano XY\n"
+"in unità al minuto.\n"
+"Si chiama anche Plunge (affondo)."
+
+#: AppGUI/ObjectUI.py:1902
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:66
+msgid ""
+"Cutting speed in the XY plane\n"
+"(in units per minute).\n"
+"This is for the rapid move G00.\n"
+"It is useful only for Marlin,\n"
+"ignore for any other cases."
+msgstr ""
+"Velocità di taglio nel piano XY\n"
+"(in unità al minuto).\n"
+"Questo è per la mossa rapida G00.\n"
+"È utile solo per Marlin,\n"
+"ignorare in tutti gli altri casi."
+
+#: AppGUI/ObjectUI.py:1946
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:219
+msgid ""
+"Speed of the spindle in RPM (optional).\n"
+"If LASER preprocessor is used,\n"
+"this value is the power of laser."
+msgstr ""
+"Velocità del mandrino in RPM (opzionale).\n"
+"Se si utilizza il preprocessore LASER,\n"
+"questo valore è la potenza del laser."
+
+#: AppGUI/ObjectUI.py:2049
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:124
+msgid ""
+"Include tool-change sequence\n"
+"in the Machine Code (Pause for tool change)."
+msgstr ""
+"Includi sequenza di cambio utensile\n"
+"nel Codice macchina (Pausa per cambio utensile)."
+
+#: AppGUI/ObjectUI.py:2118
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:256
+msgid ""
+"The Preprocessor file that dictates\n"
+"the Machine Code (like GCode, RML, HPGL) output."
+msgstr ""
+"Il file del preprocessore che guida\n"
+"l'output del codice macchina (come GCode, RML, HPGL)."
+
+#: AppGUI/ObjectUI.py:2247 Common.py:405 Common.py:520 Common.py:573
+msgid "Generate the CNC Job object."
+msgstr "Genera l'oggetto CNC Job."
+
+#: AppGUI/ObjectUI.py:2264
+msgid "Launch Paint Tool in Tools Tab."
+msgstr "Esegui lo strumento Disegno dal Tab Disegno."
+
+#: AppGUI/ObjectUI.py:2272 AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:35
+msgid ""
+"Creates tool paths to cover the\n"
+"whole area of a polygon (remove\n"
+"all copper). You will be asked\n"
+"to click on the desired polygon."
+msgstr ""
+"Crea percorsi utensile per coprire\n"
+"l'intera area di un poligono (rimuovi\n"
+"tutto rame). Verrà chiesto di\n"
+"cliccare sul poligono desiderato."
+
+#: AppGUI/ObjectUI.py:2327
+msgid "CNC Job Object"
+msgstr "Oggetto CNC Job"
+
+#: AppGUI/ObjectUI.py:2338 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:45
+msgid "Plot kind"
+msgstr "Tipo di plot"
+
+#: AppGUI/ObjectUI.py:2341 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:47
+msgid ""
+"This selects the kind of geometries on the canvas to plot.\n"
+"Those can be either of type 'Travel' which means the moves\n"
+"above the work piece or it can be of type 'Cut',\n"
+"which means the moves that cut into the material."
+msgstr ""
+"Questo seleziona il tipo di geometrie da tracciare.\n"
+"Possono essere di tipo 'Travel', ovvero movimenti\n"
+"sopra al pezzo o di tipo 'Taglia',\n"
+"cioè movimenti che tagliano il materiale."
+
+#: AppGUI/ObjectUI.py:2350 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:55
+msgid "Travel"
+msgstr "Travel"
+
+#: AppGUI/ObjectUI.py:2354 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:64
+msgid "Display Annotation"
+msgstr "Mostra annotazioni"
+
+#: AppGUI/ObjectUI.py:2356 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:66
+msgid ""
+"This selects if to display text annotation on the plot.\n"
+"When checked it will display numbers in order for each end\n"
+"of a travel line."
+msgstr ""
+"Seleziona se visualizzare l'annotazione di testo.\n"
+"Se selezionato, visualizzerà i numeri ordinati su ogni terminazione\n"
+"di una linea di spostamento."
+
+#: AppGUI/ObjectUI.py:2371
+msgid "Travelled dist."
+msgstr "Distanza spostamento."
+
+#: AppGUI/ObjectUI.py:2373 AppGUI/ObjectUI.py:2378
+msgid ""
+"This is the total travelled distance on X-Y plane.\n"
+"In current units."
+msgstr ""
+"E' la distanza totale percorsa sul piano X-Y.\n"
+"In unità correnti."
+
+#: AppGUI/ObjectUI.py:2383
+msgid "Estimated time"
+msgstr "Tempo stimato"
+
+#: AppGUI/ObjectUI.py:2385 AppGUI/ObjectUI.py:2390
+msgid ""
+"This is the estimated time to do the routing/drilling,\n"
+"without the time spent in ToolChange events."
+msgstr ""
+"E' il tempo stimato per le fresatura, foratura,\n"
+"senza il tempo necessario ai cambi utensili."
+
+#: AppGUI/ObjectUI.py:2425
+msgid "CNC Tools Table"
+msgstr "Tabella Utensili CNC"
+
+#: AppGUI/ObjectUI.py:2428
+msgid ""
+"Tools in this CNCJob object used for cutting.\n"
+"The tool diameter is used for plotting on canvas.\n"
+"The 'Offset' entry will set an offset for the cut.\n"
+"'Offset' can be inside, outside, on path (none) and custom.\n"
+"'Type' entry is only informative and it allow to know the \n"
+"intent of using the current tool. \n"
+"It can be Rough(ing), Finish(ing) or Iso(lation).\n"
+"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n"
+"ball(B), or V-Shaped(V)."
+msgstr ""
+"Gli utensili sono quelli usati in questo oggetto CNCJob per il taglio.\n"
+"Il diametro dell'utensile è utilizzato per tracciare il disegno a video.\n"
+"La voce 'Offset' imposta un offset per il taglio.\n"
+"'Offset' può essere interno, esterno, sul percorso (nessuno) e "
+"personalizzato.\n"
+"La voce 'Tipo' è solo informativa e consente di conoscere il fine\n"
+"dell'utensile corrente.\n"
+"Può essere per sgrezzatura, finitura o isolamento.\n"
+"Il 'tipo di utensile' (TT) può essere circolare da 1 a 4 denti (C1..C4),\n"
+"a palla (B) o a V (V)."
+
+#: AppGUI/ObjectUI.py:2456 AppGUI/ObjectUI.py:2467
+msgid "P"
+msgstr "P"
+
+#: AppGUI/ObjectUI.py:2477
+msgid "Update Plot"
+msgstr "Aggiorna Plot"
+
+#: AppGUI/ObjectUI.py:2479
+msgid "Update the plot."
+msgstr "Aggiorna il plot."
+
+#: AppGUI/ObjectUI.py:2486
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:30
+msgid "Export CNC Code"
+msgstr "Esporta codice CNC"
+
+#: AppGUI/ObjectUI.py:2488
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:32
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:33
+msgid ""
+"Export and save G-Code to\n"
+"make this object to a file."
+msgstr ""
+"Esporta e salva il G-Code per\n"
+"fare un file dell'oggetto."
+
+#: AppGUI/ObjectUI.py:2494
+msgid "Prepend to CNC Code"
+msgstr "Anteponi ak codice CNC"
+
+#: AppGUI/ObjectUI.py:2496 AppGUI/ObjectUI.py:2503
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:49
+msgid ""
+"Type here any G-Code commands you would\n"
+"like to add at the beginning of the G-Code file."
+msgstr ""
+"Scrivi qui qualsiasi comando G-Code che vuoi\n"
+"venga inserito all'inizio del file G-Code."
+
+#: AppGUI/ObjectUI.py:2509
+msgid "Append to CNC Code"
+msgstr "Accoda al Codice CNC"
+
+#: AppGUI/ObjectUI.py:2511 AppGUI/ObjectUI.py:2519
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:65
+msgid ""
+"Type here any G-Code commands you would\n"
+"like to append to the generated file.\n"
+"I.e.: M2 (End of program)"
+msgstr ""
+"Scrivi qui qualsiasi comando G-Code che vuoi\n"
+"venga inserito alla fine del file G-Code.\n"
+"Es.: M2 (Fine programma)"
+
+#: AppGUI/ObjectUI.py:2533
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:38
+msgid "Toolchange G-Code"
+msgstr "G-Code cambio utensile"
+
+#: AppGUI/ObjectUI.py:2536
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:41
+msgid ""
+"Type here any G-Code commands you would\n"
+"like to be executed when Toolchange event is encountered.\n"
+"This will constitute a Custom Toolchange GCode,\n"
+"or a Toolchange Macro.\n"
+"The FlatCAM variables are surrounded by '%' symbol.\n"
+"\n"
+"WARNING: it can be used only with a preprocessor file\n"
+"that has 'toolchange_custom' in it's name and this is built\n"
+"having as template the 'Toolchange Custom' posprocessor file."
+msgstr ""
+"Digita qui qualsiasi comando G-Code che desideri\n"
+"sia eseguito quando si incontra un di evento Cambio Utensile.\n"
+"Ciò costituirà un GCode di cambio utensile personalizzato,\n"
+"o una macro per il cambio utensile.\n"
+"Le variabili FlatCAM sono delimitate dal simbolo '%'.\n"
+"\n"
+"ATTENZIONE: può essere utilizzato solo con un file preprocessore\n"
+"che contenga 'toolchange_custom' nel nome e creato\n"
+"avendo come modello il file posprocessor 'Toolchange Custom'."
+
+#: AppGUI/ObjectUI.py:2551
+msgid ""
+"Type here any G-Code commands you would\n"
+"like to be executed when Toolchange event is encountered.\n"
+"This will constitute a Custom Toolchange GCode,\n"
+"or a Toolchange Macro.\n"
+"The FlatCAM variables are surrounded by '%' symbol.\n"
+"WARNING: it can be used only with a preprocessor file\n"
+"that has 'toolchange_custom' in it's name."
+msgstr ""
+"Digita qui qualsiasi comando G-Code che desideri\n"
+"sia eseguito quando si incontra un di evento Cambio Utensile.\n"
+"Ciò costituirà un GCode di cambio utensile personalizzato,\n"
+"o una macro per il cambio utensile.\n"
+"Le variabili FlatCAM sono delimitate dal simbolo '%'.\n"
+"ATTENZIONE: può essere utilizzato solo con un file preprocessore\n"
+"che contenga 'toolchange_custom' nel nome."
+
+#: AppGUI/ObjectUI.py:2566
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:80
+msgid "Use Toolchange Macro"
+msgstr "Usa Macro Cambio Utensile"
+
+#: AppGUI/ObjectUI.py:2568
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:82
+msgid ""
+"Check this box if you want to use\n"
+"a Custom Toolchange GCode (macro)."
+msgstr ""
+"Seleziona questa casella se vuoi usare\n"
+"un GCode Custom (macro) per il cambio utensile."
+
+#: AppGUI/ObjectUI.py:2576
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:94
+msgid ""
+"A list of the FlatCAM variables that can be used\n"
+"in the Toolchange event.\n"
+"They have to be surrounded by the '%' symbol"
+msgstr ""
+"Una lista di variabili FlatCAM utilizzabili\n"
+"nell'evento di Cambio Utensile.\n"
+"Devono essere delimitate dal simbolo '%'"
+
+#: AppGUI/ObjectUI.py:2583
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:101
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:30
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:31
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:31
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:37
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:36
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:36
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:36
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:31
+#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:31
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:36
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:31
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:30
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:35
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:32
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31
+#: AppTools/ToolCopperThieving.py:89 AppTools/ToolCorners.py:106
+#: AppTools/ToolEtchCompensation.py:82 AppTools/ToolFiducials.py:149
+#: AppTools/ToolInvertGerber.py:82
+msgid "Parameters"
+msgstr "Parametri"
+
+#: AppGUI/ObjectUI.py:2586
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:106
+msgid "FlatCAM CNC parameters"
+msgstr "Parametri CNC FlatCAM"
+
+#: AppGUI/ObjectUI.py:2587
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:111
+msgid "tool number"
+msgstr "numero utensile"
+
+#: AppGUI/ObjectUI.py:2588
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:112
+msgid "tool diameter"
+msgstr "diametro utensile"
+
+#: AppGUI/ObjectUI.py:2589
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:113
+msgid "for Excellon, total number of drills"
+msgstr "per Excellon, numero totale di fori"
+
+#: AppGUI/ObjectUI.py:2591
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:115
+msgid "X coord for Toolchange"
+msgstr "Coordinata X per il cambio utensile"
+
+#: AppGUI/ObjectUI.py:2592
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:116
+msgid "Y coord for Toolchange"
+msgstr "Coordinata Y per il cambio utensile"
+
+#: AppGUI/ObjectUI.py:2593
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:118
+msgid "Z coord for Toolchange"
+msgstr "Coordinata Z per il cambio utensile"
+
+#: AppGUI/ObjectUI.py:2594
+msgid "depth where to cut"
+msgstr "profondità a cui tagliare"
+
+#: AppGUI/ObjectUI.py:2595
+msgid "height where to travel"
+msgstr "altezza alla quale spostarsi"
+
+#: AppGUI/ObjectUI.py:2596
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:121
+msgid "the step value for multidepth cut"
+msgstr "il passo per il taglio in più passaggi"
+
+#: AppGUI/ObjectUI.py:2598
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:123
+msgid "the value for the spindle speed"
+msgstr "il valore della velocità del mandrino"
+
+#: AppGUI/ObjectUI.py:2600
+msgid "time to dwell to allow the spindle to reach it's set RPM"
+msgstr ""
+"tempo di attesa per permettere al mandrino di raggiungere la velocità in RPM"
+
+#: AppGUI/ObjectUI.py:2616
+msgid "View CNC Code"
+msgstr "Vedi codice CNC"
+
+#: AppGUI/ObjectUI.py:2618
+msgid ""
+"Opens TAB to view/modify/print G-Code\n"
+"file."
+msgstr "Apri TAB per vedere/modificare/stampare un file G-Code."
+
+#: AppGUI/ObjectUI.py:2623
+msgid "Save CNC Code"
+msgstr "Calva codice CNC"
+
+#: AppGUI/ObjectUI.py:2625
+msgid ""
+"Opens dialog to save G-Code\n"
+"file."
+msgstr ""
+"Apri la finestra di salvataggio del file\n"
+"G-Code."
+
+#: AppGUI/ObjectUI.py:2659
+msgid "Script Object"
+msgstr "Oggetto script"
+
+#: AppGUI/ObjectUI.py:2679 AppGUI/ObjectUI.py:2753
+msgid "Auto Completer"
+msgstr "Auto completatore"
+
+#: AppGUI/ObjectUI.py:2681
+msgid "This selects if the auto completer is enabled in the Script Editor."
+msgstr "Seleziona se l'autocompletatore è attivo nell'editor Script."
+
+#: AppGUI/ObjectUI.py:2726
+msgid "Document Object"
+msgstr "Oggetto documento"
+
+#: AppGUI/ObjectUI.py:2755
+msgid "This selects if the auto completer is enabled in the Document Editor."
+msgstr "Seleziona se l'autocompletatore è attivo nell'editor Documenti."
+
+#: AppGUI/ObjectUI.py:2773
+msgid "Font Type"
+msgstr "Tipo carattere"
+
+#: AppGUI/ObjectUI.py:2790
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:197
+msgid "Font Size"
+msgstr "Dimensione carattere"
+
+#: AppGUI/ObjectUI.py:2826
+msgid "Alignment"
+msgstr "Allineamento"
+
+#: AppGUI/ObjectUI.py:2831
+msgid "Align Left"
+msgstr "Allinea a sinistra"
+
+#: AppGUI/ObjectUI.py:2836 App_Main.py:4687
+msgid "Center"
+msgstr "Centro"
+
+#: AppGUI/ObjectUI.py:2841
+msgid "Align Right"
+msgstr "Allinea a destra"
+
+#: AppGUI/ObjectUI.py:2846
+msgid "Justify"
+msgstr "Giustifica"
+
+#: AppGUI/ObjectUI.py:2853
+msgid "Font Color"
+msgstr "Colore carattere"
+
+#: AppGUI/ObjectUI.py:2855
+msgid "Set the font color for the selected text"
+msgstr "Imposta il colore del carattere per il testo selezionato"
+
+#: AppGUI/ObjectUI.py:2869
+msgid "Selection Color"
+msgstr "Selezione colore"
+
+#: AppGUI/ObjectUI.py:2871
+msgid "Set the selection color when doing text selection."
+msgstr "Imposta il colore della selezione durante la selezione del testo."
+
+#: AppGUI/ObjectUI.py:2885
+msgid "Tab Size"
+msgstr "Dimensione tab"
+
+#: AppGUI/ObjectUI.py:2887
+msgid "Set the tab size. In pixels. Default value is 80 pixels."
+msgstr ""
+"Imposta la dimensione del tab. In pixel. Il valore di default è 80 pixel."
+
+#: AppGUI/PlotCanvasLegacy.py:1464
+msgid ""
+"Could not annotate due of a difference between the number of text elements "
+"and the number of text positions."
+msgstr ""
+"Impossibile annotare a causa di una differenza tra il numero di elementi di "
+"testo e il numero di posizioni di testo."
+
+#: AppGUI/preferences/PreferencesUIManager.py:911
+#: AppGUI/preferences/PreferencesUIManager.py:1002
+#: AppGUI/preferences/PreferencesUIManager.py:1026
+#: AppGUI/preferences/PreferencesUIManager.py:1132 App_Main.py:5107
+msgid "Preferences"
+msgstr "Preferenze"
+
+#: AppGUI/preferences/PreferencesUIManager.py:917
+msgid "Preferences applied."
+msgstr "Preferenze applicate."
+
+#: AppGUI/preferences/PreferencesUIManager.py:937
+#, fuzzy
+#| msgid "Are you sure you want to delete the GUI Settings? \n"
+msgid "Are you sure you want to continue?"
+msgstr "Sicuro di voler cancellare le impostazioni GUI?\n"
+
+#: AppGUI/preferences/PreferencesUIManager.py:938
+#, fuzzy
+#| msgid "Application started ..."
+msgid "Application restart"
+msgstr "Applicazione avviata ..."
+
+#: AppGUI/preferences/PreferencesUIManager.py:1031
+msgid "Preferences closed without saving."
+msgstr "Preferenze chiuse senza salvarle."
+
+#: AppGUI/preferences/PreferencesUIManager.py:1043
+msgid "Preferences default values are restored."
+msgstr "I valori predefiniti delle preferenze vengono ripristinati."
+
+#: AppGUI/preferences/PreferencesUIManager.py:1075 App_Main.py:2476
+#: App_Main.py:2544
+msgid "Failed to write defaults to file."
+msgstr "Impossibile scrivere le impostazioni predefinite nel file."
+
+#: AppGUI/preferences/PreferencesUIManager.py:1079
+#: AppGUI/preferences/PreferencesUIManager.py:1188
+msgid "Preferences saved."
+msgstr "Preferenze salvate."
+
+#: AppGUI/preferences/PreferencesUIManager.py:1129
+msgid "Preferences edited but not saved."
+msgstr "Preferenze modificate ma non salvate."
+
+#: AppGUI/preferences/PreferencesUIManager.py:1174
+msgid ""
+"One or more values are changed.\n"
+"Do you want to save the Preferences?"
+msgstr ""
+"Uno o più valori modificati.\n"
+"Vuoi salvare le Preferenze?"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:27
+msgid "CNC Job Adv. Options"
+msgstr "Opzioni avanzate CNC Job"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:64
+msgid ""
+"Type here any G-Code commands you would like to be executed when Toolchange "
+"event is encountered.\n"
+"This will constitute a Custom Toolchange GCode, or a Toolchange Macro.\n"
+"The FlatCAM variables are surrounded by '%' symbol.\n"
+"WARNING: it can be used only with a preprocessor file that has "
+"'toolchange_custom' in it's name."
+msgstr ""
+"Digita qui qualsiasi comando G-Code che desideri sia eseguito quando si "
+"incontra un di evento Cambio Utensile.\n"
+"Ciò costituirà un GCode di cambio utensile personalizzato, o una macro per "
+"il cambio utensile.\n"
+"Le variabili FlatCAM sono delimitate dal simbolo '%'.\n"
+"ATTENZIONE: può essere utilizzato solo con un file preprocessore che "
+"contenga 'toolchange_custom' nel nome."
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:119
+msgid "Z depth for the cut"
+msgstr "Profondità Z per il taglio"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:120
+msgid "Z height for travel"
+msgstr "Altezza Z per gli spostamenti"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:126
+msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM"
+msgstr ""
+"tempo attesa = tempo per attendere che il mandrino raggiunga la velocità "
+"finale in RPM"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:145
+msgid "Annotation Size"
+msgstr "Dimensione annotazioni"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:147
+msgid "The font size of the annotation text. In pixels."
+msgstr "La dimensione del testo delle annotazioni, in pixel."
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:157
+msgid "Annotation Color"
+msgstr "Colore annotazioni"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:159
+msgid "Set the font color for the annotation texts."
+msgstr "Imposta il colore del carattere per i le annotazioni."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:26
+msgid "CNC Job General"
+msgstr "Generale CNC Job"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:77
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:47
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:59
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:45
+msgid "Circle Steps"
+msgstr "Passi cerchi"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:79
+msgid ""
+"The number of circle steps for GCode \n"
+"circle and arc shapes linear approximation."
+msgstr ""
+"Il numero di passi circolari per approsimazioni lineari\n"
+"di cerchi ed archi GCode ."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:88
+msgid "Travel dia"
+msgstr "Diametro spostamenti"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:90
+msgid ""
+"The width of the travel lines to be\n"
+"rendered in the plot."
+msgstr ""
+"La larghezza delle linee da\n"
+"disegnare a schermo per gli spostamenti."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:103
+msgid "G-code Decimals"
+msgstr "Decimali G-Code"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:106
+#: AppTools/ToolFiducials.py:74
+msgid "Coordinates"
+msgstr "Coordinate"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:108
+msgid ""
+"The number of decimals to be used for \n"
+"the X, Y, Z coordinates in CNC code (GCODE, etc.)"
+msgstr ""
+"Number di decimali da usare per le coordinate\n"
+"X, Y, Z nel codice CNC (GCODE, ecc.)"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:119
+#: AppTools/ToolProperties.py:519
+msgid "Feedrate"
+msgstr "Avanzamento"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:121
+msgid ""
+"The number of decimals to be used for \n"
+"the Feedrate parameter in CNC code (GCODE, etc.)"
+msgstr ""
+"Number di decimali da usare per i parametri\n"
+"di avanzamento nel codice CNC (GCODE, ecc.)"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:132
+msgid "Coordinates type"
+msgstr "Tipo coordinate"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:134
+msgid ""
+"The type of coordinates to be used in Gcode.\n"
+"Can be:\n"
+"- Absolute G90 -> the reference is the origin x=0, y=0\n"
+"- Incremental G91 -> the reference is the previous position"
+msgstr ""
+"Il tipo di coordinate da utilizzare in Gcode.\n"
+"Può essere:\n"
+"- Asolute G90 -> il riferimento è l'origine x=0, y=0\n"
+"- Incrementale G91 -> il riferimento è la posizione precedente"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:140
+msgid "Absolute G90"
+msgstr "Assolute G90"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:141
+msgid "Incremental G91"
+msgstr "Incrementale G91"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:151
+msgid "Force Windows style line-ending"
+msgstr "Imposta il fine linea di Windows"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:153
+msgid ""
+"When checked will force a Windows style line-ending\n"
+"(\\r\\n) on non-Windows OS's."
+msgstr ""
+"Quando abilitato forzerà lo stile fine linea di windows\n"
+"(\\r\\n) su sistemi non Windows."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:165
+msgid "Travel Line Color"
+msgstr "Colore linee spostamenti"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:169
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:235
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:262
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:154
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:220
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:84
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:153
+#: AppTools/ToolRulesCheck.py:186
+msgid "Outline"
+msgstr "Esterno"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:171
+msgid "Set the travel line color for plotted objects."
+msgstr "Imposta il colore per disegnare le linee degli spostamenti."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:186
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:252
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:279
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:170
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:237
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:170
+msgid "Fill"
+msgstr "Riempi"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:188
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:254
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:281
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:172
+msgid ""
+"Set the fill color for plotted objects.\n"
+"First 6 digits are the color and the last 2\n"
+"digits are for alpha (transparency) level."
+msgstr ""
+"Imposta il colore di riempimento per gli oggetti disegnati.\n"
+"Le prime 6 cifre sono il colore e le ultime 2\n"
+"cifre sono per il livello alfa (trasparenza)."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:205
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:298
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:190
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:257
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:189
+msgid "Alpha"
+msgstr "Alpha"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:207
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:300
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:191
+msgid "Set the fill transparency for plotted objects."
+msgstr "Imposta il livello di trasparenza per gli oggetti disegnati."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:231
+msgid "CNCJob Object Color"
+msgstr "Colore oggetti CNCJob"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:237
+msgid "Set the color for plotted objects."
+msgstr "Imposta il colore per gli oggetti CNC Job."
+
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:27
+msgid "CNC Job Options"
+msgstr "Opzioni CNC Job"
+
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:31
+msgid "Export G-Code"
+msgstr "Esporta G-Code"
+
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:47
+msgid "Prepend to G-Code"
+msgstr "Anteponi al G-Code"
+
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:56
+msgid ""
+"Type here any G-Code commands you would like to add at the beginning of the "
+"G-Code file."
+msgstr ""
+"Scrivi qui qualsiasi comando G-Code che vuoi venga inserito all'inizio del "
+"file G-Code."
+
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:63
+msgid "Append to G-Code"
+msgstr "Accoda al G-Code"
+
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:73
+msgid ""
+"Type here any G-Code commands you would like to append to the generated "
+"file.\n"
+"I.e.: M2 (End of program)"
+msgstr ""
+"Scrivi qui qualsiasi comando G-Code che vuoi venga inserito alla fine del "
+"file G-Code.\n"
+"Es: M2 (Fine programma)"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:27
+msgid "Excellon Adv. Options"
+msgstr "Opzioni avanzate Ecellon"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:34
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:33
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:31
+msgid "Advanced Options"
+msgstr "Opzioni avanzate"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:36
+msgid ""
+"A list of Excellon advanced parameters.\n"
+"Those parameters are available only for\n"
+"Advanced App. Level."
+msgstr ""
+"Un elenco di parametri avanzati di Excellon.\n"
+"Tali parametri sono disponibili solo per\n"
+"App a livello avanzato."
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:59
+msgid "Toolchange X,Y"
+msgstr "Cambio Utensile X,Y"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:61
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:47
+msgid "Toolchange X,Y position."
+msgstr "Posizione X, Y per il cambio utensile."
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:121
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:134
+msgid "Spindle direction"
+msgstr "Direzione mandrino"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:123
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:136
+msgid ""
+"This sets the direction that the spindle is rotating.\n"
+"It can be either:\n"
+"- CW = clockwise or\n"
+"- CCW = counter clockwise"
+msgstr ""
+"Questo imposta la direzione in cui il mandrino ruota.\n"
+"Può essere:\n"
+"- CW = orario o\n"
+"- CCW = antiorario"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:134
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:148
+msgid "Fast Plunge"
+msgstr "Affondo rapido"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:136
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:150
+msgid ""
+"By checking this, the vertical move from\n"
+"Z_Toolchange to Z_move is done with G0,\n"
+"meaning the fastest speed available.\n"
+"WARNING: the move is done at Toolchange X,Y coords."
+msgstr ""
+"Controllando questo, lo spostamento da\n"
+"Z_Toolchange a Z_move è realizzato con G0,\n"
+"ovvero alla velocità massima disponibile.\n"
+"ATTENZIONE: la mossa viene eseguita alle coordinate X,Y del Cambio utensile."
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:143
+msgid "Fast Retract"
+msgstr "Ritrazione rapida"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:145
+msgid ""
+"Exit hole strategy.\n"
+" - When uncheked, while exiting the drilled hole the drill bit\n"
+"will travel slow, with set feedrate (G1), up to zero depth and then\n"
+"travel as fast as possible (G0) to the Z Move (travel height).\n"
+" - When checked the travel from Z cut (cut depth) to Z_move\n"
+"(travel height) is done as fast as possible (G0) in one move."
+msgstr ""
+"Strategia di uscita dai fori.\n"
+" - Se non abilitata, mentre si esce dal foro, la punta del trapano\n"
+"viaggerà lentamente, con avanzamento impostato (G1), fino a zero profondità "
+"e poi\n"
+"viaggerà il più velocemente possibile (G0) verso Z Move (altezza per gli "
+"spostamenti).\n"
+" - Se selezionata, la corsa da Z di taglio (profondità di taglio) a Z_move\n"
+"(altezza per gli spostamenti) viene eseguita il più velocemente possibile "
+"(G0) in una sola mossa."
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:32
+msgid "A list of Excellon Editor parameters."
+msgstr "Una lista di parametri di edit Excellon."
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:40
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:41
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:41
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:194
+msgid "Selection limit"
+msgstr "Limite selezione"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:42
+msgid ""
+"Set the number of selected Excellon geometry\n"
+"items above which the utility geometry\n"
+"becomes just a selection rectangle.\n"
+"Increases the performance when moving a\n"
+"large number of geometric elements."
+msgstr ""
+"Imposta il numero di elementi di geometria\n"
+"Excellon selezionata sopra i quali la geometria\n"
+"diventa un rettangolo di selezione.\n"
+"Aumenta le prestazioni quando si usano un\n"
+"gran numero di elementi geometrici."
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:55
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:117
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:123
+msgid "New Dia"
+msgstr "Nuovo diametro"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:80
+msgid "Linear Drill Array"
+msgstr "Matrice lineare di fori"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:84
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:232
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:120
+msgid "Linear Direction"
+msgstr "Direzione lineare"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:126
+msgid "Circular Drill Array"
+msgstr "Matrice circolare di fori"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:130
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:280
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:164
+msgid "Circular Direction"
+msgstr "Direzione circolare"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:132
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:282
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:166
+msgid ""
+"Direction for circular array.\n"
+"Can be CW = clockwise or CCW = counter clockwise."
+msgstr ""
+"Direzione matrice circolare.\n"
+"Può essere CW = senso orario o CCW = senso antiorario."
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:143
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:293
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:177
+msgid "Circular Angle"
+msgstr "Ancolo circolare"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:196
+msgid ""
+"Angle at which the slot is placed.\n"
+"The precision is of max 2 decimals.\n"
+"Min value is: -359.99 degrees.\n"
+"Max value is: 360.00 degrees."
+msgstr ""
+"Angolo a cui è posizionata lo slot.\n"
+"La precisione è di massimo 2 decimali.\n"
+"Il valore minimo è: -359,99 gradi.\n"
+"Il valore massimo è: 360,00 gradi."
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:215
+msgid "Linear Slot Array"
+msgstr "Matrice lineare di slot"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:276
+msgid "Circular Slot Array"
+msgstr "Matrice circolare di slot"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:26
+msgid "Excellon Export"
+msgstr "Exporta Excellon"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:30
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:31
+msgid "Export Options"
+msgstr "Opzioni esportazione"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:32
+msgid ""
+"The parameters set here are used in the file exported\n"
+"when using the File -> Export -> Export Excellon menu entry."
+msgstr ""
+"I parametri impostati qui vengono utilizzati nel file esportato\n"
+"quando si utilizza la voce di menu File -> Esporta -> Esporta Excellon."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:41
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:163
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:39
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:42
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:82
+#: AppTools/ToolDistance.py:56 AppTools/ToolDistanceMin.py:49
+#: AppTools/ToolPcbWizard.py:127 AppTools/ToolProperties.py:154
+msgid "Units"
+msgstr "Unità"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:43
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:49
+msgid "The units used in the Excellon file."
+msgstr "Unità usate nel file Excellon."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:46
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:87
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:173
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:47
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:87
+#: AppTools/ToolCalculators.py:61 AppTools/ToolPcbWizard.py:125
+msgid "INCH"
+msgstr "POLLICI"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:47
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:174
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:43
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:48
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:88
+#: AppTools/ToolCalculators.py:62 AppTools/ToolPcbWizard.py:126
+msgid "MM"
+msgstr "MM"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:55
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:56
+msgid "Int/Decimals"
+msgstr "Int/Decimali"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:57
+msgid ""
+"The NC drill files, usually named Excellon files\n"
+"are files that can be found in different formats.\n"
+"Here we set the format used when the provided\n"
+"coordinates are not using period."
+msgstr ""
+"I file di forature NC, generalmente detti file Excellon\n"
+"sono file che possono essere trovati in diversi formati.\n"
+"Qui impostiamo il formato utilizzato quando le coordinate\n"
+"fornite non utilizzano la virgola."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:69
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:95
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:124
+msgid ""
+"This numbers signify the number of digits in\n"
+"the whole part of Excellon coordinates."
+msgstr ""
+"Questi numeri indicano il numero di cifre nella\n"
+"parte intera delle coordinate di Excellon."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:82
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:108
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:137
+msgid ""
+"This numbers signify the number of digits in\n"
+"the decimal part of Excellon coordinates."
+msgstr ""
+"Questi numeri indicano il numero di cifre nella\n"
+"parte decimale delle coordinate di Excellon."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:91
+msgid "Format"
+msgstr "Formato"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:93
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:103
+msgid ""
+"Select the kind of coordinates format used.\n"
+"Coordinates can be saved with decimal point or without.\n"
+"When there is no decimal point, it is required to specify\n"
+"the number of digits for integer part and the number of decimals.\n"
+"Also it will have to be specified if LZ = leading zeros are kept\n"
+"or TZ = trailing zeros are kept."
+msgstr ""
+"Seleziona il tipo di formato di coordinate utilizzato.\n"
+"Le coordinate possono essere salvate con punto decimale o senza.\n"
+"Quando non è presente un punto decimale, è necessario specificare\n"
+"il numero di cifre per la parte intera e il numero di decimali.\n"
+"Inoltre dovrà essere specificato se ZI = zeri iniziali vengono mantenuti\n"
+"o ZF = vengono mantenuti gli zeri finali."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:100
+msgid "Decimal"
+msgstr "Decimale"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:101
+msgid "No-Decimal"
+msgstr "Non-decimale"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:114
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:145
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:96
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:97
+msgid "Zeros"
+msgstr "Zeri"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:117
+msgid ""
+"This sets the type of Excellon zeros.\n"
+"If LZ then Leading Zeros are kept and\n"
+"Trailing Zeros are removed.\n"
+"If TZ is checked then Trailing Zeros are kept\n"
+"and Leading Zeros are removed."
+msgstr ""
+"Questo imposta il tipo di zeri di Excellon.\n"
+"Se ZI, gli Zeri iniziali vengono mantenuti e\n"
+"Gli zeri finali vengono rimossi.\n"
+"Se ZF è selezionato, gli Zeri finali vengono mantenuti\n"
+"e gli zeri iniziali vengono rimossi."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:124
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:158
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:106
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:107
+#: AppTools/ToolPcbWizard.py:111
+msgid "LZ"
+msgstr "ZI"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:125
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:159
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:107
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:108
+#: AppTools/ToolPcbWizard.py:112
+msgid "TZ"
+msgstr "ZF"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:127
+msgid ""
+"This sets the default type of Excellon zeros.\n"
+"If LZ then Leading Zeros are kept and\n"
+"Trailing Zeros are removed.\n"
+"If TZ is checked then Trailing Zeros are kept\n"
+"and Leading Zeros are removed."
+msgstr ""
+"Questo imposta il tipo di default degli zeri di Excellon.\n"
+"Se ZI, gli Zeri iniziali vengono mantenuti e\n"
+"Gli zeri finali vengono rimossi.\n"
+"Se ZF è selezionato, gli Zeri finali vengono mantenuti\n"
+"e gli zeri iniziali vengono rimossi."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:137
+msgid "Slot type"
+msgstr "Tipo slot"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:140
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:150
+msgid ""
+"This sets how the slots will be exported.\n"
+"If ROUTED then the slots will be routed\n"
+"using M15/M16 commands.\n"
+"If DRILLED(G85) the slots will be exported\n"
+"using the Drilled slot command (G85)."
+msgstr ""
+"Questo imposta il modo in cui verranno esportati gli slot.\n"
+"Se FRESATO, gli slot verranno lavorati\n"
+"utilizzando i comandi M15 / M16.\n"
+"Se FORATO (G85) gli slot verranno esportati\n"
+"utilizzando il comando Drill slot (G85)."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:147
+msgid "Routed"
+msgstr "Fresato"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:148
+msgid "Drilled(G85)"
+msgstr "Forato"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:29
+msgid "Excellon General"
+msgstr "Generali Excellon"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:62
+msgid "Excellon Format"
+msgstr "Formato Excellon"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:64
+msgid ""
+"The NC drill files, usually named Excellon files\n"
+"are files that can be found in different formats.\n"
+"Here we set the format used when the provided\n"
+"coordinates are not using period.\n"
+"\n"
+"Possible presets:\n"
+"\n"
+"PROTEUS 3:3 MM LZ\n"
+"DipTrace 5:2 MM TZ\n"
+"DipTrace 4:3 MM LZ\n"
+"\n"
+"EAGLE 3:3 MM TZ\n"
+"EAGLE 4:3 MM TZ\n"
+"EAGLE 2:5 INCH TZ\n"
+"EAGLE 3:5 INCH TZ\n"
+"\n"
+"ALTIUM 2:4 INCH LZ\n"
+"Sprint Layout 2:4 INCH LZ\n"
+"KiCAD 3:5 INCH TZ"
+msgstr ""
+"I file di foratura (NC), generalmente denominati file Excellon,\n"
+"sono file che possono essere creati in diversi formati.\n"
+"Qui impostiamo il formato utilizzato quando le coordinate\n"
+"fornite non utilizzano il punto.\n"
+"\n"
+"Possibili impostazioni:\n"
+"\n"
+"PROTEUS 3: 3 MM ZI\n"
+"DipTrace 5: 2 MM ZF\n"
+"DipTrace 4: 3 MM ZI\n"
+"\n"
+"EAGLE 3: 3 MM ZF\n"
+"EAGLE 4: 3 MM ZF\n"
+"EAGLE 2: 5 POLLICI ZF\n"
+"EAGLE 3: 5 POLLICI ZF\n"
+"\n"
+"ALTIUM 2: 4 POLLICI ZI\n"
+"Sprint Layout 2: 4 POLLICI ZI\n"
+"KiCAD 3: 5 POLLICI ZF"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:88
+msgid "Default values for INCH are 2:4"
+msgstr "I valori di default per i POLLICI sono 2:4"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:116
+msgid "METRIC"
+msgstr "METRICA"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:117
+msgid "Default values for METRIC are 3:3"
+msgstr "I valori di default per i METRICI sono 3:3"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:148
+msgid ""
+"This sets the type of Excellon zeros.\n"
+"If LZ then Leading Zeros are kept and\n"
+"Trailing Zeros are removed.\n"
+"If TZ is checked then Trailing Zeros are kept\n"
+"and Leading Zeros are removed.\n"
+"\n"
+"This is used when there is no information\n"
+"stored in the Excellon file."
+msgstr ""
+"Questo imposta il tipo di zeri di Excellon.\n"
+"Se ZI, gli Zeri iniziali vengono mantenuti e\n"
+"Gli zeri finali vengono rimossi.\n"
+"Se ZF è selezionato, gli Zeri finali vengono mantenuti\n"
+"e gli zeri iniziali vengono rimossi.\n"
+"\n"
+"Questo è usato quando non ci sono informazioni\n"
+"memorizzato nel file Excellon."
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:166
+msgid ""
+"This sets the default units of Excellon files.\n"
+"If it is not detected in the parsed file the value here\n"
+"will be used.Some Excellon files don't have an header\n"
+"therefore this parameter will be used."
+msgstr ""
+"Questo imposta le unità predefinite dei file Excellon.\n"
+"Se non viene rilevato nel file analizzato, sarà usato il valore qui\n"
+"contenuto. Alcuni file Excellon non hanno un'intestazione\n"
+"pertanto verrà utilizzato questo parametro."
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:176
+msgid ""
+"This sets the units of Excellon files.\n"
+"Some Excellon files don't have an header\n"
+"therefore this parameter will be used."
+msgstr ""
+"Questo imposta le unità dei file Excellon.\n"
+"Alcuni file di Excellon non hanno un'intestazione\n"
+"pertanto verrà utilizzato questo parametro."
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:184
+msgid "Update Export settings"
+msgstr "Aggiorna impostazioni esportazione"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:201
+msgid "Excellon Optimization"
+msgstr "Ottimizzazione Excellon"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:204
+msgid "Algorithm:"
+msgstr "Algoritmo:"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:206
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:222
+msgid ""
+"This sets the optimization type for the Excellon drill path.\n"
+"If <> is checked then Google OR-Tools algorithm with\n"
+"MetaHeuristic Guided Local Path is used. Default search time is 3sec.\n"
+"If <> is checked then Google OR-Tools Basic algorithm is used.\n"
+"If <> is checked then Travelling Salesman algorithm is used for\n"
+"drill path optimization.\n"
+"\n"
+"If this control is disabled, then FlatCAM works in 32bit mode and it uses\n"
+"Travelling Salesman algorithm for path optimization."
+msgstr ""
+"Questo imposta il tipo di ottimizzazione per il percorso di perforazione di "
+"Excellon.\n"
+"Se è selezionato <>, allora sarà usato l'algoritmo di Google "
+"OR-Tools con\n"
+"percorso locale guidato meta-euristico. Il tempo di ricerca predefinito è 3 "
+"secondi.\n"
+"Se è selezionato <>, viene utilizzato l'algoritmo Google OR-Tools "
+"Basic.\n"
+"Se è selezionato <>, viene utilizzato l'algoritmo del commesso "
+"viaggiatore per\n"
+"l'ottimizzazione del percorso di perforazione.\n"
+"\n"
+"Se questo controllo è disabilitato, FlatCAM funzionerà in modalità 32 bit e "
+"utilizzerà\n"
+"l'algoritmo del commesso viaggiatore per l'ottimizzazione del percorso."
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:217
+msgid "MetaHeuristic"
+msgstr "MetaHeuristic"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:218
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:104
+#: AppObjects/FlatCAMExcellon.py:683 AppObjects/FlatCAMGeometry.py:561
+#: AppObjects/FlatCAMGerber.py:251
+msgid "Basic"
+msgstr "Base"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:219
+msgid "TSA"
+msgstr "ACV"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:236
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:245
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:237
+msgid "Duration"
+msgstr "Durata"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:239
+msgid ""
+"When OR-Tools Metaheuristic (MH) is enabled there is a\n"
+"maximum threshold for how much time is spent doing the\n"
+"path optimization. This max duration is set here.\n"
+"In seconds."
+msgstr ""
+"Quando OR-Tools Metaheuristic (MH) è abilitato, c'è una\n"
+"soglia massima per il tempo impiegato ad ottimizzare i percorsi.\n"
+"Questa durata massima è impostata qui.\n"
+"In secondi."
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:258
+msgid "Excellon Object Color"
+msgstr "Colore oggetti Excellon"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:264
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:86
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:155
+msgid "Set the line color for plotted objects."
+msgstr "Imposta il colore della linea che disegna gli oggetti Gerber."
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:29
+msgid "Excellon Options"
+msgstr "Opzioni Excellon"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:33
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:34
+msgid "Create CNC Job"
+msgstr "Crea lavoro CNC"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:35
+msgid ""
+"Parameters used to create a CNC Job object\n"
+"for this drill object."
+msgstr ""
+"Parametri usati per creare un oggetto CNC Job\n"
+"per questo oggetto foro."
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:152
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:121
+msgid "Tool change"
+msgstr "Cambio utensile"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:236
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:232
+msgid "Enable Dwell"
+msgstr "Abilita attesa"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:259
+msgid ""
+"The preprocessor JSON file that dictates\n"
+"Gcode output."
+msgstr ""
+"File JSON del preprocessore che istruisce\n"
+"il GCode di uscita."
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:270
+msgid "Gcode"
+msgstr "GCode"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:272
+msgid ""
+"Choose what to use for GCode generation:\n"
+"'Drills', 'Slots' or 'Both'.\n"
+"When choosing 'Slots' or 'Both', slots will be\n"
+"converted to drills."
+msgstr ""
+"Scegli cosa utilizzare per la generazione GCode:\n"
+"'Forature', 'Slot' o 'Entrambi'.\n"
+"Quando si sceglie 'Slot' o 'Entrambi', le slot saranno\n"
+"convertite in fori."
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:288
+msgid "Mill Holes"
+msgstr "Fresatura fori"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:290
+msgid "Create Geometry for milling holes."
+msgstr "Crea Geometrie per forare i buchi."
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:294
+msgid "Drill Tool dia"
+msgstr "Diametro udensile foratura"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:305
+msgid "Slot Tool dia"
+msgstr "Diametro utensile Slot"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:307
+msgid ""
+"Diameter of the cutting tool\n"
+"when milling slots."
+msgstr ""
+"Diametro dell'utensile da taglio\n"
+"che fresa gli slot."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:28
+msgid "App Settings"
+msgstr "Impostazioni App"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:49
+msgid "Grid Settings"
+msgstr "Impostazioni Griglia"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:53
+msgid "X value"
+msgstr "Valore X"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:55
+msgid "This is the Grid snap value on X axis."
+msgstr "Questo è il valore di snap alla griglia sull'asse X."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:65
+msgid "Y value"
+msgstr "Valore Y"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:67
+msgid "This is the Grid snap value on Y axis."
+msgstr "Questo è il valore di snap alla griglia sull'asse Y."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:77
+msgid "Snap Max"
+msgstr "Snap massimo"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:92
+msgid "Workspace Settings"
+msgstr "Impostazioni area di lavoro"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:95
+msgid "Active"
+msgstr "Attivo"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:97
+msgid ""
+"Draw a delimiting rectangle on canvas.\n"
+"The purpose is to illustrate the limits for our work."
+msgstr ""
+"Disegna un rettangolo delimitante.\n"
+"Lo scopo è quello di mostrare i limiti del nostro lavoro."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:105
+msgid ""
+"Select the type of rectangle to be used on canvas,\n"
+"as valid workspace."
+msgstr ""
+"Seleziona il tipo di rettangolo da utilizzare,\n"
+"come spazio di lavoro valido."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:171
+msgid "Orientation"
+msgstr "Orientamento"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:172
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:239
+#: AppTools/ToolFilm.py:405
+msgid ""
+"Can be:\n"
+"- Portrait\n"
+"- Landscape"
+msgstr ""
+"Può essere:\n"
+"- Verticale\n"
+"- Orizzontale"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:176
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:243
+#: AppTools/ToolFilm.py:409
+msgid "Portrait"
+msgstr "Verticale"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:177
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:244
+#: AppTools/ToolFilm.py:410
+msgid "Landscape"
+msgstr "Orizzontale"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:201
+msgid "Notebook"
+msgstr "Blocco note"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:203
+#, fuzzy
+#| msgid ""
+#| "This sets the font size for the elements found in the Notebook.\n"
+#| "The notebook is the collapsible area in the left side of the GUI,\n"
+#| "and include the Project, Selected and Tool tabs."
+msgid ""
+"This sets the font size for the elements found in the Notebook.\n"
+"The notebook is the collapsible area in the left side of the AppGUI,\n"
+"and include the Project, Selected and Tool tabs."
+msgstr ""
+"Questo imposta la dimensione del carattere per gli elementi trovati nel "
+"blocco note.\n"
+"Il blocco note è l'area comprimibile nella parte sinistra della GUI,\n"
+"e include le schede Progetto, Selezionato e Strumento."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:222
+msgid "Axis"
+msgstr "Assi"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:224
+msgid "This sets the font size for canvas axis."
+msgstr "Questo imposta la dimensione del carattere per gli assi."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:241
+msgid "Textbox"
+msgstr "Box testo"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:243
+#, fuzzy
+#| msgid ""
+#| "This sets the font size for the Textbox GUI\n"
+#| "elements that are used in FlatCAM."
+msgid ""
+"This sets the font size for the Textbox AppGUI\n"
+"elements that are used in FlatCAM."
+msgstr ""
+"Ciò imposta la dimensione del carattere per gli elementi delle box testo\n"
+"della GUI utilizzati in FlatCAM."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:261
+msgid "HUD"
+msgstr ""
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:263
+#, fuzzy
+#| msgid "This sets the font size for canvas axis."
+msgid "This sets the font size for the Heads Up Display."
+msgstr "Questo imposta la dimensione del carattere per gli assi."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:288
+msgid "Mouse Settings"
+msgstr "Impostazioni mouse"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:292
+msgid "Cursor Shape"
+msgstr "Forma cursore"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:294
+msgid ""
+"Choose a mouse cursor shape.\n"
+"- Small -> with a customizable size.\n"
+"- Big -> Infinite lines"
+msgstr ""
+"Scegli una forma del cursore del mouse.\n"
+"- Piccolo -> con dimensioni personalizzabili.\n"
+"- Grande -> Linee infinite"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:300
+msgid "Small"
+msgstr "Piccolo"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:301
+msgid "Big"
+msgstr "Grande"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:308
+msgid "Cursor Size"
+msgstr "Dimensione cursore"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:310
+msgid "Set the size of the mouse cursor, in pixels."
+msgstr "Imposta la dimensione del cursore del mouse, in pixel."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:321
+msgid "Cursor Width"
+msgstr "Larghezza cursore"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:323
+msgid "Set the line width of the mouse cursor, in pixels."
+msgstr "Imposta la larghezza della linea del cursore del mouse, in pixel."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:334
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:341
+msgid "Cursor Color"
+msgstr "Colore cursore"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:336
+msgid "Check this box to color mouse cursor."
+msgstr "Seleziona questa casella per colorare il cursore del mouse."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:343
+msgid "Set the color of the mouse cursor."
+msgstr "Imposta il colore del cursore del mouse."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:366
+msgid "Pan Button"
+msgstr "Pulsante panorama"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:368
+msgid ""
+"Select the mouse button to use for panning:\n"
+"- MMB --> Middle Mouse Button\n"
+"- RMB --> Right Mouse Button"
+msgstr ""
+"Seleziona il pulsante del mouse da utilizzare per le panoramiche (panning):\n"
+"- PCM -> Pulsante centrale del mouse\n"
+"- PDM -> Pulsante destro del mouse"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:372
+msgid "MMB"
+msgstr "PCM"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:373
+msgid "RMB"
+msgstr "PDM"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:379
+msgid "Multiple Selection"
+msgstr "Selezione multipla"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:381
+msgid "Select the key used for multiple selection."
+msgstr "Imposta il tasto per le selezioni multiple."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:383
+msgid "CTRL"
+msgstr "CTRL"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:384
+msgid "SHIFT"
+msgstr "SHIFT"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:395
+msgid "Delete object confirmation"
+msgstr "Conferma eliminazione oggetto"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:397
+msgid ""
+"When checked the application will ask for user confirmation\n"
+"whenever the Delete object(s) event is triggered, either by\n"
+"menu shortcut or key shortcut."
+msgstr ""
+"Se selezionata, l'applicazione richiederà la conferma all'utente\n"
+"ogni volta che viene attivato l'evento Elimina oggetto/i, da\n"
+"scorciatoia menu o da tasto di scelta rapida."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:404
+msgid "\"Open\" behavior"
+msgstr "Comportamento \"Apri\""
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:406
+msgid ""
+"When checked the path for the last saved file is used when saving files,\n"
+"and the path for the last opened file is used when opening files.\n"
+"\n"
+"When unchecked the path for opening files is the one used last: either the\n"
+"path for saving files or the path for opening files."
+msgstr ""
+"Se selezionato, il percorso dell'ultimo file salvato viene utilizzato "
+"durante il salvataggio dei file,\n"
+"e il percorso dell'ultimo file aperto viene utilizzato durante l'apertura "
+"dei file.\n"
+"\n"
+"Se deselezionato, il percorso di apertura dei file è quello utilizzato per "
+"ultimo: sia\n"
+"percorso di salvataggio sia percorso di apertura dei file."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:415
+msgid "Enable ToolTips"
+msgstr "Abilita ToolTips"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:417
+msgid ""
+"Check this box if you want to have toolTips displayed\n"
+"when hovering with mouse over items throughout the App."
+msgstr ""
+"Selezionare questa casella se si desidera visualizzare le descrizioni "
+"comandi\n"
+"quando si passa con il mouse sugli oggetti in tutta l'app."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:424
+msgid "Allow Machinist Unsafe Settings"
+msgstr "Consenti le impostazioni non sicure dell'operatore"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:426
+msgid ""
+"If checked, some of the application settings will be allowed\n"
+"to have values that are usually unsafe to use.\n"
+"Like Z travel negative values or Z Cut positive values.\n"
+"It will applied at the next application start.\n"
+"<>: Don't change this unless you know what you are doing !!!"
+msgstr ""
+"Se selezionato, alcune impostazioni dell'applicazione potranno\n"
+"avere valori che di solito non sono sicuri da usare.\n"
+"Come spostamenti in Z con valori negativi o tagli in Z con valori positivi.\n"
+"Verrà applicato al successivo avvio dell'applicazione.\n"
+"<>: non cambiarlo se non sai cosa stai facendo !!!"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:438
+msgid "Bookmarks limit"
+msgstr "Limite segnalibri"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:440
+msgid ""
+"The maximum number of bookmarks that may be installed in the menu.\n"
+"The number of bookmarks in the bookmark manager may be greater\n"
+"but the menu will hold only so much."
+msgstr ""
+"Il massimo numero di sgnalibri che possono essere installati nel menu.\n"
+"Il numero di segnalibri nel gestore segnalibri può essere maggiore\n"
+"ma il menu ne conterrà solo la quantità qui specificata."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:449
+msgid "Activity Icon"
+msgstr "Icona attività"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:451
+msgid "Select the GIF that show activity when FlatCAM is active."
+msgstr "Selezione una GIF che mostra quando FlatCAM è attivo."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:29
+msgid "App Preferences"
+msgstr "Preferenze App"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:40
+msgid ""
+"The default value for FlatCAM units.\n"
+"Whatever is selected here is set every time\n"
+"FlatCAM is started."
+msgstr ""
+"Il valore predefinito per le unità FlatCAM.\n"
+"Qualunque cosa sia qui selezionata verrà impostata ad ogni\n"
+"avvio di FlatCAM."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:44
+msgid "IN"
+msgstr "IN"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:50
+msgid "Precision MM"
+msgstr "Precisione MM"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:52
+msgid ""
+"The number of decimals used throughout the application\n"
+"when the set units are in METRIC system.\n"
+"Any change here require an application restart."
+msgstr ""
+"Numero di decimali usati nell'applicazione\n"
+"quando è impostata l'unità del sistema METRICO.\n"
+"Ogni modifica richiederà il riavvio del programma."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:64
+msgid "Precision INCH"
+msgstr "Precisione POLLICI"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:66
+msgid ""
+"The number of decimals used throughout the application\n"
+"when the set units are in INCH system.\n"
+"Any change here require an application restart."
+msgstr ""
+"Numero di decimali usati nell'applicazione\n"
+"quando è impostata l'unità del sistema POLLICI.\n"
+"Ogni modifica richiederà il riavvio del programma."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:78
+msgid "Graphic Engine"
+msgstr "Motore grafico"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:79
+msgid ""
+"Choose what graphic engine to use in FlatCAM.\n"
+"Legacy(2D) -> reduced functionality, slow performance but enhanced "
+"compatibility.\n"
+"OpenGL(3D) -> full functionality, high performance\n"
+"Some graphic cards are too old and do not work in OpenGL(3D) mode, like:\n"
+"Intel HD3000 or older. In this case the plot area will be black therefore\n"
+"use the Legacy(2D) mode."
+msgstr ""
+"Scegli quale motore grafico utilizzare in FlatCAM.\n"
+"Legacy (2D) -> funzionalità ridotta, prestazioni lente ma compatibilità "
+"migliore.\n"
+"OpenGL (3D) -> piena funzionalità, alte prestazioni\n"
+"Alcune schede grafiche sono troppo vecchie e non funzionano in modalità "
+"OpenGL (3D), come:\n"
+"Intel HD3000 o precedente. In questo caso l'area della trama apparirà nera\n"
+"quindi usa la modalità Legacy (2D)."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:85
+msgid "Legacy(2D)"
+msgstr "Legacy(2D)"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:86
+msgid "OpenGL(3D)"
+msgstr "OpenGL(3D)"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:98
+msgid "APP. LEVEL"
+msgstr "LIVELLO APP"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:99
+msgid ""
+"Choose the default level of usage for FlatCAM.\n"
+"BASIC level -> reduced functionality, best for beginner's.\n"
+"ADVANCED level -> full functionality.\n"
+"\n"
+"The choice here will influence the parameters in\n"
+"the Selected Tab for all kinds of FlatCAM objects."
+msgstr ""
+"Scegli il livello di utilizzo predefinito per FlatCAM.\n"
+"Livello BASE -> funzionalità ridotta, ideale per i principianti.\n"
+"Livello AVANZATO -> piena funzionalità.\n"
+"\n"
+"La scelta qui influenzerà i parametri nelle\n"
+"schede selezionate per tutti i tipi di oggetti FlatCAM."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:105
+#: AppObjects/FlatCAMExcellon.py:696 AppObjects/FlatCAMGeometry.py:582
+#: AppObjects/FlatCAMGerber.py:278
+msgid "Advanced"
+msgstr "Avanzato"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:111
+msgid "Portable app"
+msgstr "App portabile"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:112
+msgid ""
+"Choose if the application should run as portable.\n"
+"\n"
+"If Checked the application will run portable,\n"
+"which means that the preferences files will be saved\n"
+"in the application folder, in the lib\\config subfolder."
+msgstr ""
+"Scegli se l'applicazione deve essere eseguita come portabile.\n"
+"\n"
+"Se selezionata l'applicazione funzionerà come portabile,\n"
+"ciò significa che i file delle preferenze verranno salvati\n"
+"nella cartella dell'applicazione, nella sottocartella lib\\config."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:125
+msgid "Languages"
+msgstr "Lingua"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:126
+msgid "Set the language used throughout FlatCAM."
+msgstr "Imposta la lingua usata in FlatCAM."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:132
+msgid "Apply Language"
+msgstr "Applica lingua"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:133
+msgid ""
+"Set the language used throughout FlatCAM.\n"
+"The app will restart after click."
+msgstr ""
+"Imposta la lingua usata in FlatCAM. L'App verrà riavviata dopo il click."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:147
+msgid "Startup Settings"
+msgstr "Impostazioni avvio"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:151
+msgid "Splash Screen"
+msgstr "Schermata iniziale"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:153
+msgid "Enable display of the splash screen at application startup."
+msgstr "Abilita la visualizzazione della schermata iniziale all'avvio."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:165
+msgid "Sys Tray Icon"
+msgstr "Icona barra di sistema"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:167
+msgid "Enable display of FlatCAM icon in Sys Tray."
+msgstr "Abilita l'icona di FlatCAM nella barra di sistema."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:172
+msgid "Show Shell"
+msgstr "Mostra shell"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:174
+msgid ""
+"Check this box if you want the shell to\n"
+"start automatically at startup."
+msgstr ""
+"Seleziona questa casella se vuoi che la shell sia eseguita\n"
+"automaticamente all'avvio."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:181
+msgid "Show Project"
+msgstr "Mostra progetto"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:183
+msgid ""
+"Check this box if you want the project/selected/tool tab area to\n"
+"to be shown automatically at startup."
+msgstr ""
+"Selezionare questa casella se si desidera che l'area del progetto/selezione/"
+"scheda strumenti\n"
+"sia mostrata automaticamente all'avvio."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:189
+msgid "Version Check"
+msgstr "Controllo versione"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:191
+msgid ""
+"Check this box if you want to check\n"
+"for a new version automatically at startup."
+msgstr ""
+"Selezionare questa casella se si desidera controllare\n"
+"automaticamente all'avvio la presenza di una nuova versione."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:198
+msgid "Send Statistics"
+msgstr "Invia statistiche"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:200
+msgid ""
+"Check this box if you agree to send anonymous\n"
+"stats automatically at startup, to help improve FlatCAM."
+msgstr ""
+"Seleziona questa casella se accetti di inviare anonimamente\n"
+"alcune statistiche all'avvio, per aiutare a migliorare FlatCAM."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:214
+msgid "Workers number"
+msgstr "Numero lavori"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:216
+msgid ""
+"The number of Qthreads made available to the App.\n"
+"A bigger number may finish the jobs more quickly but\n"
+"depending on your computer speed, may make the App\n"
+"unresponsive. Can have a value between 2 and 16.\n"
+"Default value is 2.\n"
+"After change, it will be applied at next App start."
+msgstr ""
+"Il numero di processi resi disponibili all'app.\n"
+"Un numero maggiore può finire i lavori più rapidamente ma\n"
+"a seconda della velocità del tuo computer, potrebbe rendere l'app\n"
+"non responsiva. Può avere un valore compreso tra 2 e 16.\n"
+"Il valore predefinito è 2.\n"
+"Ogni modifica sarà applicata al prossimo avvio dell'app."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:230
+msgid "Geo Tolerance"
+msgstr "Tolleranza geometrie"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:232
+msgid ""
+"This value can counter the effect of the Circle Steps\n"
+"parameter. Default value is 0.005.\n"
+"A lower value will increase the detail both in image\n"
+"and in Gcode for the circles, with a higher cost in\n"
+"performance. Higher value will provide more\n"
+"performance at the expense of level of detail."
+msgstr ""
+"Questo valore può contenere l'effetto dei passi nei Cerchi.\n"
+"Il valore predefinito è 0,005.\n"
+"Un valore più basso aumenterà i dettagli sia nell'immagine\n"
+"e nel Gcode per i cerchi ma con un costo maggiore in\n"
+"termini di prestazioni. Un valore più elevato fornirà più\n"
+"prestazioni a scapito del livello di dettaglio."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:252
+msgid "Save Settings"
+msgstr "Salva impostazioni"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:256
+msgid "Save Compressed Project"
+msgstr "Salva progetti ompressi"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:258
+msgid ""
+"Whether to save a compressed or uncompressed project.\n"
+"When checked it will save a compressed FlatCAM project."
+msgstr ""
+"Imposta se salvare un progetto compresso o non compresso.\n"
+"Se selezionato, salverà un progetto FlatCAM compresso."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:267
+msgid "Compression"
+msgstr "Compressione"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:269
+msgid ""
+"The level of compression used when saving\n"
+"a FlatCAM project. Higher value means better compression\n"
+"but require more RAM usage and more processing time."
+msgstr ""
+"Il livello di compressione utilizzato durante il salvataggio di\n"
+"progetti FlatCAM. Un valore più alto significa una maggior compressione\n"
+"ma richiede più utilizzo di RAM e più tempo di elaborazione."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:280
+msgid "Enable Auto Save"
+msgstr "Abilita autosalvataggio"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:282
+msgid ""
+"Check to enable the autosave feature.\n"
+"When enabled, the application will try to save a project\n"
+"at the set interval."
+msgstr ""
+"Attiva per abilitare il salvataggio automatico.\n"
+"Quanto attivo, l'applicazione tenterà di salvare il progetto\n"
+"ad intervalli regolari."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:292
+msgid "Interval"
+msgstr "Intervallo"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:294
+msgid ""
+"Time interval for autosaving. In milliseconds.\n"
+"The application will try to save periodically but only\n"
+"if the project was saved manually at least once.\n"
+"While active, some operations may block this feature."
+msgstr ""
+"Intervallo di tempo per il salvataggio automatico. In millisecondi.\n"
+"L'applicazione proverà a salvare periodicamente ma solo\n"
+"se il progetto è stato salvato manualmente almeno una volta.\n"
+"Quando attivo, alcune operazioni potrebbero bloccare questa funzione."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:310
+msgid "Text to PDF parameters"
+msgstr "Parametri conversione da testo a PDF"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:312
+msgid "Used when saving text in Code Editor or in FlatCAM Document objects."
+msgstr ""
+"Utilizzato quando si salva il testo nell'editor di Codice o negli oggetti "
+"documento di FlatCAM."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:321
+msgid "Top Margin"
+msgstr "Margine superiore"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:323
+msgid "Distance between text body and the top of the PDF file."
+msgstr "Distanza fra il corpo del testo e il bordo superiore del file PDF."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:334
+msgid "Bottom Margin"
+msgstr "Margine inferiore"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:336
+msgid "Distance between text body and the bottom of the PDF file."
+msgstr "Distanza fra il corpo del testo e il bordo inferiore del file PDF."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:347
+msgid "Left Margin"
+msgstr "Margine sinistro"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:349
+msgid "Distance between text body and the left of the PDF file."
+msgstr "Distanza fra il corpo del testo e il bordo sinistro del file PDF."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:360
+msgid "Right Margin"
+msgstr "Margine destro"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:362
+msgid "Distance between text body and the right of the PDF file."
+msgstr "Distanza fra il corpo del testo e il bordo destro del file PDF."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:26
+msgid "GUI Preferences"
+msgstr "Preferenze GUI"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:36
+msgid "Theme"
+msgstr "Tema"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:38
+msgid ""
+"Select a theme for FlatCAM.\n"
+"It will theme the plot area."
+msgstr ""
+"Seleziona un tema per FlatCAM.\n"
+"Sarà applicato all'area di plot."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:43
+msgid "Light"
+msgstr "Chiaro"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:44
+msgid "Dark"
+msgstr "Scuro"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:51
+msgid "Use Gray Icons"
+msgstr "Usa icone grige"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:53
+msgid ""
+"Check this box to use a set of icons with\n"
+"a lighter (gray) color. To be used when a\n"
+"full dark theme is applied."
+msgstr ""
+"Seleziona questa casella per utilizzare un set di icone con\n"
+"un colore più chiaro (grigio). Da usare quando\n"
+"viene applicato il tema scuro."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:73
+msgid "Layout"
+msgstr "Livello"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:75
+msgid ""
+"Select an layout for FlatCAM.\n"
+"It is applied immediately."
+msgstr ""
+"Seleziona un livello per FlatCAM.\n"
+"Sarà applicato immediatamente."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:95
+msgid "Style"
+msgstr "Stile"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:97
+msgid ""
+"Select an style for FlatCAM.\n"
+"It will be applied at the next app start."
+msgstr ""
+"Seleziona uno stile per FlatCAM.\n"
+"Sarà applicato al prossimo riavvio del programma."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:111
+msgid "Activate HDPI Support"
+msgstr "Attiva supporto HDPI"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:113
+msgid ""
+"Enable High DPI support for FlatCAM.\n"
+"It will be applied at the next app start."
+msgstr ""
+"Abilita il supporto HDPI per FlatCAM.\n"
+"Sarà applicato al prossimo avvio del programma."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:127
+msgid "Display Hover Shape"
+msgstr "Visualizza forme al passaggio del mouse"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:129
+msgid ""
+"Enable display of a hover shape for FlatCAM objects.\n"
+"It is displayed whenever the mouse cursor is hovering\n"
+"over any kind of not-selected object."
+msgstr ""
+"Abilita la visualizzazione delle forme al passaggio del mouse sugli oggetti "
+"FlatCAM.\n"
+"Viene visualizzato ogni volta che si sposta il cursore del mouse\n"
+"su qualsiasi tipo di oggetto non selezionato."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:136
+msgid "Display Selection Shape"
+msgstr "Mostra forme selezione"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:138
+msgid ""
+"Enable the display of a selection shape for FlatCAM objects.\n"
+"It is displayed whenever the mouse selects an object\n"
+"either by clicking or dragging mouse from left to right or\n"
+"right to left."
+msgstr ""
+"Abilita la visualizzazione delle forma della selezione per gli oggetti "
+"FlatCAM.\n"
+"Viene visualizzato ogni volta che il mouse seleziona un oggetto\n"
+"facendo clic o trascinando il mouse da sinistra a destra o\n"
+"da destra a sinistra."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:151
+msgid "Left-Right Selection Color"
+msgstr "Selezione colore sinistra-destra"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:156
+msgid "Set the line color for the 'left to right' selection box."
+msgstr "Imposta il colore per il box selezione 'da sinistra a destra'."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:172
+msgid ""
+"Set the fill color for the selection box\n"
+"in case that the selection is done from left to right.\n"
+"First 6 digits are the color and the last 2\n"
+"digits are for alpha (transparency) level."
+msgstr ""
+"Imposta il colore di riempimento per la casella di selezione\n"
+"nel caso in cui la selezione venga effettuata da sinistra a destra.\n"
+"Le prime 6 cifre sono il colore e le ultime 2\n"
+"cifre sono per il livello alfa (trasparenza)."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:192
+msgid "Set the fill transparency for the 'left to right' selection box."
+msgstr ""
+"Imposta la trasparenza della casella di selezione 'da sinistra a destra'."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:216
+msgid "Right-Left Selection Color"
+msgstr "Selezione colore destra-sinistra"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:222
+msgid "Set the line color for the 'right to left' selection box."
+msgstr "Imposta il colore per il box selezione 'da destra a sinistra'."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:239
+msgid ""
+"Set the fill color for the selection box\n"
+"in case that the selection is done from right to left.\n"
+"First 6 digits are the color and the last 2\n"
+"digits are for alpha (transparency) level."
+msgstr ""
+"Imposta il colore di riempimento per la casella di selezione\n"
+"nel caso in cui la selezione venga effettuata da destra a sinistra.\n"
+"Le prime 6 cifre sono il colore e le ultime 2\n"
+"cifre sono per il livello alfa (trasparenza)."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:259
+msgid "Set the fill transparency for selection 'right to left' box."
+msgstr ""
+"Imposta la trasparenza della casella di selezione 'da destra a sinistra'."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:286
+msgid "Editor Color"
+msgstr "Colore editor"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:290
+msgid "Drawing"
+msgstr "Disegno"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:292
+msgid "Set the color for the shape."
+msgstr "Imposta il colore per le forme."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:309
+msgid "Set the color of the shape when selected."
+msgstr "Imposta il colore delle forme quando selezionate."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:332
+msgid "Project Items Color"
+msgstr "Colori oggetti del progetto"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:336
+msgid "Enabled"
+msgstr "Abilitato"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:338
+msgid "Set the color of the items in Project Tab Tree."
+msgstr "Imposta il colore degli elementi nell'albero Tab progetto."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:352
+msgid "Disabled"
+msgstr "Disabilitato"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:354
+msgid ""
+"Set the color of the items in Project Tab Tree,\n"
+"for the case when the items are disabled."
+msgstr ""
+"Imposta il colore degli elementi nell'albero Tab progetto,\n"
+"nel caso gli elementi siano disabilitati."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:370
+msgid "Project AutoHide"
+msgstr "Nascondi automaticamente progetto"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:372
+msgid ""
+"Check this box if you want the project/selected/tool tab area to\n"
+"hide automatically when there are no objects loaded and\n"
+"to show whenever a new object is created."
+msgstr ""
+"Selezionare questa casella se si desidera che l'area del progetto/"
+"selezionato/scheda strumento\n"
+"sia nascosta automaticamente quando non ci sono oggetti caricati e\n"
+"mostrarla ogni volta che viene creato un nuovo oggetto."
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:27
+msgid "Geometry Adv. Options"
+msgstr "Opzioni avanzate Geometrie"
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:35
+msgid ""
+"A list of Geometry advanced parameters.\n"
+"Those parameters are available only for\n"
+"Advanced App. Level."
+msgstr ""
+"Un elenco di parametri avanzati di Geometria.\n"
+"Tali parametri sono disponibili solo per\n"
+"App a livello avanzato."
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:45
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:112
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:134
+#: AppTools/ToolCalibration.py:125 AppTools/ToolSolderPaste.py:240
+msgid "Toolchange X-Y"
+msgstr "Cambio utensile X-Y"
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:56
+msgid ""
+"Height of the tool just after starting the work.\n"
+"Delete the value if you don't need this feature."
+msgstr ""
+"Altezza dell'utensile subito dopo l'inizio del lavoro.\n"
+"Elimina il valore se non hai bisogno di questa funzione."
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:158
+msgid "Segment X size"
+msgstr "Dimensione X del segmento"
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:160
+msgid ""
+"The size of the trace segment on the X axis.\n"
+"Useful for auto-leveling.\n"
+"A value of 0 means no segmentation on the X axis."
+msgstr ""
+"La dimensione del segmento di traccia sull'asse X.\n"
+"Utile per il livellamento automatico.\n"
+"Un valore 0 significa nessuna segmentazione sull'asse X."
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:174
+msgid "Segment Y size"
+msgstr "Dimensione Y del segmento"
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:176
+msgid ""
+"The size of the trace segment on the Y axis.\n"
+"Useful for auto-leveling.\n"
+"A value of 0 means no segmentation on the Y axis."
+msgstr ""
+"La dimensione del segmento di traccia sull'asse Y.\n"
+"Utile per il livellamento automatico.\n"
+"Un valore 0 significa nessuna segmentazione sull'asse Y."
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:192
+#, fuzzy
+#| msgid "Area Selection"
+msgid "Area Exclusion"
+msgstr "Selezione Area"
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:194
+#, fuzzy
+#| msgid ""
+#| "A list of Excellon advanced parameters.\n"
+#| "Those parameters are available only for\n"
+#| "Advanced App. Level."
+msgid ""
+"Area exclusion parameters.\n"
+"Those parameters are available only for\n"
+"Advanced App. Level."
+msgstr ""
+"Un elenco di parametri avanzati di Excellon.\n"
+"Tali parametri sono disponibili solo per\n"
+"App a livello avanzato."
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:201
+msgid "Exclusion areas"
+msgstr ""
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:212
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:322
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:286
+#: AppTools/ToolNCC.py:578 AppTools/ToolPaint.py:521
+msgid "Shape"
+msgstr "Forma"
+
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:33
+msgid "A list of Geometry Editor parameters."
+msgstr "Lista di parametri editor Geometrie."
+
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:43
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:196
+msgid ""
+"Set the number of selected geometry\n"
+"items above which the utility geometry\n"
+"becomes just a selection rectangle.\n"
+"Increases the performance when moving a\n"
+"large number of geometric elements."
+msgstr ""
+"Imposta il numero di elementi della geometria\n"
+" selezionata sopra i quali la geometria\n"
+"diventa solo un rettangolo di selezione.\n"
+"Aumenta le prestazioni quando si usano un\n"
+"gran numero di elementi geometrici."
+
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:27
+msgid "Geometry General"
+msgstr "Generali geometrie"
+
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:49
+msgid ""
+"The number of circle steps for Geometry \n"
+"circle and arc shapes linear approximation."
+msgstr ""
+"Il numero di passi del cerchio per Geometria \n"
+"per le approssimazioni lineari di cerchi ed archi."
+
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:63
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:41
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:48
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:42
+msgid "Tools Dia"
+msgstr "Diametro utensile"
+
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:65
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:108
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:43
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:50
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:44
+msgid ""
+"Diameters of the tools, separated by comma.\n"
+"The value of the diameter has to use the dot decimals separator.\n"
+"Valid values: 0.3, 1.0"
+msgstr ""
+"Diametri degli utensili, separati da virgola.\n"
+"Il valore del diametro deve utilizzare il punto come separatore decimale.\n"
+"Valori validi: 0.3, 1.0"
+
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:80
+msgid "Geometry Object Color"
+msgstr "Colore oggetti Geometria"
+
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:28
+msgid "Geometry Options"
+msgstr "Opzioni geometria"
+
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:36
+msgid ""
+"Create a CNC Job object\n"
+"tracing the contours of this\n"
+"Geometry object."
+msgstr ""
+"Crea un oggetto CNC Job\n"
+"tracciando i contorni di questo\n"
+"oggetto geometria."
+
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:80
+msgid "Depth/Pass"
+msgstr "Profondità/passata"
+
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:82
+msgid ""
+"The depth to cut on each pass,\n"
+"when multidepth is enabled.\n"
+"It has positive value although\n"
+"it is a fraction from the depth\n"
+"which has negative value."
+msgstr ""
+"La profondità da tagliare ad ogni passaggio,\n"
+"quando il multi-profondità è abilitato.\n"
+"Ha un valore positivo sebbene\n"
+"sia una frazione dalla profondità\n"
+"che ha un negativo."
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:27
+msgid "Gerber Adv. Options"
+msgstr "Opzioni avanzate Gerber"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:33
+msgid ""
+"A list of Gerber advanced parameters.\n"
+"Those parameters are available only for\n"
+"Advanced App. Level."
+msgstr ""
+"Un elenco di parametri Gerber avanzati.\n"
+"Tali parametri sono disponibili solo per\n"
+"App a livello avanzato."
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:52
+msgid "Table Show/Hide"
+msgstr "Mostra/Nasconti tabella"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:54
+msgid ""
+"Toggle the display of the Gerber Apertures Table.\n"
+"Also, on hide, it will delete all mark shapes\n"
+"that are drawn on canvas."
+msgstr ""
+"(Dis)attiva la visualizzazione della tabella delle aperrture del Gerber.\n"
+"Inoltre, su nascondi, eliminerà tutte le forme dei segni\n"
+"che sono disegnati."
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:134
+msgid "Exterior"
+msgstr "Esterno"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:135
+msgid "Interior"
+msgstr "Interno"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:146
+#: AppObjects/FlatCAMGerber.py:497 AppTools/ToolCopperThieving.py:1022
+#: AppTools/ToolCopperThieving.py:1211 AppTools/ToolCopperThieving.py:1223
+#: AppTools/ToolNCC.py:2059 AppTools/ToolNCC.py:2170 AppTools/ToolNCC.py:2185
+#: AppTools/ToolNCC.py:3149 AppTools/ToolNCC.py:3254 AppTools/ToolNCC.py:3269
+#: AppTools/ToolNCC.py:3535 AppTools/ToolNCC.py:3636 AppTools/ToolNCC.py:3651
+#: camlib.py:982
+msgid "Buffering"
+msgstr "Riempimento"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:148
+msgid ""
+"Buffering type:\n"
+"- None --> best performance, fast file loading but no so good display\n"
+"- Full --> slow file loading but good visuals. This is the default.\n"
+"<>: Don't change this unless you know what you are doing !!!"
+msgstr ""
+"Tipo di buffer:\n"
+"- Nessuno -> migliori prestazioni, caricamento rapido dei file ma "
+"visualizzazione non così buona\n"
+"- Completo -> caricamento lento dei file ma buona grafica. Questo è il "
+"valore predefinito.\n"
+"<>: non cambiarlo se non sai cosa stai facendo !!!"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:153
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:207
+#: AppTools/ToolFiducials.py:201 AppTools/ToolFilm.py:238
+#: AppTools/ToolProperties.py:452 AppTools/ToolProperties.py:455
+#: AppTools/ToolProperties.py:458 AppTools/ToolProperties.py:483
+msgid "None"
+msgstr "Nessuno"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:159
+msgid "Simplify"
+msgstr "Semplifica"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:161
+msgid ""
+"When checked all the Gerber polygons will be\n"
+"loaded with simplification having a set tolerance.\n"
+"<>: Don't change this unless you know what you are doing !!!"
+msgstr ""
+"Se selezionato, tutti i poligoni del Gerber saranno\n"
+"caricati con una semplificazione con la tolleranza impostata.\n"
+"<>: non cambiarlo se non sai cosa stai facendo !!!"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:168
+msgid "Tolerance"
+msgstr "Tolleranza"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:169
+msgid "Tolerance for polygon simplification."
+msgstr "Tolleranza per semplificazione poligoni."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:33
+msgid "A list of Gerber Editor parameters."
+msgstr "Lista di parametri edito Gerber."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:43
+msgid ""
+"Set the number of selected Gerber geometry\n"
+"items above which the utility geometry\n"
+"becomes just a selection rectangle.\n"
+"Increases the performance when moving a\n"
+"large number of geometric elements."
+msgstr ""
+"Imposta il numero di geometrie Gerber selezionate\n"
+"sopra al quali le geometriediventeranno\n"
+"solo dei rettangoli di selezione.\n"
+"Aumenta le prestazioni quando si sposta un\n"
+"gran numero di elementi geometrici."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:56
+msgid "New Aperture code"
+msgstr "Nuovo codice Apertura"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:69
+msgid "New Aperture size"
+msgstr "Nuova dimensione Apertura"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:71
+msgid "Size for the new aperture"
+msgstr "Dimensione per la nuova apertura"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:82
+msgid "New Aperture type"
+msgstr "Tipo nuova apertura"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:84
+msgid ""
+"Type for the new aperture.\n"
+"Can be 'C', 'R' or 'O'."
+msgstr ""
+"Tipo per la nuova apertura.\n"
+"Può essere 'C', 'R' o 'O'."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:106
+msgid "Aperture Dimensions"
+msgstr "Dimensione apertura"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:116
+msgid "Linear Pad Array"
+msgstr "Matrice lineare di pad"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:160
+msgid "Circular Pad Array"
+msgstr "Matrice circolare di pad"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:196
+msgid "Distance at which to buffer the Gerber element."
+msgstr "Distanza alla quale bufferizzare l'elemento Gerber."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:205
+msgid "Scale Tool"
+msgstr "Strumento scala"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:211
+msgid "Factor to scale the Gerber element."
+msgstr "Fattore al quale scalare gli elementi Gerber."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:224
+msgid "Threshold low"
+msgstr "Soglia inferiore"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:226
+msgid "Threshold value under which the apertures are not marked."
+msgstr "Valore di soglia sotto alla quale le aperture non saranno marchiate."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:236
+msgid "Threshold high"
+msgstr "Soglia superiore"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:238
+msgid "Threshold value over which the apertures are not marked."
+msgstr "Valore di soglia sopra alla quale le aperture non saranno marchiate."
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:27
+msgid "Gerber Export"
+msgstr "Esporta Gerber"
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:33
+msgid ""
+"The parameters set here are used in the file exported\n"
+"when using the File -> Export -> Export Gerber menu entry."
+msgstr ""
+"I parametri impostati qui vengono utilizzati nel file esportato\n"
+"quando si utilizza la voce di menu File -> Esporta -> Esporta Gerber."
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:44
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:50
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:84
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:90
+msgid "The units used in the Gerber file."
+msgstr "Le unità utilizzate nei file Gerber."
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:58
+msgid ""
+"The number of digits in the whole part of the number\n"
+"and in the fractional part of the number."
+msgstr ""
+"Numero di cifre nella parte intera del numero\n"
+"e nella parte frazionaria del numero."
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:71
+msgid ""
+"This numbers signify the number of digits in\n"
+"the whole part of Gerber coordinates."
+msgstr ""
+"Questi numeri indicano il numero di cifre nella\n"
+"parte intera delle coordinate di Gerber."
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:87
+msgid ""
+"This numbers signify the number of digits in\n"
+"the decimal part of Gerber coordinates."
+msgstr ""
+"Questi numeri indicano il numero di cifre nella\n"
+"parte decimale delle coordinate di Gerber."
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:99
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:109
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:100
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:110
+msgid ""
+"This sets the type of Gerber zeros.\n"
+"If LZ then Leading Zeros are removed and\n"
+"Trailing Zeros are kept.\n"
+"If TZ is checked then Trailing Zeros are removed\n"
+"and Leading Zeros are kept."
+msgstr ""
+"Questo imposta il tipo di zeri dei Gerber.\n"
+"Se ZI vengono rimossi gli zeri iniziali e\n"
+"mantenuti quelli finali.\n"
+"Se ZF è selezionato, gli Zeri finali vengono rimossi\n"
+"e mantenuti gli Zeri iniziali."
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:27
+msgid "Gerber General"
+msgstr "Generali Gerber"
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:45
+msgid "M-Color"
+msgstr "Colori-M"
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:61
+msgid ""
+"The number of circle steps for Gerber \n"
+"circular aperture linear approximation."
+msgstr ""
+"Il numero di passi del cerchio per le aperture circolari\n"
+"del Gerber ad approssimazione lineare."
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:73
+msgid "Default Values"
+msgstr "Valori di default"
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:75
+msgid ""
+"Those values will be used as fallback values\n"
+"in case that they are not found in the Gerber file."
+msgstr ""
+"Tali valori verranno utilizzati come valori di ripristino\n"
+"nel caso in cui non vengano trovati nel file Gerber."
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:126
+msgid "Clean Apertures"
+msgstr "Pulisci aperture"
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:128
+msgid ""
+"Will remove apertures that do not have geometry\n"
+"thus lowering the number of apertures in the Gerber object."
+msgstr ""
+"Rimuoverà le aperture che non hanno geometria\n"
+"riducendo così il numero di aperture nell'oggetto Gerber."
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:134
+msgid "Polarity change buffer"
+msgstr "Buffer di modifica polarità"
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:136
+msgid ""
+"Will apply extra buffering for the\n"
+"solid geometry when we have polarity changes.\n"
+"May help loading Gerber files that otherwise\n"
+"do not load correctly."
+msgstr ""
+"Applicherà il buffering extra per le geometrie\n"
+"solide quando si verificano cambiamenti di polarità.\n"
+"Può aiutare a caricare file Gerber che altrimenti\n"
+"non si caricherebbe correttamente."
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:149
+msgid "Gerber Object Color"
+msgstr "Colore oggetto Gerber"
+
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:29
+msgid "Gerber Options"
+msgstr "Opzioni gerber"
+
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:107
+msgid "Combine Passes"
+msgstr "Combina Passi"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:27
+msgid "Copper Thieving Tool Options"
+msgstr "Opzioni dello strumento deposito rame (Copper Thieving)"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:39
+msgid ""
+"A tool to generate a Copper Thieving that can be added\n"
+"to a selected Gerber file."
+msgstr ""
+"Uno strumento per generare un deposito di rame che può essere aggiunto\n"
+"in un file Gerber selezionato."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:47
+msgid "Number of steps (lines) used to interpolate circles."
+msgstr "Numero di passi (linee) usato per interpolare i cerchi."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261
+#: AppTools/ToolCopperThieving.py:96 AppTools/ToolCopperThieving.py:431
+msgid "Clearance"
+msgstr "Distanza"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:59
+msgid ""
+"This set the distance between the copper Thieving components\n"
+"(the polygon fill may be split in multiple polygons)\n"
+"and the copper traces in the Gerber file."
+msgstr ""
+"Imposta la distanza tra componenti del Copper Thieving\n"
+"(i poligoni possono essere divisi in sottopoligoni)\n"
+"e le tracce di rame nel file Gerber."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
+#: AppTools/ToolCopperThieving.py:125 AppTools/ToolNCC.py:535
+#: AppTools/ToolNCC.py:1306 AppTools/ToolNCC.py:1635 AppTools/ToolNCC.py:1928
+#: AppTools/ToolNCC.py:1992 AppTools/ToolNCC.py:3013 AppTools/ToolNCC.py:3022
+#: defaults.py:406 tclCommands/TclCommandCopperClear.py:190
+msgid "Itself"
+msgstr "Stesso"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
+#: AppTools/ToolCopperThieving.py:126 AppTools/ToolNCC.py:535
+#: AppTools/ToolNCC.py:1316 AppTools/ToolNCC.py:1648 AppTools/ToolNCC.py:1944
+#: AppTools/ToolNCC.py:1999 AppTools/ToolPaint.py:485 AppTools/ToolPaint.py:945
+#: AppTools/ToolPaint.py:1451
+msgid "Area Selection"
+msgstr "Selezione Area"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
+#: AppTools/ToolCopperThieving.py:127 AppTools/ToolDblSided.py:216
+#: AppTools/ToolNCC.py:535 AppTools/ToolNCC.py:1664 AppTools/ToolNCC.py:1950
+#: AppTools/ToolNCC.py:2007 AppTools/ToolNCC.py:2383 AppTools/ToolNCC.py:2631
+#: AppTools/ToolNCC.py:3058 AppTools/ToolPaint.py:485 AppTools/ToolPaint.py:930
+#: AppTools/ToolPaint.py:1467 tclCommands/TclCommandCopperClear.py:192
+#: tclCommands/TclCommandPaint.py:166
+msgid "Reference Object"
+msgstr "Oggetto di riferimento"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90
+#: AppTools/ToolCopperThieving.py:129
+msgid "Reference:"
+msgstr "Riferimento:"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92
+msgid ""
+"- 'Itself' - the copper Thieving extent is based on the object extent.\n"
+"- 'Area Selection' - left mouse click to start selection of the area to be "
+"filled.\n"
+"- 'Reference Object' - will do copper thieving within the area specified by "
+"another object."
+msgstr ""
+"- 'Stesso': l'estensione delle aree di Copper Thieving si basa "
+"sull'estensione dell'oggetto.\n"
+"- 'Selezione area': fare clic con il pulsante sinistro del mouse per avviare "
+"la selezione dell'area da riempire.\n"
+"- 'Oggetto di riferimento': eseguirà il deposito di rame nell'area "
+"specificata da un altro oggetto."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:76
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190
+#: AppTools/ToolCopperThieving.py:171 AppTools/ToolExtractDrills.py:102
+#: AppTools/ToolExtractDrills.py:240 AppTools/ToolPunchGerber.py:113
+#: AppTools/ToolPunchGerber.py:268
+msgid "Rectangular"
+msgstr "Rettangolare"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102
+#: AppTools/ToolCopperThieving.py:172
+msgid "Minimal"
+msgstr "Minima"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104
+#: AppTools/ToolCopperThieving.py:174 AppTools/ToolFilm.py:94
+msgid "Box Type:"
+msgstr "Tipo contenitore:"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106
+#: AppTools/ToolCopperThieving.py:176
+msgid ""
+"- 'Rectangular' - the bounding box will be of rectangular shape.\n"
+"- 'Minimal' - the bounding box will be the convex hull shape."
+msgstr ""
+"- 'Rettangolare': il contenitore di selezione avrà una forma rettangolare.\n"
+"- 'Minimo': il riquadro di delimitazione avrà la forma convessa del guscio."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120
+#: AppTools/ToolCopperThieving.py:192
+msgid "Dots Grid"
+msgstr "Griglia punti"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121
+#: AppTools/ToolCopperThieving.py:193
+msgid "Squares Grid"
+msgstr "Griglia quadrati"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122
+#: AppTools/ToolCopperThieving.py:194
+msgid "Lines Grid"
+msgstr "Griglia linee"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124
+#: AppTools/ToolCopperThieving.py:196
+msgid "Fill Type:"
+msgstr "Tipo riempimento:"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126
+#: AppTools/ToolCopperThieving.py:198
+msgid ""
+"- 'Solid' - copper thieving will be a solid polygon.\n"
+"- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n"
+"- 'Squares Grid' - the empty area will be filled with a pattern of squares.\n"
+"- 'Lines Grid' - the empty area will be filled with a pattern of lines."
+msgstr ""
+"- 'Solido': il deposito di rame sarà un poligono solido.\n"
+"- 'Dots Grid': l'area vuota verrà riempita con uno schema di punti.\n"
+"- 'Squares Grid': l'area vuota verrà riempita con uno schema di quadrati.\n"
+"- 'Griglia di linee': l'area vuota verrà riempita con un motivo di linee."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134
+#: AppTools/ToolCopperThieving.py:217
+msgid "Dots Grid Parameters"
+msgstr "Parametri griglia di punti"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140
+#: AppTools/ToolCopperThieving.py:223
+msgid "Dot diameter in Dots Grid."
+msgstr "Diametro punti nella griglia di punti."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209
+#: AppTools/ToolCopperThieving.py:234 AppTools/ToolCopperThieving.py:274
+#: AppTools/ToolCopperThieving.py:314
+msgid "Spacing"
+msgstr "Spaziatura"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153
+#: AppTools/ToolCopperThieving.py:236
+msgid "Distance between each two dots in Dots Grid."
+msgstr "Distanza fra ogni coppia di punti nella griglia."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163
+#: AppTools/ToolCopperThieving.py:257
+msgid "Squares Grid Parameters"
+msgstr "Parametri griglia quadrati"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169
+#: AppTools/ToolCopperThieving.py:263
+msgid "Square side size in Squares Grid."
+msgstr "Dimensione quadrati nella griglia."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182
+#: AppTools/ToolCopperThieving.py:276
+msgid "Distance between each two squares in Squares Grid."
+msgstr "Distanza fra ogni coppia di quadrati nella griglia."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192
+#: AppTools/ToolCopperThieving.py:297
+msgid "Lines Grid Parameters"
+msgstr "Parametri griglia lineei"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198
+#: AppTools/ToolCopperThieving.py:303
+msgid "Line thickness size in Lines Grid."
+msgstr "Spessore delle linee nella griglia."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211
+#: AppTools/ToolCopperThieving.py:316
+msgid "Distance between each two lines in Lines Grid."
+msgstr "Distanza fra ogni coppia di linee nella griglia."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221
+#: AppTools/ToolCopperThieving.py:354
+msgid "Robber Bar Parameters"
+msgstr "Parametri \"rapinatore\""
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223
+#: AppTools/ToolCopperThieving.py:356
+msgid ""
+"Parameters used for the robber bar.\n"
+"Robber bar = copper border to help in pattern hole plating."
+msgstr ""
+"Parametri usati per il \"rapinatore\".\n"
+"\"Rapinatore\" = bordo in rame che aiuta nella placatura dei fori."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231
+#: AppTools/ToolCopperThieving.py:364
+msgid "Bounding box margin for robber bar."
+msgstr "Margine contenitore \"rapinatore\"."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:42
+#: AppTools/ToolCopperThieving.py:375 AppTools/ToolCorners.py:113
+#: AppTools/ToolEtchCompensation.py:96
+msgid "Thickness"
+msgstr "Spessore"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244
+#: AppTools/ToolCopperThieving.py:377
+msgid "The robber bar thickness."
+msgstr "Lo spessore del \"rapinatore\"."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254
+#: AppTools/ToolCopperThieving.py:408
+msgid "Pattern Plating Mask"
+msgstr "Maschera di placatura"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256
+#: AppTools/ToolCopperThieving.py:410
+msgid "Generate a mask for pattern plating."
+msgstr "Genera una maschera per la placatura."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263
+#: AppTools/ToolCopperThieving.py:433
+msgid ""
+"The distance between the possible copper thieving elements\n"
+"and/or robber bar and the actual openings in the mask."
+msgstr ""
+"La distanza tra i possibili elementi del Copper Thieving\n"
+"e/o barra del \"rapinatore\" e le aperture effettive nella maschera."
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:27
+msgid "Calibration Tool Options"
+msgstr "Opzioni strumento calibrazione"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:38
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:38
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:37
+#: AppTools/ToolCopperThieving.py:91 AppTools/ToolCorners.py:108
+#: AppTools/ToolFiducials.py:151
+msgid "Parameters used for this tool."
+msgstr "Parametri usati per questo strumento."
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:43
+#: AppTools/ToolCalibration.py:181
+msgid "Source Type"
+msgstr "Tipo sorgente"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:44
+#: AppTools/ToolCalibration.py:182
+msgid ""
+"The source of calibration points.\n"
+"It can be:\n"
+"- Object -> click a hole geo for Excellon or a pad for Gerber\n"
+"- Free -> click freely on canvas to acquire the calibration points"
+msgstr ""
+"La sorgente dei punti di calibrazione.\n"
+"Può essere:\n"
+"- Oggetto -> click una geometria foro per Excellon o un pad per Gerber\n"
+"- Libero -> click su un punto libero per acquisirne i punti di calibrazione"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:49
+#: AppTools/ToolCalibration.py:187
+msgid "Free"
+msgstr "Libero"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:63
+#: AppTools/ToolCalibration.py:76
+msgid "Height (Z) for travelling between the points."
+msgstr "Altezza (Z) per gli spostamenti fra due punti."
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:75
+#: AppTools/ToolCalibration.py:88
+msgid "Verification Z"
+msgstr "Z di verifica"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:77
+#: AppTools/ToolCalibration.py:90
+msgid "Height (Z) for checking the point."
+msgstr "Altezza (Z) per il controllo dei punti."
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:89
+#: AppTools/ToolCalibration.py:102
+msgid "Zero Z tool"
+msgstr "Strumento Zero Z"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:91
+#: AppTools/ToolCalibration.py:104
+msgid ""
+"Include a sequence to zero the height (Z)\n"
+"of the verification tool."
+msgstr ""
+"Include una sequenza per l'azzeramento dell'altezza (Z)\n"
+"dello strumento di verifica."
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:100
+#: AppTools/ToolCalibration.py:113
+msgid "Height (Z) for mounting the verification probe."
+msgstr "Altezza (Z) per montare il tastatore."
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:114
+#: AppTools/ToolCalibration.py:127
+msgid ""
+"Toolchange X,Y position.\n"
+"If no value is entered then the current\n"
+"(x, y) point will be used,"
+msgstr ""
+"Posizione X,Y cambio utensile.\n"
+"In mancanza di valori sarà usato\n"
+"l'attuale punto (x,y),"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:125
+#: AppTools/ToolCalibration.py:153
+msgid "Second point"
+msgstr "Secondo punto"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:127
+#: AppTools/ToolCalibration.py:155
+msgid ""
+"Second point in the Gcode verification can be:\n"
+"- top-left -> the user will align the PCB vertically\n"
+"- bottom-right -> the user will align the PCB horizontally"
+msgstr ""
+"Secondo punto nella verifica del GCode può essere:\n"
+"- alto-sinistra -> l'utente allineerà il PCB verticalmente\n"
+"- basso-destra -> l'utente allineerà il PCB orizzontalmente"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:131
+#: AppTools/ToolCalibration.py:159 App_Main.py:4684
+msgid "Top-Left"
+msgstr "Alto-Sinistra"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:132
+#: AppTools/ToolCalibration.py:160 App_Main.py:4685
+msgid "Bottom-Right"
+msgstr "Basso-Destra"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:27
+msgid "Extract Drills Options"
+msgstr "Opzioni fori"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42
+#: AppTools/ToolExtractDrills.py:68 AppTools/ToolPunchGerber.py:75
+msgid "Processed Pads Type"
+msgstr "Tipo pad processati"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44
+#: AppTools/ToolExtractDrills.py:70 AppTools/ToolPunchGerber.py:77
+msgid ""
+"The type of pads shape to be processed.\n"
+"If the PCB has many SMD pads with rectangular pads,\n"
+"disable the Rectangular aperture."
+msgstr ""
+"Il tipo di forma dei pad da elaborare.\n"
+"Se il PCB ha molti pad SMD con pad rettangolari,\n"
+"disabilita l'apertura rettangolare."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54
+#: AppTools/ToolExtractDrills.py:80 AppTools/ToolPunchGerber.py:91
+msgid "Process Circular Pads."
+msgstr "Elabora pad circolari."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:60
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164
+#: AppTools/ToolExtractDrills.py:86 AppTools/ToolExtractDrills.py:214
+#: AppTools/ToolPunchGerber.py:97 AppTools/ToolPunchGerber.py:242
+msgid "Oblong"
+msgstr "Oblungo"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62
+#: AppTools/ToolExtractDrills.py:88 AppTools/ToolPunchGerber.py:99
+msgid "Process Oblong Pads."
+msgstr "Elabora pad oblunghi."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70
+#: AppTools/ToolExtractDrills.py:96 AppTools/ToolPunchGerber.py:107
+msgid "Process Square Pads."
+msgstr "Elabora pad quadrati."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78
+#: AppTools/ToolExtractDrills.py:104 AppTools/ToolPunchGerber.py:115
+msgid "Process Rectangular Pads."
+msgstr "Elabora pad rettangolari."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:84
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203
+#: AppTools/ToolExtractDrills.py:110 AppTools/ToolExtractDrills.py:253
+#: AppTools/ToolProperties.py:172 AppTools/ToolPunchGerber.py:121
+#: AppTools/ToolPunchGerber.py:281
+msgid "Others"
+msgstr "Altri"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86
+#: AppTools/ToolExtractDrills.py:112 AppTools/ToolPunchGerber.py:123
+msgid "Process pads not in the categories above."
+msgstr "Elabora pad non appartenenti alle categoria sopra."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:99
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125
+#: AppTools/ToolExtractDrills.py:139 AppTools/ToolExtractDrills.py:156
+#: AppTools/ToolPunchGerber.py:150 AppTools/ToolPunchGerber.py:184
+msgid "Fixed Diameter"
+msgstr "Diametro fisso"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:100
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142
+#: AppTools/ToolExtractDrills.py:140 AppTools/ToolExtractDrills.py:192
+#: AppTools/ToolPunchGerber.py:151 AppTools/ToolPunchGerber.py:214
+msgid "Fixed Annular Ring"
+msgstr "Anello fisso"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102
+#: AppTools/ToolExtractDrills.py:141 AppTools/ToolPunchGerber.py:152
+msgid "Proportional"
+msgstr "Proporzionale"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107
+#: AppTools/ToolExtractDrills.py:130
+msgid ""
+"The method for processing pads. Can be:\n"
+"- Fixed Diameter -> all holes will have a set size\n"
+"- Fixed Annular Ring -> all holes will have a set annular ring\n"
+"- Proportional -> each hole size will be a fraction of the pad size"
+msgstr ""
+"Il metodo per l'elaborazione dei pad. Può essere:\n"
+"- Diametro fisso -> tutti i fori avranno una dimensione impostata\n"
+"- Anello fisso -> tutti i fori avranno un anello anulare impostato\n"
+"- Proporzionale -> ogni dimensione del foro sarà una frazione della "
+"dimensione del pad"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:220
+#: AppTools/ToolExtractDrills.py:164 AppTools/ToolExtractDrills.py:285
+#: AppTools/ToolPunchGerber.py:192 AppTools/ToolPunchGerber.py:308
+#: AppTools/ToolTransform.py:357 App_Main.py:9602
+msgid "Value"
+msgstr "Valore"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135
+#: AppTools/ToolExtractDrills.py:166 AppTools/ToolPunchGerber.py:194
+msgid "Fixed hole diameter."
+msgstr "Diametro foro fisso."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:142
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144
+#: AppTools/ToolExtractDrills.py:194 AppTools/ToolPunchGerber.py:216
+msgid ""
+"The size of annular ring.\n"
+"The copper sliver between the hole exterior\n"
+"and the margin of the copper pad."
+msgstr ""
+"La dimensione dell'anello.\n"
+"Il nastro di rame tra l'esterno del foro\n"
+"e il margine del pad di rame."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153
+#: AppTools/ToolExtractDrills.py:203 AppTools/ToolPunchGerber.py:231
+msgid "The size of annular ring for circular pads."
+msgstr "La dimensione dell'anello per pad circolari."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:164
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:166
+#: AppTools/ToolExtractDrills.py:216 AppTools/ToolPunchGerber.py:244
+msgid "The size of annular ring for oblong pads."
+msgstr "La dimensione dell'anello per pad oblunghi."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:177
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:179
+#: AppTools/ToolExtractDrills.py:229 AppTools/ToolPunchGerber.py:257
+msgid "The size of annular ring for square pads."
+msgstr "La dimensione dell'anello per pad quadrati."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:190
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:192
+#: AppTools/ToolExtractDrills.py:242 AppTools/ToolPunchGerber.py:270
+msgid "The size of annular ring for rectangular pads."
+msgstr "La dimensione dell'anello per pad rettangolari."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:203
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:205
+#: AppTools/ToolExtractDrills.py:255 AppTools/ToolPunchGerber.py:283
+msgid "The size of annular ring for other pads."
+msgstr "La dimensione dell'anello per gli altri pad."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:213
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:215
+#: AppTools/ToolExtractDrills.py:276 AppTools/ToolPunchGerber.py:299
+msgid "Proportional Diameter"
+msgstr "Diametro proporzionale"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:222
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:224
+msgid "Factor"
+msgstr "Fattore"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226
+#: AppTools/ToolExtractDrills.py:287 AppTools/ToolPunchGerber.py:310
+msgid ""
+"Proportional Diameter.\n"
+"The hole diameter will be a fraction of the pad size."
+msgstr ""
+"Diametro proporzionale.\n"
+"Il diametro del foro sarà una frazione della dimensione del pad."
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:27
+msgid "Fiducials Tool Options"
+msgstr "Opzioni strumento fiducial"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45
+#: AppTools/ToolFiducials.py:158
+msgid ""
+"This set the fiducial diameter if fiducial type is circular,\n"
+"otherwise is the size of the fiducial.\n"
+"The soldermask opening is double than that."
+msgstr ""
+"Imposta il diametro dei fiducial se il tipo di fiducial è circolare,\n"
+"altrimenti è la dimensione del fiducial.\n"
+"L'apertura del soldermask è il doppia."
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73
+#: AppTools/ToolFiducials.py:186
+msgid "Auto"
+msgstr "Auto"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74
+#: AppTools/ToolFiducials.py:187
+msgid "Manual"
+msgstr "Manuale"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76
+#: AppTools/ToolFiducials.py:189
+msgid "Mode:"
+msgstr "Modo:"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:78
+msgid ""
+"- 'Auto' - automatic placement of fiducials in the corners of the bounding "
+"box.\n"
+"- 'Manual' - manual placement of fiducials."
+msgstr ""
+"- 'Auto' - piazzamento automatico dei fiducials negli angoli del "
+"contenitore.\n"
+"- 'Manuale' - posizionamento manuale dei fiducial."
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86
+#: AppTools/ToolFiducials.py:199
+msgid "Up"
+msgstr "Su"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87
+#: AppTools/ToolFiducials.py:200
+msgid "Down"
+msgstr "Giù"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90
+#: AppTools/ToolFiducials.py:203
+msgid "Second fiducial"
+msgstr "Secondo fiducial"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92
+#: AppTools/ToolFiducials.py:205
+msgid ""
+"The position for the second fiducial.\n"
+"- 'Up' - the order is: bottom-left, top-left, top-right.\n"
+"- 'Down' - the order is: bottom-left, bottom-right, top-right.\n"
+"- 'None' - there is no second fiducial. The order is: bottom-left, top-right."
+msgstr ""
+"La posizione del secondo fiducial.\n"
+"- 'Su' - l'ordine è: basso-sinistra, alto-sinistra, alto-destra.\n"
+"- 'Giù' - l'ordine è: basso-sinistra, basso-destra, alto-destra.\n"
+"- 'Nessuno' - non c'è secondo fiducial. L'ordine è: basso-sinistra, alto-"
+"destra."
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108
+#: AppTools/ToolFiducials.py:221
+msgid "Cross"
+msgstr "Croce"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109
+#: AppTools/ToolFiducials.py:222
+msgid "Chess"
+msgstr "Schacchiera"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112
+#: AppTools/ToolFiducials.py:224
+msgid "Fiducial Type"
+msgstr "Tipo fiducial"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114
+#: AppTools/ToolFiducials.py:226
+msgid ""
+"The type of fiducial.\n"
+"- 'Circular' - this is the regular fiducial.\n"
+"- 'Cross' - cross lines fiducial.\n"
+"- 'Chess' - chess pattern fiducial."
+msgstr ""
+"Il tipo di fiducial.\n"
+"- 'Circolare' - fiducial standard.\n"
+"- 'Croce' - fiducial con due linee incrociate.\n"
+"- 'Scacchiera' - motivo a scacchiera."
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123
+#: AppTools/ToolFiducials.py:235
+msgid "Line thickness"
+msgstr "Spessore linea"
+
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:27
+msgid "Invert Gerber Tool Options"
+msgstr "Opzioni strumento inversione gerber"
+
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:33
+msgid ""
+"A tool to invert Gerber geometry from positive to negative\n"
+"and in revers."
+msgstr ""
+"Strumento per invertire geometrie gerber da positive a negative\n"
+"e viceversa."
+
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:47
+#: AppTools/ToolInvertGerber.py:90
+msgid ""
+"Distance by which to avoid\n"
+"the edges of the Gerber object."
+msgstr ""
+"Distanza alla quale evitare\n"
+"i bordi degli oggetti gerber."
+
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:58
+#: AppTools/ToolInvertGerber.py:101
+msgid "Lines Join Style"
+msgstr "Stile unione linee"
+
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:60
+#: AppTools/ToolInvertGerber.py:103
+msgid ""
+"The way that the lines in the object outline will be joined.\n"
+"Can be:\n"
+"- rounded -> an arc is added between two joining lines\n"
+"- square -> the lines meet in 90 degrees angle\n"
+"- bevel -> the lines are joined by a third line"
+msgstr ""
+"Il modo in cui le linee nel contorno dell'oggetto verranno unite.\n"
+"Può essere:\n"
+"- arrotondato -> viene aggiunto un arco tra due linee di giunzione\n"
+"- quadrato -> le linee si incontrano con un angolo di 90 gradi\n"
+"- smussato -> le linee sono unite da una terza linea"
+
+#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:27
+msgid "Optimal Tool Options"
+msgstr "Opzioni strumento ottimale"
+
+#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:33
+msgid ""
+"A tool to find the minimum distance between\n"
+"every two Gerber geometric elements"
+msgstr ""
+"Uno strumento per trovare la minima distanza fra\n"
+"ogni coppia di elementi geometrici Gerber"
+
+#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:48
+#: AppTools/ToolOptimal.py:78
+msgid "Precision"
+msgstr "Precisione"
+
+#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:50
+msgid "Number of decimals for the distances and coordinates in this tool."
+msgstr ""
+"Numero di decimali per le distanze e le coordinate in questo strumento."
+
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:27
+msgid "Punch Gerber Options"
+msgstr "Opzioni punzone gerber"
+
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:108
+#: AppTools/ToolPunchGerber.py:141
+msgid ""
+"The punch hole source can be:\n"
+"- Excellon Object-> the Excellon object drills center will serve as "
+"reference.\n"
+"- Fixed Diameter -> will try to use the pads center as reference adding "
+"fixed diameter holes.\n"
+"- Fixed Annular Ring -> will try to keep a set annular ring.\n"
+"- Proportional -> will make a Gerber punch hole having the diameter a "
+"percentage of the pad diameter."
+msgstr ""
+"La fonte del foro di punzonatura può essere:\n"
+"- Oggetto Excellon-> il centro dei fori dell'oggetto Excellon fungerà da "
+"riferimento.\n"
+"- Diametro fisso -> proverà a utilizzare il centro dei pad come riferimento "
+"aggiungendo fori a diametro fisso.\n"
+"- Fisso anello anulare -> proverà a mantenere un anello impostato.\n"
+"- Proporzionale -> eseguirà un foro di punzonatura Gerber avente il diametro "
+"pari ad una percentuale del diametro del pad."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:27
+msgid "QRCode Tool Options"
+msgstr "Opzioni strumento QRCode"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:33
+msgid ""
+"A tool to create a QRCode that can be inserted\n"
+"into a selected Gerber file, or it can be exported as a file."
+msgstr ""
+"Uno strumento per creare QRCode da inserire\n"
+"in un file Gerber selezionato o esportato su file."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45
+#: AppTools/ToolQRCode.py:100
+msgid "Version"
+msgstr "Versione"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47
+#: AppTools/ToolQRCode.py:102
+msgid ""
+"QRCode version can have values from 1 (21x21 boxes)\n"
+"to 40 (177x177 boxes)."
+msgstr ""
+"La versione del QRCode può avere valori da 1 (21x21 punti)\n"
+"a 40 (177x177 punti)."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58
+#: AppTools/ToolQRCode.py:113
+msgid "Error correction"
+msgstr "Correzione errore"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71
+#: AppTools/ToolQRCode.py:115 AppTools/ToolQRCode.py:126
+#, python-format
+msgid ""
+"Parameter that controls the error correction used for the QR Code.\n"
+"L = maximum 7%% errors can be corrected\n"
+"M = maximum 15%% errors can be corrected\n"
+"Q = maximum 25%% errors can be corrected\n"
+"H = maximum 30%% errors can be corrected."
+msgstr ""
+"Parametro che controlla la correzione errore usata per i QR Code.\n"
+"L = possono essere corretti errori al massimo del 7%%\n"
+"M = possono essere corretti errori al massimo del 15%%\n"
+"Q = possono essere corretti errori al massimo del 25%%\n"
+"H = possono essere corretti errori al massimo del 30%%."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81
+#: AppTools/ToolQRCode.py:136
+msgid "Box Size"
+msgstr "Dimensione contenitore"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83
+#: AppTools/ToolQRCode.py:138
+msgid ""
+"Box size control the overall size of the QRcode\n"
+"by adjusting the size of each box in the code."
+msgstr ""
+"La dimensione del box controlla la dimensione totale del QRcode\n"
+"controllando la dimensione dei singoli punti nel codice."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94
+#: AppTools/ToolQRCode.py:149
+msgid "Border Size"
+msgstr "Dimensione bordi"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96
+#: AppTools/ToolQRCode.py:151
+msgid ""
+"Size of the QRCode border. How many boxes thick is the border.\n"
+"Default value is 4. The width of the clearance around the QRCode."
+msgstr ""
+"Dimensione del bordo del QRCode. Quanto spesso sarà il bordo.\n"
+"Valore di default è 4. La larghezza della distanza attorno al QRCode."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107
+#: AppTools/ToolQRCode.py:162
+msgid "QRCode Data"
+msgstr "Dati QRCode"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109
+#: AppTools/ToolQRCode.py:164
+msgid "QRCode Data. Alphanumeric text to be encoded in the QRCode."
+msgstr "Dati QRCode. Testo alfanumerico da codificare nel QRCode."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:113
+#: AppTools/ToolQRCode.py:168
+msgid "Add here the text to be included in the QRCode..."
+msgstr "Inserisci qui il testo da includere nel QRCode..."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:119
+#: AppTools/ToolQRCode.py:174
+msgid "Polarity"
+msgstr "Polarità"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121
+#: AppTools/ToolQRCode.py:176
+msgid ""
+"Choose the polarity of the QRCode.\n"
+"It can be drawn in a negative way (squares are clear)\n"
+"or in a positive way (squares are opaque)."
+msgstr ""
+"Scegli la polarità del QRCode.\n"
+"Può essere disegnato in modo negativo (i quadrati sono chiari)\n"
+"o in modo positivo (i quadrati sono scuri)."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125
+#: AppTools/ToolFilm.py:279 AppTools/ToolQRCode.py:180
+msgid "Negative"
+msgstr "Negativa"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126
+#: AppTools/ToolFilm.py:278 AppTools/ToolQRCode.py:181
+msgid "Positive"
+msgstr "Positiva"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128
+#: AppTools/ToolQRCode.py:183
+msgid ""
+"Choose the type of QRCode to be created.\n"
+"If added on a Silkscreen Gerber file the QRCode may\n"
+"be added as positive. If it is added to a Copper Gerber\n"
+"file then perhaps the QRCode can be added as negative."
+msgstr ""
+"Scegli il tipo di QRCode da creare.\n"
+"Se aggiunto su un file Gerber Silkscreen, il QRCode può\n"
+"essere aggiunto come positivo. Se viene aggiunto a un file Gerber\n"
+"del rame forse il QRCode può essere aggiunto come negativo."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145
+#: AppTools/ToolQRCode.py:194 AppTools/ToolQRCode.py:200
+msgid ""
+"The bounding box, meaning the empty space that surrounds\n"
+"the QRCode geometry, can have a rounded or a square shape."
+msgstr ""
+"Il rettangolo di selezione, ovvero lo spazio vuoto che circonda\n"
+"la geometria QRCode, può avere una forma arrotondata o quadrata."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:239
+#: AppTools/ToolQRCode.py:197 AppTools/ToolTransform.py:383
+msgid "Rounded"
+msgstr "Arrotondato"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152
+#: AppTools/ToolQRCode.py:228
+msgid "Fill Color"
+msgstr "Colore riempimento"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154
+#: AppTools/ToolQRCode.py:230
+msgid "Set the QRCode fill color (squares color)."
+msgstr "Imposta il colore di riempimento del QRCode (colore dei punti)."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:173
+#: AppTools/ToolQRCode.py:252
+msgid "Back Color"
+msgstr "Colore sfondo"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:175
+#: AppTools/ToolQRCode.py:254
+msgid "Set the QRCode background color."
+msgstr "Imposta il colore dello sfondo del QRCode."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:27
+msgid "Check Rules Tool Options"
+msgstr "Opzione strumento controllo regole"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:32
+msgid ""
+"A tool to check if Gerber files are within a set\n"
+"of Manufacturing Rules."
+msgstr ""
+"Uno strumento che verifica che i file Gerber rispettino\n"
+"una serie di set di parametri del produttore."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:42
+#: AppTools/ToolRulesCheck.py:265 AppTools/ToolRulesCheck.py:929
+msgid "Trace Size"
+msgstr "Dimensione traccia"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:44
+#: AppTools/ToolRulesCheck.py:267
+msgid "This checks if the minimum size for traces is met."
+msgstr "Verifica se la dimensione minima della traccia è rispettata."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:54
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:74
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:94
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:114
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:134
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:154
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:174
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:194
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:216
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:236
+#: AppTools/ToolRulesCheck.py:277 AppTools/ToolRulesCheck.py:299
+#: AppTools/ToolRulesCheck.py:322 AppTools/ToolRulesCheck.py:345
+#: AppTools/ToolRulesCheck.py:368 AppTools/ToolRulesCheck.py:391
+#: AppTools/ToolRulesCheck.py:414 AppTools/ToolRulesCheck.py:437
+#: AppTools/ToolRulesCheck.py:462 AppTools/ToolRulesCheck.py:485
+msgid "Min value"
+msgstr "Valore minimo"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:56
+#: AppTools/ToolRulesCheck.py:279
+msgid "Minimum acceptable trace size."
+msgstr "Dimensione minima accettata delle tracce."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:61
+#: AppTools/ToolRulesCheck.py:286 AppTools/ToolRulesCheck.py:1157
+#: AppTools/ToolRulesCheck.py:1187
+msgid "Copper to Copper clearance"
+msgstr "Spaziatura rame-rame"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:63
+#: AppTools/ToolRulesCheck.py:288
+msgid ""
+"This checks if the minimum clearance between copper\n"
+"features is met."
+msgstr ""
+"Verifica se la spaziatura minima da rame a rame\n"
+"è rispettata."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:76
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:96
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:116
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:136
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:156
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:176
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:238
+#: AppTools/ToolRulesCheck.py:301 AppTools/ToolRulesCheck.py:324
+#: AppTools/ToolRulesCheck.py:347 AppTools/ToolRulesCheck.py:370
+#: AppTools/ToolRulesCheck.py:393 AppTools/ToolRulesCheck.py:416
+#: AppTools/ToolRulesCheck.py:464
+msgid "Minimum acceptable clearance value."
+msgstr "Valore minimo di distanza accettata."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:81
+#: AppTools/ToolRulesCheck.py:309 AppTools/ToolRulesCheck.py:1217
+#: AppTools/ToolRulesCheck.py:1223 AppTools/ToolRulesCheck.py:1236
+#: AppTools/ToolRulesCheck.py:1243
+msgid "Copper to Outline clearance"
+msgstr "Distanza rame-bordo"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:83
+#: AppTools/ToolRulesCheck.py:311
+msgid ""
+"This checks if the minimum clearance between copper\n"
+"features and the outline is met."
+msgstr ""
+"Verifica se la spaziatura minima da rame a bordo\n"
+"è rispettata."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:101
+#: AppTools/ToolRulesCheck.py:332
+msgid "Silk to Silk Clearance"
+msgstr "Distanza serigrafie"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:103
+#: AppTools/ToolRulesCheck.py:334
+msgid ""
+"This checks if the minimum clearance between silkscreen\n"
+"features and silkscreen features is met."
+msgstr ""
+"Verifica se la spaziatura minima tra serigrafie\n"
+"è rispettata."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:121
+#: AppTools/ToolRulesCheck.py:355 AppTools/ToolRulesCheck.py:1326
+#: AppTools/ToolRulesCheck.py:1332 AppTools/ToolRulesCheck.py:1350
+msgid "Silk to Solder Mask Clearance"
+msgstr "Distanza serigrafia-solder"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:123
+#: AppTools/ToolRulesCheck.py:357
+msgid ""
+"This checks if the minimum clearance between silkscreen\n"
+"features and soldermask features is met."
+msgstr ""
+"Verifica se la spaziatura minima da serigrafie\n"
+"e solder è rispettata."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:141
+#: AppTools/ToolRulesCheck.py:378 AppTools/ToolRulesCheck.py:1380
+#: AppTools/ToolRulesCheck.py:1386 AppTools/ToolRulesCheck.py:1400
+#: AppTools/ToolRulesCheck.py:1407
+msgid "Silk to Outline Clearance"
+msgstr "Distanza serigrafia-bordo"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:143
+#: AppTools/ToolRulesCheck.py:380
+msgid ""
+"This checks if the minimum clearance between silk\n"
+"features and the outline is met."
+msgstr ""
+"Verifica se la spaziatura minima tra serigrafie\n"
+"e bordo è rispettata."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:161
+#: AppTools/ToolRulesCheck.py:401 AppTools/ToolRulesCheck.py:1418
+#: AppTools/ToolRulesCheck.py:1445
+msgid "Minimum Solder Mask Sliver"
+msgstr "Distanza solder mask"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:163
+#: AppTools/ToolRulesCheck.py:403
+msgid ""
+"This checks if the minimum clearance between soldermask\n"
+"features and soldermask features is met."
+msgstr ""
+"Verifica se la spaziatura minima tra vari solder mask\n"
+"è rispettata."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:181
+#: AppTools/ToolRulesCheck.py:424 AppTools/ToolRulesCheck.py:1483
+#: AppTools/ToolRulesCheck.py:1489 AppTools/ToolRulesCheck.py:1505
+#: AppTools/ToolRulesCheck.py:1512
+msgid "Minimum Annular Ring"
+msgstr "Anello minimo"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:183
+#: AppTools/ToolRulesCheck.py:426
+msgid ""
+"This checks if the minimum copper ring left by drilling\n"
+"a hole into a pad is met."
+msgstr ""
+"Verifica se l'anello minimo di rame rimasto dopo la foratura\n"
+"è rispettato."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:196
+#: AppTools/ToolRulesCheck.py:439
+msgid "Minimum acceptable ring value."
+msgstr "Valore minimo anello."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:203
+#: AppTools/ToolRulesCheck.py:449 AppTools/ToolRulesCheck.py:873
+msgid "Hole to Hole Clearance"
+msgstr "Distanza foro-foro"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:205
+#: AppTools/ToolRulesCheck.py:451
+msgid ""
+"This checks if the minimum clearance between a drill hole\n"
+"and another drill hole is met."
+msgstr ""
+"Verifica se la spaziatura minima tra fori\n"
+"è rispettata."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:218
+#: AppTools/ToolRulesCheck.py:487
+msgid "Minimum acceptable drill size."
+msgstr "Misura minima foro."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:223
+#: AppTools/ToolRulesCheck.py:472 AppTools/ToolRulesCheck.py:847
+msgid "Hole Size"
+msgstr "Dimensione foro"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:225
+#: AppTools/ToolRulesCheck.py:474
+msgid ""
+"This checks if the drill holes\n"
+"sizes are above the threshold."
+msgstr ""
+"Controlla se la dimensione dei fori\n"
+"sono sopra la soglia."
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:27
+msgid "2Sided Tool Options"
+msgstr "Opzioni strumento doppia faccia"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:33
+msgid ""
+"A tool to help in creating a double sided\n"
+"PCB using alignment holes."
+msgstr ""
+"Uno strumento per aiutare la creazione di un PCB\n"
+"doppio faccia mediante fori di allineamento."
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:47
+msgid "Drill dia"
+msgstr "Diametro fori"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49
+#: AppTools/ToolDblSided.py:363 AppTools/ToolDblSided.py:368
+msgid "Diameter of the drill for the alignment holes."
+msgstr "Diametro per i fori di allineamento."
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:56
+#: AppTools/ToolDblSided.py:377
+msgid "Align Axis"
+msgstr "Allinea all'asse"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71
+#: AppTools/ToolDblSided.py:165 AppTools/ToolDblSided.py:379
+msgid "Mirror vertically (X) or horizontally (Y)."
+msgstr "Specchia verticale (X) o orizzontale (Y)."
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:69
+msgid "Mirror Axis:"
+msgstr "Asse di specchio:"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:80
+#: AppTools/ToolDblSided.py:181
+msgid "Point"
+msgstr "Punto"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:81
+#: AppTools/ToolDblSided.py:182
+msgid "Box"
+msgstr "Contenitore"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:82
+msgid "Axis Ref"
+msgstr "Asse di riferimento"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:84
+msgid ""
+"The axis should pass through a point or cut\n"
+" a specified box (in a FlatCAM object) through \n"
+"the center."
+msgstr ""
+"L'asse dovrebbe passare attraverso un punto o tagliare\n"
+" una casella specifica (in un oggetto FlatCAM) attraverso\n"
+"il centro."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:27
+msgid "Calculators Tool Options"
+msgstr "Opzioni calcolatrici"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31
+#: AppTools/ToolCalculators.py:25
+msgid "V-Shape Tool Calculator"
+msgstr "Calcolatrice utensile a V"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:33
+msgid ""
+"Calculate the tool diameter for a given V-shape tool,\n"
+"having the tip diameter, tip angle and\n"
+"depth-of-cut as parameters."
+msgstr ""
+"Calcola il diametro dell'utensile per un dato utensile a V,\n"
+"conoscendo come parametri il diametro della punta,\n"
+"angolo e profondità di taglio."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50
+#: AppTools/ToolCalculators.py:94
+msgid "Tip Diameter"
+msgstr "Diametro punta"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52
+#: AppTools/ToolCalculators.py:102
+msgid ""
+"This is the tool tip diameter.\n"
+"It is specified by manufacturer."
+msgstr ""
+"Diametro della punta.\n"
+"Viene specificato dal produttore."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64
+#: AppTools/ToolCalculators.py:105
+msgid "Tip Angle"
+msgstr "Angolo punta"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:66
+msgid ""
+"This is the angle on the tip of the tool.\n"
+"It is specified by manufacturer."
+msgstr ""
+"E' l'angolo alla punta dell'utensile.\n"
+"E' specificato dal produttore."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:80
+msgid ""
+"This is depth to cut into material.\n"
+"In the CNCJob object it is the CutZ parameter."
+msgstr ""
+"Questa è la profondità a cui tagliare il materiale.\n"
+"Nell'oggetto CNCJob è il parametro CutZ."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87
+#: AppTools/ToolCalculators.py:27
+msgid "ElectroPlating Calculator"
+msgstr "Calcolatore Galvanotecnica"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89
+#: AppTools/ToolCalculators.py:158
+msgid ""
+"This calculator is useful for those who plate the via/pad/drill holes,\n"
+"using a method like graphite ink or calcium hypophosphite ink or palladium "
+"chloride."
+msgstr ""
+"Questo calcolatore è utile per chi metallizza i fori di via/pad,\n"
+"usando un metodo come inchiostro di grafite o inchiostro di ipofosfito di "
+"calcio o cloruro di palladio."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:100
+#: AppTools/ToolCalculators.py:167
+msgid "Board Length"
+msgstr "Lunghezza scheda"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102
+#: AppTools/ToolCalculators.py:173
+msgid "This is the board length. In centimeters."
+msgstr "E' la lunghezza della scheda. In centimetri."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112
+#: AppTools/ToolCalculators.py:175
+msgid "Board Width"
+msgstr "Larghezza scheda"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114
+#: AppTools/ToolCalculators.py:181
+msgid "This is the board width.In centimeters."
+msgstr "E' la larghezza della scheda. In centimetri."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119
+#: AppTools/ToolCalculators.py:183
+msgid "Current Density"
+msgstr "Densità di corrente"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125
+#: AppTools/ToolCalculators.py:190
+msgid ""
+"Current density to pass through the board. \n"
+"In Amps per Square Feet ASF."
+msgstr ""
+"Densità di corrente da far passare nella scheda. In Ampere per "
+"rad_quadrata(ASF)."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:131
+#: AppTools/ToolCalculators.py:193
+msgid "Copper Growth"
+msgstr "Crescita rame"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137
+#: AppTools/ToolCalculators.py:200
+msgid ""
+"How thick the copper growth is intended to be.\n"
+"In microns."
+msgstr ""
+"Quanto deve accrescere il rame.\n"
+"In microns."
+
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:27
+#, fuzzy
+#| msgid "Gerber Options"
+msgid "Corner Markers Options"
+msgstr "Opzioni gerber"
+
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:44
+#: AppTools/ToolCorners.py:115
+msgid "The thickness of the line that makes the corner marker."
+msgstr ""
+
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:58
+#: AppTools/ToolCorners.py:129
+msgid "The length of the line that makes the corner marker."
+msgstr ""
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:28
+msgid "Cutout Tool Options"
+msgstr "Opzioni strumento ritaglio"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43
+#: AppTools/ToolCalculators.py:123 AppTools/ToolCutOut.py:129
+msgid "Tool Diameter"
+msgstr "Diametro utensile"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45
+#: AppTools/ToolCutOut.py:131
+msgid ""
+"Diameter of the tool used to cutout\n"
+"the PCB shape out of the surrounding material."
+msgstr ""
+"Diametro dello strumento utilizzato per il ritaglio\n"
+"della forma del PCB dal materiale circostante."
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:100
+msgid "Object kind"
+msgstr "Tipo oggetto"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102
+#: AppTools/ToolCutOut.py:77
+msgid ""
+"Choice of what kind the object we want to cutout is.
- Single: "
+"contain a single PCB Gerber outline object.
- Panel: a panel PCB "
+"Gerber object, which is made\n"
+"out of many individual PCB outlines."
+msgstr ""
+"Scelta del tipo di oggetto da ritagliare.
- Singolo: contiene un "
+"solo oggetto bordo Gerber PCB.
- Pannleol: un oggetto pannello "
+"Gerber PCB, realizzato\n"
+"ta tanti bordi singoli di PCB."
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109
+#: AppTools/ToolCutOut.py:83
+msgid "Single"
+msgstr "Singolo"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110
+#: AppTools/ToolCutOut.py:84
+msgid "Panel"
+msgstr "Pannello"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117
+#: AppTools/ToolCutOut.py:192
+msgid ""
+"Margin over bounds. A positive value here\n"
+"will make the cutout of the PCB further from\n"
+"the actual PCB border"
+msgstr ""
+"Margine oltre i limiti. Un valore positivo qui\n"
+"renderà il ritaglio del PCB più lontano dal\n"
+"bordo effettivo del PCB"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:130
+#: AppTools/ToolCutOut.py:203
+msgid "Gap size"
+msgstr "Dimensione ponticello"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:132
+#: AppTools/ToolCutOut.py:205
+msgid ""
+"The size of the bridge gaps in the cutout\n"
+"used to keep the board connected to\n"
+"the surrounding material (the one \n"
+"from which the PCB is cutout)."
+msgstr ""
+"Dimensione dei gap ponticello nel ritaglio\n"
+"usati per tenere la scheda connessa al\n"
+"materiale circostante (quello dal quale\n"
+"si sta rimuovendo il PCB)."
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:146
+#: AppTools/ToolCutOut.py:245
+msgid "Gaps"
+msgstr "Ponticelli"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:148
+msgid ""
+"Number of gaps used for the cutout.\n"
+"There can be maximum 8 bridges/gaps.\n"
+"The choices are:\n"
+"- None - no gaps\n"
+"- lr - left + right\n"
+"- tb - top + bottom\n"
+"- 4 - left + right +top + bottom\n"
+"- 2lr - 2*left + 2*right\n"
+"- 2tb - 2*top + 2*bottom\n"
+"- 8 - 2*left + 2*right +2*top + 2*bottom"
+msgstr ""
+"Numero di ponticelli usati nel ritaglio\n"
+"Possono essere al massimo 8.\n"
+"Le scelte sono:\n"
+"- Nessuno - nessun ponticello\n"
+"- SD - sinistra + destra\n"
+"- SS - sopra + sotto\n"
+"- 4 - sinistra + destra + sopra + sotto\n"
+"- 2SD - 2*sinistra + 2*destra\n"
+"- 2SS - 2*sopra + 2*sotto\n"
+"- 8 - 2*sinistra + 2*destra +2*sopra + 2*sotto"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:170
+#: AppTools/ToolCutOut.py:222
+msgid "Convex Shape"
+msgstr "Forma convessa"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:172
+#: AppTools/ToolCutOut.py:225
+msgid ""
+"Create a convex shape surrounding the entire PCB.\n"
+"Used only if the source object type is Gerber."
+msgstr ""
+"Crea una forma convessa che circonda l'intero PCB.\n"
+"Utilizzato solo se il tipo di oggetto di origine è Gerber."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:27
+msgid "Film Tool Options"
+msgstr "Opzioni strumento Film"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:33
+msgid ""
+"Create a PCB film from a Gerber or Geometry\n"
+"FlatCAM object.\n"
+"The file is saved in SVG format."
+msgstr ""
+"Create a un film PCB da un oggetto Gerber o\n"
+"Geometria FlatCAM.\n"
+"Il file è salvato in formato SVG."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:44
+msgid "Film Type"
+msgstr "Tipo Film"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:46 AppTools/ToolFilm.py:283
+msgid ""
+"Generate a Positive black film or a Negative film.\n"
+"Positive means that it will print the features\n"
+"with black on a white canvas.\n"
+"Negative means that it will print the features\n"
+"with white on a black canvas.\n"
+"The Film format is SVG."
+msgstr ""
+"Genera un film nero positivo o negativo.\n"
+"Positivo significa che stamperà le funzionalità\n"
+"con il nero su una tela bianca.\n"
+"Negativo significa che stamperà le funzionalità\n"
+"con il bianco su una tela nera.\n"
+"Il formato del film è SVG."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:57
+msgid "Film Color"
+msgstr "Colore Film"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:59
+msgid "Set the film color when positive film is selected."
+msgstr "Imposta il colore del film se è selezionato film positivo."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:82 AppTools/ToolFilm.py:299
+msgid "Border"
+msgstr "Bordo"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:84 AppTools/ToolFilm.py:301
+msgid ""
+"Specify a border around the object.\n"
+"Only for negative film.\n"
+"It helps if we use as a Box Object the same \n"
+"object as in Film Object. It will create a thick\n"
+"black bar around the actual print allowing for a\n"
+"better delimitation of the outline features which are of\n"
+"white color like the rest and which may confound with the\n"
+"surroundings if not for this border."
+msgstr ""
+"Specifica un bordo attorno all'oggetto.\n"
+"Solo per film negativo.\n"
+"Aiuta se usiamo come Oggetto contenitore lo stesso\n"
+"oggetto in Oggetto film. Creerà una barra nera attorno\n"
+"alla stampa attuale consentendo una migliore delimitazione\n"
+"del contorno di colore bianco e che può confondere con\n"
+"le aree circostanti in assenza del bordo stesso."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:101
+#: AppTools/ToolFilm.py:266
+msgid "Scale Stroke"
+msgstr "Scala tratto"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:103
+#: AppTools/ToolFilm.py:268
+msgid ""
+"Scale the line stroke thickness of each feature in the SVG file.\n"
+"It means that the line that envelope each SVG feature will be thicker or "
+"thinner,\n"
+"therefore the fine features may be more affected by this parameter."
+msgstr ""
+"Ridimensiona lo spessore del tratto delle linee di ciascuna funzione nel "
+"file SVG.\n"
+"Significa che la linea che avvolge ciascuna funzione SVG sarà più spessa o "
+"più sottile,\n"
+"pertanto le caratteristiche fini potrebbero essere maggiormente influenzate "
+"da questo parametro."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:110
+#: AppTools/ToolFilm.py:124
+msgid "Film Adjustments"
+msgstr "Sistemazione film"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:112
+#: AppTools/ToolFilm.py:126
+msgid ""
+"Sometime the printers will distort the print shape, especially the Laser "
+"types.\n"
+"This section provide the tools to compensate for the print distortions."
+msgstr ""
+"A volte le stampanti distorcono la forma di stampa, in particolare le "
+"Laser.\n"
+"Questa sezione fornisce gli strumenti per compensare le distorsioni di "
+"stampa."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:119
+#: AppTools/ToolFilm.py:133
+msgid "Scale Film geometry"
+msgstr "Scala geometrie Film"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:121
+#: AppTools/ToolFilm.py:135
+msgid ""
+"A value greater than 1 will stretch the film\n"
+"while a value less than 1 will jolt it."
+msgstr ""
+"Un valore maggiore di 1 allungherà il film\n"
+"mentre un valore inferiore a 1 lo accorcerà."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:131
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:103
+#: AppTools/ToolFilm.py:145 AppTools/ToolTransform.py:148
+msgid "X factor"
+msgstr "Fattore X"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:140
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:116
+#: AppTools/ToolFilm.py:154 AppTools/ToolTransform.py:168
+msgid "Y factor"
+msgstr "Fattore Y"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:150
+#: AppTools/ToolFilm.py:172
+msgid "Skew Film geometry"
+msgstr "Inclinazione geometria film"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:152
+#: AppTools/ToolFilm.py:174
+msgid ""
+"Positive values will skew to the right\n"
+"while negative values will skew to the left."
+msgstr ""
+"I valori positivi inclinano verso destra\n"
+"mentre i valori negativi inclinano a sinistra."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:162
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:72
+#: AppTools/ToolFilm.py:184 AppTools/ToolTransform.py:97
+msgid "X angle"
+msgstr "Angolo X"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:171
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:86
+#: AppTools/ToolFilm.py:193 AppTools/ToolTransform.py:118
+msgid "Y angle"
+msgstr "Angolo Y"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:182
+#: AppTools/ToolFilm.py:204
+msgid ""
+"The reference point to be used as origin for the skew.\n"
+"It can be one of the four points of the geometry bounding box."
+msgstr ""
+"Il punto di riferimento da utilizzare come origine per l'inclinazione.\n"
+"Può essere uno dei quattro punti del riquadro di delimitazione della "
+"geometria."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:185
+#: AppTools/ToolCorners.py:80 AppTools/ToolFiducials.py:87
+#: AppTools/ToolFilm.py:207
+msgid "Bottom Left"
+msgstr "Basso Sinistra"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:186
+#: AppTools/ToolCorners.py:88 AppTools/ToolFilm.py:208
+msgid "Top Left"
+msgstr "Alto Destra"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:187
+#: AppTools/ToolCorners.py:84 AppTools/ToolFilm.py:209
+msgid "Bottom Right"
+msgstr "Basso Destra"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:188
+#: AppTools/ToolFilm.py:210
+msgid "Top right"
+msgstr "Alto Destra"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196
+#: AppTools/ToolFilm.py:227
+msgid "Mirror Film geometry"
+msgstr "Specchia geometria film"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:198
+#: AppTools/ToolFilm.py:229
+msgid "Mirror the film geometry on the selected axis or on both."
+msgstr "Specchia la geometria film sull'asse selezionato o su entrambi."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:212
+#: AppTools/ToolFilm.py:243
+msgid "Mirror axis"
+msgstr "Asse simmetria"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:222
+#: AppTools/ToolFilm.py:388
+msgid "SVG"
+msgstr "SVG"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:223
+#: AppTools/ToolFilm.py:389
+msgid "PNG"
+msgstr "PNG"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:224
+#: AppTools/ToolFilm.py:390
+msgid "PDF"
+msgstr "PDF"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:227
+#: AppTools/ToolFilm.py:281 AppTools/ToolFilm.py:393
+msgid "Film Type:"
+msgstr "Tipo film:"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:229
+#: AppTools/ToolFilm.py:395
+msgid ""
+"The file type of the saved film. Can be:\n"
+"- 'SVG' -> open-source vectorial format\n"
+"- 'PNG' -> raster image\n"
+"- 'PDF' -> portable document format"
+msgstr ""
+"Il tipo di file per il film salvato. Può essere:\n"
+"- 'SVG' -> formato vettoriale open-source\n"
+"- 'PNG' -> immagine raster \n"
+"- 'PDF' -> Portable Document Format"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:238
+#: AppTools/ToolFilm.py:404
+msgid "Page Orientation"
+msgstr "Orientamento pagina"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:251
+#: AppTools/ToolFilm.py:417
+msgid "Page Size"
+msgstr "Dimensiona pagina"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:252
+#: AppTools/ToolFilm.py:418
+msgid "A selection of standard ISO 216 page sizes."
+msgstr "Una selezione di pagine standard secondo ISO 216."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:27
+msgid "NCC Tool Options"
+msgstr "Opzioni strumento NCC"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:49
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:57
+msgid "Comma separated values"
+msgstr "Valori separati da virgola"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:55
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:63
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:64 AppTools/ToolNCC.py:215
+#: AppTools/ToolNCC.py:223 AppTools/ToolPaint.py:197 AppTools/ToolPaint.py:205
+msgid ""
+"Default tool type:\n"
+"- 'V-shape'\n"
+"- Circular"
+msgstr ""
+"Forma di default dell'Utensile:\n"
+"- 'a V'\n"
+"- Circolare"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:60
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:69 AppTools/ToolNCC.py:220
+#: AppTools/ToolPaint.py:202
+msgid "V-shape"
+msgstr "A V"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:100
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:109
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:107
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:116
+#: AppTools/ToolNCC.py:262 AppTools/ToolNCC.py:271 AppTools/ToolPaint.py:244
+#: AppTools/ToolPaint.py:253
+msgid ""
+"Depth of cut into material. Negative value.\n"
+"In FlatCAM units."
+msgstr ""
+"Profondità di taglio nel materiale. Valori negativi.\n"
+"In unità FlatCAM."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:119
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:125
+#: AppTools/ToolNCC.py:280 AppTools/ToolPaint.py:262
+msgid ""
+"Diameter for the new tool to add in the Tool Table.\n"
+"If the tool is V-shape type then this value is automatically\n"
+"calculated from the other parameters."
+msgstr ""
+"Diametro per il nuovo utensile da aggiungere nella tabella degli utensili.\n"
+"Se lo strumento è di tipo a V, questo valore è automaticamente\n"
+"calcolato dagli altri parametri."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:156
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:142
+#: AppTools/ToolNCC.py:174 AppTools/ToolPaint.py:157
+msgid "Tool order"
+msgstr "Ordine utensili"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:157
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:167
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:143
+#: AppTools/ToolNCC.py:175 AppTools/ToolNCC.py:185 AppTools/ToolPaint.py:158
+#: AppTools/ToolPaint.py:168
+msgid ""
+"This set the way that the tools in the tools table are used.\n"
+"'No' --> means that the used order is the one in the tool table\n"
+"'Forward' --> means that the tools will be ordered from small to big\n"
+"'Reverse' --> means that the tools will ordered from big to small\n"
+"\n"
+"WARNING: using rest machining will automatically set the order\n"
+"in reverse and disable this control."
+msgstr ""
+"Questo imposta il modo in cui vengono utilizzati gli strumenti nella tabella "
+"degli strumenti.\n"
+"'No' -> significa che l'ordine utilizzato è quello nella tabella degli "
+"strumenti\n"
+"'Avanti' -> significa che gli strumenti verranno ordinati da piccoli a "
+"grandi\n"
+"'Reverse' -> significa che gli strumenti ordineranno da grandi a piccoli\n"
+"\n"
+"ATTENZIONE: l'utilizzo della lavorazione di ripresa imposterà "
+"automaticamente l'ordine\n"
+"al contrario e disabiliterà questo controllo."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:165
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:151
+#: AppTools/ToolNCC.py:183 AppTools/ToolPaint.py:166
+msgid "Forward"
+msgstr "Avanti"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:166
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:152
+#: AppTools/ToolNCC.py:184 AppTools/ToolPaint.py:167
+msgid "Reverse"
+msgstr "Indietro"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:266
+msgid "Offset value"
+msgstr "Valore offset"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:268
+msgid ""
+"If used, it will add an offset to the copper features.\n"
+"The copper clearing will finish to a distance\n"
+"from the copper features.\n"
+"The value can be between 0.0 and 9999.9 FlatCAM units."
+msgstr ""
+"Se utilizzato, aggiungerà un offset alle lavorazioni del rame.\n"
+"La rimozione del rame finirà ad una data distanza dalle\n"
+"lavorazioni di rame.\n"
+"Il valore può essere compreso tra 0,0 e 9999,9 unità FlatCAM."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:288
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:244
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:245
+#: AppTools/ToolNCC.py:512 AppTools/ToolPaint.py:441
+msgid "Rest Machining"
+msgstr "Lavorazione di ripresa"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:290 AppTools/ToolNCC.py:516
+msgid ""
+"If checked, use 'rest machining'.\n"
+"Basically it will clear copper outside PCB features,\n"
+"using the biggest tool and continue with the next tools,\n"
+"from bigger to smaller, to clear areas of copper that\n"
+"could not be cleared by previous tool, until there is\n"
+"no more copper to clear or there are no more tools.\n"
+"If not checked, use the standard algorithm."
+msgstr ""
+"Se selezionato, utilizzare la 'lavorazione di ripresa'.\n"
+"Fondamentalmente eliminerà il rame al di fuori del PCB,\n"
+"utilizzando lo strumento più grande e continuarà poi con\n"
+"gli strumenti successivi, dal più grande al più piccolo, per\n"
+"eliminare le aree di rame non rimosse dallo strumento\n"
+"precedente, finché non c'è più rame da cancellare o non\n"
+"ci sono più strumenti.\n"
+"Se non selezionato, usa l'algoritmo standard."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:313 AppTools/ToolNCC.py:541
+msgid ""
+"Selection of area to be processed.\n"
+"- 'Itself' - the processing extent is based on the object that is "
+"processed.\n"
+" - 'Area Selection' - left mouse click to start selection of the area to be "
+"processed.\n"
+"- 'Reference Object' - will process the area specified by another object."
+msgstr ""
+"Selezione area da processare.\n"
+"- 'Stesso': il processo avverrà basandosi sull'oggetto processato.\n"
+"- 'Selezione area' - fare clic con il pulsante sinistro del mouse per "
+"iniziare a selezionare l'area.\n"
+"- 'Oggetto di riferimento' - processerà l'area specificata da un altro "
+"oggetto."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:339
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303
+msgid "Normal"
+msgstr "Normale"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:340
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:304
+msgid "Progressive"
+msgstr "Progressivo"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:341
+msgid "NCC Plotting"
+msgstr "Disegna NCC"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:343
+msgid ""
+"- 'Normal' - normal plotting, done at the end of the NCC job\n"
+"- 'Progressive' - after each shape is generated it will be plotted."
+msgstr ""
+"- \"Normale\": stampa normale, eseguita alla fine del lavoro NCC\n"
+"- \"Progressivo\": dopo che ogni forma è stata generata, verrà tracciata."
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:27
+msgid "Paint Tool Options"
+msgstr "Opzione strumento pittura"
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:33
+msgid "Parameters:"
+msgstr "Parametri:"
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:247
+#: AppTools/ToolPaint.py:444
+msgid ""
+"If checked, use 'rest machining'.\n"
+"Basically it will clear copper outside PCB features,\n"
+"using the biggest tool and continue with the next tools,\n"
+"from bigger to smaller, to clear areas of copper that\n"
+"could not be cleared by previous tool, until there is\n"
+"no more copper to clear or there are no more tools.\n"
+"\n"
+"If not checked, use the standard algorithm."
+msgstr ""
+"Se selezionato, usa la 'lavorazione di ripresa'.\n"
+"Fondamentalmente eliminerà il rame al di fuori del del PCB,\n"
+"utilizzando l'utensile più grande e continuando con gli utensili\n"
+"successivi, dal più grande al più piccolo, per eliminare le aree di\n"
+"rame che non possono essere cancellato dall'utensile precedente,\n"
+"fino a quando non ci sarà più rame da cancellare o utensili utili.\n"
+"\n"
+"Se non selezionato, utilizza l'algoritmo standard."
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:260
+#: AppTools/ToolPaint.py:457
+msgid ""
+"Selection of area to be processed.\n"
+"- 'Polygon Selection' - left mouse click to add/remove polygons to be "
+"processed.\n"
+"- 'Area Selection' - left mouse click to start selection of the area to be "
+"processed.\n"
+"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple "
+"areas.\n"
+"- 'All Polygons' - the process will start after click.\n"
+"- 'Reference Object' - will process the area specified by another object."
+msgstr ""
+"Come selezionare i poligoni da processare.\n"
+"- 'Selezione poligoni': fare clic con il pulsante sinistro del mouse per "
+"aggiungere/rimuovere\n"
+"poligoni da processare.\n"
+"- 'Selezione area': fare clic con il pulsante sinistro del mouse per "
+"iniziare la selezione dell'area da\n"
+"processare. Tenendo premuto un tasto modificatore (CTRL o SHIFT) sarà "
+"possibile aggiungere più aree.\n"
+"- 'Tutti i poligoni': la selezione inizierà dopo il click.\n"
+"- 'Oggetto di riferimento': eseguirà il processo dell'area specificata da un "
+"altro oggetto."
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
+#: AppTools/ToolPaint.py:485 AppTools/ToolPaint.py:941
+#: AppTools/ToolPaint.py:1431 tclCommands/TclCommandPaint.py:164
+msgid "Polygon Selection"
+msgstr "Selezione poligono"
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
+#: AppTools/ToolPaint.py:485 AppTools/ToolPaint.py:1426 defaults.py:433
+#: tclCommands/TclCommandPaint.py:162
+msgid "All Polygons"
+msgstr "Tutti i poligoni"
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:305
+msgid "Paint Plotting"
+msgstr "Disegna aree dipinte"
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:307
+msgid ""
+"- 'Normal' - normal plotting, done at the end of the Paint job\n"
+"- 'Progressive' - after each shape is generated it will be plotted."
+msgstr ""
+"- 'Normale' - tracciatura normale, eseguita alla fine del lavoro di "
+"selezione\n"
+"- 'Progressiva' - verrà generata al termine di ogni forma selezionata."
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:27
+msgid "Panelize Tool Options"
+msgstr "Opzioni strumento Pannello"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:33
+msgid ""
+"Create an object that contains an array of (x, y) elements,\n"
+"each element is a copy of the source object spaced\n"
+"at a X distance, Y distance of each other."
+msgstr ""
+"Crea un oggetto che contiene una matrice di elementi (x, y),\n"
+"ogni elemento è una copia dell'oggetto origine spaziati\n"
+"di una distanza X e distanza Y ognuno dall'altro."
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:50
+#: AppTools/ToolPanelize.py:165
+msgid "Spacing cols"
+msgstr "Spazio colonne"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:52
+#: AppTools/ToolPanelize.py:167
+msgid ""
+"Spacing between columns of the desired panel.\n"
+"In current units."
+msgstr ""
+"Spaziatura fra colonne desiderata del pannello.\n"
+"In unità attuali."
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:64
+#: AppTools/ToolPanelize.py:177
+msgid "Spacing rows"
+msgstr "Spazio righe"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:66
+#: AppTools/ToolPanelize.py:179
+msgid ""
+"Spacing between rows of the desired panel.\n"
+"In current units."
+msgstr ""
+"Spaziatura fra righe desiderata del pannello.\n"
+"In unità attuali."
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:77
+#: AppTools/ToolPanelize.py:188
+msgid "Columns"
+msgstr "Colonne"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:79
+#: AppTools/ToolPanelize.py:190
+msgid "Number of columns of the desired panel"
+msgstr "Numero di colonne nel pannello desiderato"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:89
+#: AppTools/ToolPanelize.py:198
+msgid "Rows"
+msgstr "Righe"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:91
+#: AppTools/ToolPanelize.py:200
+msgid "Number of rows of the desired panel"
+msgstr "Numero di righe nel pannello desiderato"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:98
+#: AppTools/ToolPanelize.py:211
+msgid "Geo"
+msgstr "Geo"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:99
+#: AppTools/ToolPanelize.py:212
+msgid "Panel Type"
+msgstr "Tipo pannello"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:101
+msgid ""
+"Choose the type of object for the panel object:\n"
+"- Gerber\n"
+"- Geometry"
+msgstr ""
+"Scegli in tipo di oggetto per l'oggetto pannello:\n"
+"- Gerber\n"
+"- Geometria"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:110
+msgid "Constrain within"
+msgstr "Vincoli contenimento"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:112
+#: AppTools/ToolPanelize.py:224
+msgid ""
+"Area define by DX and DY within to constrain the panel.\n"
+"DX and DY values are in current units.\n"
+"Regardless of how many columns and rows are desired,\n"
+"the final panel will have as many columns and rows as\n"
+"they fit completely within selected area."
+msgstr ""
+"L'area definita da DX e DY all'interno per vincolare il pannello.\n"
+"I valori DX e DY sono in unità correnti.\n"
+"Indipendentemente dal numero di colonne e righe desiderate,\n"
+"il pannello finale avrà tante colonne e righe quante\n"
+"si adattano completamente all'interno dell'area selezionata."
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:125
+#: AppTools/ToolPanelize.py:236
+msgid "Width (DX)"
+msgstr "Larghezza (DX)"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:127
+#: AppTools/ToolPanelize.py:238
+msgid ""
+"The width (DX) within which the panel must fit.\n"
+"In current units."
+msgstr ""
+"La larghezza (DX) all'interno del quale deve rimanere il pannello.\n"
+"In unità correnti."
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:138
+#: AppTools/ToolPanelize.py:247
+msgid "Height (DY)"
+msgstr "Altezza (DY)"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:140
+#: AppTools/ToolPanelize.py:249
+msgid ""
+"The height (DY)within which the panel must fit.\n"
+"In current units."
+msgstr ""
+"L'altezza (DY) all'interno del quale deve rimanere il pannello.\n"
+"In unità correnti."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:27
+msgid "SolderPaste Tool Options"
+msgstr "Opzioni strumento SolderPaste"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:33
+msgid ""
+"A tool to create GCode for dispensing\n"
+"solder paste onto a PCB."
+msgstr ""
+"Uno strumento per creare GCode per\n"
+"erogare la pasta sul PCB."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:54
+msgid "New Nozzle Dia"
+msgstr "Nuovo diametro ugello"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:56
+#: AppTools/ToolSolderPaste.py:107
+msgid "Diameter for the new Nozzle tool to add in the Tool Table"
+msgstr "Diametro del nuovo utensile ugello da aggiungere alla tabella"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:72
+#: AppTools/ToolSolderPaste.py:183
+msgid "Z Dispense Start"
+msgstr "Z avvio erogazione"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:74
+#: AppTools/ToolSolderPaste.py:185
+msgid "The height (Z) when solder paste dispensing starts."
+msgstr "L'altezza (Z) quando inizia l'erogazione della pasta."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:85
+#: AppTools/ToolSolderPaste.py:195
+msgid "Z Dispense"
+msgstr "Z erogazione"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:87
+#: AppTools/ToolSolderPaste.py:197
+msgid "The height (Z) when doing solder paste dispensing."
+msgstr "L'altezza (Z) quando l'erogazione è in esecuzione."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:98
+#: AppTools/ToolSolderPaste.py:207
+msgid "Z Dispense Stop"
+msgstr "Z fine erogazione"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:100
+#: AppTools/ToolSolderPaste.py:209
+msgid "The height (Z) when solder paste dispensing stops."
+msgstr "L'altezza (Z) quando finisce l'erogazione della pasta."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:111
+#: AppTools/ToolSolderPaste.py:219
+msgid "Z Travel"
+msgstr "Z spostamento"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:113
+#: AppTools/ToolSolderPaste.py:221
+msgid ""
+"The height (Z) for travel between pads\n"
+"(without dispensing solder paste)."
+msgstr ""
+"L'altezza (Z) per lo spostamento fra pad\n"
+"(senza funzione di erogazione pasta)."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:125
+#: AppTools/ToolSolderPaste.py:232
+msgid "Z Toolchange"
+msgstr "Z cambio utensile"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:127
+#: AppTools/ToolSolderPaste.py:234
+msgid "The height (Z) for tool (nozzle) change."
+msgstr "L'altezza (Z) per il cambio utensile (ugello)."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:136
+#: AppTools/ToolSolderPaste.py:242
+msgid ""
+"The X,Y location for tool (nozzle) change.\n"
+"The format is (x, y) where x and y are real numbers."
+msgstr ""
+"La posizione X,Y per il cambio utensile (ugello).\n"
+"Il formato è (x,y) dove x e y sono numeri reali."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:150
+#: AppTools/ToolSolderPaste.py:255
+msgid "Feedrate (speed) while moving on the X-Y plane."
+msgstr "Velocità avanzamento durante gli spostamenti sul piano (x,y)."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:163
+#: AppTools/ToolSolderPaste.py:267
+msgid ""
+"Feedrate (speed) while moving vertically\n"
+"(on Z plane)."
+msgstr "Velocità avanzamento durante gli spostamenti sull'asse Z."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:175
+#: AppTools/ToolSolderPaste.py:278
+msgid "Feedrate Z Dispense"
+msgstr "Avanzamento erogazione Z"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:177
+msgid ""
+"Feedrate (speed) while moving up vertically\n"
+"to Dispense position (on Z plane)."
+msgstr ""
+"Avanzamento (velocità) durante lo spostamento in verticale\n"
+"verso la posizione di erogazione (sul piano Z)."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:188
+#: AppTools/ToolSolderPaste.py:290
+msgid "Spindle Speed FWD"
+msgstr "Velocità mandrino AVANTI"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:190
+#: AppTools/ToolSolderPaste.py:292
+msgid ""
+"The dispenser speed while pushing solder paste\n"
+"through the dispenser nozzle."
+msgstr ""
+"La velocità dell'erogatore mentre spinge\n"
+"la pasta tramite l'ugello."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:202
+#: AppTools/ToolSolderPaste.py:303
+msgid "Dwell FWD"
+msgstr "Pausa AVANTI"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:204
+#: AppTools/ToolSolderPaste.py:305
+msgid "Pause after solder dispensing."
+msgstr "Pausa dopo l'erogazione del solder."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:214
+#: AppTools/ToolSolderPaste.py:314
+msgid "Spindle Speed REV"
+msgstr "Velocità mandrino INDIETRO"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:216
+#: AppTools/ToolSolderPaste.py:316
+msgid ""
+"The dispenser speed while retracting solder paste\n"
+"through the dispenser nozzle."
+msgstr ""
+"La velocità dell'erogatore mentre ritrae\n"
+"la pasta tramite l'ugello."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:228
+#: AppTools/ToolSolderPaste.py:327
+msgid "Dwell REV"
+msgstr "Pausa INDIETRO"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:230
+#: AppTools/ToolSolderPaste.py:329
+msgid ""
+"Pause after solder paste dispenser retracted,\n"
+"to allow pressure equilibrium."
+msgstr ""
+"Pausa dopo la ritrazione,\n"
+"per equilibrare la pressione."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:239
+#: AppTools/ToolSolderPaste.py:337
+msgid "Files that control the GCode generation."
+msgstr "Files che controllano la generazione del GCode."
+
+#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:27
+msgid "Substractor Tool Options"
+msgstr "Opzioni strumento sottrai"
+
+#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:33
+msgid ""
+"A tool to substract one Gerber or Geometry object\n"
+"from another of the same type."
+msgstr ""
+"Uno strumento per sottrarre un oggetto Gerber o\n"
+"geometria da un altro dello stesso tipo."
+
+#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:38 AppTools/ToolSub.py:155
+msgid "Close paths"
+msgstr "Percorsi chiusi"
+
+#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:39
+msgid ""
+"Checking this will close the paths cut by the Geometry substractor object."
+msgstr ""
+"Abilitandolo chiuderà i percorsi rimasti aperti dopo la sottrazione di "
+"oggetti geometria."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:27
+msgid "Transform Tool Options"
+msgstr "Opzione strumento trasforma"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:33
+msgid ""
+"Various transformations that can be applied\n"
+"on a FlatCAM object."
+msgstr "Trasformazioni varie da poter applicare ad un oggetto FlatCAM."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:64
+msgid "Skew"
+msgstr "Inclina"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:105
+#: AppTools/ToolTransform.py:150
+msgid "Factor for scaling on X axis."
+msgstr "Fattore di scala sull'asse X."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:118
+#: AppTools/ToolTransform.py:170
+msgid "Factor for scaling on Y axis."
+msgstr "Fattore di scala sull'asse Y."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:126
+#: AppTools/ToolTransform.py:191
+msgid ""
+"Scale the selected object(s)\n"
+"using the Scale_X factor for both axis."
+msgstr ""
+"Scala l'oggetto(i) selezionato(i) usando\n"
+"il fattore Scala_X per entrambi gli assi."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:134
+#: AppTools/ToolTransform.py:198
+msgid ""
+"Scale the selected object(s)\n"
+"using the origin reference when checked,\n"
+"and the center of the biggest bounding box\n"
+"of the selected objects when unchecked."
+msgstr ""
+"Scala l'oggetto(i) selezionato(i) usando\n"
+"il riferimento di origine quando abilitato,\n"
+"oppure il centro del contenitore più grande\n"
+"degli oggetti selezionati quando non attivato."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:150
+#: AppTools/ToolTransform.py:217
+msgid "X val"
+msgstr "Valore X"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:152
+#: AppTools/ToolTransform.py:219
+msgid "Distance to offset on X axis. In current units."
+msgstr "Distanza da applicare sull'asse X. In unità correnti."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:163
+#: AppTools/ToolTransform.py:237
+msgid "Y val"
+msgstr "Valore Y"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:165
+#: AppTools/ToolTransform.py:239
+msgid "Distance to offset on Y axis. In current units."
+msgstr "Distanza da applicare sull'asse Y. In unità correnti."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:171
+#: AppTools/ToolDblSided.py:67 AppTools/ToolDblSided.py:95
+#: AppTools/ToolDblSided.py:125
+msgid "Mirror"
+msgstr "Specchia"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:175
+#: AppTools/ToolTransform.py:283
+msgid "Mirror Reference"
+msgstr "Riferimento specchio"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:177
+#: AppTools/ToolTransform.py:285
+msgid ""
+"Flip the selected object(s)\n"
+"around the point in Point Entry Field.\n"
+"\n"
+"The point coordinates can be captured by\n"
+"left click on canvas together with pressing\n"
+"SHIFT key. \n"
+"Then click Add button to insert coordinates.\n"
+"Or enter the coords in format (x, y) in the\n"
+"Point Entry field and click Flip on X(Y)"
+msgstr ""
+"Capovolgi gli oggetti selezionati\n"
+"attorno al punto nel campo di inserimento punti.\n"
+"\n"
+"Le coordinate del punto possono essere acquisite da\n"
+"clic sinistro premendo contemporaneamente al tasto\n"
+"SHIFT.\n"
+"Quindi fare clic sul pulsante Aggiungi per inserire le coordinate.\n"
+"Oppure inserisci le coord nel formato (x,y) in\n"
+"Inserisci punto e fai clic su Capovolgi su X(Y)"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:188
+msgid "Mirror Reference point"
+msgstr "Punto di riferimento specchio"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:190
+msgid ""
+"Coordinates in format (x, y) used as reference for mirroring.\n"
+"The 'x' in (x, y) will be used when using Flip on X and\n"
+"the 'y' in (x, y) will be used when using Flip on Y and"
+msgstr ""
+"Coordinate in formato (x, y) usate come riferimento per la specchiatura.\n"
+"La 'x' in (x, y) sarà usata per capovolgere su X e\n"
+"la 'y' in (x, y) sarà usata per capovolgere su Y e"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:203
+#: AppTools/ToolDistance.py:505 AppTools/ToolDistanceMin.py:286
+#: AppTools/ToolTransform.py:332
+msgid "Distance"
+msgstr "Distanza"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:205
+#: AppTools/ToolTransform.py:334
+msgid ""
+"A positive value will create the effect of dilation,\n"
+"while a negative value will create the effect of erosion.\n"
+"Each geometry element of the object will be increased\n"
+"or decreased with the 'distance'."
+msgstr ""
+"Un valore positivo creerà l'effetto della dilatazione,\n"
+"mentre un valore negativo creerà l'effetto di restringimento.\n"
+"Ogni elemento della geometria dell'oggetto verrà aumentato\n"
+"o diminuito con la 'distanza'."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:222
+#: AppTools/ToolTransform.py:359
+msgid ""
+"A positive value will create the effect of dilation,\n"
+"while a negative value will create the effect of erosion.\n"
+"Each geometry element of the object will be increased\n"
+"or decreased to fit the 'Value'. Value is a percentage\n"
+"of the initial dimension."
+msgstr ""
+"Un valore positivo creerà l'effetto della dilatazione,\n"
+"mentre un valore negativo creerà l'effetto di restringimento.\n"
+"Ogni elemento della geometria dell'oggetto verrà aumentato\n"
+"o diminuito in base al 'Valore'."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:241
+#: AppTools/ToolTransform.py:385
+msgid ""
+"If checked then the buffer will surround the buffered shape,\n"
+"every corner will be rounded.\n"
+"If not checked then the buffer will follow the exact geometry\n"
+"of the buffered shape."
+msgstr ""
+"Se selezionato, il buffer circonderà la forma del buffer,\n"
+"ogni angolo verrà arrotondato.\n"
+"Se non selezionato, il buffer seguirà l'esatta geometria\n"
+"della forma bufferizzata."
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:27
+msgid "Autocompleter Keywords"
+msgstr "Autocompletamento parole chiave"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:30
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:40
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:30
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:30
+msgid "Restore"
+msgstr "Ripristina"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:31
+msgid "Restore the autocompleter keywords list to the default state."
+msgstr ""
+"Ripristina l'autocompletamento delle parole chiave allo stato di default."
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:33
+msgid "Delete all autocompleter keywords from the list."
+msgstr "Cancella tutte le parole chiave della lista."
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:41
+msgid "Keywords list"
+msgstr "Lista parole chiave"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:43
+msgid ""
+"List of keywords used by\n"
+"the autocompleter in FlatCAM.\n"
+"The autocompleter is installed\n"
+"in the Code Editor and for the Tcl Shell."
+msgstr ""
+"Elenco di parole chiave utilizzate dal\n"
+"completamento automatico in FlatCAM.\n"
+"Il completamento automatico è attivo\n"
+"nell'editor di codice e per la shell Tcl."
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:64
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:73
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:63
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:62
+msgid "Extension"
+msgstr "Estensione"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:65
+msgid "A keyword to be added or deleted to the list."
+msgstr "Parola chiave da aggiungere o cancellare dalla lista."
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:73
+msgid "Add keyword"
+msgstr "Aggiungi parola chiave"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:74
+msgid "Add a keyword to the list"
+msgstr "Aggiungi parola chiave alla lista"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:75
+msgid "Delete keyword"
+msgstr "Cancella parola chiave"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:76
+msgid "Delete a keyword from the list"
+msgstr "Cancella parola chiave dalla lista"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:27
+msgid "Excellon File associations"
+msgstr "Associazione file Excellon"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:41
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:31
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:31
+msgid "Restore the extension list to the default state."
+msgstr "Ripristina la lista estensioni allo stato di default."
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:43
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:33
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:33
+msgid "Delete all extensions from the list."
+msgstr "Cancella tutte le estensioni dalla lista."
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:51
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:41
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:41
+msgid "Extensions list"
+msgstr "Lista estensioni"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:53
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:43
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:43
+msgid ""
+"List of file extensions to be\n"
+"associated with FlatCAM."
+msgstr "Lista delle estensioni da associare a FlatCAM."
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:74
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:64
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:63
+msgid "A file extension to be added or deleted to the list."
+msgstr "Estensione file da aggiungere o cancellare dalla lista."
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:82
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:72
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:71
+msgid "Add Extension"
+msgstr "Aggiungi estensione"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:83
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:73
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:72
+msgid "Add a file extension to the list"
+msgstr "Aggiunge una estensione di file alla lista"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:84
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:74
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:73
+msgid "Delete Extension"
+msgstr "Cancella estensione"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:85
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:75
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:74
+msgid "Delete a file extension from the list"
+msgstr "Cancella una estensione file dalla lista"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:92
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:82
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:81
+msgid "Apply Association"
+msgstr "Applica associazione"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:93
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:83
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:82
+msgid ""
+"Apply the file associations between\n"
+"FlatCAM and the files with above extensions.\n"
+"They will be active after next logon.\n"
+"This work only in Windows."
+msgstr ""
+"Applica l'associazione tra FlatCAM e i\n"
+"files con le estensioni di cui sopra.\n"
+"Sarà effettiva dal prossimo logon.\n"
+"Funziona solo in Windows."
+
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:27
+msgid "GCode File associations"
+msgstr "Associazione file GCode"
+
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:27
+msgid "Gerber File associations"
+msgstr "Associazione file Gerber"
+
+#: AppObjects/AppObject.py:134
+#, python-brace-format
+msgid ""
+"Object ({kind}) failed because: {error} \n"
+"\n"
+msgstr ""
+"Oggetto ({kind}) fallito a causa di: {error} \n"
+"\n"
+
+#: AppObjects/AppObject.py:149
+msgid "Converting units to "
+msgstr "Converti unità in "
+
+#: AppObjects/AppObject.py:254
+msgid "CREATE A NEW FLATCAM TCL SCRIPT"
+msgstr "CREA UN NUOVO SCRIPT TCL FLATCAM"
+
+#: AppObjects/AppObject.py:255
+msgid "TCL Tutorial is here"
+msgstr "Qui c'è il tutorial TCL"
+
+#: AppObjects/AppObject.py:257
+msgid "FlatCAM commands list"
+msgstr "Lista comandi FlatCAM"
+
+#: AppObjects/AppObject.py:258
+msgid ""
+"Type >help< followed by Run Code for a list of FlatCAM Tcl Commands "
+"(displayed in Tcl Shell)."
+msgstr ""
+"Prova >help< seguito dal Run Code per una lista di comandi Tcl FlatCAM "
+"(visualizzati nella shell)."
+
+#: AppObjects/AppObject.py:304 AppObjects/AppObject.py:310
+#: AppObjects/AppObject.py:316 AppObjects/AppObject.py:322
+#: AppObjects/AppObject.py:328 AppObjects/AppObject.py:334
+msgid "created/selected"
+msgstr "creato/selezionato"
+
+#: AppObjects/AppObject.py:349 AppObjects/FlatCAMObj.py:246
+#: AppObjects/FlatCAMObj.py:277 AppObjects/FlatCAMObj.py:293
+#: AppObjects/FlatCAMObj.py:373 AppTools/ToolCopperThieving.py:1487
+#: AppTools/ToolCorners.py:394 AppTools/ToolFiducials.py:810
+#: AppTools/ToolMove.py:229 AppTools/ToolQRCode.py:728 App_Main.py:4369
+msgid "Plotting"
+msgstr "Sto tracciando"
+
+#: AppObjects/FlatCAMCNCJob.py:429 AppObjects/FlatCAMDocument.py:71
+#: AppObjects/FlatCAMScript.py:82
+msgid "Basic"
+msgstr "Base"
+
+#: AppObjects/FlatCAMCNCJob.py:435 AppObjects/FlatCAMDocument.py:75
+#: AppObjects/FlatCAMScript.py:86
+msgid "Advanced"
+msgstr "Advanzato"
+
+#: AppObjects/FlatCAMCNCJob.py:478
+msgid "Plotting..."
+msgstr "Sto disegnando..."
+
+#: AppObjects/FlatCAMCNCJob.py:507 AppObjects/FlatCAMCNCJob.py:512
+#: AppTools/ToolSolderPaste.py:1499
+msgid "Export Machine Code ..."
+msgstr "Esporta codice macchina ..."
+
+#: AppObjects/FlatCAMCNCJob.py:517 AppTools/ToolSolderPaste.py:1503
+msgid "Export Machine Code cancelled ..."
+msgstr "Esportazione codice macchina annullato ..."
+
+#: AppObjects/FlatCAMCNCJob.py:538
+msgid "Machine Code file saved to"
+msgstr "File codice macchina salvato in"
+
+#: AppObjects/FlatCAMCNCJob.py:548 AppObjects/FlatCAMScript.py:134
+#: App_Main.py:7205
+msgid "Loading..."
+msgstr "Caricamento..."
+
+#: AppObjects/FlatCAMCNCJob.py:562 App_Main.py:7302
+msgid "Code Editor"
+msgstr "Editor del codice"
+
+#: AppObjects/FlatCAMCNCJob.py:599 AppTools/ToolCalibration.py:1097
+msgid "Loaded Machine Code into Code Editor"
+msgstr "Codice macchina caricato nell'editor codice"
+
+#: AppObjects/FlatCAMCNCJob.py:740
+msgid "This CNCJob object can't be processed because it is a"
+msgstr "Questo oggetto CNCJob non può essere processato perché è"
+
+#: AppObjects/FlatCAMCNCJob.py:742
+msgid "CNCJob object"
+msgstr "Oggetto CNCJob"
+
+#: AppObjects/FlatCAMCNCJob.py:922
+msgid ""
+"G-code does not have a G94 code and we will not include the code in the "
+"'Prepend to GCode' text box"
+msgstr ""
+"G-Code non ha un codice G94 e non sarà aggiunto nel box \"anteponi al GCode\""
+
+#: AppObjects/FlatCAMCNCJob.py:933
+msgid "Cancelled. The Toolchange Custom code is enabled but it's empty."
+msgstr ""
+"Annullato. Il codice custom per il cambio utensile è abilitato ma vuoto."
+
+#: AppObjects/FlatCAMCNCJob.py:938
+msgid "Toolchange G-code was replaced by a custom code."
+msgstr "G-Code per il cambio utensile sostituito da un codice custom."
+
+#: AppObjects/FlatCAMCNCJob.py:986 AppObjects/FlatCAMCNCJob.py:996
+msgid ""
+"The used preprocessor file has to have in it's name: 'toolchange_custom'"
+msgstr ""
+"Il file del preprocessore usato deve avere nel nome: 'toolchange_custom'"
+
+#: AppObjects/FlatCAMCNCJob.py:999
+msgid "There is no preprocessor file."
+msgstr "Non c'è nessun file preprocessore."
+
+#: AppObjects/FlatCAMDocument.py:175
+msgid "Document Editor"
+msgstr "Editor Documenti"
+
+#: AppObjects/FlatCAMExcellon.py:527 AppObjects/FlatCAMExcellon.py:825
+#: AppObjects/FlatCAMGeometry.py:322 AppObjects/FlatCAMGeometry.py:852
+#: AppTools/ToolNCC.py:811 AppTools/ToolNCC.py:1196 AppTools/ToolPaint.py:778
+#: AppTools/ToolPaint.py:1170
+msgid "Multiple Tools"
+msgstr "Strumenti Multipli"
+
+#: AppObjects/FlatCAMExcellon.py:805
+msgid "No Tool Selected"
+msgstr "Nessun utensile selezionato"
+
+#: AppObjects/FlatCAMExcellon.py:1155 AppObjects/FlatCAMExcellon.py:1248
+#: AppObjects/FlatCAMExcellon.py:1435
+msgid "Please select one or more tools from the list and try again."
+msgstr "Seleziona uno o più utensili dalla lista e riprova."
+
+#: AppObjects/FlatCAMExcellon.py:1162
+msgid "Milling tool for DRILLS is larger than hole size. Cancelled."
+msgstr ""
+"L'utensile per la foratura è più grande del foro. Operazione annullata."
+
+#: AppObjects/FlatCAMExcellon.py:1177 AppObjects/FlatCAMExcellon.py:1268
+#: AppObjects/FlatCAMExcellon.py:1453 tclCommands/TclCommandDrillcncjob.py:195
+msgid "Tool_nr"
+msgstr "Utensile_nr"
+
+#: AppObjects/FlatCAMExcellon.py:1177 AppObjects/FlatCAMExcellon.py:1268
+#: AppObjects/FlatCAMExcellon.py:1453 tclCommands/TclCommandDrillcncjob.py:195
+msgid "Drills_Nr"
+msgstr "Foro_Nr"
+
+#: AppObjects/FlatCAMExcellon.py:1177 AppObjects/FlatCAMExcellon.py:1268
+#: AppObjects/FlatCAMExcellon.py:1453 tclCommands/TclCommandDrillcncjob.py:195
+msgid "Slots_Nr"
+msgstr "Slot_Nr"
+
+#: AppObjects/FlatCAMExcellon.py:1257
+msgid "Milling tool for SLOTS is larger than hole size. Cancelled."
+msgstr "L'utensile per lo SLOT è più grande del foro. Operazione annullata."
+
+#: AppObjects/FlatCAMExcellon.py:1361 AppObjects/FlatCAMGeometry.py:1625
+msgid "Focus Z"
+msgstr "Z a Fuoco"
+
+#: AppObjects/FlatCAMExcellon.py:1380 AppObjects/FlatCAMGeometry.py:1644
+msgid "Laser Power"
+msgstr "Potenza Laser"
+
+#: AppObjects/FlatCAMExcellon.py:1510 AppObjects/FlatCAMGeometry.py:2077
+#: AppObjects/FlatCAMGeometry.py:2081 AppObjects/FlatCAMGeometry.py:2232
+msgid "Generating CNC Code"
+msgstr "Generazione codice CNC"
+
+#: AppObjects/FlatCAMExcellon.py:1563 AppObjects/FlatCAMGeometry.py:2542
+#, fuzzy
+#| msgid "Delete failed. Select a tool to delete."
+msgid "Delete failed. There are no exclusion areas to delete."
+msgstr "Cancellazione fallita. Seleziona un utensile da cancellare."
+
+#: AppObjects/FlatCAMExcellon.py:1580 AppObjects/FlatCAMGeometry.py:2559
+#, fuzzy
+#| msgid "Failed. Nothing selected."
+msgid "Delete failed. Nothing is selected."
+msgstr "Errore. Niente di selezionato."
+
+#: AppObjects/FlatCAMExcellon.py:1804 AppTools/ToolNCC.py:918
+#: AppTools/ToolPaint.py:843
+msgid "Current Tool parameters were applied to all tools."
+msgstr "Parametri attuali applicati a tutti gli utensili."
+
+#: AppObjects/FlatCAMGeometry.py:123 AppObjects/FlatCAMGeometry.py:1289
+#: AppObjects/FlatCAMGeometry.py:1290 AppObjects/FlatCAMGeometry.py:1299
+msgid "Iso"
+msgstr "Iso"
+
+#: AppObjects/FlatCAMGeometry.py:123 AppObjects/FlatCAMGeometry.py:515
+#: AppObjects/FlatCAMGeometry.py:911 AppObjects/FlatCAMGerber.py:891
+#: AppObjects/FlatCAMGerber.py:1039 AppTools/ToolCutOut.py:690
+#: AppTools/ToolCutOut.py:886 AppTools/ToolCutOut.py:1046
+msgid "Rough"
+msgstr "Grezzo"
+
+#: AppObjects/FlatCAMGeometry.py:123
+msgid "Finish"
+msgstr "Finito"
+
+#: AppObjects/FlatCAMGeometry.py:550
+msgid "Add from Tool DB"
+msgstr "Aggiungi dal DB utensili"
+
+#: AppObjects/FlatCAMGeometry.py:930
+msgid "Tool added in Tool Table."
+msgstr "Utensile aggiunto nella tavola utensili."
+
+#: AppObjects/FlatCAMGeometry.py:1039 AppObjects/FlatCAMGeometry.py:1048
+msgid "Failed. Select a tool to copy."
+msgstr "Errore. Selezionare un utensile da copiare."
+
+#: AppObjects/FlatCAMGeometry.py:1077
+msgid "Tool was copied in Tool Table."
+msgstr "Utensile copiato nella tabella utensili."
+
+#: AppObjects/FlatCAMGeometry.py:1104
+msgid "Tool was edited in Tool Table."
+msgstr "Utensile editato nella tabella utensili."
+
+#: AppObjects/FlatCAMGeometry.py:1133 AppObjects/FlatCAMGeometry.py:1142
+msgid "Failed. Select a tool to delete."
+msgstr "Errore. Selezionare un utensile da cancellare."
+
+#: AppObjects/FlatCAMGeometry.py:1166
+msgid "Tool was deleted in Tool Table."
+msgstr "Utensile cancellato dalla tabella utensili."
+
+#: AppObjects/FlatCAMGeometry.py:1203 AppObjects/FlatCAMGeometry.py:1212
+msgid ""
+"Disabled because the tool is V-shape.\n"
+"For V-shape tools the depth of cut is\n"
+"calculated from other parameters like:\n"
+"- 'V-tip Angle' -> angle at the tip of the tool\n"
+"- 'V-tip Dia' -> diameter at the tip of the tool \n"
+"- Tool Dia -> 'Dia' column found in the Tool Table\n"
+"NB: a value of zero means that Tool Dia = 'V-tip Dia'"
+msgstr ""
+"Disabilitato perché lo strumento è a forma di V.\n"
+"Per gli strumenti a V la profondità di taglio è\n"
+"calcolato da altri parametri come:\n"
+"- 'Angolo V' -> angolo sulla punta dell'utensile\n"
+"- 'V Dia' -> diametro alla punta dell'utensile\n"
+"- Strumento Dia -> colonna 'Dia' trovato nella tabella degli utensili\n"
+"NB: un valore zero significa che Tool Dia = 'V Dia'"
+
+#: AppObjects/FlatCAMGeometry.py:1697
+msgid "This Geometry can't be processed because it is"
+msgstr "Geometria non processabile per"
+
+#: AppObjects/FlatCAMGeometry.py:1697
+msgid "geometry"
+msgstr "geometria"
+
+#: AppObjects/FlatCAMGeometry.py:1738
+msgid "Failed. No tool selected in the tool table ..."
+msgstr "Errore. Nessun utensile selezionato nella tabella utensili ..."
+
+#: AppObjects/FlatCAMGeometry.py:1836 AppObjects/FlatCAMGeometry.py:1986
+msgid ""
+"Tool Offset is selected in Tool Table but no value is provided.\n"
+"Add a Tool Offset or change the Offset Type."
+msgstr ""
+"Selezionato Offset utensile nella tabella utensili ma nessun valore "
+"inserito.\n"
+"Aggiungi un offset utensile o cambia il tipo di Offset."
+
+#: AppObjects/FlatCAMGeometry.py:1902 AppObjects/FlatCAMGeometry.py:2048
+msgid "G-Code parsing in progress..."
+msgstr "Analisi G_Code in corso..."
+
+#: AppObjects/FlatCAMGeometry.py:1904 AppObjects/FlatCAMGeometry.py:2050
+msgid "G-Code parsing finished..."
+msgstr "Analisi G_Code terminata..."
+
+#: AppObjects/FlatCAMGeometry.py:1912
+msgid "Finished G-Code processing"
+msgstr "Generazione G_Code terminata"
+
+#: AppObjects/FlatCAMGeometry.py:1914 AppObjects/FlatCAMGeometry.py:2062
+msgid "G-Code processing failed with error"
+msgstr "Generazione G-Code fallita con errore"
+
+#: AppObjects/FlatCAMGeometry.py:1956 AppTools/ToolSolderPaste.py:1301
+msgid "Cancelled. Empty file, it has no geometry"
+msgstr "Annullato. File vuoto, non ci sono geometrie"
+
+#: AppObjects/FlatCAMGeometry.py:2060 AppObjects/FlatCAMGeometry.py:2227
+msgid "Finished G-Code processing..."
+msgstr "Generazione G_Code terminata..."
+
+#: AppObjects/FlatCAMGeometry.py:2079 AppObjects/FlatCAMGeometry.py:2083
+#: AppObjects/FlatCAMGeometry.py:2234
+msgid "CNCjob created"
+msgstr "CNCjob creato"
+
+#: AppObjects/FlatCAMGeometry.py:2265 AppObjects/FlatCAMGeometry.py:2274
+#: AppParsers/ParseGerber.py:1866 AppParsers/ParseGerber.py:1876
+msgid "Scale factor has to be a number: integer or float."
+msgstr "Il fattore di scala deve essere un numero: intero o float."
+
+#: AppObjects/FlatCAMGeometry.py:2337
+msgid "Geometry Scale done."
+msgstr "Riscala geometria terminata."
+
+#: AppObjects/FlatCAMGeometry.py:2354 AppParsers/ParseGerber.py:1992
+msgid ""
+"An (x,y) pair of values are needed. Probable you entered only one value in "
+"the Offset field."
+msgstr ""
+"E' necessaria una coppia di valori (x,y). Probabilmente è stato inserito "
+"solo uno dei valori nel campo Offset."
+
+#: AppObjects/FlatCAMGeometry.py:2410
+msgid "Geometry Offset done."
+msgstr "Offset geometria applicato."
+
+#: AppObjects/FlatCAMGeometry.py:2439
+msgid ""
+"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, "
+"y)\n"
+"but now there is only one value, not two."
+msgstr ""
+"Il campo cambio utensile X,Y in Edit -> Preferenze deve essere nel formato "
+"(x, y)\n"
+"ma ora c'è un solo valore, non due."
+
+#: AppObjects/FlatCAMGerber.py:494
+msgid "Buffering solid geometry"
+msgstr "Riempimento geometria solida"
+
+#: AppObjects/FlatCAMGerber.py:503
+msgid "Done"
+msgstr "Fatto"
+
+#: AppObjects/FlatCAMGerber.py:529 AppObjects/FlatCAMGerber.py:555
+msgid "Operation could not be done."
+msgstr "L'operazione non può essere eseguita."
+
+#: AppObjects/FlatCAMGerber.py:572
+msgid "Isolating..."
+msgstr "Isolamento..."
+
+#: AppObjects/FlatCAMGerber.py:631
+msgid "Click on a polygon to isolate it."
+msgstr "Clicca su un poligono per isolarlo."
+
+#: AppObjects/FlatCAMGerber.py:670 AppObjects/FlatCAMGerber.py:774
+#: AppTools/ToolPaint.py:1515
+msgid "Added polygon"
+msgstr "Poligono aggiunto"
+
+#: AppObjects/FlatCAMGerber.py:671 AppObjects/FlatCAMGerber.py:776
+msgid "Click to add next polygon or right click to start isolation."
+msgstr ""
+"Clicca per aggiungere il prossimo poligono o tasto destro per iniziare "
+"l'isolamento."
+
+#: AppObjects/FlatCAMGerber.py:683 AppTools/ToolPaint.py:1529
+msgid "Removed polygon"
+msgstr "Poligono rimosso"
+
+#: AppObjects/FlatCAMGerber.py:684
+msgid "Click to add/remove next polygon or right click to start isolation."
+msgstr ""
+"Clicca per aggiungere/togliere il prossimo poligono o click destro per "
+"iniziare l'isolamento."
+
+#: AppObjects/FlatCAMGerber.py:689 AppTools/ToolPaint.py:1535
+msgid "No polygon detected under click position."
+msgstr "Nessun poligono rilevato sulla posizione cliccata."
+
+#: AppObjects/FlatCAMGerber.py:710 AppTools/ToolPaint.py:1564
+msgid "List of single polygons is empty. Aborting."
+msgstr "La lista di poligoni singoli è vuota. Operazione annullata."
+
+#: AppObjects/FlatCAMGerber.py:779
+msgid "No polygon in selection."
+msgstr "Nessun poligono nella selezione."
+
+#: AppObjects/FlatCAMGerber.py:907 AppObjects/FlatCAMGerber.py:986
+#: AppTools/ToolNCC.py:2097 AppTools/ToolNCC.py:3183 AppTools/ToolNCC.py:3562
+msgid "Isolation geometry could not be generated."
+msgstr "Geometria di isolamento non può essere generata."
+
+#: AppObjects/FlatCAMGerber.py:932 AppObjects/FlatCAMGerber.py:1064
+msgid "Isolation geometry created"
+msgstr "Geometria di isolamento creata"
+
+#: AppObjects/FlatCAMGerber.py:941 AppObjects/FlatCAMGerber.py:1071
+msgid "Subtracting Geo"
+msgstr "Sottrazione geometria"
+
+#: AppObjects/FlatCAMGerber.py:1396
+msgid "Plotting Apertures"
+msgstr "Generazione aperture"
+
+#: AppObjects/FlatCAMObj.py:232
+msgid "Name changed from"
+msgstr "Nome cambiato da"
+
+#: AppObjects/FlatCAMObj.py:232
+msgid "to"
+msgstr "a"
+
+#: AppObjects/FlatCAMObj.py:243
+msgid "Offsetting..."
+msgstr "Applicazione offset..."
+
+#: AppObjects/FlatCAMObj.py:257 AppObjects/FlatCAMObj.py:262
+msgid "Scaling could not be executed."
+msgstr "La riscalatura non può essere eseguita."
+
+#: AppObjects/FlatCAMObj.py:266 AppObjects/FlatCAMObj.py:274
+msgid "Scale done."
+msgstr "Riscalatura effettuata."
+
+#: AppObjects/FlatCAMObj.py:272
+msgid "Scaling..."
+msgstr "Riscalatura..."
+
+#: AppObjects/FlatCAMObj.py:290
+msgid "Skewing..."
+msgstr "Inglinazione..."
+
+#: AppObjects/FlatCAMScript.py:163
+msgid "Script Editor"
+msgstr "Editor Script"
+
+#: AppObjects/ObjectCollection.py:513
+#, python-brace-format
+msgid "Object renamed from {old} to {new}"
+msgstr "Oggetto rinominato da {old} a {new}"
+
+#: AppObjects/ObjectCollection.py:925 AppObjects/ObjectCollection.py:931
+#: AppObjects/ObjectCollection.py:937 AppObjects/ObjectCollection.py:943
+#: AppObjects/ObjectCollection.py:949 AppObjects/ObjectCollection.py:955
+#: App_Main.py:6158 App_Main.py:6164 App_Main.py:6170 App_Main.py:6176
+msgid "selected"
+msgstr "selezionato"
+
+#: AppObjects/ObjectCollection.py:986
+msgid "Cause of error"
+msgstr "Causa dell'errore"
+
+#: AppObjects/ObjectCollection.py:1187
+msgid "All objects are selected."
+msgstr "Tutti gli oggetti sono selezionati."
+
+#: AppObjects/ObjectCollection.py:1197
+msgid "Objects selection is cleared."
+msgstr "Selezione oggetti svuotata."
+
+#: AppParsers/ParseExcellon.py:315
+msgid "This is GCODE mark"
+msgstr "Marchio GCode"
+
+#: AppParsers/ParseExcellon.py:432
+msgid ""
+"No tool diameter info's. See shell.\n"
+"A tool change event: T"
+msgstr ""
+"Nessuna info sul diametro utensile. Vedi shell.\n"
+"Un evento cambio utensile T"
+
+#: AppParsers/ParseExcellon.py:435
+msgid ""
+"was found but the Excellon file have no informations regarding the tool "
+"diameters therefore the application will try to load it by using some 'fake' "
+"diameters.\n"
+"The user needs to edit the resulting Excellon object and change the "
+"diameters to reflect the real diameters."
+msgstr ""
+"è stato rilevato ma il file Excellon non ha informazioni a riguardo del "
+"diametro dell'utensile. L'applicazione tenterà di caricarlo usando un "
+"diametro \"finto\".\n"
+"L'utente dovrà editare l'oggetto Excellon e cambiarle il diametro per "
+"contenere il diametro corretto."
+
+#: AppParsers/ParseExcellon.py:899
+msgid ""
+"Excellon Parser error.\n"
+"Parsing Failed. Line"
+msgstr "Errore analisi Excellon. Analisi fallita. Linea"
+
+#: AppParsers/ParseExcellon.py:981
+msgid ""
+"Excellon.create_geometry() -> a drill location was skipped due of not having "
+"a tool associated.\n"
+"Check the resulting GCode."
+msgstr ""
+"Excellon.create_geometry() -> è stata ignorata una posizione di foratura per "
+"la mancanza di utensile.\n"
+"Controllare il GCode risultante."
+
+#: AppParsers/ParseFont.py:303
+msgid "Font not supported, try another one."
+msgstr "Font non supportato, prova con un altro."
+
+#: AppParsers/ParseGerber.py:425
+msgid "Gerber processing. Parsing"
+msgstr "Processo Gerber. Analisi"
+
+#: AppParsers/ParseGerber.py:425 AppParsers/ParseHPGL2.py:181
+msgid "lines"
+msgstr "righe"
+
+#: AppParsers/ParseGerber.py:1001 AppParsers/ParseGerber.py:1101
+#: AppParsers/ParseHPGL2.py:274 AppParsers/ParseHPGL2.py:288
+#: AppParsers/ParseHPGL2.py:307 AppParsers/ParseHPGL2.py:331
+#: AppParsers/ParseHPGL2.py:366
+msgid "Coordinates missing, line ignored"
+msgstr "Coordinate mancanti, riga ignorata"
+
+#: AppParsers/ParseGerber.py:1003 AppParsers/ParseGerber.py:1103
+msgid "GERBER file might be CORRUPT. Check the file !!!"
+msgstr "Il file GERBER potrebbe essere CORROTTO. Controlla il file !!!"
+
+#: AppParsers/ParseGerber.py:1057
+msgid ""
+"Region does not have enough points. File will be processed but there are "
+"parser errors. Line number"
+msgstr ""
+"La regione non ha sufficienti punti. Il file sarà usato ma ci sono errori di "
+"analisi. Riga numero"
+
+#: AppParsers/ParseGerber.py:1487 AppParsers/ParseHPGL2.py:401
+msgid "Gerber processing. Joining polygons"
+msgstr "Gerber analizzato. Unione poligoni"
+
+#: AppParsers/ParseGerber.py:1504
+msgid "Gerber processing. Applying Gerber polarity."
+msgstr "Gerber analizzato. Applico polarità Gerber."
+
+#: AppParsers/ParseGerber.py:1564
+msgid "Gerber Line"
+msgstr "Riga Gerber"
+
+#: AppParsers/ParseGerber.py:1564
+msgid "Gerber Line Content"
+msgstr "Contenuto riga Gerber"
+
+#: AppParsers/ParseGerber.py:1566
+msgid "Gerber Parser ERROR"
+msgstr "ERRORE analisi Gerber"
+
+#: AppParsers/ParseGerber.py:1956
+msgid "Gerber Scale done."
+msgstr "Riscalatura Gerber completata."
+
+#: AppParsers/ParseGerber.py:2048
+msgid "Gerber Offset done."
+msgstr "Spostamento Gerber completato."
+
+#: AppParsers/ParseGerber.py:2124
+msgid "Gerber Mirror done."
+msgstr "Specchiature Gerber completata."
+
+#: AppParsers/ParseGerber.py:2198
+msgid "Gerber Skew done."
+msgstr "Inclinazione Gerber completata."
+
+#: AppParsers/ParseGerber.py:2260
+msgid "Gerber Rotate done."
+msgstr "Rotazione Gerber completata."
+
+#: AppParsers/ParseGerber.py:2417
+msgid "Gerber Buffer done."
+msgstr "Riempimento Gerber completato."
+
+#: AppParsers/ParseHPGL2.py:181
+msgid "HPGL2 processing. Parsing"
+msgstr "Controllo HPGL2. Analisi"
+
+#: AppParsers/ParseHPGL2.py:413
+msgid "HPGL2 Line"
+msgstr "Riga HPGL2"
+
+#: AppParsers/ParseHPGL2.py:413
+msgid "HPGL2 Line Content"
+msgstr "Contenuto riga HPGL2"
+
+#: AppParsers/ParseHPGL2.py:414
+msgid "HPGL2 Parser ERROR"
+msgstr "ERRORE analisi HPGL2"
+
+#: AppProcess.py:172
+msgid "processes running."
+msgstr "processi in esecuzione."
+
+#: AppTools/ToolAlignObjects.py:32
+msgid "Align Objects"
+msgstr "Allinea oggetti"
+
+#: AppTools/ToolAlignObjects.py:61
+msgid "MOVING object"
+msgstr "SPOSTAMENTO oggetto"
+
+#: AppTools/ToolAlignObjects.py:65
+msgid ""
+"Specify the type of object to be aligned.\n"
+"It can be of type: Gerber or Excellon.\n"
+"The selection here decide the type of objects that will be\n"
+"in the Object combobox."
+msgstr ""
+"Specificare il tipo di oggetto da allineare.\n"
+"Può essere di tipo: Gerber o Excellon.\n"
+"La selezione decide il tipo di oggetti che saranno\n"
+"nella combobox Oggetto."
+
+#: AppTools/ToolAlignObjects.py:86
+msgid "Object to be aligned."
+msgstr "Oggetto da allineare."
+
+#: AppTools/ToolAlignObjects.py:98
+msgid "TARGET object"
+msgstr "Oggetto DESTINAZIONE"
+
+#: AppTools/ToolAlignObjects.py:100
+msgid ""
+"Specify the type of object to be aligned to.\n"
+"It can be of type: Gerber or Excellon.\n"
+"The selection here decide the type of objects that will be\n"
+"in the Object combobox."
+msgstr ""
+"Specificare il tipo di oggetto da allineare.\n"
+"Può essere di tipo: Gerber o Excellon.\n"
+"La selezione decide il tipo di oggetti che saranno\n"
+"nella combobox Oggetto."
+
+#: AppTools/ToolAlignObjects.py:122
+msgid "Object to be aligned to. Aligner."
+msgstr "Oggetto da allineare. Allineatore."
+
+#: AppTools/ToolAlignObjects.py:135
+msgid "Alignment Type"
+msgstr "Tipo allineamento"
+
+#: AppTools/ToolAlignObjects.py:137
+msgid ""
+"The type of alignment can be:\n"
+"- Single Point -> it require a single point of sync, the action will be a "
+"translation\n"
+"- Dual Point -> it require two points of sync, the action will be "
+"translation followed by rotation"
+msgstr ""
+"Il tipo di allineamento può essere:\n"
+"- Punto singolo -> richiede un solo punto di sincronizzazione, l'azione sarà "
+"una traslazione\n"
+"- Punto doppio -> richiede due punti di sincronizzazione, l'azione sarà la "
+"traslazione seguita da rotazione"
+
+#: AppTools/ToolAlignObjects.py:143
+msgid "Single Point"
+msgstr "Punto singolo"
+
+#: AppTools/ToolAlignObjects.py:144
+msgid "Dual Point"
+msgstr "Doppio punto"
+
+#: AppTools/ToolAlignObjects.py:159
+msgid "Align Object"
+msgstr "Allinea oggetto"
+
+#: AppTools/ToolAlignObjects.py:161
+msgid ""
+"Align the specified object to the aligner object.\n"
+"If only one point is used then it assumes translation.\n"
+"If tho points are used it assume translation and rotation."
+msgstr ""
+"Allinea l'oggetto specificato all'oggetto allineatore.\n"
+"Se viene utilizzato solo un punto, assume la traslazione.\n"
+"Se si utilizzano i punti, si assume la traslazione e rotazione."
+
+#: AppTools/ToolAlignObjects.py:176 AppTools/ToolCalculators.py:246
+#: AppTools/ToolCalibration.py:683 AppTools/ToolCopperThieving.py:484
+#: AppTools/ToolCorners.py:173 AppTools/ToolCutOut.py:362
+#: AppTools/ToolDblSided.py:471 AppTools/ToolEtchCompensation.py:136
+#: AppTools/ToolExtractDrills.py:310 AppTools/ToolFiducials.py:318
+#: AppTools/ToolFilm.py:503 AppTools/ToolInvertGerber.py:140
+#: AppTools/ToolNCC.py:612 AppTools/ToolOptimal.py:237
+#: AppTools/ToolPaint.py:555 AppTools/ToolPanelize.py:280
+#: AppTools/ToolPunchGerber.py:339 AppTools/ToolQRCode.py:314
+#: AppTools/ToolRulesCheck.py:516 AppTools/ToolSolderPaste.py:473
+#: AppTools/ToolSub.py:176 AppTools/ToolTransform.py:398
+msgid "Reset Tool"
+msgstr "Azzera strumento"
+
+#: AppTools/ToolAlignObjects.py:178 AppTools/ToolCalculators.py:248
+#: AppTools/ToolCalibration.py:685 AppTools/ToolCopperThieving.py:486
+#: AppTools/ToolCorners.py:175 AppTools/ToolCutOut.py:364
+#: AppTools/ToolDblSided.py:473 AppTools/ToolEtchCompensation.py:138
+#: AppTools/ToolExtractDrills.py:312 AppTools/ToolFiducials.py:320
+#: AppTools/ToolFilm.py:505 AppTools/ToolInvertGerber.py:142
+#: AppTools/ToolNCC.py:614 AppTools/ToolOptimal.py:239
+#: AppTools/ToolPaint.py:557 AppTools/ToolPanelize.py:282
+#: AppTools/ToolPunchGerber.py:341 AppTools/ToolQRCode.py:316
+#: AppTools/ToolRulesCheck.py:518 AppTools/ToolSolderPaste.py:475
+#: AppTools/ToolSub.py:178 AppTools/ToolTransform.py:400
+msgid "Will reset the tool parameters."
+msgstr "Azzererà i parametri dello strumento."
+
+#: AppTools/ToolAlignObjects.py:244
+msgid "Align Tool"
+msgstr "Strumento allineamento"
+
+#: AppTools/ToolAlignObjects.py:289
+msgid "There is no aligned FlatCAM object selected..."
+msgstr "Non si sono oggetti FlatCAM allineati..."
+
+#: AppTools/ToolAlignObjects.py:299
+msgid "There is no aligner FlatCAM object selected..."
+msgstr "Non si sono oggetti FlatCAM allineatori selezionati..."
+
+#: AppTools/ToolAlignObjects.py:325 AppTools/ToolAlignObjects.py:385
+msgid "First Point"
+msgstr "Primo punto"
+
+#: AppTools/ToolAlignObjects.py:325 AppTools/ToolAlignObjects.py:400
+msgid "Click on the START point."
+msgstr "Fai clic sul punto di PARTENZA."
+
+#: AppTools/ToolAlignObjects.py:380 AppTools/ToolCalibration.py:920
+msgid "Cancelled by user request."
+msgstr "Annullato su richiesta dell'utente."
+
+#: AppTools/ToolAlignObjects.py:385 AppTools/ToolAlignObjects.py:407
+msgid "Click on the DESTINATION point."
+msgstr "Fai clic sul punto di DESTINAZIONE."
+
+#: AppTools/ToolAlignObjects.py:385 AppTools/ToolAlignObjects.py:400
+#: AppTools/ToolAlignObjects.py:407
+msgid "Or right click to cancel."
+msgstr "O click destro per annullare."
+
+#: AppTools/ToolAlignObjects.py:400 AppTools/ToolAlignObjects.py:407
+#: AppTools/ToolFiducials.py:111
+msgid "Second Point"
+msgstr "Secondo punto"
+
+#: AppTools/ToolCalculators.py:24
+msgid "Calculators"
+msgstr "Calcolatrici"
+
+#: AppTools/ToolCalculators.py:26
+msgid "Units Calculator"
+msgstr "Calcolatrice unità"
+
+#: AppTools/ToolCalculators.py:70
+msgid "Here you enter the value to be converted from INCH to MM"
+msgstr "Puoi convertire unita da POLLICI a MM"
+
+#: AppTools/ToolCalculators.py:75
+msgid "Here you enter the value to be converted from MM to INCH"
+msgstr "Puoi convertire unita da MM a POLLICI"
+
+#: AppTools/ToolCalculators.py:111
+msgid ""
+"This is the angle of the tip of the tool.\n"
+"It is specified by manufacturer."
+msgstr ""
+"Questo è l'angolo della punta dell'utensile.\n"
+"È specificato dal produttore."
+
+#: AppTools/ToolCalculators.py:120
+msgid ""
+"This is the depth to cut into the material.\n"
+"In the CNCJob is the CutZ parameter."
+msgstr ""
+"Questa è la profondità di taglio nel materiale.\n"
+"Nel CNCJob è presente il parametro CutZ."
+
+#: AppTools/ToolCalculators.py:128
+msgid ""
+"This is the tool diameter to be entered into\n"
+"FlatCAM Gerber section.\n"
+"In the CNCJob section it is called >Tool dia<."
+msgstr ""
+"Questo è il diametro dell'utensile da inserire\n"
+"nella sezione FlatCAM Gerber.\n"
+"Nella sezione CNCJob si chiama >Tool dia<."
+
+#: AppTools/ToolCalculators.py:139 AppTools/ToolCalculators.py:235
+msgid "Calculate"
+msgstr "Calcola"
+
+#: AppTools/ToolCalculators.py:142
+msgid ""
+"Calculate either the Cut Z or the effective tool diameter,\n"
+" depending on which is desired and which is known. "
+msgstr ""
+"Calcola il taglio Z o il diametro effettivo dell'utensile,\n"
+" a seconda del risultato desiderato o dei dati noti. "
+
+#: AppTools/ToolCalculators.py:205
+msgid "Current Value"
+msgstr "Valore corrente"
+
+#: AppTools/ToolCalculators.py:212
+msgid ""
+"This is the current intensity value\n"
+"to be set on the Power Supply. In Amps."
+msgstr ""
+"Intensità di corrente da impostare\n"
+"nell'alimentatore. In Ampere."
+
+#: AppTools/ToolCalculators.py:216
+msgid "Time"
+msgstr "Tempo"
+
+#: AppTools/ToolCalculators.py:223
+msgid ""
+"This is the calculated time required for the procedure.\n"
+"In minutes."
+msgstr "Tempo calcolato per la procedura. In minuti."
+
+#: AppTools/ToolCalculators.py:238
+msgid ""
+"Calculate the current intensity value and the procedure time,\n"
+"depending on the parameters above"
+msgstr ""
+"Calcula l'intensità di corrente e la durata della procedura,\n"
+"a seconda dei parametri sopra"
+
+#: AppTools/ToolCalculators.py:299
+msgid "Calc. Tool"
+msgstr "Strumenti Calcolatrici"
+
+#: AppTools/ToolCalibration.py:67
+msgid "GCode Parameters"
+msgstr "Parametri GCode"
+
+#: AppTools/ToolCalibration.py:69
+msgid "Parameters used when creating the GCode in this tool."
+msgstr "Parametri usati nella creazione del GCode in questo strumento."
+
+#: AppTools/ToolCalibration.py:173
+msgid "STEP 1: Acquire Calibration Points"
+msgstr "PASSO 1: Acquisizione dei punti di calibrazione"
+
+#: AppTools/ToolCalibration.py:175
+msgid ""
+"Pick four points by clicking on canvas.\n"
+"Those four points should be in the four\n"
+"(as much as possible) corners of the object."
+msgstr ""
+"Calcola il taglio Z o il diametro effettivo dell'utensile,\n"
+" a seconda del risultato desiderato o dei dati noti...."
+
+#: AppTools/ToolCalibration.py:193 AppTools/ToolFilm.py:71
+#: AppTools/ToolImage.py:54 AppTools/ToolPanelize.py:77
+#: AppTools/ToolProperties.py:177
+msgid "Object Type"
+msgstr "Tipo oggetto"
+
+#: AppTools/ToolCalibration.py:210
+msgid "Source object selection"
+msgstr "Selezione oggetto di origine"
+
+#: AppTools/ToolCalibration.py:212
+msgid "FlatCAM Object to be used as a source for reference points."
+msgstr "Oggetto FlatCAM da usare come sorgente per i punti di riferimento."
+
+#: AppTools/ToolCalibration.py:218
+msgid "Calibration Points"
+msgstr "Punti di calibrazione"
+
+#: AppTools/ToolCalibration.py:220
+msgid ""
+"Contain the expected calibration points and the\n"
+"ones measured."
+msgstr ""
+"Contiene i punti di calibrazione e\n"
+"quelli misurati."
+
+#: AppTools/ToolCalibration.py:235 AppTools/ToolSub.py:76
+#: AppTools/ToolSub.py:131
+msgid "Target"
+msgstr "Destinazione"
+
+#: AppTools/ToolCalibration.py:236
+msgid "Found Delta"
+msgstr "Calcolo Delta"
+
+#: AppTools/ToolCalibration.py:248
+msgid "Bot Left X"
+msgstr "X basso-Sinistra"
+
+#: AppTools/ToolCalibration.py:257
+msgid "Bot Left Y"
+msgstr "Y Basso-Sinistra"
+
+#: AppTools/ToolCalibration.py:275
+msgid "Bot Right X"
+msgstr "X Basso-Destra"
+
+#: AppTools/ToolCalibration.py:285
+msgid "Bot Right Y"
+msgstr "Y Basso-Destra"
+
+#: AppTools/ToolCalibration.py:300
+msgid "Top Left X"
+msgstr "X Alto-Sinistra"
+
+#: AppTools/ToolCalibration.py:309
+msgid "Top Left Y"
+msgstr "Y Alto-Sinistra"
+
+#: AppTools/ToolCalibration.py:324
+msgid "Top Right X"
+msgstr "X Alto-Destra"
+
+#: AppTools/ToolCalibration.py:334
+msgid "Top Right Y"
+msgstr "Y Alto-Destra"
+
+#: AppTools/ToolCalibration.py:367
+msgid "Get Points"
+msgstr "Ottieni punti"
+
+#: AppTools/ToolCalibration.py:369
+msgid ""
+"Pick four points by clicking on canvas if the source choice\n"
+"is 'free' or inside the object geometry if the source is 'object'.\n"
+"Those four points should be in the four squares of\n"
+"the object."
+msgstr ""
+"Seleziona quattro punti cliccandoci sopra se l'origine scelta è\n"
+"'libera' o all'interno dell'oggetto geometria se la sorgente è 'oggetto'.\n"
+"Questi quattro punti dovrebbero essere nei quattro angoli\n"
+"dell'oggetto."
+
+#: AppTools/ToolCalibration.py:390
+msgid "STEP 2: Verification GCode"
+msgstr "PASSO 2: Verifica del GCode"
+
+#: AppTools/ToolCalibration.py:392 AppTools/ToolCalibration.py:405
+msgid ""
+"Generate GCode file to locate and align the PCB by using\n"
+"the four points acquired above.\n"
+"The points sequence is:\n"
+"- first point -> set the origin\n"
+"- second point -> alignment point. Can be: top-left or bottom-right.\n"
+"- third point -> check point. Can be: top-left or bottom-right.\n"
+"- forth point -> final verification point. Just for evaluation."
+msgstr ""
+"Genera il file GCode per individuare e allineare il PCB utilizzando\n"
+"i quattro punti acquisiti sopra.\n"
+"La sequenza di punti è:\n"
+"- primo punto -> imposta l'origine\n"
+"- secondo punto -> punto di allineamento. Può essere: in alto a sinistra o "
+"in basso a destra.\n"
+"- terzo punto -> punto di controllo. Può essere: in alto a sinistra o in "
+"basso a destra.\n"
+"- quarto punto -> punto di verifica finale. Solo per valutazione."
+
+#: AppTools/ToolCalibration.py:403 AppTools/ToolSolderPaste.py:348
+msgid "Generate GCode"
+msgstr "Genera GCode"
+
+#: AppTools/ToolCalibration.py:429
+msgid "STEP 3: Adjustments"
+msgstr "PASSO 3: modifica"
+
+#: AppTools/ToolCalibration.py:431 AppTools/ToolCalibration.py:440
+msgid ""
+"Calculate Scale and Skew factors based on the differences (delta)\n"
+"found when checking the PCB pattern. The differences must be filled\n"
+"in the fields Found (Delta)."
+msgstr ""
+"Calcola i fattori di scala e di inclinazione in base alle differenze "
+"(delta)\n"
+"trovate durante il controllo del PCB. Le differenze devono essere colmate\n"
+"nei campi Trovato (Delta)."
+
+#: AppTools/ToolCalibration.py:438
+msgid "Calculate Factors"
+msgstr "Calcola fattori"
+
+#: AppTools/ToolCalibration.py:460
+msgid "STEP 4: Adjusted GCode"
+msgstr "PASSO 4: GCode modificato"
+
+#: AppTools/ToolCalibration.py:462
+msgid ""
+"Generate verification GCode file adjusted with\n"
+"the factors above."
+msgstr ""
+"Genera file GCode di verifica modificato con\n"
+"i fattori sopra."
+
+#: AppTools/ToolCalibration.py:467
+msgid "Scale Factor X:"
+msgstr "Fattore X scala:"
+
+#: AppTools/ToolCalibration.py:479
+msgid "Scale Factor Y:"
+msgstr "Fattore Y scala:"
+
+#: AppTools/ToolCalibration.py:491
+msgid "Apply Scale Factors"
+msgstr "Applica fattori di scala"
+
+#: AppTools/ToolCalibration.py:493
+msgid "Apply Scale factors on the calibration points."
+msgstr "Applica fattori di scala sui punti di calibrazione."
+
+#: AppTools/ToolCalibration.py:503
+msgid "Skew Angle X:"
+msgstr "Angolo inclinazione X:"
+
+#: AppTools/ToolCalibration.py:516
+msgid "Skew Angle Y:"
+msgstr "Angolo inclinazione Y:"
+
+#: AppTools/ToolCalibration.py:529
+msgid "Apply Skew Factors"
+msgstr "Applica fattori di inclinazione"
+
+#: AppTools/ToolCalibration.py:531
+msgid "Apply Skew factors on the calibration points."
+msgstr "Applica fattori di inclinazione sui punti di calibrazione."
+
+#: AppTools/ToolCalibration.py:600
+msgid "Generate Adjusted GCode"
+msgstr "Genera GCode modificato"
+
+#: AppTools/ToolCalibration.py:602
+msgid ""
+"Generate verification GCode file adjusted with\n"
+"the factors set above.\n"
+"The GCode parameters can be readjusted\n"
+"before clicking this button."
+msgstr ""
+"Genera file GCode di verifica modificato con\n"
+"i fattori sopra indicati.\n"
+"I parametri GCode possono essere riadattati\n"
+"prima di fare clic su questo pulsante."
+
+#: AppTools/ToolCalibration.py:623
+msgid "STEP 5: Calibrate FlatCAM Objects"
+msgstr "PASSO 5: Calibra oggetti FlatCAM"
+
+#: AppTools/ToolCalibration.py:625
+msgid ""
+"Adjust the FlatCAM objects\n"
+"with the factors determined and verified above."
+msgstr ""
+"Regola gli oggetti FlatCAM\n"
+"con i fattori determinati e verificati sopra."
+
+#: AppTools/ToolCalibration.py:637
+msgid "Adjusted object type"
+msgstr "Tipo oggetto regolato"
+
+#: AppTools/ToolCalibration.py:638
+msgid "Type of the FlatCAM Object to be adjusted."
+msgstr "Tipo di oggetto FlatCAM da regolare."
+
+#: AppTools/ToolCalibration.py:651
+msgid "Adjusted object selection"
+msgstr "Selezione oggetto regolato"
+
+#: AppTools/ToolCalibration.py:653
+msgid "The FlatCAM Object to be adjusted."
+msgstr "L'oggetto FlatCAM da regolare."
+
+#: AppTools/ToolCalibration.py:660
+msgid "Calibrate"
+msgstr "Calibra"
+
+#: AppTools/ToolCalibration.py:662
+msgid ""
+"Adjust (scale and/or skew) the objects\n"
+"with the factors determined above."
+msgstr ""
+"Regola (scala e/o inclina) gli oggetti\n"
+"con i fattori determinati sopra."
+
+#: AppTools/ToolCalibration.py:770 AppTools/ToolCalibration.py:771
+msgid "Origin"
+msgstr "Origine"
+
+#: AppTools/ToolCalibration.py:800
+msgid "Tool initialized"
+msgstr "Strumento inizializzato"
+
+#: AppTools/ToolCalibration.py:838
+msgid "There is no source FlatCAM object selected..."
+msgstr "Non si sono oggetti FlatCAM sorgente selezionati..."
+
+#: AppTools/ToolCalibration.py:859
+msgid "Get First calibration point. Bottom Left..."
+msgstr "Primo punto di calibrazione. In basso a sinistra..."
+
+#: AppTools/ToolCalibration.py:926
+msgid "Get Second calibration point. Bottom Right (Top Left)..."
+msgstr "Secondo punto di calibrazione. In basso a destra (Sopra Sinistra) ..."
+
+#: AppTools/ToolCalibration.py:930
+msgid "Get Third calibration point. Top Left (Bottom Right)..."
+msgstr "Terzo punto di calibrazione. Sopra a sinistra (Basso Destra)…."
+
+#: AppTools/ToolCalibration.py:934
+msgid "Get Forth calibration point. Top Right..."
+msgstr "Quarto punto di calibrazione. In alto a destra..."
+
+#: AppTools/ToolCalibration.py:938
+msgid "Done. All four points have been acquired."
+msgstr "Fatto. I quattro punti sono stati ascuisiti."
+
+#: AppTools/ToolCalibration.py:969
+msgid "Verification GCode for FlatCAM Calibration Tool"
+msgstr "Verifica Gcode per lo strumento Calibrazione di FlatCAM"
+
+#: AppTools/ToolCalibration.py:981 AppTools/ToolCalibration.py:1067
+msgid "Gcode Viewer"
+msgstr "Visualizzatore GCode"
+
+#: AppTools/ToolCalibration.py:997
+msgid "Cancelled. Four points are needed for GCode generation."
+msgstr "Annullato. Sono necessari 4 punti per la generazione del GCode."
+
+#: AppTools/ToolCalibration.py:1253 AppTools/ToolCalibration.py:1349
+msgid "There is no FlatCAM object selected..."
+msgstr "Non si sono oggetti FlatCAM selezionati..."
+
+#: AppTools/ToolCopperThieving.py:76 AppTools/ToolFiducials.py:261
+msgid "Gerber Object to which will be added a copper thieving."
+msgstr "Oggetto Gerber a cui verrà aggiunto rame."
+
+#: AppTools/ToolCopperThieving.py:98
+msgid ""
+"This set the distance between the copper thieving components\n"
+"(the polygon fill may be split in multiple polygons)\n"
+"and the copper traces in the Gerber file."
+msgstr ""
+"Questo imposta la distanza tra i componenti del Copper Thieving\n"
+"(il riempimento poligonale può essere suddiviso in più poligoni)\n"
+"e le tracce di rame nel file Gerber."
+
+#: AppTools/ToolCopperThieving.py:131
+msgid ""
+"- 'Itself' - the copper thieving extent is based on the object extent.\n"
+"- 'Area Selection' - left mouse click to start selection of the area to be "
+"filled.\n"
+"- 'Reference Object' - will do copper thieving within the area specified by "
+"another object."
+msgstr ""
+"- 'Stesso': l'estensione del deposito di rame si basa sull'estensione "
+"dell'oggetto.\n"
+"- 'Selezione area': fare clic con il pulsante sinistro del mouse per avviare "
+"la selezione dell'area da riempire.\n"
+"- 'Oggetto di riferimento': eseguirà il furto di rame nell'area specificata "
+"da un altro oggetto."
+
+#: AppTools/ToolCopperThieving.py:138 AppTools/ToolNCC.py:552
+#: AppTools/ToolPaint.py:495
+msgid "Ref. Type"
+msgstr "Tipo riferimento"
+
+#: AppTools/ToolCopperThieving.py:140
+msgid ""
+"The type of FlatCAM object to be used as copper thieving reference.\n"
+"It can be Gerber, Excellon or Geometry."
+msgstr ""
+"Il tipo di oggetto FlatCAM da utilizzare come riferimento Copper Thieving.\n"
+"Può essere Gerber, Excellon o Geometry."
+
+#: AppTools/ToolCopperThieving.py:149 AppTools/ToolNCC.py:562
+#: AppTools/ToolPaint.py:505
+msgid "Ref. Object"
+msgstr "Oggetto di riferimento"
+
+#: AppTools/ToolCopperThieving.py:151 AppTools/ToolNCC.py:564
+#: AppTools/ToolPaint.py:507
+msgid "The FlatCAM object to be used as non copper clearing reference."
+msgstr "Oggetto FlatCAM da usare come riferimento rimozione rame."
+
+#: AppTools/ToolCopperThieving.py:327
+msgid "Insert Copper thieving"
+msgstr "Inserire il Copper Thieving"
+
+#: AppTools/ToolCopperThieving.py:329
+msgid ""
+"Will add a polygon (may be split in multiple parts)\n"
+"that will surround the actual Gerber traces at a certain distance."
+msgstr ""
+"Aggiungerà un poligono (può essere diviso in più parti)\n"
+"che circonderà le tracce Gerber attuali ad una certa distanza."
+
+#: AppTools/ToolCopperThieving.py:388
+msgid "Insert Robber Bar"
+msgstr "Inserisci la barra del ladro"
+
+#: AppTools/ToolCopperThieving.py:390
+msgid ""
+"Will add a polygon with a defined thickness\n"
+"that will surround the actual Gerber object\n"
+"at a certain distance.\n"
+"Required when doing holes pattern plating."
+msgstr ""
+"Aggiungerà un poligono con uno spessore definito\n"
+"che circonderà l'oggetto Gerber reale\n"
+"ad una certa distanza.\n"
+"Richiesto quando si esegue la placcatura di fori."
+
+#: AppTools/ToolCopperThieving.py:414
+msgid "Select Soldermask object"
+msgstr "Seleziona oggetto Soldermask"
+
+#: AppTools/ToolCopperThieving.py:416
+msgid ""
+"Gerber Object with the soldermask.\n"
+"It will be used as a base for\n"
+"the pattern plating mask."
+msgstr ""
+"Oggetto Gerber con il soldermask.\n"
+"Sarà usato come base per\n"
+"la maschera di placcatura del modello."
+
+#: AppTools/ToolCopperThieving.py:445
+msgid "Plated area"
+msgstr "Area ricoperta"
+
+#: AppTools/ToolCopperThieving.py:447
+msgid ""
+"The area to be plated by pattern plating.\n"
+"Basically is made from the openings in the plating mask.\n"
+"\n"
+"<> - the calculated area is actually a bit larger\n"
+"due of the fact that the soldermask openings are by design\n"
+"a bit larger than the copper pads, and this area is\n"
+"calculated from the soldermask openings."
+msgstr ""
+"L'area da ricoprire mediante placcatura a motivo.\n"
+"Fondamentalmente è fatto dalle aperture nella maschera di placcatura.\n"
+"\n"
+"<>: l'area calcolata è in realtà un po' più grande\n"
+"a causa del fatto che le aperture del soldermask sono progettate\n"
+"un po' più grandi dei pad di rame, e questa area è\n"
+"calcolata dalle aperture del soldermask."
+
+#: AppTools/ToolCopperThieving.py:458
+msgid "mm"
+msgstr "mm"
+
+#: AppTools/ToolCopperThieving.py:460
+msgid "in"
+msgstr "pollici"
+
+#: AppTools/ToolCopperThieving.py:467
+msgid "Generate pattern plating mask"
+msgstr "Genera maschera placcatura modello"
+
+#: AppTools/ToolCopperThieving.py:469
+msgid ""
+"Will add to the soldermask gerber geometry\n"
+"the geometries of the copper thieving and/or\n"
+"the robber bar if those were generated."
+msgstr ""
+"Aggiungerà alla geometria gerber soldermask\n"
+"le geometrie del deposito di rame e/o\n"
+"la barra dei ladri se sono stati generati."
+
+#: AppTools/ToolCopperThieving.py:625 AppTools/ToolCopperThieving.py:650
+msgid "Lines Grid works only for 'itself' reference ..."
+msgstr "Griglia linee funziona solo per riferimento 'stesso' ..."
+
+#: AppTools/ToolCopperThieving.py:636
+msgid "Solid fill selected."
+msgstr "Riempimento solido selezionato."
+
+#: AppTools/ToolCopperThieving.py:641
+msgid "Dots grid fill selected."
+msgstr "Riempimento griglia di punti selezionata."
+
+#: AppTools/ToolCopperThieving.py:646
+msgid "Squares grid fill selected."
+msgstr "Riempimento griglia di quadrati selezionata."
+
+#: AppTools/ToolCopperThieving.py:667 AppTools/ToolCopperThieving.py:749
+#: AppTools/ToolCopperThieving.py:1351 AppTools/ToolCorners.py:251
+#: AppTools/ToolDblSided.py:657 AppTools/ToolExtractDrills.py:436
+#: AppTools/ToolFiducials.py:467 AppTools/ToolFiducials.py:744
+#: AppTools/ToolOptimal.py:342 AppTools/ToolPunchGerber.py:512
+#: AppTools/ToolQRCode.py:426
+msgid "There is no Gerber object loaded ..."
+msgstr "Non ci sono oggetti Gerber caricati ..."
+
+#: AppTools/ToolCopperThieving.py:680 AppTools/ToolCopperThieving.py:1279
+msgid "Append geometry"
+msgstr "Aggiungi geometria"
+
+#: AppTools/ToolCopperThieving.py:724 AppTools/ToolCopperThieving.py:1312
+#: AppTools/ToolCopperThieving.py:1465
+msgid "Append source file"
+msgstr "Aggiungi file sorgente"
+
+#: AppTools/ToolCopperThieving.py:732 AppTools/ToolCopperThieving.py:1320
+msgid "Copper Thieving Tool done."
+msgstr "Strumento Copper Thieving fatto."
+
+#: AppTools/ToolCopperThieving.py:759 AppTools/ToolCopperThieving.py:792
+#: AppTools/ToolCutOut.py:519 AppTools/ToolCutOut.py:724
+#: AppTools/ToolEtchCompensation.py:208 AppTools/ToolInvertGerber.py:208
+#: AppTools/ToolNCC.py:1599 AppTools/ToolNCC.py:1641 AppTools/ToolNCC.py:1670
+#: AppTools/ToolPaint.py:1473 AppTools/ToolPanelize.py:423
+#: AppTools/ToolPanelize.py:437 AppTools/ToolSub.py:294 AppTools/ToolSub.py:307
+#: AppTools/ToolSub.py:498 AppTools/ToolSub.py:513
+#: tclCommands/TclCommandCopperClear.py:97 tclCommands/TclCommandPaint.py:99
+msgid "Could not retrieve object"
+msgstr "Impossibile recuperare l'oggetto"
+
+#: AppTools/ToolCopperThieving.py:769 AppTools/ToolNCC.py:1649 Common.py:200
+msgid "Click the start point of the area."
+msgstr "Fai clic sul punto iniziale dell'area."
+
+#: AppTools/ToolCopperThieving.py:820
+msgid "Click the end point of the filling area."
+msgstr "Fai clic sul punto finale dell'area di riempimento."
+
+#: AppTools/ToolCopperThieving.py:826 AppTools/ToolNCC.py:1711
+#: AppTools/ToolNCC.py:1763 AppTools/ToolPaint.py:1605
+#: AppTools/ToolPaint.py:1656 Common.py:256 Common.py:356
+msgid "Zone added. Click to start adding next zone or right click to finish."
+msgstr ""
+"Zona aggiunta. Fare clic per iniziare ad aggiungere la zona successiva o "
+"fare clic con il tasto destro per terminare."
+
+#: AppTools/ToolCopperThieving.py:948 AppTools/ToolCopperThieving.py:952
+#: AppTools/ToolCopperThieving.py:1013
+msgid "Thieving"
+msgstr "Deposito"
+
+#: AppTools/ToolCopperThieving.py:959
+msgid "Copper Thieving Tool started. Reading parameters."
+msgstr "Strumento Copper Thieving avviato. Lettura dei parametri."
+
+#: AppTools/ToolCopperThieving.py:984
+msgid "Copper Thieving Tool. Preparing isolation polygons."
+msgstr ""
+"Strumento Copper Thieving avviato. Preparazione poligoni di isolamento."
+
+#: AppTools/ToolCopperThieving.py:1029
+msgid "Copper Thieving Tool. Preparing areas to fill with copper."
+msgstr ""
+"Strumento Copper Thieving avviato. Preparazione aree da riempire di rame."
+
+#: AppTools/ToolCopperThieving.py:1040 AppTools/ToolOptimal.py:349
+#: AppTools/ToolPanelize.py:810 AppTools/ToolRulesCheck.py:1127
+msgid "Working..."
+msgstr "Elaborazione..."
+
+#: AppTools/ToolCopperThieving.py:1067
+msgid "Geometry not supported for bounding box"
+msgstr "Geometria non supportata per box di selezione"
+
+#: AppTools/ToolCopperThieving.py:1073 AppTools/ToolNCC.py:1942
+#: AppTools/ToolNCC.py:1997 AppTools/ToolNCC.py:3038 AppTools/ToolPaint.py:3385
+msgid "No object available."
+msgstr "Nessun oggetto disponibile."
+
+#: AppTools/ToolCopperThieving.py:1110 AppTools/ToolNCC.py:1967
+#: AppTools/ToolNCC.py:2020 AppTools/ToolNCC.py:3080
+msgid "The reference object type is not supported."
+msgstr "Il tipo di oggetto di riferimento non è supportato."
+
+#: AppTools/ToolCopperThieving.py:1115
+msgid "Copper Thieving Tool. Appending new geometry and buffering."
+msgstr "Strumento Copper Thieving. Aggiunta di nuova geometria e buffering."
+
+#: AppTools/ToolCopperThieving.py:1131
+msgid "Create geometry"
+msgstr "Crea geometria"
+
+#: AppTools/ToolCopperThieving.py:1331 AppTools/ToolCopperThieving.py:1335
+msgid "P-Plating Mask"
+msgstr "Maskera P-Placatura"
+
+#: AppTools/ToolCopperThieving.py:1357
+msgid "Append PP-M geometry"
+msgstr "Aggiunta geometria maschera placatura"
+
+#: AppTools/ToolCopperThieving.py:1483
+msgid "Generating Pattern Plating Mask done."
+msgstr "Generazione maschera Placatura eseguita."
+
+#: AppTools/ToolCopperThieving.py:1555
+msgid "Copper Thieving Tool exit."
+msgstr "Chiudi strumento Copper Thieving."
+
+#: AppTools/ToolCorners.py:57
+#, fuzzy
+#| msgid "Gerber Object to which will be added a copper thieving."
+msgid "The Gerber object that to which will be added corner markers."
+msgstr "Oggetto Gerber a cui verrà aggiunto rame."
+
+#: AppTools/ToolCorners.py:73
+#, fuzzy
+#| msgid "Location"
+msgid "Locations"
+msgstr "Locazione"
+
+#: AppTools/ToolCorners.py:75
+msgid "Locations where to place corner markers."
+msgstr ""
+
+#: AppTools/ToolCorners.py:92 AppTools/ToolFiducials.py:99
+msgid "Top Right"
+msgstr "Alto destra"
+
+#: AppTools/ToolCorners.py:158
+#, fuzzy
+#| msgid "Add keyword"
+msgid "Add Marker"
+msgstr "Aggiungi parola chiave"
+
+#: AppTools/ToolCorners.py:160
+msgid "Will add corner markers to the selected Gerber file."
+msgstr ""
+
+#: AppTools/ToolCorners.py:225
+#, fuzzy
+#| msgid "QRCode Tool"
+msgid "Corners Tool"
+msgstr "Strumento QRCode"
+
+#: AppTools/ToolCorners.py:288
+msgid "Please select at least a location"
+msgstr ""
+
+#: AppTools/ToolCorners.py:423
+#, fuzzy
+#| msgid "Copper Thieving Tool exit."
+msgid "Corners Tool exit."
+msgstr "Chiudi strumento Copper Thieving."
+
+#: AppTools/ToolCutOut.py:41
+msgid "Cutout PCB"
+msgstr "Taglia PCB"
+
+#: AppTools/ToolCutOut.py:69 AppTools/ToolPanelize.py:53
+msgid "Source Object"
+msgstr "Oggetto sorgente"
+
+#: AppTools/ToolCutOut.py:70
+msgid "Object to be cutout"
+msgstr "Oggetto da tagliare"
+
+#: AppTools/ToolCutOut.py:75
+msgid "Kind"
+msgstr "Tipo"
+
+#: AppTools/ToolCutOut.py:97
+msgid ""
+"Specify the type of object to be cutout.\n"
+"It can be of type: Gerber or Geometry.\n"
+"What is selected here will dictate the kind\n"
+"of objects that will populate the 'Object' combobox."
+msgstr ""
+"Specificare il tipo di oggetto da ritagliare.\n"
+"Può essere di tipo: Gerber o Geometria.\n"
+"Ciò che è selezionato qui detterà il tipo\n"
+"di oggetti che popoleranno la casella combinata 'Oggetto'."
+
+#: AppTools/ToolCutOut.py:121
+msgid "Tool Parameters"
+msgstr "Parametri Utensile"
+
+#: AppTools/ToolCutOut.py:238
+msgid "A. Automatic Bridge Gaps"
+msgstr "A. Testimoni automatici"
+
+#: AppTools/ToolCutOut.py:240
+msgid "This section handle creation of automatic bridge gaps."
+msgstr "Questa sezione gestisce la creazione di testimoni automatici."
+
+#: AppTools/ToolCutOut.py:247
+msgid ""
+"Number of gaps used for the Automatic cutout.\n"
+"There can be maximum 8 bridges/gaps.\n"
+"The choices are:\n"
+"- None - no gaps\n"
+"- lr - left + right\n"
+"- tb - top + bottom\n"
+"- 4 - left + right +top + bottom\n"
+"- 2lr - 2*left + 2*right\n"
+"- 2tb - 2*top + 2*bottom\n"
+"- 8 - 2*left + 2*right +2*top + 2*bottom"
+msgstr ""
+"Numero di spazi utilizzati per il ritaglio automatico.\n"
+"Possono esserci al massimo 8 ponti/spazi vuoti.\n"
+"Le scelte sono:\n"
+"- Nessuna - nessuna lacuna\n"
+"- SD - sinistra + destra\n"
+"- AB - alto + basso\n"
+"- 4 - sinistra + destra + sopra + sotto\n"
+"- 2SD - 2 * sinistra + 2 * destra\n"
+"- 2AB - 2 * in alto + 2 * in basso\n"
+"- 8 - 2 * sinistra + 2 * destra + 2 * in alto + 2 * in basso"
+
+#: AppTools/ToolCutOut.py:269
+msgid "Generate Freeform Geometry"
+msgstr "Genera geometria a forma libera"
+
+#: AppTools/ToolCutOut.py:271
+msgid ""
+"Cutout the selected object.\n"
+"The cutout shape can be of any shape.\n"
+"Useful when the PCB has a non-rectangular shape."
+msgstr ""
+"Ritaglia l'oggetto selezionato.\n"
+"La forma del ritaglio può essere di qualsiasi forma.\n"
+"Utile quando il PCB ha una forma non rettangolare."
+
+#: AppTools/ToolCutOut.py:283
+msgid "Generate Rectangular Geometry"
+msgstr "Genera geometria rettangolare"
+
+#: AppTools/ToolCutOut.py:285
+msgid ""
+"Cutout the selected object.\n"
+"The resulting cutout shape is\n"
+"always a rectangle shape and it will be\n"
+"the bounding box of the Object."
+msgstr ""
+"Ritaglia l'oggetto selezionato.\n"
+"La forma di ritaglio risultante è\n"
+"sempre una forma rettangolare e sarà\n"
+"rettangolare anche la selezione dell'oggetto."
+
+#: AppTools/ToolCutOut.py:304
+msgid "B. Manual Bridge Gaps"
+msgstr "B. Testimoni manuali"
+
+#: AppTools/ToolCutOut.py:306
+msgid ""
+"This section handle creation of manual bridge gaps.\n"
+"This is done by mouse clicking on the perimeter of the\n"
+"Geometry object that is used as a cutout object. "
+msgstr ""
+"Questa sezione gestisce la creazione di testimoni manuali.\n"
+"Questo viene fatto facendo clic con il mouse sul perimetro\n"
+"dell'oggetto Geometria utilizzato come oggetto ritaglio. "
+
+#: AppTools/ToolCutOut.py:321
+msgid "Geometry object used to create the manual cutout."
+msgstr "Oggetto geometria utilizzato per creare il ritaglio manuale."
+
+#: AppTools/ToolCutOut.py:328
+msgid "Generate Manual Geometry"
+msgstr "Genera geometria manuale"
+
+#: AppTools/ToolCutOut.py:330
+msgid ""
+"If the object to be cutout is a Gerber\n"
+"first create a Geometry that surrounds it,\n"
+"to be used as the cutout, if one doesn't exist yet.\n"
+"Select the source Gerber file in the top object combobox."
+msgstr ""
+"Se l'oggetto da ritagliare è un Gerber\n"
+"prima crea una Geometria che la circondi,\n"
+"da usare come ritaglio, se non ne esiste ancora uno.\n"
+"Seleziona il file Gerber di origine nel box in alto."
+
+#: AppTools/ToolCutOut.py:343
+msgid "Manual Add Bridge Gaps"
+msgstr "Aggiungi testimoni manualmente"
+
+#: AppTools/ToolCutOut.py:345
+msgid ""
+"Use the left mouse button (LMB) click\n"
+"to create a bridge gap to separate the PCB from\n"
+"the surrounding material.\n"
+"The LMB click has to be done on the perimeter of\n"
+"the Geometry object used as a cutout geometry."
+msgstr ""
+"Utilizzare il pulsante sinistro del mouse (PSM)\n"
+"per creare un gap ponte da cui separare il PCB\n"
+"dal materiale circostante (testimone).\n"
+"Il clic PMS deve essere eseguito sul perimetro\n"
+"dell'oggetto geometria utilizzato come geometria di ritaglio."
+
+#: AppTools/ToolCutOut.py:524
+msgid ""
+"There is no object selected for Cutout.\n"
+"Select one and try again."
+msgstr ""
+"Nessun oggetto selezionato per Ritaglio.\n"
+"Selezionane uno e riprova."
+
+#: AppTools/ToolCutOut.py:530 AppTools/ToolCutOut.py:733
+#: AppTools/ToolCutOut.py:914 AppTools/ToolCutOut.py:996
+#: tclCommands/TclCommandGeoCutout.py:184
+msgid "Tool Diameter is zero value. Change it to a positive real number."
+msgstr ""
+"Il diametro dell'utensile ha valore zero. Modificalo in un numero reale "
+"positivo."
+
+#: AppTools/ToolCutOut.py:544 AppTools/ToolCutOut.py:748
+msgid "Number of gaps value is missing. Add it and retry."
+msgstr "Manca il numero dei testimoni. Aggiungilo e riprova."
+
+#: AppTools/ToolCutOut.py:549 AppTools/ToolCutOut.py:752
+msgid ""
+"Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. "
+"Fill in a correct value and retry. "
+msgstr ""
+"Il valore dei testimoni può essere solo uno dei seguenti: 'Nessuno', 'SD', "
+"'SS', '2SD', '2SS', 4 o 8. Inserire un valore corretto e riprovare. "
+
+#: AppTools/ToolCutOut.py:554 AppTools/ToolCutOut.py:758
+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 ""
+"L'operazione di ritaglio non può essere eseguita su una geometria multi-"
+"geo.\n"
+"Opzionalmente, questa geometria multi-geo può essere convertita in geometria "
+"single-geo,\n"
+"e successivamente esegui il ritaglio."
+
+#: AppTools/ToolCutOut.py:706 AppTools/ToolCutOut.py:903
+msgid "Any form CutOut operation finished."
+msgstr "Tutti i task di CutOut terminati."
+
+#: AppTools/ToolCutOut.py:728 AppTools/ToolEtchCompensation.py:214
+#: AppTools/ToolInvertGerber.py:214 AppTools/ToolNCC.py:1603
+#: AppTools/ToolPaint.py:1396 AppTools/ToolPanelize.py:428
+#: tclCommands/TclCommandBbox.py:71 tclCommands/TclCommandNregions.py:71
+msgid "Object not found"
+msgstr "Oggetto non trovato"
+
+#: AppTools/ToolCutOut.py:872
+msgid "Rectangular cutout with negative margin is not possible."
+msgstr "Ritaglio rettangolare con margine negativo non possibile."
+
+#: AppTools/ToolCutOut.py:908
+msgid ""
+"Click on the selected geometry object perimeter to create a bridge gap ..."
+msgstr ""
+"Fare clic sul perimetro dell'oggetto geometria selezionato per creare uno "
+"spazio tra i testimoni ..."
+
+#: AppTools/ToolCutOut.py:925 AppTools/ToolCutOut.py:951
+msgid "Could not retrieve Geometry object"
+msgstr "Impossibile recuperare l'oggetto Geometry"
+
+#: AppTools/ToolCutOut.py:956
+msgid "Geometry object for manual cutout not found"
+msgstr "Oggetto Geometria per ritaglio manuale non trovato"
+
+#: AppTools/ToolCutOut.py:966
+msgid "Added manual Bridge Gap."
+msgstr "Aggiunti testimoni manualmente."
+
+#: AppTools/ToolCutOut.py:978
+msgid "Could not retrieve Gerber object"
+msgstr "Impossibile recuperare l'oggetto Gerber"
+
+#: AppTools/ToolCutOut.py:983
+msgid ""
+"There is no Gerber object selected for Cutout.\n"
+"Select one and try again."
+msgstr ""
+"Non è stato selezionato alcun oggetto Gerber per il Ritaglio.\n"
+"Selezionane uno e riprova."
+
+#: AppTools/ToolCutOut.py:989
+msgid ""
+"The selected object has to be of Gerber type.\n"
+"Select a Gerber file and try again."
+msgstr ""
+"L'oggetto selezionato deve essere di tipo Gerber.\n"
+"Seleziona un file Gerber e riprova."
+
+#: AppTools/ToolCutOut.py:1024
+msgid "Geometry not supported for cutout"
+msgstr "Geometria non supportata per il ritaglio"
+
+#: AppTools/ToolCutOut.py:1099
+msgid "Making manual bridge gap..."
+msgstr "Creare un testimone manualmente ..."
+
+#: AppTools/ToolDblSided.py:26
+msgid "2-Sided PCB"
+msgstr "PCB doppia faccia"
+
+#: AppTools/ToolDblSided.py:52
+msgid "Mirror Operation"
+msgstr "Operazione Specchio"
+
+#: AppTools/ToolDblSided.py:53
+msgid "Objects to be mirrored"
+msgstr "Oggetto da specchiare"
+
+#: AppTools/ToolDblSided.py:65
+msgid "Gerber to be mirrored"
+msgstr "Gerber da specchiare"
+
+#: AppTools/ToolDblSided.py:69 AppTools/ToolDblSided.py:97
+#: AppTools/ToolDblSided.py:127
+msgid ""
+"Mirrors (flips) the specified object around \n"
+"the specified axis. Does not create a new \n"
+"object, but modifies it."
+msgstr ""
+"Specchia (capovolge) l'oggetto specificato attorno\n"
+"l'asse specificato. Non crea un nuovo oggetto,\n"
+"ma lo modifica."
+
+#: AppTools/ToolDblSided.py:93
+msgid "Excellon Object to be mirrored."
+msgstr "Oggetto Excellon da specchiare."
+
+#: AppTools/ToolDblSided.py:122
+msgid "Geometry Obj to be mirrored."
+msgstr "Oggetto Geometria da specchiare."
+
+#: AppTools/ToolDblSided.py:158
+msgid "Mirror Parameters"
+msgstr "Parametri specchio"
+
+#: AppTools/ToolDblSided.py:159
+msgid "Parameters for the mirror operation"
+msgstr "Parametri per l'operazione specchio"
+
+#: AppTools/ToolDblSided.py:164
+msgid "Mirror Axis"
+msgstr "Asse di Specchio"
+
+#: AppTools/ToolDblSided.py:175
+msgid ""
+"The coordinates used as reference for the mirror operation.\n"
+"Can be:\n"
+"- Point -> a set of coordinates (x,y) around which the object is mirrored\n"
+"- Box -> a set of coordinates (x, y) obtained from the center of the\n"
+"bounding box of another object selected below"
+msgstr ""
+"Coordinate utilizzate come riferimento per l'operazione specchio.\n"
+"Può essere:\n"
+"- Punto -> un insieme di coordinate (x,y) attorno alle quali l'oggetto viene "
+"specchiato\n"
+"- Riquadro -> un insieme di coordinate (x,y) ottenute dal centro della\n"
+"riquadro di selezione di un altro oggetto selezionato sotto"
+
+#: AppTools/ToolDblSided.py:189
+msgid "Point coordinates"
+msgstr "Coordinate punto"
+
+#: AppTools/ToolDblSided.py:194
+msgid ""
+"Add the coordinates in format (x, y) through which the mirroring "
+"axis\n"
+" selected in 'MIRROR AXIS' pass.\n"
+"The (x, y) coordinates are captured by pressing SHIFT key\n"
+"and left mouse button click on canvas or you can enter the coordinates "
+"manually."
+msgstr ""
+"Aggiungi le coordinate nel formato (x, y) attraverso le quali passa "
+"l'asse di\n"
+" mirroring in \"ASSE SPECCHIO\".\n"
+"Le coordinate (x, y) vengono acquisite premendo il tasto SHIFT\n"
+"e con il clic sinistro del mouse oppure inserite manualmente."
+
+#: AppTools/ToolDblSided.py:218
+msgid ""
+"It can be of type: Gerber or Excellon or Geometry.\n"
+"The coordinates of the center of the bounding box are used\n"
+"as reference for mirror operation."
+msgstr ""
+"Può essere di tipo: Gerber o Excellon o Geometry.\n"
+"Le coordinate del centro del rettangolo di selezione vengono usate\n"
+"come riferimento per l'operazione di specchio."
+
+#: AppTools/ToolDblSided.py:252
+msgid "Bounds Values"
+msgstr "Valori limite"
+
+#: AppTools/ToolDblSided.py:254
+msgid ""
+"Select on canvas the object(s)\n"
+"for which to calculate bounds values."
+msgstr ""
+"Seleziona dal disegno l'oggetto(i)\n"
+"per i quali calcolare i valori limite."
+
+#: AppTools/ToolDblSided.py:264
+msgid "X min"
+msgstr "X min"
+
+#: AppTools/ToolDblSided.py:266 AppTools/ToolDblSided.py:280
+msgid "Minimum location."
+msgstr "Locazione minima."
+
+#: AppTools/ToolDblSided.py:278
+msgid "Y min"
+msgstr "Y min"
+
+#: AppTools/ToolDblSided.py:292
+msgid "X max"
+msgstr "X max"
+
+#: AppTools/ToolDblSided.py:294 AppTools/ToolDblSided.py:308
+msgid "Maximum location."
+msgstr "Locazione massima."
+
+#: AppTools/ToolDblSided.py:306
+msgid "Y max"
+msgstr "Y max"
+
+#: AppTools/ToolDblSided.py:317
+msgid "Center point coordinates"
+msgstr "Coordinate punto centrale"
+
+#: AppTools/ToolDblSided.py:319
+msgid "Centroid"
+msgstr "Centroide"
+
+#: AppTools/ToolDblSided.py:321
+msgid ""
+"The center point location for the rectangular\n"
+"bounding shape. Centroid. Format is (x, y)."
+msgstr ""
+"La posizione del punto centrale per il box delimitante\n"
+"rettangolare. Centroide. Il formato è (x, y)."
+
+#: AppTools/ToolDblSided.py:330
+msgid "Calculate Bounds Values"
+msgstr "Calcola i valori dei limiti"
+
+#: AppTools/ToolDblSided.py:332
+msgid ""
+"Calculate the enveloping rectangular shape coordinates,\n"
+"for the selection of objects.\n"
+"The envelope shape is parallel with the X, Y axis."
+msgstr ""
+"Calcola le coordinate che avvolgano in forma rettangolare,\n"
+"per la selezione di oggetti.\n"
+"La forma dell'inviluppo è parallela all'asse X, Y."
+
+#: AppTools/ToolDblSided.py:352
+msgid "PCB Alignment"
+msgstr "Allineamento PCB"
+
+#: AppTools/ToolDblSided.py:354 AppTools/ToolDblSided.py:456
+msgid ""
+"Creates an Excellon Object containing the\n"
+"specified alignment holes and their mirror\n"
+"images."
+msgstr ""
+"Crea un oggetto Excellon contenente i\n"
+"fori di allineamento specificati e la loro\n"
+"relativa immagine speculare."
+
+#: AppTools/ToolDblSided.py:361
+msgid "Drill Diameter"
+msgstr "Diametro punta"
+
+#: AppTools/ToolDblSided.py:390 AppTools/ToolDblSided.py:397
+msgid ""
+"The reference point used to create the second alignment drill\n"
+"from the first alignment drill, by doing mirror.\n"
+"It can be modified in the Mirror Parameters -> Reference section"
+msgstr ""
+"Il punto di riferimento utilizzato per creare il secondo foro di "
+"allineamento\n"
+"dal primo foro, facendone la copia speculare.\n"
+"Può essere modificato nella sezione Parametri specchio -> Riferimento"
+
+#: AppTools/ToolDblSided.py:410
+msgid "Alignment Drill Coordinates"
+msgstr "Coordinate fori di allineamento"
+
+#: AppTools/ToolDblSided.py:412
+msgid ""
+"Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For "
+"each set of (x, y) coordinates\n"
+"entered here, a pair of drills will be created:\n"
+"\n"
+"- one drill at the coordinates from the field\n"
+"- one drill in mirror position over the axis selected above in the 'Align "
+"Axis'."
+msgstr ""
+"Fori di allineamento (x1, y1), (x2, y2), ... su un lato dell'asse dello "
+"specchio. Per ogni set di coordinate (x, y)\n"
+"qui inserite, verrà creata una coppia di fori:\n"
+"\n"
+"- un foro alle coordinate dal campo\n"
+"- un foro in posizione speculare sull'asse selezionato sopra in 'asse "
+"specchio'."
+
+#: AppTools/ToolDblSided.py:420
+msgid "Drill coordinates"
+msgstr "Coordinate fori"
+
+#: AppTools/ToolDblSided.py:427
+msgid ""
+"Add alignment drill holes coordinates in the format: (x1, y1), (x2, "
+"y2), ... \n"
+"on one side of the alignment axis.\n"
+"\n"
+"The coordinates set can be obtained:\n"
+"- press SHIFT key and left mouse clicking on canvas. Then click Add.\n"
+"- press SHIFT key and left mouse clicking on canvas. Then Ctrl+V in the "
+"field.\n"
+"- press SHIFT key and left mouse clicking on canvas. Then RMB click in the "
+"field and click Paste.\n"
+"- by entering the coords manually in the format: (x1, y1), (x2, y2), ..."
+msgstr ""
+"Aggiungi i cordoncini di fori di allineamento nel formato: (x1, y1), (x2, "
+"y2), ...\n"
+"su un lato dell'asse dello specchio.\n"
+"\n"
+"Le coordinate impostate possono essere ottenute:\n"
+"- premi il tasto SHIFT e fai clic con il tasto sinistro del mouse. Quindi "
+"fai clic su Aggiungi.\n"
+"- premi il tasto SHIFT e fai clic con il tasto sinistro del mouse. Quindi "
+"Ctrl+V nel campo.\n"
+"- premi il tasto SHIFT e fai clic con il tasto sinistro del mouse. Quindi "
+"col pulsante destro nel campo e fai clic su Incolla.\n"
+"- inserendo manualmente le coordinate nel formato: (x1, y1), (x2, y2), ..."
+
+#: AppTools/ToolDblSided.py:442
+msgid "Delete Last"
+msgstr "Cancella ultimo"
+
+#: AppTools/ToolDblSided.py:444
+msgid "Delete the last coordinates tuple in the list."
+msgstr "Cancella l'ultima tupla di coordinate dalla lista."
+
+#: AppTools/ToolDblSided.py:454
+msgid "Create Excellon Object"
+msgstr "Creao oggetto Excellon"
+
+#: AppTools/ToolDblSided.py:541
+msgid "2-Sided Tool"
+msgstr "Strumento doppia faccia"
+
+#: AppTools/ToolDblSided.py:581
+msgid ""
+"'Point' reference is selected and 'Point' coordinates are missing. Add them "
+"and retry."
+msgstr ""
+"'Punto' riferimento selezionato ma coordinate 'Punto' mancanti. Aggiungile e "
+"riprova."
+
+#: AppTools/ToolDblSided.py:600
+msgid "There is no Box reference object loaded. Load one and retry."
+msgstr ""
+"Non è stato caricato alcun oggetto di riferimento Box. Caricare uno e "
+"riprovare."
+
+#: AppTools/ToolDblSided.py:612
+msgid "No value or wrong format in Drill Dia entry. Add it and retry."
+msgstr ""
+"Nessun valore o formato errato nella voce Diametro Fori. Aggiungilo e "
+"riprova."
+
+#: AppTools/ToolDblSided.py:623
+msgid "There are no Alignment Drill Coordinates to use. Add them and retry."
+msgstr ""
+"Non ci sono coordinate per i fori di allineamento da usare. Aggiungili e "
+"riprova."
+
+#: AppTools/ToolDblSided.py:648
+msgid "Excellon object with alignment drills created..."
+msgstr "Oggetto Excellon con i fori di allineamento creati ..."
+
+#: AppTools/ToolDblSided.py:661 AppTools/ToolDblSided.py:704
+#: AppTools/ToolDblSided.py:748
+msgid "Only Gerber, Excellon and Geometry objects can be mirrored."
+msgstr "Possono essere specchiati solo oggetti Gerber, Excellon e Geometry."
+
+#: AppTools/ToolDblSided.py:671 AppTools/ToolDblSided.py:715
+msgid ""
+"There are no Point coordinates in the Point field. Add coords and try "
+"again ..."
+msgstr ""
+"Non ci sono coordinate Punto nel campo Punto. Aggiungi corde e riprova ..."
+
+#: AppTools/ToolDblSided.py:681 AppTools/ToolDblSided.py:725
+#: AppTools/ToolDblSided.py:762
+msgid "There is no Box object loaded ..."
+msgstr "Nessun oggetto contenitore caricato ..."
+
+#: AppTools/ToolDblSided.py:691 AppTools/ToolDblSided.py:735
+#: AppTools/ToolDblSided.py:772
+msgid "was mirrored"
+msgstr "è stato specchiato"
+
+#: AppTools/ToolDblSided.py:700 AppTools/ToolPunchGerber.py:533
+msgid "There is no Excellon object loaded ..."
+msgstr "Nessun oggetto Excellon caricato ..."
+
+#: AppTools/ToolDblSided.py:744
+msgid "There is no Geometry object loaded ..."
+msgstr "Nessun oggetto Geometria caricato ..."
+
+#: AppTools/ToolDblSided.py:818 App_Main.py:4322 App_Main.py:4477
+msgid "Failed. No object(s) selected..."
+msgstr "Errore. Nessun oggetto selezionato..."
+
+#: AppTools/ToolDistance.py:57 AppTools/ToolDistanceMin.py:50
+msgid "Those are the units in which the distance is measured."
+msgstr "Quelle sono le unità in cui viene misurata la distanza."
+
+#: AppTools/ToolDistance.py:58 AppTools/ToolDistanceMin.py:51
+msgid "METRIC (mm)"
+msgstr "METRICA (mm)"
+
+#: AppTools/ToolDistance.py:58 AppTools/ToolDistanceMin.py:51
+msgid "INCH (in)"
+msgstr "POLLICI (in)"
+
+#: AppTools/ToolDistance.py:64
+msgid "Snap to center"
+msgstr "Aggancia al centro"
+
+#: AppTools/ToolDistance.py:66
+msgid ""
+"Mouse cursor will snap to the center of the pad/drill\n"
+"when it is hovering over the geometry of the pad/drill."
+msgstr ""
+"Il cursore del mouse si posizionerà al centro del pad/foro\n"
+"quando passa sopra la geometria del pad/foro."
+
+#: AppTools/ToolDistance.py:76
+msgid "Start Coords"
+msgstr "Coordinate di partenza"
+
+#: AppTools/ToolDistance.py:77 AppTools/ToolDistance.py:82
+msgid "This is measuring Start point coordinates."
+msgstr "Questo sta misurando le coordinate del punto iniziale."
+
+#: AppTools/ToolDistance.py:87
+msgid "Stop Coords"
+msgstr "Coordinate di stop"
+
+#: AppTools/ToolDistance.py:88 AppTools/ToolDistance.py:93
+msgid "This is the measuring Stop point coordinates."
+msgstr "Queste sono le coordinate del punto di arresto di misurazione."
+
+#: AppTools/ToolDistance.py:98 AppTools/ToolDistanceMin.py:62
+msgid "Dx"
+msgstr "Dx"
+
+#: AppTools/ToolDistance.py:99 AppTools/ToolDistance.py:104
+#: AppTools/ToolDistanceMin.py:63 AppTools/ToolDistanceMin.py:92
+msgid "This is the distance measured over the X axis."
+msgstr "Questa è la distanza misurata sull'asse X."
+
+#: AppTools/ToolDistance.py:109 AppTools/ToolDistanceMin.py:65
+msgid "Dy"
+msgstr "Dy"
+
+#: AppTools/ToolDistance.py:110 AppTools/ToolDistance.py:115
+#: AppTools/ToolDistanceMin.py:66 AppTools/ToolDistanceMin.py:97
+msgid "This is the distance measured over the Y axis."
+msgstr "Questa è la distanza misurata sull'asse Y."
+
+#: AppTools/ToolDistance.py:121 AppTools/ToolDistance.py:126
+#: AppTools/ToolDistanceMin.py:69 AppTools/ToolDistanceMin.py:102
+msgid "This is orientation angle of the measuring line."
+msgstr "Questo è l'angolo di orientamento della linea di misurazione."
+
+#: AppTools/ToolDistance.py:131 AppTools/ToolDistanceMin.py:71
+msgid "DISTANCE"
+msgstr "DISTANZA"
+
+#: AppTools/ToolDistance.py:132 AppTools/ToolDistance.py:137
+msgid "This is the point to point Euclidian distance."
+msgstr "Questo è il punto per indicare la distanza euclidea."
+
+#: AppTools/ToolDistance.py:142 AppTools/ToolDistance.py:339
+#: AppTools/ToolDistanceMin.py:114
+msgid "Measure"
+msgstr "Misura"
+
+#: AppTools/ToolDistance.py:274
+msgid "Working"
+msgstr "Elaborazione"
+
+#: AppTools/ToolDistance.py:279
+msgid "MEASURING: Click on the Start point ..."
+msgstr "MISURA: clicca sul punto di origine ..."
+
+#: AppTools/ToolDistance.py:389
+msgid "Distance Tool finished."
+msgstr "Strumento Distanza completato."
+
+#: AppTools/ToolDistance.py:461
+msgid "Pads overlapped. Aborting."
+msgstr "Pad sovrapposti. Annullo."
+
+#: AppTools/ToolDistance.py:489
+#, fuzzy
+#| msgid "Distance Tool finished."
+msgid "Distance Tool cancelled."
+msgstr "Strumento Distanza completato."
+
+#: AppTools/ToolDistance.py:494
+msgid "MEASURING: Click on the Destination point ..."
+msgstr "MISURA: clicca sul punto di destinazione ..."
+
+#: AppTools/ToolDistance.py:503 AppTools/ToolDistanceMin.py:284
+msgid "MEASURING"
+msgstr "MISURA"
+
+#: AppTools/ToolDistance.py:504 AppTools/ToolDistanceMin.py:285
+msgid "Result"
+msgstr "Risultato"
+
+#: AppTools/ToolDistanceMin.py:31 AppTools/ToolDistanceMin.py:143
+msgid "Minimum Distance Tool"
+msgstr "Strumento distanza minima"
+
+#: AppTools/ToolDistanceMin.py:54
+msgid "First object point"
+msgstr "Primo punto oggetto"
+
+#: AppTools/ToolDistanceMin.py:55 AppTools/ToolDistanceMin.py:80
+msgid ""
+"This is first object point coordinates.\n"
+"This is the start point for measuring distance."
+msgstr ""
+"Coordinate del primo punto oggetto.\n"
+"Questo è il punto di partenza per misurare la distanza."
+
+#: AppTools/ToolDistanceMin.py:58
+msgid "Second object point"
+msgstr "Secondo punto oggetto"
+
+#: AppTools/ToolDistanceMin.py:59 AppTools/ToolDistanceMin.py:86
+msgid ""
+"This is second object point coordinates.\n"
+"This is the end point for measuring distance."
+msgstr ""
+"Coordinate del secondo punto oggetto.\n"
+"Questo è il punto di fine per misurare la distanza."
+
+#: AppTools/ToolDistanceMin.py:72 AppTools/ToolDistanceMin.py:107
+msgid "This is the point to point Euclidean distance."
+msgstr "Distanza punto punto euclidea."
+
+#: AppTools/ToolDistanceMin.py:74
+msgid "Half Point"
+msgstr "Punto di mezzo"
+
+#: AppTools/ToolDistanceMin.py:75 AppTools/ToolDistanceMin.py:112
+msgid "This is the middle point of the point to point Euclidean distance."
+msgstr "Punto mediano della distanza punto punto euclidea."
+
+#: AppTools/ToolDistanceMin.py:117
+msgid "Jump to Half Point"
+msgstr "Vai al punto mediano"
+
+#: AppTools/ToolDistanceMin.py:154
+msgid ""
+"Select two objects and no more, to measure the distance between them ..."
+msgstr "Seleziona due oggetti e non più, per misurare la distanza tra loro ..."
+
+#: AppTools/ToolDistanceMin.py:195 AppTools/ToolDistanceMin.py:216
+#: AppTools/ToolDistanceMin.py:225 AppTools/ToolDistanceMin.py:246
+msgid "Select two objects and no more. Currently the selection has objects: "
+msgstr ""
+"Seleziona due oggetti e non di più. Attualmente la selezione ha oggetti: "
+
+#: AppTools/ToolDistanceMin.py:293
+msgid "Objects intersects or touch at"
+msgstr "Gli oggetti si intersecano o toccano in"
+
+#: AppTools/ToolDistanceMin.py:299
+msgid "Jumped to the half point between the two selected objects"
+msgstr "Salto a metà punto tra i due oggetti selezionati eseguito"
+
+#: AppTools/ToolEtchCompensation.py:74 AppTools/ToolInvertGerber.py:74
+msgid "Gerber object that will be inverted."
+msgstr "Oggetto Gerber da invertire."
+
+#: AppTools/ToolEtchCompensation.py:83 AppTools/ToolInvertGerber.py:83
+msgid "Parameters for this tool"
+msgstr "Parametri per questo utensile"
+
+#: AppTools/ToolEtchCompensation.py:88
+#, fuzzy
+#| msgid "Thickness"
+msgid "Copper Thickness"
+msgstr "Spessore"
+
+#: AppTools/ToolEtchCompensation.py:90
+#, fuzzy
+#| msgid ""
+#| "How thick the copper growth is intended to be.\n"
+#| "In microns."
+msgid ""
+"The thickness of the copper foil.\n"
+"In microns [um]."
+msgstr ""
+"Quanto deve accrescere il rame.\n"
+"In microns."
+
+#: AppTools/ToolEtchCompensation.py:101
+#, fuzzy
+#| msgid "Location"
+msgid "Ratio"
+msgstr "Locazione"
+
+#: AppTools/ToolEtchCompensation.py:103
+msgid ""
+"The ratio of lateral etch versus depth etch.\n"
+"Can be:\n"
+"- custom -> the user will enter a custom value\n"
+"- preselection -> value which depends on a selection of etchants"
+msgstr ""
+
+#: AppTools/ToolEtchCompensation.py:109
+#, fuzzy
+#| msgid "Selection"
+msgid "PreSelection"
+msgstr "Selezione"
+
+#: AppTools/ToolEtchCompensation.py:121
+msgid "Compensate"
+msgstr ""
+
+#: AppTools/ToolEtchCompensation.py:123
+msgid ""
+"Will increase the copper features thickness to compensate the lateral etch."
+msgstr ""
+
+#: AppTools/ToolEtchCompensation.py:181 AppTools/ToolInvertGerber.py:184
+msgid "Invert Tool"
+msgstr "Strumento Inverti"
+
+#: AppTools/ToolExtractDrills.py:29 AppTools/ToolExtractDrills.py:295
+msgid "Extract Drills"
+msgstr "Estrai fori"
+
+#: AppTools/ToolExtractDrills.py:62
+msgid "Gerber from which to extract drill holes"
+msgstr "Gerber dal quale estrarre i fori"
+
+#: AppTools/ToolExtractDrills.py:297
+msgid "Extract drills from a given Gerber file."
+msgstr "Estrae i fori da un dato file gerber."
+
+#: AppTools/ToolExtractDrills.py:478 AppTools/ToolExtractDrills.py:563
+#: AppTools/ToolExtractDrills.py:648
+msgid "No drills extracted. Try different parameters."
+msgstr "Nessun foro estratto. Prova con altri parametri."
+
+#: AppTools/ToolFiducials.py:56
+msgid "Fiducials Coordinates"
+msgstr "Coordinate fiducial"
+
+#: AppTools/ToolFiducials.py:58
+msgid ""
+"A table with the fiducial points coordinates,\n"
+"in the format (x, y)."
+msgstr ""
+"Tabella con le coordinate dei punti fiducial,\n"
+"nel formato (x, y)."
+
+#: AppTools/ToolFiducials.py:191
+msgid ""
+"- 'Auto' - automatic placement of fiducials in the corners of the bounding "
+"box.\n"
+" - 'Manual' - manual placement of fiducials."
+msgstr ""
+"- 'Auto': posizionamento automatico dei fiducial negli angoli del rettangolo "
+"di selezione.\n"
+" - 'Manuale': posizionamento manuale dei fiducial."
+
+#: AppTools/ToolFiducials.py:237
+msgid "Thickness of the line that makes the fiducial."
+msgstr ""
+
+#: AppTools/ToolFiducials.py:259
+msgid "Copper Gerber"
+msgstr "Gerber rame"
+
+#: AppTools/ToolFiducials.py:268
+msgid "Add Fiducial"
+msgstr "Aggiungi fiducial"
+
+#: AppTools/ToolFiducials.py:270
+msgid "Will add a polygon on the copper layer to serve as fiducial."
+msgstr "Aggiungerà un poligono sul layer di rame per fungere da fiducial."
+
+#: AppTools/ToolFiducials.py:286
+msgid "Soldermask Gerber"
+msgstr "Gerber soldermask"
+
+#: AppTools/ToolFiducials.py:288
+msgid "The Soldermask Gerber object."
+msgstr "L'oggetto gerber soldermask."
+
+#: AppTools/ToolFiducials.py:300
+msgid "Add Soldermask Opening"
+msgstr "Aggiungi apertura soldermask"
+
+#: AppTools/ToolFiducials.py:302
+msgid ""
+"Will add a polygon on the soldermask layer\n"
+"to serve as fiducial opening.\n"
+"The diameter is always double of the diameter\n"
+"for the copper fiducial."
+msgstr ""
+"Aggiungerà un poligono sul layer soldermask\n"
+"che serva come apertura fiducial.\n"
+"Il diametro è sempre il doppio del diametro\n"
+"del fiduciale di rame."
+
+#: AppTools/ToolFiducials.py:517
+msgid "Click to add first Fiducial. Bottom Left..."
+msgstr "Fai clic per aggiungere il primo Fiducial. In basso a sinistra..."
+
+#: AppTools/ToolFiducials.py:781
+msgid "Click to add the last fiducial. Top Right..."
+msgstr "Fai clic per aggiungere l'ultimo Fiducial. In alto a destra..."
+
+#: AppTools/ToolFiducials.py:786
+msgid "Click to add the second fiducial. Top Left or Bottom Right..."
+msgstr ""
+"Fare clic per aggiungere il secondo fiducial. In alto a sinistra o in basso "
+"a destra ..."
+
+#: AppTools/ToolFiducials.py:789 AppTools/ToolFiducials.py:798
+msgid "Done. All fiducials have been added."
+msgstr "Fatto. Tutti i fiduciali sono stati aggiunti."
+
+#: AppTools/ToolFiducials.py:875
+msgid "Fiducials Tool exit."
+msgstr "Esci dallo strumento fiducial."
+
+#: AppTools/ToolFilm.py:42
+msgid "Film PCB"
+msgstr "Film PCB"
+
+#: AppTools/ToolFilm.py:73
+msgid ""
+"Specify the type of object for which to create the film.\n"
+"The object can be of type: Gerber or Geometry.\n"
+"The selection here decide the type of objects that will be\n"
+"in the Film Object combobox."
+msgstr ""
+"Specifica il tipo di oggetto per cui creare il film.\n"
+"L'oggetto può essere di tipo: Gerber o Geometria.\n"
+"La selezione decide il tipo di oggetti che saranno\n"
+"nella box Oggetto film."
+
+#: AppTools/ToolFilm.py:96
+msgid ""
+"Specify the type of object to be used as an container for\n"
+"film creation. It can be: Gerber or Geometry type.The selection here decide "
+"the type of objects that will be\n"
+"in the Box Object combobox."
+msgstr ""
+"Specificare il tipo di oggetto da utilizzare come contenitore per la\n"
+"creazione del film. Può essere di tipo Gerber o Geometria. La selezione "
+"decide il tipo di oggetti che saranno\n"
+"presenti nel box Oggetto casella."
+
+#: AppTools/ToolFilm.py:256
+msgid "Film Parameters"
+msgstr "Parametri Film"
+
+#: AppTools/ToolFilm.py:317
+msgid "Punch drill holes"
+msgstr "Praticare fori"
+
+#: AppTools/ToolFilm.py:318
+msgid ""
+"When checked the generated film will have holes in pads when\n"
+"the generated film is positive. This is done to help drilling,\n"
+"when done manually."
+msgstr ""
+"Se selezionato, il film generato avrà buchi nei pad quando\n"
+"il film generato è positivo. Questo viene fatto per aiutare a perforare,\n"
+"quando fatto manualmente."
+
+#: AppTools/ToolFilm.py:336
+msgid "Source"
+msgstr "Sorgente"
+
+#: AppTools/ToolFilm.py:338
+msgid ""
+"The punch hole source can be:\n"
+"- Excellon -> an Excellon holes center will serve as reference.\n"
+"- Pad Center -> will try to use the pads center as reference."
+msgstr ""
+"La fonte del foro di perforazione può essere:\n"
+"- Excellon -> un centro foro Excellon fungerà da riferimento.\n"
+"- Pad Center -> proverà a utilizzare il centro del pad come riferimento."
+
+#: AppTools/ToolFilm.py:343
+msgid "Pad center"
+msgstr "Centro Pad"
+
+#: AppTools/ToolFilm.py:348
+msgid "Excellon Obj"
+msgstr "Oggetto Excellon"
+
+#: AppTools/ToolFilm.py:350
+msgid ""
+"Remove the geometry of Excellon from the Film to create the holes in pads."
+msgstr "Rimuovi la geometria Excellon dal Film per creare i fori nei pad."
+
+#: AppTools/ToolFilm.py:364
+msgid "Punch Size"
+msgstr "Dimensione punzone"
+
+#: AppTools/ToolFilm.py:365
+msgid "The value here will control how big is the punch hole in the pads."
+msgstr "Questo valore controllerà quanto è grande il foro nei pad."
+
+#: AppTools/ToolFilm.py:485
+msgid "Save Film"
+msgstr "Salva Film"
+
+#: AppTools/ToolFilm.py:487
+msgid ""
+"Create a Film for the selected object, within\n"
+"the specified box. Does not create a new \n"
+" FlatCAM object, but directly save it in the\n"
+"selected format."
+msgstr ""
+"Crea un film per l'oggetto selezionato, all'interno\n"
+"della casella specificata. Non crea un nuovo\n"
+" oggetto FlatCAM, ma lo salva direttamente nel\n"
+"formato selezionato."
+
+#: AppTools/ToolFilm.py:649
+msgid ""
+"Using the Pad center does not work on Geometry objects. Only a Gerber object "
+"has pads."
+msgstr ""
+"L'uso del centro del pad non funziona sugli oggetti Geometria. Solo un "
+"oggetto Gerber ha i pad."
+
+#: AppTools/ToolFilm.py:659
+msgid "No FlatCAM object selected. Load an object for Film and retry."
+msgstr ""
+"Nessun oggetto FlatCAM selezionato. Carica un oggetto per Film e riprova."
+
+#: AppTools/ToolFilm.py:666
+msgid "No FlatCAM object selected. Load an object for Box and retry."
+msgstr ""
+"Nessun oggetto FlatCAM selezionato. Carica un oggetto per Box e riprova."
+
+#: AppTools/ToolFilm.py:670
+msgid "No FlatCAM object selected."
+msgstr "Nessun oggetto FlatCAM selezionato."
+
+#: AppTools/ToolFilm.py:681
+msgid "Generating Film ..."
+msgstr "Generazione Film ..."
+
+#: AppTools/ToolFilm.py:730 AppTools/ToolFilm.py:734
+msgid "Export positive film"
+msgstr "Exporta film positivo"
+
+#: AppTools/ToolFilm.py:767
+msgid ""
+"No Excellon object selected. Load an object for punching reference and retry."
+msgstr ""
+"Nessun oggetto Excellon selezionato. Caricare un oggetto per la punzonatura "
+"di riferimento e riprova."
+
+#: AppTools/ToolFilm.py:791
+msgid ""
+" Could not generate punched hole film because the punch hole sizeis bigger "
+"than some of the apertures in the Gerber object."
+msgstr ""
+" Impossibile generare il film del foro punzonato perché la dimensione del "
+"foro del punzone è maggiore di alcune delle aperture nell'oggetto Gerber."
+
+#: AppTools/ToolFilm.py:803
+msgid ""
+"Could not generate punched hole film because the punch hole sizeis bigger "
+"than some of the apertures in the Gerber object."
+msgstr ""
+"Impossibile generare il film del foro punzonato perché la dimensione del "
+"foro del punzone è maggiore di alcune delle aperture nell'oggetto Gerber."
+
+#: AppTools/ToolFilm.py:821
+msgid ""
+"Could not generate punched hole film because the newly created object "
+"geometry is the same as the one in the source object geometry..."
+msgstr ""
+"Impossibile generare il film del foro punzonato perché la geometria "
+"dell'oggetto appena creata è uguale a quella nella geometria dell'oggetto "
+"sorgente ..."
+
+#: AppTools/ToolFilm.py:876 AppTools/ToolFilm.py:880
+msgid "Export negative film"
+msgstr "Esporta film negativo"
+
+#: AppTools/ToolFilm.py:941 AppTools/ToolFilm.py:1124
+#: AppTools/ToolPanelize.py:441
+msgid "No object Box. Using instead"
+msgstr "Nessun oggetto Box. Al suo posto si userà"
+
+#: AppTools/ToolFilm.py:1057 AppTools/ToolFilm.py:1237
+msgid "Film file exported to"
+msgstr "File Film esportato in"
+
+#: AppTools/ToolFilm.py:1060 AppTools/ToolFilm.py:1240
+msgid "Generating Film ... Please wait."
+msgstr "Generazione film … Attendere."
+
+#: AppTools/ToolImage.py:24
+msgid "Image as Object"
+msgstr "Immagine come oggetto"
+
+#: AppTools/ToolImage.py:33
+msgid "Image to PCB"
+msgstr "Da immagine a PCB"
+
+#: AppTools/ToolImage.py:56
+msgid ""
+"Specify the type of object to create from the image.\n"
+"It can be of type: Gerber or Geometry."
+msgstr ""
+"Specifica il tipo di oggetto da creare dall'immagine.\n"
+"Può essere di tipo: Gerber o Geometria."
+
+#: AppTools/ToolImage.py:65
+msgid "DPI value"
+msgstr "Valore DPI"
+
+#: AppTools/ToolImage.py:66
+msgid "Specify a DPI value for the image."
+msgstr "Specifica un valore DPI per l'immagine."
+
+#: AppTools/ToolImage.py:72
+msgid "Level of detail"
+msgstr "Livello di dettaglio"
+
+#: AppTools/ToolImage.py:81
+msgid "Image type"
+msgstr "Tipo immagine"
+
+#: AppTools/ToolImage.py:83
+msgid ""
+"Choose a method for the image interpretation.\n"
+"B/W means a black & white image. Color means a colored image."
+msgstr ""
+"Scegli un metodo per l'interpretazione dell'immagine.\n"
+"B/N significa un'immagine in bianco e nero. Colore significa un'immagine a "
+"colori."
+
+#: AppTools/ToolImage.py:92 AppTools/ToolImage.py:107 AppTools/ToolImage.py:120
+#: AppTools/ToolImage.py:133
+msgid "Mask value"
+msgstr "Valore maschera"
+
+#: AppTools/ToolImage.py:94
+msgid ""
+"Mask for monochrome image.\n"
+"Takes values between [0 ... 255].\n"
+"Decides the level of details to include\n"
+"in the resulting geometry.\n"
+"0 means no detail and 255 means everything \n"
+"(which is totally black)."
+msgstr ""
+"Maschera per immagine monocromatica.\n"
+"Accetta valori tra [0 ... 255].\n"
+"Decide il livello di dettagli da includere\n"
+"nella geometria risultante.\n"
+"0 significa nessun dettaglio e 255 significa tutto\n"
+"(che è totalmente nero)."
+
+#: AppTools/ToolImage.py:109
+msgid ""
+"Mask for RED color.\n"
+"Takes values between [0 ... 255].\n"
+"Decides the level of details to include\n"
+"in the resulting geometry."
+msgstr ""
+"Maschera per il colore ROSSO.\n"
+"Accetta valori tra [0 ... 255].\n"
+"Decide il livello di dettagli da includere\n"
+"nella geometria risultante."
+
+#: AppTools/ToolImage.py:122
+msgid ""
+"Mask for GREEN color.\n"
+"Takes values between [0 ... 255].\n"
+"Decides the level of details to include\n"
+"in the resulting geometry."
+msgstr ""
+"Maschera per il colore VERDE.\n"
+"Accetta valori tra [0 ... 255].\n"
+"Decide il livello di dettagli da includere\n"
+"nella geometria risultante."
+
+#: AppTools/ToolImage.py:135
+msgid ""
+"Mask for BLUE color.\n"
+"Takes values between [0 ... 255].\n"
+"Decides the level of details to include\n"
+"in the resulting geometry."
+msgstr ""
+"Maschera per il colore BLU.\n"
+"Accetta valori tra [0 ... 255].\n"
+"Decide il livello di dettagli da includere\n"
+"nella geometria risultante."
+
+#: AppTools/ToolImage.py:143
+msgid "Import image"
+msgstr "Importa immagine"
+
+#: AppTools/ToolImage.py:145
+msgid "Open a image of raster type and then import it in FlatCAM."
+msgstr "Apri un'immagine di tipo raster e quindi importala in FlatCAM."
+
+#: AppTools/ToolImage.py:182
+msgid "Image Tool"
+msgstr "Strumento Immagine"
+
+#: AppTools/ToolImage.py:234 AppTools/ToolImage.py:237
+msgid "Import IMAGE"
+msgstr "Importa IMMAGINE"
+
+#: AppTools/ToolImage.py:277 App_Main.py:8264 App_Main.py:8311
+msgid ""
+"Not supported type is picked as parameter. Only Geometry and Gerber are "
+"supported"
+msgstr "Parametro non supportato. Utilizzare solo Geometrie o Gerber"
+
+#: AppTools/ToolImage.py:285
+msgid "Importing Image"
+msgstr "Importo immagine"
+
+#: AppTools/ToolImage.py:297 AppTools/ToolPDF.py:154 App_Main.py:8289
+#: App_Main.py:8335 App_Main.py:8399 App_Main.py:8466 App_Main.py:8532
+#: App_Main.py:8597 App_Main.py:8654
+msgid "Opened"
+msgstr "Aperto"
+
+#: AppTools/ToolInvertGerber.py:123
+msgid "Invert Gerber"
+msgstr "Inverti Gerber"
+
+#: AppTools/ToolInvertGerber.py:125
+msgid ""
+"Will invert the Gerber object: areas that have copper\n"
+"will be empty of copper and previous empty area will be\n"
+"filled with copper."
+msgstr ""
+"Inverte l'oggetto Gerber: aree che hanno rame\n"
+"saranno vuote e le precedenti aree vuote saranno\n"
+"riempite di rame."
+
+#: AppTools/ToolMove.py:102
+msgid "MOVE: Click on the Start point ..."
+msgstr "SPOSTA: clicca sul punto di partenza ..."
+
+#: AppTools/ToolMove.py:113
+msgid "Cancelled. No object(s) to move."
+msgstr "Cancellato. Nessun oggetto da spostare."
+
+#: AppTools/ToolMove.py:140
+msgid "MOVE: Click on the Destination point ..."
+msgstr "SPOSTA: clicca sul punto di destinazione ..."
+
+#: AppTools/ToolMove.py:163
+msgid "Moving..."
+msgstr "Spostamento..."
+
+#: AppTools/ToolMove.py:166
+msgid "No object(s) selected."
+msgstr "Nessun oggetto selezionato."
+
+#: AppTools/ToolMove.py:221
+msgid "Error when mouse left click."
+msgstr "Errore con il click sinistro del mouse."
+
+#: AppTools/ToolNCC.py:42
+msgid "Non-Copper Clearing"
+msgstr "Pulizia non-rame (NCC)"
+
+#: AppTools/ToolNCC.py:88
+msgid ""
+"Specify the type of object to be cleared of excess copper.\n"
+"It can be of type: Gerber or Geometry.\n"
+"What is selected here will dictate the kind\n"
+"of objects that will populate the 'Object' combobox."
+msgstr ""
+"Specificare il tipo di oggetto da cui eliminare il rame in eccesso.\n"
+"Può essere di tipo: Gerber o Geometria.\n"
+"Ciò che è selezionato qui detterà il tipo\n"
+"di oggetti che popoleranno la combobox 'Oggetto'."
+
+#: AppTools/ToolNCC.py:110
+msgid "Object to be cleared of excess copper."
+msgstr "Oggetti puliti dall'eccesso di rame."
+
+#: AppTools/ToolNCC.py:122
+msgid ""
+"Tools pool from which the algorithm\n"
+"will pick the ones used for copper clearing."
+msgstr ""
+"Set di strumenti da cui l'algoritmo\n"
+"sceglierà quelli usati per la rimozione del rame."
+
+#: AppTools/ToolNCC.py:138
+msgid ""
+"This is the Tool Number.\n"
+"Non copper clearing will start with the tool with the biggest \n"
+"diameter, continuing until there are no more tools.\n"
+"Only tools that create NCC clearing geometry will still be present\n"
+"in the resulting geometry. This is because with some tools\n"
+"this function will not be able to create painting geometry."
+msgstr ""
+"Questo è il numero dello strumento.\n"
+"La pulizia non-rame inizierà con lo strumento con il diametro più\n"
+"grande, continuando fino a quando non ci saranno più strumenti.\n"
+"Solo gli strumenti che creano la geometria di clearing NCC saranno ancora "
+"presenti\n"
+"nella geometria risultante. Questo perché con alcuni strumenti\n"
+"questa funzione non sarà in grado di creare la corretta geometria."
+
+#: AppTools/ToolNCC.py:146
+msgid ""
+"Tool Diameter. It's value (in current FlatCAM units)\n"
+"is the cut width into the material."
+msgstr ""
+"Diametro utensile. Il suo valore (in unità correnti FlatCAM)\n"
+"è l'altezza del taglio nel materiale."
+
+#: AppTools/ToolNCC.py:150
+msgid ""
+"The Tool Type (TT) can be:\n"
+"- Circular with 1 ... 4 teeth -> it is informative only. Being circular,\n"
+"the cut width in material is exactly the tool diameter.\n"
+"- Ball -> informative only and make reference to the Ball type endmill.\n"
+"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI "
+"form\n"
+"and enable two additional UI form fields in the resulting geometry: V-Tip "
+"Dia and\n"
+"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter "
+"such\n"
+"as the cut width into material will be equal with the value in the Tool "
+"Diameter\n"
+"column of this table.\n"
+"Choosing the 'V-Shape' Tool Type automatically will select the Operation "
+"Type\n"
+"in the resulting geometry as Isolation."
+msgstr ""
+"Il tipo di strumento (TT) può essere:\n"
+"- Circolare con 1 ... 4 denti -> è solo informativo. Essendo circolare,\n"
+"la larghezza di taglio nel materiale è esattamente il diametro "
+"dell'utensile.\n"
+"- Sferico -> solo informativo e fa riferimento alla fresa a punta sferica.\n"
+"- a V -> disabiliterà il parametro di Z-Cut nel modulo UI della geometria "
+"risultante\n"
+"e abiliterà due campi aggiuntivi nella geometria risultante: Diametro V-Tip "
+"e\n"
+"Angolo della punta a V. La regolazione di questi due valori regolerà il "
+"parametro Z-Cut\n"
+"poiché la larghezza del taglio nel materiale sarà uguale al valore nella "
+"colonna Diametro utensile\n"
+"di questa tabella.\n"
+"Scegliendo il tipo di strumento \"a V\" si selezionerà automaticamente il "
+"tipo di operazione\n"
+"nella geometria risultante come isolamento."
+
+#: AppTools/ToolNCC.py:296 AppTools/ToolPaint.py:278
+msgid ""
+"Add a new tool to the Tool Table\n"
+"with the diameter specified above."
+msgstr ""
+"Aggiungi un nuovo utensile alla tabella degli utensili\n"
+"con il diametro sopra specificato."
+
+#: AppTools/ToolNCC.py:318 AppTools/ToolPaint.py:300
+#: AppTools/ToolSolderPaste.py:130
+msgid ""
+"Delete a selection of tools in the Tool Table\n"
+"by first selecting a row(s) in the Tool Table."
+msgstr ""
+"Elimina un utensile selezionato dalla tabella degli utensili\n"
+"selezionando prima una o più righe nella tabella degli utensili."
+
+#: AppTools/ToolNCC.py:554
+msgid ""
+"The type of FlatCAM object to be used as non copper clearing reference.\n"
+"It can be Gerber, Excellon or Geometry."
+msgstr ""
+"Il tipo di oggetto FlatCAM da utilizzare come riferimento di eliminazione "
+"del rame.\n"
+"Può essere Gerber, Excellon o Geometry."
+
+#: AppTools/ToolNCC.py:597 AppTools/ToolPaint.py:536
+msgid "Generate Geometry"
+msgstr "Genera geometria"
+
+#: AppTools/ToolNCC.py:932 AppTools/ToolNCC.py:1431 AppTools/ToolPaint.py:857
+#: AppTools/ToolSolderPaste.py:568 AppTools/ToolSolderPaste.py:893
+#: App_Main.py:4190
+msgid "Please enter a tool diameter with non-zero value, in Float format."
+msgstr ""
+"Inserire il diametro utensile con un valore non zero, in formato float."
+
+#: AppTools/ToolNCC.py:936 AppTools/ToolPaint.py:861
+#: AppTools/ToolSolderPaste.py:572 App_Main.py:4194
+msgid "Adding Tool cancelled"
+msgstr "Aggiunta utensile annullata"
+
+#: AppTools/ToolNCC.py:1425 AppTools/ToolPaint.py:1183
+#: AppTools/ToolSolderPaste.py:888
+msgid "Please enter a tool diameter to add, in Float format."
+msgstr "Inserisci un diametro utensile da aggiungere, in formato Float."
+
+#: AppTools/ToolNCC.py:1456 AppTools/ToolNCC.py:4065 AppTools/ToolPaint.py:1207
+#: AppTools/ToolPaint.py:3608 AppTools/ToolSolderPaste.py:917
+msgid "Cancelled. Tool already in Tool Table."
+msgstr "Annullato. Utensile già nella tabella utensili."
+
+#: AppTools/ToolNCC.py:1463 AppTools/ToolNCC.py:4082 AppTools/ToolPaint.py:1212
+#: AppTools/ToolPaint.py:3625
+msgid "New tool added to Tool Table."
+msgstr "Nuovo utensile aggiunto alla tabella."
+
+#: AppTools/ToolNCC.py:1507 AppTools/ToolPaint.py:1256
+msgid "Tool from Tool Table was edited."
+msgstr "Utensile dalla tabella modificato."
+
+#: AppTools/ToolNCC.py:1519 AppTools/ToolPaint.py:1268
+#: AppTools/ToolSolderPaste.py:978
+msgid "Cancelled. New diameter value is already in the Tool Table."
+msgstr "Cancellato. Il valore del nuovo diametro è già presente nella tabella."
+
+#: AppTools/ToolNCC.py:1571 AppTools/ToolPaint.py:1366
+msgid "Delete failed. Select a tool to delete."
+msgstr "Cancellazione fallita. Seleziona un utensile da cancellare."
+
+#: AppTools/ToolNCC.py:1577 AppTools/ToolPaint.py:1372
+msgid "Tool(s) deleted from Tool Table."
+msgstr "Utensile(i) cancellato(i) dalla tabella."
+
+#: AppTools/ToolNCC.py:1620
+msgid "Wrong Tool Dia value format entered, use a number."
+msgstr "Errore nel formato nel valore del diametro inserito, usa un numero."
+
+#: AppTools/ToolNCC.py:1629 AppTools/ToolPaint.py:1423
+msgid "No selected tools in Tool Table."
+msgstr "Nessun utensile selezionato nella tabella."
+
+#: AppTools/ToolNCC.py:1705 AppTools/ToolPaint.py:1599
+msgid "Click the end point of the paint area."
+msgstr "Fai clic sul punto finale dell'area."
+
+#: AppTools/ToolNCC.py:1985 AppTools/ToolNCC.py:3010
+msgid "NCC Tool. Preparing non-copper polygons."
+msgstr "Strumento NCC. Preparazione poligoni non-rame."
+
+#: AppTools/ToolNCC.py:2044 AppTools/ToolNCC.py:3138
+msgid "NCC Tool. Calculate 'empty' area."
+msgstr "Strumento NCC. Calcolo aree 'vuote'."
+
+#: AppTools/ToolNCC.py:2063 AppTools/ToolNCC.py:2172 AppTools/ToolNCC.py:2187
+#: AppTools/ToolNCC.py:3151 AppTools/ToolNCC.py:3256 AppTools/ToolNCC.py:3271
+#: AppTools/ToolNCC.py:3537 AppTools/ToolNCC.py:3638 AppTools/ToolNCC.py:3653
+msgid "Buffering finished"
+msgstr "Fine buffering"
+
+#: AppTools/ToolNCC.py:2071 AppTools/ToolNCC.py:2194 AppTools/ToolNCC.py:3159
+#: AppTools/ToolNCC.py:3278 AppTools/ToolNCC.py:3544 AppTools/ToolNCC.py:3660
+msgid "Could not get the extent of the area to be non copper cleared."
+msgstr "Impossibile ottenere l'estensione dell'area da cui eliminare il rame."
+
+#: AppTools/ToolNCC.py:2101 AppTools/ToolNCC.py:2180 AppTools/ToolNCC.py:3186
+#: AppTools/ToolNCC.py:3263 AppTools/ToolNCC.py:3564 AppTools/ToolNCC.py:3645
+msgid ""
+"Isolation geometry is broken. Margin is less than isolation tool diameter."
+msgstr ""
+"La geometria dell'isolamento è rotta. Il margine è inferiore al diametro "
+"dell'utensile di isolamento."
+
+#: AppTools/ToolNCC.py:2197 AppTools/ToolNCC.py:3282 AppTools/ToolNCC.py:3663
+msgid "The selected object is not suitable for copper clearing."
+msgstr "L'oggetto selezionato non è idoneo alla pulizia rame."
+
+#: AppTools/ToolNCC.py:2204 AppTools/ToolNCC.py:3289
+msgid "NCC Tool. Finished calculation of 'empty' area."
+msgstr "Strumento NCC. Fine calcolo aree 'vuote'."
+
+#: AppTools/ToolNCC.py:2247
+#, fuzzy
+#| msgid "Painting polygon with method: lines."
+msgid "Clearing polygon with method: lines."
+msgstr "Pittura poligoni con modalità linee."
+
+#: AppTools/ToolNCC.py:2257
+#, fuzzy
+#| msgid "Failed. Painting polygon with method: seed."
+msgid "Failed. Clearing polygon with method: seed."
+msgstr "Pittura poligoni con modalità semi."
+
+#: AppTools/ToolNCC.py:2266
+#, fuzzy
+#| msgid "Failed. Painting polygon with method: standard."
+msgid "Failed. Clearing polygon with method: standard."
+msgstr "Pittura poligoni con modalità standard."
+
+#: AppTools/ToolNCC.py:2280
+#, fuzzy
+#| msgid "Geometry could not be painted completely"
+msgid "Geometry could not be cleared completely"
+msgstr "La geometria non può essere dipinta completamente"
+
+#: AppTools/ToolNCC.py:2305 AppTools/ToolNCC.py:2307 AppTools/ToolNCC.py:2962
+#: AppTools/ToolNCC.py:2964
+msgid "Non-Copper clearing ..."
+msgstr "NCC cancellazione non-rame ..."
+
+#: AppTools/ToolNCC.py:2354 AppTools/ToolNCC.py:3106
+msgid ""
+"NCC Tool. Finished non-copper polygons. Normal copper clearing task started."
+msgstr ""
+"Strumento NCC. Fine elaborazione poligoni non-rame. Task rimozione rame "
+"completato."
+
+#: AppTools/ToolNCC.py:2390 AppTools/ToolNCC.py:2638
+msgid "NCC Tool failed creating bounding box."
+msgstr ""
+"Lo strumento NCC non è riuscito a creare il rettangolo di contenimento."
+
+#: AppTools/ToolNCC.py:2405 AppTools/ToolNCC.py:2655 AppTools/ToolNCC.py:3302
+#: AppTools/ToolNCC.py:3688
+msgid "NCC Tool clearing with tool diameter"
+msgstr "Strumento NCC, uso dell'utensile diametro"
+
+#: AppTools/ToolNCC.py:2405 AppTools/ToolNCC.py:2655 AppTools/ToolNCC.py:3302
+#: AppTools/ToolNCC.py:3688
+msgid "started."
+msgstr "avviato."
+
+#: AppTools/ToolNCC.py:2563 AppTools/ToolNCC.py:3463
+msgid ""
+"There is no NCC 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 ""
+"Nessuna geometria NCC nel file.\n"
+"Di solito significa che il diametro dell'utensile è troppo grande per la "
+"geometria.\n"
+"Modifica i parametri e riprova."
+
+#: AppTools/ToolNCC.py:2572 AppTools/ToolNCC.py:3472
+msgid "NCC Tool clear all done."
+msgstr "Lo strumento NCC ha terminato."
+
+#: AppTools/ToolNCC.py:2575 AppTools/ToolNCC.py:3475
+msgid "NCC Tool clear all done but the copper features isolation is broken for"
+msgstr "Lo strumento NCC ha terminato ma l'isolamento del rame è rotto per"
+
+#: AppTools/ToolNCC.py:2577 AppTools/ToolNCC.py:2863 AppTools/ToolNCC.py:3477
+#: AppTools/ToolNCC.py:3860
+msgid "tools"
+msgstr "utensili"
+
+#: AppTools/ToolNCC.py:2859 AppTools/ToolNCC.py:3856
+msgid "NCC Tool Rest Machining clear all done."
+msgstr "Utensile NCC lavorazione di ripresa completata."
+
+#: AppTools/ToolNCC.py:2862 AppTools/ToolNCC.py:3859
+msgid ""
+"NCC Tool Rest Machining clear all done but the copper features isolation is "
+"broken for"
+msgstr ""
+"Utensile NCC lavorazione di ripresa completata ma l'isolamento del rame è "
+"rotto per"
+
+#: AppTools/ToolNCC.py:2974
+msgid "NCC Tool started. Reading parameters."
+msgstr "Strumento NCC avviato. Lettura parametri."
+
+#: AppTools/ToolNCC.py:3958
+msgid ""
+"Try to use the Buffering Type = Full in Preferences -> Gerber General. "
+"Reload the Gerber file after this change."
+msgstr ""
+"Prova a utilizzare il tipo di buffer = Completo in Preferenze -> Gerber "
+"Generale. Ricarica il file Gerber dopo questa modifica."
+
+#: AppTools/ToolNCC.py:4022 AppTools/ToolPaint.py:3565 App_Main.py:5251
+msgid "Tool from DB added in Tool Table."
+msgstr "Utensile da DB aggiunto alla tabella utensili."
+
+#: AppTools/ToolOptimal.py:79
+msgid "Number of decimals kept for found distances."
+msgstr "Numero di decimali da tenere per le distanze trovate."
+
+#: AppTools/ToolOptimal.py:87
+msgid "Minimum distance"
+msgstr "Distanza minima"
+
+#: AppTools/ToolOptimal.py:88
+msgid "Display minimum distance between copper features."
+msgstr "Visualizza la minima distanza tra aree di rame."
+
+#: AppTools/ToolOptimal.py:92
+msgid "Determined"
+msgstr "Determinato"
+
+#: AppTools/ToolOptimal.py:106
+msgid "Occurring"
+msgstr "Succedendo"
+
+#: AppTools/ToolOptimal.py:107
+msgid "How many times this minimum is found."
+msgstr "Quante volte è rilevato questo minimo."
+
+#: AppTools/ToolOptimal.py:113
+msgid "Minimum points coordinates"
+msgstr "Coordinate punti minimi"
+
+#: AppTools/ToolOptimal.py:114 AppTools/ToolOptimal.py:120
+msgid "Coordinates for points where minimum distance was found."
+msgstr "Coordinate per i punti dove è stata rilevata la distanza minima."
+
+#: AppTools/ToolOptimal.py:133 AppTools/ToolOptimal.py:209
+msgid "Jump to selected position"
+msgstr "Vai alla posizione selezionata"
+
+#: AppTools/ToolOptimal.py:135 AppTools/ToolOptimal.py:211
+msgid ""
+"Select a position in the Locations text box and then\n"
+"click this button."
+msgstr ""
+"Selezionare una posizione nella casella di testo Posizioni e quindi\n"
+"fai clic su questo pulsante."
+
+#: AppTools/ToolOptimal.py:143
+msgid "Other distances"
+msgstr "Altre distanze"
+
+#: AppTools/ToolOptimal.py:144
+msgid ""
+"Will display other distances in the Gerber file ordered from\n"
+"the minimum to the maximum, not including the absolute minimum."
+msgstr ""
+"Visualizzerà altre distanze nel file Gerber ordinato dal\n"
+"minimo al massimo, escluso il minimo assoluto."
+
+#: AppTools/ToolOptimal.py:149
+msgid "Other distances points coordinates"
+msgstr "Coordinate di punti di altre distanze"
+
+#: AppTools/ToolOptimal.py:150 AppTools/ToolOptimal.py:164
+#: AppTools/ToolOptimal.py:171 AppTools/ToolOptimal.py:188
+#: AppTools/ToolOptimal.py:195
+msgid ""
+"Other distances and the coordinates for points\n"
+"where the distance was found."
+msgstr ""
+"Altre distanze e coordinate per i punti\n"
+"dove è stata trovata la distanza."
+
+#: AppTools/ToolOptimal.py:163
+msgid "Gerber distances"
+msgstr "Distanze gerber"
+
+#: AppTools/ToolOptimal.py:187
+msgid "Points coordinates"
+msgstr "Coordinate punti"
+
+#: AppTools/ToolOptimal.py:219
+msgid "Find Minimum"
+msgstr "Trova minimi"
+
+#: AppTools/ToolOptimal.py:221
+msgid ""
+"Calculate the minimum distance between copper features,\n"
+"this will allow the determination of the right tool to\n"
+"use for isolation or copper clearing."
+msgstr ""
+"Calcola la distanza minima tra le caratteristiche di rame,\n"
+"questo consentirà la determinazione dello strumento giusto per\n"
+"utilizzare per l'isolamento o la pulizia del rame."
+
+#: AppTools/ToolOptimal.py:346
+msgid "Only Gerber objects can be evaluated."
+msgstr "Possono essere valutati solo oggetti Gerber."
+
+#: AppTools/ToolOptimal.py:352
+msgid ""
+"Optimal Tool. Started to search for the minimum distance between copper "
+"features."
+msgstr ""
+"Strumento ottimale. Inizio a cercare la distanza minima tra le "
+"caratteristiche di rame."
+
+#: AppTools/ToolOptimal.py:362
+msgid "Optimal Tool. Parsing geometry for aperture"
+msgstr "Strumento ottimale. Analisi geometria per aperture"
+
+#: AppTools/ToolOptimal.py:373
+msgid "Optimal Tool. Creating a buffer for the object geometry."
+msgstr ""
+"Strumento ottimale. Creazione di un buffer per la geometria dell'oggetto."
+
+#: AppTools/ToolOptimal.py:383
+msgid ""
+"The Gerber object has one Polygon as geometry.\n"
+"There are no distances between geometry elements to be found."
+msgstr ""
+"L'oggetto Gerber ha un poligono come geometria.\n"
+"Non ci sono distanze tra gli elementi geometrici da trovare."
+
+#: AppTools/ToolOptimal.py:388
+msgid ""
+"Optimal Tool. Finding the distances between each two elements. Iterations"
+msgstr ""
+"Strumento ottimale. Trovo le distanze tra ogni coppia di elementi. iterazioni"
+
+#: AppTools/ToolOptimal.py:423
+msgid "Optimal Tool. Finding the minimum distance."
+msgstr "Strumento ottimale. Trovare la distanza minima."
+
+#: AppTools/ToolOptimal.py:439
+msgid "Optimal Tool. Finished successfully."
+msgstr "Strumento ottimale. Finito con successo."
+
+#: AppTools/ToolPDF.py:91 AppTools/ToolPDF.py:95
+msgid "Open PDF"
+msgstr "Apri PDF"
+
+#: AppTools/ToolPDF.py:98
+msgid "Open PDF cancelled"
+msgstr "Apertura PDF annullata"
+
+#: AppTools/ToolPDF.py:122
+msgid "Parsing PDF file ..."
+msgstr "Analisi file PDF ..."
+
+#: AppTools/ToolPDF.py:138 App_Main.py:8497
+msgid "Failed to open"
+msgstr "Errore di apertura"
+
+#: AppTools/ToolPDF.py:203 AppTools/ToolPcbWizard.py:445 App_Main.py:8446
+msgid "No geometry found in file"
+msgstr "Nessuna geometria trovata nel file"
+
+#: AppTools/ToolPDF.py:206 AppTools/ToolPDF.py:279
+#, python-format
+msgid "Rendering PDF layer #%d ..."
+msgstr "Rendering del livello PDF #%d ..."
+
+#: AppTools/ToolPDF.py:210 AppTools/ToolPDF.py:283
+msgid "Open PDF file failed."
+msgstr "Apertura file PDF fallita."
+
+#: AppTools/ToolPDF.py:215 AppTools/ToolPDF.py:288
+msgid "Rendered"
+msgstr "Renderizzato"
+
+#: AppTools/ToolPaint.py:81
+msgid ""
+"Specify the type of object to be painted.\n"
+"It can be of type: Gerber or Geometry.\n"
+"What is selected here will dictate the kind\n"
+"of objects that will populate the 'Object' combobox."
+msgstr ""
+"Specifica il tipo di oggetto da dipingere.\n"
+"Può essere di tipo: Gerber o Geometria.\n"
+"Ciò che è selezionato qui detterà il tipo\n"
+"di oggetti che popoleranno la combobox 'Oggetto'."
+
+#: AppTools/ToolPaint.py:103
+msgid "Object to be painted."
+msgstr "Oggetto da dipingere."
+
+#: AppTools/ToolPaint.py:116
+msgid ""
+"Tools pool from which the algorithm\n"
+"will pick the ones used for painting."
+msgstr ""
+"Set di strumenti da cui l'algoritmo\n"
+"sceglierà quelli usati per la pittura."
+
+#: AppTools/ToolPaint.py:133
+msgid ""
+"This is the Tool Number.\n"
+"Painting will start with the tool with the biggest diameter,\n"
+"continuing until there are no more tools.\n"
+"Only tools that create painting geometry will still be present\n"
+"in the resulting geometry. This is because with some tools\n"
+"this function will not be able to create painting geometry."
+msgstr ""
+"Questo è il numero dell'utensile.\n"
+"La pittura inizierà con lo strumento con il diametro maggiore,\n"
+"continuando fino a quando non ci saranno più strumenti.\n"
+"Solo gli strumenti che creano la geometria della pittura saranno ancora "
+"presenti\n"
+"nella geometria risultante. Questo perché con alcuni strumenti\n"
+"questa funzione non sarà in grado di creare la geometria della pittura."
+
+#: AppTools/ToolPaint.py:145
+msgid ""
+"The Tool Type (TT) can be:\n"
+"- Circular -> it is informative only. Being circular,\n"
+"the cut width in material is exactly the tool diameter.\n"
+"- Ball -> informative only and make reference to the Ball type endmill.\n"
+"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI "
+"form\n"
+"and enable two additional UI form fields in the resulting geometry: V-Tip "
+"Dia and\n"
+"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter "
+"such\n"
+"as the cut width into material will be equal with the value in the Tool "
+"Diameter\n"
+"column of this table.\n"
+"Choosing the 'V-Shape' Tool Type automatically will select the Operation "
+"Type\n"
+"in the resulting geometry as Isolation."
+msgstr ""
+"Il tipo di strumento (TT) può essere:\n"
+"- Circolare con 1 ... 4 denti -> è solo informativo. Essendo circolare,\n"
+"la larghezza di taglio nel materiale è esattamente il diametro "
+"dell'utensile.\n"
+"- Sferico -> solo informativo e fa riferimento alla fresa a punta sferica.\n"
+"- a V -> disabiliterà il parametro di Z-Cut nel modulo UI della geometria "
+"risultante\n"
+"e abiliterà due campi aggiuntivi nella geometria risultante: Diametro V-Tip "
+"e\n"
+"Angolo della punta a V. La regolazione di questi due valori regolerà il "
+"parametro Z-Cut\n"
+"poiché la larghezza del taglio nel materiale sarà uguale al valore nella "
+"colonna Diametro utensile\n"
+"di questa tabella.\n"
+"Scegliendo il tipo di strumento 'a V' si selezionerà automaticamente il tipo "
+"di operazione\n"
+"nella geometria risultante come isolamento."
+
+#: AppTools/ToolPaint.py:497
+msgid ""
+"The type of FlatCAM object to be used as paint reference.\n"
+"It can be Gerber, Excellon or Geometry."
+msgstr ""
+"Il tipo di oggetto FlatCAM da utilizzare come riferimento di disegno.\n"
+"Può essere Gerber, Excellon o Geometry."
+
+#: AppTools/ToolPaint.py:538
+msgid ""
+"- 'Area Selection' - left mouse click to start selection of the area to be "
+"painted.\n"
+"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple "
+"areas.\n"
+"- 'All Polygons' - the Paint will start after click.\n"
+"- 'Reference Object' - will do non copper clearing within the area\n"
+"specified by another object."
+msgstr ""
+"- 'Selezione area': fare clic con il pulsante sinistro del mouse per "
+"iniziare la selezione dell'area da dipingere.\n"
+"Tenendo premuto un tasto modificatore (CTRL o SHIFT) sarà possibile "
+"aggiungere più aree.\n"
+"- 'Tutti i poligoni': la pittura inizierà dopo il clic.\n"
+"- 'Oggetto di riferimento' - eseguirà lo sgombero dal rame all'interno "
+"dell'area\n"
+"specificata da un altro oggetto."
+
+#: AppTools/ToolPaint.py:1392
+#, python-format
+msgid "Could not retrieve object: %s"
+msgstr "Impossibile ottenere l'oggetto: %s"
+
+#: AppTools/ToolPaint.py:1402
+msgid "Can't do Paint on MultiGeo geometries"
+msgstr "Impossibile dipingere in geometrie multigeo"
+
+#: AppTools/ToolPaint.py:1432
+msgid "Click on a polygon to paint it."
+msgstr "Clicca su un poligono per dipingerlo."
+
+#: AppTools/ToolPaint.py:1452
+msgid "Click the start point of the paint area."
+msgstr "Fai clic sul punto iniziale dell'area di disegno."
+
+#: AppTools/ToolPaint.py:1517
+msgid "Click to add next polygon or right click to start painting."
+msgstr ""
+"Fai clic per aggiungere il prossimo poligono o fai clic con il tasto destro "
+"per iniziare a dipingere."
+
+#: AppTools/ToolPaint.py:1530
+msgid "Click to add/remove next polygon or right click to start painting."
+msgstr ""
+"Fai clic per aggiungere/rimuovere il prossimo poligono o fai clic con il "
+"tasto destro per iniziare a dipingere."
+
+#: AppTools/ToolPaint.py:2034
+msgid "Painting polygon with method: lines."
+msgstr "Pittura poligoni con modalità linee."
+
+#: AppTools/ToolPaint.py:2046
+msgid "Failed. Painting polygon with method: seed."
+msgstr "Pittura poligoni con modalità semi."
+
+#: AppTools/ToolPaint.py:2057
+msgid "Failed. Painting polygon with method: standard."
+msgstr "Pittura poligoni con modalità standard."
+
+#: AppTools/ToolPaint.py:2073
+msgid "Geometry could not be painted completely"
+msgstr "La geometria non può essere dipinta completamente"
+
+#: AppTools/ToolPaint.py:2102 AppTools/ToolPaint.py:2105
+#: AppTools/ToolPaint.py:2113 AppTools/ToolPaint.py:2416
+#: AppTools/ToolPaint.py:2419 AppTools/ToolPaint.py:2427
+#: AppTools/ToolPaint.py:2915 AppTools/ToolPaint.py:2918
+#: AppTools/ToolPaint.py:2924
+msgid "Paint Tool."
+msgstr "Strumento pittura."
+
+#: AppTools/ToolPaint.py:2102 AppTools/ToolPaint.py:2105
+#: AppTools/ToolPaint.py:2113
+msgid "Normal painting polygon task started."
+msgstr "Attività di poligono di pittura normale avviata."
+
+#: AppTools/ToolPaint.py:2103 AppTools/ToolPaint.py:2417
+#: AppTools/ToolPaint.py:2916
+msgid "Buffering geometry..."
+msgstr "Geometria buffer ..."
+
+#: AppTools/ToolPaint.py:2125 AppTools/ToolPaint.py:2434
+#: AppTools/ToolPaint.py:2932
+msgid "No polygon found."
+msgstr "Nessun poligono trovato."
+
+#: AppTools/ToolPaint.py:2155
+msgid "Painting polygon..."
+msgstr "Pittura poligono ..."
+
+#: AppTools/ToolPaint.py:2165 AppTools/ToolPaint.py:2480
+#: AppTools/ToolPaint.py:2670 AppTools/ToolPaint.py:2978
+#: AppTools/ToolPaint.py:3157
+msgid "Painting with tool diameter = "
+msgstr "Verniciatura con diametro utensile = "
+
+#: AppTools/ToolPaint.py:2166 AppTools/ToolPaint.py:2481
+#: AppTools/ToolPaint.py:2671 AppTools/ToolPaint.py:2979
+#: AppTools/ToolPaint.py:3158
+msgid "started"
+msgstr "avviata"
+
+#: AppTools/ToolPaint.py:2191 AppTools/ToolPaint.py:2507
+#: AppTools/ToolPaint.py:2697 AppTools/ToolPaint.py:3005
+#: AppTools/ToolPaint.py:3184
+msgid "Margin parameter too big. Tool is not used"
+msgstr "Parametro di margine troppo grande. Utensile non usato"
+
+#: AppTools/ToolPaint.py:2249 AppTools/ToolPaint.py:2576
+#: AppTools/ToolPaint.py:2754 AppTools/ToolPaint.py:3068
+#: AppTools/ToolPaint.py:3246
+msgid ""
+"Could not do Paint. Try a different combination of parameters. Or a "
+"different strategy of paint"
+msgstr ""
+"Impossibile dipingere. Prova una diversa combinazione di parametri. O una "
+"diversa strategia di pittura"
+
+#: AppTools/ToolPaint.py:2306 AppTools/ToolPaint.py:2642
+#: AppTools/ToolPaint.py:2811 AppTools/ToolPaint.py:3129
+#: AppTools/ToolPaint.py:3308
+msgid ""
+"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 ""
+"Nel file non è presente una Geometria di pittura.\n"
+"Di solito significa che il diametro dell'utensile è troppo grande per la "
+"geometria da trattare.\n"
+"Modifica i parametri di pittura e riprova."
+
+#: AppTools/ToolPaint.py:2329
+msgid "Paint Single failed."
+msgstr "Pittura singola fallita."
+
+#: AppTools/ToolPaint.py:2335
+msgid "Paint Single Done."
+msgstr "Pittura, fatto."
+
+#: AppTools/ToolPaint.py:2337 AppTools/ToolPaint.py:2847
+#: AppTools/ToolPaint.py:3344
+msgid "Polygon Paint started ..."
+msgstr "Pittura poligoni avviata ..."
+
+#: AppTools/ToolPaint.py:2416 AppTools/ToolPaint.py:2419
+#: AppTools/ToolPaint.py:2427
+msgid "Paint all polygons task started."
+msgstr "Attività di pittura poligoni avviata."
+
+#: AppTools/ToolPaint.py:2458 AppTools/ToolPaint.py:2956
+msgid "Painting polygons..."
+msgstr "Pittura poligoni..."
+
+#: AppTools/ToolPaint.py:2651
+msgid "Paint All Done."
+msgstr "Verniciatura effettuata."
+
+#: AppTools/ToolPaint.py:2820 AppTools/ToolPaint.py:3317
+msgid "Paint All with Rest-Machining done."
+msgstr "Dipingi tutto con Lavorazione a ripresa."
+
+#: AppTools/ToolPaint.py:2839
+msgid "Paint All failed."
+msgstr "Vernicia tutti fallita."
+
+#: AppTools/ToolPaint.py:2845
+msgid "Paint Poly All Done."
+msgstr "Verniciatura di tutti i poligoni effettuata."
+
+#: AppTools/ToolPaint.py:2915 AppTools/ToolPaint.py:2918
+#: AppTools/ToolPaint.py:2924
+msgid "Painting area task started."
+msgstr "Attività di pittura area avviata."
+
+#: AppTools/ToolPaint.py:3138
+msgid "Paint Area Done."
+msgstr "Pittura area completata."
+
+#: AppTools/ToolPaint.py:3336
+msgid "Paint Area failed."
+msgstr "Pittura area fallita."
+
+#: AppTools/ToolPaint.py:3342
+msgid "Paint Poly Area Done."
+msgstr "Pittura area poligono completata."
+
+#: AppTools/ToolPanelize.py:35
+msgid "Panelize PCB"
+msgstr "Pannellizza PCB"
+
+#: AppTools/ToolPanelize.py:55
+msgid ""
+"Specify the type of object to be panelized\n"
+"It can be of type: Gerber, Excellon or Geometry.\n"
+"The selection here decide the type of objects that will be\n"
+"in the Object combobox."
+msgstr ""
+"Specificare il tipo di oggetto da pannellare.\n"
+"Può essere di tipo: Gerber, Excellon o Geometry.\n"
+"La selezione decide il tipo di oggetti che saranno\n"
+"nella combobox Oggetto."
+
+#: AppTools/ToolPanelize.py:88
+msgid ""
+"Object to be panelized. This means that it will\n"
+"be duplicated in an array of rows and columns."
+msgstr ""
+"Oggetto da pannellizzare. Questo significa che sarà\n"
+"duplicato in una matrice di righe e colonne."
+
+#: AppTools/ToolPanelize.py:100
+msgid "Penelization Reference"
+msgstr "Riferimento pannellizzazione"
+
+#: AppTools/ToolPanelize.py:102
+msgid ""
+"Choose the reference for panelization:\n"
+"- Object = the bounding box of a different object\n"
+"- Bounding Box = the bounding box of the object to be panelized\n"
+"\n"
+"The reference is useful when doing panelization for more than one\n"
+"object. The spacings (really offsets) will be applied in reference\n"
+"to this reference object therefore maintaining the panelized\n"
+"objects in sync."
+msgstr ""
+"Scegli il riferimento per la pannellizzazione:\n"
+"- Oggetto = il rettangolo di selezione di un altro oggetto\n"
+"- Bounding Box = il riquadro di delimitazione dell'oggetto da pannellare\n"
+"\n"
+"Il riferimento è utile quando si esegue la pannellizzazione per più di un\n"
+"oggetto. Le spaziature (offset) verranno applicate in riferimento\n"
+"a questo oggetto di riferimento mantenendo quindi gli oggetti\n"
+"pannellizzati sincronizzati."
+
+#: AppTools/ToolPanelize.py:123
+msgid "Box Type"
+msgstr "Tipo box"
+
+#: AppTools/ToolPanelize.py:125
+msgid ""
+"Specify the type of object to be used as an container for\n"
+"panelization. It can be: Gerber or Geometry type.\n"
+"The selection here decide the type of objects that will be\n"
+"in the Box Object combobox."
+msgstr ""
+"Specificare il tipo di oggetto da utilizzare come contenitore per\n"
+"pannelizzazione. Può essere: tipo Gerber o Geometria.\n"
+"La selezione decide il tipo di oggetti che saranno\n"
+"nella casella combobox Oggetto."
+
+#: AppTools/ToolPanelize.py:139
+msgid ""
+"The actual object that is used as container for the\n"
+" selected object that is to be panelized."
+msgstr ""
+"Oggetto utilizzato come contenitore per\n"
+"l'oggetto selezionato da pannellizzare."
+
+#: AppTools/ToolPanelize.py:149
+msgid "Panel Data"
+msgstr "Dati pannello"
+
+#: AppTools/ToolPanelize.py:151
+msgid ""
+"This informations will shape the resulting panel.\n"
+"The number of rows and columns will set how many\n"
+"duplicates of the original geometry will be generated.\n"
+"\n"
+"The spacings will set the distance between any two\n"
+"elements of the panel array."
+msgstr ""
+"Queste informazioni daranno forma al pannello risultante.\n"
+"Il numero di righe e colonne imposterà quanti\n"
+"duplicati della geometria originale verranno generati.\n"
+"\n"
+"Le distanze imposteranno la distanza tra due qualsiasi\n"
+"elementi della matrice di pannelli."
+
+#: AppTools/ToolPanelize.py:214
+msgid ""
+"Choose the type of object for the panel object:\n"
+"- Geometry\n"
+"- Gerber"
+msgstr ""
+"Scegli il tipo di oggetto per l'oggetto pannello:\n"
+"- Geometria\n"
+"- Gerber"
+
+#: AppTools/ToolPanelize.py:222
+msgid "Constrain panel within"
+msgstr "Vincola pannello all'interno"
+
+#: AppTools/ToolPanelize.py:263
+msgid "Panelize Object"
+msgstr "Pannellizza oggetto"
+
+#: AppTools/ToolPanelize.py:265 AppTools/ToolRulesCheck.py:501
+msgid ""
+"Panelize the specified object around the specified box.\n"
+"In other words it creates multiple copies of the source object,\n"
+"arranged in a 2D array of rows and columns."
+msgstr ""
+"Panelizza l'oggetto specificato attorno al box specificata.\n"
+"In altre parole crea più copie dell'oggetto sorgente,\n"
+"disposti in una matrice 2D di righe e colonne."
+
+#: AppTools/ToolPanelize.py:333
+msgid "Panel. Tool"
+msgstr "Pannello, strumento"
+
+#: AppTools/ToolPanelize.py:468
+msgid "Columns or Rows are zero value. Change them to a positive integer."
+msgstr ""
+"Le colonne o le righe hanno valore zero. Modificali in un numero intero "
+"positivo."
+
+#: AppTools/ToolPanelize.py:505
+msgid "Generating panel ... "
+msgstr "Generazione pannello … "
+
+#: AppTools/ToolPanelize.py:788
+msgid "Generating panel ... Adding the Gerber code."
+msgstr "Generazione pannello … Aggiunta codice gerber."
+
+#: AppTools/ToolPanelize.py:796
+msgid "Generating panel... Spawning copies"
+msgstr "Generazione pannello … Generazione copie"
+
+#: AppTools/ToolPanelize.py:803
+msgid "Panel done..."
+msgstr "Pannellizzazione effettuata..."
+
+#: AppTools/ToolPanelize.py:806
+#, python-brace-format
+msgid ""
+"{text} Too big for the constrain area. Final panel has {col} columns and "
+"{row} rows"
+msgstr ""
+"{text} Troppo grande per l'area vincolata. Il pannello finale ha {col} "
+"colonne e {row} righe"
+
+#: AppTools/ToolPanelize.py:815
+msgid "Panel created successfully."
+msgstr "Pannello creato con successo."
+
+#: AppTools/ToolPcbWizard.py:31
+msgid "PcbWizard Import Tool"
+msgstr "Strumento importazione PcbWizard"
+
+#: AppTools/ToolPcbWizard.py:40
+msgid "Import 2-file Excellon"
+msgstr "Importazione Excellon doppio file"
+
+#: AppTools/ToolPcbWizard.py:51
+msgid "Load files"
+msgstr "Carica files"
+
+#: AppTools/ToolPcbWizard.py:57
+msgid "Excellon file"
+msgstr "File Excellon"
+
+#: AppTools/ToolPcbWizard.py:59
+msgid ""
+"Load the Excellon file.\n"
+"Usually it has a .DRL extension"
+msgstr ""
+"Carica file Excellon.\n"
+"Tipicamente ha estensione .DRL"
+
+#: AppTools/ToolPcbWizard.py:65
+msgid "INF file"
+msgstr "File INF"
+
+#: AppTools/ToolPcbWizard.py:67
+msgid "Load the INF file."
+msgstr "Carica un file INF."
+
+#: AppTools/ToolPcbWizard.py:79
+msgid "Tool Number"
+msgstr "Numero Utensile"
+
+#: AppTools/ToolPcbWizard.py:81
+msgid "Tool diameter in file units."
+msgstr "Diametro utensile in unità del file."
+
+#: AppTools/ToolPcbWizard.py:87
+msgid "Excellon format"
+msgstr "Formato Excellon"
+
+#: AppTools/ToolPcbWizard.py:95
+msgid "Int. digits"
+msgstr "Cifre intere"
+
+#: AppTools/ToolPcbWizard.py:97
+msgid "The number of digits for the integral part of the coordinates."
+msgstr "Numero di cifre per la parte intera delle coordinate."
+
+#: AppTools/ToolPcbWizard.py:104
+msgid "Frac. digits"
+msgstr "Cifre decimali"
+
+#: AppTools/ToolPcbWizard.py:106
+msgid "The number of digits for the fractional part of the coordinates."
+msgstr "Numero di cifre per la parte decimale delle coordinate."
+
+#: AppTools/ToolPcbWizard.py:113
+msgid "No Suppression"
+msgstr "No soppressione"
+
+#: AppTools/ToolPcbWizard.py:114
+msgid "Zeros supp."
+msgstr "Soppressione zeri."
+
+#: AppTools/ToolPcbWizard.py:116
+msgid ""
+"The type of zeros suppression used.\n"
+"Can be of type:\n"
+"- LZ = leading zeros are kept\n"
+"- TZ = trailing zeros are kept\n"
+"- No Suppression = no zero suppression"
+msgstr ""
+"Il tipo di soppressione degli zeri utilizzato.\n"
+"Può essere di tipo:\n"
+"- ZI = gli zeri iniziali vengono mantenuti\n"
+"- ZF = vengono mantenuti gli zeri finali\n"
+"- Nessuna soppressione = nessuna soppressione di zeri"
+
+#: AppTools/ToolPcbWizard.py:129
+msgid ""
+"The type of units that the coordinates and tool\n"
+"diameters are using. Can be INCH or MM."
+msgstr ""
+"Il tipo di unità usata da coordinate e dal diametro\n"
+"degli utensili. Può essere POLLICI o MM."
+
+#: AppTools/ToolPcbWizard.py:136
+msgid "Import Excellon"
+msgstr "Importa Excellon"
+
+#: AppTools/ToolPcbWizard.py:138
+msgid ""
+"Import in FlatCAM an Excellon file\n"
+"that store it's information's in 2 files.\n"
+"One usually has .DRL extension while\n"
+"the other has .INF extension."
+msgstr ""
+"Importa in FlatCAM un file Excellon\n"
+"che memorizza le informazioni in 2 file.\n"
+"Uno di solito ha l'estensione .DRL mentre\n"
+"l'altro ha estensione .INF."
+
+#: AppTools/ToolPcbWizard.py:197
+msgid "PCBWizard Tool"
+msgstr "Strumento PCBWizard"
+
+#: AppTools/ToolPcbWizard.py:291 AppTools/ToolPcbWizard.py:295
+msgid "Load PcbWizard Excellon file"
+msgstr "Carica file Excellon PcbWizard"
+
+#: AppTools/ToolPcbWizard.py:314 AppTools/ToolPcbWizard.py:318
+msgid "Load PcbWizard INF file"
+msgstr "Carica file INF PcbWizard"
+
+#: AppTools/ToolPcbWizard.py:366
+msgid ""
+"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 ""
+"Il file INF non contiene la tabella degli strumenti.\n"
+"Prova ad aprire il file Excellon da File -> Apri -> Excellon\n"
+"e modificare manualmente i diametri delle punte."
+
+#: AppTools/ToolPcbWizard.py:387
+msgid "PcbWizard .INF file loaded."
+msgstr "File PcbWizard caricato."
+
+#: AppTools/ToolPcbWizard.py:392
+msgid "Main PcbWizard Excellon file loaded."
+msgstr "File principale PcbWizard caricato."
+
+#: AppTools/ToolPcbWizard.py:424 App_Main.py:8424
+msgid "This is not Excellon file."
+msgstr "Non è un file Excellon."
+
+#: AppTools/ToolPcbWizard.py:427
+msgid "Cannot parse file"
+msgstr "Impossibile analizzare file"
+
+#: AppTools/ToolPcbWizard.py:450
+msgid "Importing Excellon."
+msgstr "Importazione Excellon."
+
+#: AppTools/ToolPcbWizard.py:457
+msgid "Import Excellon file failed."
+msgstr "Importazione file Excellon fallita."
+
+#: AppTools/ToolPcbWizard.py:464
+msgid "Imported"
+msgstr "Importato"
+
+#: AppTools/ToolPcbWizard.py:467
+msgid "Excellon merging is in progress. Please wait..."
+msgstr "Unione Excellon in corso. Attendere..."
+
+#: AppTools/ToolPcbWizard.py:469
+msgid "The imported Excellon file is empty."
+msgstr "Il file Excellon importato è vuoto."
+
+#: AppTools/ToolProperties.py:116 App_Main.py:4664 App_Main.py:6718
+#: App_Main.py:6813 App_Main.py:6854 App_Main.py:6895 App_Main.py:6936
+#: App_Main.py:6977 App_Main.py:7021 App_Main.py:7065 App_Main.py:7585
+#: App_Main.py:7589
+msgid "No object selected."
+msgstr "Nessun oggetto selezionato."
+
+#: AppTools/ToolProperties.py:131
+msgid "Object Properties are displayed."
+msgstr "Proprietà oggetto visualizzate."
+
+#: AppTools/ToolProperties.py:136
+msgid "Properties Tool"
+msgstr "Strumento proprietà"
+
+#: AppTools/ToolProperties.py:150
+msgid "TYPE"
+msgstr "TIPO"
+
+#: AppTools/ToolProperties.py:151
+msgid "NAME"
+msgstr "NOME"
+
+#: AppTools/ToolProperties.py:153
+msgid "Dimensions"
+msgstr "Dimensione"
+
+#: AppTools/ToolProperties.py:181
+msgid "Geo Type"
+msgstr "Tipo Geom"
+
+#: AppTools/ToolProperties.py:184
+msgid "Single-Geo"
+msgstr "Geoi singola"
+
+#: AppTools/ToolProperties.py:185
+msgid "Multi-Geo"
+msgstr "Multi-Geo"
+
+#: AppTools/ToolProperties.py:196
+msgid "Calculating dimensions ... Please wait."
+msgstr "Calcolo dimensioni … Attendere."
+
+#: AppTools/ToolProperties.py:339 AppTools/ToolProperties.py:343
+#: AppTools/ToolProperties.py:345
+msgid "Inch"
+msgstr "Pollici"
+
+#: AppTools/ToolProperties.py:339 AppTools/ToolProperties.py:344
+#: AppTools/ToolProperties.py:346
+msgid "Metric"
+msgstr "Metrico"
+
+#: AppTools/ToolProperties.py:421 AppTools/ToolProperties.py:486
+msgid "Drills number"
+msgstr "Numero fori"
+
+#: AppTools/ToolProperties.py:422 AppTools/ToolProperties.py:488
+msgid "Slots number"
+msgstr "Numero Slot"
+
+#: AppTools/ToolProperties.py:424
+msgid "Drills total number:"
+msgstr "Numero totale di fori:"
+
+#: AppTools/ToolProperties.py:425
+msgid "Slots total number:"
+msgstr "Numero totale di slot:"
+
+#: AppTools/ToolProperties.py:452 AppTools/ToolProperties.py:455
+#: AppTools/ToolProperties.py:458 AppTools/ToolProperties.py:483
+msgid "Present"
+msgstr "Presente"
+
+#: AppTools/ToolProperties.py:453 AppTools/ToolProperties.py:484
+msgid "Solid Geometry"
+msgstr "Geometria solida"
+
+#: AppTools/ToolProperties.py:456
+msgid "GCode Text"
+msgstr "Testo GCode"
+
+#: AppTools/ToolProperties.py:459
+msgid "GCode Geometry"
+msgstr "Geometria GCode"
+
+#: AppTools/ToolProperties.py:462
+msgid "Data"
+msgstr "Dati"
+
+#: AppTools/ToolProperties.py:495
+msgid "Depth of Cut"
+msgstr "Profondità di taglio"
+
+#: AppTools/ToolProperties.py:507
+msgid "Clearance Height"
+msgstr "Altezza di sicurezza"
+
+#: AppTools/ToolProperties.py:539
+msgid "Routing time"
+msgstr "Tempo fresatura"
+
+#: AppTools/ToolProperties.py:546
+msgid "Travelled distance"
+msgstr "Distanza percorsa"
+
+#: AppTools/ToolProperties.py:564
+msgid "Width"
+msgstr "Larghezza"
+
+#: AppTools/ToolProperties.py:570 AppTools/ToolProperties.py:578
+msgid "Box Area"
+msgstr "Area box"
+
+#: AppTools/ToolProperties.py:573 AppTools/ToolProperties.py:581
+msgid "Convex_Hull Area"
+msgstr "Area guscio convesso"
+
+#: AppTools/ToolProperties.py:588 AppTools/ToolProperties.py:591
+msgid "Copper Area"
+msgstr "Area rame"
+
+#: AppTools/ToolPunchGerber.py:30 AppTools/ToolPunchGerber.py:323
+msgid "Punch Gerber"
+msgstr "Punzona Gerber"
+
+#: AppTools/ToolPunchGerber.py:65
+msgid "Gerber into which to punch holes"
+msgstr "Gerber nel quale applicare i punzoni"
+
+#: AppTools/ToolPunchGerber.py:85
+msgid "ALL"
+msgstr "TUTTO"
+
+#: AppTools/ToolPunchGerber.py:166
+msgid ""
+"Remove the geometry of Excellon from the Gerber to create the holes in pads."
+msgstr "Rimuovi la geometria Excellon dal Gerber per creare i fori nei pad."
+
+#: AppTools/ToolPunchGerber.py:325
+msgid ""
+"Create a Gerber object from the selected object, within\n"
+"the specified box."
+msgstr ""
+"Crea un oggetto gerber dall'oggetto selezionato, dento\n"
+"il box specificato."
+
+#: AppTools/ToolPunchGerber.py:425
+msgid "Punch Tool"
+msgstr "Strumento punzone"
+
+#: AppTools/ToolPunchGerber.py:599
+msgid "The value of the fixed diameter is 0.0. Aborting."
+msgstr "Il valore di diametro fisso è 0.0. Annullamento."
+
+#: AppTools/ToolPunchGerber.py:602
+msgid ""
+"Could not generate punched hole Gerber because the punch hole size is bigger "
+"than some of the apertures in the Gerber object."
+msgstr ""
+"Impossibile generare fori punzonati nel Gerber perché la dimensione del foro "
+"del punzone è maggiore di alcune delle aperture nell'oggetto Gerber."
+
+#: AppTools/ToolPunchGerber.py:665
+msgid ""
+"Could not generate punched hole Gerber because the newly created object "
+"geometry is the same as the one in the source object geometry..."
+msgstr ""
+"Impossibile generare fori punzonati nel Gerber perché la geometria "
+"dell'oggetto appena creata è uguale a quella nella geometria dell'oggetto "
+"sorgente ..."
+
+#: AppTools/ToolQRCode.py:80
+msgid "Gerber Object to which the QRCode will be added."
+msgstr "Oggetto Gerber a cui verrà aggiunto il QRCode."
+
+#: AppTools/ToolQRCode.py:93
+msgid "QRCode Parameters"
+msgstr "Parametri QRCode"
+
+#: AppTools/ToolQRCode.py:95
+msgid "The parameters used to shape the QRCode."
+msgstr "Parametri usati per formare il QRCode."
+
+#: AppTools/ToolQRCode.py:207
+msgid "Export QRCode"
+msgstr "Esporta QRCode"
+
+#: AppTools/ToolQRCode.py:209
+msgid ""
+"Show a set of controls allowing to export the QRCode\n"
+"to a SVG file or an PNG file."
+msgstr ""
+"Mostra una serie di controlli che consentono di esportare il QRCode\n"
+"in un file SVG o in un file PNG."
+
+#: AppTools/ToolQRCode.py:248
+msgid "Transparent back color"
+msgstr "Colore trasparente sfondo"
+
+#: AppTools/ToolQRCode.py:273
+msgid "Export QRCode SVG"
+msgstr "Esporta QRCode su SVG"
+
+#: AppTools/ToolQRCode.py:275
+msgid "Export a SVG file with the QRCode content."
+msgstr "Esporta un file SVG con il contenuto del QRCode."
+
+#: AppTools/ToolQRCode.py:286
+msgid "Export QRCode PNG"
+msgstr "Esporta QRCode su PNG"
+
+#: AppTools/ToolQRCode.py:288
+msgid "Export a PNG image file with the QRCode content."
+msgstr "Esporta file immagine PNG con il contenuto del QRCode."
+
+#: AppTools/ToolQRCode.py:299
+msgid "Insert QRCode"
+msgstr "Inserisci QRCode"
+
+#: AppTools/ToolQRCode.py:301
+msgid "Create the QRCode object."
+msgstr "Crea oggetto QRCode."
+
+#: AppTools/ToolQRCode.py:415 AppTools/ToolQRCode.py:750
+#: AppTools/ToolQRCode.py:799
+msgid "Cancelled. There is no QRCode Data in the text box."
+msgstr "Annullato. Non ci sono dati QRCode nel box testo."
+
+#: AppTools/ToolQRCode.py:434
+msgid "Generating QRCode geometry"
+msgstr "Generazione geometria QRCode"
+
+#: AppTools/ToolQRCode.py:474
+msgid "Click on the Destination point ..."
+msgstr "Clicca sul punto di destinazione ..."
+
+#: AppTools/ToolQRCode.py:589
+msgid "QRCode Tool done."
+msgstr "Strumento QRCode fatto."
+
+#: AppTools/ToolQRCode.py:782 AppTools/ToolQRCode.py:786
+msgid "Export PNG"
+msgstr "Esporta PNG"
+
+#: AppTools/ToolQRCode.py:829 AppTools/ToolQRCode.py:833 App_Main.py:6746
+#: App_Main.py:6750
+msgid "Export SVG"
+msgstr "Esporta SVG"
+
+#: AppTools/ToolRulesCheck.py:33
+msgid "Check Rules"
+msgstr "Controllo regole"
+
+#: AppTools/ToolRulesCheck.py:61
+msgid "Gerber Files"
+msgstr "Files Gerber"
+
+#: AppTools/ToolRulesCheck.py:63
+msgid "Gerber objects for which to check rules."
+msgstr "Oggetti Gerber sui quali verificare le regole."
+
+#: AppTools/ToolRulesCheck.py:78
+msgid "Top"
+msgstr "Top"
+
+#: AppTools/ToolRulesCheck.py:80
+msgid "The Top Gerber Copper object for which rules are checked."
+msgstr "L'oggetto Gerber rame TOP per il quale vengono controllate le regole."
+
+#: AppTools/ToolRulesCheck.py:96
+msgid "Bottom"
+msgstr "Bottom"
+
+#: AppTools/ToolRulesCheck.py:98
+msgid "The Bottom Gerber Copper object for which rules are checked."
+msgstr ""
+"L'oggetto Gerber rame BOTTOM per il quale vengono controllate le regole."
+
+#: AppTools/ToolRulesCheck.py:114
+msgid "SM Top"
+msgstr "SM Top"
+
+#: AppTools/ToolRulesCheck.py:116
+msgid "The Top Gerber Solder Mask object for which rules are checked."
+msgstr ""
+"L'oggetto Gerber SolderMask TOP per il quale vengono controllate le regole."
+
+#: AppTools/ToolRulesCheck.py:132
+msgid "SM Bottom"
+msgstr "SM Bottom"
+
+#: AppTools/ToolRulesCheck.py:134
+msgid "The Bottom Gerber Solder Mask object for which rules are checked."
+msgstr ""
+"L'oggetto Gerber SolderMask BOTTOM per il quale vengono controllate le "
+"regole."
+
+#: AppTools/ToolRulesCheck.py:150
+msgid "Silk Top"
+msgstr "Silk Top"
+
+#: AppTools/ToolRulesCheck.py:152
+msgid "The Top Gerber Silkscreen object for which rules are checked."
+msgstr ""
+"L'oggetto Gerber Serigrafia TOP per il quale vengono controllate le regole."
+
+#: AppTools/ToolRulesCheck.py:168
+msgid "Silk Bottom"
+msgstr "Silk Bottom"
+
+#: AppTools/ToolRulesCheck.py:170
+msgid "The Bottom Gerber Silkscreen object for which rules are checked."
+msgstr ""
+"L'oggetto Gerber Serigrafia BOTTOM per il quale vengono controllate le "
+"regole."
+
+#: AppTools/ToolRulesCheck.py:188
+msgid "The Gerber Outline (Cutout) object for which rules are checked."
+msgstr ""
+"L'oggetto Gerber Outline (ritaglio) per il quale vengono controllate le "
+"regole."
+
+#: AppTools/ToolRulesCheck.py:199
+msgid "Excellon Objects"
+msgstr "Oggetto Excellon"
+
+#: AppTools/ToolRulesCheck.py:201
+msgid "Excellon objects for which to check rules."
+msgstr "Oggetto Excellon al quale controllare le regole."
+
+#: AppTools/ToolRulesCheck.py:213
+msgid "Excellon 1"
+msgstr "Excellon 1"
+
+#: AppTools/ToolRulesCheck.py:215
+msgid ""
+"Excellon object for which to check rules.\n"
+"Holds the plated holes or a general Excellon file content."
+msgstr ""
+"Oggetto Excellon per il quale verificare le regole.\n"
+"Contiene i fori placcati o un contenuto generale del file Excellon."
+
+#: AppTools/ToolRulesCheck.py:232
+msgid "Excellon 2"
+msgstr "Excellon 2"
+
+#: AppTools/ToolRulesCheck.py:234
+msgid ""
+"Excellon object for which to check rules.\n"
+"Holds the non-plated holes."
+msgstr ""
+"Oggetto Excellon per il quale verificare le regole.\n"
+"Contiene i fori non placcati."
+
+#: AppTools/ToolRulesCheck.py:247
+msgid "All Rules"
+msgstr "Tutte le regole"
+
+#: AppTools/ToolRulesCheck.py:249
+msgid "This check/uncheck all the rules below."
+msgstr "Abilita le regole sotto."
+
+#: AppTools/ToolRulesCheck.py:499
+msgid "Run Rules Check"
+msgstr "Esegui controllo regole"
+
+#: AppTools/ToolRulesCheck.py:1158 AppTools/ToolRulesCheck.py:1218
+#: AppTools/ToolRulesCheck.py:1255 AppTools/ToolRulesCheck.py:1327
+#: AppTools/ToolRulesCheck.py:1381 AppTools/ToolRulesCheck.py:1419
+#: AppTools/ToolRulesCheck.py:1484
+msgid "Value is not valid."
+msgstr "Valore non valido."
+
+#: AppTools/ToolRulesCheck.py:1172
+msgid "TOP -> Copper to Copper clearance"
+msgstr "TOP -> distanze rame-rame"
+
+#: AppTools/ToolRulesCheck.py:1183
+msgid "BOTTOM -> Copper to Copper clearance"
+msgstr "BOTTOM -> distanze rame-rame"
+
+#: AppTools/ToolRulesCheck.py:1188 AppTools/ToolRulesCheck.py:1282
+#: AppTools/ToolRulesCheck.py:1446
+msgid ""
+"At least one Gerber object has to be selected for this rule but none is "
+"selected."
+msgstr ""
+"Almeno un oggetto Gerber deve essere selezionato per questa regola ma "
+"nessuno è selezionato."
+
+#: AppTools/ToolRulesCheck.py:1224
+msgid ""
+"One of the copper Gerber objects or the Outline Gerber object is not valid."
+msgstr ""
+"Uno degli oggetti Gerber in rame o l'oggetto Gerber del bordo non è valido."
+
+#: AppTools/ToolRulesCheck.py:1237 AppTools/ToolRulesCheck.py:1401
+msgid ""
+"Outline Gerber object presence is mandatory for this rule but it is not "
+"selected."
+msgstr ""
+"La presenza dell'oggetto Contorno Gerber è obbligatoria per questa regola ma "
+"non è stato selezionato."
+
+#: AppTools/ToolRulesCheck.py:1254 AppTools/ToolRulesCheck.py:1281
+msgid "Silk to Silk clearance"
+msgstr "Distanza tra serigrafie"
+
+#: AppTools/ToolRulesCheck.py:1267
+msgid "TOP -> Silk to Silk clearance"
+msgstr "TOP -> distanza tra serigrafie"
+
+#: AppTools/ToolRulesCheck.py:1277
+msgid "BOTTOM -> Silk to Silk clearance"
+msgstr "BOTTOM -> distanza tra serigrafie"
+
+#: AppTools/ToolRulesCheck.py:1333
+msgid "One or more of the Gerber objects is not valid."
+msgstr "Uno o più oggetti gerber non sono validi."
+
+#: AppTools/ToolRulesCheck.py:1341
+msgid "TOP -> Silk to Solder Mask Clearance"
+msgstr "TOP -> distanza tra serigrafie e Solder Mask"
+
+#: AppTools/ToolRulesCheck.py:1347
+msgid "BOTTOM -> Silk to Solder Mask Clearance"
+msgstr "BOTTOM -> distanza tra serigrafie e Solder Mask"
+
+#: AppTools/ToolRulesCheck.py:1351
+msgid ""
+"Both Silk and Solder Mask Gerber objects has to be either both Top or both "
+"Bottom."
+msgstr ""
+"Sia gli oggetti Silk che quelli Solder Mask Gerber devono essere sia Top che "
+"Bottom."
+
+#: AppTools/ToolRulesCheck.py:1387
+msgid ""
+"One of the Silk Gerber objects or the Outline Gerber object is not valid."
+msgstr "Uno degli oggetti Gerber serigrafia o bordo non è valido."
+
+#: AppTools/ToolRulesCheck.py:1431
+msgid "TOP -> Minimum Solder Mask Sliver"
+msgstr "TOP -> Segmento Minimo solder mask"
+
+#: AppTools/ToolRulesCheck.py:1441
+msgid "BOTTOM -> Minimum Solder Mask Sliver"
+msgstr "BOTTOM -> Segmento Minimo solder mask"
+
+#: AppTools/ToolRulesCheck.py:1490
+msgid "One of the Copper Gerber objects or the Excellon objects is not valid."
+msgstr "Uno degli oggetti Gerber rame o Excellon non è valido."
+
+#: AppTools/ToolRulesCheck.py:1506
+msgid ""
+"Excellon object presence is mandatory for this rule but none is selected."
+msgstr ""
+"La presenza dell'oggetto Excellon è obbligatoria per questa regola ma "
+"nessuna è selezionata."
+
+#: AppTools/ToolRulesCheck.py:1579 AppTools/ToolRulesCheck.py:1592
+#: AppTools/ToolRulesCheck.py:1603 AppTools/ToolRulesCheck.py:1616
+msgid "STATUS"
+msgstr "STATO"
+
+#: AppTools/ToolRulesCheck.py:1582 AppTools/ToolRulesCheck.py:1606
+msgid "FAILED"
+msgstr "FALLITO"
+
+#: AppTools/ToolRulesCheck.py:1595 AppTools/ToolRulesCheck.py:1619
+msgid "PASSED"
+msgstr "PASSATO"
+
+#: AppTools/ToolRulesCheck.py:1596 AppTools/ToolRulesCheck.py:1620
+msgid "Violations: There are no violations for the current rule."
+msgstr "Violazioni: non ci sono violazioni per la regola attuale."
+
+#: AppTools/ToolShell.py:74 AppTools/ToolShell.py:76
+msgid "...processing..."
+msgstr "...elaborazione..."
+
+#: AppTools/ToolSolderPaste.py:37
+msgid "Solder Paste Tool"
+msgstr "Strumento Solder Paste"
+
+#: AppTools/ToolSolderPaste.py:69
+msgid "Gerber Solder paste object. "
+msgstr "Oggetto gerber Solder paste. "
+
+#: AppTools/ToolSolderPaste.py:76
+msgid ""
+"Tools pool from which the algorithm\n"
+"will pick the ones used for dispensing solder paste."
+msgstr ""
+"Set di strumenti da cui l'algoritmo\n"
+"sceglierà quelli usati per l'erogazione della pasta saldante."
+
+#: AppTools/ToolSolderPaste.py:91
+msgid ""
+"This is the Tool Number.\n"
+"The solder dispensing will start with the tool with the biggest \n"
+"diameter, continuing until there are no more Nozzle tools.\n"
+"If there are no longer tools but there are still pads not covered\n"
+" with solder paste, the app will issue a warning message box."
+msgstr ""
+"Questo è il numero dell'utensile.\n"
+"L'erogazione della pasta saldante inizierà con l'utensile di diametro\n"
+"più grande, continuando fino a quando non ci sono più strumenti ugello.\n"
+"Se non ci sono più strumenti ma ci sono ancora pad non coperti\n"
+" da pasta saldante, l'app mostrerà una finestra di avviso."
+
+#: AppTools/ToolSolderPaste.py:98
+msgid ""
+"Nozzle tool Diameter. It's value (in current FlatCAM units)\n"
+"is the width of the solder paste dispensed."
+msgstr ""
+"Diametro dell'ugello. Il suo valore (nelle attuali unità FlatCAM)\n"
+"è la larghezza dell'erogazione della pasta salda."
+
+#: AppTools/ToolSolderPaste.py:105
+msgid "New Nozzle Tool"
+msgstr "Nuovo utensile ugello"
+
+#: AppTools/ToolSolderPaste.py:124
+msgid ""
+"Add a new nozzle tool to the Tool Table\n"
+"with the diameter specified above."
+msgstr ""
+"Aggiungi un nuovo strumento ugello alla tabella degli strumenti\n"
+"con il diametro sopra specificato."
+
+#: AppTools/ToolSolderPaste.py:136
+msgid "Generate solder paste dispensing geometry."
+msgstr "Genera geometria di erogazione della pasta saldante."
+
+#: AppTools/ToolSolderPaste.py:155
+msgid "STEP 1"
+msgstr "PASSO 1"
+
+#: AppTools/ToolSolderPaste.py:157
+msgid ""
+"First step is to select a number of nozzle tools for usage\n"
+"and then optionally modify the GCode parameters below."
+msgstr ""
+"Il primo passo è selezionare un numero di strumenti ugello da usare\n"
+"e quindi (facoltativo) modificare i parametri GCode qui sotto."
+
+#: AppTools/ToolSolderPaste.py:160
+msgid ""
+"Select tools.\n"
+"Modify parameters."
+msgstr ""
+"Seleziona utensile.\n"
+"Modifica parametri."
+
+#: AppTools/ToolSolderPaste.py:280
+msgid ""
+"Feedrate (speed) while moving up vertically\n"
+" to Dispense position (on Z plane)."
+msgstr ""
+"Avanzamento (velocità) durante lo spostamento in verticale\n"
+" alla posizione di dispensa (sul piano Z)."
+
+#: AppTools/ToolSolderPaste.py:350
+msgid ""
+"Generate GCode for Solder Paste dispensing\n"
+"on PCB pads."
+msgstr ""
+"Genera GCode per l'erogazione della pasta saldante\n"
+"sui pad del PCB."
+
+#: AppTools/ToolSolderPaste.py:371
+msgid "STEP 2"
+msgstr "PASSO 2"
+
+#: AppTools/ToolSolderPaste.py:373
+msgid ""
+"Second step is to create a solder paste dispensing\n"
+"geometry out of an Solder Paste Mask Gerber file."
+msgstr ""
+"Il secondo passo è creare una geometria di erogazione\n"
+"di pasta salda da un file Gerber di Solder Masck."
+
+#: AppTools/ToolSolderPaste.py:390
+msgid "Geo Result"
+msgstr "Risultato Geo"
+
+#: AppTools/ToolSolderPaste.py:392
+msgid ""
+"Geometry Solder Paste object.\n"
+"The name of the object has to end in:\n"
+"'_solderpaste' as a protection."
+msgstr ""
+"Oggetto geometria Solder Paste.\n"
+"Il nome dell'oggetto deve terminare con:\n"
+"'_solderpaste' come protezione."
+
+#: AppTools/ToolSolderPaste.py:401
+msgid "STEP 3"
+msgstr "PASSO 3"
+
+#: AppTools/ToolSolderPaste.py:403
+msgid ""
+"Third step is to select a solder paste dispensing geometry,\n"
+"and then generate a CNCJob object.\n"
+"\n"
+"REMEMBER: if you want to create a CNCJob with new parameters,\n"
+"first you need to generate a geometry with those new params,\n"
+"and only after that you can generate an updated CNCJob."
+msgstr ""
+"Il terzo passo è quello di selezionare una geometria di erogazione della "
+"pasta salda,\n"
+"e quindi generare un oggetto CNCJob.\n"
+"\n"
+"RICORDA: se vuoi creare un CNCJob con nuovi parametri,\n"
+"per prima cosa devi generare una geometria con quei nuovi parametri,\n"
+"e solo successivamente puoi generare un CNCJob aggiornato."
+
+#: AppTools/ToolSolderPaste.py:424
+msgid "CNC Result"
+msgstr "Risultato CNC"
+
+#: AppTools/ToolSolderPaste.py:426
+msgid ""
+"CNCJob Solder paste object.\n"
+"In order to enable the GCode save section,\n"
+"the name of the object has to end in:\n"
+"'_solderpaste' as a protection."
+msgstr ""
+"Oggetto CNCJob per pasta saldante.\n"
+"Per abilitare la sezione di salvataggio del GCode,\n"
+"il nome dell'oggetto deve terminare in:\n"
+"'_solderpaste' come protezione."
+
+#: AppTools/ToolSolderPaste.py:436
+msgid "View GCode"
+msgstr "Vedi GCode"
+
+#: AppTools/ToolSolderPaste.py:438
+msgid ""
+"View the generated GCode for Solder Paste dispensing\n"
+"on PCB pads."
+msgstr ""
+"Visualizza il GCode generato per l'erogazione della pasta salda\n"
+"sui pad del PCB."
+
+#: AppTools/ToolSolderPaste.py:448
+msgid "Save GCode"
+msgstr "Salva GCode"
+
+#: AppTools/ToolSolderPaste.py:450
+msgid ""
+"Save the generated GCode for Solder Paste dispensing\n"
+"on PCB pads, to a file."
+msgstr ""
+"Salva il GCode generato per l'erogazione della pasta salda\n"
+"sui pad del PCB in un file."
+
+#: AppTools/ToolSolderPaste.py:460
+msgid "STEP 4"
+msgstr "PASSO 4"
+
+#: AppTools/ToolSolderPaste.py:462
+msgid ""
+"Fourth step (and last) is to select a CNCJob made from \n"
+"a solder paste dispensing geometry, and then view/save it's GCode."
+msgstr ""
+"Il quarto (e ultimo) passo è selezionare un CNCJob creato da una geometria\n"
+"di distribuzione di pasta salda, quindi visualizza/salva il suo GCode."
+
+#: AppTools/ToolSolderPaste.py:922
+msgid "New Nozzle tool added to Tool Table."
+msgstr "Nuovo utensile ugello aggiunto alla tabella."
+
+#: AppTools/ToolSolderPaste.py:965
+msgid "Nozzle tool from Tool Table was edited."
+msgstr "Utensile ugello modificato nella tabella."
+
+#: AppTools/ToolSolderPaste.py:1024
+msgid "Delete failed. Select a Nozzle tool to delete."
+msgstr "Cancellazione fallita. Scegli un utensile ugello da cancellare."
+
+#: AppTools/ToolSolderPaste.py:1030
+msgid "Nozzle tool(s) deleted from Tool Table."
+msgstr "Utensile(i) ugello cancellato(i) dalla tabella."
+
+#: AppTools/ToolSolderPaste.py:1086
+msgid "No SolderPaste mask Gerber object loaded."
+msgstr "Nessun oggetto Gerber SolderPaste mask caricato."
+
+#: AppTools/ToolSolderPaste.py:1104
+msgid "Creating Solder Paste dispensing geometry."
+msgstr "Creazione della geometria di erogazione della pasta per saldatura."
+
+#: AppTools/ToolSolderPaste.py:1117
+msgid "No Nozzle tools in the tool table."
+msgstr "Nessun utensile ugello nella tabella utensili."
+
+#: AppTools/ToolSolderPaste.py:1243
+msgid "Cancelled. Empty file, it has no geometry..."
+msgstr "Annullato. File vuoto, non ha geometrie..."
+
+#: AppTools/ToolSolderPaste.py:1246
+msgid "Solder Paste geometry generated successfully"
+msgstr "Geometria solder paste generata con successo"
+
+#: AppTools/ToolSolderPaste.py:1253
+msgid "Some or all pads have no solder due of inadequate nozzle diameters..."
+msgstr ""
+"Alcuni o tutti i pad non hanno solder a causa di diametri degli ugelli "
+"inadeguati ..."
+
+#: AppTools/ToolSolderPaste.py:1267
+msgid "Generating Solder Paste dispensing geometry..."
+msgstr ""
+"Generazione della geometria di erogazione della pasta per saldatura ..."
+
+#: AppTools/ToolSolderPaste.py:1287
+msgid "There is no Geometry object available."
+msgstr "Non è disponibile alcun oggetto Geometria."
+
+#: AppTools/ToolSolderPaste.py:1292
+msgid "This Geometry can't be processed. NOT a solder_paste_tool geometry."
+msgstr ""
+"Questa geometria non può essere elaborata. NON è una geometria "
+"solder_paste_tool."
+
+#: AppTools/ToolSolderPaste.py:1328
+msgid "An internal error has ocurred. See shell.\n"
+msgstr "Errore interno. Vedi shell.\n"
+
+#: AppTools/ToolSolderPaste.py:1393
+msgid "ToolSolderPaste CNCjob created"
+msgstr "CNCjob ToolSolderPaste creato"
+
+#: AppTools/ToolSolderPaste.py:1412
+msgid "SP GCode Editor"
+msgstr "Editor GCode solder past"
+
+#: AppTools/ToolSolderPaste.py:1424 AppTools/ToolSolderPaste.py:1429
+#: AppTools/ToolSolderPaste.py:1484
+msgid ""
+"This CNCJob object can't be processed. NOT a solder_paste_tool CNCJob object."
+msgstr ""
+"Questo oggetto CNCJob non può essere elaborato. NON è un oggetto CNCJob "
+"solder_paste_tool."
+
+#: AppTools/ToolSolderPaste.py:1454
+msgid "No Gcode in the object"
+msgstr "Nessun GCode nell'oggetto"
+
+#: AppTools/ToolSolderPaste.py:1494
+msgid "Export GCode ..."
+msgstr "Esportazione GCode ..."
+
+#: AppTools/ToolSolderPaste.py:1542
+msgid "Solder paste dispenser GCode file saved to"
+msgstr "File GCode del distributore di pasta per saldatura salvato in"
+
+#: AppTools/ToolSub.py:65
+msgid "Gerber Objects"
+msgstr "Oggetti Gerber"
+
+#: AppTools/ToolSub.py:78
+msgid ""
+"Gerber object from which to subtract\n"
+"the subtractor Gerber object."
+msgstr ""
+"Oggetto Gerber da cui sottrarre\n"
+"l'oggetto Gerber sottraendo."
+
+#: AppTools/ToolSub.py:91 AppTools/ToolSub.py:146
+msgid "Subtractor"
+msgstr "Sottraendo"
+
+#: AppTools/ToolSub.py:93
+msgid ""
+"Gerber object that will be subtracted\n"
+"from the target Gerber object."
+msgstr ""
+"Oggetto Gerber che verrà sottratto\n"
+"dall'oggetto Gerber di destinazione."
+
+#: AppTools/ToolSub.py:100
+msgid "Subtract Gerber"
+msgstr "Sottrai Gerber"
+
+#: AppTools/ToolSub.py:102
+msgid ""
+"Will remove the area occupied by the subtractor\n"
+"Gerber from the Target Gerber.\n"
+"Can be used to remove the overlapping silkscreen\n"
+"over the soldermask."
+msgstr ""
+"Rimuoverà l'area occupata dal Gerber\n"
+"sottrattore dal Gerber Target.\n"
+"Può essere usato per rimuovere la serigrafia\n"
+"sovrapposta al soldermask."
+
+#: AppTools/ToolSub.py:120
+msgid "Geometry Objects"
+msgstr "Oggetto geometria"
+
+#: AppTools/ToolSub.py:133
+msgid ""
+"Geometry object from which to subtract\n"
+"the subtractor Geometry object."
+msgstr ""
+"Oggetto geometria da cui sottrarre\n"
+"l'oggetto Geometria del sottrattore."
+
+#: AppTools/ToolSub.py:148
+msgid ""
+"Geometry object that will be subtracted\n"
+"from the target Geometry object."
+msgstr ""
+"Oggetto Geometria che verrà sottratto\n"
+"dall'oggetto Geometria di destinazione."
+
+#: AppTools/ToolSub.py:156
+msgid ""
+"Checking this will close the paths cut by the Geometry subtractor object."
+msgstr ""
+"Selezionandolo verranno chiusi i percorsi tagliati dall'oggetto geometria "
+"sottrattore."
+
+#: AppTools/ToolSub.py:159
+msgid "Subtract Geometry"
+msgstr "Sottrai geometria"
+
+#: AppTools/ToolSub.py:161
+msgid ""
+"Will remove the area occupied by the subtractor\n"
+"Geometry from the Target Geometry."
+msgstr ""
+"Rimuoverà l'area occupata dalla geometria\n"
+"sottrattore dalla geometria target."
+
+#: AppTools/ToolSub.py:263
+msgid "Sub Tool"
+msgstr "Strumento sottrazione"
+
+#: AppTools/ToolSub.py:284 AppTools/ToolSub.py:489
+msgid "No Target object loaded."
+msgstr "Nessun oggetto target caricato."
+
+#: AppTools/ToolSub.py:287
+msgid "Loading geometry from Gerber objects."
+msgstr "Caricamento della geometria dagli oggetti Gerber."
+
+#: AppTools/ToolSub.py:299 AppTools/ToolSub.py:504
+msgid "No Subtractor object loaded."
+msgstr "Nessun oggetto sottrattore caricato."
+
+#: AppTools/ToolSub.py:331
+msgid "Processing geometry from Subtractor Gerber object."
+msgstr "Elaborazione della geometria dall'oggetto sottrattore Gerber."
+
+#: AppTools/ToolSub.py:352
+msgid "Parsing geometry for aperture"
+msgstr "Analisi della geometria per l'apertura"
+
+#: AppTools/ToolSub.py:413
+msgid "Finished parsing geometry for aperture"
+msgstr "Analisi geometria aperture terminate"
+
+#: AppTools/ToolSub.py:458 AppTools/ToolSub.py:661
+msgid "Generating new object ..."
+msgstr "Generazione nuovo oggetto ..."
+
+#: AppTools/ToolSub.py:462 AppTools/ToolSub.py:665 AppTools/ToolSub.py:746
+msgid "Generating new object failed."
+msgstr "Generazione nuovo oggetto fallita."
+
+#: AppTools/ToolSub.py:467 AppTools/ToolSub.py:671
+msgid "Created"
+msgstr "Creato"
+
+#: AppTools/ToolSub.py:518
+msgid "Currently, the Subtractor geometry cannot be of type Multigeo."
+msgstr ""
+"Attualmente, la geometria del sottrattore non può essere di tipo Multigeo."
+
+#: AppTools/ToolSub.py:563
+msgid "Parsing solid_geometry ..."
+msgstr "Analisi soild_geometry ..."
+
+#: AppTools/ToolSub.py:565
+msgid "Parsing solid_geometry for tool"
+msgstr "Analisi soild_geometry per utensili"
+
+#: AppTools/ToolTransform.py:23
+msgid "Object Transform"
+msgstr "Trasformazione oggetto"
+
+#: AppTools/ToolTransform.py:78
+msgid ""
+"Rotate the selected object(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected objects."
+msgstr ""
+"Ruota gli oggetti selezionati.\n"
+"Il punto di riferimento è il centro del\n"
+"rettangolo di selezione per tutti gli oggetti selezionati."
+
+#: AppTools/ToolTransform.py:99 AppTools/ToolTransform.py:120
+msgid ""
+"Angle for Skew action, in degrees.\n"
+"Float number between -360 and 360."
+msgstr ""
+"Angolo per l'azione di inclinazione, in gradi.\n"
+"Numero float compreso tra -360 e 360."
+
+#: AppTools/ToolTransform.py:109 AppTools/ToolTransform.py:130
+msgid ""
+"Skew/shear the selected object(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected objects."
+msgstr ""
+"Inclina gli oggetti selezionati.\n"
+"Il punto di riferimento è il centro del\n"
+"rettangolo di selezione per tutti gli oggetti selezionati."
+
+#: AppTools/ToolTransform.py:159 AppTools/ToolTransform.py:179
+msgid ""
+"Scale the selected object(s).\n"
+"The point of reference depends on \n"
+"the Scale reference checkbox state."
+msgstr ""
+"Ridimensiona gli oggetti selezionati.\n"
+"Il punto di riferimento dipende\n"
+"dallo stato della casella di controllo Riferimento scala."
+
+#: AppTools/ToolTransform.py:228 AppTools/ToolTransform.py:248
+msgid ""
+"Offset the selected object(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected objects.\n"
+msgstr ""
+"Sposta gli oggetti selezionati.\n"
+"Il punto di riferimento è il centro del\n"
+"rettangolo di selezione per tutti gli oggetti selezionati.\n"
+
+#: AppTools/ToolTransform.py:268 AppTools/ToolTransform.py:273
+msgid "Flip the selected object(s) over the X axis."
+msgstr "Capovolgi gli oggetti selezionati sull'asse X."
+
+#: AppTools/ToolTransform.py:297
+msgid "Ref. Point"
+msgstr "Punto di riferimento"
+
+#: AppTools/ToolTransform.py:348
+msgid ""
+"Create the buffer effect on each geometry,\n"
+"element from the selected object, using the distance."
+msgstr ""
+"Crea l'effetto buffer su ogni geometria,\n"
+"elemento dall'oggetto selezionato, usando la distanza."
+
+#: AppTools/ToolTransform.py:374
+msgid ""
+"Create the buffer effect on each geometry,\n"
+"element from the selected object, using the factor."
+msgstr ""
+"Crea l'effetto buffer su ogni geometria,\n"
+"elemento dall'oggetto selezionato, usando il fattore."
+
+#: AppTools/ToolTransform.py:479
+msgid "Buffer D"
+msgstr "Buffer D"
+
+#: AppTools/ToolTransform.py:480
+msgid "Buffer F"
+msgstr "Buffer F"
+
+#: AppTools/ToolTransform.py:557
+msgid "Rotate transformation can not be done for a value of 0."
+msgstr ""
+"La trasformazione di rotazione non può essere eseguita per un valore pari a "
+"0."
+
+#: AppTools/ToolTransform.py:596 AppTools/ToolTransform.py:619
+msgid "Scale transformation can not be done for a factor of 0 or 1."
+msgstr ""
+"La trasformazione in scala non può essere eseguita per un fattore 0 o 1."
+
+#: AppTools/ToolTransform.py:634 AppTools/ToolTransform.py:644
+msgid "Offset transformation can not be done for a value of 0."
+msgstr ""
+"La trasformazione offset non può essere eseguita per un valore pari a 0."
+
+#: AppTools/ToolTransform.py:676
+msgid "No object selected. Please Select an object to rotate!"
+msgstr "Nessun oggetto selezionato. Seleziona un oggetto da ruotare!"
+
+#: AppTools/ToolTransform.py:702
+msgid "CNCJob objects can't be rotated."
+msgstr "Gli oggetti CNCJob non possono essere ruotati."
+
+#: AppTools/ToolTransform.py:710
+msgid "Rotate done"
+msgstr "Rotazione effettuata"
+
+#: AppTools/ToolTransform.py:713 AppTools/ToolTransform.py:783
+#: AppTools/ToolTransform.py:833 AppTools/ToolTransform.py:887
+#: AppTools/ToolTransform.py:917 AppTools/ToolTransform.py:953
+msgid "Due of"
+msgstr "A causa di"
+
+#: AppTools/ToolTransform.py:713 AppTools/ToolTransform.py:783
+#: AppTools/ToolTransform.py:833 AppTools/ToolTransform.py:887
+#: AppTools/ToolTransform.py:917 AppTools/ToolTransform.py:953
+msgid "action was not executed."
+msgstr "l'azione non è stata eseguita."
+
+#: AppTools/ToolTransform.py:725
+msgid "No object selected. Please Select an object to flip"
+msgstr "Nessun oggetto selezionato. Seleziona un oggetto da capovolgere"
+
+#: AppTools/ToolTransform.py:758
+msgid "CNCJob objects can't be mirrored/flipped."
+msgstr "Gli oggetti CNCJob non possono essere specchiati/capovolti."
+
+#: AppTools/ToolTransform.py:793
+msgid "Skew transformation can not be done for 0, 90 and 180 degrees."
+msgstr ""
+"La trasformazione dell'inclinazione non può essere eseguita per 0, 90 e 180 "
+"gradi."
+
+#: AppTools/ToolTransform.py:798
+msgid "No object selected. Please Select an object to shear/skew!"
+msgstr "Nessun oggetto selezionato. Seleziona un oggetto da inclinare!"
+
+#: AppTools/ToolTransform.py:818
+msgid "CNCJob objects can't be skewed."
+msgstr "Gli oggetti CNCJob non possono essere inclinati."
+
+#: AppTools/ToolTransform.py:830
+msgid "Skew on the"
+msgstr "Inclina su"
+
+#: AppTools/ToolTransform.py:830 AppTools/ToolTransform.py:884
+#: AppTools/ToolTransform.py:914
+msgid "axis done"
+msgstr "asse eseguito"
+
+#: AppTools/ToolTransform.py:844
+msgid "No object selected. Please Select an object to scale!"
+msgstr "Nessun oggetto selezionato. Seleziona un oggetto da ridimensionare!"
+
+#: AppTools/ToolTransform.py:875
+msgid "CNCJob objects can't be scaled."
+msgstr "Gli oggetti CNCJob non possono essere ridimensionati."
+
+#: AppTools/ToolTransform.py:884
+msgid "Scale on the"
+msgstr "Scala su"
+
+#: AppTools/ToolTransform.py:894
+msgid "No object selected. Please Select an object to offset!"
+msgstr "Nessun oggetto selezionato. Seleziona un oggetto da compensare!"
+
+#: AppTools/ToolTransform.py:901
+msgid "CNCJob objects can't be offset."
+msgstr "Gli oggetti CNCJob non possono essere offsettati."
+
+#: AppTools/ToolTransform.py:914
+msgid "Offset on the"
+msgstr "Offset su"
+
+#: AppTools/ToolTransform.py:924
+msgid "No object selected. Please Select an object to buffer!"
+msgstr "Nessun oggetto selezionato. Seleziona un oggetto da bufferizzare!"
+
+#: AppTools/ToolTransform.py:927
+msgid "Applying Buffer"
+msgstr "Applicazione del buffer"
+
+#: AppTools/ToolTransform.py:931
+msgid "CNCJob objects can't be buffered."
+msgstr "Gli oggetti CNCJob non possono essere bufferizzati."
+
+#: AppTools/ToolTransform.py:948
+msgid "Buffer done"
+msgstr "Bugger applicato"
+
+#: AppTranslation.py:104
+msgid "The application will restart."
+msgstr "L'applicazione sarà riavviata."
+
+#: AppTranslation.py:106
+msgid "Are you sure do you want to change the current language to"
+msgstr "Sei sicuro di voler cambiare lingua in"
+
+#: AppTranslation.py:107
+msgid "Apply Language ..."
+msgstr "Applica lingua ..."
+
+#: AppTranslation.py:201 App_Main.py:3047
+msgid ""
+"There are files/objects modified in FlatCAM. \n"
+"Do you want to Save the project?"
+msgstr ""
+"Ci sono files/oggetti modificati in FlatCAM. \n"
+"Vuoi salvare il progetto?"
+
+#: AppTranslation.py:204 App_Main.py:3050 App_Main.py:6334
+msgid "Save changes"
+msgstr "Salva modifiche"
+
+#: App_Main.py:477
msgid "FlatCAM is initializing ..."
msgstr "FlatCAM sta inizializzando ..."
-#: FlatCAMApp.py:638
+#: App_Main.py:620
msgid "Could not find the Language files. The App strings are missing."
msgstr "Impossibile trovare i file della lingua. Mancano le stringhe dell'app."
-#: FlatCAMApp.py:708
+#: App_Main.py:692
msgid ""
"FlatCAM is initializing ...\n"
"Canvas initialization started."
msgstr ""
"FlatCAM sta inizializzando ...\n"
-"Inizializzazione della tela avviata."
+"Inizializzazione della Grafica avviata."
-#: FlatCAMApp.py:728
+#: App_Main.py:712
msgid ""
"FlatCAM is initializing ...\n"
"Canvas initialization started.\n"
"Canvas initialization finished in"
msgstr ""
"FlatCAM sta inizializzando ...\n"
-"Inizializzazione della tela avviata.\n"
-"Inizializzazione della tela completata"
+"Inizializzazione della Grafica avviata.\n"
+"Inizializzazione della Grafica completata"
-#: FlatCAMApp.py:1592 FlatCAMApp.py:7450
+#: App_Main.py:1542 App_Main.py:6445
msgid "New Project - Not saved"
msgstr "Nuovo progetto - Non salvato"
-#: FlatCAMApp.py:1688
+#: App_Main.py:1643
msgid ""
"Found old default preferences files. Please reboot the application to update."
msgstr ""
"Trovati vecchi file delle preferenze predefinite. Riavvia l'applicazione per "
"l'aggiornamento."
-#: FlatCAMApp.py:1739 FlatCAMApp.py:2511 FlatCAMApp.py:2546 FlatCAMApp.py:2593
-#: FlatCAMApp.py:4539 FlatCAMApp.py:7534 FlatCAMApp.py:7571 FlatCAMApp.py:7613
-#: FlatCAMApp.py:7642 FlatCAMApp.py:7683 FlatCAMApp.py:7708 FlatCAMApp.py:7760
-#: FlatCAMApp.py:7795 FlatCAMApp.py:7840 FlatCAMApp.py:7881 FlatCAMApp.py:7922
-#: FlatCAMApp.py:7963 FlatCAMApp.py:8004 FlatCAMApp.py:8048 FlatCAMApp.py:8104
-#: FlatCAMApp.py:8136 FlatCAMApp.py:8168 FlatCAMApp.py:8401 FlatCAMApp.py:8439
-#: FlatCAMApp.py:8482 FlatCAMApp.py:8559 FlatCAMApp.py:8614
-#: FlatCAMBookmark.py:300 FlatCAMBookmark.py:342 FlatCAMDB.py:663
-#: FlatCAMDB.py:709 FlatCAMDB.py:2125 FlatCAMDB.py:2171
-#: flatcamEditors/FlatCAMExcEditor.py:1023
-#: flatcamEditors/FlatCAMExcEditor.py:1091
-#: flatcamEditors/FlatCAMTextEditor.py:223 flatcamGUI/FlatCAMGUI.py:3443
-#: flatcamGUI/FlatCAMGUI.py:3659 flatcamGUI/FlatCAMGUI.py:3874
-#: flatcamObjects/ObjectCollection.py:126 flatcamTools/ToolFilm.py:754
-#: flatcamTools/ToolFilm.py:900 flatcamTools/ToolImage.py:247
-#: flatcamTools/ToolMove.py:269 flatcamTools/ToolPcbWizard.py:301
-#: flatcamTools/ToolPcbWizard.py:324 flatcamTools/ToolQRCode.py:791
-#: flatcamTools/ToolQRCode.py:838
-msgid "Cancelled."
-msgstr "Cancellato."
-
-#: FlatCAMApp.py:1755
+#: App_Main.py:1710
msgid "Open Config file failed."
msgstr "Apri file di configurazione non riuscito."
-#: FlatCAMApp.py:1770
+#: App_Main.py:1725
msgid "Open Script file failed."
msgstr "Apri file di script non riuscito."
-#: FlatCAMApp.py:1796
+#: App_Main.py:1751
msgid "Open Excellon file failed."
msgstr "Apri file Excellon non riuscito."
-#: FlatCAMApp.py:1809
+#: App_Main.py:1764
msgid "Open GCode file failed."
msgstr "Apri file GCode non riuscito."
-#: FlatCAMApp.py:1822
+#: App_Main.py:1777
msgid "Open Gerber file failed."
msgstr "Apri file Gerber non riuscito."
-#: FlatCAMApp.py:2130
-msgid "Select a Geometry, Gerber or Excellon Object to edit."
+#: App_Main.py:2095
+#, fuzzy
+#| msgid "Select a Geometry, Gerber or Excellon Object to edit."
+msgid "Select a Geometry, Gerber, Excellon or CNCJob Object to edit."
msgstr "Seleziona un oggetto Geometry, Gerber o Excellon da modificare."
-#: FlatCAMApp.py:2145
+#: App_Main.py:2110
msgid ""
"Simultaneous editing of tools geometry in a MultiGeo Geometry is not "
"possible.\n"
@@ -114,197 +16842,91 @@ msgstr ""
"MultiGeo non è possibile.\n"
"Modifica solo una geometria alla volta."
-#: FlatCAMApp.py:2203
+#: App_Main.py:2176
msgid "Editor is activated ..."
msgstr "L'editor è attivato ..."
-#: FlatCAMApp.py:2224
+#: App_Main.py:2197
msgid "Do you want to save the edited object?"
msgstr "Vuoi salvare l'oggetto modificato?"
-#: FlatCAMApp.py:2225 flatcamGUI/FlatCAMGUI.py:2288
-msgid "Close Editor"
-msgstr "Chiudi Editor"
-
-#: FlatCAMApp.py:2228 FlatCAMApp.py:3517 FlatCAMApp.py:6084 FlatCAMApp.py:7344
-#: FlatCAMTranslation.py:109 FlatCAMTranslation.py:207
-#: flatcamGUI/FlatCAMGUI.py:2519
-#: flatcamGUI/preferences/PreferencesUIManager.py:1118
-msgid "Yes"
-msgstr "Sì"
-
-#: FlatCAMApp.py:2229 FlatCAMApp.py:3518 FlatCAMApp.py:6085 FlatCAMApp.py:7345
-#: FlatCAMTranslation.py:110 FlatCAMTranslation.py:208
-#: flatcamGUI/FlatCAMGUI.py:2520
-#: flatcamGUI/preferences/PreferencesUIManager.py:1119
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:164
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:150
-#: flatcamTools/ToolNCC.py:182 flatcamTools/ToolPaint.py:166
-msgid "No"
-msgstr "No"
-
-#: FlatCAMApp.py:2230 FlatCAMApp.py:3519 FlatCAMApp.py:4477 FlatCAMApp.py:5102
-#: FlatCAMApp.py:7346 FlatCAMDB.py:128 FlatCAMDB.py:1689
-#: flatcamGUI/FlatCAMGUI.py:1347
-msgid "Cancel"
-msgstr "Cancellare"
-
-#: FlatCAMApp.py:2262
+#: App_Main.py:2235
msgid "Object empty after edit."
msgstr "Oggetto vuoto dopo la modifica."
-#: FlatCAMApp.py:2266 FlatCAMApp.py:2287 FlatCAMApp.py:2309
+#: App_Main.py:2239 App_Main.py:2260 App_Main.py:2282
msgid "Editor exited. Editor content saved."
msgstr "Edito chiuso. Contenuto salvato."
-#: FlatCAMApp.py:2313 FlatCAMApp.py:2336 FlatCAMApp.py:2354
+#: App_Main.py:2286 App_Main.py:2309 App_Main.py:2327
msgid "Select a Gerber, Geometry or Excellon Object to update."
msgstr "Seleziona un oggetto Gerber, Geometry o Excellon da aggiornare."
-#: FlatCAMApp.py:2316
+#: App_Main.py:2289
msgid "is updated, returning to App..."
msgstr "viene aggiornato, tornando all'App ..."
-#: FlatCAMApp.py:2323
+#: App_Main.py:2296
msgid "Editor exited. Editor content was not saved."
msgstr "Editor chiuso. Contenuto non salvato."
-#: FlatCAMApp.py:2503 FlatCAMApp.py:2507
+#: App_Main.py:2422 App_Main.py:2426
msgid "Import FlatCAM Preferences"
msgstr "Importa le preferenze di FlatCAM"
-#: FlatCAMApp.py:2518
+#: App_Main.py:2437
msgid "Imported Defaults from"
msgstr "Predefiniti importati da"
-#: FlatCAMApp.py:2538 FlatCAMApp.py:2543
+#: App_Main.py:2457 App_Main.py:2462
msgid "Export FlatCAM Preferences"
msgstr "Esporta le preferenze di FlatCAM"
-#: FlatCAMApp.py:2557 FlatCAMApp.py:2625
-#: flatcamGUI/preferences/PreferencesUIManager.py:1014
-msgid "Failed to write defaults to file."
-msgstr "Impossibile scrivere le impostazioni predefinite nel file."
-
-#: FlatCAMApp.py:2563
+#: App_Main.py:2482
msgid "Exported preferences to"
msgstr "Preferenze esportate in"
-#: FlatCAMApp.py:2583 FlatCAMApp.py:2588
+#: App_Main.py:2502 App_Main.py:2507
msgid "Save to file"
msgstr "Salvato su file"
-#: FlatCAMApp.py:2601 FlatCAMApp.py:8858 FlatCAMApp.py:8906 FlatCAMApp.py:9031
-#: FlatCAMApp.py:9167 FlatCAMBookmark.py:308 FlatCAMDB.py:671 FlatCAMDB.py:2133
-#: flatcamEditors/FlatCAMTextEditor.py:276 flatcamObjects/FlatCAMCNCJob.py:959
-#: flatcamTools/ToolFilm.py:1031 flatcamTools/ToolFilm.py:1212
-#: flatcamTools/ToolSolderPaste.py:1534
-msgid ""
-"Permission denied, saving not possible.\n"
-"Most likely another app is holding the file open and not accessible."
-msgstr ""
-"Autorizzazione negata, salvataggio impossibile.\n"
-"Molto probabilmente un'altra app tiene il file aperto e non accessibile."
-
-#: FlatCAMApp.py:2612
+#: App_Main.py:2531
msgid "Could not load the file."
msgstr "Impossibile caricare il file."
-#: FlatCAMApp.py:2628
+#: App_Main.py:2547
msgid "Exported file to"
msgstr "File esportato su"
-#: FlatCAMApp.py:2711
+#: App_Main.py:2584
msgid "Failed to open recent files file for writing."
msgstr "Errore durante l'apertura dei file recenti in scrittura."
-#: FlatCAMApp.py:2722
+#: App_Main.py:2595
msgid "Failed to open recent projects file for writing."
msgstr "Errore durante l'apertura dei progetti recenti in scrittura."
-#: FlatCAMApp.py:2805 FlatCAMApp.py:9376 FlatCAMApp.py:9440 FlatCAMApp.py:9571
-#: FlatCAMApp.py:9636 FlatCAMApp.py:10286
-#: flatcamEditors/FlatCAMGrbEditor.py:4364
-#: flatcamObjects/FlatCAMGeometry.py:1697 flatcamParsers/ParseExcellon.py:897
-#: flatcamTools/ToolPcbWizard.py:432
-msgid "An internal error has occurred. See shell.\n"
-msgstr "Errore interno. Vedi shell.\n"
-
-#: FlatCAMApp.py:2806
-#, python-brace-format
-msgid ""
-"Object ({kind}) failed because: {error} \n"
-"\n"
-msgstr ""
-"Oggetto ({kind}) fallito a causa di: {error} \n"
-"\n"
-
-#: FlatCAMApp.py:2821
-msgid "Converting units to "
-msgstr "Converti unità in "
-
-#: FlatCAMApp.py:2930
-msgid "CREATE A NEW FLATCAM TCL SCRIPT"
-msgstr "CREA UN NUOVO SCRIPT TCL FLATCAM"
-
-#: FlatCAMApp.py:2931
-msgid "TCL Tutorial is here"
-msgstr "Qui c'è il tutorial TCL"
-
-#: FlatCAMApp.py:2933
-msgid "FlatCAM commands list"
-msgstr "Lista comandi FlatCAM"
-
-#: FlatCAMApp.py:2934
-msgid ""
-"Type >help< followed by Run Code for a list of FlatCAM Tcl Commands "
-"(displayed in Tcl Shell)."
-msgstr ""
-"Prova >help< seguito dal Run Code per una lista di comandi Tcl FlatCAM "
-"(visualizzati nella shell)."
-
-#: FlatCAMApp.py:2981 FlatCAMApp.py:2987 FlatCAMApp.py:2993 FlatCAMApp.py:2999
-#: FlatCAMApp.py:3005 FlatCAMApp.py:3011
-msgid "created/selected"
-msgstr "creato/selezionato"
-
-#: FlatCAMApp.py:3026 FlatCAMApp.py:5188 flatcamObjects/FlatCAMObj.py:248
-#: flatcamObjects/FlatCAMObj.py:279 flatcamObjects/FlatCAMObj.py:295
-#: flatcamObjects/FlatCAMObj.py:375 flatcamTools/ToolCopperThieving.py:1481
-#: flatcamTools/ToolFiducials.py:809 flatcamTools/ToolMove.py:229
-#: flatcamTools/ToolQRCode.py:728
-msgid "Plotting"
-msgstr "Sto tracciando"
-
-#: FlatCAMApp.py:3089 flatcamGUI/FlatCAMGUI.py:545
-msgid "About FlatCAM"
-msgstr "Informazioni su FlatCAM"
-
-#: FlatCAMApp.py:3115
+#: App_Main.py:2650
msgid "2D Computer-Aided Printed Circuit Board Manufacturing"
msgstr "Creazione Printed Circuit Board 2D Assistito da Computer"
-#: FlatCAMApp.py:3116
+#: App_Main.py:2651
msgid "Development"
msgstr "Sviluppo"
-#: FlatCAMApp.py:3117
+#: App_Main.py:2652
msgid "DOWNLOAD"
msgstr "DOWNLOAD"
-#: FlatCAMApp.py:3118
+#: App_Main.py:2653
msgid "Issue tracker"
msgstr "Flusso problemi"
-#: FlatCAMApp.py:3122 FlatCAMApp.py:3483 flatcamGUI/GUIElements.py:2583
-msgid "Close"
-msgstr "Chiudi"
-
-#: FlatCAMApp.py:3137
+#: App_Main.py:2672
msgid "Licensed under the MIT license"
msgstr "Con licenza MIT"
-#: FlatCAMApp.py:3146
+#: App_Main.py:2681
msgid ""
"Permission is hereby granted, free of charge, to any person obtaining a "
"copy\n"
@@ -357,7 +16979,7 @@ msgstr ""
"OPERAZIONI\n"
"DEL SOFTWARE."
-#: FlatCAMApp.py:3168
+#: App_Main.py:2703
msgid ""
"Some of the icons used are from the following sources:
Icone di oNline Web Fonts"
-#: FlatCAMApp.py:3201
+#: App_Main.py:2736
msgid "Splash"
msgstr "Splash"
-#: FlatCAMApp.py:3207
+#: App_Main.py:2742
msgid "Programmers"
msgstr "Programmatori"
-#: FlatCAMApp.py:3213
+#: App_Main.py:2748
msgid "Translators"
msgstr "Traduttori"
-#: FlatCAMApp.py:3219
+#: App_Main.py:2754
msgid "License"
msgstr "Licenza"
-#: FlatCAMApp.py:3225
+#: App_Main.py:2760
msgid "Attributions"
msgstr "Attribuizioni"
-#: FlatCAMApp.py:3248
+#: App_Main.py:2783
msgid "Programmer"
msgstr "Programmatori"
-#: FlatCAMApp.py:3249
+#: App_Main.py:2784
msgid "Status"
msgstr "Stato"
-#: FlatCAMApp.py:3250 FlatCAMApp.py:3330
+#: App_Main.py:2785 App_Main.py:2865
msgid "E-mail"
msgstr "E-mail"
-#: FlatCAMApp.py:3258
+#: App_Main.py:2788
+#, fuzzy
+#| msgid "Programmer"
+msgid "Program Author"
+msgstr "Programmatori"
+
+#: App_Main.py:2793
msgid "BETA Maintainer >= 2019"
msgstr "Manutenzione BETA >= 2019"
-#: FlatCAMApp.py:3327
+#: App_Main.py:2862
msgid "Language"
msgstr "Lingua"
-#: FlatCAMApp.py:3328
+#: App_Main.py:2863
msgid "Translator"
msgstr "Traduttore"
-#: FlatCAMApp.py:3329
+#: App_Main.py:2864
msgid "Corrections"
msgstr "Correzioni"
-#: FlatCAMApp.py:3454 FlatCAMApp.py:3463 flatcamGUI/FlatCAMGUI.py:527
-msgid "Bookmarks Manager"
-msgstr "Gestore segnalibri"
-
-#: FlatCAMApp.py:3474
+#: App_Main.py:3009
msgid ""
"This entry will resolve to another website if:\n"
"\n"
@@ -445,45 +17069,29 @@ msgstr ""
"Se non riesci ad ottenere informazioni su FlatCAM beta\n"
"usa il link al canale YouTube nel menu Aiuto."
-#: FlatCAMApp.py:3481
+#: App_Main.py:3016
msgid "Alternative website"
msgstr "Sito web alternativo"
-#: FlatCAMApp.py:3507 flatcamGUI/FlatCAMGUI.py:4244
-msgid "Application is saving the project. Please wait ..."
-msgstr "L'applicazione sta salvando il progetto. Attendere ..."
-
-#: FlatCAMApp.py:3512 FlatCAMTranslation.py:202
-msgid ""
-"There are files/objects modified in FlatCAM. \n"
-"Do you want to Save the project?"
-msgstr ""
-"Ci sono files/oggetti modificati in FlatCAM. \n"
-"Vuoi salvare il progetto?"
-
-#: FlatCAMApp.py:3515 FlatCAMApp.py:7342 FlatCAMTranslation.py:205
-msgid "Save changes"
-msgstr "Salva modifiche"
-
-#: FlatCAMApp.py:3777
+#: App_Main.py:3315
msgid "Selected Excellon file extensions registered with FlatCAM."
msgstr "L'estensione file Excellon selezionata è registrata con FlatCAM."
-#: FlatCAMApp.py:3799
+#: App_Main.py:3337
msgid "Selected GCode file extensions registered with FlatCAM."
msgstr "L'estensione file GCode selezionata è registrata con FlatCAM."
-#: FlatCAMApp.py:3821
+#: App_Main.py:3359
msgid "Selected Gerber file extensions registered with FlatCAM."
msgstr "L'estensione file Gerber selezionata è registrata con FlatCAM."
-#: FlatCAMApp.py:4009 FlatCAMApp.py:4068 FlatCAMApp.py:4096
+#: App_Main.py:3547 App_Main.py:3606 App_Main.py:3634
msgid "At least two objects are required for join. Objects currently selected"
msgstr ""
"Per eseguire una unione (join) servono almeno due oggetti. Oggetti "
"attualmente selezionati"
-#: FlatCAMApp.py:4018
+#: App_Main.py:3556
msgid ""
"Failed join. The Geometry objects are of different types.\n"
"At least one is MultiGeo type and the other is SingleGeo type. A possibility "
@@ -499,47 +17107,47 @@ msgstr ""
"potrebbero essere perse e il risultato diverso da quello atteso. \n"
"Controlla il GCODE generato."
-#: FlatCAMApp.py:4030 FlatCAMApp.py:4040
+#: App_Main.py:3568 App_Main.py:3578
msgid "Geometry merging finished"
msgstr "Unione geometrie terminato"
-#: FlatCAMApp.py:4063
+#: App_Main.py:3601
msgid "Failed. Excellon joining works only on Excellon objects."
msgstr "Errore. L'unione Excellon funziona solo con oggetti Excellon."
-#: FlatCAMApp.py:4073
+#: App_Main.py:3611
msgid "Excellon merging finished"
msgstr "Unione Excellon completata"
-#: FlatCAMApp.py:4091
+#: App_Main.py:3629
msgid "Failed. Gerber joining works only on Gerber objects."
msgstr "Errore. Unione Gerber funziona solo con oggetti Gerber."
-#: FlatCAMApp.py:4101
+#: App_Main.py:3639
msgid "Gerber merging finished"
msgstr "Unione Gerber completata"
-#: FlatCAMApp.py:4121 FlatCAMApp.py:4158
+#: App_Main.py:3659 App_Main.py:3696
msgid "Failed. Select a Geometry Object and try again."
msgstr "Errore. Selezionare un oggetto Geometria e riprovare."
-#: FlatCAMApp.py:4125 FlatCAMApp.py:4163
+#: App_Main.py:3663 App_Main.py:3701
msgid "Expected a GeometryObject, got"
msgstr "Era atteso un oggetto geometria, ottenuto"
-#: FlatCAMApp.py:4140
+#: App_Main.py:3678
msgid "A Geometry object was converted to MultiGeo type."
msgstr "Un oggetto Geometria è stato convertito in tipo MultiGeo."
-#: FlatCAMApp.py:4178
+#: App_Main.py:3716
msgid "A Geometry object was converted to SingleGeo type."
msgstr "Un oggetto Geometria è stato convertito in tipo SingleGeo."
-#: FlatCAMApp.py:4471
+#: App_Main.py:3922
msgid "Toggle Units"
msgstr "Camba unità"
-#: FlatCAMApp.py:4473
+#: App_Main.py:3924
msgid ""
"Changing the units of the project\n"
"will scale all objects.\n"
@@ -551,32 +17159,68 @@ msgstr ""
"\n"
"Vuoi continuare?"
-#: FlatCAMApp.py:4476 FlatCAMApp.py:5024 FlatCAMApp.py:5101 FlatCAMApp.py:7727
-#: FlatCAMApp.py:7741 FlatCAMApp.py:8074 FlatCAMApp.py:8084
+#: App_Main.py:3927 App_Main.py:4201 App_Main.py:4278 App_Main.py:6722
+#: App_Main.py:6736 App_Main.py:7069 App_Main.py:7079
msgid "Ok"
msgstr "Ok"
-#: FlatCAMApp.py:4525
+#: App_Main.py:3977
msgid "Converted units to"
msgstr "Unità convertite in"
-#: FlatCAMApp.py:4927
+#: App_Main.py:4019
+#, fuzzy
+#| msgid "All plots enabled."
+msgid "Axis enabled."
+msgstr "Tutte le tracce sono abilitate."
+
+#: App_Main.py:4031
+#, fuzzy
+#| msgid "All plots disabled."
+msgid "Axis disabled."
+msgstr "Tutte le tracce disabilitate."
+
+#: App_Main.py:4039
+#, fuzzy
+#| msgid "Disabled"
+msgid "HUD disabled."
+msgstr "Disabilitato"
+
+#: App_Main.py:4041
+#, fuzzy
+#| msgid "Enabled"
+msgid "HUD enabled."
+msgstr "Abilitato"
+
+#: App_Main.py:4065
+#, fuzzy
+#| msgid "Enabled"
+msgid "Grid enabled."
+msgstr "Abilitato"
+
+#: App_Main.py:4080
+#, fuzzy
+#| msgid "Disabled"
+msgid "Grid disabled."
+msgstr "Disabilitato"
+
+#: App_Main.py:4101
msgid "Detachable Tabs"
msgstr "Tab scollegabili"
-#: FlatCAMApp.py:5013 flatcamTools/ToolNCC.py:932 flatcamTools/ToolNCC.py:1426
-#: flatcamTools/ToolPaint.py:858 flatcamTools/ToolSolderPaste.py:568
-#: flatcamTools/ToolSolderPaste.py:893
-msgid "Please enter a tool diameter with non-zero value, in Float format."
-msgstr ""
-"Inserire il diametro utensile con un valore non zero, in formato float."
+#: App_Main.py:4130
+#, fuzzy
+#| msgid "Workspace Settings"
+msgid "Workspace enabled."
+msgstr "Impostazioni area di lavoro"
-#: FlatCAMApp.py:5017 flatcamTools/ToolNCC.py:936 flatcamTools/ToolPaint.py:862
-#: flatcamTools/ToolSolderPaste.py:572
-msgid "Adding Tool cancelled"
-msgstr "Aggiunta utensile annullata"
+#: App_Main.py:4133
+#, fuzzy
+#| msgid "Workspace Settings"
+msgid "Workspace disabled."
+msgstr "Impostazioni area di lavoro"
-#: FlatCAMApp.py:5020
+#: App_Main.py:4197
msgid ""
"Adding Tool works only when Advanced is checked.\n"
"Go to Preferences -> General - Show Advanced Options."
@@ -584,11 +17228,11 @@ msgstr ""
"Aggiunta utensile funziona solo con le opzioni avanzate.\n"
"Vai su Preferenze -> Generale - Mostra Opzioni Avanzate."
-#: FlatCAMApp.py:5096
+#: App_Main.py:4273
msgid "Delete objects"
msgstr "Cancella oggetti"
-#: FlatCAMApp.py:5099
+#: App_Main.py:4276
msgid ""
"Are you sure you want to permanently delete\n"
"the selected objects?"
@@ -596,145 +17240,84 @@ msgstr ""
"Sei sicuro di voler cancellare permanentemente\n"
"gli oggetti selezionati?"
-#: FlatCAMApp.py:5137
+#: App_Main.py:4314
msgid "Object(s) deleted"
msgstr "Oggetto(i) cancellato(i)"
-#: FlatCAMApp.py:5141 FlatCAMApp.py:5296 flatcamTools/ToolDblSided.py:818
-msgid "Failed. No object(s) selected..."
-msgstr "Errore. Nessun oggetto selezionato..."
-
-#: FlatCAMApp.py:5143
+#: App_Main.py:4324
msgid "Save the work in Editor and try again ..."
msgstr "Salva il lavoro nell'editor e riprova..."
-#: FlatCAMApp.py:5172
+#: App_Main.py:4353
msgid "Object deleted"
msgstr "Oggetto cancellato"
-#: FlatCAMApp.py:5199
+#: App_Main.py:4380
msgid "Click to set the origin ..."
msgstr "Clicca per impostare l'origine ..."
-#: FlatCAMApp.py:5221
+#: App_Main.py:4402
msgid "Setting Origin..."
msgstr "Impostazione Origine..."
-#: FlatCAMApp.py:5234 FlatCAMApp.py:5336
+#: App_Main.py:4415 App_Main.py:4517
msgid "Origin set"
msgstr "Origine impostata"
-#: FlatCAMApp.py:5251
+#: App_Main.py:4432
msgid "Origin coordinates specified but incomplete."
msgstr "Coordinate Origine non complete."
-#: FlatCAMApp.py:5292
+#: App_Main.py:4473
msgid "Moving to Origin..."
msgstr "Spostamento sull'origine..."
-#: FlatCAMApp.py:5373
+#: App_Main.py:4554
msgid "Jump to ..."
msgstr "Salta a ..."
-#: FlatCAMApp.py:5374
+#: App_Main.py:4555
msgid "Enter the coordinates in format X,Y:"
msgstr "Inserire coordinate nel formato X,Y:"
-#: FlatCAMApp.py:5384
+#: App_Main.py:4565
msgid "Wrong coordinates. Enter coordinates in format: X,Y"
msgstr "Coordinate errate. Inserire coordinate nel formato X,Y"
-#: FlatCAMApp.py:5462 FlatCAMApp.py:5611
-#: flatcamEditors/FlatCAMExcEditor.py:3624
-#: flatcamEditors/FlatCAMExcEditor.py:3632
-#: flatcamEditors/FlatCAMGeoEditor.py:4349
-#: flatcamEditors/FlatCAMGeoEditor.py:4363
-#: flatcamEditors/FlatCAMGrbEditor.py:1087
-#: flatcamEditors/FlatCAMGrbEditor.py:1204
-#: flatcamEditors/FlatCAMGrbEditor.py:1490
-#: flatcamEditors/FlatCAMGrbEditor.py:1759
-#: flatcamEditors/FlatCAMGrbEditor.py:4622
-#: flatcamEditors/FlatCAMGrbEditor.py:4637 flatcamGUI/FlatCAMGUI.py:3424
-#: flatcamGUI/FlatCAMGUI.py:3436 flatcamTools/ToolAlignObjects.py:393
-#: flatcamTools/ToolAlignObjects.py:415
-msgid "Done."
-msgstr "Fatto."
-
-#: FlatCAMApp.py:5477 FlatCAMApp.py:7723 FlatCAMApp.py:7818 FlatCAMApp.py:7859
-#: FlatCAMApp.py:7900 FlatCAMApp.py:7941 FlatCAMApp.py:7982 FlatCAMApp.py:8026
-#: FlatCAMApp.py:8070 FlatCAMApp.py:8592 FlatCAMApp.py:8596
-#: flatcamTools/ToolProperties.py:116
-msgid "No object selected."
-msgstr "Nessun oggetto selezionato."
-
-#: FlatCAMApp.py:5496
+#: App_Main.py:4683
msgid "Bottom-Left"
msgstr "Basso-Sinistra"
-#: FlatCAMApp.py:5497 flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:131
-#: flatcamTools/ToolCalibration.py:159
-msgid "Top-Left"
-msgstr "Alto-Sinistra"
-
-#: FlatCAMApp.py:5498 flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:132
-#: flatcamTools/ToolCalibration.py:160
-msgid "Bottom-Right"
-msgstr "Basso-Destra"
-
-#: FlatCAMApp.py:5499
+#: App_Main.py:4686
msgid "Top-Right"
msgstr "Alto-destra"
-#: FlatCAMApp.py:5500 flatcamGUI/ObjectUI.py:2626
-msgid "Center"
-msgstr "Centro"
-
-#: FlatCAMApp.py:5520
+#: App_Main.py:4707
msgid "Locate ..."
msgstr "Individua ..."
-#: FlatCAMApp.py:5778 FlatCAMApp.py:5855
+#: App_Main.py:4970 App_Main.py:5047
msgid "No object is selected. Select an object and try again."
msgstr "Nessun oggetto selezionato. Seleziona un oggetto e riprova."
-#: FlatCAMApp.py:5881
+#: App_Main.py:5073
msgid ""
"Aborting. The current task will be gracefully closed as soon as possible..."
msgstr "Annullamento. Il task attuale sarà chiuso prima possibile..."
-#: FlatCAMApp.py:5887
+#: App_Main.py:5079
msgid "The current task was gracefully closed on user request..."
msgstr "Il task corrente è stato chiuso su richiesta dell'utente..."
-#: FlatCAMApp.py:5915 flatcamGUI/preferences/PreferencesUIManager.py:901
-#: flatcamGUI/preferences/PreferencesUIManager.py:945
-#: flatcamGUI/preferences/PreferencesUIManager.py:966
-#: flatcamGUI/preferences/PreferencesUIManager.py:1071
-msgid "Preferences"
-msgstr "Preferenze"
-
-#: FlatCAMApp.py:5980 FlatCAMApp.py:6008 FlatCAMApp.py:6035 FlatCAMApp.py:6055
-#: FlatCAMDB.py:738 FlatCAMDB.py:913 FlatCAMDB.py:2200 FlatCAMDB.py:2418
-#: flatcamObjects/FlatCAMGeometry.py:862 flatcamTools/ToolNCC.py:3958
-#: flatcamTools/ToolNCC.py:4042 flatcamTools/ToolPaint.py:3548
-#: flatcamTools/ToolPaint.py:3633
-msgid "Tools Database"
-msgstr "Database degli utensili"
-
-#: FlatCAMApp.py:6032
+#: App_Main.py:5224
msgid "Tools in Tools Database edited but not saved."
msgstr "Utensili nel Database Utensili modificati ma non salvati."
-#: FlatCAMApp.py:6059 flatcamTools/ToolNCC.py:3965
-#: flatcamTools/ToolPaint.py:3555
-msgid "Tool from DB added in Tool Table."
-msgstr "Utensile da DB aggiunto alla tabella utensili."
-
-#: FlatCAMApp.py:6061
+#: App_Main.py:5253
msgid "Adding tool from DB is not allowed for this object."
msgstr "Non è permesso aggiungere un untensile dal DB per questo oggetto."
-#: FlatCAMApp.py:6079
+#: App_Main.py:5271
msgid ""
"One or more Tools are edited.\n"
"Do you want to update the Tools Database?"
@@ -742,174 +17325,112 @@ msgstr ""
"Uno o più Utensili modificati.\n"
"Vuoi aggiornare il Database Utensili?"
-#: FlatCAMApp.py:6081
+#: App_Main.py:5273
msgid "Save Tools Database"
msgstr "Salva Database Utensili"
-#: FlatCAMApp.py:6134
+#: App_Main.py:5326
msgid "No object selected to Flip on Y axis."
msgstr "Nessun oggetto selezionato da capovolgere sull'asse Y."
-#: FlatCAMApp.py:6160
+#: App_Main.py:5352
msgid "Flip on Y axis done."
msgstr "Capovolgimento in Y effettuato."
-#: FlatCAMApp.py:6162 FlatCAMApp.py:6210
-#: flatcamEditors/FlatCAMGrbEditor.py:6059
-msgid "Flip action was not executed."
-msgstr "Capovolgimento non eseguito."
-
-#: FlatCAMApp.py:6182
+#: App_Main.py:5374
msgid "No object selected to Flip on X axis."
msgstr "Nessun oggetto selezionato da capovolgere sull'asse X."
-#: FlatCAMApp.py:6208
+#: App_Main.py:5400
msgid "Flip on X axis done."
msgstr "Capovolgimento in X effettuato."
-#: FlatCAMApp.py:6230
+#: App_Main.py:5422
msgid "No object selected to Rotate."
msgstr "Nessun oggetto selezionato da ruotare."
-#: FlatCAMApp.py:6233 FlatCAMApp.py:6286 FlatCAMApp.py:6325
+#: App_Main.py:5425 App_Main.py:5476 App_Main.py:5513
msgid "Transform"
msgstr "Trasforma"
-#: FlatCAMApp.py:6233 FlatCAMApp.py:6286 FlatCAMApp.py:6325
+#: App_Main.py:5425 App_Main.py:5476 App_Main.py:5513
msgid "Enter the Angle value:"
msgstr "Inserire il valore dell'angolo:"
-#: FlatCAMApp.py:6264
+#: App_Main.py:5455
msgid "Rotation done."
msgstr "Rotazione effettuata."
-#: FlatCAMApp.py:6266
+#: App_Main.py:5457
msgid "Rotation movement was not executed."
msgstr "Movimento di rotazione non eseguito."
-#: FlatCAMApp.py:6284
+#: App_Main.py:5474
msgid "No object selected to Skew/Shear on X axis."
msgstr "Nessun oggetto selezionato per deformare/tagliare nell'asse X."
-#: FlatCAMApp.py:6306
+#: App_Main.py:5495
msgid "Skew on X axis done."
msgstr "Deformazione in X applicata."
-#: FlatCAMApp.py:6323
+#: App_Main.py:5511
msgid "No object selected to Skew/Shear on Y axis."
msgstr "Nessun oggetto selezionato per deformare/tagliare nell'asse Y."
-#: FlatCAMApp.py:6345
+#: App_Main.py:5532
msgid "Skew on Y axis done."
msgstr "Deformazione in Y applicata."
-#: FlatCAMApp.py:6496 FlatCAMApp.py:6543 flatcamGUI/FlatCAMGUI.py:503
-#: flatcamGUI/FlatCAMGUI.py:1728
-msgid "Select All"
-msgstr "Seleziona tutto"
-
-#: FlatCAMApp.py:6500 FlatCAMApp.py:6547 flatcamGUI/FlatCAMGUI.py:505
-msgid "Deselect All"
-msgstr "Deseleziona tutto"
-
-#: FlatCAMApp.py:6563
-msgid "All objects are selected."
-msgstr "Tutti gli oggetti sono selezionati."
-
-#: FlatCAMApp.py:6573
-msgid "Objects selection is cleared."
-msgstr "Selezione oggetti svuotata."
-
-#: FlatCAMApp.py:6593 flatcamGUI/FlatCAMGUI.py:1721
-msgid "Grid On/Off"
-msgstr "Griglia On/Off"
-
-#: FlatCAMApp.py:6605 flatcamEditors/FlatCAMGeoEditor.py:939
-#: flatcamEditors/FlatCAMGrbEditor.py:2583
-#: flatcamEditors/FlatCAMGrbEditor.py:5641 flatcamGUI/ObjectUI.py:1595
-#: flatcamTools/ToolDblSided.py:192 flatcamTools/ToolDblSided.py:425
-#: flatcamTools/ToolNCC.py:294 flatcamTools/ToolNCC.py:631
-#: flatcamTools/ToolPaint.py:277 flatcamTools/ToolPaint.py:676
-#: flatcamTools/ToolSolderPaste.py:122 flatcamTools/ToolSolderPaste.py:597
-#: flatcamTools/ToolTransform.py:478
-msgid "Add"
-msgstr "Aggiungi"
-
-#: FlatCAMApp.py:6607 flatcamEditors/FlatCAMGrbEditor.py:2588
-#: flatcamEditors/FlatCAMGrbEditor.py:2736 flatcamGUI/FlatCAMGUI.py:751
-#: flatcamGUI/FlatCAMGUI.py:1074 flatcamGUI/FlatCAMGUI.py:2141
-#: flatcamGUI/FlatCAMGUI.py:2284 flatcamGUI/FlatCAMGUI.py:2777
-#: flatcamGUI/ObjectUI.py:1623 flatcamObjects/FlatCAMGeometry.py:480
-#: flatcamTools/ToolNCC.py:316 flatcamTools/ToolNCC.py:637
-#: flatcamTools/ToolPaint.py:299 flatcamTools/ToolPaint.py:682
-#: flatcamTools/ToolSolderPaste.py:128 flatcamTools/ToolSolderPaste.py:600
-msgid "Delete"
-msgstr "Cancella"
-
-#: FlatCAMApp.py:6623
+#: App_Main.py:5611
msgid "New Grid ..."
msgstr "Nuova griglia ..."
-#: FlatCAMApp.py:6624
+#: App_Main.py:5612
msgid "Enter a Grid Value:"
msgstr "Valore della griglia:"
-#: FlatCAMApp.py:6632 FlatCAMApp.py:6659
+#: App_Main.py:5620 App_Main.py:5644
msgid "Please enter a grid value with non-zero value, in Float format."
msgstr ""
"Inserire il valore della griglia con un valore non zero, in formato float."
-#: FlatCAMApp.py:6638
+#: App_Main.py:5625
msgid "New Grid added"
msgstr "Nuova griglia aggiunta"
-#: FlatCAMApp.py:6641
+#: App_Main.py:5627
msgid "Grid already exists"
msgstr "Griglia già esistente"
-#: FlatCAMApp.py:6644
+#: App_Main.py:5629
msgid "Adding New Grid cancelled"
msgstr "Aggiunta griglia annullata"
-#: FlatCAMApp.py:6666
+#: App_Main.py:5650
msgid " Grid Value does not exist"
msgstr " Valore griglia non esistente"
-#: FlatCAMApp.py:6669
+#: App_Main.py:5652
msgid "Grid Value deleted"
msgstr "Valore griglia cancellato"
-#: FlatCAMApp.py:6672
+#: App_Main.py:5654
msgid "Delete Grid value cancelled"
msgstr "Cancellazione valore griglia annullata"
-#: FlatCAMApp.py:6678
+#: App_Main.py:5660
msgid "Key Shortcut List"
msgstr "Lista tasti Shortcuts"
-#: FlatCAMApp.py:6712
+#: App_Main.py:5694
msgid " No object selected to copy it's name"
msgstr " Nessun oggetto selezionato da cui copiarne il nome"
-#: FlatCAMApp.py:6716
+#: App_Main.py:5698
msgid "Name copied on clipboard ..."
msgstr "Nomi copiati negli appunti ..."
-#: FlatCAMApp.py:6929 flatcamEditors/FlatCAMGrbEditor.py:4554
-msgid "Coordinates copied to clipboard."
-msgstr "Coordinate copiate negli appunti."
-
-#: FlatCAMApp.py:7166 FlatCAMApp.py:7172 FlatCAMApp.py:7178 FlatCAMApp.py:7184
-#: flatcamObjects/ObjectCollection.py:922
-#: flatcamObjects/ObjectCollection.py:928
-#: flatcamObjects/ObjectCollection.py:934
-#: flatcamObjects/ObjectCollection.py:940
-#: flatcamObjects/ObjectCollection.py:946
-#: flatcamObjects/ObjectCollection.py:952
-msgid "selected"
-msgstr "selezionato"
-
-#: FlatCAMApp.py:7339
+#: App_Main.py:6331
msgid ""
"There are files/objects opened in FlatCAM.\n"
"Creating a New project will delete them.\n"
@@ -919,17 +17440,12 @@ msgstr ""
"Creare un nuovo progetto li cancellerà.\n"
"Vuoi salvare il progetto?"
-#: FlatCAMApp.py:7360
+#: App_Main.py:6352
msgid "New Project created"
msgstr "Nuovo progetto creato"
-#: FlatCAMApp.py:7518 FlatCAMApp.py:7522 flatcamGUI/FlatCAMGUI.py:836
-#: flatcamGUI/FlatCAMGUI.py:2544
-msgid "Open Gerber"
-msgstr "Apri Gerber"
-
-#: FlatCAMApp.py:7527 FlatCAMApp.py:7564 FlatCAMApp.py:7606 FlatCAMApp.py:7676
-#: FlatCAMApp.py:8461 FlatCAMApp.py:9674 FlatCAMApp.py:9736
+#: App_Main.py:6522 App_Main.py:6559 App_Main.py:6601 App_Main.py:6671
+#: App_Main.py:7454 App_Main.py:8667 App_Main.py:8729
msgid ""
"Canvas initialization started.\n"
"Canvas initialization finished in"
@@ -937,338 +17453,285 @@ msgstr ""
"Inizializzazione della tela avviata.\n"
"Inizializzazione della tela completata"
-#: FlatCAMApp.py:7529
+#: App_Main.py:6524
msgid "Opening Gerber file."
msgstr "Apertura file Gerber."
-#: FlatCAMApp.py:7556 FlatCAMApp.py:7560 flatcamGUI/FlatCAMGUI.py:838
-#: flatcamGUI/FlatCAMGUI.py:2546
-msgid "Open Excellon"
-msgstr "Apri Excellon"
-
-#: FlatCAMApp.py:7566
+#: App_Main.py:6561
msgid "Opening Excellon file."
msgstr "Apertura file Excellon."
-#: FlatCAMApp.py:7597 FlatCAMApp.py:7601
+#: App_Main.py:6592 App_Main.py:6596
msgid "Open G-Code"
msgstr "Apri G-Code"
-#: FlatCAMApp.py:7608
+#: App_Main.py:6603
msgid "Opening G-Code file."
msgstr "Apertura file G-Code."
-#: FlatCAMApp.py:7631 FlatCAMApp.py:7634 flatcamGUI/FlatCAMGUI.py:1730
-msgid "Open Project"
-msgstr "Apri progetto"
-
-#: FlatCAMApp.py:7667 FlatCAMApp.py:7671
+#: App_Main.py:6662 App_Main.py:6666
msgid "Open HPGL2"
msgstr "Apri HPGL2"
-#: FlatCAMApp.py:7678
+#: App_Main.py:6673
msgid "Opening HPGL2 file."
msgstr "Apertura file HPGL2."
-#: FlatCAMApp.py:7701 FlatCAMApp.py:7704
+#: App_Main.py:6696 App_Main.py:6699
msgid "Open Configuration File"
msgstr "Apri file di configurazione"
-#: FlatCAMApp.py:7724 FlatCAMApp.py:8071
+#: App_Main.py:6719 App_Main.py:7066
msgid "Please Select a Geometry object to export"
msgstr "Selezionare un oggetto geometria da esportare"
-#: FlatCAMApp.py:7738
+#: App_Main.py:6733
msgid "Only Geometry, Gerber and CNCJob objects can be used."
msgstr "Possono essere usati solo geometrie, gerber od oggetti CNCJob."
-#: FlatCAMApp.py:7751 FlatCAMApp.py:7755 flatcamTools/ToolQRCode.py:829
-#: flatcamTools/ToolQRCode.py:833
-msgid "Export SVG"
-msgstr "Esporta SVG"
-
-#: FlatCAMApp.py:7780
+#: App_Main.py:6775
msgid "Data must be a 3D array with last dimension 3 or 4"
msgstr "I dati devono essere una matrice 3D con ultima dimensione pari a 3 o 4"
-#: FlatCAMApp.py:7786 FlatCAMApp.py:7790
+#: App_Main.py:6781 App_Main.py:6785
msgid "Export PNG Image"
msgstr "Esporta immagine PNG"
-#: FlatCAMApp.py:7823 FlatCAMApp.py:8031
+#: App_Main.py:6818 App_Main.py:7026
msgid "Failed. Only Gerber objects can be saved as Gerber files..."
msgstr "Errore. Solo oggetti Gerber possono essere salvati come file Gerber..."
-#: FlatCAMApp.py:7835
+#: App_Main.py:6830
msgid "Save Gerber source file"
msgstr "Salva il file sorgente Gerber"
-#: FlatCAMApp.py:7864
+#: App_Main.py:6859
msgid "Failed. Only Script objects can be saved as TCL Script files..."
msgstr ""
"Errore. Solo oggetti Script possono essere salvati come file Script TCL..."
-#: FlatCAMApp.py:7876
+#: App_Main.py:6871
msgid "Save Script source file"
msgstr "Salva il file sorgente dello Script"
-#: FlatCAMApp.py:7905
+#: App_Main.py:6900
msgid "Failed. Only Document objects can be saved as Document files..."
msgstr ""
"Errore. Solo oggetti Documenti possono essere salvati come file Documenti..."
-#: FlatCAMApp.py:7917
+#: App_Main.py:6912
msgid "Save Document source file"
msgstr "Salva il file di origine del Documento"
-#: FlatCAMApp.py:7946 FlatCAMApp.py:7987 FlatCAMApp.py:8944
+#: App_Main.py:6941 App_Main.py:6982 App_Main.py:7937
msgid "Failed. Only Excellon objects can be saved as Excellon files..."
msgstr ""
"Errore. Solo oggetti Excellon possono essere salvati come file Excellon..."
-#: FlatCAMApp.py:7954 FlatCAMApp.py:7958
+#: App_Main.py:6949 App_Main.py:6953
msgid "Save Excellon source file"
msgstr "Salva il file sorgente di Excellon"
-#: FlatCAMApp.py:7995 FlatCAMApp.py:7999
+#: App_Main.py:6990 App_Main.py:6994
msgid "Export Excellon"
msgstr "Esporta Excellon"
-#: FlatCAMApp.py:8039 FlatCAMApp.py:8043
+#: App_Main.py:7034 App_Main.py:7038
msgid "Export Gerber"
msgstr "Esporta Gerber"
-#: FlatCAMApp.py:8081
+#: App_Main.py:7076
msgid "Only Geometry objects can be used."
msgstr "Possono essere usate solo oggetti Geometrie."
-#: FlatCAMApp.py:8095 FlatCAMApp.py:8099
+#: App_Main.py:7090 App_Main.py:7094
msgid "Export DXF"
msgstr "Esporta DXF"
-#: FlatCAMApp.py:8124 FlatCAMApp.py:8127
+#: App_Main.py:7119 App_Main.py:7122
msgid "Import SVG"
msgstr "Importa SVG"
-#: FlatCAMApp.py:8155 FlatCAMApp.py:8159
+#: App_Main.py:7150 App_Main.py:7154
msgid "Import DXF"
msgstr "Importa DXF"
-#: FlatCAMApp.py:8209
+#: App_Main.py:7204
msgid "Viewing the source code of the selected object."
msgstr "Vedi il codice sorgente dell'oggetto selezionato."
-#: FlatCAMApp.py:8210 flatcamObjects/FlatCAMCNCJob.py:548
-#: flatcamObjects/FlatCAMScript.py:134
-msgid "Loading..."
-msgstr "Caricamento..."
-
-#: FlatCAMApp.py:8216 FlatCAMApp.py:8220
+#: App_Main.py:7211 App_Main.py:7215
msgid "Select an Gerber or Excellon file to view it's source file."
msgstr "Seleziona un Gerber o Ecxcellon per vederne il file sorgente."
-#: FlatCAMApp.py:8234
+#: App_Main.py:7229
msgid "Source Editor"
msgstr "Editor sorgente"
-#: FlatCAMApp.py:8274 FlatCAMApp.py:8281
+#: App_Main.py:7269 App_Main.py:7276
msgid "There is no selected object for which to see it's source file code."
msgstr "Nessun oggetto di cui vedere il file sorgente."
-#: FlatCAMApp.py:8293
+#: App_Main.py:7288
msgid "Failed to load the source code for the selected object"
msgstr "Errore durante l'apertura del file sorgente per l'oggetto selezionato"
-#: FlatCAMApp.py:8307 flatcamObjects/FlatCAMCNCJob.py:562
-msgid "Code Editor"
-msgstr "Editor del codice"
-
-#: FlatCAMApp.py:8329
+#: App_Main.py:7324
msgid "Go to Line ..."
msgstr "Vai alla Riga ..."
-#: FlatCAMApp.py:8330
+#: App_Main.py:7325
msgid "Line:"
msgstr "Riga:"
-#: FlatCAMApp.py:8359
+#: App_Main.py:7352
msgid "New TCL script file created in Code Editor."
msgstr "Nuovo Script TCL creato nell'edito di codice."
-#: FlatCAMApp.py:8395 FlatCAMApp.py:8397 FlatCAMApp.py:8433 FlatCAMApp.py:8435
+#: App_Main.py:7388 App_Main.py:7390 App_Main.py:7426 App_Main.py:7428
msgid "Open TCL script"
msgstr "Apri Script TCL"
-#: FlatCAMApp.py:8463
+#: App_Main.py:7456
msgid "Executing ScriptObject file."
msgstr "Esecuzione file oggetto Script."
-#: FlatCAMApp.py:8471 FlatCAMApp.py:8474
+#: App_Main.py:7464 App_Main.py:7467
msgid "Run TCL script"
msgstr "Esegui Script TCL"
-#: FlatCAMApp.py:8497
+#: App_Main.py:7490
msgid "TCL script file opened in Code Editor and executed."
msgstr "Fil script TCL aperto nell'edito ed eseguito."
-#: FlatCAMApp.py:8548 FlatCAMApp.py:8554
+#: App_Main.py:7541 App_Main.py:7547
msgid "Save Project As ..."
msgstr "Salva progetto come ..."
-#: FlatCAMApp.py:8550 flatcamGUI/FlatCAMGUI.py:1134
-#: flatcamGUI/FlatCAMGUI.py:2176
-msgid "Project"
-msgstr "Progetto"
-
-#: FlatCAMApp.py:8589
+#: App_Main.py:7582
msgid "FlatCAM objects print"
msgstr "Stampa oggetto FlatCAM"
-#: FlatCAMApp.py:8602 FlatCAMApp.py:8609
+#: App_Main.py:7595 App_Main.py:7602
msgid "Save Object as PDF ..."
msgstr "Salva oggetto come PDF ..."
-#: FlatCAMApp.py:8618
+#: App_Main.py:7611
msgid "Printing PDF ... Please wait."
msgstr "Stampa PDF ... Attendere."
-#: FlatCAMApp.py:8797
+#: App_Main.py:7790
msgid "PDF file saved to"
msgstr "File PDF salvato in"
-#: FlatCAMApp.py:8822
+#: App_Main.py:7815
msgid "Exporting SVG"
msgstr "Esportazione SVG"
-#: FlatCAMApp.py:8865
+#: App_Main.py:7858
msgid "SVG file exported to"
msgstr "File SVG esportato in"
-#: FlatCAMApp.py:8891
+#: App_Main.py:7884
msgid ""
"Save cancelled because source file is empty. Try to export the Gerber file."
msgstr ""
"Salvataggio annullato a causa di sorgenti vuoti. Provare ad esportare i file "
"Gerber."
-#: FlatCAMApp.py:9038
+#: App_Main.py:8031
msgid "Excellon file exported to"
msgstr "File Excellon esportato in"
-#: FlatCAMApp.py:9047
+#: App_Main.py:8040
msgid "Exporting Excellon"
msgstr "Esportazione Excellon"
-#: FlatCAMApp.py:9052 FlatCAMApp.py:9059
+#: App_Main.py:8045 App_Main.py:8052
msgid "Could not export Excellon file."
msgstr "Impossibile esportare file Excellon."
-#: FlatCAMApp.py:9174
+#: App_Main.py:8167
msgid "Gerber file exported to"
msgstr "File Gerber esportato in"
-#: FlatCAMApp.py:9182
+#: App_Main.py:8175
msgid "Exporting Gerber"
msgstr "Esportazione Gerber"
-#: FlatCAMApp.py:9187 FlatCAMApp.py:9194
+#: App_Main.py:8180 App_Main.py:8187
msgid "Could not export Gerber file."
msgstr "Impossibile esportare file Gerber."
-#: FlatCAMApp.py:9229
+#: App_Main.py:8222
msgid "DXF file exported to"
msgstr "File DXF esportato in"
-#: FlatCAMApp.py:9235
+#: App_Main.py:8228
msgid "Exporting DXF"
msgstr "Esportazione DXF"
-#: FlatCAMApp.py:9240 FlatCAMApp.py:9247
+#: App_Main.py:8233 App_Main.py:8240
msgid "Could not export DXF file."
msgstr "Impossibile esportare file DXF."
-#: FlatCAMApp.py:9271 FlatCAMApp.py:9318 flatcamTools/ToolImage.py:277
-msgid ""
-"Not supported type is picked as parameter. Only Geometry and Gerber are "
-"supported"
-msgstr "Parametro non supportato. Utilizzare solo Geometrie o Gerber"
-
-#: FlatCAMApp.py:9281
+#: App_Main.py:8274
msgid "Importing SVG"
msgstr "Importazione SVG"
-#: FlatCAMApp.py:9289 FlatCAMApp.py:9335
+#: App_Main.py:8282 App_Main.py:8328
msgid "Import failed."
msgstr "Importazione fallita."
-#: FlatCAMApp.py:9296 FlatCAMApp.py:9342 FlatCAMApp.py:9406 FlatCAMApp.py:9473
-#: FlatCAMApp.py:9539 FlatCAMApp.py:9604 FlatCAMApp.py:9661
-#: flatcamTools/ToolImage.py:297 flatcamTools/ToolPDF.py:225
-msgid "Opened"
-msgstr "Aperto"
-
-#: FlatCAMApp.py:9327
+#: App_Main.py:8320
msgid "Importing DXF"
msgstr "Importazione DXF"
-#: FlatCAMApp.py:9368 FlatCAMApp.py:9563 FlatCAMApp.py:9628
+#: App_Main.py:8361 App_Main.py:8556 App_Main.py:8621
msgid "Failed to open file"
msgstr "Errore nell'apertura file"
-#: FlatCAMApp.py:9371 FlatCAMApp.py:9566 FlatCAMApp.py:9631
+#: App_Main.py:8364 App_Main.py:8559 App_Main.py:8624
msgid "Failed to parse file"
msgstr "Errore nell'analisi del file"
-#: FlatCAMApp.py:9383
+#: App_Main.py:8376
msgid "Object is not Gerber file or empty. Aborting object creation."
msgstr "L'oggetto non è Gerber o è vuoto. Annullo creazione oggetto."
-#: FlatCAMApp.py:9388
+#: App_Main.py:8381
msgid "Opening Gerber"
msgstr "Apertura Gerber"
-#: FlatCAMApp.py:9399
+#: App_Main.py:8392
msgid "Open Gerber failed. Probable not a Gerber file."
msgstr "Apertura Gerber fallita. Forse non è un file Gerber."
-#: FlatCAMApp.py:9431 flatcamTools/ToolPcbWizard.py:424
-msgid "This is not Excellon file."
-msgstr "Non è un file Excellon."
-
-#: FlatCAMApp.py:9435
+#: App_Main.py:8428
msgid "Cannot open file"
msgstr "Impossibile aprire il file"
-#: FlatCAMApp.py:9453 flatcamTools/ToolPDF.py:275
-#: flatcamTools/ToolPcbWizard.py:445
-msgid "No geometry found in file"
-msgstr "Nessuna geometria trovata nel file"
-
-#: FlatCAMApp.py:9456
+#: App_Main.py:8449
msgid "Opening Excellon."
msgstr "Apertura Excellon."
-#: FlatCAMApp.py:9466
+#: App_Main.py:8459
msgid "Open Excellon file failed. Probable not an Excellon file."
msgstr "Apertura Excellon fallita. Forse non è un file Excellon."
-#: FlatCAMApp.py:9498
+#: App_Main.py:8491
msgid "Reading GCode file"
msgstr "Lettura file GCode"
-#: FlatCAMApp.py:9504
-msgid "Failed to open"
-msgstr "Errore di apertura"
-
-#: FlatCAMApp.py:9511
+#: App_Main.py:8504
msgid "This is not GCODE"
msgstr "Non è G-CODE"
-#: FlatCAMApp.py:9516
+#: App_Main.py:8509
msgid "Opening G-Code."
msgstr "Apertura G-Code."
-#: FlatCAMApp.py:9529
+#: App_Main.py:8522
msgid ""
"Failed to create CNCJob Object. Probable not a GCode file. Try to load it "
"from File menu.\n"
@@ -1280,122 +17743,128 @@ msgstr ""
" Tentativo di creazione di oggetto FlatCAM CNCJob da file G-Code fallito "
"durante l'analisi"
-#: FlatCAMApp.py:9585
+#: App_Main.py:8578
msgid "Object is not HPGL2 file or empty. Aborting object creation."
msgstr "L'oggetto non è un file HPGL2 o è vuoto. Annullo creazione oggetto."
-#: FlatCAMApp.py:9590
+#: App_Main.py:8583
msgid "Opening HPGL2"
msgstr "Apertura HPGL2"
-#: FlatCAMApp.py:9597
+#: App_Main.py:8590
msgid " Open HPGL2 failed. Probable not a HPGL2 file."
msgstr " Apertura HPGL2 fallita. Forse non è un file HPGL2."
-#: FlatCAMApp.py:9623
+#: App_Main.py:8616
msgid "TCL script file opened in Code Editor."
msgstr "Script TCL aperto nell'editor."
-#: FlatCAMApp.py:9643
+#: App_Main.py:8636
msgid "Opening TCL Script..."
msgstr "Apertura Script TCL..."
-#: FlatCAMApp.py:9654
+#: App_Main.py:8647
msgid "Failed to open TCL Script."
msgstr "Errore nell'apertura dello Script TCL."
-#: FlatCAMApp.py:9676
+#: App_Main.py:8669
msgid "Opening FlatCAM Config file."
msgstr "Apertura file di configurazione FlatCAM."
-#: FlatCAMApp.py:9704
+#: App_Main.py:8697
msgid "Failed to open config file"
msgstr "Errore nell'apertura sel file di configurazione"
-#: FlatCAMApp.py:9733
+#: App_Main.py:8726
msgid "Loading Project ... Please Wait ..."
msgstr "Apertura progetto … Attendere ..."
-#: FlatCAMApp.py:9738
+#: App_Main.py:8731
msgid "Opening FlatCAM Project file."
msgstr "Apertura file progetto FlatCAM."
-#: FlatCAMApp.py:9753 FlatCAMApp.py:9757 FlatCAMApp.py:9774
+#: App_Main.py:8746 App_Main.py:8750 App_Main.py:8767
msgid "Failed to open project file"
msgstr "Errore nell'apertura file progetto"
-#: FlatCAMApp.py:9811
+#: App_Main.py:8804
msgid "Loading Project ... restoring"
msgstr "Apertura progetto … ripristino"
-#: FlatCAMApp.py:9821
+#: App_Main.py:8814
msgid "Project loaded from"
msgstr "Progetto caricato da"
-#: FlatCAMApp.py:9845
+#: App_Main.py:8840
msgid "Redrawing all objects"
msgstr "Ridisegno tutti gli oggetti"
-#: FlatCAMApp.py:9933
+#: App_Main.py:8928
msgid "Failed to load recent item list."
msgstr "Errore nel caricamento della lista dei file recenti."
-#: FlatCAMApp.py:9940
+#: App_Main.py:8935
msgid "Failed to parse recent item list."
msgstr "Errore nell'analisi della lista dei file recenti."
-#: FlatCAMApp.py:9950
+#: App_Main.py:8945
msgid "Failed to load recent projects item list."
msgstr "Errore nel caricamento della lista dei progetti recenti."
-#: FlatCAMApp.py:9957
+#: App_Main.py:8952
msgid "Failed to parse recent project item list."
msgstr "Errore nell'analisi della lista dei progetti recenti."
-#: FlatCAMApp.py:10018
+#: App_Main.py:9013
msgid "Clear Recent projects"
msgstr "Azzera lista progetti recenti"
-#: FlatCAMApp.py:10042
+#: App_Main.py:9037
msgid "Clear Recent files"
msgstr "Azzera lista file recenti"
-#: FlatCAMApp.py:10064 flatcamGUI/FlatCAMGUI.py:1363
-msgid "Shortcut Key List"
-msgstr "Elenco tasti scorciatoia"
-
-#: FlatCAMApp.py:10144
+#: App_Main.py:9139
msgid "Selected Tab - Choose an Item from Project Tab"
msgstr "Tab selezionato - Scegli una voce dal Tab Progetti"
-#: FlatCAMApp.py:10145
+#: App_Main.py:9140
msgid "Details"
msgstr "Dettagli"
-#: FlatCAMApp.py:10147
+#: App_Main.py:9142
msgid "The normal flow when working in FlatCAM is the following:"
msgstr "Il flusso normale lavorando con FlatCAM è il seguente:"
-#: FlatCAMApp.py:10148
+#: App_Main.py:9143
+#, fuzzy
+#| msgid ""
+#| "Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into "
+#| "FlatCAM using either the toolbars, key shortcuts or even dragging and "
+#| "dropping the files on the GUI."
msgid ""
"Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into "
"FlatCAM using either the toolbars, key shortcuts or even dragging and "
-"dropping the files on the GUI."
+"dropping the files on the AppGUI."
msgstr ""
"Carica/importa Gerber, Excellon, Gcode, DXF, Immagini Raster o SVG in "
"FlatCAM usando la toolbars, tasti scorciatoia o con drag & drop dei file "
"nella GUI."
-#: FlatCAMApp.py:10151
+#: App_Main.py:9146
+#, fuzzy
+#| msgid ""
+#| "You can also load a FlatCAM project by double clicking on the project "
+#| "file, drag and drop of the file into the FLATCAM GUI or through the menu "
+#| "(or toolbar) actions offered within the app."
msgid ""
"You can also load a FlatCAM project by double clicking on the project file, "
-"drag and drop of the file into the FLATCAM GUI or through the menu (or "
+"drag and drop of the file into the FLATCAM AppGUI or through the menu (or "
"toolbar) actions offered within the app."
msgstr ""
"Puoi anche caricare un progetto FlatCAM con un doppio click sul file "
"progetto, drag & drop del file nella GUI di FLATCAM o dal menu (o toolbar)."
-#: FlatCAMApp.py:10154
+#: App_Main.py:9149
msgid ""
"Once an object is available in the Project Tab, by selecting it and then "
"focusing on SELECTED TAB (more simpler is to double click the object name in "
@@ -1408,7 +17877,7 @@ msgstr ""
"con le proprietà dell'oggetto a seconda del suo tipo: Gerber, Excellon, "
"Geometria od oggetto CNCJob."
-#: FlatCAMApp.py:10158
+#: App_Main.py:9153
msgid ""
"If the selection of the object is done on the canvas by single click "
"instead, and the SELECTED TAB is in focus, again the object properties will "
@@ -1421,13 +17890,13 @@ msgstr ""
"Selezionata. In alternativa, con un doppio click sull'oggetto la TAB "
"SELEZIONATA si riempirà anche se non era focalizzata."
-#: FlatCAMApp.py:10162
+#: App_Main.py:9157
msgid ""
"You can change the parameters in this screen and the flow direction is like "
"this:"
msgstr "Puoi cambiare i parametri in questa schermata e le istruzioni così:"
-#: FlatCAMApp.py:10163
+#: App_Main.py:9158
msgid ""
"Gerber/Excellon Object --> Change Parameter --> Generate Geometry --> "
"Geometry Object --> Add tools (change param in Selected Tab) --> Generate "
@@ -1440,7 +17909,7 @@ msgstr ""
"Modifica Codice CNC) e/o aggiungi in coda o in testa al GCode (di nuovo, "
"fatto in TAB SELEZIONATA) --> Salva GCode."
-#: FlatCAMApp.py:10167
+#: App_Main.py:9162
msgid ""
"A list of key shortcuts is available through an menu entry in Help --> "
"Shortcuts List or through its own key shortcut: F3."
@@ -1448,32 +17917,32 @@ msgstr ""
"Una lista di tasti scorciatoia è disponibile in un menu dell'Aiuto --> Lista "
"Scorciatoie o tramite la sua stessa scorciatoia: F3."
-#: FlatCAMApp.py:10231
+#: App_Main.py:9226
msgid "Failed checking for latest version. Could not connect."
msgstr ""
"Errore durante il controllo dell'ultima versione. Impossibile connettersi."
-#: FlatCAMApp.py:10238
+#: App_Main.py:9233
msgid "Could not parse information about latest version."
msgstr "Impossibile elaborare le info sull'ultima versione."
-#: FlatCAMApp.py:10248
+#: App_Main.py:9243
msgid "FlatCAM is up to date!"
msgstr "FlatCAM è aggiornato!"
-#: FlatCAMApp.py:10253
+#: App_Main.py:9248
msgid "Newer Version Available"
msgstr "E' disponibile una nuova versione"
-#: FlatCAMApp.py:10255
+#: App_Main.py:9250
msgid "There is a newer version of FlatCAM available for download:"
msgstr "E' disponibile una nuova versione di FlatCAM per il download:"
-#: FlatCAMApp.py:10259
+#: App_Main.py:9254
msgid "info"
msgstr "informazioni"
-#: FlatCAMApp.py:10287
+#: App_Main.py:9282
msgid ""
"OpenGL canvas initialization failed. HW or HW configuration not supported."
"Change the graphic engine to Legacy(2D) in Edit -> Preferences -> General "
@@ -1485,129 +17954,75 @@ msgstr ""
"Preferenze -> Generale.\n"
"\n"
-#: FlatCAMApp.py:10366
+#: App_Main.py:9360
msgid "All plots disabled."
msgstr "Tutte le tracce disabilitate."
-#: FlatCAMApp.py:10373
+#: App_Main.py:9367
msgid "All non selected plots disabled."
msgstr "Tutte le tracce non selezionate sono disabilitate."
-#: FlatCAMApp.py:10380
+#: App_Main.py:9374
msgid "All plots enabled."
msgstr "Tutte le tracce sono abilitate."
-#: FlatCAMApp.py:10386
+#: App_Main.py:9380
msgid "Selected plots enabled..."
msgstr "Tracce selezionate attive..."
-#: FlatCAMApp.py:10394
+#: App_Main.py:9388
msgid "Selected plots disabled..."
msgstr "Tracce selezionate disattive..."
-#: FlatCAMApp.py:10427
+#: App_Main.py:9421
msgid "Enabling plots ..."
msgstr "Abilitazione tracce ..."
-#: FlatCAMApp.py:10479
+#: App_Main.py:9470
msgid "Disabling plots ..."
msgstr "Disabilitazione tracce ..."
-#: FlatCAMApp.py:10502
+#: App_Main.py:9493
msgid "Working ..."
msgstr "Elaborazione ..."
-#: FlatCAMApp.py:10557 flatcamGUI/FlatCAMGUI.py:703
-msgid "Red"
-msgstr "Rosso"
-
-#: FlatCAMApp.py:10559 flatcamGUI/FlatCAMGUI.py:706
-msgid "Blue"
-msgstr "Blu"
-
-#: FlatCAMApp.py:10562 flatcamGUI/FlatCAMGUI.py:709
-msgid "Yellow"
-msgstr "Giallo"
-
-#: FlatCAMApp.py:10564 flatcamGUI/FlatCAMGUI.py:712
-msgid "Green"
-msgstr "Verde"
-
-#: FlatCAMApp.py:10566 flatcamGUI/FlatCAMGUI.py:715
-msgid "Purple"
-msgstr "Porpora"
-
-#: FlatCAMApp.py:10568 flatcamGUI/FlatCAMGUI.py:718
-msgid "Brown"
-msgstr "Marrone"
-
-#: FlatCAMApp.py:10570 FlatCAMApp.py:10626 flatcamGUI/FlatCAMGUI.py:721
-msgid "White"
-msgstr "Bianco"
-
-#: FlatCAMApp.py:10572 flatcamGUI/FlatCAMGUI.py:724
-msgid "Black"
-msgstr "Nero"
-
-#: FlatCAMApp.py:10575 flatcamGUI/FlatCAMGUI.py:729
-msgid "Custom"
-msgstr "Personalizzato"
-
-#: FlatCAMApp.py:10585 flatcamGUI/FlatCAMGUI.py:737
-msgid "Default"
-msgstr "Valori di default"
-
-#: FlatCAMApp.py:10609 flatcamGUI/FlatCAMGUI.py:734
-msgid "Opacity"
-msgstr "Trasparenza"
-
-#: FlatCAMApp.py:10611
+#: App_Main.py:9602
msgid "Set alpha level ..."
msgstr "Imposta livello alfa ..."
-#: FlatCAMApp.py:10611
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:220
-#: flatcamTools/ToolExtractDrills.py:164 flatcamTools/ToolExtractDrills.py:285
-#: flatcamTools/ToolPunchGerber.py:192 flatcamTools/ToolPunchGerber.py:308
-#: flatcamTools/ToolTransform.py:357
-msgid "Value"
-msgstr "Valore"
-
-#: FlatCAMApp.py:10665
+#: App_Main.py:9656
msgid "Saving FlatCAM Project"
msgstr "Salva progetto FlatCAM"
-#: FlatCAMApp.py:10686 FlatCAMApp.py:10722
+#: App_Main.py:9677 App_Main.py:9713
msgid "Project saved to"
msgstr "Progetto salvato in"
-#: FlatCAMApp.py:10693
+#: App_Main.py:9684
msgid "The object is used by another application."
msgstr "L'oggetto è usato da un'altra applicazione."
-#: FlatCAMApp.py:10707
+#: App_Main.py:9698
msgid "Failed to verify project file"
msgstr "Errore durante l'analisi del file progetto"
-#: FlatCAMApp.py:10707 FlatCAMApp.py:10715 FlatCAMApp.py:10725
+#: App_Main.py:9698 App_Main.py:9706 App_Main.py:9716
msgid "Retry to save it."
msgstr "Ritenta il salvataggio."
-#: FlatCAMApp.py:10715 FlatCAMApp.py:10725
+#: App_Main.py:9706 App_Main.py:9716
msgid "Failed to parse saved project file"
msgstr "Errore nell'analisi del progetto salvato"
-#: FlatCAMBookmark.py:57 FlatCAMBookmark.py:84
+#: Bookmark.py:57 Bookmark.py:84
msgid "Title"
msgstr "Titolo"
-#: FlatCAMBookmark.py:58 FlatCAMBookmark.py:88
+#: Bookmark.py:58 Bookmark.py:88
msgid "Web Link"
msgstr "Collegamento web"
-#: FlatCAMBookmark.py:62
+#: Bookmark.py:62
msgid ""
"Index.\n"
"The rows in gray color will populate the Bookmarks menu.\n"
@@ -1617,7 +18032,7 @@ msgstr ""
"Le colonne in grigio compileranno il menu Segnalibri.\n"
"Il numero di colonne in grigio è impostato in Preferenze."
-#: FlatCAMBookmark.py:66
+#: Bookmark.py:66
msgid ""
"Description of the link that is set as an menu action.\n"
"Try to keep it short because it is installed as a menu item."
@@ -1625,1086 +18040,181 @@ msgstr ""
"Descrizione del collegamento impostato come azione menu.\n"
"Tienila corta perchè apparirà come voce del menu."
-#: FlatCAMBookmark.py:69
+#: Bookmark.py:69
msgid "Web Link. E.g: https://your_website.org "
msgstr "Collegamento web. Es: https://il_tuo_sito_web.org "
-#: FlatCAMBookmark.py:78
+#: Bookmark.py:78
msgid "New Bookmark"
msgstr "Nuovo segnalibro"
-#: FlatCAMBookmark.py:97
+#: Bookmark.py:97
msgid "Add Entry"
msgstr "Aggiungi voce"
-#: FlatCAMBookmark.py:98
+#: Bookmark.py:98
msgid "Remove Entry"
msgstr "Rimuovi voce"
-#: FlatCAMBookmark.py:99
+#: Bookmark.py:99
msgid "Export List"
msgstr "Esporta lista"
-#: FlatCAMBookmark.py:100
+#: Bookmark.py:100
msgid "Import List"
msgstr "Importa lista"
-#: FlatCAMBookmark.py:190
+#: Bookmark.py:190
msgid "Title entry is empty."
msgstr "Il campo titolo è vuoto."
-#: FlatCAMBookmark.py:199
+#: Bookmark.py:199
msgid "Web link entry is empty."
msgstr "Il campo \"collegamento web\" è vuoto."
-#: FlatCAMBookmark.py:207
+#: Bookmark.py:207
msgid "Either the Title or the Weblink already in the table."
msgstr "Il titolo o il link sono già presenti nella tabella."
-#: FlatCAMBookmark.py:227
+#: Bookmark.py:227
msgid "Bookmark added."
msgstr "Segnalibro aggiunto."
-#: FlatCAMBookmark.py:244
+#: Bookmark.py:244
msgid "This bookmark can not be removed"
msgstr "Questo segnalibro non può essere rimosso"
-#: FlatCAMBookmark.py:275
+#: Bookmark.py:275
msgid "Bookmark removed."
msgstr "Segnalibro rimosso."
-#: FlatCAMBookmark.py:290
+#: Bookmark.py:290
msgid "Export FlatCAM Bookmarks"
msgstr "Esporta i segnalibri di FlatCAM"
-#: FlatCAMBookmark.py:293 flatcamGUI/FlatCAMGUI.py:524
-msgid "Bookmarks"
-msgstr "Segnalibri"
-
-#: FlatCAMBookmark.py:319 FlatCAMBookmark.py:349
+#: Bookmark.py:319 Bookmark.py:349
msgid "Could not load bookmarks file."
msgstr "Impossibile caricare il file dei segnalibri."
-#: FlatCAMBookmark.py:329
+#: Bookmark.py:329
msgid "Failed to write bookmarks to file."
msgstr "Impossibile salvare il file dei segnalibri."
-#: FlatCAMBookmark.py:331
+#: Bookmark.py:331
msgid "Exported bookmarks to"
msgstr "Segnalibri esportati in"
-#: FlatCAMBookmark.py:337
+#: Bookmark.py:337
msgid "Import FlatCAM Bookmarks"
msgstr "Importa segnalibri FlatCAM"
-#: FlatCAMBookmark.py:356
+#: Bookmark.py:356
msgid "Imported Bookmarks from"
msgstr "Segnalibri importati da"
-#: FlatCAMCommon.py:29
+#: Common.py:37
msgid "The user requested a graceful exit of the current task."
msgstr "L'utente ha richiesto l'uscita dal task corrente."
-#: FlatCAMDB.py:86
-msgid "Add Geometry Tool in DB"
-msgstr "Aggiunti strumento geometria in DB"
+#: Common.py:250
+#, fuzzy
+#| msgid "Click the end point of the paint area."
+msgid "Click the end point of the area."
+msgstr "Fai clic sul punto finale dell'area."
-#: FlatCAMDB.py:88 FlatCAMDB.py:1643
-msgid ""
-"Add a new tool in the Tools Database.\n"
-"It will be used in the Geometry UI.\n"
-"You can edit it after it is added."
+#: Common.py:386
+msgid "Exclusion areas added. Checking overlap with the object geometry ..."
msgstr ""
-"Aggiunge uno strumento nel DataBase degli strumenti.\n"
-"Sarà usato nella UI delle Geometrie.\n"
-"Puoi modificarlo una volta aggiunto."
-#: FlatCAMDB.py:102 FlatCAMDB.py:1657
-msgid "Delete Tool from DB"
-msgstr "Cancella strumento dal DB"
-
-#: FlatCAMDB.py:104 FlatCAMDB.py:1659
-msgid "Remove a selection of tools in the Tools Database."
-msgstr "Rimuovi una selezione di strumenti dal Database strumenti."
-
-#: FlatCAMDB.py:108 FlatCAMDB.py:1663
-msgid "Export DB"
-msgstr "Esporta DB"
-
-#: FlatCAMDB.py:110 FlatCAMDB.py:1665
-msgid "Save the Tools Database to a custom text file."
-msgstr "Salva il Database strumenti in un file."
-
-#: FlatCAMDB.py:114 FlatCAMDB.py:1669
-msgid "Import DB"
-msgstr "Importa DB"
-
-#: FlatCAMDB.py:116 FlatCAMDB.py:1671
-msgid "Load the Tools Database information's from a custom text file."
-msgstr "Carica il Databse strumenti da un file esterno."
-
-#: FlatCAMDB.py:120 FlatCAMDB.py:1681
-msgid "Add Tool from Tools DB"
-msgstr "Aggiungi strumento dal DB strumenti"
-
-#: FlatCAMDB.py:122 FlatCAMDB.py:1683
-msgid ""
-"Add a new tool in the Tools Table of the\n"
-"active Geometry object after selecting a tool\n"
-"in the Tools Database."
+#: Common.py:392
+msgid "Failed. Exclusion areas intersects the object geometry ..."
msgstr ""
-"Add a new tool in the Tools Table of the\n"
-"active Geometry object after selecting a tool\n"
-"in the Tools Database."
-#: FlatCAMDB.py:158 FlatCAMDB.py:833 FlatCAMDB.py:1087
-msgid "Tool Name"
-msgstr "Nome utensile"
-
-#: FlatCAMDB.py:159 FlatCAMDB.py:835 FlatCAMDB.py:1100
-#: flatcamEditors/FlatCAMExcEditor.py:1604 flatcamGUI/ObjectUI.py:1345
-#: flatcamGUI/ObjectUI.py:1583
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:132
-#: flatcamTools/ToolNCC.py:278 flatcamTools/ToolNCC.py:287
-#: flatcamTools/ToolPaint.py:261
-msgid "Tool Dia"
-msgstr "Diametro utensile"
-
-#: FlatCAMDB.py:160 FlatCAMDB.py:837 FlatCAMDB.py:1281
-#: flatcamGUI/ObjectUI.py:1558
-msgid "Tool Offset"
-msgstr "Offset utensile"
-
-#: FlatCAMDB.py:161 FlatCAMDB.py:839 FlatCAMDB.py:1298
-msgid "Custom Offset"
-msgstr "Utensile personalizzato"
-
-#: FlatCAMDB.py:162 FlatCAMDB.py:841 FlatCAMDB.py:1265
-#: flatcamGUI/ObjectUI.py:309
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:67
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:53
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:62
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:72
-#: flatcamTools/ToolNCC.py:213 flatcamTools/ToolNCC.py:227
-#: flatcamTools/ToolPaint.py:196
-msgid "Tool Type"
-msgstr "Tipo utensile"
-
-#: FlatCAMDB.py:163 FlatCAMDB.py:843 FlatCAMDB.py:1113
-msgid "Tool Shape"
-msgstr "Forma utensile"
-
-#: FlatCAMDB.py:164 FlatCAMDB.py:846 FlatCAMDB.py:1129
-#: flatcamGUI/ObjectUI.py:350 flatcamGUI/ObjectUI.py:900
-#: flatcamGUI/ObjectUI.py:1703 flatcamGUI/ObjectUI.py:2256
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:93
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:48
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:107
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:78
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:58
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:105
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:113
-#: flatcamTools/ToolCalculators.py:114 flatcamTools/ToolCutOut.py:138
-#: flatcamTools/ToolNCC.py:260 flatcamTools/ToolNCC.py:268
-#: flatcamTools/ToolPaint.py:243
-msgid "Cut Z"
-msgstr "Taglio Z"
-
-#: FlatCAMDB.py:165 FlatCAMDB.py:848 FlatCAMDB.py:1143
-msgid "MultiDepth"
-msgstr "Multi profondità"
-
-#: FlatCAMDB.py:166 FlatCAMDB.py:850 FlatCAMDB.py:1156
-msgid "DPP"
-msgstr "DPP"
-
-#: FlatCAMDB.py:167 FlatCAMDB.py:852 FlatCAMDB.py:1312
-msgid "V-Dia"
-msgstr "Diametro V"
-
-#: FlatCAMDB.py:168 FlatCAMDB.py:854 FlatCAMDB.py:1326
-msgid "V-Angle"
-msgstr "Angolo V"
-
-#: FlatCAMDB.py:169 FlatCAMDB.py:856 FlatCAMDB.py:1170
-#: flatcamGUI/ObjectUI.py:946 flatcamGUI/ObjectUI.py:1750
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:134
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:101
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:61
-#: flatcamObjects/FlatCAMExcellon.py:1316
-#: flatcamObjects/FlatCAMGeometry.py:1578 flatcamTools/ToolCalibration.py:74
-msgid "Travel Z"
-msgstr "Travel Z"
-
-#: FlatCAMDB.py:170 FlatCAMDB.py:858
-msgid "FR"
-msgstr "FR"
-
-#: FlatCAMDB.py:171 FlatCAMDB.py:860
-msgid "FR Z"
-msgstr "FR Z"
-
-#: FlatCAMDB.py:172 FlatCAMDB.py:862 FlatCAMDB.py:1340
-msgid "FR Rapids"
-msgstr "FR Rapidi"
-
-#: FlatCAMDB.py:173 FlatCAMDB.py:864 FlatCAMDB.py:1213
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:222
-msgid "Spindle Speed"
-msgstr "Velocità mandrino"
-
-#: FlatCAMDB.py:174 FlatCAMDB.py:866 FlatCAMDB.py:1228
-#: flatcamGUI/ObjectUI.py:1064 flatcamGUI/ObjectUI.py:1857
-msgid "Dwell"
-msgstr "Dimora"
-
-#: FlatCAMDB.py:175 FlatCAMDB.py:868 FlatCAMDB.py:1241
-msgid "Dwelltime"
-msgstr "Tempo dimora"
-
-#: FlatCAMDB.py:176 FlatCAMDB.py:870 flatcamGUI/ObjectUI.py:2014
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:257
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:254
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:237
-#: flatcamTools/ToolSolderPaste.py:335
-msgid "Preprocessor"
-msgstr "Preprocessore"
-
-#: FlatCAMDB.py:177 FlatCAMDB.py:872 FlatCAMDB.py:1356
-msgid "ExtraCut"
-msgstr "Taglio extra"
-
-#: FlatCAMDB.py:178 FlatCAMDB.py:874 FlatCAMDB.py:1371
-msgid "E-Cut Length"
-msgstr "Lunghezza E-taglio"
-
-#: FlatCAMDB.py:179 FlatCAMDB.py:876
-msgid "Toolchange"
-msgstr "Cambio utensile"
-
-#: FlatCAMDB.py:180 FlatCAMDB.py:878
-msgid "Toolchange XY"
-msgstr "Cambio utensile XY"
-
-#: FlatCAMDB.py:181 FlatCAMDB.py:880
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:160
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:131
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:98
-#: flatcamTools/ToolCalibration.py:111
-msgid "Toolchange Z"
-msgstr "Cambio utensile Z"
-
-#: FlatCAMDB.py:182 FlatCAMDB.py:882 flatcamGUI/ObjectUI.py:1193
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:69
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:54
-msgid "Start Z"
-msgstr "Z iniziale"
-
-#: FlatCAMDB.py:183 FlatCAMDB.py:885
-msgid "End Z"
-msgstr "Z finale"
-
-#: FlatCAMDB.py:187
-msgid "Tool Index."
-msgstr "Indice utensile."
-
-#: FlatCAMDB.py:189 FlatCAMDB.py:1089
-msgid ""
-"Tool name.\n"
-"This is not used in the app, it's function\n"
-"is to serve as a note for the user."
+#: Common.py:396
+msgid "Exclusion areas added."
msgstr ""
-"Nome utensile.\n"
-"Non è usato dalla app, la sua funzione\n"
-"è solo una nota per l'utente."
-#: FlatCAMDB.py:193 FlatCAMDB.py:1102
-msgid "Tool Diameter."
-msgstr "Diametro utensile."
-
-#: FlatCAMDB.py:195 FlatCAMDB.py:1283
-msgid ""
-"Tool Offset.\n"
-"Can be of a few types:\n"
-"Path = zero offset\n"
-"In = offset inside by half of tool diameter\n"
-"Out = offset outside by half of tool diameter\n"
-"Custom = custom offset using the Custom Offset value"
+#: Common.py:405
+msgid "With Exclusion areas."
msgstr ""
-"Offset utensile.\n"
-"Può essere di vari tipi:\n"
-"Path = senza offset\n"
-"In = all'interno per metà del diametro dell'utensile\n"
-"Out = all'esterno per metà del diametro dell'utensile\n"
-"Custom = offset personalizzato usando il campo Offset Personale"
-#: FlatCAMDB.py:202 FlatCAMDB.py:1300
-msgid ""
-"Custom Offset.\n"
-"A value to be used as offset from the current path."
+#: Common.py:435
+msgid "Cancelled. Area exclusion drawing was interrupted."
msgstr ""
-"Offset Personale.\n"
-"Valore da usare come offset nel percorso attuale."
-#: FlatCAMDB.py:205 FlatCAMDB.py:1267
-msgid ""
-"Tool Type.\n"
-"Can be:\n"
-"Iso = isolation cut\n"
-"Rough = rough cut, low feedrate, multiple passes\n"
-"Finish = finishing cut, high feedrate"
-msgstr ""
-"Tipo di utensile.\n"
-"Può essere:\n"
-"Iso = taglio isolante\n"
-"Rough = taglio grezzo, basso feedrate, passate multiple\n"
-"Finish = taglio finale, alto feedrate"
-
-#: FlatCAMDB.py:211 FlatCAMDB.py:1115
-msgid ""
-"Tool Shape. \n"
-"Can be:\n"
-"C1 ... C4 = circular tool with x flutes\n"
-"B = ball tip milling tool\n"
-"V = v-shape milling tool"
-msgstr ""
-"Forma utensile. \n"
-"Può essere:\n"
-"C1 ... C4 = utensile circolare con x flutes\n"
-"B = punta sferica da incisione\n"
-"V = utensile da incisione a V"
-
-#: FlatCAMDB.py:217 FlatCAMDB.py:1131
-msgid ""
-"Cutting Depth.\n"
-"The depth at which to cut into material."
-msgstr ""
-"Profondità taglio.\n"
-"Profondità nella quale affondare nel materiale."
-
-#: FlatCAMDB.py:220 FlatCAMDB.py:1145
-msgid ""
-"Multi Depth.\n"
-"Selecting this will allow cutting in multiple passes,\n"
-"each pass adding a DPP parameter depth."
-msgstr ""
-"Passaggi multipli.\n"
-"Selezionandolo verrà tagliato in più passate,\n"
-"ogni passata aggiunge una profondità del parametro DPP."
-
-#: FlatCAMDB.py:224 FlatCAMDB.py:1158
-msgid ""
-"DPP. Depth per Pass.\n"
-"The value used to cut into material on each pass."
-msgstr ""
-"DPP. Profondità per passata.\n"
-"Valore usato per tagliare il materiale in più passaggi."
-
-#: FlatCAMDB.py:227 FlatCAMDB.py:1314
-msgid ""
-"V-Dia.\n"
-"Diameter of the tip for V-Shape Tools."
-msgstr ""
-"Diametro V.\n"
-"Diameter della punta dell'utensile a V."
-
-#: FlatCAMDB.py:230 FlatCAMDB.py:1328
-msgid ""
-"V-Agle.\n"
-"Angle at the tip for the V-Shape Tools."
-msgstr ""
-"Angolo V.\n"
-"Angolo alla punta dell'utensile a V."
-
-#: FlatCAMDB.py:233 FlatCAMDB.py:1172
-msgid ""
-"Clearance Height.\n"
-"Height at which the milling bit will travel between cuts,\n"
-"above the surface of the material, avoiding all fixtures."
-msgstr ""
-"Altezza libera.\n"
-"Altezza alla quale l'utensile si sposta tra i tagli,\n"
-"sopra alla superficie del materiale, evitando collisioni."
-
-#: FlatCAMDB.py:237
-msgid ""
-"FR. Feedrate\n"
-"The speed on XY plane used while cutting into material."
-msgstr ""
-"FR. Feedrate\n"
-"Velocità usata sul piano XY durante il taglio nel materiale."
-
-#: FlatCAMDB.py:240
-msgid ""
-"FR Z. Feedrate Z\n"
-"The speed on Z plane."
-msgstr ""
-"FR Z. Feedrate Z\n"
-"La velocità nell'asse Z."
-
-#: FlatCAMDB.py:243 FlatCAMDB.py:1342
-msgid ""
-"FR Rapids. Feedrate Rapids\n"
-"Speed used while moving as fast as possible.\n"
-"This is used only by some devices that can't use\n"
-"the G0 g-code command. Mostly 3D printers."
-msgstr ""
-"FR Rapidi. Feedrate Rapidi\n"
-"Velocità degli spostamenti alla velocità massima possibile.\n"
-"Usata da alcuni device che non possono usare il comando\n"
-"G-code G0. Principalmente stampanti 3D."
-
-#: FlatCAMDB.py:248 FlatCAMDB.py:1215
-msgid ""
-"Spindle Speed.\n"
-"If it's left empty it will not be used.\n"
-"The speed of the spindle in RPM."
-msgstr ""
-"Velocità mandrino.\n"
-"Se vuota non sarà usata.\n"
-"La velocità del mandrino in RPM."
-
-#: FlatCAMDB.py:252 FlatCAMDB.py:1230
-msgid ""
-"Dwell.\n"
-"Check this if a delay is needed to allow\n"
-"the spindle motor to reach it's set speed."
-msgstr ""
-"Dimora.\n"
-"Abilitare se è necessaria una attesa per permettere\n"
-"al motore di raggiungere la velocità impostata."
-
-#: FlatCAMDB.py:256 FlatCAMDB.py:1243
-msgid ""
-"Dwell Time.\n"
-"A delay used to allow the motor spindle reach it's set speed."
-msgstr ""
-"Tempo dimora.\n"
-"Il tempo da aspettare affinchè il mandrino raggiunga la sua velocità."
-
-#: FlatCAMDB.py:259
-msgid ""
-"Preprocessor.\n"
-"A selection of files that will alter the generated G-code\n"
-"to fit for a number of use cases."
-msgstr ""
-"Preprocessore.\n"
-"Una selezione di files che alterano il G-Code generato\n"
-"per adattarsi a vari casi."
-
-#: FlatCAMDB.py:263 FlatCAMDB.py:1358
-msgid ""
-"Extra Cut.\n"
-"If checked, after a isolation is finished an extra cut\n"
-"will be added where the start and end of isolation meet\n"
-"such as that this point is covered by this extra cut to\n"
-"ensure a complete isolation."
-msgstr ""
-"Taglio extra.\n"
-"Se abilitato, dopo il termine di un isolamento sarà aggiunto\n"
-"un taglio extra dove si incontrano l'inizio e la fine del taglio\n"
-"così da assicurare un completo isolamento."
-
-#: FlatCAMDB.py:269 FlatCAMDB.py:1373
-msgid ""
-"Extra Cut length.\n"
-"If checked, after a isolation is finished an extra cut\n"
-"will be added where the start and end of isolation meet\n"
-"such as that this point is covered by this extra cut to\n"
-"ensure a complete isolation. This is the length of\n"
-"the extra cut."
-msgstr ""
-"Lunghezza taglio extra.\n"
-"Se abilitato, dopo il termine di un isolamento sarà aggiunto\n"
-"un taglio extra dove si incontrano l'inizio e la fine del taglio\n"
-"così da assicurare un completo isolamento. Questa è la\n"
-"lunghezza del taglio extra."
-
-#: FlatCAMDB.py:276
-msgid ""
-"Toolchange.\n"
-"It will create a toolchange event.\n"
-"The kind of toolchange is determined by\n"
-"the preprocessor file."
-msgstr ""
-"Cambio utensile.\n"
-"Genererà un evento di cambio utensile.\n"
-"Il tipo di cambio utensile è determinato dal\n"
-"file del preprocessore."
-
-#: FlatCAMDB.py:281
-msgid ""
-"Toolchange XY.\n"
-"A set of coordinates in the format (x, y).\n"
-"Will determine the cartesian position of the point\n"
-"where the tool change event take place."
-msgstr ""
-"Cambio utensile XY.\n"
-"Set di coordinate in formato (x, y).\n"
-"Determinano la posizione cartesiana del punto\n"
-"dove avverrà il cambio utensile."
-
-#: FlatCAMDB.py:286
-msgid ""
-"Toolchange Z.\n"
-"The position on Z plane where the tool change event take place."
-msgstr ""
-"Cambio utensile Z.\n"
-"La posizione in Z dove avverrà il cambio utensile."
-
-#: FlatCAMDB.py:289
-msgid ""
-"Start Z.\n"
-"If it's left empty it will not be used.\n"
-"A position on Z plane to move immediately after job start."
-msgstr ""
-"Z iniziale.\n"
-"Se lasciato vuoto non sarà usato.\n"
-"Posizione in Z a cui spostarsi per iniziare la lavorazione."
-
-#: FlatCAMDB.py:293
-msgid ""
-"End Z.\n"
-"A position on Z plane to move immediately after job stop."
-msgstr ""
-"Z finale.\n"
-"Posizione in Z alla quale posizionarsi a fine lavoro."
-
-#: FlatCAMDB.py:305 FlatCAMDB.py:682 FlatCAMDB.py:716 FlatCAMDB.py:1898
-#: FlatCAMDB.py:2144 FlatCAMDB.py:2178
-msgid "Could not load Tools DB file."
-msgstr "Impossibile caricare il file del DB utensili."
-
-#: FlatCAMDB.py:313 FlatCAMDB.py:724 FlatCAMDB.py:1906 FlatCAMDB.py:2186
-msgid "Failed to parse Tools DB file."
-msgstr "Impossibile processare il file del DB utensili."
-
-#: FlatCAMDB.py:316 FlatCAMDB.py:727 FlatCAMDB.py:1909 FlatCAMDB.py:2189
-msgid "Loaded FlatCAM Tools DB from"
-msgstr "Database utensili FlatCAM caricato da"
-
-#: FlatCAMDB.py:322 FlatCAMDB.py:1823
-msgid "Add to DB"
-msgstr "Aggiungi a DB"
-
-#: FlatCAMDB.py:324 FlatCAMDB.py:1826
-msgid "Copy from DB"
-msgstr "Copia da DB"
-
-#: FlatCAMDB.py:326 FlatCAMDB.py:1829
-msgid "Delete from DB"
-msgstr "Cancella da DB"
-
-#: FlatCAMDB.py:603 FlatCAMDB.py:2044
-msgid "Tool added to DB."
-msgstr "Utensile aggiunto al DB."
-
-#: FlatCAMDB.py:624 FlatCAMDB.py:2077
-msgid "Tool copied from Tools DB."
-msgstr "Utensile copiato dal DB utensile."
-
-#: FlatCAMDB.py:642 FlatCAMDB.py:2104
-msgid "Tool removed from Tools DB."
-msgstr "Utensile rimosso dal DB utensili."
-
-#: FlatCAMDB.py:653 FlatCAMDB.py:2115
-msgid "Export Tools Database"
-msgstr "Esportazione DataBase utensili"
-
-#: FlatCAMDB.py:656 FlatCAMDB.py:2118
-msgid "Tools_Database"
-msgstr "Databse_utensili"
-
-#: FlatCAMDB.py:693 FlatCAMDB.py:696 FlatCAMDB.py:748 FlatCAMDB.py:2155
-#: FlatCAMDB.py:2158 FlatCAMDB.py:2211
-msgid "Failed to write Tools DB to file."
-msgstr "Errore nella scrittura del file del DB utensili."
-
-#: FlatCAMDB.py:699 FlatCAMDB.py:2161
-msgid "Exported Tools DB to"
-msgstr "DB utensili esportato in"
-
-#: FlatCAMDB.py:706 FlatCAMDB.py:2168
-msgid "Import FlatCAM Tools DB"
-msgstr "Importazione DB FlatCAM utensili"
-
-#: FlatCAMDB.py:752 FlatCAMDB.py:2215
-msgid "Saved Tools DB."
-msgstr "DB utensili salvati."
-
-#: FlatCAMDB.py:899 FlatCAMDB.py:2405
-msgid "No Tool/row selected in the Tools Database table"
-msgstr "Nessun utensile/colonna selezionato nella tabella DB degli utensili"
-
-#: FlatCAMDB.py:917 FlatCAMDB.py:2422
-msgid "Cancelled adding tool from DB."
-msgstr "Aggiunta utensile in DB annullata."
-
-#: FlatCAMDB.py:1018
-msgid "Basic Geo Parameters"
-msgstr "Parametri Geo Basic"
-
-#: FlatCAMDB.py:1030
-msgid "Advanced Geo Parameters"
-msgstr "Parametri Geo avanzati"
-
-#: FlatCAMDB.py:1042
-msgid "NCC Parameters"
-msgstr "Parametri NCC"
-
-#: FlatCAMDB.py:1054
-msgid "Paint Parameters"
-msgstr "Parametri pittura"
-
-#: FlatCAMDB.py:1185 flatcamGUI/ObjectUI.py:967 flatcamGUI/ObjectUI.py:1769
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:185
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:148
-#: flatcamTools/ToolSolderPaste.py:253
-msgid "Feedrate X-Y"
-msgstr "Avanzamento X-Y"
-
-#: FlatCAMDB.py:1187
-msgid ""
-"Feedrate X-Y. Feedrate\n"
-"The speed on XY plane used while cutting into material."
-msgstr ""
-"Avanzamento X-Y. Feedrate\n"
-"Velocità usata sul piano XY durante il taglio nel materiale."
-
-#: FlatCAMDB.py:1199 flatcamGUI/ObjectUI.py:982 flatcamGUI/ObjectUI.py:1783
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:207
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:200
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:161
-#: flatcamTools/ToolSolderPaste.py:265
-msgid "Feedrate Z"
-msgstr "Avanzamento Z"
-
-#: FlatCAMDB.py:1201
-msgid ""
-"Feedrate Z\n"
-"The speed on Z plane."
-msgstr ""
-"Avanzamento Z. Feedrate Z\n"
-"La velocità sull'asse Z."
-
-#: FlatCAMDB.py:1399 flatcamGUI/ObjectUI.py:845
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:46
-#: flatcamTools/ToolNCC.py:341
-msgid "Operation"
-msgstr "Operazione"
-
-#: FlatCAMDB.py:1401 flatcamTools/ToolNCC.py:343
-msgid ""
-"The 'Operation' can be:\n"
-"- Isolation -> will ensure that the non-copper clearing is always complete.\n"
-"If it's not successful then the non-copper clearing will fail, too.\n"
-"- Clear -> the regular non-copper clearing."
-msgstr ""
-"L' 'Operazione' può essere:\n"
-"- Isolamento -> assicurerà che la rimozione non-rame sia sempre completa.\n"
-"Se non ha esito positivo, anche la pulizia non-rame avrà esito negativo.\n"
-"- Cancella -> la normale pulizia non-rame."
-
-#: FlatCAMDB.py:1408 flatcamEditors/FlatCAMGrbEditor.py:2742
-#: flatcamGUI/GUIElements.py:2577 flatcamTools/ToolNCC.py:350
-msgid "Clear"
-msgstr "Pulisci"
-
-#: FlatCAMDB.py:1409 flatcamTools/ToolNCC.py:351 flatcamTools/ToolNCC.py:1618
-msgid "Isolation"
-msgstr "Isolamento"
-
-#: FlatCAMDB.py:1417 flatcamGUI/ObjectUI.py:409 flatcamGUI/ObjectUI.py:867
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:62
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:56
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:95
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:137
-#: flatcamTools/ToolNCC.py:359
-msgid "Milling Type"
-msgstr "Tipo di fresatura"
-
-#: FlatCAMDB.py:1419 FlatCAMDB.py:1427
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:139
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:147
-#: flatcamTools/ToolNCC.py:361 flatcamTools/ToolNCC.py:369
-msgid ""
-"Milling type when the selected tool is of type: 'iso_op':\n"
-"- climb / best for precision milling and to reduce tool usage\n"
-"- conventional / useful when there is no backlash compensation"
-msgstr ""
-"Tipo di fresatura quando l'utensile selezionato è di tipo: 'iso_op':\n"
-"- salita / migliore per fresatura di precisione e riduzione dell'uso degli "
-"utensili\n"
-"- convenzionale / utile in assenza di compensazione del gioco"
-
-#: FlatCAMDB.py:1424 flatcamGUI/ObjectUI.py:415
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:62
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:102
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:144
-#: flatcamTools/ToolNCC.py:366
-msgid "Climb"
-msgstr "Salita"
-
-#: FlatCAMDB.py:1425 flatcamGUI/ObjectUI.py:416
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:63
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:103
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:145
-#: flatcamTools/ToolNCC.py:367
-msgid "Conventional"
-msgstr "Convenzionale"
-
-#: FlatCAMDB.py:1437 FlatCAMDB.py:1546 flatcamEditors/FlatCAMGeoEditor.py:451
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:182
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:163
-#: flatcamTools/ToolNCC.py:382 flatcamTools/ToolPaint.py:329
-msgid "Overlap"
-msgstr "Sovrapposizione"
-
-#: FlatCAMDB.py:1439 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:184
-#: flatcamTools/ToolNCC.py:384
-msgid ""
-"How much (percentage) of the tool width to overlap each tool pass.\n"
-"Adjust the value starting with lower values\n"
-"and increasing it if areas that should be cleared are still \n"
-"not cleared.\n"
-"Lower values = faster processing, faster execution on CNC.\n"
-"Higher values = slow processing and slow execution on CNC\n"
-"due of too many paths."
-msgstr ""
-"Quanta (frazione) della larghezza dell'utensile da sovrapporre ad\n"
-"ogni passaggio dell'utensile. Regola il valore iniziando con valori\n"
-"più bassi e aumentandolo se le aree da eliminare sono ancora\n"
-"presenti.\n"
-"Valori più bassi = elaborazione più rapida, esecuzione più veloce su CNC.\n"
-"Valori più alti = elaborazione lenta ed esecuzione lenta su CNC\n"
-"per i molti percorsi."
-
-#: FlatCAMDB.py:1458 FlatCAMDB.py:1567 flatcamEditors/FlatCAMGeoEditor.py:471
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:72
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:229
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:59
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:45
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:53
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:183
-#: flatcamTools/ToolCopperThieving.py:111
-#: flatcamTools/ToolCopperThieving.py:362 flatcamTools/ToolCutOut.py:190
-#: flatcamTools/ToolFiducials.py:172 flatcamTools/ToolInvertGerber.py:88
-#: flatcamTools/ToolInvertGerber.py:96 flatcamTools/ToolNCC.py:403
-#: flatcamTools/ToolPaint.py:350
-msgid "Margin"
-msgstr "Margine"
-
-#: FlatCAMDB.py:1460
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:74
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:61
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204
-#: flatcamTools/ToolCopperThieving.py:113 flatcamTools/ToolFiducials.py:174
-#: flatcamTools/ToolFiducials.py:237 flatcamTools/ToolNCC.py:405
-msgid "Bounding box margin."
-msgstr "Margine del riquadro di delimitazione."
-
-#: FlatCAMDB.py:1471 FlatCAMDB.py:1582 flatcamEditors/FlatCAMGeoEditor.py:485
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:105
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:198
-#: flatcamTools/ToolExtractDrills.py:128 flatcamTools/ToolNCC.py:416
-#: flatcamTools/ToolPaint.py:365 flatcamTools/ToolPunchGerber.py:139
-msgid "Method"
-msgstr "Metodo"
-
-#: FlatCAMDB.py:1473 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:217
-#: flatcamTools/ToolNCC.py:418
-msgid ""
-"Algorithm for copper clearing:\n"
-"- Standard: Fixed step inwards.\n"
-"- Seed-based: Outwards from seed.\n"
-"- Line-based: Parallel lines."
-msgstr ""
-"Algoritmo per la pittura:\n"
-"- Standard: passo fisso verso l'interno.\n"
-"- A base di semi: verso l'esterno dal seme.\n"
-"- Basato su linee: linee parallele."
-
-#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 flatcamEditors/FlatCAMGeoEditor.py:499
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
-#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolNCC.py:2390
-#: flatcamTools/ToolNCC.py:2419 flatcamTools/ToolNCC.py:2688
-#: flatcamTools/ToolNCC.py:2720 flatcamTools/ToolPaint.py:390
-#: flatcamTools/ToolPaint.py:1829 tclCommands/TclCommandCopperClear.py:126
-#: tclCommands/TclCommandCopperClear.py:134 tclCommands/TclCommandPaint.py:125
-msgid "Standard"
-msgstr "Standard"
-
-#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 defaults.py:391 defaults.py:423
-#: flatcamEditors/FlatCAMGeoEditor.py:499
-#: flatcamEditors/FlatCAMGeoEditor.py:569
-#: flatcamEditors/FlatCAMGeoEditor.py:5152
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
-#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolNCC.py:2396
-#: flatcamTools/ToolNCC.py:2424 flatcamTools/ToolNCC.py:2694
-#: flatcamTools/ToolNCC.py:2726 flatcamTools/ToolPaint.py:390
-#: flatcamTools/ToolPaint.py:1843 tclCommands/TclCommandCopperClear.py:128
-#: tclCommands/TclCommandCopperClear.py:136 tclCommands/TclCommandPaint.py:127
-msgid "Seed"
-msgstr "Seme"
-
-#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 flatcamEditors/FlatCAMGeoEditor.py:499
-#: flatcamEditors/FlatCAMGeoEditor.py:5156
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
-#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolPaint.py:390
-#: flatcamTools/ToolPaint.py:699 flatcamTools/ToolPaint.py:1857
-#: tclCommands/TclCommandCopperClear.py:130 tclCommands/TclCommandPaint.py:129
-msgid "Lines"
-msgstr "Righe"
-
-#: FlatCAMDB.py:1489 FlatCAMDB.py:1607
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:237
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:224
-#: flatcamTools/ToolNCC.py:439 flatcamTools/ToolPaint.py:401
-msgid "Connect"
-msgstr "Connetti"
-
-#: FlatCAMDB.py:1493 FlatCAMDB.py:1610 flatcamEditors/FlatCAMGeoEditor.py:508
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:239
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:226
-#: flatcamTools/ToolNCC.py:443 flatcamTools/ToolPaint.py:404
-msgid ""
-"Draw lines between resulting\n"
-"segments to minimize tool lifts."
-msgstr ""
-"Disegna linee tra segmenti risultanti\n"
-"per minimizzare i sollevamenti dell'utensile."
-
-#: FlatCAMDB.py:1499 FlatCAMDB.py:1614
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:246
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:232
-#: flatcamTools/ToolNCC.py:449 flatcamTools/ToolPaint.py:408
-msgid "Contour"
-msgstr "Controno"
-
-#: FlatCAMDB.py:1503 FlatCAMDB.py:1617 flatcamEditors/FlatCAMGeoEditor.py:518
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:248
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:234
-#: flatcamTools/ToolNCC.py:453 flatcamTools/ToolPaint.py:411
-msgid ""
-"Cut around the perimeter of the polygon\n"
-"to trim rough edges."
-msgstr ""
-"Taglia attorno al perimetro del poligono\n"
-"per rifinire bordi grezzi."
-
-#: FlatCAMDB.py:1509 flatcamEditors/FlatCAMGeoEditor.py:612
-#: flatcamEditors/FlatCAMGrbEditor.py:5311 flatcamGUI/ObjectUI.py:143
-#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2246
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:255
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:142
-#: flatcamTools/ToolNCC.py:459 flatcamTools/ToolTransform.py:28
-msgid "Offset"
-msgstr "Offset"
-
-#: FlatCAMDB.py:1513 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:257
-#: flatcamTools/ToolNCC.py:463
-msgid ""
-"If used, it will add an offset to the copper features.\n"
-"The copper clearing will finish to a distance\n"
-"from the copper features.\n"
-"The value can be between 0 and 10 FlatCAM units."
-msgstr ""
-"Se utilizzato, aggiungerà un offset alle lavorazioni su rame.\n"
-"La rimozione del del rame finirà a una data distanza\n"
-"dalle lavorazioni sul rame.\n"
-"Il valore può essere compreso tra 0 e 10 unità FlatCAM."
-
-#: FlatCAMDB.py:1548 flatcamEditors/FlatCAMGeoEditor.py:453
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:165
-#: flatcamTools/ToolPaint.py:331
-msgid ""
-"How much (percentage) of the tool width to overlap each tool pass.\n"
-"Adjust the value starting with lower values\n"
-"and increasing it if areas that should be painted are still \n"
-"not painted.\n"
-"Lower values = faster processing, faster execution on CNC.\n"
-"Higher values = slow processing and slow execution on CNC\n"
-"due of too many paths."
-msgstr ""
-"Quanta larghezza dell'utensile (frazione) da sovrapporre ad ogni passaggio.\n"
-"Sistema il valore partendo da valori bassi\n"
-"ed aumentalo se aree da colorare non lo sono.\n"
-"Valori bassi = velocità di elaborazione, velocità di esecuzione su CNC.\n"
-"Valori elevati = bassa velocità di elaborazione e bassa velocità di "
-"esecuzione su CNC\n"
-"causata dai troppo percorsi."
-
-#: FlatCAMDB.py:1569 flatcamEditors/FlatCAMGeoEditor.py:473
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:185
-#: flatcamTools/ToolPaint.py:352
-msgid ""
-"Distance by which to avoid\n"
-"the edges of the polygon to\n"
-"be painted."
-msgstr ""
-"Distanza alla quale evitare\n"
-"i bordi dei poligoni da\n"
-"disegnare."
-
-#: FlatCAMDB.py:1584 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:200
-#: flatcamTools/ToolPaint.py:367
-msgid ""
-"Algorithm for painting:\n"
-"- Standard: Fixed step inwards.\n"
-"- Seed-based: Outwards from seed.\n"
-"- Line-based: Parallel lines.\n"
-"- Laser-lines: Active only for Gerber objects.\n"
-"Will create lines that follow the traces.\n"
-"- Combo: In case of failure a new method will be picked from the above\n"
-"in the order specified."
-msgstr ""
-"Algoritmo per la pittura: \n"
-"- Standard: passo fisso verso l'interno.\n"
-"- A base di semi: verso l'esterno dal seme.\n"
-"- Basato su linee: linee parallele.\n"
-"- Linee laser: attivo solo per oggetti Gerber.\n"
-"Creerà linee che seguono le tracce.\n"
-"- Combo: in caso di guasto verrà scelto un nuovo metodo tra quelli sopra "
-"indicati\n"
-"nell'ordine specificato."
-
-#: FlatCAMDB.py:1596 FlatCAMDB.py:1598
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
-#: flatcamTools/ToolPaint.py:390 flatcamTools/ToolPaint.py:392
-#: flatcamTools/ToolPaint.py:693 flatcamTools/ToolPaint.py:698
-#: flatcamTools/ToolPaint.py:1871 tclCommands/TclCommandPaint.py:131
-msgid "Laser_lines"
-msgstr "Laser_lines"
-
-#: FlatCAMDB.py:1596 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
-#: flatcamTools/ToolPaint.py:390 flatcamTools/ToolPaint.py:2022
-#: tclCommands/TclCommandPaint.py:133
-msgid "Combo"
-msgstr "Combinata"
-
-#: FlatCAMDB.py:1641
-msgid "Add Tool in DB"
-msgstr "Aggiunti utensile nel DB"
-
-#: FlatCAMDB.py:1675
-msgid "Save DB"
-msgstr "Salva DB"
-
-#: FlatCAMDB.py:1677
-msgid "Save the Tools Database information's."
-msgstr "Salva le informazioni del Databse utensili."
-
-#: FlatCAMProcess.py:172
-msgid "processes running."
-msgstr "processi in esecuzione."
-
-#: FlatCAMTool.py:245 FlatCAMTool.py:252 flatcamGUI/ObjectUI.py:157
-#: flatcamGUI/ObjectUI.py:164
-msgid "Edited value is out of range"
-msgstr "Il valore modificato è fuori range"
-
-#: FlatCAMTool.py:247 FlatCAMTool.py:254 flatcamGUI/ObjectUI.py:159
-#: flatcamGUI/ObjectUI.py:166
-msgid "Edited value is within limits."
-msgstr "Il valore editato è entro i limiti."
-
-#: FlatCAMTranslation.py:104
-msgid "The application will restart."
-msgstr "L'applicazione sarà riavviata."
-
-#: FlatCAMTranslation.py:106
-msgid "Are you sure do you want to change the current language to"
-msgstr "Sei sicuro di voler cambiare lingua in"
-
-#: FlatCAMTranslation.py:107
-msgid "Apply Language ..."
-msgstr "Applica lingua ..."
+#: Common.py:527 Common.py:575
+#, fuzzy
+#| msgid "All objects are selected."
+msgid "All exclusion zones deleted."
+msgstr "Tutti gli oggetti sono selezionati."
+
+#: Common.py:562
+#, fuzzy
+#| msgid "Selected plots enabled..."
+msgid "Selected exclusion zones deleted."
+msgstr "Tracce selezionate attive..."
#: assets/linux/flatcam-beta.desktop:3
msgid "FlatCAM Beta"
msgstr "FlatCAM Beta"
-#: assets/linux/flatcam-beta.desktop:7
-msgid "./assets/icon.png"
-msgstr "./assets/icon.png"
-
#: assets/linux/flatcam-beta.desktop:8
msgid "G-Code from GERBERS"
msgstr "G-Code da GERBER"
-#: camlib.py:597
+#: camlib.py:596
msgid "self.solid_geometry is neither BaseGeometry or list."
msgstr "self.solid_geometry non è né BaseGeometry né una lista."
-#: camlib.py:970
+#: camlib.py:971
msgid "Pass"
msgstr "Passato"
-#: camlib.py:981 flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:146
-#: flatcamObjects/FlatCAMGerber.py:497 flatcamTools/ToolCopperThieving.py:1016
-#: flatcamTools/ToolCopperThieving.py:1205
-#: flatcamTools/ToolCopperThieving.py:1217 flatcamTools/ToolNCC.py:2045
-#: flatcamTools/ToolNCC.py:2153 flatcamTools/ToolNCC.py:2167
-#: flatcamTools/ToolNCC.py:3098 flatcamTools/ToolNCC.py:3203
-#: flatcamTools/ToolNCC.py:3218 flatcamTools/ToolNCC.py:3484
-#: flatcamTools/ToolNCC.py:3585 flatcamTools/ToolNCC.py:3600
-msgid "Buffering"
-msgstr "Riempimento"
-
-#: camlib.py:990
+#: camlib.py:991
msgid "Get Exteriors"
msgstr "Ottieni esterni"
-#: camlib.py:993
+#: camlib.py:994
msgid "Get Interiors"
msgstr "Ottieni interni"
-#: camlib.py:2172
+#: camlib.py:2174
msgid "Object was mirrored"
msgstr "Oggetti specchiati"
-#: camlib.py:2174
+#: camlib.py:2176
msgid "Failed to mirror. No object selected"
msgstr "Errore durante la specchiatura. Nessun oggetto selezionato"
-#: camlib.py:2239
+#: camlib.py:2241
msgid "Object was rotated"
msgstr "Oggetto ruotato"
-#: camlib.py:2241
+#: camlib.py:2243
msgid "Failed to rotate. No object selected"
msgstr "Errore nella rotazione. Nessun oggetto selezionato"
-#: camlib.py:2307
+#: camlib.py:2309
msgid "Object was skewed"
msgstr "Oggetto distorto"
-#: camlib.py:2309
+#: camlib.py:2311
msgid "Failed to skew. No object selected"
msgstr "Errore nella distorsione. Nessun oggetto selezionato"
-#: camlib.py:2385
+#: camlib.py:2387
msgid "Object was buffered"
msgstr "Oggetto riempito"
-#: camlib.py:2387
+#: camlib.py:2389
msgid "Failed to buffer. No object selected"
msgstr "Errore nel riempimento. Nessun oggetto selezionato"
-#: camlib.py:2594
+#: camlib.py:2597
msgid "There is no such parameter"
msgstr "Parametro non esistente"
-#: camlib.py:2654 camlib.py:2887 camlib.py:3116 camlib.py:3338
+#: camlib.py:2657 camlib.py:2898 camlib.py:3127 camlib.py:3349
msgid ""
"The Cut Z parameter has positive value. It is the depth value to drill into "
"material.\n"
@@ -2717,13 +18227,13 @@ msgstr ""
"Il parametro Cut Z deve avere un valore negativo, potrebbe essere un errore "
"e sarà convertito in negativo. Controlla il codice CNC generato (Gcode ecc)."
-#: camlib.py:2662 camlib.py:2897 camlib.py:3126 camlib.py:3348 camlib.py:3631
-#: camlib.py:4017
+#: camlib.py:2665 camlib.py:2908 camlib.py:3137 camlib.py:3359 camlib.py:3650
+#: camlib.py:4045
msgid "The Cut Z parameter is zero. There will be no cut, skipping file"
msgstr ""
"Il parametro Taglio Z (Cut Z) è zero. Non ci sarà alcun taglio, salto il file"
-#: camlib.py:2673 camlib.py:3985
+#: camlib.py:2680 camlib.py:4013
msgid ""
"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, "
"y) \n"
@@ -2733,7 +18243,7 @@ msgstr ""
"formato (x, y) \n"
"ma ora c'è un solo valore, non due. "
-#: camlib.py:2682 camlib.py:3582 camlib.py:3967
+#: camlib.py:2693 camlib.py:3597 camlib.py:3991
msgid ""
"The End Move X,Y field in Edit -> Preferences has to be in the format (x, y) "
"but now there is only one value, not two."
@@ -2741,31 +18251,31 @@ msgstr ""
"Il campo X,Y del cambio utensile in Edit -> Preferenze deve essere nel "
"formato (x, y) ma ora c'è un solo valore, non due."
-#: camlib.py:2770
+#: camlib.py:2781
msgid "Creating a list of points to drill..."
msgstr "Creazione lista punti da forare..."
-#: camlib.py:2860 camlib.py:3729 camlib.py:4121
+#: camlib.py:2871 camlib.py:3748 camlib.py:4149
msgid "Starting G-Code"
msgstr "Avvio G-Code"
-#: camlib.py:3001 camlib.py:3220 camlib.py:3384 camlib.py:3742 camlib.py:4132
+#: camlib.py:3012 camlib.py:3231 camlib.py:3395 camlib.py:3761 camlib.py:4160
msgid "Starting G-Code for tool with diameter"
msgstr "Avvio G-Code per utensile con diametro"
-#: camlib.py:3084 camlib.py:3302 camlib.py:3470
+#: camlib.py:3095 camlib.py:3313 camlib.py:3481
msgid "G91 coordinates not implemented"
msgstr "Coordinate G91 non implementate"
-#: camlib.py:3090 camlib.py:3309 camlib.py:3475
+#: camlib.py:3101 camlib.py:3320 camlib.py:3486
msgid "The loaded Excellon file has no drills"
msgstr "Il file excellon caricato non ha forature"
-#: camlib.py:3498
+#: camlib.py:3509
msgid "Finished G-Code generation..."
msgstr "Generazione G-Code terminata..."
-#: camlib.py:3600
+#: camlib.py:3619
msgid ""
"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, "
"y) \n"
@@ -2775,7 +18285,7 @@ msgstr ""
"formato (x, y) \n"
"ma ora c'è un solo valore, non due."
-#: camlib.py:3614 camlib.py:4000
+#: camlib.py:3633 camlib.py:4028
msgid ""
"Cut_Z parameter is None or zero. Most likely a bad combinations of other "
"parameters."
@@ -2783,7 +18293,7 @@ msgstr ""
"Il parametro taglio Z (Cut Z) in vuoto o zero. Probabilmente una erronea "
"combinazione di altri parametri."
-#: camlib.py:3623 camlib.py:4009
+#: camlib.py:3642 camlib.py:4037
msgid ""
"The Cut Z parameter has positive value. It is the depth value to cut into "
"material.\n"
@@ -2796,11 +18306,11 @@ msgstr ""
"Il parametro Cut Z deve avere un valore negativo, potrebbe essere un errore "
"e sarà convertito in negativo. Controlla il codice CNC generato (Gcode ecc)."
-#: camlib.py:3636 camlib.py:4023
+#: camlib.py:3655 camlib.py:4051
msgid "Travel Z parameter is None or zero."
msgstr "Il parametro Z di spostamento è vuoto o zero."
-#: camlib.py:3641 camlib.py:4028
+#: camlib.py:3660 camlib.py:4056
msgid ""
"The Travel Z parameter has negative value. It is the height value to travel "
"between cuts.\n"
@@ -2814,34 +18324,34 @@ msgstr ""
"errore e sarà convertito in positivo. Controlla il codice CNC generato "
"(Gcode ecc)."
-#: camlib.py:3649 camlib.py:4036
+#: camlib.py:3668 camlib.py:4064
msgid "The Z Travel parameter is zero. This is dangerous, skipping file"
msgstr "Il parametro Z Travel è zero. Questo è pericoloso, salto il file"
-#: camlib.py:3668 camlib.py:4059
+#: camlib.py:3687 camlib.py:4087
msgid "Indexing geometry before generating G-Code..."
msgstr "Indicizzazione geometria prima della generazione del G-Code..."
-#: camlib.py:3812 camlib.py:4201
+#: camlib.py:3831 camlib.py:4229
msgid "Finished G-Code generation"
msgstr "Fine generazione G-Code"
-#: camlib.py:3812
+#: camlib.py:3831
msgid "paths traced"
msgstr "percorsi tracciati"
-#: camlib.py:3862
+#: camlib.py:3881
msgid "Expected a Geometry, got"
msgstr "Era attesa una geometria, c'è"
-#: camlib.py:3869
+#: camlib.py:3888
msgid ""
"Trying to generate a CNC Job from a Geometry object without solid_geometry."
msgstr ""
"Tentativo di generare un CNC Job da un oggetto Geometry senza geometria "
"solida."
-#: camlib.py:3910
+#: camlib.py:3929
msgid ""
"The Tool Offset value is too negative to use for the current_geometry.\n"
"Raise the value (in module) and try again."
@@ -2850,15467 +18360,46 @@ msgstr ""
"geometria corrente.\n"
"Auemnta il valore (in modulo) e riprova."
-#: camlib.py:4201
+#: camlib.py:4229
msgid " paths traced."
msgstr " percorsi tracciati."
-#: camlib.py:4229
+#: camlib.py:4257
msgid "There is no tool data in the SolderPaste geometry."
msgstr "Non ci sono dati utensili nella geometria SolderPaste."
-#: camlib.py:4318
+#: camlib.py:4346
msgid "Finished SolderPaste G-Code generation"
msgstr "Generazione G-Code SolderPaste terminata"
-#: camlib.py:4318
+#: camlib.py:4346
msgid "paths traced."
msgstr "percorsi tracciati."
-#: camlib.py:4578
+#: camlib.py:4606
msgid "Parsing GCode file. Number of lines"
msgstr "Analisi file G-Code. Numero di linee"
-#: camlib.py:4685
+#: camlib.py:4713
msgid "Creating Geometry from the parsed GCode file. "
msgstr "Creazione geometrie dal file GCode analizzato. "
-#: camlib.py:4828 camlib.py:5118 camlib.py:5229 camlib.py:5385
+#: camlib.py:4856 camlib.py:5079 camlib.py:5190 camlib.py:5346
msgid "G91 coordinates not implemented ..."
msgstr "Coordinate G91 non implementate ..."
-#: camlib.py:4960
+#: camlib.py:4921
msgid "Unifying Geometry from parsed Geometry segments"
msgstr "Unificazione geometrie dai segmenti di geomatria analizzati"
-#: defaults.py:397
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
-#: flatcamTools/ToolCopperThieving.py:125 flatcamTools/ToolNCC.py:535
-#: flatcamTools/ToolNCC.py:1301 flatcamTools/ToolNCC.py:1629
-#: flatcamTools/ToolNCC.py:1914 flatcamTools/ToolNCC.py:1978
-#: flatcamTools/ToolNCC.py:2962 flatcamTools/ToolNCC.py:2971
-#: tclCommands/TclCommandCopperClear.py:190
-msgid "Itself"
-msgstr "Stesso"
-
-#: defaults.py:424 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
-#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:1422
-#: tclCommands/TclCommandPaint.py:162
-msgid "All Polygons"
-msgstr "Tutti i poligoni"
-
-#: defaults.py:735
+#: defaults.py:756
msgid "Could not load defaults file."
msgstr "Impossibile caricare il file delle impostazioni predefinite."
-#: defaults.py:748
+#: defaults.py:769
msgid "Failed to parse defaults file."
msgstr "Impossibile analizzare il file delle impostazioni predefinite."
-#: flatcamEditors/FlatCAMExcEditor.py:50 flatcamEditors/FlatCAMExcEditor.py:74
-#: flatcamEditors/FlatCAMExcEditor.py:168
-#: flatcamEditors/FlatCAMExcEditor.py:385
-#: flatcamEditors/FlatCAMExcEditor.py:589
-#: flatcamEditors/FlatCAMGrbEditor.py:243
-#: flatcamEditors/FlatCAMGrbEditor.py:250
-msgid "Click to place ..."
-msgstr "Clicca per posizionare ..."
-
-#: flatcamEditors/FlatCAMExcEditor.py:58
-msgid "To add a drill first select a tool"
-msgstr "Per aggiungere un foro prima seleziona un utensile"
-
-#: flatcamEditors/FlatCAMExcEditor.py:122
-msgid "Done. Drill added."
-msgstr "Fatto. Foro aggiunto."
-
-#: flatcamEditors/FlatCAMExcEditor.py:176
-msgid "To add an Drill Array first select a tool in Tool Table"
-msgstr "Per aggiungere una matrice di punti prima seleziona un utensile"
-
-#: flatcamEditors/FlatCAMExcEditor.py:192
-#: flatcamEditors/FlatCAMExcEditor.py:415
-#: flatcamEditors/FlatCAMExcEditor.py:636
-#: flatcamEditors/FlatCAMExcEditor.py:1151
-#: flatcamEditors/FlatCAMExcEditor.py:1178
-#: flatcamEditors/FlatCAMGrbEditor.py:473
-#: flatcamEditors/FlatCAMGrbEditor.py:1937
-#: flatcamEditors/FlatCAMGrbEditor.py:1967
-msgid "Click on target location ..."
-msgstr "Clicca sulla posizione di destinazione ..."
-
-#: flatcamEditors/FlatCAMExcEditor.py:211
-msgid "Click on the Drill Circular Array Start position"
-msgstr "Clicca sulla posizione di inizio della matrice fori circolare"
-
-#: flatcamEditors/FlatCAMExcEditor.py:233
-#: flatcamEditors/FlatCAMExcEditor.py:677
-#: flatcamEditors/FlatCAMGrbEditor.py:518
-msgid "The value is not Float. Check for comma instead of dot separator."
-msgstr "Il valore non è float. Controlla che il punto non sia una virgola."
-
-#: flatcamEditors/FlatCAMExcEditor.py:237
-msgid "The value is mistyped. Check the value"
-msgstr "Valore erroneo. Controlla il valore"
-
-#: flatcamEditors/FlatCAMExcEditor.py:336
-msgid "Too many drills for the selected spacing angle."
-msgstr "Troppi fori per l'angolo selezionato."
-
-#: flatcamEditors/FlatCAMExcEditor.py:354
-msgid "Done. Drill Array added."
-msgstr "Fatto. Matrice fori aggiunta."
-
-#: flatcamEditors/FlatCAMExcEditor.py:394
-msgid "To add a slot first select a tool"
-msgstr "Per aggiungere uno slot prima seleziona un utensile"
-
-#: flatcamEditors/FlatCAMExcEditor.py:454
-#: flatcamEditors/FlatCAMExcEditor.py:461
-#: flatcamEditors/FlatCAMExcEditor.py:742
-#: flatcamEditors/FlatCAMExcEditor.py:749
-msgid "Value is missing or wrong format. Add it and retry."
-msgstr "Valore con formato errato o mancante. Aggiungilo e riprova."
-
-#: flatcamEditors/FlatCAMExcEditor.py:559
-msgid "Done. Adding Slot completed."
-msgstr "Fatto. Slot aggiunto."
-
-#: flatcamEditors/FlatCAMExcEditor.py:597
-msgid "To add an Slot Array first select a tool in Tool Table"
-msgstr ""
-"Per aggiungere una matrice di slot seleziona prima un utensile dalla tabella"
-
-#: flatcamEditors/FlatCAMExcEditor.py:655
-msgid "Click on the Slot Circular Array Start position"
-msgstr "Clicca sulla posizione iniziale della matrice circolare di slot"
-
-#: flatcamEditors/FlatCAMExcEditor.py:680
-#: flatcamEditors/FlatCAMGrbEditor.py:521
-msgid "The value is mistyped. Check the value."
-msgstr "Valore errato. Controllalo."
-
-#: flatcamEditors/FlatCAMExcEditor.py:859
-msgid "Too many Slots for the selected spacing angle."
-msgstr "Troppi slot per l'angolo selezionato."
-
-#: flatcamEditors/FlatCAMExcEditor.py:882
-msgid "Done. Slot Array added."
-msgstr "Fatto. Matrice di slot aggiunta."
-
-#: flatcamEditors/FlatCAMExcEditor.py:904
-msgid "Click on the Drill(s) to resize ..."
-msgstr "Clicca sul foro(i) da ridimensionare ..."
-
-#: flatcamEditors/FlatCAMExcEditor.py:934
-msgid "Resize drill(s) failed. Please enter a diameter for resize."
-msgstr ""
-"Ridimensionamento fallito. Inserisci un diametro per il ridimensionamento."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1112
-msgid "Done. Drill/Slot Resize completed."
-msgstr "Fatto. Ridimensionamento Foro/Slot completato."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1115
-msgid "Cancelled. No drills/slots selected for resize ..."
-msgstr "Cancellato. Nessun foro/slot selezionato per il ridimensionamento ..."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1153
-#: flatcamEditors/FlatCAMGrbEditor.py:1939
-msgid "Click on reference location ..."
-msgstr "Clicca sulla posizione di riferimento ..."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1210
-msgid "Done. Drill(s) Move completed."
-msgstr "Fatto. Foro(i) spostato(i) correttamente."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1318
-msgid "Done. Drill(s) copied."
-msgstr "Fatto. Foro(i) copiato(i)."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1557
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:26
-msgid "Excellon Editor"
-msgstr "Editor Excellon"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1564
-#: flatcamEditors/FlatCAMGrbEditor.py:2462
-msgid "Name:"
-msgstr "Nome:"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1570 flatcamGUI/ObjectUI.py:761
-#: flatcamGUI/ObjectUI.py:1465 flatcamTools/ToolNCC.py:120
-#: flatcamTools/ToolPaint.py:115 flatcamTools/ToolSolderPaste.py:74
-msgid "Tools Table"
-msgstr "Tabella utensili"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1572 flatcamGUI/ObjectUI.py:763
-msgid ""
-"Tools in this Excellon object\n"
-"when are used for drilling."
-msgstr ""
-"Utensili in questo oggetto Excellon\n"
-"quando usati per la foratura."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1584
-#: flatcamEditors/FlatCAMExcEditor.py:3066 flatcamGUI/ObjectUI.py:781
-#: flatcamObjects/FlatCAMExcellon.py:1098
-#: flatcamObjects/FlatCAMExcellon.py:1188
-#: flatcamObjects/FlatCAMExcellon.py:1373 flatcamTools/ToolNCC.py:132
-#: flatcamTools/ToolPaint.py:128 flatcamTools/ToolPcbWizard.py:76
-#: flatcamTools/ToolProperties.py:416 flatcamTools/ToolProperties.py:476
-#: flatcamTools/ToolSolderPaste.py:85 tclCommands/TclCommandDrillcncjob.py:193
-msgid "Diameter"
-msgstr "Diametro"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1592
-msgid "Add/Delete Tool"
-msgstr "Aggiungi/Modifica utensile"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1594
-msgid ""
-"Add/Delete a tool to the tool list\n"
-"for this Excellon object."
-msgstr ""
-"Aggiungi/Modifica un utensile dalla lista utensili\n"
-"per questo oggetto Excellon."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1606 flatcamGUI/ObjectUI.py:1585
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:57
-msgid "Diameter for the new tool"
-msgstr "Diametro del nuovo utensile"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1616
-msgid "Add Tool"
-msgstr "Aggiunge utensile"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1618
-msgid ""
-"Add a new tool to the tool list\n"
-"with the diameter specified above."
-msgstr ""
-"Aggiungi un nuovo utensile alla lista\n"
-"con il diametro specificato sopra."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1630
-msgid "Delete Tool"
-msgstr "Cancella utensile"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1632
-msgid ""
-"Delete a tool in the tool list\n"
-"by selecting a row in the tool table."
-msgstr ""
-"Cancella un utensile dalla lista\n"
-"selezionandone la riga nella tabella."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1650 flatcamGUI/FlatCAMGUI.py:2019
-msgid "Resize Drill(s)"
-msgstr "Ridimensiona foro(i)"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1652
-msgid "Resize a drill or a selection of drills."
-msgstr "Ridimensiona un foro o una selezione di fori."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1659
-msgid "Resize Dia"
-msgstr "Diametro ridimensionamento"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1661
-msgid "Diameter to resize to."
-msgstr "Diametro al quale ridimensionare."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1672
-msgid "Resize"
-msgstr "Ridimensiona"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1674
-msgid "Resize drill(s)"
-msgstr "Ridimensiona foro(i)"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1699 flatcamGUI/FlatCAMGUI.py:2018
-#: flatcamGUI/FlatCAMGUI.py:2270
-msgid "Add Drill Array"
-msgstr "Aggiungi matrice di fori"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1701
-msgid "Add an array of drills (linear or circular array)"
-msgstr "Aggiunge una matrice di fori (lineare o circolare)"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1707
-msgid ""
-"Select the type of drills array to create.\n"
-"It can be Linear X(Y) or Circular"
-msgstr ""
-"Seleziona il tipo di matrice di fori da creare.\n"
-"Può essere lineare X(Y) o circolare"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1710
-#: flatcamEditors/FlatCAMExcEditor.py:1924
-#: flatcamEditors/FlatCAMGrbEditor.py:2775
-msgid "Linear"
-msgstr "Lineare"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1711
-#: flatcamEditors/FlatCAMExcEditor.py:1925
-#: flatcamEditors/FlatCAMGrbEditor.py:2776 flatcamGUI/ObjectUI.py:316
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:52
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:149
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:107
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:52
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:151
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:70
-#: flatcamTools/ToolExtractDrills.py:78 flatcamTools/ToolExtractDrills.py:201
-#: flatcamTools/ToolFiducials.py:220 flatcamTools/ToolNCC.py:221
-#: flatcamTools/ToolPaint.py:204 flatcamTools/ToolPunchGerber.py:89
-#: flatcamTools/ToolPunchGerber.py:229
-msgid "Circular"
-msgstr "Circolare"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1719
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:68
-msgid "Nr of drills"
-msgstr "Numero di fori"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1720
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:70
-msgid "Specify how many drills to be in the array."
-msgstr "Specifica quanti fori sono presenti nella matrice."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1738
-#: flatcamEditors/FlatCAMExcEditor.py:1788
-#: flatcamEditors/FlatCAMExcEditor.py:1860
-#: flatcamEditors/FlatCAMExcEditor.py:1953
-#: flatcamEditors/FlatCAMExcEditor.py:2004
-#: flatcamEditors/FlatCAMGrbEditor.py:1573
-#: flatcamEditors/FlatCAMGrbEditor.py:2804
-#: flatcamEditors/FlatCAMGrbEditor.py:2853
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:178
-msgid "Direction"
-msgstr "Direzione"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1740
-#: flatcamEditors/FlatCAMExcEditor.py:1955
-#: flatcamEditors/FlatCAMGrbEditor.py:2806
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:86
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:234
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:122
-msgid ""
-"Direction on which the linear array is oriented:\n"
-"- 'X' - horizontal axis \n"
-"- 'Y' - vertical axis or \n"
-"- 'Angle' - a custom angle for the array inclination"
-msgstr ""
-"Direzione di orientamento della matrice lineare:\n"
-"- 'X' - asse orizzontale \n"
-"- 'Y' - asse verticale o\n"
-"- 'Angolo' - angolo per l'inclinazione della matrice"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1747
-#: flatcamEditors/FlatCAMExcEditor.py:1869
-#: flatcamEditors/FlatCAMExcEditor.py:1962
-#: flatcamEditors/FlatCAMGrbEditor.py:2813
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:92
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:187
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:240
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:128
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:208
-#: flatcamTools/ToolFilm.py:256
-msgid "X"
-msgstr "X"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1748
-#: flatcamEditors/FlatCAMExcEditor.py:1870
-#: flatcamEditors/FlatCAMExcEditor.py:1963
-#: flatcamEditors/FlatCAMGrbEditor.py:2814
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:93
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:188
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:241
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:129
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:209
-#: flatcamTools/ToolFilm.py:257
-msgid "Y"
-msgstr "Y"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1749
-#: flatcamEditors/FlatCAMExcEditor.py:1766
-#: flatcamEditors/FlatCAMExcEditor.py:1800
-#: flatcamEditors/FlatCAMExcEditor.py:1871
-#: flatcamEditors/FlatCAMExcEditor.py:1875
-#: flatcamEditors/FlatCAMExcEditor.py:1964
-#: flatcamEditors/FlatCAMExcEditor.py:1982
-#: flatcamEditors/FlatCAMExcEditor.py:2016
-#: flatcamEditors/FlatCAMGrbEditor.py:2815
-#: flatcamEditors/FlatCAMGrbEditor.py:2832
-#: flatcamEditors/FlatCAMGrbEditor.py:2868
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:94
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:113
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:189
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:194
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:242
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:263
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:130
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:148
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:53
-#: flatcamTools/ToolDistance.py:120 flatcamTools/ToolDistanceMin.py:69
-#: flatcamTools/ToolTransform.py:60
-msgid "Angle"
-msgstr "Angolo"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1753
-#: flatcamEditors/FlatCAMExcEditor.py:1968
-#: flatcamEditors/FlatCAMGrbEditor.py:2819
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:100
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:248
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:136
-msgid "Pitch"
-msgstr "Passo"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1755
-#: flatcamEditors/FlatCAMExcEditor.py:1970
-#: flatcamEditors/FlatCAMGrbEditor.py:2821
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:102
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:250
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:138
-msgid "Pitch = Distance between elements of the array."
-msgstr "Passo = distanza tra due elementi della matrice."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1768
-#: flatcamEditors/FlatCAMExcEditor.py:1984
-msgid ""
-"Angle at which the linear array is placed.\n"
-"The precision is of max 2 decimals.\n"
-"Min value is: -360 degrees.\n"
-"Max value is: 360.00 degrees."
-msgstr ""
-"Angolo al quale è posizionata la matrice lineare.\n"
-"La precisione è al massimo di 2 decimali.\n"
-"Valore minimo: -360 gradi.\n"
-"Valore massimo: 360.00 gradi."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1789
-#: flatcamEditors/FlatCAMExcEditor.py:2005
-#: flatcamEditors/FlatCAMGrbEditor.py:2855
-msgid ""
-"Direction for circular array.Can be CW = clockwise or CCW = counter "
-"clockwise."
-msgstr ""
-"Direzione matrice circolare. Può essere CW = senso orario o CCW = senso "
-"antiorario."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1796
-#: flatcamEditors/FlatCAMExcEditor.py:2012
-#: flatcamEditors/FlatCAMGrbEditor.py:2863
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:129
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:136
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:286
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:142
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:170
-msgid "CW"
-msgstr "CW"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1797
-#: flatcamEditors/FlatCAMExcEditor.py:2013
-#: flatcamEditors/FlatCAMGrbEditor.py:2864
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:130
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:137
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:287
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:143
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:171
-msgid "CCW"
-msgstr "CCW"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1801
-#: flatcamEditors/FlatCAMExcEditor.py:2017
-#: flatcamEditors/FlatCAMGrbEditor.py:2870
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:115
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:145
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:265
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:295
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:150
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:179
-msgid "Angle at which each element in circular array is placed."
-msgstr "Angolo al quale è posizionato ogni elementodella matrice circolare."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1835
-msgid "Slot Parameters"
-msgstr "Parametri Slot"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1837
-msgid ""
-"Parameters for adding a slot (hole with oval shape)\n"
-"either single or as an part of an array."
-msgstr ""
-"Parametri per aggiungere uno slot (foro con bordi ovali)\n"
-"sia singolo sia come parte di una matrice."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1846
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162
-#: flatcamTools/ToolProperties.py:559
-msgid "Length"
-msgstr "Lunghezza"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1848
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:164
-msgid "Length = The length of the slot."
-msgstr "Lunghezza = lunghezza dello slot."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1862
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:180
-msgid ""
-"Direction on which the slot is oriented:\n"
-"- 'X' - horizontal axis \n"
-"- 'Y' - vertical axis or \n"
-"- 'Angle' - a custom angle for the slot inclination"
-msgstr ""
-"Direzione alla quale è orientato lo slot:\n"
-"- 'X' - asse orizzontale\n"
-"- 'Y' - asse verticale o \n"
-"- 'Angolo' - ancolo per l'inclinazione dello slot"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1877
-msgid ""
-"Angle at which the slot is placed.\n"
-"The precision is of max 2 decimals.\n"
-"Min value is: -360 degrees.\n"
-"Max value is: 360.00 degrees."
-msgstr ""
-"Angolo al quale è posizionato lo slot.\n"
-"La precisione è di massimo 2 decimali.\n"
-"Valore minimo: -360 gradi.\n"
-"Valore massimo: 360.00 gradi."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1910
-msgid "Slot Array Parameters"
-msgstr "Parametri matrice slot"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1912
-msgid "Parameters for the array of slots (linear or circular array)"
-msgstr "Parametri per la matrice di slot (matrice lineare o circolare)"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1921
-msgid ""
-"Select the type of slot array to create.\n"
-"It can be Linear X(Y) or Circular"
-msgstr ""
-"Seleziona il tipo di matrice di slot da creare.\n"
-"Può essere lineare (X,Y) o circolare"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1933
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:219
-msgid "Nr of slots"
-msgstr "Numero di Slot"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1934
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:221
-msgid "Specify how many slots to be in the array."
-msgstr "Specifica il numero di slot che comporranno la matrice."
-
-#: flatcamEditors/FlatCAMExcEditor.py:2452
-#: flatcamObjects/FlatCAMExcellon.py:410
-msgid "Total Drills"
-msgstr "Fori totali"
-
-#: flatcamEditors/FlatCAMExcEditor.py:2484
-#: flatcamObjects/FlatCAMExcellon.py:441
-msgid "Total Slots"
-msgstr "Slot totali"
-
-#: flatcamEditors/FlatCAMExcEditor.py:2559
-#: flatcamEditors/FlatCAMGeoEditor.py:1076
-#: flatcamEditors/FlatCAMGeoEditor.py:1117
-#: flatcamEditors/FlatCAMGeoEditor.py:1145
-#: flatcamEditors/FlatCAMGeoEditor.py:1173
-#: flatcamEditors/FlatCAMGeoEditor.py:1217
-#: flatcamEditors/FlatCAMGeoEditor.py:1252
-#: flatcamEditors/FlatCAMGeoEditor.py:1280
-#: flatcamObjects/FlatCAMGeometry.py:571 flatcamObjects/FlatCAMGeometry.py:1005
-#: flatcamObjects/FlatCAMGeometry.py:1752
-#: flatcamObjects/FlatCAMGeometry.py:2396 flatcamTools/ToolNCC.py:1493
-#: flatcamTools/ToolPaint.py:1244 flatcamTools/ToolPaint.py:1415
-#: flatcamTools/ToolSolderPaste.py:883 flatcamTools/ToolSolderPaste.py:956
-msgid "Wrong value format entered, use a number."
-msgstr "Formato valore errato, inserire un numero."
-
-#: flatcamEditors/FlatCAMExcEditor.py:2570
-msgid ""
-"Tool already in the original or actual tool list.\n"
-"Save and reedit Excellon if you need to add this tool. "
-msgstr ""
-"Utensile già presente nella lista.\n"
-"Salva e riedita l'Excellon se vuoi aggiungere questo utensile. "
-
-#: flatcamEditors/FlatCAMExcEditor.py:2579 flatcamGUI/FlatCAMGUI.py:4071
-msgid "Added new tool with dia"
-msgstr "Aggiunto nuovo utensile con diametro"
-
-#: flatcamEditors/FlatCAMExcEditor.py:2612
-msgid "Select a tool in Tool Table"
-msgstr "Seleziona un utensile dalla tabella"
-
-#: flatcamEditors/FlatCAMExcEditor.py:2642
-msgid "Deleted tool with diameter"
-msgstr "Eliminato utensile con diametro"
-
-#: flatcamEditors/FlatCAMExcEditor.py:2790
-msgid "Done. Tool edit completed."
-msgstr "Fatto. Modifica utensile completata."
-
-#: flatcamEditors/FlatCAMExcEditor.py:3352
-msgid "There are no Tools definitions in the file. Aborting Excellon creation."
-msgstr ""
-"Non ci sono definizioni di utensili nel file. Annullo creazione Excellon."
-
-#: flatcamEditors/FlatCAMExcEditor.py:3356
-msgid "An internal error has ocurred. See Shell.\n"
-msgstr "Errore interno. Vedi shell.\n"
-
-#: flatcamEditors/FlatCAMExcEditor.py:3361
-msgid "Creating Excellon."
-msgstr "Creazione Excellon."
-
-#: flatcamEditors/FlatCAMExcEditor.py:3373
-msgid "Excellon editing finished."
-msgstr "Modifica Excellon terminata."
-
-#: flatcamEditors/FlatCAMExcEditor.py:3390
-msgid "Cancelled. There is no Tool/Drill selected"
-msgstr "Errore: Nessun utensile/Foro selezionato"
-
-#: flatcamEditors/FlatCAMExcEditor.py:4003
-msgid "Done. Drill(s) deleted."
-msgstr "Fatto. Foro(i) cancellato(i)."
-
-#: flatcamEditors/FlatCAMExcEditor.py:4076
-#: flatcamEditors/FlatCAMExcEditor.py:4086
-#: flatcamEditors/FlatCAMGrbEditor.py:5063
-msgid "Click on the circular array Center position"
-msgstr "Clicca sulla posizione centrale della matrice circolare"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:85
-msgid "Buffer distance:"
-msgstr "Riempimento distanza:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:86
-msgid "Buffer corner:"
-msgstr "Riempimento angolo:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:88
-msgid ""
-"There are 3 types of corners:\n"
-" - 'Round': the corner is rounded for exterior buffer.\n"
-" - 'Square': the corner is met in a sharp angle for exterior buffer.\n"
-" - 'Beveled': the corner is a line that directly connects the features "
-"meeting in the corner"
-msgstr ""
-"Ci sono 3 tipi di angoli:\n"
-"- 'Arrotondato' : l'angolo è arrotondato per il buffer esterno.\n"
-"- 'Squadrato': l'angolo fiene raggiunto con un angolo acuto.\n"
-"- 'Smussato': l'angolo è una linea che connette direttamente le varie sezioni"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:94
-#: flatcamEditors/FlatCAMGrbEditor.py:2631
-msgid "Round"
-msgstr "Arrotondato"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:95
-#: flatcamEditors/FlatCAMGrbEditor.py:2632
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:68
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:175
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:68
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:177
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:143
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:291
-#: flatcamTools/ToolExtractDrills.py:94 flatcamTools/ToolExtractDrills.py:227
-#: flatcamTools/ToolNCC.py:583 flatcamTools/ToolPaint.py:527
-#: flatcamTools/ToolPunchGerber.py:105 flatcamTools/ToolPunchGerber.py:255
-#: flatcamTools/ToolQRCode.py:198
-msgid "Square"
-msgstr "Squadrato"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:96
-#: flatcamEditors/FlatCAMGrbEditor.py:2633
-msgid "Beveled"
-msgstr "Smussato"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:103
-msgid "Buffer Interior"
-msgstr "Buffer Interiore"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:105
-msgid "Buffer Exterior"
-msgstr "Buffer Esteriore"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:111
-msgid "Full Buffer"
-msgstr "Buffer completo"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:132
-#: flatcamEditors/FlatCAMGeoEditor.py:3017 flatcamGUI/FlatCAMGUI.py:1928
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:190
-msgid "Buffer Tool"
-msgstr "Utensile buffer"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:144
-#: flatcamEditors/FlatCAMGeoEditor.py:161
-#: flatcamEditors/FlatCAMGeoEditor.py:178
-#: flatcamEditors/FlatCAMGeoEditor.py:3036
-#: flatcamEditors/FlatCAMGeoEditor.py:3064
-#: flatcamEditors/FlatCAMGeoEditor.py:3092
-#: flatcamEditors/FlatCAMGrbEditor.py:5116
-msgid "Buffer distance value is missing or wrong format. Add it and retry."
-msgstr ""
-"Valore per la distanza buffer mancante o del formato errato. Aggiungilo e "
-"riprova."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:242
-msgid "Font"
-msgstr "Font"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:323 flatcamGUI/FlatCAMGUI.py:2208
-msgid "Text"
-msgstr "Testo"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:349
-msgid "Text Tool"
-msgstr "Utensile testo"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:405 flatcamGUI/FlatCAMGUI.py:511
-#: flatcamGUI/FlatCAMGUI.py:1158 flatcamGUI/ObjectUI.py:818
-#: flatcamGUI/ObjectUI.py:1662 flatcamObjects/FlatCAMExcellon.py:742
-#: flatcamObjects/FlatCAMExcellon.py:1084 flatcamObjects/FlatCAMGeometry.py:731
-#: flatcamTools/ToolNCC.py:331 flatcamTools/ToolNCC.py:797
-#: flatcamTools/ToolPaint.py:314 flatcamTools/ToolPaint.py:767
-msgid "Tool"
-msgstr "Strumenti"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:439 flatcamGUI/ObjectUI.py:364
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:43
-msgid "Tool dia"
-msgstr "Diametro utensile"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:441
-msgid "Diameter of the tool to be used in the operation."
-msgstr "Diametro dell'utensile da usare per questa operazione."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:487
-msgid ""
-"Algorithm to paint the polygons:\n"
-"- Standard: Fixed step inwards.\n"
-"- Seed-based: Outwards from seed.\n"
-"- Line-based: Parallel lines."
-msgstr ""
-"Algoritmo per la pittura:\n"
-"- Standard: passo fisso verso l'interno.\n"
-"- A base di semi: verso l'esterno dal seme.\n"
-"- Basato su linee: linee parallele."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:506
-msgid "Connect:"
-msgstr "Connetti:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:516
-msgid "Contour:"
-msgstr "Contorno:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:529 flatcamGUI/FlatCAMGUI.py:2212
-msgid "Paint"
-msgstr "Disegno"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:547 flatcamGUI/FlatCAMGUI.py:924
-#: flatcamGUI/FlatCAMGUI.py:2628 flatcamGUI/ObjectUI.py:2059
-#: flatcamTools/ToolPaint.py:43 flatcamTools/ToolPaint.py:738
-msgid "Paint Tool"
-msgstr "Strumento disegno"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:583
-#: flatcamEditors/FlatCAMGeoEditor.py:1055
-#: flatcamEditors/FlatCAMGeoEditor.py:3024
-#: flatcamEditors/FlatCAMGeoEditor.py:3052
-#: flatcamEditors/FlatCAMGeoEditor.py:3080
-#: flatcamEditors/FlatCAMGeoEditor.py:4502
-#: flatcamEditors/FlatCAMGrbEditor.py:5767
-msgid "Cancelled. No shape selected."
-msgstr "Cancellato. Nessuna forma selezionata."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:596
-#: flatcamEditors/FlatCAMGeoEditor.py:3042
-#: flatcamEditors/FlatCAMGeoEditor.py:3070
-#: flatcamEditors/FlatCAMGeoEditor.py:3098
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:59
-#: flatcamTools/ToolProperties.py:117 flatcamTools/ToolProperties.py:162
-msgid "Tools"
-msgstr "Strumento"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:607
-#: flatcamEditors/FlatCAMGeoEditor.py:991
-#: flatcamEditors/FlatCAMGrbEditor.py:5306
-#: flatcamEditors/FlatCAMGrbEditor.py:5703 flatcamGUI/FlatCAMGUI.py:945
-#: flatcamGUI/FlatCAMGUI.py:2649 flatcamTools/ToolTransform.py:460
-msgid "Transform Tool"
-msgstr "Strumento trasformazione"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:608
-#: flatcamEditors/FlatCAMGeoEditor.py:673
-#: flatcamEditors/FlatCAMGrbEditor.py:5307
-#: flatcamEditors/FlatCAMGrbEditor.py:5372
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:45
-#: flatcamTools/ToolTransform.py:24 flatcamTools/ToolTransform.py:466
-msgid "Rotate"
-msgstr "Ruota"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:609
-#: flatcamEditors/FlatCAMGrbEditor.py:5308 flatcamTools/ToolTransform.py:25
-msgid "Skew/Shear"
-msgstr "Inclina/Taglia"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:610
-#: flatcamEditors/FlatCAMGrbEditor.py:2680
-#: flatcamEditors/FlatCAMGrbEditor.py:5309 flatcamGUI/FlatCAMGUI.py:1063
-#: flatcamGUI/FlatCAMGUI.py:2140 flatcamGUI/FlatCAMGUI.py:2255
-#: flatcamGUI/FlatCAMGUI.py:2767 flatcamGUI/ObjectUI.py:125
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:95
-#: flatcamTools/ToolTransform.py:26
-msgid "Scale"
-msgstr "Scala"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:611
-#: flatcamEditors/FlatCAMGrbEditor.py:5310 flatcamTools/ToolTransform.py:27
-msgid "Mirror (Flip)"
-msgstr "Specchia"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:625
-#: flatcamEditors/FlatCAMGrbEditor.py:5324 flatcamGUI/FlatCAMGUI.py:856
-#: flatcamGUI/FlatCAMGUI.py:2564
-msgid "Editor"
-msgstr "Editor"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:657
-#: flatcamEditors/FlatCAMGrbEditor.py:5356
-msgid "Angle:"
-msgstr "Angolo:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:659
-#: flatcamEditors/FlatCAMGrbEditor.py:5358
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:55
-#: flatcamTools/ToolTransform.py:62
-msgid ""
-"Angle for Rotation action, in degrees.\n"
-"Float number between -360 and 359.\n"
-"Positive numbers for CW motion.\n"
-"Negative numbers for CCW motion."
-msgstr ""
-"Angolo per la rotazione, in gradi.\n"
-"Numeri float da -360 e 359.\n"
-"Numeri positivi per il senso orario.\n"
-"Numeri negativi per il senso antiorario."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:675
-#: flatcamEditors/FlatCAMGrbEditor.py:5374
-msgid ""
-"Rotate the selected shape(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected shapes."
-msgstr ""
-"Ruota le forme selezionate.\n"
-"Il punto di riferimento è al centro del rettangolo\n"
-"di selezione per tutte le forme selezionate."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:698
-#: flatcamEditors/FlatCAMGrbEditor.py:5397
-msgid "Angle X:"
-msgstr "Angolo X:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:700
-#: flatcamEditors/FlatCAMGeoEditor.py:720
-#: flatcamEditors/FlatCAMGrbEditor.py:5399
-#: flatcamEditors/FlatCAMGrbEditor.py:5419
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:74
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:88
-#: flatcamTools/ToolCalibration.py:505 flatcamTools/ToolCalibration.py:518
-msgid ""
-"Angle for Skew action, in degrees.\n"
-"Float number between -360 and 359."
-msgstr ""
-"Angolo per l'inclinazione, in gradi.\n"
-"Numeri float tra -360 e 359."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:711
-#: flatcamEditors/FlatCAMGrbEditor.py:5410 flatcamTools/ToolTransform.py:467
-msgid "Skew X"
-msgstr "Inclinazione X"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:713
-#: flatcamEditors/FlatCAMGeoEditor.py:733
-#: flatcamEditors/FlatCAMGrbEditor.py:5412
-#: flatcamEditors/FlatCAMGrbEditor.py:5432
-msgid ""
-"Skew/shear the selected shape(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected shapes."
-msgstr ""
-"Inclina le forme selezionate.\n"
-"Il punto di riferimento è il centro del rettangolo\n"
-"che contiene tutte le forme selezionate."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:718
-#: flatcamEditors/FlatCAMGrbEditor.py:5417
-msgid "Angle Y:"
-msgstr "Angolo Y:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:731
-#: flatcamEditors/FlatCAMGrbEditor.py:5430 flatcamTools/ToolTransform.py:468
-msgid "Skew Y"
-msgstr "Inclina Y"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:759
-#: flatcamEditors/FlatCAMGrbEditor.py:5458
-msgid "Factor X:"
-msgstr "Fattore X:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:761
-#: flatcamEditors/FlatCAMGrbEditor.py:5460 flatcamTools/ToolCalibration.py:469
-msgid "Factor for Scale action over X axis."
-msgstr "Fattore per l'azione scala sull'asse X."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:771
-#: flatcamEditors/FlatCAMGrbEditor.py:5470 flatcamTools/ToolTransform.py:469
-msgid "Scale X"
-msgstr "Scala X"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:773
-#: flatcamEditors/FlatCAMGeoEditor.py:792
-#: flatcamEditors/FlatCAMGrbEditor.py:5472
-#: flatcamEditors/FlatCAMGrbEditor.py:5491
-msgid ""
-"Scale the selected shape(s).\n"
-"The point of reference depends on \n"
-"the Scale reference checkbox state."
-msgstr ""
-"Ridimensiona le forme selezionate.\n"
-"Il punto di riferimento dipende dallo\n"
-"stato del checkbox Riferimento scala."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:778
-#: flatcamEditors/FlatCAMGrbEditor.py:5477
-msgid "Factor Y:"
-msgstr "Fattore Y:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:780
-#: flatcamEditors/FlatCAMGrbEditor.py:5479 flatcamTools/ToolCalibration.py:481
-msgid "Factor for Scale action over Y axis."
-msgstr "Fattore per l'azione scala sull'asse Y."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:790
-#: flatcamEditors/FlatCAMGrbEditor.py:5489 flatcamTools/ToolTransform.py:470
-msgid "Scale Y"
-msgstr "Scala Y"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:799
-#: flatcamEditors/FlatCAMGrbEditor.py:5498
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:124
-#: flatcamTools/ToolTransform.py:189
-msgid "Link"
-msgstr "Collegamento"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:801
-#: flatcamEditors/FlatCAMGrbEditor.py:5500
-msgid ""
-"Scale the selected shape(s)\n"
-"using the Scale Factor X for both axis."
-msgstr ""
-"Scale the selected shape(s).\n"
-"usando il fattore di scala X per entrambi gli assi."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:807
-#: flatcamEditors/FlatCAMGrbEditor.py:5506
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:132
-#: flatcamTools/ToolTransform.py:196
-msgid "Scale Reference"
-msgstr "Riferimento scala"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:809
-#: flatcamEditors/FlatCAMGrbEditor.py:5508
-msgid ""
-"Scale the selected shape(s)\n"
-"using the origin reference when checked,\n"
-"and the center of the biggest bounding box\n"
-"of the selected shapes when unchecked."
-msgstr ""
-"Ridimensiona le forme selezionate\n"
-"utilizzando il riferimento di origine quando selezionato,\n"
-"e il centro del più grande rettangolo di selezione\n"
-"delle forme selezionate se non selezionata."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:837
-#: flatcamEditors/FlatCAMGrbEditor.py:5537
-msgid "Value X:"
-msgstr "Valore X:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:839
-#: flatcamEditors/FlatCAMGrbEditor.py:5539
-msgid "Value for Offset action on X axis."
-msgstr "Valore per l'azione Offset sull'asse X."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:849
-#: flatcamEditors/FlatCAMGrbEditor.py:5549 flatcamTools/ToolTransform.py:473
-msgid "Offset X"
-msgstr "Offset X"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:851
-#: flatcamEditors/FlatCAMGeoEditor.py:871
-#: flatcamEditors/FlatCAMGrbEditor.py:5551
-#: flatcamEditors/FlatCAMGrbEditor.py:5571
-msgid ""
-"Offset the selected shape(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected shapes.\n"
-msgstr ""
-"Offset delle forme selezionate.\n"
-"Il punto di riferimento è il centro del\n"
-"rettangolo di selezione per tutte le forme selezionate.\n"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:857
-#: flatcamEditors/FlatCAMGrbEditor.py:5557
-msgid "Value Y:"
-msgstr "Valore Y:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:859
-#: flatcamEditors/FlatCAMGrbEditor.py:5559
-msgid "Value for Offset action on Y axis."
-msgstr "Valore per l'azione Offset sull'asse Y."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:869
-#: flatcamEditors/FlatCAMGrbEditor.py:5569 flatcamTools/ToolTransform.py:474
-msgid "Offset Y"
-msgstr "Offset X"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:900
-#: flatcamEditors/FlatCAMGrbEditor.py:5600 flatcamTools/ToolTransform.py:475
-msgid "Flip on X"
-msgstr "Capovolgi in X"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:902
-#: flatcamEditors/FlatCAMGeoEditor.py:909
-#: flatcamEditors/FlatCAMGrbEditor.py:5602
-#: flatcamEditors/FlatCAMGrbEditor.py:5609
-msgid ""
-"Flip the selected shape(s) over the X axis.\n"
-"Does not create a new shape."
-msgstr ""
-"Capovolgi le forme selezionate sull'asse X.\n"
-"Non crea una nuova forma."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:907
-#: flatcamEditors/FlatCAMGrbEditor.py:5607 flatcamTools/ToolTransform.py:476
-msgid "Flip on Y"
-msgstr "Capovolgi in Y"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:915
-#: flatcamEditors/FlatCAMGrbEditor.py:5615
-msgid "Ref Pt"
-msgstr "Punto di riferimento"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:917
-#: flatcamEditors/FlatCAMGrbEditor.py:5617
-msgid ""
-"Flip the selected shape(s)\n"
-"around the point in Point Entry Field.\n"
-"\n"
-"The point coordinates can be captured by\n"
-"left click on canvas together with pressing\n"
-"SHIFT key. \n"
-"Then click Add button to insert coordinates.\n"
-"Or enter the coords in format (x, y) in the\n"
-"Point Entry field and click Flip on X(Y)"
-msgstr ""
-"Capovolgi le forme selezionate\n"
-"attorno al punto nel campo di inserimento punti.\n"
-"\n"
-"Le coordinate del punto possono essere acquisite da\n"
-"un clic sinistro sui canvas assieme\n"
-"al tasto SHIFT.\n"
-"Quindi fare clic sul pulsante Aggiungi per inserire le coordinate.\n"
-"Oppure inserisci le coordinate nel formato (x, y) nel\n"
-"campo Inserisci Punto e fai clic su Capovolgi su X(Y)"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:929
-#: flatcamEditors/FlatCAMGrbEditor.py:5629
-msgid "Point:"
-msgstr "Punto:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:931
-#: flatcamEditors/FlatCAMGrbEditor.py:5631 flatcamTools/ToolTransform.py:299
-msgid ""
-"Coordinates in format (x, y) used as reference for mirroring.\n"
-"The 'x' in (x, y) will be used when using Flip on X and\n"
-"the 'y' in (x, y) will be used when using Flip on Y."
-msgstr ""
-"Coordinate in formato (x, y) utilizzate come riferimento per il mirroring.\n"
-"La 'x' in (x, y) verrà utilizzata quando si utilizza Capovolgi su X e\n"
-"la 'y' in (x, y) verrà usata quando si usa Capovolgi su Y."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:941
-#: flatcamEditors/FlatCAMGrbEditor.py:5643 flatcamTools/ToolTransform.py:309
-msgid ""
-"The point coordinates can be captured by\n"
-"left click on canvas together with pressing\n"
-"SHIFT key. Then click Add button to insert."
-msgstr ""
-"Le coordinate del punto possono essere acquisite da\n"
-"un click sinistro sul canvas premendo anche il tasto\n"
-"SHIFT. Quindi fare clic sul pulsante Aggiungi per inserire."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1304
-#: flatcamEditors/FlatCAMGrbEditor.py:5951
-msgid "No shape selected. Please Select a shape to rotate!"
-msgstr "Nessuna forma selezionata. Seleziona una forma da ruotare!"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1307
-#: flatcamEditors/FlatCAMGrbEditor.py:5954 flatcamTools/ToolTransform.py:679
-msgid "Appying Rotate"
-msgstr "Applico Rotazione"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1333
-#: flatcamEditors/FlatCAMGrbEditor.py:5986
-msgid "Done. Rotate completed."
-msgstr "Fatto. Rotazione completata."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1335
-msgid "Rotation action was not executed"
-msgstr "Azione rotazione non effettuata"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1354
-#: flatcamEditors/FlatCAMGrbEditor.py:6005
-msgid "No shape selected. Please Select a shape to flip!"
-msgstr "Nessuna forma selezionata. Seleziona una forma da capovolgere!"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1357
-#: flatcamEditors/FlatCAMGrbEditor.py:6008 flatcamTools/ToolTransform.py:728
-msgid "Applying Flip"
-msgstr "Applico il capovolgimento"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1386
-#: flatcamEditors/FlatCAMGrbEditor.py:6046 flatcamTools/ToolTransform.py:769
-msgid "Flip on the Y axis done"
-msgstr "Capovolgimento sull'asse Y effettuato"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1390
-#: flatcamEditors/FlatCAMGrbEditor.py:6055 flatcamTools/ToolTransform.py:778
-msgid "Flip on the X axis done"
-msgstr "Capovolgimento sull'asse X effettuato"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1398
-msgid "Flip action was not executed"
-msgstr "Azione capovolgimento non effettuata"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1416
-#: flatcamEditors/FlatCAMGrbEditor.py:6075
-msgid "No shape selected. Please Select a shape to shear/skew!"
-msgstr "Nessuna forma selezionata. Seleziona una forma da inclinare!"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1419
-#: flatcamEditors/FlatCAMGrbEditor.py:6078 flatcamTools/ToolTransform.py:801
-msgid "Applying Skew"
-msgstr "Applico inclinazione"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1442
-#: flatcamEditors/FlatCAMGrbEditor.py:6112
-msgid "Skew on the X axis done"
-msgstr "Inclinazione sull'asse X effettuata"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1444
-#: flatcamEditors/FlatCAMGrbEditor.py:6114
-msgid "Skew on the Y axis done"
-msgstr "Inclinazione sull'asse Y effettuata"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1447
-msgid "Skew action was not executed"
-msgstr "Azione inclinazione non effettuata"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1469
-#: flatcamEditors/FlatCAMGrbEditor.py:6136
-msgid "No shape selected. Please Select a shape to scale!"
-msgstr "Nessuna forma selezionata. Seleziona una forma da riscalare!"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1472
-#: flatcamEditors/FlatCAMGrbEditor.py:6139 flatcamTools/ToolTransform.py:847
-msgid "Applying Scale"
-msgstr "Applicare scala"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1504
-#: flatcamEditors/FlatCAMGrbEditor.py:6176
-msgid "Scale on the X axis done"
-msgstr "Riscalatura su asse X effettuata"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1506
-#: flatcamEditors/FlatCAMGrbEditor.py:6178
-msgid "Scale on the Y axis done"
-msgstr "Riscalatura su asse Y effettuata"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1508
-msgid "Scale action was not executed"
-msgstr "Azione riscalatura non effettuata"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1523
-#: flatcamEditors/FlatCAMGrbEditor.py:6195
-msgid "No shape selected. Please Select a shape to offset!"
-msgstr "Nessuna forma selezionata. Seleziona una forma a cui applicare offset!"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1526
-#: flatcamEditors/FlatCAMGrbEditor.py:6198 flatcamTools/ToolTransform.py:897
-msgid "Applying Offset"
-msgstr "Applicazione offset"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1536
-#: flatcamEditors/FlatCAMGrbEditor.py:6219
-msgid "Offset on the X axis done"
-msgstr "Offset sull'asse X applicato"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1538
-#: flatcamEditors/FlatCAMGrbEditor.py:6221
-msgid "Offset on the Y axis done"
-msgstr "Offset sull'asse Y applicato"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1541
-msgid "Offset action was not executed"
-msgstr "Offset non applicato"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1545
-#: flatcamEditors/FlatCAMGrbEditor.py:6228
-msgid "Rotate ..."
-msgstr "Ruota ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1546
-#: flatcamEditors/FlatCAMGeoEditor.py:1601
-#: flatcamEditors/FlatCAMGeoEditor.py:1618
-#: flatcamEditors/FlatCAMGrbEditor.py:6229
-#: flatcamEditors/FlatCAMGrbEditor.py:6278
-#: flatcamEditors/FlatCAMGrbEditor.py:6293
-msgid "Enter an Angle Value (degrees)"
-msgstr "Inserire un angolo (in gradi)"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1555
-#: flatcamEditors/FlatCAMGrbEditor.py:6237
-msgid "Geometry shape rotate done"
-msgstr "Forme geometriche ruotate"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1559
-#: flatcamEditors/FlatCAMGrbEditor.py:6240
-msgid "Geometry shape rotate cancelled"
-msgstr "Forme geometriche NON ruotate"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1564
-#: flatcamEditors/FlatCAMGrbEditor.py:6245
-msgid "Offset on X axis ..."
-msgstr "Offset su asse X ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1565
-#: flatcamEditors/FlatCAMGeoEditor.py:1584
-#: flatcamEditors/FlatCAMGrbEditor.py:6246
-#: flatcamEditors/FlatCAMGrbEditor.py:6263
-msgid "Enter a distance Value"
-msgstr "Valore di distanza"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1574
-#: flatcamEditors/FlatCAMGrbEditor.py:6254
-msgid "Geometry shape offset on X axis done"
-msgstr "Offset su forme geometria su asse X applicato"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1578
-#: flatcamEditors/FlatCAMGrbEditor.py:6257
-msgid "Geometry shape offset X cancelled"
-msgstr "Offset su forme geometria su asse X annullato"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1583
-#: flatcamEditors/FlatCAMGrbEditor.py:6262
-msgid "Offset on Y axis ..."
-msgstr "Offset su asse Y ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1593
-#: flatcamEditors/FlatCAMGrbEditor.py:6271
-msgid "Geometry shape offset on Y axis done"
-msgstr "Offset su forme geometria su asse Y applicato"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1597
-msgid "Geometry shape offset on Y axis canceled"
-msgstr "Offset su forme geometria su asse Y annullato"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1600
-#: flatcamEditors/FlatCAMGrbEditor.py:6277
-msgid "Skew on X axis ..."
-msgstr "Inclinazione su asse Y ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1610
-#: flatcamEditors/FlatCAMGrbEditor.py:6286
-msgid "Geometry shape skew on X axis done"
-msgstr "Inclinazione su asse X effettuato"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1614
-msgid "Geometry shape skew on X axis canceled"
-msgstr "Inclinazione su asse X annullata"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1617
-#: flatcamEditors/FlatCAMGrbEditor.py:6292
-msgid "Skew on Y axis ..."
-msgstr "Inclinazione su asse Y ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1627
-#: flatcamEditors/FlatCAMGrbEditor.py:6301
-msgid "Geometry shape skew on Y axis done"
-msgstr "Inclinazione su asse Y effettuato"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1631
-msgid "Geometry shape skew on Y axis canceled"
-msgstr "Inclinazione su asse Y annullata"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2008
-#: flatcamEditors/FlatCAMGeoEditor.py:2079
-#: flatcamEditors/FlatCAMGrbEditor.py:1437
-#: flatcamEditors/FlatCAMGrbEditor.py:1515
-msgid "Click on Center point ..."
-msgstr "Clicca sul punto centrale ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2021
-#: flatcamEditors/FlatCAMGrbEditor.py:1447
-msgid "Click on Perimeter point to complete ..."
-msgstr "Fare clic sul punto perimetrale per completare ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2053
-msgid "Done. Adding Circle completed."
-msgstr "Fatto. Aggiungi cerchio completato."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2107
-#: flatcamEditors/FlatCAMGrbEditor.py:1548
-msgid "Click on Start point ..."
-msgstr "Fare clic sul punto iniziale ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2109
-#: flatcamEditors/FlatCAMGrbEditor.py:1550
-msgid "Click on Point3 ..."
-msgstr "Clicca sul punto 3 ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2111
-#: flatcamEditors/FlatCAMGrbEditor.py:1552
-msgid "Click on Stop point ..."
-msgstr "Clicca sul punto di stop ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2116
-#: flatcamEditors/FlatCAMGrbEditor.py:1557
-msgid "Click on Stop point to complete ..."
-msgstr "Clicca sul punto di stop per completare ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2118
-#: flatcamEditors/FlatCAMGrbEditor.py:1559
-msgid "Click on Point2 to complete ..."
-msgstr "Clicca sul punto 2 per completare ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2120
-#: flatcamEditors/FlatCAMGrbEditor.py:1561
-msgid "Click on Center point to complete ..."
-msgstr "Clicca sul punto centrale per completare ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2132
-#, python-format
-msgid "Direction: %s"
-msgstr "Direzione: %s"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2146
-#: flatcamEditors/FlatCAMGrbEditor.py:1587
-msgid "Mode: Start -> Stop -> Center. Click on Start point ..."
-msgstr "Modo: Start -> Stop -> Centro. Clicca sul punto di partenza ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2149
-#: flatcamEditors/FlatCAMGrbEditor.py:1590
-msgid "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..."
-msgstr "Modo: Punto1 -> Punto3 -> Punto2. Clicca sul punto1 ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2152
-#: flatcamEditors/FlatCAMGrbEditor.py:1593
-msgid "Mode: Center -> Start -> Stop. Click on Center point ..."
-msgstr "Modo: Centro -> Start -> Stop. Clicca sul punto centrale ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2293
-msgid "Done. Arc completed."
-msgstr "Fatto. Arco completato."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2324
-#: flatcamEditors/FlatCAMGeoEditor.py:2397
-msgid "Click on 1st corner ..."
-msgstr "Clicca sul primo angolo ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2336
-msgid "Click on opposite corner to complete ..."
-msgstr "Clicca sull'angolo opposto per completare ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2366
-msgid "Done. Rectangle completed."
-msgstr "Fatto. Rettangolo completato."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2410 flatcamTools/ToolNCC.py:1728
-#: flatcamTools/ToolPaint.py:1623
-msgid "Click on next Point or click right mouse button to complete ..."
-msgstr ""
-"Cliccare sul punto successivo o fare clic con il tasto destro del mouse per "
-"completare ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2441
-msgid "Done. Polygon completed."
-msgstr "Fatto. Poligono completato."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2455
-#: flatcamEditors/FlatCAMGeoEditor.py:2520
-#: flatcamEditors/FlatCAMGrbEditor.py:1113
-#: flatcamEditors/FlatCAMGrbEditor.py:1324
-msgid "Backtracked one point ..."
-msgstr "Indietro di un punto ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2498
-msgid "Done. Path completed."
-msgstr "Fatto. Percorso completato."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2657
-msgid "No shape selected. Select a shape to explode"
-msgstr "Nessuna forma selezionata. Seleziona una forma da esplodere"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2690
-msgid "Done. Polygons exploded into lines."
-msgstr "Fatto. Poligono esploso in linee."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2722
-msgid "MOVE: No shape selected. Select a shape to move"
-msgstr "SPOSTA: nessuna forma selezionata. Seleziona una forma da spostare"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2725
-#: flatcamEditors/FlatCAMGeoEditor.py:2745
-msgid " MOVE: Click on reference point ..."
-msgstr " SPOSTA: fare clic sul punto di riferimento ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2730
-msgid " Click on destination point ..."
-msgstr " Clicca sul punto di riferimento ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2770
-msgid "Done. Geometry(s) Move completed."
-msgstr "Fatto. Spostamento geometria(e) completato."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2903
-msgid "Done. Geometry(s) Copy completed."
-msgstr "Fatto. Copia geometria(e) completata."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2934
-#: flatcamEditors/FlatCAMGrbEditor.py:899
-msgid "Click on 1st point ..."
-msgstr "Clicca sul primo punto ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2958
-msgid ""
-"Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. "
-"Error"
-msgstr ""
-"Font (carattere) non supportato. Sono supportati solo Regular, Bold, Italic "
-"e BoldItalic. Errore"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2966
-msgid "No text to add."
-msgstr "Nessun testo da aggiungere."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2976
-msgid " Done. Adding Text completed."
-msgstr " Fatto. Testo aggiunto."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3013
-msgid "Create buffer geometry ..."
-msgstr "Crea geometria buffer ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3048
-#: flatcamEditors/FlatCAMGrbEditor.py:5160
-msgid "Done. Buffer Tool completed."
-msgstr "Fatto. Strumento buffer completato."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3076
-msgid "Done. Buffer Int Tool completed."
-msgstr "Fatto. Strumento buffer interno completato."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3104
-msgid "Done. Buffer Ext Tool completed."
-msgstr "Fatto. Strumento buffer esterno completato."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3153
-#: flatcamEditors/FlatCAMGrbEditor.py:2153
-msgid "Select a shape to act as deletion area ..."
-msgstr "Seleziona una forma da utilizzare come area di eliminazione ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3155
-#: flatcamEditors/FlatCAMGeoEditor.py:3181
-#: flatcamEditors/FlatCAMGeoEditor.py:3187
-#: flatcamEditors/FlatCAMGrbEditor.py:2155
-msgid "Click to pick-up the erase shape..."
-msgstr "Fai clic per selezionare la forma di cancellazione ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3191
-#: flatcamEditors/FlatCAMGrbEditor.py:2214
-msgid "Click to erase ..."
-msgstr "Clicca per cancellare ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3220
-#: flatcamEditors/FlatCAMGrbEditor.py:2247
-msgid "Done. Eraser tool action completed."
-msgstr "Fatto. Azione dello strumento gomma completata."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3270
-msgid "Create Paint geometry ..."
-msgstr "Crea geometria di disegno ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3283
-#: flatcamEditors/FlatCAMGrbEditor.py:2410
-msgid "Shape transformations ..."
-msgstr "Trasformazioni di forma ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3339
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:27
-msgid "Geometry Editor"
-msgstr "Editor Geometrie"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3345
-#: flatcamEditors/FlatCAMGrbEditor.py:2488
-#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263
-#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2246
-#: flatcamTools/ToolCutOut.py:95
-msgid "Type"
-msgstr "Tipo"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3345 flatcamGUI/ObjectUI.py:218
-#: flatcamGUI/ObjectUI.py:742 flatcamGUI/ObjectUI.py:1433
-#: flatcamGUI/ObjectUI.py:2155 flatcamGUI/ObjectUI.py:2459
-#: flatcamGUI/ObjectUI.py:2526 flatcamTools/ToolCalibration.py:234
-#: flatcamTools/ToolFiducials.py:73
-msgid "Name"
-msgstr "Nome"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3587
-msgid "Ring"
-msgstr "Anello"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3589
-msgid "Line"
-msgstr "Linea"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3591 flatcamGUI/FlatCAMGUI.py:2202
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:328
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:292
-#: flatcamTools/ToolNCC.py:584 flatcamTools/ToolPaint.py:528
-msgid "Polygon"
-msgstr "Poligono"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3593
-msgid "Multi-Line"
-msgstr "Multi-Linea"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3595
-msgid "Multi-Polygon"
-msgstr "Multi-Poligono"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3602
-msgid "Geo Elem"
-msgstr "Elemento Geom"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4076
-msgid "Editing MultiGeo Geometry, tool"
-msgstr "Modifica di Geometria MultiGeo, strumento"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4078
-msgid "with diameter"
-msgstr "con diametro"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4509 flatcamGUI/FlatCAMGUI.py:3753
-#: flatcamGUI/FlatCAMGUI.py:3799 flatcamGUI/FlatCAMGUI.py:3817
-#: flatcamGUI/FlatCAMGUI.py:3961 flatcamGUI/FlatCAMGUI.py:4000
-#: flatcamGUI/FlatCAMGUI.py:4012 flatcamGUI/FlatCAMGUI.py:4029
-msgid "Click on target point."
-msgstr "Fai clic sul punto target."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4823
-#: flatcamEditors/FlatCAMGeoEditor.py:4858
-msgid "A selection of at least 2 geo items is required to do Intersection."
-msgstr ""
-"Per effettuare l'intersezione è necessaria una selezione di almeno 2 "
-"elementi geometrici."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4944
-#: flatcamEditors/FlatCAMGeoEditor.py:5048
-msgid ""
-"Negative buffer value is not accepted. Use Buffer interior to generate an "
-"'inside' shape"
-msgstr ""
-"Valore di buffer negativi non accettati. Usa l'interno del buffer per "
-"generare una forma \"interna\""
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4954
-#: flatcamEditors/FlatCAMGeoEditor.py:5007
-#: flatcamEditors/FlatCAMGeoEditor.py:5057
-msgid "Nothing selected for buffering."
-msgstr "Niente di selezionato per il buffering."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4959
-#: flatcamEditors/FlatCAMGeoEditor.py:5011
-#: flatcamEditors/FlatCAMGeoEditor.py:5062
-msgid "Invalid distance for buffering."
-msgstr "Distanza non valida per il buffering."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4983
-#: flatcamEditors/FlatCAMGeoEditor.py:5082
-msgid "Failed, the result is empty. Choose a different buffer value."
-msgstr "Fallito, il risultato è vuoto. Scegli un valore di buffer diverso."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4994
-msgid "Full buffer geometry created."
-msgstr "Geometria buffer completa creata."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5000
-msgid "Negative buffer value is not accepted."
-msgstr "Il valore negativo del buffer non è accettato."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5031
-msgid "Failed, the result is empty. Choose a smaller buffer value."
-msgstr "Fallito, il risultato è vuoto. Scegli un valore di buffer più piccolo."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5041
-msgid "Interior buffer geometry created."
-msgstr "Geometria del buffer interno creata."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5092
-msgid "Exterior buffer geometry created."
-msgstr "Geometria del buffer esterno creata."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5098
-#, python-format
-msgid "Could not do Paint. Overlap value has to be less than 100%%."
-msgstr ""
-"Impossibile fare Paint. Il valore di sovrapposizione deve essere inferiore a "
-"100%%."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5105
-msgid "Nothing selected for painting."
-msgstr "Nulla di selezionato per Paint."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5111
-msgid "Invalid value for"
-msgstr "Valore non valido per"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5170
-msgid ""
-"Could not do Paint. Try a different combination of parameters. Or a "
-"different method of Paint"
-msgstr ""
-"Impossibile fare Paint. Prova una diversa combinazione di parametri. O un "
-"metodo diverso di Paint"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5181
-msgid "Paint done."
-msgstr "Paint fatto."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:213
-msgid "To add an Pad first select a aperture in Aperture Table"
-msgstr ""
-"Per aggiungere un pad, seleziona prima un'apertura nella tabella Aperture"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:220
-#: flatcamEditors/FlatCAMGrbEditor.py:420
-msgid "Aperture size is zero. It needs to be greater than zero."
-msgstr "La dimensione dell'apertura è zero. Deve essere maggiore di zero."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:373
-#: flatcamEditors/FlatCAMGrbEditor.py:686
-msgid ""
-"Incompatible aperture type. Select an aperture with type 'C', 'R' or 'O'."
-msgstr ""
-"Tipo di apertura incompatibile. Seleziona un'apertura con tipo 'C', 'R' o "
-"'O'."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:385
-msgid "Done. Adding Pad completed."
-msgstr "Fatto. Aggiunta del pad completata."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:412
-msgid "To add an Pad Array first select a aperture in Aperture Table"
-msgstr ""
-"Per aggiungere una matrice pad, selezionare prima un'apertura nella tabella "
-"Aperture"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:492
-msgid "Click on the Pad Circular Array Start position"
-msgstr "Fare clic sulla posizione iniziale della matrice circolare del pad"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:712
-msgid "Too many Pads for the selected spacing angle."
-msgstr "Troppi pad per l'angolo di spaziatura selezionato."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:735
-msgid "Done. Pad Array added."
-msgstr "Fatto. Matrice di Pad aggiunta."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:760
-msgid "Select shape(s) and then click ..."
-msgstr "Seleziona la forma(e) e quindi fai clic su ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:772
-msgid "Failed. Nothing selected."
-msgstr "Errore. Niente di selezionato."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:788
-msgid ""
-"Failed. Poligonize works only on geometries belonging to the same aperture."
-msgstr ""
-"Errore. Poligonizza funziona solo su geometrie appartenenti alla stessa "
-"apertura."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:842
-msgid "Done. Poligonize completed."
-msgstr "Fatto. Poligonizza completata."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:897
-#: flatcamEditors/FlatCAMGrbEditor.py:1130
-#: flatcamEditors/FlatCAMGrbEditor.py:1154
-msgid "Corner Mode 1: 45 degrees ..."
-msgstr "Modalità angolo 1: 45 gradi ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:909
-#: flatcamEditors/FlatCAMGrbEditor.py:1239
-msgid "Click on next Point or click Right mouse button to complete ..."
-msgstr ""
-"Fare clic sul punto successivo o fare clic con il pulsante destro del mouse "
-"per completare ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1118
-#: flatcamEditors/FlatCAMGrbEditor.py:1151
-msgid "Corner Mode 2: Reverse 45 degrees ..."
-msgstr "Modalità angolo 2: indietro di 45 gradi ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1121
-#: flatcamEditors/FlatCAMGrbEditor.py:1148
-msgid "Corner Mode 3: 90 degrees ..."
-msgstr "Modalità angolo 3: 90 gradi ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1124
-#: flatcamEditors/FlatCAMGrbEditor.py:1145
-msgid "Corner Mode 4: Reverse 90 degrees ..."
-msgstr "Modalità angolo 4: indietro di 90 gradi ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1127
-#: flatcamEditors/FlatCAMGrbEditor.py:1142
-msgid "Corner Mode 5: Free angle ..."
-msgstr "Modalità angolo 5: angolo libero ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1184
-#: flatcamEditors/FlatCAMGrbEditor.py:1360
-#: flatcamEditors/FlatCAMGrbEditor.py:1399
-msgid "Track Mode 1: 45 degrees ..."
-msgstr "Traccia modalità 1: 45 gradi ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1340
-#: flatcamEditors/FlatCAMGrbEditor.py:1394
-msgid "Track Mode 2: Reverse 45 degrees ..."
-msgstr "Traccia modalità 2: indietro 45 gradi ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1345
-#: flatcamEditors/FlatCAMGrbEditor.py:1389
-msgid "Track Mode 3: 90 degrees ..."
-msgstr "Traccia modalità 3: 90 gradi ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1350
-#: flatcamEditors/FlatCAMGrbEditor.py:1384
-msgid "Track Mode 4: Reverse 90 degrees ..."
-msgstr "Traccia modalità 4: indietro 90 gradi ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1355
-#: flatcamEditors/FlatCAMGrbEditor.py:1379
-msgid "Track Mode 5: Free angle ..."
-msgstr "Traccia modalità 5: angolo libero ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1780
-msgid "Scale the selected Gerber apertures ..."
-msgstr "Ridimensiona le aperture Gerber selezionate ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1822
-msgid "Buffer the selected apertures ..."
-msgstr "Buffer delle aperture selezionate ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1864
-msgid "Mark polygon areas in the edited Gerber ..."
-msgstr "Contrassegna le aree poligonali nel Gerber modificato ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1930
-msgid "Nothing selected to move"
-msgstr "Nulla di selezionato da spostare"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2055
-msgid "Done. Apertures Move completed."
-msgstr "Fatto. Spostamento aperture completato."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2137
-msgid "Done. Apertures copied."
-msgstr "Fatto. Aperture copiate."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2455 flatcamGUI/FlatCAMGUI.py:2233
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:27
-msgid "Gerber Editor"
-msgstr "Editor Gerber"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2475 flatcamGUI/ObjectUI.py:228
-#: flatcamTools/ToolProperties.py:159
-msgid "Apertures"
-msgstr "Aperture"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2477 flatcamGUI/ObjectUI.py:230
-msgid "Apertures Table for the Gerber Object."
-msgstr "Tabella delle aperture per l'oggetto Gerber."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2488
-#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263
-msgid "Code"
-msgstr "Codice"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2488
-#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:103
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43
-#: flatcamTools/ToolCopperThieving.py:261
-#: flatcamTools/ToolCopperThieving.py:301 flatcamTools/ToolFiducials.py:156
-msgid "Size"
-msgstr "Dimensione"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2488
-#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263
-msgid "Dim"
-msgstr "Dim"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2493 flatcamGUI/ObjectUI.py:267
-msgid "Index"
-msgstr "Indice"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2495
-#: flatcamEditors/FlatCAMGrbEditor.py:2524 flatcamGUI/ObjectUI.py:269
-msgid "Aperture Code"
-msgstr "Codice apertura"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2497 flatcamGUI/ObjectUI.py:271
-msgid "Type of aperture: circular, rectangle, macros etc"
-msgstr "Tipo di apertura: circolare, rettangolo, macro ecc"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2499 flatcamGUI/ObjectUI.py:273
-msgid "Aperture Size:"
-msgstr "Dimensione apertura:"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2501 flatcamGUI/ObjectUI.py:275
-msgid ""
-"Aperture Dimensions:\n"
-" - (width, height) for R, O type.\n"
-" - (dia, nVertices) for P type"
-msgstr ""
-"Dimensioni apertura:\n"
-"- (larghezza, altezza) per tipo R, O.\n"
-"- (diametro, nVertices) per il tipo P"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2525
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:58
-msgid "Code for the new aperture"
-msgstr "Codice della nuova apertura"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2534
-msgid "Aperture Size"
-msgstr "Dimensione apertura"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2536
-msgid ""
-"Size for the new aperture.\n"
-"If aperture type is 'R' or 'O' then\n"
-"this value is automatically\n"
-"calculated as:\n"
-"sqrt(width**2 + height**2)"
-msgstr ""
-"Dimensioni per la nuova apertura.\n"
-"Se il tipo di apertura è 'R' o 'O', allora\n"
-"questo valore è automaticamente\n"
-"calcolato come:\n"
-"sqrt (larghezza**2 + altezza**2)"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2550
-msgid "Aperture Type"
-msgstr "Tipo apertura"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2552
-msgid ""
-"Select the type of new aperture. Can be:\n"
-"C = circular\n"
-"R = rectangular\n"
-"O = oblong"
-msgstr ""
-"Seleziona il tipo di nuova apertura. Può essere:\n"
-"C = circolare\n"
-"R = rettangolare\n"
-"O = oblungo"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2563
-msgid "Aperture Dim"
-msgstr "Dim apertura"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2565
-msgid ""
-"Dimensions for the new aperture.\n"
-"Active only for rectangular apertures (type R).\n"
-"The format is (width, height)"
-msgstr ""
-"Dimensioni per la nuova apertura.\n"
-"Attivo solo per aperture rettangolari (tipo R).\n"
-"Il formato è (larghezza, altezza)"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2574
-msgid "Add/Delete Aperture"
-msgstr "Aggiungi/Cancella apertura"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2576
-msgid "Add/Delete an aperture in the aperture table"
-msgstr "Aggiungi/Cancella apertura dalla tabella"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2585
-msgid "Add a new aperture to the aperture list."
-msgstr "Aggiungi una apertura nella lista aperture."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2590
-msgid "Delete a aperture in the aperture list"
-msgstr "Cancella una apertura dalla lista aperture"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2607
-msgid "Buffer Aperture"
-msgstr "Aperture buffer"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2609
-msgid "Buffer a aperture in the aperture list"
-msgstr "Buffer di un'apertura nella lista aperture"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2622
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:194
-msgid "Buffer distance"
-msgstr "Buffer distanza"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2623
-msgid "Buffer corner"
-msgstr "Buffer angolo"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2625
-msgid ""
-"There are 3 types of corners:\n"
-" - 'Round': the corner is rounded.\n"
-" - 'Square': the corner is met in a sharp angle.\n"
-" - 'Beveled': the corner is a line that directly connects the features "
-"meeting in the corner"
-msgstr ""
-"Esistono 3 tipi di angoli:\n"
-"- 'Round': l'angolo è arrotondato.\n"
-"- 'Quadrato': l'angolo è incontrato in un angolo acuto.\n"
-"- \"Smussato\": l'angolo è una linea che collega direttamente le funzioni "
-"che si incontrano nell'angolo"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2640 flatcamGUI/FlatCAMGUI.py:1061
-#: flatcamGUI/FlatCAMGUI.py:2138 flatcamGUI/FlatCAMGUI.py:2210
-#: flatcamGUI/FlatCAMGUI.py:2253 flatcamGUI/FlatCAMGUI.py:2765
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:200
-#: flatcamTools/ToolTransform.py:29
-msgid "Buffer"
-msgstr "Buffer"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2655
-msgid "Scale Aperture"
-msgstr "Scala apertura"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2657
-msgid "Scale a aperture in the aperture list"
-msgstr "Scala apertura nella lista aperture"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2665
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:209
-msgid "Scale factor"
-msgstr "Fattore di scala"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2667
-msgid ""
-"The factor by which to scale the selected aperture.\n"
-"Values can be between 0.0000 and 999.9999"
-msgstr ""
-"Il fattore in base al quale ridimensionare l'apertura selezionata.\n"
-"I valori possono essere compresi tra 0,0000 e 999,9999"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2695
-msgid "Mark polygons"
-msgstr "Marchia poligoni"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2697
-msgid "Mark the polygon areas."
-msgstr "Marchia aree poligoni."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2705
-msgid "Area UPPER threshold"
-msgstr "Area Soglia SUPERIORE"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2707
-msgid ""
-"The threshold value, all areas less than this are marked.\n"
-"Can have a value between 0.0000 and 9999.9999"
-msgstr ""
-"Il valore di soglia, tutte le aree inferiori a questa sono contrassegnate.\n"
-"Può avere un valore compreso tra 0,0000 e 9999,9999"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2714
-msgid "Area LOWER threshold"
-msgstr "Area Soglia INFERIORE"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2716
-msgid ""
-"The threshold value, all areas more than this are marked.\n"
-"Can have a value between 0.0000 and 9999.9999"
-msgstr ""
-"Il valore di soglia, tutte le aree più di questa sono contrassegnate.\n"
-"Può avere un valore compreso tra 0,0000 e 9999,9999"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2730
-msgid "Mark"
-msgstr "Contrassegna"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2732
-msgid "Mark the polygons that fit within limits."
-msgstr "Contrassegna i poligoni che rientrano nei limiti."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2738
-msgid "Delete all the marked polygons."
-msgstr "Cancella i poligoni contrassegnati."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2744
-msgid "Clear all the markings."
-msgstr "Pulisci tutte le marchiature."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2764 flatcamGUI/FlatCAMGUI.py:1046
-#: flatcamGUI/FlatCAMGUI.py:2138 flatcamGUI/FlatCAMGUI.py:2750
-msgid "Add Pad Array"
-msgstr "Aggiungi matrice di pad"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2766
-msgid "Add an array of pads (linear or circular array)"
-msgstr "Aggiunge una matrice di pad (lineare o circolare)"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2772
-msgid ""
-"Select the type of pads array to create.\n"
-"It can be Linear X(Y) or Circular"
-msgstr ""
-"Seleziona il tipo di array di pad da creare.\n"
-"Può essere lineare X(Y) o circolare"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2783
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:95
-msgid "Nr of pads"
-msgstr "Numero di pad"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2785
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:97
-msgid "Specify how many pads to be in the array."
-msgstr "Specifica quanti pad inserire nella matrice."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2834
-msgid ""
-"Angle at which the linear array is placed.\n"
-"The precision is of max 2 decimals.\n"
-"Min value is: -359.99 degrees.\n"
-"Max value is: 360.00 degrees."
-msgstr ""
-"Angolo a cui è posizionata la matrice lineare.\n"
-"La precisione è di massimo 2 decimali.\n"
-"Il valore minimo è: -359,99 gradi.\n"
-"Il valore massimo è: 360,00 gradi."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3328
-#: flatcamEditors/FlatCAMGrbEditor.py:3332
-msgid "Aperture code value is missing or wrong format. Add it and retry."
-msgstr ""
-"Il valore del codice di apertura è mancante o nel formato errato. Aggiungilo "
-"e riprova."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3368
-msgid ""
-"Aperture dimensions value is missing or wrong format. Add it in format "
-"(width, height) and retry."
-msgstr ""
-"Il valore delle dimensioni dell'apertura è mancante o nel formato errato. "
-"Aggiungilo nel formato (larghezza, altezza) e riprova."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3381
-msgid "Aperture size value is missing or wrong format. Add it and retry."
-msgstr ""
-"Il valore della dimensione dell'apertura è mancante o nel formato errato. "
-"Aggiungilo e riprova."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3392
-msgid "Aperture already in the aperture table."
-msgstr "Apertura già nella tabella di apertura."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3399
-msgid "Added new aperture with code"
-msgstr "Aggiunta nuova apertura con codice"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3431
-msgid " Select an aperture in Aperture Table"
-msgstr " Seleziona un'apertura nella tabella Aperture"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3439
-msgid "Select an aperture in Aperture Table -->"
-msgstr "Seleziona un'apertura in Tabella apertura ->"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3453
-msgid "Deleted aperture with code"
-msgstr "Apertura eliminata con codice"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3521
-msgid "Dimensions need two float values separated by comma."
-msgstr "Le dimensioni necessitano di valori float separati da una virgola."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3530
-msgid "Dimensions edited."
-msgstr "Dimensioni modificate."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4084
-msgid "Loading Gerber into Editor"
-msgstr "Caricamento Gerber in Editor"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4212
-msgid "Setting up the UI"
-msgstr "Impostazione della UI"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4213
-msgid "Adding geometry finished. Preparing the GUI"
-msgstr "Aggiunta della geometria terminata. Preparazione della GUI"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4222
-msgid "Finished loading the Gerber object into the editor."
-msgstr "Terminato il caricamento dell'oggetto Gerber nell'editor."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4361
-msgid ""
-"There are no Aperture definitions in the file. Aborting Gerber creation."
-msgstr ""
-"Non ci sono definizioni di Aperture nel file. Interruzione della creazione "
-"di Gerber."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4371
-msgid "Creating Gerber."
-msgstr "Creazioen Gerber."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4380
-msgid "Done. Gerber editing finished."
-msgstr "Fatto. Modifica di Gerber terminata."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4398
-msgid "Cancelled. No aperture is selected"
-msgstr "Annullato. Nessuna apertura selezionata"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4992
-msgid "Failed. No aperture geometry is selected."
-msgstr "Impossibile. Nessuna geometria di apertura selezionata."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5001
-#: flatcamEditors/FlatCAMGrbEditor.py:5272
-msgid "Done. Apertures geometry deleted."
-msgstr "Fatto. Geometria delle aperture cancellata."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5144
-msgid "No aperture to buffer. Select at least one aperture and try again."
-msgstr "Nessuna apertura al buffer. Seleziona almeno un'apertura e riprova."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5156
-msgid "Failed."
-msgstr "Fallito."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5175
-msgid "Scale factor value is missing or wrong format. Add it and retry."
-msgstr ""
-"Valore del fattore di scala mancante o formato errato. Aggiungilo e riprova."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5207
-msgid "No aperture to scale. Select at least one aperture and try again."
-msgstr ""
-"Nessuna apertura da ridimensionare. Seleziona almeno un'apertura e riprova."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5223
-msgid "Done. Scale Tool completed."
-msgstr "Fatto. Strumento buffer completato."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5261
-msgid "Polygons marked."
-msgstr "Poligoni contrassegnati."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5264
-msgid "No polygons were marked. None fit within the limits."
-msgstr "Nessun poligono contrassegnato. Nessuno risponde ai criteri."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5988
-msgid "Rotation action was not executed."
-msgstr "Azione rotazione non effettuata."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:6116
-msgid "Skew action was not executed."
-msgstr "Azione inclinazione non effettuata."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:6181
-msgid "Scale action was not executed."
-msgstr "Azione riscalatura non effettuata."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:6224
-msgid "Offset action was not executed."
-msgstr "Offset non applicato."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:6274
-msgid "Geometry shape offset Y cancelled"
-msgstr "Offset su forme geometria su asse Y annullato"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:6289
-msgid "Geometry shape skew X cancelled"
-msgstr "Offset su forme geometria su asse X annullato"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:6304
-msgid "Geometry shape skew Y cancelled"
-msgstr "Inclinazione su asse Y annullato"
-
-#: flatcamEditors/FlatCAMTextEditor.py:74
-msgid "Print Preview"
-msgstr "Anteprima di Stampa"
-
-#: flatcamEditors/FlatCAMTextEditor.py:75
-msgid "Open a OS standard Preview Print window."
-msgstr ""
-"Aprire una finestra di stampa di anteprima standard del sistema operativo."
-
-#: flatcamEditors/FlatCAMTextEditor.py:78
-msgid "Print Code"
-msgstr "Stampa codice"
-
-#: flatcamEditors/FlatCAMTextEditor.py:79
-msgid "Open a OS standard Print window."
-msgstr "Aprire una finestra di stampa standard del sistema operativo."
-
-#: flatcamEditors/FlatCAMTextEditor.py:81
-msgid "Find in Code"
-msgstr "Cerca nel Codice"
-
-#: flatcamEditors/FlatCAMTextEditor.py:82
-msgid "Will search and highlight in yellow the string in the Find box."
-msgstr "Cercherà ed evidenzierà in giallo la stringa nella casella Trova."
-
-#: flatcamEditors/FlatCAMTextEditor.py:86
-msgid "Find box. Enter here the strings to be searched in the text."
-msgstr "Trova la scatola. Inserisci qui le stringhe da cercare nel testo."
-
-#: flatcamEditors/FlatCAMTextEditor.py:88
-msgid "Replace With"
-msgstr "Sostituisci con"
-
-#: flatcamEditors/FlatCAMTextEditor.py:89
-msgid ""
-"Will replace the string from the Find box with the one in the Replace box."
-msgstr ""
-"Sostituirà la stringa dalla casella Trova con quella nella casella "
-"Sostituisci."
-
-#: flatcamEditors/FlatCAMTextEditor.py:93
-msgid "String to replace the one in the Find box throughout the text."
-msgstr "Stringa per sostituire quella nella casella Trova in tutto il testo."
-
-#: flatcamEditors/FlatCAMTextEditor.py:95 flatcamGUI/ObjectUI.py:486
-#: flatcamGUI/ObjectUI.py:2139
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:54
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:88
-msgid "All"
-msgstr "Tutto"
-
-#: flatcamEditors/FlatCAMTextEditor.py:96
-msgid ""
-"When checked it will replace all instances in the 'Find' box\n"
-"with the text in the 'Replace' box.."
-msgstr ""
-"Se selezionato, sostituirà tutte le istanze nella casella \"Trova\"\n"
-"con il testo nella casella \"Sostituisci\"."
-
-#: flatcamEditors/FlatCAMTextEditor.py:99
-msgid "Copy All"
-msgstr "Copia tutto"
-
-#: flatcamEditors/FlatCAMTextEditor.py:100
-msgid "Will copy all the text in the Code Editor to the clipboard."
-msgstr "Copia tutto il testo nell'editor di codice negli Appunti."
-
-#: flatcamEditors/FlatCAMTextEditor.py:103
-msgid "Open Code"
-msgstr "Apri G-Code"
-
-#: flatcamEditors/FlatCAMTextEditor.py:104
-msgid "Will open a text file in the editor."
-msgstr "Aprirà un file di testo nell'editor."
-
-#: flatcamEditors/FlatCAMTextEditor.py:106
-msgid "Save Code"
-msgstr "Salva codice"
-
-#: flatcamEditors/FlatCAMTextEditor.py:107
-msgid "Will save the text in the editor into a file."
-msgstr "Salverà il testo nell'editor in un file."
-
-#: flatcamEditors/FlatCAMTextEditor.py:109
-msgid "Run Code"
-msgstr "Esegui codice"
-
-#: flatcamEditors/FlatCAMTextEditor.py:110
-msgid "Will run the TCL commands found in the text file, one by one."
-msgstr "Saranno eseguiti i comandi TCL trovati nel file di testo, uno per uno."
-
-#: flatcamEditors/FlatCAMTextEditor.py:184
-msgid "Open file"
-msgstr "Apri il file"
-
-#: flatcamEditors/FlatCAMTextEditor.py:215
-#: flatcamEditors/FlatCAMTextEditor.py:220
-msgid "Export Code ..."
-msgstr "Esporta il Codice ..."
-
-#: flatcamEditors/FlatCAMTextEditor.py:272 flatcamObjects/FlatCAMCNCJob.py:955
-#: flatcamTools/ToolSolderPaste.py:1530
-msgid "No such file or directory"
-msgstr "File o directory inesistente"
-
-#: flatcamEditors/FlatCAMTextEditor.py:284 flatcamObjects/FlatCAMCNCJob.py:969
-msgid "Saved to"
-msgstr "Salvato in"
-
-#: flatcamEditors/FlatCAMTextEditor.py:334
-msgid "Code Editor content copied to clipboard ..."
-msgstr "Contenuto dell'editor di codice copiato negli appunti ..."
-
-#: flatcamGUI/FlatCAMGUI.py:78 flatcamGUI/FlatCAMGUI.py:80
-#: flatcamGUI/FlatCAMGUI.py:2163
-msgid "Toggle Panel"
-msgstr "Attiva / disattiva pannello"
-
-#: flatcamGUI/FlatCAMGUI.py:90
-msgid "File"
-msgstr "File"
-
-#: flatcamGUI/FlatCAMGUI.py:95
-msgid "&New Project ...\tCtrl+N"
-msgstr "&Nuovo progetto ...\tCtrl+N"
-
-#: flatcamGUI/FlatCAMGUI.py:97
-msgid "Will create a new, blank project"
-msgstr "Creerà un nuovo progetto vuoto"
-
-#: flatcamGUI/FlatCAMGUI.py:102
-msgid "&New"
-msgstr "&Nuovo"
-
-#: flatcamGUI/FlatCAMGUI.py:106
-msgid "Geometry\tN"
-msgstr "Geometria\tN"
-
-#: flatcamGUI/FlatCAMGUI.py:108
-msgid "Will create a new, empty Geometry Object."
-msgstr "Creerà un nuovo oggetto Geometria vuoto."
-
-#: flatcamGUI/FlatCAMGUI.py:111
-msgid "Gerber\tB"
-msgstr "Gerber\tB"
-
-#: flatcamGUI/FlatCAMGUI.py:113
-msgid "Will create a new, empty Gerber Object."
-msgstr "Creerà un nuovo oggetto Gerber vuoto."
-
-#: flatcamGUI/FlatCAMGUI.py:116
-msgid "Excellon\tL"
-msgstr "Excellon\tL"
-
-#: flatcamGUI/FlatCAMGUI.py:118
-msgid "Will create a new, empty Excellon Object."
-msgstr "Creerà un nuovo oggetto Excellon vuoto."
-
-#: flatcamGUI/FlatCAMGUI.py:123
-msgid "Document\tD"
-msgstr "Documento\tD"
-
-#: flatcamGUI/FlatCAMGUI.py:125
-msgid "Will create a new, empty Document Object."
-msgstr "Creerà un nuovo oggetto Documento vuoto."
-
-#: flatcamGUI/FlatCAMGUI.py:129 flatcamGUI/FlatCAMGUI.py:4397
-#: flatcamTools/ToolPcbWizard.py:62 flatcamTools/ToolPcbWizard.py:69
-msgid "Open"
-msgstr "Apri"
-
-#: flatcamGUI/FlatCAMGUI.py:134
-msgid "Open &Project ..."
-msgstr "Apri &Progetto ..."
-
-#: flatcamGUI/FlatCAMGUI.py:140 flatcamGUI/FlatCAMGUI.py:4407
-msgid "Open &Gerber ...\tCtrl+G"
-msgstr "Apri &Gerber...\tCtrl+G"
-
-#: flatcamGUI/FlatCAMGUI.py:145 flatcamGUI/FlatCAMGUI.py:4412
-msgid "Open &Excellon ...\tCtrl+E"
-msgstr "Apri &Excellon ...\tCtrl+E"
-
-#: flatcamGUI/FlatCAMGUI.py:150 flatcamGUI/FlatCAMGUI.py:4417
-msgid "Open G-&Code ..."
-msgstr "Apri G-&Code ..."
-
-#: flatcamGUI/FlatCAMGUI.py:157
-msgid "Open Config ..."
-msgstr "Apri Config ..."
-
-#: flatcamGUI/FlatCAMGUI.py:162
-msgid "Recent projects"
-msgstr "Progetti recenti"
-
-#: flatcamGUI/FlatCAMGUI.py:164
-msgid "Recent files"
-msgstr "File recenti"
-
-#: flatcamGUI/FlatCAMGUI.py:167 flatcamGUI/FlatCAMGUI.py:753
-#: flatcamGUI/FlatCAMGUI.py:1339
-msgid "Save"
-msgstr "Salva"
-
-#: flatcamGUI/FlatCAMGUI.py:171
-msgid "&Save Project ...\tCtrl+S"
-msgstr "&Salva progetto con nome ...\tCtrl+S"
-
-#: flatcamGUI/FlatCAMGUI.py:176
-msgid "Save Project &As ...\tCtrl+Shift+S"
-msgstr "S&alva progetto con nome ...\tCtrl+Shift+S"
-
-#: flatcamGUI/FlatCAMGUI.py:191
-msgid "Scripting"
-msgstr "Scripting"
-
-#: flatcamGUI/FlatCAMGUI.py:195 flatcamGUI/FlatCAMGUI.py:903
-#: flatcamGUI/FlatCAMGUI.py:2607
-msgid "New Script ..."
-msgstr "Nuovo Script ..."
-
-#: flatcamGUI/FlatCAMGUI.py:197 flatcamGUI/FlatCAMGUI.py:905
-#: flatcamGUI/FlatCAMGUI.py:2609
-msgid "Open Script ..."
-msgstr "Apri Script ..."
-
-#: flatcamGUI/FlatCAMGUI.py:199
-msgid "Open Example ..."
-msgstr "Apri esempio ..."
-
-#: flatcamGUI/FlatCAMGUI.py:201 flatcamGUI/FlatCAMGUI.py:907
-#: flatcamGUI/FlatCAMGUI.py:2611 flatcamGUI/FlatCAMGUI.py:4386
-msgid "Run Script ..."
-msgstr "Esegui Script ..."
-
-#: flatcamGUI/FlatCAMGUI.py:203 flatcamGUI/FlatCAMGUI.py:4388
-msgid ""
-"Will run the opened Tcl Script thus\n"
-"enabling the automation of certain\n"
-"functions of FlatCAM."
-msgstr ""
-"Eseguirà lo script Tcl aperto per\n"
-"consentire l'automazione di alcune\n"
-"funzioni di FlatCAM."
-
-#: flatcamGUI/FlatCAMGUI.py:218
-msgid "Import"
-msgstr "Importa"
-
-#: flatcamGUI/FlatCAMGUI.py:220
-msgid "&SVG as Geometry Object ..."
-msgstr "&SVG come oggetto Geometry ..."
-
-#: flatcamGUI/FlatCAMGUI.py:223
-msgid "&SVG as Gerber Object ..."
-msgstr "&SVG come oggetto Gerber ..."
-
-#: flatcamGUI/FlatCAMGUI.py:228
-msgid "&DXF as Geometry Object ..."
-msgstr "&DXF come oggetto Geometria ..."
-
-#: flatcamGUI/FlatCAMGUI.py:231
-msgid "&DXF as Gerber Object ..."
-msgstr "&DXF come oggetto Gerber ..."
-
-#: flatcamGUI/FlatCAMGUI.py:235
-msgid "HPGL2 as Geometry Object ..."
-msgstr "HPGL2 come oggetto Geometry ..."
-
-#: flatcamGUI/FlatCAMGUI.py:241
-msgid "Export"
-msgstr "Esporta"
-
-#: flatcamGUI/FlatCAMGUI.py:245
-msgid "Export &SVG ..."
-msgstr "Esporta &SVG ..."
-
-#: flatcamGUI/FlatCAMGUI.py:249
-msgid "Export DXF ..."
-msgstr "Esporta &DXF ..."
-
-#: flatcamGUI/FlatCAMGUI.py:255
-msgid "Export &PNG ..."
-msgstr "Esporta &PNG ..."
-
-#: flatcamGUI/FlatCAMGUI.py:257
-msgid ""
-"Will export an image in PNG format,\n"
-"the saved image will contain the visual \n"
-"information currently in FlatCAM Plot Area."
-msgstr ""
-"Esporterà un'immagine in formato PNG,\n"
-"l'immagine salvata conterrà le informazioni\n"
-"visive attualmente nell'area del grafico FlatCAM."
-
-#: flatcamGUI/FlatCAMGUI.py:266
-msgid "Export &Excellon ..."
-msgstr "Export &Excellon ..."
-
-#: flatcamGUI/FlatCAMGUI.py:268
-msgid ""
-"Will export an Excellon Object as Excellon file,\n"
-"the coordinates format, the file units and zeros\n"
-"are set in Preferences -> Excellon Export."
-msgstr ""
-"Esporterà un oggetto Excellon come file Excellon,\n"
-"il formato delle coordinate, le unità di file e gli zeri\n"
-"sono impostati in Preferenze -> Esporta Excellon."
-
-#: flatcamGUI/FlatCAMGUI.py:275
-msgid "Export &Gerber ..."
-msgstr "Esporta &Gerber ..."
-
-#: flatcamGUI/FlatCAMGUI.py:277
-msgid ""
-"Will export an Gerber Object as Gerber file,\n"
-"the coordinates format, the file units and zeros\n"
-"are set in Preferences -> Gerber Export."
-msgstr ""
-"Esporterà un oggetto Gerber come file Gerber,\n"
-"il formato delle coordinate, le unità di file e gli zeri\n"
-"sono impostati in Preferenze -> Esportazione Gerber."
-
-#: flatcamGUI/FlatCAMGUI.py:287
-msgid "Backup"
-msgstr "Backup"
-
-#: flatcamGUI/FlatCAMGUI.py:292
-msgid "Import Preferences from file ..."
-msgstr "Importa preferenze da file ..."
-
-#: flatcamGUI/FlatCAMGUI.py:298
-msgid "Export Preferences to file ..."
-msgstr "Esporta preferenze su file ..."
-
-#: flatcamGUI/FlatCAMGUI.py:306
-#: flatcamGUI/preferences/PreferencesUIManager.py:1115
-msgid "Save Preferences"
-msgstr "Salva Preferenze"
-
-#: flatcamGUI/FlatCAMGUI.py:312 flatcamGUI/FlatCAMGUI.py:1730
-msgid "Print (PDF)"
-msgstr "Stampa (PDF)"
-
-#: flatcamGUI/FlatCAMGUI.py:320
-msgid "E&xit"
-msgstr "Uscita (&x)"
-
-#: flatcamGUI/FlatCAMGUI.py:328 flatcamGUI/FlatCAMGUI.py:747
-#: flatcamGUI/FlatCAMGUI.py:2286
-msgid "Edit"
-msgstr "Modifica"
-
-#: flatcamGUI/FlatCAMGUI.py:332
-msgid "Edit Object\tE"
-msgstr "Modifica oggetto\tE"
-
-#: flatcamGUI/FlatCAMGUI.py:334
-msgid "Close Editor\tCtrl+S"
-msgstr "Chiudi editor\tCtrl+S"
-
-#: flatcamGUI/FlatCAMGUI.py:343
-msgid "Conversion"
-msgstr "Conversione"
-
-#: flatcamGUI/FlatCAMGUI.py:345
-msgid "&Join Geo/Gerber/Exc -> Geo"
-msgstr "&J Unisci Geo/Gerber/Exc -> Geo"
-
-#: flatcamGUI/FlatCAMGUI.py:347
-msgid ""
-"Merge a selection of objects, which can be of type:\n"
-"- Gerber\n"
-"- Excellon\n"
-"- Geometry\n"
-"into a new combo Geometry object."
-msgstr ""
-"Unisci una selezione di oggetti, che possono essere di tipo:\n"
-"- Gerber\n"
-"- Excellon\n"
-"- Geometria\n"
-"in un nuovo oggetto Geometria combinato."
-
-#: flatcamGUI/FlatCAMGUI.py:354
-msgid "Join Excellon(s) -> Excellon"
-msgstr "Unisci Excellon -> Excellon"
-
-#: flatcamGUI/FlatCAMGUI.py:356
-msgid "Merge a selection of Excellon objects into a new combo Excellon object."
-msgstr ""
-"Unisci una selezione di oggetti Excellon in un nuovo oggetto combinato "
-"Excellon."
-
-#: flatcamGUI/FlatCAMGUI.py:359
-msgid "Join Gerber(s) -> Gerber"
-msgstr "Unisci Gerber(s) -> Gerber"
-
-#: flatcamGUI/FlatCAMGUI.py:361
-msgid "Merge a selection of Gerber objects into a new combo Gerber object."
-msgstr ""
-"Unisci una selezione di oggetti Gerber in un nuovo oggetto Gerber combinato."
-
-#: flatcamGUI/FlatCAMGUI.py:366
-msgid "Convert Single to MultiGeo"
-msgstr "Converti da Single a MultiGeo"
-
-#: flatcamGUI/FlatCAMGUI.py:368
-msgid ""
-"Will convert a Geometry object from single_geometry type\n"
-"to a multi_geometry type."
-msgstr ""
-"Converte un oggetto Geometry dal tipo single_geometry\n"
-"a un tipo multi_geometry."
-
-#: flatcamGUI/FlatCAMGUI.py:372
-msgid "Convert Multi to SingleGeo"
-msgstr "Converti da Multi a SingleGeo"
-
-#: flatcamGUI/FlatCAMGUI.py:374
-msgid ""
-"Will convert a Geometry object from multi_geometry type\n"
-"to a single_geometry type."
-msgstr ""
-"Converte un oggetto Geometry dal tipo multi_geometry\n"
-"a un tipo single_geometry."
-
-#: flatcamGUI/FlatCAMGUI.py:381
-msgid "Convert Any to Geo"
-msgstr "Converti tutto in Geo"
-
-#: flatcamGUI/FlatCAMGUI.py:384
-msgid "Convert Any to Gerber"
-msgstr "Converti tutto in Gerber"
-
-#: flatcamGUI/FlatCAMGUI.py:390
-msgid "&Copy\tCtrl+C"
-msgstr "&Copia\tCtrl+C"
-
-#: flatcamGUI/FlatCAMGUI.py:395
-msgid "&Delete\tDEL"
-msgstr "Cancella (&D)\tDEL"
-
-#: flatcamGUI/FlatCAMGUI.py:400
-msgid "Se&t Origin\tO"
-msgstr "Impos&ta Origine\tO"
-
-#: flatcamGUI/FlatCAMGUI.py:402
-msgid "Move to Origin\tShift+O"
-msgstr "Sposta su Origine\tShift+O"
-
-#: flatcamGUI/FlatCAMGUI.py:405
-msgid "Jump to Location\tJ"
-msgstr "Vai a locazione\tJ"
-
-#: flatcamGUI/FlatCAMGUI.py:407
-msgid "Locate in Object\tShift+J"
-msgstr "Trova nell'oggetto\tShift+J"
-
-#: flatcamGUI/FlatCAMGUI.py:412
-msgid "Toggle Units\tQ"
-msgstr "Attiva/disattiva Unità\tQ"
-
-#: flatcamGUI/FlatCAMGUI.py:414
-msgid "&Select All\tCtrl+A"
-msgstr "&Seleziona tutto\tCtrl+A"
-
-#: flatcamGUI/FlatCAMGUI.py:419
-msgid "&Preferences\tShift+P"
-msgstr "&Preferenze\tShift+P"
-
-#: flatcamGUI/FlatCAMGUI.py:425 flatcamTools/ToolProperties.py:155
-msgid "Options"
-msgstr "Opzioni"
-
-#: flatcamGUI/FlatCAMGUI.py:427
-msgid "&Rotate Selection\tShift+(R)"
-msgstr "&Ruota Selezione\tShift+(R)"
-
-#: flatcamGUI/FlatCAMGUI.py:432
-msgid "&Skew on X axis\tShift+X"
-msgstr "Inclina nell'a&sse X\tShift+X"
-
-#: flatcamGUI/FlatCAMGUI.py:434
-msgid "S&kew on Y axis\tShift+Y"
-msgstr "Inclina nell'asse Y\tShift+Y"
-
-#: flatcamGUI/FlatCAMGUI.py:439
-msgid "Flip on &X axis\tX"
-msgstr "Capovolgi in &X\tX"
-
-#: flatcamGUI/FlatCAMGUI.py:441
-msgid "Flip on &Y axis\tY"
-msgstr "Capovolgi in &Y\tY"
-
-#: flatcamGUI/FlatCAMGUI.py:446
-msgid "View source\tAlt+S"
-msgstr "Vedi sorgente\tAlt+S"
-
-#: flatcamGUI/FlatCAMGUI.py:448
-msgid "Tools DataBase\tCtrl+D"
-msgstr "DataBase Utensili\tCtrl+D"
-
-#: flatcamGUI/FlatCAMGUI.py:455 flatcamGUI/FlatCAMGUI.py:2183
-msgid "View"
-msgstr "Vedi"
-
-#: flatcamGUI/FlatCAMGUI.py:457
-msgid "Enable all plots\tAlt+1"
-msgstr "Abilita tutti i plot\tAlt+1"
-
-#: flatcamGUI/FlatCAMGUI.py:459
-msgid "Disable all plots\tAlt+2"
-msgstr "Disabilita tutti i plot\tAlt+2"
-
-#: flatcamGUI/FlatCAMGUI.py:461
-msgid "Disable non-selected\tAlt+3"
-msgstr "Disabilita non selezionati\tAlt+3"
-
-#: flatcamGUI/FlatCAMGUI.py:465
-msgid "&Zoom Fit\tV"
-msgstr "&Zoom tutto\tV"
-
-#: flatcamGUI/FlatCAMGUI.py:467
-msgid "&Zoom In\t="
-msgstr "&Zoom In\t="
-
-#: flatcamGUI/FlatCAMGUI.py:469
-msgid "&Zoom Out\t-"
-msgstr "&Zoom Fuori\t-"
-
-#: flatcamGUI/FlatCAMGUI.py:474
-msgid "Redraw All\tF5"
-msgstr "Ridisegna tutto\tF5"
-
-#: flatcamGUI/FlatCAMGUI.py:478
-msgid "Toggle Code Editor\tShift+E"
-msgstr "Attiva/disattiva Editor codice\tShift+E"
-
-#: flatcamGUI/FlatCAMGUI.py:481
-msgid "&Toggle FullScreen\tAlt+F10"
-msgstr "(Dis)abili&ta schermo intero\tAlt+F10"
-
-#: flatcamGUI/FlatCAMGUI.py:483
-msgid "&Toggle Plot Area\tCtrl+F10"
-msgstr "(Dis)a&ttiva area del diagramma\tCtrl+F10"
-
-#: flatcamGUI/FlatCAMGUI.py:485
-msgid "&Toggle Project/Sel/Tool\t`"
-msgstr "(Dis)a&ttiva Progetto/Sel/Strumento\t`"
-
-#: flatcamGUI/FlatCAMGUI.py:489
-msgid "&Toggle Grid Snap\tG"
-msgstr "(Dis)a&ttiva lo snap alla griglia\tG"
-
-#: flatcamGUI/FlatCAMGUI.py:491
-msgid "&Toggle Grid Lines\tAlt+G"
-msgstr "(Dis)&attiva linee griglia\tG"
-
-#: flatcamGUI/FlatCAMGUI.py:493
-msgid "&Toggle Axis\tShift+G"
-msgstr "(Dis)a&ttiva assi\tShift+G"
-
-#: flatcamGUI/FlatCAMGUI.py:495
-msgid "Toggle Workspace\tShift+W"
-msgstr "(Dis)attiva area di lavoro\tShift+W"
-
-#: flatcamGUI/FlatCAMGUI.py:500
-msgid "Objects"
-msgstr "Oggetti"
-
-#: flatcamGUI/FlatCAMGUI.py:514
-msgid "&Command Line\tS"
-msgstr "Riga &Comandi\tS"
-
-#: flatcamGUI/FlatCAMGUI.py:519
-msgid "Help"
-msgstr "Aiuto"
-
-#: flatcamGUI/FlatCAMGUI.py:521
-msgid "Online Help\tF1"
-msgstr "Aiuto Online\tF1"
-
-#: flatcamGUI/FlatCAMGUI.py:531
-msgid "Report a bug"
-msgstr "Riporta un bug"
-
-#: flatcamGUI/FlatCAMGUI.py:534
-msgid "Excellon Specification"
-msgstr "Specifiche Excellon"
-
-#: flatcamGUI/FlatCAMGUI.py:536
-msgid "Gerber Specification"
-msgstr "Specifiche Gerber"
-
-#: flatcamGUI/FlatCAMGUI.py:541
-msgid "Shortcuts List\tF3"
-msgstr "Elenco Shortcuts\tF3"
-
-#: flatcamGUI/FlatCAMGUI.py:543
-msgid "YouTube Channel\tF4"
-msgstr "Canale YouTube\tF4"
-
-#: flatcamGUI/FlatCAMGUI.py:554
-msgid "Add Circle\tO"
-msgstr "Aggiungi cerchio\tO"
-
-#: flatcamGUI/FlatCAMGUI.py:557
-msgid "Add Arc\tA"
-msgstr "Aggiungi Arco\tA"
-
-#: flatcamGUI/FlatCAMGUI.py:560
-msgid "Add Rectangle\tR"
-msgstr "Aggiungi rettangolo\tR"
-
-#: flatcamGUI/FlatCAMGUI.py:563
-msgid "Add Polygon\tN"
-msgstr "Aggiungi poligono\tN"
-
-#: flatcamGUI/FlatCAMGUI.py:566
-msgid "Add Path\tP"
-msgstr "Aggiungi percorso\tP"
-
-#: flatcamGUI/FlatCAMGUI.py:569
-msgid "Add Text\tT"
-msgstr "Aggiungi Testo\tT"
-
-#: flatcamGUI/FlatCAMGUI.py:572
-msgid "Polygon Union\tU"
-msgstr "Unisci poligono\tU"
-
-#: flatcamGUI/FlatCAMGUI.py:574
-msgid "Polygon Intersection\tE"
-msgstr "Interseca poligono\tE"
-
-#: flatcamGUI/FlatCAMGUI.py:576
-msgid "Polygon Subtraction\tS"
-msgstr "Sottrai poligono\tS"
-
-#: flatcamGUI/FlatCAMGUI.py:580
-msgid "Cut Path\tX"
-msgstr "Taglia percorso\tX"
-
-#: flatcamGUI/FlatCAMGUI.py:584
-msgid "Copy Geom\tC"
-msgstr "Copia Geometria\tC"
-
-#: flatcamGUI/FlatCAMGUI.py:586
-msgid "Delete Shape\tDEL"
-msgstr "Cancella forma\tCANC"
-
-#: flatcamGUI/FlatCAMGUI.py:590 flatcamGUI/FlatCAMGUI.py:677
-msgid "Move\tM"
-msgstr "Sposta\tM"
-
-#: flatcamGUI/FlatCAMGUI.py:592
-msgid "Buffer Tool\tB"
-msgstr "Strumento Buffer\tB"
-
-#: flatcamGUI/FlatCAMGUI.py:595
-msgid "Paint Tool\tI"
-msgstr "Strumento Pittura\tI"
-
-#: flatcamGUI/FlatCAMGUI.py:598
-msgid "Transform Tool\tAlt+R"
-msgstr "Strumento Trasforma\tAlt+R"
-
-#: flatcamGUI/FlatCAMGUI.py:602
-msgid "Toggle Corner Snap\tK"
-msgstr "Attiva/disattiva Snap angoli\tK"
-
-#: flatcamGUI/FlatCAMGUI.py:608
-msgid ">Excellon Editor<"
-msgstr ">Editor Excellon<"
-
-#: flatcamGUI/FlatCAMGUI.py:612
-msgid "Add Drill Array\tA"
-msgstr "Aggiungi matrice fori\tA"
-
-#: flatcamGUI/FlatCAMGUI.py:614
-msgid "Add Drill\tD"
-msgstr "Aggiungi Foro\tD"
-
-#: flatcamGUI/FlatCAMGUI.py:618
-msgid "Add Slot Array\tQ"
-msgstr "Aggiungi Matrice slot\tQ"
-
-#: flatcamGUI/FlatCAMGUI.py:620
-msgid "Add Slot\tW"
-msgstr "Aggiungi Slot\tW"
-
-#: flatcamGUI/FlatCAMGUI.py:624
-msgid "Resize Drill(S)\tR"
-msgstr "Ridimensiona Foro(i)\tR"
-
-#: flatcamGUI/FlatCAMGUI.py:627 flatcamGUI/FlatCAMGUI.py:671
-msgid "Copy\tC"
-msgstr "Copia\tC"
-
-#: flatcamGUI/FlatCAMGUI.py:629 flatcamGUI/FlatCAMGUI.py:673
-msgid "Delete\tDEL"
-msgstr "Cancella\tCANC"
-
-#: flatcamGUI/FlatCAMGUI.py:634
-msgid "Move Drill(s)\tM"
-msgstr "Sposta foro(i)\tM"
-
-#: flatcamGUI/FlatCAMGUI.py:639
-msgid ">Gerber Editor<"
-msgstr ">Editor Gerber<"
-
-#: flatcamGUI/FlatCAMGUI.py:643
-msgid "Add Pad\tP"
-msgstr "Aggiungi Pad\tP"
-
-#: flatcamGUI/FlatCAMGUI.py:645
-msgid "Add Pad Array\tA"
-msgstr "Aggiungi matrice Pad\tA"
-
-#: flatcamGUI/FlatCAMGUI.py:647
-msgid "Add Track\tT"
-msgstr "Aggiungi Traccia\tT"
-
-#: flatcamGUI/FlatCAMGUI.py:649
-msgid "Add Region\tN"
-msgstr "Aggiungi regione\tN"
-
-#: flatcamGUI/FlatCAMGUI.py:653
-msgid "Poligonize\tAlt+N"
-msgstr "Poligonizza\tAlt+N"
-
-#: flatcamGUI/FlatCAMGUI.py:655
-msgid "Add SemiDisc\tE"
-msgstr "Aggiungi SemiDisco\tE"
-
-#: flatcamGUI/FlatCAMGUI.py:657
-msgid "Add Disc\tD"
-msgstr "Aggiungi Disco\tD"
-
-#: flatcamGUI/FlatCAMGUI.py:659
-msgid "Buffer\tB"
-msgstr "Buffer\tB"
-
-#: flatcamGUI/FlatCAMGUI.py:661
-msgid "Scale\tS"
-msgstr "Scala\tS"
-
-#: flatcamGUI/FlatCAMGUI.py:663
-msgid "Mark Area\tAlt+A"
-msgstr "Marchia Area\tAlt+A"
-
-#: flatcamGUI/FlatCAMGUI.py:665
-msgid "Eraser\tCtrl+E"
-msgstr "Gomma\tCtrl+E"
-
-#: flatcamGUI/FlatCAMGUI.py:667
-msgid "Transform\tAlt+R"
-msgstr "Trasforma\tAlt+R"
-
-#: flatcamGUI/FlatCAMGUI.py:694
-msgid "Enable Plot"
-msgstr "Abilita Plot"
-
-#: flatcamGUI/FlatCAMGUI.py:696
-msgid "Disable Plot"
-msgstr "Disabilita Plot"
-
-#: flatcamGUI/FlatCAMGUI.py:700
-msgid "Set Color"
-msgstr "Imposta Colore"
-
-#: flatcamGUI/FlatCAMGUI.py:742
-msgid "Generate CNC"
-msgstr "Genera CNC"
-
-#: flatcamGUI/FlatCAMGUI.py:744
-msgid "View Source"
-msgstr "Vedi sorgente"
-
-#: flatcamGUI/FlatCAMGUI.py:749 flatcamGUI/FlatCAMGUI.py:863
-#: flatcamGUI/FlatCAMGUI.py:1072 flatcamGUI/FlatCAMGUI.py:2138
-#: flatcamGUI/FlatCAMGUI.py:2282 flatcamGUI/FlatCAMGUI.py:2572
-#: flatcamGUI/FlatCAMGUI.py:2775 flatcamGUI/ObjectUI.py:1617
-#: flatcamObjects/FlatCAMGeometry.py:477 flatcamTools/ToolPanelize.py:540
-#: flatcamTools/ToolPanelize.py:567 flatcamTools/ToolPanelize.py:660
-#: flatcamTools/ToolPanelize.py:689 flatcamTools/ToolPanelize.py:751
-msgid "Copy"
-msgstr "Copia"
-
-#: flatcamGUI/FlatCAMGUI.py:757 flatcamGUI/FlatCAMGUI.py:2295
-#: flatcamTools/ToolProperties.py:31
-msgid "Properties"
-msgstr "Proprietà"
-
-#: flatcamGUI/FlatCAMGUI.py:786
-msgid "File Toolbar"
-msgstr "Strumenti File"
-
-#: flatcamGUI/FlatCAMGUI.py:790
-msgid "Edit Toolbar"
-msgstr "Strumenti Edit"
-
-#: flatcamGUI/FlatCAMGUI.py:794
-msgid "View Toolbar"
-msgstr "Strumenti Vedi"
-
-#: flatcamGUI/FlatCAMGUI.py:798
-msgid "Shell Toolbar"
-msgstr "Strumenti Shell"
-
-#: flatcamGUI/FlatCAMGUI.py:802
-msgid "Tools Toolbar"
-msgstr "Strumenti Utensili"
-
-#: flatcamGUI/FlatCAMGUI.py:806
-msgid "Excellon Editor Toolbar"
-msgstr "Strumenti Editor Excellon"
-
-#: flatcamGUI/FlatCAMGUI.py:812
-msgid "Geometry Editor Toolbar"
-msgstr "Strumenti Editor Geometrie"
-
-#: flatcamGUI/FlatCAMGUI.py:816
-msgid "Gerber Editor Toolbar"
-msgstr "Strumenti Editor Gerber"
-
-#: flatcamGUI/FlatCAMGUI.py:820
-msgid "Grid Toolbar"
-msgstr "Strumenti Griglia"
-
-#: flatcamGUI/FlatCAMGUI.py:841 flatcamGUI/FlatCAMGUI.py:2549
-msgid "Open project"
-msgstr "Apri progetto"
-
-#: flatcamGUI/FlatCAMGUI.py:843 flatcamGUI/FlatCAMGUI.py:2551
-msgid "Save project"
-msgstr "Salva progetto"
-
-#: flatcamGUI/FlatCAMGUI.py:849 flatcamGUI/FlatCAMGUI.py:2557
-msgid "New Blank Geometry"
-msgstr "Nuova Geometria vuota"
-
-#: flatcamGUI/FlatCAMGUI.py:851 flatcamGUI/FlatCAMGUI.py:2559
-msgid "New Blank Gerber"
-msgstr "Nuovo Gerber vuoto"
-
-#: flatcamGUI/FlatCAMGUI.py:853 flatcamGUI/FlatCAMGUI.py:2561
-msgid "New Blank Excellon"
-msgstr "Nuovo Excellon vuoto"
-
-#: flatcamGUI/FlatCAMGUI.py:858 flatcamGUI/FlatCAMGUI.py:2567
-msgid "Save Object and close the Editor"
-msgstr "Salva Oggetto e chiudi editor"
-
-#: flatcamGUI/FlatCAMGUI.py:865 flatcamGUI/FlatCAMGUI.py:2574
-msgid "&Delete"
-msgstr "&Cancella"
-
-#: flatcamGUI/FlatCAMGUI.py:868 flatcamGUI/FlatCAMGUI.py:1729
-#: flatcamGUI/FlatCAMGUI.py:1935 flatcamGUI/FlatCAMGUI.py:2577
-#: flatcamTools/ToolDistance.py:35 flatcamTools/ToolDistance.py:195
-msgid "Distance Tool"
-msgstr "Strumento distanza"
-
-#: flatcamGUI/FlatCAMGUI.py:870 flatcamGUI/FlatCAMGUI.py:2579
-msgid "Distance Min Tool"
-msgstr "Strumento distanza minima"
-
-#: flatcamGUI/FlatCAMGUI.py:872 flatcamGUI/FlatCAMGUI.py:1722
-#: flatcamGUI/FlatCAMGUI.py:2581
-msgid "Set Origin"
-msgstr "Imposta origine"
-
-#: flatcamGUI/FlatCAMGUI.py:874
-msgid "Move to Origin"
-msgstr "Sposta su origine"
-
-#: flatcamGUI/FlatCAMGUI.py:877 flatcamGUI/FlatCAMGUI.py:2583
-msgid "Jump to Location"
-msgstr "Vai a posizione"
-
-#: flatcamGUI/FlatCAMGUI.py:879 flatcamGUI/FlatCAMGUI.py:1734
-#: flatcamGUI/FlatCAMGUI.py:2585
-msgid "Locate in Object"
-msgstr "Trova nell'oggetto"
-
-#: flatcamGUI/FlatCAMGUI.py:885 flatcamGUI/FlatCAMGUI.py:2591
-msgid "&Replot"
-msgstr "&Ridisegna"
-
-#: flatcamGUI/FlatCAMGUI.py:887 flatcamGUI/FlatCAMGUI.py:2593
-msgid "&Clear plot"
-msgstr "&Cancella plot"
-
-#: flatcamGUI/FlatCAMGUI.py:889 flatcamGUI/FlatCAMGUI.py:1725
-#: flatcamGUI/FlatCAMGUI.py:2595
-msgid "Zoom In"
-msgstr "Zoom In"
-
-#: flatcamGUI/FlatCAMGUI.py:891 flatcamGUI/FlatCAMGUI.py:1725
-#: flatcamGUI/FlatCAMGUI.py:2597
-msgid "Zoom Out"
-msgstr "Zoom Out"
-
-#: flatcamGUI/FlatCAMGUI.py:893 flatcamGUI/FlatCAMGUI.py:1724
-#: flatcamGUI/FlatCAMGUI.py:2185 flatcamGUI/FlatCAMGUI.py:2599
-msgid "Zoom Fit"
-msgstr "Zoom Tutto"
-
-#: flatcamGUI/FlatCAMGUI.py:901 flatcamGUI/FlatCAMGUI.py:2605
-msgid "&Command Line"
-msgstr "Riga &Comandi"
-
-#: flatcamGUI/FlatCAMGUI.py:913 flatcamGUI/FlatCAMGUI.py:2617
-msgid "2Sided Tool"
-msgstr "Strumento 2 facce"
-
-#: flatcamGUI/FlatCAMGUI.py:915 flatcamGUI/FlatCAMGUI.py:1740
-#: flatcamGUI/FlatCAMGUI.py:2619
-msgid "Align Objects Tool"
-msgstr "Strumento allinea oggetti"
-
-#: flatcamGUI/FlatCAMGUI.py:917 flatcamGUI/FlatCAMGUI.py:1741
-#: flatcamGUI/FlatCAMGUI.py:2621 flatcamTools/ToolExtractDrills.py:393
-msgid "Extract Drills Tool"
-msgstr "Strumento estrai fori"
-
-#: flatcamGUI/FlatCAMGUI.py:920 flatcamGUI/ObjectUI.py:596
-#: flatcamTools/ToolCutOut.py:440
-msgid "Cutout Tool"
-msgstr "Strumento Ritaglia"
-
-#: flatcamGUI/FlatCAMGUI.py:922 flatcamGUI/FlatCAMGUI.py:2626
-#: flatcamGUI/ObjectUI.py:574 flatcamGUI/ObjectUI.py:2077
-#: flatcamTools/ToolNCC.py:974
-msgid "NCC Tool"
-msgstr "Strumento NCC"
-
-#: flatcamGUI/FlatCAMGUI.py:928 flatcamGUI/FlatCAMGUI.py:2632
-msgid "Panel Tool"
-msgstr "Stromento Pannello"
-
-#: flatcamGUI/FlatCAMGUI.py:930 flatcamGUI/FlatCAMGUI.py:2634
-#: flatcamTools/ToolFilm.py:586
-msgid "Film Tool"
-msgstr "Strumento Film"
-
-#: flatcamGUI/FlatCAMGUI.py:932 flatcamGUI/FlatCAMGUI.py:2636
-#: flatcamTools/ToolSolderPaste.py:553
-msgid "SolderPaste Tool"
-msgstr "Strumento SolderPaste"
-
-#: flatcamGUI/FlatCAMGUI.py:934 flatcamGUI/FlatCAMGUI.py:2638
-#: flatcamTools/ToolSub.py:35
-msgid "Subtract Tool"
-msgstr "Strumento Sottrai"
-
-#: flatcamGUI/FlatCAMGUI.py:936 flatcamGUI/FlatCAMGUI.py:2640
-#: flatcamTools/ToolRulesCheck.py:616
-msgid "Rules Tool"
-msgstr "Strumento Righello"
-
-#: flatcamGUI/FlatCAMGUI.py:938 flatcamGUI/FlatCAMGUI.py:1743
-#: flatcamGUI/FlatCAMGUI.py:2642 flatcamTools/ToolOptimal.py:33
-#: flatcamTools/ToolOptimal.py:307
-msgid "Optimal Tool"
-msgstr "Strumento Ottimo"
-
-#: flatcamGUI/FlatCAMGUI.py:943 flatcamGUI/FlatCAMGUI.py:1740
-#: flatcamGUI/FlatCAMGUI.py:2647
-msgid "Calculators Tool"
-msgstr "Strumento Calcolatrici"
-
-#: flatcamGUI/FlatCAMGUI.py:947 flatcamGUI/FlatCAMGUI.py:1744
-#: flatcamGUI/FlatCAMGUI.py:2651 flatcamTools/ToolQRCode.py:43
-#: flatcamTools/ToolQRCode.py:382
-msgid "QRCode Tool"
-msgstr "Strumento QRCode"
-
-#: flatcamGUI/FlatCAMGUI.py:949 flatcamGUI/FlatCAMGUI.py:2653
-#: flatcamTools/ToolCopperThieving.py:39 flatcamTools/ToolCopperThieving.py:568
-msgid "Copper Thieving Tool"
-msgstr "Strumento deposito rame"
-
-#: flatcamGUI/FlatCAMGUI.py:952 flatcamGUI/FlatCAMGUI.py:1741
-#: flatcamGUI/FlatCAMGUI.py:2656 flatcamTools/ToolFiducials.py:33
-#: flatcamTools/ToolFiducials.py:395
-msgid "Fiducials Tool"
-msgstr "Strumento Fiducial"
-
-#: flatcamGUI/FlatCAMGUI.py:954 flatcamGUI/FlatCAMGUI.py:2658
-#: flatcamTools/ToolCalibration.py:37 flatcamTools/ToolCalibration.py:759
-msgid "Calibration Tool"
-msgstr "Strumento Calibrazione"
-
-#: flatcamGUI/FlatCAMGUI.py:956 flatcamGUI/FlatCAMGUI.py:1741
-#: flatcamGUI/FlatCAMGUI.py:2660
-msgid "Punch Gerber Tool"
-msgstr "Strumento punzone gerber"
-
-#: flatcamGUI/FlatCAMGUI.py:958 flatcamGUI/FlatCAMGUI.py:2662
-#: flatcamTools/ToolInvertGerber.py:31
-msgid "Invert Gerber Tool"
-msgstr "Strumento inverti gerber"
-
-#: flatcamGUI/FlatCAMGUI.py:964 flatcamGUI/FlatCAMGUI.py:990
-#: flatcamGUI/FlatCAMGUI.py:1042 flatcamGUI/FlatCAMGUI.py:2668
-#: flatcamGUI/FlatCAMGUI.py:2746
-msgid "Select"
-msgstr "Seleziona"
-
-#: flatcamGUI/FlatCAMGUI.py:966 flatcamGUI/FlatCAMGUI.py:2670
-msgid "Add Drill Hole"
-msgstr "Aggiungi Foro"
-
-#: flatcamGUI/FlatCAMGUI.py:968 flatcamGUI/FlatCAMGUI.py:2672
-msgid "Add Drill Hole Array"
-msgstr "Aggiungi matrice Fori"
-
-#: flatcamGUI/FlatCAMGUI.py:970 flatcamGUI/FlatCAMGUI.py:2020
-#: flatcamGUI/FlatCAMGUI.py:2273 flatcamGUI/FlatCAMGUI.py:2676
-msgid "Add Slot"
-msgstr "Aggiungi Slot"
-
-#: flatcamGUI/FlatCAMGUI.py:972 flatcamGUI/FlatCAMGUI.py:2019
-#: flatcamGUI/FlatCAMGUI.py:2275 flatcamGUI/FlatCAMGUI.py:2678
-msgid "Add Slot Array"
-msgstr "Aggiungi matrici Slot"
-
-#: flatcamGUI/FlatCAMGUI.py:974 flatcamGUI/FlatCAMGUI.py:2278
-#: flatcamGUI/FlatCAMGUI.py:2674
-msgid "Resize Drill"
-msgstr "Ridimensiona Foro"
-
-#: flatcamGUI/FlatCAMGUI.py:978 flatcamGUI/FlatCAMGUI.py:2682
-msgid "Copy Drill"
-msgstr "Copia Foro"
-
-#: flatcamGUI/FlatCAMGUI.py:980 flatcamGUI/FlatCAMGUI.py:2684
-msgid "Delete Drill"
-msgstr "Cancella Foro"
-
-#: flatcamGUI/FlatCAMGUI.py:984 flatcamGUI/FlatCAMGUI.py:2688
-msgid "Move Drill"
-msgstr "Sposta Foro"
-
-#: flatcamGUI/FlatCAMGUI.py:992 flatcamGUI/FlatCAMGUI.py:2696
-msgid "Add Circle"
-msgstr "Aggiungi Cerchio"
-
-#: flatcamGUI/FlatCAMGUI.py:994 flatcamGUI/FlatCAMGUI.py:2698
-msgid "Add Arc"
-msgstr "Aggiungi Arco"
-
-#: flatcamGUI/FlatCAMGUI.py:996 flatcamGUI/FlatCAMGUI.py:2700
-msgid "Add Rectangle"
-msgstr "Aggiungi rettangolo"
-
-#: flatcamGUI/FlatCAMGUI.py:1000 flatcamGUI/FlatCAMGUI.py:2704
-msgid "Add Path"
-msgstr "Aggiungi Percorso"
-
-#: flatcamGUI/FlatCAMGUI.py:1002 flatcamGUI/FlatCAMGUI.py:2706
-msgid "Add Polygon"
-msgstr "Aggiungi Poligono"
-
-#: flatcamGUI/FlatCAMGUI.py:1005 flatcamGUI/FlatCAMGUI.py:2709
-msgid "Add Text"
-msgstr "Aggiungi Testo"
-
-#: flatcamGUI/FlatCAMGUI.py:1007 flatcamGUI/FlatCAMGUI.py:2711
-msgid "Add Buffer"
-msgstr "Aggiungi Buffer"
-
-#: flatcamGUI/FlatCAMGUI.py:1009 flatcamGUI/FlatCAMGUI.py:2713
-msgid "Paint Shape"
-msgstr "Disegna Figura"
-
-#: flatcamGUI/FlatCAMGUI.py:1011 flatcamGUI/FlatCAMGUI.py:1068
-#: flatcamGUI/FlatCAMGUI.py:2214 flatcamGUI/FlatCAMGUI.py:2259
-#: flatcamGUI/FlatCAMGUI.py:2715 flatcamGUI/FlatCAMGUI.py:2771
-msgid "Eraser"
-msgstr "Gomma"
-
-#: flatcamGUI/FlatCAMGUI.py:1015 flatcamGUI/FlatCAMGUI.py:2719
-msgid "Polygon Union"
-msgstr "Unione Poligono"
-
-#: flatcamGUI/FlatCAMGUI.py:1017 flatcamGUI/FlatCAMGUI.py:2721
-msgid "Polygon Explode"
-msgstr "Explodi Poligono"
-
-#: flatcamGUI/FlatCAMGUI.py:1020 flatcamGUI/FlatCAMGUI.py:2724
-msgid "Polygon Intersection"
-msgstr "Interseca Poligono"
-
-#: flatcamGUI/FlatCAMGUI.py:1022 flatcamGUI/FlatCAMGUI.py:2726
-msgid "Polygon Subtraction"
-msgstr "Sottrai Poligono"
-
-#: flatcamGUI/FlatCAMGUI.py:1026 flatcamGUI/FlatCAMGUI.py:2730
-msgid "Cut Path"
-msgstr "Taglia Percorso"
-
-#: flatcamGUI/FlatCAMGUI.py:1028
-msgid "Copy Shape(s)"
-msgstr "Copia Forma(e)"
-
-#: flatcamGUI/FlatCAMGUI.py:1031
-msgid "Delete Shape '-'"
-msgstr "Cancella Forme '-'"
-
-#: flatcamGUI/FlatCAMGUI.py:1033 flatcamGUI/FlatCAMGUI.py:1076
-#: flatcamGUI/FlatCAMGUI.py:2226 flatcamGUI/FlatCAMGUI.py:2263
-#: flatcamGUI/FlatCAMGUI.py:2736 flatcamGUI/FlatCAMGUI.py:2779
-#: flatcamGUI/ObjectUI.py:109
-msgid "Transformations"
-msgstr "Trasformazioni"
-
-#: flatcamGUI/FlatCAMGUI.py:1036
-msgid "Move Objects "
-msgstr "Sposta Oggetti "
-
-#: flatcamGUI/FlatCAMGUI.py:1044 flatcamGUI/FlatCAMGUI.py:2139
-#: flatcamGUI/FlatCAMGUI.py:2748
-msgid "Add Pad"
-msgstr "Aggiungi Pad"
-
-#: flatcamGUI/FlatCAMGUI.py:1048 flatcamGUI/FlatCAMGUI.py:2140
-#: flatcamGUI/FlatCAMGUI.py:2752
-msgid "Add Track"
-msgstr "Aggiungi Traccia"
-
-#: flatcamGUI/FlatCAMGUI.py:1050 flatcamGUI/FlatCAMGUI.py:2139
-#: flatcamGUI/FlatCAMGUI.py:2754
-msgid "Add Region"
-msgstr "Aggiungi Regione"
-
-#: flatcamGUI/FlatCAMGUI.py:1052 flatcamGUI/FlatCAMGUI.py:2245
-#: flatcamGUI/FlatCAMGUI.py:2756
-msgid "Poligonize"
-msgstr "Poligonizza"
-
-#: flatcamGUI/FlatCAMGUI.py:1055 flatcamGUI/FlatCAMGUI.py:2247
-#: flatcamGUI/FlatCAMGUI.py:2759
-msgid "SemiDisc"
-msgstr "SemiDisco"
-
-#: flatcamGUI/FlatCAMGUI.py:1057 flatcamGUI/FlatCAMGUI.py:2249
-#: flatcamGUI/FlatCAMGUI.py:2761
-msgid "Disc"
-msgstr "Disco"
-
-#: flatcamGUI/FlatCAMGUI.py:1065 flatcamGUI/FlatCAMGUI.py:2257
-#: flatcamGUI/FlatCAMGUI.py:2769
-msgid "Mark Area"
-msgstr "Marchia Area"
-
-#: flatcamGUI/FlatCAMGUI.py:1079 flatcamGUI/FlatCAMGUI.py:2139
-#: flatcamGUI/FlatCAMGUI.py:2230 flatcamGUI/FlatCAMGUI.py:2293
-#: flatcamGUI/FlatCAMGUI.py:2782 flatcamTools/ToolMove.py:27
-msgid "Move"
-msgstr "Sposta"
-
-#: flatcamGUI/FlatCAMGUI.py:1087 flatcamGUI/FlatCAMGUI.py:2791
-msgid "Snap to grid"
-msgstr "Aggancia alla griglia"
-
-#: flatcamGUI/FlatCAMGUI.py:1090 flatcamGUI/FlatCAMGUI.py:2794
-msgid "Grid X snapping distance"
-msgstr "Distanza aggancio gliglia X"
-
-#: flatcamGUI/FlatCAMGUI.py:1095 flatcamGUI/FlatCAMGUI.py:2799
-msgid "Grid Y snapping distance"
-msgstr "Distanza aggancio gliglia Y"
-
-#: flatcamGUI/FlatCAMGUI.py:1101 flatcamGUI/FlatCAMGUI.py:2805
-msgid ""
-"When active, value on Grid_X\n"
-"is copied to the Grid_Y value."
-msgstr ""
-"Se attivo, valore su Grid_X\n"
-"sarà copiato nel valore Grid_Y."
-
-#: flatcamGUI/FlatCAMGUI.py:1108 flatcamGUI/FlatCAMGUI.py:2812
-msgid "Snap to corner"
-msgstr "Aggancia all'angolo"
-
-#: flatcamGUI/FlatCAMGUI.py:1112 flatcamGUI/FlatCAMGUI.py:2816
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:78
-msgid "Max. magnet distance"
-msgstr "Massima distanza magnete"
-
-#: flatcamGUI/FlatCAMGUI.py:1149
-msgid "Selected"
-msgstr "Selezionato"
-
-#: flatcamGUI/FlatCAMGUI.py:1177 flatcamGUI/FlatCAMGUI.py:1185
-msgid "Plot Area"
-msgstr "Disegna Area"
-
-#: flatcamGUI/FlatCAMGUI.py:1212
-msgid "General"
-msgstr "Generale"
-
-#: flatcamGUI/FlatCAMGUI.py:1227 flatcamTools/ToolCopperThieving.py:74
-#: flatcamTools/ToolDblSided.py:64 flatcamTools/ToolExtractDrills.py:61
-#: flatcamTools/ToolInvertGerber.py:72 flatcamTools/ToolOptimal.py:71
-#: flatcamTools/ToolPunchGerber.py:64
-msgid "GERBER"
-msgstr "GERBER"
-
-#: flatcamGUI/FlatCAMGUI.py:1237 flatcamTools/ToolDblSided.py:92
-msgid "EXCELLON"
-msgstr "EXCELLON"
-
-#: flatcamGUI/FlatCAMGUI.py:1247 flatcamTools/ToolDblSided.py:120
-msgid "GEOMETRY"
-msgstr "GEOMETRIA"
-
-#: flatcamGUI/FlatCAMGUI.py:1257
-msgid "CNC-JOB"
-msgstr "CNC-JOB"
-
-#: flatcamGUI/FlatCAMGUI.py:1266 flatcamGUI/ObjectUI.py:563
-#: flatcamGUI/ObjectUI.py:2052
-msgid "TOOLS"
-msgstr "UTENSILI"
-
-#: flatcamGUI/FlatCAMGUI.py:1275
-msgid "TOOLS 2"
-msgstr "UTENSILI 2"
-
-#: flatcamGUI/FlatCAMGUI.py:1285
-msgid "UTILITIES"
-msgstr "UTILITA'"
-
-#: flatcamGUI/FlatCAMGUI.py:1302
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:192
-msgid "Restore Defaults"
-msgstr "Ripristina Defaults"
-
-#: flatcamGUI/FlatCAMGUI.py:1305
-msgid ""
-"Restore the entire set of default values\n"
-"to the initial values loaded after first launch."
-msgstr ""
-"Ripristina l'intero set di valori predefiniti\n"
-"ai valori iniziali caricati dopo il primo avvio."
-
-#: flatcamGUI/FlatCAMGUI.py:1310
-msgid "Open Pref Folder"
-msgstr "Aprii cartella preferenze"
-
-#: flatcamGUI/FlatCAMGUI.py:1313
-msgid "Open the folder where FlatCAM save the preferences files."
-msgstr "Apri la cartella dove FlatCAM salva il file delle preferenze."
-
-#: flatcamGUI/FlatCAMGUI.py:1317 flatcamGUI/FlatCAMGUI.py:2517
-msgid "Clear GUI Settings"
-msgstr "Pulisci impostazioni GUI"
-
-#: flatcamGUI/FlatCAMGUI.py:1321
-msgid ""
-"Clear the GUI settings for FlatCAM,\n"
-"such as: layout, gui state, style, hdpi support etc."
-msgstr ""
-"Cancella le impostazioni della GUI per FlatCAM,\n"
-"come: layout, stato gui, stile, supporto hdpi ecc."
-
-#: flatcamGUI/FlatCAMGUI.py:1332
-msgid "Apply"
-msgstr "Applica"
-
-#: flatcamGUI/FlatCAMGUI.py:1335
-msgid "Apply the current preferences without saving to a file."
-msgstr "Applica le impostazioni correnti senza salvarle su file."
-
-#: flatcamGUI/FlatCAMGUI.py:1342
-msgid ""
-"Save the current settings in the 'current_defaults' file\n"
-"which is the file storing the working default preferences."
-msgstr ""
-"Salva le impostazioni correnti nel file \"current_defaults\",\n"
-"file che memorizza le preferenze predefinite di lavoro."
-
-#: flatcamGUI/FlatCAMGUI.py:1350
-msgid "Will not save the changes and will close the preferences window."
-msgstr "Non salverà le modifiche e chiuderà la finestra delle preferenze."
-
-#: flatcamGUI/FlatCAMGUI.py:1719
-msgid "SHOW SHORTCUT LIST"
-msgstr "Lista tasti Shortcuts"
-
-#: flatcamGUI/FlatCAMGUI.py:1719
-msgid "Switch to Project Tab"
-msgstr "Vai alla Tab Progetto"
-
-#: flatcamGUI/FlatCAMGUI.py:1719
-msgid "Switch to Selected Tab"
-msgstr "Vai alla Tab Seleziona"
-
-#: flatcamGUI/FlatCAMGUI.py:1720
-msgid "Switch to Tool Tab"
-msgstr "Vai alla Tab Strumenti"
-
-#: flatcamGUI/FlatCAMGUI.py:1721
-msgid "New Gerber"
-msgstr "Nuovo Gerber"
-
-#: flatcamGUI/FlatCAMGUI.py:1721
-msgid "Edit Object (if selected)"
-msgstr "Modifica oggetto (se selezionato)"
-
-#: flatcamGUI/FlatCAMGUI.py:1721
-msgid "Jump to Coordinates"
-msgstr "Vai alle coordinate"
-
-#: flatcamGUI/FlatCAMGUI.py:1722
-msgid "New Excellon"
-msgstr "Nuovo Excellon"
-
-#: flatcamGUI/FlatCAMGUI.py:1722
-msgid "Move Obj"
-msgstr "Sposta Oggetto"
-
-#: flatcamGUI/FlatCAMGUI.py:1722
-msgid "New Geometry"
-msgstr "Nuova Geometria"
-
-#: flatcamGUI/FlatCAMGUI.py:1722
-msgid "Change Units"
-msgstr "Cambia unità"
-
-#: flatcamGUI/FlatCAMGUI.py:1723
-msgid "Open Properties Tool"
-msgstr "Apri Strumento Proprietà"
-
-#: flatcamGUI/FlatCAMGUI.py:1723
-msgid "Rotate by 90 degree CW"
-msgstr "Ruota di 90 gradi orari"
-
-#: flatcamGUI/FlatCAMGUI.py:1723
-msgid "Shell Toggle"
-msgstr "Attiva/Disattiva Shell"
-
-#: flatcamGUI/FlatCAMGUI.py:1724
-msgid ""
-"Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)"
-msgstr ""
-"Aggiungi utensile (in Tab Geometrie selezionate o in NCC o Strumento Paint)"
-
-#: flatcamGUI/FlatCAMGUI.py:1725
-msgid "Flip on X_axis"
-msgstr "Capovolsi sull'asse X"
-
-#: flatcamGUI/FlatCAMGUI.py:1725
-msgid "Flip on Y_axis"
-msgstr "Capovolsi sull'asse Y"
-
-#: flatcamGUI/FlatCAMGUI.py:1728
-msgid "Copy Obj"
-msgstr "Copia Oggetto"
-
-#: flatcamGUI/FlatCAMGUI.py:1728
-msgid "Open Tools Database"
-msgstr "Apri DataBase Utensili"
-
-#: flatcamGUI/FlatCAMGUI.py:1729
-msgid "Open Excellon File"
-msgstr "Apri file Excellon"
-
-#: flatcamGUI/FlatCAMGUI.py:1729
-msgid "Open Gerber File"
-msgstr "Apri file Gerber"
-
-#: flatcamGUI/FlatCAMGUI.py:1729
-msgid "New Project"
-msgstr "Nuovo Progetto"
-
-#: flatcamGUI/FlatCAMGUI.py:1730 flatcamTools/ToolPDF.py:42
-msgid "PDF Import Tool"
-msgstr "Strumento importazione PDF"
-
-#: flatcamGUI/FlatCAMGUI.py:1730
-msgid "Save Project"
-msgstr "Salva progetto"
-
-#: flatcamGUI/FlatCAMGUI.py:1730
-msgid "Toggle Plot Area"
-msgstr "Attiva/disattiva Area disegno"
-
-#: flatcamGUI/FlatCAMGUI.py:1733
-msgid "Copy Obj_Name"
-msgstr "Copia Nome Oggetto"
-
-#: flatcamGUI/FlatCAMGUI.py:1734
-msgid "Toggle Code Editor"
-msgstr "Attiva/Disattiva Editor codice"
-
-#: flatcamGUI/FlatCAMGUI.py:1734
-msgid "Toggle the axis"
-msgstr "Commuta assi"
-
-#: flatcamGUI/FlatCAMGUI.py:1734 flatcamGUI/FlatCAMGUI.py:1933
-#: flatcamGUI/FlatCAMGUI.py:2020 flatcamGUI/FlatCAMGUI.py:2142
-msgid "Distance Minimum Tool"
-msgstr "Strumento distanza minima"
-
-#: flatcamGUI/FlatCAMGUI.py:1735
-msgid "Open Preferences Window"
-msgstr "Apri finestra preferenze"
-
-#: flatcamGUI/FlatCAMGUI.py:1736
-msgid "Rotate by 90 degree CCW"
-msgstr "Ruota 90 gradi antiorari"
-
-#: flatcamGUI/FlatCAMGUI.py:1736
-msgid "Run a Script"
-msgstr "Esegui Script"
-
-#: flatcamGUI/FlatCAMGUI.py:1736
-msgid "Toggle the workspace"
-msgstr "(Dis)abilita area di lavoro"
-
-#: flatcamGUI/FlatCAMGUI.py:1736
-msgid "Skew on X axis"
-msgstr "Inclina sull'asse X"
-
-#: flatcamGUI/FlatCAMGUI.py:1737
-msgid "Skew on Y axis"
-msgstr "Inclina sull'asse Y"
-
-#: flatcamGUI/FlatCAMGUI.py:1740
-msgid "2-Sided PCB Tool"
-msgstr "Strumento PCB doppia faccia"
-
-#: flatcamGUI/FlatCAMGUI.py:1740
-msgid "Transformations Tool"
-msgstr "Strumento Trasformazioni"
-
-#: flatcamGUI/FlatCAMGUI.py:1742
-msgid "Solder Paste Dispensing Tool"
-msgstr "Strumento dispensa solder paste"
-
-#: flatcamGUI/FlatCAMGUI.py:1743
-msgid "Film PCB Tool"
-msgstr "Strumento Film PCB"
-
-#: flatcamGUI/FlatCAMGUI.py:1743
-msgid "Non-Copper Clearing Tool"
-msgstr "Strumento No Copper Clearing (No Rame)"
-
-#: flatcamGUI/FlatCAMGUI.py:1744
-msgid "Paint Area Tool"
-msgstr "Strumento disegna area"
-
-#: flatcamGUI/FlatCAMGUI.py:1744
-msgid "Rules Check Tool"
-msgstr "Strumento controllo regole"
-
-#: flatcamGUI/FlatCAMGUI.py:1745
-msgid "View File Source"
-msgstr "Vedi file sorgente"
-
-#: flatcamGUI/FlatCAMGUI.py:1746
-msgid "Cutout PCB Tool"
-msgstr "Strumento ritaglia PCB"
-
-#: flatcamGUI/FlatCAMGUI.py:1746
-msgid "Enable all Plots"
-msgstr "Abilita tutti i plot"
-
-#: flatcamGUI/FlatCAMGUI.py:1746
-msgid "Disable all Plots"
-msgstr "Disabilita tutti i plot"
-
-#: flatcamGUI/FlatCAMGUI.py:1746
-msgid "Disable Non-selected Plots"
-msgstr "Disabilita i plot non selezionati"
-
-#: flatcamGUI/FlatCAMGUI.py:1747
-msgid "Toggle Full Screen"
-msgstr "(Dis)abilita schermo intero"
-
-#: flatcamGUI/FlatCAMGUI.py:1750
-msgid "Abort current task (gracefully)"
-msgstr "Annulla l'azione corrente"
-
-#: flatcamGUI/FlatCAMGUI.py:1753
-msgid "Save Project As"
-msgstr "Salva Progetto con nome"
-
-#: flatcamGUI/FlatCAMGUI.py:1754
-msgid ""
-"Paste Special. Will convert a Windows path style to the one required in Tcl "
-"Shell"
-msgstr ""
-"Incolla speciale. Converte uno stile di percorso Windows in quello richiesto "
-"in Tcl Shell"
-
-#: flatcamGUI/FlatCAMGUI.py:1757
-msgid "Open Online Manual"
-msgstr "Apri manuale online"
-
-#: flatcamGUI/FlatCAMGUI.py:1758
-msgid "Open Online Tutorials"
-msgstr "Apri tutorial online"
-
-#: flatcamGUI/FlatCAMGUI.py:1758
-msgid "Refresh Plots"
-msgstr "Aggiorna plot"
-
-#: flatcamGUI/FlatCAMGUI.py:1758 flatcamTools/ToolSolderPaste.py:509
-msgid "Delete Object"
-msgstr "Cancella oggetto"
-
-#: flatcamGUI/FlatCAMGUI.py:1758
-msgid "Alternate: Delete Tool"
-msgstr "Alternativo: strumento elimina"
-
-#: flatcamGUI/FlatCAMGUI.py:1759
-msgid "(left to Key_1)Toggle Notebook Area (Left Side)"
-msgstr "(da sinistra a Key_1) (Dis)attiva area blocco note (lato sinistro)"
-
-#: flatcamGUI/FlatCAMGUI.py:1759
-msgid "En(Dis)able Obj Plot"
-msgstr "(Dis)abilita il plot degli oggetti"
-
-#: flatcamGUI/FlatCAMGUI.py:1760
-msgid "Deselects all objects"
-msgstr "Deseleziona oggetti"
-
-#: flatcamGUI/FlatCAMGUI.py:1774
-msgid "Editor Shortcut list"
-msgstr "Lista shortcut dell'editor"
-
-#: flatcamGUI/FlatCAMGUI.py:1928
-msgid "GEOMETRY EDITOR"
-msgstr "EDITOR GEOMETRIE"
-
-#: flatcamGUI/FlatCAMGUI.py:1928
-msgid "Draw an Arc"
-msgstr "Disegna un arco"
-
-#: flatcamGUI/FlatCAMGUI.py:1928
-msgid "Copy Geo Item"
-msgstr "Copia elemento Geometria"
-
-#: flatcamGUI/FlatCAMGUI.py:1929
-msgid "Within Add Arc will toogle the ARC direction: CW or CCW"
-msgstr ""
-"All'interno di Aggiungi arco verrà visualizzata la direzione: oraria CW o "
-"antioraria CCW"
-
-#: flatcamGUI/FlatCAMGUI.py:1929
-msgid "Polygon Intersection Tool"
-msgstr "Strumento intersezione poligoni"
-
-#: flatcamGUI/FlatCAMGUI.py:1930
-msgid "Geo Paint Tool"
-msgstr "Strumento disegno geometria"
-
-#: flatcamGUI/FlatCAMGUI.py:1930 flatcamGUI/FlatCAMGUI.py:2019
-#: flatcamGUI/FlatCAMGUI.py:2139
-msgid "Jump to Location (x, y)"
-msgstr "Vai alla posizione (x, y)"
-
-#: flatcamGUI/FlatCAMGUI.py:1930
-msgid "Toggle Corner Snap"
-msgstr "(Dis)abilita l'aggancio agli angoli"
-
-#: flatcamGUI/FlatCAMGUI.py:1930
-msgid "Move Geo Item"
-msgstr "Sposta elemento Geometria"
-
-#: flatcamGUI/FlatCAMGUI.py:1931
-msgid "Within Add Arc will cycle through the ARC modes"
-msgstr "All'interno di Aggiungi arco verranno scorse le modalità degli archi"
-
-#: flatcamGUI/FlatCAMGUI.py:1931
-msgid "Draw a Polygon"
-msgstr "Disegna un poligono"
-
-#: flatcamGUI/FlatCAMGUI.py:1931
-msgid "Draw a Circle"
-msgstr "Disegna un cerchio"
-
-#: flatcamGUI/FlatCAMGUI.py:1932
-msgid "Draw a Path"
-msgstr "Disegna un persorso"
-
-#: flatcamGUI/FlatCAMGUI.py:1932
-msgid "Draw Rectangle"
-msgstr "Disegna un rettangolo"
-
-#: flatcamGUI/FlatCAMGUI.py:1932
-msgid "Polygon Subtraction Tool"
-msgstr "Strumento sottrazione poligono"
-
-#: flatcamGUI/FlatCAMGUI.py:1932
-msgid "Add Text Tool"
-msgstr "Strumento aggiungi testo"
-
-#: flatcamGUI/FlatCAMGUI.py:1933
-msgid "Polygon Union Tool"
-msgstr "Strumento unisci poligono"
-
-#: flatcamGUI/FlatCAMGUI.py:1933
-msgid "Flip shape on X axis"
-msgstr "Ribalta forme sull'asse X"
-
-#: flatcamGUI/FlatCAMGUI.py:1933
-msgid "Flip shape on Y axis"
-msgstr "Ribalta forme sull'asse Y"
-
-#: flatcamGUI/FlatCAMGUI.py:1934
-msgid "Skew shape on X axis"
-msgstr "Inclina forme sull'asse X"
-
-#: flatcamGUI/FlatCAMGUI.py:1934
-msgid "Skew shape on Y axis"
-msgstr "Inclina forme sull'asse Y"
-
-#: flatcamGUI/FlatCAMGUI.py:1934
-msgid "Editor Transformation Tool"
-msgstr "Strumento Edito trasformazione"
-
-#: flatcamGUI/FlatCAMGUI.py:1935
-msgid "Offset shape on X axis"
-msgstr "Applica offset alle forme sull'asse X"
-
-#: flatcamGUI/FlatCAMGUI.py:1935
-msgid "Offset shape on Y axis"
-msgstr "Applica offset alle forme sull'asse Y"
-
-#: flatcamGUI/FlatCAMGUI.py:1936 flatcamGUI/FlatCAMGUI.py:2022
-#: flatcamGUI/FlatCAMGUI.py:2144
-msgid "Save Object and Exit Editor"
-msgstr "Salva oggetto ed esci dall'Editor"
-
-#: flatcamGUI/FlatCAMGUI.py:1936
-msgid "Polygon Cut Tool"
-msgstr "Strumento taglia poligono"
-
-#: flatcamGUI/FlatCAMGUI.py:1937
-msgid "Rotate Geometry"
-msgstr "Ruota Geometria"
-
-#: flatcamGUI/FlatCAMGUI.py:1937
-msgid "Finish drawing for certain tools"
-msgstr "Completa disegno per alcuni utensili"
-
-#: flatcamGUI/FlatCAMGUI.py:1937 flatcamGUI/FlatCAMGUI.py:2022
-#: flatcamGUI/FlatCAMGUI.py:2142
-msgid "Abort and return to Select"
-msgstr "Annulla e torna a Seleziona"
-
-#: flatcamGUI/FlatCAMGUI.py:1938 flatcamGUI/FlatCAMGUI.py:2734
-msgid "Delete Shape"
-msgstr "Cancella forma"
-
-#: flatcamGUI/FlatCAMGUI.py:2018
-msgid "EXCELLON EDITOR"
-msgstr "EDITOR EXCELLON"
-
-#: flatcamGUI/FlatCAMGUI.py:2018
-msgid "Copy Drill(s)"
-msgstr "Copia foro(i)"
-
-#: flatcamGUI/FlatCAMGUI.py:2018 flatcamGUI/FlatCAMGUI.py:2268
-msgid "Add Drill"
-msgstr "Aggiungi foro"
-
-#: flatcamGUI/FlatCAMGUI.py:2019
-msgid "Move Drill(s)"
-msgstr "Sposta foro(i)"
-
-#: flatcamGUI/FlatCAMGUI.py:2020
-msgid "Add a new Tool"
-msgstr "Aggiungi un nuovo TOOL"
-
-#: flatcamGUI/FlatCAMGUI.py:2021
-msgid "Delete Drill(s)"
-msgstr "Cancella foro(i)"
-
-#: flatcamGUI/FlatCAMGUI.py:2021
-msgid "Alternate: Delete Tool(s)"
-msgstr "Alternativo: strumenti di cancellazione"
-
-#: flatcamGUI/FlatCAMGUI.py:2138
-msgid "GERBER EDITOR"
-msgstr "EDITOR GERBER"
-
-#: flatcamGUI/FlatCAMGUI.py:2138
-msgid "Add Disc"
-msgstr "Aggiungi disco"
-
-#: flatcamGUI/FlatCAMGUI.py:2138
-msgid "Add SemiDisc"
-msgstr "Aggiungi semidisco"
-
-#: flatcamGUI/FlatCAMGUI.py:2140
-msgid "Within Track & Region Tools will cycle in REVERSE the bend modes"
-msgstr ""
-"All'interno dello strumento Tracce & Regioni le modalità piegature "
-"scorreranno all'indietro"
-
-#: flatcamGUI/FlatCAMGUI.py:2141
-msgid "Within Track & Region Tools will cycle FORWARD the bend modes"
-msgstr ""
-"All'interno dello strumento Tracce & Regioni le modalità piegature "
-"scorreranno in avanti"
-
-#: flatcamGUI/FlatCAMGUI.py:2142
-msgid "Alternate: Delete Apertures"
-msgstr "Alternativo: cancella aperture"
-
-#: flatcamGUI/FlatCAMGUI.py:2143
-msgid "Eraser Tool"
-msgstr "Strumento cancella"
-
-#: flatcamGUI/FlatCAMGUI.py:2144
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:220
-msgid "Mark Area Tool"
-msgstr "Strumento marca area"
-
-#: flatcamGUI/FlatCAMGUI.py:2144
-msgid "Poligonize Tool"
-msgstr "Strumento Poligonizza"
-
-#: flatcamGUI/FlatCAMGUI.py:2144
-msgid "Transformation Tool"
-msgstr "Strumento trasformazione"
-
-#: flatcamGUI/FlatCAMGUI.py:2161
-msgid "Toggle Visibility"
-msgstr "(Dis)abilita visibilità"
-
-#: flatcamGUI/FlatCAMGUI.py:2167
-msgid "New"
-msgstr "Nuovo"
-
-#: flatcamGUI/FlatCAMGUI.py:2169 flatcamGUI/ObjectUI.py:450
-#: flatcamObjects/FlatCAMGerber.py:239 flatcamObjects/FlatCAMGerber.py:327
-#: flatcamTools/ToolCalibration.py:631 flatcamTools/ToolCalibration.py:648
-#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144
-#: flatcamTools/ToolCopperThieving.py:158
-#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolCutOut.py:92
-#: flatcamTools/ToolDblSided.py:226 flatcamTools/ToolFilm.py:69
-#: flatcamTools/ToolFilm.py:102 flatcamTools/ToolFilm.py:549
-#: flatcamTools/ToolFilm.py:557 flatcamTools/ToolImage.py:49
-#: flatcamTools/ToolImage.py:271 flatcamTools/ToolNCC.py:95
-#: flatcamTools/ToolNCC.py:558 flatcamTools/ToolNCC.py:1295
-#: flatcamTools/ToolPaint.py:502 flatcamTools/ToolPaint.py:706
-#: flatcamTools/ToolPanelize.py:118 flatcamTools/ToolPanelize.py:374
-#: flatcamTools/ToolPanelize.py:391
-msgid "Geometry"
-msgstr "Geometria"
-
-#: flatcamGUI/FlatCAMGUI.py:2173
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:99
-#: flatcamTools/ToolAlignObjects.py:74 flatcamTools/ToolAlignObjects.py:110
-#: flatcamTools/ToolCalibration.py:197 flatcamTools/ToolCalibration.py:631
-#: flatcamTools/ToolCalibration.py:648 flatcamTools/ToolCalibration.py:807
-#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144
-#: flatcamTools/ToolCopperThieving.py:158
-#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolDblSided.py:225
-#: flatcamTools/ToolFilm.py:359 flatcamTools/ToolNCC.py:558
-#: flatcamTools/ToolNCC.py:1295 flatcamTools/ToolPaint.py:502
-#: flatcamTools/ToolPaint.py:706 flatcamTools/ToolPanelize.py:374
-#: flatcamTools/ToolPunchGerber.py:149 flatcamTools/ToolPunchGerber.py:164
-msgid "Excellon"
-msgstr "Excellon"
-
-#: flatcamGUI/FlatCAMGUI.py:2180
-msgid "Grids"
-msgstr "Griglie"
-
-#: flatcamGUI/FlatCAMGUI.py:2187
-msgid "Clear Plot"
-msgstr "Svuota Plot"
-
-#: flatcamGUI/FlatCAMGUI.py:2189
-msgid "Replot"
-msgstr "Ridisegna"
-
-#: flatcamGUI/FlatCAMGUI.py:2193
-msgid "Geo Editor"
-msgstr "Edito geometria"
-
-#: flatcamGUI/FlatCAMGUI.py:2195
-msgid "Path"
-msgstr "Percorso"
-
-#: flatcamGUI/FlatCAMGUI.py:2197
-msgid "Rectangle"
-msgstr "Rettangolo"
-
-#: flatcamGUI/FlatCAMGUI.py:2200
-msgid "Circle"
-msgstr "Cerchio"
-
-#: flatcamGUI/FlatCAMGUI.py:2204
-msgid "Arc"
-msgstr "Arco"
-
-#: flatcamGUI/FlatCAMGUI.py:2218
-msgid "Union"
-msgstr "Unione"
-
-#: flatcamGUI/FlatCAMGUI.py:2220
-msgid "Intersection"
-msgstr "Intersezione"
-
-#: flatcamGUI/FlatCAMGUI.py:2222
-msgid "Subtraction"
-msgstr "Sottrazione"
-
-#: flatcamGUI/FlatCAMGUI.py:2224 flatcamGUI/ObjectUI.py:2141
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:56
-msgid "Cut"
-msgstr "Taglia"
-
-#: flatcamGUI/FlatCAMGUI.py:2235
-msgid "Pad"
-msgstr "Pad"
-
-#: flatcamGUI/FlatCAMGUI.py:2237
-msgid "Pad Array"
-msgstr "Matrice di Pad"
-
-#: flatcamGUI/FlatCAMGUI.py:2241
-msgid "Track"
-msgstr "Traccia"
-
-#: flatcamGUI/FlatCAMGUI.py:2243
-msgid "Region"
-msgstr "RegioneRegione"
-
-#: flatcamGUI/FlatCAMGUI.py:2266
-msgid "Exc Editor"
-msgstr "Editor Excellon"
-
-#: flatcamGUI/FlatCAMGUI.py:2311
-msgid ""
-"Relative measurement.\n"
-"Reference is last click position"
-msgstr ""
-"Misure relative.\n"
-"Il riferimento è l'ultima posizione cliccata"
-
-#: flatcamGUI/FlatCAMGUI.py:2317
-msgid ""
-"Absolute measurement.\n"
-"Reference is (X=0, Y= 0) position"
-msgstr ""
-"Misure relative.\n"
-"Il riferimento è la posizione (X=0, Y=0)"
-
-#: flatcamGUI/FlatCAMGUI.py:2419
-msgid "Lock Toolbars"
-msgstr "Strumenti di blocco"
-
-#: flatcamGUI/FlatCAMGUI.py:2505
-msgid "FlatCAM Preferences Folder opened."
-msgstr "Cartella preferenze FlatCAM aperta."
-
-#: flatcamGUI/FlatCAMGUI.py:2516
-msgid "Are you sure you want to delete the GUI Settings? \n"
-msgstr "Sicuro di voler cancellare le impostazioni GUI?\n"
-
-#: flatcamGUI/FlatCAMGUI.py:2624
-msgid "&Cutout Tool"
-msgstr "Strumento Ritaglia"
-
-#: flatcamGUI/FlatCAMGUI.py:2694
-msgid "Select 'Esc'"
-msgstr "Seleziona 'Esc'"
-
-#: flatcamGUI/FlatCAMGUI.py:2732
-msgid "Copy Objects"
-msgstr "Copia oggetti"
-
-#: flatcamGUI/FlatCAMGUI.py:2740
-msgid "Move Objects"
-msgstr "Sposta oggetti"
-
-#: flatcamGUI/FlatCAMGUI.py:3363
-msgid ""
-"Please first select a geometry item to be cutted\n"
-"then select the geometry item that will be cutted\n"
-"out of the first item. In the end press ~X~ key or\n"
-"the toolbar button."
-msgstr ""
-"Seleziona prima un elemento di geometria da tagliare\n"
-"quindi seleziona l'elemento della geometria che verrà tagliato\n"
-"dal primo elemento. Alla fine premere il tasto ~ X ~ o\n"
-"il pulsante della barra degli strumenti."
-
-#: flatcamGUI/FlatCAMGUI.py:3370 flatcamGUI/FlatCAMGUI.py:3532
-#: flatcamGUI/FlatCAMGUI.py:3577 flatcamGUI/FlatCAMGUI.py:3597
-msgid "Warning"
-msgstr "Avvertenza"
-
-#: flatcamGUI/FlatCAMGUI.py:3527
-msgid ""
-"Please select geometry items \n"
-"on which to perform Intersection Tool."
-msgstr ""
-"Seleziona gli elementi della geometria\n"
-"su cui eseguire lo strumento Intersezione."
-
-#: flatcamGUI/FlatCAMGUI.py:3572
-msgid ""
-"Please select geometry items \n"
-"on which to perform Substraction Tool."
-msgstr ""
-"Seleziona gli elementi della geometria\n"
-"su cui eseguire lo strumento Sottrazione."
-
-#: flatcamGUI/FlatCAMGUI.py:3592
-msgid ""
-"Please select geometry items \n"
-"on which to perform union."
-msgstr ""
-"Seleziona gli elementi della geometria\n"
-"su cui eseguire lo strumento Unione."
-
-#: flatcamGUI/FlatCAMGUI.py:3675 flatcamGUI/FlatCAMGUI.py:3890
-msgid "Cancelled. Nothing selected to delete."
-msgstr "Cancellato. Nessuna seleziona da cancellare."
-
-#: flatcamGUI/FlatCAMGUI.py:3759 flatcamGUI/FlatCAMGUI.py:4006
-msgid "Cancelled. Nothing selected to copy."
-msgstr "Cancellato. Nessuna seleziona da copiare."
-
-#: flatcamGUI/FlatCAMGUI.py:3805 flatcamGUI/FlatCAMGUI.py:4035
-msgid "Cancelled. Nothing selected to move."
-msgstr "Cancellato. Nessuna seleziona da spostare."
-
-#: flatcamGUI/FlatCAMGUI.py:4061
-msgid "New Tool ..."
-msgstr "Nuovo utensile ..."
-
-#: flatcamGUI/FlatCAMGUI.py:4062 flatcamTools/ToolNCC.py:924
-#: flatcamTools/ToolPaint.py:850 flatcamTools/ToolSolderPaste.py:560
-msgid "Enter a Tool Diameter"
-msgstr "Diametro utensile"
-
-#: flatcamGUI/FlatCAMGUI.py:4074
-msgid "Adding Tool cancelled ..."
-msgstr "Aggiunta utensile annullata ..."
-
-#: flatcamGUI/FlatCAMGUI.py:4088
-msgid "Distance Tool exit..."
-msgstr "Uscita dallo strumento Distanza..."
-
-#: flatcamGUI/FlatCAMGUI.py:4300 flatcamGUI/FlatCAMGUI.py:4307
-msgid "Idle."
-msgstr "Inattivo."
-
-#: flatcamGUI/FlatCAMGUI.py:4338
-msgid "Application started ..."
-msgstr "Applicazione avviata ..."
-
-#: flatcamGUI/FlatCAMGUI.py:4339
-msgid "Hello!"
-msgstr "Ciao!"
-
-#: flatcamGUI/FlatCAMGUI.py:4401
-msgid "Open Project ..."
-msgstr "Apri progetto ..."
-
-#: flatcamGUI/FlatCAMGUI.py:4427
-msgid "Exit"
-msgstr "Esci"
-
-#: flatcamGUI/GUIElements.py:2513
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:180
-#: flatcamTools/ToolDblSided.py:173 flatcamTools/ToolDblSided.py:388
-#: flatcamTools/ToolFilm.py:219
-msgid "Reference"
-msgstr "Riferimento"
-
-#: flatcamGUI/GUIElements.py:2515
-msgid ""
-"The reference can be:\n"
-"- Absolute -> the reference point is point (0,0)\n"
-"- Relative -> the reference point is the mouse position before Jump"
-msgstr ""
-"Il riferimento può essere:\n"
-"- Assoluto -> il punto di riferimento è punto (0,0)\n"
-"- Relativo -> il punto di riferimento è la posizione del mouse prima del "
-"salto"
-
-#: flatcamGUI/GUIElements.py:2520
-msgid "Abs"
-msgstr "Assoluto"
-
-#: flatcamGUI/GUIElements.py:2521
-msgid "Relative"
-msgstr "Relativo"
-
-#: flatcamGUI/GUIElements.py:2531
-msgid "Location"
-msgstr "Locazione"
-
-#: flatcamGUI/GUIElements.py:2533
-msgid ""
-"The Location value is a tuple (x,y).\n"
-"If the reference is Absolute then the Jump will be at the position (x,y).\n"
-"If the reference is Relative then the Jump will be at the (x,y) distance\n"
-"from the current mouse location point."
-msgstr ""
-"Il valore Posizione è una tupla (x,y).\n"
-"Se il riferimento è Assoluto, il Salto sarà nella posizione (x,y).\n"
-"Se il riferimento è relativo, il salto sarà alla distanza (x,y)\n"
-"dal punto di posizione attuale del mouse."
-
-#: flatcamGUI/GUIElements.py:2573
-msgid "Save Log"
-msgstr "Salva log"
-
-#: flatcamGUI/GUIElements.py:2592 flatcamTools/ToolShell.py:278
-msgid "Type >help< to get started"
-msgstr "Digita >help< per iniziare"
-
-#: flatcamGUI/ObjectUI.py:38
-msgid "FlatCAM Object"
-msgstr "Oggetto FlatCAM"
-
-#: flatcamGUI/ObjectUI.py:78
-msgid ""
-"BASIC is suitable for a beginner. Many parameters\n"
-"are hidden from the user in this mode.\n"
-"ADVANCED mode will make available all parameters.\n"
-"\n"
-"To change the application LEVEL, go to:\n"
-"Edit -> Preferences -> General and check:\n"
-"'APP. LEVEL' radio button."
-msgstr ""
-"BASIC è adatto per un principiante. Molti parametri\n"
-"sono nascosti all'utente in questa modalità.\n"
-"La modalità AVANZATA renderà disponibili tutti i parametri.\n"
-"\n"
-"Per modificare il LIVELLO dell'applicazione, vai su:\n"
-"Modifica -> Preferenze -> Generale e seleziona:\n"
-"il pulsante 'APP. Livello'."
-
-#: flatcamGUI/ObjectUI.py:111
-msgid "Geometrical transformations of the current object."
-msgstr "Trasformazioni geometriche dell'oggetto corrente."
-
-#: flatcamGUI/ObjectUI.py:120
-msgid ""
-"Factor by which to multiply\n"
-"geometric features of this object.\n"
-"Expressions are allowed. E.g: 1/25.4"
-msgstr ""
-"Fattore per cui moltiplicare\n"
-"le feature geometriche dell'oggetto.\n"
-"Sono permesse espressioni. Es: 1/25.4"
-
-#: flatcamGUI/ObjectUI.py:127
-msgid "Perform scaling operation."
-msgstr "Esegui azione di riscalatura."
-
-#: flatcamGUI/ObjectUI.py:138
-msgid ""
-"Amount by which to move the object\n"
-"in the x and y axes in (x, y) format.\n"
-"Expressions are allowed. E.g: (1/3.2, 0.5*3)"
-msgstr ""
-"Quantità per cui muovere l'oggetto\n"
-"negli assi X ed Y nel formato (x,y).\n"
-"Sono permesse espressioni. Es: (1/3.2,0.5*3)"
-
-#: flatcamGUI/ObjectUI.py:145
-msgid "Perform the offset operation."
-msgstr "Esegui l'operazione offset."
-
-#: flatcamGUI/ObjectUI.py:178
-msgid "Gerber Object"
-msgstr "Oggetto Gerber"
-
-#: flatcamGUI/ObjectUI.py:187 flatcamGUI/ObjectUI.py:730
-#: flatcamGUI/ObjectUI.py:1426 flatcamGUI/ObjectUI.py:2125
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:30
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:33
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:31
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:31
-msgid "Plot Options"
-msgstr "Opzioni disegno"
-
-#: flatcamGUI/ObjectUI.py:193 flatcamGUI/ObjectUI.py:731
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:45
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:38
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119
-#: flatcamTools/ToolCopperThieving.py:191
-msgid "Solid"
-msgstr "Solido"
-
-#: flatcamGUI/ObjectUI.py:195
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:40
-msgid "Solid color polygons."
-msgstr "Poligono colore pieno."
-
-#: flatcamGUI/ObjectUI.py:201
-msgid "Multi-Color"
-msgstr "Multi-Colore"
-
-#: flatcamGUI/ObjectUI.py:203
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:47
-msgid "Draw polygons in different colors."
-msgstr "Disegna poligoni in colori diversi."
-
-#: flatcamGUI/ObjectUI.py:209 flatcamGUI/ObjectUI.py:769
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:39
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:35
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:52
-msgid "Plot"
-msgstr "Disegna"
-
-#: flatcamGUI/ObjectUI.py:211 flatcamGUI/ObjectUI.py:771
-#: flatcamGUI/ObjectUI.py:1486 flatcamGUI/ObjectUI.py:2235
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:41
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:37
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:54
-msgid "Plot (show) this object."
-msgstr "Disegna (mostra) questo oggetto."
-
-#: flatcamGUI/ObjectUI.py:239
-msgid ""
-"Toggle the display of the Gerber Apertures Table.\n"
-"When unchecked, it will delete all mark shapes\n"
-"that are drawn on canvas."
-msgstr ""
-"(Dis)attiva la visualizzazione della tabella delle aperture del Gerber.\n"
-"Se deselezionato, eliminerà tutte le forme dei segni disegnati."
-
-#: flatcamGUI/ObjectUI.py:249
-msgid "Mark All"
-msgstr "Marchia tutto"
-
-#: flatcamGUI/ObjectUI.py:251
-msgid ""
-"When checked it will display all the apertures.\n"
-"When unchecked, it will delete all mark shapes\n"
-"that are drawn on canvas."
-msgstr ""
-"Se selezionato, mostrerà tutte le aperture.\n"
-"Se deselezionato, eliminerà tutte le forme disegnati."
-
-#: flatcamGUI/ObjectUI.py:279
-msgid "Mark the aperture instances on canvas."
-msgstr "Marchia le aperture."
-
-#: flatcamGUI/ObjectUI.py:291
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:32
-msgid "Isolation Routing"
-msgstr "Percorso di isolamento"
-
-#: flatcamGUI/ObjectUI.py:293
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:34
-msgid ""
-"Create a Geometry object with\n"
-"toolpaths to cut outside polygons."
-msgstr ""
-"Crea un oggetto Geometria con\n"
-"percorsi utensile per tagliare esternamente i poligoni."
-
-#: flatcamGUI/ObjectUI.py:311
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:69
-msgid ""
-"Choose which tool to use for Gerber isolation:\n"
-"'Circular' or 'V-shape'.\n"
-"When the 'V-shape' is selected then the tool\n"
-"diameter will depend on the chosen cut depth."
-msgstr ""
-"Scegli quale strumento utilizzare per l'isolamento Gerber:\n"
-"'Circolare' o 'a V'.\n"
-"Quando è selezionata la forma 'a V', il diametro\n"
-"dell'utensile dipenderà dalla profondità di taglio scelta."
-
-#: flatcamGUI/ObjectUI.py:317
-msgid "V-Shape"
-msgstr "Punta a V"
-
-#: flatcamGUI/ObjectUI.py:323 flatcamGUI/ObjectUI.py:1672
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:81
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:72
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:78
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:85
-#: flatcamTools/ToolNCC.py:233 flatcamTools/ToolNCC.py:240
-#: flatcamTools/ToolPaint.py:216
-msgid "V-Tip Dia"
-msgstr "Diametro punta a V"
-
-#: flatcamGUI/ObjectUI.py:325 flatcamGUI/ObjectUI.py:1675
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:83
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:74
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:80
-#: flatcamTools/ToolNCC.py:235 flatcamTools/ToolPaint.py:218
-msgid "The tip diameter for V-Shape Tool"
-msgstr "Il diametro sulla punta dell'utensile a V"
-
-#: flatcamGUI/ObjectUI.py:336 flatcamGUI/ObjectUI.py:1687
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:94
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:84
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:91
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:99
-#: flatcamTools/ToolNCC.py:246 flatcamTools/ToolNCC.py:254
-#: flatcamTools/ToolPaint.py:229
-msgid "V-Tip Angle"
-msgstr "Angolo punta a V"
-
-#: flatcamGUI/ObjectUI.py:338 flatcamGUI/ObjectUI.py:1690
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:96
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:86
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:93
-#: flatcamTools/ToolNCC.py:248 flatcamTools/ToolPaint.py:231
-msgid ""
-"The tip angle for V-Shape Tool.\n"
-"In degree."
-msgstr ""
-"L'angolo alla punta dell'utensile a V\n"
-"In gradi."
-
-#: flatcamGUI/ObjectUI.py:352 flatcamGUI/ObjectUI.py:1706
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:50
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:109
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61
-#: flatcamObjects/FlatCAMGeometry.py:1146 flatcamTools/ToolCutOut.py:141
-msgid ""
-"Cutting depth (negative)\n"
-"below the copper surface."
-msgstr ""
-"Profondità di taglio (negativo)\n"
-"sotto la superficie del rame."
-
-#: flatcamGUI/ObjectUI.py:366
-msgid ""
-"Diameter of the cutting tool.\n"
-"If you want to have an isolation path\n"
-"inside the actual shape of the Gerber\n"
-"feature, use a negative value for\n"
-"this parameter."
-msgstr ""
-"Diametro dell'utensile da taglio.\n"
-"Se vuoi avere un percorso di isolamento\n"
-"all'interno della forma reale del Gerber,\n"
-"usa un valore negativo per questo parametro."
-
-#: flatcamGUI/ObjectUI.py:382
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:56
-msgid "# Passes"
-msgstr "# Passate"
-
-#: flatcamGUI/ObjectUI.py:384
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:58
-msgid ""
-"Width of the isolation gap in\n"
-"number (integer) of tool widths."
-msgstr ""
-"Larghezza della distanza di isolamento in\n"
-"numero (intero) di larghezze dell'utensile."
-
-#: flatcamGUI/ObjectUI.py:395
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:68
-msgid "Pass overlap"
-msgstr "Sovrapposizione passate"
-
-#: flatcamGUI/ObjectUI.py:397
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:70
-msgid "How much (percentage) of the tool width to overlap each tool pass."
-msgstr ""
-"Quanto (in frazione) della larghezza dell'utensile sarà sovrapposto ad ogni "
-"passaggio dell'utensile."
-
-#: flatcamGUI/ObjectUI.py:411
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:58
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:97
-msgid ""
-"Milling type:\n"
-"- climb / best for precision milling and to reduce tool usage\n"
-"- conventional / useful when there is no backlash compensation"
-msgstr ""
-"Tipo di fresatura:\n"
-"- salita / migliore per fresatura di precisione e riduzione dell'uso degli "
-"utensili\n"
-"- convenzionale / utile in assenza di compensazione del gioco"
-
-#: flatcamGUI/ObjectUI.py:421
-msgid "Combine"
-msgstr "Combinata"
-
-#: flatcamGUI/ObjectUI.py:423
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:109
-msgid "Combine all passes into one object"
-msgstr "Combina tutti i passaggi in un oggetto"
-
-#: flatcamGUI/ObjectUI.py:427
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:43
-msgid "\"Follow\""
-msgstr "\"Segui\""
-
-#: flatcamGUI/ObjectUI.py:428
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:45
-msgid ""
-"Generate a 'Follow' geometry.\n"
-"This means that it will cut through\n"
-"the middle of the trace."
-msgstr ""
-"Genera una geometria 'Segui'.\n"
-"Ciò significa che taglierà\n"
-"al centro della traccia."
-
-#: flatcamGUI/ObjectUI.py:434
-msgid "Except"
-msgstr "Eccetto"
-
-#: flatcamGUI/ObjectUI.py:437
-msgid ""
-"When the isolation geometry is generated,\n"
-"by checking this, the area of the object below\n"
-"will be subtracted from the isolation geometry."
-msgstr ""
-"Quando viene generata la geometria di isolamento,\n"
-"abilitandolo, l'area dell'oggetto in basso\n"
-"sarà sottratto dalla geometria di isolamento."
-
-#: flatcamGUI/ObjectUI.py:450
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:97
-#: flatcamObjects/FlatCAMGerber.py:239 flatcamObjects/FlatCAMGerber.py:327
-#: flatcamTools/ToolAlignObjects.py:73 flatcamTools/ToolAlignObjects.py:109
-#: flatcamTools/ToolCalibration.py:196 flatcamTools/ToolCalibration.py:631
-#: flatcamTools/ToolCalibration.py:648 flatcamTools/ToolCalibration.py:807
-#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144
-#: flatcamTools/ToolCopperThieving.py:158
-#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolCutOut.py:91
-#: flatcamTools/ToolDblSided.py:224 flatcamTools/ToolFilm.py:69
-#: flatcamTools/ToolFilm.py:102 flatcamTools/ToolFilm.py:549
-#: flatcamTools/ToolFilm.py:557 flatcamTools/ToolImage.py:49
-#: flatcamTools/ToolImage.py:252 flatcamTools/ToolImage.py:273
-#: flatcamTools/ToolNCC.py:96 flatcamTools/ToolNCC.py:558
-#: flatcamTools/ToolNCC.py:1295 flatcamTools/ToolPaint.py:502
-#: flatcamTools/ToolPaint.py:706 flatcamTools/ToolPanelize.py:118
-#: flatcamTools/ToolPanelize.py:204 flatcamTools/ToolPanelize.py:374
-#: flatcamTools/ToolPanelize.py:391
-msgid "Gerber"
-msgstr "Gerber"
-
-#: flatcamGUI/ObjectUI.py:457 flatcamTools/ToolNCC.py:86
-#: flatcamTools/ToolPaint.py:80
-msgid "Obj Type"
-msgstr "Tipo oggetto"
-
-#: flatcamGUI/ObjectUI.py:459
-msgid ""
-"Specify the type of object to be excepted from isolation.\n"
-"It can be of type: Gerber or Geometry.\n"
-"What is selected here will dictate the kind\n"
-"of objects that will populate the 'Object' combobox."
-msgstr ""
-"Specificare il tipo di oggetto da escludere dall'isolamento.\n"
-"Può essere di tipo: Gerber o Geometria.\n"
-"Ciò che è selezionato qui detterà il tipo\n"
-"di oggetti che popoleranno la casella 'Oggetto'."
-
-#: flatcamGUI/ObjectUI.py:472
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:48
-#: flatcamTools/ToolCalibration.py:186 flatcamTools/ToolNCC.py:109
-#: flatcamTools/ToolPaint.py:103 flatcamTools/ToolPanelize.py:100
-#: flatcamTools/ToolQRCode.py:78
-msgid "Object"
-msgstr "Oggetto"
-
-#: flatcamGUI/ObjectUI.py:473
-msgid "Object whose area will be removed from isolation geometry."
-msgstr "Oggetto la cui area verrà rimossa dalla geometria di isolamento."
-
-#: flatcamGUI/ObjectUI.py:480
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:82
-msgid "Scope"
-msgstr "Scopo"
-
-#: flatcamGUI/ObjectUI.py:482
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:84
-msgid ""
-"Isolation scope. Choose what to isolate:\n"
-"- 'All' -> Isolate all the polygons in the object\n"
-"- 'Selection' -> Isolate a selection of polygons."
-msgstr ""
-"Obiettivo dell'isolamento. Scegli cosa isolare:\n"
-"- 'Tutto' -> Isola tutti i poligoni nell'oggetto\n"
-"- 'Selezione' -> Isola una selezione di poligoni."
-
-#: flatcamGUI/ObjectUI.py:487
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:307
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:89
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:311
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:258
-#: flatcamTools/ToolNCC.py:539 flatcamTools/ToolPaint.py:456
-msgid "Selection"
-msgstr "Selezione"
-
-#: flatcamGUI/ObjectUI.py:495
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:122
-msgid "Isolation Type"
-msgstr "Tipo isolamento"
-
-#: flatcamGUI/ObjectUI.py:497
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:124
-msgid ""
-"Choose how the isolation will be executed:\n"
-"- 'Full' -> complete isolation of polygons\n"
-"- 'Ext' -> will isolate only on the outside\n"
-"- 'Int' -> will isolate only on the inside\n"
-"'Exterior' isolation is almost always possible\n"
-"(with the right tool) but 'Interior'\n"
-"isolation can be done only when there is an opening\n"
-"inside of the polygon (e.g polygon is a 'doughnut' shape)."
-msgstr ""
-"Scegli come verrà eseguito l'isolamento:\n"
-"- 'Completo' -> completo isolamento dei poligoni\n"
-"- 'Ext' -> isolerà solo all'esterno\n"
-"- 'Int' -> isolerà solo all'interno\n"
-"L'isolamento 'esterno' è quasi sempre possibile\n"
-"(con lo strumento giusto) ma 'Interno' può\n"
-"essere fatto solo quando c'è un'apertura all'interno\n"
-"del poligono (ad esempio il poligono ha una forma a \"ciambella\")."
-
-#: flatcamGUI/ObjectUI.py:506
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:133
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:154
-msgid "Full"
-msgstr "Completo"
-
-#: flatcamGUI/ObjectUI.py:507
-msgid "Ext"
-msgstr "Ext"
-
-#: flatcamGUI/ObjectUI.py:508
-msgid "Int"
-msgstr "Int"
-
-#: flatcamGUI/ObjectUI.py:513
-msgid "Generate Isolation Geometry"
-msgstr "Genera geometria di isolamento"
-
-#: flatcamGUI/ObjectUI.py:521
-msgid ""
-"Create a Geometry object with toolpaths to cut \n"
-"isolation outside, inside or on both sides of the\n"
-"object. For a Gerber object outside means outside\n"
-"of the Gerber feature and inside means inside of\n"
-"the Gerber feature, if possible at all. This means\n"
-"that only if the Gerber feature has openings inside, they\n"
-"will be isolated. If what is wanted is to cut isolation\n"
-"inside the actual Gerber feature, use a negative tool\n"
-"diameter above."
-msgstr ""
-"Crea un oggetto Geometrie con i percorsi utensile per isolare\n"
-"all'esterno, all'interno o su entrambi i lati dell'oggetto.\n"
-"Per un oggetto Gerber esterno significa esterno\n"
-"della funzione Gerber e dentro significa dentro\n"
-"la funzione Gerber, se possibile effettuarlo. Questo significa\n"
-"che solo se la funzione Gerber ha delle aperture interne, possono\n"
-"essere isolate. Se ciò che si desidera è tagliare l'isolamento\n"
-"all'interno dell'attuale funzione Gerber, usa uno strumento con diametro\n"
-"negativo."
-
-#: flatcamGUI/ObjectUI.py:533
-msgid "Buffer Solid Geometry"
-msgstr "Geometria solida del buffer"
-
-#: flatcamGUI/ObjectUI.py:535
-msgid ""
-"This button is shown only when the Gerber file\n"
-"is loaded without buffering.\n"
-"Clicking this will create the buffered geometry\n"
-"required for isolation."
-msgstr ""
-"Questo pulsante viene visualizzato solo quando il file Gerber\n"
-"viene caricato senza buffering.\n"
-"Facendo clic su questo si creerà la geometria bufferizzata\n"
-"richiesta per l'isolamento."
-
-#: flatcamGUI/ObjectUI.py:567
-msgid "Clear N-copper"
-msgstr "Azzera N-Copper (non rame)"
-
-#: flatcamGUI/ObjectUI.py:569
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:33
-msgid ""
-"Create a Geometry object with\n"
-"toolpaths to cut all non-copper regions."
-msgstr ""
-"Crea un oggetto Geometry con\n"
-"percorsi utensile per tagliare tutte le regioni non rame."
-
-#: flatcamGUI/ObjectUI.py:576 flatcamGUI/ObjectUI.py:2079
-#: flatcamTools/ToolNCC.py:599
-msgid ""
-"Create the Geometry Object\n"
-"for non-copper routing."
-msgstr ""
-"Crea l'oggetto Geometria\n"
-"per l'isolamento non-rame."
-
-#: flatcamGUI/ObjectUI.py:589
-msgid "Board cutout"
-msgstr "Ritaglia scheda"
-
-#: flatcamGUI/ObjectUI.py:591
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:34
-msgid ""
-"Create toolpaths to cut around\n"
-"the PCB and separate it from\n"
-"the original board."
-msgstr ""
-"Crea percorsi utensile per ritagliare\n"
-"il PCB e separarlo dalla\n"
-"scheda originale."
-
-#: flatcamGUI/ObjectUI.py:598
-msgid ""
-"Generate the geometry for\n"
-"the board cutout."
-msgstr ""
-"Genera la geometria per\n"
-"il ritaglio della scheda."
-
-#: flatcamGUI/ObjectUI.py:616
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:119
-msgid "Non-copper regions"
-msgstr "Regioni non-rame"
-
-#: flatcamGUI/ObjectUI.py:618
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:121
-msgid ""
-"Create polygons covering the\n"
-"areas without copper on the PCB.\n"
-"Equivalent to the inverse of this\n"
-"object. Can be used to remove all\n"
-"copper from a specified region."
-msgstr ""
-"Crea poligoni che coprono le\n"
-"aree senza rame sul PCB.\n"
-"Equivalente all'inverso di questo\n"
-"oggetto. Può essere usato per rimuovere tutto\n"
-"il rame da una regione specifica."
-
-#: flatcamGUI/ObjectUI.py:628 flatcamGUI/ObjectUI.py:669
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:133
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:166
-msgid "Boundary Margin"
-msgstr "Margine dei bordi"
-
-#: flatcamGUI/ObjectUI.py:630
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:135
-msgid ""
-"Specify the edge of the PCB\n"
-"by drawing a box around all\n"
-"objects with this minimum\n"
-"distance."
-msgstr ""
-"Specifica il bordo del PCB\n"
-"disegnando una contenitore intorno a tutti\n"
-"gli oggetti con questa distanza minima."
-
-#: flatcamGUI/ObjectUI.py:645 flatcamGUI/ObjectUI.py:683
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:148
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:179
-msgid "Rounded Geo"
-msgstr "Geometria arrotondata"
-
-#: flatcamGUI/ObjectUI.py:647
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:150
-msgid "Resulting geometry will have rounded corners."
-msgstr "La geometria risultante avrà angoli arrotondati."
-
-#: flatcamGUI/ObjectUI.py:651 flatcamGUI/ObjectUI.py:692
-#: flatcamTools/ToolSolderPaste.py:134
-msgid "Generate Geo"
-msgstr "Genera Geometria"
-
-#: flatcamGUI/ObjectUI.py:661
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:160
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137
-#: flatcamTools/ToolPanelize.py:101 flatcamTools/ToolQRCode.py:192
-msgid "Bounding Box"
-msgstr "Rettangolo contenitore"
-
-#: flatcamGUI/ObjectUI.py:663
-msgid ""
-"Create a geometry surrounding the Gerber object.\n"
-"Square shape."
-msgstr ""
-"Crea una geometria che circonda l'oggetto Gerber.\n"
-"Forma quadrata."
-
-#: flatcamGUI/ObjectUI.py:671
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:168
-msgid ""
-"Distance of the edges of the box\n"
-"to the nearest polygon."
-msgstr ""
-"Distanza del contenitore dai bordi\n"
-"al poligono più vicino."
-
-#: flatcamGUI/ObjectUI.py:685
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:181
-msgid ""
-"If the bounding box is \n"
-"to have rounded corners\n"
-"their radius is equal to\n"
-"the margin."
-msgstr ""
-"Se il rettangolo contenitore deve\n"
-"avere angoli arrotondati\n"
-"il loro raggio è uguale al\n"
-"margine."
-
-#: flatcamGUI/ObjectUI.py:694
-msgid "Generate the Geometry object."
-msgstr "Genera l'oggetto geometria."
-
-#: flatcamGUI/ObjectUI.py:721
-msgid "Excellon Object"
-msgstr "Oggetto Excellon"
-
-#: flatcamGUI/ObjectUI.py:733
-msgid "Solid circles."
-msgstr "Cercio pieno."
-
-#: flatcamGUI/ObjectUI.py:781 flatcamGUI/ObjectUI.py:876
-#: flatcamGUI/ObjectUI.py:2256
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:71
-#: flatcamTools/ToolProperties.py:166
-msgid "Drills"
-msgstr "Fori"
-
-#: flatcamGUI/ObjectUI.py:781 flatcamGUI/ObjectUI.py:877
-#: flatcamGUI/ObjectUI.py:2256
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:158
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:72
-#: flatcamTools/ToolProperties.py:168
-msgid "Slots"
-msgstr "Slots"
-
-#: flatcamGUI/ObjectUI.py:786
-msgid ""
-"This is the Tool Number.\n"
-"When ToolChange is checked, on toolchange event this value\n"
-"will be showed as a T1, T2 ... Tn in the Machine Code.\n"
-"\n"
-"Here the tools are selected for G-code generation."
-msgstr ""
-"Questo è il numero dello strumento.\n"
-"Quando CambioUtensile è attivo, in caso di cambio utensile questo valore\n"
-"verrà mostrato come T1, T2 ... Tn nel codice macchina.\n"
-"\n"
-"Qui vengono selezionati gli utensili per la generazione del codice G."
-
-#: flatcamGUI/ObjectUI.py:791 flatcamGUI/ObjectUI.py:1510
-#: flatcamTools/ToolPaint.py:142
-msgid ""
-"Tool Diameter. It's value (in current FlatCAM units) \n"
-"is the cut width into the material."
-msgstr ""
-"Diametro utensile. Il suo valore (in unità FlatCAM) \n"
-"è la larghezza di taglio nel materiale."
-
-#: flatcamGUI/ObjectUI.py:794
-msgid ""
-"The number of Drill holes. Holes that are drilled with\n"
-"a drill bit."
-msgstr ""
-"Numero di fori da realizzare. Fori realizzati con una\n"
-"punta da trapano."
-
-#: flatcamGUI/ObjectUI.py:797
-msgid ""
-"The number of Slot holes. Holes that are created by\n"
-"milling them with an endmill bit."
-msgstr ""
-"Numero di fori slot da realizzare. Fori realizzati fresando\n"
-"con un utensile a candela."
-
-#: flatcamGUI/ObjectUI.py:800
-msgid ""
-"Toggle display of the drills for the current tool.\n"
-"This does not select the tools for G-code generation."
-msgstr ""
-"(Dis)attiva la visualizzazione delle punte per lo strumento corrente.\n"
-"Non seleziona gli utensili per la generazione del codice G."
-
-#: flatcamGUI/ObjectUI.py:818 flatcamGUI/ObjectUI.py:1662
-#: flatcamObjects/FlatCAMExcellon.py:514 flatcamObjects/FlatCAMExcellon.py:726
-#: flatcamObjects/FlatCAMExcellon.py:742 flatcamObjects/FlatCAMExcellon.py:746
-#: flatcamObjects/FlatCAMGeometry.py:306 flatcamObjects/FlatCAMGeometry.py:731
-#: flatcamObjects/FlatCAMGeometry.py:767 flatcamTools/ToolNCC.py:331
-#: flatcamTools/ToolNCC.py:797 flatcamTools/ToolNCC.py:811
-#: flatcamTools/ToolNCC.py:1191 flatcamTools/ToolPaint.py:314
-#: flatcamTools/ToolPaint.py:767 flatcamTools/ToolPaint.py:779
-#: flatcamTools/ToolPaint.py:1166
-msgid "Parameters for"
-msgstr "Parametri per"
-
-#: flatcamGUI/ObjectUI.py:821 flatcamGUI/ObjectUI.py:1665
-#: flatcamTools/ToolNCC.py:334 flatcamTools/ToolPaint.py:317
-msgid ""
-"The data used for creating GCode.\n"
-"Each tool store it's own set of such data."
-msgstr ""
-"Dati usati per la creazione di GCode.\n"
-"Ogni deposito di Utensili ha il proprio set di dati."
-
-#: flatcamGUI/ObjectUI.py:847
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:48
-msgid ""
-"Operation type:\n"
-"- Drilling -> will drill the drills/slots associated with this tool\n"
-"- Milling -> will mill the drills/slots"
-msgstr ""
-"Tipo di operazione:\n"
-"- Foratura -> eseguirà i fori/slot associati a questo strumento\n"
-"- Fresatura -> freserà i fori(slot"
-
-#: flatcamGUI/ObjectUI.py:853
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:54
-msgid "Drilling"
-msgstr "Foratura"
-
-#: flatcamGUI/ObjectUI.py:854
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:55
-msgid "Milling"
-msgstr "Fresatura"
-
-#: flatcamGUI/ObjectUI.py:869
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:64
-msgid ""
-"Milling type:\n"
-"- Drills -> will mill the drills associated with this tool\n"
-"- Slots -> will mill the slots associated with this tool\n"
-"- Both -> will mill both drills and mills or whatever is available"
-msgstr ""
-"Tipo di fresatura:\n"
-"- Fori -> eseguirà la fresatura dei fori associati a questo strumento\n"
-"- Slot -> eseguirà la fresatura degli slot associati a questo strumento\n"
-"- Entrambi -> eseguirà la fresatura di trapani e mulini o qualsiasi altra "
-"cosa sia disponibile"
-
-#: flatcamGUI/ObjectUI.py:878
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:73
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:210
-#: flatcamTools/ToolFilm.py:258
-msgid "Both"
-msgstr "Entrambi"
-
-#: flatcamGUI/ObjectUI.py:886
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:80
-msgid "Milling Diameter"
-msgstr "Diametro fresa"
-
-#: flatcamGUI/ObjectUI.py:888
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:82
-msgid "The diameter of the tool who will do the milling"
-msgstr "Diametro dell'utensile che freserà"
-
-#: flatcamGUI/ObjectUI.py:902
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:95
-msgid ""
-"Drill depth (negative)\n"
-"below the copper surface."
-msgstr ""
-"Profondità della foratura (negativo)\n"
-"sotto la superficie del rame."
-
-#: flatcamGUI/ObjectUI.py:921 flatcamGUI/ObjectUI.py:1724
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:113
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:68
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79
-#: flatcamTools/ToolCutOut.py:159
-msgid "Multi-Depth"
-msgstr "Multi-Profondità"
-
-#: flatcamGUI/ObjectUI.py:924 flatcamGUI/ObjectUI.py:1727
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:116
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:71
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82
-#: flatcamTools/ToolCutOut.py:162
-msgid ""
-"Use multiple passes to limit\n"
-"the cut depth in each pass. Will\n"
-"cut multiple times until Cut Z is\n"
-"reached."
-msgstr ""
-"Usa più passaggi per limitare\n"
-"la profondità di taglio in ogni passaggio.\n"
-"Taglierà più volte fino a quando non avrà raggiunto\n"
-"Cut Z (profondità di taglio)."
-
-#: flatcamGUI/ObjectUI.py:937 flatcamGUI/ObjectUI.py:1741
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:128
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94
-#: flatcamTools/ToolCutOut.py:176
-msgid "Depth of each pass (positive)."
-msgstr "Profondità di ogni passaggio (positivo)."
-
-#: flatcamGUI/ObjectUI.py:948
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:136
-msgid ""
-"Tool height when travelling\n"
-"across the XY plane."
-msgstr ""
-"Altezza dell'utensile durante gli spostamenti\n"
-"sul piano XY."
-
-#: flatcamGUI/ObjectUI.py:969 flatcamGUI/ObjectUI.py:1771
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:187
-msgid ""
-"Cutting speed in the XY\n"
-"plane in units per minute"
-msgstr ""
-"Velocità di taglio sul piano XY\n"
-"in unità al minuto"
-
-#: flatcamGUI/ObjectUI.py:984
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:209
-msgid ""
-"Tool speed while drilling\n"
-"(in units per minute).\n"
-"So called 'Plunge' feedrate.\n"
-"This is for linear move G01."
-msgstr ""
-"Velocità dell'utensile durante la perforazione\n"
-"(in unità al minuto).\n"
-"E' la cosiddetta velocità di avanzamento \"a tuffo\".\n"
-"Questo è per lo spostamento lineare G01."
-
-#: flatcamGUI/ObjectUI.py:999 flatcamGUI/ObjectUI.py:1798
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:80
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:64
-msgid "Feedrate Rapids"
-msgstr "Avanzamenti rapidi"
-
-#: flatcamGUI/ObjectUI.py:1001
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:82
-msgid ""
-"Tool speed while drilling\n"
-"(in units per minute).\n"
-"This is for the rapid move G00.\n"
-"It is useful only for Marlin,\n"
-"ignore for any other cases."
-msgstr ""
-"Velocità dell'utensile durante la perforazione\n"
-"(in unità al minuto).\n"
-"Questo è per la mossa rapida G00.\n"
-"È utile solo per Marlin,\n"
-"ignora in tutti gli altri casi."
-
-#: flatcamGUI/ObjectUI.py:1021 flatcamGUI/ObjectUI.py:1818
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:82
-msgid "Re-cut"
-msgstr "Ri-taglia"
-
-#: flatcamGUI/ObjectUI.py:1023 flatcamGUI/ObjectUI.py:1036
-#: flatcamGUI/ObjectUI.py:1820 flatcamGUI/ObjectUI.py:1832
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:84
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:96
-msgid ""
-"In order to remove possible\n"
-"copper leftovers where first cut\n"
-"meet with last cut, we generate an\n"
-"extended cut over the first cut section."
-msgstr ""
-"Per rimuovere possibili residui\n"
-"di rame rimasti dove l'inizio del taglio\n"
-"incontria l'ultimo taglio, generiamo un\n"
-"taglio esteso sulla prima sezione di taglio."
-
-#: flatcamGUI/ObjectUI.py:1049 flatcamGUI/ObjectUI.py:1841
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:216
-#: flatcamObjects/FlatCAMExcellon.py:1332
-#: flatcamObjects/FlatCAMGeometry.py:1594
-msgid "Spindle speed"
-msgstr "Velocità mandrino"
-
-#: flatcamGUI/ObjectUI.py:1051
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:224
-msgid ""
-"Speed of the spindle\n"
-"in RPM (optional)"
-msgstr ""
-"Valocità del mandrino\n"
-"in RMP (opzionale)"
-
-#: flatcamGUI/ObjectUI.py:1066 flatcamGUI/ObjectUI.py:1860
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:238
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:234
-msgid ""
-"Pause to allow the spindle to reach its\n"
-"speed before cutting."
-msgstr ""
-"Pausa per consentire al mandrino di raggiungere la sua\n"
-"velocità prima del taglio."
-
-#: flatcamGUI/ObjectUI.py:1077 flatcamGUI/ObjectUI.py:1870
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:246
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:239
-msgid "Number of time units for spindle to dwell."
-msgstr "Numero di unità di tempo in cui il mandrino deve aspettare."
-
-#: flatcamGUI/ObjectUI.py:1087
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:46
-msgid "Offset Z"
-msgstr "Distanza Z"
-
-#: flatcamGUI/ObjectUI.py:1089
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:48
-msgid ""
-"Some drill bits (the larger ones) need to drill deeper\n"
-"to create the desired exit hole diameter due of the tip shape.\n"
-"The value here can compensate the Cut Z parameter."
-msgstr ""
-"Alcune punte (quelle più grandi) devono forare più in profondità\n"
-"per creare il diametro del foro di uscita desiderato a causa della forma "
-"della punta.\n"
-"Questo valore può compensare il parametro Cut Z."
-
-#: flatcamGUI/ObjectUI.py:1149 flatcamGUI/ObjectUI.py:1924
-#: flatcamTools/ToolNCC.py:492 flatcamTools/ToolPaint.py:423
-msgid "Apply parameters to all tools"
-msgstr "Applica parametri a tutti gli utensili"
-
-#: flatcamGUI/ObjectUI.py:1151 flatcamGUI/ObjectUI.py:1926
-#: flatcamTools/ToolNCC.py:494 flatcamTools/ToolPaint.py:425
-msgid ""
-"The parameters in the current form will be applied\n"
-"on all the tools from the Tool Table."
-msgstr ""
-"Saranno applicati i parametri nel modulo corrente\n"
-"su tutti gli utensili dalla tabella."
-
-#: flatcamGUI/ObjectUI.py:1162 flatcamGUI/ObjectUI.py:1937
-#: flatcamTools/ToolNCC.py:505 flatcamTools/ToolPaint.py:436
-msgid "Common Parameters"
-msgstr "Parametri comuni"
-
-#: flatcamGUI/ObjectUI.py:1164 flatcamGUI/ObjectUI.py:1939
-#: flatcamTools/ToolNCC.py:507 flatcamTools/ToolPaint.py:438
-msgid "Parameters that are common for all tools."
-msgstr "Parametri usati da tutti gli utensili."
-
-#: flatcamGUI/ObjectUI.py:1169 flatcamGUI/ObjectUI.py:1944
-msgid "Tool change Z"
-msgstr "Z cambio utensile"
-
-#: flatcamGUI/ObjectUI.py:1171
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:154
-msgid ""
-"Include tool-change sequence\n"
-"in G-Code (Pause for tool change)."
-msgstr ""
-"Includi sequenza di cambio utensile\n"
-"nel codice G (Pausa per cambio utensile)."
-
-#: flatcamGUI/ObjectUI.py:1178 flatcamGUI/ObjectUI.py:1955
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:162
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:134
-msgid ""
-"Z-axis position (height) for\n"
-"tool change."
-msgstr ""
-"Posizione sull'asse Z (altezza) per\n"
-"il cambio utensile."
-
-#: flatcamGUI/ObjectUI.py:1195
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:71
-msgid ""
-"Height of the tool just after start.\n"
-"Delete the value if you don't need this feature."
-msgstr ""
-"Altezza dell'utensile subito dopo l'avvio.\n"
-"Elimina il valore se non hai bisogno di questa funzione."
-
-#: flatcamGUI/ObjectUI.py:1204 flatcamGUI/ObjectUI.py:1983
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:178
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:153
-msgid "End move Z"
-msgstr "Spostamento finale Z"
-
-#: flatcamGUI/ObjectUI.py:1206 flatcamGUI/ObjectUI.py:1985
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:180
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:155
-msgid ""
-"Height of the tool after\n"
-"the last move at the end of the job."
-msgstr ""
-"Altezza dell'utensile dopo\n"
-"l'ultimo movimento alla fine del lavoro."
-
-#: flatcamGUI/ObjectUI.py:1223 flatcamGUI/ObjectUI.py:2002
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:195
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:173
-msgid "End move X,Y"
-msgstr "Spostamento finale X,Y"
-
-#: flatcamGUI/ObjectUI.py:1225 flatcamGUI/ObjectUI.py:2004
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:197
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:175
-msgid ""
-"End move X,Y position. In format (x,y).\n"
-"If no value is entered then there is no move\n"
-"on X,Y plane at the end of the job."
-msgstr ""
-"Posizione movimento finale X,Y. Nel formato (x, y).\n"
-"Se non viene inserito alcun valore, non sarà possibile spostare\n"
-"sul piano X,Y alla fine del lavoro."
-
-#: flatcamGUI/ObjectUI.py:1235 flatcamGUI/ObjectUI.py:1878
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:96
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:105
-msgid "Probe Z depth"
-msgstr "Tastatore profondità Z"
-
-#: flatcamGUI/ObjectUI.py:1237 flatcamGUI/ObjectUI.py:1880
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:98
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:107
-msgid ""
-"The maximum depth that the probe is allowed\n"
-"to probe. Negative value, in current units."
-msgstr ""
-"La profondità massima consentita di testare\n"
-"alla sonda. Valore negativo, in attuali unità."
-
-#: flatcamGUI/ObjectUI.py:1254 flatcamGUI/ObjectUI.py:1895
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:109
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:120
-msgid "Feedrate Probe"
-msgstr "Velocità avanzamento sonda"
-
-#: flatcamGUI/ObjectUI.py:1256 flatcamGUI/ObjectUI.py:1897
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:111
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:122
-msgid "The feedrate used while the probe is probing."
-msgstr "La velocità usata durante l'avanzamento del tastatore."
-
-#: flatcamGUI/ObjectUI.py:1272
-msgid "Preprocessor E"
-msgstr "Preprocessore E"
-
-#: flatcamGUI/ObjectUI.py:1274
-msgid ""
-"The preprocessor JSON file that dictates\n"
-"Gcode output for Excellon Objects."
-msgstr ""
-"File JSON del preprocessore che istruisce\n"
-"il GCode di uscita per oggetti Excellon."
-
-#: flatcamGUI/ObjectUI.py:1284
-msgid "Preprocessor G"
-msgstr "Preprocessore G"
-
-#: flatcamGUI/ObjectUI.py:1286
-msgid ""
-"The preprocessor JSON file that dictates\n"
-"Gcode output for Geometry (Milling) Objects."
-msgstr ""
-"File JSON del preprocessore che istruisce\n"
-"il GCode di uscita da oggetti Geometria (fresatura)."
-
-#: flatcamGUI/ObjectUI.py:1310 flatcamGUI/ObjectUI.py:2028
-msgid ""
-"Add / Select at least one tool in the tool-table.\n"
-"Click the # header to select all, or Ctrl + LMB\n"
-"for custom selection of tools."
-msgstr ""
-"Aggiungi almeno un utensile alla tabella degli utensili.\n"
-"Fai clic su # per selezionare tutto, oppure Ctrl + click sinistro\n"
-"per la selezione personalizzata degli utensili."
-
-#: flatcamGUI/ObjectUI.py:1318 flatcamGUI/ObjectUI.py:2035
-msgid "Generate CNCJob object"
-msgstr "Genera oggetto CNCJob"
-
-#: flatcamGUI/ObjectUI.py:1320
-msgid ""
-"Generate the CNC Job.\n"
-"If milling then an additional Geometry object will be created"
-msgstr ""
-"Generare il lavoro CNC.\n"
-"Se si sta fresando, verrà creato un oggetto Geometry aggiuntivo"
-
-#: flatcamGUI/ObjectUI.py:1337
-msgid "Milling Geometry"
-msgstr "Geometria fresatura"
-
-#: flatcamGUI/ObjectUI.py:1339
-msgid ""
-"Create Geometry for milling holes.\n"
-"Select from the Tools Table above the hole dias to be\n"
-"milled. Use the # column to make the selection."
-msgstr ""
-"Crea geometria per la fresatura dei fori.\n"
-"Selezionare dalla tabella degli strumenti sopra i diametri dei fori\n"
-"da fresare. Utilizzare la colonna # per effettuare la selezione."
-
-#: flatcamGUI/ObjectUI.py:1347
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:296
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:45
-msgid "Diameter of the cutting tool."
-msgstr "Diametri dell'utensile da taglio."
-
-#: flatcamGUI/ObjectUI.py:1357
-msgid "Mill Drills"
-msgstr "Fresatura fori"
-
-#: flatcamGUI/ObjectUI.py:1359
-msgid ""
-"Create the Geometry Object\n"
-"for milling DRILLS toolpaths."
-msgstr ""
-"Crea l'oggetto Geometry\n"
-"per la fresatura di percorsi utensile FORI."
-
-#: flatcamGUI/ObjectUI.py:1377
-msgid "Mill Slots"
-msgstr "Fresatura slot"
-
-#: flatcamGUI/ObjectUI.py:1379
-msgid ""
-"Create the Geometry Object\n"
-"for milling SLOTS toolpaths."
-msgstr ""
-"Crea oggetto geometria\n"
-"per fresare gli slot."
-
-#: flatcamGUI/ObjectUI.py:1421 flatcamTools/ToolCutOut.py:319
-msgid "Geometry Object"
-msgstr "Oggetto geometria"
-
-#: flatcamGUI/ObjectUI.py:1467
-msgid ""
-"Tools in this Geometry object used for cutting.\n"
-"The 'Offset' entry will set an offset for the cut.\n"
-"'Offset' can be inside, outside, on path (none) and custom.\n"
-"'Type' entry is only informative and it allow to know the \n"
-"intent of using the current tool. \n"
-"It can be Rough(ing), Finish(ing) or Iso(lation).\n"
-"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n"
-"ball(B), or V-Shaped(V). \n"
-"When V-shaped is selected the 'Type' entry is automatically \n"
-"set to Isolation, the CutZ parameter in the UI form is\n"
-"grayed out and Cut Z is automatically calculated from the newly \n"
-"showed UI form entries named V-Tip Dia and V-Tip Angle."
-msgstr ""
-"Strumenti in questo oggetto Geometria sono usati per il taglio.\n"
-"La voce 'Offset' imposta un offset per il taglio.\n"
-"'Offset' può essere all'interno, all'esterno, sul percorso (nessuno) e "
-"personalizzato.\n"
-"La voce 'Tipo' è solo informativa e consente di conoscere\n"
-"lo scopo d'utilizzo dello strumento corrente.\n"
-"Può essere grezzo, fine o isolamento.\n"
-"Il 'tipo di utensile' (TT) può essere circolare con da 1 a 4 denti (C1.."
-"C4),\n"
-"a palla (B) o a forma di V (V).\n"
-"Quando è selezionata la forma a V, la voce 'Tipo' è automaticamente\n"
-"impostato su Isolamento, il parametro CutZ nel modulo UI è\n"
-"non selezionabile e Cut Z viene calcolato automaticamente dalla nuova\n"
-"UI dalle voci Diametro V-Tip e Angolo V-Tip."
-
-#: flatcamGUI/ObjectUI.py:1484 flatcamGUI/ObjectUI.py:2233
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:40
-msgid "Plot Object"
-msgstr "Disegna oggetto"
-
-#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2246
-#: flatcamGUI/ObjectUI.py:2256
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138
-#: flatcamTools/ToolCopperThieving.py:221
-msgid "Dia"
-msgstr "Diametro"
-
-#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2246
-#: flatcamTools/ToolNCC.py:132 flatcamTools/ToolPaint.py:128
-msgid "TT"
-msgstr "TT"
-
-#: flatcamGUI/ObjectUI.py:1504
-msgid ""
-"This is the Tool Number.\n"
-"When ToolChange is checked, on toolchange event this value\n"
-"will be showed as a T1, T2 ... Tn"
-msgstr ""
-"Questo è il numero dell'utensile.\n"
-"Quando Cambio Utensile è selezionato, in caso di cambio utensile questo "
-"valore\n"
-"verrà mostrato come T1, T2 ... Tn"
-
-#: flatcamGUI/ObjectUI.py:1515
-msgid ""
-"The value for the Offset can be:\n"
-"- Path -> There is no offset, the tool cut will be done through the geometry "
-"line.\n"
-"- In(side) -> The tool cut will follow the geometry inside. It will create a "
-"'pocket'.\n"
-"- Out(side) -> The tool cut will follow the geometry line on the outside."
-msgstr ""
-"Il valore per l'offset può essere:\n"
-"- Percorso -> Non è presente alcun offset, il taglio dell'utensile verrà "
-"eseguito attraverso la linea della geometria.\n"
-"- In(terno) -> Il taglio dell'utensile seguirà la geometria all'interno. "
-"Creerà una 'tasca'.\n"
-"- Est(erno) -> Il taglio dell'utensile seguirà la linea della geometria "
-"all'esterno."
-
-#: flatcamGUI/ObjectUI.py:1522
-msgid ""
-"The (Operation) Type has only informative value. Usually the UI form "
-"values \n"
-"are choose based on the operation type and this will serve as a reminder.\n"
-"Can be 'Roughing', 'Finishing' or 'Isolation'.\n"
-"For Roughing we may choose a lower Feedrate and multiDepth cut.\n"
-"For Finishing we may choose a higher Feedrate, without multiDepth.\n"
-"For Isolation we need a lower Feedrate as it use a milling bit with a fine "
-"tip."
-msgstr ""
-"Il tipo di operazione ha solo valore informativo. Di solito i valori nella "
-"UI\n"
-"vengono scelti in base al tipo di operazione e questo servirà come "
-"promemoria.\n"
-"Può essere 'Sgrossatura', 'Finitura' o 'Isolamento'.\n"
-"Per la sgrossatura possiamo scegliere un avanzamento inferiore e un taglio "
-"multi-profondità.\n"
-"Per la finitura possiamo scegliere una velocità di avanzamento più elevata, "
-"senza multi-profondità.\n"
-"Per l'isolamento abbiamo bisogno di un avanzamento inferiore poiché si una "
-"punta di fresatura con una punta fine."
-
-#: flatcamGUI/ObjectUI.py:1531
-msgid ""
-"The Tool Type (TT) can be:\n"
-"- Circular with 1 ... 4 teeth -> it is informative only. Being circular the "
-"cut width in material\n"
-"is exactly the tool diameter.\n"
-"- Ball -> informative only and make reference to the Ball type endmill.\n"
-"- V-Shape -> it will disable Z-Cut parameter in the UI form and enable two "
-"additional UI form\n"
-"fields: V-Tip Dia and V-Tip Angle. Adjusting those two values will adjust "
-"the Z-Cut parameter such\n"
-"as the cut width into material will be equal with the value in the Tool "
-"Diameter column of this table.\n"
-"Choosing the V-Shape Tool Type automatically will select the Operation Type "
-"as Isolation."
-msgstr ""
-"Il tipo di utensile (TT) può essere:\n"
-"- Circolare con 1 ... 4 denti -> è solo informativo. Essendo circolare la "
-"larghezza del taglio nel materiale\n"
-"è esattamente il diametro dell'utensile.\n"
-"- Sfera -> solo informativo e fare riferimento alla fresa sferica.\n"
-"- a V -> disabiliterà il parametro di Z-Cut nel modulo UI e abiliterà due "
-"moduli UI aggiuntivi\n"
-"campi: Diametro V-Tip e Angolo V-Tip. La regolazione di questi due valori "
-"regolerà tale parametro Z-Cut\n"
-"poiché la larghezza del taglio nel materiale sarà uguale al valore nella "
-"colonna Diametro utensile di questa tabella.\n"
-"Scegliendo il tipo di strumento a forma di V si selezionerà automaticamente "
-"il tipo di operazione come isolamento."
-
-#: flatcamGUI/ObjectUI.py:1543
-msgid ""
-"Plot column. It is visible only for MultiGeo geometries, meaning geometries "
-"that holds the geometry\n"
-"data into the tools. For those geometries, deleting the tool will delete the "
-"geometry data also,\n"
-"so be WARNED. From the checkboxes on each row it can be enabled/disabled the "
-"plot on canvas\n"
-"for the corresponding tool."
-msgstr ""
-"Traccia colonna. È visibile solo per le geometrie MultiGeo, ovvero geometrie "
-"che trattengono i dati della\n"
-"geometria negli strumenti. Per tali geometrie, l'eliminazione dello "
-"strumento eliminerà anche i dati della geometria,\n"
-"quindi ATTENZIONE. Dalle caselle di controllo su ogni riga è possibile "
-"abilitare/disabilitare la tracciatura\n"
-"dello strumento corrispondente."
-
-#: flatcamGUI/ObjectUI.py:1561
-msgid ""
-"The value to offset the cut when \n"
-"the Offset type selected is 'Offset'.\n"
-"The value can be positive for 'outside'\n"
-"cut and negative for 'inside' cut."
-msgstr ""
-"Il valore per compensare il taglio quando\n"
-"il tipo di offset selezionato è 'Offset'.\n"
-"Il valore può essere positivo per 'esterno'\n"
-"taglio e negativo per il taglio 'interno'."
-
-#: flatcamGUI/ObjectUI.py:1580 flatcamTools/ToolNCC.py:209
-#: flatcamTools/ToolNCC.py:923 flatcamTools/ToolPaint.py:192
-#: flatcamTools/ToolPaint.py:849 flatcamTools/ToolSolderPaste.py:559
-msgid "New Tool"
-msgstr "Nuovo utensile"
-
-#: flatcamGUI/ObjectUI.py:1597
-msgid ""
-"Add a new tool to the Tool Table\n"
-"with the specified diameter."
-msgstr ""
-"Aggiungi un nuovo utensile alla tabella degli utensili\n"
-"con il diametro specificato."
-
-#: flatcamGUI/ObjectUI.py:1602 flatcamTools/ToolNCC.py:300
-#: flatcamTools/ToolNCC.py:634 flatcamTools/ToolPaint.py:283
-#: flatcamTools/ToolPaint.py:679
-msgid "Add from DB"
-msgstr "Aggiungi dal DB"
-
-#: flatcamGUI/ObjectUI.py:1604 flatcamTools/ToolNCC.py:302
-#: flatcamTools/ToolPaint.py:285
-msgid ""
-"Add a new tool to the Tool Table\n"
-"from the Tool DataBase."
-msgstr ""
-"Aggiungi un nuovo utensile alla tabella degli utensili\n"
-"dal DataBase utensili."
-
-#: flatcamGUI/ObjectUI.py:1619
-msgid ""
-"Copy a selection of tools in the Tool Table\n"
-"by first selecting a row in the Tool Table."
-msgstr ""
-"Copia una selezione di utensili nella tabella degli utensili\n"
-"selezionando prima una riga nella tabella."
-
-#: flatcamGUI/ObjectUI.py:1625
-msgid ""
-"Delete a selection of tools in the Tool Table\n"
-"by first selecting a row in the Tool Table."
-msgstr ""
-"Elimina una selezione di utensili nella tabella degli utensili\n"
-"selezionando prima una riga."
-
-#: flatcamGUI/ObjectUI.py:1752
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:103
-msgid ""
-"Height of the tool when\n"
-"moving without cutting."
-msgstr ""
-"Altezza dello strumento quando\n"
-"si sposta senza tagliare."
-
-#: flatcamGUI/ObjectUI.py:1785
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:202
-msgid ""
-"Cutting speed in the XY\n"
-"plane in units per minute.\n"
-"It is called also Plunge."
-msgstr ""
-"Velocità di taglio nel piano XY\n"
-"in unità al minuto.\n"
-"Si chiama anche Plunge (affondo)."
-
-#: flatcamGUI/ObjectUI.py:1800
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:66
-msgid ""
-"Cutting speed in the XY plane\n"
-"(in units per minute).\n"
-"This is for the rapid move G00.\n"
-"It is useful only for Marlin,\n"
-"ignore for any other cases."
-msgstr ""
-"Velocità di taglio nel piano XY\n"
-"(in unità al minuto).\n"
-"Questo è per la mossa rapida G00.\n"
-"È utile solo per Marlin,\n"
-"ignorare in tutti gli altri casi."
-
-#: flatcamGUI/ObjectUI.py:1844
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:219
-msgid ""
-"Speed of the spindle in RPM (optional).\n"
-"If LASER preprocessor is used,\n"
-"this value is the power of laser."
-msgstr ""
-"Velocità del mandrino in RPM (opzionale).\n"
-"Se si utilizza il preprocessore LASER,\n"
-"questo valore è la potenza del laser."
-
-#: flatcamGUI/ObjectUI.py:1947
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:124
-msgid ""
-"Include tool-change sequence\n"
-"in the Machine Code (Pause for tool change)."
-msgstr ""
-"Includi sequenza di cambio utensile\n"
-"nel Codice macchina (Pausa per cambio utensile)."
-
-#: flatcamGUI/ObjectUI.py:2016
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:256
-msgid ""
-"The Preprocessor file that dictates\n"
-"the Machine Code (like GCode, RML, HPGL) output."
-msgstr ""
-"Il file del preprocessore che guida\n"
-"l'output del codice macchina (come GCode, RML, HPGL)."
-
-#: flatcamGUI/ObjectUI.py:2037
-msgid "Generate the CNC Job object."
-msgstr "Genera l'oggetto CNC Job."
-
-#: flatcamGUI/ObjectUI.py:2054
-msgid "Launch Paint Tool in Tools Tab."
-msgstr "Esegui lo strumento Disegno dal Tab Disegno."
-
-#: flatcamGUI/ObjectUI.py:2062
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:35
-msgid ""
-"Creates tool paths to cover the\n"
-"whole area of a polygon (remove\n"
-"all copper). You will be asked\n"
-"to click on the desired polygon."
-msgstr ""
-"Crea percorsi utensile per coprire\n"
-"l'intera area di un poligono (rimuovi\n"
-"tutto rame). Verrà chiesto di\n"
-"cliccare sul poligono desiderato."
-
-#: flatcamGUI/ObjectUI.py:2117
-msgid "CNC Job Object"
-msgstr "Oggetto CNC Job"
-
-#: flatcamGUI/ObjectUI.py:2128
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:45
-msgid "Plot kind"
-msgstr "Tipo di plot"
-
-#: flatcamGUI/ObjectUI.py:2131
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:47
-msgid ""
-"This selects the kind of geometries on the canvas to plot.\n"
-"Those can be either of type 'Travel' which means the moves\n"
-"above the work piece or it can be of type 'Cut',\n"
-"which means the moves that cut into the material."
-msgstr ""
-"Questo seleziona il tipo di geometrie da tracciare.\n"
-"Possono essere di tipo 'Travel', ovvero movimenti\n"
-"sopra al pezzo o di tipo 'Taglia',\n"
-"cioè movimenti che tagliano il materiale."
-
-#: flatcamGUI/ObjectUI.py:2140
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:55
-msgid "Travel"
-msgstr "Travel"
-
-#: flatcamGUI/ObjectUI.py:2144
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:64
-msgid "Display Annotation"
-msgstr "Mostra annotazioni"
-
-#: flatcamGUI/ObjectUI.py:2146
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:66
-msgid ""
-"This selects if to display text annotation on the plot.\n"
-"When checked it will display numbers in order for each end\n"
-"of a travel line."
-msgstr ""
-"Seleziona se visualizzare l'annotazione di testo.\n"
-"Se selezionato, visualizzerà i numeri ordinati su ogni terminazione\n"
-"di una linea di spostamento."
-
-#: flatcamGUI/ObjectUI.py:2161
-msgid "Travelled dist."
-msgstr "Distanza spostamento."
-
-#: flatcamGUI/ObjectUI.py:2163 flatcamGUI/ObjectUI.py:2168
-msgid ""
-"This is the total travelled distance on X-Y plane.\n"
-"In current units."
-msgstr ""
-"E' la distanza totale percorsa sul piano X-Y.\n"
-"In unità correnti."
-
-#: flatcamGUI/ObjectUI.py:2173
-msgid "Estimated time"
-msgstr "Tempo stimato"
-
-#: flatcamGUI/ObjectUI.py:2175 flatcamGUI/ObjectUI.py:2180
-msgid ""
-"This is the estimated time to do the routing/drilling,\n"
-"without the time spent in ToolChange events."
-msgstr ""
-"E' il tempo stimato per le fresatura, foratura,\n"
-"senza il tempo necessario ai cambi utensili."
-
-#: flatcamGUI/ObjectUI.py:2215
-msgid "CNC Tools Table"
-msgstr "Tabella Utensili CNC"
-
-#: flatcamGUI/ObjectUI.py:2218
-msgid ""
-"Tools in this CNCJob object used for cutting.\n"
-"The tool diameter is used for plotting on canvas.\n"
-"The 'Offset' entry will set an offset for the cut.\n"
-"'Offset' can be inside, outside, on path (none) and custom.\n"
-"'Type' entry is only informative and it allow to know the \n"
-"intent of using the current tool. \n"
-"It can be Rough(ing), Finish(ing) or Iso(lation).\n"
-"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n"
-"ball(B), or V-Shaped(V)."
-msgstr ""
-"Gli utensili sono quelli usati in questo oggetto CNCJob per il taglio.\n"
-"Il diametro dell'utensile è utilizzato per tracciare il disegno a video.\n"
-"La voce 'Offset' imposta un offset per il taglio.\n"
-"'Offset' può essere interno, esterno, sul percorso (nessuno) e "
-"personalizzato.\n"
-"La voce 'Tipo' è solo informativa e consente di conoscere il fine\n"
-"dell'utensile corrente.\n"
-"Può essere per sgrezzatura, finitura o isolamento.\n"
-"Il 'tipo di utensile' (TT) può essere circolare da 1 a 4 denti (C1..C4),\n"
-"a palla (B) o a V (V)."
-
-#: flatcamGUI/ObjectUI.py:2246 flatcamGUI/ObjectUI.py:2257
-msgid "P"
-msgstr "P"
-
-#: flatcamGUI/ObjectUI.py:2267
-msgid "Update Plot"
-msgstr "Aggiorna Plot"
-
-#: flatcamGUI/ObjectUI.py:2269
-msgid "Update the plot."
-msgstr "Aggiorna il plot."
-
-#: flatcamGUI/ObjectUI.py:2276
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:30
-msgid "Export CNC Code"
-msgstr "Esporta codice CNC"
-
-#: flatcamGUI/ObjectUI.py:2278
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:32
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:33
-msgid ""
-"Export and save G-Code to\n"
-"make this object to a file."
-msgstr ""
-"Esporta e salva il G-Code per\n"
-"fare un file dell'oggetto."
-
-#: flatcamGUI/ObjectUI.py:2284
-msgid "Prepend to CNC Code"
-msgstr "Anteponi ak codice CNC"
-
-#: flatcamGUI/ObjectUI.py:2286 flatcamGUI/ObjectUI.py:2293
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:49
-msgid ""
-"Type here any G-Code commands you would\n"
-"like to add at the beginning of the G-Code file."
-msgstr ""
-"Scrivi qui qualsiasi comando G-Code che vuoi\n"
-"venga inserito all'inizio del file G-Code."
-
-#: flatcamGUI/ObjectUI.py:2299
-msgid "Append to CNC Code"
-msgstr "Accoda al Codice CNC"
-
-#: flatcamGUI/ObjectUI.py:2301 flatcamGUI/ObjectUI.py:2309
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:65
-msgid ""
-"Type here any G-Code commands you would\n"
-"like to append to the generated file.\n"
-"I.e.: M2 (End of program)"
-msgstr ""
-"Scrivi qui qualsiasi comando G-Code che vuoi\n"
-"venga inserito alla fine del file G-Code.\n"
-"Es.: M2 (Fine programma)"
-
-#: flatcamGUI/ObjectUI.py:2323
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:38
-msgid "Toolchange G-Code"
-msgstr "G-Code cambio utensile"
-
-#: flatcamGUI/ObjectUI.py:2326
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:41
-msgid ""
-"Type here any G-Code commands you would\n"
-"like to be executed when Toolchange event is encountered.\n"
-"This will constitute a Custom Toolchange GCode,\n"
-"or a Toolchange Macro.\n"
-"The FlatCAM variables are surrounded by '%' symbol.\n"
-"\n"
-"WARNING: it can be used only with a preprocessor file\n"
-"that has 'toolchange_custom' in it's name and this is built\n"
-"having as template the 'Toolchange Custom' posprocessor file."
-msgstr ""
-"Digita qui qualsiasi comando G-Code che desideri\n"
-"sia eseguito quando si incontra un di evento Cambio Utensile.\n"
-"Ciò costituirà un GCode di cambio utensile personalizzato,\n"
-"o una macro per il cambio utensile.\n"
-"Le variabili FlatCAM sono delimitate dal simbolo '%'.\n"
-"\n"
-"ATTENZIONE: può essere utilizzato solo con un file preprocessore\n"
-"che contenga 'toolchange_custom' nel nome e creato\n"
-"avendo come modello il file posprocessor 'Toolchange Custom'."
-
-#: flatcamGUI/ObjectUI.py:2341
-msgid ""
-"Type here any G-Code commands you would\n"
-"like to be executed when Toolchange event is encountered.\n"
-"This will constitute a Custom Toolchange GCode,\n"
-"or a Toolchange Macro.\n"
-"The FlatCAM variables are surrounded by '%' symbol.\n"
-"WARNING: it can be used only with a preprocessor file\n"
-"that has 'toolchange_custom' in it's name."
-msgstr ""
-"Digita qui qualsiasi comando G-Code che desideri\n"
-"sia eseguito quando si incontra un di evento Cambio Utensile.\n"
-"Ciò costituirà un GCode di cambio utensile personalizzato,\n"
-"o una macro per il cambio utensile.\n"
-"Le variabili FlatCAM sono delimitate dal simbolo '%'.\n"
-"ATTENZIONE: può essere utilizzato solo con un file preprocessore\n"
-"che contenga 'toolchange_custom' nel nome."
-
-#: flatcamGUI/ObjectUI.py:2356
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:80
-msgid "Use Toolchange Macro"
-msgstr "Usa Macro Cambio Utensile"
-
-#: flatcamGUI/ObjectUI.py:2358
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:82
-msgid ""
-"Check this box if you want to use\n"
-"a Custom Toolchange GCode (macro)."
-msgstr ""
-"Seleziona questa casella se vuoi usare\n"
-"un GCode Custom (macro) per il cambio utensile."
-
-#: flatcamGUI/ObjectUI.py:2366
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:94
-msgid ""
-"A list of the FlatCAM variables that can be used\n"
-"in the Toolchange event.\n"
-"They have to be surrounded by the '%' symbol"
-msgstr ""
-"Una lista di variabili FlatCAM utilizzabili\n"
-"nell'evento di Cambio Utensile.\n"
-"Devono essere delimitate dal simbolo '%'"
-
-#: flatcamGUI/ObjectUI.py:2373
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:101
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:30
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:31
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:37
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:36
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:36
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:36
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:36
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:30
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:32
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31
-#: flatcamTools/ToolCopperThieving.py:89 flatcamTools/ToolFiducials.py:149
-#: flatcamTools/ToolInvertGerber.py:82
-msgid "Parameters"
-msgstr "Parametri"
-
-#: flatcamGUI/ObjectUI.py:2376
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:106
-msgid "FlatCAM CNC parameters"
-msgstr "Parametri CNC FlatCAM"
-
-#: flatcamGUI/ObjectUI.py:2377
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:111
-msgid "tool number"
-msgstr "numero utensile"
-
-#: flatcamGUI/ObjectUI.py:2378
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:112
-msgid "tool diameter"
-msgstr "diametro utensile"
-
-#: flatcamGUI/ObjectUI.py:2379
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:113
-msgid "for Excellon, total number of drills"
-msgstr "per Excellon, numero totale di fori"
-
-#: flatcamGUI/ObjectUI.py:2381
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:115
-msgid "X coord for Toolchange"
-msgstr "Coordinata X per il cambio utensile"
-
-#: flatcamGUI/ObjectUI.py:2382
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:116
-msgid "Y coord for Toolchange"
-msgstr "Coordinata Y per il cambio utensile"
-
-#: flatcamGUI/ObjectUI.py:2383
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:118
-msgid "Z coord for Toolchange"
-msgstr "Coordinata Z per il cambio utensile"
-
-#: flatcamGUI/ObjectUI.py:2384
-msgid "depth where to cut"
-msgstr "profondità a cui tagliare"
-
-#: flatcamGUI/ObjectUI.py:2385
-msgid "height where to travel"
-msgstr "altezza alla quale spostarsi"
-
-#: flatcamGUI/ObjectUI.py:2386
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:121
-msgid "the step value for multidepth cut"
-msgstr "il passo per il taglio in più passaggi"
-
-#: flatcamGUI/ObjectUI.py:2388
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:123
-msgid "the value for the spindle speed"
-msgstr "il valore della velocità del mandrino"
-
-#: flatcamGUI/ObjectUI.py:2390
-msgid "time to dwell to allow the spindle to reach it's set RPM"
-msgstr ""
-"tempo di attesa per permettere al mandrino di raggiungere la velocità in RPM"
-
-#: flatcamGUI/ObjectUI.py:2406
-msgid "View CNC Code"
-msgstr "Vedi codice CNC"
-
-#: flatcamGUI/ObjectUI.py:2408
-msgid ""
-"Opens TAB to view/modify/print G-Code\n"
-"file."
-msgstr "Apri TAB per vedere/modificare/stampare un file G-Code."
-
-#: flatcamGUI/ObjectUI.py:2413
-msgid "Save CNC Code"
-msgstr "Calva codice CNC"
-
-#: flatcamGUI/ObjectUI.py:2415
-msgid ""
-"Opens dialog to save G-Code\n"
-"file."
-msgstr ""
-"Apri la finestra di salvataggio del file\n"
-"G-Code."
-
-#: flatcamGUI/ObjectUI.py:2449
-msgid "Script Object"
-msgstr "Oggetto script"
-
-#: flatcamGUI/ObjectUI.py:2469 flatcamGUI/ObjectUI.py:2543
-msgid "Auto Completer"
-msgstr "Auto completatore"
-
-#: flatcamGUI/ObjectUI.py:2471
-msgid "This selects if the auto completer is enabled in the Script Editor."
-msgstr "Seleziona se l'autocompletatore è attivo nell'editor Script."
-
-#: flatcamGUI/ObjectUI.py:2516
-msgid "Document Object"
-msgstr "Oggetto documento"
-
-#: flatcamGUI/ObjectUI.py:2545
-msgid "This selects if the auto completer is enabled in the Document Editor."
-msgstr "Seleziona se l'autocompletatore è attivo nell'editor Documenti."
-
-#: flatcamGUI/ObjectUI.py:2563
-msgid "Font Type"
-msgstr "Tipo carattere"
-
-#: flatcamGUI/ObjectUI.py:2580
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:197
-msgid "Font Size"
-msgstr "Dimensione carattere"
-
-#: flatcamGUI/ObjectUI.py:2616
-msgid "Alignment"
-msgstr "Allineamento"
-
-#: flatcamGUI/ObjectUI.py:2621
-msgid "Align Left"
-msgstr "Allinea a sinistra"
-
-#: flatcamGUI/ObjectUI.py:2631
-msgid "Align Right"
-msgstr "Allinea a destra"
-
-#: flatcamGUI/ObjectUI.py:2636
-msgid "Justify"
-msgstr "Giustifica"
-
-#: flatcamGUI/ObjectUI.py:2643
-msgid "Font Color"
-msgstr "Colore carattere"
-
-#: flatcamGUI/ObjectUI.py:2645
-msgid "Set the font color for the selected text"
-msgstr "Imposta il colore del carattere per il testo selezionato"
-
-#: flatcamGUI/ObjectUI.py:2659
-msgid "Selection Color"
-msgstr "Selezione colore"
-
-#: flatcamGUI/ObjectUI.py:2661
-msgid "Set the selection color when doing text selection."
-msgstr "Imposta il colore della selezione durante la selezione del testo."
-
-#: flatcamGUI/ObjectUI.py:2675
-msgid "Tab Size"
-msgstr "Dimensione tab"
-
-#: flatcamGUI/ObjectUI.py:2677
-msgid "Set the tab size. In pixels. Default value is 80 pixels."
-msgstr ""
-"Imposta la dimensione del tab. In pixel. Il valore di default è 80 pixel."
-
-#: flatcamGUI/PlotCanvasLegacy.py:1299
-msgid ""
-"Could not annotate due of a difference between the number of text elements "
-"and the number of text positions."
-msgstr ""
-"Impossibile annotare a causa di una differenza tra il numero di elementi di "
-"testo e il numero di posizioni di testo."
-
-#: flatcamGUI/preferences/PreferencesUIManager.py:907
-msgid "Preferences applied."
-msgstr "Preferenze applicate."
-
-#: flatcamGUI/preferences/PreferencesUIManager.py:971
-msgid "Preferences closed without saving."
-msgstr "Preferenze chiuse senza salvarle."
-
-#: flatcamGUI/preferences/PreferencesUIManager.py:983
-msgid "Preferences default values are restored."
-msgstr "I valori predefiniti delle preferenze vengono ripristinati."
-
-#: flatcamGUI/preferences/PreferencesUIManager.py:1018
-#: flatcamGUI/preferences/PreferencesUIManager.py:1127
-msgid "Preferences saved."
-msgstr "Preferenze salvate."
-
-#: flatcamGUI/preferences/PreferencesUIManager.py:1068
-msgid "Preferences edited but not saved."
-msgstr "Preferenze modificate ma non salvate."
-
-#: flatcamGUI/preferences/PreferencesUIManager.py:1113
-msgid ""
-"One or more values are changed.\n"
-"Do you want to save the Preferences?"
-msgstr ""
-"Uno o più valori modificati.\n"
-"Vuoi salvare le Preferenze?"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:27
-msgid "CNC Job Adv. Options"
-msgstr "Opzioni avanzate CNC Job"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:64
-msgid ""
-"Type here any G-Code commands you would like to be executed when Toolchange "
-"event is encountered.\n"
-"This will constitute a Custom Toolchange GCode, or a Toolchange Macro.\n"
-"The FlatCAM variables are surrounded by '%' symbol.\n"
-"WARNING: it can be used only with a preprocessor file that has "
-"'toolchange_custom' in it's name."
-msgstr ""
-"Digita qui qualsiasi comando G-Code che desideri sia eseguito quando si "
-"incontra un di evento Cambio Utensile.\n"
-"Ciò costituirà un GCode di cambio utensile personalizzato, o una macro per "
-"il cambio utensile.\n"
-"Le variabili FlatCAM sono delimitate dal simbolo '%'.\n"
-"ATTENZIONE: può essere utilizzato solo con un file preprocessore che "
-"contenga 'toolchange_custom' nel nome."
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:119
-msgid "Z depth for the cut"
-msgstr "Profondità Z per il taglio"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:120
-msgid "Z height for travel"
-msgstr "Altezza Z per gli spostamenti"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:126
-msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM"
-msgstr ""
-"tempo attesa = tempo per attendere che il mandrino raggiunga la velocità "
-"finale in RPM"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:145
-msgid "Annotation Size"
-msgstr "Dimensione annotazioni"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:147
-msgid "The font size of the annotation text. In pixels."
-msgstr "La dimensione del testo delle annotazioni, in pixel."
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:157
-msgid "Annotation Color"
-msgstr "Colore annotazioni"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:159
-msgid "Set the font color for the annotation texts."
-msgstr "Imposta il colore del carattere per i le annotazioni."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:26
-msgid "CNC Job General"
-msgstr "Generale CNC Job"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:77
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:47
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:59
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:45
-msgid "Circle Steps"
-msgstr "Passi cerchi"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:79
-msgid ""
-"The number of circle steps for GCode \n"
-"circle and arc shapes linear approximation."
-msgstr ""
-"Il numero di passi circolari per approsimazioni lineari\n"
-"di cerchi ed archi GCode ."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:88
-msgid "Travel dia"
-msgstr "Diametro spostamenti"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:90
-msgid ""
-"The width of the travel lines to be\n"
-"rendered in the plot."
-msgstr ""
-"La larghezza delle linee da\n"
-"disegnare a schermo per gli spostamenti."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:103
-msgid "G-code Decimals"
-msgstr "Decimali G-Code"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:106
-#: flatcamTools/ToolFiducials.py:74
-msgid "Coordinates"
-msgstr "Coordinate"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:108
-msgid ""
-"The number of decimals to be used for \n"
-"the X, Y, Z coordinates in CNC code (GCODE, etc.)"
-msgstr ""
-"Number di decimali da usare per le coordinate\n"
-"X, Y, Z nel codice CNC (GCODE, ecc.)"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:119
-#: flatcamTools/ToolProperties.py:519
-msgid "Feedrate"
-msgstr "Avanzamento"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:121
-msgid ""
-"The number of decimals to be used for \n"
-"the Feedrate parameter in CNC code (GCODE, etc.)"
-msgstr ""
-"Number di decimali da usare per i parametri\n"
-"di avanzamento nel codice CNC (GCODE, ecc.)"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:132
-msgid "Coordinates type"
-msgstr "Tipo coordinate"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:134
-msgid ""
-"The type of coordinates to be used in Gcode.\n"
-"Can be:\n"
-"- Absolute G90 -> the reference is the origin x=0, y=0\n"
-"- Incremental G91 -> the reference is the previous position"
-msgstr ""
-"Il tipo di coordinate da utilizzare in Gcode.\n"
-"Può essere:\n"
-"- Asolute G90 -> il riferimento è l'origine x=0, y=0\n"
-"- Incrementale G91 -> il riferimento è la posizione precedente"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:140
-msgid "Absolute G90"
-msgstr "Assolute G90"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:141
-msgid "Incremental G91"
-msgstr "Incrementale G91"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:151
-msgid "Force Windows style line-ending"
-msgstr "Imposta il fine linea di Windows"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:153
-msgid ""
-"When checked will force a Windows style line-ending\n"
-"(\\r\\n) on non-Windows OS's."
-msgstr ""
-"Quando abilitato forzerà lo stile fine linea di windows\n"
-"(\\r\\n) su sistemi non Windows."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:165
-msgid "Travel Line Color"
-msgstr "Colore linee spostamenti"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:169
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:235
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:262
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:154
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:220
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:84
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:153
-#: flatcamTools/ToolRulesCheck.py:186
-msgid "Outline"
-msgstr "Esterno"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:171
-msgid "Set the travel line color for plotted objects."
-msgstr "Imposta il colore per disegnare le linee degli spostamenti."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:186
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:252
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:279
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:170
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:237
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:170
-msgid "Fill"
-msgstr "Riempi"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:188
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:254
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:281
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:172
-msgid ""
-"Set the fill color for plotted objects.\n"
-"First 6 digits are the color and the last 2\n"
-"digits are for alpha (transparency) level."
-msgstr ""
-"Imposta il colore di riempimento per gli oggetti disegnati.\n"
-"Le prime 6 cifre sono il colore e le ultime 2\n"
-"cifre sono per il livello alfa (trasparenza)."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:205
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:298
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:190
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:257
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:189
-msgid "Alpha"
-msgstr "Alpha"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:207
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:300
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:191
-msgid "Set the fill transparency for plotted objects."
-msgstr "Imposta il livello di trasparenza per gli oggetti disegnati."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:231
-msgid "CNCJob Object Color"
-msgstr "Colore oggetti CNCJob"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:237
-msgid "Set the color for plotted objects."
-msgstr "Imposta il colore per gli oggetti CNC Job."
-
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:27
-msgid "CNC Job Options"
-msgstr "Opzioni CNC Job"
-
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:31
-msgid "Export G-Code"
-msgstr "Esporta G-Code"
-
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:47
-msgid "Prepend to G-Code"
-msgstr "Anteponi al G-Code"
-
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:56
-msgid ""
-"Type here any G-Code commands you would like to add at the beginning of the "
-"G-Code file."
-msgstr ""
-"Scrivi qui qualsiasi comando G-Code che vuoi venga inserito all'inizio del "
-"file G-Code."
-
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:63
-msgid "Append to G-Code"
-msgstr "Accoda al G-Code"
-
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:73
-msgid ""
-"Type here any G-Code commands you would like to append to the generated "
-"file.\n"
-"I.e.: M2 (End of program)"
-msgstr ""
-"Scrivi qui qualsiasi comando G-Code che vuoi venga inserito alla fine del "
-"file G-Code.\n"
-"Es: M2 (Fine programma)"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:27
-msgid "Excellon Adv. Options"
-msgstr "Opzioni avanzate Ecellon"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:34
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:33
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:31
-msgid "Advanced Options"
-msgstr "Opzioni avanzate"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:36
-msgid ""
-"A list of Excellon advanced parameters.\n"
-"Those parameters are available only for\n"
-"Advanced App. Level."
-msgstr ""
-"Un elenco di parametri avanzati di Excellon.\n"
-"Tali parametri sono disponibili solo per\n"
-"App a livello avanzato."
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:59
-msgid "Toolchange X,Y"
-msgstr "Cambio Utensile X,Y"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:61
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:47
-msgid "Toolchange X,Y position."
-msgstr "Posizione X, Y per il cambio utensile."
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:121
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:134
-msgid "Spindle direction"
-msgstr "Direzione mandrino"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:123
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:136
-msgid ""
-"This sets the direction that the spindle is rotating.\n"
-"It can be either:\n"
-"- CW = clockwise or\n"
-"- CCW = counter clockwise"
-msgstr ""
-"Questo imposta la direzione in cui il mandrino ruota.\n"
-"Può essere:\n"
-"- CW = orario o\n"
-"- CCW = antiorario"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:134
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:148
-msgid "Fast Plunge"
-msgstr "Affondo rapido"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:136
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:150
-msgid ""
-"By checking this, the vertical move from\n"
-"Z_Toolchange to Z_move is done with G0,\n"
-"meaning the fastest speed available.\n"
-"WARNING: the move is done at Toolchange X,Y coords."
-msgstr ""
-"Controllando questo, lo spostamento da\n"
-"Z_Toolchange a Z_move è realizzato con G0,\n"
-"ovvero alla velocità massima disponibile.\n"
-"ATTENZIONE: la mossa viene eseguita alle coordinate X,Y del Cambio utensile."
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:143
-msgid "Fast Retract"
-msgstr "Ritrazione rapida"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:145
-msgid ""
-"Exit hole strategy.\n"
-" - When uncheked, while exiting the drilled hole the drill bit\n"
-"will travel slow, with set feedrate (G1), up to zero depth and then\n"
-"travel as fast as possible (G0) to the Z Move (travel height).\n"
-" - When checked the travel from Z cut (cut depth) to Z_move\n"
-"(travel height) is done as fast as possible (G0) in one move."
-msgstr ""
-"Strategia di uscita dai fori.\n"
-" - Se non abilitata, mentre si esce dal foro, la punta del trapano\n"
-"viaggerà lentamente, con avanzamento impostato (G1), fino a zero profondità "
-"e poi\n"
-"viaggerà il più velocemente possibile (G0) verso Z Move (altezza per gli "
-"spostamenti).\n"
-" - Se selezionata, la corsa da Z di taglio (profondità di taglio) a Z_move\n"
-"(altezza per gli spostamenti) viene eseguita il più velocemente possibile "
-"(G0) in una sola mossa."
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:32
-msgid "A list of Excellon Editor parameters."
-msgstr "Una lista di parametri di edit Excellon."
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:40
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:41
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:41
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:194
-msgid "Selection limit"
-msgstr "Limite selezione"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:42
-msgid ""
-"Set the number of selected Excellon geometry\n"
-"items above which the utility geometry\n"
-"becomes just a selection rectangle.\n"
-"Increases the performance when moving a\n"
-"large number of geometric elements."
-msgstr ""
-"Imposta il numero di elementi di geometria\n"
-"Excellon selezionata sopra i quali la geometria\n"
-"diventa un rettangolo di selezione.\n"
-"Aumenta le prestazioni quando si usano un\n"
-"gran numero di elementi geometrici."
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:55
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:117
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:123
-msgid "New Dia"
-msgstr "Nuovo diametro"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:80
-msgid "Linear Drill Array"
-msgstr "Matrice lineare di fori"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:84
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:232
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:120
-msgid "Linear Direction"
-msgstr "Direzione lineare"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:126
-msgid "Circular Drill Array"
-msgstr "Matrice circolare di fori"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:130
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:280
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:164
-msgid "Circular Direction"
-msgstr "Direzione circolare"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:132
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:282
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:166
-msgid ""
-"Direction for circular array.\n"
-"Can be CW = clockwise or CCW = counter clockwise."
-msgstr ""
-"Direzione matrice circolare.\n"
-"Può essere CW = senso orario o CCW = senso antiorario."
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:143
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:293
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:177
-msgid "Circular Angle"
-msgstr "Ancolo circolare"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:196
-msgid ""
-"Angle at which the slot is placed.\n"
-"The precision is of max 2 decimals.\n"
-"Min value is: -359.99 degrees.\n"
-"Max value is: 360.00 degrees."
-msgstr ""
-"Angolo a cui è posizionata lo slot.\n"
-"La precisione è di massimo 2 decimali.\n"
-"Il valore minimo è: -359,99 gradi.\n"
-"Il valore massimo è: 360,00 gradi."
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:215
-msgid "Linear Slot Array"
-msgstr "Matrice lineare di slot"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:276
-msgid "Circular Slot Array"
-msgstr "Matrice circolare di slot"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:26
-msgid "Excellon Export"
-msgstr "Exporta Excellon"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:30
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:31
-msgid "Export Options"
-msgstr "Opzioni esportazione"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:32
-msgid ""
-"The parameters set here are used in the file exported\n"
-"when using the File -> Export -> Export Excellon menu entry."
-msgstr ""
-"I parametri impostati qui vengono utilizzati nel file esportato\n"
-"quando si utilizza la voce di menu File -> Esporta -> Esporta Excellon."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:41
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:163
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:39
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:42
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:82
-#: flatcamTools/ToolDistance.py:56 flatcamTools/ToolDistanceMin.py:50
-#: flatcamTools/ToolPcbWizard.py:127 flatcamTools/ToolProperties.py:154
-msgid "Units"
-msgstr "Unità"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:43
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:49
-msgid "The units used in the Excellon file."
-msgstr "Unità usate nel file Excellon."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:46
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:87
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:173
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:47
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:87
-#: flatcamTools/ToolCalculators.py:61 flatcamTools/ToolPcbWizard.py:125
-msgid "INCH"
-msgstr "POLLICI"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:47
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:174
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:43
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:48
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:88
-#: flatcamTools/ToolCalculators.py:62 flatcamTools/ToolPcbWizard.py:126
-msgid "MM"
-msgstr "MM"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:55
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:56
-msgid "Int/Decimals"
-msgstr "Int/Decimali"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:57
-msgid ""
-"The NC drill files, usually named Excellon files\n"
-"are files that can be found in different formats.\n"
-"Here we set the format used when the provided\n"
-"coordinates are not using period."
-msgstr ""
-"I file di forature NC, generalmente detti file Excellon\n"
-"sono file che possono essere trovati in diversi formati.\n"
-"Qui impostiamo il formato utilizzato quando le coordinate\n"
-"fornite non utilizzano la virgola."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:69
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:95
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:124
-msgid ""
-"This numbers signify the number of digits in\n"
-"the whole part of Excellon coordinates."
-msgstr ""
-"Questi numeri indicano il numero di cifre nella\n"
-"parte intera delle coordinate di Excellon."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:82
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:108
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:137
-msgid ""
-"This numbers signify the number of digits in\n"
-"the decimal part of Excellon coordinates."
-msgstr ""
-"Questi numeri indicano il numero di cifre nella\n"
-"parte decimale delle coordinate di Excellon."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:91
-msgid "Format"
-msgstr "Formato"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:93
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:103
-msgid ""
-"Select the kind of coordinates format used.\n"
-"Coordinates can be saved with decimal point or without.\n"
-"When there is no decimal point, it is required to specify\n"
-"the number of digits for integer part and the number of decimals.\n"
-"Also it will have to be specified if LZ = leading zeros are kept\n"
-"or TZ = trailing zeros are kept."
-msgstr ""
-"Seleziona il tipo di formato di coordinate utilizzato.\n"
-"Le coordinate possono essere salvate con punto decimale o senza.\n"
-"Quando non è presente un punto decimale, è necessario specificare\n"
-"il numero di cifre per la parte intera e il numero di decimali.\n"
-"Inoltre dovrà essere specificato se ZI = zeri iniziali vengono mantenuti\n"
-"o ZF = vengono mantenuti gli zeri finali."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:100
-msgid "Decimal"
-msgstr "Decimale"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:101
-msgid "No-Decimal"
-msgstr "Non-decimale"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:114
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:145
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:96
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:97
-msgid "Zeros"
-msgstr "Zeri"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:117
-msgid ""
-"This sets the type of Excellon zeros.\n"
-"If LZ then Leading Zeros are kept and\n"
-"Trailing Zeros are removed.\n"
-"If TZ is checked then Trailing Zeros are kept\n"
-"and Leading Zeros are removed."
-msgstr ""
-"Questo imposta il tipo di zeri di Excellon.\n"
-"Se ZI, gli Zeri iniziali vengono mantenuti e\n"
-"Gli zeri finali vengono rimossi.\n"
-"Se ZF è selezionato, gli Zeri finali vengono mantenuti\n"
-"e gli zeri iniziali vengono rimossi."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:124
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:158
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:106
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:107
-#: flatcamTools/ToolPcbWizard.py:111
-msgid "LZ"
-msgstr "ZI"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:125
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:159
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:107
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:108
-#: flatcamTools/ToolPcbWizard.py:112
-msgid "TZ"
-msgstr "ZF"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:127
-msgid ""
-"This sets the default type of Excellon zeros.\n"
-"If LZ then Leading Zeros are kept and\n"
-"Trailing Zeros are removed.\n"
-"If TZ is checked then Trailing Zeros are kept\n"
-"and Leading Zeros are removed."
-msgstr ""
-"Questo imposta il tipo di default degli zeri di Excellon.\n"
-"Se ZI, gli Zeri iniziali vengono mantenuti e\n"
-"Gli zeri finali vengono rimossi.\n"
-"Se ZF è selezionato, gli Zeri finali vengono mantenuti\n"
-"e gli zeri iniziali vengono rimossi."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:137
-msgid "Slot type"
-msgstr "Tipo slot"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:140
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:150
-msgid ""
-"This sets how the slots will be exported.\n"
-"If ROUTED then the slots will be routed\n"
-"using M15/M16 commands.\n"
-"If DRILLED(G85) the slots will be exported\n"
-"using the Drilled slot command (G85)."
-msgstr ""
-"Questo imposta il modo in cui verranno esportati gli slot.\n"
-"Se FRESATO, gli slot verranno lavorati\n"
-"utilizzando i comandi M15 / M16.\n"
-"Se FORATO (G85) gli slot verranno esportati\n"
-"utilizzando il comando Drill slot (G85)."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:147
-msgid "Routed"
-msgstr "Fresato"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:148
-msgid "Drilled(G85)"
-msgstr "Forato"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:29
-msgid "Excellon General"
-msgstr "Generali Excellon"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:62
-msgid "Excellon Format"
-msgstr "Formato Excellon"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:64
-msgid ""
-"The NC drill files, usually named Excellon files\n"
-"are files that can be found in different formats.\n"
-"Here we set the format used when the provided\n"
-"coordinates are not using period.\n"
-"\n"
-"Possible presets:\n"
-"\n"
-"PROTEUS 3:3 MM LZ\n"
-"DipTrace 5:2 MM TZ\n"
-"DipTrace 4:3 MM LZ\n"
-"\n"
-"EAGLE 3:3 MM TZ\n"
-"EAGLE 4:3 MM TZ\n"
-"EAGLE 2:5 INCH TZ\n"
-"EAGLE 3:5 INCH TZ\n"
-"\n"
-"ALTIUM 2:4 INCH LZ\n"
-"Sprint Layout 2:4 INCH LZ\n"
-"KiCAD 3:5 INCH TZ"
-msgstr ""
-"I file di foratura (NC), generalmente denominati file Excellon,\n"
-"sono file che possono essere creati in diversi formati.\n"
-"Qui impostiamo il formato utilizzato quando le coordinate\n"
-"fornite non utilizzano il punto.\n"
-"\n"
-"Possibili impostazioni:\n"
-"\n"
-"PROTEUS 3: 3 MM ZI\n"
-"DipTrace 5: 2 MM ZF\n"
-"DipTrace 4: 3 MM ZI\n"
-"\n"
-"EAGLE 3: 3 MM ZF\n"
-"EAGLE 4: 3 MM ZF\n"
-"EAGLE 2: 5 POLLICI ZF\n"
-"EAGLE 3: 5 POLLICI ZF\n"
-"\n"
-"ALTIUM 2: 4 POLLICI ZI\n"
-"Sprint Layout 2: 4 POLLICI ZI\n"
-"KiCAD 3: 5 POLLICI ZF"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:88
-msgid "Default values for INCH are 2:4"
-msgstr "I valori di default per i POLLICI sono 2:4"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:116
-msgid "METRIC"
-msgstr "METRICA"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:117
-msgid "Default values for METRIC are 3:3"
-msgstr "I valori di default per i METRICI sono 3:3"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:148
-msgid ""
-"This sets the type of Excellon zeros.\n"
-"If LZ then Leading Zeros are kept and\n"
-"Trailing Zeros are removed.\n"
-"If TZ is checked then Trailing Zeros are kept\n"
-"and Leading Zeros are removed.\n"
-"\n"
-"This is used when there is no information\n"
-"stored in the Excellon file."
-msgstr ""
-"Questo imposta il tipo di zeri di Excellon.\n"
-"Se ZI, gli Zeri iniziali vengono mantenuti e\n"
-"Gli zeri finali vengono rimossi.\n"
-"Se ZF è selezionato, gli Zeri finali vengono mantenuti\n"
-"e gli zeri iniziali vengono rimossi.\n"
-"\n"
-"Questo è usato quando non ci sono informazioni\n"
-"memorizzato nel file Excellon."
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:166
-msgid ""
-"This sets the default units of Excellon files.\n"
-"If it is not detected in the parsed file the value here\n"
-"will be used.Some Excellon files don't have an header\n"
-"therefore this parameter will be used."
-msgstr ""
-"Questo imposta le unità predefinite dei file Excellon.\n"
-"Se non viene rilevato nel file analizzato, sarà usato il valore qui\n"
-"contenuto. Alcuni file Excellon non hanno un'intestazione\n"
-"pertanto verrà utilizzato questo parametro."
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:176
-msgid ""
-"This sets the units of Excellon files.\n"
-"Some Excellon files don't have an header\n"
-"therefore this parameter will be used."
-msgstr ""
-"Questo imposta le unità dei file Excellon.\n"
-"Alcuni file di Excellon non hanno un'intestazione\n"
-"pertanto verrà utilizzato questo parametro."
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:184
-msgid "Update Export settings"
-msgstr "Aggiorna impostazioni esportazione"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:201
-msgid "Excellon Optimization"
-msgstr "Ottimizzazione Excellon"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:204
-msgid "Algorithm:"
-msgstr "Algoritmo:"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:206
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:222
-msgid ""
-"This sets the optimization type for the Excellon drill path.\n"
-"If <> is checked then Google OR-Tools algorithm with\n"
-"MetaHeuristic Guided Local Path is used. Default search time is 3sec.\n"
-"If <> is checked then Google OR-Tools Basic algorithm is used.\n"
-"If <> is checked then Travelling Salesman algorithm is used for\n"
-"drill path optimization.\n"
-"\n"
-"If this control is disabled, then FlatCAM works in 32bit mode and it uses\n"
-"Travelling Salesman algorithm for path optimization."
-msgstr ""
-"Questo imposta il tipo di ottimizzazione per il percorso di perforazione di "
-"Excellon.\n"
-"Se è selezionato <>, allora sarà usato l'algoritmo di Google "
-"OR-Tools con\n"
-"percorso locale guidato meta-euristico. Il tempo di ricerca predefinito è 3 "
-"secondi.\n"
-"Se è selezionato <>, viene utilizzato l'algoritmo Google OR-Tools "
-"Basic.\n"
-"Se è selezionato <>, viene utilizzato l'algoritmo del commesso "
-"viaggiatore per\n"
-"l'ottimizzazione del percorso di perforazione.\n"
-"\n"
-"Se questo controllo è disabilitato, FlatCAM funzionerà in modalità 32 bit e "
-"utilizzerà\n"
-"l'algoritmo del commesso viaggiatore per l'ottimizzazione del percorso."
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:217
-msgid "MetaHeuristic"
-msgstr "MetaHeuristic"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:218
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:104
-#: flatcamObjects/FlatCAMExcellon.py:614 flatcamObjects/FlatCAMGeometry.py:485
-#: flatcamObjects/FlatCAMGerber.py:251
-msgid "Basic"
-msgstr "Base"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:219
-msgid "TSA"
-msgstr "ACV"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:236
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:245
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:237
-msgid "Duration"
-msgstr "Durata"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:239
-msgid ""
-"When OR-Tools Metaheuristic (MH) is enabled there is a\n"
-"maximum threshold for how much time is spent doing the\n"
-"path optimization. This max duration is set here.\n"
-"In seconds."
-msgstr ""
-"Quando OR-Tools Metaheuristic (MH) è abilitato, c'è una\n"
-"soglia massima per il tempo impiegato ad ottimizzare i percorsi.\n"
-"Questa durata massima è impostata qui.\n"
-"In secondi."
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:258
-msgid "Excellon Object Color"
-msgstr "Colore oggetti Excellon"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:264
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:86
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:155
-msgid "Set the line color for plotted objects."
-msgstr "Imposta il colore della linea che disegna gli oggetti Gerber."
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:29
-msgid "Excellon Options"
-msgstr "Opzioni Excellon"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:33
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:34
-msgid "Create CNC Job"
-msgstr "Crea lavoro CNC"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:35
-msgid ""
-"Parameters used to create a CNC Job object\n"
-"for this drill object."
-msgstr ""
-"Parametri usati per creare un oggetto CNC Job\n"
-"per questo oggetto foro."
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:152
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:121
-msgid "Tool change"
-msgstr "Cambio utensile"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:236
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:232
-msgid "Enable Dwell"
-msgstr "Abilita attesa"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:259
-msgid ""
-"The preprocessor JSON file that dictates\n"
-"Gcode output."
-msgstr ""
-"File JSON del preprocessore che istruisce\n"
-"il GCode di uscita."
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:270
-msgid "Gcode"
-msgstr "GCode"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:272
-msgid ""
-"Choose what to use for GCode generation:\n"
-"'Drills', 'Slots' or 'Both'.\n"
-"When choosing 'Slots' or 'Both', slots will be\n"
-"converted to drills."
-msgstr ""
-"Scegli cosa utilizzare per la generazione GCode:\n"
-"'Forature', 'Slot' o 'Entrambi'.\n"
-"Quando si sceglie 'Slot' o 'Entrambi', le slot saranno\n"
-"convertite in fori."
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:288
-msgid "Mill Holes"
-msgstr "Fresatura fori"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:290
-msgid "Create Geometry for milling holes."
-msgstr "Crea Geometrie per forare i buchi."
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:294
-msgid "Drill Tool dia"
-msgstr "Diametro udensile foratura"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:305
-msgid "Slot Tool dia"
-msgstr "Diametro utensile Slot"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:307
-msgid ""
-"Diameter of the cutting tool\n"
-"when milling slots."
-msgstr ""
-"Diametro dell'utensile da taglio\n"
-"che fresa gli slot."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:28
-msgid "App Settings"
-msgstr "Impostazioni App"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:49
-msgid "Grid Settings"
-msgstr "Impostazioni Griglia"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:53
-msgid "X value"
-msgstr "Valore X"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:55
-msgid "This is the Grid snap value on X axis."
-msgstr "Questo è il valore di snap alla griglia sull'asse X."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:65
-msgid "Y value"
-msgstr "Valore Y"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:67
-msgid "This is the Grid snap value on Y axis."
-msgstr "Questo è il valore di snap alla griglia sull'asse Y."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:77
-msgid "Snap Max"
-msgstr "Snap massimo"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:92
-msgid "Workspace Settings"
-msgstr "Impostazioni area di lavoro"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:95
-msgid "Active"
-msgstr "Attivo"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:97
-msgid ""
-"Draw a delimiting rectangle on canvas.\n"
-"The purpose is to illustrate the limits for our work."
-msgstr ""
-"Disegna un rettangolo delimitante.\n"
-"Lo scopo è quello di mostrare i limiti del nostro lavoro."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:105
-msgid ""
-"Select the type of rectangle to be used on canvas,\n"
-"as valid workspace."
-msgstr ""
-"Seleziona il tipo di rettangolo da utilizzare,\n"
-"come spazio di lavoro valido."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:171
-msgid "Orientation"
-msgstr "Orientamento"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:172
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:239
-#: flatcamTools/ToolFilm.py:422
-msgid ""
-"Can be:\n"
-"- Portrait\n"
-"- Landscape"
-msgstr ""
-"Può essere:\n"
-"- Verticale\n"
-"- Orizzontale"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:176
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:243
-#: flatcamTools/ToolFilm.py:426
-msgid "Portrait"
-msgstr "Verticale"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:177
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:244
-#: flatcamTools/ToolFilm.py:427
-msgid "Landscape"
-msgstr "Orizzontale"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:201
-msgid "Notebook"
-msgstr "Blocco note"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:203
-msgid ""
-"This sets the font size for the elements found in the Notebook.\n"
-"The notebook is the collapsible area in the left side of the GUI,\n"
-"and include the Project, Selected and Tool tabs."
-msgstr ""
-"Questo imposta la dimensione del carattere per gli elementi trovati nel "
-"blocco note.\n"
-"Il blocco note è l'area comprimibile nella parte sinistra della GUI,\n"
-"e include le schede Progetto, Selezionato e Strumento."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:222
-msgid "Axis"
-msgstr "Assi"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:224
-msgid "This sets the font size for canvas axis."
-msgstr "Questo imposta la dimensione del carattere per gli assi."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:241
-msgid "Textbox"
-msgstr "Box testo"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:243
-msgid ""
-"This sets the font size for the Textbox GUI\n"
-"elements that are used in FlatCAM."
-msgstr ""
-"Ciò imposta la dimensione del carattere per gli elementi delle box testo\n"
-"della GUI utilizzati in FlatCAM."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:269
-msgid "Mouse Settings"
-msgstr "Impostazioni mouse"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:273
-msgid "Cursor Shape"
-msgstr "Forma cursore"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:275
-msgid ""
-"Choose a mouse cursor shape.\n"
-"- Small -> with a customizable size.\n"
-"- Big -> Infinite lines"
-msgstr ""
-"Scegli una forma del cursore del mouse.\n"
-"- Piccolo -> con dimensioni personalizzabili.\n"
-"- Grande -> Linee infinite"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:281
-msgid "Small"
-msgstr "Piccolo"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:282
-msgid "Big"
-msgstr "Grande"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:289
-msgid "Cursor Size"
-msgstr "Dimensione cursore"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:291
-msgid "Set the size of the mouse cursor, in pixels."
-msgstr "Imposta la dimensione del cursore del mouse, in pixel."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:302
-msgid "Cursor Width"
-msgstr "Larghezza cursore"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:304
-msgid "Set the line width of the mouse cursor, in pixels."
-msgstr "Imposta la larghezza della linea del cursore del mouse, in pixel."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:315
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:322
-msgid "Cursor Color"
-msgstr "Colore cursore"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:317
-msgid "Check this box to color mouse cursor."
-msgstr "Seleziona questa casella per colorare il cursore del mouse."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:324
-msgid "Set the color of the mouse cursor."
-msgstr "Imposta il colore del cursore del mouse."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:347
-msgid "Pan Button"
-msgstr "Pulsante panorama"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:349
-msgid ""
-"Select the mouse button to use for panning:\n"
-"- MMB --> Middle Mouse Button\n"
-"- RMB --> Right Mouse Button"
-msgstr ""
-"Seleziona il pulsante del mouse da utilizzare per le panoramiche (panning):\n"
-"- PCM -> Pulsante centrale del mouse\n"
-"- PDM -> Pulsante destro del mouse"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:353
-msgid "MMB"
-msgstr "PCM"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:354
-msgid "RMB"
-msgstr "PDM"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:360
-msgid "Multiple Selection"
-msgstr "Selezione multipla"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:362
-msgid "Select the key used for multiple selection."
-msgstr "Imposta il tasto per le selezioni multiple."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:364
-msgid "CTRL"
-msgstr "CTRL"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:365
-msgid "SHIFT"
-msgstr "SHIFT"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:376
-msgid "Delete object confirmation"
-msgstr "Conferma eliminazione oggetto"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:378
-msgid ""
-"When checked the application will ask for user confirmation\n"
-"whenever the Delete object(s) event is triggered, either by\n"
-"menu shortcut or key shortcut."
-msgstr ""
-"Se selezionata, l'applicazione richiederà la conferma all'utente\n"
-"ogni volta che viene attivato l'evento Elimina oggetto/i, da\n"
-"scorciatoia menu o da tasto di scelta rapida."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:385
-msgid "\"Open\" behavior"
-msgstr "Comportamento \"Apri\""
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:387
-msgid ""
-"When checked the path for the last saved file is used when saving files,\n"
-"and the path for the last opened file is used when opening files.\n"
-"\n"
-"When unchecked the path for opening files is the one used last: either the\n"
-"path for saving files or the path for opening files."
-msgstr ""
-"Se selezionato, il percorso dell'ultimo file salvato viene utilizzato "
-"durante il salvataggio dei file,\n"
-"e il percorso dell'ultimo file aperto viene utilizzato durante l'apertura "
-"dei file.\n"
-"\n"
-"Se deselezionato, il percorso di apertura dei file è quello utilizzato per "
-"ultimo: sia\n"
-"percorso di salvataggio sia percorso di apertura dei file."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:396
-msgid "Enable ToolTips"
-msgstr "Abilita ToolTips"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:398
-msgid ""
-"Check this box if you want to have toolTips displayed\n"
-"when hovering with mouse over items throughout the App."
-msgstr ""
-"Selezionare questa casella se si desidera visualizzare le descrizioni "
-"comandi\n"
-"quando si passa con il mouse sugli oggetti in tutta l'app."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:405
-msgid "Allow Machinist Unsafe Settings"
-msgstr "Consenti le impostazioni non sicure dell'operatore"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:407
-msgid ""
-"If checked, some of the application settings will be allowed\n"
-"to have values that are usually unsafe to use.\n"
-"Like Z travel negative values or Z Cut positive values.\n"
-"It will applied at the next application start.\n"
-"<>: Don't change this unless you know what you are doing !!!"
-msgstr ""
-"Se selezionato, alcune impostazioni dell'applicazione potranno\n"
-"avere valori che di solito non sono sicuri da usare.\n"
-"Come spostamenti in Z con valori negativi o tagli in Z con valori positivi.\n"
-"Verrà applicato al successivo avvio dell'applicazione.\n"
-"<>: non cambiarlo se non sai cosa stai facendo !!!"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:419
-msgid "Bookmarks limit"
-msgstr "Limite segnalibri"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:421
-msgid ""
-"The maximum number of bookmarks that may be installed in the menu.\n"
-"The number of bookmarks in the bookmark manager may be greater\n"
-"but the menu will hold only so much."
-msgstr ""
-"Il massimo numero di sgnalibri che possono essere installati nel menu.\n"
-"Il numero di segnalibri nel gestore segnalibri può essere maggiore\n"
-"ma il menu ne conterrà solo la quantità qui specificata."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:430
-msgid "Activity Icon"
-msgstr "Icona attività"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:432
-msgid "Select the GIF that show activity when FlatCAM is active."
-msgstr "Selezione una GIF che mostra quando FlatCAM è attivo."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:29
-msgid "App Preferences"
-msgstr "Preferenze App"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:40
-msgid ""
-"The default value for FlatCAM units.\n"
-"Whatever is selected here is set every time\n"
-"FlatCAM is started."
-msgstr ""
-"Il valore predefinito per le unità FlatCAM.\n"
-"Qualunque cosa sia qui selezionata verrà impostata ad ogni\n"
-"avvio di FlatCAM."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:44
-msgid "IN"
-msgstr "IN"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:50
-msgid "Precision MM"
-msgstr "Precisione MM"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:52
-msgid ""
-"The number of decimals used throughout the application\n"
-"when the set units are in METRIC system.\n"
-"Any change here require an application restart."
-msgstr ""
-"Numero di decimali usati nell'applicazione\n"
-"quando è impostata l'unità del sistema METRICO.\n"
-"Ogni modifica richiederà il riavvio del programma."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:64
-msgid "Precision INCH"
-msgstr "Precisione POLLICI"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:66
-msgid ""
-"The number of decimals used throughout the application\n"
-"when the set units are in INCH system.\n"
-"Any change here require an application restart."
-msgstr ""
-"Numero di decimali usati nell'applicazione\n"
-"quando è impostata l'unità del sistema POLLICI.\n"
-"Ogni modifica richiederà il riavvio del programma."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:78
-msgid "Graphic Engine"
-msgstr "Motore grafico"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:79
-msgid ""
-"Choose what graphic engine to use in FlatCAM.\n"
-"Legacy(2D) -> reduced functionality, slow performance but enhanced "
-"compatibility.\n"
-"OpenGL(3D) -> full functionality, high performance\n"
-"Some graphic cards are too old and do not work in OpenGL(3D) mode, like:\n"
-"Intel HD3000 or older. In this case the plot area will be black therefore\n"
-"use the Legacy(2D) mode."
-msgstr ""
-"Scegli quale motore grafico utilizzare in FlatCAM.\n"
-"Legacy (2D) -> funzionalità ridotta, prestazioni lente ma compatibilità "
-"migliore.\n"
-"OpenGL (3D) -> piena funzionalità, alte prestazioni\n"
-"Alcune schede grafiche sono troppo vecchie e non funzionano in modalità "
-"OpenGL (3D), come:\n"
-"Intel HD3000 o precedente. In questo caso l'area della trama apparirà nera\n"
-"quindi usa la modalità Legacy (2D)."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:85
-msgid "Legacy(2D)"
-msgstr "Legacy(2D)"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:86
-msgid "OpenGL(3D)"
-msgstr "OpenGL(3D)"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:98
-msgid "APP. LEVEL"
-msgstr "LIVELLO APP"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:99
-msgid ""
-"Choose the default level of usage for FlatCAM.\n"
-"BASIC level -> reduced functionality, best for beginner's.\n"
-"ADVANCED level -> full functionality.\n"
-"\n"
-"The choice here will influence the parameters in\n"
-"the Selected Tab for all kinds of FlatCAM objects."
-msgstr ""
-"Scegli il livello di utilizzo predefinito per FlatCAM.\n"
-"Livello BASE -> funzionalità ridotta, ideale per i principianti.\n"
-"Livello AVANZATO -> piena funzionalità.\n"
-"\n"
-"La scelta qui influenzerà i parametri nelle\n"
-"schede selezionate per tutti i tipi di oggetti FlatCAM."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:105
-#: flatcamObjects/FlatCAMExcellon.py:627 flatcamObjects/FlatCAMGeometry.py:506
-#: flatcamObjects/FlatCAMGerber.py:278
-msgid "Advanced"
-msgstr "Avanzato"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:111
-msgid "Portable app"
-msgstr "App portabile"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:112
-msgid ""
-"Choose if the application should run as portable.\n"
-"\n"
-"If Checked the application will run portable,\n"
-"which means that the preferences files will be saved\n"
-"in the application folder, in the lib\\config subfolder."
-msgstr ""
-"Scegli se l'applicazione deve essere eseguita come portabile.\n"
-"\n"
-"Se selezionata l'applicazione funzionerà come portabile,\n"
-"ciò significa che i file delle preferenze verranno salvati\n"
-"nella cartella dell'applicazione, nella sottocartella lib\\config."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:125
-msgid "Languages"
-msgstr "Lingua"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:126
-msgid "Set the language used throughout FlatCAM."
-msgstr "Imposta la lingua usata in FlatCAM."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:132
-msgid "Apply Language"
-msgstr "Applica lingua"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:133
-msgid ""
-"Set the language used throughout FlatCAM.\n"
-"The app will restart after click."
-msgstr ""
-"Imposta la lingua usata in FlatCAM. L'App verrà riavviata dopo il click."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:147
-msgid "Startup Settings"
-msgstr "Impostazioni avvio"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:151
-msgid "Splash Screen"
-msgstr "Schermata iniziale"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:153
-msgid "Enable display of the splash screen at application startup."
-msgstr "Abilita la visualizzazione della schermata iniziale all'avvio."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:165
-msgid "Sys Tray Icon"
-msgstr "Icona barra di sistema"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:167
-msgid "Enable display of FlatCAM icon in Sys Tray."
-msgstr "Abilita l'icona di FlatCAM nella barra di sistema."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:172
-msgid "Show Shell"
-msgstr "Mostra shell"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:174
-msgid ""
-"Check this box if you want the shell to\n"
-"start automatically at startup."
-msgstr ""
-"Seleziona questa casella se vuoi che la shell sia eseguita\n"
-"automaticamente all'avvio."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:181
-msgid "Show Project"
-msgstr "Mostra progetto"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:183
-msgid ""
-"Check this box if you want the project/selected/tool tab area to\n"
-"to be shown automatically at startup."
-msgstr ""
-"Selezionare questa casella se si desidera che l'area del progetto/selezione/"
-"scheda strumenti\n"
-"sia mostrata automaticamente all'avvio."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:189
-msgid "Version Check"
-msgstr "Controllo versione"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:191
-msgid ""
-"Check this box if you want to check\n"
-"for a new version automatically at startup."
-msgstr ""
-"Selezionare questa casella se si desidera controllare\n"
-"automaticamente all'avvio la presenza di una nuova versione."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:198
-msgid "Send Statistics"
-msgstr "Invia statistiche"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:200
-msgid ""
-"Check this box if you agree to send anonymous\n"
-"stats automatically at startup, to help improve FlatCAM."
-msgstr ""
-"Seleziona questa casella se accetti di inviare anonimamente\n"
-"alcune statistiche all'avvio, per aiutare a migliorare FlatCAM."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:214
-msgid "Workers number"
-msgstr "Numero lavori"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:216
-msgid ""
-"The number of Qthreads made available to the App.\n"
-"A bigger number may finish the jobs more quickly but\n"
-"depending on your computer speed, may make the App\n"
-"unresponsive. Can have a value between 2 and 16.\n"
-"Default value is 2.\n"
-"After change, it will be applied at next App start."
-msgstr ""
-"Il numero di processi resi disponibili all'app.\n"
-"Un numero maggiore può finire i lavori più rapidamente ma\n"
-"a seconda della velocità del tuo computer, potrebbe rendere l'app\n"
-"non responsiva. Può avere un valore compreso tra 2 e 16.\n"
-"Il valore predefinito è 2.\n"
-"Ogni modifica sarà applicata al prossimo avvio dell'app."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:230
-msgid "Geo Tolerance"
-msgstr "Tolleranza geometrie"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:232
-msgid ""
-"This value can counter the effect of the Circle Steps\n"
-"parameter. Default value is 0.005.\n"
-"A lower value will increase the detail both in image\n"
-"and in Gcode for the circles, with a higher cost in\n"
-"performance. Higher value will provide more\n"
-"performance at the expense of level of detail."
-msgstr ""
-"Questo valore può contenere l'effetto dei passi nei Cerchi.\n"
-"Il valore predefinito è 0,005.\n"
-"Un valore più basso aumenterà i dettagli sia nell'immagine\n"
-"e nel Gcode per i cerchi ma con un costo maggiore in\n"
-"termini di prestazioni. Un valore più elevato fornirà più\n"
-"prestazioni a scapito del livello di dettaglio."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:252
-msgid "Save Settings"
-msgstr "Salva impostazioni"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:256
-msgid "Save Compressed Project"
-msgstr "Salva progetti ompressi"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:258
-msgid ""
-"Whether to save a compressed or uncompressed project.\n"
-"When checked it will save a compressed FlatCAM project."
-msgstr ""
-"Imposta se salvare un progetto compresso o non compresso.\n"
-"Se selezionato, salverà un progetto FlatCAM compresso."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:267
-msgid "Compression"
-msgstr "Compressione"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:269
-msgid ""
-"The level of compression used when saving\n"
-"a FlatCAM project. Higher value means better compression\n"
-"but require more RAM usage and more processing time."
-msgstr ""
-"Il livello di compressione utilizzato durante il salvataggio di\n"
-"progetti FlatCAM. Un valore più alto significa una maggior compressione\n"
-"ma richiede più utilizzo di RAM e più tempo di elaborazione."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:280
-msgid "Enable Auto Save"
-msgstr "Abilita autosalvataggio"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:282
-msgid ""
-"Check to enable the autosave feature.\n"
-"When enabled, the application will try to save a project\n"
-"at the set interval."
-msgstr ""
-"Attiva per abilitare il salvataggio automatico.\n"
-"Quanto attivo, l'applicazione tenterà di salvare il progetto\n"
-"ad intervalli regolari."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:292
-msgid "Interval"
-msgstr "Intervallo"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:294
-msgid ""
-"Time interval for autosaving. In milliseconds.\n"
-"The application will try to save periodically but only\n"
-"if the project was saved manually at least once.\n"
-"While active, some operations may block this feature."
-msgstr ""
-"Intervallo di tempo per il salvataggio automatico. In millisecondi.\n"
-"L'applicazione proverà a salvare periodicamente ma solo\n"
-"se il progetto è stato salvato manualmente almeno una volta.\n"
-"Quando attivo, alcune operazioni potrebbero bloccare questa funzione."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:310
-msgid "Text to PDF parameters"
-msgstr "Parametri conversione da testo a PDF"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:312
-msgid "Used when saving text in Code Editor or in FlatCAM Document objects."
-msgstr ""
-"Utilizzato quando si salva il testo nell'editor di Codice o negli oggetti "
-"documento di FlatCAM."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:321
-msgid "Top Margin"
-msgstr "Margine superiore"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:323
-msgid "Distance between text body and the top of the PDF file."
-msgstr "Distanza fra il corpo del testo e il bordo superiore del file PDF."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:334
-msgid "Bottom Margin"
-msgstr "Margine inferiore"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:336
-msgid "Distance between text body and the bottom of the PDF file."
-msgstr "Distanza fra il corpo del testo e il bordo inferiore del file PDF."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:347
-msgid "Left Margin"
-msgstr "Margine sinistro"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:349
-msgid "Distance between text body and the left of the PDF file."
-msgstr "Distanza fra il corpo del testo e il bordo sinistro del file PDF."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:360
-msgid "Right Margin"
-msgstr "Margine destro"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:362
-msgid "Distance between text body and the right of the PDF file."
-msgstr "Distanza fra il corpo del testo e il bordo destro del file PDF."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:26
-msgid "GUI Preferences"
-msgstr "Preferenze GUI"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:36
-msgid "Theme"
-msgstr "Tema"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:38
-msgid ""
-"Select a theme for FlatCAM.\n"
-"It will theme the plot area."
-msgstr ""
-"Seleziona un tema per FlatCAM.\n"
-"Sarà applicato all'area di plot."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:43
-msgid "Light"
-msgstr "Chiaro"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:44
-msgid "Dark"
-msgstr "Scuro"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:51
-msgid "Use Gray Icons"
-msgstr "Usa icone grige"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:53
-msgid ""
-"Check this box to use a set of icons with\n"
-"a lighter (gray) color. To be used when a\n"
-"full dark theme is applied."
-msgstr ""
-"Seleziona questa casella per utilizzare un set di icone con\n"
-"un colore più chiaro (grigio). Da usare quando\n"
-"viene applicato il tema scuro."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:59
-msgid "Apply Theme"
-msgstr "Applica tema"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:61
-msgid ""
-"Select a theme for FlatCAM.\n"
-"It will theme the plot area.\n"
-"The application will restart after change."
-msgstr ""
-"Seleziona un tema per FlatCAM.\n"
-"Il tema sarà applicato all'area di plot.\n"
-"Il programma verrà riavviato dopo la modifica."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:73
-msgid "Layout"
-msgstr "Livello"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:75
-msgid ""
-"Select an layout for FlatCAM.\n"
-"It is applied immediately."
-msgstr ""
-"Seleziona un livello per FlatCAM.\n"
-"Sarà applicato immediatamente."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:95
-msgid "Style"
-msgstr "Stile"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:97
-msgid ""
-"Select an style for FlatCAM.\n"
-"It will be applied at the next app start."
-msgstr ""
-"Seleziona uno stile per FlatCAM.\n"
-"Sarà applicato al prossimo riavvio del programma."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:111
-msgid "Activate HDPI Support"
-msgstr "Attiva supporto HDPI"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:113
-msgid ""
-"Enable High DPI support for FlatCAM.\n"
-"It will be applied at the next app start."
-msgstr ""
-"Abilita il supporto HDPI per FlatCAM.\n"
-"Sarà applicato al prossimo avvio del programma."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:127
-msgid "Display Hover Shape"
-msgstr "Visualizza forme al passaggio del mouse"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:129
-msgid ""
-"Enable display of a hover shape for FlatCAM objects.\n"
-"It is displayed whenever the mouse cursor is hovering\n"
-"over any kind of not-selected object."
-msgstr ""
-"Abilita la visualizzazione delle forme al passaggio del mouse sugli oggetti "
-"FlatCAM.\n"
-"Viene visualizzato ogni volta che si sposta il cursore del mouse\n"
-"su qualsiasi tipo di oggetto non selezionato."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:136
-msgid "Display Selection Shape"
-msgstr "Mostra forme selezione"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:138
-msgid ""
-"Enable the display of a selection shape for FlatCAM objects.\n"
-"It is displayed whenever the mouse selects an object\n"
-"either by clicking or dragging mouse from left to right or\n"
-"right to left."
-msgstr ""
-"Abilita la visualizzazione delle forma della selezione per gli oggetti "
-"FlatCAM.\n"
-"Viene visualizzato ogni volta che il mouse seleziona un oggetto\n"
-"facendo clic o trascinando il mouse da sinistra a destra o\n"
-"da destra a sinistra."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:151
-msgid "Left-Right Selection Color"
-msgstr "Selezione colore sinistra-destra"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:156
-msgid "Set the line color for the 'left to right' selection box."
-msgstr "Imposta il colore per il box selezione 'da sinistra a destra'."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:172
-msgid ""
-"Set the fill color for the selection box\n"
-"in case that the selection is done from left to right.\n"
-"First 6 digits are the color and the last 2\n"
-"digits are for alpha (transparency) level."
-msgstr ""
-"Imposta il colore di riempimento per la casella di selezione\n"
-"nel caso in cui la selezione venga effettuata da sinistra a destra.\n"
-"Le prime 6 cifre sono il colore e le ultime 2\n"
-"cifre sono per il livello alfa (trasparenza)."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:192
-msgid "Set the fill transparency for the 'left to right' selection box."
-msgstr ""
-"Imposta la trasparenza della casella di selezione 'da sinistra a destra'."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:216
-msgid "Right-Left Selection Color"
-msgstr "Selezione colore destra-sinistra"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:222
-msgid "Set the line color for the 'right to left' selection box."
-msgstr "Imposta il colore per il box selezione 'da destra a sinistra'."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:239
-msgid ""
-"Set the fill color for the selection box\n"
-"in case that the selection is done from right to left.\n"
-"First 6 digits are the color and the last 2\n"
-"digits are for alpha (transparency) level."
-msgstr ""
-"Imposta il colore di riempimento per la casella di selezione\n"
-"nel caso in cui la selezione venga effettuata da destra a sinistra.\n"
-"Le prime 6 cifre sono il colore e le ultime 2\n"
-"cifre sono per il livello alfa (trasparenza)."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:259
-msgid "Set the fill transparency for selection 'right to left' box."
-msgstr ""
-"Imposta la trasparenza della casella di selezione 'da destra a sinistra'."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:286
-msgid "Editor Color"
-msgstr "Colore editor"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:290
-msgid "Drawing"
-msgstr "Disegno"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:292
-msgid "Set the color for the shape."
-msgstr "Imposta il colore per le forme."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:309
-msgid "Set the color of the shape when selected."
-msgstr "Imposta il colore delle forme quando selezionate."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:332
-msgid "Project Items Color"
-msgstr "Colori oggetti del progetto"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:336
-msgid "Enabled"
-msgstr "Abilitato"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:338
-msgid "Set the color of the items in Project Tab Tree."
-msgstr "Imposta il colore degli elementi nell'albero Tab progetto."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:352
-msgid "Disabled"
-msgstr "Disabilitato"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:354
-msgid ""
-"Set the color of the items in Project Tab Tree,\n"
-"for the case when the items are disabled."
-msgstr ""
-"Imposta il colore degli elementi nell'albero Tab progetto,\n"
-"nel caso gli elementi siano disabilitati."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:370
-msgid "Project AutoHide"
-msgstr "Nascondi automaticamente progetto"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:372
-msgid ""
-"Check this box if you want the project/selected/tool tab area to\n"
-"hide automatically when there are no objects loaded and\n"
-"to show whenever a new object is created."
-msgstr ""
-"Selezionare questa casella se si desidera che l'area del progetto/"
-"selezionato/scheda strumento\n"
-"sia nascosta automaticamente quando non ci sono oggetti caricati e\n"
-"mostrarla ogni volta che viene creato un nuovo oggetto."
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:27
-msgid "Geometry Adv. Options"
-msgstr "Opzioni avanzate Geometrie"
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:35
-msgid ""
-"A list of Geometry advanced parameters.\n"
-"Those parameters are available only for\n"
-"Advanced App. Level."
-msgstr ""
-"Un elenco di parametri avanzati di Geometria.\n"
-"Tali parametri sono disponibili solo per\n"
-"App a livello avanzato."
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:45
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:112
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:134
-#: flatcamTools/ToolCalibration.py:125 flatcamTools/ToolSolderPaste.py:240
-msgid "Toolchange X-Y"
-msgstr "Cambio utensile X-Y"
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:56
-msgid ""
-"Height of the tool just after starting the work.\n"
-"Delete the value if you don't need this feature."
-msgstr ""
-"Altezza dell'utensile subito dopo l'inizio del lavoro.\n"
-"Elimina il valore se non hai bisogno di questa funzione."
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:158
-msgid "Segment X size"
-msgstr "Dimensione X del segmento"
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:160
-msgid ""
-"The size of the trace segment on the X axis.\n"
-"Useful for auto-leveling.\n"
-"A value of 0 means no segmentation on the X axis."
-msgstr ""
-"La dimensione del segmento di traccia sull'asse X.\n"
-"Utile per il livellamento automatico.\n"
-"Un valore 0 significa nessuna segmentazione sull'asse X."
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:174
-msgid "Segment Y size"
-msgstr "Dimensione Y del segmento"
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:176
-msgid ""
-"The size of the trace segment on the Y axis.\n"
-"Useful for auto-leveling.\n"
-"A value of 0 means no segmentation on the Y axis."
-msgstr ""
-"La dimensione del segmento di traccia sull'asse Y.\n"
-"Utile per il livellamento automatico.\n"
-"Un valore 0 significa nessuna segmentazione sull'asse Y."
-
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:33
-msgid "A list of Geometry Editor parameters."
-msgstr "Lista di parametri editor Geometrie."
-
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:43
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:196
-msgid ""
-"Set the number of selected geometry\n"
-"items above which the utility geometry\n"
-"becomes just a selection rectangle.\n"
-"Increases the performance when moving a\n"
-"large number of geometric elements."
-msgstr ""
-"Imposta il numero di elementi della geometria\n"
-" selezionata sopra i quali la geometria\n"
-"diventa solo un rettangolo di selezione.\n"
-"Aumenta le prestazioni quando si usano un\n"
-"gran numero di elementi geometrici."
-
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:27
-msgid "Geometry General"
-msgstr "Generali geometrie"
-
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:49
-msgid ""
-"The number of circle steps for Geometry \n"
-"circle and arc shapes linear approximation."
-msgstr ""
-"Il numero di passi del cerchio per Geometria \n"
-"per le approssimazioni lineari di cerchi ed archi."
-
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:63
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:41
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:48
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:42
-msgid "Tools Dia"
-msgstr "Diametro utensile"
-
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:65
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:108
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:43
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:50
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:44
-msgid ""
-"Diameters of the tools, separated by comma.\n"
-"The value of the diameter has to use the dot decimals separator.\n"
-"Valid values: 0.3, 1.0"
-msgstr ""
-"Diametri degli utensili, separati da virgola.\n"
-"Il valore del diametro deve utilizzare il punto come separatore decimale.\n"
-"Valori validi: 0.3, 1.0"
-
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:80
-msgid "Geometry Object Color"
-msgstr "Colore oggetti Geometria"
-
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:28
-msgid "Geometry Options"
-msgstr "Opzioni geometria"
-
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:36
-msgid ""
-"Create a CNC Job object\n"
-"tracing the contours of this\n"
-"Geometry object."
-msgstr ""
-"Crea un oggetto CNC Job\n"
-"tracciando i contorni di questo\n"
-"oggetto geometria."
-
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:80
-msgid "Depth/Pass"
-msgstr "Profondità/passata"
-
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:82
-msgid ""
-"The depth to cut on each pass,\n"
-"when multidepth is enabled.\n"
-"It has positive value although\n"
-"it is a fraction from the depth\n"
-"which has negative value."
-msgstr ""
-"La profondità da tagliare ad ogni passaggio,\n"
-"quando il multi-profondità è abilitato.\n"
-"Ha un valore positivo sebbene\n"
-"sia una frazione dalla profondità\n"
-"che ha un negativo."
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:27
-msgid "Gerber Adv. Options"
-msgstr "Opzioni avanzate Gerber"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:33
-msgid ""
-"A list of Gerber advanced parameters.\n"
-"Those parameters are available only for\n"
-"Advanced App. Level."
-msgstr ""
-"Un elenco di parametri Gerber avanzati.\n"
-"Tali parametri sono disponibili solo per\n"
-"App a livello avanzato."
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:52
-msgid "Table Show/Hide"
-msgstr "Mostra/Nasconti tabella"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:54
-msgid ""
-"Toggle the display of the Gerber Apertures Table.\n"
-"Also, on hide, it will delete all mark shapes\n"
-"that are drawn on canvas."
-msgstr ""
-"(Dis)attiva la visualizzazione della tabella delle aperrture del Gerber.\n"
-"Inoltre, su nascondi, eliminerà tutte le forme dei segni\n"
-"che sono disegnati."
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:134
-msgid "Exterior"
-msgstr "Esterno"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:135
-msgid "Interior"
-msgstr "Interno"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:148
-msgid ""
-"Buffering type:\n"
-"- None --> best performance, fast file loading but no so good display\n"
-"- Full --> slow file loading but good visuals. This is the default.\n"
-"<>: Don't change this unless you know what you are doing !!!"
-msgstr ""
-"Tipo di buffer:\n"
-"- Nessuno -> migliori prestazioni, caricamento rapido dei file ma "
-"visualizzazione non così buona\n"
-"- Completo -> caricamento lento dei file ma buona grafica. Questo è il "
-"valore predefinito.\n"
-"<>: non cambiarlo se non sai cosa stai facendo !!!"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:153
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:207
-#: flatcamTools/ToolFiducials.py:201 flatcamTools/ToolFilm.py:255
-#: flatcamTools/ToolProperties.py:452 flatcamTools/ToolProperties.py:455
-#: flatcamTools/ToolProperties.py:458 flatcamTools/ToolProperties.py:483
-msgid "None"
-msgstr "Nessuno"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:159
-msgid "Simplify"
-msgstr "Semplifica"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:161
-msgid ""
-"When checked all the Gerber polygons will be\n"
-"loaded with simplification having a set tolerance.\n"
-"<>: Don't change this unless you know what you are doing !!!"
-msgstr ""
-"Se selezionato, tutti i poligoni del Gerber saranno\n"
-"caricati con una semplificazione con la tolleranza impostata.\n"
-"<>: non cambiarlo se non sai cosa stai facendo !!!"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:168
-msgid "Tolerance"
-msgstr "Tolleranza"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:169
-msgid "Tolerance for polygon simplification."
-msgstr "Tolleranza per semplificazione poligoni."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:33
-msgid "A list of Gerber Editor parameters."
-msgstr "Lista di parametri edito Gerber."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:43
-msgid ""
-"Set the number of selected Gerber geometry\n"
-"items above which the utility geometry\n"
-"becomes just a selection rectangle.\n"
-"Increases the performance when moving a\n"
-"large number of geometric elements."
-msgstr ""
-"Imposta il numero di geometrie Gerber selezionate\n"
-"sopra al quali le geometriediventeranno\n"
-"solo dei rettangoli di selezione.\n"
-"Aumenta le prestazioni quando si sposta un\n"
-"gran numero di elementi geometrici."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:56
-msgid "New Aperture code"
-msgstr "Nuovo codice Apertura"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:69
-msgid "New Aperture size"
-msgstr "Nuova dimensione Apertura"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:71
-msgid "Size for the new aperture"
-msgstr "Dimensione per la nuova apertura"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:82
-msgid "New Aperture type"
-msgstr "Tipo nuova apertura"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:84
-msgid ""
-"Type for the new aperture.\n"
-"Can be 'C', 'R' or 'O'."
-msgstr ""
-"Tipo per la nuova apertura.\n"
-"Può essere 'C', 'R' o 'O'."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:106
-msgid "Aperture Dimensions"
-msgstr "Dimensione apertura"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:116
-msgid "Linear Pad Array"
-msgstr "Matrice lineare di pad"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:160
-msgid "Circular Pad Array"
-msgstr "Matrice circolare di pad"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:196
-msgid "Distance at which to buffer the Gerber element."
-msgstr "Distanza alla quale bufferizzare l'elemento Gerber."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:205
-msgid "Scale Tool"
-msgstr "Strumento scala"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:211
-msgid "Factor to scale the Gerber element."
-msgstr "Fattore al quale scalare gli elementi Gerber."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:224
-msgid "Threshold low"
-msgstr "Soglia inferiore"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:226
-msgid "Threshold value under which the apertures are not marked."
-msgstr "Valore di soglia sotto alla quale le aperture non saranno marchiate."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:236
-msgid "Threshold high"
-msgstr "Soglia superiore"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:238
-msgid "Threshold value over which the apertures are not marked."
-msgstr "Valore di soglia sopra alla quale le aperture non saranno marchiate."
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:27
-msgid "Gerber Export"
-msgstr "Esporta Gerber"
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:33
-msgid ""
-"The parameters set here are used in the file exported\n"
-"when using the File -> Export -> Export Gerber menu entry."
-msgstr ""
-"I parametri impostati qui vengono utilizzati nel file esportato\n"
-"quando si utilizza la voce di menu File -> Esporta -> Esporta Gerber."
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:44
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:50
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:84
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:90
-msgid "The units used in the Gerber file."
-msgstr "Le unità utilizzate nei file Gerber."
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:58
-msgid ""
-"The number of digits in the whole part of the number\n"
-"and in the fractional part of the number."
-msgstr ""
-"Numero di cifre nella parte intera del numero\n"
-"e nella parte frazionaria del numero."
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:71
-msgid ""
-"This numbers signify the number of digits in\n"
-"the whole part of Gerber coordinates."
-msgstr ""
-"Questi numeri indicano il numero di cifre nella\n"
-"parte intera delle coordinate di Gerber."
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:87
-msgid ""
-"This numbers signify the number of digits in\n"
-"the decimal part of Gerber coordinates."
-msgstr ""
-"Questi numeri indicano il numero di cifre nella\n"
-"parte decimale delle coordinate di Gerber."
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:99
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:109
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:100
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:110
-msgid ""
-"This sets the type of Gerber zeros.\n"
-"If LZ then Leading Zeros are removed and\n"
-"Trailing Zeros are kept.\n"
-"If TZ is checked then Trailing Zeros are removed\n"
-"and Leading Zeros are kept."
-msgstr ""
-"Questo imposta il tipo di zeri dei Gerber.\n"
-"Se ZI vengono rimossi gli zeri iniziali e\n"
-"mantenuti quelli finali.\n"
-"Se ZF è selezionato, gli Zeri finali vengono rimossi\n"
-"e mantenuti gli Zeri iniziali."
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:27
-msgid "Gerber General"
-msgstr "Generali Gerber"
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:45
-msgid "M-Color"
-msgstr "Colori-M"
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:61
-msgid ""
-"The number of circle steps for Gerber \n"
-"circular aperture linear approximation."
-msgstr ""
-"Il numero di passi del cerchio per le aperture circolari\n"
-"del Gerber ad approssimazione lineare."
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:73
-msgid "Default Values"
-msgstr "Valori di default"
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:75
-msgid ""
-"Those values will be used as fallback values\n"
-"in case that they are not found in the Gerber file."
-msgstr ""
-"Tali valori verranno utilizzati come valori di ripristino\n"
-"nel caso in cui non vengano trovati nel file Gerber."
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:126
-msgid "Clean Apertures"
-msgstr "Pulisci aperture"
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:128
-msgid ""
-"Will remove apertures that do not have geometry\n"
-"thus lowering the number of apertures in the Gerber object."
-msgstr ""
-"Rimuoverà le aperture che non hanno geometria\n"
-"riducendo così il numero di aperture nell'oggetto Gerber."
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:134
-msgid "Polarity change buffer"
-msgstr "Buffer di modifica polarità"
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:136
-msgid ""
-"Will apply extra buffering for the\n"
-"solid geometry when we have polarity changes.\n"
-"May help loading Gerber files that otherwise\n"
-"do not load correctly."
-msgstr ""
-"Applicherà il buffering extra per le geometrie\n"
-"solide quando si verificano cambiamenti di polarità.\n"
-"Può aiutare a caricare file Gerber che altrimenti\n"
-"non si caricherebbe correttamente."
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:149
-msgid "Gerber Object Color"
-msgstr "Colore oggetto Gerber"
-
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:29
-msgid "Gerber Options"
-msgstr "Opzioni gerber"
-
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:107
-msgid "Combine Passes"
-msgstr "Combina Passi"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:27
-msgid "Copper Thieving Tool Options"
-msgstr "Opzioni dello strumento deposito rame"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:39
-msgid ""
-"A tool to generate a Copper Thieving that can be added\n"
-"to a selected Gerber file."
-msgstr ""
-"Uno strumento per generare un deposito di rame che può essere aggiunto\n"
-"in un file Gerber selezionato."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:47
-msgid "Number of steps (lines) used to interpolate circles."
-msgstr "Numero di passi (linee) usato per interpolare i cerchi."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261
-#: flatcamTools/ToolCopperThieving.py:96 flatcamTools/ToolCopperThieving.py:431
-msgid "Clearance"
-msgstr "Distanza"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:59
-msgid ""
-"This set the distance between the copper Thieving components\n"
-"(the polygon fill may be split in multiple polygons)\n"
-"and the copper traces in the Gerber file."
-msgstr ""
-"Imposta la distanza tra componenti del deposito di rame\n"
-"(i poligoni possono essere divisi in sottopoligoni)\n"
-"e le tracce di rame nel file Gerber."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
-#: flatcamTools/ToolCopperThieving.py:126 flatcamTools/ToolNCC.py:535
-#: flatcamTools/ToolNCC.py:1311 flatcamTools/ToolNCC.py:1642
-#: flatcamTools/ToolNCC.py:1930 flatcamTools/ToolNCC.py:1985
-#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:946
-#: flatcamTools/ToolPaint.py:1447
-msgid "Area Selection"
-msgstr "Selezione Area"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
-#: flatcamTools/ToolCopperThieving.py:127 flatcamTools/ToolDblSided.py:216
-#: flatcamTools/ToolNCC.py:535 flatcamTools/ToolNCC.py:1658
-#: flatcamTools/ToolNCC.py:1936 flatcamTools/ToolNCC.py:1993
-#: flatcamTools/ToolNCC.py:2301 flatcamTools/ToolNCC.py:2581
-#: flatcamTools/ToolNCC.py:3007 flatcamTools/ToolPaint.py:486
-#: flatcamTools/ToolPaint.py:931 flatcamTools/ToolPaint.py:1463
-#: tclCommands/TclCommandCopperClear.py:192 tclCommands/TclCommandPaint.py:166
-msgid "Reference Object"
-msgstr "Oggetto di riferimento"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90
-#: flatcamTools/ToolCopperThieving.py:129
-msgid "Reference:"
-msgstr "Riferimento:"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92
-msgid ""
-"- 'Itself' - the copper Thieving extent is based on the object extent.\n"
-"- 'Area Selection' - left mouse click to start selection of the area to be "
-"filled.\n"
-"- 'Reference Object' - will do copper thieving within the area specified by "
-"another object."
-msgstr ""
-"- 'Stesso': l'estensione delle aree di deposito di rame si basa "
-"sull'estensione dell'oggetto.\n"
-"- 'Selezione area': fare clic con il pulsante sinistro del mouse per avviare "
-"la selezione dell'area da riempire.\n"
-"- 'Oggetto di riferimento': eseguirà il deposito di rame nell'area "
-"specificata da un altro oggetto."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:76
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190
-#: flatcamTools/ToolCopperThieving.py:171 flatcamTools/ToolExtractDrills.py:102
-#: flatcamTools/ToolExtractDrills.py:240 flatcamTools/ToolPunchGerber.py:113
-#: flatcamTools/ToolPunchGerber.py:268
-msgid "Rectangular"
-msgstr "Rettangolare"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102
-#: flatcamTools/ToolCopperThieving.py:172
-msgid "Minimal"
-msgstr "Minima"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104
-#: flatcamTools/ToolCopperThieving.py:174 flatcamTools/ToolFilm.py:113
-msgid "Box Type:"
-msgstr "Tipo contenitore:"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106
-#: flatcamTools/ToolCopperThieving.py:176
-msgid ""
-"- 'Rectangular' - the bounding box will be of rectangular shape.\n"
-"- 'Minimal' - the bounding box will be the convex hull shape."
-msgstr ""
-"- 'Rettangolare': il contenitore di selezione avrà una forma rettangolare.\n"
-"- 'Minimo': il riquadro di delimitazione avrà la forma convessa del guscio."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120
-#: flatcamTools/ToolCopperThieving.py:192
-msgid "Dots Grid"
-msgstr "Griglia punti"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121
-#: flatcamTools/ToolCopperThieving.py:193
-msgid "Squares Grid"
-msgstr "Griglia quadrati"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122
-#: flatcamTools/ToolCopperThieving.py:194
-msgid "Lines Grid"
-msgstr "Griglia linee"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124
-#: flatcamTools/ToolCopperThieving.py:196
-msgid "Fill Type:"
-msgstr "Tipo riempimento:"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126
-#: flatcamTools/ToolCopperThieving.py:198
-msgid ""
-"- 'Solid' - copper thieving will be a solid polygon.\n"
-"- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n"
-"- 'Squares Grid' - the empty area will be filled with a pattern of squares.\n"
-"- 'Lines Grid' - the empty area will be filled with a pattern of lines."
-msgstr ""
-"- 'Solido': il deposito di rame sarà un poligono solido.\n"
-"- 'Dots Grid': l'area vuota verrà riempita con uno schema di punti.\n"
-"- 'Squares Grid': l'area vuota verrà riempita con uno schema di quadrati.\n"
-"- 'Griglia di linee': l'area vuota verrà riempita con un motivo di linee."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134
-#: flatcamTools/ToolCopperThieving.py:217
-msgid "Dots Grid Parameters"
-msgstr "Parametri griglia di punti"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140
-#: flatcamTools/ToolCopperThieving.py:223
-msgid "Dot diameter in Dots Grid."
-msgstr "Diametro punti nella griglia di punti."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209
-#: flatcamTools/ToolCopperThieving.py:234
-#: flatcamTools/ToolCopperThieving.py:274
-#: flatcamTools/ToolCopperThieving.py:314
-msgid "Spacing"
-msgstr "Spaziatura"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153
-#: flatcamTools/ToolCopperThieving.py:236
-msgid "Distance between each two dots in Dots Grid."
-msgstr "Distanza fra ogni coppia di punti nella griglia."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163
-#: flatcamTools/ToolCopperThieving.py:257
-msgid "Squares Grid Parameters"
-msgstr "Parametri griglia quadrati"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169
-#: flatcamTools/ToolCopperThieving.py:263
-msgid "Square side size in Squares Grid."
-msgstr "Dimensione quadrati nella griglia."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182
-#: flatcamTools/ToolCopperThieving.py:276
-msgid "Distance between each two squares in Squares Grid."
-msgstr "Distanza fra ogni coppia di quadrati nella griglia."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192
-#: flatcamTools/ToolCopperThieving.py:297
-msgid "Lines Grid Parameters"
-msgstr "Parametri griglia lineei"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198
-#: flatcamTools/ToolCopperThieving.py:303
-msgid "Line thickness size in Lines Grid."
-msgstr "Spessore delle linee nella griglia."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211
-#: flatcamTools/ToolCopperThieving.py:316
-msgid "Distance between each two lines in Lines Grid."
-msgstr "Distanza fra ogni coppia di linee nella griglia."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221
-#: flatcamTools/ToolCopperThieving.py:354
-msgid "Robber Bar Parameters"
-msgstr "Parametri \"rapinatore\""
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223
-#: flatcamTools/ToolCopperThieving.py:356
-msgid ""
-"Parameters used for the robber bar.\n"
-"Robber bar = copper border to help in pattern hole plating."
-msgstr ""
-"Parametri usati per il \"rapinatore\".\n"
-"\"Rapinatore\" = bordo in rame che aiuta nella placatura dei fori."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231
-#: flatcamTools/ToolCopperThieving.py:364
-msgid "Bounding box margin for robber bar."
-msgstr "Margine contenitore \"rapinatore\"."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242
-#: flatcamTools/ToolCopperThieving.py:375
-msgid "Thickness"
-msgstr "Spessore"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244
-#: flatcamTools/ToolCopperThieving.py:377
-msgid "The robber bar thickness."
-msgstr "Lo spessore del \"rapinatore\"."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254
-#: flatcamTools/ToolCopperThieving.py:408
-msgid "Pattern Plating Mask"
-msgstr "Maschera di placatura"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256
-#: flatcamTools/ToolCopperThieving.py:410
-msgid "Generate a mask for pattern plating."
-msgstr "Genera una maschera per la placatura."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263
-#: flatcamTools/ToolCopperThieving.py:433
-msgid ""
-"The distance between the possible copper thieving elements\n"
-"and/or robber bar and the actual openings in the mask."
-msgstr ""
-"La distanza tra i possibili elementi del deposito di rame\n"
-"e/o barra del \"rapinatore\" e le aperture effettive nella maschera."
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:27
-msgid "Calibration Tool Options"
-msgstr "Opzioni strumento calibrazione"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:38
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:38
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38
-#: flatcamTools/ToolCopperThieving.py:91 flatcamTools/ToolFiducials.py:151
-msgid "Parameters used for this tool."
-msgstr "Parametri usati per questo strumento."
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:43
-#: flatcamTools/ToolCalibration.py:181
-msgid "Source Type"
-msgstr "Tipo sorgente"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:44
-#: flatcamTools/ToolCalibration.py:182
-msgid ""
-"The source of calibration points.\n"
-"It can be:\n"
-"- Object -> click a hole geo for Excellon or a pad for Gerber\n"
-"- Free -> click freely on canvas to acquire the calibration points"
-msgstr ""
-"La sorgente dei punti di calibrazione.\n"
-"Può essere:\n"
-"- Oggetto -> click una geometria foro per Excellon o un pad per Gerber\n"
-"- Libero -> click su un punto libero per acquisirne i punti di calibrazione"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:49
-#: flatcamTools/ToolCalibration.py:187
-msgid "Free"
-msgstr "Libero"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:63
-#: flatcamTools/ToolCalibration.py:76
-msgid "Height (Z) for travelling between the points."
-msgstr "Altezza (Z) per gli spostamenti fra due punti."
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:75
-#: flatcamTools/ToolCalibration.py:88
-msgid "Verification Z"
-msgstr "Z di verifica"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:77
-#: flatcamTools/ToolCalibration.py:90
-msgid "Height (Z) for checking the point."
-msgstr "Altezza (Z) per il controllo dei punti."
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:89
-#: flatcamTools/ToolCalibration.py:102
-msgid "Zero Z tool"
-msgstr "Strumento Zero Z"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:91
-#: flatcamTools/ToolCalibration.py:104
-msgid ""
-"Include a sequence to zero the height (Z)\n"
-"of the verification tool."
-msgstr ""
-"Include una sequenza per l'azzeramento dell'altezza (Z)\n"
-"dello strumento di verifica."
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:100
-#: flatcamTools/ToolCalibration.py:113
-msgid "Height (Z) for mounting the verification probe."
-msgstr "Altezza (Z) per montare il tastatore."
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:114
-#: flatcamTools/ToolCalibration.py:127
-msgid ""
-"Toolchange X,Y position.\n"
-"If no value is entered then the current\n"
-"(x, y) point will be used,"
-msgstr ""
-"Posizione X,Y cambio utensile.\n"
-"In mancanza di valori sarà usato\n"
-"l'attuale punto (x,y),"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:125
-#: flatcamTools/ToolCalibration.py:153
-msgid "Second point"
-msgstr "Secondo punto"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:127
-#: flatcamTools/ToolCalibration.py:155
-msgid ""
-"Second point in the Gcode verification can be:\n"
-"- top-left -> the user will align the PCB vertically\n"
-"- bottom-right -> the user will align the PCB horizontally"
-msgstr ""
-"Secondo punto nella verifica del GCode può essere:\n"
-"- alto-sinistra -> l'utente allineerà il PCB verticalmente\n"
-"- basso-destra -> l'utente allineerà il PCB orizzontalmente"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:27
-msgid "Extract Drills Options"
-msgstr "Estrai opzioni fori"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42
-#: flatcamTools/ToolExtractDrills.py:68 flatcamTools/ToolPunchGerber.py:75
-msgid "Processed Pads Type"
-msgstr "Tipo pad processati"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44
-#: flatcamTools/ToolExtractDrills.py:70 flatcamTools/ToolPunchGerber.py:77
-msgid ""
-"The type of pads shape to be processed.\n"
-"If the PCB has many SMD pads with rectangular pads,\n"
-"disable the Rectangular aperture."
-msgstr ""
-"Il tipo di forma dei pad da elaborare.\n"
-"Se il PCB ha molti pad SMD con pad rettangolari,\n"
-"disabilita l'apertura rettangolare."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54
-#: flatcamTools/ToolExtractDrills.py:80 flatcamTools/ToolPunchGerber.py:91
-msgid "Process Circular Pads."
-msgstr "Elabora pad circolarei."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:60
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164
-#: flatcamTools/ToolExtractDrills.py:86 flatcamTools/ToolExtractDrills.py:214
-#: flatcamTools/ToolPunchGerber.py:97 flatcamTools/ToolPunchGerber.py:242
-msgid "Oblong"
-msgstr "Oblungo"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62
-#: flatcamTools/ToolExtractDrills.py:88 flatcamTools/ToolPunchGerber.py:99
-msgid "Process Oblong Pads."
-msgstr "Elabora pad oblunghi."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70
-#: flatcamTools/ToolExtractDrills.py:96 flatcamTools/ToolPunchGerber.py:107
-msgid "Process Square Pads."
-msgstr "Elabora pad quadrati."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78
-#: flatcamTools/ToolExtractDrills.py:104 flatcamTools/ToolPunchGerber.py:115
-msgid "Process Rectangular Pads."
-msgstr "Elabora pad rettangolari."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:84
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203
-#: flatcamTools/ToolExtractDrills.py:110 flatcamTools/ToolExtractDrills.py:253
-#: flatcamTools/ToolProperties.py:172 flatcamTools/ToolPunchGerber.py:121
-#: flatcamTools/ToolPunchGerber.py:281
-msgid "Others"
-msgstr "Altri"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86
-#: flatcamTools/ToolExtractDrills.py:112 flatcamTools/ToolPunchGerber.py:123
-msgid "Process pads not in the categories above."
-msgstr "Elabora pad non appartenenti alle categoria sopra."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:99
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125
-#: flatcamTools/ToolExtractDrills.py:139 flatcamTools/ToolExtractDrills.py:156
-#: flatcamTools/ToolPunchGerber.py:150 flatcamTools/ToolPunchGerber.py:184
-msgid "Fixed Diameter"
-msgstr "Diametro fisso"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:100
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142
-#: flatcamTools/ToolExtractDrills.py:140 flatcamTools/ToolExtractDrills.py:192
-#: flatcamTools/ToolPunchGerber.py:151 flatcamTools/ToolPunchGerber.py:214
-msgid "Fixed Annular Ring"
-msgstr "Anello fisso"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102
-#: flatcamTools/ToolExtractDrills.py:141 flatcamTools/ToolPunchGerber.py:152
-msgid "Proportional"
-msgstr "Proporzionale"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107
-#: flatcamTools/ToolExtractDrills.py:130
-msgid ""
-"The method for processing pads. Can be:\n"
-"- Fixed Diameter -> all holes will have a set size\n"
-"- Fixed Annular Ring -> all holes will have a set annular ring\n"
-"- Proportional -> each hole size will be a fraction of the pad size"
-msgstr ""
-"Il metodo per l'elaborazione dei pad. Può essere:\n"
-"- Diametro fisso -> tutti i fori avranno una dimensione impostata\n"
-"- Anello fisso -> tutti i fori avranno un anello anulare impostato\n"
-"- Proporzionale -> ogni dimensione del foro sarà una frazione della "
-"dimensione del pad"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135
-#: flatcamTools/ToolExtractDrills.py:166 flatcamTools/ToolPunchGerber.py:194
-msgid "Fixed hole diameter."
-msgstr "Diametro foro fisso."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:142
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144
-#: flatcamTools/ToolExtractDrills.py:194 flatcamTools/ToolPunchGerber.py:216
-msgid ""
-"The size of annular ring.\n"
-"The copper sliver between the hole exterior\n"
-"and the margin of the copper pad."
-msgstr ""
-"La dimensione dell'anello.\n"
-"Il nastro di rame tra l'esterno del foro\n"
-"e il margine del pad di rame."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153
-#: flatcamTools/ToolExtractDrills.py:203 flatcamTools/ToolPunchGerber.py:231
-msgid "The size of annular ring for circular pads."
-msgstr "La dimensione dell'anello per pad circolari."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:164
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:166
-#: flatcamTools/ToolExtractDrills.py:216 flatcamTools/ToolPunchGerber.py:244
-msgid "The size of annular ring for oblong pads."
-msgstr "La dimensione dell'anello per pad oblunghi."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:177
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:179
-#: flatcamTools/ToolExtractDrills.py:229 flatcamTools/ToolPunchGerber.py:257
-msgid "The size of annular ring for square pads."
-msgstr "La dimensione dell'anello per pad quadrati."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:190
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:192
-#: flatcamTools/ToolExtractDrills.py:242 flatcamTools/ToolPunchGerber.py:270
-msgid "The size of annular ring for rectangular pads."
-msgstr "La dimensione dell'anello per pad rettangolari."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:203
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:205
-#: flatcamTools/ToolExtractDrills.py:255 flatcamTools/ToolPunchGerber.py:283
-msgid "The size of annular ring for other pads."
-msgstr "La dimensione dell'anello per gli altri pad."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:213
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:215
-#: flatcamTools/ToolExtractDrills.py:276 flatcamTools/ToolPunchGerber.py:299
-msgid "Proportional Diameter"
-msgstr "Diametro proporzionale"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:222
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:224
-msgid "Factor"
-msgstr "Fattore"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226
-#: flatcamTools/ToolExtractDrills.py:287 flatcamTools/ToolPunchGerber.py:310
-msgid ""
-"Proportional Diameter.\n"
-"The hole diameter will be a fraction of the pad size."
-msgstr ""
-"Diametro proporzionale.\n"
-"Il diametro del foro sarà una frazione della dimensione del pad."
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:27
-msgid "Fiducials Tool Options"
-msgstr "Opzioni strumento fiducial"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45
-#: flatcamTools/ToolFiducials.py:158
-msgid ""
-"This set the fiducial diameter if fiducial type is circular,\n"
-"otherwise is the size of the fiducial.\n"
-"The soldermask opening is double than that."
-msgstr ""
-"Imposta il diametro dei fiducial se il tipo di fiducial è circolare,\n"
-"altrimenti è la dimensione del fiducial.\n"
-"L'apertura del soldermask è il doppia."
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73
-#: flatcamTools/ToolFiducials.py:186
-msgid "Auto"
-msgstr "Auto"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74
-#: flatcamTools/ToolFiducials.py:187
-msgid "Manual"
-msgstr "Manuale"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76
-#: flatcamTools/ToolFiducials.py:189
-msgid "Mode:"
-msgstr "Modo:"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:78
-msgid ""
-"- 'Auto' - automatic placement of fiducials in the corners of the bounding "
-"box.\n"
-"- 'Manual' - manual placement of fiducials."
-msgstr ""
-"- 'Auto' - piazzamento automatico dei fiducials negli angoli del "
-"contenitore.\n"
-"- 'Manuale' - posizionamento manuale dei fiducial."
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86
-#: flatcamTools/ToolFiducials.py:199
-msgid "Up"
-msgstr "Su"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87
-#: flatcamTools/ToolFiducials.py:200
-msgid "Down"
-msgstr "Giù"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90
-#: flatcamTools/ToolFiducials.py:203
-msgid "Second fiducial"
-msgstr "Secondo fiducial"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92
-#: flatcamTools/ToolFiducials.py:205
-msgid ""
-"The position for the second fiducial.\n"
-"- 'Up' - the order is: bottom-left, top-left, top-right.\n"
-"- 'Down' - the order is: bottom-left, bottom-right, top-right.\n"
-"- 'None' - there is no second fiducial. The order is: bottom-left, top-right."
-msgstr ""
-"La posizione del secondo fiducial.\n"
-"- 'Su' - l'ordine è: basso-sinistra, alto-sinistra, alto-destra.\n"
-"- 'Giù' - l'ordine è: basso-sinistra, basso-destra, alto-destra.\n"
-"- 'Nessuno' - non c'è secondo fiducial. L'ordine è: basso-sinistra, alto-"
-"destra."
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108
-#: flatcamTools/ToolFiducials.py:221
-msgid "Cross"
-msgstr "Croce"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109
-#: flatcamTools/ToolFiducials.py:222
-msgid "Chess"
-msgstr "Schacchiera"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112
-#: flatcamTools/ToolFiducials.py:224
-msgid "Fiducial Type"
-msgstr "Tipo fiducial"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114
-#: flatcamTools/ToolFiducials.py:226
-msgid ""
-"The type of fiducial.\n"
-"- 'Circular' - this is the regular fiducial.\n"
-"- 'Cross' - cross lines fiducial.\n"
-"- 'Chess' - chess pattern fiducial."
-msgstr ""
-"Il tipo di fiducial.\n"
-"- 'Circolare' - fiducial standard.\n"
-"- 'Croce' - fiducial con due linee incrociate.\n"
-"- 'Scacchiera' - motivo a scacchiera."
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123
-#: flatcamTools/ToolFiducials.py:235
-msgid "Line thickness"
-msgstr "Spessore linea"
-
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:27
-msgid "Invert Gerber Tool Options"
-msgstr "Opzioni strumento inversione gerber"
-
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:33
-msgid ""
-"A tool to invert Gerber geometry from positive to negative\n"
-"and in revers."
-msgstr ""
-"Strumento per invertire geometrie gerber da positive a negative\n"
-"e viceversa."
-
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:47
-#: flatcamTools/ToolInvertGerber.py:90
-msgid ""
-"Distance by which to avoid\n"
-"the edges of the Gerber object."
-msgstr ""
-"Distanza alla quale evitare\n"
-"i bordi degli oggetti gerber."
-
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:58
-#: flatcamTools/ToolInvertGerber.py:101
-msgid "Lines Join Style"
-msgstr "Stile unione linee"
-
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:60
-#: flatcamTools/ToolInvertGerber.py:103
-msgid ""
-"The way that the lines in the object outline will be joined.\n"
-"Can be:\n"
-"- rounded -> an arc is added between two joining lines\n"
-"- square -> the lines meet in 90 degrees angle\n"
-"- bevel -> the lines are joined by a third line"
-msgstr ""
-"Il modo in cui le linee nel contorno dell'oggetto verranno unite.\n"
-"Può essere:\n"
-"- arrotondato -> viene aggiunto un arco tra due linee di giunzione\n"
-"- quadrato -> le linee si incontrano con un angolo di 90 gradi\n"
-"- smussato -> le linee sono unite da una terza linea"
-
-#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:27
-msgid "Optimal Tool Options"
-msgstr "Opzioni strumento ottimale"
-
-#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:33
-msgid ""
-"A tool to find the minimum distance between\n"
-"every two Gerber geometric elements"
-msgstr ""
-"Uno strumento per trovare la minima distanza fra\n"
-"ogni coppia di elementi geometrici Gerber"
-
-#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:48
-#: flatcamTools/ToolOptimal.py:78
-msgid "Precision"
-msgstr "Precisione"
-
-#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:50
-msgid "Number of decimals for the distances and coordinates in this tool."
-msgstr ""
-"Numero di decimali per le distanze e le coordinate in questo strumento."
-
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:27
-msgid "Punch Gerber Options"
-msgstr "Opzioni punzone gerber"
-
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:108
-#: flatcamTools/ToolPunchGerber.py:141
-msgid ""
-"The punch hole source can be:\n"
-"- Excellon Object-> the Excellon object drills center will serve as "
-"reference.\n"
-"- Fixed Diameter -> will try to use the pads center as reference adding "
-"fixed diameter holes.\n"
-"- Fixed Annular Ring -> will try to keep a set annular ring.\n"
-"- Proportional -> will make a Gerber punch hole having the diameter a "
-"percentage of the pad diameter."
-msgstr ""
-"La fonte del foro di punzonatura può essere:\n"
-"- Oggetto Excellon-> il centro dei fori dell'oggetto Excellon fungerà da "
-"riferimento.\n"
-"- Diametro fisso -> proverà a utilizzare il centro dei pad come riferimento "
-"aggiungendo fori a diametro fisso.\n"
-"- Fisso anello anulare -> proverà a mantenere un anello impostato.\n"
-"- Proporzionale -> eseguirà un foro di punzonatura Gerber avente il diametro "
-"pari ad una percentuale del diametro del pad."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:27
-msgid "QRCode Tool Options"
-msgstr "Opzioni strumento QRCode"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:33
-msgid ""
-"A tool to create a QRCode that can be inserted\n"
-"into a selected Gerber file, or it can be exported as a file."
-msgstr ""
-"Uno strumento per creare QRCode da inserire\n"
-"in un file Gerber selezionato o esportato su file."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45
-#: flatcamTools/ToolQRCode.py:100
-msgid "Version"
-msgstr "Versione"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47
-#: flatcamTools/ToolQRCode.py:102
-msgid ""
-"QRCode version can have values from 1 (21x21 boxes)\n"
-"to 40 (177x177 boxes)."
-msgstr ""
-"La versione del QRCode può avere valori da 1 (21x21 punti)\n"
-"a 40 (177x177 punti)."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58
-#: flatcamTools/ToolQRCode.py:113
-msgid "Error correction"
-msgstr "Correzione errore"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71
-#: flatcamTools/ToolQRCode.py:115 flatcamTools/ToolQRCode.py:126
-#, python-format
-msgid ""
-"Parameter that controls the error correction used for the QR Code.\n"
-"L = maximum 7%% errors can be corrected\n"
-"M = maximum 15%% errors can be corrected\n"
-"Q = maximum 25%% errors can be corrected\n"
-"H = maximum 30%% errors can be corrected."
-msgstr ""
-"Parametro che controlla la correzione errore usata per i QR Code.\n"
-"L = possono essere corretti errori al massimo del 7%%\n"
-"M = possono essere corretti errori al massimo del 15%%\n"
-"Q = possono essere corretti errori al massimo del 25%%\n"
-"H = possono essere corretti errori al massimo del 30%%."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81
-#: flatcamTools/ToolQRCode.py:136
-msgid "Box Size"
-msgstr "Dimensione contenitore"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83
-#: flatcamTools/ToolQRCode.py:138
-msgid ""
-"Box size control the overall size of the QRcode\n"
-"by adjusting the size of each box in the code."
-msgstr ""
-"La dimensione del box controlla la dimensione totale del QRcode\n"
-"controllando la dimensione dei singoli punti nel codice."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94
-#: flatcamTools/ToolQRCode.py:149
-msgid "Border Size"
-msgstr "Dimensione bordi"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96
-#: flatcamTools/ToolQRCode.py:151
-msgid ""
-"Size of the QRCode border. How many boxes thick is the border.\n"
-"Default value is 4. The width of the clearance around the QRCode."
-msgstr ""
-"Dimensione del bordo del QRCode. Quanto spesso sarà il bordo.\n"
-"Valore di default è 4. La larghezza della distanza attorno al QRCode."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107
-#: flatcamTools/ToolQRCode.py:162
-msgid "QRCode Data"
-msgstr "Dati QRCode"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109
-#: flatcamTools/ToolQRCode.py:164
-msgid "QRCode Data. Alphanumeric text to be encoded in the QRCode."
-msgstr "Dati QRCode. Testo alfanumerico da codificare nel QRCode."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:113
-#: flatcamTools/ToolQRCode.py:168
-msgid "Add here the text to be included in the QRCode..."
-msgstr "Inserisci qui il testo da includere nel QRCode..."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:119
-#: flatcamTools/ToolQRCode.py:174
-msgid "Polarity"
-msgstr "Polarità"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121
-#: flatcamTools/ToolQRCode.py:176
-msgid ""
-"Choose the polarity of the QRCode.\n"
-"It can be drawn in a negative way (squares are clear)\n"
-"or in a positive way (squares are opaque)."
-msgstr ""
-"Scegli la polarità del QRCode.\n"
-"Può essere disegnato in modo negativo (i quadrati sono chiari)\n"
-"o in modo positivo (i quadrati sono scuri)."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125
-#: flatcamTools/ToolFilm.py:296 flatcamTools/ToolQRCode.py:180
-msgid "Negative"
-msgstr "Negativa"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126
-#: flatcamTools/ToolFilm.py:295 flatcamTools/ToolQRCode.py:181
-msgid "Positive"
-msgstr "Positiva"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128
-#: flatcamTools/ToolQRCode.py:183
-msgid ""
-"Choose the type of QRCode to be created.\n"
-"If added on a Silkscreen Gerber file the QRCode may\n"
-"be added as positive. If it is added to a Copper Gerber\n"
-"file then perhaps the QRCode can be added as negative."
-msgstr ""
-"Scegli il tipo di QRCode da creare.\n"
-"Se aggiunto su un file Gerber Silkscreen, il QRCode può\n"
-"essere aggiunto come positivo. Se viene aggiunto a un file Gerber\n"
-"del rame forse il QRCode può essere aggiunto come negativo."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145
-#: flatcamTools/ToolQRCode.py:194 flatcamTools/ToolQRCode.py:200
-msgid ""
-"The bounding box, meaning the empty space that surrounds\n"
-"the QRCode geometry, can have a rounded or a square shape."
-msgstr ""
-"Il rettangolo di selezione, ovvero lo spazio vuoto che circonda\n"
-"la geometria QRCode, può avere una forma arrotondata o quadrata."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:239
-#: flatcamTools/ToolQRCode.py:197 flatcamTools/ToolTransform.py:383
-msgid "Rounded"
-msgstr "Arrotondato"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152
-#: flatcamTools/ToolQRCode.py:228
-msgid "Fill Color"
-msgstr "Colore riempimento"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154
-#: flatcamTools/ToolQRCode.py:230
-msgid "Set the QRCode fill color (squares color)."
-msgstr "Imposta il colore di riempimento del QRCode (colore dei punti)."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:173
-#: flatcamTools/ToolQRCode.py:252
-msgid "Back Color"
-msgstr "Colore sfondo"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:175
-#: flatcamTools/ToolQRCode.py:254
-msgid "Set the QRCode background color."
-msgstr "Imposta il colore dello sfondo del QRCode."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:27
-msgid "Check Rules Tool Options"
-msgstr "Opzione strumento controllo regole"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:32
-msgid ""
-"A tool to check if Gerber files are within a set\n"
-"of Manufacturing Rules."
-msgstr ""
-"Uno strumento che verifica che i file Gerber rispettino\n"
-"una serie di set di parametri del produttore."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:42
-#: flatcamTools/ToolRulesCheck.py:265 flatcamTools/ToolRulesCheck.py:929
-msgid "Trace Size"
-msgstr "Dimensione traccia"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:44
-#: flatcamTools/ToolRulesCheck.py:267
-msgid "This checks if the minimum size for traces is met."
-msgstr "Verifica se la dimensione minima della traccia è rispettata."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:54
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:74
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:94
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:114
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:134
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:154
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:174
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:194
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:216
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:236
-#: flatcamTools/ToolRulesCheck.py:277 flatcamTools/ToolRulesCheck.py:299
-#: flatcamTools/ToolRulesCheck.py:322 flatcamTools/ToolRulesCheck.py:345
-#: flatcamTools/ToolRulesCheck.py:368 flatcamTools/ToolRulesCheck.py:391
-#: flatcamTools/ToolRulesCheck.py:414 flatcamTools/ToolRulesCheck.py:437
-#: flatcamTools/ToolRulesCheck.py:462 flatcamTools/ToolRulesCheck.py:485
-msgid "Min value"
-msgstr "Valore minimo"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:56
-#: flatcamTools/ToolRulesCheck.py:279
-msgid "Minimum acceptable trace size."
-msgstr "Dimensione minima accettata delle tracce."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:61
-#: flatcamTools/ToolRulesCheck.py:286 flatcamTools/ToolRulesCheck.py:1157
-#: flatcamTools/ToolRulesCheck.py:1187
-msgid "Copper to Copper clearance"
-msgstr "Spaziatura rame-rame"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:63
-#: flatcamTools/ToolRulesCheck.py:288
-msgid ""
-"This checks if the minimum clearance between copper\n"
-"features is met."
-msgstr ""
-"Verifica se la spaziatura minima da rame a rame\n"
-"è rispettata."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:76
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:96
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:116
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:136
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:156
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:176
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:238
-#: flatcamTools/ToolRulesCheck.py:301 flatcamTools/ToolRulesCheck.py:324
-#: flatcamTools/ToolRulesCheck.py:347 flatcamTools/ToolRulesCheck.py:370
-#: flatcamTools/ToolRulesCheck.py:393 flatcamTools/ToolRulesCheck.py:416
-#: flatcamTools/ToolRulesCheck.py:464
-msgid "Minimum acceptable clearance value."
-msgstr "Valore minimo di distanza accettata."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:81
-#: flatcamTools/ToolRulesCheck.py:309 flatcamTools/ToolRulesCheck.py:1217
-#: flatcamTools/ToolRulesCheck.py:1223 flatcamTools/ToolRulesCheck.py:1236
-#: flatcamTools/ToolRulesCheck.py:1243
-msgid "Copper to Outline clearance"
-msgstr "Distanza rame-bordo"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:83
-#: flatcamTools/ToolRulesCheck.py:311
-msgid ""
-"This checks if the minimum clearance between copper\n"
-"features and the outline is met."
-msgstr ""
-"Verifica se la spaziatura minima da rame a bordo\n"
-"è rispettata."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:101
-#: flatcamTools/ToolRulesCheck.py:332
-msgid "Silk to Silk Clearance"
-msgstr "Distanza serigrafie"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:103
-#: flatcamTools/ToolRulesCheck.py:334
-msgid ""
-"This checks if the minimum clearance between silkscreen\n"
-"features and silkscreen features is met."
-msgstr ""
-"Verifica se la spaziatura minima tra serigrafie\n"
-"è rispettata."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:121
-#: flatcamTools/ToolRulesCheck.py:355 flatcamTools/ToolRulesCheck.py:1326
-#: flatcamTools/ToolRulesCheck.py:1332 flatcamTools/ToolRulesCheck.py:1350
-msgid "Silk to Solder Mask Clearance"
-msgstr "Distanza serigrafia-solder"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:123
-#: flatcamTools/ToolRulesCheck.py:357
-msgid ""
-"This checks if the minimum clearance between silkscreen\n"
-"features and soldermask features is met."
-msgstr ""
-"Verifica se la spaziatura minima da serigrafie\n"
-"e solder è rispettata."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:141
-#: flatcamTools/ToolRulesCheck.py:378 flatcamTools/ToolRulesCheck.py:1380
-#: flatcamTools/ToolRulesCheck.py:1386 flatcamTools/ToolRulesCheck.py:1400
-#: flatcamTools/ToolRulesCheck.py:1407
-msgid "Silk to Outline Clearance"
-msgstr "Distanza serigrafia-bordo"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:143
-#: flatcamTools/ToolRulesCheck.py:380
-msgid ""
-"This checks if the minimum clearance between silk\n"
-"features and the outline is met."
-msgstr ""
-"Verifica se la spaziatura minima tra serigrafie\n"
-"e bordo è rispettata."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:161
-#: flatcamTools/ToolRulesCheck.py:401 flatcamTools/ToolRulesCheck.py:1418
-#: flatcamTools/ToolRulesCheck.py:1445
-msgid "Minimum Solder Mask Sliver"
-msgstr "Distanza solder mask"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:163
-#: flatcamTools/ToolRulesCheck.py:403
-msgid ""
-"This checks if the minimum clearance between soldermask\n"
-"features and soldermask features is met."
-msgstr ""
-"Verifica se la spaziatura minima tra vari solder mask\n"
-"è rispettata."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:181
-#: flatcamTools/ToolRulesCheck.py:424 flatcamTools/ToolRulesCheck.py:1483
-#: flatcamTools/ToolRulesCheck.py:1489 flatcamTools/ToolRulesCheck.py:1505
-#: flatcamTools/ToolRulesCheck.py:1512
-msgid "Minimum Annular Ring"
-msgstr "Anello minimo"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:183
-#: flatcamTools/ToolRulesCheck.py:426
-msgid ""
-"This checks if the minimum copper ring left by drilling\n"
-"a hole into a pad is met."
-msgstr ""
-"Verifica se l'anello minimo di rame rimasto dopo la foratura\n"
-"è rispettato."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:196
-#: flatcamTools/ToolRulesCheck.py:439
-msgid "Minimum acceptable ring value."
-msgstr "Valore minimo anello."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:203
-#: flatcamTools/ToolRulesCheck.py:449 flatcamTools/ToolRulesCheck.py:873
-msgid "Hole to Hole Clearance"
-msgstr "Distanza foro-foro"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:205
-#: flatcamTools/ToolRulesCheck.py:451
-msgid ""
-"This checks if the minimum clearance between a drill hole\n"
-"and another drill hole is met."
-msgstr ""
-"Verifica se la spaziatura minima tra fori\n"
-"è rispettata."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:218
-#: flatcamTools/ToolRulesCheck.py:487
-msgid "Minimum acceptable drill size."
-msgstr "Misura minima foro."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:223
-#: flatcamTools/ToolRulesCheck.py:472 flatcamTools/ToolRulesCheck.py:847
-msgid "Hole Size"
-msgstr "Dimensione foro"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:225
-#: flatcamTools/ToolRulesCheck.py:474
-msgid ""
-"This checks if the drill holes\n"
-"sizes are above the threshold."
-msgstr ""
-"Controlla se la dimensione dei fori\n"
-"sono sopra la soglia."
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:27
-msgid "2Sided Tool Options"
-msgstr "Opzioni strumento doppia faccia"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:33
-msgid ""
-"A tool to help in creating a double sided\n"
-"PCB using alignment holes."
-msgstr ""
-"Uno strumento per aiutare la creazione di un PCB\n"
-"doppio faccia mediante fori di allineamento."
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:47
-msgid "Drill dia"
-msgstr "Diametro fori"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49
-#: flatcamTools/ToolDblSided.py:363 flatcamTools/ToolDblSided.py:368
-msgid "Diameter of the drill for the alignment holes."
-msgstr "Diametro per i fori di allineamento."
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:56
-#: flatcamTools/ToolDblSided.py:377
-msgid "Align Axis"
-msgstr "Allinea all'asse"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71
-#: flatcamTools/ToolDblSided.py:165 flatcamTools/ToolDblSided.py:379
-msgid "Mirror vertically (X) or horizontally (Y)."
-msgstr "Specchia verticale (X) o orizzontale (Y)."
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:69
-msgid "Mirror Axis:"
-msgstr "Asse di specchio:"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:80
-#: flatcamTools/ToolDblSided.py:181
-msgid "Point"
-msgstr "Punto"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:81
-#: flatcamTools/ToolDblSided.py:182
-msgid "Box"
-msgstr "Contenitore"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:82
-msgid "Axis Ref"
-msgstr "Asse di riferimento"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:84
-msgid ""
-"The axis should pass through a point or cut\n"
-" a specified box (in a FlatCAM object) through \n"
-"the center."
-msgstr ""
-"L'asse dovrebbe passare attraverso un punto o tagliare\n"
-" una casella specifica (in un oggetto FlatCAM) attraverso\n"
-"il centro."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:27
-msgid "Calculators Tool Options"
-msgstr "Opzioni calcolatrici"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31
-#: flatcamTools/ToolCalculators.py:25
-msgid "V-Shape Tool Calculator"
-msgstr "Calcolatrice utensile a V"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:33
-msgid ""
-"Calculate the tool diameter for a given V-shape tool,\n"
-"having the tip diameter, tip angle and\n"
-"depth-of-cut as parameters."
-msgstr ""
-"Calcola il diametro dell'utensile per un dato utensile a V,\n"
-"conoscendo come parametri il diametro della punta,\n"
-"angolo e profondità di taglio."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50
-#: flatcamTools/ToolCalculators.py:94
-msgid "Tip Diameter"
-msgstr "Diametro punta"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52
-#: flatcamTools/ToolCalculators.py:102
-msgid ""
-"This is the tool tip diameter.\n"
-"It is specified by manufacturer."
-msgstr ""
-"Diametro della punta.\n"
-"Viene specificato dal produttore."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64
-#: flatcamTools/ToolCalculators.py:105
-msgid "Tip Angle"
-msgstr "Angolo punta"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:66
-msgid ""
-"This is the angle on the tip of the tool.\n"
-"It is specified by manufacturer."
-msgstr ""
-"E' l'angolo alla punta dell'utensile.\n"
-"E' specificato dal produttore."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:80
-msgid ""
-"This is depth to cut into material.\n"
-"In the CNCJob object it is the CutZ parameter."
-msgstr ""
-"Questa è la profondità a cui tagliare il materiale.\n"
-"Nell'oggetto CNCJob è il parametro CutZ."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87
-#: flatcamTools/ToolCalculators.py:27
-msgid "ElectroPlating Calculator"
-msgstr "Calcolatore Galvanotecnica"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89
-#: flatcamTools/ToolCalculators.py:158
-msgid ""
-"This calculator is useful for those who plate the via/pad/drill holes,\n"
-"using a method like graphite ink or calcium hypophosphite ink or palladium "
-"chloride."
-msgstr ""
-"Questo calcolatore è utile per chi metallizza i fori di via/pad,\n"
-"usando un metodo come inchiostro di grafite o inchiostro di ipofosfito di "
-"calcio o cloruro di palladio."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:100
-#: flatcamTools/ToolCalculators.py:167
-msgid "Board Length"
-msgstr "Lunghezza scheda"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102
-#: flatcamTools/ToolCalculators.py:173
-msgid "This is the board length. In centimeters."
-msgstr "E' la lunghezza della scheda. In centimetri."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112
-#: flatcamTools/ToolCalculators.py:175
-msgid "Board Width"
-msgstr "Larghezza scheda"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114
-#: flatcamTools/ToolCalculators.py:181
-msgid "This is the board width.In centimeters."
-msgstr "E' la larghezza della scheda. In centimetri."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119
-#: flatcamTools/ToolCalculators.py:183
-msgid "Current Density"
-msgstr "Densità di corrente"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125
-#: flatcamTools/ToolCalculators.py:190
-msgid ""
-"Current density to pass through the board. \n"
-"In Amps per Square Feet ASF."
-msgstr ""
-"Densità di corrente da far passare nella scheda. In Ampere per "
-"rad_quadrata(ASF)."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:131
-#: flatcamTools/ToolCalculators.py:193
-msgid "Copper Growth"
-msgstr "Crescita rame"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137
-#: flatcamTools/ToolCalculators.py:200
-msgid ""
-"How thick the copper growth is intended to be.\n"
-"In microns."
-msgstr ""
-"Quanto deve accrescere il rame.\n"
-"In microns."
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:28
-msgid "Cutout Tool Options"
-msgstr "Opzioni strumento ritaglio"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43
-#: flatcamTools/ToolCalculators.py:123 flatcamTools/ToolCutOut.py:129
-msgid "Tool Diameter"
-msgstr "Diametro utensile"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45
-#: flatcamTools/ToolCutOut.py:131
-msgid ""
-"Diameter of the tool used to cutout\n"
-"the PCB shape out of the surrounding material."
-msgstr ""
-"Diametro dello strumento utilizzato per il ritaglio\n"
-"della forma del PCB dal materiale circostante."
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:100
-msgid "Object kind"
-msgstr "Tipo oggetto"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102
-#: flatcamTools/ToolCutOut.py:77
-msgid ""
-"Choice of what kind the object we want to cutout is.
- Single: "
-"contain a single PCB Gerber outline object.
- Panel: a panel PCB "
-"Gerber object, which is made\n"
-"out of many individual PCB outlines."
-msgstr ""
-"Scelta del tipo di oggetto da ritagliare.
- Singolo: contiene un "
-"solo oggetto bordo Gerber PCB.
- Pannleol: un oggetto pannello "
-"Gerber PCB, realizzato\n"
-"ta tanti bordi singoli di PCB."
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109
-#: flatcamTools/ToolCutOut.py:83
-msgid "Single"
-msgstr "Singolo"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110
-#: flatcamTools/ToolCutOut.py:84
-msgid "Panel"
-msgstr "Pannello"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117
-#: flatcamTools/ToolCutOut.py:192
-msgid ""
-"Margin over bounds. A positive value here\n"
-"will make the cutout of the PCB further from\n"
-"the actual PCB border"
-msgstr ""
-"Margine oltre i limiti. Un valore positivo qui\n"
-"renderà il ritaglio del PCB più lontano dal\n"
-"bordo effettivo del PCB"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:130
-#: flatcamTools/ToolCutOut.py:203
-msgid "Gap size"
-msgstr "Dimensione ponticello"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:132
-#: flatcamTools/ToolCutOut.py:205
-msgid ""
-"The size of the bridge gaps in the cutout\n"
-"used to keep the board connected to\n"
-"the surrounding material (the one \n"
-"from which the PCB is cutout)."
-msgstr ""
-"Dimensione dei gap ponticello nel ritaglio\n"
-"usati per tenere la scheda connessa al\n"
-"materiale circostante (quello dal quale\n"
-"si sta rimuovendo il PCB)."
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:146
-#: flatcamTools/ToolCutOut.py:245
-msgid "Gaps"
-msgstr "Ponticelli"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:148
-msgid ""
-"Number of gaps used for the cutout.\n"
-"There can be maximum 8 bridges/gaps.\n"
-"The choices are:\n"
-"- None - no gaps\n"
-"- lr - left + right\n"
-"- tb - top + bottom\n"
-"- 4 - left + right +top + bottom\n"
-"- 2lr - 2*left + 2*right\n"
-"- 2tb - 2*top + 2*bottom\n"
-"- 8 - 2*left + 2*right +2*top + 2*bottom"
-msgstr ""
-"Numero di ponticelli usati nel ritaglio\n"
-"Possono essere al massimo 8.\n"
-"Le scelte sono:\n"
-"- Nessuno - nessun ponticello\n"
-"- SD - sinistra + destra\n"
-"- SS - sopra + sotto\n"
-"- 4 - sinistra + destra + sopra + sotto\n"
-"- 2SD - 2*sinistra + 2*destra\n"
-"- 2SS - 2*sopra + 2*sotto\n"
-"- 8 - 2*sinistra + 2*destra +2*sopra + 2*sotto"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:170
-#: flatcamTools/ToolCutOut.py:222
-msgid "Convex Shape"
-msgstr "Forma convessa"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:172
-#: flatcamTools/ToolCutOut.py:225
-msgid ""
-"Create a convex shape surrounding the entire PCB.\n"
-"Used only if the source object type is Gerber."
-msgstr ""
-"Crea una forma convessa che circonda l'intero PCB.\n"
-"Utilizzato solo se il tipo di oggetto di origine è Gerber."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:27
-msgid "Film Tool Options"
-msgstr "Opzioni strumento Film"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:33
-msgid ""
-"Create a PCB film from a Gerber or Geometry\n"
-"FlatCAM object.\n"
-"The file is saved in SVG format."
-msgstr ""
-"Create a un film PCB da un oggetto Gerber o\n"
-"Geometria FlatCAM.\n"
-"Il file è salvato in formato SVG."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:44
-msgid "Film Type"
-msgstr "Tipo Film"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:46
-#: flatcamTools/ToolFilm.py:300
-msgid ""
-"Generate a Positive black film or a Negative film.\n"
-"Positive means that it will print the features\n"
-"with black on a white canvas.\n"
-"Negative means that it will print the features\n"
-"with white on a black canvas.\n"
-"The Film format is SVG."
-msgstr ""
-"Genera un film nero positivo o negativo.\n"
-"Positivo significa che stamperà le funzionalità\n"
-"con il nero su una tela bianca.\n"
-"Negativo significa che stamperà le funzionalità\n"
-"con il bianco su una tela nera.\n"
-"Il formato del film è SVG."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:57
-msgid "Film Color"
-msgstr "Colore Film"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:59
-msgid "Set the film color when positive film is selected."
-msgstr "Imposta il colore del film se è selezionato film positivo."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:82
-#: flatcamTools/ToolFilm.py:316
-msgid "Border"
-msgstr "Bordo"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:84
-#: flatcamTools/ToolFilm.py:318
-msgid ""
-"Specify a border around the object.\n"
-"Only for negative film.\n"
-"It helps if we use as a Box Object the same \n"
-"object as in Film Object. It will create a thick\n"
-"black bar around the actual print allowing for a\n"
-"better delimitation of the outline features which are of\n"
-"white color like the rest and which may confound with the\n"
-"surroundings if not for this border."
-msgstr ""
-"Specifica un bordo attorno all'oggetto.\n"
-"Solo per film negativo.\n"
-"Aiuta se usiamo come Oggetto contenitore lo stesso\n"
-"oggetto in Oggetto film. Creerà una barra nera attorno\n"
-"alla stampa attuale consentendo una migliore delimitazione\n"
-"del contorno di colore bianco e che può confondere con\n"
-"le aree circostanti in assenza del bordo stesso."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:101
-#: flatcamTools/ToolFilm.py:283
-msgid "Scale Stroke"
-msgstr "Scala tratto"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:103
-#: flatcamTools/ToolFilm.py:285
-msgid ""
-"Scale the line stroke thickness of each feature in the SVG file.\n"
-"It means that the line that envelope each SVG feature will be thicker or "
-"thinner,\n"
-"therefore the fine features may be more affected by this parameter."
-msgstr ""
-"Ridimensiona lo spessore del tratto delle linee di ciascuna funzione nel "
-"file SVG.\n"
-"Significa che la linea che avvolge ciascuna funzione SVG sarà più spessa o "
-"più sottile,\n"
-"pertanto le caratteristiche fini potrebbero essere maggiormente influenzate "
-"da questo parametro."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:110
-#: flatcamTools/ToolFilm.py:141
-msgid "Film Adjustments"
-msgstr "Sistemazione film"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:112
-#: flatcamTools/ToolFilm.py:143
-msgid ""
-"Sometime the printers will distort the print shape, especially the Laser "
-"types.\n"
-"This section provide the tools to compensate for the print distortions."
-msgstr ""
-"A volte le stampanti distorcono la forma di stampa, in particolare le "
-"Laser.\n"
-"Questa sezione fornisce gli strumenti per compensare le distorsioni di "
-"stampa."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:119
-#: flatcamTools/ToolFilm.py:150
-msgid "Scale Film geometry"
-msgstr "Scala geometrie Film"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:121
-#: flatcamTools/ToolFilm.py:152
-msgid ""
-"A value greater than 1 will stretch the film\n"
-"while a value less than 1 will jolt it."
-msgstr ""
-"Un valore maggiore di 1 allungherà il film\n"
-"mentre un valore inferiore a 1 lo accorcerà."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:131
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:103
-#: flatcamTools/ToolFilm.py:162 flatcamTools/ToolTransform.py:148
-msgid "X factor"
-msgstr "Fattore X"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:140
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:116
-#: flatcamTools/ToolFilm.py:171 flatcamTools/ToolTransform.py:168
-msgid "Y factor"
-msgstr "Fattore Y"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:150
-#: flatcamTools/ToolFilm.py:189
-msgid "Skew Film geometry"
-msgstr "Inclinazione geometria film"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:152
-#: flatcamTools/ToolFilm.py:191
-msgid ""
-"Positive values will skew to the right\n"
-"while negative values will skew to the left."
-msgstr ""
-"I valori positivi inclinano verso destra\n"
-"mentre i valori negativi inclinano a sinistra."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:162
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:72
-#: flatcamTools/ToolFilm.py:201 flatcamTools/ToolTransform.py:97
-msgid "X angle"
-msgstr "Angolo X"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:171
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:86
-#: flatcamTools/ToolFilm.py:210 flatcamTools/ToolTransform.py:118
-msgid "Y angle"
-msgstr "Angolo Y"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:182
-#: flatcamTools/ToolFilm.py:221
-msgid ""
-"The reference point to be used as origin for the skew.\n"
-"It can be one of the four points of the geometry bounding box."
-msgstr ""
-"Il punto di riferimento da utilizzare come origine per l'inclinazione.\n"
-"Può essere uno dei quattro punti del riquadro di delimitazione della "
-"geometria."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:185
-#: flatcamTools/ToolFiducials.py:87 flatcamTools/ToolFilm.py:224
-msgid "Bottom Left"
-msgstr "Basso Sinistra"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:186
-#: flatcamTools/ToolFilm.py:225
-msgid "Top Left"
-msgstr "Alto Destra"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:187
-#: flatcamTools/ToolFilm.py:226
-msgid "Bottom Right"
-msgstr "Basso Destra"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:188
-#: flatcamTools/ToolFilm.py:227
-msgid "Top right"
-msgstr "Alto Destra"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196
-#: flatcamTools/ToolFilm.py:244
-msgid "Mirror Film geometry"
-msgstr "Specchia geometria film"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:198
-#: flatcamTools/ToolFilm.py:246
-msgid "Mirror the film geometry on the selected axis or on both."
-msgstr "Specchia la geometria film sull'asse selezionato o su entrambi."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:212
-#: flatcamTools/ToolFilm.py:260
-msgid "Mirror axis"
-msgstr "Asse simmetria"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:222
-#: flatcamTools/ToolFilm.py:405
-msgid "SVG"
-msgstr "SVG"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:223
-#: flatcamTools/ToolFilm.py:406
-msgid "PNG"
-msgstr "PNG"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:224
-#: flatcamTools/ToolFilm.py:407
-msgid "PDF"
-msgstr "PDF"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:227
-#: flatcamTools/ToolFilm.py:298 flatcamTools/ToolFilm.py:410
-msgid "Film Type:"
-msgstr "Tipo film:"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:229
-#: flatcamTools/ToolFilm.py:412
-msgid ""
-"The file type of the saved film. Can be:\n"
-"- 'SVG' -> open-source vectorial format\n"
-"- 'PNG' -> raster image\n"
-"- 'PDF' -> portable document format"
-msgstr ""
-"Il tipo di file per il film salvato. Può essere:\n"
-"- 'SVG' -> formato vettoriale open-source\n"
-"- 'PNG' -> immagine raster \n"
-"- 'PDF' -> Portable Document Format"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:238
-#: flatcamTools/ToolFilm.py:421
-msgid "Page Orientation"
-msgstr "Orientamento pagina"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:251
-#: flatcamTools/ToolFilm.py:434
-msgid "Page Size"
-msgstr "Dimensiona pagina"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:252
-#: flatcamTools/ToolFilm.py:435
-msgid "A selection of standard ISO 216 page sizes."
-msgstr "Una selezione di pagine standard secondo ISO 216."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:27
-msgid "NCC Tool Options"
-msgstr "Opzioni strumento NCC"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:49
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:57
-msgid "Comma separated values"
-msgstr "Valori separati da virgola"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:55
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:63
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:64
-#: flatcamTools/ToolNCC.py:215 flatcamTools/ToolNCC.py:223
-#: flatcamTools/ToolPaint.py:198 flatcamTools/ToolPaint.py:206
-msgid ""
-"Default tool type:\n"
-"- 'V-shape'\n"
-"- Circular"
-msgstr ""
-"Forma di default dell'Utensile:\n"
-"- 'a V'\n"
-"- Circolare"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:60
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:69
-#: flatcamTools/ToolNCC.py:220 flatcamTools/ToolPaint.py:203
-msgid "V-shape"
-msgstr "A V"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:100
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:109
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:107
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:116
-#: flatcamTools/ToolNCC.py:262 flatcamTools/ToolNCC.py:271
-#: flatcamTools/ToolPaint.py:245 flatcamTools/ToolPaint.py:254
-msgid ""
-"Depth of cut into material. Negative value.\n"
-"In FlatCAM units."
-msgstr ""
-"Profondità di taglio nel materiale. Valori negativi.\n"
-"In unità FlatCAM."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:119
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:125
-#: flatcamTools/ToolNCC.py:280 flatcamTools/ToolPaint.py:263
-msgid ""
-"Diameter for the new tool to add in the Tool Table.\n"
-"If the tool is V-shape type then this value is automatically\n"
-"calculated from the other parameters."
-msgstr ""
-"Diametro per il nuovo utensile da aggiungere nella tabella degli utensili.\n"
-"Se lo strumento è di tipo a V, questo valore è automaticamente\n"
-"calcolato dagli altri parametri."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:156
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:142
-#: flatcamTools/ToolNCC.py:174 flatcamTools/ToolPaint.py:158
-msgid "Tool order"
-msgstr "Ordine utensili"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:157
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:167
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:143
-#: flatcamTools/ToolNCC.py:175 flatcamTools/ToolNCC.py:185
-#: flatcamTools/ToolPaint.py:159 flatcamTools/ToolPaint.py:169
-msgid ""
-"This set the way that the tools in the tools table are used.\n"
-"'No' --> means that the used order is the one in the tool table\n"
-"'Forward' --> means that the tools will be ordered from small to big\n"
-"'Reverse' --> means that the tools will ordered from big to small\n"
-"\n"
-"WARNING: using rest machining will automatically set the order\n"
-"in reverse and disable this control."
-msgstr ""
-"Questo imposta il modo in cui vengono utilizzati gli strumenti nella tabella "
-"degli strumenti.\n"
-"'No' -> significa che l'ordine utilizzato è quello nella tabella degli "
-"strumenti\n"
-"'Avanti' -> significa che gli strumenti verranno ordinati da piccoli a "
-"grandi\n"
-"'Reverse' -> significa che gli strumenti ordineranno da grandi a piccoli\n"
-"\n"
-"ATTENZIONE: l'utilizzo della lavorazione di ripresa imposterà "
-"automaticamente l'ordine\n"
-"al contrario e disabiliterà questo controllo."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:165
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:151
-#: flatcamTools/ToolNCC.py:183 flatcamTools/ToolPaint.py:167
-msgid "Forward"
-msgstr "Avanti"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:166
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:152
-#: flatcamTools/ToolNCC.py:184 flatcamTools/ToolPaint.py:168
-msgid "Reverse"
-msgstr "Indietro"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:266
-msgid "Offset value"
-msgstr "Valore offset"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:268
-msgid ""
-"If used, it will add an offset to the copper features.\n"
-"The copper clearing will finish to a distance\n"
-"from the copper features.\n"
-"The value can be between 0.0 and 9999.9 FlatCAM units."
-msgstr ""
-"Se utilizzato, aggiungerà un offset alle lavorazioni del rame.\n"
-"La rimozione del rame finirà ad una data distanza dalle\n"
-"lavorazioni di rame.\n"
-"Il valore può essere compreso tra 0,0 e 9999,9 unità FlatCAM."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:288
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:244
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:245
-#: flatcamTools/ToolNCC.py:512 flatcamTools/ToolPaint.py:442
-msgid "Rest Machining"
-msgstr "Lavorazione di ripresa"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:290
-#: flatcamTools/ToolNCC.py:516
-msgid ""
-"If checked, use 'rest machining'.\n"
-"Basically it will clear copper outside PCB features,\n"
-"using the biggest tool and continue with the next tools,\n"
-"from bigger to smaller, to clear areas of copper that\n"
-"could not be cleared by previous tool, until there is\n"
-"no more copper to clear or there are no more tools.\n"
-"If not checked, use the standard algorithm."
-msgstr ""
-"Se selezionato, utilizzare la 'lavorazione di ripresa'.\n"
-"Fondamentalmente eliminerà il rame al di fuori del PCB,\n"
-"utilizzando lo strumento più grande e continuarà poi con\n"
-"gli strumenti successivi, dal più grande al più piccolo, per\n"
-"eliminare le aree di rame non rimosse dallo strumento\n"
-"precedente, finché non c'è più rame da cancellare o non\n"
-"ci sono più strumenti.\n"
-"Se non selezionato, usa l'algoritmo standard."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:313
-#: flatcamTools/ToolNCC.py:541
-msgid ""
-"Selection of area to be processed.\n"
-"- 'Itself' - the processing extent is based on the object that is "
-"processed.\n"
-" - 'Area Selection' - left mouse click to start selection of the area to be "
-"processed.\n"
-"- 'Reference Object' - will process the area specified by another object."
-msgstr ""
-"Selezione area da processare.\n"
-"- 'Stesso': il processo avverrà basandosi sull'oggetto processato.\n"
-"- 'Selezione area' - fare clic con il pulsante sinistro del mouse per "
-"iniziare a selezionare l'area.\n"
-"- 'Oggetto di riferimento' - processerà l'area specificata da un altro "
-"oggetto."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:322
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:286
-#: flatcamTools/ToolNCC.py:578 flatcamTools/ToolPaint.py:522
-msgid "Shape"
-msgstr "Forma"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:324
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:288
-#: flatcamTools/ToolNCC.py:580 flatcamTools/ToolPaint.py:524
-msgid "The kind of selection shape used for area selection."
-msgstr "Il tipo di forma di selezione utilizzata per la selezione dell'area."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:339
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303
-msgid "Normal"
-msgstr "Normale"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:340
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:304
-msgid "Progressive"
-msgstr "Progressivo"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:341
-msgid "NCC Plotting"
-msgstr "Disegna NCC"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:343
-msgid ""
-"- 'Normal' - normal plotting, done at the end of the NCC job\n"
-"- 'Progressive' - after each shape is generated it will be plotted."
-msgstr ""
-"- \"Normale\": stampa normale, eseguita alla fine del lavoro NCC\n"
-"- \"Progressivo\": dopo che ogni forma è stata generata, verrà tracciata."
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:27
-msgid "Paint Tool Options"
-msgstr "Opzione strumento pittura"
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:33
-msgid "Parameters:"
-msgstr "Parametri:"
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:247
-#: flatcamTools/ToolPaint.py:445
-msgid ""
-"If checked, use 'rest machining'.\n"
-"Basically it will clear copper outside PCB features,\n"
-"using the biggest tool and continue with the next tools,\n"
-"from bigger to smaller, to clear areas of copper that\n"
-"could not be cleared by previous tool, until there is\n"
-"no more copper to clear or there are no more tools.\n"
-"\n"
-"If not checked, use the standard algorithm."
-msgstr ""
-"Se selezionato, usa la 'lavorazione di ripresa'.\n"
-"Fondamentalmente eliminerà il rame al di fuori del del PCB,\n"
-"utilizzando l'utensile più grande e continuando con gli utensili\n"
-"successivi, dal più grande al più piccolo, per eliminare le aree di\n"
-"rame che non possono essere cancellato dall'utensile precedente,\n"
-"fino a quando non ci sarà più rame da cancellare o utensili utili.\n"
-"\n"
-"Se non selezionato, utilizza l'algoritmo standard."
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:260
-#: flatcamTools/ToolPaint.py:458
-msgid ""
-"Selection of area to be processed.\n"
-"- 'Polygon Selection' - left mouse click to add/remove polygons to be "
-"processed.\n"
-"- 'Area Selection' - left mouse click to start selection of the area to be "
-"processed.\n"
-"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple "
-"areas.\n"
-"- 'All Polygons' - the process will start after click.\n"
-"- 'Reference Object' - will process the area specified by another object."
-msgstr ""
-"Come selezionare i poligoni da processare.\n"
-"- 'Selezione poligoni': fare clic con il pulsante sinistro del mouse per "
-"aggiungere/rimuovere\n"
-"poligoni da processare.\n"
-"- 'Selezione area': fare clic con il pulsante sinistro del mouse per "
-"iniziare la selezione dell'area da\n"
-"processare. Tenendo premuto un tasto modificatore (CTRL o SHIFT) sarà "
-"possibile aggiungere più aree.\n"
-"- 'Tutti i poligoni': la selezione inizierà dopo il click.\n"
-"- 'Oggetto di riferimento': eseguirà il processo dell'area specificata da un "
-"altro oggetto."
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
-#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:942
-#: flatcamTools/ToolPaint.py:1427 tclCommands/TclCommandPaint.py:164
-msgid "Polygon Selection"
-msgstr "Selezione poligono"
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:305
-msgid "Paint Plotting"
-msgstr "Disegna aree dipinte"
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:307
-msgid ""
-"- 'Normal' - normal plotting, done at the end of the Paint job\n"
-"- 'Progressive' - after each shape is generated it will be plotted."
-msgstr ""
-"- 'Normale' - tracciatura normale, eseguita alla fine del lavoro di "
-"selezione\n"
-"- 'Progressiva' - verrà generata al termine di ogni forma selezionata."
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:27
-msgid "Panelize Tool Options"
-msgstr "Opzioni strumento Pannello"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:33
-msgid ""
-"Create an object that contains an array of (x, y) elements,\n"
-"each element is a copy of the source object spaced\n"
-"at a X distance, Y distance of each other."
-msgstr ""
-"Crea un oggetto che contiene una matrice di elementi (x, y),\n"
-"ogni elemento è una copia dell'oggetto origine spaziati\n"
-"di una distanza X e distanza Y ognuno dall'altro."
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:50
-#: flatcamTools/ToolPanelize.py:163
-msgid "Spacing cols"
-msgstr "Spazio colonne"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:52
-#: flatcamTools/ToolPanelize.py:165
-msgid ""
-"Spacing between columns of the desired panel.\n"
-"In current units."
-msgstr ""
-"Spaziatura fra colonne desiderata del pannello.\n"
-"In unità attuali."
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:64
-#: flatcamTools/ToolPanelize.py:175
-msgid "Spacing rows"
-msgstr "Spazio righe"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:66
-#: flatcamTools/ToolPanelize.py:177
-msgid ""
-"Spacing between rows of the desired panel.\n"
-"In current units."
-msgstr ""
-"Spaziatura fra righe desiderata del pannello.\n"
-"In unità attuali."
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:77
-#: flatcamTools/ToolPanelize.py:186
-msgid "Columns"
-msgstr "Colonne"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:79
-#: flatcamTools/ToolPanelize.py:188
-msgid "Number of columns of the desired panel"
-msgstr "Numero di colonne nel pannello desiderato"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:89
-#: flatcamTools/ToolPanelize.py:196
-msgid "Rows"
-msgstr "Righe"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:91
-#: flatcamTools/ToolPanelize.py:198
-msgid "Number of rows of the desired panel"
-msgstr "Numero di righe nel pannello desiderato"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:98
-#: flatcamTools/ToolPanelize.py:205
-msgid "Geo"
-msgstr "Geo"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:99
-#: flatcamTools/ToolPanelize.py:206
-msgid "Panel Type"
-msgstr "Tipo pannello"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:101
-msgid ""
-"Choose the type of object for the panel object:\n"
-"- Gerber\n"
-"- Geometry"
-msgstr ""
-"Scegli in tipo di oggetto per l'oggetto pannello:\n"
-"- Gerber\n"
-"- Geometria"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:110
-msgid "Constrain within"
-msgstr "Vincoli contenimento"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:112
-#: flatcamTools/ToolPanelize.py:218
-msgid ""
-"Area define by DX and DY within to constrain the panel.\n"
-"DX and DY values are in current units.\n"
-"Regardless of how many columns and rows are desired,\n"
-"the final panel will have as many columns and rows as\n"
-"they fit completely within selected area."
-msgstr ""
-"L'area definita da DX e DY all'interno per vincolare il pannello.\n"
-"I valori DX e DY sono in unità correnti.\n"
-"Indipendentemente dal numero di colonne e righe desiderate,\n"
-"il pannello finale avrà tante colonne e righe quante\n"
-"si adattano completamente all'interno dell'area selezionata."
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:125
-#: flatcamTools/ToolPanelize.py:230
-msgid "Width (DX)"
-msgstr "Larghezza (DX)"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:127
-#: flatcamTools/ToolPanelize.py:232
-msgid ""
-"The width (DX) within which the panel must fit.\n"
-"In current units."
-msgstr ""
-"La larghezza (DX) all'interno del quale deve rimanere il pannello.\n"
-"In unità correnti."
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:138
-#: flatcamTools/ToolPanelize.py:241
-msgid "Height (DY)"
-msgstr "Altezza (DY)"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:140
-#: flatcamTools/ToolPanelize.py:243
-msgid ""
-"The height (DY)within which the panel must fit.\n"
-"In current units."
-msgstr ""
-"L'altezza (DY) all'interno del quale deve rimanere il pannello.\n"
-"In unità correnti."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:27
-msgid "SolderPaste Tool Options"
-msgstr "Opzioni strumento SolderPaste"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:33
-msgid ""
-"A tool to create GCode for dispensing\n"
-"solder paste onto a PCB."
-msgstr ""
-"Uno strumento per creare GCode per\n"
-"erogare la pasta sul PCB."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:54
-msgid "New Nozzle Dia"
-msgstr "Nuovo diametro ugello"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:56
-#: flatcamTools/ToolSolderPaste.py:107
-msgid "Diameter for the new Nozzle tool to add in the Tool Table"
-msgstr "Diametro del nuovo utensile ugello da aggiungere alla tabella"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:72
-#: flatcamTools/ToolSolderPaste.py:183
-msgid "Z Dispense Start"
-msgstr "Z avvio erogazione"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:74
-#: flatcamTools/ToolSolderPaste.py:185
-msgid "The height (Z) when solder paste dispensing starts."
-msgstr "L'altezza (Z) quando inizia l'erogazione della pasta."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:85
-#: flatcamTools/ToolSolderPaste.py:195
-msgid "Z Dispense"
-msgstr "Z erogazione"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:87
-#: flatcamTools/ToolSolderPaste.py:197
-msgid "The height (Z) when doing solder paste dispensing."
-msgstr "L'altezza (Z) quando l'erogazione è in esecuzione."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:98
-#: flatcamTools/ToolSolderPaste.py:207
-msgid "Z Dispense Stop"
-msgstr "Z fine erogazione"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:100
-#: flatcamTools/ToolSolderPaste.py:209
-msgid "The height (Z) when solder paste dispensing stops."
-msgstr "L'altezza (Z) quando finisce l'erogazione della pasta."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:111
-#: flatcamTools/ToolSolderPaste.py:219
-msgid "Z Travel"
-msgstr "Z spostamento"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:113
-#: flatcamTools/ToolSolderPaste.py:221
-msgid ""
-"The height (Z) for travel between pads\n"
-"(without dispensing solder paste)."
-msgstr ""
-"L'altezza (Z) per lo spostamento fra pad\n"
-"(senza funzione di erogazione pasta)."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:125
-#: flatcamTools/ToolSolderPaste.py:232
-msgid "Z Toolchange"
-msgstr "Z cambio utensile"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:127
-#: flatcamTools/ToolSolderPaste.py:234
-msgid "The height (Z) for tool (nozzle) change."
-msgstr "L'altezza (Z) per il cambio utensile (ugello)."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:136
-#: flatcamTools/ToolSolderPaste.py:242
-msgid ""
-"The X,Y location for tool (nozzle) change.\n"
-"The format is (x, y) where x and y are real numbers."
-msgstr ""
-"La posizione X,Y per il cambio utensile (ugello).\n"
-"Il formato è (x,y) dove x e y sono numeri reali."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:150
-#: flatcamTools/ToolSolderPaste.py:255
-msgid "Feedrate (speed) while moving on the X-Y plane."
-msgstr "Velocità avanzamento durante gli spostamenti sul piano (x,y)."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:163
-#: flatcamTools/ToolSolderPaste.py:267
-msgid ""
-"Feedrate (speed) while moving vertically\n"
-"(on Z plane)."
-msgstr "Velocità avanzamento durante gli spostamenti sull'asse Z."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:175
-#: flatcamTools/ToolSolderPaste.py:278
-msgid "Feedrate Z Dispense"
-msgstr "Avanzamento erogazione Z"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:177
-msgid ""
-"Feedrate (speed) while moving up vertically\n"
-"to Dispense position (on Z plane)."
-msgstr ""
-"Avanzamento (velocità) durante lo spostamento in verticale\n"
-"verso la posizione di erogazione (sul piano Z)."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:188
-#: flatcamTools/ToolSolderPaste.py:290
-msgid "Spindle Speed FWD"
-msgstr "Velocità mandrino AVANTI"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:190
-#: flatcamTools/ToolSolderPaste.py:292
-msgid ""
-"The dispenser speed while pushing solder paste\n"
-"through the dispenser nozzle."
-msgstr ""
-"La velocità dell'erogatore mentre spinge\n"
-"la pasta tramite l'ugello."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:202
-#: flatcamTools/ToolSolderPaste.py:303
-msgid "Dwell FWD"
-msgstr "Pausa AVANTI"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:204
-#: flatcamTools/ToolSolderPaste.py:305
-msgid "Pause after solder dispensing."
-msgstr "Pausa dopo l'erogazione del solder."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:214
-#: flatcamTools/ToolSolderPaste.py:314
-msgid "Spindle Speed REV"
-msgstr "Velocità mandrino INDIETRO"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:216
-#: flatcamTools/ToolSolderPaste.py:316
-msgid ""
-"The dispenser speed while retracting solder paste\n"
-"through the dispenser nozzle."
-msgstr ""
-"La velocità dell'erogatore mentre ritrae\n"
-"la pasta tramite l'ugello."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:228
-#: flatcamTools/ToolSolderPaste.py:327
-msgid "Dwell REV"
-msgstr "Pausa INDIETRO"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:230
-#: flatcamTools/ToolSolderPaste.py:329
-msgid ""
-"Pause after solder paste dispenser retracted,\n"
-"to allow pressure equilibrium."
-msgstr ""
-"Pausa dopo la ritrazione,\n"
-"per equilibrare la pressione."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:239
-#: flatcamTools/ToolSolderPaste.py:337
-msgid "Files that control the GCode generation."
-msgstr "Files che controllano la generazione del GCode."
-
-#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:27
-msgid "Substractor Tool Options"
-msgstr "Opzioni strumento sottrai"
-
-#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:33
-msgid ""
-"A tool to substract one Gerber or Geometry object\n"
-"from another of the same type."
-msgstr ""
-"Uno strumento per sottrarre un oggetto Gerber o\n"
-"geometria da un altro dello stesso tipo."
-
-#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:38
-#: flatcamTools/ToolSub.py:155
-msgid "Close paths"
-msgstr "Percorsi chiusi"
-
-#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:39
-msgid ""
-"Checking this will close the paths cut by the Geometry substractor object."
-msgstr ""
-"Abilitandolo chiuderà i percorsi rimasti aperti dopo la sottrazione di "
-"oggetti geometria."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:27
-msgid "Transform Tool Options"
-msgstr "Opzione strumento trasforma"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:33
-msgid ""
-"Various transformations that can be applied\n"
-"on a FlatCAM object."
-msgstr "Trasformazioni varie da poter applicare ad un oggetto FlatCAM."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:64
-msgid "Skew"
-msgstr "Inclina"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:105
-#: flatcamTools/ToolTransform.py:150
-msgid "Factor for scaling on X axis."
-msgstr "Fattore di scala sull'asse X."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:118
-#: flatcamTools/ToolTransform.py:170
-msgid "Factor for scaling on Y axis."
-msgstr "Fattore di scala sull'asse Y."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:126
-#: flatcamTools/ToolTransform.py:191
-msgid ""
-"Scale the selected object(s)\n"
-"using the Scale_X factor for both axis."
-msgstr ""
-"Scala l'oggetto(i) selezionato(i) usando\n"
-"il fattore Scala_X per entrambi gli assi."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:134
-#: flatcamTools/ToolTransform.py:198
-msgid ""
-"Scale the selected object(s)\n"
-"using the origin reference when checked,\n"
-"and the center of the biggest bounding box\n"
-"of the selected objects when unchecked."
-msgstr ""
-"Scala l'oggetto(i) selezionato(i) usando\n"
-"il riferimento di origine quando abilitato,\n"
-"oppure il centro del contenitore più grande\n"
-"degli oggetti selezionati quando non attivato."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:150
-#: flatcamTools/ToolTransform.py:217
-msgid "X val"
-msgstr "Valore X"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:152
-#: flatcamTools/ToolTransform.py:219
-msgid "Distance to offset on X axis. In current units."
-msgstr "Distanza da applicare sull'asse X. In unità correnti."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:163
-#: flatcamTools/ToolTransform.py:237
-msgid "Y val"
-msgstr "Valore Y"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:165
-#: flatcamTools/ToolTransform.py:239
-msgid "Distance to offset on Y axis. In current units."
-msgstr "Distanza da applicare sull'asse Y. In unità correnti."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:171
-#: flatcamTools/ToolDblSided.py:67 flatcamTools/ToolDblSided.py:95
-#: flatcamTools/ToolDblSided.py:125
-msgid "Mirror"
-msgstr "Specchia"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:175
-#: flatcamTools/ToolTransform.py:283
-msgid "Mirror Reference"
-msgstr "Riferimento specchio"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:177
-#: flatcamTools/ToolTransform.py:285
-msgid ""
-"Flip the selected object(s)\n"
-"around the point in Point Entry Field.\n"
-"\n"
-"The point coordinates can be captured by\n"
-"left click on canvas together with pressing\n"
-"SHIFT key. \n"
-"Then click Add button to insert coordinates.\n"
-"Or enter the coords in format (x, y) in the\n"
-"Point Entry field and click Flip on X(Y)"
-msgstr ""
-"Capovolgi gli oggetti selezionati\n"
-"attorno al punto nel campo di inserimento punti.\n"
-"\n"
-"Le coordinate del punto possono essere acquisite da\n"
-"clic sinistro premendo contemporaneamente al tasto\n"
-"SHIFT.\n"
-"Quindi fare clic sul pulsante Aggiungi per inserire le coordinate.\n"
-"Oppure inserisci le coord nel formato (x,y) in\n"
-"Inserisci punto e fai clic su Capovolgi su X(Y)"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:188
-msgid "Mirror Reference point"
-msgstr "Punto di riferimento specchio"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:190
-msgid ""
-"Coordinates in format (x, y) used as reference for mirroring.\n"
-"The 'x' in (x, y) will be used when using Flip on X and\n"
-"the 'y' in (x, y) will be used when using Flip on Y and"
-msgstr ""
-"Coordinate in formato (x, y) usate come riferimento per la specchiatura.\n"
-"La 'x' in (x, y) sarà usata per capovolgere su X e\n"
-"la 'y' in (x, y) sarà usata per capovolgere su Y e"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:203
-#: flatcamTools/ToolDistance.py:496 flatcamTools/ToolDistanceMin.py:287
-#: flatcamTools/ToolTransform.py:332
-msgid "Distance"
-msgstr "Distanza"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:205
-#: flatcamTools/ToolTransform.py:334
-msgid ""
-"A positive value will create the effect of dilation,\n"
-"while a negative value will create the effect of erosion.\n"
-"Each geometry element of the object will be increased\n"
-"or decreased with the 'distance'."
-msgstr ""
-"Un valore positivo creerà l'effetto della dilatazione,\n"
-"mentre un valore negativo creerà l'effetto di restringimento.\n"
-"Ogni elemento della geometria dell'oggetto verrà aumentato\n"
-"o diminuito con la 'distanza'."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:222
-#: flatcamTools/ToolTransform.py:359
-msgid ""
-"A positive value will create the effect of dilation,\n"
-"while a negative value will create the effect of erosion.\n"
-"Each geometry element of the object will be increased\n"
-"or decreased to fit the 'Value'. Value is a percentage\n"
-"of the initial dimension."
-msgstr ""
-"Un valore positivo creerà l'effetto della dilatazione,\n"
-"mentre un valore negativo creerà l'effetto di restringimento.\n"
-"Ogni elemento della geometria dell'oggetto verrà aumentato\n"
-"o diminuito in base al 'Valore'."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:241
-#: flatcamTools/ToolTransform.py:385
-msgid ""
-"If checked then the buffer will surround the buffered shape,\n"
-"every corner will be rounded.\n"
-"If not checked then the buffer will follow the exact geometry\n"
-"of the buffered shape."
-msgstr ""
-"Se selezionato, il buffer circonderà la forma del buffer,\n"
-"ogni angolo verrà arrotondato.\n"
-"Se non selezionato, il buffer seguirà l'esatta geometria\n"
-"della forma bufferizzata."
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:27
-msgid "Autocompleter Keywords"
-msgstr "Autocompletamento parole chiave"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:30
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:40
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:30
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:30
-msgid "Restore"
-msgstr "Ripristina"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:31
-msgid "Restore the autocompleter keywords list to the default state."
-msgstr ""
-"Ripristina l'autocompletamento delle parole chiave allo stato di default."
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:32
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:42
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:32
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:32
-msgid "Delete All"
-msgstr "Cancella tutto"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:33
-msgid "Delete all autocompleter keywords from the list."
-msgstr "Cancella tutte le parole chiave della lista."
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:41
-msgid "Keywords list"
-msgstr "Lista parole chiave"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:43
-msgid ""
-"List of keywords used by\n"
-"the autocompleter in FlatCAM.\n"
-"The autocompleter is installed\n"
-"in the Code Editor and for the Tcl Shell."
-msgstr ""
-"Elenco di parole chiave utilizzate dal\n"
-"completamento automatico in FlatCAM.\n"
-"Il completamento automatico è attivo\n"
-"nell'editor di codice e per la shell Tcl."
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:64
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:73
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:63
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:62
-msgid "Extension"
-msgstr "Estensione"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:65
-msgid "A keyword to be added or deleted to the list."
-msgstr "Parola chiave da aggiungere o cancellare dalla lista."
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:73
-msgid "Add keyword"
-msgstr "Aggiungi parola chiave"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:74
-msgid "Add a keyword to the list"
-msgstr "Aggiungi parola chiave alla lista"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:75
-msgid "Delete keyword"
-msgstr "Cancella parola chiave"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:76
-msgid "Delete a keyword from the list"
-msgstr "Cancella parola chiave dalla lista"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:27
-msgid "Excellon File associations"
-msgstr "Associazione file Excellon"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:41
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:31
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:31
-msgid "Restore the extension list to the default state."
-msgstr "Ripristina la lista estensioni allo stato di default."
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:43
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:33
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:33
-msgid "Delete all extensions from the list."
-msgstr "Cancella tutte le estensioni dalla lista."
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:51
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:41
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:41
-msgid "Extensions list"
-msgstr "Lista estensioni"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:53
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:43
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:43
-msgid ""
-"List of file extensions to be\n"
-"associated with FlatCAM."
-msgstr "Lista delle estensioni da associare a FlatCAM."
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:74
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:64
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:63
-msgid "A file extension to be added or deleted to the list."
-msgstr "Estensione file da aggiungere o cancellare dalla lista."
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:82
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:72
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:71
-msgid "Add Extension"
-msgstr "Aggiungi estensione"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:83
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:73
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:72
-msgid "Add a file extension to the list"
-msgstr "Aggiunge una estensione di file alla lista"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:84
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:74
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:73
-msgid "Delete Extension"
-msgstr "Cancella estensione"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:85
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:75
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:74
-msgid "Delete a file extension from the list"
-msgstr "Cancella una estensione file dalla lista"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:92
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:82
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:81
-msgid "Apply Association"
-msgstr "Applica associazione"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:93
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:83
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:82
-msgid ""
-"Apply the file associations between\n"
-"FlatCAM and the files with above extensions.\n"
-"They will be active after next logon.\n"
-"This work only in Windows."
-msgstr ""
-"Applica l'associazione tra FlatCAM e i\n"
-"files con le estensioni di cui sopra.\n"
-"Sarà effettiva dal prossimo logon.\n"
-"Funziona solo in Windows."
-
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:27
-msgid "GCode File associations"
-msgstr "Associazione file GCode"
-
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:27
-msgid "Gerber File associations"
-msgstr "Associazione file Gerber"
-
-#: flatcamObjects/FlatCAMCNCJob.py:429 flatcamObjects/FlatCAMDocument.py:71
-#: flatcamObjects/FlatCAMScript.py:82
-msgid "Basic"
-msgstr "Base"
-
-#: flatcamObjects/FlatCAMCNCJob.py:435 flatcamObjects/FlatCAMDocument.py:75
-#: flatcamObjects/FlatCAMScript.py:86
-msgid "Advanced"
-msgstr "Advanzato"
-
-#: flatcamObjects/FlatCAMCNCJob.py:478
-msgid "Plotting..."
-msgstr "Sto disegnando..."
-
-#: flatcamObjects/FlatCAMCNCJob.py:507 flatcamObjects/FlatCAMCNCJob.py:512
-#: flatcamTools/ToolSolderPaste.py:1499
-msgid "Export Machine Code ..."
-msgstr "Esporta codice macchina ..."
-
-#: flatcamObjects/FlatCAMCNCJob.py:517 flatcamTools/ToolSolderPaste.py:1503
-msgid "Export Machine Code cancelled ..."
-msgstr "Esportazione codice macchina annullato ..."
-
-#: flatcamObjects/FlatCAMCNCJob.py:538
-msgid "Machine Code file saved to"
-msgstr "File codice macchina salvato in"
-
-#: flatcamObjects/FlatCAMCNCJob.py:599 flatcamTools/ToolCalibration.py:1097
-msgid "Loaded Machine Code into Code Editor"
-msgstr "Codice macchina caricato nell'editor codice"
-
-#: flatcamObjects/FlatCAMCNCJob.py:740
-msgid "This CNCJob object can't be processed because it is a"
-msgstr "Questo oggetto CNCJob non può essere processato perché è"
-
-#: flatcamObjects/FlatCAMCNCJob.py:742
-msgid "CNCJob object"
-msgstr "Oggetto CNCJob"
-
-#: flatcamObjects/FlatCAMCNCJob.py:922
-msgid ""
-"G-code does not have a G94 code and we will not include the code in the "
-"'Prepend to GCode' text box"
-msgstr ""
-"G-Code non ha un codice G94 e non sarà aggiunto nel box \"anteponi al GCode\""
-
-#: flatcamObjects/FlatCAMCNCJob.py:933
-msgid "Cancelled. The Toolchange Custom code is enabled but it's empty."
-msgstr ""
-"Annullato. Il codice custom per il cambio utensile è abilitato ma vuoto."
-
-#: flatcamObjects/FlatCAMCNCJob.py:938
-msgid "Toolchange G-code was replaced by a custom code."
-msgstr "G-Code per il cambio utensile sostituito da un codice custom."
-
-#: flatcamObjects/FlatCAMCNCJob.py:986 flatcamObjects/FlatCAMCNCJob.py:996
-msgid ""
-"The used preprocessor file has to have in it's name: 'toolchange_custom'"
-msgstr ""
-"Il file del preprocessore usato deve avere nel nome: 'toolchange_custom'"
-
-#: flatcamObjects/FlatCAMCNCJob.py:999
-msgid "There is no preprocessor file."
-msgstr "Non c'è nessun file preprocessore."
-
-#: flatcamObjects/FlatCAMDocument.py:175
-msgid "Document Editor"
-msgstr "Editor Documenti"
-
-#: flatcamObjects/FlatCAMExcellon.py:514 flatcamObjects/FlatCAMExcellon.py:746
-#: flatcamObjects/FlatCAMGeometry.py:306 flatcamObjects/FlatCAMGeometry.py:767
-#: flatcamTools/ToolNCC.py:811 flatcamTools/ToolNCC.py:1191
-#: flatcamTools/ToolPaint.py:779 flatcamTools/ToolPaint.py:1166
-msgid "Multiple Tools"
-msgstr "Strumenti Multipli"
-
-#: flatcamObjects/FlatCAMExcellon.py:726
-msgid "No Tool Selected"
-msgstr "Nessun utensile selezionato"
-
-#: flatcamObjects/FlatCAMExcellon.py:1076
-#: flatcamObjects/FlatCAMExcellon.py:1168
-#: flatcamObjects/FlatCAMExcellon.py:1355
-msgid "Please select one or more tools from the list and try again."
-msgstr "Seleziona uno o più utensili dalla lista e riprova."
-
-#: flatcamObjects/FlatCAMExcellon.py:1083
-msgid "Milling tool for DRILLS is larger than hole size. Cancelled."
-msgstr ""
-"L'utensile per la foratura è più grande del foro. Operazione annullata."
-
-#: flatcamObjects/FlatCAMExcellon.py:1098
-#: flatcamObjects/FlatCAMExcellon.py:1188
-#: flatcamObjects/FlatCAMExcellon.py:1373
-#: tclCommands/TclCommandDrillcncjob.py:193
-msgid "Tool_nr"
-msgstr "Utensile_nr"
-
-#: flatcamObjects/FlatCAMExcellon.py:1098
-#: flatcamObjects/FlatCAMExcellon.py:1188
-#: flatcamObjects/FlatCAMExcellon.py:1373
-#: tclCommands/TclCommandDrillcncjob.py:193
-msgid "Drills_Nr"
-msgstr "Foro_Nr"
-
-#: flatcamObjects/FlatCAMExcellon.py:1098
-#: flatcamObjects/FlatCAMExcellon.py:1188
-#: flatcamObjects/FlatCAMExcellon.py:1373
-#: tclCommands/TclCommandDrillcncjob.py:193
-msgid "Slots_Nr"
-msgstr "Slot_Nr"
-
-#: flatcamObjects/FlatCAMExcellon.py:1177
-msgid "Milling tool for SLOTS is larger than hole size. Cancelled."
-msgstr "L'utensile per lo SLOT è più grande del foro. Operazione annullata."
-
-#: flatcamObjects/FlatCAMExcellon.py:1281
-#: flatcamObjects/FlatCAMGeometry.py:1543
-msgid "Focus Z"
-msgstr "Z a Fuoco"
-
-#: flatcamObjects/FlatCAMExcellon.py:1300
-#: flatcamObjects/FlatCAMGeometry.py:1562
-msgid "Laser Power"
-msgstr "Potenza Laser"
-
-#: flatcamObjects/FlatCAMExcellon.py:1430
-#: flatcamObjects/FlatCAMGeometry.py:1999
-#: flatcamObjects/FlatCAMGeometry.py:2003
-#: flatcamObjects/FlatCAMGeometry.py:2148
-msgid "Generating CNC Code"
-msgstr "Generazione codice CNC"
-
-#: flatcamObjects/FlatCAMExcellon.py:1620 flatcamTools/ToolNCC.py:918
-#: flatcamTools/ToolPaint.py:844
-msgid "Current Tool parameters were applied to all tools."
-msgstr "Parametri attuali applicati a tutti gli utensili."
-
-#: flatcamObjects/FlatCAMGeometry.py:119 flatcamObjects/FlatCAMGeometry.py:1207
-#: flatcamObjects/FlatCAMGeometry.py:1208
-#: flatcamObjects/FlatCAMGeometry.py:1217
-msgid "Iso"
-msgstr "Iso"
-
-#: flatcamObjects/FlatCAMGeometry.py:119 flatcamObjects/FlatCAMGeometry.py:439
-#: flatcamObjects/FlatCAMGeometry.py:826 flatcamObjects/FlatCAMGerber.py:891
-#: flatcamObjects/FlatCAMGerber.py:1039 flatcamTools/ToolCutOut.py:686
-#: flatcamTools/ToolCutOut.py:882 flatcamTools/ToolCutOut.py:1042
-msgid "Rough"
-msgstr "Grezzo"
-
-#: flatcamObjects/FlatCAMGeometry.py:119
-msgid "Finish"
-msgstr "Finito"
-
-#: flatcamObjects/FlatCAMGeometry.py:474
-msgid "Add from Tool DB"
-msgstr "Aggiungi dal DB utensili"
-
-#: flatcamObjects/FlatCAMGeometry.py:845
-msgid "Tool added in Tool Table."
-msgstr "Utensile aggiunto nella tavola utensili."
-
-#: flatcamObjects/FlatCAMGeometry.py:954 flatcamObjects/FlatCAMGeometry.py:963
-msgid "Failed. Select a tool to copy."
-msgstr "Errore. Selezionare un utensile da copiare."
-
-#: flatcamObjects/FlatCAMGeometry.py:992
-msgid "Tool was copied in Tool Table."
-msgstr "Utensile copiato nella tabella utensili."
-
-#: flatcamObjects/FlatCAMGeometry.py:1019
-msgid "Tool was edited in Tool Table."
-msgstr "Utensile editato nella tabella utensili."
-
-#: flatcamObjects/FlatCAMGeometry.py:1048
-#: flatcamObjects/FlatCAMGeometry.py:1057
-msgid "Failed. Select a tool to delete."
-msgstr "Errore. Selezionare un utensile da cancellare."
-
-#: flatcamObjects/FlatCAMGeometry.py:1081
-msgid "Tool was deleted in Tool Table."
-msgstr "Utensile cancellato dalla tabella utensili."
-
-#: flatcamObjects/FlatCAMGeometry.py:1118
-#: flatcamObjects/FlatCAMGeometry.py:1128
-msgid ""
-"Disabled because the tool is V-shape.\n"
-"For V-shape tools the depth of cut is\n"
-"calculated from other parameters like:\n"
-"- 'V-tip Angle' -> angle at the tip of the tool\n"
-"- 'V-tip Dia' -> diameter at the tip of the tool \n"
-"- Tool Dia -> 'Dia' column found in the Tool Table\n"
-"NB: a value of zero means that Tool Dia = 'V-tip Dia'"
-msgstr ""
-"Disabilitato perché lo strumento è a forma di V.\n"
-"Per gli strumenti a V la profondità di taglio è\n"
-"calcolato da altri parametri come:\n"
-"- 'Angolo V' -> angolo sulla punta dell'utensile\n"
-"- 'V Dia' -> diametro alla punta dell'utensile\n"
-"- Strumento Dia -> colonna 'Dia' trovato nella tabella degli utensili\n"
-"NB: un valore zero significa che Tool Dia = 'V Dia'"
-
-#: flatcamObjects/FlatCAMGeometry.py:1615
-msgid "This Geometry can't be processed because it is"
-msgstr "Geometria non processabile per"
-
-#: flatcamObjects/FlatCAMGeometry.py:1615
-msgid "geometry"
-msgstr "geometria"
-
-#: flatcamObjects/FlatCAMGeometry.py:1656
-msgid "Failed. No tool selected in the tool table ..."
-msgstr "Errore. Nessun utensile selezionato nella tabella utensili ..."
-
-#: flatcamObjects/FlatCAMGeometry.py:1758
-#: flatcamObjects/FlatCAMGeometry.py:1908
-msgid ""
-"Tool Offset is selected in Tool Table but no value is provided.\n"
-"Add a Tool Offset or change the Offset Type."
-msgstr ""
-"Selezionato Offset utensile nella tabella utensili ma nessun valore "
-"inserito.\n"
-"Aggiungi un offset utensile o cambia il tipo di Offset."
-
-#: flatcamObjects/FlatCAMGeometry.py:1824
-#: flatcamObjects/FlatCAMGeometry.py:1970
-msgid "G-Code parsing in progress..."
-msgstr "Analisi G_Code in corso..."
-
-#: flatcamObjects/FlatCAMGeometry.py:1826
-#: flatcamObjects/FlatCAMGeometry.py:1972
-msgid "G-Code parsing finished..."
-msgstr "Analisi G_Code terminata..."
-
-#: flatcamObjects/FlatCAMGeometry.py:1834
-msgid "Finished G-Code processing"
-msgstr "Generazione G_Code terminata"
-
-#: flatcamObjects/FlatCAMGeometry.py:1836
-#: flatcamObjects/FlatCAMGeometry.py:1984
-msgid "G-Code processing failed with error"
-msgstr "Generazione G-Code fallita con errore"
-
-#: flatcamObjects/FlatCAMGeometry.py:1878 flatcamTools/ToolSolderPaste.py:1301
-msgid "Cancelled. Empty file, it has no geometry"
-msgstr "Annullato. File vuoto, non ci sono geometrie"
-
-#: flatcamObjects/FlatCAMGeometry.py:1982
-#: flatcamObjects/FlatCAMGeometry.py:2143
-msgid "Finished G-Code processing..."
-msgstr "Generazione G_Code terminata..."
-
-#: flatcamObjects/FlatCAMGeometry.py:2001
-#: flatcamObjects/FlatCAMGeometry.py:2005
-#: flatcamObjects/FlatCAMGeometry.py:2150
-msgid "CNCjob created"
-msgstr "CNCjob creato"
-
-#: flatcamObjects/FlatCAMGeometry.py:2181
-#: flatcamObjects/FlatCAMGeometry.py:2190 flatcamParsers/ParseGerber.py:1867
-#: flatcamParsers/ParseGerber.py:1877
-msgid "Scale factor has to be a number: integer or float."
-msgstr "Il fattore di scala deve essere un numero: intero o float."
-
-#: flatcamObjects/FlatCAMGeometry.py:2253
-msgid "Geometry Scale done."
-msgstr "Riscala geometria terminata."
-
-#: flatcamObjects/FlatCAMGeometry.py:2270 flatcamParsers/ParseGerber.py:1993
-msgid ""
-"An (x,y) pair of values are needed. Probable you entered only one value in "
-"the Offset field."
-msgstr ""
-"E' necessaria una coppia di valori (x,y). Probabilmente è stato inserito "
-"solo uno dei valori nel campo Offset."
-
-#: flatcamObjects/FlatCAMGeometry.py:2326
-msgid "Geometry Offset done."
-msgstr "Offset geometria applicato."
-
-#: flatcamObjects/FlatCAMGeometry.py:2355
-msgid ""
-"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, "
-"y)\n"
-"but now there is only one value, not two."
-msgstr ""
-"Il campo cambio utensile X,Y in Edit -> Preferenze deve essere nel formato "
-"(x, y)\n"
-"ma ora c'è un solo valore, non due."
-
-#: flatcamObjects/FlatCAMGerber.py:494
-msgid "Buffering solid geometry"
-msgstr "Riempimento geometria solida"
-
-#: flatcamObjects/FlatCAMGerber.py:503
-msgid "Done"
-msgstr "Fatto"
-
-#: flatcamObjects/FlatCAMGerber.py:529 flatcamObjects/FlatCAMGerber.py:555
-msgid "Operation could not be done."
-msgstr "L'operazione non può essere eseguita."
-
-#: flatcamObjects/FlatCAMGerber.py:572
-msgid "Isolating..."
-msgstr "Isolamento..."
-
-#: flatcamObjects/FlatCAMGerber.py:631
-msgid "Click on a polygon to isolate it."
-msgstr "Clicca su un poligono per isolarlo."
-
-#: flatcamObjects/FlatCAMGerber.py:670 flatcamObjects/FlatCAMGerber.py:774
-#: flatcamTools/ToolPaint.py:1511
-msgid "Added polygon"
-msgstr "Poligono aggiunto"
-
-#: flatcamObjects/FlatCAMGerber.py:671 flatcamObjects/FlatCAMGerber.py:776
-msgid "Click to add next polygon or right click to start isolation."
-msgstr ""
-"Clicca per aggiungere il prossimo poligono o tasto destro per iniziare "
-"l'isolamento."
-
-#: flatcamObjects/FlatCAMGerber.py:683 flatcamTools/ToolPaint.py:1525
-msgid "Removed polygon"
-msgstr "Poligono rimosso"
-
-#: flatcamObjects/FlatCAMGerber.py:684
-msgid "Click to add/remove next polygon or right click to start isolation."
-msgstr ""
-"Clicca per aggiungere/togliere il prossimo poligono o click destro per "
-"iniziare l'isolamento."
-
-#: flatcamObjects/FlatCAMGerber.py:689 flatcamTools/ToolPaint.py:1531
-msgid "No polygon detected under click position."
-msgstr "Nessun poligono rilevato sulla posizione cliccata."
-
-#: flatcamObjects/FlatCAMGerber.py:710 flatcamTools/ToolPaint.py:1560
-msgid "List of single polygons is empty. Aborting."
-msgstr "La lista di poligoni singoli è vuota. Operazione annullata."
-
-#: flatcamObjects/FlatCAMGerber.py:779
-msgid "No polygon in selection."
-msgstr "Nessun poligono nella selezione."
-
-#: flatcamObjects/FlatCAMGerber.py:907 flatcamObjects/FlatCAMGerber.py:986
-#: flatcamTools/ToolNCC.py:2081 flatcamTools/ToolNCC.py:3132
-#: flatcamTools/ToolNCC.py:3511
-msgid "Isolation geometry could not be generated."
-msgstr "Geometria di isolamento non può essere generata."
-
-#: flatcamObjects/FlatCAMGerber.py:932 flatcamObjects/FlatCAMGerber.py:1064
-msgid "Isolation geometry created"
-msgstr "Geometria di isolamento creata"
-
-#: flatcamObjects/FlatCAMGerber.py:941 flatcamObjects/FlatCAMGerber.py:1071
-msgid "Subtracting Geo"
-msgstr "Sottrazione geometria"
-
-#: flatcamObjects/FlatCAMGerber.py:1396
-msgid "Plotting Apertures"
-msgstr "Generazione aperture"
-
-#: flatcamObjects/FlatCAMObj.py:234
-msgid "Name changed from"
-msgstr "Nome cambiato da"
-
-#: flatcamObjects/FlatCAMObj.py:234
-msgid "to"
-msgstr "a"
-
-#: flatcamObjects/FlatCAMObj.py:245
-msgid "Offsetting..."
-msgstr "Applicazione offset..."
-
-#: flatcamObjects/FlatCAMObj.py:259 flatcamObjects/FlatCAMObj.py:264
-msgid "Scaling could not be executed."
-msgstr "La riscalatura non può essere eseguita."
-
-#: flatcamObjects/FlatCAMObj.py:268 flatcamObjects/FlatCAMObj.py:276
-msgid "Scale done."
-msgstr "Riscalatura effettuata."
-
-#: flatcamObjects/FlatCAMObj.py:274
-msgid "Scaling..."
-msgstr "Riscalatura..."
-
-#: flatcamObjects/FlatCAMObj.py:292
-msgid "Skewing..."
-msgstr "Inglinazione..."
-
-#: flatcamObjects/FlatCAMScript.py:163
-msgid "Script Editor"
-msgstr "Editor Script"
-
-#: flatcamObjects/ObjectCollection.py:510
-#, python-brace-format
-msgid "Object renamed from {old} to {new}"
-msgstr "Oggetto rinominato da {old} a {new}"
-
-#: flatcamObjects/ObjectCollection.py:983
-msgid "Cause of error"
-msgstr "Causa dell'errore"
-
-#: flatcamParsers/ParseExcellon.py:316
-msgid "This is GCODE mark"
-msgstr "Marchio GCode"
-
-#: flatcamParsers/ParseExcellon.py:433
-msgid ""
-"No tool diameter info's. See shell.\n"
-"A tool change event: T"
-msgstr ""
-"Nessuna info sul diametro utensile. Vedi shell.\n"
-"Un evento cambio utensile T"
-
-#: flatcamParsers/ParseExcellon.py:436
-msgid ""
-"was found but the Excellon file have no informations regarding the tool "
-"diameters therefore the application will try to load it by using some 'fake' "
-"diameters.\n"
-"The user needs to edit the resulting Excellon object and change the "
-"diameters to reflect the real diameters."
-msgstr ""
-"è stato rilevato ma il file Excellon non ha informazioni a riguardo del "
-"diametro dell'utensile. L'applicazione tenterà di caricarlo usando un "
-"diametro \"finto\".\n"
-"L'utente dovrà editare l'oggetto Excellon e cambiarle il diametro per "
-"contenere il diametro corretto."
-
-#: flatcamParsers/ParseExcellon.py:900
-msgid ""
-"Excellon Parser error.\n"
-"Parsing Failed. Line"
-msgstr "Errore analisi Excellon. Analisi fallita. Linea"
-
-#: flatcamParsers/ParseExcellon.py:982
-msgid ""
-"Excellon.create_geometry() -> a drill location was skipped due of not having "
-"a tool associated.\n"
-"Check the resulting GCode."
-msgstr ""
-"Excellon.create_geometry() -> è stata ignorata una posizione di foratura per "
-"la mancanza di utensile.\n"
-"Controllare il GCode risultante."
-
-#: flatcamParsers/ParseFont.py:303
-msgid "Font not supported, try another one."
-msgstr "Font non supportato, prova con un altro."
-
-#: flatcamParsers/ParseGerber.py:426
-msgid "Gerber processing. Parsing"
-msgstr "Processo Gerber. Analisi"
-
-#: flatcamParsers/ParseGerber.py:426 flatcamParsers/ParseHPGL2.py:178
-msgid "lines"
-msgstr "righe"
-
-#: flatcamParsers/ParseGerber.py:1002 flatcamParsers/ParseGerber.py:1102
-#: flatcamParsers/ParseHPGL2.py:271 flatcamParsers/ParseHPGL2.py:285
-#: flatcamParsers/ParseHPGL2.py:304 flatcamParsers/ParseHPGL2.py:328
-#: flatcamParsers/ParseHPGL2.py:363
-msgid "Coordinates missing, line ignored"
-msgstr "Coordinate mancanti, riga ignorata"
-
-#: flatcamParsers/ParseGerber.py:1004 flatcamParsers/ParseGerber.py:1104
-msgid "GERBER file might be CORRUPT. Check the file !!!"
-msgstr "Il file GERBER potrebbe essere CORROTTO. Controlla il file !!!"
-
-#: flatcamParsers/ParseGerber.py:1058
-msgid ""
-"Region does not have enough points. File will be processed but there are "
-"parser errors. Line number"
-msgstr ""
-"La regione non ha sufficienti punti. Il file sarà usato ma ci sono errori di "
-"analisi. Riga numero"
-
-#: flatcamParsers/ParseGerber.py:1488 flatcamParsers/ParseHPGL2.py:398
-msgid "Gerber processing. Joining polygons"
-msgstr "Gerber analizzato. Unione poligoni"
-
-#: flatcamParsers/ParseGerber.py:1505
-msgid "Gerber processing. Applying Gerber polarity."
-msgstr "Gerber analizzato. Applico polarità Gerber."
-
-#: flatcamParsers/ParseGerber.py:1565
-msgid "Gerber Line"
-msgstr "Riga Gerber"
-
-#: flatcamParsers/ParseGerber.py:1565
-msgid "Gerber Line Content"
-msgstr "Contenuto riga Gerber"
-
-#: flatcamParsers/ParseGerber.py:1567
-msgid "Gerber Parser ERROR"
-msgstr "ERRORE analisi Gerber"
-
-#: flatcamParsers/ParseGerber.py:1957
-msgid "Gerber Scale done."
-msgstr "Riscalatura Gerber completata."
-
-#: flatcamParsers/ParseGerber.py:2049
-msgid "Gerber Offset done."
-msgstr "Spostamento Gerber completato."
-
-#: flatcamParsers/ParseGerber.py:2125
-msgid "Gerber Mirror done."
-msgstr "Specchiature Gerber completata."
-
-#: flatcamParsers/ParseGerber.py:2199
-msgid "Gerber Skew done."
-msgstr "Inclinazione Gerber completata."
-
-#: flatcamParsers/ParseGerber.py:2261
-msgid "Gerber Rotate done."
-msgstr "Rotazione Gerber completata."
-
-#: flatcamParsers/ParseGerber.py:2418
-msgid "Gerber Buffer done."
-msgstr "Riempimento Gerber completato."
-
-#: flatcamParsers/ParseHPGL2.py:178
-msgid "HPGL2 processing. Parsing"
-msgstr "Controllo HPGL2. Analisi"
-
-#: flatcamParsers/ParseHPGL2.py:410
-msgid "HPGL2 Line"
-msgstr "Riga HPGL2"
-
-#: flatcamParsers/ParseHPGL2.py:410
-msgid "HPGL2 Line Content"
-msgstr "Contenuto riga HPGL2"
-
-#: flatcamParsers/ParseHPGL2.py:411
-msgid "HPGL2 Parser ERROR"
-msgstr "ERRORE analisi HPGL2"
-
-#: flatcamTools/ToolAlignObjects.py:32
-msgid "Align Objects"
-msgstr "Allinea oggetti"
-
-#: flatcamTools/ToolAlignObjects.py:61
-msgid "MOVING object"
-msgstr "SPOSTAMENTO oggetto"
-
-#: flatcamTools/ToolAlignObjects.py:65
-msgid ""
-"Specify the type of object to be aligned.\n"
-"It can be of type: Gerber or Excellon.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Object combobox."
-msgstr ""
-"Specificare il tipo di oggetto da allineare.\n"
-"Può essere di tipo: Gerber o Excellon.\n"
-"La selezione decide il tipo di oggetti che saranno\n"
-"nella combobox Oggetto."
-
-#: flatcamTools/ToolAlignObjects.py:86
-msgid "Object to be aligned."
-msgstr "Oggetto da allineare."
-
-#: flatcamTools/ToolAlignObjects.py:98
-msgid "TARGET object"
-msgstr "Oggetto DESTINAZIONE"
-
-#: flatcamTools/ToolAlignObjects.py:100
-msgid ""
-"Specify the type of object to be aligned to.\n"
-"It can be of type: Gerber or Excellon.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Object combobox."
-msgstr ""
-"Specificare il tipo di oggetto da allineare.\n"
-"Può essere di tipo: Gerber o Excellon.\n"
-"La selezione decide il tipo di oggetti che saranno\n"
-"nella combobox Oggetto."
-
-#: flatcamTools/ToolAlignObjects.py:122
-msgid "Object to be aligned to. Aligner."
-msgstr "Oggetto da allineare. Allineatore."
-
-#: flatcamTools/ToolAlignObjects.py:135
-msgid "Alignment Type"
-msgstr "Tipo allineamento"
-
-#: flatcamTools/ToolAlignObjects.py:137
-msgid ""
-"The type of alignment can be:\n"
-"- Single Point -> it require a single point of sync, the action will be a "
-"translation\n"
-"- Dual Point -> it require two points of sync, the action will be "
-"translation followed by rotation"
-msgstr ""
-"Il tipo di allineamento può essere:\n"
-"- Punto singolo -> richiede un solo punto di sincronizzazione, l'azione sarà "
-"una traslazione\n"
-"- Punto doppio -> richiede due punti di sincronizzazione, l'azione sarà la "
-"traslazione seguita da rotazione"
-
-#: flatcamTools/ToolAlignObjects.py:143
-msgid "Single Point"
-msgstr "Punto singolo"
-
-#: flatcamTools/ToolAlignObjects.py:144
-msgid "Dual Point"
-msgstr "Doppio punto"
-
-#: flatcamTools/ToolAlignObjects.py:159
-msgid "Align Object"
-msgstr "Allinea oggetto"
-
-#: flatcamTools/ToolAlignObjects.py:161
-msgid ""
-"Align the specified object to the aligner object.\n"
-"If only one point is used then it assumes translation.\n"
-"If tho points are used it assume translation and rotation."
-msgstr ""
-"Allinea l'oggetto specificato all'oggetto allineatore.\n"
-"Se viene utilizzato solo un punto, assume la traslazione.\n"
-"Se si utilizzano i punti, si assume la traslazione e rotazione."
-
-#: flatcamTools/ToolAlignObjects.py:176 flatcamTools/ToolCalculators.py:246
-#: flatcamTools/ToolCalibration.py:683 flatcamTools/ToolCopperThieving.py:484
-#: flatcamTools/ToolCutOut.py:362 flatcamTools/ToolDblSided.py:471
-#: flatcamTools/ToolExtractDrills.py:310 flatcamTools/ToolFiducials.py:318
-#: flatcamTools/ToolFilm.py:520 flatcamTools/ToolInvertGerber.py:140
-#: flatcamTools/ToolNCC.py:612 flatcamTools/ToolOptimal.py:237
-#: flatcamTools/ToolPaint.py:556 flatcamTools/ToolPanelize.py:269
-#: flatcamTools/ToolPunchGerber.py:339 flatcamTools/ToolQRCode.py:314
-#: flatcamTools/ToolRulesCheck.py:516 flatcamTools/ToolSolderPaste.py:473
-#: flatcamTools/ToolSub.py:176 flatcamTools/ToolTransform.py:398
-msgid "Reset Tool"
-msgstr "Azzera strumento"
-
-#: flatcamTools/ToolAlignObjects.py:178 flatcamTools/ToolCalculators.py:248
-#: flatcamTools/ToolCalibration.py:685 flatcamTools/ToolCopperThieving.py:486
-#: flatcamTools/ToolCutOut.py:364 flatcamTools/ToolDblSided.py:473
-#: flatcamTools/ToolExtractDrills.py:312 flatcamTools/ToolFiducials.py:320
-#: flatcamTools/ToolFilm.py:522 flatcamTools/ToolInvertGerber.py:142
-#: flatcamTools/ToolNCC.py:614 flatcamTools/ToolOptimal.py:239
-#: flatcamTools/ToolPaint.py:558 flatcamTools/ToolPanelize.py:271
-#: flatcamTools/ToolPunchGerber.py:341 flatcamTools/ToolQRCode.py:316
-#: flatcamTools/ToolRulesCheck.py:518 flatcamTools/ToolSolderPaste.py:475
-#: flatcamTools/ToolSub.py:178 flatcamTools/ToolTransform.py:400
-msgid "Will reset the tool parameters."
-msgstr "Azzererà i parametri dello strumento."
-
-#: flatcamTools/ToolAlignObjects.py:244
-msgid "Align Tool"
-msgstr "Strumento allineamento"
-
-#: flatcamTools/ToolAlignObjects.py:289
-msgid "There is no aligned FlatCAM object selected..."
-msgstr "Non si sono oggetti FlatCAM allineati..."
-
-#: flatcamTools/ToolAlignObjects.py:299
-msgid "There is no aligner FlatCAM object selected..."
-msgstr "Non si sono oggetti FlatCAM allineatori selezionati..."
-
-#: flatcamTools/ToolAlignObjects.py:325 flatcamTools/ToolAlignObjects.py:385
-msgid "First Point"
-msgstr "Primo punto"
-
-#: flatcamTools/ToolAlignObjects.py:325 flatcamTools/ToolAlignObjects.py:400
-msgid "Click on the START point."
-msgstr "Fai clic sul punto di PARTENZA."
-
-#: flatcamTools/ToolAlignObjects.py:380 flatcamTools/ToolCalibration.py:920
-msgid "Cancelled by user request."
-msgstr "Annullato su richiesta dell'utente."
-
-#: flatcamTools/ToolAlignObjects.py:385 flatcamTools/ToolAlignObjects.py:407
-msgid "Click on the DESTINATION point."
-msgstr "Fai clic sul punto di DESTINAZIONE."
-
-#: flatcamTools/ToolAlignObjects.py:385 flatcamTools/ToolAlignObjects.py:400
-#: flatcamTools/ToolAlignObjects.py:407
-msgid "Or right click to cancel."
-msgstr "O click destro per annullare."
-
-#: flatcamTools/ToolAlignObjects.py:400 flatcamTools/ToolAlignObjects.py:407
-#: flatcamTools/ToolFiducials.py:111
-msgid "Second Point"
-msgstr "Secondo punto"
-
-#: flatcamTools/ToolCalculators.py:24
-msgid "Calculators"
-msgstr "Calcolatrici"
-
-#: flatcamTools/ToolCalculators.py:26
-msgid "Units Calculator"
-msgstr "Calcolatrice unità"
-
-#: flatcamTools/ToolCalculators.py:70
-msgid "Here you enter the value to be converted from INCH to MM"
-msgstr "Puoi convertire unita da POLLICI a MM"
-
-#: flatcamTools/ToolCalculators.py:75
-msgid "Here you enter the value to be converted from MM to INCH"
-msgstr "Puoi convertire unita da MM a POLLICI"
-
-#: flatcamTools/ToolCalculators.py:111
-msgid ""
-"This is the angle of the tip of the tool.\n"
-"It is specified by manufacturer."
-msgstr ""
-"Questo è l'angolo della punta dell'utensile.\n"
-"È specificato dal produttore."
-
-#: flatcamTools/ToolCalculators.py:120
-msgid ""
-"This is the depth to cut into the material.\n"
-"In the CNCJob is the CutZ parameter."
-msgstr ""
-"Questa è la profondità di taglio nel materiale.\n"
-"Nel CNCJob è presente il parametro CutZ."
-
-#: flatcamTools/ToolCalculators.py:128
-msgid ""
-"This is the tool diameter to be entered into\n"
-"FlatCAM Gerber section.\n"
-"In the CNCJob section it is called >Tool dia<."
-msgstr ""
-"Questo è il diametro dell'utensile da inserire\n"
-"nella sezione FlatCAM Gerber.\n"
-"Nella sezione CNCJob si chiama >Tool dia<."
-
-#: flatcamTools/ToolCalculators.py:139 flatcamTools/ToolCalculators.py:235
-msgid "Calculate"
-msgstr "Calcola"
-
-#: flatcamTools/ToolCalculators.py:142
-msgid ""
-"Calculate either the Cut Z or the effective tool diameter,\n"
-" depending on which is desired and which is known. "
-msgstr ""
-"Calcola il taglio Z o il diametro effettivo dell'utensile,\n"
-" a seconda del risultato desiderato o dei dati noti. "
-
-#: flatcamTools/ToolCalculators.py:205
-msgid "Current Value"
-msgstr "Valore corrente"
-
-#: flatcamTools/ToolCalculators.py:212
-msgid ""
-"This is the current intensity value\n"
-"to be set on the Power Supply. In Amps."
-msgstr ""
-"Intensità di corrente da impostare\n"
-"nell'alimentatore. In Ampere."
-
-#: flatcamTools/ToolCalculators.py:216
-msgid "Time"
-msgstr "Tempo"
-
-#: flatcamTools/ToolCalculators.py:223
-msgid ""
-"This is the calculated time required for the procedure.\n"
-"In minutes."
-msgstr "Tempo calcolato per la procedura. In minuti."
-
-#: flatcamTools/ToolCalculators.py:238
-msgid ""
-"Calculate the current intensity value and the procedure time,\n"
-"depending on the parameters above"
-msgstr ""
-"Calcula l'intensità di corrente e la durata della procedura,\n"
-"a seconda dei parametri sopra"
-
-#: flatcamTools/ToolCalculators.py:299
-msgid "Calc. Tool"
-msgstr "Strumenti Calcolatrici"
-
-#: flatcamTools/ToolCalibration.py:67
-msgid "GCode Parameters"
-msgstr "Parametri GCode"
-
-#: flatcamTools/ToolCalibration.py:69
-msgid "Parameters used when creating the GCode in this tool."
-msgstr "Parametri usati nella creazione del GCode in questo strumento."
-
-#: flatcamTools/ToolCalibration.py:173
-msgid "STEP 1: Acquire Calibration Points"
-msgstr "PASSO 1: Acquisizione dei punti di calibrazione"
-
-#: flatcamTools/ToolCalibration.py:175
-msgid ""
-"Pick four points by clicking on canvas.\n"
-"Those four points should be in the four\n"
-"(as much as possible) corners of the object."
-msgstr ""
-"Calcola il taglio Z o il diametro effettivo dell'utensile,\n"
-" a seconda del risultato desiderato o dei dati noti...."
-
-#: flatcamTools/ToolCalibration.py:193 flatcamTools/ToolFilm.py:76
-#: flatcamTools/ToolImage.py:54 flatcamTools/ToolPanelize.py:78
-#: flatcamTools/ToolProperties.py:177
-msgid "Object Type"
-msgstr "Tipo oggetto"
-
-#: flatcamTools/ToolCalibration.py:210
-msgid "Source object selection"
-msgstr "Selezione oggetto di origine"
-
-#: flatcamTools/ToolCalibration.py:212
-msgid "FlatCAM Object to be used as a source for reference points."
-msgstr "Oggetto FlatCAM da usare come sorgente per i punti di riferimento."
-
-#: flatcamTools/ToolCalibration.py:218
-msgid "Calibration Points"
-msgstr "Punti di calibrazione"
-
-#: flatcamTools/ToolCalibration.py:220
-msgid ""
-"Contain the expected calibration points and the\n"
-"ones measured."
-msgstr ""
-"Contiene i punti di calibrazione e\n"
-"quelli misurati."
-
-#: flatcamTools/ToolCalibration.py:235 flatcamTools/ToolSub.py:76
-#: flatcamTools/ToolSub.py:131
-msgid "Target"
-msgstr "Destinazione"
-
-#: flatcamTools/ToolCalibration.py:236
-msgid "Found Delta"
-msgstr "Calcolo Delta"
-
-#: flatcamTools/ToolCalibration.py:248
-msgid "Bot Left X"
-msgstr "X basso-Sinistra"
-
-#: flatcamTools/ToolCalibration.py:257
-msgid "Bot Left Y"
-msgstr "Y Basso-Sinistra"
-
-#: flatcamTools/ToolCalibration.py:275
-msgid "Bot Right X"
-msgstr "X Basso-Destra"
-
-#: flatcamTools/ToolCalibration.py:285
-msgid "Bot Right Y"
-msgstr "Y Basso-Destra"
-
-#: flatcamTools/ToolCalibration.py:300
-msgid "Top Left X"
-msgstr "X Alto-Sinistra"
-
-#: flatcamTools/ToolCalibration.py:309
-msgid "Top Left Y"
-msgstr "Y Alto-Sinistra"
-
-#: flatcamTools/ToolCalibration.py:324
-msgid "Top Right X"
-msgstr "X Alto-Destra"
-
-#: flatcamTools/ToolCalibration.py:334
-msgid "Top Right Y"
-msgstr "Y Alto-Destra"
-
-#: flatcamTools/ToolCalibration.py:367
-msgid "Get Points"
-msgstr "Ottieni punti"
-
-#: flatcamTools/ToolCalibration.py:369
-msgid ""
-"Pick four points by clicking on canvas if the source choice\n"
-"is 'free' or inside the object geometry if the source is 'object'.\n"
-"Those four points should be in the four squares of\n"
-"the object."
-msgstr ""
-"Seleziona quattro punti cliccandoci sopra se l'origine scelta è\n"
-"'libera' o all'interno dell'oggetto geometria se la sorgente è 'oggetto'.\n"
-"Questi quattro punti dovrebbero essere nei quattro angoli\n"
-"dell'oggetto."
-
-#: flatcamTools/ToolCalibration.py:390
-msgid "STEP 2: Verification GCode"
-msgstr "PASSO 2: Verifica del GCode"
-
-#: flatcamTools/ToolCalibration.py:392 flatcamTools/ToolCalibration.py:405
-msgid ""
-"Generate GCode file to locate and align the PCB by using\n"
-"the four points acquired above.\n"
-"The points sequence is:\n"
-"- first point -> set the origin\n"
-"- second point -> alignment point. Can be: top-left or bottom-right.\n"
-"- third point -> check point. Can be: top-left or bottom-right.\n"
-"- forth point -> final verification point. Just for evaluation."
-msgstr ""
-"Genera il file GCode per individuare e allineare il PCB utilizzando\n"
-"i quattro punti acquisiti sopra.\n"
-"La sequenza di punti è:\n"
-"- primo punto -> imposta l'origine\n"
-"- secondo punto -> punto di allineamento. Può essere: in alto a sinistra o "
-"in basso a destra.\n"
-"- terzo punto -> punto di controllo. Può essere: in alto a sinistra o in "
-"basso a destra.\n"
-"- quarto punto -> punto di verifica finale. Solo per valutazione."
-
-#: flatcamTools/ToolCalibration.py:403 flatcamTools/ToolSolderPaste.py:348
-msgid "Generate GCode"
-msgstr "Genera GCode"
-
-#: flatcamTools/ToolCalibration.py:429
-msgid "STEP 3: Adjustments"
-msgstr "PASSO 3: modifica"
-
-#: flatcamTools/ToolCalibration.py:431 flatcamTools/ToolCalibration.py:440
-msgid ""
-"Calculate Scale and Skew factors based on the differences (delta)\n"
-"found when checking the PCB pattern. The differences must be filled\n"
-"in the fields Found (Delta)."
-msgstr ""
-"Calcola i fattori di scala e di inclinazione in base alle differenze "
-"(delta)\n"
-"trovate durante il controllo del PCB. Le differenze devono essere colmate\n"
-"nei campi Trovato (Delta)."
-
-#: flatcamTools/ToolCalibration.py:438
-msgid "Calculate Factors"
-msgstr "Calcola fattori"
-
-#: flatcamTools/ToolCalibration.py:460
-msgid "STEP 4: Adjusted GCode"
-msgstr "PASSO 4: GCode modificato"
-
-#: flatcamTools/ToolCalibration.py:462
-msgid ""
-"Generate verification GCode file adjusted with\n"
-"the factors above."
-msgstr ""
-"Genera file GCode di verifica modificato con\n"
-"i fattori sopra."
-
-#: flatcamTools/ToolCalibration.py:467
-msgid "Scale Factor X:"
-msgstr "Fattore X scala:"
-
-#: flatcamTools/ToolCalibration.py:479
-msgid "Scale Factor Y:"
-msgstr "Fattore Y scala:"
-
-#: flatcamTools/ToolCalibration.py:491
-msgid "Apply Scale Factors"
-msgstr "Applica fattori di scala"
-
-#: flatcamTools/ToolCalibration.py:493
-msgid "Apply Scale factors on the calibration points."
-msgstr "Applica fattori di scala sui punti di calibrazione."
-
-#: flatcamTools/ToolCalibration.py:503
-msgid "Skew Angle X:"
-msgstr "Angolo inclinazione X:"
-
-#: flatcamTools/ToolCalibration.py:516
-msgid "Skew Angle Y:"
-msgstr "Angolo inclinazione Y:"
-
-#: flatcamTools/ToolCalibration.py:529
-msgid "Apply Skew Factors"
-msgstr "Applica fattori di inclinazione"
-
-#: flatcamTools/ToolCalibration.py:531
-msgid "Apply Skew factors on the calibration points."
-msgstr "Applica fattori di inclinazione sui punti di calibrazione."
-
-#: flatcamTools/ToolCalibration.py:600
-msgid "Generate Adjusted GCode"
-msgstr "Genera GCode modificato"
-
-#: flatcamTools/ToolCalibration.py:602
-msgid ""
-"Generate verification GCode file adjusted with\n"
-"the factors set above.\n"
-"The GCode parameters can be readjusted\n"
-"before clicking this button."
-msgstr ""
-"Genera file GCode di verifica modificato con\n"
-"i fattori sopra indicati.\n"
-"I parametri GCode possono essere riadattati\n"
-"prima di fare clic su questo pulsante."
-
-#: flatcamTools/ToolCalibration.py:623
-msgid "STEP 5: Calibrate FlatCAM Objects"
-msgstr "PASSO 5: Calibra oggetti FlatCAM"
-
-#: flatcamTools/ToolCalibration.py:625
-msgid ""
-"Adjust the FlatCAM objects\n"
-"with the factors determined and verified above."
-msgstr ""
-"Regola gli oggetti FlatCAM\n"
-"con i fattori determinati e verificati sopra."
-
-#: flatcamTools/ToolCalibration.py:637
-msgid "Adjusted object type"
-msgstr "Tipo oggetto regolato"
-
-#: flatcamTools/ToolCalibration.py:638
-msgid "Type of the FlatCAM Object to be adjusted."
-msgstr "Tipo di oggetto FlatCAM da regolare."
-
-#: flatcamTools/ToolCalibration.py:651
-msgid "Adjusted object selection"
-msgstr "Selezione oggetto regolato"
-
-#: flatcamTools/ToolCalibration.py:653
-msgid "The FlatCAM Object to be adjusted."
-msgstr "L'oggetto FlatCAM da regolare."
-
-#: flatcamTools/ToolCalibration.py:660
-msgid "Calibrate"
-msgstr "Calibra"
-
-#: flatcamTools/ToolCalibration.py:662
-msgid ""
-"Adjust (scale and/or skew) the objects\n"
-"with the factors determined above."
-msgstr ""
-"Regola (scala e/o inclina) gli oggetti\n"
-"con i fattori determinati sopra."
-
-#: flatcamTools/ToolCalibration.py:770 flatcamTools/ToolCalibration.py:771
-msgid "Origin"
-msgstr "Origine"
-
-#: flatcamTools/ToolCalibration.py:800
-msgid "Tool initialized"
-msgstr "Strumento inizializzato"
-
-#: flatcamTools/ToolCalibration.py:838
-msgid "There is no source FlatCAM object selected..."
-msgstr "Non si sono oggetti FlatCAM sorgente selezionati..."
-
-#: flatcamTools/ToolCalibration.py:859
-msgid "Get First calibration point. Bottom Left..."
-msgstr "Primo punto di calibrazione. In basso a sinistra..."
-
-#: flatcamTools/ToolCalibration.py:926
-msgid "Get Second calibration point. Bottom Right (Top Left)..."
-msgstr "Secondo punto di calibrazione. In basso a destra (Sopra Sinistra) ..."
-
-#: flatcamTools/ToolCalibration.py:930
-msgid "Get Third calibration point. Top Left (Bottom Right)..."
-msgstr "Terzo punto di calibrazione. Sopra a sinistra (Basso Destra)…."
-
-#: flatcamTools/ToolCalibration.py:934
-msgid "Get Forth calibration point. Top Right..."
-msgstr "Quarto punto di calibrazione. In alto a destra..."
-
-#: flatcamTools/ToolCalibration.py:938
-msgid "Done. All four points have been acquired."
-msgstr "Fatto. I quattro punti sono stati ascuisiti."
-
-#: flatcamTools/ToolCalibration.py:969
-msgid "Verification GCode for FlatCAM Calibration Tool"
-msgstr "Verifica Gcode per lo strumento Calibrazione di FlatCAM"
-
-#: flatcamTools/ToolCalibration.py:981 flatcamTools/ToolCalibration.py:1067
-msgid "Gcode Viewer"
-msgstr "Visualizzatore GCode"
-
-#: flatcamTools/ToolCalibration.py:997
-msgid "Cancelled. Four points are needed for GCode generation."
-msgstr "Annullato. Sono necessari 4 punti per la generazione del GCode."
-
-#: flatcamTools/ToolCalibration.py:1253 flatcamTools/ToolCalibration.py:1349
-msgid "There is no FlatCAM object selected..."
-msgstr "Non si sono oggetti FlatCAM selezionati..."
-
-#: flatcamTools/ToolCopperThieving.py:76 flatcamTools/ToolFiducials.py:261
-msgid "Gerber Object to which will be added a copper thieving."
-msgstr "Oggetto Gerber a cui verrà aggiunto rame."
-
-#: flatcamTools/ToolCopperThieving.py:98
-msgid ""
-"This set the distance between the copper thieving components\n"
-"(the polygon fill may be split in multiple polygons)\n"
-"and the copper traces in the Gerber file."
-msgstr ""
-"Questo imposta la distanza tra i componenti del deposito di rame\n"
-"(il riempimento poligonale può essere suddiviso in più poligoni)\n"
-"e le tracce di rame nel file Gerber."
-
-#: flatcamTools/ToolCopperThieving.py:131
-msgid ""
-"- 'Itself' - the copper thieving extent is based on the object extent.\n"
-"- 'Area Selection' - left mouse click to start selection of the area to be "
-"filled.\n"
-"- 'Reference Object' - will do copper thieving within the area specified by "
-"another object."
-msgstr ""
-"- 'Stesso': l'estensione del deposito di rame si basa sull'estensione "
-"dell'oggetto.\n"
-"- 'Selezione area': fare clic con il pulsante sinistro del mouse per avviare "
-"la selezione dell'area da riempire.\n"
-"- 'Oggetto di riferimento': eseguirà il furto di rame nell'area specificata "
-"da un altro oggetto."
-
-#: flatcamTools/ToolCopperThieving.py:138 flatcamTools/ToolNCC.py:552
-#: flatcamTools/ToolPaint.py:496
-msgid "Ref. Type"
-msgstr "Tipo riferimento"
-
-#: flatcamTools/ToolCopperThieving.py:140
-msgid ""
-"The type of FlatCAM object to be used as copper thieving reference.\n"
-"It can be Gerber, Excellon or Geometry."
-msgstr ""
-"Il tipo di oggetto FlatCAM da utilizzare come deposito di rame di "
-"riferimento.\n"
-"Può essere Gerber, Excellon o Geometry."
-
-#: flatcamTools/ToolCopperThieving.py:149 flatcamTools/ToolNCC.py:562
-#: flatcamTools/ToolPaint.py:506
-msgid "Ref. Object"
-msgstr "Oggetto di riferimento"
-
-#: flatcamTools/ToolCopperThieving.py:151 flatcamTools/ToolNCC.py:564
-#: flatcamTools/ToolPaint.py:508
-msgid "The FlatCAM object to be used as non copper clearing reference."
-msgstr "Oggetto FlatCAM da usare come riferimento rimozione rame."
-
-#: flatcamTools/ToolCopperThieving.py:327
-msgid "Insert Copper thieving"
-msgstr "Inserire il deposito di rame"
-
-#: flatcamTools/ToolCopperThieving.py:329
-msgid ""
-"Will add a polygon (may be split in multiple parts)\n"
-"that will surround the actual Gerber traces at a certain distance."
-msgstr ""
-"Aggiungerà un poligono (può essere diviso in più parti)\n"
-"che circonderà le tracce Gerber attuali ad una certa distanza."
-
-#: flatcamTools/ToolCopperThieving.py:388
-msgid "Insert Robber Bar"
-msgstr "Inserisci la barra del ladro"
-
-#: flatcamTools/ToolCopperThieving.py:390
-msgid ""
-"Will add a polygon with a defined thickness\n"
-"that will surround the actual Gerber object\n"
-"at a certain distance.\n"
-"Required when doing holes pattern plating."
-msgstr ""
-"Aggiungerà un poligono con uno spessore definito\n"
-"che circonderà l'oggetto Gerber reale\n"
-"ad una certa distanza.\n"
-"Richiesto quando si esegue la placcatura di fori."
-
-#: flatcamTools/ToolCopperThieving.py:414
-msgid "Select Soldermask object"
-msgstr "Seleziona oggetto Soldermask"
-
-#: flatcamTools/ToolCopperThieving.py:416
-msgid ""
-"Gerber Object with the soldermask.\n"
-"It will be used as a base for\n"
-"the pattern plating mask."
-msgstr ""
-"Oggetto Gerber con il soldermask.\n"
-"Sarà usato come base per\n"
-"la maschera di placcatura del modello."
-
-#: flatcamTools/ToolCopperThieving.py:445
-msgid "Plated area"
-msgstr "Area ricoperta"
-
-#: flatcamTools/ToolCopperThieving.py:447
-msgid ""
-"The area to be plated by pattern plating.\n"
-"Basically is made from the openings in the plating mask.\n"
-"\n"
-"<> - the calculated area is actually a bit larger\n"
-"due of the fact that the soldermask openings are by design\n"
-"a bit larger than the copper pads, and this area is\n"
-"calculated from the soldermask openings."
-msgstr ""
-"L'area da ricoprire mediante placcatura a motivo.\n"
-"Fondamentalmente è fatto dalle aperture nella maschera di placcatura.\n"
-"\n"
-"<>: l'area calcolata è in realtà un po' più grande\n"
-"a causa del fatto che le aperture del soldermask sono progettate\n"
-"un po' più grandi dei pad di rame, e questa area è\n"
-"calcolata dalle aperture del soldermask."
-
-#: flatcamTools/ToolCopperThieving.py:458
-msgid "mm"
-msgstr "mm"
-
-#: flatcamTools/ToolCopperThieving.py:460
-msgid "in"
-msgstr "pollici"
-
-#: flatcamTools/ToolCopperThieving.py:467
-msgid "Generate pattern plating mask"
-msgstr "Genera maschera placcatura modello"
-
-#: flatcamTools/ToolCopperThieving.py:469
-msgid ""
-"Will add to the soldermask gerber geometry\n"
-"the geometries of the copper thieving and/or\n"
-"the robber bar if those were generated."
-msgstr ""
-"Aggiungerà alla geometria gerber soldermask\n"
-"le geometrie del deposito di rame e/o\n"
-"la barra dei ladri se sono stati generati."
-
-#: flatcamTools/ToolCopperThieving.py:625
-#: flatcamTools/ToolCopperThieving.py:650
-msgid "Lines Grid works only for 'itself' reference ..."
-msgstr "Griglia linee funziona solo per riferimento 'stesso' ..."
-
-#: flatcamTools/ToolCopperThieving.py:636
-msgid "Solid fill selected."
-msgstr "Riempimento solido selezionato."
-
-#: flatcamTools/ToolCopperThieving.py:641
-msgid "Dots grid fill selected."
-msgstr "Riempimento griglia di punti selezionata."
-
-#: flatcamTools/ToolCopperThieving.py:646
-msgid "Squares grid fill selected."
-msgstr "Riempimento griglia di quadrati selezionata."
-
-#: flatcamTools/ToolCopperThieving.py:667
-#: flatcamTools/ToolCopperThieving.py:749
-#: flatcamTools/ToolCopperThieving.py:1345 flatcamTools/ToolDblSided.py:657
-#: flatcamTools/ToolExtractDrills.py:436 flatcamTools/ToolFiducials.py:466
-#: flatcamTools/ToolFiducials.py:743 flatcamTools/ToolOptimal.py:342
-#: flatcamTools/ToolPunchGerber.py:512 flatcamTools/ToolQRCode.py:426
-msgid "There is no Gerber object loaded ..."
-msgstr "Non ci sono oggetti Gerber caricati ..."
-
-#: flatcamTools/ToolCopperThieving.py:680
-#: flatcamTools/ToolCopperThieving.py:1273
-msgid "Append geometry"
-msgstr "Aggiungi geometria"
-
-#: flatcamTools/ToolCopperThieving.py:724
-#: flatcamTools/ToolCopperThieving.py:1306
-#: flatcamTools/ToolCopperThieving.py:1459
-msgid "Append source file"
-msgstr "Aggiungi file sorgente"
-
-#: flatcamTools/ToolCopperThieving.py:732
-#: flatcamTools/ToolCopperThieving.py:1314
-msgid "Copper Thieving Tool done."
-msgstr "Strumento deposito di rame fatto."
-
-#: flatcamTools/ToolCopperThieving.py:759
-#: flatcamTools/ToolCopperThieving.py:792 flatcamTools/ToolCutOut.py:515
-#: flatcamTools/ToolCutOut.py:720 flatcamTools/ToolInvertGerber.py:208
-#: flatcamTools/ToolNCC.py:1594 flatcamTools/ToolNCC.py:1635
-#: flatcamTools/ToolNCC.py:1664 flatcamTools/ToolPaint.py:1469
-#: flatcamTools/ToolPanelize.py:412 flatcamTools/ToolPanelize.py:426
-#: flatcamTools/ToolSub.py:294 flatcamTools/ToolSub.py:307
-#: flatcamTools/ToolSub.py:498 flatcamTools/ToolSub.py:513
-#: tclCommands/TclCommandCopperClear.py:97 tclCommands/TclCommandPaint.py:99
-msgid "Could not retrieve object"
-msgstr "Impossibile recuperare l'oggetto"
-
-#: flatcamTools/ToolCopperThieving.py:769 flatcamTools/ToolNCC.py:1643
-msgid "Click the start point of the area."
-msgstr "Fai clic sul punto iniziale dell'area."
-
-#: flatcamTools/ToolCopperThieving.py:820
-msgid "Click the end point of the filling area."
-msgstr "Fai clic sul punto finale dell'area di riempimento."
-
-#: flatcamTools/ToolCopperThieving.py:826 flatcamTools/ToolNCC.py:1705
-#: flatcamTools/ToolNCC.py:1757 flatcamTools/ToolPaint.py:1601
-#: flatcamTools/ToolPaint.py:1652
-msgid "Zone added. Click to start adding next zone or right click to finish."
-msgstr ""
-"Zona aggiunta. Fare clic per iniziare ad aggiungere la zona successiva o "
-"fare clic con il tasto destro per terminare."
-
-#: flatcamTools/ToolCopperThieving.py:942
-#: flatcamTools/ToolCopperThieving.py:946
-#: flatcamTools/ToolCopperThieving.py:1007
-msgid "Thieving"
-msgstr "Deposito"
-
-#: flatcamTools/ToolCopperThieving.py:953
-msgid "Copper Thieving Tool started. Reading parameters."
-msgstr "Strumento deposito di rame avviato. Lettura dei parametri."
-
-#: flatcamTools/ToolCopperThieving.py:978
-msgid "Copper Thieving Tool. Preparing isolation polygons."
-msgstr ""
-"Strumento deposito di rame avviato. Preparazione poligoni di isolamento."
-
-#: flatcamTools/ToolCopperThieving.py:1023
-msgid "Copper Thieving Tool. Preparing areas to fill with copper."
-msgstr ""
-"Strumento deposito di rame avviato. Preparazione aree da riempire di rame."
-
-#: flatcamTools/ToolCopperThieving.py:1034 flatcamTools/ToolOptimal.py:349
-#: flatcamTools/ToolPanelize.py:799 flatcamTools/ToolRulesCheck.py:1127
-msgid "Working..."
-msgstr "Elaborazione..."
-
-#: flatcamTools/ToolCopperThieving.py:1061
-msgid "Geometry not supported for bounding box"
-msgstr "Geometria non supportata per box di selezione"
-
-#: flatcamTools/ToolCopperThieving.py:1067 flatcamTools/ToolNCC.py:1928
-#: flatcamTools/ToolNCC.py:1983 flatcamTools/ToolNCC.py:2987
-#: flatcamTools/ToolPaint.py:3375
-msgid "No object available."
-msgstr "Nessun oggetto disponibile."
-
-#: flatcamTools/ToolCopperThieving.py:1104 flatcamTools/ToolNCC.py:1953
-#: flatcamTools/ToolNCC.py:2006 flatcamTools/ToolNCC.py:3029
-msgid "The reference object type is not supported."
-msgstr "Il tipo di oggetto di riferimento non è supportato."
-
-#: flatcamTools/ToolCopperThieving.py:1109
-msgid "Copper Thieving Tool. Appending new geometry and buffering."
-msgstr "Strumento deposito di rame. Aggiunta di nuova geometria e buffering."
-
-#: flatcamTools/ToolCopperThieving.py:1125
-msgid "Create geometry"
-msgstr "Crea geometria"
-
-#: flatcamTools/ToolCopperThieving.py:1325
-#: flatcamTools/ToolCopperThieving.py:1329
-msgid "P-Plating Mask"
-msgstr "Maskera P-Placatura"
-
-#: flatcamTools/ToolCopperThieving.py:1351
-msgid "Append PP-M geometry"
-msgstr "Aggiunta geometria maschera placatura"
-
-#: flatcamTools/ToolCopperThieving.py:1477
-msgid "Generating Pattern Plating Mask done."
-msgstr "Generazione maschera Placatura eseguita."
-
-#: flatcamTools/ToolCopperThieving.py:1549
-msgid "Copper Thieving Tool exit."
-msgstr "Chiudi strumento deposito di rame."
-
-#: flatcamTools/ToolCutOut.py:41
-msgid "Cutout PCB"
-msgstr "Taglia PCB"
-
-#: flatcamTools/ToolCutOut.py:69 flatcamTools/ToolPanelize.py:54
-msgid "Source Object"
-msgstr "Oggetto sorgente"
-
-#: flatcamTools/ToolCutOut.py:70
-msgid "Object to be cutout"
-msgstr "Oggetto da tagliare"
-
-#: flatcamTools/ToolCutOut.py:75
-msgid "Kind"
-msgstr "Tipo"
-
-#: flatcamTools/ToolCutOut.py:97
-msgid ""
-"Specify the type of object to be cutout.\n"
-"It can be of type: Gerber or Geometry.\n"
-"What is selected here will dictate the kind\n"
-"of objects that will populate the 'Object' combobox."
-msgstr ""
-"Specificare il tipo di oggetto da ritagliare.\n"
-"Può essere di tipo: Gerber o Geometria.\n"
-"Ciò che è selezionato qui detterà il tipo\n"
-"di oggetti che popoleranno la casella combinata 'Oggetto'."
-
-#: flatcamTools/ToolCutOut.py:121
-msgid "Tool Parameters"
-msgstr "Parametri Utensile"
-
-#: flatcamTools/ToolCutOut.py:238
-msgid "A. Automatic Bridge Gaps"
-msgstr "A. Testimoni automatici"
-
-#: flatcamTools/ToolCutOut.py:240
-msgid "This section handle creation of automatic bridge gaps."
-msgstr "Questa sezione gestisce la creazione di testimoni automatici."
-
-#: flatcamTools/ToolCutOut.py:247
-msgid ""
-"Number of gaps used for the Automatic cutout.\n"
-"There can be maximum 8 bridges/gaps.\n"
-"The choices are:\n"
-"- None - no gaps\n"
-"- lr - left + right\n"
-"- tb - top + bottom\n"
-"- 4 - left + right +top + bottom\n"
-"- 2lr - 2*left + 2*right\n"
-"- 2tb - 2*top + 2*bottom\n"
-"- 8 - 2*left + 2*right +2*top + 2*bottom"
-msgstr ""
-"Numero di spazi utilizzati per il ritaglio automatico.\n"
-"Possono esserci al massimo 8 ponti/spazi vuoti.\n"
-"Le scelte sono:\n"
-"- Nessuna - nessuna lacuna\n"
-"- SD - sinistra + destra\n"
-"- AB - alto + basso\n"
-"- 4 - sinistra + destra + sopra + sotto\n"
-"- 2SD - 2 * sinistra + 2 * destra\n"
-"- 2AB - 2 * in alto + 2 * in basso\n"
-"- 8 - 2 * sinistra + 2 * destra + 2 * in alto + 2 * in basso"
-
-#: flatcamTools/ToolCutOut.py:269
-msgid "Generate Freeform Geometry"
-msgstr "Genera geometria a forma libera"
-
-#: flatcamTools/ToolCutOut.py:271
-msgid ""
-"Cutout the selected object.\n"
-"The cutout shape can be of any shape.\n"
-"Useful when the PCB has a non-rectangular shape."
-msgstr ""
-"Ritaglia l'oggetto selezionato.\n"
-"La forma del ritaglio può essere di qualsiasi forma.\n"
-"Utile quando il PCB ha una forma non rettangolare."
-
-#: flatcamTools/ToolCutOut.py:283
-msgid "Generate Rectangular Geometry"
-msgstr "Genera geometria rettangolare"
-
-#: flatcamTools/ToolCutOut.py:285
-msgid ""
-"Cutout the selected object.\n"
-"The resulting cutout shape is\n"
-"always a rectangle shape and it will be\n"
-"the bounding box of the Object."
-msgstr ""
-"Ritaglia l'oggetto selezionato.\n"
-"La forma di ritaglio risultante è\n"
-"sempre una forma rettangolare e sarà\n"
-"rettangolare anche la selezione dell'oggetto."
-
-#: flatcamTools/ToolCutOut.py:304
-msgid "B. Manual Bridge Gaps"
-msgstr "B. Testimoni manuali"
-
-#: flatcamTools/ToolCutOut.py:306
-msgid ""
-"This section handle creation of manual bridge gaps.\n"
-"This is done by mouse clicking on the perimeter of the\n"
-"Geometry object that is used as a cutout object. "
-msgstr ""
-"Questa sezione gestisce la creazione di testimoni manuali.\n"
-"Questo viene fatto facendo clic con il mouse sul perimetro\n"
-"dell'oggetto Geometria utilizzato come oggetto ritaglio. "
-
-#: flatcamTools/ToolCutOut.py:321
-msgid "Geometry object used to create the manual cutout."
-msgstr "Oggetto geometria utilizzato per creare il ritaglio manuale."
-
-#: flatcamTools/ToolCutOut.py:328
-msgid "Generate Manual Geometry"
-msgstr "Genera geometria manuale"
-
-#: flatcamTools/ToolCutOut.py:330
-msgid ""
-"If the object to be cutout is a Gerber\n"
-"first create a Geometry that surrounds it,\n"
-"to be used as the cutout, if one doesn't exist yet.\n"
-"Select the source Gerber file in the top object combobox."
-msgstr ""
-"Se l'oggetto da ritagliare è un Gerber\n"
-"prima crea una Geometria che la circondi,\n"
-"da usare come ritaglio, se non ne esiste ancora uno.\n"
-"Seleziona il file Gerber di origine nel box in alto."
-
-#: flatcamTools/ToolCutOut.py:343
-msgid "Manual Add Bridge Gaps"
-msgstr "Aggiungi testimoni manualmente"
-
-#: flatcamTools/ToolCutOut.py:345
-msgid ""
-"Use the left mouse button (LMB) click\n"
-"to create a bridge gap to separate the PCB from\n"
-"the surrounding material.\n"
-"The LMB click has to be done on the perimeter of\n"
-"the Geometry object used as a cutout geometry."
-msgstr ""
-"Utilizzare il pulsante sinistro del mouse (PSM)\n"
-"per creare un gap ponte da cui separare il PCB\n"
-"dal materiale circostante (testimone).\n"
-"Il clic PMS deve essere eseguito sul perimetro\n"
-"dell'oggetto geometria utilizzato come geometria di ritaglio."
-
-#: flatcamTools/ToolCutOut.py:520
-msgid ""
-"There is no object selected for Cutout.\n"
-"Select one and try again."
-msgstr ""
-"Nessun oggetto selezionato per Ritaglio.\n"
-"Selezionane uno e riprova."
-
-#: flatcamTools/ToolCutOut.py:526 flatcamTools/ToolCutOut.py:729
-#: flatcamTools/ToolCutOut.py:910 flatcamTools/ToolCutOut.py:992
-#: tclCommands/TclCommandGeoCutout.py:184
-msgid "Tool Diameter is zero value. Change it to a positive real number."
-msgstr ""
-"Il diametro dell'utensile ha valore zero. Modificalo in un numero reale "
-"positivo."
-
-#: flatcamTools/ToolCutOut.py:540 flatcamTools/ToolCutOut.py:744
-msgid "Number of gaps value is missing. Add it and retry."
-msgstr "Manca il numero dei testimoni. Aggiungilo e riprova."
-
-#: flatcamTools/ToolCutOut.py:545 flatcamTools/ToolCutOut.py:748
-msgid ""
-"Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. "
-"Fill in a correct value and retry. "
-msgstr ""
-"Il valore dei testimoni può essere solo uno dei seguenti: 'Nessuno', 'SD', "
-"'SS', '2SD', '2SS', 4 o 8. Inserire un valore corretto e riprovare. "
-
-#: flatcamTools/ToolCutOut.py:550 flatcamTools/ToolCutOut.py:754
-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 ""
-"L'operazione di ritaglio non può essere eseguita su una geometria multi-"
-"geo.\n"
-"Opzionalmente, questa geometria multi-geo può essere convertita in geometria "
-"single-geo,\n"
-"e successivamente esegui il ritaglio."
-
-#: flatcamTools/ToolCutOut.py:702 flatcamTools/ToolCutOut.py:899
-msgid "Any form CutOut operation finished."
-msgstr "Tutti i task di CutOut terminati."
-
-#: flatcamTools/ToolCutOut.py:724 flatcamTools/ToolInvertGerber.py:214
-#: flatcamTools/ToolNCC.py:1598 flatcamTools/ToolPaint.py:1392
-#: flatcamTools/ToolPanelize.py:417 tclCommands/TclCommandBbox.py:71
-#: tclCommands/TclCommandNregions.py:71
-msgid "Object not found"
-msgstr "Oggetto non trovato"
-
-#: flatcamTools/ToolCutOut.py:868
-msgid "Rectangular cutout with negative margin is not possible."
-msgstr "Ritaglio rettangolare con margine negativo non possibile."
-
-#: flatcamTools/ToolCutOut.py:904
-msgid ""
-"Click on the selected geometry object perimeter to create a bridge gap ..."
-msgstr ""
-"Fare clic sul perimetro dell'oggetto geometria selezionato per creare uno "
-"spazio tra i testimoni ..."
-
-#: flatcamTools/ToolCutOut.py:921 flatcamTools/ToolCutOut.py:947
-msgid "Could not retrieve Geometry object"
-msgstr "Impossibile recuperare l'oggetto Geometry"
-
-#: flatcamTools/ToolCutOut.py:952
-msgid "Geometry object for manual cutout not found"
-msgstr "Oggetto Geometria per ritaglio manuale non trovato"
-
-#: flatcamTools/ToolCutOut.py:962
-msgid "Added manual Bridge Gap."
-msgstr "Aggiunti testimoni manualmente."
-
-#: flatcamTools/ToolCutOut.py:974
-msgid "Could not retrieve Gerber object"
-msgstr "Impossibile recuperare l'oggetto Gerber"
-
-#: flatcamTools/ToolCutOut.py:979
-msgid ""
-"There is no Gerber object selected for Cutout.\n"
-"Select one and try again."
-msgstr ""
-"Non è stato selezionato alcun oggetto Gerber per il Ritaglio.\n"
-"Selezionane uno e riprova."
-
-#: flatcamTools/ToolCutOut.py:985
-msgid ""
-"The selected object has to be of Gerber type.\n"
-"Select a Gerber file and try again."
-msgstr ""
-"L'oggetto selezionato deve essere di tipo Gerber.\n"
-"Seleziona un file Gerber e riprova."
-
-#: flatcamTools/ToolCutOut.py:1020
-msgid "Geometry not supported for cutout"
-msgstr "Geometria non supportata per il ritaglio"
-
-#: flatcamTools/ToolCutOut.py:1095
-msgid "Making manual bridge gap..."
-msgstr "Creare un testimone manualmente ..."
-
-#: flatcamTools/ToolDblSided.py:26
-msgid "2-Sided PCB"
-msgstr "PCB doppia faccia"
-
-#: flatcamTools/ToolDblSided.py:52
-msgid "Mirror Operation"
-msgstr "Operazione Specchio"
-
-#: flatcamTools/ToolDblSided.py:53
-msgid "Objects to be mirrored"
-msgstr "Oggetto da specchiare"
-
-#: flatcamTools/ToolDblSided.py:65
-msgid "Gerber to be mirrored"
-msgstr "Gerber da specchiare"
-
-#: flatcamTools/ToolDblSided.py:69 flatcamTools/ToolDblSided.py:97
-#: flatcamTools/ToolDblSided.py:127
-msgid ""
-"Mirrors (flips) the specified object around \n"
-"the specified axis. Does not create a new \n"
-"object, but modifies it."
-msgstr ""
-"Specchia (capovolge) l'oggetto specificato attorno\n"
-"l'asse specificato. Non crea un nuovo oggetto,\n"
-"ma lo modifica."
-
-#: flatcamTools/ToolDblSided.py:93
-msgid "Excellon Object to be mirrored."
-msgstr "Oggetto Excellon da specchiare."
-
-#: flatcamTools/ToolDblSided.py:122
-msgid "Geometry Obj to be mirrored."
-msgstr "Oggetto Geometria da specchiare."
-
-#: flatcamTools/ToolDblSided.py:158
-msgid "Mirror Parameters"
-msgstr "Parametri specchio"
-
-#: flatcamTools/ToolDblSided.py:159
-msgid "Parameters for the mirror operation"
-msgstr "Parametri per l'operazione specchio"
-
-#: flatcamTools/ToolDblSided.py:164
-msgid "Mirror Axis"
-msgstr "Asse di Specchio"
-
-#: flatcamTools/ToolDblSided.py:175
-msgid ""
-"The coordinates used as reference for the mirror operation.\n"
-"Can be:\n"
-"- Point -> a set of coordinates (x,y) around which the object is mirrored\n"
-"- Box -> a set of coordinates (x, y) obtained from the center of the\n"
-"bounding box of another object selected below"
-msgstr ""
-"Coordinate utilizzate come riferimento per l'operazione specchio.\n"
-"Può essere:\n"
-"- Punto -> un insieme di coordinate (x,y) attorno alle quali l'oggetto viene "
-"specchiato\n"
-"- Riquadro -> un insieme di coordinate (x,y) ottenute dal centro della\n"
-"riquadro di selezione di un altro oggetto selezionato sotto"
-
-#: flatcamTools/ToolDblSided.py:189
-msgid "Point coordinates"
-msgstr "Coordinate punto"
-
-#: flatcamTools/ToolDblSided.py:194
-msgid ""
-"Add the coordinates in format (x, y) through which the mirroring "
-"axis\n"
-" selected in 'MIRROR AXIS' pass.\n"
-"The (x, y) coordinates are captured by pressing SHIFT key\n"
-"and left mouse button click on canvas or you can enter the coordinates "
-"manually."
-msgstr ""
-"Aggiungi le coordinate nel formato (x, y) attraverso le quali passa "
-"l'asse di\n"
-" mirroring in \"ASSE SPECCHIO\".\n"
-"Le coordinate (x, y) vengono acquisite premendo il tasto SHIFT\n"
-"e con il clic sinistro del mouse oppure inserite manualmente."
-
-#: flatcamTools/ToolDblSided.py:218
-msgid ""
-"It can be of type: Gerber or Excellon or Geometry.\n"
-"The coordinates of the center of the bounding box are used\n"
-"as reference for mirror operation."
-msgstr ""
-"Può essere di tipo: Gerber o Excellon o Geometry.\n"
-"Le coordinate del centro del rettangolo di selezione vengono usate\n"
-"come riferimento per l'operazione di specchio."
-
-#: flatcamTools/ToolDblSided.py:252
-msgid "Bounds Values"
-msgstr "Valori limite"
-
-#: flatcamTools/ToolDblSided.py:254
-msgid ""
-"Select on canvas the object(s)\n"
-"for which to calculate bounds values."
-msgstr ""
-"Seleziona dal disegno l'oggetto(i)\n"
-"per i quali calcolare i valori limite."
-
-#: flatcamTools/ToolDblSided.py:264
-msgid "X min"
-msgstr "X min"
-
-#: flatcamTools/ToolDblSided.py:266 flatcamTools/ToolDblSided.py:280
-msgid "Minimum location."
-msgstr "Locazione minima."
-
-#: flatcamTools/ToolDblSided.py:278
-msgid "Y min"
-msgstr "Y min"
-
-#: flatcamTools/ToolDblSided.py:292
-msgid "X max"
-msgstr "X max"
-
-#: flatcamTools/ToolDblSided.py:294 flatcamTools/ToolDblSided.py:308
-msgid "Maximum location."
-msgstr "Locazione massima."
-
-#: flatcamTools/ToolDblSided.py:306
-msgid "Y max"
-msgstr "Y max"
-
-#: flatcamTools/ToolDblSided.py:317
-msgid "Center point coordinates"
-msgstr "Coordinate punto centrale"
-
-#: flatcamTools/ToolDblSided.py:319
-msgid "Centroid"
-msgstr "Centroide"
-
-#: flatcamTools/ToolDblSided.py:321
-msgid ""
-"The center point location for the rectangular\n"
-"bounding shape. Centroid. Format is (x, y)."
-msgstr ""
-"La posizione del punto centrale per il box delimitante\n"
-"rettangolare. Centroide. Il formato è (x, y)."
-
-#: flatcamTools/ToolDblSided.py:330
-msgid "Calculate Bounds Values"
-msgstr "Calcola i valori dei limiti"
-
-#: flatcamTools/ToolDblSided.py:332
-msgid ""
-"Calculate the enveloping rectangular shape coordinates,\n"
-"for the selection of objects.\n"
-"The envelope shape is parallel with the X, Y axis."
-msgstr ""
-"Calcola le coordinate che avvolgano in forma rettangolare,\n"
-"per la selezione di oggetti.\n"
-"La forma dell'inviluppo è parallela all'asse X, Y."
-
-#: flatcamTools/ToolDblSided.py:352
-msgid "PCB Alignment"
-msgstr "Allineamento PCB"
-
-#: flatcamTools/ToolDblSided.py:354 flatcamTools/ToolDblSided.py:456
-msgid ""
-"Creates an Excellon Object containing the\n"
-"specified alignment holes and their mirror\n"
-"images."
-msgstr ""
-"Crea un oggetto Excellon contenente i\n"
-"fori di allineamento specificati e la loro\n"
-"relativa immagine speculare."
-
-#: flatcamTools/ToolDblSided.py:361
-msgid "Drill Diameter"
-msgstr "Diametro punta"
-
-#: flatcamTools/ToolDblSided.py:390 flatcamTools/ToolDblSided.py:397
-msgid ""
-"The reference point used to create the second alignment drill\n"
-"from the first alignment drill, by doing mirror.\n"
-"It can be modified in the Mirror Parameters -> Reference section"
-msgstr ""
-"Il punto di riferimento utilizzato per creare il secondo foro di "
-"allineamento\n"
-"dal primo foro, facendone la copia speculare.\n"
-"Può essere modificato nella sezione Parametri specchio -> Riferimento"
-
-#: flatcamTools/ToolDblSided.py:410
-msgid "Alignment Drill Coordinates"
-msgstr "Coordinate fori di allineamento"
-
-#: flatcamTools/ToolDblSided.py:412
-msgid ""
-"Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For "
-"each set of (x, y) coordinates\n"
-"entered here, a pair of drills will be created:\n"
-"\n"
-"- one drill at the coordinates from the field\n"
-"- one drill in mirror position over the axis selected above in the 'Align "
-"Axis'."
-msgstr ""
-"Fori di allineamento (x1, y1), (x2, y2), ... su un lato dell'asse dello "
-"specchio. Per ogni set di coordinate (x, y)\n"
-"qui inserite, verrà creata una coppia di fori:\n"
-"\n"
-"- un foro alle coordinate dal campo\n"
-"- un foro in posizione speculare sull'asse selezionato sopra in 'asse "
-"specchio'."
-
-#: flatcamTools/ToolDblSided.py:420
-msgid "Drill coordinates"
-msgstr "Coordinate fori"
-
-#: flatcamTools/ToolDblSided.py:427
-msgid ""
-"Add alignment drill holes coordinates in the format: (x1, y1), (x2, "
-"y2), ... \n"
-"on one side of the alignment axis.\n"
-"\n"
-"The coordinates set can be obtained:\n"
-"- press SHIFT key and left mouse clicking on canvas. Then click Add.\n"
-"- press SHIFT key and left mouse clicking on canvas. Then Ctrl+V in the "
-"field.\n"
-"- press SHIFT key and left mouse clicking on canvas. Then RMB click in the "
-"field and click Paste.\n"
-"- by entering the coords manually in the format: (x1, y1), (x2, y2), ..."
-msgstr ""
-"Aggiungi i cordoncini di fori di allineamento nel formato: (x1, y1), (x2, "
-"y2), ...\n"
-"su un lato dell'asse dello specchio.\n"
-"\n"
-"Le coordinate impostate possono essere ottenute:\n"
-"- premi il tasto SHIFT e fai clic con il tasto sinistro del mouse. Quindi "
-"fai clic su Aggiungi.\n"
-"- premi il tasto SHIFT e fai clic con il tasto sinistro del mouse. Quindi "
-"Ctrl+V nel campo.\n"
-"- premi il tasto SHIFT e fai clic con il tasto sinistro del mouse. Quindi "
-"col pulsante destro nel campo e fai clic su Incolla.\n"
-"- inserendo manualmente le coordinate nel formato: (x1, y1), (x2, y2), ..."
-
-#: flatcamTools/ToolDblSided.py:442
-msgid "Delete Last"
-msgstr "Cancella ultimo"
-
-#: flatcamTools/ToolDblSided.py:444
-msgid "Delete the last coordinates tuple in the list."
-msgstr "Cancella l'ultima tupla di coordinate dalla lista."
-
-#: flatcamTools/ToolDblSided.py:454
-msgid "Create Excellon Object"
-msgstr "Creao oggetto Excellon"
-
-#: flatcamTools/ToolDblSided.py:541
-msgid "2-Sided Tool"
-msgstr "Strumento doppia faccia"
-
-#: flatcamTools/ToolDblSided.py:581
-msgid ""
-"'Point' reference is selected and 'Point' coordinates are missing. Add them "
-"and retry."
-msgstr ""
-"'Punto' riferimento selezionato ma coordinate 'Punto' mancanti. Aggiungile e "
-"riprova."
-
-#: flatcamTools/ToolDblSided.py:600
-msgid "There is no Box reference object loaded. Load one and retry."
-msgstr ""
-"Non è stato caricato alcun oggetto di riferimento Box. Caricare uno e "
-"riprovare."
-
-#: flatcamTools/ToolDblSided.py:612
-msgid "No value or wrong format in Drill Dia entry. Add it and retry."
-msgstr ""
-"Nessun valore o formato errato nella voce Diametro Fori. Aggiungilo e "
-"riprova."
-
-#: flatcamTools/ToolDblSided.py:623
-msgid "There are no Alignment Drill Coordinates to use. Add them and retry."
-msgstr ""
-"Non ci sono coordinate per i fori di allineamento da usare. Aggiungili e "
-"riprova."
-
-#: flatcamTools/ToolDblSided.py:648
-msgid "Excellon object with alignment drills created..."
-msgstr "Oggetto Excellon con i fori di allineamento creati ..."
-
-#: flatcamTools/ToolDblSided.py:661 flatcamTools/ToolDblSided.py:704
-#: flatcamTools/ToolDblSided.py:748
-msgid "Only Gerber, Excellon and Geometry objects can be mirrored."
-msgstr "Possono essere specchiati solo oggetti Gerber, Excellon e Geometry."
-
-#: flatcamTools/ToolDblSided.py:671 flatcamTools/ToolDblSided.py:715
-msgid ""
-"There are no Point coordinates in the Point field. Add coords and try "
-"again ..."
-msgstr ""
-"Non ci sono coordinate Punto nel campo Punto. Aggiungi corde e riprova ..."
-
-#: flatcamTools/ToolDblSided.py:681 flatcamTools/ToolDblSided.py:725
-#: flatcamTools/ToolDblSided.py:762
-msgid "There is no Box object loaded ..."
-msgstr "Nessun oggetto contenitore caricato ..."
-
-#: flatcamTools/ToolDblSided.py:691 flatcamTools/ToolDblSided.py:735
-#: flatcamTools/ToolDblSided.py:772
-msgid "was mirrored"
-msgstr "è stato specchiato"
-
-#: flatcamTools/ToolDblSided.py:700 flatcamTools/ToolPunchGerber.py:533
-msgid "There is no Excellon object loaded ..."
-msgstr "Nessun oggetto Excellon caricato ..."
-
-#: flatcamTools/ToolDblSided.py:744
-msgid "There is no Geometry object loaded ..."
-msgstr "Nessun oggetto Geometria caricato ..."
-
-#: flatcamTools/ToolDistance.py:57 flatcamTools/ToolDistanceMin.py:51
-msgid "Those are the units in which the distance is measured."
-msgstr "Quelle sono le unità in cui viene misurata la distanza."
-
-#: flatcamTools/ToolDistance.py:58 flatcamTools/ToolDistanceMin.py:52
-msgid "METRIC (mm)"
-msgstr "METRICA (mm)"
-
-#: flatcamTools/ToolDistance.py:58 flatcamTools/ToolDistanceMin.py:52
-msgid "INCH (in)"
-msgstr "POLLICI (in)"
-
-#: flatcamTools/ToolDistance.py:64
-msgid "Snap to center"
-msgstr "Aggancia al centro"
-
-#: flatcamTools/ToolDistance.py:66
-msgid ""
-"Mouse cursor will snap to the center of the pad/drill\n"
-"when it is hovering over the geometry of the pad/drill."
-msgstr ""
-"Il cursore del mouse si posizionerà al centro del pad/foro\n"
-"quando passa sopra la geometria del pad/foro."
-
-#: flatcamTools/ToolDistance.py:76
-msgid "Start Coords"
-msgstr "Coordinate di partenza"
-
-#: flatcamTools/ToolDistance.py:77 flatcamTools/ToolDistance.py:82
-msgid "This is measuring Start point coordinates."
-msgstr "Questo sta misurando le coordinate del punto iniziale."
-
-#: flatcamTools/ToolDistance.py:87
-msgid "Stop Coords"
-msgstr "Coordinate di stop"
-
-#: flatcamTools/ToolDistance.py:88 flatcamTools/ToolDistance.py:93
-msgid "This is the measuring Stop point coordinates."
-msgstr "Queste sono le coordinate del punto di arresto di misurazione."
-
-#: flatcamTools/ToolDistance.py:98 flatcamTools/ToolDistanceMin.py:63
-msgid "Dx"
-msgstr "Dx"
-
-#: flatcamTools/ToolDistance.py:99 flatcamTools/ToolDistance.py:104
-#: flatcamTools/ToolDistanceMin.py:64 flatcamTools/ToolDistanceMin.py:93
-msgid "This is the distance measured over the X axis."
-msgstr "Questa è la distanza misurata sull'asse X."
-
-#: flatcamTools/ToolDistance.py:109 flatcamTools/ToolDistanceMin.py:66
-msgid "Dy"
-msgstr "Dy"
-
-#: flatcamTools/ToolDistance.py:110 flatcamTools/ToolDistance.py:115
-#: flatcamTools/ToolDistanceMin.py:67 flatcamTools/ToolDistanceMin.py:98
-msgid "This is the distance measured over the Y axis."
-msgstr "Questa è la distanza misurata sull'asse Y."
-
-#: flatcamTools/ToolDistance.py:121 flatcamTools/ToolDistance.py:126
-#: flatcamTools/ToolDistanceMin.py:70 flatcamTools/ToolDistanceMin.py:103
-msgid "This is orientation angle of the measuring line."
-msgstr "Questo è l'angolo di orientamento della linea di misurazione."
-
-#: flatcamTools/ToolDistance.py:131 flatcamTools/ToolDistanceMin.py:72
-msgid "DISTANCE"
-msgstr "DISTANZA"
-
-#: flatcamTools/ToolDistance.py:132 flatcamTools/ToolDistance.py:137
-msgid "This is the point to point Euclidian distance."
-msgstr "Questo è il punto per indicare la distanza euclidea."
-
-#: flatcamTools/ToolDistance.py:142 flatcamTools/ToolDistance.py:337
-#: flatcamTools/ToolDistanceMin.py:115
-msgid "Measure"
-msgstr "Misura"
-
-#: flatcamTools/ToolDistance.py:272
-msgid "Working"
-msgstr "Elaborazione"
-
-#: flatcamTools/ToolDistance.py:277
-msgid "MEASURING: Click on the Start point ..."
-msgstr "MISURA: clicca sul punto di origine ..."
-
-#: flatcamTools/ToolDistance.py:387
-msgid "Distance Tool finished."
-msgstr "Strumento Distanza completato."
-
-#: flatcamTools/ToolDistance.py:455
-msgid "Pads overlapped. Aborting."
-msgstr "Pad sovrapposti. Annullo."
-
-#: flatcamTools/ToolDistance.py:485
-msgid "MEASURING: Click on the Destination point ..."
-msgstr "MISURA: clicca sul punto di destinazione ..."
-
-#: flatcamTools/ToolDistance.py:494 flatcamTools/ToolDistanceMin.py:285
-msgid "MEASURING"
-msgstr "MISURA"
-
-#: flatcamTools/ToolDistance.py:495 flatcamTools/ToolDistanceMin.py:286
-msgid "Result"
-msgstr "Risultato"
-
-#: flatcamTools/ToolDistanceMin.py:32 flatcamTools/ToolDistanceMin.py:144
-msgid "Minimum Distance Tool"
-msgstr "Strumento distanza minima"
-
-#: flatcamTools/ToolDistanceMin.py:55
-msgid "First object point"
-msgstr "Primo punto oggetto"
-
-#: flatcamTools/ToolDistanceMin.py:56 flatcamTools/ToolDistanceMin.py:81
-msgid ""
-"This is first object point coordinates.\n"
-"This is the start point for measuring distance."
-msgstr ""
-"Coordinate del primo punto oggetto.\n"
-"Questo è il punto di partenza per misurare la distanza."
-
-#: flatcamTools/ToolDistanceMin.py:59
-msgid "Second object point"
-msgstr "Secondo punto oggetto"
-
-#: flatcamTools/ToolDistanceMin.py:60 flatcamTools/ToolDistanceMin.py:87
-msgid ""
-"This is second object point coordinates.\n"
-"This is the end point for measuring distance."
-msgstr ""
-"Coordinate del secondo punto oggetto.\n"
-"Questo è il punto di fine per misurare la distanza."
-
-#: flatcamTools/ToolDistanceMin.py:73 flatcamTools/ToolDistanceMin.py:108
-msgid "This is the point to point Euclidean distance."
-msgstr "Distanza punto punto euclidea."
-
-#: flatcamTools/ToolDistanceMin.py:75
-msgid "Half Point"
-msgstr "Punto di mezzo"
-
-#: flatcamTools/ToolDistanceMin.py:76 flatcamTools/ToolDistanceMin.py:113
-msgid "This is the middle point of the point to point Euclidean distance."
-msgstr "Punto mediano della distanza punto punto euclidea."
-
-#: flatcamTools/ToolDistanceMin.py:118
-msgid "Jump to Half Point"
-msgstr "Vai al punto mediano"
-
-#: flatcamTools/ToolDistanceMin.py:155
-msgid ""
-"Select two objects and no more, to measure the distance between them ..."
-msgstr "Seleziona due oggetti e non più, per misurare la distanza tra loro ..."
-
-#: flatcamTools/ToolDistanceMin.py:196 flatcamTools/ToolDistanceMin.py:217
-#: flatcamTools/ToolDistanceMin.py:226 flatcamTools/ToolDistanceMin.py:247
-msgid "Select two objects and no more. Currently the selection has objects: "
-msgstr ""
-"Seleziona due oggetti e non di più. Attualmente la selezione ha oggetti: "
-
-#: flatcamTools/ToolDistanceMin.py:294
-msgid "Objects intersects or touch at"
-msgstr "Gli oggetti si intersecano o toccano in"
-
-#: flatcamTools/ToolDistanceMin.py:300
-msgid "Jumped to the half point between the two selected objects"
-msgstr "Salto a metà punto tra i due oggetti selezionati eseguito"
-
-#: flatcamTools/ToolExtractDrills.py:29 flatcamTools/ToolExtractDrills.py:295
-msgid "Extract Drills"
-msgstr "Estrai fori"
-
-#: flatcamTools/ToolExtractDrills.py:62
-msgid "Gerber from which to extract drill holes"
-msgstr "Gerber dal quale estrarre i fori"
-
-#: flatcamTools/ToolExtractDrills.py:297
-msgid "Extract drills from a given Gerber file."
-msgstr "Estrae i fori da un dato file gerber."
-
-#: flatcamTools/ToolExtractDrills.py:478 flatcamTools/ToolExtractDrills.py:563
-#: flatcamTools/ToolExtractDrills.py:648
-msgid "No drills extracted. Try different parameters."
-msgstr "Nessun foro estratto. Prova con altri parametri."
-
-#: flatcamTools/ToolFiducials.py:56
-msgid "Fiducials Coordinates"
-msgstr "Coordinate fiducial"
-
-#: flatcamTools/ToolFiducials.py:58
-msgid ""
-"A table with the fiducial points coordinates,\n"
-"in the format (x, y)."
-msgstr ""
-"Tabella con le coordinate dei punti fiducial,\n"
-"nel formato (x, y)."
-
-#: flatcamTools/ToolFiducials.py:99
-msgid "Top Right"
-msgstr "Alto destra"
-
-#: flatcamTools/ToolFiducials.py:191
-msgid ""
-"- 'Auto' - automatic placement of fiducials in the corners of the bounding "
-"box.\n"
-" - 'Manual' - manual placement of fiducials."
-msgstr ""
-"- 'Auto': posizionamento automatico dei fiducial negli angoli del rettangolo "
-"di selezione.\n"
-" - 'Manuale': posizionamento manuale dei fiducial."
-
-#: flatcamTools/ToolFiducials.py:259
-msgid "Copper Gerber"
-msgstr "Gerber rame"
-
-#: flatcamTools/ToolFiducials.py:268
-msgid "Add Fiducial"
-msgstr "Aggiungi fiducial"
-
-#: flatcamTools/ToolFiducials.py:270
-msgid "Will add a polygon on the copper layer to serve as fiducial."
-msgstr "Aggiungerà un poligono sul layer di rame per fungere da fiducial."
-
-#: flatcamTools/ToolFiducials.py:286
-msgid "Soldermask Gerber"
-msgstr "Gerber soldermask"
-
-#: flatcamTools/ToolFiducials.py:288
-msgid "The Soldermask Gerber object."
-msgstr "L'oggetto gerber soldermask."
-
-#: flatcamTools/ToolFiducials.py:300
-msgid "Add Soldermask Opening"
-msgstr "Aggiungi apertura soldermask"
-
-#: flatcamTools/ToolFiducials.py:302
-msgid ""
-"Will add a polygon on the soldermask layer\n"
-"to serve as fiducial opening.\n"
-"The diameter is always double of the diameter\n"
-"for the copper fiducial."
-msgstr ""
-"Aggiungerà un poligono sul layer soldermask\n"
-"che serva come apertura fiducial.\n"
-"Il diametro è sempre il doppio del diametro\n"
-"del fiduciale di rame."
-
-#: flatcamTools/ToolFiducials.py:516
-msgid "Click to add first Fiducial. Bottom Left..."
-msgstr "Fai clic per aggiungere il primo Fiducial. In basso a sinistra..."
-
-#: flatcamTools/ToolFiducials.py:780
-msgid "Click to add the last fiducial. Top Right..."
-msgstr "Fai clic per aggiungere l'ultimo Fiducial. In alto a destra..."
-
-#: flatcamTools/ToolFiducials.py:785
-msgid "Click to add the second fiducial. Top Left or Bottom Right..."
-msgstr ""
-"Fare clic per aggiungere il secondo fiducial. In alto a sinistra o in basso "
-"a destra ..."
-
-#: flatcamTools/ToolFiducials.py:788 flatcamTools/ToolFiducials.py:797
-msgid "Done. All fiducials have been added."
-msgstr "Fatto. Tutti i fiduciali sono stati aggiunti."
-
-#: flatcamTools/ToolFiducials.py:874
-msgid "Fiducials Tool exit."
-msgstr "Esci dallo strumento fiducial."
-
-#: flatcamTools/ToolFilm.py:42
-msgid "Film PCB"
-msgstr "Film PCB"
-
-#: flatcamTools/ToolFilm.py:78
-msgid ""
-"Specify the type of object for which to create the film.\n"
-"The object can be of type: Gerber or Geometry.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Film Object combobox."
-msgstr ""
-"Specifica il tipo di oggetto per cui creare il film.\n"
-"L'oggetto può essere di tipo: Gerber o Geometria.\n"
-"La selezione decide il tipo di oggetti che saranno\n"
-"nella box Oggetto film."
-
-#: flatcamTools/ToolFilm.py:92
-msgid "Film Object"
-msgstr "Oggetto Film"
-
-#: flatcamTools/ToolFilm.py:94
-msgid "Object for which to create the film."
-msgstr "Oggetto per cui creare il film."
-
-#: flatcamTools/ToolFilm.py:115
-msgid ""
-"Specify the type of object to be used as an container for\n"
-"film creation. It can be: Gerber or Geometry type.The selection here decide "
-"the type of objects that will be\n"
-"in the Box Object combobox."
-msgstr ""
-"Specificare il tipo di oggetto da utilizzare come contenitore per la\n"
-"creazione del film. Può essere di tipo Gerber o Geometria. La selezione "
-"decide il tipo di oggetti che saranno\n"
-"presenti nel box Oggetto casella."
-
-#: flatcamTools/ToolFilm.py:129
-msgid "Box Object"
-msgstr "Oggetto box"
-
-#: flatcamTools/ToolFilm.py:131
-msgid ""
-"The actual object that is used as container for the\n"
-" selected object for which we create the film.\n"
-"Usually it is the PCB outline but it can be also the\n"
-"same object for which the film is created."
-msgstr ""
-"L'oggetto attualmente usato come oggetto\n"
-"contenitore per il quale creiamo il film.\n"
-"Di solito è il contorno del PCB ma può anche essere\n"
-"l'oggetto stesso per cui è stato creato il film."
-
-#: flatcamTools/ToolFilm.py:273
-msgid "Film Parameters"
-msgstr "Parametri Film"
-
-#: flatcamTools/ToolFilm.py:334
-msgid "Punch drill holes"
-msgstr "Praticare fori"
-
-#: flatcamTools/ToolFilm.py:335
-msgid ""
-"When checked the generated film will have holes in pads when\n"
-"the generated film is positive. This is done to help drilling,\n"
-"when done manually."
-msgstr ""
-"Se selezionato, il film generato avrà buchi nei pad quando\n"
-"il film generato è positivo. Questo viene fatto per aiutare a perforare,\n"
-"quando fatto manualmente."
-
-#: flatcamTools/ToolFilm.py:353
-msgid "Source"
-msgstr "Sorgente"
-
-#: flatcamTools/ToolFilm.py:355
-msgid ""
-"The punch hole source can be:\n"
-"- Excellon -> an Excellon holes center will serve as reference.\n"
-"- Pad Center -> will try to use the pads center as reference."
-msgstr ""
-"La fonte del foro di perforazione può essere:\n"
-"- Excellon -> un centro foro Excellon fungerà da riferimento.\n"
-"- Pad Center -> proverà a utilizzare il centro del pad come riferimento."
-
-#: flatcamTools/ToolFilm.py:360
-msgid "Pad center"
-msgstr "Centro Pad"
-
-#: flatcamTools/ToolFilm.py:365
-msgid "Excellon Obj"
-msgstr "Oggetto Excellon"
-
-#: flatcamTools/ToolFilm.py:367
-msgid ""
-"Remove the geometry of Excellon from the Film to create the holes in pads."
-msgstr "Rimuovi la geometria Excellon dal Film per creare i fori nei pad."
-
-#: flatcamTools/ToolFilm.py:381
-msgid "Punch Size"
-msgstr "Dimensione punzone"
-
-#: flatcamTools/ToolFilm.py:382
-msgid "The value here will control how big is the punch hole in the pads."
-msgstr "Questo valore controllerà quanto è grande il foro nei pad."
-
-#: flatcamTools/ToolFilm.py:502
-msgid "Save Film"
-msgstr "Salva Film"
-
-#: flatcamTools/ToolFilm.py:504
-msgid ""
-"Create a Film for the selected object, within\n"
-"the specified box. Does not create a new \n"
-" FlatCAM object, but directly save it in the\n"
-"selected format."
-msgstr ""
-"Crea un film per l'oggetto selezionato, all'interno\n"
-"della casella specificata. Non crea un nuovo\n"
-" oggetto FlatCAM, ma lo salva direttamente nel\n"
-"formato selezionato."
-
-#: flatcamTools/ToolFilm.py:664
-msgid ""
-"Using the Pad center does not work on Geometry objects. Only a Gerber object "
-"has pads."
-msgstr ""
-"L'uso del centro del pad non funziona sugli oggetti Geometria. Solo un "
-"oggetto Gerber ha i pad."
-
-#: flatcamTools/ToolFilm.py:674
-msgid "No FlatCAM object selected. Load an object for Film and retry."
-msgstr ""
-"Nessun oggetto FlatCAM selezionato. Carica un oggetto per Film e riprova."
-
-#: flatcamTools/ToolFilm.py:681
-msgid "No FlatCAM object selected. Load an object for Box and retry."
-msgstr ""
-"Nessun oggetto FlatCAM selezionato. Carica un oggetto per Box e riprova."
-
-#: flatcamTools/ToolFilm.py:685
-msgid "No FlatCAM object selected."
-msgstr "Nessun oggetto FlatCAM selezionato."
-
-#: flatcamTools/ToolFilm.py:696
-msgid "Generating Film ..."
-msgstr "Generazione Film ..."
-
-#: flatcamTools/ToolFilm.py:745 flatcamTools/ToolFilm.py:749
-msgid "Export positive film"
-msgstr "Exporta film positivo"
-
-#: flatcamTools/ToolFilm.py:782
-msgid ""
-"No Excellon object selected. Load an object for punching reference and retry."
-msgstr ""
-"Nessun oggetto Excellon selezionato. Caricare un oggetto per la punzonatura "
-"di riferimento e riprova."
-
-#: flatcamTools/ToolFilm.py:806
-msgid ""
-" Could not generate punched hole film because the punch hole sizeis bigger "
-"than some of the apertures in the Gerber object."
-msgstr ""
-" Impossibile generare il film del foro punzonato perché la dimensione del "
-"foro del punzone è maggiore di alcune delle aperture nell'oggetto Gerber."
-
-#: flatcamTools/ToolFilm.py:818
-msgid ""
-"Could not generate punched hole film because the punch hole sizeis bigger "
-"than some of the apertures in the Gerber object."
-msgstr ""
-"Impossibile generare il film del foro punzonato perché la dimensione del "
-"foro del punzone è maggiore di alcune delle aperture nell'oggetto Gerber."
-
-#: flatcamTools/ToolFilm.py:836
-msgid ""
-"Could not generate punched hole film because the newly created object "
-"geometry is the same as the one in the source object geometry..."
-msgstr ""
-"Impossibile generare il film del foro punzonato perché la geometria "
-"dell'oggetto appena creata è uguale a quella nella geometria dell'oggetto "
-"sorgente ..."
-
-#: flatcamTools/ToolFilm.py:891 flatcamTools/ToolFilm.py:895
-msgid "Export negative film"
-msgstr "Esporta film negativo"
-
-#: flatcamTools/ToolFilm.py:956 flatcamTools/ToolFilm.py:1139
-#: flatcamTools/ToolPanelize.py:430
-msgid "No object Box. Using instead"
-msgstr "Nessun oggetto Box. Al suo posto si userà"
-
-#: flatcamTools/ToolFilm.py:1072 flatcamTools/ToolFilm.py:1252
-msgid "Film file exported to"
-msgstr "File Film esportato in"
-
-#: flatcamTools/ToolFilm.py:1075 flatcamTools/ToolFilm.py:1255
-msgid "Generating Film ... Please wait."
-msgstr "Generazione film … Attendere."
-
-#: flatcamTools/ToolImage.py:24
-msgid "Image as Object"
-msgstr "Immagine come oggetto"
-
-#: flatcamTools/ToolImage.py:33
-msgid "Image to PCB"
-msgstr "Da immagine a PCB"
-
-#: flatcamTools/ToolImage.py:56
-msgid ""
-"Specify the type of object to create from the image.\n"
-"It can be of type: Gerber or Geometry."
-msgstr ""
-"Specifica il tipo di oggetto da creare dall'immagine.\n"
-"Può essere di tipo: Gerber o Geometria."
-
-#: flatcamTools/ToolImage.py:65
-msgid "DPI value"
-msgstr "Valore DPI"
-
-#: flatcamTools/ToolImage.py:66
-msgid "Specify a DPI value for the image."
-msgstr "Specifica un valore DPI per l'immagine."
-
-#: flatcamTools/ToolImage.py:72
-msgid "Level of detail"
-msgstr "Livello di dettaglio"
-
-#: flatcamTools/ToolImage.py:81
-msgid "Image type"
-msgstr "Tipo immagine"
-
-#: flatcamTools/ToolImage.py:83
-msgid ""
-"Choose a method for the image interpretation.\n"
-"B/W means a black & white image. Color means a colored image."
-msgstr ""
-"Scegli un metodo per l'interpretazione dell'immagine.\n"
-"B/N significa un'immagine in bianco e nero. Colore significa un'immagine a "
-"colori."
-
-#: flatcamTools/ToolImage.py:92 flatcamTools/ToolImage.py:107
-#: flatcamTools/ToolImage.py:120 flatcamTools/ToolImage.py:133
-msgid "Mask value"
-msgstr "Valore maschera"
-
-#: flatcamTools/ToolImage.py:94
-msgid ""
-"Mask for monochrome image.\n"
-"Takes values between [0 ... 255].\n"
-"Decides the level of details to include\n"
-"in the resulting geometry.\n"
-"0 means no detail and 255 means everything \n"
-"(which is totally black)."
-msgstr ""
-"Maschera per immagine monocromatica.\n"
-"Accetta valori tra [0 ... 255].\n"
-"Decide il livello di dettagli da includere\n"
-"nella geometria risultante.\n"
-"0 significa nessun dettaglio e 255 significa tutto\n"
-"(che è totalmente nero)."
-
-#: flatcamTools/ToolImage.py:109
-msgid ""
-"Mask for RED color.\n"
-"Takes values between [0 ... 255].\n"
-"Decides the level of details to include\n"
-"in the resulting geometry."
-msgstr ""
-"Maschera per il colore ROSSO.\n"
-"Accetta valori tra [0 ... 255].\n"
-"Decide il livello di dettagli da includere\n"
-"nella geometria risultante."
-
-#: flatcamTools/ToolImage.py:122
-msgid ""
-"Mask for GREEN color.\n"
-"Takes values between [0 ... 255].\n"
-"Decides the level of details to include\n"
-"in the resulting geometry."
-msgstr ""
-"Maschera per il colore VERDE.\n"
-"Accetta valori tra [0 ... 255].\n"
-"Decide il livello di dettagli da includere\n"
-"nella geometria risultante."
-
-#: flatcamTools/ToolImage.py:135
-msgid ""
-"Mask for BLUE color.\n"
-"Takes values between [0 ... 255].\n"
-"Decides the level of details to include\n"
-"in the resulting geometry."
-msgstr ""
-"Maschera per il colore BLU.\n"
-"Accetta valori tra [0 ... 255].\n"
-"Decide il livello di dettagli da includere\n"
-"nella geometria risultante."
-
-#: flatcamTools/ToolImage.py:143
-msgid "Import image"
-msgstr "Importa immagine"
-
-#: flatcamTools/ToolImage.py:145
-msgid "Open a image of raster type and then import it in FlatCAM."
-msgstr "Apri un'immagine di tipo raster e quindi importala in FlatCAM."
-
-#: flatcamTools/ToolImage.py:182
-msgid "Image Tool"
-msgstr "Strumento Immagine"
-
-#: flatcamTools/ToolImage.py:234 flatcamTools/ToolImage.py:237
-msgid "Import IMAGE"
-msgstr "Importa IMMAGINE"
-
-#: flatcamTools/ToolImage.py:285
-msgid "Importing Image"
-msgstr "Importo immagine"
-
-#: flatcamTools/ToolInvertGerber.py:74
-msgid "Gerber object that will be inverted."
-msgstr "Oggetto Gerber da invertire."
-
-#: flatcamTools/ToolInvertGerber.py:83
-msgid "Parameters for this tool"
-msgstr "Parametri per questo utensile"
-
-#: flatcamTools/ToolInvertGerber.py:123
-msgid "Invert Gerber"
-msgstr "Inverti Gerber"
-
-#: flatcamTools/ToolInvertGerber.py:125
-msgid ""
-"Will invert the Gerber object: areas that have copper\n"
-"will be empty of copper and previous empty area will be\n"
-"filled with copper."
-msgstr ""
-"Inverte l'oggetto Gerber: aree che hanno rame\n"
-"saranno vuote e le precedenti aree vuote saranno\n"
-"riempite di rame."
-
-#: flatcamTools/ToolInvertGerber.py:184
-msgid "Invert Tool"
-msgstr "Strumento Inverti"
-
-#: flatcamTools/ToolMove.py:102
-msgid "MOVE: Click on the Start point ..."
-msgstr "SPOSTA: clicca sul punto di partenza ..."
-
-#: flatcamTools/ToolMove.py:113
-msgid "Cancelled. No object(s) to move."
-msgstr "Cancellato. Nessun oggetto da spostare."
-
-#: flatcamTools/ToolMove.py:140
-msgid "MOVE: Click on the Destination point ..."
-msgstr "SPOSTA: clicca sul punto di destinazione ..."
-
-#: flatcamTools/ToolMove.py:163
-msgid "Moving..."
-msgstr "Spostamento..."
-
-#: flatcamTools/ToolMove.py:166
-msgid "No object(s) selected."
-msgstr "Nessun oggetto selezionato."
-
-#: flatcamTools/ToolMove.py:221
-msgid "Error when mouse left click."
-msgstr "Errore con il click sinistro del mouse."
-
-#: flatcamTools/ToolNCC.py:42
-msgid "Non-Copper Clearing"
-msgstr "Pulizia non-rame (NCC)"
-
-#: flatcamTools/ToolNCC.py:88
-msgid ""
-"Specify the type of object to be cleared of excess copper.\n"
-"It can be of type: Gerber or Geometry.\n"
-"What is selected here will dictate the kind\n"
-"of objects that will populate the 'Object' combobox."
-msgstr ""
-"Specificare il tipo di oggetto da cui eliminare il rame in eccesso.\n"
-"Può essere di tipo: Gerber o Geometria.\n"
-"Ciò che è selezionato qui detterà il tipo\n"
-"di oggetti che popoleranno la combobox 'Oggetto'."
-
-#: flatcamTools/ToolNCC.py:110
-msgid "Object to be cleared of excess copper."
-msgstr "Oggetti puliti dall'eccesso di rame."
-
-#: flatcamTools/ToolNCC.py:122
-msgid ""
-"Tools pool from which the algorithm\n"
-"will pick the ones used for copper clearing."
-msgstr ""
-"Set di strumenti da cui l'algoritmo\n"
-"sceglierà quelli usati per la rimozione del rame."
-
-#: flatcamTools/ToolNCC.py:138
-msgid ""
-"This is the Tool Number.\n"
-"Non copper clearing will start with the tool with the biggest \n"
-"diameter, continuing until there are no more tools.\n"
-"Only tools that create NCC clearing geometry will still be present\n"
-"in the resulting geometry. This is because with some tools\n"
-"this function will not be able to create painting geometry."
-msgstr ""
-"Questo è il numero dello strumento.\n"
-"La pulizia non-rame inizierà con lo strumento con il diametro più\n"
-"grande, continuando fino a quando non ci saranno più strumenti.\n"
-"Solo gli strumenti che creano la geometria di clearing NCC saranno ancora "
-"presenti\n"
-"nella geometria risultante. Questo perché con alcuni strumenti\n"
-"questa funzione non sarà in grado di creare la corretta geometria."
-
-#: flatcamTools/ToolNCC.py:146
-msgid ""
-"Tool Diameter. It's value (in current FlatCAM units)\n"
-"is the cut width into the material."
-msgstr ""
-"Diametro utensile. Il suo valore (in unità correnti FlatCAM)\n"
-"è l'altezza del taglio nel materiale."
-
-#: flatcamTools/ToolNCC.py:150
-msgid ""
-"The Tool Type (TT) can be:\n"
-"- Circular with 1 ... 4 teeth -> it is informative only. Being circular,\n"
-"the cut width in material is exactly the tool diameter.\n"
-"- Ball -> informative only and make reference to the Ball type endmill.\n"
-"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI "
-"form\n"
-"and enable two additional UI form fields in the resulting geometry: V-Tip "
-"Dia and\n"
-"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter "
-"such\n"
-"as the cut width into material will be equal with the value in the Tool "
-"Diameter\n"
-"column of this table.\n"
-"Choosing the 'V-Shape' Tool Type automatically will select the Operation "
-"Type\n"
-"in the resulting geometry as Isolation."
-msgstr ""
-"Il tipo di strumento (TT) può essere:\n"
-"- Circolare con 1 ... 4 denti -> è solo informativo. Essendo circolare,\n"
-"la larghezza di taglio nel materiale è esattamente il diametro "
-"dell'utensile.\n"
-"- Sferico -> solo informativo e fa riferimento alla fresa a punta sferica.\n"
-"- a V -> disabiliterà il parametro di Z-Cut nel modulo UI della geometria "
-"risultante\n"
-"e abiliterà due campi aggiuntivi nella geometria risultante: Diametro V-Tip "
-"e\n"
-"Angolo della punta a V. La regolazione di questi due valori regolerà il "
-"parametro Z-Cut\n"
-"poiché la larghezza del taglio nel materiale sarà uguale al valore nella "
-"colonna Diametro utensile\n"
-"di questa tabella.\n"
-"Scegliendo il tipo di strumento \"a V\" si selezionerà automaticamente il "
-"tipo di operazione\n"
-"nella geometria risultante come isolamento."
-
-#: flatcamTools/ToolNCC.py:296 flatcamTools/ToolPaint.py:279
-msgid ""
-"Add a new tool to the Tool Table\n"
-"with the diameter specified above."
-msgstr ""
-"Aggiungi un nuovo utensile alla tabella degli utensili\n"
-"con il diametro sopra specificato."
-
-#: flatcamTools/ToolNCC.py:318 flatcamTools/ToolPaint.py:301
-#: flatcamTools/ToolSolderPaste.py:130
-msgid ""
-"Delete a selection of tools in the Tool Table\n"
-"by first selecting a row(s) in the Tool Table."
-msgstr ""
-"Elimina un utensile selezionato dalla tabella degli utensili\n"
-"selezionando prima una o più righe nella tabella degli utensili."
-
-#: flatcamTools/ToolNCC.py:554
-msgid ""
-"The type of FlatCAM object to be used as non copper clearing reference.\n"
-"It can be Gerber, Excellon or Geometry."
-msgstr ""
-"Il tipo di oggetto FlatCAM da utilizzare come riferimento di eliminazione "
-"del rame.\n"
-"Può essere Gerber, Excellon o Geometry."
-
-#: flatcamTools/ToolNCC.py:597 flatcamTools/ToolPaint.py:537
-msgid "Generate Geometry"
-msgstr "Genera geometria"
-
-#: flatcamTools/ToolNCC.py:1420 flatcamTools/ToolPaint.py:1179
-#: flatcamTools/ToolSolderPaste.py:888
-msgid "Please enter a tool diameter to add, in Float format."
-msgstr "Inserisci un diametro utensile da aggiungere, in formato Float."
-
-#: flatcamTools/ToolNCC.py:1451 flatcamTools/ToolNCC.py:4008
-#: flatcamTools/ToolPaint.py:1203 flatcamTools/ToolPaint.py:3598
-#: flatcamTools/ToolSolderPaste.py:917
-msgid "Cancelled. Tool already in Tool Table."
-msgstr "Annullato. Utensile già nella tabella utensili."
-
-#: flatcamTools/ToolNCC.py:1458 flatcamTools/ToolNCC.py:4025
-#: flatcamTools/ToolPaint.py:1208 flatcamTools/ToolPaint.py:3615
-msgid "New tool added to Tool Table."
-msgstr "Nuovo utensile aggiunto alla tabella."
-
-#: flatcamTools/ToolNCC.py:1502 flatcamTools/ToolPaint.py:1252
-msgid "Tool from Tool Table was edited."
-msgstr "Utensile dalla tabella modificato."
-
-#: flatcamTools/ToolNCC.py:1514 flatcamTools/ToolPaint.py:1264
-#: flatcamTools/ToolSolderPaste.py:978
-msgid "Cancelled. New diameter value is already in the Tool Table."
-msgstr "Cancellato. Il valore del nuovo diametro è già presente nella tabella."
-
-#: flatcamTools/ToolNCC.py:1566 flatcamTools/ToolPaint.py:1362
-msgid "Delete failed. Select a tool to delete."
-msgstr "Cancellazione fallita. Seleziona un utensile da cancellare."
-
-#: flatcamTools/ToolNCC.py:1572 flatcamTools/ToolPaint.py:1368
-msgid "Tool(s) deleted from Tool Table."
-msgstr "Utensile(i) cancellato(i) dalla tabella."
-
-#: flatcamTools/ToolNCC.py:1614
-msgid "Wrong Tool Dia value format entered, use a number."
-msgstr "Errore nel formato nel valore del diametro inserito, usa un numero."
-
-#: flatcamTools/ToolNCC.py:1623 flatcamTools/ToolPaint.py:1419
-msgid "No selected tools in Tool Table."
-msgstr "Nessun utensile selezionato nella tabella."
-
-#: flatcamTools/ToolNCC.py:1699 flatcamTools/ToolPaint.py:1595
-msgid "Click the end point of the paint area."
-msgstr "Fai clic sul punto finale dell'area."
-
-#: flatcamTools/ToolNCC.py:1971 flatcamTools/ToolNCC.py:2959
-msgid "NCC Tool. Preparing non-copper polygons."
-msgstr "Strumento NCC. Preparazione poligoni non-rame."
-
-#: flatcamTools/ToolNCC.py:2030 flatcamTools/ToolNCC.py:3087
-msgid "NCC Tool. Calculate 'empty' area."
-msgstr "Strumento NCC. Calcolo aree 'vuote'."
-
-#: flatcamTools/ToolNCC.py:2049 flatcamTools/ToolNCC.py:2155
-#: flatcamTools/ToolNCC.py:2169 flatcamTools/ToolNCC.py:3100
-#: flatcamTools/ToolNCC.py:3205 flatcamTools/ToolNCC.py:3220
-#: flatcamTools/ToolNCC.py:3486 flatcamTools/ToolNCC.py:3587
-#: flatcamTools/ToolNCC.py:3602
-msgid "Buffering finished"
-msgstr "Fine buffering"
-
-#: flatcamTools/ToolNCC.py:2057 flatcamTools/ToolNCC.py:2176
-#: flatcamTools/ToolNCC.py:3108 flatcamTools/ToolNCC.py:3227
-#: flatcamTools/ToolNCC.py:3493 flatcamTools/ToolNCC.py:3609
-msgid "Could not get the extent of the area to be non copper cleared."
-msgstr "Impossibile ottenere l'estensione dell'area da cui eliminare il rame."
-
-#: flatcamTools/ToolNCC.py:2084 flatcamTools/ToolNCC.py:2162
-#: flatcamTools/ToolNCC.py:3135 flatcamTools/ToolNCC.py:3212
-#: flatcamTools/ToolNCC.py:3513 flatcamTools/ToolNCC.py:3594
-msgid ""
-"Isolation geometry is broken. Margin is less than isolation tool diameter."
-msgstr ""
-"La geometria dell'isolamento è rotta. Il margine è inferiore al diametro "
-"dell'utensile di isolamento."
-
-#: flatcamTools/ToolNCC.py:2179 flatcamTools/ToolNCC.py:3231
-#: flatcamTools/ToolNCC.py:3612
-msgid "The selected object is not suitable for copper clearing."
-msgstr "L'oggetto selezionato non è idoneo alla pulizia rame."
-
-#: flatcamTools/ToolNCC.py:2186 flatcamTools/ToolNCC.py:3238
-msgid "NCC Tool. Finished calculation of 'empty' area."
-msgstr "Strumento NCC. Fine calcolo aree 'vuote'."
-
-#: flatcamTools/ToolNCC.py:2217 flatcamTools/ToolNCC.py:2219
-#: flatcamTools/ToolNCC.py:2911 flatcamTools/ToolNCC.py:2913
-msgid "Non-Copper clearing ..."
-msgstr "NCC cancellazione non-rame ..."
-
-#: flatcamTools/ToolNCC.py:2273 flatcamTools/ToolNCC.py:3055
-msgid ""
-"NCC Tool. Finished non-copper polygons. Normal copper clearing task started."
-msgstr ""
-"Strumento NCC. Fine elaborazione poligoni non-rame. Task rimozione rame "
-"completato."
-
-#: flatcamTools/ToolNCC.py:2307 flatcamTools/ToolNCC.py:2587
-msgid "NCC Tool failed creating bounding box."
-msgstr ""
-"Lo strumento NCC non è riuscito a creare il rettangolo di contenimento."
-
-#: flatcamTools/ToolNCC.py:2321 flatcamTools/ToolNCC.py:2604
-#: flatcamTools/ToolNCC.py:3251 flatcamTools/ToolNCC.py:3637
-msgid "NCC Tool clearing with tool diameter"
-msgstr "Strumento NCC, uso dell'utensile diametro"
-
-#: flatcamTools/ToolNCC.py:2321 flatcamTools/ToolNCC.py:2604
-#: flatcamTools/ToolNCC.py:3251 flatcamTools/ToolNCC.py:3637
-msgid "started."
-msgstr "avviato."
-
-#: flatcamTools/ToolNCC.py:2513 flatcamTools/ToolNCC.py:3412
-msgid ""
-"There is no NCC 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 ""
-"Nessuna geometria NCC nel file.\n"
-"Di solito significa che il diametro dell'utensile è troppo grande per la "
-"geometria.\n"
-"Modifica i parametri e riprova."
-
-#: flatcamTools/ToolNCC.py:2522 flatcamTools/ToolNCC.py:3421
-msgid "NCC Tool clear all done."
-msgstr "Lo strumento NCC ha terminato."
-
-#: flatcamTools/ToolNCC.py:2525 flatcamTools/ToolNCC.py:3424
-msgid "NCC Tool clear all done but the copper features isolation is broken for"
-msgstr "Lo strumento NCC ha terminato ma l'isolamento del rame è rotto per"
-
-#: flatcamTools/ToolNCC.py:2527 flatcamTools/ToolNCC.py:2812
-#: flatcamTools/ToolNCC.py:3426 flatcamTools/ToolNCC.py:3809
-msgid "tools"
-msgstr "utensili"
-
-#: flatcamTools/ToolNCC.py:2808 flatcamTools/ToolNCC.py:3805
-msgid "NCC Tool Rest Machining clear all done."
-msgstr "Utensile NCC lavorazione di ripresa completata."
-
-#: flatcamTools/ToolNCC.py:2811 flatcamTools/ToolNCC.py:3808
-msgid ""
-"NCC Tool Rest Machining clear all done but the copper features isolation is "
-"broken for"
-msgstr ""
-"Utensile NCC lavorazione di ripresa completata ma l'isolamento del rame è "
-"rotto per"
-
-#: flatcamTools/ToolNCC.py:2923
-msgid "NCC Tool started. Reading parameters."
-msgstr "Strumento NCC avviato. Lettura parametri."
-
-#: flatcamTools/ToolNCC.py:3901
-msgid ""
-"Try to use the Buffering Type = Full in Preferences -> Gerber General. "
-"Reload the Gerber file after this change."
-msgstr ""
-"Prova a utilizzare il tipo di buffer = Completo in Preferenze -> Gerber "
-"Generale. Ricarica il file Gerber dopo questa modifica."
-
-#: flatcamTools/ToolOptimal.py:79
-msgid "Number of decimals kept for found distances."
-msgstr "Numero di decimali da tenere per le distanze trovate."
-
-#: flatcamTools/ToolOptimal.py:87
-msgid "Minimum distance"
-msgstr "Distanza minima"
-
-#: flatcamTools/ToolOptimal.py:88
-msgid "Display minimum distance between copper features."
-msgstr "Visualizza la minima distanza tra aree di rame."
-
-#: flatcamTools/ToolOptimal.py:92
-msgid "Determined"
-msgstr "Determinato"
-
-#: flatcamTools/ToolOptimal.py:106
-msgid "Occurring"
-msgstr "Succedendo"
-
-#: flatcamTools/ToolOptimal.py:107
-msgid "How many times this minimum is found."
-msgstr "Quante volte è rilevato questo minimo."
-
-#: flatcamTools/ToolOptimal.py:113
-msgid "Minimum points coordinates"
-msgstr "Coordinate punti minimi"
-
-#: flatcamTools/ToolOptimal.py:114 flatcamTools/ToolOptimal.py:120
-msgid "Coordinates for points where minimum distance was found."
-msgstr "Coordinate per i punti dove è stata rilevata la distanza minima."
-
-#: flatcamTools/ToolOptimal.py:133 flatcamTools/ToolOptimal.py:209
-msgid "Jump to selected position"
-msgstr "Vai alla posizione selezionata"
-
-#: flatcamTools/ToolOptimal.py:135 flatcamTools/ToolOptimal.py:211
-msgid ""
-"Select a position in the Locations text box and then\n"
-"click this button."
-msgstr ""
-"Selezionare una posizione nella casella di testo Posizioni e quindi\n"
-"fai clic su questo pulsante."
-
-#: flatcamTools/ToolOptimal.py:143
-msgid "Other distances"
-msgstr "Altre distanze"
-
-#: flatcamTools/ToolOptimal.py:144
-msgid ""
-"Will display other distances in the Gerber file ordered from\n"
-"the minimum to the maximum, not including the absolute minimum."
-msgstr ""
-"Visualizzerà altre distanze nel file Gerber ordinato dal\n"
-"minimo al massimo, escluso il minimo assoluto."
-
-#: flatcamTools/ToolOptimal.py:149
-msgid "Other distances points coordinates"
-msgstr "Coordinate di punti di altre distanze"
-
-#: flatcamTools/ToolOptimal.py:150 flatcamTools/ToolOptimal.py:164
-#: flatcamTools/ToolOptimal.py:171 flatcamTools/ToolOptimal.py:188
-#: flatcamTools/ToolOptimal.py:195
-msgid ""
-"Other distances and the coordinates for points\n"
-"where the distance was found."
-msgstr ""
-"Altre distanze e coordinate per i punti\n"
-"dove è stata trovata la distanza."
-
-#: flatcamTools/ToolOptimal.py:163
-msgid "Gerber distances"
-msgstr "Distanze gerber"
-
-#: flatcamTools/ToolOptimal.py:187
-msgid "Points coordinates"
-msgstr "Coordinate punti"
-
-#: flatcamTools/ToolOptimal.py:219
-msgid "Find Minimum"
-msgstr "Trova minimi"
-
-#: flatcamTools/ToolOptimal.py:221
-msgid ""
-"Calculate the minimum distance between copper features,\n"
-"this will allow the determination of the right tool to\n"
-"use for isolation or copper clearing."
-msgstr ""
-"Calcola la distanza minima tra le caratteristiche di rame,\n"
-"questo consentirà la determinazione dello strumento giusto per\n"
-"utilizzare per l'isolamento o la pulizia del rame."
-
-#: flatcamTools/ToolOptimal.py:346
-msgid "Only Gerber objects can be evaluated."
-msgstr "Possono essere valutati solo oggetti Gerber."
-
-#: flatcamTools/ToolOptimal.py:352
-msgid ""
-"Optimal Tool. Started to search for the minimum distance between copper "
-"features."
-msgstr ""
-"Strumento ottimale. Inizio a cercare la distanza minima tra le "
-"caratteristiche di rame."
-
-#: flatcamTools/ToolOptimal.py:362
-msgid "Optimal Tool. Parsing geometry for aperture"
-msgstr "Strumento ottimale. Analisi geometria per aperture"
-
-#: flatcamTools/ToolOptimal.py:373
-msgid "Optimal Tool. Creating a buffer for the object geometry."
-msgstr ""
-"Strumento ottimale. Creazione di un buffer per la geometria dell'oggetto."
-
-#: flatcamTools/ToolOptimal.py:383
-msgid ""
-"The Gerber object has one Polygon as geometry.\n"
-"There are no distances between geometry elements to be found."
-msgstr ""
-"L'oggetto Gerber ha un poligono come geometria.\n"
-"Non ci sono distanze tra gli elementi geometrici da trovare."
-
-#: flatcamTools/ToolOptimal.py:388
-msgid ""
-"Optimal Tool. Finding the distances between each two elements. Iterations"
-msgstr ""
-"Strumento ottimale. Trovo le distanze tra ogni coppia di elementi. iterazioni"
-
-#: flatcamTools/ToolOptimal.py:423
-msgid "Optimal Tool. Finding the minimum distance."
-msgstr "Strumento ottimale. Trovare la distanza minima."
-
-#: flatcamTools/ToolOptimal.py:439
-msgid "Optimal Tool. Finished successfully."
-msgstr "Strumento ottimale. Finito con successo."
-
-#: flatcamTools/ToolPDF.py:157 flatcamTools/ToolPDF.py:161
-msgid "Open PDF"
-msgstr "Apri PDF"
-
-#: flatcamTools/ToolPDF.py:164
-msgid "Open PDF cancelled"
-msgstr "Apertura PDF annullata"
-
-#: flatcamTools/ToolPDF.py:195
-msgid "Parsing PDF file ..."
-msgstr "Analisi file PDF ..."
-
-#: flatcamTools/ToolPDF.py:278 flatcamTools/ToolPDF.py:353
-#, python-format
-msgid "Rendering PDF layer #%d ..."
-msgstr "Rendering del livello PDF #%d ..."
-
-#: flatcamTools/ToolPDF.py:283 flatcamTools/ToolPDF.py:358
-msgid "Open PDF file failed."
-msgstr "Apertura file PDF fallita."
-
-#: flatcamTools/ToolPDF.py:289 flatcamTools/ToolPDF.py:363
-msgid "Rendered"
-msgstr "Renderizzato"
-
-#: flatcamTools/ToolPaint.py:82
-msgid ""
-"Specify the type of object to be painted.\n"
-"It can be of type: Gerber or Geometry.\n"
-"What is selected here will dictate the kind\n"
-"of objects that will populate the 'Object' combobox."
-msgstr ""
-"Specifica il tipo di oggetto da dipingere.\n"
-"Può essere di tipo: Gerber o Geometria.\n"
-"Ciò che è selezionato qui detterà il tipo\n"
-"di oggetti che popoleranno la combobox 'Oggetto'."
-
-#: flatcamTools/ToolPaint.py:104
-msgid "Object to be painted."
-msgstr "Oggetto da dipingere."
-
-#: flatcamTools/ToolPaint.py:117
-msgid ""
-"Tools pool from which the algorithm\n"
-"will pick the ones used for painting."
-msgstr ""
-"Set di strumenti da cui l'algoritmo\n"
-"sceglierà quelli usati per la pittura."
-
-#: flatcamTools/ToolPaint.py:134
-msgid ""
-"This is the Tool Number.\n"
-"Painting will start with the tool with the biggest diameter,\n"
-"continuing until there are no more tools.\n"
-"Only tools that create painting geometry will still be present\n"
-"in the resulting geometry. This is because with some tools\n"
-"this function will not be able to create painting geometry."
-msgstr ""
-"Questo è il numero dell'utensile.\n"
-"La pittura inizierà con lo strumento con il diametro maggiore,\n"
-"continuando fino a quando non ci saranno più strumenti.\n"
-"Solo gli strumenti che creano la geometria della pittura saranno ancora "
-"presenti\n"
-"nella geometria risultante. Questo perché con alcuni strumenti\n"
-"questa funzione non sarà in grado di creare la geometria della pittura."
-
-#: flatcamTools/ToolPaint.py:146
-msgid ""
-"The Tool Type (TT) can be:\n"
-"- Circular -> it is informative only. Being circular,\n"
-"the cut width in material is exactly the tool diameter.\n"
-"- Ball -> informative only and make reference to the Ball type endmill.\n"
-"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI "
-"form\n"
-"and enable two additional UI form fields in the resulting geometry: V-Tip "
-"Dia and\n"
-"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter "
-"such\n"
-"as the cut width into material will be equal with the value in the Tool "
-"Diameter\n"
-"column of this table.\n"
-"Choosing the 'V-Shape' Tool Type automatically will select the Operation "
-"Type\n"
-"in the resulting geometry as Isolation."
-msgstr ""
-"Il tipo di strumento (TT) può essere:\n"
-"- Circolare con 1 ... 4 denti -> è solo informativo. Essendo circolare,\n"
-"la larghezza di taglio nel materiale è esattamente il diametro "
-"dell'utensile.\n"
-"- Sferico -> solo informativo e fa riferimento alla fresa a punta sferica.\n"
-"- a V -> disabiliterà il parametro di Z-Cut nel modulo UI della geometria "
-"risultante\n"
-"e abiliterà due campi aggiuntivi nella geometria risultante: Diametro V-Tip "
-"e\n"
-"Angolo della punta a V. La regolazione di questi due valori regolerà il "
-"parametro Z-Cut\n"
-"poiché la larghezza del taglio nel materiale sarà uguale al valore nella "
-"colonna Diametro utensile\n"
-"di questa tabella.\n"
-"Scegliendo il tipo di strumento 'a V' si selezionerà automaticamente il tipo "
-"di operazione\n"
-"nella geometria risultante come isolamento."
-
-#: flatcamTools/ToolPaint.py:498
-msgid ""
-"The type of FlatCAM object to be used as paint reference.\n"
-"It can be Gerber, Excellon or Geometry."
-msgstr ""
-"Il tipo di oggetto FlatCAM da utilizzare come riferimento di disegno.\n"
-"Può essere Gerber, Excellon o Geometry."
-
-#: flatcamTools/ToolPaint.py:539
-msgid ""
-"- 'Area Selection' - left mouse click to start selection of the area to be "
-"painted.\n"
-"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple "
-"areas.\n"
-"- 'All Polygons' - the Paint will start after click.\n"
-"- 'Reference Object' - will do non copper clearing within the area\n"
-"specified by another object."
-msgstr ""
-"- 'Selezione area': fare clic con il pulsante sinistro del mouse per "
-"iniziare la selezione dell'area da dipingere.\n"
-"Tenendo premuto un tasto modificatore (CTRL o SHIFT) sarà possibile "
-"aggiungere più aree.\n"
-"- 'Tutti i poligoni': la pittura inizierà dopo il clic.\n"
-"- 'Oggetto di riferimento' - eseguirà lo sgombero dal rame all'interno "
-"dell'area\n"
-"specificata da un altro oggetto."
-
-#: flatcamTools/ToolPaint.py:1388
-#, python-format
-msgid "Could not retrieve object: %s"
-msgstr "Impossibile ottenere l'oggetto: %s"
-
-#: flatcamTools/ToolPaint.py:1398
-msgid "Can't do Paint on MultiGeo geometries"
-msgstr "Impossibile dipingere in geometrie multigeo"
-
-#: flatcamTools/ToolPaint.py:1428
-msgid "Click on a polygon to paint it."
-msgstr "Clicca su un poligono per dipingerlo."
-
-#: flatcamTools/ToolPaint.py:1448
-msgid "Click the start point of the paint area."
-msgstr "Fai clic sul punto iniziale dell'area di disegno."
-
-#: flatcamTools/ToolPaint.py:1513
-msgid "Click to add next polygon or right click to start painting."
-msgstr ""
-"Fai clic per aggiungere il prossimo poligono o fai clic con il tasto destro "
-"per iniziare a dipingere."
-
-#: flatcamTools/ToolPaint.py:1526
-msgid "Click to add/remove next polygon or right click to start painting."
-msgstr ""
-"Fai clic per aggiungere/rimuovere il prossimo poligono o fai clic con il "
-"tasto destro per iniziare a dipingere."
-
-#: flatcamTools/ToolPaint.py:2024
-msgid "Painting polygon with method: lines."
-msgstr "Pittura poligoni con modalità linee."
-
-#: flatcamTools/ToolPaint.py:2036
-msgid "Failed. Painting polygon with method: seed."
-msgstr "Pittura poligoni con modalità semi."
-
-#: flatcamTools/ToolPaint.py:2047
-msgid "Failed. Painting polygon with method: standard."
-msgstr "Pittura poligoni con modalità standard."
-
-#: flatcamTools/ToolPaint.py:2063
-msgid "Geometry could not be painted completely"
-msgstr "La geometria non può essere dipinta completamente"
-
-#: flatcamTools/ToolPaint.py:2092 flatcamTools/ToolPaint.py:2095
-#: flatcamTools/ToolPaint.py:2103 flatcamTools/ToolPaint.py:2406
-#: flatcamTools/ToolPaint.py:2409 flatcamTools/ToolPaint.py:2417
-#: flatcamTools/ToolPaint.py:2905 flatcamTools/ToolPaint.py:2908
-#: flatcamTools/ToolPaint.py:2914
-msgid "Paint Tool."
-msgstr "Strumento pittura."
-
-#: flatcamTools/ToolPaint.py:2092 flatcamTools/ToolPaint.py:2095
-#: flatcamTools/ToolPaint.py:2103
-msgid "Normal painting polygon task started."
-msgstr "Attività di poligono di pittura normale avviata."
-
-#: flatcamTools/ToolPaint.py:2093 flatcamTools/ToolPaint.py:2407
-#: flatcamTools/ToolPaint.py:2906
-msgid "Buffering geometry..."
-msgstr "Geometria buffer ..."
-
-#: flatcamTools/ToolPaint.py:2115 flatcamTools/ToolPaint.py:2424
-#: flatcamTools/ToolPaint.py:2922
-msgid "No polygon found."
-msgstr "Nessun poligono trovato."
-
-#: flatcamTools/ToolPaint.py:2145
-msgid "Painting polygon..."
-msgstr "Pittura poligono ..."
-
-#: flatcamTools/ToolPaint.py:2155 flatcamTools/ToolPaint.py:2470
-#: flatcamTools/ToolPaint.py:2660 flatcamTools/ToolPaint.py:2968
-#: flatcamTools/ToolPaint.py:3147
-msgid "Painting with tool diameter = "
-msgstr "Verniciatura con diametro utensile = "
-
-#: flatcamTools/ToolPaint.py:2156 flatcamTools/ToolPaint.py:2471
-#: flatcamTools/ToolPaint.py:2661 flatcamTools/ToolPaint.py:2969
-#: flatcamTools/ToolPaint.py:3148
-msgid "started"
-msgstr "avviata"
-
-#: flatcamTools/ToolPaint.py:2181 flatcamTools/ToolPaint.py:2497
-#: flatcamTools/ToolPaint.py:2687 flatcamTools/ToolPaint.py:2995
-#: flatcamTools/ToolPaint.py:3174
-msgid "Margin parameter too big. Tool is not used"
-msgstr "Parametro di margine troppo grande. Utensile non usato"
-
-#: flatcamTools/ToolPaint.py:2239 flatcamTools/ToolPaint.py:2566
-#: flatcamTools/ToolPaint.py:2744 flatcamTools/ToolPaint.py:3058
-#: flatcamTools/ToolPaint.py:3236
-msgid ""
-"Could not do Paint. Try a different combination of parameters. Or a "
-"different strategy of paint"
-msgstr ""
-"Impossibile dipingere. Prova una diversa combinazione di parametri. O una "
-"diversa strategia di pittura"
-
-#: flatcamTools/ToolPaint.py:2296 flatcamTools/ToolPaint.py:2632
-#: flatcamTools/ToolPaint.py:2801 flatcamTools/ToolPaint.py:3119
-#: flatcamTools/ToolPaint.py:3298
-msgid ""
-"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 ""
-"Nel file non è presente una Geometria di pittura.\n"
-"Di solito significa che il diametro dell'utensile è troppo grande per la "
-"geometria da trattare.\n"
-"Modifica i parametri di pittura e riprova."
-
-#: flatcamTools/ToolPaint.py:2319
-msgid "Paint Single failed."
-msgstr "Pittura singola fallita."
-
-#: flatcamTools/ToolPaint.py:2325
-msgid "Paint Single Done."
-msgstr "Pittura, fatto."
-
-#: flatcamTools/ToolPaint.py:2327 flatcamTools/ToolPaint.py:2837
-#: flatcamTools/ToolPaint.py:3334
-msgid "Polygon Paint started ..."
-msgstr "Pittura poligoni avviata ..."
-
-#: flatcamTools/ToolPaint.py:2406 flatcamTools/ToolPaint.py:2409
-#: flatcamTools/ToolPaint.py:2417
-msgid "Paint all polygons task started."
-msgstr "Attività di pittura poligoni avviata."
-
-#: flatcamTools/ToolPaint.py:2448 flatcamTools/ToolPaint.py:2946
-msgid "Painting polygons..."
-msgstr "Pittura poligoni..."
-
-#: flatcamTools/ToolPaint.py:2641
-msgid "Paint All Done."
-msgstr "Verniciatura effettuata."
-
-#: flatcamTools/ToolPaint.py:2810 flatcamTools/ToolPaint.py:3307
-msgid "Paint All with Rest-Machining done."
-msgstr "Dipingi tutto con Lavorazione a ripresa."
-
-#: flatcamTools/ToolPaint.py:2829
-msgid "Paint All failed."
-msgstr "Vernicia tutti fallita."
-
-#: flatcamTools/ToolPaint.py:2835
-msgid "Paint Poly All Done."
-msgstr "Verniciatura di tutti i poligoni effettuata."
-
-#: flatcamTools/ToolPaint.py:2905 flatcamTools/ToolPaint.py:2908
-#: flatcamTools/ToolPaint.py:2914
-msgid "Painting area task started."
-msgstr "Attività di pittura area avviata."
-
-#: flatcamTools/ToolPaint.py:3128
-msgid "Paint Area Done."
-msgstr "Pittura area completata."
-
-#: flatcamTools/ToolPaint.py:3326
-msgid "Paint Area failed."
-msgstr "Pittura area fallita."
-
-#: flatcamTools/ToolPaint.py:3332
-msgid "Paint Poly Area Done."
-msgstr "Pittura area poligono completata."
-
-#: flatcamTools/ToolPanelize.py:34
-msgid "Panelize PCB"
-msgstr "Pannellizza PCB"
-
-#: flatcamTools/ToolPanelize.py:56
-msgid ""
-"Specify the type of object to be panelized\n"
-"It can be of type: Gerber, Excellon or Geometry.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Object combobox."
-msgstr ""
-"Specificare il tipo di oggetto da pannellare.\n"
-"Può essere di tipo: Gerber, Excellon o Geometry.\n"
-"La selezione decide il tipo di oggetti che saranno\n"
-"nella combobox Oggetto."
-
-#: flatcamTools/ToolPanelize.py:89
-msgid ""
-"Object to be panelized. This means that it will\n"
-"be duplicated in an array of rows and columns."
-msgstr ""
-"Oggetto da pannellizzare. Questo significa che sarà\n"
-"duplicato in una matrice di righe e colonne."
-
-#: flatcamTools/ToolPanelize.py:102
-msgid "Penelization Reference"
-msgstr "Riferimento pannellizzazione"
-
-#: flatcamTools/ToolPanelize.py:104
-msgid ""
-"Choose the reference for panelization:\n"
-"- Object = the bounding box of a different object\n"
-"- Bounding Box = the bounding box of the object to be panelized\n"
-"\n"
-"The reference is useful when doing panelization for more than one\n"
-"object. The spacings (really offsets) will be applied in reference\n"
-"to this reference object therefore maintaining the panelized\n"
-"objects in sync."
-msgstr ""
-"Scegli il riferimento per la pannellizzazione:\n"
-"- Oggetto = il rettangolo di selezione di un altro oggetto\n"
-"- Bounding Box = il riquadro di delimitazione dell'oggetto da pannellare\n"
-"\n"
-"Il riferimento è utile quando si esegue la pannellizzazione per più di un\n"
-"oggetto. Le spaziature (offset) verranno applicate in riferimento\n"
-"a questo oggetto di riferimento mantenendo quindi gli oggetti\n"
-"pannellizzati sincronizzati."
-
-#: flatcamTools/ToolPanelize.py:125
-msgid "Box Type"
-msgstr "Tipo box"
-
-#: flatcamTools/ToolPanelize.py:127
-msgid ""
-"Specify the type of object to be used as an container for\n"
-"panelization. It can be: Gerber or Geometry type.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Box Object combobox."
-msgstr ""
-"Specificare il tipo di oggetto da utilizzare come contenitore per\n"
-"pannelizzazione. Può essere: tipo Gerber o Geometria.\n"
-"La selezione decide il tipo di oggetti che saranno\n"
-"nella casella combobox Oggetto."
-
-#: flatcamTools/ToolPanelize.py:141
-msgid ""
-"The actual object that is used as container for the\n"
-" selected object that is to be panelized."
-msgstr ""
-"Oggetto utilizzato come contenitore per\n"
-"l'oggetto selezionato da pannellizzare."
-
-#: flatcamTools/ToolPanelize.py:147
-msgid "Panel Data"
-msgstr "Dati pannello"
-
-#: flatcamTools/ToolPanelize.py:149
-msgid ""
-"This informations will shape the resulting panel.\n"
-"The number of rows and columns will set how many\n"
-"duplicates of the original geometry will be generated.\n"
-"\n"
-"The spacings will set the distance between any two\n"
-"elements of the panel array."
-msgstr ""
-"Queste informazioni daranno forma al pannello risultante.\n"
-"Il numero di righe e colonne imposterà quanti\n"
-"duplicati della geometria originale verranno generati.\n"
-"\n"
-"Le distanze imposteranno la distanza tra due qualsiasi\n"
-"elementi della matrice di pannelli."
-
-#: flatcamTools/ToolPanelize.py:208
-msgid ""
-"Choose the type of object for the panel object:\n"
-"- Geometry\n"
-"- Gerber"
-msgstr ""
-"Scegli il tipo di oggetto per l'oggetto pannello:\n"
-"- Geometria\n"
-"- Gerber"
-
-#: flatcamTools/ToolPanelize.py:216
-msgid "Constrain panel within"
-msgstr "Vincola pannello all'interno"
-
-#: flatcamTools/ToolPanelize.py:252
-msgid "Panelize Object"
-msgstr "Pannellizza oggetto"
-
-#: flatcamTools/ToolPanelize.py:254 flatcamTools/ToolRulesCheck.py:501
-msgid ""
-"Panelize the specified object around the specified box.\n"
-"In other words it creates multiple copies of the source object,\n"
-"arranged in a 2D array of rows and columns."
-msgstr ""
-"Panelizza l'oggetto specificato attorno al box specificata.\n"
-"In altre parole crea più copie dell'oggetto sorgente,\n"
-"disposti in una matrice 2D di righe e colonne."
-
-#: flatcamTools/ToolPanelize.py:322
-msgid "Panel. Tool"
-msgstr "Pannello, strumento"
-
-#: flatcamTools/ToolPanelize.py:457
-msgid "Columns or Rows are zero value. Change them to a positive integer."
-msgstr ""
-"Le colonne o le righe hanno valore zero. Modificali in un numero intero "
-"positivo."
-
-#: flatcamTools/ToolPanelize.py:494
-msgid "Generating panel ... "
-msgstr "Generazione pannello … "
-
-#: flatcamTools/ToolPanelize.py:777
-msgid "Generating panel ... Adding the Gerber code."
-msgstr "Generazione pannello … Aggiunta codice gerber."
-
-#: flatcamTools/ToolPanelize.py:785
-msgid "Generating panel... Spawning copies"
-msgstr "Generazione pannello … Generazione copie"
-
-#: flatcamTools/ToolPanelize.py:792
-msgid "Panel done..."
-msgstr "Pannellizzazione effettuata..."
-
-#: flatcamTools/ToolPanelize.py:795
-#, python-brace-format
-msgid ""
-"{text} Too big for the constrain area. Final panel has {col} columns and "
-"{row} rows"
-msgstr ""
-"{text} Troppo grande per l'area vincolata. Il pannello finale ha {col} "
-"colonne e {row} righe"
-
-#: flatcamTools/ToolPanelize.py:804
-msgid "Panel created successfully."
-msgstr "Pannello creato con successo."
-
-#: flatcamTools/ToolPcbWizard.py:31
-msgid "PcbWizard Import Tool"
-msgstr "Strumento importazione PcbWizard"
-
-#: flatcamTools/ToolPcbWizard.py:40
-msgid "Import 2-file Excellon"
-msgstr "Importazione Excellon doppio file"
-
-#: flatcamTools/ToolPcbWizard.py:51
-msgid "Load files"
-msgstr "Carica files"
-
-#: flatcamTools/ToolPcbWizard.py:57
-msgid "Excellon file"
-msgstr "File Excellon"
-
-#: flatcamTools/ToolPcbWizard.py:59
-msgid ""
-"Load the Excellon file.\n"
-"Usually it has a .DRL extension"
-msgstr ""
-"Carica file Excellon.\n"
-"Tipicamente ha estensione .DRL"
-
-#: flatcamTools/ToolPcbWizard.py:65
-msgid "INF file"
-msgstr "File INF"
-
-#: flatcamTools/ToolPcbWizard.py:67
-msgid "Load the INF file."
-msgstr "Carica un file INF."
-
-#: flatcamTools/ToolPcbWizard.py:79
-msgid "Tool Number"
-msgstr "Numero Utensile"
-
-#: flatcamTools/ToolPcbWizard.py:81
-msgid "Tool diameter in file units."
-msgstr "Diametro utensile in unità del file."
-
-#: flatcamTools/ToolPcbWizard.py:87
-msgid "Excellon format"
-msgstr "Formato Excellon"
-
-#: flatcamTools/ToolPcbWizard.py:95
-msgid "Int. digits"
-msgstr "Cifre intere"
-
-#: flatcamTools/ToolPcbWizard.py:97
-msgid "The number of digits for the integral part of the coordinates."
-msgstr "Numero di cifre per la parte intera delle coordinate."
-
-#: flatcamTools/ToolPcbWizard.py:104
-msgid "Frac. digits"
-msgstr "Cifre decimali"
-
-#: flatcamTools/ToolPcbWizard.py:106
-msgid "The number of digits for the fractional part of the coordinates."
-msgstr "Numero di cifre per la parte decimale delle coordinate."
-
-#: flatcamTools/ToolPcbWizard.py:113
-msgid "No Suppression"
-msgstr "No soppressione"
-
-#: flatcamTools/ToolPcbWizard.py:114
-msgid "Zeros supp."
-msgstr "Soppressione zeri."
-
-#: flatcamTools/ToolPcbWizard.py:116
-msgid ""
-"The type of zeros suppression used.\n"
-"Can be of type:\n"
-"- LZ = leading zeros are kept\n"
-"- TZ = trailing zeros are kept\n"
-"- No Suppression = no zero suppression"
-msgstr ""
-"Il tipo di soppressione degli zeri utilizzato.\n"
-"Può essere di tipo:\n"
-"- ZI = gli zeri iniziali vengono mantenuti\n"
-"- ZF = vengono mantenuti gli zeri finali\n"
-"- Nessuna soppressione = nessuna soppressione di zeri"
-
-#: flatcamTools/ToolPcbWizard.py:129
-msgid ""
-"The type of units that the coordinates and tool\n"
-"diameters are using. Can be INCH or MM."
-msgstr ""
-"Il tipo di unità usata da coordinate e dal diametro\n"
-"degli utensili. Può essere POLLICI o MM."
-
-#: flatcamTools/ToolPcbWizard.py:136
-msgid "Import Excellon"
-msgstr "Importa Excellon"
-
-#: flatcamTools/ToolPcbWizard.py:138
-msgid ""
-"Import in FlatCAM an Excellon file\n"
-"that store it's information's in 2 files.\n"
-"One usually has .DRL extension while\n"
-"the other has .INF extension."
-msgstr ""
-"Importa in FlatCAM un file Excellon\n"
-"che memorizza le informazioni in 2 file.\n"
-"Uno di solito ha l'estensione .DRL mentre\n"
-"l'altro ha estensione .INF."
-
-#: flatcamTools/ToolPcbWizard.py:197
-msgid "PCBWizard Tool"
-msgstr "Strumento PCBWizard"
-
-#: flatcamTools/ToolPcbWizard.py:291 flatcamTools/ToolPcbWizard.py:295
-msgid "Load PcbWizard Excellon file"
-msgstr "Carica file Excellon PcbWizard"
-
-#: flatcamTools/ToolPcbWizard.py:314 flatcamTools/ToolPcbWizard.py:318
-msgid "Load PcbWizard INF file"
-msgstr "Carica file INF PcbWizard"
-
-#: flatcamTools/ToolPcbWizard.py:366
-msgid ""
-"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 ""
-"Il file INF non contiene la tabella degli strumenti.\n"
-"Prova ad aprire il file Excellon da File -> Apri -> Excellon\n"
-"e modificare manualmente i diametri delle punte."
-
-#: flatcamTools/ToolPcbWizard.py:387
-msgid "PcbWizard .INF file loaded."
-msgstr "File PcbWizard caricato."
-
-#: flatcamTools/ToolPcbWizard.py:392
-msgid "Main PcbWizard Excellon file loaded."
-msgstr "File principale PcbWizard caricato."
-
-#: flatcamTools/ToolPcbWizard.py:427
-msgid "Cannot parse file"
-msgstr "Impossibile analizzare file"
-
-#: flatcamTools/ToolPcbWizard.py:450
-msgid "Importing Excellon."
-msgstr "Importazione Excellon."
-
-#: flatcamTools/ToolPcbWizard.py:457
-msgid "Import Excellon file failed."
-msgstr "Importazione file Excellon fallita."
-
-#: flatcamTools/ToolPcbWizard.py:464
-msgid "Imported"
-msgstr "Importato"
-
-#: flatcamTools/ToolPcbWizard.py:467
-msgid "Excellon merging is in progress. Please wait..."
-msgstr "Unione Excellon in corso. Attendere..."
-
-#: flatcamTools/ToolPcbWizard.py:469
-msgid "The imported Excellon file is empty."
-msgstr "Il file Excellon importato è vuoto."
-
-#: flatcamTools/ToolProperties.py:131
-msgid "Object Properties are displayed."
-msgstr "Proprietà oggetto visualizzate."
-
-#: flatcamTools/ToolProperties.py:136
-msgid "Properties Tool"
-msgstr "Strumento proprietà"
-
-#: flatcamTools/ToolProperties.py:150
-msgid "TYPE"
-msgstr "TIPO"
-
-#: flatcamTools/ToolProperties.py:151
-msgid "NAME"
-msgstr "NOME"
-
-#: flatcamTools/ToolProperties.py:153
-msgid "Dimensions"
-msgstr "Dimensione"
-
-#: flatcamTools/ToolProperties.py:181
-msgid "Geo Type"
-msgstr "Tipo Geom"
-
-#: flatcamTools/ToolProperties.py:184
-msgid "Single-Geo"
-msgstr "Geoi singola"
-
-#: flatcamTools/ToolProperties.py:185
-msgid "Multi-Geo"
-msgstr "Multi-Geo"
-
-#: flatcamTools/ToolProperties.py:196
-msgid "Calculating dimensions ... Please wait."
-msgstr "Calcolo dimensioni … Attendere."
-
-#: flatcamTools/ToolProperties.py:339 flatcamTools/ToolProperties.py:343
-#: flatcamTools/ToolProperties.py:345
-msgid "Inch"
-msgstr "Pollici"
-
-#: flatcamTools/ToolProperties.py:339 flatcamTools/ToolProperties.py:344
-#: flatcamTools/ToolProperties.py:346
-msgid "Metric"
-msgstr "Metrico"
-
-#: flatcamTools/ToolProperties.py:421 flatcamTools/ToolProperties.py:486
-msgid "Drills number"
-msgstr "Numero fori"
-
-#: flatcamTools/ToolProperties.py:422 flatcamTools/ToolProperties.py:488
-msgid "Slots number"
-msgstr "Numero Slot"
-
-#: flatcamTools/ToolProperties.py:424
-msgid "Drills total number:"
-msgstr "Numero totale di fori:"
-
-#: flatcamTools/ToolProperties.py:425
-msgid "Slots total number:"
-msgstr "Numero totale di slot:"
-
-#: flatcamTools/ToolProperties.py:452 flatcamTools/ToolProperties.py:455
-#: flatcamTools/ToolProperties.py:458 flatcamTools/ToolProperties.py:483
-msgid "Present"
-msgstr "Presente"
-
-#: flatcamTools/ToolProperties.py:453 flatcamTools/ToolProperties.py:484
-msgid "Solid Geometry"
-msgstr "Geometria solida"
-
-#: flatcamTools/ToolProperties.py:456
-msgid "GCode Text"
-msgstr "Testo GCode"
-
-#: flatcamTools/ToolProperties.py:459
-msgid "GCode Geometry"
-msgstr "Geometria GCode"
-
-#: flatcamTools/ToolProperties.py:462
-msgid "Data"
-msgstr "Dati"
-
-#: flatcamTools/ToolProperties.py:495
-msgid "Depth of Cut"
-msgstr "Profondità di taglio"
-
-#: flatcamTools/ToolProperties.py:507
-msgid "Clearance Height"
-msgstr "Altezza di sicurezza"
-
-#: flatcamTools/ToolProperties.py:539
-msgid "Routing time"
-msgstr "Tempo fresatura"
-
-#: flatcamTools/ToolProperties.py:546
-msgid "Travelled distance"
-msgstr "Distanza percorsa"
-
-#: flatcamTools/ToolProperties.py:564
-msgid "Width"
-msgstr "Larghezza"
-
-#: flatcamTools/ToolProperties.py:570 flatcamTools/ToolProperties.py:578
-msgid "Box Area"
-msgstr "Area box"
-
-#: flatcamTools/ToolProperties.py:573 flatcamTools/ToolProperties.py:581
-msgid "Convex_Hull Area"
-msgstr "Area guscio convesso"
-
-#: flatcamTools/ToolProperties.py:588 flatcamTools/ToolProperties.py:591
-msgid "Copper Area"
-msgstr "Area rame"
-
-#: flatcamTools/ToolPunchGerber.py:30 flatcamTools/ToolPunchGerber.py:323
-msgid "Punch Gerber"
-msgstr "Punzona Gerber"
-
-#: flatcamTools/ToolPunchGerber.py:65
-msgid "Gerber into which to punch holes"
-msgstr "Gerber nel quale applicare i punzoni"
-
-#: flatcamTools/ToolPunchGerber.py:85
-msgid "ALL"
-msgstr "TUTTO"
-
-#: flatcamTools/ToolPunchGerber.py:166
-msgid ""
-"Remove the geometry of Excellon from the Gerber to create the holes in pads."
-msgstr "Rimuovi la geometria Excellon dal Gerber per creare i fori nei pad."
-
-#: flatcamTools/ToolPunchGerber.py:325
-msgid ""
-"Create a Gerber object from the selected object, within\n"
-"the specified box."
-msgstr ""
-"Crea un oggetto gerber dall'oggetto selezionato, dento\n"
-"il box specificato."
-
-#: flatcamTools/ToolPunchGerber.py:425
-msgid "Punch Tool"
-msgstr "Strumento punzone"
-
-#: flatcamTools/ToolPunchGerber.py:599
-msgid "The value of the fixed diameter is 0.0. Aborting."
-msgstr "Il valore di diametro fisso è 0.0. Annullamento."
-
-#: flatcamTools/ToolPunchGerber.py:607 flatcamTools/ToolPunchGerber.py:619
-msgid ""
-"Could not generate punched hole Gerber because the punch hole size is bigger "
-"than some of the apertures in the Gerber object."
-msgstr ""
-"Impossibile generare fori punzonati nel Gerber perché la dimensione del foro "
-"del punzone è maggiore di alcune delle aperture nell'oggetto Gerber."
-
-#: flatcamTools/ToolPunchGerber.py:656
-msgid ""
-"Could not generate punched hole Gerber because the newly created object "
-"geometry is the same as the one in the source object geometry..."
-msgstr ""
-"Impossibile generare fori punzonati nel Gerber perché la geometria "
-"dell'oggetto appena creata è uguale a quella nella geometria dell'oggetto "
-"sorgente ..."
-
-#: flatcamTools/ToolQRCode.py:80
-msgid "Gerber Object to which the QRCode will be added."
-msgstr "Oggetto Gerber a cui verrà aggiunto il QRCode."
-
-#: flatcamTools/ToolQRCode.py:93
-msgid "QRCode Parameters"
-msgstr "Parametri QRCode"
-
-#: flatcamTools/ToolQRCode.py:95
-msgid "The parameters used to shape the QRCode."
-msgstr "Parametri usati per formare il QRCode."
-
-#: flatcamTools/ToolQRCode.py:207
-msgid "Export QRCode"
-msgstr "Esporta QRCode"
-
-#: flatcamTools/ToolQRCode.py:209
-msgid ""
-"Show a set of controls allowing to export the QRCode\n"
-"to a SVG file or an PNG file."
-msgstr ""
-"Mostra una serie di controlli che consentono di esportare il QRCode\n"
-"in un file SVG o in un file PNG."
-
-#: flatcamTools/ToolQRCode.py:248
-msgid "Transparent back color"
-msgstr "Colore trasparente sfondo"
-
-#: flatcamTools/ToolQRCode.py:273
-msgid "Export QRCode SVG"
-msgstr "Esporta QRCode su SVG"
-
-#: flatcamTools/ToolQRCode.py:275
-msgid "Export a SVG file with the QRCode content."
-msgstr "Esporta un file SVG con il contenuto del QRCode."
-
-#: flatcamTools/ToolQRCode.py:286
-msgid "Export QRCode PNG"
-msgstr "Esporta QRCode su PNG"
-
-#: flatcamTools/ToolQRCode.py:288
-msgid "Export a PNG image file with the QRCode content."
-msgstr "Esporta file immagine PNG con il contenuto del QRCode."
-
-#: flatcamTools/ToolQRCode.py:299
-msgid "Insert QRCode"
-msgstr "Inserisci QRCode"
-
-#: flatcamTools/ToolQRCode.py:301
-msgid "Create the QRCode object."
-msgstr "Crea oggetto QRCode."
-
-#: flatcamTools/ToolQRCode.py:415 flatcamTools/ToolQRCode.py:750
-#: flatcamTools/ToolQRCode.py:799
-msgid "Cancelled. There is no QRCode Data in the text box."
-msgstr "Annullato. Non ci sono dati QRCode nel box testo."
-
-#: flatcamTools/ToolQRCode.py:434
-msgid "Generating QRCode geometry"
-msgstr "Generazione geometria QRCode"
-
-#: flatcamTools/ToolQRCode.py:474
-msgid "Click on the Destination point ..."
-msgstr "Clicca sul punto di destinazione ..."
-
-#: flatcamTools/ToolQRCode.py:589
-msgid "QRCode Tool done."
-msgstr "Strumento QRCode fatto."
-
-#: flatcamTools/ToolQRCode.py:782 flatcamTools/ToolQRCode.py:786
-msgid "Export PNG"
-msgstr "Esporta PNG"
-
-#: flatcamTools/ToolRulesCheck.py:33
-msgid "Check Rules"
-msgstr "Controllo regole"
-
-#: flatcamTools/ToolRulesCheck.py:61
-msgid "Gerber Files"
-msgstr "Files Gerber"
-
-#: flatcamTools/ToolRulesCheck.py:63
-msgid "Gerber objects for which to check rules."
-msgstr "Oggetti Gerber sui quali verificare le regole."
-
-#: flatcamTools/ToolRulesCheck.py:78
-msgid "Top"
-msgstr "Top"
-
-#: flatcamTools/ToolRulesCheck.py:80
-msgid "The Top Gerber Copper object for which rules are checked."
-msgstr "L'oggetto Gerber rame TOP per il quale vengono controllate le regole."
-
-#: flatcamTools/ToolRulesCheck.py:96
-msgid "Bottom"
-msgstr "Bottom"
-
-#: flatcamTools/ToolRulesCheck.py:98
-msgid "The Bottom Gerber Copper object for which rules are checked."
-msgstr ""
-"L'oggetto Gerber rame BOTTOM per il quale vengono controllate le regole."
-
-#: flatcamTools/ToolRulesCheck.py:114
-msgid "SM Top"
-msgstr "SM Top"
-
-#: flatcamTools/ToolRulesCheck.py:116
-msgid "The Top Gerber Solder Mask object for which rules are checked."
-msgstr ""
-"L'oggetto Gerber SolderMask TOP per il quale vengono controllate le regole."
-
-#: flatcamTools/ToolRulesCheck.py:132
-msgid "SM Bottom"
-msgstr "SM Bottom"
-
-#: flatcamTools/ToolRulesCheck.py:134
-msgid "The Bottom Gerber Solder Mask object for which rules are checked."
-msgstr ""
-"L'oggetto Gerber SolderMask BOTTOM per il quale vengono controllate le "
-"regole."
-
-#: flatcamTools/ToolRulesCheck.py:150
-msgid "Silk Top"
-msgstr "Silk Top"
-
-#: flatcamTools/ToolRulesCheck.py:152
-msgid "The Top Gerber Silkscreen object for which rules are checked."
-msgstr ""
-"L'oggetto Gerber Serigrafia TOP per il quale vengono controllate le regole."
-
-#: flatcamTools/ToolRulesCheck.py:168
-msgid "Silk Bottom"
-msgstr "Silk Bottom"
-
-#: flatcamTools/ToolRulesCheck.py:170
-msgid "The Bottom Gerber Silkscreen object for which rules are checked."
-msgstr ""
-"L'oggetto Gerber Serigrafia BOTTOM per il quale vengono controllate le "
-"regole."
-
-#: flatcamTools/ToolRulesCheck.py:188
-msgid "The Gerber Outline (Cutout) object for which rules are checked."
-msgstr ""
-"L'oggetto Gerber Outline (ritaglio) per il quale vengono controllate le "
-"regole."
-
-#: flatcamTools/ToolRulesCheck.py:199
-msgid "Excellon Objects"
-msgstr "Oggetto Excellon"
-
-#: flatcamTools/ToolRulesCheck.py:201
-msgid "Excellon objects for which to check rules."
-msgstr "Oggetto Excellon al quale controllare le regole."
-
-#: flatcamTools/ToolRulesCheck.py:213
-msgid "Excellon 1"
-msgstr "Excellon 1"
-
-#: flatcamTools/ToolRulesCheck.py:215
-msgid ""
-"Excellon object for which to check rules.\n"
-"Holds the plated holes or a general Excellon file content."
-msgstr ""
-"Oggetto Excellon per il quale verificare le regole.\n"
-"Contiene i fori placcati o un contenuto generale del file Excellon."
-
-#: flatcamTools/ToolRulesCheck.py:232
-msgid "Excellon 2"
-msgstr "Excellon 2"
-
-#: flatcamTools/ToolRulesCheck.py:234
-msgid ""
-"Excellon object for which to check rules.\n"
-"Holds the non-plated holes."
-msgstr ""
-"Oggetto Excellon per il quale verificare le regole.\n"
-"Contiene i fori non placcati."
-
-#: flatcamTools/ToolRulesCheck.py:247
-msgid "All Rules"
-msgstr "Tutte le regole"
-
-#: flatcamTools/ToolRulesCheck.py:249
-msgid "This check/uncheck all the rules below."
-msgstr "Abilita le regole sotto."
-
-#: flatcamTools/ToolRulesCheck.py:499
-msgid "Run Rules Check"
-msgstr "Esegui controllo regole"
-
-#: flatcamTools/ToolRulesCheck.py:1158 flatcamTools/ToolRulesCheck.py:1218
-#: flatcamTools/ToolRulesCheck.py:1255 flatcamTools/ToolRulesCheck.py:1327
-#: flatcamTools/ToolRulesCheck.py:1381 flatcamTools/ToolRulesCheck.py:1419
-#: flatcamTools/ToolRulesCheck.py:1484
-msgid "Value is not valid."
-msgstr "Valore non valido."
-
-#: flatcamTools/ToolRulesCheck.py:1172
-msgid "TOP -> Copper to Copper clearance"
-msgstr "TOP -> distanze rame-rame"
-
-#: flatcamTools/ToolRulesCheck.py:1183
-msgid "BOTTOM -> Copper to Copper clearance"
-msgstr "BOTTOM -> distanze rame-rame"
-
-#: flatcamTools/ToolRulesCheck.py:1188 flatcamTools/ToolRulesCheck.py:1282
-#: flatcamTools/ToolRulesCheck.py:1446
-msgid ""
-"At least one Gerber object has to be selected for this rule but none is "
-"selected."
-msgstr ""
-"Almeno un oggetto Gerber deve essere selezionato per questa regola ma "
-"nessuno è selezionato."
-
-#: flatcamTools/ToolRulesCheck.py:1224
-msgid ""
-"One of the copper Gerber objects or the Outline Gerber object is not valid."
-msgstr ""
-"Uno degli oggetti Gerber in rame o l'oggetto Gerber del bordo non è valido."
-
-#: flatcamTools/ToolRulesCheck.py:1237 flatcamTools/ToolRulesCheck.py:1401
-msgid ""
-"Outline Gerber object presence is mandatory for this rule but it is not "
-"selected."
-msgstr ""
-"La presenza dell'oggetto Contorno Gerber è obbligatoria per questa regola ma "
-"non è stato selezionato."
-
-#: flatcamTools/ToolRulesCheck.py:1254 flatcamTools/ToolRulesCheck.py:1281
-msgid "Silk to Silk clearance"
-msgstr "Distanza tra serigrafie"
-
-#: flatcamTools/ToolRulesCheck.py:1267
-msgid "TOP -> Silk to Silk clearance"
-msgstr "TOP -> distanza tra serigrafie"
-
-#: flatcamTools/ToolRulesCheck.py:1277
-msgid "BOTTOM -> Silk to Silk clearance"
-msgstr "BOTTOM -> distanza tra serigrafie"
-
-#: flatcamTools/ToolRulesCheck.py:1333
-msgid "One or more of the Gerber objects is not valid."
-msgstr "Uno o più oggetti gerber non sono validi."
-
-#: flatcamTools/ToolRulesCheck.py:1341
-msgid "TOP -> Silk to Solder Mask Clearance"
-msgstr "TOP -> distanza tra serigrafie e Solder Mask"
-
-#: flatcamTools/ToolRulesCheck.py:1347
-msgid "BOTTOM -> Silk to Solder Mask Clearance"
-msgstr "BOTTOM -> distanza tra serigrafie e Solder Mask"
-
-#: flatcamTools/ToolRulesCheck.py:1351
-msgid ""
-"Both Silk and Solder Mask Gerber objects has to be either both Top or both "
-"Bottom."
-msgstr ""
-"Sia gli oggetti Silk che quelli Solder Mask Gerber devono essere sia Top che "
-"Bottom."
-
-#: flatcamTools/ToolRulesCheck.py:1387
-msgid ""
-"One of the Silk Gerber objects or the Outline Gerber object is not valid."
-msgstr "Uno degli oggetti Gerber serigrafia o bordo non è valido."
-
-#: flatcamTools/ToolRulesCheck.py:1431
-msgid "TOP -> Minimum Solder Mask Sliver"
-msgstr "TOP -> Segmento Minimo solder mask"
-
-#: flatcamTools/ToolRulesCheck.py:1441
-msgid "BOTTOM -> Minimum Solder Mask Sliver"
-msgstr "BOTTOM -> Segmento Minimo solder mask"
-
-#: flatcamTools/ToolRulesCheck.py:1490
-msgid "One of the Copper Gerber objects or the Excellon objects is not valid."
-msgstr "Uno degli oggetti Gerber rame o Excellon non è valido."
-
-#: flatcamTools/ToolRulesCheck.py:1506
-msgid ""
-"Excellon object presence is mandatory for this rule but none is selected."
-msgstr ""
-"La presenza dell'oggetto Excellon è obbligatoria per questa regola ma "
-"nessuna è selezionata."
-
-#: flatcamTools/ToolRulesCheck.py:1579 flatcamTools/ToolRulesCheck.py:1592
-#: flatcamTools/ToolRulesCheck.py:1603 flatcamTools/ToolRulesCheck.py:1616
-msgid "STATUS"
-msgstr "STATO"
-
-#: flatcamTools/ToolRulesCheck.py:1582 flatcamTools/ToolRulesCheck.py:1606
-msgid "FAILED"
-msgstr "FALLITO"
-
-#: flatcamTools/ToolRulesCheck.py:1595 flatcamTools/ToolRulesCheck.py:1619
-msgid "PASSED"
-msgstr "PASSATO"
-
-#: flatcamTools/ToolRulesCheck.py:1596 flatcamTools/ToolRulesCheck.py:1620
-msgid "Violations: There are no violations for the current rule."
-msgstr "Violazioni: non ci sono violazioni per la regola attuale."
-
-#: flatcamTools/ToolShell.py:74 flatcamTools/ToolShell.py:76
-msgid "...processing..."
-msgstr "...elaborazione..."
-
-#: flatcamTools/ToolSolderPaste.py:37
-msgid "Solder Paste Tool"
-msgstr "Strumento Solder Paste"
-
-#: flatcamTools/ToolSolderPaste.py:69
-msgid "Gerber Solder paste object. "
-msgstr "Oggetto gerber Solder paste. "
-
-#: flatcamTools/ToolSolderPaste.py:76
-msgid ""
-"Tools pool from which the algorithm\n"
-"will pick the ones used for dispensing solder paste."
-msgstr ""
-"Set di strumenti da cui l'algoritmo\n"
-"sceglierà quelli usati per l'erogazione della pasta saldante."
-
-#: flatcamTools/ToolSolderPaste.py:91
-msgid ""
-"This is the Tool Number.\n"
-"The solder dispensing will start with the tool with the biggest \n"
-"diameter, continuing until there are no more Nozzle tools.\n"
-"If there are no longer tools but there are still pads not covered\n"
-" with solder paste, the app will issue a warning message box."
-msgstr ""
-"Questo è il numero dell'utensile.\n"
-"L'erogazione della pasta saldante inizierà con l'utensile di diametro\n"
-"più grande, continuando fino a quando non ci sono più strumenti ugello.\n"
-"Se non ci sono più strumenti ma ci sono ancora pad non coperti\n"
-" da pasta saldante, l'app mostrerà una finestra di avviso."
-
-#: flatcamTools/ToolSolderPaste.py:98
-msgid ""
-"Nozzle tool Diameter. It's value (in current FlatCAM units)\n"
-"is the width of the solder paste dispensed."
-msgstr ""
-"Diametro dell'ugello. Il suo valore (nelle attuali unità FlatCAM)\n"
-"è la larghezza dell'erogazione della pasta salda."
-
-#: flatcamTools/ToolSolderPaste.py:105
-msgid "New Nozzle Tool"
-msgstr "Nuovo utensile ugello"
-
-#: flatcamTools/ToolSolderPaste.py:124
-msgid ""
-"Add a new nozzle tool to the Tool Table\n"
-"with the diameter specified above."
-msgstr ""
-"Aggiungi un nuovo strumento ugello alla tabella degli strumenti\n"
-"con il diametro sopra specificato."
-
-#: flatcamTools/ToolSolderPaste.py:136
-msgid "Generate solder paste dispensing geometry."
-msgstr "Genera geometria di erogazione della pasta saldante."
-
-#: flatcamTools/ToolSolderPaste.py:155
-msgid "STEP 1"
-msgstr "PASSO 1"
-
-#: flatcamTools/ToolSolderPaste.py:157
-msgid ""
-"First step is to select a number of nozzle tools for usage\n"
-"and then optionally modify the GCode parameters below."
-msgstr ""
-"Il primo passo è selezionare un numero di strumenti ugello da usare\n"
-"e quindi (facoltativo) modificare i parametri GCode qui sotto."
-
-#: flatcamTools/ToolSolderPaste.py:160
-msgid ""
-"Select tools.\n"
-"Modify parameters."
-msgstr ""
-"Seleziona utensile.\n"
-"Modifica parametri."
-
-#: flatcamTools/ToolSolderPaste.py:280
-msgid ""
-"Feedrate (speed) while moving up vertically\n"
-" to Dispense position (on Z plane)."
-msgstr ""
-"Avanzamento (velocità) durante lo spostamento in verticale\n"
-" alla posizione di dispensa (sul piano Z)."
-
-#: flatcamTools/ToolSolderPaste.py:350
-msgid ""
-"Generate GCode for Solder Paste dispensing\n"
-"on PCB pads."
-msgstr ""
-"Genera GCode per l'erogazione della pasta saldante\n"
-"sui pad del PCB."
-
-#: flatcamTools/ToolSolderPaste.py:371
-msgid "STEP 2"
-msgstr "PASSO 2"
-
-#: flatcamTools/ToolSolderPaste.py:373
-msgid ""
-"Second step is to create a solder paste dispensing\n"
-"geometry out of an Solder Paste Mask Gerber file."
-msgstr ""
-"Il secondo passo è creare una geometria di erogazione\n"
-"di pasta salda da un file Gerber di Solder Masck."
-
-#: flatcamTools/ToolSolderPaste.py:390
-msgid "Geo Result"
-msgstr "Risultato Geo"
-
-#: flatcamTools/ToolSolderPaste.py:392
-msgid ""
-"Geometry Solder Paste object.\n"
-"The name of the object has to end in:\n"
-"'_solderpaste' as a protection."
-msgstr ""
-"Oggetto geometria Solder Paste.\n"
-"Il nome dell'oggetto deve terminare con:\n"
-"'_solderpaste' come protezione."
-
-#: flatcamTools/ToolSolderPaste.py:401
-msgid "STEP 3"
-msgstr "PASSO 3"
-
-#: flatcamTools/ToolSolderPaste.py:403
-msgid ""
-"Third step is to select a solder paste dispensing geometry,\n"
-"and then generate a CNCJob object.\n"
-"\n"
-"REMEMBER: if you want to create a CNCJob with new parameters,\n"
-"first you need to generate a geometry with those new params,\n"
-"and only after that you can generate an updated CNCJob."
-msgstr ""
-"Il terzo passo è quello di selezionare una geometria di erogazione della "
-"pasta salda,\n"
-"e quindi generare un oggetto CNCJob.\n"
-"\n"
-"RICORDA: se vuoi creare un CNCJob con nuovi parametri,\n"
-"per prima cosa devi generare una geometria con quei nuovi parametri,\n"
-"e solo successivamente puoi generare un CNCJob aggiornato."
-
-#: flatcamTools/ToolSolderPaste.py:424
-msgid "CNC Result"
-msgstr "Risultato CNC"
-
-#: flatcamTools/ToolSolderPaste.py:426
-msgid ""
-"CNCJob Solder paste object.\n"
-"In order to enable the GCode save section,\n"
-"the name of the object has to end in:\n"
-"'_solderpaste' as a protection."
-msgstr ""
-"Oggetto CNCJob per pasta saldante.\n"
-"Per abilitare la sezione di salvataggio del GCode,\n"
-"il nome dell'oggetto deve terminare in:\n"
-"'_solderpaste' come protezione."
-
-#: flatcamTools/ToolSolderPaste.py:436
-msgid "View GCode"
-msgstr "Vedi GCode"
-
-#: flatcamTools/ToolSolderPaste.py:438
-msgid ""
-"View the generated GCode for Solder Paste dispensing\n"
-"on PCB pads."
-msgstr ""
-"Visualizza il GCode generato per l'erogazione della pasta salda\n"
-"sui pad del PCB."
-
-#: flatcamTools/ToolSolderPaste.py:448
-msgid "Save GCode"
-msgstr "Salva GCode"
-
-#: flatcamTools/ToolSolderPaste.py:450
-msgid ""
-"Save the generated GCode for Solder Paste dispensing\n"
-"on PCB pads, to a file."
-msgstr ""
-"Salva il GCode generato per l'erogazione della pasta salda\n"
-"sui pad del PCB in un file."
-
-#: flatcamTools/ToolSolderPaste.py:460
-msgid "STEP 4"
-msgstr "PASSO 4"
-
-#: flatcamTools/ToolSolderPaste.py:462
-msgid ""
-"Fourth step (and last) is to select a CNCJob made from \n"
-"a solder paste dispensing geometry, and then view/save it's GCode."
-msgstr ""
-"Il quarto (e ultimo) passo è selezionare un CNCJob creato da una geometria\n"
-"di distribuzione di pasta salda, quindi visualizza/salva il suo GCode."
-
-#: flatcamTools/ToolSolderPaste.py:922
-msgid "New Nozzle tool added to Tool Table."
-msgstr "Nuovo utensile ugello aggiunto alla tabella."
-
-#: flatcamTools/ToolSolderPaste.py:965
-msgid "Nozzle tool from Tool Table was edited."
-msgstr "Utensile ugello modificato nella tabella."
-
-#: flatcamTools/ToolSolderPaste.py:1024
-msgid "Delete failed. Select a Nozzle tool to delete."
-msgstr "Cancellazione fallita. Scegli un utensile ugello da cancellare."
-
-#: flatcamTools/ToolSolderPaste.py:1030
-msgid "Nozzle tool(s) deleted from Tool Table."
-msgstr "Utensile(i) ugello cancellato(i) dalla tabella."
-
-#: flatcamTools/ToolSolderPaste.py:1086
-msgid "No SolderPaste mask Gerber object loaded."
-msgstr "Nessun oggetto Gerber SolderPaste mask caricato."
-
-#: flatcamTools/ToolSolderPaste.py:1104
-msgid "Creating Solder Paste dispensing geometry."
-msgstr "Creazione della geometria di erogazione della pasta per saldatura."
-
-#: flatcamTools/ToolSolderPaste.py:1117
-msgid "No Nozzle tools in the tool table."
-msgstr "Nessun utensile ugello nella tabella utensili."
-
-#: flatcamTools/ToolSolderPaste.py:1243
-msgid "Cancelled. Empty file, it has no geometry..."
-msgstr "Annullato. File vuoto, non ha geometrie..."
-
-#: flatcamTools/ToolSolderPaste.py:1246
-msgid "Solder Paste geometry generated successfully"
-msgstr "Geometria solder paste generata con successo"
-
-#: flatcamTools/ToolSolderPaste.py:1253
-msgid "Some or all pads have no solder due of inadequate nozzle diameters..."
-msgstr ""
-"Alcuni o tutti i pad non hanno solder a causa di diametri degli ugelli "
-"inadeguati ..."
-
-#: flatcamTools/ToolSolderPaste.py:1267
-msgid "Generating Solder Paste dispensing geometry..."
-msgstr ""
-"Generazione della geometria di erogazione della pasta per saldatura ..."
-
-#: flatcamTools/ToolSolderPaste.py:1287
-msgid "There is no Geometry object available."
-msgstr "Non è disponibile alcun oggetto Geometria."
-
-#: flatcamTools/ToolSolderPaste.py:1292
-msgid "This Geometry can't be processed. NOT a solder_paste_tool geometry."
-msgstr ""
-"Questa geometria non può essere elaborata. NON è una geometria "
-"solder_paste_tool."
-
-#: flatcamTools/ToolSolderPaste.py:1328
-msgid "An internal error has ocurred. See shell.\n"
-msgstr "Errore interno. Vedi shell.\n"
-
-#: flatcamTools/ToolSolderPaste.py:1393
-msgid "ToolSolderPaste CNCjob created"
-msgstr "CNCjob ToolSolderPaste creato"
-
-#: flatcamTools/ToolSolderPaste.py:1412
-msgid "SP GCode Editor"
-msgstr "Editor GCode solder past"
-
-#: flatcamTools/ToolSolderPaste.py:1424 flatcamTools/ToolSolderPaste.py:1429
-#: flatcamTools/ToolSolderPaste.py:1484
-msgid ""
-"This CNCJob object can't be processed. NOT a solder_paste_tool CNCJob object."
-msgstr ""
-"Questo oggetto CNCJob non può essere elaborato. NON è un oggetto CNCJob "
-"solder_paste_tool."
-
-#: flatcamTools/ToolSolderPaste.py:1454
-msgid "No Gcode in the object"
-msgstr "Nessun GCode nell'oggetto"
-
-#: flatcamTools/ToolSolderPaste.py:1494
-msgid "Export GCode ..."
-msgstr "Esportazione GCode ..."
-
-#: flatcamTools/ToolSolderPaste.py:1542
-msgid "Solder paste dispenser GCode file saved to"
-msgstr "File GCode del distributore di pasta per saldatura salvato in"
-
-#: flatcamTools/ToolSub.py:65
-msgid "Gerber Objects"
-msgstr "Oggetti Gerber"
-
-#: flatcamTools/ToolSub.py:78
-msgid ""
-"Gerber object from which to subtract\n"
-"the subtractor Gerber object."
-msgstr ""
-"Oggetto Gerber da cui sottrarre\n"
-"l'oggetto Gerber sottraendo."
-
-#: flatcamTools/ToolSub.py:91 flatcamTools/ToolSub.py:146
-msgid "Subtractor"
-msgstr "Sottraendo"
-
-#: flatcamTools/ToolSub.py:93
-msgid ""
-"Gerber object that will be subtracted\n"
-"from the target Gerber object."
-msgstr ""
-"Oggetto Gerber che verrà sottratto\n"
-"dall'oggetto Gerber di destinazione."
-
-#: flatcamTools/ToolSub.py:100
-msgid "Subtract Gerber"
-msgstr "Sottrai Gerber"
-
-#: flatcamTools/ToolSub.py:102
-msgid ""
-"Will remove the area occupied by the subtractor\n"
-"Gerber from the Target Gerber.\n"
-"Can be used to remove the overlapping silkscreen\n"
-"over the soldermask."
-msgstr ""
-"Rimuoverà l'area occupata dal Gerber\n"
-"sottrattore dal Gerber Target.\n"
-"Può essere usato per rimuovere la serigrafia\n"
-"sovrapposta al soldermask."
-
-#: flatcamTools/ToolSub.py:120
-msgid "Geometry Objects"
-msgstr "Oggetto geometria"
-
-#: flatcamTools/ToolSub.py:133
-msgid ""
-"Geometry object from which to subtract\n"
-"the subtractor Geometry object."
-msgstr ""
-"Oggetto geometria da cui sottrarre\n"
-"l'oggetto Geometria del sottrattore."
-
-#: flatcamTools/ToolSub.py:148
-msgid ""
-"Geometry object that will be subtracted\n"
-"from the target Geometry object."
-msgstr ""
-"Oggetto Geometria che verrà sottratto\n"
-"dall'oggetto Geometria di destinazione."
-
-#: flatcamTools/ToolSub.py:156
-msgid ""
-"Checking this will close the paths cut by the Geometry subtractor object."
-msgstr ""
-"Selezionandolo verranno chiusi i percorsi tagliati dall'oggetto geometria "
-"sottrattore."
-
-#: flatcamTools/ToolSub.py:159
-msgid "Subtract Geometry"
-msgstr "Sottrai geometria"
-
-#: flatcamTools/ToolSub.py:161
-msgid ""
-"Will remove the area occupied by the subtractor\n"
-"Geometry from the Target Geometry."
-msgstr ""
-"Rimuoverà l'area occupata dalla geometria\n"
-"sottrattore dalla geometria target."
-
-#: flatcamTools/ToolSub.py:263
-msgid "Sub Tool"
-msgstr "Strumento sottrazione"
-
-#: flatcamTools/ToolSub.py:284 flatcamTools/ToolSub.py:489
-msgid "No Target object loaded."
-msgstr "Nessun oggetto target caricato."
-
-#: flatcamTools/ToolSub.py:287
-msgid "Loading geometry from Gerber objects."
-msgstr "Caricamento della geometria dagli oggetti Gerber."
-
-#: flatcamTools/ToolSub.py:299 flatcamTools/ToolSub.py:504
-msgid "No Subtractor object loaded."
-msgstr "Nessun oggetto sottrattore caricato."
-
-#: flatcamTools/ToolSub.py:331
-msgid "Processing geometry from Subtractor Gerber object."
-msgstr "Elaborazione della geometria dall'oggetto sottrattore Gerber."
-
-#: flatcamTools/ToolSub.py:352
-msgid "Parsing geometry for aperture"
-msgstr "Analisi della geometria per l'apertura"
-
-#: flatcamTools/ToolSub.py:413
-msgid "Finished parsing geometry for aperture"
-msgstr "Analisi geometria aperture terminate"
-
-#: flatcamTools/ToolSub.py:458 flatcamTools/ToolSub.py:661
-msgid "Generating new object ..."
-msgstr "Generazione nuovo oggetto ..."
-
-#: flatcamTools/ToolSub.py:462 flatcamTools/ToolSub.py:665
-#: flatcamTools/ToolSub.py:746
-msgid "Generating new object failed."
-msgstr "Generazione nuovo oggetto fallita."
-
-#: flatcamTools/ToolSub.py:467 flatcamTools/ToolSub.py:671
-msgid "Created"
-msgstr "Creato"
-
-#: flatcamTools/ToolSub.py:518
-msgid "Currently, the Subtractor geometry cannot be of type Multigeo."
-msgstr ""
-"Attualmente, la geometria del sottrattore non può essere di tipo Multigeo."
-
-#: flatcamTools/ToolSub.py:563
-msgid "Parsing solid_geometry ..."
-msgstr "Analisi soild_geometry ..."
-
-#: flatcamTools/ToolSub.py:565
-msgid "Parsing solid_geometry for tool"
-msgstr "Analisi soild_geometry per utensili"
-
-#: flatcamTools/ToolTransform.py:23
-msgid "Object Transform"
-msgstr "Trasformazione oggetto"
-
-#: flatcamTools/ToolTransform.py:78
-msgid ""
-"Rotate the selected object(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected objects."
-msgstr ""
-"Ruota gli oggetti selezionati.\n"
-"Il punto di riferimento è il centro del\n"
-"rettangolo di selezione per tutti gli oggetti selezionati."
-
-#: flatcamTools/ToolTransform.py:99 flatcamTools/ToolTransform.py:120
-msgid ""
-"Angle for Skew action, in degrees.\n"
-"Float number between -360 and 360."
-msgstr ""
-"Angolo per l'azione di inclinazione, in gradi.\n"
-"Numero float compreso tra -360 e 360."
-
-#: flatcamTools/ToolTransform.py:109 flatcamTools/ToolTransform.py:130
-msgid ""
-"Skew/shear the selected object(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected objects."
-msgstr ""
-"Inclina gli oggetti selezionati.\n"
-"Il punto di riferimento è il centro del\n"
-"rettangolo di selezione per tutti gli oggetti selezionati."
-
-#: flatcamTools/ToolTransform.py:159 flatcamTools/ToolTransform.py:179
-msgid ""
-"Scale the selected object(s).\n"
-"The point of reference depends on \n"
-"the Scale reference checkbox state."
-msgstr ""
-"Ridimensiona gli oggetti selezionati.\n"
-"Il punto di riferimento dipende\n"
-"dallo stato della casella di controllo Riferimento scala."
-
-#: flatcamTools/ToolTransform.py:228 flatcamTools/ToolTransform.py:248
-msgid ""
-"Offset the selected object(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected objects.\n"
-msgstr ""
-"Sposta gli oggetti selezionati.\n"
-"Il punto di riferimento è il centro del\n"
-"rettangolo di selezione per tutti gli oggetti selezionati.\n"
-
-#: flatcamTools/ToolTransform.py:268 flatcamTools/ToolTransform.py:273
-msgid "Flip the selected object(s) over the X axis."
-msgstr "Capovolgi gli oggetti selezionati sull'asse X."
-
-#: flatcamTools/ToolTransform.py:297
-msgid "Ref. Point"
-msgstr "Punto di riferimento"
-
-#: flatcamTools/ToolTransform.py:348
-msgid ""
-"Create the buffer effect on each geometry,\n"
-"element from the selected object, using the distance."
-msgstr ""
-"Crea l'effetto buffer su ogni geometria,\n"
-"elemento dall'oggetto selezionato, usando la distanza."
-
-#: flatcamTools/ToolTransform.py:374
-msgid ""
-"Create the buffer effect on each geometry,\n"
-"element from the selected object, using the factor."
-msgstr ""
-"Crea l'effetto buffer su ogni geometria,\n"
-"elemento dall'oggetto selezionato, usando il fattore."
-
-#: flatcamTools/ToolTransform.py:479
-msgid "Buffer D"
-msgstr "Buffer D"
-
-#: flatcamTools/ToolTransform.py:480
-msgid "Buffer F"
-msgstr "Buffer F"
-
-#: flatcamTools/ToolTransform.py:557
-msgid "Rotate transformation can not be done for a value of 0."
-msgstr ""
-"La trasformazione di rotazione non può essere eseguita per un valore pari a "
-"0."
-
-#: flatcamTools/ToolTransform.py:596 flatcamTools/ToolTransform.py:619
-msgid "Scale transformation can not be done for a factor of 0 or 1."
-msgstr ""
-"La trasformazione in scala non può essere eseguita per un fattore 0 o 1."
-
-#: flatcamTools/ToolTransform.py:634 flatcamTools/ToolTransform.py:644
-msgid "Offset transformation can not be done for a value of 0."
-msgstr ""
-"La trasformazione offset non può essere eseguita per un valore pari a 0."
-
-#: flatcamTools/ToolTransform.py:676
-msgid "No object selected. Please Select an object to rotate!"
-msgstr "Nessun oggetto selezionato. Seleziona un oggetto da ruotare!"
-
-#: flatcamTools/ToolTransform.py:702
-msgid "CNCJob objects can't be rotated."
-msgstr "Gli oggetti CNCJob non possono essere ruotati."
-
-#: flatcamTools/ToolTransform.py:710
-msgid "Rotate done"
-msgstr "Rotazione effettuata"
-
-#: flatcamTools/ToolTransform.py:713 flatcamTools/ToolTransform.py:783
-#: flatcamTools/ToolTransform.py:833 flatcamTools/ToolTransform.py:887
-#: flatcamTools/ToolTransform.py:917 flatcamTools/ToolTransform.py:953
-msgid "Due of"
-msgstr "A causa di"
-
-#: flatcamTools/ToolTransform.py:713 flatcamTools/ToolTransform.py:783
-#: flatcamTools/ToolTransform.py:833 flatcamTools/ToolTransform.py:887
-#: flatcamTools/ToolTransform.py:917 flatcamTools/ToolTransform.py:953
-msgid "action was not executed."
-msgstr "l'azione non è stata eseguita."
-
-#: flatcamTools/ToolTransform.py:725
-msgid "No object selected. Please Select an object to flip"
-msgstr "Nessun oggetto selezionato. Seleziona un oggetto da capovolgere"
-
-#: flatcamTools/ToolTransform.py:758
-msgid "CNCJob objects can't be mirrored/flipped."
-msgstr "Gli oggetti CNCJob non possono essere specchiati/capovolti."
-
-#: flatcamTools/ToolTransform.py:793
-msgid "Skew transformation can not be done for 0, 90 and 180 degrees."
-msgstr ""
-"La trasformazione dell'inclinazione non può essere eseguita per 0, 90 e 180 "
-"gradi."
-
-#: flatcamTools/ToolTransform.py:798
-msgid "No object selected. Please Select an object to shear/skew!"
-msgstr "Nessun oggetto selezionato. Seleziona un oggetto da inclinare!"
-
-#: flatcamTools/ToolTransform.py:818
-msgid "CNCJob objects can't be skewed."
-msgstr "Gli oggetti CNCJob non possono essere inclinati."
-
-#: flatcamTools/ToolTransform.py:830
-msgid "Skew on the"
-msgstr "Inclina su"
-
-#: flatcamTools/ToolTransform.py:830 flatcamTools/ToolTransform.py:884
-#: flatcamTools/ToolTransform.py:914
-msgid "axis done"
-msgstr "asse eseguito"
-
-#: flatcamTools/ToolTransform.py:844
-msgid "No object selected. Please Select an object to scale!"
-msgstr "Nessun oggetto selezionato. Seleziona un oggetto da ridimensionare!"
-
-#: flatcamTools/ToolTransform.py:875
-msgid "CNCJob objects can't be scaled."
-msgstr "Gli oggetti CNCJob non possono essere ridimensionati."
-
-#: flatcamTools/ToolTransform.py:884
-msgid "Scale on the"
-msgstr "Scala su"
-
-#: flatcamTools/ToolTransform.py:894
-msgid "No object selected. Please Select an object to offset!"
-msgstr "Nessun oggetto selezionato. Seleziona un oggetto da compensare!"
-
-#: flatcamTools/ToolTransform.py:901
-msgid "CNCJob objects can't be offset."
-msgstr "Gli oggetti CNCJob non possono essere offsettati."
-
-#: flatcamTools/ToolTransform.py:914
-msgid "Offset on the"
-msgstr "Offset su"
-
-#: flatcamTools/ToolTransform.py:924
-msgid "No object selected. Please Select an object to buffer!"
-msgstr "Nessun oggetto selezionato. Seleziona un oggetto da bufferizzare!"
-
-#: flatcamTools/ToolTransform.py:927
-msgid "Applying Buffer"
-msgstr "Applicazione del buffer"
-
-#: flatcamTools/ToolTransform.py:931
-msgid "CNCJob objects can't be buffered."
-msgstr "Gli oggetti CNCJob non possono essere bufferizzati."
-
-#: flatcamTools/ToolTransform.py:948
-msgid "Buffer done"
-msgstr "Bugger applicato"
-
#: tclCommands/TclCommandBbox.py:75 tclCommands/TclCommandNregions.py:74
msgid "Expected GerberObject or GeometryObject, got"
msgstr "Mi aspettavo un FlatCAMGerber o FlatCAMGeometry, rilevato"
@@ -18323,12 +18412,12 @@ msgstr "Previsto un elenco di nomi di oggetti separati da virgola. Rilevato"
msgid "TclCommand Bounds done."
msgstr "Misura TclCommand effettuata."
-#: tclCommands/TclCommandCopperClear.py:276 tclCommands/TclCommandPaint.py:272
+#: tclCommands/TclCommandCopperClear.py:281 tclCommands/TclCommandPaint.py:283
#: tclCommands/TclCommandScale.py:81
msgid "Could not retrieve box object"
msgstr "Non posso recuperare l'oggetto box"
-#: tclCommands/TclCommandCopperClear.py:299
+#: tclCommands/TclCommandCopperClear.py:304
msgid "Expected either -box or -all."
msgstr "Mi aspettavo -box o -all."
@@ -18346,11 +18435,11 @@ msgstr ""
"'2SS', 4 o 8."
#: tclCommands/TclCommandGeoCutout.py:301
-#: tclCommands/TclCommandGeoCutout.py:359
+#: tclCommands/TclCommandGeoCutout.py:356
msgid "Any-form Cutout operation finished."
msgstr "Operazione di CutOut terminata."
-#: tclCommands/TclCommandGeoCutout.py:365
+#: tclCommands/TclCommandGeoCutout.py:362
msgid "Cancelled. Object type is not supported."
msgstr "Annullato. Il tipo di oggetto non è supportato."
@@ -18366,15 +18455,15 @@ msgstr "Scrivi help per l'utilizzo."
msgid "Example: help open_gerber"
msgstr "Esempio: help open_gerber"
-#: tclCommands/TclCommandPaint.py:244
-msgid "Expected -x and -y ."
-msgstr "Atteso -x e -y ."
+#: tclCommands/TclCommandPaint.py:250 tclCommands/TclCommandPaint.py:256
+msgid "Expected a tuple value like -single 3.2,0.1."
+msgstr ""
-#: tclCommands/TclCommandPaint.py:265
+#: tclCommands/TclCommandPaint.py:276
msgid "Expected -box ."
msgstr "Era atteso -box ."
-#: tclCommands/TclCommandPaint.py:286
+#: tclCommands/TclCommandPaint.py:297
msgid ""
"None of the following args: 'box', 'single', 'all' were used.\n"
"Paint failed."
@@ -18398,7 +18487,7 @@ msgstr "Atteso -x -y ."
msgid "Expected a pair of (x, y) coordinates. Got"
msgstr "Attesa una coppia di coordinate (x,y). Ricevuto"
-#: tclCommands/TclCommandSetOrigin.py:102
+#: tclCommands/TclCommandSetOrigin.py:101
msgid "Origin set by offsetting all loaded objects with "
msgstr "Origine impostata spostando tutti gli oggetti caricati con "
@@ -18406,6 +18495,60 @@ msgstr "Origine impostata spostando tutti gli oggetti caricati con "
msgid "No Geometry name in args. Provide a name and try again."
msgstr "Nessun nome di geometria negli argomenti. Fornisci un nome e riprova."
+#~ msgid "./assets/icon.png"
+#~ msgstr "./assets/icon.png"
+
+#~ msgid "New Blank Geometry"
+#~ msgstr "Nuova Geometria vuota"
+
+#~ msgid "New Blank Gerber"
+#~ msgstr "Nuovo Gerber vuoto"
+
+#~ msgid "New Blank Excellon"
+#~ msgstr "Nuovo Excellon vuoto"
+
+#~ msgid ""
+#~ "Relative measurement.\n"
+#~ "Reference is last click position"
+#~ msgstr ""
+#~ "Misure relative.\n"
+#~ "Il riferimento è l'ultima posizione cliccata"
+
+#~ msgid "Apply Theme"
+#~ msgstr "Applica tema"
+
+#~ msgid ""
+#~ "Select a theme for FlatCAM.\n"
+#~ "It will theme the plot area.\n"
+#~ "The application will restart after change."
+#~ msgstr ""
+#~ "Seleziona un tema per FlatCAM.\n"
+#~ "Il tema sarà applicato all'area di plot.\n"
+#~ "Il programma verrà riavviato dopo la modifica."
+
+#~ msgid "Film Object"
+#~ msgstr "Oggetto Film"
+
+#~ msgid "Object for which to create the film."
+#~ msgstr "Oggetto per cui creare il film."
+
+#~ msgid "Box Object"
+#~ msgstr "Oggetto box"
+
+#~ msgid ""
+#~ "The actual object that is used as container for the\n"
+#~ " selected object for which we create the film.\n"
+#~ "Usually it is the PCB outline but it can be also the\n"
+#~ "same object for which the film is created."
+#~ msgstr ""
+#~ "L'oggetto attualmente usato come oggetto\n"
+#~ "contenitore per il quale creiamo il film.\n"
+#~ "Di solito è il contorno del PCB ma può anche essere\n"
+#~ "l'oggetto stesso per cui è stato creato il film."
+
+#~ msgid "Expected -x and -y ."
+#~ msgstr "Atteso -x e -y ."
+
#~ msgid "Executing Tcl Script ..."
#~ msgstr "Esecuzione dello script Tcl ..."
diff --git a/locale/pt_BR/LC_MESSAGES/strings.mo b/locale/pt_BR/LC_MESSAGES/strings.mo
index 45df71a9..245f95a1 100644
Binary files a/locale/pt_BR/LC_MESSAGES/strings.mo and b/locale/pt_BR/LC_MESSAGES/strings.mo differ
diff --git a/locale/pt_BR/LC_MESSAGES/strings.po b/locale/pt_BR/LC_MESSAGES/strings.po
index 0c56d5bf..e9f06a26 100644
--- a/locale/pt_BR/LC_MESSAGES/strings.po
+++ b/locale/pt_BR/LC_MESSAGES/strings.po
@@ -1,8 +1,8 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
-"POT-Creation-Date: 2020-05-03 16:12+0300\n"
-"PO-Revision-Date: 2020-05-03 16:12+0300\n"
+"POT-Creation-Date: 2020-05-19 02:26+0300\n"
+"PO-Revision-Date: 2020-05-19 02:26+0300\n"
"Last-Translator: Carlos Stein \n"
"Language-Team: \n"
"Language: pt_BR\n"
@@ -10,7 +10,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.2.4\n"
+"X-Generator: Poedit 2.3.1\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Poedit-Basepath: ../../..\n"
"X-Poedit-SearchPath-0: .\n"
@@ -18,17 +18,16676 @@ msgstr ""
"X-Poedit-SearchPathExcluded-1: doc\n"
"X-Poedit-SearchPathExcluded-2: tests\n"
-#: FlatCAMApp.py:491
+#: AppDatabase.py:86
+msgid "Add Geometry Tool in DB"
+msgstr "Adicionar Ferram de Geo no BD"
+
+#: AppDatabase.py:88 AppDatabase.py:1643
+msgid ""
+"Add a new tool in the Tools Database.\n"
+"It will be used in the Geometry UI.\n"
+"You can edit it after it is added."
+msgstr ""
+"Adiciona uma nova ferramenta ao Banco de Dados de Ferramentas.\n"
+"Será usado na interface do usuário da Geometria.\n"
+"Você pode editar após a adição."
+
+#: AppDatabase.py:102 AppDatabase.py:1657
+msgid "Delete Tool from DB"
+msgstr "Excluir ferramenta do BD"
+
+#: AppDatabase.py:104 AppDatabase.py:1659
+msgid "Remove a selection of tools in the Tools Database."
+msgstr "Remove uma seleção de ferramentas no banco de dados de ferramentas."
+
+#: AppDatabase.py:108 AppDatabase.py:1663
+msgid "Export DB"
+msgstr "Exportar BD"
+
+#: AppDatabase.py:110 AppDatabase.py:1665
+msgid "Save the Tools Database to a custom text file."
+msgstr ""
+"Salva o banco de dados de ferramentas em um arquivo de texto personalizado."
+
+#: AppDatabase.py:114 AppDatabase.py:1669
+msgid "Import DB"
+msgstr "Importar BD"
+
+#: AppDatabase.py:116 AppDatabase.py:1671
+msgid "Load the Tools Database information's from a custom text file."
+msgstr ""
+"Carregua as informações do banco de dados de ferramentas de um arquivo de "
+"texto personalizado."
+
+#: AppDatabase.py:120 AppDatabase.py:1681
+msgid "Add Tool from Tools DB"
+msgstr "Adiciona Ferramenta do BD de Ferramentas"
+
+#: AppDatabase.py:122 AppDatabase.py:1683
+msgid ""
+"Add a new tool in the Tools Table of the\n"
+"active Geometry object after selecting a tool\n"
+"in the Tools Database."
+msgstr ""
+"Adiciona uma nova ferramenta na Tabela de ferramentas do\n"
+"objeto geometria ativo após selecionar uma ferramenta\n"
+"no banco de dados de ferramentas."
+
+#: AppDatabase.py:128 AppDatabase.py:1689 AppGUI/MainGUI.py:1347
+#: AppGUI/preferences/PreferencesUIManager.py:942 App_Main.py:2203
+#: App_Main.py:3054 App_Main.py:3928 App_Main.py:4279 App_Main.py:6338
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: AppDatabase.py:158 AppDatabase.py:833 AppDatabase.py:1087
+msgid "Tool Name"
+msgstr "Nome da Ferramenta"
+
+#: AppDatabase.py:159 AppDatabase.py:835 AppDatabase.py:1100
+#: AppEditors/FlatCAMExcEditor.py:1604 AppGUI/ObjectUI.py:1447
+#: AppGUI/ObjectUI.py:1685
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:132
+#: AppTools/ToolNCC.py:278 AppTools/ToolNCC.py:287 AppTools/ToolPaint.py:260
+msgid "Tool Dia"
+msgstr "Diâmetro da Ferramenta"
+
+#: AppDatabase.py:160 AppDatabase.py:837 AppDatabase.py:1281
+#: AppGUI/ObjectUI.py:1660
+msgid "Tool Offset"
+msgstr "Deslocamento"
+
+#: AppDatabase.py:161 AppDatabase.py:839 AppDatabase.py:1298
+msgid "Custom Offset"
+msgstr "Deslocamento Personalizado"
+
+#: AppDatabase.py:162 AppDatabase.py:841 AppDatabase.py:1265
+#: AppGUI/ObjectUI.py:309
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:67
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:53
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:62
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:72 AppTools/ToolNCC.py:213
+#: AppTools/ToolNCC.py:227 AppTools/ToolPaint.py:195
+msgid "Tool Type"
+msgstr "Tipo de Ferramenta"
+
+#: AppDatabase.py:163 AppDatabase.py:843 AppDatabase.py:1113
+msgid "Tool Shape"
+msgstr "Formato"
+
+#: AppDatabase.py:164 AppDatabase.py:846 AppDatabase.py:1129
+#: AppGUI/ObjectUI.py:350 AppGUI/ObjectUI.py:900 AppGUI/ObjectUI.py:1805
+#: AppGUI/ObjectUI.py:2466
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:93
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:48
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:107
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:78
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:58
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:105
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:113
+#: AppTools/ToolCalculators.py:114 AppTools/ToolCutOut.py:138
+#: AppTools/ToolNCC.py:260 AppTools/ToolNCC.py:268 AppTools/ToolPaint.py:242
+msgid "Cut Z"
+msgstr "Profundidade de Corte"
+
+#: AppDatabase.py:165 AppDatabase.py:848 AppDatabase.py:1143
+msgid "MultiDepth"
+msgstr "Multi-Profundidade"
+
+#: AppDatabase.py:166 AppDatabase.py:850 AppDatabase.py:1156
+msgid "DPP"
+msgstr "PPP"
+
+#: AppDatabase.py:167 AppDatabase.py:852 AppDatabase.py:1312
+msgid "V-Dia"
+msgstr "Dia-V"
+
+#: AppDatabase.py:168 AppDatabase.py:854 AppDatabase.py:1326
+msgid "V-Angle"
+msgstr "Angulo-V"
+
+#: AppDatabase.py:169 AppDatabase.py:856 AppDatabase.py:1170
+#: AppGUI/ObjectUI.py:946 AppGUI/ObjectUI.py:1852
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:134
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:101
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:61
+#: AppObjects/FlatCAMExcellon.py:1396 AppObjects/FlatCAMGeometry.py:1660
+#: AppTools/ToolCalibration.py:74
+msgid "Travel Z"
+msgstr "Altura do Deslocamento"
+
+#: AppDatabase.py:170 AppDatabase.py:858
+msgid "FR"
+msgstr "VA"
+
+#: AppDatabase.py:171 AppDatabase.py:860
+msgid "FR Z"
+msgstr "VA Z"
+
+#: AppDatabase.py:172 AppDatabase.py:862 AppDatabase.py:1340
+msgid "FR Rapids"
+msgstr "VA Rápida"
+
+#: AppDatabase.py:173 AppDatabase.py:864 AppDatabase.py:1213
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:222
+msgid "Spindle Speed"
+msgstr "Velocidade do Spindle"
+
+#: AppDatabase.py:174 AppDatabase.py:866 AppDatabase.py:1228
+#: AppGUI/ObjectUI.py:1064 AppGUI/ObjectUI.py:1959
+msgid "Dwell"
+msgstr "Esperar Velocidade"
+
+#: AppDatabase.py:175 AppDatabase.py:868 AppDatabase.py:1241
+msgid "Dwelltime"
+msgstr "Tempo de Espera"
+
+#: AppDatabase.py:176 AppDatabase.py:870 AppGUI/ObjectUI.py:2116
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:257
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:254
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:237
+#: AppTools/ToolSolderPaste.py:335
+msgid "Preprocessor"
+msgstr "Pré-processador"
+
+#: AppDatabase.py:177 AppDatabase.py:872 AppDatabase.py:1356
+msgid "ExtraCut"
+msgstr "Corte Extra"
+
+#: AppDatabase.py:178 AppDatabase.py:874 AppDatabase.py:1371
+msgid "E-Cut Length"
+msgstr "Comprimento de corte extra"
+
+#: AppDatabase.py:179 AppDatabase.py:876
+msgid "Toolchange"
+msgstr "Troca de Ferramentas"
+
+#: AppDatabase.py:180 AppDatabase.py:878
+msgid "Toolchange XY"
+msgstr "Troca de ferramenta XY"
+
+#: AppDatabase.py:181 AppDatabase.py:880
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:160
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:131
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:98
+#: AppTools/ToolCalibration.py:111
+msgid "Toolchange Z"
+msgstr "Altura da Troca"
+
+#: AppDatabase.py:182 AppDatabase.py:882 AppGUI/ObjectUI.py:1193
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:69
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:54
+msgid "Start Z"
+msgstr "Z Inicial"
+
+#: AppDatabase.py:183 AppDatabase.py:885
+msgid "End Z"
+msgstr "Z Final"
+
+#: AppDatabase.py:187
+msgid "Tool Index."
+msgstr "Índice da Ferramenta."
+
+#: AppDatabase.py:189 AppDatabase.py:1089
+msgid ""
+"Tool name.\n"
+"This is not used in the app, it's function\n"
+"is to serve as a note for the user."
+msgstr ""
+"Nome da ferramenta.\n"
+"Não é usado no aplicativo, sua função\n"
+"é servir como uma nota para o usuário."
+
+#: AppDatabase.py:193 AppDatabase.py:1102
+msgid "Tool Diameter."
+msgstr "Diâmetro."
+
+#: AppDatabase.py:195 AppDatabase.py:1283
+msgid ""
+"Tool Offset.\n"
+"Can be of a few types:\n"
+"Path = zero offset\n"
+"In = offset inside by half of tool diameter\n"
+"Out = offset outside by half of tool diameter\n"
+"Custom = custom offset using the Custom Offset value"
+msgstr ""
+"Deslocamento da Ferramenta.\n"
+"Pode ser de alguns tipos:\n"
+"Caminho = deslocamento zero\n"
+"In = deslocamento interno, de metade do diâmetro da ferramenta\n"
+"Out = deslocamento externo, de metade do diâmetro da ferramenta\n"
+"Personalizado = deslocamento personalizado usando o valor de Deslocamento "
+"Personalizado"
+
+#: AppDatabase.py:202 AppDatabase.py:1300
+msgid ""
+"Custom Offset.\n"
+"A value to be used as offset from the current path."
+msgstr ""
+"Deslocamento personalizado.\n"
+"Um valor a ser usado como deslocamento do caminho atual."
+
+#: AppDatabase.py:205 AppDatabase.py:1267
+msgid ""
+"Tool Type.\n"
+"Can be:\n"
+"Iso = isolation cut\n"
+"Rough = rough cut, low feedrate, multiple passes\n"
+"Finish = finishing cut, high feedrate"
+msgstr ""
+"Tipo de ferramenta.\n"
+"Pode ser:\n"
+"ISO = corte de isolação\n"
+"Desbaste = corte áspero, avanço lento, múltiplos passes\n"
+"Acabamento = corte de acabamento, avanço rápido"
+
+#: AppDatabase.py:211 AppDatabase.py:1115
+msgid ""
+"Tool Shape. \n"
+"Can be:\n"
+"C1 ... C4 = circular tool with x flutes\n"
+"B = ball tip milling tool\n"
+"V = v-shape milling tool"
+msgstr ""
+"Forma da ferramenta.\n"
+"Pode ser:\n"
+"C1 ... C4 = ferramenta circular com x canais\n"
+"B = fresa com ponta esférica\n"
+"V = fresa em forma de V"
+
+#: AppDatabase.py:217 AppDatabase.py:1131
+msgid ""
+"Cutting Depth.\n"
+"The depth at which to cut into material."
+msgstr ""
+"Profundidade de corte.\n"
+"A profundidade para cortar o material."
+
+#: AppDatabase.py:220 AppDatabase.py:1145
+msgid ""
+"Multi Depth.\n"
+"Selecting this will allow cutting in multiple passes,\n"
+"each pass adding a DPP parameter depth."
+msgstr ""
+"Multi-Profundidade.\n"
+"Selecionar isso permite cortar em várias passagens,\n"
+"cada passagem adicionando uma profundidade de parâmetro PPP."
+
+#: AppDatabase.py:224 AppDatabase.py:1158
+msgid ""
+"DPP. Depth per Pass.\n"
+"The value used to cut into material on each pass."
+msgstr ""
+"PPP. Profundidade por Passe.\n"
+"Valor usado para cortar o material em cada passagem."
+
+#: AppDatabase.py:227 AppDatabase.py:1314
+msgid ""
+"V-Dia.\n"
+"Diameter of the tip for V-Shape Tools."
+msgstr ""
+"Dia-V.\n"
+"Diâmetro da ponta das ferramentas em forma de V."
+
+#: AppDatabase.py:230 AppDatabase.py:1328
+msgid ""
+"V-Agle.\n"
+"Angle at the tip for the V-Shape Tools."
+msgstr ""
+"Ângulo.\n"
+"Ângulo na ponta das ferramentas em forma de V."
+
+#: AppDatabase.py:233 AppDatabase.py:1172
+msgid ""
+"Clearance Height.\n"
+"Height at which the milling bit will travel between cuts,\n"
+"above the surface of the material, avoiding all fixtures."
+msgstr ""
+"Altura da folga.\n"
+"Altura na qual a broca irá se deslocar entre cortes,\n"
+"acima da superfície do material, evitando todos os equipamentos."
+
+#: AppDatabase.py:237
+msgid ""
+"FR. Feedrate\n"
+"The speed on XY plane used while cutting into material."
+msgstr ""
+"VA. Velocidade de Avanço\n"
+"A velocidade no plano XY usada ao cortar o material."
+
+#: AppDatabase.py:240
+msgid ""
+"FR Z. Feedrate Z\n"
+"The speed on Z plane."
+msgstr ""
+"VA Z. Velocidade de Avanço Z\n"
+"A velocidade no plano Z usada ao cortar o material."
+
+#: AppDatabase.py:243 AppDatabase.py:1342
+msgid ""
+"FR Rapids. Feedrate Rapids\n"
+"Speed used while moving as fast as possible.\n"
+"This is used only by some devices that can't use\n"
+"the G0 g-code command. Mostly 3D printers."
+msgstr ""
+"VA Rápida. Velocidade de Avanço Rápida\n"
+"Velocidade usada enquanto se move o mais rápido possível.\n"
+"Isso é usado apenas por alguns dispositivos que não podem usar\n"
+"o comando G-Code G0. Principalmente impressoras 3D."
+
+#: AppDatabase.py:248 AppDatabase.py:1215
+msgid ""
+"Spindle Speed.\n"
+"If it's left empty it will not be used.\n"
+"The speed of the spindle in RPM."
+msgstr ""
+"Velocidade do Spindle.\n"
+"Se for deixado vazio, não será usado.\n"
+"Velocidade do spindle em RPM."
+
+#: AppDatabase.py:252 AppDatabase.py:1230
+msgid ""
+"Dwell.\n"
+"Check this if a delay is needed to allow\n"
+"the spindle motor to reach it's set speed."
+msgstr ""
+"Esperar Velocidade.\n"
+"Marque se é necessário um atraso para permitir\n"
+"o motor do spindle atingir a velocidade definida."
+
+#: AppDatabase.py:256 AppDatabase.py:1243
+msgid ""
+"Dwell Time.\n"
+"A delay used to allow the motor spindle reach it's set speed."
+msgstr ""
+"Tempo de espera.\n"
+"Atraso usado para permitir que o spindle atinja a velocidade definida."
+
+#: AppDatabase.py:259
+msgid ""
+"Preprocessor.\n"
+"A selection of files that will alter the generated G-code\n"
+"to fit for a number of use cases."
+msgstr ""
+"Pré-processador.\n"
+"Uma seleção de arquivos que alterarão o G-Code gerado\n"
+"para caber em vários casos de uso."
+
+#: AppDatabase.py:263 AppDatabase.py:1358
+msgid ""
+"Extra Cut.\n"
+"If checked, after a isolation is finished an extra cut\n"
+"will be added where the start and end of isolation meet\n"
+"such as that this point is covered by this extra cut to\n"
+"ensure a complete isolation."
+msgstr ""
+"Corte Extra.\n"
+"Se marcado, após a conclusão de uma isolação, um corte extra\n"
+"será adicionado no encontro entre o início e o fim da isolação,\n"
+"para garantir a isolação completa."
+
+#: AppDatabase.py:269 AppDatabase.py:1373
+msgid ""
+"Extra Cut length.\n"
+"If checked, after a isolation is finished an extra cut\n"
+"will be added where the start and end of isolation meet\n"
+"such as that this point is covered by this extra cut to\n"
+"ensure a complete isolation. This is the length of\n"
+"the extra cut."
+msgstr ""
+"Comprimento extra de corte.\n"
+"Se marcado, após a conclusão de um isolamento, um corte extra\n"
+"serão adicionados onde o início e o fim do isolamento se encontrarem\n"
+"tal que este ponto seja coberto por este corte extra para\n"
+"garantir um isolamento completo. Este é o comprimento de\n"
+"o corte extra."
+
+#: AppDatabase.py:276
+msgid ""
+"Toolchange.\n"
+"It will create a toolchange event.\n"
+"The kind of toolchange is determined by\n"
+"the preprocessor file."
+msgstr ""
+"Troca de ferramentas.\n"
+"Será criado um evento de mudança de ferramenta.\n"
+"O tipo de troca de ferramentas é determinado pelo\n"
+"arquivo do pré-processador."
+
+#: AppDatabase.py:281
+msgid ""
+"Toolchange XY.\n"
+"A set of coordinates in the format (x, y).\n"
+"Will determine the cartesian position of the point\n"
+"where the tool change event take place."
+msgstr ""
+"Troca de ferramentas XY.\n"
+"Um conjunto de coordenadas no formato (x, y).\n"
+"Determina a posição cartesiana do ponto\n"
+"onde o evento de troca da ferramenta ocorre."
+
+#: AppDatabase.py:286
+msgid ""
+"Toolchange Z.\n"
+"The position on Z plane where the tool change event take place."
+msgstr ""
+"Altura da Troca.\n"
+"A posição no plano Z onde o evento de troca da ferramenta ocorre."
+
+#: AppDatabase.py:289
+msgid ""
+"Start Z.\n"
+"If it's left empty it will not be used.\n"
+"A position on Z plane to move immediately after job start."
+msgstr ""
+"Z Inicial.\n"
+"Se for deixado vazio, não será usado.\n"
+"Posição no plano Z para mover-se imediatamente após o início do trabalho."
+
+#: AppDatabase.py:293
+msgid ""
+"End Z.\n"
+"A position on Z plane to move immediately after job stop."
+msgstr ""
+"Z Final.\n"
+"Posição no plano Z para mover-se imediatamente após a parada do trabalho."
+
+#: AppDatabase.py:305 AppDatabase.py:682 AppDatabase.py:716 AppDatabase.py:1898
+#: AppDatabase.py:2144 AppDatabase.py:2178
+msgid "Could not load Tools DB file."
+msgstr "Não foi possível carregar o arquivo com o banco de dados."
+
+#: AppDatabase.py:313 AppDatabase.py:724 AppDatabase.py:1906
+#: AppDatabase.py:2186
+msgid "Failed to parse Tools DB file."
+msgstr "Falha ao analisar o arquivo com o banco de dados."
+
+#: AppDatabase.py:316 AppDatabase.py:727 AppDatabase.py:1909
+#: AppDatabase.py:2189
+msgid "Loaded FlatCAM Tools DB from"
+msgstr "Carregado o BD de Ferramentas FlatCAM de"
+
+#: AppDatabase.py:322 AppDatabase.py:1823
+msgid "Add to DB"
+msgstr "Adicionar ao BD"
+
+#: AppDatabase.py:324 AppDatabase.py:1826
+msgid "Copy from DB"
+msgstr "Copiar do BD"
+
+#: AppDatabase.py:326 AppDatabase.py:1829
+msgid "Delete from DB"
+msgstr "Excluir do BD"
+
+#: AppDatabase.py:603 AppDatabase.py:2044
+msgid "Tool added to DB."
+msgstr "Ferramenta adicionada ao BD."
+
+#: AppDatabase.py:624 AppDatabase.py:2077
+msgid "Tool copied from Tools DB."
+msgstr "A ferramenta foi copiada do BD."
+
+#: AppDatabase.py:642 AppDatabase.py:2104
+msgid "Tool removed from Tools DB."
+msgstr "Ferramenta(s) excluída(s) do BD."
+
+#: AppDatabase.py:653 AppDatabase.py:2115
+msgid "Export Tools Database"
+msgstr "Exportar Banco de Dados de Ferramentas"
+
+#: AppDatabase.py:656 AppDatabase.py:2118
+msgid "Tools_Database"
+msgstr "Tools_Database"
+
+#: AppDatabase.py:663 AppDatabase.py:709 AppDatabase.py:2125
+#: AppDatabase.py:2171 AppEditors/FlatCAMExcEditor.py:1023
+#: AppEditors/FlatCAMExcEditor.py:1091 AppEditors/FlatCAMTextEditor.py:223
+#: AppGUI/MainGUI.py:2690 AppGUI/MainGUI.py:2906 AppGUI/MainGUI.py:3121
+#: AppObjects/ObjectCollection.py:126 AppTools/ToolFilm.py:739
+#: AppTools/ToolFilm.py:885 AppTools/ToolImage.py:247 AppTools/ToolMove.py:269
+#: AppTools/ToolPcbWizard.py:301 AppTools/ToolPcbWizard.py:324
+#: AppTools/ToolQRCode.py:791 AppTools/ToolQRCode.py:838 App_Main.py:1694
+#: App_Main.py:2430 App_Main.py:2465 App_Main.py:2512 App_Main.py:3991
+#: App_Main.py:6529 App_Main.py:6566 App_Main.py:6608 App_Main.py:6637
+#: App_Main.py:6678 App_Main.py:6703 App_Main.py:6755 App_Main.py:6790
+#: App_Main.py:6835 App_Main.py:6876 App_Main.py:6917 App_Main.py:6958
+#: App_Main.py:6999 App_Main.py:7043 App_Main.py:7099 App_Main.py:7131
+#: App_Main.py:7163 App_Main.py:7394 App_Main.py:7432 App_Main.py:7475
+#: App_Main.py:7552 App_Main.py:7607 Bookmark.py:300 Bookmark.py:342
+msgid "Cancelled."
+msgstr "Cancelado."
+
+#: AppDatabase.py:671 AppDatabase.py:2133 AppEditors/FlatCAMTextEditor.py:276
+#: AppObjects/FlatCAMCNCJob.py:959 AppTools/ToolFilm.py:1016
+#: AppTools/ToolFilm.py:1197 AppTools/ToolSolderPaste.py:1534 App_Main.py:2520
+#: App_Main.py:7851 App_Main.py:7899 App_Main.py:8024 App_Main.py:8160
+#: Bookmark.py:308
+msgid ""
+"Permission denied, saving not possible.\n"
+"Most likely another app is holding the file open and not accessible."
+msgstr ""
+"Permissão negada, não é possível salvar.\n"
+"É provável que outro aplicativo esteja mantendo o arquivo aberto e não "
+"acessível."
+
+#: AppDatabase.py:693 AppDatabase.py:696 AppDatabase.py:748 AppDatabase.py:2155
+#: AppDatabase.py:2158 AppDatabase.py:2211
+msgid "Failed to write Tools DB to file."
+msgstr "Falha ao gravar no arquivo."
+
+#: AppDatabase.py:699 AppDatabase.py:2161
+msgid "Exported Tools DB to"
+msgstr "Banco de Dados exportado para"
+
+#: AppDatabase.py:706 AppDatabase.py:2168
+msgid "Import FlatCAM Tools DB"
+msgstr "Importar Banco de Dados de Ferramentas do FlatCAM"
+
+#: AppDatabase.py:738 AppDatabase.py:913 AppDatabase.py:2200
+#: AppDatabase.py:2418 AppObjects/FlatCAMGeometry.py:947
+#: AppTools/ToolNCC.py:4015 AppTools/ToolNCC.py:4099 AppTools/ToolPaint.py:3558
+#: AppTools/ToolPaint.py:3643 App_Main.py:5172 App_Main.py:5200
+#: App_Main.py:5227 App_Main.py:5247
+msgid "Tools Database"
+msgstr "Banco de Dados de Ferramentas"
+
+#: AppDatabase.py:752 AppDatabase.py:2215
+msgid "Saved Tools DB."
+msgstr "BD de Ferramentas Salvo."
+
+#: AppDatabase.py:899 AppDatabase.py:2405
+msgid "No Tool/row selected in the Tools Database table"
+msgstr ""
+"Nenhuma ferramenta selecionada na tabela de Banco de Dados de Ferramentas"
+
+#: AppDatabase.py:917 AppDatabase.py:2422
+msgid "Cancelled adding tool from DB."
+msgstr "Adição de ferramenta do BD cancelada."
+
+#: AppDatabase.py:1018
+msgid "Basic Geo Parameters"
+msgstr "Parâmetros Básicos de Geo"
+
+#: AppDatabase.py:1030
+msgid "Advanced Geo Parameters"
+msgstr "Parâmetros Avançados de Geo"
+
+#: AppDatabase.py:1042
+msgid "NCC Parameters"
+msgstr "Parâmetros NCC"
+
+#: AppDatabase.py:1054
+msgid "Paint Parameters"
+msgstr "Parâmetros de Pintura"
+
+#: AppDatabase.py:1185 AppGUI/ObjectUI.py:967 AppGUI/ObjectUI.py:1871
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:185
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:148
+#: AppTools/ToolSolderPaste.py:253
+msgid "Feedrate X-Y"
+msgstr "Avanço X-Y"
+
+#: AppDatabase.py:1187
+msgid ""
+"Feedrate X-Y. Feedrate\n"
+"The speed on XY plane used while cutting into material."
+msgstr ""
+"Velocidade de Avanço X-Y\n"
+"A velocidade no plano XY usada ao cortar o material."
+
+#: AppDatabase.py:1199 AppGUI/ObjectUI.py:982 AppGUI/ObjectUI.py:1885
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:207
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:200
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:161
+#: AppTools/ToolSolderPaste.py:265
+msgid "Feedrate Z"
+msgstr "Taxa de Avanço Z"
+
+#: AppDatabase.py:1201
+msgid ""
+"Feedrate Z\n"
+"The speed on Z plane."
+msgstr ""
+"Velocidade de Avanço Z\n"
+"A velocidade no plano Z."
+
+#: AppDatabase.py:1399 AppGUI/ObjectUI.py:845
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:46
+#: AppTools/ToolNCC.py:341
+msgid "Operation"
+msgstr "Operação"
+
+#: AppDatabase.py:1401 AppTools/ToolNCC.py:343
+msgid ""
+"The 'Operation' can be:\n"
+"- Isolation -> will ensure that the non-copper clearing is always complete.\n"
+"If it's not successful then the non-copper clearing will fail, too.\n"
+"- Clear -> the regular non-copper clearing."
+msgstr ""
+"A 'Operação' pode ser:\n"
+"- Isolação -> garantirá que a retirada de cobre seja completa.\n"
+"Se não for bem-sucedida, a retirada de cobre também falhará.\n"
+"- Limpar -> retirada de cobre padrão."
+
+#: AppDatabase.py:1408 AppEditors/FlatCAMGrbEditor.py:2740
+#: AppGUI/GUIElements.py:2604 AppTools/ToolNCC.py:350
+msgid "Clear"
+msgstr "Limpar"
+
+#: AppDatabase.py:1409 AppTools/ToolNCC.py:351 AppTools/ToolNCC.py:1624
+msgid "Isolation"
+msgstr "Isolação"
+
+#: AppDatabase.py:1417 AppGUI/ObjectUI.py:409 AppGUI/ObjectUI.py:867
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:62
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:56
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:95
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:137 AppTools/ToolNCC.py:359
+msgid "Milling Type"
+msgstr "Tipo de Fresamento"
+
+#: AppDatabase.py:1419 AppDatabase.py:1427
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:139
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:147 AppTools/ToolNCC.py:361
+#: AppTools/ToolNCC.py:369
+msgid ""
+"Milling type when the selected tool is of type: 'iso_op':\n"
+"- climb / best for precision milling and to reduce tool usage\n"
+"- conventional / useful when there is no backlash compensation"
+msgstr ""
+"Tipo de fresamento quando a ferramenta selecionada é do tipo 'iso_op':\n"
+"- subida: melhor para fresamento de precisão e para reduzir o uso da "
+"ferramenta\n"
+"- convencional: útil quando não há compensação de folga"
+
+#: AppDatabase.py:1424 AppGUI/ObjectUI.py:415
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:62
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:102
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:144 AppTools/ToolNCC.py:366
+msgid "Climb"
+msgstr "Subida"
+
+#: AppDatabase.py:1425 AppGUI/ObjectUI.py:416
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:63
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:103
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:145 AppTools/ToolNCC.py:367
+msgid "Conventional"
+msgstr "Convencional"
+
+#: AppDatabase.py:1437 AppDatabase.py:1546 AppEditors/FlatCAMGeoEditor.py:450
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:182
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:163
+#: AppTools/ToolNCC.py:382 AppTools/ToolPaint.py:328
+msgid "Overlap"
+msgstr "Sobreposição"
+
+#: AppDatabase.py:1439 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:184
+#: AppTools/ToolNCC.py:384
+msgid ""
+"How much (percentage) of the tool width to overlap each tool pass.\n"
+"Adjust the value starting with lower values\n"
+"and increasing it if areas that should be cleared are still \n"
+"not cleared.\n"
+"Lower values = faster processing, faster execution on CNC.\n"
+"Higher values = slow processing and slow execution on CNC\n"
+"due of too many paths."
+msgstr ""
+"Quanto da largura da ferramenta (percentual) é sobreposto em cada passagem "
+"da ferramenta.\n"
+"Ajuste o valor começando com valores menores, e aumente se alguma área que \n"
+"deveria ser limpa não foi limpa.\n"
+"Valores menores = processamento mais rápido, execução mais rápida no CNC. \n"
+"Valores maiores = processamento lento e execução lenta no CNC devido\n"
+"ao número de caminhos."
+
+#: AppDatabase.py:1458 AppDatabase.py:1567 AppEditors/FlatCAMGeoEditor.py:470
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:72
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:229
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:59
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:45
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:53
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:66
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:183
+#: AppTools/ToolCopperThieving.py:111 AppTools/ToolCopperThieving.py:362
+#: AppTools/ToolCorners.py:140 AppTools/ToolCutOut.py:190
+#: AppTools/ToolFiducials.py:172 AppTools/ToolInvertGerber.py:88
+#: AppTools/ToolInvertGerber.py:96 AppTools/ToolNCC.py:403
+#: AppTools/ToolPaint.py:349
+msgid "Margin"
+msgstr "Margem"
+
+#: AppDatabase.py:1460
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:74
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:61
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:68
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204
+#: AppTools/ToolCopperThieving.py:113 AppTools/ToolCorners.py:142
+#: AppTools/ToolFiducials.py:174 AppTools/ToolNCC.py:405
+msgid "Bounding box margin."
+msgstr "Margem da caixa delimitadora."
+
+#: AppDatabase.py:1471 AppDatabase.py:1582 AppEditors/FlatCAMGeoEditor.py:484
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:105
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:198
+#: AppTools/ToolExtractDrills.py:128 AppTools/ToolNCC.py:416
+#: AppTools/ToolPaint.py:364 AppTools/ToolPunchGerber.py:139
+msgid "Method"
+msgstr "Método"
+
+#: AppDatabase.py:1473 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:217
+#: AppTools/ToolNCC.py:418
+msgid ""
+"Algorithm for copper clearing:\n"
+"- Standard: Fixed step inwards.\n"
+"- Seed-based: Outwards from seed.\n"
+"- Line-based: Parallel lines."
+msgstr ""
+"Algoritmo para retirada de cobre:\n"
+"- Padrão: Passo fixo para dentro.\n"
+"- Baseado em semente: Para fora a partir de uma semente.\n"
+"- Linhas retas: Linhas paralelas."
+
+#: AppDatabase.py:1481 AppDatabase.py:1596 AppEditors/FlatCAMGeoEditor.py:498
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
+#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2212 AppTools/ToolNCC.py:2739
+#: AppTools/ToolNCC.py:2771 AppTools/ToolPaint.py:389
+#: AppTools/ToolPaint.py:1839 tclCommands/TclCommandCopperClear.py:126
+#: tclCommands/TclCommandCopperClear.py:134 tclCommands/TclCommandPaint.py:125
+msgid "Standard"
+msgstr "Padrão"
+
+#: AppDatabase.py:1481 AppDatabase.py:1596 AppEditors/FlatCAMGeoEditor.py:498
+#: AppEditors/FlatCAMGeoEditor.py:568 AppEditors/FlatCAMGeoEditor.py:5146
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
+#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2223 AppTools/ToolNCC.py:2745
+#: AppTools/ToolNCC.py:2777 AppTools/ToolPaint.py:389
+#: AppTools/ToolPaint.py:1853 defaults.py:400 defaults.py:432
+#: tclCommands/TclCommandCopperClear.py:128
+#: tclCommands/TclCommandCopperClear.py:136 tclCommands/TclCommandPaint.py:127
+msgid "Seed"
+msgstr "Semente"
+
+#: AppDatabase.py:1481 AppDatabase.py:1596 AppEditors/FlatCAMGeoEditor.py:498
+#: AppEditors/FlatCAMGeoEditor.py:5150
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
+#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2234 AppTools/ToolPaint.py:389
+#: AppTools/ToolPaint.py:698 AppTools/ToolPaint.py:1867
+#: tclCommands/TclCommandCopperClear.py:130 tclCommands/TclCommandPaint.py:129
+msgid "Lines"
+msgstr "Linhas"
+
+#: AppDatabase.py:1481 AppDatabase.py:1596
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
+#: AppTools/ToolNCC.py:431 AppTools/ToolNCC.py:2245 AppTools/ToolPaint.py:389
+#: AppTools/ToolPaint.py:2032 tclCommands/TclCommandPaint.py:133
+msgid "Combo"
+msgstr "Combo"
+
+#: AppDatabase.py:1489 AppDatabase.py:1607
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:237
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:224
+#: AppTools/ToolNCC.py:439 AppTools/ToolPaint.py:400
+msgid "Connect"
+msgstr "Conectar"
+
+#: AppDatabase.py:1493 AppDatabase.py:1610 AppEditors/FlatCAMGeoEditor.py:507
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:239
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:226
+#: AppTools/ToolNCC.py:443 AppTools/ToolPaint.py:403
+msgid ""
+"Draw lines between resulting\n"
+"segments to minimize tool lifts."
+msgstr ""
+"Desenha linhas entre os segmentos resultantes\n"
+"para minimizar as elevações de ferramentas."
+
+#: AppDatabase.py:1499 AppDatabase.py:1614
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:246
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:232
+#: AppTools/ToolNCC.py:449 AppTools/ToolPaint.py:407
+msgid "Contour"
+msgstr "Contorno"
+
+#: AppDatabase.py:1503 AppDatabase.py:1617 AppEditors/FlatCAMGeoEditor.py:517
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:248
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:234
+#: AppTools/ToolNCC.py:453 AppTools/ToolPaint.py:410
+msgid ""
+"Cut around the perimeter of the polygon\n"
+"to trim rough edges."
+msgstr "Corta no perímetro do polígono para retirar as arestas."
+
+#: AppDatabase.py:1509 AppEditors/FlatCAMGeoEditor.py:611
+#: AppEditors/FlatCAMGrbEditor.py:5289 AppGUI/ObjectUI.py:143
+#: AppGUI/ObjectUI.py:1599 AppGUI/ObjectUI.py:2456
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:255
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:142
+#: AppTools/ToolNCC.py:459 AppTools/ToolTransform.py:28
+msgid "Offset"
+msgstr "Deslocar"
+
+#: AppDatabase.py:1513 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:257
+#: AppTools/ToolNCC.py:463
+msgid ""
+"If used, it will add an offset to the copper features.\n"
+"The copper clearing will finish to a distance\n"
+"from the copper features.\n"
+"The value can be between 0 and 10 FlatCAM units."
+msgstr ""
+"Se usado, será adicionado um deslocamento aos recursos de cobre.\n"
+"A retirada de cobre terminará a uma distância dos recursos de cobre.\n"
+"O valor pode estar entre 0 e 10 unidades FlatCAM."
+
+#: AppDatabase.py:1548 AppEditors/FlatCAMGeoEditor.py:452
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:165
+#: AppTools/ToolPaint.py:330
+msgid ""
+"How much (percentage) of the tool width to overlap each tool pass.\n"
+"Adjust the value starting with lower values\n"
+"and increasing it if areas that should be painted are still \n"
+"not painted.\n"
+"Lower values = faster processing, faster execution on CNC.\n"
+"Higher values = slow processing and slow execution on CNC\n"
+"due of too many paths."
+msgstr ""
+"Quanto da largura da ferramenta (percentual) é sobreposto em cada passagem "
+"da ferramenta.\n"
+"Ajuste o valor começando com valores menores, e aumente se alguma área que \n"
+"deveria ser pintada não foi pintada.\n"
+"Valores menores = processamento mais rápido, execução mais rápida no CNC. \n"
+"Valores maiores = processamento lento e execução lenta no CNC \n"
+"devido ao número de caminhos."
+
+#: AppDatabase.py:1569 AppEditors/FlatCAMGeoEditor.py:472
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:185
+#: AppTools/ToolPaint.py:351
+msgid ""
+"Distance by which to avoid\n"
+"the edges of the polygon to\n"
+"be painted."
+msgstr ""
+"Distância pela qual evitar \n"
+"as bordas do polígono para \n"
+"ser pintado."
+
+#: AppDatabase.py:1584 AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:200
+#: AppTools/ToolPaint.py:366
+msgid ""
+"Algorithm for painting:\n"
+"- Standard: Fixed step inwards.\n"
+"- Seed-based: Outwards from seed.\n"
+"- Line-based: Parallel lines.\n"
+"- Laser-lines: Active only for Gerber objects.\n"
+"Will create lines that follow the traces.\n"
+"- Combo: In case of failure a new method will be picked from the above\n"
+"in the order specified."
+msgstr ""
+"Algoritmo para pintura:\n"
+"- Padrão: Passo fixo para dentro.\n"
+"- Baseado em semente: Para fora a partir de uma semente.\n"
+"- Linhas retas: Linhas paralelas.\n"
+"- Linhas laser: Ativa apenas para objetos Gerber.\n"
+"Criará linhas que seguem os traços.\n"
+"- Combo: em caso de falha, um novo método será escolhido dentre os itens "
+"acima na ordem especificada."
+
+#: AppDatabase.py:1596 AppDatabase.py:1598
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
+#: AppTools/ToolPaint.py:389 AppTools/ToolPaint.py:391
+#: AppTools/ToolPaint.py:692 AppTools/ToolPaint.py:697
+#: AppTools/ToolPaint.py:1881 tclCommands/TclCommandPaint.py:131
+msgid "Laser_lines"
+msgstr "Linhas Laser"
+
+#: AppDatabase.py:1641
+msgid "Add Tool in DB"
+msgstr "Adicionar Ferramenta no BD"
+
+#: AppDatabase.py:1675
+msgid "Save DB"
+msgstr "Salvar BD"
+
+#: AppDatabase.py:1677
+msgid "Save the Tools Database information's."
+msgstr "Salve as informações do banco de dados de ferramentas."
+
+#: AppEditors/FlatCAMExcEditor.py:50 AppEditors/FlatCAMExcEditor.py:74
+#: AppEditors/FlatCAMExcEditor.py:168 AppEditors/FlatCAMExcEditor.py:385
+#: AppEditors/FlatCAMExcEditor.py:589 AppEditors/FlatCAMGrbEditor.py:241
+#: AppEditors/FlatCAMGrbEditor.py:248
+msgid "Click to place ..."
+msgstr "Clique para colocar ..."
+
+#: AppEditors/FlatCAMExcEditor.py:58
+msgid "To add a drill first select a tool"
+msgstr "Para adicionar um furo, primeiro selecione uma ferramenta"
+
+#: AppEditors/FlatCAMExcEditor.py:122
+msgid "Done. Drill added."
+msgstr "Feito. Furo adicionado."
+
+#: AppEditors/FlatCAMExcEditor.py:176
+msgid "To add an Drill Array first select a tool in Tool Table"
+msgstr ""
+"Para adicionar um Matriz de Furos, primeiro selecione uma ferramenta na "
+"Tabela de Ferramentas"
+
+#: AppEditors/FlatCAMExcEditor.py:192 AppEditors/FlatCAMExcEditor.py:415
+#: AppEditors/FlatCAMExcEditor.py:636 AppEditors/FlatCAMExcEditor.py:1151
+#: AppEditors/FlatCAMExcEditor.py:1178 AppEditors/FlatCAMGrbEditor.py:471
+#: AppEditors/FlatCAMGrbEditor.py:1935 AppEditors/FlatCAMGrbEditor.py:1965
+msgid "Click on target location ..."
+msgstr "Clique no local de destino ..."
+
+#: AppEditors/FlatCAMExcEditor.py:211
+msgid "Click on the Drill Circular Array Start position"
+msgstr "Clique na posição inicial da Matriz Circular de Furos"
+
+#: AppEditors/FlatCAMExcEditor.py:233 AppEditors/FlatCAMExcEditor.py:677
+#: AppEditors/FlatCAMGrbEditor.py:516
+msgid "The value is not Float. Check for comma instead of dot separator."
+msgstr ""
+"O valor não é flutuante. Verifique se há uma vírgula em vez do ponto no "
+"separador decimal."
+
+#: AppEditors/FlatCAMExcEditor.py:237
+msgid "The value is mistyped. Check the value"
+msgstr "O valor foi digitado incorretamente. Verifique o valor"
+
+#: AppEditors/FlatCAMExcEditor.py:336
+msgid "Too many drills for the selected spacing angle."
+msgstr "Muitos furos para o ângulo de espaçamento selecionado."
+
+#: AppEditors/FlatCAMExcEditor.py:354
+msgid "Done. Drill Array added."
+msgstr "Matriz de Furos adicionada."
+
+#: AppEditors/FlatCAMExcEditor.py:394
+msgid "To add a slot first select a tool"
+msgstr "Para adicionar um ranhura, primeiro selecione uma ferramenta"
+
+#: AppEditors/FlatCAMExcEditor.py:454 AppEditors/FlatCAMExcEditor.py:461
+#: AppEditors/FlatCAMExcEditor.py:742 AppEditors/FlatCAMExcEditor.py:749
+msgid "Value is missing or wrong format. Add it and retry."
+msgstr "Valor está faltando ou formato errado. Adicione e tente novamente."
+
+#: AppEditors/FlatCAMExcEditor.py:559
+msgid "Done. Adding Slot completed."
+msgstr "Feito. Ranhura adicionada."
+
+#: AppEditors/FlatCAMExcEditor.py:597
+msgid "To add an Slot Array first select a tool in Tool Table"
+msgstr ""
+"Para adicionar uma matriz de ranhuras, primeiro selecione uma ferramenta na "
+"Tabela de Ferramentas"
+
+#: AppEditors/FlatCAMExcEditor.py:655
+msgid "Click on the Slot Circular Array Start position"
+msgstr "Clique na posição inicial da matriz circular da ranhura"
+
+#: AppEditors/FlatCAMExcEditor.py:680 AppEditors/FlatCAMGrbEditor.py:519
+msgid "The value is mistyped. Check the value."
+msgstr "O valor digitado está incorreto. Verifique o valor."
+
+#: AppEditors/FlatCAMExcEditor.py:859
+msgid "Too many Slots for the selected spacing angle."
+msgstr "Muitas Ranhuras para o ângulo de espaçamento selecionado."
+
+#: AppEditors/FlatCAMExcEditor.py:882
+msgid "Done. Slot Array added."
+msgstr "Feito. Matriz de Ranhuras adicionada."
+
+#: AppEditors/FlatCAMExcEditor.py:904
+msgid "Click on the Drill(s) to resize ..."
+msgstr "Clique no(s) Furo(s) para redimensionar ..."
+
+#: AppEditors/FlatCAMExcEditor.py:934
+msgid "Resize drill(s) failed. Please enter a diameter for resize."
+msgstr ""
+"Redimensionar furo(s) falhou. Por favor insira um diâmetro para "
+"redimensionar."
+
+#: AppEditors/FlatCAMExcEditor.py:1112
+msgid "Done. Drill/Slot Resize completed."
+msgstr "Redimensionamento de furo/ranhura concluído."
+
+#: AppEditors/FlatCAMExcEditor.py:1115
+msgid "Cancelled. No drills/slots selected for resize ..."
+msgstr "Cancelado. Nenhum furo/ranhura selecionado para redimensionar ..."
+
+#: AppEditors/FlatCAMExcEditor.py:1153 AppEditors/FlatCAMGrbEditor.py:1937
+msgid "Click on reference location ..."
+msgstr "Clique no local de referência ..."
+
+#: AppEditors/FlatCAMExcEditor.py:1210
+msgid "Done. Drill(s) Move completed."
+msgstr "Movimento do Furo realizado."
+
+#: AppEditors/FlatCAMExcEditor.py:1318
+msgid "Done. Drill(s) copied."
+msgstr "Furo(s) copiado(s)."
+
+#: AppEditors/FlatCAMExcEditor.py:1557
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:26
+msgid "Excellon Editor"
+msgstr "Editor Excellon"
+
+#: AppEditors/FlatCAMExcEditor.py:1564 AppEditors/FlatCAMGrbEditor.py:2460
+msgid "Name:"
+msgstr "Nome:"
+
+#: AppEditors/FlatCAMExcEditor.py:1570 AppGUI/ObjectUI.py:761
+#: AppGUI/ObjectUI.py:1567 AppTools/ToolNCC.py:120 AppTools/ToolPaint.py:114
+#: AppTools/ToolSolderPaste.py:74
+msgid "Tools Table"
+msgstr "Tabela de Ferramentas"
+
+#: AppEditors/FlatCAMExcEditor.py:1572 AppGUI/ObjectUI.py:763
+msgid ""
+"Tools in this Excellon object\n"
+"when are used for drilling."
+msgstr ""
+"Ferramentas neste objeto Excellon \n"
+"quando são usadas para perfuração."
+
+#: AppEditors/FlatCAMExcEditor.py:1584 AppEditors/FlatCAMExcEditor.py:3041
+#: AppGUI/ObjectUI.py:781 AppObjects/FlatCAMExcellon.py:1177
+#: AppObjects/FlatCAMExcellon.py:1268 AppObjects/FlatCAMExcellon.py:1453
+#: AppTools/ToolNCC.py:132 AppTools/ToolPaint.py:127
+#: AppTools/ToolPcbWizard.py:76 AppTools/ToolProperties.py:416
+#: AppTools/ToolProperties.py:476 AppTools/ToolSolderPaste.py:85
+#: tclCommands/TclCommandDrillcncjob.py:195
+msgid "Diameter"
+msgstr "Diâmetro"
+
+#: AppEditors/FlatCAMExcEditor.py:1592
+msgid "Add/Delete Tool"
+msgstr "Adicionar/Excluir Ferramenta"
+
+#: AppEditors/FlatCAMExcEditor.py:1594
+msgid ""
+"Add/Delete a tool to the tool list\n"
+"for this Excellon object."
+msgstr ""
+"Adicionar/Excluir uma ferramenta para a lista de ferramentas\n"
+"para este objeto Excellon."
+
+#: AppEditors/FlatCAMExcEditor.py:1606 AppGUI/ObjectUI.py:1687
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:57
+msgid "Diameter for the new tool"
+msgstr "Diâmetro da nova ferramenta"
+
+#: AppEditors/FlatCAMExcEditor.py:1616
+msgid "Add Tool"
+msgstr "Adicionar Ferramenta"
+
+#: AppEditors/FlatCAMExcEditor.py:1618
+msgid ""
+"Add a new tool to the tool list\n"
+"with the diameter specified above."
+msgstr ""
+"Adiciona uma nova ferramenta à lista de ferramentas\n"
+"com o diâmetro especificado acima."
+
+#: AppEditors/FlatCAMExcEditor.py:1630
+msgid "Delete Tool"
+msgstr "Excluir Ferramenta"
+
+#: AppEditors/FlatCAMExcEditor.py:1632
+msgid ""
+"Delete a tool in the tool list\n"
+"by selecting a row in the tool table."
+msgstr ""
+"Exclui uma ferramenta da lista de ferramentas selecionando uma linha na "
+"tabela de ferramentas."
+
+#: AppEditors/FlatCAMExcEditor.py:1650 AppGUI/MainGUI.py:4311
+msgid "Resize Drill(s)"
+msgstr "Redimensionar Furo(s)"
+
+#: AppEditors/FlatCAMExcEditor.py:1652
+msgid "Resize a drill or a selection of drills."
+msgstr "Redimensiona um furo ou uma seleção de furos."
+
+#: AppEditors/FlatCAMExcEditor.py:1659
+msgid "Resize Dia"
+msgstr "Novo Diâmetro"
+
+#: AppEditors/FlatCAMExcEditor.py:1661
+msgid "Diameter to resize to."
+msgstr "Novo diâmetro para redimensionar."
+
+#: AppEditors/FlatCAMExcEditor.py:1672
+msgid "Resize"
+msgstr "Redimensionar"
+
+#: AppEditors/FlatCAMExcEditor.py:1674
+msgid "Resize drill(s)"
+msgstr "Redimensionar furo(s)"
+
+#: AppEditors/FlatCAMExcEditor.py:1699 AppGUI/MainGUI.py:1473
+#: AppGUI/MainGUI.py:4310
+msgid "Add Drill Array"
+msgstr "Adicionar Matriz de Furos"
+
+#: AppEditors/FlatCAMExcEditor.py:1701
+msgid "Add an array of drills (linear or circular array)"
+msgstr "Adiciona uma matriz de furos (matriz linear ou circular)"
+
+#: AppEditors/FlatCAMExcEditor.py:1707
+msgid ""
+"Select the type of drills array to create.\n"
+"It can be Linear X(Y) or Circular"
+msgstr ""
+"Selecione o tipo de matriz de furos para criar.\n"
+"Pode ser Linear X(Y) ou Circular"
+
+#: AppEditors/FlatCAMExcEditor.py:1710 AppEditors/FlatCAMExcEditor.py:1924
+#: AppEditors/FlatCAMGrbEditor.py:2773
+msgid "Linear"
+msgstr "Linear"
+
+#: AppEditors/FlatCAMExcEditor.py:1711 AppEditors/FlatCAMExcEditor.py:1925
+#: AppEditors/FlatCAMGrbEditor.py:2774 AppGUI/ObjectUI.py:316
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:52
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:149
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:107
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:52
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:151
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:70
+#: AppTools/ToolExtractDrills.py:78 AppTools/ToolExtractDrills.py:201
+#: AppTools/ToolFiducials.py:220 AppTools/ToolNCC.py:221
+#: AppTools/ToolPaint.py:203 AppTools/ToolPunchGerber.py:89
+#: AppTools/ToolPunchGerber.py:229
+msgid "Circular"
+msgstr "Circular"
+
+#: AppEditors/FlatCAMExcEditor.py:1719
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:68
+msgid "Nr of drills"
+msgstr "Nº de furos"
+
+#: AppEditors/FlatCAMExcEditor.py:1720
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:70
+msgid "Specify how many drills to be in the array."
+msgstr "Especifique quantos furos devem estar na matriz."
+
+#: AppEditors/FlatCAMExcEditor.py:1738 AppEditors/FlatCAMExcEditor.py:1788
+#: AppEditors/FlatCAMExcEditor.py:1860 AppEditors/FlatCAMExcEditor.py:1953
+#: AppEditors/FlatCAMExcEditor.py:2004 AppEditors/FlatCAMGrbEditor.py:1571
+#: AppEditors/FlatCAMGrbEditor.py:2802 AppEditors/FlatCAMGrbEditor.py:2851
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:178
+msgid "Direction"
+msgstr "Direção"
+
+#: AppEditors/FlatCAMExcEditor.py:1740 AppEditors/FlatCAMExcEditor.py:1955
+#: AppEditors/FlatCAMGrbEditor.py:2804
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:86
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:234
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:122
+msgid ""
+"Direction on which the linear array is oriented:\n"
+"- 'X' - horizontal axis \n"
+"- 'Y' - vertical axis or \n"
+"- 'Angle' - a custom angle for the array inclination"
+msgstr ""
+"Direção na qual a matriz linear é orientada: \n"
+"- 'X' - eixo horizontal\n"
+"- 'Y' - eixo vertical ou\n"
+"- 'Ângulo' - um ângulo personalizado para a inclinação da matriz"
+
+#: AppEditors/FlatCAMExcEditor.py:1747 AppEditors/FlatCAMExcEditor.py:1869
+#: AppEditors/FlatCAMExcEditor.py:1962 AppEditors/FlatCAMGrbEditor.py:2811
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:92
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:187
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:240
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:128
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:208
+#: AppTools/ToolFilm.py:239
+msgid "X"
+msgstr "X"
+
+#: AppEditors/FlatCAMExcEditor.py:1748 AppEditors/FlatCAMExcEditor.py:1870
+#: AppEditors/FlatCAMExcEditor.py:1963 AppEditors/FlatCAMGrbEditor.py:2812
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:93
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:188
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:241
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:129
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:209
+#: AppTools/ToolFilm.py:240
+msgid "Y"
+msgstr "Y"
+
+#: AppEditors/FlatCAMExcEditor.py:1749 AppEditors/FlatCAMExcEditor.py:1766
+#: AppEditors/FlatCAMExcEditor.py:1800 AppEditors/FlatCAMExcEditor.py:1871
+#: AppEditors/FlatCAMExcEditor.py:1875 AppEditors/FlatCAMExcEditor.py:1964
+#: AppEditors/FlatCAMExcEditor.py:1982 AppEditors/FlatCAMExcEditor.py:2016
+#: AppEditors/FlatCAMGrbEditor.py:2813 AppEditors/FlatCAMGrbEditor.py:2830
+#: AppEditors/FlatCAMGrbEditor.py:2866
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:94
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:113
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:189
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:194
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:242
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:263
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:130
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:148
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:53
+#: AppTools/ToolDistance.py:120 AppTools/ToolDistanceMin.py:68
+#: AppTools/ToolTransform.py:60
+msgid "Angle"
+msgstr "Ângulo"
+
+#: AppEditors/FlatCAMExcEditor.py:1753 AppEditors/FlatCAMExcEditor.py:1968
+#: AppEditors/FlatCAMGrbEditor.py:2817
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:100
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:248
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:136
+msgid "Pitch"
+msgstr "Passo"
+
+#: AppEditors/FlatCAMExcEditor.py:1755 AppEditors/FlatCAMExcEditor.py:1970
+#: AppEditors/FlatCAMGrbEditor.py:2819
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:102
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:250
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:138
+msgid "Pitch = Distance between elements of the array."
+msgstr "Passo = Distância entre os elementos da matriz."
+
+#: AppEditors/FlatCAMExcEditor.py:1768 AppEditors/FlatCAMExcEditor.py:1984
+msgid ""
+"Angle at which the linear array is placed.\n"
+"The precision is of max 2 decimals.\n"
+"Min value is: -360 degrees.\n"
+"Max value is: 360.00 degrees."
+msgstr ""
+"Ângulo no qual a matriz linear é colocada.\n"
+"A precisão é de no máximo 2 decimais.\n"
+"Valor mínimo: -360.00 graus.\n"
+"Valor máximo: 360.00 graus."
+
+#: AppEditors/FlatCAMExcEditor.py:1789 AppEditors/FlatCAMExcEditor.py:2005
+#: AppEditors/FlatCAMGrbEditor.py:2853
+msgid ""
+"Direction for circular array.Can be CW = clockwise or CCW = counter "
+"clockwise."
+msgstr ""
+"Sentido da matriz circular. Pode ser CW = horário ou CCW = anti-horário."
+
+#: AppEditors/FlatCAMExcEditor.py:1796 AppEditors/FlatCAMExcEditor.py:2012
+#: AppEditors/FlatCAMGrbEditor.py:2861
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:129
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:136
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:286
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:142
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:170
+msgid "CW"
+msgstr "CW"
+
+#: AppEditors/FlatCAMExcEditor.py:1797 AppEditors/FlatCAMExcEditor.py:2013
+#: AppEditors/FlatCAMGrbEditor.py:2862
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:130
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:137
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:287
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:143
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:171
+msgid "CCW"
+msgstr "CCW"
+
+#: AppEditors/FlatCAMExcEditor.py:1801 AppEditors/FlatCAMExcEditor.py:2017
+#: AppEditors/FlatCAMGrbEditor.py:2868
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:115
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:145
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:265
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:295
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:150
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:179
+msgid "Angle at which each element in circular array is placed."
+msgstr "Ângulo no qual cada elemento na matriz circular é colocado."
+
+#: AppEditors/FlatCAMExcEditor.py:1835
+msgid "Slot Parameters"
+msgstr "Parâmetros de Ranhura"
+
+#: AppEditors/FlatCAMExcEditor.py:1837
+msgid ""
+"Parameters for adding a slot (hole with oval shape)\n"
+"either single or as an part of an array."
+msgstr ""
+"Parâmetros para adicionar uma ranhura (furo com forma oval),\n"
+"tanto única quanto parte de uma matriz."
+
+#: AppEditors/FlatCAMExcEditor.py:1846
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:56
+#: AppTools/ToolCorners.py:127 AppTools/ToolProperties.py:559
+msgid "Length"
+msgstr "Comprimento"
+
+#: AppEditors/FlatCAMExcEditor.py:1848
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:164
+msgid "Length = The length of the slot."
+msgstr "Comprimento = o comprimento da ranhura."
+
+#: AppEditors/FlatCAMExcEditor.py:1862
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:180
+msgid ""
+"Direction on which the slot is oriented:\n"
+"- 'X' - horizontal axis \n"
+"- 'Y' - vertical axis or \n"
+"- 'Angle' - a custom angle for the slot inclination"
+msgstr ""
+"Direção na qual a ranhura é orientada:\n"
+"- 'X' - eixo horizontal\n"
+"- 'Y' - eixo vertical ou\n"
+"- 'Angle' - um ângulo personalizado para a inclinação da ranhura"
+
+#: AppEditors/FlatCAMExcEditor.py:1877
+msgid ""
+"Angle at which the slot is placed.\n"
+"The precision is of max 2 decimals.\n"
+"Min value is: -360 degrees.\n"
+"Max value is: 360.00 degrees."
+msgstr ""
+"Ângulo no qual a ranhura é colocada.\n"
+"A precisão é de no máximo 2 decimais.\n"
+"Valor mínimo: -360.00 graus.\n"
+"Valor máximo: 360.00 graus."
+
+#: AppEditors/FlatCAMExcEditor.py:1910
+msgid "Slot Array Parameters"
+msgstr "Parâm. da matriz de ranhuras"
+
+#: AppEditors/FlatCAMExcEditor.py:1912
+msgid "Parameters for the array of slots (linear or circular array)"
+msgstr "Parâmetros da matriz de ranhuras (matriz linear ou circular)"
+
+#: AppEditors/FlatCAMExcEditor.py:1921
+msgid ""
+"Select the type of slot array to create.\n"
+"It can be Linear X(Y) or Circular"
+msgstr ""
+"Selecione o tipo de matriz de ranhuras para criar.\n"
+"Pode ser Linear X(Y) ou Circular"
+
+#: AppEditors/FlatCAMExcEditor.py:1933
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:219
+msgid "Nr of slots"
+msgstr "Nº de ranhuras"
+
+#: AppEditors/FlatCAMExcEditor.py:1934
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:221
+msgid "Specify how many slots to be in the array."
+msgstr "Especifique o número de ranhuras da matriz."
+
+#: AppEditors/FlatCAMExcEditor.py:2452 AppObjects/FlatCAMExcellon.py:423
+msgid "Total Drills"
+msgstr "N° Furos"
+
+#: AppEditors/FlatCAMExcEditor.py:2484 AppObjects/FlatCAMExcellon.py:454
+msgid "Total Slots"
+msgstr "N° Ranhuras"
+
+#: AppEditors/FlatCAMExcEditor.py:2559 AppEditors/FlatCAMGeoEditor.py:1075
+#: AppEditors/FlatCAMGeoEditor.py:1116 AppEditors/FlatCAMGeoEditor.py:1144
+#: AppEditors/FlatCAMGeoEditor.py:1172 AppEditors/FlatCAMGeoEditor.py:1216
+#: AppEditors/FlatCAMGeoEditor.py:1251 AppEditors/FlatCAMGeoEditor.py:1279
+#: AppObjects/FlatCAMGeometry.py:656 AppObjects/FlatCAMGeometry.py:1090
+#: AppObjects/FlatCAMGeometry.py:1830 AppObjects/FlatCAMGeometry.py:2480
+#: AppTools/ToolNCC.py:1498 AppTools/ToolPaint.py:1248
+#: AppTools/ToolPaint.py:1419 AppTools/ToolSolderPaste.py:883
+#: AppTools/ToolSolderPaste.py:956
+msgid "Wrong value format entered, use a number."
+msgstr "Formato incorreto, use um número."
+
+#: AppEditors/FlatCAMExcEditor.py:2570
+msgid ""
+"Tool already in the original or actual tool list.\n"
+"Save and reedit Excellon if you need to add this tool. "
+msgstr ""
+"Ferramenta já na lista de ferramentas original ou atual.\n"
+"Salve e reedite Excellon se precisar adicionar essa ferramenta. "
+
+#: AppEditors/FlatCAMExcEditor.py:2579 AppGUI/MainGUI.py:3318
+msgid "Added new tool with dia"
+msgstr "Adicionada nova ferramenta com diâmetro"
+
+#: AppEditors/FlatCAMExcEditor.py:2612
+msgid "Select a tool in Tool Table"
+msgstr "Selecione uma ferramenta na Tabela de Ferramentas"
+
+#: AppEditors/FlatCAMExcEditor.py:2642
+msgid "Deleted tool with diameter"
+msgstr "Ferramenta excluída com diâmetro"
+
+#: AppEditors/FlatCAMExcEditor.py:2790
+msgid "Done. Tool edit completed."
+msgstr "Edição de ferramenta concluída."
+
+#: AppEditors/FlatCAMExcEditor.py:3327
+msgid "There are no Tools definitions in the file. Aborting Excellon creation."
+msgstr ""
+"Não há definições de ferramentas no arquivo. Abortando a criação do Excellon."
+
+#: AppEditors/FlatCAMExcEditor.py:3331
+msgid "An internal error has ocurred. See Shell.\n"
+msgstr "Ocorreu um erro interno. Veja shell (linha de comando).\n"
+
+#: AppEditors/FlatCAMExcEditor.py:3336
+msgid "Creating Excellon."
+msgstr "Criando Excellon."
+
+#: AppEditors/FlatCAMExcEditor.py:3348
+msgid "Excellon editing finished."
+msgstr "Edição de Excellon concluída."
+
+#: AppEditors/FlatCAMExcEditor.py:3365
+msgid "Cancelled. There is no Tool/Drill selected"
+msgstr "Cancelado. Não há ferramenta/broca selecionada"
+
+#: AppEditors/FlatCAMExcEditor.py:3599 AppEditors/FlatCAMExcEditor.py:3607
+#: AppEditors/FlatCAMGeoEditor.py:4343 AppEditors/FlatCAMGeoEditor.py:4357
+#: AppEditors/FlatCAMGrbEditor.py:1085 AppEditors/FlatCAMGrbEditor.py:1202
+#: AppEditors/FlatCAMGrbEditor.py:1488 AppEditors/FlatCAMGrbEditor.py:1757
+#: AppEditors/FlatCAMGrbEditor.py:4595 AppEditors/FlatCAMGrbEditor.py:4610
+#: AppGUI/MainGUI.py:2671 AppGUI/MainGUI.py:2683
+#: AppTools/ToolAlignObjects.py:393 AppTools/ToolAlignObjects.py:415
+#: App_Main.py:4649 App_Main.py:4803
+msgid "Done."
+msgstr "Pronto."
+
+#: AppEditors/FlatCAMExcEditor.py:3982
+msgid "Done. Drill(s) deleted."
+msgstr "Furo(s) excluída(s)."
+
+#: AppEditors/FlatCAMExcEditor.py:4055 AppEditors/FlatCAMExcEditor.py:4065
+#: AppEditors/FlatCAMGrbEditor.py:5041
+msgid "Click on the circular array Center position"
+msgstr "Clique na posição central da matriz circular"
+
+#: AppEditors/FlatCAMGeoEditor.py:84
+msgid "Buffer distance:"
+msgstr "Distância do buffer:"
+
+#: AppEditors/FlatCAMGeoEditor.py:85
+msgid "Buffer corner:"
+msgstr "Canto do buffer:"
+
+#: AppEditors/FlatCAMGeoEditor.py:87
+msgid ""
+"There are 3 types of corners:\n"
+" - 'Round': the corner is rounded for exterior buffer.\n"
+" - 'Square': the corner is met in a sharp angle for exterior buffer.\n"
+" - 'Beveled': the corner is a line that directly connects the features "
+"meeting in the corner"
+msgstr ""
+"Existem 3 tipos de cantos:\n"
+"- 'Redondo': o canto é arredondado para buffer externo.\n"
+"- 'Quadrado:' o canto é em um ângulo agudo para buffer externo.\n"
+"- 'Chanfrado:' o canto é uma linha que conecta diretamente os recursos "
+"encontrados no canto"
+
+#: AppEditors/FlatCAMGeoEditor.py:93 AppEditors/FlatCAMGrbEditor.py:2629
+msgid "Round"
+msgstr "Redondo"
+
+#: AppEditors/FlatCAMGeoEditor.py:94 AppEditors/FlatCAMGrbEditor.py:2630
+#: AppGUI/ObjectUI.py:1370 AppGUI/ObjectUI.py:2204
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:217
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:68
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:175
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:68
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:177
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:143
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:291
+#: AppTools/ToolExtractDrills.py:94 AppTools/ToolExtractDrills.py:227
+#: AppTools/ToolNCC.py:583 AppTools/ToolPaint.py:526
+#: AppTools/ToolPunchGerber.py:105 AppTools/ToolPunchGerber.py:255
+#: AppTools/ToolQRCode.py:198
+msgid "Square"
+msgstr "Quadrado"
+
+#: AppEditors/FlatCAMGeoEditor.py:95 AppEditors/FlatCAMGrbEditor.py:2631
+msgid "Beveled"
+msgstr "Chanfrado"
+
+#: AppEditors/FlatCAMGeoEditor.py:102
+msgid "Buffer Interior"
+msgstr "Buffer Interior"
+
+#: AppEditors/FlatCAMGeoEditor.py:104
+msgid "Buffer Exterior"
+msgstr "Buffer Exterior"
+
+#: AppEditors/FlatCAMGeoEditor.py:110
+msgid "Full Buffer"
+msgstr "Buffer Completo"
+
+#: AppEditors/FlatCAMGeoEditor.py:131 AppEditors/FlatCAMGeoEditor.py:3016
+#: AppGUI/MainGUI.py:4220
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:190
+msgid "Buffer Tool"
+msgstr "Ferramenta Buffer"
+
+#: AppEditors/FlatCAMGeoEditor.py:143 AppEditors/FlatCAMGeoEditor.py:160
+#: AppEditors/FlatCAMGeoEditor.py:177 AppEditors/FlatCAMGeoEditor.py:3035
+#: AppEditors/FlatCAMGeoEditor.py:3063 AppEditors/FlatCAMGeoEditor.py:3091
+#: AppEditors/FlatCAMGrbEditor.py:5094
+msgid "Buffer distance value is missing or wrong format. Add it and retry."
+msgstr ""
+"O valor da distância do buffer está ausente ou em formato incorreto. Altere "
+"e tente novamente."
+
+#: AppEditors/FlatCAMGeoEditor.py:241
+msgid "Font"
+msgstr "Fonte"
+
+#: AppEditors/FlatCAMGeoEditor.py:322 AppGUI/MainGUI.py:1411
+msgid "Text"
+msgstr "Texto"
+
+#: AppEditors/FlatCAMGeoEditor.py:348
+msgid "Text Tool"
+msgstr "Ferramenta de Texto"
+
+#: AppEditors/FlatCAMGeoEditor.py:404 AppGUI/MainGUI.py:513
+#: AppGUI/MainGUI.py:1158 AppGUI/ObjectUI.py:818 AppGUI/ObjectUI.py:1764
+#: AppObjects/FlatCAMExcellon.py:821 AppObjects/FlatCAMExcellon.py:1163
+#: AppObjects/FlatCAMGeometry.py:816 AppTools/ToolNCC.py:331
+#: AppTools/ToolNCC.py:797 AppTools/ToolPaint.py:313 AppTools/ToolPaint.py:766
+msgid "Tool"
+msgstr "Ferramenta"
+
+#: AppEditors/FlatCAMGeoEditor.py:438 AppGUI/ObjectUI.py:364
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:43
+msgid "Tool dia"
+msgstr "Diâmetro da Ferramenta"
+
+#: AppEditors/FlatCAMGeoEditor.py:440
+msgid "Diameter of the tool to be used in the operation."
+msgstr "Diâmetro da ferramenta para usar na operação."
+
+#: AppEditors/FlatCAMGeoEditor.py:486
+msgid ""
+"Algorithm to paint the polygons:\n"
+"- Standard: Fixed step inwards.\n"
+"- Seed-based: Outwards from seed.\n"
+"- Line-based: Parallel lines."
+msgstr ""
+"Algoritmo para pintura:\n"
+"- Padrão: Passo fixo para dentro.\n"
+"- Baseado em semeste: Para fora a partir de uma semente.\n"
+"- Linhas retas: Linhas paralelas."
+
+#: AppEditors/FlatCAMGeoEditor.py:505
+msgid "Connect:"
+msgstr "Conectar:"
+
+#: AppEditors/FlatCAMGeoEditor.py:515
+msgid "Contour:"
+msgstr "Contorno:"
+
+#: AppEditors/FlatCAMGeoEditor.py:528 AppGUI/MainGUI.py:1415
+msgid "Paint"
+msgstr "Pintura"
+
+#: AppEditors/FlatCAMGeoEditor.py:546 AppGUI/MainGUI.py:917
+#: AppGUI/MainGUI.py:1910 AppGUI/ObjectUI.py:2269 AppTools/ToolPaint.py:42
+#: AppTools/ToolPaint.py:737
+msgid "Paint Tool"
+msgstr "Ferramenta de Pintura"
+
+#: AppEditors/FlatCAMGeoEditor.py:582 AppEditors/FlatCAMGeoEditor.py:1054
+#: AppEditors/FlatCAMGeoEditor.py:3023 AppEditors/FlatCAMGeoEditor.py:3051
+#: AppEditors/FlatCAMGeoEditor.py:3079 AppEditors/FlatCAMGeoEditor.py:4496
+#: AppEditors/FlatCAMGrbEditor.py:5745
+msgid "Cancelled. No shape selected."
+msgstr "Cancelado. Nenhuma forma selecionada."
+
+#: AppEditors/FlatCAMGeoEditor.py:595 AppEditors/FlatCAMGeoEditor.py:3041
+#: AppEditors/FlatCAMGeoEditor.py:3069 AppEditors/FlatCAMGeoEditor.py:3097
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:59
+#: AppTools/ToolProperties.py:117 AppTools/ToolProperties.py:162
+msgid "Tools"
+msgstr "Ferramentas"
+
+#: AppEditors/FlatCAMGeoEditor.py:606 AppEditors/FlatCAMGeoEditor.py:990
+#: AppEditors/FlatCAMGrbEditor.py:5284 AppEditors/FlatCAMGrbEditor.py:5681
+#: AppGUI/MainGUI.py:938 AppGUI/MainGUI.py:1931 AppTools/ToolTransform.py:460
+msgid "Transform Tool"
+msgstr "Ferramenta Transformar"
+
+#: AppEditors/FlatCAMGeoEditor.py:607 AppEditors/FlatCAMGeoEditor.py:672
+#: AppEditors/FlatCAMGrbEditor.py:5285 AppEditors/FlatCAMGrbEditor.py:5350
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:45
+#: AppTools/ToolTransform.py:24 AppTools/ToolTransform.py:466
+msgid "Rotate"
+msgstr "Girar"
+
+#: AppEditors/FlatCAMGeoEditor.py:608 AppEditors/FlatCAMGrbEditor.py:5286
+#: AppTools/ToolTransform.py:25
+msgid "Skew/Shear"
+msgstr "Inclinar"
+
+#: AppEditors/FlatCAMGeoEditor.py:609 AppEditors/FlatCAMGrbEditor.py:2678
+#: AppEditors/FlatCAMGrbEditor.py:5287 AppGUI/MainGUI.py:1060
+#: AppGUI/MainGUI.py:1458 AppGUI/MainGUI.py:2053 AppGUI/MainGUI.py:4432
+#: AppGUI/ObjectUI.py:125
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:95
+#: AppTools/ToolTransform.py:26
+msgid "Scale"
+msgstr "Redimensionar"
+
+#: AppEditors/FlatCAMGeoEditor.py:610 AppEditors/FlatCAMGrbEditor.py:5288
+#: AppTools/ToolTransform.py:27
+msgid "Mirror (Flip)"
+msgstr "Espelhar (Flip)"
+
+#: AppEditors/FlatCAMGeoEditor.py:624 AppEditors/FlatCAMGrbEditor.py:5302
+#: AppGUI/MainGUI.py:849 AppGUI/MainGUI.py:1844
+msgid "Editor"
+msgstr "Editor"
+
+#: AppEditors/FlatCAMGeoEditor.py:656 AppEditors/FlatCAMGrbEditor.py:5334
+msgid "Angle:"
+msgstr "Ângulo:"
+
+#: AppEditors/FlatCAMGeoEditor.py:658 AppEditors/FlatCAMGrbEditor.py:5336
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:55
+#: AppTools/ToolTransform.py:62
+msgid ""
+"Angle for Rotation action, in degrees.\n"
+"Float number between -360 and 359.\n"
+"Positive numbers for CW motion.\n"
+"Negative numbers for CCW motion."
+msgstr ""
+"Ângulo para a ação Rotação, em graus. \n"
+"Número flutuante entre -360 e 359. \n"
+"Números positivos para movimento horário. \n"
+"Números negativos para movimento anti-horário."
+
+#: AppEditors/FlatCAMGeoEditor.py:674 AppEditors/FlatCAMGrbEditor.py:5352
+msgid ""
+"Rotate the selected shape(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected shapes."
+msgstr ""
+"Gira a(s) forma(s) selecionada(s). \n"
+"O ponto de referência é o meio da caixa\n"
+"delimitadora para todas as formas selecionadas."
+
+#: AppEditors/FlatCAMGeoEditor.py:697 AppEditors/FlatCAMGrbEditor.py:5375
+msgid "Angle X:"
+msgstr "Ângulo X:"
+
+#: AppEditors/FlatCAMGeoEditor.py:699 AppEditors/FlatCAMGeoEditor.py:719
+#: AppEditors/FlatCAMGrbEditor.py:5377 AppEditors/FlatCAMGrbEditor.py:5397
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:74
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:88
+#: AppTools/ToolCalibration.py:505 AppTools/ToolCalibration.py:518
+msgid ""
+"Angle for Skew action, in degrees.\n"
+"Float number between -360 and 359."
+msgstr ""
+"Ângulo de inclinação, em graus.\n"
+"Número flutuante entre -360 e 359."
+
+#: AppEditors/FlatCAMGeoEditor.py:710 AppEditors/FlatCAMGrbEditor.py:5388
+#: AppTools/ToolTransform.py:467
+msgid "Skew X"
+msgstr "Inclinar X"
+
+#: AppEditors/FlatCAMGeoEditor.py:712 AppEditors/FlatCAMGeoEditor.py:732
+#: AppEditors/FlatCAMGrbEditor.py:5390 AppEditors/FlatCAMGrbEditor.py:5410
+msgid ""
+"Skew/shear the selected shape(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected shapes."
+msgstr ""
+"Inclinar/distorcer a(s) forma(s) selecionada(s).\n"
+"O ponto de referência é o meio da caixa\n"
+"delimitadora para todas as formas selecionadas."
+
+#: AppEditors/FlatCAMGeoEditor.py:717 AppEditors/FlatCAMGrbEditor.py:5395
+msgid "Angle Y:"
+msgstr "Ângulo Y:"
+
+#: AppEditors/FlatCAMGeoEditor.py:730 AppEditors/FlatCAMGrbEditor.py:5408
+#: AppTools/ToolTransform.py:468
+msgid "Skew Y"
+msgstr "Inclinar Y"
+
+#: AppEditors/FlatCAMGeoEditor.py:758 AppEditors/FlatCAMGrbEditor.py:5436
+msgid "Factor X:"
+msgstr "Fator X:"
+
+#: AppEditors/FlatCAMGeoEditor.py:760 AppEditors/FlatCAMGrbEditor.py:5438
+#: AppTools/ToolCalibration.py:469
+msgid "Factor for Scale action over X axis."
+msgstr "Fator de escala sobre o eixo X."
+
+#: AppEditors/FlatCAMGeoEditor.py:770 AppEditors/FlatCAMGrbEditor.py:5448
+#: AppTools/ToolTransform.py:469
+msgid "Scale X"
+msgstr "Redimensionar X"
+
+#: AppEditors/FlatCAMGeoEditor.py:772 AppEditors/FlatCAMGeoEditor.py:791
+#: AppEditors/FlatCAMGrbEditor.py:5450 AppEditors/FlatCAMGrbEditor.py:5469
+msgid ""
+"Scale the selected shape(s).\n"
+"The point of reference depends on \n"
+"the Scale reference checkbox state."
+msgstr ""
+"Redimensiona a(s) forma(s) selecionada(s).\n"
+"O ponto de referência depende\n"
+"do estado da caixa de seleção."
+
+#: AppEditors/FlatCAMGeoEditor.py:777 AppEditors/FlatCAMGrbEditor.py:5455
+msgid "Factor Y:"
+msgstr "Fator Y:"
+
+#: AppEditors/FlatCAMGeoEditor.py:779 AppEditors/FlatCAMGrbEditor.py:5457
+#: AppTools/ToolCalibration.py:481
+msgid "Factor for Scale action over Y axis."
+msgstr "Fator para ação de escala no eixo Y."
+
+#: AppEditors/FlatCAMGeoEditor.py:789 AppEditors/FlatCAMGrbEditor.py:5467
+#: AppTools/ToolTransform.py:470
+msgid "Scale Y"
+msgstr "Redimensionar Y"
+
+#: AppEditors/FlatCAMGeoEditor.py:798 AppEditors/FlatCAMGrbEditor.py:5476
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:124
+#: AppTools/ToolTransform.py:189
+msgid "Link"
+msgstr "Fixar Taxa"
+
+#: AppEditors/FlatCAMGeoEditor.py:800 AppEditors/FlatCAMGrbEditor.py:5478
+msgid ""
+"Scale the selected shape(s)\n"
+"using the Scale Factor X for both axis."
+msgstr ""
+"Redimensiona a(s) forma(s) selecionada(s)\n"
+"usando o Fator de Escala X para ambos os eixos."
+
+#: AppEditors/FlatCAMGeoEditor.py:806 AppEditors/FlatCAMGrbEditor.py:5484
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:132
+#: AppTools/ToolTransform.py:196
+msgid "Scale Reference"
+msgstr "Referência de escala"
+
+#: AppEditors/FlatCAMGeoEditor.py:808 AppEditors/FlatCAMGrbEditor.py:5486
+msgid ""
+"Scale the selected shape(s)\n"
+"using the origin reference when checked,\n"
+"and the center of the biggest bounding box\n"
+"of the selected shapes when unchecked."
+msgstr ""
+"Redimensiona a(s) forma(s) selecionada(s)\n"
+"usando a referência de origem quando marcada,\n"
+"e o centro da maior caixa delimitadora\n"
+"de formas selecionadas quando desmarcado."
+
+#: AppEditors/FlatCAMGeoEditor.py:836 AppEditors/FlatCAMGrbEditor.py:5515
+msgid "Value X:"
+msgstr "Valor X:"
+
+#: AppEditors/FlatCAMGeoEditor.py:838 AppEditors/FlatCAMGrbEditor.py:5517
+msgid "Value for Offset action on X axis."
+msgstr "Valor para o deslocamento no eixo X."
+
+#: AppEditors/FlatCAMGeoEditor.py:848 AppEditors/FlatCAMGrbEditor.py:5527
+#: AppTools/ToolTransform.py:473
+msgid "Offset X"
+msgstr "Deslocar X"
+
+#: AppEditors/FlatCAMGeoEditor.py:850 AppEditors/FlatCAMGeoEditor.py:870
+#: AppEditors/FlatCAMGrbEditor.py:5529 AppEditors/FlatCAMGrbEditor.py:5549
+msgid ""
+"Offset the selected shape(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected shapes.\n"
+msgstr ""
+"Desloca a(s) forma(s) selecionada(s).\n"
+"O ponto de referência é o meio da\n"
+"caixa delimitadora para todas as formas selecionadas.\n"
+
+#: AppEditors/FlatCAMGeoEditor.py:856 AppEditors/FlatCAMGrbEditor.py:5535
+msgid "Value Y:"
+msgstr "Valor Y:"
+
+#: AppEditors/FlatCAMGeoEditor.py:858 AppEditors/FlatCAMGrbEditor.py:5537
+msgid "Value for Offset action on Y axis."
+msgstr "Valor para a ação de deslocamento no eixo Y."
+
+#: AppEditors/FlatCAMGeoEditor.py:868 AppEditors/FlatCAMGrbEditor.py:5547
+#: AppTools/ToolTransform.py:474
+msgid "Offset Y"
+msgstr "Deslocar Y"
+
+#: AppEditors/FlatCAMGeoEditor.py:899 AppEditors/FlatCAMGrbEditor.py:5578
+#: AppTools/ToolTransform.py:475
+msgid "Flip on X"
+msgstr "Espelhar no X"
+
+#: AppEditors/FlatCAMGeoEditor.py:901 AppEditors/FlatCAMGeoEditor.py:908
+#: AppEditors/FlatCAMGrbEditor.py:5580 AppEditors/FlatCAMGrbEditor.py:5587
+msgid ""
+"Flip the selected shape(s) over the X axis.\n"
+"Does not create a new shape."
+msgstr ""
+"Espelha as formas selecionadas sobre o eixo X.\n"
+"Não cria uma nova forma."
+
+#: AppEditors/FlatCAMGeoEditor.py:906 AppEditors/FlatCAMGrbEditor.py:5585
+#: AppTools/ToolTransform.py:476
+msgid "Flip on Y"
+msgstr "Espelhar no Y"
+
+#: AppEditors/FlatCAMGeoEditor.py:914 AppEditors/FlatCAMGrbEditor.py:5593
+msgid "Ref Pt"
+msgstr "Ponto de Referência"
+
+#: AppEditors/FlatCAMGeoEditor.py:916 AppEditors/FlatCAMGrbEditor.py:5595
+msgid ""
+"Flip the selected shape(s)\n"
+"around the point in Point Entry Field.\n"
+"\n"
+"The point coordinates can be captured by\n"
+"left click on canvas together with pressing\n"
+"SHIFT key. \n"
+"Then click Add button to insert coordinates.\n"
+"Or enter the coords in format (x, y) in the\n"
+"Point Entry field and click Flip on X(Y)"
+msgstr ""
+"Espelha a(s) forma(s) selecionada(s)\n"
+"em relação às coordenadas abaixo.\n"
+"\n"
+"As coordenadas do ponto podem ser inseridas:\n"
+"- com clique no botão esquerdo junto com a tecla\n"
+" SHIFT pressionada, e clicar no botão Adicionar.\n"
+"- ou digitar as coordenadas no formato (x, y) no campo\n"
+" Ponto de Ref. e clicar em Espelhar no X(Y)"
+
+#: AppEditors/FlatCAMGeoEditor.py:928 AppEditors/FlatCAMGrbEditor.py:5607
+msgid "Point:"
+msgstr "Ponto:"
+
+#: AppEditors/FlatCAMGeoEditor.py:930 AppEditors/FlatCAMGrbEditor.py:5609
+#: AppTools/ToolTransform.py:299
+msgid ""
+"Coordinates in format (x, y) used as reference for mirroring.\n"
+"The 'x' in (x, y) will be used when using Flip on X and\n"
+"the 'y' in (x, y) will be used when using Flip on Y."
+msgstr ""
+"Coordenadas no formato (x, y) usadas como referência para espelhamento. \n"
+"O 'x' em (x, y) será usado ao usar Espelhar em X e\n"
+"o 'y' em (x, y) será usado ao usar Espelhar em Y."
+
+#: AppEditors/FlatCAMGeoEditor.py:938 AppEditors/FlatCAMGrbEditor.py:2581
+#: AppEditors/FlatCAMGrbEditor.py:5619 AppGUI/ObjectUI.py:1697
+#: AppTools/ToolDblSided.py:192 AppTools/ToolDblSided.py:425
+#: AppTools/ToolNCC.py:294 AppTools/ToolNCC.py:631 AppTools/ToolPaint.py:276
+#: AppTools/ToolPaint.py:675 AppTools/ToolSolderPaste.py:122
+#: AppTools/ToolSolderPaste.py:597 AppTools/ToolTransform.py:478
+#: App_Main.py:5593
+msgid "Add"
+msgstr "Adicionar"
+
+#: AppEditors/FlatCAMGeoEditor.py:940 AppEditors/FlatCAMGrbEditor.py:5621
+#: AppTools/ToolTransform.py:309
+msgid ""
+"The point coordinates can be captured by\n"
+"left click on canvas together with pressing\n"
+"SHIFT key. Then click Add button to insert."
+msgstr ""
+"As coordenadas do ponto podem ser capturadas por\n"
+"botão esquerdo na tela junto com a tecla\n"
+"SHIFT pressionada. Em seguida, clique no botão Adicionar para inserir."
+
+#: AppEditors/FlatCAMGeoEditor.py:1303 AppEditors/FlatCAMGrbEditor.py:5929
+msgid "No shape selected. Please Select a shape to rotate!"
+msgstr "Nenhuma forma selecionada. Por favor, selecione uma forma para girar!"
+
+#: AppEditors/FlatCAMGeoEditor.py:1306 AppEditors/FlatCAMGrbEditor.py:5932
+#: AppTools/ToolTransform.py:679
+msgid "Appying Rotate"
+msgstr "Aplicando Girar"
+
+#: AppEditors/FlatCAMGeoEditor.py:1332 AppEditors/FlatCAMGrbEditor.py:5964
+msgid "Done. Rotate completed."
+msgstr "Girar concluído."
+
+#: AppEditors/FlatCAMGeoEditor.py:1334
+msgid "Rotation action was not executed"
+msgstr "O giro não foi executado"
+
+#: AppEditors/FlatCAMGeoEditor.py:1353 AppEditors/FlatCAMGrbEditor.py:5983
+msgid "No shape selected. Please Select a shape to flip!"
+msgstr ""
+"Nenhuma forma selecionada. Por favor, selecione uma forma para espelhar!"
+
+#: AppEditors/FlatCAMGeoEditor.py:1356 AppEditors/FlatCAMGrbEditor.py:5986
+#: AppTools/ToolTransform.py:728
+msgid "Applying Flip"
+msgstr "Aplicando Espelhamento"
+
+#: AppEditors/FlatCAMGeoEditor.py:1385 AppEditors/FlatCAMGrbEditor.py:6024
+#: AppTools/ToolTransform.py:769
+msgid "Flip on the Y axis done"
+msgstr "Concluído o espelhamento no eixo Y"
+
+#: AppEditors/FlatCAMGeoEditor.py:1389 AppEditors/FlatCAMGrbEditor.py:6033
+#: AppTools/ToolTransform.py:778
+msgid "Flip on the X axis done"
+msgstr "Concluído o espelhamento no eixo Y"
+
+#: AppEditors/FlatCAMGeoEditor.py:1397
+msgid "Flip action was not executed"
+msgstr "O espelhamento não foi executado"
+
+#: AppEditors/FlatCAMGeoEditor.py:1415 AppEditors/FlatCAMGrbEditor.py:6053
+msgid "No shape selected. Please Select a shape to shear/skew!"
+msgstr ""
+"Nenhuma forma selecionada. Por favor, selecione uma forma para inclinar!"
+
+#: AppEditors/FlatCAMGeoEditor.py:1418 AppEditors/FlatCAMGrbEditor.py:6056
+#: AppTools/ToolTransform.py:801
+msgid "Applying Skew"
+msgstr "Inclinando"
+
+#: AppEditors/FlatCAMGeoEditor.py:1441 AppEditors/FlatCAMGrbEditor.py:6090
+msgid "Skew on the X axis done"
+msgstr "Inclinação no eixo X concluída"
+
+#: AppEditors/FlatCAMGeoEditor.py:1443 AppEditors/FlatCAMGrbEditor.py:6092
+msgid "Skew on the Y axis done"
+msgstr "Inclinação no eixo Y concluída"
+
+#: AppEditors/FlatCAMGeoEditor.py:1446
+msgid "Skew action was not executed"
+msgstr "A inclinação não foi executada"
+
+#: AppEditors/FlatCAMGeoEditor.py:1468 AppEditors/FlatCAMGrbEditor.py:6114
+msgid "No shape selected. Please Select a shape to scale!"
+msgstr ""
+"Nenhuma forma selecionada. Por favor, selecione uma forma para redimensionar!"
+
+#: AppEditors/FlatCAMGeoEditor.py:1471 AppEditors/FlatCAMGrbEditor.py:6117
+#: AppTools/ToolTransform.py:847
+msgid "Applying Scale"
+msgstr "Redimensionando"
+
+#: AppEditors/FlatCAMGeoEditor.py:1503 AppEditors/FlatCAMGrbEditor.py:6154
+msgid "Scale on the X axis done"
+msgstr "Redimensionamento no eixo X concluído"
+
+#: AppEditors/FlatCAMGeoEditor.py:1505 AppEditors/FlatCAMGrbEditor.py:6156
+msgid "Scale on the Y axis done"
+msgstr "Redimensionamento no eixo Y concluído"
+
+#: AppEditors/FlatCAMGeoEditor.py:1507
+msgid "Scale action was not executed"
+msgstr "O redimensionamento não foi executado"
+
+#: AppEditors/FlatCAMGeoEditor.py:1522 AppEditors/FlatCAMGrbEditor.py:6173
+msgid "No shape selected. Please Select a shape to offset!"
+msgstr ""
+"Nenhuma forma selecionada. Por favor, selecione uma forma para deslocar!"
+
+#: AppEditors/FlatCAMGeoEditor.py:1525 AppEditors/FlatCAMGrbEditor.py:6176
+#: AppTools/ToolTransform.py:897
+msgid "Applying Offset"
+msgstr "Deslocando"
+
+#: AppEditors/FlatCAMGeoEditor.py:1535 AppEditors/FlatCAMGrbEditor.py:6197
+msgid "Offset on the X axis done"
+msgstr "Deslocamento no eixo X concluído"
+
+#: AppEditors/FlatCAMGeoEditor.py:1537 AppEditors/FlatCAMGrbEditor.py:6199
+msgid "Offset on the Y axis done"
+msgstr "Deslocamento no eixo Y concluído"
+
+#: AppEditors/FlatCAMGeoEditor.py:1540
+msgid "Offset action was not executed"
+msgstr "O deslocamento não foi executado"
+
+#: AppEditors/FlatCAMGeoEditor.py:1544 AppEditors/FlatCAMGrbEditor.py:6206
+msgid "Rotate ..."
+msgstr "Girar ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:1545 AppEditors/FlatCAMGeoEditor.py:1600
+#: AppEditors/FlatCAMGeoEditor.py:1617 AppEditors/FlatCAMGrbEditor.py:6207
+#: AppEditors/FlatCAMGrbEditor.py:6256 AppEditors/FlatCAMGrbEditor.py:6271
+msgid "Enter an Angle Value (degrees)"
+msgstr "Digite um valor para o ângulo (graus)"
+
+#: AppEditors/FlatCAMGeoEditor.py:1554 AppEditors/FlatCAMGrbEditor.py:6215
+msgid "Geometry shape rotate done"
+msgstr "Rotação da geometria concluída"
+
+#: AppEditors/FlatCAMGeoEditor.py:1558 AppEditors/FlatCAMGrbEditor.py:6218
+msgid "Geometry shape rotate cancelled"
+msgstr "Rotação da geometria cancelada"
+
+#: AppEditors/FlatCAMGeoEditor.py:1563 AppEditors/FlatCAMGrbEditor.py:6223
+msgid "Offset on X axis ..."
+msgstr "Deslocamento no eixo X ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:1564 AppEditors/FlatCAMGeoEditor.py:1583
+#: AppEditors/FlatCAMGrbEditor.py:6224 AppEditors/FlatCAMGrbEditor.py:6241
+msgid "Enter a distance Value"
+msgstr "Digite um valor para a distância"
+
+#: AppEditors/FlatCAMGeoEditor.py:1573 AppEditors/FlatCAMGrbEditor.py:6232
+msgid "Geometry shape offset on X axis done"
+msgstr "Deslocamento da forma no eixo X concluído"
+
+#: AppEditors/FlatCAMGeoEditor.py:1577 AppEditors/FlatCAMGrbEditor.py:6235
+msgid "Geometry shape offset X cancelled"
+msgstr "Deslocamento da forma no eixo X cancelado"
+
+#: AppEditors/FlatCAMGeoEditor.py:1582 AppEditors/FlatCAMGrbEditor.py:6240
+msgid "Offset on Y axis ..."
+msgstr "Deslocamento no eixo Y ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:1592 AppEditors/FlatCAMGrbEditor.py:6249
+msgid "Geometry shape offset on Y axis done"
+msgstr "Deslocamento da forma no eixo Y concluído"
+
+#: AppEditors/FlatCAMGeoEditor.py:1596
+msgid "Geometry shape offset on Y axis canceled"
+msgstr "Deslocamento da forma no eixo Y cancelado"
+
+#: AppEditors/FlatCAMGeoEditor.py:1599 AppEditors/FlatCAMGrbEditor.py:6255
+msgid "Skew on X axis ..."
+msgstr "Inclinação no eixo X ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:1609 AppEditors/FlatCAMGrbEditor.py:6264
+msgid "Geometry shape skew on X axis done"
+msgstr "Inclinação no eixo X concluída"
+
+#: AppEditors/FlatCAMGeoEditor.py:1613
+msgid "Geometry shape skew on X axis canceled"
+msgstr "Inclinação no eixo X cancelada"
+
+#: AppEditors/FlatCAMGeoEditor.py:1616 AppEditors/FlatCAMGrbEditor.py:6270
+msgid "Skew on Y axis ..."
+msgstr "Inclinação no eixo Y ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:1626 AppEditors/FlatCAMGrbEditor.py:6279
+msgid "Geometry shape skew on Y axis done"
+msgstr "Inclinação no eixo Y concluída"
+
+#: AppEditors/FlatCAMGeoEditor.py:1630
+msgid "Geometry shape skew on Y axis canceled"
+msgstr "Inclinação no eixo Y cancelada"
+
+#: AppEditors/FlatCAMGeoEditor.py:2007 AppEditors/FlatCAMGeoEditor.py:2078
+#: AppEditors/FlatCAMGrbEditor.py:1435 AppEditors/FlatCAMGrbEditor.py:1513
+msgid "Click on Center point ..."
+msgstr "Clique no ponto central ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2020 AppEditors/FlatCAMGrbEditor.py:1445
+msgid "Click on Perimeter point to complete ..."
+msgstr "Clique no ponto Perímetro para completar ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2052
+msgid "Done. Adding Circle completed."
+msgstr "Círculo adicionado."
+
+#: AppEditors/FlatCAMGeoEditor.py:2106 AppEditors/FlatCAMGrbEditor.py:1546
+msgid "Click on Start point ..."
+msgstr "Clique no ponto inicial ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2108 AppEditors/FlatCAMGrbEditor.py:1548
+msgid "Click on Point3 ..."
+msgstr "Clique no ponto 3 ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2110 AppEditors/FlatCAMGrbEditor.py:1550
+msgid "Click on Stop point ..."
+msgstr "Clique no ponto de parada ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2115 AppEditors/FlatCAMGrbEditor.py:1555
+msgid "Click on Stop point to complete ..."
+msgstr "Clique no ponto de parada para completar ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2117 AppEditors/FlatCAMGrbEditor.py:1557
+msgid "Click on Point2 to complete ..."
+msgstr "Clique no ponto 2 para completar ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2119 AppEditors/FlatCAMGrbEditor.py:1559
+msgid "Click on Center point to complete ..."
+msgstr "Clique no ponto central para completar ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2131
+#, python-format
+msgid "Direction: %s"
+msgstr "Direção: %s"
+
+#: AppEditors/FlatCAMGeoEditor.py:2145 AppEditors/FlatCAMGrbEditor.py:1585
+msgid "Mode: Start -> Stop -> Center. Click on Start point ..."
+msgstr "Modo: Iniciar -> Parar -> Centro. Clique no ponto inicial ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2148 AppEditors/FlatCAMGrbEditor.py:1588
+msgid "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..."
+msgstr "Modo: Ponto 1 -> Ponto 3 -> Ponto 2. Clique no Ponto 1 ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2151 AppEditors/FlatCAMGrbEditor.py:1591
+msgid "Mode: Center -> Start -> Stop. Click on Center point ..."
+msgstr "Modo: Centro -> Iniciar -> Parar. Clique no ponto central ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2292
+msgid "Done. Arc completed."
+msgstr "Arco adicionado."
+
+#: AppEditors/FlatCAMGeoEditor.py:2323 AppEditors/FlatCAMGeoEditor.py:2396
+msgid "Click on 1st corner ..."
+msgstr "Clique no primeiro canto ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2335
+msgid "Click on opposite corner to complete ..."
+msgstr "Clique no canto oposto para completar ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2365
+msgid "Done. Rectangle completed."
+msgstr "Retângulo adicionado."
+
+#: AppEditors/FlatCAMGeoEditor.py:2409 AppTools/ToolNCC.py:1734
+#: AppTools/ToolPaint.py:1627 Common.py:303
+msgid "Click on next Point or click right mouse button to complete ..."
+msgstr ""
+"Clique no próximo ponto ou clique com o botão direito do mouse para "
+"completar ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2440
+msgid "Done. Polygon completed."
+msgstr "Polígono adicionado."
+
+#: AppEditors/FlatCAMGeoEditor.py:2454 AppEditors/FlatCAMGeoEditor.py:2519
+#: AppEditors/FlatCAMGrbEditor.py:1111 AppEditors/FlatCAMGrbEditor.py:1322
+msgid "Backtracked one point ..."
+msgstr "Retrocedeu um ponto ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2497
+msgid "Done. Path completed."
+msgstr "Caminho concluído."
+
+#: AppEditors/FlatCAMGeoEditor.py:2656
+msgid "No shape selected. Select a shape to explode"
+msgstr "Nenhuma forma selecionada. Selecione uma forma para explodir"
+
+#: AppEditors/FlatCAMGeoEditor.py:2689
+msgid "Done. Polygons exploded into lines."
+msgstr "Polígono explodido em linhas."
+
+#: AppEditors/FlatCAMGeoEditor.py:2721
+msgid "MOVE: No shape selected. Select a shape to move"
+msgstr "MOVER: Nenhuma forma selecionada. Selecione uma forma para mover"
+
+#: AppEditors/FlatCAMGeoEditor.py:2724 AppEditors/FlatCAMGeoEditor.py:2744
+msgid " MOVE: Click on reference point ..."
+msgstr " MOVER: Clique no ponto de referência ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2729
+msgid " Click on destination point ..."
+msgstr " Clique no ponto de destino ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2769
+msgid "Done. Geometry(s) Move completed."
+msgstr "Movimento de Geometria(s) concluído."
+
+#: AppEditors/FlatCAMGeoEditor.py:2902
+msgid "Done. Geometry(s) Copy completed."
+msgstr "Geometria(s) copiada(s)."
+
+#: AppEditors/FlatCAMGeoEditor.py:2933 AppEditors/FlatCAMGrbEditor.py:897
+msgid "Click on 1st point ..."
+msgstr "Clique no primeiro ponto ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:2957
+msgid ""
+"Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. "
+"Error"
+msgstr ""
+"Fonte não suportada. Apenas Regular, Bold, Italic e BoldItalic são "
+"suportados. Erro"
+
+#: AppEditors/FlatCAMGeoEditor.py:2965
+msgid "No text to add."
+msgstr "Nenhum texto para adicionar."
+
+#: AppEditors/FlatCAMGeoEditor.py:2975
+msgid " Done. Adding Text completed."
+msgstr " Texto adicionado."
+
+#: AppEditors/FlatCAMGeoEditor.py:3012
+msgid "Create buffer geometry ..."
+msgstr "Criar buffer de geometria ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:3047 AppEditors/FlatCAMGrbEditor.py:5138
+msgid "Done. Buffer Tool completed."
+msgstr "Buffer concluído."
+
+#: AppEditors/FlatCAMGeoEditor.py:3075
+msgid "Done. Buffer Int Tool completed."
+msgstr "Buffer Interno concluído."
+
+#: AppEditors/FlatCAMGeoEditor.py:3103
+msgid "Done. Buffer Ext Tool completed."
+msgstr "Buffer Externo concluído."
+
+#: AppEditors/FlatCAMGeoEditor.py:3152 AppEditors/FlatCAMGrbEditor.py:2151
+msgid "Select a shape to act as deletion area ..."
+msgstr "Selecione uma forma para atuar como área de exclusão ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:3154 AppEditors/FlatCAMGeoEditor.py:3180
+#: AppEditors/FlatCAMGeoEditor.py:3186 AppEditors/FlatCAMGrbEditor.py:2153
+msgid "Click to pick-up the erase shape..."
+msgstr "Clique para pegar a forma a apagar ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:3190 AppEditors/FlatCAMGrbEditor.py:2212
+msgid "Click to erase ..."
+msgstr "Clique para apagar ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:3219 AppEditors/FlatCAMGrbEditor.py:2245
+msgid "Done. Eraser tool action completed."
+msgstr "Apagado."
+
+#: AppEditors/FlatCAMGeoEditor.py:3269
+msgid "Create Paint geometry ..."
+msgstr "Criar geometria de pintura ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:3282 AppEditors/FlatCAMGrbEditor.py:2408
+msgid "Shape transformations ..."
+msgstr "Transformações de forma ..."
+
+#: AppEditors/FlatCAMGeoEditor.py:3338
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:27
+msgid "Geometry Editor"
+msgstr "Editor de Geometria"
+
+#: AppEditors/FlatCAMGeoEditor.py:3344 AppEditors/FlatCAMGrbEditor.py:2486
+#: AppEditors/FlatCAMGrbEditor.py:3943 AppGUI/ObjectUI.py:263
+#: AppGUI/ObjectUI.py:1599 AppGUI/ObjectUI.py:2456 AppTools/ToolCutOut.py:95
+msgid "Type"
+msgstr "Tipo"
+
+#: AppEditors/FlatCAMGeoEditor.py:3344 AppGUI/ObjectUI.py:218
+#: AppGUI/ObjectUI.py:742 AppGUI/ObjectUI.py:1535 AppGUI/ObjectUI.py:2365
+#: AppGUI/ObjectUI.py:2669 AppGUI/ObjectUI.py:2736
+#: AppTools/ToolCalibration.py:234 AppTools/ToolFiducials.py:73
+msgid "Name"
+msgstr "Nome"
+
+#: AppEditors/FlatCAMGeoEditor.py:3596
+msgid "Ring"
+msgstr "Anel"
+
+#: AppEditors/FlatCAMGeoEditor.py:3598
+msgid "Line"
+msgstr "Linha"
+
+#: AppEditors/FlatCAMGeoEditor.py:3600 AppGUI/MainGUI.py:1405
+#: AppGUI/ObjectUI.py:1371 AppGUI/ObjectUI.py:2205
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:218
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:328
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:292
+#: AppTools/ToolNCC.py:584 AppTools/ToolPaint.py:527
+msgid "Polygon"
+msgstr "Polígono"
+
+#: AppEditors/FlatCAMGeoEditor.py:3602
+msgid "Multi-Line"
+msgstr "Múlti-Linha"
+
+#: AppEditors/FlatCAMGeoEditor.py:3604
+msgid "Multi-Polygon"
+msgstr "Múlti-Polígono"
+
+#: AppEditors/FlatCAMGeoEditor.py:3611
+msgid "Geo Elem"
+msgstr "Elem Geo"
+
+#: AppEditors/FlatCAMGeoEditor.py:4064
+msgid "Editing MultiGeo Geometry, tool"
+msgstr "Editando Geometria MultiGeo, ferramenta"
+
+#: AppEditors/FlatCAMGeoEditor.py:4066
+msgid "with diameter"
+msgstr "com diâmetro"
+
+#: AppEditors/FlatCAMGeoEditor.py:4138
+#, fuzzy
+#| msgid "Workspace Settings"
+msgid "Grid snap enabled."
+msgstr "Configurações da área de trabalho"
+
+#: AppEditors/FlatCAMGeoEditor.py:4142
+#, fuzzy
+#| msgid "Grid X snapping distance"
+msgid "Grid snap disabled."
+msgstr "Distância de encaixe Grade X"
+
+#: AppEditors/FlatCAMGeoEditor.py:4503 AppGUI/MainGUI.py:3000
+#: AppGUI/MainGUI.py:3046 AppGUI/MainGUI.py:3064 AppGUI/MainGUI.py:3208
+#: AppGUI/MainGUI.py:3247 AppGUI/MainGUI.py:3259 AppGUI/MainGUI.py:3276
+msgid "Click on target point."
+msgstr "Clique no ponto alvo."
+
+#: AppEditors/FlatCAMGeoEditor.py:4817 AppEditors/FlatCAMGeoEditor.py:4852
+msgid "A selection of at least 2 geo items is required to do Intersection."
+msgstr ""
+"É necessária uma seleção de pelo menos 2 itens geométricos para fazer a "
+"interseção."
+
+#: AppEditors/FlatCAMGeoEditor.py:4938 AppEditors/FlatCAMGeoEditor.py:5042
+msgid ""
+"Negative buffer value is not accepted. Use Buffer interior to generate an "
+"'inside' shape"
+msgstr ""
+"Valor de buffer negativo não é aceito. Use o Buffer interior para gerar uma "
+"forma 'interna'"
+
+#: AppEditors/FlatCAMGeoEditor.py:4948 AppEditors/FlatCAMGeoEditor.py:5001
+#: AppEditors/FlatCAMGeoEditor.py:5051
+msgid "Nothing selected for buffering."
+msgstr "Nada selecionado para armazenamento em buffer."
+
+#: AppEditors/FlatCAMGeoEditor.py:4953 AppEditors/FlatCAMGeoEditor.py:5005
+#: AppEditors/FlatCAMGeoEditor.py:5056
+msgid "Invalid distance for buffering."
+msgstr "Distância inválida para armazenamento em buffer."
+
+#: AppEditors/FlatCAMGeoEditor.py:4977 AppEditors/FlatCAMGeoEditor.py:5076
+msgid "Failed, the result is empty. Choose a different buffer value."
+msgstr ""
+"Falhou, o resultado está vazio. Escolha um valor diferente para o buffer."
+
+#: AppEditors/FlatCAMGeoEditor.py:4988
+msgid "Full buffer geometry created."
+msgstr "Buffer de geometria completa criado."
+
+#: AppEditors/FlatCAMGeoEditor.py:4994
+msgid "Negative buffer value is not accepted."
+msgstr "Valor de buffer negativo não é aceito."
+
+#: AppEditors/FlatCAMGeoEditor.py:5025
+msgid "Failed, the result is empty. Choose a smaller buffer value."
+msgstr "Falhou, o resultado está vazio. Escolha um valor menor para o buffer."
+
+#: AppEditors/FlatCAMGeoEditor.py:5035
+msgid "Interior buffer geometry created."
+msgstr "Buffer de Geometria interna criado."
+
+#: AppEditors/FlatCAMGeoEditor.py:5086
+msgid "Exterior buffer geometry created."
+msgstr "Buffer de Geometria externa criado."
+
+#: AppEditors/FlatCAMGeoEditor.py:5092
+#, python-format
+msgid "Could not do Paint. Overlap value has to be less than 100%%."
+msgstr ""
+"Não foi possível Pintar. O valor de sobreposição deve ser menor do que 100%%."
+
+#: AppEditors/FlatCAMGeoEditor.py:5099
+msgid "Nothing selected for painting."
+msgstr "Nada selecionado para pintura."
+
+#: AppEditors/FlatCAMGeoEditor.py:5105
+msgid "Invalid value for"
+msgstr "Valor inválido para"
+
+#: AppEditors/FlatCAMGeoEditor.py:5164
+msgid ""
+"Could not do Paint. Try a different combination of parameters. Or a "
+"different method of Paint"
+msgstr ""
+"Não foi possível pintar. Tente uma combinação diferente de parâmetros, ou um "
+"método diferente de Pintura"
+
+#: AppEditors/FlatCAMGeoEditor.py:5175
+msgid "Paint done."
+msgstr "Pintura concluída."
+
+#: AppEditors/FlatCAMGrbEditor.py:211
+msgid "To add an Pad first select a aperture in Aperture Table"
+msgstr ""
+"Para adicionar um Pad, primeiro selecione uma abertura na Tabela de Aberturas"
+
+#: AppEditors/FlatCAMGrbEditor.py:218 AppEditors/FlatCAMGrbEditor.py:418
+msgid "Aperture size is zero. It needs to be greater than zero."
+msgstr "O tamanho da abertura é zero. Precisa ser maior que zero."
+
+#: AppEditors/FlatCAMGrbEditor.py:371 AppEditors/FlatCAMGrbEditor.py:684
+msgid ""
+"Incompatible aperture type. Select an aperture with type 'C', 'R' or 'O'."
+msgstr ""
+"Tipo de abertura incompatível. Selecione uma abertura do tipo 'C', 'R' ou "
+"'O'."
+
+#: AppEditors/FlatCAMGrbEditor.py:383
+msgid "Done. Adding Pad completed."
+msgstr "Pad adicionado."
+
+#: AppEditors/FlatCAMGrbEditor.py:410
+msgid "To add an Pad Array first select a aperture in Aperture Table"
+msgstr ""
+"Para adicionar uma Matriz de Pads, primeiro selecione uma abertura na Tabela "
+"de Aberturas"
+
+#: AppEditors/FlatCAMGrbEditor.py:490
+msgid "Click on the Pad Circular Array Start position"
+msgstr "Clique na posição inicial da Matriz Circular de Pads"
+
+#: AppEditors/FlatCAMGrbEditor.py:710
+msgid "Too many Pads for the selected spacing angle."
+msgstr "Muitos Pads para o ângulo de espaçamento selecionado."
+
+#: AppEditors/FlatCAMGrbEditor.py:733
+msgid "Done. Pad Array added."
+msgstr "Matriz de pads adicionada."
+
+#: AppEditors/FlatCAMGrbEditor.py:758
+msgid "Select shape(s) and then click ..."
+msgstr "Selecione a(s) forma(s) e então clique ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:770
+msgid "Failed. Nothing selected."
+msgstr "Falhou. Nada selecionado."
+
+#: AppEditors/FlatCAMGrbEditor.py:786
+msgid ""
+"Failed. Poligonize works only on geometries belonging to the same aperture."
+msgstr ""
+"Falhou. Poligonize funciona apenas em geometrias pertencentes à mesma "
+"abertura."
+
+#: AppEditors/FlatCAMGrbEditor.py:840
+msgid "Done. Poligonize completed."
+msgstr "Poligonizar concluído."
+
+#: AppEditors/FlatCAMGrbEditor.py:895 AppEditors/FlatCAMGrbEditor.py:1128
+#: AppEditors/FlatCAMGrbEditor.py:1152
+msgid "Corner Mode 1: 45 degrees ..."
+msgstr "Canto Modo 1: 45 graus ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:907 AppEditors/FlatCAMGrbEditor.py:1237
+msgid "Click on next Point or click Right mouse button to complete ..."
+msgstr ""
+"Clique no próximo ponto ou clique com o botão direito do mouse para "
+"completar ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1116 AppEditors/FlatCAMGrbEditor.py:1149
+msgid "Corner Mode 2: Reverse 45 degrees ..."
+msgstr "Canto Modo 2: 45 graus invertido ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1119 AppEditors/FlatCAMGrbEditor.py:1146
+msgid "Corner Mode 3: 90 degrees ..."
+msgstr "Canto Modo 3: 90 graus ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1122 AppEditors/FlatCAMGrbEditor.py:1143
+msgid "Corner Mode 4: Reverse 90 degrees ..."
+msgstr "Canto Modo 4: 90 graus invertido ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1125 AppEditors/FlatCAMGrbEditor.py:1140
+msgid "Corner Mode 5: Free angle ..."
+msgstr "Canto Modo 5: Ângulo livre ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1182 AppEditors/FlatCAMGrbEditor.py:1358
+#: AppEditors/FlatCAMGrbEditor.py:1397
+msgid "Track Mode 1: 45 degrees ..."
+msgstr "Trilha Modo 1: 45 graus ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1338 AppEditors/FlatCAMGrbEditor.py:1392
+msgid "Track Mode 2: Reverse 45 degrees ..."
+msgstr "Trilha Modo 2: 45 graus invertido ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1343 AppEditors/FlatCAMGrbEditor.py:1387
+msgid "Track Mode 3: 90 degrees ..."
+msgstr "Trilha Modo 3: 90 graus ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1348 AppEditors/FlatCAMGrbEditor.py:1382
+msgid "Track Mode 4: Reverse 90 degrees ..."
+msgstr "Trilha Modo 4: 90 graus invertido ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1353 AppEditors/FlatCAMGrbEditor.py:1377
+msgid "Track Mode 5: Free angle ..."
+msgstr "Trilha Modo 5: Ângulo livre ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1778
+msgid "Scale the selected Gerber apertures ..."
+msgstr "Redimensiona as aberturas de Gerber selecionadas ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1820
+msgid "Buffer the selected apertures ..."
+msgstr "Buffer das aberturas selecionadas ..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1862
+msgid "Mark polygon areas in the edited Gerber ..."
+msgstr "Marca áreas de polígonos no Gerber editado..."
+
+#: AppEditors/FlatCAMGrbEditor.py:1928
+msgid "Nothing selected to move"
+msgstr "Nada selecionado para mover"
+
+#: AppEditors/FlatCAMGrbEditor.py:2053
+msgid "Done. Apertures Move completed."
+msgstr "Aberturas movidas."
+
+#: AppEditors/FlatCAMGrbEditor.py:2135
+msgid "Done. Apertures copied."
+msgstr "Aberturas copiadas."
+
+#: AppEditors/FlatCAMGrbEditor.py:2453 AppGUI/MainGUI.py:1436
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:27
+msgid "Gerber Editor"
+msgstr "Editor Gerber"
+
+#: AppEditors/FlatCAMGrbEditor.py:2473 AppGUI/ObjectUI.py:228
+#: AppTools/ToolProperties.py:159
+msgid "Apertures"
+msgstr "Aberturas"
+
+#: AppEditors/FlatCAMGrbEditor.py:2475 AppGUI/ObjectUI.py:230
+msgid "Apertures Table for the Gerber Object."
+msgstr "Tabela de Aberturas para o Objeto Gerber."
+
+#: AppEditors/FlatCAMGrbEditor.py:2486 AppEditors/FlatCAMGrbEditor.py:3943
+#: AppGUI/ObjectUI.py:263
+msgid "Code"
+msgstr "Código"
+
+#: AppEditors/FlatCAMGrbEditor.py:2486 AppEditors/FlatCAMGrbEditor.py:3943
+#: AppGUI/ObjectUI.py:263
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:103
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43
+#: AppTools/ToolCopperThieving.py:261 AppTools/ToolCopperThieving.py:301
+#: AppTools/ToolFiducials.py:156
+msgid "Size"
+msgstr "Tamanho"
+
+#: AppEditors/FlatCAMGrbEditor.py:2486 AppEditors/FlatCAMGrbEditor.py:3943
+#: AppGUI/ObjectUI.py:263
+msgid "Dim"
+msgstr "Dim"
+
+#: AppEditors/FlatCAMGrbEditor.py:2491 AppGUI/ObjectUI.py:267
+msgid "Index"
+msgstr "Índice"
+
+#: AppEditors/FlatCAMGrbEditor.py:2493 AppEditors/FlatCAMGrbEditor.py:2522
+#: AppGUI/ObjectUI.py:269
+msgid "Aperture Code"
+msgstr "Código de Abertura"
+
+#: AppEditors/FlatCAMGrbEditor.py:2495 AppGUI/ObjectUI.py:271
+msgid "Type of aperture: circular, rectangle, macros etc"
+msgstr "Tipo de abertura: circular, retângulo, macros etc"
+
+#: AppEditors/FlatCAMGrbEditor.py:2497 AppGUI/ObjectUI.py:273
+msgid "Aperture Size:"
+msgstr "Tamanho da abertura:"
+
+#: AppEditors/FlatCAMGrbEditor.py:2499 AppGUI/ObjectUI.py:275
+msgid ""
+"Aperture Dimensions:\n"
+" - (width, height) for R, O type.\n"
+" - (dia, nVertices) for P type"
+msgstr ""
+"Dimensões da abertura: \n"
+" - (largura, altura) para o tipo R, O. \n"
+" - (dia, nVertices) para o tipo P"
+
+#: AppEditors/FlatCAMGrbEditor.py:2523
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:58
+msgid "Code for the new aperture"
+msgstr "Código para a nova abertura"
+
+#: AppEditors/FlatCAMGrbEditor.py:2532
+msgid "Aperture Size"
+msgstr "Tamanho da abertura"
+
+#: AppEditors/FlatCAMGrbEditor.py:2534
+msgid ""
+"Size for the new aperture.\n"
+"If aperture type is 'R' or 'O' then\n"
+"this value is automatically\n"
+"calculated as:\n"
+"sqrt(width**2 + height**2)"
+msgstr ""
+"Tamanho para a nova abertura.\n"
+"Se o tipo de abertura for 'R' ou 'O' então\n"
+"este valor será automaticamente\n"
+"calculado como:\n"
+"sqrt(largura^2 + altura^2)"
+
+#: AppEditors/FlatCAMGrbEditor.py:2548
+msgid "Aperture Type"
+msgstr "Tipo de Abertura"
+
+#: AppEditors/FlatCAMGrbEditor.py:2550
+msgid ""
+"Select the type of new aperture. Can be:\n"
+"C = circular\n"
+"R = rectangular\n"
+"O = oblong"
+msgstr ""
+"Selecione o tipo da nova abertura. Pode ser:\n"
+"C = circular \n"
+"R = retangular \n"
+"O = oblongo"
+
+#: AppEditors/FlatCAMGrbEditor.py:2561
+msgid "Aperture Dim"
+msgstr "Dim Abertura"
+
+#: AppEditors/FlatCAMGrbEditor.py:2563
+msgid ""
+"Dimensions for the new aperture.\n"
+"Active only for rectangular apertures (type R).\n"
+"The format is (width, height)"
+msgstr ""
+"Dimensões da nova abertura.\n"
+"Ativa apenas para aberturas retangulares (tipo R).\n"
+"O formato é (largura, altura)"
+
+#: AppEditors/FlatCAMGrbEditor.py:2572
+msgid "Add/Delete Aperture"
+msgstr "Adicionar/Excluir Abertura"
+
+#: AppEditors/FlatCAMGrbEditor.py:2574
+msgid "Add/Delete an aperture in the aperture table"
+msgstr "Adicionar/Excluir uma abertura na tabela de aberturas"
+
+#: AppEditors/FlatCAMGrbEditor.py:2583
+msgid "Add a new aperture to the aperture list."
+msgstr "Adiciona uma nova abertura à lista de aberturas."
+
+#: AppEditors/FlatCAMGrbEditor.py:2586 AppEditors/FlatCAMGrbEditor.py:2734
+#: AppGUI/MainGUI.py:753 AppGUI/MainGUI.py:1071 AppGUI/MainGUI.py:1487
+#: AppGUI/MainGUI.py:2063 AppGUI/MainGUI.py:4433 AppGUI/ObjectUI.py:1725
+#: AppObjects/FlatCAMGeometry.py:556 AppTools/ToolNCC.py:316
+#: AppTools/ToolNCC.py:637 AppTools/ToolPaint.py:298 AppTools/ToolPaint.py:681
+#: AppTools/ToolSolderPaste.py:128 AppTools/ToolSolderPaste.py:600
+#: App_Main.py:5595
+msgid "Delete"
+msgstr "Excluir"
+
+#: AppEditors/FlatCAMGrbEditor.py:2588
+msgid "Delete a aperture in the aperture list"
+msgstr "Exclui uma abertura da lista de aberturas"
+
+#: AppEditors/FlatCAMGrbEditor.py:2605
+msgid "Buffer Aperture"
+msgstr "Buffer Abertura"
+
+#: AppEditors/FlatCAMGrbEditor.py:2607
+msgid "Buffer a aperture in the aperture list"
+msgstr "Buffer de uma abertura na lista de aberturas"
+
+#: AppEditors/FlatCAMGrbEditor.py:2620
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:194
+msgid "Buffer distance"
+msgstr "Distância do buffer"
+
+#: AppEditors/FlatCAMGrbEditor.py:2621
+msgid "Buffer corner"
+msgstr "Canto do buffer"
+
+#: AppEditors/FlatCAMGrbEditor.py:2623
+msgid ""
+"There are 3 types of corners:\n"
+" - 'Round': the corner is rounded.\n"
+" - 'Square': the corner is met in a sharp angle.\n"
+" - 'Beveled': the corner is a line that directly connects the features "
+"meeting in the corner"
+msgstr ""
+"Existem 3 tipos de cantos:\n"
+"- 'Redondo': o canto é arredondado.\n"
+"- 'Quadrado:' o canto é em um ângulo agudo.\n"
+"- 'Chanfrado:' o canto é uma linha que conecta diretamente os recursos "
+"reunidos no canto"
+
+#: AppEditors/FlatCAMGrbEditor.py:2638 AppGUI/MainGUI.py:1058
+#: AppGUI/MainGUI.py:1413 AppGUI/MainGUI.py:1456 AppGUI/MainGUI.py:2051
+#: AppGUI/MainGUI.py:4430
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:200
+#: AppTools/ToolTransform.py:29
+msgid "Buffer"
+msgstr "Buffer"
+
+#: AppEditors/FlatCAMGrbEditor.py:2653
+msgid "Scale Aperture"
+msgstr "Redim. Abertura"
+
+#: AppEditors/FlatCAMGrbEditor.py:2655
+msgid "Scale a aperture in the aperture list"
+msgstr "Redimensiona uma abertura na lista de aberturas"
+
+#: AppEditors/FlatCAMGrbEditor.py:2663
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:209
+msgid "Scale factor"
+msgstr "Fator de Escala"
+
+#: AppEditors/FlatCAMGrbEditor.py:2665
+msgid ""
+"The factor by which to scale the selected aperture.\n"
+"Values can be between 0.0000 and 999.9999"
+msgstr ""
+"O fator para redimensionar a abertura selecionada. \n"
+"Os valores podem estar entre 0.0000 e 999.9999"
+
+#: AppEditors/FlatCAMGrbEditor.py:2693
+msgid "Mark polygons"
+msgstr "Marcar polígonos"
+
+#: AppEditors/FlatCAMGrbEditor.py:2695
+msgid "Mark the polygon areas."
+msgstr "Marcar as áreas de polígonos."
+
+#: AppEditors/FlatCAMGrbEditor.py:2703
+msgid "Area UPPER threshold"
+msgstr "Limite de área SUPERIOR"
+
+#: AppEditors/FlatCAMGrbEditor.py:2705
+msgid ""
+"The threshold value, all areas less than this are marked.\n"
+"Can have a value between 0.0000 and 9999.9999"
+msgstr ""
+"Valor limite, todas as áreas menores que isso são marcadas.\n"
+"Pode ser um valor entre 0.0000 e 9999.9999"
+
+#: AppEditors/FlatCAMGrbEditor.py:2712
+msgid "Area LOWER threshold"
+msgstr "Limite de área INFERIOR"
+
+#: AppEditors/FlatCAMGrbEditor.py:2714
+msgid ""
+"The threshold value, all areas more than this are marked.\n"
+"Can have a value between 0.0000 and 9999.9999"
+msgstr ""
+"Valor limite, todas as áreas maiores que isso são marcadas.\n"
+"Pode ser um valor entre 0.0000 e 9999.9999"
+
+#: AppEditors/FlatCAMGrbEditor.py:2728
+msgid "Mark"
+msgstr "Marcar"
+
+#: AppEditors/FlatCAMGrbEditor.py:2730
+msgid "Mark the polygons that fit within limits."
+msgstr "Marcar os polígonos que se encaixam dentro dos limites."
+
+#: AppEditors/FlatCAMGrbEditor.py:2736
+msgid "Delete all the marked polygons."
+msgstr "Excluir todos os polígonos marcados."
+
+#: AppEditors/FlatCAMGrbEditor.py:2742
+msgid "Clear all the markings."
+msgstr "Limpar todas as marcações."
+
+#: AppEditors/FlatCAMGrbEditor.py:2762 AppGUI/MainGUI.py:1043
+#: AppGUI/MainGUI.py:2036 AppGUI/MainGUI.py:4430
+msgid "Add Pad Array"
+msgstr "Adicionar Matriz de Pads"
+
+#: AppEditors/FlatCAMGrbEditor.py:2764
+msgid "Add an array of pads (linear or circular array)"
+msgstr "Adicione uma matriz de pads (matriz linear ou circular)"
+
+#: AppEditors/FlatCAMGrbEditor.py:2770
+msgid ""
+"Select the type of pads array to create.\n"
+"It can be Linear X(Y) or Circular"
+msgstr ""
+"Selecione o tipo de matriz de pads para criar.\n"
+"Pode ser Linear X(Y) ou Circular"
+
+#: AppEditors/FlatCAMGrbEditor.py:2781
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:95
+msgid "Nr of pads"
+msgstr "Nº de pads"
+
+#: AppEditors/FlatCAMGrbEditor.py:2783
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:97
+msgid "Specify how many pads to be in the array."
+msgstr "Especifique quantos pads devem estar na matriz."
+
+#: AppEditors/FlatCAMGrbEditor.py:2832
+msgid ""
+"Angle at which the linear array is placed.\n"
+"The precision is of max 2 decimals.\n"
+"Min value is: -359.99 degrees.\n"
+"Max value is: 360.00 degrees."
+msgstr ""
+"Ângulo no qual a matriz linear é colocada.\n"
+"A precisão é de no máximo 2 decimais.\n"
+"Valor mínimo: -359.99 graus.\n"
+"Valor máximo: 360.00 graus."
+
+#: AppEditors/FlatCAMGrbEditor.py:3326 AppEditors/FlatCAMGrbEditor.py:3330
+msgid "Aperture code value is missing or wrong format. Add it and retry."
+msgstr ""
+"O valor do código de abertura está ausente ou em formato incorreto. Altere e "
+"tente novamente."
+
+#: AppEditors/FlatCAMGrbEditor.py:3366
+msgid ""
+"Aperture dimensions value is missing or wrong format. Add it in format "
+"(width, height) and retry."
+msgstr ""
+"O valor das dimensões da abertura está ausente ou está no formato errado. "
+"Altere (largura, altura) e tente novamente."
+
+#: AppEditors/FlatCAMGrbEditor.py:3379
+msgid "Aperture size value is missing or wrong format. Add it and retry."
+msgstr ""
+"O valor do tamanho da abertura está ausente ou está no formato errado. "
+"Altere e tente novamente."
+
+#: AppEditors/FlatCAMGrbEditor.py:3390
+msgid "Aperture already in the aperture table."
+msgstr "Abertura já na tabela de aberturas."
+
+#: AppEditors/FlatCAMGrbEditor.py:3397
+msgid "Added new aperture with code"
+msgstr "Adicionada nova abertura com código"
+
+#: AppEditors/FlatCAMGrbEditor.py:3429
+msgid " Select an aperture in Aperture Table"
+msgstr " Selecione uma abertura na Tabela de Aberturas"
+
+#: AppEditors/FlatCAMGrbEditor.py:3437
+msgid "Select an aperture in Aperture Table -->"
+msgstr "Selecione uma abertura na Tabela de Aberturas ->"
+
+#: AppEditors/FlatCAMGrbEditor.py:3451
+msgid "Deleted aperture with code"
+msgstr "Abertura excluída com código"
+
+#: AppEditors/FlatCAMGrbEditor.py:3519
+msgid "Dimensions need two float values separated by comma."
+msgstr ""
+"As dimensões precisam de dois valores flutuantes separados por vírgula."
+
+#: AppEditors/FlatCAMGrbEditor.py:3528
+msgid "Dimensions edited."
+msgstr "Dimensões editadas."
+
+#: AppEditors/FlatCAMGrbEditor.py:4058
+msgid "Loading Gerber into Editor"
+msgstr "Lendo Gerber no Editor"
+
+#: AppEditors/FlatCAMGrbEditor.py:4186
+msgid "Setting up the UI"
+msgstr "Configurando a interface do usuário"
+
+#: AppEditors/FlatCAMGrbEditor.py:4187
+#, fuzzy
+#| msgid "Adding geometry finished. Preparing the GUI"
+msgid "Adding geometry finished. Preparing the AppGUI"
+msgstr "Geometria adicionada. Preparando a GUI"
+
+#: AppEditors/FlatCAMGrbEditor.py:4196
+msgid "Finished loading the Gerber object into the editor."
+msgstr "Carregamento do objeto Gerber no editor concluído."
+
+#: AppEditors/FlatCAMGrbEditor.py:4335
+msgid ""
+"There are no Aperture definitions in the file. Aborting Gerber creation."
+msgstr ""
+"Não há definições da Abertura no arquivo. Abortando a criação de Gerber."
+
+#: AppEditors/FlatCAMGrbEditor.py:4338 AppObjects/AppObject.py:133
+#: AppObjects/FlatCAMGeometry.py:1775 AppParsers/ParseExcellon.py:896
+#: AppTools/ToolPcbWizard.py:432 App_Main.py:8369 App_Main.py:8433
+#: App_Main.py:8564 App_Main.py:8629 App_Main.py:9281
+msgid "An internal error has occurred. See shell.\n"
+msgstr "Ocorreu um erro interno. Veja shell (linha de comando).\n"
+
+#: AppEditors/FlatCAMGrbEditor.py:4345
+msgid "Creating Gerber."
+msgstr "Criando Gerber."
+
+#: AppEditors/FlatCAMGrbEditor.py:4354
+msgid "Done. Gerber editing finished."
+msgstr "Edição de Gerber concluída."
+
+#: AppEditors/FlatCAMGrbEditor.py:4372
+msgid "Cancelled. No aperture is selected"
+msgstr "Cancelado. Nenhuma abertura selecionada"
+
+#: AppEditors/FlatCAMGrbEditor.py:4527 App_Main.py:5921
+msgid "Coordinates copied to clipboard."
+msgstr "Coordenadas copiadas para a área de transferência."
+
+#: AppEditors/FlatCAMGrbEditor.py:4970
+msgid "Failed. No aperture geometry is selected."
+msgstr "Cancelado. Nenhuma abertura selecionada."
+
+#: AppEditors/FlatCAMGrbEditor.py:4979 AppEditors/FlatCAMGrbEditor.py:5250
+msgid "Done. Apertures geometry deleted."
+msgstr "Abertura excluída."
+
+#: AppEditors/FlatCAMGrbEditor.py:5122
+msgid "No aperture to buffer. Select at least one aperture and try again."
+msgstr ""
+"Nenhuma abertura para buffer. Selecione pelo menos uma abertura e tente "
+"novamente."
+
+#: AppEditors/FlatCAMGrbEditor.py:5134
+msgid "Failed."
+msgstr "Falhou."
+
+#: AppEditors/FlatCAMGrbEditor.py:5153
+msgid "Scale factor value is missing or wrong format. Add it and retry."
+msgstr ""
+"O valor do fator de escala está ausente ou está em formato incorreto. Altere "
+"e tente novamente."
+
+#: AppEditors/FlatCAMGrbEditor.py:5185
+msgid "No aperture to scale. Select at least one aperture and try again."
+msgstr ""
+"Nenhuma abertura para redimensionar. Selecione pelo menos uma abertura e "
+"tente novamente."
+
+#: AppEditors/FlatCAMGrbEditor.py:5201
+msgid "Done. Scale Tool completed."
+msgstr "Redimensionamento concluído."
+
+#: AppEditors/FlatCAMGrbEditor.py:5239
+msgid "Polygons marked."
+msgstr "Polígonos marcados."
+
+#: AppEditors/FlatCAMGrbEditor.py:5242
+msgid "No polygons were marked. None fit within the limits."
+msgstr "Nenhum polígono foi marcado. Nenhum se encaixa dentro dos limites."
+
+#: AppEditors/FlatCAMGrbEditor.py:5966
+msgid "Rotation action was not executed."
+msgstr "A rotação não foi executada."
+
+#: AppEditors/FlatCAMGrbEditor.py:6037 App_Main.py:5354 App_Main.py:5402
+msgid "Flip action was not executed."
+msgstr "A ação de espelhamento não foi executada."
+
+#: AppEditors/FlatCAMGrbEditor.py:6094
+msgid "Skew action was not executed."
+msgstr "A inclinação não foi executada."
+
+#: AppEditors/FlatCAMGrbEditor.py:6159
+msgid "Scale action was not executed."
+msgstr "O redimensionamento não foi executado."
+
+#: AppEditors/FlatCAMGrbEditor.py:6202
+msgid "Offset action was not executed."
+msgstr "O deslocamento não foi executado."
+
+#: AppEditors/FlatCAMGrbEditor.py:6252
+msgid "Geometry shape offset Y cancelled"
+msgstr "Deslocamento Y cancelado"
+
+#: AppEditors/FlatCAMGrbEditor.py:6267
+msgid "Geometry shape skew X cancelled"
+msgstr "Inclinação X cancelada"
+
+#: AppEditors/FlatCAMGrbEditor.py:6282
+msgid "Geometry shape skew Y cancelled"
+msgstr "Inclinação Y cancelada"
+
+#: AppEditors/FlatCAMTextEditor.py:74
+msgid "Print Preview"
+msgstr "Visualizar Impressão"
+
+#: AppEditors/FlatCAMTextEditor.py:75
+msgid "Open a OS standard Preview Print window."
+msgstr "Abre a janela Visualizar Impressão do SO."
+
+#: AppEditors/FlatCAMTextEditor.py:78
+msgid "Print Code"
+msgstr "Imprimir Código"
+
+#: AppEditors/FlatCAMTextEditor.py:79
+msgid "Open a OS standard Print window."
+msgstr "Abre a janela Imprimir do SO."
+
+#: AppEditors/FlatCAMTextEditor.py:81
+msgid "Find in Code"
+msgstr "Encontrar no Código"
+
+#: AppEditors/FlatCAMTextEditor.py:82
+msgid "Will search and highlight in yellow the string in the Find box."
+msgstr "Procurará e destacará em amarelo o texto da caixa Procurar."
+
+#: AppEditors/FlatCAMTextEditor.py:86
+msgid "Find box. Enter here the strings to be searched in the text."
+msgstr "Caixa Procurar. Digite aqui o texto a procurar."
+
+#: AppEditors/FlatCAMTextEditor.py:88
+msgid "Replace With"
+msgstr "Substituir Por"
+
+#: AppEditors/FlatCAMTextEditor.py:89
+msgid ""
+"Will replace the string from the Find box with the one in the Replace box."
+msgstr "Substituirá o texto da caixa Localizar pelo texto da caixa Substituir."
+
+#: AppEditors/FlatCAMTextEditor.py:93
+msgid "String to replace the one in the Find box throughout the text."
+msgstr "Texto para substituir o da caixa Localizar ao longo do texto."
+
+#: AppEditors/FlatCAMTextEditor.py:95 AppGUI/ObjectUI.py:486
+#: AppGUI/ObjectUI.py:2349 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:54
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:88
+msgid "All"
+msgstr "Todos"
+
+#: AppEditors/FlatCAMTextEditor.py:96
+msgid ""
+"When checked it will replace all instances in the 'Find' box\n"
+"with the text in the 'Replace' box.."
+msgstr ""
+"Quando marcado, todas as instâncias na caixa 'Localizar'\n"
+"serão substituídas pelo texto na caixa 'Substituir'."
+
+#: AppEditors/FlatCAMTextEditor.py:99
+msgid "Copy All"
+msgstr "Copiar tudo"
+
+#: AppEditors/FlatCAMTextEditor.py:100
+msgid "Will copy all the text in the Code Editor to the clipboard."
+msgstr "Copiará todo o texto no Editor de código para a área de transferência."
+
+#: AppEditors/FlatCAMTextEditor.py:103
+msgid "Open Code"
+msgstr "Abrir Código"
+
+#: AppEditors/FlatCAMTextEditor.py:104
+msgid "Will open a text file in the editor."
+msgstr "Abrirá um arquivo de texto no editor."
+
+#: AppEditors/FlatCAMTextEditor.py:106
+msgid "Save Code"
+msgstr "Salvar Código"
+
+#: AppEditors/FlatCAMTextEditor.py:107
+msgid "Will save the text in the editor into a file."
+msgstr "Salvará o texto do editor em um arquivo."
+
+#: AppEditors/FlatCAMTextEditor.py:109
+msgid "Run Code"
+msgstr "Executar Código"
+
+#: AppEditors/FlatCAMTextEditor.py:110
+msgid "Will run the TCL commands found in the text file, one by one."
+msgstr "Executará os comandos TCL do arquivo de texto, um a um."
+
+#: AppEditors/FlatCAMTextEditor.py:184
+msgid "Open file"
+msgstr "Abrir arquivo"
+
+#: AppEditors/FlatCAMTextEditor.py:215 AppEditors/FlatCAMTextEditor.py:220
+msgid "Export Code ..."
+msgstr "Exportar código ..."
+
+#: AppEditors/FlatCAMTextEditor.py:272 AppObjects/FlatCAMCNCJob.py:955
+#: AppTools/ToolSolderPaste.py:1530
+msgid "No such file or directory"
+msgstr "Nenhum arquivo ou diretório"
+
+#: AppEditors/FlatCAMTextEditor.py:284 AppObjects/FlatCAMCNCJob.py:969
+msgid "Saved to"
+msgstr "Salvo em"
+
+#: AppEditors/FlatCAMTextEditor.py:334
+msgid "Code Editor content copied to clipboard ..."
+msgstr "Conteúdo do Code Editor copiado para a área de transferência ..."
+
+#: AppGUI/GUIElements.py:2540
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:180
+#: AppTools/ToolDblSided.py:173 AppTools/ToolDblSided.py:388
+#: AppTools/ToolFilm.py:202
+msgid "Reference"
+msgstr "Referência"
+
+#: AppGUI/GUIElements.py:2542
+msgid ""
+"The reference can be:\n"
+"- Absolute -> the reference point is point (0,0)\n"
+"- Relative -> the reference point is the mouse position before Jump"
+msgstr ""
+"A referência pode ser:\n"
+"- Absoluto -> o ponto de referência é o ponto (0,0)\n"
+"- Relativo -> o ponto de referência é a posição do mouse antes de Jump"
+
+#: AppGUI/GUIElements.py:2547
+msgid "Abs"
+msgstr "Abs"
+
+#: AppGUI/GUIElements.py:2548
+msgid "Relative"
+msgstr "Relativo"
+
+#: AppGUI/GUIElements.py:2558
+msgid "Location"
+msgstr "Localização"
+
+#: AppGUI/GUIElements.py:2560
+msgid ""
+"The Location value is a tuple (x,y).\n"
+"If the reference is Absolute then the Jump will be at the position (x,y).\n"
+"If the reference is Relative then the Jump will be at the (x,y) distance\n"
+"from the current mouse location point."
+msgstr ""
+"O valor do local é uma tupla (x, y).\n"
+"Se a referência for Absoluta, o Salto estará na posição (x, y).\n"
+"Se a referência for Relativa, o salto estará na distância (x, y)\n"
+"a partir do ponto de localização atual do mouse."
+
+#: AppGUI/GUIElements.py:2600
+msgid "Save Log"
+msgstr "Salvar Log"
+
+#: AppGUI/GUIElements.py:2610 App_Main.py:2657 App_Main.py:3018
+msgid "Close"
+msgstr "Fechar"
+
+#: AppGUI/GUIElements.py:2619 AppTools/ToolShell.py:278
+msgid "Type >help< to get started"
+msgstr "Digite >help< para iniciar"
+
+#: AppGUI/GUIElements.py:2990 AppGUI/GUIElements.py:2997
+msgid "Idle."
+msgstr "Ocioso."
+
+#: AppGUI/GUIElements.py:3030
+msgid "Application started ..."
+msgstr "Aplicativo iniciado ..."
+
+#: AppGUI/GUIElements.py:3031
+msgid "Hello!"
+msgstr "Olá!"
+
+#: AppGUI/GUIElements.py:3078 AppGUI/MainGUI.py:201 AppGUI/MainGUI.py:900
+#: AppGUI/MainGUI.py:1893
+msgid "Run Script ..."
+msgstr "Executar Script ..."
+
+#: AppGUI/GUIElements.py:3080 AppGUI/MainGUI.py:203
+msgid ""
+"Will run the opened Tcl Script thus\n"
+"enabling the automation of certain\n"
+"functions of FlatCAM."
+msgstr ""
+"Executará o script TCL aberto,\n"
+"ativando a automação de certas\n"
+"funções do FlatCAM."
+
+#: AppGUI/GUIElements.py:3089 AppGUI/MainGUI.py:129
+#: AppTools/ToolPcbWizard.py:62 AppTools/ToolPcbWizard.py:69
+msgid "Open"
+msgstr "Abrir"
+
+#: AppGUI/GUIElements.py:3093
+msgid "Open Project ..."
+msgstr "Abrir Projeto ..."
+
+#: AppGUI/GUIElements.py:3099 AppGUI/MainGUI.py:140
+msgid "Open &Gerber ...\tCtrl+G"
+msgstr "Abrir &Gerber ...\tCtrl+G"
+
+#: AppGUI/GUIElements.py:3104 AppGUI/MainGUI.py:145
+msgid "Open &Excellon ...\tCtrl+E"
+msgstr "Abrir &Excellon ...\tCtrl+E"
+
+#: AppGUI/GUIElements.py:3109 AppGUI/MainGUI.py:150
+msgid "Open G-&Code ..."
+msgstr "Abrir G-&Code ..."
+
+#: AppGUI/GUIElements.py:3119
+msgid "Exit"
+msgstr "Sair"
+
+#: AppGUI/MainGUI.py:78 AppGUI/MainGUI.py:80 AppGUI/MainGUI.py:1366
+msgid "Toggle Panel"
+msgstr "Alternar Painel"
+
+#: AppGUI/MainGUI.py:90
+msgid "File"
+msgstr "Arquivo"
+
+#: AppGUI/MainGUI.py:95
+msgid "&New Project ...\tCtrl+N"
+msgstr "&Novo Projeto ...\tCtrl+N"
+
+#: AppGUI/MainGUI.py:97
+msgid "Will create a new, blank project"
+msgstr "Criará um novo projeto em branco"
+
+#: AppGUI/MainGUI.py:102
+msgid "&New"
+msgstr "&Novo"
+
+#: AppGUI/MainGUI.py:106
+msgid "Geometry\tN"
+msgstr "Geometria\tN"
+
+#: AppGUI/MainGUI.py:108
+msgid "Will create a new, empty Geometry Object."
+msgstr "Criará um novo Objeto Geometria vazio."
+
+#: AppGUI/MainGUI.py:111
+msgid "Gerber\tB"
+msgstr "Gerber\tB"
+
+#: AppGUI/MainGUI.py:113
+msgid "Will create a new, empty Gerber Object."
+msgstr "Criará um novo Objeto Gerber vazio."
+
+#: AppGUI/MainGUI.py:116
+msgid "Excellon\tL"
+msgstr "Excellon\tL"
+
+#: AppGUI/MainGUI.py:118
+msgid "Will create a new, empty Excellon Object."
+msgstr "Criará um novo Objeto Excellon vazio."
+
+#: AppGUI/MainGUI.py:123
+msgid "Document\tD"
+msgstr "Documento\tD"
+
+#: AppGUI/MainGUI.py:125
+msgid "Will create a new, empty Document Object."
+msgstr "Criará um novo Objeto Documento vazio."
+
+#: AppGUI/MainGUI.py:134
+msgid "Open &Project ..."
+msgstr "Abrir &Projeto ..."
+
+#: AppGUI/MainGUI.py:157
+msgid "Open Config ..."
+msgstr "Abrir Configuração ..."
+
+#: AppGUI/MainGUI.py:162
+msgid "Recent projects"
+msgstr "Projetos Recentes"
+
+#: AppGUI/MainGUI.py:164
+msgid "Recent files"
+msgstr "Arquivos Recentes"
+
+#: AppGUI/MainGUI.py:167 AppGUI/MainGUI.py:755 AppGUI/MainGUI.py:1339
+msgid "Save"
+msgstr "Salvar"
+
+#: AppGUI/MainGUI.py:171
+msgid "&Save Project ...\tCtrl+S"
+msgstr "&Salvar Projeto ...\tCtrl+S"
+
+#: AppGUI/MainGUI.py:176
+msgid "Save Project &As ...\tCtrl+Shift+S"
+msgstr "S&alvar Projeto Como ...\tCtrl+Shift+S"
+
+#: AppGUI/MainGUI.py:191
+msgid "Scripting"
+msgstr "Scripting"
+
+#: AppGUI/MainGUI.py:195 AppGUI/MainGUI.py:896 AppGUI/MainGUI.py:1889
+msgid "New Script ..."
+msgstr "Novo Script ..."
+
+#: AppGUI/MainGUI.py:197 AppGUI/MainGUI.py:898 AppGUI/MainGUI.py:1891
+msgid "Open Script ..."
+msgstr "Abrir Script ..."
+
+#: AppGUI/MainGUI.py:199
+msgid "Open Example ..."
+msgstr "Abrir Exemplo ..."
+
+#: AppGUI/MainGUI.py:218
+msgid "Import"
+msgstr "Importar"
+
+#: AppGUI/MainGUI.py:220
+msgid "&SVG as Geometry Object ..."
+msgstr "&SVG como Objeto de Geometria ..."
+
+#: AppGUI/MainGUI.py:223
+msgid "&SVG as Gerber Object ..."
+msgstr "&SVG como Objeto Gerber ..."
+
+#: AppGUI/MainGUI.py:228
+msgid "&DXF as Geometry Object ..."
+msgstr "&DXF como Objeto de Geometria ..."
+
+#: AppGUI/MainGUI.py:231
+msgid "&DXF as Gerber Object ..."
+msgstr "&DXF como Objeto Gerber ..."
+
+#: AppGUI/MainGUI.py:235
+msgid "HPGL2 as Geometry Object ..."
+msgstr "HPGL2 como objeto de geometria ..."
+
+#: AppGUI/MainGUI.py:241
+msgid "Export"
+msgstr "Exportar"
+
+#: AppGUI/MainGUI.py:245
+msgid "Export &SVG ..."
+msgstr "Exportar &SVG ..."
+
+#: AppGUI/MainGUI.py:249
+msgid "Export DXF ..."
+msgstr "Exportar DXF ..."
+
+#: AppGUI/MainGUI.py:255
+msgid "Export &PNG ..."
+msgstr "Exportar &PNG ..."
+
+#: AppGUI/MainGUI.py:257
+msgid ""
+"Will export an image in PNG format,\n"
+"the saved image will contain the visual \n"
+"information currently in FlatCAM Plot Area."
+msgstr ""
+"Exportará uma imagem em formato PNG.\n"
+"A imagem salva conterá as informações\n"
+"visuais atualmente na área gráfica FlatCAM."
+
+#: AppGUI/MainGUI.py:266
+msgid "Export &Excellon ..."
+msgstr "Exportar &Excellon ..."
+
+#: AppGUI/MainGUI.py:268
+msgid ""
+"Will export an Excellon Object as Excellon file,\n"
+"the coordinates format, the file units and zeros\n"
+"are set in Preferences -> Excellon Export."
+msgstr ""
+"Exportará um Objeto Excellon como arquivo Excellon.\n"
+"O formato das coordenadas, das unidades de arquivo e dos zeros\n"
+"são definidos em Preferências -> Exportação de Excellon."
+
+#: AppGUI/MainGUI.py:275
+msgid "Export &Gerber ..."
+msgstr "Exportar &Gerber ..."
+
+#: AppGUI/MainGUI.py:277
+msgid ""
+"Will export an Gerber Object as Gerber file,\n"
+"the coordinates format, the file units and zeros\n"
+"are set in Preferences -> Gerber Export."
+msgstr ""
+"Exportará um Objeto Gerber como arquivo Gerber.\n"
+"O formato das coordenadas, das unidades de arquivo e dos zeros\n"
+"são definidos em Preferências -> Exportar Gerber."
+
+#: AppGUI/MainGUI.py:287
+msgid "Backup"
+msgstr "Backup"
+
+#: AppGUI/MainGUI.py:292
+msgid "Import Preferences from file ..."
+msgstr "Importar preferências de um arquivo ..."
+
+#: AppGUI/MainGUI.py:298
+msgid "Export Preferences to file ..."
+msgstr "Exportar Preferências para um arquivo ..."
+
+#: AppGUI/MainGUI.py:306 AppGUI/preferences/PreferencesUIManager.py:1176
+msgid "Save Preferences"
+msgstr "Salvar Preferências"
+
+#: AppGUI/MainGUI.py:312 AppGUI/MainGUI.py:4022
+msgid "Print (PDF)"
+msgstr "Imprimir (PDF)"
+
+#: AppGUI/MainGUI.py:320
+msgid "E&xit"
+msgstr "Sair"
+
+#: AppGUI/MainGUI.py:328 AppGUI/MainGUI.py:749 AppGUI/MainGUI.py:1489
+msgid "Edit"
+msgstr "Editar"
+
+#: AppGUI/MainGUI.py:332
+msgid "Edit Object\tE"
+msgstr "Editar Objeto\tE"
+
+#: AppGUI/MainGUI.py:334
+msgid "Close Editor\tCtrl+S"
+msgstr "Fechar Editor\tCtrl+S"
+
+#: AppGUI/MainGUI.py:343
+msgid "Conversion"
+msgstr "Conversão"
+
+#: AppGUI/MainGUI.py:345
+msgid "&Join Geo/Gerber/Exc -> Geo"
+msgstr "&Unir Geo/Gerber/Exc -> Geo"
+
+#: AppGUI/MainGUI.py:347
+msgid ""
+"Merge a selection of objects, which can be of type:\n"
+"- Gerber\n"
+"- Excellon\n"
+"- Geometry\n"
+"into a new combo Geometry object."
+msgstr ""
+"Mescla uma seleção de objetos, que podem ser do tipo:\n"
+"- Gerber\n"
+"- Excellon\n"
+"- Geometria\n"
+" em um novo objeto Geometria."
+
+#: AppGUI/MainGUI.py:354
+msgid "Join Excellon(s) -> Excellon"
+msgstr "Unir Excellon(s) -> Excellon"
+
+#: AppGUI/MainGUI.py:356
+msgid "Merge a selection of Excellon objects into a new combo Excellon object."
+msgstr "Mescla uma seleção de objetos Excellon em um novo objeto Excellon."
+
+#: AppGUI/MainGUI.py:359
+msgid "Join Gerber(s) -> Gerber"
+msgstr "Unir Gerber(s) -> Gerber"
+
+#: AppGUI/MainGUI.py:361
+msgid "Merge a selection of Gerber objects into a new combo Gerber object."
+msgstr "Mescla uma seleção de objetos Gerber em um novo objeto Gerber."
+
+#: AppGUI/MainGUI.py:366
+msgid "Convert Single to MultiGeo"
+msgstr "Converter Único para MultiGeo"
+
+#: AppGUI/MainGUI.py:368
+msgid ""
+"Will convert a Geometry object from single_geometry type\n"
+"to a multi_geometry type."
+msgstr ""
+"Converterá um objeto Geometria do tipo single_geometry\n"
+"em um tipo multi_geometry."
+
+#: AppGUI/MainGUI.py:372
+msgid "Convert Multi to SingleGeo"
+msgstr "Converter MultiGeo para Único"
+
+#: AppGUI/MainGUI.py:374
+msgid ""
+"Will convert a Geometry object from multi_geometry type\n"
+"to a single_geometry type."
+msgstr ""
+"Converterá um objeto Geometria do tipo multi_geometry\n"
+"em um tipo single_geometry."
+
+#: AppGUI/MainGUI.py:381
+msgid "Convert Any to Geo"
+msgstr "Converter Qualquer para Geo"
+
+#: AppGUI/MainGUI.py:384
+msgid "Convert Any to Gerber"
+msgstr "Converter Qualquer para Gerber"
+
+#: AppGUI/MainGUI.py:390
+msgid "&Copy\tCtrl+C"
+msgstr "&Copiar\tCtrl+C"
+
+#: AppGUI/MainGUI.py:395
+msgid "&Delete\tDEL"
+msgstr "Excluir\tDEL"
+
+#: AppGUI/MainGUI.py:400
+msgid "Se&t Origin\tO"
+msgstr "Definir Origem\tO"
+
+#: AppGUI/MainGUI.py:402
+msgid "Move to Origin\tShift+O"
+msgstr "Mover para Origem\tShift+O"
+
+#: AppGUI/MainGUI.py:405
+msgid "Jump to Location\tJ"
+msgstr "Ir para a localização\tJ"
+
+#: AppGUI/MainGUI.py:407
+msgid "Locate in Object\tShift+J"
+msgstr "Localizar em Objeto\tShift+J"
+
+#: AppGUI/MainGUI.py:412
+msgid "Toggle Units\tQ"
+msgstr "Alternar Unidades\tQ"
+
+#: AppGUI/MainGUI.py:414
+msgid "&Select All\tCtrl+A"
+msgstr "&Selecionar Tudo\tCtrl+A"
+
+#: AppGUI/MainGUI.py:419
+msgid "&Preferences\tShift+P"
+msgstr "&Preferências\tShift+P"
+
+#: AppGUI/MainGUI.py:425 AppTools/ToolProperties.py:155
+msgid "Options"
+msgstr "Opções"
+
+#: AppGUI/MainGUI.py:427
+msgid "&Rotate Selection\tShift+(R)"
+msgstr "Gi&rar Seleção\tShift+(R)"
+
+#: AppGUI/MainGUI.py:432
+msgid "&Skew on X axis\tShift+X"
+msgstr "Inclinar no eixo X\tShift+X"
+
+#: AppGUI/MainGUI.py:434
+msgid "S&kew on Y axis\tShift+Y"
+msgstr "Inclinar no eixo Y\tShift+Y"
+
+#: AppGUI/MainGUI.py:439
+msgid "Flip on &X axis\tX"
+msgstr "Espelhar no eixo &X\tX"
+
+#: AppGUI/MainGUI.py:441
+msgid "Flip on &Y axis\tY"
+msgstr "Espelhar no eixo &Y\tY"
+
+#: AppGUI/MainGUI.py:446
+msgid "View source\tAlt+S"
+msgstr "Ver fonte\tAlt+S"
+
+#: AppGUI/MainGUI.py:448
+msgid "Tools DataBase\tCtrl+D"
+msgstr "Banco de Dados de Ferramentas\tCtrl+D"
+
+#: AppGUI/MainGUI.py:455 AppGUI/MainGUI.py:1386
+msgid "View"
+msgstr "Ver"
+
+#: AppGUI/MainGUI.py:457
+msgid "Enable all plots\tAlt+1"
+msgstr "Habilitar todos os gráficos\tAlt+1"
+
+#: AppGUI/MainGUI.py:459
+msgid "Disable all plots\tAlt+2"
+msgstr "Desabilitar todos os gráficos\tAlt+2"
+
+#: AppGUI/MainGUI.py:461
+msgid "Disable non-selected\tAlt+3"
+msgstr "Desabilitar os não selecionados\tAlt+3"
+
+#: AppGUI/MainGUI.py:465
+msgid "&Zoom Fit\tV"
+msgstr "&Zoom Ajustado\tV"
+
+#: AppGUI/MainGUI.py:467
+msgid "&Zoom In\t="
+msgstr "&Zoom +\t="
+
+#: AppGUI/MainGUI.py:469
+msgid "&Zoom Out\t-"
+msgstr "&Zoom -\t-"
+
+#: AppGUI/MainGUI.py:474
+msgid "Redraw All\tF5"
+msgstr "Redesenha Todos\tF5"
+
+#: AppGUI/MainGUI.py:478
+msgid "Toggle Code Editor\tShift+E"
+msgstr "Alternar o Editor de Códigos\tShift+E"
+
+#: AppGUI/MainGUI.py:481
+msgid "&Toggle FullScreen\tAlt+F10"
+msgstr "Alternar &Tela Cheia\tAlt+F10"
+
+#: AppGUI/MainGUI.py:483
+msgid "&Toggle Plot Area\tCtrl+F10"
+msgstr "Al&ternar Área de Gráficos\tCtrl+F10"
+
+#: AppGUI/MainGUI.py:485
+msgid "&Toggle Project/Sel/Tool\t`"
+msgstr "Al&ternar Projeto/Sel/Ferram\t`"
+
+#: AppGUI/MainGUI.py:489
+msgid "&Toggle Grid Snap\tG"
+msgstr "Al&ternar Encaixe na Grade\tG"
+
+#: AppGUI/MainGUI.py:491
+msgid "&Toggle Grid Lines\tAlt+G"
+msgstr "Al&ternar Encaixe na Grade\tAlt+G"
+
+#: AppGUI/MainGUI.py:493
+msgid "&Toggle Axis\tShift+G"
+msgstr "Al&ternar Eixo\tShift+G"
+
+#: AppGUI/MainGUI.py:495
+msgid "Toggle Workspace\tShift+W"
+msgstr "Alternar Área de Trabalho\tShift+W"
+
+#: AppGUI/MainGUI.py:497
+#, fuzzy
+#| msgid "Toggle Units"
+msgid "Toggle HUD\tAlt+M"
+msgstr "Alternar Unidades"
+
+#: AppGUI/MainGUI.py:502
+msgid "Objects"
+msgstr "Objetos"
+
+#: AppGUI/MainGUI.py:505 AppGUI/MainGUI.py:4020
+#: AppObjects/ObjectCollection.py:1120 AppObjects/ObjectCollection.py:1167
+msgid "Select All"
+msgstr "Selecionar Todos"
+
+#: AppGUI/MainGUI.py:507 AppObjects/ObjectCollection.py:1124
+#: AppObjects/ObjectCollection.py:1171
+msgid "Deselect All"
+msgstr "Desmarcar todos"
+
+#: AppGUI/MainGUI.py:516
+msgid "&Command Line\tS"
+msgstr "Linha de &Comando\tS"
+
+#: AppGUI/MainGUI.py:521
+msgid "Help"
+msgstr "Ajuda"
+
+#: AppGUI/MainGUI.py:523
+msgid "Online Help\tF1"
+msgstr "Ajuda Online\tF1"
+
+#: AppGUI/MainGUI.py:526 Bookmark.py:293
+msgid "Bookmarks"
+msgstr "Favoritos"
+
+#: AppGUI/MainGUI.py:529 App_Main.py:2989 App_Main.py:2998
+msgid "Bookmarks Manager"
+msgstr "Gerenciados de Favoritos"
+
+#: AppGUI/MainGUI.py:533
+msgid "Report a bug"
+msgstr "Reportar um bug"
+
+#: AppGUI/MainGUI.py:536
+msgid "Excellon Specification"
+msgstr "Especificação Excellon"
+
+#: AppGUI/MainGUI.py:538
+msgid "Gerber Specification"
+msgstr "Especificação Gerber"
+
+#: AppGUI/MainGUI.py:543
+msgid "Shortcuts List\tF3"
+msgstr "Lista de Atalhos\tF3"
+
+#: AppGUI/MainGUI.py:545
+msgid "YouTube Channel\tF4"
+msgstr "Canal no YouTube\tF4"
+
+#: AppGUI/MainGUI.py:547 App_Main.py:2624
+msgid "About FlatCAM"
+msgstr "Sobre FlatCAM"
+
+#: AppGUI/MainGUI.py:556
+msgid "Add Circle\tO"
+msgstr "Adicionar Círculo\tO"
+
+#: AppGUI/MainGUI.py:559
+msgid "Add Arc\tA"
+msgstr "Adicionar Arco\tA"
+
+#: AppGUI/MainGUI.py:562
+msgid "Add Rectangle\tR"
+msgstr "Adicionar Retângulo\tR"
+
+#: AppGUI/MainGUI.py:565
+msgid "Add Polygon\tN"
+msgstr "Adicionar Polígono\tN"
+
+#: AppGUI/MainGUI.py:568
+msgid "Add Path\tP"
+msgstr "Adicionar Caminho\tP"
+
+#: AppGUI/MainGUI.py:571
+msgid "Add Text\tT"
+msgstr "Adicionar Texto\tT"
+
+#: AppGUI/MainGUI.py:574
+msgid "Polygon Union\tU"
+msgstr "Unir Polígonos\tU"
+
+#: AppGUI/MainGUI.py:576
+msgid "Polygon Intersection\tE"
+msgstr "Interseção de Polígonos\tE"
+
+#: AppGUI/MainGUI.py:578
+msgid "Polygon Subtraction\tS"
+msgstr "Subtração de Polígonos\tS"
+
+#: AppGUI/MainGUI.py:582
+msgid "Cut Path\tX"
+msgstr "Caminho de Corte\tX"
+
+#: AppGUI/MainGUI.py:586
+msgid "Copy Geom\tC"
+msgstr "Copiar Geom\tC"
+
+#: AppGUI/MainGUI.py:588
+msgid "Delete Shape\tDEL"
+msgstr "Excluir Forma\tDEL"
+
+#: AppGUI/MainGUI.py:592 AppGUI/MainGUI.py:679
+msgid "Move\tM"
+msgstr "Mover\tM"
+
+#: AppGUI/MainGUI.py:594
+msgid "Buffer Tool\tB"
+msgstr "Ferramenta Buffer\tB"
+
+#: AppGUI/MainGUI.py:597
+msgid "Paint Tool\tI"
+msgstr "Ferramenta de Pintura\tI"
+
+#: AppGUI/MainGUI.py:600
+msgid "Transform Tool\tAlt+R"
+msgstr "Ferramenta de Transformação\tAlt+R"
+
+#: AppGUI/MainGUI.py:604
+msgid "Toggle Corner Snap\tK"
+msgstr "Alternar Encaixe de Canto\tK"
+
+#: AppGUI/MainGUI.py:610
+msgid ">Excellon Editor<"
+msgstr ">Editor Excellon<"
+
+#: AppGUI/MainGUI.py:614
+msgid "Add Drill Array\tA"
+msgstr "Adicionar Matriz de Furos\tA"
+
+#: AppGUI/MainGUI.py:616
+msgid "Add Drill\tD"
+msgstr "Adicionar Furo\tD"
+
+#: AppGUI/MainGUI.py:620
+msgid "Add Slot Array\tQ"
+msgstr "Adic. Matriz de Ranhuras\tQ"
+
+#: AppGUI/MainGUI.py:622
+msgid "Add Slot\tW"
+msgstr "Adicionar Ranhura\tW"
+
+#: AppGUI/MainGUI.py:626
+msgid "Resize Drill(S)\tR"
+msgstr "Redimensionar Furo(s)\tR"
+
+#: AppGUI/MainGUI.py:629 AppGUI/MainGUI.py:673
+msgid "Copy\tC"
+msgstr "Copiar\tC"
+
+#: AppGUI/MainGUI.py:631 AppGUI/MainGUI.py:675
+msgid "Delete\tDEL"
+msgstr "Excluir\tDEL"
+
+#: AppGUI/MainGUI.py:636
+msgid "Move Drill(s)\tM"
+msgstr "Mover Furo(s)\tM"
+
+#: AppGUI/MainGUI.py:641
+msgid ">Gerber Editor<"
+msgstr ">Editor Gerber<"
+
+#: AppGUI/MainGUI.py:645
+msgid "Add Pad\tP"
+msgstr "Adicionar Pad\tP"
+
+#: AppGUI/MainGUI.py:647
+msgid "Add Pad Array\tA"
+msgstr "Adicionar Matriz de Pads\tA"
+
+#: AppGUI/MainGUI.py:649
+msgid "Add Track\tT"
+msgstr "Adicionar Trilha\tT"
+
+#: AppGUI/MainGUI.py:651
+msgid "Add Region\tN"
+msgstr "Adicionar Região\tN"
+
+#: AppGUI/MainGUI.py:655
+msgid "Poligonize\tAlt+N"
+msgstr "Poligonizar\tAlt+N"
+
+#: AppGUI/MainGUI.py:657
+msgid "Add SemiDisc\tE"
+msgstr "Adicionar SemiDisco\tE"
+
+#: AppGUI/MainGUI.py:659
+msgid "Add Disc\tD"
+msgstr "Adicionar Disco\tD"
+
+#: AppGUI/MainGUI.py:661
+msgid "Buffer\tB"
+msgstr "Buffer\tB"
+
+#: AppGUI/MainGUI.py:663
+msgid "Scale\tS"
+msgstr "Escala\tS"
+
+#: AppGUI/MainGUI.py:665
+msgid "Mark Area\tAlt+A"
+msgstr "Marcar Área\tAlt+A"
+
+#: AppGUI/MainGUI.py:667
+msgid "Eraser\tCtrl+E"
+msgstr "Borracha\tCtrl+E"
+
+#: AppGUI/MainGUI.py:669
+msgid "Transform\tAlt+R"
+msgstr "Transformar\tAlt+R"
+
+#: AppGUI/MainGUI.py:696
+msgid "Enable Plot"
+msgstr "Habilitar Gráfico"
+
+#: AppGUI/MainGUI.py:698
+msgid "Disable Plot"
+msgstr "Desabilitar Gráfico"
+
+#: AppGUI/MainGUI.py:702
+msgid "Set Color"
+msgstr "Definir cor"
+
+#: AppGUI/MainGUI.py:705 App_Main.py:9548
+msgid "Red"
+msgstr "Vermelho"
+
+#: AppGUI/MainGUI.py:708 App_Main.py:9550
+msgid "Blue"
+msgstr "Azul"
+
+#: AppGUI/MainGUI.py:711 App_Main.py:9553
+msgid "Yellow"
+msgstr "Amarela"
+
+#: AppGUI/MainGUI.py:714 App_Main.py:9555
+msgid "Green"
+msgstr "Verde"
+
+#: AppGUI/MainGUI.py:717 App_Main.py:9557
+msgid "Purple"
+msgstr "Roxo"
+
+#: AppGUI/MainGUI.py:720 App_Main.py:9559
+msgid "Brown"
+msgstr "Marrom"
+
+#: AppGUI/MainGUI.py:723 App_Main.py:9561 App_Main.py:9617
+msgid "White"
+msgstr "Branco"
+
+#: AppGUI/MainGUI.py:726 App_Main.py:9563
+msgid "Black"
+msgstr "Preto"
+
+#: AppGUI/MainGUI.py:731 AppTools/ToolEtchCompensation.py:110 App_Main.py:9566
+msgid "Custom"
+msgstr "Personalizado"
+
+#: AppGUI/MainGUI.py:736 App_Main.py:9600
+msgid "Opacity"
+msgstr "Opacidade"
+
+#: AppGUI/MainGUI.py:739 App_Main.py:9576
+msgid "Default"
+msgstr "Padrão"
+
+#: AppGUI/MainGUI.py:744
+msgid "Generate CNC"
+msgstr "Gerar CNC"
+
+#: AppGUI/MainGUI.py:746
+msgid "View Source"
+msgstr "Ver Fonte"
+
+#: AppGUI/MainGUI.py:751 AppGUI/MainGUI.py:856 AppGUI/MainGUI.py:1069
+#: AppGUI/MainGUI.py:1485 AppGUI/MainGUI.py:1852 AppGUI/MainGUI.py:2061
+#: AppGUI/MainGUI.py:4430 AppGUI/ObjectUI.py:1719
+#: AppObjects/FlatCAMGeometry.py:553 AppTools/ToolPanelize.py:551
+#: AppTools/ToolPanelize.py:578 AppTools/ToolPanelize.py:671
+#: AppTools/ToolPanelize.py:700 AppTools/ToolPanelize.py:762
+msgid "Copy"
+msgstr "Copiar"
+
+#: AppGUI/MainGUI.py:759 AppGUI/MainGUI.py:1498 AppTools/ToolProperties.py:31
+msgid "Properties"
+msgstr "Propriedades"
+
+#: AppGUI/MainGUI.py:788
+msgid "File Toolbar"
+msgstr "Barra de Ferramentas de Arquivos"
+
+#: AppGUI/MainGUI.py:792
+msgid "Edit Toolbar"
+msgstr "Barra de Ferramentas Editar"
+
+#: AppGUI/MainGUI.py:796
+msgid "View Toolbar"
+msgstr "Barra de Ferramentas Ver"
+
+#: AppGUI/MainGUI.py:800
+msgid "Shell Toolbar"
+msgstr "Barra de Ferramentas Shell"
+
+#: AppGUI/MainGUI.py:804
+msgid "Tools Toolbar"
+msgstr "Barra de Ferramentas Ferramentas"
+
+#: AppGUI/MainGUI.py:808
+msgid "Excellon Editor Toolbar"
+msgstr "Barra de Ferramentas Editor Excellon"
+
+#: AppGUI/MainGUI.py:814
+msgid "Geometry Editor Toolbar"
+msgstr "Barra de Ferramentas Editor de Geometria"
+
+#: AppGUI/MainGUI.py:818
+msgid "Gerber Editor Toolbar"
+msgstr "Barra de Ferramentas Editor Gerber"
+
+#: AppGUI/MainGUI.py:822
+msgid "Grid Toolbar"
+msgstr "Barra de Ferramentas Grade"
+
+#: AppGUI/MainGUI.py:836 AppGUI/MainGUI.py:1831 App_Main.py:6513
+#: App_Main.py:6517
+msgid "Open Gerber"
+msgstr "Abrir Gerber"
+
+#: AppGUI/MainGUI.py:838 AppGUI/MainGUI.py:1833 App_Main.py:6551
+#: App_Main.py:6555
+msgid "Open Excellon"
+msgstr "Abrir Excellon"
+
+#: AppGUI/MainGUI.py:841 AppGUI/MainGUI.py:1836
+msgid "Open project"
+msgstr "Abrir projeto"
+
+#: AppGUI/MainGUI.py:843 AppGUI/MainGUI.py:1838
+msgid "Save project"
+msgstr "Salvar projeto"
+
+#: AppGUI/MainGUI.py:851 AppGUI/MainGUI.py:1847
+msgid "Save Object and close the Editor"
+msgstr "Salvar objeto e fechar o editor"
+
+#: AppGUI/MainGUI.py:858 AppGUI/MainGUI.py:1854
+msgid "&Delete"
+msgstr "&Excluir"
+
+#: AppGUI/MainGUI.py:861 AppGUI/MainGUI.py:1857 AppGUI/MainGUI.py:4021
+#: AppGUI/MainGUI.py:4227 AppTools/ToolDistance.py:35
+#: AppTools/ToolDistance.py:197
+msgid "Distance Tool"
+msgstr "Ferramenta de Distância"
+
+#: AppGUI/MainGUI.py:863 AppGUI/MainGUI.py:1859
+msgid "Distance Min Tool"
+msgstr "Ferramenta Distância Min"
+
+#: AppGUI/MainGUI.py:865 AppGUI/MainGUI.py:1861 AppGUI/MainGUI.py:4014
+msgid "Set Origin"
+msgstr "Definir Origem"
+
+#: AppGUI/MainGUI.py:867 AppGUI/MainGUI.py:1863
+msgid "Move to Origin"
+msgstr "Mover para Origem"
+
+#: AppGUI/MainGUI.py:870 AppGUI/MainGUI.py:1865
+msgid "Jump to Location"
+msgstr "Ir para a localização"
+
+#: AppGUI/MainGUI.py:872 AppGUI/MainGUI.py:1867 AppGUI/MainGUI.py:4026
+msgid "Locate in Object"
+msgstr "Localizar em Objeto"
+
+#: AppGUI/MainGUI.py:878 AppGUI/MainGUI.py:1873
+msgid "&Replot"
+msgstr "&Redesenhar"
+
+#: AppGUI/MainGUI.py:880 AppGUI/MainGUI.py:1875
+msgid "&Clear plot"
+msgstr "Limpar gráfi&co"
+
+#: AppGUI/MainGUI.py:882 AppGUI/MainGUI.py:1877 AppGUI/MainGUI.py:4017
+msgid "Zoom In"
+msgstr "Zoom +"
+
+#: AppGUI/MainGUI.py:884 AppGUI/MainGUI.py:1879 AppGUI/MainGUI.py:4017
+msgid "Zoom Out"
+msgstr "Zoom -"
+
+#: AppGUI/MainGUI.py:886 AppGUI/MainGUI.py:1388 AppGUI/MainGUI.py:1881
+#: AppGUI/MainGUI.py:4016
+msgid "Zoom Fit"
+msgstr "Zoom Ajustado"
+
+#: AppGUI/MainGUI.py:894 AppGUI/MainGUI.py:1887
+msgid "&Command Line"
+msgstr "Linha de &Comando"
+
+#: AppGUI/MainGUI.py:906 AppGUI/MainGUI.py:1899
+msgid "2Sided Tool"
+msgstr "PCB de 2 Faces"
+
+#: AppGUI/MainGUI.py:908 AppGUI/MainGUI.py:1901 AppGUI/MainGUI.py:4032
+msgid "Align Objects Tool"
+msgstr "Ferramenta Alinhar Objetos"
+
+#: AppGUI/MainGUI.py:910 AppGUI/MainGUI.py:1903 AppGUI/MainGUI.py:4033
+#: AppTools/ToolExtractDrills.py:393
+msgid "Extract Drills Tool"
+msgstr "Ferramenta Extrair Furos"
+
+#: AppGUI/MainGUI.py:913 AppGUI/ObjectUI.py:596 AppTools/ToolCutOut.py:440
+msgid "Cutout Tool"
+msgstr "Ferramenta de Recorte"
+
+#: AppGUI/MainGUI.py:915 AppGUI/MainGUI.py:1908 AppGUI/ObjectUI.py:574
+#: AppGUI/ObjectUI.py:2287 AppTools/ToolNCC.py:974
+msgid "NCC Tool"
+msgstr "Ferramenta NCC"
+
+#: AppGUI/MainGUI.py:921 AppGUI/MainGUI.py:1914
+msgid "Panel Tool"
+msgstr "Ferramenta de Painel"
+
+#: AppGUI/MainGUI.py:923 AppGUI/MainGUI.py:1916 AppTools/ToolFilm.py:569
+msgid "Film Tool"
+msgstr "Ferramenta de Filme"
+
+#: AppGUI/MainGUI.py:925 AppGUI/MainGUI.py:1918 AppTools/ToolSolderPaste.py:553
+msgid "SolderPaste Tool"
+msgstr "Ferramenta Pasta de Solda"
+
+#: AppGUI/MainGUI.py:927 AppGUI/MainGUI.py:1920 AppTools/ToolSub.py:35
+msgid "Subtract Tool"
+msgstr "Ferramenta Subtrair"
+
+#: AppGUI/MainGUI.py:929 AppGUI/MainGUI.py:1922 AppTools/ToolRulesCheck.py:616
+msgid "Rules Tool"
+msgstr "Ferramenta de Regras"
+
+#: AppGUI/MainGUI.py:931 AppGUI/MainGUI.py:1924 AppGUI/MainGUI.py:4035
+#: AppTools/ToolOptimal.py:33 AppTools/ToolOptimal.py:307
+msgid "Optimal Tool"
+msgstr "Ferramenta Ideal"
+
+#: AppGUI/MainGUI.py:936 AppGUI/MainGUI.py:1929 AppGUI/MainGUI.py:4032
+msgid "Calculators Tool"
+msgstr "Calculadoras"
+
+#: AppGUI/MainGUI.py:940 AppGUI/MainGUI.py:1933 AppGUI/MainGUI.py:4036
+#: AppTools/ToolQRCode.py:43 AppTools/ToolQRCode.py:382
+msgid "QRCode Tool"
+msgstr "Ferramenta de QRCode"
+
+#: AppGUI/MainGUI.py:942 AppGUI/MainGUI.py:1935
+#: AppTools/ToolCopperThieving.py:39 AppTools/ToolCopperThieving.py:568
+msgid "Copper Thieving Tool"
+msgstr "Ferramenta de Adição de Cobre"
+
+#: AppGUI/MainGUI.py:945 AppGUI/MainGUI.py:1938 AppGUI/MainGUI.py:4033
+#: AppTools/ToolFiducials.py:33 AppTools/ToolFiducials.py:396
+msgid "Fiducials Tool"
+msgstr "Ferramenta de Fiduciais"
+
+#: AppGUI/MainGUI.py:947 AppGUI/MainGUI.py:1940 AppTools/ToolCalibration.py:37
+#: AppTools/ToolCalibration.py:759
+msgid "Calibration Tool"
+msgstr "Calibração"
+
+#: AppGUI/MainGUI.py:949 AppGUI/MainGUI.py:1942 AppGUI/MainGUI.py:4033
+msgid "Punch Gerber Tool"
+msgstr "Ferramenta Socar Gerber"
+
+#: AppGUI/MainGUI.py:951 AppGUI/MainGUI.py:1944 AppTools/ToolInvertGerber.py:31
+msgid "Invert Gerber Tool"
+msgstr "Ferramenta Inverter Gerber"
+
+#: AppGUI/MainGUI.py:953 AppGUI/MainGUI.py:1946 AppGUI/MainGUI.py:4035
+#: AppTools/ToolCorners.py:31
+#, fuzzy
+#| msgid "Invert Gerber Tool"
+msgid "Corner Markers Tool"
+msgstr "Ferramenta Inverter Gerber"
+
+#: AppGUI/MainGUI.py:955 AppGUI/MainGUI.py:1948
+#: AppTools/ToolEtchCompensation.py:31
+#, fuzzy
+#| msgid "Editor Transformation Tool"
+msgid "Etch Compensation Tool"
+msgstr "Ferramenta Transformar"
+
+#: AppGUI/MainGUI.py:961 AppGUI/MainGUI.py:987 AppGUI/MainGUI.py:1039
+#: AppGUI/MainGUI.py:1954 AppGUI/MainGUI.py:2032
+msgid "Select"
+msgstr "Selecionar"
+
+#: AppGUI/MainGUI.py:963 AppGUI/MainGUI.py:1956
+msgid "Add Drill Hole"
+msgstr "Adicionar Furo"
+
+#: AppGUI/MainGUI.py:965 AppGUI/MainGUI.py:1958
+msgid "Add Drill Hole Array"
+msgstr "Adicionar Matriz do Furos"
+
+#: AppGUI/MainGUI.py:967 AppGUI/MainGUI.py:1476 AppGUI/MainGUI.py:1962
+#: AppGUI/MainGUI.py:4312
+msgid "Add Slot"
+msgstr "Adicionar Ranhura"
+
+#: AppGUI/MainGUI.py:969 AppGUI/MainGUI.py:1478 AppGUI/MainGUI.py:1964
+#: AppGUI/MainGUI.py:4311
+msgid "Add Slot Array"
+msgstr "Adicionar Matriz de Ranhuras"
+
+#: AppGUI/MainGUI.py:971 AppGUI/MainGUI.py:1481 AppGUI/MainGUI.py:1960
+msgid "Resize Drill"
+msgstr "Redimensionar Furo"
+
+#: AppGUI/MainGUI.py:975 AppGUI/MainGUI.py:1968
+msgid "Copy Drill"
+msgstr "Copiar Furo"
+
+#: AppGUI/MainGUI.py:977 AppGUI/MainGUI.py:1970
+msgid "Delete Drill"
+msgstr "Excluir Furo"
+
+#: AppGUI/MainGUI.py:981 AppGUI/MainGUI.py:1974
+msgid "Move Drill"
+msgstr "Mover Furo"
+
+#: AppGUI/MainGUI.py:989 AppGUI/MainGUI.py:1982
+msgid "Add Circle"
+msgstr "Adicionar Círculo"
+
+#: AppGUI/MainGUI.py:991 AppGUI/MainGUI.py:1984
+msgid "Add Arc"
+msgstr "Adicionar Arco"
+
+#: AppGUI/MainGUI.py:993 AppGUI/MainGUI.py:1986
+msgid "Add Rectangle"
+msgstr "Adicionar Retângulo"
+
+#: AppGUI/MainGUI.py:997 AppGUI/MainGUI.py:1990
+msgid "Add Path"
+msgstr "Adicionar Caminho"
+
+#: AppGUI/MainGUI.py:999 AppGUI/MainGUI.py:1992
+msgid "Add Polygon"
+msgstr "Adicionar Polígono"
+
+#: AppGUI/MainGUI.py:1002 AppGUI/MainGUI.py:1995
+msgid "Add Text"
+msgstr "Adicionar Texto"
+
+#: AppGUI/MainGUI.py:1004 AppGUI/MainGUI.py:1997
+msgid "Add Buffer"
+msgstr "Adicionar Buffer"
+
+#: AppGUI/MainGUI.py:1006 AppGUI/MainGUI.py:1999
+msgid "Paint Shape"
+msgstr "Pintar Forma"
+
+#: AppGUI/MainGUI.py:1008 AppGUI/MainGUI.py:1065 AppGUI/MainGUI.py:1417
+#: AppGUI/MainGUI.py:1462 AppGUI/MainGUI.py:2001 AppGUI/MainGUI.py:2057
+msgid "Eraser"
+msgstr "Borracha"
+
+#: AppGUI/MainGUI.py:1012 AppGUI/MainGUI.py:2005
+msgid "Polygon Union"
+msgstr "União de Polígonos"
+
+#: AppGUI/MainGUI.py:1014 AppGUI/MainGUI.py:2007
+msgid "Polygon Explode"
+msgstr "Explosão de Polígonos"
+
+#: AppGUI/MainGUI.py:1017 AppGUI/MainGUI.py:2010
+msgid "Polygon Intersection"
+msgstr "Interseção de Polígonos"
+
+#: AppGUI/MainGUI.py:1019 AppGUI/MainGUI.py:2012
+msgid "Polygon Subtraction"
+msgstr "Subtração de Polígonos"
+
+#: AppGUI/MainGUI.py:1023 AppGUI/MainGUI.py:2016
+msgid "Cut Path"
+msgstr "Caminho de Corte"
+
+#: AppGUI/MainGUI.py:1025
+msgid "Copy Shape(s)"
+msgstr "Copiar Forma(s)"
+
+#: AppGUI/MainGUI.py:1028
+msgid "Delete Shape '-'"
+msgstr "Excluir Forma '-'"
+
+#: AppGUI/MainGUI.py:1030 AppGUI/MainGUI.py:1073 AppGUI/MainGUI.py:1429
+#: AppGUI/MainGUI.py:1466 AppGUI/MainGUI.py:2022 AppGUI/MainGUI.py:2065
+#: AppGUI/ObjectUI.py:109
+msgid "Transformations"
+msgstr "Transformações"
+
+#: AppGUI/MainGUI.py:1033
+msgid "Move Objects "
+msgstr "Mover Objetos "
+
+#: AppGUI/MainGUI.py:1041 AppGUI/MainGUI.py:2034 AppGUI/MainGUI.py:4431
+msgid "Add Pad"
+msgstr "Adicionar Pad"
+
+#: AppGUI/MainGUI.py:1045 AppGUI/MainGUI.py:2038 AppGUI/MainGUI.py:4432
+msgid "Add Track"
+msgstr "Adicionar Trilha"
+
+#: AppGUI/MainGUI.py:1047 AppGUI/MainGUI.py:2040 AppGUI/MainGUI.py:4431
+msgid "Add Region"
+msgstr "Adicionar Região"
+
+#: AppGUI/MainGUI.py:1049 AppGUI/MainGUI.py:1448 AppGUI/MainGUI.py:2042
+msgid "Poligonize"
+msgstr "Poligonizar"
+
+#: AppGUI/MainGUI.py:1052 AppGUI/MainGUI.py:1450 AppGUI/MainGUI.py:2045
+msgid "SemiDisc"
+msgstr "SemiDisco"
+
+#: AppGUI/MainGUI.py:1054 AppGUI/MainGUI.py:1452 AppGUI/MainGUI.py:2047
+msgid "Disc"
+msgstr "Disco"
+
+#: AppGUI/MainGUI.py:1062 AppGUI/MainGUI.py:1460 AppGUI/MainGUI.py:2055
+msgid "Mark Area"
+msgstr "Marcar Área"
+
+#: AppGUI/MainGUI.py:1076 AppGUI/MainGUI.py:1433 AppGUI/MainGUI.py:1496
+#: AppGUI/MainGUI.py:2068 AppGUI/MainGUI.py:4431 AppTools/ToolMove.py:27
+msgid "Move"
+msgstr "Mover"
+
+#: AppGUI/MainGUI.py:1084
+msgid "Snap to grid"
+msgstr "Encaixar na Grade"
+
+#: AppGUI/MainGUI.py:1087
+msgid "Grid X snapping distance"
+msgstr "Distância de encaixe Grade X"
+
+#: AppGUI/MainGUI.py:1092
+msgid "Grid Y snapping distance"
+msgstr "Distância de encaixe Grade Y"
+
+#: AppGUI/MainGUI.py:1098
+msgid ""
+"When active, value on Grid_X\n"
+"is copied to the Grid_Y value."
+msgstr ""
+"Quando ativo, o valor em Grid_X\n"
+"é copiado para o valor Grid_Y."
+
+#: AppGUI/MainGUI.py:1105
+msgid "Snap to corner"
+msgstr "Encaixar no canto"
+
+#: AppGUI/MainGUI.py:1109 AppGUI/preferences/general/GeneralAPPSetGroupUI.py:78
+msgid "Max. magnet distance"
+msgstr "Distância magnética max."
+
+#: AppGUI/MainGUI.py:1134 AppGUI/MainGUI.py:1379 App_Main.py:7543
+msgid "Project"
+msgstr "Projeto"
+
+#: AppGUI/MainGUI.py:1149
+msgid "Selected"
+msgstr "Selecionado"
+
+#: AppGUI/MainGUI.py:1177 AppGUI/MainGUI.py:1185
+msgid "Plot Area"
+msgstr "Área de Gráfico"
+
+#: AppGUI/MainGUI.py:1212
+msgid "General"
+msgstr "Geral"
+
+#: AppGUI/MainGUI.py:1227 AppTools/ToolCopperThieving.py:74
+#: AppTools/ToolCorners.py:55 AppTools/ToolDblSided.py:64
+#: AppTools/ToolEtchCompensation.py:72 AppTools/ToolExtractDrills.py:61
+#: AppTools/ToolInvertGerber.py:72 AppTools/ToolOptimal.py:71
+#: AppTools/ToolPunchGerber.py:64
+msgid "GERBER"
+msgstr "Gerber"
+
+#: AppGUI/MainGUI.py:1237 AppTools/ToolDblSided.py:92
+msgid "EXCELLON"
+msgstr "Excellon"
+
+#: AppGUI/MainGUI.py:1247 AppTools/ToolDblSided.py:120
+msgid "GEOMETRY"
+msgstr "Geometria"
+
+#: AppGUI/MainGUI.py:1257
+msgid "CNC-JOB"
+msgstr "Trabalho CNC"
+
+#: AppGUI/MainGUI.py:1266 AppGUI/ObjectUI.py:563 AppGUI/ObjectUI.py:2262
+msgid "TOOLS"
+msgstr "Ferramentas"
+
+#: AppGUI/MainGUI.py:1275
+msgid "TOOLS 2"
+msgstr "Ferramentas 2"
+
+#: AppGUI/MainGUI.py:1285
+msgid "UTILITIES"
+msgstr "Utilitários"
+
+#: AppGUI/MainGUI.py:1302
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:192
+msgid "Restore Defaults"
+msgstr "Restaurar padrões"
+
+#: AppGUI/MainGUI.py:1305
+msgid ""
+"Restore the entire set of default values\n"
+"to the initial values loaded after first launch."
+msgstr ""
+"Restaurar todo o conjunto de valores padrão\n"
+"para os valores iniciais carregados após o primeiro lançamento."
+
+#: AppGUI/MainGUI.py:1310
+msgid "Open Pref Folder"
+msgstr "Abrir a Pasta Pref"
+
+#: AppGUI/MainGUI.py:1313
+msgid "Open the folder where FlatCAM save the preferences files."
+msgstr "Abre a pasta onde o FlatCAM salva os arquivos de preferências."
+
+#: AppGUI/MainGUI.py:1317 AppGUI/MainGUI.py:1804
+msgid "Clear GUI Settings"
+msgstr "Limpar Config. da GUI"
+
+#: AppGUI/MainGUI.py:1321
+msgid ""
+"Clear the GUI settings for FlatCAM,\n"
+"such as: layout, gui state, style, hdpi support etc."
+msgstr ""
+"Limpa as configurações da GUI para FlatCAM,\n"
+"como: layout, estado de gui, estilo, suporte a HDPI etc."
+
+#: AppGUI/MainGUI.py:1332
+msgid "Apply"
+msgstr "Aplicar"
+
+#: AppGUI/MainGUI.py:1335
+msgid "Apply the current preferences without saving to a file."
+msgstr "Aplica as preferências atuais sem salvar em um arquivo."
+
+#: AppGUI/MainGUI.py:1342
+msgid ""
+"Save the current settings in the 'current_defaults' file\n"
+"which is the file storing the working default preferences."
+msgstr ""
+"Salva as configurações atuais no arquivo 'current_defaults'\n"
+"que armazena as preferências padrão de trabalho."
+
+#: AppGUI/MainGUI.py:1350
+msgid "Will not save the changes and will close the preferences window."
+msgstr "Não salvará as alterações e fechará a janela de preferências."
+
+#: AppGUI/MainGUI.py:1364
+msgid "Toggle Visibility"
+msgstr "Alternar Visibilidade"
+
+#: AppGUI/MainGUI.py:1370
+msgid "New"
+msgstr "Novo"
+
+#: AppGUI/MainGUI.py:1372 AppGUI/ObjectUI.py:450
+#: AppObjects/FlatCAMGerber.py:239 AppObjects/FlatCAMGerber.py:327
+#: AppTools/ToolCalibration.py:631 AppTools/ToolCalibration.py:648
+#: AppTools/ToolCalibration.py:815 AppTools/ToolCopperThieving.py:144
+#: AppTools/ToolCopperThieving.py:158 AppTools/ToolCopperThieving.py:604
+#: AppTools/ToolCutOut.py:92 AppTools/ToolDblSided.py:226
+#: AppTools/ToolFilm.py:69 AppTools/ToolFilm.py:92 AppTools/ToolImage.py:49
+#: AppTools/ToolImage.py:271 AppTools/ToolNCC.py:95 AppTools/ToolNCC.py:558
+#: AppTools/ToolNCC.py:1300 AppTools/ToolPaint.py:501 AppTools/ToolPaint.py:705
+#: AppTools/ToolPanelize.py:116 AppTools/ToolPanelize.py:385
+#: AppTools/ToolPanelize.py:402
+msgid "Geometry"
+msgstr "Geometria"
+
+#: AppGUI/MainGUI.py:1376
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:99
+#: AppTools/ToolAlignObjects.py:74 AppTools/ToolAlignObjects.py:110
+#: AppTools/ToolCalibration.py:197 AppTools/ToolCalibration.py:631
+#: AppTools/ToolCalibration.py:648 AppTools/ToolCalibration.py:807
+#: AppTools/ToolCalibration.py:815 AppTools/ToolCopperThieving.py:144
+#: AppTools/ToolCopperThieving.py:158 AppTools/ToolCopperThieving.py:604
+#: AppTools/ToolDblSided.py:225 AppTools/ToolFilm.py:342
+#: AppTools/ToolNCC.py:558 AppTools/ToolNCC.py:1300 AppTools/ToolPaint.py:501
+#: AppTools/ToolPaint.py:705 AppTools/ToolPanelize.py:385
+#: AppTools/ToolPunchGerber.py:149 AppTools/ToolPunchGerber.py:164
+msgid "Excellon"
+msgstr "Excellon"
+
+#: AppGUI/MainGUI.py:1383
+msgid "Grids"
+msgstr "Grades"
+
+#: AppGUI/MainGUI.py:1390
+msgid "Clear Plot"
+msgstr "Limpar Gráfico"
+
+#: AppGUI/MainGUI.py:1392
+msgid "Replot"
+msgstr "Redesenhar"
+
+#: AppGUI/MainGUI.py:1396
+msgid "Geo Editor"
+msgstr "Editor de Geometria"
+
+#: AppGUI/MainGUI.py:1398
+msgid "Path"
+msgstr "Caminho"
+
+#: AppGUI/MainGUI.py:1400
+msgid "Rectangle"
+msgstr "Retângulo"
+
+#: AppGUI/MainGUI.py:1403
+msgid "Circle"
+msgstr "Círculo"
+
+#: AppGUI/MainGUI.py:1407
+msgid "Arc"
+msgstr "Arco"
+
+#: AppGUI/MainGUI.py:1421
+msgid "Union"
+msgstr "União"
+
+#: AppGUI/MainGUI.py:1423
+msgid "Intersection"
+msgstr "Interseção"
+
+#: AppGUI/MainGUI.py:1425
+msgid "Subtraction"
+msgstr "Substração"
+
+#: AppGUI/MainGUI.py:1427 AppGUI/ObjectUI.py:2351
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:56
+msgid "Cut"
+msgstr "Cortar"
+
+#: AppGUI/MainGUI.py:1438
+msgid "Pad"
+msgstr "Pad"
+
+#: AppGUI/MainGUI.py:1440
+msgid "Pad Array"
+msgstr "Matriz de Pads"
+
+#: AppGUI/MainGUI.py:1444
+msgid "Track"
+msgstr "Trilha"
+
+#: AppGUI/MainGUI.py:1446
+msgid "Region"
+msgstr "Região"
+
+#: AppGUI/MainGUI.py:1469
+msgid "Exc Editor"
+msgstr "Editor Exc"
+
+#: AppGUI/MainGUI.py:1471 AppGUI/MainGUI.py:4310
+msgid "Add Drill"
+msgstr "Adicionar Furo"
+
+#: AppGUI/MainGUI.py:1491 App_Main.py:2198
+msgid "Close Editor"
+msgstr "Fechar Editor"
+
+#: AppGUI/MainGUI.py:1516
+msgid ""
+"Absolute measurement.\n"
+"Reference is (X=0, Y= 0) position"
+msgstr ""
+"Medição absoluta.\n"
+"Em relação à posição (X=0, Y=0)"
+
+#: AppGUI/MainGUI.py:1523
+msgid "HUD (Heads up display)"
+msgstr ""
+
+#: AppGUI/MainGUI.py:1622
+msgid "Lock Toolbars"
+msgstr "Travar Barras de Ferramentas"
+
+#: AppGUI/MainGUI.py:1792
+msgid "FlatCAM Preferences Folder opened."
+msgstr "Pasta com Preferências FlatCAM aberta."
+
+#: AppGUI/MainGUI.py:1803
+msgid "Are you sure you want to delete the GUI Settings? \n"
+msgstr "Você tem certeza de que deseja excluir as configurações da GUI? \n"
+
+#: AppGUI/MainGUI.py:1806 AppGUI/preferences/PreferencesUIManager.py:941
+#: AppGUI/preferences/PreferencesUIManager.py:1179 AppTranslation.py:109
+#: AppTranslation.py:206 App_Main.py:2201 App_Main.py:3052 App_Main.py:5276
+#: App_Main.py:6336
+msgid "Yes"
+msgstr "Sim"
+
+#: AppGUI/MainGUI.py:1807 AppGUI/preferences/PreferencesUIManager.py:1180
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:164
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:150
+#: AppTools/ToolNCC.py:182 AppTools/ToolPaint.py:165 AppTranslation.py:110
+#: AppTranslation.py:207 App_Main.py:2202 App_Main.py:3053 App_Main.py:5277
+#: App_Main.py:6337
+msgid "No"
+msgstr "Não"
+
+#: AppGUI/MainGUI.py:1906
+msgid "&Cutout Tool"
+msgstr "Ferramenta de Re&corte"
+
+#: AppGUI/MainGUI.py:1980
+msgid "Select 'Esc'"
+msgstr "Selecionar 'Esc'"
+
+#: AppGUI/MainGUI.py:2018
+msgid "Copy Objects"
+msgstr "Copiar Objetos"
+
+#: AppGUI/MainGUI.py:2020 AppGUI/MainGUI.py:4230
+msgid "Delete Shape"
+msgstr "Excluir Forma"
+
+#: AppGUI/MainGUI.py:2026
+msgid "Move Objects"
+msgstr "Mover Objetos"
+
+#: AppGUI/MainGUI.py:2610
+msgid ""
+"Please first select a geometry item to be cutted\n"
+"then select the geometry item that will be cutted\n"
+"out of the first item. In the end press ~X~ key or\n"
+"the toolbar button."
+msgstr ""
+"Por favor, primeiro selecione um item de geometria a ser cortado\n"
+"e em seguida, selecione o item de geometria que será cortado\n"
+"fora do primeiro item. No final, pressione a tecla ~X~ ou\n"
+"o botão da barra de ferramentas."
+
+#: AppGUI/MainGUI.py:2617 AppGUI/MainGUI.py:2779 AppGUI/MainGUI.py:2824
+#: AppGUI/MainGUI.py:2844
+msgid "Warning"
+msgstr "Aviso"
+
+#: AppGUI/MainGUI.py:2774
+msgid ""
+"Please select geometry items \n"
+"on which to perform Intersection Tool."
+msgstr ""
+"Por favor, selecione itens de geometria\n"
+"para executar a ferramenta de interseção."
+
+#: AppGUI/MainGUI.py:2819
+msgid ""
+"Please select geometry items \n"
+"on which to perform Substraction Tool."
+msgstr ""
+"Por favor, selecione itens de geometria\n"
+"para executar a ferramenta de subtração."
+
+#: AppGUI/MainGUI.py:2839
+msgid ""
+"Please select geometry items \n"
+"on which to perform union."
+msgstr ""
+"Por favor, selecione itens de geometria\n"
+"para executar a ferramenta de união."
+
+#: AppGUI/MainGUI.py:2922 AppGUI/MainGUI.py:3137
+msgid "Cancelled. Nothing selected to delete."
+msgstr "Cancelado. Nada selecionado para excluir."
+
+#: AppGUI/MainGUI.py:3006 AppGUI/MainGUI.py:3253
+msgid "Cancelled. Nothing selected to copy."
+msgstr "Cancelado. Nada selecionado para copiar."
+
+#: AppGUI/MainGUI.py:3052 AppGUI/MainGUI.py:3282
+msgid "Cancelled. Nothing selected to move."
+msgstr "Cancelado. Nada selecionado para mover."
+
+#: AppGUI/MainGUI.py:3308
+msgid "New Tool ..."
+msgstr "Nova Ferramenta ..."
+
+#: AppGUI/MainGUI.py:3309 AppTools/ToolNCC.py:924 AppTools/ToolPaint.py:849
+#: AppTools/ToolSolderPaste.py:560
+msgid "Enter a Tool Diameter"
+msgstr "Digite um diâmetro de ferramenta"
+
+#: AppGUI/MainGUI.py:3321
+msgid "Adding Tool cancelled ..."
+msgstr "Adicionar ferramenta cancelado ..."
+
+#: AppGUI/MainGUI.py:3335
+msgid "Distance Tool exit..."
+msgstr "Sair da ferramenta de medição ..."
+
+#: AppGUI/MainGUI.py:3514 App_Main.py:3042
+msgid "Application is saving the project. Please wait ..."
+msgstr "O aplicativo está salvando o projeto. Por favor, espere ..."
+
+#: AppGUI/MainGUI.py:3649 App_Main.py:9059
+msgid "Shortcut Key List"
+msgstr "Lista de Teclas de Atalho"
+
+#: AppGUI/MainGUI.py:4010
+#, fuzzy
+#| msgid "Key Shortcut List"
+msgid "General Shortcut list"
+msgstr "Lista de Teclas de Atalho"
+
+#: AppGUI/MainGUI.py:4011
+msgid "SHOW SHORTCUT LIST"
+msgstr "Mostra Lista de Teclas de Atalho"
+
+#: AppGUI/MainGUI.py:4011
+msgid "Switch to Project Tab"
+msgstr "Alterna para a Aba Projeto"
+
+#: AppGUI/MainGUI.py:4011
+msgid "Switch to Selected Tab"
+msgstr "Alterna para a Aba Selecionado"
+
+#: AppGUI/MainGUI.py:4012
+msgid "Switch to Tool Tab"
+msgstr "Alterna para a Aba Ferramentas"
+
+#: AppGUI/MainGUI.py:4013
+msgid "New Gerber"
+msgstr "Novo Gerber"
+
+#: AppGUI/MainGUI.py:4013
+msgid "Edit Object (if selected)"
+msgstr "Editar Objeto (se selecionado)"
+
+#: AppGUI/MainGUI.py:4013 App_Main.py:5581
+msgid "Grid On/Off"
+msgstr "Liga/Desliga a Grade"
+
+#: AppGUI/MainGUI.py:4013
+msgid "Jump to Coordinates"
+msgstr "Ir para a Coordenada"
+
+#: AppGUI/MainGUI.py:4014
+msgid "New Excellon"
+msgstr "Novo Excellon"
+
+#: AppGUI/MainGUI.py:4014
+msgid "Move Obj"
+msgstr "Mover Obj"
+
+#: AppGUI/MainGUI.py:4014
+msgid "New Geometry"
+msgstr "Nova Geometria"
+
+#: AppGUI/MainGUI.py:4014
+msgid "Change Units"
+msgstr "Alternar Unidades"
+
+#: AppGUI/MainGUI.py:4015
+msgid "Open Properties Tool"
+msgstr "Abre Ferramenta Propriedades"
+
+#: AppGUI/MainGUI.py:4015
+msgid "Rotate by 90 degree CW"
+msgstr "Girar 90º sentido horário"
+
+#: AppGUI/MainGUI.py:4015
+msgid "Shell Toggle"
+msgstr "Alterna Linha de Comando"
+
+#: AppGUI/MainGUI.py:4016
+msgid ""
+"Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)"
+msgstr ""
+"Adicionar uma ferramenta (quando estiver na Aba Selecionado ou em "
+"Ferramentas NCC ou de Pintura)"
+
+#: AppGUI/MainGUI.py:4017
+msgid "Flip on X_axis"
+msgstr "Espelhar no Eixo X"
+
+#: AppGUI/MainGUI.py:4017
+msgid "Flip on Y_axis"
+msgstr "Espelhar no Eixo Y"
+
+#: AppGUI/MainGUI.py:4020
+msgid "Copy Obj"
+msgstr "Copiar Obj"
+
+#: AppGUI/MainGUI.py:4020
+msgid "Open Tools Database"
+msgstr "Abre Banco de Dados de Ferramentas"
+
+#: AppGUI/MainGUI.py:4021
+msgid "Open Excellon File"
+msgstr "Abrir Excellon"
+
+#: AppGUI/MainGUI.py:4021
+msgid "Open Gerber File"
+msgstr "Abrir Gerber"
+
+#: AppGUI/MainGUI.py:4021
+msgid "New Project"
+msgstr "Novo Projeto"
+
+#: AppGUI/MainGUI.py:4022 App_Main.py:6626 App_Main.py:6629
+msgid "Open Project"
+msgstr "Abrir Projeto"
+
+#: AppGUI/MainGUI.py:4022 AppTools/ToolPDF.py:41
+msgid "PDF Import Tool"
+msgstr "Ferramenta de Importação de PDF"
+
+#: AppGUI/MainGUI.py:4022
+msgid "Save Project"
+msgstr "Salvar Projeto"
+
+#: AppGUI/MainGUI.py:4022
+msgid "Toggle Plot Area"
+msgstr "Alternar Área de Gráficos"
+
+#: AppGUI/MainGUI.py:4025
+msgid "Copy Obj_Name"
+msgstr "Copiar Obj_Name"
+
+#: AppGUI/MainGUI.py:4026
+msgid "Toggle Code Editor"
+msgstr "Alternar o Editor de Códigos"
+
+#: AppGUI/MainGUI.py:4026
+msgid "Toggle the axis"
+msgstr "Alternar o Eixo"
+
+#: AppGUI/MainGUI.py:4026 AppGUI/MainGUI.py:4225 AppGUI/MainGUI.py:4312
+#: AppGUI/MainGUI.py:4434
+msgid "Distance Minimum Tool"
+msgstr "Ferramenta Distância Mínima"
+
+#: AppGUI/MainGUI.py:4027
+msgid "Open Preferences Window"
+msgstr "Abrir Preferências"
+
+#: AppGUI/MainGUI.py:4028
+msgid "Rotate by 90 degree CCW"
+msgstr "Girar 90° sentido anti-horário"
+
+#: AppGUI/MainGUI.py:4028
+msgid "Run a Script"
+msgstr "Executar um Script"
+
+#: AppGUI/MainGUI.py:4028
+msgid "Toggle the workspace"
+msgstr "Alternar Área de Trabalho"
+
+#: AppGUI/MainGUI.py:4028
+msgid "Skew on X axis"
+msgstr "Inclinação no eixo X"
+
+#: AppGUI/MainGUI.py:4029
+msgid "Skew on Y axis"
+msgstr "Inclinação no eixo Y"
+
+#: AppGUI/MainGUI.py:4032
+msgid "2-Sided PCB Tool"
+msgstr "PCB 2 Faces"
+
+#: AppGUI/MainGUI.py:4032
+msgid "Transformations Tool"
+msgstr "Transformações"
+
+#: AppGUI/MainGUI.py:4034
+msgid "Solder Paste Dispensing Tool"
+msgstr "Pasta de Solda"
+
+#: AppGUI/MainGUI.py:4035
+msgid "Film PCB Tool"
+msgstr "Ferramenta de Filme PCB"
+
+#: AppGUI/MainGUI.py:4035
+msgid "Non-Copper Clearing Tool"
+msgstr "Área Sem Cobre (NCC)"
+
+#: AppGUI/MainGUI.py:4036
+msgid "Paint Area Tool"
+msgstr "Área de Pintura"
+
+#: AppGUI/MainGUI.py:4036
+msgid "Rules Check Tool"
+msgstr "Ferramenta de Verificação de Regras"
+
+#: AppGUI/MainGUI.py:4037
+msgid "View File Source"
+msgstr "Ver Arquivo Fonte"
+
+#: AppGUI/MainGUI.py:4038
+msgid "Cutout PCB Tool"
+msgstr "Ferramenta de Recorte"
+
+#: AppGUI/MainGUI.py:4038
+msgid "Enable all Plots"
+msgstr "Habilitar todos os Gráficos"
+
+#: AppGUI/MainGUI.py:4038
+msgid "Disable all Plots"
+msgstr "Desabilitar todos os Gráficos"
+
+#: AppGUI/MainGUI.py:4038
+msgid "Disable Non-selected Plots"
+msgstr "Desabilitar os gráficos não selecionados"
+
+#: AppGUI/MainGUI.py:4039
+msgid "Toggle Full Screen"
+msgstr "Alternar Tela Cheia"
+
+#: AppGUI/MainGUI.py:4042
+msgid "Abort current task (gracefully)"
+msgstr "Abortar a tarefa atual (normalmente)"
+
+#: AppGUI/MainGUI.py:4045
+msgid "Save Project As"
+msgstr "Salvar Projeto Como"
+
+#: AppGUI/MainGUI.py:4046
+msgid ""
+"Paste Special. Will convert a Windows path style to the one required in Tcl "
+"Shell"
+msgstr ""
+"Colar Especial. Converterá um estilo de caminho do Windows para o exigido na "
+"Linha de Comando Tcl"
+
+#: AppGUI/MainGUI.py:4049
+msgid "Open Online Manual"
+msgstr "Abrir Manual Online"
+
+#: AppGUI/MainGUI.py:4050
+msgid "Open Online Tutorials"
+msgstr "Abrir Tutoriais Online"
+
+#: AppGUI/MainGUI.py:4050
+msgid "Refresh Plots"
+msgstr "Atualizar Gráfico"
+
+#: AppGUI/MainGUI.py:4050 AppTools/ToolSolderPaste.py:509
+msgid "Delete Object"
+msgstr "Excluir Objeto"
+
+#: AppGUI/MainGUI.py:4050
+msgid "Alternate: Delete Tool"
+msgstr "Alternativo: Excluir Ferramenta"
+
+#: AppGUI/MainGUI.py:4051
+msgid "(left to Key_1)Toggle Notebook Area (Left Side)"
+msgstr "(esquerda da Tecla_1) Alterna Área do Bloco de Notas (lado esquerdo)"
+
+#: AppGUI/MainGUI.py:4051
+msgid "En(Dis)able Obj Plot"
+msgstr "Des(h)abilitar Gráfico"
+
+#: AppGUI/MainGUI.py:4052
+msgid "Deselects all objects"
+msgstr "Desmarca todos os objetos"
+
+#: AppGUI/MainGUI.py:4066
+msgid "Editor Shortcut list"
+msgstr "Lista de Teclas de Atalho"
+
+#: AppGUI/MainGUI.py:4220
+msgid "GEOMETRY EDITOR"
+msgstr "Editor de Geometria"
+
+#: AppGUI/MainGUI.py:4220
+msgid "Draw an Arc"
+msgstr "Desenha um Arco"
+
+#: AppGUI/MainGUI.py:4220
+msgid "Copy Geo Item"
+msgstr "Copiar Geo"
+
+#: AppGUI/MainGUI.py:4221
+msgid "Within Add Arc will toogle the ARC direction: CW or CCW"
+msgstr "Em Adicionar Arco, alterna o sentido: horário ou anti-horário"
+
+#: AppGUI/MainGUI.py:4221
+msgid "Polygon Intersection Tool"
+msgstr "Interseção de Polígonos"
+
+#: AppGUI/MainGUI.py:4222
+msgid "Geo Paint Tool"
+msgstr "Ferramenta de Pintura"
+
+#: AppGUI/MainGUI.py:4222 AppGUI/MainGUI.py:4311 AppGUI/MainGUI.py:4431
+msgid "Jump to Location (x, y)"
+msgstr "Ir para a Localização (x, y)"
+
+#: AppGUI/MainGUI.py:4222
+msgid "Toggle Corner Snap"
+msgstr "Alternar Encaixe de Canto"
+
+#: AppGUI/MainGUI.py:4222
+msgid "Move Geo Item"
+msgstr "Mover Geometria"
+
+#: AppGUI/MainGUI.py:4223
+msgid "Within Add Arc will cycle through the ARC modes"
+msgstr "Em Adicionar Arco, alterna o tipo de arco"
+
+#: AppGUI/MainGUI.py:4223
+msgid "Draw a Polygon"
+msgstr "Desenha um Polígono"
+
+#: AppGUI/MainGUI.py:4223
+msgid "Draw a Circle"
+msgstr "Desenha um Círculo"
+
+#: AppGUI/MainGUI.py:4224
+msgid "Draw a Path"
+msgstr "Desenha um Caminho"
+
+#: AppGUI/MainGUI.py:4224
+msgid "Draw Rectangle"
+msgstr "Desenha um Retângulo"
+
+#: AppGUI/MainGUI.py:4224
+msgid "Polygon Subtraction Tool"
+msgstr "Ferram. de Subtração de Polígono"
+
+#: AppGUI/MainGUI.py:4224
+msgid "Add Text Tool"
+msgstr "Ferramenta de Texto"
+
+#: AppGUI/MainGUI.py:4225
+msgid "Polygon Union Tool"
+msgstr "União de Polígonos"
+
+#: AppGUI/MainGUI.py:4225
+msgid "Flip shape on X axis"
+msgstr "Espelhar no Eixo X"
+
+#: AppGUI/MainGUI.py:4225
+msgid "Flip shape on Y axis"
+msgstr "Espelhar no Eixo Y"
+
+#: AppGUI/MainGUI.py:4226
+msgid "Skew shape on X axis"
+msgstr "Inclinação no eixo X"
+
+#: AppGUI/MainGUI.py:4226
+msgid "Skew shape on Y axis"
+msgstr "Inclinação no eixo Y"
+
+#: AppGUI/MainGUI.py:4226
+msgid "Editor Transformation Tool"
+msgstr "Ferramenta Transformar"
+
+#: AppGUI/MainGUI.py:4227
+msgid "Offset shape on X axis"
+msgstr "Deslocamento no eixo X"
+
+#: AppGUI/MainGUI.py:4227
+msgid "Offset shape on Y axis"
+msgstr "Deslocamento no eixo Y"
+
+#: AppGUI/MainGUI.py:4228 AppGUI/MainGUI.py:4314 AppGUI/MainGUI.py:4436
+msgid "Save Object and Exit Editor"
+msgstr "Salvar Objeto e Fechar o Editor"
+
+#: AppGUI/MainGUI.py:4228
+msgid "Polygon Cut Tool"
+msgstr "Corte de Polígonos"
+
+#: AppGUI/MainGUI.py:4229
+msgid "Rotate Geometry"
+msgstr "Girar Geometria"
+
+#: AppGUI/MainGUI.py:4229
+msgid "Finish drawing for certain tools"
+msgstr "Concluir desenho para certas ferramentas"
+
+#: AppGUI/MainGUI.py:4229 AppGUI/MainGUI.py:4314 AppGUI/MainGUI.py:4434
+msgid "Abort and return to Select"
+msgstr "Abortar e retornar à Seleção"
+
+#: AppGUI/MainGUI.py:4310
+msgid "EXCELLON EDITOR"
+msgstr "Editor Excellon"
+
+#: AppGUI/MainGUI.py:4310
+msgid "Copy Drill(s)"
+msgstr "Copiar Furo(s)"
+
+#: AppGUI/MainGUI.py:4311
+msgid "Move Drill(s)"
+msgstr "Mover Furo(s)"
+
+#: AppGUI/MainGUI.py:4312
+msgid "Add a new Tool"
+msgstr "Adicionar Ferramenta"
+
+#: AppGUI/MainGUI.py:4313
+msgid "Delete Drill(s)"
+msgstr "Excluir Furo(s)"
+
+#: AppGUI/MainGUI.py:4313
+msgid "Alternate: Delete Tool(s)"
+msgstr "Alternativo: Excluir Ferramenta(s)"
+
+#: AppGUI/MainGUI.py:4430
+msgid "GERBER EDITOR"
+msgstr "Editor Gerber"
+
+#: AppGUI/MainGUI.py:4430
+msgid "Add Disc"
+msgstr "Adicionar Disco"
+
+#: AppGUI/MainGUI.py:4430
+msgid "Add SemiDisc"
+msgstr "Adicionar SemiDisco"
+
+#: AppGUI/MainGUI.py:4432
+msgid "Within Track & Region Tools will cycle in REVERSE the bend modes"
+msgstr ""
+"Nas Ferramentas de Trilha e Região, alternará REVERSAMENTE entre os modos"
+
+#: AppGUI/MainGUI.py:4433
+msgid "Within Track & Region Tools will cycle FORWARD the bend modes"
+msgstr ""
+"Nas Ferramentas de Trilha e Região, alternará para frente entre os modos"
+
+#: AppGUI/MainGUI.py:4434
+msgid "Alternate: Delete Apertures"
+msgstr "Alternativo: Excluir Abertura"
+
+#: AppGUI/MainGUI.py:4435
+msgid "Eraser Tool"
+msgstr "Ferramenta Apagar"
+
+#: AppGUI/MainGUI.py:4436
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:220
+msgid "Mark Area Tool"
+msgstr "Marcar Área"
+
+#: AppGUI/MainGUI.py:4436
+msgid "Poligonize Tool"
+msgstr "Poligonizar"
+
+#: AppGUI/MainGUI.py:4436
+msgid "Transformation Tool"
+msgstr "Ferramenta Transformação"
+
+#: AppGUI/ObjectUI.py:38
+msgid "FlatCAM Object"
+msgstr "Objeto FlatCAM"
+
+#: AppGUI/ObjectUI.py:78
+msgid ""
+"BASIC is suitable for a beginner. Many parameters\n"
+"are hidden from the user in this mode.\n"
+"ADVANCED mode will make available all parameters.\n"
+"\n"
+"To change the application LEVEL, go to:\n"
+"Edit -> Preferences -> General and check:\n"
+"'APP. LEVEL' radio button."
+msgstr ""
+"BÁSICO é adequado para um iniciante. Muitos parâmetros\n"
+" estão ocultos do usuário neste modo.\n"
+"O modo AVANÇADO disponibilizará todos os parâmetros.\n"
+"\n"
+"Para alterar o NÍVEL do aplicativo, vá para:\n"
+"Editar -> Preferências -> Geral e verificar\n"
+"o botão de rádio 'Nível do Aplicativo\"."
+
+#: AppGUI/ObjectUI.py:111
+msgid "Geometrical transformations of the current object."
+msgstr "Transformação geométrica do objeto atual."
+
+#: AppGUI/ObjectUI.py:120
+msgid ""
+"Factor by which to multiply\n"
+"geometric features of this object.\n"
+"Expressions are allowed. E.g: 1/25.4"
+msgstr ""
+"Fator pelo qual multiplicar recursos\n"
+"geométricos deste objeto.\n"
+"Expressões são permitidas. Por exemplo: 1 / 25.4"
+
+#: AppGUI/ObjectUI.py:127
+msgid "Perform scaling operation."
+msgstr "Realiza a operação de dimensionamento."
+
+#: AppGUI/ObjectUI.py:138
+msgid ""
+"Amount by which to move the object\n"
+"in the x and y axes in (x, y) format.\n"
+"Expressions are allowed. E.g: (1/3.2, 0.5*3)"
+msgstr ""
+"Quanto mover o objeto\n"
+"nos eixos x e y no formato (x, y).\n"
+"Expressões são permitidas. Por exemplo: (1/3.2, 0.5*3)"
+
+#: AppGUI/ObjectUI.py:145
+msgid "Perform the offset operation."
+msgstr "Executa a operação de deslocamento."
+
+#: AppGUI/ObjectUI.py:157 AppGUI/ObjectUI.py:164 AppTool.py:281 AppTool.py:287
+msgid "Edited value is out of range"
+msgstr "Valor fora da faixa"
+
+#: AppGUI/ObjectUI.py:159 AppGUI/ObjectUI.py:166 AppTool.py:283 AppTool.py:289
+msgid "Edited value is within limits."
+msgstr "O valor editado está dentro dos limites."
+
+#: AppGUI/ObjectUI.py:178
+msgid "Gerber Object"
+msgstr "Objeto Gerber"
+
+#: AppGUI/ObjectUI.py:187 AppGUI/ObjectUI.py:730 AppGUI/ObjectUI.py:1528
+#: AppGUI/ObjectUI.py:2335 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:30
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:33
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:31
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:31
+msgid "Plot Options"
+msgstr "Opções de Gráfico"
+
+#: AppGUI/ObjectUI.py:193 AppGUI/ObjectUI.py:731
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:45
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:38
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119
+#: AppTools/ToolCopperThieving.py:191
+msgid "Solid"
+msgstr "Preenchido"
+
+#: AppGUI/ObjectUI.py:195 AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:40
+msgid "Solid color polygons."
+msgstr "Polígonos com cor sólida."
+
+#: AppGUI/ObjectUI.py:201
+msgid "Multi-Color"
+msgstr "Multicolorido"
+
+#: AppGUI/ObjectUI.py:203 AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:47
+msgid "Draw polygons in different colors."
+msgstr "Desenha polígonos em cores diferentes."
+
+#: AppGUI/ObjectUI.py:209 AppGUI/ObjectUI.py:769
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:39
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:35
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:52
+msgid "Plot"
+msgstr "Gráfico"
+
+#: AppGUI/ObjectUI.py:211 AppGUI/ObjectUI.py:771 AppGUI/ObjectUI.py:1588
+#: AppGUI/ObjectUI.py:2445 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:41
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:37
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:54
+msgid "Plot (show) this object."
+msgstr "Mostra o objeto no gráfico."
+
+#: AppGUI/ObjectUI.py:239
+msgid ""
+"Toggle the display of the Gerber Apertures Table.\n"
+"When unchecked, it will delete all mark shapes\n"
+"that are drawn on canvas."
+msgstr ""
+"Alterna a exibição da Tabela de Aberturas Gerber.\n"
+"Quando desmarcada, serão excluídas todas as formas de marcas\n"
+"desenhadas na tela."
+
+#: AppGUI/ObjectUI.py:249
+msgid "Mark All"
+msgstr "Marcar Todos"
+
+#: AppGUI/ObjectUI.py:251
+msgid ""
+"When checked it will display all the apertures.\n"
+"When unchecked, it will delete all mark shapes\n"
+"that are drawn on canvas."
+msgstr ""
+"Quando marcado, serão mostradas todas as aberturas.\n"
+"Quando desmarcado, serão apagadas todas as formas de marcas\n"
+"desenhadas na tela."
+
+#: AppGUI/ObjectUI.py:279
+msgid "Mark the aperture instances on canvas."
+msgstr "Marque as instâncias de abertura na tela."
+
+#: AppGUI/ObjectUI.py:291 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:32
+msgid "Isolation Routing"
+msgstr "Roteamento de Isolação"
+
+#: AppGUI/ObjectUI.py:293 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:34
+msgid ""
+"Create a Geometry object with\n"
+"toolpaths to cut outside polygons."
+msgstr ""
+"Cria um objeto Geometria com caminho de\n"
+"ferramenta para cortar polígonos externos."
+
+#: AppGUI/ObjectUI.py:311
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:69
+msgid ""
+"Choose which tool to use for Gerber isolation:\n"
+"'Circular' or 'V-shape'.\n"
+"When the 'V-shape' is selected then the tool\n"
+"diameter will depend on the chosen cut depth."
+msgstr ""
+"Escolha qual ferramenta usar para a isolação do Gerber:\n"
+"'Circular' ou 'ponta-V'.\n"
+"Quando 'ponta em V' for selecionada, o diâmetro da\n"
+"ferramenta dependerá da profundidade de corte escolhida."
+
+#: AppGUI/ObjectUI.py:317
+msgid "V-Shape"
+msgstr "Forma-V"
+
+#: AppGUI/ObjectUI.py:323 AppGUI/ObjectUI.py:1774
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:81
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:72
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:78
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:85 AppTools/ToolNCC.py:233
+#: AppTools/ToolNCC.py:240 AppTools/ToolPaint.py:215
+msgid "V-Tip Dia"
+msgstr "Diâmetro da Ponta"
+
+#: AppGUI/ObjectUI.py:325 AppGUI/ObjectUI.py:1777
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:83
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:74
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:80 AppTools/ToolNCC.py:235
+#: AppTools/ToolPaint.py:217
+msgid "The tip diameter for V-Shape Tool"
+msgstr "O diâmetro da ponta da ferramenta em forma de V"
+
+#: AppGUI/ObjectUI.py:336 AppGUI/ObjectUI.py:1789
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:94
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:84
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:91
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:99 AppTools/ToolNCC.py:246
+#: AppTools/ToolNCC.py:254 AppTools/ToolPaint.py:228
+msgid "V-Tip Angle"
+msgstr "Ângulo Ponta-V"
+
+#: AppGUI/ObjectUI.py:338 AppGUI/ObjectUI.py:1792
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:96
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:86
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:93 AppTools/ToolNCC.py:248
+#: AppTools/ToolPaint.py:230
+msgid ""
+"The tip angle for V-Shape Tool.\n"
+"In degree."
+msgstr "O ângulo da ponta da ferramenta em forma de V, em graus."
+
+#: AppGUI/ObjectUI.py:352 AppGUI/ObjectUI.py:1808
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:50
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:109
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61
+#: AppObjects/FlatCAMGeometry.py:1229 AppTools/ToolCutOut.py:141
+msgid ""
+"Cutting depth (negative)\n"
+"below the copper surface."
+msgstr ""
+"Profundidade de corte (negativo)\n"
+"abaixo da superfície de cobre."
+
+#: AppGUI/ObjectUI.py:366
+msgid ""
+"Diameter of the cutting tool.\n"
+"If you want to have an isolation path\n"
+"inside the actual shape of the Gerber\n"
+"feature, use a negative value for\n"
+"this parameter."
+msgstr ""
+"Diâmetro da ferramenta de corte.\n"
+"Se desejar ter um caminho de isolação dentro da forma\n"
+"atual do recurso Gerber, use um valor negativo para\n"
+"este parâmetro."
+
+#: AppGUI/ObjectUI.py:382 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:56
+msgid "# Passes"
+msgstr "Passes"
+
+#: AppGUI/ObjectUI.py:384 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:58
+msgid ""
+"Width of the isolation gap in\n"
+"number (integer) of tool widths."
+msgstr ""
+"Largura da isolação em relação à\n"
+"largura da ferramenta (número inteiro)."
+
+#: AppGUI/ObjectUI.py:395 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:68
+msgid "Pass overlap"
+msgstr "Sobreposição"
+
+#: AppGUI/ObjectUI.py:397 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:70
+msgid "How much (percentage) of the tool width to overlap each tool pass."
+msgstr ""
+"Quanto (percentual) da largura da ferramenta é sobreposta a cada passagem da "
+"ferramenta."
+
+#: AppGUI/ObjectUI.py:411
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:58
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:97
+msgid ""
+"Milling type:\n"
+"- climb / best for precision milling and to reduce tool usage\n"
+"- conventional / useful when there is no backlash compensation"
+msgstr ""
+"Tipo de fresamento:\n"
+"- subida: melhor para fresamento de precisão e para reduzir o uso da "
+"ferramenta\n"
+"- convencional: útil quando não há compensação de folga"
+
+#: AppGUI/ObjectUI.py:421
+msgid "Combine"
+msgstr "Combinar"
+
+#: AppGUI/ObjectUI.py:423 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:109
+msgid "Combine all passes into one object"
+msgstr "Combinar todos os passes em um objeto"
+
+#: AppGUI/ObjectUI.py:427
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:43
+msgid "\"Follow\""
+msgstr "\"Segue\""
+
+#: AppGUI/ObjectUI.py:428
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:45
+msgid ""
+"Generate a 'Follow' geometry.\n"
+"This means that it will cut through\n"
+"the middle of the trace."
+msgstr ""
+"Gera uma geometria 'Segue'.\n"
+"Isso significa que ele cortará\n"
+"no meio do traço."
+
+#: AppGUI/ObjectUI.py:434
+msgid "Except"
+msgstr "Exceto"
+
+#: AppGUI/ObjectUI.py:437
+msgid ""
+"When the isolation geometry is generated,\n"
+"by checking this, the area of the object below\n"
+"will be subtracted from the isolation geometry."
+msgstr ""
+"Quando marcado, na geração da geometria de isolação,\n"
+"a área do objeto abaixo será subtraída da geometria\n"
+"de isolação."
+
+#: AppGUI/ObjectUI.py:450
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:97
+#: AppObjects/FlatCAMGerber.py:239 AppObjects/FlatCAMGerber.py:327
+#: AppTools/ToolAlignObjects.py:73 AppTools/ToolAlignObjects.py:109
+#: AppTools/ToolCalibration.py:196 AppTools/ToolCalibration.py:631
+#: AppTools/ToolCalibration.py:648 AppTools/ToolCalibration.py:807
+#: AppTools/ToolCalibration.py:815 AppTools/ToolCopperThieving.py:144
+#: AppTools/ToolCopperThieving.py:158 AppTools/ToolCopperThieving.py:604
+#: AppTools/ToolCutOut.py:91 AppTools/ToolDblSided.py:224
+#: AppTools/ToolFilm.py:68 AppTools/ToolFilm.py:91 AppTools/ToolImage.py:49
+#: AppTools/ToolImage.py:252 AppTools/ToolImage.py:273 AppTools/ToolNCC.py:96
+#: AppTools/ToolNCC.py:558 AppTools/ToolNCC.py:1300 AppTools/ToolPaint.py:501
+#: AppTools/ToolPaint.py:705 AppTools/ToolPanelize.py:116
+#: AppTools/ToolPanelize.py:210 AppTools/ToolPanelize.py:385
+#: AppTools/ToolPanelize.py:402
+msgid "Gerber"
+msgstr "Gerber"
+
+#: AppGUI/ObjectUI.py:457 AppTools/ToolNCC.py:86 AppTools/ToolPaint.py:79
+msgid "Obj Type"
+msgstr "Tipo Obj"
+
+#: AppGUI/ObjectUI.py:459
+msgid ""
+"Specify the type of object to be excepted from isolation.\n"
+"It can be of type: Gerber or Geometry.\n"
+"What is selected here will dictate the kind\n"
+"of objects that will populate the 'Object' combobox."
+msgstr ""
+"Especifica o tipo de objeto a ser excluído da isolação.\n"
+"Pode ser do tipo: Gerber ou Geometria.\n"
+"Esta seleção ditará o tipo de objetos que preencherão\n"
+"a caixa de combinação 'Objeto'."
+
+#: AppGUI/ObjectUI.py:472 AppGUI/ObjectUI.py:1324 AppGUI/ObjectUI.py:2158
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:48
+#: AppTools/ToolCalibration.py:186 AppTools/ToolNCC.py:109
+#: AppTools/ToolPaint.py:102 AppTools/ToolPanelize.py:98
+#: AppTools/ToolQRCode.py:78
+msgid "Object"
+msgstr "Objeto"
+
+#: AppGUI/ObjectUI.py:473
+msgid "Object whose area will be removed from isolation geometry."
+msgstr "Objeto cuja área será removida da geometria de isolação."
+
+#: AppGUI/ObjectUI.py:480 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:82
+msgid "Scope"
+msgstr "Escopo"
+
+#: AppGUI/ObjectUI.py:482 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:84
+msgid ""
+"Isolation scope. Choose what to isolate:\n"
+"- 'All' -> Isolate all the polygons in the object\n"
+"- 'Selection' -> Isolate a selection of polygons."
+msgstr ""
+"Escopo de isolação. Escolha o que isolar:\n"
+"- 'Tudo' -> Isola todos os polígonos no objeto\n"
+"- 'Seleção' -> Isola uma seleção de polígonos."
+
+#: AppGUI/ObjectUI.py:487
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:307
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:89
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:311
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:258
+#: AppTools/ToolNCC.py:539 AppTools/ToolPaint.py:455
+msgid "Selection"
+msgstr "Seleção"
+
+#: AppGUI/ObjectUI.py:495
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:122
+msgid "Isolation Type"
+msgstr "Tipo de Isolação"
+
+#: AppGUI/ObjectUI.py:497
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:124
+msgid ""
+"Choose how the isolation will be executed:\n"
+"- 'Full' -> complete isolation of polygons\n"
+"- 'Ext' -> will isolate only on the outside\n"
+"- 'Int' -> will isolate only on the inside\n"
+"'Exterior' isolation is almost always possible\n"
+"(with the right tool) but 'Interior'\n"
+"isolation can be done only when there is an opening\n"
+"inside of the polygon (e.g polygon is a 'doughnut' shape)."
+msgstr ""
+"Escolha como a isolação será executada:\n"
+"- 'Completa' -> isolação completa de polígonos\n"
+"- 'Ext' -> isolará apenas do lado de fora\n"
+"- 'Int' -> isolará apenas por dentro\n"
+"A isolação 'exterior' é quase sempre possível\n"
+"(com a ferramenta certa), mas isolação \"Interior\"\n"
+"pode ser feita somente quando houver uma abertura\n"
+"dentro do polígono (por exemplo, o polígono é em forma de \"rosca\")."
+
+#: AppGUI/ObjectUI.py:506
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:133
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:154
+msgid "Full"
+msgstr "Completa"
+
+#: AppGUI/ObjectUI.py:507
+msgid "Ext"
+msgstr "Ext"
+
+#: AppGUI/ObjectUI.py:508
+msgid "Int"
+msgstr "Int"
+
+#: AppGUI/ObjectUI.py:513
+msgid "Generate Isolation Geometry"
+msgstr "Gerar Geometria de Isolação"
+
+#: AppGUI/ObjectUI.py:521
+msgid ""
+"Create a Geometry object with toolpaths to cut \n"
+"isolation outside, inside or on both sides of the\n"
+"object. For a Gerber object outside means outside\n"
+"of the Gerber feature and inside means inside of\n"
+"the Gerber feature, if possible at all. This means\n"
+"that only if the Gerber feature has openings inside, they\n"
+"will be isolated. If what is wanted is to cut isolation\n"
+"inside the actual Gerber feature, use a negative tool\n"
+"diameter above."
+msgstr ""
+"Cria um objeto Geometria com caminhos da ferramenta para\n"
+"cortar a isolação por fora, por dentro ou em ambos os lados\n"
+"do objeto. Para um objeto Gerber externo significa por fora\n"
+"do recurso Gerber e interno significa por dentro do recurso\n"
+"Gerber, se possível. Isso significa que somente se o recurso\n"
+"Gerber tiver aberturas internas, elas serão isoladas. Se o\n"
+"desejado é cortar a isolação dentro do recurso Gerber, use uma\n"
+"ferramenta negativa diâmetro acima."
+
+#: AppGUI/ObjectUI.py:533
+msgid "Buffer Solid Geometry"
+msgstr "Buffer de Geometria Sólida"
+
+#: AppGUI/ObjectUI.py:535
+msgid ""
+"This button is shown only when the Gerber file\n"
+"is loaded without buffering.\n"
+"Clicking this will create the buffered geometry\n"
+"required for isolation."
+msgstr ""
+"Este botão é mostrado apenas quando o arquivo Gerber\n"
+"é carregado sem buffer.\n"
+"Clicar neste botão criará o buffer da geometria\n"
+"necessário para a isolação."
+
+#: AppGUI/ObjectUI.py:567
+msgid "Clear N-copper"
+msgstr "Limpa N-cobre"
+
+#: AppGUI/ObjectUI.py:569 AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:33
+msgid ""
+"Create a Geometry object with\n"
+"toolpaths to cut all non-copper regions."
+msgstr ""
+"Cria um objeto Geometria com caminho de ferramenta\n"
+"para cortar todas as regiões com retirada de cobre."
+
+#: AppGUI/ObjectUI.py:576 AppGUI/ObjectUI.py:2289 AppTools/ToolNCC.py:599
+msgid ""
+"Create the Geometry Object\n"
+"for non-copper routing."
+msgstr ""
+"Cria o Objeto de Geometria\n"
+"para roteamento de zona sem cobre."
+
+#: AppGUI/ObjectUI.py:589
+msgid "Board cutout"
+msgstr "Recorte da placa"
+
+#: AppGUI/ObjectUI.py:591 AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:34
+msgid ""
+"Create toolpaths to cut around\n"
+"the PCB and separate it from\n"
+"the original board."
+msgstr ""
+"Cria caminhos da ferramenta para cortar\n"
+"o PCB e separá-lo da placa original."
+
+#: AppGUI/ObjectUI.py:598
+msgid ""
+"Generate the geometry for\n"
+"the board cutout."
+msgstr "Gera a geometria para o recorte da placa."
+
+#: AppGUI/ObjectUI.py:616 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:119
+msgid "Non-copper regions"
+msgstr "Zona sem cobre"
+
+#: AppGUI/ObjectUI.py:618 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:121
+msgid ""
+"Create polygons covering the\n"
+"areas without copper on the PCB.\n"
+"Equivalent to the inverse of this\n"
+"object. Can be used to remove all\n"
+"copper from a specified region."
+msgstr ""
+"Cria polígonos cobrindo as\n"
+"zonas sem cobre no PCB.\n"
+"Equivalente ao inverso do\n"
+"objeto. Pode ser usado para remover todo o\n"
+"cobre de uma região especificada."
+
+#: AppGUI/ObjectUI.py:628 AppGUI/ObjectUI.py:669
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:133
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:166
+msgid "Boundary Margin"
+msgstr "Margem Limite"
+
+#: AppGUI/ObjectUI.py:630 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:135
+msgid ""
+"Specify the edge of the PCB\n"
+"by drawing a box around all\n"
+"objects with this minimum\n"
+"distance."
+msgstr ""
+"Especifica a borda do PCB\n"
+"desenhando uma caixa em volta de todos os\n"
+"objetos com esta distância mínima."
+
+#: AppGUI/ObjectUI.py:645 AppGUI/ObjectUI.py:683
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:148
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:179
+msgid "Rounded Geo"
+msgstr "Geo Arredondado"
+
+#: AppGUI/ObjectUI.py:647 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:150
+msgid "Resulting geometry will have rounded corners."
+msgstr "A geometria resultante terá cantos arredondados."
+
+#: AppGUI/ObjectUI.py:651 AppGUI/ObjectUI.py:692
+#: AppTools/ToolSolderPaste.py:134
+msgid "Generate Geo"
+msgstr "Gerar Geo"
+
+#: AppGUI/ObjectUI.py:661 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:160
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137
+#: AppTools/ToolPanelize.py:99 AppTools/ToolQRCode.py:192
+msgid "Bounding Box"
+msgstr "Caixa Delimitadora"
+
+#: AppGUI/ObjectUI.py:663
+msgid ""
+"Create a geometry surrounding the Gerber object.\n"
+"Square shape."
+msgstr ""
+"Crie uma geometria em torno do objeto Gerber.\n"
+"Forma quadrada."
+
+#: AppGUI/ObjectUI.py:671 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:168
+msgid ""
+"Distance of the edges of the box\n"
+"to the nearest polygon."
+msgstr ""
+"Distância das bordas da caixa\n"
+"para o polígono mais próximo."
+
+#: AppGUI/ObjectUI.py:685 AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:181
+msgid ""
+"If the bounding box is \n"
+"to have rounded corners\n"
+"their radius is equal to\n"
+"the margin."
+msgstr ""
+"Se a caixa delimitadora tiver\n"
+"cantos arredondados, o seu raio\n"
+"é igual à margem."
+
+#: AppGUI/ObjectUI.py:694
+msgid "Generate the Geometry object."
+msgstr "Gera o objeto Geometria."
+
+#: AppGUI/ObjectUI.py:721
+msgid "Excellon Object"
+msgstr "Objeto Excellon"
+
+#: AppGUI/ObjectUI.py:733
+msgid "Solid circles."
+msgstr "Círculos preenchidos ou vazados."
+
+#: AppGUI/ObjectUI.py:781 AppGUI/ObjectUI.py:876 AppGUI/ObjectUI.py:2466
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:71
+#: AppTools/ToolProperties.py:166
+msgid "Drills"
+msgstr "Furos"
+
+#: AppGUI/ObjectUI.py:781 AppGUI/ObjectUI.py:877 AppGUI/ObjectUI.py:2466
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:158
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:72
+#: AppTools/ToolProperties.py:168
+msgid "Slots"
+msgstr "Ranhuras"
+
+#: AppGUI/ObjectUI.py:786
+msgid ""
+"This is the Tool Number.\n"
+"When ToolChange is checked, on toolchange event this value\n"
+"will be showed as a T1, T2 ... Tn in the Machine Code.\n"
+"\n"
+"Here the tools are selected for G-code generation."
+msgstr ""
+"Número da Ferramenta.\n"
+"Quando Trocar Ferramentas estiver marcado, este valor\n"
+" será mostrado como T1, T2 ... Tn no Código da Máquina."
+
+#: AppGUI/ObjectUI.py:791 AppGUI/ObjectUI.py:1612 AppTools/ToolPaint.py:141
+msgid ""
+"Tool Diameter. It's value (in current FlatCAM units) \n"
+"is the cut width into the material."
+msgstr ""
+"Diâmetro da Ferramenta. É a largura do corte no material\n"
+"(nas unidades atuais do FlatCAM)."
+
+#: AppGUI/ObjectUI.py:794
+msgid ""
+"The number of Drill holes. Holes that are drilled with\n"
+"a drill bit."
+msgstr "Número de Furos. Serão perfurados com brocas."
+
+#: AppGUI/ObjectUI.py:797
+msgid ""
+"The number of Slot holes. Holes that are created by\n"
+"milling them with an endmill bit."
+msgstr "Número de Ranhuras (Fendas). Serão criadas com fresas."
+
+#: AppGUI/ObjectUI.py:800
+msgid ""
+"Toggle display of the drills for the current tool.\n"
+"This does not select the tools for G-code generation."
+msgstr ""
+"Alterna a exibição da ferramenta atual. Isto não seleciona a ferramenta para "
+"geração do G-Code."
+
+#: AppGUI/ObjectUI.py:818 AppGUI/ObjectUI.py:1764
+#: AppObjects/FlatCAMExcellon.py:527 AppObjects/FlatCAMExcellon.py:805
+#: AppObjects/FlatCAMExcellon.py:821 AppObjects/FlatCAMExcellon.py:825
+#: AppObjects/FlatCAMGeometry.py:322 AppObjects/FlatCAMGeometry.py:816
+#: AppObjects/FlatCAMGeometry.py:852 AppTools/ToolNCC.py:331
+#: AppTools/ToolNCC.py:797 AppTools/ToolNCC.py:811 AppTools/ToolNCC.py:1196
+#: AppTools/ToolPaint.py:313 AppTools/ToolPaint.py:766
+#: AppTools/ToolPaint.py:778 AppTools/ToolPaint.py:1170
+msgid "Parameters for"
+msgstr "Parâmetros para"
+
+#: AppGUI/ObjectUI.py:821 AppGUI/ObjectUI.py:1767 AppTools/ToolNCC.py:334
+#: AppTools/ToolPaint.py:316
+msgid ""
+"The data used for creating GCode.\n"
+"Each tool store it's own set of such data."
+msgstr ""
+"Os dados usados para criar o G-Code.\n"
+"Cada loja de ferramentas possui seu próprio conjunto de dados."
+
+#: AppGUI/ObjectUI.py:847
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:48
+msgid ""
+"Operation type:\n"
+"- Drilling -> will drill the drills/slots associated with this tool\n"
+"- Milling -> will mill the drills/slots"
+msgstr ""
+"Tipo de operação:\n"
+"- Perfuração -> faz os furos/ranhuras associados a esta ferramenta\n"
+"- Fresamento -> fresar os furos/ranhuras"
+
+#: AppGUI/ObjectUI.py:853
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:54
+msgid "Drilling"
+msgstr "Perfuração"
+
+#: AppGUI/ObjectUI.py:854
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:55
+msgid "Milling"
+msgstr "Fresamento"
+
+#: AppGUI/ObjectUI.py:869
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:64
+msgid ""
+"Milling type:\n"
+"- Drills -> will mill the drills associated with this tool\n"
+"- Slots -> will mill the slots associated with this tool\n"
+"- Both -> will mill both drills and mills or whatever is available"
+msgstr ""
+"Tipo de fresamento:\n"
+"- Furos -> fresará os furos associados a esta ferramenta\n"
+"- Ranhuras -> fresará as ranhuras associadas a esta ferramenta\n"
+"- Ambos -> fresará furos e ranhuras ou o que estiver disponível"
+
+#: AppGUI/ObjectUI.py:878
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:73
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:210
+#: AppTools/ToolFilm.py:241
+msgid "Both"
+msgstr "Ambos"
+
+#: AppGUI/ObjectUI.py:886
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:80
+msgid "Milling Diameter"
+msgstr "Diâmetro da Fresa"
+
+#: AppGUI/ObjectUI.py:888
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:82
+msgid "The diameter of the tool who will do the milling"
+msgstr "Diâmetro da ferramenta de fresamento."
+
+#: AppGUI/ObjectUI.py:902
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:95
+msgid ""
+"Drill depth (negative)\n"
+"below the copper surface."
+msgstr ""
+"Profundidade do furo (negativo)\n"
+"abaixo da superfície de cobre."
+
+#: AppGUI/ObjectUI.py:921 AppGUI/ObjectUI.py:1826
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:113
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:68
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79
+#: AppTools/ToolCutOut.py:159
+msgid "Multi-Depth"
+msgstr "Multi-Profundidade"
+
+#: AppGUI/ObjectUI.py:924 AppGUI/ObjectUI.py:1829
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:116
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:71
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82
+#: AppTools/ToolCutOut.py:162
+msgid ""
+"Use multiple passes to limit\n"
+"the cut depth in each pass. Will\n"
+"cut multiple times until Cut Z is\n"
+"reached."
+msgstr ""
+"Use vários passes para limitar\n"
+"a profundidade de corte em cada passagem. Vai\n"
+"cortar várias vezes até o Corte Z é\n"
+"alcançado."
+
+#: AppGUI/ObjectUI.py:937 AppGUI/ObjectUI.py:1843
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:128
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94
+#: AppTools/ToolCutOut.py:176
+msgid "Depth of each pass (positive)."
+msgstr "Profundidade de cada passe (positivo)."
+
+#: AppGUI/ObjectUI.py:948
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:136
+msgid ""
+"Tool height when travelling\n"
+"across the XY plane."
+msgstr ""
+"Altura da ferramenta durante os\n"
+"deslocamentos sobre o plano XY."
+
+#: AppGUI/ObjectUI.py:969 AppGUI/ObjectUI.py:1873
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:187
+msgid ""
+"Cutting speed in the XY\n"
+"plane in units per minute"
+msgstr "Velocidade de corte no plano XY em unidades por minuto"
+
+#: AppGUI/ObjectUI.py:984
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:209
+msgid ""
+"Tool speed while drilling\n"
+"(in units per minute).\n"
+"So called 'Plunge' feedrate.\n"
+"This is for linear move G01."
+msgstr ""
+"Velocidade da ferramenta durante a perfuração\n"
+"(em unidades por minuto).\n"
+"Também chamado de avanço de 'Mergulho'.\n"
+"Para movimento linear G01."
+
+#: AppGUI/ObjectUI.py:999 AppGUI/ObjectUI.py:1900
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:80
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:64
+msgid "Feedrate Rapids"
+msgstr "Taxa de Avanço Rápida"
+
+#: AppGUI/ObjectUI.py:1001
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:82
+msgid ""
+"Tool speed while drilling\n"
+"(in units per minute).\n"
+"This is for the rapid move G00.\n"
+"It is useful only for Marlin,\n"
+"ignore for any other cases."
+msgstr ""
+"Velocidade da ferramenta durante a perfuração\n"
+"(em unidades por minuto).\n"
+"Usado para movimento rápido G00.\n"
+"É útil apenas para Marlin. Ignore para outros casos."
+
+#: AppGUI/ObjectUI.py:1021 AppGUI/ObjectUI.py:1920
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:82
+msgid "Re-cut"
+msgstr "Re-cortar"
+
+#: AppGUI/ObjectUI.py:1023 AppGUI/ObjectUI.py:1036 AppGUI/ObjectUI.py:1922
+#: AppGUI/ObjectUI.py:1934
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:84
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:96
+msgid ""
+"In order to remove possible\n"
+"copper leftovers where first cut\n"
+"meet with last cut, we generate an\n"
+"extended cut over the first cut section."
+msgstr ""
+"Para remover possíveis sobras no ponto de encontro\n"
+"do primeiro com o último corte, gera-se um corte\n"
+"próximo à primeira seção de corte."
+
+#: AppGUI/ObjectUI.py:1049 AppGUI/ObjectUI.py:1943
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:216
+#: AppObjects/FlatCAMExcellon.py:1412 AppObjects/FlatCAMGeometry.py:1676
+msgid "Spindle speed"
+msgstr "Velocidade do Spindle"
+
+#: AppGUI/ObjectUI.py:1051
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:224
+msgid ""
+"Speed of the spindle\n"
+"in RPM (optional)"
+msgstr ""
+"Velocidade do spindle\n"
+"em RPM (opcional)"
+
+#: AppGUI/ObjectUI.py:1066 AppGUI/ObjectUI.py:1962
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:238
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:234
+msgid ""
+"Pause to allow the spindle to reach its\n"
+"speed before cutting."
+msgstr ""
+"Pausa para permitir que o spindle atinja sua\n"
+"velocidade antes de cortar."
+
+#: AppGUI/ObjectUI.py:1077 AppGUI/ObjectUI.py:1972
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:246
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:239
+msgid "Number of time units for spindle to dwell."
+msgstr "Número de unidades de tempo para o fuso residir."
+
+#: AppGUI/ObjectUI.py:1087
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:46
+msgid "Offset Z"
+msgstr "Deslocamento Z"
+
+#: AppGUI/ObjectUI.py:1089
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:48
+msgid ""
+"Some drill bits (the larger ones) need to drill deeper\n"
+"to create the desired exit hole diameter due of the tip shape.\n"
+"The value here can compensate the Cut Z parameter."
+msgstr ""
+"Algumas brocas (as maiores) precisam perfurar mais profundamente\n"
+"para criar o diâmetro desejado do orifício de saída devido à forma da "
+"ponta.\n"
+"Este valor pode compensar o parâmetro Profundidade de Corte Z."
+
+#: AppGUI/ObjectUI.py:1149 AppGUI/ObjectUI.py:2026 AppTools/ToolNCC.py:492
+#: AppTools/ToolPaint.py:422
+msgid "Apply parameters to all tools"
+msgstr "Aplicar parâmetros a todas as ferramentas"
+
+#: AppGUI/ObjectUI.py:1151 AppGUI/ObjectUI.py:2028 AppTools/ToolNCC.py:494
+#: AppTools/ToolPaint.py:424
+msgid ""
+"The parameters in the current form will be applied\n"
+"on all the tools from the Tool Table."
+msgstr ""
+"Os parâmetros no formulário atual serão aplicados\n"
+"em todas as ferramentas da Tabela de Ferramentas."
+
+#: AppGUI/ObjectUI.py:1162 AppGUI/ObjectUI.py:2039 AppTools/ToolNCC.py:505
+#: AppTools/ToolPaint.py:435
+msgid "Common Parameters"
+msgstr "Parâmetros Comuns"
+
+#: AppGUI/ObjectUI.py:1164 AppGUI/ObjectUI.py:2041 AppTools/ToolNCC.py:507
+#: AppTools/ToolPaint.py:437
+msgid "Parameters that are common for all tools."
+msgstr "Parâmetros comuns à todas as ferramentas."
+
+#: AppGUI/ObjectUI.py:1169 AppGUI/ObjectUI.py:2046
+msgid "Tool change Z"
+msgstr "Altura para a troca"
+
+#: AppGUI/ObjectUI.py:1171
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:154
+msgid ""
+"Include tool-change sequence\n"
+"in G-Code (Pause for tool change)."
+msgstr ""
+"Pausa para troca de ferramentas. Inclua a sequência\n"
+"de troca de ferramentas em G-Code (em Trabalho CNC)."
+
+#: AppGUI/ObjectUI.py:1178 AppGUI/ObjectUI.py:2057
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:162
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:134
+msgid ""
+"Z-axis position (height) for\n"
+"tool change."
+msgstr "Posição do eixo Z (altura) para a troca de ferramenta."
+
+#: AppGUI/ObjectUI.py:1195
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:71
+msgid ""
+"Height of the tool just after start.\n"
+"Delete the value if you don't need this feature."
+msgstr ""
+"Altura da ferramenta antes de iniciar o trabalho.\n"
+"Exclua o valor se você não precisar deste recurso."
+
+#: AppGUI/ObjectUI.py:1204 AppGUI/ObjectUI.py:2085
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:178
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:153
+msgid "End move Z"
+msgstr "Altura Z Final"
+
+#: AppGUI/ObjectUI.py:1206 AppGUI/ObjectUI.py:2087
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:180
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:155
+msgid ""
+"Height of the tool after\n"
+"the last move at the end of the job."
+msgstr "Altura da ferramenta após o último movimento, no final do trabalho."
+
+#: AppGUI/ObjectUI.py:1223 AppGUI/ObjectUI.py:2104
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:195
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:173
+msgid "End move X,Y"
+msgstr "Posição X,Y Final"
+
+#: AppGUI/ObjectUI.py:1225 AppGUI/ObjectUI.py:2106
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:197
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:175
+msgid ""
+"End move X,Y position. In format (x,y).\n"
+"If no value is entered then there is no move\n"
+"on X,Y plane at the end of the job."
+msgstr ""
+"Posição final X, Y. Em formato (x, y).\n"
+"Se nenhum valor for inserido, não haverá movimento\n"
+"no plano X, Y no final do trabalho."
+
+#: AppGUI/ObjectUI.py:1235 AppGUI/ObjectUI.py:1980
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:96
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:105
+msgid "Probe Z depth"
+msgstr "Profundidade Z da Sonda"
+
+#: AppGUI/ObjectUI.py:1237 AppGUI/ObjectUI.py:1982
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:98
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:107
+msgid ""
+"The maximum depth that the probe is allowed\n"
+"to probe. Negative value, in current units."
+msgstr ""
+"Profundidade máxima permitida para a sonda.\n"
+"Valor negativo, em unidades atuais."
+
+#: AppGUI/ObjectUI.py:1254 AppGUI/ObjectUI.py:1997
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:109
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:120
+msgid "Feedrate Probe"
+msgstr "Avanço da Sonda"
+
+#: AppGUI/ObjectUI.py:1256 AppGUI/ObjectUI.py:1999
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:111
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:122
+msgid "The feedrate used while the probe is probing."
+msgstr "Velocidade de Avanço usada enquanto a sonda está operando."
+
+#: AppGUI/ObjectUI.py:1272
+msgid "Preprocessor E"
+msgstr "Pré-processador E"
+
+#: AppGUI/ObjectUI.py:1274
+msgid ""
+"The preprocessor JSON file that dictates\n"
+"Gcode output for Excellon Objects."
+msgstr ""
+"O arquivo de pós-processamento (JSON) que define\n"
+"a saída G-Code para Objetos Excellon."
+
+#: AppGUI/ObjectUI.py:1284
+msgid "Preprocessor G"
+msgstr "Pré-processador G"
+
+#: AppGUI/ObjectUI.py:1286
+msgid ""
+"The preprocessor JSON file that dictates\n"
+"Gcode output for Geometry (Milling) Objects."
+msgstr ""
+"O arquivo de pós-processamento (JSON) que define\n"
+"a saída G-Code para Objetos Geometria (Fresamento)."
+
+#: AppGUI/ObjectUI.py:1300 AppGUI/ObjectUI.py:2134
+#, fuzzy
+#| msgid "Delete all extensions from the list."
+msgid "Add exclusion areas"
+msgstr "Excluir todas as extensões da lista."
+
+#: AppGUI/ObjectUI.py:1303 AppGUI/ObjectUI.py:2137
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:204
+msgid ""
+"Include exclusion areas.\n"
+"In those areas the travel of the tools\n"
+"is forbidden."
+msgstr ""
+
+#: AppGUI/ObjectUI.py:1324 AppGUI/ObjectUI.py:1343 AppGUI/ObjectUI.py:2158
+#: AppGUI/ObjectUI.py:2177
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:224
+msgid "Strategy"
+msgstr ""
+
+#: AppGUI/ObjectUI.py:1324 AppGUI/ObjectUI.py:1355 AppGUI/ObjectUI.py:2158
+#: AppGUI/ObjectUI.py:2189
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:236
+#, fuzzy
+#| msgid "Overlap"
+msgid "Over Z"
+msgstr "Sobreposição"
+
+#: AppGUI/ObjectUI.py:1326 AppGUI/ObjectUI.py:2160
+msgid "This is the Area ID."
+msgstr ""
+
+#: AppGUI/ObjectUI.py:1328 AppGUI/ObjectUI.py:2162
+msgid "Type of the object where the exclusion area was added."
+msgstr ""
+
+#: AppGUI/ObjectUI.py:1330 AppGUI/ObjectUI.py:2164
+msgid ""
+"The strategy used for exclusion area. Go around the exclusion areas or over "
+"it."
+msgstr ""
+
+#: AppGUI/ObjectUI.py:1332 AppGUI/ObjectUI.py:2166
+msgid ""
+"If the strategy is to go over the area then this is the height at which the "
+"tool will go to avoid the exclusion area."
+msgstr ""
+
+#: AppGUI/ObjectUI.py:1344 AppGUI/ObjectUI.py:2178
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:225
+msgid ""
+"The strategy followed when encountering an exclusion area.\n"
+"Can be:\n"
+"- Over -> when encountering the area, the tool will go to a set height\n"
+"- Around -> will avoid the exclusion area by going around the area"
+msgstr ""
+
+#: AppGUI/ObjectUI.py:1348 AppGUI/ObjectUI.py:2182
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:229
+#, fuzzy
+#| msgid "Overlap"
+msgid "Over"
+msgstr "Sobreposição"
+
+#: AppGUI/ObjectUI.py:1349 AppGUI/ObjectUI.py:2183
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:230
+#, fuzzy
+#| msgid "Round"
+msgid "Around"
+msgstr "Redondo"
+
+#: AppGUI/ObjectUI.py:1356 AppGUI/ObjectUI.py:2190
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:237
+msgid ""
+"The height Z to which the tool will rise in order to avoid\n"
+"an interdiction area."
+msgstr ""
+
+#: AppGUI/ObjectUI.py:1366 AppGUI/ObjectUI.py:2200
+#, fuzzy
+#| msgid "Add Track"
+msgid "Add area:"
+msgstr "Adicionar Trilha"
+
+#: AppGUI/ObjectUI.py:1367 AppGUI/ObjectUI.py:2201
+msgid "Add an Exclusion Area."
+msgstr ""
+
+#: AppGUI/ObjectUI.py:1373 AppGUI/ObjectUI.py:2207
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:214
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:324
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:288
+#: AppTools/ToolNCC.py:580 AppTools/ToolPaint.py:523
+msgid "The kind of selection shape used for area selection."
+msgstr "O tipo de formato usado para a seleção de área."
+
+#: AppGUI/ObjectUI.py:1383 AppGUI/ObjectUI.py:2217
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:32
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:42
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:32
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:32
+msgid "Delete All"
+msgstr "Excluir Tudo"
+
+#: AppGUI/ObjectUI.py:1384 AppGUI/ObjectUI.py:2218
+#, fuzzy
+#| msgid "Delete all extensions from the list."
+msgid "Delete all exclusion areas."
+msgstr "Excluir todas as extensões da lista."
+
+#: AppGUI/ObjectUI.py:1387 AppGUI/ObjectUI.py:2221
+#, fuzzy
+#| msgid "Delete Object"
+msgid "Delete Selected"
+msgstr "Excluir Objeto"
+
+#: AppGUI/ObjectUI.py:1388 AppGUI/ObjectUI.py:2222
+#, fuzzy
+#| msgid "Delete all extensions from the list."
+msgid "Delete all exclusion areas that are selected in the table."
+msgstr "Excluir todas as extensões da lista."
+
+#: AppGUI/ObjectUI.py:1412 AppGUI/ObjectUI.py:2238
+msgid ""
+"Add / Select at least one tool in the tool-table.\n"
+"Click the # header to select all, or Ctrl + LMB\n"
+"for custom selection of tools."
+msgstr ""
+"Adicione / Selecione pelo menos uma ferramenta na tabela de ferramentas.\n"
+"Clique no cabeçalho # para selecionar todos ou Ctrl + Botão Esquerdo do "
+"Mouse\n"
+"para seleção personalizada de ferramentas."
+
+#: AppGUI/ObjectUI.py:1420 AppGUI/ObjectUI.py:2245
+msgid "Generate CNCJob object"
+msgstr "Gera o objeto de Trabalho CNC"
+
+#: AppGUI/ObjectUI.py:1422
+msgid ""
+"Generate the CNC Job.\n"
+"If milling then an additional Geometry object will be created"
+msgstr ""
+"Gera o Trabalho CNC.\n"
+"Ao fresar, será criado um objeto Geometria adicional"
+
+#: AppGUI/ObjectUI.py:1439
+msgid "Milling Geometry"
+msgstr "Geometria de Fresamento"
+
+#: AppGUI/ObjectUI.py:1441
+msgid ""
+"Create Geometry for milling holes.\n"
+"Select from the Tools Table above the hole dias to be\n"
+"milled. Use the # column to make the selection."
+msgstr ""
+"Cria geometria para fresar.\n"
+"Selecione na Tabela de Ferramentas acima\n"
+"os diâmetros dos furos que serão fresados.\n"
+"Use a coluna # para selecionar."
+
+#: AppGUI/ObjectUI.py:1449
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:296
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:45
+msgid "Diameter of the cutting tool."
+msgstr "Diâmetro da ferramenta."
+
+#: AppGUI/ObjectUI.py:1459
+msgid "Mill Drills"
+msgstr "Fresa Furos"
+
+#: AppGUI/ObjectUI.py:1461
+msgid ""
+"Create the Geometry Object\n"
+"for milling DRILLS toolpaths."
+msgstr ""
+"Cria o Objeto Geometria com\n"
+"os caminhos da ferramenta de FUROS."
+
+#: AppGUI/ObjectUI.py:1479
+msgid "Mill Slots"
+msgstr "Fresa Ranhuras"
+
+#: AppGUI/ObjectUI.py:1481
+msgid ""
+"Create the Geometry Object\n"
+"for milling SLOTS toolpaths."
+msgstr ""
+"Cria o Objeto Geometria com\n"
+"os caminhos da ferramenta de RANHURAS."
+
+#: AppGUI/ObjectUI.py:1523 AppTools/ToolCutOut.py:319
+msgid "Geometry Object"
+msgstr "Objeto Geometria"
+
+#: AppGUI/ObjectUI.py:1569
+msgid ""
+"Tools in this Geometry object used for cutting.\n"
+"The 'Offset' entry will set an offset for the cut.\n"
+"'Offset' can be inside, outside, on path (none) and custom.\n"
+"'Type' entry is only informative and it allow to know the \n"
+"intent of using the current tool. \n"
+"It can be Rough(ing), Finish(ing) or Iso(lation).\n"
+"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n"
+"ball(B), or V-Shaped(V). \n"
+"When V-shaped is selected the 'Type' entry is automatically \n"
+"set to Isolation, the CutZ parameter in the UI form is\n"
+"grayed out and Cut Z is automatically calculated from the newly \n"
+"showed UI form entries named V-Tip Dia and V-Tip Angle."
+msgstr ""
+"Ferramentas neste objeto Geometria usados para o corte.\n"
+"A entrada 'Deslocamento' define um deslocamento para o corte.\n"
+"'Deslocamento' pode ser dentro, fora, no caminho (nenhum) e personalizado. A "
+"entrada\n"
+"'Tipo' é somente informativo e permite conhecer a necessidade de usar a "
+"ferramenta atual.\n"
+"Pode ser Desbaste, Acabamento ou Isolação.\n"
+"O 'Tipo de Ferramenta' (TF) pode ser circular com 1 a 4 dentes (C1..C4),\n"
+"bola (B) ou Em Forma de V (V).\n"
+"Quando forma em V é selecionada, a entrada 'Tipo' é automaticamente\n"
+"alterada para Isolação, o parâmetro Profundidade de Corte\n"
+"no formulário da interface do usuário é desabilitado e a Profundidade\n"
+"de Corte é calculada automaticamente a partir das entradas do\n"
+"formulário da interface do usuário e do Ângulo da Ponta-V."
+
+#: AppGUI/ObjectUI.py:1586 AppGUI/ObjectUI.py:2443
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:40
+msgid "Plot Object"
+msgstr "Mostrar"
+
+#: AppGUI/ObjectUI.py:1599 AppGUI/ObjectUI.py:2456 AppGUI/ObjectUI.py:2466
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138
+#: AppTools/ToolCopperThieving.py:221
+msgid "Dia"
+msgstr "Dia"
+
+#: AppGUI/ObjectUI.py:1599 AppGUI/ObjectUI.py:2456 AppTools/ToolNCC.py:132
+#: AppTools/ToolPaint.py:127
+msgid "TT"
+msgstr "TF"
+
+#: AppGUI/ObjectUI.py:1606
+msgid ""
+"This is the Tool Number.\n"
+"When ToolChange is checked, on toolchange event this value\n"
+"will be showed as a T1, T2 ... Tn"
+msgstr ""
+"Número da Ferramenta.\n"
+"Quando Trocar Ferramentas estiver marcado, no evento este valor\n"
+" será mostrado como T1, T2 ... Tn"
+
+#: AppGUI/ObjectUI.py:1617
+msgid ""
+"The value for the Offset can be:\n"
+"- Path -> There is no offset, the tool cut will be done through the geometry "
+"line.\n"
+"- In(side) -> The tool cut will follow the geometry inside. It will create a "
+"'pocket'.\n"
+"- Out(side) -> The tool cut will follow the geometry line on the outside."
+msgstr ""
+"O valor para Deslocamento pode ser:\n"
+"- Caminho -> Não há deslocamento, o corte da ferramenta será feito sobre a "
+"linha da geometria.\n"
+"- In(terno) -> O corte da ferramenta seguirá a geometria interna. Será "
+"criado um 'bolso'.\n"
+"- Ex(terno) -> O corte da ferramenta seguirá no lado externo da linha da "
+"geometria.\n"
+"- Personalizado -> Será considerado o valor digitado."
+
+#: AppGUI/ObjectUI.py:1624
+msgid ""
+"The (Operation) Type has only informative value. Usually the UI form "
+"values \n"
+"are choose based on the operation type and this will serve as a reminder.\n"
+"Can be 'Roughing', 'Finishing' or 'Isolation'.\n"
+"For Roughing we may choose a lower Feedrate and multiDepth cut.\n"
+"For Finishing we may choose a higher Feedrate, without multiDepth.\n"
+"For Isolation we need a lower Feedrate as it use a milling bit with a fine "
+"tip."
+msgstr ""
+"O tipo (operação) tem apenas valor informativo. Normalmente, os valores do "
+"formulário da interface do usuário\n"
+"são escolhidos com base no tipo de operação e isso servirá como um "
+"lembrete.\n"
+"Pode ser 'Desbaste', 'Acabamento' ou 'Isolação'.\n"
+"Para Desbaste, pode-se escolher uma taxa de Avanço inferior e corte de "
+"múltiplas profundidades.\n"
+"Para Acabamento, pode-se escolher uma taxa de avanço mais alta, sem multi-"
+"profundidade.\n"
+"Para Isolação, usa-se uma velocidade de avanço menor, pois é usada uma broca "
+"com ponta fina."
+
+#: AppGUI/ObjectUI.py:1633
+msgid ""
+"The Tool Type (TT) can be:\n"
+"- Circular with 1 ... 4 teeth -> it is informative only. Being circular the "
+"cut width in material\n"
+"is exactly the tool diameter.\n"
+"- Ball -> informative only and make reference to the Ball type endmill.\n"
+"- V-Shape -> it will disable Z-Cut parameter in the UI form and enable two "
+"additional UI form\n"
+"fields: V-Tip Dia and V-Tip Angle. Adjusting those two values will adjust "
+"the Z-Cut parameter such\n"
+"as the cut width into material will be equal with the value in the Tool "
+"Diameter column of this table.\n"
+"Choosing the V-Shape Tool Type automatically will select the Operation Type "
+"as Isolation."
+msgstr ""
+"O Tipo de Ferramenta (TF) pode ser:\n"
+"- Circular com 1 ... 4 dentes -> apenas informativo. Sendo circular a "
+"largura de corte no material\n"
+" é exatamente o diâmetro da ferramenta.\n"
+"- Bola -> apenas informativo e faz referência à fresa tipo Ball.\n"
+"- Em Forma de V -> o parâmetro Corte Z no formulário de interface do usuário "
+"será desabilitado e dois campos adicionais\n"
+" no formulário UI serão habilitados: Diâmetro Ângulo Ponta-V e Ângulo Ponta-"
+"V. O ajuste desses dois valores ajustará o parâmetro Corte Z, como\n"
+"a largura do corte no material será igual ao valor da coluna Diâmetro da "
+"ferramenta dessa tabela.\n"
+"Escolher o tipo de ferramenta Em Forma de V automaticamente alterará o tipo "
+"de operação para Isolação."
+
+#: AppGUI/ObjectUI.py:1645
+msgid ""
+"Plot column. It is visible only for MultiGeo geometries, meaning geometries "
+"that holds the geometry\n"
+"data into the tools. For those geometries, deleting the tool will delete the "
+"geometry data also,\n"
+"so be WARNED. From the checkboxes on each row it can be enabled/disabled the "
+"plot on canvas\n"
+"for the corresponding tool."
+msgstr ""
+"Coluna de plotagem. É visível apenas para geometrias MultiGeo, ou seja, "
+"geometrias que contêm os dados da geometria\n"
+"das ferramentas. Para essas geometrias, a exclusão da ferramenta também "
+"excluirá os dados da geometria,\n"
+"assim, esteja ATENTO. Nas caixas de seleção de cada linha, pode ser ativado/"
+"desativado o gráfico na tela\n"
+"para a ferramenta correspondente."
+
+#: AppGUI/ObjectUI.py:1663
+msgid ""
+"The value to offset the cut when \n"
+"the Offset type selected is 'Offset'.\n"
+"The value can be positive for 'outside'\n"
+"cut and negative for 'inside' cut."
+msgstr ""
+"O valor para compensar o corte quando\n"
+"o tipo selecionado for 'Deslocamento'.\n"
+"O valor pode ser positivo para corte 'por fora'\n"
+"e negativo para corte 'por dentro'."
+
+#: AppGUI/ObjectUI.py:1682 AppTools/ToolNCC.py:209 AppTools/ToolNCC.py:923
+#: AppTools/ToolPaint.py:191 AppTools/ToolPaint.py:848
+#: AppTools/ToolSolderPaste.py:559
+msgid "New Tool"
+msgstr "Nova Ferramenta"
+
+#: AppGUI/ObjectUI.py:1699
+msgid ""
+"Add a new tool to the Tool Table\n"
+"with the specified diameter."
+msgstr ""
+"Adiciona uma nova ferramenta à Tabela de Ferramentas\n"
+"com o diâmetro especificado."
+
+#: AppGUI/ObjectUI.py:1704 AppTools/ToolNCC.py:300 AppTools/ToolNCC.py:634
+#: AppTools/ToolPaint.py:282 AppTools/ToolPaint.py:678
+msgid "Add from DB"
+msgstr "Adicionar do BD"
+
+#: AppGUI/ObjectUI.py:1706 AppTools/ToolNCC.py:302 AppTools/ToolPaint.py:284
+msgid ""
+"Add a new tool to the Tool Table\n"
+"from the Tool DataBase."
+msgstr ""
+"Adiciona uma nova ferramenta à Tabela de Ferramentas\n"
+"do Banco de Dados de Ferramentas."
+
+#: AppGUI/ObjectUI.py:1721
+msgid ""
+"Copy a selection of tools in the Tool Table\n"
+"by first selecting a row in the Tool Table."
+msgstr ""
+"Copia uma seleção de ferramentas na Tabela de Ferramentas selecionando "
+"primeiro uma linha na Tabela de Ferramentas."
+
+#: AppGUI/ObjectUI.py:1727
+msgid ""
+"Delete a selection of tools in the Tool Table\n"
+"by first selecting a row in the Tool Table."
+msgstr ""
+"Exclui uma seleção de ferramentas na Tabela de Ferramentas selecionando "
+"primeiro uma linha na Tabela de Ferramentas."
+
+#: AppGUI/ObjectUI.py:1854
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:103
+msgid ""
+"Height of the tool when\n"
+"moving without cutting."
+msgstr "Altura da ferramenta ao mover sem cortar."
+
+#: AppGUI/ObjectUI.py:1887
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:202
+msgid ""
+"Cutting speed in the XY\n"
+"plane in units per minute.\n"
+"It is called also Plunge."
+msgstr ""
+"Velocidade de corte no plano Z em unidades por minuto.\n"
+"Também é chamado de Mergulho."
+
+#: AppGUI/ObjectUI.py:1902
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:66
+msgid ""
+"Cutting speed in the XY plane\n"
+"(in units per minute).\n"
+"This is for the rapid move G00.\n"
+"It is useful only for Marlin,\n"
+"ignore for any other cases."
+msgstr ""
+"Velocidade de corte no plano XY (em unidades por minuto).\n"
+"Para o movimento rápido G00.\n"
+"É útil apenas para Marlin, ignore em outros casos."
+
+#: AppGUI/ObjectUI.py:1946
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:219
+msgid ""
+"Speed of the spindle in RPM (optional).\n"
+"If LASER preprocessor is used,\n"
+"this value is the power of laser."
+msgstr ""
+"Velocidade do spindle em RPM (opcional).\n"
+"Se o pós-processador LASER é usado,\n"
+"este valor é a potência do laser."
+
+#: AppGUI/ObjectUI.py:2049
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:124
+msgid ""
+"Include tool-change sequence\n"
+"in the Machine Code (Pause for tool change)."
+msgstr ""
+"Sequência de troca de ferramentas incluída\n"
+"no Código da Máquina (Pausa para troca de ferramentas)."
+
+#: AppGUI/ObjectUI.py:2118
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:256
+msgid ""
+"The Preprocessor file that dictates\n"
+"the Machine Code (like GCode, RML, HPGL) output."
+msgstr ""
+"Arquivo de Pós-processamento que determina o código\n"
+"de máquina de saída(como G-Code, RML, HPGL)."
+
+#: AppGUI/ObjectUI.py:2247 Common.py:405 Common.py:520 Common.py:573
+msgid "Generate the CNC Job object."
+msgstr "Gera o objeto de Trabalho CNC."
+
+#: AppGUI/ObjectUI.py:2264
+msgid "Launch Paint Tool in Tools Tab."
+msgstr "Inicia a ferramenta de pintura na guia Ferramentas."
+
+#: AppGUI/ObjectUI.py:2272 AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:35
+msgid ""
+"Creates tool paths to cover the\n"
+"whole area of a polygon (remove\n"
+"all copper). You will be asked\n"
+"to click on the desired polygon."
+msgstr ""
+"Cria caminhos de ferramenta para cobrir a área\n"
+"inteira de um polígono (remove todo o cobre).\n"
+"Você será solicitado a clicar no polígono desejado."
+
+#: AppGUI/ObjectUI.py:2327
+msgid "CNC Job Object"
+msgstr "Objeto de Trabalho CNC"
+
+#: AppGUI/ObjectUI.py:2338 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:45
+msgid "Plot kind"
+msgstr "Tipo de Gráfico"
+
+#: AppGUI/ObjectUI.py:2341 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:47
+msgid ""
+"This selects the kind of geometries on the canvas to plot.\n"
+"Those can be either of type 'Travel' which means the moves\n"
+"above the work piece or it can be of type 'Cut',\n"
+"which means the moves that cut into the material."
+msgstr ""
+"Seleciona o tipo de geometria mostrada na tela.\n"
+"Pode ser do tipo 'Deslocamento', com os movimentos acima da peça, do\n"
+"tipo 'Corte', com os movimentos cortando o material ou ambos."
+
+#: AppGUI/ObjectUI.py:2350 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:55
+msgid "Travel"
+msgstr "Deslocamento"
+
+#: AppGUI/ObjectUI.py:2354 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:64
+msgid "Display Annotation"
+msgstr "Exibir Anotação"
+
+#: AppGUI/ObjectUI.py:2356 AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:66
+msgid ""
+"This selects if to display text annotation on the plot.\n"
+"When checked it will display numbers in order for each end\n"
+"of a travel line."
+msgstr ""
+"Seleciona se deseja exibir a anotação de texto no gráfico.\n"
+"Quando marcado, exibirá números para cada final\n"
+"de uma linha de deslocamento."
+
+#: AppGUI/ObjectUI.py:2371
+msgid "Travelled dist."
+msgstr "Dist. percorrida"
+
+#: AppGUI/ObjectUI.py:2373 AppGUI/ObjectUI.py:2378
+msgid ""
+"This is the total travelled distance on X-Y plane.\n"
+"In current units."
+msgstr ""
+"Essa é a distância total percorrida no plano XY,\n"
+"nas unidades atuais."
+
+#: AppGUI/ObjectUI.py:2383
+msgid "Estimated time"
+msgstr "Tempo estimado"
+
+#: AppGUI/ObjectUI.py:2385 AppGUI/ObjectUI.py:2390
+msgid ""
+"This is the estimated time to do the routing/drilling,\n"
+"without the time spent in ToolChange events."
+msgstr ""
+"Este é o tempo estimado para fazer o roteamento/perfuração,\n"
+"sem o tempo gasto em eventos de Alteração de Ferramentas."
+
+#: AppGUI/ObjectUI.py:2425
+msgid "CNC Tools Table"
+msgstr "Tabela de Ferra. CNC"
+
+#: AppGUI/ObjectUI.py:2428
+msgid ""
+"Tools in this CNCJob object used for cutting.\n"
+"The tool diameter is used for plotting on canvas.\n"
+"The 'Offset' entry will set an offset for the cut.\n"
+"'Offset' can be inside, outside, on path (none) and custom.\n"
+"'Type' entry is only informative and it allow to know the \n"
+"intent of using the current tool. \n"
+"It can be Rough(ing), Finish(ing) or Iso(lation).\n"
+"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n"
+"ball(B), or V-Shaped(V)."
+msgstr ""
+"Ferramentas usadas para o corte no Trabalho CNC.\n"
+"O diâmetro da ferramenta é usado para plotagem na tela.\n"
+"A entrada 'Deslocamento' define um deslocamento para o corte.\n"
+"'Deslocamento' pode ser dentro, fora, no caminho (nenhum) e personalizado. A "
+"entrada\n"
+"'Tipo' é apenas informativa e permite conhecer a necessidade de usar a "
+"ferramenta atual.\n"
+"Pode ser Desbaste, Acabamento ou Isolação.\n"
+"O 'Tipo de Ferramenta' (TF) pode ser circular com 1 a 4 dentes (C1..C4),\n"
+"bola (B) ou Em forma de V (V)."
+
+#: AppGUI/ObjectUI.py:2456 AppGUI/ObjectUI.py:2467
+msgid "P"
+msgstr "P"
+
+#: AppGUI/ObjectUI.py:2477
+msgid "Update Plot"
+msgstr "Atualizar Gráfico"
+
+#: AppGUI/ObjectUI.py:2479
+msgid "Update the plot."
+msgstr "Atualiza o gráfico."
+
+#: AppGUI/ObjectUI.py:2486
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:30
+msgid "Export CNC Code"
+msgstr "Exportar Código CNC"
+
+#: AppGUI/ObjectUI.py:2488
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:32
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:33
+msgid ""
+"Export and save G-Code to\n"
+"make this object to a file."
+msgstr ""
+"Exporta e salva em arquivo\n"
+"o G-Code para fazer este objeto."
+
+#: AppGUI/ObjectUI.py:2494
+msgid "Prepend to CNC Code"
+msgstr "Incluir no Início do Código CNC"
+
+#: AppGUI/ObjectUI.py:2496 AppGUI/ObjectUI.py:2503
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:49
+msgid ""
+"Type here any G-Code commands you would\n"
+"like to add at the beginning of the G-Code file."
+msgstr ""
+"Digite aqui os comandos G-Code que você gostaria\n"
+"de adicionar ao início do arquivo G-Code gerado."
+
+#: AppGUI/ObjectUI.py:2509
+msgid "Append to CNC Code"
+msgstr "Incluir no Final do Código CNC"
+
+#: AppGUI/ObjectUI.py:2511 AppGUI/ObjectUI.py:2519
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:65
+msgid ""
+"Type here any G-Code commands you would\n"
+"like to append to the generated file.\n"
+"I.e.: M2 (End of program)"
+msgstr ""
+"Digite aqui os comandos G-Code que você gostaria\n"
+"de adicionar ao final do arquivo G-Code gerado.\n"
+"M2 (Fim do programa)"
+
+#: AppGUI/ObjectUI.py:2533
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:38
+msgid "Toolchange G-Code"
+msgstr "G-Code para Troca de Ferramentas"
+
+#: AppGUI/ObjectUI.py:2536
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:41
+msgid ""
+"Type here any G-Code commands you would\n"
+"like to be executed when Toolchange event is encountered.\n"
+"This will constitute a Custom Toolchange GCode,\n"
+"or a Toolchange Macro.\n"
+"The FlatCAM variables are surrounded by '%' symbol.\n"
+"\n"
+"WARNING: it can be used only with a preprocessor file\n"
+"that has 'toolchange_custom' in it's name and this is built\n"
+"having as template the 'Toolchange Custom' posprocessor file."
+msgstr ""
+"Digite aqui os comandos do G-Code que você gostaria de executar quando o "
+"evento do Troca de Ferramentas for encontrado.\n"
+"Ele será um G-Code personalizado para Troca de Ferramentas,\n"
+"ou uma Macro.\n"
+"As variáveis do FlatCAM são circundadas pelo símbolo '%'.\n"
+"\n"
+"ATENÇÃO: pode ser usado apenas com um arquivo de pós-processamento\n"
+"que tenha 'toolchange_custom' em seu nome e este é construído tendo\n"
+"como modelo o arquivo de pós-processamento 'Customização da troca de "
+"ferramentas'."
+
+#: AppGUI/ObjectUI.py:2551
+msgid ""
+"Type here any G-Code commands you would\n"
+"like to be executed when Toolchange event is encountered.\n"
+"This will constitute a Custom Toolchange GCode,\n"
+"or a Toolchange Macro.\n"
+"The FlatCAM variables are surrounded by '%' symbol.\n"
+"WARNING: it can be used only with a preprocessor file\n"
+"that has 'toolchange_custom' in it's name."
+msgstr ""
+"Digite aqui qualquer comando G-Code que você deseja\n"
+"gostaria de ser executado quando o evento de troca de ferramentas é "
+"encontrado.\n"
+"Isso constituirá um G-Code personalizado de troca de ferramentas,\n"
+"ou uma macro de troca de ferramentas.\n"
+"As variáveis FlatCAM são cercadas pelo símbolo '%'.\n"
+"ATENÇÃO: ele pode ser usado apenas com um arquivo de pré-processador\n"
+"que possui 'toolchange_custom' em seu nome."
+
+#: AppGUI/ObjectUI.py:2566
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:80
+msgid "Use Toolchange Macro"
+msgstr "Usar Macro de Troca de Ferramentas"
+
+#: AppGUI/ObjectUI.py:2568
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:82
+msgid ""
+"Check this box if you want to use\n"
+"a Custom Toolchange GCode (macro)."
+msgstr ""
+"Marque esta caixa se você quiser usar a macro G-Code para Troca de "
+"Ferramentas."
+
+#: AppGUI/ObjectUI.py:2576
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:94
+msgid ""
+"A list of the FlatCAM variables that can be used\n"
+"in the Toolchange event.\n"
+"They have to be surrounded by the '%' symbol"
+msgstr ""
+"Uma lista das variáveis FlatCAM que podem ser usadas\n"
+"no evento Troca de Ferramentas.\n"
+"Elas devem estar cercadas pelo símbolo '%'"
+
+#: AppGUI/ObjectUI.py:2583
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:101
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:30
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:31
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:31
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:37
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:36
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:36
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:36
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:31
+#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:31
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:36
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:31
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:30
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:35
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:32
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:31
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31
+#: AppTools/ToolCopperThieving.py:89 AppTools/ToolCorners.py:106
+#: AppTools/ToolEtchCompensation.py:82 AppTools/ToolFiducials.py:149
+#: AppTools/ToolInvertGerber.py:82
+msgid "Parameters"
+msgstr "Parâmetros"
+
+#: AppGUI/ObjectUI.py:2586
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:106
+msgid "FlatCAM CNC parameters"
+msgstr "Parâmetros do FlatCAM CNC"
+
+#: AppGUI/ObjectUI.py:2587
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:111
+msgid "tool number"
+msgstr "número da ferramenta"
+
+#: AppGUI/ObjectUI.py:2588
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:112
+msgid "tool diameter"
+msgstr "diâmetro da ferramenta"
+
+#: AppGUI/ObjectUI.py:2589
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:113
+msgid "for Excellon, total number of drills"
+msgstr "para Excellon, número total de furos"
+
+#: AppGUI/ObjectUI.py:2591
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:115
+msgid "X coord for Toolchange"
+msgstr "Coordenada X para troca de ferramenta"
+
+#: AppGUI/ObjectUI.py:2592
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:116
+msgid "Y coord for Toolchange"
+msgstr "Coordenada Y para troca de ferramenta"
+
+#: AppGUI/ObjectUI.py:2593
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:118
+msgid "Z coord for Toolchange"
+msgstr "Coordenada Z para troca de ferramenta"
+
+#: AppGUI/ObjectUI.py:2594
+msgid "depth where to cut"
+msgstr "profundidade de corte"
+
+#: AppGUI/ObjectUI.py:2595
+msgid "height where to travel"
+msgstr "altura para deslocamentos"
+
+#: AppGUI/ObjectUI.py:2596
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:121
+msgid "the step value for multidepth cut"
+msgstr "valor do passe para corte múltiplas profundidade"
+
+#: AppGUI/ObjectUI.py:2598
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:123
+msgid "the value for the spindle speed"
+msgstr "velocidade do spindle"
+
+#: AppGUI/ObjectUI.py:2600
+msgid "time to dwell to allow the spindle to reach it's set RPM"
+msgstr "tempo de espera para o spindle atingir sua vel. RPM"
+
+#: AppGUI/ObjectUI.py:2616
+msgid "View CNC Code"
+msgstr "Ver Código CNC"
+
+#: AppGUI/ObjectUI.py:2618
+msgid ""
+"Opens TAB to view/modify/print G-Code\n"
+"file."
+msgstr "Abre uma ABA para visualizar/modificar/imprimir o arquivo G-Code."
+
+#: AppGUI/ObjectUI.py:2623
+msgid "Save CNC Code"
+msgstr "Salvar Código CNC"
+
+#: AppGUI/ObjectUI.py:2625
+msgid ""
+"Opens dialog to save G-Code\n"
+"file."
+msgstr "Abre uma caixa de diálogo para salvar o arquivo G-Code."
+
+#: AppGUI/ObjectUI.py:2659
+msgid "Script Object"
+msgstr "Objeto Script"
+
+#: AppGUI/ObjectUI.py:2679 AppGUI/ObjectUI.py:2753
+msgid "Auto Completer"
+msgstr "Preenchimento Automático"
+
+#: AppGUI/ObjectUI.py:2681
+msgid "This selects if the auto completer is enabled in the Script Editor."
+msgstr ""
+"Selecionar se o preenchimento automático está ativado no Editor de Scripts."
+
+#: AppGUI/ObjectUI.py:2726
+msgid "Document Object"
+msgstr "Objeto Documento"
+
+#: AppGUI/ObjectUI.py:2755
+msgid "This selects if the auto completer is enabled in the Document Editor."
+msgstr ""
+"Selecionar se o preenchimento automático está ativado no Editor de "
+"Documentos."
+
+#: AppGUI/ObjectUI.py:2773
+msgid "Font Type"
+msgstr "Tipo de Fonte"
+
+#: AppGUI/ObjectUI.py:2790
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:197
+msgid "Font Size"
+msgstr "Tamanho da Fonte"
+
+#: AppGUI/ObjectUI.py:2826
+msgid "Alignment"
+msgstr "Alinhamento"
+
+#: AppGUI/ObjectUI.py:2831
+msgid "Align Left"
+msgstr "Esquerda"
+
+#: AppGUI/ObjectUI.py:2836 App_Main.py:4687
+msgid "Center"
+msgstr "Centro"
+
+#: AppGUI/ObjectUI.py:2841
+msgid "Align Right"
+msgstr "Direita"
+
+#: AppGUI/ObjectUI.py:2846
+msgid "Justify"
+msgstr "Justificado"
+
+#: AppGUI/ObjectUI.py:2853
+msgid "Font Color"
+msgstr "Cor da Fonte"
+
+#: AppGUI/ObjectUI.py:2855
+msgid "Set the font color for the selected text"
+msgstr "Define a cor da fonte para o texto selecionado"
+
+#: AppGUI/ObjectUI.py:2869
+msgid "Selection Color"
+msgstr "Cor da Seleção"
+
+#: AppGUI/ObjectUI.py:2871
+msgid "Set the selection color when doing text selection."
+msgstr "Define a cor da seleção quando selecionando texto."
+
+#: AppGUI/ObjectUI.py:2885
+msgid "Tab Size"
+msgstr "Tamanho da Aba"
+
+#: AppGUI/ObjectUI.py:2887
+msgid "Set the tab size. In pixels. Default value is 80 pixels."
+msgstr "Define o tamanho da aba, em pixels. Valor padrão: 80 pixels."
+
+#: AppGUI/PlotCanvasLegacy.py:1464
+msgid ""
+"Could not annotate due of a difference between the number of text elements "
+"and the number of text positions."
+msgstr ""
+"Não foi possível anotar devido a uma diferença entre o número de elementos "
+"de texto e o número de posições de texto."
+
+#: AppGUI/preferences/PreferencesUIManager.py:911
+#: AppGUI/preferences/PreferencesUIManager.py:1002
+#: AppGUI/preferences/PreferencesUIManager.py:1026
+#: AppGUI/preferences/PreferencesUIManager.py:1132 App_Main.py:5107
+msgid "Preferences"
+msgstr "Preferências"
+
+#: AppGUI/preferences/PreferencesUIManager.py:917
+msgid "Preferences applied."
+msgstr "Preferências aplicadas."
+
+#: AppGUI/preferences/PreferencesUIManager.py:937
+#, fuzzy
+#| msgid "Are you sure you want to delete the GUI Settings? \n"
+msgid "Are you sure you want to continue?"
+msgstr "Você tem certeza de que deseja excluir as configurações da GUI? \n"
+
+#: AppGUI/preferences/PreferencesUIManager.py:938
+#, fuzzy
+#| msgid "Application started ..."
+msgid "Application restart"
+msgstr "Aplicativo iniciado ..."
+
+#: AppGUI/preferences/PreferencesUIManager.py:1031
+msgid "Preferences closed without saving."
+msgstr "Preferências fechadas sem salvar."
+
+#: AppGUI/preferences/PreferencesUIManager.py:1043
+msgid "Preferences default values are restored."
+msgstr "Os valores padrão das preferências são restaurados."
+
+#: AppGUI/preferences/PreferencesUIManager.py:1075 App_Main.py:2476
+#: App_Main.py:2544
+msgid "Failed to write defaults to file."
+msgstr "Falha ao gravar os padrões no arquivo."
+
+#: AppGUI/preferences/PreferencesUIManager.py:1079
+#: AppGUI/preferences/PreferencesUIManager.py:1188
+msgid "Preferences saved."
+msgstr "Preferências salvas."
+
+#: AppGUI/preferences/PreferencesUIManager.py:1129
+msgid "Preferences edited but not saved."
+msgstr "Preferências editadas, mas não salvas."
+
+#: AppGUI/preferences/PreferencesUIManager.py:1174
+msgid ""
+"One or more values are changed.\n"
+"Do you want to save the Preferences?"
+msgstr ""
+"Um ou mais valores foram alterados.\n"
+"Você deseja salvar as preferências?"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:27
+msgid "CNC Job Adv. Options"
+msgstr "Opções Avançadas"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:64
+msgid ""
+"Type here any G-Code commands you would like to be executed when Toolchange "
+"event is encountered.\n"
+"This will constitute a Custom Toolchange GCode, or a Toolchange Macro.\n"
+"The FlatCAM variables are surrounded by '%' symbol.\n"
+"WARNING: it can be used only with a preprocessor file that has "
+"'toolchange_custom' in it's name."
+msgstr ""
+"Digite aqui qualquer comando G-Code que você deseja gostaria de ser "
+"executado quando o evento de troca de ferramentas é encontrado.\n"
+"Isso constituirá um G-Code personalizado de troca de ferramentas, ou uma "
+"macro de troca de ferramentas.\n"
+"As variáveis FlatCAM são cercadas pelo símbolo '%'.\n"
+"ATENÇÃO: ele pode ser usado apenas com um arquivo de pré-processador que "
+"possui 'toolchange_custom' em seu nome."
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:119
+msgid "Z depth for the cut"
+msgstr "Profundidade Z para o corte"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:120
+msgid "Z height for travel"
+msgstr "Altura Z para deslocamentos"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:126
+msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM"
+msgstr "dwelltime = tempo de espera para o spindle atingir sua vel. RPM"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:145
+msgid "Annotation Size"
+msgstr "Tamanho da Fonte"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:147
+msgid "The font size of the annotation text. In pixels."
+msgstr "O tamanho da fonte do texto de anotação, em pixels."
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:157
+msgid "Annotation Color"
+msgstr "Cor da Fonte"
+
+#: AppGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:159
+msgid "Set the font color for the annotation texts."
+msgstr "Define a cor da fonte para os textos de anotação."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:26
+msgid "CNC Job General"
+msgstr "Trabalho CNC Geral"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:77
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:47
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:59
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:45
+msgid "Circle Steps"
+msgstr "Passos do Círculo"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:79
+msgid ""
+"The number of circle steps for GCode \n"
+"circle and arc shapes linear approximation."
+msgstr ""
+"O número de etapas de círculo para G-Code.\n"
+"Aproximação linear para círculos e formas de arco."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:88
+msgid "Travel dia"
+msgstr "Diâmetro Desl."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:90
+msgid ""
+"The width of the travel lines to be\n"
+"rendered in the plot."
+msgstr "Largura da linha a ser renderizada no gráfico."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:103
+msgid "G-code Decimals"
+msgstr "Decimais de código G"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:106
+#: AppTools/ToolFiducials.py:74
+msgid "Coordinates"
+msgstr "Coordenadas"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:108
+msgid ""
+"The number of decimals to be used for \n"
+"the X, Y, Z coordinates in CNC code (GCODE, etc.)"
+msgstr ""
+"Número de decimais a ser usado para as coordenadas\n"
+"X, Y, Z no código do CNC (G-Code, etc.)"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:119
+#: AppTools/ToolProperties.py:519
+msgid "Feedrate"
+msgstr "Taxa de Avanço"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:121
+msgid ""
+"The number of decimals to be used for \n"
+"the Feedrate parameter in CNC code (GCODE, etc.)"
+msgstr ""
+"O número de decimais a ser usado para o parâmetro\n"
+"Taxa de Avanço no código CNC (G-Code, etc.)"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:132
+msgid "Coordinates type"
+msgstr "Tipo de coordenada"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:134
+msgid ""
+"The type of coordinates to be used in Gcode.\n"
+"Can be:\n"
+"- Absolute G90 -> the reference is the origin x=0, y=0\n"
+"- Incremental G91 -> the reference is the previous position"
+msgstr ""
+"O tipo de coordenada a ser usada no G-Code.\n"
+"Pode ser:\n"
+"- Absoluta G90 -> a referência é a origem x=0, y=0\n"
+"- Incremental G91 -> a referência é a posição anterior"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:140
+msgid "Absolute G90"
+msgstr "Absoluta G90"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:141
+msgid "Incremental G91"
+msgstr "Incremental G91"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:151
+msgid "Force Windows style line-ending"
+msgstr "Forçar final de linha no estilo Windows"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:153
+msgid ""
+"When checked will force a Windows style line-ending\n"
+"(\\r\\n) on non-Windows OS's."
+msgstr ""
+"Quando marcado forçará um final de linha no estilo Windows\n"
+"(\\r\\n) em sistemas operacionais não Windows."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:165
+msgid "Travel Line Color"
+msgstr "Cor da Linha de Viagem"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:169
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:235
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:262
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:154
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:220
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:84
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:153
+#: AppTools/ToolRulesCheck.py:186
+msgid "Outline"
+msgstr "Contorno"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:171
+msgid "Set the travel line color for plotted objects."
+msgstr "Defina a cor da linha de viagem para objetos plotados."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:186
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:252
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:279
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:170
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:237
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:170
+msgid "Fill"
+msgstr "Conteúdo"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:188
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:254
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:281
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:172
+msgid ""
+"Set the fill color for plotted objects.\n"
+"First 6 digits are the color and the last 2\n"
+"digits are for alpha (transparency) level."
+msgstr ""
+"Define a cor de preenchimento para os objetos plotados.\n"
+"Os primeiros 6 dígitos são a cor e os últimos 2\n"
+"dígitos são para o nível alfa (transparência)."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:205
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:298
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:190
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:257
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:189
+msgid "Alpha"
+msgstr "Alfa"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:207
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:300
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:191
+msgid "Set the fill transparency for plotted objects."
+msgstr "Define a transparência de preenchimento para objetos plotados."
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:231
+msgid "CNCJob Object Color"
+msgstr "Cor do objeto CNCJob"
+
+#: AppGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:237
+msgid "Set the color for plotted objects."
+msgstr "Defina a cor dos objetos plotados."
+
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:27
+msgid "CNC Job Options"
+msgstr "Opções de Trabalho CNC"
+
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:31
+msgid "Export G-Code"
+msgstr "Exportar G-Code"
+
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:47
+msgid "Prepend to G-Code"
+msgstr "Incluir no Início do G-Code"
+
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:56
+msgid ""
+"Type here any G-Code commands you would like to add at the beginning of the "
+"G-Code file."
+msgstr ""
+"Digite aqui os comandos G-Code que você gostaria de adicionar ao início do "
+"arquivo G-Code."
+
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:63
+msgid "Append to G-Code"
+msgstr "Incluir no final do G-Code"
+
+#: AppGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:73
+msgid ""
+"Type here any G-Code commands you would like to append to the generated "
+"file.\n"
+"I.e.: M2 (End of program)"
+msgstr ""
+"Digite aqui todos os comandos do código G que você gostaria de acrescentar "
+"ao arquivo gerado.\n"
+"Por exemplo: M2 (Fim do programa)"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:27
+msgid "Excellon Adv. Options"
+msgstr "Opções Avançadas Excellon"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:34
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:33
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:31
+msgid "Advanced Options"
+msgstr "Opções Avançadas"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:36
+msgid ""
+"A list of Excellon advanced parameters.\n"
+"Those parameters are available only for\n"
+"Advanced App. Level."
+msgstr ""
+"Uma lista de parâmetros avançados do Excellon.\n"
+"Esses parâmetros estão disponíveis somente para\n"
+"o nível avançado do aplicativo."
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:59
+msgid "Toolchange X,Y"
+msgstr "Troca de ferramenta X,Y"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:61
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:47
+msgid "Toolchange X,Y position."
+msgstr "Posição X,Y para troca de ferramentas."
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:121
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:134
+msgid "Spindle direction"
+msgstr "Sentido de Rotação"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:123
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:136
+msgid ""
+"This sets the direction that the spindle is rotating.\n"
+"It can be either:\n"
+"- CW = clockwise or\n"
+"- CCW = counter clockwise"
+msgstr ""
+"Define o sentido de rotação do spindle.\n"
+"Pode ser:\n"
+"- CW = sentido horário ou\n"
+"- CCW = sentido anti-horário"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:134
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:148
+msgid "Fast Plunge"
+msgstr "Mergulho Rápido"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:136
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:150
+msgid ""
+"By checking this, the vertical move from\n"
+"Z_Toolchange to Z_move is done with G0,\n"
+"meaning the fastest speed available.\n"
+"WARNING: the move is done at Toolchange X,Y coords."
+msgstr ""
+"Quando marcado, o movimento vertical da altura de Troca de\n"
+"Ferramentas para a altura de Deslocamento é feito com G0,\n"
+"na velocidade mais rápida disponível.\n"
+"AVISO: o movimento é feito nas Coordenadas X,Y de troca de ferramentas."
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:143
+msgid "Fast Retract"
+msgstr "Recolhimento Rápido"
+
+#: AppGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:145
+msgid ""
+"Exit hole strategy.\n"
+" - When uncheked, while exiting the drilled hole the drill bit\n"
+"will travel slow, with set feedrate (G1), up to zero depth and then\n"
+"travel as fast as possible (G0) to the Z Move (travel height).\n"
+" - When checked the travel from Z cut (cut depth) to Z_move\n"
+"(travel height) is done as fast as possible (G0) in one move."
+msgstr ""
+"Estratégia para sair dos furos.\n"
+"- Quando desmarcado, ao sair do furo, a broca sobe lentamente, com\n"
+" avanço definido (G1), até a profundidade zero e depois some o mais\n"
+" rápido possível (G0) até a altura de deslocamento.\n"
+"- Quando marcado, a subida da profundidade de corte para a altura de\n"
+" deslocamento é feita o mais rápido possível (G0) em um único movimento."
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:32
+msgid "A list of Excellon Editor parameters."
+msgstr "Parâmetros do Editor Excellon."
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:40
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:41
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:41
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:194
+msgid "Selection limit"
+msgstr "Lim. de seleção"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:42
+msgid ""
+"Set the number of selected Excellon geometry\n"
+"items above which the utility geometry\n"
+"becomes just a selection rectangle.\n"
+"Increases the performance when moving a\n"
+"large number of geometric elements."
+msgstr ""
+"Define o número máximo de ítens de geometria Excellon\n"
+"selecionados. Acima desse valor a geometria se torna um\n"
+"retângulo de seleção Aumenta o desempenho ao mover um\n"
+"grande número de elementos geométricos."
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:55
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:117
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:123
+msgid "New Dia"
+msgstr "Novo Diâmetro"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:80
+msgid "Linear Drill Array"
+msgstr "Matriz Linear de Furos"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:84
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:232
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:120
+msgid "Linear Direction"
+msgstr "Direção Linear"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:126
+msgid "Circular Drill Array"
+msgstr "Matriz Circular de Furos"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:130
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:280
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:164
+msgid "Circular Direction"
+msgstr "Direção Circular"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:132
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:282
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:166
+msgid ""
+"Direction for circular array.\n"
+"Can be CW = clockwise or CCW = counter clockwise."
+msgstr ""
+"Sentido da matriz circular.\n"
+"Pode ser CW = sentido horário ou CCW = sentido anti-horário."
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:143
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:293
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:177
+msgid "Circular Angle"
+msgstr "Ângulo Circular"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:196
+msgid ""
+"Angle at which the slot is placed.\n"
+"The precision is of max 2 decimals.\n"
+"Min value is: -359.99 degrees.\n"
+"Max value is: 360.00 degrees."
+msgstr ""
+"Ângulo no qual a ranhura é colocada.\n"
+"A precisão é de no máximo 2 decimais.\n"
+"Valor mínimo: -359.99 graus.\n"
+"Valor máximo: 360.00 graus."
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:215
+msgid "Linear Slot Array"
+msgstr "Matriz Linear de Ranhuras"
+
+#: AppGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:276
+msgid "Circular Slot Array"
+msgstr "Matriz Circular de Ranhuras"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:26
+msgid "Excellon Export"
+msgstr "Exportar Excellon"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:30
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:31
+msgid "Export Options"
+msgstr "Opções da Exportação"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:32
+msgid ""
+"The parameters set here are used in the file exported\n"
+"when using the File -> Export -> Export Excellon menu entry."
+msgstr ""
+"Os parâmetros definidos aqui são usados no arquivo exportado\n"
+"ao usar a entrada de menu Arquivo -> Exportar -> Exportar Excellon."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:41
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:163
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:39
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:42
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:82
+#: AppTools/ToolDistance.py:56 AppTools/ToolDistanceMin.py:49
+#: AppTools/ToolPcbWizard.py:127 AppTools/ToolProperties.py:154
+msgid "Units"
+msgstr "Unidades"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:43
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:49
+msgid "The units used in the Excellon file."
+msgstr "A unidade usada no arquivo Excellon gerado."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:46
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:87
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:173
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:47
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:87
+#: AppTools/ToolCalculators.py:61 AppTools/ToolPcbWizard.py:125
+msgid "INCH"
+msgstr "in"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:47
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:174
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:43
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:48
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:88
+#: AppTools/ToolCalculators.py:62 AppTools/ToolPcbWizard.py:126
+msgid "MM"
+msgstr "mm"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:55
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:56
+msgid "Int/Decimals"
+msgstr "Int/Decimais"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:57
+msgid ""
+"The NC drill files, usually named Excellon files\n"
+"are files that can be found in different formats.\n"
+"Here we set the format used when the provided\n"
+"coordinates are not using period."
+msgstr ""
+"Os arquivos NC com a furação, geralmente chamados de arquivos Excellon\n"
+"são arquivos que podem ser encontrados em diferentes formatos.\n"
+"Aqui é definido o formato usado quando as coordenadas\n"
+"fornecidas não usam ponto."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:69
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:95
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:124
+msgid ""
+"This numbers signify the number of digits in\n"
+"the whole part of Excellon coordinates."
+msgstr ""
+"Este número configura o número de dígitos\n"
+"da parte inteira das coordenadas de Excellon."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:82
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:108
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:137
+msgid ""
+"This numbers signify the number of digits in\n"
+"the decimal part of Excellon coordinates."
+msgstr ""
+"Este número configura o número de dígitos\n"
+"da parte decimal das coordenadas de Excellon."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:91
+msgid "Format"
+msgstr "Formato"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:93
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:103
+msgid ""
+"Select the kind of coordinates format used.\n"
+"Coordinates can be saved with decimal point or without.\n"
+"When there is no decimal point, it is required to specify\n"
+"the number of digits for integer part and the number of decimals.\n"
+"Also it will have to be specified if LZ = leading zeros are kept\n"
+"or TZ = trailing zeros are kept."
+msgstr ""
+"Selecione o formato de coordenadas a usar.\n"
+"As coordenadas podem ser salvas com ou sem ponto decimal.\n"
+"Quando não há ponto decimal, é necessário especificar\n"
+"o número de dígitos para a parte inteira e o número de casas decimais.\n"
+"Deve ser especificado LZ (manter zeros à esquerda)\n"
+"ou TZ (manter zeros à direita)."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:100
+msgid "Decimal"
+msgstr "Decimal"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:101
+msgid "No-Decimal"
+msgstr "Não Decimal"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:114
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:145
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:96
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:97
+msgid "Zeros"
+msgstr "Zeros"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:117
+msgid ""
+"This sets the type of Excellon zeros.\n"
+"If LZ then Leading Zeros are kept and\n"
+"Trailing Zeros are removed.\n"
+"If TZ is checked then Trailing Zeros are kept\n"
+"and Leading Zeros are removed."
+msgstr ""
+"Define o tipo de zeros de Excellon.\n"
+"LZ: mantém os zeros à esquerda e remove os zeros à direita.\n"
+"TZ: mantém os zeros à direita e remove os zeros à esquerda."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:124
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:158
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:106
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:107
+#: AppTools/ToolPcbWizard.py:111
+msgid "LZ"
+msgstr "LZ"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:125
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:159
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:107
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:108
+#: AppTools/ToolPcbWizard.py:112
+msgid "TZ"
+msgstr "TZ"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:127
+msgid ""
+"This sets the default type of Excellon zeros.\n"
+"If LZ then Leading Zeros are kept and\n"
+"Trailing Zeros are removed.\n"
+"If TZ is checked then Trailing Zeros are kept\n"
+"and Leading Zeros are removed."
+msgstr ""
+"Define o tipo padrão de zeros de Excellon.\n"
+"LZ: mantém os zeros à esquerda e remove os zeros à direita.\n"
+"TZ: mantém os zeros à direita e remove os zeros à esquerda."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:137
+msgid "Slot type"
+msgstr "Tipo de Ranhura"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:140
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:150
+msgid ""
+"This sets how the slots will be exported.\n"
+"If ROUTED then the slots will be routed\n"
+"using M15/M16 commands.\n"
+"If DRILLED(G85) the slots will be exported\n"
+"using the Drilled slot command (G85)."
+msgstr ""
+"Definição de como as ranhuras serão exportadas.\n"
+"Se ROTEADO, as ranhuras serão roteadas\n"
+"usando os comandos M15/M16.\n"
+"Se PERFURADO as ranhuras serão exportadas\n"
+"usando o comando Perfuração (G85)."
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:147
+msgid "Routed"
+msgstr "Roteado"
+
+#: AppGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:148
+msgid "Drilled(G85)"
+msgstr "Perfurado (G85)"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:29
+msgid "Excellon General"
+msgstr "Excellon Geral"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:62
+msgid "Excellon Format"
+msgstr "Formato Excellon"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:64
+msgid ""
+"The NC drill files, usually named Excellon files\n"
+"are files that can be found in different formats.\n"
+"Here we set the format used when the provided\n"
+"coordinates are not using period.\n"
+"\n"
+"Possible presets:\n"
+"\n"
+"PROTEUS 3:3 MM LZ\n"
+"DipTrace 5:2 MM TZ\n"
+"DipTrace 4:3 MM LZ\n"
+"\n"
+"EAGLE 3:3 MM TZ\n"
+"EAGLE 4:3 MM TZ\n"
+"EAGLE 2:5 INCH TZ\n"
+"EAGLE 3:5 INCH TZ\n"
+"\n"
+"ALTIUM 2:4 INCH LZ\n"
+"Sprint Layout 2:4 INCH LZ\n"
+"KiCAD 3:5 INCH TZ"
+msgstr ""
+"Os arquivos de furos NC, normalmente chamados arquivos Excellon\n"
+"são arquivos que podem ser encontrados em diferentes formatos.\n"
+"Aqui é definido o formato usado quando as coordenadas\n"
+"fornecidas não estiverem usando ponto.\n"
+"\n"
+"Padrões possíveis:\n"
+"\n"
+"PROTEUS 3:3 mm LZ\n"
+"DipTrace 5:2 mm TZ\n"
+"DipTrace 4:3 mm LZ\n"
+"\n"
+"EAGLE 3:3 mm TZ\n"
+"EAGLE 4:3 mm TZ\n"
+"EAGLE 2:5 polegadas TZ\n"
+"EAGLE 3:5 polegadas TZ\n"
+"\n"
+"ALTIUM 2:4 polegadas LZ\n"
+"Sprint Layout 2:4 polegadas LZ\n"
+"KiCAD 3:5 polegadas TZ"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:88
+msgid "Default values for INCH are 2:4"
+msgstr "Valores padrão para Polegadas: 2:4"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:116
+msgid "METRIC"
+msgstr "MÉTRICO"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:117
+msgid "Default values for METRIC are 3:3"
+msgstr "Valores padrão para Métrico: 3:3"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:148
+msgid ""
+"This sets the type of Excellon zeros.\n"
+"If LZ then Leading Zeros are kept and\n"
+"Trailing Zeros are removed.\n"
+"If TZ is checked then Trailing Zeros are kept\n"
+"and Leading Zeros are removed.\n"
+"\n"
+"This is used when there is no information\n"
+"stored in the Excellon file."
+msgstr ""
+"Define o tipo de zeros de Excellon.\n"
+"LZ: mantém os zeros à esquerda e remove os zeros à direita.\n"
+"TZ: mantém os zeros à direita e remove os zeros à esquerda.\n"
+"\n"
+"Isso é usado quando não há informações\n"
+"armazenado no arquivo Excellon."
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:166
+msgid ""
+"This sets the default units of Excellon files.\n"
+"If it is not detected in the parsed file the value here\n"
+"will be used.Some Excellon files don't have an header\n"
+"therefore this parameter will be used."
+msgstr ""
+"Configura as unidades padrão dos arquivos Excellon.\n"
+"Alguns arquivos Excellon não possuem um cabeçalho.\n"
+"Se não for detectado no arquivo analisado, este padrão\n"
+"será usado."
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:176
+msgid ""
+"This sets the units of Excellon files.\n"
+"Some Excellon files don't have an header\n"
+"therefore this parameter will be used."
+msgstr ""
+"Configura as unidades dos arquivos Excellon.\n"
+"Alguns arquivos Excellon não possuem um cabeçalho,\n"
+"e assim este parâmetro será usado."
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:184
+msgid "Update Export settings"
+msgstr "Atualizar config. de exportação"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:201
+msgid "Excellon Optimization"
+msgstr "Otimização Excellon"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:204
+msgid "Algorithm:"
+msgstr "Algoritmo:"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:206
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:222
+msgid ""
+"This sets the optimization type for the Excellon drill path.\n"
+"If <> is checked then Google OR-Tools algorithm with\n"
+"MetaHeuristic Guided Local Path is used. Default search time is 3sec.\n"
+"If <> is checked then Google OR-Tools Basic algorithm is used.\n"
+"If <> is checked then Travelling Salesman algorithm is used for\n"
+"drill path optimization.\n"
+"\n"
+"If this control is disabled, then FlatCAM works in 32bit mode and it uses\n"
+"Travelling Salesman algorithm for path optimization."
+msgstr ""
+"Define o tipo de otimização para o caminho de perfuração do Excellon.\n"
+"Se <>estiver selecionado, será usado o algoritmo do Google OR-"
+"Tools com MetaHeuristic.\n"
+"O tempo de pesquisa padrão é de 3s.\n"
+"Usar o comando TCL set_sys excellon_search_time para definir outros "
+"valores.\n"
+"Se <> estiver selecionado, será usado o algoritmo básico do Google "
+"OR-Tools.\n"
+"Se <> estiver selecionado, será usado o algoritmo Travelling Salesman.\n"
+"\n"
+"Se este controle está desabilitado, FlatCAM está no modo de 32 bits e usa\n"
+"o algoritmo Travelling Salesman para otimização de caminhos."
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:217
+msgid "MetaHeuristic"
+msgstr "MetaHeuristic"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:218
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:104
+#: AppObjects/FlatCAMExcellon.py:683 AppObjects/FlatCAMGeometry.py:561
+#: AppObjects/FlatCAMGerber.py:251
+msgid "Basic"
+msgstr "Básico"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:219
+msgid "TSA"
+msgstr "TSA"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:236
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:245
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:237
+msgid "Duration"
+msgstr "Tempo de espera"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:239
+msgid ""
+"When OR-Tools Metaheuristic (MH) is enabled there is a\n"
+"maximum threshold for how much time is spent doing the\n"
+"path optimization. This max duration is set here.\n"
+"In seconds."
+msgstr ""
+"Quando o Metaheuristic (MH) da OR-Tools está ativado, este é o limite\n"
+"máximo de tempo para otimizar o caminho, em segundos. Padrão: 3."
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:258
+msgid "Excellon Object Color"
+msgstr "Cor do objeto Excellon"
+
+#: AppGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:264
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:86
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:155
+msgid "Set the line color for plotted objects."
+msgstr "Define a cor da linha para objetos plotados."
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:29
+msgid "Excellon Options"
+msgstr "Opções Excellon"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:33
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:34
+msgid "Create CNC Job"
+msgstr "Criar Trabalho CNC"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:35
+msgid ""
+"Parameters used to create a CNC Job object\n"
+"for this drill object."
+msgstr ""
+"Parâmetros usados para criar um objeto de Trabalho CNC\n"
+"para a furação."
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:152
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:121
+msgid "Tool change"
+msgstr "Troca de Ferramentas"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:236
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:232
+msgid "Enable Dwell"
+msgstr "Ativar Pausa"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:259
+msgid ""
+"The preprocessor JSON file that dictates\n"
+"Gcode output."
+msgstr ""
+"O arquivo de pós-processamento (JSON) que define\n"
+"a saída G-Code."
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:270
+msgid "Gcode"
+msgstr "G-Code"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:272
+msgid ""
+"Choose what to use for GCode generation:\n"
+"'Drills', 'Slots' or 'Both'.\n"
+"When choosing 'Slots' or 'Both', slots will be\n"
+"converted to drills."
+msgstr ""
+"Escolha o que usar para a geração de G-Code:\n"
+"'Furos', 'Ranhuras' ou 'Ambos'.\n"
+"Quando escolher 'Ranhuras' ou 'Ambos', as ranhuras serão\n"
+"convertidos para furos."
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:288
+msgid "Mill Holes"
+msgstr "Furação"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:290
+msgid "Create Geometry for milling holes."
+msgstr "Cria geometria para furação."
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:294
+msgid "Drill Tool dia"
+msgstr "Diâmetro da Broca"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:305
+msgid "Slot Tool dia"
+msgstr "Diâmetro da Fresa"
+
+#: AppGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:307
+msgid ""
+"Diameter of the cutting tool\n"
+"when milling slots."
+msgstr ""
+"Diâmetro da ferramenta de corte\n"
+"quando fresar fendas (ranhuras)."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:28
+msgid "App Settings"
+msgstr "Configurações do Aplicativo"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:49
+msgid "Grid Settings"
+msgstr "Configurações de Grade"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:53
+msgid "X value"
+msgstr "Valor X"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:55
+msgid "This is the Grid snap value on X axis."
+msgstr "Este é o valor do encaixe à grade no eixo X."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:65
+msgid "Y value"
+msgstr "Valor Y"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:67
+msgid "This is the Grid snap value on Y axis."
+msgstr "Este é o valor do encaixe à grade no eixo Y."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:77
+msgid "Snap Max"
+msgstr "Encaixe Max"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:92
+msgid "Workspace Settings"
+msgstr "Configurações da área de trabalho"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:95
+msgid "Active"
+msgstr "Ativo"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:97
+msgid ""
+"Draw a delimiting rectangle on canvas.\n"
+"The purpose is to illustrate the limits for our work."
+msgstr ""
+"Desenha um retângulo de delimitação na tela.\n"
+"O objetivo é ilustrar os limites do nosso trabalho."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:105
+msgid ""
+"Select the type of rectangle to be used on canvas,\n"
+"as valid workspace."
+msgstr ""
+"Selecione o tipo de retângulo a ser usado na tela,\n"
+"como área de trabalho válida."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:171
+msgid "Orientation"
+msgstr "Orientação"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:172
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:239
+#: AppTools/ToolFilm.py:405
+msgid ""
+"Can be:\n"
+"- Portrait\n"
+"- Landscape"
+msgstr ""
+"Pode ser:\n"
+"- Retrato\n"
+"- Paisagem"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:176
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:243
+#: AppTools/ToolFilm.py:409
+msgid "Portrait"
+msgstr "Retrato"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:177
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:244
+#: AppTools/ToolFilm.py:410
+msgid "Landscape"
+msgstr "Paisagem"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:201
+msgid "Notebook"
+msgstr "Caderno"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:203
+#, fuzzy
+#| msgid ""
+#| "This sets the font size for the elements found in the Notebook.\n"
+#| "The notebook is the collapsible area in the left side of the GUI,\n"
+#| "and include the Project, Selected and Tool tabs."
+msgid ""
+"This sets the font size for the elements found in the Notebook.\n"
+"The notebook is the collapsible area in the left side of the AppGUI,\n"
+"and include the Project, Selected and Tool tabs."
+msgstr ""
+"Isso define o tamanho da fonte para os elementos encontrados no bloco de "
+"notas.\n"
+"O bloco de notas é a área desmontável no lado esquerdo da GUI,\n"
+"e inclui as guias Projeto, Selecionado e Ferramenta."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:222
+msgid "Axis"
+msgstr "Eixo"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:224
+msgid "This sets the font size for canvas axis."
+msgstr "Define o tamanho da fonte para o eixo da tela."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:241
+msgid "Textbox"
+msgstr "Caixa de texto"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:243
+#, fuzzy
+#| msgid ""
+#| "This sets the font size for the Textbox GUI\n"
+#| "elements that are used in FlatCAM."
+msgid ""
+"This sets the font size for the Textbox AppGUI\n"
+"elements that are used in FlatCAM."
+msgstr ""
+"Define o tamanho da fonte da caixa de texto\n"
+"de elementos da GUI usados no FlatCAM."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:261
+msgid "HUD"
+msgstr ""
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:263
+#, fuzzy
+#| msgid "This sets the font size for canvas axis."
+msgid "This sets the font size for the Heads Up Display."
+msgstr "Define o tamanho da fonte para o eixo da tela."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:288
+msgid "Mouse Settings"
+msgstr "Configurações do mouse"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:292
+msgid "Cursor Shape"
+msgstr "Forma do Cursor"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:294
+msgid ""
+"Choose a mouse cursor shape.\n"
+"- Small -> with a customizable size.\n"
+"- Big -> Infinite lines"
+msgstr ""
+"Escolha uma forma de cursor do mouse.\n"
+"- Pequeno -> com um tamanho personalizável.\n"
+"- Grande -> Linhas infinitas"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:300
+msgid "Small"
+msgstr "Pequeno"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:301
+msgid "Big"
+msgstr "Grande"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:308
+msgid "Cursor Size"
+msgstr "Tamanho do Cursor"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:310
+msgid "Set the size of the mouse cursor, in pixels."
+msgstr "Define o tamanho do cursor do mouse, em pixels."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:321
+msgid "Cursor Width"
+msgstr "Largura do Cursor"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:323
+msgid "Set the line width of the mouse cursor, in pixels."
+msgstr "Defina a largura da linha do cursor do mouse, em pixels."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:334
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:341
+msgid "Cursor Color"
+msgstr "Cor do Cursor"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:336
+msgid "Check this box to color mouse cursor."
+msgstr "Marque esta caixa para colorir o cursor do mouse."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:343
+msgid "Set the color of the mouse cursor."
+msgstr "Defina a cor do cursor do mouse."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:366
+msgid "Pan Button"
+msgstr "Botão Pan"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:368
+msgid ""
+"Select the mouse button to use for panning:\n"
+"- MMB --> Middle Mouse Button\n"
+"- RMB --> Right Mouse Button"
+msgstr ""
+"Selecione o botão do mouse para usar o panning:\n"
+"- BM -> Botão do meio do mouse\n"
+"- BD -> botão direito do mouse"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:372
+msgid "MMB"
+msgstr "BM"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:373
+msgid "RMB"
+msgstr "BD"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:379
+msgid "Multiple Selection"
+msgstr "Seleção Múltipla"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:381
+msgid "Select the key used for multiple selection."
+msgstr "Selecione a tecla usada para seleção múltipla."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:383
+msgid "CTRL"
+msgstr "CTRL"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:384
+msgid "SHIFT"
+msgstr "SHIFT"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:395
+msgid "Delete object confirmation"
+msgstr "Confirmação excluir objeto"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:397
+msgid ""
+"When checked the application will ask for user confirmation\n"
+"whenever the Delete object(s) event is triggered, either by\n"
+"menu shortcut or key shortcut."
+msgstr ""
+"Quando marcada, o aplicativo pedirá a confirmação do usuário\n"
+"sempre que o evento Excluir objeto(s) é acionado, seja por\n"
+"atalho de menu ou atalho de tecla."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:404
+msgid "\"Open\" behavior"
+msgstr "Comportamento \"Abrir\""
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:406
+msgid ""
+"When checked the path for the last saved file is used when saving files,\n"
+"and the path for the last opened file is used when opening files.\n"
+"\n"
+"When unchecked the path for opening files is the one used last: either the\n"
+"path for saving files or the path for opening files."
+msgstr ""
+"Quando marcado, o caminho do último arquivo salvo é usado ao salvar "
+"arquivos,\n"
+"e o caminho para o último arquivo aberto é usado ao abrir arquivos.\n"
+"\n"
+"Quando desmarcado, o caminho para abrir arquivos é aquele usado por último:\n"
+"o caminho para salvar arquivos ou o caminho para abrir arquivos."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:415
+msgid "Enable ToolTips"
+msgstr "Habilitar Dicas"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:417
+msgid ""
+"Check this box if you want to have toolTips displayed\n"
+"when hovering with mouse over items throughout the App."
+msgstr ""
+"Marque esta caixa se quiser que as dicas de ferramentas sejam exibidas\n"
+"ao passar o mouse sobre os itens em todo o aplicativo."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:424
+msgid "Allow Machinist Unsafe Settings"
+msgstr "Permitir configurações inseguras de operador"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:426
+msgid ""
+"If checked, some of the application settings will be allowed\n"
+"to have values that are usually unsafe to use.\n"
+"Like Z travel negative values or Z Cut positive values.\n"
+"It will applied at the next application start.\n"
+"<>: Don't change this unless you know what you are doing !!!"
+msgstr ""
+"Se marcado, algumas das configurações do aplicativo poderão\n"
+"ter valores que geralmente não são seguros.\n"
+"Como Deslocamento Z com valores negativos ou Altura de Corte Z com valores "
+"positivos.\n"
+"Será aplicado no próximo início do aplicativo.\n"
+"<>: Não habilite, a menos que você saiba o que está fazendo !!!"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:438
+msgid "Bookmarks limit"
+msgstr "Limite de favoritos"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:440
+msgid ""
+"The maximum number of bookmarks that may be installed in the menu.\n"
+"The number of bookmarks in the bookmark manager may be greater\n"
+"but the menu will hold only so much."
+msgstr ""
+"O número máximo de favoritos que podem ser instalados no menu.\n"
+"O número de favoritos no gerenciador de favoritos pode ser maior,\n"
+"mas o menu mostrará apenas esse número."
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:449
+msgid "Activity Icon"
+msgstr "Ícone de Atividade"
+
+#: AppGUI/preferences/general/GeneralAPPSetGroupUI.py:451
+msgid "Select the GIF that show activity when FlatCAM is active."
+msgstr "Selecione o GIF que mostra a atividade quando o FlatCAM está ativo."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:29
+msgid "App Preferences"
+msgstr "Preferências do aplicativo"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:40
+msgid ""
+"The default value for FlatCAM units.\n"
+"Whatever is selected here is set every time\n"
+"FlatCAM is started."
+msgstr ""
+"Unidade utilizada como padrão para os valores no FlatCAM.\n"
+"O que estiver selecionado aqui será considerado sempre que\n"
+"o FLatCAM for iniciado."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:44
+msgid "IN"
+msgstr "in"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:50
+msgid "Precision MM"
+msgstr "Precisão mm"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:52
+msgid ""
+"The number of decimals used throughout the application\n"
+"when the set units are in METRIC system.\n"
+"Any change here require an application restart."
+msgstr ""
+"O número de casas decimais usadas em todo o aplicativo\n"
+"quando as unidades definidas estiverem no sistema MÉTRICO.\n"
+"Qualquer alteração aqui requer uma reinicialização do aplicativo."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:64
+msgid "Precision INCH"
+msgstr "Precisão in"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:66
+msgid ""
+"The number of decimals used throughout the application\n"
+"when the set units are in INCH system.\n"
+"Any change here require an application restart."
+msgstr ""
+"O número de casas decimais usadas em todo o aplicativo\n"
+"quando as unidades definidas estiverem no sistema INGLÊS.\n"
+"Qualquer alteração aqui requer uma reinicialização do aplicativo."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:78
+msgid "Graphic Engine"
+msgstr "Mecanismo Gráfico"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:79
+msgid ""
+"Choose what graphic engine to use in FlatCAM.\n"
+"Legacy(2D) -> reduced functionality, slow performance but enhanced "
+"compatibility.\n"
+"OpenGL(3D) -> full functionality, high performance\n"
+"Some graphic cards are too old and do not work in OpenGL(3D) mode, like:\n"
+"Intel HD3000 or older. In this case the plot area will be black therefore\n"
+"use the Legacy(2D) mode."
+msgstr ""
+"Escolha qual mecanismo gráfico usar no FlatCAM.\n"
+"Legado (2D) -> funcionalidade reduzida, desempenho lento, mas "
+"compatibilidade aprimorada.\n"
+"OpenGL (3D) -> funcionalidade completa, alto desempenho\n"
+"Algumas placas gráficas são muito antigas e não funcionam no modo OpenGL "
+"(3D), como:\n"
+"Intel HD3000 ou mais antigo. Nesse caso, a área de plotagem será preta. "
+"Nesse caso,\n"
+"use o modo Legado (2D)."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:85
+msgid "Legacy(2D)"
+msgstr "Legado(2D)"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:86
+msgid "OpenGL(3D)"
+msgstr "OpenGL(3D)"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:98
+msgid "APP. LEVEL"
+msgstr "Nível do Aplicativo"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:99
+msgid ""
+"Choose the default level of usage for FlatCAM.\n"
+"BASIC level -> reduced functionality, best for beginner's.\n"
+"ADVANCED level -> full functionality.\n"
+"\n"
+"The choice here will influence the parameters in\n"
+"the Selected Tab for all kinds of FlatCAM objects."
+msgstr ""
+"Escolha o nível padrão de uso para FlatCAM.\n"
+"Nível BÁSICO -> funcionalidade reduzida, melhor para iniciantes.\n"
+"Nível AVANÇADO -> funcionalidade completa.\n"
+"\n"
+"A escolha influenciará os parâmetros na Aba\n"
+"Selecionado para todos os tipos de objetos FlatCAM."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:105
+#: AppObjects/FlatCAMExcellon.py:696 AppObjects/FlatCAMGeometry.py:582
+#: AppObjects/FlatCAMGerber.py:278
+msgid "Advanced"
+msgstr "Avançado"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:111
+msgid "Portable app"
+msgstr "Aplicativo portátil"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:112
+msgid ""
+"Choose if the application should run as portable.\n"
+"\n"
+"If Checked the application will run portable,\n"
+"which means that the preferences files will be saved\n"
+"in the application folder, in the lib\\config subfolder."
+msgstr ""
+"Escolha se o aplicativo deve ser executado como portátil.\n"
+"\n"
+"Se marcado, o aplicativo será executado como portátil,\n"
+"o que significa que os arquivos de preferências serão salvos\n"
+"na pasta do aplicativo, na subpasta lib\\config."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:125
+msgid "Languages"
+msgstr "Idioma"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:126
+msgid "Set the language used throughout FlatCAM."
+msgstr "Defina o idioma usado no FlatCAM."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:132
+msgid "Apply Language"
+msgstr "Aplicar o Idioma"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:133
+msgid ""
+"Set the language used throughout FlatCAM.\n"
+"The app will restart after click."
+msgstr ""
+"Defina o idioma usado no FlatCAM.\n"
+"O aplicativo será reiniciado após o clique."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:147
+msgid "Startup Settings"
+msgstr "Configurações de Inicialização"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:151
+msgid "Splash Screen"
+msgstr "Tela de Abertura"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:153
+msgid "Enable display of the splash screen at application startup."
+msgstr "Habilita a Tela de Abertura na inicialização do aplicativo."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:165
+msgid "Sys Tray Icon"
+msgstr "Ícone da Bandeja do Sistema"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:167
+msgid "Enable display of FlatCAM icon in Sys Tray."
+msgstr "Ativa a exibição do ícone do FlatCAM na bandeja do sistema."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:172
+msgid "Show Shell"
+msgstr "Mostrar Shell"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:174
+msgid ""
+"Check this box if you want the shell to\n"
+"start automatically at startup."
+msgstr ""
+"Marque esta caixa se você deseja que o shell (linha de comando)\n"
+"seja inicializado automaticamente na inicialização."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:181
+msgid "Show Project"
+msgstr "Mostrar Projeto"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:183
+msgid ""
+"Check this box if you want the project/selected/tool tab area to\n"
+"to be shown automatically at startup."
+msgstr ""
+"Marque esta caixa se você quiser que a aba Projeto/Selecionado/Ferramenta\n"
+"seja apresentada automaticamente na inicialização."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:189
+msgid "Version Check"
+msgstr "Verificar Versão"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:191
+msgid ""
+"Check this box if you want to check\n"
+"for a new version automatically at startup."
+msgstr ""
+"Marque esta caixa se você quiser verificar\n"
+"por nova versão automaticamente na inicialização."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:198
+msgid "Send Statistics"
+msgstr "Enviar estatísticas"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:200
+msgid ""
+"Check this box if you agree to send anonymous\n"
+"stats automatically at startup, to help improve FlatCAM."
+msgstr ""
+"Marque esta caixa se você concorda em enviar dados anônimos\n"
+"automaticamente na inicialização, para ajudar a melhorar o FlatCAM."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:214
+msgid "Workers number"
+msgstr "Número de trabalhadores"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:216
+msgid ""
+"The number of Qthreads made available to the App.\n"
+"A bigger number may finish the jobs more quickly but\n"
+"depending on your computer speed, may make the App\n"
+"unresponsive. Can have a value between 2 and 16.\n"
+"Default value is 2.\n"
+"After change, it will be applied at next App start."
+msgstr ""
+"O número de Qthreads disponibilizados para o App.\n"
+"Um número maior pode executar os trabalhos mais rapidamente, mas\n"
+"dependendo da velocidade do computador, pode fazer com que o App\n"
+"não responda. Pode ter um valor entre 2 e 16. O valor padrão é 2.\n"
+"Após a mudança, ele será aplicado na próxima inicialização."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:230
+msgid "Geo Tolerance"
+msgstr "Tolerância Geo"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:232
+msgid ""
+"This value can counter the effect of the Circle Steps\n"
+"parameter. Default value is 0.005.\n"
+"A lower value will increase the detail both in image\n"
+"and in Gcode for the circles, with a higher cost in\n"
+"performance. Higher value will provide more\n"
+"performance at the expense of level of detail."
+msgstr ""
+"Este valor pode contrariar o efeito do parâmetro Passos do Círculo.\n"
+"O valor padrão é 0.005.\n"
+"Um valor mais baixo aumentará os detalhes na imagem e no G-Code\n"
+"para os círculos, com um custo maior em desempenho.\n"
+"Um valor maior proporcionará mais desempenho à custa do nível\n"
+"de detalhes."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:252
+msgid "Save Settings"
+msgstr "Configurações para Salvar"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:256
+msgid "Save Compressed Project"
+msgstr "Salvar Projeto Compactado"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:258
+msgid ""
+"Whether to save a compressed or uncompressed project.\n"
+"When checked it will save a compressed FlatCAM project."
+msgstr ""
+"Para salvar um projeto compactado ou descompactado.\n"
+"Quando marcado, o projeto FlatCAM será salvo compactado."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:267
+msgid "Compression"
+msgstr "Compressão"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:269
+msgid ""
+"The level of compression used when saving\n"
+"a FlatCAM project. Higher value means better compression\n"
+"but require more RAM usage and more processing time."
+msgstr ""
+"O nível de compactação usado ao salvar o Projeto FlatCAM.\n"
+"Um valor maior significa melhor compactação, mas é necessário mais uso de "
+"RAM e mais tempo de processamento."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:280
+msgid "Enable Auto Save"
+msgstr "Salvar Automaticamente"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:282
+msgid ""
+"Check to enable the autosave feature.\n"
+"When enabled, the application will try to save a project\n"
+"at the set interval."
+msgstr ""
+"Marcar para ativar o recurso de salvamento automático.\n"
+"Quando ativado, o aplicativo tentará salvar um projeto\n"
+"no intervalo definido."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:292
+msgid "Interval"
+msgstr "Intervalo"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:294
+msgid ""
+"Time interval for autosaving. In milliseconds.\n"
+"The application will try to save periodically but only\n"
+"if the project was saved manually at least once.\n"
+"While active, some operations may block this feature."
+msgstr ""
+"Intervalo de tempo para gravação automática, em milissegundos.\n"
+"O aplicativo tentará salvar periodicamente, mas apenas\n"
+"se o projeto foi salvo manualmente pelo menos uma vez.\n"
+"Algumas operações podem bloquear esse recurso enquanto estiverem ativas."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:310
+msgid "Text to PDF parameters"
+msgstr "Parâmetros de texto para PDF"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:312
+msgid "Used when saving text in Code Editor or in FlatCAM Document objects."
+msgstr ""
+"Usado ao salvar texto no Editor de código ou nos objetos de documento do "
+"FlatCAM."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:321
+msgid "Top Margin"
+msgstr "Margem superiorMargem"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:323
+msgid "Distance between text body and the top of the PDF file."
+msgstr "Distância entre o corpo do texto e a parte superior do arquivo PDF."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:334
+msgid "Bottom Margin"
+msgstr "Margem inferior"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:336
+msgid "Distance between text body and the bottom of the PDF file."
+msgstr "Distância entre o corpo do texto e a parte inferior do arquivo PDF."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:347
+msgid "Left Margin"
+msgstr "Margem esquerdaMargem"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:349
+msgid "Distance between text body and the left of the PDF file."
+msgstr "Distância entre o corpo do texto e a esquerda do arquivo PDF."
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:360
+msgid "Right Margin"
+msgstr "Margem direita"
+
+#: AppGUI/preferences/general/GeneralAppPrefGroupUI.py:362
+msgid "Distance between text body and the right of the PDF file."
+msgstr "Distância entre o corpo do texto e o direito do arquivo PDF."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:26
+msgid "GUI Preferences"
+msgstr "Preferências da GUI"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:36
+msgid "Theme"
+msgstr "Tema"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:38
+msgid ""
+"Select a theme for FlatCAM.\n"
+"It will theme the plot area."
+msgstr ""
+"Selecione um tema para FlatCAM.\n"
+"Ele será aplicado na área do gráfico."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:43
+msgid "Light"
+msgstr "Claro"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:44
+msgid "Dark"
+msgstr "Escuro"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:51
+msgid "Use Gray Icons"
+msgstr "Use ícones cinza"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:53
+msgid ""
+"Check this box to use a set of icons with\n"
+"a lighter (gray) color. To be used when a\n"
+"full dark theme is applied."
+msgstr ""
+"Marque esta caixa para usar um conjunto de ícones com\n"
+"uma cor mais clara (cinza). Para ser usado quando um\n"
+"o tema escuro total é aplicado."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:73
+msgid "Layout"
+msgstr "Layout"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:75
+msgid ""
+"Select an layout for FlatCAM.\n"
+"It is applied immediately."
+msgstr ""
+"Selecione um layout para o FlatCAM.\n"
+"É aplicado imediatamente."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:95
+msgid "Style"
+msgstr "Estilo"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:97
+msgid ""
+"Select an style for FlatCAM.\n"
+"It will be applied at the next app start."
+msgstr ""
+"Selecione um estilo para FlatCAM.\n"
+"Ele será aplicado na próxima inicialização."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:111
+msgid "Activate HDPI Support"
+msgstr "Ativar HDPI"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:113
+msgid ""
+"Enable High DPI support for FlatCAM.\n"
+"It will be applied at the next app start."
+msgstr ""
+"Ativa o suporte de alta DPI para FlatCAM.\n"
+"Ele será aplicado na próxima inicialização."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:127
+msgid "Display Hover Shape"
+msgstr "Exibir forma de foco suspenso"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:129
+msgid ""
+"Enable display of a hover shape for FlatCAM objects.\n"
+"It is displayed whenever the mouse cursor is hovering\n"
+"over any kind of not-selected object."
+msgstr ""
+"Habilita a exibição de uma forma flutuante para objetos FlatCAM.\n"
+"É exibido sempre que o cursor do mouse estiver pairando\n"
+"sobre qualquer tipo de objeto não selecionado."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:136
+msgid "Display Selection Shape"
+msgstr "Exibir forma de seleção"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:138
+msgid ""
+"Enable the display of a selection shape for FlatCAM objects.\n"
+"It is displayed whenever the mouse selects an object\n"
+"either by clicking or dragging mouse from left to right or\n"
+"right to left."
+msgstr ""
+"Ativa a exibição de seleção de forma para objetos FlatCAM.\n"
+"É exibido sempre que o mouse seleciona um objeto\n"
+"seja clicando ou arrastando o mouse da esquerda para a direita ou da direita "
+"para a esquerda."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:151
+msgid "Left-Right Selection Color"
+msgstr "Cor da seleção esquerda-direita"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:156
+msgid "Set the line color for the 'left to right' selection box."
+msgstr ""
+"Define a cor da linha para a caixa de seleção 'da esquerda para a direita'."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:172
+msgid ""
+"Set the fill color for the selection box\n"
+"in case that the selection is done from left to right.\n"
+"First 6 digits are the color and the last 2\n"
+"digits are for alpha (transparency) level."
+msgstr ""
+"Define a cor de preenchimento para a caixa de seleção\n"
+"no caso de a seleção ser feita da esquerda para a direita.\n"
+"Os primeiros 6 dígitos são a cor e os últimos 2\n"
+"dígitos são para o nível alfa (transparência)."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:192
+msgid "Set the fill transparency for the 'left to right' selection box."
+msgstr ""
+"Define a transparência de preenchimento para a caixa de seleção 'da esquerda "
+"para a direita'."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:216
+msgid "Right-Left Selection Color"
+msgstr "Cor da seleção direita-esquerda"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:222
+msgid "Set the line color for the 'right to left' selection box."
+msgstr ""
+"Define a cor da linha para a caixa de seleção 'direita para a esquerda'."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:239
+msgid ""
+"Set the fill color for the selection box\n"
+"in case that the selection is done from right to left.\n"
+"First 6 digits are the color and the last 2\n"
+"digits are for alpha (transparency) level."
+msgstr ""
+"Define a cor de preenchimento para a caixa de seleção, caso a seleção seja "
+"feita da direita para a esquerda.\n"
+"Os primeiros 6 dígitos são a cor e os últimos 2\n"
+"dígitos são para o nível alfa (transparência)."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:259
+msgid "Set the fill transparency for selection 'right to left' box."
+msgstr ""
+"Define a transparência de preenchimento para a seleção da caixa 'direita "
+"para a esquerda'."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:286
+msgid "Editor Color"
+msgstr "Cor do editor"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:290
+msgid "Drawing"
+msgstr "Desenhando"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:292
+msgid "Set the color for the shape."
+msgstr "Define a cor da forma."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:309
+msgid "Set the color of the shape when selected."
+msgstr "Define a cor da forma quando selecionada."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:332
+msgid "Project Items Color"
+msgstr "Cor dos itens do projeto"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:336
+msgid "Enabled"
+msgstr "Ativado"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:338
+msgid "Set the color of the items in Project Tab Tree."
+msgstr "Define a cor dos itens na Árvore do Guia de Projeto."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:352
+msgid "Disabled"
+msgstr "Desativado"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:354
+msgid ""
+"Set the color of the items in Project Tab Tree,\n"
+"for the case when the items are disabled."
+msgstr ""
+"Define a cor dos itens na Árvore da guia Projeto,\n"
+"para o caso em que os itens estão desativados."
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:370
+msgid "Project AutoHide"
+msgstr "Auto Ocultar"
+
+#: AppGUI/preferences/general/GeneralGUIPrefGroupUI.py:372
+msgid ""
+"Check this box if you want the project/selected/tool tab area to\n"
+"hide automatically when there are no objects loaded and\n"
+"to show whenever a new object is created."
+msgstr ""
+"Marque esta caixa se você deseja que a aba Projeto/Selecionado/Ferramenta\n"
+"desapareça automaticamente quando não houver objetos carregados e\n"
+"apareça sempre que um novo objeto for criado."
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:27
+msgid "Geometry Adv. Options"
+msgstr "Opções Avançadas"
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:35
+msgid ""
+"A list of Geometry advanced parameters.\n"
+"Those parameters are available only for\n"
+"Advanced App. Level."
+msgstr ""
+"Uma lista de parâmetros avançados de Geometria.\n"
+"Esses parâmetros estão disponíveis somente para\n"
+"o nível avançado do aplicativo."
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:45
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:112
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:134
+#: AppTools/ToolCalibration.py:125 AppTools/ToolSolderPaste.py:240
+msgid "Toolchange X-Y"
+msgstr "Troca de ferramenta X-Y"
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:56
+msgid ""
+"Height of the tool just after starting the work.\n"
+"Delete the value if you don't need this feature."
+msgstr ""
+"Altura da ferramenta ao iniciar o trabalho.\n"
+"Exclua o valor se você não precisar deste recurso."
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:158
+msgid "Segment X size"
+msgstr "Tamanho do Segmento X"
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:160
+msgid ""
+"The size of the trace segment on the X axis.\n"
+"Useful for auto-leveling.\n"
+"A value of 0 means no segmentation on the X axis."
+msgstr ""
+"O tamanho do segmento de rastreio no eixo X.\n"
+"Útil para nivelamento automático.\n"
+"Valor 0 significa que não há segmentação no eixo X."
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:174
+msgid "Segment Y size"
+msgstr "Tamanho do Segmento Y"
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:176
+msgid ""
+"The size of the trace segment on the Y axis.\n"
+"Useful for auto-leveling.\n"
+"A value of 0 means no segmentation on the Y axis."
+msgstr ""
+"O tamanho do segmento de rastreio no eixo Y.\n"
+"Útil para nivelamento automático.\n"
+"Valor 0 significa que não há segmentação no eixo Y."
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:192
+#, fuzzy
+#| msgid "Area Selection"
+msgid "Area Exclusion"
+msgstr "Seleção de Área"
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:194
+#, fuzzy
+#| msgid ""
+#| "A list of Excellon advanced parameters.\n"
+#| "Those parameters are available only for\n"
+#| "Advanced App. Level."
+msgid ""
+"Area exclusion parameters.\n"
+"Those parameters are available only for\n"
+"Advanced App. Level."
+msgstr ""
+"Uma lista de parâmetros avançados do Excellon.\n"
+"Esses parâmetros estão disponíveis somente para\n"
+"o nível avançado do aplicativo."
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:201
+msgid "Exclusion areas"
+msgstr ""
+
+#: AppGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:212
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:322
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:286
+#: AppTools/ToolNCC.py:578 AppTools/ToolPaint.py:521
+msgid "Shape"
+msgstr "Formato"
+
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:33
+msgid "A list of Geometry Editor parameters."
+msgstr "Parâmetros do Editor de Geometria."
+
+#: AppGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:43
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:196
+msgid ""
+"Set the number of selected geometry\n"
+"items above which the utility geometry\n"
+"becomes just a selection rectangle.\n"
+"Increases the performance when moving a\n"
+"large number of geometric elements."
+msgstr ""
+"Define o número máximo de ítens de geometria selecionados.\n"
+"Acima desse valor a geometria se torna um retângulo de seleção.\n"
+"Aumenta o desempenho ao mover um grande número de elementos geométricos."
+
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:27
+msgid "Geometry General"
+msgstr "Geometria Geral"
+
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:49
+msgid ""
+"The number of circle steps for Geometry \n"
+"circle and arc shapes linear approximation."
+msgstr ""
+"Número de etapas do círculo para a aproximação linear\n"
+"de Geometria círculo e arco."
+
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:63
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:41
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:48
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:42
+msgid "Tools Dia"
+msgstr "Diâ. da Ferramenta"
+
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:65
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:108
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:43
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:50
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:44
+msgid ""
+"Diameters of the tools, separated by comma.\n"
+"The value of the diameter has to use the dot decimals separator.\n"
+"Valid values: 0.3, 1.0"
+msgstr ""
+"Diâmetros das ferramentas, separados por vírgula.\n"
+"Deve ser utilizado PONTO como separador de casas decimais.\n"
+"Valores válidos: 0.3, 1.0"
+
+#: AppGUI/preferences/geometry/GeometryGenPrefGroupUI.py:80
+msgid "Geometry Object Color"
+msgstr "Cor do objeto de Geometria"
+
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:28
+msgid "Geometry Options"
+msgstr "Opções de Geometria"
+
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:36
+msgid ""
+"Create a CNC Job object\n"
+"tracing the contours of this\n"
+"Geometry object."
+msgstr ""
+"Cria um objeto de Trabalho CNC\n"
+"traçando os contornos deste objeto\n"
+"Geometria."
+
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:80
+msgid "Depth/Pass"
+msgstr "Profundidade por Passe"
+
+#: AppGUI/preferences/geometry/GeometryOptPrefGroupUI.py:82
+msgid ""
+"The depth to cut on each pass,\n"
+"when multidepth is enabled.\n"
+"It has positive value although\n"
+"it is a fraction from the depth\n"
+"which has negative value."
+msgstr ""
+"A profundidade a ser cortada em cada passe,\n"
+"quando Múltiplas Profundidades estiver ativo.\n"
+"Tem valor positivo, embora seja uma fração\n"
+"da profundidade, que tem valor negativo."
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:27
+msgid "Gerber Adv. Options"
+msgstr "Opções Avançadas"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:33
+msgid ""
+"A list of Gerber advanced parameters.\n"
+"Those parameters are available only for\n"
+"Advanced App. Level."
+msgstr ""
+"Uma lista de parâmetros avançados do Gerber.\n"
+"Esses parâmetros estão disponíveis somente para\n"
+"o nível avançado do aplicativo."
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:52
+msgid "Table Show/Hide"
+msgstr "Mostra/Esconde Tabela"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:54
+msgid ""
+"Toggle the display of the Gerber Apertures Table.\n"
+"Also, on hide, it will delete all mark shapes\n"
+"that are drawn on canvas."
+msgstr ""
+"Alterna a exibição da Tabela de Aberturas Gerber.\n"
+"Além disso, ao ocultar, ele excluirá todas as formas de marcas\n"
+"que estão desenhadas na tela."
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:134
+msgid "Exterior"
+msgstr "Exterior"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:135
+msgid "Interior"
+msgstr "Interior"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:146
+#: AppObjects/FlatCAMGerber.py:497 AppTools/ToolCopperThieving.py:1022
+#: AppTools/ToolCopperThieving.py:1211 AppTools/ToolCopperThieving.py:1223
+#: AppTools/ToolNCC.py:2059 AppTools/ToolNCC.py:2170 AppTools/ToolNCC.py:2185
+#: AppTools/ToolNCC.py:3149 AppTools/ToolNCC.py:3254 AppTools/ToolNCC.py:3269
+#: AppTools/ToolNCC.py:3535 AppTools/ToolNCC.py:3636 AppTools/ToolNCC.py:3651
+#: camlib.py:982
+msgid "Buffering"
+msgstr "Criando buffer"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:148
+msgid ""
+"Buffering type:\n"
+"- None --> best performance, fast file loading but no so good display\n"
+"- Full --> slow file loading but good visuals. This is the default.\n"
+"<>: Don't change this unless you know what you are doing !!!"
+msgstr ""
+"Tipo de Buffer:\n"
+"- Nenhum --> melhor desempenho, abertura de arquivos rápida, mas não tão boa "
+"aparência\n"
+"- Completo --> abertura de arquivos lenta, mas boa aparência. Este é o "
+"padrão.\n"
+"<>: Não altere isso, a menos que você saiba o que está fazendo !!!"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:153
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:207
+#: AppTools/ToolFiducials.py:201 AppTools/ToolFilm.py:238
+#: AppTools/ToolProperties.py:452 AppTools/ToolProperties.py:455
+#: AppTools/ToolProperties.py:458 AppTools/ToolProperties.py:483
+msgid "None"
+msgstr "Nenhum"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:159
+msgid "Simplify"
+msgstr "Simplificar"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:161
+msgid ""
+"When checked all the Gerber polygons will be\n"
+"loaded with simplification having a set tolerance.\n"
+"<>: Don't change this unless you know what you are doing !!!"
+msgstr ""
+"Quando marcado, todos os polígonos Gerber serão\n"
+"carregados com simplificação com uma tolerância definida.\n"
+"<>: Não altere, a menos que saiba o que está fazendo !!!"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:168
+msgid "Tolerance"
+msgstr "Tolerância"
+
+#: AppGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:169
+msgid "Tolerance for polygon simplification."
+msgstr "Tolerância para a simplificação de polígonos."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:33
+msgid "A list of Gerber Editor parameters."
+msgstr "Uma lista de parâmetros do Editor Gerber."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:43
+msgid ""
+"Set the number of selected Gerber geometry\n"
+"items above which the utility geometry\n"
+"becomes just a selection rectangle.\n"
+"Increases the performance when moving a\n"
+"large number of geometric elements."
+msgstr ""
+"Define o número máximo de ítens de geometria Gerber selecionados.\n"
+"Acima desse valor a geometria se torna um retângulo de seleção.\n"
+"Aumenta o desempenho ao mover um grande número de elementos geométricos."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:56
+msgid "New Aperture code"
+msgstr "Novo código de Aber."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:69
+msgid "New Aperture size"
+msgstr "Novo tamanho de Aber."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:71
+msgid "Size for the new aperture"
+msgstr "Tamanho para a nova abertura"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:82
+msgid "New Aperture type"
+msgstr "Novo tipo de Aber."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:84
+msgid ""
+"Type for the new aperture.\n"
+"Can be 'C', 'R' or 'O'."
+msgstr ""
+"Tipo para a nova abertura.\n"
+"Pode ser 'C', 'R' ou 'O'."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:106
+msgid "Aperture Dimensions"
+msgstr "Dimensão"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:116
+msgid "Linear Pad Array"
+msgstr "Matriz Linear de Pads"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:160
+msgid "Circular Pad Array"
+msgstr "Matriz Circular de Pads"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:196
+msgid "Distance at which to buffer the Gerber element."
+msgstr "Distância na qual armazenar o elemento Gerber."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:205
+msgid "Scale Tool"
+msgstr "Ferramenta de Escala"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:211
+msgid "Factor to scale the Gerber element."
+msgstr "Fator para redimensionar o elemento Gerber."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:224
+msgid "Threshold low"
+msgstr "Limiar baixo"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:226
+msgid "Threshold value under which the apertures are not marked."
+msgstr "Valor limiar sob o qual as aberturas não são marcadas."
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:236
+msgid "Threshold high"
+msgstr "Limiar alto"
+
+#: AppGUI/preferences/gerber/GerberEditorPrefGroupUI.py:238
+msgid "Threshold value over which the apertures are not marked."
+msgstr "Valor limite sobre o qual as aberturas não são marcadas."
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:27
+msgid "Gerber Export"
+msgstr "Exportar Gerber"
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:33
+msgid ""
+"The parameters set here are used in the file exported\n"
+"when using the File -> Export -> Export Gerber menu entry."
+msgstr ""
+"Os parâmetros definidos aqui são usados no arquivo exportado\n"
+"ao usar a entrada de menu Arquivo -> Exportar -> Exportar Gerber."
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:44
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:50
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:84
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:90
+msgid "The units used in the Gerber file."
+msgstr "As unidades usadas no arquivo Gerber."
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:58
+msgid ""
+"The number of digits in the whole part of the number\n"
+"and in the fractional part of the number."
+msgstr ""
+"O número de dígitos da parte inteira\n"
+"e da parte fracionária do número."
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:71
+msgid ""
+"This numbers signify the number of digits in\n"
+"the whole part of Gerber coordinates."
+msgstr ""
+"Esse número configura o número de dígitos\n"
+"da parte inteira das coordenadas de Gerber."
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:87
+msgid ""
+"This numbers signify the number of digits in\n"
+"the decimal part of Gerber coordinates."
+msgstr ""
+"Este número configura o número de dígitos\n"
+"da parte decimal das coordenadas de Gerber."
+
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:99
+#: AppGUI/preferences/gerber/GerberExpPrefGroupUI.py:109
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:100
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:110
+msgid ""
+"This sets the type of Gerber zeros.\n"
+"If LZ then Leading Zeros are removed and\n"
+"Trailing Zeros are kept.\n"
+"If TZ is checked then Trailing Zeros are removed\n"
+"and Leading Zeros are kept."
+msgstr ""
+"Define o tipo padrão de zeros de Gerber.\n"
+"LZ: remove os zeros à esquerda e mantém os zeros à direita.\n"
+"TZ: remove os zeros à direita e mantém os zeros à esquerda."
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:27
+msgid "Gerber General"
+msgstr "Gerber Geral"
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:45
+msgid "M-Color"
+msgstr "M-Cores"
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:61
+msgid ""
+"The number of circle steps for Gerber \n"
+"circular aperture linear approximation."
+msgstr ""
+"Número de passos de círculo para Gerber.\n"
+"Aproximação linear de abertura circular."
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:73
+msgid "Default Values"
+msgstr "Valores Padrão"
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:75
+msgid ""
+"Those values will be used as fallback values\n"
+"in case that they are not found in the Gerber file."
+msgstr ""
+"Esses valores serão usados como valores padrão\n"
+"caso eles não sejam encontrados no arquivo Gerber."
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:126
+msgid "Clean Apertures"
+msgstr "Limpe as Aberturas"
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:128
+msgid ""
+"Will remove apertures that do not have geometry\n"
+"thus lowering the number of apertures in the Gerber object."
+msgstr ""
+"Remove aberturas que não possuem geometria\n"
+"diminuindo assim o número de aberturas no objeto Gerber."
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:134
+msgid "Polarity change buffer"
+msgstr "Buffer de mudança de polaridade"
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:136
+msgid ""
+"Will apply extra buffering for the\n"
+"solid geometry when we have polarity changes.\n"
+"May help loading Gerber files that otherwise\n"
+"do not load correctly."
+msgstr ""
+"Aplicará buffer extra para o\n"
+"geometria sólida quando temos mudanças de polaridade.\n"
+"Pode ajudar a carregar arquivos Gerber que de outra forma\n"
+"Não carregue corretamente."
+
+#: AppGUI/preferences/gerber/GerberGenPrefGroupUI.py:149
+msgid "Gerber Object Color"
+msgstr "Cor do objeto Gerber"
+
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:29
+msgid "Gerber Options"
+msgstr "Opções Gerber"
+
+#: AppGUI/preferences/gerber/GerberOptPrefGroupUI.py:107
+msgid "Combine Passes"
+msgstr "Combinar Passes"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:27
+msgid "Copper Thieving Tool Options"
+msgstr "Opções da ferramenta Adição de Cobre"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:39
+msgid ""
+"A tool to generate a Copper Thieving that can be added\n"
+"to a selected Gerber file."
+msgstr ""
+"Uma ferramenta para gerar uma Adição de cobre que pode ser adicionada\n"
+"para um arquivo Gerber selecionado."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:47
+msgid "Number of steps (lines) used to interpolate circles."
+msgstr "Número de etapas (linhas) usadas para interpolar círculos."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261
+#: AppTools/ToolCopperThieving.py:96 AppTools/ToolCopperThieving.py:431
+msgid "Clearance"
+msgstr "Espaço"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:59
+msgid ""
+"This set the distance between the copper Thieving components\n"
+"(the polygon fill may be split in multiple polygons)\n"
+"and the copper traces in the Gerber file."
+msgstr ""
+"Define a distância entre os componentes Adição de cobre\n"
+"(o preenchimento de polígono pode ser dividido em vários polígonos)\n"
+"e os vestígios de cobre no arquivo Gerber."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
+#: AppTools/ToolCopperThieving.py:125 AppTools/ToolNCC.py:535
+#: AppTools/ToolNCC.py:1306 AppTools/ToolNCC.py:1635 AppTools/ToolNCC.py:1928
+#: AppTools/ToolNCC.py:1992 AppTools/ToolNCC.py:3013 AppTools/ToolNCC.py:3022
+#: defaults.py:406 tclCommands/TclCommandCopperClear.py:190
+msgid "Itself"
+msgstr "Própria"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
+#: AppTools/ToolCopperThieving.py:126 AppTools/ToolNCC.py:535
+#: AppTools/ToolNCC.py:1316 AppTools/ToolNCC.py:1648 AppTools/ToolNCC.py:1944
+#: AppTools/ToolNCC.py:1999 AppTools/ToolPaint.py:485 AppTools/ToolPaint.py:945
+#: AppTools/ToolPaint.py:1451
+msgid "Area Selection"
+msgstr "Seleção de Área"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
+#: AppTools/ToolCopperThieving.py:127 AppTools/ToolDblSided.py:216
+#: AppTools/ToolNCC.py:535 AppTools/ToolNCC.py:1664 AppTools/ToolNCC.py:1950
+#: AppTools/ToolNCC.py:2007 AppTools/ToolNCC.py:2383 AppTools/ToolNCC.py:2631
+#: AppTools/ToolNCC.py:3058 AppTools/ToolPaint.py:485 AppTools/ToolPaint.py:930
+#: AppTools/ToolPaint.py:1467 tclCommands/TclCommandCopperClear.py:192
+#: tclCommands/TclCommandPaint.py:166
+msgid "Reference Object"
+msgstr "Objeto de Referência"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90
+#: AppTools/ToolCopperThieving.py:129
+msgid "Reference:"
+msgstr "Referência:"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92
+msgid ""
+"- 'Itself' - the copper Thieving extent is based on the object extent.\n"
+"- 'Area Selection' - left mouse click to start selection of the area to be "
+"filled.\n"
+"- 'Reference Object' - will do copper thieving within the area specified by "
+"another object."
+msgstr ""
+"- 'Própria' - a adição de cobre é baseada no próprio objeto a ser limpo.\n"
+"- 'Seleção de Área' - clique com o botão esquerdo do mouse para iniciar a "
+"seleção da área a ser pintada.\n"
+"- 'Objeto de Referência' - adicionará o cobre dentro da área do objeto "
+"especificado."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:76
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190
+#: AppTools/ToolCopperThieving.py:171 AppTools/ToolExtractDrills.py:102
+#: AppTools/ToolExtractDrills.py:240 AppTools/ToolPunchGerber.py:113
+#: AppTools/ToolPunchGerber.py:268
+msgid "Rectangular"
+msgstr "Retangular"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102
+#: AppTools/ToolCopperThieving.py:172
+msgid "Minimal"
+msgstr "Mínima"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104
+#: AppTools/ToolCopperThieving.py:174 AppTools/ToolFilm.py:94
+msgid "Box Type:"
+msgstr "Tipo de Caixa:"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106
+#: AppTools/ToolCopperThieving.py:176
+msgid ""
+"- 'Rectangular' - the bounding box will be of rectangular shape.\n"
+"- 'Minimal' - the bounding box will be the convex hull shape."
+msgstr ""
+"- 'Retangular' - a caixa delimitadora será de forma retangular.\n"
+"- 'Mínima' - a caixa delimitadora terá a forma convexa do casco."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120
+#: AppTools/ToolCopperThieving.py:192
+msgid "Dots Grid"
+msgstr "Pontos"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121
+#: AppTools/ToolCopperThieving.py:193
+msgid "Squares Grid"
+msgstr "Quadrados"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122
+#: AppTools/ToolCopperThieving.py:194
+msgid "Lines Grid"
+msgstr "Linhas"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124
+#: AppTools/ToolCopperThieving.py:196
+msgid "Fill Type:"
+msgstr "Tipo de Preenchimento:"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126
+#: AppTools/ToolCopperThieving.py:198
+msgid ""
+"- 'Solid' - copper thieving will be a solid polygon.\n"
+"- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n"
+"- 'Squares Grid' - the empty area will be filled with a pattern of squares.\n"
+"- 'Lines Grid' - the empty area will be filled with a pattern of lines."
+msgstr ""
+"- 'Sólido' - a adição de cobre será um polígono sólido.\n"
+"- 'Pontos' - a área vazia será preenchida com um padrão de pontos.\n"
+"- 'Quadrados' - a área vazia será preenchida com um padrão de quadrados.\n"
+"- 'Linhas' - a área vazia será preenchida com um padrão de linhas."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134
+#: AppTools/ToolCopperThieving.py:217
+msgid "Dots Grid Parameters"
+msgstr "Parâmetros dos Pontos"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140
+#: AppTools/ToolCopperThieving.py:223
+msgid "Dot diameter in Dots Grid."
+msgstr "Diâmetro dos Pontos."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209
+#: AppTools/ToolCopperThieving.py:234 AppTools/ToolCopperThieving.py:274
+#: AppTools/ToolCopperThieving.py:314
+msgid "Spacing"
+msgstr "Espaçamento"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153
+#: AppTools/ToolCopperThieving.py:236
+msgid "Distance between each two dots in Dots Grid."
+msgstr "Distância entre dois pontos."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163
+#: AppTools/ToolCopperThieving.py:257
+msgid "Squares Grid Parameters"
+msgstr "Parâmetros dos Quadrados"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169
+#: AppTools/ToolCopperThieving.py:263
+msgid "Square side size in Squares Grid."
+msgstr "Lado do quadrado."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182
+#: AppTools/ToolCopperThieving.py:276
+msgid "Distance between each two squares in Squares Grid."
+msgstr "Distância entre dois quadrados."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192
+#: AppTools/ToolCopperThieving.py:297
+msgid "Lines Grid Parameters"
+msgstr "Parâmetros das Linhas"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198
+#: AppTools/ToolCopperThieving.py:303
+msgid "Line thickness size in Lines Grid."
+msgstr "Espessura das Linhas."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211
+#: AppTools/ToolCopperThieving.py:316
+msgid "Distance between each two lines in Lines Grid."
+msgstr "Distância entre duas linhas."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221
+#: AppTools/ToolCopperThieving.py:354
+msgid "Robber Bar Parameters"
+msgstr "Parâmetros da Barra"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223
+#: AppTools/ToolCopperThieving.py:356
+msgid ""
+"Parameters used for the robber bar.\n"
+"Robber bar = copper border to help in pattern hole plating."
+msgstr ""
+"Parâmetros usados para a barra de assalto.\n"
+"Barra = borda de cobre para ajudar no revestimento do furo do padrão."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231
+#: AppTools/ToolCopperThieving.py:364
+msgid "Bounding box margin for robber bar."
+msgstr "Margem da caixa delimitadora para Robber Bar."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:42
+#: AppTools/ToolCopperThieving.py:375 AppTools/ToolCorners.py:113
+#: AppTools/ToolEtchCompensation.py:96
+msgid "Thickness"
+msgstr "Espessura"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244
+#: AppTools/ToolCopperThieving.py:377
+msgid "The robber bar thickness."
+msgstr "Espessura da barra."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254
+#: AppTools/ToolCopperThieving.py:408
+msgid "Pattern Plating Mask"
+msgstr "Máscara do Revestimento Padrão"
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256
+#: AppTools/ToolCopperThieving.py:410
+msgid "Generate a mask for pattern plating."
+msgstr "Gera uma máscara para o revestimento padrão."
+
+#: AppGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263
+#: AppTools/ToolCopperThieving.py:433
+msgid ""
+"The distance between the possible copper thieving elements\n"
+"and/or robber bar and the actual openings in the mask."
+msgstr ""
+"Distância entre os possíveis elementos de adição de cobre\n"
+"e/ou barra e as aberturas reais na máscara."
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:27
+msgid "Calibration Tool Options"
+msgstr "Opções da Ferramenta de Calibração"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:38
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:38
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:37
+#: AppTools/ToolCopperThieving.py:91 AppTools/ToolCorners.py:108
+#: AppTools/ToolFiducials.py:151
+msgid "Parameters used for this tool."
+msgstr "Parâmetros usados para esta ferramenta."
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:43
+#: AppTools/ToolCalibration.py:181
+msgid "Source Type"
+msgstr "Tipo de Fonte"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:44
+#: AppTools/ToolCalibration.py:182
+msgid ""
+"The source of calibration points.\n"
+"It can be:\n"
+"- Object -> click a hole geo for Excellon or a pad for Gerber\n"
+"- Free -> click freely on canvas to acquire the calibration points"
+msgstr ""
+"A fonte dos pontos de calibração.\n"
+"Pode ser:\n"
+"- Objeto -> clique em uma área geográfica do furo para o Excellon ou em um "
+"pad para o Gerber\n"
+"- Livre -> clique livremente na tela para adquirir os pontos de calibração"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:49
+#: AppTools/ToolCalibration.py:187
+msgid "Free"
+msgstr "Livre"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:63
+#: AppTools/ToolCalibration.py:76
+msgid "Height (Z) for travelling between the points."
+msgstr "Altura (Z) para deslocamento entre os pontos."
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:75
+#: AppTools/ToolCalibration.py:88
+msgid "Verification Z"
+msgstr "Verificação Z"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:77
+#: AppTools/ToolCalibration.py:90
+msgid "Height (Z) for checking the point."
+msgstr "Altura (Z) para verificar o ponto."
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:89
+#: AppTools/ToolCalibration.py:102
+msgid "Zero Z tool"
+msgstr "Ferramenta Zero Z"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:91
+#: AppTools/ToolCalibration.py:104
+msgid ""
+"Include a sequence to zero the height (Z)\n"
+"of the verification tool."
+msgstr ""
+"Inclui uma sequência para zerar a altura (Z)\n"
+"da ferramenta de verificação."
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:100
+#: AppTools/ToolCalibration.py:113
+msgid "Height (Z) for mounting the verification probe."
+msgstr "Altura (Z) para montar a sonda de verificação."
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:114
+#: AppTools/ToolCalibration.py:127
+msgid ""
+"Toolchange X,Y position.\n"
+"If no value is entered then the current\n"
+"(x, y) point will be used,"
+msgstr ""
+"Troca de ferramentas nas posições X, Y.\n"
+"Se nenhum valor for inserido, o valor atual\n"
+"ponto (x, y) será usado,"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:125
+#: AppTools/ToolCalibration.py:153
+msgid "Second point"
+msgstr "Segundo Ponto"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:127
+#: AppTools/ToolCalibration.py:155
+msgid ""
+"Second point in the Gcode verification can be:\n"
+"- top-left -> the user will align the PCB vertically\n"
+"- bottom-right -> the user will align the PCB horizontally"
+msgstr ""
+"O segundo ponto na verificação do G-Code pode ser:\n"
+"- canto superior esquerdo -> o usuário alinhará o PCB verticalmente\n"
+"- canto inferior direito -> o usuário alinhará o PCB horizontalmente"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:131
+#: AppTools/ToolCalibration.py:159 App_Main.py:4684
+msgid "Top-Left"
+msgstr "Esquerda Superior"
+
+#: AppGUI/preferences/tools/Tools2CalPrefGroupUI.py:132
+#: AppTools/ToolCalibration.py:160 App_Main.py:4685
+msgid "Bottom-Right"
+msgstr "Direita Inferior"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:27
+msgid "Extract Drills Options"
+msgstr "Opções de Extração de Furos"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42
+#: AppTools/ToolExtractDrills.py:68 AppTools/ToolPunchGerber.py:75
+msgid "Processed Pads Type"
+msgstr "Tipo de Pads Processados"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44
+#: AppTools/ToolExtractDrills.py:70 AppTools/ToolPunchGerber.py:77
+msgid ""
+"The type of pads shape to be processed.\n"
+"If the PCB has many SMD pads with rectangular pads,\n"
+"disable the Rectangular aperture."
+msgstr ""
+"O tipo de formato dos pads a serem processadas.\n"
+"Se o PCB tiver muitos blocos SMD com pads retangulares,\n"
+"desative a abertura retangular."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54
+#: AppTools/ToolExtractDrills.py:80 AppTools/ToolPunchGerber.py:91
+msgid "Process Circular Pads."
+msgstr "Pads Circulares"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:60
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164
+#: AppTools/ToolExtractDrills.py:86 AppTools/ToolExtractDrills.py:214
+#: AppTools/ToolPunchGerber.py:97 AppTools/ToolPunchGerber.py:242
+msgid "Oblong"
+msgstr "Oblongo"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62
+#: AppTools/ToolExtractDrills.py:88 AppTools/ToolPunchGerber.py:99
+msgid "Process Oblong Pads."
+msgstr "Pads Oblongos."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70
+#: AppTools/ToolExtractDrills.py:96 AppTools/ToolPunchGerber.py:107
+msgid "Process Square Pads."
+msgstr "Pads Quadrados."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78
+#: AppTools/ToolExtractDrills.py:104 AppTools/ToolPunchGerber.py:115
+msgid "Process Rectangular Pads."
+msgstr "Pads Retangulares"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:84
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203
+#: AppTools/ToolExtractDrills.py:110 AppTools/ToolExtractDrills.py:253
+#: AppTools/ToolProperties.py:172 AppTools/ToolPunchGerber.py:121
+#: AppTools/ToolPunchGerber.py:281
+msgid "Others"
+msgstr "Outros"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86
+#: AppTools/ToolExtractDrills.py:112 AppTools/ToolPunchGerber.py:123
+msgid "Process pads not in the categories above."
+msgstr "Processa pads fora das categorias acima."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:99
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125
+#: AppTools/ToolExtractDrills.py:139 AppTools/ToolExtractDrills.py:156
+#: AppTools/ToolPunchGerber.py:150 AppTools/ToolPunchGerber.py:184
+msgid "Fixed Diameter"
+msgstr "Diâmetro Fixo"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:100
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142
+#: AppTools/ToolExtractDrills.py:140 AppTools/ToolExtractDrills.py:192
+#: AppTools/ToolPunchGerber.py:151 AppTools/ToolPunchGerber.py:214
+msgid "Fixed Annular Ring"
+msgstr "Anel Anular Fixo"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102
+#: AppTools/ToolExtractDrills.py:141 AppTools/ToolPunchGerber.py:152
+msgid "Proportional"
+msgstr "Proporcional"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107
+#: AppTools/ToolExtractDrills.py:130
+msgid ""
+"The method for processing pads. Can be:\n"
+"- Fixed Diameter -> all holes will have a set size\n"
+"- Fixed Annular Ring -> all holes will have a set annular ring\n"
+"- Proportional -> each hole size will be a fraction of the pad size"
+msgstr ""
+"Método para processar pads. Pode ser:\n"
+"- Diâmetro fixo -> todos os furos terão um tamanho definido\n"
+"- Anel Anular fixo -> todos os furos terão um anel anular definido\n"
+"- Proporcional -> cada tamanho de furo será uma fração do tamanho do pad"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:220
+#: AppTools/ToolExtractDrills.py:164 AppTools/ToolExtractDrills.py:285
+#: AppTools/ToolPunchGerber.py:192 AppTools/ToolPunchGerber.py:308
+#: AppTools/ToolTransform.py:357 App_Main.py:9602
+msgid "Value"
+msgstr "Valor"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135
+#: AppTools/ToolExtractDrills.py:166 AppTools/ToolPunchGerber.py:194
+msgid "Fixed hole diameter."
+msgstr "Diâmetro fixo."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:142
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144
+#: AppTools/ToolExtractDrills.py:194 AppTools/ToolPunchGerber.py:216
+msgid ""
+"The size of annular ring.\n"
+"The copper sliver between the hole exterior\n"
+"and the margin of the copper pad."
+msgstr ""
+"Tamanho do anel anular.\n"
+"A tira de cobre entre o exterior do furo\n"
+"e a margem do pad de cobre."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153
+#: AppTools/ToolExtractDrills.py:203 AppTools/ToolPunchGerber.py:231
+msgid "The size of annular ring for circular pads."
+msgstr "Tamanho do anel anular para pads circulares."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:164
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:166
+#: AppTools/ToolExtractDrills.py:216 AppTools/ToolPunchGerber.py:244
+msgid "The size of annular ring for oblong pads."
+msgstr "Tamanho do anel anular para pads oblongos."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:177
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:179
+#: AppTools/ToolExtractDrills.py:229 AppTools/ToolPunchGerber.py:257
+msgid "The size of annular ring for square pads."
+msgstr "Tamanho do anel anular para pads quadrados."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:190
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:192
+#: AppTools/ToolExtractDrills.py:242 AppTools/ToolPunchGerber.py:270
+msgid "The size of annular ring for rectangular pads."
+msgstr "Tamanho do anel anular para pads retangulares."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:203
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:205
+#: AppTools/ToolExtractDrills.py:255 AppTools/ToolPunchGerber.py:283
+msgid "The size of annular ring for other pads."
+msgstr "Tamanho do anel anular para outros pads."
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:213
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:215
+#: AppTools/ToolExtractDrills.py:276 AppTools/ToolPunchGerber.py:299
+msgid "Proportional Diameter"
+msgstr "Diâmetro Proporcional"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:222
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:224
+msgid "Factor"
+msgstr "Fator"
+
+#: AppGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226
+#: AppTools/ToolExtractDrills.py:287 AppTools/ToolPunchGerber.py:310
+msgid ""
+"Proportional Diameter.\n"
+"The hole diameter will be a fraction of the pad size."
+msgstr ""
+"Diâmetro Proporcional.\n"
+"O diâmetro do furo será uma fração do tamanho do pad."
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:27
+msgid "Fiducials Tool Options"
+msgstr "Opções da Ferramenta de Fiduciais"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45
+#: AppTools/ToolFiducials.py:158
+msgid ""
+"This set the fiducial diameter if fiducial type is circular,\n"
+"otherwise is the size of the fiducial.\n"
+"The soldermask opening is double than that."
+msgstr ""
+"Define o diâmetro fiducial se o tipo fiducial for circular,\n"
+"caso contrário, é o tamanho do fiducial.\n"
+"A abertura da máscara de solda é o dobro disso."
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73
+#: AppTools/ToolFiducials.py:186
+msgid "Auto"
+msgstr "Auto"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74
+#: AppTools/ToolFiducials.py:187
+msgid "Manual"
+msgstr "Manual"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76
+#: AppTools/ToolFiducials.py:189
+msgid "Mode:"
+msgstr "Modo:"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:78
+msgid ""
+"- 'Auto' - automatic placement of fiducials in the corners of the bounding "
+"box.\n"
+"- 'Manual' - manual placement of fiducials."
+msgstr ""
+"- 'Auto' - colocação automática de fiduciais nos cantos da caixa "
+"delimitadora.\n"
+"- 'Manual' - colocação manual de fiduciais."
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86
+#: AppTools/ToolFiducials.py:199
+msgid "Up"
+msgstr "Acima"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87
+#: AppTools/ToolFiducials.py:200
+msgid "Down"
+msgstr "Abaixo"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90
+#: AppTools/ToolFiducials.py:203
+msgid "Second fiducial"
+msgstr "Segundo fiducial"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92
+#: AppTools/ToolFiducials.py:205
+msgid ""
+"The position for the second fiducial.\n"
+"- 'Up' - the order is: bottom-left, top-left, top-right.\n"
+"- 'Down' - the order is: bottom-left, bottom-right, top-right.\n"
+"- 'None' - there is no second fiducial. The order is: bottom-left, top-right."
+msgstr ""
+"Posição do segundo fiducial.\n"
+"- 'Acima' - a ordem é: canto inferior esquerdo, superior esquerdo, superior "
+"direito\n"
+"- 'Abaixo' - a ordem é: canto inferior esquerdo, inferior direito, superior "
+"direito.\n"
+"- 'Nenhum' - não há um segundo fiducial. A ordem é: canto inferior esquerdo, "
+"superior direito."
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108
+#: AppTools/ToolFiducials.py:221
+msgid "Cross"
+msgstr "Cruz"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109
+#: AppTools/ToolFiducials.py:222
+msgid "Chess"
+msgstr "Xadrez"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112
+#: AppTools/ToolFiducials.py:224
+msgid "Fiducial Type"
+msgstr "Tipo de Fiducial"
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114
+#: AppTools/ToolFiducials.py:226
+msgid ""
+"The type of fiducial.\n"
+"- 'Circular' - this is the regular fiducial.\n"
+"- 'Cross' - cross lines fiducial.\n"
+"- 'Chess' - chess pattern fiducial."
+msgstr ""
+"O tipo de fiducial.\n"
+"- 'Circular' - este é o fiducial regular.\n"
+"- 'Cruz' - linhas cruzadas fiduciais.\n"
+"- 'Xadrez' - padrão de xadrez fiducial."
+
+#: AppGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123
+#: AppTools/ToolFiducials.py:235
+msgid "Line thickness"
+msgstr "Espessura da linha"
+
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:27
+msgid "Invert Gerber Tool Options"
+msgstr "Opções Inverter Gerber"
+
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:33
+msgid ""
+"A tool to invert Gerber geometry from positive to negative\n"
+"and in revers."
+msgstr ""
+"Uma ferramenta para converter a geometria Gerber de positiva para negativa\n"
+"e vice-versa."
+
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:47
+#: AppTools/ToolInvertGerber.py:90
+msgid ""
+"Distance by which to avoid\n"
+"the edges of the Gerber object."
+msgstr ""
+"Distância pela qual evitar \n"
+"as bordas do objeto gerber."
+
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:58
+#: AppTools/ToolInvertGerber.py:101
+msgid "Lines Join Style"
+msgstr "Estilo de Junção de Linhas"
+
+#: AppGUI/preferences/tools/Tools2InvertPrefGroupUI.py:60
+#: AppTools/ToolInvertGerber.py:103
+msgid ""
+"The way that the lines in the object outline will be joined.\n"
+"Can be:\n"
+"- rounded -> an arc is added between two joining lines\n"
+"- square -> the lines meet in 90 degrees angle\n"
+"- bevel -> the lines are joined by a third line"
+msgstr ""
+"A maneira como as linhas no contorno do objeto serão unidas.\n"
+"Pode ser:\n"
+"- arredondado -> um arco é adicionado entre duas linhas de junção\n"
+"- quadrado -> as linhas se encontram em um ângulo de 90 graus\n"
+"- chanfro -> as linhas são unidas por uma terceira linha"
+
+#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:27
+msgid "Optimal Tool Options"
+msgstr "Opções de Ferramentas Ideais"
+
+#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:33
+msgid ""
+"A tool to find the minimum distance between\n"
+"every two Gerber geometric elements"
+msgstr ""
+"Uma ferramenta para encontrar a distância mínima entre\n"
+"cada dois elementos geométricos Gerber"
+
+#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:48
+#: AppTools/ToolOptimal.py:78
+msgid "Precision"
+msgstr "Precisão"
+
+#: AppGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:50
+msgid "Number of decimals for the distances and coordinates in this tool."
+msgstr ""
+"Número de casas decimais para as distâncias e coordenadas nesta ferramenta."
+
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:27
+msgid "Punch Gerber Options"
+msgstr "Opções Gerber para Furo"
+
+#: AppGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:108
+#: AppTools/ToolPunchGerber.py:141
+msgid ""
+"The punch hole source can be:\n"
+"- Excellon Object-> the Excellon object drills center will serve as "
+"reference.\n"
+"- Fixed Diameter -> will try to use the pads center as reference adding "
+"fixed diameter holes.\n"
+"- Fixed Annular Ring -> will try to keep a set annular ring.\n"
+"- Proportional -> will make a Gerber punch hole having the diameter a "
+"percentage of the pad diameter."
+msgstr ""
+"A fonte do furo pode ser:\n"
+"- Objeto Excellon-> o centro da broca servirá como referência.\n"
+"- Diâmetro fixo -> tentará usar o centro dos pads como referência, "
+"adicionando furos de diâmetro fixo.\n"
+"- Anel anular fixo -> tentará manter um anel anular definido.\n"
+"- Proporcional -> fará um furo Gerber com o diâmetro de uma porcentagem do "
+"diâmetro do pad."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:27
+msgid "QRCode Tool Options"
+msgstr "Opções Ferramenta QRCode"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:33
+msgid ""
+"A tool to create a QRCode that can be inserted\n"
+"into a selected Gerber file, or it can be exported as a file."
+msgstr ""
+"Uma ferramenta para criar um QRCode que pode ser inserido\n"
+"em um arquivo Gerber selecionado ou pode ser exportado como um arquivo."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45
+#: AppTools/ToolQRCode.py:100
+msgid "Version"
+msgstr "Versão"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47
+#: AppTools/ToolQRCode.py:102
+msgid ""
+"QRCode version can have values from 1 (21x21 boxes)\n"
+"to 40 (177x177 boxes)."
+msgstr ""
+"A versão QRCode pode ter valores de 1 (caixas 21x21)\n"
+"a 40 (caixas 177x177)."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58
+#: AppTools/ToolQRCode.py:113
+msgid "Error correction"
+msgstr "Correção de erros"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71
+#: AppTools/ToolQRCode.py:115 AppTools/ToolQRCode.py:126
+#, python-format
+msgid ""
+"Parameter that controls the error correction used for the QR Code.\n"
+"L = maximum 7%% errors can be corrected\n"
+"M = maximum 15%% errors can be corrected\n"
+"Q = maximum 25%% errors can be corrected\n"
+"H = maximum 30%% errors can be corrected."
+msgstr ""
+"Parâmetro que controla a correção de erros usada para o QRCode.\n"
+"L = máximo de 7%% dos erros pode ser corrigido\n"
+"M = máximo de 15%% dos erros pode ser corrigido\n"
+"Q = máximo de 25%% dos erros pode ser corrigido\n"
+"H = máximo de 30%% dos erros pode ser corrigido."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81
+#: AppTools/ToolQRCode.py:136
+msgid "Box Size"
+msgstr "Tamanho da Caixa"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83
+#: AppTools/ToolQRCode.py:138
+msgid ""
+"Box size control the overall size of the QRcode\n"
+"by adjusting the size of each box in the code."
+msgstr ""
+"O tamanho da caixa controla o tamanho geral do QRCode\n"
+"ajustando o tamanho de cada caixa no código."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94
+#: AppTools/ToolQRCode.py:149
+msgid "Border Size"
+msgstr "Tamanho da Borda"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96
+#: AppTools/ToolQRCode.py:151
+msgid ""
+"Size of the QRCode border. How many boxes thick is the border.\n"
+"Default value is 4. The width of the clearance around the QRCode."
+msgstr ""
+"Tamanho da borda do QRCode. Quantas caixas grossas tem a borda.\n"
+"O valor padrão é 4. A largura da folga ao redor do QRCode."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107
+#: AppTools/ToolQRCode.py:162
+msgid "QRCode Data"
+msgstr "Dado QRCode"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109
+#: AppTools/ToolQRCode.py:164
+msgid "QRCode Data. Alphanumeric text to be encoded in the QRCode."
+msgstr "Dado QRCode. Texto alfanumérico a ser codificado no QRCode."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:113
+#: AppTools/ToolQRCode.py:168
+msgid "Add here the text to be included in the QRCode..."
+msgstr "Adicione aqui o texto a ser incluído no QRCode..."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:119
+#: AppTools/ToolQRCode.py:174
+msgid "Polarity"
+msgstr "Polaridade"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121
+#: AppTools/ToolQRCode.py:176
+msgid ""
+"Choose the polarity of the QRCode.\n"
+"It can be drawn in a negative way (squares are clear)\n"
+"or in a positive way (squares are opaque)."
+msgstr ""
+"Escolha a polaridade do QRCode.\n"
+"Pode ser desenhado de forma negativa (os quadrados são claros)\n"
+"ou de maneira positiva (os quadrados são opacos)."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125
+#: AppTools/ToolFilm.py:279 AppTools/ToolQRCode.py:180
+msgid "Negative"
+msgstr "Negativo"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126
+#: AppTools/ToolFilm.py:278 AppTools/ToolQRCode.py:181
+msgid "Positive"
+msgstr "Positivo"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128
+#: AppTools/ToolQRCode.py:183
+msgid ""
+"Choose the type of QRCode to be created.\n"
+"If added on a Silkscreen Gerber file the QRCode may\n"
+"be added as positive. If it is added to a Copper Gerber\n"
+"file then perhaps the QRCode can be added as negative."
+msgstr ""
+"Escolha o tipo de QRCode a ser criado.\n"
+"Se adicionado a um arquivo Silkscreen Gerber, o QRCode poderá\n"
+"ser adicionado como positivo. Se for adicionado a um arquivo Gerber\n"
+"de cobre, talvez o QRCode possa ser adicionado como negativo."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145
+#: AppTools/ToolQRCode.py:194 AppTools/ToolQRCode.py:200
+msgid ""
+"The bounding box, meaning the empty space that surrounds\n"
+"the QRCode geometry, can have a rounded or a square shape."
+msgstr ""
+"A caixa delimitadora, significando o espaço vazio que circunda\n"
+"a geometria QRCode, pode ter uma forma arredondada ou quadrada."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:239
+#: AppTools/ToolQRCode.py:197 AppTools/ToolTransform.py:383
+msgid "Rounded"
+msgstr "Arredondado"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152
+#: AppTools/ToolQRCode.py:228
+msgid "Fill Color"
+msgstr "Cor de Preenchimento"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154
+#: AppTools/ToolQRCode.py:230
+msgid "Set the QRCode fill color (squares color)."
+msgstr "Define a cor de preenchimento do QRCode (cor dos quadrados)."
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:173
+#: AppTools/ToolQRCode.py:252
+msgid "Back Color"
+msgstr "Cor de Fundo"
+
+#: AppGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:175
+#: AppTools/ToolQRCode.py:254
+msgid "Set the QRCode background color."
+msgstr "Define a cor de fundo do QRCode."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:27
+msgid "Check Rules Tool Options"
+msgstr "Opções das Regras"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:32
+msgid ""
+"A tool to check if Gerber files are within a set\n"
+"of Manufacturing Rules."
+msgstr ""
+"Uma ferramenta para verificar se os arquivos Gerber estão dentro de um "
+"conjunto\n"
+"das regras de fabricação."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:42
+#: AppTools/ToolRulesCheck.py:265 AppTools/ToolRulesCheck.py:929
+msgid "Trace Size"
+msgstr "Tamanho do Traçado"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:44
+#: AppTools/ToolRulesCheck.py:267
+msgid "This checks if the minimum size for traces is met."
+msgstr "Verifica se o tamanho mínimo para traçados é atendido."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:54
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:74
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:94
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:114
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:134
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:154
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:174
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:194
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:216
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:236
+#: AppTools/ToolRulesCheck.py:277 AppTools/ToolRulesCheck.py:299
+#: AppTools/ToolRulesCheck.py:322 AppTools/ToolRulesCheck.py:345
+#: AppTools/ToolRulesCheck.py:368 AppTools/ToolRulesCheck.py:391
+#: AppTools/ToolRulesCheck.py:414 AppTools/ToolRulesCheck.py:437
+#: AppTools/ToolRulesCheck.py:462 AppTools/ToolRulesCheck.py:485
+msgid "Min value"
+msgstr "Valor Min"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:56
+#: AppTools/ToolRulesCheck.py:279
+msgid "Minimum acceptable trace size."
+msgstr "Mínimo tamanho de traçado aceito."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:61
+#: AppTools/ToolRulesCheck.py:286 AppTools/ToolRulesCheck.py:1157
+#: AppTools/ToolRulesCheck.py:1187
+msgid "Copper to Copper clearance"
+msgstr "Espaço Cobre Cobre"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:63
+#: AppTools/ToolRulesCheck.py:288
+msgid ""
+"This checks if the minimum clearance between copper\n"
+"features is met."
+msgstr ""
+"Verifica se o espaço mínimo entre recursos de cobre\n"
+"é atendido."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:76
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:96
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:116
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:136
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:156
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:176
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:238
+#: AppTools/ToolRulesCheck.py:301 AppTools/ToolRulesCheck.py:324
+#: AppTools/ToolRulesCheck.py:347 AppTools/ToolRulesCheck.py:370
+#: AppTools/ToolRulesCheck.py:393 AppTools/ToolRulesCheck.py:416
+#: AppTools/ToolRulesCheck.py:464
+msgid "Minimum acceptable clearance value."
+msgstr "Espaço mínimo aceitável."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:81
+#: AppTools/ToolRulesCheck.py:309 AppTools/ToolRulesCheck.py:1217
+#: AppTools/ToolRulesCheck.py:1223 AppTools/ToolRulesCheck.py:1236
+#: AppTools/ToolRulesCheck.py:1243
+msgid "Copper to Outline clearance"
+msgstr "Espaço Cobre Contorno"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:83
+#: AppTools/ToolRulesCheck.py:311
+msgid ""
+"This checks if the minimum clearance between copper\n"
+"features and the outline is met."
+msgstr ""
+"Verifica se o espaço mínimo entre recursos de cobre\n"
+"e o contorno é atendido."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:101
+#: AppTools/ToolRulesCheck.py:332
+msgid "Silk to Silk Clearance"
+msgstr "Espaço Silk Silk"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:103
+#: AppTools/ToolRulesCheck.py:334
+msgid ""
+"This checks if the minimum clearance between silkscreen\n"
+"features and silkscreen features is met."
+msgstr ""
+"Verifica se o espaço mínimo entre recursos de silkscreen\n"
+"é atendido."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:121
+#: AppTools/ToolRulesCheck.py:355 AppTools/ToolRulesCheck.py:1326
+#: AppTools/ToolRulesCheck.py:1332 AppTools/ToolRulesCheck.py:1350
+msgid "Silk to Solder Mask Clearance"
+msgstr "Espaço Silk Máscara de Solda"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:123
+#: AppTools/ToolRulesCheck.py:357
+msgid ""
+"This checks if the minimum clearance between silkscreen\n"
+"features and soldermask features is met."
+msgstr ""
+"Verifica se o espaço mínimo entre recursos de silkscreen\n"
+"e máscara de solda é atendido."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:141
+#: AppTools/ToolRulesCheck.py:378 AppTools/ToolRulesCheck.py:1380
+#: AppTools/ToolRulesCheck.py:1386 AppTools/ToolRulesCheck.py:1400
+#: AppTools/ToolRulesCheck.py:1407
+msgid "Silk to Outline Clearance"
+msgstr "Espaço Silk Contorno"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:143
+#: AppTools/ToolRulesCheck.py:380
+msgid ""
+"This checks if the minimum clearance between silk\n"
+"features and the outline is met."
+msgstr ""
+"Verifica se o espaço mínimo entre recursos de silkscreen\n"
+"e o contorno é atendido."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:161
+#: AppTools/ToolRulesCheck.py:401 AppTools/ToolRulesCheck.py:1418
+#: AppTools/ToolRulesCheck.py:1445
+msgid "Minimum Solder Mask Sliver"
+msgstr "Máscara de Solda Mínima"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:163
+#: AppTools/ToolRulesCheck.py:403
+msgid ""
+"This checks if the minimum clearance between soldermask\n"
+"features and soldermask features is met."
+msgstr ""
+"Verifica se o espaço mínimo entre recursos de máscara de solda\n"
+"é atendido."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:181
+#: AppTools/ToolRulesCheck.py:424 AppTools/ToolRulesCheck.py:1483
+#: AppTools/ToolRulesCheck.py:1489 AppTools/ToolRulesCheck.py:1505
+#: AppTools/ToolRulesCheck.py:1512
+msgid "Minimum Annular Ring"
+msgstr "Anel Anular Mínimo"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:183
+#: AppTools/ToolRulesCheck.py:426
+msgid ""
+"This checks if the minimum copper ring left by drilling\n"
+"a hole into a pad is met."
+msgstr ""
+"Verifica se o anel de cobre mínimo deixado pela perfuração\n"
+"de um buraco em um pad é atendido."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:196
+#: AppTools/ToolRulesCheck.py:439
+msgid "Minimum acceptable ring value."
+msgstr "Valor mínimo do anel."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:203
+#: AppTools/ToolRulesCheck.py:449 AppTools/ToolRulesCheck.py:873
+msgid "Hole to Hole Clearance"
+msgstr "Espaço Entre Furos"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:205
+#: AppTools/ToolRulesCheck.py:451
+msgid ""
+"This checks if the minimum clearance between a drill hole\n"
+"and another drill hole is met."
+msgstr ""
+"Verifica se o espaço mínimo entre furos\n"
+"é atendido."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:218
+#: AppTools/ToolRulesCheck.py:487
+msgid "Minimum acceptable drill size."
+msgstr "Espaço mínimo entre furos."
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:223
+#: AppTools/ToolRulesCheck.py:472 AppTools/ToolRulesCheck.py:847
+msgid "Hole Size"
+msgstr "Tamanho Furo"
+
+#: AppGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:225
+#: AppTools/ToolRulesCheck.py:474
+msgid ""
+"This checks if the drill holes\n"
+"sizes are above the threshold."
+msgstr ""
+"Verifica se os tamanhos dos furos\n"
+"estão acima do limite."
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:27
+msgid "2Sided Tool Options"
+msgstr "Opções de PCB 2 Faces"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:33
+msgid ""
+"A tool to help in creating a double sided\n"
+"PCB using alignment holes."
+msgstr ""
+"Uma ferramenta para ajudar na criação de um\n"
+"PCB de dupla face usando furos de alinhamento."
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:47
+msgid "Drill dia"
+msgstr "Diâmetro"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49
+#: AppTools/ToolDblSided.py:363 AppTools/ToolDblSided.py:368
+msgid "Diameter of the drill for the alignment holes."
+msgstr "Diâmetro da broca para os furos de alinhamento."
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:56
+#: AppTools/ToolDblSided.py:377
+msgid "Align Axis"
+msgstr "Alinhar Eixo"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71
+#: AppTools/ToolDblSided.py:165 AppTools/ToolDblSided.py:379
+msgid "Mirror vertically (X) or horizontally (Y)."
+msgstr "Espelha verticalmente (X) ou horizontalmente (Y)."
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:69
+msgid "Mirror Axis:"
+msgstr "Espelhar Eixo:"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:80
+#: AppTools/ToolDblSided.py:181
+msgid "Point"
+msgstr "Ponto"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:81
+#: AppTools/ToolDblSided.py:182
+msgid "Box"
+msgstr "Caixa"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:82
+msgid "Axis Ref"
+msgstr "Eixo de Ref"
+
+#: AppGUI/preferences/tools/Tools2sidedPrefGroupUI.py:84
+msgid ""
+"The axis should pass through a point or cut\n"
+" a specified box (in a FlatCAM object) through \n"
+"the center."
+msgstr ""
+"O eixo deve passar por um ponto ou cortar o centro de uma caixa"
+"b> especificada (em um objeto FlatCAM)."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:27
+msgid "Calculators Tool Options"
+msgstr "Opções das Calculadoras"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31
+#: AppTools/ToolCalculators.py:25
+msgid "V-Shape Tool Calculator"
+msgstr "Calculadora Ferramenta Ponta-em-V"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:33
+msgid ""
+"Calculate the tool diameter for a given V-shape tool,\n"
+"having the tip diameter, tip angle and\n"
+"depth-of-cut as parameters."
+msgstr ""
+"Calcula o diâmetro equvalente da ferramenta para uma determinada\n"
+"ferramenta em forma de V, com o diâmetro da ponta, o ângulo da ponta e a\n"
+"profundidade de corte como parâmetros."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50
+#: AppTools/ToolCalculators.py:94
+msgid "Tip Diameter"
+msgstr "Diâmetro da Ponta"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52
+#: AppTools/ToolCalculators.py:102
+msgid ""
+"This is the tool tip diameter.\n"
+"It is specified by manufacturer."
+msgstr ""
+"Diâmetro da ponta da ferramenta.\n"
+"Especificado pelo fabricante."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64
+#: AppTools/ToolCalculators.py:105
+msgid "Tip Angle"
+msgstr "Ângulo da Ponta"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:66
+msgid ""
+"This is the angle on the tip of the tool.\n"
+"It is specified by manufacturer."
+msgstr ""
+"Ângulo na ponta da ferramenta.\n"
+"Especificado pelo fabricante."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:80
+msgid ""
+"This is depth to cut into material.\n"
+"In the CNCJob object it is the CutZ parameter."
+msgstr ""
+"Profundidade para cortar o material.\n"
+"No objeto CNC, é o parâmetro Profundidade de Corte (z_cut)."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87
+#: AppTools/ToolCalculators.py:27
+msgid "ElectroPlating Calculator"
+msgstr "Calculadora Eletrolítica"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89
+#: AppTools/ToolCalculators.py:158
+msgid ""
+"This calculator is useful for those who plate the via/pad/drill holes,\n"
+"using a method like graphite ink or calcium hypophosphite ink or palladium "
+"chloride."
+msgstr ""
+"Esta calculadora é útil para aqueles que fazem os furos\n"
+"(via/pad/furos) usando um método como tinta graphite ou tinta \n"
+"hipofosfito de cálcio ou cloreto de paládio."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:100
+#: AppTools/ToolCalculators.py:167
+msgid "Board Length"
+msgstr "Comprimento da Placa"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102
+#: AppTools/ToolCalculators.py:173
+msgid "This is the board length. In centimeters."
+msgstr "Comprimento da placa, em centímetros."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112
+#: AppTools/ToolCalculators.py:175
+msgid "Board Width"
+msgstr "Largura da Placa"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114
+#: AppTools/ToolCalculators.py:181
+msgid "This is the board width.In centimeters."
+msgstr "Largura da placa, em centímetros."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119
+#: AppTools/ToolCalculators.py:183
+msgid "Current Density"
+msgstr "Densidade de Corrente"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125
+#: AppTools/ToolCalculators.py:190
+msgid ""
+"Current density to pass through the board. \n"
+"In Amps per Square Feet ASF."
+msgstr ""
+"Densidade de corrente para passar pela placa.\n"
+"Em Ampères por Pés Quadrados ASF."
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:131
+#: AppTools/ToolCalculators.py:193
+msgid "Copper Growth"
+msgstr "Espessura do Cobre"
+
+#: AppGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137
+#: AppTools/ToolCalculators.py:200
+msgid ""
+"How thick the copper growth is intended to be.\n"
+"In microns."
+msgstr "Espessura da camada de cobre, em microns."
+
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:27
+#, fuzzy
+#| msgid "Gerber Options"
+msgid "Corner Markers Options"
+msgstr "Opções Gerber"
+
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:44
+#: AppTools/ToolCorners.py:115
+msgid "The thickness of the line that makes the corner marker."
+msgstr ""
+
+#: AppGUI/preferences/tools/ToolsCornersPrefGroupUI.py:58
+#: AppTools/ToolCorners.py:129
+msgid "The length of the line that makes the corner marker."
+msgstr ""
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:28
+msgid "Cutout Tool Options"
+msgstr "Opções da Ferramenta de Recorte"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43
+#: AppTools/ToolCalculators.py:123 AppTools/ToolCutOut.py:129
+msgid "Tool Diameter"
+msgstr "Diâmetro"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45
+#: AppTools/ToolCutOut.py:131
+msgid ""
+"Diameter of the tool used to cutout\n"
+"the PCB shape out of the surrounding material."
+msgstr "Diâmetro da ferramenta usada para cortar o entorno do PCB."
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:100
+msgid "Object kind"
+msgstr "Tipo de objeto"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102
+#: AppTools/ToolCutOut.py:77
+msgid ""
+"Choice of what kind the object we want to cutout is.
- Single: "
+"contain a single PCB Gerber outline object.
- Panel: a panel PCB "
+"Gerber object, which is made\n"
+"out of many individual PCB outlines."
+msgstr ""
+"Escolha o tipo do objeto a recortar.
- Único: contém um único "
+"objeto Gerber de contorno PCB.
- Painel: um painel de objetos "
+"Gerber PCB, composto por muitos contornos PCB individuais."
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109
+#: AppTools/ToolCutOut.py:83
+msgid "Single"
+msgstr "Único"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110
+#: AppTools/ToolCutOut.py:84
+msgid "Panel"
+msgstr "Painel"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117
+#: AppTools/ToolCutOut.py:192
+msgid ""
+"Margin over bounds. A positive value here\n"
+"will make the cutout of the PCB further from\n"
+"the actual PCB border"
+msgstr ""
+"Margem além das bordas. Um valor positivo\n"
+"tornará o recorte do PCB mais longe da borda da PCB"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:130
+#: AppTools/ToolCutOut.py:203
+msgid "Gap size"
+msgstr "Tamanho da Ponte"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:132
+#: AppTools/ToolCutOut.py:205
+msgid ""
+"The size of the bridge gaps in the cutout\n"
+"used to keep the board connected to\n"
+"the surrounding material (the one \n"
+"from which the PCB is cutout)."
+msgstr ""
+"Tamanho das pontes no recorte, utilizadas\n"
+"para manter a placa conectada ao material\n"
+"circundante (de onde o PCB é recortado)."
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:146
+#: AppTools/ToolCutOut.py:245
+msgid "Gaps"
+msgstr "Pontes"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:148
+msgid ""
+"Number of gaps used for the cutout.\n"
+"There can be maximum 8 bridges/gaps.\n"
+"The choices are:\n"
+"- None - no gaps\n"
+"- lr - left + right\n"
+"- tb - top + bottom\n"
+"- 4 - left + right +top + bottom\n"
+"- 2lr - 2*left + 2*right\n"
+"- 2tb - 2*top + 2*bottom\n"
+"- 8 - 2*left + 2*right +2*top + 2*bottom"
+msgstr ""
+"Número de pontes utilizadas para o recorte.\n"
+"Pode haver um máximo de 8 pontes/lacunas.\n"
+"As opções são:\n"
+"- Nenhum - sem pontes\n"
+"- LR: esquerda + direita\n"
+"- TB: topo + baixo\n"
+"- 4: esquerda + direita + topo + baixo\n"
+"- 2LR: 2*esquerda + 2*direita\n"
+"- 2TB: 2*topo + 2*baixo\n"
+"- 8: 2*esquerda + 2*direita + 2*topo + 2*baixo"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:170
+#: AppTools/ToolCutOut.py:222
+msgid "Convex Shape"
+msgstr "Forma Convexa"
+
+#: AppGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:172
+#: AppTools/ToolCutOut.py:225
+msgid ""
+"Create a convex shape surrounding the entire PCB.\n"
+"Used only if the source object type is Gerber."
+msgstr ""
+"Cria uma forma convexa ao redor de toda a PCB.\n"
+"Utilize somente se o tipo de objeto de origem for Gerber."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:27
+msgid "Film Tool Options"
+msgstr "Opções da Ferramenta de Filme"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:33
+msgid ""
+"Create a PCB film from a Gerber or Geometry\n"
+"FlatCAM object.\n"
+"The file is saved in SVG format."
+msgstr ""
+"Cria um filme de PCB a partir de um objeto Gerber\n"
+"ou Geometria FlatCAM.\n"
+"O arquivo é salvo no formato SVG."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:44
+msgid "Film Type"
+msgstr "Tipo de Filme"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:46 AppTools/ToolFilm.py:283
+msgid ""
+"Generate a Positive black film or a Negative film.\n"
+"Positive means that it will print the features\n"
+"with black on a white canvas.\n"
+"Negative means that it will print the features\n"
+"with white on a black canvas.\n"
+"The Film format is SVG."
+msgstr ""
+"Gera um filme Positivo ou Negativo.\n"
+"Positivo significa que os recursos são impressos\n"
+"em preto em uma tela branca.\n"
+"Negativo significa que os recursos são impressos\n"
+"em branco em uma tela preta.\n"
+"O formato do arquivo do filme é SVG ."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:57
+msgid "Film Color"
+msgstr "Cor do Filme"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:59
+msgid "Set the film color when positive film is selected."
+msgstr "Define a cor do filme, se filme positivo estiver selecionado."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:82 AppTools/ToolFilm.py:299
+msgid "Border"
+msgstr "Borda"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:84 AppTools/ToolFilm.py:301
+msgid ""
+"Specify a border around the object.\n"
+"Only for negative film.\n"
+"It helps if we use as a Box Object the same \n"
+"object as in Film Object. It will create a thick\n"
+"black bar around the actual print allowing for a\n"
+"better delimitation of the outline features which are of\n"
+"white color like the rest and which may confound with the\n"
+"surroundings if not for this border."
+msgstr ""
+"Especifica uma borda ao redor do objeto.\n"
+"Somente para filme negativo.\n"
+"Ajuda se for usado como Objeto Caixa o mesmo\n"
+"objeto do Filme. Será criada uma barra preta\n"
+"ao redor da impressão, permitindo uma melhor\n"
+"delimitação dos contornos dos recursos (que são\n"
+"brancos como o restante e podem ser confundidos\n"
+"com os limites, se não for usada essa borda)."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:101
+#: AppTools/ToolFilm.py:266
+msgid "Scale Stroke"
+msgstr "Espessura da Linha"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:103
+#: AppTools/ToolFilm.py:268
+msgid ""
+"Scale the line stroke thickness of each feature in the SVG file.\n"
+"It means that the line that envelope each SVG feature will be thicker or "
+"thinner,\n"
+"therefore the fine features may be more affected by this parameter."
+msgstr ""
+"Espessura da linha de cada recurso no arquivo SVG.\n"
+"A linha que envolve cada recurso SVG será mais espessa ou mais fina.\n"
+"Os recursos mais finos podem ser afetados por esse parâmetro."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:110
+#: AppTools/ToolFilm.py:124
+msgid "Film Adjustments"
+msgstr "Ajustes do Filme"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:112
+#: AppTools/ToolFilm.py:126
+msgid ""
+"Sometime the printers will distort the print shape, especially the Laser "
+"types.\n"
+"This section provide the tools to compensate for the print distortions."
+msgstr ""
+"Algumas vezes, as impressoras distorcem o formato da impressão, "
+"especialmente as laser.\n"
+"Esta seção fornece as ferramentas para compensar as distorções na impressão."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:119
+#: AppTools/ToolFilm.py:133
+msgid "Scale Film geometry"
+msgstr "Escala da Geometria de Filme"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:121
+#: AppTools/ToolFilm.py:135
+msgid ""
+"A value greater than 1 will stretch the film\n"
+"while a value less than 1 will jolt it."
+msgstr ""
+"Um valor maior que 1 esticará o filme\n"
+"enquanto um valor menor que 1 o reduzirá."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:131
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:103
+#: AppTools/ToolFilm.py:145 AppTools/ToolTransform.py:148
+msgid "X factor"
+msgstr "Fator X"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:140
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:116
+#: AppTools/ToolFilm.py:154 AppTools/ToolTransform.py:168
+msgid "Y factor"
+msgstr "Fator Y"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:150
+#: AppTools/ToolFilm.py:172
+msgid "Skew Film geometry"
+msgstr "Inclinar a Geometria de Filme"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:152
+#: AppTools/ToolFilm.py:174
+msgid ""
+"Positive values will skew to the right\n"
+"while negative values will skew to the left."
+msgstr ""
+"Valores positivos inclinam para a direita\n"
+"enquanto valores negativos inclinam para a esquerda."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:162
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:72
+#: AppTools/ToolFilm.py:184 AppTools/ToolTransform.py:97
+msgid "X angle"
+msgstr "Ângulo X"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:171
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:86
+#: AppTools/ToolFilm.py:193 AppTools/ToolTransform.py:118
+msgid "Y angle"
+msgstr "Ângulo Y"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:182
+#: AppTools/ToolFilm.py:204
+msgid ""
+"The reference point to be used as origin for the skew.\n"
+"It can be one of the four points of the geometry bounding box."
+msgstr ""
+"O ponto de referência a ser usado como origem para a inclinação.\n"
+"Pode ser um dos quatro pontos da caixa delimitadora de geometria."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:185
+#: AppTools/ToolCorners.py:80 AppTools/ToolFiducials.py:87
+#: AppTools/ToolFilm.py:207
+msgid "Bottom Left"
+msgstr "Esquerda Inferior"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:186
+#: AppTools/ToolCorners.py:88 AppTools/ToolFilm.py:208
+msgid "Top Left"
+msgstr "Esquerda Superior"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:187
+#: AppTools/ToolCorners.py:84 AppTools/ToolFilm.py:209
+msgid "Bottom Right"
+msgstr "Direita Inferior"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:188
+#: AppTools/ToolFilm.py:210
+msgid "Top right"
+msgstr "Direita Superior"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196
+#: AppTools/ToolFilm.py:227
+msgid "Mirror Film geometry"
+msgstr "Espelhar geometria de filme"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:198
+#: AppTools/ToolFilm.py:229
+msgid "Mirror the film geometry on the selected axis or on both."
+msgstr "Espelha a geometria do filme no eixo selecionado ou em ambos."
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:212
+#: AppTools/ToolFilm.py:243
+msgid "Mirror axis"
+msgstr "Espelhar eixo"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:222
+#: AppTools/ToolFilm.py:388
+msgid "SVG"
+msgstr "SVG"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:223
+#: AppTools/ToolFilm.py:389
+msgid "PNG"
+msgstr "PNG"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:224
+#: AppTools/ToolFilm.py:390
+msgid "PDF"
+msgstr "PDF"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:227
+#: AppTools/ToolFilm.py:281 AppTools/ToolFilm.py:393
+msgid "Film Type:"
+msgstr "Tipo de Filme:"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:229
+#: AppTools/ToolFilm.py:395
+msgid ""
+"The file type of the saved film. Can be:\n"
+"- 'SVG' -> open-source vectorial format\n"
+"- 'PNG' -> raster image\n"
+"- 'PDF' -> portable document format"
+msgstr ""
+"O tipo de arquivo do filme salvo. Pode ser:\n"
+"- 'SVG' -> formato vetorial de código aberto\n"
+"- 'PNG' -> imagem raster\n"
+"- 'PDF' -> formato de documento portátil"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:238
+#: AppTools/ToolFilm.py:404
+msgid "Page Orientation"
+msgstr "Orientação da Página"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:251
+#: AppTools/ToolFilm.py:417
+msgid "Page Size"
+msgstr "Tamanho da Página"
+
+#: AppGUI/preferences/tools/ToolsFilmPrefGroupUI.py:252
+#: AppTools/ToolFilm.py:418
+msgid "A selection of standard ISO 216 page sizes."
+msgstr "Uma seleção de tamanhos de página padrão ISO 216."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:27
+msgid "NCC Tool Options"
+msgstr "Opções Área Sem Cobre (NCC)"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:49
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:57
+msgid "Comma separated values"
+msgstr "Valores Separados Por Virgula"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:55
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:63
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:64 AppTools/ToolNCC.py:215
+#: AppTools/ToolNCC.py:223 AppTools/ToolPaint.py:197 AppTools/ToolPaint.py:205
+msgid ""
+"Default tool type:\n"
+"- 'V-shape'\n"
+"- Circular"
+msgstr ""
+"Tipo padrão das ferramentas:\n"
+"- 'Ponta-V'\n"
+"- Circular"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:60
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:69 AppTools/ToolNCC.py:220
+#: AppTools/ToolPaint.py:202
+msgid "V-shape"
+msgstr "Ponta-V"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:100
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:109
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:107
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:116
+#: AppTools/ToolNCC.py:262 AppTools/ToolNCC.py:271 AppTools/ToolPaint.py:244
+#: AppTools/ToolPaint.py:253
+msgid ""
+"Depth of cut into material. Negative value.\n"
+"In FlatCAM units."
+msgstr ""
+"Profundidade de corte no material. Valor negativo.\n"
+"Em unidades FlatCAM."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:119
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:125
+#: AppTools/ToolNCC.py:280 AppTools/ToolPaint.py:262
+msgid ""
+"Diameter for the new tool to add in the Tool Table.\n"
+"If the tool is V-shape type then this value is automatically\n"
+"calculated from the other parameters."
+msgstr ""
+"Diâmetro da nova ferramenta a ser adicionada na Tabela de Ferramentas.\n"
+"Se a ferramenta for do tipo V, esse valor será automaticamente\n"
+"calculado a partir dos outros parâmetros."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:156
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:142
+#: AppTools/ToolNCC.py:174 AppTools/ToolPaint.py:157
+msgid "Tool order"
+msgstr "Ordem das Ferramentas"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:157
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:167
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:143
+#: AppTools/ToolNCC.py:175 AppTools/ToolNCC.py:185 AppTools/ToolPaint.py:158
+#: AppTools/ToolPaint.py:168
+msgid ""
+"This set the way that the tools in the tools table are used.\n"
+"'No' --> means that the used order is the one in the tool table\n"
+"'Forward' --> means that the tools will be ordered from small to big\n"
+"'Reverse' --> means that the tools will ordered from big to small\n"
+"\n"
+"WARNING: using rest machining will automatically set the order\n"
+"in reverse and disable this control."
+msgstr ""
+"Define a ordem em que as ferramentas da Tabela de Ferramentas são usadas.\n"
+"'Não' -> utiliza a ordem da tabela de ferramentas\n"
+"'Crescente' -> as ferramentas são ordenadas de menor para maior\n"
+"'Decrescente' -> as ferramentas são ordenadas de maior para menor\n"
+"\n"
+"ATENÇÃO: se for utilizada usinagem de descanso, será utilizada "
+"automaticamente a ordem\n"
+"decrescente e este controle é desativado."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:165
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:151
+#: AppTools/ToolNCC.py:183 AppTools/ToolPaint.py:166
+msgid "Forward"
+msgstr "Crescente"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:166
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:152
+#: AppTools/ToolNCC.py:184 AppTools/ToolPaint.py:167
+msgid "Reverse"
+msgstr "Decrescente"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:266
+msgid "Offset value"
+msgstr "Valor do deslocamento"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:268
+msgid ""
+"If used, it will add an offset to the copper features.\n"
+"The copper clearing will finish to a distance\n"
+"from the copper features.\n"
+"The value can be between 0.0 and 9999.9 FlatCAM units."
+msgstr ""
+"Se usado, será adicionado um deslocamento aos recursos de cobre.\n"
+"A retirada de cobre terminará a uma distância dos recursos de cobre.\n"
+"O valor pode estar entre 0 e 9999.9 unidades FlatCAM."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:288
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:244
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:245
+#: AppTools/ToolNCC.py:512 AppTools/ToolPaint.py:441
+msgid "Rest Machining"
+msgstr "Usinagem em Repouso"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:290 AppTools/ToolNCC.py:516
+msgid ""
+"If checked, use 'rest machining'.\n"
+"Basically it will clear copper outside PCB features,\n"
+"using the biggest tool and continue with the next tools,\n"
+"from bigger to smaller, to clear areas of copper that\n"
+"could not be cleared by previous tool, until there is\n"
+"no more copper to clear or there are no more tools.\n"
+"If not checked, use the standard algorithm."
+msgstr ""
+"Se marcada, usa 'usinagem de descanso'.\n"
+"Basicamente, limpará o cobre fora dos recursos do PCB, utilizando\n"
+"a maior ferramenta e continuará com as próximas ferramentas, da\n"
+"maior para a menor, para limpar áreas de cobre que não puderam ser\n"
+"retiradas com a ferramenta anterior.\n"
+"Se não estiver marcada, usa o algoritmo padrão."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:313 AppTools/ToolNCC.py:541
+msgid ""
+"Selection of area to be processed.\n"
+"- 'Itself' - the processing extent is based on the object that is "
+"processed.\n"
+" - 'Area Selection' - left mouse click to start selection of the area to be "
+"processed.\n"
+"- 'Reference Object' - will process the area specified by another object."
+msgstr ""
+"Seleção da área a ser processada.\n"
+"- 'Própria' - a extensão de processamento é baseada no próprio objeto a ser "
+"limpo.\n"
+"- 'Seleção de Área' - clique com o botão esquerdo do mouse para iniciar a "
+"seleção da área a ser processada.\n"
+"- 'Objeto de Referência' - processará a área especificada por outro objeto."
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:339
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303
+msgid "Normal"
+msgstr "Normal"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:340
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:304
+msgid "Progressive"
+msgstr "Progressivo"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:341
+msgid "NCC Plotting"
+msgstr "Gráfico NCC"
+
+#: AppGUI/preferences/tools/ToolsNCCPrefGroupUI.py:343
+msgid ""
+"- 'Normal' - normal plotting, done at the end of the NCC job\n"
+"- 'Progressive' - after each shape is generated it will be plotted."
+msgstr ""
+"- 'Normal' - plotagem normal, realizada no final do trabalho de NCC\n"
+"- 'Progressivo' - após cada forma ser gerada, ela será plotada."
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:27
+msgid "Paint Tool Options"
+msgstr "Opções da Ferramenta de Pintura"
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:33
+msgid "Parameters:"
+msgstr "Parâmetros:"
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:247
+#: AppTools/ToolPaint.py:444
+msgid ""
+"If checked, use 'rest machining'.\n"
+"Basically it will clear copper outside PCB features,\n"
+"using the biggest tool and continue with the next tools,\n"
+"from bigger to smaller, to clear areas of copper that\n"
+"could not be cleared by previous tool, until there is\n"
+"no more copper to clear or there are no more tools.\n"
+"\n"
+"If not checked, use the standard algorithm."
+msgstr ""
+"Se marcada, usa 'usinagem de descanso'.\n"
+"Basicamente, limpará o cobre fora dos recursos do PCB, utilizando\n"
+"a maior ferramenta e continuará com as próximas ferramentas, da\n"
+"maior para a menor, para limpar áreas de cobre que não puderam ser\n"
+"retiradas com a ferramenta anterior.\n"
+"Se não estiver marcada, usa o algoritmo padrão."
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:260
+#: AppTools/ToolPaint.py:457
+msgid ""
+"Selection of area to be processed.\n"
+"- 'Polygon Selection' - left mouse click to add/remove polygons to be "
+"processed.\n"
+"- 'Area Selection' - left mouse click to start selection of the area to be "
+"processed.\n"
+"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple "
+"areas.\n"
+"- 'All Polygons' - the process will start after click.\n"
+"- 'Reference Object' - will process the area specified by another object."
+msgstr ""
+"Seleção da área para processar.\n"
+"- 'Seleção de polígonos' - clique com o botão esquerdo do mouse para "
+"adicionar/remover polígonos a serem processados.\n"
+"- 'Seleção de Área' - clique com o botão esquerdo do mouse para iniciar a "
+"seleção da área a ser processada.\n"
+"Manter uma tecla modificadora pressionada (CTRL ou SHIFT) permite adicionar "
+"várias áreas.\n"
+"- 'Todos os polígonos' - o processamento iniciará após o clique.\n"
+"- 'Objeto de Referência' - processará dentro da área do objeto especificado."
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
+#: AppTools/ToolPaint.py:485 AppTools/ToolPaint.py:941
+#: AppTools/ToolPaint.py:1431 tclCommands/TclCommandPaint.py:164
+msgid "Polygon Selection"
+msgstr "Seleção de Polígonos"
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
+#: AppTools/ToolPaint.py:485 AppTools/ToolPaint.py:1426 defaults.py:433
+#: tclCommands/TclCommandPaint.py:162
+msgid "All Polygons"
+msgstr "Todos os polígonos"
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:305
+msgid "Paint Plotting"
+msgstr "Mostrar Pinturas"
+
+#: AppGUI/preferences/tools/ToolsPaintPrefGroupUI.py:307
+msgid ""
+"- 'Normal' - normal plotting, done at the end of the Paint job\n"
+"- 'Progressive' - after each shape is generated it will be plotted."
+msgstr ""
+"- 'Normal' - plotagem normal, realizada no final do trabalho de pintura\n"
+"- 'Progressivo' - após cada forma ser gerada, ela será plotada."
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:27
+msgid "Panelize Tool Options"
+msgstr "Opções da Ferramenta Criar Painel"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:33
+msgid ""
+"Create an object that contains an array of (x, y) elements,\n"
+"each element is a copy of the source object spaced\n"
+"at a X distance, Y distance of each other."
+msgstr ""
+"Cria um objeto que contém uma matriz de elementos (x, y).\n"
+"Cada elemento é uma cópia do objeto de origem espaçado\n"
+"dos demais por uma distância X, Y."
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:50
+#: AppTools/ToolPanelize.py:165
+msgid "Spacing cols"
+msgstr "Espaço entre Colunas"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:52
+#: AppTools/ToolPanelize.py:167
+msgid ""
+"Spacing between columns of the desired panel.\n"
+"In current units."
+msgstr ""
+"Espaçamento desejado entre colunas do painel.\n"
+"Nas unidades atuais."
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:64
+#: AppTools/ToolPanelize.py:177
+msgid "Spacing rows"
+msgstr "Espaço entre Linhas"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:66
+#: AppTools/ToolPanelize.py:179
+msgid ""
+"Spacing between rows of the desired panel.\n"
+"In current units."
+msgstr ""
+"Espaçamento desejado entre linhas do painel.\n"
+"Nas unidades atuais."
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:77
+#: AppTools/ToolPanelize.py:188
+msgid "Columns"
+msgstr "Colunas"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:79
+#: AppTools/ToolPanelize.py:190
+msgid "Number of columns of the desired panel"
+msgstr "Número de colunas do painel desejado"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:89
+#: AppTools/ToolPanelize.py:198
+msgid "Rows"
+msgstr "Linhas"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:91
+#: AppTools/ToolPanelize.py:200
+msgid "Number of rows of the desired panel"
+msgstr "Número de linhas do painel desejado"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:98
+#: AppTools/ToolPanelize.py:211
+msgid "Geo"
+msgstr "Geo"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:99
+#: AppTools/ToolPanelize.py:212
+msgid "Panel Type"
+msgstr "Tipo de Painel"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:101
+msgid ""
+"Choose the type of object for the panel object:\n"
+"- Gerber\n"
+"- Geometry"
+msgstr ""
+"Escolha o tipo de objeto para o painel:\n"
+"- Gerber\n"
+"- Geometria"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:110
+msgid "Constrain within"
+msgstr "Restringir dentro de"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:112
+#: AppTools/ToolPanelize.py:224
+msgid ""
+"Area define by DX and DY within to constrain the panel.\n"
+"DX and DY values are in current units.\n"
+"Regardless of how many columns and rows are desired,\n"
+"the final panel will have as many columns and rows as\n"
+"they fit completely within selected area."
+msgstr ""
+"Área definida por DX e DY para restringir o painel.\n"
+"Os valores DX e DY estão nas unidades atuais.\n"
+"Desde quantas colunas e linhas forem desejadas,\n"
+"o painel final terá tantas colunas e linhas quantas\n"
+"couberem completamente dentro de área selecionada."
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:125
+#: AppTools/ToolPanelize.py:236
+msgid "Width (DX)"
+msgstr "Largura (DX)"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:127
+#: AppTools/ToolPanelize.py:238
+msgid ""
+"The width (DX) within which the panel must fit.\n"
+"In current units."
+msgstr ""
+"A largura (DX) na qual o painel deve caber.\n"
+"Nas unidades atuais."
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:138
+#: AppTools/ToolPanelize.py:247
+msgid "Height (DY)"
+msgstr "Altura (DY)"
+
+#: AppGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:140
+#: AppTools/ToolPanelize.py:249
+msgid ""
+"The height (DY)within which the panel must fit.\n"
+"In current units."
+msgstr ""
+"A altura (DY) na qual o painel deve se ajustar.\n"
+"Nas unidades atuais."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:27
+msgid "SolderPaste Tool Options"
+msgstr "Opções da Ferramenta Pasta de Solda"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:33
+msgid ""
+"A tool to create GCode for dispensing\n"
+"solder paste onto a PCB."
+msgstr ""
+"Uma ferramenta para criar G-Code para dispensar pasta\n"
+"de solda em um PCB."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:54
+msgid "New Nozzle Dia"
+msgstr "Diâmetro do Novo Bico"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:56
+#: AppTools/ToolSolderPaste.py:107
+msgid "Diameter for the new Nozzle tool to add in the Tool Table"
+msgstr ""
+"Diâmetro da nova ferramenta Bico para adicionar na tabela de ferramentas"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:72
+#: AppTools/ToolSolderPaste.py:183
+msgid "Z Dispense Start"
+msgstr "Altura Inicial"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:74
+#: AppTools/ToolSolderPaste.py:185
+msgid "The height (Z) when solder paste dispensing starts."
+msgstr "A altura (Z) que inicia a distribuição de pasta de solda."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:85
+#: AppTools/ToolSolderPaste.py:195
+msgid "Z Dispense"
+msgstr "Altura para Distribuir"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:87
+#: AppTools/ToolSolderPaste.py:197
+msgid "The height (Z) when doing solder paste dispensing."
+msgstr "Altura (Z) para distribuir a pasta de solda."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:98
+#: AppTools/ToolSolderPaste.py:207
+msgid "Z Dispense Stop"
+msgstr "Altura Final"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:100
+#: AppTools/ToolSolderPaste.py:209
+msgid "The height (Z) when solder paste dispensing stops."
+msgstr "Altura (Z) após a distribuição de pasta de solda."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:111
+#: AppTools/ToolSolderPaste.py:219
+msgid "Z Travel"
+msgstr "Altura para Deslocamento"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:113
+#: AppTools/ToolSolderPaste.py:221
+msgid ""
+"The height (Z) for travel between pads\n"
+"(without dispensing solder paste)."
+msgstr ""
+"Altura (Z) para deslocamento entre pads\n"
+"(sem dispensar pasta de solda)."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:125
+#: AppTools/ToolSolderPaste.py:232
+msgid "Z Toolchange"
+msgstr "Altura Troca de Ferram."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:127
+#: AppTools/ToolSolderPaste.py:234
+msgid "The height (Z) for tool (nozzle) change."
+msgstr "Altura (Z) para trocar ferramenta (bico)."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:136
+#: AppTools/ToolSolderPaste.py:242
+msgid ""
+"The X,Y location for tool (nozzle) change.\n"
+"The format is (x, y) where x and y are real numbers."
+msgstr ""
+"Posição X,Y para trocar ferramenta (bico).\n"
+"O formato é (x, y) onde x e y são números reais."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:150
+#: AppTools/ToolSolderPaste.py:255
+msgid "Feedrate (speed) while moving on the X-Y plane."
+msgstr "Avanço (velocidade) para movimento no plano XY."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:163
+#: AppTools/ToolSolderPaste.py:267
+msgid ""
+"Feedrate (speed) while moving vertically\n"
+"(on Z plane)."
+msgstr ""
+"Avanço (velocidade) para movimento vertical\n"
+"(no plano Z)."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:175
+#: AppTools/ToolSolderPaste.py:278
+msgid "Feedrate Z Dispense"
+msgstr "Avanço Z Distribuição"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:177
+msgid ""
+"Feedrate (speed) while moving up vertically\n"
+"to Dispense position (on Z plane)."
+msgstr ""
+"Avanço (velocidade) para subir verticalmente\n"
+"para a posição Dispensar (no plano Z)."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:188
+#: AppTools/ToolSolderPaste.py:290
+msgid "Spindle Speed FWD"
+msgstr "Velocidade Spindle FWD"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:190
+#: AppTools/ToolSolderPaste.py:292
+msgid ""
+"The dispenser speed while pushing solder paste\n"
+"through the dispenser nozzle."
+msgstr ""
+"A velocidade do dispensador ao empurrar a pasta de solda\n"
+"através do bico do distribuidor."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:202
+#: AppTools/ToolSolderPaste.py:303
+msgid "Dwell FWD"
+msgstr "Espera FWD"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:204
+#: AppTools/ToolSolderPaste.py:305
+msgid "Pause after solder dispensing."
+msgstr "Pausa após a dispensação de solda."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:214
+#: AppTools/ToolSolderPaste.py:314
+msgid "Spindle Speed REV"
+msgstr "Velocidade Spindle REV"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:216
+#: AppTools/ToolSolderPaste.py:316
+msgid ""
+"The dispenser speed while retracting solder paste\n"
+"through the dispenser nozzle."
+msgstr ""
+"A velocidade do dispensador enquanto retrai a pasta de solda\n"
+"através do bico do dispensador."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:228
+#: AppTools/ToolSolderPaste.py:327
+msgid "Dwell REV"
+msgstr "Espera REV"
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:230
+#: AppTools/ToolSolderPaste.py:329
+msgid ""
+"Pause after solder paste dispenser retracted,\n"
+"to allow pressure equilibrium."
+msgstr ""
+"Pausa após o dispensador de pasta de solda retrair, para permitir o "
+"equilíbrio de pressão."
+
+#: AppGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:239
+#: AppTools/ToolSolderPaste.py:337
+msgid "Files that control the GCode generation."
+msgstr "Arquivos que controlam a geração de G-Code."
+
+#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:27
+msgid "Substractor Tool Options"
+msgstr "Opções da ferramenta Substração"
+
+#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:33
+msgid ""
+"A tool to substract one Gerber or Geometry object\n"
+"from another of the same type."
+msgstr ""
+"Uma ferramenta para subtrair um objeto Gerber ou Geometry\n"
+"de outro do mesmo tipo."
+
+#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:38 AppTools/ToolSub.py:155
+msgid "Close paths"
+msgstr "Fechar caminhos"
+
+#: AppGUI/preferences/tools/ToolsSubPrefGroupUI.py:39
+msgid ""
+"Checking this will close the paths cut by the Geometry substractor object."
+msgstr ""
+"Marcar isso fechará os caminhos cortados pelo objeto substrair Geometria."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:27
+msgid "Transform Tool Options"
+msgstr "Opções Transformações"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:33
+msgid ""
+"Various transformations that can be applied\n"
+"on a FlatCAM object."
+msgstr ""
+"Várias transformações que podem ser aplicadas\n"
+"a um objeto FlatCAM."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:64
+msgid "Skew"
+msgstr "Inclinar"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:105
+#: AppTools/ToolTransform.py:150
+msgid "Factor for scaling on X axis."
+msgstr "Fator para redimensionamento no eixo X."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:118
+#: AppTools/ToolTransform.py:170
+msgid "Factor for scaling on Y axis."
+msgstr "Fator para redimensionamento no eixo Y."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:126
+#: AppTools/ToolTransform.py:191
+msgid ""
+"Scale the selected object(s)\n"
+"using the Scale_X factor for both axis."
+msgstr ""
+"Redimensiona o(s) objeto(s) selecionado(s)\n"
+"usando o Fator de Escala X para ambos os eixos."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:134
+#: AppTools/ToolTransform.py:198
+msgid ""
+"Scale the selected object(s)\n"
+"using the origin reference when checked,\n"
+"and the center of the biggest bounding box\n"
+"of the selected objects when unchecked."
+msgstr ""
+"Redimensiona o(s) objeto(s) selecionado(s) usando a referência\n"
+"de origem quando marcado, e o centro da maior caixa delimitadora\n"
+"do objeto selecionado quando desmarcado."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:150
+#: AppTools/ToolTransform.py:217
+msgid "X val"
+msgstr "X"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:152
+#: AppTools/ToolTransform.py:219
+msgid "Distance to offset on X axis. In current units."
+msgstr "Distância para deslocar no eixo X, nas unidades atuais."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:163
+#: AppTools/ToolTransform.py:237
+msgid "Y val"
+msgstr "Y"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:165
+#: AppTools/ToolTransform.py:239
+msgid "Distance to offset on Y axis. In current units."
+msgstr "Distância para deslocar no eixo Y, nas unidades atuais."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:171
+#: AppTools/ToolDblSided.py:67 AppTools/ToolDblSided.py:95
+#: AppTools/ToolDblSided.py:125
+msgid "Mirror"
+msgstr "Espelhar"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:175
+#: AppTools/ToolTransform.py:283
+msgid "Mirror Reference"
+msgstr "Referência do Espelhamento"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:177
+#: AppTools/ToolTransform.py:285
+msgid ""
+"Flip the selected object(s)\n"
+"around the point in Point Entry Field.\n"
+"\n"
+"The point coordinates can be captured by\n"
+"left click on canvas together with pressing\n"
+"SHIFT key. \n"
+"Then click Add button to insert coordinates.\n"
+"Or enter the coords in format (x, y) in the\n"
+"Point Entry field and click Flip on X(Y)"
+msgstr ""
+"Espelha o(s) objeto(s) selecionado(s)\n"
+"em relação às coordenadas abaixo. \n"
+"\n"
+"As coordenadas do ponto podem ser inseridas:\n"
+"- com clique no botão esquerdo junto com a tecla\n"
+" SHIFT pressionada, e clicar no botão Adicionar.\n"
+"- ou digitar as coordenadas no formato (x, y) no campo\n"
+" Ponto de Ref. e clicar em Espelhar no X(Y)"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:188
+msgid "Mirror Reference point"
+msgstr "Referência do Espelhamento"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:190
+msgid ""
+"Coordinates in format (x, y) used as reference for mirroring.\n"
+"The 'x' in (x, y) will be used when using Flip on X and\n"
+"the 'y' in (x, y) will be used when using Flip on Y and"
+msgstr ""
+"Coordenadas no formato (x, y) usadas como referência para espelhamento.\n"
+"O 'x' em (x, y) será usado ao usar Espelhar em X e\n"
+"o 'y' em (x, y) será usado ao usar Espelhar em Y e"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:203
+#: AppTools/ToolDistance.py:505 AppTools/ToolDistanceMin.py:286
+#: AppTools/ToolTransform.py:332
+msgid "Distance"
+msgstr "Distância"
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:205
+#: AppTools/ToolTransform.py:334
+msgid ""
+"A positive value will create the effect of dilation,\n"
+"while a negative value will create the effect of erosion.\n"
+"Each geometry element of the object will be increased\n"
+"or decreased with the 'distance'."
+msgstr ""
+"Um valor positivo criará o efeito de dilatação,\n"
+"enquanto um valor negativo criará o efeito de erosão.\n"
+"Cada elemento geométrico do objeto será aumentado\n"
+"ou diminuiu com a 'distância'."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:222
+#: AppTools/ToolTransform.py:359
+msgid ""
+"A positive value will create the effect of dilation,\n"
+"while a negative value will create the effect of erosion.\n"
+"Each geometry element of the object will be increased\n"
+"or decreased to fit the 'Value'. Value is a percentage\n"
+"of the initial dimension."
+msgstr ""
+"Um valor positivo criará o efeito de dilatação,\n"
+"enquanto um valor negativo criará o efeito de erosão.\n"
+"Cada elemento geométrico do objeto será aumentado\n"
+"ou diminuído com a 'distância'. Esse valor é um\n"
+"percentual da dimensão inicial."
+
+#: AppGUI/preferences/tools/ToolsTransformPrefGroupUI.py:241
+#: AppTools/ToolTransform.py:385
+msgid ""
+"If checked then the buffer will surround the buffered shape,\n"
+"every corner will be rounded.\n"
+"If not checked then the buffer will follow the exact geometry\n"
+"of the buffered shape."
+msgstr ""
+"Se marcado, o buffer cercará a forma do buffer,\n"
+"cada canto será arredondado.\n"
+"Se não marcado, o buffer seguirá a geometria exata\n"
+"da forma em buffer."
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:27
+msgid "Autocompleter Keywords"
+msgstr "Palavras-chave do preenchimento automático"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:30
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:40
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:30
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:30
+msgid "Restore"
+msgstr "Restaurar"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:31
+msgid "Restore the autocompleter keywords list to the default state."
+msgstr ""
+"Restaurar a lista de palavras-chave do preenchimento automático para o "
+"estado padrão."
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:33
+msgid "Delete all autocompleter keywords from the list."
+msgstr "Excluir todas as palavras-chave do preenchimento automático da lista."
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:41
+msgid "Keywords list"
+msgstr "Lista de palavras-chave"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:43
+msgid ""
+"List of keywords used by\n"
+"the autocompleter in FlatCAM.\n"
+"The autocompleter is installed\n"
+"in the Code Editor and for the Tcl Shell."
+msgstr ""
+"Lista de palavras-chave usadas no\n"
+"preenchimento automático no FlatCAM.\n"
+"O preenchimento automático está instalado\n"
+"no Editor de Código e na Linha de Comandos Tcl."
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:64
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:73
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:63
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:62
+msgid "Extension"
+msgstr "Extensão"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:65
+msgid "A keyword to be added or deleted to the list."
+msgstr "Uma palavra-chave a ser adicionada ou excluída da lista."
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:73
+msgid "Add keyword"
+msgstr "Adicionar palavra-chave"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:74
+msgid "Add a keyword to the list"
+msgstr "Adiciona uma palavra-chave à lista"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:75
+msgid "Delete keyword"
+msgstr "Excluir palavra-chave"
+
+#: AppGUI/preferences/utilities/AutoCompletePrefGroupUI.py:76
+msgid "Delete a keyword from the list"
+msgstr "Exclui uma palavra-chave da lista"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:27
+msgid "Excellon File associations"
+msgstr "Associação de Arquivos Excellon"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:41
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:31
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:31
+msgid "Restore the extension list to the default state."
+msgstr "Restaure a lista de extensões para o estado padrão."
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:43
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:33
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:33
+msgid "Delete all extensions from the list."
+msgstr "Excluir todas as extensões da lista."
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:51
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:41
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:41
+msgid "Extensions list"
+msgstr "Lista de extensões"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:53
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:43
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:43
+msgid ""
+"List of file extensions to be\n"
+"associated with FlatCAM."
+msgstr "Lista de extensões de arquivos que serão associadas ao FlatCAM."
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:74
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:64
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:63
+msgid "A file extension to be added or deleted to the list."
+msgstr "Uma extensão de arquivo a ser adicionada ou excluída da lista."
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:82
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:72
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:71
+msgid "Add Extension"
+msgstr "Adicionar Extensão"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:83
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:73
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:72
+msgid "Add a file extension to the list"
+msgstr "Adiciona uma nova extensão à lista"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:84
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:74
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:73
+msgid "Delete Extension"
+msgstr "Excluir Extensão"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:85
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:75
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:74
+msgid "Delete a file extension from the list"
+msgstr "Exclui uma extensão da lista"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:92
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:82
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:81
+msgid "Apply Association"
+msgstr "Aplicar Associação"
+
+#: AppGUI/preferences/utilities/FAExcPrefGroupUI.py:93
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:83
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:82
+msgid ""
+"Apply the file associations between\n"
+"FlatCAM and the files with above extensions.\n"
+"They will be active after next logon.\n"
+"This work only in Windows."
+msgstr ""
+"Aplica as associações de arquivos entre o\n"
+"FlatCAM e os arquivos com as extensões acima.\n"
+"Elas serão ativas após o próximo logon.\n"
+"Isso funciona apenas no Windows."
+
+#: AppGUI/preferences/utilities/FAGcoPrefGroupUI.py:27
+msgid "GCode File associations"
+msgstr "Associação de arquivos G-Code"
+
+#: AppGUI/preferences/utilities/FAGrbPrefGroupUI.py:27
+msgid "Gerber File associations"
+msgstr "Associação de arquivos Gerber"
+
+#: AppObjects/AppObject.py:134
+#, python-brace-format
+msgid ""
+"Object ({kind}) failed because: {error} \n"
+"\n"
+msgstr ""
+"Objeto ({kind}) falhou porque: {error} \n"
+"\n"
+
+#: AppObjects/AppObject.py:149
+msgid "Converting units to "
+msgstr "Convertendo unidades para "
+
+#: AppObjects/AppObject.py:254
+msgid "CREATE A NEW FLATCAM TCL SCRIPT"
+msgstr "CRIAR UM NOVO SCRIPT FLATCAM TCL"
+
+#: AppObjects/AppObject.py:255
+msgid "TCL Tutorial is here"
+msgstr "Tutorial TCL está aqui"
+
+#: AppObjects/AppObject.py:257
+msgid "FlatCAM commands list"
+msgstr "Lista de comandos FlatCAM"
+
+#: AppObjects/AppObject.py:258
+msgid ""
+"Type >help< followed by Run Code for a list of FlatCAM Tcl Commands "
+"(displayed in Tcl Shell)."
+msgstr ""
+"Digite >help< Run Code para uma lista de comandos TCL FlatCAM (mostrados na "
+"linha de comando)."
+
+#: AppObjects/AppObject.py:304 AppObjects/AppObject.py:310
+#: AppObjects/AppObject.py:316 AppObjects/AppObject.py:322
+#: AppObjects/AppObject.py:328 AppObjects/AppObject.py:334
+msgid "created/selected"
+msgstr "criado / selecionado"
+
+#: AppObjects/AppObject.py:349 AppObjects/FlatCAMObj.py:246
+#: AppObjects/FlatCAMObj.py:277 AppObjects/FlatCAMObj.py:293
+#: AppObjects/FlatCAMObj.py:373 AppTools/ToolCopperThieving.py:1487
+#: AppTools/ToolCorners.py:394 AppTools/ToolFiducials.py:810
+#: AppTools/ToolMove.py:229 AppTools/ToolQRCode.py:728 App_Main.py:4369
+msgid "Plotting"
+msgstr "Plotando"
+
+#: AppObjects/FlatCAMCNCJob.py:429 AppObjects/FlatCAMDocument.py:71
+#: AppObjects/FlatCAMScript.py:82
+msgid "Basic"
+msgstr "Básico"
+
+#: AppObjects/FlatCAMCNCJob.py:435 AppObjects/FlatCAMDocument.py:75
+#: AppObjects/FlatCAMScript.py:86
+msgid "Advanced"
+msgstr "Avançado"
+
+#: AppObjects/FlatCAMCNCJob.py:478
+msgid "Plotting..."
+msgstr "Plotando..."
+
+#: AppObjects/FlatCAMCNCJob.py:507 AppObjects/FlatCAMCNCJob.py:512
+#: AppTools/ToolSolderPaste.py:1499
+msgid "Export Machine Code ..."
+msgstr "Exportar Código da Máquina ..."
+
+#: AppObjects/FlatCAMCNCJob.py:517 AppTools/ToolSolderPaste.py:1503
+msgid "Export Machine Code cancelled ..."
+msgstr "Exportar código da máquina cancelado ..."
+
+#: AppObjects/FlatCAMCNCJob.py:538
+msgid "Machine Code file saved to"
+msgstr "Arquivo G-Code salvo em"
+
+#: AppObjects/FlatCAMCNCJob.py:548 AppObjects/FlatCAMScript.py:134
+#: App_Main.py:7205
+msgid "Loading..."
+msgstr "Lendo..."
+
+#: AppObjects/FlatCAMCNCJob.py:562 App_Main.py:7302
+msgid "Code Editor"
+msgstr "Editor de Códigos"
+
+#: AppObjects/FlatCAMCNCJob.py:599 AppTools/ToolCalibration.py:1097
+msgid "Loaded Machine Code into Code Editor"
+msgstr "G-Code aberto no Editor de Códigos"
+
+#: AppObjects/FlatCAMCNCJob.py:740
+msgid "This CNCJob object can't be processed because it is a"
+msgstr "Este objeto Trabalho CNC não pode ser processado porque é um"
+
+#: AppObjects/FlatCAMCNCJob.py:742
+msgid "CNCJob object"
+msgstr "Objeto de Trabalho CNC"
+
+#: AppObjects/FlatCAMCNCJob.py:922
+msgid ""
+"G-code does not have a G94 code and we will not include the code in the "
+"'Prepend to GCode' text box"
+msgstr ""
+"O G-Code não possui um código G94 e não será incluído na caixa de texto "
+"'Anexar ao G-Code'"
+
+#: AppObjects/FlatCAMCNCJob.py:933
+msgid "Cancelled. The Toolchange Custom code is enabled but it's empty."
+msgstr ""
+"Cancelado. O código personalizado para Troca de Ferramentas está ativado, "
+"mas está vazio."
+
+#: AppObjects/FlatCAMCNCJob.py:938
+msgid "Toolchange G-code was replaced by a custom code."
+msgstr ""
+"O G-Code para Troca de Ferramentas foi substituído por um código "
+"personalizado."
+
+#: AppObjects/FlatCAMCNCJob.py:986 AppObjects/FlatCAMCNCJob.py:996
+msgid ""
+"The used preprocessor file has to have in it's name: 'toolchange_custom'"
+msgstr ""
+"O arquivo de pós-processamento deve ter em seu nome: 'toolchange_custom'"
+
+#: AppObjects/FlatCAMCNCJob.py:999
+msgid "There is no preprocessor file."
+msgstr "Não há arquivo de pós-processamento."
+
+#: AppObjects/FlatCAMDocument.py:175
+msgid "Document Editor"
+msgstr "Editor de Documento"
+
+#: AppObjects/FlatCAMExcellon.py:527 AppObjects/FlatCAMExcellon.py:825
+#: AppObjects/FlatCAMGeometry.py:322 AppObjects/FlatCAMGeometry.py:852
+#: AppTools/ToolNCC.py:811 AppTools/ToolNCC.py:1196 AppTools/ToolPaint.py:778
+#: AppTools/ToolPaint.py:1170
+msgid "Multiple Tools"
+msgstr "Ferramentas Múltiplas"
+
+#: AppObjects/FlatCAMExcellon.py:805
+msgid "No Tool Selected"
+msgstr "Nenhuma Ferramenta Selecionada"
+
+#: AppObjects/FlatCAMExcellon.py:1155 AppObjects/FlatCAMExcellon.py:1248
+#: AppObjects/FlatCAMExcellon.py:1435
+msgid "Please select one or more tools from the list and try again."
+msgstr "Selecione uma ou mais ferramentas da lista e tente novamente."
+
+#: AppObjects/FlatCAMExcellon.py:1162
+msgid "Milling tool for DRILLS is larger than hole size. Cancelled."
+msgstr "A ferramenta BROCA é maior que o tamanho do furo. Cancelado."
+
+#: AppObjects/FlatCAMExcellon.py:1177 AppObjects/FlatCAMExcellon.py:1268
+#: AppObjects/FlatCAMExcellon.py:1453 tclCommands/TclCommandDrillcncjob.py:195
+msgid "Tool_nr"
+msgstr "Ferramenta_nr"
+
+#: AppObjects/FlatCAMExcellon.py:1177 AppObjects/FlatCAMExcellon.py:1268
+#: AppObjects/FlatCAMExcellon.py:1453 tclCommands/TclCommandDrillcncjob.py:195
+msgid "Drills_Nr"
+msgstr "Furo_Nr"
+
+#: AppObjects/FlatCAMExcellon.py:1177 AppObjects/FlatCAMExcellon.py:1268
+#: AppObjects/FlatCAMExcellon.py:1453 tclCommands/TclCommandDrillcncjob.py:195
+msgid "Slots_Nr"
+msgstr "Ranhura_Nr"
+
+#: AppObjects/FlatCAMExcellon.py:1257
+msgid "Milling tool for SLOTS is larger than hole size. Cancelled."
+msgstr ""
+"A ferramenta fresa para RANHURAS é maior que o tamanho do furo. Cancelado."
+
+#: AppObjects/FlatCAMExcellon.py:1361 AppObjects/FlatCAMGeometry.py:1625
+msgid "Focus Z"
+msgstr "Foco Z"
+
+#: AppObjects/FlatCAMExcellon.py:1380 AppObjects/FlatCAMGeometry.py:1644
+msgid "Laser Power"
+msgstr "Potência Laser"
+
+#: AppObjects/FlatCAMExcellon.py:1510 AppObjects/FlatCAMGeometry.py:2077
+#: AppObjects/FlatCAMGeometry.py:2081 AppObjects/FlatCAMGeometry.py:2232
+msgid "Generating CNC Code"
+msgstr "Gerando Código CNC"
+
+#: AppObjects/FlatCAMExcellon.py:1563 AppObjects/FlatCAMGeometry.py:2542
+#, fuzzy
+#| msgid "Delete failed. Select a tool to delete."
+msgid "Delete failed. There are no exclusion areas to delete."
+msgstr "Exclusão falhou. Selecione uma ferramenta para excluir."
+
+#: AppObjects/FlatCAMExcellon.py:1580 AppObjects/FlatCAMGeometry.py:2559
+#, fuzzy
+#| msgid "Failed. Nothing selected."
+msgid "Delete failed. Nothing is selected."
+msgstr "Falhou. Nada selecionado."
+
+#: AppObjects/FlatCAMExcellon.py:1804 AppTools/ToolNCC.py:918
+#: AppTools/ToolPaint.py:843
+msgid "Current Tool parameters were applied to all tools."
+msgstr "Parâmetros aplicados a todas as ferramentas."
+
+#: AppObjects/FlatCAMGeometry.py:123 AppObjects/FlatCAMGeometry.py:1289
+#: AppObjects/FlatCAMGeometry.py:1290 AppObjects/FlatCAMGeometry.py:1299
+msgid "Iso"
+msgstr "Isolação"
+
+#: AppObjects/FlatCAMGeometry.py:123 AppObjects/FlatCAMGeometry.py:515
+#: AppObjects/FlatCAMGeometry.py:911 AppObjects/FlatCAMGerber.py:891
+#: AppObjects/FlatCAMGerber.py:1039 AppTools/ToolCutOut.py:690
+#: AppTools/ToolCutOut.py:886 AppTools/ToolCutOut.py:1046
+msgid "Rough"
+msgstr "Desbaste"
+
+#: AppObjects/FlatCAMGeometry.py:123
+msgid "Finish"
+msgstr "Acabamento"
+
+#: AppObjects/FlatCAMGeometry.py:550
+msgid "Add from Tool DB"
+msgstr "Adicionar Ferramenta do BD"
+
+#: AppObjects/FlatCAMGeometry.py:930
+msgid "Tool added in Tool Table."
+msgstr "Ferramenta adicionada na Tabela de Ferramentas."
+
+#: AppObjects/FlatCAMGeometry.py:1039 AppObjects/FlatCAMGeometry.py:1048
+msgid "Failed. Select a tool to copy."
+msgstr "Falhou. Selecione uma ferramenta para copiar."
+
+#: AppObjects/FlatCAMGeometry.py:1077
+msgid "Tool was copied in Tool Table."
+msgstr "A ferramenta foi copiada na tabela de ferramentas."
+
+#: AppObjects/FlatCAMGeometry.py:1104
+msgid "Tool was edited in Tool Table."
+msgstr "A ferramenta foi editada na Tabela de Ferramentas."
+
+#: AppObjects/FlatCAMGeometry.py:1133 AppObjects/FlatCAMGeometry.py:1142
+msgid "Failed. Select a tool to delete."
+msgstr "Falhou. Selecione uma ferramenta para excluir."
+
+#: AppObjects/FlatCAMGeometry.py:1166
+msgid "Tool was deleted in Tool Table."
+msgstr "A ferramenta foi eliminada da Tabela de Ferramentas."
+
+#: AppObjects/FlatCAMGeometry.py:1203 AppObjects/FlatCAMGeometry.py:1212
+msgid ""
+"Disabled because the tool is V-shape.\n"
+"For V-shape tools the depth of cut is\n"
+"calculated from other parameters like:\n"
+"- 'V-tip Angle' -> angle at the tip of the tool\n"
+"- 'V-tip Dia' -> diameter at the tip of the tool \n"
+"- Tool Dia -> 'Dia' column found in the Tool Table\n"
+"NB: a value of zero means that Tool Dia = 'V-tip Dia'"
+msgstr ""
+"Desativado porque a ferramenta é em forma de V.\n"
+"Para ferramentas em forma de V, a profundidade de corte é\n"
+"calculado a partir de outros parâmetros, como:\n"
+"- 'Ângulo da ponta em V' -> ângulo na ponta da ferramenta\n"
+"- 'Diâmetro da ponta em V' -> diâmetro na ponta da ferramenta\n"
+"- Dia da ferramenta -> coluna 'Dia' encontrada na tabela de ferramentas\n"
+"NB: um valor igual a zero significa que o Dia da Ferramenta = 'Dia da ponta "
+"em V'"
+
+#: AppObjects/FlatCAMGeometry.py:1697
+msgid "This Geometry can't be processed because it is"
+msgstr "Esta Geometria não pode ser processada porque é"
+
+#: AppObjects/FlatCAMGeometry.py:1697
+msgid "geometry"
+msgstr "geometria"
+
+#: AppObjects/FlatCAMGeometry.py:1738
+msgid "Failed. No tool selected in the tool table ..."
+msgstr "Falhou. Nenhuma ferramenta selecionada na tabela de ferramentas ..."
+
+#: AppObjects/FlatCAMGeometry.py:1836 AppObjects/FlatCAMGeometry.py:1986
+msgid ""
+"Tool Offset is selected in Tool Table but no value is provided.\n"
+"Add a Tool Offset or change the Offset Type."
+msgstr ""
+"Deslocamento de Ferramenta selecionado na Tabela de Ferramentas, mas nenhum "
+"valor foi fornecido.\n"
+"Adicione um Deslocamento de Ferramenta ou altere o Tipo de Deslocamento."
+
+#: AppObjects/FlatCAMGeometry.py:1902 AppObjects/FlatCAMGeometry.py:2048
+msgid "G-Code parsing in progress..."
+msgstr "Análisando o G-Code..."
+
+#: AppObjects/FlatCAMGeometry.py:1904 AppObjects/FlatCAMGeometry.py:2050
+msgid "G-Code parsing finished..."
+msgstr "Análise do G-Code finalisada..."
+
+#: AppObjects/FlatCAMGeometry.py:1912
+msgid "Finished G-Code processing"
+msgstr "Processamento do G-Code concluído"
+
+#: AppObjects/FlatCAMGeometry.py:1914 AppObjects/FlatCAMGeometry.py:2062
+msgid "G-Code processing failed with error"
+msgstr "Processamento do G-Code falhou com erro"
+
+#: AppObjects/FlatCAMGeometry.py:1956 AppTools/ToolSolderPaste.py:1301
+msgid "Cancelled. Empty file, it has no geometry"
+msgstr "Cancelado. Arquivo vazio, não tem geometria"
+
+#: AppObjects/FlatCAMGeometry.py:2060 AppObjects/FlatCAMGeometry.py:2227
+msgid "Finished G-Code processing..."
+msgstr "Processamento do G-Code finalisado..."
+
+#: AppObjects/FlatCAMGeometry.py:2079 AppObjects/FlatCAMGeometry.py:2083
+#: AppObjects/FlatCAMGeometry.py:2234
+msgid "CNCjob created"
+msgstr "Trabalho CNC criado"
+
+#: AppObjects/FlatCAMGeometry.py:2265 AppObjects/FlatCAMGeometry.py:2274
+#: AppParsers/ParseGerber.py:1866 AppParsers/ParseGerber.py:1876
+msgid "Scale factor has to be a number: integer or float."
+msgstr "O fator de escala deve ser um número: inteiro ou flutuante."
+
+#: AppObjects/FlatCAMGeometry.py:2337
+msgid "Geometry Scale done."
+msgstr "Redimensionamento de geometria feita."
+
+#: AppObjects/FlatCAMGeometry.py:2354 AppParsers/ParseGerber.py:1992
+msgid ""
+"An (x,y) pair of values are needed. Probable you entered only one value in "
+"the Offset field."
+msgstr ""
+"Um par (x,y) de valores é necessário. Provavelmente você digitou apenas um "
+"valor no campo Deslocamento."
+
+#: AppObjects/FlatCAMGeometry.py:2410
+msgid "Geometry Offset done."
+msgstr "Deslocamento de Geometria concluído."
+
+#: AppObjects/FlatCAMGeometry.py:2439
+msgid ""
+"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, "
+"y)\n"
+"but now there is only one value, not two."
+msgstr ""
+"O campo Troca de Ferramentas X, Y em Editar -> Preferências deve estar no "
+"formato (x, y).\n"
+"Agora está com apenas um valor, não dois."
+
+#: AppObjects/FlatCAMGerber.py:494
+msgid "Buffering solid geometry"
+msgstr "Buffer de geometria sólida"
+
+#: AppObjects/FlatCAMGerber.py:503
+msgid "Done"
+msgstr "Pronto"
+
+#: AppObjects/FlatCAMGerber.py:529 AppObjects/FlatCAMGerber.py:555
+msgid "Operation could not be done."
+msgstr "Não foi possível executar a operação."
+
+#: AppObjects/FlatCAMGerber.py:572
+msgid "Isolating..."
+msgstr "Isolando..."
+
+#: AppObjects/FlatCAMGerber.py:631
+msgid "Click on a polygon to isolate it."
+msgstr "Clique em um polígono para isolá-lo."
+
+#: AppObjects/FlatCAMGerber.py:670 AppObjects/FlatCAMGerber.py:774
+#: AppTools/ToolPaint.py:1515
+msgid "Added polygon"
+msgstr "Polígono adicionado"
+
+#: AppObjects/FlatCAMGerber.py:671 AppObjects/FlatCAMGerber.py:776
+msgid "Click to add next polygon or right click to start isolation."
+msgstr ""
+"Clique para adicionar o próximo polígono ou clique com o botão direito do "
+"mouse para iniciar a isolação."
+
+#: AppObjects/FlatCAMGerber.py:683 AppTools/ToolPaint.py:1529
+msgid "Removed polygon"
+msgstr "Polígono removido"
+
+#: AppObjects/FlatCAMGerber.py:684
+msgid "Click to add/remove next polygon or right click to start isolation."
+msgstr ""
+"Clique para adicionar/remover o próximo polígono ou clique com o botão "
+"direito do mouse para iniciar a isolação."
+
+#: AppObjects/FlatCAMGerber.py:689 AppTools/ToolPaint.py:1535
+msgid "No polygon detected under click position."
+msgstr "Nenhum polígono detectado na posição do clique."
+
+#: AppObjects/FlatCAMGerber.py:710 AppTools/ToolPaint.py:1564
+msgid "List of single polygons is empty. Aborting."
+msgstr "A lista de polígonos únicos está vazia. Abortando."
+
+#: AppObjects/FlatCAMGerber.py:779
+msgid "No polygon in selection."
+msgstr "Nenhum polígono na seleção."
+
+#: AppObjects/FlatCAMGerber.py:907 AppObjects/FlatCAMGerber.py:986
+#: AppTools/ToolNCC.py:2097 AppTools/ToolNCC.py:3183 AppTools/ToolNCC.py:3562
+msgid "Isolation geometry could not be generated."
+msgstr "A geometria de isolação não pôde ser gerada."
+
+#: AppObjects/FlatCAMGerber.py:932 AppObjects/FlatCAMGerber.py:1064
+msgid "Isolation geometry created"
+msgstr "Geometria de isolação criada"
+
+#: AppObjects/FlatCAMGerber.py:941 AppObjects/FlatCAMGerber.py:1071
+msgid "Subtracting Geo"
+msgstr "Subtraindo Geo"
+
+#: AppObjects/FlatCAMGerber.py:1396
+msgid "Plotting Apertures"
+msgstr "Mostrando Aberturas"
+
+#: AppObjects/FlatCAMObj.py:232
+msgid "Name changed from"
+msgstr "Nome alterado de"
+
+#: AppObjects/FlatCAMObj.py:232
+msgid "to"
+msgstr "para"
+
+#: AppObjects/FlatCAMObj.py:243
+msgid "Offsetting..."
+msgstr "Deslocando..."
+
+#: AppObjects/FlatCAMObj.py:257 AppObjects/FlatCAMObj.py:262
+msgid "Scaling could not be executed."
+msgstr "Não foi possível executar o redimensionamento."
+
+#: AppObjects/FlatCAMObj.py:266 AppObjects/FlatCAMObj.py:274
+msgid "Scale done."
+msgstr "Redimensionamento concluída."
+
+#: AppObjects/FlatCAMObj.py:272
+msgid "Scaling..."
+msgstr "Dimensionando..."
+
+#: AppObjects/FlatCAMObj.py:290
+msgid "Skewing..."
+msgstr "Inclinando..."
+
+#: AppObjects/FlatCAMScript.py:163
+msgid "Script Editor"
+msgstr "Editor de Script"
+
+#: AppObjects/ObjectCollection.py:513
+#, python-brace-format
+msgid "Object renamed from {old} to {new}"
+msgstr "Objeto renomeado de {old} para {new}"
+
+#: AppObjects/ObjectCollection.py:925 AppObjects/ObjectCollection.py:931
+#: AppObjects/ObjectCollection.py:937 AppObjects/ObjectCollection.py:943
+#: AppObjects/ObjectCollection.py:949 AppObjects/ObjectCollection.py:955
+#: App_Main.py:6158 App_Main.py:6164 App_Main.py:6170 App_Main.py:6176
+msgid "selected"
+msgstr "selecionado"
+
+#: AppObjects/ObjectCollection.py:986
+msgid "Cause of error"
+msgstr "Motivo do erro"
+
+#: AppObjects/ObjectCollection.py:1187
+msgid "All objects are selected."
+msgstr "Todos os objetos estão selecionados."
+
+#: AppObjects/ObjectCollection.py:1197
+msgid "Objects selection is cleared."
+msgstr "A seleção de objetos é limpa."
+
+#: AppParsers/ParseExcellon.py:315
+msgid "This is GCODE mark"
+msgstr "Esta é a marca G-CODE"
+
+#: AppParsers/ParseExcellon.py:432
+msgid ""
+"No tool diameter info's. See shell.\n"
+"A tool change event: T"
+msgstr ""
+"Sem informação do diâmetro da ferramenta. Veja linha de comando.\n"
+"Evento de troca de ferramenta: T"
+
+#: AppParsers/ParseExcellon.py:435
+msgid ""
+"was found but the Excellon file have no informations regarding the tool "
+"diameters therefore the application will try to load it by using some 'fake' "
+"diameters.\n"
+"The user needs to edit the resulting Excellon object and change the "
+"diameters to reflect the real diameters."
+msgstr ""
+"foi encontrado mas o arquivo Excellon não possui informações sobre os "
+"diâmetros da ferramenta. \n"
+"O aplicativo tentará carregá-lo usando alguns diâmetros 'falsos'./nO usuário "
+"precisa editar o objeto Excellon resultante e\n"
+"alterar os diâmetros para os valores reais."
+
+#: AppParsers/ParseExcellon.py:899
+msgid ""
+"Excellon Parser error.\n"
+"Parsing Failed. Line"
+msgstr ""
+"Erro do Analisador Excellon.\n"
+"Análise falhou. Linha"
+
+#: AppParsers/ParseExcellon.py:981
+msgid ""
+"Excellon.create_geometry() -> a drill location was skipped due of not having "
+"a tool associated.\n"
+"Check the resulting GCode."
+msgstr ""
+"Excellon.create_geometry () -> um furo foi ignorado por não ter uma "
+"ferramenta associada.\n"
+"Verifique o G-Code resultante."
+
+#: AppParsers/ParseFont.py:303
+msgid "Font not supported, try another one."
+msgstr "Fonte não suportada. Tente outra."
+
+#: AppParsers/ParseGerber.py:425
+msgid "Gerber processing. Parsing"
+msgstr "Processando Gerber. Analisando"
+
+#: AppParsers/ParseGerber.py:425 AppParsers/ParseHPGL2.py:181
+msgid "lines"
+msgstr "linhas"
+
+#: AppParsers/ParseGerber.py:1001 AppParsers/ParseGerber.py:1101
+#: AppParsers/ParseHPGL2.py:274 AppParsers/ParseHPGL2.py:288
+#: AppParsers/ParseHPGL2.py:307 AppParsers/ParseHPGL2.py:331
+#: AppParsers/ParseHPGL2.py:366
+msgid "Coordinates missing, line ignored"
+msgstr "Coordenadas faltando, linha ignorada"
+
+#: AppParsers/ParseGerber.py:1003 AppParsers/ParseGerber.py:1103
+msgid "GERBER file might be CORRUPT. Check the file !!!"
+msgstr "O arquivo GERBER pode estar CORROMPIDO. Verifique o arquivo !!!"
+
+#: AppParsers/ParseGerber.py:1057
+msgid ""
+"Region does not have enough points. File will be processed but there are "
+"parser errors. Line number"
+msgstr ""
+"A região não possui pontos suficientes. O arquivo será processado, mas há "
+"erros na análise. Número da linha"
+
+#: AppParsers/ParseGerber.py:1487 AppParsers/ParseHPGL2.py:401
+msgid "Gerber processing. Joining polygons"
+msgstr "Processando Gerber. Unindo polígonos"
+
+#: AppParsers/ParseGerber.py:1504
+msgid "Gerber processing. Applying Gerber polarity."
+msgstr "Processando Gerber. Aplicando polaridade Gerber."
+
+#: AppParsers/ParseGerber.py:1564
+msgid "Gerber Line"
+msgstr "Linha Gerber"
+
+#: AppParsers/ParseGerber.py:1564
+msgid "Gerber Line Content"
+msgstr "Conteúdo"
+
+#: AppParsers/ParseGerber.py:1566
+msgid "Gerber Parser ERROR"
+msgstr "Erro de Análise"
+
+#: AppParsers/ParseGerber.py:1956
+msgid "Gerber Scale done."
+msgstr "Redimensionamento Gerber pronto."
+
+#: AppParsers/ParseGerber.py:2048
+msgid "Gerber Offset done."
+msgstr "Deslocamento Gerber pronto."
+
+#: AppParsers/ParseGerber.py:2124
+msgid "Gerber Mirror done."
+msgstr "Espelhamento Gerber pronto."
+
+#: AppParsers/ParseGerber.py:2198
+msgid "Gerber Skew done."
+msgstr "Inclinação Gerber pronta."
+
+#: AppParsers/ParseGerber.py:2260
+msgid "Gerber Rotate done."
+msgstr "Rotação Gerber pronta."
+
+#: AppParsers/ParseGerber.py:2417
+msgid "Gerber Buffer done."
+msgstr "Buffer Gerber pronto."
+
+#: AppParsers/ParseHPGL2.py:181
+msgid "HPGL2 processing. Parsing"
+msgstr "Processando HPGL2 . Analisando"
+
+#: AppParsers/ParseHPGL2.py:413
+msgid "HPGL2 Line"
+msgstr "Linha HPGL2"
+
+#: AppParsers/ParseHPGL2.py:413
+msgid "HPGL2 Line Content"
+msgstr "Conteúdo da linha HPGL2"
+
+#: AppParsers/ParseHPGL2.py:414
+msgid "HPGL2 Parser ERROR"
+msgstr "ERRO do Analisador HPGL2"
+
+#: AppProcess.py:172
+msgid "processes running."
+msgstr "processos executando."
+
+#: AppTools/ToolAlignObjects.py:32
+msgid "Align Objects"
+msgstr "Alinhar Objetos"
+
+#: AppTools/ToolAlignObjects.py:61
+msgid "MOVING object"
+msgstr "MOVENDO Objeto"
+
+#: AppTools/ToolAlignObjects.py:65
+msgid ""
+"Specify the type of object to be aligned.\n"
+"It can be of type: Gerber or Excellon.\n"
+"The selection here decide the type of objects that will be\n"
+"in the Object combobox."
+msgstr ""
+"Especifique o tipo de objeto para alinhar\n"
+"Pode ser do tipo: Gerber ou Excellon.\n"
+"A seleção aqui decide o tipo de objetos que estarão\n"
+"na Caixa de Objetos."
+
+#: AppTools/ToolAlignObjects.py:86
+msgid "Object to be aligned."
+msgstr "Objeto a ser alinhado."
+
+#: AppTools/ToolAlignObjects.py:98
+msgid "TARGET object"
+msgstr "Objeto ALVO"
+
+#: AppTools/ToolAlignObjects.py:100
+msgid ""
+"Specify the type of object to be aligned to.\n"
+"It can be of type: Gerber or Excellon.\n"
+"The selection here decide the type of objects that will be\n"
+"in the Object combobox."
+msgstr ""
+"Especifique o tipo de objeto para alinhar\n"
+"Pode ser do tipo: Gerber ou Excellon.\n"
+"A seleção aqui decide o tipo de objetos que estarão\n"
+"na Caixa de Objetos."
+
+#: AppTools/ToolAlignObjects.py:122
+msgid "Object to be aligned to. Aligner."
+msgstr "Objeto a ser alinhado. Alinhador."
+
+#: AppTools/ToolAlignObjects.py:135
+msgid "Alignment Type"
+msgstr "Tipo de Alinhamento"
+
+#: AppTools/ToolAlignObjects.py:137
+msgid ""
+"The type of alignment can be:\n"
+"- Single Point -> it require a single point of sync, the action will be a "
+"translation\n"
+"- Dual Point -> it require two points of sync, the action will be "
+"translation followed by rotation"
+msgstr ""
+"O tipo de alinhamento pode ser:\n"
+"- Ponto único -> requer um único ponto de sincronização, a ação será uma "
+"translação\n"
+"- Ponto duplo -> requer dois pontos de sincronização, a ação será translada "
+"seguida de rotação"
+
+#: AppTools/ToolAlignObjects.py:143
+msgid "Single Point"
+msgstr "Ponto Único"
+
+#: AppTools/ToolAlignObjects.py:144
+msgid "Dual Point"
+msgstr "Ponto Duplo"
+
+#: AppTools/ToolAlignObjects.py:159
+msgid "Align Object"
+msgstr "Alinhar Objeto"
+
+#: AppTools/ToolAlignObjects.py:161
+msgid ""
+"Align the specified object to the aligner object.\n"
+"If only one point is used then it assumes translation.\n"
+"If tho points are used it assume translation and rotation."
+msgstr ""
+"Alinhe o objeto especificado ao objeto alinhador.\n"
+"Se apenas um ponto for usado, ele assumirá a translação.\n"
+"Se forem usados dois pontos, assume translação e rotação."
+
+#: AppTools/ToolAlignObjects.py:176 AppTools/ToolCalculators.py:246
+#: AppTools/ToolCalibration.py:683 AppTools/ToolCopperThieving.py:484
+#: AppTools/ToolCorners.py:173 AppTools/ToolCutOut.py:362
+#: AppTools/ToolDblSided.py:471 AppTools/ToolEtchCompensation.py:136
+#: AppTools/ToolExtractDrills.py:310 AppTools/ToolFiducials.py:318
+#: AppTools/ToolFilm.py:503 AppTools/ToolInvertGerber.py:140
+#: AppTools/ToolNCC.py:612 AppTools/ToolOptimal.py:237
+#: AppTools/ToolPaint.py:555 AppTools/ToolPanelize.py:280
+#: AppTools/ToolPunchGerber.py:339 AppTools/ToolQRCode.py:314
+#: AppTools/ToolRulesCheck.py:516 AppTools/ToolSolderPaste.py:473
+#: AppTools/ToolSub.py:176 AppTools/ToolTransform.py:398
+msgid "Reset Tool"
+msgstr "Redefinir Ferramenta"
+
+#: AppTools/ToolAlignObjects.py:178 AppTools/ToolCalculators.py:248
+#: AppTools/ToolCalibration.py:685 AppTools/ToolCopperThieving.py:486
+#: AppTools/ToolCorners.py:175 AppTools/ToolCutOut.py:364
+#: AppTools/ToolDblSided.py:473 AppTools/ToolEtchCompensation.py:138
+#: AppTools/ToolExtractDrills.py:312 AppTools/ToolFiducials.py:320
+#: AppTools/ToolFilm.py:505 AppTools/ToolInvertGerber.py:142
+#: AppTools/ToolNCC.py:614 AppTools/ToolOptimal.py:239
+#: AppTools/ToolPaint.py:557 AppTools/ToolPanelize.py:282
+#: AppTools/ToolPunchGerber.py:341 AppTools/ToolQRCode.py:316
+#: AppTools/ToolRulesCheck.py:518 AppTools/ToolSolderPaste.py:475
+#: AppTools/ToolSub.py:178 AppTools/ToolTransform.py:400
+msgid "Will reset the tool parameters."
+msgstr "Redefinirá os parâmetros da ferramenta."
+
+#: AppTools/ToolAlignObjects.py:244
+msgid "Align Tool"
+msgstr "Ferramenta Alinhar"
+
+#: AppTools/ToolAlignObjects.py:289
+msgid "There is no aligned FlatCAM object selected..."
+msgstr "Não há nenhum objeto FlatCAM alinhado selecionado ..."
+
+#: AppTools/ToolAlignObjects.py:299
+msgid "There is no aligner FlatCAM object selected..."
+msgstr "Não há nenhum objeto FlatCAM do alinhador selecionado ..."
+
+#: AppTools/ToolAlignObjects.py:325 AppTools/ToolAlignObjects.py:385
+msgid "First Point"
+msgstr "Ponto Inicial"
+
+#: AppTools/ToolAlignObjects.py:325 AppTools/ToolAlignObjects.py:400
+msgid "Click on the START point."
+msgstr "Clique no ponto INICIAL."
+
+#: AppTools/ToolAlignObjects.py:380 AppTools/ToolCalibration.py:920
+msgid "Cancelled by user request."
+msgstr "Cancelado por solicitação do usuário."
+
+#: AppTools/ToolAlignObjects.py:385 AppTools/ToolAlignObjects.py:407
+msgid "Click on the DESTINATION point."
+msgstr "Clique no ponto DESTINO."
+
+#: AppTools/ToolAlignObjects.py:385 AppTools/ToolAlignObjects.py:400
+#: AppTools/ToolAlignObjects.py:407
+msgid "Or right click to cancel."
+msgstr "ou clique esquerdo para cancelar."
+
+#: AppTools/ToolAlignObjects.py:400 AppTools/ToolAlignObjects.py:407
+#: AppTools/ToolFiducials.py:111
+msgid "Second Point"
+msgstr "Segundo Ponto"
+
+#: AppTools/ToolCalculators.py:24
+msgid "Calculators"
+msgstr "Calculadoras"
+
+#: AppTools/ToolCalculators.py:26
+msgid "Units Calculator"
+msgstr "Calculadora de Unidades"
+
+#: AppTools/ToolCalculators.py:70
+msgid "Here you enter the value to be converted from INCH to MM"
+msgstr "Aqui você insere o valor a ser convertido de polegadas para mm"
+
+#: AppTools/ToolCalculators.py:75
+msgid "Here you enter the value to be converted from MM to INCH"
+msgstr "Aqui você insere o valor a ser convertido de mm para polegadas"
+
+#: AppTools/ToolCalculators.py:111
+msgid ""
+"This is the angle of the tip of the tool.\n"
+"It is specified by manufacturer."
+msgstr ""
+"Ângulo da ponta da ferramenta.\n"
+"Especificado pelo fabricante."
+
+#: AppTools/ToolCalculators.py:120
+msgid ""
+"This is the depth to cut into the material.\n"
+"In the CNCJob is the CutZ parameter."
+msgstr ""
+"Esta é a profundidade para cortar material.\n"
+"No Trabalho CNC é o parâmetro Profundidade de Corte."
+
+#: AppTools/ToolCalculators.py:128
+msgid ""
+"This is the tool diameter to be entered into\n"
+"FlatCAM Gerber section.\n"
+"In the CNCJob section it is called >Tool dia<."
+msgstr ""
+"Este é o diâmetro da ferramenta a ser inserido na seção\n"
+"FlatCAM Gerber.\n"
+"Na seção Trabalho CNC é chamado de >Diâmetro da Ferramenta<."
+
+#: AppTools/ToolCalculators.py:139 AppTools/ToolCalculators.py:235
+msgid "Calculate"
+msgstr "Calcular"
+
+#: AppTools/ToolCalculators.py:142
+msgid ""
+"Calculate either the Cut Z or the effective tool diameter,\n"
+" depending on which is desired and which is known. "
+msgstr ""
+"Calcula a Profundidade de Corte Z ou o diâmetro efetivo da\n"
+"ferramenta, dependendo do que é desejado e do que é conhecido. "
+
+#: AppTools/ToolCalculators.py:205
+msgid "Current Value"
+msgstr "Valor da Corrente"
+
+#: AppTools/ToolCalculators.py:212
+msgid ""
+"This is the current intensity value\n"
+"to be set on the Power Supply. In Amps."
+msgstr ""
+"Este é o valor de intensidade de corrente\n"
+"a ser ajustado na fonte de alimentação. Em Ampères."
+
+#: AppTools/ToolCalculators.py:216
+msgid "Time"
+msgstr "Tempo"
+
+#: AppTools/ToolCalculators.py:223
+msgid ""
+"This is the calculated time required for the procedure.\n"
+"In minutes."
+msgstr "Tempo calculado necessário para o procedimento, em minutos."
+
+#: AppTools/ToolCalculators.py:238
+msgid ""
+"Calculate the current intensity value and the procedure time,\n"
+"depending on the parameters above"
+msgstr ""
+"Calcula o valor da intensidade atual e o tempo do\n"
+"procedimento, dependendo dos parâmetros acima"
+
+#: AppTools/ToolCalculators.py:299
+msgid "Calc. Tool"
+msgstr "Calculadoras"
+
+#: AppTools/ToolCalibration.py:67
+msgid "GCode Parameters"
+msgstr "Parâmetros do G-Code"
+
+#: AppTools/ToolCalibration.py:69
+msgid "Parameters used when creating the GCode in this tool."
+msgstr "Parâmetros usados nesta ferramenta para criar o G-Code."
+
+#: AppTools/ToolCalibration.py:173
+msgid "STEP 1: Acquire Calibration Points"
+msgstr "PASSO 1: Adquirir Pontos de Calibração"
+
+#: AppTools/ToolCalibration.py:175
+msgid ""
+"Pick four points by clicking on canvas.\n"
+"Those four points should be in the four\n"
+"(as much as possible) corners of the object."
+msgstr ""
+"Escolha quatro pontos clicando na tela.\n"
+"Esses quatro pontos devem estar nos quatro\n"
+"(o máximo possível) cantos do objeto."
+
+#: AppTools/ToolCalibration.py:193 AppTools/ToolFilm.py:71
+#: AppTools/ToolImage.py:54 AppTools/ToolPanelize.py:77
+#: AppTools/ToolProperties.py:177
+msgid "Object Type"
+msgstr "Tipo de Objeto"
+
+#: AppTools/ToolCalibration.py:210
+msgid "Source object selection"
+msgstr "Seleção do objeto fonte"
+
+#: AppTools/ToolCalibration.py:212
+msgid "FlatCAM Object to be used as a source for reference points."
+msgstr "Objeto FlatCAM a ser usado como fonte para os pontos de referência."
+
+#: AppTools/ToolCalibration.py:218
+msgid "Calibration Points"
+msgstr "Pontos de Calibração"
+
+#: AppTools/ToolCalibration.py:220
+msgid ""
+"Contain the expected calibration points and the\n"
+"ones measured."
+msgstr ""
+"Contém os pontos de calibração esperados e\n"
+"os medidos."
+
+#: AppTools/ToolCalibration.py:235 AppTools/ToolSub.py:76
+#: AppTools/ToolSub.py:131
+msgid "Target"
+msgstr "Alvo"
+
+#: AppTools/ToolCalibration.py:236
+msgid "Found Delta"
+msgstr "Delta Encontrado"
+
+#: AppTools/ToolCalibration.py:248
+msgid "Bot Left X"
+msgstr "Esquerda Inferior X"
+
+#: AppTools/ToolCalibration.py:257
+msgid "Bot Left Y"
+msgstr "Esquerda Inferior Y"
+
+#: AppTools/ToolCalibration.py:275
+msgid "Bot Right X"
+msgstr "Direita Inferior X"
+
+#: AppTools/ToolCalibration.py:285
+msgid "Bot Right Y"
+msgstr "Direita Inferior Y"
+
+#: AppTools/ToolCalibration.py:300
+msgid "Top Left X"
+msgstr "Esquerda Superior X"
+
+#: AppTools/ToolCalibration.py:309
+msgid "Top Left Y"
+msgstr "Esquerda Superior Y"
+
+#: AppTools/ToolCalibration.py:324
+msgid "Top Right X"
+msgstr "Direita Superior X"
+
+#: AppTools/ToolCalibration.py:334
+msgid "Top Right Y"
+msgstr "Direita Superior Y"
+
+#: AppTools/ToolCalibration.py:367
+msgid "Get Points"
+msgstr "Obter Pontos"
+
+#: AppTools/ToolCalibration.py:369
+msgid ""
+"Pick four points by clicking on canvas if the source choice\n"
+"is 'free' or inside the object geometry if the source is 'object'.\n"
+"Those four points should be in the four squares of\n"
+"the object."
+msgstr ""
+"Escolha quatro pontos clicando na tela se a opção de origem\n"
+"for 'livre' ou dentro da geometria do objeto se a origem for 'objeto'.\n"
+"Esses quatro pontos devem estar nos quatro cantos do\n"
+"objeto."
+
+#: AppTools/ToolCalibration.py:390
+msgid "STEP 2: Verification GCode"
+msgstr "PASSO 2: G-Code de Verificação"
+
+#: AppTools/ToolCalibration.py:392 AppTools/ToolCalibration.py:405
+msgid ""
+"Generate GCode file to locate and align the PCB by using\n"
+"the four points acquired above.\n"
+"The points sequence is:\n"
+"- first point -> set the origin\n"
+"- second point -> alignment point. Can be: top-left or bottom-right.\n"
+"- third point -> check point. Can be: top-left or bottom-right.\n"
+"- forth point -> final verification point. Just for evaluation."
+msgstr ""
+"Gere o arquivo G-Code para localizar e alinhar o PCB usando\n"
+"os quatro pontos adquiridos acima.\n"
+"A sequência de pontos é:\n"
+"- primeiro ponto -> defina a origem\n"
+"- segundo ponto -> ponto de alinhamento. Pode ser: superior esquerdo ou "
+"inferior direito.\n"
+"- terceiro ponto -> ponto de verificação. Pode ser: superior esquerdo ou "
+"inferior direito.\n"
+"- quarto ponto -> ponto de verificação final. Apenas para avaliação."
+
+#: AppTools/ToolCalibration.py:403 AppTools/ToolSolderPaste.py:348
+msgid "Generate GCode"
+msgstr "Gerar o G-Code"
+
+#: AppTools/ToolCalibration.py:429
+msgid "STEP 3: Adjustments"
+msgstr "PASSO 3: Ajustes"
+
+#: AppTools/ToolCalibration.py:431 AppTools/ToolCalibration.py:440
+msgid ""
+"Calculate Scale and Skew factors based on the differences (delta)\n"
+"found when checking the PCB pattern. The differences must be filled\n"
+"in the fields Found (Delta)."
+msgstr ""
+"Calcular fatores de escala e de inclinação com base nas diferenças (delta)\n"
+"encontradas ao verificar o padrão PCB. As diferenças devem ser preenchidas\n"
+"nos campos Encontrados (Delta)."
+
+#: AppTools/ToolCalibration.py:438
+msgid "Calculate Factors"
+msgstr "Calculas Fatores"
+
+#: AppTools/ToolCalibration.py:460
+msgid "STEP 4: Adjusted GCode"
+msgstr "PASSO 4: G-Code ajustado"
+
+#: AppTools/ToolCalibration.py:462
+msgid ""
+"Generate verification GCode file adjusted with\n"
+"the factors above."
+msgstr ""
+"Gera o arquivo G-Code de verificação ajustado com\n"
+"os fatores acima."
+
+#: AppTools/ToolCalibration.py:467
+msgid "Scale Factor X:"
+msgstr "Fator de Escala X:"
+
+#: AppTools/ToolCalibration.py:479
+msgid "Scale Factor Y:"
+msgstr "Fator de Escala Y:"
+
+#: AppTools/ToolCalibration.py:491
+msgid "Apply Scale Factors"
+msgstr "Aplicar Fatores de Escala"
+
+#: AppTools/ToolCalibration.py:493
+msgid "Apply Scale factors on the calibration points."
+msgstr "Aplica os fatores de escala nos pontos de calibração."
+
+#: AppTools/ToolCalibration.py:503
+msgid "Skew Angle X:"
+msgstr "Ângulo de inclinação X:"
+
+#: AppTools/ToolCalibration.py:516
+msgid "Skew Angle Y:"
+msgstr "Ângulo de inclinação Y:"
+
+#: AppTools/ToolCalibration.py:529
+msgid "Apply Skew Factors"
+msgstr "Aplicar Fatores de Inclinação"
+
+#: AppTools/ToolCalibration.py:531
+msgid "Apply Skew factors on the calibration points."
+msgstr "Aplica os fatores de inclinação nos pontos de calibração."
+
+#: AppTools/ToolCalibration.py:600
+msgid "Generate Adjusted GCode"
+msgstr "Gerar o G-Code Ajustado"
+
+#: AppTools/ToolCalibration.py:602
+msgid ""
+"Generate verification GCode file adjusted with\n"
+"the factors set above.\n"
+"The GCode parameters can be readjusted\n"
+"before clicking this button."
+msgstr ""
+"Gera o arquivo G-Code de verificação ajustado com\n"
+"os fatores definidos acima.\n"
+"Os parâmetros do G-Code podem ser reajustados\n"
+"antes de clicar neste botão."
+
+#: AppTools/ToolCalibration.py:623
+msgid "STEP 5: Calibrate FlatCAM Objects"
+msgstr "PASSO 5: Calibrar Objetos FlatCAM"
+
+#: AppTools/ToolCalibration.py:625
+msgid ""
+"Adjust the FlatCAM objects\n"
+"with the factors determined and verified above."
+msgstr ""
+"Ajustar os objetos FlatCAM\n"
+"com os fatores determinados e verificados acima."
+
+#: AppTools/ToolCalibration.py:637
+msgid "Adjusted object type"
+msgstr "Tipo de objeto ajustado"
+
+#: AppTools/ToolCalibration.py:638
+msgid "Type of the FlatCAM Object to be adjusted."
+msgstr "Tipo do objeto FlatCAM a ser ajustado."
+
+#: AppTools/ToolCalibration.py:651
+msgid "Adjusted object selection"
+msgstr "Seleção do objeto ajustado"
+
+#: AppTools/ToolCalibration.py:653
+msgid "The FlatCAM Object to be adjusted."
+msgstr "Objeto FlatCAM a ser ajustado."
+
+#: AppTools/ToolCalibration.py:660
+msgid "Calibrate"
+msgstr "Calibrar"
+
+#: AppTools/ToolCalibration.py:662
+msgid ""
+"Adjust (scale and/or skew) the objects\n"
+"with the factors determined above."
+msgstr ""
+"Ajustar (dimensionar e/ou inclinar) os objetos\n"
+"com os fatores determinados acima."
+
+#: AppTools/ToolCalibration.py:770 AppTools/ToolCalibration.py:771
+msgid "Origin"
+msgstr "Origem"
+
+#: AppTools/ToolCalibration.py:800
+msgid "Tool initialized"
+msgstr "Ferramenta inicializada"
+
+#: AppTools/ToolCalibration.py:838
+msgid "There is no source FlatCAM object selected..."
+msgstr "Não há nenhum objeto FlatCAM de origem selecionado..."
+
+#: AppTools/ToolCalibration.py:859
+msgid "Get First calibration point. Bottom Left..."
+msgstr "Obtenha o primeiro ponto de calibração. Inferior Esquerdo..."
+
+#: AppTools/ToolCalibration.py:926
+msgid "Get Second calibration point. Bottom Right (Top Left)..."
+msgstr ""
+"Obtenha o segundo ponto de calibração. Inferior direito (canto superior "
+"esquerdo) ..."
+
+#: AppTools/ToolCalibration.py:930
+msgid "Get Third calibration point. Top Left (Bottom Right)..."
+msgstr ""
+"Obtenha o terceiro ponto de calibração. Superior esquerdo (canto inferior "
+"direito) ..."
+
+#: AppTools/ToolCalibration.py:934
+msgid "Get Forth calibration point. Top Right..."
+msgstr "Obtenha o quarto ponto de calibração. Superior Direito..."
+
+#: AppTools/ToolCalibration.py:938
+msgid "Done. All four points have been acquired."
+msgstr "Feito. Todos os quatro pontos foram adquiridos."
+
+#: AppTools/ToolCalibration.py:969
+msgid "Verification GCode for FlatCAM Calibration Tool"
+msgstr "G-Code de Verificação para a Ferramenta de Calibração FlatCAM"
+
+#: AppTools/ToolCalibration.py:981 AppTools/ToolCalibration.py:1067
+msgid "Gcode Viewer"
+msgstr "G-Code Viewer"
+
+#: AppTools/ToolCalibration.py:997
+msgid "Cancelled. Four points are needed for GCode generation."
+msgstr "Cancelado. São necessários quatro pontos para a geração do G-Code."
+
+#: AppTools/ToolCalibration.py:1253 AppTools/ToolCalibration.py:1349
+msgid "There is no FlatCAM object selected..."
+msgstr "Não há nenhum objeto FlatCAM selecionado ..."
+
+#: AppTools/ToolCopperThieving.py:76 AppTools/ToolFiducials.py:261
+msgid "Gerber Object to which will be added a copper thieving."
+msgstr "Objeto Gerber ao qual será adicionada uma adição de cobre."
+
+#: AppTools/ToolCopperThieving.py:98
+msgid ""
+"This set the distance between the copper thieving components\n"
+"(the polygon fill may be split in multiple polygons)\n"
+"and the copper traces in the Gerber file."
+msgstr ""
+"Define a distância entre os componentes de adição de cobre\n"
+"(o preenchimento de polígono pode ser dividido em vários polígonos)\n"
+"e os vestígios de cobre no arquivo Gerber."
+
+#: AppTools/ToolCopperThieving.py:131
+msgid ""
+"- 'Itself' - the copper thieving extent is based on the object extent.\n"
+"- 'Area Selection' - left mouse click to start selection of the area to be "
+"filled.\n"
+"- 'Reference Object' - will do copper thieving within the area specified by "
+"another object."
+msgstr ""
+"- 'Próprio' - a extensão do Copper Thieving é baseada na extensão do "
+"objeto.\n"
+"- 'Seleção de área' - clique esquerdo do mouse para iniciar a seleção da "
+"área a ser preenchida.\n"
+"- 'Objeto de referência' - fará Copper Thieving dentro da área especificada "
+"por outro objeto."
+
+#: AppTools/ToolCopperThieving.py:138 AppTools/ToolNCC.py:552
+#: AppTools/ToolPaint.py:495
+msgid "Ref. Type"
+msgstr "Tipo de Ref"
+
+#: AppTools/ToolCopperThieving.py:140
+msgid ""
+"The type of FlatCAM object to be used as copper thieving reference.\n"
+"It can be Gerber, Excellon or Geometry."
+msgstr ""
+"O tipo de objeto FlatCAM a ser usado como referência para adição de cobre.\n"
+"Pode ser Gerber, Excellon ou Geometria."
+
+#: AppTools/ToolCopperThieving.py:149 AppTools/ToolNCC.py:562
+#: AppTools/ToolPaint.py:505
+msgid "Ref. Object"
+msgstr "Objeto de Ref"
+
+#: AppTools/ToolCopperThieving.py:151 AppTools/ToolNCC.py:564
+#: AppTools/ToolPaint.py:507
+msgid "The FlatCAM object to be used as non copper clearing reference."
+msgstr "O objeto FlatCAM a ser usado como referência para retirada de cobre."
+
+#: AppTools/ToolCopperThieving.py:327
+msgid "Insert Copper thieving"
+msgstr "Inserir adição de cobre"
+
+#: AppTools/ToolCopperThieving.py:329
+msgid ""
+"Will add a polygon (may be split in multiple parts)\n"
+"that will surround the actual Gerber traces at a certain distance."
+msgstr ""
+"Adicionará um polígono (pode ser dividido em várias partes)\n"
+"que cercará os traços atuais de Gerber a uma certa distância."
+
+#: AppTools/ToolCopperThieving.py:388
+msgid "Insert Robber Bar"
+msgstr "Inserir Barra"
+
+#: AppTools/ToolCopperThieving.py:390
+msgid ""
+"Will add a polygon with a defined thickness\n"
+"that will surround the actual Gerber object\n"
+"at a certain distance.\n"
+"Required when doing holes pattern plating."
+msgstr ""
+"Adicionará um polígono com uma espessura definida\n"
+"que cercará o objeto Gerber atual\n"
+"a uma certa distância.\n"
+"Necessário ao fazer o padrão de furos."
+
+#: AppTools/ToolCopperThieving.py:414
+msgid "Select Soldermask object"
+msgstr "Selecionar objeto Máscara de Solda"
+
+#: AppTools/ToolCopperThieving.py:416
+msgid ""
+"Gerber Object with the soldermask.\n"
+"It will be used as a base for\n"
+"the pattern plating mask."
+msgstr ""
+"Objeto Gerber com a Máscara de Solda.\n"
+"Será usado como base para\n"
+"a máscara de revestimento padrão."
+
+#: AppTools/ToolCopperThieving.py:445
+msgid "Plated area"
+msgstr "Área revestida"
+
+#: AppTools/ToolCopperThieving.py:447
+msgid ""
+"The area to be plated by pattern plating.\n"
+"Basically is made from the openings in the plating mask.\n"
+"\n"
+"<> - the calculated area is actually a bit larger\n"
+"due of the fact that the soldermask openings are by design\n"
+"a bit larger than the copper pads, and this area is\n"
+"calculated from the soldermask openings."
+msgstr ""
+"A área a ser revestida pelo revestimento padrão.\n"
+"Basicamente é feito a partir das aberturas na máscara de revestimento.\n"
+"\n"
+"<> - a área calculada é realmente um pouco maior\n"
+"devido ao fato de que as aberturas da máscara de solda são projetadas\n"
+"um pouco maior que os pads de cobre, e essa área é\n"
+"calculada a partir das aberturas da máscara de solda."
+
+#: AppTools/ToolCopperThieving.py:458
+msgid "mm"
+msgstr "mm"
+
+#: AppTools/ToolCopperThieving.py:460
+msgid "in"
+msgstr "in"
+
+#: AppTools/ToolCopperThieving.py:467
+msgid "Generate pattern plating mask"
+msgstr "Gerar máscara de revestimento padrão"
+
+#: AppTools/ToolCopperThieving.py:469
+msgid ""
+"Will add to the soldermask gerber geometry\n"
+"the geometries of the copper thieving and/or\n"
+"the robber bar if those were generated."
+msgstr ""
+"Adicionará à geometria do gerber máscara de solda\n"
+"as geometrias da adição de cobre e/ou\n"
+"a barra, se elas foram geradas."
+
+#: AppTools/ToolCopperThieving.py:625 AppTools/ToolCopperThieving.py:650
+msgid "Lines Grid works only for 'itself' reference ..."
+msgstr "Linhas funciona apenas para referência 'própria' ..."
+
+#: AppTools/ToolCopperThieving.py:636
+msgid "Solid fill selected."
+msgstr "Preenchimento sólido selecionado."
+
+#: AppTools/ToolCopperThieving.py:641
+msgid "Dots grid fill selected."
+msgstr "Preenchimento de pontos selecionado."
+
+#: AppTools/ToolCopperThieving.py:646
+msgid "Squares grid fill selected."
+msgstr "Preenchimento de quadrados selecionado."
+
+#: AppTools/ToolCopperThieving.py:667 AppTools/ToolCopperThieving.py:749
+#: AppTools/ToolCopperThieving.py:1351 AppTools/ToolCorners.py:251
+#: AppTools/ToolDblSided.py:657 AppTools/ToolExtractDrills.py:436
+#: AppTools/ToolFiducials.py:467 AppTools/ToolFiducials.py:744
+#: AppTools/ToolOptimal.py:342 AppTools/ToolPunchGerber.py:512
+#: AppTools/ToolQRCode.py:426
+msgid "There is no Gerber object loaded ..."
+msgstr "Não há objeto Gerber carregado ..."
+
+#: AppTools/ToolCopperThieving.py:680 AppTools/ToolCopperThieving.py:1279
+msgid "Append geometry"
+msgstr "Anexar geometria"
+
+#: AppTools/ToolCopperThieving.py:724 AppTools/ToolCopperThieving.py:1312
+#: AppTools/ToolCopperThieving.py:1465
+msgid "Append source file"
+msgstr "Anexar arquivo fonte"
+
+#: AppTools/ToolCopperThieving.py:732 AppTools/ToolCopperThieving.py:1320
+msgid "Copper Thieving Tool done."
+msgstr "Área de Adição de Cobre."
+
+#: AppTools/ToolCopperThieving.py:759 AppTools/ToolCopperThieving.py:792
+#: AppTools/ToolCutOut.py:519 AppTools/ToolCutOut.py:724
+#: AppTools/ToolEtchCompensation.py:208 AppTools/ToolInvertGerber.py:208
+#: AppTools/ToolNCC.py:1599 AppTools/ToolNCC.py:1641 AppTools/ToolNCC.py:1670
+#: AppTools/ToolPaint.py:1473 AppTools/ToolPanelize.py:423
+#: AppTools/ToolPanelize.py:437 AppTools/ToolSub.py:294 AppTools/ToolSub.py:307
+#: AppTools/ToolSub.py:498 AppTools/ToolSub.py:513
+#: tclCommands/TclCommandCopperClear.py:97 tclCommands/TclCommandPaint.py:99
+msgid "Could not retrieve object"
+msgstr "Não foi possível recuperar o objeto"
+
+#: AppTools/ToolCopperThieving.py:769 AppTools/ToolNCC.py:1649 Common.py:200
+msgid "Click the start point of the area."
+msgstr "Clique no ponto inicial da área."
+
+#: AppTools/ToolCopperThieving.py:820
+msgid "Click the end point of the filling area."
+msgstr "Clique no ponto final da área de preenchimento."
+
+#: AppTools/ToolCopperThieving.py:826 AppTools/ToolNCC.py:1711
+#: AppTools/ToolNCC.py:1763 AppTools/ToolPaint.py:1605
+#: AppTools/ToolPaint.py:1656 Common.py:256 Common.py:356
+msgid "Zone added. Click to start adding next zone or right click to finish."
+msgstr ""
+"Zona adicionada. Clique para iniciar a adição da próxima zona ou clique com "
+"o botão direito para terminar."
+
+#: AppTools/ToolCopperThieving.py:948 AppTools/ToolCopperThieving.py:952
+#: AppTools/ToolCopperThieving.py:1013
+msgid "Thieving"
+msgstr "Adição"
+
+#: AppTools/ToolCopperThieving.py:959
+msgid "Copper Thieving Tool started. Reading parameters."
+msgstr "Ferramenta de Adição de Cobre iniciada. Lendo parâmetros."
+
+#: AppTools/ToolCopperThieving.py:984
+msgid "Copper Thieving Tool. Preparing isolation polygons."
+msgstr "Ferramenta de Adição de Cobre. Preparando polígonos de isolação."
+
+#: AppTools/ToolCopperThieving.py:1029
+msgid "Copper Thieving Tool. Preparing areas to fill with copper."
+msgstr ""
+"Ferramenta de Adição de Cobre. Preparando áreas para preencher com cobre."
+
+#: AppTools/ToolCopperThieving.py:1040 AppTools/ToolOptimal.py:349
+#: AppTools/ToolPanelize.py:810 AppTools/ToolRulesCheck.py:1127
+msgid "Working..."
+msgstr "Trabalhando..."
+
+#: AppTools/ToolCopperThieving.py:1067
+msgid "Geometry not supported for bounding box"
+msgstr "Geometria não suportada para caixa delimitadora"
+
+#: AppTools/ToolCopperThieving.py:1073 AppTools/ToolNCC.py:1942
+#: AppTools/ToolNCC.py:1997 AppTools/ToolNCC.py:3038 AppTools/ToolPaint.py:3385
+msgid "No object available."
+msgstr "Nenhum objeto disponível."
+
+#: AppTools/ToolCopperThieving.py:1110 AppTools/ToolNCC.py:1967
+#: AppTools/ToolNCC.py:2020 AppTools/ToolNCC.py:3080
+msgid "The reference object type is not supported."
+msgstr "O tipo do objeto de referência não é suportado."
+
+#: AppTools/ToolCopperThieving.py:1115
+msgid "Copper Thieving Tool. Appending new geometry and buffering."
+msgstr "Ferramenta de Adição de Cobre. Anexando nova geometria e buffer."
+
+#: AppTools/ToolCopperThieving.py:1131
+msgid "Create geometry"
+msgstr "Criar Geometria"
+
+#: AppTools/ToolCopperThieving.py:1331 AppTools/ToolCopperThieving.py:1335
+msgid "P-Plating Mask"
+msgstr "Máscara de Revestimento Padrão"
+
+#: AppTools/ToolCopperThieving.py:1357
+msgid "Append PP-M geometry"
+msgstr "Anexar geometria"
+
+#: AppTools/ToolCopperThieving.py:1483
+msgid "Generating Pattern Plating Mask done."
+msgstr "Geração de Máscara de Revestimento Padrão concluída."
+
+#: AppTools/ToolCopperThieving.py:1555
+msgid "Copper Thieving Tool exit."
+msgstr "Sair da Ferramenta de Adição de Cobre."
+
+#: AppTools/ToolCorners.py:57
+#, fuzzy
+#| msgid "Gerber Object to which will be added a copper thieving."
+msgid "The Gerber object that to which will be added corner markers."
+msgstr "Objeto Gerber ao qual será adicionada uma adição de cobre."
+
+#: AppTools/ToolCorners.py:73
+#, fuzzy
+#| msgid "Location"
+msgid "Locations"
+msgstr "Localização"
+
+#: AppTools/ToolCorners.py:75
+msgid "Locations where to place corner markers."
+msgstr ""
+
+#: AppTools/ToolCorners.py:92 AppTools/ToolFiducials.py:99
+msgid "Top Right"
+msgstr "Direita Superior"
+
+#: AppTools/ToolCorners.py:158
+#, fuzzy
+#| msgid "Add Track"
+msgid "Add Marker"
+msgstr "Adicionar Trilha"
+
+#: AppTools/ToolCorners.py:160
+msgid "Will add corner markers to the selected Gerber file."
+msgstr ""
+
+#: AppTools/ToolCorners.py:225
+#, fuzzy
+#| msgid "QRCode Tool"
+msgid "Corners Tool"
+msgstr "Ferramenta de QRCode"
+
+#: AppTools/ToolCorners.py:288
+msgid "Please select at least a location"
+msgstr ""
+
+#: AppTools/ToolCorners.py:423
+#, fuzzy
+#| msgid "Copper Thieving Tool exit."
+msgid "Corners Tool exit."
+msgstr "Sair da Ferramenta de Adição de Cobre."
+
+#: AppTools/ToolCutOut.py:41
+msgid "Cutout PCB"
+msgstr "Recorte PCB"
+
+#: AppTools/ToolCutOut.py:69 AppTools/ToolPanelize.py:53
+msgid "Source Object"
+msgstr "Objeto Fonte"
+
+#: AppTools/ToolCutOut.py:70
+msgid "Object to be cutout"
+msgstr "Objeto a ser recortado"
+
+#: AppTools/ToolCutOut.py:75
+msgid "Kind"
+msgstr "Tipo"
+
+#: AppTools/ToolCutOut.py:97
+msgid ""
+"Specify the type of object to be cutout.\n"
+"It can be of type: Gerber or Geometry.\n"
+"What is selected here will dictate the kind\n"
+"of objects that will populate the 'Object' combobox."
+msgstr ""
+"Especifica o tipo de objeto a ser cortado.\n"
+"Pode ser do tipo: Gerber ou Geometria.\n"
+"O que estiver selecionado aqui irá ditar o tipo\n"
+"de objetos que preencherão a caixa de combinação 'Objeto'."
+
+#: AppTools/ToolCutOut.py:121
+msgid "Tool Parameters"
+msgstr "Parâmetros de Ferramenta"
+
+#: AppTools/ToolCutOut.py:238
+msgid "A. Automatic Bridge Gaps"
+msgstr "A. Pontes Automáticas"
+
+#: AppTools/ToolCutOut.py:240
+msgid "This section handle creation of automatic bridge gaps."
+msgstr "Esta seção trata da criação de pontes automáticas."
+
+#: AppTools/ToolCutOut.py:247
+msgid ""
+"Number of gaps used for the Automatic cutout.\n"
+"There can be maximum 8 bridges/gaps.\n"
+"The choices are:\n"
+"- None - no gaps\n"
+"- lr - left + right\n"
+"- tb - top + bottom\n"
+"- 4 - left + right +top + bottom\n"
+"- 2lr - 2*left + 2*right\n"
+"- 2tb - 2*top + 2*bottom\n"
+"- 8 - 2*left + 2*right +2*top + 2*bottom"
+msgstr ""
+"Número de pontes utilizadas no recorte automático.\n"
+"Pode haver um máximo de 8 pontes/lacunas.\n"
+"As opções são:\n"
+"- Nenhum - sem pontes\n"
+"- LR - esquerda + direita\n"
+"- TB - topo + baixo\n"
+"- 4 - esquerda + direita + topo + baixo\n"
+"- 2LR - 2*esquerda + 2*direita\n"
+"- 2TB - 2*topo + 2*baixo\n"
+"- 8 - 2*esquerda + 2*direita + 2*topo + 2*baixo"
+
+#: AppTools/ToolCutOut.py:269
+msgid "Generate Freeform Geometry"
+msgstr "Gerar Geometria de Forma Livre"
+
+#: AppTools/ToolCutOut.py:271
+msgid ""
+"Cutout the selected object.\n"
+"The cutout shape can be of any shape.\n"
+"Useful when the PCB has a non-rectangular shape."
+msgstr ""
+"Recorta o objeto selecionado.\n"
+"O recorte pode ter qualquer forma.\n"
+"Útil quando o PCB tem uma forma não retangular."
+
+#: AppTools/ToolCutOut.py:283
+msgid "Generate Rectangular Geometry"
+msgstr "Gerar Geometria Retangular"
+
+#: AppTools/ToolCutOut.py:285
+msgid ""
+"Cutout the selected object.\n"
+"The resulting cutout shape is\n"
+"always a rectangle shape and it will be\n"
+"the bounding box of the Object."
+msgstr ""
+"Recorta o objeto selecionado.\n"
+"O recorte resultante é\n"
+"sempre em forma de retângulo e será\n"
+"a caixa delimitadora do objeto."
+
+#: AppTools/ToolCutOut.py:304
+msgid "B. Manual Bridge Gaps"
+msgstr "B. Pontes Manuais"
+
+#: AppTools/ToolCutOut.py:306
+msgid ""
+"This section handle creation of manual bridge gaps.\n"
+"This is done by mouse clicking on the perimeter of the\n"
+"Geometry object that is used as a cutout object. "
+msgstr ""
+"Esta seção trata da criação de pontes manuais.\n"
+"Isso é feito clicando com o mouse no perímetro do objeto\n"
+"de Geometria que é usado como objeto de recorte. "
+
+#: AppTools/ToolCutOut.py:321
+msgid "Geometry object used to create the manual cutout."
+msgstr "Objeto de geometria usado para criar o recorte manual."
+
+#: AppTools/ToolCutOut.py:328
+msgid "Generate Manual Geometry"
+msgstr "Gerar Geometria Manual"
+
+#: AppTools/ToolCutOut.py:330
+msgid ""
+"If the object to be cutout is a Gerber\n"
+"first create a Geometry that surrounds it,\n"
+"to be used as the cutout, if one doesn't exist yet.\n"
+"Select the source Gerber file in the top object combobox."
+msgstr ""
+"Se o objeto a ser recortado for um Gerber\n"
+"primeiro crie uma Geometria que o rodeia,\n"
+"para ser usado como recorte, caso ainda não exista.\n"
+"Selecione o arquivo Gerber de origem na combobox do objeto."
+
+#: AppTools/ToolCutOut.py:343
+msgid "Manual Add Bridge Gaps"
+msgstr "Adicionar Pontes Manuais"
+
+#: AppTools/ToolCutOut.py:345
+msgid ""
+"Use the left mouse button (LMB) click\n"
+"to create a bridge gap to separate the PCB from\n"
+"the surrounding material.\n"
+"The LMB click has to be done on the perimeter of\n"
+"the Geometry object used as a cutout geometry."
+msgstr ""
+"Use o botão esquerdo do mouse (BEM): clique\n"
+"para criar uma ponte para separar a PCB do material adjacente.\n"
+"O clique deve ser feito no perímetro\n"
+"do objeto Geometria usado como uma geometria de recorte."
+
+#: AppTools/ToolCutOut.py:524
+msgid ""
+"There is no object selected for Cutout.\n"
+"Select one and try again."
+msgstr ""
+"Não há objeto selecionado para Recorte.\n"
+"Selecione um e tente novamente."
+
+#: AppTools/ToolCutOut.py:530 AppTools/ToolCutOut.py:733
+#: AppTools/ToolCutOut.py:914 AppTools/ToolCutOut.py:996
+#: tclCommands/TclCommandGeoCutout.py:184
+msgid "Tool Diameter is zero value. Change it to a positive real number."
+msgstr ""
+"O diâmetro da ferramenta está zerado. Mude para um número real positivo."
+
+#: AppTools/ToolCutOut.py:544 AppTools/ToolCutOut.py:748
+msgid "Number of gaps value is missing. Add it and retry."
+msgstr "O número de pontes está ausente. Altere e tente novamente."
+
+#: AppTools/ToolCutOut.py:549 AppTools/ToolCutOut.py:752
+msgid ""
+"Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. "
+"Fill in a correct value and retry. "
+msgstr ""
+"O valor das lacunas pode ser apenas um de: 'Nenhum', 'lr', 'tb', '2lr', "
+"'2tb', 4 ou 8. Preencha um valor correto e tente novamente. "
+
+#: AppTools/ToolCutOut.py:554 AppTools/ToolCutOut.py:758
+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 ""
+"A operação de recorte não pode ser feita em uma Geometria multi-geo.\n"
+"Opcionalmente, essa Geometria Multi-Geo pode ser convertida em Geometria "
+"Única,\n"
+"e depois disso, executar Recorte."
+
+#: AppTools/ToolCutOut.py:706 AppTools/ToolCutOut.py:903
+msgid "Any form CutOut operation finished."
+msgstr "Recorte concluído."
+
+#: AppTools/ToolCutOut.py:728 AppTools/ToolEtchCompensation.py:214
+#: AppTools/ToolInvertGerber.py:214 AppTools/ToolNCC.py:1603
+#: AppTools/ToolPaint.py:1396 AppTools/ToolPanelize.py:428
+#: tclCommands/TclCommandBbox.py:71 tclCommands/TclCommandNregions.py:71
+msgid "Object not found"
+msgstr "Objeto não encontrado"
+
+#: AppTools/ToolCutOut.py:872
+msgid "Rectangular cutout with negative margin is not possible."
+msgstr "Recorte retangular com margem negativa não é possível."
+
+#: AppTools/ToolCutOut.py:908
+msgid ""
+"Click on the selected geometry object perimeter to create a bridge gap ..."
+msgstr ""
+"Clique no perímetro do objeto de geometria selecionado para criar uma "
+"ponte ..."
+
+#: AppTools/ToolCutOut.py:925 AppTools/ToolCutOut.py:951
+msgid "Could not retrieve Geometry object"
+msgstr "Não foi possível recuperar o objeto Geometria"
+
+#: AppTools/ToolCutOut.py:956
+msgid "Geometry object for manual cutout not found"
+msgstr "Objeto de geometria para recorte manual não encontrado"
+
+#: AppTools/ToolCutOut.py:966
+msgid "Added manual Bridge Gap."
+msgstr "Ponte Manual Adicionada."
+
+#: AppTools/ToolCutOut.py:978
+msgid "Could not retrieve Gerber object"
+msgstr "Não foi possível recuperar o objeto Gerber"
+
+#: AppTools/ToolCutOut.py:983
+msgid ""
+"There is no Gerber object selected for Cutout.\n"
+"Select one and try again."
+msgstr ""
+"Não há nenhum objeto Gerber selecionado para o Recorte.\n"
+"Selecione um e tente novamente."
+
+#: AppTools/ToolCutOut.py:989
+msgid ""
+"The selected object has to be of Gerber type.\n"
+"Select a Gerber file and try again."
+msgstr ""
+"O objeto selecionado deve ser do tipo Gerber.\n"
+"Selecione um arquivo Gerber e tente novamente."
+
+#: AppTools/ToolCutOut.py:1024
+msgid "Geometry not supported for cutout"
+msgstr "Geometria não suportada para recorte"
+
+#: AppTools/ToolCutOut.py:1099
+msgid "Making manual bridge gap..."
+msgstr "Fazendo ponte manual..."
+
+#: AppTools/ToolDblSided.py:26
+msgid "2-Sided PCB"
+msgstr "PCB de 2 faces"
+
+#: AppTools/ToolDblSided.py:52
+msgid "Mirror Operation"
+msgstr "Operação Espelho"
+
+#: AppTools/ToolDblSided.py:53
+msgid "Objects to be mirrored"
+msgstr "Objetos a espelhar"
+
+#: AppTools/ToolDblSided.py:65
+msgid "Gerber to be mirrored"
+msgstr "Gerber a espelhar"
+
+#: AppTools/ToolDblSided.py:69 AppTools/ToolDblSided.py:97
+#: AppTools/ToolDblSided.py:127
+msgid ""
+"Mirrors (flips) the specified object around \n"
+"the specified axis. Does not create a new \n"
+"object, but modifies it."
+msgstr ""
+"Espelha (inverte) o objeto especificado em torno do eixo especificado.\n"
+"Não é criado um novo objeto, o objeto atual é modificado."
+
+#: AppTools/ToolDblSided.py:93
+msgid "Excellon Object to be mirrored."
+msgstr "Objeto Excellon a ser espelhado."
+
+#: AppTools/ToolDblSided.py:122
+msgid "Geometry Obj to be mirrored."
+msgstr "Objeto Geometria a ser espelhado."
+
+#: AppTools/ToolDblSided.py:158
+msgid "Mirror Parameters"
+msgstr "Parâmetros de Espelho"
+
+#: AppTools/ToolDblSided.py:159
+msgid "Parameters for the mirror operation"
+msgstr "Parâmetros para a operação de espelhamento"
+
+#: AppTools/ToolDblSided.py:164
+msgid "Mirror Axis"
+msgstr "Espelhar Eixo"
+
+#: AppTools/ToolDblSided.py:175
+msgid ""
+"The coordinates used as reference for the mirror operation.\n"
+"Can be:\n"
+"- Point -> a set of coordinates (x,y) around which the object is mirrored\n"
+"- Box -> a set of coordinates (x, y) obtained from the center of the\n"
+"bounding box of another object selected below"
+msgstr ""
+"As coordenadas usadas como referência para a operação de espelho.\n"
+"Pode ser:\n"
+"- Ponto -> um conjunto de coordenadas (x, y) em torno do qual o objeto é "
+"espelhado\n"
+"- Caixa -> um conjunto de coordenadas (x, y) obtidas do centro da\n"
+"caixa delimitadora de outro objeto selecionado abaixo"
+
+#: AppTools/ToolDblSided.py:189
+msgid "Point coordinates"
+msgstr "Coords dos pontos"
+
+#: AppTools/ToolDblSided.py:194
+msgid ""
+"Add the coordinates in format (x, y) through which the mirroring "
+"axis\n"
+" selected in 'MIRROR AXIS' pass.\n"
+"The (x, y) coordinates are captured by pressing SHIFT key\n"
+"and left mouse button click on canvas or you can enter the coordinates "
+"manually."
+msgstr ""
+"Adicione as coordenadas no formato (x, y) para o eixo de espelhamento "
+"passar.\n"
+"As coordenadas (x, y) são capturadas pressionando a tecla SHIFT\n"
+"e clicar o botão esquerdo do mouse na tela ou inseridas manualmente."
+
+#: AppTools/ToolDblSided.py:218
+msgid ""
+"It can be of type: Gerber or Excellon or Geometry.\n"
+"The coordinates of the center of the bounding box are used\n"
+"as reference for mirror operation."
+msgstr ""
+"Pode ser do tipo: Gerber, Excellon ou Geometria.\n"
+"As coordenadas do centro da caixa delimitadora são usadas\n"
+"como referência para operação de espelho."
+
+#: AppTools/ToolDblSided.py:252
+msgid "Bounds Values"
+msgstr "Valores Limite"
+
+#: AppTools/ToolDblSided.py:254
+msgid ""
+"Select on canvas the object(s)\n"
+"for which to calculate bounds values."
+msgstr ""
+"Selecione na tela o(s) objeto(s)\n"
+"para o qual calcular valores limites."
+
+#: AppTools/ToolDblSided.py:264
+msgid "X min"
+msgstr "X min"
+
+#: AppTools/ToolDblSided.py:266 AppTools/ToolDblSided.py:280
+msgid "Minimum location."
+msgstr "Localização mínima."
+
+#: AppTools/ToolDblSided.py:278
+msgid "Y min"
+msgstr "Y min"
+
+#: AppTools/ToolDblSided.py:292
+msgid "X max"
+msgstr "X max"
+
+#: AppTools/ToolDblSided.py:294 AppTools/ToolDblSided.py:308
+msgid "Maximum location."
+msgstr "Localização máxima."
+
+#: AppTools/ToolDblSided.py:306
+msgid "Y max"
+msgstr "Y max"
+
+#: AppTools/ToolDblSided.py:317
+msgid "Center point coordinates"
+msgstr "Coordenadas do ponto central"
+
+#: AppTools/ToolDblSided.py:319
+msgid "Centroid"
+msgstr "Centroid"
+
+#: AppTools/ToolDblSided.py:321
+msgid ""
+"The center point location for the rectangular\n"
+"bounding shape. Centroid. Format is (x, y)."
+msgstr ""
+"A localização do ponto central do retângulo\n"
+"forma delimitadora. Centroid. O formato é (x, y)."
+
+#: AppTools/ToolDblSided.py:330
+msgid "Calculate Bounds Values"
+msgstr "Calcular valores de limitesCalculadoras"
+
+#: AppTools/ToolDblSided.py:332
+msgid ""
+"Calculate the enveloping rectangular shape coordinates,\n"
+"for the selection of objects.\n"
+"The envelope shape is parallel with the X, Y axis."
+msgstr ""
+"Calcular as coordenadas de forma retangular envolventes,\n"
+"para a seleção de objetos.\n"
+"A forma do envelope é paralela ao eixo X, Y."
+
+#: AppTools/ToolDblSided.py:352
+msgid "PCB Alignment"
+msgstr "Alinhamento PCB"
+
+#: AppTools/ToolDblSided.py:354 AppTools/ToolDblSided.py:456
+msgid ""
+"Creates an Excellon Object containing the\n"
+"specified alignment holes and their mirror\n"
+"images."
+msgstr ""
+"Cria um Objeto Excellon contendo os\n"
+"furos de alinhamento especificados e suas\n"
+"imagens espelhadas."
+
+#: AppTools/ToolDblSided.py:361
+msgid "Drill Diameter"
+msgstr "Diâmetro da Broca"
+
+#: AppTools/ToolDblSided.py:390 AppTools/ToolDblSided.py:397
+msgid ""
+"The reference point used to create the second alignment drill\n"
+"from the first alignment drill, by doing mirror.\n"
+"It can be modified in the Mirror Parameters -> Reference section"
+msgstr ""
+"O ponto de referência usado para criar o segundo furo de alinhamento\n"
+"do primeiro furo de alinhamento, fazendo espelho.\n"
+"Pode ser modificado na seção Parâmetros de espelho -> Referência"
+
+#: AppTools/ToolDblSided.py:410
+msgid "Alignment Drill Coordinates"
+msgstr "Coords Furos de Alinhamento"
+
+#: AppTools/ToolDblSided.py:412
+msgid ""
+"Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For "
+"each set of (x, y) coordinates\n"
+"entered here, a pair of drills will be created:\n"
+"\n"
+"- one drill at the coordinates from the field\n"
+"- one drill in mirror position over the axis selected above in the 'Align "
+"Axis'."
+msgstr ""
+"Furos de alinhamento (x1, y1), (x2, y2), ... em um lado do eixo do espelho. "
+"Para cada conjunto de coordenadas (x, y)\n"
+"indicado aqui, um par de furos será criado:\n"
+"\n"
+"- uma furo nas coordenadas do campo\n"
+"- uma furo na posição espelhada sobre o eixo selecionado acima no 'Alinhar "
+"eixo'."
+
+#: AppTools/ToolDblSided.py:420
+msgid "Drill coordinates"
+msgstr "Coordenadas dos furos"
+
+#: AppTools/ToolDblSided.py:427
+msgid ""
+"Add alignment drill holes coordinates in the format: (x1, y1), (x2, "
+"y2), ... \n"
+"on one side of the alignment axis.\n"
+"\n"
+"The coordinates set can be obtained:\n"
+"- press SHIFT key and left mouse clicking on canvas. Then click Add.\n"
+"- press SHIFT key and left mouse clicking on canvas. Then Ctrl+V in the "
+"field.\n"
+"- press SHIFT key and left mouse clicking on canvas. Then RMB click in the "
+"field and click Paste.\n"
+"- by entering the coords manually in the format: (x1, y1), (x2, y2), ..."
+msgstr ""
+"Adicione as coordenadas dos furos de alinhamento no formato (x1, y1), (x2, "
+"y2), ...\n"
+"em um lado do eixo do espelho.\n"
+"\n"
+"O conjunto de coordenadas pode ser obtido:\n"
+"- tecla SHIFT e clique com o botão esquerdo do mouse na tela. Em seguida, "
+"clicar em Adicionar.\n"
+"- tecla SHIFT e clique com o botão esquerdo do mouse na tela. Então CTRL + V "
+"no campo.\n"
+"- tecla SHIFT e clique com o botão esquerdo do mouse na tela. Em seguida, "
+"clicar no campo e em Colar.\n"
+"- inserindo as coordenadas manualmente no formato: (x1, y1), (x2, y2), ..."
+
+#: AppTools/ToolDblSided.py:442
+msgid "Delete Last"
+msgstr "Excluir Último"
+
+#: AppTools/ToolDblSided.py:444
+msgid "Delete the last coordinates tuple in the list."
+msgstr "Exclua a última dupla de coordenadas da lista."
+
+#: AppTools/ToolDblSided.py:454
+msgid "Create Excellon Object"
+msgstr "Criar Objeto Excellon"
+
+#: AppTools/ToolDblSided.py:541
+msgid "2-Sided Tool"
+msgstr "PCB 2 Faces"
+
+#: AppTools/ToolDblSided.py:581
+msgid ""
+"'Point' reference is selected and 'Point' coordinates are missing. Add them "
+"and retry."
+msgstr ""
+"A referência 'Ponto' está selecionada e as coordenadas do 'Ponto' estão "
+"faltando. Adicione-as e tente novamente."
+
+#: AppTools/ToolDblSided.py:600
+msgid "There is no Box reference object loaded. Load one and retry."
+msgstr ""
+"Não há objeto Caixa de referência carregado. Carregue um e tente novamente."
+
+#: AppTools/ToolDblSided.py:612
+msgid "No value or wrong format in Drill Dia entry. Add it and retry."
+msgstr ""
+"Nenhum valor ou formato incorreto para o Diâmetro do Furo. Altere e tente "
+"novamente."
+
+#: AppTools/ToolDblSided.py:623
+msgid "There are no Alignment Drill Coordinates to use. Add them and retry."
+msgstr ""
+"Não há Coordenadas para usar no Furo de Alinhamento. Adicione-as e tente "
+"novamente."
+
+#: AppTools/ToolDblSided.py:648
+msgid "Excellon object with alignment drills created..."
+msgstr "Objeto Excellon com furos de alinhamento criado ..."
+
+#: AppTools/ToolDblSided.py:661 AppTools/ToolDblSided.py:704
+#: AppTools/ToolDblSided.py:748
+msgid "Only Gerber, Excellon and Geometry objects can be mirrored."
+msgstr "Apenas objetos Gerber, Excellon e Geometria podem ser espelhados."
+
+#: AppTools/ToolDblSided.py:671 AppTools/ToolDblSided.py:715
+msgid ""
+"There are no Point coordinates in the Point field. Add coords and try "
+"again ..."
+msgstr ""
+"Faltando as Coordenadas do 'Ponto'. Adicione as coordenadas e tente "
+"novamente ..."
+
+#: AppTools/ToolDblSided.py:681 AppTools/ToolDblSided.py:725
+#: AppTools/ToolDblSided.py:762
+msgid "There is no Box object loaded ..."
+msgstr "Não há objeto Caixa carregado ..."
+
+#: AppTools/ToolDblSided.py:691 AppTools/ToolDblSided.py:735
+#: AppTools/ToolDblSided.py:772
+msgid "was mirrored"
+msgstr "foi espelhado"
+
+#: AppTools/ToolDblSided.py:700 AppTools/ToolPunchGerber.py:533
+msgid "There is no Excellon object loaded ..."
+msgstr "Não há objeto Excellon carregado ..."
+
+#: AppTools/ToolDblSided.py:744
+msgid "There is no Geometry object loaded ..."
+msgstr "Não há objeto Geometria carregado ..."
+
+#: AppTools/ToolDblSided.py:818 App_Main.py:4322 App_Main.py:4477
+msgid "Failed. No object(s) selected..."
+msgstr "Falha. Nenhum objeto selecionado..."
+
+#: AppTools/ToolDistance.py:57 AppTools/ToolDistanceMin.py:50
+msgid "Those are the units in which the distance is measured."
+msgstr "Unidade em que a distância é medida."
+
+#: AppTools/ToolDistance.py:58 AppTools/ToolDistanceMin.py:51
+msgid "METRIC (mm)"
+msgstr "Métrico (mm):"
+
+#: AppTools/ToolDistance.py:58 AppTools/ToolDistanceMin.py:51
+msgid "INCH (in)"
+msgstr "Inglês (in)"
+
+#: AppTools/ToolDistance.py:64
+msgid "Snap to center"
+msgstr "Alinhar ao centro"
+
+#: AppTools/ToolDistance.py:66
+msgid ""
+"Mouse cursor will snap to the center of the pad/drill\n"
+"when it is hovering over the geometry of the pad/drill."
+msgstr ""
+"O cursor do mouse se encaixará no centro do pad/furo\n"
+"quando está pairando sobre a geometria do pad/furo."
+
+#: AppTools/ToolDistance.py:76
+msgid "Start Coords"
+msgstr "Coords Iniciais"
+
+#: AppTools/ToolDistance.py:77 AppTools/ToolDistance.py:82
+msgid "This is measuring Start point coordinates."
+msgstr "Coordenadas do ponto inicial da medição."
+
+#: AppTools/ToolDistance.py:87
+msgid "Stop Coords"
+msgstr "Coords Finais"
+
+#: AppTools/ToolDistance.py:88 AppTools/ToolDistance.py:93
+msgid "This is the measuring Stop point coordinates."
+msgstr "Coordenadas do ponto final da medição."
+
+#: AppTools/ToolDistance.py:98 AppTools/ToolDistanceMin.py:62
+msgid "Dx"
+msgstr "Dx"
+
+#: AppTools/ToolDistance.py:99 AppTools/ToolDistance.py:104
+#: AppTools/ToolDistanceMin.py:63 AppTools/ToolDistanceMin.py:92
+msgid "This is the distance measured over the X axis."
+msgstr "Distância medida no eixo X."
+
+#: AppTools/ToolDistance.py:109 AppTools/ToolDistanceMin.py:65
+msgid "Dy"
+msgstr "Dy"
+
+#: AppTools/ToolDistance.py:110 AppTools/ToolDistance.py:115
+#: AppTools/ToolDistanceMin.py:66 AppTools/ToolDistanceMin.py:97
+msgid "This is the distance measured over the Y axis."
+msgstr "Distância medida no eixo Y."
+
+#: AppTools/ToolDistance.py:121 AppTools/ToolDistance.py:126
+#: AppTools/ToolDistanceMin.py:69 AppTools/ToolDistanceMin.py:102
+msgid "This is orientation angle of the measuring line."
+msgstr "Ângulo de orientação da linha de medição."
+
+#: AppTools/ToolDistance.py:131 AppTools/ToolDistanceMin.py:71
+msgid "DISTANCE"
+msgstr "DISTÂNCIA"
+
+#: AppTools/ToolDistance.py:132 AppTools/ToolDistance.py:137
+msgid "This is the point to point Euclidian distance."
+msgstr "Este é o ponto a apontar a distância euclidiana."
+
+#: AppTools/ToolDistance.py:142 AppTools/ToolDistance.py:339
+#: AppTools/ToolDistanceMin.py:114
+msgid "Measure"
+msgstr "Medir"
+
+#: AppTools/ToolDistance.py:274
+msgid "Working"
+msgstr "Trabalhando"
+
+#: AppTools/ToolDistance.py:279
+msgid "MEASURING: Click on the Start point ..."
+msgstr "MEDIÇÃO: Clique no ponto Inicial ..."
+
+#: AppTools/ToolDistance.py:389
+msgid "Distance Tool finished."
+msgstr "Ferramenta de distância concluída."
+
+#: AppTools/ToolDistance.py:461
+msgid "Pads overlapped. Aborting."
+msgstr "Pads sobrepostos. Abortando."
+
+#: AppTools/ToolDistance.py:489
+#, fuzzy
+#| msgid "Distance Tool finished."
+msgid "Distance Tool cancelled."
+msgstr "Ferramenta de distância concluída."
+
+#: AppTools/ToolDistance.py:494
+msgid "MEASURING: Click on the Destination point ..."
+msgstr "MEDIÇÃO: Clique no ponto Final ..."
+
+#: AppTools/ToolDistance.py:503 AppTools/ToolDistanceMin.py:284
+msgid "MEASURING"
+msgstr "MEDINDO"
+
+#: AppTools/ToolDistance.py:504 AppTools/ToolDistanceMin.py:285
+msgid "Result"
+msgstr "Resultado"
+
+#: AppTools/ToolDistanceMin.py:31 AppTools/ToolDistanceMin.py:143
+msgid "Minimum Distance Tool"
+msgstr "Ferramenta Distância Mínima"
+
+#: AppTools/ToolDistanceMin.py:54
+msgid "First object point"
+msgstr "Ponto inicial"
+
+#: AppTools/ToolDistanceMin.py:55 AppTools/ToolDistanceMin.py:80
+msgid ""
+"This is first object point coordinates.\n"
+"This is the start point for measuring distance."
+msgstr ""
+"Coordenadas do ponto inicial.\n"
+"Este é o ponto inicial para a medição de distância."
+
+#: AppTools/ToolDistanceMin.py:58
+msgid "Second object point"
+msgstr "Ponto final"
+
+#: AppTools/ToolDistanceMin.py:59 AppTools/ToolDistanceMin.py:86
+msgid ""
+"This is second object point coordinates.\n"
+"This is the end point for measuring distance."
+msgstr ""
+"Coordenadas do ponto final.\n"
+"Este é o ponto final para a medição de distância."
+
+#: AppTools/ToolDistanceMin.py:72 AppTools/ToolDistanceMin.py:107
+msgid "This is the point to point Euclidean distance."
+msgstr "Este é o ponto a apontar a distância euclidiana."
+
+#: AppTools/ToolDistanceMin.py:74
+msgid "Half Point"
+msgstr "Ponto Médio"
+
+#: AppTools/ToolDistanceMin.py:75 AppTools/ToolDistanceMin.py:112
+msgid "This is the middle point of the point to point Euclidean distance."
+msgstr "Este é o ponto médio da distância euclidiana."
+
+#: AppTools/ToolDistanceMin.py:117
+msgid "Jump to Half Point"
+msgstr "Ir para o Ponto Médio"
+
+#: AppTools/ToolDistanceMin.py:154
+msgid ""
+"Select two objects and no more, to measure the distance between them ..."
+msgstr ""
+"Selecione dois objetos (apenas dois) para medir a distância entre eles..."
+
+#: AppTools/ToolDistanceMin.py:195 AppTools/ToolDistanceMin.py:216
+#: AppTools/ToolDistanceMin.py:225 AppTools/ToolDistanceMin.py:246
+msgid "Select two objects and no more. Currently the selection has objects: "
+msgstr "Selecione dois objetos (apenas dois). A seleção atual tem objetos: "
+
+#: AppTools/ToolDistanceMin.py:293
+msgid "Objects intersects or touch at"
+msgstr "Os objetos se cruzam ou tocam em"
+
+#: AppTools/ToolDistanceMin.py:299
+msgid "Jumped to the half point between the two selected objects"
+msgstr "Pulou para o ponto médio entre os dois objetos selecionados"
+
+#: AppTools/ToolEtchCompensation.py:74 AppTools/ToolInvertGerber.py:74
+msgid "Gerber object that will be inverted."
+msgstr "Objeto Gerber que será invertido."
+
+#: AppTools/ToolEtchCompensation.py:83 AppTools/ToolInvertGerber.py:83
+msgid "Parameters for this tool"
+msgstr "Parâmetros usados para esta ferramenta"
+
+#: AppTools/ToolEtchCompensation.py:88
+#, fuzzy
+#| msgid "Thickness"
+msgid "Copper Thickness"
+msgstr "Espessura"
+
+#: AppTools/ToolEtchCompensation.py:90
+#, fuzzy
+#| msgid ""
+#| "How thick the copper growth is intended to be.\n"
+#| "In microns."
+msgid ""
+"The thickness of the copper foil.\n"
+"In microns [um]."
+msgstr "Espessura da camada de cobre, em microns."
+
+#: AppTools/ToolEtchCompensation.py:101
+#, fuzzy
+#| msgid "Location"
+msgid "Ratio"
+msgstr "Localização"
+
+#: AppTools/ToolEtchCompensation.py:103
+msgid ""
+"The ratio of lateral etch versus depth etch.\n"
+"Can be:\n"
+"- custom -> the user will enter a custom value\n"
+"- preselection -> value which depends on a selection of etchants"
+msgstr ""
+
+#: AppTools/ToolEtchCompensation.py:109
+#, fuzzy
+#| msgid "Selection"
+msgid "PreSelection"
+msgstr "Seleção"
+
+#: AppTools/ToolEtchCompensation.py:121
+msgid "Compensate"
+msgstr ""
+
+#: AppTools/ToolEtchCompensation.py:123
+msgid ""
+"Will increase the copper features thickness to compensate the lateral etch."
+msgstr ""
+
+#: AppTools/ToolEtchCompensation.py:181 AppTools/ToolInvertGerber.py:184
+msgid "Invert Tool"
+msgstr "Ferramenta Inverter"
+
+#: AppTools/ToolExtractDrills.py:29 AppTools/ToolExtractDrills.py:295
+msgid "Extract Drills"
+msgstr "Extrair Furos"
+
+#: AppTools/ToolExtractDrills.py:62
+msgid "Gerber from which to extract drill holes"
+msgstr "Objeto para extrair furos."
+
+#: AppTools/ToolExtractDrills.py:297
+msgid "Extract drills from a given Gerber file."
+msgstr "Extrai furos de um arquivo Gerber."
+
+#: AppTools/ToolExtractDrills.py:478 AppTools/ToolExtractDrills.py:563
+#: AppTools/ToolExtractDrills.py:648
+msgid "No drills extracted. Try different parameters."
+msgstr "Nenhum furo extraído. Tente parâmetros diferentes."
+
+#: AppTools/ToolFiducials.py:56
+msgid "Fiducials Coordinates"
+msgstr "Coordenadas dos Fiduciais"
+
+#: AppTools/ToolFiducials.py:58
+msgid ""
+"A table with the fiducial points coordinates,\n"
+"in the format (x, y)."
+msgstr ""
+"Uma tabela com as coordenadas dos pontos fiduciais,\n"
+"no formato (x, y)."
+
+#: AppTools/ToolFiducials.py:191
+msgid ""
+"- 'Auto' - automatic placement of fiducials in the corners of the bounding "
+"box.\n"
+" - 'Manual' - manual placement of fiducials."
+msgstr ""
+"- 'Auto' - colocação automática de fiduciais nos cantos da caixa "
+"delimitadora.\n"
+"- 'Manual' - colocação manual de fiduciais."
+
+#: AppTools/ToolFiducials.py:237
+msgid "Thickness of the line that makes the fiducial."
+msgstr ""
+
+#: AppTools/ToolFiducials.py:259
+msgid "Copper Gerber"
+msgstr "Gerber Cobre"
+
+#: AppTools/ToolFiducials.py:268
+msgid "Add Fiducial"
+msgstr "Adicionar Fiducial"
+
+#: AppTools/ToolFiducials.py:270
+msgid "Will add a polygon on the copper layer to serve as fiducial."
+msgstr "Adicionará um polígono na camada de cobre para servir como fiducial."
+
+#: AppTools/ToolFiducials.py:286
+msgid "Soldermask Gerber"
+msgstr "Gerber Máscara de Solda"
+
+#: AppTools/ToolFiducials.py:288
+msgid "The Soldermask Gerber object."
+msgstr "Objeto Gerber de Máscara de Solda."
+
+#: AppTools/ToolFiducials.py:300
+msgid "Add Soldermask Opening"
+msgstr "Adicionar Máscara de Solda"
+
+#: AppTools/ToolFiducials.py:302
+msgid ""
+"Will add a polygon on the soldermask layer\n"
+"to serve as fiducial opening.\n"
+"The diameter is always double of the diameter\n"
+"for the copper fiducial."
+msgstr ""
+"Adicionará um polígono na camada de máscara de solda\n"
+"para servir como abertura fiducial.\n"
+"O diâmetro é sempre o dobro do diâmetro\n"
+"para o fiducial de cobre."
+
+#: AppTools/ToolFiducials.py:517
+msgid "Click to add first Fiducial. Bottom Left..."
+msgstr "Clique para adicionar o primeiro Fiducial. Inferior Esquerdo..."
+
+#: AppTools/ToolFiducials.py:781
+msgid "Click to add the last fiducial. Top Right..."
+msgstr "Clique para adicionar o último fiducial. Superior Direito..."
+
+#: AppTools/ToolFiducials.py:786
+msgid "Click to add the second fiducial. Top Left or Bottom Right..."
+msgstr ""
+"Clique para adicionar o segundo fiducial. Superior Esquerdo ou Inferior "
+"Direito..."
+
+#: AppTools/ToolFiducials.py:789 AppTools/ToolFiducials.py:798
+msgid "Done. All fiducials have been added."
+msgstr "Feito. Todos os fiduciais foram adicionados."
+
+#: AppTools/ToolFiducials.py:875
+msgid "Fiducials Tool exit."
+msgstr "Sair da ferramenta de fiduciais."
+
+#: AppTools/ToolFilm.py:42
+msgid "Film PCB"
+msgstr "Filme PCB"
+
+#: AppTools/ToolFilm.py:73
+msgid ""
+"Specify the type of object for which to create the film.\n"
+"The object can be of type: Gerber or Geometry.\n"
+"The selection here decide the type of objects that will be\n"
+"in the Film Object combobox."
+msgstr ""
+"Especifique o tipo de objeto para o qual criar o filme.\n"
+"O objeto pode ser do tipo: Gerber ou Geometria.\n"
+"A seleção aqui decide o tipo de objetos que estará\n"
+"na caixa de combinação Objeto de Filme."
+
+#: AppTools/ToolFilm.py:96
+msgid ""
+"Specify the type of object to be used as an container for\n"
+"film creation. It can be: Gerber or Geometry type.The selection here decide "
+"the type of objects that will be\n"
+"in the Box Object combobox."
+msgstr ""
+"Especifique o tipo de objeto a ser usado como um contêiner para a criação "
+"de\n"
+"filme. Pode ser: tipo Gerber ou Geometria. A seleção aqui decide o tipo de "
+"objetos que estará\n"
+"na caixa de combinação Objeto Caixa."
+
+#: AppTools/ToolFilm.py:256
+msgid "Film Parameters"
+msgstr "Parâmetros de Filme"
+
+#: AppTools/ToolFilm.py:317
+msgid "Punch drill holes"
+msgstr "Furar manualmente"
+
+#: AppTools/ToolFilm.py:318
+msgid ""
+"When checked the generated film will have holes in pads when\n"
+"the generated film is positive. This is done to help drilling,\n"
+"when done manually."
+msgstr ""
+"Quando marcado, o filme gerado terá furos nos pads quando\n"
+"o filme gerado é positivo. Isso é feito para ajudar na perfuração,\n"
+"quando feito manualmente."
+
+#: AppTools/ToolFilm.py:336
+msgid "Source"
+msgstr "Fonte"
+
+#: AppTools/ToolFilm.py:338
+msgid ""
+"The punch hole source can be:\n"
+"- Excellon -> an Excellon holes center will serve as reference.\n"
+"- Pad Center -> will try to use the pads center as reference."
+msgstr ""
+"A fonte do furo pode ser:\n"
+"- Excellon -> o centro de um furo Excellon servirá como referência.\n"
+"- Centro de Pad -> tentará usar o centro de pads como referência."
+
+#: AppTools/ToolFilm.py:343
+msgid "Pad center"
+msgstr "Centro de Pad"
+
+#: AppTools/ToolFilm.py:348
+msgid "Excellon Obj"
+msgstr "Objeto Excellon"
+
+#: AppTools/ToolFilm.py:350
+msgid ""
+"Remove the geometry of Excellon from the Film to create the holes in pads."
+msgstr "Remove a geometria do Excellon do filme para criar os furos nos pads."
+
+#: AppTools/ToolFilm.py:364
+msgid "Punch Size"
+msgstr "Tamanho do Perfurador"
+
+#: AppTools/ToolFilm.py:365
+msgid "The value here will control how big is the punch hole in the pads."
+msgstr "Valor para controlar o tamanho dos furos dos pads."
+
+#: AppTools/ToolFilm.py:485
+msgid "Save Film"
+msgstr "Salvar Filme"
+
+#: AppTools/ToolFilm.py:487
+msgid ""
+"Create a Film for the selected object, within\n"
+"the specified box. Does not create a new \n"
+" FlatCAM object, but directly save it in the\n"
+"selected format."
+msgstr ""
+"Cria um filme para o objeto selecionado, dentro da caixa\n"
+"especificada. Não cria um novo objeto\n"
+"FlatCAM, mas salva-o diretamente no formato selecionado."
+
+#: AppTools/ToolFilm.py:649
+msgid ""
+"Using the Pad center does not work on Geometry objects. Only a Gerber object "
+"has pads."
+msgstr ""
+"O uso de Centro de Pad não funciona em objetos Geometria. Somente um objeto "
+"Gerber possui pads."
+
+#: AppTools/ToolFilm.py:659
+msgid "No FlatCAM object selected. Load an object for Film and retry."
+msgstr ""
+"Nenhum objeto FlatCAM selecionado. Carregue um objeto para Filme e tente "
+"novamente."
+
+#: AppTools/ToolFilm.py:666
+msgid "No FlatCAM object selected. Load an object for Box and retry."
+msgstr ""
+"Nenhum objeto FlatCAM selecionado. Carregue um objeto para Caixa e tente "
+"novamente."
+
+#: AppTools/ToolFilm.py:670
+msgid "No FlatCAM object selected."
+msgstr "Nenhum objeto FlatCAM selecionado."
+
+#: AppTools/ToolFilm.py:681
+msgid "Generating Film ..."
+msgstr "Gerando Filme ..."
+
+#: AppTools/ToolFilm.py:730 AppTools/ToolFilm.py:734
+msgid "Export positive film"
+msgstr "Exportar filme positivo"
+
+#: AppTools/ToolFilm.py:767
+msgid ""
+"No Excellon object selected. Load an object for punching reference and retry."
+msgstr ""
+"Nenhum objeto Excellon selecionado. Carregue um objeto para referência de "
+"perfuração manual e tente novamente."
+
+#: AppTools/ToolFilm.py:791
+msgid ""
+" Could not generate punched hole film because the punch hole sizeis bigger "
+"than some of the apertures in the Gerber object."
+msgstr ""
+" Não foi possível gerar o filme de furos manuais porque o tamanho do "
+"perfurador é maior que algumas das aberturas no objeto Gerber."
+
+#: AppTools/ToolFilm.py:803
+msgid ""
+"Could not generate punched hole film because the punch hole sizeis bigger "
+"than some of the apertures in the Gerber object."
+msgstr ""
+"Não foi possível gerar o filme de furos manuais porque o tamanho do "
+"perfurador é maior que algumas das aberturas no objeto Gerber."
+
+#: AppTools/ToolFilm.py:821
+msgid ""
+"Could not generate punched hole film because the newly created object "
+"geometry is the same as the one in the source object geometry..."
+msgstr ""
+"Não foi possível gerar o filme de furos manuais porque a geometria do objeto "
+"recém-criada é a mesma da geometria do objeto de origem ..."
+
+#: AppTools/ToolFilm.py:876 AppTools/ToolFilm.py:880
+msgid "Export negative film"
+msgstr "Exportar filme negativo"
+
+#: AppTools/ToolFilm.py:941 AppTools/ToolFilm.py:1124
+#: AppTools/ToolPanelize.py:441
+msgid "No object Box. Using instead"
+msgstr "Nenhuma caixa de objeto. Usando"
+
+#: AppTools/ToolFilm.py:1057 AppTools/ToolFilm.py:1237
+msgid "Film file exported to"
+msgstr "Arquivo filme exportado para"
+
+#: AppTools/ToolFilm.py:1060 AppTools/ToolFilm.py:1240
+msgid "Generating Film ... Please wait."
+msgstr "Gerando Filme ... Por favor, aguarde."
+
+#: AppTools/ToolImage.py:24
+msgid "Image as Object"
+msgstr "Imagem como Objeto"
+
+#: AppTools/ToolImage.py:33
+msgid "Image to PCB"
+msgstr "Imagem para PCB"
+
+#: AppTools/ToolImage.py:56
+msgid ""
+"Specify the type of object to create from the image.\n"
+"It can be of type: Gerber or Geometry."
+msgstr ""
+"Especifique o tipo de objeto a ser criado a partir da imagem.\n"
+"Pode ser do tipo: Gerber ou Geometria."
+
+#: AppTools/ToolImage.py:65
+msgid "DPI value"
+msgstr "Valor de DPI"
+
+#: AppTools/ToolImage.py:66
+msgid "Specify a DPI value for the image."
+msgstr "Especifique um valor de DPI (pontos por polegada) para a imagem."
+
+#: AppTools/ToolImage.py:72
+msgid "Level of detail"
+msgstr "Nível de detalhe"
+
+#: AppTools/ToolImage.py:81
+msgid "Image type"
+msgstr "Tipo de imagem"
+
+#: AppTools/ToolImage.py:83
+msgid ""
+"Choose a method for the image interpretation.\n"
+"B/W means a black & white image. Color means a colored image."
+msgstr ""
+"Escolha um método para a interpretação da imagem.\n"
+"P/B significa uma imagem em preto e branco. Cor significa uma imagem "
+"colorida."
+
+#: AppTools/ToolImage.py:92 AppTools/ToolImage.py:107 AppTools/ToolImage.py:120
+#: AppTools/ToolImage.py:133
+msgid "Mask value"
+msgstr "Valor da máscara"
+
+#: AppTools/ToolImage.py:94
+msgid ""
+"Mask for monochrome image.\n"
+"Takes values between [0 ... 255].\n"
+"Decides the level of details to include\n"
+"in the resulting geometry.\n"
+"0 means no detail and 255 means everything \n"
+"(which is totally black)."
+msgstr ""
+"Máscara para imagem monocromática.\n"
+"Valores entre [0 ... 255].\n"
+"Define o nível de detalhes para incluir\n"
+"na geometria resultante.\n"
+"0 significa nenhum detalhe e 255 significa tudo\n"
+"(que é totalmente preto)."
+
+#: AppTools/ToolImage.py:109
+msgid ""
+"Mask for RED color.\n"
+"Takes values between [0 ... 255].\n"
+"Decides the level of details to include\n"
+"in the resulting geometry."
+msgstr ""
+"Máscara para a cor VERMELHA.\n"
+"Valores entre [0 ... 255].\n"
+"Define o nível de detalhes para incluir\n"
+"na geometria resultante."
+
+#: AppTools/ToolImage.py:122
+msgid ""
+"Mask for GREEN color.\n"
+"Takes values between [0 ... 255].\n"
+"Decides the level of details to include\n"
+"in the resulting geometry."
+msgstr ""
+"Máscara para a cor VERDE.\n"
+"Valores entre [0 ... 255].\n"
+"Define o nível de detalhes para incluir\n"
+"na geometria resultante."
+
+#: AppTools/ToolImage.py:135
+msgid ""
+"Mask for BLUE color.\n"
+"Takes values between [0 ... 255].\n"
+"Decides the level of details to include\n"
+"in the resulting geometry."
+msgstr ""
+"Máscara para a cor AZUL.\n"
+"Valores entre [0 ... 255].\n"
+"Define o nível de detalhes para incluir\n"
+"na geometria resultante."
+
+#: AppTools/ToolImage.py:143
+msgid "Import image"
+msgstr "Importar imagem"
+
+#: AppTools/ToolImage.py:145
+msgid "Open a image of raster type and then import it in FlatCAM."
+msgstr "Abre uma imagem do tipo raster e importe-a no FlatCAM."
+
+#: AppTools/ToolImage.py:182
+msgid "Image Tool"
+msgstr "Ferramenta de Imagem"
+
+#: AppTools/ToolImage.py:234 AppTools/ToolImage.py:237
+msgid "Import IMAGE"
+msgstr "Importar IMAGEM"
+
+#: AppTools/ToolImage.py:277 App_Main.py:8264 App_Main.py:8311
+msgid ""
+"Not supported type is picked as parameter. Only Geometry and Gerber are "
+"supported"
+msgstr ""
+"O tipo escolhido não é suportado como parâmetro. Apenas Geometria e Gerber "
+"são suportados"
+
+#: AppTools/ToolImage.py:285
+msgid "Importing Image"
+msgstr "Importando Imagem"
+
+#: AppTools/ToolImage.py:297 AppTools/ToolPDF.py:154 App_Main.py:8289
+#: App_Main.py:8335 App_Main.py:8399 App_Main.py:8466 App_Main.py:8532
+#: App_Main.py:8597 App_Main.py:8654
+msgid "Opened"
+msgstr "Aberto"
+
+#: AppTools/ToolInvertGerber.py:123
+msgid "Invert Gerber"
+msgstr "Inverter Gerber"
+
+#: AppTools/ToolInvertGerber.py:125
+msgid ""
+"Will invert the Gerber object: areas that have copper\n"
+"will be empty of copper and previous empty area will be\n"
+"filled with copper."
+msgstr ""
+"Inverter o objeto Gerber: áreas que possuem cobre\n"
+"ficarão vazias de cobre e a área vazia anterior será\n"
+"preenchida com cobre."
+
+#: AppTools/ToolMove.py:102
+msgid "MOVE: Click on the Start point ..."
+msgstr "MOVER: Clique no ponto inicial ..."
+
+#: AppTools/ToolMove.py:113
+msgid "Cancelled. No object(s) to move."
+msgstr "Cancelado. Nenhum objeto para mover."
+
+#: AppTools/ToolMove.py:140
+msgid "MOVE: Click on the Destination point ..."
+msgstr "MOVER: Clique no ponto de destino ..."
+
+#: AppTools/ToolMove.py:163
+msgid "Moving..."
+msgstr "Movendo ..."
+
+#: AppTools/ToolMove.py:166
+msgid "No object(s) selected."
+msgstr "Nenhum objeto selecionado."
+
+#: AppTools/ToolMove.py:221
+msgid "Error when mouse left click."
+msgstr "Erro ao clicar no botão esquerdo do mouse."
+
+#: AppTools/ToolNCC.py:42
+msgid "Non-Copper Clearing"
+msgstr "Área Sem Cobre (NCC)"
+
+#: AppTools/ToolNCC.py:88
+msgid ""
+"Specify the type of object to be cleared of excess copper.\n"
+"It can be of type: Gerber or Geometry.\n"
+"What is selected here will dictate the kind\n"
+"of objects that will populate the 'Object' combobox."
+msgstr ""
+"Especifique o tipo de objeto a ser limpo do excesso de cobre.\n"
+"Pode ser do tipo: Gerber ou Geometria.\n"
+"O tipo selecionado aqui ditará o tipo\n"
+"de objetos da caixa de combinação 'Objeto'."
+
+#: AppTools/ToolNCC.py:110
+msgid "Object to be cleared of excess copper."
+msgstr "Objeto a retirar o excesso de cobre."
+
+#: AppTools/ToolNCC.py:122
+msgid ""
+"Tools pool from which the algorithm\n"
+"will pick the ones used for copper clearing."
+msgstr ""
+"Conjunto de ferramentas do qual o algoritmo\n"
+"escolherá para usar na retirada de cobre."
+
+#: AppTools/ToolNCC.py:138
+msgid ""
+"This is the Tool Number.\n"
+"Non copper clearing will start with the tool with the biggest \n"
+"diameter, continuing until there are no more tools.\n"
+"Only tools that create NCC clearing geometry will still be present\n"
+"in the resulting geometry. This is because with some tools\n"
+"this function will not be able to create painting geometry."
+msgstr ""
+"Este é o Número da Ferramenta.\n"
+"A retirada de cobre (NCC) começará com a ferramenta de maior diâmetro,\n"
+"continuando até que não haja mais ferramentas. Somente ferramentas\n"
+"que criam a geometria de NCC estarão presentes na geometria\n"
+"resultante. Isso ocorre porque com algumas ferramentas esta função\n"
+"não será capaz de criar geometria de pintura."
+
+#: AppTools/ToolNCC.py:146
+msgid ""
+"Tool Diameter. It's value (in current FlatCAM units)\n"
+"is the cut width into the material."
+msgstr ""
+"Diâmetro da ferramenta. É a largura do corte no material.\n"
+"(nas unidades atuais do FlatCAM)"
+
+#: AppTools/ToolNCC.py:150
+msgid ""
+"The Tool Type (TT) can be:\n"
+"- Circular with 1 ... 4 teeth -> it is informative only. Being circular,\n"
+"the cut width in material is exactly the tool diameter.\n"
+"- Ball -> informative only and make reference to the Ball type endmill.\n"
+"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI "
+"form\n"
+"and enable two additional UI form fields in the resulting geometry: V-Tip "
+"Dia and\n"
+"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter "
+"such\n"
+"as the cut width into material will be equal with the value in the Tool "
+"Diameter\n"
+"column of this table.\n"
+"Choosing the 'V-Shape' Tool Type automatically will select the Operation "
+"Type\n"
+"in the resulting geometry as Isolation."
+msgstr ""
+"O Tipo de Ferramenta (TF) pode ser:\n"
+"- Circular com 1 ... 4 dentes -> é apenas informativo. Como é circular,\n"
+"a largura do corte é igual ao diâmetro da ferramenta.\n"
+"- Bola -> apenas informativo e faz referência a uma fresa do tipo bola.\n"
+"- Forma em V -> o parâmetro corte Z será desativado no formulário e serão "
+"habilitados\n"
+"dois campos adicionais: Diâmetro da Ponta-V e Ângulo da Ponta-V.\n"
+"Ajustando esses dois parâmetros irá alterar o parâmetro Corte Z como a "
+"largura de corte\n"
+"no material, será igual ao valor na coluna Diâmetro da Ferramenta desta "
+"tabela.\n"
+"Escolhendo o tipo \"Forma em V\" automaticamente selecionará o Tipo de "
+"Operação Isolação."
+
+#: AppTools/ToolNCC.py:296 AppTools/ToolPaint.py:278
+msgid ""
+"Add a new tool to the Tool Table\n"
+"with the diameter specified above."
+msgstr ""
+"Adicione uma nova ferramenta à Tabela de Ferramentas\n"
+"com o diâmetro especificado."
+
+#: AppTools/ToolNCC.py:318 AppTools/ToolPaint.py:300
+#: AppTools/ToolSolderPaste.py:130
+msgid ""
+"Delete a selection of tools in the Tool Table\n"
+"by first selecting a row(s) in the Tool Table."
+msgstr ""
+"Apague uma seleção de ferramentas na Tabela de Ferramentas selecionando "
+"primeiro a(s) linha(s) na Tabela de Ferramentas."
+
+#: AppTools/ToolNCC.py:554
+msgid ""
+"The type of FlatCAM object to be used as non copper clearing reference.\n"
+"It can be Gerber, Excellon or Geometry."
+msgstr ""
+"O tipo de objeto FlatCAM a ser usado como referência para retirada de "
+"cobre.\n"
+"Pode ser Gerber, Excellon ou Geometria."
+
+#: AppTools/ToolNCC.py:597 AppTools/ToolPaint.py:536
+msgid "Generate Geometry"
+msgstr "Gerar Geometria"
+
+#: AppTools/ToolNCC.py:932 AppTools/ToolNCC.py:1431 AppTools/ToolPaint.py:857
+#: AppTools/ToolSolderPaste.py:568 AppTools/ToolSolderPaste.py:893
+#: App_Main.py:4190
+msgid "Please enter a tool diameter with non-zero value, in Float format."
+msgstr ""
+"Insira um diâmetro de ferramenta com valor diferente de zero, no formato "
+"Flutuante."
+
+#: AppTools/ToolNCC.py:936 AppTools/ToolPaint.py:861
+#: AppTools/ToolSolderPaste.py:572 App_Main.py:4194
+msgid "Adding Tool cancelled"
+msgstr "Adicionar ferramenta cancelada"
+
+#: AppTools/ToolNCC.py:1425 AppTools/ToolPaint.py:1183
+#: AppTools/ToolSolderPaste.py:888
+msgid "Please enter a tool diameter to add, in Float format."
+msgstr "Insira um diâmetro de ferramenta para adicionar, no formato Flutuante."
+
+#: AppTools/ToolNCC.py:1456 AppTools/ToolNCC.py:4065 AppTools/ToolPaint.py:1207
+#: AppTools/ToolPaint.py:3608 AppTools/ToolSolderPaste.py:917
+msgid "Cancelled. Tool already in Tool Table."
+msgstr "Cancelada. Ferramenta já está na Tabela de Ferramentas."
+
+#: AppTools/ToolNCC.py:1463 AppTools/ToolNCC.py:4082 AppTools/ToolPaint.py:1212
+#: AppTools/ToolPaint.py:3625
+msgid "New tool added to Tool Table."
+msgstr "Nova ferramenta adicionada à Tabela de Ferramentas."
+
+#: AppTools/ToolNCC.py:1507 AppTools/ToolPaint.py:1256
+msgid "Tool from Tool Table was edited."
+msgstr "A ferramenta da Tabela de Ferramentas foi editada."
+
+#: AppTools/ToolNCC.py:1519 AppTools/ToolPaint.py:1268
+#: AppTools/ToolSolderPaste.py:978
+msgid "Cancelled. New diameter value is already in the Tool Table."
+msgstr "Cancelado. O novo valor de diâmetro já está na tabela de ferramentas."
+
+#: AppTools/ToolNCC.py:1571 AppTools/ToolPaint.py:1366
+msgid "Delete failed. Select a tool to delete."
+msgstr "Exclusão falhou. Selecione uma ferramenta para excluir."
+
+#: AppTools/ToolNCC.py:1577 AppTools/ToolPaint.py:1372
+msgid "Tool(s) deleted from Tool Table."
+msgstr "Ferramenta(s) excluída(s) da Tabela de Ferramentas."
+
+#: AppTools/ToolNCC.py:1620
+msgid "Wrong Tool Dia value format entered, use a number."
+msgstr "Valor errado para o diâmetro. Use um número."
+
+#: AppTools/ToolNCC.py:1629 AppTools/ToolPaint.py:1423
+msgid "No selected tools in Tool Table."
+msgstr "Nenhuma ferramenta selecionada na Tabela."
+
+#: AppTools/ToolNCC.py:1705 AppTools/ToolPaint.py:1599
+msgid "Click the end point of the paint area."
+msgstr "Clique no ponto final da área."
+
+#: AppTools/ToolNCC.py:1985 AppTools/ToolNCC.py:3010
+msgid "NCC Tool. Preparing non-copper polygons."
+msgstr "Ferramenta NCC. Preparando polígonos."
+
+#: AppTools/ToolNCC.py:2044 AppTools/ToolNCC.py:3138
+msgid "NCC Tool. Calculate 'empty' area."
+msgstr "Ferramenta NCC. Cálculo de áreas 'vazias'."
+
+#: AppTools/ToolNCC.py:2063 AppTools/ToolNCC.py:2172 AppTools/ToolNCC.py:2187
+#: AppTools/ToolNCC.py:3151 AppTools/ToolNCC.py:3256 AppTools/ToolNCC.py:3271
+#: AppTools/ToolNCC.py:3537 AppTools/ToolNCC.py:3638 AppTools/ToolNCC.py:3653
+msgid "Buffering finished"
+msgstr "Criar Buffer concluído"
+
+#: AppTools/ToolNCC.py:2071 AppTools/ToolNCC.py:2194 AppTools/ToolNCC.py:3159
+#: AppTools/ToolNCC.py:3278 AppTools/ToolNCC.py:3544 AppTools/ToolNCC.py:3660
+msgid "Could not get the extent of the area to be non copper cleared."
+msgstr "Não foi possível obter a extensão da área para retirada de cobre."
+
+#: AppTools/ToolNCC.py:2101 AppTools/ToolNCC.py:2180 AppTools/ToolNCC.py:3186
+#: AppTools/ToolNCC.py:3263 AppTools/ToolNCC.py:3564 AppTools/ToolNCC.py:3645
+msgid ""
+"Isolation geometry is broken. Margin is less than isolation tool diameter."
+msgstr ""
+"A geometria de isolação está quebrada. A margem é menor que o diâmetro da "
+"ferramenta de isolação."
+
+#: AppTools/ToolNCC.py:2197 AppTools/ToolNCC.py:3282 AppTools/ToolNCC.py:3663
+msgid "The selected object is not suitable for copper clearing."
+msgstr "O objeto selecionado não é adequado para retirada de cobre."
+
+#: AppTools/ToolNCC.py:2204 AppTools/ToolNCC.py:3289
+msgid "NCC Tool. Finished calculation of 'empty' area."
+msgstr "Ferramenta NCC. Cálculo de área 'vazia' concluído."
+
+#: AppTools/ToolNCC.py:2247
+#, fuzzy
+#| msgid "Painting polygon with method: lines."
+msgid "Clearing polygon with method: lines."
+msgstr "Pintando o polígono com método: linhas."
+
+#: AppTools/ToolNCC.py:2257
+#, fuzzy
+#| msgid "Failed. Painting polygon with method: seed."
+msgid "Failed. Clearing polygon with method: seed."
+msgstr "Falhou. Pintando o polígono com método: semente."
+
+#: AppTools/ToolNCC.py:2266
+#, fuzzy
+#| msgid "Failed. Painting polygon with method: standard."
+msgid "Failed. Clearing polygon with method: standard."
+msgstr "Falhou. Pintando o polígono com método: padrão."
+
+#: AppTools/ToolNCC.py:2280
+#, fuzzy
+#| msgid "Geometry could not be painted completely"
+msgid "Geometry could not be cleared completely"
+msgstr "A geometria não pode ser pintada completamente"
+
+#: AppTools/ToolNCC.py:2305 AppTools/ToolNCC.py:2307 AppTools/ToolNCC.py:2962
+#: AppTools/ToolNCC.py:2964
+msgid "Non-Copper clearing ..."
+msgstr "Retirando cobre da área..."
+
+#: AppTools/ToolNCC.py:2354 AppTools/ToolNCC.py:3106
+msgid ""
+"NCC Tool. Finished non-copper polygons. Normal copper clearing task started."
+msgstr ""
+"Ferramenta NCC. Polígonos concluídos. Tarefa de retirada de cobre iniciada."
+
+#: AppTools/ToolNCC.py:2390 AppTools/ToolNCC.py:2638
+msgid "NCC Tool failed creating bounding box."
+msgstr "A Ferramenta NCC falhou ao criar a caixa delimitadora."
+
+#: AppTools/ToolNCC.py:2405 AppTools/ToolNCC.py:2655 AppTools/ToolNCC.py:3302
+#: AppTools/ToolNCC.py:3688
+msgid "NCC Tool clearing with tool diameter"
+msgstr "NCC. Ferramenta com Diâmetro"
+
+#: AppTools/ToolNCC.py:2405 AppTools/ToolNCC.py:2655 AppTools/ToolNCC.py:3302
+#: AppTools/ToolNCC.py:3688
+msgid "started."
+msgstr "iniciada."
+
+#: AppTools/ToolNCC.py:2563 AppTools/ToolNCC.py:3463
+msgid ""
+"There is no NCC 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 ""
+"Não há geometria de retirada de cobre no arquivo.\n"
+"Geralmente significa que o diâmetro da ferramenta é muito grande para a "
+"geometria pintada.\n"
+"Altere os parâmetros de pintura e tente novamente."
+
+#: AppTools/ToolNCC.py:2572 AppTools/ToolNCC.py:3472
+msgid "NCC Tool clear all done."
+msgstr "Retirada de cobre concluída."
+
+#: AppTools/ToolNCC.py:2575 AppTools/ToolNCC.py:3475
+msgid "NCC Tool clear all done but the copper features isolation is broken for"
+msgstr "Retirada de cobre concluída, mas a isolação está quebrada por"
+
+#: AppTools/ToolNCC.py:2577 AppTools/ToolNCC.py:2863 AppTools/ToolNCC.py:3477
+#: AppTools/ToolNCC.py:3860
+msgid "tools"
+msgstr "ferramentas"
+
+#: AppTools/ToolNCC.py:2859 AppTools/ToolNCC.py:3856
+msgid "NCC Tool Rest Machining clear all done."
+msgstr "Retirada de cobre por usinagem de descanso concluída."
+
+#: AppTools/ToolNCC.py:2862 AppTools/ToolNCC.py:3859
+msgid ""
+"NCC Tool Rest Machining clear all done but the copper features isolation is "
+"broken for"
+msgstr ""
+"Retirada de cobre por usinagem de descanso concluída, mas a isolação está "
+"quebrada por"
+
+#: AppTools/ToolNCC.py:2974
+msgid "NCC Tool started. Reading parameters."
+msgstr "Ferramenta NCC iniciada. Lendo parâmetros."
+
+#: AppTools/ToolNCC.py:3958
+msgid ""
+"Try to use the Buffering Type = Full in Preferences -> Gerber General. "
+"Reload the Gerber file after this change."
+msgstr ""
+"Tente usar o Tipo de Buffer = Completo em Preferências -> Gerber Geral."
+"Recarregue o arquivo Gerber após esta alteração."
+
+#: AppTools/ToolNCC.py:4022 AppTools/ToolPaint.py:3565 App_Main.py:5251
+msgid "Tool from DB added in Tool Table."
+msgstr "Ferramenta do Banco de Dados adicionada na Tabela de Ferramentas."
+
+#: AppTools/ToolOptimal.py:79
+msgid "Number of decimals kept for found distances."
+msgstr "Número de casas decimais mantido para as distâncias encontradas."
+
+#: AppTools/ToolOptimal.py:87
+msgid "Minimum distance"
+msgstr "Distância mínima"
+
+#: AppTools/ToolOptimal.py:88
+msgid "Display minimum distance between copper features."
+msgstr "Mostra a distância mínima entre elementos de cobre."
+
+#: AppTools/ToolOptimal.py:92
+msgid "Determined"
+msgstr "Determinado"
+
+#: AppTools/ToolOptimal.py:106
+msgid "Occurring"
+msgstr "Ocorrendo"
+
+#: AppTools/ToolOptimal.py:107
+msgid "How many times this minimum is found."
+msgstr "Quantas vezes o mínimo foi encontrado."
+
+#: AppTools/ToolOptimal.py:113
+msgid "Minimum points coordinates"
+msgstr "Coordenadas da distância mínima"
+
+#: AppTools/ToolOptimal.py:114 AppTools/ToolOptimal.py:120
+msgid "Coordinates for points where minimum distance was found."
+msgstr "Coordenadas dos pontos onde a distância mínima foi encontrada."
+
+#: AppTools/ToolOptimal.py:133 AppTools/ToolOptimal.py:209
+msgid "Jump to selected position"
+msgstr "Ir para a posição selecionada"
+
+#: AppTools/ToolOptimal.py:135 AppTools/ToolOptimal.py:211
+msgid ""
+"Select a position in the Locations text box and then\n"
+"click this button."
+msgstr ""
+"Selecione uma posição na caixa de texto Locais e, em seguida,\n"
+"clique neste botão."
+
+#: AppTools/ToolOptimal.py:143
+msgid "Other distances"
+msgstr "Outras distâncias"
+
+#: AppTools/ToolOptimal.py:144
+msgid ""
+"Will display other distances in the Gerber file ordered from\n"
+"the minimum to the maximum, not including the absolute minimum."
+msgstr ""
+"Exibe outras distâncias no arquivo Gerber ordenadas do\n"
+"mínimo ao máximo, sem incluir o mínimo absoluto."
+
+#: AppTools/ToolOptimal.py:149
+msgid "Other distances points coordinates"
+msgstr "Coordenadas dos pontos das outras distâncias"
+
+#: AppTools/ToolOptimal.py:150 AppTools/ToolOptimal.py:164
+#: AppTools/ToolOptimal.py:171 AppTools/ToolOptimal.py:188
+#: AppTools/ToolOptimal.py:195
+msgid ""
+"Other distances and the coordinates for points\n"
+"where the distance was found."
+msgstr ""
+"Outras distâncias e coordenadas dos pontos\n"
+"onde a distância foi encontrada."
+
+#: AppTools/ToolOptimal.py:163
+msgid "Gerber distances"
+msgstr "Distâncias Gerber"
+
+#: AppTools/ToolOptimal.py:187
+msgid "Points coordinates"
+msgstr "Coordenadas dos pontos"
+
+#: AppTools/ToolOptimal.py:219
+msgid "Find Minimum"
+msgstr "Encontrar o Mínimo"
+
+#: AppTools/ToolOptimal.py:221
+msgid ""
+"Calculate the minimum distance between copper features,\n"
+"this will allow the determination of the right tool to\n"
+"use for isolation or copper clearing."
+msgstr ""
+"Calcula a distância mínima entre os recursos de cobre.\n"
+"Isso permite a determinação da ferramenta certa para\n"
+"usar na isolação ou remoção de cobre."
+
+#: AppTools/ToolOptimal.py:346
+msgid "Only Gerber objects can be evaluated."
+msgstr "Apenas objetos Gerber podem ser usados."
+
+#: AppTools/ToolOptimal.py:352
+msgid ""
+"Optimal Tool. Started to search for the minimum distance between copper "
+"features."
+msgstr ""
+"Ferramenta Ideal. Começou a procurar a distância mínima entre os recursos de "
+"cobre."
+
+#: AppTools/ToolOptimal.py:362
+msgid "Optimal Tool. Parsing geometry for aperture"
+msgstr "Ferramenta Ideal. Analisando a geometria para abertura"
+
+#: AppTools/ToolOptimal.py:373
+msgid "Optimal Tool. Creating a buffer for the object geometry."
+msgstr "Ferramenta Ideal. Criando um buffer para objeto geometria."
+
+#: AppTools/ToolOptimal.py:383
+msgid ""
+"The Gerber object has one Polygon as geometry.\n"
+"There are no distances between geometry elements to be found."
+msgstr ""
+"O objeto Gerber possui um polígono como geometria.\n"
+"Não há distâncias entre os elementos geométricos a serem encontrados."
+
+#: AppTools/ToolOptimal.py:388
+msgid ""
+"Optimal Tool. Finding the distances between each two elements. Iterations"
+msgstr ""
+"Ferramenta Ideal. Encontrando as distâncias entre cada dois elementos. "
+"Iterações"
+
+#: AppTools/ToolOptimal.py:423
+msgid "Optimal Tool. Finding the minimum distance."
+msgstr "Ferramenta Ideal. Encontrando a distância mínima."
+
+#: AppTools/ToolOptimal.py:439
+msgid "Optimal Tool. Finished successfully."
+msgstr "Ferramenta Ideal. Finalizado com sucesso."
+
+#: AppTools/ToolPDF.py:91 AppTools/ToolPDF.py:95
+msgid "Open PDF"
+msgstr "Abrir PDF"
+
+#: AppTools/ToolPDF.py:98
+msgid "Open PDF cancelled"
+msgstr "Abrir PDF cancelado"
+
+#: AppTools/ToolPDF.py:122
+msgid "Parsing PDF file ..."
+msgstr "Analisando arquivo PDF ..."
+
+#: AppTools/ToolPDF.py:138 App_Main.py:8497
+msgid "Failed to open"
+msgstr "Falha ao abrir"
+
+#: AppTools/ToolPDF.py:203 AppTools/ToolPcbWizard.py:445 App_Main.py:8446
+msgid "No geometry found in file"
+msgstr "Nenhuma geometria encontrada no arquivo"
+
+#: AppTools/ToolPDF.py:206 AppTools/ToolPDF.py:279
+#, python-format
+msgid "Rendering PDF layer #%d ..."
+msgstr "Renderizando camada PDF #%d ..."
+
+#: AppTools/ToolPDF.py:210 AppTools/ToolPDF.py:283
+msgid "Open PDF file failed."
+msgstr "Falha ao abrir arquivo PDF."
+
+#: AppTools/ToolPDF.py:215 AppTools/ToolPDF.py:288
+msgid "Rendered"
+msgstr "Processado"
+
+#: AppTools/ToolPaint.py:81
+msgid ""
+"Specify the type of object to be painted.\n"
+"It can be of type: Gerber or Geometry.\n"
+"What is selected here will dictate the kind\n"
+"of objects that will populate the 'Object' combobox."
+msgstr ""
+"Especifique o tipo de objeto a ser pintado.\n"
+"Pode ser do tipo: Gerber ou Geometry.\n"
+"O que é selecionado aqui irá ditar o tipo\n"
+"de objetos que preencherão a caixa de combinação 'Objeto'."
+
+#: AppTools/ToolPaint.py:103
+msgid "Object to be painted."
+msgstr "Objeto a ser pintado."
+
+#: AppTools/ToolPaint.py:116
+msgid ""
+"Tools pool from which the algorithm\n"
+"will pick the ones used for painting."
+msgstr ""
+"Conjunto de ferramentas do qual o algoritmo\n"
+"escolherá para a pintura."
+
+#: AppTools/ToolPaint.py:133
+msgid ""
+"This is the Tool Number.\n"
+"Painting will start with the tool with the biggest diameter,\n"
+"continuing until there are no more tools.\n"
+"Only tools that create painting geometry will still be present\n"
+"in the resulting geometry. This is because with some tools\n"
+"this function will not be able to create painting geometry."
+msgstr ""
+"Este é o Número da Ferramenta.\n"
+"A pintura começará com a ferramenta com o maior diâmetro,\n"
+"continuando até que não haja mais ferramentas.\n"
+"As únicas ferramentas que criam a geometria da pintura ainda estarão "
+"presentes\n"
+"na geometria resultante. Isso ocorre porque com algumas ferramentas\n"
+"não são capazes de criar geometria de pintura nesta função."
+
+#: AppTools/ToolPaint.py:145
+msgid ""
+"The Tool Type (TT) can be:\n"
+"- Circular -> it is informative only. Being circular,\n"
+"the cut width in material is exactly the tool diameter.\n"
+"- Ball -> informative only and make reference to the Ball type endmill.\n"
+"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI "
+"form\n"
+"and enable two additional UI form fields in the resulting geometry: V-Tip "
+"Dia and\n"
+"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter "
+"such\n"
+"as the cut width into material will be equal with the value in the Tool "
+"Diameter\n"
+"column of this table.\n"
+"Choosing the 'V-Shape' Tool Type automatically will select the Operation "
+"Type\n"
+"in the resulting geometry as Isolation."
+msgstr ""
+"O Tipo de Ferramenta (TF) pode ser:\n"
+"- Circular com 1 ... 4 dentes -> é apenas informativo. Como é circular,\n"
+"a largura do corte é igual ao diâmetro da ferramenta.\n"
+"- Bola -> apenas informativo e faz referência a uma fresa do tipo bola.\n"
+"- Forma em V -> o parâmetro corte Z será desativado no formulário e serão\n"
+"habilitados dois campos adicionais: Diâmetro da Ponta-V e Ângulo da Ponta-"
+"V.\n"
+"Ajustando esses dois parâmetros irá alterar o parâmetro Corte Z como a "
+"largura\n"
+"de corte no material, será igual ao valor na coluna Diâmetro da Ferramenta "
+"desta tabela.\n"
+"Escolhendo o tipo \"Forma em V\" automaticamente selecionará o Tipo de "
+"Operação Isolação."
+
+#: AppTools/ToolPaint.py:497
+msgid ""
+"The type of FlatCAM object to be used as paint reference.\n"
+"It can be Gerber, Excellon or Geometry."
+msgstr ""
+"O tipo de objeto FlatCAM a ser usado como referência de pintura.\n"
+"Pode ser Gerber, Excellon ou Geometria."
+
+#: AppTools/ToolPaint.py:538
+msgid ""
+"- 'Area Selection' - left mouse click to start selection of the area to be "
+"painted.\n"
+"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple "
+"areas.\n"
+"- 'All Polygons' - the Paint will start after click.\n"
+"- 'Reference Object' - will do non copper clearing within the area\n"
+"specified by another object."
+msgstr ""
+"- 'Seleção de Área' - clique com o botão esquerdo do mouse para iniciar a "
+"seleção da área a ser pintada.\n"
+"Manter uma tecla modificadora pressionada (CTRL ou SHIFT) permite adicionar "
+"várias áreas.\n"
+"- 'Todos os polígonos' - a Pintura será iniciada após o clique.\n"
+"- 'Objeto de Referência' - pintará dentro da área do objeto especificado."
+
+#: AppTools/ToolPaint.py:1392
+#, python-format
+msgid "Could not retrieve object: %s"
+msgstr "Não foi possível recuperar o objeto: %s"
+
+#: AppTools/ToolPaint.py:1402
+msgid "Can't do Paint on MultiGeo geometries"
+msgstr "Não é possível pintar geometrias MultiGeo"
+
+#: AppTools/ToolPaint.py:1432
+msgid "Click on a polygon to paint it."
+msgstr "Clique em um polígono para pintá-lo."
+
+#: AppTools/ToolPaint.py:1452
+msgid "Click the start point of the paint area."
+msgstr "Clique no ponto inicial da área de pintura."
+
+#: AppTools/ToolPaint.py:1517
+msgid "Click to add next polygon or right click to start painting."
+msgstr ""
+"Clique para adicionar o próximo polígono ou clique com o botão direito do "
+"mouse para começar a pintar."
+
+#: AppTools/ToolPaint.py:1530
+msgid "Click to add/remove next polygon or right click to start painting."
+msgstr ""
+"Clique para adicionar/remover o próximo polígono ou clique com o botão "
+"direito do mouse para começar a pintar."
+
+#: AppTools/ToolPaint.py:2034
+msgid "Painting polygon with method: lines."
+msgstr "Pintando o polígono com método: linhas."
+
+#: AppTools/ToolPaint.py:2046
+msgid "Failed. Painting polygon with method: seed."
+msgstr "Falhou. Pintando o polígono com método: semente."
+
+#: AppTools/ToolPaint.py:2057
+msgid "Failed. Painting polygon with method: standard."
+msgstr "Falhou. Pintando o polígono com método: padrão."
+
+#: AppTools/ToolPaint.py:2073
+msgid "Geometry could not be painted completely"
+msgstr "A geometria não pode ser pintada completamente"
+
+#: AppTools/ToolPaint.py:2102 AppTools/ToolPaint.py:2105
+#: AppTools/ToolPaint.py:2113 AppTools/ToolPaint.py:2416
+#: AppTools/ToolPaint.py:2419 AppTools/ToolPaint.py:2427
+#: AppTools/ToolPaint.py:2915 AppTools/ToolPaint.py:2918
+#: AppTools/ToolPaint.py:2924
+msgid "Paint Tool."
+msgstr "Ferramenta de Pintura."
+
+#: AppTools/ToolPaint.py:2102 AppTools/ToolPaint.py:2105
+#: AppTools/ToolPaint.py:2113
+msgid "Normal painting polygon task started."
+msgstr "Tarefa normal de pintura de polígono iniciada."
+
+#: AppTools/ToolPaint.py:2103 AppTools/ToolPaint.py:2417
+#: AppTools/ToolPaint.py:2916
+msgid "Buffering geometry..."
+msgstr "Fazendo buffer de polígono..."
+
+#: AppTools/ToolPaint.py:2125 AppTools/ToolPaint.py:2434
+#: AppTools/ToolPaint.py:2932
+msgid "No polygon found."
+msgstr "Nenhum polígono encontrado."
+
+#: AppTools/ToolPaint.py:2155
+msgid "Painting polygon..."
+msgstr "Pintando o polígono..."
+
+#: AppTools/ToolPaint.py:2165 AppTools/ToolPaint.py:2480
+#: AppTools/ToolPaint.py:2670 AppTools/ToolPaint.py:2978
+#: AppTools/ToolPaint.py:3157
+msgid "Painting with tool diameter = "
+msgstr "Pintura com diâmetro = "
+
+#: AppTools/ToolPaint.py:2166 AppTools/ToolPaint.py:2481
+#: AppTools/ToolPaint.py:2671 AppTools/ToolPaint.py:2979
+#: AppTools/ToolPaint.py:3158
+msgid "started"
+msgstr "iniciada"
+
+#: AppTools/ToolPaint.py:2191 AppTools/ToolPaint.py:2507
+#: AppTools/ToolPaint.py:2697 AppTools/ToolPaint.py:3005
+#: AppTools/ToolPaint.py:3184
+msgid "Margin parameter too big. Tool is not used"
+msgstr "Parâmetro de margem muito grande. A ferramenta não é usada"
+
+#: AppTools/ToolPaint.py:2249 AppTools/ToolPaint.py:2576
+#: AppTools/ToolPaint.py:2754 AppTools/ToolPaint.py:3068
+#: AppTools/ToolPaint.py:3246
+msgid ""
+"Could not do Paint. Try a different combination of parameters. Or a "
+"different strategy of paint"
+msgstr ""
+"Não foi possível pintar. Tente uma combinação diferente de parâmetros ou uma "
+"estratégia diferente de pintura"
+
+#: AppTools/ToolPaint.py:2306 AppTools/ToolPaint.py:2642
+#: AppTools/ToolPaint.py:2811 AppTools/ToolPaint.py:3129
+#: AppTools/ToolPaint.py:3308
+msgid ""
+"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 ""
+"Não há geometria de pintura no arquivo.\n"
+"Geralmente significa que o diâmetro da ferramenta é muito grande para a "
+"geometria pintada.\n"
+"Altere os parâmetros de pintura e tente novamente."
+
+#: AppTools/ToolPaint.py:2329
+msgid "Paint Single failed."
+msgstr "Pintura falhou."
+
+#: AppTools/ToolPaint.py:2335
+msgid "Paint Single Done."
+msgstr "Pintura concluída."
+
+#: AppTools/ToolPaint.py:2337 AppTools/ToolPaint.py:2847
+#: AppTools/ToolPaint.py:3344
+msgid "Polygon Paint started ..."
+msgstr "Pintura de polígonos iniciada ..."
+
+#: AppTools/ToolPaint.py:2416 AppTools/ToolPaint.py:2419
+#: AppTools/ToolPaint.py:2427
+msgid "Paint all polygons task started."
+msgstr "Tarefa pintar todos os polígonos iniciada."
+
+#: AppTools/ToolPaint.py:2458 AppTools/ToolPaint.py:2956
+msgid "Painting polygons..."
+msgstr "Pintando políginos..."
+
+#: AppTools/ToolPaint.py:2651
+msgid "Paint All Done."
+msgstr "Pintura concluída."
+
+#: AppTools/ToolPaint.py:2820 AppTools/ToolPaint.py:3317
+msgid "Paint All with Rest-Machining done."
+msgstr "Pintura total com usinagem de descanso concluída."
+
+#: AppTools/ToolPaint.py:2839
+msgid "Paint All failed."
+msgstr "Pintura falhou."
+
+#: AppTools/ToolPaint.py:2845
+msgid "Paint Poly All Done."
+msgstr "Pinte Todos os Polígonos feitos."
+
+#: AppTools/ToolPaint.py:2915 AppTools/ToolPaint.py:2918
+#: AppTools/ToolPaint.py:2924
+msgid "Painting area task started."
+msgstr "Iniciada a pintura de área."
+
+#: AppTools/ToolPaint.py:3138
+msgid "Paint Area Done."
+msgstr "Pintura de Área concluída."
+
+#: AppTools/ToolPaint.py:3336
+msgid "Paint Area failed."
+msgstr "Pintura de Área falhou."
+
+#: AppTools/ToolPaint.py:3342
+msgid "Paint Poly Area Done."
+msgstr "Pintura de Área concluída."
+
+#: AppTools/ToolPanelize.py:35
+msgid "Panelize PCB"
+msgstr "Criar Painel com PCB"
+
+#: AppTools/ToolPanelize.py:55
+msgid ""
+"Specify the type of object to be panelized\n"
+"It can be of type: Gerber, Excellon or Geometry.\n"
+"The selection here decide the type of objects that will be\n"
+"in the Object combobox."
+msgstr ""
+"Especifique o tipo de objeto para criar um painel\n"
+"Pode ser do tipo: Gerber, Excellon ou Geometria.\n"
+"A seleção aqui decide o tipo de objetos que estarão\n"
+"na Caixa de Objetos."
+
+#: AppTools/ToolPanelize.py:88
+msgid ""
+"Object to be panelized. This means that it will\n"
+"be duplicated in an array of rows and columns."
+msgstr ""
+"Objeto para criar painel. Isso significa\n"
+"que ele será duplicado em uma matriz de linhas e colunas."
+
+#: AppTools/ToolPanelize.py:100
+msgid "Penelization Reference"
+msgstr "Referência para Criação de Painel"
+
+#: AppTools/ToolPanelize.py:102
+msgid ""
+"Choose the reference for panelization:\n"
+"- Object = the bounding box of a different object\n"
+"- Bounding Box = the bounding box of the object to be panelized\n"
+"\n"
+"The reference is useful when doing panelization for more than one\n"
+"object. The spacings (really offsets) will be applied in reference\n"
+"to this reference object therefore maintaining the panelized\n"
+"objects in sync."
+msgstr ""
+"Escolha a referência para criação do painel:\n"
+"- Objeto = a caixa delimitadora de um objeto diferente\n"
+"- Caixa Delimitadora = a caixa delimitadora do objeto para criar o painel\n"
+"\n"
+"A referência é útil ao criar um painel para mais de um objeto.\n"
+"Os espaçamentos (deslocamentos) serão aplicados em referência\n"
+"a este objeto de referência, portanto, mantendo os objetos\n"
+"sincronizados no painel."
+
+#: AppTools/ToolPanelize.py:123
+msgid "Box Type"
+msgstr "Tipo de Caixa"
+
+#: AppTools/ToolPanelize.py:125
+msgid ""
+"Specify the type of object to be used as an container for\n"
+"panelization. It can be: Gerber or Geometry type.\n"
+"The selection here decide the type of objects that will be\n"
+"in the Box Object combobox."
+msgstr ""
+"Especifique o tipo de objeto a ser usado como um contêiner para\n"
+"o painel criado. Pode ser: tipo Gerber ou Geometria.\n"
+"A seleção aqui decide o tipo de objetos que estarão na\n"
+"Caixa de Objetos."
+
+#: AppTools/ToolPanelize.py:139
+msgid ""
+"The actual object that is used as container for the\n"
+" selected object that is to be panelized."
+msgstr ""
+"O objeto usado como contêiner para o objeto\n"
+"selecionado para o qual será criado um painel."
+
+#: AppTools/ToolPanelize.py:149
+msgid "Panel Data"
+msgstr "Dados do Painel"
+
+#: AppTools/ToolPanelize.py:151
+msgid ""
+"This informations will shape the resulting panel.\n"
+"The number of rows and columns will set how many\n"
+"duplicates of the original geometry will be generated.\n"
+"\n"
+"The spacings will set the distance between any two\n"
+"elements of the panel array."
+msgstr ""
+"Essas informações moldarão o painel resultante.\n"
+"O número de linhas e colunas definirá quantas\n"
+"duplicatas da geometria original serão geradas.\n"
+"\n"
+"Os espaçamentos definirão a distância entre os\n"
+"elementos da matriz do painel."
+
+#: AppTools/ToolPanelize.py:214
+msgid ""
+"Choose the type of object for the panel object:\n"
+"- Geometry\n"
+"- Gerber"
+msgstr ""
+"Escolha o tipo de objeto para o objeto de painel:\n"
+"- Geometria\n"
+"- Gerber"
+
+#: AppTools/ToolPanelize.py:222
+msgid "Constrain panel within"
+msgstr "Restringir painel dentro de"
+
+#: AppTools/ToolPanelize.py:263
+msgid "Panelize Object"
+msgstr "Criar Painel"
+
+#: AppTools/ToolPanelize.py:265 AppTools/ToolRulesCheck.py:501
+msgid ""
+"Panelize the specified object around the specified box.\n"
+"In other words it creates multiple copies of the source object,\n"
+"arranged in a 2D array of rows and columns."
+msgstr ""
+"Cria um painel do objeto especificado ao redor da caixa especificada.\n"
+"Em outras palavras, ele cria várias cópias do objeto de origem,\n"
+"arranjado em uma matriz 2D de linhas e colunas."
+
+#: AppTools/ToolPanelize.py:333
+msgid "Panel. Tool"
+msgstr "Ferramenta de Painel"
+
+#: AppTools/ToolPanelize.py:468
+msgid "Columns or Rows are zero value. Change them to a positive integer."
+msgstr "Colunas ou Linhas com valor zero. Altere-os para um inteiro positivo."
+
+#: AppTools/ToolPanelize.py:505
+msgid "Generating panel ... "
+msgstr "Gerando painel … "
+
+#: AppTools/ToolPanelize.py:788
+msgid "Generating panel ... Adding the Gerber code."
+msgstr "Gerando painel ... Adicionando o código Gerber."
+
+#: AppTools/ToolPanelize.py:796
+msgid "Generating panel... Spawning copies"
+msgstr "Gerando painel ... Cópias geradas"
+
+#: AppTools/ToolPanelize.py:803
+msgid "Panel done..."
+msgstr "Painel criado..."
+
+#: AppTools/ToolPanelize.py:806
+#, python-brace-format
+msgid ""
+"{text} Too big for the constrain area. Final panel has {col} columns and "
+"{row} rows"
+msgstr ""
+"{text} Grande demais para a área restrita.. O painel final tem {col} colunas "
+"e {row} linhas"
+
+#: AppTools/ToolPanelize.py:815
+msgid "Panel created successfully."
+msgstr "Painel criado com sucesso."
+
+#: AppTools/ToolPcbWizard.py:31
+msgid "PcbWizard Import Tool"
+msgstr "Ferramenta de Importação PcbWizard"
+
+#: AppTools/ToolPcbWizard.py:40
+msgid "Import 2-file Excellon"
+msgstr "Importar Excellon 2-arquivos"
+
+#: AppTools/ToolPcbWizard.py:51
+msgid "Load files"
+msgstr "Carregar arquivos"
+
+#: AppTools/ToolPcbWizard.py:57
+msgid "Excellon file"
+msgstr "Arquivo Excellon"
+
+#: AppTools/ToolPcbWizard.py:59
+msgid ""
+"Load the Excellon file.\n"
+"Usually it has a .DRL extension"
+msgstr ""
+"Carrega o arquivo Excellon.\n"
+"Normalmente ele tem uma extensão .DRL"
+
+#: AppTools/ToolPcbWizard.py:65
+msgid "INF file"
+msgstr "Arquivo INF"
+
+#: AppTools/ToolPcbWizard.py:67
+msgid "Load the INF file."
+msgstr "Carrega o arquivo INF."
+
+#: AppTools/ToolPcbWizard.py:79
+msgid "Tool Number"
+msgstr "Número da Ferramenta"
+
+#: AppTools/ToolPcbWizard.py:81
+msgid "Tool diameter in file units."
+msgstr "Diâmetro da ferramenta em unidades de arquivo."
+
+#: AppTools/ToolPcbWizard.py:87
+msgid "Excellon format"
+msgstr "Formato Excellon"
+
+#: AppTools/ToolPcbWizard.py:95
+msgid "Int. digits"
+msgstr "Dígitos Int."
+
+#: AppTools/ToolPcbWizard.py:97
+msgid "The number of digits for the integral part of the coordinates."
+msgstr "O número de dígitos da parte inteira das coordenadas."
+
+#: AppTools/ToolPcbWizard.py:104
+msgid "Frac. digits"
+msgstr "Dígitos Frac."
+
+#: AppTools/ToolPcbWizard.py:106
+msgid "The number of digits for the fractional part of the coordinates."
+msgstr "O número de dígitos para a parte fracionária das coordenadas."
+
+#: AppTools/ToolPcbWizard.py:113
+msgid "No Suppression"
+msgstr "Sem supressão"
+
+#: AppTools/ToolPcbWizard.py:114
+msgid "Zeros supp."
+msgstr "Sup. Zeros"
+
+#: AppTools/ToolPcbWizard.py:116
+msgid ""
+"The type of zeros suppression used.\n"
+"Can be of type:\n"
+"- LZ = leading zeros are kept\n"
+"- TZ = trailing zeros are kept\n"
+"- No Suppression = no zero suppression"
+msgstr ""
+"O tipo de supressão de zeros usado.\n"
+"Pode ser do tipo:\n"
+"- LZ = zeros à esquerda são mantidos\n"
+"- TZ = zeros à direita são mantidos\n"
+"- Sem supressão = sem supressão de zeros"
+
+#: AppTools/ToolPcbWizard.py:129
+msgid ""
+"The type of units that the coordinates and tool\n"
+"diameters are using. Can be INCH or MM."
+msgstr ""
+"A unidade para as coordenadas e os diâmetros\n"
+"de ferramentas. Pode ser Polegada ou mm."
+
+#: AppTools/ToolPcbWizard.py:136
+msgid "Import Excellon"
+msgstr "Importar Excellon"
+
+#: AppTools/ToolPcbWizard.py:138
+msgid ""
+"Import in FlatCAM an Excellon file\n"
+"that store it's information's in 2 files.\n"
+"One usually has .DRL extension while\n"
+"the other has .INF extension."
+msgstr ""
+"Importa no FlatCAM um arquivo Excellon\n"
+"que armazena suas informações em 2 arquivos.\n"
+"Um geralmente possui extensão .DRL e o outro tem extensão .INF."
+
+#: AppTools/ToolPcbWizard.py:197
+msgid "PCBWizard Tool"
+msgstr "Ferramenta PCBWizard"
+
+#: AppTools/ToolPcbWizard.py:291 AppTools/ToolPcbWizard.py:295
+msgid "Load PcbWizard Excellon file"
+msgstr "Carregar o arquivo PCBWizard Excellon"
+
+#: AppTools/ToolPcbWizard.py:314 AppTools/ToolPcbWizard.py:318
+msgid "Load PcbWizard INF file"
+msgstr "Carregar arquivo PCBWizard INF"
+
+#: AppTools/ToolPcbWizard.py:366
+msgid ""
+"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 ""
+"O arquivo INF não contém a tabela de ferramentas.\n"
+"Tente abrir o arquivo Excellon em Arquivo -> Abrir -> Excellon\n"
+"e edite os diâmetros dos furos manualmente."
+
+#: AppTools/ToolPcbWizard.py:387
+msgid "PcbWizard .INF file loaded."
+msgstr "Arquivo PcbWizard .INF carregado."
+
+#: AppTools/ToolPcbWizard.py:392
+msgid "Main PcbWizard Excellon file loaded."
+msgstr "Arquivo PcbWizard Excellon carregado."
+
+#: AppTools/ToolPcbWizard.py:424 App_Main.py:8424
+msgid "This is not Excellon file."
+msgstr "Este não é um arquivo Excellon."
+
+#: AppTools/ToolPcbWizard.py:427
+msgid "Cannot parse file"
+msgstr "Não é possível analisar o arquivo"
+
+#: AppTools/ToolPcbWizard.py:450
+msgid "Importing Excellon."
+msgstr "Importando Excellon."
+
+#: AppTools/ToolPcbWizard.py:457
+msgid "Import Excellon file failed."
+msgstr "Falha na importação do arquivo Excellon."
+
+#: AppTools/ToolPcbWizard.py:464
+msgid "Imported"
+msgstr "Importado"
+
+#: AppTools/ToolPcbWizard.py:467
+msgid "Excellon merging is in progress. Please wait..."
+msgstr "A união Excellon está em andamento. Por favor, espere..."
+
+#: AppTools/ToolPcbWizard.py:469
+msgid "The imported Excellon file is empty."
+msgstr "O arquivo Excellon importado está Vazio."
+
+#: AppTools/ToolProperties.py:116 App_Main.py:4664 App_Main.py:6718
+#: App_Main.py:6813 App_Main.py:6854 App_Main.py:6895 App_Main.py:6936
+#: App_Main.py:6977 App_Main.py:7021 App_Main.py:7065 App_Main.py:7585
+#: App_Main.py:7589
+msgid "No object selected."
+msgstr "Nenhum objeto selecionado."
+
+#: AppTools/ToolProperties.py:131
+msgid "Object Properties are displayed."
+msgstr "Propriedades do Objeto exibidas."
+
+#: AppTools/ToolProperties.py:136
+msgid "Properties Tool"
+msgstr "Ferramenta Propriedades"
+
+#: AppTools/ToolProperties.py:150
+msgid "TYPE"
+msgstr "TIPO"
+
+#: AppTools/ToolProperties.py:151
+msgid "NAME"
+msgstr "NOME"
+
+#: AppTools/ToolProperties.py:153
+msgid "Dimensions"
+msgstr "Dimensões"
+
+#: AppTools/ToolProperties.py:181
+msgid "Geo Type"
+msgstr "Tipo Geo"
+
+#: AppTools/ToolProperties.py:184
+msgid "Single-Geo"
+msgstr "Geo. Única"
+
+#: AppTools/ToolProperties.py:185
+msgid "Multi-Geo"
+msgstr "Geo. Múltipla"
+
+#: AppTools/ToolProperties.py:196
+msgid "Calculating dimensions ... Please wait."
+msgstr "Calculando dimensões ... Por favor, espere."
+
+#: AppTools/ToolProperties.py:339 AppTools/ToolProperties.py:343
+#: AppTools/ToolProperties.py:345
+msgid "Inch"
+msgstr "Polegada"
+
+#: AppTools/ToolProperties.py:339 AppTools/ToolProperties.py:344
+#: AppTools/ToolProperties.py:346
+msgid "Metric"
+msgstr "Métrico"
+
+#: AppTools/ToolProperties.py:421 AppTools/ToolProperties.py:486
+msgid "Drills number"
+msgstr "Número de furos"
+
+#: AppTools/ToolProperties.py:422 AppTools/ToolProperties.py:488
+msgid "Slots number"
+msgstr "Número de Ranhuras"
+
+#: AppTools/ToolProperties.py:424
+msgid "Drills total number:"
+msgstr "Número total de furos:"
+
+#: AppTools/ToolProperties.py:425
+msgid "Slots total number:"
+msgstr "Número total de ranhuras:"
+
+#: AppTools/ToolProperties.py:452 AppTools/ToolProperties.py:455
+#: AppTools/ToolProperties.py:458 AppTools/ToolProperties.py:483
+msgid "Present"
+msgstr "Presente"
+
+#: AppTools/ToolProperties.py:453 AppTools/ToolProperties.py:484
+msgid "Solid Geometry"
+msgstr "Geometria Sólida"
+
+#: AppTools/ToolProperties.py:456
+msgid "GCode Text"
+msgstr "Texto G-Code"
+
+#: AppTools/ToolProperties.py:459
+msgid "GCode Geometry"
+msgstr "Geometria G-Code"
+
+#: AppTools/ToolProperties.py:462
+msgid "Data"
+msgstr "Dados"
+
+#: AppTools/ToolProperties.py:495
+msgid "Depth of Cut"
+msgstr "Profundidade de Corte"
+
+#: AppTools/ToolProperties.py:507
+msgid "Clearance Height"
+msgstr "Altura do Espaço"
+
+#: AppTools/ToolProperties.py:539
+msgid "Routing time"
+msgstr "Tempo de roteamento"
+
+#: AppTools/ToolProperties.py:546
+msgid "Travelled distance"
+msgstr "Distância percorrida"
+
+#: AppTools/ToolProperties.py:564
+msgid "Width"
+msgstr "Largura"
+
+#: AppTools/ToolProperties.py:570 AppTools/ToolProperties.py:578
+msgid "Box Area"
+msgstr "Área da Caixa"
+
+#: AppTools/ToolProperties.py:573 AppTools/ToolProperties.py:581
+msgid "Convex_Hull Area"
+msgstr "Área Convexa do Casco"
+
+#: AppTools/ToolProperties.py:588 AppTools/ToolProperties.py:591
+msgid "Copper Area"
+msgstr "Área de Cobre"
+
+#: AppTools/ToolPunchGerber.py:30 AppTools/ToolPunchGerber.py:323
+msgid "Punch Gerber"
+msgstr "Gerber a Furar"
+
+#: AppTools/ToolPunchGerber.py:65
+msgid "Gerber into which to punch holes"
+msgstr "Gerber no qual fazer furos"
+
+#: AppTools/ToolPunchGerber.py:85
+msgid "ALL"
+msgstr "TODOS"
+
+#: AppTools/ToolPunchGerber.py:166
+msgid ""
+"Remove the geometry of Excellon from the Gerber to create the holes in pads."
+msgstr "Remove a geometria do Excellon do Gerber para criar os furos nos pads."
+
+#: AppTools/ToolPunchGerber.py:325
+msgid ""
+"Create a Gerber object from the selected object, within\n"
+"the specified box."
+msgstr ""
+"Cria um objeto Gerber a partir do objeto selecionado, dentro\n"
+"da caixa especificada."
+
+#: AppTools/ToolPunchGerber.py:425
+msgid "Punch Tool"
+msgstr "Ferramenta de Furos"
+
+#: AppTools/ToolPunchGerber.py:599
+msgid "The value of the fixed diameter is 0.0. Aborting."
+msgstr "O valor do diâmetro fixo é 0.0. Abortando."
+
+#: AppTools/ToolPunchGerber.py:602
+msgid ""
+"Could not generate punched hole Gerber because the punch hole size is bigger "
+"than some of the apertures in the Gerber object."
+msgstr ""
+"Não foi possível gerar o Gerber dos furos porque o tamanho do perfurador é "
+"maior que algumas das aberturas no objeto Gerber."
+
+#: AppTools/ToolPunchGerber.py:665
+msgid ""
+"Could not generate punched hole Gerber because the newly created object "
+"geometry is the same as the one in the source object geometry..."
+msgstr ""
+"Não foi possível gerar o Gerber dos furos porque a geometria do objeto recém-"
+"criada é a mesma da geometria do objeto de origem ..."
+
+#: AppTools/ToolQRCode.py:80
+msgid "Gerber Object to which the QRCode will be added."
+msgstr "Objeto Gerber ao qual o QRCode será adicionado."
+
+#: AppTools/ToolQRCode.py:93
+msgid "QRCode Parameters"
+msgstr "Parâmetros de QRCode"
+
+#: AppTools/ToolQRCode.py:95
+msgid "The parameters used to shape the QRCode."
+msgstr "Os parâmetros usados para modelar o QRCode."
+
+#: AppTools/ToolQRCode.py:207
+msgid "Export QRCode"
+msgstr "Exportar QRCode"
+
+#: AppTools/ToolQRCode.py:209
+msgid ""
+"Show a set of controls allowing to export the QRCode\n"
+"to a SVG file or an PNG file."
+msgstr ""
+"Mostrar um conjunto de controles que permitem exportar o QRCode\n"
+"para um arquivo SVG ou PNG."
+
+#: AppTools/ToolQRCode.py:248
+msgid "Transparent back color"
+msgstr "Cor transparente de fundo"
+
+#: AppTools/ToolQRCode.py:273
+msgid "Export QRCode SVG"
+msgstr "Exportar QRCode SVG"
+
+#: AppTools/ToolQRCode.py:275
+msgid "Export a SVG file with the QRCode content."
+msgstr "Exporta um arquivo SVG com o conteúdo QRCode."
+
+#: AppTools/ToolQRCode.py:286
+msgid "Export QRCode PNG"
+msgstr "Exportar QRCode PNG"
+
+#: AppTools/ToolQRCode.py:288
+msgid "Export a PNG image file with the QRCode content."
+msgstr "Exporta um arquivo PNG com o conteúdo QRCode."
+
+#: AppTools/ToolQRCode.py:299
+msgid "Insert QRCode"
+msgstr "Inserir QRCode"
+
+#: AppTools/ToolQRCode.py:301
+msgid "Create the QRCode object."
+msgstr "Cria o objeto QRCode."
+
+#: AppTools/ToolQRCode.py:415 AppTools/ToolQRCode.py:750
+#: AppTools/ToolQRCode.py:799
+msgid "Cancelled. There is no QRCode Data in the text box."
+msgstr "Cancelado. Não há dados para o QRCode na caixa de texto."
+
+#: AppTools/ToolQRCode.py:434
+msgid "Generating QRCode geometry"
+msgstr "Gerando Geometria QRCode"
+
+#: AppTools/ToolQRCode.py:474
+msgid "Click on the Destination point ..."
+msgstr "Clique no ponto de destino ..."
+
+#: AppTools/ToolQRCode.py:589
+msgid "QRCode Tool done."
+msgstr "Ferramenta QRCode pronta."
+
+#: AppTools/ToolQRCode.py:782 AppTools/ToolQRCode.py:786
+msgid "Export PNG"
+msgstr "Exportar PNG"
+
+#: AppTools/ToolQRCode.py:829 AppTools/ToolQRCode.py:833 App_Main.py:6746
+#: App_Main.py:6750
+msgid "Export SVG"
+msgstr "Exportar SVG"
+
+#: AppTools/ToolRulesCheck.py:33
+msgid "Check Rules"
+msgstr "Verificar Regras"
+
+#: AppTools/ToolRulesCheck.py:61
+msgid "Gerber Files"
+msgstr "Arquivos Gerber"
+
+#: AppTools/ToolRulesCheck.py:63
+msgid "Gerber objects for which to check rules."
+msgstr "Objeto para o qual verificar regras."
+
+#: AppTools/ToolRulesCheck.py:78
+msgid "Top"
+msgstr "Topo"
+
+#: AppTools/ToolRulesCheck.py:80
+msgid "The Top Gerber Copper object for which rules are checked."
+msgstr "Camada Gerber Superior para verificar regras."
+
+#: AppTools/ToolRulesCheck.py:96
+msgid "Bottom"
+msgstr "Baixo"
+
+#: AppTools/ToolRulesCheck.py:98
+msgid "The Bottom Gerber Copper object for which rules are checked."
+msgstr "Camada Gerber Inferior para verificar regras."
+
+#: AppTools/ToolRulesCheck.py:114
+msgid "SM Top"
+msgstr "MS Topo"
+
+#: AppTools/ToolRulesCheck.py:116
+msgid "The Top Gerber Solder Mask object for which rules are checked."
+msgstr "Máscara de Solda Superior para verificar regras."
+
+#: AppTools/ToolRulesCheck.py:132
+msgid "SM Bottom"
+msgstr "MS Baixo"
+
+#: AppTools/ToolRulesCheck.py:134
+msgid "The Bottom Gerber Solder Mask object for which rules are checked."
+msgstr "Máscara de Solda Inferior para verificar regras."
+
+#: AppTools/ToolRulesCheck.py:150
+msgid "Silk Top"
+msgstr "Silk Topo"
+
+#: AppTools/ToolRulesCheck.py:152
+msgid "The Top Gerber Silkscreen object for which rules are checked."
+msgstr "Silkscreen Superior para verificar regras."
+
+#: AppTools/ToolRulesCheck.py:168
+msgid "Silk Bottom"
+msgstr "Silk Baixo"
+
+#: AppTools/ToolRulesCheck.py:170
+msgid "The Bottom Gerber Silkscreen object for which rules are checked."
+msgstr "Silkscreen Inferior para verificar regras."
+
+#: AppTools/ToolRulesCheck.py:188
+msgid "The Gerber Outline (Cutout) object for which rules are checked."
+msgstr "Objeto Gerber de Contorno (Recorte) para verificar regras."
+
+#: AppTools/ToolRulesCheck.py:199
+msgid "Excellon Objects"
+msgstr "Objetos Excellon"
+
+#: AppTools/ToolRulesCheck.py:201
+msgid "Excellon objects for which to check rules."
+msgstr "Objetos Excellon para verificar regras."
+
+#: AppTools/ToolRulesCheck.py:213
+msgid "Excellon 1"
+msgstr "Excellon 1"
+
+#: AppTools/ToolRulesCheck.py:215
+msgid ""
+"Excellon object for which to check rules.\n"
+"Holds the plated holes or a general Excellon file content."
+msgstr ""
+"Objeto Excellon para verificar regras.\n"
+"Contém os furos galvanizados ou um conteúdo geral do arquivo Excellon."
+
+#: AppTools/ToolRulesCheck.py:232
+msgid "Excellon 2"
+msgstr "Excellon 2"
+
+#: AppTools/ToolRulesCheck.py:234
+msgid ""
+"Excellon object for which to check rules.\n"
+"Holds the non-plated holes."
+msgstr ""
+"Objeto Excellon para verificar regras.\n"
+"Contém os furos não galvanizados."
+
+#: AppTools/ToolRulesCheck.py:247
+msgid "All Rules"
+msgstr "Todas as Regras"
+
+#: AppTools/ToolRulesCheck.py:249
+msgid "This check/uncheck all the rules below."
+msgstr "Seleciona/deseleciona todas as regras abaixo."
+
+#: AppTools/ToolRulesCheck.py:499
+msgid "Run Rules Check"
+msgstr "Avaliar Regras"
+
+#: AppTools/ToolRulesCheck.py:1158 AppTools/ToolRulesCheck.py:1218
+#: AppTools/ToolRulesCheck.py:1255 AppTools/ToolRulesCheck.py:1327
+#: AppTools/ToolRulesCheck.py:1381 AppTools/ToolRulesCheck.py:1419
+#: AppTools/ToolRulesCheck.py:1484
+msgid "Value is not valid."
+msgstr "Valor inválido."
+
+#: AppTools/ToolRulesCheck.py:1172
+msgid "TOP -> Copper to Copper clearance"
+msgstr "TOPO -> Espaço Cobre Cobre"
+
+#: AppTools/ToolRulesCheck.py:1183
+msgid "BOTTOM -> Copper to Copper clearance"
+msgstr "BAIXO -> Espaço Cobre Cobre"
+
+#: AppTools/ToolRulesCheck.py:1188 AppTools/ToolRulesCheck.py:1282
+#: AppTools/ToolRulesCheck.py:1446
+msgid ""
+"At least one Gerber object has to be selected for this rule but none is "
+"selected."
+msgstr ""
+"Pelo menos um objeto Gerber deve ser selecionado para esta regra, mas nenhum "
+"está selecionado."
+
+#: AppTools/ToolRulesCheck.py:1224
+msgid ""
+"One of the copper Gerber objects or the Outline Gerber object is not valid."
+msgstr ""
+"Um dos objetos Gerber de cobre ou o objeto Gerber de Contorno não é válido."
+
+#: AppTools/ToolRulesCheck.py:1237 AppTools/ToolRulesCheck.py:1401
+msgid ""
+"Outline Gerber object presence is mandatory for this rule but it is not "
+"selected."
+msgstr ""
+"A presença do objeto Gerber de Contorno é obrigatória para esta regra, mas "
+"não está selecionada."
+
+#: AppTools/ToolRulesCheck.py:1254 AppTools/ToolRulesCheck.py:1281
+msgid "Silk to Silk clearance"
+msgstr "Espaço Silk Silk"
+
+#: AppTools/ToolRulesCheck.py:1267
+msgid "TOP -> Silk to Silk clearance"
+msgstr "TOPO -> Espaço Silk Silk"
+
+#: AppTools/ToolRulesCheck.py:1277
+msgid "BOTTOM -> Silk to Silk clearance"
+msgstr "BAIXO -> Espaço Silk Silk"
+
+#: AppTools/ToolRulesCheck.py:1333
+msgid "One or more of the Gerber objects is not valid."
+msgstr "Um ou mais dos objetos Gerber não são válidos."
+
+#: AppTools/ToolRulesCheck.py:1341
+msgid "TOP -> Silk to Solder Mask Clearance"
+msgstr "TOPO -> Espaço Silk Máscara de Solda"
+
+#: AppTools/ToolRulesCheck.py:1347
+msgid "BOTTOM -> Silk to Solder Mask Clearance"
+msgstr "BAIXO -> Espaço Silk Máscara de Solda"
+
+#: AppTools/ToolRulesCheck.py:1351
+msgid ""
+"Both Silk and Solder Mask Gerber objects has to be either both Top or both "
+"Bottom."
+msgstr ""
+"Os objetos Gerber de Silkscreen e da Máscara de Solda devem estar no mesmo "
+"lado: superior ou inferior."
+
+#: AppTools/ToolRulesCheck.py:1387
+msgid ""
+"One of the Silk Gerber objects or the Outline Gerber object is not valid."
+msgstr "Um dos objetos do Gerber não é válido: Silkscreen ou Contorno."
+
+#: AppTools/ToolRulesCheck.py:1431
+msgid "TOP -> Minimum Solder Mask Sliver"
+msgstr "TOPO -> Máscara de Solda Mínima"
+
+#: AppTools/ToolRulesCheck.py:1441
+msgid "BOTTOM -> Minimum Solder Mask Sliver"
+msgstr "BAIXO -> Máscara de Solda Mínima"
+
+#: AppTools/ToolRulesCheck.py:1490
+msgid "One of the Copper Gerber objects or the Excellon objects is not valid."
+msgstr "Um dos objetos não é válido: Gerber Cobre ou Excellon."
+
+#: AppTools/ToolRulesCheck.py:1506
+msgid ""
+"Excellon object presence is mandatory for this rule but none is selected."
+msgstr ""
+"A presença de objeto Excellon é obrigatória para esta regra, mas nenhum está "
+"selecionado."
+
+#: AppTools/ToolRulesCheck.py:1579 AppTools/ToolRulesCheck.py:1592
+#: AppTools/ToolRulesCheck.py:1603 AppTools/ToolRulesCheck.py:1616
+msgid "STATUS"
+msgstr "ESTADO"
+
+#: AppTools/ToolRulesCheck.py:1582 AppTools/ToolRulesCheck.py:1606
+msgid "FAILED"
+msgstr "FALHOU"
+
+#: AppTools/ToolRulesCheck.py:1595 AppTools/ToolRulesCheck.py:1619
+msgid "PASSED"
+msgstr "PASSOU"
+
+#: AppTools/ToolRulesCheck.py:1596 AppTools/ToolRulesCheck.py:1620
+msgid "Violations: There are no violations for the current rule."
+msgstr "Violações: não há violações para a regra atual."
+
+#: AppTools/ToolShell.py:74 AppTools/ToolShell.py:76
+msgid "...processing..."
+msgstr "...processando..."
+
+#: AppTools/ToolSolderPaste.py:37
+msgid "Solder Paste Tool"
+msgstr "Pasta de Solda"
+
+#: AppTools/ToolSolderPaste.py:69
+msgid "Gerber Solder paste object. "
+msgstr "Objeto Gerber de Pasta de Solda. "
+
+#: AppTools/ToolSolderPaste.py:76
+msgid ""
+"Tools pool from which the algorithm\n"
+"will pick the ones used for dispensing solder paste."
+msgstr ""
+"Conjunto de ferramentas a partir do qual o algoritmo selecionará para "
+"distribuir pasta de solda."
+
+#: AppTools/ToolSolderPaste.py:91
+msgid ""
+"This is the Tool Number.\n"
+"The solder dispensing will start with the tool with the biggest \n"
+"diameter, continuing until there are no more Nozzle tools.\n"
+"If there are no longer tools but there are still pads not covered\n"
+" with solder paste, the app will issue a warning message box."
+msgstr ""
+"Este é o número da ferramenta.\n"
+"A colocação de pasta de solda começa com a ferramenta com o maior diâmetro,\n"
+"continuando até que não haja mais ferramentas do bico.\n"
+"Se não houver mais ferramentas, mas ainda houver blocos não cobertos\n"
+"com pasta de solda, o aplicativo emitirá uma caixa de mensagem de aviso."
+
+#: AppTools/ToolSolderPaste.py:98
+msgid ""
+"Nozzle tool Diameter. It's value (in current FlatCAM units)\n"
+"is the width of the solder paste dispensed."
+msgstr ""
+"Diâmetro do bico da ferramenta. É o valor (em unidades FlatCAM atuais)\n"
+"da largura da pasta de solda dispensada."
+
+#: AppTools/ToolSolderPaste.py:105
+msgid "New Nozzle Tool"
+msgstr "Nova Ferramenta de Bico"
+
+#: AppTools/ToolSolderPaste.py:124
+msgid ""
+"Add a new nozzle tool to the Tool Table\n"
+"with the diameter specified above."
+msgstr ""
+"Adiciona uma nova ferramenta de bico à tabela de ferramentas\n"
+"com o diâmetro especificado acima."
+
+#: AppTools/ToolSolderPaste.py:136
+msgid "Generate solder paste dispensing geometry."
+msgstr "Gerar geometria de distribuição de pasta de solda."
+
+#: AppTools/ToolSolderPaste.py:155
+msgid "STEP 1"
+msgstr "PASSO 1"
+
+#: AppTools/ToolSolderPaste.py:157
+msgid ""
+"First step is to select a number of nozzle tools for usage\n"
+"and then optionally modify the GCode parameters below."
+msgstr ""
+"O primeiro passo é selecionar um número de ferramentas de bico para usar,\n"
+"e opcionalmente, modificar os parâmetros do G-Code abaixo."
+
+#: AppTools/ToolSolderPaste.py:160
+msgid ""
+"Select tools.\n"
+"Modify parameters."
+msgstr ""
+"Selecione ferramentas.\n"
+"Modifique os parâmetros."
+
+#: AppTools/ToolSolderPaste.py:280
+msgid ""
+"Feedrate (speed) while moving up vertically\n"
+" to Dispense position (on Z plane)."
+msgstr ""
+"Avanço (velocidade) enquanto sobe verticalmente\n"
+"para a posição Dispensar (no plano Z)."
+
+#: AppTools/ToolSolderPaste.py:350
+msgid ""
+"Generate GCode for Solder Paste dispensing\n"
+"on PCB pads."
+msgstr ""
+"Gera o G-Code para dispensar pasta de solda\n"
+"nos pads da PCB."
+
+#: AppTools/ToolSolderPaste.py:371
+msgid "STEP 2"
+msgstr "PASSO 2"
+
+#: AppTools/ToolSolderPaste.py:373
+msgid ""
+"Second step is to create a solder paste dispensing\n"
+"geometry out of an Solder Paste Mask Gerber file."
+msgstr ""
+"O segundo passo é criar uma geometria de distribuição de pasta de solda\n"
+"de um arquivo Gerber Máscara de Pasta de Solda."
+
+#: AppTools/ToolSolderPaste.py:390
+msgid "Geo Result"
+msgstr "Geo Result"
+
+#: AppTools/ToolSolderPaste.py:392
+msgid ""
+"Geometry Solder Paste object.\n"
+"The name of the object has to end in:\n"
+"'_solderpaste' as a protection."
+msgstr ""
+"Objeto de Geometria Pasta de Solda.\n"
+"Como proteção, o nome do objeto deve terminar com: \n"
+"'_solderpaste'."
+
+#: AppTools/ToolSolderPaste.py:401
+msgid "STEP 3"
+msgstr "PASSO 3"
+
+#: AppTools/ToolSolderPaste.py:403
+msgid ""
+"Third step is to select a solder paste dispensing geometry,\n"
+"and then generate a CNCJob object.\n"
+"\n"
+"REMEMBER: if you want to create a CNCJob with new parameters,\n"
+"first you need to generate a geometry with those new params,\n"
+"and only after that you can generate an updated CNCJob."
+msgstr ""
+"O terceiro passo é selecionar uma geometria dispensadora de pasta de solda,\n"
+"e então gerar um objeto de Trabalho CNC.\n"
+"\n"
+"LEMBRE: se você quiser criar um Trabalho CNC com novos parâmetros,\n"
+" primeiro você precisa gerar uma geometria com esses novos parâmetros,\n"
+"e só depois disso você pode gerar um Trabalho CNC atualizado."
+
+#: AppTools/ToolSolderPaste.py:424
+msgid "CNC Result"
+msgstr "Resultado CNC"
+
+#: AppTools/ToolSolderPaste.py:426
+msgid ""
+"CNCJob Solder paste object.\n"
+"In order to enable the GCode save section,\n"
+"the name of the object has to end in:\n"
+"'_solderpaste' as a protection."
+msgstr ""
+"Objeto Trabalho CNC Pasta de Solda.\n"
+"Como proteção, para habilitar a seção de salvar o G-Code,\n"
+"o nome do objeto tem que terminar com:\n"
+"'_solderpaste'."
+
+#: AppTools/ToolSolderPaste.py:436
+msgid "View GCode"
+msgstr "Ver G-Code"
+
+#: AppTools/ToolSolderPaste.py:438
+msgid ""
+"View the generated GCode for Solder Paste dispensing\n"
+"on PCB pads."
+msgstr ""
+"Ver o G-Code gerado para dispensação de pasta de solda\n"
+"nos pads da PCB."
+
+#: AppTools/ToolSolderPaste.py:448
+msgid "Save GCode"
+msgstr "Salvar o G-Code"
+
+#: AppTools/ToolSolderPaste.py:450
+msgid ""
+"Save the generated GCode for Solder Paste dispensing\n"
+"on PCB pads, to a file."
+msgstr ""
+"Salva o G-Code gerado para distribuição de pasta de solda\n"
+"nos pads de PCB, em um arquivo."
+
+#: AppTools/ToolSolderPaste.py:460
+msgid "STEP 4"
+msgstr "PASSO 4"
+
+#: AppTools/ToolSolderPaste.py:462
+msgid ""
+"Fourth step (and last) is to select a CNCJob made from \n"
+"a solder paste dispensing geometry, and then view/save it's GCode."
+msgstr ""
+"O quarto (e último) passo é selecionar um Trabalho CNC feito de\n"
+"uma geometria de distribuição de pasta de solda e, em seguida, visualizar/"
+"salvar o G-Code."
+
+#: AppTools/ToolSolderPaste.py:922
+msgid "New Nozzle tool added to Tool Table."
+msgstr "Nova Ferramenta Bocal adicionada à tabela de ferramentas."
+
+#: AppTools/ToolSolderPaste.py:965
+msgid "Nozzle tool from Tool Table was edited."
+msgstr "A ferramenta do bocal da tabela de ferramentas foi editada."
+
+#: AppTools/ToolSolderPaste.py:1024
+msgid "Delete failed. Select a Nozzle tool to delete."
+msgstr "Exclusão falhou. Selecione uma ferramenta bico para excluir."
+
+#: AppTools/ToolSolderPaste.py:1030
+msgid "Nozzle tool(s) deleted from Tool Table."
+msgstr "Ferramenta(s) de bico excluída(s) da tabela de ferramentas."
+
+#: AppTools/ToolSolderPaste.py:1086
+msgid "No SolderPaste mask Gerber object loaded."
+msgstr "Nenhum objeto Gerber de máscara de Pasta de Solda carregado."
+
+#: AppTools/ToolSolderPaste.py:1104
+msgid "Creating Solder Paste dispensing geometry."
+msgstr "Criação da geometria de distribuição da pasta de solda."
+
+#: AppTools/ToolSolderPaste.py:1117
+msgid "No Nozzle tools in the tool table."
+msgstr "Nenhuma ferramenta de Bico na tabela de ferramentas."
+
+#: AppTools/ToolSolderPaste.py:1243
+msgid "Cancelled. Empty file, it has no geometry..."
+msgstr "Cancelado. Arquivo vazio, não há geometria..."
+
+#: AppTools/ToolSolderPaste.py:1246
+msgid "Solder Paste geometry generated successfully"
+msgstr "Geometria da pasta de solda gerada com sucesso"
+
+#: AppTools/ToolSolderPaste.py:1253
+msgid "Some or all pads have no solder due of inadequate nozzle diameters..."
+msgstr ""
+"Alguns ou todos os pads não possuem pasta de solda devido a diâmetros "
+"inadequados dos bicos..."
+
+#: AppTools/ToolSolderPaste.py:1267
+msgid "Generating Solder Paste dispensing geometry..."
+msgstr "Gerando geometria dispensadora de Pasta de Solda ..."
+
+#: AppTools/ToolSolderPaste.py:1287
+msgid "There is no Geometry object available."
+msgstr "Não há objeto de Geometria disponível."
+
+#: AppTools/ToolSolderPaste.py:1292
+msgid "This Geometry can't be processed. NOT a solder_paste_tool geometry."
+msgstr ""
+"Esta geometria não pode ser processada. NÃO é uma geometria "
+"solder_paste_tool."
+
+#: AppTools/ToolSolderPaste.py:1328
+msgid "An internal error has ocurred. See shell.\n"
+msgstr "Ocorreu um erro interno. Veja shell (linha de comando).\n"
+
+#: AppTools/ToolSolderPaste.py:1393
+msgid "ToolSolderPaste CNCjob created"
+msgstr "Trabalho CNC para Ferramenta de Pasta de Solda criado"
+
+#: AppTools/ToolSolderPaste.py:1412
+msgid "SP GCode Editor"
+msgstr "Editor SP G-Code"
+
+#: AppTools/ToolSolderPaste.py:1424 AppTools/ToolSolderPaste.py:1429
+#: AppTools/ToolSolderPaste.py:1484
+msgid ""
+"This CNCJob object can't be processed. NOT a solder_paste_tool CNCJob object."
+msgstr ""
+"Este objeto Trabalho CNC não pode ser processado. NÃO é um objeto "
+"solder_paste_tool."
+
+#: AppTools/ToolSolderPaste.py:1454
+msgid "No Gcode in the object"
+msgstr "Nenhum G-Code no objeto"
+
+#: AppTools/ToolSolderPaste.py:1494
+msgid "Export GCode ..."
+msgstr "Exportar G-Code ..."
+
+#: AppTools/ToolSolderPaste.py:1542
+msgid "Solder paste dispenser GCode file saved to"
+msgstr "Arquivo G-Code com dispensador de pasta de solda salvo em"
+
+#: AppTools/ToolSub.py:65
+msgid "Gerber Objects"
+msgstr "Objetos Gerber"
+
+#: AppTools/ToolSub.py:78
+msgid ""
+"Gerber object from which to subtract\n"
+"the subtractor Gerber object."
+msgstr ""
+"Objeto Gerber do qual subtrair\n"
+"o objeto Gerber subtrator."
+
+#: AppTools/ToolSub.py:91 AppTools/ToolSub.py:146
+msgid "Subtractor"
+msgstr "Subtrator"
+
+#: AppTools/ToolSub.py:93
+msgid ""
+"Gerber object that will be subtracted\n"
+"from the target Gerber object."
+msgstr ""
+"Objeto Gerber que será subtraído\n"
+"do objeto Gerber de destino."
+
+#: AppTools/ToolSub.py:100
+msgid "Subtract Gerber"
+msgstr "Subtrair Gerber"
+
+#: AppTools/ToolSub.py:102
+msgid ""
+"Will remove the area occupied by the subtractor\n"
+"Gerber from the Target Gerber.\n"
+"Can be used to remove the overlapping silkscreen\n"
+"over the soldermask."
+msgstr ""
+"Removerá a área ocupada pelo Gerber substrator\n"
+"do Gerber de destino.\n"
+"Pode ser usado para remover a serigrafia sobreposta\n"
+"sobre a máscara de solda."
+
+#: AppTools/ToolSub.py:120
+msgid "Geometry Objects"
+msgstr "Objetos Geometria"
+
+#: AppTools/ToolSub.py:133
+msgid ""
+"Geometry object from which to subtract\n"
+"the subtractor Geometry object."
+msgstr ""
+"Objeto de geometria a partir do qual subtrair\n"
+"o objeto de geometria do substrator."
+
+#: AppTools/ToolSub.py:148
+msgid ""
+"Geometry object that will be subtracted\n"
+"from the target Geometry object."
+msgstr ""
+"Objeto de geometria que será subtraído\n"
+"do objeto de geometria de destino."
+
+#: AppTools/ToolSub.py:156
+msgid ""
+"Checking this will close the paths cut by the Geometry subtractor object."
+msgstr ""
+"Marcar isso fechará os caminhos cortados pelo objeto substrair Geometria."
+
+#: AppTools/ToolSub.py:159
+msgid "Subtract Geometry"
+msgstr "Subtrair Geometria"
+
+#: AppTools/ToolSub.py:161
+msgid ""
+"Will remove the area occupied by the subtractor\n"
+"Geometry from the Target Geometry."
+msgstr ""
+"Removerá a área ocupada pela geometria subtrator\n"
+"da Geometria de destino."
+
+#: AppTools/ToolSub.py:263
+msgid "Sub Tool"
+msgstr "Ferramenta Sub"
+
+#: AppTools/ToolSub.py:284 AppTools/ToolSub.py:489
+msgid "No Target object loaded."
+msgstr "Nenhum objeto de destino foi carregado."
+
+#: AppTools/ToolSub.py:287
+msgid "Loading geometry from Gerber objects."
+msgstr "Carregando geometria de objetos Gerber."
+
+#: AppTools/ToolSub.py:299 AppTools/ToolSub.py:504
+msgid "No Subtractor object loaded."
+msgstr "Nenhum objeto Subtrator carregado."
+
+#: AppTools/ToolSub.py:331
+msgid "Processing geometry from Subtractor Gerber object."
+msgstr "Processando Geometria do objeto Subtrator Gerber."
+
+#: AppTools/ToolSub.py:352
+msgid "Parsing geometry for aperture"
+msgstr "Analisando geometria para abertura"
+
+#: AppTools/ToolSub.py:413
+msgid "Finished parsing geometry for aperture"
+msgstr "Análise de geometria para abertura concluída"
+
+#: AppTools/ToolSub.py:458 AppTools/ToolSub.py:661
+msgid "Generating new object ..."
+msgstr "Gerando novo objeto ..."
+
+#: AppTools/ToolSub.py:462 AppTools/ToolSub.py:665 AppTools/ToolSub.py:746
+msgid "Generating new object failed."
+msgstr "A geração de novo objeto falhou."
+
+#: AppTools/ToolSub.py:467 AppTools/ToolSub.py:671
+msgid "Created"
+msgstr "Criado"
+
+#: AppTools/ToolSub.py:518
+msgid "Currently, the Subtractor geometry cannot be of type Multigeo."
+msgstr "Atualmente, a geometria do Subtrator não pode ser do tipo MultiGeo."
+
+#: AppTools/ToolSub.py:563
+msgid "Parsing solid_geometry ..."
+msgstr "Analisando solid_geometry ..."
+
+#: AppTools/ToolSub.py:565
+msgid "Parsing solid_geometry for tool"
+msgstr "Analisando solid_geometry para ferramenta"
+
+#: AppTools/ToolTransform.py:23
+msgid "Object Transform"
+msgstr "Transformação de Objeto"
+
+#: AppTools/ToolTransform.py:78
+msgid ""
+"Rotate the selected object(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected objects."
+msgstr ""
+"Gira o(s) objeto(s) selecionado(s).\n"
+"O ponto de referência é o meio da\n"
+"caixa delimitadora para todos os objetos selecionados."
+
+#: AppTools/ToolTransform.py:99 AppTools/ToolTransform.py:120
+msgid ""
+"Angle for Skew action, in degrees.\n"
+"Float number between -360 and 360."
+msgstr ""
+"Ângulo de inclinação, em graus.\n"
+"Número flutuante entre -360 e 360."
+
+#: AppTools/ToolTransform.py:109 AppTools/ToolTransform.py:130
+msgid ""
+"Skew/shear the selected object(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected objects."
+msgstr ""
+"Inclinar/distorcer o(s) objeto(s) selecionado(s).\n"
+"O ponto de referência é o meio da\n"
+"caixa delimitadora para todos os objetos selecionados."
+
+#: AppTools/ToolTransform.py:159 AppTools/ToolTransform.py:179
+msgid ""
+"Scale the selected object(s).\n"
+"The point of reference depends on \n"
+"the Scale reference checkbox state."
+msgstr ""
+"Redimensiona o(s) objeto(s) selecionado(s).\n"
+"O ponto de referência depende\n"
+"do estado da caixa de seleção Escala de referência."
+
+#: AppTools/ToolTransform.py:228 AppTools/ToolTransform.py:248
+msgid ""
+"Offset the selected object(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected objects.\n"
+msgstr ""
+"Desloca o(s) objeto(s) selecionado(s).\n"
+"O ponto de referência é o meio da\n"
+"caixa delimitadora para todos os objetos selecionados.\n"
+
+#: AppTools/ToolTransform.py:268 AppTools/ToolTransform.py:273
+msgid "Flip the selected object(s) over the X axis."
+msgstr "Espelha o(s) objeto(s) selecionado(s) no eixo X."
+
+#: AppTools/ToolTransform.py:297
+msgid "Ref. Point"
+msgstr "Ponto de Referência"
+
+#: AppTools/ToolTransform.py:348
+msgid ""
+"Create the buffer effect on each geometry,\n"
+"element from the selected object, using the distance."
+msgstr ""
+"Crie o efeito de buffer em cada geometria,\n"
+"elemento do objeto selecionado, usando a distância."
+
+#: AppTools/ToolTransform.py:374
+msgid ""
+"Create the buffer effect on each geometry,\n"
+"element from the selected object, using the factor."
+msgstr ""
+"Crie o efeito de buffer em cada geometria,\n"
+"elemento do objeto selecionado, usando o fator."
+
+#: AppTools/ToolTransform.py:479
+msgid "Buffer D"
+msgstr "Buffer D"
+
+#: AppTools/ToolTransform.py:480
+msgid "Buffer F"
+msgstr "Buffer F"
+
+#: AppTools/ToolTransform.py:557
+msgid "Rotate transformation can not be done for a value of 0."
+msgstr "A rotação não pode ser feita para um valor 0."
+
+#: AppTools/ToolTransform.py:596 AppTools/ToolTransform.py:619
+msgid "Scale transformation can not be done for a factor of 0 or 1."
+msgstr "O redimensionamento não pode ser feito para um fator 0 ou 1."
+
+#: AppTools/ToolTransform.py:634 AppTools/ToolTransform.py:644
+msgid "Offset transformation can not be done for a value of 0."
+msgstr "O deslocamento não pode ser feito para um valor 0."
+
+#: AppTools/ToolTransform.py:676
+msgid "No object selected. Please Select an object to rotate!"
+msgstr "Nenhum objeto selecionado. Por favor, selecione um objeto para girar!"
+
+#: AppTools/ToolTransform.py:702
+msgid "CNCJob objects can't be rotated."
+msgstr "Objetos Trabalho CNC não podem ser girados."
+
+#: AppTools/ToolTransform.py:710
+msgid "Rotate done"
+msgstr "Rotação pronta"
+
+#: AppTools/ToolTransform.py:713 AppTools/ToolTransform.py:783
+#: AppTools/ToolTransform.py:833 AppTools/ToolTransform.py:887
+#: AppTools/ToolTransform.py:917 AppTools/ToolTransform.py:953
+msgid "Due of"
+msgstr "Devido"
+
+#: AppTools/ToolTransform.py:713 AppTools/ToolTransform.py:783
+#: AppTools/ToolTransform.py:833 AppTools/ToolTransform.py:887
+#: AppTools/ToolTransform.py:917 AppTools/ToolTransform.py:953
+msgid "action was not executed."
+msgstr "a ação não foi realizada."
+
+#: AppTools/ToolTransform.py:725
+msgid "No object selected. Please Select an object to flip"
+msgstr ""
+"Nenhum objeto selecionado. Por favor, selecione um objeto para espelhar"
+
+#: AppTools/ToolTransform.py:758
+msgid "CNCJob objects can't be mirrored/flipped."
+msgstr "Objetos Trabalho CNC não podem ser espelhados/invertidos."
+
+#: AppTools/ToolTransform.py:793
+msgid "Skew transformation can not be done for 0, 90 and 180 degrees."
+msgstr "A inclinação não pode ser feita para 0, 90 e 180 graus."
+
+#: AppTools/ToolTransform.py:798
+msgid "No object selected. Please Select an object to shear/skew!"
+msgstr ""
+"Nenhum objeto selecionado. Por favor, selecione um objeto para inclinar!"
+
+#: AppTools/ToolTransform.py:818
+msgid "CNCJob objects can't be skewed."
+msgstr "Objetos Trabalho CNC não podem ser inclinados."
+
+#: AppTools/ToolTransform.py:830
+msgid "Skew on the"
+msgstr "Inclinando no eixo"
+
+#: AppTools/ToolTransform.py:830 AppTools/ToolTransform.py:884
+#: AppTools/ToolTransform.py:914
+msgid "axis done"
+msgstr "concluído"
+
+#: AppTools/ToolTransform.py:844
+msgid "No object selected. Please Select an object to scale!"
+msgstr ""
+"Nenhum objeto selecionado. Por favor, selecione um objeto para redimensionar!"
+
+#: AppTools/ToolTransform.py:875
+msgid "CNCJob objects can't be scaled."
+msgstr "Objetos Trabalho CNC não podem ser redimensionados."
+
+#: AppTools/ToolTransform.py:884
+msgid "Scale on the"
+msgstr "Redimensionamento no eixo"
+
+#: AppTools/ToolTransform.py:894
+msgid "No object selected. Please Select an object to offset!"
+msgstr ""
+"Nenhum objeto selecionado. Por favor, selecione um objeto para deslocar!"
+
+#: AppTools/ToolTransform.py:901
+msgid "CNCJob objects can't be offset."
+msgstr "Objetos Trabalho CNC não podem ser deslocados."
+
+#: AppTools/ToolTransform.py:914
+msgid "Offset on the"
+msgstr "Deslocamento no eixo"
+
+#: AppTools/ToolTransform.py:924
+msgid "No object selected. Please Select an object to buffer!"
+msgstr ""
+"Nenhum objeto selecionado. Por favor, selecione um objeto para armazenar em "
+"buffer!"
+
+#: AppTools/ToolTransform.py:927
+msgid "Applying Buffer"
+msgstr "Aplicando Buffer"
+
+#: AppTools/ToolTransform.py:931
+msgid "CNCJob objects can't be buffered."
+msgstr "Os objetos CNCJob não podem ser armazenados em buffer."
+
+#: AppTools/ToolTransform.py:948
+msgid "Buffer done"
+msgstr "Buffer concluído"
+
+#: AppTranslation.py:104
+msgid "The application will restart."
+msgstr "O aplicativo reiniciará."
+
+#: AppTranslation.py:106
+msgid "Are you sure do you want to change the current language to"
+msgstr "Você tem certeza de que quer alterar o idioma para"
+
+#: AppTranslation.py:107
+msgid "Apply Language ..."
+msgstr "Aplicar o Idioma ..."
+
+#: AppTranslation.py:201 App_Main.py:3047
+msgid ""
+"There are files/objects modified in FlatCAM. \n"
+"Do you want to Save the project?"
+msgstr ""
+"Existem arquivos/objetos modificados no FlatCAM. \n"
+"Você quer salvar o projeto?"
+
+#: AppTranslation.py:204 App_Main.py:3050 App_Main.py:6334
+msgid "Save changes"
+msgstr "Salvar alterações"
+
+#: App_Main.py:477
msgid "FlatCAM is initializing ..."
msgstr "FlatCAM está inicializando...."
-#: FlatCAMApp.py:639
+#: App_Main.py:620
msgid "Could not find the Language files. The App strings are missing."
msgstr ""
"Não foi possível encontrar os arquivos de idioma. Estão faltando as strings "
"do aplicativo."
-#: FlatCAMApp.py:709
+#: App_Main.py:692
msgid ""
"FlatCAM is initializing ...\n"
"Canvas initialization started."
@@ -36,7 +16695,7 @@ msgstr ""
"FlatCAM está inicializando....\n"
"Inicialização do Canvas iniciada."
-#: FlatCAMApp.py:729
+#: App_Main.py:712
msgid ""
"FlatCAM is initializing ...\n"
"Canvas initialization started.\n"
@@ -46,63 +16705,44 @@ msgstr ""
"Inicialização do Canvas iniciada.\n"
"Inicialização do Canvas concluída em"
-#: FlatCAMApp.py:1593 FlatCAMApp.py:7451
+#: App_Main.py:1542 App_Main.py:6445
msgid "New Project - Not saved"
msgstr "Novo Projeto - Não salvo"
-#: FlatCAMApp.py:1689
+#: App_Main.py:1643
msgid ""
"Found old default preferences files. Please reboot the application to update."
msgstr ""
"Arquivos de preferências padrão antigos encontrados. Por favor, reinicie o "
"aplicativo para atualizar."
-#: FlatCAMApp.py:1740 FlatCAMApp.py:2512 FlatCAMApp.py:2547 FlatCAMApp.py:2594
-#: FlatCAMApp.py:4540 FlatCAMApp.py:7535 FlatCAMApp.py:7572 FlatCAMApp.py:7614
-#: FlatCAMApp.py:7643 FlatCAMApp.py:7684 FlatCAMApp.py:7709 FlatCAMApp.py:7761
-#: FlatCAMApp.py:7796 FlatCAMApp.py:7841 FlatCAMApp.py:7882 FlatCAMApp.py:7923
-#: FlatCAMApp.py:7964 FlatCAMApp.py:8005 FlatCAMApp.py:8049 FlatCAMApp.py:8105
-#: FlatCAMApp.py:8137 FlatCAMApp.py:8169 FlatCAMApp.py:8402 FlatCAMApp.py:8440
-#: FlatCAMApp.py:8483 FlatCAMApp.py:8560 FlatCAMApp.py:8615
-#: FlatCAMBookmark.py:300 FlatCAMBookmark.py:342 FlatCAMDB.py:663
-#: FlatCAMDB.py:709 FlatCAMDB.py:2125 FlatCAMDB.py:2171
-#: flatcamEditors/FlatCAMExcEditor.py:1023
-#: flatcamEditors/FlatCAMExcEditor.py:1091
-#: flatcamEditors/FlatCAMTextEditor.py:223 flatcamGUI/FlatCAMGUI.py:3443
-#: flatcamGUI/FlatCAMGUI.py:3659 flatcamGUI/FlatCAMGUI.py:3874
-#: flatcamObjects/ObjectCollection.py:126 flatcamTools/ToolFilm.py:754
-#: flatcamTools/ToolFilm.py:900 flatcamTools/ToolImage.py:247
-#: flatcamTools/ToolMove.py:269 flatcamTools/ToolPcbWizard.py:301
-#: flatcamTools/ToolPcbWizard.py:324 flatcamTools/ToolQRCode.py:791
-#: flatcamTools/ToolQRCode.py:838
-msgid "Cancelled."
-msgstr "Cancelado."
-
-#: FlatCAMApp.py:1756
+#: App_Main.py:1710
msgid "Open Config file failed."
msgstr "Falha ao abrir o arquivo de Configuração."
-#: FlatCAMApp.py:1771
+#: App_Main.py:1725
msgid "Open Script file failed."
msgstr "Falha ao abrir o arquivo de Script."
-#: FlatCAMApp.py:1797
+#: App_Main.py:1751
msgid "Open Excellon file failed."
msgstr "Falha ao abrir o arquivo Excellon."
-#: FlatCAMApp.py:1810
+#: App_Main.py:1764
msgid "Open GCode file failed."
msgstr "Falha ao abrir o arquivo G-Code."
-#: FlatCAMApp.py:1823
+#: App_Main.py:1777
msgid "Open Gerber file failed."
msgstr "Falha ao abrir o arquivo Gerber."
-#: FlatCAMApp.py:2131
-msgid "Select a Geometry, Gerber or Excellon Object to edit."
+#: App_Main.py:2095
+#, fuzzy
+#| msgid "Select a Geometry, Gerber or Excellon Object to edit."
+msgid "Select a Geometry, Gerber, Excellon or CNCJob Object to edit."
msgstr "Selecione um Objeto Geometria, Gerber ou Excellon para editar."
-#: FlatCAMApp.py:2146
+#: App_Main.py:2110
msgid ""
"Simultaneous editing of tools geometry in a MultiGeo Geometry is not "
"possible.\n"
@@ -112,198 +16752,91 @@ msgstr ""
"possível. \n"
"Edite apenas uma geometria por vez."
-#: FlatCAMApp.py:2204
+#: App_Main.py:2176
msgid "Editor is activated ..."
msgstr "Editor está ativado ..."
-#: FlatCAMApp.py:2225
+#: App_Main.py:2197
msgid "Do you want to save the edited object?"
msgstr "Você quer salvar o objeto editado?"
-#: FlatCAMApp.py:2226 flatcamGUI/FlatCAMGUI.py:2288
-msgid "Close Editor"
-msgstr "Fechar Editor"
-
-#: FlatCAMApp.py:2229 FlatCAMApp.py:3518 FlatCAMApp.py:6085 FlatCAMApp.py:7345
-#: FlatCAMTranslation.py:109 FlatCAMTranslation.py:207
-#: flatcamGUI/FlatCAMGUI.py:2519
-#: flatcamGUI/preferences/PreferencesUIManager.py:1122
-msgid "Yes"
-msgstr "Sim"
-
-#: FlatCAMApp.py:2230 FlatCAMApp.py:3519 FlatCAMApp.py:6086 FlatCAMApp.py:7346
-#: FlatCAMTranslation.py:110 FlatCAMTranslation.py:208
-#: flatcamGUI/FlatCAMGUI.py:2520
-#: flatcamGUI/preferences/PreferencesUIManager.py:1123
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:164
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:150
-#: flatcamTools/ToolNCC.py:182 flatcamTools/ToolPaint.py:166
-msgid "No"
-msgstr "Não"
-
-#: FlatCAMApp.py:2231 FlatCAMApp.py:3520 FlatCAMApp.py:4478 FlatCAMApp.py:5103
-#: FlatCAMApp.py:7347 FlatCAMDB.py:128 FlatCAMDB.py:1689
-#: flatcamGUI/FlatCAMGUI.py:1347
-msgid "Cancel"
-msgstr "Cancelar"
-
-#: FlatCAMApp.py:2263
+#: App_Main.py:2235
msgid "Object empty after edit."
msgstr "Objeto vazio após a edição."
-#: FlatCAMApp.py:2267 FlatCAMApp.py:2288 FlatCAMApp.py:2310
+#: App_Main.py:2239 App_Main.py:2260 App_Main.py:2282
msgid "Editor exited. Editor content saved."
msgstr "Editor fechado. Conteúdo salvo."
-#: FlatCAMApp.py:2314 FlatCAMApp.py:2337 FlatCAMApp.py:2355
+#: App_Main.py:2286 App_Main.py:2309 App_Main.py:2327
msgid "Select a Gerber, Geometry or Excellon Object to update."
msgstr "Selecione um objeto Gerber, Geometria ou Excellon para atualizar."
-#: FlatCAMApp.py:2317
+#: App_Main.py:2289
msgid "is updated, returning to App..."
msgstr "está atualizado, retornando ao App..."
-#: FlatCAMApp.py:2324
+#: App_Main.py:2296
msgid "Editor exited. Editor content was not saved."
msgstr "Editor fechado. Conteúdo não salvo."
-#: FlatCAMApp.py:2504 FlatCAMApp.py:2508
+#: App_Main.py:2422 App_Main.py:2426
msgid "Import FlatCAM Preferences"
msgstr "Importar Preferências do FlatCAM"
-#: FlatCAMApp.py:2519
+#: App_Main.py:2437
msgid "Imported Defaults from"
msgstr "Padrões importados de"
-#: FlatCAMApp.py:2539 FlatCAMApp.py:2544
+#: App_Main.py:2457 App_Main.py:2462
msgid "Export FlatCAM Preferences"
msgstr "Exportar Preferências do FlatCAM"
-#: FlatCAMApp.py:2558 FlatCAMApp.py:2626
-#: flatcamGUI/preferences/PreferencesUIManager.py:1018
-msgid "Failed to write defaults to file."
-msgstr "Falha ao gravar os padrões no arquivo."
-
-#: FlatCAMApp.py:2564
+#: App_Main.py:2482
msgid "Exported preferences to"
msgstr "Preferências exportadas para"
-#: FlatCAMApp.py:2584 FlatCAMApp.py:2589
+#: App_Main.py:2502 App_Main.py:2507
msgid "Save to file"
msgstr "Salvar em arquivo"
-#: FlatCAMApp.py:2602 FlatCAMApp.py:8859 FlatCAMApp.py:8907 FlatCAMApp.py:9032
-#: FlatCAMApp.py:9168 FlatCAMBookmark.py:308 FlatCAMDB.py:671 FlatCAMDB.py:2133
-#: flatcamEditors/FlatCAMTextEditor.py:276 flatcamObjects/FlatCAMCNCJob.py:959
-#: flatcamTools/ToolFilm.py:1031 flatcamTools/ToolFilm.py:1212
-#: flatcamTools/ToolSolderPaste.py:1534
-msgid ""
-"Permission denied, saving not possible.\n"
-"Most likely another app is holding the file open and not accessible."
-msgstr ""
-"Permissão negada, não é possível salvar.\n"
-"É provável que outro aplicativo esteja mantendo o arquivo aberto e não "
-"acessível."
-
-#: FlatCAMApp.py:2613
+#: App_Main.py:2531
msgid "Could not load the file."
msgstr "Não foi possível carregar o arquivo."
-#: FlatCAMApp.py:2629
+#: App_Main.py:2547
msgid "Exported file to"
msgstr "Arquivo exportado para"
-#: FlatCAMApp.py:2712
+#: App_Main.py:2584
msgid "Failed to open recent files file for writing."
msgstr "Falha ao abrir o arquivo com lista de arquivos recentes para gravação."
-#: FlatCAMApp.py:2723
+#: App_Main.py:2595
msgid "Failed to open recent projects file for writing."
msgstr "Falha ao abrir o arquivo com lista de projetos recentes para gravação."
-#: FlatCAMApp.py:2806 FlatCAMApp.py:9377 FlatCAMApp.py:9441 FlatCAMApp.py:9572
-#: FlatCAMApp.py:9637 FlatCAMApp.py:10287
-#: flatcamEditors/FlatCAMGrbEditor.py:4364
-#: flatcamObjects/FlatCAMGeometry.py:1725 flatcamParsers/ParseExcellon.py:897
-#: flatcamTools/ToolPcbWizard.py:432
-msgid "An internal error has occurred. See shell.\n"
-msgstr "Ocorreu um erro interno. Veja shell (linha de comando).\n"
-
-#: FlatCAMApp.py:2807
-#, python-brace-format
-msgid ""
-"Object ({kind}) failed because: {error} \n"
-"\n"
-msgstr ""
-"Objeto ({kind}) falhou porque: {error} \n"
-"\n"
-
-#: FlatCAMApp.py:2822
-msgid "Converting units to "
-msgstr "Convertendo unidades para "
-
-#: FlatCAMApp.py:2931
-msgid "CREATE A NEW FLATCAM TCL SCRIPT"
-msgstr "CRIAR UM NOVO SCRIPT FLATCAM TCL"
-
-#: FlatCAMApp.py:2932
-msgid "TCL Tutorial is here"
-msgstr "Tutorial TCL está aqui"
-
-#: FlatCAMApp.py:2934
-msgid "FlatCAM commands list"
-msgstr "Lista de comandos FlatCAM"
-
-#: FlatCAMApp.py:2935
-msgid ""
-"Type >help< followed by Run Code for a list of FlatCAM Tcl Commands "
-"(displayed in Tcl Shell)."
-msgstr ""
-"Digite >help< Run Code para uma lista de comandos TCL FlatCAM (mostrados na "
-"linha de comando)."
-
-#: FlatCAMApp.py:2982 FlatCAMApp.py:2988 FlatCAMApp.py:2994 FlatCAMApp.py:3000
-#: FlatCAMApp.py:3006 FlatCAMApp.py:3012
-msgid "created/selected"
-msgstr "criado / selecionado"
-
-#: FlatCAMApp.py:3027 FlatCAMApp.py:5189 flatcamObjects/FlatCAMObj.py:248
-#: flatcamObjects/FlatCAMObj.py:279 flatcamObjects/FlatCAMObj.py:295
-#: flatcamObjects/FlatCAMObj.py:375 flatcamTools/ToolCopperThieving.py:1481
-#: flatcamTools/ToolFiducials.py:809 flatcamTools/ToolMove.py:229
-#: flatcamTools/ToolQRCode.py:728
-msgid "Plotting"
-msgstr "Plotando"
-
-#: FlatCAMApp.py:3090 flatcamGUI/FlatCAMGUI.py:545
-msgid "About FlatCAM"
-msgstr "Sobre FlatCAM"
-
-#: FlatCAMApp.py:3116
+#: App_Main.py:2650
msgid "2D Computer-Aided Printed Circuit Board Manufacturing"
msgstr "Fabricação de Placas de Circuito Impresso 2D Assistida por Computador"
-#: FlatCAMApp.py:3117
+#: App_Main.py:2651
msgid "Development"
msgstr "Desenvolvimento"
-#: FlatCAMApp.py:3118
+#: App_Main.py:2652
msgid "DOWNLOAD"
msgstr "DOWNLOAD"
-#: FlatCAMApp.py:3119
+#: App_Main.py:2653
msgid "Issue tracker"
msgstr "Rastreador de problemas"
-#: FlatCAMApp.py:3123 FlatCAMApp.py:3484 flatcamGUI/GUIElements.py:2583
-msgid "Close"
-msgstr "Fechar"
-
-#: FlatCAMApp.py:3138
+#: App_Main.py:2672
msgid "Licensed under the MIT license"
msgstr "Licenciado sob licença do MIT"
-#: FlatCAMApp.py:3147
+#: App_Main.py:2681
msgid ""
"Permission is hereby granted, free of charge, to any person obtaining a "
"copy\n"
@@ -351,7 +16884,7 @@ msgstr ""
"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n"
"THE SOFTWARE."
-#: FlatCAMApp.py:3169
+#: App_Main.py:2703
msgid ""
"Some of the icons used are from the following sources:
Ícones por oNline Web Fonts"
-#: FlatCAMApp.py:3202
+#: App_Main.py:2736
msgid "Splash"
msgstr "Abertura"
-#: FlatCAMApp.py:3208
+#: App_Main.py:2742
msgid "Programmers"
msgstr "Programadores"
-#: FlatCAMApp.py:3214
+#: App_Main.py:2748
msgid "Translators"
msgstr "Tradutores"
-#: FlatCAMApp.py:3220
+#: App_Main.py:2754
msgid "License"
msgstr "Licença"
-#: FlatCAMApp.py:3226
+#: App_Main.py:2760
msgid "Attributions"
msgstr "Atribuições"
-#: FlatCAMApp.py:3249
+#: App_Main.py:2783
msgid "Programmer"
msgstr "Programador"
-#: FlatCAMApp.py:3250
+#: App_Main.py:2784
msgid "Status"
msgstr "Status"
-#: FlatCAMApp.py:3251 FlatCAMApp.py:3331
+#: App_Main.py:2785 App_Main.py:2865
msgid "E-mail"
msgstr "E-mail"
-#: FlatCAMApp.py:3259
+#: App_Main.py:2788
+msgid "Program Author"
+msgstr "Autor do Programa"
+
+#: App_Main.py:2793
msgid "BETA Maintainer >= 2019"
msgstr "Mantenedor BETA >= 2019"
-#: FlatCAMApp.py:3328
+#: App_Main.py:2862
msgid "Language"
msgstr "Idioma"
-#: FlatCAMApp.py:3329
+#: App_Main.py:2863
msgid "Translator"
msgstr "Tradutor"
-#: FlatCAMApp.py:3330
+#: App_Main.py:2864
msgid "Corrections"
msgstr "Correções"
-#: FlatCAMApp.py:3455 FlatCAMApp.py:3464 flatcamGUI/FlatCAMGUI.py:527
-msgid "Bookmarks Manager"
-msgstr "Gerenciados de Favoritos"
-
-#: FlatCAMApp.py:3475
+#: App_Main.py:3009
msgid ""
"This entry will resolve to another website if:\n"
"\n"
@@ -439,49 +16972,33 @@ msgstr ""
"Se você não conseguir obter informações sobre o FlatCAM beta\n"
"use o link do canal do YouTube no menu Ajuda."
-#: FlatCAMApp.py:3482
+#: App_Main.py:3016
msgid "Alternative website"
msgstr "Site alternativo"
-#: FlatCAMApp.py:3508 flatcamGUI/FlatCAMGUI.py:4267
-msgid "Application is saving the project. Please wait ..."
-msgstr "O aplicativo está salvando o projeto. Por favor, espere ..."
-
-#: FlatCAMApp.py:3513 FlatCAMTranslation.py:202
-msgid ""
-"There are files/objects modified in FlatCAM. \n"
-"Do you want to Save the project?"
-msgstr ""
-"Existem arquivos/objetos modificados no FlatCAM. \n"
-"Você quer salvar o projeto?"
-
-#: FlatCAMApp.py:3516 FlatCAMApp.py:7343 FlatCAMTranslation.py:205
-msgid "Save changes"
-msgstr "Salvar alterações"
-
-#: FlatCAMApp.py:3778
+#: App_Main.py:3315
msgid "Selected Excellon file extensions registered with FlatCAM."
msgstr ""
"As extensões de arquivo Excellon selecionadas foram registradas para o "
"FlatCAM."
-#: FlatCAMApp.py:3800
+#: App_Main.py:3337
msgid "Selected GCode file extensions registered with FlatCAM."
msgstr ""
"As extensões de arquivo G-Code selecionadas foram registradas para o FlatCAM."
-#: FlatCAMApp.py:3822
+#: App_Main.py:3359
msgid "Selected Gerber file extensions registered with FlatCAM."
msgstr ""
"As extensões de arquivo Gerber selecionadas foram registradas para o FlatCAM."
-#: FlatCAMApp.py:4010 FlatCAMApp.py:4069 FlatCAMApp.py:4097
+#: App_Main.py:3547 App_Main.py:3606 App_Main.py:3634
msgid "At least two objects are required for join. Objects currently selected"
msgstr ""
"São necessários pelo menos dois objetos para unir. Objetos atualmente "
"selecionados"
-#: FlatCAMApp.py:4019
+#: App_Main.py:3556
msgid ""
"Failed join. The Geometry objects are of different types.\n"
"At least one is MultiGeo type and the other is SingleGeo type. A possibility "
@@ -497,47 +17014,47 @@ msgstr ""
"perdidas e o resultado pode não ser o esperado.\n"
"Verifique o G-CODE gerado."
-#: FlatCAMApp.py:4031 FlatCAMApp.py:4041
+#: App_Main.py:3568 App_Main.py:3578
msgid "Geometry merging finished"
msgstr "Fusão de geometria concluída"
-#: FlatCAMApp.py:4064
+#: App_Main.py:3601
msgid "Failed. Excellon joining works only on Excellon objects."
msgstr "Falha. A união de Excellon funciona apenas em objetos Excellon."
-#: FlatCAMApp.py:4074
+#: App_Main.py:3611
msgid "Excellon merging finished"
msgstr "Fusão de Excellon concluída"
-#: FlatCAMApp.py:4092
+#: App_Main.py:3629
msgid "Failed. Gerber joining works only on Gerber objects."
msgstr "Falha. A união de Gerber funciona apenas em objetos Gerber."
-#: FlatCAMApp.py:4102
+#: App_Main.py:3639
msgid "Gerber merging finished"
msgstr "Fusão de Gerber concluída"
-#: FlatCAMApp.py:4122 FlatCAMApp.py:4159
+#: App_Main.py:3659 App_Main.py:3696
msgid "Failed. Select a Geometry Object and try again."
msgstr "Falha. Selecione um Objeto de Geometria e tente novamente."
-#: FlatCAMApp.py:4126 FlatCAMApp.py:4164
+#: App_Main.py:3663 App_Main.py:3701
msgid "Expected a GeometryObject, got"
msgstr "Geometria FlatCAM esperada, recebido"
-#: FlatCAMApp.py:4141
+#: App_Main.py:3678
msgid "A Geometry object was converted to MultiGeo type."
msgstr "Um objeto Geometria foi convertido para o tipo MultiGeo."
-#: FlatCAMApp.py:4179
+#: App_Main.py:3716
msgid "A Geometry object was converted to SingleGeo type."
msgstr "Um objeto Geometria foi convertido para o tipo Único."
-#: FlatCAMApp.py:4472
+#: App_Main.py:3922
msgid "Toggle Units"
msgstr "Alternar Unidades"
-#: FlatCAMApp.py:4474
+#: App_Main.py:3924
msgid ""
"Changing the units of the project\n"
"will scale all objects.\n"
@@ -549,33 +17066,68 @@ msgstr ""
"\n"
"Você quer continuar?"
-#: FlatCAMApp.py:4477 FlatCAMApp.py:5025 FlatCAMApp.py:5102 FlatCAMApp.py:7728
-#: FlatCAMApp.py:7742 FlatCAMApp.py:8075 FlatCAMApp.py:8085
+#: App_Main.py:3927 App_Main.py:4201 App_Main.py:4278 App_Main.py:6722
+#: App_Main.py:6736 App_Main.py:7069 App_Main.py:7079
msgid "Ok"
msgstr "Ok"
-#: FlatCAMApp.py:4526
+#: App_Main.py:3977
msgid "Converted units to"
msgstr "Unidades convertidas para"
-#: FlatCAMApp.py:4928
+#: App_Main.py:4019
+#, fuzzy
+#| msgid "All plots enabled."
+msgid "Axis enabled."
+msgstr "Todos os gráficos habilitados."
+
+#: App_Main.py:4031
+#, fuzzy
+#| msgid "All plots disabled."
+msgid "Axis disabled."
+msgstr "Todos os gráficos desabilitados."
+
+#: App_Main.py:4039
+#, fuzzy
+#| msgid "Disabled"
+msgid "HUD disabled."
+msgstr "Desativado"
+
+#: App_Main.py:4041
+#, fuzzy
+#| msgid "Enabled"
+msgid "HUD enabled."
+msgstr "Ativado"
+
+#: App_Main.py:4065
+#, fuzzy
+#| msgid "Workspace Settings"
+msgid "Grid enabled."
+msgstr "Configurações da área de trabalho"
+
+#: App_Main.py:4080
+#, fuzzy
+#| msgid "Workspace Settings"
+msgid "Grid disabled."
+msgstr "Configurações da área de trabalho"
+
+#: App_Main.py:4101
msgid "Detachable Tabs"
msgstr "Abas Destacáveis"
-#: FlatCAMApp.py:5014 flatcamTools/ToolNCC.py:932 flatcamTools/ToolNCC.py:1431
-#: flatcamTools/ToolPaint.py:858 flatcamTools/ToolSolderPaste.py:568
-#: flatcamTools/ToolSolderPaste.py:893
-msgid "Please enter a tool diameter with non-zero value, in Float format."
-msgstr ""
-"Insira um diâmetro de ferramenta com valor diferente de zero, no formato "
-"Flutuante."
+#: App_Main.py:4130
+#, fuzzy
+#| msgid "Workspace Settings"
+msgid "Workspace enabled."
+msgstr "Configurações da área de trabalho"
-#: FlatCAMApp.py:5018 flatcamTools/ToolNCC.py:936 flatcamTools/ToolPaint.py:862
-#: flatcamTools/ToolSolderPaste.py:572
-msgid "Adding Tool cancelled"
-msgstr "Adicionar ferramenta cancelada"
+#: App_Main.py:4133
+#, fuzzy
+#| msgid "Workspace Settings"
+msgid "Workspace disabled."
+msgstr "Configurações da área de trabalho"
-#: FlatCAMApp.py:5021
+#: App_Main.py:4197
msgid ""
"Adding Tool works only when Advanced is checked.\n"
"Go to Preferences -> General - Show Advanced Options."
@@ -583,11 +17135,11 @@ msgstr ""
"Adicionar Ferramenta funciona somente no modo Avançado.\n"
"Vá em Preferências -> Geral - Mostrar Opções Avançadas."
-#: FlatCAMApp.py:5097
+#: App_Main.py:4273
msgid "Delete objects"
msgstr "Excluir objetos"
-#: FlatCAMApp.py:5100
+#: App_Main.py:4276
msgid ""
"Are you sure you want to permanently delete\n"
"the selected objects?"
@@ -595,147 +17147,86 @@ msgstr ""
"Você tem certeza de que deseja excluir permanentemente\n"
"os objetos selecionados?"
-#: FlatCAMApp.py:5138
+#: App_Main.py:4314
msgid "Object(s) deleted"
msgstr "Objeto(s) excluído(s)"
-#: FlatCAMApp.py:5142 FlatCAMApp.py:5297 flatcamTools/ToolDblSided.py:818
-msgid "Failed. No object(s) selected..."
-msgstr "Falha. Nenhum objeto selecionado..."
-
-#: FlatCAMApp.py:5144
+#: App_Main.py:4324
msgid "Save the work in Editor and try again ..."
msgstr "Salve o trabalho no Editor e tente novamente ..."
-#: FlatCAMApp.py:5173
+#: App_Main.py:4353
msgid "Object deleted"
msgstr "Objeto excluído"
-#: FlatCAMApp.py:5200
+#: App_Main.py:4380
msgid "Click to set the origin ..."
msgstr "Clique para definir a origem ..."
-#: FlatCAMApp.py:5222
+#: App_Main.py:4402
msgid "Setting Origin..."
msgstr "Definindo Origem..."
-#: FlatCAMApp.py:5235 FlatCAMApp.py:5337
+#: App_Main.py:4415 App_Main.py:4517
msgid "Origin set"
msgstr "Origem definida"
-#: FlatCAMApp.py:5252
+#: App_Main.py:4432
msgid "Origin coordinates specified but incomplete."
msgstr "Coordenadas de origem especificadas, mas incompletas."
-#: FlatCAMApp.py:5293
+#: App_Main.py:4473
msgid "Moving to Origin..."
msgstr "Movendo para Origem..."
-#: FlatCAMApp.py:5374
+#: App_Main.py:4554
msgid "Jump to ..."
msgstr "Pular para ..."
-#: FlatCAMApp.py:5375
+#: App_Main.py:4555
msgid "Enter the coordinates in format X,Y:"
msgstr "Digite as coordenadas no formato X,Y:"
-#: FlatCAMApp.py:5385
+#: App_Main.py:4565
msgid "Wrong coordinates. Enter coordinates in format: X,Y"
msgstr "Coordenadas erradas. Insira as coordenadas no formato X,Y"
-#: FlatCAMApp.py:5463 FlatCAMApp.py:5612
-#: flatcamEditors/FlatCAMExcEditor.py:3624
-#: flatcamEditors/FlatCAMExcEditor.py:3632
-#: flatcamEditors/FlatCAMGeoEditor.py:4349
-#: flatcamEditors/FlatCAMGeoEditor.py:4363
-#: flatcamEditors/FlatCAMGrbEditor.py:1087
-#: flatcamEditors/FlatCAMGrbEditor.py:1204
-#: flatcamEditors/FlatCAMGrbEditor.py:1490
-#: flatcamEditors/FlatCAMGrbEditor.py:1759
-#: flatcamEditors/FlatCAMGrbEditor.py:4622
-#: flatcamEditors/FlatCAMGrbEditor.py:4637 flatcamGUI/FlatCAMGUI.py:3424
-#: flatcamGUI/FlatCAMGUI.py:3436 flatcamTools/ToolAlignObjects.py:393
-#: flatcamTools/ToolAlignObjects.py:415
-msgid "Done."
-msgstr "Pronto."
-
-#: FlatCAMApp.py:5478 FlatCAMApp.py:7724 FlatCAMApp.py:7819 FlatCAMApp.py:7860
-#: FlatCAMApp.py:7901 FlatCAMApp.py:7942 FlatCAMApp.py:7983 FlatCAMApp.py:8027
-#: FlatCAMApp.py:8071 FlatCAMApp.py:8593 FlatCAMApp.py:8597
-#: flatcamTools/ToolProperties.py:116
-msgid "No object selected."
-msgstr "Nenhum objeto selecionado."
-
-#: FlatCAMApp.py:5497
+#: App_Main.py:4683
msgid "Bottom-Left"
msgstr "Esquerda Inferior"
-#: FlatCAMApp.py:5498 flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:131
-#: flatcamTools/ToolCalibration.py:159
-msgid "Top-Left"
-msgstr "Esquerda Superior"
-
-#: FlatCAMApp.py:5499 flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:132
-#: flatcamTools/ToolCalibration.py:160
-msgid "Bottom-Right"
-msgstr "Direita Inferior"
-
-#: FlatCAMApp.py:5500
+#: App_Main.py:4686
msgid "Top-Right"
msgstr "Direita Superior"
-#: FlatCAMApp.py:5501 flatcamGUI/ObjectUI.py:2706
-msgid "Center"
-msgstr "Centro"
-
-#: FlatCAMApp.py:5521
+#: App_Main.py:4707
msgid "Locate ..."
msgstr "Localizar ..."
-#: FlatCAMApp.py:5779 FlatCAMApp.py:5856
+#: App_Main.py:4970 App_Main.py:5047
msgid "No object is selected. Select an object and try again."
msgstr "Nenhum objeto está selecionado. Selecione um objeto e tente novamente."
-#: FlatCAMApp.py:5882
+#: App_Main.py:5073
msgid ""
"Aborting. The current task will be gracefully closed as soon as possible..."
msgstr ""
"Abortando. A tarefa atual será fechada normalmente o mais rápido possível ..."
-#: FlatCAMApp.py:5888
+#: App_Main.py:5079
msgid "The current task was gracefully closed on user request..."
msgstr ""
"A tarefa atual foi fechada normalmente mediante solicitação do usuário ..."
-#: FlatCAMApp.py:5916 flatcamGUI/preferences/PreferencesUIManager.py:905
-#: flatcamGUI/preferences/PreferencesUIManager.py:949
-#: flatcamGUI/preferences/PreferencesUIManager.py:970
-#: flatcamGUI/preferences/PreferencesUIManager.py:1075
-msgid "Preferences"
-msgstr "Preferências"
-
-#: FlatCAMApp.py:5981 FlatCAMApp.py:6009 FlatCAMApp.py:6036 FlatCAMApp.py:6056
-#: FlatCAMDB.py:738 FlatCAMDB.py:913 FlatCAMDB.py:2200 FlatCAMDB.py:2418
-#: flatcamObjects/FlatCAMGeometry.py:890 flatcamTools/ToolNCC.py:3963
-#: flatcamTools/ToolNCC.py:4047 flatcamTools/ToolPaint.py:3553
-#: flatcamTools/ToolPaint.py:3638
-msgid "Tools Database"
-msgstr "Banco de Dados de Ferramentas"
-
-#: FlatCAMApp.py:6033
+#: App_Main.py:5224
msgid "Tools in Tools Database edited but not saved."
msgstr "Ferramenta editada, mas não salva."
-#: FlatCAMApp.py:6060 flatcamTools/ToolNCC.py:3970
-#: flatcamTools/ToolPaint.py:3560
-msgid "Tool from DB added in Tool Table."
-msgstr "Ferramenta do Banco de Dados adicionada na Tabela de Ferramentas."
-
-#: FlatCAMApp.py:6062
+#: App_Main.py:5253
msgid "Adding tool from DB is not allowed for this object."
msgstr "Adição de ferramenta do Banco de Dados não permitida para este objeto."
-#: FlatCAMApp.py:6080
+#: App_Main.py:5271
msgid ""
"One or more Tools are edited.\n"
"Do you want to update the Tools Database?"
@@ -743,175 +17234,113 @@ msgstr ""
"Um ou mais Ferramentas foram editadas.\n"
"Você deseja salvar o Banco de Dados de Ferramentas?"
-#: FlatCAMApp.py:6082
+#: App_Main.py:5273
msgid "Save Tools Database"
msgstr "Salvar Banco de Dados"
-#: FlatCAMApp.py:6135
+#: App_Main.py:5326
msgid "No object selected to Flip on Y axis."
msgstr "Nenhum objeto selecionado para Espelhar no eixo Y."
-#: FlatCAMApp.py:6161
+#: App_Main.py:5352
msgid "Flip on Y axis done."
msgstr "Espelhado no eixo Y."
-#: FlatCAMApp.py:6163 FlatCAMApp.py:6211
-#: flatcamEditors/FlatCAMGrbEditor.py:6059
-msgid "Flip action was not executed."
-msgstr "A ação de espelhamento não foi executada."
-
-#: FlatCAMApp.py:6183
+#: App_Main.py:5374
msgid "No object selected to Flip on X axis."
msgstr "Nenhum objeto selecionado para Espelhar no eixo X."
-#: FlatCAMApp.py:6209
+#: App_Main.py:5400
msgid "Flip on X axis done."
msgstr "Espelhado no eixo X."
-#: FlatCAMApp.py:6231
+#: App_Main.py:5422
msgid "No object selected to Rotate."
msgstr "Nenhum objeto selecionado para Girar."
-#: FlatCAMApp.py:6234 FlatCAMApp.py:6287 FlatCAMApp.py:6326
+#: App_Main.py:5425 App_Main.py:5476 App_Main.py:5513
msgid "Transform"
msgstr "Transformar"
-#: FlatCAMApp.py:6234 FlatCAMApp.py:6287 FlatCAMApp.py:6326
+#: App_Main.py:5425 App_Main.py:5476 App_Main.py:5513
msgid "Enter the Angle value:"
msgstr "Digite o valor do Ângulo:"
-#: FlatCAMApp.py:6265
+#: App_Main.py:5455
msgid "Rotation done."
msgstr "Rotação realizada."
-#: FlatCAMApp.py:6267
+#: App_Main.py:5457
msgid "Rotation movement was not executed."
msgstr "O movimento de rotação não foi executado."
-#: FlatCAMApp.py:6285
+#: App_Main.py:5474
msgid "No object selected to Skew/Shear on X axis."
msgstr "Nenhum objeto selecionado para Inclinar no eixo X."
-#: FlatCAMApp.py:6307
+#: App_Main.py:5495
msgid "Skew on X axis done."
msgstr "Inclinação no eixo X concluída."
-#: FlatCAMApp.py:6324
+#: App_Main.py:5511
msgid "No object selected to Skew/Shear on Y axis."
msgstr "Nenhum objeto selecionado para Inclinar no eixo Y."
-#: FlatCAMApp.py:6346
+#: App_Main.py:5532
msgid "Skew on Y axis done."
msgstr "Inclinação no eixo Y concluída."
-#: FlatCAMApp.py:6497 FlatCAMApp.py:6544 flatcamGUI/FlatCAMGUI.py:503
-#: flatcamGUI/FlatCAMGUI.py:1728
-msgid "Select All"
-msgstr "Selecionar Todos"
-
-#: FlatCAMApp.py:6501 FlatCAMApp.py:6548 flatcamGUI/FlatCAMGUI.py:505
-msgid "Deselect All"
-msgstr "Desmarcar todos"
-
-#: FlatCAMApp.py:6564
-msgid "All objects are selected."
-msgstr "Todos os objetos estão selecionados."
-
-#: FlatCAMApp.py:6574
-msgid "Objects selection is cleared."
-msgstr "A seleção de objetos é limpa."
-
-#: FlatCAMApp.py:6594 flatcamGUI/FlatCAMGUI.py:1721
-msgid "Grid On/Off"
-msgstr "Liga/Desliga a Grade"
-
-#: FlatCAMApp.py:6606 flatcamEditors/FlatCAMGeoEditor.py:939
-#: flatcamEditors/FlatCAMGrbEditor.py:2583
-#: flatcamEditors/FlatCAMGrbEditor.py:5641 flatcamGUI/ObjectUI.py:1595
-#: flatcamTools/ToolDblSided.py:192 flatcamTools/ToolDblSided.py:425
-#: flatcamTools/ToolNCC.py:294 flatcamTools/ToolNCC.py:631
-#: flatcamTools/ToolPaint.py:277 flatcamTools/ToolPaint.py:676
-#: flatcamTools/ToolSolderPaste.py:122 flatcamTools/ToolSolderPaste.py:597
-#: flatcamTools/ToolTransform.py:478
-msgid "Add"
-msgstr "Adicionar"
-
-#: FlatCAMApp.py:6608 flatcamEditors/FlatCAMGrbEditor.py:2588
-#: flatcamEditors/FlatCAMGrbEditor.py:2736 flatcamGUI/FlatCAMGUI.py:751
-#: flatcamGUI/FlatCAMGUI.py:1074 flatcamGUI/FlatCAMGUI.py:2141
-#: flatcamGUI/FlatCAMGUI.py:2284 flatcamGUI/FlatCAMGUI.py:2777
-#: flatcamGUI/ObjectUI.py:1623 flatcamObjects/FlatCAMGeometry.py:505
-#: flatcamTools/ToolNCC.py:316 flatcamTools/ToolNCC.py:637
-#: flatcamTools/ToolPaint.py:299 flatcamTools/ToolPaint.py:682
-#: flatcamTools/ToolSolderPaste.py:128 flatcamTools/ToolSolderPaste.py:600
-msgid "Delete"
-msgstr "Excluir"
-
-#: FlatCAMApp.py:6624
+#: App_Main.py:5611
msgid "New Grid ..."
msgstr "Nova Grade ..."
-#: FlatCAMApp.py:6625
+#: App_Main.py:5612
msgid "Enter a Grid Value:"
msgstr "Digite um valor para grade:"
-#: FlatCAMApp.py:6633 FlatCAMApp.py:6660
+#: App_Main.py:5620 App_Main.py:5644
msgid "Please enter a grid value with non-zero value, in Float format."
msgstr ""
"Por favor, insira um valor de grade com valor diferente de zero, no formato "
"Flutuante."
-#: FlatCAMApp.py:6639
+#: App_Main.py:5625
msgid "New Grid added"
msgstr "Nova Grade adicionada"
-#: FlatCAMApp.py:6642
+#: App_Main.py:5627
msgid "Grid already exists"
msgstr "Grade já existe"
-#: FlatCAMApp.py:6645
+#: App_Main.py:5629
msgid "Adding New Grid cancelled"
msgstr "Adicionar nova grade cancelada"
-#: FlatCAMApp.py:6667
+#: App_Main.py:5650
msgid " Grid Value does not exist"
msgstr " O valor da grade não existe"
-#: FlatCAMApp.py:6670
+#: App_Main.py:5652
msgid "Grid Value deleted"
msgstr "Grade apagada"
-#: FlatCAMApp.py:6673
+#: App_Main.py:5654
msgid "Delete Grid value cancelled"
msgstr "Excluir valor de grade cancelado"
-#: FlatCAMApp.py:6679
+#: App_Main.py:5660
msgid "Key Shortcut List"
msgstr "Lista de Teclas de Atalho"
-#: FlatCAMApp.py:6713
+#: App_Main.py:5694
msgid " No object selected to copy it's name"
msgstr " Nenhum objeto selecionado para copiar nome"
-#: FlatCAMApp.py:6717
+#: App_Main.py:5698
msgid "Name copied on clipboard ..."
msgstr "Nome copiado para a área de transferência..."
-#: FlatCAMApp.py:6930 flatcamEditors/FlatCAMGrbEditor.py:4554
-msgid "Coordinates copied to clipboard."
-msgstr "Coordenadas copiadas para a área de transferência."
-
-#: FlatCAMApp.py:7167 FlatCAMApp.py:7173 FlatCAMApp.py:7179 FlatCAMApp.py:7185
-#: flatcamObjects/ObjectCollection.py:922
-#: flatcamObjects/ObjectCollection.py:928
-#: flatcamObjects/ObjectCollection.py:934
-#: flatcamObjects/ObjectCollection.py:940
-#: flatcamObjects/ObjectCollection.py:946
-#: flatcamObjects/ObjectCollection.py:952
-msgid "selected"
-msgstr "selecionado"
-
-#: FlatCAMApp.py:7340
+#: App_Main.py:6331
msgid ""
"There are files/objects opened in FlatCAM.\n"
"Creating a New project will delete them.\n"
@@ -921,17 +17350,12 @@ msgstr ""
"Criar um novo projeto irá apagá-los.\n"
"Você deseja Salvar o Projeto?"
-#: FlatCAMApp.py:7361
+#: App_Main.py:6352
msgid "New Project created"
msgstr "Novo Projeto criado"
-#: FlatCAMApp.py:7519 FlatCAMApp.py:7523 flatcamGUI/FlatCAMGUI.py:836
-#: flatcamGUI/FlatCAMGUI.py:2544
-msgid "Open Gerber"
-msgstr "Abrir Gerber"
-
-#: FlatCAMApp.py:7528 FlatCAMApp.py:7565 FlatCAMApp.py:7607 FlatCAMApp.py:7677
-#: FlatCAMApp.py:8462 FlatCAMApp.py:9675 FlatCAMApp.py:9737
+#: App_Main.py:6522 App_Main.py:6559 App_Main.py:6601 App_Main.py:6671
+#: App_Main.py:7454 App_Main.py:8667 App_Main.py:8729
msgid ""
"Canvas initialization started.\n"
"Canvas initialization finished in"
@@ -939,344 +17363,289 @@ msgstr ""
"Inicialização do Canvas iniciada.\n"
"Inicialização do Canvas concluída em"
-#: FlatCAMApp.py:7530
+#: App_Main.py:6524
msgid "Opening Gerber file."
msgstr "Abrindo Arquivo Gerber."
-#: FlatCAMApp.py:7557 FlatCAMApp.py:7561 flatcamGUI/FlatCAMGUI.py:838
-#: flatcamGUI/FlatCAMGUI.py:2546
-msgid "Open Excellon"
-msgstr "Abrir Excellon"
-
-#: FlatCAMApp.py:7567
+#: App_Main.py:6561
msgid "Opening Excellon file."
msgstr "Abrindo Arquivo Excellon."
-#: FlatCAMApp.py:7598 FlatCAMApp.py:7602
+#: App_Main.py:6592 App_Main.py:6596
msgid "Open G-Code"
msgstr "Abrir G-Code"
-#: FlatCAMApp.py:7609
+#: App_Main.py:6603
msgid "Opening G-Code file."
msgstr "Abrindo Arquivo G-Code."
-#: FlatCAMApp.py:7632 FlatCAMApp.py:7635 flatcamGUI/FlatCAMGUI.py:1730
-msgid "Open Project"
-msgstr "Abrir Projeto"
-
-#: FlatCAMApp.py:7668 FlatCAMApp.py:7672
+#: App_Main.py:6662 App_Main.py:6666
msgid "Open HPGL2"
msgstr "Abrir HPGL2"
-#: FlatCAMApp.py:7679
+#: App_Main.py:6673
msgid "Opening HPGL2 file."
msgstr "Abrindo Arquivo HPGL2 ."
-#: FlatCAMApp.py:7702 FlatCAMApp.py:7705
+#: App_Main.py:6696 App_Main.py:6699
msgid "Open Configuration File"
msgstr "Abrir Arquivo de Configuração"
-#: FlatCAMApp.py:7725 FlatCAMApp.py:8072
+#: App_Main.py:6719 App_Main.py:7066
msgid "Please Select a Geometry object to export"
msgstr "Por favor, selecione um objeto Geometria para exportar"
-#: FlatCAMApp.py:7739
+#: App_Main.py:6733
msgid "Only Geometry, Gerber and CNCJob objects can be used."
msgstr "Somente objetos Geometria, Gerber e Trabalho CNC podem ser usados."
-#: FlatCAMApp.py:7752 FlatCAMApp.py:7756 flatcamTools/ToolQRCode.py:829
-#: flatcamTools/ToolQRCode.py:833
-msgid "Export SVG"
-msgstr "Exportar SVG"
-
-#: FlatCAMApp.py:7781
+#: App_Main.py:6775
msgid "Data must be a 3D array with last dimension 3 or 4"
msgstr "Os dados devem ser uma matriz 3D com a última dimensão 3 ou 4"
-#: FlatCAMApp.py:7787 FlatCAMApp.py:7791
+#: App_Main.py:6781 App_Main.py:6785
msgid "Export PNG Image"
msgstr "Exportar Imagem PNG"
-#: FlatCAMApp.py:7824 FlatCAMApp.py:8032
+#: App_Main.py:6818 App_Main.py:7026
msgid "Failed. Only Gerber objects can be saved as Gerber files..."
msgstr ""
"Falhou. Somente objetos Gerber podem ser salvos como arquivos Gerber..."
-#: FlatCAMApp.py:7836
+#: App_Main.py:6830
msgid "Save Gerber source file"
msgstr "Salvar arquivo fonte Gerber"
-#: FlatCAMApp.py:7865
+#: App_Main.py:6859
msgid "Failed. Only Script objects can be saved as TCL Script files..."
msgstr "Falhou. Somente Scripts podem ser salvos como arquivos Scripts TCL..."
-#: FlatCAMApp.py:7877
+#: App_Main.py:6871
msgid "Save Script source file"
msgstr "Salvar arquivo fonte do Script"
-#: FlatCAMApp.py:7906
+#: App_Main.py:6900
msgid "Failed. Only Document objects can be saved as Document files..."
msgstr ""
"Falhou. Somente objetos Documentos podem ser salvos como arquivos "
"Documentos..."
-#: FlatCAMApp.py:7918
+#: App_Main.py:6912
msgid "Save Document source file"
msgstr "Salvar o arquivo fonte Documento"
-#: FlatCAMApp.py:7947 FlatCAMApp.py:7988 FlatCAMApp.py:8945
+#: App_Main.py:6941 App_Main.py:6982 App_Main.py:7937
msgid "Failed. Only Excellon objects can be saved as Excellon files..."
msgstr ""
"Falhou. Somente objetos Excellon podem ser salvos como arquivos Excellon..."
-#: FlatCAMApp.py:7955 FlatCAMApp.py:7959
+#: App_Main.py:6949 App_Main.py:6953
msgid "Save Excellon source file"
msgstr "Salvar o arquivo fonte Excellon"
-#: FlatCAMApp.py:7996 FlatCAMApp.py:8000
+#: App_Main.py:6990 App_Main.py:6994
msgid "Export Excellon"
msgstr "Exportar Excellon"
-#: FlatCAMApp.py:8040 FlatCAMApp.py:8044
+#: App_Main.py:7034 App_Main.py:7038
msgid "Export Gerber"
msgstr "Exportar Gerber"
-#: FlatCAMApp.py:8082
+#: App_Main.py:7076
msgid "Only Geometry objects can be used."
msgstr "Apenas objetos Geometria podem ser usados."
-#: FlatCAMApp.py:8096 FlatCAMApp.py:8100
+#: App_Main.py:7090 App_Main.py:7094
msgid "Export DXF"
msgstr "Exportar DXF"
-#: FlatCAMApp.py:8125 FlatCAMApp.py:8128
+#: App_Main.py:7119 App_Main.py:7122
msgid "Import SVG"
msgstr "Importar SVG"
-#: FlatCAMApp.py:8156 FlatCAMApp.py:8160
+#: App_Main.py:7150 App_Main.py:7154
msgid "Import DXF"
msgstr "Importar DXF"
-#: FlatCAMApp.py:8210
+#: App_Main.py:7204
msgid "Viewing the source code of the selected object."
msgstr "Vendo o código fonte do objeto selecionado."
-#: FlatCAMApp.py:8211 flatcamObjects/FlatCAMCNCJob.py:548
-#: flatcamObjects/FlatCAMScript.py:134
-msgid "Loading..."
-msgstr "Lendo..."
-
-#: FlatCAMApp.py:8217 FlatCAMApp.py:8221
+#: App_Main.py:7211 App_Main.py:7215
msgid "Select an Gerber or Excellon file to view it's source file."
msgstr ""
"Selecione um arquivo Gerber ou Excellon para visualizar o arquivo fonte."
-#: FlatCAMApp.py:8235
+#: App_Main.py:7229
msgid "Source Editor"
msgstr "Editor de Fontes"
-#: FlatCAMApp.py:8275 FlatCAMApp.py:8282
+#: App_Main.py:7269 App_Main.py:7276
msgid "There is no selected object for which to see it's source file code."
msgstr "Nenhum objeto selecionado para ver o código fonte do arquivo."
-#: FlatCAMApp.py:8294
+#: App_Main.py:7288
msgid "Failed to load the source code for the selected object"
msgstr "Falha ao ler o código fonte do objeto selecionado"
-#: FlatCAMApp.py:8308 flatcamObjects/FlatCAMCNCJob.py:562
-msgid "Code Editor"
-msgstr "Editor de Códigos"
-
-#: FlatCAMApp.py:8330
+#: App_Main.py:7324
msgid "Go to Line ..."
msgstr "Ir para Linha ..."
-#: FlatCAMApp.py:8331
+#: App_Main.py:7325
msgid "Line:"
msgstr "Linha:"
-#: FlatCAMApp.py:8360
+#: App_Main.py:7352
msgid "New TCL script file created in Code Editor."
msgstr "Novo arquivo de script TCL criado no Editor de Códigos."
-#: FlatCAMApp.py:8396 FlatCAMApp.py:8398 FlatCAMApp.py:8434 FlatCAMApp.py:8436
+#: App_Main.py:7388 App_Main.py:7390 App_Main.py:7426 App_Main.py:7428
msgid "Open TCL script"
msgstr "Abrir script TCL"
-#: FlatCAMApp.py:8464
+#: App_Main.py:7456
msgid "Executing ScriptObject file."
msgstr "Executando arquivo de Script FlatCAM."
-#: FlatCAMApp.py:8472 FlatCAMApp.py:8475
+#: App_Main.py:7464 App_Main.py:7467
msgid "Run TCL script"
msgstr "Executar script TCL"
-#: FlatCAMApp.py:8498
+#: App_Main.py:7490
msgid "TCL script file opened in Code Editor and executed."
msgstr "Arquivo de script TCL aberto no Editor de Código e executado."
-#: FlatCAMApp.py:8549 FlatCAMApp.py:8555
+#: App_Main.py:7541 App_Main.py:7547
msgid "Save Project As ..."
msgstr "Salvar Projeto Como..."
-#: FlatCAMApp.py:8551 flatcamGUI/FlatCAMGUI.py:1134
-#: flatcamGUI/FlatCAMGUI.py:2176
-msgid "Project"
-msgstr "Projeto"
-
-#: FlatCAMApp.py:8590
+#: App_Main.py:7582
msgid "FlatCAM objects print"
msgstr "Objetos FlatCAM imprimem"
-#: FlatCAMApp.py:8603 FlatCAMApp.py:8610
+#: App_Main.py:7595 App_Main.py:7602
msgid "Save Object as PDF ..."
msgstr "Salvar objeto como PDF ..."
-#: FlatCAMApp.py:8619
+#: App_Main.py:7611
msgid "Printing PDF ... Please wait."
msgstr "Imprimindo PDF ... Aguarde."
-#: FlatCAMApp.py:8798
+#: App_Main.py:7790
msgid "PDF file saved to"
msgstr "Arquivo PDF salvo em"
-#: FlatCAMApp.py:8823
+#: App_Main.py:7815
msgid "Exporting SVG"
msgstr "Exportando SVG"
-#: FlatCAMApp.py:8866
+#: App_Main.py:7858
msgid "SVG file exported to"
msgstr "Arquivo SVG exportado para"
-#: FlatCAMApp.py:8892
+#: App_Main.py:7884
msgid ""
"Save cancelled because source file is empty. Try to export the Gerber file."
msgstr ""
"Salvar cancelado porque o arquivo de origem está vazio. Tente exportar o "
"arquivo Gerber."
-#: FlatCAMApp.py:9039
+#: App_Main.py:8031
msgid "Excellon file exported to"
msgstr "Arquivo Excellon exportado para"
-#: FlatCAMApp.py:9048
+#: App_Main.py:8040
msgid "Exporting Excellon"
msgstr "Exportando Excellon"
-#: FlatCAMApp.py:9053 FlatCAMApp.py:9060
+#: App_Main.py:8045 App_Main.py:8052
msgid "Could not export Excellon file."
msgstr "Não foi possível exportar o arquivo Excellon."
-#: FlatCAMApp.py:9175
+#: App_Main.py:8167
msgid "Gerber file exported to"
msgstr "Arquivo Gerber exportado para"
-#: FlatCAMApp.py:9183
+#: App_Main.py:8175
msgid "Exporting Gerber"
msgstr "Exportando Gerber"
-#: FlatCAMApp.py:9188 FlatCAMApp.py:9195
+#: App_Main.py:8180 App_Main.py:8187
msgid "Could not export Gerber file."
msgstr "Não foi possível exportar o arquivo Gerber."
-#: FlatCAMApp.py:9230
+#: App_Main.py:8222
msgid "DXF file exported to"
msgstr "Arquivo DXF exportado para"
-#: FlatCAMApp.py:9236
+#: App_Main.py:8228
msgid "Exporting DXF"
msgstr "Exportando DXF"
-#: FlatCAMApp.py:9241 FlatCAMApp.py:9248
+#: App_Main.py:8233 App_Main.py:8240
msgid "Could not export DXF file."
msgstr "Não foi possível exportar o arquivo DXF."
-#: FlatCAMApp.py:9272 FlatCAMApp.py:9319 flatcamTools/ToolImage.py:277
-msgid ""
-"Not supported type is picked as parameter. Only Geometry and Gerber are "
-"supported"
-msgstr ""
-"O tipo escolhido não é suportado como parâmetro. Apenas Geometria e Gerber "
-"são suportados"
-
-#: FlatCAMApp.py:9282
+#: App_Main.py:8274
msgid "Importing SVG"
msgstr "Importando SVG"
-#: FlatCAMApp.py:9290 FlatCAMApp.py:9336
+#: App_Main.py:8282 App_Main.py:8328
msgid "Import failed."
msgstr "Importação falhou."
-#: FlatCAMApp.py:9297 FlatCAMApp.py:9343 FlatCAMApp.py:9407 FlatCAMApp.py:9474
-#: FlatCAMApp.py:9540 FlatCAMApp.py:9605 FlatCAMApp.py:9662
-#: flatcamTools/ToolImage.py:297 flatcamTools/ToolPDF.py:225
-msgid "Opened"
-msgstr "Aberto"
-
-#: FlatCAMApp.py:9328
+#: App_Main.py:8320
msgid "Importing DXF"
msgstr "Importando DXF"
-#: FlatCAMApp.py:9369 FlatCAMApp.py:9564 FlatCAMApp.py:9629
+#: App_Main.py:8361 App_Main.py:8556 App_Main.py:8621
msgid "Failed to open file"
msgstr "Falha ao abrir o arquivo"
-#: FlatCAMApp.py:9372 FlatCAMApp.py:9567 FlatCAMApp.py:9632
+#: App_Main.py:8364 App_Main.py:8559 App_Main.py:8624
msgid "Failed to parse file"
msgstr "Falha ao analisar o arquivo"
-#: FlatCAMApp.py:9384
+#: App_Main.py:8376
msgid "Object is not Gerber file or empty. Aborting object creation."
msgstr ""
"O objeto não é um arquivo Gerber ou está vazio. Abortando a criação de "
"objetos."
-#: FlatCAMApp.py:9389
+#: App_Main.py:8381
msgid "Opening Gerber"
msgstr "Abrindo Gerber"
-#: FlatCAMApp.py:9400
+#: App_Main.py:8392
msgid "Open Gerber failed. Probable not a Gerber file."
msgstr "Abrir Gerber falhou. Provavelmente não é um arquivo Gerber."
-#: FlatCAMApp.py:9432 flatcamTools/ToolPcbWizard.py:424
-msgid "This is not Excellon file."
-msgstr "Este não é um arquivo Excellon."
-
-#: FlatCAMApp.py:9436
+#: App_Main.py:8428
msgid "Cannot open file"
msgstr "Não é possível abrir o arquivo"
-#: FlatCAMApp.py:9454 flatcamTools/ToolPDF.py:275
-#: flatcamTools/ToolPcbWizard.py:445
-msgid "No geometry found in file"
-msgstr "Nenhuma geometria encontrada no arquivo"
-
-#: FlatCAMApp.py:9457
+#: App_Main.py:8449
msgid "Opening Excellon."
msgstr "Abrindo Excellon."
-#: FlatCAMApp.py:9467
+#: App_Main.py:8459
msgid "Open Excellon file failed. Probable not an Excellon file."
msgstr "Falha ao abrir Excellon. Provavelmente não é um arquivo Excellon."
-#: FlatCAMApp.py:9499
+#: App_Main.py:8491
msgid "Reading GCode file"
msgstr "Lendo Arquivo G-Code"
-#: FlatCAMApp.py:9505
-msgid "Failed to open"
-msgstr "Falha ao abrir"
-
-#: FlatCAMApp.py:9512
+#: App_Main.py:8504
msgid "This is not GCODE"
msgstr "Não é G-Code"
-#: FlatCAMApp.py:9517
+#: App_Main.py:8509
msgid "Opening G-Code."
msgstr "Abrindo G-Code."
-#: FlatCAMApp.py:9530
+#: App_Main.py:8522
msgid ""
"Failed to create CNCJob Object. Probable not a GCode file. Try to load it "
"from File menu.\n"
@@ -1288,125 +17657,131 @@ msgstr ""
"A tentativa de criar um objeto de Trabalho CNC do arquivo G-Code falhou "
"durante o processamento"
-#: FlatCAMApp.py:9586
+#: App_Main.py:8578
msgid "Object is not HPGL2 file or empty. Aborting object creation."
msgstr ""
"O objeto não é um arquivo HPGL2 ou está vazio. Interrompendo a criação de "
"objetos."
-#: FlatCAMApp.py:9591
+#: App_Main.py:8583
msgid "Opening HPGL2"
msgstr "Abrindo o HPGL2"
-#: FlatCAMApp.py:9598
+#: App_Main.py:8590
msgid " Open HPGL2 failed. Probable not a HPGL2 file."
msgstr " Falha no HPGL2 aberto. Provavelmente não é um arquivo HPGL2."
-#: FlatCAMApp.py:9624
+#: App_Main.py:8616
msgid "TCL script file opened in Code Editor."
msgstr "Arquivo de script TCL aberto no Editor de Códigos."
-#: FlatCAMApp.py:9644
+#: App_Main.py:8636
msgid "Opening TCL Script..."
msgstr "Abrindo script TCL..."
-#: FlatCAMApp.py:9655
+#: App_Main.py:8647
msgid "Failed to open TCL Script."
msgstr "Falha ao abrir o Script TCL."
-#: FlatCAMApp.py:9677
+#: App_Main.py:8669
msgid "Opening FlatCAM Config file."
msgstr "Abrindo arquivo de Configuração."
-#: FlatCAMApp.py:9705
+#: App_Main.py:8697
msgid "Failed to open config file"
msgstr "Falha ao abrir o arquivo de configuração"
-#: FlatCAMApp.py:9734
+#: App_Main.py:8726
msgid "Loading Project ... Please Wait ..."
msgstr "Carregando projeto ... Por favor aguarde ..."
-#: FlatCAMApp.py:9739
+#: App_Main.py:8731
msgid "Opening FlatCAM Project file."
msgstr "Abrindo Projeto FlatCAM."
-#: FlatCAMApp.py:9754 FlatCAMApp.py:9758 FlatCAMApp.py:9775
+#: App_Main.py:8746 App_Main.py:8750 App_Main.py:8767
msgid "Failed to open project file"
msgstr "Falha ao abrir o arquivo de projeto"
-#: FlatCAMApp.py:9812
+#: App_Main.py:8804
msgid "Loading Project ... restoring"
msgstr "Carregando projeto ... restaurando"
-#: FlatCAMApp.py:9822
+#: App_Main.py:8814
msgid "Project loaded from"
msgstr "Projeto carregado de"
-#: FlatCAMApp.py:9846
+#: App_Main.py:8840
msgid "Redrawing all objects"
msgstr "Redesenha todos os objetos"
-#: FlatCAMApp.py:9934
+#: App_Main.py:8928
msgid "Failed to load recent item list."
msgstr "Falha ao carregar a lista de itens recentes."
-#: FlatCAMApp.py:9941
+#: App_Main.py:8935
msgid "Failed to parse recent item list."
msgstr "Falha ao analisar a lista de itens recentes."
-#: FlatCAMApp.py:9951
+#: App_Main.py:8945
msgid "Failed to load recent projects item list."
msgstr "Falha ao carregar a lista de projetos recentes."
-#: FlatCAMApp.py:9958
+#: App_Main.py:8952
msgid "Failed to parse recent project item list."
msgstr "Falha ao analisar a lista de projetos recentes."
-#: FlatCAMApp.py:10019
+#: App_Main.py:9013
msgid "Clear Recent projects"
msgstr "Limpar Projetos Recentes"
-#: FlatCAMApp.py:10043
+#: App_Main.py:9037
msgid "Clear Recent files"
msgstr "Limpar Arquivos Recentes"
-#: FlatCAMApp.py:10065 flatcamGUI/FlatCAMGUI.py:1363
-msgid "Shortcut Key List"
-msgstr "Lista de Teclas de Atalho"
-
-#: FlatCAMApp.py:10145
+#: App_Main.py:9139
msgid "Selected Tab - Choose an Item from Project Tab"
msgstr "Guia Selecionado - Escolha um item na guia Projeto"
-#: FlatCAMApp.py:10146
+#: App_Main.py:9140
msgid "Details"
msgstr "Detalhes"
-#: FlatCAMApp.py:10148
+#: App_Main.py:9142
msgid "The normal flow when working in FlatCAM is the following:"
msgstr "O fluxo normal ao trabalhar no FlatCAM é o seguinte:"
-#: FlatCAMApp.py:10149
+#: App_Main.py:9143
+#, fuzzy
+#| msgid ""
+#| "Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into "
+#| "FlatCAM using either the toolbars, key shortcuts or even dragging and "
+#| "dropping the files on the GUI."
msgid ""
"Load/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into "
"FlatCAM using either the toolbars, key shortcuts or even dragging and "
-"dropping the files on the GUI."
+"dropping the files on the AppGUI."
msgstr ""
"Abrir/Importar um arquivo Gerber, Excellon, G-Code, DXF, Raster Image ou SVG "
"para o FlatCAM usando a barra de ferramentas, tecla de atalho ou arrastando "
"e soltando um arquivo na GUI."
-#: FlatCAMApp.py:10152
+#: App_Main.py:9146
+#, fuzzy
+#| msgid ""
+#| "You can also load a FlatCAM project by double clicking on the project "
+#| "file, drag and drop of the file into the FLATCAM GUI or through the menu "
+#| "(or toolbar) actions offered within the app."
msgid ""
"You can also load a FlatCAM project by double clicking on the project file, "
-"drag and drop of the file into the FLATCAM GUI or through the menu (or "
+"drag and drop of the file into the FLATCAM AppGUI or through the menu (or "
"toolbar) actions offered within the app."
msgstr ""
"Você pode abrir um projeto FlatCAM clicando duas vezes sobre o arquivo, "
"usando o menu ou a barra de ferramentas, tecla de atalho ou arrastando e "
"soltando um arquivo na GUI."
-#: FlatCAMApp.py:10155
+#: App_Main.py:9149
msgid ""
"Once an object is available in the Project Tab, by selecting it and then "
"focusing on SELECTED TAB (more simpler is to double click the object name in "
@@ -1418,7 +17793,7 @@ msgstr ""
"Projeto, a ABA SELECIONADO será atualizada com as propriedades do objeto de "
"acordo com seu tipo: Gerber, Excellon, Geometria ou Trabalho CNC."
-#: FlatCAMApp.py:10159
+#: App_Main.py:9153
msgid ""
"If the selection of the object is done on the canvas by single click "
"instead, and the SELECTED TAB is in focus, again the object properties will "
@@ -1432,14 +17807,14 @@ msgstr ""
"na tela exibirá a ABA SELECIONADO e a preencherá mesmo que ela esteja fora "
"de foco."
-#: FlatCAMApp.py:10163
+#: App_Main.py:9157
msgid ""
"You can change the parameters in this screen and the flow direction is like "
"this:"
msgstr ""
"Você pode alterar os parâmetros nesta tela e a direção do fluxo é assim:"
-#: FlatCAMApp.py:10164
+#: App_Main.py:9158
msgid ""
"Gerber/Excellon Object --> Change Parameter --> Generate Geometry --> "
"Geometry Object --> Add tools (change param in Selected Tab) --> Generate "
@@ -1452,7 +17827,7 @@ msgstr ""
"Código CNC) e/ou adicionar código no início ou no final do G-Code (na Aba "
"Selecionado) --> Salvar G-Code."
-#: FlatCAMApp.py:10168
+#: App_Main.py:9162
msgid ""
"A list of key shortcuts is available through an menu entry in Help --> "
"Shortcuts List or through its own key shortcut: F3."
@@ -1461,32 +17836,32 @@ msgstr ""
"menu em Ajuda --> Lista de Atalhos ou através da sua própria tecla de "
"atalho: F3."
-#: FlatCAMApp.py:10232
+#: App_Main.py:9226
msgid "Failed checking for latest version. Could not connect."
msgstr ""
"Falha na verificação da versão mais recente. Não foi possível conectar."
-#: FlatCAMApp.py:10239
+#: App_Main.py:9233
msgid "Could not parse information about latest version."
msgstr "Não foi possível analisar informações sobre a versão mais recente."
-#: FlatCAMApp.py:10249
+#: App_Main.py:9243
msgid "FlatCAM is up to date!"
msgstr "O FlatCAM está atualizado!"
-#: FlatCAMApp.py:10254
+#: App_Main.py:9248
msgid "Newer Version Available"
msgstr "Nova Versão Disponível"
-#: FlatCAMApp.py:10256
+#: App_Main.py:9250
msgid "There is a newer version of FlatCAM available for download:"
msgstr "Existe uma versão nova do FlatCAM disponível para download:"
-#: FlatCAMApp.py:10260
+#: App_Main.py:9254
msgid "info"
msgstr "info"
-#: FlatCAMApp.py:10288
+#: App_Main.py:9282
msgid ""
"OpenGL canvas initialization failed. HW or HW configuration not supported."
"Change the graphic engine to Legacy(2D) in Edit -> Preferences -> General "
@@ -1498,129 +17873,75 @@ msgstr ""
"Preferências -> aba Geral.\n"
"\n"
-#: FlatCAMApp.py:10367
+#: App_Main.py:9360
msgid "All plots disabled."
msgstr "Todos os gráficos desabilitados."
-#: FlatCAMApp.py:10374
+#: App_Main.py:9367
msgid "All non selected plots disabled."
msgstr "Todos os gráficos não selecionados desabilitados."
-#: FlatCAMApp.py:10381
+#: App_Main.py:9374
msgid "All plots enabled."
msgstr "Todos os gráficos habilitados."
-#: FlatCAMApp.py:10387
+#: App_Main.py:9380
msgid "Selected plots enabled..."
msgstr "Gráficos selecionados habilitados..."
-#: FlatCAMApp.py:10395
+#: App_Main.py:9388
msgid "Selected plots disabled..."
msgstr "Gráficos selecionados desabilitados..."
-#: FlatCAMApp.py:10428
+#: App_Main.py:9421
msgid "Enabling plots ..."
msgstr "Habilitando gráficos..."
-#: FlatCAMApp.py:10480
+#: App_Main.py:9470
msgid "Disabling plots ..."
msgstr "Desabilitando gráficos..."
-#: FlatCAMApp.py:10503
+#: App_Main.py:9493
msgid "Working ..."
msgstr "Trabalhando ..."
-#: FlatCAMApp.py:10558 flatcamGUI/FlatCAMGUI.py:703
-msgid "Red"
-msgstr "Vermelho"
-
-#: FlatCAMApp.py:10560 flatcamGUI/FlatCAMGUI.py:706
-msgid "Blue"
-msgstr "Azul"
-
-#: FlatCAMApp.py:10563 flatcamGUI/FlatCAMGUI.py:709
-msgid "Yellow"
-msgstr "Amarela"
-
-#: FlatCAMApp.py:10565 flatcamGUI/FlatCAMGUI.py:712
-msgid "Green"
-msgstr "Verde"
-
-#: FlatCAMApp.py:10567 flatcamGUI/FlatCAMGUI.py:715
-msgid "Purple"
-msgstr "Roxo"
-
-#: FlatCAMApp.py:10569 flatcamGUI/FlatCAMGUI.py:718
-msgid "Brown"
-msgstr "Marrom"
-
-#: FlatCAMApp.py:10571 FlatCAMApp.py:10627 flatcamGUI/FlatCAMGUI.py:721
-msgid "White"
-msgstr "Branco"
-
-#: FlatCAMApp.py:10573 flatcamGUI/FlatCAMGUI.py:724
-msgid "Black"
-msgstr "Preto"
-
-#: FlatCAMApp.py:10576 flatcamGUI/FlatCAMGUI.py:729
-msgid "Custom"
-msgstr "Personalizado"
-
-#: FlatCAMApp.py:10586 flatcamGUI/FlatCAMGUI.py:737
-msgid "Default"
-msgstr "Padrão"
-
-#: FlatCAMApp.py:10610 flatcamGUI/FlatCAMGUI.py:734
-msgid "Opacity"
-msgstr "Opacidade"
-
-#: FlatCAMApp.py:10612
+#: App_Main.py:9602
msgid "Set alpha level ..."
msgstr "Ajustar nível alfa ..."
-#: FlatCAMApp.py:10612
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:220
-#: flatcamTools/ToolExtractDrills.py:164 flatcamTools/ToolExtractDrills.py:285
-#: flatcamTools/ToolPunchGerber.py:192 flatcamTools/ToolPunchGerber.py:308
-#: flatcamTools/ToolTransform.py:357
-msgid "Value"
-msgstr "Valor"
-
-#: FlatCAMApp.py:10666
+#: App_Main.py:9656
msgid "Saving FlatCAM Project"
msgstr "Salvando o Projeto FlatCAM"
-#: FlatCAMApp.py:10687 FlatCAMApp.py:10723
+#: App_Main.py:9677 App_Main.py:9713
msgid "Project saved to"
msgstr "Projeto salvo em"
-#: FlatCAMApp.py:10694
+#: App_Main.py:9684
msgid "The object is used by another application."
msgstr "O objeto é usado por outro aplicativo."
-#: FlatCAMApp.py:10708
+#: App_Main.py:9698
msgid "Failed to verify project file"
msgstr "Falha ao verificar o arquivo do projeto"
-#: FlatCAMApp.py:10708 FlatCAMApp.py:10716 FlatCAMApp.py:10726
+#: App_Main.py:9698 App_Main.py:9706 App_Main.py:9716
msgid "Retry to save it."
msgstr "Tente salvá-lo novamente."
-#: FlatCAMApp.py:10716 FlatCAMApp.py:10726
+#: App_Main.py:9706 App_Main.py:9716
msgid "Failed to parse saved project file"
msgstr "Falha ao analisar o arquivo de projeto salvo"
-#: FlatCAMBookmark.py:57 FlatCAMBookmark.py:84
+#: Bookmark.py:57 Bookmark.py:84
msgid "Title"
msgstr "Título"
-#: FlatCAMBookmark.py:58 FlatCAMBookmark.py:88
+#: Bookmark.py:58 Bookmark.py:88
msgid "Web Link"
msgstr "Link"
-#: FlatCAMBookmark.py:62
+#: Bookmark.py:62
msgid ""
"Index.\n"
"The rows in gray color will populate the Bookmarks menu.\n"
@@ -1630,7 +17951,7 @@ msgstr ""
"As linhas na cor cinza preencherão o menu Favoritos.\n"
"O número de linhas cinza é definido em Preferências."
-#: FlatCAMBookmark.py:66
+#: Bookmark.py:66
msgid ""
"Description of the link that is set as an menu action.\n"
"Try to keep it short because it is installed as a menu item."
@@ -1638,1088 +17959,185 @@ msgstr ""
"Descrição do link que está definido como uma ação de menu.\n"
"Tente mantê-lo curto, pois ele aparece como um item de menu."
-#: FlatCAMBookmark.py:69
+#: Bookmark.py:69
msgid "Web Link. E.g: https://your_website.org "
msgstr "Link. Ex: https://seu_site.org "
-#: FlatCAMBookmark.py:78
+#: Bookmark.py:78
msgid "New Bookmark"
msgstr "Novo Favorito"
-#: FlatCAMBookmark.py:97
+#: Bookmark.py:97
msgid "Add Entry"
msgstr "Adicionar Entrada"
-#: FlatCAMBookmark.py:98
+#: Bookmark.py:98
msgid "Remove Entry"
msgstr "Remover Entrada"
-#: FlatCAMBookmark.py:99
+#: Bookmark.py:99
msgid "Export List"
msgstr "Exportar Lista"
-#: FlatCAMBookmark.py:100
+#: Bookmark.py:100
msgid "Import List"
msgstr "Importar Lista"
-#: FlatCAMBookmark.py:190
+#: Bookmark.py:190
msgid "Title entry is empty."
msgstr "A entrada do título está vazia."
-#: FlatCAMBookmark.py:199
+#: Bookmark.py:199
msgid "Web link entry is empty."
msgstr "A entrada do link da Web está vazia."
-#: FlatCAMBookmark.py:207
+#: Bookmark.py:207
msgid "Either the Title or the Weblink already in the table."
msgstr "O título ou o link da Web já está na tabela."
-#: FlatCAMBookmark.py:227
+#: Bookmark.py:227
msgid "Bookmark added."
msgstr "Favorito adicionado."
-#: FlatCAMBookmark.py:244
+#: Bookmark.py:244
msgid "This bookmark can not be removed"
msgstr "Este favorito não pode ser removido"
-#: FlatCAMBookmark.py:275
+#: Bookmark.py:275
msgid "Bookmark removed."
msgstr "Favorito removido."
-#: FlatCAMBookmark.py:290
+#: Bookmark.py:290
msgid "Export FlatCAM Bookmarks"
msgstr "Exportar Favoritos do FlatCAM"
-#: FlatCAMBookmark.py:293 flatcamGUI/FlatCAMGUI.py:524
-msgid "Bookmarks"
-msgstr "Favoritos"
-
-#: FlatCAMBookmark.py:319 FlatCAMBookmark.py:349
+#: Bookmark.py:319 Bookmark.py:349
msgid "Could not load bookmarks file."
msgstr "Não foi possível carregar o arquivo com os favoritos."
-#: FlatCAMBookmark.py:329
+#: Bookmark.py:329
msgid "Failed to write bookmarks to file."
msgstr "Falha ao gravar os favoritos no arquivo."
-#: FlatCAMBookmark.py:331
+#: Bookmark.py:331
msgid "Exported bookmarks to"
msgstr "Favoritos exportados para"
-#: FlatCAMBookmark.py:337
+#: Bookmark.py:337
msgid "Import FlatCAM Bookmarks"
msgstr "Importar Favoritos do FlatCAM"
-#: FlatCAMBookmark.py:356
+#: Bookmark.py:356
msgid "Imported Bookmarks from"
msgstr "Favoritos importados de"
-#: FlatCAMCommon.py:29
+#: Common.py:37
msgid "The user requested a graceful exit of the current task."
msgstr "O usuário solicitou uma saída normal da tarefa atual."
-#: FlatCAMDB.py:86
-msgid "Add Geometry Tool in DB"
-msgstr "Adicionar Ferram de Geo no BD"
+#: Common.py:250
+#, fuzzy
+#| msgid "Click the end point of the paint area."
+msgid "Click the end point of the area."
+msgstr "Clique no ponto final da área."
-#: FlatCAMDB.py:88 FlatCAMDB.py:1643
-msgid ""
-"Add a new tool in the Tools Database.\n"
-"It will be used in the Geometry UI.\n"
-"You can edit it after it is added."
+#: Common.py:386
+msgid "Exclusion areas added. Checking overlap with the object geometry ..."
msgstr ""
-"Adiciona uma nova ferramenta ao Banco de Dados de Ferramentas.\n"
-"Será usado na interface do usuário da Geometria.\n"
-"Você pode editar após a adição."
-#: FlatCAMDB.py:102 FlatCAMDB.py:1657
-msgid "Delete Tool from DB"
-msgstr "Excluir ferramenta do BD"
-
-#: FlatCAMDB.py:104 FlatCAMDB.py:1659
-msgid "Remove a selection of tools in the Tools Database."
-msgstr "Remove uma seleção de ferramentas no banco de dados de ferramentas."
-
-#: FlatCAMDB.py:108 FlatCAMDB.py:1663
-msgid "Export DB"
-msgstr "Exportar BD"
-
-#: FlatCAMDB.py:110 FlatCAMDB.py:1665
-msgid "Save the Tools Database to a custom text file."
+#: Common.py:392
+msgid "Failed. Exclusion areas intersects the object geometry ..."
msgstr ""
-"Salva o banco de dados de ferramentas em um arquivo de texto personalizado."
-#: FlatCAMDB.py:114 FlatCAMDB.py:1669
-msgid "Import DB"
-msgstr "Importar BD"
+#: Common.py:396
+#, fuzzy
+#| msgid "Delete all extensions from the list."
+msgid "Exclusion areas added."
+msgstr "Excluir todas as extensões da lista."
-#: FlatCAMDB.py:116 FlatCAMDB.py:1671
-msgid "Load the Tools Database information's from a custom text file."
+#: Common.py:405
+#, fuzzy
+#| msgid "Delete all extensions from the list."
+msgid "With Exclusion areas."
+msgstr "Excluir todas as extensões da lista."
+
+#: Common.py:435
+msgid "Cancelled. Area exclusion drawing was interrupted."
msgstr ""
-"Carregua as informações do banco de dados de ferramentas de um arquivo de "
-"texto personalizado."
-#: FlatCAMDB.py:120 FlatCAMDB.py:1681
-msgid "Add Tool from Tools DB"
-msgstr "Adiciona Ferramenta do BD de Ferramentas"
-
-#: FlatCAMDB.py:122 FlatCAMDB.py:1683
-msgid ""
-"Add a new tool in the Tools Table of the\n"
-"active Geometry object after selecting a tool\n"
-"in the Tools Database."
-msgstr ""
-"Adiciona uma nova ferramenta na Tabela de ferramentas do\n"
-"objeto geometria ativo após selecionar uma ferramenta\n"
-"no banco de dados de ferramentas."
-
-#: FlatCAMDB.py:158 FlatCAMDB.py:833 FlatCAMDB.py:1087
-msgid "Tool Name"
-msgstr "Nome da Ferramenta"
-
-#: FlatCAMDB.py:159 FlatCAMDB.py:835 FlatCAMDB.py:1100
-#: flatcamEditors/FlatCAMExcEditor.py:1604 flatcamGUI/ObjectUI.py:1345
-#: flatcamGUI/ObjectUI.py:1583
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:132
-#: flatcamTools/ToolNCC.py:278 flatcamTools/ToolNCC.py:287
-#: flatcamTools/ToolPaint.py:261
-msgid "Tool Dia"
-msgstr "Diâmetro da Ferramenta"
-
-#: FlatCAMDB.py:160 FlatCAMDB.py:837 FlatCAMDB.py:1281
-#: flatcamGUI/ObjectUI.py:1558
-msgid "Tool Offset"
-msgstr "Deslocamento"
-
-#: FlatCAMDB.py:161 FlatCAMDB.py:839 FlatCAMDB.py:1298
-msgid "Custom Offset"
-msgstr "Deslocamento Personalizado"
-
-#: FlatCAMDB.py:162 FlatCAMDB.py:841 FlatCAMDB.py:1265
-#: flatcamGUI/ObjectUI.py:309
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:67
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:53
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:62
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:72
-#: flatcamTools/ToolNCC.py:213 flatcamTools/ToolNCC.py:227
-#: flatcamTools/ToolPaint.py:196
-msgid "Tool Type"
-msgstr "Tipo de Ferramenta"
-
-#: FlatCAMDB.py:163 FlatCAMDB.py:843 FlatCAMDB.py:1113
-msgid "Tool Shape"
-msgstr "Formato"
-
-#: FlatCAMDB.py:164 FlatCAMDB.py:846 FlatCAMDB.py:1129
-#: flatcamGUI/ObjectUI.py:350 flatcamGUI/ObjectUI.py:900
-#: flatcamGUI/ObjectUI.py:1703 flatcamGUI/ObjectUI.py:2336
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:93
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:48
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:107
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:78
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:58
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:105
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:113
-#: flatcamTools/ToolCalculators.py:114 flatcamTools/ToolCutOut.py:138
-#: flatcamTools/ToolNCC.py:260 flatcamTools/ToolNCC.py:268
-#: flatcamTools/ToolPaint.py:243
-msgid "Cut Z"
-msgstr "Profundidade de Corte"
-
-#: FlatCAMDB.py:165 FlatCAMDB.py:848 FlatCAMDB.py:1143
-msgid "MultiDepth"
-msgstr "Multi-Profundidade"
-
-#: FlatCAMDB.py:166 FlatCAMDB.py:850 FlatCAMDB.py:1156
-msgid "DPP"
-msgstr "PPP"
-
-#: FlatCAMDB.py:167 FlatCAMDB.py:852 FlatCAMDB.py:1312
-msgid "V-Dia"
-msgstr "Dia-V"
-
-#: FlatCAMDB.py:168 FlatCAMDB.py:854 FlatCAMDB.py:1326
-msgid "V-Angle"
-msgstr "Angulo-V"
-
-#: FlatCAMDB.py:169 FlatCAMDB.py:856 FlatCAMDB.py:1170
-#: flatcamGUI/ObjectUI.py:946 flatcamGUI/ObjectUI.py:1750
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:134
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:101
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:61
-#: flatcamObjects/FlatCAMExcellon.py:1316
-#: flatcamObjects/FlatCAMGeometry.py:1606 flatcamTools/ToolCalibration.py:74
-msgid "Travel Z"
-msgstr "Altura do Deslocamento"
-
-#: FlatCAMDB.py:170 FlatCAMDB.py:858
-msgid "FR"
-msgstr "VA"
-
-#: FlatCAMDB.py:171 FlatCAMDB.py:860
-msgid "FR Z"
-msgstr "VA Z"
-
-#: FlatCAMDB.py:172 FlatCAMDB.py:862 FlatCAMDB.py:1340
-msgid "FR Rapids"
-msgstr "VA Rápida"
-
-#: FlatCAMDB.py:173 FlatCAMDB.py:864 FlatCAMDB.py:1213
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:222
-msgid "Spindle Speed"
-msgstr "Velocidade do Spindle"
-
-#: FlatCAMDB.py:174 FlatCAMDB.py:866 FlatCAMDB.py:1228
-#: flatcamGUI/ObjectUI.py:1064 flatcamGUI/ObjectUI.py:1857
-msgid "Dwell"
-msgstr "Esperar Velocidade"
-
-#: FlatCAMDB.py:175 FlatCAMDB.py:868 FlatCAMDB.py:1241
-msgid "Dwelltime"
-msgstr "Tempo de Espera"
-
-#: FlatCAMDB.py:176 FlatCAMDB.py:870 flatcamGUI/ObjectUI.py:2014
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:257
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:254
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:237
-#: flatcamTools/ToolSolderPaste.py:335
-msgid "Preprocessor"
-msgstr "Pré-processador"
-
-#: FlatCAMDB.py:177 FlatCAMDB.py:872 FlatCAMDB.py:1356
-msgid "ExtraCut"
-msgstr "Corte Extra"
-
-#: FlatCAMDB.py:178 FlatCAMDB.py:874 FlatCAMDB.py:1371
-msgid "E-Cut Length"
-msgstr "Comprimento de corte extra"
-
-#: FlatCAMDB.py:179 FlatCAMDB.py:876
-msgid "Toolchange"
-msgstr "Troca de Ferramentas"
-
-#: FlatCAMDB.py:180 FlatCAMDB.py:878
-msgid "Toolchange XY"
-msgstr "Troca de ferramenta XY"
-
-#: FlatCAMDB.py:181 FlatCAMDB.py:880
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:160
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:131
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:98
-#: flatcamTools/ToolCalibration.py:111
-msgid "Toolchange Z"
-msgstr "Altura da Troca"
-
-#: FlatCAMDB.py:182 FlatCAMDB.py:882 flatcamGUI/ObjectUI.py:1193
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:69
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:54
-msgid "Start Z"
-msgstr "Z Inicial"
-
-#: FlatCAMDB.py:183 FlatCAMDB.py:885
-msgid "End Z"
-msgstr "Z Final"
-
-#: FlatCAMDB.py:187
-msgid "Tool Index."
-msgstr "Índice da Ferramenta."
-
-#: FlatCAMDB.py:189 FlatCAMDB.py:1089
-msgid ""
-"Tool name.\n"
-"This is not used in the app, it's function\n"
-"is to serve as a note for the user."
-msgstr ""
-"Nome da ferramenta.\n"
-"Não é usado no aplicativo, sua função\n"
-"é servir como uma nota para o usuário."
-
-#: FlatCAMDB.py:193 FlatCAMDB.py:1102
-msgid "Tool Diameter."
-msgstr "Diâmetro."
-
-#: FlatCAMDB.py:195 FlatCAMDB.py:1283
-msgid ""
-"Tool Offset.\n"
-"Can be of a few types:\n"
-"Path = zero offset\n"
-"In = offset inside by half of tool diameter\n"
-"Out = offset outside by half of tool diameter\n"
-"Custom = custom offset using the Custom Offset value"
-msgstr ""
-"Deslocamento da Ferramenta.\n"
-"Pode ser de alguns tipos:\n"
-"Caminho = deslocamento zero\n"
-"In = deslocamento interno, de metade do diâmetro da ferramenta\n"
-"Out = deslocamento externo, de metade do diâmetro da ferramenta\n"
-"Personalizado = deslocamento personalizado usando o valor de Deslocamento "
-"Personalizado"
-
-#: FlatCAMDB.py:202 FlatCAMDB.py:1300
-msgid ""
-"Custom Offset.\n"
-"A value to be used as offset from the current path."
-msgstr ""
-"Deslocamento personalizado.\n"
-"Um valor a ser usado como deslocamento do caminho atual."
-
-#: FlatCAMDB.py:205 FlatCAMDB.py:1267
-msgid ""
-"Tool Type.\n"
-"Can be:\n"
-"Iso = isolation cut\n"
-"Rough = rough cut, low feedrate, multiple passes\n"
-"Finish = finishing cut, high feedrate"
-msgstr ""
-"Tipo de ferramenta.\n"
-"Pode ser:\n"
-"ISO = corte de isolação\n"
-"Desbaste = corte áspero, avanço lento, múltiplos passes\n"
-"Acabamento = corte de acabamento, avanço rápido"
-
-#: FlatCAMDB.py:211 FlatCAMDB.py:1115
-msgid ""
-"Tool Shape. \n"
-"Can be:\n"
-"C1 ... C4 = circular tool with x flutes\n"
-"B = ball tip milling tool\n"
-"V = v-shape milling tool"
-msgstr ""
-"Forma da ferramenta.\n"
-"Pode ser:\n"
-"C1 ... C4 = ferramenta circular com x canais\n"
-"B = fresa com ponta esférica\n"
-"V = fresa em forma de V"
-
-#: FlatCAMDB.py:217 FlatCAMDB.py:1131
-msgid ""
-"Cutting Depth.\n"
-"The depth at which to cut into material."
-msgstr ""
-"Profundidade de corte.\n"
-"A profundidade para cortar o material."
-
-#: FlatCAMDB.py:220 FlatCAMDB.py:1145
-msgid ""
-"Multi Depth.\n"
-"Selecting this will allow cutting in multiple passes,\n"
-"each pass adding a DPP parameter depth."
-msgstr ""
-"Multi-Profundidade.\n"
-"Selecionar isso permite cortar em várias passagens,\n"
-"cada passagem adicionando uma profundidade de parâmetro PPP."
-
-#: FlatCAMDB.py:224 FlatCAMDB.py:1158
-msgid ""
-"DPP. Depth per Pass.\n"
-"The value used to cut into material on each pass."
-msgstr ""
-"PPP. Profundidade por Passe.\n"
-"Valor usado para cortar o material em cada passagem."
-
-#: FlatCAMDB.py:227 FlatCAMDB.py:1314
-msgid ""
-"V-Dia.\n"
-"Diameter of the tip for V-Shape Tools."
-msgstr ""
-"Dia-V.\n"
-"Diâmetro da ponta das ferramentas em forma de V."
-
-#: FlatCAMDB.py:230 FlatCAMDB.py:1328
-msgid ""
-"V-Agle.\n"
-"Angle at the tip for the V-Shape Tools."
-msgstr ""
-"Ângulo.\n"
-"Ângulo na ponta das ferramentas em forma de V."
-
-#: FlatCAMDB.py:233 FlatCAMDB.py:1172
-msgid ""
-"Clearance Height.\n"
-"Height at which the milling bit will travel between cuts,\n"
-"above the surface of the material, avoiding all fixtures."
-msgstr ""
-"Altura da folga.\n"
-"Altura na qual a broca irá se deslocar entre cortes,\n"
-"acima da superfície do material, evitando todos os equipamentos."
-
-#: FlatCAMDB.py:237
-msgid ""
-"FR. Feedrate\n"
-"The speed on XY plane used while cutting into material."
-msgstr ""
-"VA. Velocidade de Avanço\n"
-"A velocidade no plano XY usada ao cortar o material."
-
-#: FlatCAMDB.py:240
-msgid ""
-"FR Z. Feedrate Z\n"
-"The speed on Z plane."
-msgstr ""
-"VA Z. Velocidade de Avanço Z\n"
-"A velocidade no plano Z usada ao cortar o material."
-
-#: FlatCAMDB.py:243 FlatCAMDB.py:1342
-msgid ""
-"FR Rapids. Feedrate Rapids\n"
-"Speed used while moving as fast as possible.\n"
-"This is used only by some devices that can't use\n"
-"the G0 g-code command. Mostly 3D printers."
-msgstr ""
-"VA Rápida. Velocidade de Avanço Rápida\n"
-"Velocidade usada enquanto se move o mais rápido possível.\n"
-"Isso é usado apenas por alguns dispositivos que não podem usar\n"
-"o comando G-Code G0. Principalmente impressoras 3D."
-
-#: FlatCAMDB.py:248 FlatCAMDB.py:1215
-msgid ""
-"Spindle Speed.\n"
-"If it's left empty it will not be used.\n"
-"The speed of the spindle in RPM."
-msgstr ""
-"Velocidade do Spindle.\n"
-"Se for deixado vazio, não será usado.\n"
-"Velocidade do spindle em RPM."
-
-#: FlatCAMDB.py:252 FlatCAMDB.py:1230
-msgid ""
-"Dwell.\n"
-"Check this if a delay is needed to allow\n"
-"the spindle motor to reach it's set speed."
-msgstr ""
-"Esperar Velocidade.\n"
-"Marque se é necessário um atraso para permitir\n"
-"o motor do spindle atingir a velocidade definida."
-
-#: FlatCAMDB.py:256 FlatCAMDB.py:1243
-msgid ""
-"Dwell Time.\n"
-"A delay used to allow the motor spindle reach it's set speed."
-msgstr ""
-"Tempo de espera.\n"
-"Atraso usado para permitir que o spindle atinja a velocidade definida."
-
-#: FlatCAMDB.py:259
-msgid ""
-"Preprocessor.\n"
-"A selection of files that will alter the generated G-code\n"
-"to fit for a number of use cases."
-msgstr ""
-"Pré-processador.\n"
-"Uma seleção de arquivos que alterarão o G-Code gerado\n"
-"para caber em vários casos de uso."
-
-#: FlatCAMDB.py:263 FlatCAMDB.py:1358
-msgid ""
-"Extra Cut.\n"
-"If checked, after a isolation is finished an extra cut\n"
-"will be added where the start and end of isolation meet\n"
-"such as that this point is covered by this extra cut to\n"
-"ensure a complete isolation."
-msgstr ""
-"Corte Extra.\n"
-"Se marcado, após a conclusão de uma isolação, um corte extra\n"
-"será adicionado no encontro entre o início e o fim da isolação,\n"
-"para garantir a isolação completa."
-
-#: FlatCAMDB.py:269 FlatCAMDB.py:1373
-msgid ""
-"Extra Cut length.\n"
-"If checked, after a isolation is finished an extra cut\n"
-"will be added where the start and end of isolation meet\n"
-"such as that this point is covered by this extra cut to\n"
-"ensure a complete isolation. This is the length of\n"
-"the extra cut."
-msgstr ""
-"Comprimento extra de corte.\n"
-"Se marcado, após a conclusão de um isolamento, um corte extra\n"
-"serão adicionados onde o início e o fim do isolamento se encontrarem\n"
-"tal que este ponto seja coberto por este corte extra para\n"
-"garantir um isolamento completo. Este é o comprimento de\n"
-"o corte extra."
-
-#: FlatCAMDB.py:276
-msgid ""
-"Toolchange.\n"
-"It will create a toolchange event.\n"
-"The kind of toolchange is determined by\n"
-"the preprocessor file."
-msgstr ""
-"Troca de ferramentas.\n"
-"Será criado um evento de mudança de ferramenta.\n"
-"O tipo de troca de ferramentas é determinado pelo\n"
-"arquivo do pré-processador."
-
-#: FlatCAMDB.py:281
-msgid ""
-"Toolchange XY.\n"
-"A set of coordinates in the format (x, y).\n"
-"Will determine the cartesian position of the point\n"
-"where the tool change event take place."
-msgstr ""
-"Troca de ferramentas XY.\n"
-"Um conjunto de coordenadas no formato (x, y).\n"
-"Determina a posição cartesiana do ponto\n"
-"onde o evento de troca da ferramenta ocorre."
-
-#: FlatCAMDB.py:286
-msgid ""
-"Toolchange Z.\n"
-"The position on Z plane where the tool change event take place."
-msgstr ""
-"Altura da Troca.\n"
-"A posição no plano Z onde o evento de troca da ferramenta ocorre."
-
-#: FlatCAMDB.py:289
-msgid ""
-"Start Z.\n"
-"If it's left empty it will not be used.\n"
-"A position on Z plane to move immediately after job start."
-msgstr ""
-"Z Inicial.\n"
-"Se for deixado vazio, não será usado.\n"
-"Posição no plano Z para mover-se imediatamente após o início do trabalho."
-
-#: FlatCAMDB.py:293
-msgid ""
-"End Z.\n"
-"A position on Z plane to move immediately after job stop."
-msgstr ""
-"Z Final.\n"
-"Posição no plano Z para mover-se imediatamente após a parada do trabalho."
-
-#: FlatCAMDB.py:305 FlatCAMDB.py:682 FlatCAMDB.py:716 FlatCAMDB.py:1898
-#: FlatCAMDB.py:2144 FlatCAMDB.py:2178
-msgid "Could not load Tools DB file."
-msgstr "Não foi possível carregar o arquivo com o banco de dados."
-
-#: FlatCAMDB.py:313 FlatCAMDB.py:724 FlatCAMDB.py:1906 FlatCAMDB.py:2186
-msgid "Failed to parse Tools DB file."
-msgstr "Falha ao analisar o arquivo com o banco de dados."
-
-#: FlatCAMDB.py:316 FlatCAMDB.py:727 FlatCAMDB.py:1909 FlatCAMDB.py:2189
-msgid "Loaded FlatCAM Tools DB from"
-msgstr "Carregado o BD de Ferramentas FlatCAM de"
-
-#: FlatCAMDB.py:322 FlatCAMDB.py:1823
-msgid "Add to DB"
-msgstr "Adicionar ao BD"
-
-#: FlatCAMDB.py:324 FlatCAMDB.py:1826
-msgid "Copy from DB"
-msgstr "Copiar do BD"
-
-#: FlatCAMDB.py:326 FlatCAMDB.py:1829
-msgid "Delete from DB"
-msgstr "Excluir do BD"
-
-#: FlatCAMDB.py:603 FlatCAMDB.py:2044
-msgid "Tool added to DB."
-msgstr "Ferramenta adicionada ao BD."
-
-#: FlatCAMDB.py:624 FlatCAMDB.py:2077
-msgid "Tool copied from Tools DB."
-msgstr "A ferramenta foi copiada do BD."
-
-#: FlatCAMDB.py:642 FlatCAMDB.py:2104
-msgid "Tool removed from Tools DB."
-msgstr "Ferramenta(s) excluída(s) do BD."
-
-#: FlatCAMDB.py:653 FlatCAMDB.py:2115
-msgid "Export Tools Database"
-msgstr "Exportar Banco de Dados de Ferramentas"
-
-#: FlatCAMDB.py:656 FlatCAMDB.py:2118
-msgid "Tools_Database"
-msgstr "Tools_Database"
-
-#: FlatCAMDB.py:693 FlatCAMDB.py:696 FlatCAMDB.py:748 FlatCAMDB.py:2155
-#: FlatCAMDB.py:2158 FlatCAMDB.py:2211
-msgid "Failed to write Tools DB to file."
-msgstr "Falha ao gravar no arquivo."
-
-#: FlatCAMDB.py:699 FlatCAMDB.py:2161
-msgid "Exported Tools DB to"
-msgstr "Banco de Dados exportado para"
-
-#: FlatCAMDB.py:706 FlatCAMDB.py:2168
-msgid "Import FlatCAM Tools DB"
-msgstr "Importar Banco de Dados de Ferramentas do FlatCAM"
-
-#: FlatCAMDB.py:752 FlatCAMDB.py:2215
-msgid "Saved Tools DB."
-msgstr "BD de Ferramentas Salvo."
-
-#: FlatCAMDB.py:899 FlatCAMDB.py:2405
-msgid "No Tool/row selected in the Tools Database table"
-msgstr ""
-"Nenhuma ferramenta selecionada na tabela de Banco de Dados de Ferramentas"
-
-#: FlatCAMDB.py:917 FlatCAMDB.py:2422
-msgid "Cancelled adding tool from DB."
-msgstr "Adição de ferramenta do BD cancelada."
-
-#: FlatCAMDB.py:1018
-msgid "Basic Geo Parameters"
-msgstr "Parâmetros Básicos de Geo"
-
-#: FlatCAMDB.py:1030
-msgid "Advanced Geo Parameters"
-msgstr "Parâmetros Avançados de Geo"
-
-#: FlatCAMDB.py:1042
-msgid "NCC Parameters"
-msgstr "Parâmetros NCC"
-
-#: FlatCAMDB.py:1054
-msgid "Paint Parameters"
-msgstr "Parâmetros de Pintura"
-
-#: FlatCAMDB.py:1185 flatcamGUI/ObjectUI.py:967 flatcamGUI/ObjectUI.py:1769
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:185
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:148
-#: flatcamTools/ToolSolderPaste.py:253
-msgid "Feedrate X-Y"
-msgstr "Avanço X-Y"
-
-#: FlatCAMDB.py:1187
-msgid ""
-"Feedrate X-Y. Feedrate\n"
-"The speed on XY plane used while cutting into material."
-msgstr ""
-"Velocidade de Avanço X-Y\n"
-"A velocidade no plano XY usada ao cortar o material."
-
-#: FlatCAMDB.py:1199 flatcamGUI/ObjectUI.py:982 flatcamGUI/ObjectUI.py:1783
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:207
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:200
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:161
-#: flatcamTools/ToolSolderPaste.py:265
-msgid "Feedrate Z"
-msgstr "Taxa de Avanço Z"
-
-#: FlatCAMDB.py:1201
-msgid ""
-"Feedrate Z\n"
-"The speed on Z plane."
-msgstr ""
-"Velocidade de Avanço Z\n"
-"A velocidade no plano Z."
-
-#: FlatCAMDB.py:1399 flatcamGUI/ObjectUI.py:845
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:46
-#: flatcamTools/ToolNCC.py:341
-msgid "Operation"
-msgstr "Operação"
-
-#: FlatCAMDB.py:1401 flatcamTools/ToolNCC.py:343
-msgid ""
-"The 'Operation' can be:\n"
-"- Isolation -> will ensure that the non-copper clearing is always complete.\n"
-"If it's not successful then the non-copper clearing will fail, too.\n"
-"- Clear -> the regular non-copper clearing."
-msgstr ""
-"A 'Operação' pode ser:\n"
-"- Isolação -> garantirá que a retirada de cobre seja completa.\n"
-"Se não for bem-sucedida, a retirada de cobre também falhará.\n"
-"- Limpar -> retirada de cobre padrão."
-
-#: FlatCAMDB.py:1408 flatcamEditors/FlatCAMGrbEditor.py:2742
-#: flatcamGUI/GUIElements.py:2577 flatcamTools/ToolNCC.py:350
-msgid "Clear"
-msgstr "Limpar"
-
-#: FlatCAMDB.py:1409 flatcamTools/ToolNCC.py:351 flatcamTools/ToolNCC.py:1623
-msgid "Isolation"
-msgstr "Isolação"
-
-#: FlatCAMDB.py:1417 flatcamGUI/ObjectUI.py:409 flatcamGUI/ObjectUI.py:867
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:62
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:56
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:95
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:137
-#: flatcamTools/ToolNCC.py:359
-msgid "Milling Type"
-msgstr "Tipo de Fresamento"
-
-#: FlatCAMDB.py:1419 FlatCAMDB.py:1427
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:139
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:147
-#: flatcamTools/ToolNCC.py:361 flatcamTools/ToolNCC.py:369
-msgid ""
-"Milling type when the selected tool is of type: 'iso_op':\n"
-"- climb / best for precision milling and to reduce tool usage\n"
-"- conventional / useful when there is no backlash compensation"
-msgstr ""
-"Tipo de fresamento quando a ferramenta selecionada é do tipo 'iso_op':\n"
-"- subida: melhor para fresamento de precisão e para reduzir o uso da "
-"ferramenta\n"
-"- convencional: útil quando não há compensação de folga"
-
-#: FlatCAMDB.py:1424 flatcamGUI/ObjectUI.py:415
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:62
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:102
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:144
-#: flatcamTools/ToolNCC.py:366
-msgid "Climb"
-msgstr "Subida"
-
-#: FlatCAMDB.py:1425 flatcamGUI/ObjectUI.py:416
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:63
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:103
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:145
-#: flatcamTools/ToolNCC.py:367
-msgid "Conventional"
-msgstr "Convencional"
-
-#: FlatCAMDB.py:1437 FlatCAMDB.py:1546 flatcamEditors/FlatCAMGeoEditor.py:451
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:182
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:163
-#: flatcamTools/ToolNCC.py:382 flatcamTools/ToolPaint.py:329
-msgid "Overlap"
-msgstr "Sobreposição"
-
-#: FlatCAMDB.py:1439 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:184
-#: flatcamTools/ToolNCC.py:384
-msgid ""
-"How much (percentage) of the tool width to overlap each tool pass.\n"
-"Adjust the value starting with lower values\n"
-"and increasing it if areas that should be cleared are still \n"
-"not cleared.\n"
-"Lower values = faster processing, faster execution on CNC.\n"
-"Higher values = slow processing and slow execution on CNC\n"
-"due of too many paths."
-msgstr ""
-"Quanto da largura da ferramenta (percentual) é sobreposto em cada passagem "
-"da ferramenta.\n"
-"Ajuste o valor começando com valores menores, e aumente se alguma área que \n"
-"deveria ser limpa não foi limpa.\n"
-"Valores menores = processamento mais rápido, execução mais rápida no CNC. \n"
-"Valores maiores = processamento lento e execução lenta no CNC devido\n"
-"ao número de caminhos."
-
-#: FlatCAMDB.py:1458 FlatCAMDB.py:1567 flatcamEditors/FlatCAMGeoEditor.py:471
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:72
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:229
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:59
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:45
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:53
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:183
-#: flatcamTools/ToolCopperThieving.py:111
-#: flatcamTools/ToolCopperThieving.py:362 flatcamTools/ToolCutOut.py:190
-#: flatcamTools/ToolFiducials.py:172 flatcamTools/ToolInvertGerber.py:88
-#: flatcamTools/ToolInvertGerber.py:96 flatcamTools/ToolNCC.py:403
-#: flatcamTools/ToolPaint.py:350
-msgid "Margin"
-msgstr "Margem"
-
-#: FlatCAMDB.py:1460
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:74
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:61
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204
-#: flatcamTools/ToolCopperThieving.py:113 flatcamTools/ToolFiducials.py:174
-#: flatcamTools/ToolFiducials.py:237 flatcamTools/ToolNCC.py:405
-msgid "Bounding box margin."
-msgstr "Margem da caixa delimitadora."
-
-#: FlatCAMDB.py:1471 FlatCAMDB.py:1582 flatcamEditors/FlatCAMGeoEditor.py:485
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:105
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:198
-#: flatcamTools/ToolExtractDrills.py:128 flatcamTools/ToolNCC.py:416
-#: flatcamTools/ToolPaint.py:365 flatcamTools/ToolPunchGerber.py:139
-msgid "Method"
-msgstr "Método"
-
-#: FlatCAMDB.py:1473 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:217
-#: flatcamTools/ToolNCC.py:418
-msgid ""
-"Algorithm for copper clearing:\n"
-"- Standard: Fixed step inwards.\n"
-"- Seed-based: Outwards from seed.\n"
-"- Line-based: Parallel lines."
-msgstr ""
-"Algoritmo para retirada de cobre:\n"
-"- Padrão: Passo fixo para dentro.\n"
-"- Baseado em semente: Para fora a partir de uma semente.\n"
-"- Linhas retas: Linhas paralelas."
-
-#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 flatcamEditors/FlatCAMGeoEditor.py:499
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
-#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolNCC.py:2395
-#: flatcamTools/ToolNCC.py:2424 flatcamTools/ToolNCC.py:2693
-#: flatcamTools/ToolNCC.py:2725 flatcamTools/ToolPaint.py:390
-#: flatcamTools/ToolPaint.py:1834 tclCommands/TclCommandCopperClear.py:126
-#: tclCommands/TclCommandCopperClear.py:134 tclCommands/TclCommandPaint.py:125
-msgid "Standard"
-msgstr "Padrão"
-
-#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 defaults.py:395 defaults.py:427
-#: flatcamEditors/FlatCAMGeoEditor.py:499
-#: flatcamEditors/FlatCAMGeoEditor.py:569
-#: flatcamEditors/FlatCAMGeoEditor.py:5152
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
-#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolNCC.py:2401
-#: flatcamTools/ToolNCC.py:2429 flatcamTools/ToolNCC.py:2699
-#: flatcamTools/ToolNCC.py:2731 flatcamTools/ToolPaint.py:390
-#: flatcamTools/ToolPaint.py:1848 tclCommands/TclCommandCopperClear.py:128
-#: tclCommands/TclCommandCopperClear.py:136 tclCommands/TclCommandPaint.py:127
-msgid "Seed"
-msgstr "Semente"
-
-#: FlatCAMDB.py:1481 FlatCAMDB.py:1596 flatcamEditors/FlatCAMGeoEditor.py:499
-#: flatcamEditors/FlatCAMGeoEditor.py:5156
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
-#: flatcamTools/ToolNCC.py:431 flatcamTools/ToolPaint.py:390
-#: flatcamTools/ToolPaint.py:699 flatcamTools/ToolPaint.py:1862
-#: tclCommands/TclCommandCopperClear.py:130 tclCommands/TclCommandPaint.py:129
-msgid "Lines"
-msgstr "Linhas"
-
-#: FlatCAMDB.py:1489 FlatCAMDB.py:1607
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:237
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:224
-#: flatcamTools/ToolNCC.py:439 flatcamTools/ToolPaint.py:401
-msgid "Connect"
-msgstr "Conectar"
-
-#: FlatCAMDB.py:1493 FlatCAMDB.py:1610 flatcamEditors/FlatCAMGeoEditor.py:508
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:239
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:226
-#: flatcamTools/ToolNCC.py:443 flatcamTools/ToolPaint.py:404
-msgid ""
-"Draw lines between resulting\n"
-"segments to minimize tool lifts."
-msgstr ""
-"Desenha linhas entre os segmentos resultantes\n"
-"para minimizar as elevações de ferramentas."
-
-#: FlatCAMDB.py:1499 FlatCAMDB.py:1614
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:246
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:232
-#: flatcamTools/ToolNCC.py:449 flatcamTools/ToolPaint.py:408
-msgid "Contour"
-msgstr "Contorno"
-
-#: FlatCAMDB.py:1503 FlatCAMDB.py:1617 flatcamEditors/FlatCAMGeoEditor.py:518
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:248
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:234
-#: flatcamTools/ToolNCC.py:453 flatcamTools/ToolPaint.py:411
-msgid ""
-"Cut around the perimeter of the polygon\n"
-"to trim rough edges."
-msgstr "Corta no perímetro do polígono para retirar as arestas."
-
-#: FlatCAMDB.py:1509 flatcamEditors/FlatCAMGeoEditor.py:612
-#: flatcamEditors/FlatCAMGrbEditor.py:5311 flatcamGUI/ObjectUI.py:143
-#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:255
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:142
-#: flatcamTools/ToolNCC.py:459 flatcamTools/ToolTransform.py:28
-msgid "Offset"
-msgstr "Deslocar"
-
-#: FlatCAMDB.py:1513 flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:257
-#: flatcamTools/ToolNCC.py:463
-msgid ""
-"If used, it will add an offset to the copper features.\n"
-"The copper clearing will finish to a distance\n"
-"from the copper features.\n"
-"The value can be between 0 and 10 FlatCAM units."
-msgstr ""
-"Se usado, será adicionado um deslocamento aos recursos de cobre.\n"
-"A retirada de cobre terminará a uma distância dos recursos de cobre.\n"
-"O valor pode estar entre 0 e 10 unidades FlatCAM."
-
-#: FlatCAMDB.py:1548 flatcamEditors/FlatCAMGeoEditor.py:453
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:165
-#: flatcamTools/ToolPaint.py:331
-msgid ""
-"How much (percentage) of the tool width to overlap each tool pass.\n"
-"Adjust the value starting with lower values\n"
-"and increasing it if areas that should be painted are still \n"
-"not painted.\n"
-"Lower values = faster processing, faster execution on CNC.\n"
-"Higher values = slow processing and slow execution on CNC\n"
-"due of too many paths."
-msgstr ""
-"Quanto da largura da ferramenta (percentual) é sobreposto em cada passagem "
-"da ferramenta.\n"
-"Ajuste o valor começando com valores menores, e aumente se alguma área que \n"
-"deveria ser pintada não foi pintada.\n"
-"Valores menores = processamento mais rápido, execução mais rápida no CNC. \n"
-"Valores maiores = processamento lento e execução lenta no CNC \n"
-"devido ao número de caminhos."
-
-#: FlatCAMDB.py:1569 flatcamEditors/FlatCAMGeoEditor.py:473
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:185
-#: flatcamTools/ToolPaint.py:352
-msgid ""
-"Distance by which to avoid\n"
-"the edges of the polygon to\n"
-"be painted."
-msgstr ""
-"Distância pela qual evitar \n"
-"as bordas do polígono para \n"
-"ser pintado."
-
-#: FlatCAMDB.py:1584 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:200
-#: flatcamTools/ToolPaint.py:367
-msgid ""
-"Algorithm for painting:\n"
-"- Standard: Fixed step inwards.\n"
-"- Seed-based: Outwards from seed.\n"
-"- Line-based: Parallel lines.\n"
-"- Laser-lines: Active only for Gerber objects.\n"
-"Will create lines that follow the traces.\n"
-"- Combo: In case of failure a new method will be picked from the above\n"
-"in the order specified."
-msgstr ""
-"Algoritmo para pintura:\n"
-"- Padrão: Passo fixo para dentro.\n"
-"- Baseado em semente: Para fora a partir de uma semente.\n"
-"- Linhas retas: Linhas paralelas.\n"
-"- Linhas laser: Ativa apenas para objetos Gerber.\n"
-"Criará linhas que seguem os traços.\n"
-"- Combo: em caso de falha, um novo método será escolhido dentre os itens "
-"acima na ordem especificada."
-
-#: FlatCAMDB.py:1596 FlatCAMDB.py:1598
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
-#: flatcamTools/ToolPaint.py:390 flatcamTools/ToolPaint.py:392
-#: flatcamTools/ToolPaint.py:693 flatcamTools/ToolPaint.py:698
-#: flatcamTools/ToolPaint.py:1876 tclCommands/TclCommandPaint.py:131
-msgid "Laser_lines"
-msgstr "Linhas Laser"
-
-#: FlatCAMDB.py:1596 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
-#: flatcamTools/ToolPaint.py:390 flatcamTools/ToolPaint.py:2027
-#: tclCommands/TclCommandPaint.py:133
-msgid "Combo"
-msgstr "Combo"
-
-#: FlatCAMDB.py:1641
-msgid "Add Tool in DB"
-msgstr "Adicionar Ferramenta no BD"
-
-#: FlatCAMDB.py:1675
-msgid "Save DB"
-msgstr "Salvar BD"
-
-#: FlatCAMDB.py:1677
-msgid "Save the Tools Database information's."
-msgstr "Salve as informações do banco de dados de ferramentas."
-
-#: FlatCAMProcess.py:172
-msgid "processes running."
-msgstr "processos executando."
-
-#: FlatCAMTool.py:245 FlatCAMTool.py:252 flatcamGUI/ObjectUI.py:157
-#: flatcamGUI/ObjectUI.py:164
-msgid "Edited value is out of range"
-msgstr "Valor fora da faixa"
-
-#: FlatCAMTool.py:247 FlatCAMTool.py:254 flatcamGUI/ObjectUI.py:159
-#: flatcamGUI/ObjectUI.py:166
-msgid "Edited value is within limits."
-msgstr "O valor editado está dentro dos limites."
-
-#: FlatCAMTranslation.py:104
-msgid "The application will restart."
-msgstr "O aplicativo reiniciará."
-
-#: FlatCAMTranslation.py:106
-msgid "Are you sure do you want to change the current language to"
-msgstr "Você tem certeza de que quer alterar o idioma para"
-
-#: FlatCAMTranslation.py:107
-msgid "Apply Language ..."
-msgstr "Aplicar o Idioma ..."
+#: Common.py:527 Common.py:575
+#, fuzzy
+#| msgid "All objects are selected."
+msgid "All exclusion zones deleted."
+msgstr "Todos os objetos estão selecionados."
+
+#: Common.py:562
+#, fuzzy
+#| msgid "Delete all extensions from the list."
+msgid "Selected exclusion zones deleted."
+msgstr "Excluir todas as extensões da lista."
#: assets/linux/flatcam-beta.desktop:3
msgid "FlatCAM Beta"
msgstr "FlatCAM Beta"
-#: assets/linux/flatcam-beta.desktop:7
-msgid "./assets/icon.png"
-msgstr "./assets/icon.png"
-
#: assets/linux/flatcam-beta.desktop:8
msgid "G-Code from GERBERS"
msgstr "G-Code de Gerbers"
-#: camlib.py:597
+#: camlib.py:596
msgid "self.solid_geometry is neither BaseGeometry or list."
msgstr "self.solid_geometry não é nem BaseGeometry nem lista."
-#: camlib.py:970
+#: camlib.py:971
msgid "Pass"
msgstr "Passo"
-#: camlib.py:981 flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:146
-#: flatcamObjects/FlatCAMGerber.py:497 flatcamTools/ToolCopperThieving.py:1016
-#: flatcamTools/ToolCopperThieving.py:1205
-#: flatcamTools/ToolCopperThieving.py:1217 flatcamTools/ToolNCC.py:2050
-#: flatcamTools/ToolNCC.py:2158 flatcamTools/ToolNCC.py:2172
-#: flatcamTools/ToolNCC.py:3103 flatcamTools/ToolNCC.py:3208
-#: flatcamTools/ToolNCC.py:3223 flatcamTools/ToolNCC.py:3489
-#: flatcamTools/ToolNCC.py:3590 flatcamTools/ToolNCC.py:3605
-msgid "Buffering"
-msgstr "Criando buffer"
-
-#: camlib.py:990
+#: camlib.py:991
msgid "Get Exteriors"
msgstr "Obter Exterior"
-#: camlib.py:993
+#: camlib.py:994
msgid "Get Interiors"
msgstr "Obter Interior"
-#: camlib.py:2172
+#: camlib.py:2174
msgid "Object was mirrored"
msgstr "O objeto foi espelhado"
-#: camlib.py:2174
+#: camlib.py:2176
msgid "Failed to mirror. No object selected"
msgstr "Falha ao espelhar. Nenhum objeto selecionado"
-#: camlib.py:2239
+#: camlib.py:2241
msgid "Object was rotated"
msgstr "O objeto foi rotacionado"
-#: camlib.py:2241
+#: camlib.py:2243
msgid "Failed to rotate. No object selected"
msgstr "Falha ao girar. Nenhum objeto selecionado"
-#: camlib.py:2307
+#: camlib.py:2309
msgid "Object was skewed"
msgstr "O objeto foi inclinado"
-#: camlib.py:2309
+#: camlib.py:2311
msgid "Failed to skew. No object selected"
msgstr "Falha ao inclinar. Nenhum objeto selecionado"
-#: camlib.py:2385
+#: camlib.py:2387
msgid "Object was buffered"
msgstr "O objeto foi armazenado em buffer"
-#: camlib.py:2387
+#: camlib.py:2389
msgid "Failed to buffer. No object selected"
msgstr "Falha no buffer. Nenhum objeto selecionado"
-#: camlib.py:2594
+#: camlib.py:2597
msgid "There is no such parameter"
msgstr "Não existe esse parâmetro"
-#: camlib.py:2654 camlib.py:2887 camlib.py:3116 camlib.py:3338
+#: camlib.py:2657 camlib.py:2898 camlib.py:3127 camlib.py:3349
msgid ""
"The Cut Z parameter has positive value. It is the depth value to drill into "
"material.\n"
@@ -2732,13 +18150,13 @@ msgstr ""
"um erro de digitação, o aplicativo converterá o valor para negativo.\n"
"Verifique o código CNC resultante (G-Code, etc.)."
-#: camlib.py:2662 camlib.py:2897 camlib.py:3126 camlib.py:3348 camlib.py:3631
-#: camlib.py:4017
+#: camlib.py:2665 camlib.py:2908 camlib.py:3137 camlib.py:3359 camlib.py:3650
+#: camlib.py:4045
msgid "The Cut Z parameter is zero. There will be no cut, skipping file"
msgstr ""
"O parâmetro Profundidade de Corte é zero. Não haverá corte, ignorando arquivo"
-#: camlib.py:2673 camlib.py:3985
+#: camlib.py:2680 camlib.py:4013
msgid ""
"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, "
"y) \n"
@@ -2748,7 +18166,7 @@ msgstr ""
"formato (x, y).\n"
"Agora existe apenas um valor, não dois. "
-#: camlib.py:2682 camlib.py:3582 camlib.py:3967
+#: camlib.py:2693 camlib.py:3597 camlib.py:3991
msgid ""
"The End Move X,Y field in Edit -> Preferences has to be in the format (x, y) "
"but now there is only one value, not two."
@@ -2756,31 +18174,31 @@ msgstr ""
"O campo Movimento Final X, Y em Editar -> Preferências deve estar no formato "
"(x, y), mas agora está com apenas um valor, não dois."
-#: camlib.py:2770
+#: camlib.py:2781
msgid "Creating a list of points to drill..."
msgstr "Criando uma lista de pontos para furar..."
-#: camlib.py:2860 camlib.py:3729 camlib.py:4121
+#: camlib.py:2871 camlib.py:3748 camlib.py:4149
msgid "Starting G-Code"
msgstr "Iniciando o G-Code"
-#: camlib.py:3001 camlib.py:3220 camlib.py:3384 camlib.py:3742 camlib.py:4132
+#: camlib.py:3012 camlib.py:3231 camlib.py:3395 camlib.py:3761 camlib.py:4160
msgid "Starting G-Code for tool with diameter"
msgstr "Iniciando o G-Code para ferramenta com diâmetro"
-#: camlib.py:3084 camlib.py:3302 camlib.py:3470
+#: camlib.py:3095 camlib.py:3313 camlib.py:3481
msgid "G91 coordinates not implemented"
msgstr "Coordenadas G91 não implementadas"
-#: camlib.py:3090 camlib.py:3309 camlib.py:3475
+#: camlib.py:3101 camlib.py:3320 camlib.py:3486
msgid "The loaded Excellon file has no drills"
msgstr "O arquivo Excellon carregado não tem furos"
-#: camlib.py:3498
+#: camlib.py:3509
msgid "Finished G-Code generation..."
msgstr "Geração de G-Code concluída..."
-#: camlib.py:3600
+#: camlib.py:3619
msgid ""
"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, "
"y) \n"
@@ -2790,7 +18208,7 @@ msgstr ""
"formato (x, y).\n"
"Agora está com apenas um valor, não dois."
-#: camlib.py:3614 camlib.py:4000
+#: camlib.py:3633 camlib.py:4028
msgid ""
"Cut_Z parameter is None or zero. Most likely a bad combinations of other "
"parameters."
@@ -2798,7 +18216,7 @@ msgstr ""
"Profundidade de Corte está vazio ou é zero. Provavelmente é uma combinação "
"ruim de outros parâmetros."
-#: camlib.py:3623 camlib.py:4009
+#: camlib.py:3642 camlib.py:4037
msgid ""
"The Cut Z parameter has positive value. It is the depth value to cut into "
"material.\n"
@@ -2811,11 +18229,11 @@ msgstr ""
"um erro de digitação, o aplicativo converterá o valor para negativo.\n"
"Verifique o código CNC resultante (G-Code, etc.)."
-#: camlib.py:3636 camlib.py:4023
+#: camlib.py:3655 camlib.py:4051
msgid "Travel Z parameter is None or zero."
msgstr "O parâmetro Altura de Deslocamento Z é Nulo ou zero."
-#: camlib.py:3641 camlib.py:4028
+#: camlib.py:3660 camlib.py:4056
msgid ""
"The Travel Z parameter has negative value. It is the height value to travel "
"between cuts.\n"
@@ -2829,35 +18247,35 @@ msgstr ""
"positivo.\n"
"Verifique o código CNC resultante (G-Code, etc.)."
-#: camlib.py:3649 camlib.py:4036
+#: camlib.py:3668 camlib.py:4064
msgid "The Z Travel parameter is zero. This is dangerous, skipping file"
msgstr ""
"O parâmetro Altura de Deslocamento é zero. Isso é perigoso, ignorando arquivo"
-#: camlib.py:3668 camlib.py:4059
+#: camlib.py:3687 camlib.py:4087
msgid "Indexing geometry before generating G-Code..."
msgstr "Indexando geometrias antes de gerar o G-Code..."
-#: camlib.py:3812 camlib.py:4201
+#: camlib.py:3831 camlib.py:4229
msgid "Finished G-Code generation"
msgstr "Geração de G-Code concluída"
-#: camlib.py:3812
+#: camlib.py:3831
msgid "paths traced"
msgstr "caminho traçado"
-#: camlib.py:3862
+#: camlib.py:3881
msgid "Expected a Geometry, got"
msgstr "Esperando uma geometria, recebido"
-#: camlib.py:3869
+#: camlib.py:3888
msgid ""
"Trying to generate a CNC Job from a Geometry object without solid_geometry."
msgstr ""
"Tentando gerar um trabalho CNC a partir de um objeto Geometria sem "
"solid_geometry."
-#: camlib.py:3910
+#: camlib.py:3929
msgid ""
"The Tool Offset value is too negative to use for the current_geometry.\n"
"Raise the value (in module) and try again."
@@ -2866,15495 +18284,46 @@ msgstr ""
"current_geometry.\n"
"Aumente o valor (em módulo) e tente novamente."
-#: camlib.py:4201
+#: camlib.py:4229
msgid " paths traced."
msgstr " caminhos traçados."
-#: camlib.py:4229
+#: camlib.py:4257
msgid "There is no tool data in the SolderPaste geometry."
msgstr "Não há dados de ferramenta na geometria de Pasta de Solda."
-#: camlib.py:4318
+#: camlib.py:4346
msgid "Finished SolderPaste G-Code generation"
msgstr "Geração de G-Code para Pasta de Solda concluída"
-#: camlib.py:4318
+#: camlib.py:4346
msgid "paths traced."
msgstr "caminhos traçados."
-#: camlib.py:4578
+#: camlib.py:4606
msgid "Parsing GCode file. Number of lines"
msgstr "Analisando o arquivo G-Code. Número de linhas"
-#: camlib.py:4685
+#: camlib.py:4713
msgid "Creating Geometry from the parsed GCode file. "
msgstr "Criando Geometria a partir do arquivo G-Code analisado. "
-#: camlib.py:4828 camlib.py:5118 camlib.py:5229 camlib.py:5385
+#: camlib.py:4856 camlib.py:5079 camlib.py:5190 camlib.py:5346
msgid "G91 coordinates not implemented ..."
msgstr "Coordenadas G91 não implementadas..."
-#: camlib.py:4960
+#: camlib.py:4921
msgid "Unifying Geometry from parsed Geometry segments"
msgstr "Unificando Gometria a partir de segmentos de geometria analisados"
-#: defaults.py:401
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
-#: flatcamTools/ToolCopperThieving.py:125 flatcamTools/ToolNCC.py:535
-#: flatcamTools/ToolNCC.py:1306 flatcamTools/ToolNCC.py:1634
-#: flatcamTools/ToolNCC.py:1919 flatcamTools/ToolNCC.py:1983
-#: flatcamTools/ToolNCC.py:2967 flatcamTools/ToolNCC.py:2976
-#: tclCommands/TclCommandCopperClear.py:190
-msgid "Itself"
-msgstr "Própria"
-
-#: defaults.py:428 flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
-#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:1427
-#: tclCommands/TclCommandPaint.py:162
-msgid "All Polygons"
-msgstr "Todos os polígonos"
-
-#: defaults.py:739
+#: defaults.py:756
msgid "Could not load defaults file."
msgstr "Não foi possível carregar o arquivo com os padrões."
-#: defaults.py:752
+#: defaults.py:769
msgid "Failed to parse defaults file."
msgstr "Falha ao analisar o arquivo com os padrões."
-#: flatcamEditors/FlatCAMExcEditor.py:50 flatcamEditors/FlatCAMExcEditor.py:74
-#: flatcamEditors/FlatCAMExcEditor.py:168
-#: flatcamEditors/FlatCAMExcEditor.py:385
-#: flatcamEditors/FlatCAMExcEditor.py:589
-#: flatcamEditors/FlatCAMGrbEditor.py:243
-#: flatcamEditors/FlatCAMGrbEditor.py:250
-msgid "Click to place ..."
-msgstr "Clique para colocar ..."
-
-#: flatcamEditors/FlatCAMExcEditor.py:58
-msgid "To add a drill first select a tool"
-msgstr "Para adicionar um furo, primeiro selecione uma ferramenta"
-
-#: flatcamEditors/FlatCAMExcEditor.py:122
-msgid "Done. Drill added."
-msgstr "Feito. Furo adicionado."
-
-#: flatcamEditors/FlatCAMExcEditor.py:176
-msgid "To add an Drill Array first select a tool in Tool Table"
-msgstr ""
-"Para adicionar um Matriz de Furos, primeiro selecione uma ferramenta na "
-"Tabela de Ferramentas"
-
-#: flatcamEditors/FlatCAMExcEditor.py:192
-#: flatcamEditors/FlatCAMExcEditor.py:415
-#: flatcamEditors/FlatCAMExcEditor.py:636
-#: flatcamEditors/FlatCAMExcEditor.py:1151
-#: flatcamEditors/FlatCAMExcEditor.py:1178
-#: flatcamEditors/FlatCAMGrbEditor.py:473
-#: flatcamEditors/FlatCAMGrbEditor.py:1937
-#: flatcamEditors/FlatCAMGrbEditor.py:1967
-msgid "Click on target location ..."
-msgstr "Clique no local de destino ..."
-
-#: flatcamEditors/FlatCAMExcEditor.py:211
-msgid "Click on the Drill Circular Array Start position"
-msgstr "Clique na posição inicial da Matriz Circular de Furos"
-
-#: flatcamEditors/FlatCAMExcEditor.py:233
-#: flatcamEditors/FlatCAMExcEditor.py:677
-#: flatcamEditors/FlatCAMGrbEditor.py:518
-msgid "The value is not Float. Check for comma instead of dot separator."
-msgstr ""
-"O valor não é flutuante. Verifique se há uma vírgula em vez do ponto no "
-"separador decimal."
-
-#: flatcamEditors/FlatCAMExcEditor.py:237
-msgid "The value is mistyped. Check the value"
-msgstr "O valor foi digitado incorretamente. Verifique o valor"
-
-#: flatcamEditors/FlatCAMExcEditor.py:336
-msgid "Too many drills for the selected spacing angle."
-msgstr "Muitos furos para o ângulo de espaçamento selecionado."
-
-#: flatcamEditors/FlatCAMExcEditor.py:354
-msgid "Done. Drill Array added."
-msgstr "Matriz de Furos adicionada."
-
-#: flatcamEditors/FlatCAMExcEditor.py:394
-msgid "To add a slot first select a tool"
-msgstr "Para adicionar um ranhura, primeiro selecione uma ferramenta"
-
-#: flatcamEditors/FlatCAMExcEditor.py:454
-#: flatcamEditors/FlatCAMExcEditor.py:461
-#: flatcamEditors/FlatCAMExcEditor.py:742
-#: flatcamEditors/FlatCAMExcEditor.py:749
-msgid "Value is missing or wrong format. Add it and retry."
-msgstr "Valor está faltando ou formato errado. Adicione e tente novamente."
-
-#: flatcamEditors/FlatCAMExcEditor.py:559
-msgid "Done. Adding Slot completed."
-msgstr "Feito. Ranhura adicionada."
-
-#: flatcamEditors/FlatCAMExcEditor.py:597
-msgid "To add an Slot Array first select a tool in Tool Table"
-msgstr ""
-"Para adicionar uma matriz de ranhuras, primeiro selecione uma ferramenta na "
-"Tabela de Ferramentas"
-
-#: flatcamEditors/FlatCAMExcEditor.py:655
-msgid "Click on the Slot Circular Array Start position"
-msgstr "Clique na posição inicial da matriz circular da ranhura"
-
-#: flatcamEditors/FlatCAMExcEditor.py:680
-#: flatcamEditors/FlatCAMGrbEditor.py:521
-msgid "The value is mistyped. Check the value."
-msgstr "O valor digitado está incorreto. Verifique o valor."
-
-#: flatcamEditors/FlatCAMExcEditor.py:859
-msgid "Too many Slots for the selected spacing angle."
-msgstr "Muitas Ranhuras para o ângulo de espaçamento selecionado."
-
-#: flatcamEditors/FlatCAMExcEditor.py:882
-msgid "Done. Slot Array added."
-msgstr "Feito. Matriz de Ranhuras adicionada."
-
-#: flatcamEditors/FlatCAMExcEditor.py:904
-msgid "Click on the Drill(s) to resize ..."
-msgstr "Clique no(s) Furo(s) para redimensionar ..."
-
-#: flatcamEditors/FlatCAMExcEditor.py:934
-msgid "Resize drill(s) failed. Please enter a diameter for resize."
-msgstr ""
-"Redimensionar furo(s) falhou. Por favor insira um diâmetro para "
-"redimensionar."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1112
-msgid "Done. Drill/Slot Resize completed."
-msgstr "Redimensionamento de furo/ranhura concluído."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1115
-msgid "Cancelled. No drills/slots selected for resize ..."
-msgstr "Cancelado. Nenhum furo/ranhura selecionado para redimensionar ..."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1153
-#: flatcamEditors/FlatCAMGrbEditor.py:1939
-msgid "Click on reference location ..."
-msgstr "Clique no local de referência ..."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1210
-msgid "Done. Drill(s) Move completed."
-msgstr "Movimento do Furo realizado."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1318
-msgid "Done. Drill(s) copied."
-msgstr "Furo(s) copiado(s)."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1557
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:26
-msgid "Excellon Editor"
-msgstr "Editor Excellon"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1564
-#: flatcamEditors/FlatCAMGrbEditor.py:2462
-msgid "Name:"
-msgstr "Nome:"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1570 flatcamGUI/ObjectUI.py:761
-#: flatcamGUI/ObjectUI.py:1465 flatcamTools/ToolNCC.py:120
-#: flatcamTools/ToolPaint.py:115 flatcamTools/ToolSolderPaste.py:74
-msgid "Tools Table"
-msgstr "Tabela de Ferramentas"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1572 flatcamGUI/ObjectUI.py:763
-msgid ""
-"Tools in this Excellon object\n"
-"when are used for drilling."
-msgstr ""
-"Ferramentas neste objeto Excellon \n"
-"quando são usadas para perfuração."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1584
-#: flatcamEditors/FlatCAMExcEditor.py:3066 flatcamGUI/ObjectUI.py:781
-#: flatcamObjects/FlatCAMExcellon.py:1098
-#: flatcamObjects/FlatCAMExcellon.py:1188
-#: flatcamObjects/FlatCAMExcellon.py:1373 flatcamTools/ToolNCC.py:132
-#: flatcamTools/ToolPaint.py:128 flatcamTools/ToolPcbWizard.py:76
-#: flatcamTools/ToolProperties.py:416 flatcamTools/ToolProperties.py:476
-#: flatcamTools/ToolSolderPaste.py:85 tclCommands/TclCommandDrillcncjob.py:193
-msgid "Diameter"
-msgstr "Diâmetro"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1592
-msgid "Add/Delete Tool"
-msgstr "Adicionar/Excluir Ferramenta"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1594
-msgid ""
-"Add/Delete a tool to the tool list\n"
-"for this Excellon object."
-msgstr ""
-"Adicionar/Excluir uma ferramenta para a lista de ferramentas\n"
-"para este objeto Excellon."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1606 flatcamGUI/ObjectUI.py:1585
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:57
-msgid "Diameter for the new tool"
-msgstr "Diâmetro da nova ferramenta"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1616
-msgid "Add Tool"
-msgstr "Adicionar Ferramenta"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1618
-msgid ""
-"Add a new tool to the tool list\n"
-"with the diameter specified above."
-msgstr ""
-"Adiciona uma nova ferramenta à lista de ferramentas\n"
-"com o diâmetro especificado acima."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1630
-msgid "Delete Tool"
-msgstr "Excluir Ferramenta"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1632
-msgid ""
-"Delete a tool in the tool list\n"
-"by selecting a row in the tool table."
-msgstr ""
-"Exclui uma ferramenta da lista de ferramentas selecionando uma linha na "
-"tabela de ferramentas."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1650 flatcamGUI/FlatCAMGUI.py:2019
-msgid "Resize Drill(s)"
-msgstr "Redimensionar Furo(s)"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1652
-msgid "Resize a drill or a selection of drills."
-msgstr "Redimensiona um furo ou uma seleção de furos."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1659
-msgid "Resize Dia"
-msgstr "Novo Diâmetro"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1661
-msgid "Diameter to resize to."
-msgstr "Novo diâmetro para redimensionar."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1672
-msgid "Resize"
-msgstr "Redimensionar"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1674
-msgid "Resize drill(s)"
-msgstr "Redimensionar furo(s)"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1699 flatcamGUI/FlatCAMGUI.py:2018
-#: flatcamGUI/FlatCAMGUI.py:2270
-msgid "Add Drill Array"
-msgstr "Adicionar Matriz de Furos"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1701
-msgid "Add an array of drills (linear or circular array)"
-msgstr "Adiciona uma matriz de furos (matriz linear ou circular)"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1707
-msgid ""
-"Select the type of drills array to create.\n"
-"It can be Linear X(Y) or Circular"
-msgstr ""
-"Selecione o tipo de matriz de furos para criar.\n"
-"Pode ser Linear X(Y) ou Circular"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1710
-#: flatcamEditors/FlatCAMExcEditor.py:1924
-#: flatcamEditors/FlatCAMGrbEditor.py:2775
-msgid "Linear"
-msgstr "Linear"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1711
-#: flatcamEditors/FlatCAMExcEditor.py:1925
-#: flatcamEditors/FlatCAMGrbEditor.py:2776 flatcamGUI/ObjectUI.py:316
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:52
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:149
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:107
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:52
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:151
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:70
-#: flatcamTools/ToolExtractDrills.py:78 flatcamTools/ToolExtractDrills.py:201
-#: flatcamTools/ToolFiducials.py:220 flatcamTools/ToolNCC.py:221
-#: flatcamTools/ToolPaint.py:204 flatcamTools/ToolPunchGerber.py:89
-#: flatcamTools/ToolPunchGerber.py:229
-msgid "Circular"
-msgstr "Circular"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1719
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:68
-msgid "Nr of drills"
-msgstr "Nº de furos"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1720
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:70
-msgid "Specify how many drills to be in the array."
-msgstr "Especifique quantos furos devem estar na matriz."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1738
-#: flatcamEditors/FlatCAMExcEditor.py:1788
-#: flatcamEditors/FlatCAMExcEditor.py:1860
-#: flatcamEditors/FlatCAMExcEditor.py:1953
-#: flatcamEditors/FlatCAMExcEditor.py:2004
-#: flatcamEditors/FlatCAMGrbEditor.py:1573
-#: flatcamEditors/FlatCAMGrbEditor.py:2804
-#: flatcamEditors/FlatCAMGrbEditor.py:2853
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:178
-msgid "Direction"
-msgstr "Direção"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1740
-#: flatcamEditors/FlatCAMExcEditor.py:1955
-#: flatcamEditors/FlatCAMGrbEditor.py:2806
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:86
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:234
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:122
-msgid ""
-"Direction on which the linear array is oriented:\n"
-"- 'X' - horizontal axis \n"
-"- 'Y' - vertical axis or \n"
-"- 'Angle' - a custom angle for the array inclination"
-msgstr ""
-"Direção na qual a matriz linear é orientada: \n"
-"- 'X' - eixo horizontal\n"
-"- 'Y' - eixo vertical ou\n"
-"- 'Ângulo' - um ângulo personalizado para a inclinação da matriz"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1747
-#: flatcamEditors/FlatCAMExcEditor.py:1869
-#: flatcamEditors/FlatCAMExcEditor.py:1962
-#: flatcamEditors/FlatCAMGrbEditor.py:2813
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:92
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:187
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:240
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:128
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:208
-#: flatcamTools/ToolFilm.py:256
-msgid "X"
-msgstr "X"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1748
-#: flatcamEditors/FlatCAMExcEditor.py:1870
-#: flatcamEditors/FlatCAMExcEditor.py:1963
-#: flatcamEditors/FlatCAMGrbEditor.py:2814
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:93
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:188
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:241
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:129
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:209
-#: flatcamTools/ToolFilm.py:257
-msgid "Y"
-msgstr "Y"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1749
-#: flatcamEditors/FlatCAMExcEditor.py:1766
-#: flatcamEditors/FlatCAMExcEditor.py:1800
-#: flatcamEditors/FlatCAMExcEditor.py:1871
-#: flatcamEditors/FlatCAMExcEditor.py:1875
-#: flatcamEditors/FlatCAMExcEditor.py:1964
-#: flatcamEditors/FlatCAMExcEditor.py:1982
-#: flatcamEditors/FlatCAMExcEditor.py:2016
-#: flatcamEditors/FlatCAMGrbEditor.py:2815
-#: flatcamEditors/FlatCAMGrbEditor.py:2832
-#: flatcamEditors/FlatCAMGrbEditor.py:2868
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:94
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:113
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:189
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:194
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:242
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:263
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:130
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:148
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:53
-#: flatcamTools/ToolDistance.py:120 flatcamTools/ToolDistanceMin.py:69
-#: flatcamTools/ToolTransform.py:60
-msgid "Angle"
-msgstr "Ângulo"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1753
-#: flatcamEditors/FlatCAMExcEditor.py:1968
-#: flatcamEditors/FlatCAMGrbEditor.py:2819
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:100
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:248
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:136
-msgid "Pitch"
-msgstr "Passo"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1755
-#: flatcamEditors/FlatCAMExcEditor.py:1970
-#: flatcamEditors/FlatCAMGrbEditor.py:2821
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:102
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:250
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:138
-msgid "Pitch = Distance between elements of the array."
-msgstr "Passo = Distância entre os elementos da matriz."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1768
-#: flatcamEditors/FlatCAMExcEditor.py:1984
-msgid ""
-"Angle at which the linear array is placed.\n"
-"The precision is of max 2 decimals.\n"
-"Min value is: -360 degrees.\n"
-"Max value is: 360.00 degrees."
-msgstr ""
-"Ângulo no qual a matriz linear é colocada.\n"
-"A precisão é de no máximo 2 decimais.\n"
-"Valor mínimo: -360.00 graus.\n"
-"Valor máximo: 360.00 graus."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1789
-#: flatcamEditors/FlatCAMExcEditor.py:2005
-#: flatcamEditors/FlatCAMGrbEditor.py:2855
-msgid ""
-"Direction for circular array.Can be CW = clockwise or CCW = counter "
-"clockwise."
-msgstr ""
-"Sentido da matriz circular. Pode ser CW = horário ou CCW = anti-horário."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1796
-#: flatcamEditors/FlatCAMExcEditor.py:2012
-#: flatcamEditors/FlatCAMGrbEditor.py:2863
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:129
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:136
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:286
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:142
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:170
-msgid "CW"
-msgstr "CW"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1797
-#: flatcamEditors/FlatCAMExcEditor.py:2013
-#: flatcamEditors/FlatCAMGrbEditor.py:2864
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:130
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:137
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:287
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:143
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:171
-msgid "CCW"
-msgstr "CCW"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1801
-#: flatcamEditors/FlatCAMExcEditor.py:2017
-#: flatcamEditors/FlatCAMGrbEditor.py:2870
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:115
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:145
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:265
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:295
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:150
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:179
-msgid "Angle at which each element in circular array is placed."
-msgstr "Ângulo no qual cada elemento na matriz circular é colocado."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1835
-msgid "Slot Parameters"
-msgstr "Parâmetros de Ranhura"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1837
-msgid ""
-"Parameters for adding a slot (hole with oval shape)\n"
-"either single or as an part of an array."
-msgstr ""
-"Parâmetros para adicionar uma ranhura (furo com forma oval),\n"
-"tanto única quanto parte de uma matriz."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1846
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162
-#: flatcamTools/ToolProperties.py:559
-msgid "Length"
-msgstr "Comprimento"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1848
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:164
-msgid "Length = The length of the slot."
-msgstr "Comprimento = o comprimento da ranhura."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1862
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:180
-msgid ""
-"Direction on which the slot is oriented:\n"
-"- 'X' - horizontal axis \n"
-"- 'Y' - vertical axis or \n"
-"- 'Angle' - a custom angle for the slot inclination"
-msgstr ""
-"Direção na qual a ranhura é orientada:\n"
-"- 'X' - eixo horizontal\n"
-"- 'Y' - eixo vertical ou\n"
-"- 'Angle' - um ângulo personalizado para a inclinação da ranhura"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1877
-msgid ""
-"Angle at which the slot is placed.\n"
-"The precision is of max 2 decimals.\n"
-"Min value is: -360 degrees.\n"
-"Max value is: 360.00 degrees."
-msgstr ""
-"Ângulo no qual a ranhura é colocada.\n"
-"A precisão é de no máximo 2 decimais.\n"
-"Valor mínimo: -360.00 graus.\n"
-"Valor máximo: 360.00 graus."
-
-#: flatcamEditors/FlatCAMExcEditor.py:1910
-msgid "Slot Array Parameters"
-msgstr "Parâm. da matriz de ranhuras"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1912
-msgid "Parameters for the array of slots (linear or circular array)"
-msgstr "Parâmetros da matriz de ranhuras (matriz linear ou circular)"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1921
-msgid ""
-"Select the type of slot array to create.\n"
-"It can be Linear X(Y) or Circular"
-msgstr ""
-"Selecione o tipo de matriz de ranhuras para criar.\n"
-"Pode ser Linear X(Y) ou Circular"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1933
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:219
-msgid "Nr of slots"
-msgstr "Nº de ranhuras"
-
-#: flatcamEditors/FlatCAMExcEditor.py:1934
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:221
-msgid "Specify how many slots to be in the array."
-msgstr "Especifique o número de ranhuras da matriz."
-
-#: flatcamEditors/FlatCAMExcEditor.py:2452
-#: flatcamObjects/FlatCAMExcellon.py:410
-msgid "Total Drills"
-msgstr "N° Furos"
-
-#: flatcamEditors/FlatCAMExcEditor.py:2484
-#: flatcamObjects/FlatCAMExcellon.py:441
-msgid "Total Slots"
-msgstr "N° Ranhuras"
-
-#: flatcamEditors/FlatCAMExcEditor.py:2559
-#: flatcamEditors/FlatCAMGeoEditor.py:1076
-#: flatcamEditors/FlatCAMGeoEditor.py:1117
-#: flatcamEditors/FlatCAMGeoEditor.py:1145
-#: flatcamEditors/FlatCAMGeoEditor.py:1173
-#: flatcamEditors/FlatCAMGeoEditor.py:1217
-#: flatcamEditors/FlatCAMGeoEditor.py:1252
-#: flatcamEditors/FlatCAMGeoEditor.py:1280
-#: flatcamObjects/FlatCAMGeometry.py:599 flatcamObjects/FlatCAMGeometry.py:1033
-#: flatcamObjects/FlatCAMGeometry.py:1780
-#: flatcamObjects/FlatCAMGeometry.py:2424 flatcamTools/ToolNCC.py:1498
-#: flatcamTools/ToolPaint.py:1249 flatcamTools/ToolPaint.py:1420
-#: flatcamTools/ToolSolderPaste.py:883 flatcamTools/ToolSolderPaste.py:956
-msgid "Wrong value format entered, use a number."
-msgstr "Formato incorreto, use um número."
-
-#: flatcamEditors/FlatCAMExcEditor.py:2570
-msgid ""
-"Tool already in the original or actual tool list.\n"
-"Save and reedit Excellon if you need to add this tool. "
-msgstr ""
-"Ferramenta já na lista de ferramentas original ou atual.\n"
-"Salve e reedite Excellon se precisar adicionar essa ferramenta. "
-
-#: flatcamEditors/FlatCAMExcEditor.py:2579 flatcamGUI/FlatCAMGUI.py:4071
-msgid "Added new tool with dia"
-msgstr "Adicionada nova ferramenta com diâmetro"
-
-#: flatcamEditors/FlatCAMExcEditor.py:2612
-msgid "Select a tool in Tool Table"
-msgstr "Selecione uma ferramenta na Tabela de Ferramentas"
-
-#: flatcamEditors/FlatCAMExcEditor.py:2642
-msgid "Deleted tool with diameter"
-msgstr "Ferramenta excluída com diâmetro"
-
-#: flatcamEditors/FlatCAMExcEditor.py:2790
-msgid "Done. Tool edit completed."
-msgstr "Edição de ferramenta concluída."
-
-#: flatcamEditors/FlatCAMExcEditor.py:3352
-msgid "There are no Tools definitions in the file. Aborting Excellon creation."
-msgstr ""
-"Não há definições de ferramentas no arquivo. Abortando a criação do Excellon."
-
-#: flatcamEditors/FlatCAMExcEditor.py:3356
-msgid "An internal error has ocurred. See Shell.\n"
-msgstr "Ocorreu um erro interno. Veja shell (linha de comando).\n"
-
-#: flatcamEditors/FlatCAMExcEditor.py:3361
-msgid "Creating Excellon."
-msgstr "Criando Excellon."
-
-#: flatcamEditors/FlatCAMExcEditor.py:3373
-msgid "Excellon editing finished."
-msgstr "Edição de Excellon concluída."
-
-#: flatcamEditors/FlatCAMExcEditor.py:3390
-msgid "Cancelled. There is no Tool/Drill selected"
-msgstr "Cancelado. Não há ferramenta/broca selecionada"
-
-#: flatcamEditors/FlatCAMExcEditor.py:4003
-msgid "Done. Drill(s) deleted."
-msgstr "Furo(s) excluída(s)."
-
-#: flatcamEditors/FlatCAMExcEditor.py:4076
-#: flatcamEditors/FlatCAMExcEditor.py:4086
-#: flatcamEditors/FlatCAMGrbEditor.py:5063
-msgid "Click on the circular array Center position"
-msgstr "Clique na posição central da matriz circular"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:85
-msgid "Buffer distance:"
-msgstr "Distância do buffer:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:86
-msgid "Buffer corner:"
-msgstr "Canto do buffer:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:88
-msgid ""
-"There are 3 types of corners:\n"
-" - 'Round': the corner is rounded for exterior buffer.\n"
-" - 'Square': the corner is met in a sharp angle for exterior buffer.\n"
-" - 'Beveled': the corner is a line that directly connects the features "
-"meeting in the corner"
-msgstr ""
-"Existem 3 tipos de cantos:\n"
-"- 'Redondo': o canto é arredondado para buffer externo.\n"
-"- 'Quadrado:' o canto é em um ângulo agudo para buffer externo.\n"
-"- 'Chanfrado:' o canto é uma linha que conecta diretamente os recursos "
-"encontrados no canto"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:94
-#: flatcamEditors/FlatCAMGrbEditor.py:2631
-msgid "Round"
-msgstr "Redondo"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:95
-#: flatcamEditors/FlatCAMGrbEditor.py:2632 flatcamGUI/ObjectUI.py:2073
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:217
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:68
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:175
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:68
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:177
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:143
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:291
-#: flatcamTools/ToolExtractDrills.py:94 flatcamTools/ToolExtractDrills.py:227
-#: flatcamTools/ToolNCC.py:583 flatcamTools/ToolPaint.py:527
-#: flatcamTools/ToolPunchGerber.py:105 flatcamTools/ToolPunchGerber.py:255
-#: flatcamTools/ToolQRCode.py:198
-msgid "Square"
-msgstr "Quadrado"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:96
-#: flatcamEditors/FlatCAMGrbEditor.py:2633
-msgid "Beveled"
-msgstr "Chanfrado"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:103
-msgid "Buffer Interior"
-msgstr "Buffer Interior"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:105
-msgid "Buffer Exterior"
-msgstr "Buffer Exterior"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:111
-msgid "Full Buffer"
-msgstr "Buffer Completo"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:132
-#: flatcamEditors/FlatCAMGeoEditor.py:3017 flatcamGUI/FlatCAMGUI.py:1928
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:190
-msgid "Buffer Tool"
-msgstr "Ferramenta Buffer"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:144
-#: flatcamEditors/FlatCAMGeoEditor.py:161
-#: flatcamEditors/FlatCAMGeoEditor.py:178
-#: flatcamEditors/FlatCAMGeoEditor.py:3036
-#: flatcamEditors/FlatCAMGeoEditor.py:3064
-#: flatcamEditors/FlatCAMGeoEditor.py:3092
-#: flatcamEditors/FlatCAMGrbEditor.py:5116
-msgid "Buffer distance value is missing or wrong format. Add it and retry."
-msgstr ""
-"O valor da distância do buffer está ausente ou em formato incorreto. Altere "
-"e tente novamente."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:242
-msgid "Font"
-msgstr "Fonte"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:323 flatcamGUI/FlatCAMGUI.py:2208
-msgid "Text"
-msgstr "Texto"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:349
-msgid "Text Tool"
-msgstr "Ferramenta de Texto"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:405 flatcamGUI/FlatCAMGUI.py:511
-#: flatcamGUI/FlatCAMGUI.py:1158 flatcamGUI/ObjectUI.py:818
-#: flatcamGUI/ObjectUI.py:1662 flatcamObjects/FlatCAMExcellon.py:742
-#: flatcamObjects/FlatCAMExcellon.py:1084 flatcamObjects/FlatCAMGeometry.py:759
-#: flatcamTools/ToolNCC.py:331 flatcamTools/ToolNCC.py:797
-#: flatcamTools/ToolPaint.py:314 flatcamTools/ToolPaint.py:767
-msgid "Tool"
-msgstr "Ferramenta"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:439 flatcamGUI/ObjectUI.py:364
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:43
-msgid "Tool dia"
-msgstr "Diâmetro da Ferramenta"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:441
-msgid "Diameter of the tool to be used in the operation."
-msgstr "Diâmetro da ferramenta para usar na operação."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:487
-msgid ""
-"Algorithm to paint the polygons:\n"
-"- Standard: Fixed step inwards.\n"
-"- Seed-based: Outwards from seed.\n"
-"- Line-based: Parallel lines."
-msgstr ""
-"Algoritmo para pintura:\n"
-"- Padrão: Passo fixo para dentro.\n"
-"- Baseado em semeste: Para fora a partir de uma semente.\n"
-"- Linhas retas: Linhas paralelas."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:506
-msgid "Connect:"
-msgstr "Conectar:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:516
-msgid "Contour:"
-msgstr "Contorno:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:529 flatcamGUI/FlatCAMGUI.py:2212
-msgid "Paint"
-msgstr "Pintura"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:547 flatcamGUI/FlatCAMGUI.py:924
-#: flatcamGUI/FlatCAMGUI.py:2628 flatcamGUI/ObjectUI.py:2139
-#: flatcamTools/ToolPaint.py:43 flatcamTools/ToolPaint.py:738
-msgid "Paint Tool"
-msgstr "Ferramenta de Pintura"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:583
-#: flatcamEditors/FlatCAMGeoEditor.py:1055
-#: flatcamEditors/FlatCAMGeoEditor.py:3024
-#: flatcamEditors/FlatCAMGeoEditor.py:3052
-#: flatcamEditors/FlatCAMGeoEditor.py:3080
-#: flatcamEditors/FlatCAMGeoEditor.py:4502
-#: flatcamEditors/FlatCAMGrbEditor.py:5767
-msgid "Cancelled. No shape selected."
-msgstr "Cancelado. Nenhuma forma selecionada."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:596
-#: flatcamEditors/FlatCAMGeoEditor.py:3042
-#: flatcamEditors/FlatCAMGeoEditor.py:3070
-#: flatcamEditors/FlatCAMGeoEditor.py:3098
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:59
-#: flatcamTools/ToolProperties.py:117 flatcamTools/ToolProperties.py:162
-msgid "Tools"
-msgstr "Ferramentas"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:607
-#: flatcamEditors/FlatCAMGeoEditor.py:991
-#: flatcamEditors/FlatCAMGrbEditor.py:5306
-#: flatcamEditors/FlatCAMGrbEditor.py:5703 flatcamGUI/FlatCAMGUI.py:945
-#: flatcamGUI/FlatCAMGUI.py:2649 flatcamTools/ToolTransform.py:460
-msgid "Transform Tool"
-msgstr "Ferramenta Transformar"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:608
-#: flatcamEditors/FlatCAMGeoEditor.py:673
-#: flatcamEditors/FlatCAMGrbEditor.py:5307
-#: flatcamEditors/FlatCAMGrbEditor.py:5372
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:45
-#: flatcamTools/ToolTransform.py:24 flatcamTools/ToolTransform.py:466
-msgid "Rotate"
-msgstr "Girar"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:609
-#: flatcamEditors/FlatCAMGrbEditor.py:5308 flatcamTools/ToolTransform.py:25
-msgid "Skew/Shear"
-msgstr "Inclinar"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:610
-#: flatcamEditors/FlatCAMGrbEditor.py:2680
-#: flatcamEditors/FlatCAMGrbEditor.py:5309 flatcamGUI/FlatCAMGUI.py:1063
-#: flatcamGUI/FlatCAMGUI.py:2140 flatcamGUI/FlatCAMGUI.py:2255
-#: flatcamGUI/FlatCAMGUI.py:2767 flatcamGUI/ObjectUI.py:125
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:95
-#: flatcamTools/ToolTransform.py:26
-msgid "Scale"
-msgstr "Redimensionar"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:611
-#: flatcamEditors/FlatCAMGrbEditor.py:5310 flatcamTools/ToolTransform.py:27
-msgid "Mirror (Flip)"
-msgstr "Espelhar (Flip)"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:625
-#: flatcamEditors/FlatCAMGrbEditor.py:5324 flatcamGUI/FlatCAMGUI.py:856
-#: flatcamGUI/FlatCAMGUI.py:2564
-msgid "Editor"
-msgstr "Editor"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:657
-#: flatcamEditors/FlatCAMGrbEditor.py:5356
-msgid "Angle:"
-msgstr "Ângulo:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:659
-#: flatcamEditors/FlatCAMGrbEditor.py:5358
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:55
-#: flatcamTools/ToolTransform.py:62
-msgid ""
-"Angle for Rotation action, in degrees.\n"
-"Float number between -360 and 359.\n"
-"Positive numbers for CW motion.\n"
-"Negative numbers for CCW motion."
-msgstr ""
-"Ângulo para a ação Rotação, em graus. \n"
-"Número flutuante entre -360 e 359. \n"
-"Números positivos para movimento horário. \n"
-"Números negativos para movimento anti-horário."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:675
-#: flatcamEditors/FlatCAMGrbEditor.py:5374
-msgid ""
-"Rotate the selected shape(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected shapes."
-msgstr ""
-"Gira a(s) forma(s) selecionada(s). \n"
-"O ponto de referência é o meio da caixa\n"
-"delimitadora para todas as formas selecionadas."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:698
-#: flatcamEditors/FlatCAMGrbEditor.py:5397
-msgid "Angle X:"
-msgstr "Ângulo X:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:700
-#: flatcamEditors/FlatCAMGeoEditor.py:720
-#: flatcamEditors/FlatCAMGrbEditor.py:5399
-#: flatcamEditors/FlatCAMGrbEditor.py:5419
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:74
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:88
-#: flatcamTools/ToolCalibration.py:505 flatcamTools/ToolCalibration.py:518
-msgid ""
-"Angle for Skew action, in degrees.\n"
-"Float number between -360 and 359."
-msgstr ""
-"Ângulo de inclinação, em graus.\n"
-"Número flutuante entre -360 e 359."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:711
-#: flatcamEditors/FlatCAMGrbEditor.py:5410 flatcamTools/ToolTransform.py:467
-msgid "Skew X"
-msgstr "Inclinar X"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:713
-#: flatcamEditors/FlatCAMGeoEditor.py:733
-#: flatcamEditors/FlatCAMGrbEditor.py:5412
-#: flatcamEditors/FlatCAMGrbEditor.py:5432
-msgid ""
-"Skew/shear the selected shape(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected shapes."
-msgstr ""
-"Inclinar/distorcer a(s) forma(s) selecionada(s).\n"
-"O ponto de referência é o meio da caixa\n"
-"delimitadora para todas as formas selecionadas."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:718
-#: flatcamEditors/FlatCAMGrbEditor.py:5417
-msgid "Angle Y:"
-msgstr "Ângulo Y:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:731
-#: flatcamEditors/FlatCAMGrbEditor.py:5430 flatcamTools/ToolTransform.py:468
-msgid "Skew Y"
-msgstr "Inclinar Y"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:759
-#: flatcamEditors/FlatCAMGrbEditor.py:5458
-msgid "Factor X:"
-msgstr "Fator X:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:761
-#: flatcamEditors/FlatCAMGrbEditor.py:5460 flatcamTools/ToolCalibration.py:469
-msgid "Factor for Scale action over X axis."
-msgstr "Fator de escala sobre o eixo X."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:771
-#: flatcamEditors/FlatCAMGrbEditor.py:5470 flatcamTools/ToolTransform.py:469
-msgid "Scale X"
-msgstr "Redimensionar X"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:773
-#: flatcamEditors/FlatCAMGeoEditor.py:792
-#: flatcamEditors/FlatCAMGrbEditor.py:5472
-#: flatcamEditors/FlatCAMGrbEditor.py:5491
-msgid ""
-"Scale the selected shape(s).\n"
-"The point of reference depends on \n"
-"the Scale reference checkbox state."
-msgstr ""
-"Redimensiona a(s) forma(s) selecionada(s).\n"
-"O ponto de referência depende\n"
-"do estado da caixa de seleção."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:778
-#: flatcamEditors/FlatCAMGrbEditor.py:5477
-msgid "Factor Y:"
-msgstr "Fator Y:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:780
-#: flatcamEditors/FlatCAMGrbEditor.py:5479 flatcamTools/ToolCalibration.py:481
-msgid "Factor for Scale action over Y axis."
-msgstr "Fator para ação de escala no eixo Y."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:790
-#: flatcamEditors/FlatCAMGrbEditor.py:5489 flatcamTools/ToolTransform.py:470
-msgid "Scale Y"
-msgstr "Redimensionar Y"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:799
-#: flatcamEditors/FlatCAMGrbEditor.py:5498
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:124
-#: flatcamTools/ToolTransform.py:189
-msgid "Link"
-msgstr "Fixar Taxa"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:801
-#: flatcamEditors/FlatCAMGrbEditor.py:5500
-msgid ""
-"Scale the selected shape(s)\n"
-"using the Scale Factor X for both axis."
-msgstr ""
-"Redimensiona a(s) forma(s) selecionada(s)\n"
-"usando o Fator de Escala X para ambos os eixos."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:807
-#: flatcamEditors/FlatCAMGrbEditor.py:5506
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:132
-#: flatcamTools/ToolTransform.py:196
-msgid "Scale Reference"
-msgstr "Referência de escala"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:809
-#: flatcamEditors/FlatCAMGrbEditor.py:5508
-msgid ""
-"Scale the selected shape(s)\n"
-"using the origin reference when checked,\n"
-"and the center of the biggest bounding box\n"
-"of the selected shapes when unchecked."
-msgstr ""
-"Redimensiona a(s) forma(s) selecionada(s)\n"
-"usando a referência de origem quando marcada,\n"
-"e o centro da maior caixa delimitadora\n"
-"de formas selecionadas quando desmarcado."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:837
-#: flatcamEditors/FlatCAMGrbEditor.py:5537
-msgid "Value X:"
-msgstr "Valor X:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:839
-#: flatcamEditors/FlatCAMGrbEditor.py:5539
-msgid "Value for Offset action on X axis."
-msgstr "Valor para o deslocamento no eixo X."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:849
-#: flatcamEditors/FlatCAMGrbEditor.py:5549 flatcamTools/ToolTransform.py:473
-msgid "Offset X"
-msgstr "Deslocar X"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:851
-#: flatcamEditors/FlatCAMGeoEditor.py:871
-#: flatcamEditors/FlatCAMGrbEditor.py:5551
-#: flatcamEditors/FlatCAMGrbEditor.py:5571
-msgid ""
-"Offset the selected shape(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected shapes.\n"
-msgstr ""
-"Desloca a(s) forma(s) selecionada(s).\n"
-"O ponto de referência é o meio da\n"
-"caixa delimitadora para todas as formas selecionadas.\n"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:857
-#: flatcamEditors/FlatCAMGrbEditor.py:5557
-msgid "Value Y:"
-msgstr "Valor Y:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:859
-#: flatcamEditors/FlatCAMGrbEditor.py:5559
-msgid "Value for Offset action on Y axis."
-msgstr "Valor para a ação de deslocamento no eixo Y."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:869
-#: flatcamEditors/FlatCAMGrbEditor.py:5569 flatcamTools/ToolTransform.py:474
-msgid "Offset Y"
-msgstr "Deslocar Y"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:900
-#: flatcamEditors/FlatCAMGrbEditor.py:5600 flatcamTools/ToolTransform.py:475
-msgid "Flip on X"
-msgstr "Espelhar no X"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:902
-#: flatcamEditors/FlatCAMGeoEditor.py:909
-#: flatcamEditors/FlatCAMGrbEditor.py:5602
-#: flatcamEditors/FlatCAMGrbEditor.py:5609
-msgid ""
-"Flip the selected shape(s) over the X axis.\n"
-"Does not create a new shape."
-msgstr ""
-"Espelha as formas selecionadas sobre o eixo X.\n"
-"Não cria uma nova forma."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:907
-#: flatcamEditors/FlatCAMGrbEditor.py:5607 flatcamTools/ToolTransform.py:476
-msgid "Flip on Y"
-msgstr "Espelhar no Y"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:915
-#: flatcamEditors/FlatCAMGrbEditor.py:5615
-msgid "Ref Pt"
-msgstr "Ponto de Referência"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:917
-#: flatcamEditors/FlatCAMGrbEditor.py:5617
-msgid ""
-"Flip the selected shape(s)\n"
-"around the point in Point Entry Field.\n"
-"\n"
-"The point coordinates can be captured by\n"
-"left click on canvas together with pressing\n"
-"SHIFT key. \n"
-"Then click Add button to insert coordinates.\n"
-"Or enter the coords in format (x, y) in the\n"
-"Point Entry field and click Flip on X(Y)"
-msgstr ""
-"Espelha a(s) forma(s) selecionada(s)\n"
-"em relação às coordenadas abaixo.\n"
-"\n"
-"As coordenadas do ponto podem ser inseridas:\n"
-"- com clique no botão esquerdo junto com a tecla\n"
-" SHIFT pressionada, e clicar no botão Adicionar.\n"
-"- ou digitar as coordenadas no formato (x, y) no campo\n"
-" Ponto de Ref. e clicar em Espelhar no X(Y)"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:929
-#: flatcamEditors/FlatCAMGrbEditor.py:5629
-msgid "Point:"
-msgstr "Ponto:"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:931
-#: flatcamEditors/FlatCAMGrbEditor.py:5631 flatcamTools/ToolTransform.py:299
-msgid ""
-"Coordinates in format (x, y) used as reference for mirroring.\n"
-"The 'x' in (x, y) will be used when using Flip on X and\n"
-"the 'y' in (x, y) will be used when using Flip on Y."
-msgstr ""
-"Coordenadas no formato (x, y) usadas como referência para espelhamento. \n"
-"O 'x' em (x, y) será usado ao usar Espelhar em X e\n"
-"o 'y' em (x, y) será usado ao usar Espelhar em Y."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:941
-#: flatcamEditors/FlatCAMGrbEditor.py:5643 flatcamTools/ToolTransform.py:309
-msgid ""
-"The point coordinates can be captured by\n"
-"left click on canvas together with pressing\n"
-"SHIFT key. Then click Add button to insert."
-msgstr ""
-"As coordenadas do ponto podem ser capturadas por\n"
-"botão esquerdo na tela junto com a tecla\n"
-"SHIFT pressionada. Em seguida, clique no botão Adicionar para inserir."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1304
-#: flatcamEditors/FlatCAMGrbEditor.py:5951
-msgid "No shape selected. Please Select a shape to rotate!"
-msgstr "Nenhuma forma selecionada. Por favor, selecione uma forma para girar!"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1307
-#: flatcamEditors/FlatCAMGrbEditor.py:5954 flatcamTools/ToolTransform.py:679
-msgid "Appying Rotate"
-msgstr "Aplicando Girar"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1333
-#: flatcamEditors/FlatCAMGrbEditor.py:5986
-msgid "Done. Rotate completed."
-msgstr "Girar concluído."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1335
-msgid "Rotation action was not executed"
-msgstr "O giro não foi executado"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1354
-#: flatcamEditors/FlatCAMGrbEditor.py:6005
-msgid "No shape selected. Please Select a shape to flip!"
-msgstr ""
-"Nenhuma forma selecionada. Por favor, selecione uma forma para espelhar!"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1357
-#: flatcamEditors/FlatCAMGrbEditor.py:6008 flatcamTools/ToolTransform.py:728
-msgid "Applying Flip"
-msgstr "Aplicando Espelhamento"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1386
-#: flatcamEditors/FlatCAMGrbEditor.py:6046 flatcamTools/ToolTransform.py:769
-msgid "Flip on the Y axis done"
-msgstr "Concluído o espelhamento no eixo Y"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1390
-#: flatcamEditors/FlatCAMGrbEditor.py:6055 flatcamTools/ToolTransform.py:778
-msgid "Flip on the X axis done"
-msgstr "Concluído o espelhamento no eixo Y"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1398
-msgid "Flip action was not executed"
-msgstr "O espelhamento não foi executado"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1416
-#: flatcamEditors/FlatCAMGrbEditor.py:6075
-msgid "No shape selected. Please Select a shape to shear/skew!"
-msgstr ""
-"Nenhuma forma selecionada. Por favor, selecione uma forma para inclinar!"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1419
-#: flatcamEditors/FlatCAMGrbEditor.py:6078 flatcamTools/ToolTransform.py:801
-msgid "Applying Skew"
-msgstr "Inclinando"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1442
-#: flatcamEditors/FlatCAMGrbEditor.py:6112
-msgid "Skew on the X axis done"
-msgstr "Inclinação no eixo X concluída"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1444
-#: flatcamEditors/FlatCAMGrbEditor.py:6114
-msgid "Skew on the Y axis done"
-msgstr "Inclinação no eixo Y concluída"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1447
-msgid "Skew action was not executed"
-msgstr "A inclinação não foi executada"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1469
-#: flatcamEditors/FlatCAMGrbEditor.py:6136
-msgid "No shape selected. Please Select a shape to scale!"
-msgstr ""
-"Nenhuma forma selecionada. Por favor, selecione uma forma para redimensionar!"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1472
-#: flatcamEditors/FlatCAMGrbEditor.py:6139 flatcamTools/ToolTransform.py:847
-msgid "Applying Scale"
-msgstr "Redimensionando"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1504
-#: flatcamEditors/FlatCAMGrbEditor.py:6176
-msgid "Scale on the X axis done"
-msgstr "Redimensionamento no eixo X concluído"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1506
-#: flatcamEditors/FlatCAMGrbEditor.py:6178
-msgid "Scale on the Y axis done"
-msgstr "Redimensionamento no eixo Y concluído"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1508
-msgid "Scale action was not executed"
-msgstr "O redimensionamento não foi executado"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1523
-#: flatcamEditors/FlatCAMGrbEditor.py:6195
-msgid "No shape selected. Please Select a shape to offset!"
-msgstr ""
-"Nenhuma forma selecionada. Por favor, selecione uma forma para deslocar!"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1526
-#: flatcamEditors/FlatCAMGrbEditor.py:6198 flatcamTools/ToolTransform.py:897
-msgid "Applying Offset"
-msgstr "Deslocando"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1536
-#: flatcamEditors/FlatCAMGrbEditor.py:6219
-msgid "Offset on the X axis done"
-msgstr "Deslocamento no eixo X concluído"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1538
-#: flatcamEditors/FlatCAMGrbEditor.py:6221
-msgid "Offset on the Y axis done"
-msgstr "Deslocamento no eixo Y concluído"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1541
-msgid "Offset action was not executed"
-msgstr "O deslocamento não foi executado"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1545
-#: flatcamEditors/FlatCAMGrbEditor.py:6228
-msgid "Rotate ..."
-msgstr "Girar ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1546
-#: flatcamEditors/FlatCAMGeoEditor.py:1601
-#: flatcamEditors/FlatCAMGeoEditor.py:1618
-#: flatcamEditors/FlatCAMGrbEditor.py:6229
-#: flatcamEditors/FlatCAMGrbEditor.py:6278
-#: flatcamEditors/FlatCAMGrbEditor.py:6293
-msgid "Enter an Angle Value (degrees)"
-msgstr "Digite um valor para o ângulo (graus)"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1555
-#: flatcamEditors/FlatCAMGrbEditor.py:6237
-msgid "Geometry shape rotate done"
-msgstr "Rotação da geometria concluída"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1559
-#: flatcamEditors/FlatCAMGrbEditor.py:6240
-msgid "Geometry shape rotate cancelled"
-msgstr "Rotação da geometria cancelada"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1564
-#: flatcamEditors/FlatCAMGrbEditor.py:6245
-msgid "Offset on X axis ..."
-msgstr "Deslocamento no eixo X ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1565
-#: flatcamEditors/FlatCAMGeoEditor.py:1584
-#: flatcamEditors/FlatCAMGrbEditor.py:6246
-#: flatcamEditors/FlatCAMGrbEditor.py:6263
-msgid "Enter a distance Value"
-msgstr "Digite um valor para a distância"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1574
-#: flatcamEditors/FlatCAMGrbEditor.py:6254
-msgid "Geometry shape offset on X axis done"
-msgstr "Deslocamento da forma no eixo X concluído"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1578
-#: flatcamEditors/FlatCAMGrbEditor.py:6257
-msgid "Geometry shape offset X cancelled"
-msgstr "Deslocamento da forma no eixo X cancelado"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1583
-#: flatcamEditors/FlatCAMGrbEditor.py:6262
-msgid "Offset on Y axis ..."
-msgstr "Deslocamento no eixo Y ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1593
-#: flatcamEditors/FlatCAMGrbEditor.py:6271
-msgid "Geometry shape offset on Y axis done"
-msgstr "Deslocamento da forma no eixo Y concluído"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1597
-msgid "Geometry shape offset on Y axis canceled"
-msgstr "Deslocamento da forma no eixo Y cancelado"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1600
-#: flatcamEditors/FlatCAMGrbEditor.py:6277
-msgid "Skew on X axis ..."
-msgstr "Inclinação no eixo X ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1610
-#: flatcamEditors/FlatCAMGrbEditor.py:6286
-msgid "Geometry shape skew on X axis done"
-msgstr "Inclinação no eixo X concluída"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1614
-msgid "Geometry shape skew on X axis canceled"
-msgstr "Inclinação no eixo X cancelada"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1617
-#: flatcamEditors/FlatCAMGrbEditor.py:6292
-msgid "Skew on Y axis ..."
-msgstr "Inclinação no eixo Y ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1627
-#: flatcamEditors/FlatCAMGrbEditor.py:6301
-msgid "Geometry shape skew on Y axis done"
-msgstr "Inclinação no eixo Y concluída"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:1631
-msgid "Geometry shape skew on Y axis canceled"
-msgstr "Inclinação no eixo Y cancelada"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2008
-#: flatcamEditors/FlatCAMGeoEditor.py:2079
-#: flatcamEditors/FlatCAMGrbEditor.py:1437
-#: flatcamEditors/FlatCAMGrbEditor.py:1515
-msgid "Click on Center point ..."
-msgstr "Clique no ponto central ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2021
-#: flatcamEditors/FlatCAMGrbEditor.py:1447
-msgid "Click on Perimeter point to complete ..."
-msgstr "Clique no ponto Perímetro para completar ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2053
-msgid "Done. Adding Circle completed."
-msgstr "Círculo adicionado."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2107
-#: flatcamEditors/FlatCAMGrbEditor.py:1548
-msgid "Click on Start point ..."
-msgstr "Clique no ponto inicial ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2109
-#: flatcamEditors/FlatCAMGrbEditor.py:1550
-msgid "Click on Point3 ..."
-msgstr "Clique no ponto 3 ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2111
-#: flatcamEditors/FlatCAMGrbEditor.py:1552
-msgid "Click on Stop point ..."
-msgstr "Clique no ponto de parada ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2116
-#: flatcamEditors/FlatCAMGrbEditor.py:1557
-msgid "Click on Stop point to complete ..."
-msgstr "Clique no ponto de parada para completar ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2118
-#: flatcamEditors/FlatCAMGrbEditor.py:1559
-msgid "Click on Point2 to complete ..."
-msgstr "Clique no ponto 2 para completar ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2120
-#: flatcamEditors/FlatCAMGrbEditor.py:1561
-msgid "Click on Center point to complete ..."
-msgstr "Clique no ponto central para completar ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2132
-#, python-format
-msgid "Direction: %s"
-msgstr "Direção: %s"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2146
-#: flatcamEditors/FlatCAMGrbEditor.py:1587
-msgid "Mode: Start -> Stop -> Center. Click on Start point ..."
-msgstr "Modo: Iniciar -> Parar -> Centro. Clique no ponto inicial ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2149
-#: flatcamEditors/FlatCAMGrbEditor.py:1590
-msgid "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..."
-msgstr "Modo: Ponto 1 -> Ponto 3 -> Ponto 2. Clique no Ponto 1 ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2152
-#: flatcamEditors/FlatCAMGrbEditor.py:1593
-msgid "Mode: Center -> Start -> Stop. Click on Center point ..."
-msgstr "Modo: Centro -> Iniciar -> Parar. Clique no ponto central ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2293
-msgid "Done. Arc completed."
-msgstr "Arco adicionado."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2324
-#: flatcamEditors/FlatCAMGeoEditor.py:2397
-msgid "Click on 1st corner ..."
-msgstr "Clique no primeiro canto ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2336
-msgid "Click on opposite corner to complete ..."
-msgstr "Clique no canto oposto para completar ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2366
-msgid "Done. Rectangle completed."
-msgstr "Retângulo adicionado."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2410
-#: flatcamObjects/FlatCAMGeometry.py:2648 flatcamTools/ToolNCC.py:1733
-#: flatcamTools/ToolPaint.py:1628
-msgid "Click on next Point or click right mouse button to complete ..."
-msgstr ""
-"Clique no próximo ponto ou clique com o botão direito do mouse para "
-"completar ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2441
-msgid "Done. Polygon completed."
-msgstr "Polígono adicionado."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2455
-#: flatcamEditors/FlatCAMGeoEditor.py:2520
-#: flatcamEditors/FlatCAMGrbEditor.py:1113
-#: flatcamEditors/FlatCAMGrbEditor.py:1324
-msgid "Backtracked one point ..."
-msgstr "Retrocedeu um ponto ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2498
-msgid "Done. Path completed."
-msgstr "Caminho concluído."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2657
-msgid "No shape selected. Select a shape to explode"
-msgstr "Nenhuma forma selecionada. Selecione uma forma para explodir"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2690
-msgid "Done. Polygons exploded into lines."
-msgstr "Polígono explodido em linhas."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2722
-msgid "MOVE: No shape selected. Select a shape to move"
-msgstr "MOVER: Nenhuma forma selecionada. Selecione uma forma para mover"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2725
-#: flatcamEditors/FlatCAMGeoEditor.py:2745
-msgid " MOVE: Click on reference point ..."
-msgstr " MOVER: Clique no ponto de referência ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2730
-msgid " Click on destination point ..."
-msgstr " Clique no ponto de destino ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2770
-msgid "Done. Geometry(s) Move completed."
-msgstr "Movimento de Geometria(s) concluído."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2903
-msgid "Done. Geometry(s) Copy completed."
-msgstr "Geometria(s) copiada(s)."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2934
-#: flatcamEditors/FlatCAMGrbEditor.py:899
-msgid "Click on 1st point ..."
-msgstr "Clique no primeiro ponto ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2958
-msgid ""
-"Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. "
-"Error"
-msgstr ""
-"Fonte não suportada. Apenas Regular, Bold, Italic e BoldItalic são "
-"suportados. Erro"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2966
-msgid "No text to add."
-msgstr "Nenhum texto para adicionar."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:2976
-msgid " Done. Adding Text completed."
-msgstr " Texto adicionado."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3013
-msgid "Create buffer geometry ..."
-msgstr "Criar buffer de geometria ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3048
-#: flatcamEditors/FlatCAMGrbEditor.py:5160
-msgid "Done. Buffer Tool completed."
-msgstr "Buffer concluído."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3076
-msgid "Done. Buffer Int Tool completed."
-msgstr "Buffer Interno concluído."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3104
-msgid "Done. Buffer Ext Tool completed."
-msgstr "Buffer Externo concluído."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3153
-#: flatcamEditors/FlatCAMGrbEditor.py:2153
-msgid "Select a shape to act as deletion area ..."
-msgstr "Selecione uma forma para atuar como área de exclusão ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3155
-#: flatcamEditors/FlatCAMGeoEditor.py:3181
-#: flatcamEditors/FlatCAMGeoEditor.py:3187
-#: flatcamEditors/FlatCAMGrbEditor.py:2155
-msgid "Click to pick-up the erase shape..."
-msgstr "Clique para pegar a forma a apagar ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3191
-#: flatcamEditors/FlatCAMGrbEditor.py:2214
-msgid "Click to erase ..."
-msgstr "Clique para apagar ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3220
-#: flatcamEditors/FlatCAMGrbEditor.py:2247
-msgid "Done. Eraser tool action completed."
-msgstr "Apagado."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3270
-msgid "Create Paint geometry ..."
-msgstr "Criar geometria de pintura ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3283
-#: flatcamEditors/FlatCAMGrbEditor.py:2410
-msgid "Shape transformations ..."
-msgstr "Transformações de forma ..."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3339
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:27
-msgid "Geometry Editor"
-msgstr "Editor de Geometria"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3345
-#: flatcamEditors/FlatCAMGrbEditor.py:2488
-#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263
-#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326
-#: flatcamTools/ToolCutOut.py:95
-msgid "Type"
-msgstr "Tipo"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3345 flatcamGUI/ObjectUI.py:218
-#: flatcamGUI/ObjectUI.py:742 flatcamGUI/ObjectUI.py:1433
-#: flatcamGUI/ObjectUI.py:2235 flatcamGUI/ObjectUI.py:2539
-#: flatcamGUI/ObjectUI.py:2606 flatcamTools/ToolCalibration.py:234
-#: flatcamTools/ToolFiducials.py:73
-msgid "Name"
-msgstr "Nome"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3587
-msgid "Ring"
-msgstr "Anel"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3589
-msgid "Line"
-msgstr "Linha"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3591 flatcamGUI/FlatCAMGUI.py:2202
-#: flatcamGUI/ObjectUI.py:2074
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:218
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:328
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:292
-#: flatcamTools/ToolNCC.py:584 flatcamTools/ToolPaint.py:528
-msgid "Polygon"
-msgstr "Polígono"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3593
-msgid "Multi-Line"
-msgstr "Múlti-Linha"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3595
-msgid "Multi-Polygon"
-msgstr "Múlti-Polígono"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:3602
-msgid "Geo Elem"
-msgstr "Elem Geo"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4076
-msgid "Editing MultiGeo Geometry, tool"
-msgstr "Editando Geometria MultiGeo, ferramenta"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4078
-msgid "with diameter"
-msgstr "com diâmetro"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4509 flatcamGUI/FlatCAMGUI.py:3753
-#: flatcamGUI/FlatCAMGUI.py:3799 flatcamGUI/FlatCAMGUI.py:3817
-#: flatcamGUI/FlatCAMGUI.py:3961 flatcamGUI/FlatCAMGUI.py:4000
-#: flatcamGUI/FlatCAMGUI.py:4012 flatcamGUI/FlatCAMGUI.py:4029
-msgid "Click on target point."
-msgstr "Clique no ponto alvo."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4823
-#: flatcamEditors/FlatCAMGeoEditor.py:4858
-msgid "A selection of at least 2 geo items is required to do Intersection."
-msgstr ""
-"É necessária uma seleção de pelo menos 2 itens geométricos para fazer a "
-"interseção."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4944
-#: flatcamEditors/FlatCAMGeoEditor.py:5048
-msgid ""
-"Negative buffer value is not accepted. Use Buffer interior to generate an "
-"'inside' shape"
-msgstr ""
-"Valor de buffer negativo não é aceito. Use o Buffer interior para gerar uma "
-"forma 'interna'"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4954
-#: flatcamEditors/FlatCAMGeoEditor.py:5007
-#: flatcamEditors/FlatCAMGeoEditor.py:5057
-msgid "Nothing selected for buffering."
-msgstr "Nada selecionado para armazenamento em buffer."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4959
-#: flatcamEditors/FlatCAMGeoEditor.py:5011
-#: flatcamEditors/FlatCAMGeoEditor.py:5062
-msgid "Invalid distance for buffering."
-msgstr "Distância inválida para armazenamento em buffer."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4983
-#: flatcamEditors/FlatCAMGeoEditor.py:5082
-msgid "Failed, the result is empty. Choose a different buffer value."
-msgstr ""
-"Falhou, o resultado está vazio. Escolha um valor diferente para o buffer."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:4994
-msgid "Full buffer geometry created."
-msgstr "Buffer de geometria completa criado."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5000
-msgid "Negative buffer value is not accepted."
-msgstr "Valor de buffer negativo não é aceito."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5031
-msgid "Failed, the result is empty. Choose a smaller buffer value."
-msgstr "Falhou, o resultado está vazio. Escolha um valor menor para o buffer."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5041
-msgid "Interior buffer geometry created."
-msgstr "Buffer de Geometria interna criado."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5092
-msgid "Exterior buffer geometry created."
-msgstr "Buffer de Geometria externa criado."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5098
-#, python-format
-msgid "Could not do Paint. Overlap value has to be less than 100%%."
-msgstr ""
-"Não foi possível Pintar. O valor de sobreposição deve ser menor do que 100%%."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5105
-msgid "Nothing selected for painting."
-msgstr "Nada selecionado para pintura."
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5111
-msgid "Invalid value for"
-msgstr "Valor inválido para"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5170
-msgid ""
-"Could not do Paint. Try a different combination of parameters. Or a "
-"different method of Paint"
-msgstr ""
-"Não foi possível pintar. Tente uma combinação diferente de parâmetros, ou um "
-"método diferente de Pintura"
-
-#: flatcamEditors/FlatCAMGeoEditor.py:5181
-msgid "Paint done."
-msgstr "Pintura concluída."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:213
-msgid "To add an Pad first select a aperture in Aperture Table"
-msgstr ""
-"Para adicionar um Pad, primeiro selecione uma abertura na Tabela de Aberturas"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:220
-#: flatcamEditors/FlatCAMGrbEditor.py:420
-msgid "Aperture size is zero. It needs to be greater than zero."
-msgstr "O tamanho da abertura é zero. Precisa ser maior que zero."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:373
-#: flatcamEditors/FlatCAMGrbEditor.py:686
-msgid ""
-"Incompatible aperture type. Select an aperture with type 'C', 'R' or 'O'."
-msgstr ""
-"Tipo de abertura incompatível. Selecione uma abertura do tipo 'C', 'R' ou "
-"'O'."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:385
-msgid "Done. Adding Pad completed."
-msgstr "Pad adicionado."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:412
-msgid "To add an Pad Array first select a aperture in Aperture Table"
-msgstr ""
-"Para adicionar uma Matriz de Pads, primeiro selecione uma abertura na Tabela "
-"de Aberturas"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:492
-msgid "Click on the Pad Circular Array Start position"
-msgstr "Clique na posição inicial da Matriz Circular de Pads"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:712
-msgid "Too many Pads for the selected spacing angle."
-msgstr "Muitos Pads para o ângulo de espaçamento selecionado."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:735
-msgid "Done. Pad Array added."
-msgstr "Matriz de pads adicionada."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:760
-msgid "Select shape(s) and then click ..."
-msgstr "Selecione a(s) forma(s) e então clique ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:772
-msgid "Failed. Nothing selected."
-msgstr "Falhou. Nada selecionado."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:788
-msgid ""
-"Failed. Poligonize works only on geometries belonging to the same aperture."
-msgstr ""
-"Falhou. Poligonize funciona apenas em geometrias pertencentes à mesma "
-"abertura."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:842
-msgid "Done. Poligonize completed."
-msgstr "Poligonizar concluído."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:897
-#: flatcamEditors/FlatCAMGrbEditor.py:1130
-#: flatcamEditors/FlatCAMGrbEditor.py:1154
-msgid "Corner Mode 1: 45 degrees ..."
-msgstr "Canto Modo 1: 45 graus ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:909
-#: flatcamEditors/FlatCAMGrbEditor.py:1239
-msgid "Click on next Point or click Right mouse button to complete ..."
-msgstr ""
-"Clique no próximo ponto ou clique com o botão direito do mouse para "
-"completar ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1118
-#: flatcamEditors/FlatCAMGrbEditor.py:1151
-msgid "Corner Mode 2: Reverse 45 degrees ..."
-msgstr "Canto Modo 2: 45 graus invertido ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1121
-#: flatcamEditors/FlatCAMGrbEditor.py:1148
-msgid "Corner Mode 3: 90 degrees ..."
-msgstr "Canto Modo 3: 90 graus ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1124
-#: flatcamEditors/FlatCAMGrbEditor.py:1145
-msgid "Corner Mode 4: Reverse 90 degrees ..."
-msgstr "Canto Modo 4: 90 graus invertido ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1127
-#: flatcamEditors/FlatCAMGrbEditor.py:1142
-msgid "Corner Mode 5: Free angle ..."
-msgstr "Canto Modo 5: Ângulo livre ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1184
-#: flatcamEditors/FlatCAMGrbEditor.py:1360
-#: flatcamEditors/FlatCAMGrbEditor.py:1399
-msgid "Track Mode 1: 45 degrees ..."
-msgstr "Trilha Modo 1: 45 graus ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1340
-#: flatcamEditors/FlatCAMGrbEditor.py:1394
-msgid "Track Mode 2: Reverse 45 degrees ..."
-msgstr "Trilha Modo 2: 45 graus invertido ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1345
-#: flatcamEditors/FlatCAMGrbEditor.py:1389
-msgid "Track Mode 3: 90 degrees ..."
-msgstr "Trilha Modo 3: 90 graus ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1350
-#: flatcamEditors/FlatCAMGrbEditor.py:1384
-msgid "Track Mode 4: Reverse 90 degrees ..."
-msgstr "Trilha Modo 4: 90 graus invertido ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1355
-#: flatcamEditors/FlatCAMGrbEditor.py:1379
-msgid "Track Mode 5: Free angle ..."
-msgstr "Trilha Modo 5: Ângulo livre ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1780
-msgid "Scale the selected Gerber apertures ..."
-msgstr "Redimensiona as aberturas de Gerber selecionadas ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1822
-msgid "Buffer the selected apertures ..."
-msgstr "Buffer das aberturas selecionadas ..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1864
-msgid "Mark polygon areas in the edited Gerber ..."
-msgstr "Marca áreas de polígonos no Gerber editado..."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:1930
-msgid "Nothing selected to move"
-msgstr "Nada selecionado para mover"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2055
-msgid "Done. Apertures Move completed."
-msgstr "Aberturas movidas."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2137
-msgid "Done. Apertures copied."
-msgstr "Aberturas copiadas."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2455 flatcamGUI/FlatCAMGUI.py:2233
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:27
-msgid "Gerber Editor"
-msgstr "Editor Gerber"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2475 flatcamGUI/ObjectUI.py:228
-#: flatcamTools/ToolProperties.py:159
-msgid "Apertures"
-msgstr "Aberturas"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2477 flatcamGUI/ObjectUI.py:230
-msgid "Apertures Table for the Gerber Object."
-msgstr "Tabela de Aberturas para o Objeto Gerber."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2488
-#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263
-msgid "Code"
-msgstr "Código"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2488
-#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:103
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43
-#: flatcamTools/ToolCopperThieving.py:261
-#: flatcamTools/ToolCopperThieving.py:301 flatcamTools/ToolFiducials.py:156
-msgid "Size"
-msgstr "Tamanho"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2488
-#: flatcamEditors/FlatCAMGrbEditor.py:3969 flatcamGUI/ObjectUI.py:263
-msgid "Dim"
-msgstr "Dim"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2493 flatcamGUI/ObjectUI.py:267
-msgid "Index"
-msgstr "Índice"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2495
-#: flatcamEditors/FlatCAMGrbEditor.py:2524 flatcamGUI/ObjectUI.py:269
-msgid "Aperture Code"
-msgstr "Código de Abertura"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2497 flatcamGUI/ObjectUI.py:271
-msgid "Type of aperture: circular, rectangle, macros etc"
-msgstr "Tipo de abertura: circular, retângulo, macros etc"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2499 flatcamGUI/ObjectUI.py:273
-msgid "Aperture Size:"
-msgstr "Tamanho da abertura:"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2501 flatcamGUI/ObjectUI.py:275
-msgid ""
-"Aperture Dimensions:\n"
-" - (width, height) for R, O type.\n"
-" - (dia, nVertices) for P type"
-msgstr ""
-"Dimensões da abertura: \n"
-" - (largura, altura) para o tipo R, O. \n"
-" - (dia, nVertices) para o tipo P"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2525
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:58
-msgid "Code for the new aperture"
-msgstr "Código para a nova abertura"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2534
-msgid "Aperture Size"
-msgstr "Tamanho da abertura"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2536
-msgid ""
-"Size for the new aperture.\n"
-"If aperture type is 'R' or 'O' then\n"
-"this value is automatically\n"
-"calculated as:\n"
-"sqrt(width**2 + height**2)"
-msgstr ""
-"Tamanho para a nova abertura.\n"
-"Se o tipo de abertura for 'R' ou 'O' então\n"
-"este valor será automaticamente\n"
-"calculado como:\n"
-"sqrt(largura^2 + altura^2)"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2550
-msgid "Aperture Type"
-msgstr "Tipo de Abertura"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2552
-msgid ""
-"Select the type of new aperture. Can be:\n"
-"C = circular\n"
-"R = rectangular\n"
-"O = oblong"
-msgstr ""
-"Selecione o tipo da nova abertura. Pode ser:\n"
-"C = circular \n"
-"R = retangular \n"
-"O = oblongo"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2563
-msgid "Aperture Dim"
-msgstr "Dim Abertura"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2565
-msgid ""
-"Dimensions for the new aperture.\n"
-"Active only for rectangular apertures (type R).\n"
-"The format is (width, height)"
-msgstr ""
-"Dimensões da nova abertura.\n"
-"Ativa apenas para aberturas retangulares (tipo R).\n"
-"O formato é (largura, altura)"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2574
-msgid "Add/Delete Aperture"
-msgstr "Adicionar/Excluir Abertura"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2576
-msgid "Add/Delete an aperture in the aperture table"
-msgstr "Adicionar/Excluir uma abertura na tabela de aberturas"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2585
-msgid "Add a new aperture to the aperture list."
-msgstr "Adiciona uma nova abertura à lista de aberturas."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2590
-msgid "Delete a aperture in the aperture list"
-msgstr "Exclui uma abertura da lista de aberturas"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2607
-msgid "Buffer Aperture"
-msgstr "Buffer Abertura"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2609
-msgid "Buffer a aperture in the aperture list"
-msgstr "Buffer de uma abertura na lista de aberturas"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2622
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:194
-msgid "Buffer distance"
-msgstr "Distância do buffer"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2623
-msgid "Buffer corner"
-msgstr "Canto do buffer"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2625
-msgid ""
-"There are 3 types of corners:\n"
-" - 'Round': the corner is rounded.\n"
-" - 'Square': the corner is met in a sharp angle.\n"
-" - 'Beveled': the corner is a line that directly connects the features "
-"meeting in the corner"
-msgstr ""
-"Existem 3 tipos de cantos:\n"
-"- 'Redondo': o canto é arredondado.\n"
-"- 'Quadrado:' o canto é em um ângulo agudo.\n"
-"- 'Chanfrado:' o canto é uma linha que conecta diretamente os recursos "
-"reunidos no canto"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2640 flatcamGUI/FlatCAMGUI.py:1061
-#: flatcamGUI/FlatCAMGUI.py:2138 flatcamGUI/FlatCAMGUI.py:2210
-#: flatcamGUI/FlatCAMGUI.py:2253 flatcamGUI/FlatCAMGUI.py:2765
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:200
-#: flatcamTools/ToolTransform.py:29
-msgid "Buffer"
-msgstr "Buffer"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2655
-msgid "Scale Aperture"
-msgstr "Redim. Abertura"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2657
-msgid "Scale a aperture in the aperture list"
-msgstr "Redimensiona uma abertura na lista de aberturas"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2665
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:209
-msgid "Scale factor"
-msgstr "Fator de Escala"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2667
-msgid ""
-"The factor by which to scale the selected aperture.\n"
-"Values can be between 0.0000 and 999.9999"
-msgstr ""
-"O fator para redimensionar a abertura selecionada. \n"
-"Os valores podem estar entre 0.0000 e 999.9999"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2695
-msgid "Mark polygons"
-msgstr "Marcar polígonos"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2697
-msgid "Mark the polygon areas."
-msgstr "Marcar as áreas de polígonos."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2705
-msgid "Area UPPER threshold"
-msgstr "Limite de área SUPERIOR"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2707
-msgid ""
-"The threshold value, all areas less than this are marked.\n"
-"Can have a value between 0.0000 and 9999.9999"
-msgstr ""
-"Valor limite, todas as áreas menores que isso são marcadas.\n"
-"Pode ser um valor entre 0.0000 e 9999.9999"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2714
-msgid "Area LOWER threshold"
-msgstr "Limite de área INFERIOR"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2716
-msgid ""
-"The threshold value, all areas more than this are marked.\n"
-"Can have a value between 0.0000 and 9999.9999"
-msgstr ""
-"Valor limite, todas as áreas maiores que isso são marcadas.\n"
-"Pode ser um valor entre 0.0000 e 9999.9999"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2730
-msgid "Mark"
-msgstr "Marcar"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2732
-msgid "Mark the polygons that fit within limits."
-msgstr "Marcar os polígonos que se encaixam dentro dos limites."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2738
-msgid "Delete all the marked polygons."
-msgstr "Excluir todos os polígonos marcados."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2744
-msgid "Clear all the markings."
-msgstr "Limpar todas as marcações."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2764 flatcamGUI/FlatCAMGUI.py:1046
-#: flatcamGUI/FlatCAMGUI.py:2138 flatcamGUI/FlatCAMGUI.py:2750
-msgid "Add Pad Array"
-msgstr "Adicionar Matriz de Pads"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2766
-msgid "Add an array of pads (linear or circular array)"
-msgstr "Adicione uma matriz de pads (matriz linear ou circular)"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2772
-msgid ""
-"Select the type of pads array to create.\n"
-"It can be Linear X(Y) or Circular"
-msgstr ""
-"Selecione o tipo de matriz de pads para criar.\n"
-"Pode ser Linear X(Y) ou Circular"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2783
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:95
-msgid "Nr of pads"
-msgstr "Nº de pads"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2785
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:97
-msgid "Specify how many pads to be in the array."
-msgstr "Especifique quantos pads devem estar na matriz."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:2834
-msgid ""
-"Angle at which the linear array is placed.\n"
-"The precision is of max 2 decimals.\n"
-"Min value is: -359.99 degrees.\n"
-"Max value is: 360.00 degrees."
-msgstr ""
-"Ângulo no qual a matriz linear é colocada.\n"
-"A precisão é de no máximo 2 decimais.\n"
-"Valor mínimo: -359.99 graus.\n"
-"Valor máximo: 360.00 graus."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3328
-#: flatcamEditors/FlatCAMGrbEditor.py:3332
-msgid "Aperture code value is missing or wrong format. Add it and retry."
-msgstr ""
-"O valor do código de abertura está ausente ou em formato incorreto. Altere e "
-"tente novamente."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3368
-msgid ""
-"Aperture dimensions value is missing or wrong format. Add it in format "
-"(width, height) and retry."
-msgstr ""
-"O valor das dimensões da abertura está ausente ou está no formato errado. "
-"Altere (largura, altura) e tente novamente."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3381
-msgid "Aperture size value is missing or wrong format. Add it and retry."
-msgstr ""
-"O valor do tamanho da abertura está ausente ou está no formato errado. "
-"Altere e tente novamente."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3392
-msgid "Aperture already in the aperture table."
-msgstr "Abertura já na tabela de aberturas."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3399
-msgid "Added new aperture with code"
-msgstr "Adicionada nova abertura com código"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3431
-msgid " Select an aperture in Aperture Table"
-msgstr " Selecione uma abertura na Tabela de Aberturas"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3439
-msgid "Select an aperture in Aperture Table -->"
-msgstr "Selecione uma abertura na Tabela de Aberturas ->"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3453
-msgid "Deleted aperture with code"
-msgstr "Abertura excluída com código"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3521
-msgid "Dimensions need two float values separated by comma."
-msgstr ""
-"As dimensões precisam de dois valores flutuantes separados por vírgula."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:3530
-msgid "Dimensions edited."
-msgstr "Dimensões editadas."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4084
-msgid "Loading Gerber into Editor"
-msgstr "Lendo Gerber no Editor"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4212
-msgid "Setting up the UI"
-msgstr "Configurando a interface do usuário"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4213
-msgid "Adding geometry finished. Preparing the GUI"
-msgstr "Geometria adicionada. Preparando a GUI"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4222
-msgid "Finished loading the Gerber object into the editor."
-msgstr "Carregamento do objeto Gerber no editor concluído."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4361
-msgid ""
-"There are no Aperture definitions in the file. Aborting Gerber creation."
-msgstr ""
-"Não há definições da Abertura no arquivo. Abortando a criação de Gerber."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4371
-msgid "Creating Gerber."
-msgstr "Criando Gerber."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4380
-msgid "Done. Gerber editing finished."
-msgstr "Edição de Gerber concluída."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4398
-msgid "Cancelled. No aperture is selected"
-msgstr "Cancelado. Nenhuma abertura selecionada"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:4992
-msgid "Failed. No aperture geometry is selected."
-msgstr "Cancelado. Nenhuma abertura selecionada."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5001
-#: flatcamEditors/FlatCAMGrbEditor.py:5272
-msgid "Done. Apertures geometry deleted."
-msgstr "Abertura excluída."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5144
-msgid "No aperture to buffer. Select at least one aperture and try again."
-msgstr ""
-"Nenhuma abertura para buffer. Selecione pelo menos uma abertura e tente "
-"novamente."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5156
-msgid "Failed."
-msgstr "Falhou."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5175
-msgid "Scale factor value is missing or wrong format. Add it and retry."
-msgstr ""
-"O valor do fator de escala está ausente ou está em formato incorreto. Altere "
-"e tente novamente."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5207
-msgid "No aperture to scale. Select at least one aperture and try again."
-msgstr ""
-"Nenhuma abertura para redimensionar. Selecione pelo menos uma abertura e "
-"tente novamente."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5223
-msgid "Done. Scale Tool completed."
-msgstr "Redimensionamento concluído."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5261
-msgid "Polygons marked."
-msgstr "Polígonos marcados."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5264
-msgid "No polygons were marked. None fit within the limits."
-msgstr "Nenhum polígono foi marcado. Nenhum se encaixa dentro dos limites."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:5988
-msgid "Rotation action was not executed."
-msgstr "A rotação não foi executada."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:6116
-msgid "Skew action was not executed."
-msgstr "A inclinação não foi executada."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:6181
-msgid "Scale action was not executed."
-msgstr "O redimensionamento não foi executado."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:6224
-msgid "Offset action was not executed."
-msgstr "O deslocamento não foi executado."
-
-#: flatcamEditors/FlatCAMGrbEditor.py:6274
-msgid "Geometry shape offset Y cancelled"
-msgstr "Deslocamento Y cancelado"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:6289
-msgid "Geometry shape skew X cancelled"
-msgstr "Inclinação X cancelada"
-
-#: flatcamEditors/FlatCAMGrbEditor.py:6304
-msgid "Geometry shape skew Y cancelled"
-msgstr "Inclinação Y cancelada"
-
-#: flatcamEditors/FlatCAMTextEditor.py:74
-msgid "Print Preview"
-msgstr "Visualizar Impressão"
-
-#: flatcamEditors/FlatCAMTextEditor.py:75
-msgid "Open a OS standard Preview Print window."
-msgstr "Abre a janela Visualizar Impressão do SO."
-
-#: flatcamEditors/FlatCAMTextEditor.py:78
-msgid "Print Code"
-msgstr "Imprimir Código"
-
-#: flatcamEditors/FlatCAMTextEditor.py:79
-msgid "Open a OS standard Print window."
-msgstr "Abre a janela Imprimir do SO."
-
-#: flatcamEditors/FlatCAMTextEditor.py:81
-msgid "Find in Code"
-msgstr "Encontrar no Código"
-
-#: flatcamEditors/FlatCAMTextEditor.py:82
-msgid "Will search and highlight in yellow the string in the Find box."
-msgstr "Procurará e destacará em amarelo o texto da caixa Procurar."
-
-#: flatcamEditors/FlatCAMTextEditor.py:86
-msgid "Find box. Enter here the strings to be searched in the text."
-msgstr "Caixa Procurar. Digite aqui o texto a procurar."
-
-#: flatcamEditors/FlatCAMTextEditor.py:88
-msgid "Replace With"
-msgstr "Substituir Por"
-
-#: flatcamEditors/FlatCAMTextEditor.py:89
-msgid ""
-"Will replace the string from the Find box with the one in the Replace box."
-msgstr "Substituirá o texto da caixa Localizar pelo texto da caixa Substituir."
-
-#: flatcamEditors/FlatCAMTextEditor.py:93
-msgid "String to replace the one in the Find box throughout the text."
-msgstr "Texto para substituir o da caixa Localizar ao longo do texto."
-
-#: flatcamEditors/FlatCAMTextEditor.py:95 flatcamGUI/ObjectUI.py:486
-#: flatcamGUI/ObjectUI.py:2219
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:54
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:88
-msgid "All"
-msgstr "Todos"
-
-#: flatcamEditors/FlatCAMTextEditor.py:96
-msgid ""
-"When checked it will replace all instances in the 'Find' box\n"
-"with the text in the 'Replace' box.."
-msgstr ""
-"Quando marcado, todas as instâncias na caixa 'Localizar'\n"
-"serão substituídas pelo texto na caixa 'Substituir'."
-
-#: flatcamEditors/FlatCAMTextEditor.py:99
-msgid "Copy All"
-msgstr "Copiar tudo"
-
-#: flatcamEditors/FlatCAMTextEditor.py:100
-msgid "Will copy all the text in the Code Editor to the clipboard."
-msgstr "Copiará todo o texto no Editor de código para a área de transferência."
-
-#: flatcamEditors/FlatCAMTextEditor.py:103
-msgid "Open Code"
-msgstr "Abrir Código"
-
-#: flatcamEditors/FlatCAMTextEditor.py:104
-msgid "Will open a text file in the editor."
-msgstr "Abrirá um arquivo de texto no editor."
-
-#: flatcamEditors/FlatCAMTextEditor.py:106
-msgid "Save Code"
-msgstr "Salvar Código"
-
-#: flatcamEditors/FlatCAMTextEditor.py:107
-msgid "Will save the text in the editor into a file."
-msgstr "Salvará o texto do editor em um arquivo."
-
-#: flatcamEditors/FlatCAMTextEditor.py:109
-msgid "Run Code"
-msgstr "Executar Código"
-
-#: flatcamEditors/FlatCAMTextEditor.py:110
-msgid "Will run the TCL commands found in the text file, one by one."
-msgstr "Executará os comandos TCL do arquivo de texto, um a um."
-
-#: flatcamEditors/FlatCAMTextEditor.py:184
-msgid "Open file"
-msgstr "Abrir arquivo"
-
-#: flatcamEditors/FlatCAMTextEditor.py:215
-#: flatcamEditors/FlatCAMTextEditor.py:220
-msgid "Export Code ..."
-msgstr "Exportar código ..."
-
-#: flatcamEditors/FlatCAMTextEditor.py:272 flatcamObjects/FlatCAMCNCJob.py:955
-#: flatcamTools/ToolSolderPaste.py:1530
-msgid "No such file or directory"
-msgstr "Nenhum arquivo ou diretório"
-
-#: flatcamEditors/FlatCAMTextEditor.py:284 flatcamObjects/FlatCAMCNCJob.py:969
-msgid "Saved to"
-msgstr "Salvo em"
-
-#: flatcamEditors/FlatCAMTextEditor.py:334
-msgid "Code Editor content copied to clipboard ..."
-msgstr "Conteúdo do Code Editor copiado para a área de transferência ..."
-
-#: flatcamGUI/FlatCAMGUI.py:78 flatcamGUI/FlatCAMGUI.py:80
-#: flatcamGUI/FlatCAMGUI.py:2163
-msgid "Toggle Panel"
-msgstr "Alternar Painel"
-
-#: flatcamGUI/FlatCAMGUI.py:90
-msgid "File"
-msgstr "Arquivo"
-
-#: flatcamGUI/FlatCAMGUI.py:95
-msgid "&New Project ...\tCtrl+N"
-msgstr "&Novo Projeto ...\tCtrl+N"
-
-#: flatcamGUI/FlatCAMGUI.py:97
-msgid "Will create a new, blank project"
-msgstr "Criará um novo projeto em branco"
-
-#: flatcamGUI/FlatCAMGUI.py:102
-msgid "&New"
-msgstr "&Novo"
-
-#: flatcamGUI/FlatCAMGUI.py:106
-msgid "Geometry\tN"
-msgstr "Geometria\tN"
-
-#: flatcamGUI/FlatCAMGUI.py:108
-msgid "Will create a new, empty Geometry Object."
-msgstr "Criará um novo Objeto Geometria vazio."
-
-#: flatcamGUI/FlatCAMGUI.py:111
-msgid "Gerber\tB"
-msgstr "Gerber\tB"
-
-#: flatcamGUI/FlatCAMGUI.py:113
-msgid "Will create a new, empty Gerber Object."
-msgstr "Criará um novo Objeto Gerber vazio."
-
-#: flatcamGUI/FlatCAMGUI.py:116
-msgid "Excellon\tL"
-msgstr "Excellon\tL"
-
-#: flatcamGUI/FlatCAMGUI.py:118
-msgid "Will create a new, empty Excellon Object."
-msgstr "Criará um novo Objeto Excellon vazio."
-
-#: flatcamGUI/FlatCAMGUI.py:123
-msgid "Document\tD"
-msgstr "Documento\tD"
-
-#: flatcamGUI/FlatCAMGUI.py:125
-msgid "Will create a new, empty Document Object."
-msgstr "Criará um novo Objeto Documento vazio."
-
-#: flatcamGUI/FlatCAMGUI.py:129 flatcamGUI/FlatCAMGUI.py:4420
-#: flatcamTools/ToolPcbWizard.py:62 flatcamTools/ToolPcbWizard.py:69
-msgid "Open"
-msgstr "Abrir"
-
-#: flatcamGUI/FlatCAMGUI.py:134
-msgid "Open &Project ..."
-msgstr "Abrir &Projeto ..."
-
-#: flatcamGUI/FlatCAMGUI.py:140 flatcamGUI/FlatCAMGUI.py:4430
-msgid "Open &Gerber ...\tCtrl+G"
-msgstr "Abrir &Gerber ...\tCtrl+G"
-
-#: flatcamGUI/FlatCAMGUI.py:145 flatcamGUI/FlatCAMGUI.py:4435
-msgid "Open &Excellon ...\tCtrl+E"
-msgstr "Abrir &Excellon ...\tCtrl+E"
-
-#: flatcamGUI/FlatCAMGUI.py:150 flatcamGUI/FlatCAMGUI.py:4440
-msgid "Open G-&Code ..."
-msgstr "Abrir G-&Code ..."
-
-#: flatcamGUI/FlatCAMGUI.py:157
-msgid "Open Config ..."
-msgstr "Abrir Configuração ..."
-
-#: flatcamGUI/FlatCAMGUI.py:162
-msgid "Recent projects"
-msgstr "Projetos Recentes"
-
-#: flatcamGUI/FlatCAMGUI.py:164
-msgid "Recent files"
-msgstr "Arquivos Recentes"
-
-#: flatcamGUI/FlatCAMGUI.py:167 flatcamGUI/FlatCAMGUI.py:753
-#: flatcamGUI/FlatCAMGUI.py:1339
-msgid "Save"
-msgstr "Salvar"
-
-#: flatcamGUI/FlatCAMGUI.py:171
-msgid "&Save Project ...\tCtrl+S"
-msgstr "&Salvar Projeto ...\tCtrl+S"
-
-#: flatcamGUI/FlatCAMGUI.py:176
-msgid "Save Project &As ...\tCtrl+Shift+S"
-msgstr "S&alvar Projeto Como ...\tCtrl+Shift+S"
-
-#: flatcamGUI/FlatCAMGUI.py:191
-msgid "Scripting"
-msgstr "Scripting"
-
-#: flatcamGUI/FlatCAMGUI.py:195 flatcamGUI/FlatCAMGUI.py:903
-#: flatcamGUI/FlatCAMGUI.py:2607
-msgid "New Script ..."
-msgstr "Novo Script ..."
-
-#: flatcamGUI/FlatCAMGUI.py:197 flatcamGUI/FlatCAMGUI.py:905
-#: flatcamGUI/FlatCAMGUI.py:2609
-msgid "Open Script ..."
-msgstr "Abrir Script ..."
-
-#: flatcamGUI/FlatCAMGUI.py:199
-msgid "Open Example ..."
-msgstr "Abrir Exemplo ..."
-
-#: flatcamGUI/FlatCAMGUI.py:201 flatcamGUI/FlatCAMGUI.py:907
-#: flatcamGUI/FlatCAMGUI.py:2611 flatcamGUI/FlatCAMGUI.py:4409
-msgid "Run Script ..."
-msgstr "Executar Script ..."
-
-#: flatcamGUI/FlatCAMGUI.py:203 flatcamGUI/FlatCAMGUI.py:4411
-msgid ""
-"Will run the opened Tcl Script thus\n"
-"enabling the automation of certain\n"
-"functions of FlatCAM."
-msgstr ""
-"Executará o script TCL aberto,\n"
-"ativando a automação de certas\n"
-"funções do FlatCAM."
-
-#: flatcamGUI/FlatCAMGUI.py:218
-msgid "Import"
-msgstr "Importar"
-
-#: flatcamGUI/FlatCAMGUI.py:220
-msgid "&SVG as Geometry Object ..."
-msgstr "&SVG como Objeto de Geometria ..."
-
-#: flatcamGUI/FlatCAMGUI.py:223
-msgid "&SVG as Gerber Object ..."
-msgstr "&SVG como Objeto Gerber ..."
-
-#: flatcamGUI/FlatCAMGUI.py:228
-msgid "&DXF as Geometry Object ..."
-msgstr "&DXF como Objeto de Geometria ..."
-
-#: flatcamGUI/FlatCAMGUI.py:231
-msgid "&DXF as Gerber Object ..."
-msgstr "&DXF como Objeto Gerber ..."
-
-#: flatcamGUI/FlatCAMGUI.py:235
-msgid "HPGL2 as Geometry Object ..."
-msgstr "HPGL2 como objeto de geometria ..."
-
-#: flatcamGUI/FlatCAMGUI.py:241
-msgid "Export"
-msgstr "Exportar"
-
-#: flatcamGUI/FlatCAMGUI.py:245
-msgid "Export &SVG ..."
-msgstr "Exportar &SVG ..."
-
-#: flatcamGUI/FlatCAMGUI.py:249
-msgid "Export DXF ..."
-msgstr "Exportar DXF ..."
-
-#: flatcamGUI/FlatCAMGUI.py:255
-msgid "Export &PNG ..."
-msgstr "Exportar &PNG ..."
-
-#: flatcamGUI/FlatCAMGUI.py:257
-msgid ""
-"Will export an image in PNG format,\n"
-"the saved image will contain the visual \n"
-"information currently in FlatCAM Plot Area."
-msgstr ""
-"Exportará uma imagem em formato PNG.\n"
-"A imagem salva conterá as informações\n"
-"visuais atualmente na área gráfica FlatCAM."
-
-#: flatcamGUI/FlatCAMGUI.py:266
-msgid "Export &Excellon ..."
-msgstr "Exportar &Excellon ..."
-
-#: flatcamGUI/FlatCAMGUI.py:268
-msgid ""
-"Will export an Excellon Object as Excellon file,\n"
-"the coordinates format, the file units and zeros\n"
-"are set in Preferences -> Excellon Export."
-msgstr ""
-"Exportará um Objeto Excellon como arquivo Excellon.\n"
-"O formato das coordenadas, das unidades de arquivo e dos zeros\n"
-"são definidos em Preferências -> Exportação de Excellon."
-
-#: flatcamGUI/FlatCAMGUI.py:275
-msgid "Export &Gerber ..."
-msgstr "Exportar &Gerber ..."
-
-#: flatcamGUI/FlatCAMGUI.py:277
-msgid ""
-"Will export an Gerber Object as Gerber file,\n"
-"the coordinates format, the file units and zeros\n"
-"are set in Preferences -> Gerber Export."
-msgstr ""
-"Exportará um Objeto Gerber como arquivo Gerber.\n"
-"O formato das coordenadas, das unidades de arquivo e dos zeros\n"
-"são definidos em Preferências -> Exportar Gerber."
-
-#: flatcamGUI/FlatCAMGUI.py:287
-msgid "Backup"
-msgstr "Backup"
-
-#: flatcamGUI/FlatCAMGUI.py:292
-msgid "Import Preferences from file ..."
-msgstr "Importar preferências de um arquivo ..."
-
-#: flatcamGUI/FlatCAMGUI.py:298
-msgid "Export Preferences to file ..."
-msgstr "Exportar Preferências para um arquivo ..."
-
-#: flatcamGUI/FlatCAMGUI.py:306
-#: flatcamGUI/preferences/PreferencesUIManager.py:1119
-msgid "Save Preferences"
-msgstr "Salvar Preferências"
-
-#: flatcamGUI/FlatCAMGUI.py:312 flatcamGUI/FlatCAMGUI.py:1730
-msgid "Print (PDF)"
-msgstr "Imprimir (PDF)"
-
-#: flatcamGUI/FlatCAMGUI.py:320
-msgid "E&xit"
-msgstr "Sair"
-
-#: flatcamGUI/FlatCAMGUI.py:328 flatcamGUI/FlatCAMGUI.py:747
-#: flatcamGUI/FlatCAMGUI.py:2286
-msgid "Edit"
-msgstr "Editar"
-
-#: flatcamGUI/FlatCAMGUI.py:332
-msgid "Edit Object\tE"
-msgstr "Editar Objeto\tE"
-
-#: flatcamGUI/FlatCAMGUI.py:334
-msgid "Close Editor\tCtrl+S"
-msgstr "Fechar Editor\tCtrl+S"
-
-#: flatcamGUI/FlatCAMGUI.py:343
-msgid "Conversion"
-msgstr "Conversão"
-
-#: flatcamGUI/FlatCAMGUI.py:345
-msgid "&Join Geo/Gerber/Exc -> Geo"
-msgstr "&Unir Geo/Gerber/Exc -> Geo"
-
-#: flatcamGUI/FlatCAMGUI.py:347
-msgid ""
-"Merge a selection of objects, which can be of type:\n"
-"- Gerber\n"
-"- Excellon\n"
-"- Geometry\n"
-"into a new combo Geometry object."
-msgstr ""
-"Mescla uma seleção de objetos, que podem ser do tipo:\n"
-"- Gerber\n"
-"- Excellon\n"
-"- Geometria\n"
-" em um novo objeto Geometria."
-
-#: flatcamGUI/FlatCAMGUI.py:354
-msgid "Join Excellon(s) -> Excellon"
-msgstr "Unir Excellon(s) -> Excellon"
-
-#: flatcamGUI/FlatCAMGUI.py:356
-msgid "Merge a selection of Excellon objects into a new combo Excellon object."
-msgstr "Mescla uma seleção de objetos Excellon em um novo objeto Excellon."
-
-#: flatcamGUI/FlatCAMGUI.py:359
-msgid "Join Gerber(s) -> Gerber"
-msgstr "Unir Gerber(s) -> Gerber"
-
-#: flatcamGUI/FlatCAMGUI.py:361
-msgid "Merge a selection of Gerber objects into a new combo Gerber object."
-msgstr "Mescla uma seleção de objetos Gerber em um novo objeto Gerber."
-
-#: flatcamGUI/FlatCAMGUI.py:366
-msgid "Convert Single to MultiGeo"
-msgstr "Converter Único para MultiGeo"
-
-#: flatcamGUI/FlatCAMGUI.py:368
-msgid ""
-"Will convert a Geometry object from single_geometry type\n"
-"to a multi_geometry type."
-msgstr ""
-"Converterá um objeto Geometria do tipo single_geometry\n"
-"em um tipo multi_geometry."
-
-#: flatcamGUI/FlatCAMGUI.py:372
-msgid "Convert Multi to SingleGeo"
-msgstr "Converter MultiGeo para Único"
-
-#: flatcamGUI/FlatCAMGUI.py:374
-msgid ""
-"Will convert a Geometry object from multi_geometry type\n"
-"to a single_geometry type."
-msgstr ""
-"Converterá um objeto Geometria do tipo multi_geometry\n"
-"em um tipo single_geometry."
-
-#: flatcamGUI/FlatCAMGUI.py:381
-msgid "Convert Any to Geo"
-msgstr "Converter Qualquer para Geo"
-
-#: flatcamGUI/FlatCAMGUI.py:384
-msgid "Convert Any to Gerber"
-msgstr "Converter Qualquer para Gerber"
-
-#: flatcamGUI/FlatCAMGUI.py:390
-msgid "&Copy\tCtrl+C"
-msgstr "&Copiar\tCtrl+C"
-
-#: flatcamGUI/FlatCAMGUI.py:395
-msgid "&Delete\tDEL"
-msgstr "Excluir\tDEL"
-
-#: flatcamGUI/FlatCAMGUI.py:400
-msgid "Se&t Origin\tO"
-msgstr "Definir Origem\tO"
-
-#: flatcamGUI/FlatCAMGUI.py:402
-msgid "Move to Origin\tShift+O"
-msgstr "Mover para Origem\tShift+O"
-
-#: flatcamGUI/FlatCAMGUI.py:405
-msgid "Jump to Location\tJ"
-msgstr "Ir para a localização\tJ"
-
-#: flatcamGUI/FlatCAMGUI.py:407
-msgid "Locate in Object\tShift+J"
-msgstr "Localizar em Objeto\tShift+J"
-
-#: flatcamGUI/FlatCAMGUI.py:412
-msgid "Toggle Units\tQ"
-msgstr "Alternar Unidades\tQ"
-
-#: flatcamGUI/FlatCAMGUI.py:414
-msgid "&Select All\tCtrl+A"
-msgstr "&Selecionar Tudo\tCtrl+A"
-
-#: flatcamGUI/FlatCAMGUI.py:419
-msgid "&Preferences\tShift+P"
-msgstr "&Preferências\tShift+P"
-
-#: flatcamGUI/FlatCAMGUI.py:425 flatcamTools/ToolProperties.py:155
-msgid "Options"
-msgstr "Opções"
-
-#: flatcamGUI/FlatCAMGUI.py:427
-msgid "&Rotate Selection\tShift+(R)"
-msgstr "Gi&rar Seleção\tShift+(R)"
-
-#: flatcamGUI/FlatCAMGUI.py:432
-msgid "&Skew on X axis\tShift+X"
-msgstr "Inclinar no eixo X\tShift+X"
-
-#: flatcamGUI/FlatCAMGUI.py:434
-msgid "S&kew on Y axis\tShift+Y"
-msgstr "Inclinar no eixo Y\tShift+Y"
-
-#: flatcamGUI/FlatCAMGUI.py:439
-msgid "Flip on &X axis\tX"
-msgstr "Espelhar no eixo &X\tX"
-
-#: flatcamGUI/FlatCAMGUI.py:441
-msgid "Flip on &Y axis\tY"
-msgstr "Espelhar no eixo &Y\tY"
-
-#: flatcamGUI/FlatCAMGUI.py:446
-msgid "View source\tAlt+S"
-msgstr "Ver fonte\tAlt+S"
-
-#: flatcamGUI/FlatCAMGUI.py:448
-msgid "Tools DataBase\tCtrl+D"
-msgstr "Banco de Dados de Ferramentas\tCtrl+D"
-
-#: flatcamGUI/FlatCAMGUI.py:455 flatcamGUI/FlatCAMGUI.py:2183
-msgid "View"
-msgstr "Ver"
-
-#: flatcamGUI/FlatCAMGUI.py:457
-msgid "Enable all plots\tAlt+1"
-msgstr "Habilitar todos os gráficos\tAlt+1"
-
-#: flatcamGUI/FlatCAMGUI.py:459
-msgid "Disable all plots\tAlt+2"
-msgstr "Desabilitar todos os gráficos\tAlt+2"
-
-#: flatcamGUI/FlatCAMGUI.py:461
-msgid "Disable non-selected\tAlt+3"
-msgstr "Desabilitar os não selecionados\tAlt+3"
-
-#: flatcamGUI/FlatCAMGUI.py:465
-msgid "&Zoom Fit\tV"
-msgstr "&Zoom Ajustado\tV"
-
-#: flatcamGUI/FlatCAMGUI.py:467
-msgid "&Zoom In\t="
-msgstr "&Zoom +\t="
-
-#: flatcamGUI/FlatCAMGUI.py:469
-msgid "&Zoom Out\t-"
-msgstr "&Zoom -\t-"
-
-#: flatcamGUI/FlatCAMGUI.py:474
-msgid "Redraw All\tF5"
-msgstr "Redesenha Todos\tF5"
-
-#: flatcamGUI/FlatCAMGUI.py:478
-msgid "Toggle Code Editor\tShift+E"
-msgstr "Alternar o Editor de Códigos\tShift+E"
-
-#: flatcamGUI/FlatCAMGUI.py:481
-msgid "&Toggle FullScreen\tAlt+F10"
-msgstr "Alternar &Tela Cheia\tAlt+F10"
-
-#: flatcamGUI/FlatCAMGUI.py:483
-msgid "&Toggle Plot Area\tCtrl+F10"
-msgstr "Al&ternar Área de Gráficos\tCtrl+F10"
-
-#: flatcamGUI/FlatCAMGUI.py:485
-msgid "&Toggle Project/Sel/Tool\t`"
-msgstr "Al&ternar Projeto/Sel/Ferram\t`"
-
-#: flatcamGUI/FlatCAMGUI.py:489
-msgid "&Toggle Grid Snap\tG"
-msgstr "Al&ternar Encaixe na Grade\tG"
-
-#: flatcamGUI/FlatCAMGUI.py:491
-msgid "&Toggle Grid Lines\tAlt+G"
-msgstr "Al&ternar Encaixe na Grade\tAlt+G"
-
-#: flatcamGUI/FlatCAMGUI.py:493
-msgid "&Toggle Axis\tShift+G"
-msgstr "Al&ternar Eixo\tShift+G"
-
-#: flatcamGUI/FlatCAMGUI.py:495
-msgid "Toggle Workspace\tShift+W"
-msgstr "Alternar Área de Trabalho\tShift+W"
-
-#: flatcamGUI/FlatCAMGUI.py:500
-msgid "Objects"
-msgstr "Objetos"
-
-#: flatcamGUI/FlatCAMGUI.py:514
-msgid "&Command Line\tS"
-msgstr "Linha de &Comando\tS"
-
-#: flatcamGUI/FlatCAMGUI.py:519
-msgid "Help"
-msgstr "Ajuda"
-
-#: flatcamGUI/FlatCAMGUI.py:521
-msgid "Online Help\tF1"
-msgstr "Ajuda Online\tF1"
-
-#: flatcamGUI/FlatCAMGUI.py:531
-msgid "Report a bug"
-msgstr "Reportar um bug"
-
-#: flatcamGUI/FlatCAMGUI.py:534
-msgid "Excellon Specification"
-msgstr "Especificação Excellon"
-
-#: flatcamGUI/FlatCAMGUI.py:536
-msgid "Gerber Specification"
-msgstr "Especificação Gerber"
-
-#: flatcamGUI/FlatCAMGUI.py:541
-msgid "Shortcuts List\tF3"
-msgstr "Lista de Atalhos\tF3"
-
-#: flatcamGUI/FlatCAMGUI.py:543
-msgid "YouTube Channel\tF4"
-msgstr "Canal no YouTube\tF4"
-
-#: flatcamGUI/FlatCAMGUI.py:554
-msgid "Add Circle\tO"
-msgstr "Adicionar Círculo\tO"
-
-#: flatcamGUI/FlatCAMGUI.py:557
-msgid "Add Arc\tA"
-msgstr "Adicionar Arco\tA"
-
-#: flatcamGUI/FlatCAMGUI.py:560
-msgid "Add Rectangle\tR"
-msgstr "Adicionar Retângulo\tR"
-
-#: flatcamGUI/FlatCAMGUI.py:563
-msgid "Add Polygon\tN"
-msgstr "Adicionar Polígono\tN"
-
-#: flatcamGUI/FlatCAMGUI.py:566
-msgid "Add Path\tP"
-msgstr "Adicionar Caminho\tP"
-
-#: flatcamGUI/FlatCAMGUI.py:569
-msgid "Add Text\tT"
-msgstr "Adicionar Texto\tT"
-
-#: flatcamGUI/FlatCAMGUI.py:572
-msgid "Polygon Union\tU"
-msgstr "Unir Polígonos\tU"
-
-#: flatcamGUI/FlatCAMGUI.py:574
-msgid "Polygon Intersection\tE"
-msgstr "Interseção de Polígonos\tE"
-
-#: flatcamGUI/FlatCAMGUI.py:576
-msgid "Polygon Subtraction\tS"
-msgstr "Subtração de Polígonos\tS"
-
-#: flatcamGUI/FlatCAMGUI.py:580
-msgid "Cut Path\tX"
-msgstr "Caminho de Corte\tX"
-
-#: flatcamGUI/FlatCAMGUI.py:584
-msgid "Copy Geom\tC"
-msgstr "Copiar Geom\tC"
-
-#: flatcamGUI/FlatCAMGUI.py:586
-msgid "Delete Shape\tDEL"
-msgstr "Excluir Forma\tDEL"
-
-#: flatcamGUI/FlatCAMGUI.py:590 flatcamGUI/FlatCAMGUI.py:677
-msgid "Move\tM"
-msgstr "Mover\tM"
-
-#: flatcamGUI/FlatCAMGUI.py:592
-msgid "Buffer Tool\tB"
-msgstr "Ferramenta Buffer\tB"
-
-#: flatcamGUI/FlatCAMGUI.py:595
-msgid "Paint Tool\tI"
-msgstr "Ferramenta de Pintura\tI"
-
-#: flatcamGUI/FlatCAMGUI.py:598
-msgid "Transform Tool\tAlt+R"
-msgstr "Ferramenta de Transformação\tAlt+R"
-
-#: flatcamGUI/FlatCAMGUI.py:602
-msgid "Toggle Corner Snap\tK"
-msgstr "Alternar Encaixe de Canto\tK"
-
-#: flatcamGUI/FlatCAMGUI.py:608
-msgid ">Excellon Editor<"
-msgstr ">Editor Excellon<"
-
-#: flatcamGUI/FlatCAMGUI.py:612
-msgid "Add Drill Array\tA"
-msgstr "Adicionar Matriz de Furos\tA"
-
-#: flatcamGUI/FlatCAMGUI.py:614
-msgid "Add Drill\tD"
-msgstr "Adicionar Furo\tD"
-
-#: flatcamGUI/FlatCAMGUI.py:618
-msgid "Add Slot Array\tQ"
-msgstr "Adic. Matriz de Ranhuras\tQ"
-
-#: flatcamGUI/FlatCAMGUI.py:620
-msgid "Add Slot\tW"
-msgstr "Adicionar Ranhura\tW"
-
-#: flatcamGUI/FlatCAMGUI.py:624
-msgid "Resize Drill(S)\tR"
-msgstr "Redimensionar Furo(s)\tR"
-
-#: flatcamGUI/FlatCAMGUI.py:627 flatcamGUI/FlatCAMGUI.py:671
-msgid "Copy\tC"
-msgstr "Copiar\tC"
-
-#: flatcamGUI/FlatCAMGUI.py:629 flatcamGUI/FlatCAMGUI.py:673
-msgid "Delete\tDEL"
-msgstr "Excluir\tDEL"
-
-#: flatcamGUI/FlatCAMGUI.py:634
-msgid "Move Drill(s)\tM"
-msgstr "Mover Furo(s)\tM"
-
-#: flatcamGUI/FlatCAMGUI.py:639
-msgid ">Gerber Editor<"
-msgstr ">Editor Gerber<"
-
-#: flatcamGUI/FlatCAMGUI.py:643
-msgid "Add Pad\tP"
-msgstr "Adicionar Pad\tP"
-
-#: flatcamGUI/FlatCAMGUI.py:645
-msgid "Add Pad Array\tA"
-msgstr "Adicionar Matriz de Pads\tA"
-
-#: flatcamGUI/FlatCAMGUI.py:647
-msgid "Add Track\tT"
-msgstr "Adicionar Trilha\tT"
-
-#: flatcamGUI/FlatCAMGUI.py:649
-msgid "Add Region\tN"
-msgstr "Adicionar Região\tN"
-
-#: flatcamGUI/FlatCAMGUI.py:653
-msgid "Poligonize\tAlt+N"
-msgstr "Poligonizar\tAlt+N"
-
-#: flatcamGUI/FlatCAMGUI.py:655
-msgid "Add SemiDisc\tE"
-msgstr "Adicionar SemiDisco\tE"
-
-#: flatcamGUI/FlatCAMGUI.py:657
-msgid "Add Disc\tD"
-msgstr "Adicionar Disco\tD"
-
-#: flatcamGUI/FlatCAMGUI.py:659
-msgid "Buffer\tB"
-msgstr "Buffer\tB"
-
-#: flatcamGUI/FlatCAMGUI.py:661
-msgid "Scale\tS"
-msgstr "Escala\tS"
-
-#: flatcamGUI/FlatCAMGUI.py:663
-msgid "Mark Area\tAlt+A"
-msgstr "Marcar Área\tAlt+A"
-
-#: flatcamGUI/FlatCAMGUI.py:665
-msgid "Eraser\tCtrl+E"
-msgstr "Borracha\tCtrl+E"
-
-#: flatcamGUI/FlatCAMGUI.py:667
-msgid "Transform\tAlt+R"
-msgstr "Transformar\tAlt+R"
-
-#: flatcamGUI/FlatCAMGUI.py:694
-msgid "Enable Plot"
-msgstr "Habilitar Gráfico"
-
-#: flatcamGUI/FlatCAMGUI.py:696
-msgid "Disable Plot"
-msgstr "Desabilitar Gráfico"
-
-#: flatcamGUI/FlatCAMGUI.py:700
-msgid "Set Color"
-msgstr "Definir cor"
-
-#: flatcamGUI/FlatCAMGUI.py:742
-msgid "Generate CNC"
-msgstr "Gerar CNC"
-
-#: flatcamGUI/FlatCAMGUI.py:744
-msgid "View Source"
-msgstr "Ver Fonte"
-
-#: flatcamGUI/FlatCAMGUI.py:749 flatcamGUI/FlatCAMGUI.py:863
-#: flatcamGUI/FlatCAMGUI.py:1072 flatcamGUI/FlatCAMGUI.py:2138
-#: flatcamGUI/FlatCAMGUI.py:2282 flatcamGUI/FlatCAMGUI.py:2572
-#: flatcamGUI/FlatCAMGUI.py:2775 flatcamGUI/ObjectUI.py:1617
-#: flatcamObjects/FlatCAMGeometry.py:502 flatcamTools/ToolPanelize.py:540
-#: flatcamTools/ToolPanelize.py:567 flatcamTools/ToolPanelize.py:660
-#: flatcamTools/ToolPanelize.py:689 flatcamTools/ToolPanelize.py:751
-msgid "Copy"
-msgstr "Copiar"
-
-#: flatcamGUI/FlatCAMGUI.py:757 flatcamGUI/FlatCAMGUI.py:2295
-#: flatcamTools/ToolProperties.py:31
-msgid "Properties"
-msgstr "Propriedades"
-
-#: flatcamGUI/FlatCAMGUI.py:786
-msgid "File Toolbar"
-msgstr "Barra de Ferramentas de Arquivos"
-
-#: flatcamGUI/FlatCAMGUI.py:790
-msgid "Edit Toolbar"
-msgstr "Barra de Ferramentas Editar"
-
-#: flatcamGUI/FlatCAMGUI.py:794
-msgid "View Toolbar"
-msgstr "Barra de Ferramentas Ver"
-
-#: flatcamGUI/FlatCAMGUI.py:798
-msgid "Shell Toolbar"
-msgstr "Barra de Ferramentas Shell"
-
-#: flatcamGUI/FlatCAMGUI.py:802
-msgid "Tools Toolbar"
-msgstr "Barra de Ferramentas Ferramentas"
-
-#: flatcamGUI/FlatCAMGUI.py:806
-msgid "Excellon Editor Toolbar"
-msgstr "Barra de Ferramentas Editor Excellon"
-
-#: flatcamGUI/FlatCAMGUI.py:812
-msgid "Geometry Editor Toolbar"
-msgstr "Barra de Ferramentas Editor de Geometria"
-
-#: flatcamGUI/FlatCAMGUI.py:816
-msgid "Gerber Editor Toolbar"
-msgstr "Barra de Ferramentas Editor Gerber"
-
-#: flatcamGUI/FlatCAMGUI.py:820
-msgid "Grid Toolbar"
-msgstr "Barra de Ferramentas Grade"
-
-#: flatcamGUI/FlatCAMGUI.py:841 flatcamGUI/FlatCAMGUI.py:2549
-msgid "Open project"
-msgstr "Abrir projeto"
-
-#: flatcamGUI/FlatCAMGUI.py:843 flatcamGUI/FlatCAMGUI.py:2551
-msgid "Save project"
-msgstr "Salvar projeto"
-
-#: flatcamGUI/FlatCAMGUI.py:849 flatcamGUI/FlatCAMGUI.py:2557
-msgid "New Blank Geometry"
-msgstr "Nova Geometria em Branco"
-
-#: flatcamGUI/FlatCAMGUI.py:851 flatcamGUI/FlatCAMGUI.py:2559
-msgid "New Blank Gerber"
-msgstr "Novo Gerber em Branco"
-
-#: flatcamGUI/FlatCAMGUI.py:853 flatcamGUI/FlatCAMGUI.py:2561
-msgid "New Blank Excellon"
-msgstr "Novo Excellon em Branco"
-
-#: flatcamGUI/FlatCAMGUI.py:858 flatcamGUI/FlatCAMGUI.py:2567
-msgid "Save Object and close the Editor"
-msgstr "Salvar objeto e fechar o editor"
-
-#: flatcamGUI/FlatCAMGUI.py:865 flatcamGUI/FlatCAMGUI.py:2574
-msgid "&Delete"
-msgstr "&Excluir"
-
-#: flatcamGUI/FlatCAMGUI.py:868 flatcamGUI/FlatCAMGUI.py:1729
-#: flatcamGUI/FlatCAMGUI.py:1935 flatcamGUI/FlatCAMGUI.py:2577
-#: flatcamTools/ToolDistance.py:35 flatcamTools/ToolDistance.py:195
-msgid "Distance Tool"
-msgstr "Ferramenta de Distância"
-
-#: flatcamGUI/FlatCAMGUI.py:870 flatcamGUI/FlatCAMGUI.py:2579
-msgid "Distance Min Tool"
-msgstr "Ferramenta Distância Min"
-
-#: flatcamGUI/FlatCAMGUI.py:872 flatcamGUI/FlatCAMGUI.py:1722
-#: flatcamGUI/FlatCAMGUI.py:2581
-msgid "Set Origin"
-msgstr "Definir Origem"
-
-#: flatcamGUI/FlatCAMGUI.py:874
-msgid "Move to Origin"
-msgstr "Mover para Origem"
-
-#: flatcamGUI/FlatCAMGUI.py:877 flatcamGUI/FlatCAMGUI.py:2583
-msgid "Jump to Location"
-msgstr "Ir para a localização"
-
-#: flatcamGUI/FlatCAMGUI.py:879 flatcamGUI/FlatCAMGUI.py:1734
-#: flatcamGUI/FlatCAMGUI.py:2585
-msgid "Locate in Object"
-msgstr "Localizar em Objeto"
-
-#: flatcamGUI/FlatCAMGUI.py:885 flatcamGUI/FlatCAMGUI.py:2591
-msgid "&Replot"
-msgstr "&Redesenhar"
-
-#: flatcamGUI/FlatCAMGUI.py:887 flatcamGUI/FlatCAMGUI.py:2593
-msgid "&Clear plot"
-msgstr "Limpar gráfi&co"
-
-#: flatcamGUI/FlatCAMGUI.py:889 flatcamGUI/FlatCAMGUI.py:1725
-#: flatcamGUI/FlatCAMGUI.py:2595
-msgid "Zoom In"
-msgstr "Zoom +"
-
-#: flatcamGUI/FlatCAMGUI.py:891 flatcamGUI/FlatCAMGUI.py:1725
-#: flatcamGUI/FlatCAMGUI.py:2597
-msgid "Zoom Out"
-msgstr "Zoom -"
-
-#: flatcamGUI/FlatCAMGUI.py:893 flatcamGUI/FlatCAMGUI.py:1724
-#: flatcamGUI/FlatCAMGUI.py:2185 flatcamGUI/FlatCAMGUI.py:2599
-msgid "Zoom Fit"
-msgstr "Zoom Ajustado"
-
-#: flatcamGUI/FlatCAMGUI.py:901 flatcamGUI/FlatCAMGUI.py:2605
-msgid "&Command Line"
-msgstr "Linha de &Comando"
-
-#: flatcamGUI/FlatCAMGUI.py:913 flatcamGUI/FlatCAMGUI.py:2617
-msgid "2Sided Tool"
-msgstr "PCB de 2 Faces"
-
-#: flatcamGUI/FlatCAMGUI.py:915 flatcamGUI/FlatCAMGUI.py:1740
-#: flatcamGUI/FlatCAMGUI.py:2619
-msgid "Align Objects Tool"
-msgstr "Ferramenta Alinhar Objetos"
-
-#: flatcamGUI/FlatCAMGUI.py:917 flatcamGUI/FlatCAMGUI.py:1741
-#: flatcamGUI/FlatCAMGUI.py:2621 flatcamTools/ToolExtractDrills.py:393
-msgid "Extract Drills Tool"
-msgstr "Ferramenta Extrair Furos"
-
-#: flatcamGUI/FlatCAMGUI.py:920 flatcamGUI/ObjectUI.py:596
-#: flatcamTools/ToolCutOut.py:440
-msgid "Cutout Tool"
-msgstr "Ferramenta de Recorte"
-
-#: flatcamGUI/FlatCAMGUI.py:922 flatcamGUI/FlatCAMGUI.py:2626
-#: flatcamGUI/ObjectUI.py:574 flatcamGUI/ObjectUI.py:2157
-#: flatcamTools/ToolNCC.py:974
-msgid "NCC Tool"
-msgstr "Ferramenta NCC"
-
-#: flatcamGUI/FlatCAMGUI.py:928 flatcamGUI/FlatCAMGUI.py:2632
-msgid "Panel Tool"
-msgstr "Ferramenta de Painel"
-
-#: flatcamGUI/FlatCAMGUI.py:930 flatcamGUI/FlatCAMGUI.py:2634
-#: flatcamTools/ToolFilm.py:586
-msgid "Film Tool"
-msgstr "Ferramenta de Filme"
-
-#: flatcamGUI/FlatCAMGUI.py:932 flatcamGUI/FlatCAMGUI.py:2636
-#: flatcamTools/ToolSolderPaste.py:553
-msgid "SolderPaste Tool"
-msgstr "Ferramenta Pasta de Solda"
-
-#: flatcamGUI/FlatCAMGUI.py:934 flatcamGUI/FlatCAMGUI.py:2638
-#: flatcamTools/ToolSub.py:35
-msgid "Subtract Tool"
-msgstr "Ferramenta Subtrair"
-
-#: flatcamGUI/FlatCAMGUI.py:936 flatcamGUI/FlatCAMGUI.py:2640
-#: flatcamTools/ToolRulesCheck.py:616
-msgid "Rules Tool"
-msgstr "Ferramenta de Regras"
-
-#: flatcamGUI/FlatCAMGUI.py:938 flatcamGUI/FlatCAMGUI.py:1743
-#: flatcamGUI/FlatCAMGUI.py:2642 flatcamTools/ToolOptimal.py:33
-#: flatcamTools/ToolOptimal.py:307
-msgid "Optimal Tool"
-msgstr "Ferramenta Ideal"
-
-#: flatcamGUI/FlatCAMGUI.py:943 flatcamGUI/FlatCAMGUI.py:1740
-#: flatcamGUI/FlatCAMGUI.py:2647
-msgid "Calculators Tool"
-msgstr "Calculadoras"
-
-#: flatcamGUI/FlatCAMGUI.py:947 flatcamGUI/FlatCAMGUI.py:1744
-#: flatcamGUI/FlatCAMGUI.py:2651 flatcamTools/ToolQRCode.py:43
-#: flatcamTools/ToolQRCode.py:382
-msgid "QRCode Tool"
-msgstr "Ferramenta de QRCode"
-
-#: flatcamGUI/FlatCAMGUI.py:949 flatcamGUI/FlatCAMGUI.py:2653
-#: flatcamTools/ToolCopperThieving.py:39 flatcamTools/ToolCopperThieving.py:568
-msgid "Copper Thieving Tool"
-msgstr "Ferramenta de Adição de Cobre"
-
-#: flatcamGUI/FlatCAMGUI.py:952 flatcamGUI/FlatCAMGUI.py:1741
-#: flatcamGUI/FlatCAMGUI.py:2656 flatcamTools/ToolFiducials.py:33
-#: flatcamTools/ToolFiducials.py:395
-msgid "Fiducials Tool"
-msgstr "Ferramenta de Fiduciais"
-
-#: flatcamGUI/FlatCAMGUI.py:954 flatcamGUI/FlatCAMGUI.py:2658
-#: flatcamTools/ToolCalibration.py:37 flatcamTools/ToolCalibration.py:759
-msgid "Calibration Tool"
-msgstr "Calibração"
-
-#: flatcamGUI/FlatCAMGUI.py:956 flatcamGUI/FlatCAMGUI.py:1741
-#: flatcamGUI/FlatCAMGUI.py:2660
-msgid "Punch Gerber Tool"
-msgstr "Ferramenta Socar Gerber"
-
-#: flatcamGUI/FlatCAMGUI.py:958 flatcamGUI/FlatCAMGUI.py:2662
-#: flatcamTools/ToolInvertGerber.py:31
-msgid "Invert Gerber Tool"
-msgstr "Ferramenta Inverter Gerber"
-
-#: flatcamGUI/FlatCAMGUI.py:964 flatcamGUI/FlatCAMGUI.py:990
-#: flatcamGUI/FlatCAMGUI.py:1042 flatcamGUI/FlatCAMGUI.py:2668
-#: flatcamGUI/FlatCAMGUI.py:2746
-msgid "Select"
-msgstr "Selecionar"
-
-#: flatcamGUI/FlatCAMGUI.py:966 flatcamGUI/FlatCAMGUI.py:2670
-msgid "Add Drill Hole"
-msgstr "Adicionar Furo"
-
-#: flatcamGUI/FlatCAMGUI.py:968 flatcamGUI/FlatCAMGUI.py:2672
-msgid "Add Drill Hole Array"
-msgstr "Adicionar Matriz do Furos"
-
-#: flatcamGUI/FlatCAMGUI.py:970 flatcamGUI/FlatCAMGUI.py:2020
-#: flatcamGUI/FlatCAMGUI.py:2273 flatcamGUI/FlatCAMGUI.py:2676
-msgid "Add Slot"
-msgstr "Adicionar Ranhura"
-
-#: flatcamGUI/FlatCAMGUI.py:972 flatcamGUI/FlatCAMGUI.py:2019
-#: flatcamGUI/FlatCAMGUI.py:2275 flatcamGUI/FlatCAMGUI.py:2678
-msgid "Add Slot Array"
-msgstr "Adicionar Matriz de Ranhuras"
-
-#: flatcamGUI/FlatCAMGUI.py:974 flatcamGUI/FlatCAMGUI.py:2278
-#: flatcamGUI/FlatCAMGUI.py:2674
-msgid "Resize Drill"
-msgstr "Redimensionar Furo"
-
-#: flatcamGUI/FlatCAMGUI.py:978 flatcamGUI/FlatCAMGUI.py:2682
-msgid "Copy Drill"
-msgstr "Copiar Furo"
-
-#: flatcamGUI/FlatCAMGUI.py:980 flatcamGUI/FlatCAMGUI.py:2684
-msgid "Delete Drill"
-msgstr "Excluir Furo"
-
-#: flatcamGUI/FlatCAMGUI.py:984 flatcamGUI/FlatCAMGUI.py:2688
-msgid "Move Drill"
-msgstr "Mover Furo"
-
-#: flatcamGUI/FlatCAMGUI.py:992 flatcamGUI/FlatCAMGUI.py:2696
-msgid "Add Circle"
-msgstr "Adicionar Círculo"
-
-#: flatcamGUI/FlatCAMGUI.py:994 flatcamGUI/FlatCAMGUI.py:2698
-msgid "Add Arc"
-msgstr "Adicionar Arco"
-
-#: flatcamGUI/FlatCAMGUI.py:996 flatcamGUI/FlatCAMGUI.py:2700
-msgid "Add Rectangle"
-msgstr "Adicionar Retângulo"
-
-#: flatcamGUI/FlatCAMGUI.py:1000 flatcamGUI/FlatCAMGUI.py:2704
-msgid "Add Path"
-msgstr "Adicionar Caminho"
-
-#: flatcamGUI/FlatCAMGUI.py:1002 flatcamGUI/FlatCAMGUI.py:2706
-msgid "Add Polygon"
-msgstr "Adicionar Polígono"
-
-#: flatcamGUI/FlatCAMGUI.py:1005 flatcamGUI/FlatCAMGUI.py:2709
-msgid "Add Text"
-msgstr "Adicionar Texto"
-
-#: flatcamGUI/FlatCAMGUI.py:1007 flatcamGUI/FlatCAMGUI.py:2711
-msgid "Add Buffer"
-msgstr "Adicionar Buffer"
-
-#: flatcamGUI/FlatCAMGUI.py:1009 flatcamGUI/FlatCAMGUI.py:2713
-msgid "Paint Shape"
-msgstr "Pintar Forma"
-
-#: flatcamGUI/FlatCAMGUI.py:1011 flatcamGUI/FlatCAMGUI.py:1068
-#: flatcamGUI/FlatCAMGUI.py:2214 flatcamGUI/FlatCAMGUI.py:2259
-#: flatcamGUI/FlatCAMGUI.py:2715 flatcamGUI/FlatCAMGUI.py:2771
-msgid "Eraser"
-msgstr "Borracha"
-
-#: flatcamGUI/FlatCAMGUI.py:1015 flatcamGUI/FlatCAMGUI.py:2719
-msgid "Polygon Union"
-msgstr "União de Polígonos"
-
-#: flatcamGUI/FlatCAMGUI.py:1017 flatcamGUI/FlatCAMGUI.py:2721
-msgid "Polygon Explode"
-msgstr "Explosão de Polígonos"
-
-#: flatcamGUI/FlatCAMGUI.py:1020 flatcamGUI/FlatCAMGUI.py:2724
-msgid "Polygon Intersection"
-msgstr "Interseção de Polígonos"
-
-#: flatcamGUI/FlatCAMGUI.py:1022 flatcamGUI/FlatCAMGUI.py:2726
-msgid "Polygon Subtraction"
-msgstr "Subtração de Polígonos"
-
-#: flatcamGUI/FlatCAMGUI.py:1026 flatcamGUI/FlatCAMGUI.py:2730
-msgid "Cut Path"
-msgstr "Caminho de Corte"
-
-#: flatcamGUI/FlatCAMGUI.py:1028
-msgid "Copy Shape(s)"
-msgstr "Copiar Forma(s)"
-
-#: flatcamGUI/FlatCAMGUI.py:1031
-msgid "Delete Shape '-'"
-msgstr "Excluir Forma '-'"
-
-#: flatcamGUI/FlatCAMGUI.py:1033 flatcamGUI/FlatCAMGUI.py:1076
-#: flatcamGUI/FlatCAMGUI.py:2226 flatcamGUI/FlatCAMGUI.py:2263
-#: flatcamGUI/FlatCAMGUI.py:2736 flatcamGUI/FlatCAMGUI.py:2779
-#: flatcamGUI/ObjectUI.py:109
-msgid "Transformations"
-msgstr "Transformações"
-
-#: flatcamGUI/FlatCAMGUI.py:1036
-msgid "Move Objects "
-msgstr "Mover Objetos "
-
-#: flatcamGUI/FlatCAMGUI.py:1044 flatcamGUI/FlatCAMGUI.py:2139
-#: flatcamGUI/FlatCAMGUI.py:2748
-msgid "Add Pad"
-msgstr "Adicionar Pad"
-
-#: flatcamGUI/FlatCAMGUI.py:1048 flatcamGUI/FlatCAMGUI.py:2140
-#: flatcamGUI/FlatCAMGUI.py:2752
-msgid "Add Track"
-msgstr "Adicionar Trilha"
-
-#: flatcamGUI/FlatCAMGUI.py:1050 flatcamGUI/FlatCAMGUI.py:2139
-#: flatcamGUI/FlatCAMGUI.py:2754
-msgid "Add Region"
-msgstr "Adicionar Região"
-
-#: flatcamGUI/FlatCAMGUI.py:1052 flatcamGUI/FlatCAMGUI.py:2245
-#: flatcamGUI/FlatCAMGUI.py:2756
-msgid "Poligonize"
-msgstr "Poligonizar"
-
-#: flatcamGUI/FlatCAMGUI.py:1055 flatcamGUI/FlatCAMGUI.py:2247
-#: flatcamGUI/FlatCAMGUI.py:2759
-msgid "SemiDisc"
-msgstr "SemiDisco"
-
-#: flatcamGUI/FlatCAMGUI.py:1057 flatcamGUI/FlatCAMGUI.py:2249
-#: flatcamGUI/FlatCAMGUI.py:2761
-msgid "Disc"
-msgstr "Disco"
-
-#: flatcamGUI/FlatCAMGUI.py:1065 flatcamGUI/FlatCAMGUI.py:2257
-#: flatcamGUI/FlatCAMGUI.py:2769
-msgid "Mark Area"
-msgstr "Marcar Área"
-
-#: flatcamGUI/FlatCAMGUI.py:1079 flatcamGUI/FlatCAMGUI.py:2139
-#: flatcamGUI/FlatCAMGUI.py:2230 flatcamGUI/FlatCAMGUI.py:2293
-#: flatcamGUI/FlatCAMGUI.py:2782 flatcamTools/ToolMove.py:27
-msgid "Move"
-msgstr "Mover"
-
-#: flatcamGUI/FlatCAMGUI.py:1087 flatcamGUI/FlatCAMGUI.py:2791
-msgid "Snap to grid"
-msgstr "Encaixar na Grade"
-
-#: flatcamGUI/FlatCAMGUI.py:1090 flatcamGUI/FlatCAMGUI.py:2794
-msgid "Grid X snapping distance"
-msgstr "Distância de encaixe Grade X"
-
-#: flatcamGUI/FlatCAMGUI.py:1095 flatcamGUI/FlatCAMGUI.py:2799
-msgid "Grid Y snapping distance"
-msgstr "Distância de encaixe Grade Y"
-
-#: flatcamGUI/FlatCAMGUI.py:1101 flatcamGUI/FlatCAMGUI.py:2805
-msgid ""
-"When active, value on Grid_X\n"
-"is copied to the Grid_Y value."
-msgstr ""
-"Quando ativo, o valor em Grid_X\n"
-"é copiado para o valor Grid_Y."
-
-#: flatcamGUI/FlatCAMGUI.py:1108 flatcamGUI/FlatCAMGUI.py:2812
-msgid "Snap to corner"
-msgstr "Encaixar no canto"
-
-#: flatcamGUI/FlatCAMGUI.py:1112 flatcamGUI/FlatCAMGUI.py:2816
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:78
-msgid "Max. magnet distance"
-msgstr "Distância magnética max."
-
-#: flatcamGUI/FlatCAMGUI.py:1149
-msgid "Selected"
-msgstr "Selecionado"
-
-#: flatcamGUI/FlatCAMGUI.py:1177 flatcamGUI/FlatCAMGUI.py:1185
-msgid "Plot Area"
-msgstr "Área de Gráfico"
-
-#: flatcamGUI/FlatCAMGUI.py:1212
-msgid "General"
-msgstr "Geral"
-
-#: flatcamGUI/FlatCAMGUI.py:1227 flatcamTools/ToolCopperThieving.py:74
-#: flatcamTools/ToolDblSided.py:64 flatcamTools/ToolExtractDrills.py:61
-#: flatcamTools/ToolInvertGerber.py:72 flatcamTools/ToolOptimal.py:71
-#: flatcamTools/ToolPunchGerber.py:64
-msgid "GERBER"
-msgstr "Gerber"
-
-#: flatcamGUI/FlatCAMGUI.py:1237 flatcamTools/ToolDblSided.py:92
-msgid "EXCELLON"
-msgstr "Excellon"
-
-#: flatcamGUI/FlatCAMGUI.py:1247 flatcamTools/ToolDblSided.py:120
-msgid "GEOMETRY"
-msgstr "Geometria"
-
-#: flatcamGUI/FlatCAMGUI.py:1257
-msgid "CNC-JOB"
-msgstr "Trabalho CNC"
-
-#: flatcamGUI/FlatCAMGUI.py:1266 flatcamGUI/ObjectUI.py:563
-#: flatcamGUI/ObjectUI.py:2132
-msgid "TOOLS"
-msgstr "Ferramentas"
-
-#: flatcamGUI/FlatCAMGUI.py:1275
-msgid "TOOLS 2"
-msgstr "Ferramentas 2"
-
-#: flatcamGUI/FlatCAMGUI.py:1285
-msgid "UTILITIES"
-msgstr "Utilitários"
-
-#: flatcamGUI/FlatCAMGUI.py:1302
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:192
-msgid "Restore Defaults"
-msgstr "Restaurar padrões"
-
-#: flatcamGUI/FlatCAMGUI.py:1305
-msgid ""
-"Restore the entire set of default values\n"
-"to the initial values loaded after first launch."
-msgstr ""
-"Restaurar todo o conjunto de valores padrão\n"
-"para os valores iniciais carregados após o primeiro lançamento."
-
-#: flatcamGUI/FlatCAMGUI.py:1310
-msgid "Open Pref Folder"
-msgstr "Abrir a Pasta Pref"
-
-#: flatcamGUI/FlatCAMGUI.py:1313
-msgid "Open the folder where FlatCAM save the preferences files."
-msgstr "Abre a pasta onde o FlatCAM salva os arquivos de preferências."
-
-#: flatcamGUI/FlatCAMGUI.py:1317 flatcamGUI/FlatCAMGUI.py:2517
-msgid "Clear GUI Settings"
-msgstr "Limpar Config. da GUI"
-
-#: flatcamGUI/FlatCAMGUI.py:1321
-msgid ""
-"Clear the GUI settings for FlatCAM,\n"
-"such as: layout, gui state, style, hdpi support etc."
-msgstr ""
-"Limpa as configurações da GUI para FlatCAM,\n"
-"como: layout, estado de gui, estilo, suporte a HDPI etc."
-
-#: flatcamGUI/FlatCAMGUI.py:1332
-msgid "Apply"
-msgstr "Aplicar"
-
-#: flatcamGUI/FlatCAMGUI.py:1335
-msgid "Apply the current preferences without saving to a file."
-msgstr "Aplica as preferências atuais sem salvar em um arquivo."
-
-#: flatcamGUI/FlatCAMGUI.py:1342
-msgid ""
-"Save the current settings in the 'current_defaults' file\n"
-"which is the file storing the working default preferences."
-msgstr ""
-"Salva as configurações atuais no arquivo 'current_defaults'\n"
-"que armazena as preferências padrão de trabalho."
-
-#: flatcamGUI/FlatCAMGUI.py:1350
-msgid "Will not save the changes and will close the preferences window."
-msgstr "Não salvará as alterações e fechará a janela de preferências."
-
-#: flatcamGUI/FlatCAMGUI.py:1719
-msgid "SHOW SHORTCUT LIST"
-msgstr "Mostra Lista de Teclas de Atalho"
-
-#: flatcamGUI/FlatCAMGUI.py:1719
-msgid "Switch to Project Tab"
-msgstr "Alterna para a Aba Projeto"
-
-#: flatcamGUI/FlatCAMGUI.py:1719
-msgid "Switch to Selected Tab"
-msgstr "Alterna para a Aba Selecionado"
-
-#: flatcamGUI/FlatCAMGUI.py:1720
-msgid "Switch to Tool Tab"
-msgstr "Alterna para a Aba Ferramentas"
-
-#: flatcamGUI/FlatCAMGUI.py:1721
-msgid "New Gerber"
-msgstr "Novo Gerber"
-
-#: flatcamGUI/FlatCAMGUI.py:1721
-msgid "Edit Object (if selected)"
-msgstr "Editar Objeto (se selecionado)"
-
-#: flatcamGUI/FlatCAMGUI.py:1721
-msgid "Jump to Coordinates"
-msgstr "Ir para a Coordenada"
-
-#: flatcamGUI/FlatCAMGUI.py:1722
-msgid "New Excellon"
-msgstr "Novo Excellon"
-
-#: flatcamGUI/FlatCAMGUI.py:1722
-msgid "Move Obj"
-msgstr "Mover Obj"
-
-#: flatcamGUI/FlatCAMGUI.py:1722
-msgid "New Geometry"
-msgstr "Nova Geometria"
-
-#: flatcamGUI/FlatCAMGUI.py:1722
-msgid "Change Units"
-msgstr "Alternar Unidades"
-
-#: flatcamGUI/FlatCAMGUI.py:1723
-msgid "Open Properties Tool"
-msgstr "Abre Ferramenta Propriedades"
-
-#: flatcamGUI/FlatCAMGUI.py:1723
-msgid "Rotate by 90 degree CW"
-msgstr "Girar 90º sentido horário"
-
-#: flatcamGUI/FlatCAMGUI.py:1723
-msgid "Shell Toggle"
-msgstr "Alterna Linha de Comando"
-
-#: flatcamGUI/FlatCAMGUI.py:1724
-msgid ""
-"Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)"
-msgstr ""
-"Adicionar uma ferramenta (quando estiver na Aba Selecionado ou em "
-"Ferramentas NCC ou de Pintura)"
-
-#: flatcamGUI/FlatCAMGUI.py:1725
-msgid "Flip on X_axis"
-msgstr "Espelhar no Eixo X"
-
-#: flatcamGUI/FlatCAMGUI.py:1725
-msgid "Flip on Y_axis"
-msgstr "Espelhar no Eixo Y"
-
-#: flatcamGUI/FlatCAMGUI.py:1728
-msgid "Copy Obj"
-msgstr "Copiar Obj"
-
-#: flatcamGUI/FlatCAMGUI.py:1728
-msgid "Open Tools Database"
-msgstr "Abre Banco de Dados de Ferramentas"
-
-#: flatcamGUI/FlatCAMGUI.py:1729
-msgid "Open Excellon File"
-msgstr "Abrir Excellon"
-
-#: flatcamGUI/FlatCAMGUI.py:1729
-msgid "Open Gerber File"
-msgstr "Abrir Gerber"
-
-#: flatcamGUI/FlatCAMGUI.py:1729
-msgid "New Project"
-msgstr "Novo Projeto"
-
-#: flatcamGUI/FlatCAMGUI.py:1730 flatcamTools/ToolPDF.py:42
-msgid "PDF Import Tool"
-msgstr "Ferramenta de Importação de PDF"
-
-#: flatcamGUI/FlatCAMGUI.py:1730
-msgid "Save Project"
-msgstr "Salvar Projeto"
-
-#: flatcamGUI/FlatCAMGUI.py:1730
-msgid "Toggle Plot Area"
-msgstr "Alternar Área de Gráficos"
-
-#: flatcamGUI/FlatCAMGUI.py:1733
-msgid "Copy Obj_Name"
-msgstr "Copiar Obj_Name"
-
-#: flatcamGUI/FlatCAMGUI.py:1734
-msgid "Toggle Code Editor"
-msgstr "Alternar o Editor de Códigos"
-
-#: flatcamGUI/FlatCAMGUI.py:1734
-msgid "Toggle the axis"
-msgstr "Alternar o Eixo"
-
-#: flatcamGUI/FlatCAMGUI.py:1734 flatcamGUI/FlatCAMGUI.py:1933
-#: flatcamGUI/FlatCAMGUI.py:2020 flatcamGUI/FlatCAMGUI.py:2142
-msgid "Distance Minimum Tool"
-msgstr "Ferramenta Distância Mínima"
-
-#: flatcamGUI/FlatCAMGUI.py:1735
-msgid "Open Preferences Window"
-msgstr "Abrir Preferências"
-
-#: flatcamGUI/FlatCAMGUI.py:1736
-msgid "Rotate by 90 degree CCW"
-msgstr "Girar 90° sentido anti-horário"
-
-#: flatcamGUI/FlatCAMGUI.py:1736
-msgid "Run a Script"
-msgstr "Executar um Script"
-
-#: flatcamGUI/FlatCAMGUI.py:1736
-msgid "Toggle the workspace"
-msgstr "Alternar Área de Trabalho"
-
-#: flatcamGUI/FlatCAMGUI.py:1736
-msgid "Skew on X axis"
-msgstr "Inclinação no eixo X"
-
-#: flatcamGUI/FlatCAMGUI.py:1737
-msgid "Skew on Y axis"
-msgstr "Inclinação no eixo Y"
-
-#: flatcamGUI/FlatCAMGUI.py:1740
-msgid "2-Sided PCB Tool"
-msgstr "PCB 2 Faces"
-
-#: flatcamGUI/FlatCAMGUI.py:1740
-msgid "Transformations Tool"
-msgstr "Transformações"
-
-#: flatcamGUI/FlatCAMGUI.py:1742
-msgid "Solder Paste Dispensing Tool"
-msgstr "Pasta de Solda"
-
-#: flatcamGUI/FlatCAMGUI.py:1743
-msgid "Film PCB Tool"
-msgstr "Ferramenta de Filme PCB"
-
-#: flatcamGUI/FlatCAMGUI.py:1743
-msgid "Non-Copper Clearing Tool"
-msgstr "Área Sem Cobre (NCC)"
-
-#: flatcamGUI/FlatCAMGUI.py:1744
-msgid "Paint Area Tool"
-msgstr "Área de Pintura"
-
-#: flatcamGUI/FlatCAMGUI.py:1744
-msgid "Rules Check Tool"
-msgstr "Ferramenta de Verificação de Regras"
-
-#: flatcamGUI/FlatCAMGUI.py:1745
-msgid "View File Source"
-msgstr "Ver Arquivo Fonte"
-
-#: flatcamGUI/FlatCAMGUI.py:1746
-msgid "Cutout PCB Tool"
-msgstr "Ferramenta de Recorte"
-
-#: flatcamGUI/FlatCAMGUI.py:1746
-msgid "Enable all Plots"
-msgstr "Habilitar todos os Gráficos"
-
-#: flatcamGUI/FlatCAMGUI.py:1746
-msgid "Disable all Plots"
-msgstr "Desabilitar todos os Gráficos"
-
-#: flatcamGUI/FlatCAMGUI.py:1746
-msgid "Disable Non-selected Plots"
-msgstr "Desabilitar os gráficos não selecionados"
-
-#: flatcamGUI/FlatCAMGUI.py:1747
-msgid "Toggle Full Screen"
-msgstr "Alternar Tela Cheia"
-
-#: flatcamGUI/FlatCAMGUI.py:1750
-msgid "Abort current task (gracefully)"
-msgstr "Abortar a tarefa atual (normalmente)"
-
-#: flatcamGUI/FlatCAMGUI.py:1753
-msgid "Save Project As"
-msgstr "Salvar Projeto Como"
-
-#: flatcamGUI/FlatCAMGUI.py:1754
-msgid ""
-"Paste Special. Will convert a Windows path style to the one required in Tcl "
-"Shell"
-msgstr ""
-"Colar Especial. Converterá um estilo de caminho do Windows para o exigido na "
-"Linha de Comando Tcl"
-
-#: flatcamGUI/FlatCAMGUI.py:1757
-msgid "Open Online Manual"
-msgstr "Abrir Manual Online"
-
-#: flatcamGUI/FlatCAMGUI.py:1758
-msgid "Open Online Tutorials"
-msgstr "Abrir Tutoriais Online"
-
-#: flatcamGUI/FlatCAMGUI.py:1758
-msgid "Refresh Plots"
-msgstr "Atualizar Gráfico"
-
-#: flatcamGUI/FlatCAMGUI.py:1758 flatcamTools/ToolSolderPaste.py:509
-msgid "Delete Object"
-msgstr "Excluir Objeto"
-
-#: flatcamGUI/FlatCAMGUI.py:1758
-msgid "Alternate: Delete Tool"
-msgstr "Alternativo: Excluir Ferramenta"
-
-#: flatcamGUI/FlatCAMGUI.py:1759
-msgid "(left to Key_1)Toggle Notebook Area (Left Side)"
-msgstr "(esquerda da Tecla_1) Alterna Área do Bloco de Notas (lado esquerdo)"
-
-#: flatcamGUI/FlatCAMGUI.py:1759
-msgid "En(Dis)able Obj Plot"
-msgstr "Des(h)abilitar Gráfico"
-
-#: flatcamGUI/FlatCAMGUI.py:1760
-msgid "Deselects all objects"
-msgstr "Desmarca todos os objetos"
-
-#: flatcamGUI/FlatCAMGUI.py:1774
-msgid "Editor Shortcut list"
-msgstr "Lista de Teclas de Atalho"
-
-#: flatcamGUI/FlatCAMGUI.py:1928
-msgid "GEOMETRY EDITOR"
-msgstr "Editor de Geometria"
-
-#: flatcamGUI/FlatCAMGUI.py:1928
-msgid "Draw an Arc"
-msgstr "Desenha um Arco"
-
-#: flatcamGUI/FlatCAMGUI.py:1928
-msgid "Copy Geo Item"
-msgstr "Copiar Geo"
-
-#: flatcamGUI/FlatCAMGUI.py:1929
-msgid "Within Add Arc will toogle the ARC direction: CW or CCW"
-msgstr "Em Adicionar Arco, alterna o sentido: horário ou anti-horário"
-
-#: flatcamGUI/FlatCAMGUI.py:1929
-msgid "Polygon Intersection Tool"
-msgstr "Interseção de Polígonos"
-
-#: flatcamGUI/FlatCAMGUI.py:1930
-msgid "Geo Paint Tool"
-msgstr "Ferramenta de Pintura"
-
-#: flatcamGUI/FlatCAMGUI.py:1930 flatcamGUI/FlatCAMGUI.py:2019
-#: flatcamGUI/FlatCAMGUI.py:2139
-msgid "Jump to Location (x, y)"
-msgstr "Ir para a Localização (x, y)"
-
-#: flatcamGUI/FlatCAMGUI.py:1930
-msgid "Toggle Corner Snap"
-msgstr "Alternar Encaixe de Canto"
-
-#: flatcamGUI/FlatCAMGUI.py:1930
-msgid "Move Geo Item"
-msgstr "Mover Geometria"
-
-#: flatcamGUI/FlatCAMGUI.py:1931
-msgid "Within Add Arc will cycle through the ARC modes"
-msgstr "Em Adicionar Arco, alterna o tipo de arco"
-
-#: flatcamGUI/FlatCAMGUI.py:1931
-msgid "Draw a Polygon"
-msgstr "Desenha um Polígono"
-
-#: flatcamGUI/FlatCAMGUI.py:1931
-msgid "Draw a Circle"
-msgstr "Desenha um Círculo"
-
-#: flatcamGUI/FlatCAMGUI.py:1932
-msgid "Draw a Path"
-msgstr "Desenha um Caminho"
-
-#: flatcamGUI/FlatCAMGUI.py:1932
-msgid "Draw Rectangle"
-msgstr "Desenha um Retângulo"
-
-#: flatcamGUI/FlatCAMGUI.py:1932
-msgid "Polygon Subtraction Tool"
-msgstr "Ferram. de Subtração de Polígono"
-
-#: flatcamGUI/FlatCAMGUI.py:1932
-msgid "Add Text Tool"
-msgstr "Ferramenta de Texto"
-
-#: flatcamGUI/FlatCAMGUI.py:1933
-msgid "Polygon Union Tool"
-msgstr "União de Polígonos"
-
-#: flatcamGUI/FlatCAMGUI.py:1933
-msgid "Flip shape on X axis"
-msgstr "Espelhar no Eixo X"
-
-#: flatcamGUI/FlatCAMGUI.py:1933
-msgid "Flip shape on Y axis"
-msgstr "Espelhar no Eixo Y"
-
-#: flatcamGUI/FlatCAMGUI.py:1934
-msgid "Skew shape on X axis"
-msgstr "Inclinação no eixo X"
-
-#: flatcamGUI/FlatCAMGUI.py:1934
-msgid "Skew shape on Y axis"
-msgstr "Inclinação no eixo Y"
-
-#: flatcamGUI/FlatCAMGUI.py:1934
-msgid "Editor Transformation Tool"
-msgstr "Ferramenta Transformar"
-
-#: flatcamGUI/FlatCAMGUI.py:1935
-msgid "Offset shape on X axis"
-msgstr "Deslocamento no eixo X"
-
-#: flatcamGUI/FlatCAMGUI.py:1935
-msgid "Offset shape on Y axis"
-msgstr "Deslocamento no eixo Y"
-
-#: flatcamGUI/FlatCAMGUI.py:1936 flatcamGUI/FlatCAMGUI.py:2022
-#: flatcamGUI/FlatCAMGUI.py:2144
-msgid "Save Object and Exit Editor"
-msgstr "Salvar Objeto e Fechar o Editor"
-
-#: flatcamGUI/FlatCAMGUI.py:1936
-msgid "Polygon Cut Tool"
-msgstr "Corte de Polígonos"
-
-#: flatcamGUI/FlatCAMGUI.py:1937
-msgid "Rotate Geometry"
-msgstr "Girar Geometria"
-
-#: flatcamGUI/FlatCAMGUI.py:1937
-msgid "Finish drawing for certain tools"
-msgstr "Concluir desenho para certas ferramentas"
-
-#: flatcamGUI/FlatCAMGUI.py:1937 flatcamGUI/FlatCAMGUI.py:2022
-#: flatcamGUI/FlatCAMGUI.py:2142
-msgid "Abort and return to Select"
-msgstr "Abortar e retornar à Seleção"
-
-#: flatcamGUI/FlatCAMGUI.py:1938 flatcamGUI/FlatCAMGUI.py:2734
-msgid "Delete Shape"
-msgstr "Excluir Forma"
-
-#: flatcamGUI/FlatCAMGUI.py:2018
-msgid "EXCELLON EDITOR"
-msgstr "Editor Excellon"
-
-#: flatcamGUI/FlatCAMGUI.py:2018
-msgid "Copy Drill(s)"
-msgstr "Copiar Furo(s)"
-
-#: flatcamGUI/FlatCAMGUI.py:2018 flatcamGUI/FlatCAMGUI.py:2268
-msgid "Add Drill"
-msgstr "Adicionar Furo"
-
-#: flatcamGUI/FlatCAMGUI.py:2019
-msgid "Move Drill(s)"
-msgstr "Mover Furo(s)"
-
-#: flatcamGUI/FlatCAMGUI.py:2020
-msgid "Add a new Tool"
-msgstr "Adicionar Ferramenta"
-
-#: flatcamGUI/FlatCAMGUI.py:2021
-msgid "Delete Drill(s)"
-msgstr "Excluir Furo(s)"
-
-#: flatcamGUI/FlatCAMGUI.py:2021
-msgid "Alternate: Delete Tool(s)"
-msgstr "Alternativo: Excluir Ferramenta(s)"
-
-#: flatcamGUI/FlatCAMGUI.py:2138
-msgid "GERBER EDITOR"
-msgstr "Editor Gerber"
-
-#: flatcamGUI/FlatCAMGUI.py:2138
-msgid "Add Disc"
-msgstr "Adicionar Disco"
-
-#: flatcamGUI/FlatCAMGUI.py:2138
-msgid "Add SemiDisc"
-msgstr "Adicionar SemiDisco"
-
-#: flatcamGUI/FlatCAMGUI.py:2140
-msgid "Within Track & Region Tools will cycle in REVERSE the bend modes"
-msgstr ""
-"Nas Ferramentas de Trilha e Região, alternará REVERSAMENTE entre os modos"
-
-#: flatcamGUI/FlatCAMGUI.py:2141
-msgid "Within Track & Region Tools will cycle FORWARD the bend modes"
-msgstr ""
-"Nas Ferramentas de Trilha e Região, alternará para frente entre os modos"
-
-#: flatcamGUI/FlatCAMGUI.py:2142
-msgid "Alternate: Delete Apertures"
-msgstr "Alternativo: Excluir Abertura"
-
-#: flatcamGUI/FlatCAMGUI.py:2143
-msgid "Eraser Tool"
-msgstr "Ferramenta Apagar"
-
-#: flatcamGUI/FlatCAMGUI.py:2144
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:220
-msgid "Mark Area Tool"
-msgstr "Marcar Área"
-
-#: flatcamGUI/FlatCAMGUI.py:2144
-msgid "Poligonize Tool"
-msgstr "Poligonizar"
-
-#: flatcamGUI/FlatCAMGUI.py:2144
-msgid "Transformation Tool"
-msgstr "Ferramenta Transformação"
-
-#: flatcamGUI/FlatCAMGUI.py:2161
-msgid "Toggle Visibility"
-msgstr "Alternar Visibilidade"
-
-#: flatcamGUI/FlatCAMGUI.py:2167
-msgid "New"
-msgstr "Novo"
-
-#: flatcamGUI/FlatCAMGUI.py:2169 flatcamGUI/ObjectUI.py:450
-#: flatcamObjects/FlatCAMGerber.py:239 flatcamObjects/FlatCAMGerber.py:327
-#: flatcamTools/ToolCalibration.py:631 flatcamTools/ToolCalibration.py:648
-#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144
-#: flatcamTools/ToolCopperThieving.py:158
-#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolCutOut.py:92
-#: flatcamTools/ToolDblSided.py:226 flatcamTools/ToolFilm.py:69
-#: flatcamTools/ToolFilm.py:102 flatcamTools/ToolFilm.py:549
-#: flatcamTools/ToolFilm.py:557 flatcamTools/ToolImage.py:49
-#: flatcamTools/ToolImage.py:271 flatcamTools/ToolNCC.py:95
-#: flatcamTools/ToolNCC.py:558 flatcamTools/ToolNCC.py:1300
-#: flatcamTools/ToolPaint.py:502 flatcamTools/ToolPaint.py:706
-#: flatcamTools/ToolPanelize.py:118 flatcamTools/ToolPanelize.py:374
-#: flatcamTools/ToolPanelize.py:391
-msgid "Geometry"
-msgstr "Geometria"
-
-#: flatcamGUI/FlatCAMGUI.py:2173
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:99
-#: flatcamTools/ToolAlignObjects.py:74 flatcamTools/ToolAlignObjects.py:110
-#: flatcamTools/ToolCalibration.py:197 flatcamTools/ToolCalibration.py:631
-#: flatcamTools/ToolCalibration.py:648 flatcamTools/ToolCalibration.py:807
-#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144
-#: flatcamTools/ToolCopperThieving.py:158
-#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolDblSided.py:225
-#: flatcamTools/ToolFilm.py:359 flatcamTools/ToolNCC.py:558
-#: flatcamTools/ToolNCC.py:1300 flatcamTools/ToolPaint.py:502
-#: flatcamTools/ToolPaint.py:706 flatcamTools/ToolPanelize.py:374
-#: flatcamTools/ToolPunchGerber.py:149 flatcamTools/ToolPunchGerber.py:164
-msgid "Excellon"
-msgstr "Excellon"
-
-#: flatcamGUI/FlatCAMGUI.py:2180
-msgid "Grids"
-msgstr "Grades"
-
-#: flatcamGUI/FlatCAMGUI.py:2187
-msgid "Clear Plot"
-msgstr "Limpar Gráfico"
-
-#: flatcamGUI/FlatCAMGUI.py:2189
-msgid "Replot"
-msgstr "Redesenhar"
-
-#: flatcamGUI/FlatCAMGUI.py:2193
-msgid "Geo Editor"
-msgstr "Editor de Geometria"
-
-#: flatcamGUI/FlatCAMGUI.py:2195
-msgid "Path"
-msgstr "Caminho"
-
-#: flatcamGUI/FlatCAMGUI.py:2197
-msgid "Rectangle"
-msgstr "Retângulo"
-
-#: flatcamGUI/FlatCAMGUI.py:2200
-msgid "Circle"
-msgstr "Círculo"
-
-#: flatcamGUI/FlatCAMGUI.py:2204
-msgid "Arc"
-msgstr "Arco"
-
-#: flatcamGUI/FlatCAMGUI.py:2218
-msgid "Union"
-msgstr "União"
-
-#: flatcamGUI/FlatCAMGUI.py:2220
-msgid "Intersection"
-msgstr "Interseção"
-
-#: flatcamGUI/FlatCAMGUI.py:2222
-msgid "Subtraction"
-msgstr "Substração"
-
-#: flatcamGUI/FlatCAMGUI.py:2224 flatcamGUI/ObjectUI.py:2221
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:56
-msgid "Cut"
-msgstr "Cortar"
-
-#: flatcamGUI/FlatCAMGUI.py:2235
-msgid "Pad"
-msgstr "Pad"
-
-#: flatcamGUI/FlatCAMGUI.py:2237
-msgid "Pad Array"
-msgstr "Matriz de Pads"
-
-#: flatcamGUI/FlatCAMGUI.py:2241
-msgid "Track"
-msgstr "Trilha"
-
-#: flatcamGUI/FlatCAMGUI.py:2243
-msgid "Region"
-msgstr "Região"
-
-#: flatcamGUI/FlatCAMGUI.py:2266
-msgid "Exc Editor"
-msgstr "Editor Exc"
-
-#: flatcamGUI/FlatCAMGUI.py:2311
-msgid ""
-"Relative measurement.\n"
-"Reference is last click position"
-msgstr ""
-"Medição relativa.\n"
-"Em relação à posição do último clique"
-
-#: flatcamGUI/FlatCAMGUI.py:2317
-msgid ""
-"Absolute measurement.\n"
-"Reference is (X=0, Y= 0) position"
-msgstr ""
-"Medição absoluta.\n"
-"Em relação à posição (X=0, Y=0)"
-
-#: flatcamGUI/FlatCAMGUI.py:2419
-msgid "Lock Toolbars"
-msgstr "Travar Barras de Ferramentas"
-
-#: flatcamGUI/FlatCAMGUI.py:2505
-msgid "FlatCAM Preferences Folder opened."
-msgstr "Pasta com Preferências FlatCAM aberta."
-
-#: flatcamGUI/FlatCAMGUI.py:2516
-msgid "Are you sure you want to delete the GUI Settings? \n"
-msgstr "Você tem certeza de que deseja excluir as configurações da GUI? \n"
-
-#: flatcamGUI/FlatCAMGUI.py:2624
-msgid "&Cutout Tool"
-msgstr "Ferramenta de Re&corte"
-
-#: flatcamGUI/FlatCAMGUI.py:2694
-msgid "Select 'Esc'"
-msgstr "Selecionar 'Esc'"
-
-#: flatcamGUI/FlatCAMGUI.py:2732
-msgid "Copy Objects"
-msgstr "Copiar Objetos"
-
-#: flatcamGUI/FlatCAMGUI.py:2740
-msgid "Move Objects"
-msgstr "Mover Objetos"
-
-#: flatcamGUI/FlatCAMGUI.py:3363
-msgid ""
-"Please first select a geometry item to be cutted\n"
-"then select the geometry item that will be cutted\n"
-"out of the first item. In the end press ~X~ key or\n"
-"the toolbar button."
-msgstr ""
-"Por favor, primeiro selecione um item de geometria a ser cortado\n"
-"e em seguida, selecione o item de geometria que será cortado\n"
-"fora do primeiro item. No final, pressione a tecla ~X~ ou\n"
-"o botão da barra de ferramentas."
-
-#: flatcamGUI/FlatCAMGUI.py:3370 flatcamGUI/FlatCAMGUI.py:3532
-#: flatcamGUI/FlatCAMGUI.py:3577 flatcamGUI/FlatCAMGUI.py:3597
-msgid "Warning"
-msgstr "Aviso"
-
-#: flatcamGUI/FlatCAMGUI.py:3527
-msgid ""
-"Please select geometry items \n"
-"on which to perform Intersection Tool."
-msgstr ""
-"Por favor, selecione itens de geometria\n"
-"para executar a ferramenta de interseção."
-
-#: flatcamGUI/FlatCAMGUI.py:3572
-msgid ""
-"Please select geometry items \n"
-"on which to perform Substraction Tool."
-msgstr ""
-"Por favor, selecione itens de geometria\n"
-"para executar a ferramenta de subtração."
-
-#: flatcamGUI/FlatCAMGUI.py:3592
-msgid ""
-"Please select geometry items \n"
-"on which to perform union."
-msgstr ""
-"Por favor, selecione itens de geometria\n"
-"para executar a ferramenta de união."
-
-#: flatcamGUI/FlatCAMGUI.py:3675 flatcamGUI/FlatCAMGUI.py:3890
-msgid "Cancelled. Nothing selected to delete."
-msgstr "Cancelado. Nada selecionado para excluir."
-
-#: flatcamGUI/FlatCAMGUI.py:3759 flatcamGUI/FlatCAMGUI.py:4006
-msgid "Cancelled. Nothing selected to copy."
-msgstr "Cancelado. Nada selecionado para copiar."
-
-#: flatcamGUI/FlatCAMGUI.py:3805 flatcamGUI/FlatCAMGUI.py:4035
-msgid "Cancelled. Nothing selected to move."
-msgstr "Cancelado. Nada selecionado para mover."
-
-#: flatcamGUI/FlatCAMGUI.py:4061
-msgid "New Tool ..."
-msgstr "Nova Ferramenta ..."
-
-#: flatcamGUI/FlatCAMGUI.py:4062 flatcamTools/ToolNCC.py:924
-#: flatcamTools/ToolPaint.py:850 flatcamTools/ToolSolderPaste.py:560
-msgid "Enter a Tool Diameter"
-msgstr "Digite um diâmetro de ferramenta"
-
-#: flatcamGUI/FlatCAMGUI.py:4074
-msgid "Adding Tool cancelled ..."
-msgstr "Adicionar ferramenta cancelado ..."
-
-#: flatcamGUI/FlatCAMGUI.py:4088
-msgid "Distance Tool exit..."
-msgstr "Sair da ferramenta de medição ..."
-
-#: flatcamGUI/FlatCAMGUI.py:4323 flatcamGUI/FlatCAMGUI.py:4330
-msgid "Idle."
-msgstr "Ocioso."
-
-#: flatcamGUI/FlatCAMGUI.py:4361
-msgid "Application started ..."
-msgstr "Aplicativo iniciado ..."
-
-#: flatcamGUI/FlatCAMGUI.py:4362
-msgid "Hello!"
-msgstr "Olá!"
-
-#: flatcamGUI/FlatCAMGUI.py:4424
-msgid "Open Project ..."
-msgstr "Abrir Projeto ..."
-
-#: flatcamGUI/FlatCAMGUI.py:4450
-msgid "Exit"
-msgstr "Sair"
-
-#: flatcamGUI/GUIElements.py:2513
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:180
-#: flatcamTools/ToolDblSided.py:173 flatcamTools/ToolDblSided.py:388
-#: flatcamTools/ToolFilm.py:219
-msgid "Reference"
-msgstr "Referência"
-
-#: flatcamGUI/GUIElements.py:2515
-msgid ""
-"The reference can be:\n"
-"- Absolute -> the reference point is point (0,0)\n"
-"- Relative -> the reference point is the mouse position before Jump"
-msgstr ""
-"A referência pode ser:\n"
-"- Absoluto -> o ponto de referência é o ponto (0,0)\n"
-"- Relativo -> o ponto de referência é a posição do mouse antes de Jump"
-
-#: flatcamGUI/GUIElements.py:2520
-msgid "Abs"
-msgstr "Abs"
-
-#: flatcamGUI/GUIElements.py:2521
-msgid "Relative"
-msgstr "Relativo"
-
-#: flatcamGUI/GUIElements.py:2531
-msgid "Location"
-msgstr "Localização"
-
-#: flatcamGUI/GUIElements.py:2533
-msgid ""
-"The Location value is a tuple (x,y).\n"
-"If the reference is Absolute then the Jump will be at the position (x,y).\n"
-"If the reference is Relative then the Jump will be at the (x,y) distance\n"
-"from the current mouse location point."
-msgstr ""
-"O valor do local é uma tupla (x, y).\n"
-"Se a referência for Absoluta, o Salto estará na posição (x, y).\n"
-"Se a referência for Relativa, o salto estará na distância (x, y)\n"
-"a partir do ponto de localização atual do mouse."
-
-#: flatcamGUI/GUIElements.py:2573
-msgid "Save Log"
-msgstr "Salvar Log"
-
-#: flatcamGUI/GUIElements.py:2592 flatcamTools/ToolShell.py:278
-msgid "Type >help< to get started"
-msgstr "Digite >help< para iniciar"
-
-#: flatcamGUI/ObjectUI.py:38
-msgid "FlatCAM Object"
-msgstr "Objeto FlatCAM"
-
-#: flatcamGUI/ObjectUI.py:78
-msgid ""
-"BASIC is suitable for a beginner. Many parameters\n"
-"are hidden from the user in this mode.\n"
-"ADVANCED mode will make available all parameters.\n"
-"\n"
-"To change the application LEVEL, go to:\n"
-"Edit -> Preferences -> General and check:\n"
-"'APP. LEVEL' radio button."
-msgstr ""
-"BÁSICO é adequado para um iniciante. Muitos parâmetros\n"
-" estão ocultos do usuário neste modo.\n"
-"O modo AVANÇADO disponibilizará todos os parâmetros.\n"
-"\n"
-"Para alterar o NÍVEL do aplicativo, vá para:\n"
-"Editar -> Preferências -> Geral e verificar\n"
-"o botão de rádio 'Nível do Aplicativo\"."
-
-#: flatcamGUI/ObjectUI.py:111
-msgid "Geometrical transformations of the current object."
-msgstr "Transformação geométrica do objeto atual."
-
-#: flatcamGUI/ObjectUI.py:120
-msgid ""
-"Factor by which to multiply\n"
-"geometric features of this object.\n"
-"Expressions are allowed. E.g: 1/25.4"
-msgstr ""
-"Fator pelo qual multiplicar recursos\n"
-"geométricos deste objeto.\n"
-"Expressões são permitidas. Por exemplo: 1 / 25.4"
-
-#: flatcamGUI/ObjectUI.py:127
-msgid "Perform scaling operation."
-msgstr "Realiza a operação de dimensionamento."
-
-#: flatcamGUI/ObjectUI.py:138
-msgid ""
-"Amount by which to move the object\n"
-"in the x and y axes in (x, y) format.\n"
-"Expressions are allowed. E.g: (1/3.2, 0.5*3)"
-msgstr ""
-"Quanto mover o objeto\n"
-"nos eixos x e y no formato (x, y).\n"
-"Expressões são permitidas. Por exemplo: (1/3.2, 0.5*3)"
-
-#: flatcamGUI/ObjectUI.py:145
-msgid "Perform the offset operation."
-msgstr "Executa a operação de deslocamento."
-
-#: flatcamGUI/ObjectUI.py:178
-msgid "Gerber Object"
-msgstr "Objeto Gerber"
-
-#: flatcamGUI/ObjectUI.py:187 flatcamGUI/ObjectUI.py:730
-#: flatcamGUI/ObjectUI.py:1426 flatcamGUI/ObjectUI.py:2205
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:30
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:33
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:31
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:31
-msgid "Plot Options"
-msgstr "Opções de Gráfico"
-
-#: flatcamGUI/ObjectUI.py:193 flatcamGUI/ObjectUI.py:731
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:45
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:38
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119
-#: flatcamTools/ToolCopperThieving.py:191
-msgid "Solid"
-msgstr "Preenchido"
-
-#: flatcamGUI/ObjectUI.py:195
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:40
-msgid "Solid color polygons."
-msgstr "Polígonos com cor sólida."
-
-#: flatcamGUI/ObjectUI.py:201
-msgid "Multi-Color"
-msgstr "Multicolorido"
-
-#: flatcamGUI/ObjectUI.py:203
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:47
-msgid "Draw polygons in different colors."
-msgstr "Desenha polígonos em cores diferentes."
-
-#: flatcamGUI/ObjectUI.py:209 flatcamGUI/ObjectUI.py:769
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:39
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:35
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:52
-msgid "Plot"
-msgstr "Gráfico"
-
-#: flatcamGUI/ObjectUI.py:211 flatcamGUI/ObjectUI.py:771
-#: flatcamGUI/ObjectUI.py:1486 flatcamGUI/ObjectUI.py:2315
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:41
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:37
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:54
-msgid "Plot (show) this object."
-msgstr "Mostra o objeto no gráfico."
-
-#: flatcamGUI/ObjectUI.py:239
-msgid ""
-"Toggle the display of the Gerber Apertures Table.\n"
-"When unchecked, it will delete all mark shapes\n"
-"that are drawn on canvas."
-msgstr ""
-"Alterna a exibição da Tabela de Aberturas Gerber.\n"
-"Quando desmarcada, serão excluídas todas as formas de marcas\n"
-"desenhadas na tela."
-
-#: flatcamGUI/ObjectUI.py:249
-msgid "Mark All"
-msgstr "Marcar Todos"
-
-#: flatcamGUI/ObjectUI.py:251
-msgid ""
-"When checked it will display all the apertures.\n"
-"When unchecked, it will delete all mark shapes\n"
-"that are drawn on canvas."
-msgstr ""
-"Quando marcado, serão mostradas todas as aberturas.\n"
-"Quando desmarcado, serão apagadas todas as formas de marcas\n"
-"desenhadas na tela."
-
-#: flatcamGUI/ObjectUI.py:279
-msgid "Mark the aperture instances on canvas."
-msgstr "Marque as instâncias de abertura na tela."
-
-#: flatcamGUI/ObjectUI.py:291
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:32
-msgid "Isolation Routing"
-msgstr "Roteamento de Isolação"
-
-#: flatcamGUI/ObjectUI.py:293
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:34
-msgid ""
-"Create a Geometry object with\n"
-"toolpaths to cut outside polygons."
-msgstr ""
-"Cria um objeto Geometria com caminho de\n"
-"ferramenta para cortar polígonos externos."
-
-#: flatcamGUI/ObjectUI.py:311
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:69
-msgid ""
-"Choose which tool to use for Gerber isolation:\n"
-"'Circular' or 'V-shape'.\n"
-"When the 'V-shape' is selected then the tool\n"
-"diameter will depend on the chosen cut depth."
-msgstr ""
-"Escolha qual ferramenta usar para a isolação do Gerber:\n"
-"'Circular' ou 'ponta-V'.\n"
-"Quando 'ponta em V' for selecionada, o diâmetro da\n"
-"ferramenta dependerá da profundidade de corte escolhida."
-
-#: flatcamGUI/ObjectUI.py:317
-msgid "V-Shape"
-msgstr "Forma-V"
-
-#: flatcamGUI/ObjectUI.py:323 flatcamGUI/ObjectUI.py:1672
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:81
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:72
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:78
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:85
-#: flatcamTools/ToolNCC.py:233 flatcamTools/ToolNCC.py:240
-#: flatcamTools/ToolPaint.py:216
-msgid "V-Tip Dia"
-msgstr "Diâmetro da Ponta"
-
-#: flatcamGUI/ObjectUI.py:325 flatcamGUI/ObjectUI.py:1675
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:83
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:74
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:80
-#: flatcamTools/ToolNCC.py:235 flatcamTools/ToolPaint.py:218
-msgid "The tip diameter for V-Shape Tool"
-msgstr "O diâmetro da ponta da ferramenta em forma de V"
-
-#: flatcamGUI/ObjectUI.py:336 flatcamGUI/ObjectUI.py:1687
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:94
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:84
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:91
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:99
-#: flatcamTools/ToolNCC.py:246 flatcamTools/ToolNCC.py:254
-#: flatcamTools/ToolPaint.py:229
-msgid "V-Tip Angle"
-msgstr "Ângulo Ponta-V"
-
-#: flatcamGUI/ObjectUI.py:338 flatcamGUI/ObjectUI.py:1690
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:96
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:86
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:93
-#: flatcamTools/ToolNCC.py:248 flatcamTools/ToolPaint.py:231
-msgid ""
-"The tip angle for V-Shape Tool.\n"
-"In degree."
-msgstr "O ângulo da ponta da ferramenta em forma de V, em graus."
-
-#: flatcamGUI/ObjectUI.py:352 flatcamGUI/ObjectUI.py:1706
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:50
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:109
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61
-#: flatcamObjects/FlatCAMGeometry.py:1174 flatcamTools/ToolCutOut.py:141
-msgid ""
-"Cutting depth (negative)\n"
-"below the copper surface."
-msgstr ""
-"Profundidade de corte (negativo)\n"
-"abaixo da superfície de cobre."
-
-#: flatcamGUI/ObjectUI.py:366
-msgid ""
-"Diameter of the cutting tool.\n"
-"If you want to have an isolation path\n"
-"inside the actual shape of the Gerber\n"
-"feature, use a negative value for\n"
-"this parameter."
-msgstr ""
-"Diâmetro da ferramenta de corte.\n"
-"Se desejar ter um caminho de isolação dentro da forma\n"
-"atual do recurso Gerber, use um valor negativo para\n"
-"este parâmetro."
-
-#: flatcamGUI/ObjectUI.py:382
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:56
-msgid "# Passes"
-msgstr "Passes"
-
-#: flatcamGUI/ObjectUI.py:384
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:58
-msgid ""
-"Width of the isolation gap in\n"
-"number (integer) of tool widths."
-msgstr ""
-"Largura da isolação em relação à\n"
-"largura da ferramenta (número inteiro)."
-
-#: flatcamGUI/ObjectUI.py:395
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:68
-msgid "Pass overlap"
-msgstr "Sobreposição"
-
-#: flatcamGUI/ObjectUI.py:397
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:70
-msgid "How much (percentage) of the tool width to overlap each tool pass."
-msgstr ""
-"Quanto (percentual) da largura da ferramenta é sobreposta a cada passagem da "
-"ferramenta."
-
-#: flatcamGUI/ObjectUI.py:411
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:58
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:97
-msgid ""
-"Milling type:\n"
-"- climb / best for precision milling and to reduce tool usage\n"
-"- conventional / useful when there is no backlash compensation"
-msgstr ""
-"Tipo de fresamento:\n"
-"- subida: melhor para fresamento de precisão e para reduzir o uso da "
-"ferramenta\n"
-"- convencional: útil quando não há compensação de folga"
-
-#: flatcamGUI/ObjectUI.py:421
-msgid "Combine"
-msgstr "Combinar"
-
-#: flatcamGUI/ObjectUI.py:423
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:109
-msgid "Combine all passes into one object"
-msgstr "Combinar todos os passes em um objeto"
-
-#: flatcamGUI/ObjectUI.py:427
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:43
-msgid "\"Follow\""
-msgstr "\"Segue\""
-
-#: flatcamGUI/ObjectUI.py:428
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:45
-msgid ""
-"Generate a 'Follow' geometry.\n"
-"This means that it will cut through\n"
-"the middle of the trace."
-msgstr ""
-"Gera uma geometria 'Segue'.\n"
-"Isso significa que ele cortará\n"
-"no meio do traço."
-
-#: flatcamGUI/ObjectUI.py:434
-msgid "Except"
-msgstr "Exceto"
-
-#: flatcamGUI/ObjectUI.py:437
-msgid ""
-"When the isolation geometry is generated,\n"
-"by checking this, the area of the object below\n"
-"will be subtracted from the isolation geometry."
-msgstr ""
-"Quando marcado, na geração da geometria de isolação,\n"
-"a área do objeto abaixo será subtraída da geometria\n"
-"de isolação."
-
-#: flatcamGUI/ObjectUI.py:450
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:97
-#: flatcamObjects/FlatCAMGerber.py:239 flatcamObjects/FlatCAMGerber.py:327
-#: flatcamTools/ToolAlignObjects.py:73 flatcamTools/ToolAlignObjects.py:109
-#: flatcamTools/ToolCalibration.py:196 flatcamTools/ToolCalibration.py:631
-#: flatcamTools/ToolCalibration.py:648 flatcamTools/ToolCalibration.py:807
-#: flatcamTools/ToolCalibration.py:815 flatcamTools/ToolCopperThieving.py:144
-#: flatcamTools/ToolCopperThieving.py:158
-#: flatcamTools/ToolCopperThieving.py:604 flatcamTools/ToolCutOut.py:91
-#: flatcamTools/ToolDblSided.py:224 flatcamTools/ToolFilm.py:69
-#: flatcamTools/ToolFilm.py:102 flatcamTools/ToolFilm.py:549
-#: flatcamTools/ToolFilm.py:557 flatcamTools/ToolImage.py:49
-#: flatcamTools/ToolImage.py:252 flatcamTools/ToolImage.py:273
-#: flatcamTools/ToolNCC.py:96 flatcamTools/ToolNCC.py:558
-#: flatcamTools/ToolNCC.py:1300 flatcamTools/ToolPaint.py:502
-#: flatcamTools/ToolPaint.py:706 flatcamTools/ToolPanelize.py:118
-#: flatcamTools/ToolPanelize.py:204 flatcamTools/ToolPanelize.py:374
-#: flatcamTools/ToolPanelize.py:391
-msgid "Gerber"
-msgstr "Gerber"
-
-#: flatcamGUI/ObjectUI.py:457 flatcamTools/ToolNCC.py:86
-#: flatcamTools/ToolPaint.py:80
-msgid "Obj Type"
-msgstr "Tipo Obj"
-
-#: flatcamGUI/ObjectUI.py:459
-msgid ""
-"Specify the type of object to be excepted from isolation.\n"
-"It can be of type: Gerber or Geometry.\n"
-"What is selected here will dictate the kind\n"
-"of objects that will populate the 'Object' combobox."
-msgstr ""
-"Especifica o tipo de objeto a ser excluído da isolação.\n"
-"Pode ser do tipo: Gerber ou Geometria.\n"
-"Esta seleção ditará o tipo de objetos que preencherão\n"
-"a caixa de combinação 'Objeto'."
-
-#: flatcamGUI/ObjectUI.py:472
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:48
-#: flatcamTools/ToolCalibration.py:186 flatcamTools/ToolNCC.py:109
-#: flatcamTools/ToolPaint.py:103 flatcamTools/ToolPanelize.py:100
-#: flatcamTools/ToolQRCode.py:78
-msgid "Object"
-msgstr "Objeto"
-
-#: flatcamGUI/ObjectUI.py:473
-msgid "Object whose area will be removed from isolation geometry."
-msgstr "Objeto cuja área será removida da geometria de isolação."
-
-#: flatcamGUI/ObjectUI.py:480
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:82
-msgid "Scope"
-msgstr "Escopo"
-
-#: flatcamGUI/ObjectUI.py:482
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:84
-msgid ""
-"Isolation scope. Choose what to isolate:\n"
-"- 'All' -> Isolate all the polygons in the object\n"
-"- 'Selection' -> Isolate a selection of polygons."
-msgstr ""
-"Escopo de isolação. Escolha o que isolar:\n"
-"- 'Tudo' -> Isola todos os polígonos no objeto\n"
-"- 'Seleção' -> Isola uma seleção de polígonos."
-
-#: flatcamGUI/ObjectUI.py:487
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:307
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:89
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:311
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:258
-#: flatcamTools/ToolNCC.py:539 flatcamTools/ToolPaint.py:456
-msgid "Selection"
-msgstr "Seleção"
-
-#: flatcamGUI/ObjectUI.py:495
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:122
-msgid "Isolation Type"
-msgstr "Tipo de Isolação"
-
-#: flatcamGUI/ObjectUI.py:497
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:124
-msgid ""
-"Choose how the isolation will be executed:\n"
-"- 'Full' -> complete isolation of polygons\n"
-"- 'Ext' -> will isolate only on the outside\n"
-"- 'Int' -> will isolate only on the inside\n"
-"'Exterior' isolation is almost always possible\n"
-"(with the right tool) but 'Interior'\n"
-"isolation can be done only when there is an opening\n"
-"inside of the polygon (e.g polygon is a 'doughnut' shape)."
-msgstr ""
-"Escolha como a isolação será executada:\n"
-"- 'Completa' -> isolação completa de polígonos\n"
-"- 'Ext' -> isolará apenas do lado de fora\n"
-"- 'Int' -> isolará apenas por dentro\n"
-"A isolação 'exterior' é quase sempre possível\n"
-"(com a ferramenta certa), mas isolação \"Interior\"\n"
-"pode ser feita somente quando houver uma abertura\n"
-"dentro do polígono (por exemplo, o polígono é em forma de \"rosca\")."
-
-#: flatcamGUI/ObjectUI.py:506
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:133
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:154
-msgid "Full"
-msgstr "Completa"
-
-#: flatcamGUI/ObjectUI.py:507
-msgid "Ext"
-msgstr "Ext"
-
-#: flatcamGUI/ObjectUI.py:508
-msgid "Int"
-msgstr "Int"
-
-#: flatcamGUI/ObjectUI.py:513
-msgid "Generate Isolation Geometry"
-msgstr "Gerar Geometria de Isolação"
-
-#: flatcamGUI/ObjectUI.py:521
-msgid ""
-"Create a Geometry object with toolpaths to cut \n"
-"isolation outside, inside or on both sides of the\n"
-"object. For a Gerber object outside means outside\n"
-"of the Gerber feature and inside means inside of\n"
-"the Gerber feature, if possible at all. This means\n"
-"that only if the Gerber feature has openings inside, they\n"
-"will be isolated. If what is wanted is to cut isolation\n"
-"inside the actual Gerber feature, use a negative tool\n"
-"diameter above."
-msgstr ""
-"Cria um objeto Geometria com caminhos da ferramenta para\n"
-"cortar a isolação por fora, por dentro ou em ambos os lados\n"
-"do objeto. Para um objeto Gerber externo significa por fora\n"
-"do recurso Gerber e interno significa por dentro do recurso\n"
-"Gerber, se possível. Isso significa que somente se o recurso\n"
-"Gerber tiver aberturas internas, elas serão isoladas. Se o\n"
-"desejado é cortar a isolação dentro do recurso Gerber, use uma\n"
-"ferramenta negativa diâmetro acima."
-
-#: flatcamGUI/ObjectUI.py:533
-msgid "Buffer Solid Geometry"
-msgstr "Buffer de Geometria Sólida"
-
-#: flatcamGUI/ObjectUI.py:535
-msgid ""
-"This button is shown only when the Gerber file\n"
-"is loaded without buffering.\n"
-"Clicking this will create the buffered geometry\n"
-"required for isolation."
-msgstr ""
-"Este botão é mostrado apenas quando o arquivo Gerber\n"
-"é carregado sem buffer.\n"
-"Clicar neste botão criará o buffer da geometria\n"
-"necessário para a isolação."
-
-#: flatcamGUI/ObjectUI.py:567
-msgid "Clear N-copper"
-msgstr "Limpa N-cobre"
-
-#: flatcamGUI/ObjectUI.py:569
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:33
-msgid ""
-"Create a Geometry object with\n"
-"toolpaths to cut all non-copper regions."
-msgstr ""
-"Cria um objeto Geometria com caminho de ferramenta\n"
-"para cortar todas as regiões com retirada de cobre."
-
-#: flatcamGUI/ObjectUI.py:576 flatcamGUI/ObjectUI.py:2159
-#: flatcamTools/ToolNCC.py:599
-msgid ""
-"Create the Geometry Object\n"
-"for non-copper routing."
-msgstr ""
-"Cria o Objeto de Geometria\n"
-"para roteamento de zona sem cobre."
-
-#: flatcamGUI/ObjectUI.py:589
-msgid "Board cutout"
-msgstr "Recorte da placa"
-
-#: flatcamGUI/ObjectUI.py:591
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:34
-msgid ""
-"Create toolpaths to cut around\n"
-"the PCB and separate it from\n"
-"the original board."
-msgstr ""
-"Cria caminhos da ferramenta para cortar\n"
-"o PCB e separá-lo da placa original."
-
-#: flatcamGUI/ObjectUI.py:598
-msgid ""
-"Generate the geometry for\n"
-"the board cutout."
-msgstr "Gera a geometria para o recorte da placa."
-
-#: flatcamGUI/ObjectUI.py:616
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:119
-msgid "Non-copper regions"
-msgstr "Zona sem cobre"
-
-#: flatcamGUI/ObjectUI.py:618
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:121
-msgid ""
-"Create polygons covering the\n"
-"areas without copper on the PCB.\n"
-"Equivalent to the inverse of this\n"
-"object. Can be used to remove all\n"
-"copper from a specified region."
-msgstr ""
-"Cria polígonos cobrindo as\n"
-"zonas sem cobre no PCB.\n"
-"Equivalente ao inverso do\n"
-"objeto. Pode ser usado para remover todo o\n"
-"cobre de uma região especificada."
-
-#: flatcamGUI/ObjectUI.py:628 flatcamGUI/ObjectUI.py:669
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:133
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:166
-msgid "Boundary Margin"
-msgstr "Margem Limite"
-
-#: flatcamGUI/ObjectUI.py:630
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:135
-msgid ""
-"Specify the edge of the PCB\n"
-"by drawing a box around all\n"
-"objects with this minimum\n"
-"distance."
-msgstr ""
-"Especifica a borda do PCB\n"
-"desenhando uma caixa em volta de todos os\n"
-"objetos com esta distância mínima."
-
-#: flatcamGUI/ObjectUI.py:645 flatcamGUI/ObjectUI.py:683
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:148
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:179
-msgid "Rounded Geo"
-msgstr "Geo Arredondado"
-
-#: flatcamGUI/ObjectUI.py:647
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:150
-msgid "Resulting geometry will have rounded corners."
-msgstr "A geometria resultante terá cantos arredondados."
-
-#: flatcamGUI/ObjectUI.py:651 flatcamGUI/ObjectUI.py:692
-#: flatcamTools/ToolSolderPaste.py:134
-msgid "Generate Geo"
-msgstr "Gerar Geo"
-
-#: flatcamGUI/ObjectUI.py:661
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:160
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137
-#: flatcamTools/ToolPanelize.py:101 flatcamTools/ToolQRCode.py:192
-msgid "Bounding Box"
-msgstr "Caixa Delimitadora"
-
-#: flatcamGUI/ObjectUI.py:663
-msgid ""
-"Create a geometry surrounding the Gerber object.\n"
-"Square shape."
-msgstr ""
-"Crie uma geometria em torno do objeto Gerber.\n"
-"Forma quadrada."
-
-#: flatcamGUI/ObjectUI.py:671
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:168
-msgid ""
-"Distance of the edges of the box\n"
-"to the nearest polygon."
-msgstr ""
-"Distância das bordas da caixa\n"
-"para o polígono mais próximo."
-
-#: flatcamGUI/ObjectUI.py:685
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:181
-msgid ""
-"If the bounding box is \n"
-"to have rounded corners\n"
-"their radius is equal to\n"
-"the margin."
-msgstr ""
-"Se a caixa delimitadora tiver\n"
-"cantos arredondados, o seu raio\n"
-"é igual à margem."
-
-#: flatcamGUI/ObjectUI.py:694
-msgid "Generate the Geometry object."
-msgstr "Gera o objeto Geometria."
-
-#: flatcamGUI/ObjectUI.py:721
-msgid "Excellon Object"
-msgstr "Objeto Excellon"
-
-#: flatcamGUI/ObjectUI.py:733
-msgid "Solid circles."
-msgstr "Círculos preenchidos ou vazados."
-
-#: flatcamGUI/ObjectUI.py:781 flatcamGUI/ObjectUI.py:876
-#: flatcamGUI/ObjectUI.py:2336
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:71
-#: flatcamTools/ToolProperties.py:166
-msgid "Drills"
-msgstr "Furos"
-
-#: flatcamGUI/ObjectUI.py:781 flatcamGUI/ObjectUI.py:877
-#: flatcamGUI/ObjectUI.py:2336
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:158
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:72
-#: flatcamTools/ToolProperties.py:168
-msgid "Slots"
-msgstr "Ranhuras"
-
-#: flatcamGUI/ObjectUI.py:786
-msgid ""
-"This is the Tool Number.\n"
-"When ToolChange is checked, on toolchange event this value\n"
-"will be showed as a T1, T2 ... Tn in the Machine Code.\n"
-"\n"
-"Here the tools are selected for G-code generation."
-msgstr ""
-"Número da Ferramenta.\n"
-"Quando Trocar Ferramentas estiver marcado, este valor\n"
-" será mostrado como T1, T2 ... Tn no Código da Máquina."
-
-#: flatcamGUI/ObjectUI.py:791 flatcamGUI/ObjectUI.py:1510
-#: flatcamTools/ToolPaint.py:142
-msgid ""
-"Tool Diameter. It's value (in current FlatCAM units) \n"
-"is the cut width into the material."
-msgstr ""
-"Diâmetro da Ferramenta. É a largura do corte no material\n"
-"(nas unidades atuais do FlatCAM)."
-
-#: flatcamGUI/ObjectUI.py:794
-msgid ""
-"The number of Drill holes. Holes that are drilled with\n"
-"a drill bit."
-msgstr "Número de Furos. Serão perfurados com brocas."
-
-#: flatcamGUI/ObjectUI.py:797
-msgid ""
-"The number of Slot holes. Holes that are created by\n"
-"milling them with an endmill bit."
-msgstr "Número de Ranhuras (Fendas). Serão criadas com fresas."
-
-#: flatcamGUI/ObjectUI.py:800
-msgid ""
-"Toggle display of the drills for the current tool.\n"
-"This does not select the tools for G-code generation."
-msgstr ""
-"Alterna a exibição da ferramenta atual. Isto não seleciona a ferramenta para "
-"geração do G-Code."
-
-#: flatcamGUI/ObjectUI.py:818 flatcamGUI/ObjectUI.py:1662
-#: flatcamObjects/FlatCAMExcellon.py:514 flatcamObjects/FlatCAMExcellon.py:726
-#: flatcamObjects/FlatCAMExcellon.py:742 flatcamObjects/FlatCAMExcellon.py:746
-#: flatcamObjects/FlatCAMGeometry.py:323 flatcamObjects/FlatCAMGeometry.py:759
-#: flatcamObjects/FlatCAMGeometry.py:795 flatcamTools/ToolNCC.py:331
-#: flatcamTools/ToolNCC.py:797 flatcamTools/ToolNCC.py:811
-#: flatcamTools/ToolNCC.py:1196 flatcamTools/ToolPaint.py:314
-#: flatcamTools/ToolPaint.py:767 flatcamTools/ToolPaint.py:779
-#: flatcamTools/ToolPaint.py:1171
-msgid "Parameters for"
-msgstr "Parâmetros para"
-
-#: flatcamGUI/ObjectUI.py:821 flatcamGUI/ObjectUI.py:1665
-#: flatcamTools/ToolNCC.py:334 flatcamTools/ToolPaint.py:317
-msgid ""
-"The data used for creating GCode.\n"
-"Each tool store it's own set of such data."
-msgstr ""
-"Os dados usados para criar o G-Code.\n"
-"Cada loja de ferramentas possui seu próprio conjunto de dados."
-
-#: flatcamGUI/ObjectUI.py:847
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:48
-msgid ""
-"Operation type:\n"
-"- Drilling -> will drill the drills/slots associated with this tool\n"
-"- Milling -> will mill the drills/slots"
-msgstr ""
-"Tipo de operação:\n"
-"- Perfuração -> faz os furos/ranhuras associados a esta ferramenta\n"
-"- Fresamento -> fresar os furos/ranhuras"
-
-#: flatcamGUI/ObjectUI.py:853
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:54
-msgid "Drilling"
-msgstr "Perfuração"
-
-#: flatcamGUI/ObjectUI.py:854
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:55
-msgid "Milling"
-msgstr "Fresamento"
-
-#: flatcamGUI/ObjectUI.py:869
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:64
-msgid ""
-"Milling type:\n"
-"- Drills -> will mill the drills associated with this tool\n"
-"- Slots -> will mill the slots associated with this tool\n"
-"- Both -> will mill both drills and mills or whatever is available"
-msgstr ""
-"Tipo de fresamento:\n"
-"- Furos -> fresará os furos associados a esta ferramenta\n"
-"- Ranhuras -> fresará as ranhuras associadas a esta ferramenta\n"
-"- Ambos -> fresará furos e ranhuras ou o que estiver disponível"
-
-#: flatcamGUI/ObjectUI.py:878
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:73
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:210
-#: flatcamTools/ToolFilm.py:258
-msgid "Both"
-msgstr "Ambos"
-
-#: flatcamGUI/ObjectUI.py:886
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:80
-msgid "Milling Diameter"
-msgstr "Diâmetro da Fresa"
-
-#: flatcamGUI/ObjectUI.py:888
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:82
-msgid "The diameter of the tool who will do the milling"
-msgstr "Diâmetro da ferramenta de fresamento."
-
-#: flatcamGUI/ObjectUI.py:902
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:95
-msgid ""
-"Drill depth (negative)\n"
-"below the copper surface."
-msgstr ""
-"Profundidade do furo (negativo)\n"
-"abaixo da superfície de cobre."
-
-#: flatcamGUI/ObjectUI.py:921 flatcamGUI/ObjectUI.py:1724
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:113
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:68
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79
-#: flatcamTools/ToolCutOut.py:159
-msgid "Multi-Depth"
-msgstr "Multi-Profundidade"
-
-#: flatcamGUI/ObjectUI.py:924 flatcamGUI/ObjectUI.py:1727
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:116
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:71
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82
-#: flatcamTools/ToolCutOut.py:162
-msgid ""
-"Use multiple passes to limit\n"
-"the cut depth in each pass. Will\n"
-"cut multiple times until Cut Z is\n"
-"reached."
-msgstr ""
-"Use vários passes para limitar\n"
-"a profundidade de corte em cada passagem. Vai\n"
-"cortar várias vezes até o Corte Z é\n"
-"alcançado."
-
-#: flatcamGUI/ObjectUI.py:937 flatcamGUI/ObjectUI.py:1741
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:128
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94
-#: flatcamTools/ToolCutOut.py:176
-msgid "Depth of each pass (positive)."
-msgstr "Profundidade de cada passe (positivo)."
-
-#: flatcamGUI/ObjectUI.py:948
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:136
-msgid ""
-"Tool height when travelling\n"
-"across the XY plane."
-msgstr ""
-"Altura da ferramenta durante os\n"
-"deslocamentos sobre o plano XY."
-
-#: flatcamGUI/ObjectUI.py:969 flatcamGUI/ObjectUI.py:1771
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:187
-msgid ""
-"Cutting speed in the XY\n"
-"plane in units per minute"
-msgstr "Velocidade de corte no plano XY em unidades por minuto"
-
-#: flatcamGUI/ObjectUI.py:984
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:209
-msgid ""
-"Tool speed while drilling\n"
-"(in units per minute).\n"
-"So called 'Plunge' feedrate.\n"
-"This is for linear move G01."
-msgstr ""
-"Velocidade da ferramenta durante a perfuração\n"
-"(em unidades por minuto).\n"
-"Também chamado de avanço de 'Mergulho'.\n"
-"Para movimento linear G01."
-
-#: flatcamGUI/ObjectUI.py:999 flatcamGUI/ObjectUI.py:1798
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:80
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:64
-msgid "Feedrate Rapids"
-msgstr "Taxa de Avanço Rápida"
-
-#: flatcamGUI/ObjectUI.py:1001
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:82
-msgid ""
-"Tool speed while drilling\n"
-"(in units per minute).\n"
-"This is for the rapid move G00.\n"
-"It is useful only for Marlin,\n"
-"ignore for any other cases."
-msgstr ""
-"Velocidade da ferramenta durante a perfuração\n"
-"(em unidades por minuto).\n"
-"Usado para movimento rápido G00.\n"
-"É útil apenas para Marlin. Ignore para outros casos."
-
-#: flatcamGUI/ObjectUI.py:1021 flatcamGUI/ObjectUI.py:1818
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:82
-msgid "Re-cut"
-msgstr "Re-cortar"
-
-#: flatcamGUI/ObjectUI.py:1023 flatcamGUI/ObjectUI.py:1036
-#: flatcamGUI/ObjectUI.py:1820 flatcamGUI/ObjectUI.py:1832
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:84
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:96
-msgid ""
-"In order to remove possible\n"
-"copper leftovers where first cut\n"
-"meet with last cut, we generate an\n"
-"extended cut over the first cut section."
-msgstr ""
-"Para remover possíveis sobras no ponto de encontro\n"
-"do primeiro com o último corte, gera-se um corte\n"
-"próximo à primeira seção de corte."
-
-#: flatcamGUI/ObjectUI.py:1049 flatcamGUI/ObjectUI.py:1841
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:216
-#: flatcamObjects/FlatCAMExcellon.py:1332
-#: flatcamObjects/FlatCAMGeometry.py:1622
-msgid "Spindle speed"
-msgstr "Velocidade do Spindle"
-
-#: flatcamGUI/ObjectUI.py:1051
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:224
-msgid ""
-"Speed of the spindle\n"
-"in RPM (optional)"
-msgstr ""
-"Velocidade do spindle\n"
-"em RPM (opcional)"
-
-#: flatcamGUI/ObjectUI.py:1066 flatcamGUI/ObjectUI.py:1860
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:238
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:234
-msgid ""
-"Pause to allow the spindle to reach its\n"
-"speed before cutting."
-msgstr ""
-"Pausa para permitir que o spindle atinja sua\n"
-"velocidade antes de cortar."
-
-#: flatcamGUI/ObjectUI.py:1077 flatcamGUI/ObjectUI.py:1870
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:246
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:239
-msgid "Number of time units for spindle to dwell."
-msgstr "Número de unidades de tempo para o fuso residir."
-
-#: flatcamGUI/ObjectUI.py:1087
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:46
-msgid "Offset Z"
-msgstr "Deslocamento Z"
-
-#: flatcamGUI/ObjectUI.py:1089
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:48
-msgid ""
-"Some drill bits (the larger ones) need to drill deeper\n"
-"to create the desired exit hole diameter due of the tip shape.\n"
-"The value here can compensate the Cut Z parameter."
-msgstr ""
-"Algumas brocas (as maiores) precisam perfurar mais profundamente\n"
-"para criar o diâmetro desejado do orifício de saída devido à forma da "
-"ponta.\n"
-"Este valor pode compensar o parâmetro Profundidade de Corte Z."
-
-#: flatcamGUI/ObjectUI.py:1149 flatcamGUI/ObjectUI.py:1924
-#: flatcamTools/ToolNCC.py:492 flatcamTools/ToolPaint.py:423
-msgid "Apply parameters to all tools"
-msgstr "Aplicar parâmetros a todas as ferramentas"
-
-#: flatcamGUI/ObjectUI.py:1151 flatcamGUI/ObjectUI.py:1926
-#: flatcamTools/ToolNCC.py:494 flatcamTools/ToolPaint.py:425
-msgid ""
-"The parameters in the current form will be applied\n"
-"on all the tools from the Tool Table."
-msgstr ""
-"Os parâmetros no formulário atual serão aplicados\n"
-"em todas as ferramentas da Tabela de Ferramentas."
-
-#: flatcamGUI/ObjectUI.py:1162 flatcamGUI/ObjectUI.py:1937
-#: flatcamTools/ToolNCC.py:505 flatcamTools/ToolPaint.py:436
-msgid "Common Parameters"
-msgstr "Parâmetros Comuns"
-
-#: flatcamGUI/ObjectUI.py:1164 flatcamGUI/ObjectUI.py:1939
-#: flatcamTools/ToolNCC.py:507 flatcamTools/ToolPaint.py:438
-msgid "Parameters that are common for all tools."
-msgstr "Parâmetros comuns à todas as ferramentas."
-
-#: flatcamGUI/ObjectUI.py:1169 flatcamGUI/ObjectUI.py:1944
-msgid "Tool change Z"
-msgstr "Altura para a troca"
-
-#: flatcamGUI/ObjectUI.py:1171
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:154
-msgid ""
-"Include tool-change sequence\n"
-"in G-Code (Pause for tool change)."
-msgstr ""
-"Pausa para troca de ferramentas. Inclua a sequência\n"
-"de troca de ferramentas em G-Code (em Trabalho CNC)."
-
-#: flatcamGUI/ObjectUI.py:1178 flatcamGUI/ObjectUI.py:1955
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:162
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:134
-msgid ""
-"Z-axis position (height) for\n"
-"tool change."
-msgstr "Posição do eixo Z (altura) para a troca de ferramenta."
-
-#: flatcamGUI/ObjectUI.py:1195
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:71
-msgid ""
-"Height of the tool just after start.\n"
-"Delete the value if you don't need this feature."
-msgstr ""
-"Altura da ferramenta antes de iniciar o trabalho.\n"
-"Exclua o valor se você não precisar deste recurso."
-
-#: flatcamGUI/ObjectUI.py:1204 flatcamGUI/ObjectUI.py:1983
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:178
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:153
-msgid "End move Z"
-msgstr "Altura Z Final"
-
-#: flatcamGUI/ObjectUI.py:1206 flatcamGUI/ObjectUI.py:1985
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:180
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:155
-msgid ""
-"Height of the tool after\n"
-"the last move at the end of the job."
-msgstr "Altura da ferramenta após o último movimento, no final do trabalho."
-
-#: flatcamGUI/ObjectUI.py:1223 flatcamGUI/ObjectUI.py:2002
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:195
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:173
-msgid "End move X,Y"
-msgstr "Posição X,Y Final"
-
-#: flatcamGUI/ObjectUI.py:1225 flatcamGUI/ObjectUI.py:2004
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:197
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:175
-msgid ""
-"End move X,Y position. In format (x,y).\n"
-"If no value is entered then there is no move\n"
-"on X,Y plane at the end of the job."
-msgstr ""
-"Posição final X, Y. Em formato (x, y).\n"
-"Se nenhum valor for inserido, não haverá movimento\n"
-"no plano X, Y no final do trabalho."
-
-#: flatcamGUI/ObjectUI.py:1235 flatcamGUI/ObjectUI.py:1878
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:96
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:105
-msgid "Probe Z depth"
-msgstr "Profundidade Z da Sonda"
-
-#: flatcamGUI/ObjectUI.py:1237 flatcamGUI/ObjectUI.py:1880
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:98
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:107
-msgid ""
-"The maximum depth that the probe is allowed\n"
-"to probe. Negative value, in current units."
-msgstr ""
-"Profundidade máxima permitida para a sonda.\n"
-"Valor negativo, em unidades atuais."
-
-#: flatcamGUI/ObjectUI.py:1254 flatcamGUI/ObjectUI.py:1895
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:109
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:120
-msgid "Feedrate Probe"
-msgstr "Avanço da Sonda"
-
-#: flatcamGUI/ObjectUI.py:1256 flatcamGUI/ObjectUI.py:1897
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:111
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:122
-msgid "The feedrate used while the probe is probing."
-msgstr "Velocidade de Avanço usada enquanto a sonda está operando."
-
-#: flatcamGUI/ObjectUI.py:1272
-msgid "Preprocessor E"
-msgstr "Pré-processador E"
-
-#: flatcamGUI/ObjectUI.py:1274
-msgid ""
-"The preprocessor JSON file that dictates\n"
-"Gcode output for Excellon Objects."
-msgstr ""
-"O arquivo de pós-processamento (JSON) que define\n"
-"a saída G-Code para Objetos Excellon."
-
-#: flatcamGUI/ObjectUI.py:1284
-msgid "Preprocessor G"
-msgstr "Pré-processador G"
-
-#: flatcamGUI/ObjectUI.py:1286
-msgid ""
-"The preprocessor JSON file that dictates\n"
-"Gcode output for Geometry (Milling) Objects."
-msgstr ""
-"O arquivo de pós-processamento (JSON) que define\n"
-"a saída G-Code para Objetos Geometria (Fresamento)."
-
-#: flatcamGUI/ObjectUI.py:1310 flatcamGUI/ObjectUI.py:2108
-msgid ""
-"Add / Select at least one tool in the tool-table.\n"
-"Click the # header to select all, or Ctrl + LMB\n"
-"for custom selection of tools."
-msgstr ""
-"Adicione / Selecione pelo menos uma ferramenta na tabela de ferramentas.\n"
-"Clique no cabeçalho # para selecionar todos ou Ctrl + Botão Esquerdo do "
-"Mouse\n"
-"para seleção personalizada de ferramentas."
-
-#: flatcamGUI/ObjectUI.py:1318 flatcamGUI/ObjectUI.py:2115
-msgid "Generate CNCJob object"
-msgstr "Gera o objeto de Trabalho CNC"
-
-#: flatcamGUI/ObjectUI.py:1320
-msgid ""
-"Generate the CNC Job.\n"
-"If milling then an additional Geometry object will be created"
-msgstr ""
-"Gera o Trabalho CNC.\n"
-"Ao fresar, será criado um objeto Geometria adicional"
-
-#: flatcamGUI/ObjectUI.py:1337
-msgid "Milling Geometry"
-msgstr "Geometria de Fresamento"
-
-#: flatcamGUI/ObjectUI.py:1339
-msgid ""
-"Create Geometry for milling holes.\n"
-"Select from the Tools Table above the hole dias to be\n"
-"milled. Use the # column to make the selection."
-msgstr ""
-"Cria geometria para fresar.\n"
-"Selecione na Tabela de Ferramentas acima\n"
-"os diâmetros dos furos que serão fresados.\n"
-"Use a coluna # para selecionar."
-
-#: flatcamGUI/ObjectUI.py:1347
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:296
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:45
-msgid "Diameter of the cutting tool."
-msgstr "Diâmetro da ferramenta."
-
-#: flatcamGUI/ObjectUI.py:1357
-msgid "Mill Drills"
-msgstr "Fresa Furos"
-
-#: flatcamGUI/ObjectUI.py:1359
-msgid ""
-"Create the Geometry Object\n"
-"for milling DRILLS toolpaths."
-msgstr ""
-"Cria o Objeto Geometria com\n"
-"os caminhos da ferramenta de FUROS."
-
-#: flatcamGUI/ObjectUI.py:1377
-msgid "Mill Slots"
-msgstr "Fresa Ranhuras"
-
-#: flatcamGUI/ObjectUI.py:1379
-msgid ""
-"Create the Geometry Object\n"
-"for milling SLOTS toolpaths."
-msgstr ""
-"Cria o Objeto Geometria com\n"
-"os caminhos da ferramenta de RANHURAS."
-
-#: flatcamGUI/ObjectUI.py:1421 flatcamTools/ToolCutOut.py:319
-msgid "Geometry Object"
-msgstr "Objeto Geometria"
-
-#: flatcamGUI/ObjectUI.py:1467
-msgid ""
-"Tools in this Geometry object used for cutting.\n"
-"The 'Offset' entry will set an offset for the cut.\n"
-"'Offset' can be inside, outside, on path (none) and custom.\n"
-"'Type' entry is only informative and it allow to know the \n"
-"intent of using the current tool. \n"
-"It can be Rough(ing), Finish(ing) or Iso(lation).\n"
-"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n"
-"ball(B), or V-Shaped(V). \n"
-"When V-shaped is selected the 'Type' entry is automatically \n"
-"set to Isolation, the CutZ parameter in the UI form is\n"
-"grayed out and Cut Z is automatically calculated from the newly \n"
-"showed UI form entries named V-Tip Dia and V-Tip Angle."
-msgstr ""
-"Ferramentas neste objeto Geometria usados para o corte.\n"
-"A entrada 'Deslocamento' define um deslocamento para o corte.\n"
-"'Deslocamento' pode ser dentro, fora, no caminho (nenhum) e personalizado. A "
-"entrada\n"
-"'Tipo' é somente informativo e permite conhecer a necessidade de usar a "
-"ferramenta atual.\n"
-"Pode ser Desbaste, Acabamento ou Isolação.\n"
-"O 'Tipo de Ferramenta' (TF) pode ser circular com 1 a 4 dentes (C1..C4),\n"
-"bola (B) ou Em Forma de V (V).\n"
-"Quando forma em V é selecionada, a entrada 'Tipo' é automaticamente\n"
-"alterada para Isolação, o parâmetro Profundidade de Corte\n"
-"no formulário da interface do usuário é desabilitado e a Profundidade\n"
-"de Corte é calculada automaticamente a partir das entradas do\n"
-"formulário da interface do usuário e do Ângulo da Ponta-V."
-
-#: flatcamGUI/ObjectUI.py:1484 flatcamGUI/ObjectUI.py:2313
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:40
-msgid "Plot Object"
-msgstr "Mostrar"
-
-#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326
-#: flatcamGUI/ObjectUI.py:2336
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138
-#: flatcamTools/ToolCopperThieving.py:221
-msgid "Dia"
-msgstr "Dia"
-
-#: flatcamGUI/ObjectUI.py:1497 flatcamGUI/ObjectUI.py:2326
-#: flatcamTools/ToolNCC.py:132 flatcamTools/ToolPaint.py:128
-msgid "TT"
-msgstr "TF"
-
-#: flatcamGUI/ObjectUI.py:1504
-msgid ""
-"This is the Tool Number.\n"
-"When ToolChange is checked, on toolchange event this value\n"
-"will be showed as a T1, T2 ... Tn"
-msgstr ""
-"Número da Ferramenta.\n"
-"Quando Trocar Ferramentas estiver marcado, no evento este valor\n"
-" será mostrado como T1, T2 ... Tn"
-
-#: flatcamGUI/ObjectUI.py:1515
-msgid ""
-"The value for the Offset can be:\n"
-"- Path -> There is no offset, the tool cut will be done through the geometry "
-"line.\n"
-"- In(side) -> The tool cut will follow the geometry inside. It will create a "
-"'pocket'.\n"
-"- Out(side) -> The tool cut will follow the geometry line on the outside."
-msgstr ""
-"O valor para Deslocamento pode ser:\n"
-"- Caminho -> Não há deslocamento, o corte da ferramenta será feito sobre a "
-"linha da geometria.\n"
-"- In(terno) -> O corte da ferramenta seguirá a geometria interna. Será "
-"criado um 'bolso'.\n"
-"- Ex(terno) -> O corte da ferramenta seguirá no lado externo da linha da "
-"geometria.\n"
-"- Personalizado -> Será considerado o valor digitado."
-
-#: flatcamGUI/ObjectUI.py:1522
-msgid ""
-"The (Operation) Type has only informative value. Usually the UI form "
-"values \n"
-"are choose based on the operation type and this will serve as a reminder.\n"
-"Can be 'Roughing', 'Finishing' or 'Isolation'.\n"
-"For Roughing we may choose a lower Feedrate and multiDepth cut.\n"
-"For Finishing we may choose a higher Feedrate, without multiDepth.\n"
-"For Isolation we need a lower Feedrate as it use a milling bit with a fine "
-"tip."
-msgstr ""
-"O tipo (operação) tem apenas valor informativo. Normalmente, os valores do "
-"formulário da interface do usuário\n"
-"são escolhidos com base no tipo de operação e isso servirá como um "
-"lembrete.\n"
-"Pode ser 'Desbaste', 'Acabamento' ou 'Isolação'.\n"
-"Para Desbaste, pode-se escolher uma taxa de Avanço inferior e corte de "
-"múltiplas profundidades.\n"
-"Para Acabamento, pode-se escolher uma taxa de avanço mais alta, sem multi-"
-"profundidade.\n"
-"Para Isolação, usa-se uma velocidade de avanço menor, pois é usada uma broca "
-"com ponta fina."
-
-#: flatcamGUI/ObjectUI.py:1531
-msgid ""
-"The Tool Type (TT) can be:\n"
-"- Circular with 1 ... 4 teeth -> it is informative only. Being circular the "
-"cut width in material\n"
-"is exactly the tool diameter.\n"
-"- Ball -> informative only and make reference to the Ball type endmill.\n"
-"- V-Shape -> it will disable Z-Cut parameter in the UI form and enable two "
-"additional UI form\n"
-"fields: V-Tip Dia and V-Tip Angle. Adjusting those two values will adjust "
-"the Z-Cut parameter such\n"
-"as the cut width into material will be equal with the value in the Tool "
-"Diameter column of this table.\n"
-"Choosing the V-Shape Tool Type automatically will select the Operation Type "
-"as Isolation."
-msgstr ""
-"O Tipo de Ferramenta (TF) pode ser:\n"
-"- Circular com 1 ... 4 dentes -> apenas informativo. Sendo circular a "
-"largura de corte no material\n"
-" é exatamente o diâmetro da ferramenta.\n"
-"- Bola -> apenas informativo e faz referência à fresa tipo Ball.\n"
-"- Em Forma de V -> o parâmetro Corte Z no formulário de interface do usuário "
-"será desabilitado e dois campos adicionais\n"
-" no formulário UI serão habilitados: Diâmetro Ângulo Ponta-V e Ângulo Ponta-"
-"V. O ajuste desses dois valores ajustará o parâmetro Corte Z, como\n"
-"a largura do corte no material será igual ao valor da coluna Diâmetro da "
-"ferramenta dessa tabela.\n"
-"Escolher o tipo de ferramenta Em Forma de V automaticamente alterará o tipo "
-"de operação para Isolação."
-
-#: flatcamGUI/ObjectUI.py:1543
-msgid ""
-"Plot column. It is visible only for MultiGeo geometries, meaning geometries "
-"that holds the geometry\n"
-"data into the tools. For those geometries, deleting the tool will delete the "
-"geometry data also,\n"
-"so be WARNED. From the checkboxes on each row it can be enabled/disabled the "
-"plot on canvas\n"
-"for the corresponding tool."
-msgstr ""
-"Coluna de plotagem. É visível apenas para geometrias MultiGeo, ou seja, "
-"geometrias que contêm os dados da geometria\n"
-"das ferramentas. Para essas geometrias, a exclusão da ferramenta também "
-"excluirá os dados da geometria,\n"
-"assim, esteja ATENTO. Nas caixas de seleção de cada linha, pode ser ativado/"
-"desativado o gráfico na tela\n"
-"para a ferramenta correspondente."
-
-#: flatcamGUI/ObjectUI.py:1561
-msgid ""
-"The value to offset the cut when \n"
-"the Offset type selected is 'Offset'.\n"
-"The value can be positive for 'outside'\n"
-"cut and negative for 'inside' cut."
-msgstr ""
-"O valor para compensar o corte quando\n"
-"o tipo selecionado for 'Deslocamento'.\n"
-"O valor pode ser positivo para corte 'por fora'\n"
-"e negativo para corte 'por dentro'."
-
-#: flatcamGUI/ObjectUI.py:1580 flatcamTools/ToolNCC.py:209
-#: flatcamTools/ToolNCC.py:923 flatcamTools/ToolPaint.py:192
-#: flatcamTools/ToolPaint.py:849 flatcamTools/ToolSolderPaste.py:559
-msgid "New Tool"
-msgstr "Nova Ferramenta"
-
-#: flatcamGUI/ObjectUI.py:1597
-msgid ""
-"Add a new tool to the Tool Table\n"
-"with the specified diameter."
-msgstr ""
-"Adiciona uma nova ferramenta à Tabela de Ferramentas\n"
-"com o diâmetro especificado."
-
-#: flatcamGUI/ObjectUI.py:1602 flatcamTools/ToolNCC.py:300
-#: flatcamTools/ToolNCC.py:634 flatcamTools/ToolPaint.py:283
-#: flatcamTools/ToolPaint.py:679
-msgid "Add from DB"
-msgstr "Adicionar do BD"
-
-#: flatcamGUI/ObjectUI.py:1604 flatcamTools/ToolNCC.py:302
-#: flatcamTools/ToolPaint.py:285
-msgid ""
-"Add a new tool to the Tool Table\n"
-"from the Tool DataBase."
-msgstr ""
-"Adiciona uma nova ferramenta à Tabela de Ferramentas\n"
-"do Banco de Dados de Ferramentas."
-
-#: flatcamGUI/ObjectUI.py:1619
-msgid ""
-"Copy a selection of tools in the Tool Table\n"
-"by first selecting a row in the Tool Table."
-msgstr ""
-"Copia uma seleção de ferramentas na Tabela de Ferramentas selecionando "
-"primeiro uma linha na Tabela de Ferramentas."
-
-#: flatcamGUI/ObjectUI.py:1625
-msgid ""
-"Delete a selection of tools in the Tool Table\n"
-"by first selecting a row in the Tool Table."
-msgstr ""
-"Exclui uma seleção de ferramentas na Tabela de Ferramentas selecionando "
-"primeiro uma linha na Tabela de Ferramentas."
-
-#: flatcamGUI/ObjectUI.py:1752
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:103
-msgid ""
-"Height of the tool when\n"
-"moving without cutting."
-msgstr "Altura da ferramenta ao mover sem cortar."
-
-#: flatcamGUI/ObjectUI.py:1785
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:202
-msgid ""
-"Cutting speed in the XY\n"
-"plane in units per minute.\n"
-"It is called also Plunge."
-msgstr ""
-"Velocidade de corte no plano Z em unidades por minuto.\n"
-"Também é chamado de Mergulho."
-
-#: flatcamGUI/ObjectUI.py:1800
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:66
-msgid ""
-"Cutting speed in the XY plane\n"
-"(in units per minute).\n"
-"This is for the rapid move G00.\n"
-"It is useful only for Marlin,\n"
-"ignore for any other cases."
-msgstr ""
-"Velocidade de corte no plano XY (em unidades por minuto).\n"
-"Para o movimento rápido G00.\n"
-"É útil apenas para Marlin, ignore em outros casos."
-
-#: flatcamGUI/ObjectUI.py:1844
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:219
-msgid ""
-"Speed of the spindle in RPM (optional).\n"
-"If LASER preprocessor is used,\n"
-"this value is the power of laser."
-msgstr ""
-"Velocidade do spindle em RPM (opcional).\n"
-"Se o pós-processador LASER é usado,\n"
-"este valor é a potência do laser."
-
-#: flatcamGUI/ObjectUI.py:1947
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:124
-msgid ""
-"Include tool-change sequence\n"
-"in the Machine Code (Pause for tool change)."
-msgstr ""
-"Sequência de troca de ferramentas incluída\n"
-"no Código da Máquina (Pausa para troca de ferramentas)."
-
-#: flatcamGUI/ObjectUI.py:2016
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:256
-msgid ""
-"The Preprocessor file that dictates\n"
-"the Machine Code (like GCode, RML, HPGL) output."
-msgstr ""
-"Arquivo de Pós-processamento que determina o código\n"
-"de máquina de saída(como G-Code, RML, HPGL)."
-
-#: flatcamGUI/ObjectUI.py:2028
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:201
-msgid "Exclusion areas"
-msgstr ""
-
-#: flatcamGUI/ObjectUI.py:2031
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:204
-msgid ""
-"Include exclusion areas.\n"
-"In those areas the travel of the tools\n"
-"is forbidden."
-msgstr ""
-
-#: flatcamGUI/ObjectUI.py:2053
-#, fuzzy
-#| msgid "Add Track"
-msgid "Add area"
-msgstr "Adicionar Trilha"
-
-#: flatcamGUI/ObjectUI.py:2054
-msgid "Add an Exclusion Area."
-msgstr ""
-
-#: flatcamGUI/ObjectUI.py:2058
-#, fuzzy
-#| msgid "Clearance"
-msgid "Clear areas"
-msgstr "Espaço"
-
-#: flatcamGUI/ObjectUI.py:2059
-#, fuzzy
-#| msgid "Delete all extensions from the list."
-msgid "Delete all exclusion areas."
-msgstr "Excluir todas as extensões da lista."
-
-#: flatcamGUI/ObjectUI.py:2068
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:212
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:322
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:286
-#: flatcamTools/ToolNCC.py:578 flatcamTools/ToolPaint.py:522
-msgid "Shape"
-msgstr "Formato"
-
-#: flatcamGUI/ObjectUI.py:2070
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:214
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:324
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:288
-#: flatcamTools/ToolNCC.py:580 flatcamTools/ToolPaint.py:524
-msgid "The kind of selection shape used for area selection."
-msgstr "O tipo de formato usado para a seleção de área."
-
-#: flatcamGUI/ObjectUI.py:2080
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:224
-msgid "Strategy"
-msgstr ""
-
-#: flatcamGUI/ObjectUI.py:2081
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:225
-msgid ""
-"The strategy followed when encountering an exclusion area.\n"
-"Can be:\n"
-"- Over -> when encountering the area, the tool will go to a set height\n"
-"- Around -> will avoid the exclusion area by going around the area"
-msgstr ""
-
-#: flatcamGUI/ObjectUI.py:2085
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:229
-#, fuzzy
-#| msgid "Overlap"
-msgid "Over"
-msgstr "Sobreposição"
-
-#: flatcamGUI/ObjectUI.py:2086
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:230
-#, fuzzy
-#| msgid "Round"
-msgid "Around"
-msgstr "Redondo"
-
-#: flatcamGUI/ObjectUI.py:2092
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:236
-#, fuzzy
-#| msgid "Overlap"
-msgid "Over Z"
-msgstr "Sobreposição"
-
-#: flatcamGUI/ObjectUI.py:2093
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:237
-msgid ""
-"The height Z to which the tool will rise in order to avoid\n"
-"an interdiction area."
-msgstr ""
-
-#: flatcamGUI/ObjectUI.py:2117
-msgid "Generate the CNC Job object."
-msgstr "Gera o objeto de Trabalho CNC."
-
-#: flatcamGUI/ObjectUI.py:2134
-msgid "Launch Paint Tool in Tools Tab."
-msgstr "Inicia a ferramenta de pintura na guia Ferramentas."
-
-#: flatcamGUI/ObjectUI.py:2142
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:35
-msgid ""
-"Creates tool paths to cover the\n"
-"whole area of a polygon (remove\n"
-"all copper). You will be asked\n"
-"to click on the desired polygon."
-msgstr ""
-"Cria caminhos de ferramenta para cobrir a área\n"
-"inteira de um polígono (remove todo o cobre).\n"
-"Você será solicitado a clicar no polígono desejado."
-
-#: flatcamGUI/ObjectUI.py:2197
-msgid "CNC Job Object"
-msgstr "Objeto de Trabalho CNC"
-
-#: flatcamGUI/ObjectUI.py:2208
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:45
-msgid "Plot kind"
-msgstr "Tipo de Gráfico"
-
-#: flatcamGUI/ObjectUI.py:2211
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:47
-msgid ""
-"This selects the kind of geometries on the canvas to plot.\n"
-"Those can be either of type 'Travel' which means the moves\n"
-"above the work piece or it can be of type 'Cut',\n"
-"which means the moves that cut into the material."
-msgstr ""
-"Seleciona o tipo de geometria mostrada na tela.\n"
-"Pode ser do tipo 'Deslocamento', com os movimentos acima da peça, do\n"
-"tipo 'Corte', com os movimentos cortando o material ou ambos."
-
-#: flatcamGUI/ObjectUI.py:2220
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:55
-msgid "Travel"
-msgstr "Deslocamento"
-
-#: flatcamGUI/ObjectUI.py:2224
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:64
-msgid "Display Annotation"
-msgstr "Exibir Anotação"
-
-#: flatcamGUI/ObjectUI.py:2226
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:66
-msgid ""
-"This selects if to display text annotation on the plot.\n"
-"When checked it will display numbers in order for each end\n"
-"of a travel line."
-msgstr ""
-"Seleciona se deseja exibir a anotação de texto no gráfico.\n"
-"Quando marcado, exibirá números para cada final\n"
-"de uma linha de deslocamento."
-
-#: flatcamGUI/ObjectUI.py:2241
-msgid "Travelled dist."
-msgstr "Dist. percorrida"
-
-#: flatcamGUI/ObjectUI.py:2243 flatcamGUI/ObjectUI.py:2248
-msgid ""
-"This is the total travelled distance on X-Y plane.\n"
-"In current units."
-msgstr ""
-"Essa é a distância total percorrida no plano XY,\n"
-"nas unidades atuais."
-
-#: flatcamGUI/ObjectUI.py:2253
-msgid "Estimated time"
-msgstr "Tempo estimado"
-
-#: flatcamGUI/ObjectUI.py:2255 flatcamGUI/ObjectUI.py:2260
-msgid ""
-"This is the estimated time to do the routing/drilling,\n"
-"without the time spent in ToolChange events."
-msgstr ""
-"Este é o tempo estimado para fazer o roteamento/perfuração,\n"
-"sem o tempo gasto em eventos de Alteração de Ferramentas."
-
-#: flatcamGUI/ObjectUI.py:2295
-msgid "CNC Tools Table"
-msgstr "Tabela de Ferra. CNC"
-
-#: flatcamGUI/ObjectUI.py:2298
-msgid ""
-"Tools in this CNCJob object used for cutting.\n"
-"The tool diameter is used for plotting on canvas.\n"
-"The 'Offset' entry will set an offset for the cut.\n"
-"'Offset' can be inside, outside, on path (none) and custom.\n"
-"'Type' entry is only informative and it allow to know the \n"
-"intent of using the current tool. \n"
-"It can be Rough(ing), Finish(ing) or Iso(lation).\n"
-"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n"
-"ball(B), or V-Shaped(V)."
-msgstr ""
-"Ferramentas usadas para o corte no Trabalho CNC.\n"
-"O diâmetro da ferramenta é usado para plotagem na tela.\n"
-"A entrada 'Deslocamento' define um deslocamento para o corte.\n"
-"'Deslocamento' pode ser dentro, fora, no caminho (nenhum) e personalizado. A "
-"entrada\n"
-"'Tipo' é apenas informativa e permite conhecer a necessidade de usar a "
-"ferramenta atual.\n"
-"Pode ser Desbaste, Acabamento ou Isolação.\n"
-"O 'Tipo de Ferramenta' (TF) pode ser circular com 1 a 4 dentes (C1..C4),\n"
-"bola (B) ou Em forma de V (V)."
-
-#: flatcamGUI/ObjectUI.py:2326 flatcamGUI/ObjectUI.py:2337
-msgid "P"
-msgstr "P"
-
-#: flatcamGUI/ObjectUI.py:2347
-msgid "Update Plot"
-msgstr "Atualizar Gráfico"
-
-#: flatcamGUI/ObjectUI.py:2349
-msgid "Update the plot."
-msgstr "Atualiza o gráfico."
-
-#: flatcamGUI/ObjectUI.py:2356
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:30
-msgid "Export CNC Code"
-msgstr "Exportar Código CNC"
-
-#: flatcamGUI/ObjectUI.py:2358
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:32
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:33
-msgid ""
-"Export and save G-Code to\n"
-"make this object to a file."
-msgstr ""
-"Exporta e salva em arquivo\n"
-"o G-Code para fazer este objeto."
-
-#: flatcamGUI/ObjectUI.py:2364
-msgid "Prepend to CNC Code"
-msgstr "Incluir no Início do Código CNC"
-
-#: flatcamGUI/ObjectUI.py:2366 flatcamGUI/ObjectUI.py:2373
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:49
-msgid ""
-"Type here any G-Code commands you would\n"
-"like to add at the beginning of the G-Code file."
-msgstr ""
-"Digite aqui os comandos G-Code que você gostaria\n"
-"de adicionar ao início do arquivo G-Code gerado."
-
-#: flatcamGUI/ObjectUI.py:2379
-msgid "Append to CNC Code"
-msgstr "Incluir no Final do Código CNC"
-
-#: flatcamGUI/ObjectUI.py:2381 flatcamGUI/ObjectUI.py:2389
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:65
-msgid ""
-"Type here any G-Code commands you would\n"
-"like to append to the generated file.\n"
-"I.e.: M2 (End of program)"
-msgstr ""
-"Digite aqui os comandos G-Code que você gostaria\n"
-"de adicionar ao final do arquivo G-Code gerado.\n"
-"M2 (Fim do programa)"
-
-#: flatcamGUI/ObjectUI.py:2403
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:38
-msgid "Toolchange G-Code"
-msgstr "G-Code para Troca de Ferramentas"
-
-#: flatcamGUI/ObjectUI.py:2406
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:41
-msgid ""
-"Type here any G-Code commands you would\n"
-"like to be executed when Toolchange event is encountered.\n"
-"This will constitute a Custom Toolchange GCode,\n"
-"or a Toolchange Macro.\n"
-"The FlatCAM variables are surrounded by '%' symbol.\n"
-"\n"
-"WARNING: it can be used only with a preprocessor file\n"
-"that has 'toolchange_custom' in it's name and this is built\n"
-"having as template the 'Toolchange Custom' posprocessor file."
-msgstr ""
-"Digite aqui os comandos do G-Code que você gostaria de executar quando o "
-"evento do Troca de Ferramentas for encontrado.\n"
-"Ele será um G-Code personalizado para Troca de Ferramentas,\n"
-"ou uma Macro.\n"
-"As variáveis do FlatCAM são circundadas pelo símbolo '%'.\n"
-"\n"
-"ATENÇÃO: pode ser usado apenas com um arquivo de pós-processamento\n"
-"que tenha 'toolchange_custom' em seu nome e este é construído tendo\n"
-"como modelo o arquivo de pós-processamento 'Customização da troca de "
-"ferramentas'."
-
-#: flatcamGUI/ObjectUI.py:2421
-msgid ""
-"Type here any G-Code commands you would\n"
-"like to be executed when Toolchange event is encountered.\n"
-"This will constitute a Custom Toolchange GCode,\n"
-"or a Toolchange Macro.\n"
-"The FlatCAM variables are surrounded by '%' symbol.\n"
-"WARNING: it can be used only with a preprocessor file\n"
-"that has 'toolchange_custom' in it's name."
-msgstr ""
-"Digite aqui qualquer comando G-Code que você deseja\n"
-"gostaria de ser executado quando o evento de troca de ferramentas é "
-"encontrado.\n"
-"Isso constituirá um G-Code personalizado de troca de ferramentas,\n"
-"ou uma macro de troca de ferramentas.\n"
-"As variáveis FlatCAM são cercadas pelo símbolo '%'.\n"
-"ATENÇÃO: ele pode ser usado apenas com um arquivo de pré-processador\n"
-"que possui 'toolchange_custom' em seu nome."
-
-#: flatcamGUI/ObjectUI.py:2436
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:80
-msgid "Use Toolchange Macro"
-msgstr "Usar Macro de Troca de Ferramentas"
-
-#: flatcamGUI/ObjectUI.py:2438
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:82
-msgid ""
-"Check this box if you want to use\n"
-"a Custom Toolchange GCode (macro)."
-msgstr ""
-"Marque esta caixa se você quiser usar a macro G-Code para Troca de "
-"Ferramentas."
-
-#: flatcamGUI/ObjectUI.py:2446
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:94
-msgid ""
-"A list of the FlatCAM variables that can be used\n"
-"in the Toolchange event.\n"
-"They have to be surrounded by the '%' symbol"
-msgstr ""
-"Uma lista das variáveis FlatCAM que podem ser usadas\n"
-"no evento Troca de Ferramentas.\n"
-"Elas devem estar cercadas pelo símbolo '%'"
-
-#: flatcamGUI/ObjectUI.py:2453
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:101
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:30
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:31
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:37
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:36
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:36
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:36
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:36
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:30
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:32
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:31
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31
-#: flatcamTools/ToolCopperThieving.py:89 flatcamTools/ToolFiducials.py:149
-#: flatcamTools/ToolInvertGerber.py:82
-msgid "Parameters"
-msgstr "Parâmetros"
-
-#: flatcamGUI/ObjectUI.py:2456
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:106
-msgid "FlatCAM CNC parameters"
-msgstr "Parâmetros do FlatCAM CNC"
-
-#: flatcamGUI/ObjectUI.py:2457
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:111
-msgid "tool number"
-msgstr "número da ferramenta"
-
-#: flatcamGUI/ObjectUI.py:2458
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:112
-msgid "tool diameter"
-msgstr "diâmetro da ferramenta"
-
-#: flatcamGUI/ObjectUI.py:2459
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:113
-msgid "for Excellon, total number of drills"
-msgstr "para Excellon, número total de furos"
-
-#: flatcamGUI/ObjectUI.py:2461
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:115
-msgid "X coord for Toolchange"
-msgstr "Coordenada X para troca de ferramenta"
-
-#: flatcamGUI/ObjectUI.py:2462
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:116
-msgid "Y coord for Toolchange"
-msgstr "Coordenada Y para troca de ferramenta"
-
-#: flatcamGUI/ObjectUI.py:2463
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:118
-msgid "Z coord for Toolchange"
-msgstr "Coordenada Z para troca de ferramenta"
-
-#: flatcamGUI/ObjectUI.py:2464
-msgid "depth where to cut"
-msgstr "profundidade de corte"
-
-#: flatcamGUI/ObjectUI.py:2465
-msgid "height where to travel"
-msgstr "altura para deslocamentos"
-
-#: flatcamGUI/ObjectUI.py:2466
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:121
-msgid "the step value for multidepth cut"
-msgstr "valor do passe para corte múltiplas profundidade"
-
-#: flatcamGUI/ObjectUI.py:2468
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:123
-msgid "the value for the spindle speed"
-msgstr "velocidade do spindle"
-
-#: flatcamGUI/ObjectUI.py:2470
-msgid "time to dwell to allow the spindle to reach it's set RPM"
-msgstr "tempo de espera para o spindle atingir sua vel. RPM"
-
-#: flatcamGUI/ObjectUI.py:2486
-msgid "View CNC Code"
-msgstr "Ver Código CNC"
-
-#: flatcamGUI/ObjectUI.py:2488
-msgid ""
-"Opens TAB to view/modify/print G-Code\n"
-"file."
-msgstr "Abre uma ABA para visualizar/modificar/imprimir o arquivo G-Code."
-
-#: flatcamGUI/ObjectUI.py:2493
-msgid "Save CNC Code"
-msgstr "Salvar Código CNC"
-
-#: flatcamGUI/ObjectUI.py:2495
-msgid ""
-"Opens dialog to save G-Code\n"
-"file."
-msgstr "Abre uma caixa de diálogo para salvar o arquivo G-Code."
-
-#: flatcamGUI/ObjectUI.py:2529
-msgid "Script Object"
-msgstr "Objeto Script"
-
-#: flatcamGUI/ObjectUI.py:2549 flatcamGUI/ObjectUI.py:2623
-msgid "Auto Completer"
-msgstr "Preenchimento Automático"
-
-#: flatcamGUI/ObjectUI.py:2551
-msgid "This selects if the auto completer is enabled in the Script Editor."
-msgstr ""
-"Selecionar se o preenchimento automático está ativado no Editor de Scripts."
-
-#: flatcamGUI/ObjectUI.py:2596
-msgid "Document Object"
-msgstr "Objeto Documento"
-
-#: flatcamGUI/ObjectUI.py:2625
-msgid "This selects if the auto completer is enabled in the Document Editor."
-msgstr ""
-"Selecionar se o preenchimento automático está ativado no Editor de "
-"Documentos."
-
-#: flatcamGUI/ObjectUI.py:2643
-msgid "Font Type"
-msgstr "Tipo de Fonte"
-
-#: flatcamGUI/ObjectUI.py:2660
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:197
-msgid "Font Size"
-msgstr "Tamanho da Fonte"
-
-#: flatcamGUI/ObjectUI.py:2696
-msgid "Alignment"
-msgstr "Alinhamento"
-
-#: flatcamGUI/ObjectUI.py:2701
-msgid "Align Left"
-msgstr "Esquerda"
-
-#: flatcamGUI/ObjectUI.py:2711
-msgid "Align Right"
-msgstr "Direita"
-
-#: flatcamGUI/ObjectUI.py:2716
-msgid "Justify"
-msgstr "Justificado"
-
-#: flatcamGUI/ObjectUI.py:2723
-msgid "Font Color"
-msgstr "Cor da Fonte"
-
-#: flatcamGUI/ObjectUI.py:2725
-msgid "Set the font color for the selected text"
-msgstr "Define a cor da fonte para o texto selecionado"
-
-#: flatcamGUI/ObjectUI.py:2739
-msgid "Selection Color"
-msgstr "Cor da Seleção"
-
-#: flatcamGUI/ObjectUI.py:2741
-msgid "Set the selection color when doing text selection."
-msgstr "Define a cor da seleção quando selecionando texto."
-
-#: flatcamGUI/ObjectUI.py:2755
-msgid "Tab Size"
-msgstr "Tamanho da Aba"
-
-#: flatcamGUI/ObjectUI.py:2757
-msgid "Set the tab size. In pixels. Default value is 80 pixels."
-msgstr "Define o tamanho da aba, em pixels. Valor padrão: 80 pixels."
-
-#: flatcamGUI/PlotCanvasLegacy.py:1299
-msgid ""
-"Could not annotate due of a difference between the number of text elements "
-"and the number of text positions."
-msgstr ""
-"Não foi possível anotar devido a uma diferença entre o número de elementos "
-"de texto e o número de posições de texto."
-
-#: flatcamGUI/preferences/PreferencesUIManager.py:911
-msgid "Preferences applied."
-msgstr "Preferências aplicadas."
-
-#: flatcamGUI/preferences/PreferencesUIManager.py:975
-msgid "Preferences closed without saving."
-msgstr "Preferências fechadas sem salvar."
-
-#: flatcamGUI/preferences/PreferencesUIManager.py:987
-msgid "Preferences default values are restored."
-msgstr "Os valores padrão das preferências são restaurados."
-
-#: flatcamGUI/preferences/PreferencesUIManager.py:1022
-#: flatcamGUI/preferences/PreferencesUIManager.py:1131
-msgid "Preferences saved."
-msgstr "Preferências salvas."
-
-#: flatcamGUI/preferences/PreferencesUIManager.py:1072
-msgid "Preferences edited but not saved."
-msgstr "Preferências editadas, mas não salvas."
-
-#: flatcamGUI/preferences/PreferencesUIManager.py:1117
-msgid ""
-"One or more values are changed.\n"
-"Do you want to save the Preferences?"
-msgstr ""
-"Um ou mais valores foram alterados.\n"
-"Você deseja salvar as preferências?"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:27
-msgid "CNC Job Adv. Options"
-msgstr "Opções Avançadas"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:64
-msgid ""
-"Type here any G-Code commands you would like to be executed when Toolchange "
-"event is encountered.\n"
-"This will constitute a Custom Toolchange GCode, or a Toolchange Macro.\n"
-"The FlatCAM variables are surrounded by '%' symbol.\n"
-"WARNING: it can be used only with a preprocessor file that has "
-"'toolchange_custom' in it's name."
-msgstr ""
-"Digite aqui qualquer comando G-Code que você deseja gostaria de ser "
-"executado quando o evento de troca de ferramentas é encontrado.\n"
-"Isso constituirá um G-Code personalizado de troca de ferramentas, ou uma "
-"macro de troca de ferramentas.\n"
-"As variáveis FlatCAM são cercadas pelo símbolo '%'.\n"
-"ATENÇÃO: ele pode ser usado apenas com um arquivo de pré-processador que "
-"possui 'toolchange_custom' em seu nome."
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:119
-msgid "Z depth for the cut"
-msgstr "Profundidade Z para o corte"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:120
-msgid "Z height for travel"
-msgstr "Altura Z para deslocamentos"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:126
-msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM"
-msgstr "dwelltime = tempo de espera para o spindle atingir sua vel. RPM"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:145
-msgid "Annotation Size"
-msgstr "Tamanho da Fonte"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:147
-msgid "The font size of the annotation text. In pixels."
-msgstr "O tamanho da fonte do texto de anotação, em pixels."
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:157
-msgid "Annotation Color"
-msgstr "Cor da Fonte"
-
-#: flatcamGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:159
-msgid "Set the font color for the annotation texts."
-msgstr "Define a cor da fonte para os textos de anotação."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:26
-msgid "CNC Job General"
-msgstr "Trabalho CNC Geral"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:77
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:47
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:59
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:45
-msgid "Circle Steps"
-msgstr "Passos do Círculo"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:79
-msgid ""
-"The number of circle steps for GCode \n"
-"circle and arc shapes linear approximation."
-msgstr ""
-"O número de etapas de círculo para G-Code.\n"
-"Aproximação linear para círculos e formas de arco."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:88
-msgid "Travel dia"
-msgstr "Diâmetro Desl."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:90
-msgid ""
-"The width of the travel lines to be\n"
-"rendered in the plot."
-msgstr "Largura da linha a ser renderizada no gráfico."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:103
-msgid "G-code Decimals"
-msgstr "Decimais de código G"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:106
-#: flatcamTools/ToolFiducials.py:74
-msgid "Coordinates"
-msgstr "Coordenadas"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:108
-msgid ""
-"The number of decimals to be used for \n"
-"the X, Y, Z coordinates in CNC code (GCODE, etc.)"
-msgstr ""
-"Número de decimais a ser usado para as coordenadas\n"
-"X, Y, Z no código do CNC (G-Code, etc.)"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:119
-#: flatcamTools/ToolProperties.py:519
-msgid "Feedrate"
-msgstr "Taxa de Avanço"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:121
-msgid ""
-"The number of decimals to be used for \n"
-"the Feedrate parameter in CNC code (GCODE, etc.)"
-msgstr ""
-"O número de decimais a ser usado para o parâmetro\n"
-"Taxa de Avanço no código CNC (G-Code, etc.)"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:132
-msgid "Coordinates type"
-msgstr "Tipo de coordenada"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:134
-msgid ""
-"The type of coordinates to be used in Gcode.\n"
-"Can be:\n"
-"- Absolute G90 -> the reference is the origin x=0, y=0\n"
-"- Incremental G91 -> the reference is the previous position"
-msgstr ""
-"O tipo de coordenada a ser usada no G-Code.\n"
-"Pode ser:\n"
-"- Absoluta G90 -> a referência é a origem x=0, y=0\n"
-"- Incremental G91 -> a referência é a posição anterior"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:140
-msgid "Absolute G90"
-msgstr "Absoluta G90"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:141
-msgid "Incremental G91"
-msgstr "Incremental G91"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:151
-msgid "Force Windows style line-ending"
-msgstr "Forçar final de linha no estilo Windows"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:153
-msgid ""
-"When checked will force a Windows style line-ending\n"
-"(\\r\\n) on non-Windows OS's."
-msgstr ""
-"Quando marcado forçará um final de linha no estilo Windows\n"
-"(\\r\\n) em sistemas operacionais não Windows."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:165
-msgid "Travel Line Color"
-msgstr "Cor da Linha de Viagem"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:169
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:235
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:262
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:154
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:220
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:84
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:153
-#: flatcamTools/ToolRulesCheck.py:186
-msgid "Outline"
-msgstr "Contorno"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:171
-msgid "Set the travel line color for plotted objects."
-msgstr "Defina a cor da linha de viagem para objetos plotados."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:186
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:252
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:279
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:170
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:237
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:170
-msgid "Fill"
-msgstr "Conteúdo"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:188
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:254
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:281
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:172
-msgid ""
-"Set the fill color for plotted objects.\n"
-"First 6 digits are the color and the last 2\n"
-"digits are for alpha (transparency) level."
-msgstr ""
-"Define a cor de preenchimento para os objetos plotados.\n"
-"Os primeiros 6 dígitos são a cor e os últimos 2\n"
-"dígitos são para o nível alfa (transparência)."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:205
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:298
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:190
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:257
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:189
-msgid "Alpha"
-msgstr "Alfa"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:207
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:300
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:191
-msgid "Set the fill transparency for plotted objects."
-msgstr "Define a transparência de preenchimento para objetos plotados."
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:231
-msgid "CNCJob Object Color"
-msgstr "Cor do objeto CNCJob"
-
-#: flatcamGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:237
-msgid "Set the color for plotted objects."
-msgstr "Defina a cor dos objetos plotados."
-
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:27
-msgid "CNC Job Options"
-msgstr "Opções de Trabalho CNC"
-
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:31
-msgid "Export G-Code"
-msgstr "Exportar G-Code"
-
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:47
-msgid "Prepend to G-Code"
-msgstr "Incluir no Início do G-Code"
-
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:56
-msgid ""
-"Type here any G-Code commands you would like to add at the beginning of the "
-"G-Code file."
-msgstr ""
-"Digite aqui os comandos G-Code que você gostaria de adicionar ao início do "
-"arquivo G-Code."
-
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:63
-msgid "Append to G-Code"
-msgstr "Incluir no final do G-Code"
-
-#: flatcamGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:73
-msgid ""
-"Type here any G-Code commands you would like to append to the generated "
-"file.\n"
-"I.e.: M2 (End of program)"
-msgstr ""
-"Digite aqui todos os comandos do código G que você gostaria de acrescentar "
-"ao arquivo gerado.\n"
-"Por exemplo: M2 (Fim do programa)"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:27
-msgid "Excellon Adv. Options"
-msgstr "Opções Avançadas Excellon"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:34
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:33
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:31
-msgid "Advanced Options"
-msgstr "Opções Avançadas"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:36
-msgid ""
-"A list of Excellon advanced parameters.\n"
-"Those parameters are available only for\n"
-"Advanced App. Level."
-msgstr ""
-"Uma lista de parâmetros avançados do Excellon.\n"
-"Esses parâmetros estão disponíveis somente para\n"
-"o nível avançado do aplicativo."
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:59
-msgid "Toolchange X,Y"
-msgstr "Troca de ferramenta X,Y"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:61
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:47
-msgid "Toolchange X,Y position."
-msgstr "Posição X,Y para troca de ferramentas."
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:121
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:134
-msgid "Spindle direction"
-msgstr "Sentido de Rotação"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:123
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:136
-msgid ""
-"This sets the direction that the spindle is rotating.\n"
-"It can be either:\n"
-"- CW = clockwise or\n"
-"- CCW = counter clockwise"
-msgstr ""
-"Define o sentido de rotação do spindle.\n"
-"Pode ser:\n"
-"- CW = sentido horário ou\n"
-"- CCW = sentido anti-horário"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:134
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:148
-msgid "Fast Plunge"
-msgstr "Mergulho Rápido"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:136
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:150
-msgid ""
-"By checking this, the vertical move from\n"
-"Z_Toolchange to Z_move is done with G0,\n"
-"meaning the fastest speed available.\n"
-"WARNING: the move is done at Toolchange X,Y coords."
-msgstr ""
-"Quando marcado, o movimento vertical da altura de Troca de\n"
-"Ferramentas para a altura de Deslocamento é feito com G0,\n"
-"na velocidade mais rápida disponível.\n"
-"AVISO: o movimento é feito nas Coordenadas X,Y de troca de ferramentas."
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:143
-msgid "Fast Retract"
-msgstr "Recolhimento Rápido"
-
-#: flatcamGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:145
-msgid ""
-"Exit hole strategy.\n"
-" - When uncheked, while exiting the drilled hole the drill bit\n"
-"will travel slow, with set feedrate (G1), up to zero depth and then\n"
-"travel as fast as possible (G0) to the Z Move (travel height).\n"
-" - When checked the travel from Z cut (cut depth) to Z_move\n"
-"(travel height) is done as fast as possible (G0) in one move."
-msgstr ""
-"Estratégia para sair dos furos.\n"
-"- Quando desmarcado, ao sair do furo, a broca sobe lentamente, com\n"
-" avanço definido (G1), até a profundidade zero e depois some o mais\n"
-" rápido possível (G0) até a altura de deslocamento.\n"
-"- Quando marcado, a subida da profundidade de corte para a altura de\n"
-" deslocamento é feita o mais rápido possível (G0) em um único movimento."
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:32
-msgid "A list of Excellon Editor parameters."
-msgstr "Parâmetros do Editor Excellon."
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:40
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:41
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:41
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:194
-msgid "Selection limit"
-msgstr "Lim. de seleção"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:42
-msgid ""
-"Set the number of selected Excellon geometry\n"
-"items above which the utility geometry\n"
-"becomes just a selection rectangle.\n"
-"Increases the performance when moving a\n"
-"large number of geometric elements."
-msgstr ""
-"Define o número máximo de ítens de geometria Excellon\n"
-"selecionados. Acima desse valor a geometria se torna um\n"
-"retângulo de seleção Aumenta o desempenho ao mover um\n"
-"grande número de elementos geométricos."
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:55
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:117
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:123
-msgid "New Dia"
-msgstr "Novo Diâmetro"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:80
-msgid "Linear Drill Array"
-msgstr "Matriz Linear de Furos"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:84
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:232
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:120
-msgid "Linear Direction"
-msgstr "Direção Linear"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:126
-msgid "Circular Drill Array"
-msgstr "Matriz Circular de Furos"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:130
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:280
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:164
-msgid "Circular Direction"
-msgstr "Direção Circular"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:132
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:282
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:166
-msgid ""
-"Direction for circular array.\n"
-"Can be CW = clockwise or CCW = counter clockwise."
-msgstr ""
-"Sentido da matriz circular.\n"
-"Pode ser CW = sentido horário ou CCW = sentido anti-horário."
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:143
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:293
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:177
-msgid "Circular Angle"
-msgstr "Ângulo Circular"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:196
-msgid ""
-"Angle at which the slot is placed.\n"
-"The precision is of max 2 decimals.\n"
-"Min value is: -359.99 degrees.\n"
-"Max value is: 360.00 degrees."
-msgstr ""
-"Ângulo no qual a ranhura é colocada.\n"
-"A precisão é de no máximo 2 decimais.\n"
-"Valor mínimo: -359.99 graus.\n"
-"Valor máximo: 360.00 graus."
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:215
-msgid "Linear Slot Array"
-msgstr "Matriz Linear de Ranhuras"
-
-#: flatcamGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:276
-msgid "Circular Slot Array"
-msgstr "Matriz Circular de Ranhuras"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:26
-msgid "Excellon Export"
-msgstr "Exportar Excellon"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:30
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:31
-msgid "Export Options"
-msgstr "Opções da Exportação"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:32
-msgid ""
-"The parameters set here are used in the file exported\n"
-"when using the File -> Export -> Export Excellon menu entry."
-msgstr ""
-"Os parâmetros definidos aqui são usados no arquivo exportado\n"
-"ao usar a entrada de menu Arquivo -> Exportar -> Exportar Excellon."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:41
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:163
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:39
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:42
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:82
-#: flatcamTools/ToolDistance.py:56 flatcamTools/ToolDistanceMin.py:50
-#: flatcamTools/ToolPcbWizard.py:127 flatcamTools/ToolProperties.py:154
-msgid "Units"
-msgstr "Unidades"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:43
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:49
-msgid "The units used in the Excellon file."
-msgstr "A unidade usada no arquivo Excellon gerado."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:46
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:87
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:173
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:47
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:87
-#: flatcamTools/ToolCalculators.py:61 flatcamTools/ToolPcbWizard.py:125
-msgid "INCH"
-msgstr "in"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:47
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:174
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:43
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:48
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:88
-#: flatcamTools/ToolCalculators.py:62 flatcamTools/ToolPcbWizard.py:126
-msgid "MM"
-msgstr "mm"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:55
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:56
-msgid "Int/Decimals"
-msgstr "Int/Decimais"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:57
-msgid ""
-"The NC drill files, usually named Excellon files\n"
-"are files that can be found in different formats.\n"
-"Here we set the format used when the provided\n"
-"coordinates are not using period."
-msgstr ""
-"Os arquivos NC com a furação, geralmente chamados de arquivos Excellon\n"
-"são arquivos que podem ser encontrados em diferentes formatos.\n"
-"Aqui é definido o formato usado quando as coordenadas\n"
-"fornecidas não usam ponto."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:69
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:95
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:124
-msgid ""
-"This numbers signify the number of digits in\n"
-"the whole part of Excellon coordinates."
-msgstr ""
-"Este número configura o número de dígitos\n"
-"da parte inteira das coordenadas de Excellon."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:82
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:108
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:137
-msgid ""
-"This numbers signify the number of digits in\n"
-"the decimal part of Excellon coordinates."
-msgstr ""
-"Este número configura o número de dígitos\n"
-"da parte decimal das coordenadas de Excellon."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:91
-msgid "Format"
-msgstr "Formato"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:93
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:103
-msgid ""
-"Select the kind of coordinates format used.\n"
-"Coordinates can be saved with decimal point or without.\n"
-"When there is no decimal point, it is required to specify\n"
-"the number of digits for integer part and the number of decimals.\n"
-"Also it will have to be specified if LZ = leading zeros are kept\n"
-"or TZ = trailing zeros are kept."
-msgstr ""
-"Selecione o formato de coordenadas a usar.\n"
-"As coordenadas podem ser salvas com ou sem ponto decimal.\n"
-"Quando não há ponto decimal, é necessário especificar\n"
-"o número de dígitos para a parte inteira e o número de casas decimais.\n"
-"Deve ser especificado LZ (manter zeros à esquerda)\n"
-"ou TZ (manter zeros à direita)."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:100
-msgid "Decimal"
-msgstr "Decimal"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:101
-msgid "No-Decimal"
-msgstr "Não Decimal"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:114
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:145
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:96
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:97
-msgid "Zeros"
-msgstr "Zeros"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:117
-msgid ""
-"This sets the type of Excellon zeros.\n"
-"If LZ then Leading Zeros are kept and\n"
-"Trailing Zeros are removed.\n"
-"If TZ is checked then Trailing Zeros are kept\n"
-"and Leading Zeros are removed."
-msgstr ""
-"Define o tipo de zeros de Excellon.\n"
-"LZ: mantém os zeros à esquerda e remove os zeros à direita.\n"
-"TZ: mantém os zeros à direita e remove os zeros à esquerda."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:124
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:158
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:106
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:107
-#: flatcamTools/ToolPcbWizard.py:111
-msgid "LZ"
-msgstr "LZ"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:125
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:159
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:107
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:108
-#: flatcamTools/ToolPcbWizard.py:112
-msgid "TZ"
-msgstr "TZ"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:127
-msgid ""
-"This sets the default type of Excellon zeros.\n"
-"If LZ then Leading Zeros are kept and\n"
-"Trailing Zeros are removed.\n"
-"If TZ is checked then Trailing Zeros are kept\n"
-"and Leading Zeros are removed."
-msgstr ""
-"Define o tipo padrão de zeros de Excellon.\n"
-"LZ: mantém os zeros à esquerda e remove os zeros à direita.\n"
-"TZ: mantém os zeros à direita e remove os zeros à esquerda."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:137
-msgid "Slot type"
-msgstr "Tipo de Ranhura"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:140
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:150
-msgid ""
-"This sets how the slots will be exported.\n"
-"If ROUTED then the slots will be routed\n"
-"using M15/M16 commands.\n"
-"If DRILLED(G85) the slots will be exported\n"
-"using the Drilled slot command (G85)."
-msgstr ""
-"Definição de como as ranhuras serão exportadas.\n"
-"Se ROTEADO, as ranhuras serão roteadas\n"
-"usando os comandos M15/M16.\n"
-"Se PERFURADO as ranhuras serão exportadas\n"
-"usando o comando Perfuração (G85)."
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:147
-msgid "Routed"
-msgstr "Roteado"
-
-#: flatcamGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:148
-msgid "Drilled(G85)"
-msgstr "Perfurado (G85)"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:29
-msgid "Excellon General"
-msgstr "Excellon Geral"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:62
-msgid "Excellon Format"
-msgstr "Formato Excellon"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:64
-msgid ""
-"The NC drill files, usually named Excellon files\n"
-"are files that can be found in different formats.\n"
-"Here we set the format used when the provided\n"
-"coordinates are not using period.\n"
-"\n"
-"Possible presets:\n"
-"\n"
-"PROTEUS 3:3 MM LZ\n"
-"DipTrace 5:2 MM TZ\n"
-"DipTrace 4:3 MM LZ\n"
-"\n"
-"EAGLE 3:3 MM TZ\n"
-"EAGLE 4:3 MM TZ\n"
-"EAGLE 2:5 INCH TZ\n"
-"EAGLE 3:5 INCH TZ\n"
-"\n"
-"ALTIUM 2:4 INCH LZ\n"
-"Sprint Layout 2:4 INCH LZ\n"
-"KiCAD 3:5 INCH TZ"
-msgstr ""
-"Os arquivos de furos NC, normalmente chamados arquivos Excellon\n"
-"são arquivos que podem ser encontrados em diferentes formatos.\n"
-"Aqui é definido o formato usado quando as coordenadas\n"
-"fornecidas não estiverem usando ponto.\n"
-"\n"
-"Padrões possíveis:\n"
-"\n"
-"PROTEUS 3:3 mm LZ\n"
-"DipTrace 5:2 mm TZ\n"
-"DipTrace 4:3 mm LZ\n"
-"\n"
-"EAGLE 3:3 mm TZ\n"
-"EAGLE 4:3 mm TZ\n"
-"EAGLE 2:5 polegadas TZ\n"
-"EAGLE 3:5 polegadas TZ\n"
-"\n"
-"ALTIUM 2:4 polegadas LZ\n"
-"Sprint Layout 2:4 polegadas LZ\n"
-"KiCAD 3:5 polegadas TZ"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:88
-msgid "Default values for INCH are 2:4"
-msgstr "Valores padrão para Polegadas: 2:4"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:116
-msgid "METRIC"
-msgstr "MÉTRICO"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:117
-msgid "Default values for METRIC are 3:3"
-msgstr "Valores padrão para Métrico: 3:3"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:148
-msgid ""
-"This sets the type of Excellon zeros.\n"
-"If LZ then Leading Zeros are kept and\n"
-"Trailing Zeros are removed.\n"
-"If TZ is checked then Trailing Zeros are kept\n"
-"and Leading Zeros are removed.\n"
-"\n"
-"This is used when there is no information\n"
-"stored in the Excellon file."
-msgstr ""
-"Define o tipo de zeros de Excellon.\n"
-"LZ: mantém os zeros à esquerda e remove os zeros à direita.\n"
-"TZ: mantém os zeros à direita e remove os zeros à esquerda.\n"
-"\n"
-"Isso é usado quando não há informações\n"
-"armazenado no arquivo Excellon."
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:166
-msgid ""
-"This sets the default units of Excellon files.\n"
-"If it is not detected in the parsed file the value here\n"
-"will be used.Some Excellon files don't have an header\n"
-"therefore this parameter will be used."
-msgstr ""
-"Configura as unidades padrão dos arquivos Excellon.\n"
-"Alguns arquivos Excellon não possuem um cabeçalho.\n"
-"Se não for detectado no arquivo analisado, este padrão\n"
-"será usado."
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:176
-msgid ""
-"This sets the units of Excellon files.\n"
-"Some Excellon files don't have an header\n"
-"therefore this parameter will be used."
-msgstr ""
-"Configura as unidades dos arquivos Excellon.\n"
-"Alguns arquivos Excellon não possuem um cabeçalho,\n"
-"e assim este parâmetro será usado."
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:184
-msgid "Update Export settings"
-msgstr "Atualizar config. de exportação"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:201
-msgid "Excellon Optimization"
-msgstr "Otimização Excellon"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:204
-msgid "Algorithm:"
-msgstr "Algoritmo:"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:206
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:222
-msgid ""
-"This sets the optimization type for the Excellon drill path.\n"
-"If <> is checked then Google OR-Tools algorithm with\n"
-"MetaHeuristic Guided Local Path is used. Default search time is 3sec.\n"
-"If <> is checked then Google OR-Tools Basic algorithm is used.\n"
-"If <> is checked then Travelling Salesman algorithm is used for\n"
-"drill path optimization.\n"
-"\n"
-"If this control is disabled, then FlatCAM works in 32bit mode and it uses\n"
-"Travelling Salesman algorithm for path optimization."
-msgstr ""
-"Define o tipo de otimização para o caminho de perfuração do Excellon.\n"
-"Se <>estiver selecionado, será usado o algoritmo do Google OR-"
-"Tools com MetaHeuristic.\n"
-"O tempo de pesquisa padrão é de 3s.\n"
-"Usar o comando TCL set_sys excellon_search_time para definir outros "
-"valores.\n"
-"Se <> estiver selecionado, será usado o algoritmo básico do Google "
-"OR-Tools.\n"
-"Se <> estiver selecionado, será usado o algoritmo Travelling Salesman.\n"
-"\n"
-"Se este controle está desabilitado, FlatCAM está no modo de 32 bits e usa\n"
-"o algoritmo Travelling Salesman para otimização de caminhos."
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:217
-msgid "MetaHeuristic"
-msgstr "MetaHeuristic"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:218
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:104
-#: flatcamObjects/FlatCAMExcellon.py:614 flatcamObjects/FlatCAMGeometry.py:510
-#: flatcamObjects/FlatCAMGerber.py:251
-msgid "Basic"
-msgstr "Básico"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:219
-msgid "TSA"
-msgstr "TSA"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:236
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:245
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:237
-msgid "Duration"
-msgstr "Tempo de espera"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:239
-msgid ""
-"When OR-Tools Metaheuristic (MH) is enabled there is a\n"
-"maximum threshold for how much time is spent doing the\n"
-"path optimization. This max duration is set here.\n"
-"In seconds."
-msgstr ""
-"Quando o Metaheuristic (MH) da OR-Tools está ativado, este é o limite\n"
-"máximo de tempo para otimizar o caminho, em segundos. Padrão: 3."
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:258
-msgid "Excellon Object Color"
-msgstr "Cor do objeto Excellon"
-
-#: flatcamGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:264
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:86
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:155
-msgid "Set the line color for plotted objects."
-msgstr "Define a cor da linha para objetos plotados."
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:29
-msgid "Excellon Options"
-msgstr "Opções Excellon"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:33
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:34
-msgid "Create CNC Job"
-msgstr "Criar Trabalho CNC"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:35
-msgid ""
-"Parameters used to create a CNC Job object\n"
-"for this drill object."
-msgstr ""
-"Parâmetros usados para criar um objeto de Trabalho CNC\n"
-"para a furação."
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:152
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:121
-msgid "Tool change"
-msgstr "Troca de Ferramentas"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:236
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:232
-msgid "Enable Dwell"
-msgstr "Ativar Pausa"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:259
-msgid ""
-"The preprocessor JSON file that dictates\n"
-"Gcode output."
-msgstr ""
-"O arquivo de pós-processamento (JSON) que define\n"
-"a saída G-Code."
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:270
-msgid "Gcode"
-msgstr "G-Code"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:272
-msgid ""
-"Choose what to use for GCode generation:\n"
-"'Drills', 'Slots' or 'Both'.\n"
-"When choosing 'Slots' or 'Both', slots will be\n"
-"converted to drills."
-msgstr ""
-"Escolha o que usar para a geração de G-Code:\n"
-"'Furos', 'Ranhuras' ou 'Ambos'.\n"
-"Quando escolher 'Ranhuras' ou 'Ambos', as ranhuras serão\n"
-"convertidos para furos."
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:288
-msgid "Mill Holes"
-msgstr "Furação"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:290
-msgid "Create Geometry for milling holes."
-msgstr "Cria geometria para furação."
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:294
-msgid "Drill Tool dia"
-msgstr "Diâmetro da Broca"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:305
-msgid "Slot Tool dia"
-msgstr "Diâmetro da Fresa"
-
-#: flatcamGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:307
-msgid ""
-"Diameter of the cutting tool\n"
-"when milling slots."
-msgstr ""
-"Diâmetro da ferramenta de corte\n"
-"quando fresar fendas (ranhuras)."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:28
-msgid "App Settings"
-msgstr "Configurações do Aplicativo"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:49
-msgid "Grid Settings"
-msgstr "Configurações de Grade"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:53
-msgid "X value"
-msgstr "Valor X"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:55
-msgid "This is the Grid snap value on X axis."
-msgstr "Este é o valor do encaixe à grade no eixo X."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:65
-msgid "Y value"
-msgstr "Valor Y"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:67
-msgid "This is the Grid snap value on Y axis."
-msgstr "Este é o valor do encaixe à grade no eixo Y."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:77
-msgid "Snap Max"
-msgstr "Encaixe Max"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:92
-msgid "Workspace Settings"
-msgstr "Configurações da área de trabalho"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:95
-msgid "Active"
-msgstr "Ativo"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:97
-msgid ""
-"Draw a delimiting rectangle on canvas.\n"
-"The purpose is to illustrate the limits for our work."
-msgstr ""
-"Desenha um retângulo de delimitação na tela.\n"
-"O objetivo é ilustrar os limites do nosso trabalho."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:105
-msgid ""
-"Select the type of rectangle to be used on canvas,\n"
-"as valid workspace."
-msgstr ""
-"Selecione o tipo de retângulo a ser usado na tela,\n"
-"como área de trabalho válida."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:171
-msgid "Orientation"
-msgstr "Orientação"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:172
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:239
-#: flatcamTools/ToolFilm.py:422
-msgid ""
-"Can be:\n"
-"- Portrait\n"
-"- Landscape"
-msgstr ""
-"Pode ser:\n"
-"- Retrato\n"
-"- Paisagem"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:176
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:243
-#: flatcamTools/ToolFilm.py:426
-msgid "Portrait"
-msgstr "Retrato"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:177
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:244
-#: flatcamTools/ToolFilm.py:427
-msgid "Landscape"
-msgstr "Paisagem"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:201
-msgid "Notebook"
-msgstr "Caderno"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:203
-msgid ""
-"This sets the font size for the elements found in the Notebook.\n"
-"The notebook is the collapsible area in the left side of the GUI,\n"
-"and include the Project, Selected and Tool tabs."
-msgstr ""
-"Isso define o tamanho da fonte para os elementos encontrados no bloco de "
-"notas.\n"
-"O bloco de notas é a área desmontável no lado esquerdo da GUI,\n"
-"e inclui as guias Projeto, Selecionado e Ferramenta."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:222
-msgid "Axis"
-msgstr "Eixo"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:224
-msgid "This sets the font size for canvas axis."
-msgstr "Define o tamanho da fonte para o eixo da tela."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:241
-msgid "Textbox"
-msgstr "Caixa de texto"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:243
-msgid ""
-"This sets the font size for the Textbox GUI\n"
-"elements that are used in FlatCAM."
-msgstr ""
-"Define o tamanho da fonte da caixa de texto\n"
-"de elementos da GUI usados no FlatCAM."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:269
-msgid "Mouse Settings"
-msgstr "Configurações do mouse"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:273
-msgid "Cursor Shape"
-msgstr "Forma do Cursor"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:275
-msgid ""
-"Choose a mouse cursor shape.\n"
-"- Small -> with a customizable size.\n"
-"- Big -> Infinite lines"
-msgstr ""
-"Escolha uma forma de cursor do mouse.\n"
-"- Pequeno -> com um tamanho personalizável.\n"
-"- Grande -> Linhas infinitas"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:281
-msgid "Small"
-msgstr "Pequeno"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:282
-msgid "Big"
-msgstr "Grande"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:289
-msgid "Cursor Size"
-msgstr "Tamanho do Cursor"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:291
-msgid "Set the size of the mouse cursor, in pixels."
-msgstr "Define o tamanho do cursor do mouse, em pixels."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:302
-msgid "Cursor Width"
-msgstr "Largura do Cursor"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:304
-msgid "Set the line width of the mouse cursor, in pixels."
-msgstr "Defina a largura da linha do cursor do mouse, em pixels."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:315
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:322
-msgid "Cursor Color"
-msgstr "Cor do Cursor"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:317
-msgid "Check this box to color mouse cursor."
-msgstr "Marque esta caixa para colorir o cursor do mouse."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:324
-msgid "Set the color of the mouse cursor."
-msgstr "Defina a cor do cursor do mouse."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:347
-msgid "Pan Button"
-msgstr "Botão Pan"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:349
-msgid ""
-"Select the mouse button to use for panning:\n"
-"- MMB --> Middle Mouse Button\n"
-"- RMB --> Right Mouse Button"
-msgstr ""
-"Selecione o botão do mouse para usar o panning:\n"
-"- BM -> Botão do meio do mouse\n"
-"- BD -> botão direito do mouse"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:353
-msgid "MMB"
-msgstr "BM"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:354
-msgid "RMB"
-msgstr "BD"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:360
-msgid "Multiple Selection"
-msgstr "Seleção Múltipla"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:362
-msgid "Select the key used for multiple selection."
-msgstr "Selecione a tecla usada para seleção múltipla."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:364
-msgid "CTRL"
-msgstr "CTRL"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:365
-msgid "SHIFT"
-msgstr "SHIFT"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:376
-msgid "Delete object confirmation"
-msgstr "Confirmação excluir objeto"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:378
-msgid ""
-"When checked the application will ask for user confirmation\n"
-"whenever the Delete object(s) event is triggered, either by\n"
-"menu shortcut or key shortcut."
-msgstr ""
-"Quando marcada, o aplicativo pedirá a confirmação do usuário\n"
-"sempre que o evento Excluir objeto(s) é acionado, seja por\n"
-"atalho de menu ou atalho de tecla."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:385
-msgid "\"Open\" behavior"
-msgstr "Comportamento \"Abrir\""
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:387
-msgid ""
-"When checked the path for the last saved file is used when saving files,\n"
-"and the path for the last opened file is used when opening files.\n"
-"\n"
-"When unchecked the path for opening files is the one used last: either the\n"
-"path for saving files or the path for opening files."
-msgstr ""
-"Quando marcado, o caminho do último arquivo salvo é usado ao salvar "
-"arquivos,\n"
-"e o caminho para o último arquivo aberto é usado ao abrir arquivos.\n"
-"\n"
-"Quando desmarcado, o caminho para abrir arquivos é aquele usado por último:\n"
-"o caminho para salvar arquivos ou o caminho para abrir arquivos."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:396
-msgid "Enable ToolTips"
-msgstr "Habilitar Dicas"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:398
-msgid ""
-"Check this box if you want to have toolTips displayed\n"
-"when hovering with mouse over items throughout the App."
-msgstr ""
-"Marque esta caixa se quiser que as dicas de ferramentas sejam exibidas\n"
-"ao passar o mouse sobre os itens em todo o aplicativo."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:405
-msgid "Allow Machinist Unsafe Settings"
-msgstr "Permitir configurações inseguras de operador"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:407
-msgid ""
-"If checked, some of the application settings will be allowed\n"
-"to have values that are usually unsafe to use.\n"
-"Like Z travel negative values or Z Cut positive values.\n"
-"It will applied at the next application start.\n"
-"<>: Don't change this unless you know what you are doing !!!"
-msgstr ""
-"Se marcado, algumas das configurações do aplicativo poderão\n"
-"ter valores que geralmente não são seguros.\n"
-"Como Deslocamento Z com valores negativos ou Altura de Corte Z com valores "
-"positivos.\n"
-"Será aplicado no próximo início do aplicativo.\n"
-"<>: Não habilite, a menos que você saiba o que está fazendo !!!"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:419
-msgid "Bookmarks limit"
-msgstr "Limite de favoritos"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:421
-msgid ""
-"The maximum number of bookmarks that may be installed in the menu.\n"
-"The number of bookmarks in the bookmark manager may be greater\n"
-"but the menu will hold only so much."
-msgstr ""
-"O número máximo de favoritos que podem ser instalados no menu.\n"
-"O número de favoritos no gerenciador de favoritos pode ser maior,\n"
-"mas o menu mostrará apenas esse número."
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:430
-msgid "Activity Icon"
-msgstr "Ícone de Atividade"
-
-#: flatcamGUI/preferences/general/GeneralAPPSetGroupUI.py:432
-msgid "Select the GIF that show activity when FlatCAM is active."
-msgstr "Selecione o GIF que mostra a atividade quando o FlatCAM está ativo."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:29
-msgid "App Preferences"
-msgstr "Preferências do aplicativo"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:40
-msgid ""
-"The default value for FlatCAM units.\n"
-"Whatever is selected here is set every time\n"
-"FlatCAM is started."
-msgstr ""
-"Unidade utilizada como padrão para os valores no FlatCAM.\n"
-"O que estiver selecionado aqui será considerado sempre que\n"
-"o FLatCAM for iniciado."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:44
-msgid "IN"
-msgstr "in"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:50
-msgid "Precision MM"
-msgstr "Precisão mm"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:52
-msgid ""
-"The number of decimals used throughout the application\n"
-"when the set units are in METRIC system.\n"
-"Any change here require an application restart."
-msgstr ""
-"O número de casas decimais usadas em todo o aplicativo\n"
-"quando as unidades definidas estiverem no sistema MÉTRICO.\n"
-"Qualquer alteração aqui requer uma reinicialização do aplicativo."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:64
-msgid "Precision INCH"
-msgstr "Precisão in"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:66
-msgid ""
-"The number of decimals used throughout the application\n"
-"when the set units are in INCH system.\n"
-"Any change here require an application restart."
-msgstr ""
-"O número de casas decimais usadas em todo o aplicativo\n"
-"quando as unidades definidas estiverem no sistema INGLÊS.\n"
-"Qualquer alteração aqui requer uma reinicialização do aplicativo."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:78
-msgid "Graphic Engine"
-msgstr "Mecanismo Gráfico"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:79
-msgid ""
-"Choose what graphic engine to use in FlatCAM.\n"
-"Legacy(2D) -> reduced functionality, slow performance but enhanced "
-"compatibility.\n"
-"OpenGL(3D) -> full functionality, high performance\n"
-"Some graphic cards are too old and do not work in OpenGL(3D) mode, like:\n"
-"Intel HD3000 or older. In this case the plot area will be black therefore\n"
-"use the Legacy(2D) mode."
-msgstr ""
-"Escolha qual mecanismo gráfico usar no FlatCAM.\n"
-"Legado (2D) -> funcionalidade reduzida, desempenho lento, mas "
-"compatibilidade aprimorada.\n"
-"OpenGL (3D) -> funcionalidade completa, alto desempenho\n"
-"Algumas placas gráficas são muito antigas e não funcionam no modo OpenGL "
-"(3D), como:\n"
-"Intel HD3000 ou mais antigo. Nesse caso, a área de plotagem será preta. "
-"Nesse caso,\n"
-"use o modo Legado (2D)."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:85
-msgid "Legacy(2D)"
-msgstr "Legado(2D)"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:86
-msgid "OpenGL(3D)"
-msgstr "OpenGL(3D)"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:98
-msgid "APP. LEVEL"
-msgstr "Nível do Aplicativo"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:99
-msgid ""
-"Choose the default level of usage for FlatCAM.\n"
-"BASIC level -> reduced functionality, best for beginner's.\n"
-"ADVANCED level -> full functionality.\n"
-"\n"
-"The choice here will influence the parameters in\n"
-"the Selected Tab for all kinds of FlatCAM objects."
-msgstr ""
-"Escolha o nível padrão de uso para FlatCAM.\n"
-"Nível BÁSICO -> funcionalidade reduzida, melhor para iniciantes.\n"
-"Nível AVANÇADO -> funcionalidade completa.\n"
-"\n"
-"A escolha influenciará os parâmetros na Aba\n"
-"Selecionado para todos os tipos de objetos FlatCAM."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:105
-#: flatcamObjects/FlatCAMExcellon.py:627 flatcamObjects/FlatCAMGeometry.py:531
-#: flatcamObjects/FlatCAMGerber.py:278
-msgid "Advanced"
-msgstr "Avançado"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:111
-msgid "Portable app"
-msgstr "Aplicativo portátil"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:112
-msgid ""
-"Choose if the application should run as portable.\n"
-"\n"
-"If Checked the application will run portable,\n"
-"which means that the preferences files will be saved\n"
-"in the application folder, in the lib\\config subfolder."
-msgstr ""
-"Escolha se o aplicativo deve ser executado como portátil.\n"
-"\n"
-"Se marcado, o aplicativo será executado como portátil,\n"
-"o que significa que os arquivos de preferências serão salvos\n"
-"na pasta do aplicativo, na subpasta lib\\config."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:125
-msgid "Languages"
-msgstr "Idioma"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:126
-msgid "Set the language used throughout FlatCAM."
-msgstr "Defina o idioma usado no FlatCAM."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:132
-msgid "Apply Language"
-msgstr "Aplicar o Idioma"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:133
-msgid ""
-"Set the language used throughout FlatCAM.\n"
-"The app will restart after click."
-msgstr ""
-"Defina o idioma usado no FlatCAM.\n"
-"O aplicativo será reiniciado após o clique."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:147
-msgid "Startup Settings"
-msgstr "Configurações de Inicialização"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:151
-msgid "Splash Screen"
-msgstr "Tela de Abertura"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:153
-msgid "Enable display of the splash screen at application startup."
-msgstr "Habilita a Tela de Abertura na inicialização do aplicativo."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:165
-msgid "Sys Tray Icon"
-msgstr "Ícone da Bandeja do Sistema"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:167
-msgid "Enable display of FlatCAM icon in Sys Tray."
-msgstr "Ativa a exibição do ícone do FlatCAM na bandeja do sistema."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:172
-msgid "Show Shell"
-msgstr "Mostrar Shell"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:174
-msgid ""
-"Check this box if you want the shell to\n"
-"start automatically at startup."
-msgstr ""
-"Marque esta caixa se você deseja que o shell (linha de comando)\n"
-"seja inicializado automaticamente na inicialização."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:181
-msgid "Show Project"
-msgstr "Mostrar Projeto"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:183
-msgid ""
-"Check this box if you want the project/selected/tool tab area to\n"
-"to be shown automatically at startup."
-msgstr ""
-"Marque esta caixa se você quiser que a aba Projeto/Selecionado/Ferramenta\n"
-"seja apresentada automaticamente na inicialização."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:189
-msgid "Version Check"
-msgstr "Verificar Versão"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:191
-msgid ""
-"Check this box if you want to check\n"
-"for a new version automatically at startup."
-msgstr ""
-"Marque esta caixa se você quiser verificar\n"
-"por nova versão automaticamente na inicialização."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:198
-msgid "Send Statistics"
-msgstr "Enviar estatísticas"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:200
-msgid ""
-"Check this box if you agree to send anonymous\n"
-"stats automatically at startup, to help improve FlatCAM."
-msgstr ""
-"Marque esta caixa se você concorda em enviar dados anônimos\n"
-"automaticamente na inicialização, para ajudar a melhorar o FlatCAM."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:214
-msgid "Workers number"
-msgstr "Número de trabalhadores"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:216
-msgid ""
-"The number of Qthreads made available to the App.\n"
-"A bigger number may finish the jobs more quickly but\n"
-"depending on your computer speed, may make the App\n"
-"unresponsive. Can have a value between 2 and 16.\n"
-"Default value is 2.\n"
-"After change, it will be applied at next App start."
-msgstr ""
-"O número de Qthreads disponibilizados para o App.\n"
-"Um número maior pode executar os trabalhos mais rapidamente, mas\n"
-"dependendo da velocidade do computador, pode fazer com que o App\n"
-"não responda. Pode ter um valor entre 2 e 16. O valor padrão é 2.\n"
-"Após a mudança, ele será aplicado na próxima inicialização."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:230
-msgid "Geo Tolerance"
-msgstr "Tolerância Geo"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:232
-msgid ""
-"This value can counter the effect of the Circle Steps\n"
-"parameter. Default value is 0.005.\n"
-"A lower value will increase the detail both in image\n"
-"and in Gcode for the circles, with a higher cost in\n"
-"performance. Higher value will provide more\n"
-"performance at the expense of level of detail."
-msgstr ""
-"Este valor pode contrariar o efeito do parâmetro Passos do Círculo.\n"
-"O valor padrão é 0.005.\n"
-"Um valor mais baixo aumentará os detalhes na imagem e no G-Code\n"
-"para os círculos, com um custo maior em desempenho.\n"
-"Um valor maior proporcionará mais desempenho à custa do nível\n"
-"de detalhes."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:252
-msgid "Save Settings"
-msgstr "Configurações para Salvar"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:256
-msgid "Save Compressed Project"
-msgstr "Salvar Projeto Compactado"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:258
-msgid ""
-"Whether to save a compressed or uncompressed project.\n"
-"When checked it will save a compressed FlatCAM project."
-msgstr ""
-"Para salvar um projeto compactado ou descompactado.\n"
-"Quando marcado, o projeto FlatCAM será salvo compactado."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:267
-msgid "Compression"
-msgstr "Compressão"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:269
-msgid ""
-"The level of compression used when saving\n"
-"a FlatCAM project. Higher value means better compression\n"
-"but require more RAM usage and more processing time."
-msgstr ""
-"O nível de compactação usado ao salvar o Projeto FlatCAM.\n"
-"Um valor maior significa melhor compactação, mas é necessário mais uso de "
-"RAM e mais tempo de processamento."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:280
-msgid "Enable Auto Save"
-msgstr "Salvar Automaticamente"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:282
-msgid ""
-"Check to enable the autosave feature.\n"
-"When enabled, the application will try to save a project\n"
-"at the set interval."
-msgstr ""
-"Marcar para ativar o recurso de salvamento automático.\n"
-"Quando ativado, o aplicativo tentará salvar um projeto\n"
-"no intervalo definido."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:292
-msgid "Interval"
-msgstr "Intervalo"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:294
-msgid ""
-"Time interval for autosaving. In milliseconds.\n"
-"The application will try to save periodically but only\n"
-"if the project was saved manually at least once.\n"
-"While active, some operations may block this feature."
-msgstr ""
-"Intervalo de tempo para gravação automática, em milissegundos.\n"
-"O aplicativo tentará salvar periodicamente, mas apenas\n"
-"se o projeto foi salvo manualmente pelo menos uma vez.\n"
-"Algumas operações podem bloquear esse recurso enquanto estiverem ativas."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:310
-msgid "Text to PDF parameters"
-msgstr "Parâmetros de texto para PDF"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:312
-msgid "Used when saving text in Code Editor or in FlatCAM Document objects."
-msgstr ""
-"Usado ao salvar texto no Editor de código ou nos objetos de documento do "
-"FlatCAM."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:321
-msgid "Top Margin"
-msgstr "Margem superiorMargem"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:323
-msgid "Distance between text body and the top of the PDF file."
-msgstr "Distância entre o corpo do texto e a parte superior do arquivo PDF."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:334
-msgid "Bottom Margin"
-msgstr "Margem inferior"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:336
-msgid "Distance between text body and the bottom of the PDF file."
-msgstr "Distância entre o corpo do texto e a parte inferior do arquivo PDF."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:347
-msgid "Left Margin"
-msgstr "Margem esquerdaMargem"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:349
-msgid "Distance between text body and the left of the PDF file."
-msgstr "Distância entre o corpo do texto e a esquerda do arquivo PDF."
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:360
-msgid "Right Margin"
-msgstr "Margem direita"
-
-#: flatcamGUI/preferences/general/GeneralAppPrefGroupUI.py:362
-msgid "Distance between text body and the right of the PDF file."
-msgstr "Distância entre o corpo do texto e o direito do arquivo PDF."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:26
-msgid "GUI Preferences"
-msgstr "Preferências da GUI"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:36
-msgid "Theme"
-msgstr "Tema"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:38
-msgid ""
-"Select a theme for FlatCAM.\n"
-"It will theme the plot area."
-msgstr ""
-"Selecione um tema para FlatCAM.\n"
-"Ele será aplicado na área do gráfico."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:43
-msgid "Light"
-msgstr "Claro"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:44
-msgid "Dark"
-msgstr "Escuro"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:51
-msgid "Use Gray Icons"
-msgstr "Use ícones cinza"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:53
-msgid ""
-"Check this box to use a set of icons with\n"
-"a lighter (gray) color. To be used when a\n"
-"full dark theme is applied."
-msgstr ""
-"Marque esta caixa para usar um conjunto de ícones com\n"
-"uma cor mais clara (cinza). Para ser usado quando um\n"
-"o tema escuro total é aplicado."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:59
-msgid "Apply Theme"
-msgstr "Aplicar temaAplicar"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:61
-msgid ""
-"Select a theme for FlatCAM.\n"
-"It will theme the plot area.\n"
-"The application will restart after change."
-msgstr ""
-"Selecione um tema para FlatCAM.\n"
-"Ele será aplicado na área do gráfico.\n"
-"O aplicativo reiniciará após a troca."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:73
-msgid "Layout"
-msgstr "Layout"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:75
-msgid ""
-"Select an layout for FlatCAM.\n"
-"It is applied immediately."
-msgstr ""
-"Selecione um layout para o FlatCAM.\n"
-"É aplicado imediatamente."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:95
-msgid "Style"
-msgstr "Estilo"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:97
-msgid ""
-"Select an style for FlatCAM.\n"
-"It will be applied at the next app start."
-msgstr ""
-"Selecione um estilo para FlatCAM.\n"
-"Ele será aplicado na próxima inicialização."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:111
-msgid "Activate HDPI Support"
-msgstr "Ativar HDPI"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:113
-msgid ""
-"Enable High DPI support for FlatCAM.\n"
-"It will be applied at the next app start."
-msgstr ""
-"Ativa o suporte de alta DPI para FlatCAM.\n"
-"Ele será aplicado na próxima inicialização."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:127
-msgid "Display Hover Shape"
-msgstr "Exibir forma de foco suspenso"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:129
-msgid ""
-"Enable display of a hover shape for FlatCAM objects.\n"
-"It is displayed whenever the mouse cursor is hovering\n"
-"over any kind of not-selected object."
-msgstr ""
-"Habilita a exibição de uma forma flutuante para objetos FlatCAM.\n"
-"É exibido sempre que o cursor do mouse estiver pairando\n"
-"sobre qualquer tipo de objeto não selecionado."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:136
-msgid "Display Selection Shape"
-msgstr "Exibir forma de seleção"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:138
-msgid ""
-"Enable the display of a selection shape for FlatCAM objects.\n"
-"It is displayed whenever the mouse selects an object\n"
-"either by clicking or dragging mouse from left to right or\n"
-"right to left."
-msgstr ""
-"Ativa a exibição de seleção de forma para objetos FlatCAM.\n"
-"É exibido sempre que o mouse seleciona um objeto\n"
-"seja clicando ou arrastando o mouse da esquerda para a direita ou da direita "
-"para a esquerda."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:151
-msgid "Left-Right Selection Color"
-msgstr "Cor da seleção esquerda-direita"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:156
-msgid "Set the line color for the 'left to right' selection box."
-msgstr ""
-"Define a cor da linha para a caixa de seleção 'da esquerda para a direita'."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:172
-msgid ""
-"Set the fill color for the selection box\n"
-"in case that the selection is done from left to right.\n"
-"First 6 digits are the color and the last 2\n"
-"digits are for alpha (transparency) level."
-msgstr ""
-"Define a cor de preenchimento para a caixa de seleção\n"
-"no caso de a seleção ser feita da esquerda para a direita.\n"
-"Os primeiros 6 dígitos são a cor e os últimos 2\n"
-"dígitos são para o nível alfa (transparência)."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:192
-msgid "Set the fill transparency for the 'left to right' selection box."
-msgstr ""
-"Define a transparência de preenchimento para a caixa de seleção 'da esquerda "
-"para a direita'."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:216
-msgid "Right-Left Selection Color"
-msgstr "Cor da seleção direita-esquerda"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:222
-msgid "Set the line color for the 'right to left' selection box."
-msgstr ""
-"Define a cor da linha para a caixa de seleção 'direita para a esquerda'."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:239
-msgid ""
-"Set the fill color for the selection box\n"
-"in case that the selection is done from right to left.\n"
-"First 6 digits are the color and the last 2\n"
-"digits are for alpha (transparency) level."
-msgstr ""
-"Define a cor de preenchimento para a caixa de seleção, caso a seleção seja "
-"feita da direita para a esquerda.\n"
-"Os primeiros 6 dígitos são a cor e os últimos 2\n"
-"dígitos são para o nível alfa (transparência)."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:259
-msgid "Set the fill transparency for selection 'right to left' box."
-msgstr ""
-"Define a transparência de preenchimento para a seleção da caixa 'direita "
-"para a esquerda'."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:286
-msgid "Editor Color"
-msgstr "Cor do editor"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:290
-msgid "Drawing"
-msgstr "Desenhando"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:292
-msgid "Set the color for the shape."
-msgstr "Define a cor da forma."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:309
-msgid "Set the color of the shape when selected."
-msgstr "Define a cor da forma quando selecionada."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:332
-msgid "Project Items Color"
-msgstr "Cor dos itens do projeto"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:336
-msgid "Enabled"
-msgstr "Ativado"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:338
-msgid "Set the color of the items in Project Tab Tree."
-msgstr "Define a cor dos itens na Árvore do Guia de Projeto."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:352
-msgid "Disabled"
-msgstr "Desativado"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:354
-msgid ""
-"Set the color of the items in Project Tab Tree,\n"
-"for the case when the items are disabled."
-msgstr ""
-"Define a cor dos itens na Árvore da guia Projeto,\n"
-"para o caso em que os itens estão desativados."
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:370
-msgid "Project AutoHide"
-msgstr "Auto Ocultar"
-
-#: flatcamGUI/preferences/general/GeneralGUIPrefGroupUI.py:372
-msgid ""
-"Check this box if you want the project/selected/tool tab area to\n"
-"hide automatically when there are no objects loaded and\n"
-"to show whenever a new object is created."
-msgstr ""
-"Marque esta caixa se você deseja que a aba Projeto/Selecionado/Ferramenta\n"
-"desapareça automaticamente quando não houver objetos carregados e\n"
-"apareça sempre que um novo objeto for criado."
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:27
-msgid "Geometry Adv. Options"
-msgstr "Opções Avançadas"
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:35
-msgid ""
-"A list of Geometry advanced parameters.\n"
-"Those parameters are available only for\n"
-"Advanced App. Level."
-msgstr ""
-"Uma lista de parâmetros avançados de Geometria.\n"
-"Esses parâmetros estão disponíveis somente para\n"
-"o nível avançado do aplicativo."
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:45
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:112
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:134
-#: flatcamTools/ToolCalibration.py:125 flatcamTools/ToolSolderPaste.py:240
-msgid "Toolchange X-Y"
-msgstr "Troca de ferramenta X-Y"
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:56
-msgid ""
-"Height of the tool just after starting the work.\n"
-"Delete the value if you don't need this feature."
-msgstr ""
-"Altura da ferramenta ao iniciar o trabalho.\n"
-"Exclua o valor se você não precisar deste recurso."
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:158
-msgid "Segment X size"
-msgstr "Tamanho do Segmento X"
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:160
-msgid ""
-"The size of the trace segment on the X axis.\n"
-"Useful for auto-leveling.\n"
-"A value of 0 means no segmentation on the X axis."
-msgstr ""
-"O tamanho do segmento de rastreio no eixo X.\n"
-"Útil para nivelamento automático.\n"
-"Valor 0 significa que não há segmentação no eixo X."
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:174
-msgid "Segment Y size"
-msgstr "Tamanho do Segmento Y"
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:176
-msgid ""
-"The size of the trace segment on the Y axis.\n"
-"Useful for auto-leveling.\n"
-"A value of 0 means no segmentation on the Y axis."
-msgstr ""
-"O tamanho do segmento de rastreio no eixo Y.\n"
-"Útil para nivelamento automático.\n"
-"Valor 0 significa que não há segmentação no eixo Y."
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:192
-#, fuzzy
-#| msgid "Area Selection"
-msgid "Area Exclusion"
-msgstr "Seleção de Área"
-
-#: flatcamGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:194
-#, fuzzy
-#| msgid ""
-#| "A list of Excellon advanced parameters.\n"
-#| "Those parameters are available only for\n"
-#| "Advanced App. Level."
-msgid ""
-"Area exclusion parameters.\n"
-"Those parameters are available only for\n"
-"Advanced App. Level."
-msgstr ""
-"Uma lista de parâmetros avançados do Excellon.\n"
-"Esses parâmetros estão disponíveis somente para\n"
-"o nível avançado do aplicativo."
-
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:33
-msgid "A list of Geometry Editor parameters."
-msgstr "Parâmetros do Editor de Geometria."
-
-#: flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:43
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:196
-msgid ""
-"Set the number of selected geometry\n"
-"items above which the utility geometry\n"
-"becomes just a selection rectangle.\n"
-"Increases the performance when moving a\n"
-"large number of geometric elements."
-msgstr ""
-"Define o número máximo de ítens de geometria selecionados.\n"
-"Acima desse valor a geometria se torna um retângulo de seleção.\n"
-"Aumenta o desempenho ao mover um grande número de elementos geométricos."
-
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:27
-msgid "Geometry General"
-msgstr "Geometria Geral"
-
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:49
-msgid ""
-"The number of circle steps for Geometry \n"
-"circle and arc shapes linear approximation."
-msgstr ""
-"Número de etapas do círculo para a aproximação linear\n"
-"de Geometria círculo e arco."
-
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:63
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:41
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:48
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:42
-msgid "Tools Dia"
-msgstr "Diâ. da Ferramenta"
-
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:65
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:108
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:43
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:50
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:44
-msgid ""
-"Diameters of the tools, separated by comma.\n"
-"The value of the diameter has to use the dot decimals separator.\n"
-"Valid values: 0.3, 1.0"
-msgstr ""
-"Diâmetros das ferramentas, separados por vírgula.\n"
-"Deve ser utilizado PONTO como separador de casas decimais.\n"
-"Valores válidos: 0.3, 1.0"
-
-#: flatcamGUI/preferences/geometry/GeometryGenPrefGroupUI.py:80
-msgid "Geometry Object Color"
-msgstr "Cor do objeto de Geometria"
-
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:28
-msgid "Geometry Options"
-msgstr "Opções de Geometria"
-
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:36
-msgid ""
-"Create a CNC Job object\n"
-"tracing the contours of this\n"
-"Geometry object."
-msgstr ""
-"Cria um objeto de Trabalho CNC\n"
-"traçando os contornos deste objeto\n"
-"Geometria."
-
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:80
-msgid "Depth/Pass"
-msgstr "Profundidade por Passe"
-
-#: flatcamGUI/preferences/geometry/GeometryOptPrefGroupUI.py:82
-msgid ""
-"The depth to cut on each pass,\n"
-"when multidepth is enabled.\n"
-"It has positive value although\n"
-"it is a fraction from the depth\n"
-"which has negative value."
-msgstr ""
-"A profundidade a ser cortada em cada passe,\n"
-"quando Múltiplas Profundidades estiver ativo.\n"
-"Tem valor positivo, embora seja uma fração\n"
-"da profundidade, que tem valor negativo."
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:27
-msgid "Gerber Adv. Options"
-msgstr "Opções Avançadas"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:33
-msgid ""
-"A list of Gerber advanced parameters.\n"
-"Those parameters are available only for\n"
-"Advanced App. Level."
-msgstr ""
-"Uma lista de parâmetros avançados do Gerber.\n"
-"Esses parâmetros estão disponíveis somente para\n"
-"o nível avançado do aplicativo."
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:52
-msgid "Table Show/Hide"
-msgstr "Mostra/Esconde Tabela"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:54
-msgid ""
-"Toggle the display of the Gerber Apertures Table.\n"
-"Also, on hide, it will delete all mark shapes\n"
-"that are drawn on canvas."
-msgstr ""
-"Alterna a exibição da Tabela de Aberturas Gerber.\n"
-"Além disso, ao ocultar, ele excluirá todas as formas de marcas\n"
-"que estão desenhadas na tela."
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:134
-msgid "Exterior"
-msgstr "Exterior"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:135
-msgid "Interior"
-msgstr "Interior"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:148
-msgid ""
-"Buffering type:\n"
-"- None --> best performance, fast file loading but no so good display\n"
-"- Full --> slow file loading but good visuals. This is the default.\n"
-"<>: Don't change this unless you know what you are doing !!!"
-msgstr ""
-"Tipo de Buffer:\n"
-"- Nenhum --> melhor desempenho, abertura de arquivos rápida, mas não tão boa "
-"aparência\n"
-"- Completo --> abertura de arquivos lenta, mas boa aparência. Este é o "
-"padrão.\n"
-"<>: Não altere isso, a menos que você saiba o que está fazendo !!!"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:153
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:207
-#: flatcamTools/ToolFiducials.py:201 flatcamTools/ToolFilm.py:255
-#: flatcamTools/ToolProperties.py:452 flatcamTools/ToolProperties.py:455
-#: flatcamTools/ToolProperties.py:458 flatcamTools/ToolProperties.py:483
-msgid "None"
-msgstr "Nenhum"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:159
-msgid "Simplify"
-msgstr "Simplificar"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:161
-msgid ""
-"When checked all the Gerber polygons will be\n"
-"loaded with simplification having a set tolerance.\n"
-"<>: Don't change this unless you know what you are doing !!!"
-msgstr ""
-"Quando marcado, todos os polígonos Gerber serão\n"
-"carregados com simplificação com uma tolerância definida.\n"
-"<>: Não altere, a menos que saiba o que está fazendo !!!"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:168
-msgid "Tolerance"
-msgstr "Tolerância"
-
-#: flatcamGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:169
-msgid "Tolerance for polygon simplification."
-msgstr "Tolerância para a simplificação de polígonos."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:33
-msgid "A list of Gerber Editor parameters."
-msgstr "Uma lista de parâmetros do Editor Gerber."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:43
-msgid ""
-"Set the number of selected Gerber geometry\n"
-"items above which the utility geometry\n"
-"becomes just a selection rectangle.\n"
-"Increases the performance when moving a\n"
-"large number of geometric elements."
-msgstr ""
-"Define o número máximo de ítens de geometria Gerber selecionados.\n"
-"Acima desse valor a geometria se torna um retângulo de seleção.\n"
-"Aumenta o desempenho ao mover um grande número de elementos geométricos."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:56
-msgid "New Aperture code"
-msgstr "Novo código de Aber."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:69
-msgid "New Aperture size"
-msgstr "Novo tamanho de Aber."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:71
-msgid "Size for the new aperture"
-msgstr "Tamanho para a nova abertura"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:82
-msgid "New Aperture type"
-msgstr "Novo tipo de Aber."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:84
-msgid ""
-"Type for the new aperture.\n"
-"Can be 'C', 'R' or 'O'."
-msgstr ""
-"Tipo para a nova abertura.\n"
-"Pode ser 'C', 'R' ou 'O'."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:106
-msgid "Aperture Dimensions"
-msgstr "Dimensão"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:116
-msgid "Linear Pad Array"
-msgstr "Matriz Linear de Pads"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:160
-msgid "Circular Pad Array"
-msgstr "Matriz Circular de Pads"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:196
-msgid "Distance at which to buffer the Gerber element."
-msgstr "Distância na qual armazenar o elemento Gerber."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:205
-msgid "Scale Tool"
-msgstr "Ferramenta de Escala"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:211
-msgid "Factor to scale the Gerber element."
-msgstr "Fator para redimensionar o elemento Gerber."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:224
-msgid "Threshold low"
-msgstr "Limiar baixo"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:226
-msgid "Threshold value under which the apertures are not marked."
-msgstr "Valor limiar sob o qual as aberturas não são marcadas."
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:236
-msgid "Threshold high"
-msgstr "Limiar alto"
-
-#: flatcamGUI/preferences/gerber/GerberEditorPrefGroupUI.py:238
-msgid "Threshold value over which the apertures are not marked."
-msgstr "Valor limite sobre o qual as aberturas não são marcadas."
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:27
-msgid "Gerber Export"
-msgstr "Exportar Gerber"
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:33
-msgid ""
-"The parameters set here are used in the file exported\n"
-"when using the File -> Export -> Export Gerber menu entry."
-msgstr ""
-"Os parâmetros definidos aqui são usados no arquivo exportado\n"
-"ao usar a entrada de menu Arquivo -> Exportar -> Exportar Gerber."
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:44
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:50
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:84
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:90
-msgid "The units used in the Gerber file."
-msgstr "As unidades usadas no arquivo Gerber."
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:58
-msgid ""
-"The number of digits in the whole part of the number\n"
-"and in the fractional part of the number."
-msgstr ""
-"O número de dígitos da parte inteira\n"
-"e da parte fracionária do número."
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:71
-msgid ""
-"This numbers signify the number of digits in\n"
-"the whole part of Gerber coordinates."
-msgstr ""
-"Esse número configura o número de dígitos\n"
-"da parte inteira das coordenadas de Gerber."
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:87
-msgid ""
-"This numbers signify the number of digits in\n"
-"the decimal part of Gerber coordinates."
-msgstr ""
-"Este número configura o número de dígitos\n"
-"da parte decimal das coordenadas de Gerber."
-
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:99
-#: flatcamGUI/preferences/gerber/GerberExpPrefGroupUI.py:109
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:100
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:110
-msgid ""
-"This sets the type of Gerber zeros.\n"
-"If LZ then Leading Zeros are removed and\n"
-"Trailing Zeros are kept.\n"
-"If TZ is checked then Trailing Zeros are removed\n"
-"and Leading Zeros are kept."
-msgstr ""
-"Define o tipo padrão de zeros de Gerber.\n"
-"LZ: remove os zeros à esquerda e mantém os zeros à direita.\n"
-"TZ: remove os zeros à direita e mantém os zeros à esquerda."
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:27
-msgid "Gerber General"
-msgstr "Gerber Geral"
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:45
-msgid "M-Color"
-msgstr "M-Cores"
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:61
-msgid ""
-"The number of circle steps for Gerber \n"
-"circular aperture linear approximation."
-msgstr ""
-"Número de passos de círculo para Gerber.\n"
-"Aproximação linear de abertura circular."
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:73
-msgid "Default Values"
-msgstr "Valores Padrão"
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:75
-msgid ""
-"Those values will be used as fallback values\n"
-"in case that they are not found in the Gerber file."
-msgstr ""
-"Esses valores serão usados como valores padrão\n"
-"caso eles não sejam encontrados no arquivo Gerber."
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:126
-msgid "Clean Apertures"
-msgstr "Limpe as Aberturas"
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:128
-msgid ""
-"Will remove apertures that do not have geometry\n"
-"thus lowering the number of apertures in the Gerber object."
-msgstr ""
-"Remove aberturas que não possuem geometria\n"
-"diminuindo assim o número de aberturas no objeto Gerber."
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:134
-msgid "Polarity change buffer"
-msgstr "Buffer de mudança de polaridade"
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:136
-msgid ""
-"Will apply extra buffering for the\n"
-"solid geometry when we have polarity changes.\n"
-"May help loading Gerber files that otherwise\n"
-"do not load correctly."
-msgstr ""
-"Aplicará buffer extra para o\n"
-"geometria sólida quando temos mudanças de polaridade.\n"
-"Pode ajudar a carregar arquivos Gerber que de outra forma\n"
-"Não carregue corretamente."
-
-#: flatcamGUI/preferences/gerber/GerberGenPrefGroupUI.py:149
-msgid "Gerber Object Color"
-msgstr "Cor do objeto Gerber"
-
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:29
-msgid "Gerber Options"
-msgstr "Opções Gerber"
-
-#: flatcamGUI/preferences/gerber/GerberOptPrefGroupUI.py:107
-msgid "Combine Passes"
-msgstr "Combinar Passes"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:27
-msgid "Copper Thieving Tool Options"
-msgstr "Opções da ferramenta Adição de Cobre"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:39
-msgid ""
-"A tool to generate a Copper Thieving that can be added\n"
-"to a selected Gerber file."
-msgstr ""
-"Uma ferramenta para gerar uma Adição de cobre que pode ser adicionada\n"
-"para um arquivo Gerber selecionado."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:47
-msgid "Number of steps (lines) used to interpolate circles."
-msgstr "Número de etapas (linhas) usadas para interpolar círculos."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261
-#: flatcamTools/ToolCopperThieving.py:96 flatcamTools/ToolCopperThieving.py:431
-msgid "Clearance"
-msgstr "Espaço"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:59
-msgid ""
-"This set the distance between the copper Thieving components\n"
-"(the polygon fill may be split in multiple polygons)\n"
-"and the copper traces in the Gerber file."
-msgstr ""
-"Define a distância entre os componentes Adição de cobre\n"
-"(o preenchimento de polígono pode ser dividido em vários polígonos)\n"
-"e os vestígios de cobre no arquivo Gerber."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
-#: flatcamTools/ToolCopperThieving.py:126 flatcamTools/ToolNCC.py:535
-#: flatcamTools/ToolNCC.py:1316 flatcamTools/ToolNCC.py:1647
-#: flatcamTools/ToolNCC.py:1935 flatcamTools/ToolNCC.py:1990
-#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:946
-#: flatcamTools/ToolPaint.py:1452
-msgid "Area Selection"
-msgstr "Seleção de Área"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
-#: flatcamTools/ToolCopperThieving.py:127 flatcamTools/ToolDblSided.py:216
-#: flatcamTools/ToolNCC.py:535 flatcamTools/ToolNCC.py:1663
-#: flatcamTools/ToolNCC.py:1941 flatcamTools/ToolNCC.py:1998
-#: flatcamTools/ToolNCC.py:2306 flatcamTools/ToolNCC.py:2586
-#: flatcamTools/ToolNCC.py:3012 flatcamTools/ToolPaint.py:486
-#: flatcamTools/ToolPaint.py:931 flatcamTools/ToolPaint.py:1468
-#: tclCommands/TclCommandCopperClear.py:192 tclCommands/TclCommandPaint.py:166
-msgid "Reference Object"
-msgstr "Objeto de Referência"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90
-#: flatcamTools/ToolCopperThieving.py:129
-msgid "Reference:"
-msgstr "Referência:"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92
-msgid ""
-"- 'Itself' - the copper Thieving extent is based on the object extent.\n"
-"- 'Area Selection' - left mouse click to start selection of the area to be "
-"filled.\n"
-"- 'Reference Object' - will do copper thieving within the area specified by "
-"another object."
-msgstr ""
-"- 'Própria' - a adição de cobre é baseada no próprio objeto a ser limpo.\n"
-"- 'Seleção de Área' - clique com o botão esquerdo do mouse para iniciar a "
-"seleção da área a ser pintada.\n"
-"- 'Objeto de Referência' - adicionará o cobre dentro da área do objeto "
-"especificado."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:76
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190
-#: flatcamTools/ToolCopperThieving.py:171 flatcamTools/ToolExtractDrills.py:102
-#: flatcamTools/ToolExtractDrills.py:240 flatcamTools/ToolPunchGerber.py:113
-#: flatcamTools/ToolPunchGerber.py:268
-msgid "Rectangular"
-msgstr "Retangular"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102
-#: flatcamTools/ToolCopperThieving.py:172
-msgid "Minimal"
-msgstr "Mínima"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104
-#: flatcamTools/ToolCopperThieving.py:174 flatcamTools/ToolFilm.py:113
-msgid "Box Type:"
-msgstr "Tipo de Caixa:"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106
-#: flatcamTools/ToolCopperThieving.py:176
-msgid ""
-"- 'Rectangular' - the bounding box will be of rectangular shape.\n"
-"- 'Minimal' - the bounding box will be the convex hull shape."
-msgstr ""
-"- 'Retangular' - a caixa delimitadora será de forma retangular.\n"
-"- 'Mínima' - a caixa delimitadora terá a forma convexa do casco."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120
-#: flatcamTools/ToolCopperThieving.py:192
-msgid "Dots Grid"
-msgstr "Pontos"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121
-#: flatcamTools/ToolCopperThieving.py:193
-msgid "Squares Grid"
-msgstr "Quadrados"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122
-#: flatcamTools/ToolCopperThieving.py:194
-msgid "Lines Grid"
-msgstr "Linhas"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124
-#: flatcamTools/ToolCopperThieving.py:196
-msgid "Fill Type:"
-msgstr "Tipo de Preenchimento:"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126
-#: flatcamTools/ToolCopperThieving.py:198
-msgid ""
-"- 'Solid' - copper thieving will be a solid polygon.\n"
-"- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n"
-"- 'Squares Grid' - the empty area will be filled with a pattern of squares.\n"
-"- 'Lines Grid' - the empty area will be filled with a pattern of lines."
-msgstr ""
-"- 'Sólido' - a adição de cobre será um polígono sólido.\n"
-"- 'Pontos' - a área vazia será preenchida com um padrão de pontos.\n"
-"- 'Quadrados' - a área vazia será preenchida com um padrão de quadrados.\n"
-"- 'Linhas' - a área vazia será preenchida com um padrão de linhas."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134
-#: flatcamTools/ToolCopperThieving.py:217
-msgid "Dots Grid Parameters"
-msgstr "Parâmetros dos Pontos"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140
-#: flatcamTools/ToolCopperThieving.py:223
-msgid "Dot diameter in Dots Grid."
-msgstr "Diâmetro dos Pontos."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209
-#: flatcamTools/ToolCopperThieving.py:234
-#: flatcamTools/ToolCopperThieving.py:274
-#: flatcamTools/ToolCopperThieving.py:314
-msgid "Spacing"
-msgstr "Espaçamento"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153
-#: flatcamTools/ToolCopperThieving.py:236
-msgid "Distance between each two dots in Dots Grid."
-msgstr "Distância entre dois pontos."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163
-#: flatcamTools/ToolCopperThieving.py:257
-msgid "Squares Grid Parameters"
-msgstr "Parâmetros dos Quadrados"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169
-#: flatcamTools/ToolCopperThieving.py:263
-msgid "Square side size in Squares Grid."
-msgstr "Lado do quadrado."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182
-#: flatcamTools/ToolCopperThieving.py:276
-msgid "Distance between each two squares in Squares Grid."
-msgstr "Distância entre dois quadrados."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192
-#: flatcamTools/ToolCopperThieving.py:297
-msgid "Lines Grid Parameters"
-msgstr "Parâmetros das Linhas"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198
-#: flatcamTools/ToolCopperThieving.py:303
-msgid "Line thickness size in Lines Grid."
-msgstr "Espessura das Linhas."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211
-#: flatcamTools/ToolCopperThieving.py:316
-msgid "Distance between each two lines in Lines Grid."
-msgstr "Distância entre duas linhas."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221
-#: flatcamTools/ToolCopperThieving.py:354
-msgid "Robber Bar Parameters"
-msgstr "Parâmetros da Barra"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223
-#: flatcamTools/ToolCopperThieving.py:356
-msgid ""
-"Parameters used for the robber bar.\n"
-"Robber bar = copper border to help in pattern hole plating."
-msgstr ""
-"Parâmetros usados para a barra de assalto.\n"
-"Barra = borda de cobre para ajudar no revestimento do furo do padrão."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231
-#: flatcamTools/ToolCopperThieving.py:364
-msgid "Bounding box margin for robber bar."
-msgstr "Margem da caixa delimitadora para Robber Bar."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242
-#: flatcamTools/ToolCopperThieving.py:375
-msgid "Thickness"
-msgstr "Espessura"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244
-#: flatcamTools/ToolCopperThieving.py:377
-msgid "The robber bar thickness."
-msgstr "Espessura da barra."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254
-#: flatcamTools/ToolCopperThieving.py:408
-msgid "Pattern Plating Mask"
-msgstr "Máscara do Revestimento Padrão"
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256
-#: flatcamTools/ToolCopperThieving.py:410
-msgid "Generate a mask for pattern plating."
-msgstr "Gera uma máscara para o revestimento padrão."
-
-#: flatcamGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263
-#: flatcamTools/ToolCopperThieving.py:433
-msgid ""
-"The distance between the possible copper thieving elements\n"
-"and/or robber bar and the actual openings in the mask."
-msgstr ""
-"Distância entre os possíveis elementos de adição de cobre\n"
-"e/ou barra e as aberturas reais na máscara."
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:27
-msgid "Calibration Tool Options"
-msgstr "Opções da Ferramenta de Calibração"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:38
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:38
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38
-#: flatcamTools/ToolCopperThieving.py:91 flatcamTools/ToolFiducials.py:151
-msgid "Parameters used for this tool."
-msgstr "Parâmetros usados para esta ferramenta."
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:43
-#: flatcamTools/ToolCalibration.py:181
-msgid "Source Type"
-msgstr "Tipo de Fonte"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:44
-#: flatcamTools/ToolCalibration.py:182
-msgid ""
-"The source of calibration points.\n"
-"It can be:\n"
-"- Object -> click a hole geo for Excellon or a pad for Gerber\n"
-"- Free -> click freely on canvas to acquire the calibration points"
-msgstr ""
-"A fonte dos pontos de calibração.\n"
-"Pode ser:\n"
-"- Objeto -> clique em uma área geográfica do furo para o Excellon ou em um "
-"pad para o Gerber\n"
-"- Livre -> clique livremente na tela para adquirir os pontos de calibração"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:49
-#: flatcamTools/ToolCalibration.py:187
-msgid "Free"
-msgstr "Livre"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:63
-#: flatcamTools/ToolCalibration.py:76
-msgid "Height (Z) for travelling between the points."
-msgstr "Altura (Z) para deslocamento entre os pontos."
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:75
-#: flatcamTools/ToolCalibration.py:88
-msgid "Verification Z"
-msgstr "Verificação Z"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:77
-#: flatcamTools/ToolCalibration.py:90
-msgid "Height (Z) for checking the point."
-msgstr "Altura (Z) para verificar o ponto."
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:89
-#: flatcamTools/ToolCalibration.py:102
-msgid "Zero Z tool"
-msgstr "Ferramenta Zero Z"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:91
-#: flatcamTools/ToolCalibration.py:104
-msgid ""
-"Include a sequence to zero the height (Z)\n"
-"of the verification tool."
-msgstr ""
-"Inclui uma sequência para zerar a altura (Z)\n"
-"da ferramenta de verificação."
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:100
-#: flatcamTools/ToolCalibration.py:113
-msgid "Height (Z) for mounting the verification probe."
-msgstr "Altura (Z) para montar a sonda de verificação."
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:114
-#: flatcamTools/ToolCalibration.py:127
-msgid ""
-"Toolchange X,Y position.\n"
-"If no value is entered then the current\n"
-"(x, y) point will be used,"
-msgstr ""
-"Troca de ferramentas nas posições X, Y.\n"
-"Se nenhum valor for inserido, o valor atual\n"
-"ponto (x, y) será usado,"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:125
-#: flatcamTools/ToolCalibration.py:153
-msgid "Second point"
-msgstr "Segundo Ponto"
-
-#: flatcamGUI/preferences/tools/Tools2CalPrefGroupUI.py:127
-#: flatcamTools/ToolCalibration.py:155
-msgid ""
-"Second point in the Gcode verification can be:\n"
-"- top-left -> the user will align the PCB vertically\n"
-"- bottom-right -> the user will align the PCB horizontally"
-msgstr ""
-"O segundo ponto na verificação do G-Code pode ser:\n"
-"- canto superior esquerdo -> o usuário alinhará o PCB verticalmente\n"
-"- canto inferior direito -> o usuário alinhará o PCB horizontalmente"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:27
-msgid "Extract Drills Options"
-msgstr "Opções de Extração de Furos"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42
-#: flatcamTools/ToolExtractDrills.py:68 flatcamTools/ToolPunchGerber.py:75
-msgid "Processed Pads Type"
-msgstr "Tipo de Pads Processados"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44
-#: flatcamTools/ToolExtractDrills.py:70 flatcamTools/ToolPunchGerber.py:77
-msgid ""
-"The type of pads shape to be processed.\n"
-"If the PCB has many SMD pads with rectangular pads,\n"
-"disable the Rectangular aperture."
-msgstr ""
-"O tipo de formato dos pads a serem processadas.\n"
-"Se o PCB tiver muitos blocos SMD com pads retangulares,\n"
-"desative a abertura retangular."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54
-#: flatcamTools/ToolExtractDrills.py:80 flatcamTools/ToolPunchGerber.py:91
-msgid "Process Circular Pads."
-msgstr "Pads Circulares"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:60
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164
-#: flatcamTools/ToolExtractDrills.py:86 flatcamTools/ToolExtractDrills.py:214
-#: flatcamTools/ToolPunchGerber.py:97 flatcamTools/ToolPunchGerber.py:242
-msgid "Oblong"
-msgstr "Oblongo"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62
-#: flatcamTools/ToolExtractDrills.py:88 flatcamTools/ToolPunchGerber.py:99
-msgid "Process Oblong Pads."
-msgstr "Pads Oblongos."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70
-#: flatcamTools/ToolExtractDrills.py:96 flatcamTools/ToolPunchGerber.py:107
-msgid "Process Square Pads."
-msgstr "Pads Quadrados."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78
-#: flatcamTools/ToolExtractDrills.py:104 flatcamTools/ToolPunchGerber.py:115
-msgid "Process Rectangular Pads."
-msgstr "Pads Retangulares"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:84
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203
-#: flatcamTools/ToolExtractDrills.py:110 flatcamTools/ToolExtractDrills.py:253
-#: flatcamTools/ToolProperties.py:172 flatcamTools/ToolPunchGerber.py:121
-#: flatcamTools/ToolPunchGerber.py:281
-msgid "Others"
-msgstr "Outros"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86
-#: flatcamTools/ToolExtractDrills.py:112 flatcamTools/ToolPunchGerber.py:123
-msgid "Process pads not in the categories above."
-msgstr "Processa pads fora das categorias acima."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:99
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125
-#: flatcamTools/ToolExtractDrills.py:139 flatcamTools/ToolExtractDrills.py:156
-#: flatcamTools/ToolPunchGerber.py:150 flatcamTools/ToolPunchGerber.py:184
-msgid "Fixed Diameter"
-msgstr "Diâmetro Fixo"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:100
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142
-#: flatcamTools/ToolExtractDrills.py:140 flatcamTools/ToolExtractDrills.py:192
-#: flatcamTools/ToolPunchGerber.py:151 flatcamTools/ToolPunchGerber.py:214
-msgid "Fixed Annular Ring"
-msgstr "Anel Anular Fixo"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102
-#: flatcamTools/ToolExtractDrills.py:141 flatcamTools/ToolPunchGerber.py:152
-msgid "Proportional"
-msgstr "Proporcional"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107
-#: flatcamTools/ToolExtractDrills.py:130
-msgid ""
-"The method for processing pads. Can be:\n"
-"- Fixed Diameter -> all holes will have a set size\n"
-"- Fixed Annular Ring -> all holes will have a set annular ring\n"
-"- Proportional -> each hole size will be a fraction of the pad size"
-msgstr ""
-"Método para processar pads. Pode ser:\n"
-"- Diâmetro fixo -> todos os furos terão um tamanho definido\n"
-"- Anel Anular fixo -> todos os furos terão um anel anular definido\n"
-"- Proporcional -> cada tamanho de furo será uma fração do tamanho do pad"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135
-#: flatcamTools/ToolExtractDrills.py:166 flatcamTools/ToolPunchGerber.py:194
-msgid "Fixed hole diameter."
-msgstr "Diâmetro fixo."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:142
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144
-#: flatcamTools/ToolExtractDrills.py:194 flatcamTools/ToolPunchGerber.py:216
-msgid ""
-"The size of annular ring.\n"
-"The copper sliver between the hole exterior\n"
-"and the margin of the copper pad."
-msgstr ""
-"Tamanho do anel anular.\n"
-"A tira de cobre entre o exterior do furo\n"
-"e a margem do pad de cobre."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153
-#: flatcamTools/ToolExtractDrills.py:203 flatcamTools/ToolPunchGerber.py:231
-msgid "The size of annular ring for circular pads."
-msgstr "Tamanho do anel anular para pads circulares."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:164
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:166
-#: flatcamTools/ToolExtractDrills.py:216 flatcamTools/ToolPunchGerber.py:244
-msgid "The size of annular ring for oblong pads."
-msgstr "Tamanho do anel anular para pads oblongos."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:177
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:179
-#: flatcamTools/ToolExtractDrills.py:229 flatcamTools/ToolPunchGerber.py:257
-msgid "The size of annular ring for square pads."
-msgstr "Tamanho do anel anular para pads quadrados."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:190
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:192
-#: flatcamTools/ToolExtractDrills.py:242 flatcamTools/ToolPunchGerber.py:270
-msgid "The size of annular ring for rectangular pads."
-msgstr "Tamanho do anel anular para pads retangulares."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:203
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:205
-#: flatcamTools/ToolExtractDrills.py:255 flatcamTools/ToolPunchGerber.py:283
-msgid "The size of annular ring for other pads."
-msgstr "Tamanho do anel anular para outros pads."
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:213
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:215
-#: flatcamTools/ToolExtractDrills.py:276 flatcamTools/ToolPunchGerber.py:299
-msgid "Proportional Diameter"
-msgstr "Diâmetro Proporcional"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:222
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:224
-msgid "Factor"
-msgstr "Fator"
-
-#: flatcamGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226
-#: flatcamTools/ToolExtractDrills.py:287 flatcamTools/ToolPunchGerber.py:310
-msgid ""
-"Proportional Diameter.\n"
-"The hole diameter will be a fraction of the pad size."
-msgstr ""
-"Diâmetro Proporcional.\n"
-"O diâmetro do furo será uma fração do tamanho do pad."
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:27
-msgid "Fiducials Tool Options"
-msgstr "Opções da Ferramenta de Fiduciais"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45
-#: flatcamTools/ToolFiducials.py:158
-msgid ""
-"This set the fiducial diameter if fiducial type is circular,\n"
-"otherwise is the size of the fiducial.\n"
-"The soldermask opening is double than that."
-msgstr ""
-"Define o diâmetro fiducial se o tipo fiducial for circular,\n"
-"caso contrário, é o tamanho do fiducial.\n"
-"A abertura da máscara de solda é o dobro disso."
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73
-#: flatcamTools/ToolFiducials.py:186
-msgid "Auto"
-msgstr "Auto"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74
-#: flatcamTools/ToolFiducials.py:187
-msgid "Manual"
-msgstr "Manual"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76
-#: flatcamTools/ToolFiducials.py:189
-msgid "Mode:"
-msgstr "Modo:"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:78
-msgid ""
-"- 'Auto' - automatic placement of fiducials in the corners of the bounding "
-"box.\n"
-"- 'Manual' - manual placement of fiducials."
-msgstr ""
-"- 'Auto' - colocação automática de fiduciais nos cantos da caixa "
-"delimitadora.\n"
-"- 'Manual' - colocação manual de fiduciais."
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86
-#: flatcamTools/ToolFiducials.py:199
-msgid "Up"
-msgstr "Acima"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87
-#: flatcamTools/ToolFiducials.py:200
-msgid "Down"
-msgstr "Abaixo"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90
-#: flatcamTools/ToolFiducials.py:203
-msgid "Second fiducial"
-msgstr "Segundo fiducial"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92
-#: flatcamTools/ToolFiducials.py:205
-msgid ""
-"The position for the second fiducial.\n"
-"- 'Up' - the order is: bottom-left, top-left, top-right.\n"
-"- 'Down' - the order is: bottom-left, bottom-right, top-right.\n"
-"- 'None' - there is no second fiducial. The order is: bottom-left, top-right."
-msgstr ""
-"Posição do segundo fiducial.\n"
-"- 'Acima' - a ordem é: canto inferior esquerdo, superior esquerdo, superior "
-"direito\n"
-"- 'Abaixo' - a ordem é: canto inferior esquerdo, inferior direito, superior "
-"direito.\n"
-"- 'Nenhum' - não há um segundo fiducial. A ordem é: canto inferior esquerdo, "
-"superior direito."
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108
-#: flatcamTools/ToolFiducials.py:221
-msgid "Cross"
-msgstr "Cruz"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109
-#: flatcamTools/ToolFiducials.py:222
-msgid "Chess"
-msgstr "Xadrez"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112
-#: flatcamTools/ToolFiducials.py:224
-msgid "Fiducial Type"
-msgstr "Tipo de Fiducial"
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114
-#: flatcamTools/ToolFiducials.py:226
-msgid ""
-"The type of fiducial.\n"
-"- 'Circular' - this is the regular fiducial.\n"
-"- 'Cross' - cross lines fiducial.\n"
-"- 'Chess' - chess pattern fiducial."
-msgstr ""
-"O tipo de fiducial.\n"
-"- 'Circular' - este é o fiducial regular.\n"
-"- 'Cruz' - linhas cruzadas fiduciais.\n"
-"- 'Xadrez' - padrão de xadrez fiducial."
-
-#: flatcamGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123
-#: flatcamTools/ToolFiducials.py:235
-msgid "Line thickness"
-msgstr "Espessura da linha"
-
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:27
-msgid "Invert Gerber Tool Options"
-msgstr "Opções Inverter Gerber"
-
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:33
-msgid ""
-"A tool to invert Gerber geometry from positive to negative\n"
-"and in revers."
-msgstr ""
-"Uma ferramenta para converter a geometria Gerber de positiva para negativa\n"
-"e vice-versa."
-
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:47
-#: flatcamTools/ToolInvertGerber.py:90
-msgid ""
-"Distance by which to avoid\n"
-"the edges of the Gerber object."
-msgstr ""
-"Distância pela qual evitar \n"
-"as bordas do objeto gerber."
-
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:58
-#: flatcamTools/ToolInvertGerber.py:101
-msgid "Lines Join Style"
-msgstr "Estilo de Junção de Linhas"
-
-#: flatcamGUI/preferences/tools/Tools2InvertPrefGroupUI.py:60
-#: flatcamTools/ToolInvertGerber.py:103
-msgid ""
-"The way that the lines in the object outline will be joined.\n"
-"Can be:\n"
-"- rounded -> an arc is added between two joining lines\n"
-"- square -> the lines meet in 90 degrees angle\n"
-"- bevel -> the lines are joined by a third line"
-msgstr ""
-"A maneira como as linhas no contorno do objeto serão unidas.\n"
-"Pode ser:\n"
-"- arredondado -> um arco é adicionado entre duas linhas de junção\n"
-"- quadrado -> as linhas se encontram em um ângulo de 90 graus\n"
-"- chanfro -> as linhas são unidas por uma terceira linha"
-
-#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:27
-msgid "Optimal Tool Options"
-msgstr "Opções de Ferramentas Ideais"
-
-#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:33
-msgid ""
-"A tool to find the minimum distance between\n"
-"every two Gerber geometric elements"
-msgstr ""
-"Uma ferramenta para encontrar a distância mínima entre\n"
-"cada dois elementos geométricos Gerber"
-
-#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:48
-#: flatcamTools/ToolOptimal.py:78
-msgid "Precision"
-msgstr "Precisão"
-
-#: flatcamGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:50
-msgid "Number of decimals for the distances and coordinates in this tool."
-msgstr ""
-"Número de casas decimais para as distâncias e coordenadas nesta ferramenta."
-
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:27
-msgid "Punch Gerber Options"
-msgstr "Opções Gerber para Furo"
-
-#: flatcamGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:108
-#: flatcamTools/ToolPunchGerber.py:141
-msgid ""
-"The punch hole source can be:\n"
-"- Excellon Object-> the Excellon object drills center will serve as "
-"reference.\n"
-"- Fixed Diameter -> will try to use the pads center as reference adding "
-"fixed diameter holes.\n"
-"- Fixed Annular Ring -> will try to keep a set annular ring.\n"
-"- Proportional -> will make a Gerber punch hole having the diameter a "
-"percentage of the pad diameter."
-msgstr ""
-"A fonte do furo pode ser:\n"
-"- Objeto Excellon-> o centro da broca servirá como referência.\n"
-"- Diâmetro fixo -> tentará usar o centro dos pads como referência, "
-"adicionando furos de diâmetro fixo.\n"
-"- Anel anular fixo -> tentará manter um anel anular definido.\n"
-"- Proporcional -> fará um furo Gerber com o diâmetro de uma porcentagem do "
-"diâmetro do pad."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:27
-msgid "QRCode Tool Options"
-msgstr "Opções Ferramenta QRCode"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:33
-msgid ""
-"A tool to create a QRCode that can be inserted\n"
-"into a selected Gerber file, or it can be exported as a file."
-msgstr ""
-"Uma ferramenta para criar um QRCode que pode ser inserido\n"
-"em um arquivo Gerber selecionado ou pode ser exportado como um arquivo."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45
-#: flatcamTools/ToolQRCode.py:100
-msgid "Version"
-msgstr "Versão"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47
-#: flatcamTools/ToolQRCode.py:102
-msgid ""
-"QRCode version can have values from 1 (21x21 boxes)\n"
-"to 40 (177x177 boxes)."
-msgstr ""
-"A versão QRCode pode ter valores de 1 (caixas 21x21)\n"
-"a 40 (caixas 177x177)."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58
-#: flatcamTools/ToolQRCode.py:113
-msgid "Error correction"
-msgstr "Correção de erros"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71
-#: flatcamTools/ToolQRCode.py:115 flatcamTools/ToolQRCode.py:126
-#, python-format
-msgid ""
-"Parameter that controls the error correction used for the QR Code.\n"
-"L = maximum 7%% errors can be corrected\n"
-"M = maximum 15%% errors can be corrected\n"
-"Q = maximum 25%% errors can be corrected\n"
-"H = maximum 30%% errors can be corrected."
-msgstr ""
-"Parâmetro que controla a correção de erros usada para o QRCode.\n"
-"L = máximo de 7%% dos erros pode ser corrigido\n"
-"M = máximo de 15%% dos erros pode ser corrigido\n"
-"Q = máximo de 25%% dos erros pode ser corrigido\n"
-"H = máximo de 30%% dos erros pode ser corrigido."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81
-#: flatcamTools/ToolQRCode.py:136
-msgid "Box Size"
-msgstr "Tamanho da Caixa"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83
-#: flatcamTools/ToolQRCode.py:138
-msgid ""
-"Box size control the overall size of the QRcode\n"
-"by adjusting the size of each box in the code."
-msgstr ""
-"O tamanho da caixa controla o tamanho geral do QRCode\n"
-"ajustando o tamanho de cada caixa no código."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94
-#: flatcamTools/ToolQRCode.py:149
-msgid "Border Size"
-msgstr "Tamanho da Borda"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96
-#: flatcamTools/ToolQRCode.py:151
-msgid ""
-"Size of the QRCode border. How many boxes thick is the border.\n"
-"Default value is 4. The width of the clearance around the QRCode."
-msgstr ""
-"Tamanho da borda do QRCode. Quantas caixas grossas tem a borda.\n"
-"O valor padrão é 4. A largura da folga ao redor do QRCode."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107
-#: flatcamTools/ToolQRCode.py:162
-msgid "QRCode Data"
-msgstr "Dado QRCode"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109
-#: flatcamTools/ToolQRCode.py:164
-msgid "QRCode Data. Alphanumeric text to be encoded in the QRCode."
-msgstr "Dado QRCode. Texto alfanumérico a ser codificado no QRCode."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:113
-#: flatcamTools/ToolQRCode.py:168
-msgid "Add here the text to be included in the QRCode..."
-msgstr "Adicione aqui o texto a ser incluído no QRCode..."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:119
-#: flatcamTools/ToolQRCode.py:174
-msgid "Polarity"
-msgstr "Polaridade"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121
-#: flatcamTools/ToolQRCode.py:176
-msgid ""
-"Choose the polarity of the QRCode.\n"
-"It can be drawn in a negative way (squares are clear)\n"
-"or in a positive way (squares are opaque)."
-msgstr ""
-"Escolha a polaridade do QRCode.\n"
-"Pode ser desenhado de forma negativa (os quadrados são claros)\n"
-"ou de maneira positiva (os quadrados são opacos)."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125
-#: flatcamTools/ToolFilm.py:296 flatcamTools/ToolQRCode.py:180
-msgid "Negative"
-msgstr "Negativo"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126
-#: flatcamTools/ToolFilm.py:295 flatcamTools/ToolQRCode.py:181
-msgid "Positive"
-msgstr "Positivo"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128
-#: flatcamTools/ToolQRCode.py:183
-msgid ""
-"Choose the type of QRCode to be created.\n"
-"If added on a Silkscreen Gerber file the QRCode may\n"
-"be added as positive. If it is added to a Copper Gerber\n"
-"file then perhaps the QRCode can be added as negative."
-msgstr ""
-"Escolha o tipo de QRCode a ser criado.\n"
-"Se adicionado a um arquivo Silkscreen Gerber, o QRCode poderá\n"
-"ser adicionado como positivo. Se for adicionado a um arquivo Gerber\n"
-"de cobre, talvez o QRCode possa ser adicionado como negativo."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145
-#: flatcamTools/ToolQRCode.py:194 flatcamTools/ToolQRCode.py:200
-msgid ""
-"The bounding box, meaning the empty space that surrounds\n"
-"the QRCode geometry, can have a rounded or a square shape."
-msgstr ""
-"A caixa delimitadora, significando o espaço vazio que circunda\n"
-"a geometria QRCode, pode ter uma forma arredondada ou quadrada."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:239
-#: flatcamTools/ToolQRCode.py:197 flatcamTools/ToolTransform.py:383
-msgid "Rounded"
-msgstr "Arredondado"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152
-#: flatcamTools/ToolQRCode.py:228
-msgid "Fill Color"
-msgstr "Cor de Preenchimento"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154
-#: flatcamTools/ToolQRCode.py:230
-msgid "Set the QRCode fill color (squares color)."
-msgstr "Define a cor de preenchimento do QRCode (cor dos quadrados)."
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:173
-#: flatcamTools/ToolQRCode.py:252
-msgid "Back Color"
-msgstr "Cor de Fundo"
-
-#: flatcamGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:175
-#: flatcamTools/ToolQRCode.py:254
-msgid "Set the QRCode background color."
-msgstr "Define a cor de fundo do QRCode."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:27
-msgid "Check Rules Tool Options"
-msgstr "Opções das Regras"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:32
-msgid ""
-"A tool to check if Gerber files are within a set\n"
-"of Manufacturing Rules."
-msgstr ""
-"Uma ferramenta para verificar se os arquivos Gerber estão dentro de um "
-"conjunto\n"
-"das regras de fabricação."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:42
-#: flatcamTools/ToolRulesCheck.py:265 flatcamTools/ToolRulesCheck.py:929
-msgid "Trace Size"
-msgstr "Tamanho do Traçado"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:44
-#: flatcamTools/ToolRulesCheck.py:267
-msgid "This checks if the minimum size for traces is met."
-msgstr "Verifica se o tamanho mínimo para traçados é atendido."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:54
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:74
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:94
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:114
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:134
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:154
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:174
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:194
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:216
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:236
-#: flatcamTools/ToolRulesCheck.py:277 flatcamTools/ToolRulesCheck.py:299
-#: flatcamTools/ToolRulesCheck.py:322 flatcamTools/ToolRulesCheck.py:345
-#: flatcamTools/ToolRulesCheck.py:368 flatcamTools/ToolRulesCheck.py:391
-#: flatcamTools/ToolRulesCheck.py:414 flatcamTools/ToolRulesCheck.py:437
-#: flatcamTools/ToolRulesCheck.py:462 flatcamTools/ToolRulesCheck.py:485
-msgid "Min value"
-msgstr "Valor Min"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:56
-#: flatcamTools/ToolRulesCheck.py:279
-msgid "Minimum acceptable trace size."
-msgstr "Mínimo tamanho de traçado aceito."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:61
-#: flatcamTools/ToolRulesCheck.py:286 flatcamTools/ToolRulesCheck.py:1157
-#: flatcamTools/ToolRulesCheck.py:1187
-msgid "Copper to Copper clearance"
-msgstr "Espaço Cobre Cobre"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:63
-#: flatcamTools/ToolRulesCheck.py:288
-msgid ""
-"This checks if the minimum clearance between copper\n"
-"features is met."
-msgstr ""
-"Verifica se o espaço mínimo entre recursos de cobre\n"
-"é atendido."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:76
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:96
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:116
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:136
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:156
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:176
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:238
-#: flatcamTools/ToolRulesCheck.py:301 flatcamTools/ToolRulesCheck.py:324
-#: flatcamTools/ToolRulesCheck.py:347 flatcamTools/ToolRulesCheck.py:370
-#: flatcamTools/ToolRulesCheck.py:393 flatcamTools/ToolRulesCheck.py:416
-#: flatcamTools/ToolRulesCheck.py:464
-msgid "Minimum acceptable clearance value."
-msgstr "Espaço mínimo aceitável."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:81
-#: flatcamTools/ToolRulesCheck.py:309 flatcamTools/ToolRulesCheck.py:1217
-#: flatcamTools/ToolRulesCheck.py:1223 flatcamTools/ToolRulesCheck.py:1236
-#: flatcamTools/ToolRulesCheck.py:1243
-msgid "Copper to Outline clearance"
-msgstr "Espaço Cobre Contorno"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:83
-#: flatcamTools/ToolRulesCheck.py:311
-msgid ""
-"This checks if the minimum clearance between copper\n"
-"features and the outline is met."
-msgstr ""
-"Verifica se o espaço mínimo entre recursos de cobre\n"
-"e o contorno é atendido."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:101
-#: flatcamTools/ToolRulesCheck.py:332
-msgid "Silk to Silk Clearance"
-msgstr "Espaço Silk Silk"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:103
-#: flatcamTools/ToolRulesCheck.py:334
-msgid ""
-"This checks if the minimum clearance between silkscreen\n"
-"features and silkscreen features is met."
-msgstr ""
-"Verifica se o espaço mínimo entre recursos de silkscreen\n"
-"é atendido."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:121
-#: flatcamTools/ToolRulesCheck.py:355 flatcamTools/ToolRulesCheck.py:1326
-#: flatcamTools/ToolRulesCheck.py:1332 flatcamTools/ToolRulesCheck.py:1350
-msgid "Silk to Solder Mask Clearance"
-msgstr "Espaço Silk Máscara de Solda"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:123
-#: flatcamTools/ToolRulesCheck.py:357
-msgid ""
-"This checks if the minimum clearance between silkscreen\n"
-"features and soldermask features is met."
-msgstr ""
-"Verifica se o espaço mínimo entre recursos de silkscreen\n"
-"e máscara de solda é atendido."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:141
-#: flatcamTools/ToolRulesCheck.py:378 flatcamTools/ToolRulesCheck.py:1380
-#: flatcamTools/ToolRulesCheck.py:1386 flatcamTools/ToolRulesCheck.py:1400
-#: flatcamTools/ToolRulesCheck.py:1407
-msgid "Silk to Outline Clearance"
-msgstr "Espaço Silk Contorno"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:143
-#: flatcamTools/ToolRulesCheck.py:380
-msgid ""
-"This checks if the minimum clearance between silk\n"
-"features and the outline is met."
-msgstr ""
-"Verifica se o espaço mínimo entre recursos de silkscreen\n"
-"e o contorno é atendido."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:161
-#: flatcamTools/ToolRulesCheck.py:401 flatcamTools/ToolRulesCheck.py:1418
-#: flatcamTools/ToolRulesCheck.py:1445
-msgid "Minimum Solder Mask Sliver"
-msgstr "Máscara de Solda Mínima"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:163
-#: flatcamTools/ToolRulesCheck.py:403
-msgid ""
-"This checks if the minimum clearance between soldermask\n"
-"features and soldermask features is met."
-msgstr ""
-"Verifica se o espaço mínimo entre recursos de máscara de solda\n"
-"é atendido."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:181
-#: flatcamTools/ToolRulesCheck.py:424 flatcamTools/ToolRulesCheck.py:1483
-#: flatcamTools/ToolRulesCheck.py:1489 flatcamTools/ToolRulesCheck.py:1505
-#: flatcamTools/ToolRulesCheck.py:1512
-msgid "Minimum Annular Ring"
-msgstr "Anel Anular Mínimo"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:183
-#: flatcamTools/ToolRulesCheck.py:426
-msgid ""
-"This checks if the minimum copper ring left by drilling\n"
-"a hole into a pad is met."
-msgstr ""
-"Verifica se o anel de cobre mínimo deixado pela perfuração\n"
-"de um buraco em um pad é atendido."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:196
-#: flatcamTools/ToolRulesCheck.py:439
-msgid "Minimum acceptable ring value."
-msgstr "Valor mínimo do anel."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:203
-#: flatcamTools/ToolRulesCheck.py:449 flatcamTools/ToolRulesCheck.py:873
-msgid "Hole to Hole Clearance"
-msgstr "Espaço Entre Furos"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:205
-#: flatcamTools/ToolRulesCheck.py:451
-msgid ""
-"This checks if the minimum clearance between a drill hole\n"
-"and another drill hole is met."
-msgstr ""
-"Verifica se o espaço mínimo entre furos\n"
-"é atendido."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:218
-#: flatcamTools/ToolRulesCheck.py:487
-msgid "Minimum acceptable drill size."
-msgstr "Espaço mínimo entre furos."
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:223
-#: flatcamTools/ToolRulesCheck.py:472 flatcamTools/ToolRulesCheck.py:847
-msgid "Hole Size"
-msgstr "Tamanho Furo"
-
-#: flatcamGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:225
-#: flatcamTools/ToolRulesCheck.py:474
-msgid ""
-"This checks if the drill holes\n"
-"sizes are above the threshold."
-msgstr ""
-"Verifica se os tamanhos dos furos\n"
-"estão acima do limite."
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:27
-msgid "2Sided Tool Options"
-msgstr "Opções de PCB 2 Faces"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:33
-msgid ""
-"A tool to help in creating a double sided\n"
-"PCB using alignment holes."
-msgstr ""
-"Uma ferramenta para ajudar na criação de um\n"
-"PCB de dupla face usando furos de alinhamento."
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:47
-msgid "Drill dia"
-msgstr "Diâmetro"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49
-#: flatcamTools/ToolDblSided.py:363 flatcamTools/ToolDblSided.py:368
-msgid "Diameter of the drill for the alignment holes."
-msgstr "Diâmetro da broca para os furos de alinhamento."
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:56
-#: flatcamTools/ToolDblSided.py:377
-msgid "Align Axis"
-msgstr "Alinhar Eixo"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71
-#: flatcamTools/ToolDblSided.py:165 flatcamTools/ToolDblSided.py:379
-msgid "Mirror vertically (X) or horizontally (Y)."
-msgstr "Espelha verticalmente (X) ou horizontalmente (Y)."
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:69
-msgid "Mirror Axis:"
-msgstr "Espelhar Eixo:"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:80
-#: flatcamTools/ToolDblSided.py:181
-msgid "Point"
-msgstr "Ponto"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:81
-#: flatcamTools/ToolDblSided.py:182
-msgid "Box"
-msgstr "Caixa"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:82
-msgid "Axis Ref"
-msgstr "Eixo de Ref"
-
-#: flatcamGUI/preferences/tools/Tools2sidedPrefGroupUI.py:84
-msgid ""
-"The axis should pass through a point or cut\n"
-" a specified box (in a FlatCAM object) through \n"
-"the center."
-msgstr ""
-"O eixo deve passar por um ponto ou cortar o centro de uma caixa"
-"b> especificada (em um objeto FlatCAM)."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:27
-msgid "Calculators Tool Options"
-msgstr "Opções das Calculadoras"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31
-#: flatcamTools/ToolCalculators.py:25
-msgid "V-Shape Tool Calculator"
-msgstr "Calculadora Ferramenta Ponta-em-V"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:33
-msgid ""
-"Calculate the tool diameter for a given V-shape tool,\n"
-"having the tip diameter, tip angle and\n"
-"depth-of-cut as parameters."
-msgstr ""
-"Calcula o diâmetro equvalente da ferramenta para uma determinada\n"
-"ferramenta em forma de V, com o diâmetro da ponta, o ângulo da ponta e a\n"
-"profundidade de corte como parâmetros."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50
-#: flatcamTools/ToolCalculators.py:94
-msgid "Tip Diameter"
-msgstr "Diâmetro da Ponta"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52
-#: flatcamTools/ToolCalculators.py:102
-msgid ""
-"This is the tool tip diameter.\n"
-"It is specified by manufacturer."
-msgstr ""
-"Diâmetro da ponta da ferramenta.\n"
-"Especificado pelo fabricante."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64
-#: flatcamTools/ToolCalculators.py:105
-msgid "Tip Angle"
-msgstr "Ângulo da Ponta"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:66
-msgid ""
-"This is the angle on the tip of the tool.\n"
-"It is specified by manufacturer."
-msgstr ""
-"Ângulo na ponta da ferramenta.\n"
-"Especificado pelo fabricante."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:80
-msgid ""
-"This is depth to cut into material.\n"
-"In the CNCJob object it is the CutZ parameter."
-msgstr ""
-"Profundidade para cortar o material.\n"
-"No objeto CNC, é o parâmetro Profundidade de Corte (z_cut)."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87
-#: flatcamTools/ToolCalculators.py:27
-msgid "ElectroPlating Calculator"
-msgstr "Calculadora Eletrolítica"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89
-#: flatcamTools/ToolCalculators.py:158
-msgid ""
-"This calculator is useful for those who plate the via/pad/drill holes,\n"
-"using a method like graphite ink or calcium hypophosphite ink or palladium "
-"chloride."
-msgstr ""
-"Esta calculadora é útil para aqueles que fazem os furos\n"
-"(via/pad/furos) usando um método como tinta graphite ou tinta \n"
-"hipofosfito de cálcio ou cloreto de paládio."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:100
-#: flatcamTools/ToolCalculators.py:167
-msgid "Board Length"
-msgstr "Comprimento da Placa"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102
-#: flatcamTools/ToolCalculators.py:173
-msgid "This is the board length. In centimeters."
-msgstr "Comprimento da placa, em centímetros."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112
-#: flatcamTools/ToolCalculators.py:175
-msgid "Board Width"
-msgstr "Largura da Placa"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114
-#: flatcamTools/ToolCalculators.py:181
-msgid "This is the board width.In centimeters."
-msgstr "Largura da placa, em centímetros."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119
-#: flatcamTools/ToolCalculators.py:183
-msgid "Current Density"
-msgstr "Densidade de Corrente"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125
-#: flatcamTools/ToolCalculators.py:190
-msgid ""
-"Current density to pass through the board. \n"
-"In Amps per Square Feet ASF."
-msgstr ""
-"Densidade de corrente para passar pela placa.\n"
-"Em Ampères por Pés Quadrados ASF."
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:131
-#: flatcamTools/ToolCalculators.py:193
-msgid "Copper Growth"
-msgstr "Espessura do Cobre"
-
-#: flatcamGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137
-#: flatcamTools/ToolCalculators.py:200
-msgid ""
-"How thick the copper growth is intended to be.\n"
-"In microns."
-msgstr "Espessura da camada de cobre, em microns."
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:28
-msgid "Cutout Tool Options"
-msgstr "Opções da Ferramenta de Recorte"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43
-#: flatcamTools/ToolCalculators.py:123 flatcamTools/ToolCutOut.py:129
-msgid "Tool Diameter"
-msgstr "Diâmetro"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45
-#: flatcamTools/ToolCutOut.py:131
-msgid ""
-"Diameter of the tool used to cutout\n"
-"the PCB shape out of the surrounding material."
-msgstr "Diâmetro da ferramenta usada para cortar o entorno do PCB."
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:100
-msgid "Object kind"
-msgstr "Tipo de objeto"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102
-#: flatcamTools/ToolCutOut.py:77
-msgid ""
-"Choice of what kind the object we want to cutout is.
- Single: "
-"contain a single PCB Gerber outline object.
- Panel: a panel PCB "
-"Gerber object, which is made\n"
-"out of many individual PCB outlines."
-msgstr ""
-"Escolha o tipo do objeto a recortar.
- Único: contém um único "
-"objeto Gerber de contorno PCB.
- Painel: um painel de objetos "
-"Gerber PCB, composto por muitos contornos PCB individuais."
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109
-#: flatcamTools/ToolCutOut.py:83
-msgid "Single"
-msgstr "Único"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110
-#: flatcamTools/ToolCutOut.py:84
-msgid "Panel"
-msgstr "Painel"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117
-#: flatcamTools/ToolCutOut.py:192
-msgid ""
-"Margin over bounds. A positive value here\n"
-"will make the cutout of the PCB further from\n"
-"the actual PCB border"
-msgstr ""
-"Margem além das bordas. Um valor positivo\n"
-"tornará o recorte do PCB mais longe da borda da PCB"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:130
-#: flatcamTools/ToolCutOut.py:203
-msgid "Gap size"
-msgstr "Tamanho da Ponte"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:132
-#: flatcamTools/ToolCutOut.py:205
-msgid ""
-"The size of the bridge gaps in the cutout\n"
-"used to keep the board connected to\n"
-"the surrounding material (the one \n"
-"from which the PCB is cutout)."
-msgstr ""
-"Tamanho das pontes no recorte, utilizadas\n"
-"para manter a placa conectada ao material\n"
-"circundante (de onde o PCB é recortado)."
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:146
-#: flatcamTools/ToolCutOut.py:245
-msgid "Gaps"
-msgstr "Pontes"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:148
-msgid ""
-"Number of gaps used for the cutout.\n"
-"There can be maximum 8 bridges/gaps.\n"
-"The choices are:\n"
-"- None - no gaps\n"
-"- lr - left + right\n"
-"- tb - top + bottom\n"
-"- 4 - left + right +top + bottom\n"
-"- 2lr - 2*left + 2*right\n"
-"- 2tb - 2*top + 2*bottom\n"
-"- 8 - 2*left + 2*right +2*top + 2*bottom"
-msgstr ""
-"Número de pontes utilizadas para o recorte.\n"
-"Pode haver um máximo de 8 pontes/lacunas.\n"
-"As opções são:\n"
-"- Nenhum - sem pontes\n"
-"- LR: esquerda + direita\n"
-"- TB: topo + baixo\n"
-"- 4: esquerda + direita + topo + baixo\n"
-"- 2LR: 2*esquerda + 2*direita\n"
-"- 2TB: 2*topo + 2*baixo\n"
-"- 8: 2*esquerda + 2*direita + 2*topo + 2*baixo"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:170
-#: flatcamTools/ToolCutOut.py:222
-msgid "Convex Shape"
-msgstr "Forma Convexa"
-
-#: flatcamGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:172
-#: flatcamTools/ToolCutOut.py:225
-msgid ""
-"Create a convex shape surrounding the entire PCB.\n"
-"Used only if the source object type is Gerber."
-msgstr ""
-"Cria uma forma convexa ao redor de toda a PCB.\n"
-"Utilize somente se o tipo de objeto de origem for Gerber."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:27
-msgid "Film Tool Options"
-msgstr "Opções da Ferramenta de Filme"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:33
-msgid ""
-"Create a PCB film from a Gerber or Geometry\n"
-"FlatCAM object.\n"
-"The file is saved in SVG format."
-msgstr ""
-"Cria um filme de PCB a partir de um objeto Gerber\n"
-"ou Geometria FlatCAM.\n"
-"O arquivo é salvo no formato SVG."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:44
-msgid "Film Type"
-msgstr "Tipo de Filme"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:46
-#: flatcamTools/ToolFilm.py:300
-msgid ""
-"Generate a Positive black film or a Negative film.\n"
-"Positive means that it will print the features\n"
-"with black on a white canvas.\n"
-"Negative means that it will print the features\n"
-"with white on a black canvas.\n"
-"The Film format is SVG."
-msgstr ""
-"Gera um filme Positivo ou Negativo.\n"
-"Positivo significa que os recursos são impressos\n"
-"em preto em uma tela branca.\n"
-"Negativo significa que os recursos são impressos\n"
-"em branco em uma tela preta.\n"
-"O formato do arquivo do filme é SVG ."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:57
-msgid "Film Color"
-msgstr "Cor do Filme"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:59
-msgid "Set the film color when positive film is selected."
-msgstr "Define a cor do filme, se filme positivo estiver selecionado."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:82
-#: flatcamTools/ToolFilm.py:316
-msgid "Border"
-msgstr "Borda"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:84
-#: flatcamTools/ToolFilm.py:318
-msgid ""
-"Specify a border around the object.\n"
-"Only for negative film.\n"
-"It helps if we use as a Box Object the same \n"
-"object as in Film Object. It will create a thick\n"
-"black bar around the actual print allowing for a\n"
-"better delimitation of the outline features which are of\n"
-"white color like the rest and which may confound with the\n"
-"surroundings if not for this border."
-msgstr ""
-"Especifica uma borda ao redor do objeto.\n"
-"Somente para filme negativo.\n"
-"Ajuda se for usado como Objeto Caixa o mesmo\n"
-"objeto do Filme. Será criada uma barra preta\n"
-"ao redor da impressão, permitindo uma melhor\n"
-"delimitação dos contornos dos recursos (que são\n"
-"brancos como o restante e podem ser confundidos\n"
-"com os limites, se não for usada essa borda)."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:101
-#: flatcamTools/ToolFilm.py:283
-msgid "Scale Stroke"
-msgstr "Espessura da Linha"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:103
-#: flatcamTools/ToolFilm.py:285
-msgid ""
-"Scale the line stroke thickness of each feature in the SVG file.\n"
-"It means that the line that envelope each SVG feature will be thicker or "
-"thinner,\n"
-"therefore the fine features may be more affected by this parameter."
-msgstr ""
-"Espessura da linha de cada recurso no arquivo SVG.\n"
-"A linha que envolve cada recurso SVG será mais espessa ou mais fina.\n"
-"Os recursos mais finos podem ser afetados por esse parâmetro."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:110
-#: flatcamTools/ToolFilm.py:141
-msgid "Film Adjustments"
-msgstr "Ajustes do Filme"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:112
-#: flatcamTools/ToolFilm.py:143
-msgid ""
-"Sometime the printers will distort the print shape, especially the Laser "
-"types.\n"
-"This section provide the tools to compensate for the print distortions."
-msgstr ""
-"Algumas vezes, as impressoras distorcem o formato da impressão, "
-"especialmente as laser.\n"
-"Esta seção fornece as ferramentas para compensar as distorções na impressão."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:119
-#: flatcamTools/ToolFilm.py:150
-msgid "Scale Film geometry"
-msgstr "Escala da Geometria de Filme"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:121
-#: flatcamTools/ToolFilm.py:152
-msgid ""
-"A value greater than 1 will stretch the film\n"
-"while a value less than 1 will jolt it."
-msgstr ""
-"Um valor maior que 1 esticará o filme\n"
-"enquanto um valor menor que 1 o reduzirá."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:131
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:103
-#: flatcamTools/ToolFilm.py:162 flatcamTools/ToolTransform.py:148
-msgid "X factor"
-msgstr "Fator X"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:140
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:116
-#: flatcamTools/ToolFilm.py:171 flatcamTools/ToolTransform.py:168
-msgid "Y factor"
-msgstr "Fator Y"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:150
-#: flatcamTools/ToolFilm.py:189
-msgid "Skew Film geometry"
-msgstr "Inclinar a Geometria de Filme"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:152
-#: flatcamTools/ToolFilm.py:191
-msgid ""
-"Positive values will skew to the right\n"
-"while negative values will skew to the left."
-msgstr ""
-"Valores positivos inclinam para a direita\n"
-"enquanto valores negativos inclinam para a esquerda."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:162
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:72
-#: flatcamTools/ToolFilm.py:201 flatcamTools/ToolTransform.py:97
-msgid "X angle"
-msgstr "Ângulo X"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:171
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:86
-#: flatcamTools/ToolFilm.py:210 flatcamTools/ToolTransform.py:118
-msgid "Y angle"
-msgstr "Ângulo Y"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:182
-#: flatcamTools/ToolFilm.py:221
-msgid ""
-"The reference point to be used as origin for the skew.\n"
-"It can be one of the four points of the geometry bounding box."
-msgstr ""
-"O ponto de referência a ser usado como origem para a inclinação.\n"
-"Pode ser um dos quatro pontos da caixa delimitadora de geometria."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:185
-#: flatcamTools/ToolFiducials.py:87 flatcamTools/ToolFilm.py:224
-msgid "Bottom Left"
-msgstr "Esquerda Inferior"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:186
-#: flatcamTools/ToolFilm.py:225
-msgid "Top Left"
-msgstr "Esquerda Superior"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:187
-#: flatcamTools/ToolFilm.py:226
-msgid "Bottom Right"
-msgstr "Direita Inferior"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:188
-#: flatcamTools/ToolFilm.py:227
-msgid "Top right"
-msgstr "Direita Superior"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196
-#: flatcamTools/ToolFilm.py:244
-msgid "Mirror Film geometry"
-msgstr "Espelhar geometria de filme"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:198
-#: flatcamTools/ToolFilm.py:246
-msgid "Mirror the film geometry on the selected axis or on both."
-msgstr "Espelha a geometria do filme no eixo selecionado ou em ambos."
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:212
-#: flatcamTools/ToolFilm.py:260
-msgid "Mirror axis"
-msgstr "Espelhar eixo"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:222
-#: flatcamTools/ToolFilm.py:405
-msgid "SVG"
-msgstr "SVG"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:223
-#: flatcamTools/ToolFilm.py:406
-msgid "PNG"
-msgstr "PNG"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:224
-#: flatcamTools/ToolFilm.py:407
-msgid "PDF"
-msgstr "PDF"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:227
-#: flatcamTools/ToolFilm.py:298 flatcamTools/ToolFilm.py:410
-msgid "Film Type:"
-msgstr "Tipo de Filme:"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:229
-#: flatcamTools/ToolFilm.py:412
-msgid ""
-"The file type of the saved film. Can be:\n"
-"- 'SVG' -> open-source vectorial format\n"
-"- 'PNG' -> raster image\n"
-"- 'PDF' -> portable document format"
-msgstr ""
-"O tipo de arquivo do filme salvo. Pode ser:\n"
-"- 'SVG' -> formato vetorial de código aberto\n"
-"- 'PNG' -> imagem raster\n"
-"- 'PDF' -> formato de documento portátil"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:238
-#: flatcamTools/ToolFilm.py:421
-msgid "Page Orientation"
-msgstr "Orientação da Página"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:251
-#: flatcamTools/ToolFilm.py:434
-msgid "Page Size"
-msgstr "Tamanho da Página"
-
-#: flatcamGUI/preferences/tools/ToolsFilmPrefGroupUI.py:252
-#: flatcamTools/ToolFilm.py:435
-msgid "A selection of standard ISO 216 page sizes."
-msgstr "Uma seleção de tamanhos de página padrão ISO 216."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:27
-msgid "NCC Tool Options"
-msgstr "Opções Área Sem Cobre (NCC)"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:49
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:57
-msgid "Comma separated values"
-msgstr "Valores Separados Por Virgula"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:55
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:63
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:64
-#: flatcamTools/ToolNCC.py:215 flatcamTools/ToolNCC.py:223
-#: flatcamTools/ToolPaint.py:198 flatcamTools/ToolPaint.py:206
-msgid ""
-"Default tool type:\n"
-"- 'V-shape'\n"
-"- Circular"
-msgstr ""
-"Tipo padrão das ferramentas:\n"
-"- 'Ponta-V'\n"
-"- Circular"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:60
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:69
-#: flatcamTools/ToolNCC.py:220 flatcamTools/ToolPaint.py:203
-msgid "V-shape"
-msgstr "Ponta-V"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:100
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:109
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:107
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:116
-#: flatcamTools/ToolNCC.py:262 flatcamTools/ToolNCC.py:271
-#: flatcamTools/ToolPaint.py:245 flatcamTools/ToolPaint.py:254
-msgid ""
-"Depth of cut into material. Negative value.\n"
-"In FlatCAM units."
-msgstr ""
-"Profundidade de corte no material. Valor negativo.\n"
-"Em unidades FlatCAM."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:119
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:125
-#: flatcamTools/ToolNCC.py:280 flatcamTools/ToolPaint.py:263
-msgid ""
-"Diameter for the new tool to add in the Tool Table.\n"
-"If the tool is V-shape type then this value is automatically\n"
-"calculated from the other parameters."
-msgstr ""
-"Diâmetro da nova ferramenta a ser adicionada na Tabela de Ferramentas.\n"
-"Se a ferramenta for do tipo V, esse valor será automaticamente\n"
-"calculado a partir dos outros parâmetros."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:156
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:142
-#: flatcamTools/ToolNCC.py:174 flatcamTools/ToolPaint.py:158
-msgid "Tool order"
-msgstr "Ordem das Ferramentas"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:157
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:167
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:143
-#: flatcamTools/ToolNCC.py:175 flatcamTools/ToolNCC.py:185
-#: flatcamTools/ToolPaint.py:159 flatcamTools/ToolPaint.py:169
-msgid ""
-"This set the way that the tools in the tools table are used.\n"
-"'No' --> means that the used order is the one in the tool table\n"
-"'Forward' --> means that the tools will be ordered from small to big\n"
-"'Reverse' --> means that the tools will ordered from big to small\n"
-"\n"
-"WARNING: using rest machining will automatically set the order\n"
-"in reverse and disable this control."
-msgstr ""
-"Define a ordem em que as ferramentas da Tabela de Ferramentas são usadas.\n"
-"'Não' -> utiliza a ordem da tabela de ferramentas\n"
-"'Crescente' -> as ferramentas são ordenadas de menor para maior\n"
-"'Decrescente' -> as ferramentas são ordenadas de maior para menor\n"
-"\n"
-"ATENÇÃO: se for utilizada usinagem de descanso, será utilizada "
-"automaticamente a ordem\n"
-"decrescente e este controle é desativado."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:165
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:151
-#: flatcamTools/ToolNCC.py:183 flatcamTools/ToolPaint.py:167
-msgid "Forward"
-msgstr "Crescente"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:166
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:152
-#: flatcamTools/ToolNCC.py:184 flatcamTools/ToolPaint.py:168
-msgid "Reverse"
-msgstr "Decrescente"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:266
-msgid "Offset value"
-msgstr "Valor do deslocamento"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:268
-msgid ""
-"If used, it will add an offset to the copper features.\n"
-"The copper clearing will finish to a distance\n"
-"from the copper features.\n"
-"The value can be between 0.0 and 9999.9 FlatCAM units."
-msgstr ""
-"Se usado, será adicionado um deslocamento aos recursos de cobre.\n"
-"A retirada de cobre terminará a uma distância dos recursos de cobre.\n"
-"O valor pode estar entre 0 e 9999.9 unidades FlatCAM."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:288
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:244
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:245
-#: flatcamTools/ToolNCC.py:512 flatcamTools/ToolPaint.py:442
-msgid "Rest Machining"
-msgstr "Usinagem em Repouso"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:290
-#: flatcamTools/ToolNCC.py:516
-msgid ""
-"If checked, use 'rest machining'.\n"
-"Basically it will clear copper outside PCB features,\n"
-"using the biggest tool and continue with the next tools,\n"
-"from bigger to smaller, to clear areas of copper that\n"
-"could not be cleared by previous tool, until there is\n"
-"no more copper to clear or there are no more tools.\n"
-"If not checked, use the standard algorithm."
-msgstr ""
-"Se marcada, usa 'usinagem de descanso'.\n"
-"Basicamente, limpará o cobre fora dos recursos do PCB, utilizando\n"
-"a maior ferramenta e continuará com as próximas ferramentas, da\n"
-"maior para a menor, para limpar áreas de cobre que não puderam ser\n"
-"retiradas com a ferramenta anterior.\n"
-"Se não estiver marcada, usa o algoritmo padrão."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:313
-#: flatcamTools/ToolNCC.py:541
-msgid ""
-"Selection of area to be processed.\n"
-"- 'Itself' - the processing extent is based on the object that is "
-"processed.\n"
-" - 'Area Selection' - left mouse click to start selection of the area to be "
-"processed.\n"
-"- 'Reference Object' - will process the area specified by another object."
-msgstr ""
-"Seleção da área a ser processada.\n"
-"- 'Própria' - a extensão de processamento é baseada no próprio objeto a ser "
-"limpo.\n"
-"- 'Seleção de Área' - clique com o botão esquerdo do mouse para iniciar a "
-"seleção da área a ser processada.\n"
-"- 'Objeto de Referência' - processará a área especificada por outro objeto."
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:339
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303
-msgid "Normal"
-msgstr "Normal"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:340
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:304
-msgid "Progressive"
-msgstr "Progressivo"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:341
-msgid "NCC Plotting"
-msgstr "Gráfico NCC"
-
-#: flatcamGUI/preferences/tools/ToolsNCCPrefGroupUI.py:343
-msgid ""
-"- 'Normal' - normal plotting, done at the end of the NCC job\n"
-"- 'Progressive' - after each shape is generated it will be plotted."
-msgstr ""
-"- 'Normal' - plotagem normal, realizada no final do trabalho de NCC\n"
-"- 'Progressivo' - após cada forma ser gerada, ela será plotada."
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:27
-msgid "Paint Tool Options"
-msgstr "Opções da Ferramenta de Pintura"
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:33
-msgid "Parameters:"
-msgstr "Parâmetros:"
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:247
-#: flatcamTools/ToolPaint.py:445
-msgid ""
-"If checked, use 'rest machining'.\n"
-"Basically it will clear copper outside PCB features,\n"
-"using the biggest tool and continue with the next tools,\n"
-"from bigger to smaller, to clear areas of copper that\n"
-"could not be cleared by previous tool, until there is\n"
-"no more copper to clear or there are no more tools.\n"
-"\n"
-"If not checked, use the standard algorithm."
-msgstr ""
-"Se marcada, usa 'usinagem de descanso'.\n"
-"Basicamente, limpará o cobre fora dos recursos do PCB, utilizando\n"
-"a maior ferramenta e continuará com as próximas ferramentas, da\n"
-"maior para a menor, para limpar áreas de cobre que não puderam ser\n"
-"retiradas com a ferramenta anterior.\n"
-"Se não estiver marcada, usa o algoritmo padrão."
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:260
-#: flatcamTools/ToolPaint.py:458
-msgid ""
-"Selection of area to be processed.\n"
-"- 'Polygon Selection' - left mouse click to add/remove polygons to be "
-"processed.\n"
-"- 'Area Selection' - left mouse click to start selection of the area to be "
-"processed.\n"
-"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple "
-"areas.\n"
-"- 'All Polygons' - the process will start after click.\n"
-"- 'Reference Object' - will process the area specified by another object."
-msgstr ""
-"Seleção da área para processar.\n"
-"- 'Seleção de polígonos' - clique com o botão esquerdo do mouse para "
-"adicionar/remover polígonos a serem processados.\n"
-"- 'Seleção de Área' - clique com o botão esquerdo do mouse para iniciar a "
-"seleção da área a ser processada.\n"
-"Manter uma tecla modificadora pressionada (CTRL ou SHIFT) permite adicionar "
-"várias áreas.\n"
-"- 'Todos os polígonos' - o processamento iniciará após o clique.\n"
-"- 'Objeto de Referência' - processará dentro da área do objeto especificado."
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
-#: flatcamTools/ToolPaint.py:486 flatcamTools/ToolPaint.py:942
-#: flatcamTools/ToolPaint.py:1432 tclCommands/TclCommandPaint.py:164
-msgid "Polygon Selection"
-msgstr "Seleção de Polígonos"
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:305
-msgid "Paint Plotting"
-msgstr "Mostrar Pinturas"
-
-#: flatcamGUI/preferences/tools/ToolsPaintPrefGroupUI.py:307
-msgid ""
-"- 'Normal' - normal plotting, done at the end of the Paint job\n"
-"- 'Progressive' - after each shape is generated it will be plotted."
-msgstr ""
-"- 'Normal' - plotagem normal, realizada no final do trabalho de pintura\n"
-"- 'Progressivo' - após cada forma ser gerada, ela será plotada."
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:27
-msgid "Panelize Tool Options"
-msgstr "Opções da Ferramenta Criar Painel"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:33
-msgid ""
-"Create an object that contains an array of (x, y) elements,\n"
-"each element is a copy of the source object spaced\n"
-"at a X distance, Y distance of each other."
-msgstr ""
-"Cria um objeto que contém uma matriz de elementos (x, y).\n"
-"Cada elemento é uma cópia do objeto de origem espaçado\n"
-"dos demais por uma distância X, Y."
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:50
-#: flatcamTools/ToolPanelize.py:163
-msgid "Spacing cols"
-msgstr "Espaço entre Colunas"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:52
-#: flatcamTools/ToolPanelize.py:165
-msgid ""
-"Spacing between columns of the desired panel.\n"
-"In current units."
-msgstr ""
-"Espaçamento desejado entre colunas do painel.\n"
-"Nas unidades atuais."
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:64
-#: flatcamTools/ToolPanelize.py:175
-msgid "Spacing rows"
-msgstr "Espaço entre Linhas"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:66
-#: flatcamTools/ToolPanelize.py:177
-msgid ""
-"Spacing between rows of the desired panel.\n"
-"In current units."
-msgstr ""
-"Espaçamento desejado entre linhas do painel.\n"
-"Nas unidades atuais."
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:77
-#: flatcamTools/ToolPanelize.py:186
-msgid "Columns"
-msgstr "Colunas"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:79
-#: flatcamTools/ToolPanelize.py:188
-msgid "Number of columns of the desired panel"
-msgstr "Número de colunas do painel desejado"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:89
-#: flatcamTools/ToolPanelize.py:196
-msgid "Rows"
-msgstr "Linhas"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:91
-#: flatcamTools/ToolPanelize.py:198
-msgid "Number of rows of the desired panel"
-msgstr "Número de linhas do painel desejado"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:98
-#: flatcamTools/ToolPanelize.py:205
-msgid "Geo"
-msgstr "Geo"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:99
-#: flatcamTools/ToolPanelize.py:206
-msgid "Panel Type"
-msgstr "Tipo de Painel"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:101
-msgid ""
-"Choose the type of object for the panel object:\n"
-"- Gerber\n"
-"- Geometry"
-msgstr ""
-"Escolha o tipo de objeto para o painel:\n"
-"- Gerber\n"
-"- Geometria"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:110
-msgid "Constrain within"
-msgstr "Restringir dentro de"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:112
-#: flatcamTools/ToolPanelize.py:218
-msgid ""
-"Area define by DX and DY within to constrain the panel.\n"
-"DX and DY values are in current units.\n"
-"Regardless of how many columns and rows are desired,\n"
-"the final panel will have as many columns and rows as\n"
-"they fit completely within selected area."
-msgstr ""
-"Área definida por DX e DY para restringir o painel.\n"
-"Os valores DX e DY estão nas unidades atuais.\n"
-"Desde quantas colunas e linhas forem desejadas,\n"
-"o painel final terá tantas colunas e linhas quantas\n"
-"couberem completamente dentro de área selecionada."
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:125
-#: flatcamTools/ToolPanelize.py:230
-msgid "Width (DX)"
-msgstr "Largura (DX)"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:127
-#: flatcamTools/ToolPanelize.py:232
-msgid ""
-"The width (DX) within which the panel must fit.\n"
-"In current units."
-msgstr ""
-"A largura (DX) na qual o painel deve caber.\n"
-"Nas unidades atuais."
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:138
-#: flatcamTools/ToolPanelize.py:241
-msgid "Height (DY)"
-msgstr "Altura (DY)"
-
-#: flatcamGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:140
-#: flatcamTools/ToolPanelize.py:243
-msgid ""
-"The height (DY)within which the panel must fit.\n"
-"In current units."
-msgstr ""
-"A altura (DY) na qual o painel deve se ajustar.\n"
-"Nas unidades atuais."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:27
-msgid "SolderPaste Tool Options"
-msgstr "Opções da Ferramenta Pasta de Solda"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:33
-msgid ""
-"A tool to create GCode for dispensing\n"
-"solder paste onto a PCB."
-msgstr ""
-"Uma ferramenta para criar G-Code para dispensar pasta\n"
-"de solda em um PCB."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:54
-msgid "New Nozzle Dia"
-msgstr "Diâmetro do Novo Bico"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:56
-#: flatcamTools/ToolSolderPaste.py:107
-msgid "Diameter for the new Nozzle tool to add in the Tool Table"
-msgstr ""
-"Diâmetro da nova ferramenta Bico para adicionar na tabela de ferramentas"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:72
-#: flatcamTools/ToolSolderPaste.py:183
-msgid "Z Dispense Start"
-msgstr "Altura Inicial"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:74
-#: flatcamTools/ToolSolderPaste.py:185
-msgid "The height (Z) when solder paste dispensing starts."
-msgstr "A altura (Z) que inicia a distribuição de pasta de solda."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:85
-#: flatcamTools/ToolSolderPaste.py:195
-msgid "Z Dispense"
-msgstr "Altura para Distribuir"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:87
-#: flatcamTools/ToolSolderPaste.py:197
-msgid "The height (Z) when doing solder paste dispensing."
-msgstr "Altura (Z) para distribuir a pasta de solda."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:98
-#: flatcamTools/ToolSolderPaste.py:207
-msgid "Z Dispense Stop"
-msgstr "Altura Final"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:100
-#: flatcamTools/ToolSolderPaste.py:209
-msgid "The height (Z) when solder paste dispensing stops."
-msgstr "Altura (Z) após a distribuição de pasta de solda."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:111
-#: flatcamTools/ToolSolderPaste.py:219
-msgid "Z Travel"
-msgstr "Altura para Deslocamento"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:113
-#: flatcamTools/ToolSolderPaste.py:221
-msgid ""
-"The height (Z) for travel between pads\n"
-"(without dispensing solder paste)."
-msgstr ""
-"Altura (Z) para deslocamento entre pads\n"
-"(sem dispensar pasta de solda)."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:125
-#: flatcamTools/ToolSolderPaste.py:232
-msgid "Z Toolchange"
-msgstr "Altura Troca de Ferram."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:127
-#: flatcamTools/ToolSolderPaste.py:234
-msgid "The height (Z) for tool (nozzle) change."
-msgstr "Altura (Z) para trocar ferramenta (bico)."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:136
-#: flatcamTools/ToolSolderPaste.py:242
-msgid ""
-"The X,Y location for tool (nozzle) change.\n"
-"The format is (x, y) where x and y are real numbers."
-msgstr ""
-"Posição X,Y para trocar ferramenta (bico).\n"
-"O formato é (x, y) onde x e y são números reais."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:150
-#: flatcamTools/ToolSolderPaste.py:255
-msgid "Feedrate (speed) while moving on the X-Y plane."
-msgstr "Avanço (velocidade) para movimento no plano XY."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:163
-#: flatcamTools/ToolSolderPaste.py:267
-msgid ""
-"Feedrate (speed) while moving vertically\n"
-"(on Z plane)."
-msgstr ""
-"Avanço (velocidade) para movimento vertical\n"
-"(no plano Z)."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:175
-#: flatcamTools/ToolSolderPaste.py:278
-msgid "Feedrate Z Dispense"
-msgstr "Avanço Z Distribuição"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:177
-msgid ""
-"Feedrate (speed) while moving up vertically\n"
-"to Dispense position (on Z plane)."
-msgstr ""
-"Avanço (velocidade) para subir verticalmente\n"
-"para a posição Dispensar (no plano Z)."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:188
-#: flatcamTools/ToolSolderPaste.py:290
-msgid "Spindle Speed FWD"
-msgstr "Velocidade Spindle FWD"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:190
-#: flatcamTools/ToolSolderPaste.py:292
-msgid ""
-"The dispenser speed while pushing solder paste\n"
-"through the dispenser nozzle."
-msgstr ""
-"A velocidade do dispensador ao empurrar a pasta de solda\n"
-"através do bico do distribuidor."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:202
-#: flatcamTools/ToolSolderPaste.py:303
-msgid "Dwell FWD"
-msgstr "Espera FWD"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:204
-#: flatcamTools/ToolSolderPaste.py:305
-msgid "Pause after solder dispensing."
-msgstr "Pausa após a dispensação de solda."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:214
-#: flatcamTools/ToolSolderPaste.py:314
-msgid "Spindle Speed REV"
-msgstr "Velocidade Spindle REV"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:216
-#: flatcamTools/ToolSolderPaste.py:316
-msgid ""
-"The dispenser speed while retracting solder paste\n"
-"through the dispenser nozzle."
-msgstr ""
-"A velocidade do dispensador enquanto retrai a pasta de solda\n"
-"através do bico do dispensador."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:228
-#: flatcamTools/ToolSolderPaste.py:327
-msgid "Dwell REV"
-msgstr "Espera REV"
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:230
-#: flatcamTools/ToolSolderPaste.py:329
-msgid ""
-"Pause after solder paste dispenser retracted,\n"
-"to allow pressure equilibrium."
-msgstr ""
-"Pausa após o dispensador de pasta de solda retrair, para permitir o "
-"equilíbrio de pressão."
-
-#: flatcamGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:239
-#: flatcamTools/ToolSolderPaste.py:337
-msgid "Files that control the GCode generation."
-msgstr "Arquivos que controlam a geração de G-Code."
-
-#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:27
-msgid "Substractor Tool Options"
-msgstr "Opções da ferramenta Substração"
-
-#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:33
-msgid ""
-"A tool to substract one Gerber or Geometry object\n"
-"from another of the same type."
-msgstr ""
-"Uma ferramenta para subtrair um objeto Gerber ou Geometry\n"
-"de outro do mesmo tipo."
-
-#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:38
-#: flatcamTools/ToolSub.py:155
-msgid "Close paths"
-msgstr "Fechar caminhos"
-
-#: flatcamGUI/preferences/tools/ToolsSubPrefGroupUI.py:39
-msgid ""
-"Checking this will close the paths cut by the Geometry substractor object."
-msgstr ""
-"Marcar isso fechará os caminhos cortados pelo objeto substrair Geometria."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:27
-msgid "Transform Tool Options"
-msgstr "Opções Transformações"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:33
-msgid ""
-"Various transformations that can be applied\n"
-"on a FlatCAM object."
-msgstr ""
-"Várias transformações que podem ser aplicadas\n"
-"a um objeto FlatCAM."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:64
-msgid "Skew"
-msgstr "Inclinar"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:105
-#: flatcamTools/ToolTransform.py:150
-msgid "Factor for scaling on X axis."
-msgstr "Fator para redimensionamento no eixo X."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:118
-#: flatcamTools/ToolTransform.py:170
-msgid "Factor for scaling on Y axis."
-msgstr "Fator para redimensionamento no eixo Y."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:126
-#: flatcamTools/ToolTransform.py:191
-msgid ""
-"Scale the selected object(s)\n"
-"using the Scale_X factor for both axis."
-msgstr ""
-"Redimensiona o(s) objeto(s) selecionado(s)\n"
-"usando o Fator de Escala X para ambos os eixos."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:134
-#: flatcamTools/ToolTransform.py:198
-msgid ""
-"Scale the selected object(s)\n"
-"using the origin reference when checked,\n"
-"and the center of the biggest bounding box\n"
-"of the selected objects when unchecked."
-msgstr ""
-"Redimensiona o(s) objeto(s) selecionado(s) usando a referência\n"
-"de origem quando marcado, e o centro da maior caixa delimitadora\n"
-"do objeto selecionado quando desmarcado."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:150
-#: flatcamTools/ToolTransform.py:217
-msgid "X val"
-msgstr "X"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:152
-#: flatcamTools/ToolTransform.py:219
-msgid "Distance to offset on X axis. In current units."
-msgstr "Distância para deslocar no eixo X, nas unidades atuais."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:163
-#: flatcamTools/ToolTransform.py:237
-msgid "Y val"
-msgstr "Y"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:165
-#: flatcamTools/ToolTransform.py:239
-msgid "Distance to offset on Y axis. In current units."
-msgstr "Distância para deslocar no eixo Y, nas unidades atuais."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:171
-#: flatcamTools/ToolDblSided.py:67 flatcamTools/ToolDblSided.py:95
-#: flatcamTools/ToolDblSided.py:125
-msgid "Mirror"
-msgstr "Espelhar"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:175
-#: flatcamTools/ToolTransform.py:283
-msgid "Mirror Reference"
-msgstr "Referência do Espelhamento"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:177
-#: flatcamTools/ToolTransform.py:285
-msgid ""
-"Flip the selected object(s)\n"
-"around the point in Point Entry Field.\n"
-"\n"
-"The point coordinates can be captured by\n"
-"left click on canvas together with pressing\n"
-"SHIFT key. \n"
-"Then click Add button to insert coordinates.\n"
-"Or enter the coords in format (x, y) in the\n"
-"Point Entry field and click Flip on X(Y)"
-msgstr ""
-"Espelha o(s) objeto(s) selecionado(s)\n"
-"em relação às coordenadas abaixo. \n"
-"\n"
-"As coordenadas do ponto podem ser inseridas:\n"
-"- com clique no botão esquerdo junto com a tecla\n"
-" SHIFT pressionada, e clicar no botão Adicionar.\n"
-"- ou digitar as coordenadas no formato (x, y) no campo\n"
-" Ponto de Ref. e clicar em Espelhar no X(Y)"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:188
-msgid "Mirror Reference point"
-msgstr "Referência do Espelhamento"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:190
-msgid ""
-"Coordinates in format (x, y) used as reference for mirroring.\n"
-"The 'x' in (x, y) will be used when using Flip on X and\n"
-"the 'y' in (x, y) will be used when using Flip on Y and"
-msgstr ""
-"Coordenadas no formato (x, y) usadas como referência para espelhamento.\n"
-"O 'x' em (x, y) será usado ao usar Espelhar em X e\n"
-"o 'y' em (x, y) será usado ao usar Espelhar em Y e"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:203
-#: flatcamTools/ToolDistance.py:496 flatcamTools/ToolDistanceMin.py:287
-#: flatcamTools/ToolTransform.py:332
-msgid "Distance"
-msgstr "Distância"
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:205
-#: flatcamTools/ToolTransform.py:334
-msgid ""
-"A positive value will create the effect of dilation,\n"
-"while a negative value will create the effect of erosion.\n"
-"Each geometry element of the object will be increased\n"
-"or decreased with the 'distance'."
-msgstr ""
-"Um valor positivo criará o efeito de dilatação,\n"
-"enquanto um valor negativo criará o efeito de erosão.\n"
-"Cada elemento geométrico do objeto será aumentado\n"
-"ou diminuiu com a 'distância'."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:222
-#: flatcamTools/ToolTransform.py:359
-msgid ""
-"A positive value will create the effect of dilation,\n"
-"while a negative value will create the effect of erosion.\n"
-"Each geometry element of the object will be increased\n"
-"or decreased to fit the 'Value'. Value is a percentage\n"
-"of the initial dimension."
-msgstr ""
-"Um valor positivo criará o efeito de dilatação,\n"
-"enquanto um valor negativo criará o efeito de erosão.\n"
-"Cada elemento geométrico do objeto será aumentado\n"
-"ou diminuído com a 'distância'. Esse valor é um\n"
-"percentual da dimensão inicial."
-
-#: flatcamGUI/preferences/tools/ToolsTransformPrefGroupUI.py:241
-#: flatcamTools/ToolTransform.py:385
-msgid ""
-"If checked then the buffer will surround the buffered shape,\n"
-"every corner will be rounded.\n"
-"If not checked then the buffer will follow the exact geometry\n"
-"of the buffered shape."
-msgstr ""
-"Se marcado, o buffer cercará a forma do buffer,\n"
-"cada canto será arredondado.\n"
-"Se não marcado, o buffer seguirá a geometria exata\n"
-"da forma em buffer."
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:27
-msgid "Autocompleter Keywords"
-msgstr "Palavras-chave do preenchimento automático"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:30
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:40
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:30
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:30
-msgid "Restore"
-msgstr "Restaurar"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:31
-msgid "Restore the autocompleter keywords list to the default state."
-msgstr ""
-"Restaurar a lista de palavras-chave do preenchimento automático para o "
-"estado padrão."
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:32
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:42
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:32
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:32
-msgid "Delete All"
-msgstr "Excluir Tudo"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:33
-msgid "Delete all autocompleter keywords from the list."
-msgstr "Excluir todas as palavras-chave do preenchimento automático da lista."
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:41
-msgid "Keywords list"
-msgstr "Lista de palavras-chave"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:43
-msgid ""
-"List of keywords used by\n"
-"the autocompleter in FlatCAM.\n"
-"The autocompleter is installed\n"
-"in the Code Editor and for the Tcl Shell."
-msgstr ""
-"Lista de palavras-chave usadas no\n"
-"preenchimento automático no FlatCAM.\n"
-"O preenchimento automático está instalado\n"
-"no Editor de Código e na Linha de Comandos Tcl."
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:64
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:73
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:63
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:62
-msgid "Extension"
-msgstr "Extensão"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:65
-msgid "A keyword to be added or deleted to the list."
-msgstr "Uma palavra-chave a ser adicionada ou excluída da lista."
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:73
-msgid "Add keyword"
-msgstr "Adicionar palavra-chave"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:74
-msgid "Add a keyword to the list"
-msgstr "Adiciona uma palavra-chave à lista"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:75
-msgid "Delete keyword"
-msgstr "Excluir palavra-chave"
-
-#: flatcamGUI/preferences/utilities/AutoCompletePrefGroupUI.py:76
-msgid "Delete a keyword from the list"
-msgstr "Exclui uma palavra-chave da lista"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:27
-msgid "Excellon File associations"
-msgstr "Associação de Arquivos Excellon"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:41
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:31
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:31
-msgid "Restore the extension list to the default state."
-msgstr "Restaure a lista de extensões para o estado padrão."
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:43
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:33
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:33
-msgid "Delete all extensions from the list."
-msgstr "Excluir todas as extensões da lista."
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:51
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:41
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:41
-msgid "Extensions list"
-msgstr "Lista de extensões"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:53
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:43
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:43
-msgid ""
-"List of file extensions to be\n"
-"associated with FlatCAM."
-msgstr "Lista de extensões de arquivos que serão associadas ao FlatCAM."
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:74
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:64
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:63
-msgid "A file extension to be added or deleted to the list."
-msgstr "Uma extensão de arquivo a ser adicionada ou excluída da lista."
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:82
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:72
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:71
-msgid "Add Extension"
-msgstr "Adicionar Extensão"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:83
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:73
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:72
-msgid "Add a file extension to the list"
-msgstr "Adiciona uma nova extensão à lista"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:84
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:74
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:73
-msgid "Delete Extension"
-msgstr "Excluir Extensão"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:85
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:75
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:74
-msgid "Delete a file extension from the list"
-msgstr "Exclui uma extensão da lista"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:92
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:82
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:81
-msgid "Apply Association"
-msgstr "Aplicar Associação"
-
-#: flatcamGUI/preferences/utilities/FAExcPrefGroupUI.py:93
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:83
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:82
-msgid ""
-"Apply the file associations between\n"
-"FlatCAM and the files with above extensions.\n"
-"They will be active after next logon.\n"
-"This work only in Windows."
-msgstr ""
-"Aplica as associações de arquivos entre o\n"
-"FlatCAM e os arquivos com as extensões acima.\n"
-"Elas serão ativas após o próximo logon.\n"
-"Isso funciona apenas no Windows."
-
-#: flatcamGUI/preferences/utilities/FAGcoPrefGroupUI.py:27
-msgid "GCode File associations"
-msgstr "Associação de arquivos G-Code"
-
-#: flatcamGUI/preferences/utilities/FAGrbPrefGroupUI.py:27
-msgid "Gerber File associations"
-msgstr "Associação de arquivos Gerber"
-
-#: flatcamObjects/FlatCAMCNCJob.py:429 flatcamObjects/FlatCAMDocument.py:71
-#: flatcamObjects/FlatCAMScript.py:82
-msgid "Basic"
-msgstr "Básico"
-
-#: flatcamObjects/FlatCAMCNCJob.py:435 flatcamObjects/FlatCAMDocument.py:75
-#: flatcamObjects/FlatCAMScript.py:86
-msgid "Advanced"
-msgstr "Avançado"
-
-#: flatcamObjects/FlatCAMCNCJob.py:478
-msgid "Plotting..."
-msgstr "Plotando..."
-
-#: flatcamObjects/FlatCAMCNCJob.py:507 flatcamObjects/FlatCAMCNCJob.py:512
-#: flatcamTools/ToolSolderPaste.py:1499
-msgid "Export Machine Code ..."
-msgstr "Exportar Código da Máquina ..."
-
-#: flatcamObjects/FlatCAMCNCJob.py:517 flatcamTools/ToolSolderPaste.py:1503
-msgid "Export Machine Code cancelled ..."
-msgstr "Exportar código da máquina cancelado ..."
-
-#: flatcamObjects/FlatCAMCNCJob.py:538
-msgid "Machine Code file saved to"
-msgstr "Arquivo G-Code salvo em"
-
-#: flatcamObjects/FlatCAMCNCJob.py:599 flatcamTools/ToolCalibration.py:1097
-msgid "Loaded Machine Code into Code Editor"
-msgstr "G-Code aberto no Editor de Códigos"
-
-#: flatcamObjects/FlatCAMCNCJob.py:740
-msgid "This CNCJob object can't be processed because it is a"
-msgstr "Este objeto Trabalho CNC não pode ser processado porque é um"
-
-#: flatcamObjects/FlatCAMCNCJob.py:742
-msgid "CNCJob object"
-msgstr "Objeto de Trabalho CNC"
-
-#: flatcamObjects/FlatCAMCNCJob.py:922
-msgid ""
-"G-code does not have a G94 code and we will not include the code in the "
-"'Prepend to GCode' text box"
-msgstr ""
-"O G-Code não possui um código G94 e não será incluído na caixa de texto "
-"'Anexar ao G-Code'"
-
-#: flatcamObjects/FlatCAMCNCJob.py:933
-msgid "Cancelled. The Toolchange Custom code is enabled but it's empty."
-msgstr ""
-"Cancelado. O código personalizado para Troca de Ferramentas está ativado, "
-"mas está vazio."
-
-#: flatcamObjects/FlatCAMCNCJob.py:938
-msgid "Toolchange G-code was replaced by a custom code."
-msgstr ""
-"O G-Code para Troca de Ferramentas foi substituído por um código "
-"personalizado."
-
-#: flatcamObjects/FlatCAMCNCJob.py:986 flatcamObjects/FlatCAMCNCJob.py:996
-msgid ""
-"The used preprocessor file has to have in it's name: 'toolchange_custom'"
-msgstr ""
-"O arquivo de pós-processamento deve ter em seu nome: 'toolchange_custom'"
-
-#: flatcamObjects/FlatCAMCNCJob.py:999
-msgid "There is no preprocessor file."
-msgstr "Não há arquivo de pós-processamento."
-
-#: flatcamObjects/FlatCAMDocument.py:175
-msgid "Document Editor"
-msgstr "Editor de Documento"
-
-#: flatcamObjects/FlatCAMExcellon.py:514 flatcamObjects/FlatCAMExcellon.py:746
-#: flatcamObjects/FlatCAMGeometry.py:323 flatcamObjects/FlatCAMGeometry.py:795
-#: flatcamTools/ToolNCC.py:811 flatcamTools/ToolNCC.py:1196
-#: flatcamTools/ToolPaint.py:779 flatcamTools/ToolPaint.py:1171
-msgid "Multiple Tools"
-msgstr "Ferramentas Múltiplas"
-
-#: flatcamObjects/FlatCAMExcellon.py:726
-msgid "No Tool Selected"
-msgstr "Nenhuma Ferramenta Selecionada"
-
-#: flatcamObjects/FlatCAMExcellon.py:1076
-#: flatcamObjects/FlatCAMExcellon.py:1168
-#: flatcamObjects/FlatCAMExcellon.py:1355
-msgid "Please select one or more tools from the list and try again."
-msgstr "Selecione uma ou mais ferramentas da lista e tente novamente."
-
-#: flatcamObjects/FlatCAMExcellon.py:1083
-msgid "Milling tool for DRILLS is larger than hole size. Cancelled."
-msgstr "A ferramenta BROCA é maior que o tamanho do furo. Cancelado."
-
-#: flatcamObjects/FlatCAMExcellon.py:1098
-#: flatcamObjects/FlatCAMExcellon.py:1188
-#: flatcamObjects/FlatCAMExcellon.py:1373
-#: tclCommands/TclCommandDrillcncjob.py:193
-msgid "Tool_nr"
-msgstr "Ferramenta_nr"
-
-#: flatcamObjects/FlatCAMExcellon.py:1098
-#: flatcamObjects/FlatCAMExcellon.py:1188
-#: flatcamObjects/FlatCAMExcellon.py:1373
-#: tclCommands/TclCommandDrillcncjob.py:193
-msgid "Drills_Nr"
-msgstr "Furo_Nr"
-
-#: flatcamObjects/FlatCAMExcellon.py:1098
-#: flatcamObjects/FlatCAMExcellon.py:1188
-#: flatcamObjects/FlatCAMExcellon.py:1373
-#: tclCommands/TclCommandDrillcncjob.py:193
-msgid "Slots_Nr"
-msgstr "Ranhura_Nr"
-
-#: flatcamObjects/FlatCAMExcellon.py:1177
-msgid "Milling tool for SLOTS is larger than hole size. Cancelled."
-msgstr ""
-"A ferramenta fresa para RANHURAS é maior que o tamanho do furo. Cancelado."
-
-#: flatcamObjects/FlatCAMExcellon.py:1281
-#: flatcamObjects/FlatCAMGeometry.py:1571
-msgid "Focus Z"
-msgstr "Foco Z"
-
-#: flatcamObjects/FlatCAMExcellon.py:1300
-#: flatcamObjects/FlatCAMGeometry.py:1590
-msgid "Laser Power"
-msgstr "Potência Laser"
-
-#: flatcamObjects/FlatCAMExcellon.py:1430
-#: flatcamObjects/FlatCAMGeometry.py:2027
-#: flatcamObjects/FlatCAMGeometry.py:2031
-#: flatcamObjects/FlatCAMGeometry.py:2176
-msgid "Generating CNC Code"
-msgstr "Gerando Código CNC"
-
-#: flatcamObjects/FlatCAMExcellon.py:1620 flatcamTools/ToolNCC.py:918
-#: flatcamTools/ToolPaint.py:844
-msgid "Current Tool parameters were applied to all tools."
-msgstr "Parâmetros aplicados a todas as ferramentas."
-
-#: flatcamObjects/FlatCAMGeometry.py:124 flatcamObjects/FlatCAMGeometry.py:1235
-#: flatcamObjects/FlatCAMGeometry.py:1236
-#: flatcamObjects/FlatCAMGeometry.py:1245
-msgid "Iso"
-msgstr "Isolação"
-
-#: flatcamObjects/FlatCAMGeometry.py:124 flatcamObjects/FlatCAMGeometry.py:464
-#: flatcamObjects/FlatCAMGeometry.py:854 flatcamObjects/FlatCAMGerber.py:891
-#: flatcamObjects/FlatCAMGerber.py:1039 flatcamTools/ToolCutOut.py:690
-#: flatcamTools/ToolCutOut.py:886 flatcamTools/ToolCutOut.py:1046
-msgid "Rough"
-msgstr "Desbaste"
-
-#: flatcamObjects/FlatCAMGeometry.py:124
-msgid "Finish"
-msgstr "Acabamento"
-
-#: flatcamObjects/FlatCAMGeometry.py:499
-msgid "Add from Tool DB"
-msgstr "Adicionar Ferramenta do BD"
-
-#: flatcamObjects/FlatCAMGeometry.py:873
-msgid "Tool added in Tool Table."
-msgstr "Ferramenta adicionada na Tabela de Ferramentas."
-
-#: flatcamObjects/FlatCAMGeometry.py:982 flatcamObjects/FlatCAMGeometry.py:991
-msgid "Failed. Select a tool to copy."
-msgstr "Falhou. Selecione uma ferramenta para copiar."
-
-#: flatcamObjects/FlatCAMGeometry.py:1020
-msgid "Tool was copied in Tool Table."
-msgstr "A ferramenta foi copiada na tabela de ferramentas."
-
-#: flatcamObjects/FlatCAMGeometry.py:1047
-msgid "Tool was edited in Tool Table."
-msgstr "A ferramenta foi editada na Tabela de Ferramentas."
-
-#: flatcamObjects/FlatCAMGeometry.py:1076
-#: flatcamObjects/FlatCAMGeometry.py:1085
-msgid "Failed. Select a tool to delete."
-msgstr "Falhou. Selecione uma ferramenta para excluir."
-
-#: flatcamObjects/FlatCAMGeometry.py:1109
-msgid "Tool was deleted in Tool Table."
-msgstr "A ferramenta foi eliminada da Tabela de Ferramentas."
-
-#: flatcamObjects/FlatCAMGeometry.py:1146
-#: flatcamObjects/FlatCAMGeometry.py:1156
-msgid ""
-"Disabled because the tool is V-shape.\n"
-"For V-shape tools the depth of cut is\n"
-"calculated from other parameters like:\n"
-"- 'V-tip Angle' -> angle at the tip of the tool\n"
-"- 'V-tip Dia' -> diameter at the tip of the tool \n"
-"- Tool Dia -> 'Dia' column found in the Tool Table\n"
-"NB: a value of zero means that Tool Dia = 'V-tip Dia'"
-msgstr ""
-"Desativado porque a ferramenta é em forma de V.\n"
-"Para ferramentas em forma de V, a profundidade de corte é\n"
-"calculado a partir de outros parâmetros, como:\n"
-"- 'Ângulo da ponta em V' -> ângulo na ponta da ferramenta\n"
-"- 'Diâmetro da ponta em V' -> diâmetro na ponta da ferramenta\n"
-"- Dia da ferramenta -> coluna 'Dia' encontrada na tabela de ferramentas\n"
-"NB: um valor igual a zero significa que o Dia da Ferramenta = 'Dia da ponta "
-"em V'"
-
-#: flatcamObjects/FlatCAMGeometry.py:1643
-msgid "This Geometry can't be processed because it is"
-msgstr "Esta Geometria não pode ser processada porque é"
-
-#: flatcamObjects/FlatCAMGeometry.py:1643
-msgid "geometry"
-msgstr "geometria"
-
-#: flatcamObjects/FlatCAMGeometry.py:1684
-msgid "Failed. No tool selected in the tool table ..."
-msgstr "Falhou. Nenhuma ferramenta selecionada na tabela de ferramentas ..."
-
-#: flatcamObjects/FlatCAMGeometry.py:1786
-#: flatcamObjects/FlatCAMGeometry.py:1936
-msgid ""
-"Tool Offset is selected in Tool Table but no value is provided.\n"
-"Add a Tool Offset or change the Offset Type."
-msgstr ""
-"Deslocamento de Ferramenta selecionado na Tabela de Ferramentas, mas nenhum "
-"valor foi fornecido.\n"
-"Adicione um Deslocamento de Ferramenta ou altere o Tipo de Deslocamento."
-
-#: flatcamObjects/FlatCAMGeometry.py:1852
-#: flatcamObjects/FlatCAMGeometry.py:1998
-msgid "G-Code parsing in progress..."
-msgstr "Análisando o G-Code..."
-
-#: flatcamObjects/FlatCAMGeometry.py:1854
-#: flatcamObjects/FlatCAMGeometry.py:2000
-msgid "G-Code parsing finished..."
-msgstr "Análise do G-Code finalisada..."
-
-#: flatcamObjects/FlatCAMGeometry.py:1862
-msgid "Finished G-Code processing"
-msgstr "Processamento do G-Code concluído"
-
-#: flatcamObjects/FlatCAMGeometry.py:1864
-#: flatcamObjects/FlatCAMGeometry.py:2012
-msgid "G-Code processing failed with error"
-msgstr "Processamento do G-Code falhou com erro"
-
-#: flatcamObjects/FlatCAMGeometry.py:1906 flatcamTools/ToolSolderPaste.py:1301
-msgid "Cancelled. Empty file, it has no geometry"
-msgstr "Cancelado. Arquivo vazio, não tem geometria"
-
-#: flatcamObjects/FlatCAMGeometry.py:2010
-#: flatcamObjects/FlatCAMGeometry.py:2171
-msgid "Finished G-Code processing..."
-msgstr "Processamento do G-Code finalisado..."
-
-#: flatcamObjects/FlatCAMGeometry.py:2029
-#: flatcamObjects/FlatCAMGeometry.py:2033
-#: flatcamObjects/FlatCAMGeometry.py:2178
-msgid "CNCjob created"
-msgstr "Trabalho CNC criado"
-
-#: flatcamObjects/FlatCAMGeometry.py:2209
-#: flatcamObjects/FlatCAMGeometry.py:2218 flatcamParsers/ParseGerber.py:1867
-#: flatcamParsers/ParseGerber.py:1877
-msgid "Scale factor has to be a number: integer or float."
-msgstr "O fator de escala deve ser um número: inteiro ou flutuante."
-
-#: flatcamObjects/FlatCAMGeometry.py:2281
-msgid "Geometry Scale done."
-msgstr "Redimensionamento de geometria feita."
-
-#: flatcamObjects/FlatCAMGeometry.py:2298 flatcamParsers/ParseGerber.py:1993
-msgid ""
-"An (x,y) pair of values are needed. Probable you entered only one value in "
-"the Offset field."
-msgstr ""
-"Um par (x,y) de valores é necessário. Provavelmente você digitou apenas um "
-"valor no campo Deslocamento."
-
-#: flatcamObjects/FlatCAMGeometry.py:2354
-msgid "Geometry Offset done."
-msgstr "Deslocamento de Geometria concluído."
-
-#: flatcamObjects/FlatCAMGeometry.py:2383
-msgid ""
-"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, "
-"y)\n"
-"but now there is only one value, not two."
-msgstr ""
-"O campo Troca de Ferramentas X, Y em Editar -> Preferências deve estar no "
-"formato (x, y).\n"
-"Agora está com apenas um valor, não dois."
-
-#: flatcamObjects/FlatCAMGeometry.py:2577
-#: flatcamTools/ToolCopperThieving.py:769 flatcamTools/ToolNCC.py:1648
-msgid "Click the start point of the area."
-msgstr "Clique no ponto inicial da área."
-
-#: flatcamObjects/FlatCAMGeometry.py:2619
-#, fuzzy
-#| msgid "Click the end point of the paint area."
-msgid "Click the end point of the area."
-msgstr "Clique no ponto final da área."
-
-#: flatcamObjects/FlatCAMGeometry.py:2625
-#: flatcamObjects/FlatCAMGeometry.py:2677
-#: flatcamTools/ToolCopperThieving.py:826 flatcamTools/ToolNCC.py:1710
-#: flatcamTools/ToolNCC.py:1762 flatcamTools/ToolPaint.py:1606
-#: flatcamTools/ToolPaint.py:1657
-msgid "Zone added. Click to start adding next zone or right click to finish."
-msgstr ""
-"Zona adicionada. Clique para iniciar a adição da próxima zona ou clique com "
-"o botão direito para terminar."
-
-#: flatcamObjects/FlatCAMGeometry.py:2729
-msgid "Cancelled. Area exclusion drawing was interrupted."
-msgstr ""
-
-#: flatcamObjects/FlatCAMGerber.py:494
-msgid "Buffering solid geometry"
-msgstr "Buffer de geometria sólida"
-
-#: flatcamObjects/FlatCAMGerber.py:503
-msgid "Done"
-msgstr "Pronto"
-
-#: flatcamObjects/FlatCAMGerber.py:529 flatcamObjects/FlatCAMGerber.py:555
-msgid "Operation could not be done."
-msgstr "Não foi possível executar a operação."
-
-#: flatcamObjects/FlatCAMGerber.py:572
-msgid "Isolating..."
-msgstr "Isolando..."
-
-#: flatcamObjects/FlatCAMGerber.py:631
-msgid "Click on a polygon to isolate it."
-msgstr "Clique em um polígono para isolá-lo."
-
-#: flatcamObjects/FlatCAMGerber.py:670 flatcamObjects/FlatCAMGerber.py:774
-#: flatcamTools/ToolPaint.py:1516
-msgid "Added polygon"
-msgstr "Polígono adicionado"
-
-#: flatcamObjects/FlatCAMGerber.py:671 flatcamObjects/FlatCAMGerber.py:776
-msgid "Click to add next polygon or right click to start isolation."
-msgstr ""
-"Clique para adicionar o próximo polígono ou clique com o botão direito do "
-"mouse para iniciar a isolação."
-
-#: flatcamObjects/FlatCAMGerber.py:683 flatcamTools/ToolPaint.py:1530
-msgid "Removed polygon"
-msgstr "Polígono removido"
-
-#: flatcamObjects/FlatCAMGerber.py:684
-msgid "Click to add/remove next polygon or right click to start isolation."
-msgstr ""
-"Clique para adicionar/remover o próximo polígono ou clique com o botão "
-"direito do mouse para iniciar a isolação."
-
-#: flatcamObjects/FlatCAMGerber.py:689 flatcamTools/ToolPaint.py:1536
-msgid "No polygon detected under click position."
-msgstr "Nenhum polígono detectado na posição do clique."
-
-#: flatcamObjects/FlatCAMGerber.py:710 flatcamTools/ToolPaint.py:1565
-msgid "List of single polygons is empty. Aborting."
-msgstr "A lista de polígonos únicos está vazia. Abortando."
-
-#: flatcamObjects/FlatCAMGerber.py:779
-msgid "No polygon in selection."
-msgstr "Nenhum polígono na seleção."
-
-#: flatcamObjects/FlatCAMGerber.py:907 flatcamObjects/FlatCAMGerber.py:986
-#: flatcamTools/ToolNCC.py:2086 flatcamTools/ToolNCC.py:3137
-#: flatcamTools/ToolNCC.py:3516
-msgid "Isolation geometry could not be generated."
-msgstr "A geometria de isolação não pôde ser gerada."
-
-#: flatcamObjects/FlatCAMGerber.py:932 flatcamObjects/FlatCAMGerber.py:1064
-msgid "Isolation geometry created"
-msgstr "Geometria de isolação criada"
-
-#: flatcamObjects/FlatCAMGerber.py:941 flatcamObjects/FlatCAMGerber.py:1071
-msgid "Subtracting Geo"
-msgstr "Subtraindo Geo"
-
-#: flatcamObjects/FlatCAMGerber.py:1396
-msgid "Plotting Apertures"
-msgstr "Mostrando Aberturas"
-
-#: flatcamObjects/FlatCAMObj.py:234
-msgid "Name changed from"
-msgstr "Nome alterado de"
-
-#: flatcamObjects/FlatCAMObj.py:234
-msgid "to"
-msgstr "para"
-
-#: flatcamObjects/FlatCAMObj.py:245
-msgid "Offsetting..."
-msgstr "Deslocando..."
-
-#: flatcamObjects/FlatCAMObj.py:259 flatcamObjects/FlatCAMObj.py:264
-msgid "Scaling could not be executed."
-msgstr "Não foi possível executar o redimensionamento."
-
-#: flatcamObjects/FlatCAMObj.py:268 flatcamObjects/FlatCAMObj.py:276
-msgid "Scale done."
-msgstr "Redimensionamento concluída."
-
-#: flatcamObjects/FlatCAMObj.py:274
-msgid "Scaling..."
-msgstr "Dimensionando..."
-
-#: flatcamObjects/FlatCAMObj.py:292
-msgid "Skewing..."
-msgstr "Inclinando..."
-
-#: flatcamObjects/FlatCAMScript.py:163
-msgid "Script Editor"
-msgstr "Editor de Script"
-
-#: flatcamObjects/ObjectCollection.py:510
-#, python-brace-format
-msgid "Object renamed from {old} to {new}"
-msgstr "Objeto renomeado de {old} para {new}"
-
-#: flatcamObjects/ObjectCollection.py:983
-msgid "Cause of error"
-msgstr "Motivo do erro"
-
-#: flatcamParsers/ParseExcellon.py:316
-msgid "This is GCODE mark"
-msgstr "Esta é a marca G-CODE"
-
-#: flatcamParsers/ParseExcellon.py:433
-msgid ""
-"No tool diameter info's. See shell.\n"
-"A tool change event: T"
-msgstr ""
-"Sem informação do diâmetro da ferramenta. Veja linha de comando.\n"
-"Evento de troca de ferramenta: T"
-
-#: flatcamParsers/ParseExcellon.py:436
-msgid ""
-"was found but the Excellon file have no informations regarding the tool "
-"diameters therefore the application will try to load it by using some 'fake' "
-"diameters.\n"
-"The user needs to edit the resulting Excellon object and change the "
-"diameters to reflect the real diameters."
-msgstr ""
-"foi encontrado mas o arquivo Excellon não possui informações sobre os "
-"diâmetros da ferramenta. \n"
-"O aplicativo tentará carregá-lo usando alguns diâmetros 'falsos'./nO usuário "
-"precisa editar o objeto Excellon resultante e\n"
-"alterar os diâmetros para os valores reais."
-
-#: flatcamParsers/ParseExcellon.py:900
-msgid ""
-"Excellon Parser error.\n"
-"Parsing Failed. Line"
-msgstr ""
-"Erro do Analisador Excellon.\n"
-"Análise falhou. Linha"
-
-#: flatcamParsers/ParseExcellon.py:982
-msgid ""
-"Excellon.create_geometry() -> a drill location was skipped due of not having "
-"a tool associated.\n"
-"Check the resulting GCode."
-msgstr ""
-"Excellon.create_geometry () -> um furo foi ignorado por não ter uma "
-"ferramenta associada.\n"
-"Verifique o G-Code resultante."
-
-#: flatcamParsers/ParseFont.py:303
-msgid "Font not supported, try another one."
-msgstr "Fonte não suportada. Tente outra."
-
-#: flatcamParsers/ParseGerber.py:426
-msgid "Gerber processing. Parsing"
-msgstr "Processando Gerber. Analisando"
-
-#: flatcamParsers/ParseGerber.py:426 flatcamParsers/ParseHPGL2.py:182
-msgid "lines"
-msgstr "linhas"
-
-#: flatcamParsers/ParseGerber.py:1002 flatcamParsers/ParseGerber.py:1102
-#: flatcamParsers/ParseHPGL2.py:275 flatcamParsers/ParseHPGL2.py:289
-#: flatcamParsers/ParseHPGL2.py:308 flatcamParsers/ParseHPGL2.py:332
-#: flatcamParsers/ParseHPGL2.py:367
-msgid "Coordinates missing, line ignored"
-msgstr "Coordenadas faltando, linha ignorada"
-
-#: flatcamParsers/ParseGerber.py:1004 flatcamParsers/ParseGerber.py:1104
-msgid "GERBER file might be CORRUPT. Check the file !!!"
-msgstr "O arquivo GERBER pode estar CORROMPIDO. Verifique o arquivo !!!"
-
-#: flatcamParsers/ParseGerber.py:1058
-msgid ""
-"Region does not have enough points. File will be processed but there are "
-"parser errors. Line number"
-msgstr ""
-"A região não possui pontos suficientes. O arquivo será processado, mas há "
-"erros na análise. Número da linha"
-
-#: flatcamParsers/ParseGerber.py:1488 flatcamParsers/ParseHPGL2.py:402
-msgid "Gerber processing. Joining polygons"
-msgstr "Processando Gerber. Unindo polígonos"
-
-#: flatcamParsers/ParseGerber.py:1505
-msgid "Gerber processing. Applying Gerber polarity."
-msgstr "Processando Gerber. Aplicando polaridade Gerber."
-
-#: flatcamParsers/ParseGerber.py:1565
-msgid "Gerber Line"
-msgstr "Linha Gerber"
-
-#: flatcamParsers/ParseGerber.py:1565
-msgid "Gerber Line Content"
-msgstr "Conteúdo"
-
-#: flatcamParsers/ParseGerber.py:1567
-msgid "Gerber Parser ERROR"
-msgstr "Erro de Análise"
-
-#: flatcamParsers/ParseGerber.py:1957
-msgid "Gerber Scale done."
-msgstr "Redimensionamento Gerber pronto."
-
-#: flatcamParsers/ParseGerber.py:2049
-msgid "Gerber Offset done."
-msgstr "Deslocamento Gerber pronto."
-
-#: flatcamParsers/ParseGerber.py:2125
-msgid "Gerber Mirror done."
-msgstr "Espelhamento Gerber pronto."
-
-#: flatcamParsers/ParseGerber.py:2199
-msgid "Gerber Skew done."
-msgstr "Inclinação Gerber pronta."
-
-#: flatcamParsers/ParseGerber.py:2261
-msgid "Gerber Rotate done."
-msgstr "Rotação Gerber pronta."
-
-#: flatcamParsers/ParseGerber.py:2418
-msgid "Gerber Buffer done."
-msgstr "Buffer Gerber pronto."
-
-#: flatcamParsers/ParseHPGL2.py:182
-msgid "HPGL2 processing. Parsing"
-msgstr "Processando HPGL2 . Analisando"
-
-#: flatcamParsers/ParseHPGL2.py:414
-msgid "HPGL2 Line"
-msgstr "Linha HPGL2"
-
-#: flatcamParsers/ParseHPGL2.py:414
-msgid "HPGL2 Line Content"
-msgstr "Conteúdo da linha HPGL2"
-
-#: flatcamParsers/ParseHPGL2.py:415
-msgid "HPGL2 Parser ERROR"
-msgstr "ERRO do Analisador HPGL2"
-
-#: flatcamTools/ToolAlignObjects.py:32
-msgid "Align Objects"
-msgstr "Alinhar Objetos"
-
-#: flatcamTools/ToolAlignObjects.py:61
-msgid "MOVING object"
-msgstr "MOVENDO Objeto"
-
-#: flatcamTools/ToolAlignObjects.py:65
-msgid ""
-"Specify the type of object to be aligned.\n"
-"It can be of type: Gerber or Excellon.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Object combobox."
-msgstr ""
-"Especifique o tipo de objeto para alinhar\n"
-"Pode ser do tipo: Gerber ou Excellon.\n"
-"A seleção aqui decide o tipo de objetos que estarão\n"
-"na Caixa de Objetos."
-
-#: flatcamTools/ToolAlignObjects.py:86
-msgid "Object to be aligned."
-msgstr "Objeto a ser alinhado."
-
-#: flatcamTools/ToolAlignObjects.py:98
-msgid "TARGET object"
-msgstr "Objeto ALVO"
-
-#: flatcamTools/ToolAlignObjects.py:100
-msgid ""
-"Specify the type of object to be aligned to.\n"
-"It can be of type: Gerber or Excellon.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Object combobox."
-msgstr ""
-"Especifique o tipo de objeto para alinhar\n"
-"Pode ser do tipo: Gerber ou Excellon.\n"
-"A seleção aqui decide o tipo de objetos que estarão\n"
-"na Caixa de Objetos."
-
-#: flatcamTools/ToolAlignObjects.py:122
-msgid "Object to be aligned to. Aligner."
-msgstr "Objeto a ser alinhado. Alinhador."
-
-#: flatcamTools/ToolAlignObjects.py:135
-msgid "Alignment Type"
-msgstr "Tipo de Alinhamento"
-
-#: flatcamTools/ToolAlignObjects.py:137
-msgid ""
-"The type of alignment can be:\n"
-"- Single Point -> it require a single point of sync, the action will be a "
-"translation\n"
-"- Dual Point -> it require two points of sync, the action will be "
-"translation followed by rotation"
-msgstr ""
-"O tipo de alinhamento pode ser:\n"
-"- Ponto único -> requer um único ponto de sincronização, a ação será uma "
-"translação\n"
-"- Ponto duplo -> requer dois pontos de sincronização, a ação será translada "
-"seguida de rotação"
-
-#: flatcamTools/ToolAlignObjects.py:143
-msgid "Single Point"
-msgstr "Ponto Único"
-
-#: flatcamTools/ToolAlignObjects.py:144
-msgid "Dual Point"
-msgstr "Ponto Duplo"
-
-#: flatcamTools/ToolAlignObjects.py:159
-msgid "Align Object"
-msgstr "Alinhar Objeto"
-
-#: flatcamTools/ToolAlignObjects.py:161
-msgid ""
-"Align the specified object to the aligner object.\n"
-"If only one point is used then it assumes translation.\n"
-"If tho points are used it assume translation and rotation."
-msgstr ""
-"Alinhe o objeto especificado ao objeto alinhador.\n"
-"Se apenas um ponto for usado, ele assumirá a translação.\n"
-"Se forem usados dois pontos, assume translação e rotação."
-
-#: flatcamTools/ToolAlignObjects.py:176 flatcamTools/ToolCalculators.py:246
-#: flatcamTools/ToolCalibration.py:683 flatcamTools/ToolCopperThieving.py:484
-#: flatcamTools/ToolCutOut.py:362 flatcamTools/ToolDblSided.py:471
-#: flatcamTools/ToolExtractDrills.py:310 flatcamTools/ToolFiducials.py:318
-#: flatcamTools/ToolFilm.py:520 flatcamTools/ToolInvertGerber.py:140
-#: flatcamTools/ToolNCC.py:612 flatcamTools/ToolOptimal.py:237
-#: flatcamTools/ToolPaint.py:556 flatcamTools/ToolPanelize.py:269
-#: flatcamTools/ToolPunchGerber.py:339 flatcamTools/ToolQRCode.py:314
-#: flatcamTools/ToolRulesCheck.py:516 flatcamTools/ToolSolderPaste.py:473
-#: flatcamTools/ToolSub.py:176 flatcamTools/ToolTransform.py:398
-msgid "Reset Tool"
-msgstr "Redefinir Ferramenta"
-
-#: flatcamTools/ToolAlignObjects.py:178 flatcamTools/ToolCalculators.py:248
-#: flatcamTools/ToolCalibration.py:685 flatcamTools/ToolCopperThieving.py:486
-#: flatcamTools/ToolCutOut.py:364 flatcamTools/ToolDblSided.py:473
-#: flatcamTools/ToolExtractDrills.py:312 flatcamTools/ToolFiducials.py:320
-#: flatcamTools/ToolFilm.py:522 flatcamTools/ToolInvertGerber.py:142
-#: flatcamTools/ToolNCC.py:614 flatcamTools/ToolOptimal.py:239
-#: flatcamTools/ToolPaint.py:558 flatcamTools/ToolPanelize.py:271
-#: flatcamTools/ToolPunchGerber.py:341 flatcamTools/ToolQRCode.py:316
-#: flatcamTools/ToolRulesCheck.py:518 flatcamTools/ToolSolderPaste.py:475
-#: flatcamTools/ToolSub.py:178 flatcamTools/ToolTransform.py:400
-msgid "Will reset the tool parameters."
-msgstr "Redefinirá os parâmetros da ferramenta."
-
-#: flatcamTools/ToolAlignObjects.py:244
-msgid "Align Tool"
-msgstr "Ferramenta Alinhar"
-
-#: flatcamTools/ToolAlignObjects.py:289
-msgid "There is no aligned FlatCAM object selected..."
-msgstr "Não há nenhum objeto FlatCAM alinhado selecionado ..."
-
-#: flatcamTools/ToolAlignObjects.py:299
-msgid "There is no aligner FlatCAM object selected..."
-msgstr "Não há nenhum objeto FlatCAM do alinhador selecionado ..."
-
-#: flatcamTools/ToolAlignObjects.py:325 flatcamTools/ToolAlignObjects.py:385
-msgid "First Point"
-msgstr "Ponto Inicial"
-
-#: flatcamTools/ToolAlignObjects.py:325 flatcamTools/ToolAlignObjects.py:400
-msgid "Click on the START point."
-msgstr "Clique no ponto INICIAL."
-
-#: flatcamTools/ToolAlignObjects.py:380 flatcamTools/ToolCalibration.py:920
-msgid "Cancelled by user request."
-msgstr "Cancelado por solicitação do usuário."
-
-#: flatcamTools/ToolAlignObjects.py:385 flatcamTools/ToolAlignObjects.py:407
-msgid "Click on the DESTINATION point."
-msgstr "Clique no ponto DESTINO."
-
-#: flatcamTools/ToolAlignObjects.py:385 flatcamTools/ToolAlignObjects.py:400
-#: flatcamTools/ToolAlignObjects.py:407
-msgid "Or right click to cancel."
-msgstr "ou clique esquerdo para cancelar."
-
-#: flatcamTools/ToolAlignObjects.py:400 flatcamTools/ToolAlignObjects.py:407
-#: flatcamTools/ToolFiducials.py:111
-msgid "Second Point"
-msgstr "Segundo Ponto"
-
-#: flatcamTools/ToolCalculators.py:24
-msgid "Calculators"
-msgstr "Calculadoras"
-
-#: flatcamTools/ToolCalculators.py:26
-msgid "Units Calculator"
-msgstr "Calculadora de Unidades"
-
-#: flatcamTools/ToolCalculators.py:70
-msgid "Here you enter the value to be converted from INCH to MM"
-msgstr "Aqui você insere o valor a ser convertido de polegadas para mm"
-
-#: flatcamTools/ToolCalculators.py:75
-msgid "Here you enter the value to be converted from MM to INCH"
-msgstr "Aqui você insere o valor a ser convertido de mm para polegadas"
-
-#: flatcamTools/ToolCalculators.py:111
-msgid ""
-"This is the angle of the tip of the tool.\n"
-"It is specified by manufacturer."
-msgstr ""
-"Ângulo da ponta da ferramenta.\n"
-"Especificado pelo fabricante."
-
-#: flatcamTools/ToolCalculators.py:120
-msgid ""
-"This is the depth to cut into the material.\n"
-"In the CNCJob is the CutZ parameter."
-msgstr ""
-"Esta é a profundidade para cortar material.\n"
-"No Trabalho CNC é o parâmetro Profundidade de Corte."
-
-#: flatcamTools/ToolCalculators.py:128
-msgid ""
-"This is the tool diameter to be entered into\n"
-"FlatCAM Gerber section.\n"
-"In the CNCJob section it is called >Tool dia<."
-msgstr ""
-"Este é o diâmetro da ferramenta a ser inserido na seção\n"
-"FlatCAM Gerber.\n"
-"Na seção Trabalho CNC é chamado de >Diâmetro da Ferramenta<."
-
-#: flatcamTools/ToolCalculators.py:139 flatcamTools/ToolCalculators.py:235
-msgid "Calculate"
-msgstr "Calcular"
-
-#: flatcamTools/ToolCalculators.py:142
-msgid ""
-"Calculate either the Cut Z or the effective tool diameter,\n"
-" depending on which is desired and which is known. "
-msgstr ""
-"Calcula a Profundidade de Corte Z ou o diâmetro efetivo da\n"
-"ferramenta, dependendo do que é desejado e do que é conhecido. "
-
-#: flatcamTools/ToolCalculators.py:205
-msgid "Current Value"
-msgstr "Valor da Corrente"
-
-#: flatcamTools/ToolCalculators.py:212
-msgid ""
-"This is the current intensity value\n"
-"to be set on the Power Supply. In Amps."
-msgstr ""
-"Este é o valor de intensidade de corrente\n"
-"a ser ajustado na fonte de alimentação. Em Ampères."
-
-#: flatcamTools/ToolCalculators.py:216
-msgid "Time"
-msgstr "Tempo"
-
-#: flatcamTools/ToolCalculators.py:223
-msgid ""
-"This is the calculated time required for the procedure.\n"
-"In minutes."
-msgstr "Tempo calculado necessário para o procedimento, em minutos."
-
-#: flatcamTools/ToolCalculators.py:238
-msgid ""
-"Calculate the current intensity value and the procedure time,\n"
-"depending on the parameters above"
-msgstr ""
-"Calcula o valor da intensidade atual e o tempo do\n"
-"procedimento, dependendo dos parâmetros acima"
-
-#: flatcamTools/ToolCalculators.py:299
-msgid "Calc. Tool"
-msgstr "Calculadoras"
-
-#: flatcamTools/ToolCalibration.py:67
-msgid "GCode Parameters"
-msgstr "Parâmetros do G-Code"
-
-#: flatcamTools/ToolCalibration.py:69
-msgid "Parameters used when creating the GCode in this tool."
-msgstr "Parâmetros usados nesta ferramenta para criar o G-Code."
-
-#: flatcamTools/ToolCalibration.py:173
-msgid "STEP 1: Acquire Calibration Points"
-msgstr "PASSO 1: Adquirir Pontos de Calibração"
-
-#: flatcamTools/ToolCalibration.py:175
-msgid ""
-"Pick four points by clicking on canvas.\n"
-"Those four points should be in the four\n"
-"(as much as possible) corners of the object."
-msgstr ""
-"Escolha quatro pontos clicando na tela.\n"
-"Esses quatro pontos devem estar nos quatro\n"
-"(o máximo possível) cantos do objeto."
-
-#: flatcamTools/ToolCalibration.py:193 flatcamTools/ToolFilm.py:76
-#: flatcamTools/ToolImage.py:54 flatcamTools/ToolPanelize.py:78
-#: flatcamTools/ToolProperties.py:177
-msgid "Object Type"
-msgstr "Tipo de Objeto"
-
-#: flatcamTools/ToolCalibration.py:210
-msgid "Source object selection"
-msgstr "Seleção do objeto fonte"
-
-#: flatcamTools/ToolCalibration.py:212
-msgid "FlatCAM Object to be used as a source for reference points."
-msgstr "Objeto FlatCAM a ser usado como fonte para os pontos de referência."
-
-#: flatcamTools/ToolCalibration.py:218
-msgid "Calibration Points"
-msgstr "Pontos de Calibração"
-
-#: flatcamTools/ToolCalibration.py:220
-msgid ""
-"Contain the expected calibration points and the\n"
-"ones measured."
-msgstr ""
-"Contém os pontos de calibração esperados e\n"
-"os medidos."
-
-#: flatcamTools/ToolCalibration.py:235 flatcamTools/ToolSub.py:76
-#: flatcamTools/ToolSub.py:131
-msgid "Target"
-msgstr "Alvo"
-
-#: flatcamTools/ToolCalibration.py:236
-msgid "Found Delta"
-msgstr "Delta Encontrado"
-
-#: flatcamTools/ToolCalibration.py:248
-msgid "Bot Left X"
-msgstr "Esquerda Inferior X"
-
-#: flatcamTools/ToolCalibration.py:257
-msgid "Bot Left Y"
-msgstr "Esquerda Inferior Y"
-
-#: flatcamTools/ToolCalibration.py:275
-msgid "Bot Right X"
-msgstr "Direita Inferior X"
-
-#: flatcamTools/ToolCalibration.py:285
-msgid "Bot Right Y"
-msgstr "Direita Inferior Y"
-
-#: flatcamTools/ToolCalibration.py:300
-msgid "Top Left X"
-msgstr "Esquerda Superior X"
-
-#: flatcamTools/ToolCalibration.py:309
-msgid "Top Left Y"
-msgstr "Esquerda Superior Y"
-
-#: flatcamTools/ToolCalibration.py:324
-msgid "Top Right X"
-msgstr "Direita Superior X"
-
-#: flatcamTools/ToolCalibration.py:334
-msgid "Top Right Y"
-msgstr "Direita Superior Y"
-
-#: flatcamTools/ToolCalibration.py:367
-msgid "Get Points"
-msgstr "Obter Pontos"
-
-#: flatcamTools/ToolCalibration.py:369
-msgid ""
-"Pick four points by clicking on canvas if the source choice\n"
-"is 'free' or inside the object geometry if the source is 'object'.\n"
-"Those four points should be in the four squares of\n"
-"the object."
-msgstr ""
-"Escolha quatro pontos clicando na tela se a opção de origem\n"
-"for 'livre' ou dentro da geometria do objeto se a origem for 'objeto'.\n"
-"Esses quatro pontos devem estar nos quatro cantos do\n"
-"objeto."
-
-#: flatcamTools/ToolCalibration.py:390
-msgid "STEP 2: Verification GCode"
-msgstr "PASSO 2: G-Code de Verificação"
-
-#: flatcamTools/ToolCalibration.py:392 flatcamTools/ToolCalibration.py:405
-msgid ""
-"Generate GCode file to locate and align the PCB by using\n"
-"the four points acquired above.\n"
-"The points sequence is:\n"
-"- first point -> set the origin\n"
-"- second point -> alignment point. Can be: top-left or bottom-right.\n"
-"- third point -> check point. Can be: top-left or bottom-right.\n"
-"- forth point -> final verification point. Just for evaluation."
-msgstr ""
-"Gere o arquivo G-Code para localizar e alinhar o PCB usando\n"
-"os quatro pontos adquiridos acima.\n"
-"A sequência de pontos é:\n"
-"- primeiro ponto -> defina a origem\n"
-"- segundo ponto -> ponto de alinhamento. Pode ser: superior esquerdo ou "
-"inferior direito.\n"
-"- terceiro ponto -> ponto de verificação. Pode ser: superior esquerdo ou "
-"inferior direito.\n"
-"- quarto ponto -> ponto de verificação final. Apenas para avaliação."
-
-#: flatcamTools/ToolCalibration.py:403 flatcamTools/ToolSolderPaste.py:348
-msgid "Generate GCode"
-msgstr "Gerar o G-Code"
-
-#: flatcamTools/ToolCalibration.py:429
-msgid "STEP 3: Adjustments"
-msgstr "PASSO 3: Ajustes"
-
-#: flatcamTools/ToolCalibration.py:431 flatcamTools/ToolCalibration.py:440
-msgid ""
-"Calculate Scale and Skew factors based on the differences (delta)\n"
-"found when checking the PCB pattern. The differences must be filled\n"
-"in the fields Found (Delta)."
-msgstr ""
-"Calcular fatores de escala e de inclinação com base nas diferenças (delta)\n"
-"encontradas ao verificar o padrão PCB. As diferenças devem ser preenchidas\n"
-"nos campos Encontrados (Delta)."
-
-#: flatcamTools/ToolCalibration.py:438
-msgid "Calculate Factors"
-msgstr "Calculas Fatores"
-
-#: flatcamTools/ToolCalibration.py:460
-msgid "STEP 4: Adjusted GCode"
-msgstr "PASSO 4: G-Code ajustado"
-
-#: flatcamTools/ToolCalibration.py:462
-msgid ""
-"Generate verification GCode file adjusted with\n"
-"the factors above."
-msgstr ""
-"Gera o arquivo G-Code de verificação ajustado com\n"
-"os fatores acima."
-
-#: flatcamTools/ToolCalibration.py:467
-msgid "Scale Factor X:"
-msgstr "Fator de Escala X:"
-
-#: flatcamTools/ToolCalibration.py:479
-msgid "Scale Factor Y:"
-msgstr "Fator de Escala Y:"
-
-#: flatcamTools/ToolCalibration.py:491
-msgid "Apply Scale Factors"
-msgstr "Aplicar Fatores de Escala"
-
-#: flatcamTools/ToolCalibration.py:493
-msgid "Apply Scale factors on the calibration points."
-msgstr "Aplica os fatores de escala nos pontos de calibração."
-
-#: flatcamTools/ToolCalibration.py:503
-msgid "Skew Angle X:"
-msgstr "Ângulo de inclinação X:"
-
-#: flatcamTools/ToolCalibration.py:516
-msgid "Skew Angle Y:"
-msgstr "Ângulo de inclinação Y:"
-
-#: flatcamTools/ToolCalibration.py:529
-msgid "Apply Skew Factors"
-msgstr "Aplicar Fatores de Inclinação"
-
-#: flatcamTools/ToolCalibration.py:531
-msgid "Apply Skew factors on the calibration points."
-msgstr "Aplica os fatores de inclinação nos pontos de calibração."
-
-#: flatcamTools/ToolCalibration.py:600
-msgid "Generate Adjusted GCode"
-msgstr "Gerar o G-Code Ajustado"
-
-#: flatcamTools/ToolCalibration.py:602
-msgid ""
-"Generate verification GCode file adjusted with\n"
-"the factors set above.\n"
-"The GCode parameters can be readjusted\n"
-"before clicking this button."
-msgstr ""
-"Gera o arquivo G-Code de verificação ajustado com\n"
-"os fatores definidos acima.\n"
-"Os parâmetros do G-Code podem ser reajustados\n"
-"antes de clicar neste botão."
-
-#: flatcamTools/ToolCalibration.py:623
-msgid "STEP 5: Calibrate FlatCAM Objects"
-msgstr "PASSO 5: Calibrar Objetos FlatCAM"
-
-#: flatcamTools/ToolCalibration.py:625
-msgid ""
-"Adjust the FlatCAM objects\n"
-"with the factors determined and verified above."
-msgstr ""
-"Ajustar os objetos FlatCAM\n"
-"com os fatores determinados e verificados acima."
-
-#: flatcamTools/ToolCalibration.py:637
-msgid "Adjusted object type"
-msgstr "Tipo de objeto ajustado"
-
-#: flatcamTools/ToolCalibration.py:638
-msgid "Type of the FlatCAM Object to be adjusted."
-msgstr "Tipo do objeto FlatCAM a ser ajustado."
-
-#: flatcamTools/ToolCalibration.py:651
-msgid "Adjusted object selection"
-msgstr "Seleção do objeto ajustado"
-
-#: flatcamTools/ToolCalibration.py:653
-msgid "The FlatCAM Object to be adjusted."
-msgstr "Objeto FlatCAM a ser ajustado."
-
-#: flatcamTools/ToolCalibration.py:660
-msgid "Calibrate"
-msgstr "Calibrar"
-
-#: flatcamTools/ToolCalibration.py:662
-msgid ""
-"Adjust (scale and/or skew) the objects\n"
-"with the factors determined above."
-msgstr ""
-"Ajustar (dimensionar e/ou inclinar) os objetos\n"
-"com os fatores determinados acima."
-
-#: flatcamTools/ToolCalibration.py:770 flatcamTools/ToolCalibration.py:771
-msgid "Origin"
-msgstr "Origem"
-
-#: flatcamTools/ToolCalibration.py:800
-msgid "Tool initialized"
-msgstr "Ferramenta inicializada"
-
-#: flatcamTools/ToolCalibration.py:838
-msgid "There is no source FlatCAM object selected..."
-msgstr "Não há nenhum objeto FlatCAM de origem selecionado..."
-
-#: flatcamTools/ToolCalibration.py:859
-msgid "Get First calibration point. Bottom Left..."
-msgstr "Obtenha o primeiro ponto de calibração. Inferior Esquerdo..."
-
-#: flatcamTools/ToolCalibration.py:926
-msgid "Get Second calibration point. Bottom Right (Top Left)..."
-msgstr ""
-"Obtenha o segundo ponto de calibração. Inferior direito (canto superior "
-"esquerdo) ..."
-
-#: flatcamTools/ToolCalibration.py:930
-msgid "Get Third calibration point. Top Left (Bottom Right)..."
-msgstr ""
-"Obtenha o terceiro ponto de calibração. Superior esquerdo (canto inferior "
-"direito) ..."
-
-#: flatcamTools/ToolCalibration.py:934
-msgid "Get Forth calibration point. Top Right..."
-msgstr "Obtenha o quarto ponto de calibração. Superior Direito..."
-
-#: flatcamTools/ToolCalibration.py:938
-msgid "Done. All four points have been acquired."
-msgstr "Feito. Todos os quatro pontos foram adquiridos."
-
-#: flatcamTools/ToolCalibration.py:969
-msgid "Verification GCode for FlatCAM Calibration Tool"
-msgstr "G-Code de Verificação para a Ferramenta de Calibração FlatCAM"
-
-#: flatcamTools/ToolCalibration.py:981 flatcamTools/ToolCalibration.py:1067
-msgid "Gcode Viewer"
-msgstr "G-Code Viewer"
-
-#: flatcamTools/ToolCalibration.py:997
-msgid "Cancelled. Four points are needed for GCode generation."
-msgstr "Cancelado. São necessários quatro pontos para a geração do G-Code."
-
-#: flatcamTools/ToolCalibration.py:1253 flatcamTools/ToolCalibration.py:1349
-msgid "There is no FlatCAM object selected..."
-msgstr "Não há nenhum objeto FlatCAM selecionado ..."
-
-#: flatcamTools/ToolCopperThieving.py:76 flatcamTools/ToolFiducials.py:261
-msgid "Gerber Object to which will be added a copper thieving."
-msgstr "Objeto Gerber ao qual será adicionada uma adição de cobre."
-
-#: flatcamTools/ToolCopperThieving.py:98
-msgid ""
-"This set the distance between the copper thieving components\n"
-"(the polygon fill may be split in multiple polygons)\n"
-"and the copper traces in the Gerber file."
-msgstr ""
-"Define a distância entre os componentes de adição de cobre\n"
-"(o preenchimento de polígono pode ser dividido em vários polígonos)\n"
-"e os vestígios de cobre no arquivo Gerber."
-
-#: flatcamTools/ToolCopperThieving.py:131
-msgid ""
-"- 'Itself' - the copper thieving extent is based on the object extent.\n"
-"- 'Area Selection' - left mouse click to start selection of the area to be "
-"filled.\n"
-"- 'Reference Object' - will do copper thieving within the area specified by "
-"another object."
-msgstr ""
-"- 'Próprio' - a extensão do Copper Thieving é baseada na extensão do "
-"objeto.\n"
-"- 'Seleção de área' - clique esquerdo do mouse para iniciar a seleção da "
-"área a ser preenchida.\n"
-"- 'Objeto de referência' - fará Copper Thieving dentro da área especificada "
-"por outro objeto."
-
-#: flatcamTools/ToolCopperThieving.py:138 flatcamTools/ToolNCC.py:552
-#: flatcamTools/ToolPaint.py:496
-msgid "Ref. Type"
-msgstr "Tipo de Ref"
-
-#: flatcamTools/ToolCopperThieving.py:140
-msgid ""
-"The type of FlatCAM object to be used as copper thieving reference.\n"
-"It can be Gerber, Excellon or Geometry."
-msgstr ""
-"O tipo de objeto FlatCAM a ser usado como referência para adição de cobre.\n"
-"Pode ser Gerber, Excellon ou Geometria."
-
-#: flatcamTools/ToolCopperThieving.py:149 flatcamTools/ToolNCC.py:562
-#: flatcamTools/ToolPaint.py:506
-msgid "Ref. Object"
-msgstr "Objeto de Ref"
-
-#: flatcamTools/ToolCopperThieving.py:151 flatcamTools/ToolNCC.py:564
-#: flatcamTools/ToolPaint.py:508
-msgid "The FlatCAM object to be used as non copper clearing reference."
-msgstr "O objeto FlatCAM a ser usado como referência para retirada de cobre."
-
-#: flatcamTools/ToolCopperThieving.py:327
-msgid "Insert Copper thieving"
-msgstr "Inserir adição de cobre"
-
-#: flatcamTools/ToolCopperThieving.py:329
-msgid ""
-"Will add a polygon (may be split in multiple parts)\n"
-"that will surround the actual Gerber traces at a certain distance."
-msgstr ""
-"Adicionará um polígono (pode ser dividido em várias partes)\n"
-"que cercará os traços atuais de Gerber a uma certa distância."
-
-#: flatcamTools/ToolCopperThieving.py:388
-msgid "Insert Robber Bar"
-msgstr "Inserir Barra"
-
-#: flatcamTools/ToolCopperThieving.py:390
-msgid ""
-"Will add a polygon with a defined thickness\n"
-"that will surround the actual Gerber object\n"
-"at a certain distance.\n"
-"Required when doing holes pattern plating."
-msgstr ""
-"Adicionará um polígono com uma espessura definida\n"
-"que cercará o objeto Gerber atual\n"
-"a uma certa distância.\n"
-"Necessário ao fazer o padrão de furos."
-
-#: flatcamTools/ToolCopperThieving.py:414
-msgid "Select Soldermask object"
-msgstr "Selecionar objeto Máscara de Solda"
-
-#: flatcamTools/ToolCopperThieving.py:416
-msgid ""
-"Gerber Object with the soldermask.\n"
-"It will be used as a base for\n"
-"the pattern plating mask."
-msgstr ""
-"Objeto Gerber com a Máscara de Solda.\n"
-"Será usado como base para\n"
-"a máscara de revestimento padrão."
-
-#: flatcamTools/ToolCopperThieving.py:445
-msgid "Plated area"
-msgstr "Área revestida"
-
-#: flatcamTools/ToolCopperThieving.py:447
-msgid ""
-"The area to be plated by pattern plating.\n"
-"Basically is made from the openings in the plating mask.\n"
-"\n"
-"<> - the calculated area is actually a bit larger\n"
-"due of the fact that the soldermask openings are by design\n"
-"a bit larger than the copper pads, and this area is\n"
-"calculated from the soldermask openings."
-msgstr ""
-"A área a ser revestida pelo revestimento padrão.\n"
-"Basicamente é feito a partir das aberturas na máscara de revestimento.\n"
-"\n"
-"<> - a área calculada é realmente um pouco maior\n"
-"devido ao fato de que as aberturas da máscara de solda são projetadas\n"
-"um pouco maior que os pads de cobre, e essa área é\n"
-"calculada a partir das aberturas da máscara de solda."
-
-#: flatcamTools/ToolCopperThieving.py:458
-msgid "mm"
-msgstr "mm"
-
-#: flatcamTools/ToolCopperThieving.py:460
-msgid "in"
-msgstr "in"
-
-#: flatcamTools/ToolCopperThieving.py:467
-msgid "Generate pattern plating mask"
-msgstr "Gerar máscara de revestimento padrão"
-
-#: flatcamTools/ToolCopperThieving.py:469
-msgid ""
-"Will add to the soldermask gerber geometry\n"
-"the geometries of the copper thieving and/or\n"
-"the robber bar if those were generated."
-msgstr ""
-"Adicionará à geometria do gerber máscara de solda\n"
-"as geometrias da adição de cobre e/ou\n"
-"a barra, se elas foram geradas."
-
-#: flatcamTools/ToolCopperThieving.py:625
-#: flatcamTools/ToolCopperThieving.py:650
-msgid "Lines Grid works only for 'itself' reference ..."
-msgstr "Linhas funciona apenas para referência 'própria' ..."
-
-#: flatcamTools/ToolCopperThieving.py:636
-msgid "Solid fill selected."
-msgstr "Preenchimento sólido selecionado."
-
-#: flatcamTools/ToolCopperThieving.py:641
-msgid "Dots grid fill selected."
-msgstr "Preenchimento de pontos selecionado."
-
-#: flatcamTools/ToolCopperThieving.py:646
-msgid "Squares grid fill selected."
-msgstr "Preenchimento de quadrados selecionado."
-
-#: flatcamTools/ToolCopperThieving.py:667
-#: flatcamTools/ToolCopperThieving.py:749
-#: flatcamTools/ToolCopperThieving.py:1345 flatcamTools/ToolDblSided.py:657
-#: flatcamTools/ToolExtractDrills.py:436 flatcamTools/ToolFiducials.py:466
-#: flatcamTools/ToolFiducials.py:743 flatcamTools/ToolOptimal.py:342
-#: flatcamTools/ToolPunchGerber.py:512 flatcamTools/ToolQRCode.py:426
-msgid "There is no Gerber object loaded ..."
-msgstr "Não há objeto Gerber carregado ..."
-
-#: flatcamTools/ToolCopperThieving.py:680
-#: flatcamTools/ToolCopperThieving.py:1273
-msgid "Append geometry"
-msgstr "Anexar geometria"
-
-#: flatcamTools/ToolCopperThieving.py:724
-#: flatcamTools/ToolCopperThieving.py:1306
-#: flatcamTools/ToolCopperThieving.py:1459
-msgid "Append source file"
-msgstr "Anexar arquivo fonte"
-
-#: flatcamTools/ToolCopperThieving.py:732
-#: flatcamTools/ToolCopperThieving.py:1314
-msgid "Copper Thieving Tool done."
-msgstr "Área de Adição de Cobre."
-
-#: flatcamTools/ToolCopperThieving.py:759
-#: flatcamTools/ToolCopperThieving.py:792 flatcamTools/ToolCutOut.py:519
-#: flatcamTools/ToolCutOut.py:724 flatcamTools/ToolInvertGerber.py:208
-#: flatcamTools/ToolNCC.py:1599 flatcamTools/ToolNCC.py:1640
-#: flatcamTools/ToolNCC.py:1669 flatcamTools/ToolPaint.py:1474
-#: flatcamTools/ToolPanelize.py:412 flatcamTools/ToolPanelize.py:426
-#: flatcamTools/ToolSub.py:294 flatcamTools/ToolSub.py:307
-#: flatcamTools/ToolSub.py:498 flatcamTools/ToolSub.py:513
-#: tclCommands/TclCommandCopperClear.py:97 tclCommands/TclCommandPaint.py:99
-msgid "Could not retrieve object"
-msgstr "Não foi possível recuperar o objeto"
-
-#: flatcamTools/ToolCopperThieving.py:820
-msgid "Click the end point of the filling area."
-msgstr "Clique no ponto final da área de preenchimento."
-
-#: flatcamTools/ToolCopperThieving.py:942
-#: flatcamTools/ToolCopperThieving.py:946
-#: flatcamTools/ToolCopperThieving.py:1007
-msgid "Thieving"
-msgstr "Adição"
-
-#: flatcamTools/ToolCopperThieving.py:953
-msgid "Copper Thieving Tool started. Reading parameters."
-msgstr "Ferramenta de Adição de Cobre iniciada. Lendo parâmetros."
-
-#: flatcamTools/ToolCopperThieving.py:978
-msgid "Copper Thieving Tool. Preparing isolation polygons."
-msgstr "Ferramenta de Adição de Cobre. Preparando polígonos de isolação."
-
-#: flatcamTools/ToolCopperThieving.py:1023
-msgid "Copper Thieving Tool. Preparing areas to fill with copper."
-msgstr ""
-"Ferramenta de Adição de Cobre. Preparando áreas para preencher com cobre."
-
-#: flatcamTools/ToolCopperThieving.py:1034 flatcamTools/ToolOptimal.py:349
-#: flatcamTools/ToolPanelize.py:799 flatcamTools/ToolRulesCheck.py:1127
-msgid "Working..."
-msgstr "Trabalhando..."
-
-#: flatcamTools/ToolCopperThieving.py:1061
-msgid "Geometry not supported for bounding box"
-msgstr "Geometria não suportada para caixa delimitadora"
-
-#: flatcamTools/ToolCopperThieving.py:1067 flatcamTools/ToolNCC.py:1933
-#: flatcamTools/ToolNCC.py:1988 flatcamTools/ToolNCC.py:2992
-#: flatcamTools/ToolPaint.py:3380
-msgid "No object available."
-msgstr "Nenhum objeto disponível."
-
-#: flatcamTools/ToolCopperThieving.py:1104 flatcamTools/ToolNCC.py:1958
-#: flatcamTools/ToolNCC.py:2011 flatcamTools/ToolNCC.py:3034
-msgid "The reference object type is not supported."
-msgstr "O tipo do objeto de referência não é suportado."
-
-#: flatcamTools/ToolCopperThieving.py:1109
-msgid "Copper Thieving Tool. Appending new geometry and buffering."
-msgstr "Ferramenta de Adição de Cobre. Anexando nova geometria e buffer."
-
-#: flatcamTools/ToolCopperThieving.py:1125
-msgid "Create geometry"
-msgstr "Criar Geometria"
-
-#: flatcamTools/ToolCopperThieving.py:1325
-#: flatcamTools/ToolCopperThieving.py:1329
-msgid "P-Plating Mask"
-msgstr "Máscara de Revestimento Padrão"
-
-#: flatcamTools/ToolCopperThieving.py:1351
-msgid "Append PP-M geometry"
-msgstr "Anexar geometria"
-
-#: flatcamTools/ToolCopperThieving.py:1477
-msgid "Generating Pattern Plating Mask done."
-msgstr "Geração de Máscara de Revestimento Padrão concluída."
-
-#: flatcamTools/ToolCopperThieving.py:1549
-msgid "Copper Thieving Tool exit."
-msgstr "Sair da Ferramenta de Adição de Cobre."
-
-#: flatcamTools/ToolCutOut.py:41
-msgid "Cutout PCB"
-msgstr "Recorte PCB"
-
-#: flatcamTools/ToolCutOut.py:69 flatcamTools/ToolPanelize.py:54
-msgid "Source Object"
-msgstr "Objeto Fonte"
-
-#: flatcamTools/ToolCutOut.py:70
-msgid "Object to be cutout"
-msgstr "Objeto a ser recortado"
-
-#: flatcamTools/ToolCutOut.py:75
-msgid "Kind"
-msgstr "Tipo"
-
-#: flatcamTools/ToolCutOut.py:97
-msgid ""
-"Specify the type of object to be cutout.\n"
-"It can be of type: Gerber or Geometry.\n"
-"What is selected here will dictate the kind\n"
-"of objects that will populate the 'Object' combobox."
-msgstr ""
-"Especifica o tipo de objeto a ser cortado.\n"
-"Pode ser do tipo: Gerber ou Geometria.\n"
-"O que estiver selecionado aqui irá ditar o tipo\n"
-"de objetos que preencherão a caixa de combinação 'Objeto'."
-
-#: flatcamTools/ToolCutOut.py:121
-msgid "Tool Parameters"
-msgstr "Parâmetros de Ferramenta"
-
-#: flatcamTools/ToolCutOut.py:238
-msgid "A. Automatic Bridge Gaps"
-msgstr "A. Pontes Automáticas"
-
-#: flatcamTools/ToolCutOut.py:240
-msgid "This section handle creation of automatic bridge gaps."
-msgstr "Esta seção trata da criação de pontes automáticas."
-
-#: flatcamTools/ToolCutOut.py:247
-msgid ""
-"Number of gaps used for the Automatic cutout.\n"
-"There can be maximum 8 bridges/gaps.\n"
-"The choices are:\n"
-"- None - no gaps\n"
-"- lr - left + right\n"
-"- tb - top + bottom\n"
-"- 4 - left + right +top + bottom\n"
-"- 2lr - 2*left + 2*right\n"
-"- 2tb - 2*top + 2*bottom\n"
-"- 8 - 2*left + 2*right +2*top + 2*bottom"
-msgstr ""
-"Número de pontes utilizadas no recorte automático.\n"
-"Pode haver um máximo de 8 pontes/lacunas.\n"
-"As opções são:\n"
-"- Nenhum - sem pontes\n"
-"- LR - esquerda + direita\n"
-"- TB - topo + baixo\n"
-"- 4 - esquerda + direita + topo + baixo\n"
-"- 2LR - 2*esquerda + 2*direita\n"
-"- 2TB - 2*topo + 2*baixo\n"
-"- 8 - 2*esquerda + 2*direita + 2*topo + 2*baixo"
-
-#: flatcamTools/ToolCutOut.py:269
-msgid "Generate Freeform Geometry"
-msgstr "Gerar Geometria de Forma Livre"
-
-#: flatcamTools/ToolCutOut.py:271
-msgid ""
-"Cutout the selected object.\n"
-"The cutout shape can be of any shape.\n"
-"Useful when the PCB has a non-rectangular shape."
-msgstr ""
-"Recorta o objeto selecionado.\n"
-"O recorte pode ter qualquer forma.\n"
-"Útil quando o PCB tem uma forma não retangular."
-
-#: flatcamTools/ToolCutOut.py:283
-msgid "Generate Rectangular Geometry"
-msgstr "Gerar Geometria Retangular"
-
-#: flatcamTools/ToolCutOut.py:285
-msgid ""
-"Cutout the selected object.\n"
-"The resulting cutout shape is\n"
-"always a rectangle shape and it will be\n"
-"the bounding box of the Object."
-msgstr ""
-"Recorta o objeto selecionado.\n"
-"O recorte resultante é\n"
-"sempre em forma de retângulo e será\n"
-"a caixa delimitadora do objeto."
-
-#: flatcamTools/ToolCutOut.py:304
-msgid "B. Manual Bridge Gaps"
-msgstr "B. Pontes Manuais"
-
-#: flatcamTools/ToolCutOut.py:306
-msgid ""
-"This section handle creation of manual bridge gaps.\n"
-"This is done by mouse clicking on the perimeter of the\n"
-"Geometry object that is used as a cutout object. "
-msgstr ""
-"Esta seção trata da criação de pontes manuais.\n"
-"Isso é feito clicando com o mouse no perímetro do objeto\n"
-"de Geometria que é usado como objeto de recorte. "
-
-#: flatcamTools/ToolCutOut.py:321
-msgid "Geometry object used to create the manual cutout."
-msgstr "Objeto de geometria usado para criar o recorte manual."
-
-#: flatcamTools/ToolCutOut.py:328
-msgid "Generate Manual Geometry"
-msgstr "Gerar Geometria Manual"
-
-#: flatcamTools/ToolCutOut.py:330
-msgid ""
-"If the object to be cutout is a Gerber\n"
-"first create a Geometry that surrounds it,\n"
-"to be used as the cutout, if one doesn't exist yet.\n"
-"Select the source Gerber file in the top object combobox."
-msgstr ""
-"Se o objeto a ser recortado for um Gerber\n"
-"primeiro crie uma Geometria que o rodeia,\n"
-"para ser usado como recorte, caso ainda não exista.\n"
-"Selecione o arquivo Gerber de origem na combobox do objeto."
-
-#: flatcamTools/ToolCutOut.py:343
-msgid "Manual Add Bridge Gaps"
-msgstr "Adicionar Pontes Manuais"
-
-#: flatcamTools/ToolCutOut.py:345
-msgid ""
-"Use the left mouse button (LMB) click\n"
-"to create a bridge gap to separate the PCB from\n"
-"the surrounding material.\n"
-"The LMB click has to be done on the perimeter of\n"
-"the Geometry object used as a cutout geometry."
-msgstr ""
-"Use o botão esquerdo do mouse (BEM): clique\n"
-"para criar uma ponte para separar a PCB do material adjacente.\n"
-"O clique deve ser feito no perímetro\n"
-"do objeto Geometria usado como uma geometria de recorte."
-
-#: flatcamTools/ToolCutOut.py:524
-msgid ""
-"There is no object selected for Cutout.\n"
-"Select one and try again."
-msgstr ""
-"Não há objeto selecionado para Recorte.\n"
-"Selecione um e tente novamente."
-
-#: flatcamTools/ToolCutOut.py:530 flatcamTools/ToolCutOut.py:733
-#: flatcamTools/ToolCutOut.py:914 flatcamTools/ToolCutOut.py:996
-#: tclCommands/TclCommandGeoCutout.py:184
-msgid "Tool Diameter is zero value. Change it to a positive real number."
-msgstr ""
-"O diâmetro da ferramenta está zerado. Mude para um número real positivo."
-
-#: flatcamTools/ToolCutOut.py:544 flatcamTools/ToolCutOut.py:748
-msgid "Number of gaps value is missing. Add it and retry."
-msgstr "O número de pontes está ausente. Altere e tente novamente."
-
-#: flatcamTools/ToolCutOut.py:549 flatcamTools/ToolCutOut.py:752
-msgid ""
-"Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. "
-"Fill in a correct value and retry. "
-msgstr ""
-"O valor das lacunas pode ser apenas um de: 'Nenhum', 'lr', 'tb', '2lr', "
-"'2tb', 4 ou 8. Preencha um valor correto e tente novamente. "
-
-#: flatcamTools/ToolCutOut.py:554 flatcamTools/ToolCutOut.py:758
-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 ""
-"A operação de recorte não pode ser feita em uma Geometria multi-geo.\n"
-"Opcionalmente, essa Geometria Multi-Geo pode ser convertida em Geometria "
-"Única,\n"
-"e depois disso, executar Recorte."
-
-#: flatcamTools/ToolCutOut.py:706 flatcamTools/ToolCutOut.py:903
-msgid "Any form CutOut operation finished."
-msgstr "Recorte concluído."
-
-#: flatcamTools/ToolCutOut.py:728 flatcamTools/ToolInvertGerber.py:214
-#: flatcamTools/ToolNCC.py:1603 flatcamTools/ToolPaint.py:1397
-#: flatcamTools/ToolPanelize.py:417 tclCommands/TclCommandBbox.py:71
-#: tclCommands/TclCommandNregions.py:71
-msgid "Object not found"
-msgstr "Objeto não encontrado"
-
-#: flatcamTools/ToolCutOut.py:872
-msgid "Rectangular cutout with negative margin is not possible."
-msgstr "Recorte retangular com margem negativa não é possível."
-
-#: flatcamTools/ToolCutOut.py:908
-msgid ""
-"Click on the selected geometry object perimeter to create a bridge gap ..."
-msgstr ""
-"Clique no perímetro do objeto de geometria selecionado para criar uma "
-"ponte ..."
-
-#: flatcamTools/ToolCutOut.py:925 flatcamTools/ToolCutOut.py:951
-msgid "Could not retrieve Geometry object"
-msgstr "Não foi possível recuperar o objeto Geometria"
-
-#: flatcamTools/ToolCutOut.py:956
-msgid "Geometry object for manual cutout not found"
-msgstr "Objeto de geometria para recorte manual não encontrado"
-
-#: flatcamTools/ToolCutOut.py:966
-msgid "Added manual Bridge Gap."
-msgstr "Ponte Manual Adicionada."
-
-#: flatcamTools/ToolCutOut.py:978
-msgid "Could not retrieve Gerber object"
-msgstr "Não foi possível recuperar o objeto Gerber"
-
-#: flatcamTools/ToolCutOut.py:983
-msgid ""
-"There is no Gerber object selected for Cutout.\n"
-"Select one and try again."
-msgstr ""
-"Não há nenhum objeto Gerber selecionado para o Recorte.\n"
-"Selecione um e tente novamente."
-
-#: flatcamTools/ToolCutOut.py:989
-msgid ""
-"The selected object has to be of Gerber type.\n"
-"Select a Gerber file and try again."
-msgstr ""
-"O objeto selecionado deve ser do tipo Gerber.\n"
-"Selecione um arquivo Gerber e tente novamente."
-
-#: flatcamTools/ToolCutOut.py:1024
-msgid "Geometry not supported for cutout"
-msgstr "Geometria não suportada para recorte"
-
-#: flatcamTools/ToolCutOut.py:1099
-msgid "Making manual bridge gap..."
-msgstr "Fazendo ponte manual..."
-
-#: flatcamTools/ToolDblSided.py:26
-msgid "2-Sided PCB"
-msgstr "PCB de 2 faces"
-
-#: flatcamTools/ToolDblSided.py:52
-msgid "Mirror Operation"
-msgstr "Operação Espelho"
-
-#: flatcamTools/ToolDblSided.py:53
-msgid "Objects to be mirrored"
-msgstr "Objetos a espelhar"
-
-#: flatcamTools/ToolDblSided.py:65
-msgid "Gerber to be mirrored"
-msgstr "Gerber a espelhar"
-
-#: flatcamTools/ToolDblSided.py:69 flatcamTools/ToolDblSided.py:97
-#: flatcamTools/ToolDblSided.py:127
-msgid ""
-"Mirrors (flips) the specified object around \n"
-"the specified axis. Does not create a new \n"
-"object, but modifies it."
-msgstr ""
-"Espelha (inverte) o objeto especificado em torno do eixo especificado.\n"
-"Não é criado um novo objeto, o objeto atual é modificado."
-
-#: flatcamTools/ToolDblSided.py:93
-msgid "Excellon Object to be mirrored."
-msgstr "Objeto Excellon a ser espelhado."
-
-#: flatcamTools/ToolDblSided.py:122
-msgid "Geometry Obj to be mirrored."
-msgstr "Objeto Geometria a ser espelhado."
-
-#: flatcamTools/ToolDblSided.py:158
-msgid "Mirror Parameters"
-msgstr "Parâmetros de Espelho"
-
-#: flatcamTools/ToolDblSided.py:159
-msgid "Parameters for the mirror operation"
-msgstr "Parâmetros para a operação de espelhamento"
-
-#: flatcamTools/ToolDblSided.py:164
-msgid "Mirror Axis"
-msgstr "Espelhar Eixo"
-
-#: flatcamTools/ToolDblSided.py:175
-msgid ""
-"The coordinates used as reference for the mirror operation.\n"
-"Can be:\n"
-"- Point -> a set of coordinates (x,y) around which the object is mirrored\n"
-"- Box -> a set of coordinates (x, y) obtained from the center of the\n"
-"bounding box of another object selected below"
-msgstr ""
-"As coordenadas usadas como referência para a operação de espelho.\n"
-"Pode ser:\n"
-"- Ponto -> um conjunto de coordenadas (x, y) em torno do qual o objeto é "
-"espelhado\n"
-"- Caixa -> um conjunto de coordenadas (x, y) obtidas do centro da\n"
-"caixa delimitadora de outro objeto selecionado abaixo"
-
-#: flatcamTools/ToolDblSided.py:189
-msgid "Point coordinates"
-msgstr "Coords dos pontos"
-
-#: flatcamTools/ToolDblSided.py:194
-msgid ""
-"Add the coordinates in format (x, y) through which the mirroring "
-"axis\n"
-" selected in 'MIRROR AXIS' pass.\n"
-"The (x, y) coordinates are captured by pressing SHIFT key\n"
-"and left mouse button click on canvas or you can enter the coordinates "
-"manually."
-msgstr ""
-"Adicione as coordenadas no formato (x, y) para o eixo de espelhamento "
-"passar.\n"
-"As coordenadas (x, y) são capturadas pressionando a tecla SHIFT\n"
-"e clicar o botão esquerdo do mouse na tela ou inseridas manualmente."
-
-#: flatcamTools/ToolDblSided.py:218
-msgid ""
-"It can be of type: Gerber or Excellon or Geometry.\n"
-"The coordinates of the center of the bounding box are used\n"
-"as reference for mirror operation."
-msgstr ""
-"Pode ser do tipo: Gerber, Excellon ou Geometria.\n"
-"As coordenadas do centro da caixa delimitadora são usadas\n"
-"como referência para operação de espelho."
-
-#: flatcamTools/ToolDblSided.py:252
-msgid "Bounds Values"
-msgstr "Valores Limite"
-
-#: flatcamTools/ToolDblSided.py:254
-msgid ""
-"Select on canvas the object(s)\n"
-"for which to calculate bounds values."
-msgstr ""
-"Selecione na tela o(s) objeto(s)\n"
-"para o qual calcular valores limites."
-
-#: flatcamTools/ToolDblSided.py:264
-msgid "X min"
-msgstr "X min"
-
-#: flatcamTools/ToolDblSided.py:266 flatcamTools/ToolDblSided.py:280
-msgid "Minimum location."
-msgstr "Localização mínima."
-
-#: flatcamTools/ToolDblSided.py:278
-msgid "Y min"
-msgstr "Y min"
-
-#: flatcamTools/ToolDblSided.py:292
-msgid "X max"
-msgstr "X max"
-
-#: flatcamTools/ToolDblSided.py:294 flatcamTools/ToolDblSided.py:308
-msgid "Maximum location."
-msgstr "Localização máxima."
-
-#: flatcamTools/ToolDblSided.py:306
-msgid "Y max"
-msgstr "Y max"
-
-#: flatcamTools/ToolDblSided.py:317
-msgid "Center point coordinates"
-msgstr "Coordenadas do ponto central"
-
-#: flatcamTools/ToolDblSided.py:319
-msgid "Centroid"
-msgstr "Centroid"
-
-#: flatcamTools/ToolDblSided.py:321
-msgid ""
-"The center point location for the rectangular\n"
-"bounding shape. Centroid. Format is (x, y)."
-msgstr ""
-"A localização do ponto central do retângulo\n"
-"forma delimitadora. Centroid. O formato é (x, y)."
-
-#: flatcamTools/ToolDblSided.py:330
-msgid "Calculate Bounds Values"
-msgstr "Calcular valores de limitesCalculadoras"
-
-#: flatcamTools/ToolDblSided.py:332
-msgid ""
-"Calculate the enveloping rectangular shape coordinates,\n"
-"for the selection of objects.\n"
-"The envelope shape is parallel with the X, Y axis."
-msgstr ""
-"Calcular as coordenadas de forma retangular envolventes,\n"
-"para a seleção de objetos.\n"
-"A forma do envelope é paralela ao eixo X, Y."
-
-#: flatcamTools/ToolDblSided.py:352
-msgid "PCB Alignment"
-msgstr "Alinhamento PCB"
-
-#: flatcamTools/ToolDblSided.py:354 flatcamTools/ToolDblSided.py:456
-msgid ""
-"Creates an Excellon Object containing the\n"
-"specified alignment holes and their mirror\n"
-"images."
-msgstr ""
-"Cria um Objeto Excellon contendo os\n"
-"furos de alinhamento especificados e suas\n"
-"imagens espelhadas."
-
-#: flatcamTools/ToolDblSided.py:361
-msgid "Drill Diameter"
-msgstr "Diâmetro da Broca"
-
-#: flatcamTools/ToolDblSided.py:390 flatcamTools/ToolDblSided.py:397
-msgid ""
-"The reference point used to create the second alignment drill\n"
-"from the first alignment drill, by doing mirror.\n"
-"It can be modified in the Mirror Parameters -> Reference section"
-msgstr ""
-"O ponto de referência usado para criar o segundo furo de alinhamento\n"
-"do primeiro furo de alinhamento, fazendo espelho.\n"
-"Pode ser modificado na seção Parâmetros de espelho -> Referência"
-
-#: flatcamTools/ToolDblSided.py:410
-msgid "Alignment Drill Coordinates"
-msgstr "Coords Furos de Alinhamento"
-
-#: flatcamTools/ToolDblSided.py:412
-msgid ""
-"Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For "
-"each set of (x, y) coordinates\n"
-"entered here, a pair of drills will be created:\n"
-"\n"
-"- one drill at the coordinates from the field\n"
-"- one drill in mirror position over the axis selected above in the 'Align "
-"Axis'."
-msgstr ""
-"Furos de alinhamento (x1, y1), (x2, y2), ... em um lado do eixo do espelho. "
-"Para cada conjunto de coordenadas (x, y)\n"
-"indicado aqui, um par de furos será criado:\n"
-"\n"
-"- uma furo nas coordenadas do campo\n"
-"- uma furo na posição espelhada sobre o eixo selecionado acima no 'Alinhar "
-"eixo'."
-
-#: flatcamTools/ToolDblSided.py:420
-msgid "Drill coordinates"
-msgstr "Coordenadas dos furos"
-
-#: flatcamTools/ToolDblSided.py:427
-msgid ""
-"Add alignment drill holes coordinates in the format: (x1, y1), (x2, "
-"y2), ... \n"
-"on one side of the alignment axis.\n"
-"\n"
-"The coordinates set can be obtained:\n"
-"- press SHIFT key and left mouse clicking on canvas. Then click Add.\n"
-"- press SHIFT key and left mouse clicking on canvas. Then Ctrl+V in the "
-"field.\n"
-"- press SHIFT key and left mouse clicking on canvas. Then RMB click in the "
-"field and click Paste.\n"
-"- by entering the coords manually in the format: (x1, y1), (x2, y2), ..."
-msgstr ""
-"Adicione as coordenadas dos furos de alinhamento no formato (x1, y1), (x2, "
-"y2), ...\n"
-"em um lado do eixo do espelho.\n"
-"\n"
-"O conjunto de coordenadas pode ser obtido:\n"
-"- tecla SHIFT e clique com o botão esquerdo do mouse na tela. Em seguida, "
-"clicar em Adicionar.\n"
-"- tecla SHIFT e clique com o botão esquerdo do mouse na tela. Então CTRL + V "
-"no campo.\n"
-"- tecla SHIFT e clique com o botão esquerdo do mouse na tela. Em seguida, "
-"clicar no campo e em Colar.\n"
-"- inserindo as coordenadas manualmente no formato: (x1, y1), (x2, y2), ..."
-
-#: flatcamTools/ToolDblSided.py:442
-msgid "Delete Last"
-msgstr "Excluir Último"
-
-#: flatcamTools/ToolDblSided.py:444
-msgid "Delete the last coordinates tuple in the list."
-msgstr "Exclua a última dupla de coordenadas da lista."
-
-#: flatcamTools/ToolDblSided.py:454
-msgid "Create Excellon Object"
-msgstr "Criar Objeto Excellon"
-
-#: flatcamTools/ToolDblSided.py:541
-msgid "2-Sided Tool"
-msgstr "PCB 2 Faces"
-
-#: flatcamTools/ToolDblSided.py:581
-msgid ""
-"'Point' reference is selected and 'Point' coordinates are missing. Add them "
-"and retry."
-msgstr ""
-"A referência 'Ponto' está selecionada e as coordenadas do 'Ponto' estão "
-"faltando. Adicione-as e tente novamente."
-
-#: flatcamTools/ToolDblSided.py:600
-msgid "There is no Box reference object loaded. Load one and retry."
-msgstr ""
-"Não há objeto Caixa de referência carregado. Carregue um e tente novamente."
-
-#: flatcamTools/ToolDblSided.py:612
-msgid "No value or wrong format in Drill Dia entry. Add it and retry."
-msgstr ""
-"Nenhum valor ou formato incorreto para o Diâmetro do Furo. Altere e tente "
-"novamente."
-
-#: flatcamTools/ToolDblSided.py:623
-msgid "There are no Alignment Drill Coordinates to use. Add them and retry."
-msgstr ""
-"Não há Coordenadas para usar no Furo de Alinhamento. Adicione-as e tente "
-"novamente."
-
-#: flatcamTools/ToolDblSided.py:648
-msgid "Excellon object with alignment drills created..."
-msgstr "Objeto Excellon com furos de alinhamento criado ..."
-
-#: flatcamTools/ToolDblSided.py:661 flatcamTools/ToolDblSided.py:704
-#: flatcamTools/ToolDblSided.py:748
-msgid "Only Gerber, Excellon and Geometry objects can be mirrored."
-msgstr "Apenas objetos Gerber, Excellon e Geometria podem ser espelhados."
-
-#: flatcamTools/ToolDblSided.py:671 flatcamTools/ToolDblSided.py:715
-msgid ""
-"There are no Point coordinates in the Point field. Add coords and try "
-"again ..."
-msgstr ""
-"Faltando as Coordenadas do 'Ponto'. Adicione as coordenadas e tente "
-"novamente ..."
-
-#: flatcamTools/ToolDblSided.py:681 flatcamTools/ToolDblSided.py:725
-#: flatcamTools/ToolDblSided.py:762
-msgid "There is no Box object loaded ..."
-msgstr "Não há objeto Caixa carregado ..."
-
-#: flatcamTools/ToolDblSided.py:691 flatcamTools/ToolDblSided.py:735
-#: flatcamTools/ToolDblSided.py:772
-msgid "was mirrored"
-msgstr "foi espelhado"
-
-#: flatcamTools/ToolDblSided.py:700 flatcamTools/ToolPunchGerber.py:533
-msgid "There is no Excellon object loaded ..."
-msgstr "Não há objeto Excellon carregado ..."
-
-#: flatcamTools/ToolDblSided.py:744
-msgid "There is no Geometry object loaded ..."
-msgstr "Não há objeto Geometria carregado ..."
-
-#: flatcamTools/ToolDistance.py:57 flatcamTools/ToolDistanceMin.py:51
-msgid "Those are the units in which the distance is measured."
-msgstr "Unidade em que a distância é medida."
-
-#: flatcamTools/ToolDistance.py:58 flatcamTools/ToolDistanceMin.py:52
-msgid "METRIC (mm)"
-msgstr "Métrico (mm):"
-
-#: flatcamTools/ToolDistance.py:58 flatcamTools/ToolDistanceMin.py:52
-msgid "INCH (in)"
-msgstr "Inglês (in)"
-
-#: flatcamTools/ToolDistance.py:64
-msgid "Snap to center"
-msgstr "Alinhar ao centro"
-
-#: flatcamTools/ToolDistance.py:66
-msgid ""
-"Mouse cursor will snap to the center of the pad/drill\n"
-"when it is hovering over the geometry of the pad/drill."
-msgstr ""
-"O cursor do mouse se encaixará no centro do pad/furo\n"
-"quando está pairando sobre a geometria do pad/furo."
-
-#: flatcamTools/ToolDistance.py:76
-msgid "Start Coords"
-msgstr "Coords Iniciais"
-
-#: flatcamTools/ToolDistance.py:77 flatcamTools/ToolDistance.py:82
-msgid "This is measuring Start point coordinates."
-msgstr "Coordenadas do ponto inicial da medição."
-
-#: flatcamTools/ToolDistance.py:87
-msgid "Stop Coords"
-msgstr "Coords Finais"
-
-#: flatcamTools/ToolDistance.py:88 flatcamTools/ToolDistance.py:93
-msgid "This is the measuring Stop point coordinates."
-msgstr "Coordenadas do ponto final da medição."
-
-#: flatcamTools/ToolDistance.py:98 flatcamTools/ToolDistanceMin.py:63
-msgid "Dx"
-msgstr "Dx"
-
-#: flatcamTools/ToolDistance.py:99 flatcamTools/ToolDistance.py:104
-#: flatcamTools/ToolDistanceMin.py:64 flatcamTools/ToolDistanceMin.py:93
-msgid "This is the distance measured over the X axis."
-msgstr "Distância medida no eixo X."
-
-#: flatcamTools/ToolDistance.py:109 flatcamTools/ToolDistanceMin.py:66
-msgid "Dy"
-msgstr "Dy"
-
-#: flatcamTools/ToolDistance.py:110 flatcamTools/ToolDistance.py:115
-#: flatcamTools/ToolDistanceMin.py:67 flatcamTools/ToolDistanceMin.py:98
-msgid "This is the distance measured over the Y axis."
-msgstr "Distância medida no eixo Y."
-
-#: flatcamTools/ToolDistance.py:121 flatcamTools/ToolDistance.py:126
-#: flatcamTools/ToolDistanceMin.py:70 flatcamTools/ToolDistanceMin.py:103
-msgid "This is orientation angle of the measuring line."
-msgstr "Ângulo de orientação da linha de medição."
-
-#: flatcamTools/ToolDistance.py:131 flatcamTools/ToolDistanceMin.py:72
-msgid "DISTANCE"
-msgstr "DISTÂNCIA"
-
-#: flatcamTools/ToolDistance.py:132 flatcamTools/ToolDistance.py:137
-msgid "This is the point to point Euclidian distance."
-msgstr "Este é o ponto a apontar a distância euclidiana."
-
-#: flatcamTools/ToolDistance.py:142 flatcamTools/ToolDistance.py:337
-#: flatcamTools/ToolDistanceMin.py:115
-msgid "Measure"
-msgstr "Medir"
-
-#: flatcamTools/ToolDistance.py:272
-msgid "Working"
-msgstr "Trabalhando"
-
-#: flatcamTools/ToolDistance.py:277
-msgid "MEASURING: Click on the Start point ..."
-msgstr "MEDIÇÃO: Clique no ponto Inicial ..."
-
-#: flatcamTools/ToolDistance.py:387
-msgid "Distance Tool finished."
-msgstr "Ferramenta de distância concluída."
-
-#: flatcamTools/ToolDistance.py:455
-msgid "Pads overlapped. Aborting."
-msgstr "Pads sobrepostos. Abortando."
-
-#: flatcamTools/ToolDistance.py:485
-msgid "MEASURING: Click on the Destination point ..."
-msgstr "MEDIÇÃO: Clique no ponto Final ..."
-
-#: flatcamTools/ToolDistance.py:494 flatcamTools/ToolDistanceMin.py:285
-msgid "MEASURING"
-msgstr "MEDINDO"
-
-#: flatcamTools/ToolDistance.py:495 flatcamTools/ToolDistanceMin.py:286
-msgid "Result"
-msgstr "Resultado"
-
-#: flatcamTools/ToolDistanceMin.py:32 flatcamTools/ToolDistanceMin.py:144
-msgid "Minimum Distance Tool"
-msgstr "Ferramenta Distância Mínima"
-
-#: flatcamTools/ToolDistanceMin.py:55
-msgid "First object point"
-msgstr "Ponto inicial"
-
-#: flatcamTools/ToolDistanceMin.py:56 flatcamTools/ToolDistanceMin.py:81
-msgid ""
-"This is first object point coordinates.\n"
-"This is the start point for measuring distance."
-msgstr ""
-"Coordenadas do ponto inicial.\n"
-"Este é o ponto inicial para a medição de distância."
-
-#: flatcamTools/ToolDistanceMin.py:59
-msgid "Second object point"
-msgstr "Ponto final"
-
-#: flatcamTools/ToolDistanceMin.py:60 flatcamTools/ToolDistanceMin.py:87
-msgid ""
-"This is second object point coordinates.\n"
-"This is the end point for measuring distance."
-msgstr ""
-"Coordenadas do ponto final.\n"
-"Este é o ponto final para a medição de distância."
-
-#: flatcamTools/ToolDistanceMin.py:73 flatcamTools/ToolDistanceMin.py:108
-msgid "This is the point to point Euclidean distance."
-msgstr "Este é o ponto a apontar a distância euclidiana."
-
-#: flatcamTools/ToolDistanceMin.py:75
-msgid "Half Point"
-msgstr "Ponto Médio"
-
-#: flatcamTools/ToolDistanceMin.py:76 flatcamTools/ToolDistanceMin.py:113
-msgid "This is the middle point of the point to point Euclidean distance."
-msgstr "Este é o ponto médio da distância euclidiana."
-
-#: flatcamTools/ToolDistanceMin.py:118
-msgid "Jump to Half Point"
-msgstr "Ir para o Ponto Médio"
-
-#: flatcamTools/ToolDistanceMin.py:155
-msgid ""
-"Select two objects and no more, to measure the distance between them ..."
-msgstr ""
-"Selecione dois objetos (apenas dois) para medir a distância entre eles..."
-
-#: flatcamTools/ToolDistanceMin.py:196 flatcamTools/ToolDistanceMin.py:217
-#: flatcamTools/ToolDistanceMin.py:226 flatcamTools/ToolDistanceMin.py:247
-msgid "Select two objects and no more. Currently the selection has objects: "
-msgstr "Selecione dois objetos (apenas dois). A seleção atual tem objetos: "
-
-#: flatcamTools/ToolDistanceMin.py:294
-msgid "Objects intersects or touch at"
-msgstr "Os objetos se cruzam ou tocam em"
-
-#: flatcamTools/ToolDistanceMin.py:300
-msgid "Jumped to the half point between the two selected objects"
-msgstr "Pulou para o ponto médio entre os dois objetos selecionados"
-
-#: flatcamTools/ToolExtractDrills.py:29 flatcamTools/ToolExtractDrills.py:295
-msgid "Extract Drills"
-msgstr "Extrair Furos"
-
-#: flatcamTools/ToolExtractDrills.py:62
-msgid "Gerber from which to extract drill holes"
-msgstr "Objeto para extrair furos."
-
-#: flatcamTools/ToolExtractDrills.py:297
-msgid "Extract drills from a given Gerber file."
-msgstr "Extrai furos de um arquivo Gerber."
-
-#: flatcamTools/ToolExtractDrills.py:478 flatcamTools/ToolExtractDrills.py:563
-#: flatcamTools/ToolExtractDrills.py:648
-msgid "No drills extracted. Try different parameters."
-msgstr "Nenhum furo extraído. Tente parâmetros diferentes."
-
-#: flatcamTools/ToolFiducials.py:56
-msgid "Fiducials Coordinates"
-msgstr "Coordenadas dos Fiduciais"
-
-#: flatcamTools/ToolFiducials.py:58
-msgid ""
-"A table with the fiducial points coordinates,\n"
-"in the format (x, y)."
-msgstr ""
-"Uma tabela com as coordenadas dos pontos fiduciais,\n"
-"no formato (x, y)."
-
-#: flatcamTools/ToolFiducials.py:99
-msgid "Top Right"
-msgstr "Direita Superior"
-
-#: flatcamTools/ToolFiducials.py:191
-msgid ""
-"- 'Auto' - automatic placement of fiducials in the corners of the bounding "
-"box.\n"
-" - 'Manual' - manual placement of fiducials."
-msgstr ""
-"- 'Auto' - colocação automática de fiduciais nos cantos da caixa "
-"delimitadora.\n"
-"- 'Manual' - colocação manual de fiduciais."
-
-#: flatcamTools/ToolFiducials.py:259
-msgid "Copper Gerber"
-msgstr "Gerber Cobre"
-
-#: flatcamTools/ToolFiducials.py:268
-msgid "Add Fiducial"
-msgstr "Adicionar Fiducial"
-
-#: flatcamTools/ToolFiducials.py:270
-msgid "Will add a polygon on the copper layer to serve as fiducial."
-msgstr "Adicionará um polígono na camada de cobre para servir como fiducial."
-
-#: flatcamTools/ToolFiducials.py:286
-msgid "Soldermask Gerber"
-msgstr "Gerber Máscara de Solda"
-
-#: flatcamTools/ToolFiducials.py:288
-msgid "The Soldermask Gerber object."
-msgstr "Objeto Gerber de Máscara de Solda."
-
-#: flatcamTools/ToolFiducials.py:300
-msgid "Add Soldermask Opening"
-msgstr "Adicionar Máscara de Solda"
-
-#: flatcamTools/ToolFiducials.py:302
-msgid ""
-"Will add a polygon on the soldermask layer\n"
-"to serve as fiducial opening.\n"
-"The diameter is always double of the diameter\n"
-"for the copper fiducial."
-msgstr ""
-"Adicionará um polígono na camada de máscara de solda\n"
-"para servir como abertura fiducial.\n"
-"O diâmetro é sempre o dobro do diâmetro\n"
-"para o fiducial de cobre."
-
-#: flatcamTools/ToolFiducials.py:516
-msgid "Click to add first Fiducial. Bottom Left..."
-msgstr "Clique para adicionar o primeiro Fiducial. Inferior Esquerdo..."
-
-#: flatcamTools/ToolFiducials.py:780
-msgid "Click to add the last fiducial. Top Right..."
-msgstr "Clique para adicionar o último fiducial. Superior Direito..."
-
-#: flatcamTools/ToolFiducials.py:785
-msgid "Click to add the second fiducial. Top Left or Bottom Right..."
-msgstr ""
-"Clique para adicionar o segundo fiducial. Superior Esquerdo ou Inferior "
-"Direito..."
-
-#: flatcamTools/ToolFiducials.py:788 flatcamTools/ToolFiducials.py:797
-msgid "Done. All fiducials have been added."
-msgstr "Feito. Todos os fiduciais foram adicionados."
-
-#: flatcamTools/ToolFiducials.py:874
-msgid "Fiducials Tool exit."
-msgstr "Sair da ferramenta de fiduciais."
-
-#: flatcamTools/ToolFilm.py:42
-msgid "Film PCB"
-msgstr "Filme PCB"
-
-#: flatcamTools/ToolFilm.py:78
-msgid ""
-"Specify the type of object for which to create the film.\n"
-"The object can be of type: Gerber or Geometry.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Film Object combobox."
-msgstr ""
-"Especifique o tipo de objeto para o qual criar o filme.\n"
-"O objeto pode ser do tipo: Gerber ou Geometria.\n"
-"A seleção aqui decide o tipo de objetos que estará\n"
-"na caixa de combinação Objeto de Filme."
-
-#: flatcamTools/ToolFilm.py:92
-msgid "Film Object"
-msgstr "Objeto de Filme"
-
-#: flatcamTools/ToolFilm.py:94
-msgid "Object for which to create the film."
-msgstr "Objeto para o qual criar o filme."
-
-#: flatcamTools/ToolFilm.py:115
-msgid ""
-"Specify the type of object to be used as an container for\n"
-"film creation. It can be: Gerber or Geometry type.The selection here decide "
-"the type of objects that will be\n"
-"in the Box Object combobox."
-msgstr ""
-"Especifique o tipo de objeto a ser usado como um contêiner para a criação "
-"de\n"
-"filme. Pode ser: tipo Gerber ou Geometria. A seleção aqui decide o tipo de "
-"objetos que estará\n"
-"na caixa de combinação Objeto Caixa."
-
-#: flatcamTools/ToolFilm.py:129
-msgid "Box Object"
-msgstr "Objeto Caixa"
-
-#: flatcamTools/ToolFilm.py:131
-msgid ""
-"The actual object that is used as container for the\n"
-" selected object for which we create the film.\n"
-"Usually it is the PCB outline but it can be also the\n"
-"same object for which the film is created."
-msgstr ""
-"O objeto que é usado como um container para o objeto\n"
-"selecionado para o qual criamos o filme.\n"
-"Normalmente, é o contorno do PCB, mas também pode ser\n"
-"do mesmo objeto para o qual o filme é criado."
-
-#: flatcamTools/ToolFilm.py:273
-msgid "Film Parameters"
-msgstr "Parâmetros de Filme"
-
-#: flatcamTools/ToolFilm.py:334
-msgid "Punch drill holes"
-msgstr "Furar manualmente"
-
-#: flatcamTools/ToolFilm.py:335
-msgid ""
-"When checked the generated film will have holes in pads when\n"
-"the generated film is positive. This is done to help drilling,\n"
-"when done manually."
-msgstr ""
-"Quando marcado, o filme gerado terá furos nos pads quando\n"
-"o filme gerado é positivo. Isso é feito para ajudar na perfuração,\n"
-"quando feito manualmente."
-
-#: flatcamTools/ToolFilm.py:353
-msgid "Source"
-msgstr "Fonte"
-
-#: flatcamTools/ToolFilm.py:355
-msgid ""
-"The punch hole source can be:\n"
-"- Excellon -> an Excellon holes center will serve as reference.\n"
-"- Pad Center -> will try to use the pads center as reference."
-msgstr ""
-"A fonte do furo pode ser:\n"
-"- Excellon -> o centro de um furo Excellon servirá como referência.\n"
-"- Centro de Pad -> tentará usar o centro de pads como referência."
-
-#: flatcamTools/ToolFilm.py:360
-msgid "Pad center"
-msgstr "Centro de Pad"
-
-#: flatcamTools/ToolFilm.py:365
-msgid "Excellon Obj"
-msgstr "Objeto Excellon"
-
-#: flatcamTools/ToolFilm.py:367
-msgid ""
-"Remove the geometry of Excellon from the Film to create the holes in pads."
-msgstr "Remove a geometria do Excellon do filme para criar os furos nos pads."
-
-#: flatcamTools/ToolFilm.py:381
-msgid "Punch Size"
-msgstr "Tamanho do Perfurador"
-
-#: flatcamTools/ToolFilm.py:382
-msgid "The value here will control how big is the punch hole in the pads."
-msgstr "Valor para controlar o tamanho dos furos dos pads."
-
-#: flatcamTools/ToolFilm.py:502
-msgid "Save Film"
-msgstr "Salvar Filme"
-
-#: flatcamTools/ToolFilm.py:504
-msgid ""
-"Create a Film for the selected object, within\n"
-"the specified box. Does not create a new \n"
-" FlatCAM object, but directly save it in the\n"
-"selected format."
-msgstr ""
-"Cria um filme para o objeto selecionado, dentro da caixa\n"
-"especificada. Não cria um novo objeto\n"
-"FlatCAM, mas salva-o diretamente no formato selecionado."
-
-#: flatcamTools/ToolFilm.py:664
-msgid ""
-"Using the Pad center does not work on Geometry objects. Only a Gerber object "
-"has pads."
-msgstr ""
-"O uso de Centro de Pad não funciona em objetos Geometria. Somente um objeto "
-"Gerber possui pads."
-
-#: flatcamTools/ToolFilm.py:674
-msgid "No FlatCAM object selected. Load an object for Film and retry."
-msgstr ""
-"Nenhum objeto FlatCAM selecionado. Carregue um objeto para Filme e tente "
-"novamente."
-
-#: flatcamTools/ToolFilm.py:681
-msgid "No FlatCAM object selected. Load an object for Box and retry."
-msgstr ""
-"Nenhum objeto FlatCAM selecionado. Carregue um objeto para Caixa e tente "
-"novamente."
-
-#: flatcamTools/ToolFilm.py:685
-msgid "No FlatCAM object selected."
-msgstr "Nenhum objeto FlatCAM selecionado."
-
-#: flatcamTools/ToolFilm.py:696
-msgid "Generating Film ..."
-msgstr "Gerando Filme ..."
-
-#: flatcamTools/ToolFilm.py:745 flatcamTools/ToolFilm.py:749
-msgid "Export positive film"
-msgstr "Exportar filme positivo"
-
-#: flatcamTools/ToolFilm.py:782
-msgid ""
-"No Excellon object selected. Load an object for punching reference and retry."
-msgstr ""
-"Nenhum objeto Excellon selecionado. Carregue um objeto para referência de "
-"perfuração manual e tente novamente."
-
-#: flatcamTools/ToolFilm.py:806
-msgid ""
-" Could not generate punched hole film because the punch hole sizeis bigger "
-"than some of the apertures in the Gerber object."
-msgstr ""
-" Não foi possível gerar o filme de furos manuais porque o tamanho do "
-"perfurador é maior que algumas das aberturas no objeto Gerber."
-
-#: flatcamTools/ToolFilm.py:818
-msgid ""
-"Could not generate punched hole film because the punch hole sizeis bigger "
-"than some of the apertures in the Gerber object."
-msgstr ""
-"Não foi possível gerar o filme de furos manuais porque o tamanho do "
-"perfurador é maior que algumas das aberturas no objeto Gerber."
-
-#: flatcamTools/ToolFilm.py:836
-msgid ""
-"Could not generate punched hole film because the newly created object "
-"geometry is the same as the one in the source object geometry..."
-msgstr ""
-"Não foi possível gerar o filme de furos manuais porque a geometria do objeto "
-"recém-criada é a mesma da geometria do objeto de origem ..."
-
-#: flatcamTools/ToolFilm.py:891 flatcamTools/ToolFilm.py:895
-msgid "Export negative film"
-msgstr "Exportar filme negativo"
-
-#: flatcamTools/ToolFilm.py:956 flatcamTools/ToolFilm.py:1139
-#: flatcamTools/ToolPanelize.py:430
-msgid "No object Box. Using instead"
-msgstr "Nenhuma caixa de objeto. Usando"
-
-#: flatcamTools/ToolFilm.py:1072 flatcamTools/ToolFilm.py:1252
-msgid "Film file exported to"
-msgstr "Arquivo filme exportado para"
-
-#: flatcamTools/ToolFilm.py:1075 flatcamTools/ToolFilm.py:1255
-msgid "Generating Film ... Please wait."
-msgstr "Gerando Filme ... Por favor, aguarde."
-
-#: flatcamTools/ToolImage.py:24
-msgid "Image as Object"
-msgstr "Imagem como Objeto"
-
-#: flatcamTools/ToolImage.py:33
-msgid "Image to PCB"
-msgstr "Imagem para PCB"
-
-#: flatcamTools/ToolImage.py:56
-msgid ""
-"Specify the type of object to create from the image.\n"
-"It can be of type: Gerber or Geometry."
-msgstr ""
-"Especifique o tipo de objeto a ser criado a partir da imagem.\n"
-"Pode ser do tipo: Gerber ou Geometria."
-
-#: flatcamTools/ToolImage.py:65
-msgid "DPI value"
-msgstr "Valor de DPI"
-
-#: flatcamTools/ToolImage.py:66
-msgid "Specify a DPI value for the image."
-msgstr "Especifique um valor de DPI (pontos por polegada) para a imagem."
-
-#: flatcamTools/ToolImage.py:72
-msgid "Level of detail"
-msgstr "Nível de detalhe"
-
-#: flatcamTools/ToolImage.py:81
-msgid "Image type"
-msgstr "Tipo de imagem"
-
-#: flatcamTools/ToolImage.py:83
-msgid ""
-"Choose a method for the image interpretation.\n"
-"B/W means a black & white image. Color means a colored image."
-msgstr ""
-"Escolha um método para a interpretação da imagem.\n"
-"P/B significa uma imagem em preto e branco. Cor significa uma imagem "
-"colorida."
-
-#: flatcamTools/ToolImage.py:92 flatcamTools/ToolImage.py:107
-#: flatcamTools/ToolImage.py:120 flatcamTools/ToolImage.py:133
-msgid "Mask value"
-msgstr "Valor da máscara"
-
-#: flatcamTools/ToolImage.py:94
-msgid ""
-"Mask for monochrome image.\n"
-"Takes values between [0 ... 255].\n"
-"Decides the level of details to include\n"
-"in the resulting geometry.\n"
-"0 means no detail and 255 means everything \n"
-"(which is totally black)."
-msgstr ""
-"Máscara para imagem monocromática.\n"
-"Valores entre [0 ... 255].\n"
-"Define o nível de detalhes para incluir\n"
-"na geometria resultante.\n"
-"0 significa nenhum detalhe e 255 significa tudo\n"
-"(que é totalmente preto)."
-
-#: flatcamTools/ToolImage.py:109
-msgid ""
-"Mask for RED color.\n"
-"Takes values between [0 ... 255].\n"
-"Decides the level of details to include\n"
-"in the resulting geometry."
-msgstr ""
-"Máscara para a cor VERMELHA.\n"
-"Valores entre [0 ... 255].\n"
-"Define o nível de detalhes para incluir\n"
-"na geometria resultante."
-
-#: flatcamTools/ToolImage.py:122
-msgid ""
-"Mask for GREEN color.\n"
-"Takes values between [0 ... 255].\n"
-"Decides the level of details to include\n"
-"in the resulting geometry."
-msgstr ""
-"Máscara para a cor VERDE.\n"
-"Valores entre [0 ... 255].\n"
-"Define o nível de detalhes para incluir\n"
-"na geometria resultante."
-
-#: flatcamTools/ToolImage.py:135
-msgid ""
-"Mask for BLUE color.\n"
-"Takes values between [0 ... 255].\n"
-"Decides the level of details to include\n"
-"in the resulting geometry."
-msgstr ""
-"Máscara para a cor AZUL.\n"
-"Valores entre [0 ... 255].\n"
-"Define o nível de detalhes para incluir\n"
-"na geometria resultante."
-
-#: flatcamTools/ToolImage.py:143
-msgid "Import image"
-msgstr "Importar imagem"
-
-#: flatcamTools/ToolImage.py:145
-msgid "Open a image of raster type and then import it in FlatCAM."
-msgstr "Abre uma imagem do tipo raster e importe-a no FlatCAM."
-
-#: flatcamTools/ToolImage.py:182
-msgid "Image Tool"
-msgstr "Ferramenta de Imagem"
-
-#: flatcamTools/ToolImage.py:234 flatcamTools/ToolImage.py:237
-msgid "Import IMAGE"
-msgstr "Importar IMAGEM"
-
-#: flatcamTools/ToolImage.py:285
-msgid "Importing Image"
-msgstr "Importando Imagem"
-
-#: flatcamTools/ToolInvertGerber.py:74
-msgid "Gerber object that will be inverted."
-msgstr "Objeto Gerber que será invertido."
-
-#: flatcamTools/ToolInvertGerber.py:83
-msgid "Parameters for this tool"
-msgstr "Parâmetros usados para esta ferramenta"
-
-#: flatcamTools/ToolInvertGerber.py:123
-msgid "Invert Gerber"
-msgstr "Inverter Gerber"
-
-#: flatcamTools/ToolInvertGerber.py:125
-msgid ""
-"Will invert the Gerber object: areas that have copper\n"
-"will be empty of copper and previous empty area will be\n"
-"filled with copper."
-msgstr ""
-"Inverter o objeto Gerber: áreas que possuem cobre\n"
-"ficarão vazias de cobre e a área vazia anterior será\n"
-"preenchida com cobre."
-
-#: flatcamTools/ToolInvertGerber.py:184
-msgid "Invert Tool"
-msgstr "Ferramenta Inverter"
-
-#: flatcamTools/ToolMove.py:102
-msgid "MOVE: Click on the Start point ..."
-msgstr "MOVER: Clique no ponto inicial ..."
-
-#: flatcamTools/ToolMove.py:113
-msgid "Cancelled. No object(s) to move."
-msgstr "Cancelado. Nenhum objeto para mover."
-
-#: flatcamTools/ToolMove.py:140
-msgid "MOVE: Click on the Destination point ..."
-msgstr "MOVER: Clique no ponto de destino ..."
-
-#: flatcamTools/ToolMove.py:163
-msgid "Moving..."
-msgstr "Movendo ..."
-
-#: flatcamTools/ToolMove.py:166
-msgid "No object(s) selected."
-msgstr "Nenhum objeto selecionado."
-
-#: flatcamTools/ToolMove.py:221
-msgid "Error when mouse left click."
-msgstr "Erro ao clicar no botão esquerdo do mouse."
-
-#: flatcamTools/ToolNCC.py:42
-msgid "Non-Copper Clearing"
-msgstr "Área Sem Cobre (NCC)"
-
-#: flatcamTools/ToolNCC.py:88
-msgid ""
-"Specify the type of object to be cleared of excess copper.\n"
-"It can be of type: Gerber or Geometry.\n"
-"What is selected here will dictate the kind\n"
-"of objects that will populate the 'Object' combobox."
-msgstr ""
-"Especifique o tipo de objeto a ser limpo do excesso de cobre.\n"
-"Pode ser do tipo: Gerber ou Geometria.\n"
-"O tipo selecionado aqui ditará o tipo\n"
-"de objetos da caixa de combinação 'Objeto'."
-
-#: flatcamTools/ToolNCC.py:110
-msgid "Object to be cleared of excess copper."
-msgstr "Objeto a retirar o excesso de cobre."
-
-#: flatcamTools/ToolNCC.py:122
-msgid ""
-"Tools pool from which the algorithm\n"
-"will pick the ones used for copper clearing."
-msgstr ""
-"Conjunto de ferramentas do qual o algoritmo\n"
-"escolherá para usar na retirada de cobre."
-
-#: flatcamTools/ToolNCC.py:138
-msgid ""
-"This is the Tool Number.\n"
-"Non copper clearing will start with the tool with the biggest \n"
-"diameter, continuing until there are no more tools.\n"
-"Only tools that create NCC clearing geometry will still be present\n"
-"in the resulting geometry. This is because with some tools\n"
-"this function will not be able to create painting geometry."
-msgstr ""
-"Este é o Número da Ferramenta.\n"
-"A retirada de cobre (NCC) começará com a ferramenta de maior diâmetro,\n"
-"continuando até que não haja mais ferramentas. Somente ferramentas\n"
-"que criam a geometria de NCC estarão presentes na geometria\n"
-"resultante. Isso ocorre porque com algumas ferramentas esta função\n"
-"não será capaz de criar geometria de pintura."
-
-#: flatcamTools/ToolNCC.py:146
-msgid ""
-"Tool Diameter. It's value (in current FlatCAM units)\n"
-"is the cut width into the material."
-msgstr ""
-"Diâmetro da ferramenta. É a largura do corte no material.\n"
-"(nas unidades atuais do FlatCAM)"
-
-#: flatcamTools/ToolNCC.py:150
-msgid ""
-"The Tool Type (TT) can be:\n"
-"- Circular with 1 ... 4 teeth -> it is informative only. Being circular,\n"
-"the cut width in material is exactly the tool diameter.\n"
-"- Ball -> informative only and make reference to the Ball type endmill.\n"
-"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI "
-"form\n"
-"and enable two additional UI form fields in the resulting geometry: V-Tip "
-"Dia and\n"
-"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter "
-"such\n"
-"as the cut width into material will be equal with the value in the Tool "
-"Diameter\n"
-"column of this table.\n"
-"Choosing the 'V-Shape' Tool Type automatically will select the Operation "
-"Type\n"
-"in the resulting geometry as Isolation."
-msgstr ""
-"O Tipo de Ferramenta (TF) pode ser:\n"
-"- Circular com 1 ... 4 dentes -> é apenas informativo. Como é circular,\n"
-"a largura do corte é igual ao diâmetro da ferramenta.\n"
-"- Bola -> apenas informativo e faz referência a uma fresa do tipo bola.\n"
-"- Forma em V -> o parâmetro corte Z será desativado no formulário e serão "
-"habilitados\n"
-"dois campos adicionais: Diâmetro da Ponta-V e Ângulo da Ponta-V.\n"
-"Ajustando esses dois parâmetros irá alterar o parâmetro Corte Z como a "
-"largura de corte\n"
-"no material, será igual ao valor na coluna Diâmetro da Ferramenta desta "
-"tabela.\n"
-"Escolhendo o tipo \"Forma em V\" automaticamente selecionará o Tipo de "
-"Operação Isolação."
-
-#: flatcamTools/ToolNCC.py:296 flatcamTools/ToolPaint.py:279
-msgid ""
-"Add a new tool to the Tool Table\n"
-"with the diameter specified above."
-msgstr ""
-"Adicione uma nova ferramenta à Tabela de Ferramentas\n"
-"com o diâmetro especificado."
-
-#: flatcamTools/ToolNCC.py:318 flatcamTools/ToolPaint.py:301
-#: flatcamTools/ToolSolderPaste.py:130
-msgid ""
-"Delete a selection of tools in the Tool Table\n"
-"by first selecting a row(s) in the Tool Table."
-msgstr ""
-"Apague uma seleção de ferramentas na Tabela de Ferramentas selecionando "
-"primeiro a(s) linha(s) na Tabela de Ferramentas."
-
-#: flatcamTools/ToolNCC.py:554
-msgid ""
-"The type of FlatCAM object to be used as non copper clearing reference.\n"
-"It can be Gerber, Excellon or Geometry."
-msgstr ""
-"O tipo de objeto FlatCAM a ser usado como referência para retirada de "
-"cobre.\n"
-"Pode ser Gerber, Excellon ou Geometria."
-
-#: flatcamTools/ToolNCC.py:597 flatcamTools/ToolPaint.py:537
-msgid "Generate Geometry"
-msgstr "Gerar Geometria"
-
-#: flatcamTools/ToolNCC.py:1425 flatcamTools/ToolPaint.py:1184
-#: flatcamTools/ToolSolderPaste.py:888
-msgid "Please enter a tool diameter to add, in Float format."
-msgstr "Insira um diâmetro de ferramenta para adicionar, no formato Flutuante."
-
-#: flatcamTools/ToolNCC.py:1456 flatcamTools/ToolNCC.py:4013
-#: flatcamTools/ToolPaint.py:1208 flatcamTools/ToolPaint.py:3603
-#: flatcamTools/ToolSolderPaste.py:917
-msgid "Cancelled. Tool already in Tool Table."
-msgstr "Cancelada. Ferramenta já está na Tabela de Ferramentas."
-
-#: flatcamTools/ToolNCC.py:1463 flatcamTools/ToolNCC.py:4030
-#: flatcamTools/ToolPaint.py:1213 flatcamTools/ToolPaint.py:3620
-msgid "New tool added to Tool Table."
-msgstr "Nova ferramenta adicionada à Tabela de Ferramentas."
-
-#: flatcamTools/ToolNCC.py:1507 flatcamTools/ToolPaint.py:1257
-msgid "Tool from Tool Table was edited."
-msgstr "A ferramenta da Tabela de Ferramentas foi editada."
-
-#: flatcamTools/ToolNCC.py:1519 flatcamTools/ToolPaint.py:1269
-#: flatcamTools/ToolSolderPaste.py:978
-msgid "Cancelled. New diameter value is already in the Tool Table."
-msgstr "Cancelado. O novo valor de diâmetro já está na tabela de ferramentas."
-
-#: flatcamTools/ToolNCC.py:1571 flatcamTools/ToolPaint.py:1367
-msgid "Delete failed. Select a tool to delete."
-msgstr "Exclusão falhou. Selecione uma ferramenta para excluir."
-
-#: flatcamTools/ToolNCC.py:1577 flatcamTools/ToolPaint.py:1373
-msgid "Tool(s) deleted from Tool Table."
-msgstr "Ferramenta(s) excluída(s) da Tabela de Ferramentas."
-
-#: flatcamTools/ToolNCC.py:1619
-msgid "Wrong Tool Dia value format entered, use a number."
-msgstr "Valor errado para o diâmetro. Use um número."
-
-#: flatcamTools/ToolNCC.py:1628 flatcamTools/ToolPaint.py:1424
-msgid "No selected tools in Tool Table."
-msgstr "Nenhuma ferramenta selecionada na Tabela."
-
-#: flatcamTools/ToolNCC.py:1704 flatcamTools/ToolPaint.py:1600
-msgid "Click the end point of the paint area."
-msgstr "Clique no ponto final da área."
-
-#: flatcamTools/ToolNCC.py:1976 flatcamTools/ToolNCC.py:2964
-msgid "NCC Tool. Preparing non-copper polygons."
-msgstr "Ferramenta NCC. Preparando polígonos."
-
-#: flatcamTools/ToolNCC.py:2035 flatcamTools/ToolNCC.py:3092
-msgid "NCC Tool. Calculate 'empty' area."
-msgstr "Ferramenta NCC. Cálculo de áreas 'vazias'."
-
-#: flatcamTools/ToolNCC.py:2054 flatcamTools/ToolNCC.py:2160
-#: flatcamTools/ToolNCC.py:2174 flatcamTools/ToolNCC.py:3105
-#: flatcamTools/ToolNCC.py:3210 flatcamTools/ToolNCC.py:3225
-#: flatcamTools/ToolNCC.py:3491 flatcamTools/ToolNCC.py:3592
-#: flatcamTools/ToolNCC.py:3607
-msgid "Buffering finished"
-msgstr "Criar Buffer concluído"
-
-#: flatcamTools/ToolNCC.py:2062 flatcamTools/ToolNCC.py:2181
-#: flatcamTools/ToolNCC.py:3113 flatcamTools/ToolNCC.py:3232
-#: flatcamTools/ToolNCC.py:3498 flatcamTools/ToolNCC.py:3614
-msgid "Could not get the extent of the area to be non copper cleared."
-msgstr "Não foi possível obter a extensão da área para retirada de cobre."
-
-#: flatcamTools/ToolNCC.py:2089 flatcamTools/ToolNCC.py:2167
-#: flatcamTools/ToolNCC.py:3140 flatcamTools/ToolNCC.py:3217
-#: flatcamTools/ToolNCC.py:3518 flatcamTools/ToolNCC.py:3599
-msgid ""
-"Isolation geometry is broken. Margin is less than isolation tool diameter."
-msgstr ""
-"A geometria de isolação está quebrada. A margem é menor que o diâmetro da "
-"ferramenta de isolação."
-
-#: flatcamTools/ToolNCC.py:2184 flatcamTools/ToolNCC.py:3236
-#: flatcamTools/ToolNCC.py:3617
-msgid "The selected object is not suitable for copper clearing."
-msgstr "O objeto selecionado não é adequado para retirada de cobre."
-
-#: flatcamTools/ToolNCC.py:2191 flatcamTools/ToolNCC.py:3243
-msgid "NCC Tool. Finished calculation of 'empty' area."
-msgstr "Ferramenta NCC. Cálculo de área 'vazia' concluído."
-
-#: flatcamTools/ToolNCC.py:2222 flatcamTools/ToolNCC.py:2224
-#: flatcamTools/ToolNCC.py:2916 flatcamTools/ToolNCC.py:2918
-msgid "Non-Copper clearing ..."
-msgstr "Retirando cobre da área..."
-
-#: flatcamTools/ToolNCC.py:2278 flatcamTools/ToolNCC.py:3060
-msgid ""
-"NCC Tool. Finished non-copper polygons. Normal copper clearing task started."
-msgstr ""
-"Ferramenta NCC. Polígonos concluídos. Tarefa de retirada de cobre iniciada."
-
-#: flatcamTools/ToolNCC.py:2312 flatcamTools/ToolNCC.py:2592
-msgid "NCC Tool failed creating bounding box."
-msgstr "A Ferramenta NCC falhou ao criar a caixa delimitadora."
-
-#: flatcamTools/ToolNCC.py:2326 flatcamTools/ToolNCC.py:2609
-#: flatcamTools/ToolNCC.py:3256 flatcamTools/ToolNCC.py:3642
-msgid "NCC Tool clearing with tool diameter"
-msgstr "NCC. Ferramenta com Diâmetro"
-
-#: flatcamTools/ToolNCC.py:2326 flatcamTools/ToolNCC.py:2609
-#: flatcamTools/ToolNCC.py:3256 flatcamTools/ToolNCC.py:3642
-msgid "started."
-msgstr "iniciada."
-
-#: flatcamTools/ToolNCC.py:2518 flatcamTools/ToolNCC.py:3417
-msgid ""
-"There is no NCC 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 ""
-"Não há geometria de retirada de cobre no arquivo.\n"
-"Geralmente significa que o diâmetro da ferramenta é muito grande para a "
-"geometria pintada.\n"
-"Altere os parâmetros de pintura e tente novamente."
-
-#: flatcamTools/ToolNCC.py:2527 flatcamTools/ToolNCC.py:3426
-msgid "NCC Tool clear all done."
-msgstr "Retirada de cobre concluída."
-
-#: flatcamTools/ToolNCC.py:2530 flatcamTools/ToolNCC.py:3429
-msgid "NCC Tool clear all done but the copper features isolation is broken for"
-msgstr "Retirada de cobre concluída, mas a isolação está quebrada por"
-
-#: flatcamTools/ToolNCC.py:2532 flatcamTools/ToolNCC.py:2817
-#: flatcamTools/ToolNCC.py:3431 flatcamTools/ToolNCC.py:3814
-msgid "tools"
-msgstr "ferramentas"
-
-#: flatcamTools/ToolNCC.py:2813 flatcamTools/ToolNCC.py:3810
-msgid "NCC Tool Rest Machining clear all done."
-msgstr "Retirada de cobre por usinagem de descanso concluída."
-
-#: flatcamTools/ToolNCC.py:2816 flatcamTools/ToolNCC.py:3813
-msgid ""
-"NCC Tool Rest Machining clear all done but the copper features isolation is "
-"broken for"
-msgstr ""
-"Retirada de cobre por usinagem de descanso concluída, mas a isolação está "
-"quebrada por"
-
-#: flatcamTools/ToolNCC.py:2928
-msgid "NCC Tool started. Reading parameters."
-msgstr "Ferramenta NCC iniciada. Lendo parâmetros."
-
-#: flatcamTools/ToolNCC.py:3906
-msgid ""
-"Try to use the Buffering Type = Full in Preferences -> Gerber General. "
-"Reload the Gerber file after this change."
-msgstr ""
-"Tente usar o Tipo de Buffer = Completo em Preferências -> Gerber Geral."
-"Recarregue o arquivo Gerber após esta alteração."
-
-#: flatcamTools/ToolOptimal.py:79
-msgid "Number of decimals kept for found distances."
-msgstr "Número de casas decimais mantido para as distâncias encontradas."
-
-#: flatcamTools/ToolOptimal.py:87
-msgid "Minimum distance"
-msgstr "Distância mínima"
-
-#: flatcamTools/ToolOptimal.py:88
-msgid "Display minimum distance between copper features."
-msgstr "Mostra a distância mínima entre elementos de cobre."
-
-#: flatcamTools/ToolOptimal.py:92
-msgid "Determined"
-msgstr "Determinado"
-
-#: flatcamTools/ToolOptimal.py:106
-msgid "Occurring"
-msgstr "Ocorrendo"
-
-#: flatcamTools/ToolOptimal.py:107
-msgid "How many times this minimum is found."
-msgstr "Quantas vezes o mínimo foi encontrado."
-
-#: flatcamTools/ToolOptimal.py:113
-msgid "Minimum points coordinates"
-msgstr "Coordenadas da distância mínima"
-
-#: flatcamTools/ToolOptimal.py:114 flatcamTools/ToolOptimal.py:120
-msgid "Coordinates for points where minimum distance was found."
-msgstr "Coordenadas dos pontos onde a distância mínima foi encontrada."
-
-#: flatcamTools/ToolOptimal.py:133 flatcamTools/ToolOptimal.py:209
-msgid "Jump to selected position"
-msgstr "Ir para a posição selecionada"
-
-#: flatcamTools/ToolOptimal.py:135 flatcamTools/ToolOptimal.py:211
-msgid ""
-"Select a position in the Locations text box and then\n"
-"click this button."
-msgstr ""
-"Selecione uma posição na caixa de texto Locais e, em seguida,\n"
-"clique neste botão."
-
-#: flatcamTools/ToolOptimal.py:143
-msgid "Other distances"
-msgstr "Outras distâncias"
-
-#: flatcamTools/ToolOptimal.py:144
-msgid ""
-"Will display other distances in the Gerber file ordered from\n"
-"the minimum to the maximum, not including the absolute minimum."
-msgstr ""
-"Exibe outras distâncias no arquivo Gerber ordenadas do\n"
-"mínimo ao máximo, sem incluir o mínimo absoluto."
-
-#: flatcamTools/ToolOptimal.py:149
-msgid "Other distances points coordinates"
-msgstr "Coordenadas dos pontos das outras distâncias"
-
-#: flatcamTools/ToolOptimal.py:150 flatcamTools/ToolOptimal.py:164
-#: flatcamTools/ToolOptimal.py:171 flatcamTools/ToolOptimal.py:188
-#: flatcamTools/ToolOptimal.py:195
-msgid ""
-"Other distances and the coordinates for points\n"
-"where the distance was found."
-msgstr ""
-"Outras distâncias e coordenadas dos pontos\n"
-"onde a distância foi encontrada."
-
-#: flatcamTools/ToolOptimal.py:163
-msgid "Gerber distances"
-msgstr "Distâncias Gerber"
-
-#: flatcamTools/ToolOptimal.py:187
-msgid "Points coordinates"
-msgstr "Coordenadas dos pontos"
-
-#: flatcamTools/ToolOptimal.py:219
-msgid "Find Minimum"
-msgstr "Encontrar o Mínimo"
-
-#: flatcamTools/ToolOptimal.py:221
-msgid ""
-"Calculate the minimum distance between copper features,\n"
-"this will allow the determination of the right tool to\n"
-"use for isolation or copper clearing."
-msgstr ""
-"Calcula a distância mínima entre os recursos de cobre.\n"
-"Isso permite a determinação da ferramenta certa para\n"
-"usar na isolação ou remoção de cobre."
-
-#: flatcamTools/ToolOptimal.py:346
-msgid "Only Gerber objects can be evaluated."
-msgstr "Apenas objetos Gerber podem ser usados."
-
-#: flatcamTools/ToolOptimal.py:352
-msgid ""
-"Optimal Tool. Started to search for the minimum distance between copper "
-"features."
-msgstr ""
-"Ferramenta Ideal. Começou a procurar a distância mínima entre os recursos de "
-"cobre."
-
-#: flatcamTools/ToolOptimal.py:362
-msgid "Optimal Tool. Parsing geometry for aperture"
-msgstr "Ferramenta Ideal. Analisando a geometria para abertura"
-
-#: flatcamTools/ToolOptimal.py:373
-msgid "Optimal Tool. Creating a buffer for the object geometry."
-msgstr "Ferramenta Ideal. Criando um buffer para objeto geometria."
-
-#: flatcamTools/ToolOptimal.py:383
-msgid ""
-"The Gerber object has one Polygon as geometry.\n"
-"There are no distances between geometry elements to be found."
-msgstr ""
-"O objeto Gerber possui um polígono como geometria.\n"
-"Não há distâncias entre os elementos geométricos a serem encontrados."
-
-#: flatcamTools/ToolOptimal.py:388
-msgid ""
-"Optimal Tool. Finding the distances between each two elements. Iterations"
-msgstr ""
-"Ferramenta Ideal. Encontrando as distâncias entre cada dois elementos. "
-"Iterações"
-
-#: flatcamTools/ToolOptimal.py:423
-msgid "Optimal Tool. Finding the minimum distance."
-msgstr "Ferramenta Ideal. Encontrando a distância mínima."
-
-#: flatcamTools/ToolOptimal.py:439
-msgid "Optimal Tool. Finished successfully."
-msgstr "Ferramenta Ideal. Finalizado com sucesso."
-
-#: flatcamTools/ToolPDF.py:157 flatcamTools/ToolPDF.py:161
-msgid "Open PDF"
-msgstr "Abrir PDF"
-
-#: flatcamTools/ToolPDF.py:164
-msgid "Open PDF cancelled"
-msgstr "Abrir PDF cancelado"
-
-#: flatcamTools/ToolPDF.py:195
-msgid "Parsing PDF file ..."
-msgstr "Analisando arquivo PDF ..."
-
-#: flatcamTools/ToolPDF.py:278 flatcamTools/ToolPDF.py:353
-#, python-format
-msgid "Rendering PDF layer #%d ..."
-msgstr "Renderizando camada PDF #%d ..."
-
-#: flatcamTools/ToolPDF.py:283 flatcamTools/ToolPDF.py:358
-msgid "Open PDF file failed."
-msgstr "Falha ao abrir arquivo PDF."
-
-#: flatcamTools/ToolPDF.py:289 flatcamTools/ToolPDF.py:363
-msgid "Rendered"
-msgstr "Processado"
-
-#: flatcamTools/ToolPaint.py:82
-msgid ""
-"Specify the type of object to be painted.\n"
-"It can be of type: Gerber or Geometry.\n"
-"What is selected here will dictate the kind\n"
-"of objects that will populate the 'Object' combobox."
-msgstr ""
-"Especifique o tipo de objeto a ser pintado.\n"
-"Pode ser do tipo: Gerber ou Geometry.\n"
-"O que é selecionado aqui irá ditar o tipo\n"
-"de objetos que preencherão a caixa de combinação 'Objeto'."
-
-#: flatcamTools/ToolPaint.py:104
-msgid "Object to be painted."
-msgstr "Objeto a ser pintado."
-
-#: flatcamTools/ToolPaint.py:117
-msgid ""
-"Tools pool from which the algorithm\n"
-"will pick the ones used for painting."
-msgstr ""
-"Conjunto de ferramentas do qual o algoritmo\n"
-"escolherá para a pintura."
-
-#: flatcamTools/ToolPaint.py:134
-msgid ""
-"This is the Tool Number.\n"
-"Painting will start with the tool with the biggest diameter,\n"
-"continuing until there are no more tools.\n"
-"Only tools that create painting geometry will still be present\n"
-"in the resulting geometry. This is because with some tools\n"
-"this function will not be able to create painting geometry."
-msgstr ""
-"Este é o Número da Ferramenta.\n"
-"A pintura começará com a ferramenta com o maior diâmetro,\n"
-"continuando até que não haja mais ferramentas.\n"
-"As únicas ferramentas que criam a geometria da pintura ainda estarão "
-"presentes\n"
-"na geometria resultante. Isso ocorre porque com algumas ferramentas\n"
-"não são capazes de criar geometria de pintura nesta função."
-
-#: flatcamTools/ToolPaint.py:146
-msgid ""
-"The Tool Type (TT) can be:\n"
-"- Circular -> it is informative only. Being circular,\n"
-"the cut width in material is exactly the tool diameter.\n"
-"- Ball -> informative only and make reference to the Ball type endmill.\n"
-"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI "
-"form\n"
-"and enable two additional UI form fields in the resulting geometry: V-Tip "
-"Dia and\n"
-"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter "
-"such\n"
-"as the cut width into material will be equal with the value in the Tool "
-"Diameter\n"
-"column of this table.\n"
-"Choosing the 'V-Shape' Tool Type automatically will select the Operation "
-"Type\n"
-"in the resulting geometry as Isolation."
-msgstr ""
-"O Tipo de Ferramenta (TF) pode ser:\n"
-"- Circular com 1 ... 4 dentes -> é apenas informativo. Como é circular,\n"
-"a largura do corte é igual ao diâmetro da ferramenta.\n"
-"- Bola -> apenas informativo e faz referência a uma fresa do tipo bola.\n"
-"- Forma em V -> o parâmetro corte Z será desativado no formulário e serão\n"
-"habilitados dois campos adicionais: Diâmetro da Ponta-V e Ângulo da Ponta-"
-"V.\n"
-"Ajustando esses dois parâmetros irá alterar o parâmetro Corte Z como a "
-"largura\n"
-"de corte no material, será igual ao valor na coluna Diâmetro da Ferramenta "
-"desta tabela.\n"
-"Escolhendo o tipo \"Forma em V\" automaticamente selecionará o Tipo de "
-"Operação Isolação."
-
-#: flatcamTools/ToolPaint.py:498
-msgid ""
-"The type of FlatCAM object to be used as paint reference.\n"
-"It can be Gerber, Excellon or Geometry."
-msgstr ""
-"O tipo de objeto FlatCAM a ser usado como referência de pintura.\n"
-"Pode ser Gerber, Excellon ou Geometria."
-
-#: flatcamTools/ToolPaint.py:539
-msgid ""
-"- 'Area Selection' - left mouse click to start selection of the area to be "
-"painted.\n"
-"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple "
-"areas.\n"
-"- 'All Polygons' - the Paint will start after click.\n"
-"- 'Reference Object' - will do non copper clearing within the area\n"
-"specified by another object."
-msgstr ""
-"- 'Seleção de Área' - clique com o botão esquerdo do mouse para iniciar a "
-"seleção da área a ser pintada.\n"
-"Manter uma tecla modificadora pressionada (CTRL ou SHIFT) permite adicionar "
-"várias áreas.\n"
-"- 'Todos os polígonos' - a Pintura será iniciada após o clique.\n"
-"- 'Objeto de Referência' - pintará dentro da área do objeto especificado."
-
-#: flatcamTools/ToolPaint.py:1393
-#, python-format
-msgid "Could not retrieve object: %s"
-msgstr "Não foi possível recuperar o objeto: %s"
-
-#: flatcamTools/ToolPaint.py:1403
-msgid "Can't do Paint on MultiGeo geometries"
-msgstr "Não é possível pintar geometrias MultiGeo"
-
-#: flatcamTools/ToolPaint.py:1433
-msgid "Click on a polygon to paint it."
-msgstr "Clique em um polígono para pintá-lo."
-
-#: flatcamTools/ToolPaint.py:1453
-msgid "Click the start point of the paint area."
-msgstr "Clique no ponto inicial da área de pintura."
-
-#: flatcamTools/ToolPaint.py:1518
-msgid "Click to add next polygon or right click to start painting."
-msgstr ""
-"Clique para adicionar o próximo polígono ou clique com o botão direito do "
-"mouse para começar a pintar."
-
-#: flatcamTools/ToolPaint.py:1531
-msgid "Click to add/remove next polygon or right click to start painting."
-msgstr ""
-"Clique para adicionar/remover o próximo polígono ou clique com o botão "
-"direito do mouse para começar a pintar."
-
-#: flatcamTools/ToolPaint.py:2029
-msgid "Painting polygon with method: lines."
-msgstr "Pintando o polígono com método: linhas."
-
-#: flatcamTools/ToolPaint.py:2041
-msgid "Failed. Painting polygon with method: seed."
-msgstr "Falhou. Pintando o polígono com método: semente."
-
-#: flatcamTools/ToolPaint.py:2052
-msgid "Failed. Painting polygon with method: standard."
-msgstr "Falhou. Pintando o polígono com método: padrão."
-
-#: flatcamTools/ToolPaint.py:2068
-msgid "Geometry could not be painted completely"
-msgstr "A geometria não pode ser pintada completamente"
-
-#: flatcamTools/ToolPaint.py:2097 flatcamTools/ToolPaint.py:2100
-#: flatcamTools/ToolPaint.py:2108 flatcamTools/ToolPaint.py:2411
-#: flatcamTools/ToolPaint.py:2414 flatcamTools/ToolPaint.py:2422
-#: flatcamTools/ToolPaint.py:2910 flatcamTools/ToolPaint.py:2913
-#: flatcamTools/ToolPaint.py:2919
-msgid "Paint Tool."
-msgstr "Ferramenta de Pintura."
-
-#: flatcamTools/ToolPaint.py:2097 flatcamTools/ToolPaint.py:2100
-#: flatcamTools/ToolPaint.py:2108
-msgid "Normal painting polygon task started."
-msgstr "Tarefa normal de pintura de polígono iniciada."
-
-#: flatcamTools/ToolPaint.py:2098 flatcamTools/ToolPaint.py:2412
-#: flatcamTools/ToolPaint.py:2911
-msgid "Buffering geometry..."
-msgstr "Fazendo buffer de polígono..."
-
-#: flatcamTools/ToolPaint.py:2120 flatcamTools/ToolPaint.py:2429
-#: flatcamTools/ToolPaint.py:2927
-msgid "No polygon found."
-msgstr "Nenhum polígono encontrado."
-
-#: flatcamTools/ToolPaint.py:2150
-msgid "Painting polygon..."
-msgstr "Pintando o polígono..."
-
-#: flatcamTools/ToolPaint.py:2160 flatcamTools/ToolPaint.py:2475
-#: flatcamTools/ToolPaint.py:2665 flatcamTools/ToolPaint.py:2973
-#: flatcamTools/ToolPaint.py:3152
-msgid "Painting with tool diameter = "
-msgstr "Pintura com diâmetro = "
-
-#: flatcamTools/ToolPaint.py:2161 flatcamTools/ToolPaint.py:2476
-#: flatcamTools/ToolPaint.py:2666 flatcamTools/ToolPaint.py:2974
-#: flatcamTools/ToolPaint.py:3153
-msgid "started"
-msgstr "iniciada"
-
-#: flatcamTools/ToolPaint.py:2186 flatcamTools/ToolPaint.py:2502
-#: flatcamTools/ToolPaint.py:2692 flatcamTools/ToolPaint.py:3000
-#: flatcamTools/ToolPaint.py:3179
-msgid "Margin parameter too big. Tool is not used"
-msgstr "Parâmetro de margem muito grande. A ferramenta não é usada"
-
-#: flatcamTools/ToolPaint.py:2244 flatcamTools/ToolPaint.py:2571
-#: flatcamTools/ToolPaint.py:2749 flatcamTools/ToolPaint.py:3063
-#: flatcamTools/ToolPaint.py:3241
-msgid ""
-"Could not do Paint. Try a different combination of parameters. Or a "
-"different strategy of paint"
-msgstr ""
-"Não foi possível pintar. Tente uma combinação diferente de parâmetros ou uma "
-"estratégia diferente de pintura"
-
-#: flatcamTools/ToolPaint.py:2301 flatcamTools/ToolPaint.py:2637
-#: flatcamTools/ToolPaint.py:2806 flatcamTools/ToolPaint.py:3124
-#: flatcamTools/ToolPaint.py:3303
-msgid ""
-"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 ""
-"Não há geometria de pintura no arquivo.\n"
-"Geralmente significa que o diâmetro da ferramenta é muito grande para a "
-"geometria pintada.\n"
-"Altere os parâmetros de pintura e tente novamente."
-
-#: flatcamTools/ToolPaint.py:2324
-msgid "Paint Single failed."
-msgstr "Pintura falhou."
-
-#: flatcamTools/ToolPaint.py:2330
-msgid "Paint Single Done."
-msgstr "Pintura concluída."
-
-#: flatcamTools/ToolPaint.py:2332 flatcamTools/ToolPaint.py:2842
-#: flatcamTools/ToolPaint.py:3339
-msgid "Polygon Paint started ..."
-msgstr "Pintura de polígonos iniciada ..."
-
-#: flatcamTools/ToolPaint.py:2411 flatcamTools/ToolPaint.py:2414
-#: flatcamTools/ToolPaint.py:2422
-msgid "Paint all polygons task started."
-msgstr "Tarefa pintar todos os polígonos iniciada."
-
-#: flatcamTools/ToolPaint.py:2453 flatcamTools/ToolPaint.py:2951
-msgid "Painting polygons..."
-msgstr "Pintando políginos..."
-
-#: flatcamTools/ToolPaint.py:2646
-msgid "Paint All Done."
-msgstr "Pintura concluída."
-
-#: flatcamTools/ToolPaint.py:2815 flatcamTools/ToolPaint.py:3312
-msgid "Paint All with Rest-Machining done."
-msgstr "Pintura total com usinagem de descanso concluída."
-
-#: flatcamTools/ToolPaint.py:2834
-msgid "Paint All failed."
-msgstr "Pintura falhou."
-
-#: flatcamTools/ToolPaint.py:2840
-msgid "Paint Poly All Done."
-msgstr "Pinte Todos os Polígonos feitos."
-
-#: flatcamTools/ToolPaint.py:2910 flatcamTools/ToolPaint.py:2913
-#: flatcamTools/ToolPaint.py:2919
-msgid "Painting area task started."
-msgstr "Iniciada a pintura de área."
-
-#: flatcamTools/ToolPaint.py:3133
-msgid "Paint Area Done."
-msgstr "Pintura de Área concluída."
-
-#: flatcamTools/ToolPaint.py:3331
-msgid "Paint Area failed."
-msgstr "Pintura de Área falhou."
-
-#: flatcamTools/ToolPaint.py:3337
-msgid "Paint Poly Area Done."
-msgstr "Pintura de Área concluída."
-
-#: flatcamTools/ToolPanelize.py:34
-msgid "Panelize PCB"
-msgstr "Criar Painel com PCB"
-
-#: flatcamTools/ToolPanelize.py:56
-msgid ""
-"Specify the type of object to be panelized\n"
-"It can be of type: Gerber, Excellon or Geometry.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Object combobox."
-msgstr ""
-"Especifique o tipo de objeto para criar um painel\n"
-"Pode ser do tipo: Gerber, Excellon ou Geometria.\n"
-"A seleção aqui decide o tipo de objetos que estarão\n"
-"na Caixa de Objetos."
-
-#: flatcamTools/ToolPanelize.py:89
-msgid ""
-"Object to be panelized. This means that it will\n"
-"be duplicated in an array of rows and columns."
-msgstr ""
-"Objeto para criar painel. Isso significa\n"
-"que ele será duplicado em uma matriz de linhas e colunas."
-
-#: flatcamTools/ToolPanelize.py:102
-msgid "Penelization Reference"
-msgstr "Referência para Criação de Painel"
-
-#: flatcamTools/ToolPanelize.py:104
-msgid ""
-"Choose the reference for panelization:\n"
-"- Object = the bounding box of a different object\n"
-"- Bounding Box = the bounding box of the object to be panelized\n"
-"\n"
-"The reference is useful when doing panelization for more than one\n"
-"object. The spacings (really offsets) will be applied in reference\n"
-"to this reference object therefore maintaining the panelized\n"
-"objects in sync."
-msgstr ""
-"Escolha a referência para criação do painel:\n"
-"- Objeto = a caixa delimitadora de um objeto diferente\n"
-"- Caixa Delimitadora = a caixa delimitadora do objeto para criar o painel\n"
-"\n"
-"A referência é útil ao criar um painel para mais de um objeto.\n"
-"Os espaçamentos (deslocamentos) serão aplicados em referência\n"
-"a este objeto de referência, portanto, mantendo os objetos\n"
-"sincronizados no painel."
-
-#: flatcamTools/ToolPanelize.py:125
-msgid "Box Type"
-msgstr "Tipo de Caixa"
-
-#: flatcamTools/ToolPanelize.py:127
-msgid ""
-"Specify the type of object to be used as an container for\n"
-"panelization. It can be: Gerber or Geometry type.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Box Object combobox."
-msgstr ""
-"Especifique o tipo de objeto a ser usado como um contêiner para\n"
-"o painel criado. Pode ser: tipo Gerber ou Geometria.\n"
-"A seleção aqui decide o tipo de objetos que estarão na\n"
-"Caixa de Objetos."
-
-#: flatcamTools/ToolPanelize.py:141
-msgid ""
-"The actual object that is used as container for the\n"
-" selected object that is to be panelized."
-msgstr ""
-"O objeto usado como contêiner para o objeto\n"
-"selecionado para o qual será criado um painel."
-
-#: flatcamTools/ToolPanelize.py:147
-msgid "Panel Data"
-msgstr "Dados do Painel"
-
-#: flatcamTools/ToolPanelize.py:149
-msgid ""
-"This informations will shape the resulting panel.\n"
-"The number of rows and columns will set how many\n"
-"duplicates of the original geometry will be generated.\n"
-"\n"
-"The spacings will set the distance between any two\n"
-"elements of the panel array."
-msgstr ""
-"Essas informações moldarão o painel resultante.\n"
-"O número de linhas e colunas definirá quantas\n"
-"duplicatas da geometria original serão geradas.\n"
-"\n"
-"Os espaçamentos definirão a distância entre os\n"
-"elementos da matriz do painel."
-
-#: flatcamTools/ToolPanelize.py:208
-msgid ""
-"Choose the type of object for the panel object:\n"
-"- Geometry\n"
-"- Gerber"
-msgstr ""
-"Escolha o tipo de objeto para o objeto de painel:\n"
-"- Geometria\n"
-"- Gerber"
-
-#: flatcamTools/ToolPanelize.py:216
-msgid "Constrain panel within"
-msgstr "Restringir painel dentro de"
-
-#: flatcamTools/ToolPanelize.py:252
-msgid "Panelize Object"
-msgstr "Criar Painel"
-
-#: flatcamTools/ToolPanelize.py:254 flatcamTools/ToolRulesCheck.py:501
-msgid ""
-"Panelize the specified object around the specified box.\n"
-"In other words it creates multiple copies of the source object,\n"
-"arranged in a 2D array of rows and columns."
-msgstr ""
-"Cria um painel do objeto especificado ao redor da caixa especificada.\n"
-"Em outras palavras, ele cria várias cópias do objeto de origem,\n"
-"arranjado em uma matriz 2D de linhas e colunas."
-
-#: flatcamTools/ToolPanelize.py:322
-msgid "Panel. Tool"
-msgstr "Ferramenta de Painel"
-
-#: flatcamTools/ToolPanelize.py:457
-msgid "Columns or Rows are zero value. Change them to a positive integer."
-msgstr "Colunas ou Linhas com valor zero. Altere-os para um inteiro positivo."
-
-#: flatcamTools/ToolPanelize.py:494
-msgid "Generating panel ... "
-msgstr "Gerando painel … "
-
-#: flatcamTools/ToolPanelize.py:777
-msgid "Generating panel ... Adding the Gerber code."
-msgstr "Gerando painel ... Adicionando o código Gerber."
-
-#: flatcamTools/ToolPanelize.py:785
-msgid "Generating panel... Spawning copies"
-msgstr "Gerando painel ... Cópias geradas"
-
-#: flatcamTools/ToolPanelize.py:792
-msgid "Panel done..."
-msgstr "Painel criado..."
-
-#: flatcamTools/ToolPanelize.py:795
-#, python-brace-format
-msgid ""
-"{text} Too big for the constrain area. Final panel has {col} columns and "
-"{row} rows"
-msgstr ""
-"{text} Grande demais para a área restrita.. O painel final tem {col} colunas "
-"e {row} linhas"
-
-#: flatcamTools/ToolPanelize.py:804
-msgid "Panel created successfully."
-msgstr "Painel criado com sucesso."
-
-#: flatcamTools/ToolPcbWizard.py:31
-msgid "PcbWizard Import Tool"
-msgstr "Ferramenta de Importação PcbWizard"
-
-#: flatcamTools/ToolPcbWizard.py:40
-msgid "Import 2-file Excellon"
-msgstr "Importar Excellon 2-arquivos"
-
-#: flatcamTools/ToolPcbWizard.py:51
-msgid "Load files"
-msgstr "Carregar arquivos"
-
-#: flatcamTools/ToolPcbWizard.py:57
-msgid "Excellon file"
-msgstr "Arquivo Excellon"
-
-#: flatcamTools/ToolPcbWizard.py:59
-msgid ""
-"Load the Excellon file.\n"
-"Usually it has a .DRL extension"
-msgstr ""
-"Carrega o arquivo Excellon.\n"
-"Normalmente ele tem uma extensão .DRL"
-
-#: flatcamTools/ToolPcbWizard.py:65
-msgid "INF file"
-msgstr "Arquivo INF"
-
-#: flatcamTools/ToolPcbWizard.py:67
-msgid "Load the INF file."
-msgstr "Carrega o arquivo INF."
-
-#: flatcamTools/ToolPcbWizard.py:79
-msgid "Tool Number"
-msgstr "Número da Ferramenta"
-
-#: flatcamTools/ToolPcbWizard.py:81
-msgid "Tool diameter in file units."
-msgstr "Diâmetro da ferramenta em unidades de arquivo."
-
-#: flatcamTools/ToolPcbWizard.py:87
-msgid "Excellon format"
-msgstr "Formato Excellon"
-
-#: flatcamTools/ToolPcbWizard.py:95
-msgid "Int. digits"
-msgstr "Dígitos Int."
-
-#: flatcamTools/ToolPcbWizard.py:97
-msgid "The number of digits for the integral part of the coordinates."
-msgstr "O número de dígitos da parte inteira das coordenadas."
-
-#: flatcamTools/ToolPcbWizard.py:104
-msgid "Frac. digits"
-msgstr "Dígitos Frac."
-
-#: flatcamTools/ToolPcbWizard.py:106
-msgid "The number of digits for the fractional part of the coordinates."
-msgstr "O número de dígitos para a parte fracionária das coordenadas."
-
-#: flatcamTools/ToolPcbWizard.py:113
-msgid "No Suppression"
-msgstr "Sem supressão"
-
-#: flatcamTools/ToolPcbWizard.py:114
-msgid "Zeros supp."
-msgstr "Sup. Zeros"
-
-#: flatcamTools/ToolPcbWizard.py:116
-msgid ""
-"The type of zeros suppression used.\n"
-"Can be of type:\n"
-"- LZ = leading zeros are kept\n"
-"- TZ = trailing zeros are kept\n"
-"- No Suppression = no zero suppression"
-msgstr ""
-"O tipo de supressão de zeros usado.\n"
-"Pode ser do tipo:\n"
-"- LZ = zeros à esquerda são mantidos\n"
-"- TZ = zeros à direita são mantidos\n"
-"- Sem supressão = sem supressão de zeros"
-
-#: flatcamTools/ToolPcbWizard.py:129
-msgid ""
-"The type of units that the coordinates and tool\n"
-"diameters are using. Can be INCH or MM."
-msgstr ""
-"A unidade para as coordenadas e os diâmetros\n"
-"de ferramentas. Pode ser Polegada ou mm."
-
-#: flatcamTools/ToolPcbWizard.py:136
-msgid "Import Excellon"
-msgstr "Importar Excellon"
-
-#: flatcamTools/ToolPcbWizard.py:138
-msgid ""
-"Import in FlatCAM an Excellon file\n"
-"that store it's information's in 2 files.\n"
-"One usually has .DRL extension while\n"
-"the other has .INF extension."
-msgstr ""
-"Importa no FlatCAM um arquivo Excellon\n"
-"que armazena suas informações em 2 arquivos.\n"
-"Um geralmente possui extensão .DRL e o outro tem extensão .INF."
-
-#: flatcamTools/ToolPcbWizard.py:197
-msgid "PCBWizard Tool"
-msgstr "Ferramenta PCBWizard"
-
-#: flatcamTools/ToolPcbWizard.py:291 flatcamTools/ToolPcbWizard.py:295
-msgid "Load PcbWizard Excellon file"
-msgstr "Carregar o arquivo PCBWizard Excellon"
-
-#: flatcamTools/ToolPcbWizard.py:314 flatcamTools/ToolPcbWizard.py:318
-msgid "Load PcbWizard INF file"
-msgstr "Carregar arquivo PCBWizard INF"
-
-#: flatcamTools/ToolPcbWizard.py:366
-msgid ""
-"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 ""
-"O arquivo INF não contém a tabela de ferramentas.\n"
-"Tente abrir o arquivo Excellon em Arquivo -> Abrir -> Excellon\n"
-"e edite os diâmetros dos furos manualmente."
-
-#: flatcamTools/ToolPcbWizard.py:387
-msgid "PcbWizard .INF file loaded."
-msgstr "Arquivo PcbWizard .INF carregado."
-
-#: flatcamTools/ToolPcbWizard.py:392
-msgid "Main PcbWizard Excellon file loaded."
-msgstr "Arquivo PcbWizard Excellon carregado."
-
-#: flatcamTools/ToolPcbWizard.py:427
-msgid "Cannot parse file"
-msgstr "Não é possível analisar o arquivo"
-
-#: flatcamTools/ToolPcbWizard.py:450
-msgid "Importing Excellon."
-msgstr "Importando Excellon."
-
-#: flatcamTools/ToolPcbWizard.py:457
-msgid "Import Excellon file failed."
-msgstr "Falha na importação do arquivo Excellon."
-
-#: flatcamTools/ToolPcbWizard.py:464
-msgid "Imported"
-msgstr "Importado"
-
-#: flatcamTools/ToolPcbWizard.py:467
-msgid "Excellon merging is in progress. Please wait..."
-msgstr "A união Excellon está em andamento. Por favor, espere..."
-
-#: flatcamTools/ToolPcbWizard.py:469
-msgid "The imported Excellon file is empty."
-msgstr "O arquivo Excellon importado está Vazio."
-
-#: flatcamTools/ToolProperties.py:131
-msgid "Object Properties are displayed."
-msgstr "Propriedades do Objeto exibidas."
-
-#: flatcamTools/ToolProperties.py:136
-msgid "Properties Tool"
-msgstr "Ferramenta Propriedades"
-
-#: flatcamTools/ToolProperties.py:150
-msgid "TYPE"
-msgstr "TIPO"
-
-#: flatcamTools/ToolProperties.py:151
-msgid "NAME"
-msgstr "NOME"
-
-#: flatcamTools/ToolProperties.py:153
-msgid "Dimensions"
-msgstr "Dimensões"
-
-#: flatcamTools/ToolProperties.py:181
-msgid "Geo Type"
-msgstr "Tipo Geo"
-
-#: flatcamTools/ToolProperties.py:184
-msgid "Single-Geo"
-msgstr "Geo. Única"
-
-#: flatcamTools/ToolProperties.py:185
-msgid "Multi-Geo"
-msgstr "Geo. Múltipla"
-
-#: flatcamTools/ToolProperties.py:196
-msgid "Calculating dimensions ... Please wait."
-msgstr "Calculando dimensões ... Por favor, espere."
-
-#: flatcamTools/ToolProperties.py:339 flatcamTools/ToolProperties.py:343
-#: flatcamTools/ToolProperties.py:345
-msgid "Inch"
-msgstr "Polegada"
-
-#: flatcamTools/ToolProperties.py:339 flatcamTools/ToolProperties.py:344
-#: flatcamTools/ToolProperties.py:346
-msgid "Metric"
-msgstr "Métrico"
-
-#: flatcamTools/ToolProperties.py:421 flatcamTools/ToolProperties.py:486
-msgid "Drills number"
-msgstr "Número de furos"
-
-#: flatcamTools/ToolProperties.py:422 flatcamTools/ToolProperties.py:488
-msgid "Slots number"
-msgstr "Número de Ranhuras"
-
-#: flatcamTools/ToolProperties.py:424
-msgid "Drills total number:"
-msgstr "Número total de furos:"
-
-#: flatcamTools/ToolProperties.py:425
-msgid "Slots total number:"
-msgstr "Número total de ranhuras:"
-
-#: flatcamTools/ToolProperties.py:452 flatcamTools/ToolProperties.py:455
-#: flatcamTools/ToolProperties.py:458 flatcamTools/ToolProperties.py:483
-msgid "Present"
-msgstr "Presente"
-
-#: flatcamTools/ToolProperties.py:453 flatcamTools/ToolProperties.py:484
-msgid "Solid Geometry"
-msgstr "Geometria Sólida"
-
-#: flatcamTools/ToolProperties.py:456
-msgid "GCode Text"
-msgstr "Texto G-Code"
-
-#: flatcamTools/ToolProperties.py:459
-msgid "GCode Geometry"
-msgstr "Geometria G-Code"
-
-#: flatcamTools/ToolProperties.py:462
-msgid "Data"
-msgstr "Dados"
-
-#: flatcamTools/ToolProperties.py:495
-msgid "Depth of Cut"
-msgstr "Profundidade de Corte"
-
-#: flatcamTools/ToolProperties.py:507
-msgid "Clearance Height"
-msgstr "Altura do Espaço"
-
-#: flatcamTools/ToolProperties.py:539
-msgid "Routing time"
-msgstr "Tempo de roteamento"
-
-#: flatcamTools/ToolProperties.py:546
-msgid "Travelled distance"
-msgstr "Distância percorrida"
-
-#: flatcamTools/ToolProperties.py:564
-msgid "Width"
-msgstr "Largura"
-
-#: flatcamTools/ToolProperties.py:570 flatcamTools/ToolProperties.py:578
-msgid "Box Area"
-msgstr "Área da Caixa"
-
-#: flatcamTools/ToolProperties.py:573 flatcamTools/ToolProperties.py:581
-msgid "Convex_Hull Area"
-msgstr "Área Convexa do Casco"
-
-#: flatcamTools/ToolProperties.py:588 flatcamTools/ToolProperties.py:591
-msgid "Copper Area"
-msgstr "Área de Cobre"
-
-#: flatcamTools/ToolPunchGerber.py:30 flatcamTools/ToolPunchGerber.py:323
-msgid "Punch Gerber"
-msgstr "Gerber a Furar"
-
-#: flatcamTools/ToolPunchGerber.py:65
-msgid "Gerber into which to punch holes"
-msgstr "Gerber no qual fazer furos"
-
-#: flatcamTools/ToolPunchGerber.py:85
-msgid "ALL"
-msgstr "TODOS"
-
-#: flatcamTools/ToolPunchGerber.py:166
-msgid ""
-"Remove the geometry of Excellon from the Gerber to create the holes in pads."
-msgstr "Remove a geometria do Excellon do Gerber para criar os furos nos pads."
-
-#: flatcamTools/ToolPunchGerber.py:325
-msgid ""
-"Create a Gerber object from the selected object, within\n"
-"the specified box."
-msgstr ""
-"Cria um objeto Gerber a partir do objeto selecionado, dentro\n"
-"da caixa especificada."
-
-#: flatcamTools/ToolPunchGerber.py:425
-msgid "Punch Tool"
-msgstr "Ferramenta de Furos"
-
-#: flatcamTools/ToolPunchGerber.py:599
-msgid "The value of the fixed diameter is 0.0. Aborting."
-msgstr "O valor do diâmetro fixo é 0.0. Abortando."
-
-#: flatcamTools/ToolPunchGerber.py:607 flatcamTools/ToolPunchGerber.py:619
-msgid ""
-"Could not generate punched hole Gerber because the punch hole size is bigger "
-"than some of the apertures in the Gerber object."
-msgstr ""
-"Não foi possível gerar o Gerber dos furos porque o tamanho do perfurador é "
-"maior que algumas das aberturas no objeto Gerber."
-
-#: flatcamTools/ToolPunchGerber.py:656
-msgid ""
-"Could not generate punched hole Gerber because the newly created object "
-"geometry is the same as the one in the source object geometry..."
-msgstr ""
-"Não foi possível gerar o Gerber dos furos porque a geometria do objeto recém-"
-"criada é a mesma da geometria do objeto de origem ..."
-
-#: flatcamTools/ToolQRCode.py:80
-msgid "Gerber Object to which the QRCode will be added."
-msgstr "Objeto Gerber ao qual o QRCode será adicionado."
-
-#: flatcamTools/ToolQRCode.py:93
-msgid "QRCode Parameters"
-msgstr "Parâmetros de QRCode"
-
-#: flatcamTools/ToolQRCode.py:95
-msgid "The parameters used to shape the QRCode."
-msgstr "Os parâmetros usados para modelar o QRCode."
-
-#: flatcamTools/ToolQRCode.py:207
-msgid "Export QRCode"
-msgstr "Exportar QRCode"
-
-#: flatcamTools/ToolQRCode.py:209
-msgid ""
-"Show a set of controls allowing to export the QRCode\n"
-"to a SVG file or an PNG file."
-msgstr ""
-"Mostrar um conjunto de controles que permitem exportar o QRCode\n"
-"para um arquivo SVG ou PNG."
-
-#: flatcamTools/ToolQRCode.py:248
-msgid "Transparent back color"
-msgstr "Cor transparente de fundo"
-
-#: flatcamTools/ToolQRCode.py:273
-msgid "Export QRCode SVG"
-msgstr "Exportar QRCode SVG"
-
-#: flatcamTools/ToolQRCode.py:275
-msgid "Export a SVG file with the QRCode content."
-msgstr "Exporta um arquivo SVG com o conteúdo QRCode."
-
-#: flatcamTools/ToolQRCode.py:286
-msgid "Export QRCode PNG"
-msgstr "Exportar QRCode PNG"
-
-#: flatcamTools/ToolQRCode.py:288
-msgid "Export a PNG image file with the QRCode content."
-msgstr "Exporta um arquivo PNG com o conteúdo QRCode."
-
-#: flatcamTools/ToolQRCode.py:299
-msgid "Insert QRCode"
-msgstr "Inserir QRCode"
-
-#: flatcamTools/ToolQRCode.py:301
-msgid "Create the QRCode object."
-msgstr "Cria o objeto QRCode."
-
-#: flatcamTools/ToolQRCode.py:415 flatcamTools/ToolQRCode.py:750
-#: flatcamTools/ToolQRCode.py:799
-msgid "Cancelled. There is no QRCode Data in the text box."
-msgstr "Cancelado. Não há dados para o QRCode na caixa de texto."
-
-#: flatcamTools/ToolQRCode.py:434
-msgid "Generating QRCode geometry"
-msgstr "Gerando Geometria QRCode"
-
-#: flatcamTools/ToolQRCode.py:474
-msgid "Click on the Destination point ..."
-msgstr "Clique no ponto de destino ..."
-
-#: flatcamTools/ToolQRCode.py:589
-msgid "QRCode Tool done."
-msgstr "Ferramenta QRCode pronta."
-
-#: flatcamTools/ToolQRCode.py:782 flatcamTools/ToolQRCode.py:786
-msgid "Export PNG"
-msgstr "Exportar PNG"
-
-#: flatcamTools/ToolRulesCheck.py:33
-msgid "Check Rules"
-msgstr "Verificar Regras"
-
-#: flatcamTools/ToolRulesCheck.py:61
-msgid "Gerber Files"
-msgstr "Arquivos Gerber"
-
-#: flatcamTools/ToolRulesCheck.py:63
-msgid "Gerber objects for which to check rules."
-msgstr "Objeto para o qual verificar regras."
-
-#: flatcamTools/ToolRulesCheck.py:78
-msgid "Top"
-msgstr "Topo"
-
-#: flatcamTools/ToolRulesCheck.py:80
-msgid "The Top Gerber Copper object for which rules are checked."
-msgstr "Camada Gerber Superior para verificar regras."
-
-#: flatcamTools/ToolRulesCheck.py:96
-msgid "Bottom"
-msgstr "Baixo"
-
-#: flatcamTools/ToolRulesCheck.py:98
-msgid "The Bottom Gerber Copper object for which rules are checked."
-msgstr "Camada Gerber Inferior para verificar regras."
-
-#: flatcamTools/ToolRulesCheck.py:114
-msgid "SM Top"
-msgstr "MS Topo"
-
-#: flatcamTools/ToolRulesCheck.py:116
-msgid "The Top Gerber Solder Mask object for which rules are checked."
-msgstr "Máscara de Solda Superior para verificar regras."
-
-#: flatcamTools/ToolRulesCheck.py:132
-msgid "SM Bottom"
-msgstr "MS Baixo"
-
-#: flatcamTools/ToolRulesCheck.py:134
-msgid "The Bottom Gerber Solder Mask object for which rules are checked."
-msgstr "Máscara de Solda Inferior para verificar regras."
-
-#: flatcamTools/ToolRulesCheck.py:150
-msgid "Silk Top"
-msgstr "Silk Topo"
-
-#: flatcamTools/ToolRulesCheck.py:152
-msgid "The Top Gerber Silkscreen object for which rules are checked."
-msgstr "Silkscreen Superior para verificar regras."
-
-#: flatcamTools/ToolRulesCheck.py:168
-msgid "Silk Bottom"
-msgstr "Silk Baixo"
-
-#: flatcamTools/ToolRulesCheck.py:170
-msgid "The Bottom Gerber Silkscreen object for which rules are checked."
-msgstr "Silkscreen Inferior para verificar regras."
-
-#: flatcamTools/ToolRulesCheck.py:188
-msgid "The Gerber Outline (Cutout) object for which rules are checked."
-msgstr "Objeto Gerber de Contorno (Recorte) para verificar regras."
-
-#: flatcamTools/ToolRulesCheck.py:199
-msgid "Excellon Objects"
-msgstr "Objetos Excellon"
-
-#: flatcamTools/ToolRulesCheck.py:201
-msgid "Excellon objects for which to check rules."
-msgstr "Objetos Excellon para verificar regras."
-
-#: flatcamTools/ToolRulesCheck.py:213
-msgid "Excellon 1"
-msgstr "Excellon 1"
-
-#: flatcamTools/ToolRulesCheck.py:215
-msgid ""
-"Excellon object for which to check rules.\n"
-"Holds the plated holes or a general Excellon file content."
-msgstr ""
-"Objeto Excellon para verificar regras.\n"
-"Contém os furos galvanizados ou um conteúdo geral do arquivo Excellon."
-
-#: flatcamTools/ToolRulesCheck.py:232
-msgid "Excellon 2"
-msgstr "Excellon 2"
-
-#: flatcamTools/ToolRulesCheck.py:234
-msgid ""
-"Excellon object for which to check rules.\n"
-"Holds the non-plated holes."
-msgstr ""
-"Objeto Excellon para verificar regras.\n"
-"Contém os furos não galvanizados."
-
-#: flatcamTools/ToolRulesCheck.py:247
-msgid "All Rules"
-msgstr "Todas as Regras"
-
-#: flatcamTools/ToolRulesCheck.py:249
-msgid "This check/uncheck all the rules below."
-msgstr "Seleciona/deseleciona todas as regras abaixo."
-
-#: flatcamTools/ToolRulesCheck.py:499
-msgid "Run Rules Check"
-msgstr "Avaliar Regras"
-
-#: flatcamTools/ToolRulesCheck.py:1158 flatcamTools/ToolRulesCheck.py:1218
-#: flatcamTools/ToolRulesCheck.py:1255 flatcamTools/ToolRulesCheck.py:1327
-#: flatcamTools/ToolRulesCheck.py:1381 flatcamTools/ToolRulesCheck.py:1419
-#: flatcamTools/ToolRulesCheck.py:1484
-msgid "Value is not valid."
-msgstr "Valor inválido."
-
-#: flatcamTools/ToolRulesCheck.py:1172
-msgid "TOP -> Copper to Copper clearance"
-msgstr "TOPO -> Espaço Cobre Cobre"
-
-#: flatcamTools/ToolRulesCheck.py:1183
-msgid "BOTTOM -> Copper to Copper clearance"
-msgstr "BAIXO -> Espaço Cobre Cobre"
-
-#: flatcamTools/ToolRulesCheck.py:1188 flatcamTools/ToolRulesCheck.py:1282
-#: flatcamTools/ToolRulesCheck.py:1446
-msgid ""
-"At least one Gerber object has to be selected for this rule but none is "
-"selected."
-msgstr ""
-"Pelo menos um objeto Gerber deve ser selecionado para esta regra, mas nenhum "
-"está selecionado."
-
-#: flatcamTools/ToolRulesCheck.py:1224
-msgid ""
-"One of the copper Gerber objects or the Outline Gerber object is not valid."
-msgstr ""
-"Um dos objetos Gerber de cobre ou o objeto Gerber de Contorno não é válido."
-
-#: flatcamTools/ToolRulesCheck.py:1237 flatcamTools/ToolRulesCheck.py:1401
-msgid ""
-"Outline Gerber object presence is mandatory for this rule but it is not "
-"selected."
-msgstr ""
-"A presença do objeto Gerber de Contorno é obrigatória para esta regra, mas "
-"não está selecionada."
-
-#: flatcamTools/ToolRulesCheck.py:1254 flatcamTools/ToolRulesCheck.py:1281
-msgid "Silk to Silk clearance"
-msgstr "Espaço Silk Silk"
-
-#: flatcamTools/ToolRulesCheck.py:1267
-msgid "TOP -> Silk to Silk clearance"
-msgstr "TOPO -> Espaço Silk Silk"
-
-#: flatcamTools/ToolRulesCheck.py:1277
-msgid "BOTTOM -> Silk to Silk clearance"
-msgstr "BAIXO -> Espaço Silk Silk"
-
-#: flatcamTools/ToolRulesCheck.py:1333
-msgid "One or more of the Gerber objects is not valid."
-msgstr "Um ou mais dos objetos Gerber não são válidos."
-
-#: flatcamTools/ToolRulesCheck.py:1341
-msgid "TOP -> Silk to Solder Mask Clearance"
-msgstr "TOPO -> Espaço Silk Máscara de Solda"
-
-#: flatcamTools/ToolRulesCheck.py:1347
-msgid "BOTTOM -> Silk to Solder Mask Clearance"
-msgstr "BAIXO -> Espaço Silk Máscara de Solda"
-
-#: flatcamTools/ToolRulesCheck.py:1351
-msgid ""
-"Both Silk and Solder Mask Gerber objects has to be either both Top or both "
-"Bottom."
-msgstr ""
-"Os objetos Gerber de Silkscreen e da Máscara de Solda devem estar no mesmo "
-"lado: superior ou inferior."
-
-#: flatcamTools/ToolRulesCheck.py:1387
-msgid ""
-"One of the Silk Gerber objects or the Outline Gerber object is not valid."
-msgstr "Um dos objetos do Gerber não é válido: Silkscreen ou Contorno."
-
-#: flatcamTools/ToolRulesCheck.py:1431
-msgid "TOP -> Minimum Solder Mask Sliver"
-msgstr "TOPO -> Máscara de Solda Mínima"
-
-#: flatcamTools/ToolRulesCheck.py:1441
-msgid "BOTTOM -> Minimum Solder Mask Sliver"
-msgstr "BAIXO -> Máscara de Solda Mínima"
-
-#: flatcamTools/ToolRulesCheck.py:1490
-msgid "One of the Copper Gerber objects or the Excellon objects is not valid."
-msgstr "Um dos objetos não é válido: Gerber Cobre ou Excellon."
-
-#: flatcamTools/ToolRulesCheck.py:1506
-msgid ""
-"Excellon object presence is mandatory for this rule but none is selected."
-msgstr ""
-"A presença de objeto Excellon é obrigatória para esta regra, mas nenhum está "
-"selecionado."
-
-#: flatcamTools/ToolRulesCheck.py:1579 flatcamTools/ToolRulesCheck.py:1592
-#: flatcamTools/ToolRulesCheck.py:1603 flatcamTools/ToolRulesCheck.py:1616
-msgid "STATUS"
-msgstr "ESTADO"
-
-#: flatcamTools/ToolRulesCheck.py:1582 flatcamTools/ToolRulesCheck.py:1606
-msgid "FAILED"
-msgstr "FALHOU"
-
-#: flatcamTools/ToolRulesCheck.py:1595 flatcamTools/ToolRulesCheck.py:1619
-msgid "PASSED"
-msgstr "PASSOU"
-
-#: flatcamTools/ToolRulesCheck.py:1596 flatcamTools/ToolRulesCheck.py:1620
-msgid "Violations: There are no violations for the current rule."
-msgstr "Violações: não há violações para a regra atual."
-
-#: flatcamTools/ToolShell.py:74 flatcamTools/ToolShell.py:76
-msgid "...processing..."
-msgstr "...processando..."
-
-#: flatcamTools/ToolSolderPaste.py:37
-msgid "Solder Paste Tool"
-msgstr "Pasta de Solda"
-
-#: flatcamTools/ToolSolderPaste.py:69
-msgid "Gerber Solder paste object. "
-msgstr "Objeto Gerber de Pasta de Solda. "
-
-#: flatcamTools/ToolSolderPaste.py:76
-msgid ""
-"Tools pool from which the algorithm\n"
-"will pick the ones used for dispensing solder paste."
-msgstr ""
-"Conjunto de ferramentas a partir do qual o algoritmo selecionará para "
-"distribuir pasta de solda."
-
-#: flatcamTools/ToolSolderPaste.py:91
-msgid ""
-"This is the Tool Number.\n"
-"The solder dispensing will start with the tool with the biggest \n"
-"diameter, continuing until there are no more Nozzle tools.\n"
-"If there are no longer tools but there are still pads not covered\n"
-" with solder paste, the app will issue a warning message box."
-msgstr ""
-"Este é o número da ferramenta.\n"
-"A colocação de pasta de solda começa com a ferramenta com o maior diâmetro,\n"
-"continuando até que não haja mais ferramentas do bico.\n"
-"Se não houver mais ferramentas, mas ainda houver blocos não cobertos\n"
-"com pasta de solda, o aplicativo emitirá uma caixa de mensagem de aviso."
-
-#: flatcamTools/ToolSolderPaste.py:98
-msgid ""
-"Nozzle tool Diameter. It's value (in current FlatCAM units)\n"
-"is the width of the solder paste dispensed."
-msgstr ""
-"Diâmetro do bico da ferramenta. É o valor (em unidades FlatCAM atuais)\n"
-"da largura da pasta de solda dispensada."
-
-#: flatcamTools/ToolSolderPaste.py:105
-msgid "New Nozzle Tool"
-msgstr "Nova Ferramenta de Bico"
-
-#: flatcamTools/ToolSolderPaste.py:124
-msgid ""
-"Add a new nozzle tool to the Tool Table\n"
-"with the diameter specified above."
-msgstr ""
-"Adiciona uma nova ferramenta de bico à tabela de ferramentas\n"
-"com o diâmetro especificado acima."
-
-#: flatcamTools/ToolSolderPaste.py:136
-msgid "Generate solder paste dispensing geometry."
-msgstr "Gerar geometria de distribuição de pasta de solda."
-
-#: flatcamTools/ToolSolderPaste.py:155
-msgid "STEP 1"
-msgstr "PASSO 1"
-
-#: flatcamTools/ToolSolderPaste.py:157
-msgid ""
-"First step is to select a number of nozzle tools for usage\n"
-"and then optionally modify the GCode parameters below."
-msgstr ""
-"O primeiro passo é selecionar um número de ferramentas de bico para usar,\n"
-"e opcionalmente, modificar os parâmetros do G-Code abaixo."
-
-#: flatcamTools/ToolSolderPaste.py:160
-msgid ""
-"Select tools.\n"
-"Modify parameters."
-msgstr ""
-"Selecione ferramentas.\n"
-"Modifique os parâmetros."
-
-#: flatcamTools/ToolSolderPaste.py:280
-msgid ""
-"Feedrate (speed) while moving up vertically\n"
-" to Dispense position (on Z plane)."
-msgstr ""
-"Avanço (velocidade) enquanto sobe verticalmente\n"
-"para a posição Dispensar (no plano Z)."
-
-#: flatcamTools/ToolSolderPaste.py:350
-msgid ""
-"Generate GCode for Solder Paste dispensing\n"
-"on PCB pads."
-msgstr ""
-"Gera o G-Code para dispensar pasta de solda\n"
-"nos pads da PCB."
-
-#: flatcamTools/ToolSolderPaste.py:371
-msgid "STEP 2"
-msgstr "PASSO 2"
-
-#: flatcamTools/ToolSolderPaste.py:373
-msgid ""
-"Second step is to create a solder paste dispensing\n"
-"geometry out of an Solder Paste Mask Gerber file."
-msgstr ""
-"O segundo passo é criar uma geometria de distribuição de pasta de solda\n"
-"de um arquivo Gerber Máscara de Pasta de Solda."
-
-#: flatcamTools/ToolSolderPaste.py:390
-msgid "Geo Result"
-msgstr "Geo Result"
-
-#: flatcamTools/ToolSolderPaste.py:392
-msgid ""
-"Geometry Solder Paste object.\n"
-"The name of the object has to end in:\n"
-"'_solderpaste' as a protection."
-msgstr ""
-"Objeto de Geometria Pasta de Solda.\n"
-"Como proteção, o nome do objeto deve terminar com: \n"
-"'_solderpaste'."
-
-#: flatcamTools/ToolSolderPaste.py:401
-msgid "STEP 3"
-msgstr "PASSO 3"
-
-#: flatcamTools/ToolSolderPaste.py:403
-msgid ""
-"Third step is to select a solder paste dispensing geometry,\n"
-"and then generate a CNCJob object.\n"
-"\n"
-"REMEMBER: if you want to create a CNCJob with new parameters,\n"
-"first you need to generate a geometry with those new params,\n"
-"and only after that you can generate an updated CNCJob."
-msgstr ""
-"O terceiro passo é selecionar uma geometria dispensadora de pasta de solda,\n"
-"e então gerar um objeto de Trabalho CNC.\n"
-"\n"
-"LEMBRE: se você quiser criar um Trabalho CNC com novos parâmetros,\n"
-" primeiro você precisa gerar uma geometria com esses novos parâmetros,\n"
-"e só depois disso você pode gerar um Trabalho CNC atualizado."
-
-#: flatcamTools/ToolSolderPaste.py:424
-msgid "CNC Result"
-msgstr "Resultado CNC"
-
-#: flatcamTools/ToolSolderPaste.py:426
-msgid ""
-"CNCJob Solder paste object.\n"
-"In order to enable the GCode save section,\n"
-"the name of the object has to end in:\n"
-"'_solderpaste' as a protection."
-msgstr ""
-"Objeto Trabalho CNC Pasta de Solda.\n"
-"Como proteção, para habilitar a seção de salvar o G-Code,\n"
-"o nome do objeto tem que terminar com:\n"
-"'_solderpaste'."
-
-#: flatcamTools/ToolSolderPaste.py:436
-msgid "View GCode"
-msgstr "Ver G-Code"
-
-#: flatcamTools/ToolSolderPaste.py:438
-msgid ""
-"View the generated GCode for Solder Paste dispensing\n"
-"on PCB pads."
-msgstr ""
-"Ver o G-Code gerado para dispensação de pasta de solda\n"
-"nos pads da PCB."
-
-#: flatcamTools/ToolSolderPaste.py:448
-msgid "Save GCode"
-msgstr "Salvar o G-Code"
-
-#: flatcamTools/ToolSolderPaste.py:450
-msgid ""
-"Save the generated GCode for Solder Paste dispensing\n"
-"on PCB pads, to a file."
-msgstr ""
-"Salva o G-Code gerado para distribuição de pasta de solda\n"
-"nos pads de PCB, em um arquivo."
-
-#: flatcamTools/ToolSolderPaste.py:460
-msgid "STEP 4"
-msgstr "PASSO 4"
-
-#: flatcamTools/ToolSolderPaste.py:462
-msgid ""
-"Fourth step (and last) is to select a CNCJob made from \n"
-"a solder paste dispensing geometry, and then view/save it's GCode."
-msgstr ""
-"O quarto (e último) passo é selecionar um Trabalho CNC feito de\n"
-"uma geometria de distribuição de pasta de solda e, em seguida, visualizar/"
-"salvar o G-Code."
-
-#: flatcamTools/ToolSolderPaste.py:922
-msgid "New Nozzle tool added to Tool Table."
-msgstr "Nova Ferramenta Bocal adicionada à tabela de ferramentas."
-
-#: flatcamTools/ToolSolderPaste.py:965
-msgid "Nozzle tool from Tool Table was edited."
-msgstr "A ferramenta do bocal da tabela de ferramentas foi editada."
-
-#: flatcamTools/ToolSolderPaste.py:1024
-msgid "Delete failed. Select a Nozzle tool to delete."
-msgstr "Exclusão falhou. Selecione uma ferramenta bico para excluir."
-
-#: flatcamTools/ToolSolderPaste.py:1030
-msgid "Nozzle tool(s) deleted from Tool Table."
-msgstr "Ferramenta(s) de bico excluída(s) da tabela de ferramentas."
-
-#: flatcamTools/ToolSolderPaste.py:1086
-msgid "No SolderPaste mask Gerber object loaded."
-msgstr "Nenhum objeto Gerber de máscara de Pasta de Solda carregado."
-
-#: flatcamTools/ToolSolderPaste.py:1104
-msgid "Creating Solder Paste dispensing geometry."
-msgstr "Criação da geometria de distribuição da pasta de solda."
-
-#: flatcamTools/ToolSolderPaste.py:1117
-msgid "No Nozzle tools in the tool table."
-msgstr "Nenhuma ferramenta de Bico na tabela de ferramentas."
-
-#: flatcamTools/ToolSolderPaste.py:1243
-msgid "Cancelled. Empty file, it has no geometry..."
-msgstr "Cancelado. Arquivo vazio, não há geometria..."
-
-#: flatcamTools/ToolSolderPaste.py:1246
-msgid "Solder Paste geometry generated successfully"
-msgstr "Geometria da pasta de solda gerada com sucesso"
-
-#: flatcamTools/ToolSolderPaste.py:1253
-msgid "Some or all pads have no solder due of inadequate nozzle diameters..."
-msgstr ""
-"Alguns ou todos os pads não possuem pasta de solda devido a diâmetros "
-"inadequados dos bicos..."
-
-#: flatcamTools/ToolSolderPaste.py:1267
-msgid "Generating Solder Paste dispensing geometry..."
-msgstr "Gerando geometria dispensadora de Pasta de Solda ..."
-
-#: flatcamTools/ToolSolderPaste.py:1287
-msgid "There is no Geometry object available."
-msgstr "Não há objeto de Geometria disponível."
-
-#: flatcamTools/ToolSolderPaste.py:1292
-msgid "This Geometry can't be processed. NOT a solder_paste_tool geometry."
-msgstr ""
-"Esta geometria não pode ser processada. NÃO é uma geometria "
-"solder_paste_tool."
-
-#: flatcamTools/ToolSolderPaste.py:1328
-msgid "An internal error has ocurred. See shell.\n"
-msgstr "Ocorreu um erro interno. Veja shell (linha de comando).\n"
-
-#: flatcamTools/ToolSolderPaste.py:1393
-msgid "ToolSolderPaste CNCjob created"
-msgstr "Trabalho CNC para Ferramenta de Pasta de Solda criado"
-
-#: flatcamTools/ToolSolderPaste.py:1412
-msgid "SP GCode Editor"
-msgstr "Editor SP G-Code"
-
-#: flatcamTools/ToolSolderPaste.py:1424 flatcamTools/ToolSolderPaste.py:1429
-#: flatcamTools/ToolSolderPaste.py:1484
-msgid ""
-"This CNCJob object can't be processed. NOT a solder_paste_tool CNCJob object."
-msgstr ""
-"Este objeto Trabalho CNC não pode ser processado. NÃO é um objeto "
-"solder_paste_tool."
-
-#: flatcamTools/ToolSolderPaste.py:1454
-msgid "No Gcode in the object"
-msgstr "Nenhum G-Code no objeto"
-
-#: flatcamTools/ToolSolderPaste.py:1494
-msgid "Export GCode ..."
-msgstr "Exportar G-Code ..."
-
-#: flatcamTools/ToolSolderPaste.py:1542
-msgid "Solder paste dispenser GCode file saved to"
-msgstr "Arquivo G-Code com dispensador de pasta de solda salvo em"
-
-#: flatcamTools/ToolSub.py:65
-msgid "Gerber Objects"
-msgstr "Objetos Gerber"
-
-#: flatcamTools/ToolSub.py:78
-msgid ""
-"Gerber object from which to subtract\n"
-"the subtractor Gerber object."
-msgstr ""
-"Objeto Gerber do qual subtrair\n"
-"o objeto Gerber subtrator."
-
-#: flatcamTools/ToolSub.py:91 flatcamTools/ToolSub.py:146
-msgid "Subtractor"
-msgstr "Subtrator"
-
-#: flatcamTools/ToolSub.py:93
-msgid ""
-"Gerber object that will be subtracted\n"
-"from the target Gerber object."
-msgstr ""
-"Objeto Gerber que será subtraído\n"
-"do objeto Gerber de destino."
-
-#: flatcamTools/ToolSub.py:100
-msgid "Subtract Gerber"
-msgstr "Subtrair Gerber"
-
-#: flatcamTools/ToolSub.py:102
-msgid ""
-"Will remove the area occupied by the subtractor\n"
-"Gerber from the Target Gerber.\n"
-"Can be used to remove the overlapping silkscreen\n"
-"over the soldermask."
-msgstr ""
-"Removerá a área ocupada pelo Gerber substrator\n"
-"do Gerber de destino.\n"
-"Pode ser usado para remover a serigrafia sobreposta\n"
-"sobre a máscara de solda."
-
-#: flatcamTools/ToolSub.py:120
-msgid "Geometry Objects"
-msgstr "Objetos Geometria"
-
-#: flatcamTools/ToolSub.py:133
-msgid ""
-"Geometry object from which to subtract\n"
-"the subtractor Geometry object."
-msgstr ""
-"Objeto de geometria a partir do qual subtrair\n"
-"o objeto de geometria do substrator."
-
-#: flatcamTools/ToolSub.py:148
-msgid ""
-"Geometry object that will be subtracted\n"
-"from the target Geometry object."
-msgstr ""
-"Objeto de geometria que será subtraído\n"
-"do objeto de geometria de destino."
-
-#: flatcamTools/ToolSub.py:156
-msgid ""
-"Checking this will close the paths cut by the Geometry subtractor object."
-msgstr ""
-"Marcar isso fechará os caminhos cortados pelo objeto substrair Geometria."
-
-#: flatcamTools/ToolSub.py:159
-msgid "Subtract Geometry"
-msgstr "Subtrair Geometria"
-
-#: flatcamTools/ToolSub.py:161
-msgid ""
-"Will remove the area occupied by the subtractor\n"
-"Geometry from the Target Geometry."
-msgstr ""
-"Removerá a área ocupada pela geometria subtrator\n"
-"da Geometria de destino."
-
-#: flatcamTools/ToolSub.py:263
-msgid "Sub Tool"
-msgstr "Ferramenta Sub"
-
-#: flatcamTools/ToolSub.py:284 flatcamTools/ToolSub.py:489
-msgid "No Target object loaded."
-msgstr "Nenhum objeto de destino foi carregado."
-
-#: flatcamTools/ToolSub.py:287
-msgid "Loading geometry from Gerber objects."
-msgstr "Carregando geometria de objetos Gerber."
-
-#: flatcamTools/ToolSub.py:299 flatcamTools/ToolSub.py:504
-msgid "No Subtractor object loaded."
-msgstr "Nenhum objeto Subtrator carregado."
-
-#: flatcamTools/ToolSub.py:331
-msgid "Processing geometry from Subtractor Gerber object."
-msgstr "Processando Geometria do objeto Subtrator Gerber."
-
-#: flatcamTools/ToolSub.py:352
-msgid "Parsing geometry for aperture"
-msgstr "Analisando geometria para abertura"
-
-#: flatcamTools/ToolSub.py:413
-msgid "Finished parsing geometry for aperture"
-msgstr "Análise de geometria para abertura concluída"
-
-#: flatcamTools/ToolSub.py:458 flatcamTools/ToolSub.py:661
-msgid "Generating new object ..."
-msgstr "Gerando novo objeto ..."
-
-#: flatcamTools/ToolSub.py:462 flatcamTools/ToolSub.py:665
-#: flatcamTools/ToolSub.py:746
-msgid "Generating new object failed."
-msgstr "A geração de novo objeto falhou."
-
-#: flatcamTools/ToolSub.py:467 flatcamTools/ToolSub.py:671
-msgid "Created"
-msgstr "Criado"
-
-#: flatcamTools/ToolSub.py:518
-msgid "Currently, the Subtractor geometry cannot be of type Multigeo."
-msgstr "Atualmente, a geometria do Subtrator não pode ser do tipo MultiGeo."
-
-#: flatcamTools/ToolSub.py:563
-msgid "Parsing solid_geometry ..."
-msgstr "Analisando solid_geometry ..."
-
-#: flatcamTools/ToolSub.py:565
-msgid "Parsing solid_geometry for tool"
-msgstr "Analisando solid_geometry para ferramenta"
-
-#: flatcamTools/ToolTransform.py:23
-msgid "Object Transform"
-msgstr "Transformação de Objeto"
-
-#: flatcamTools/ToolTransform.py:78
-msgid ""
-"Rotate the selected object(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected objects."
-msgstr ""
-"Gira o(s) objeto(s) selecionado(s).\n"
-"O ponto de referência é o meio da\n"
-"caixa delimitadora para todos os objetos selecionados."
-
-#: flatcamTools/ToolTransform.py:99 flatcamTools/ToolTransform.py:120
-msgid ""
-"Angle for Skew action, in degrees.\n"
-"Float number between -360 and 360."
-msgstr ""
-"Ângulo de inclinação, em graus.\n"
-"Número flutuante entre -360 e 360."
-
-#: flatcamTools/ToolTransform.py:109 flatcamTools/ToolTransform.py:130
-msgid ""
-"Skew/shear the selected object(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected objects."
-msgstr ""
-"Inclinar/distorcer o(s) objeto(s) selecionado(s).\n"
-"O ponto de referência é o meio da\n"
-"caixa delimitadora para todos os objetos selecionados."
-
-#: flatcamTools/ToolTransform.py:159 flatcamTools/ToolTransform.py:179
-msgid ""
-"Scale the selected object(s).\n"
-"The point of reference depends on \n"
-"the Scale reference checkbox state."
-msgstr ""
-"Redimensiona o(s) objeto(s) selecionado(s).\n"
-"O ponto de referência depende\n"
-"do estado da caixa de seleção Escala de referência."
-
-#: flatcamTools/ToolTransform.py:228 flatcamTools/ToolTransform.py:248
-msgid ""
-"Offset the selected object(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected objects.\n"
-msgstr ""
-"Desloca o(s) objeto(s) selecionado(s).\n"
-"O ponto de referência é o meio da\n"
-"caixa delimitadora para todos os objetos selecionados.\n"
-
-#: flatcamTools/ToolTransform.py:268 flatcamTools/ToolTransform.py:273
-msgid "Flip the selected object(s) over the X axis."
-msgstr "Espelha o(s) objeto(s) selecionado(s) no eixo X."
-
-#: flatcamTools/ToolTransform.py:297
-msgid "Ref. Point"
-msgstr "Ponto de Referência"
-
-#: flatcamTools/ToolTransform.py:348
-msgid ""
-"Create the buffer effect on each geometry,\n"
-"element from the selected object, using the distance."
-msgstr ""
-"Crie o efeito de buffer em cada geometria,\n"
-"elemento do objeto selecionado, usando a distância."
-
-#: flatcamTools/ToolTransform.py:374
-msgid ""
-"Create the buffer effect on each geometry,\n"
-"element from the selected object, using the factor."
-msgstr ""
-"Crie o efeito de buffer em cada geometria,\n"
-"elemento do objeto selecionado, usando o fator."
-
-#: flatcamTools/ToolTransform.py:479
-msgid "Buffer D"
-msgstr "Buffer D"
-
-#: flatcamTools/ToolTransform.py:480
-msgid "Buffer F"
-msgstr "Buffer F"
-
-#: flatcamTools/ToolTransform.py:557
-msgid "Rotate transformation can not be done for a value of 0."
-msgstr "A rotação não pode ser feita para um valor 0."
-
-#: flatcamTools/ToolTransform.py:596 flatcamTools/ToolTransform.py:619
-msgid "Scale transformation can not be done for a factor of 0 or 1."
-msgstr "O redimensionamento não pode ser feito para um fator 0 ou 1."
-
-#: flatcamTools/ToolTransform.py:634 flatcamTools/ToolTransform.py:644
-msgid "Offset transformation can not be done for a value of 0."
-msgstr "O deslocamento não pode ser feito para um valor 0."
-
-#: flatcamTools/ToolTransform.py:676
-msgid "No object selected. Please Select an object to rotate!"
-msgstr "Nenhum objeto selecionado. Por favor, selecione um objeto para girar!"
-
-#: flatcamTools/ToolTransform.py:702
-msgid "CNCJob objects can't be rotated."
-msgstr "Objetos Trabalho CNC não podem ser girados."
-
-#: flatcamTools/ToolTransform.py:710
-msgid "Rotate done"
-msgstr "Rotação pronta"
-
-#: flatcamTools/ToolTransform.py:713 flatcamTools/ToolTransform.py:783
-#: flatcamTools/ToolTransform.py:833 flatcamTools/ToolTransform.py:887
-#: flatcamTools/ToolTransform.py:917 flatcamTools/ToolTransform.py:953
-msgid "Due of"
-msgstr "Devido"
-
-#: flatcamTools/ToolTransform.py:713 flatcamTools/ToolTransform.py:783
-#: flatcamTools/ToolTransform.py:833 flatcamTools/ToolTransform.py:887
-#: flatcamTools/ToolTransform.py:917 flatcamTools/ToolTransform.py:953
-msgid "action was not executed."
-msgstr "a ação não foi realizada."
-
-#: flatcamTools/ToolTransform.py:725
-msgid "No object selected. Please Select an object to flip"
-msgstr ""
-"Nenhum objeto selecionado. Por favor, selecione um objeto para espelhar"
-
-#: flatcamTools/ToolTransform.py:758
-msgid "CNCJob objects can't be mirrored/flipped."
-msgstr "Objetos Trabalho CNC não podem ser espelhados/invertidos."
-
-#: flatcamTools/ToolTransform.py:793
-msgid "Skew transformation can not be done for 0, 90 and 180 degrees."
-msgstr "A inclinação não pode ser feita para 0, 90 e 180 graus."
-
-#: flatcamTools/ToolTransform.py:798
-msgid "No object selected. Please Select an object to shear/skew!"
-msgstr ""
-"Nenhum objeto selecionado. Por favor, selecione um objeto para inclinar!"
-
-#: flatcamTools/ToolTransform.py:818
-msgid "CNCJob objects can't be skewed."
-msgstr "Objetos Trabalho CNC não podem ser inclinados."
-
-#: flatcamTools/ToolTransform.py:830
-msgid "Skew on the"
-msgstr "Inclinando no eixo"
-
-#: flatcamTools/ToolTransform.py:830 flatcamTools/ToolTransform.py:884
-#: flatcamTools/ToolTransform.py:914
-msgid "axis done"
-msgstr "concluído"
-
-#: flatcamTools/ToolTransform.py:844
-msgid "No object selected. Please Select an object to scale!"
-msgstr ""
-"Nenhum objeto selecionado. Por favor, selecione um objeto para redimensionar!"
-
-#: flatcamTools/ToolTransform.py:875
-msgid "CNCJob objects can't be scaled."
-msgstr "Objetos Trabalho CNC não podem ser redimensionados."
-
-#: flatcamTools/ToolTransform.py:884
-msgid "Scale on the"
-msgstr "Redimensionamento no eixo"
-
-#: flatcamTools/ToolTransform.py:894
-msgid "No object selected. Please Select an object to offset!"
-msgstr ""
-"Nenhum objeto selecionado. Por favor, selecione um objeto para deslocar!"
-
-#: flatcamTools/ToolTransform.py:901
-msgid "CNCJob objects can't be offset."
-msgstr "Objetos Trabalho CNC não podem ser deslocados."
-
-#: flatcamTools/ToolTransform.py:914
-msgid "Offset on the"
-msgstr "Deslocamento no eixo"
-
-#: flatcamTools/ToolTransform.py:924
-msgid "No object selected. Please Select an object to buffer!"
-msgstr ""
-"Nenhum objeto selecionado. Por favor, selecione um objeto para armazenar em "
-"buffer!"
-
-#: flatcamTools/ToolTransform.py:927
-msgid "Applying Buffer"
-msgstr "Aplicando Buffer"
-
-#: flatcamTools/ToolTransform.py:931
-msgid "CNCJob objects can't be buffered."
-msgstr "Os objetos CNCJob não podem ser armazenados em buffer."
-
-#: flatcamTools/ToolTransform.py:948
-msgid "Buffer done"
-msgstr "Buffer concluído"
-
#: tclCommands/TclCommandBbox.py:75 tclCommands/TclCommandNregions.py:74
msgid "Expected GerberObject or GeometryObject, got"
msgstr "Esperando GerberObject ou GeometryObject, recebido"
@@ -18368,7 +18337,7 @@ msgstr ""
msgid "TclCommand Bounds done."
msgstr "Limites de TclCommand concluídos."
-#: tclCommands/TclCommandCopperClear.py:281 tclCommands/TclCommandPaint.py:277
+#: tclCommands/TclCommandCopperClear.py:281 tclCommands/TclCommandPaint.py:283
#: tclCommands/TclCommandScale.py:81
msgid "Could not retrieve box object"
msgstr "Não foi possível recuperar o objeto caixa"
@@ -18387,11 +18356,11 @@ msgid "Gaps value can be only one of: 'lr', 'tb', '2lr', '2tb', 4 or 8."
msgstr "O valor das lacunas pode ser apenas: 'lr', 'tb', '2lr', '2tb', 4 ou 8."
#: tclCommands/TclCommandGeoCutout.py:301
-#: tclCommands/TclCommandGeoCutout.py:359
+#: tclCommands/TclCommandGeoCutout.py:356
msgid "Any-form Cutout operation finished."
msgstr "Operação de recorte de qualquer formato concluída."
-#: tclCommands/TclCommandGeoCutout.py:365
+#: tclCommands/TclCommandGeoCutout.py:362
msgid "Cancelled. Object type is not supported."
msgstr "O tipo do objeto não é suportado."
@@ -18407,15 +18376,15 @@ msgstr "Digite help para forma de uso."
msgid "Example: help open_gerber"
msgstr "Exemplo: help open_gerber"
-#: tclCommands/TclCommandPaint.py:249
-msgid "Expected -x